diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PermissionCheck.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PermissionCheck.scala index 9c57ac580da5c20be154a9e1a53c7810f4dccb27..760203a56dfffeffb405042c7aa023c941e0f020 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PermissionCheck.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/PermissionCheck.scala @@ -85,7 +85,8 @@ object PermissionCheck { outGW: OutMsgRouter, liveMeeting: LiveMeeting): Unit = { val ejectedBy = SystemUser.ID - UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, ejectedBy, reason, EjectReasonCode.PERMISSION_FAILED) + UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, ejectedBy, reason, EjectReasonCode.PERMISSION_FAILED, ban = false) + // send a system message to force disconnection Sender.sendDisconnectClientSysMsg(meetingId, userId, ejectedBy, reason, outGW) } diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectDuplicateUserReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectDuplicateUserReqMsgHdlr.scala index f502556385ab11d73774b407df893b760299a494..f7111af84fd64097d34e50c3069e5fd86cc14be1 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectDuplicateUserReqMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/users/EjectDuplicateUserReqMsgHdlr.scala @@ -17,7 +17,8 @@ trait EjectDuplicateUserReqMsgHdlr { val ejectedBy = SystemUser.ID val reason = "user ejected because of duplicate external userid" - UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, ejectedBy, reason, EjectReasonCode.DUPLICATE_USER) + UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, ejectedBy, reason, EjectReasonCode.DUPLICATE_USER, ban = false) + // send a system message to force disconnection Sender.sendDisconnectClientSysMsg(meetingId, userId, ejectedBy, EjectReasonCode.DUPLICATE_USER, outGW) } 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 4915c73f8008aedf314b931c842de390cf1fbd21..49ceb6e0ddef9170afc53b46892b28caf42e8630 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 @@ -16,6 +16,7 @@ trait EjectUserFromMeetingCmdMsgHdlr extends RightsManagementTrait { val meetingId = liveMeeting.props.meetingProp.intId val userId = msg.body.userId val ejectedBy = msg.body.ejectedBy + val banUser = msg.body.banUser if (permissionFailed( PermissionCheck.MOD_LEVEL, @@ -33,6 +34,8 @@ trait EjectUserFromMeetingCmdMsgHdlr extends RightsManagementTrait { ejectedByUser <- RegisteredUsers.findWithUserId(ejectedBy, liveMeeting.registeredUsers) } yield { if (registeredUser.externId != ejectedByUser.externId) { + val ban = banUser + // Eject users //println("****************** User " + ejectedBy + " ejecting user " + userId) // User might have joined using multiple browsers. @@ -40,7 +43,18 @@ trait EjectUserFromMeetingCmdMsgHdlr extends RightsManagementTrait { // 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) + UsersApp.ejectUserFromMeeting( + outGW, + liveMeeting, + ru.id, + ejectedBy, + reason, + EjectReasonCode.EJECT_USER, + ban + ) + + log.info("Eject userId=" + userId + " by " + ejectedBy + " and ban=" + banUser) + // send a system message to force disconnection Sender.sendDisconnectClientSysMsg(meetingId, ru.id, ejectedBy, EjectReasonCode.EJECT_USER, outGW) } @@ -48,7 +62,15 @@ trait EjectUserFromMeetingCmdMsgHdlr extends RightsManagementTrait { // 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) + UsersApp.ejectUserFromMeeting( + outGW, + liveMeeting, + userId, + ejectedBy, + reason, + EjectReasonCode.EJECT_USER, + ban = false + ) // send a system message to force disconnection Sender.sendDisconnectClientSysMsg(meetingId, userId, ejectedBy, EjectReasonCode.EJECT_USER, outGW) } @@ -70,7 +92,15 @@ trait EjectUserFromMeetingSysMsgHdlr { val ejectedBy = msg.body.ejectedBy val reason = "user ejected by a component on system" - UsersApp.ejectUserFromMeeting(outGW, liveMeeting, userId, ejectedBy, reason, EjectReasonCode.SYSTEM_EJECT_USER) + UsersApp.ejectUserFromMeeting( + outGW, + liveMeeting, + userId, + ejectedBy, + reason, + EjectReasonCode.SYSTEM_EJECT_USER, + ban = false + ) // send a system message to force disconnection Sender.sendDisconnectClientSysMsg(meetingId, userId, ejectedBy, EjectReasonCode.SYSTEM_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 57955f1b43117c8bd3ecad8cb71871e3a68b4ac2..fa5738fffa3310fbbb9a0908bf533ba458085d6e 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 @@ -99,13 +99,14 @@ object UsersApp { } def ejectUserFromMeeting(outGW: OutMsgRouter, liveMeeting: LiveMeeting, - userId: String, ejectedBy: String, reason: String, reasonCode: String): Unit = { + userId: String, ejectedBy: String, reason: String, + reasonCode: String, ban: Boolean): Unit = { val meetingId = liveMeeting.props.meetingProp.intId for { user <- Users2x.ejectFromMeeting(liveMeeting.users2x, userId) - reguser <- RegisteredUsers.eject(userId, liveMeeting.registeredUsers, ejectedBy) + reguser <- RegisteredUsers.eject(userId, liveMeeting.registeredUsers, ban) } 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 bae7853a5b5faff56cb806a050b8008e3b3f3355..69614b8835263c5026e3f75bf99549a313cb28cf 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 @@ -25,13 +25,13 @@ trait ValidateAuthTokenReqMsgHdlr extends HandlerHelpers { regUser match { case Some(u) => - // Check if ejected user is rejoining. + // Check if banned user is rejoining. // Fail validation if ejected user is rejoining. // ralam april 21, 2020 - if (u.guestStatus == GuestStatus.ALLOW && !u.ejected) { + if (u.guestStatus == GuestStatus.ALLOW && !u.banned) { userValidated(u, state) } else { - if (u.ejected) { + if (u.banned) { failReason = "Ejected user rejoining" failReasonCode = EjectReasonCode.EJECTED_USER_REJOINING } 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 052b4e85958083aaf0e4d76ed42825a43ae67df6..17e7f429ce626078aeae2c8362320001dcd14888 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 @@ -62,12 +62,12 @@ object RegisteredUsers { findWithExternUserId(user.externId, users) match { case Some(u) => - if (u.ejected) { - // Ejected user is rejoining. Don't add so that validate token + if (u.banned) { + // Banned 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) + val bannedUser = user.copy(banned = true) + users.save(bannedUser) } else { // If user hasn't been ejected, we allow user to join // as the user might be joining using 2 browsers for @@ -81,16 +81,16 @@ object RegisteredUsers { } - private def banUser(ejectedUser: RegisteredUser, users: RegisteredUsers, ejectedByUser: RegisteredUser): RegisteredUser = { + private def banOrEjectUser(ejectedUser: RegisteredUser, users: RegisteredUsers, ban: Boolean): 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) { + if (ban) { // 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) + val u = ejectedUser.modify(_.banned).setTo(true) users.save(u) u } else { @@ -98,12 +98,11 @@ object RegisteredUsers { ejectedUser } } - def eject(id: String, users: RegisteredUsers, ejectedBy: String): Option[RegisteredUser] = { + def eject(id: String, users: RegisteredUsers, ban: Boolean): Option[RegisteredUser] = { for { ru <- findWithUserId(id, users) - eu <- findWithUserId(ejectedBy, users) } yield { - banUser(ru, users, eu) + banOrEjectUser(ru, users, ban) } } @@ -166,6 +165,6 @@ case class RegisteredUser( registeredOn: Long, joined: Boolean, markAsJoinTimedOut: Boolean, - ejected: Boolean + banned: Boolean ) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala index 48ab65be1e3652b13846a9479e7a78f26d318afc..c0a1735a92841210e0d1f19457236444c06383ef 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala @@ -749,7 +749,16 @@ class MeetingActor( users foreach { u => val respondedOnTime = (lastUserInactivityInspectSentOn - expiryTracker.userInactivityThresholdInMs) < u.lastActivityTime && (lastUserInactivityInspectSentOn + expiryTracker.userActivitySignResponseDelayInMs) > u.lastActivityTime if (!respondedOnTime) { - UsersApp.ejectUserFromMeeting(outGW, liveMeeting, u.intId, SystemUser.ID, "User inactive for too long.", EjectReasonCode.USER_INACTIVITY) + UsersApp.ejectUserFromMeeting( + outGW, + liveMeeting, + u.intId, + SystemUser.ID, + "User inactive for too long.", + EjectReasonCode.USER_INACTIVITY, + ban = false + ) + Sender.sendDisconnectClientSysMsg(liveMeeting.props.meetingProp.intId, u.intId, SystemUser.ID, EjectReasonCode.USER_INACTIVITY, outGW) } } diff --git a/akka-bbb-apps/src/universal/conf/application.conf b/akka-bbb-apps/src/universal/conf/application.conf index 559036109552b12a1f02ea9e58693c386535079d..4bf02465c110384b5dc578c836d2b4b2cd433ff5 100755 --- a/akka-bbb-apps/src/universal/conf/application.conf +++ b/akka-bbb-apps/src/universal/conf/application.conf @@ -65,7 +65,7 @@ sharedNotes { } http { - interface = "0.0.0.0" + interface = "127.0.0.1" port = 9999 } diff --git a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/UsersMgs.scala b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/UsersMgs.scala index 4936931676dc2eca0ec2a35691e219ec37f63d07..d658d5236580558a9890d4d7f01b0e75c3a6d3a5 100755 --- a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/UsersMgs.scala +++ b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/UsersMgs.scala @@ -221,7 +221,7 @@ case class UserRoleChangedEvtMsgBody(userId: String, role: String, changedBy: St */ object EjectUserFromMeetingCmdMsg { val NAME = "EjectUserFromMeetingCmdMsg" } case class EjectUserFromMeetingCmdMsg(header: BbbClientMsgHeader, body: EjectUserFromMeetingCmdMsgBody) extends StandardMsg -case class EjectUserFromMeetingCmdMsgBody(userId: String, ejectedBy: String) +case class EjectUserFromMeetingCmdMsgBody(userId: String, ejectedBy: String, banUser: Boolean) /** * Sent from client to lock user in meeting. 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 a6953c0dea2fea7c08d43178c9dfe8ed4622197c..fa5b0fbb73970f39d45b1bc62ced9138e20f8bbe 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 @@ -24,14 +24,9 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.SortedSet; -import java.util.TreeSet; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -123,23 +118,16 @@ public class ParamsProcessorUtil { 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(); + if (s.length() > 5) { + Long confNumL = Long.parseLong(s); + + Locale numFormatLocale = new Locale("en", "US"); + String formatPattern = "#,###"; + DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(numFormatLocale); + unusualSymbols.setGroupingSeparator(' '); + DecimalFormat numFormatter = new DecimalFormat(formatPattern, unusualSymbols); + numFormatter.setGroupingSize(3); + return numFormatter.format(confNumL); } return s; diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java index 4709fe49dec5701e54bc20d504f428acf22300aa..d83c6076b033263c73605b57368fcdfe61a84c3a 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java @@ -362,7 +362,7 @@ public class Meeting { } else if (GuestPolicy.ALWAYS_DENY.equals(guestPolicy)) { return GuestPolicy.DENY; } else if (GuestPolicy.ASK_MODERATOR.equals(guestPolicy)) { - if (guest || (!ROLE_MODERATOR.equals(role) && authned)) { + if (guest || (!ROLE_MODERATOR.equals(role) && !authned)) { return GuestPolicy.WAIT ; } return GuestPolicy.ALLOW; diff --git a/bigbluebutton-client/src/assets/presentation.css b/bigbluebutton-client/src/assets/presentation.css deleted file mode 100644 index f06130b69cf45370c1c06dc97ba47734e2a47e9b..0000000000000000000000000000000000000000 --- a/bigbluebutton-client/src/assets/presentation.css +++ /dev/null @@ -1,87 +0,0 @@ -/* -//////////////////////////////////////////////////////////////////////////////// -// -// Copyright (C) 2003-2006 Adobe Macromedia Software LLC and its licensors. -// All Rights Reserved. -// The following is Sample Code and is subject to all restrictions on such code -// as contained in the End User License Agreement accompanying this product. -// If you have received this file from a source other than Adobe, -// then your use, modification, or distribution of it requires -// the prior written permission of Adobe. -// -//////////////////////////////////////////////////////////////////////////////// -*/ -Application -{ - backgroundColor: #484842; -} - -CarouselImage -{ - frameColor: #9e9c8d; - frameThickness: 1; - frameSize: 5; -} - -ToolTip -{ - backgroundColor: #484842; - color: #ffffff; -} - -.button -{ - themeColor: #b7babc; -} - -.thumbnailRolledOver -{ - backgroundColor: #787872; -} - -.thumbnailSelected -{ - backgroundColor: #383832; -} - -.thumbnailTitleBar -{ - fontSize: 12; - fontWeight: "bold"; - color: #666666; -} - -.thumbnailListBorderBox -{ - backgroundColor: #9e9c8d; -} - -.thumbnailList -{ - borderColor: #9e9c8d; - backgroundColor: #9e9c8d; - selectionColor: #9e9c8d; - rollOverColor: #9e9c8d; - themeColor: #383832; - borderStyle: "solid"; - cornerRadius: 10; -} - -.photoDescription -{ - fontWeight: "bold"; - fontSize: 14; - color: #ffffff; -} - -.photoName -{ - fontSize: 12; - color: #ffffff; -} - -.slideshowControlBar -{ - backgroundAlpha: .6; - backgroundColor: #5b5b5b; -} diff --git a/bigbluebutton-config/bin/bbb-conf b/bigbluebutton-config/bin/bbb-conf index b4a0f14d1306342b39c5b13a0f4baf256107155e..d6d36bba2a35b132d33579a899620a93845209bb 100755 --- a/bigbluebutton-config/bin/bbb-conf +++ b/bigbluebutton-config/bin/bbb-conf @@ -1538,6 +1538,23 @@ check_state() { echo "#" fi + FREESWITCH_SIP=$(netstat -anlt | grep :5066 | grep -v tcp6 | grep LISTEN | sed 's/ [ ]*/ /g' | cut -d' ' -f4 | sed 's/:5066//g') + KURENTO_SIP=$(yq r $KURENTO_CONFIG freeswitch.sip_ip) + + if [ ! -z "$FREESWITCH_SIP" ]; then + if [ "$FREESWITCH_SIP" != "$KURENTO_SIP" ]; then + echo + echo "#" + echo "# Kurento is will try to connect to $KURENTO_SIP but FreeSWITCH is listening on $FREESWITCH_SIP for port 5066" + echo "#" + echo "# To fix, run the commands" + echo "#" + echo "# sudo yq w -i /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml freeswitch.sip_ip $FREESWITCH_SIP" + echo "# sudo chown bigbluebutton:bigbluebutton /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml" + echo "#" + fi + fi + exit 0 } @@ -1657,6 +1674,7 @@ if [ $CHECK ]; then echo "$KURENTO_CONFIG (Kurento SFU)" echo " kurento.ip: $(yq r $KURENTO_CONFIG kurento[0].ip)" echo " kurento.url: $(yq r $KURENTO_CONFIG kurento[0].url)" + echo " kurento.sip_ip: $(yq r $KURENTO_CONFIG freeswitch.sip_ip)" echo " localIpAddress: $(yq r $KURENTO_CONFIG localIpAddress)" echo " recordScreenSharing: $(yq r $KURENTO_CONFIG recordScreenSharing)" echo " recordWebcams: $(yq r $KURENTO_CONFIG recordWebcams)" diff --git a/bigbluebutton-config/cron.daily/bigbluebutton b/bigbluebutton-config/cron.daily/bigbluebutton index 165e35ca47a7dbd65a08eca19e71185c5b2f3db8..2a2f6571114f7a7eae6f01760ed0b745a13524be 100755 --- a/bigbluebutton-config/cron.daily/bigbluebutton +++ b/bigbluebutton-config/cron.daily/bigbluebutton @@ -120,7 +120,7 @@ remove_raw_of_published_recordings(){ done } -#remove_raw_of_published_recordings +remove_raw_of_published_recordings # # Remove old *.afm and *.pfb files from /tmp directory (if any exist) diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js index 9d290dbe1359abf9ba0305b0841828553bdbeabd..f999150b8b0bac5b2b6f857bc227d3a1babdefb6 100755 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/kurento.js @@ -1,6 +1,6 @@ import BaseAudioBridge from './base'; import Auth from '/imports/ui/services/auth'; -import { fetchWebRTCMappedStunTurnServers } from '/imports/utils/fetchStunTurnServers'; +import { fetchWebRTCMappedStunTurnServers, getMappedFallbackStun } from '/imports/utils/fetchStunTurnServers'; import playAndRetry from '/imports/utils/mediaElementPlayRetry'; import logger from '/imports/startup/client/logger'; @@ -64,6 +64,7 @@ export default class KurentoAudioBridge extends BaseAudioBridge { } catch (error) { logger.error({ logCode: 'sfuaudiobridge_stunturn_fetch_failed' }, 'SFU audio bridge failed to fetch STUN/TURN info, using default servers'); + iceServers = getMappedFallbackStun(); } finally { logger.debug({ logCode: 'sfuaudiobridge_stunturn_fetch_sucess', extraInfo: { iceServers } }, 'SFU audio bridge got STUN/TURN servers'); diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js index 3c72abbfcbe045a12abb64b1446c11629dbbae82..12f8d734a7132adaf484d728faf46a606f7a50d0 100755 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js @@ -1,7 +1,7 @@ import browser from 'browser-detect'; import BaseAudioBridge from './base'; import logger from '/imports/startup/client/logger'; -import { fetchStunTurnServers } from '/imports/utils/fetchStunTurnServers'; +import { fetchStunTurnServers, getFallbackStun } from '/imports/utils/fetchStunTurnServers'; import { isUnifiedPlan, toUnifiedPlan, @@ -85,6 +85,22 @@ class SIPSession { }); } + async getIceServers(sessionToken) { + try { + const iceServers = await fetchStunTurnServers(sessionToken); + return iceServers; + } catch (error) { + logger.error({ + logCode: 'sip_js_fetchstunturninfo_error', + extraInfo: { + errorCode: error.code, + errorMessage: error.message, + }, + }, 'Full audio bridge failed to fetch STUN/TURN info'); + return getFallbackStun(); + } + } + doCall(options) { const { isListenOnly, @@ -105,7 +121,7 @@ class SIPSession { this.user.callerIdName = callerIdName; this.callOptions = options; - return fetchStunTurnServers(sessionToken) + return this.getIceServers(sessionToken) .then(this.createUserAgent.bind(this)) .then(this.inviteUserAgent.bind(this)) .then(this.setupEventHandlers.bind(this)); diff --git a/bigbluebutton-html5/imports/api/breakouts/server/publishers.js b/bigbluebutton-html5/imports/api/breakouts/server/publishers.js index d0040bd87ecc475f1a1475dc82ef96ba822ff568..405414e284aaad2526bae26c2ef4ab49568c3740 100755 --- a/bigbluebutton-html5/imports/api/breakouts/server/publishers.js +++ b/bigbluebutton-html5/imports/api/breakouts/server/publishers.js @@ -6,7 +6,7 @@ import { extractCredentials } from '/imports/api/common/server/helpers'; const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator; -function breakouts(moderator = false) { +function breakouts() { if (!this.userId) { return Breakouts.find({ meetingId: '' }); } @@ -14,18 +14,16 @@ function breakouts(moderator = false) { const { meetingId, requesterUserId } = extractCredentials(this.userId); Logger.debug(`Publishing Breakouts for ${meetingId} ${requesterUserId}`); - if (moderator) { - const User = Users.findOne({ userId: requesterUserId, meetingId }); - if (!!User && User.role === ROLE_MODERATOR) { - const presenterSelector = { - $or: [ - { parentMeetingId: meetingId }, - { breakoutId: meetingId }, - ], - }; - - return Breakouts.find(presenterSelector); - } + const User = Users.findOne({ userId: requesterUserId, meetingId }, { fields: { role: 1 } }); + if (!!User && User.role === ROLE_MODERATOR) { + const presenterSelector = { + $or: [ + { parentMeetingId: meetingId }, + { breakoutId: meetingId }, + ], + }; + + return Breakouts.find(presenterSelector); } const selector = { diff --git a/bigbluebutton-html5/imports/api/external-videos/server/methods/initializeExternalVideo.js b/bigbluebutton-html5/imports/api/external-videos/server/methods/initializeExternalVideo.js index 2c76ad38fe920919f9555b9f0944e94a900f5737..03f9ca9b79cc89642a6339e9eb8dfd29071eda86 100644 --- a/bigbluebutton-html5/imports/api/external-videos/server/methods/initializeExternalVideo.js +++ b/bigbluebutton-html5/imports/api/external-videos/server/methods/initializeExternalVideo.js @@ -2,25 +2,16 @@ import { extractCredentials } from '/imports/api/common/server/helpers'; import Logger from '/imports/startup/server/logger'; const allowRecentMessages = (eventName, message) => { - const LATE_MESSAGE_THRESHOLD = 3000; - const { userId, meetingId, time, - timestamp, rate, state, } = message; - if (timestamp > Date.now() - LATE_MESSAGE_THRESHOLD) { - Logger.debug(`ExternalVideo Streamer auth allowed userId: ${userId}, meetingId: ${meetingId}, event: ${eventName}, time: ${time}, timestamp: ${timestamp/1000} rate: ${rate}, state: ${state}`); - return true; - } - - Logger.debug(`ExternalVideo Streamer auth rejected userId: ${userId}, meetingId: ${meetingId}, event: ${eventName}, time: ${time}, timestamp: ${timestamp/1000} rate: ${rate}, state: ${state}`); - - return false; + Logger.debug(`ExternalVideo Streamer auth allowed userId: ${userId}, meetingId: ${meetingId}, event: ${eventName}, time: ${time} rate: ${rate}, state: ${state}`); + return true; }; export default function initializeExternalVideo() { diff --git a/bigbluebutton-html5/imports/api/meetings/server/publishers.js b/bigbluebutton-html5/imports/api/meetings/server/publishers.js index 997c79b66b4b158e2c50b38c7a09401c42934fa1..dfbfb74a3b4e006c7afe492f55424eccb37b5eaa 100755 --- a/bigbluebutton-html5/imports/api/meetings/server/publishers.js +++ b/bigbluebutton-html5/imports/api/meetings/server/publishers.js @@ -6,7 +6,7 @@ import { extractCredentials } from '/imports/api/common/server/helpers'; const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator; -function meetings(isModerator = false) { +function meetings() { if (!this.userId) { return Meetings.find({ meetingId: '' }); } @@ -20,19 +20,18 @@ function meetings(isModerator = false) { ], }; - if (isModerator) { - const User = Users.findOne({ userId: requesterUserId, meetingId }); - if (!!User && User.role === ROLE_MODERATOR) { - selector.$or.push({ - 'meetingProp.isBreakout': true, - 'breakoutProps.parentId': meetingId, - }); - } + const User = Users.findOne({ userId: requesterUserId, meetingId }, { fields: { role: 1 } }); + if (!!User && User.role === ROLE_MODERATOR) { + selector.$or.push({ + 'meetingProp.isBreakout': true, + 'breakoutProps.parentId': meetingId, + }); } const options = { fields: { password: false, + 'welcomeProp.modOnlyMessage': false, }, }; diff --git a/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js b/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js index 3ad3aa1c251133caebe974ee5a7c9b34479a732d..761e383ede9eafae27c72990146aaadfc41a26e2 100755 --- a/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js +++ b/bigbluebutton-html5/imports/api/screenshare/client/bridge/kurento.js @@ -1,6 +1,6 @@ import Auth from '/imports/ui/services/auth'; import BridgeService from './service'; -import { fetchWebRTCMappedStunTurnServers } from '/imports/utils/fetchStunTurnServers'; +import { fetchWebRTCMappedStunTurnServers, getMappedFallbackStun } from '/imports/utils/fetchStunTurnServers'; import playAndRetry from '/imports/utils/mediaElementPlayRetry'; import logger from '/imports/startup/client/logger'; @@ -8,8 +8,8 @@ const SFU_CONFIG = Meteor.settings.public.kurento; const SFU_URL = SFU_CONFIG.wsUrl; const CHROME_DEFAULT_EXTENSION_KEY = SFU_CONFIG.chromeDefaultExtensionKey; const CHROME_CUSTOM_EXTENSION_KEY = SFU_CONFIG.chromeExtensionKey; -const CHROME_SCREENSHARE_SOURCES = SFU_CONFIG.chromeScreenshareSources; -const FIREFOX_SCREENSHARE_SOURCE = SFU_CONFIG.firefoxScreenshareSource; +const CHROME_SCREENSHARE_SOURCES = SFU_CONFIG.screenshare.chromeScreenshareSources; +const FIREFOX_SCREENSHARE_SOURCE = SFU_CONFIG.screenshare.firefoxScreenshareSource; const SCREENSHARE_VIDEO_TAG = 'screenshareVideo'; const CHROME_EXTENSION_KEY = CHROME_CUSTOM_EXTENSION_KEY === 'KEY' ? CHROME_DEFAULT_EXTENSION_KEY : CHROME_CUSTOM_EXTENSION_KEY; @@ -72,6 +72,7 @@ export default class KurentoScreenshareBridge { } catch (error) { logger.error({ logCode: 'screenshare_viwer_fetchstunturninfo_error', extraInfo: { error } }, 'Screenshare bridge failed to fetch STUN/TURN info, using default'); + iceServers = getMappedFallbackStun(); } finally { const options = { wsUrl: Auth.authenticateURL(SFU_URL), @@ -161,13 +162,15 @@ export default class KurentoScreenshareBridge { window.kurentoExitVideo(); } - async kurentoShareScreen(onFail) { + async kurentoShareScreen(onFail, stream) { let iceServers = []; try { iceServers = await fetchWebRTCMappedStunTurnServers(getSessionToken()); } catch (error) { logger.error({ logCode: 'screenshare_presenter_fetchstunturninfo_error' }, + 'Screenshare bridge failed to fetch STUN/TURN info, using default'); + iceServers = getMappedFallbackStun(); } finally { const options = { wsUrl: Auth.authenticateURL(SFU_URL), @@ -193,6 +196,8 @@ export default class KurentoScreenshareBridge { }, 'Screenshare presenter started succesfully'); }; + options.stream = stream || undefined; + window.kurentoShareScreen( SCREENSHARE_VIDEO_TAG, BridgeService.getConferenceBridge(), diff --git a/bigbluebutton-html5/imports/api/screenshare/client/bridge/service.js b/bigbluebutton-html5/imports/api/screenshare/client/bridge/service.js index b1be0cc4291efa54520fb68a0d2e85e9eab8a19e..a8c0c901752b450d98d222cd285c6b4401d441af 100644 --- a/bigbluebutton-html5/imports/api/screenshare/client/bridge/service.js +++ b/bigbluebutton-html5/imports/api/screenshare/client/bridge/service.js @@ -1,7 +1,82 @@ import Meetings from '/imports/api/meetings'; +import logger from '/imports/startup/client/logger'; + +const { + constraints: GDM_CONSTRAINTS, +} = Meteor.settings.public.kurento.screenshare; + +const hasDisplayMedia = (typeof navigator.getDisplayMedia === 'function' + || (navigator.mediaDevices && typeof navigator.mediaDevices.getDisplayMedia === 'function')); const getConferenceBridge = () => Meetings.findOne().voiceProp.voiceConf; +const getScreenStream = async () => { + const gDMCallback = (stream) => { + if (typeof stream.getVideoTracks === 'function' + && typeof constraints.video === 'object') { + stream.getVideoTracks().forEach((track) => { + if (typeof track.applyConstraints === 'function') { + track.applyConstraints(constraints.video).catch((error) => { + logger.warn({ + logCode: 'screenshare_videoconstraint_failed', + extraInfo: { errorName: error.name, errorCode: error.code }, + }, + 'Error applying screenshare video constraint'); + }); + } + }); + } + + if (typeof stream.getAudioTracks === 'function' + && typeof constraints.audio === 'object') { + stream.getAudioTracks().forEach((track) => { + if (typeof track.applyConstraints === 'function') { + track.applyConstraints(constraints.audio).catch((error) => { + logger.warn({ + logCode: 'screenshare_audioconstraint_failed', + extraInfo: { errorName: error.name, errorCode: error.code }, + }, 'Error applying screenshare audio constraint'); + }); + } + }); + } + + return Promise.resolve(stream); + }; + + const constraints = hasDisplayMedia ? GDM_CONSTRAINTS : null; + + // getDisplayMedia isn't supported, generate no stream and let the legacy + // constraint fetcher work its way on kurento-extension.js + if (constraints == null) { + return Promise.resolve(); + } + if (typeof navigator.getDisplayMedia === 'function') { + return navigator.getDisplayMedia(constraints) + .then(gDMCallback) + .catch((error) => { + logger.error({ + logCode: 'screenshare_getdisplaymedia_failed', + extraInfo: { errorName: error.name, errorCode: error.code }, + }, 'getDisplayMedia call failed'); + return Promise.resolve(); + }); + } if (navigator.mediaDevices && typeof navigator.mediaDevices.getDisplayMedia === 'function') { + return navigator.mediaDevices.getDisplayMedia(constraints) + .then(gDMCallback) + .catch((error) => { + logger.error({ + logCode: 'screenshare_getdisplaymedia_failed', + extraInfo: { errorName: error.name, errorCode: error.code }, + }, 'getDisplayMedia call failed'); + return Promise.resolve(); + }); + } +}; + + export default { + hasDisplayMedia, getConferenceBridge, + getScreenStream, }; diff --git a/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js b/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js index dae1bf3b4a757d0e73d93f7f6c44096cafa00f97..ff37339c6ec037b413700f4f79634841530e4bca 100644 --- a/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js +++ b/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js @@ -15,7 +15,9 @@ const clearOtherSessions = (sessionUserId, current = false) => { }; export default function handleValidateAuthToken({ body }, meetingId) { - const { userId, valid, authToken, waitForApproval } = body; + const { + userId, valid, authToken, waitForApproval, + } = body; check(userId, String); check(authToken, String); @@ -24,46 +26,50 @@ export default function handleValidateAuthToken({ body }, meetingId) { const pendingAuths = pendingAuthenticationsStore.take(meetingId, userId, authToken); - if(!valid) { - pendingAuths.forEach ( - pendingAuth => { + if (!valid) { + pendingAuths.forEach( + (pendingAuth) => { try { - const {methodInvocationObject} = pendingAuth; + const { methodInvocationObject } = pendingAuth; const connectionId = methodInvocationObject.connection.id; - methodInvocationObject.connection.close(); + // Schedule socket disconnection for this user, giving some time for client receiving the reason of disconnection + Meteor.setTimeout(() => { + methodInvocationObject.connection.close(); + }, 2000); + 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) { + 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 */ + 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, + }); + + if (!User) { + createDummyUser(meetingId, userId, authToken); } + + setConnectionIdAndAuthToken(meetingId, userId, methodInvocationObject.connection.id, authToken); + /* End of logic migrated from validateAuthToken */ + }, ); } diff --git a/bigbluebutton-html5/imports/api/users/server/methods/removeUser.js b/bigbluebutton-html5/imports/api/users/server/methods/removeUser.js index afe41d6f9f83c3e34a23dd0932a67080b9bb77cc..6649b481ea15d6f55897e0470dbeea7ebfb1facb 100644 --- a/bigbluebutton-html5/imports/api/users/server/methods/removeUser.js +++ b/bigbluebutton-html5/imports/api/users/server/methods/removeUser.js @@ -3,7 +3,7 @@ import { check } from 'meteor/check'; import RedisPubSub from '/imports/startup/server/redis'; import { extractCredentials } from '/imports/api/common/server/helpers'; -export default function removeUser(userId) { +export default function removeUser(userId, banUser) { const REDIS_CONFIG = Meteor.settings.private.redis; const CHANNEL = REDIS_CONFIG.channels.toAkkaApps; const EVENT_NAME = 'EjectUserFromMeetingCmdMsg'; @@ -15,6 +15,7 @@ export default function removeUser(userId) { const payload = { userId, ejectedBy, + banUser, }; return RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, ejectedBy, payload); diff --git a/bigbluebutton-html5/imports/api/users/server/publishers.js b/bigbluebutton-html5/imports/api/users/server/publishers.js index 861fb357e16daebcc17417ef6f1efc2eb8d69c5b..d7c029716013c023591fa8272995421a250dfc15 100644 --- a/bigbluebutton-html5/imports/api/users/server/publishers.js +++ b/bigbluebutton-html5/imports/api/users/server/publishers.js @@ -51,7 +51,7 @@ function publishCurrentUser(...args) { Meteor.publish('current-user', publishCurrentUser); -function users(isModerator = false) { +function users() { if (!this.userId) { return Users.find({ meetingId: '' }); } @@ -63,15 +63,13 @@ function users(isModerator = false) { ], }; - if (isModerator) { - const User = Users.findOne({ userId: requesterUserId, meetingId }); - if (!!User && User.role === ROLE_MODERATOR) { - selector.$or.push({ - 'breakoutProps.isBreakoutUser': true, - 'breakoutProps.parentId': meetingId, - connectionStatus: 'online', - }); - } + const User = Users.findOne({ userId: requesterUserId, meetingId }, { fields: { role: 1 } }); + if (!!User && User.role === ROLE_MODERATOR) { + selector.$or.push({ + 'breakoutProps.isBreakoutUser': true, + 'breakoutProps.parentId': meetingId, + connectionStatus: 'online', + }); } const options = { diff --git a/bigbluebutton-html5/imports/api/users/server/store/pendingAuthentications.js b/bigbluebutton-html5/imports/api/users/server/store/pendingAuthentications.js index c181ac8f9585e0e08ba1551ceb3ba4e55d9d3568..97b13cc7141201441a7c78195146ae5480b5754e 100644 --- a/bigbluebutton-html5/imports/api/users/server/store/pendingAuthentications.js +++ b/bigbluebutton-html5/imports/api/users/server/store/pendingAuthentications.js @@ -1,43 +1,48 @@ import Logger from '/imports/startup/server/logger'; class PendingAuthentitcations { - constructor () { - Logger.debug("PendingAuthentitcations :: constructor"); - this.store = []; - } + 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, ''); + 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}'; - } + // 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 - }); - } + 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; + take(meetingId, userId, authToken) { + const key = this.generateKey(meetingId, userId, authToken); + Logger.debug('PendingAuthentitcations :: take', { + key, 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 +export default new PendingAuthentitcations(); diff --git a/bigbluebutton-html5/imports/startup/client/intl.jsx b/bigbluebutton-html5/imports/startup/client/intl.jsx index dfb1a10b5b312cdaf4105d14385d0c9641c17ebb..3e139e57c74e1a80cd498828926f1889893de47e 100644 --- a/bigbluebutton-html5/imports/startup/client/intl.jsx +++ b/bigbluebutton-html5/imports/startup/client/intl.jsx @@ -32,6 +32,7 @@ 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 kn from 'react-intl/locale-data/kn'; import ko from 'react-intl/locale-data/ko'; import lt from 'react-intl/locale-data/lt'; import lv from 'react-intl/locale-data/lv'; @@ -79,6 +80,7 @@ addLocaleData([ ...ja, ...ka, ...km, + ...kn, ...ko, ...lt, ...lv, diff --git a/bigbluebutton-html5/imports/startup/server/redis.js b/bigbluebutton-html5/imports/startup/server/redis.js index f8901d35204579f0cceb9bbd69f29daf9e21c6e8..5894152a5e2ac4f464aa6e13a3eacdc51c865c5a 100755 --- a/bigbluebutton-html5/imports/startup/server/redis.js +++ b/bigbluebutton-html5/imports/startup/server/redis.js @@ -239,6 +239,9 @@ class RedisPubSub { userId, }; + if (!meetingId || !userId) { + return Logger.warn(`Interrupted publishing of ${JSON.stringify(header)} due to missing data`); + } const envelope = makeEnvelope(channel, eventName, header, payload, { meetingId, userId }); return this.pub.publish(channel, envelope, RedisPubSub.handlePublishError); 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 e0c5080a16cb4f750fb526e39cf414badb074894..c2a148fc3bb559685f0d95dd27c4ce720ac04d8f 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 @@ -9,6 +9,7 @@ import cx from 'classnames'; import Modal from '/imports/ui/components/modal/simple/component'; import { withModalMounter } from '../../modal/service'; import { styles } from '../styles'; +import ScreenshareBridgeService from '/imports/api/screenshare/client/bridge/service'; const propTypes = { intl: intlShape.isRequired, @@ -55,9 +56,9 @@ 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', + screenShareNotSupported: { + id: 'app.media.screenshare.notSupported', + descriptions: 'error message when trying share screen on unsupported browsers', }, screenShareUnavailable: { id: 'app.media.screenshare.unavailable', @@ -114,7 +115,7 @@ const isMobileBrowser = (BROWSER_RESULTS ? BROWSER_RESULTS.mobile : false) || (BROWSER_RESULTS && BROWSER_RESULTS.os ? BROWSER_RESULTS.os.includes('Android') // mobile flag doesn't always work : false); -const isSafari = BROWSER_RESULTS.name === 'safari'; +const IS_SAFARI = BROWSER_RESULTS.name === 'safari'; const DesktopShare = ({ intl, @@ -182,7 +183,7 @@ const DesktopShare = ({ circle size="lg" onClick={isVideoBroadcasting ? handleUnshareScreen : () => { - if (isSafari) { + if (IS_SAFARI && !ScreenshareBridgeService.hasDisplayMedia) { return mountModal(<Modal overlayClassName={styles.overlay} className={styles.modal} @@ -193,7 +194,7 @@ const DesktopShare = ({ <h3 className={styles.title}> {intl.formatMessage(intlMessages.screenShareUnavailable)} </h3> - <p>{intl.formatMessage(intlMessages.noSafariScreenShare)}</p> + <p>{intl.formatMessage(intlMessages.screenShareNotSupported)}</p> </Modal>); } handleShareScreen(onFail); diff --git a/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx b/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx index 90be874a036a3eaa2f7fb12e644011cdce02e624..abf8323c274fdc549393a2c6cc7f39069abe916a 100755 --- a/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx @@ -92,7 +92,7 @@ class AudioControls extends PureComponent { icon={muted ? 'mute' : 'unmute'} size="lg" circle - accessKey={shortcuts.toggleMute} + accessKey={shortcuts.togglemute} /> ) : null} <Button @@ -109,7 +109,7 @@ class AudioControls extends PureComponent { icon={joinIcon} size="lg" circle - accessKey={inAudio ? shortcuts.leaveAudio : shortcuts.joinAudio} + accessKey={inAudio ? shortcuts.leaveaudio : shortcuts.joinaudio} /> </span>); } diff --git a/bigbluebutton-html5/imports/ui/components/chat/container.jsx b/bigbluebutton-html5/imports/ui/components/chat/container.jsx index 4efc1f5d4f096407ba7db33ee335f7e78156a26a..070a21e4a34210c1bed19abde0d376d32161d0c1 100755 --- a/bigbluebutton-html5/imports/ui/components/chat/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/container.jsx @@ -5,6 +5,7 @@ import { Session } from 'meteor/session'; import Auth from '/imports/ui/services/auth'; import Chat from './component'; import ChatService from './service'; +import Storage from '/imports/ui/services/storage/session'; const CHAT_CONFIG = Meteor.settings.public.chat; const PUBLIC_CHAT_KEY = CHAT_CONFIG.public_id; @@ -88,7 +89,8 @@ export default injectIntl(withTracker(({ intl }) => { }; let moderatorMsg; - if (amIModerator && welcomeProp.modOnlyMessage) { + const modOnlyMessage = Storage.getItem('ModeratorOnlyMessage'); + if (amIModerator && modOnlyMessage) { const moderatorTime = time + 1; const moderatorId = `moderator-msg-${moderatorTime}`; @@ -96,7 +98,7 @@ export default injectIntl(withTracker(({ intl }) => { id: moderatorId, content: [{ id: moderatorId, - text: welcomeProp.modOnlyMessage, + text: modOnlyMessage, time: moderatorTime, }], time: moderatorTime, @@ -113,7 +115,7 @@ export default injectIntl(withTracker(({ intl }) => { const messagesFormated = messagesBeforeWelcomeMsg .concat(welcomeMsg) - .concat(moderatorMsg || []) + .concat((amIModerator && modOnlyMessage) || []) .concat(messagesAfterWelcomeMsg); messages = messagesFormated.sort((a, b) => (a.time - b.time)); diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx index 845076181ce37854b24c79b55919d9fd86a9f29d..015bdfae46d6b09fae1f8af9996c8e91bad72dd5 100644 --- a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx @@ -154,25 +154,24 @@ class VideoPlayer extends Component { const timestamp = Date.now(); // If message is just a quick pause/un-pause just send nothing - const sinceLastMessage = (timestamp - this.lastMessageTimestamp)/1000; - if ((msg === 'play' && this.lastMessage === 'stop' || - msg === 'stop' && this.lastMessage === 'play') && - sinceLastMessage < THROTTLE_INTERVAL_SECONDS) { - - return clearTimeout(this.throttleTimeout); + const sinceLastMessage = (timestamp - this.lastMessageTimestamp) / 1000; + if ((msg === 'play' && this.lastMessage === 'stop' + || msg === 'stop' && this.lastMessage === 'play') + && sinceLastMessage < THROTTLE_INTERVAL_SECONDS) { + return clearTimeout(this.throttleTimeout); } // Ignore repeat presenter ready messages if (this.lastMessage === msg && msg === 'presenterReady') { - logger.debug("Ignoring a repeated presenterReady message"); + logger.debug('Ignoring a repeated presenterReady message'); } else { // Play/pause messages are sent with a delay, to permit cancelling it in case of // quick sucessive play/pauses const messageDelay = (msg === 'play' || msg === 'stop') ? THROTTLE_INTERVAL_SECONDS : 0; this.throttleTimeout = setTimeout(() => { - sendMessage(msg, { ...params, timestamp }); - }, messageDelay*1000); + sendMessage(msg, { ...params }); + }, messageDelay * 1000); this.lastMessage = msg; this.lastMessageTimestamp = timestamp; @@ -201,7 +200,7 @@ class VideoPlayer extends Component { getCurrentTime() { if (this.player && this.player.getCurrentTime) { - return this.player.getCurrentTime(); + return Math.round(this.player.getCurrentTime()); } } @@ -265,27 +264,26 @@ class VideoPlayer extends Component { this.sendSyncMessage('playerUpdate', { rate, time: curTime, state: playingState }); }, SYNC_INTERVAL_SECONDS * 1000); - } else { - onMessage('play', ({ time, timestamp }) => { + onMessage('play', ({ time }) => { const { hasPlayedBefore, player } = this; if (!player || !hasPlayedBefore) { return; } - this.seekTo(time, timestamp); + this.seekTo(time); this.setState({ playing: true }); logger.debug({ logCode: 'external_video_client_play' }, 'Play external video'); }); - onMessage('stop', ({ time, timestamp }) => { + onMessage('stop', ({ time }) => { const { hasPlayedBefore, player } = this; if (!player || !hasPlayedBefore) { return; } - this.seekTo(time, timestamp); + this.seekTo(time); this.setState({ playing: false }); logger.debug({ logCode: 'external_video_client_stop' }, 'Stop external video'); @@ -304,7 +302,7 @@ class VideoPlayer extends Component { onMessage('playerUpdate', (data) => { const { hasPlayedBefore, player } = this; const { playing } = this.state; - const { time, timestamp, rate, state } = data; + const { time, rate, state } = data; if (!player || !hasPlayedBefore) { return; @@ -320,7 +318,7 @@ class VideoPlayer extends Component { }, 'Change external video playback rate.'); } - this.seekTo(time, timestamp); + this.seekTo(time); if (playing !== state) { this.setState({ playing: state }); @@ -329,32 +327,20 @@ class VideoPlayer extends Component { } } - seekTo(time, timestamp) { + seekTo(time) { const { player } = this; if (!player) { - return logger.error("No player on seek"); + return logger.error('No player on seek'); } - const curTimestamp = Date.now(); - const timestampDiff = (curTimestamp - timestamp)/1000; - const realTime = time + timestampDiff; - - // Ignore seek commands that arrived too late - if (timestampDiff > SYNC_INTERVAL_SECONDS) { - logger.debug({ - logCode: 'external_video_client_message_too_late', - extraInfo: { time, timestamp, }, - }, 'Not seeking because message came too late'); - return; - } // Seek if viewer has drifted too far away from presenter - if (Math.abs(this.getCurrentTime() - realTime) > SYNC_INTERVAL_SECONDS*0.75) { - player.seekTo(realTime, true); + if (Math.abs(this.getCurrentTime() - time) > SYNC_INTERVAL_SECONDS * 0.75) { + player.seekTo(time, true); logger.debug({ logCode: 'external_video_client_update_seek', - extraInfo: { time, timestamp, }, + extraInfo: { time }, }, `Seek external video to: ${time}`); } } diff --git a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx index f3abba65a00f3814ac83bc7ffd94854c19d1d6be..b5de6d3bc85a47774b2f10db03d11ec89f13c5e9 100755 --- a/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/join-handler/component.jsx @@ -2,7 +2,7 @@ import React, { Component } from 'react'; import { Session } from 'meteor/session'; import PropTypes from 'prop-types'; import Auth from '/imports/ui/services/auth'; -import { setCustomLogoUrl } from '/imports/ui/components/user-list/service'; +import { setCustomLogoUrl, setModeratorOnlyMessage } 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'; @@ -140,6 +140,13 @@ class JoinHandler extends Component { return resp; }; + const setModOnlyMessage = (resp) => { + if (resp && resp.modOnlyMessage) { + setModeratorOnlyMessage(resp.modOnlyMessage); + } + return resp; + }; + const setCustomData = (resp) => { const { customdata } = resp; @@ -169,6 +176,7 @@ class JoinHandler extends Component { setBannerProps(response); setLogoURL(response); + setModOnlyMessage(response); logUserInfo(); Tracker.autorun(async (cd) => { diff --git a/bigbluebutton-html5/imports/ui/components/media/container.jsx b/bigbluebutton-html5/imports/ui/components/media/container.jsx index 18393e340b794e219342329ffd3b70e526fa33a4..9ee199e75ff9988f01d4af63ae78a1e113210cf8 100755 --- a/bigbluebutton-html5/imports/ui/components/media/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/media/container.jsx @@ -34,9 +34,9 @@ const intlMessages = defineMessages({ id: 'app.media.screenshare.end', description: 'toast to show when a screenshare has ended', }, - screenshareSafariNotSupportedError: { - id: 'app.media.screenshare.safariNotSupported', - description: 'Error message for screenshare not supported on Safari', + screenshareNotSupported: { + id: 'app.media.screenshare.notSupported', + description: 'Error message for screenshare not supported', }, chromeExtensionError: { id: 'app.video.chromeExtensionError', @@ -51,7 +51,7 @@ const intlMessages = defineMessages({ class MediaContainer extends Component { componentWillMount() { document.addEventListener('installChromeExtension', this.installChromeExtension.bind(this)); - document.addEventListener('safariScreenshareNotSupported', this.safariScreenshareNotSupported.bind(this)); + document.addEventListener('screenshareNotSupported', this.screenshareNotSupported.bind(this)); } componentWillReceiveProps(nextProps) { @@ -71,7 +71,7 @@ class MediaContainer extends Component { componentWillUnmount() { document.removeEventListener('installChromeExtension', this.installChromeExtension.bind(this)); - document.removeEventListener('safariScreenshareNotSupported', this.safariScreenshareNotSupported.bind(this)); + document.removeEventListener('screenshareNotSupported', this.screenshareNotSupported.bind(this)); } installChromeExtension() { @@ -93,9 +93,9 @@ class MediaContainer extends Component { notify(chromeErrorElement, 'error', 'desktop'); } - safariScreenshareNotSupported() { + screenshareNotSupported() { const { intl } = this.props; - notify(intl.formatMessage(intlMessages.screenshareSafariNotSupportedError), 'error', 'desktop'); + notify(intl.formatMessage(intlMessages.screenshareNotSupported), 'error', 'desktop'); } render() { diff --git a/bigbluebutton-html5/imports/ui/components/modal/remove-user/component.jsx b/bigbluebutton-html5/imports/ui/components/modal/remove-user/component.jsx new file mode 100644 index 0000000000000000000000000000000000000000..b89152df8dc62890ec11d78a435e5655076e45ab --- /dev/null +++ b/bigbluebutton-html5/imports/ui/components/modal/remove-user/component.jsx @@ -0,0 +1,100 @@ +import React, { Component } from 'react'; +import { defineMessages } from 'react-intl'; +import PropTypes from 'prop-types'; +import { withModalMounter } from '/imports/ui/components/modal/service'; +import Modal from '/imports/ui/components/modal/simple/component'; +import Button from '/imports/ui/components/button/component'; +import { styles } from './styles'; + +const messages = defineMessages({ + yesLabel: { + id: 'app.endMeeting.yesLabel', + description: 'confirm button label', + }, + noLabel: { + id: 'app.endMeeting.noLabel', + description: 'cancel confirm button label', + }, + removeConfirmTitle: { + id: 'app.userList.menu.removeConfirmation.label', + description: 'title for remove user confirmation modal', + }, + removeConfirmDesc: { + id: 'app.userlist.menu.removeConfirmation.desc', + description: 'description for remove user confirmation', + }, +}); + +const propTypes = { +}; + +class RemoveUserModal extends Component { + constructor(props) { + super(props); + + this.state = { + checked: false, + }; + } + + render() { + const { + mountModal, onConfirm, user, title, intl, + } = this.props; + + const { + checked, + } = this.state; + + return ( + <Modal + overlayClassName={styles.overlay} + className={styles.modal} + onRequestClose={() => mountModal(null)} + hideBorder + contentLabel={title} + > + <div className={styles.container}> + <div className={styles.header}> + <div className={styles.title}> + {intl.formatMessage(messages.removeConfirmTitle, { 0: user.name })} + </div> + </div> + <div className={styles.description}> + <label htmlFor="banUserCheckbox" key="eject-or-ban-user"> + <input + className={styles.banUserCheckBox} + type="checkbox" + id="banUserCheckbox" + onChange={() => this.setState({ checked: !checked })} + checked={checked} + aria-label={intl.formatMessage(messages.removeConfirmDesc)} + /> + <span aria-hidden>{intl.formatMessage(messages.removeConfirmDesc)}</span> + </label> + </div> + + <div className={styles.footer}> + <Button + color="primary" + className={styles.confirmBtn} + label={intl.formatMessage(messages.yesLabel)} + onClick={() => { + onConfirm(user.userId, checked); + mountModal(null); + }} + /> + <Button + label={intl.formatMessage(messages.noLabel)} + className={styles.dismissBtn} + onClick={() => mountModal(null)} + /> + </div> + </div> + </Modal> + ); + } +} + +RemoveUserModal.propTypes = propTypes; +export default withModalMounter(RemoveUserModal); diff --git a/bigbluebutton-html5/imports/ui/components/modal/remove-user/styles.scss b/bigbluebutton-html5/imports/ui/components/modal/remove-user/styles.scss new file mode 100644 index 0000000000000000000000000000000000000000..ac7ab070c28a24fe37d318c8f30348927fbf5610 --- /dev/null +++ b/bigbluebutton-html5/imports/ui/components/modal/remove-user/styles.scss @@ -0,0 +1,81 @@ +@import "/imports/ui/components/user-list/styles.scss"; +@import "/imports/ui/stylesheets/variables/_all"; +@import '/imports/ui/stylesheets/mixins/_indicators'; +@import '/imports/ui/stylesheets/mixins/focus'; +@import "/imports/ui/components/modal/simple/styles"; + +:root { + --ban-checkbox-top-offset: 0.134rem; + --ban-checkbox-margin-right: 0.5rem; + } + +.title { + color: var(--color-gray-dark); + font-weight: var(--headings-font-weight); + font-size: var(--jumbo-padding-y); + } + + .container { + display: flex; + align-items: center; + flex-direction: column; + padding: 0; + margin-top: 0; + margin-right: var(--description-margin); + margin-left: var(--description-margin); + margin-bottom: var(--lg-padding-x); + } + + .footer { + display:flex; + } + + .confirmBtn, + .dismissBtn { + padding-right: var(--jumbo-padding-y); + padding-left: var(--jumbo-padding-y); + margin: 0 var(--sm-padding-x) 0 0; + + [dir="rtl"] & { + margin: 0 0 0 var(--sm-padding-x); + } + } + + .dismissBtn { + box-shadow: 0 0 0 1px var(--color-gray); + } + + .description { + text-align: center; + line-height: var(--line-height-base); + color: var(--color-gray); + margin-bottom: var(--jumbo-padding-y) + } + + .modal { + @extend .modal; + padding: var(--sm-padding-y); + } + + .overlay { + @extend .overlay; + } + + .header { + margin: 0; + padding: 0; + border: none; + line-height: var(--title-position-left); + margin-bottom: var(--lg-padding-y); + } + + .banUserCheckBox { + position: relative; + top:var(--ban-checkbox-top-offset); + margin-right: var(--ban-checkbox-margin-right); + [dir="rtl"] & { + margin-right: 0; + margin-left: var(--ban-checkbox-margin-right); + } + } + \ No newline at end of file diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx b/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx index 703e71b90ed91a30a25144c4cba36a9ff74a9e2d..0a23e1e2c2bd5aadb3661c68b5f9ae7ee66fabbd 100755 --- a/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx @@ -6,6 +6,7 @@ import { withModalMounter } from '/imports/ui/components/modal/service'; import withShortcutHelper from '/imports/ui/components/shortcut-help/service'; import getFromUserSettings from '/imports/ui/services/users-settings'; import { defineMessages, injectIntl } from 'react-intl'; +import Icon from '../icon/component'; import { styles } from './styles.scss'; import Button from '../button/component'; import RecordingIndicator from './recording-indicator/container'; @@ -91,6 +92,9 @@ class NavBar extends PureComponent { <div className={styles.navbar}> <div className={styles.top}> <div className={styles.left}> + {!isExpanded ? null + : <Icon iconName="left_arrow" className={styles.arrowLeft} /> + } <Button data-test="userListToggleButton" onClick={NavBar.handleToggleUserList} @@ -105,6 +109,9 @@ class NavBar extends PureComponent { aria-expanded={isExpanded} accessKey={TOGGLE_USERLIST_AK} /> + {isExpanded ? null + : <Icon iconName="right_arrow" className={styles.arrowRight} /> + } </div> <div className={styles.center}> <h1 className={styles.presentationTitle}>{presentationTitle}</h1> diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/styles.scss b/bigbluebutton-html5/imports/ui/components/nav-bar/styles.scss index 16f878577395634330f6e390549956d1fe5df59f..b3e4205a4709f36587341f26c2b1991f16968a83 100755 --- a/bigbluebutton-html5/imports/ui/components/nav-bar/styles.scss +++ b/bigbluebutton-html5/imports/ui/components/nav-bar/styles.scss @@ -3,6 +3,9 @@ :root { --mobile-nav-height: 5rem; --mobile-margin-top: .25rem; + --arrow-l-left: 1.1rem; + --arrow-r-left: 2.5rem; + --arrow-size: 40%; } .navbar { @@ -73,6 +76,31 @@ } } +.arrowRight, +.arrowLeft { + position: absolute; + font-size: var(--arrow-size); + color: var(--color-white); +} + +.arrowLeft { + width: var(--lg-padding-y); + left: var(--arrow-l-left); + [dir="rtl"] & { + right: var(--arrow-r-left); + left: 0; + } +} + +.arrowRight { + width: var(--md-padding-x); + left: var(--arrow-r-left); + [dir="rtl"] & { + right: .5rem; + left: 0; + } +} + .btn { margin: 0; diff --git a/bigbluebutton-html5/imports/ui/components/note/service.js b/bigbluebutton-html5/imports/ui/components/note/service.js index 0bdfa4d02a6accfccf72fa28ded9c90015d3e4a0..002f788437b910c3481ac1e52bf660a7db1ca9a3 100644 --- a/bigbluebutton-html5/imports/ui/components/note/service.js +++ b/bigbluebutton-html5/imports/ui/components/note/service.js @@ -43,7 +43,7 @@ const isLocked = () => { const meeting = Meetings.findOne({ meetingId: Auth.meetingID }, { fields: { 'lockSettingsProps.disableNote': 1 } }); const user = Users.findOne({ userId: Auth.userID }, { fields: { locked: 1, role: 1 } }); - if (meeting.lockSettingsProps && user.locked && user.role !== ROLE_MODERATOR) { + if (meeting.lockSettingsProps && user.role !== ROLE_MODERATOR) { return meeting.lockSettingsProps.disableNote; } return false; @@ -90,7 +90,7 @@ const hasUnreadNotes = () => { const lastRevs = getLastRevs(); return (revs !== 0 && revs > lastRevs); -} +}; const isEnabled = () => { const note = Note.findOne({ meetingId: Auth.meetingID }); @@ -100,7 +100,7 @@ const isEnabled = () => { const toggleNotePanel = () => { Session.set( 'openPanel', - isPanelOpened() ? 'userlist' : 'note' + isPanelOpened() ? 'userlist' : 'note', ); }; @@ -116,5 +116,5 @@ export default { getRevs, setLastRevs, getLastRevs, - hasUnreadNotes + hasUnreadNotes, }; diff --git a/bigbluebutton-html5/imports/ui/components/screenshare/service.js b/bigbluebutton-html5/imports/ui/components/screenshare/service.js index ef1306338d4f5a366c6ed3cf5be949469d95b435..f2d71423fad098ddfe40dbf4d343f9b20aec0e67 100644 --- a/bigbluebutton-html5/imports/ui/components/screenshare/service.js +++ b/bigbluebutton-html5/imports/ui/components/screenshare/service.js @@ -1,5 +1,6 @@ import Screenshare from '/imports/api/screenshare'; import KurentoBridge from '/imports/api/screenshare/client/bridge'; +import BridgeService from '/imports/api/screenshare/client/bridge/service'; import Settings from '/imports/ui/services/settings'; import logger from '/imports/startup/client/logger'; import { tryGenerateIceCandidates } from '/imports/utils/safari-webrtc'; @@ -56,7 +57,9 @@ const shareScreen = (onFail) => { stopWatching(); } - KurentoBridge.kurentoShareScreen(onFail); + BridgeService.getScreenStream().then((stream) => { + KurentoBridge.kurentoShareScreen(onFail, stream); + }).catch(onFail); }; const screenShareEndAlert = () => new Audio(`${Meteor.settings.public.app.cdn + Meteor.settings.public.app.basename}/resources/sounds/ScreenshareOff.mp3`).play(); diff --git a/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx b/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx index e5f563245bbf3a9c39c7fb54418343096f8ac387..97a88ccd05d797e7c1635810f6c73eb0c836be7f 100644 --- a/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/shortcut-help/component.jsx @@ -32,43 +32,43 @@ const intlMessages = defineMessages({ id: 'app.shortcut-help.functionLabel', description: 'heading for shortcut function column', }, - openOptions: { + openoptions: { id: 'app.shortcut-help.openOptions', description: 'describes the open options shortcut', }, - toggleUserList: { + toggleuserlist: { id: 'app.shortcut-help.toggleUserList', description: 'describes the toggle userlist shortcut', }, - toggleMute: { + togglemute: { id: 'app.shortcut-help.toggleMute', description: 'describes the toggle mute shortcut', }, - togglePublicChat: { + togglepublicchat: { id: 'app.shortcut-help.togglePublicChat', description: 'describes the toggle public chat shortcut', }, - hidePrivateChat: { + hideprivatechat: { id: 'app.shortcut-help.hidePrivateChat', description: 'describes the hide public chat shortcut', }, - closePrivateChat: { + closeprivatechat: { id: 'app.shortcut-help.closePrivateChat', description: 'describes the close private chat shortcut', }, - openActions: { + openactions: { id: 'app.shortcut-help.openActions', description: 'describes the open actions shortcut', }, - openStatus: { + openstatus: { id: 'app.shortcut-help.openStatus', description: 'describes the open status shortcut', }, - joinAudio: { + joinaudio: { id: 'app.audio.joinAudio', description: 'describes the join audio shortcut', }, - leaveAudio: { + leaveaudio: { id: 'app.audio.leaveAudio', description: 'describes the leave audio shortcut', }, @@ -122,11 +122,10 @@ const ShortcutHelpComponent = (props) => { const shortcutItems = shortcuts.map((shortcut) => { if (!CHAT_ENABLED && shortcut.descId.indexOf('Chat') !== -1) return null; - return ( <tr key={_.uniqueId('hotkey-item-')}> <td className={styles.keyCell}>{`${accessMod} + ${shortcut.accesskey}`}</td> - <td className={styles.descCell}>{intl.formatMessage(intlMessages[`${shortcut.descId}`])}</td> + <td className={styles.descCell}>{`${intl.formatMessage(intlMessages[`${shortcut.descId.toLowerCase()}`])}`}</td> </tr> ); }); diff --git a/bigbluebutton-html5/imports/ui/components/shortcut-help/service.jsx b/bigbluebutton-html5/imports/ui/components/shortcut-help/service.jsx index 01d1a5e50024978e14712c711787ebb3b1b4b993..4449ba56af842aae1fbc2b855cbb94823512af0a 100644 --- a/bigbluebutton-html5/imports/ui/components/shortcut-help/service.jsx +++ b/bigbluebutton-html5/imports/ui/components/shortcut-help/service.jsx @@ -23,7 +23,7 @@ const withShortcutHelper = (WrappedComponent, param) => (props) => { .pop(); } else { shortcuts = shortcuts - .filter(el => param.includes(el.descId)) + .filter(el => param.map(p => p.toLowerCase()).includes(el.descId.toLowerCase())) .reduce((acc, current) => { acc[current.descId] = current.accesskey; return acc; diff --git a/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx b/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx index 862685841526701b027b127217b853eb7205297f..2ba28e04d46def1693ec70e147384e135c528ec8 100755 --- a/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/subscriptions/component.jsx @@ -3,14 +3,12 @@ import { withTracker } from 'meteor/react-meteor-data'; import Auth from '/imports/ui/services/auth'; import logger from '/imports/startup/client/logger'; import GroupChat from '/imports/api/group-chat'; -import Users from '/imports/api/users'; import Annotations from '/imports/api/annotations'; import AnnotationsTextService from '/imports/ui/components/whiteboard/annotations/text/service'; import { Annotations as AnnotationsLocal } from '/imports/ui/components/whiteboard/service'; const CHAT_CONFIG = Meteor.settings.public.chat; -const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator; const CHAT_ENABLED = CHAT_CONFIG.enabled; const PUBLIC_GROUP_CHAT_ID = CHAT_CONFIG.public_group_id; const PUBLIC_CHAT_TYPE = CHAT_CONFIG.type_public; @@ -20,7 +18,7 @@ const SUBSCRIPTIONS = [ 'voiceUsers', 'whiteboard-multi-user', 'screenshare', 'group-chat', 'presentation-pods', 'users-settings', 'guestUser', 'users-infos', 'note', 'meeting-time-remaining', 'network-information', 'ping-pong', 'local-settings', 'users-typing', 'record-meetings', 'video-streams', - 'voice-call-states', + 'voice-call-states', 'breakouts', ]; class Subscriptions extends Component { @@ -62,7 +60,6 @@ export default withTracker(() => { return Meteor.subscribe( name, - credentials, subscriptionErrorHandler, ); }); @@ -88,15 +85,6 @@ export default withTracker(() => { subscriptionsHandlers.push(groupChatMessageHandler); } - const User = Users.findOne({ intId: requesterUserId }, { fields: { role: 1 } }); - - if (User) { - const userIsModerator = User.role === ROLE_MODERATOR; - Meteor.subscribe('users', userIsModerator, subscriptionErrorHandler); - Meteor.subscribe('breakouts', userIsModerator, subscriptionErrorHandler); - Meteor.subscribe('meetings', userIsModerator, subscriptionErrorHandler); - } - const annotationsHandler = Meteor.subscribe('annotations', { onReady: () => { const activeTextShapeId = AnnotationsTextService.activeTextShapeId(); diff --git a/bigbluebutton-html5/imports/ui/components/user-list/service.js b/bigbluebutton-html5/imports/ui/components/user-list/service.js index e3b0e38a39dc04739809cdb782718b19356dfe4e..70b3dd9ea83e46d87ad326cab51cd20431684a9f 100755 --- a/bigbluebutton-html5/imports/ui/components/user-list/service.js +++ b/bigbluebutton-html5/imports/ui/components/user-list/service.js @@ -42,6 +42,8 @@ const CUSTOM_LOGO_URL_KEY = 'CustomLogoUrl'; export const setCustomLogoUrl = path => Storage.setItem(CUSTOM_LOGO_URL_KEY, path); +export const setModeratorOnlyMessage = msg => Storage.setItem('ModeratorOnlyMessage', msg); + const getCustomLogoUrl = () => Storage.getItem(CUSTOM_LOGO_URL_KEY); const sortUsersByName = (a, b) => { @@ -303,8 +305,7 @@ const isMeetingLocked = (id) => { if (lockSettings.disableCam || lockSettings.disableMic || lockSettings.disablePrivateChat - || lockSettings.disablePublicChat - || lockSettings.disableNote) { + || lockSettings.disablePublicChat) { isLocked = true; } } @@ -408,11 +409,11 @@ const setEmojiStatus = (userId, emoji) => { const assignPresenter = (userId) => { makeCall('assignPresenter', userId); }; -const removeUser = (userId) => { +const removeUser = (userId, banUser) => { if (isVoiceOnlyUser(userId)) { makeCall('ejectUserFromVoice', userId); } else { - makeCall('removeUser', userId); + makeCall('removeUser', userId, banUser); } }; diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/container.jsx index 380959918428fc3f45060485b18a5c17d0a7fa9f..20baca6303e4c80f92bd1283d77ec9f0fc5b49a6 100644 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/container.jsx @@ -15,6 +15,7 @@ export default withTracker(() => ({ fields: { userId: 1, role: 1, + guest: 1, locked: 1, presenter: 1, }, diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss index fac980e0fd802aac66729997f8fc5c4c305afd6c..152d9c98c4ef9c6ca7af5852cc1c8de29a6b9054 100755 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss @@ -32,6 +32,7 @@ border-radius: none; } + overflow-x: hidden; outline-width: 1px !important; outline-color: transparent !important; } @@ -70,6 +71,11 @@ font-size: 175%; color: var(--color-gray-light); flex: 0 0 2.2rem; + margin-right: var(--sm-padding-x); + [dir="rtl"] & { + margin-right: 0; + margin-left: var(--sm-padding-x); + } } > span { @@ -91,6 +97,12 @@ } } + div { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + &:active { 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); @@ -134,3 +146,18 @@ overflow: hidden; flex-shrink: 1; } + +.noteLock { + font-weight: 200; + font-size: var(--font-size-smaller); + color: var(--color-gray); + + > i { + font-size: var(--font-size-xs); + } +} + +.noteTitle { + font-weight: 400; + font-size: var(--font-size-small); +} diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx index 7dab4f051b7d51ba46b719155684d00aa3cbce06..d73376919bb59600c52e89d23d01364b5df5c4f5 100644 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx @@ -26,6 +26,14 @@ const intlMessages = defineMessages({ id: 'app.userList.notesListItem.unreadContent', description: 'Aria label for notes unread content', }, + locked: { + id: 'app.userList.locked', + description: '', + }, + byModerator: { + id: 'app.userList.byModerator', + description: '', + }, }); class UserNotes extends Component { @@ -59,7 +67,7 @@ class UserNotes extends Component { } renderNotes() { - const { intl } = this.props; + const { intl, disableNote } = this.props; const { unread } = this.state; let notification = null; @@ -84,14 +92,26 @@ class UserNotes extends Component { onClick={NoteService.toggleNotePanel} > <Icon iconName="copy" /> - <span aria-hidden>{intl.formatMessage(intlMessages.sharedNotes)}</span> + <div aria-hidden> + <div className={styles.noteTitle}> + {intl.formatMessage(intlMessages.sharedNotes)} + </div> + {disableNote + ? ( + <div className={styles.noteLock}> + <Icon iconName="lock" /> + <span>{`${intl.formatMessage(intlMessages.locked)} ${intl.formatMessage(intlMessages.byModerator)}`}</span> + </div> + ) : null + } + </div> {notification} </div> ); } render() { - const { intl } = this.props; + const { intl, disableNote } = this.props; if (!NoteService.isEnabled()) return null; diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx index 4e8f514ec274b6982c38b1c078e523c040630155..9090376936ff3e58ea762728529e335fd9397e7e 100644 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx @@ -1,11 +1,28 @@ import React from 'react'; import { withTracker } from 'meteor/react-meteor-data'; import NoteService from '/imports/ui/components/note/service'; +import Meetings from '/imports/api/meetings'; +import Users from '/imports/api/users'; +import Auth from '/imports/ui/services/auth'; import UserNotes from './component'; +const ROLE_VIEWER = Meteor.settings.public.user.role_viewer; + const UserNotesContainer = props => <UserNotes {...props} />; -export default withTracker(() => ({ - isPanelOpened: NoteService.isPanelOpened(), - revs: NoteService.getRevs(), -}))(UserNotesContainer); +export default withTracker(() => { + const Meeting = Meetings.findOne({ meetingId: Auth.meetingID }, + { fields: { 'lockSettingsProps.disableNote': 1 } }); + const isViewer = Users.findOne({ meetingId: Auth.meetingID, userId: Auth.userID }, { + fields: { + role: 1, + }, + }).role === ROLE_VIEWER; + const shouldDisableNote = (Meeting.lockSettingsProps.disableNote) && isViewer; + + return { + isPanelOpened: NoteService.isPanelOpened(), + revs: NoteService.getRevs(), + disableNote: shouldDisableNote, + }; +})(UserNotesContainer); diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx index 9bca16580e86fb9448e0f4a49c5b4d2ded855579..cbe5dc9ed11de29cc9b36606a2753f13fcd5edb0 100755 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx @@ -57,6 +57,7 @@ class UserParticipants extends Component { this.rove = this.rove.bind(this); this.changeState = this.changeState.bind(this); this.getUsers = this.getUsers.bind(this); + this.handleClickSelectedUser = this.handleClickSelectedUser.bind(this); } componentDidMount() { @@ -66,6 +67,11 @@ class UserParticipants extends Component { 'keydown', this.rove, ); + + this.refScrollContainer.addEventListener( + 'click', + this.handleClickSelectedUser, + ); } } @@ -88,6 +94,7 @@ class UserParticipants extends Component { componentWillUnmount() { this.refScrollContainer.removeEventListener('keydown', this.rove); + this.refScrollContainer.removeEventListener('click', this.handleClickSelectedUser); } getScrollContainerRef() { @@ -134,6 +141,11 @@ class UserParticipants extends Component { )); } + handleClickSelectedUser(event) { + const selectedUser = event.path.find(p => p.className && p.className.includes('participantsList')); + this.setState({ selectedUser }); + } + rove(event) { const { roving } = this.props; const { selectedUser } = this.state; 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 452fa10ff739ea19e2ffc84548b6f53edbcce8ab..d7c805ea7fc960d817e564dd88e8e20fd1918ce3 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 @@ -11,7 +11,8 @@ import DropdownList from '/imports/ui/components/dropdown/list/component'; import DropdownListItem from '/imports/ui/components/dropdown/list/item/component'; import DropdownListSeparator from '/imports/ui/components/dropdown/list/separator/component'; import lockContextContainer from '/imports/ui/components/lock-viewers/context/container'; - +import { withModalMounter } from '/imports/ui/components/modal/service'; +import RemoveUserModal from '/imports/ui/components/modal/remove-user/component'; import _ from 'lodash'; import { Session } from 'meteor/session'; import { styles } from './styles'; @@ -103,6 +104,22 @@ const messages = defineMessages({ id: 'app.userList.handAlert', description: 'text displayed in raise hand toast', }, + yesLabel: { + id: 'app.endMeeting.yesLabel', + description: 'confirm button label', + }, + noLabel: { + id: 'app.endMeeting.noLabel', + description: 'cancel confirm button label', + }, + removeConfirmTitle: { + id: 'app.userList.menu.removeConfirmation.label', + description: 'title for remove user confirmation modal', + }, + removeConfirmDesc: { + id: 'app.userlist.menu.removeConfirmation.desc', + description: 'description for remove user confirmation', + }, }); const propTypes = { @@ -227,6 +244,7 @@ class UserDropdown extends PureComponent { userLocks, isMe, meetingIsBreakout, + mountModal, } = this.props; const { showNestedOptions } = this.state; @@ -352,7 +370,7 @@ class UserDropdown extends PureComponent { )); } - if (allowedToPromote && isMeteorConnected) { + if (allowedToPromote && !user.guest && isMeteorConnected) { actions.push(this.makeDropdownItem( 'promote', intl.formatMessage(messages.PromoteUserLabel), @@ -361,7 +379,7 @@ class UserDropdown extends PureComponent { )); } - if (allowedToDemote && isMeteorConnected) { + if (allowedToDemote && !user.guest && isMeteorConnected) { actions.push(this.makeDropdownItem( 'demote', intl.formatMessage(messages.DemoteUserLabel), @@ -394,7 +412,13 @@ class UserDropdown extends PureComponent { actions.push(this.makeDropdownItem( 'remove', intl.formatMessage(messages.RemoveUserLabel, { 0: user.name }), - () => this.onActionsHide(removeUser(user.userId)), + () => this.onActionsHide(mountModal( + <RemoveUserModal + intl={intl} + user={user} + onConfirm={removeUser} + />, + )), 'circle_close', )); } @@ -652,4 +676,4 @@ class UserDropdown extends PureComponent { } UserDropdown.propTypes = propTypes; -export default lockContextContainer(UserDropdown); +export default withModalMounter(lockContextContainer(UserDropdown)); 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 3e6e5bd0aa65950ecb3d704de5f38ed83059af9a..50e88bcdfa77a95641a5acb9e67fe64191328638 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 @@ -1,6 +1,12 @@ @import "/imports/ui/components/user-list/styles.scss"; @import "/imports/ui/stylesheets/variables/_all"; @import '/imports/ui/stylesheets/mixins/_indicators'; +@import '/imports/ui/stylesheets/mixins/focus'; +@import "/imports/ui/components/modal/simple/styles"; + +:root { + --description-margin: 3.5rem; +} /* Animations * ========== @@ -88,6 +94,8 @@ 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); + border-top-left-radius: var(--sm-padding-y); + border-bottom-left-radius: var(--sm-padding-y); &:focus { outline-style: solid; @@ -96,7 +104,7 @@ } .userListItem { - //@extend %list-item; + @extend %list-item; flex-flow: column; flex-shrink: 0; } diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx index 4a2d414f72896360491268968b050273927c2b34..20880d4ea834c60ea403c979ec2722451a9dd357 100755 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx @@ -241,7 +241,7 @@ class UserOptions extends PureComponent { />) : null ), - (isMeteorConnected ? ( + (!meetingIsBreakout && isMeteorConnected ? ( <DropdownListItem key={this.lockId} icon="lock" diff --git a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx index 50ba16939c69ee33fcab78145fb138f0fa89a19c..dd802abc7a5d65b96bdf04922957675c3f853647 100755 --- a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx @@ -7,8 +7,8 @@ import Button from '/imports/ui/components/button/component'; // import { notify } from '/imports/ui/services/notification'; import logger from '/imports/startup/client/logger'; import Modal from '/imports/ui/components/modal/simple/component'; -import VideoService from '../video-provider/service'; import browser from 'browser-detect'; +import VideoService from '../video-provider/service'; import { styles } from './styles'; const CAMERA_PROFILES = Meteor.settings.public.kurento.cameraProfiles; @@ -433,7 +433,6 @@ class VideoPreview extends Component { }); this.video.srcObject = stream; this.deviceStream = stream; - }).catch((error) => { logger.warn({ logCode: 'video_preview_do_gum_preview_error', @@ -465,7 +464,7 @@ class VideoPreview extends Component { const { intl, skipVideoPreview, - sharedDevices + sharedDevices, } = this.props; const { @@ -505,37 +504,37 @@ class VideoPreview extends Component { ) } { shared - ? ( - <span className={styles.label}> - {intl.formatMessage(intlMessages.sharedCameraLabel)} - </span> - ) - : ( - <span> - <label className={styles.label} htmlFor="setQuality"> - {intl.formatMessage(intlMessages.qualityLabel)} - </label> - { availableProfiles && availableProfiles.length > 0 - ? ( - <select - id="setQuality" - value={selectedProfile || ''} - className={styles.select} - onChange={this.handleSelectProfile} - disabled={skipVideoPreview} - > - {availableProfiles.map(profile => ( - <option key={profile.id} value={profile.id}> - {profile.name} - </option> - ))} - </select> - ) - : ( - <span> - {intl.formatMessage(intlMessages.profileNotFoundLabel)} - </span> - ) + ? ( + <span className={styles.label}> + {intl.formatMessage(intlMessages.sharedCameraLabel)} + </span> + ) + : ( + <span> + <label className={styles.label} htmlFor="setQuality"> + {intl.formatMessage(intlMessages.qualityLabel)} + </label> + { availableProfiles && availableProfiles.length > 0 + ? ( + <select + id="setQuality" + value={selectedProfile || ''} + className={styles.select} + onChange={this.handleSelectProfile} + disabled={skipVideoPreview} + > + {availableProfiles.map(profile => ( + <option key={profile.id} value={profile.id}> + {profile.name} + </option> + ))} + </select> + ) + : ( + <span> + {intl.formatMessage(intlMessages.profileNotFoundLabel)} + </span> + ) } </span> ) @@ -568,11 +567,11 @@ class VideoPreview extends Component { </div> ); case VIEW_STATES.error: - return ( - <div className={styles.content}> - <div className={styles.videoCol}><div>{deviceError}</div></div> - </div> - ); + return ( + <div className={styles.content}> + <div className={styles.videoCol}><div>{deviceError}</div></div> + </div> + ); case VIEW_STATES.found: default: return ( @@ -648,7 +647,7 @@ class VideoPreview extends Component { /> <Button data-test="startSharingWebcam" - color={shared ? "danger" : "primary"} + color={shared ? 'danger' : 'primary'} label={intl.formatMessage(shared ? intlMessages.stopSharingLabel : intlMessages.startSharingLabel)} onClick={shared ? this.handleStopSharing : this.handleStartSharing} disabled={isStartSharingDisabled || isStartSharingDisabled === null || shouldDisableButtons} @@ -664,7 +663,14 @@ class VideoPreview extends Component { intl, hasMediaDevices, skipVideoPreview, + isCamLocked, } = this.props; + + if (isCamLocked === true) { + this.handleProceed(); + return null; + } + const { deviceError, previewError, diff --git a/bigbluebutton-html5/imports/ui/components/video-preview/container.jsx b/bigbluebutton-html5/imports/ui/components/video-preview/container.jsx index 05e72a1bfa2a256a968ffa3b19845749e71e7b09..41ae06e1af6786d16ccb227f3b70dc4c8f92a2b0 100755 --- a/bigbluebutton-html5/imports/ui/components/video-preview/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-preview/container.jsx @@ -2,23 +2,43 @@ import React from 'react'; import { withModalMounter } from '/imports/ui/components/modal/service'; import { withTracker } from 'meteor/react-meteor-data'; import deviceInfo from '/imports/utils/deviceInfo'; +import Users from '/imports/api/users'; +import Meetings from '/imports/api/meetings'; +import Auth from '/imports/ui/services/auth'; import Service from './service'; import VideoPreview from './component'; import VideoService from '../video-provider/service'; const VideoPreviewContainer = props => <VideoPreview {...props} />; +const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator; + +const isCamLocked = () => { + const meeting = Meetings.findOne({ meetingId: Auth.meetingID }, + { fields: { 'lockSettingsProps.disableCam': 1 } }); + const user = Users.findOne({ meetingId: Auth.meetingID, userId: Auth.userID }, + { fields: { locked: 1, role: 1 } }); + + if (meeting.lockSettingsProps !== undefined) { + if (user.locked && user.role !== ROLE_MODERATOR) { + return meeting.lockSettingsProps.disableCam; + } + } + return false; +}; + export default withModalMounter(withTracker(({ mountModal, fromInterface }) => ({ - startSharing: deviceId => { + startSharing: (deviceId) => { mountModal(null); VideoService.joinVideo(deviceId); }, - stopSharing: deviceId => { + stopSharing: (deviceId) => { mountModal(null); const stream = VideoService.getMyStream(deviceId); if (stream) VideoService.stopVideo(stream); }, sharedDevices: VideoService.getSharedDevices(), + isCamLocked: isCamLocked(), closeModal: () => mountModal(null), changeWebcam: deviceId => Service.changeWebcam(deviceId), webcamDeviceId: Service.webcamDeviceId(), diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx index 5ea21488b37d32ca02b913c4c8126f3e6cb4ab6e..910f89894aeedad10b7c019a322d9685cce3c13f 100755 --- a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx @@ -4,7 +4,10 @@ import ReconnectingWebSocket from 'reconnecting-websocket'; import VideoService from './service'; import VideoList from './video-list/component'; import { defineMessages, injectIntl } from 'react-intl'; -import { fetchWebRTCMappedStunTurnServers } from '/imports/utils/fetchStunTurnServers'; +import { + fetchWebRTCMappedStunTurnServers, + getMappedFallbackStun, +} from '/imports/utils/fetchStunTurnServers'; import { tryGenerateIceCandidates } from '/imports/utils/safari-webrtc'; import logger from '/imports/startup/client/logger'; @@ -210,13 +213,9 @@ class VideoProvider extends Component { const streamsCameraIds = streams.map(s => s.cameraId); const streamsConnected = Object.keys(this.webRtcPeers); - const streamsToConnect = streamsCameraIds.filter(cameraId => { - return !streamsConnected.includes(cameraId); - }); + const streamsToConnect = streamsCameraIds.filter(cameraId => !streamsConnected.includes(cameraId)); - const streamsToDisconnect = streamsConnected.filter(cameraId => { - return !streamsCameraIds.includes(cameraId); - }); + const streamsToDisconnect = streamsConnected.filter(cameraId => !streamsCameraIds.includes(cameraId)); streamsToConnect.forEach((cameraId) => { const isLocal = VideoService.isLocalStream(cameraId); @@ -427,9 +426,12 @@ class VideoProvider extends Component { logger.error({ logCode: 'video_provider_fetchstunturninfo_error', extraInfo: { - error, + errorCode: error.code, + errorMessage: error.message, }, }, 'video-provider failed to fetch STUN/TURN info, using default'); + // Use fallback STUN server + iceServers = getMappedFallbackStun(); } finally { const { constraints, bitrate, id: profileId } = VideoService.getCameraProfile(); this.outboundIceQueues[cameraId] = []; @@ -612,7 +614,7 @@ class VideoProvider extends Component { this.restartTimeout[cameraId] = setTimeout( this._getWebRTCStartTimeout(cameraId, isLocal), - this.restartTimer[cameraId] + this.restartTimer[cameraId], ); } } 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 a05ddfb9ee928a3ed4d0f4b4907ae8d22eb61f74..c9da2f1e72a3f5f4723c38422fc0ff3f4fca6ed5 100644 --- a/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/component.jsx @@ -1,7 +1,8 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import PollService from '/imports/ui/components/poll/service'; -import { injectIntl } from 'react-intl'; +import { injectIntl, intlShape } from 'react-intl'; +import styles from './styles'; class PollDrawComponent extends Component { constructor(props) { @@ -96,6 +97,28 @@ class PollDrawComponent extends Component { for (let i = 0; i < arrayLength; i += 1) { const _tempArray = []; const _result = result[i]; + let isDefaultPoll; + switch (_result.key.toLowerCase()) { + case 'true': + case 'false': + case 'yes': + case 'no': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + isDefaultPoll = true; + break; + default: + isDefaultPoll = false; + break; + } + + if (isDefaultPoll) { + _result.key = intl.formatMessage({ id: `app.poll.answer.${_result.key.toLowerCase()}` }); + } + _tempArray.push(_result.key, `${_result.numVotes}`); if (votesTotal === 0) { _tempArray.push('0%'); @@ -431,6 +454,7 @@ class PollDrawComponent extends Component { y={line.keyColumn.yLeft} dy={maxLineHeight / 2} key={`${line.key}_key`} + className={styles.outline} > {line.keyColumn.keyString} </tspan> @@ -462,6 +486,7 @@ class PollDrawComponent extends Component { y={line.percentColumn.yRight} dy={maxLineHeight / 2} key={`${line.key}_percent`} + className={styles.outline} > {line.percentColumn.percentString} </tspan> @@ -482,6 +507,7 @@ class PollDrawComponent extends Component { dy={maxLineHeight / 2} key={`${line.key}_numVotes`} fill={line.barColumn.color} + className={styles.outline} > {line.barColumn.numVotes} </tspan> @@ -578,6 +604,7 @@ class PollDrawComponent extends Component { export default injectIntl(PollDrawComponent); PollDrawComponent.propTypes = { + intl: intlShape.isRequired, // Defines an annotation object, which contains all the basic info we need to draw a line annotation: PropTypes.shape({ id: PropTypes.string.isRequired, diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/styles.scss b/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/styles.scss new file mode 100644 index 0000000000000000000000000000000000000000..dda7863fd032bf5e88804007c37d14724d4fd678 --- /dev/null +++ b/bigbluebutton-html5/imports/ui/components/whiteboard/annotations/poll/styles.scss @@ -0,0 +1,10 @@ +@import "/imports/ui/stylesheets/variables/_all"; + +:root { + --poll-annotation-gray: #333333; +} + +.outline { + stroke: var(--poll-annotation-gray); + stroke-width: .5; +} \ No newline at end of file diff --git a/bigbluebutton-html5/imports/ui/services/settings/index.js b/bigbluebutton-html5/imports/ui/services/settings/index.js index a8d9b7f945702ed11c7b8f3aa4768f320c09f8ea..1c764730add126af80aec56eac5573978cf56916 100644 --- a/bigbluebutton-html5/imports/ui/services/settings/index.js +++ b/bigbluebutton-html5/imports/ui/services/settings/index.js @@ -34,8 +34,8 @@ class Settings { // Sets default locale to browser locale defaultValues.application.locale = navigator.languages ? navigator.languages[0] : false - || navigator.language - || defaultValues.application.locale; + || navigator.language + || defaultValues.application.locale; this.setDefault(defaultValues); } @@ -65,7 +65,13 @@ class Settings { userSettings[e] = this[e]; }); - makeCall('userChangedLocalSettings', userSettings); + Tracker.autorun((c) => { + const { status } = Meteor.status(); + if (status === 'connected') { + c.stop(); + makeCall('userChangedLocalSettings', userSettings); + } + }); } } diff --git a/bigbluebutton-html5/imports/utils/fetchStunTurnServers.js b/bigbluebutton-html5/imports/utils/fetchStunTurnServers.js index ee90b03d21796a26e44d15e2a8f3f7a399802563..d9956ac171d7b8cb6dbebc62734f5976c0dc3df5 100644 --- a/bigbluebutton-html5/imports/utils/fetchStunTurnServers.js +++ b/bigbluebutton-html5/imports/utils/fetchStunTurnServers.js @@ -2,11 +2,18 @@ import _ from 'lodash'; const MEDIA = Meteor.settings.public.media; const STUN_TURN_FETCH_URL = MEDIA.stunTurnServersFetchAddress; +const CACHE_STUN_TURN = MEDIA.cacheStunTurnServers; +const FALLBACK_STUN_SERVER = MEDIA.fallbackStunServer; + +let STUN_TURN_DICT; +let MAPPED_STUN_TURN_DICT; const fetchStunTurnServers = function (sessionToken) { + if (STUN_TURN_DICT && CACHE_STUN_TURN) return Promise.resolve(STUN_TURN_DICT); + const handleStunTurnResponse = ({ stunServers, turnServers }) => { if (!stunServers && !turnServers) { - return { error: 404, stun: [], turn: [] }; + return Promise.reject(new Error('Could not fetch STUN/TURN servers')); } const turnReply = []; @@ -19,35 +26,55 @@ const fetchStunTurnServers = function (sessionToken) { }); }); - return { + const stDictionary = { stun: stunServers.map(server => server.url), turn: turnReply, }; + + STUN_TURN_DICT = stDictionary; + + return Promise.resolve(stDictionary); }; const url = `${STUN_TURN_FETCH_URL}?sessionToken=${sessionToken}`; return fetch(url, { credentials: 'same-origin' }) .then(res => res.json()) - .then(handleStunTurnResponse) - .then((response) => { - if (response.error) { - return Promise.reject('Could not fetch the stuns/turns servers!'); - } - return response; - }); + .then(handleStunTurnResponse); +}; + +const mapStunTurn = ({ stun, turn }) => { + const rtcStuns = stun.map(url => ({ urls: url })); + const rtcTurns = turn.map(t => ({ urls: t.urls, credential: t.password, username: t.username })); + return rtcStuns.concat(rtcTurns); }; +const getFallbackStun = () => { + const stun = FALLBACK_STUN_SERVER ? [FALLBACK_STUN_SERVER] : []; + return { stun, turn: [] }; +}; + +const getMappedFallbackStun = () => (FALLBACK_STUN_SERVER ? [{ urls: FALLBACK_STUN_SERVER }] : []); + const fetchWebRTCMappedStunTurnServers = function (sessionToken) { return new Promise(async (resolve, reject) => { try { - const { stun, turn } = await fetchStunTurnServers(sessionToken); - const rtcStuns = stun.map(url => ({ urls: url })); - const rtcTurns = turn.map(t => ({ urls: t.urls, credential: t.password, username: t.username })); - return resolve(rtcStuns.concat(rtcTurns)); + if (MAPPED_STUN_TURN_DICT && CACHE_STUN_TURN) { + return resolve(MAPPED_STUN_TURN_DICT); + } + + const stDictionary = await fetchStunTurnServers(sessionToken); + + MAPPED_STUN_TURN_DICT = mapStunTurn(stDictionary); + return resolve(MAPPED_STUN_TURN_DICT); } catch (error) { return reject(error); } }); }; -export { fetchStunTurnServers, fetchWebRTCMappedStunTurnServers }; +export { + fetchStunTurnServers, + fetchWebRTCMappedStunTurnServers, + getFallbackStun, + getMappedFallbackStun, +}; diff --git a/bigbluebutton-html5/imports/utils/safari-webrtc.js b/bigbluebutton-html5/imports/utils/safari-webrtc.js index f1101cc146a0834cf999d86832d108acdd86df10..01d1149f7c1c1359f14f7e333394ca52cbb675c2 100644 --- a/bigbluebutton-html5/imports/utils/safari-webrtc.js +++ b/bigbluebutton-html5/imports/utils/safari-webrtc.js @@ -1,34 +1,19 @@ -import { fetchWebRTCMappedStunTurnServers } from '/imports/utils/fetchStunTurnServers'; +import { + fetchWebRTCMappedStunTurnServers, + getMappedFallbackStun, +} from '/imports/utils/fetchStunTurnServers'; import Auth from '/imports/ui/services/auth'; import { Session } from 'meteor/session'; import logger from '/imports/startup/client/logger'; -const defaultIceServersList = [ - { urls: 'stun:stun.l.google.com:19302' }, - { urls: 'stun:stun1.l.google.com:19302' }, - { urls: 'stun:stun2.l.google.com:19302' }, - { urls: 'stun:stun3.l.google.com:19302' }, - { urls: 'stun:stun4.l.google.com:19302' }, - { urls: 'stun:stun.ekiga.net' }, - { urls: 'stun:stun.ideasip.com' }, - { urls: 'stun:stun.schlund.de' }, - { urls: 'stun:stun.stunprotocol.org:3478' }, - { urls: 'stun:stun.voiparound.com' }, - { urls: 'stun:stun.voipbuster.com' }, - { urls: 'stun:stun.voipstunt.com' }, - { urls: 'stun:stun.voxgratia.org' }, - { urls: 'stun:stun.services.mozilla.com' }, -]; - const getSessionToken = () => Auth.sessionToken; export async function getIceServersList() { try { const iceServers = await fetchWebRTCMappedStunTurnServers(getSessionToken()); - - return iceServers || defaultIceServersList; + return iceServers; } catch (error) { - return defaultIceServersList; + return getMappedFallbackStun(); } } diff --git a/bigbluebutton-html5/package-lock.json b/bigbluebutton-html5/package-lock.json index bfc020994ae512d8651b6f2e78f8ef28e377222b..acce16994d762e6ef63c9c7b19b7dbb32afa0408 100644 --- a/bigbluebutton-html5/package-lock.json +++ b/bigbluebutton-html5/package-lock.json @@ -4,28 +4,28 @@ "lockfileVersion": 1, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", + "@babel/generator": "^7.9.6", "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -36,26 +36,6 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -65,12 +45,6 @@ "ms": "^2.1.1" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -86,23 +60,17 @@ } }, "@babel/generator": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", - "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", "dev": true, "requires": { - "@babel/types": "^7.9.0", + "@babel/types": "^7.9.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -112,14 +80,14 @@ } }, "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.8.3", "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.9.5" } }, "@babel/helper-get-function-arity": { @@ -180,15 +148,15 @@ "dev": true }, "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", - "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", + "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" } }, "@babel/helper-simple-access": { @@ -211,82 +179,48 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", - "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", "dev": true }, "@babel/helpers": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", - "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", + "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", "dev": true, "requires": { "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0" + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/parser": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", - "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", "dev": true }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, "@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", @@ -296,6 +230,51 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz", + "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz", + "integrity": "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", @@ -305,19 +284,30 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, "@babel/runtime": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz", - "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", "requires": { - "regenerator-runtime": "^0.13.2" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" - } + "regenerator-runtime": "^0.13.4" } }, "@babel/template": { @@ -329,73 +319,25 @@ "@babel/code-frame": "^7.8.3", "@babel/parser": "^7.8.6", "@babel/types": "^7.8.6" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - } } }, "@babel/traverse": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", - "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-function-name": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.0", - "@babel/types": "^7.9.0", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -405,12 +347,6 @@ "ms": "^2.1.1" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -420,12 +356,12 @@ } }, "@babel/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", - "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", + "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -554,13 +490,14 @@ "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==" }, "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", + "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, @@ -635,14 +572,15 @@ "dev": true }, "@jest/console": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.6.tgz", - "integrity": "sha512-bGp+0PicZVCEhb+ifnW9wpKWONNdkhtJsRE7ap729hiAfTvCN6VhGx0s/l/V/skA2pnyqq+N/7xl9ZWfykDpsg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", "dev": true, "requires": { - "@jest/source-map": "^25.2.6", + "@jest/types": "^25.5.0", "chalk": "^3.0.0", - "jest-util": "^25.2.6", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", "slash": "^3.0.0" }, "dependencies": { @@ -704,60 +642,205 @@ } } }, + "@jest/core": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz", + "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/reporters": "^25.5.1", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^25.5.0", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-resolve-dependencies": "^25.5.4", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "jest-watcher": "^25.5.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "realpath-native": "^2.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, "@jest/environment": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.6.tgz", - "integrity": "sha512-17WIw+wCb9drRNFw1hi8CHah38dXVdOk7ga9exThhGtXlZ9mK8xH4DjSB9uGDGXIWYSHmrxoyS6KJ7ywGr7bzg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz", + "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==", "dev": true, "requires": { - "@jest/fake-timers": "^25.2.6", - "@jest/types": "^25.2.6", - "jest-mock": "^25.2.6" + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0" } }, "@jest/fake-timers": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.6.tgz", - "integrity": "sha512-A6qtDIA2zg/hVgUJJYzQSHFBIp25vHdSxW/s4XmTJAYxER6eL0NQdQhe4+232uUSviKitubHGXXirt5M7blPiA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", + "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", "dev": true, "requires": { - "@jest/types": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-mock": "^25.2.6", - "jest-util": "^25.2.6", + "@jest/types": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", "lolex": "^5.0.0" } }, + "@jest/globals": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz", + "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/types": "^25.5.0", + "expect": "^25.5.0" + } + }, "@jest/reporters": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.2.6.tgz", - "integrity": "sha512-DRMyjaxcd6ZKctiXNcuVObnPwB1eUs7xrUVu0J2V0p5/aZJei5UM9GL3s/bmN4hRV8Mt3zXh+/9X2o0Q4ClZIA==", + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz", + "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", + "@jest/console": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", "chalk": "^3.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.2", + "graceful-fs": "^4.2.4", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^4.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "jest-haste-map": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-util": "^25.2.6", - "jest-worker": "^25.2.6", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^25.5.1", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", "node-notifier": "^6.0.0", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^3.1.0", "terminal-link": "^2.0.0", - "v8-to-istanbul": "^4.0.1" + "v8-to-istanbul": "^4.1.3" }, "dependencies": { "ansi-styles": { @@ -819,13 +902,13 @@ } }, "@jest/source-map": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.6.tgz", - "integrity": "sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz", + "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", "dev": true, "requires": { "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "source-map": "^0.6.0" }, "dependencies": { @@ -834,55 +917,50 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true } } }, "@jest/test-result": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.6.tgz", - "integrity": "sha512-gmGgcF4qz/pkBzyfJuVHo2DA24kIgVQ5Pf/VpW4QbyMLSegi8z+9foSZABfIt5se6k0fFj/3p/vrQXdaOgit0w==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", "dev": true, "requires": { - "@jest/console": "^25.2.6", - "@jest/types": "^25.2.6", + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.2.7.tgz", - "integrity": "sha512-s2uYGOXONDSTJQcZJ9A3Zkg3hwe53RlX1HjUNqjUy3HIqwgwCKJbnAKYsORPbhxXi3ARMKA7JNBi9arsTxXoYw==", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz", + "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==", "dev": true, "requires": { - "@jest/test-result": "^25.2.6", - "jest-haste-map": "^25.2.6", - "jest-runner": "^25.2.7", - "jest-runtime": "^25.2.7" + "@jest/test-result": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4" } }, "@jest/transform": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.6.tgz", - "integrity": "sha512-rZnjCjZf9avPOf9q/w9RUZ9Uc29JmB53uIXNJmNz04QbDMD5cR/VjfikiMKajBsXe2vnFl5sJ4RTt+9HPicauQ==", + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.6", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", "jest-regex-util": "^25.2.6", - "jest-util": "^25.2.6", + "jest-util": "^25.5.0", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -901,15 +979,6 @@ "color-convert": "^2.0.1" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -935,43 +1004,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -986,22 +1024,13 @@ "requires": { "has-flag": "^4.0.0" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, "@jest/types": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.6.tgz", - "integrity": "sha512-myJTTV37bxK7+3NgKc4Y/DlQ5q92/NOwZsZ+Uch7OXdElxOg61QYc72fPYNAjlvbnJ2YvbXLamIsa9tj48BmyQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -1087,9 +1116,9 @@ } }, "@sinonjs/commons": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz", - "integrity": "sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.0.tgz", + "integrity": "sha512-wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -1128,9 +1157,9 @@ } }, "@types/babel__traverse": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.10.tgz", - "integrity": "sha512-74fNdUGrWsgIB/V9kTO5FGHPWYY6Eqn+3Z7L6Hc4e/BxjYV7puvBqp5HwsVYYfLm6iURYBNCx4Ut37OF9yitCw==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz", + "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -1142,10 +1171,19 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/graceful-fs": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", + "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz", + "integrity": "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==", "dev": true }, "@types/istanbul-lib-report": { @@ -1158,9 +1196,9 @@ } }, "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*", @@ -1173,6 +1211,18 @@ "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=", "dev": true }, + "@types/node": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.5.tgz", + "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, "@types/prettier": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", @@ -1186,9 +1236,9 @@ "dev": true }, "@types/yargs": { - "version": "15.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", - "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -1228,9 +1278,9 @@ } }, "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, "acorn-walk": { @@ -1246,11 +1296,11 @@ "dev": true }, "ajv": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", - "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -1262,9 +1312,9 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { @@ -1307,9 +1357,9 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz", + "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==", "dev": true }, "are-we-there-yet": { @@ -1370,13 +1420,14 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, "array-union": { @@ -1444,11 +1495,11 @@ "dev": true }, "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.14" } }, "async-foreach": { @@ -1492,18 +1543,6 @@ "num2fraction": "^1.2.2", "postcss": "^7.0.5", "postcss-value-parser": "^3.3.1" - }, - "dependencies": { - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.5.0" - } - } } }, "autosize": { @@ -1517,39 +1556,37 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "axios": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.1.tgz", - "integrity": "sha512-Yl+7nfreYKaLRvAvjNPkvfjnQHJM1yLBY3zhqAwcJSwR/6ETkanUgylgtIvkvz0xJ+p/vZuNw8X7Hnb7Whsbpw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "requires": { "follow-redirects": "1.5.10" } }, "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz", + "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==", + "dev": true }, "babel-jest": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.2.6.tgz", - "integrity": "sha512-MDJOAlwtIeIQiGshyX0d2PxTbV73xZMpNji40ivVTPQOm59OdRR9nYCkffqI7ugtsK4JR98HgNKbDbuVf4k5QQ==", + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz", + "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==", "dev": true, "requires": { - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", - "@types/babel__core": "^7.1.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/babel__core": "^7.1.7", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^25.2.6", + "babel-preset-jest": "^25.5.0", "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", "slash": "^3.0.0" }, "dependencies": { @@ -1625,23 +1662,42 @@ } }, "babel-plugin-jest-hoist": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.6.tgz", - "integrity": "sha512-qE2xjMathybYxjiGFJg0mLFrz0qNp83aNZycWDY/SuHiZNq+vQfRQtuINqyXyue1ELd8Rd+1OhFSLjms8msMbw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz", + "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==", "dev": true, "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", "@types/babel__traverse": "^7.0.6" } }, + "babel-preset-current-node-syntax": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz", + "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, "babel-preset-jest": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.2.6.tgz", - "integrity": "sha512-Xh2eEAwaLY9+SyMt/xmGZDnXTW/7pSaBPG0EMo7EuhvosFKVWYB6CqwYD31DaEQuoTL090oDZ0FEqygffGRaSQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz", + "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==", "dev": true, "requires": { - "@babel/plugin-syntax-bigint": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^25.2.6" + "babel-plugin-jest-hoist": "^25.5.0", + "babel-preset-current-node-syntax": "^0.1.2" } }, "babel-runtime": { @@ -1653,10 +1709,10 @@ "regenerator-runtime": "^0.11.0" }, "dependencies": { - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" } } }, @@ -1746,32 +1802,12 @@ } }, "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "fill-range": "^7.0.1" } }, "browser-bunyan": { @@ -1791,19 +1827,12 @@ "integrity": "sha512-KeWGHqYQmHDkCFG2dIiX/2wFUgqevbw/rd6wNi9N6rZbaSJFtG5kel0HtprRwCGp8sqpQP79LzDJXf/WCx4WAw==", "requires": { "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" - } } }, "browser-or-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.1.0.tgz", - "integrity": "sha512-/YRGjKbrTId3N9RCTp91QgQ+AowVUuZxAcOuAYra6B/EkhK7hTDWB2/AAawvAsvOI3QjPnSnKCEEh89xmUoYLg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.2.1.tgz", + "integrity": "sha512-sVIA0cysIED0nbmNOm7sZzKfgN1rpFmrqvLZaFWspaBAftfQcezlC81G6j6U2RJf4Lh66zFxrCeOsvkUXIcPWg==" }, "browser-process-hrtime": { "version": "1.0.0", @@ -1829,13 +1858,14 @@ } }, "browserslist": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.5.tgz", - "integrity": "sha512-z9ZhGc3d9e/sJ9dIx5NFXkKoaiQTnrvrMsN3R1fGb1tkWWNSz12UewJn9TNxGo1l7J23h0MRaPmk7jfeTZYs1w==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", "requires": { - "caniuse-lite": "^1.0.30000912", - "electron-to-chromium": "^1.3.86", - "node-releases": "^1.0.5" + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" } }, "bser": { @@ -1859,11 +1889,6 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1928,9 +1953,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000918", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000918.tgz", - "integrity": "sha512-CAZ9QXGViBvhHnmIHhsTPSWFBujDaelKnUj7wwImbyQRxmXynYqKGi3UaZTSz9MoVh+1EVxOS/DFIkrJYgR3aw==" + "version": "1.0.30001062", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001062.tgz", + "integrity": "sha512-ei9ZqeOnN7edDrb24QfJ0OZicpEbsWxv7WusOiQGz/f2SfvBgHHbOEwBJ8HKGVSyx8Z6ndPjxzR6m0NQq+0bfw==" }, "capture-exit": { "version": "2.0.0", @@ -1961,13 +1986,23 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "chardet": { @@ -2056,15 +2091,15 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "clipboard": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", - "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", "requires": { "good-listener": "^1.2.2", "select": "^1.1.2", @@ -2072,29 +2107,60 @@ } }, "clipboardy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.1.0.tgz", - "integrity": "sha512-2pzOUxWcLlXWtn+Jd6js3o12TysNOOVes/aQfg+MT/35vrxWzedHlLwyoJpXjsFKWm95BTNEcMGD9+a7mKzZkQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", "dev": true, "requires": { "arch": "^2.1.1", - "execa": "^1.0.0" + "execa": "^1.0.0", + "is-wsl": "^2.1.1" } }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "clsx": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.0.4.tgz", - "integrity": "sha512-1mQ557MIZTrL/140j+JVdRM6e31/OA4vTYxXgqIIZlndyfjHpyawKZia1Im05Vp9BWmImkcNrNtFYQMyFcgJDg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.0.tgz", + "integrity": "sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==" }, "co": { "version": "4.6.0", @@ -2133,11 +2199,11 @@ } }, "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { - "color-name": "^1.1.1" + "color-name": "1.1.3" } }, "color-name": { @@ -2160,37 +2226,37 @@ "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=" }, "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "colorspace": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.1.tgz", - "integrity": "sha512-pI3btWyiuz7Ken0BWh9Elzsmv2bM9AhA7psXib4anUXy/orfZ/E0MbQwhSOG/9L8hLlalqrU0UhOuqxW1YjmVw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", + "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", "requires": { "color": "3.0.x", "text-hex": "1.0.x" } }, "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "computed-style": { @@ -2216,9 +2282,9 @@ } }, "confusing-browser-globals": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.7.tgz", - "integrity": "sha512-cgHI1azax5ATrZ8rJ+ODDML9Fvu67PimB6aNxBrc/QwSaDaM9eTfIEUHx3bBLJJ82ioSb+/5zfsMCCEJax3ByQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", "dev": true }, "console-control-strings": { @@ -2248,9 +2314,9 @@ "dev": true }, "core-js": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz", - "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==" + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" }, "core-util-is": { "version": "1.0.2", @@ -2258,14 +2324,14 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", - "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, "requires": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", + "js-yaml": "^3.13.1", "parse-json": "^4.0.0" }, "dependencies": { @@ -2297,20 +2363,20 @@ "dev": true }, "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", + "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", "dev": true, "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" + "cssesc": "^3.0.0", + "fastparse": "^1.1.2", + "regexpu-core": "^4.6.0" } }, "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "cssom": { @@ -2320,9 +2386,9 @@ "dev": true }, "cssstyle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz", - "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { "cssom": "~0.3.6" @@ -2336,6 +2402,11 @@ } } }, + "csstype": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", + "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -2350,9 +2421,9 @@ "integrity": "sha1-mYB4Ob5i7bRGtkWDLg2A6tb6GIg=" }, "damerau-levenshtein": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", - "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", "dev": true }, "dashdash": { @@ -2381,9 +2452,9 @@ "dev": true }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" } @@ -2566,11 +2637,11 @@ } }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "dotenv": { @@ -2594,9 +2665,9 @@ } }, "electron-to-chromium": { - "version": "1.3.90", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.90.tgz", - "integrity": "sha512-IjJZKRhFbWSOX1w0sdIXgp4CMRguu6UYcTckyFF/Gjtemsu/25eZ+RXwFlV+UWcIueHyQA1UnRJxocTpH5NdGA==" + "version": "1.3.451", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.451.tgz", + "integrity": "sha512-2fvco0F2bBIgqzO8GRP0Jt/91pdrf9KfZ5FsmkYkjERmIJG585cFeFZV4+CO6oTmU3HmCTgfcZuEa7kW8VUh3A==" }, "elegant-spinner": { "version": "1.0.1", @@ -2605,10 +2676,9 @@ "dev": true }, "emoji-regex": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", - "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", - "dev": true + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "enabled": { "version": "1.0.2", @@ -2619,18 +2689,18 @@ } }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "env-variable": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.5.tgz", - "integrity": "sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA==" + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", + "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==" }, "error-ex": { "version": "1.3.2", @@ -2641,22 +2711,28 @@ } }, "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "dev": true, "requires": { - "es-to-primitive": "^1.1.1", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -2748,18 +2824,18 @@ } }, "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "strip-ansi": { @@ -2794,18 +2870,6 @@ "object.assign": "^4.1.0", "object.entries": "^1.1.0" } - }, - "object.entries": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", - "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } } } }, @@ -2821,23 +2885,45 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", "dev": true, "requires": { "debug": "^2.6.9", - "resolve": "^1.5.0" + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "eslint-plugin-import": { @@ -2858,9 +2944,18 @@ "resolve": "^1.6.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "doctrine": { "version": "1.5.0", - "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { @@ -2868,18 +2963,9 @@ "isarray": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, "load-json-file": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { @@ -2941,6 +3027,14 @@ "emoji-regex": "^6.5.1", "has": "^1.0.3", "jsx-ast-utils": "^2.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", + "dev": true + } } }, "eslint-plugin-react": { @@ -2963,9 +3057,9 @@ "dev": true }, "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -2973,18 +3067,18 @@ } }, "eslint-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", - "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.0.0" + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", "dev": true }, "espree": { @@ -3005,12 +3099,20 @@ "dev": true }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } } }, "esrecurse": { @@ -3023,15 +3125,15 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "eventemitter2": { @@ -3101,6 +3203,15 @@ "to-regex": "^3.0.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -3122,16 +3233,16 @@ } }, "expect": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/expect/-/expect-25.2.7.tgz", - "integrity": "sha512-yA+U2Ph0MkMsJ9N8q5hs9WgWI6oJYfecdXta6LkP/alY/jZZL1MHlJ2wbLh60Ucqf3G+51ytbqV3mlGfmxkpNw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz", + "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "ansi-styles": "^4.0.0", "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.2.7", - "jest-message-util": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", "jest-regex-util": "^25.2.6" }, "dependencies": { @@ -3189,9 +3300,9 @@ } }, "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", @@ -3274,6 +3385,17 @@ "debug": "^2.6.9", "mkdirp": "^0.5.4", "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "extsprintf": { @@ -3282,14 +3404,14 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -3298,9 +3420,9 @@ "dev": true }, "fast-safe-stringify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz", - "integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" }, "fastdom": { "version": "1.0.9", @@ -3311,9 +3433,9 @@ } }, "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, "fb-watchman": { @@ -3340,9 +3462,9 @@ "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" }, "fibers": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-4.0.2.tgz", - "integrity": "sha512-FhICi1K4WZh9D6NC18fh2ODF3EWy1z0gzIdV9P7+s2pRjfRBnCkMDJ6x3bV1DkVymKH8HGrQa/FNOBjYvnJ/tQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fibers/-/fibers-4.0.3.tgz", + "integrity": "sha512-MW5VrDtTOLpKK7lzw4qD7Z9tXaAhdOmOED5RHzg3+HjUk+ibkjVW0Py2ERtdqgTXaerLkVkBy2AEmJiT6RMyzg==", "requires": { "detect-libc": "^1.0.3" } @@ -3366,27 +3488,13 @@ "object-assign": "^4.0.1" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" } }, "find-parent-dir": { @@ -3396,12 +3504,11 @@ "dev": true }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^2.0.0" } }, "flat": { @@ -3422,6 +3529,17 @@ "graceful-fs": "^4.1.2", "rimraf": "~2.6.2", "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "fn-name": { @@ -3436,16 +3554,6 @@ "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } } }, "for-in": { @@ -3484,9 +3592,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, @@ -3554,9 +3662,9 @@ "dev": true }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-func-name": { "version": "2.0.0", @@ -3565,9 +3673,15 @@ "dev": true }, "get-own-enumerable-property-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz", - "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-stdin": { @@ -3599,9 +3713,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3612,9 +3726,9 @@ } }, "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "globby": { @@ -3649,9 +3763,9 @@ } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "growly": { "version": "1.3.0", @@ -3692,15 +3806,14 @@ } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "has-unicode": { @@ -3735,6 +3848,26 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -3752,9 +3885,9 @@ "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" }, "html-encoding-sniffer": { "version": "1.0.2", @@ -3858,9 +3991,9 @@ } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -3891,12 +4024,6 @@ "json-parse-better-errors": "^1.0.1" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -4011,9 +4138,9 @@ } }, "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -4085,28 +4212,28 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "inquirer": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", - "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^3.0.0", + "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.10", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rxjs": "^6.1.0", + "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { @@ -4144,18 +4271,18 @@ } }, "strip-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", - "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.0.0" + "ansi-regex": "^4.1.0" }, "dependencies": { "ansi-regex": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", - "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true } } @@ -4163,9 +4290,9 @@ } }, "intl-format-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.1.0.tgz", - "integrity": "sha1-BKNp/sv61tpgBbrh8UMzMy3PkxY=" + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", + "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==" }, "intl-messageformat": { "version": "2.2.0", @@ -4181,9 +4308,9 @@ "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=" }, "intl-relativeformat": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz", - "integrity": "sha1-AQ8RBYAiUfQKxH0OPhogE0iiVd8=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", + "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", "requires": { "intl-messageformat": "^2.0.0" } @@ -4196,11 +4323,6 @@ "loose-envify": "^1.0.0" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, "ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", @@ -4239,22 +4361,14 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "is-ci": { @@ -4293,9 +4407,9 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-descriptor": { @@ -4323,6 +4437,12 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -4355,44 +4475,24 @@ "dev": true }, "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-observable": { "version": "1.1.0", @@ -4437,18 +4537,18 @@ } }, "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, "is-regexp": { @@ -4468,13 +4568,19 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-typedarray": { @@ -4494,11 +4600,13 @@ "dev": true }, "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "optional": true + "requires": { + "is-docker": "^2.0.0" + } }, "isarray": { "version": "1.0.0", @@ -4528,15 +4636,12 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", - "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.0.0", "semver": "^6.3.0" @@ -4617,151 +4722,16 @@ } }, "jest": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-25.1.0.tgz", - "integrity": "sha512-FV6jEruneBhokkt9MQk0WUFoNTwnF76CLXtwNMfsc0um0TlB/LG2yxUd0KqaFjEJ9laQmVWQWS0sG/t2GsuI0w==", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz", + "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==", "dev": true, "requires": { - "@jest/core": "^25.1.0", + "@jest/core": "^25.5.4", "import-local": "^3.0.2", - "jest-cli": "^25.1.0" + "jest-cli": "^25.5.4" }, "dependencies": { - "@jest/core": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.2.7.tgz", - "integrity": "sha512-Nd6ELJyR+j0zlwhzkfzY70m04hAur0VnMwJXVe4VmmD/SaQ6DEyal++ERQ1sgyKIKKEqRuui6k/R0wHLez4P+g==", - "dev": true, - "requires": { - "@jest/console": "^25.2.6", - "@jest/reporters": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.3", - "jest-changed-files": "^25.2.6", - "jest-config": "^25.2.7", - "jest-haste-map": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-resolve-dependencies": "^25.2.7", - "jest-runner": "^25.2.7", - "jest-runtime": "^25.2.7", - "jest-snapshot": "^25.2.7", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", - "jest-watcher": "^25.2.7", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "realpath-native": "^2.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/test-result": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.6.tgz", - "integrity": "sha512-gmGgcF4qz/pkBzyfJuVHo2DA24kIgVQ5Pf/VpW4QbyMLSegi8z+9foSZABfIt5se6k0fFj/3p/vrQXdaOgit0w==", - "dev": true, - "requires": { - "@jest/console": "^25.2.6", - "@jest/types": "^25.2.6", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.6.tgz", - "integrity": "sha512-myJTTV37bxK7+3NgKc4Y/DlQ5q92/NOwZsZ+Uch7OXdElxOg61QYc72fPYNAjlvbnJ2YvbXLamIsa9tj48BmyQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "jest-config": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.2.7.tgz", - "integrity": "sha512-rIdPPXR6XUxi+7xO4CbmXXkE6YWprvlKc4kg1SrkCL2YV5m/8MkHstq9gBZJ19Qoa3iz/GP+0sTG/PcIwkFojg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^25.2.7", - "@jest/types": "^25.2.6", - "babel-jest": "^25.2.6", - "chalk": "^3.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "jest-environment-jsdom": "^25.2.6", - "jest-environment-node": "^25.2.6", - "jest-get-type": "^25.2.6", - "jest-jasmine2": "^25.2.7", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", - "micromatch": "^4.0.2", - "pretty-format": "^25.2.6", - "realpath-native": "^2.0.0" - } - }, - "jest-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.6.tgz", - "integrity": "sha512-gpXy0H5ymuQ0x2qgl1zzHg7LYHZYUmDEq6F7lhHA8M0eIwDB2WteOcCnQsohl9c/vBKZ3JF2r4EseipCZz3s4Q==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "chalk": "^3.0.0", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-validate": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.6.tgz", - "integrity": "sha512-a4GN7hYbqQ3Rt9iHsNLFqQz7HDV7KiRPCwPgo5nqtTIWNZw7gnT8KchG+Riwh+UTSn8REjFCodGp50KX/fRNgQ==", - "dev": true, - "requires": { - "@jest/types": "^25.2.6", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "leven": "^3.1.0", - "pretty-format": "^25.2.6" - } - }, - "realpath-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", - "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", - "dev": true - } - } - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -4778,15 +4748,6 @@ "color-convert": "^2.0.1" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -4835,15 +4796,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -4854,18 +4806,6 @@ "path-exists": "^4.0.0" } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4878,43 +4818,26 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, "jest-cli": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.2.7.tgz", - "integrity": "sha512-OOAZwY4Jkd3r5WhVM5L3JeLNFaylvHUczMLxQDVLrrVyb1Cy+DNJ6MVsb5TLh6iBklB42m5TOP+IbOgKGGOtMw==", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz", + "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==", "dev": true, "requires": { - "@jest/core": "^25.2.7", - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", + "@jest/core": "^25.5.4", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", "chalk": "^3.0.0", "exit": "^0.1.2", + "graceful-fs": "^4.2.4", "import-local": "^3.0.2", "is-ci": "^2.0.0", - "jest-config": "^25.2.7", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", + "jest-config": "^25.5.4", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", "prompts": "^2.0.1", "realpath-native": "^2.0.0", "yargs": "^15.3.1" - }, - "dependencies": { - "prompts": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", - "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.4" - } - } } }, "locate-path": { @@ -4926,16 +4849,6 @@ "p-locate": "^4.1.0" } }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -4966,27 +4879,6 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -5016,21 +4908,6 @@ "has-flag": "^4.0.0" } }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -5042,12 +4919,6 @@ "strip-ansi": "^6.0.0" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, "yargs": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", @@ -5068,9 +4939,9 @@ } }, "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", - "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -5080,12 +4951,12 @@ } }, "jest-changed-files": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.2.6.tgz", - "integrity": "sha512-F7l2m5n55jFnJj4ItB9XbAlgO+6umgvz/mdK76BfTd2NGkvGf9x96hUXP/15a1K0k14QtVOoutwpRKl360msvg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz", + "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "execa": "^3.2.0", "throat": "^5.0.0" }, @@ -5197,28 +5068,29 @@ } }, "jest-config": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.2.7.tgz", - "integrity": "sha512-rIdPPXR6XUxi+7xO4CbmXXkE6YWprvlKc4kg1SrkCL2YV5m/8MkHstq9gBZJ19Qoa3iz/GP+0sTG/PcIwkFojg==", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz", + "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^25.2.7", - "@jest/types": "^25.2.6", - "babel-jest": "^25.2.6", + "@jest/test-sequencer": "^25.5.4", + "@jest/types": "^25.5.0", + "babel-jest": "^25.5.1", "chalk": "^3.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", - "jest-environment-jsdom": "^25.2.6", - "jest-environment-node": "^25.2.6", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^25.5.0", + "jest-environment-node": "^25.5.0", "jest-get-type": "^25.2.6", - "jest-jasmine2": "^25.2.7", + "jest-jasmine2": "^25.5.4", "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", "micromatch": "^4.0.2", - "pretty-format": "^25.2.6", + "pretty-format": "^25.5.0", "realpath-native": "^2.0.0" }, "dependencies": { @@ -5232,15 +5104,6 @@ "color-convert": "^2.0.1" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -5266,37 +5129,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -5305,28 +5143,19 @@ "requires": { "has-flag": "^4.0.0" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, "jest-diff": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.6.tgz", - "integrity": "sha512-KuadXImtRghTFga+/adnNrv9s61HudRMR7gVSbP35UKZdn4IK2/0N0PpGZIqtmllK9aUyye54I3nu28OYSnqOg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", "dev": true, "requires": { "chalk": "^3.0.0", "diff-sequences": "^25.2.6", "jest-get-type": "^25.2.6", - "pretty-format": "^25.2.6" + "pretty-format": "^25.5.0" }, "dependencies": { "ansi-styles": { @@ -5382,25 +5211,25 @@ } }, "jest-docblock": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.2.6.tgz", - "integrity": "sha512-VAYrljEq0upq0oERfIaaNf28gC6p9gORndhHstCYF8NWGNQJnzoaU//S475IxfWMk4UjjVmS9rJKLe5Jjjbixw==", + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz", + "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.2.6.tgz", - "integrity": "sha512-OgQ01VINaRD6idWJOhCYwUc5EcgHBiFlJuw+ON2VgYr7HLtMFyCcuo+3mmBvuLUH4QudREZN7cDCZviknzsaJQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz", + "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "chalk": "^3.0.0", "jest-get-type": "^25.2.6", - "jest-util": "^25.2.6", - "pretty-format": "^25.2.6" + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0" }, "dependencies": { "ansi-styles": { @@ -5456,30 +5285,30 @@ } }, "jest-environment-jsdom": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.2.6.tgz", - "integrity": "sha512-/o7MZIhGmLGIEG5j7r5B5Az0umWLCHU+F5crwfbm0BzC4ybHTJZOQTFQWhohBg+kbTCNOuftMcqHlVkVduJCQQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz", + "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==", "dev": true, "requires": { - "@jest/environment": "^25.2.6", - "@jest/fake-timers": "^25.2.6", - "@jest/types": "^25.2.6", - "jest-mock": "^25.2.6", - "jest-util": "^25.2.6", + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", "jsdom": "^15.2.1" } }, "jest-environment-node": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.2.6.tgz", - "integrity": "sha512-D1Ihj14fxZiMHGeTtU/LunhzSI+UeBvlr/rcXMTNyRMUMSz2PEhuqGbB78brBY6Dk3FhJDk7Ta+8reVaGjLWhA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz", + "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==", "dev": true, "requires": { - "@jest/environment": "^25.2.6", - "@jest/fake-timers": "^25.2.6", - "@jest/types": "^25.2.6", - "jest-mock": "^25.2.6", - "jest-util": "^25.2.6", + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", "semver": "^6.3.0" }, "dependencies": { @@ -5498,74 +5327,26 @@ "dev": true }, "jest-haste-map": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.6.tgz", - "integrity": "sha512-nom0+fnY8jwzelSDQnrqaKAcDZczYQvMEwcBjeL3PQ4MlcsqeB7dmrsAniUw/9eLkngT5DE6FhnenypilQFsgA==", + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", - "graceful-fs": "^4.2.3", - "jest-serializer": "^25.2.6", - "jest-util": "^25.2.6", - "jest-worker": "^25.2.6", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", "micromatch": "^4.0.2", "sane": "^4.0.3", "walker": "^1.0.7", "which": "^2.0.2" }, "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5578,27 +5359,27 @@ } }, "jest-jasmine2": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.2.7.tgz", - "integrity": "sha512-HeQxEbonp8fUvik9jF0lkU9ab1u5TQdIb7YSU9Fj7SxWtqHNDGyCpF6ZZ3r/5yuertxi+R95Ba9eA91GMQ38eA==", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz", + "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^25.2.6", - "@jest/source-map": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", + "@jest/environment": "^25.5.0", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", "chalk": "^3.0.0", "co": "^4.6.0", - "expect": "^25.2.7", + "expect": "^25.5.0", "is-generator-fn": "^2.0.0", - "jest-each": "^25.2.6", - "jest-matcher-utils": "^25.2.7", - "jest-message-util": "^25.2.6", - "jest-runtime": "^25.2.7", - "jest-snapshot": "^25.2.7", - "jest-util": "^25.2.6", - "pretty-format": "^25.2.6", + "jest-each": "^25.5.0", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0", "throat": "^5.0.0" }, "dependencies": { @@ -5655,25 +5436,25 @@ } }, "jest-leak-detector": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.2.6.tgz", - "integrity": "sha512-n+aJUM+j/x1kIaPVxzerMqhAUuqTU1PL5kup46rXh+l9SP8H6LqECT/qD1GrnylE1L463/0StSPkH4fUpkuEjA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz", + "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==", "dev": true, "requires": { "jest-get-type": "^25.2.6", - "pretty-format": "^25.2.6" + "pretty-format": "^25.5.0" } }, "jest-matcher-utils": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.2.7.tgz", - "integrity": "sha512-jNYmKQPRyPO3ny0KY1I4f0XW4XnpJ3Nx5ovT4ik0TYDOYzuXJW40axqOyS61l/voWbVT9y9nZ1THL1DlpaBVpA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", + "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", "dev": true, "requires": { "chalk": "^3.0.0", - "jest-diff": "^25.2.6", + "jest-diff": "^25.5.0", "jest-get-type": "^25.2.6", - "pretty-format": "^25.2.6" + "pretty-format": "^25.5.0" }, "dependencies": { "ansi-styles": { @@ -5729,15 +5510,16 @@ } }, "jest-message-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.6.tgz", - "integrity": "sha512-Hgg5HbOssSqOuj+xU1mi7m3Ti2nwSQJQf/kxEkrz2r2rp2ZLO1pMeKkz2WiDUWgSR+APstqz0uMFcE5yc0qdcg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", "micromatch": "^4.0.2", "slash": "^3.0.0", "stack-utils": "^1.0.1" @@ -5753,15 +5535,6 @@ "color-convert": "^2.0.1" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -5787,37 +5560,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -5832,25 +5580,16 @@ "requires": { "has-flag": "^4.0.0" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, "jest-mock": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.6.tgz", - "integrity": "sha512-vc4nibavi2RGPdj/MyZy/azuDjZhpYZLvpfgq1fxkhbyTpKVdG7CgmRVKJ7zgLpY5kuMjTzDYA6QnRwhsCU+tA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", + "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", "dev": true, "requires": { - "@jest/types": "^25.2.6" + "@jest/types": "^25.5.0" } }, "jest-pnp-resolver": { @@ -5866,17 +5605,20 @@ "dev": true }, "jest-resolve": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.2.6.tgz", - "integrity": "sha512-7O61GVdcAXkLz/vNGKdF+00A80/fKEAA47AEXVNcZwj75vEjPfZbXDaWFmAQCyXj4oo9y9dC9D+CLA11t8ieGw==", + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz", + "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "browser-resolve": "^1.11.3", "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.1", + "read-pkg-up": "^7.0.1", "realpath-native": "^2.0.0", - "resolve": "^1.15.1" + "resolve": "^1.17.0", + "slash": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -5914,21 +5656,110 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" } }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -5941,39 +5772,39 @@ } }, "jest-resolve-dependencies": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.7.tgz", - "integrity": "sha512-IrnMzCAh11Xd2gAOJL+ThEW6QO8DyqNdvNkQcaCticDrOAr9wtKT7yT6QBFFjqKFgjjvaVKDs59WdgUhgYnHnQ==", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz", + "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "jest-regex-util": "^25.2.6", - "jest-snapshot": "^25.2.7" + "jest-snapshot": "^25.5.1" } }, "jest-runner": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.2.7.tgz", - "integrity": "sha512-RFEr71nMrtNwcpoHzie5+fe1w3JQCGMyT2xzNwKe3f88+bK+frM2o1v24gEcPxQ2QqB3COMCe2+1EkElP+qqqQ==", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz", + "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==", "dev": true, "requires": { - "@jest/console": "^25.2.6", - "@jest/environment": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", "chalk": "^3.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.3", - "jest-config": "^25.2.7", - "jest-docblock": "^25.2.6", - "jest-haste-map": "^25.2.6", - "jest-jasmine2": "^25.2.7", - "jest-leak-detector": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-runtime": "^25.2.7", - "jest-util": "^25.2.6", - "jest-worker": "^25.2.6", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-docblock": "^25.3.0", + "jest-haste-map": "^25.5.1", + "jest-jasmine2": "^25.5.4", + "jest-leak-detector": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", + "jest-runtime": "^25.5.4", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", "source-map-support": "^0.5.6", "throat": "^5.0.0" }, @@ -6013,12 +5844,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6037,32 +5862,33 @@ } }, "jest-runtime": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.2.7.tgz", - "integrity": "sha512-Gw3X8KxTTFylu2T/iDSNKRUQXQiPIYUY0b66GwVYa7W8wySkUljKhibQHSq0VhmCAN7vRBEQjlVQ+NFGNmQeBw==", - "dev": true, - "requires": { - "@jest/console": "^25.2.6", - "@jest/environment": "^25.2.6", - "@jest/source-map": "^25.2.6", - "@jest/test-result": "^25.2.6", - "@jest/transform": "^25.2.6", - "@jest/types": "^25.2.6", + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz", + "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/globals": "^25.5.2", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", "@types/yargs": "^15.0.0", "chalk": "^3.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", - "graceful-fs": "^4.2.3", - "jest-config": "^25.2.7", - "jest-haste-map": "^25.2.6", - "jest-message-util": "^25.2.6", - "jest-mock": "^25.2.6", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.2.6", - "jest-snapshot": "^25.2.7", - "jest-util": "^25.2.6", - "jest-validate": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", "realpath-native": "^2.0.0", "slash": "^3.0.0", "strip-bom": "^4.0.0", @@ -6143,18 +5969,6 @@ "path-exists": "^4.0.0" } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6206,12 +6020,6 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6253,12 +6061,6 @@ "has-flag": "^4.0.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -6270,12 +6072,6 @@ "strip-ansi": "^6.0.0" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, "yargs": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", @@ -6296,9 +6092,9 @@ } }, "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", - "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -6308,30 +6104,34 @@ } }, "jest-serializer": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz", - "integrity": "sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==", - "dev": true + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } }, "jest-snapshot": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.2.7.tgz", - "integrity": "sha512-Rm8k7xpGM4tzmYhB6IeRjsOMkXaU8/FOz5XlU6oYwhy53mq6txVNqIKqN1VSiexzpC80oWVxVDfUDt71M6XPOA==", + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz", + "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==", "dev": true, "requires": { "@babel/types": "^7.0.0", - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "@types/prettier": "^1.19.0", "chalk": "^3.0.0", - "expect": "^25.2.7", - "jest-diff": "^25.2.6", + "expect": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-diff": "^25.5.0", "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.2.7", - "jest-message-util": "^25.2.6", - "jest-resolve": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", "make-dir": "^3.0.0", "natural-compare": "^1.4.0", - "pretty-format": "^25.2.6", + "pretty-format": "^25.5.0", "semver": "^6.3.0" }, "dependencies": { @@ -6394,13 +6194,14 @@ } }, "jest-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.6.tgz", - "integrity": "sha512-gpXy0H5ymuQ0x2qgl1zzHg7LYHZYUmDEq6F7lhHA8M0eIwDB2WteOcCnQsohl9c/vBKZ3JF2r4EseipCZz3s4Q==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", "is-ci": "^2.0.0", "make-dir": "^3.0.0" }, @@ -6458,17 +6259,17 @@ } }, "jest-validate": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.6.tgz", - "integrity": "sha512-a4GN7hYbqQ3Rt9iHsNLFqQz7HDV7KiRPCwPgo5nqtTIWNZw7gnT8KchG+Riwh+UTSn8REjFCodGp50KX/fRNgQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", + "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "camelcase": "^5.3.1", "chalk": "^3.0.0", "jest-get-type": "^25.2.6", "leven": "^3.1.0", - "pretty-format": "^25.2.6" + "pretty-format": "^25.5.0" }, "dependencies": { "ansi-styles": { @@ -6530,16 +6331,16 @@ } }, "jest-watcher": { - "version": "25.2.7", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.2.7.tgz", - "integrity": "sha512-RdHuW+f49tahWtluTnUdZ2iPliebleROI2L/J5phYrUS6DPC9RB3SuUtqYyYhGZJsbvRSuLMIlY/cICJ+PIecw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz", + "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==", "dev": true, "requires": { - "@jest/test-result": "^25.2.6", - "@jest/types": "^25.2.6", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", "ansi-escapes": "^4.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.6", + "jest-util": "^25.5.0", "string-length": "^3.1.0" }, "dependencies": { @@ -6601,13 +6402,19 @@ "requires": { "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true } } }, "jest-worker": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.6.tgz", - "integrity": "sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", "dev": true, "requires": { "merge-stream": "^2.0.0", @@ -6620,24 +6427,6 @@ "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", @@ -6655,14 +6444,14 @@ "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==" }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -6709,9 +6498,9 @@ }, "dependencies": { "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", "dev": true }, "tough-cookie": { @@ -6724,19 +6513,13 @@ "psl": "^1.1.28", "punycode": "^2.1.1" } - }, - "ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "dev": true } } }, "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-parse-better-errors": { @@ -6787,12 +6570,13 @@ } }, "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", "dev": true, "requires": { - "array-includes": "^3.0.3" + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" } }, "kind-of": { @@ -6820,14 +6604,6 @@ "resolved": "https://registry.npmjs.org/langmap/-/langmap-0.0.16.tgz", "integrity": "sha512-AtYvBK7BsDvWwnSfmO7CfgeUy7GUT1wK3QX8eKH/Ey/eXodqoHuAtvdQ82hmWD9QVFVKnuiNjym9fGY4qSJeLA==" }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -6852,10 +6628,11 @@ "computed-style": "~0.1.3" } }, - "linear-layout-vector": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/linear-layout-vector/-/linear-layout-vector-0.0.1.tgz", - "integrity": "sha1-OYEU1zA7bsx/1rJzr3uEAdi6nHA=" + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true }, "lint-staged": { "version": "8.1.3", @@ -6890,26 +6667,120 @@ "yup": "^0.26.10" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "ms": "^2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, @@ -6931,9 +6802,9 @@ }, "dependencies": { "p-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.0.0.tgz", - "integrity": "sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true } } @@ -7045,18 +6916,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } } }, "lodash": { @@ -7146,9 +7008,9 @@ }, "dependencies": { "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -7162,11 +7024,11 @@ } }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -7188,9 +7050,9 @@ } }, "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -7255,6 +7117,11 @@ "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" }, + "memoize-one": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", + "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" + }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", @@ -7806,43 +7673,32 @@ } }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz", + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==", "dev": true }, "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "mime-db": "~1.37.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -7905,9 +7761,9 @@ "dev": true }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" }, "nanomatch": { "version": "1.2.13", @@ -7935,9 +7791,9 @@ "dev": true }, "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "nice-try": { "version": "1.0.5", @@ -8007,17 +7863,14 @@ } }, "node-releases": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.1.tgz", - "integrity": "sha512-2UXrBr6gvaebo5TNF84C66qyJJ6r0kxBObgZIDX3D3/mt1ADKiHux3NJPWisq0wxvJJdkjECH+9IIKYViKj71Q==", - "requires": { - "semver": "^5.3.0" - } + "version": "1.1.56", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.56.tgz", + "integrity": "sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw==" }, "node-sass": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", - "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", "requires": { "async-foreach": "^0.1.3", "chalk": "^1.1.1", @@ -8033,7 +7886,7 @@ "node-gyp": "^3.8.0", "npmlog": "^4.0.0", "request": "^2.88.0", - "sass-graph": "^2.2.4", + "sass-graph": "2.2.5", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" }, @@ -8071,12 +7924,12 @@ } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", + "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } @@ -8195,10 +8048,16 @@ } } }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-visit": { @@ -8223,15 +8082,14 @@ } }, "object.entries": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", - "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" } }, "object.pick": { @@ -8266,17 +8124,17 @@ } }, "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", + "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "word-wrap": "~1.2.3" } }, "os-homedir": { @@ -8284,14 +8142,6 @@ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -8322,7 +8172,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, "requires": { "p-try": "^1.0.0" } @@ -8331,7 +8180,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "requires": { "p-limit": "^1.1.0" } @@ -8345,8 +8193,7 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parse-json": { "version": "2.2.0", @@ -8369,12 +8216,9 @@ "dev": true }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -8396,8 +8240,7 @@ "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-type": { "version": "1.1.0", @@ -8460,18 +8303,26 @@ } }, "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "^2.1.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "requires": { + "find-up": "^2.1.0" } }, "please-upgrade-node": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", - "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, "requires": { "semver-compare": "^1.0.0" @@ -8490,9 +8341,9 @@ "dev": true }, "popper.js": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz", - "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==" + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" }, "posix-character-classes": { "version": "0.1.1", @@ -8501,62 +8352,13 @@ "dev": true }, "postcss": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz", - "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==", - "dev": true, + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.30.tgz", + "integrity": "sha512-nu/0m+NtIzoubO+xdAlwZl/u5S5vi/y6BCsoL8D+8IxsD3XvBS8X4YEADNIVXKVuQvduiucnRv+vPIqj56EGMQ==", "requires": { - "chalk": "^2.3.0", + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - }, - "dependencies": { - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", - "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - } + "supports-color": "^6.1.0" } }, "postcss-modules-extract-imports": { @@ -8566,19 +8368,6 @@ "dev": true, "requires": { "postcss": "^7.0.5" - }, - "dependencies": { - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.5.0" - } - } } }, "postcss-modules-local-by-default": { @@ -8589,6 +8378,28 @@ "requires": { "css-selector-tokenizer": "^0.7.0", "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-modules-scope": { @@ -8599,6 +8410,28 @@ "requires": { "css-selector-tokenizer": "^0.7.0", "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-modules-values": { @@ -8609,6 +8442,28 @@ "requires": { "icss-replace-symbols": "^1.1.0", "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-nested": { @@ -8618,26 +8473,14 @@ "requires": { "postcss": "^7.0.2", "postcss-selector-parser": "^3.1.1" - }, - "dependencies": { - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.5.0" - } - } } }, "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "requires": { - "dot-prop": "^4.1.1", + "dot-prop": "^5.2.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } @@ -8654,12 +8497,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.6.tgz", - "integrity": "sha512-DEiWxLBaCHneffrIT4B+TpMvkV9RNvvJrd3lY9ew1CEQobDzEXmYT1mg0hJhljZty7kCc10z13ohOFAE8jrUDg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", "dev": true, "requires": { - "@jest/types": "^25.2.6", + "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -8695,12 +8538,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true } } }, @@ -8718,9 +8555,9 @@ } }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { "version": "2.0.3", @@ -8728,6 +8565,16 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "prompts": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" + } + }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", @@ -8736,16 +8583,6 @@ "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.8.1" - }, - "dependencies": { - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - } } }, "property-expr": { @@ -8755,9 +8592,9 @@ "dev": true }, "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, "pseudomap": { @@ -8766,9 +8603,9 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "pump": { "version": "3.0.0", @@ -8786,9 +8623,9 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "puppeteer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-2.1.0.tgz", - "integrity": "sha512-PC4oKMtwAElo8YtS/cYnk2/dew/3TonsGKKzjpFLWwkhBCteFsOZCVOXTt2QlP6w53mH0YsJE+fPLPzOW+DCug==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-2.1.1.tgz", + "integrity": "sha512-LWzaDVQkk1EPiuYeTOj+CZRIjda4k2s5w4MK4xoH2+kgWV/SDlkYHmxatDdtYrciHUKSXTsGgPgPP8ILVdBsxg==", "dev": true, "requires": { "@types/mime-types": "^2.1.0", @@ -8812,26 +8649,20 @@ "ms": "^2.1.1" } }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "dev": true, - "requires": { - "mime-db": "1.43.0" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } } } }, @@ -8846,9 +8677,9 @@ "integrity": "sha512-dye+7rERqNf/6mDT1iwps+4Gf42420xuZgygF33uX178DxffqcyeuHbBuJ382FIcB5iP6mMZOhfW7kI0uXwb/Q==" }, "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -8866,9 +8697,9 @@ } }, "react-color": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.18.0.tgz", - "integrity": "sha512-FyVeU1kQiSokWc8NPz22azl1ezLpJdUyTbWL0LPUpcuuYDrZ/Y1veOk9rRK5B3pMlyDGvTk4f4KJhlkIQNRjEA==", + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.18.1.tgz", + "integrity": "sha512-X5XpyJS6ncplZs74ak0JJoqPi+33Nzpv5RYWWxn17bslih+X7OlgmfpmGC1fNvdkK7/SGWYf1JJdn7D2n5gSuQ==", "requires": { "@icons/material": "^0.2.4", "lodash": "^4.17.11", @@ -8879,22 +8710,22 @@ } }, "react-device-detect": { - "version": "1.11.14", - "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-1.11.14.tgz", - "integrity": "sha512-WSjch241xI+rXHVtJaSYxNUT2WAykzfJgMI2Hg9xjNNTlIZdJu/fmWf4iedNH7qzFq+JaJ6fDJu3mrKFLerKBw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-1.12.1.tgz", + "integrity": "sha512-BQ7xIEHx0VqPBGEtEFJRybHnhZ1Qn3BXX8dRR3EKLRfSTKpITUw925VYCGnygZDpmgYSq5NX0IvHGhy0w7Sckg==", "requires": { - "ua-parser-js": "^0.7.20" + "ua-parser-js": "^0.7.21" } }, "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.18.0" + "scheduler": "^0.19.1" } }, "react-draggable": { @@ -8915,6 +8746,11 @@ "prop-types": "^15.6.2" } }, + "react-fast-compare": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.1.1.tgz", + "integrity": "sha512-SCsAORWK59BvauR2L1BTdjQbJcSGJJz03U0awektk2hshLKrITDDFTlgGCqIZpTDlPC/NFlZee6xTMzXPVLiHw==" + }, "react-intl": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.7.2.tgz", @@ -8928,9 +8764,9 @@ } }, "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-lifecycles-compat": { "version": "3.0.4", @@ -8949,13 +8785,15 @@ } }, "react-player": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/react-player/-/react-player-1.14.2.tgz", - "integrity": "sha512-t3R1szFSA1mkd66R4OSYwONjy1tETySoFYgsFzskhin9WCnypdPOuj5N5+uiuAInSg5ueznxoMGndl3JSoXYlQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.0.1.tgz", + "integrity": "sha512-QG/NutOfDq4FF/7nzMDzM4nmb8ExVES/5n973NSZgZ/1iE6ObmhDOau9gO67NPYOQv/RhOJ4S8b0g9bVAdK9vA==", "requires": { "deepmerge": "^4.0.0", "load-script": "^1.0.0", - "prop-types": "^15.7.2" + "memoize-one": "^5.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.0.1" } }, "react-render-in-browser": { @@ -9005,30 +8843,30 @@ "loose-envify": "^1.4.0", "prop-types": "^15.6.2", "react-lifecycles-compat": "^3.0.4" - }, - "dependencies": { - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - } } }, "react-virtualized": { - "version": "9.21.1", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.21.1.tgz", - "integrity": "sha512-E53vFjRRMCyUTEKuDLuGH1ld/9TFzjf/fFW816PE4HFXWZorESbSTYtiZz1oAjra0MminaUU1EnvUxoGuEFFPA==", + "version": "9.21.2", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.21.2.tgz", + "integrity": "sha512-oX7I7KYiUM7lVXQzmhtF4Xg/4UA5duSA+/ZcAvdWlTLFCoFYq1SbauJT5gZK9cZS/wdYR6TPGpX/dqzvTqQeBA==", "requires": { "babel-runtime": "^6.26.0", "clsx": "^1.0.1", - "dom-helpers": "^2.4.0 || ^3.0.0", - "linear-layout-vector": "0.0.1", + "dom-helpers": "^5.0.0", "loose-envify": "^1.3.0", "prop-types": "^15.6.0", "react-lifecycles-compat": "^3.0.4" + }, + "dependencies": { + "dom-helpers": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", + "integrity": "sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^2.6.7" + } + } } }, "reactcss": { @@ -9056,12 +8894,31 @@ "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + } } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9103,9 +8960,9 @@ } }, "redis-commands": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz", - "integrity": "sha1-gdgm9F+pyLIBH0zXoP5ZfSQdRCs=" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz", + "integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==" }, "redis-parser": { "version": "2.6.0", @@ -9113,15 +8970,24 @@ "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=" }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" }, "regex-not": { "version": "1.0.2", @@ -9140,29 +9006,40 @@ "dev": true }, "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", "dev": true }, "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "dev": true, "requires": { "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } } }, "remove-trailing-separator": { @@ -9192,9 +9069,9 @@ } }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -9203,7 +9080,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -9213,7 +9090,7 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } @@ -9244,9 +9121,9 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "require-uncached": { "version": "1.0.3", @@ -9259,12 +9136,11 @@ } }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "^1.0.6" } }, "resolve-cwd": { @@ -9313,11 +9189,11 @@ "dev": true }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "rsvp": { @@ -9327,13 +9203,10 @@ "dev": true }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, "run-node": { "version": "1.0.0", @@ -9342,9 +9215,9 @@ "dev": true }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -9392,8 +9265,107 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "normalize-path": { @@ -9404,18 +9376,28 @@ "requires": { "remove-trailing-separator": "^1.0.1" } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", "requires": { "glob": "^7.0.0", "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" + "yargs": "^13.3.2" } }, "saxes": { @@ -9428,9 +9410,9 @@ } }, "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -9466,9 +9448,9 @@ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-compare": { "version": "1.0.0", @@ -9537,14 +9519,14 @@ "optional": true }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "simple-git": { - "version": "1.107.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.107.0.tgz", - "integrity": "sha512-t4OK1JRlp4ayKRfcW6owrWcRVLyHRUlhGd0uN6ZZTqfDq8a5XpcUdOKiGRNobHEuMtNqzp0vcJNvhYWwh5PsQA==", + "version": "1.132.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz", + "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==", "dev": true, "requires": { "debug": "^4.0.1" @@ -9560,9 +9542,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -9595,9 +9577,9 @@ "dev": true }, "slice-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.0.0.tgz", - "integrity": "sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -9629,6 +9611,15 @@ "use": "^3.1.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -9738,12 +9729,12 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -9751,9 +9742,9 @@ } }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -9767,32 +9758,32 @@ "dev": true }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", - "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "split-string": { "version": "3.1.0", @@ -9810,9 +9801,9 @@ "dev": true }, "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -9883,6 +9874,16 @@ "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", "requires": { "debug": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } } }, "strictdom": { @@ -9938,6 +9939,48 @@ "strip-ansi": "^3.0.0" } }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + } + }, + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9955,6 +9998,14 @@ "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + } } }, "strip-ansi": { @@ -10000,18 +10051,11 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { "has-flag": "^3.0.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - } } }, "supports-hyperlinks": { @@ -10054,27 +10098,27 @@ "dev": true }, "synchronous-promise": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.6.tgz", - "integrity": "sha512-TyOuWLwkmtPL49LHCX1caIwHjRzcVd62+GF6h8W/jHOeZUFHpnd2XJDVuUlaTaLPH1nuu2M69mfHr5XbQJnf/g==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.12.tgz", + "integrity": "sha512-rIDJiHmIK02tXU+eW1v6a7rNIIiMLm5JUF5Uj2fT6oLSulg7WNDVoqvkYqkFoJzf4v2gmTLppvzegdo9R+7h1Q==", "dev": true }, "table": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.1.tgz", - "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^6.6.1", - "lodash": "^4.17.11", - "slice-ansi": "2.0.0", - "string-width": "^2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "is-fullwidth-code-point": { @@ -10084,22 +10128,23 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } @@ -10132,6 +10177,12 @@ "requires": { "type-fest": "^0.11.0" } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true } } }, @@ -10144,22 +10195,6 @@ "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } } }, "text-hex": { @@ -10186,9 +10221,9 @@ "dev": true }, "tiny-emitter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", - "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "tinycolor2": { "version": "1.4.1", @@ -10196,9 +10231,9 @@ "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" }, "tippy.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-5.1.3.tgz", - "integrity": "sha512-qZl6nPzXmfPTPmHXdnMc8N57BnJMvCqMg4KGgeR9Mi2k9QYHa3tA6O1UFn6w3vlHT/UIS21NrlMjixjcG2DeTw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-5.2.1.tgz", + "integrity": "sha512-66UT6JRVn3dXNCORE+0UvUK3JZqV/VhLlU6HTDm3FmrweUUFUxUGvT8tUQ7ycMp+uhuLAwQw6dBabyC+iKf/MA==", "requires": { "popper.js": "^1.16.0" } @@ -10262,13 +10297,12 @@ } }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "toposort": { @@ -10278,19 +10312,12 @@ "dev": true }, "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tr46": { @@ -10321,9 +10348,9 @@ } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, "tunnel-agent": { @@ -10355,9 +10382,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray": { @@ -10380,6 +10407,34 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -10472,14 +10527,14 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "v8-to-istanbul": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz", - "integrity": "sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", + "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -10592,9 +10647,9 @@ } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wide-align": { "version": "1.1.3", @@ -10621,9 +10676,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz", - "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10641,19 +10696,50 @@ "triple-beam": "^1.2.0" } }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "wrappy": { @@ -10683,13 +10769,10 @@ } }, "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", + "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==", + "dev": true }, "xml-name-validator": { "version": "3.0.0", @@ -10704,9 +10787,9 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "2.1.2", @@ -10714,52 +10797,108 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", - "requires": { - "@babel/runtime": "^7.6.3" - } + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" }, "dependencies": { - "camelcase": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } } } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "requires": { - "camelcase": "^3.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "dependencies": { "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" } } }, diff --git a/bigbluebutton-html5/package.json b/bigbluebutton-html5/package.json index 352652a5e07214b045cf0a6f4ddbfc5b7d6cf124..1e4299b8ba0bc79c36bf129c24cf560688be5b2d 100755 --- a/bigbluebutton-html5/package.json +++ b/bigbluebutton-html5/package.json @@ -63,7 +63,7 @@ "react-dropzone": "^7.0.1", "react-intl": "~2.7.2", "react-modal": "~3.6.1", - "react-player": "^1.14.2", + "react-player": "^2.0.1", "react-render-in-browser": "^1.1.1", "react-tabs": "^2.3.1", "react-toastify": "^4.5.2", diff --git a/bigbluebutton-html5/private/config/settings.yml b/bigbluebutton-html5/private/config/settings.yml index c21e3f97673db4df0f4d7213fe983869fa761c99..65e3f384110008bedec270af7f34e097d3cb65c0 100755 --- a/bigbluebutton-html5/private/config/settings.yml +++ b/bigbluebutton-html5/private/config/settings.yml @@ -71,9 +71,6 @@ public: openActions: accesskey: A descId: openActions - openStatus: - accesskey: S - descId: openStatus branding: displayBrandingArea: false connectionTimeout: 60000 @@ -93,10 +90,21 @@ public: chromeDefaultExtensionLink: https://chrome.google.com/webstore/detail/bigbluebutton-screenshare/akgoaoikmbmhcopjgakkcepdgdgkjfbc chromeExtensionKey: KEY chromeExtensionLink: LINK - chromeScreenshareSources: - - window - - screen - firefoxScreenshareSource: window + screenshare: + constraints: + video: + frameRate: + ideal: 5 + max: 10 + width: + max: 2560 + height: + max: 1600 + audio: false + chromeScreenshareSources: + - window + - screen + firefoxScreenshareSource: window cameraProfiles: - id: low name: Low quality @@ -173,6 +181,8 @@ public: webcamsDefaultPlacement: "top" media: stunTurnServersFetchAddress: "/bigbluebutton/api/stuns" + cacheStunTurnServers: true + fallbackStunServer: '' mediaTag: "#remote-media" callTransferTimeout: 5000 callHangupTimeout: 2000 diff --git a/bigbluebutton-html5/private/locales/ar.json b/bigbluebutton-html5/private/locales/ar.json index 88739518dbdd907fbc80ee9d974c6dcc0dca371f..91d7dbacd538526dbdd0192bf78470ae7a447a58 100644 --- a/bigbluebutton-html5/private/locales/ar.json +++ b/bigbluebutton-html5/private/locales/ar.json @@ -112,7 +112,6 @@ "app.media.screenshare.start": "بدأت مشاركة الشاشة", "app.media.screenshare.end": "انتهت مشاركة الشاشة", "app.media.screenshare.unavailable": "مشاركة الشاشة غير متوÙرة", - "app.media.screenshare.safariNotSupported": "مشاركة الشاشة غير مدعومة Øاليًا بواسطة سÙاري. من Ùضلك ØŒ استخدم ÙايرÙوكس أو جوجل كروم.", "app.media.screenshare.autoplayBlockedDesc": "Ù†ØÙ† بØاجة إلى إذنك لتظهر لك شاشة مقدم العرض.", "app.media.screenshare.autoplayAllowLabel": "عرض الشاشة المشتركة", "app.screenshare.notAllowed": "خطأ: لم يتم Ù…Ù†Ø Ø¥Ø°Ù† الدخول إلى الشاشة.", diff --git a/bigbluebutton-html5/private/locales/bg_BG.json b/bigbluebutton-html5/private/locales/bg_BG.json index a6e7d4428f1d5484edf2f50064cf4825789c8f18..37dddf0ad2e59737a27a6ce758f35b25d857538d 100644 --- a/bigbluebutton-html5/private/locales/bg_BG.json +++ b/bigbluebutton-html5/private/locales/bg_BG.json @@ -41,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": "Спри диктовката", diff --git a/bigbluebutton-html5/private/locales/ca.json b/bigbluebutton-html5/private/locales/ca.json index d58a33cb96fabc93aa2f4a5bf934fe9af667a1da..6e1490344e8b7ceb8337a57f859cfa4b358368bb 100644 --- a/bigbluebutton-html5/private/locales/ca.json +++ b/bigbluebutton-html5/private/locales/ca.json @@ -3,7 +3,7 @@ "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.locked": "El xat està bloquejat, 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", @@ -63,6 +63,7 @@ "app.userList.presenter": "Presentador/a", "app.userList.you": "Vós", "app.userList.locked": "Tancat", + "app.userList.byModerator": "Per (Moderador/a)", "app.userList.label": "Llista d'usuaris", "app.userList.toggleCompactView.label": "Canvia al mode compacte", "app.userList.guest": "Convidat/ada", @@ -72,6 +73,8 @@ "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.removeConfirmation.label": "Eliminar usuari/à ria ({0})", + "app.userlist.menu.removeConfirmation.desc": "Esteu segurs d'eliminar aquest usuari/à ria? Un cop ho feu no podrà tornar a entrar en aquesta sala. Si el voleu tornar a incloure haureu de finalitzar sessió i tornar-la a iniciar.", "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}", @@ -111,6 +114,7 @@ "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.unavailable": "No es pot compartir pantalla", "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", @@ -169,6 +173,9 @@ "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.upload.408": "El temps de la sol·licitud de cà rrega del token s'ha acabat", + "app.presentationUploder.upload.404": "404: Token de pujada no và lid", + "app.presentationUploder.upload.401": "La sol·licitud del token de cà rrega de presentació ha fallat.", "app.presentationUploder.conversion.conversionProcessingSlides": "Processant pà gina {0} de {1}", "app.presentationUploder.conversion.genericConversionStatus": "Convertint fitxer...", "app.presentationUploder.conversion.generatingThumbnail": "Generant miniatures ...", @@ -398,7 +405,7 @@ "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.no": "No", "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?", diff --git a/bigbluebutton-html5/private/locales/cs_CZ.json b/bigbluebutton-html5/private/locales/cs_CZ.json index 22024ea5289c7f3958b501f803008ae64a99bb0f..77b22c18baee4a11a84754b1aca10225ae1f4cf4 100644 --- a/bigbluebutton-html5/private/locales/cs_CZ.json +++ b/bigbluebutton-html5/private/locales/cs_CZ.json @@ -63,6 +63,7 @@ "app.userList.presenter": "PÅ™ednášejÃcÃ", "app.userList.you": "Vy", "app.userList.locked": "UzamÄen", + "app.userList.byModerator": "od (moderátora)", "app.userList.label": "Seznam uživatelů", "app.userList.toggleCompactView.label": "PÅ™epnout na kompaktnà rozloženÃ", "app.userList.guest": "Host", @@ -72,6 +73,8 @@ "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.removeConfirmation.label": "Odebrat uživatele ({0})", + "app.userlist.menu.removeConfirmation.desc": "Jste si jist(a), že chcete odebrat tohoto uživatele? Jakmile bude odebrán, nebude se schopen znovu pÅ™ihlásit k relaci.", "app.userList.menu.muteUserAudio.label": "Ztlumit uživatele", "app.userList.menu.unmuteUserAudio.label": "ZruÅ¡it ztlumenà uživatele", "app.userList.userAriaLabel": "{0} {1} {2} Status {3}", @@ -112,7 +115,6 @@ "app.media.screenshare.start": "SdÃlenà obrazovky bylo zahájeno", "app.media.screenshare.end": "SdÃlenà obrazovky bylo ukonÄeno", "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.", @@ -171,6 +173,9 @@ "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.upload.408": "Vyžádat vyprÅ¡enà platnosti nahrávacÃho tokenu", + "app.presentationUploder.upload.404": "404: Neplatný nahrávacà token", + "app.presentationUploder.upload.401": "Žádost o token pro nahránà prezentace selhala", "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ů...", @@ -217,7 +222,7 @@ "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.yes": "Ano", "app.poll.answer.no": "Ne", "app.poll.answer.a": "A", "app.poll.answer.b": "B", @@ -364,12 +369,12 @@ "app.actionsBar.currentStatusDesc": "StávajÃcà stav {0}", "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.audioFailedError1001": "Chyba 1001: WebSocket odpojen (WebSocket disconnected)", "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)\n", + "app.audioNotification.audioFailedError1006": "Chyba 1006: ÄŒas hovoru vyprÅ¡el (Call timed out)", "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 informace od STUN/TURN serveru (Could not fetch STUN/TURN server information)", @@ -411,7 +416,7 @@ "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.audioDial.audioDialConfrenceText": "a zadejte ÄÃslo PIN konference", "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", @@ -480,7 +485,7 @@ "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.user-info.title": "Vyhledávánà v adresáři", "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", @@ -494,7 +499,7 @@ "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.title": "Klávesové zkratky", "app.shortcut-help.accessKeyNotAvailable": "Klávesové zkratky nejsou dostupné", "app.shortcut-help.comboLabel": "Kombinace", "app.shortcut-help.functionLabel": "Funkce", diff --git a/bigbluebutton-html5/private/locales/de.json b/bigbluebutton-html5/private/locales/de.json index db55ca84f58fe180e859a738ae434496904709da..3b46fc6ac778418c56d2976a257e448191f7ae18 100644 --- a/bigbluebutton-html5/private/locales/de.json +++ b/bigbluebutton-html5/private/locales/de.json @@ -50,8 +50,8 @@ "app.note.title": "Geteilte Notizen", "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": "Teilnehmeraktivitätsprüfung", + "app.user.activityCheck.label": "Prüfen, ob der Teilnehmer 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.userList.usersTitle": "Teilnehmer", @@ -63,56 +63,59 @@ "app.userList.presenter": "Präsentator", "app.userList.you": "Sie", "app.userList.locked": "Gesperrt", + "app.userList.byModerator": "vom (Moderator)", "app.userList.label": "Teilnehmerliste", "app.userList.toggleCompactView.label": "Kompaktansichtmodus wechseln", "app.userList.guest": "Gast", "app.userList.menuTitleContext": "Verfügbare Optionen", - "app.userList.chatListItem.unreadSingular": "{0} neue Nachricht(en)", - "app.userList.chatListItem.unreadPlural": "{0} neue Nachricht(en)", + "app.userList.chatListItem.unreadSingular": "{0} neue Nachricht", + "app.userList.chatListItem.unreadPlural": "{0} neue Nachrichten", "app.userList.menu.chat.label": "Privaten Chat starten", "app.userList.menu.clearStatus.label": "Status zurücksetzen", "app.userList.menu.removeUser.label": "Teilnehmer entfernen", + "app.userList.menu.removeConfirmation.label": "Teilnehmer entfernen ({0})", + "app.userlist.menu.removeConfirmation.desc": "Sind Sie sicher, dass Sie diesen Teilnehmer entfernen möchten? Sobald er entfernt wurde, kann er nicht mehr an dieser Konferenz teilnehmen.", "app.userList.menu.muteUserAudio.label": "Teilnehmer stummschalten", "app.userList.menu.unmuteUserAudio.label": "Stummschaltung aufheben", "app.userList.userAriaLabel": "{0} {1} {2} Status {3}", "app.userList.menu.promoteUser.label": "Zum Moderator befördern", - "app.userList.menu.demoteUser.label": "Zum Zuschauer zurückstufen", + "app.userList.menu.demoteUser.label": "Zum Teilnehmer zurückstufen", "app.userList.menu.unlockUser.label": "{0} freigeben", "app.userList.menu.lockUser.label": "{0} sperren", "app.userList.menu.directoryLookup.label": "Verzeichnissuche", "app.userList.menu.makePresenter.label": "Zum Präsentator machen", "app.userList.userOptions.manageUsersLabel": "Teilnehmer verwalten", "app.userList.userOptions.muteAllLabel": "Alle Teilnehmer stummschalten", - "app.userList.userOptions.muteAllDesc": "Schaltet alle Teilnehmer der Konferenz stumm", - "app.userList.userOptions.clearAllLabel": "Lösche alle Statusicons", - "app.userList.userOptions.clearAllDesc": "Löscht alle Statusicons der Teilnehmer", - "app.userList.userOptions.muteAllExceptPresenterLabel": "Schalte alle Teilnehmer außer den Präsentator stumm", - "app.userList.userOptions.muteAllExceptPresenterDesc": "Schaltet alle Teilnehmer außer den Präsentator stumm", + "app.userList.userOptions.muteAllDesc": "Alle Teilnehmer der Konferenz werden stumm geschaltet", + "app.userList.userOptions.clearAllLabel": "Alle Statusicons löschen", + "app.userList.userOptions.clearAllDesc": "Alle Statusicons der Teilnehmer löschen", + "app.userList.userOptions.muteAllExceptPresenterLabel": "Alle Teilnehmer außer den Präsentator stummschalten", + "app.userList.userOptions.muteAllExceptPresenterDesc": "Alle Teilnehmer der Konferenz außer dem Präsentator werden stumm geschaltet", "app.userList.userOptions.unmuteAllLabel": "Konferenz-Stummschaltung aufheben", "app.userList.userOptions.unmuteAllDesc": "Hebt die Konferenz-Stummschaltung auf", - "app.userList.userOptions.lockViewersLabel": "Zuschauerrechte einstellen", + "app.userList.userOptions.lockViewersLabel": "Teilnehmerrechte einschränken", "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", "app.userList.userOptions.disablePrivChat": "Privater Chat ist deaktiviert", "app.userList.userOptions.disablePubChat": "Öffentlicher Chat ist deaktiviert", "app.userList.userOptions.disableNote": "Geteilte Notizen sind jetzt gesperrt", - "app.userList.userOptions.hideUserList": "Die Teilnehmerliste ist jetzt für die Teilnehmer nicht mehr sichtbar", + "app.userList.userOptions.hideUserList": "Teilnehmerliste ist jetzt für die Teilnehmer ausgeblendet", "app.userList.userOptions.webcamsOnlyForModerator": "Nur Moderatoren können die Teilnehmerwebcams sehen (wegen eingeschränkter Rechteeinstellungen)", "app.userList.content.participants.options.clearedStatus": "Status aller Teilnehmer zurückgesetzt", - "app.userList.userOptions.enableCam": "Teilnehmer dürfen ihre Webcam verwenden", - "app.userList.userOptions.enableMic": "Teilnehmer dürfen ihr Mikrofon verwenden", + "app.userList.userOptions.enableCam": "Teilnehmer dürfen ihre Webcams verwenden", + "app.userList.userOptions.enableMic": "Teilnehmer dürfen ihr Mikrofone verwenden", "app.userList.userOptions.enablePrivChat": "Privater Chat ist erlaubt", "app.userList.userOptions.enablePubChat": "Öffentlicher Chat ist erlaubt", "app.userList.userOptions.enableNote": "Geteilte Notizen sind erlaubt", - "app.userList.userOptions.showUserList": "Die Teilnehmerliste ist jetzt für die Teilnehmer sichtbar", + "app.userList.userOptions.showUserList": "Teilnehmerliste ist jetzt für die Teilnehmer sichtbar", "app.userList.userOptions.enableOnlyModeratorWebcam": "Sie können Ihre Webcam jetzt freigeben, jeder wird Sie sehen.", "app.media.label": "Media", "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.notSupported": "Bildschirmfreigabe wird in diesem Browser nicht unterstützt.", "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", "app.screenshare.notAllowed": "Fehler: Die Berechtigung zur Bildschirmfreigabe wurde nicht erteilt.", @@ -144,12 +147,12 @@ "app.presentation.presentationToolbar.fitWidthDesc": "Folie in voller Breite darstellen", "app.presentation.presentationToolbar.fitScreenLabel": "An Bildschirm anpassen", "app.presentation.presentationToolbar.fitScreenDesc": "Gesamte Folie darstellen", - "app.presentation.presentationToolbar.zoomLabel": "Vergrößerungsgrad", - "app.presentation.presentationToolbar.zoomDesc": "Vergrößerungsstufe der Präsentation ändern", - "app.presentation.presentationToolbar.zoomInLabel": "Reinzoomen", - "app.presentation.presentationToolbar.zoomInDesc": "In die Präsentation hinein zoomen", - "app.presentation.presentationToolbar.zoomOutLabel": "Rauszoomen", - "app.presentation.presentationToolbar.zoomOutDesc": "Aus der Präsentation heraus zoomen", + "app.presentation.presentationToolbar.zoomLabel": "Zoom", + "app.presentation.presentationToolbar.zoomDesc": "Zoom-Stufe der Präsentation ändern", + "app.presentation.presentationToolbar.zoomInLabel": "Vergrößern", + "app.presentation.presentationToolbar.zoomInDesc": "Vergrößern der Präsentation", + "app.presentation.presentationToolbar.zoomOutLabel": "Verkleinern", + "app.presentation.presentationToolbar.zoomOutDesc": "Verkleinern der Präsentation", "app.presentation.presentationToolbar.zoomReset": "Zoom zurücksetzen", "app.presentation.presentationToolbar.zoomIndicator": "Aktuelle Zoom-Stufe", "app.presentation.presentationToolbar.fitToWidth": "An Breite anpassen", @@ -171,6 +174,9 @@ "app.presentationUploder.rejectedError": "Die ausgewählten Dateien wurden zurückgewiesen. Bitte prüfen Sie die zulässigen Dateitypen.", "app.presentationUploder.upload.progress": "Hochladen ({0}%)", "app.presentationUploder.upload.413": "Die Datei ist zu groß. Bitte teilen Sie sie in mehrere kleinere Dateien auf.", + "app.presentationUploder.upload.408": "Zeitüberschreitung des Upload-Token anfordern.", + "app.presentationUploder.upload.404": "404: Ungültiger Upload-Token", + "app.presentationUploder.upload.401": "Anforderung des Upload-Tokens von Präsentationen fehlgeschlagen.", "app.presentationUploder.conversion.conversionProcessingSlides": "Verarbeite Seite {0} von {1}", "app.presentationUploder.conversion.genericConversionStatus": "Konvertiere Datei...", "app.presentationUploder.conversion.generatingThumbnail": "Erstelle Miniaturbilder...", @@ -192,9 +198,9 @@ "app.poll.pollPaneTitle": "Umfrage", "app.poll.quickPollTitle": "Schnellumfrage", "app.poll.hidePollDesc": "Versteckt das Umfragemenü", - "app.poll.customPollInstruction": "Um selbst erstellte Umfrage zu erstellen, klicken Sie die untenstehende Schaltfläche und geben Sie Ihre Optionen ein", + "app.poll.customPollInstruction": "Um eine benutzerdefinierte Umfrage zu erstellen, wählen Sie die Schaltfläche unten und geben Sie Ihre Optionen ein.", "app.poll.quickPollInstruction": "Wählen Sie eine der unten stehenden Optionen, um die Umfrage zu starten.", - "app.poll.customPollLabel": "Benutzerdefinierte Umfrage...", + "app.poll.customPollLabel": "Benutzerdefinierte Umfrage", "app.poll.startCustomLabel": "Benutzerdefinierte Umfrage starten", "app.poll.activePollInstruction": "Lassen Sie dieses Fenster offen, um auf die Antworten der Teilnehmer zu warten. Sobald Sie auf \"Umfrageergebnisse veröffentlichen\" klicken, werden die Ergebnisse angezeigt und die Umfrage beendet.", "app.poll.publishLabel": "Umfrageergebnisse veröffentlichen", @@ -230,7 +236,7 @@ "app.polling.pollAnswerLabel": "Umfrageantwort {0}", "app.polling.pollAnswerDesc": "Diese Option auswählen für Umfrage {0}", "app.failedMessage": "Es gibt Verbindungsprobleme mit dem Server.", - "app.downloadPresentationButton.label": "Ursprüngliche Version der Präsentation runterladen", + "app.downloadPresentationButton.label": "Ursprüngliche Version der Präsentation herunterladen", "app.connectingMessage": "Verbinde...", "app.waitingMessage": "Verbindung unterbrochen. Versuche in {0} Sekunden erneut zu verbinden...", "app.retryNow": "Jetzt erneut versuchen", @@ -238,7 +244,7 @@ "app.navBar.settingsDropdown.fullscreenLabel": "Als Vollbild darstellen", "app.navBar.settingsDropdown.settingsLabel": "Einstellungen öffnen", "app.navBar.settingsDropdown.aboutLabel": "Versionsinfo", - "app.navBar.settingsDropdown.leaveSessionLabel": "Konferenz verlassen", + "app.navBar.settingsDropdown.leaveSessionLabel": "Ausloggen", "app.navBar.settingsDropdown.exitFullscreenLabel": "Vollbilddarstellung beenden", "app.navBar.settingsDropdown.fullscreenDesc": "Einstellungsmenü als Vollbild darstellen", "app.navBar.settingsDropdown.settingsDesc": "Basiseinstellungen verändern", @@ -354,7 +360,7 @@ "app.actionsBar.emojiMenu.happyLabel": "Glücklich", "app.actionsBar.emojiMenu.happyDesc": "Ihren Status auf glücklich setzen", "app.actionsBar.emojiMenu.noneLabel": "Status löschen", - "app.actionsBar.emojiMenu.noneDesc": "Status löschen", + "app.actionsBar.emojiMenu.noneDesc": "Ihren Status löschen", "app.actionsBar.emojiMenu.applauseLabel": "Applaus", "app.actionsBar.emojiMenu.applauseDesc": "Ihren Status auf Applaus setzen", "app.actionsBar.emojiMenu.thumbsUpLabel": "Daumen hoch", @@ -379,7 +385,7 @@ "app.audioNotification.audioFailedMessage": "Audioverbindung konnte nicht hergestellt werden", "app.audioNotification.mediaFailedMessage": "getUserMicMedia fehlgeschlagen, weil nur sichere Quellen erlaubt sind", "app.audioNotification.closeLabel": "Schließen", - "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofonnutzung wurde für alle Zuschauer gesperrt, Sie werden als reiner Zuhörer verbunden", + "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofone sind für Teilnehmer gesperrt, Sie werden nur zum Zuhören verbunden", "app.breakoutJoinConfirmation.title": "Breakout-Raum beitreten", "app.breakoutJoinConfirmation.message": "Möchten Sie beitreten", "app.breakoutJoinConfirmation.confirmDesc": "Dem Breakout-Raum beitreten", @@ -489,11 +495,11 @@ "app.toast.setEmoji.label": "Emojistatus auf {0} gesetzt", "app.toast.meetingMuteOn.label": "Alle Teilnehmer wurden stummgeschaltet", "app.toast.meetingMuteOff.label": "Konferenzstummschaltung ausgeschaltet", - "app.notification.recordingStart": "Die Konferenz wird jetzt aufgezeichnet", + "app.notification.recordingStart": "Diese Konferenz wird jetzt aufgezeichnet", "app.notification.recordingStop": "Diese Konferenz wird nicht aufgezeichnet", - "app.notification.recordingPaused": "Die Konferenz wird nicht mehr aufgezeichnet", + "app.notification.recordingPaused": "Diese Konferenz wird nicht mehr aufgezeichnet", "app.notification.recordingAriaLabel": "Aufgezeichnete Zeit", - "app.notification.userJoinPushAlert": "{0} hat den Raum betreten", + "app.notification.userJoinPushAlert": "{0} ist der Konferenz beigetreten", "app.shortcut-help.title": "Tastaturkürzel", "app.shortcut-help.accessKeyNotAvailable": "Zugriffsschlüssel sind nicht verfügbar", "app.shortcut-help.comboLabel": "Tastenkombination", @@ -511,8 +517,8 @@ "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 einstellen", - "app.lock-viewers.description": "Diese Optionen ermöglichen es, bestimmte Funktionen für Zuschauer einzuschränken.", + "app.lock-viewers.title": "Teilnehmerrechte einschränken", + "app.lock-viewers.description": "Diese Optionen ermöglichen es, bestimmte Funktionen für Teilnehmer einzuschränken.", "app.lock-viewers.featuresLable": "Funktion", "app.lock-viewers.lockStatusLabel": "Status", "app.lock-viewers.webcamLabel": "Webcam freigeben", diff --git a/bigbluebutton-html5/private/locales/de_DE.json b/bigbluebutton-html5/private/locales/de_DE.json new file mode 100644 index 0000000000000000000000000000000000000000..7e84f87a7bb1921103b9b70f4d12e4087990b4f8 --- /dev/null +++ b/bigbluebutton-html5/private/locales/de_DE.json @@ -0,0 +1,5 @@ +{ + "app.lock-viewers.otherViewersWebcamLabel": "Webcams anderer Teilnehmer sehen" + +} + diff --git a/bigbluebutton-html5/private/locales/en.json b/bigbluebutton-html5/private/locales/en.json index f0a66e4aa35dcafd8b516129b2e6c018c4a426e4..31ef683d9da73dd9d9f078efd066779f37e943c0 100755 --- a/bigbluebutton-html5/private/locales/en.json +++ b/bigbluebutton-html5/private/locales/en.json @@ -65,6 +65,7 @@ "app.userList.presenter": "Presenter", "app.userList.you": "You", "app.userList.locked": "Locked", + "app.userList.byModerator": "by (Moderator)", "app.userList.label": "User list", "app.userList.toggleCompactView.label": "Toggle compact view mode", "app.userList.guest": "Guest", @@ -74,6 +75,8 @@ "app.userList.menu.chat.label": "Start a private chat", "app.userList.menu.clearStatus.label": "Clear status", "app.userList.menu.removeUser.label": "Remove user", + "app.userList.menu.removeConfirmation.label": "Remove user ({0})", + "app.userlist.menu.removeConfirmation.desc": "Prevent this user from rejoining the session.", "app.userList.menu.muteUserAudio.label": "Mute user", "app.userList.menu.unmuteUserAudio.label": "Unmute user", "app.userList.userAriaLabel": "{0} {1} {2} Status {3}", @@ -114,7 +117,7 @@ "app.media.screenshare.start": "Screenshare has started", "app.media.screenshare.end": "Screenshare has ended", "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.notSupported": "Screensharing is not supported in this browser.", "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.", diff --git a/bigbluebutton-html5/private/locales/es.json b/bigbluebutton-html5/private/locales/es.json index 2661435cdcc34ea2042f5531657992838d9cfd4e..b8cd9d867acc267be9ff076e3ba6184cecb5b3b7 100644 --- a/bigbluebutton-html5/private/locales/es.json +++ b/bigbluebutton-html5/private/locales/es.json @@ -111,6 +111,7 @@ "app.media.autoplayAlertDesc": "Permitir acceso", "app.media.screenshare.start": "Compartir pantalla ha iniciado", "app.media.screenshare.end": "Compartir pantalla ha finalizado", + "app.media.screenshare.unavailable": "Compartir pantalla no disponible", "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", @@ -160,15 +161,18 @@ "app.presentationUploder.confirmDesc": "Grardar los cambios e iniciar la presentación", "app.presentationUploder.dismissLabel": "Cancelar", "app.presentationUploder.dismissDesc": "Cerrar la ventana modal y descartar cambios.", - "app.presentationUploder.dropzoneLabel": "Arrastrar archivo aqui para cargarlo", - "app.presentationUploder.dropzoneImagesLabel": "Arrastrar imagenes aqui para cargarlas", + "app.presentationUploder.dropzoneLabel": "Arrastrar archivo aquà para cargarlo", + "app.presentationUploder.dropzoneImagesLabel": "Arrastrar imágenes aquà para cargarlas", "app.presentationUploder.browseFilesLabel": "o buscar archivos", "app.presentationUploder.browseImagesLabel": "o buscar imagenes", "app.presentationUploder.fileToUpload": "En proceso de ser cargado ...", - "app.presentationUploder.currentBadge": "Acual", + "app.presentationUploder.currentBadge": "Actual", "app.presentationUploder.rejectedError": "El(los) archivo(s) seleccionado(s) ha(n) sido rechazado(s). Por favor, revise el(los) tipo(s) de archivo.", "app.presentationUploder.upload.progress": "Cargando ({0}%)", "app.presentationUploder.upload.413": "Archivo muy grande, por favor divÃdelo en varios ficheros", + "app.presentationUploder.upload.408": "La solicitud de carga del token está fuera de tiempo.", + "app.presentationUploder.upload.404": "404: Token de subida no válido", + "app.presentationUploder.upload.401": "La solicitud del token de subida de presentación ha fallado.", "app.presentationUploder.conversion.conversionProcessingSlides": "Procesando página {0} de {1}", "app.presentationUploder.conversion.genericConversionStatus": "Convirtiendo archivos ...", "app.presentationUploder.conversion.generatingThumbnail": "Generando miniaturas ...", @@ -229,8 +233,8 @@ "app.polling.pollAnswerDesc": "Seleccione esta opcion para responder {0}", "app.failedMessage": "Disculpas, problemas conectando al servidor.", "app.downloadPresentationButton.label": "Descargar la presentación original", - "app.connectingMessage": "Conectandose ...", - "app.waitingMessage": "Desconectado. Se realizara un reintento en {0} segundos ...", + "app.connectingMessage": "Conectándose ...", + "app.waitingMessage": "Desconectado. Se realizará un reintento en {0} segundos ...", "app.retryNow": "Reintentando ahora", "app.navBar.settingsDropdown.optionsLabel": "Opciones", "app.navBar.settingsDropdown.fullscreenLabel": "Desplegar a pantalla completa", @@ -252,14 +256,14 @@ "app.navBar.userListToggleBtnLabel": "Alternar lista de usuarios", "app.navBar.toggleUserList.ariaLabel": "Cambio de usuarios y mensajes", "app.navBar.toggleUserList.newMessages": "con nueva notificación de mensaje ", - "app.navBar.recording": "Esta sesión esta siendo grabada", + "app.navBar.recording": "Esta sesión está siendo grabada", "app.navBar.recording.on": "Grabando", "app.navBar.recording.off": "No grabando", "app.navBar.emptyAudioBrdige": "No hay ningún micrófono activo. Comparta su micrófono para añadir audio a esta grabación.", "app.leaveConfirmation.confirmLabel": "Salir", "app.leaveConfirmation.confirmDesc": "Te desconecta de la reunión", "app.endMeeting.title": "Finalizar sesión", - "app.endMeeting.description": "¿Estas seguro de querer finalizar la sesión?", + "app.endMeeting.description": "¿Estás seguro de querer finalizar la sesión?", "app.endMeeting.yesLabel": "Si", "app.endMeeting.noLabel": "No", "app.about.title": "Acerca de", @@ -276,7 +280,7 @@ "app.actionsBar.raiseLabel": "Levantar", "app.actionsBar.label": "Barra de acciones", "app.actionsBar.actionsDropdown.restorePresentationLabel": "Reestablecer presentación", - "app.actionsBar.actionsDropdown.restorePresentationDesc": "Restaurar presentación despues de que ha sido cerrada", + "app.actionsBar.actionsDropdown.restorePresentationDesc": "Restaurar presentación después de que ha sido cerrada", "app.screenshare.screenShareLabel" : "Compartir pantalla", "app.submenu.application.applicationSectionTitle": "Aplicación", "app.submenu.application.animationsLabel": "Animaciones", @@ -415,8 +419,8 @@ "app.audioModal.playAudio.arialabel" : "Reproducir audio", "app.audioDial.tipIndicator": "Pista", "app.audioDial.tipMessage": "Pulse la tecla '0' en su teléfono para silenciarse/activar el audio a si mismo.", - "app.audioModal.connecting": "Conectandose", - "app.audioModal.connectingEchoTest": "Conenctandose a prueba de eco", + "app.audioModal.connecting": "Conectándose", + "app.audioModal.connectingEchoTest": "Conectándose a prueba de eco", "app.audioManager.joinedAudio": "Has ingresado a la conferencia de audio", "app.audioManager.joinedEcho": "Has ingresado a la prueba de eco", "app.audioManager.leftAudio": "Has abandonado la conferencia de audio", @@ -425,7 +429,7 @@ "app.audioManager.connectionError": "Error: Error de conexión", "app.audioManager.requestTimeout": "Error: Ocurrio un error de tiempo de espera", "app.audioManager.invalidTarget": "Error: Intento hacer una petición a un destino invalido", - "app.audioManager.mediaError": "Error: Ocurrio un error al obtener los dispositivos de medios", + "app.audioManager.mediaError": "Error: Ocurrió un error al obtener los dispositivos de medios", "app.audio.joinAudio": "Unirse al audio", "app.audio.leaveAudio": "Abandonar audio", "app.audio.enterSessionLabel": "Entrar a la sesión", @@ -442,7 +446,7 @@ "app.audio.permissionsOverlay.title": "Permitir acceso a tu micrófono", "app.audio.permissionsOverlay.hint": "Necesitamos tu autorización para acceder tus dipositivos de medios para poder ingresar a la conferencia de voz :)", "app.error.removed": "Has sido eliminado de la conferencia", - "app.error.meeting.ended": "Haz salido de la conferencia", + "app.error.meeting.ended": "Has salido de la conferencia", "app.meeting.logout.duplicateUserEjectReason": "Usuario duplicado intentando unirse a la reunión", "app.meeting.logout.permissionEjectReason": "Expulsado por violación de permiso", "app.meeting.logout.ejectedFromMeeting": "Usted ha sido expulsado/a de la reunión", @@ -487,7 +491,7 @@ "app.toast.setEmoji.label": "Estado del emoji cambiado a {0}", "app.toast.meetingMuteOn.label": "Todos los usuarios han sido silenciados", "app.toast.meetingMuteOff.label": "Función de silenciar ha sido deshabilitada", - "app.notification.recordingStart": "La sesión esta siendo grabada", + "app.notification.recordingStart": "La sesión está siendo grabada", "app.notification.recordingStop": "Esta sesión no está siendo grabada", "app.notification.recordingPaused": "Se ha dejado de grabar la sesión", "app.notification.recordingAriaLabel": "Tiempo de grabación", @@ -620,7 +624,7 @@ "app.whiteboard.toolbar.multiUserOn": "Activar modo multiusuario de pizarra", "app.whiteboard.toolbar.multiUserOff": "Desactivar modo multiusuario de pizarra", "app.whiteboard.toolbar.fontSize": "Lista de tamaño de letras", - "app.feedback.title": "Haz salido de la conferencia", + "app.feedback.title": "Has salido de la conferencia", "app.feedback.subtitle": "Nos encantarÃa saber cual fué tu experiencia con BigBlueButton (opcional)", "app.feedback.textarea": "¿Como podemos mejorar BigBlueButton?", "app.feedback.sendFeedback": "Enviar retroalimentación", diff --git a/bigbluebutton-html5/private/locales/eu.json b/bigbluebutton-html5/private/locales/eu.json index 807ece2a237bb0973800604a88c306c9827b2efd..cab695213f7707c0570cc488e767a1d21094db2b 100644 --- a/bigbluebutton-html5/private/locales/eu.json +++ b/bigbluebutton-html5/private/locales/eu.json @@ -111,6 +111,7 @@ "app.media.autoplayAlertDesc": "Baimendu sartzea", "app.media.screenshare.start": "Pantaila partekatzea hasi da", "app.media.screenshare.end": "Pantaila partekatzea bukatu da", + "app.media.screenshare.unavailable": "Pantaila partekatzea ez dago eskuragarri", "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.", @@ -169,6 +170,9 @@ "app.presentationUploder.rejectedError": "Hautatutako fitxategia(k) baztertu egin d(ir)a. Egiaztatu fitxategi mota(k).", "app.presentationUploder.upload.progress": "Igotzen (%{0})", "app.presentationUploder.upload.413": "Fitxategia handiegia da. Hainbat fitxategitan zatitu ezazu mesedez.", + "app.presentationUploder.upload.408": "Igoerako eskaera-tokenaren denbora agortu da.", + "app.presentationUploder.upload.404": "404: igoera-token baliogabea", + "app.presentationUploder.upload.401": "Aurkezpen-igoeraren eskaera-tokenak huts egin du.", "app.presentationUploder.conversion.conversionProcessingSlides": "{1} orrietatik {0}.a prozesatzen", "app.presentationUploder.conversion.genericConversionStatus": "Fitxategia bihurtzen...", "app.presentationUploder.conversion.generatingThumbnail": "Miniaturak sortzen...", diff --git a/bigbluebutton-html5/private/locales/fa_IR.json b/bigbluebutton-html5/private/locales/fa_IR.json index 89f6fa4d9b88e9a08a1ef11d1cb82a59987ccb3a..814a4f19c3b4dc94c8abb449adba9c27ed51c4bf 100644 --- a/bigbluebutton-html5/private/locales/fa_IR.json +++ b/bigbluebutton-html5/private/locales/fa_IR.json @@ -111,6 +111,7 @@ "app.media.autoplayAlertDesc": "دادن اجازه دسترسی", "app.media.screenshare.start": "اشتراک صÙØÙ‡ نمایش شروع شد", "app.media.screenshare.end": "اشتراک صÙØÙ‡ نمایش به پایان رسید.", + "app.media.screenshare.unavailable": "اشتراک صÙØÙ‡ در دسترس نیست", "app.media.screenshare.autoplayBlockedDesc": "ما به مجوز شما برای نشان دادن شما به ارائه دهندگان نیاز داریم", "app.media.screenshare.autoplayAllowLabel": "مشاهده صÙØÙ‡ اشتراکی", "app.screenshare.notAllowed": "خطا : دسترسی برای نمایش صÙØÙ‡ ØŒ ایجاد نشد", @@ -169,6 +170,9 @@ "app.presentationUploder.rejectedError": "Ùایل(های) انتخاب شده رد شدند. لطÙا نوع Ùایل(ها) را بررسی کنید", "app.presentationUploder.upload.progress": "در Øال بارگزاری ({0}%)", "app.presentationUploder.upload.413": "Øجم Ùایل زیاد است.لطÙا آن را به چند Ùایل کوچکتر تبدیل کنید", + "app.presentationUploder.upload.408": "زمان درخواست شناسه بارگذاری به پایان رسید.", + "app.presentationUploder.upload.404": "404: شناسه بارگذاری نامعتبر Ù…ÛŒ باشد.", + "app.presentationUploder.upload.401": "درخواست شناسه بارگذاری ارائه ناموÙÙ‚ بوده است.", "app.presentationUploder.conversion.conversionProcessingSlides": "در Øال پردازش صÙØÙ‡ {0} از {1}", "app.presentationUploder.conversion.genericConversionStatus": "در Øال تبدیل Ùایل ...", "app.presentationUploder.conversion.generatingThumbnail": "در Øال تولید تصاویر Ú©ÙˆÚ†Ú© ...", @@ -389,7 +393,7 @@ "app.calculatingBreakoutTimeRemaining": "در Øال Ù…Øاسبه زمان باقی مانده ...", "app.audioModal.ariaTitle": "ملØÙ‚ شدن به مدال صدا", "app.audioModal.microphoneLabel": "میکروÙون", - "app.audioModal.listenOnlyLabel": "تنها شنوده", + "app.audioModal.listenOnlyLabel": "تنها شنونده", "app.audioModal.audioChoiceLabel": "مایلید با Ú†Ù‡ روشی به بخش صدا وارید شوید؟", "app.audioModal.iOSBrowser": "صدا/تصویر پیشتیبانی نمیشود", "app.audioModal.iOSErrorDescription": "در Øال Øاضر صدا Ùˆ تصویر در مرورگر کروم iOS پشتیبانی نمیشود", diff --git a/bigbluebutton-html5/private/locales/fr.json b/bigbluebutton-html5/private/locales/fr.json index 4ef38a3ebf7b68833ee78c39af5cd466e790f207..df0ab51259bf3be07f13aa07d4949aafa380dfb1 100644 --- a/bigbluebutton-html5/private/locales/fr.json +++ b/bigbluebutton-html5/private/locales/fr.json @@ -63,6 +63,7 @@ "app.userList.presenter": "Présentateur", "app.userList.you": "Vous", "app.userList.locked": "Verrouillé", + "app.userList.byModerator": "par (Modérateur)", "app.userList.label": "Liste d'utilisateur", "app.userList.toggleCompactView.label": "Basculer le mode d'affichage compact", "app.userList.guest": "Invité", @@ -72,6 +73,8 @@ "app.userList.menu.chat.label": "Démarrer une discussion privée", "app.userList.menu.clearStatus.label": "Effacer le statut", "app.userList.menu.removeUser.label": "Retirer l'utilisateur", + "app.userList.menu.removeConfirmation.label": "Supprimer utilisateur ({0})", + "app.userlist.menu.removeConfirmation.desc": "Voulez-vous vraiment supprimer cet utilisateur ?\nUne fois supprimé, il ne pourra pas rejoindre cette session.", "app.userList.menu.muteUserAudio.label": "Rendre Muet", "app.userList.menu.unmuteUserAudio.label": "Autoriser à parler", "app.userList.userAriaLabel": "{0} {1} {2} État {3}", @@ -111,12 +114,13 @@ "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.unavailable": "Partage d'écran indisponible", "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.", - "app.screenshare.notSupportedError": "Erreur: Le partage d'écran est autorisé uniquement sur les domaines sécurisés (SSL)", - "app.screenshare.notReadableError": "Erreur: Un échec s'est produit lors de la capture de votre écran.", - "app.screenshare.genericError": "Erreur: Une erreur s'est produite lors du partage d'écran, veuillez réessayer.", + "app.screenshare.notAllowed": "Erreur : l'autorisation d'accès à l'écran n'a pas été accordée.", + "app.screenshare.notSupportedError": "Erreur : le partage d'écran est autorisé uniquement sur les domaines sécurisés (SSL)", + "app.screenshare.notReadableError": "Erreur : un échec s'est produit lors de la capture de votre écran.", + "app.screenshare.genericError": "Erreur : une erreur s'est produite lors du partage d'écran, veuillez réessayer.", "app.meeting.ended": "Cette session s'est terminée", "app.meeting.meetingTimeRemaining": "Temps de réunion restant : {0}", "app.meeting.meetingTimeHasEnded": "Le temps s'est écoulé. La réunion sera bientôt close", @@ -169,6 +173,9 @@ "app.presentationUploder.rejectedError": "Le(s) fichier(s) sélectionné(s) a été rejeté(s). Veuillez vérifier le format de ce(s) fichier(s).", "app.presentationUploder.upload.progress": "Chargement ({0}%)", "app.presentationUploder.upload.413": "Le fichier est trop volumineux. Veuillez le diviser en plusieurs fichiers s'il vous plaît.", + "app.presentationUploder.upload.408": "Le jeton de demande de téléversement a expiré.", + "app.presentationUploder.upload.404": "404 : jeton de téléversement invalide", + "app.presentationUploder.upload.401": "La demande d'un jeton de téléversement de présentation a échoué.", "app.presentationUploder.conversion.conversionProcessingSlides": "Traitement de la page {0} sur {1}", "app.presentationUploder.conversion.genericConversionStatus": "Conversion de fichier...", "app.presentationUploder.conversion.generatingThumbnail": "Génération des vignettes...", @@ -405,12 +412,12 @@ "app.audioModal.settingsTitle": "Modifier vos paramètres audio", "app.audioModal.helpTitle": "Il y a un problème avec vos périphériques", "app.audioModal.helpText": "Avez-vous donné la permission d'accéder à votre microphone ? Notez qu'une boîte de dialogue doit apparaître lorsque vous essayez de rejoindre l'audio, demandant les autorisations de votre périphérique multimédia. Veuillez l'accepter pour rejoindre la conférence audio. Si ce n'est pas le cas, essayez de modifier les autorisations de votre microphone dans les paramètres de votre navigateur.", - "app.audioModal.help.noSSL": "Cette page n'est pas sécurisée. Afin que l'accès u microphone soit autorisé, la page doit être servie via HTTPS. Veuillez contacter l'administrateur du serveur.", - "app.audioModal.help.macNotAllowed": "Il semble que les préférences système de votre Mac bloquent l'accès à votre microphone. Ouvrez les Préférences Système> Sécurité et confidentialité> Confidentialité> Microphone et vérifiez que le navigateur que vous utilisez est bien coché.", + "app.audioModal.help.noSSL": "Cette page n'est pas sécurisée. Afin que l'accès au microphone soit autorisé, la page doit être servie via HTTPS. Veuillez contacter l'administrateur du serveur.", + "app.audioModal.help.macNotAllowed": "Il semble que les préférences système de votre Mac bloquent l'accès à votre microphone. Ouvrez les Préférences Système > Sécurité et confidentialité > Confidentialité > Microphone et vérifiez que le navigateur que vous utilisez est bien coché.", "app.audioModal.audioDialTitle": "Joindre avec votre téléphone", "app.audioDial.audioDialDescription": "Composer", "app.audioDial.audioDialConfrenceText": "et saisir le numéro PIN de la conférence :", - "app.audioModal.autoplayBlockedDesc": "Nous avons besoins de votre autorisation pour activer le son.", + "app.audioModal.autoplayBlockedDesc": "Nous avons besoin de votre autorisation pour activer le son.", "app.audioModal.playAudio": "Lecture audio", "app.audioModal.playAudio.arialabel" : "Lecture audio", "app.audioDial.tipIndicator": "Astuce", @@ -552,7 +559,7 @@ "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": "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.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", "app.video.cancel": "Annuler", @@ -610,7 +617,7 @@ "app.whiteboard.toolbar.color.eletricLime": "Vert électrique", "app.whiteboard.toolbar.color.lime": "Vert", "app.whiteboard.toolbar.color.cyan": "Cyan", - "app.whiteboard.toolbar.color.dodgerBlue": "Dodger bleu", + "app.whiteboard.toolbar.color.dodgerBlue": "Bleu Dodger", "app.whiteboard.toolbar.color.blue": "Bleu", "app.whiteboard.toolbar.color.violet": "Violet", "app.whiteboard.toolbar.color.magenta": "Magenta", @@ -659,7 +666,7 @@ "app.createBreakoutRoom.addParticipantLabel": "+ Ajouter participant", "app.createBreakoutRoom.freeJoin": "Autoriser les participants à choisir une salle de réunion à rejoindre", "app.createBreakoutRoom.leastOneWarnBreakout": "Vous devez placer au moins un participant dans une réunion privée.", - "app.createBreakoutRoom.modalDesc": "Conseil : Vous pouvez glisser-déposer le nom d'un utilisateur pour l'affecter à une salle de réunion spécifique.", + "app.createBreakoutRoom.modalDesc": "Conseil : vous pouvez glisser-déposer le nom d'un utilisateur pour l'affecter à une salle de réunion spécifique.", "app.createBreakoutRoom.roomTime": "{0} minutes", "app.createBreakoutRoom.numberOfRoomsError": "Le nombre de réunions est invalide.", "app.externalVideo.start": "Partager une nouvelle vidéo", @@ -671,7 +678,7 @@ "app.externalVideo.autoPlayWarning": "Jouer la vidéo pour permettre la synchronisation des médias", "app.network.connection.effective.slow": "Nous remarquons des problèmes de connectivité.", "app.network.connection.effective.slow.help": "Plus d'information", - "app.externalVideo.noteLabel": "Remarque : Les vidéos externes partagées n'apparaîtront pas dans l'enregistrement. Les URLs YouTube, Vimeo, Instructure Media, Twitch et Daily Motion sont supportées.", + "app.externalVideo.noteLabel": "Remarque : les vidéos externes partagées n'apparaîtront pas dans l'enregistrement. Les URLs YouTube, Vimeo, Instructure Media, Twitch et Daily Motion sont supportées.", "app.actionsBar.actionsDropdown.shareExternalVideo": "Partager une vidéo externe", "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Arrêter le partage de vidéo externe", "app.iOSWarning.label": "Veuillez mettre à jour vers iOS 12.2 ou supérieur", diff --git a/bigbluebutton-html5/private/locales/gl.json b/bigbluebutton-html5/private/locales/gl.json index 10f156aa2743d5815d326873c013bb87ed74ddb3..4a7128801b506fbc3006189b4c8282aa127183ef 100644 --- a/bigbluebutton-html5/private/locales/gl.json +++ b/bigbluebutton-html5/private/locales/gl.json @@ -1,25 +1,25 @@ { - "app.home.greeting": "A túa presentación dara inicio nun momento...", + "app.home.greeting": "A súa presentación comezará en breve…", "app.chat.submitLabel": "Enviar mensaxe", - "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", - "app.chat.inputLabel": "Entrada de mensaxe para chat {0}", + "app.chat.errorMaxMessageLength": "A mensaxe ten {0} carácter(es) mais do admitido", + "app.chat.disconnected": "Esta desconectado, non é posÃbel enviar as mensaxes", + "app.chat.locked": "Conversa bloqueado, anon é posÃbel enviar as mensaxes", + "app.chat.inputLabel": "Entrada de mensaxe para a conversa {0}", "app.chat.inputPlaceholder": "Enviar mensaxe a {0}.", - "app.chat.titlePublic": "Chat público", - "app.chat.titlePrivate": "Chat privado con {0}.", - "app.chat.partnerDisconnected": "{0} abandonou a reunión", + "app.chat.titlePublic": "Conversa pública", + "app.chat.titlePrivate": "Conversa privada con {0}.", + "app.chat.partnerDisconnected": "{0} abandonou a xuntanza", "app.chat.closeChatLabel": "Pechar {0}", - "app.chat.hideChatLabel": "Ocultar {0}", - "app.chat.moreMessages": "Máis mensaxes abaixo", - "app.chat.dropdown.options": "Opcións de chat", + "app.chat.hideChatLabel": "Agochar {0}", + "app.chat.moreMessages": "Máis mensaxes a seguir", + "app.chat.dropdown.options": "Opcións da conversa", "app.chat.dropdown.clear": "Limpar", "app.chat.dropdown.copy": "Copiar", "app.chat.dropdown.save": "Gardar", - "app.chat.label": "Chat", + "app.chat.label": "Conversa", "app.chat.offline": "Desconectado", - "app.chat.emptyLogLabel": "Rexistro de chat baleiro", - "app.chat.clearPublicChatMessage": "O chat publico foi borrado por un moderador", + "app.chat.emptyLogLabel": "Rexistro da conversa baleiro", + "app.chat.clearPublicChatMessage": "A conversa publica foi retirada por un moderador", "app.chat.multi.typing": "Varios usuarios están a escribir", "app.chat.one.typing": "{0} está a escribir", "app.chat.two.typing": "{0} e {1} están a escribir", @@ -27,186 +27,203 @@ "app.captions.menu.close": "Pechar", "app.captions.menu.start": "Iniciar", "app.captions.menu.ariaStart": "Comezar a escribir subtÃtulos", - "app.captions.menu.ariaStartDesc": "Abre o editor de subtÃtulos e pecha a xanela flotante", - "app.captions.menu.select": "Seleccione idiomas dispoñibles", - "app.captions.menu.ariaSelect": "Idioma de subtÃtulos", - "app.captions.menu.subtitle": "Selecciona o idioma e estilos para subtÃtulos a utilizar na túa sesión.", + "app.captions.menu.ariaStartDesc": "Abre o editor de subtÃtulos e pecha a xanela modal", + "app.captions.menu.select": "Seleccione idiomas dispoñÃbeis", + "app.captions.menu.ariaSelect": "Idioma dos subtÃtulos", + "app.captions.menu.subtitle": "Seleccione o idioma e estilos para subtÃtulos a utilizar na súa sesión.", "app.captions.menu.title": "SubtÃtulos", "app.captions.menu.fontSize": "Tamaño", "app.captions.menu.fontColor": "Cor de texto", - "app.captions.menu.fontFamily": "Fonte", + "app.captions.menu.fontFamily": "Tipo de letra", "app.captions.menu.backgroundColor": "Cor de fondo", - "app.captions.menu.previewLabel": "Previsualizar", - "app.captions.menu.cancelLabel": "Cancela", - "app.captions.pad.hide": "Ocultar subtÃtulos", - "app.captions.pad.tip": "Presione Esc para enfocar a barra de ferramentas do editor", + "app.captions.menu.previewLabel": "Vista previa", + "app.captions.menu.cancelLabel": "Cancelar", + "app.captions.pad.hide": "Agochar os subtÃtulos", + "app.captions.pad.tip": "Prema Esc para enfocar a barra de ferramentas do editor", "app.captions.pad.ownership": "Tomar o control", - "app.captions.pad.ownershipTooltip": "Será asignado como propietario de 0 {} subtÃtulos", + "app.captions.pad.ownershipTooltip": "Vai ser asignado coma propietario de {0} subtÃtulos", "app.captions.pad.interimResult": "Resultados provisionais", "app.captions.pad.dictationStart": "Iniciar ditado", "app.captions.pad.dictationStop": "Deter ditado", - "app.captions.pad.dictationOnDesc": "Activar recoñecemento de voz", - "app.captions.pad.dictationOffDesc": "Desactivar recoñecemento de voz", + "app.captions.pad.dictationOnDesc": "Activar o recoñecemento de voz", + "app.captions.pad.dictationOffDesc": "Desactivar o recoñecemento de voz", "app.note.title": "Notas compartidas", "app.note.label": "Nota", - "app.note.hideNoteLabel": "Ocultar nota", - "app.user.activityCheck": "Comprobar actividade do usuario", - "app.user.activityCheck.label": "Comprobar se o usuario continúa na reunión ({0})", + "app.note.hideNoteLabel": "Agochar nota", + "app.user.activityCheck": "Comprobar a actividade do usuario", + "app.user.activityCheck.label": "Comprobar se o usuario aÃnda está na xuntanza ({0})", "app.user.activityCheck.check": "Comprobar", - "app.note.tipLabel": "Presione Esc para enfocar a barra de ferramentas do editor", + "app.note.tipLabel": "Prema Esc para enfocar a barra de ferramentas do editor", "app.userList.usersTitle": "Usuarios", "app.userList.participantsTitle": "Participantes", "app.userList.messagesTitle": "Mensaxes", "app.userList.notesTitle": "Notas", - "app.userList.notesListItem.unreadContent": "Contido novo dispoñible na sección de notas compartidas", + "app.userList.notesListItem.unreadContent": "Contido novo dispoñÃbel na sección de notas compartidas", "app.userList.captionsTitle": "SubtÃtulos", "app.userList.presenter": "Presentador", - "app.userList.you": "O teu", + "app.userList.you": "Vostede", "app.userList.locked": "Bloqueado", + "app.userList.byModerator": "por (Moderator)", "app.userList.label": "Lista de usuarios", - "app.userList.toggleCompactView.label": "Cambiar a modo de vista compacta", - "app.userList.guest": "Huesped", - "app.userList.menuTitleContext": "Opcións dispoñibles", - "app.userList.chatListItem.unreadSingular": "{0} Nova Mensaxe", - "app.userList.chatListItem.unreadPlural": "{0} Novas mensaxes", - "app.userList.menu.chat.label": "Iniciar o chat privado", - "app.userList.menu.clearStatus.label": "Borrar estado", - "app.userList.menu.removeUser.label": "Eliminar usuario", - "app.userList.menu.muteUserAudio.label": "Deshabilitar audio de usuario", - "app.userList.menu.unmuteUserAudio.label": "Habilitar audio de usuario", + "app.userList.toggleCompactView.label": "Alternar o modo de vista compacta", + "app.userList.guest": "Convidado", + "app.userList.menuTitleContext": "Opcións dispoñÃbeis", + "app.userList.chatListItem.unreadSingular": "{0} nova mensaxe", + "app.userList.chatListItem.unreadPlural": "{0} novas mensaxes", + "app.userList.menu.chat.label": "Iniciar a conversa privada", + "app.userList.menu.clearStatus.label": "Limpar o estado", + "app.userList.menu.removeUser.label": "Retirar o usuario", + "app.userList.menu.removeConfirmation.label": "Retirar o usuario ({0})", + "app.userlist.menu.removeConfirmation.desc": "Confirma que quere retirar este usuario? Unha vez retirado non poderá volver entrar nesta sesión.", + "app.userList.menu.muteUserAudio.label": "Desactivar o son do usuario", + "app.userList.menu.unmuteUserAudio.label": "Activar o son do usuario", "app.userList.userAriaLabel": "{0} {1} {2} estado {3}", "app.userList.menu.promoteUser.label": "Promover a moderador", "app.userList.menu.demoteUser.label": "Degradar a espectador", "app.userList.menu.unlockUser.label": "Desbloquear {0}", "app.userList.menu.lockUser.label": "Bloquear {0}", - "app.userList.menu.directoryLookup.label": "Procura de directorio", + "app.userList.menu.directoryLookup.label": "Atopar directorio", "app.userList.menu.makePresenter.label": "Promover a presentador", - "app.userList.userOptions.manageUsersLabel": "Manexar usuarios", - "app.userList.userOptions.muteAllLabel": "Deshabilitar audio a todos os usuarios", - "app.userList.userOptions.muteAllDesc": "Deshabilitar audio a todos os usuarios na sesión", - "app.userList.userOptions.clearAllLabel": "Borrar todas as iconas de estado", - "app.userList.userOptions.clearAllDesc": "Borrar todas as iconas de estado de usuarios", - "app.userList.userOptions.muteAllExceptPresenterLabel": "Deshabilitar audio a todos os usuarios excepto a presentador", - "app.userList.userOptions.muteAllExceptPresenterDesc": "Deshabilitar audio a todos os usuarios na sesión excepto a presentador", - "app.userList.userOptions.unmuteAllLabel": "Desactivar funcion para deshabilitar audio", - "app.userList.userOptions.unmuteAllDesc": "Habilitar audio na sesión", + "app.userList.userOptions.manageUsersLabel": "Administrar usuarios", + "app.userList.userOptions.muteAllLabel": "Desactivar o son de todos os usuarios", + "app.userList.userOptions.muteAllDesc": "Desactivar o son de todos os usuarios na xuntanza", + "app.userList.userOptions.clearAllLabel": "Limpar todas as iconas de estado", + "app.userList.userOptions.clearAllDesc": "Limpar todas as iconas de estado dos usuarios", + "app.userList.userOptions.muteAllExceptPresenterLabel": "Silenciar a todos os usuarios agás o presentador", + "app.userList.userOptions.muteAllExceptPresenterDesc": "Silenciar a todos os usuarios na xuntanza agás o presentador", + "app.userList.userOptions.unmuteAllLabel": "Desactivar o silencio na xuntanza", + "app.userList.userOptions.unmuteAllDesc": "Activar o son na xuntanza", "app.userList.userOptions.lockViewersLabel": "Bloquear espectadores", - "app.userList.userOptions.lockViewersDesc": "Bloquear algunhas funcións a espectadores", - "app.userList.userOptions.disableCam": "Cámaras web de invitados deshabilitadas", - "app.userList.userOptions.disableMic": "Micrófonos de invitados deshabilitados", - "app.userList.userOptions.disablePrivChat": "Chat privado deshabilitado", - "app.userList.userOptions.disablePubChat": "Chat público deshabilitado", - "app.userList.userOptions.disableNote": "Notas compartidas bloqueadas", - "app.userList.userOptions.hideUserList": "Lista de usuarios oculta para participantes", + "app.userList.userOptions.lockViewersDesc": "Bloquear certas funcionalidades para os asistentes ao encontro", + "app.userList.userOptions.disableCam": "As cámaras web dos espectadores están desactivadas", + "app.userList.userOptions.disableMic": "Os micrófonos dos espectadores están desactivados", + "app.userList.userOptions.disablePrivChat": "A conversa privada está desactivada", + "app.userList.userOptions.disablePubChat": "A conversa pública está desactivada", + "app.userList.userOptions.disableNote": "As notas compartidas están bloqueadas", + "app.userList.userOptions.hideUserList": "A lista de usuarios agora está agochada para os espectadores", "app.userList.userOptions.webcamsOnlyForModerator": "Só os moderadores poden ver as cámaras web dos invitados (debido á configuración de bloqueo)", - "app.userList.content.participants.options.clearedStatus": "Todos os estados de usuario foron borrados", - "app.userList.userOptions.enableCam": "Cámaras web de invitados habilitadas", - "app.userList.userOptions.enableMic": "Micrófonos de invitados habilitados", - "app.userList.userOptions.enablePrivChat": "Chat privado habilitado", - "app.userList.userOptions.enablePubChat": "Chat público habilitado", - "app.userList.userOptions.enableNote": "Notas compartidas habilitadas", - "app.userList.userOptions.showUserList": "Lista de usuarios visible para participantes", - "app.userList.userOptions.enableOnlyModeratorWebcam": "Vostede pode habilitar o seu cámara web agora. Todos poderán verlle", - "app.media.label": "Media", + "app.userList.content.participants.options.clearedStatus": "Limparonse todos os estados de usuario", + "app.userList.userOptions.enableCam": "As cámaras web dos espectadores están activadas", + "app.userList.userOptions.enableMic": "Os micrófonos dos espectadores están activados", + "app.userList.userOptions.enablePrivChat": "A conversa privada está activada", + "app.userList.userOptions.enablePubChat": "A conversa pública está activada", + "app.userList.userOptions.enableNote": "As notas compartidas están activadas", + "app.userList.userOptions.showUserList": "A lista de usuarios agora amosase aos espectadores", + "app.userList.userOptions.enableOnlyModeratorWebcam": "Pode activar agora a súaúa cámara web, todos poderán velo", + "app.media.label": "Multimedia", "app.media.autoplayAlertDesc": "Permitir acceso", - "app.media.screenshare.start": "Compartir pantalla iniciou", - "app.media.screenshare.end": "Compartir pantalla finalizou", - "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", - "app.meeting.meetingTimeHasEnded": "Tempo finalizado. A reunión pecharase en breve", - "app.meeting.endedMessage": "Serás enviado á pantalla de inicio.", - "app.meeting.alertMeetingEndsUnderOneMinute": "A reunión péchase nun minuto", - "app.meeting.alertBreakoutEndsUnderOneMinute": "A micro-salga péchase nun minuto", - "app.presentation.hide": "Ocultar presentación", + "app.media.screenshare.start": "Comezou a pantalla compartida", + "app.media.screenshare.end": "Rematou a pantalla compartida", + "app.media.screenshare.unavailable": "A pantalla compartida non está dispoñÃbel", + "app.media.screenshare.notSupported": "Este navegador non admite a compartición de pantalla.", + "app.media.screenshare.autoplayBlockedDesc": "Necesitamos o seu permiso para amosarlle a pantalla do presentador", + "app.media.screenshare.autoplayAllowLabel": "Ver a pantalla compartida", + "app.screenshare.notAllowed": "Erro: non se concedeu permiso para acceder á pantalla.", + "app.screenshare.notSupportedError": "Erro: a pantalla compartida só está permitida en dominios seguros (SSL)", + "app.screenshare.notReadableError": "Erro: produciuse un fallo ao tentar capturar a súa pantalla", + "app.screenshare.genericError": "Erro: produciuse un erro ao compartir a pantalla, ténteo de novo", + "app.meeting.ended": "Rematou a sesión", + "app.meeting.meetingTimeRemaining": "Tempo restante da xuntanza: {0}", + "app.meeting.meetingTimeHasEnded": "Rematou o tempo, A xuntanza pecharase en breve", + "app.meeting.endedMessage": "Será reenviado á pantalla de inicio", + "app.meeting.alertMeetingEndsUnderOneMinute": "A xuntanza pecharase nun minuto", + "app.meeting.alertBreakoutEndsUnderOneMinute": "A sala parcial pecharase nun minuto", + "app.presentation.hide": "Agochar a presentación", "app.presentation.notificationLabel": "Presentación actual", "app.presentation.slideContent": "Contido da diapositiva", - "app.presentation.startSlideContent": "Inicio do pase de diapositivas", - "app.presentation.endSlideContent": "Fin do pase de diapositivas", - "app.presentation.emptySlideContent": "Diapositiva actual sen contido", - "app.presentation.presentationToolbar.noNextSlideDesc": "Finalizar presentación", - "app.presentation.presentationToolbar.noPrevSlideDesc": "Iniciar presentación", - "app.presentation.presentationToolbar.selectLabel": "Seleccione diapositiva", + "app.presentation.startSlideContent": "Inicio do contido das diapositivas", + "app.presentation.endSlideContent": "Fin do contido das diapositivas", + "app.presentation.emptySlideContent": "Non hai contido para a diapositiva actual", + "app.presentation.presentationToolbar.noNextSlideDesc": "Rematar a presentación", + "app.presentation.presentationToolbar.noPrevSlideDesc": "Iniciar a presentación", + "app.presentation.presentationToolbar.selectLabel": "Seleccionar a diapositiva", "app.presentation.presentationToolbar.prevSlideLabel": "Diapositiva anterior", - "app.presentation.presentationToolbar.prevSlideDesc": "Cambiar presentación a diapositiva anterior", + "app.presentation.presentationToolbar.prevSlideDesc": "Cambia a presentación á diapositiva anterior", "app.presentation.presentationToolbar.nextSlideLabel": "Seguinte diapositiva", - "app.presentation.presentationToolbar.nextSlideDesc": "Cambiar presentación a diapositiva seguinte", - "app.presentation.presentationToolbar.skipSlideLabel": "Brincar diapositiva", - "app.presentation.presentationToolbar.skipSlideDesc": "Cambiar presentación a diapositiva especÃfica", - "app.presentation.presentationToolbar.fitWidthLabel": "Axustar ao ancho", - "app.presentation.presentationToolbar.fitWidthDesc": "Mostrar diapositiva a todo o ancho", + "app.presentation.presentationToolbar.nextSlideDesc": "Cambia a presentación á seguinte diapositiva", + "app.presentation.presentationToolbar.skipSlideLabel": "Omitir diapositiva", + "app.presentation.presentationToolbar.skipSlideDesc": "Cambia a presentación a unha diapositiva especÃfica", + "app.presentation.presentationToolbar.fitWidthLabel": "Axustar ao largo", + "app.presentation.presentationToolbar.fitWidthDesc": "Amosar todo o largo da diapositiva", "app.presentation.presentationToolbar.fitScreenLabel": "Axustar á pantalla", - "app.presentation.presentationToolbar.fitScreenDesc": "Mostrar toda a diapositiva", + "app.presentation.presentationToolbar.fitScreenDesc": "Amosar toda a diapositiva", "app.presentation.presentationToolbar.zoomLabel": "Zoom", - "app.presentation.presentationToolbar.zoomDesc": "Cambiar o nivel de Zoom da presentación", + "app.presentation.presentationToolbar.zoomDesc": "Cambiar o nivel de zoom da presentación", "app.presentation.presentationToolbar.zoomInLabel": "Achegarse", - "app.presentation.presentationToolbar.zoomInDesc": "Achegarse en presentación", + "app.presentation.presentationToolbar.zoomInDesc": "Ampliar a presentación", "app.presentation.presentationToolbar.zoomOutLabel": "Afastarse", - "app.presentation.presentationToolbar.zoomOutDesc": "Afastarse en presentación", - "app.presentation.presentationToolbar.zoomReset": "Reiniciar zoom", - "app.presentation.presentationToolbar.zoomIndicator": "Porcentaxe actual de zoom", - "app.presentation.presentationToolbar.fitToWidth": "Axustar ao ancho", + "app.presentation.presentationToolbar.zoomOutDesc": "Reducir a presentación", + "app.presentation.presentationToolbar.zoomReset": "Restaurar o zoom", + "app.presentation.presentationToolbar.zoomIndicator": "Porcentaxe de zoom actual", + "app.presentation.presentationToolbar.fitToWidth": "Axustar ao largo", "app.presentation.presentationToolbar.fitToPage": "Axustar á páxina", "app.presentation.presentationToolbar.goToSlide": "Diapositiva {0}", "app.presentationUploder.title": "Presentación", - "app.presentationUploder.message": "Como presentador ten a habilidade de subir calquera documento ofimático ou PDF/PDF. Recomendámoslle o formato PDF/PDF para obter os mellores resultados. Por favor asegúrese de que a presentación está seleccionada usando o selector circular na parte dereita.", - "app.presentationUploder.uploadLabel": "Cargar", + "app.presentationUploder.message": "Como presentador tes a posibilidade de enviar calquera documento de oficina ou ficheiro PDF. Recomendamos o ficheiro PDF para obter mellores resultados. Asegúrese de que a presentación está seleccionada usando o selector circular na parte dereita. ", + "app.presentationUploder.uploadLabel": "Enviar", "app.presentationUploder.confirmLabel": "Confirmar", "app.presentationUploder.confirmDesc": "Gardar os cambios e iniciar a presentación", "app.presentationUploder.dismissLabel": "Cancelar", - "app.presentationUploder.dismissDesc": "Pechar a xanela modal e descartar cambios.", - "app.presentationUploder.dropzoneLabel": "Arrastrar arquivo aqui para cargalo", - "app.presentationUploder.dropzoneImagesLabel": "Arrastrar imaxes aqui para cargalas", - "app.presentationUploder.browseFilesLabel": "ou buscar arquivos", - "app.presentationUploder.browseImagesLabel": "ou buscar imagenes", - "app.presentationUploder.fileToUpload": "En proceso de ser cargado ...", + "app.presentationUploder.dismissDesc": "Pechar a xanela modal e desbotar os seus cambios.", + "app.presentationUploder.dropzoneLabel": "Arrastre os ficheiros aquà para envialos", + "app.presentationUploder.dropzoneImagesLabel": "Arrastre as imaxes aquà para envialas", + "app.presentationUploder.browseFilesLabel": "ou busque os ficheiros", + "app.presentationUploder.browseImagesLabel": "ou busque as imaxes", + "app.presentationUploder.fileToUpload": "Para ser enviado…", "app.presentationUploder.currentBadge": "Acual", - "app.presentationUploder.rejectedError": "O(os) arquivo(s) seleccionado(s) ha(n) sido rexeitado(s). Por favor, revise o(os) tipo(s) de arquivo.", - "app.presentationUploder.upload.progress": "Cargando ({0}%)", - "app.presentationUploder.upload.413": "Arquivo moi grande, por favor divÃdeo en varios ficheiros", - "app.presentationUploder.conversion.conversionProcessingSlides": "Procesando páxina {0} de 1. {}", - "app.presentationUploder.conversion.genericConversionStatus": "Convertendo arquivos ...", - "app.presentationUploder.conversion.generatingThumbnail": "Xerando miniaturas ...", - "app.presentationUploder.conversion.generatedSlides": "Diapositivas foron xeradas ...", - "app.presentationUploder.conversion.generatingSvg": "Xerando imaxes SVG ...", - "app.presentationUploder.conversion.pdfHasBigPage": "Non se pode converter o ficheiro PDF/PDF, por favor proba a optimizalo", - "app.presentationUploder.conversion.timeout": "A conversión tomou demasiado tempo ...", - "app.presentationUploder.isDownloadableLabel": "A descarga da presentación non está permitida", - "app.presentationUploder.isNotDownloadableLabel": "Descarga de presentación permitida", - "app.presentationUploder.removePresentationLabel": "Borrar presentación", - "app.presentationUploder.setAsCurrentPresentation": "Establecer presentación como actual", - "app.presentationUploder.tableHeading.filename": "Nome de arquivo", + "app.presentationUploder.rejectedError": "O(s) ficheiro(s) seleccionado(s) foi(foron) rexeitado(s). Revise o(os) tipo(s) de ficheiro.", + "app.presentationUploder.upload.progress": "Enviando ({0}%)", + "app.presentationUploder.upload.413": "O ficheiro é grande de máis, divÃdao en varios ficheiros", + "app.presentationUploder.upload.408": "Solicitar o tempo de espera da testemuña de envÃo.", + "app.presentationUploder.upload.404": "404: testemuña de envÃo non válida", + "app.presentationUploder.upload.401": "Produciuse un fallo na solicitude do tempo de espera da testemuña de envÃo.", + "app.presentationUploder.conversion.conversionProcessingSlides": "Procesando páxina {0} de {1}", + "app.presentationUploder.conversion.genericConversionStatus": "Convertendo ficheiros…", + "app.presentationUploder.conversion.generatingThumbnail": "Xerando miniaturas…", + "app.presentationUploder.conversion.generatedSlides": "Presentacións xeradas…", + "app.presentationUploder.conversion.generatingSvg": "Xerando imaxes SVG…", + "app.presentationUploder.conversion.pageCountExceeded": "Excedeu o número de páxinas. Divida o ficheiro en varios ficheiros.", + "app.presentationUploder.conversion.officeDocConversionInvalid": "Produciuse un fallo ao procesar o documento de oficina. No seu lugar envÃe un PDF.", + "app.presentationUploder.conversion.officeDocConversionFailed": "Produciuse un fallo ao procesar o documento de oficina. No seu lugar envÃe un PDF.", + "app.presentationUploder.conversion.pdfHasBigPage": "Non foi posÃbel converter o ficheiro PDF. Tente optimizalo", + "app.presentationUploder.conversion.timeout": " Ouh! a conversión tomou demasiado tempo", + "app.presentationUploder.conversion.pageCountFailed": "Produciuse un fallo ao determinar o número de páxinas.", + "app.presentationUploder.isDownloadableLabel": "Non permitir a descarga da presentación", + "app.presentationUploder.isNotDownloadableLabel": "Permitir a descarga da presentación", + "app.presentationUploder.removePresentationLabel": "Retirar a presentación", + "app.presentationUploder.setAsCurrentPresentation": "Estabelecer a presentación como actual", + "app.presentationUploder.tableHeading.filename": "Nome de ficheiro", "app.presentationUploder.tableHeading.options": "Opcións", "app.presentationUploder.tableHeading.status": "Estado", "app.poll.pollPaneTitle": "Enquisa", "app.poll.quickPollTitle": "Enquisa rápida", - "app.poll.hidePollDesc": "Ocultar o menu da enquisa", - "app.poll.customPollInstruction": "Para crear unha enquisa personalizada presiona o botón de abaixo e introduce as respostas.", - "app.poll.quickPollInstruction": "Selecciona unha das seguintes opcións para iniciar a túa enquisa. ", + "app.poll.hidePollDesc": "Agochar o panel do menú da enquisa", + "app.poll.customPollInstruction": "Para crear unha enquisa personalizada, seleccione o botón seguinte e introduza as súas opcións.", + "app.poll.quickPollInstruction": "Selecciona unha das seguintes opcións para iniciar a súa enquisa.", "app.poll.customPollLabel": "Enquisa personalizada", - "app.poll.startCustomLabel": "Iniciar enquisa personalizada", - "app.poll.activePollInstruction": "Deixe este panel aberto para ver as respostas en tempo real da súa enquisa. Cando estea listo presione 'Publicar resultados de enquisa' para publicar os resultados e finalizar a enquisa.", - "app.poll.publishLabel": "Publicar resultados da enquisa", - "app.poll.backLabel": "Regresar ás opcións da enquisa", + "app.poll.startCustomLabel": "Iniciar a enquisa personalizada", + "app.poll.activePollInstruction": "Deixe este panel aberto para ver as respostas en tempo real da súa enquisa. Cando estea listo prema en «Publicar os resultados da enquisa» para publicar os resultados e rematar a enquisa.", + "app.poll.publishLabel": "Publicar os resultados da enquisa", + "app.poll.backLabel": "Volver ás opcións da enquisa", "app.poll.closeLabel": "Pechar", - "app.poll.waitingLabel": "Esperando respostas ({0}/{1})", - "app.poll.ariaInputCount": "Opción de enquisa personalizada {0} de 1. {}", - "app.poll.customPlaceholder": "Agregar resposta de enquisa", - "app.poll.noPresentationSelected": "Non se seleccionou ningunha presentación! Por favor, seleccione unha.", - "app.poll.clickHereToSelect": "'Click' aquà para seleccionar", + "app.poll.waitingLabel": "Agardando respostas ({0}/{1})", + "app.poll.ariaInputCount": "Opción da enquisa personalizada {0} de {1}", + "app.poll.customPlaceholder": "Engadir opción de enquisa", + "app.poll.noPresentationSelected": "Non se seleccionou ningunha presentación Seleccione unha.", + "app.poll.clickHereToSelect": "Prema aquà para seleccionar", "app.poll.t": "Verdadeiro", "app.poll.f": "Falso", - "app.poll.tf": "Verdadeiro / Falseo", - "app.poll.y": "Se", + "app.poll.tf": "Verdadeiro / Falso", + "app.poll.y": "Si", "app.poll.n": "Non", - "app.poll.yn": "Se / Non", + "app.poll.yn": "Si / Non", "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": "Verdadeiro", "app.poll.answer.false": "Falso", - "app.poll.answer.yes": "Se", + "app.poll.answer.yes": "Si", "app.poll.answer.no": "Non", "app.poll.answer.a": "A", "app.poll.answer.b": "B", @@ -216,330 +233,372 @@ "app.poll.liveResult.usersTitle": "Usuarios", "app.poll.liveResult.responsesTitle": "Resposta", "app.polling.pollingTitle": "Opcións da enquisa", - "app.polling.pollAnswerLabel": "Resposta de enquisa {0}", - "app.polling.pollAnswerDesc": "Seleccione esta opcion para responder {0}", - "app.failedMessage": "Desculpas, problemas conectando ao servidor.", + "app.polling.pollAnswerLabel": "Resposta á enquisa {0}", + "app.polling.pollAnswerDesc": "Selecciona esta opción para votar por {0}", + "app.failedMessage": "Desculpas, hai problemas para conectar co servidor.", "app.downloadPresentationButton.label": "Descargar a presentación orixinal", - "app.connectingMessage": "Conectandose ...", - "app.waitingMessage": "Desconectado. Realizásese un reintento en 0 {} segundos ...", - "app.retryNow": "Reintentando agora", + "app.connectingMessage": "Conectandose…", + "app.waitingMessage": "Desconectado Tentando volver conectar en {0} segundos…", + "app.retryNow": "Volver tentalo agora", "app.navBar.settingsDropdown.optionsLabel": "Opcións", - "app.navBar.settingsDropdown.fullscreenLabel": "Despregar a pantalla completa", - "app.navBar.settingsDropdown.settingsLabel": "Abrir configuración", - "app.navBar.settingsDropdown.aboutLabel": "Acerca de", + "app.navBar.settingsDropdown.fullscreenLabel": "Poñer a pantalla completa", + "app.navBar.settingsDropdown.settingsLabel": "Axustes", + "app.navBar.settingsDropdown.aboutLabel": "Sobre", "app.navBar.settingsDropdown.leaveSessionLabel": "SaÃr", - "app.navBar.settingsDropdown.exitFullscreenLabel": "SaÃr de pantalla completa", - "app.navBar.settingsDropdown.fullscreenDesc": "Facer o menú de configuración a pantalla completa", - "app.navBar.settingsDropdown.settingsDesc": "Cambiar a configuración xeral", - "app.navBar.settingsDropdown.aboutDesc": "Mostrar información achega do cliente", - "app.navBar.settingsDropdown.leaveSessionDesc": "Abandonar a reunión", + "app.navBar.settingsDropdown.exitFullscreenLabel": "SaÃr da pantalla completa", + "app.navBar.settingsDropdown.fullscreenDesc": "Poñer o menú de axustes a pantalla completa", + "app.navBar.settingsDropdown.settingsDesc": "Cambiar os axustes xerais", + "app.navBar.settingsDropdown.aboutDesc": "Amosar información sobre o cliente", + "app.navBar.settingsDropdown.leaveSessionDesc": "Abandonar a xuntanza", "app.navBar.settingsDropdown.exitFullscreenDesc": "SaÃr do modo de pantalla completa", "app.navBar.settingsDropdown.hotkeysLabel": "Atallos de teclado", - "app.navBar.settingsDropdown.hotkeysDesc": "Listaxe de atallos de teclado dispoñibles", + "app.navBar.settingsDropdown.hotkeysDesc": "Lista de atallos de teclado dispoñÃbeis", "app.navBar.settingsDropdown.helpLabel": "Axuda", - "app.navBar.settingsDropdown.helpDesc": "Ligazóns a videotutoriales (abre unha nova pestana)", + "app.navBar.settingsDropdown.helpDesc": "Vincular o usuario a vÃdeo titoriais (abre unha nova lapela)", "app.navBar.settingsDropdown.endMeetingDesc": "Finaliza a sesión actual", - "app.navBar.settingsDropdown.endMeetingLabel": "Finalizar sesión", - "app.navBar.userListToggleBtnLabel": "Alternar lista de usuarios", - "app.navBar.toggleUserList.ariaLabel": "Cambio de usuarios e mensaxes", - "app.navBar.toggleUserList.newMessages": "con nova notificación de mensaxe ", - "app.navBar.recording": "Esta sesión esta sendo gravada", + "app.navBar.settingsDropdown.endMeetingLabel": "Rematar a xuntanza", + "app.navBar.userListToggleBtnLabel": "Abrir/pechar a lista de usuarios", + "app.navBar.toggleUserList.ariaLabel": "Os usuarios e as mensaxes se alternan", + "app.navBar.toggleUserList.newMessages": "con nova notificación de mensaxes", + "app.navBar.recording": "Esta sesión esta a ser gravada", "app.navBar.recording.on": "Gravando", - "app.navBar.recording.off": "Non gravando", - "app.navBar.emptyAudioBrdige": "Non hai ningún micrófono activo. Comparta o seu micrófono para engadir audio a esta gravación.", - "app.leaveConfirmation.confirmLabel": "SaÃr", - "app.leaveConfirmation.confirmDesc": "Desconéctache da reunión", - "app.endMeeting.title": "Finalizar sesión", - "app.endMeeting.description": "Estas seguro de querer finalizar a sesión?", - "app.endMeeting.yesLabel": "Se", + "app.navBar.recording.off": "Non se está a gravar", + "app.navBar.emptyAudioBrdige": "Non hai ningún micrófono activo. Comparta o seu micrófono para engadir son a esta gravación.", + "app.leaveConfirmation.confirmLabel": "Abandonar", + "app.leaveConfirmation.confirmDesc": "Desconectarse da xuntanza", + "app.endMeeting.title": "Rematar a xuntanza", + "app.endMeeting.description": "Confirma que quere rematar esta sesión?", + "app.endMeeting.yesLabel": "Si", "app.endMeeting.noLabel": "Non", - "app.about.title": "Acerca de", - "app.about.confirmLabel": "OK", - "app.about.confirmDesc": "OK", + "app.about.title": "Sobre", + "app.about.version": "Versión do cliente:", + "app.about.copyright": "Dereitos de autorÃa:", + "app.about.confirmLabel": "Aceptar", + "app.about.confirmDesc": "Aceptar", "app.about.dismissLabel": "Cancelar", - "app.about.dismissDesc": "Pechar información achega do cliente", - "app.actionsBar.changeStatusLabel": "Cambiar estado", - "app.actionsBar.muteLabel": "Deshabilitar audio", - "app.actionsBar.unmuteLabel": "Habilitar audio", + "app.about.dismissDesc": "Pechar a información sobre o cliente", + "app.actionsBar.changeStatusLabel": "Cambiar o estado", + "app.actionsBar.muteLabel": "Desactivar o son", + "app.actionsBar.unmuteLabel": "Activar o son", "app.actionsBar.camOffLabel": "Cámara apagada", - "app.actionsBar.raiseLabel": "Levantar", + "app.actionsBar.raiseLabel": "Erguer", "app.actionsBar.label": "Barra de accións", - "app.actionsBar.actionsDropdown.restorePresentationLabel": "Reestablecer presentación", - "app.actionsBar.actionsDropdown.restorePresentationDesc": "Restaurar presentación despues de que foi pechada", + "app.actionsBar.actionsDropdown.restorePresentationLabel": "Reaurar a presentación", + "app.actionsBar.actionsDropdown.restorePresentationDesc": "Botón para restaurar a presentación após ter sido pechada", + "app.screenshare.screenShareLabel" : "Compartir pantalla", "app.submenu.application.applicationSectionTitle": "Aplicación", "app.submenu.application.animationsLabel": "Animacións", - "app.submenu.application.audioAlertLabel": "Alertas de son para o chat", - "app.submenu.application.pushAlertLabel": "Alertas visuais para o chat", - "app.submenu.application.userJoinAudioAlertLabel": "Alertas de audio para usuario entrante", + "app.submenu.application.audioAlertLabel": "Alertas de son para a conversa", + "app.submenu.application.pushAlertLabel": "Alertas visuais para a conversa", + "app.submenu.application.userJoinAudioAlertLabel": "Alertas de son para usuario entrante", "app.submenu.application.userJoinPushAlertLabel": "Alertas emerxentes para usuario entrante", - "app.submenu.application.fontSizeControlLabel": "Tamaño de fonte", - "app.submenu.application.increaseFontBtnLabel": "Incrementar tamaño de fonte", - "app.submenu.application.decreaseFontBtnLabel": "Reducir tamaño de fonte", + "app.submenu.application.fontSizeControlLabel": "Tamaño da letra", + "app.submenu.application.increaseFontBtnLabel": "Incrementar o tamaño da letra", + "app.submenu.application.decreaseFontBtnLabel": "DiminuÃr o tamaño da letra", "app.submenu.application.currentSize": "actualmente {0}", - "app.submenu.application.languageLabel": "Linguaxe de aplicación", - "app.submenu.application.languageOptionLabel": "Seleccionar linguaxe", + "app.submenu.application.languageLabel": "Idioma da aplicación", + "app.submenu.application.languageOptionLabel": "Escoller idioma", "app.submenu.application.noLocaleOptionLabel": "Non hai locais activos", "app.submenu.audio.micSourceLabel": "Fonte de micrófono", - "app.submenu.audio.speakerSourceLabel": "Fonte de altofalantes", - "app.submenu.audio.streamVolumeLabel": "Volume do fluxo de audio", + "app.submenu.audio.speakerSourceLabel": "Fonte de altofalante", + "app.submenu.audio.streamVolumeLabel": "Volume do fluxo de son", "app.submenu.video.title": "VÃdeo", - "app.submenu.video.videoSourceLabel": "Fonte do vÃdeo", - "app.submenu.video.videoOptionLabel": "Escoller ver fonte", - "app.submenu.video.videoQualityLabel": "Calidade de vÃdeo", - "app.submenu.video.qualityOptionLabel": "Escoller calidade do vÃdeo", - "app.submenu.video.participantsCamLabel": "Vendo webcams de participantes", + "app.submenu.video.videoSourceLabel": "Fonte de vÃdeo", + "app.submenu.video.videoOptionLabel": "Escoller ver a fonte", + "app.submenu.video.videoQualityLabel": "Calidade do vÃdeo", + "app.submenu.video.qualityOptionLabel": "Escoller a calidade do vÃdeo", + "app.submenu.video.participantsCamLabel": "Vista das cámaras web dos participantes", "app.settings.applicationTab.label": "Aplicación", - "app.settings.audioTab.label": "Audio", + "app.settings.audioTab.label": "Son", "app.settings.videoTab.label": "VÃdeo", "app.settings.usersTab.label": "Participantes", - "app.settings.main.label": "Configuración", - "app.settings.main.cancel.label": "Cancela", - "app.settings.main.cancel.label.description": "Desfeita os cambios e pecha o menú de configuración", + "app.settings.main.label": "Axustes", + "app.settings.main.cancel.label": "Cancelar", + "app.settings.main.cancel.label.description": "Desbotar os cambios e pechar o menú de axustes", "app.settings.main.save.label": "Gardar", - "app.settings.main.save.label.description": "Gurada cambios e pecha o menú de configuración", + "app.settings.main.save.label.description": "Gardar os cambios e pechar o menú de axustes", "app.settings.dataSavingTab.label": "Aforro de datos", - "app.settings.dataSavingTab.webcam": "Habilitar webcams", - "app.settings.dataSavingTab.screenShare": "Habilitar escritorio compartido", - "app.settings.dataSavingTab.description": "Para aforrar ancho de banda axusta o que se se está mostrando", - "app.settings.save-notification.label": "A configuración gardouse", + "app.settings.dataSavingTab.webcam": "Activar as cámaras web", + "app.settings.dataSavingTab.screenShare": "Activar o escritorio compartido", + "app.settings.dataSavingTab.description": "Para aforrar largo de banda axustar o que se se está a amosar", + "app.settings.save-notification.label": "Gardáronse os axustes", "app.switch.onLabel": "Aceso", "app.switch.offLabel": "Apagado", + "app.talkingIndicator.ariaMuteDesc" : "Seleccione para silenciar o usuario", + "app.talkingIndicator.isTalking" : "{0} está chamando", + "app.talkingIndicator.wasTalking" : "{0} deixou de chamar", "app.actionsBar.actionsDropdown.actionsLabel": "Accións", - "app.actionsBar.actionsDropdown.presentationLabel": "Subir unha presentación", + "app.actionsBar.actionsDropdown.presentationLabel": "Enviar unha presentación", "app.actionsBar.actionsDropdown.initPollLabel": "Iniciar unha enquisa", - "app.actionsBar.actionsDropdown.desktopShareLabel": "Compartir a túa pantalla", - "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Compartir pantalla esta bloqueada", - "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Deixar de compartir a túa pantalla", - "app.actionsBar.actionsDropdown.presentationDesc": "Subir a túa presentación", + "app.actionsBar.actionsDropdown.desktopShareLabel": "Compartir a súa pantalla", + "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "A pantalla compartida está bloqueada", + "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Deixar de compartir a súa pantalla", + "app.actionsBar.actionsDropdown.presentationDesc": "Enviar a súa presentación", "app.actionsBar.actionsDropdown.initPollDesc": "Iniciar unha enquisa", - "app.actionsBar.actionsDropdown.desktopShareDesc": "Compartir a túa pantalla con outros", - "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Deixar de compartir a túa pantalla con outros", + "app.actionsBar.actionsDropdown.desktopShareDesc": "Compartir a súa pantalla con outros", + "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Deixar de compartir a súa pantalla con outros", "app.actionsBar.actionsDropdown.pollBtnLabel": "Iniciar unha enquisa", - "app.actionsBar.actionsDropdown.pollBtnDesc": "Cambia o panel de enquisa", - "app.actionsBar.actionsDropdown.saveUserNames": "Gardar nomes de usuario", - "app.actionsBar.actionsDropdown.createBreakoutRoom": "Crear grupos de traballo", - "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "crear grupos de traballo para dividir a sesión actual", + "app.actionsBar.actionsDropdown.pollBtnDesc": "Alternar o panel de enquisa", + "app.actionsBar.actionsDropdown.saveUserNames": "Gardar os nomes de usuario", + "app.actionsBar.actionsDropdown.createBreakoutRoom": "Crear salas parciais", + "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "crear salas parciais para dividir a xuntanza actual", "app.actionsBar.actionsDropdown.captionsLabel": "Escribir subtÃtulos", - "app.actionsBar.actionsDropdown.captionsDesc": "Alterna o panel de subtÃtulos", - "app.actionsBar.actionsDropdown.takePresenter": "Tomar rol de presentador", - "app.actionsBar.actionsDropdown.takePresenterDesc": "Asignarche a ti mesmo o rol de presentador", - "app.actionsBar.emojiMenu.statusTriggerLabel": "Establecer estado", + "app.actionsBar.actionsDropdown.captionsDesc": "Alternar o panel de subtÃtulos", + "app.actionsBar.actionsDropdown.takePresenter": "Tomar o rol de presentador", + "app.actionsBar.actionsDropdown.takePresenterDesc": "Asignarse a un mesmo como novo presentador", + "app.actionsBar.emojiMenu.statusTriggerLabel": "Estabelecer o estado", "app.actionsBar.emojiMenu.awayLabel": "Ausente", - "app.actionsBar.emojiMenu.awayDesc": "Cambiar o teu estado a ausente", - "app.actionsBar.emojiMenu.raiseHandLabel": "Alzar", - "app.actionsBar.emojiMenu.raiseHandDesc": "Alzar a man para preguntar", + "app.actionsBar.emojiMenu.awayDesc": "Cambiar o seu estado a ausente", + "app.actionsBar.emojiMenu.raiseHandLabel": "Erguer", + "app.actionsBar.emojiMenu.raiseHandDesc": "Erguer a man para facer unha pregunta", "app.actionsBar.emojiMenu.neutralLabel": "Indeciso", - "app.actionsBar.emojiMenu.neutralDesc": "Cambiar o teu estado a indeciso", - "app.actionsBar.emojiMenu.confusedLabel": "Confundido", - "app.actionsBar.emojiMenu.confusedDesc": "Cambiar o teu estado para confundido", + "app.actionsBar.emojiMenu.neutralDesc": "Cambiar o seu estado a indeciso", + "app.actionsBar.emojiMenu.confusedLabel": "Confuso", + "app.actionsBar.emojiMenu.confusedDesc": "Cambiar o seu estado a confuso", "app.actionsBar.emojiMenu.sadLabel": "Triste", - "app.actionsBar.emojiMenu.sadDesc": "Cambiar o teu estado a triste", + "app.actionsBar.emojiMenu.sadDesc": "Cambiar o seu estado a triste", "app.actionsBar.emojiMenu.happyLabel": "Feliz", - "app.actionsBar.emojiMenu.happyDesc": "Cambiar o teu estado a feliz", - "app.actionsBar.emojiMenu.noneLabel": "Limpar estado", - "app.actionsBar.emojiMenu.noneDesc": "Limpa o teu estado", - "app.actionsBar.emojiMenu.applauseLabel": "Aplausos", - "app.actionsBar.emojiMenu.applauseDesc": "Cambiar o teu estado a aplausos", + "app.actionsBar.emojiMenu.happyDesc": "Cambiar o seu estado a feliz", + "app.actionsBar.emojiMenu.noneLabel": "Limpar o estado", + "app.actionsBar.emojiMenu.noneDesc": "Limpar o seu estado", + "app.actionsBar.emojiMenu.applauseLabel": "Aplaudindo", + "app.actionsBar.emojiMenu.applauseDesc": "Cambiar o seu estado a aplaudindo", "app.actionsBar.emojiMenu.thumbsUpLabel": "Sinal de aprobación", - "app.actionsBar.emojiMenu.thumbsUpDesc": "Cambiar o teu estado a sinal de aprobación", + "app.actionsBar.emojiMenu.thumbsUpDesc": "Cambiar o seu estado a sinal de aprobación", "app.actionsBar.emojiMenu.thumbsDownLabel": "Sinal de desaprobación", - "app.actionsBar.emojiMenu.thumbsDownDesc": "Cambia o teu estdo a sinal de desaprobación", + "app.actionsBar.emojiMenu.thumbsDownDesc": "Cambia o seu estado a sinal de desaprobación", "app.actionsBar.currentStatusDesc": "estado actual {0}", "app.actionsBar.captions.start": "Comezar a ver subtÃtulos", "app.actionsBar.captions.stop": "Deixar de ver subtÃtulos", - "app.audioNotification.audioFailedMessage": "A túa conexión de audio fallou en conectarse", - "app.audioNotification.mediaFailedMessage": "getUserMicMedia fallou, Só orixes seguras son admitidos", + "app.audioNotification.audioFailedError1001": "WebSocket desconectado (error 1001)", + "app.audioNotification.audioFailedError1002": "Non foi posÃbel facer unha conexión WebSocket (erro 1002)", + "app.audioNotification.audioFailedError1003": "A versión do navegador non é compatÃbel (erro 1003)", + "app.audioNotification.audioFailedError1004": "Produciuse un fallo na chamada (razón={0}) (erro 1004)", + "app.audioNotification.audioFailedError1005": "A chamada rematou inesperadamente (erro 1005)", + "app.audioNotification.audioFailedError1006": "Rematou o tempo de espera da chamada (erro 1006)", + "app.audioNotification.audioFailedError1007": "Produciuse un fallo de conexión (erro ICE 1007)", + "app.audioNotification.audioFailedError1008": "Produciuse un fallo de transferencia (erro 1008)", + "app.audioNotification.audioFailedError1009": "Non foi posÃbel recuperar a información do servidor STUN/TURN (erro 1009)", + "app.audioNotification.audioFailedError1010": "Rematou o tempo de espera da negociación da conexión (erro ICE 1010)", + "app.audioNotification.audioFailedError1011": "Rematou o tempo de espera da conexión (erro ICE 1011)", + "app.audioNotification.audioFailedError1012": "Conexión pechada (erro ICE 1012)", + "app.audioNotification.audioFailedMessage": "Produciuse un fallo na súa conexión de son", + "app.audioNotification.mediaFailedMessage": "Produciuse un fallo en getUserMicMedia xa que só se permiten as orixes seguras", "app.audioNotification.closeLabel": "Pechar", - "app.breakoutJoinConfirmation.message": "Queres unirche", - "app.breakoutJoinConfirmation.confirmDesc": "Ingresar a un grupo de traballo", + "app.audioNotificaion.reconnectingAsListenOnly": "O micrófono bloqueouse para os espectadores, vostede está conectado só como oÃnte", + "app.breakoutJoinConfirmation.title": "Entrar na sala parcial", + "app.breakoutJoinConfirmation.message": "Quere entrar?", + "app.breakoutJoinConfirmation.confirmDesc": "Entrar nunha sala parcial", "app.breakoutJoinConfirmation.dismissLabel": "Cancelar", - "app.breakoutJoinConfirmation.dismissDesc": "Pecha e rexeita entrada a grupo de traballo", - "app.breakoutJoinConfirmation.freeJoinMessage": "Selecciona o grupo de traballo a ingresar", - "app.breakoutWillCloseMessage": "Tempo transcorrido. Grupo de traballo pecharase en breve.", - "app.calculatingBreakoutTimeRemaining": "Calculando tempo restante ...", - "app.audioModal.ariaTitle": "Unirse en modo audio", + "app.breakoutJoinConfirmation.dismissDesc": "Pechar e rexeitar a entrada na sala parcial", + "app.breakoutJoinConfirmation.freeJoinMessage": "Seleccionar a sala parcial na que entrar", + "app.breakoutTimeRemainingMessage": "Tempo restante da sala parcial: {0}", + "app.breakoutWillCloseMessage": "Rematou o tempo. A sala parcial pecharase en breve.", + "app.calculatingBreakoutTimeRemaining": "Calculando tempo restante…", + "app.audioModal.ariaTitle": " Xanela modal para entrar ao son", "app.audioModal.microphoneLabel": "Micrófono", "app.audioModal.listenOnlyLabel": "Só escoitar", - "app.audioModal.audioChoiceLabel": "Como queres unirche ao audio?", - "app.audioModal.iOSBrowser": "Audio/VÃdeo non soportado", - "app.audioModal.iOSErrorDescription": "Neste momento o audio e vÃdeo non son soportados en Chrome para iOS.", - "app.audioModal.iOSErrorRecommendation": "Recomendámosche utilizar Safari VOS.", - "app.audioModal.audioChoiceDesc": "Selecciona como unirse ao audio nesta reunión", - "app.audioModal.unsupportedBrowserLabel": "Parece que está a usar un navegador non totalmente soportado. Por favor, utilice un dos seguintes {0} ó {1} para unha compatibilidade completa. ", + "app.audioModal.audioChoiceLabel": "GustarÃalle entrar ao son?", + "app.audioModal.iOSBrowser": "Son/vÃdeo non compatÃbel", + "app.audioModal.iOSErrorDescription": "Neste momento o son e o vÃdeo non son compatÃbeis co Chrome para iOS.", + "app.audioModal.iOSErrorRecommendation": "Recomendámoslle empregar Safari iOS.", + "app.audioModal.audioChoiceDesc": "Seleccionar como entrar ao son nesta xuntanza", + "app.audioModal.unsupportedBrowserLabel": "Parece que estás a usar un navegador que non é totalmente compatÃbel. Utilice {0} ou {1} para obter unha compatibilidade completa.", "app.audioModal.closeLabel": "Pechar", - "app.audioModal.yes": "Se", + "app.audioModal.yes": "Si", "app.audioModal.no": "Non", - "app.audioModal.echoTestTitle": "Esta é unha proba de eco privada. Dà unhas palabras. Escoitaches o audio?", - "app.audioModal.settingsTitle": "Cambia a túa configuración de audio", - "app.audioModal.helpTitle": "Ocorreu un erro cos teus dispositivos de medios", - "app.audioModal.helpText": "Autorizaches o uso do teu micrófono? Ten en conta que cando tratas de ingresar ao audio, débeseche mostrar unha caixa de diálogo na que se solicita a túa autorización. Se non ocorreu tenta cambiar os permisos do teu micrófono no area de configuración do teu navegador.", - "app.audioModal.help.noSSL": "Esta páxina non é segura. Para poder usar o micrófono a páxina ten que ser servida por HTTPS. Por favor, contacte co administrador do servidor.", - "app.audioModal.help.macNotAllowed": "Parece que as preferencias do teu sistema Mac están a bloquear o acceso ao mÃcrofono. Abra Preferencias do sistema > Seguridade e privacidade > Privacidade > Micrófono, e verifica que o navegador que está a usar está activado.", - "app.audioModal.audioDialTitle": "Únase usando o seu teléfono", + "app.audioModal.yes.arialabel" : "O eco é audÃbel", + "app.audioModal.no.arialabel" : "O eco non é audÃbel", + "app.audioModal.echoTestTitle": "Esta é unha proba de eco privada. Diga unhas palabras. Escoitou o son?", + "app.audioModal.settingsTitle": "Cambiar a súa configuración de son", + "app.audioModal.helpTitle": "Houbo un problema cos seus dispositivos multimedia", + "app.audioModal.helpText": "Deu permiso para acceder ao seu micrófono? Teña en conta que deberÃa aparecer un diálogo cando tente unir o son, solicitando os permisos do seu dispositivo multimedia, acépteos para entrar na conferencia de son. Se non é asÃ, tente cambiar os permisos do micrófono na configuración do seu navegador.", + "app.audioModal.help.noSSL": "Esta páxina non é segura. Para poder acceder ao micrófono a páxina ten que ser servida mediante HTTPS. Contacte co administrador do servidor.", + "app.audioModal.help.macNotAllowed": "Parece que as preferencias do teu sistema Mac están a bloquear o acceso ao mÃcrofono. Abra Preferencias do sistema > Seguridade e privacidade > Privacidade > Micrófono, e verifique que o navegador que está a usar está marcado.", + "app.audioModal.audioDialTitle": "Entre usando o seu teléfono", "app.audioDial.audioDialDescription": "Marcar", - "app.audioModal.autoplayBlockedDesc": "Necesitamos o seu permiso para reproducir audio.", - "app.audioModal.playAudio": "Reproducir audio", - "app.audioModal.playAudio.arialabel" : "Reproducir audio", - "app.audioDial.tipIndicator": "Pista", - "app.audioDial.tipMessage": "Pulse a tecla '0' no seu teléfono para silenciarse/activar o audio a se mesmo.", - "app.audioModal.connecting": "Conectandose", - "app.audioModal.connectingEchoTest": "Conenctandose a proba de eco", - "app.audioManager.joinedAudio": "Ingresaches á conferencia de audio", - "app.audioManager.joinedEcho": "Ingresaches á proba de eco", - "app.audioManager.leftAudio": "Abandonaches a conferencia de audio", - "app.audioManager.reconnectingAudio": "Tentando reconectar audio", - "app.audio.joinAudio": "Unirse ao audio", - "app.audio.leaveAudio": "Abandonar audio", - "app.audio.enterSessionLabel": "Entrar á sesión", + "app.audioDial.audioDialConfrenceText": "e introduza o número de PIN da conferencia:", + "app.audioModal.autoplayBlockedDesc": "Necesitamos o seu permiso para reproducir son.", + "app.audioModal.playAudio": "Reproducir son", + "app.audioModal.playAudio.arialabel" : "Reproducir son", + "app.audioDial.tipIndicator": "Consello", + "app.audioDial.tipMessage": "Prema a tecla «0» no seu teléfono para silenciar/activar o seu propio son.", + "app.audioModal.connecting": "Conectando", + "app.audioModal.connectingEchoTest": "Conectando coa proba de eco", + "app.audioManager.joinedAudio": "Vostede entrou na conferencia de son", + "app.audioManager.joinedEcho": "Vostede entrou na proba de eco", + "app.audioManager.leftAudio": "Vostede abandonou á conferencia de son", + "app.audioManager.reconnectingAudio": "Tentando volver conectar o son", + "app.audioManager.genericError": "Erro: produciuse un erro, tenteo de novo", + "app.audioManager.connectionError": "Erro: Produciuse un erro de conexión", + "app.audioManager.requestTimeout": "Erro: habÃa un tempo de espera na solicitude", + "app.audioManager.invalidTarget": "Erro: tentouse solicitar algo a un destino non válido", + "app.audioManager.mediaError": "Erro: produciuse un problema ao recibir os seus dispositivos multimedia", + "app.audio.joinAudio": "Entrar ao son", + "app.audio.leaveAudio": "Abandonar o son", + "app.audio.enterSessionLabel": "Entrar na sesión", "app.audio.playSoundLabel": "Reproducir son", "app.audio.backLabel": "Atrás", - "app.audio.audioSettings.titleLabel": "Seleccionar a túa configuración de audio", - "app.audio.audioSettings.descriptionLabel": "Ten en conta que aparecerá un cadro de diálogo no teu navegador, que che pide a aceptar compartir o teu micrófono.", - "app.audio.audioSettings.microphoneSourceLabel": "Fonte do micrófono", + "app.audio.audioSettings.titleLabel": "Escolla os seus axustes do son", + "app.audio.audioSettings.descriptionLabel": "Teña en conta que aparecerá un diálogo no navegador que requira que acepte compartir o seu micrófono", + "app.audio.audioSettings.microphoneSourceLabel": "Fonte de micrófono", "app.audio.audioSettings.speakerSourceLabel": "Fonte de altofalante", - "app.audio.audioSettings.microphoneStreamLabel": "O teu volúmen do fluxo de audio", + "app.audio.audioSettings.microphoneStreamLabel": "O seu volume do fluxo de son", "app.audio.audioSettings.retryLabel": "Tentar de novo", "app.audio.listenOnly.backLabel": "Atrás", "app.audio.listenOnly.closeLabel": "Pechar", - "app.audio.permissionsOverlay.title": "Permitir acceso ao teu micrófono", - "app.error.removed": "Fuches eliminado da conferencia", - "app.error.meeting.ended": "Feixe saÃdo da conferencia", - "app.meeting.logout.duplicateUserEjectReason": "Usuario duplicado tentando unirse á reunión", + "app.audio.permissionsOverlay.title": "Permitir o acceso ao seu micrófono", + "app.audio.permissionsOverlay.hint": "Necesitamos que nos permita usar os seus dispositivos multimedia para introducilo na conferencia de voz :)", + "app.error.removed": "Vostede foi retirado/a da conferencia", + "app.error.meeting.ended": "Vostede desconectouse da conferencia", + "app.meeting.logout.duplicateUserEjectReason": "Usuario duplicado tentando entrar na xuntanza", "app.meeting.logout.permissionEjectReason": "Expulsado por violación de permiso", - "app.meeting.logout.ejectedFromMeeting": "Vostede foi expulsado/a de a reunión", - "app.meeting.logout.validateTokenFailedEjectReason": "Erro ao validar o token de autorización", - "app.meeting.logout.userInactivityEjectReason": "Usuario inactivo por moito tempo", - "app.meeting-ended.rating.legendLabel": "Cualificación de votos", + "app.meeting.logout.ejectedFromMeeting": "Vostede foi retirado/a da xuntanza", + "app.meeting.logout.validateTokenFailedEjectReason": "Produciuse un erro ao validar a testemuña de autorización", + "app.meeting.logout.userInactivityEjectReason": "Usuario inactivo durante demasiado tempo", + "app.meeting-ended.rating.legendLabel": "Valoración de comentarios", "app.meeting-ended.rating.starLabel": "Estrela", "app.modal.close": "Pechar", - "app.modal.close.description": "Ignora os cambios e pecha a xanela flotante.", - "app.modal.confirm": "Finalizado", - "app.modal.newTab": "(abre nova pestana)", - "app.modal.confirm.description": "Garda os cambios e pecha a xanela flotante", + "app.modal.close.description": "Ignora os cambios e pecha a xanela modal.", + "app.modal.confirm": "Feito", + "app.modal.newTab": "(abre unha nova lapela)", + "app.modal.confirm.description": "Garda os cambios e pecha a xanela modal", "app.dropdown.close": "Pechar", "app.error.400": "Solicitude incorrecta", "app.error.401": "Non autorizado", - "app.error.403": "Vostede foi expulsado/a de a reunión", + "app.error.403": "Vostede foi retirado/a da xuntanza", "app.error.404": "Non se atopou", - "app.error.410": "A reunión finalizou", - "app.error.500": "Ups, algo salio mal", - "app.error.leaveLabel": "Ingresa de novo", - "app.error.fallback.presentation.title": "Ocorreu un erro", - "app.error.fallback.presentation.description": "Isto rexistrouse. Por favor, tente volver cargar a páxina.", + "app.error.410": "Rematou a xuntanza", + "app.error.500": "Ouh! algo foi mal", + "app.error.leaveLabel": "Acceder de novo", + "app.error.fallback.presentation.title": "Produciuse un erro", + "app.error.fallback.presentation.description": "Accedeu. Tente volver cargar a páxina.", "app.error.fallback.presentation.reloadButton": "Recargar", - "app.guest.waiting": "Esperando aprobación para unirse", - "app.userList.guest.waitingUsers": "Usuarios en espera", + "app.guest.waiting": "Agardando a aprobación para entrar", + "app.userList.guest.waitingUsers": "Usuarios agardando", "app.userList.guest.waitingUsersTitle": "Xestión de usuarios", - "app.userList.guest.optionTitle": "Revisar de usuarios pendentes", - "app.userList.guest.allowAllAuthenticated": "Permitir todos os autenticados", - "app.userList.guest.allowAllGuests": "Permitir todos os invitados", + "app.userList.guest.optionTitle": "Revisar os usuarios pendentes", + "app.userList.guest.allowAllAuthenticated": "Permitir a todos os autenticados", + "app.userList.guest.allowAllGuests": "Permitir a todos os convidados", "app.userList.guest.allowEveryone": "Permitir a todos", "app.userList.guest.denyEveryone": "Denegar a todos", - "app.userList.guest.pendingUsers": "{0} Usuarios pendentes", - "app.userList.guest.pendingGuestUsers": "{0} Invitados pendentes", - "app.userList.guest.pendingGuestAlert": "Uniuse á sesión e está a esperar a súa aprobación.", - "app.userList.guest.rememberChoice": "Lembrar elección", - "app.user-info.title": "Procura de directorio", - "app.toast.breakoutRoomEnded": "A sesión de grupo de traballo finalizou. Ingresa ao audio novamente.", - "app.toast.chat.public": "Nova mensaxe en chat público", - "app.toast.chat.private": "Nova mensaxe en chat privado", + "app.userList.guest.pendingUsers": "{0} usuarios pendentes", + "app.userList.guest.pendingGuestUsers": "{0} convidados pendentes", + "app.userList.guest.pendingGuestAlert": "Entrou na sesión e está agardando a súa aprobación.", + "app.userList.guest.rememberChoice": "Lembrar a escolla", + "app.user-info.title": "Atopar directorio", + "app.toast.breakoutRoomEnded": "A sala parcial rematou. Volva entrar ao son.", + "app.toast.chat.public": "Nova mensaxe na conversa pública", + "app.toast.chat.private": "Nova mensaxe na conversa privada", "app.toast.chat.system": "Sistema", - "app.toast.clearedEmoji.label": "Estado do emoji borrado", - "app.toast.setEmoji.label": "Estado do emoji cambiado a 0. {}", + "app.toast.clearedEmoji.label": "Estado do emoji limpo", + "app.toast.setEmoji.label": "Estado do emoji cambiado a {0}", "app.toast.meetingMuteOn.label": "Todos os usuarios foron silenciados", - "app.toast.meetingMuteOff.label": "Función de silenciar foi deshabilitada", - "app.notification.recordingStart": "A sesión esta sendo gravada", + "app.toast.meetingMuteOff.label": "Desactivouse a reunión silenciosa", + "app.notification.recordingStart": "A sesión esta a ser gravada", "app.notification.recordingStop": "Esta sesión non está a ser gravada", - "app.notification.recordingPaused": "Deixouse de gravar a sesión", + "app.notification.recordingPaused": "Xa non se está a gravar esta sesión", "app.notification.recordingAriaLabel": "Tempo de gravación", - "app.notification.userJoinPushAlert": "{0} uniuse á sesión", + "app.notification.userJoinPushAlert": "{0} entrou na sesión", "app.shortcut-help.title": "Atallos de teclado", - "app.shortcut-help.accessKeyNotAvailable": "Teclas de acceso non dispoñibles", + "app.shortcut-help.accessKeyNotAvailable": "Teclas de acceso non dispoñÃbeis", "app.shortcut-help.comboLabel": "Combinación", "app.shortcut-help.functionLabel": "Función", "app.shortcut-help.closeLabel": "Pechar", - "app.shortcut-help.closeDesc": "Pecha o modo de Atallos de teclado", + "app.shortcut-help.closeDesc": " Pecha a xanela modal de atallos do teclado", "app.shortcut-help.openOptions": "Abrir opcións", - "app.shortcut-help.toggleUserList": "Cambia lista de usuarios", - "app.shortcut-help.toggleMute": "Deshabilitar / Habilitar audio", - "app.shortcut-help.togglePublicChat": "Cambia chat público (Lista de usuarios debe ser aberta)", - "app.shortcut-help.hidePrivateChat": "Ocultar chat privado", - "app.shortcut-help.closePrivateChat": "Pechar chat privado", - "app.shortcut-help.openActions": "Abrir menú de accións", + "app.shortcut-help.toggleUserList": "Alternar a lista de usuarios", + "app.shortcut-help.toggleMute": "Silenciar/Activar son", + "app.shortcut-help.togglePublicChat": "Alternar a conversa pública (a lista de usuarios debe estar aberta)", + "app.shortcut-help.hidePrivateChat": "Agochar a conversa privada", + "app.shortcut-help.closePrivateChat": "Pechar a conversa privada", + "app.shortcut-help.openActions": "Abrir o menú de accións", "app.shortcut-help.openStatus": "Abrir o menú de estados", - "app.shortcut-help.togglePan": "Activar ferramenta Pan (Presentador)", + "app.shortcut-help.togglePan": "Activar a ferramenta Pan (Presentador)", "app.shortcut-help.nextSlideDesc": "Diapositiva seguinte (Presentador)", "app.shortcut-help.previousSlideDesc": "Diapositiva anterior (Presentador)", - "app.lock-viewers.title": "Bloquear espectadores", - "app.lock-viewers.description": "Estas opcións permÃtenlle restrinxir certas caracterÃsticas a observadores.", + "app.lock-viewers.title": "Bloquear aos espectadores", + "app.lock-viewers.description": "Estas opcións permÃtenlle restrinxir aos espectadores o uso de funcións especÃficas.", "app.lock-viewers.featuresLable": "Función", "app.lock-viewers.lockStatusLabel": "Estado", - "app.lock-viewers.webcamLabel": "Compartir webcam", - "app.lock-viewers.otherViewersWebcamLabel": "Ver a webcam doutros espectadores", - "app.lock-viewers.microphoneLable": "Compartir micrófono", - "app.lock-viewers.PublicChatLabel": "Enviar mensaxes ao chat Público", - "app.lock-viewers.PrivateChatLable": "Enviar mensaxes ao chat Privado", + "app.lock-viewers.webcamLabel": "Compartir a cámara web", + "app.lock-viewers.otherViewersWebcamLabel": "Ver a cámara web doutros espectadores", + "app.lock-viewers.microphoneLable": "Compartir o micrófono", + "app.lock-viewers.PublicChatLabel": "Enviar mensaxes á conversa pública ", + "app.lock-viewers.PrivateChatLable": "Enviar mensaxes á conversa privada", "app.lock-viewers.notesLabel": "Editar notas compartidas", - "app.lock-viewers.userListLabel": "Ver outros participantes na lista de usuarios", - "app.lock-viewers.ariaTitle": "Bloquear a observadores configuración modal", + "app.lock-viewers.userListLabel": "Ver outros espectadores na lista de usuarios", + "app.lock-viewers.ariaTitle": "Bloquear a xanela modal de axustes dos espectadores", "app.lock-viewers.button.apply": "Aplicar", - "app.lock-viewers.button.cancel": "Cancela", + "app.lock-viewers.button.cancel": "Cancelar", "app.lock-viewers.locked": "Bloqueado", "app.lock-viewers.unlocked": "Desbloqueado", "app.recording.startTitle": "Iniciar gravación", "app.recording.stopTitle": "Pausar gravación", "app.recording.resumeTitle": "Continuar gravación", - "app.recording.startDescription": "Pode volver presionar o botón de gravación para pausar a gravación actual.", - "app.recording.stopDescription": "Está seguro de querer pausar a gravación? Pode continuala volvendo presionar o botón de gravación novamente.", - "app.videoPreview.cameraLabel": "Webcam", + "app.recording.startDescription": "Máis tarde pode usar o botón de gravación para deter a gravación.", + "app.recording.stopDescription": "Confirma que quere deter a gravación? Pode continuala premendo de novo o botón de gravación.", + "app.videoPreview.cameraLabel": "Cámara web", "app.videoPreview.profileLabel": "Calidade", "app.videoPreview.cancelLabel": "Cancelar", "app.videoPreview.closeLabel": "Pechar", - "app.videoPreview.findingWebcamsLabel": "Buscando webcams", - "app.videoPreview.startSharingLabel": "Iniciar compartir", - "app.videoPreview.webcamOptionLabel": "Selecciona a webcam", - "app.videoPreview.webcamPreviewLabel": "Vista preliminar de webcam", - "app.videoPreview.webcamSettingsTitle": "Configuración de webcam", - "app.videoPreview.webcamNotFoundLabel": "Webcam non atopada", - "app.videoPreview.profileNotFoundLabel": "Perfil de cámara non soportado", - "app.video.joinVideo": "Compartir webcam", - "app.video.leaveVideo": "Deixar de compartir webcam", - "app.video.iceCandidateError": "Erro ao agregar candidato ICE", - "app.video.permissionError": "Erro ao compartit a webcam. Por favor revise os permisos", - "app.video.sharingError": "Erro ao compartir a webcam", - "app.video.notFoundError": "Webcam non fué atopada. Por favor asegurate de que se atopa conectada", - "app.video.notAllowed": "Faltan permisos para compartir a webcam, por favor asegurate de que os permisos do navegador son correctos", - "app.video.notSupportedError": "Só pódese compartir a webcam de fontes seguras, asegurate de que o certificado SSL sexa valido", - "app.video.notReadableError": "Non se puido obter vÃdeo de webcam. Asegurate de que ningunha outra aplicación estea utilizandola.", - "app.video.suggestWebcamLock": "Aplicar a configuración de bloqueo ás cámaras web dos observadores?", - "app.video.suggestWebcamLockReason": "(isto mellorará a estabilidade da gravación)", + "app.videoPreview.findingWebcamsLabel": "Buscando cámaras web", + "app.videoPreview.startSharingLabel": "Comezar a compartir", + "app.videoPreview.webcamOptionLabel": "Seleccionar a cámara web", + "app.videoPreview.webcamPreviewLabel": "Vista preliminar de cámara web", + "app.videoPreview.webcamSettingsTitle": "Axustes da cámara web", + "app.videoPreview.webcamNotFoundLabel": "Non se atopou a cámara web", + "app.videoPreview.profileNotFoundLabel": "Non hai ningún perfil de cámara admitido", + "app.video.joinVideo": "Compartir a cámara web", + "app.video.leaveVideo": "Deixar de compartir a cámara web", + "app.video.iceCandidateError": "Produciuse un erro ao engadir un candidato ICE", + "app.video.iceConnectionStateError": "Produciuse un fallo de conexión (erro ICE 1107)", + "app.video.permissionError": "Produciuse un erro ao compartir a cámara web. Revise os permisos", + "app.video.sharingError": "Produciuse un erro ao compartir a cámara web", + "app.video.notFoundError": "Non se atopou a cámara web. Asegúrese de que estea conectada", + "app.video.notAllowed": "Fallo o permiso para a cámara web compartida, asegúrese de que os permisos do seu navegador son correctos", + "app.video.notSupportedError": "Só é posÃbel compartir cámaras web de fontes seguras, asegúrese de que o certificado SSL sexa valido", + "app.video.notReadableError": "Non se puido obter vÃdeo de webcam. Asegurate de que ningunha outra aplicación estea utilizandola.\n\nNon foi posÃbel obter o vÃdeo da cámara web. Asegurese de que outro programa non estea a usar a cámara web", + "app.video.mediaFlowTimeout1020": "Os recursos multimedia non foron quen de acadar o servidor (erro 1020)", + "app.video.suggestWebcamLock": "Forzar os axustes de bloqueo para as cámaras web dos espectadores?", + "app.video.suggestWebcamLockReason": "(isto mellorará a estabilidade da xuntanza)", "app.video.enable": "Activar", - "app.video.cancel": "Cancela", + "app.video.cancel": "Cancelar", "app.video.swapCam": "Intercambiar", - "app.video.swapCamDesc": "intercambiar a dirección das webcams", - "app.video.videoLocked": "Compartir cámara web bloqueado", - "app.video.videoButtonDesc": "Compartir webcam", + "app.video.swapCamDesc": "intercambiar o enderezo das cámaras web", + "app.video.videoLocked": "Compartir cámara web bloqueada", + "app.video.videoButtonDesc": "Compartir a cámara web", "app.video.videoMenu": "Menú de vÃdeo", - "app.video.videoMenuDisabled": "Webcam deshabilitada", - "app.video.videoMenuDesc": "Abrir o menú de vÃdeo", - "app.video.chromeExtensionError": "Debes instalar", + "app.video.videoMenuDisabled": "O menú de vÃdeo da cámara web está desactivada nos axustes", + "app.video.videoMenuDesc": "Abrir o menú despregable de vÃdeo", + "app.video.chromeExtensionError": "Debe instalar", "app.video.chromeExtensionErrorLink": "esta extensión de Chrome", "app.video.stats.title": "EstatÃsticas de conexión", "app.video.stats.packetsReceived": "Paquetes recibidos", "app.video.stats.packetsSent": "Paquetes enviados", "app.video.stats.packetsLost": "Paquetes perdidos", - "app.video.stats.bitrate": "Bitrate", - "app.video.stats.lostPercentage": "Porcentaxe total de perdida", + "app.video.stats.bitrate": "Taxa de bits", + "app.video.stats.lostPercentage": "Porcentaxe total de perda", "app.video.stats.lostRecentPercentage": "Porcentaxe de perda recente", "app.video.stats.dimensions": "Dimensións", - "app.video.stats.codec": "Codec", + "app.video.stats.codec": "Códec", "app.video.stats.decodeDelay": "Demora de decodificación", "app.video.stats.rtt": "RTT", "app.video.stats.encodeUsagePercent": "Uso de codificador", "app.video.stats.currentDelay": "Demora actual", - "app.fullscreenButton.label": "Facer {0} pantalla completa", - "app.meeting.endNotification.ok.label": "OK", - "app.whiteboard.annotations.poll": "Resultados da enquisa compartidos", + "app.fullscreenButton.label": "Poñer {0} a pantalla completa", + "app.deskshare.iceConnectionStateError": "Produciuse un fallo de conexión ao compartir a pantalla (erro ICE 1108)", + "app.sfu.mediaServerConnectionError2000": "Non foi posÃbel conectar co servidor multimedia (erro 2000)", + "app.sfu.mediaServerOffline2001": "O servidor multimedia está desconectado. Ténteo máis tarde (erro 2001)", + "app.sfu.mediaServerNoResources2002": "O servidor multimedia non ten recursos dispoñÃbeis (erro 2002)", + "app.sfu.mediaServerRequestTimeout2003": "As solicitudes do servidor multimedia caducan (erro 2003)", + "app.sfu.serverIceGatheringFailed2021": "O servidor multimedia non pode recoller candidatos a conexión (erro ICE 2021)", + "app.sfu.serverIceGatheringFailed2022": "Produciuse un fallo de conexión co servidor multimedia (erro ICE 2022)", + "app.sfu.mediaGenericError2200": "O servidor multimedia non procesou a solicitude (erro 2200)", + "app.sfu.invalidSdp2202":"O cliente xerou unha solicitude multimedia non válida (erro SDP 2202)", + "app.sfu.noAvailableCodec2203": "O servidor non atopou un códec axeitado (erro 2203)", + "app.meeting.endNotification.ok.label": "Aceptar", + "app.whiteboard.annotations.poll": "Os resultados da enquisa foron publicados", "app.whiteboard.toolbar.tools": "Ferramentas", "app.whiteboard.toolbar.tools.hand": "Panorama", "app.whiteboard.toolbar.tools.pencil": "Lapis", @@ -548,83 +607,85 @@ "app.whiteboard.toolbar.tools.ellipse": "Elipse", "app.whiteboard.toolbar.tools.line": "Liña", "app.whiteboard.toolbar.tools.text": "Texto", - "app.whiteboard.toolbar.thickness": "Grosor de liña", - "app.whiteboard.toolbar.thicknessDisabled": "Grosor de liña deshabilitado", + "app.whiteboard.toolbar.thickness": "Grosor da liña", + "app.whiteboard.toolbar.thicknessDisabled": "O grosor da liña está desactivado", "app.whiteboard.toolbar.color": "Cores", - "app.whiteboard.toolbar.colorDisabled": "Cores deshabilitados", + "app.whiteboard.toolbar.colorDisabled": "As cores están desactivadas", "app.whiteboard.toolbar.color.black": "Negro", - "app.whiteboard.toolbar.color.white": "Blanco", + "app.whiteboard.toolbar.color.white": "Branco", "app.whiteboard.toolbar.color.red": "Vermello", "app.whiteboard.toolbar.color.orange": "Laranxa", - "app.whiteboard.toolbar.color.eletricLime": "Verde fosforescente", + "app.whiteboard.toolbar.color.eletricLime": "Verde eléctrico", "app.whiteboard.toolbar.color.lime": "Verde", - "app.whiteboard.toolbar.color.cyan": "Azul ceo", + "app.whiteboard.toolbar.color.cyan": "Ciano", "app.whiteboard.toolbar.color.dodgerBlue": "Azul Intenso", "app.whiteboard.toolbar.color.blue": "Azul", "app.whiteboard.toolbar.color.violet": "Violeta", - "app.whiteboard.toolbar.color.magenta": "Magenta", + "app.whiteboard.toolbar.color.magenta": "Maxenta", "app.whiteboard.toolbar.color.silver": "Prata", - "app.whiteboard.toolbar.undo": "Desfacer anotacións", - "app.whiteboard.toolbar.clear": "Borrar todas as anotacións", - "app.whiteboard.toolbar.multiUserOn": "Activar modo multiusuario de lousa", - "app.whiteboard.toolbar.multiUserOff": "Desactivar modo multiusuario de lousa", + "app.whiteboard.toolbar.undo": "Desfacer as anotacións", + "app.whiteboard.toolbar.clear": "Limpar todas as anotacións", + "app.whiteboard.toolbar.multiUserOn": "Activar o modo multiusuario do encerado", + "app.whiteboard.toolbar.multiUserOff": "Desactivar o modo multiusuario do encerado", "app.whiteboard.toolbar.fontSize": "Lista de tamaño de letras", - "app.feedback.title": "Feixe saÃdo da conferencia", - "app.feedback.subtitle": "EncantarÃanos saber cal fué a túa experiencia con BigBlueButton (opcional)", + "app.feedback.title": "Vostede desconectouse da conferencia", + "app.feedback.subtitle": "EncantarÃanos saber cal foi a súa experiencia con BigBlueButton (opcional)", "app.feedback.textarea": "Como podemos mellorar BigBlueButton?", - "app.feedback.sendFeedback": "Enviar retroalimentación", - "app.feedback.sendFeedbackDesc": "Enviar retroalimentación e deixar a sesión", - "app.videoDock.webcamFocusLabel": "Enfocar", - "app.videoDock.webcamFocusDesc": "Enfocar a webcam seleccionada", - "app.videoDock.webcamUnfocusLabel": "Desenfocar", - "app.videoDock.webcamUnfocusDesc": "Desenfocar a camara seleccionada", - "app.videoDock.autoplayBlockedDesc": "Necesitamos o seu permiso para mostrarlle as webcams doutros usuarios.", - "app.videoDock.autoplayAllowLabel": "Ver webcams", - "app.invitation.title": "Invitación a grupo de traballo", + "app.feedback.sendFeedback": "Enviar comentarios", + "app.feedback.sendFeedbackDesc": "Enviar comentarios e abandonar a sesión", + "app.videoDock.webcamFocusLabel": "Poñer en foco", + "app.videoDock.webcamFocusDesc": "Poñer en foco a cámara web seleccionada", + "app.videoDock.webcamUnfocusLabel": "Retirar do foco", + "app.videoDock.webcamUnfocusDesc": "Retirar do foco a camara web seleccionada", + "app.videoDock.autoplayBlockedDesc": "Necesitamos o seu permiso para mostrarlle as cámaras web doutros usuarios.", + "app.videoDock.autoplayAllowLabel": "Ver cámaras web", + "app.invitation.title": "Convite a sala parcial", "app.invitation.confirm": "Convidar", - "app.createBreakoutRoom.title": "Grupos de traballo", - "app.createBreakoutRoom.ariaTitle": "Ocultar Salas de Descanso", - "app.createBreakoutRoom.breakoutRoomLabel": "Grupos de traballo {0}", - "app.createBreakoutRoom.generatingURL": "Xerando ligazón", - "app.createBreakoutRoom.generatedURL": "Xerada", + "app.createBreakoutRoom.title": "Salas parciais", + "app.createBreakoutRoom.ariaTitle": "Agochar as salas parciais", + "app.createBreakoutRoom.breakoutRoomLabel": "Salas parciais {0}", + "app.createBreakoutRoom.generatingURL": "Xerando o URL", + "app.createBreakoutRoom.generatedURL": "Xerado", "app.createBreakoutRoom.duration": "Duración {0}", "app.createBreakoutRoom.room": "Sala {0}", - "app.createBreakoutRoom.notAssigned": "Non asignado ({0})", - "app.createBreakoutRoom.join": "Ingresar á sala", - "app.createBreakoutRoom.joinAudio": "Ingresar ao audio", - "app.createBreakoutRoom.returnAudio": "Regresar ao audio", + "app.createBreakoutRoom.notAssigned": "Sen asignar ({0})", + "app.createBreakoutRoom.join": "Entrar na sala", + "app.createBreakoutRoom.joinAudio": "Entrar ao son", + "app.createBreakoutRoom.returnAudio": "Regresar ao son", "app.createBreakoutRoom.alreadyConnected": "Xa está na sala", "app.createBreakoutRoom.confirm": "Crear", "app.createBreakoutRoom.record": "Gravar", "app.createBreakoutRoom.numberOfRooms": "Número de salas", "app.createBreakoutRoom.durationInMinutes": "Duración (minutos)", "app.createBreakoutRoom.randomlyAssign": "Asignado aleatóriamente", - "app.createBreakoutRoom.endAllBreakouts": "Finalizar todos os grupos de traballo", + "app.createBreakoutRoom.endAllBreakouts": "Rematar todas as salas parciais", "app.createBreakoutRoom.roomName": "{0} (Sala - {1})", - "app.createBreakoutRoom.doneLabel": "Finalizado", + "app.createBreakoutRoom.doneLabel": "Feito", "app.createBreakoutRoom.nextLabel": "Seguinte", - "app.createBreakoutRoom.minusRoomTime": "DiminuÃr tempo de grupo de traballo", - "app.createBreakoutRoom.addRoomTime": "Aumentar tempo de grupo de traballo", - "app.createBreakoutRoom.addParticipantLabel": "+ Agregar participante", - "app.createBreakoutRoom.freeJoin": "Permitir aos usuarios seleccionar o grupo de traballo a ingresar", - "app.createBreakoutRoom.leastOneWarnBreakout": "Debes agregar almenos un usuario a cada grupo de traballo.", + "app.createBreakoutRoom.minusRoomTime": "DiminuÃr o tempo da sala parcial", + "app.createBreakoutRoom.addRoomTime": "Incrementar o tempo da sala parcial", + "app.createBreakoutRoom.addParticipantLabel": "+ Engadir participante", + "app.createBreakoutRoom.freeJoin": "Permitirlle aos usuarios escoller a sala parcial na que entrar", + "app.createBreakoutRoom.leastOneWarnBreakout": "Debe poñer polo menos un usuario nunha sala parcial", + "app.createBreakoutRoom.modalDesc": "Consello: pode arrastrar e soltar o nome dun usuario para asignalo a unha sala parcial especÃfica.", "app.createBreakoutRoom.roomTime": "{0} minutos", - "app.createBreakoutRoom.numberOfRoomsError": "O número de salas é invalido.", + "app.createBreakoutRoom.numberOfRoomsError": "O número de salas non é válido", "app.externalVideo.start": "Compartir un novo vÃdeo", "app.externalVideo.title": "Compartir un vÃdeo externo", - "app.externalVideo.input": "URL de vÃdeo externo", - "app.externalVideo.urlInput": "Engadir URL de vÃdeo", - "app.externalVideo.urlError": "Esta URL de vÃdeo non está soportada", + "app.externalVideo.input": "URL do vÃdeo externo", + "app.externalVideo.urlInput": "Engadir un URL de vÃdeo", + "app.externalVideo.urlError": "Este URL de vÃdeo non está admitido", "app.externalVideo.close": "Pechar", - "app.externalVideo.autoPlayWarning": "Reproduza o vÃdeo para activar a sincronización de medios", + "app.externalVideo.autoPlayWarning": "Reproducir o vÃdeo para activar a sincronización de recursos multimedia", "app.network.connection.effective.slow": "Estamos a detectar problemas de conectividade.", "app.network.connection.effective.slow.help": "Máis información", + "app.externalVideo.noteLabel": "Nota: os vÃdeos externos compartidos non aparecerán na gravación. AdmÃtense os URL de YouTube, Vimeo, Instructure Media, Twitch e Daily Motion.", "app.actionsBar.actionsDropdown.shareExternalVideo": "Compartir un vÃdeo externo", - "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Deter compartir vÃdeo externo", - "app.iOSWarning.label": "Por favor, actualice a iOS 12.2 ou superior", - "app.legacy.unsupportedBrowser": "Parece que está a usar un navegador non totalmente soportado. Por favor, utilice un dos seguintes {0} ó {1} para unha compatibilidade completa.", - "app.legacy.upgradeBrowser": "Parece que está a usar unha versión antiga do navegador. Por favor, actualice o seu navegador para unha compatibilidade completa.", - "app.legacy.criosBrowser": "Utilice Safari en iOS para contar con completo soporte." + "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Deter a compartición do vÃdeo externo", + "app.iOSWarning.label": "Actualice a iOS 12.2 ou superior", + "app.legacy.unsupportedBrowser": "Parece que estás a usar un navegador que non é compatÃbel. Utilice {0} ou {1} para obter unha compatibilidade completa.", + "app.legacy.upgradeBrowser": "Parece que estás a usar unha versión antiga dun navegador compatÃbel. Actualice o navegador para obter unha compatibilidade completa. ", + "app.legacy.criosBrowser": "En iOS, use Safari para ter una compatibilidade completa." } diff --git a/bigbluebutton-html5/private/locales/hi_IN.json b/bigbluebutton-html5/private/locales/hi_IN.json index 69b1909f486e7a6200aa62c4f50752b39effac46..eb0eb9aaf0ddcfb9dd6a016304fb5ae12a974171 100644 --- a/bigbluebutton-html5/private/locales/hi_IN.json +++ b/bigbluebutton-html5/private/locales/hi_IN.json @@ -20,6 +20,7 @@ "app.captions.menu.title": "बंद शीरà¥à¤·à¤•", "app.captions.menu.backgroundColor": "पीछे का रंग", "app.captions.menu.cancelLabel": "रदà¥à¤¦ करना", + "app.captions.pad.hide": "my name is hari", "app.captions.pad.tip": "संपादक टूलबार पर धà¥à¤¯à¤¾à¤¨ केंदà¥à¤°à¤¿à¤¤ करने के लिठEsc दबाà¤à¤‚", "app.note.title": "साà¤à¤¾ किठगठनोटà¥à¤¸", "app.note.label": "धà¥à¤¯à¤¾à¤¨ दें", diff --git a/bigbluebutton-html5/private/locales/id.json b/bigbluebutton-html5/private/locales/id.json index ed6556d63186777fca947f8e3f5776bb26e6ab65..c2cca225358b66c087341864333565450b13bca0 100644 --- a/bigbluebutton-html5/private/locales/id.json +++ b/bigbluebutton-html5/private/locales/id.json @@ -1,175 +1,690 @@ { + "app.home.greeting": "Presentasi Anda akan mulai sesaat lagi...", "app.chat.submitLabel": "Kirimkan pesan", - "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", - "app.chat.titlePrivate": "Chat pribadi dengan {0}", - "app.chat.partnerDisconnected": "{0} sudah keluar dari meeting", + "app.chat.errorMaxMessageLength": "Pesan ini terlalu panjang {0} karakter", + "app.chat.disconnected": "Anda terputus, pesan tak bisa dikirim", + "app.chat.locked": "Obrolan dikunci, pesan tak bisa dikirim", + "app.chat.inputLabel": "Masukan pesan untuk obrolan {0}", + "app.chat.inputPlaceholder": "Kirim pesan ke {0}", + "app.chat.titlePublic": "Obrolan Publik", + "app.chat.titlePrivate": "Obrolan pribadi dengan {0}", + "app.chat.partnerDisconnected": "{0} sudah keluar dari pertemuan", "app.chat.closeChatLabel": "Tutup {0}", "app.chat.hideChatLabel": "Sembunyikan {0}", - "app.chat.moreMessages": "Lihat pesan lebih banyak dibawah ini", - "app.chat.dropdown.options": "Opsi Chat", + "app.chat.moreMessages": "Lebih banyak pesan di bawah", + "app.chat.dropdown.options": "Opsi obrolan", "app.chat.dropdown.clear": "Bersihkan", "app.chat.dropdown.copy": "Salin", "app.chat.dropdown.save": "Simpan", - "app.chat.label": "Chat", - "app.chat.emptyLogLabel": "Log Chatting kosong", + "app.chat.label": "Obrolan", + "app.chat.offline": "Luring", + "app.chat.emptyLogLabel": "Catatan obrolan kosong", + "app.chat.clearPublicChatMessage": "Riwayat obrolan publik dibersihkan oleh moderator", + "app.chat.multi.typing": "Beberapa pengguna sedang mengetik", + "app.chat.one.typing": "{0} sedang mengetik", + "app.chat.two.typing": "{0} dan {1} sedang mengetik", + "app.captions.label": "Penjelas", "app.captions.menu.close": "Tutup", "app.captions.menu.start": "Mulai", + "app.captions.menu.ariaStart": "Mulai menulis penjelas", + "app.captions.menu.ariaStartDesc": "Membuka penyunting penjelas dan menutup modal", + "app.captions.menu.select": "Pilih bahasa yang tersedia", + "app.captions.menu.ariaSelect": "Bahasa penjelas", + "app.captions.menu.subtitle": "Harap pilih suatu bahasa dan gaya untuk penjelas tertutup dalam sesi Anda", + "app.captions.menu.title": "Penjelas tertutup", + "app.captions.menu.fontSize": "Ukuran", + "app.captions.menu.fontColor": "Warna teks", + "app.captions.menu.fontFamily": "Fonta", "app.captions.menu.backgroundColor": "Warna latar", - "app.captions.menu.cancelLabel": "Batalkan", + "app.captions.menu.previewLabel": "Pratinjau", + "app.captions.menu.cancelLabel": "Batal", + "app.captions.pad.hide": "Sembunyikan penjelas tertutup", + "app.captions.pad.tip": "Tekan Esc untuk fokus ke bilah alat penyunting", + "app.captions.pad.ownership": "Ambil alih", + "app.captions.pad.ownershipTooltip": "Anda akan ditugasi sebagai pemilik dari {0} penjelas", + "app.captions.pad.interimResult": "Hasil sementara", + "app.captions.pad.dictationStart": "Mulai dikte", + "app.captions.pad.dictationStop": "Stop dikte", + "app.captions.pad.dictationOnDesc": "Nyalakan pengenalan bicara", + "app.captions.pad.dictationOffDesc": "Matikan pengenalan bicara", + "app.note.title": "Catatan Bersama", + "app.note.label": "Catatan", + "app.note.hideNoteLabel": "Sembunyikan catatan", + "app.user.activityCheck": "Pemeriksaan aktivitas pengguna", + "app.user.activityCheck.label": "Periksa apakah pengguna masih dalam pertemuan ({0})", + "app.user.activityCheck.check": "Periksa", + "app.note.tipLabel": "Tekan Esc untuk fokus ke bilah alat penyunting", "app.userList.usersTitle": "Pengguna", "app.userList.participantsTitle": "Peserta", "app.userList.messagesTitle": "Pesan", + "app.userList.notesTitle": "Catatan", + "app.userList.notesListItem.unreadContent": "Konten baru tersedia dalam bagian catatan bersama", + "app.userList.captionsTitle": "Penjelas", "app.userList.presenter": "Pemateri", "app.userList.you": "Anda", "app.userList.locked": "Terkunci", + "app.userList.byModerator": "oleh (Moderator)", + "app.userList.label": "Daftar pengguna", + "app.userList.toggleCompactView.label": "Jungkitkan mode tampilan kompak", "app.userList.guest": "Tamu", + "app.userList.menuTitleContext": "Opsi yang tersedia", "app.userList.chatListItem.unreadSingular": "{0} Pesan Baru", "app.userList.chatListItem.unreadPlural": "{0} Pesan Baru", + "app.userList.menu.chat.label": "Mulai obrolan privat", + "app.userList.menu.clearStatus.label": "Bersihkan status", "app.userList.menu.removeUser.label": "Hapus pengguna", - "app.userList.menu.muteUserAudio.label": "Diamkan pengguna", - "app.userList.menu.unmuteUserAudio.label": "Aktifkan pengguna", + "app.userList.menu.removeConfirmation.label": "Hapus pengguna ({0})", + "app.userlist.menu.removeConfirmation.desc": "Anda yakin hendak menghapus pengguna ini? Sekali dihapus mereka tidak akan bisa bergabung lagi ke sesi ini.", + "app.userList.menu.muteUserAudio.label": "Bisukan pengguna", + "app.userList.menu.unmuteUserAudio.label": "Bolehkan bicara pengguna", + "app.userList.userAriaLabel": "{0} {1} {2} Status {3}", + "app.userList.menu.promoteUser.label": "Promosikan jadi moderator", + "app.userList.menu.demoteUser.label": "Turunkan jadi pemirsa", + "app.userList.menu.unlockUser.label": "Buka kunci {0}", "app.userList.menu.lockUser.label": "Kunci {0}", - "app.userList.userOptions.muteAllLabel": "Diamkan semua Pengguna", + "app.userList.menu.directoryLookup.label": "Lihat Direktori", + "app.userList.menu.makePresenter.label": "Jadikan penyaji", + "app.userList.userOptions.manageUsersLabel": "Kelola pengguna", + "app.userList.userOptions.muteAllLabel": "Bisukan semua pengguna", + "app.userList.userOptions.muteAllDesc": "Bisukan semua pengguna dalam pertemuan", + "app.userList.userOptions.clearAllLabel": "Bersihkan semua ikon status", + "app.userList.userOptions.clearAllDesc": "Bersihkan semua ikon status dari pengguna", + "app.userList.userOptions.muteAllExceptPresenterLabel": "Bisukan semua pengguna kecuali penyaji", + "app.userList.userOptions.muteAllExceptPresenterDesc": "Membisukan semua pengguna dalam pertemuan kecuali penyaji", + "app.userList.userOptions.unmuteAllLabel": "Matikan membisukan pertemuan", + "app.userList.userOptions.unmuteAllDesc": "Tak bisukan pertemuan", + "app.userList.userOptions.lockViewersLabel": "Kunci pemirsa", + "app.userList.userOptions.lockViewersDesc": "Kunci fungsionalitas tertentu bagi hadirin pertemuan", + "app.userList.userOptions.disableCam": "Webcam pemirsa dinonaktifkan", + "app.userList.userOptions.disableMic": "Mikrofon pemirsa dinonaktifkan", + "app.userList.userOptions.disablePrivChat": "Obrolan pribadi dinonaktifkan", + "app.userList.userOptions.disablePubChat": "Obrolan publik dinonaktifkan", + "app.userList.userOptions.disableNote": "Catatan bersama kini dikunci", + "app.userList.userOptions.hideUserList": "Daftar pengguna kini tersembunyi dari pemirsa", + "app.userList.userOptions.webcamsOnlyForModerator": "Hanya para moderator yang dapat melihat webcam pemirsa (karena pengaturan penguncian)", + "app.userList.content.participants.options.clearedStatus": "Semua status pengguna dibersihkan", + "app.userList.userOptions.enableCam": "Webcam pemirsa difungsikan", + "app.userList.userOptions.enableMic": "Mikrofon pemirsa difungsikan", + "app.userList.userOptions.enablePrivChat": "Obrolan pribadi difungsikan", + "app.userList.userOptions.enablePubChat": "Obrolan publik difungsikan", + "app.userList.userOptions.enableNote": "Catatan bersama kini difungsikan", + "app.userList.userOptions.showUserList": "Daftar pengguna kini ditampilkan ke pemirsa", + "app.userList.userOptions.enableOnlyModeratorWebcam": "Anda dapat memfungsikan webcam Anda sekarang, semua orang akan melihat Anda", "app.media.label": "Media", - "app.media.screenshare.start": "Berbagi layar sudah mulai", + "app.media.autoplayAlertDesc": "Izinkan Akses", + "app.media.screenshare.start": "Berbagi layar sudah dimulai", "app.media.screenshare.end": "Berbagi layar sudah berakhir", + "app.media.screenshare.unavailable": "Berbagi Layar Tidak Tersedia", + "app.media.screenshare.autoplayBlockedDesc": "Kami perlu izin Anda untuk menunjukkan layar penyaji.", + "app.media.screenshare.autoplayAllowLabel": "Lihat layar bersama", + "app.screenshare.notAllowed": "Galat: Izin untuk mengakses layar tak diberikan.", + "app.screenshare.notSupportedError": "Galat: Berbagi layar diizinkan hanya pada domain aman (SSL)", + "app.screenshare.notReadableError": "Galat: Ada kegagalan ketika mencoba menangkap layar Anda", + "app.screenshare.genericError": "Galat: Ada kesalahan yang terjadi dengan berbagi layar, harap coba lagi", "app.meeting.ended": "Sesi sudah berakhir", - "app.presentation.presentationToolbar.prevSlideLabel": "Slide Sebelumnya", - "app.presentation.presentationToolbar.prevSlideDesc": "Pindahkan presentasi ke slide sebelumnya", - "app.presentation.presentationToolbar.nextSlideLabel": "Slide selanjutnya", - "app.presentation.presentationToolbar.nextSlideDesc": "Pindahkan presentasi ke slide selanjutnya", - "app.presentation.presentationToolbar.skipSlideLabel": "Lewati Slide", - "app.presentation.presentationToolbar.skipSlideDesc": "Pindahkan presentasi ke slide tertentu", - "app.presentation.presentationToolbar.fitWidthLabel": "Sesuaikan dengan lebar layar", - "app.presentation.presentationToolbar.fitWidthDesc": "Tampilkan seluruh lebar slide", - "app.presentation.presentationToolbar.fitScreenLabel": "Sesuaikan dengan ukuran layar", - "app.presentation.presentationToolbar.fitScreenDesc": "Tampilkan seluruh slide", - "app.presentation.presentationToolbar.zoomLabel": "Perbesar", - "app.presentation.presentationToolbar.zoomDesc": "Ubah level zoom dari presentasi", - "app.presentation.presentationToolbar.fitToWidth": "Sesuaikan dengan lebar layar", + "app.meeting.meetingTimeRemaining": "Sisa waktu pertemuan: {0}", + "app.meeting.meetingTimeHasEnded": "Waktu berakhir. Pertemuan akan segera ditutup", + "app.meeting.endedMessage": "Anda akan diteruskan kembali ke layar beranda", + "app.meeting.alertMeetingEndsUnderOneMinute": "Pertemuan berakhir dalam satu menit.", + "app.meeting.alertBreakoutEndsUnderOneMinute": "Pecahan akan ditutup dalam satu menit.", + "app.presentation.hide": "Sembunyikan presentasi", + "app.presentation.notificationLabel": "Presentasi saat ini", + "app.presentation.slideContent": "Isi Salindia", + "app.presentation.startSlideContent": "Konten salindia mulai", + "app.presentation.endSlideContent": "Konten salindia berakhir", + "app.presentation.emptySlideContent": "Tidak ada konten untuk salindia saat ini", + "app.presentation.presentationToolbar.noNextSlideDesc": "Akhir presentasi", + "app.presentation.presentationToolbar.noPrevSlideDesc": "Awal presentasi", + "app.presentation.presentationToolbar.selectLabel": "Pilih salindia", + "app.presentation.presentationToolbar.prevSlideLabel": "Salindia sebelumnya", + "app.presentation.presentationToolbar.prevSlideDesc": "Ubah presentasi ke salindia sebelumnya", + "app.presentation.presentationToolbar.nextSlideLabel": "Salindia selanjutnya", + "app.presentation.presentationToolbar.nextSlideDesc": "Ubah presentasi ke salindia selanjutnya", + "app.presentation.presentationToolbar.skipSlideLabel": "Lewati salindia", + "app.presentation.presentationToolbar.skipSlideDesc": "Ubah presentasi ke salindia tertentu", + "app.presentation.presentationToolbar.fitWidthLabel": "Paskan lebar", + "app.presentation.presentationToolbar.fitWidthDesc": "Tampilkan selebar salindia", + "app.presentation.presentationToolbar.fitScreenLabel": "Paskan layar", + "app.presentation.presentationToolbar.fitScreenDesc": "Tampilkan seluruh salindia", + "app.presentation.presentationToolbar.zoomLabel": "Zum", + "app.presentation.presentationToolbar.zoomDesc": "Ubah level zum dari presentasi", + "app.presentation.presentationToolbar.zoomInLabel": "Perbesar", + "app.presentation.presentationToolbar.zoomInDesc": "Perbesar presentasi", + "app.presentation.presentationToolbar.zoomOutLabel": "Perkecil", + "app.presentation.presentationToolbar.zoomOutDesc": "Perkecil presentasi", + "app.presentation.presentationToolbar.zoomReset": "Reset Zum", + "app.presentation.presentationToolbar.zoomIndicator": "Persentase zum saat ini", + "app.presentation.presentationToolbar.fitToWidth": "Paskan lebar", + "app.presentation.presentationToolbar.fitToPage": "Paskan halaman", + "app.presentation.presentationToolbar.goToSlide": "Salindia {0}", "app.presentationUploder.title": "Presentasi", - "app.presentationUploder.confirmDesc": "Simpan ubahan Anda dan mulai presentasi", + "app.presentationUploder.message": "Sebagai penyaji Anda dapat mengunggah sebarang dokumen kantor atau berkas PDF. Kami menyarankan berkas PDF untuk hasil terbaik. Harap pastikan bahwa suatu presentasi dipilih memakai kotak centang lingkaran pada sisi kanan.", + "app.presentationUploder.uploadLabel": "Unggah", + "app.presentationUploder.confirmLabel": "Konfirmasikan", + "app.presentationUploder.confirmDesc": "Simpan perubahan Anda dan mulai presentasi", "app.presentationUploder.dismissLabel": "Batalkan", - "app.presentationUploder.dismissDesc": "Tutup jendela dan batalkan perubahan.", - "app.presentationUploder.dropzoneLabel": "Drag file untuk unggah", - "app.presentationUploder.browseFilesLabel": "atau telusuri file", - "app.presentationUploder.tableHeading.options": "Pilihan", + "app.presentationUploder.dismissDesc": "Tutup jendela dan buang perubahan", + "app.presentationUploder.dropzoneLabel": "Seret berkas ke sini untuk mengunggah", + "app.presentationUploder.dropzoneImagesLabel": "Seret gambar ke sini untuk mengunggah", + "app.presentationUploder.browseFilesLabel": "atau telusuri berkas", + "app.presentationUploder.browseImagesLabel": "atau telusuri/tangkap gambar", + "app.presentationUploder.fileToUpload": "Untuk diunggah ...", + "app.presentationUploder.currentBadge": "Saat ini", + "app.presentationUploder.rejectedError": "Berkas yang dipilih telah ditolak. Harap periksa tipe berkas.", + "app.presentationUploder.upload.progress": "Mengunggah ({0}%)", + "app.presentationUploder.upload.413": "Berkas terlalu besar. Harap pecah ke dalam beberapa berkas.", + "app.presentationUploder.upload.408": "Habis waktu token unggah permintaan.", + "app.presentationUploder.upload.404": "404: Token unggah tak valid", + "app.presentationUploder.upload.401": "Permintaan token unggah presentasi gagal.", + "app.presentationUploder.conversion.conversionProcessingSlides": "Memroses halaman {0} dari {1}", + "app.presentationUploder.conversion.genericConversionStatus": "Mengonversi berkas", + "app.presentationUploder.conversion.generatingThumbnail": "Membuat gambar mini ...", + "app.presentationUploder.conversion.generatedSlides": "Salindia dibuat ...", + "app.presentationUploder.conversion.generatingSvg": "Membuat gambar SVG ...", + "app.presentationUploder.conversion.pageCountExceeded": "Banyaknya halaman terlampaui. Harap pecah berkas ke dalam beberapa berkas.", + "app.presentationUploder.conversion.officeDocConversionInvalid": "Gagal memroses dokumen kantor. Harap unggah PDF sebagai pengganti.", + "app.presentationUploder.conversion.officeDocConversionFailed": "Gagal memroses dokumen kantor. Harap unggah PDF sebagai pengganti.", + "app.presentationUploder.conversion.pdfHasBigPage": "Kami tidak bisa mengonversi berkas PDF, harap coba mengoptimasinya", + "app.presentationUploder.conversion.timeout": "Ups, konversi makan waktu terlalu lama", + "app.presentationUploder.conversion.pageCountFailed": "Gagal menentukan banyaknya halaman.", + "app.presentationUploder.isDownloadableLabel": "Jangan izinkan presentasi diunduh", + "app.presentationUploder.isNotDownloadableLabel": "Izinkan presentasi diunduh", + "app.presentationUploder.removePresentationLabel": "Hapus presentasi", + "app.presentationUploder.setAsCurrentPresentation": "Atur presentasi sebagai saat ini", + "app.presentationUploder.tableHeading.filename": "Nama berkas", + "app.presentationUploder.tableHeading.options": "Opsi", + "app.presentationUploder.tableHeading.status": "Status", + "app.poll.pollPaneTitle": "Pemungutan suara", + "app.poll.quickPollTitle": "Pemungutan Suara Cepat", + "app.poll.hidePollDesc": "Sembunyikan panel menu pemungutan suara", + "app.poll.customPollInstruction": "Untuk membuat pemungutan suara ubahan, pilih tombol di bawah dan masukkan pilihan-pilihan Anda.", + "app.poll.quickPollInstruction": "Pilih sebuah opsi di bawah untuk memulai pemungutan suara.", + "app.poll.customPollLabel": "Pemungutan suara ubahan", + "app.poll.startCustomLabel": "Mulai pemungutan suara ubahan", + "app.poll.activePollInstruction": "Biarkan panel ini terbuka untuk melihat respon hidup ke pemungutan suara. Ketika Anda siap, pilih 'Publikasikan hasil pemungutan suara' untuk mengumumkan hasil dan mengakhiri pemungutan suara.", + "app.poll.publishLabel": "Umumkan hasil pemungutan suara", + "app.poll.backLabel": "Kembali ke opsi pemungutan suara", "app.poll.closeLabel": "Tutup", + "app.poll.waitingLabel": "Menunggu respon ({0}/{1})", + "app.poll.ariaInputCount": "Opsi pemungutan suara ubahan {0} dari {1}", + "app.poll.customPlaceholder": "Tambahkan opsi pemungutan suara", + "app.poll.noPresentationSelected": "Tidak ada presentasi yang dipilih. Harap pilih satu.", + "app.poll.clickHereToSelect": "Klik di sini untuk memilih", + "app.poll.t": "Benar", + "app.poll.f": "Salah", + "app.poll.tf": "Benar / Salah", + "app.poll.y": "Ya", + "app.poll.n": "Tidak", + "app.poll.yn": "Ya / Tidak", + "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": "Benar", + "app.poll.answer.false": "Salah", + "app.poll.answer.yes": "Ya", + "app.poll.answer.no": "Tidak", + "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": "Pengguna", + "app.poll.liveResult.responsesTitle": "Respon", + "app.polling.pollingTitle": "Opsi pemungutan suara", + "app.polling.pollAnswerLabel": "Jawaban pemungutan suara {0}", + "app.polling.pollAnswerDesc": "Pilih opsi ini untuk memberi suara bagi {0}", "app.failedMessage": "Mohon maaf, ada kesulitan terhubung ke server", - "app.navBar.settingsDropdown.optionsLabel": "Pilihan", - "app.navBar.settingsDropdown.fullscreenLabel": "Aktifkan layar penuh", - "app.navBar.settingsDropdown.settingsLabel": "Buka Pengaturan", + "app.downloadPresentationButton.label": "Mengunduh presentasi asli", + "app.connectingMessage": "Menyambung ...", + "app.waitingMessage": "Terputus. Mencoba menyambung ulang dalam {0} detik ...", + "app.retryNow": "Coba lagi sekarang", + "app.navBar.settingsDropdown.optionsLabel": "Opsi", + "app.navBar.settingsDropdown.fullscreenLabel": "Jadikan layar penuh", + "app.navBar.settingsDropdown.settingsLabel": "Pengaturan", "app.navBar.settingsDropdown.aboutLabel": "Tentang", "app.navBar.settingsDropdown.leaveSessionLabel": "Keluar", "app.navBar.settingsDropdown.exitFullscreenLabel": "Keluar dari layar penuh", "app.navBar.settingsDropdown.fullscreenDesc": "Buat menu pengaturan menjadi layar penuh", "app.navBar.settingsDropdown.settingsDesc": "Ubah pengaturan umum", "app.navBar.settingsDropdown.aboutDesc": "Tampilkan informasi tentang klien", - "app.navBar.settingsDropdown.leaveSessionDesc": "Keluar meeting", + "app.navBar.settingsDropdown.leaveSessionDesc": "Keluar pertemuan", "app.navBar.settingsDropdown.exitFullscreenDesc": "Keluar dari mode layar penuh", - "app.navBar.userListToggleBtnLabel": "Alihkan Daftar Pengguna", - "app.navBar.toggleUserList.newMessages": "Dengan notifikasi pesan baru", + "app.navBar.settingsDropdown.hotkeysLabel": "Pintasan papan tik", + "app.navBar.settingsDropdown.hotkeysDesc": "Daftar pintasan papan tik yang tersedia", + "app.navBar.settingsDropdown.helpLabel": "Bantuan", + "app.navBar.settingsDropdown.helpDesc": "Menaut pengguna ke tutorial video (membuka tab baru)", + "app.navBar.settingsDropdown.endMeetingDesc": "Mengakhiri pertemuan saat ini", + "app.navBar.settingsDropdown.endMeetingLabel": "Akhir pertemuan", + "app.navBar.userListToggleBtnLabel": "Jungkitkan daftar pengguna", + "app.navBar.toggleUserList.ariaLabel": "Jungkitkan pengguna dan pesan", + "app.navBar.toggleUserList.newMessages": "dengan notifikasi pesan baru", + "app.navBar.recording": "Sesi ini sedang direkam", + "app.navBar.recording.on": "Merekam", + "app.navBar.recording.off": "Tidak merekam", + "app.navBar.emptyAudioBrdige": "Tidak ada mikrofon aktif. Bagikan mikrofon Anda untuk menambah audio ke rekaman ini.", "app.leaveConfirmation.confirmLabel": "Keluar", "app.leaveConfirmation.confirmDesc": "Anda keluar dari meeting", + "app.endMeeting.title": "Akhir pertemuan", + "app.endMeeting.description": "Anda yakin ingin mengakhiri sesi ini?", + "app.endMeeting.yesLabel": "Ya", + "app.endMeeting.noLabel": "Tidak", "app.about.title": "Tentang", + "app.about.version": "Build klien:", "app.about.copyright": "Hak Cipta:", "app.about.confirmLabel": "OK", "app.about.confirmDesc": "OK", "app.about.dismissLabel": "Batalkan", - "app.about.dismissDesc": "Tutup informasi klien", - "app.actionsBar.muteLabel": "Diamkan", - "app.actionsBar.unmuteLabel": "Aktifkan", - "app.actionsBar.raiseLabel": "Naikan", + "app.about.dismissDesc": "Tutup informasi tentang klien", + "app.actionsBar.changeStatusLabel": "Ubah status", + "app.actionsBar.muteLabel": "Bisukan", + "app.actionsBar.unmuteLabel": "Tak bisukan", + "app.actionsBar.camOffLabel": "Kamera mati", + "app.actionsBar.raiseLabel": "Acungkan tangan", + "app.actionsBar.label": "Bilah aksi", + "app.actionsBar.actionsDropdown.restorePresentationLabel": "Pulihkan presentasi", + "app.actionsBar.actionsDropdown.restorePresentationDesc": "Tombol untuk memulihkan presentasi setelah itu ditutup", + "app.screenshare.screenShareLabel" : "Berbagi layar", "app.submenu.application.applicationSectionTitle": "Aplikasi", - "app.submenu.application.fontSizeControlLabel": "Ukuran Huruf", - "app.submenu.application.increaseFontBtnLabel": "Besarkan Ukuran Huruf Aplikasi", - "app.submenu.application.decreaseFontBtnLabel": "Kecilkan Ukuran Huruf Aplikasi", + "app.submenu.application.animationsLabel": "Animasi", + "app.submenu.application.audioAlertLabel": "Peringatan Audio untuk Obrolan", + "app.submenu.application.pushAlertLabel": "Peringatan Popup untuk Obrolan", + "app.submenu.application.userJoinAudioAlertLabel": "Peringatan Audio untuk Pengguna Bergabung", + "app.submenu.application.userJoinPushAlertLabel": "Peringatan Popup untuk Pengguna Bergabung", + "app.submenu.application.fontSizeControlLabel": "Ukuran fonta", + "app.submenu.application.increaseFontBtnLabel": "Perbesar ukuran fonta aplikasi", + "app.submenu.application.decreaseFontBtnLabel": "Perkecil ukuran fonta aplikasi", + "app.submenu.application.currentSize": "saat ini {0}", "app.submenu.application.languageLabel": "Bahasa Aplikasi", - "app.submenu.application.languageOptionLabel": "Pilih Bahasa", - "app.submenu.application.noLocaleOptionLabel": "Tidak ada lokalisasi yang aktif", - "app.submenu.audio.micSourceLabel": "Sumber Mikropon", - "app.submenu.audio.speakerSourceLabel": "Sumber Speaker", + "app.submenu.application.languageOptionLabel": "Pilih bahasa", + "app.submenu.application.noLocaleOptionLabel": "Tidak ada locale yang aktif", + "app.submenu.audio.micSourceLabel": "Sumber mikrofon", + "app.submenu.audio.speakerSourceLabel": "Sumber speaker", "app.submenu.audio.streamVolumeLabel": "Volume stream audio Anda", "app.submenu.video.title": "Video", - "app.submenu.video.videoSourceLabel": "Lihat Sumber", - "app.submenu.video.videoOptionLabel": "Pilih Lihat Sumber", + "app.submenu.video.videoSourceLabel": "Sumber tilikan", + "app.submenu.video.videoOptionLabel": "Pilih sumber tilikan", + "app.submenu.video.videoQualityLabel": "Kualitas video", "app.submenu.video.qualityOptionLabel": "Pilih kualitas video", - "app.submenu.video.participantsCamLabel": "Melihat Web Kamera Peserta", + "app.submenu.video.participantsCamLabel": "Melihat webcam pemirsa", "app.settings.applicationTab.label": "Aplikasi", "app.settings.audioTab.label": "Audio", "app.settings.videoTab.label": "Video", "app.settings.usersTab.label": "Partisipan", "app.settings.main.label": "Pengaturan", "app.settings.main.cancel.label": "Batalkan", - "app.settings.main.cancel.label.description": "Batalkan perubahan dan tutup menu pengaturan.", + "app.settings.main.cancel.label.description": "Buang perubahan dan tutup menu pengaturan.", "app.settings.main.save.label": "Simpan", "app.settings.main.save.label.description": "Simpan perubahan dan tutup menu pengaturan", + "app.settings.dataSavingTab.label": "Penghematan data", + "app.settings.dataSavingTab.webcam": "Fungsikan webcam", + "app.settings.dataSavingTab.screenShare": "Fungsikan berbagi desktop", + "app.settings.dataSavingTab.description": "Untuk menghemat bandwidth Anda setel apa yang saat ini sedang ditampilkan.", + "app.settings.save-notification.label": "Pengaturan telah disimpan", + "app.switch.onLabel": "NYALA", + "app.switch.offLabel": "MATI", + "app.talkingIndicator.ariaMuteDesc" : "Pilih untuk membisukan pengguna", + "app.talkingIndicator.isTalking" : "{0} sedang bicara", + "app.talkingIndicator.wasTalking" : "{0} berhenti bicara", "app.actionsBar.actionsDropdown.actionsLabel": "Aksi", - "app.actionsBar.actionsDropdown.presentationLabel": "Unggah presentasi", + "app.actionsBar.actionsDropdown.presentationLabel": "Unggah suatu presentasi", "app.actionsBar.actionsDropdown.initPollLabel": "Mulai polling", - "app.actionsBar.actionsDropdown.desktopShareLabel": "Bagikan Layar", - "app.actionsBar.actionsDropdown.presentationDesc": "Unggah presentasi", + "app.actionsBar.actionsDropdown.desktopShareLabel": "Bagikan layar Anda", + "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Berbagi layar dikunci", + "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Berhenti membagikan layar Anda", + "app.actionsBar.actionsDropdown.presentationDesc": "Unggah presentasi Anda", "app.actionsBar.actionsDropdown.initPollDesc": "Mulai polling", - "app.actionsBar.actionsDropdown.desktopShareDesc": "Bagikan layar anda dengan orang lain", - "app.actionsBar.emojiMenu.awayLabel": "Tidak Fokus", - "app.actionsBar.emojiMenu.awayDesc": "Ubah status menjadi Tidak Fokus", - "app.actionsBar.emojiMenu.raiseHandLabel": "Naikan", + "app.actionsBar.actionsDropdown.desktopShareDesc": "Bagikan layar Anda dengan orang lain", + "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Berhenti membagikan layar Anda dengan", + "app.actionsBar.actionsDropdown.pollBtnLabel": "Mulai poll", + "app.actionsBar.actionsDropdown.pollBtnDesc": "Jungkitkan panel poll", + "app.actionsBar.actionsDropdown.saveUserNames": "Simpan nama-nama pengguna", + "app.actionsBar.actionsDropdown.createBreakoutRoom": "Buat ruang pecahan", + "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "buat pecahan untuk membelah pertemuan saat ini", + "app.actionsBar.actionsDropdown.captionsLabel": "Tulis penjelas tertutup", + "app.actionsBar.actionsDropdown.captionsDesc": "Jungkitkan panel penjelas", + "app.actionsBar.actionsDropdown.takePresenter": "Jadi penyaji", + "app.actionsBar.actionsDropdown.takePresenterDesc": "Tugaskan Anda sendiri sebagai penyaji baru", + "app.actionsBar.emojiMenu.statusTriggerLabel": "Atur status", + "app.actionsBar.emojiMenu.awayLabel": "Pergi", + "app.actionsBar.emojiMenu.awayDesc": "Ubah status menjadi pergi", + "app.actionsBar.emojiMenu.raiseHandLabel": "Acungkan tangan", "app.actionsBar.emojiMenu.raiseHandDesc": "Angkat tangan untuk bertanya", - "app.actionsBar.emojiMenu.neutralLabel": "Tidak memutuskan", - "app.actionsBar.emojiMenu.neutralDesc": "Ubah status anda menjadi Tidak Memutuskan", + "app.actionsBar.emojiMenu.neutralLabel": "Belum menentukan", + "app.actionsBar.emojiMenu.neutralDesc": "Ubah status Anda menjadi belum memilih", "app.actionsBar.emojiMenu.confusedLabel": "Bingung", - "app.actionsBar.emojiMenu.confusedDesc": "Ubah status anda menjadi Bingung", + "app.actionsBar.emojiMenu.confusedDesc": "Ubah status Anda menjadi bingung", "app.actionsBar.emojiMenu.sadLabel": "Sedih", - "app.actionsBar.emojiMenu.sadDesc": "Ubah status anda menjadi Sedih", - "app.actionsBar.emojiMenu.happyLabel": "Bahagia", - "app.actionsBar.emojiMenu.happyDesc": "Ubah status anda menjadi Bahagia", + "app.actionsBar.emojiMenu.sadDesc": "Ubah status Anda menjadi sedih", + "app.actionsBar.emojiMenu.happyLabel": "Senang", + "app.actionsBar.emojiMenu.happyDesc": "Ubah status Anda menjadi senang", "app.actionsBar.emojiMenu.noneLabel": "Bersihkan Status", - "app.actionsBar.emojiMenu.noneDesc": "Normalkan status anda", + "app.actionsBar.emojiMenu.noneDesc": "Bersihkan status Anda", "app.actionsBar.emojiMenu.applauseLabel": "Tepuk tangan", - "app.actionsBar.emojiMenu.applauseDesc": "Ubah status anda menjadi Tepuk Tangan", - "app.actionsBar.emojiMenu.thumbsUpLabel": "Jempol Atas", - "app.actionsBar.emojiMenu.thumbsUpDesc": "Ubah status Anda menjadi Jempol Atas", - "app.actionsBar.emojiMenu.thumbsDownLabel": "Jempol Bawah", - "app.actionsBar.emojiMenu.thumbsDownDesc": "Ubah status Anda menjadi Jempol Bawah", + "app.actionsBar.emojiMenu.applauseDesc": "Ubah status Anda menjadi tepuk tangan", + "app.actionsBar.emojiMenu.thumbsUpLabel": "Jempol atas", + "app.actionsBar.emojiMenu.thumbsUpDesc": "Ubah status Anda menjadi jempol atas", + "app.actionsBar.emojiMenu.thumbsDownLabel": "Jempol bawah", + "app.actionsBar.emojiMenu.thumbsDownDesc": "Ubah status Anda menjadi jempol bawah", "app.actionsBar.currentStatusDesc": "status saat ini {0}", - "app.audioNotification.audioFailedMessage": "Koneksi audio anda gagal terhubung", + "app.actionsBar.captions.start": "Mulai melihat penjelas tertutup", + "app.actionsBar.captions.stop": "Berhenti melihat penjelas tertutup", + "app.audioNotification.audioFailedError1001": "WebSocket terputus (galat 1001)", + "app.audioNotification.audioFailedError1002": "Tidak bisa membuat koneksi WebSocket (galat 1002)", + "app.audioNotification.audioFailedError1003": "Versi peramban tidak didukung (galat 1003)", + "app.audioNotification.audioFailedError1004": "Kegagalan saat panggilan (alasan={0}) (galat 1004)", + "app.audioNotification.audioFailedError1005": "Panggilan berakhir tak terduga (galat 1005)", + "app.audioNotification.audioFailedError1006": "Panggilan habis waktu (galat 1006)", + "app.audioNotification.audioFailedError1007": "Kegagalan koneksi (ICE galat 1007)", + "app.audioNotification.audioFailedError1008": "Transfer gagal (galat 1008)", + "app.audioNotification.audioFailedError1009": "Tidak bisa mengambil informasi server STUN/TURN (galat 1009)", + "app.audioNotification.audioFailedError1010": "Habis waktu negosiasi koneksi (ICE galat 1010)", + "app.audioNotification.audioFailedError1011": "Habis waktu koneksi (ICE galat 1011)", + "app.audioNotification.audioFailedError1012": "Koneksi ditutup (ICE galat 1012)", + "app.audioNotification.audioFailedMessage": "Koneksi audio Anda gagal terhubung", + "app.audioNotification.mediaFailedMessage": "getUserMicMedia gagal karena hanya sumber yang aman yang diizinkan", "app.audioNotification.closeLabel": "Tutup", - "app.breakoutJoinConfirmation.message": "Anda ingin bergabung ?", - "app.breakoutJoinConfirmation.dismissLabel": "Batalkan", - "app.audioModal.microphoneLabel": "MIkropon", - "app.audioModal.audioChoiceLabel": "Bagaimana anda akan terhubung dengan audio?", - "app.audioModal.audioChoiceDesc": "Pilih cara terhubung dengan audio di meeting ini", + "app.audioNotificaion.reconnectingAsListenOnly": "Mikrofon telah dikunci bagi pemirsa, Anda sedang terhubung sebagai hanya-dengar", + "app.breakoutJoinConfirmation.title": "Gabung ke ruang pecahan", + "app.breakoutJoinConfirmation.message": "Apakah Anda ingin bergabung", + "app.breakoutJoinConfirmation.confirmDesc": "Menggabungkan Anda ke ruang pecahan", + "app.breakoutJoinConfirmation.dismissLabel": "Batal", + "app.breakoutJoinConfirmation.dismissDesc": "Tutup dan tolak bergabung ke ruang pecahan", + "app.breakoutJoinConfirmation.freeJoinMessage": "Pilih suatu ruang pecahan yang akan diikuti", + "app.breakoutTimeRemainingMessage": "Sisa waktu ruang pecahan: {0}", + "app.breakoutWillCloseMessage": "Waktu berakhir. Ruang pecahan akan segera tutup", + "app.calculatingBreakoutTimeRemaining": "Menghitung sisa waktu ...", + "app.audioModal.ariaTitle": "Bergabung audio modal", + "app.audioModal.microphoneLabel": "MIkrofon", + "app.audioModal.listenOnlyLabel": "Hanya dengar", + "app.audioModal.audioChoiceLabel": "Bagaimana Anda akan menghubungkan audio?", + "app.audioModal.iOSBrowser": "Audio/video tidak didukung", + "app.audioModal.iOSErrorDescription": "Saat ini audio dan video tidak didukung pada Chrome bagi iOS.", + "app.audioModal.iOSErrorRecommendation": "Kami sarankan memakai Safari iOS.", + "app.audioModal.audioChoiceDesc": "Pilih cara terhubung dengan audio di pertemuan ini", + "app.audioModal.unsupportedBrowserLabel": "Tampaknya Anda sedang memakai peramban yang tidak sepenuhnya didukung. Harap gunakan {0} atau {1} untuk dukungan penuh.", "app.audioModal.closeLabel": "Tutup", + "app.audioModal.yes": "Ya", + "app.audioModal.no": "Tidak", + "app.audioModal.yes.arialabel" : "Gaung terdengar", + "app.audioModal.no.arialabel" : "Gaung tidak terdengar", + "app.audioModal.echoTestTitle": "Ini adalah uji gaung privat. Ucapkan beberapa kata. Apakah Anda mendengar suara?", + "app.audioModal.settingsTitle": "Ubah pengaturan audio Anda", + "app.audioModal.helpTitle": "Ada masalah dengan peranti media Anda", + "app.audioModal.helpText": "Apakah Anda memberi izin untuk akses mikrofon? Perhatikan bahwa suatu dialog mestinya muncul ketika Anda mencoba bergabung dengan audio, meminta izin peranti media Anda, harap terima itu untuk bergabung ke konferensi audio. Bila bukan begitu kasusnya, cobalah mengubah izin mikrofon Anda dalam pengaturan peramban Anda.", + "app.audioModal.help.noSSL": "Halaman ini tidak diamankan. Agar akses mikrofon diizinkan, halaman mesti disajikan melalui HTTPS. Harap hubungi administrator server.", + "app.audioModal.help.macNotAllowed": "Tampaknya Preferensi Sistem Mac Anda memblokir akses ke mikrofon Anda. Buka Preferensi Sistem > Keamanan & Privasi > Privasi > Mikrofon, dan verifikasikan bahwa peramban yang Anda pakai dicentang.", + "app.audioModal.audioDialTitle": "Bergabung memakai telepon Anda", + "app.audioDial.audioDialDescription": "Dial", + "app.audioDial.audioDialConfrenceText": "dan masukkan nomor PIN konferensi:", + "app.audioModal.autoplayBlockedDesc": "Kami perlu izin Anda untuk memutar audio.", + "app.audioModal.playAudio": "Putar audio", + "app.audioModal.playAudio.arialabel" : "Putar audio", + "app.audioDial.tipIndicator": "Tip", + "app.audioDial.tipMessage": "Tekan tombol '0' pada telepon Anda untuk membisukan/membolehkan bicara.", + "app.audioModal.connecting": "Menyambung", + "app.audioModal.connectingEchoTest": "Menyambung ke uji echo", + "app.audioManager.joinedAudio": "Anda telah bergabung dengan konferensi audio", + "app.audioManager.joinedEcho": "Anda telah bergabung ke uji echo", + "app.audioManager.leftAudio": "Anda telah meninggalkan konferensi audio", + "app.audioManager.reconnectingAudio": "Mencoba menyambung ulang audio", + "app.audioManager.genericError": "Galat: Telah terjadi kesalaha, harap coba lagi", + "app.audioManager.connectionError": "Galat: Kesalahan koneksi", + "app.audioManager.requestTimeout": "Galat: Ada kehabisan waktu dalam permintaan", + "app.audioManager.invalidTarget": "Galat: Mencoba meminta sesuatu ke target yang tidak valid", + "app.audioManager.mediaError": "Galat: Ada masalah mendapatkan peranti media Anda", "app.audio.joinAudio": "Terhubung audio", "app.audio.leaveAudio": "Tinggalkan audio", + "app.audio.enterSessionLabel": "Masuk sesi", + "app.audio.playSoundLabel": "Putar suara", "app.audio.backLabel": "Kembali", - "app.audio.audioSettings.titleLabel": "Pilih pengaturan audio anda", - "app.audio.audioSettings.descriptionLabel": "Mohon diperhatikan, dialog akan muncul pada browser anda, Silakan untuk menekan tombol menerima berbagi mikropon jika diminta.", - "app.audio.audioSettings.microphoneSourceLabel": "Sumber Mikropon", - "app.audio.audioSettings.speakerSourceLabel": "Sumber Speaker", - "app.audio.audioSettings.microphoneStreamLabel": "Volume stream audio anda", + "app.audio.audioSettings.titleLabel": "Pilih pengaturan audio Anda", + "app.audio.audioSettings.descriptionLabel": "Mohon diperhatikan, dialog akan muncul pada peramban Anda, meminta Anda menerima berbagi mikrofon Anda.", + "app.audio.audioSettings.microphoneSourceLabel": "Sumber mikrofon", + "app.audio.audioSettings.speakerSourceLabel": "Sumber speaker", + "app.audio.audioSettings.microphoneStreamLabel": "Volume stream audio Anda", + "app.audio.audioSettings.retryLabel": "Coba lagi", "app.audio.listenOnly.backLabel": "Kembali", "app.audio.listenOnly.closeLabel": "Tutup", + "app.audio.permissionsOverlay.title": "Izinkan akses ke mikrofon Anda", + "app.audio.permissionsOverlay.hint": "Kami perlu Anda mengizinkan kami memakai peranti media Anda agar menggabungkan Anda ke konferensi suara :)", + "app.error.removed": "Anda telah disingkirkan dari konferensi", "app.error.meeting.ended": "Anda telah keluar dari konferensi", + "app.meeting.logout.duplicateUserEjectReason": "Pengguna duplikat mencoba bergabung ke pertemuan", + "app.meeting.logout.permissionEjectReason": "Dikeluarkan karena pelanggaran izin", + "app.meeting.logout.ejectedFromMeeting": "Anda telah disingkirkan dari pertemuan", + "app.meeting.logout.validateTokenFailedEjectReason": "Gagal memvalidasi token autorisasi", + "app.meeting.logout.userInactivityEjectReason": "Pengguna tidak aktif terlalu lama", + "app.meeting-ended.rating.legendLabel": "Peringkat umpan balik", + "app.meeting-ended.rating.starLabel": "Bintang", "app.modal.close": "Tutup", + "app.modal.close.description": "Abaikan perubahan dan tutup modal", + "app.modal.confirm": "Selesai", + "app.modal.newTab": "(membuka tab baru)", + "app.modal.confirm.description": "Menyimpan perubahan dan menutup modal", "app.dropdown.close": "Tutup", + "app.error.400": "Permintaan Buruk", "app.error.401": "Tidak memiliki izin", + "app.error.403": "Anda telah disingkirkan dari pertemuan", "app.error.404": "Tidak ditemukan", - "app.error.500": "Ops, sepertinya ada kesalahan", - "app.error.leaveLabel": "Log in Kembali", + "app.error.410": "Pertemuan sudah selesai", + "app.error.500": "Ups, ada sesuatu yang salah", + "app.error.leaveLabel": "Masuk lagi", + "app.error.fallback.presentation.title": "Terjadi suatu kesalahan", + "app.error.fallback.presentation.description": "Itu telah dicatat. Harap coba muat ulang halaman.", + "app.error.fallback.presentation.reloadButton": "Muat ulang", + "app.guest.waiting": "Menunggu persetujuan untuk bergabung", + "app.userList.guest.waitingUsers": "Menunggu Pengguna", + "app.userList.guest.waitingUsersTitle": "Manajemen Pengguna", + "app.userList.guest.optionTitle": "Tinjau Pengguna Yang Tertunda", + "app.userList.guest.allowAllAuthenticated": "Izinkan semua yang terautentikasi", + "app.userList.guest.allowAllGuests": "Izinkan semua tamu", + "app.userList.guest.allowEveryone": "Izinkan siapa pun", + "app.userList.guest.denyEveryone": "Tolak siapa pun", + "app.userList.guest.pendingUsers": "{0} Pengguna Tertunda", + "app.userList.guest.pendingGuestUsers": "{0} Pengguna Tamu Tertunda", + "app.userList.guest.pendingGuestAlert": "Telah bergabung ke sesi dan menunggu persetujuan Anda.", + "app.userList.guest.rememberChoice": "Ingat pilihan", + "app.user-info.title": "Lihat Direktori", + "app.toast.breakoutRoomEnded": "Ruang pecahan berakhir. Harap bergabung ulang suara.", + "app.toast.chat.public": "Pesan Obrolan Publik baru", + "app.toast.chat.private": "Pesan Obrolan Privat baru", + "app.toast.chat.system": "Sistem", + "app.toast.clearedEmoji.label": "Status emoji dibersihkan", + "app.toast.setEmoji.label": "Status emoji ditata ke {0}", + "app.toast.meetingMuteOn.label": "Semua pengguna telah dibisukan", + "app.toast.meetingMuteOff.label": "Pembisuan pertemuan dimatikan", + "app.notification.recordingStart": "Sesi ini sekarang sedang direkam", + "app.notification.recordingStop": "Sesi ini tidak sedang direkam", + "app.notification.recordingPaused": "Sesi ini tidak lagi direkam", + "app.notification.recordingAriaLabel": "Waktu rekaman", + "app.notification.userJoinPushAlert": "{0} bergabung ke sesi", + "app.shortcut-help.title": "Pintasan papan tik", + "app.shortcut-help.accessKeyNotAvailable": "Tombol akses tidak tersedia", + "app.shortcut-help.comboLabel": "Kombo", + "app.shortcut-help.functionLabel": "Fungsi", "app.shortcut-help.closeLabel": "Tutup", + "app.shortcut-help.closeDesc": "Menutup modal pintasan papan tik", + "app.shortcut-help.openOptions": "Buka Opsi", + "app.shortcut-help.toggleUserList": "Jungkitkan DaftarPengguna", + "app.shortcut-help.toggleMute": "Bisukan / Boleh Bicara", + "app.shortcut-help.togglePublicChat": "Jungkitkan Obrolan Publik (Daftar pengguna mesti terbuka)", + "app.shortcut-help.hidePrivateChat": "Sembunyikan obrolan privat", + "app.shortcut-help.closePrivateChat": "Tutup obrolan privat", + "app.shortcut-help.openActions": "Buka menu aksi", + "app.shortcut-help.openStatus": "Buka menu status", + "app.shortcut-help.togglePan": "Aktifkan alat Pan (Penyaji)", + "app.shortcut-help.nextSlideDesc": "Salindia selanjutnya (Penyaji)", + "app.shortcut-help.previousSlideDesc": "Salindia sebelumnya (Penyaji)", + "app.lock-viewers.title": "Kunci pemirsa", + "app.lock-viewers.description": "Opsi ini memungkinkan Anda membatasi pemirsa memakai fitur-fitur tertentu.", + "app.lock-viewers.featuresLable": "Fitur", + "app.lock-viewers.lockStatusLabel": "Status", + "app.lock-viewers.webcamLabel": "Berbagi webcam", + "app.lock-viewers.otherViewersWebcamLabel": "Melihat webcam pemirsa lain", + "app.lock-viewers.microphoneLable": "Berbagi mikrofon", + "app.lock-viewers.PublicChatLabel": "Mengirim pesan obrolan Publik", + "app.lock-viewers.PrivateChatLable": "Mengirim pesan obrolan Privat", + "app.lock-viewers.notesLabel": "Menyunting Catatan Bersama", + "app.lock-viewers.userListLabel": "Melihat pemirsa lain dalam Daftar pengguna", + "app.lock-viewers.ariaTitle": "Kunci modal pengaturan pemirsa ", + "app.lock-viewers.button.apply": "Terapkan", "app.lock-viewers.button.cancel": "Batalkan", "app.lock-viewers.locked": "Terkunci", + "app.lock-viewers.unlocked": "Tak Terkunci", + "app.recording.startTitle": "Mulai merekam", + "app.recording.stopTitle": "Jeda merekam", + "app.recording.resumeTitle": "Lanjutkan merekam", + "app.recording.startDescription": "Anda dapat memilih tombol rekam lagi nanti untuk mengistirahatkan perekaman.", + "app.recording.stopDescription": "Anda yakin hendak mengistirahatkan perekaman? Anda dapat melanjutkan dengan memilih tombol rekam lagi.", + "app.videoPreview.cameraLabel": "Kamera", + "app.videoPreview.profileLabel": "Kualitas", "app.videoPreview.cancelLabel": "Batalkan", "app.videoPreview.closeLabel": "Tutup", + "app.videoPreview.findingWebcamsLabel": "Mencari webcam", + "app.videoPreview.startSharingLabel": "Mulai berbagi", + "app.videoPreview.webcamOptionLabel": "Pilih webcam", + "app.videoPreview.webcamPreviewLabel": "Pratinjau webcam", + "app.videoPreview.webcamSettingsTitle": "Pengaturan webcam", + "app.videoPreview.webcamNotFoundLabel": "Webcam tidak ditemukan", + "app.videoPreview.profileNotFoundLabel": "Tidak ada profil kamera yang didukung", + "app.video.joinVideo": "Berbagi webcam", + "app.video.leaveVideo": "Berhenti membagikan webcam", + "app.video.iceCandidateError": "Galat saat menambahkan kandidat ICE", + "app.video.iceConnectionStateError": "Kegagalan koneksi (ICE galat 1107)", + "app.video.permissionError": "Galat saat berbagi webcam. Haram periksa izin", + "app.video.sharingError": "Galat saat berbagi webcam", + "app.video.notFoundError": "Tidak bisa menemukan webcam. Harap pastikan itu terhubung ", + "app.video.notAllowed": "Kurang izin untuk berbagi webcam, harap pastikan izin peramban Anda.", + "app.video.notSupportedError": "Dapat membagikan video webcam hanya dengan sumber aman, pastikan sertifikat SSL Anda valid.", + "app.video.notReadableError": "Tidak bisa mendapatkan video webcam. Pastikan program lain tidak sedang memakai webcam.", + "app.video.mediaFlowTimeout1020": "Media tidak dapat mencapai server (error 1020)", + "app.video.suggestWebcamLock": "Paksakan pengaturan penguncian ke webcam pemirsa?", + "app.video.suggestWebcamLockReason": "(ini akan memperbaiki stabilitas pertemuan)", + "app.video.enable": "Fungsikan", "app.video.cancel": "Batalkan", + "app.video.swapCam": "Tukar", + "app.video.swapCamDesc": "tukar arah webcam", + "app.video.videoLocked": "Berbagi webcam dikunci", + "app.video.videoButtonDesc": "Berbagi webcam", + "app.video.videoMenu": "Menu video", + "app.video.videoMenuDisabled": "Menu video Webcam dinonaktifkan dalam pengaturan", + "app.video.videoMenuDesc": "Buka dropdown menu video", + "app.video.chromeExtensionError": "Anda mesti memasang", + "app.video.chromeExtensionErrorLink": "ekstensi Chrome ini", + "app.video.stats.title": "Statistik Koneksi", + "app.video.stats.packetsReceived": "Paket diterima", + "app.video.stats.packetsSent": "Paket dikirim", + "app.video.stats.packetsLost": "Paket hilang", + "app.video.stats.bitrate": "Laju bit", + "app.video.stats.lostPercentage": "Total persentase hilang", + "app.video.stats.lostRecentPercentage": "Baru-baru ini persentase hilang", + "app.video.stats.dimensions": "Dimensi", + "app.video.stats.codec": "Kodek", + "app.video.stats.decodeDelay": "Tundaan dekode", + "app.video.stats.rtt": "RTT", + "app.video.stats.encodeUsagePercent": "Penggunaan enkode", + "app.video.stats.currentDelay": "Tundaan saat ini", + "app.fullscreenButton.label": "Jadikan {0} layar penuh", + "app.deskshare.iceConnectionStateError": "Koneksi gagal ketika berbagi layar (ICE galat 1108)", + "app.sfu.mediaServerConnectionError2000": "Tidak bisa menyambung ke server media (galat 2000)", + "app.sfu.mediaServerOffline2001": "Server media sedang luring. Harap coba lagi nanti (galat 2001)", + "app.sfu.mediaServerNoResources2002": "Server media tidak punya sumber daya yang tersedia (galat 2002)", + "app.sfu.mediaServerRequestTimeout2003": "Permintaan server media habis waktu (galat 2003)", + "app.sfu.serverIceGatheringFailed2021": "Server media tak bisa mengumpulkan kandidat koneksi (ICE galat 2021)", + "app.sfu.serverIceGatheringFailed2022": "Koneksi server media gagal (ICE galat 2022)", + "app.sfu.mediaGenericError2200": "Server media gagal memroses permintaan (galat 2200)", + "app.sfu.invalidSdp2202":"Klien membuat permintaan media yang tidak valid (SDP galat 2202)", + "app.sfu.noAvailableCodec2203": "Server tidak bisa menemukan kodek yang sesuai (galat 2203)", "app.meeting.endNotification.ok.label": "OK", + "app.whiteboard.annotations.poll": "Hasil poll dipublikasikan", + "app.whiteboard.toolbar.tools": "Perkakas", + "app.whiteboard.toolbar.tools.hand": "Pan", + "app.whiteboard.toolbar.tools.pencil": "Pinsil", + "app.whiteboard.toolbar.tools.rectangle": "Persegi Panjang", + "app.whiteboard.toolbar.tools.triangle": "Segi Tiga", + "app.whiteboard.toolbar.tools.ellipse": "Elips", + "app.whiteboard.toolbar.tools.line": "Garis", + "app.whiteboard.toolbar.tools.text": "Teks", + "app.whiteboard.toolbar.thickness": "Ketebalan menggambar", + "app.whiteboard.toolbar.thicknessDisabled": "Ketebalan menggambar dinonaktifkan", + "app.whiteboard.toolbar.color": "Warna", + "app.whiteboard.toolbar.colorDisabled": "Warna dinonaktifkan", + "app.whiteboard.toolbar.color.black": "Hitam", + "app.whiteboard.toolbar.color.white": "Putih", + "app.whiteboard.toolbar.color.red": "Merah", + "app.whiteboard.toolbar.color.orange": "Jingga", + "app.whiteboard.toolbar.color.eletricLime": "Limau elektrik", + "app.whiteboard.toolbar.color.lime": "Limau", + "app.whiteboard.toolbar.color.cyan": "Sian", + "app.whiteboard.toolbar.color.dodgerBlue": "Biru dodger", + "app.whiteboard.toolbar.color.blue": "Biru", + "app.whiteboard.toolbar.color.violet": "Lembayung", + "app.whiteboard.toolbar.color.magenta": "Ungu", + "app.whiteboard.toolbar.color.silver": "Perak", + "app.whiteboard.toolbar.undo": "Batalkan anotasi", + "app.whiteboard.toolbar.clear": "Bersihkan semua anotasi", + "app.whiteboard.toolbar.multiUserOn": "Nyalakan papan tulis multi pengguna", + "app.whiteboard.toolbar.multiUserOff": "Matikan papan tulis multi pengguna", + "app.whiteboard.toolbar.fontSize": "Daftar ukuran fonta", "app.feedback.title": "Anda telah keluar dari konferensi", - "app.createBreakoutRoom.joinAudio": "Terhubung audio", - "app.externalVideo.close": "Tutup" + "app.feedback.subtitle": "Kami berharap mendengar pengalaman Anda dengan BigBlueButton (opsional)", + "app.feedback.textarea": "Bagaimana kami dapat membuat BigBlueButton lebih baik?", + "app.feedback.sendFeedback": "Kirim Umpan Balik", + "app.feedback.sendFeedbackDesc": "Kirim suatu umpan balik dan tinggalkan pertemuan", + "app.videoDock.webcamFocusLabel": "Fokus", + "app.videoDock.webcamFocusDesc": "Fokus ke webcam yang dipilih", + "app.videoDock.webcamUnfocusLabel": "Lepas fokus", + "app.videoDock.webcamUnfocusDesc": "Lepas fokus dari webcam yang dipilih", + "app.videoDock.autoplayBlockedDesc": "Kami perlu izin Anda untuk menampilkan kepadamu webcam pengguna lain.", + "app.videoDock.autoplayAllowLabel": "Lihat webcam", + "app.invitation.title": "Undangan ruang pecahan", + "app.invitation.confirm": "Undang", + "app.createBreakoutRoom.title": "Ruang Pecahan", + "app.createBreakoutRoom.ariaTitle": "Sembunyikan Ruang Pecahan", + "app.createBreakoutRoom.breakoutRoomLabel": "Ruangan Pecahan {0}", + "app.createBreakoutRoom.generatingURL": "Membangkitkan URL", + "app.createBreakoutRoom.generatedURL": "Dibangkitkan", + "app.createBreakoutRoom.duration": "Durasi {0}", + "app.createBreakoutRoom.room": "Ruang {0}", + "app.createBreakoutRoom.notAssigned": "Belum ditugasi ({0})", + "app.createBreakoutRoom.join": "Bergabung ruang", + "app.createBreakoutRoom.joinAudio": "Audio bergabung", + "app.createBreakoutRoom.returnAudio": "Audio kembali", + "app.createBreakoutRoom.alreadyConnected": "Sudah dalam ruang", + "app.createBreakoutRoom.confirm": "Buat", + "app.createBreakoutRoom.record": "Rekam", + "app.createBreakoutRoom.numberOfRooms": "Banyaknya ruangan", + "app.createBreakoutRoom.durationInMinutes": "Durasi (menit)", + "app.createBreakoutRoom.randomlyAssign": "Tugaskan acak", + "app.createBreakoutRoom.endAllBreakouts": "Akhiri semua ruang pecahan", + "app.createBreakoutRoom.roomName": "{0} (Ruang - {1})", + "app.createBreakoutRoom.doneLabel": "Selesai", + "app.createBreakoutRoom.nextLabel": "Selanjutnya", + "app.createBreakoutRoom.minusRoomTime": "Kurangi waktu ruang pecahan ke", + "app.createBreakoutRoom.addRoomTime": "Naikkan waktu ruang pecahan ke", + "app.createBreakoutRoom.addParticipantLabel": "+ Tambah partisipan", + "app.createBreakoutRoom.freeJoin": "Izinkan pengguna memilih ruang pecahan yang akan diikuti", + "app.createBreakoutRoom.leastOneWarnBreakout": "Anda mesti menempatkan paling tidak satu pengguna dalam suatu ruang pecahan", + "app.createBreakoutRoom.modalDesc": "Tip: Anda dapat menyeret-dan-menjatuhkan suatu nama pengguna untuk menugaskan mereka ke ruang pecahan tertentu.", + "app.createBreakoutRoom.roomTime": "{0} menit", + "app.createBreakoutRoom.numberOfRoomsError": "Banyaknya ruang tidak valid.", + "app.externalVideo.start": "Berbagi suatu video baru", + "app.externalVideo.title": "Berbagi suatu video eksternal", + "app.externalVideo.input": "URL Video Eksternal", + "app.externalVideo.urlInput": "Tambah URL Video", + "app.externalVideo.urlError": "URL video ini tak didukung", + "app.externalVideo.close": "Tutup", + "app.externalVideo.autoPlayWarning": "Putar video untuk memfungsikan sinkronisasi media", + "app.network.connection.effective.slow": "Kami mengamati masalah konektivitas.", + "app.network.connection.effective.slow.help": "Informasi lebih jauh", + "app.externalVideo.noteLabel": "Catatan: Video eksternal yang dibagikan tidak akan muncul dalam rekaman. URL YouTube, Vimeo, Instructure Media, Twitch, dan Daily Motion didukung. ", + "app.actionsBar.actionsDropdown.shareExternalVideo": "Berbagi suatu video eksternal", + "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Berhenti membagikan video eksternal", + "app.iOSWarning.label": "Mohon tingkatkan ke iOS 12.2 atau lebih baru", + "app.legacy.unsupportedBrowser": "Tampaknya Anda memakai peramban yang tidak didukung. Harap gunakan {0} atau {1} untuk dukungan penuh.", + "app.legacy.upgradeBrowser": "Tampaknya Anda memakai versi lebih tua dari peramban yang didukung. Harap tingkatkan peramban Anda untuk dukungan penuh.", + "app.legacy.criosBrowser": "Pada iOS harap gunakan Safari untuk dukungan penuh." } diff --git a/bigbluebutton-html5/private/locales/it_IT.json b/bigbluebutton-html5/private/locales/it_IT.json index bb3b4c07920ea6a6c1b6c32db2d97df49dcb2caa..be8ce230a034171e69f9242b9a1eb04a5a6352be 100644 --- a/bigbluebutton-html5/private/locales/it_IT.json +++ b/bigbluebutton-html5/private/locales/it_IT.json @@ -111,6 +111,7 @@ "app.media.autoplayAlertDesc": "Premetti l'accesso", "app.media.screenshare.start": "Condivisione schermo avviata", "app.media.screenshare.end": "Condivisione schermo terminata", + "app.media.screenshare.unavailable": "Condivisione schermo non disponibile", "app.media.screenshare.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", @@ -169,6 +170,7 @@ "app.presentationUploder.rejectedError": "Il file selezionato è stato rifiutato. controllare il tipo di file.", "app.presentationUploder.upload.progress": "Caricamento ({0}%)", "app.presentationUploder.upload.413": "Il file è troppo grande. Per favore dividilo in più file.", + "app.presentationUploder.upload.404": "404: Token di upload non valido", "app.presentationUploder.conversion.conversionProcessingSlides": "Elaborazione pagina {0} di {1}", "app.presentationUploder.conversion.genericConversionStatus": "Conversione file...", "app.presentationUploder.conversion.generatingThumbnail": "Elaborazione anteprima...", @@ -583,6 +585,7 @@ "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.serverIceGatheringFailed2021": "Il server dei media non è riuscito a ottenere candidati per la connessione (errore ICE 2021)", "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)", diff --git a/bigbluebutton-html5/private/locales/ja.json b/bigbluebutton-html5/private/locales/ja.json index 30006a62879d21427651d3600eef17d5bfa1e301..690d443ee4942c7a9b30ba741eb69d566533775e 100644 --- a/bigbluebutton-html5/private/locales/ja.json +++ b/bigbluebutton-html5/private/locales/ja.json @@ -43,8 +43,8 @@ "app.captions.pad.ownership": "代ã‚ã‚‹", "app.captions.pad.ownershipTooltip": "{0} å—幕ã®ã‚ªãƒ¼ãƒŠãƒ¼ã«ãªã‚Šã¾ã™", "app.captions.pad.interimResult": "ä¸é–“çµæžœ", - "app.captions.pad.dictationStart": "ディクテーション開始", - "app.captions.pad.dictationStop": "ディクテーション終了", + "app.captions.pad.dictationStart": "å£è¿°é–‹å§‹", + "app.captions.pad.dictationStop": "å£è¿°çµ‚了", "app.captions.pad.dictationOnDesc": "音声èªè˜ã‚ªãƒ³", "app.captions.pad.dictationOffDesc": "音声èªè˜ã‚ªãƒ•", "app.note.title": "共有メモ", @@ -63,6 +63,7 @@ "app.userList.presenter": "プレゼンター", "app.userList.you": "自分", "app.userList.locked": "ãƒãƒƒã‚¯", + "app.userList.byModerator": "(Moderator)ã«ã‚ˆã‚‹", "app.userList.label": "ユーザーリスト", "app.userList.toggleCompactView.label": "コンパクトモードã«åˆ‡ã‚Šæ›¿ãˆ", "app.userList.guest": "ゲスト", @@ -71,8 +72,10 @@ "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.removeUser.label": "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’退室ã•ã›ã‚‹", + "app.userList.menu.removeConfirmation.label": "ユーザー({0})ã®é€€å®¤", + "app.userlist.menu.removeConfirmation.desc": "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã‚‚ã†ã“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã«ã¯æˆ»ã‚Œãªããªã‚Šã¾ã™ãŒã€æ§‹ã„ã¾ã›ã‚“ã‹ï¼Ÿ", + "app.userList.menu.muteUserAudio.label": "ユーザーをミュートã™ã‚‹", "app.userList.menu.unmuteUserAudio.label": "ユーザーã®ãƒŸãƒ¥ãƒ¼ãƒˆã‚’外ã™", "app.userList.userAriaLabel": "{0} {1} {2} ステータス {3}", "app.userList.menu.promoteUser.label": "モデレーターã«ã™ã‚‹", @@ -82,7 +85,7 @@ "app.userList.menu.directoryLookup.label": "ディレクトリ検索", "app.userList.menu.makePresenter.label": "プレゼンターã«ã™ã‚‹", "app.userList.userOptions.manageUsersLabel": "ユーザー管ç†", - "app.userList.userOptions.muteAllLabel": "全ユーザーをミュートã«ã™ã‚‹", + "app.userList.userOptions.muteAllLabel": "全ユーザーをミュートã™ã‚‹", "app.userList.userOptions.muteAllDesc": "ã“ã®ä¼šè°ã®å…¨ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’ミュートã«ã™ã‚‹", "app.userList.userOptions.clearAllLabel": "全ステータスアイコンを消去ã™ã‚‹", "app.userList.userOptions.clearAllDesc": "ユーザーã®å…¨ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚¢ã‚¤ã‚³ãƒ³ã‚’消去ã™ã‚‹", @@ -111,6 +114,8 @@ "app.media.autoplayAlertDesc": "アクセス許å¯", "app.media.screenshare.start": "ç”»é¢å…±æœ‰ã‚’開始ã—ã¾ã—ãŸ", "app.media.screenshare.end": "ç”»é¢å…±æœ‰ã‚’終了ã—ã¾ã—ãŸ", + "app.media.screenshare.unavailable": "ç”»é¢å…±æœ‰ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“", + "app.media.screenshare.notSupported": "ç”»é¢å…±æœ‰ã¯ã“ã®ãƒ–ラウザã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。", "app.media.screenshare.autoplayBlockedDesc": "プレゼンターã®ç”»é¢ã®å…±æœ‰ã‚’許å¯ã—ã¦ãã ã•ã„", "app.media.screenshare.autoplayAllowLabel": "共有画é¢ã‚’見る", "app.screenshare.notAllowed": "エラー:画é¢ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒè¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“", @@ -169,6 +174,9 @@ "app.presentationUploder.rejectedError": "é¸æŠžãƒ•ã‚¡ã‚¤ãƒ«ãŒæ‹’å¦ã•ã‚Œã¾ã—ãŸã€‚ファイル形å¼ã‚’確èªã—ã¦ãã ã•ã„。", "app.presentationUploder.upload.progress": "アップãƒãƒ¼ãƒ‰ä¸({0}%)", "app.presentationUploder.upload.413": "ファイルãŒå¤§ãã™ãŽã¾ã™ã€‚ã„ãã¤ã‹ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«åˆ†å‰²ã—ã¦ãã ã•ã„。", + "app.presentationUploder.upload.408": "アップãƒãƒ¼ãƒ‰ãƒˆãƒ¼ã‚¯ãƒ³ã®è¦æ±‚ãŒæ™‚間切れã«ãªã‚Šã¾ã—ãŸã€‚", + "app.presentationUploder.upload.404": "エラー404:無効ãªã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ãƒˆãƒ¼ã‚¯ãƒ³", + "app.presentationUploder.upload.401": "アップãƒãƒ¼ãƒ‰ãƒˆãƒ¼ã‚¯ãƒ³ã®è¦æ±‚ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚", "app.presentationUploder.conversion.conversionProcessingSlides": "{1}ページä¸{0}ページ目を処ç†ä¸", "app.presentationUploder.conversion.genericConversionStatus": "ファイル変æ›ä¸â€¦", "app.presentationUploder.conversion.generatingThumbnail": "サムãƒã‚¤ãƒ«ä½œæˆä¸â€¦", @@ -236,7 +244,7 @@ "app.navBar.settingsDropdown.fullscreenLabel": "全画é¢è¡¨ç¤ºã«åˆ‡æ›¿", "app.navBar.settingsDropdown.settingsLabel": "è¨å®šã‚’é–‹ã", "app.navBar.settingsDropdown.aboutLabel": "ã‚¢ãƒã‚¦ãƒˆ", - "app.navBar.settingsDropdown.leaveSessionLabel": "ãƒã‚°ã‚¢ã‚¦ãƒˆ", + "app.navBar.settingsDropdown.leaveSessionLabel": "退室", "app.navBar.settingsDropdown.exitFullscreenLabel": "全画é¢è¡¨ç¤ºè§£é™¤", "app.navBar.settingsDropdown.fullscreenDesc": "è¨å®šãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’全画é¢è¡¨ç¤º", "app.navBar.settingsDropdown.settingsDesc": "一般ã®è¨å®šã‚’変更", @@ -263,7 +271,7 @@ "app.endMeeting.yesLabel": "ã¯ã„", "app.endMeeting.noLabel": "ã„ã„ãˆ", "app.about.title": "ã‚¢ãƒã‚¦ãƒˆ", - "app.about.version": "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š", + "app.about.version": "クライアントãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š", "app.about.copyright": "Copyright:", "app.about.confirmLabel": "OK", "app.about.confirmDesc": "OK", @@ -309,14 +317,14 @@ "app.settings.main.cancel.label.description": "å¤‰æ›´ã‚’ç ´æ£„ã—è¨å®šãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’é–‰ã˜ã‚‹", "app.settings.main.save.label": "ä¿å˜", "app.settings.main.save.label.description": "変更をä¿å˜ã—è¨å®šãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’é–‰ã˜ã‚‹", - "app.settings.dataSavingTab.label": "データä¿å˜", + "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.talkingIndicator.ariaMuteDesc" : "ユーザをミュートã«ã—ã¾ã™", + "app.switch.offLabel": "切", + "app.talkingIndicator.ariaMuteDesc" : "ユーザをミュートã—ã¾ã™", "app.talkingIndicator.isTalking" : "{0} ãŒè©±ã—ã¦ã„ã¾ã™", "app.talkingIndicator.wasTalking" : "{0} ãŒè©±ã—終ãˆã¾ã—ãŸ", "app.actionsBar.actionsDropdown.actionsLabel": "アクション", @@ -328,7 +336,7 @@ "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": "ユーザーåã‚’ä¿å˜ã™ã‚‹", @@ -345,8 +353,8 @@ "app.actionsBar.emojiMenu.raiseHandDesc": "質å•ãŒã‚ã‚Šã¾ã—ãŸã‚‰æŒ™æ‰‹ã—ã¦ãã ã•ã„", "app.actionsBar.emojiMenu.neutralLabel": "普通", "app.actionsBar.emojiMenu.neutralDesc": "ステータスを「普通ã€ã«ã™ã‚‹", - "app.actionsBar.emojiMenu.confusedLabel": "ã‚ã‘ãŒã‚ã‹ã‚‰ãªã„", - "app.actionsBar.emojiMenu.confusedDesc": "ステータスを「ã‚ã‘ãŒã‚ã‹ã‚‰ãªã„ã€ã«ã™ã‚‹", + "app.actionsBar.emojiMenu.confusedLabel": "ã‚ã‹ã‚‰ã‚“", + "app.actionsBar.emojiMenu.confusedDesc": "ステータスを「ã‚ã‹ã‚‰ã‚“ã€ã«ã™ã‚‹", "app.actionsBar.emojiMenu.sadLabel": "悲ã—ã„", "app.actionsBar.emojiMenu.sadDesc": "ステータスを「悲ã—ã„ã€ã«ã™ã‚‹", "app.actionsBar.emojiMenu.happyLabel": "ãƒãƒƒãƒ”ー", @@ -388,7 +396,7 @@ "app.breakoutWillCloseMessage": "時間終了。ã¾ã‚‚ãªãå°ä¼šè°å®¤ã‚’終了ã—ã¾ã™ã€‚", "app.calculatingBreakoutTimeRemaining": "残り時間を計算ä¸...", "app.audioModal.ariaTitle": "音声ウィンドウã«å‚åŠ ", - "app.audioModal.microphoneLabel": "マイク", + "app.audioModal.microphoneLabel": "音声ã§å‚åŠ ", "app.audioModal.listenOnlyLabel": "è´è¬›ã®ã¿", "app.audioModal.audioChoiceLabel": "音声ã¯ã©ã†ã—ã¾ã™ã‹ï¼Ÿ", "app.audioModal.iOSBrowser": "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„音声/ビデオ", @@ -445,10 +453,10 @@ "app.error.meeting.ended": "会è°ã‹ã‚‰ãƒã‚°ã‚¢ã‚¦ãƒˆã—ã¾ã—ãŸ", "app.meeting.logout.duplicateUserEjectReason": "é‡è¤‡ã—ãŸãƒ¦ãƒ¼ã‚¶ãŒä¼šè°ã«å‚åŠ ã—よã†ã¨ã—ã¦ã„ã¾ã™", "app.meeting.logout.permissionEjectReason": "許å¯é•åã«ã‚ˆã‚Šå¼·åˆ¶é€€å®¤ã•ã‚Œã¾ã—ãŸ", - "app.meeting.logout.ejectedFromMeeting": "会è°ã‹ã‚‰é€€å®¤ã—ã¾ã—ãŸ", + "app.meeting.logout.ejectedFromMeeting": "会è°ã‹ã‚‰é€€å®¤ã•ã›ã‚‰ã‚Œã¾ã—ãŸ", "app.meeting.logout.validateTokenFailedEjectReason": "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ãŒç¢ºèªã§ãã¾ã›ã‚“ã§ã—ãŸ", "app.meeting.logout.userInactivityEjectReason": "一定時間æ“作ãŒãªã‹ã£ãŸãŸã‚ã€æŽ¥ç¶šãŒä¸æ–ã•ã‚Œã¾ã—ãŸ", - "app.meeting-ended.rating.legendLabel": "フィードãƒãƒƒã‚¯è©•ä¾¡", + "app.meeting-ended.rating.legendLabel": "評価ã®ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯", "app.meeting-ended.rating.starLabel": "スター", "app.modal.close": "é–‰ã˜ã‚‹", "app.modal.close.description": "変更をä¿å˜ã›ãšã«ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹", @@ -458,7 +466,7 @@ "app.dropdown.close": "é–‰ã˜ã‚‹", "app.error.400": "ä¸æ£ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆ", "app.error.401": "権é™ãŒã‚ã‚Šã¾ã›ã‚“", - "app.error.403": "会è°ã‹ã‚‰é€€å®¤ã—ã¾ã—ãŸ", + "app.error.403": "会è°ã‹ã‚‰é€€å®¤ã•ã›ã‚‰ã‚Œã¾ã—ãŸ", "app.error.404": "見ã¤ã‹ã‚Šã¾ã›ã‚“", "app.error.410": "会è°ã¯çµ‚了ã—ã¾ã—ãŸ", "app.error.500": "å•é¡ŒãŒèµ·ã“ã‚Šã¾ã—ãŸ", @@ -520,7 +528,7 @@ "app.lock-viewers.PrivateChatLable": "プライベートãƒãƒ£ãƒƒãƒˆã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã™ã‚‹", "app.lock-viewers.notesLabel": "共有ノートを編集ã™ã‚‹", "app.lock-viewers.userListLabel": "ä»–ã®è¦–è´è€…をユーザーリストã«è¡¨ç¤ºã™ã‚‹", - "app.lock-viewers.ariaTitle": "視è´è€…ã®ãƒ¢ãƒ¼ãƒ€ãƒ«è¨å®šã‚’ãƒãƒƒã‚¯ã™ã‚‹", + "app.lock-viewers.ariaTitle": "閲覧者ã®ãƒãƒƒã‚¯è¨å®šãƒ¢ãƒ¼ãƒ€ãƒ«", "app.lock-viewers.button.apply": "é©ç”¨", "app.lock-viewers.button.cancel": "ã‚ャンセル", "app.lock-viewers.locked": "ãƒãƒƒã‚¯", @@ -548,7 +556,7 @@ "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": "æ˜ åƒãŒã‚µãƒ¼ãƒã«å±Šã„ã¦ã„ã¾ã›ã‚“ (error 1020)", @@ -644,7 +652,7 @@ "app.createBreakoutRoom.join": "会è°å®¤ã«å‚åŠ ", "app.createBreakoutRoom.joinAudio": "音声ã§å‚åŠ ", "app.createBreakoutRoom.returnAudio": "音声を戻ã™", - "app.createBreakoutRoom.alreadyConnected": "会è°å®¤ã«å…¥ã£ã¦ã„ã¾ã™", + "app.createBreakoutRoom.alreadyConnected": "æ—¢ã«ä¼šè°å®¤å†…ã§ã™", "app.createBreakoutRoom.confirm": "作æˆ", "app.createBreakoutRoom.record": "録画", "app.createBreakoutRoom.numberOfRooms": "会è°å®¤æ•°", @@ -663,20 +671,20 @@ "app.createBreakoutRoom.roomTime": "{0} 分", "app.createBreakoutRoom.numberOfRoomsError": "会è°å®¤ã®æ•°ãŒæ£ã—ãè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。", "app.externalVideo.start": "æ–°ã—ã„ビデオを共有", - "app.externalVideo.title": "外部ã‹ã‚‰ã®å‹•ç”»ã‚’共有ã™ã‚‹", - "app.externalVideo.input": "外部動画URL", + "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.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.upgradeBrowser": "ブラウザã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå¤ã„å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚サãƒãƒ¼ãƒˆå¯¾è±¡ã®ãƒ–ラウザã¸ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。", "app.legacy.criosBrowser": "iOSã‚’ãŠä½¿ã„ã®å ´åˆã€Safariを使ã£ã¦ãã ã•ã„" } diff --git a/bigbluebutton-html5/private/locales/ja_JP.json b/bigbluebutton-html5/private/locales/ja_JP.json index 3517934bbce1dfb95d0c0a045f9026aa18df4b50..b5d54fbe53910402c197117c01a6707332c16f46 100644 --- a/bigbluebutton-html5/private/locales/ja_JP.json +++ b/bigbluebutton-html5/private/locales/ja_JP.json @@ -26,7 +26,7 @@ "app.captions.label": "å—幕", "app.captions.menu.close": "é–‰ã˜ã‚‹", "app.captions.menu.start": "開始", - "app.captions.menu.ariaStart": "å—幕を書ã始ã‚ã¾ã™", + "app.captions.menu.ariaStart": "å—幕を書ã込む", "app.captions.menu.ariaStartDesc": "ウィンドウを閉ã˜ã¦å—幕を編集ã™ã‚‹", "app.captions.menu.select": "使用å¯èƒ½ãªè¨€èªžã‚’é¸æŠž", "app.captions.menu.ariaSelect": "å—幕ã®è¨€èªž", @@ -43,8 +43,8 @@ "app.captions.pad.ownership": "代ã‚ã‚‹", "app.captions.pad.ownershipTooltip": "{0} å—幕ã®ã‚ªãƒ¼ãƒŠã«ãªã‚Šã¾ã™", "app.captions.pad.interimResult": "ä¸é–“çµæžœ", - "app.captions.pad.dictationStart": "ディクテーション開始", - "app.captions.pad.dictationStop": "ディクテーション終了", + "app.captions.pad.dictationStart": "å£è¿°é–‹å§‹", + "app.captions.pad.dictationStop": "å£è¿°çµ‚了", "app.captions.pad.dictationOnDesc": "音声èªè˜ã‚ªãƒ³", "app.captions.pad.dictationOffDesc": "音声èªè˜ã‚ªãƒ•", "app.note.title": "共有メモ", @@ -63,6 +63,7 @@ "app.userList.presenter": "プレゼンター", "app.userList.you": "自分", "app.userList.locked": "ãƒãƒƒã‚¯", + "app.userList.byModerator": "(Moderator)ã«ã‚ˆã‚‹", "app.userList.label": "ユーザーリスト", "app.userList.toggleCompactView.label": "コンパクトモードã«åˆ‡ã‚Šæ›¿ãˆã‚‹", "app.userList.guest": "ゲスト", @@ -71,8 +72,10 @@ "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.removeUser.label": "ユーザーを退室ã•ã›ã‚‹", + "app.userList.menu.removeConfirmation.label": "ユーザー({0})ã®é€€å®¤", + "app.userlist.menu.removeConfirmation.desc": "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã‚‚ã†ã“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã«ã¯æˆ»ã‚Œãªããªã‚Šã¾ã™ãŒã€æ§‹ã„ã¾ã›ã‚“ã‹ï¼Ÿ", + "app.userList.menu.muteUserAudio.label": "ユーザーをミュートã™ã‚‹", "app.userList.menu.unmuteUserAudio.label": "ユーザーã®ãƒŸãƒ¥ãƒ¼ãƒˆã‚’外ã™", "app.userList.userAriaLabel": "{0} {1} {2} ステータス {3}", "app.userList.menu.promoteUser.label": "モデレーターã«ã™ã‚‹", @@ -82,7 +85,7 @@ "app.userList.menu.directoryLookup.label": "ディレクトリ検索", "app.userList.menu.makePresenter.label": "プレゼンターã«ã™ã‚‹", "app.userList.userOptions.manageUsersLabel": "ユーザー管ç†", - "app.userList.userOptions.muteAllLabel": "全ユーザーをミュートã«ã™ã‚‹", + "app.userList.userOptions.muteAllLabel": "全ユーザーをミュートã™ã‚‹", "app.userList.userOptions.muteAllDesc": "ã“ã®ä¼šè°ã®å…¨ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’ミュートã™ã‚‹", "app.userList.userOptions.clearAllLabel": "全ステータスアイコンを消去ã™ã‚‹", "app.userList.userOptions.clearAllDesc": "ユーザーã®å…¨ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚¢ã‚¤ã‚³ãƒ³ã‚’消去ã™ã‚‹", @@ -111,6 +114,8 @@ "app.media.autoplayAlertDesc": "アクセスを許å¯ã—ã¾ã™", "app.media.screenshare.start": "ç”»é¢å…±æœ‰ã‚’開始ã—ã¾ã—ãŸ", "app.media.screenshare.end": "ç”»é¢å…±æœ‰ã‚’終了ã—ã¾ã—ãŸ", + "app.media.screenshare.unavailable": "ç”»é¢å…±æœ‰ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“", + "app.media.screenshare.notSupported": "ç”»é¢å…±æœ‰ã¯ã“ã®ãƒ–ラウザã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。", "app.media.screenshare.autoplayBlockedDesc": "プレゼンターã®ç”»é¢ã‚’表示ã™ã‚‹ã«ã¯ã€ã‚ãªãŸã®è¨±å¯ãŒå¿…è¦ã§ã™ã€‚", "app.media.screenshare.autoplayAllowLabel": "共有画é¢ã‚’表示ã™ã‚‹", "app.screenshare.notAllowed": "エラー:画é¢ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒè¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“。", @@ -169,6 +174,9 @@ "app.presentationUploder.rejectedError": "é¸æŠžãƒ•ã‚¡ã‚¤ãƒ«ãŒæ‹’å¦ã•ã‚Œã¾ã—ãŸã€‚ファイル形å¼ã‚’確èªã—ã¦ãã ã•ã„。", "app.presentationUploder.upload.progress": "アップãƒãƒ¼ãƒ‰ä¸ ({0}%)", "app.presentationUploder.upload.413": "ファイルãŒå¤§ãã™ãŽã¾ã™ã€‚ã„ãã¤ã‹ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«åˆ†å‰²ã—ã¦ãã ã•ã„。", + "app.presentationUploder.upload.408": "アップãƒãƒ¼ãƒ‰ãƒˆãƒ¼ã‚¯ãƒ³ã®è¦æ±‚ãŒæ™‚間切れã«ãªã‚Šã¾ã—ãŸã€‚", + "app.presentationUploder.upload.404": "エラー404:無効ãªã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ãƒˆãƒ¼ã‚¯ãƒ³", + "app.presentationUploder.upload.401": "アップãƒãƒ¼ãƒ‰ãƒˆãƒ¼ã‚¯ãƒ³ã®è¦æ±‚ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚", "app.presentationUploder.conversion.conversionProcessingSlides": "{1}ページä¸{0}ページ目を処ç†ä¸", "app.presentationUploder.conversion.genericConversionStatus": "ファイル変æ›ä¸â€¦", "app.presentationUploder.conversion.generatingThumbnail": "サムãƒã‚¤ãƒ«ä½œæˆä¸â€¦", @@ -236,7 +244,7 @@ "app.navBar.settingsDropdown.fullscreenLabel": "全画é¢è¡¨ç¤ºã«åˆ‡æ›¿", "app.navBar.settingsDropdown.settingsLabel": "è¨å®š", "app.navBar.settingsDropdown.aboutLabel": "製å“æƒ…å ±", - "app.navBar.settingsDropdown.leaveSessionLabel": "ãƒã‚°ã‚¢ã‚¦ãƒˆ", + "app.navBar.settingsDropdown.leaveSessionLabel": "退室", "app.navBar.settingsDropdown.exitFullscreenLabel": "全画é¢è¡¨ç¤ºè§£é™¤", "app.navBar.settingsDropdown.fullscreenDesc": "è¨å®šãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’全画é¢è¡¨ç¤º", "app.navBar.settingsDropdown.settingsDesc": "一般è¨å®šã‚’変更", @@ -263,7 +271,7 @@ "app.endMeeting.yesLabel": "ã¯ã„", "app.endMeeting.noLabel": "ã„ã„ãˆ", "app.about.title": "製å“æƒ…å ±", - "app.about.version": "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š", + "app.about.version": "クライアントãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š", "app.about.copyright": "Copyright:", "app.about.confirmLabel": "OK", "app.about.confirmDesc": "OK", @@ -309,14 +317,14 @@ "app.settings.main.cancel.label.description": "å¤‰æ›´ã‚’ç ´æ£„ã—è¨å®šãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’é–‰ã˜ã‚‹", "app.settings.main.save.label": "ä¿å˜", "app.settings.main.save.label.description": "変更をä¿å˜ã—è¨å®šãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’é–‰ã˜ã‚‹", - "app.settings.dataSavingTab.label": "データä¿å˜", + "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.talkingIndicator.ariaMuteDesc" : "ユーザをミュートã«ã—ã¾ã™", + "app.switch.offLabel": "切", + "app.talkingIndicator.ariaMuteDesc" : "ユーザをミュートã—ã¾ã™", "app.talkingIndicator.isTalking" : "{0} ãŒè©±ã—ã¦ã„ã¾ã™", "app.talkingIndicator.wasTalking" : "{0} ãŒè©±ã—終ãˆã¾ã—ãŸ", "app.actionsBar.actionsDropdown.actionsLabel": "アクション", @@ -328,7 +336,7 @@ "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": "ユーザåã‚’ä¿å˜ã™ã‚‹", @@ -345,8 +353,8 @@ "app.actionsBar.emojiMenu.raiseHandDesc": "質å•ãŒã‚ã‚Šã¾ã—ãŸã‚‰æŒ™æ‰‹ã—ã¦ãã ã•ã„", "app.actionsBar.emojiMenu.neutralLabel": "普通", "app.actionsBar.emojiMenu.neutralDesc": "ステータスを「普通ã€ã«ã™ã‚‹", - "app.actionsBar.emojiMenu.confusedLabel": "分ã‹ã‚‰ãªã„", - "app.actionsBar.emojiMenu.confusedDesc": "ステータスを「分ã‹ã‚‰ãªã„ã€ã«ã™ã‚‹", + "app.actionsBar.emojiMenu.confusedLabel": "ã‚ã‹ã‚‰ã‚“", + "app.actionsBar.emojiMenu.confusedDesc": "ステータスを「ã‚ã‹ã‚‰ã‚“ã€ã«ã™ã‚‹", "app.actionsBar.emojiMenu.sadLabel": "悲ã—ã„", "app.actionsBar.emojiMenu.sadDesc": "ステータスを「悲ã—ã„ã€ã«ã™ã‚‹", "app.actionsBar.emojiMenu.happyLabel": "ãƒãƒƒãƒ”ー", @@ -388,7 +396,7 @@ "app.breakoutWillCloseMessage": "時間終了。ã¾ã‚‚ãªãå°ä¼šè°å®¤ã‚’終了ã—ã¾ã™ã€‚", "app.calculatingBreakoutTimeRemaining": "残り時間を計算ä¸...", "app.audioModal.ariaTitle": "音声ウィンドウã«å‚åŠ ", - "app.audioModal.microphoneLabel": "マイク", + "app.audioModal.microphoneLabel": "音声ã§å‚åŠ ", "app.audioModal.listenOnlyLabel": "è´è¬›ã®ã¿", "app.audioModal.audioChoiceLabel": "音声ã¯ã©ã†ã—ã¾ã™ã‹ï¼Ÿ", "app.audioModal.iOSBrowser": "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„音声/ビデオ", @@ -445,10 +453,10 @@ "app.error.meeting.ended": "会è°ã‹ã‚‰ãƒã‚°ã‚¢ã‚¦ãƒˆã—ã¾ã—ãŸ", "app.meeting.logout.duplicateUserEjectReason": "é‡è¤‡ã—ãŸãƒ¦ãƒ¼ã‚¶ãŒä¼šè°ã«å‚åŠ ã—よã†ã¨ã—ã¦ã„ã¾ã™", "app.meeting.logout.permissionEjectReason": "許å¯é•åã«ã‚ˆã‚Šå¼·åˆ¶é€€å®¤ã•ã‚Œã¾ã—ãŸ", - "app.meeting.logout.ejectedFromMeeting": "会è°ã‹ã‚‰é€€å®¤ã—ã¾ã—ãŸ", + "app.meeting.logout.ejectedFromMeeting": "会è°ã‹ã‚‰é€€å®¤ã•ã›ã‚‰ã‚Œã¾ã—ãŸ", "app.meeting.logout.validateTokenFailedEjectReason": "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ãŒç¢ºèªã§ãã¾ã›ã‚“ã§ã—ãŸ", "app.meeting.logout.userInactivityEjectReason": "一定時間æ“作ãŒãªã‹ã£ãŸãŸã‚ã€æŽ¥ç¶šãŒä¸æ–ã•ã‚Œã¾ã—ãŸ", - "app.meeting-ended.rating.legendLabel": "フィードãƒãƒƒã‚¯è©•ä¾¡", + "app.meeting-ended.rating.legendLabel": "評価ã®ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯", "app.meeting-ended.rating.starLabel": "スター", "app.modal.close": "é–‰ã˜ã‚‹", "app.modal.close.description": "変更をä¿å˜ã›ãšã«ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹", @@ -458,7 +466,7 @@ "app.dropdown.close": "é–‰ã˜ã‚‹", "app.error.400": "ä¸æ£ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆ", "app.error.401": "権é™ãŒã‚ã‚Šã¾ã›ã‚“", - "app.error.403": "会è°ã‹ã‚‰é€€å®¤ã—ã¾ã—ãŸ", + "app.error.403": "会è°ã‹ã‚‰é€€å®¤ã•ã›ã‚‰ã‚Œã¾ã—ãŸ", "app.error.404": "見ã¤ã‹ã‚Šã¾ã›ã‚“", "app.error.410": "会è°ã¯çµ‚了ã—ã¾ã—ãŸ", "app.error.500": "å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸ", @@ -520,7 +528,7 @@ "app.lock-viewers.PrivateChatLable": "プライベートãƒãƒ£ãƒƒãƒˆã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã™ã‚‹", "app.lock-viewers.notesLabel": "共有ノートを編集ã™ã‚‹", "app.lock-viewers.userListLabel": "ä»–ã®é–²è¦§è€…をユーザーリストã«è¡¨ç¤ºã™ã‚‹", - "app.lock-viewers.ariaTitle": "閲覧者ã®ãƒ¢ãƒ¼ãƒ€ãƒ«è¨å®šã‚’ãƒãƒƒã‚¯ã™ã‚‹", + "app.lock-viewers.ariaTitle": "閲覧者ã®ãƒãƒƒã‚¯è¨å®šãƒ¢ãƒ¼ãƒ€ãƒ«", "app.lock-viewers.button.apply": "é©ç”¨", "app.lock-viewers.button.cancel": "ã‚ャンセル", "app.lock-viewers.locked": "ãƒãƒƒã‚¯", @@ -548,7 +556,7 @@ "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": "æ˜ åƒãŒã‚µãƒ¼ãƒã«å±Šã„ã¦ã„ã¾ã›ã‚“ (error 1020)", @@ -644,7 +652,7 @@ "app.createBreakoutRoom.join": "å‚åŠ ã™ã‚‹", "app.createBreakoutRoom.joinAudio": "音声ã§å‚åŠ ", "app.createBreakoutRoom.returnAudio": "音声を戻ã™", - "app.createBreakoutRoom.alreadyConnected": "会è°å®¤ã«å…¥ã£ã¦ã„ã¾ã™", + "app.createBreakoutRoom.alreadyConnected": "æ—¢ã«ä¼šè°å®¤å†…ã§ã™", "app.createBreakoutRoom.confirm": "作æˆ", "app.createBreakoutRoom.record": "録画", "app.createBreakoutRoom.numberOfRooms": "会è°å®¤æ•°", @@ -663,20 +671,20 @@ "app.createBreakoutRoom.roomTime": "{0} 分", "app.createBreakoutRoom.numberOfRoomsError": "会è°å®¤ã®æ•°ãŒæ£ã—ãè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。", "app.externalVideo.start": "æ–°ã—ã„ビデオを共有", - "app.externalVideo.title": "外部ã‹ã‚‰ã®å‹•ç”»ã‚’共有ã™ã‚‹", - "app.externalVideo.input": "外部動画URL", + "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.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.upgradeBrowser": "ブラウザã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå¤ã„å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚サãƒãƒ¼ãƒˆå¯¾è±¡ã®ãƒ–ラウザã¸ã‚¢ãƒƒãƒ—グレードã—ã¦ãã ã•ã„。", "app.legacy.criosBrowser": "iOSã§ã¯ãƒ•ãƒ«ã‚µãƒãƒ¼ãƒˆã®ãŸã‚ã«Safariã‚’ãŠä½¿ã„ãã ã•ã„。" } diff --git a/bigbluebutton-html5/private/locales/kn.json b/bigbluebutton-html5/private/locales/kn.json new file mode 100644 index 0000000000000000000000000000000000000000..9bb3d2d453a03f88bd60f70c34fabac8a15a6553 --- /dev/null +++ b/bigbluebutton-html5/private/locales/kn.json @@ -0,0 +1,687 @@ +{ + "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": "ಮà³à²šà³à²šà²¿ {0}", + "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.unavailable": "ಸà³à²•à³à²°à³€à²¨à³â€Œà²¶à³‡à²°à³ ಲà²à³à²¯à²µà²¿à²²à³à²²", + "app.media.screenshare.autoplayBlockedDesc": "ನಿರೂಪಕರ ಪರದೆಯನà³à²¨à³ ನಿಮಗೆ ತೋರಿಸಲೠನಮಗೆ ನಿಮà³à²® ಅನà³à²®à²¤à²¿ ಬೇಕà³.", + "app.media.screenshare.autoplayAllowLabel": "ಹಂಚಿದ ಪರದೆಯನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²¿", + "app.screenshare.notAllowed": "ದೋಷ: ಪರದೆಯನà³à²¨à³ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²²à³ ಅನà³à²®à²¤à²¿ ನೀಡಲಾಗಿಲà³à²².", + "app.screenshare.notSupportedError": "ದೋಷ: ಸà³à²°à²•à³à²·à²¿à²¤ (ಎಸà³â€Œà²Žà²¸à³â€Œà²Žà²²à³) ಡೊಮೇನà³â€Œà²—ಳಲà³à²²à²¿ ಮಾತà³à²° ಸà³à²•à³à²°à³€à²¨à³â€Œà²¶à³‡à²°à²¿à²‚ಗೠಅನà³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à²²à²¾à²—ಿದೆ", + "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": "ಬà³à²°à³‡à²•à³ out ಟೠಒಂದೠನಿಮಿಷದಲà³à²²à²¿ ಮà³à²šà³à²šà³à²¤à³à²¤à²¿à²¦à³†.", + "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": "ನಿರೂಪಕ ಆಗಿ ನೀವೠಯಾವà³à²¦à³‡ ಕಚೇರಿ ಡಾಕà³à²¯à³à²®à³†à²‚ಟೠಅಥವಾ ಪಿಡಿಎಫೠಫೈಲೠಅನà³à²¨à³ ಅಪà³à²²à³‹à²¡à³ ಮಾಡà³à²µ ಸಾಮರà³à²¥à³à²¯à²µà²¨à³à²¨à³ ಹೊಂದಿದà³à²¦à³€à²°à²¿. ಉತà³à²¤à²® ಫಲಿತಾಂಶಗಳಿಗಾಗಿ ನಾವೠಪಿಡಿಎಫೠಫೈಲೠಅನà³à²¨à³ ಶಿಫಾರಸೠಮಾಡà³à²¤à³à²¤à³‡à²µà³†. ಬಲà²à²¾à²—ದಲà³à²²à²¿à²°à³à²µ ವೃತà³à²¤à²¦ ಚೆಕà³â€Œà²¬à²¾à²•à³à²¸à³ ಬಳಸಿ ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಆಯà³à²•à³† ಮಾಡಲಾಗಿದೆ ಎಂದೠಖಚಿತಪಡಿಸಿಕೊಳà³à²³à²¿.", + "app.presentationUploder.uploadLabel": "ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಿ", + "app.presentationUploder.confirmLabel": "ದೃಢೀಕರಿಸಿ", + "app.presentationUploder.confirmDesc": "ನಿಮà³à²® ಬದಲಾವಣೆಗಳನà³à²¨à³ ಉಳಿಸಿ ಮತà³à²¤à³ ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.presentationUploder.dismissLabel": "ರದà³à²¦à³à²®à²¾à²¡à²¿", + "app.presentationUploder.dismissDesc": "ಮೋಡಲೠವಿಂಡೋವನà³à²¨à³ ಮà³à²šà³à²šà²¿ ಮತà³à²¤à³ ನಿಮà³à²® ಬದಲಾವಣೆಗಳನà³à²¨à³ ತà³à²¯à²œà²¿à²¸à²¿", + "app.presentationUploder.dropzoneLabel": "ಕಡತಗಳನà³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಲೠಇಲà³à²²à²¿ ಎಳೆಯಿರಿ", + "app.presentationUploder.dropzoneImagesLabel": "ಚಿತà³à²°à²—ಳನà³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಲೠಇಲà³à²²à²¿ ಎಳೆಯಿರಿ", + "app.presentationUploder.browseFilesLabel": "ಅಥವಾ ಕಡತಗಳಿಗಾಗಿ ಬà³à²°à³Œà²¸à³ ಮಾಡಿ", + "app.presentationUploder.browseImagesLabel": "ಅಥವಾ ಚಿತà³à²°à²—ಳಿಗಾಗಿ ಬà³à²°à³Œà²¸à³ ಮಾಡಿ / ಸೆರೆಹಿಡಿಯಿರಿ", + "app.presentationUploder.fileToUpload": "ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಲೠ...", + "app.presentationUploder.currentBadge": "ಪà³à²°à²¸à³à²¤à³à²¤", + "app.presentationUploder.rejectedError": "ಆಯà³à²¦ ಕಡತ (ಗಳನà³à²¨à³) ತಿರಸà³à²•à²°à²¿à²¸à²²à²¾à²—ಿದೆ. ದಯವಿಟà³à²Ÿà³ ಕಡತ ಪà³à²°à²•à²¾à²° (ಗಳನà³à²¨à³) ಪರಿಶೀಲಿಸಿ.", + "app.presentationUploder.upload.progress": "ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಲಾಗà³à²¤à³à²¤à²¿à²¦à³† ({0}%)", + "app.presentationUploder.upload.413": "ಕಡತ ತà³à²‚ಬಾ ದೊಡà³à²¡à²¦à²¾à²—ಿದೆ. ದಯವಿಟà³à²Ÿà³ ಬಹೠಕಡತಗಳಾಗಿ ವಿà²à²œà²¿à²¸à²¿.", + "app.presentationUploder.upload.408": "ಅಪà³à²²à³‹à²¡à³ ಟೋಕನೠಟೈಮà³à²”ಟೠಆಗಿದೆ.", + "app.presentationUploder.upload.404": "404: ಅಪà³à²²à³‹à²¡à³ ಟೋಕನೠಸರಿಯಿಲà³à²²", + "app.presentationUploder.upload.401": "ಪà³à²°à³†à²¸à²‚ಟೇಶನೠಅಪà³à²²à³‹à²¡à³ ಮಾಡà³à²µ ಕೋರಿಕೆ ವಿಫಲವಾಗಿದೆ.", + "app.presentationUploder.conversion.conversionProcessingSlides": "{0} ನ {1} ಪà³à²Ÿà²µà²¨à³à²¨à³ ಪà³à²°à²•à³à²°à²¿à²¯à³†à²—ೊಳಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†", + "app.presentationUploder.conversion.genericConversionStatus": "ಕಡತವನà³à²¨à³ ಪರಿವರà³à²¤à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³† ...", + "app.presentationUploder.conversion.generatingThumbnail": "ಥಂಬà³â€Œà²¨à³‡à²²à³â€Œà²—ಳನà³à²¨à³ ರಚಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³† ...", + "app.presentationUploder.conversion.generatedSlides": "ಜಾರà³à²•à²—ಳನà³à²¨à³ ರಚಿಸಲಾಗಿದೆ ...", + "app.presentationUploder.conversion.generatingSvg": "ಎಸà³â€Œà²µà²¿à²œà²¿ ಚಿತà³à²°à²—ಳನà³à²¨à³ ರಚಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³† ...", + "app.presentationUploder.conversion.pageCountExceeded": "ಪà³à²Ÿà²—ಳ ಸಂಖà³à²¯à³† ಮೀರಿದೆ. ದಯವಿಟà³à²Ÿà³ ಫೈಲೠಅನà³à²¨à³ ಬಹೠಫೈಲà³â€Œà²—ಳಾಗಿ ವಿà²à²œà²¿à²¸à²¿.", + "app.presentationUploder.conversion.officeDocConversionInvalid": "ಕಚೇರಿ ಡಾಕà³à²¯à³à²®à³†à²‚ಟೠಪà³à²°à²•à³à²°à²¿à²¯à³†à²—ೊಳಿಸಲೠವಿಫಲವಾಗಿದೆ. ಬದಲಿಗೆ ಪಿಡಿಎಫೠಅನà³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಿ.", + "app.presentationUploder.conversion.officeDocConversionFailed": "ಕಚೇರಿ ಡಾಕà³à²¯à³à²®à³†à²‚ಟೠಪà³à²°à²•à³à²°à²¿à²¯à³†à²—ೊಳಿಸಲೠವಿಫಲವಾಗಿದೆ. ಬದಲಿಗೆ ಪಿಡಿಎಫೠಅನà³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಿ.", + "app.presentationUploder.conversion.pdfHasBigPage": "ನಮಗೆ ಪಿಡಿಎಫೠಫೈಲೠಅನà³à²¨à³ ಪರಿವರà³à²¤à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಲಿಲà³à²², ದಯವಿಟà³à²Ÿà³ ಅದನà³à²¨à³ ಅತà³à²¯à³à²¤à³à²¤à²®à²µà²¾à²—ಿಸಲೠಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿", + "app.presentationUploder.conversion.timeout": "ಅಯà³à²¯à³Š, ಪರಿವರà³à²¤à²¨à³† ತà³à²‚ಬಾ ಸಮಯ ತೆಗೆದà³à²•à³Šà²‚ಡಿತà³", + "app.presentationUploder.conversion.pageCountFailed": "ಪà³à²Ÿà²—ಳ ಸಂಖà³à²¯à³†à²¯à²¨à³à²¨à³ ನಿರà³à²§à²°à²¿à²¸à²²à³ ವಿಫಲವಾಗಿದೆ.", + "app.presentationUploder.isDownloadableLabel": "ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಡೌನà³â€Œà²²à³‹à²¡à³ ಮಾಡಲೠಅನà³à²®à²¤à²¿à²¸à²¬à³‡à²¡à²¿", + "app.presentationUploder.isNotDownloadableLabel": "ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಡೌನà³â€Œà²²à³‹à²¡à³ ಮಾಡಲೠಅನà³à²®à²¤à²¿à²¸à²¿", + "app.presentationUploder.removePresentationLabel": "ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•à²¿", + "app.presentationUploder.setAsCurrentPresentation": "ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಪà³à²°à²¸à³à²¤à³à²¤ ಎಂದೠಹೊಂದಿಸಿ", + "app.presentationUploder.tableHeading.filename": "ಕಡತದ ಹೆಸರà³", + "app.presentationUploder.tableHeading.options": "ಆಯà³à²•à³†à²—ಳà³", + "app.presentationUploder.tableHeading.status": "ಸà³à²¥à²¿à²¤à²¿", + "app.poll.pollPaneTitle": "ಮತದಾನ", + "app.poll.quickPollTitle": "ತà³à²µà²°à²¿à²¤ ಸಮೀಕà³à²·à³†", + "app.poll.hidePollDesc": "ಸಮೀಕà³à²·à³† ಮೆನೠಫಲಕವನà³à²¨à³ ಮರೆಮಾಡà³à²¤à³à²¤à²¦à³†", + "app.poll.customPollInstruction": "ಕಸà³à²Ÿà²®à³ ಸಮೀಕà³à²·à³†à²¯à²¨à³à²¨à³ ರಚಿಸಲà³, ಕೆಳಗಿನ ಬಟನೠಆಯà³à²•à³†à²®à²¾à²¡à²¿ ಮತà³à²¤à³ ನಿಮà³à²® ಆಯà³à²•à³†à²—ಳನà³à²¨à³ ನಮೂದಿಸಿ.", + "app.poll.quickPollInstruction": "ನಿಮà³à²® ಸಮೀಕà³à²·à³†à²¯à²¨à³à²¨à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²²à³ ಕೆಳಗಿನ ಆಯà³à²•à³†à²¯à²¨à³à²¨à³ ಆರಿಸಿ.", + "app.poll.customPollLabel": "ಕಸà³à²Ÿà²®à³ ಸಮೀಕà³à²·à³†", + "app.poll.startCustomLabel": "ಕಸà³à²Ÿà²®à³ ಸಮೀಕà³à²·à³†à²¯à²¨à³à²¨à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.poll.activePollInstruction": "ನಿಮà³à²® ಸಮೀಕà³à²·à³†à²—ೆ ನೇರ ಪà³à²°à²¤à²¿à²•à³à²°à²¿à²¯à³†à²—ಳನà³à²¨à³ ನೋಡಲೠಈ ಫಲಕವನà³à²¨à³ ಮà³à²•à³à²¤à²µà²¾à²—ಿ ಬಿಡಿ. ನೀವೠಸಿದà³à²§à²°à²¾à²¦à²¾à²—, ಫಲಿತಾಂಶಗಳನà³à²¨à³ ಪà³à²°à²•à²Ÿà²¿à²¸à²²à³ ಮತà³à²¤à³ ಮತದಾನವನà³à²¨à³ ಕೊನೆಗೊಳಿಸಲೠ'ಮತದಾನ ಫಲಿತಾಂಶಗಳನà³à²¨à³ ಪà³à²°à²•à²Ÿà²¿à²¸à²¿' ಆಯà³à²•à³†à²®à²¾à²¡à²¿.", + "app.poll.publishLabel": "ಮತದಾನ ಫಲಿತಾಂಶಗಳನà³à²¨à³ ಪà³à²°à²•à²Ÿà²¿à²¸à²¿", + "app.poll.backLabel": "ಮತದಾನದ ಆಯà³à²•à³†à²—ಳಿಗೆ ಹಿಂತಿರà³à²—ಿ", + "app.poll.closeLabel": "ಮà³à²šà³à²šà²¿", + "app.poll.waitingLabel": "ಪà³à²°à²¤à²¿à²•à³à²°à²¿à²¯à³†à²—ಳಿಗಾಗಿ ಕಾಯಲಾಗà³à²¤à³à²¤à²¿à²¦à³† ({0} / {1})", + "app.poll.ariaInputCount": "{1} ನ ಕಸà³à²Ÿà²®à³ ಪೋಲೠಆಯà³à²•à³† {0}", + "app.poll.customPlaceholder": "ಮತದಾನ ಆಯà³à²•à³†à²¯à²¨à³à²¨à³ ಸೇರಿಸಿ", + "app.poll.noPresentationSelected": "ಯಾವà³à²¦à³‡ ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಆಯà³à²•à³† ಮಾಡಿಲà³à²²! ದಯವಿಟà³à²Ÿà³ ಒಂದನà³à²¨à³ ಆರಿಸಿ.", + "app.poll.clickHereToSelect": "ಆಯà³à²•à³† ಮಾಡಲೠಇಲà³à²²à²¿ ಕà³à²²à²¿à²•à³ ಮಾಡಿ", + "app.poll.t": "ಸರಿ", + "app.poll.f": "ತಪà³à²ªà³", + "app.poll.tf": "ಸರಿ / ತಪà³à²ªà³", + "app.poll.y": "ಹೌದà³", + "app.poll.n": "ಇಲà³à²²", + "app.poll.yn": "ಹೌದೠ/ ಅಲà³à²²", + "app.poll.a2": "A / B", + "app.poll.a3": "A / B / C", + "app.poll.a4": "A / B / C / D", + "app.poll.a5": "A / B / C / D / E", + "app.poll.answer.true": "ಸರಿ", + "app.poll.answer.false": "ತಪà³à²ªà³", + "app.poll.answer.yes": "ಹೌದà³", + "app.poll.answer.no": "ಇಲà³à²²", + "app.poll.answer.a": "A", + "app.poll.answer.b": "B", + "app.poll.answer.c": "C", + "app.poll.answer.d": "D", + "app.poll.answer.e": "E", + "app.poll.liveResult.usersTitle": "ಬಳಕೆದಾರರà³", + "app.poll.liveResult.responsesTitle": "ಪà³à²°à²¤à²¿à²•à³à²°à²¿à²¯à³†", + "app.polling.pollingTitle": "ಮತದಾನದ ಆಯà³à²•à³†à²—ಳà³", + "app.polling.pollAnswerLabel": "ಸಮೀಕà³à²·à³†à²¯ ಉತà³à²¤à²° {0}", + "app.polling.pollAnswerDesc": "{0} ಗೆ ಮತ ಚಲಾಯಿಸಲೠಈ ಆಯà³à²•à³†à²¯à²¨à³à²¨à³ ಆರಿಸಿ", + "app.failedMessage": "ಕà³à²·à²®à³†à²¯à²¾à²šà²¿à²¸à²¿, ಸರà³à²µà²°à³â€Œà²—ೆ ಸಂಪರà³à²•à²¿à²¸à²²à³ ತೊಂದರೆ.", + "app.downloadPresentationButton.label": "ಮೂಲ ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಡೌನà³â€Œà²²à³‹à²¡à³ ಮಾಡಿ", + "app.connectingMessage": "ಸಂಪರà³à²•à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³† ...", + "app.waitingMessage": "ಸಂಪರà³à²• ಕಡಿತಗೊಂಡಿದೆ. {0} ಸೆಕೆಂಡà³à²—ಳಲà³à²²à²¿ ಮರà³à²¸à²‚ಪರà³à²•à²¿à²¸à²²à³ ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à³à²¤à³à²¤à²¿à²¦à³† ...", + "app.retryNow": "ಈಗ ಮತà³à²¤à³† ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿", + "app.navBar.settingsDropdown.optionsLabel": "ಆಯà³à²•à³†à²—ಳà³", + "app.navBar.settingsDropdown.fullscreenLabel": "ಪೂರà³à²£à²ªà²°à²¦à³† ಮಾಡಿ", + "app.navBar.settingsDropdown.settingsLabel": "ಸಂಯೋಜನೆಗಳà³", + "app.navBar.settingsDropdown.aboutLabel": "ಬಗà³à²—ೆ", + "app.navBar.settingsDropdown.leaveSessionLabel": "ಲಾಗೠಔಟà³", + "app.navBar.settingsDropdown.exitFullscreenLabel": "ಪೂರà³à²£à²ªà²°à²¦à³† ನಿರà³à²—ಮಿಸಿ", + "app.navBar.settingsDropdown.fullscreenDesc": "ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳ ಮೆನà³à²µà²¨à³à²¨à³ ಪೂರà³à²£à²ªà²°à²¦à³† ಮಾಡಿ", + "app.navBar.settingsDropdown.settingsDesc": "ಸಾಮಾನà³à²¯ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳನà³à²¨à³ ಬದಲಾಯಿಸಿ", + "app.navBar.settingsDropdown.aboutDesc": "ಕà³à²²à³ˆà²‚ಟೠಬಗà³à²—ೆ ಮಾಹಿತಿಯನà³à²¨à³ ತೋರಿಸಿ", + "app.navBar.settingsDropdown.leaveSessionDesc": "ಸà²à³†à²¯à²¨à³à²¨à³ ಬಿಡಿ", + "app.navBar.settingsDropdown.exitFullscreenDesc": "ಪೂರà³à²£à²ªà²°à²¦à³† ಮೋಡà³â€Œà²¨à²¿à²‚ದ ನಿರà³à²—ಮಿಸಿ", + "app.navBar.settingsDropdown.hotkeysLabel": "ಕೀಬೋರà³à²¡à³ ಶಾರà³à²Ÿà³â€Œà²•à²Ÿà³â€Œà²—ಳà³", + "app.navBar.settingsDropdown.hotkeysDesc": "ಲà²à³à²¯à²µà²¿à²°à³à²µ ಕೀಬೋರà³à²¡à³ ಶಾರà³à²Ÿà³â€Œà²•à²Ÿà³â€Œà²—ಳ ಪಟà³à²Ÿà²¿", + "app.navBar.settingsDropdown.helpLabel": "ಸಹಾಯ", + "app.navBar.settingsDropdown.helpDesc": "ವೀಡಿಯೊ ಟà³à²¯à³à²Ÿà³‹à²°à²¿à²¯à²²à³à²—ಳಿಗೆ ಬಳಕೆದಾರರನà³à²¨à³ ಲಿಂಕೠಮಾಡà³à²¤à³à²¤à²¦à³† (ಹೊಸ ಟà³à²¯à²¾à²¬à³ ತೆರೆಯà³à²¤à³à²¤à²¦à³†)", + "app.navBar.settingsDropdown.endMeetingDesc": "ಪà³à²°à²¸à³à²¤à³à²¤ ಸà²à³†à²¯à²¨à³à²¨à³ ಕೊನೆಗೊಳಿಸà³à²¤à³à²¤à²¦à³†", + "app.navBar.settingsDropdown.endMeetingLabel": "ಸà²à³†à²¯à²¨à³à²¨à³ ಕೊನೆಗೊಳಿಸಿ", + "app.navBar.userListToggleBtnLabel": "ಬಳಕೆದಾರರ ಪಟà³à²Ÿà²¿ ಟಾಗಲೠಮಾಡಿ", + "app.navBar.toggleUserList.ariaLabel": "ಬಳಕೆದಾರರೠಮತà³à²¤à³ ಸಂದೇಶಗಳೠಟಾಗಲೠಆಗà³à²¤à³à²¤à²µà³†", + "app.navBar.toggleUserList.newMessages": "ಹೊಸ ಸಂದೇಶ ಅಧಿಸೂಚನೆಯೊಂದಿಗೆ", + "app.navBar.recording": "ಈ ಅಧಿವೇಶನವನà³à²¨à³ ದಾಖಲಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†", + "app.navBar.recording.on": "ರೆಕಾರà³à²¡à²¿à²‚ಗà³", + "app.navBar.recording.off": "ರೆಕಾರà³à²¡à²¿à²‚ಗೠಮಾಡà³à²¤à³à²¤à²¿à²²à³à²²", + "app.navBar.emptyAudioBrdige": "ಸಕà³à²°à²¿à²¯ ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಇಲà³à²². ಈ ರೆಕಾರà³à²¡à²¿à²‚ಗà³â€Œà²—ೆ ಆಡಿಯೊ ಸೇರಿಸಲೠನಿಮà³à²® ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಹಂಚಿಕೊಳà³à²³à²¿.", + "app.leaveConfirmation.confirmLabel": "ಹೊರಬನà³à²¨à²¿", + "app.leaveConfirmation.confirmDesc": "ನಿಮà³à²®à²¨à³à²¨à³ ಸà²à³†à²¯à²¿à²‚ದ ಹೊರಹಾಕà³à²¤à³à²¤à²¦à³†", + "app.endMeeting.title": "ಸà²à³†à²¯à²¨à³à²¨à³ ಕೊನೆಗೊಳಿಸಿ", + "app.endMeeting.description": "ಈ ಅಧಿವೇಶನವನà³à²¨à³ ಕೊನೆಗೊಳಿಸಲೠನೀವೠಖಚಿತವಾಗಿ ಬಯಸà³à²µà²¿à²°à²¾?", + "app.endMeeting.yesLabel": "ಹೌದà³", + "app.endMeeting.noLabel": "ಇಲà³à²²", + "app.about.title": "ಬಗà³à²—ೆ", + "app.about.version": "ಗà³à²°à²¾à²¹à²• ನಿರà³à²®à²¾à²£:", + "app.about.copyright": "ಕೃತಿಸà³à²µà²¾à²®à³à²¯:", + "app.about.confirmLabel": "ಸರಿ", + "app.about.confirmDesc": "ಸರಿ", + "app.about.dismissLabel": "ರದà³à²¦à³à²®à²¾à²¡à²¿", + "app.about.dismissDesc": "ಕà³à²²à³ˆà²‚ಟೠಮಾಹಿತಿಯ ಬಗà³à²—ೆ ಮà³à²šà³à²šà²¿", + "app.actionsBar.changeStatusLabel": "ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಬದಲಾಯಿಸಿ", + "app.actionsBar.muteLabel": "ಸà³à²¥à²¬à³à²§ ಮಾಡಿ ", + "app.actionsBar.unmuteLabel": "ಸà³à²¥à²¬à³à²§à²¦à²¿à²‚ದ ಹೊರಬನà³à²¨à²¿", + "app.actionsBar.camOffLabel": "ಕà³à²¯à²¾à²®à³†à²°à²¾ ಆಫೠಆಗಿದೆ", + "app.actionsBar.raiseLabel": "ಎತà³à²¤à³", + "app.actionsBar.label": "ಕà³à²°à²¿à²¯à³†à²—ಳ ಪಟà³à²Ÿà²¿", + "app.actionsBar.actionsDropdown.restorePresentationLabel": "ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಮರà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¿", + "app.actionsBar.actionsDropdown.restorePresentationDesc": "ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಮà³à²šà³à²šà²¿à²¦ ನಂತರ ಅದನà³à²¨à³ ಪà³à²¨à²ƒà²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ಬಟನà³", + "app.screenshare.screenShareLabel" : "ಪರದೆಯ ಪಾಲà³", + "app.submenu.application.applicationSectionTitle": "ಅಪà³à²²à²¿à²•à³‡à²¶à²¨à³", + "app.submenu.application.animationsLabel": "ಅನಿಮೇಷನà³", + "app.submenu.application.audioAlertLabel": "ಚಾಟà³â€Œà²—ಾಗಿ ಆಡಿಯೊ ಎಚà³à²šà²°à²¿à²•à³†à²—ಳà³", + "app.submenu.application.pushAlertLabel": "ಚಾಟà³â€Œà²—ಾಗಿ ಪà³à²Ÿà²¿à²•à³† ಎಚà³à²šà²°à²¿à²•à³†à²—ಳà³", + "app.submenu.application.userJoinAudioAlertLabel": "ಬಳಕೆದಾರರ ಸೇರà³à²ªà²¡à³†à²—ಾಗಿ ಆಡಿಯೊ ಎಚà³à²šà²°à²¿à²•à³†à²—ಳà³", + "app.submenu.application.userJoinPushAlertLabel": "ಬಳಕೆದಾರ ಸೇರà³à²ªà²¡à³†à²—ಾಗಿ ಪà³à²Ÿà²¿à²µ ಎಚà³à²šà²°à²¿à²•à³†à²—ಳà³", + "app.submenu.application.fontSizeControlLabel": "ಅಕà³à²·à²° ಗಾತà³à²°", + "app.submenu.application.increaseFontBtnLabel": "ಅಪà³à²²à²¿à²•à³‡à²¶à²¨à³ ಅಕà³à²·à²° ವಿನà³à²¯à²¾à²¸ ಗಾತà³à²°à²µà²¨à³à²¨à³ ಹೆಚà³à²šà²¿à²¸à²¿", + "app.submenu.application.decreaseFontBtnLabel": "ಅಪà³à²²à²¿à²•à³‡à²¶à²¨à³ ವಿನà³à²¯à²¾à²¸ ಗಾತà³à²°à²µà²¨à³à²¨à³ ಕಡಿಮೆ ಮಾಡಿ", + "app.submenu.application.currentSize": "ಪà³à²°à²¸à³à²¤à³à²¤ {0}", + "app.submenu.application.languageLabel": "ಅಪà³à²²à²¿à²•à³‡à²¶à²¨à³ à²à²¾à²·à³†", + "app.submenu.application.languageOptionLabel": "à²à²¾à²·à³†à²¯à²¨à³à²¨à³ ಆರಿಸಿ", + "app.submenu.application.noLocaleOptionLabel": "ಸಕà³à²°à²¿à²¯ ಸà³à²¥à²³à²—ಳಿಲà³à²²", + "app.submenu.audio.micSourceLabel": "ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಮೂಲ", + "app.submenu.audio.speakerSourceLabel": "ಸà³à²ªà³€à²•à²°à³ ಮೂಲ", + "app.submenu.audio.streamVolumeLabel": "ನಿಮà³à²® ಆಡಿಯೊ ಸà³à²Ÿà³à²°à³€à²®à³ ಪರಿಮಾಣ", + "app.submenu.video.title": "ವೀಡಿಯೊ", + "app.submenu.video.videoSourceLabel": "ಮೂಲವನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²¿", + "app.submenu.video.videoOptionLabel": "ವೀಕà³à²·à²£à³† ಮೂಲವನà³à²¨à³ ಆರಿಸಿ", + "app.submenu.video.videoQualityLabel": "ವೀಡಿಯೊ ಗà³à²£à²®à²Ÿà³à²Ÿ", + "app.submenu.video.qualityOptionLabel": "ವೀಡಿಯೊ ಗà³à²£à²®à²Ÿà³à²Ÿà²µà²¨à³à²¨à³ ಆರಿಸಿ", + "app.submenu.video.participantsCamLabel": "à²à²¾à²—ವಹಿಸà³à²µà²µà²° ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³â€Œà²—ಳನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³†", + "app.settings.applicationTab.label": "ಅಪà³à²²à²¿à²•à³‡à²¶à²¨à³", + "app.settings.audioTab.label": "ಆಡಿಯೋ", + "app.settings.videoTab.label": "ವೀಡಿಯೊ", + "app.settings.usersTab.label": "à²à²¾à²—ವಹಿಸà³à²µà²µà²°à³", + "app.settings.main.label": "ಸಂಯೋಜನೆಗಳà³", + "app.settings.main.cancel.label": "ರದà³à²¦à³à²®à²¾à²¡à²¿", + "app.settings.main.cancel.label.description": "ಬದಲಾವಣೆಗಳನà³à²¨à³ ತಿರಸà³à²•à²°à²¿à²¸à³à²¤à³à²¤à²¦à³† ಮತà³à²¤à³ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳ ಮೆನà³à²µà²¨à³à²¨à³ ಮà³à²šà³à²šà³à²¤à³à²¤à²¦à³†", + "app.settings.main.save.label": "ಉಳಿಸಿ", + "app.settings.main.save.label.description": "ಬದಲಾವಣೆಗಳನà³à²¨à³ ಉಳಿಸà³à²¤à³à²¤à²¦à³† ಮತà³à²¤à³ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳ ಮೆನà³à²µà²¨à³à²¨à³ ಮà³à²šà³à²šà³à²¤à³à²¤à²¦à³†", + "app.settings.dataSavingTab.label": "ಡೇಟಾ ಉಳಿತಾಯ", + "app.settings.dataSavingTab.webcam": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³â€Œà²—ಳನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಿ", + "app.settings.dataSavingTab.screenShare": "ಡೆಸà³à²•à³â€Œà²Ÿà²¾à²ªà³ ಹಂಚಿಕೆಯನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಿ", + "app.settings.dataSavingTab.description": "ನಿಮà³à²® ಬà³à²¯à²¾à²‚ಡà³â€Œà²µà²¿à²¡à³à²¤à³ ಉಳಿಸಲೠಪà³à²°à²¸à³à²¤à³à²¤ ಪà³à²°à²¦à²°à³à²¶à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¿à²°à³à²µà²¦à²¨à³à²¨à³ ಹೊಂದಿಸಿ.", + "app.settings.save-notification.label": "ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳನà³à²¨à³ ಉಳಿಸಲಾಗಿದೆ", + "app.switch.onLabel": "ಆನೠಆಗಿದೆ", + "app.switch.offLabel": "ಆರಿಸಿ", + "app.talkingIndicator.ariaMuteDesc" : "ಬಳಕೆದಾರರನà³à²¨à³ ಮà³à²¯à³‚ಟೠಮಾಡಲೠಆಯà³à²•à³†à²®à²¾à²¡à²¿", + "app.talkingIndicator.isTalking" : "{0} ಮಾತನಾಡà³à²¤à³à²¤à²¿à²¦à³†", + "app.talkingIndicator.wasTalking" : "{0} ಮಾತನಾಡà³à²µà³à²¦à²¨à³à²¨à³ ನಿಲà³à²²à²¿à²¸à²¿à²¦à³†", + "app.actionsBar.actionsDropdown.actionsLabel": "ಕà³à²°à²¿à²¯à³†à²—ಳà³", + "app.actionsBar.actionsDropdown.presentationLabel": "ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಿ", + "app.actionsBar.actionsDropdown.initPollLabel": "ಸಮೀಕà³à²·à³†à²¯à²¨à³à²¨à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.actionsBar.actionsDropdown.desktopShareLabel": "ನಿಮà³à²® ಪರದೆಯನà³à²¨à³ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "ಸà³à²•à³à²°à³€à²¨à³â€Œà²¶à³‡à²°à³ ಲಾಕೠಮಾಡಲಾಗಿದೆ", + "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "ನಿಮà³à²® ಪರದೆಯನà³à²¨à³ ಹಂಚಿಕೊಳà³à²³à³à²µà³à²¦à²¨à³à²¨à³ ನಿಲà³à²²à²¿à²¸à²¿", + "app.actionsBar.actionsDropdown.presentationDesc": "ನಿಮà³à²® ಪà³à²°à²¸à³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಿ", + "app.actionsBar.actionsDropdown.initPollDesc": "ಸಮೀಕà³à²·à³†à²¯à²¨à³à²¨à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.actionsBar.actionsDropdown.desktopShareDesc": "ನಿಮà³à²® ಪರದೆಯನà³à²¨à³ ಇತರರೊಂದಿಗೆ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "ನಿಮà³à²® ಪರದೆಯನà³à²¨à³ ಹಂಚಿಕೊಳà³à²³à³à²µà³à²¦à²¨à³à²¨à³ ನಿಲà³à²²à²¿à²¸à²¿", + "app.actionsBar.actionsDropdown.pollBtnLabel": "ಸಮೀಕà³à²·à³†à²¯à²¨à³à²¨à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.actionsBar.actionsDropdown.pollBtnDesc": "ಮತದಾನ ಫಲಕವನà³à²¨à³ ಟಾಗಲೠಮಾಡà³à²¤à³à²¤à²¦à³†", + "app.actionsBar.actionsDropdown.saveUserNames": "ಬಳಕೆದಾರರ ಹೆಸರà³à²—ಳನà³à²¨à³ ಉಳಿಸಿ", + "app.actionsBar.actionsDropdown.createBreakoutRoom": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೊಠಡಿಗಳನà³à²¨à³ ರಚಿಸಿ", + "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "ಪà³à²°à²¸à³à²¤à³à²¤ ಸà²à³†à²¯à²¨à³à²¨à³ ವಿà²à²œà²¿à²¸à²²à³ ಬà³à²°à³‡à²•à³â€Œ ಔಟà³à²—ಳನà³à²¨à³ ರಚಿಸಿ", + "app.actionsBar.actionsDropdown.captionsLabel": "ಮà³à²šà³à²šà²¿à²¦ ಶೀರà³à²·à²¿à²•à³†à²—ಳನà³à²¨à³ ಬರೆಯಿರಿ", + "app.actionsBar.actionsDropdown.captionsDesc": "ಶೀರà³à²·à²¿à²•à³†à²—ಳ ಫಲಕವನà³à²¨à³ ಟಾಗಲೠಮಾಡà³à²¤à³à²¤à²¦à³†", + "app.actionsBar.actionsDropdown.takePresenter": "ಪà³à²°à³†à²¸à³†à²‚ಟರೠತೆಗೆದà³à²•à³Šà²³à³à²³à²¿", + "app.actionsBar.actionsDropdown.takePresenterDesc": "ನಿಮà³à²®à²¨à³à²¨à³ ಹೊಸ ನಿರೂಪಕರಾಗಿ ನಿಯೋಜಿಸಿ", + "app.actionsBar.emojiMenu.statusTriggerLabel": "ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಹೊಂದಿಸಿ", + "app.actionsBar.emojiMenu.awayLabel": "ದೂರ", + "app.actionsBar.emojiMenu.awayDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ದೂರಕà³à²•à³† ಬದಲಾಯಿಸಿ", + "app.actionsBar.emojiMenu.raiseHandLabel": "ಎತà³à²¤à³", + "app.actionsBar.emojiMenu.raiseHandDesc": "ಪà³à²°à²¶à³à²¨à³† ಕೇಳಲೠನಿಮà³à²® ಕೈ ಎತà³à²¤à²¿", + "app.actionsBar.emojiMenu.neutralLabel": "ತೀರà³à²®à²¾à²¨à²µà²¾à²—ಿಲà³à²²", + "app.actionsBar.emojiMenu.neutralDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²§à²°à²¿à²¸à²¦ ಸà³à²¥à²¿à²¤à²¿à²—ೆ ಬದಲಾಯಿಸಿ", + "app.actionsBar.emojiMenu.confusedLabel": "ಗೊಂದಲ", + "app.actionsBar.emojiMenu.confusedDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಗೊಂದಲಕà³à²•à³† ಬದಲಾಯಿಸಿ", + "app.actionsBar.emojiMenu.sadLabel": "ದà³à²ƒà²–", + "app.actionsBar.emojiMenu.sadDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ದà³à²ƒà²–ಕà³à²•à³† ಬದಲಾಯಿಸಿ", + "app.actionsBar.emojiMenu.happyLabel": "ಸಂತೋಷ", + "app.actionsBar.emojiMenu.happyDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಸಂತೋಷವಾಗಿ ಬದಲಾಯಿಸಿ", + "app.actionsBar.emojiMenu.noneLabel": "ಸà³à²¥à²¿à²¤à²¿ ತೆರವà³à²—ೊಳಿಸಿ", + "app.actionsBar.emojiMenu.noneDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ತೆರವà³à²—ೊಳಿಸಿ", + "app.actionsBar.emojiMenu.applauseLabel": "ಚಪà³à²ªà²¾à²³à³†", + "app.actionsBar.emojiMenu.applauseDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಚಪà³à²ªà²¾à²³à³†à²—ೆ ಬದಲಾಯಿಸಿ", + "app.actionsBar.emojiMenu.thumbsUpLabel": "ಥಂಬà³à²¸à³ ಅಪà³", + "app.actionsBar.emojiMenu.thumbsUpDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಥಂಬà³à²¸à³ ಅಪೠಆಗಿ ಬದಲಾಯಿಸಿ", + "app.actionsBar.emojiMenu.thumbsDownLabel": "ಥಂಬà³à²¸à³ ಡೌನà³", + "app.actionsBar.emojiMenu.thumbsDownDesc": "ನಿಮà³à²® ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಥಂಬà³à²¸à³ ಡೌನೠಆಗಿ ಬದಲಾಯಿಸಿ", + "app.actionsBar.currentStatusDesc": "ಪà³à²°à²¸à³à²¤à³à²¤ ಸà³à²¥à²¿à²¤à²¿ {0}", + "app.actionsBar.captions.start": "ಮà³à²šà³à²šà²¿à²¦ ಶೀರà³à²·à²¿à²•à³†à²—ಳನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²²à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.actionsBar.captions.stop": "ಮà³à²šà³à²šà²¿à²¦ ಶೀರà³à²·à²¿à²•à³†à²—ಳನà³à²¨à³ ನೋಡà³à²µà³à²¦à²¨à³à²¨à³ ನಿಲà³à²²à²¿à²¸à²¿", + "app.audioNotification.audioFailedError1001": "ವೆಬà³â€Œà²¸à²¾à²•à³†à²Ÿà³ ಸಂಪರà³à²• ಕಡಿತಗೊಂಡಿದೆ (ದೋಷ 1001)", + "app.audioNotification.audioFailedError1002": "ವೆಬà³â€Œà²¸à²¾à²•à³†à²Ÿà³ ಸಂಪರà³à²•à²µà²¨à³à²¨à³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²—ಲಿಲà³à²² (ದೋಷ 1002)", + "app.audioNotification.audioFailedError1003": "ಬà³à²°à³Œà²¸à²°à³ ಆವೃತà³à²¤à²¿à²¯à²¨à³à²¨à³ ಬೆಂಬಲಿಸà³à²µà³à²¦à²¿à²²à³à²² (ದೋಷ 1003)", + "app.audioNotification.audioFailedError1004": "ಕರೆಯಲà³à²²à²¿ ವಿಫಲತೆ (ಕಾರಣ = {0}) (ದೋಷ 1004)", + "app.audioNotification.audioFailedError1005": "ಕರೆ ಅನಿರೀಕà³à²·à²¿à²¤à²µà²¾à²—ಿ ಕೊನೆಗೊಂಡಿದೆ (ದೋಷ 1005)", + "app.audioNotification.audioFailedError1006": "ಕರೆ ಸಮಯ ಮೀರಿದೆ (ದೋಷ 1006)", + "app.audioNotification.audioFailedError1007": "ಸಂಪರà³à²• ವೈಫಲà³à²¯ (ICE ದೋಷ 1007)", + "app.audioNotification.audioFailedError1008": "ವರà³à²—ಾವಣೆ ವಿಫಲವಾಗಿದೆ (ದೋಷ 1008)", + "app.audioNotification.audioFailedError1009": "STUN / TURN ಸರà³à²µà²°à³ ಮಾಹಿತಿಯನà³à²¨à³ ಪಡೆಯಲೠಸಾಧà³à²¯à²µà²¾à²—ಲಿಲà³à²² (ದೋಷ 1009)", + "app.audioNotification.audioFailedError1010": "ಸಂಪರà³à²• ಸಮಾಲೋಚನೆ ಕಾಲಾವಧಿ (ICE ದೋಷ 1010)", + "app.audioNotification.audioFailedError1011": "ಸಂಪರà³à²• ಸಮಯ ಮೀರಿದೆ (ICE ದೋಷ 1011)", + "app.audioNotification.audioFailedError1012": "ಸಂಪರà³à²•à²µà²¨à³à²¨à³ ಮà³à²šà³à²šà²²à²¾à²—ಿದೆ (ICE ದೋಷ 1012)", + "app.audioNotification.audioFailedMessage": "ನಿಮà³à²® ಆಡಿಯೊ ಸಂಪರà³à²•à²µà²¨à³à²¨à³ ಸಂಪರà³à²•à²¿à²¸à²²à³ ವಿಫಲವಾಗಿದೆ", + "app.audioNotification.mediaFailedMessage": "ಸà³à²°à²•à³à²·à²¿à²¤ ಮೂಲಗಳನà³à²¨à³ ಮಾತà³à²° ಅನà³à²®à²¤à²¿à²¸à²²à²¾à²—ಿರà³à²µà³à²¦à²°à²¿à²‚ದ getUserMicMedia ವಿಫಲವಾಗಿದೆ", + "app.audioNotification.closeLabel": "ಮà³à²šà³à²šà²¿", + "app.audioNotificaion.reconnectingAsListenOnly": "ವೀಕà³à²·à²•à²°à²¿à²—ೆ ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಲಾಕೠಮಾಡಲಾಗಿದೆ, ನಿಮà³à²®à²¨à³à²¨à³ ಕೇಳಲೠಮಾತà³à²° ಸಂಪರà³à²•à²¿à²¸à²²à²¾à²—ಿದೆ", + "app.breakoutJoinConfirmation.title": "ಬà³à²°à³‡à²•à³ ಔಟà³â€Œ ಕೋಣೆಗೆ ಸೇರಿ", + "app.breakoutJoinConfirmation.message": "ನೀವೠಸೇರಲೠಬಯಸà³à²µà²¿à²°à²¾", + "app.breakoutJoinConfirmation.confirmDesc": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಗೆ ನಿಮà³à²®à³Šà²‚ದಿಗೆ ಸೇರಿ", + "app.breakoutJoinConfirmation.dismissLabel": "ರದà³à²¦à³à²®à²¾à²¡à²¿", + "app.breakoutJoinConfirmation.dismissDesc": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಗೆ ಸೇರà³à²µà³à²¦à²¨à³à²¨à³ ಮà³à²šà³à²šà³à²¤à³à²¤à²¦à³† ಮತà³à²¤à³ ತಿರಸà³à²•à²°à²¿à²¸à³à²¤à³à²¤à²¦à³†", + "app.breakoutJoinConfirmation.freeJoinMessage": "ಸೇರಲೠಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಯನà³à²¨à³ ಆರಿಸಿ", + "app.breakoutTimeRemainingMessage": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಯ ಸಮಯ ಉಳಿದಿದೆ: {0}", + "app.breakoutWillCloseMessage": "ಸಮಯ ಕೊನೆಗೊಂಡಿತà³. ಬà³à²°à³‡à²•à³ ಔಟೠಕೊಠಡಿ ಶೀಘà³à²°à²¦à²²à³à²²à³‡ ಮà³à²šà³à²šà²²à²¿à²¦à³†", + "app.calculatingBreakoutTimeRemaining": "ಉಳಿದ ಸಮಯವನà³à²¨à³ ಲೆಕà³à²•à²¹à²¾à²•à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³† ...", + "app.audioModal.ariaTitle": "ಆಡಿಯೊ ಮೋಡಲà³â€Œà²—ೆ ಸೇರಿ", + "app.audioModal.microphoneLabel": "ಮೈಕà³à²°à³Šà²«à³‹à²¨à³", + "app.audioModal.listenOnlyLabel": "ಕೇವಲ ಆಲಿಸಿ", + "app.audioModal.audioChoiceLabel": "ಆಡಿಯೊಗೆ ಸೇರಲೠನೀವೠಹೇಗೆ ಬಯಸà³à²¤à³à²¤à³€à²°à²¿?", + "app.audioModal.iOSBrowser": "ಆಡಿಯೋ / ವಿಡಿಯೋ ಬೆಂಬಲಿಸà³à²µà³à²¦à²¿à²²à³à²²", + "app.audioModal.iOSErrorDescription": "ಈ ಸಮಯದಲà³à²²à²¿ iOS ಕà³à²°à³‹à²®à³à²¨à²²à³à²²à²¿ ಆಡಿಯೋ ಮತà³à²¤à³ ವೀಡಿಯೊ ಬೆಂಬಲಿಸà³à²µà³à²¦à²¿à²²à³à²².", + "app.audioModal.iOSErrorRecommendation": "ಸಫಾರಿ iOS ಬಳಸಲೠನಾವೠಶಿಫಾರಸೠಮಾಡà³à²¤à³à²¤à³‡à²µà³†.", + "app.audioModal.audioChoiceDesc": "ಈ ಸà²à³†à²¯à²²à³à²²à²¿ ಆಡಿಯೊವನà³à²¨à³ ಹೇಗೆ ಸೇರಬೇಕೆಂದೠಆಯà³à²•à³†à²®à²¾à²¡à²¿", + "app.audioModal.unsupportedBrowserLabel": "ನೀವೠಸಂಪೂರà³à²£à²µà²¾à²—ಿ ಬೆಂಬಲಿಸದ ಬà³à²°à³Œà²¸à²°à³ ಅನà³à²¨à³ ಬಳಸà³à²¤à³à²¤à²¿à²°à³à²µà²‚ತೆ ತೋರà³à²¤à³à²¤à²¿à²¦à³†. ಪೂರà³à²£ ಬೆಂಬಲಕà³à²•à²¾à²—ಿ ದಯವಿಟà³à²Ÿà³ {0} ಅಥವಾ {1} ಬಳಸಿ.", + "app.audioModal.closeLabel": "ಮà³à²šà³à²šà²¿", + "app.audioModal.yes": "ಹೌದà³", + "app.audioModal.no": "ಇಲà³à²²", + "app.audioModal.yes.arialabel" : "ಪà³à²°à²¤à²¿à²§à³à²µà²¨à²¿ ಕೇಳಿಸà³à²¤à³à²¤à²¿à²¦à³†", + "app.audioModal.no.arialabel" : "ಪà³à²°à²¤à²¿à²§à³à²µà²¨à²¿ ಕೇಳಿಸà³à²µà³à²¦à²¿à²²à³à²²", + "app.audioModal.echoTestTitle": "ಇದೠಖಾಸಗಿ ಪà³à²°à²¤à²¿à²§à³à²µà²¨à²¿ ಪರೀಕà³à²·à³†. ಕೆಲವೠಮಾತà³à²—ಳನà³à²¨à³ ಮಾತನಾಡಿ. ನೀವೠಆಡಿಯೋ ಕೇಳಿದà³à²¦à³€à²°à²¾?", + "app.audioModal.settingsTitle": "ನಿಮà³à²® ಆಡಿಯೊ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳನà³à²¨à³ ಬದಲಾಯಿಸಿ", + "app.audioModal.helpTitle": "ನಿಮà³à²® ಮಾಧà³à²¯à²® ಸಾಧನಗಳಲà³à²²à²¿ ಸಮಸà³à²¯à³† ಇದೆ", + "app.audioModal.helpText": "ನಿಮà³à²® ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²²à³ ನೀವೠಅನà³à²®à²¤à²¿ ನೀಡಿದà³à²¦à³€à²°à²¾? ನೀವೠಆಡಿಯೊಗೆ ಸೇರಲೠಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿à²¦à²¾à²—, ನಿಮà³à²® ಮಾಧà³à²¯à²® ಸಾಧನ ಅನà³à²®à²¤à²¿à²—ಳನà³à²¨à³ ಕೇಳà³à²µà²¾à²— ಸಂವಾದವೠಗೋಚರಿಸà³à²¤à³à²¤à²¦à³† ಎಂಬà³à²¦à²¨à³à²¨à³ ಗಮನಿಸಿ, ಆಡಿಯೊ ಸಮà³à²®à³‡à²³à²¨à²•à³à²•à³† ಸೇರಲೠದಯವಿಟà³à²Ÿà³ ಅದನà³à²¨à³ ಸà³à²µà³€à²•à²°à²¿à²¸à²¿. ಅದೠನಿಜವಾಗದಿದà³à²¦à²°à³†, ನಿಮà³à²® ಬà³à²°à³Œà²¸à²°à³â€Œà²¨ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳಲà³à²²à²¿ ನಿಮà³à²® ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಅನà³à²®à²¤à²¿à²—ಳನà³à²¨à³ ಬದಲಾಯಿಸಲೠಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿.", + "app.audioModal.help.noSSL": "ಈ ಪà³à²Ÿà²µà³ ಅಸà³à²°à²•à³à²·à²¿à²¤à²µà²¾à²—ಿದೆ. ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಪà³à²°à²µà³‡à²¶à²µà²¨à³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à²²à³ ಪà³à²Ÿà²µà²¨à³à²¨à³ HTTPS ಮೂಲಕ ಒದಗಿಸಬೇಕà³. ದಯವಿಟà³à²Ÿà³ ಸರà³à²µà²°à³ ನಿರà³à²µà²¾à²¹à²•à²°à²¨à³à²¨à³ ಸಂಪರà³à²•à²¿à²¸à²¿.", + "app.audioModal.help.macNotAllowed": "ನಿಮà³à²® ಮà³à²¯à²¾à²•à³ ಸಿಸà³à²Ÿà²®à³ ಪà³à²°à²¾à²¶à²¸à³à²¤à³à²¯à²—ಳೠನಿಮà³à²® ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಪà³à²°à²µà³‡à²¶à²µà²¨à³à²¨à³ ನಿರà³à²¬à²‚ಧಿಸà³à²¤à³à²¤à²¿à²°à³à²µà²‚ತೆ ತೋರà³à²¤à³à²¤à²¿à²¦à³†. ಸಿಸà³à²Ÿà²®à³ ಪà³à²°à²¾à²¶à²¸à³à²¤à³à²¯à²—ಳà³> à²à²¦à³à²°à²¤à³† ಮತà³à²¤à³ ಗೌಪà³à²¯à²¤à³†> ಗೌಪà³à²¯à²¤à³†> ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ತೆರೆಯಿರಿ ಮತà³à²¤à³ ನೀವೠಬಳಸà³à²¤à³à²¤à²¿à²°à³à²µ ಬà³à²°à³Œà²¸à²°à³ ಅನà³à²¨à³ ಪರಿಶೀಲಿಸಲಾಗಿದೆಯೇ ಎಂದೠಪರಿಶೀಲಿಸಿ.", + "app.audioModal.audioDialTitle": "ನಿಮà³à²® ಫೋನೠಬಳಸಿ ಸೇರಿ", + "app.audioDial.audioDialDescription": "ಡಯಲೠಮಾಡಿ", + "app.audioDial.audioDialConfrenceText": "ಮತà³à²¤à³ ಕಾನà³à²«à²°à³†à²¨à³à²¸à³ ಪಿನೠಸಂಖà³à²¯à³†à²¯à²¨à³à²¨à³ ನಮೂದಿಸಿ:", + "app.audioModal.autoplayBlockedDesc": "ಆಡಿಯೋ ಪà³à²²à³‡ ಮಾಡಲೠನಮಗೆ ನಿಮà³à²® ಅನà³à²®à²¤à²¿ ಬೇಕà³.", + "app.audioModal.playAudio": "ಆಡಿಯೊ ಪà³à²²à³‡ ಮಾಡಿ", + "app.audioModal.playAudio.arialabel" : "ಆಡಿಯೊ ಪà³à²²à³‡ ಮಾಡಿ", + "app.audioDial.tipIndicator": "ಸಲಹೆ", + "app.audioDial.tipMessage": "ನಿಮà³à²®à²¨à³à²¨à³ ಮà³à²¯à³‚ಟೠಮಾಡಲೠ/ ಮà³à²¯à³‚ಟೠಮಾಡಲೠನಿಮà³à²® ಫೋನà³â€Œà²¨à²²à³à²²à²¿ '0' ಕೀಲಿಯನà³à²¨à³ ಒತà³à²¤à²¿.", + "app.audioModal.connecting": "ಸಂಪರà³à²•à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³†", + "app.audioModal.connectingEchoTest": "ಪà³à²°à²¤à²¿à²§à³à²µà²¨à²¿ ಪರೀಕà³à²·à³†à²—ೆ ಸಂಪರà³à²•à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³†", + "app.audioManager.joinedAudio": "ನೀವೠಆಡಿಯೋ ಸಮà³à²®à³‡à²³à²¨à²•à³à²•à³† ಸೇರಿದà³à²¦à³€à²°à²¿", + "app.audioManager.joinedEcho": "ನೀವೠಪà³à²°à²¤à²¿à²§à³à²µà²¨à²¿ ಪರೀಕà³à²·à³†à²—ೆ ಸೇರಿದà³à²¦à³€à²°à²¿", + "app.audioManager.leftAudio": "ನೀವೠಆಡಿಯೋ ಸಮà³à²®à³‡à²³à²¨à²µà²¨à³à²¨à³ ತೊರೆದಿದà³à²¦à³€à²°à²¿", + "app.audioManager.reconnectingAudio": "ಆಡಿಯೊವನà³à²¨à³ ಮರà³à²¸à²‚ಪರà³à²•à²¿à²¸à²²à³ ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à³à²¤à³à²¤à²¿à²¦à³†", + "app.audioManager.genericError": "ದೋಷ: ದೋಷ ಸಂà²à²µà²¿à²¸à²¿à²¦à³†, ದಯವಿಟà³à²Ÿà³ ಮತà³à²¤à³† ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿", + "app.audioManager.connectionError": "ದೋಷ: ಸಂಪರà³à²• ದೋಷ", + "app.audioManager.requestTimeout": "ದೋಷ: ವಿನಂತಿಯಲà³à²²à²¿ ಸಮಯ ಮೀರಿದೆ", + "app.audioManager.invalidTarget": "ದೋಷ: ಅಮಾನà³à²¯ ಗà³à²°à²¿à²¯à²¤à³à²¤ à²à²¨à²¨à³à²¨à²¾à²¦à²°à³‚ ವಿನಂತಿಸಲೠಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿à²¦à³†", + "app.audioManager.mediaError": "ದೋಷ: ನಿಮà³à²® ಮಾಧà³à²¯à²® ಸಾಧನಗಳನà³à²¨à³ ಪಡೆಯà³à²µà²²à³à²²à²¿ ಸಮಸà³à²¯à³† ಇದೆ", + "app.audio.joinAudio": "ಆಡಿಯೊಗೆ ಸೇರಿ", + "app.audio.leaveAudio": "ಆಡಿಯೊವನà³à²¨à³ ಬಿಡಿ", + "app.audio.enterSessionLabel": "ನಮೂದಿಸಿ", + "app.audio.playSoundLabel": "ಧà³à²µà²¨à²¿ ಪà³à²²à³‡ ಮಾಡಿ", + "app.audio.backLabel": "ಹಿಂದೆ", + "app.audio.audioSettings.titleLabel": "ನಿಮà³à²® ಆಡಿಯೊ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳನà³à²¨à³ ಆರಿಸಿ", + "app.audio.audioSettings.descriptionLabel": "ದಯವಿಟà³à²Ÿà³ ಗಮನಿಸಿ, ನಿಮà³à²® ಬà³à²°à³Œà²¸à²°à³â€Œà²¨à²²à³à²²à²¿ ಸಂವಾದ ಕಾಣಿಸà³à²¤à³à²¤à²¦à³†, ನಿಮà³à²® ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಹಂಚಿಕೆಯನà³à²¨à³ ಸà³à²µà³€à²•à²°à²¿à²¸à²²à³ ನಿಮಗೆ ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†.", + "app.audio.audioSettings.microphoneSourceLabel": "ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಮೂಲ", + "app.audio.audioSettings.speakerSourceLabel": "ಸà³à²ªà³€à²•à²°à³ ಮೂಲ", + "app.audio.audioSettings.microphoneStreamLabel": "ನಿಮà³à²® ಆಡಿಯೊ ಸà³à²Ÿà³à²°à³€à²®à³ ಪರಿಮಾಣ", + "app.audio.audioSettings.retryLabel": "ಮರà³à²ªà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿", + "app.audio.listenOnly.backLabel": "ಹಿಂದೆ", + "app.audio.listenOnly.closeLabel": "ಮà³à²šà³à²šà²¿", + "app.audio.permissionsOverlay.title": "ನಿಮà³à²® ಮೈಕà³à²°à³Šà²«à³‹à²¨à³â€Œà²—ೆ ಪà³à²°à²µà³‡à²¶à²µà²¨à³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à²¿", + "app.audio.permissionsOverlay.hint": "ನಿಮà³à²®à²¨à³à²¨à³ ಧà³à²µà²¨à²¿ ಸಮà³à²®à³‡à²³à²¨à²•à³à²•à³† ಸೇರಲೠನಿಮà³à²® ಮಾಧà³à²¯à²® ಸಾಧನಗಳನà³à²¨à³ ಬಳಸಲೠನಮಗೆ ನೀವೠಅನà³à²®à²¤à²¿à²¸à²¬à³‡à²•à²¾à²—ಿದೆ :)", + "app.error.removed": "ನಿಮà³à²®à²¨à³à²¨à³ ಸಮà³à²®à³‡à²³à²¨à²¦à²¿à²‚ದ ತೆಗೆದà³à²¹à²¾à²•à²²à²¾à²—ಿದೆ", + "app.error.meeting.ended": "ನೀವೠಸಮà³à²®à³‡à²³à²¨à²¦à²¿à²‚ದ ಲಾಗೠಔಟà³â€Œ ಆಗಿದà³à²¦à³€à²°à²¿", + "app.meeting.logout.duplicateUserEjectReason": "ಸà²à³†à²—ೆ ಸೇರಲೠಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à³à²¤à³à²¤à²¿à²°à³à²µ ನಕಲಿ ಬಳಕೆದಾರ", + "app.meeting.logout.permissionEjectReason": "ಅನà³à²®à²¤à²¿ ಉಲà³à²²à²‚ಘನೆಯಿಂದಾಗಿ ಹೊರಹಾಕಲಾಗಿದೆ", + "app.meeting.logout.ejectedFromMeeting": "ನಿಮà³à²®à²¨à³à²¨à³ ಸà²à³†à²¯à²¿à²‚ದ ತೆಗೆದà³à²¹à²¾à²•à²²à²¾à²—ಿದೆ", + "app.meeting.logout.validateTokenFailedEjectReason": "ದೃಢೀಕರಣ ಟೋಕನೠಅನà³à²¨à³ ಮೌಲà³à²¯à³€à²•à²°à²¿à²¸à²²à³ ವಿಫಲವಾಗಿದೆ", + "app.meeting.logout.userInactivityEjectReason": "ಬಳಕೆದಾರರೠತà³à²‚ಬಾ ಸಮಯದವರೆಗೆ ನಿಷà³à²•à³à²°à²¿à²¯à²°à²¾à²—ಿದà³à²¦à²¾à²°à³†", + "app.meeting-ended.rating.legendLabel": "ಪà³à²°à²¤à²¿à²•à³à²°à²¿à²¯à³† ರೇಟಿಂಗà³", + "app.meeting-ended.rating.starLabel": "ನಕà³à²·à²¤à³à²°", + "app.modal.close": "ಮà³à²šà³à²šà²¿", + "app.modal.close.description": "ಬದಲಾವಣೆಗಳನà³à²¨à³ ಕಡೆಗಣಿಸà³à²¤à³à²¤à²¦à³† ಮತà³à²¤à³ ಮೋಡಲೠಅನà³à²¨à³ ಮà³à²šà³à²šà³à²¤à³à²¤à²¦à³†", + "app.modal.confirm": "ಮà³à²—ಿದಿದೆ", + "app.modal.newTab": "(ಹೊಸ ಟà³à²¯à²¾à²¬à³ ತೆರೆಯà³à²¤à³à²¤à²¦à³†)", + "app.modal.confirm.description": "ಬದಲಾವಣೆಗಳನà³à²¨à³ ಉಳಿಸà³à²¤à³à²¤à²¦à³† ಮತà³à²¤à³ ಮೋಡಲೠಅನà³à²¨à³ ಮà³à²šà³à²šà³à²¤à³à²¤à²¦à³†", + "app.dropdown.close": "ಮà³à²šà³à²šà²¿", + "app.error.400": "ಕೆಟà³à²Ÿ ವಿನಂತಿ", + "app.error.401": "ಅನಧಿಕೃತ", + "app.error.403": "ನಿಮà³à²®à²¨à³à²¨à³ ಸà²à³†à²¯à²¿à²‚ದ ತೆಗೆದà³à²¹à²¾à²•à²²à²¾à²—ಿದೆ", + "app.error.404": "ಸಿಕà³à²•à²¿à²²à³à²²", + "app.error.410": "ಸà²à³† ಮà³à²—ಿದಿದೆ", + "app.error.500": "ಅಯà³à²¯à³Š, à²à²¨à³‹ ತಪà³à²ªà²¾à²—ಿದೆ", + "app.error.leaveLabel": "ಮತà³à²¤à³† ಲಾಗೠಇನೠಮಾಡಿ", + "app.error.fallback.presentation.title": "ಒಂದೠತಪà³à²ªà³ ನಡೆದಿದೆ", + "app.error.fallback.presentation.description": "ಇದನà³à²¨à³ ಲಾಗೠಮಾಡಲಾಗಿದೆ. ದಯವಿಟà³à²Ÿà³ ಪà³à²Ÿà²µà²¨à³à²¨à³ ಮರà³à²²à³‹à²¡à³ ಮಾಡಲೠಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿.", + "app.error.fallback.presentation.reloadButton": "ಮರà³à²²à³‹à²¡à³ ಮಾಡಿ", + "app.guest.waiting": "ಸೇರಲೠಅನà³à²®à³‹à²¦à²¨à³†à²—ಾಗಿ ಕಾಯಲಾಗà³à²¤à³à²¤à²¿à²¦à³†", + "app.userList.guest.waitingUsers": "ಕಾಯà³à²¤à³à²¤à²¿à²°à³à²µ ಬಳಕೆದಾರರà³", + "app.userList.guest.waitingUsersTitle": "ಬಳಕೆದಾರ ನಿರà³à²µà²¹à²£à³†", + "app.userList.guest.optionTitle": "ಬಾಕಿ ಉಳಿದಿರà³à²µ ಬಳಕೆದಾರರನà³à²¨à³ ಪರಿಶೀಲಿಸಿ", + "app.userList.guest.allowAllAuthenticated": "ಎಲà³à²²à²µà²¨à³à²¨à³‚ ದೃಢೀಕರಿಸಲೠಅನà³à²®à²¤à²¿à²¸à²¿", + "app.userList.guest.allowAllGuests": "ಎಲà³à²²à²¾ ಅತಿಥಿಗಳನà³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à²¿", + "app.userList.guest.allowEveryone": "ಎಲà³à²²à²°à²¿à²—ೂ ಅನà³à²®à²¤à²¿à²¸à²¿", + "app.userList.guest.denyEveryone": "ಎಲà³à²²à²°à²¨à³à²¨à³ ನಿರಾಕರಿಸà³", + "app.userList.guest.pendingUsers": "{0} ಬಾಕಿ ಉಳಿದಿರà³à²µ ಬಳಕೆದಾರರà³", + "app.userList.guest.pendingGuestUsers": "{0} ಅತಿಥಿ ಬಳಕೆದಾರರೠಬಾಕಿ ಉಳಿದಿದà³à²¦à²¾à²°à³†", + "app.userList.guest.pendingGuestAlert": "ಅಧಿವೇಶನಕà³à²•à³† ಸೇರಿದà³à²¦à²¾à²°à³† ಮತà³à²¤à³ ನಿಮà³à²® ಅನà³à²®à³‹à²¦à²¨à³†à²—ಾಗಿ ಕಾಯà³à²¤à³à²¤à²¿à²¦à³à²¦à²¾à²°à³†.", + "app.userList.guest.rememberChoice": "ಆಯà³à²•à³†à²¯à²¨à³à²¨à³ ನೆನಪಿಡಿ", + "app.user-info.title": "ಡೈರೆಕà³à²Ÿà²°à²¿ ಲà³à²•à²ªà³", + "app.toast.breakoutRoomEnded": "ಬà³à²°à³‡à²•à³ ಔಟà³â€Œ ಕೊಠಡಿ ಕೊನೆಗೊಂಡಿತà³. ದಯವಿಟà³à²Ÿà³ ಆಡಿಯೊದಲà³à²²à²¿ ಮತà³à²¤à³† ಸೇರಿ.", + "app.toast.chat.public": "ಹೊಸ ಸಾರà³à²µà²œà²¨à²¿à²• ಚಾಟೠಸಂದೇಶ", + "app.toast.chat.private": "ಹೊಸ ಖಾಸಗಿ ಚಾಟೠಸಂದೇಶ", + "app.toast.chat.system": "ಸಿಸà³à²Ÿà²®à³", + "app.toast.clearedEmoji.label": "ಎಮೋಜಿ ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ತೆರವà³à²—ೊಳಿಸಲಾಗಿದೆ", + "app.toast.setEmoji.label": "ಎಮೋಜಿ ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ {0} ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ", + "app.toast.meetingMuteOn.label": "ಎಲà³à²²à²¾ ಬಳಕೆದಾರರನà³à²¨à³ ಮà³à²¯à³‚ಟೠಮಾಡಲಾಗಿದೆ", + "app.toast.meetingMuteOff.label": "ಮೀಟಿಂಗೠಮà³à²¯à³‚ಟೠಆಫೠಮಾಡಲಾಗಿದೆ", + "app.notification.recordingStart": "ಈ ಅಧಿವೇಶನವನà³à²¨à³ ಈಗ ದಾಖಲಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†", + "app.notification.recordingStop": "ಈ ಅಧಿವೇಶನವನà³à²¨à³ ದಾಖಲಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²", + "app.notification.recordingPaused": "ಈ ಅಧಿವೇಶನವನà³à²¨à³ ಇನà³à²¨à³ ಮà³à²‚ದೆ ದಾಖಲಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²", + "app.notification.recordingAriaLabel": "ರೆಕಾರà³à²¡à³ ಮಾಡಿದ ಸಮಯ", + "app.notification.userJoinPushAlert": "{0} ಅಧಿವೇಶನಕà³à²•à³† ಸೇರಿದರà³", + "app.shortcut-help.title": "ಕೀಬೋರà³à²¡à³ ಶಾರà³à²Ÿà³â€Œà²•à²Ÿà³â€Œà²—ಳà³", + "app.shortcut-help.accessKeyNotAvailable": "ಪà³à²°à²µà³‡à²¶ ಕೀಗಳೠಲà²à³à²¯à²µà²¿à²²à³à²²", + "app.shortcut-help.comboLabel": "ಕಾಂಬೊ", + "app.shortcut-help.functionLabel": "ಕಾರà³à²¯", + "app.shortcut-help.closeLabel": "ಮà³à²šà³à²šà²¿", + "app.shortcut-help.closeDesc": "ಕೀಬೋರà³à²¡à³ ಶಾರà³à²Ÿà³â€Œà²•à²Ÿà³â€Œà²—ಳ ಮೋಡಲೠಅನà³à²¨à³ ಮà³à²šà³à²šà³à²¤à³à²¤à²¦à³†", + "app.shortcut-help.openOptions": "ಆಯà³à²•à³†à²—ಳನà³à²¨à³ ತೆರೆಯಿರಿ", + "app.shortcut-help.toggleUserList": "ಬಳಕೆದಾರರ ಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ಟಾಗಲೠಮಾಡಿ", + "app.shortcut-help.toggleMute": "ಸà³à²¥à²¬à³à²§ / ನಿಸà³à²¥à²¬à³à²§ ಮಾಡಿ", + "app.shortcut-help.togglePublicChat": "ಸಾರà³à²µà²œà²¨à²¿à²• ಚಾಟೠಅನà³à²¨à³ ಟಾಗಲೠಮಾಡಿ (ಬಳಕೆದಾರರ ಪಟà³à²Ÿà²¿ ತೆರೆದಿರಬೇಕà³)", + "app.shortcut-help.hidePrivateChat": "ಖಾಸಗಿ ಚಾಟೠಅನà³à²¨à³ ಮರೆಮಾಡಿ", + "app.shortcut-help.closePrivateChat": "ಖಾಸಗಿ ಚಾಟೠಮà³à²šà³à²šà²¿", + "app.shortcut-help.openActions": "ಕà³à²°à²¿à²¯à³†à²—ಳ ಮೆನೠತೆರೆಯಿರಿ", + "app.shortcut-help.openStatus": "ಸà³à²¥à²¿à²¤à²¿ ಮೆನೠತೆರೆಯಿರಿ", + "app.shortcut-help.togglePan": "ಪà³à²¯à²¾à²¨à³ ಉಪಕರಣವನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಿ (ಪà³à²°à³†à²¸à³†à²‚ಟರà³)", + "app.shortcut-help.nextSlideDesc": "ಮà³à²‚ದಿನ ಸà³à²²à³ˆà²¡à³ (ಪà³à²°à³†à²¸à³†à²‚ಟರà³)", + "app.shortcut-help.previousSlideDesc": "ಹಿಂದಿನ ಸà³à²²à³ˆà²¡à³ (ಪà³à²°à³†à²¸à³†à²‚ಟರà³)", + "app.lock-viewers.title": "ವೀಕà³à²·à²•à²°à²¨à³à²¨à³ ಲಾಕೠಮಾಡಿ", + "app.lock-viewers.description": "ನಿರà³à²¦à²¿à²·à³à²Ÿ ಆಯà³à²•à³†à²—ಳನà³à²¨à³ ಬಳಸದಂತೆ ವೀಕà³à²·à²•à²°à²¨à³à²¨à³ ನಿರà³à²¬à²‚ಧಿಸಲೠಈ ಆಯà³à²•à³†à²—ಳೠನಿಮಗೆ ಅನà³à²µà³ ಮಾಡಿಕೊಡà³à²¤à³à²¤à²¦à³†.", + "app.lock-viewers.featuresLable": "ವೈಶಿಷà³à²Ÿà³à²¯", + "app.lock-viewers.lockStatusLabel": "ಸà³à²¥à²¿à²¤à²¿", + "app.lock-viewers.webcamLabel": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.lock-viewers.otherViewersWebcamLabel": "ಇತರ ವೀಕà³à²·à²•à²° ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³â€Œà²—ಳನà³à²¨à³ ನೋಡಿ", + "app.lock-viewers.microphoneLable": "ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.lock-viewers.PublicChatLabel": "ಸಾರà³à²µà²œà²¨à²¿à²• ಚಾಟೠಸಂದೇಶಗಳನà³à²¨à³ ಕಳà³à²¹à²¿à²¸à²¿", + "app.lock-viewers.PrivateChatLable": "ಖಾಸಗಿ ಚಾಟೠಸಂದೇಶಗಳನà³à²¨à³ ಕಳà³à²¹à²¿à²¸à²¿", + "app.lock-viewers.notesLabel": "ಹಂಚಿದ ಟಿಪà³à²ªà²£à²¿à²—ಳನà³à²¨à³ ಸಂಪಾದಿಸಿ", + "app.lock-viewers.userListLabel": "ಬಳಕೆದಾರರ ಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ಇತರ ವೀಕà³à²·à²•à²°à²¨à³à²¨à³ ನೋಡಿ", + "app.lock-viewers.ariaTitle": "ವೀಕà³à²·à²•à²° ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳನà³à²¨à³ ಲಾಕೠಮಾಡಿ", + "app.lock-viewers.button.apply": "ಅನà³à²µà²¯à²¿à²¸à³", + "app.lock-viewers.button.cancel": "ರದà³à²¦à³à²®à²¾à²¡à²¿", + "app.lock-viewers.locked": "ಲಾಕೠಮಾಡಲಾಗಿದೆ", + "app.lock-viewers.unlocked": "ಅನà³à²²à²¾à²•à³ ಮಾಡಲಾಗಿದೆ", + "app.recording.startTitle": "ರೆಕಾರà³à²¡à²¿à²‚ಗೠಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.recording.stopTitle": "ರೆಕಾರà³à²¡à²¿à²‚ಗೠಅನà³à²¨à³ ವಿರಾಮಗೊಳಿಸಿ", + "app.recording.resumeTitle": "ರೆಕಾರà³à²¡à²¿à²‚ಗೠಅನà³à²¨à³ ಪà³à²¨à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.recording.startDescription": "ರೆಕಾರà³à²¡à²¿à²‚ಗೠಅನà³à²¨à³ ವಿರಾಮಗೊಳಿಸಲೠನೀವೠನಂತರ ಮತà³à²¤à³† ರೆಕಾರà³à²¡à³ ಬಟನೠಆಯà³à²•à³† ಮಾಡಬಹà³à²¦à³.", + "app.recording.stopDescription": "ರೆಕಾರà³à²¡à²¿à²‚ಗೠಅನà³à²¨à³ ವಿರಾಮಗೊಳಿಸಲೠನೀವೠಖಚಿತವಾಗಿ ಬಯಸà³à²µà²¿à²°à²¾? ರೆಕಾರà³à²¡à³ ಬಟನೠಅನà³à²¨à³ ಮತà³à²¤à³† ಆರಿಸà³à²µ ಮೂಲಕ ನೀವೠಪà³à²¨à²°à²¾à²°à²‚à²à²¿à²¸à²¬à²¹à³à²¦à³.", + "app.videoPreview.cameraLabel": "ಕà³à²¯à²¾à²®à³†à²°à²¾", + "app.videoPreview.profileLabel": "ಗà³à²£à²®à²Ÿà³à²Ÿ", + "app.videoPreview.cancelLabel": "ರದà³à²¦à³à²®à²¾à²¡à²¿", + "app.videoPreview.closeLabel": "ಮà³à²šà³à²šà²¿", + "app.videoPreview.findingWebcamsLabel": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³â€Œà²—ಳನà³à²¨à³ ಹà³à²¡à³à²•à²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³†", + "app.videoPreview.startSharingLabel": "ಹಂಚಿಕೆಯನà³à²¨à³ ಪà³à²°à²¾à²°à²‚à²à²¿à²¸à²¿", + "app.videoPreview.webcamOptionLabel": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಆಯà³à²•à³†à²®à²¾à²¡à²¿", + "app.videoPreview.webcamPreviewLabel": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಪೂರà³à²µà²µà³€à²•à³à²·à²£à³†", + "app.videoPreview.webcamSettingsTitle": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳà³", + "app.videoPreview.webcamNotFoundLabel": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಕಂಡà³à²¬à²‚ದಿಲà³à²²", + "app.videoPreview.profileNotFoundLabel": "ಬೆಂಬಲಿತ ಕà³à²¯à²¾à²®à³†à²°à²¾ ಪà³à²°à³Šà²«à³ˆà²²à³ ಇಲà³à²²", + "app.video.joinVideo": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.video.leaveVideo": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಹಂಚಿಕೊಳà³à²³à³à²µà³à²¦à²¨à³à²¨à³ ನಿಲà³à²²à²¿à²¸à²¿", + "app.video.iceCandidateError": "ICE ಅà²à³à²¯à²°à³à²¥à²¿à²¯à²¨à³à²¨à³ ಸೇರಿಸà³à²µà²²à³à²²à²¿ ದೋಷ", + "app.video.iceConnectionStateError": "ಸಂಪರà³à²• ವೈಫಲà³à²¯ (ICE ದೋಷ 1107)", + "app.video.permissionError": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಹಂಚಿಕೊಳà³à²³à³à²µà²²à³à²²à²¿ ದೋಷ. ದಯವಿಟà³à²Ÿà³ ಅನà³à²®à²¤à²¿à²—ಳನà³à²¨à³ ಪರಿಶೀಲಿಸಿ", + "app.video.sharingError": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಹಂಚಿಕೊಳà³à²³à³à²µà²²à³à²²à²¿ ದೋಷ", + "app.video.notFoundError": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಸಿಗಲಿಲà³à²². ಇದೠಸಂಪರà³à²•à²—ೊಂಡಿದೆ ಎಂದೠಖಚಿತಪಡಿಸಿಕೊಳà³à²³à²¿", + "app.video.notAllowed": "ಹಂಚಿಕೆ ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³â€Œà²—ೆ ಅನà³à²®à²¤à²¿ ಕಾಣೆಯಾಗಿದೆ, ದಯವಿಟà³à²Ÿà³ ನಿಮà³à²® ಬà³à²°à³Œà²¸à²°à³ ಅನà³à²®à²¤à²¿à²—ಳನà³à²¨à³ ಖಚಿತಪಡಿಸಿಕೊಳà³à²³à²¿", + "app.video.notSupportedError": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ವೀಡಿಯೊವನà³à²¨à³ ಸà³à²°à²•à³à²·à²¿à²¤ ಮೂಲಗಳೊಂದಿಗೆ ಮಾತà³à²° ಹಂಚಿಕೊಳà³à²³à²¬à²¹à³à²¦à³, ನಿಮà³à²® ಎಸà³â€Œà²Žà²¸à³â€Œà²Žà²²à³ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà³ ಮಾನà³à²¯à²µà²¾à²—ಿದೆಯೆ ಎಂದೠಖಚಿತಪಡಿಸಿಕೊಳà³à²³à²¿", + "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": "ಈ ಕà³à²°à³‹à²®à³â€Œ ವಿಸà³à²¤à²°à²£à³†", + "app.video.stats.title": "ಸಂಪರà³à²• ಅಂಕಿಅಂಶಗಳà³", + "app.video.stats.packetsReceived": "ಪà³à²¯à²¾à²•à³†à²Ÿà³â€Œà²—ಳನà³à²¨à³ ಸà³à²µà³€à²•à²°à²¿à²¸à²²à²¾à²—ಿದೆ", + "app.video.stats.packetsSent": "ಪà³à²¯à²¾à²•à³†à²Ÿà³â€Œà²—ಳನà³à²¨à³ ಕಳà³à²¹à²¿à²¸à²²à²¾à²—ಿದೆ", + "app.video.stats.packetsLost": "ಪà³à²¯à²¾à²•à³†à²Ÿà³â€Œà²—ಳೠಕಳೆದà³à²¹à³‹à²—ಿವೆ", + "app.video.stats.bitrate": "ಬಿಟà³â€Œ ರೇಟà³â€Œ ", + "app.video.stats.lostPercentage": "ಒಟà³à²Ÿà³ ಶೇಕಡಾವಾರೠಕಳೆದà³à²¹à³‹à²—ಿದೆ", + "app.video.stats.lostRecentPercentage": "ಇತà³à²¤à³€à²šà²¿à²¨ ಶೇಕಡಾವಾರೠನಷà³à²Ÿà²µà²¾à²—ಿದೆ", + "app.video.stats.dimensions": "ಆಯಾಮಗಳà³", + "app.video.stats.codec": "ಕೋಡೆಕà³", + "app.video.stats.decodeDelay": "ಡಿಕೋಡೠವಿಳಂಬ", + "app.video.stats.rtt": "RTT", + "app.video.stats.encodeUsagePercent": "ಎನà³à²•à³‹à²¡à³ ಬಳಕೆ", + "app.video.stats.currentDelay": "ಪà³à²°à²¸à³à²¤à³à²¤ ವಿಳಂಬ", + "app.fullscreenButton.label": "{0} ಪೂರà³à²£à²ªà²°à²¦à³† ಮಾಡಿ", + "app.deskshare.iceConnectionStateError": "ಪರದೆಯನà³à²¨à³ ಹಂಚಿಕೊಳà³à²³à³à²µà²¾à²— ಸಂಪರà³à²• ವಿಫಲವಾಗಿದೆ (ICE ದೋಷ 1108)", + "app.sfu.mediaServerConnectionError2000": "ಮಾಧà³à²¯à²® ಸರà³à²µà²°à³â€Œà²—ೆ ಸಂಪರà³à²•à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²² (ದೋಷ 2000)", + "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":"ಕà³à²²à³ˆà²‚ಟೠಅಮಾನà³à²¯ ಮಾಧà³à²¯à²® ವಿನಂತಿಯನà³à²¨à³ ರಚಿಸಿದೆ (ಎಸà³â€Œà²¡à²¿à²ªà²¿ ದೋಷ 2202)", + "app.sfu.noAvailableCodec2203": "ಸರà³à²µà²°à³â€Œà²—ೆ ಸೂಕà³à²¤à²µà²¾à²¦ ಕೊಡೆಕೠಸಿಗಲಿಲà³à²² (ದೋಷ 2203)", + "app.meeting.endNotification.ok.label": "ಸರಿ", + "app.whiteboard.annotations.poll": "ಸಮೀಕà³à²·à³†à²¯ ಫಲಿತಾಂಶಗಳನà³à²¨à³ ಪà³à²°à²•à²Ÿà²¿à²¸à²²à²¾à²—ಿದೆ", + "app.whiteboard.toolbar.tools": "ಪರಿಕರಗಳà³", + "app.whiteboard.toolbar.tools.hand": "ಪà³à²¯à²¾à²¨à³", + "app.whiteboard.toolbar.tools.pencil": "ಪೆನà³à²¸à²¿à²²à³/ಸೀಸದ ಕಡà³à²¡à²¿", + "app.whiteboard.toolbar.tools.rectangle": "ಆಯಾತ", + "app.whiteboard.toolbar.tools.triangle": "ತà³à²°à²¿à²•à³‹à²¨", + "app.whiteboard.toolbar.tools.ellipse": "ದೀರà³à²˜à²µà³ƒà²¤à³à²¤", + "app.whiteboard.toolbar.tools.line": "ಸಾಲà³", + "app.whiteboard.toolbar.tools.text": "ಪಠà³à²¯", + "app.whiteboard.toolbar.thickness": "ರೇಖಾಚಿತà³à²° ದಪà³à²ª", + "app.whiteboard.toolbar.thicknessDisabled": "ಚಿತà³à²°à²¾à²•à³ƒà²¤à²¿/ರೇಖಾಚಿತà³à²° ದಪà³à²ªà²µà²¨à³à²¨à³ ನಿಷà³à²•à³à²°à²¿à²¯à²—ೊಳಿಸಲಾಗಿದೆ", + "app.whiteboard.toolbar.color": "ಬಣà³à²£à²—ಳà³", + "app.whiteboard.toolbar.colorDisabled": "ಬಣà³à²£à²—ಳನà³à²¨à³ ನಿಷà³à²•à³à²°à²¿à²¯à²—ೊಳಿಸಲಾಗಿದೆ", + "app.whiteboard.toolbar.color.black": "ಕಪà³à²ªà³", + "app.whiteboard.toolbar.color.white": "ಬಿಳಿ", + "app.whiteboard.toolbar.color.red": "ಕೆಂಪà³", + "app.whiteboard.toolbar.color.orange": "ಕಿತà³à²¤à²³à³†", + "app.whiteboard.toolbar.color.eletricLime": "ವಿದà³à²¯à³à²¤à³ ಸà³à²£à³à²£", + "app.whiteboard.toolbar.color.lime": "ಸà³à²£à³à²£", + "app.whiteboard.toolbar.color.cyan": "ಸಯಾನà³", + "app.whiteboard.toolbar.color.dodgerBlue": "ಡಾಡà³à²œà²°à³ ನೀಲಿ", + "app.whiteboard.toolbar.color.blue": "ನೀಲಿ", + "app.whiteboard.toolbar.color.violet": "ನೇರಳೆ", + "app.whiteboard.toolbar.color.magenta": "ಕೆನà³à²¨à³‡à²°à²³à³†", + "app.whiteboard.toolbar.color.silver": "ಬೆಳà³à²³à²¿", + "app.whiteboard.toolbar.undo": "ಟಿಪà³à²ªà²£à²¿ ರದà³à²¦à³à²—ೊಳಿಸಿ", + "app.whiteboard.toolbar.clear": "ಎಲà³à²²à²¾ ಟಿಪà³à²ªà²£à²¿à²—ಳನà³à²¨à³ ತೆರವà³à²—ೊಳಿಸಿ", + "app.whiteboard.toolbar.multiUserOn": "ಬಹà³-ಬಳಕೆದಾರ ವೈಟà³â€Œà²¬à³‹à²°à³à²¡à³ ಆನೠಮಾಡಿ", + "app.whiteboard.toolbar.multiUserOff": "ಬಹà³-ಬಳಕೆದಾರ ವೈಟà³â€Œà²¬à³‹à²°à³à²¡à³ ಆಫೠಮಾಡಿ", + "app.whiteboard.toolbar.fontSize": "ಫಾಂಟೠಗಾತà³à²°à²¦ ಪಟà³à²Ÿà²¿", + "app.feedback.title": "ನೀವೠಸಮà³à²®à³‡à²³à²¨à²¦à²¿à²‚ದ ಲಾಗೠಔಟೠಆಗಿದà³à²¦à³€à²°à²¿", + "app.feedback.subtitle": "ಬಿಗà³â€Œà²¬à³à²²à³‚ಬಟನà³â€Œà²¨à³Šà²‚ದಿಗಿನ ನಿಮà³à²® ಅನà³à²à²µà²¦ ಬಗà³à²—ೆ ಕೇಳಲೠನಾವೠಇಷà³à²Ÿà²ªà²¡à³à²¤à³à²¤à³‡à²µà³† (à²à²¶à³à²šà²¿à²•)", + "app.feedback.textarea": "ಬಿಗà³â€Œà²¬à³à²²à³‚ಬಟನೠಅನà³à²¨à³ ನಾವೠಹೇಗೆ ಉತà³à²¤à²®à²—ೊಳಿಸಬಹà³à²¦à³?", + "app.feedback.sendFeedback": "ಪà³à²°à²¤à²¿à²•à³à²°à²¿à²¯à³† ಕಳà³à²¹à²¿à²¸à²¿", + "app.feedback.sendFeedbackDesc": "ಪà³à²°à²¤à²¿à²•à³à²°à²¿à²¯à³† ಕಳà³à²¹à²¿à²¸à²¿ ಮತà³à²¤à³ ಸà²à³†à²¯à²¨à³à²¨à³ ಬಿಡಿ", + "app.videoDock.webcamFocusLabel": "ಕೇಂದà³à²°à³€à²•à²°à²¿à²¸à²¿", + "app.videoDock.webcamFocusDesc": "ಆಯà³à²¦ ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಅನà³à²¨à³ ಕೇಂದà³à²°à³€à²•à²°à²¿à²¸à²¿", + "app.videoDock.webcamUnfocusLabel": "ಕೇಂದà³à²°à³€à²•à²°à²¿à²¸à²¬à³‡à²¡à²¿", + "app.videoDock.webcamUnfocusDesc": "ಆಯà³à²¦ ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³ ಅನà³à²¨à³ ಕೇಂದà³à²°à³€à²•à²°à²¿à²¸à²¿", + "app.videoDock.autoplayBlockedDesc": "ಇತರ ಬಳಕೆದಾರರ ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³â€Œà²—ಳನà³à²¨à³ ನಿಮಗೆ ತೋರಿಸಲೠನಮಗೆ ನಿಮà³à²® ಅನà³à²®à²¤à²¿ ಬೇಕà³.", + "app.videoDock.autoplayAllowLabel": "ವೆಬà³â€Œà²•à³à²¯à²¾à²®à³â€Œà²—ಳನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²¿", + "app.invitation.title": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಯ ಆಮಂತà³à²°à²£", + "app.invitation.confirm": "ಆಹà³à²µà²¾à²¨à²¿à²¸à²¿", + "app.createBreakoutRoom.title": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೊಠಡಿಗಳà³", + "app.createBreakoutRoom.ariaTitle": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೊಠಡಿಗಳನà³à²¨à³ ಮರೆಮಾಡಿ", + "app.createBreakoutRoom.breakoutRoomLabel": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೊಠಡಿಗಳೠ{0}", + "app.createBreakoutRoom.generatingURL": "URL ಅನà³à²¨à³ ರಚಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†", + "app.createBreakoutRoom.generatedURL": "ರಚಿಸಲಾಗಿದೆ", + "app.createBreakoutRoom.duration": "ಅವಧಿ {0}", + "app.createBreakoutRoom.room": "ಕೊಠಡಿ {0}", + "app.createBreakoutRoom.notAssigned": "ನಿಯೋಜಿಸಲಾಗಿಲà³à²² ({0})", + "app.createBreakoutRoom.join": "ಕೋಣೆಗೆ ಸೇರಿ", + "app.createBreakoutRoom.joinAudio": "ಆಡಿಯೊಗೆ ಸೇರಿ", + "app.createBreakoutRoom.returnAudio": "ಆಡಿಯೊ ಹಿಂತಿರà³à²—ಿ", + "app.createBreakoutRoom.alreadyConnected": "ಈಗಾಗಲೇ ಕೋಣೆಯಲà³à²²à²¿à²¦à³†", + "app.createBreakoutRoom.confirm": "ರಚಿಸಿ", + "app.createBreakoutRoom.record": "ರೆಕಾರà³à²¡à³ ಮಾಡಿ", + "app.createBreakoutRoom.numberOfRooms": "ಕೊಠಡಿಗಳ ಸಂಖà³à²¯à³†", + "app.createBreakoutRoom.durationInMinutes": "ಅವಧಿ (ನಿಮಿಷಗಳà³)", + "app.createBreakoutRoom.randomlyAssign": "ಯಾದೃಚà³à²šà²•à²µà²¾à²—ಿ ನಿಯೋಜಿಸಿ", + "app.createBreakoutRoom.endAllBreakouts": "ಎಲà³à²²à²¾ ಬà³à²°à³‡à²•à³ ಔಟೠಕೊಠಡಿಗಳನà³à²¨à³ ಕೊನೆಗೊಳಿಸಿ", + "app.createBreakoutRoom.roomName": "{0} (ಕೊಠಡಿ - {1})", + "app.createBreakoutRoom.doneLabel": "ಮà³à²—ಿದಿದೆ", + "app.createBreakoutRoom.nextLabel": "ಮà³à²‚ದೆ", + "app.createBreakoutRoom.minusRoomTime": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಯ ಸಮಯವನà³à²¨à³ ಕಡಿಮೆ ಮಾಡಿ", + "app.createBreakoutRoom.addRoomTime": "ಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಯ ಸಮಯವನà³à²¨à³ ಹೆಚà³à²šà²¿à²¸à²¿", + "app.createBreakoutRoom.addParticipantLabel": "à²à²¾à²—ವಹಿಸà³à²µà²µà²°à²¨à³à²¨à³ ಸೇರಿಸಿ +", + "app.createBreakoutRoom.freeJoin": "ಸೇರಲೠಬà³à²°à³‡à²•à³ ಔಟೠಕೋಣೆಯನà³à²¨à³ ಆಯà³à²•à³† ಮಾಡಲೠಬಳಕೆದಾರರನà³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à²¿", + "app.createBreakoutRoom.leastOneWarnBreakout": "ನೀವೠಕನಿಷà³à² ಒಬà³à²¬ ಬಳಕೆದಾರರನà³à²¨à³ ಬà³à²°à³‡à²•à³â€Œ ಔಟೠಕೋಣೆಯಲà³à²²à²¿ ಇಡಬೇಕà³.", + "app.createBreakoutRoom.modalDesc": "ಸà³à²³à²¿à²µà³: ಬಳಕೆದಾರರ ಹೆಸರನà³à²¨à³ ನಿರà³à²¦à²¿à²·à³à²Ÿ ಬà³à²°à³‡à²•à³â€Œ ಔಟೠಕೋಣೆಗೆ ನಿಯೋಜಿಸಲೠನೀವೠಅವà³à²—ಳನà³à²¨à³ ಎಳೆಯಿರಿ ಮತà³à²¤à³ ಬಿಡಬಹà³à²¦à³.", + "app.createBreakoutRoom.roomTime": "{0} ನಿಮಿಷಗಳà³", + "app.createBreakoutRoom.numberOfRoomsError": "ಕೊಠಡಿಗಳ ಸಂಖà³à²¯à³† ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ.", + "app.externalVideo.start": "ಹೊಸ ವೀಡಿಯೊವನà³à²¨à³ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.externalVideo.title": "ಬಾಹà³à²¯ ವೀಡಿಯೊವನà³à²¨à³ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.externalVideo.input": "ಬಾಹà³à²¯ ವೀಡಿಯೊ URL", + "app.externalVideo.urlInput": "ವೀಡಿಯೊ URL ಸೇರಿಸಿ", + "app.externalVideo.urlError": "ಈ ವೀಡಿಯೊ URL ಬೆಂಬಲಿಸà³à²µà³à²¦à²¿à²²à³à²²", + "app.externalVideo.close": "ಮà³à²šà³à²šà²¿", + "app.externalVideo.autoPlayWarning": "ಮಾಧà³à²¯à²® ಸಿಂಕà³à²°à³Šà²¨à³ˆà²¸à³‡à²¶à²¨à³ ಅನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಲೠವೀಡಿಯೊವನà³à²¨à³ ಪà³à²²à³‡ ಮಾಡಿ", + "app.network.connection.effective.slow": "ಸಂಪರà³à²• ಸಮಸà³à²¯à³†à²—ಳನà³à²¨à³ ನಾವೠಗಮನಿಸà³à²¤à³à²¤à²¿à²¦à³à²¦à³‡à²µà³†.", + "app.network.connection.effective.slow.help": "ಹೆಚà³à²šà²¿à²¨ ಮಾಹಿತಿ", + "app.externalVideo.noteLabel": "ಗಮನಿಸಿ: ಹಂಚಿದ ಬಾಹà³à²¯ ವೀಡಿಯೊಗಳೠರೆಕಾರà³à²¡à²¿à²‚ಗà³â€Œà²¨à²²à³à²²à²¿ ಗೋಚರಿಸà³à²µà³à²¦à²¿à²²à³à²². ಯೂಟà³à²¯à³‚ಬà³, ವಿಮಿಯೋ, ಇನà³â€Œà²¸à³à²Ÿà³à²°à²•à³à²šà²°à³ ಮೀಡಿಯಾ, ಟà³à²µà²¿à²šà³ ಮತà³à²¤à³ ಡೈಲಿ ಮೋಷನೠURL ಗಳನà³à²¨à³ ಬೆಂಬಲಿಸಲಾಗà³à²¤à³à²¤à²¦à³†.", + "app.actionsBar.actionsDropdown.shareExternalVideo": "ಬಾಹà³à²¯ ವೀಡಿಯೊವನà³à²¨à³ ಹಂಚಿಕೊಳà³à²³à²¿", + "app.actionsBar.actionsDropdown.stopShareExternalVideo": "ಬಾಹà³à²¯ ವೀಡಿಯೊ ಹಂಚಿಕೊಳà³à²³à³à²µà³à²¦à²¨à³à²¨à³ ನಿಲà³à²²à²¿à²¸à²¿", + "app.iOSWarning.label": "ದಯವಿಟà³à²Ÿà³ iOS 12.2 ಅಥವಾ ಹೆಚà³à²šà²¿à²¨à²¦à²•à³à²•à³† ಅಪà³â€Œà²—à³à²°à³‡à²¡à³ ಮಾಡಿ", + "app.legacy.unsupportedBrowser": "ನೀವೠಬೆಂಬಲಿಸದ ಬà³à²°à³Œà²¸à²°à³ ಅನà³à²¨à³ ಬಳಸà³à²¤à³à²¤à²¿à²°à³à²µà²‚ತೆ ತೋರà³à²¤à³à²¤à²¿à²¦à³†. ಪೂರà³à²£ ಬೆಂಬಲಕà³à²•à²¾à²—ಿ ದಯವಿಟà³à²Ÿà³ {0} ಅಥವಾ {1 use ಬಳಸಿ.", + "app.legacy.upgradeBrowser": "ನೀವೠಬೆಂಬಲಿತ ಬà³à²°à³Œà²¸à²°à³â€Œà²¨ ಹಳೆಯ ಆವೃತà³à²¤à²¿à²¯à²¨à³à²¨à³ ಬಳಸà³à²¤à³à²¤à²¿à²°à³à²µà²‚ತೆ ತೋರà³à²¤à³à²¤à²¿à²¦à³†. ಪೂರà³à²£ ಬೆಂಬಲಕà³à²•à²¾à²—ಿ ದಯವಿಟà³à²Ÿà³ ನಿಮà³à²® ಬà³à²°à³Œà²¸à²°à³ ಅನà³à²¨à³ ಅಪà³â€Œà²—à³à²°à³‡à²¡à³ ಮಾಡಿ.", + "app.legacy.criosBrowser": "iOSನಲà³à²²à²¿ ದಯವಿಟà³à²Ÿà³ ಪೂರà³à²£ ಬೆಂಬಲಕà³à²•à²¾à²—ಿ ಸಫಾರಿ ಬಳಸಿ." + +} + diff --git a/bigbluebutton-html5/private/locales/ko_KR.json b/bigbluebutton-html5/private/locales/ko_KR.json index e8650cb1a269977a3257fe0975d983fc30d0fb14..466902f36c3d9fef387fc51b0ab02c6ceedd812a 100644 --- a/bigbluebutton-html5/private/locales/ko_KR.json +++ b/bigbluebutton-html5/private/locales/ko_KR.json @@ -1,14 +1,14 @@ { - "app.home.greeting": "프리ì í…Œì´ì…˜ì€ 바로 시작ë 것입니다 ", + "app.home.greeting": "프리ì í…Œì´ì…˜ì´ 곧 시작ë©ë‹ˆë‹¤ ...", "app.chat.submitLabel": "메시지 보내기", "app.chat.errorMaxMessageLength": "메시지가 {0} 글ìž(들ì´) ê¹ë‹ˆë‹¤ ", - "app.chat.disconnected": "ì—°ê²°ì´ ëŠì–´ì¡ŒìŠµë‹ˆë‹¤. 메시지는 보내지지 않습니다 ", - "app.chat.locked": "ì±„íŒ…ì€ ë§‰í˜”ìŠµë‹ˆë‹¤. 메시지는 보내지지 않습니다 ", - "app.chat.inputLabel": "ì±„íŒ…ì„ ìœ„í•´ 메시지를 {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.titlePrivate": "{0} 와 비공개 채팅", + "app.chat.partnerDisconnected": "{0} ê°€ 미팅ì—ì„œ 나갔습니다 ", "app.chat.closeChatLabel": "{0} 닫기 ", "app.chat.hideChatLabel": "{0} 숨기기", "app.chat.moreMessages": "ì•„ëž˜ìª½ì— ë”ë§Žì€ ë©”ì‹œì§€", @@ -19,8 +19,8 @@ "app.chat.label": "채팅", "app.chat.offline": "오프ë¼ì¸", "app.chat.emptyLogLabel": "채팅 ê¸°ë¡ ì§€ìš°ê¸°", - "app.chat.clearPublicChatMessage": "공개채팅기ë¡ì´ 주관ìžì— ì˜í•´ 지워졌습니다 ", - "app.chat.multi.typing": "ë‹¤ìˆ˜ì˜ ì‚¬ìš©ìžê°€ 타ì´í•‘중입니다 ", + "app.chat.clearPublicChatMessage": "공개 채팅 기ë¡ì´ 주관ìžì— ì˜í•´ 지워졌습니다 ", + "app.chat.multi.typing": "여러 사용ìžê°€ 타ì´í•‘í•˜ê³ ìžˆìŠµë‹ˆë‹¤ ", "app.chat.one.typing": "{0} ê°€ 타ì´í•‘중입니다 ", "app.chat.two.typing": "{0} ê³¼ {1} ì´ íƒ€ì´í•‘중입니다", "app.captions.label": "ìžë§‰", @@ -28,25 +28,25 @@ "app.captions.menu.start": "시작", "app.captions.menu.ariaStart": "ìžë§‰ 쓰기 시작", "app.captions.menu.ariaStartDesc": "캡션 ì—디터 ì—´ê³ ì°½ 닫기 ", - "app.captions.menu.select": "가능한 언어 ì„ íƒ", + "app.captions.menu.select": "사용 가능한 언어 ì„ íƒ", "app.captions.menu.ariaSelect": "ìžë§‰ 언어", - "app.captions.menu.subtitle": "ë‹¹ì‹ ì˜ ì„¸ì…˜ì¤‘ì— ë§ˆê°ëœ ìžë§‰ì„ 위한 언어와 스타ì¼ì„ ì„ íƒí•˜ì„¸ìš”", - "app.captions.menu.title": "마ê°ëœ ìžë§‰", + "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.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.captions.pad.dictationOnDesc": "ìŒì„± ì¸ì‹ 켜기 ", + "app.captions.pad.dictationOffDesc": "ìŒì„± ì¸ì‹ ë„기", "app.note.title": "노트 ê³µìœ ", "app.note.label": "노트", "app.note.hideNoteLabel": "노트 숨기기", @@ -69,19 +69,19 @@ "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.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.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.manageUsersLabel": "ì‚¬ìš©ìž ê´€ë¦¬", "app.userList.userOptions.muteAllLabel": "ëª¨ë“ ì‚¬ìš©ìž ìŒì†Œê±°", "app.userList.userOptions.muteAllDesc": "ë¯¸íŒ…ì•ˆì˜ ëª¨ë“ ì‚¬ìš©ìž ìŒì†Œê±°", "app.userList.userOptions.clearAllLabel": "ëª¨ë“ ìƒíƒœ ì•„ì´ì½˜ 지우기", @@ -89,40 +89,41 @@ "app.userList.userOptions.muteAllExceptPresenterLabel": "발표ìžë¥¼ ì œì™¸í•œ ëª¨ë“ ì‚¬ìš©ìž ìŒì†Œê±°", "app.userList.userOptions.muteAllExceptPresenterDesc": "ë¯¸íŒ…ì•ˆì— ë°œí‘œìžë¥¼ ì œì™¸í•œ ëª¨ë“ ì‚¬ìš©ìž ìŒì†Œê±°", "app.userList.userOptions.unmuteAllLabel": "미팅 ìŒì†Œê±° ë„기", - "app.userList.userOptions.unmuteAllDesc": "미팅 ìŒì†Œê±° ì œê±°", - "app.userList.userOptions.lockViewersLabel": "ê´€ëžŒìž ìž ê·¸ê¸°", + "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.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.webcamsOnlyForModerator": "주관ìžë§Œ 관람ìžì˜ ì›¹ìº ì„ ë³¼ 수 있습니다 (ìž ê¸ˆì„¤ì •ë•Œë¬¸)", + "app.userList.content.participants.options.clearedStatus": "ëª¨ë“ ì‚¬ìš©ìž ìƒíƒœ 지우기", "app.userList.userOptions.enableCam": "ê´€ëžŒìž ì›¹ìº ì‚¬ìš© 가능", "app.userList.userOptions.enableMic": "ê´€ëžŒìž ë§ˆì´í¬ 사용 가능", - "app.userList.userOptions.enablePrivChat": "ê°œì¸ì 채팅 가능", + "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.start": "스í¬ë¦°ê³µìœ 시작", "app.media.screenshare.end": "스í¬ë¦°ê³µìœ 종료 ", + "app.media.screenshare.unavailable": "스í¬ë¦°ê³µìœ 불가", "app.media.screenshare.autoplayBlockedDesc": "발표ìžì˜ 스í¬ë¦°ì„ 보여주기 위해 ë‹¹ì‹ ì˜ í—ˆê°€ê°€ 필요합니다 ", "app.media.screenshare.autoplayAllowLabel": "ê³µìœ ìŠ¤í¬ë¦° 보기", - "app.screenshare.notAllowed": "ì—러: 스í¬ë¦°ì— ì ‘ê·¼í•˜ê¸° 위한 ê¶Œí•œì´ ì•„ì§ ì—†ìŠµë‹ˆë‹¤ ", + "app.screenshare.notAllowed": "ì—러: 스í¬ë¦°ì— ì ‘ê·¼í•˜ê¸° 위한 ê¶Œí•œì´ ë¶€ì—¬ë˜ì§€ 않았습니다.", "app.screenshare.notSupportedError": "ì—러: 스í¬ë¦°ê³µìœ 는 ì•ˆì „í•œ ë„ë©”ì¸ ì—°ê²°(SSL) ì—서만 가능합니다 ", - "app.screenshare.notReadableError": "ì—러: ë‹¹ì‹ ì˜ ìŠ¤í¬ë¦°ì„ ìº¡ì³ í•˜ëŠ”ë°ì„œ ì—러가 ë°œìƒí–ˆìŠµë‹ˆë‹¤ ", + "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.meeting.alertMeetingEndsUnderOneMinute": "ë¯¸íŒ…ì€ 1분 í›„ì— ì¢…ë£Œë©ë‹ˆë‹¤. ", + "app.meeting.alertBreakoutEndsUnderOneMinute": "ë¸Œë ˆì´í¬ì•„ì›ƒì´ 1분 í›„ì— ì¢…ë£Œë©ë‹ˆë‹¤ ", "app.presentation.hide": "프리ì í…Œì´ì…˜ 숨기기", "app.presentation.notificationLabel": "현재 프리ì í…Œì´ì…˜", "app.presentation.slideContent": "슬ë¼ì´ë“œ 컨í…ì¸ ", @@ -142,23 +143,24 @@ "app.presentation.presentationToolbar.fitWidthDesc": "슬ë¼ì´ë“œì˜ ì´ ë„ˆë¹„ ë³´ì´ê¸° ", "app.presentation.presentationToolbar.fitScreenLabel": "스í¬ë¦° 맞추기", "app.presentation.presentationToolbar.fitScreenDesc": "ëª¨ë“ ìŠ¬ë¼ì´ë“œ ë³´ì´ê¸°", - "app.presentation.presentationToolbar.zoomLabel": "확대", - "app.presentation.presentationToolbar.zoomDesc": "프리ì í…Œì´ì…˜ì˜ 확대 ë ˆë²¨ ì¡°ì •", + "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.zoomReset": "확대/축소 초기화", "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.confirmDesc": "변경 사í•ì„ ì €ìž¥í•˜ê³ í”„ë¦¬ì í…Œì´ì…˜ 시작", "app.presentationUploder.dismissLabel": "취소", - "app.presentationUploder.dismissDesc": "ì°½ì„ ë‹«ê³ , ë³€ê²½ì„ ì €ìž¥í•˜ì§€ ì•ŠìŒ", + "app.presentationUploder.dismissDesc": "변경 사í•ì„ ì €ìž¥í•˜ì§€ ì•Šê³ ì°½ 닫기", "app.presentationUploder.dropzoneLabel": "업로드를 위해 파ì¼ì„ ì´ê³³ì— 드래그 하여 넣으세요 ", "app.presentationUploder.dropzoneImagesLabel": "업로드 하기 위해 ì´ë¯¸ì§€íŒŒì¼ì„ ì´ê³³ì— 드래그 하여 넣으세요 ", "app.presentationUploder.browseFilesLabel": "í˜¹ì€ íŒŒì¼íƒìƒ‰ê¸° 열기 ", @@ -168,13 +170,20 @@ "app.presentationUploder.rejectedError": "ì„ íƒí•œ 파ì¼(들)ì´ ê±°ì ˆ ë˜ì—ˆìŠµë‹ˆë‹¤. íŒŒì¼ ì¢…ë¥˜(들)를 살펴 보세요 ", "app.presentationUploder.upload.progress": "업로드중 ({0}%)", "app.presentationUploder.upload.413": "파ì¼ì´ 너무 í½ë‹ˆë‹¤. 여러파ì¼ë¡œ 나누세요 ", + "app.presentationUploder.upload.408": "ìš”ì²í•˜ì‹ 업로드 í† í°ì´ 만료ë˜ì—ˆìŠµë‹ˆë‹¤.", + "app.presentationUploder.upload.404": "404: ìž˜ëª»ëœ ì—…ë¡œë“œ í† í°", + "app.presentationUploder.upload.401": "프리ì í…Œì´ì…˜ 업로드 í† í° ìš”ì²ì´ 실패했습니다.", "app.presentationUploder.conversion.conversionProcessingSlides": "{1} 중 {0} 페ì´ì§€ 진행 ", "app.presentationUploder.conversion.genericConversionStatus": "íŒŒì¼ ë³€í™˜", "app.presentationUploder.conversion.generatingThumbnail": "ì¸ë„¤ì¼ ìƒì„±ì¤‘", "app.presentationUploder.conversion.generatedSlides": "슬ë¼ì´ë“œ ìƒì„±ì¤‘", "app.presentationUploder.conversion.generatingSvg": "SVG ì´ë¯¸ì§€ ìƒì„±ì¤‘", + "app.presentationUploder.conversion.pageCountExceeded": "페ì´ì§€ ì œí•œ 초과. 여러파ì¼ë¡œ 나누세요.", + "app.presentationUploder.conversion.officeDocConversionInvalid": "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": "프리ì í…Œì´ì…˜ ì œê±° ", @@ -185,17 +194,17 @@ "app.poll.pollPaneTitle": "설문조사", "app.poll.quickPollTitle": "ë¹ ë¥¸ì„¤ë¬¸", "app.poll.hidePollDesc": "설문메뉴 숨기기", - "app.poll.customPollInstruction": "맞춤형 설문조사를 ìƒì„±í•˜ê¸° 위해, ì„ íƒë²„튼으로 ë‹¹ì‹ ì˜ ì˜µì…˜ì„ ë„£ìœ¼ì„¸ìš” ", - "app.poll.quickPollInstruction": "설문조사 ì‹œìž‘ì„ ìœ„í•´ ì˜µì…˜ì„ ì„ íƒ í•˜ì„¸ìš” ", + "app.poll.customPollInstruction": "다른 í˜•íƒœì˜ ë‹µì´ í•„ìš”í•˜ë©´ 아래 '맞춤형 설문조사'를 ì„ íƒí•˜ê³ 설문조사를 시작하세요.", + "app.poll.quickPollInstruction": "예ìƒë˜ëŠ” ë‹µì˜ í˜•íƒœë¥¼ ê³ ë¥´ê³ ì„¤ë¬¸ì¡°ì‚¬ë¥¼ 시작하세요.", "app.poll.customPollLabel": "맞춤형 설문조사", "app.poll.startCustomLabel": "맞춤형 설문조사 시작", - "app.poll.activePollInstruction": "ì„¤ë¬¸ì¡°ì‚¬ì— ëŒ€í•œ 실시간 ë°˜ì‘ì„ ë³´ë ¤ë©´, ì´ íŒ¨ë„ì„ ì˜¤í”ˆí•´ 놓으세요. ë‹¹ì‹ ì´ ì¤€ë¹„ ë˜ë©´, ì„¤ë¬¸ì„ ëë‚´ê³ ê²°ê³¼ë¥¼ 공개 하기 위해 '공개 설문 ê²°ê³¼' 를 ì„ íƒ í•˜ì„¸ìš” ", - "app.poll.publishLabel": "공개 설문 ê²°ê³¼", + "app.poll.activePollInstruction": "ì„¤ë¬¸ì¡°ì‚¬ì— ëŒ€í•œ 실시간 ë°˜ì‘ì„ ë³´ë ¤ë©´, ì´ íŒ¨ë„ì„ ì—´ì–´ 놓으세요. ì„¤ë¬¸ì´ ë나면, 아래 '설문 ê²°ê³¼ 공개'를 í´ë¦í•˜ê³ 결과를 알리세요.", + "app.poll.publishLabel": "설문 ê²°ê³¼ 공개", "app.poll.backLabel": "설문옵션으로 ëŒì•„가기", "app.poll.closeLabel": "닫기", "app.poll.waitingLabel": "ì‘답대기 ({0}/{1})", "app.poll.ariaInputCount": "맞춤형 설문 옵션 {1} 중 {0}", - "app.poll.customPlaceholder": "설문 옵션 추가 ", + "app.poll.customPlaceholder": "대답 옵션 추가 ", "app.poll.noPresentationSelected": "프리ì í…Œì´ì…˜ì´ ì„ íƒë˜ì§€ 않았습니다. 하나를 ì„ íƒ í•˜ì„¸ìš” ", "app.poll.clickHereToSelect": "ì„ íƒí•˜ë ¤ë©´ í´ë¦í•˜ì„¸ìš” ", "app.poll.t": "ì°¸", @@ -226,7 +235,7 @@ "app.downloadPresentationButton.label": "ì›ë³¸ 프리ì í…Œì´ì…˜ 다운로드", "app.connectingMessage": "ì ‘ì†ì¤‘ ...", "app.waitingMessage": "ì ‘ì†ëŠê¹€. ìž¬ì ‘ì† ì‹œë„ {0} ì´ˆ ...", - "app.retryNow": "다시 í•´ 보세요 ", + "app.retryNow": "다시 ì‹œë„ í•´ 보세요 ", "app.navBar.settingsDropdown.optionsLabel": "옵션", "app.navBar.settingsDropdown.fullscreenLabel": "í°í™”면으로 ", "app.navBar.settingsDropdown.settingsLabel": "ì„¤ì •", @@ -249,9 +258,10 @@ "app.navBar.toggleUserList.newMessages": "새로운 메시지 알림과 함께", "app.navBar.recording": "ì´ ì„¸ì…˜ì€ ë…¹í™”ì¤‘ìž…ë‹ˆë‹¤ ", "app.navBar.recording.on": "녹화", - "app.navBar.recording.off": "녹화 ì•ˆë¨ ", + "app.navBar.recording.off": "녹화하지 ì•ŠìŒ ", + "app.navBar.emptyAudioBrdige": "í™œì„±í™”ëœ ë§ˆì´í¬ ì—†ìŒ. ë…¹ìŒí•˜ë ¤ë©´ 마ì´í¬ë¥¼ ê³µìœ í•˜ì„¸ìš”.", "app.leaveConfirmation.confirmLabel": "ë– ë‚˜ê¸°", - "app.leaveConfirmation.confirmDesc": "ë¯¸íŒ…ì—†ì´ ë¡œê·¸ ê¸°ë¡ ", + "app.leaveConfirmation.confirmDesc": "미팅ì—ì„œ 로그 아웃", "app.endMeeting.title": "미팅 ë", "app.endMeeting.description": "ì´ ì„¸ì…˜ì„ ì¢…ë£Œ í•˜ì‹œê² ìŠµë‹ˆê¹Œ ?", "app.endMeeting.yesLabel": "예", @@ -267,20 +277,22 @@ "app.actionsBar.muteLabel": "ìŒì†Œê±°", "app.actionsBar.unmuteLabel": "ìŒì†Œê±° í•´ì œ", "app.actionsBar.camOffLabel": "ì¹´ë©”ë¼ ë„기", - "app.actionsBar.raiseLabel": "올리기", + "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.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.increaseFontBtnLabel": "ì‘용프로그램 글ìží¬ê¸° 확대", + "app.submenu.application.decreaseFontBtnLabel": "ì‘용프로그램 ê¸€ìž í¬ê¸° 줄임", "app.submenu.application.currentSize": "현재 {0}", - "app.submenu.application.languageLabel": "ì‹ ì² ì–¸ì–´", + "app.submenu.application.languageLabel": "ì‘용프로그램 언어", "app.submenu.application.languageOptionLabel": "언어 ì„ íƒ", "app.submenu.application.noLocaleOptionLabel": "활성 ë¡œì¼€ì¼ ì—†ìŒ", "app.submenu.audio.micSourceLabel": "마ì´í¬ 소스 ", @@ -308,7 +320,10 @@ "app.settings.save-notification.label": "ì„¤ì •ì´ ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤ ", "app.switch.onLabel": "켜기 ", "app.switch.offLabel": "ë„기", - "app.actionsBar.actionsDropdown.actionsLabel": "활ë™", + "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": "화면 ê³µìœ ", @@ -320,17 +335,17 @@ "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "화면 ê³µìœ ì¤‘ì§€", "app.actionsBar.actionsDropdown.pollBtnLabel": "설문 시작", "app.actionsBar.actionsDropdown.pollBtnDesc": "설문조사 ì°½ ë„우기", - "app.actionsBar.actionsDropdown.saveUserNames": "ì´ë¦„ ì €ìž¥", + "app.actionsBar.actionsDropdown.saveUserNames": "ëª¨ë“ ì‚¬ìš©ìž ì´ë¦„ ì €ìž¥", "app.actionsBar.actionsDropdown.createBreakoutRoom": "ë¸Œë ˆì´í¬ì•„웃 룸 ìƒì„±", "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "í˜„ìž¬ì˜ ë¯¸íŒ…ì„ ë‚˜ëˆ ë¸Œë ˆì´í¬ì•„웃 ìƒì„±", - "app.actionsBar.actionsDropdown.captionsLabel": "ê°ì¶°ì§„ ìžë§‰ 쓰기", + "app.actionsBar.actionsDropdown.captionsLabel": "í쇄ìžë§‰ 쓰기", "app.actionsBar.actionsDropdown.captionsDesc": "ìžë§‰ì°½ ë„우기", - "app.actionsBar.actionsDropdown.takePresenter": "ë°œí‘œìž ìˆ˜ë½", + "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.awayDesc": "부재중으로 ìƒíƒœ 변경", + "app.actionsBar.emojiMenu.raiseHandLabel": "ì†ë“¤ê¸°", "app.actionsBar.emojiMenu.raiseHandDesc": "ì§ˆë¬¸ì„ ìœ„í•´ ì† ë“¤ê¸°", "app.actionsBar.emojiMenu.neutralLabel": "ë¯¸ê²°ì •", "app.actionsBar.emojiMenu.neutralDesc": "ë¯¸ê²°ì •ìœ¼ë¡œ ìƒíƒœ 변경", @@ -340,8 +355,8 @@ "app.actionsBar.emojiMenu.sadDesc": "슬픔으로 ìƒíƒœ 변경", "app.actionsBar.emojiMenu.happyLabel": "행복함", "app.actionsBar.emojiMenu.happyDesc": "행복함으로 ìƒíƒœ 변경", - "app.actionsBar.emojiMenu.noneLabel": "ìƒíƒœ 비우기", - "app.actionsBar.emojiMenu.noneDesc": "ìƒíƒœ 비우기 ", + "app.actionsBar.emojiMenu.noneLabel": "ìƒíƒœ 지우기", + "app.actionsBar.emojiMenu.noneDesc": "ìƒíƒœ 지우기 ", "app.actionsBar.emojiMenu.applauseLabel": "박수", "app.actionsBar.emojiMenu.applauseDesc": "박수로 ìƒíƒœë¥¼ 변경", "app.actionsBar.emojiMenu.thumbsUpLabel": "엄지척", @@ -349,12 +364,24 @@ "app.actionsBar.emojiMenu.thumbsDownLabel": "비공ê°", "app.actionsBar.emojiMenu.thumbsDownDesc": "비공ê°ìœ¼ë¡œ ìƒíƒœë¥¼ 변경", "app.actionsBar.currentStatusDesc": "현재 ìƒíƒœ {0}", - "app.actionsBar.captions.start": "ê°ì¶˜ ìžë§‰ 보기 시작", - "app.actionsBar.captions.stop": "ê°ì¶˜ ìžë§‰ 보기 중지 ", - "app.audioNotification.audioFailedMessage": "오디오 ì ‘ì†ì´ ëŠì–´ì¡ŒìŠµë‹ˆë‹¤ ", - "app.audioNotification.mediaFailedMessage": "마ì´í¬ì •ë³´ ê°€ì ¸ì˜¤ê¸°ê°€ 실패. 보안ìƒíƒœë§Œ 허가ë¨", + "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": "getUserMicMedia 실패. ì•ˆì „í•œ 소스만 í—ˆë½ë¨", "app.audioNotification.closeLabel": "닫기", - "app.audioNotificaion.reconnectingAsListenOnly": "관람ìžì˜ 마ì´í¬ëŠ” ìž ê¹ë‹ˆë‹¤. 듣기만 가능한 ìƒíƒœë¡œ ì ‘ì† ë˜ì—ˆìŠµë‹ˆë‹¤ ", + "app.audioNotificaion.reconnectingAsListenOnly": "관람ìžì˜ 마ì´í¬ëŠ” ìž ê¹ë‹ˆë‹¤. 듣기만 가능한 ìƒíƒœë¡œ ì—°ê²°ë˜ì—ˆìŠµë‹ˆë‹¤ ", "app.breakoutJoinConfirmation.title": "ë¸Œë ˆì´í¬ì•„웃 룸 들어가기", "app.breakoutJoinConfirmation.message": "합류 í•˜ì‹œê² ìŠµë‹ˆê¹Œ ?", "app.breakoutJoinConfirmation.confirmDesc": "ë¸Œë ˆì´í¬ì•„웃 ë£¸ì— í•©ë¥˜í•˜ê¸°", @@ -362,7 +389,7 @@ "app.breakoutJoinConfirmation.dismissDesc": "ë‹«ê³ ë¸Œë ˆì´í¬ì•„웃 룸 합류 ê±°ì ˆ", "app.breakoutJoinConfirmation.freeJoinMessage": "í•©ë¥˜í• ë¸Œë ˆì´í¬ì•„웃 룸 ì„ íƒ", "app.breakoutTimeRemainingMessage": "ë¸Œë ˆì´í¬ì•„웃 룸 ë‚¨ì€ ì‹œê°„ : {0}", - "app.breakoutWillCloseMessage": "시간 종료. ë¸Œë ˆì´í¬ì•„웃 ë£¸ì€ ë‹«íž™ë‹ˆë‹¤ ", + "app.breakoutWillCloseMessage": "시간 종료. ë¸Œë ˆì´í¬ì•„웃 ë£¸ì€ ê³§ 닫힙니다 ", "app.calculatingBreakoutTimeRemaining": "ë‚¨ì€ ì‹œê°„ 계산중 ...", "app.audioModal.ariaTitle": "오디오 ì°½ 합류", "app.audioModal.microphoneLabel": "마ì´í¬", @@ -378,12 +405,12 @@ "app.audioModal.no": "아니요", "app.audioModal.yes.arialabel" : "메아리 들리게 ", "app.audioModal.no.arialabel" : "메아리 들리지 않게 ", - "app.audioModal.echoTestTitle": "ì´ê²ƒì€ 메아리 테스트 입니다. 몇마디 ë§ì„ í•´ 보세요. 들리시나요 ?", + "app.audioModal.echoTestTitle": "메아리 테스트입니다. ë§ì”€í•´ 보세요. 들리시나요 ?", "app.audioModal.settingsTitle": "오디오 ì„¤ì •ì„ ë³€ê²½í•˜ì„¸ìš” ", "app.audioModal.helpTitle": "미디어 ìž¥ì¹˜ì— ë¬¸ì œê°€ 있습니다 ", "app.audioModal.helpText": "마ì´í¬ì— ì ‘ê·¼ê¶Œí•œì„ ì£¼ì—ˆë‚˜ìš” ? ì˜¤ë””ì˜¤ì— í•©ë¥˜í•˜ë ¤ê³ í• ë•Œ 미디어 ìž¥ì¹˜ì— ëŒ€í•œ ê¶Œí•œì„ ë¬»ëŠ” ì°½ì´ ë³´ì¼ê²ë‹ˆë‹¤. 오디오 컨í¼ëŸ°ìŠ¤ì— 합류하기 위해서는 ê¶Œí•œì„ í—ˆìš©í•˜ì…”ì•¼ 합니다. ì´ëŸ° 경우가 아니면, 브ë¼ìš°ì € ì„¤ì •ì—ì„œ 마ì´í¬ ê¶Œí•œì„ ë³€ê²½í•˜ì…”ì•¼ 합니다 ", - "app.audioModal.help.noSSL": "ì´ íŽ˜ì´ì§€ëŠ” ë³´ì•ˆì´ ì•ˆë˜ì–´ 있습니다. ì´ íŽ˜ì´ì§€ì—ì„œ 마ì´í¬ ì‚¬ìš©ì´ ê°€ëŠ¥í•˜ë ¤ë©´ 서버는 HTTPS ë¡œ 서비스 ë˜ì–´ì•¼ 합니다. 서버관리ìžì—게 ë„ì›€ì„ ìš”ì² í•˜ì„¸ìš” ", - "app.audioModal.help.macNotAllowed": "ë‹¹ì‹ ì˜ Mac 시스템 ì„¤ì •ì´ ë§ˆì´í¬ ê¶Œí•œì„ ë§‰ëŠ”ê²ƒ 같아 보입니다. System Preference > Security & Privacy > Privacy > Microphone 으로 가서 사용함으로 ì²´í¬ë˜ì–´ 있는지 í™•ì¸ í•´ 보세요 ", + "app.audioModal.help.noSSL": "ì´ íŽ˜ì´ì§€ëŠ” ì•ˆì „í•˜ì§€ 않습니다. ì´ íŽ˜ì´ì§€ì—ì„œ 마ì´í¬ë¥¼ ì‚¬ìš©í•˜ë ¤ë©´ HTTPSê°€ 지ì›ë˜ì–´ì•¼ 합니다. 서버관리ìžì—게 ë„ì›€ì„ ìš”ì² í•˜ì„¸ìš” ", + "app.audioModal.help.macNotAllowed": "ë‹¹ì‹ ì˜ Mac 시스템 ì„¤ì •ì´ ë§ˆì´í¬ ê¶Œí•œì„ ë§‰ëŠ”ê²ƒ 같아 보입니다. System Preference > Security & Privacy > Privacy > Microphoneì—ì„œ ì‚¬ìš©í•¨ì´ ì²´í¬ë˜ì–´ 있는지 í™•ì¸ í•´ 보세요 ", "app.audioModal.audioDialTitle": "ì „í™”ë¡œ 합류하기", "app.audioDial.audioDialDescription": "다ì´ì–¼", "app.audioDial.audioDialConfrenceText": "컨í¼ëŸ°ìŠ¤ PIN 번호로 들어가기", @@ -393,7 +420,7 @@ "app.audioDial.tipIndicator": "íŒ", "app.audioDial.tipMessage": "ì „í™”ê¸°ì˜ '0' ë²„íŠ¼ì„ ëˆ„ë¥´ë©´, ìŒì†Œê±°/취소가 ë©ë‹ˆë‹¤ ", "app.audioModal.connecting": "ì ‘ì†ì¤‘", - "app.audioModal.connectingEchoTest": "메아리 테스트를 위한 ì ‘ì† ", + "app.audioModal.connectingEchoTest": "메아리 테스트를 위한 ì—°ê²° ", "app.audioManager.joinedAudio": "오디오 컨í¼ëŸ°ìŠ¤ì— 합류하셨습니다 ", "app.audioManager.joinedEcho": "메아리 í…ŒìŠ¤íŠ¸ì— í•©ë¥˜í•˜ì…¨ìŠµë‹ˆë‹¤ ", "app.audioManager.leftAudio": "오디오 컨í¼ëŸ°ìŠ¤ì—ì„œ 나오셨습니다 ", @@ -420,11 +447,11 @@ "app.audio.permissionsOverlay.hint": "ìŒì„± 컨í¼ëŸ°ìŠ¤ì— 참여 하기 위해 미디어 ìž¥ì¹˜ì— ëŒ€í•œ 허가가 í•„ìš” 합니다 :)", "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": "권한 ì¸ì¦ 실패 ", - "app.meeting.logout.userInactivityEjectReason": "ì‚¬ìš©ìž ë¹„í™œì„±í™” ", + "app.meeting.logout.userInactivityEjectReason": "사용ìžê°€ 너무 오래 비활성 ", "app.meeting-ended.rating.legendLabel": "피드백 í‰ê°€", "app.meeting-ended.rating.starLabel": "Star", "app.modal.close": "닫기", @@ -446,7 +473,7 @@ "app.guest.waiting": "합류 허가를 기다림", "app.userList.guest.waitingUsers": "ì‚¬ìš©ìž ê¸°ë‹¤ë¦¼", "app.userList.guest.waitingUsersTitle": "ì‚¬ìš©ìž ê´€ë¦¬", - "app.userList.guest.optionTitle": "ë³´ë¥˜ìž ëŒì•„보기", + "app.userList.guest.optionTitle": "ë³´ë¥˜ì¤‘ì¸ ì‚¬ìš©ìž ê²€í† ", "app.userList.guest.allowAllAuthenticated": "ì¸ì¦ëœ ìžë¥¼ ëª¨ë‘ í—ˆìš©", "app.userList.guest.allowAllGuests": "ëª¨ë“ ê²ŒìŠ¤íŠ¸ 허용", "app.userList.guest.allowEveryone": "ëª¨ë‘ í—ˆìš©", @@ -457,8 +484,8 @@ "app.userList.guest.rememberChoice": "ì„ íƒì„ 기억", "app.user-info.title": "ë””ë ‰í† ë¦¬ 검색", "app.toast.breakoutRoomEnded": "ë¸Œë ˆì´í¬ì•„웃 ë£¸ì´ ì¢…ë£Œ ë˜ì—ˆìŠµë‹ˆë‹¤. 오디오로 다시 합류하세요", - "app.toast.chat.public": "새로운 ê³µë™ ì±„íŒ… 메시지", - "app.toast.chat.private": "새로운 ê°œì¸ì±„팅 메시지", + "app.toast.chat.public": "새로운 공개 채팅 메시지", + "app.toast.chat.private": "새로운 비공개 채팅 메시지", "app.toast.chat.system": "시스템", "app.toast.clearedEmoji.label": "ì´ëª¨ì§€ ìƒíƒœ ì •ë¦¬ ", "app.toast.setEmoji.label": "ì´ëª¨ì§€ ìƒíƒœë¥¼ {0} ë¡œ ì„¤ì •", @@ -468,6 +495,7 @@ "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": "Combo", @@ -477,23 +505,23 @@ "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.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.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.PublicChatLabel": "공개 채팅 메시지 보내기", + "app.lock-viewers.PrivateChatLable": "비공개 채팅 메시지 보내기", "app.lock-viewers.notesLabel": "ê³µìœ ë…¸íŠ¸ 쓰기", "app.lock-viewers.userListLabel": "ì‚¬ìš©ìž ë¦¬ìŠ¤íŠ¸ì— ìžˆëŠ” 다른 ê´€ëžŒìž ë³´ê¸° ", "app.lock-viewers.ariaTitle": "ê´€ëžŒìž ì„¤ì •ì°½ ê³ ì •", @@ -504,10 +532,10 @@ "app.recording.startTitle": "녹화 시작", "app.recording.stopTitle": "녹화 ì¼ì‹œì¤‘지", "app.recording.resumeTitle": "녹화 재시작", - "app.recording.startDescription": "녹화 중단 ë²„íŠ¼ì„ ëˆ„ë¥¸í›„ 녹화 ë²„íŠ¼ì„ ë‹¤ì‹œ 누를 수 있습니다 ", - "app.recording.stopDescription": "녹화를 중단 í•˜ì‹œê² ìŠµë‹ˆê¹Œ ? ë…¹í™”ë²„íŠ¼ì„ ëˆŒëŸ¬ì„œ 녹화를 다시 시작하실 수 있습니다 ", + "app.recording.startDescription": "녹화 ë²„íŠ¼ì„ ëˆŒëŸ¬ 녹화를 ì¼ì‹œì¤‘지 시킬 수 있습니다", + "app.recording.stopDescription": "녹화를 ì¼ì‹œì¤‘지 í•˜ì‹œê² ìŠµë‹ˆê¹Œ ? 녹화 재시작 ë²„íŠ¼ì„ ëˆ„ë¥´ë©´ ê³„ì† ë…¹í™”í• ìˆ˜ 있습니다 ", "app.videoPreview.cameraLabel": "ì¹´ë©”ë¼", - "app.videoPreview.profileLabel": "퀄리티", + "app.videoPreview.profileLabel": "품질", "app.videoPreview.cancelLabel": "취소", "app.videoPreview.closeLabel": "닫기", "app.videoPreview.findingWebcamsLabel": "ì›¹ìº ì°¾ê¸°", @@ -520,12 +548,14 @@ "app.video.joinVideo": "ì›¹ìº ê³µìœ ", "app.video.leaveVideo": "ì›¹ìº ê³µìœ ì¤‘ì§€", "app.video.iceCandidateError": "ICE 추가 ì—러 ", + "app.video.iceConnectionStateError": "ì—°ê²° 실패(ICE 오류 1107)", "app.video.permissionError": "ì›¹ìº ê³µìœ ì¤‘ ì—러. 장치 ê¶Œí•œì„ ì²´í¬ í•˜ì„¸ìš” ", "app.video.sharingError": "ì›¹ìº ê³µìœ ì—러 ", "app.video.notFoundError": "ì›¹ìº ì„ ì°¾ì§€ 못했습니다. ì—°ê²°ì„ í™•ì¸ í•´ 보세요 ", "app.video.notAllowed": "ì›¹ìº ê³µìœ ê¶Œí•œì„ ì°¾ì§€ 못했습니다. 브ë¼ìš°ì € ê¶Œí•œì„ í™•ì¸ í•˜ì„¸ìš” ", "app.video.notSupportedError": "ì•ˆì „í•œ ì ‘ì†ì—서만 ì›¹ìº ê³µìœ ê°€ 가능합니다. SSL ì¸ì¦ì„œì— ë¬¸ì œê°€ 없는지 í™•ì¸ í•˜ì„¸ìš” ", "app.video.notReadableError": "ì›¹ìº ë¹„ë””ì˜¤ë¥¼ ê°€ì ¸ 올 수 없습니다. 다른 프로그램ì—ì„œ ì›¹ìº ì„ ì‚¬ìš©í•˜ê³ ìžˆì§€ ì•Šì€ì§€ í™•ì¸ í•˜ì„¸ìš” ", + "app.video.mediaFlowTimeout1020": "Mediaê°€ ì„œë²„ì— ë„ë‹¬í• ìˆ˜ 없습니다(오류 1020)", "app.video.suggestWebcamLock": "관람ìžì˜ ì›¹ìº ì„ ê°•ì œë¡œ ìž ê¸ˆì„¤ì • í•˜ê² ìŠµë‹ˆê¹Œ ?", "app.video.suggestWebcamLockReason": "( ì´ê²ƒì€ ë¯¸íŒ…ì˜ ì•ˆì •ì„±ì„ ë†’ì—¬ì¤„ê²ƒìž…ë‹ˆë‹¤ )", "app.video.enable": "가능", @@ -542,7 +572,7 @@ "app.video.stats.title": "ì ‘ì† í˜„í™©", "app.video.stats.packetsReceived": "패킷 ì ‘ìˆ˜ ", "app.video.stats.packetsSent": "패킷 ì „ì†¡", - "app.video.stats.packetsLost": "패킷 실종", + "app.video.stats.packetsLost": "패킷 ì†ì‹¤", "app.video.stats.bitrate": "ë¹„íŠ¸ë ˆì´íŠ¸", "app.video.stats.lostPercentage": "ì´ ì‹¤íŒ¨ìœ¨", "app.video.stats.lostRecentPercentage": "최근 실패율", @@ -553,6 +583,16 @@ "app.video.stats.encodeUsagePercent": "ì¸ì½”딩 사용율", "app.video.stats.currentDelay": "현재 지연", "app.fullscreenButton.label": "{0} ì„ ê½‰ì°¬í™”ë©´ìœ¼ë¡œ ", + "app.deskshare.iceConnectionStateError": "스í¬ë¦° ê³µìœ ì¤‘ ì—°ê²° 실패(ICE 오류 1108)", + "app.sfu.mediaServerConnectionError2000": "미디어 ì„œë²„ì— ì—°ê²°í• ìˆ˜ ì—†ìŒ(오류 2000)", + "app.sfu.mediaServerOffline2001": "미디어서버가 êº¼ì ¸ìžˆìŠµë‹ˆë‹¤. 다시 ì‹œë„í•´ 보세요(오류 2001)", + "app.sfu.mediaServerNoResources2002": "ë¯¸ë””ì–´ì„œë²„ì— ê°€ìš©ìžì›ì´ 없습니다(오류 2002)", + "app.sfu.mediaServerRequestTimeout2003": "미디어서버 ìš”ì² ì‹œê°„ì´ ì´ˆê³¼ë˜ì—ˆìŠµë‹ˆë‹¤(오류 2003)", + "app.sfu.serverIceGatheringFailed2021": "미디어서버가 연결대ìƒì„ ìˆ˜ì§‘í• ìˆ˜ 없습니다(ICE 오류 2021)", + "app.sfu.serverIceGatheringFailed2022": "미디어서버 ì—°ê²° 실패(ICE 오류 2022)", + "app.sfu.mediaGenericError2200": "미디어서버가 ìš”ì²ì„ 처리하지 못했습니다(오류 2200)", + "app.sfu.invalidSdp2202":"í´ë¼ì´ì–¸íŠ¸ê°€ ìœ íš¨í•˜ì§€ ì•Šì€ ë¯¸ë””ì–´ ìš”ì²ì„ ìƒì„±í–ˆìŠµë‹ˆë‹¤(SDP 오류 2202)", + "app.sfu.noAvailableCodec2203": "서버ì—ì„œ ì ì ˆí•œ ì½”ë±ì„ ì°¾ì„ ìˆ˜ 없습니다(오류 2203)", "app.meeting.endNotification.ok.label": "예", "app.whiteboard.annotations.poll": "설문결과 공개 ", "app.whiteboard.toolbar.tools": "ë„구들", @@ -592,7 +632,7 @@ "app.videoDock.webcamFocusLabel": "ì´›ì ", "app.videoDock.webcamFocusDesc": "ì„ íƒëœ ì›¹ìº ì— ì§‘ì¤‘", "app.videoDock.webcamUnfocusLabel": "í¬ì»¤ìŠ¤ í•´ì œ", - "app.videoDock.webcamUnfocusDesc": "ì„ íƒëœ ì›¹ìº¡ì— í¬ì»¤ìŠ¤ í•´ì œ", + "app.videoDock.webcamUnfocusDesc": "ì„ íƒëœ ì›¹ìº ì— í¬ì»¤ìŠ¤ í•´ì œ", "app.videoDock.autoplayBlockedDesc": "다른 사용ìžì˜ ì›¹ìº ì„ ë³´ì—¬ 주기 위해 ë‹¹ì‹ ì˜ í—ˆê°€ê°€ í•„ìš” 합니다 ", "app.videoDock.autoplayAllowLabel": "ì›¹ìº ë³´ê¸°", "app.invitation.title": "ë¸Œë ˆì´í¬ì•„웃룸 초대", @@ -618,7 +658,7 @@ "app.createBreakoutRoom.roomName": "{0} ( 룸 - {1} )", "app.createBreakoutRoom.doneLabel": "완료", "app.createBreakoutRoom.nextLabel": "다ìŒ", - "app.createBreakoutRoom.minusRoomTime": "ë¸Œë ˆì´í¬ 아웃 룸 시간 줄ì´ê¸° ", + "app.createBreakoutRoom.minusRoomTime": "ë¸Œë ˆì´í¬ 아웃룸 시간 줄ì´ê¸° ", "app.createBreakoutRoom.addRoomTime": "ë¸Œë ˆì´í¬ 아웃룸 시간 늘리기", "app.createBreakoutRoom.addParticipantLabel": "+ ì°¸ê°€ìž ì¶”ê°€", "app.createBreakoutRoom.freeJoin": "사용ìžê°€ ì°¸ì—¬í• ë¸Œë ˆì´í¬ ì•„ì›ƒë£¸ì„ ì„ íƒí•˜ê²Œ 허가 ", @@ -638,7 +678,7 @@ "app.externalVideo.noteLabel": "알림 : 외부 비디오 ê³µìœ ëŠ” ë…¹í™”ì— ë‚˜íƒ€ë‚˜ì§€ 않습니다. Youtube, Vimeo, Instructure Media, Twitch and Daily Motion URL ì€ ì§€ì›ë©ë‹ˆë‹¤ ", "app.actionsBar.actionsDropdown.shareExternalVideo": "외부 비디오 ê³µìœ ", "app.actionsBar.actionsDropdown.stopShareExternalVideo": "외부 비디오 ê³µìœ ì¤‘ì§€ ", - "app.iOSWarning.label": "iOS 12.2 í˜¹ì€ ê·¸ ì´ìƒìœ¼ë¡œ ì—…ê·¸ë ˆì´ë“œ 하세요 ", + "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/nb_NO.json b/bigbluebutton-html5/private/locales/nb_NO.json index cc3b046240e53928339cb7ec9ea2aeebd8882d3e..560b64d9d1e0265d6cbf978baf58c4a1f9a2778a 100644 --- a/bigbluebutton-html5/private/locales/nb_NO.json +++ b/bigbluebutton-html5/private/locales/nb_NO.json @@ -1,16 +1,16 @@ { "app.home.greeting": "Presentasjonen din starter snart ...", "app.chat.submitLabel": "Send melding", - "app.chat.errorMaxMessageLength": "Meldingen er {0} bokstaver for lang", + "app.chat.errorMaxMessageLength": "Meldingen er {0} bokstav(er) 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.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.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", @@ -21,8 +21,8 @@ "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.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", @@ -41,7 +41,7 @@ "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.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", @@ -63,22 +63,25 @@ "app.userList.presenter": "Presentator", "app.userList.you": "Deg", "app.userList.locked": "LÃ¥st", + "app.userList.byModerator": "av (Moderator)", "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.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.removeConfirmation.label": "Fjern bruker ({0})", + "app.userlist.menu.removeConfirmation.desc": "Er du sikker pÃ¥ at du vil fjerne brukeren? Brukeren vil ikke kunne bli med i webinaret igjen. ", "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.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", @@ -112,7 +115,6 @@ "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", @@ -120,7 +122,7 @@ "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.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", @@ -154,7 +156,7 @@ "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.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", @@ -171,7 +173,10 @@ "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.upload.408": "Forespørsel om oplastingsnøkkel gikk ut pÃ¥ tid", + "app.presentationUploder.upload.404": "404: Ikke godkjent opplastingsnøkkel", + "app.presentationUploder.upload.401": "Foresøprring av opplastingstoken feilet.", + "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 ...", @@ -201,7 +206,7 @@ "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.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", @@ -227,12 +232,12 @@ "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.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.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", @@ -289,7 +294,7 @@ "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.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", @@ -319,8 +324,8 @@ "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.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", @@ -361,13 +366,13 @@ "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.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.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)", @@ -386,7 +391,7 @@ "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.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", @@ -397,7 +402,7 @@ "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.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", @@ -476,8 +481,8 @@ "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.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", @@ -486,14 +491,14 @@ "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.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.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", @@ -580,7 +585,7 @@ "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.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)", @@ -637,12 +642,12 @@ "app.invitation.confirm": "Inviter", "app.createBreakoutRoom.title": "Grupperom", "app.createBreakoutRoom.ariaTitle": "Skjul grupperom", - "app.createBreakoutRoom.breakoutRoomLabel": "Grupperom [0]", + "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.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", @@ -653,7 +658,7 @@ "app.createBreakoutRoom.durationInMinutes": "Varighet (minutter)", "app.createBreakoutRoom.randomlyAssign": "Tilfeldig designert", "app.createBreakoutRoom.endAllBreakouts": "Avslutt alle grupperom", - "app.createBreakoutRoom.roomName": "(0) (Room - (1))", + "app.createBreakoutRoom.roomName": "{0} (Rom - {1})", "app.createBreakoutRoom.doneLabel": "Ferdig", "app.createBreakoutRoom.nextLabel": "Neste", "app.createBreakoutRoom.minusRoomTime": "Forkort tiden til grupperom", @@ -662,7 +667,7 @@ "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.roomTime": "{0} minutter", "app.createBreakoutRoom.numberOfRoomsError": "Ugyldig antall rom", "app.externalVideo.start": "Del en ny video", "app.externalVideo.title": "Del en ekstern video", @@ -677,7 +682,7 @@ "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.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 f5337ac9ce6079ab5d2914efbb7cbebd37c82922..0fad87b7da580fdf68813aec7047194565e8c25a 100644 --- a/bigbluebutton-html5/private/locales/nl.json +++ b/bigbluebutton-html5/private/locales/nl.json @@ -63,6 +63,7 @@ "app.userList.presenter": "Presenter", "app.userList.you": "U", "app.userList.locked": "Vergrendeld", + "app.userList.byModerator": "door (Moderator)", "app.userList.label": "Gebruikerslijst", "app.userList.toggleCompactView.label": "Overschakelen naar de compacte weergavemodus", "app.userList.guest": "Gast", @@ -72,6 +73,8 @@ "app.userList.menu.chat.label": "Start een privéchat", "app.userList.menu.clearStatus.label": "Status wissen", "app.userList.menu.removeUser.label": "Gebruiker verwijderen", + "app.userList.menu.removeConfirmation.label": "Verwijder gebruiker ({0})", + "app.userlist.menu.removeConfirmation.desc": "Bent u zeker dat u deze gebruiker wilt verwijderen? Eenmaal verwijderd, kunnen ze niet meer deelnemen aan deze sessie.", "app.userList.menu.muteUserAudio.label": "Gebruiker dempen", "app.userList.menu.unmuteUserAudio.label": "Gebruiker dempen ongedaan maken", "app.userList.userAriaLabel": "{0} {1} {2} Status {3}", @@ -112,7 +115,7 @@ "app.media.screenshare.start": "Screenshare is gestart", "app.media.screenshare.end": "Screenshare is afgelopen", "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.notSupported": "Screensharing wordt niet ondersteund in deze browser.", "app.media.screenshare.autoplayBlockedDesc": "We hebben uw toestemming nodig om u het scherm van de presentator te tonen.", "app.media.screenshare.autoplayAllowLabel": "Bekijk gedeeld scherm", "app.screenshare.notAllowed": "Fout: toestemming voor toegang tot scherm is niet verleend.", @@ -171,6 +174,9 @@ "app.presentationUploder.rejectedError": "De geselecteerde bestanden zijn geweigerd. Controleer de bestandstype (s).", "app.presentationUploder.upload.progress": "Uploaden ({0}%)", "app.presentationUploder.upload.413": "Bestand is te groot. Splitsen in meerdere bestanden.", + "app.presentationUploder.upload.408": "Verzoek time-out voor uploadtoken.", + "app.presentationUploder.upload.404": "404: Ongeldig uploadtoken", + "app.presentationUploder.upload.401": "Verzoek voor presentatie uploadtoken mislukt.", "app.presentationUploder.conversion.conversionProcessingSlides": "Verwerkingspagina {0} van {1}", "app.presentationUploder.conversion.genericConversionStatus": "Bestand converteren ...", "app.presentationUploder.conversion.generatingThumbnail": "Miniaturen genereren ...", diff --git a/bigbluebutton-html5/private/locales/pl_PL.json b/bigbluebutton-html5/private/locales/pl_PL.json index de6e56057f9a0a2f873dad20a4a5a2d1a9d51a1f..ce7bd707b20922dc45e90d5436c71a6a247f8156 100644 --- a/bigbluebutton-html5/private/locales/pl_PL.json +++ b/bigbluebutton-html5/private/locales/pl_PL.json @@ -111,6 +111,7 @@ "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.unavailable": "UdostÄ™pnianie ekranu niedostÄ™pne", "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.", @@ -259,7 +260,7 @@ "app.leaveConfirmation.confirmLabel": "Wyjdź", "app.leaveConfirmation.confirmDesc": "Wylogowuje CiÄ™ ze spotkania", "app.endMeeting.title": "ZakoÅ„cz spotkanie", - "app.endMeeting.description": "Czy chcesz zakoÅ„czyć tÄ… sesjÄ™?", + "app.endMeeting.description": "Czy chcesz zakoÅ„czyć tÄ™ sesjÄ™?", "app.endMeeting.yesLabel": "Tak", "app.endMeeting.noLabel": "Nie", "app.about.title": "O kliencie", diff --git a/bigbluebutton-html5/private/locales/pt.json b/bigbluebutton-html5/private/locales/pt.json index 27bec1f2582a70ab4df80fdd0e54ffa4b7abda20..a071badfa43a76fab43eb5cd2012d22285609fee 100644 --- a/bigbluebutton-html5/private/locales/pt.json +++ b/bigbluebutton-html5/private/locales/pt.json @@ -63,6 +63,7 @@ "app.userList.presenter": "Apresentador", "app.userList.you": "Eu", "app.userList.locked": "Bloqueado", + "app.userList.byModerator": "pelo (Moderador)", "app.userList.label": "Lista de utilizadores", "app.userList.toggleCompactView.label": "Alternar para o modo de exibição compacto", "app.userList.guest": "Convidado", @@ -72,6 +73,8 @@ "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.removeConfirmation.label": "Remover utilizador ({0})", + "app.userlist.menu.removeConfirmation.desc": "Deseja remover este utilizador? Depois de removido, o mesmo não será capaz de entrar novamente nesta sessão.", "app.userList.menu.muteUserAudio.label": "Silenciar utilizador", "app.userList.menu.unmuteUserAudio.label": "Ativar microfone do utilizador", "app.userList.userAriaLabel": "{0} {1} {2} Estado {3}", @@ -111,6 +114,7 @@ "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.unavailable": "Partilha de ecrã indisponÃvel", "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", @@ -160,8 +164,8 @@ "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", - "app.presentationUploder.dropzoneLabel": "Arraste e ficheiros para aqui para os carregar", - "app.presentationUploder.dropzoneImagesLabel": "Arraste imagens para aqui para as carregar", + "app.presentationUploder.dropzoneLabel": "Arraste ficheiros para aqui, para os carregar", + "app.presentationUploder.dropzoneImagesLabel": "Arraste imagens para aqui, para as carregar", "app.presentationUploder.browseFilesLabel": "ou procure ficheiros", "app.presentationUploder.browseImagesLabel": "ou procure/capture imagens", "app.presentationUploder.fileToUpload": "Para carregar ...", @@ -169,6 +173,9 @@ "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.upload.408": "Timeout no pedido de token de carregamento.", + "app.presentationUploder.upload.404": "404: Token de carregamento inválido", + "app.presentationUploder.upload.401": "O pedido de um token de carregamento de apresentação, falhou.", "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 ...", @@ -325,7 +332,7 @@ "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.presentationDesc": "Carregar a sua apresentação", "app.actionsBar.actionsDropdown.initPollDesc": "Iniciar uma sondagem", "app.actionsBar.actionsDropdown.desktopShareDesc": "Partilhar o seu ecrã com os outros", "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Parar a partilha do seu ecrã com", diff --git a/bigbluebutton-html5/private/locales/pt_BR.json b/bigbluebutton-html5/private/locales/pt_BR.json index 1b9bf8bf356bebde5ff293f7eb2df6c6d6c69012..4efa51fb7ea2791d6e3e8092ffefb49bd9ceed57 100644 --- a/bigbluebutton-html5/private/locales/pt_BR.json +++ b/bigbluebutton-html5/private/locales/pt_BR.json @@ -63,6 +63,7 @@ "app.userList.presenter": "Apresentador", "app.userList.you": "Você", "app.userList.locked": "Bloqueado", + "app.userList.byModerator": "Por (Moderador)", "app.userList.label": "Lista de participantes", "app.userList.toggleCompactView.label": "Alternar para o modo de exibição compacta", "app.userList.guest": "Convidado", @@ -72,6 +73,8 @@ "app.userList.menu.chat.label": "Iniciar bate-papo privado", "app.userList.menu.clearStatus.label": "Limpar status", "app.userList.menu.removeUser.label": "Remover usuário", + "app.userList.menu.removeConfirmation.label": "Remover usuário ({0})", + "app.userlist.menu.removeConfirmation.desc": "Você tem certeza que deseja remover este usuário? Uma vez removido, o usuário não conseguirá entrar novamente nesta sessão.", "app.userList.menu.muteUserAudio.label": "Silenciar usuário", "app.userList.menu.unmuteUserAudio.label": "Desbloquear microfone do usuário", "app.userList.userAriaLabel": "{0} {1} {2} Status {3}", @@ -86,7 +89,7 @@ "app.userList.userOptions.muteAllDesc": "Colocar todos os usuários da sala em mudo", "app.userList.userOptions.clearAllLabel": "Limpar todos os Ãcones de status", "app.userList.userOptions.clearAllDesc": "Limpar o Ãcone de status de todos os usuários", - "app.userList.userOptions.muteAllExceptPresenterLabel": "Colorar todos em mudo, exceto o apresentador", + "app.userList.userOptions.muteAllExceptPresenterLabel": "Colocar todos em mudo, exceto o apresentador", "app.userList.userOptions.muteAllExceptPresenterDesc": "Colocar todos os usuários da sala em mudo, exceto o apresentador", "app.userList.userOptions.unmuteAllLabel": "Tirar a sala do mudo", "app.userList.userOptions.unmuteAllDesc": "Tirar a sala do mudo", @@ -111,6 +114,7 @@ "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.unavailable": "Compartilhamento de tela indisponÃvel", "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.", @@ -169,6 +173,9 @@ "app.presentationUploder.rejectedError": "Os arquivos selecionados foram rejeitados. Por favor, verifique os tipos de arquivos permitidos.", "app.presentationUploder.upload.progress": "Carregando ({0}%)", "app.presentationUploder.upload.413": "O arquivo é muito grande. Por favor, divida o conteúdo em múltiplos arquivos.", + "app.presentationUploder.upload.408": "Excedido o tempo limite para upload", + "app.presentationUploder.upload.404": "404: Upload de token Inválido", + "app.presentationUploder.upload.401": "Falha no upload da apresentação.", "app.presentationUploder.conversion.conversionProcessingSlides": "Processando página {0} de {1}", "app.presentationUploder.conversion.genericConversionStatus": "Convertendo arquivo...", "app.presentationUploder.conversion.generatingThumbnail": "Gerando miniaturas...", diff --git a/bigbluebutton-html5/private/locales/ru.json b/bigbluebutton-html5/private/locales/ru.json index fe2105c58b3a27b27d8024525f47467baa953767..eb4c490192b7b8b77f43edfe12eae53ae8d54e61 100644 --- a/bigbluebutton-html5/private/locales/ru.json +++ b/bigbluebutton-html5/private/locales/ru.json @@ -677,7 +677,7 @@ "app.iOSWarning.label": "ПожалуйÑта, обновитеÑÑŒ до iOS 12.2 или более новой верÑии", "app.legacy.unsupportedBrowser": "Похоже, вы иÑпользуете браузер, который не полноÑтью подедрживаетÑÑ. ПожалуйÑта, иÑпользуйте {0} или {1} Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ поддержки.", "app.legacy.upgradeBrowser": "Похоже, вы иÑпользуете более Ñтарую верÑию подерживаемого браузера. ПожалуйÑта, уÑтановите новую верÑию Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ поддержки.", - "app.legacy.criosBrowser": "Ðа iOS, пожалуйÑта, иÑпользуйте браузер Safari Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ поддержки" + "app.legacy.criosBrowser": "Ðа iOS пожалуйÑта, иÑпользуйте браузер Safari Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ поддержки" } diff --git a/bigbluebutton-html5/private/locales/sl.json b/bigbluebutton-html5/private/locales/sl.json index 870a2090aa938a554adad8d668e18d7a0a826a20..87353ead00aed3aebdc8a11e0ca561cc0ce4362e 100644 --- a/bigbluebutton-html5/private/locales/sl.json +++ b/bigbluebutton-html5/private/locales/sl.json @@ -63,6 +63,7 @@ "app.userList.presenter": "Govornik", "app.userList.you": "Jaz", "app.userList.locked": "Zaklenjeno", + "app.userList.byModerator": "(moderator)", "app.userList.label": "Seznam udeležencev", "app.userList.toggleCompactView.label": "Preklopi naÄin skrÄenega pogleda", "app.userList.guest": "Gost", @@ -72,6 +73,8 @@ "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.removeConfirmation.label": "Odstrani osebo ({0})", + "app.userlist.menu.removeConfirmation.desc": "Ali ste prepriÄani, da želite odstraniti to osebo? Ko je enkrat odstranjena, se to sejo ne more veÄ povezati.", "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}", @@ -112,7 +115,6 @@ "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", @@ -171,6 +173,9 @@ "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.upload.408": "Zahteva poÅ¡iljanja je Äasovno potekla.", + "app.presentationUploder.upload.404": "404: neveljaven žeton poÅ¡iljanja", + "app.presentationUploder.upload.401": "Zahteva po poÅ¡iljanju predstavitve je spodletela.", "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 ...", diff --git a/bigbluebutton-html5/private/locales/tr.json b/bigbluebutton-html5/private/locales/tr.json index 441c94fc856db633bbf9dfce530e5c3aee74d1bc..5df09d1edd8060f5516172160bec6e7637edf892 100644 --- a/bigbluebutton-html5/private/locales/tr.json +++ b/bigbluebutton-html5/private/locales/tr.json @@ -1,207 +1,215 @@ { "app.home.greeting": "Sunumunuz birazdan baÅŸlayacak...", - "app.chat.submitLabel": "Mesaj Gönder", - "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", - "app.chat.inputLabel": "{0} sohbeti için mesaj verisi", - "app.chat.inputPlaceholder": "{0} kullanıcısına mesaj gönder", + "app.chat.submitLabel": "Ä°leti Gönder", + "app.chat.errorMaxMessageLength": "Ä°leti {0} karakter daha uzun", + "app.chat.disconnected": "BaÄŸlantınız kesildi, iletiler gönderilemedi", + "app.chat.locked": "Sohbet kilitli, ileti gönderilemez", + "app.chat.inputLabel": "{0} sohbeti için ileti giriÅŸi", + "app.chat.inputPlaceholder": "{0} kullanıcısına ileti gönder", "app.chat.titlePublic": "Genel Sohbet", "app.chat.titlePrivate": "{0} ile Özel Sohbet", - "app.chat.partnerDisconnected": "{0} görüşmeden ayrıldı", + "app.chat.partnerDisconnected": "{0} toplantıdan ayrıldı", "app.chat.closeChatLabel": "Kapat {0}", "app.chat.hideChatLabel": "Gizle {0}", - "app.chat.moreMessages": "Mesajların devamı aÅŸağıda", - "app.chat.dropdown.options": "Sohbet Seçenekleri", + "app.chat.moreMessages": "Ä°letilerin devamı aÅŸağıda", + "app.chat.dropdown.options": "Sohbet ayarları", "app.chat.dropdown.clear": "Temizle", "app.chat.dropdown.copy": "Kopyala", "app.chat.dropdown.save": "Kaydet", "app.chat.label": "Sohbet", "app.chat.offline": "Çevrimdışı", - "app.chat.emptyLogLabel": "Sohbet sistem kayıtları boÅŸ", - "app.chat.clearPublicChatMessage": "Genel sohbet geçmiÅŸi moderatör tarafından temizlendi", - "app.chat.multi.typing": "Birden çok kullanıcı yazıyor", + "app.chat.emptyLogLabel": "Sohbet günlüğü boÅŸ", + "app.chat.clearPublicChatMessage": "Herkese açık sohbet geçmiÅŸi sorumlu tarafından temizlendi", + "app.chat.multi.typing": "Birkaç kullanıcı yazıyor", "app.chat.one.typing": "{0} yazıyor...", "app.chat.two.typing": "{0} ve {1} yazıyor...", - "app.captions.label": "BaÅŸlıklar", + "app.captions.label": "Alt yazılar", "app.captions.menu.close": "Kapat", "app.captions.menu.start": "BaÅŸlat", - "app.captions.menu.ariaStart": "Altyazı yazmaya baÅŸla", - "app.captions.menu.ariaStartDesc": "Altyazı düzenleyicisini açar ve kipini kapatır", - "app.captions.menu.select": "Mevcut dili seç", - "app.captions.menu.ariaSelect": "Altyazı dili", - "app.captions.menu.subtitle": " Lütfen oturumunuzdaki kapalı baÅŸlıklar için bir dil ve stil seçin.", - "app.captions.menu.title": "Kapalı baÅŸlıklar", + "app.captions.menu.ariaStart": "Alt yazı yazmaya baÅŸla", + "app.captions.menu.ariaStartDesc": "Alt yazı düzenleyicisini açar ve üste açılan pencereyi kapatır", + "app.captions.menu.select": "Kullanılacak dili seçin", + "app.captions.menu.ariaSelect": "Alt yazı dili", + "app.captions.menu.subtitle": " Lütfen oturumunuzdaki alt yazılar için bir dil ve biçem seçin.", + "app.captions.menu.title": "Alt yazılar", "app.captions.menu.fontSize": "Boyut", "app.captions.menu.fontColor": "Metin rengi", - "app.captions.menu.fontFamily": "Font", - "app.captions.menu.backgroundColor": "Arkalan rengi", - "app.captions.menu.previewLabel": "Önizleme", + "app.captions.menu.fontFamily": "Yazı türü", + "app.captions.menu.backgroundColor": "Arka plan rengi", + "app.captions.menu.previewLabel": "Ön izleme", "app.captions.menu.cancelLabel": "Vazgeç", - "app.captions.pad.hide": "Kapalı baÅŸlıkları gizle", - "app.captions.pad.tip": "Editör araç çubuÄŸuna odaklanmak için Esc tuÅŸuna basın", + "app.captions.pad.hide": "Alt yazıları gizle", + "app.captions.pad.tip": "Düzenleyici araç çubuÄŸuna odaklanmak için Esc tuÅŸuna basın", "app.captions.pad.ownership": "Devral", - "app.captions.pad.ownershipTooltip": "{0} baÅŸlığın sahibi olarak atanacaksınız", + "app.captions.pad.ownershipTooltip": "{0} alt yazının sahibi olarak atanacaksınız", "app.captions.pad.interimResult": "Geçici sonuçlar", - "app.captions.pad.dictationStart": "Dikte etmeye baÅŸla", - "app.captions.pad.dictationStop": "Dikte etmeyi durdur", + "app.captions.pad.dictationStart": "Dikteyi baÅŸlat", + "app.captions.pad.dictationStop": "Dikteyi durdur", "app.captions.pad.dictationOnDesc": " KonuÅŸma tanımayı açar", "app.captions.pad.dictationOffDesc": " KonuÅŸma tanımayı kapatır", "app.note.title": "Paylaşılan Notlar", "app.note.label": "Not", "app.note.hideNoteLabel": "Notu gizle", - "app.user.activityCheck": "Kullanıcı etkinliÄŸi kontrolü", - "app.user.activityCheck.label": "Kullanıcının hala toplantıda olup olmadığını kontrol edin ({0})", - "app.user.activityCheck.check": "Kontrol et", - "app.note.tipLabel": "Editör araç çubuÄŸuna odaklanmak için Esc tuÅŸuna basın", + "app.user.activityCheck": "Kullanıcı etkinliÄŸi denetimi", + "app.user.activityCheck.label": "Kullanıcının hala toplantıda olup olmadığını denetleyin ({0})", + "app.user.activityCheck.check": "Denetle", + "app.note.tipLabel": "Düzenleyici araç çubuÄŸuna odaklanmak için Esc tuÅŸuna basın", "app.userList.usersTitle": "Kullanıcılar", "app.userList.participantsTitle": "Katılımcılar", - "app.userList.messagesTitle": "Mesajlar", + "app.userList.messagesTitle": "Ä°letiler", "app.userList.notesTitle": "Notlar", - "app.userList.notesListItem.unreadContent": " Paylaşılan notlar bölümünde yeni içerik var", - "app.userList.captionsTitle": "BaÅŸlıklar", + "app.userList.notesListItem.unreadContent": "Paylaşılan notlar bölümünde yeni içerik var", + "app.userList.captionsTitle": "Alt yazılar", "app.userList.presenter": "Sunucu", "app.userList.you": "Siz", "app.userList.locked": "Kilitli", - "app.userList.label": "Katılımcı listesi", - "app.userList.toggleCompactView.label": "Sıkıştırılmış görünüm moduna geç", - "app.userList.guest": "Misafir", - "app.userList.menuTitleContext": "Mevcut seçenekler", - "app.userList.chatListItem.unreadSingular": "{0} Yeni Mesaj", - "app.userList.chatListItem.unreadPlural": "{0} Yeni Mesaj", - "app.userList.menu.chat.label": "Özel mesaj yaz", + "app.userList.byModerator": "(Sorumlu) tarafından", + "app.userList.label": "Kullanıcı listesi", + "app.userList.toggleCompactView.label": "Basit görünüm kipini aç/kapat", + "app.userList.guest": "Konuk", + "app.userList.menuTitleContext": "Kullanılabilecek seçenekler", + "app.userList.chatListItem.unreadSingular": "{0} Yeni Ä°leti", + "app.userList.chatListItem.unreadPlural": "{0} Yeni Ä°leti", + "app.userList.menu.chat.label": "Özel sohbet baÅŸlat", "app.userList.menu.clearStatus.label": "Durumu temizle", - "app.userList.menu.removeUser.label": "Kullanıcı uzaklaÅŸtır", - "app.userList.menu.muteUserAudio.label": "Kullanıcıyı sustur", - "app.userList.menu.unmuteUserAudio.label": "Kullanıcıyı konuÅŸtur", + "app.userList.menu.removeUser.label": "Kullanıcıyı sil", + "app.userList.menu.removeConfirmation.label": "({0}) kullanıcısını sil", + "app.userlist.menu.removeConfirmation.desc": "Bu kullanıcıyı silmek istediÄŸinize emin misiniz? Silinen kullanıcılar görüşmeye yeniden katılamaz.", + "app.userList.menu.muteUserAudio.label": "Kullanıcının sesini kapat", + "app.userList.menu.unmuteUserAudio.label": "Kullanıcının sesini aç", "app.userList.userAriaLabel": "{0} {1} {2} Durum {3}", - "app.userList.menu.promoteUser.label": "Moderatör yap", + "app.userList.menu.promoteUser.label": "Sorumlu yap", "app.userList.menu.demoteUser.label": "Ä°zleyici yap", - "app.userList.menu.unlockUser.label": "{0} için kilidi kaldır", + "app.userList.menu.unlockUser.label": "{0} kullanıcısının kilidini aç", "app.userList.menu.lockUser.label": "{0} kullanıcısını kilitle", - "app.userList.menu.directoryLookup.label": "Dizin araması", - "app.userList.menu.makePresenter.label": "Sunum yetkisi ver", + "app.userList.menu.directoryLookup.label": "Dizinde Arama", + "app.userList.menu.makePresenter.label": "Sunucu yap", "app.userList.userOptions.manageUsersLabel": "Kullanıcıları yönet", - "app.userList.userOptions.muteAllLabel": "Tüm kullanıcıları sustur", - "app.userList.userOptions.muteAllDesc": "Sınıftaki tüm kullanıcıları susturur", + "app.userList.userOptions.muteAllLabel": "Tüm kullanıcıların sesini kapat", + "app.userList.userOptions.muteAllDesc": "Toplantıdaki tüm kullanıcıların sesini kapatır", "app.userList.userOptions.clearAllLabel": "Tüm durum simgelerini temizle", - "app.userList.userOptions.clearAllDesc": "Tüm durum simgelerini kullanıcılardan temizler", - "app.userList.userOptions.muteAllExceptPresenterLabel": "Sunucu dışındaki tüm kullanıcıları sustur", - "app.userList.userOptions.muteAllExceptPresenterDesc": "Oturumda sunum yapan kiÅŸi dışındaki tüm kullanıcıları susturur", - "app.userList.userOptions.unmuteAllLabel": "Oturum sesini kapatma", - "app.userList.userOptions.unmuteAllDesc": "Oturum sesini aç", - "app.userList.userOptions.lockViewersLabel": "Katılımcıları kilitle", - "app.userList.userOptions.lockViewersDesc": "Oturumun katılımcıları için bazı iÅŸlevleri kilitle", - "app.userList.userOptions.disableCam": "Katılımcıların web kameraları devre dışı", - "app.userList.userOptions.disableMic": "Katılımcıların mikrofonları devre dışı", - "app.userList.userOptions.disablePrivChat": "Özel mesaj devre dışı", - "app.userList.userOptions.disablePubChat": "Genel sohbet devre dışı", - "app.userList.userOptions.disableNote": "Paylaşılan notlar ÅŸu an kilitli", - "app.userList.userOptions.hideUserList": "Kullanıcı listesi artık katılımcılar için gizli", - "app.userList.userOptions.webcamsOnlyForModerator": "Yalnızca yöneticiler katılımcının web kamerasını görebilir (kilit ayarları nedeniyle).", + "app.userList.userOptions.clearAllDesc": "Kullanıcıların tüm durum simgelerini temizler", + "app.userList.userOptions.muteAllExceptPresenterLabel": "Sunucu dışındaki tüm kullanıcıların sesini kapat", + "app.userList.userOptions.muteAllExceptPresenterDesc": "Toplantıda sunum yapan kiÅŸi dışındaki tüm kullanıcıların sesini kapatır", + "app.userList.userOptions.unmuteAllLabel": "Toplantının sesini aç", + "app.userList.userOptions.unmuteAllDesc": "Toplantının sesini açar", + "app.userList.userOptions.lockViewersLabel": "Ä°zleyicileri kilitle", + "app.userList.userOptions.lockViewersDesc": "Bazı özellikleri kilitleyerek toplantı katılımcılarının kullanmasını engelle", + "app.userList.userOptions.disableCam": "Ä°zleyicilerin kameraları kapalı", + "app.userList.userOptions.disableMic": "Ä°zleyicilerin mikrofonları kapalı", + "app.userList.userOptions.disablePrivChat": "Özel sohbet kapalı", + "app.userList.userOptions.disablePubChat": "Herkese açık sohbet kapalı", + "app.userList.userOptions.disableNote": "Paylaşılan notlar kilitlendi", + "app.userList.userOptions.hideUserList": "Kullanıcı listesi izleyicilerden gizlendi", + "app.userList.userOptions.webcamsOnlyForModerator": "Ä°zleyicilerin kamerasını yalnız sorumlular görebilir (kilit ayarları nedeniyle).", "app.userList.content.participants.options.clearedStatus": "Tüm kullanıcı durumları temizlendi", - "app.userList.userOptions.enableCam": "Katılımcıların web kameraları etkin", - "app.userList.userOptions.enableMic": "Kullanıcıların mikrofonları etkin", - "app.userList.userOptions.enablePrivChat": "Özel mesaj etkin", - "app.userList.userOptions.enablePubChat": "Genel sohbet etkin", - "app.userList.userOptions.enableNote": "Paylaşılan notlar ÅŸu an etkin", - "app.userList.userOptions.showUserList": "Kullanıcı listesi artık katılımcılara gösteriliyor", - "app.userList.userOptions.enableOnlyModeratorWebcam": "Web kameranı ÅŸimdi etkinleÅŸtirebilirsin, herkes seni görecek", - "app.media.label": "Medya", - "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.autoplayBlockedDesc": "Size sunum yapan kiÅŸinin ekranını göstermek için izninize ihtiyacımız var.", + "app.userList.userOptions.enableCam": "Ä°zleyicilerin kameraları açık", + "app.userList.userOptions.enableMic": "Ä°zleyicilerin mikrofonları açık", + "app.userList.userOptions.enablePrivChat": "Özel sohbet açık", + "app.userList.userOptions.enablePubChat": "Herkese açık sohbet açık", + "app.userList.userOptions.enableNote": "Paylaşılan notlar açıldı", + "app.userList.userOptions.showUserList": "Kullanıcı listesi katılımcılara gösteriliyor", + "app.userList.userOptions.enableOnlyModeratorWebcam": "Kameranı ÅŸimdi açabilirsin, herkes seni görecek", + "app.media.label": "Ortam", + "app.media.autoplayAlertDesc": "EriÅŸim Ä°zni Ver", + "app.media.screenshare.start": "Ekran paylaşımı baÅŸlatıldı", + "app.media.screenshare.end": "Ekran paylaşımı sonlandırıldı", + "app.media.screenshare.unavailable": "Ekran Paylaşımı Kullanılamıyor", + "app.media.screenshare.notSupported": "Bu web tarayıcıda ekran paylaşımı desteklenmiyor.", + "app.media.screenshare.autoplayBlockedDesc": "Sunucunun ekranını görüntüleyebilmemiz için izin vermeniz gerekiyor.", "app.media.screenshare.autoplayAllowLabel": "Paylaşılan ekranı görüntüle", - "app.screenshare.notAllowed": "Hata: Ekrana eriÅŸim izni verilmedi.", - "app.screenshare.notSupportedError": "Hata: Ekran paylaşımına yalnızca güvenli (SSL) alanlarda izin verilir", - "app.screenshare.notReadableError": "Hata: Ekran görüntüsü almaya çalışırken bir hata oluÅŸtu", - "app.screenshare.genericError": "Hata: Ekran paylaşımında bir hata oluÅŸtu, lütfen tekrar deneyin", - "app.meeting.ended": "Oturum sonlandı", - "app.meeting.meetingTimeRemaining": "Oturumun bitmesine kalan süre: {0}", - "app.meeting.meetingTimeHasEnded": "Zaman bitti. Oturum kısa süre sonra kapanacak", - "app.meeting.endedMessage": "Ana ekrana geri yönlendirileceksiniz", - "app.meeting.alertMeetingEndsUnderOneMinute": "Oturum bir dakika içinde kapanacak.", - "app.meeting.alertBreakoutEndsUnderOneMinute": "Çalışma odası bir dakika içinde kapanıyor.", + "app.screenshare.notAllowed": "Hata: Ekrana eriÅŸim izni verilmemiÅŸ.", + "app.screenshare.notSupportedError": "Hata: Ekran paylaşımına yalnız güvenli (SSL) etki alanlarında izin verilir", + "app.screenshare.notReadableError": "Hata: Ekran görüntünüz alınmaya çalışılırken bir sorun çıktı", + "app.screenshare.genericError": "Hata: Ekran paylaşılırken bir sorun çıktı, lütfen yeniden deneyin", + "app.meeting.ended": "Bu oturum sonlandı", + "app.meeting.meetingTimeRemaining": "Toplantının bitmesine kalan süre: {0}", + "app.meeting.meetingTimeHasEnded": "Zaman doldu. Toplantı birazdan bitirilecek", + "app.meeting.endedMessage": "Açılış ekranına geri döneceksiniz", + "app.meeting.alertMeetingEndsUnderOneMinute": "Toplantı bir dakika içinde bitirilecek.", + "app.meeting.alertBreakoutEndsUnderOneMinute": "Ara bir dakika içinde sone erecek.", "app.presentation.hide": "Sunumu gizle", "app.presentation.notificationLabel": "Geçerli sunum", - "app.presentation.slideContent": "Slayt içeriÄŸi", + "app.presentation.slideContent": "Slayt İçeriÄŸi", "app.presentation.startSlideContent": "Slayt içeriÄŸi baÅŸlangıcı", "app.presentation.endSlideContent": "Slayt içeriÄŸi bitiÅŸi", - "app.presentation.emptySlideContent": "Mevcut slayt için içerik yok", + "app.presentation.emptySlideContent": "Geçerli slayt için içerik yok", "app.presentation.presentationToolbar.noNextSlideDesc": "Sunum sonu", "app.presentation.presentationToolbar.noPrevSlideDesc": "Sunum baÅŸlangıcı", - "app.presentation.presentationToolbar.selectLabel": "Slayt seç", + "app.presentation.presentationToolbar.selectLabel": "Slayt seçin", "app.presentation.presentationToolbar.prevSlideLabel": "Önceki slayt", - "app.presentation.presentationToolbar.prevSlideDesc": "Sunumu önceki slayda deÄŸiÅŸtir", + "app.presentation.presentationToolbar.prevSlideDesc": "Sunumda önceki slayta geçer", "app.presentation.presentationToolbar.nextSlideLabel": "Sonraki slayt", - "app.presentation.presentationToolbar.nextSlideDesc": "Sunumu sonraki slayda deÄŸiÅŸtir", - "app.presentation.presentationToolbar.skipSlideLabel": "Slayt atla", - "app.presentation.presentationToolbar.skipSlideDesc": "Sunumu belirli slayda deÄŸiÅŸtir", + "app.presentation.presentationToolbar.nextSlideDesc": "Sunumda sonraki slayta geçer", + "app.presentation.presentationToolbar.skipSlideLabel": "Slayta atla", + "app.presentation.presentationToolbar.skipSlideDesc": "Sunumda belirli bir slayta geçer", "app.presentation.presentationToolbar.fitWidthLabel": "GeniÅŸliÄŸe sığdır", - "app.presentation.presentationToolbar.fitWidthDesc": "Slayt geniÅŸliÄŸinde göster", + "app.presentation.presentationToolbar.fitWidthDesc": "Slaytın tüm geniÅŸliÄŸini görüntüler", "app.presentation.presentationToolbar.fitScreenLabel": "Ekrana sığdır", - "app.presentation.presentationToolbar.fitScreenDesc": "Tüm slaydı göster", - "app.presentation.presentationToolbar.zoomLabel": "Odak", - "app.presentation.presentationToolbar.zoomDesc": "Sunumun odak seviyesini deÄŸiÅŸtir", - "app.presentation.presentationToolbar.zoomInLabel": "Büyüt", - "app.presentation.presentationToolbar.zoomInDesc": "Sunumu yakınlaÅŸtır", - "app.presentation.presentationToolbar.zoomOutLabel": "Küçült", - "app.presentation.presentationToolbar.zoomOutDesc": "Sunumdan uzaklaÅŸtır", - "app.presentation.presentationToolbar.zoomReset": "YakınlaÅŸtırma Sıfırla", - "app.presentation.presentationToolbar.zoomIndicator": "Mevcut yakınlaÅŸtırma yüzdesi", + "app.presentation.presentationToolbar.fitScreenDesc": "Tüm slaytı görüntüler", + "app.presentation.presentationToolbar.zoomLabel": "YakınlaÅŸtırma", + "app.presentation.presentationToolbar.zoomDesc": "Sunumun yakınlaÅŸtırma düzeyini deÄŸiÅŸtirir", + "app.presentation.presentationToolbar.zoomInLabel": "YakınlaÅŸtır", + "app.presentation.presentationToolbar.zoomInDesc": "Sunumu yakınlaÅŸtırır", + "app.presentation.presentationToolbar.zoomOutLabel": "UzaklaÅŸtır", + "app.presentation.presentationToolbar.zoomOutDesc": "Sunumu uzaklaÅŸtırır", + "app.presentation.presentationToolbar.zoomReset": "YakınlaÅŸtırmayı Sıfırla", + "app.presentation.presentationToolbar.zoomIndicator": "Geçerli yakınlaÅŸtırma yüzdesi", "app.presentation.presentationToolbar.fitToWidth": "GeniÅŸliÄŸe sığdır", "app.presentation.presentationToolbar.fitToPage": "Sayfaya sığdır", - "app.presentation.presentationToolbar.goToSlide": "Slayt {0}", + "app.presentation.presentationToolbar.goToSlide": "{0}. Slayt", "app.presentationUploder.title": "Sunum", - "app.presentationUploder.message": "Sunucu olarak, herhangi bir ofis belgesini veya PDF dosyasını yükleyebilirsiniz. En iyi sonuçları elde etmek için PDF dosyası öneririz. Lütfen saÄŸ taraftaki onay kutusunu kullanarak bir sunumun seçildiÄŸinden emin olun.", + "app.presentationUploder.message": "Sunucu olarak, herhangi bir ofis ya da PDF belgesi yükleyebilirsiniz. En iyi sonucu almak için PDF belgesi kullanmanız önerilir. Lütfen saÄŸ taraftaki daire iÅŸaret kutusunu kullanarak bir sunum seçildiÄŸinden emin olun.", "app.presentationUploder.uploadLabel": "Yükle", "app.presentationUploder.confirmLabel": "Onayla", - "app.presentationUploder.confirmDesc": "DeÄŸiÅŸiklikleri kaydet ve sunumu baÅŸlat", + "app.presentationUploder.confirmDesc": "DeÄŸiÅŸiklikleri kaydedip sunumu baÅŸlat", "app.presentationUploder.dismissLabel": "Vazgeç", - "app.presentationUploder.dismissDesc": "Model penceresini kapatın ve deÄŸiÅŸiklikleri geri alın", - "app.presentationUploder.dropzoneLabel": "Yüklenecek dosyaları buraya sürükleyin", - "app.presentationUploder.dropzoneImagesLabel": "Yüklemek istediÄŸiniz belgeleri buraya sürükleyin", - "app.presentationUploder.browseFilesLabel": "ya da dosyalara göz at", - "app.presentationUploder.browseImagesLabel": "veya dosyalara göz atın", + "app.presentationUploder.dismissDesc": "Ãœste açılan pencereyi kapatıp deÄŸiÅŸiklikleri yok sayın", + "app.presentationUploder.dropzoneLabel": "Yüklenecek dosyaları sürükleyip buraya bırakın", + "app.presentationUploder.dropzoneImagesLabel": "Yüklenecek görselleri sürükleyip buraya bırakın", + "app.presentationUploder.browseFilesLabel": "ya da dosyalara göz atın", + "app.presentationUploder.browseImagesLabel": "ya da görsellere göz atın veya yakalayın", "app.presentationUploder.fileToUpload": "Yüklenecek ...", - "app.presentationUploder.currentBadge": "Åžimdiki", - "app.presentationUploder.rejectedError": "Seçilen dosya(lar) reddedildi. Lütfen dosya tür(ler)ini kontrol edin.", + "app.presentationUploder.currentBadge": "Geçerli", + "app.presentationUploder.rejectedError": "SeçilmiÅŸ dosya(lar) reddedildi. Lütfen dosya türlerini denetleyin.", "app.presentationUploder.upload.progress": "Yükleniyor ({0}%)", "app.presentationUploder.upload.413": "Dosya çok büyük. Lütfen daha küçük dosyalara bölün.", - "app.presentationUploder.conversion.conversionProcessingSlides": "Sayfalar iÅŸleniyor: {0} / {1}", + "app.presentationUploder.upload.408": "Yükleme isteÄŸi kodunun süresi geçmiÅŸ.", + "app.presentationUploder.upload.404": "404: Yükleme kodu geçersiz", + "app.presentationUploder.upload.401": "Sunum yükleme isteÄŸi kodu oluÅŸturulamadı.", + "app.presentationUploder.conversion.conversionProcessingSlides": "{0} / {1} sayfa iÅŸleniyor", "app.presentationUploder.conversion.genericConversionStatus": "Dosya dönüştürülüyor ...", - "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.conversion.generatingThumbnail": "Küçük görseller oluÅŸturuluyor ...", + "app.presentationUploder.conversion.generatedSlides": "Slaytlar oluÅŸturuldu ...", + "app.presentationUploder.conversion.generatingSvg": "SVG görselleri oluÅŸturuluyor ...", + "app.presentationUploder.conversion.pageCountExceeded": "Sayfa sayısı sınırı aşıldı. Lütfen dosyayı birden fazla parçaya bölün.", + "app.presentationUploder.conversion.officeDocConversionInvalid": "Ofis belgesi iÅŸlenemedi. Lütfen yerine bir PDF yükleyin.", + "app.presentationUploder.conversion.officeDocConversionFailed": "Ofis belgesi iÅŸlenemedi. Lütfen yerine bir PDF yükleyin.", + "app.presentationUploder.conversion.pdfHasBigPage": "PDF dosyası dönüştürülemedi, lütfen iyileÅŸtirmeyi deneyin", + "app.presentationUploder.conversion.timeout": "Sorun var, dönüşüm çok uzun sürdü", + "app.presentationUploder.conversion.pageCountFailed": "Sayfa sayısı belirlenemedi.", + "app.presentationUploder.isDownloadableLabel": "Sunum indirilemesin", + "app.presentationUploder.isNotDownloadableLabel": "Sunum indirilebilsin", "app.presentationUploder.removePresentationLabel": "Sunumu kaldır", - "app.presentationUploder.setAsCurrentPresentation": "Sunumu varsayılan olarak ayarla", + "app.presentationUploder.setAsCurrentPresentation": "Sunumu geçerli olarak ayarla", "app.presentationUploder.tableHeading.filename": "Dosya adı", "app.presentationUploder.tableHeading.options": "Seçenekler", "app.presentationUploder.tableHeading.status": "Durum", "app.poll.pollPaneTitle": "Anket", "app.poll.quickPollTitle": "Hızlı Anket", - "app.poll.hidePollDesc": "Anket menüsü bölmesini gizler", - "app.poll.customPollInstruction": "Özel bir anket oluÅŸturmak için aÅŸağıdaki butonu seçin ve seçeneklerinizi girin.", - "app.poll.quickPollInstruction": "Anketinize baÅŸlamak için aÅŸağıdan bir seçenek seçin.", - "app.poll.customPollLabel": "Özel Anket", + "app.poll.hidePollDesc": "Anket menüsü panosunu gizler", + "app.poll.customPollInstruction": "Özel bir anket oluÅŸturmak için aÅŸağıdaki düğmeye tıklayıp seçeneklerinizi yazın.", + "app.poll.quickPollInstruction": "Anketinize baÅŸlamak için aÅŸağıdan bir seçim yapın.", + "app.poll.customPollLabel": "Özel anket", "app.poll.startCustomLabel": "Özel anketi baÅŸlat", - "app.poll.activePollInstruction": "BaÅŸkalarının ankete cevap vermesine izin vermek için bu pencereyi açık bırakın. 'Anket sonuçlarını yayınla'yı seçmek veya geriye gitmek, anketi sonlandıracak.", + "app.poll.activePollInstruction": "Anketinize verilen yanıtları canlı olarak görüntülemek için bu panoyu açık bırakın. Sonuçları yayınlayıp anketi bitirmek için 'Anket sonuçlarını yayınla' üzerine tıklayın.", "app.poll.publishLabel": " Anket sonuçlarını yayınla", - "app.poll.backLabel": "Anket seçeneklerine geri dön", + "app.poll.backLabel": "Anket seçeneklerine dön", "app.poll.closeLabel": "Kapat", - "app.poll.waitingLabel": "Cevap bekleniyor ({0}/{1})", + "app.poll.waitingLabel": "Yanıtlar bekleniyor ({0}/{1})", "app.poll.ariaInputCount": "Özel anket seçeneÄŸi {0} / {1}", "app.poll.customPlaceholder": "Anket seçeneÄŸi ekle", - "app.poll.noPresentationSelected": "Hiçbir sunum seçilmedi! Lütfen birini seçin.", + "app.poll.noPresentationSelected": "Herhangi bir sunum seçilmemiÅŸ! Lütfen bir sunum seçin.", "app.poll.clickHereToSelect": "Seçmek için buraya tıklayın", "app.poll.t": "DoÄŸru", "app.poll.f": "Yanlış", @@ -225,134 +233,134 @@ "app.poll.liveResult.usersTitle": "Kullanıcılar", "app.poll.liveResult.responsesTitle": "Yanıt", "app.polling.pollingTitle": "Anket seçenekleri", - "app.polling.pollAnswerLabel": "{0} Oylamasını cevapla", - "app.polling.pollAnswerDesc": "{0} Oylaması için bu seçeneÄŸi seç", - "app.failedMessage": "Özür dileriz, sunucuya baÄŸlanma sorunu var.", - "app.downloadPresentationButton.label": "Orijinal sunumu indirin", - "app.connectingMessage": "BaÄŸlanıyor ...", - "app.waitingMessage": "BaÄŸlantı kesildi. {0} saniye içinde yeniden baÄŸlanmaya çalışılıyor ...", - "app.retryNow": "Åžimdi tekrar dene", + "app.polling.pollAnswerLabel": "Oylama yanıtı {0}", + "app.polling.pollAnswerDesc": "{0} oyu vermek için bu seçeneÄŸi seçin", + "app.failedMessage": "Özür dileriz, sunucu ile baÄŸlantı kurma sorunu var.", + "app.downloadPresentationButton.label": "Özgün sunumu indir", + "app.connectingMessage": "BaÄŸlantı kuruluyor ...", + "app.waitingMessage": "BaÄŸlantı kesildi. {0} saniye içinde yeniden baÄŸlantı kurulmaya çalışılacak ...", + "app.retryNow": "Åžimdi yeniden dene", "app.navBar.settingsDropdown.optionsLabel": "Seçenekler", - "app.navBar.settingsDropdown.fullscreenLabel": "Tam ekran yap", - "app.navBar.settingsDropdown.settingsLabel": "Ayarları aç", + "app.navBar.settingsDropdown.fullscreenLabel": "Tam ekrana geç", + "app.navBar.settingsDropdown.settingsLabel": "Ayarlar", "app.navBar.settingsDropdown.aboutLabel": "Hakkında", - "app.navBar.settingsDropdown.leaveSessionLabel": "Çıkış", + "app.navBar.settingsDropdown.leaveSessionLabel": "Oturumu kapat", "app.navBar.settingsDropdown.exitFullscreenLabel": "Tam ekrandan çık", "app.navBar.settingsDropdown.fullscreenDesc": "Ayarlar menüsünü tam ekran yap", "app.navBar.settingsDropdown.settingsDesc": "Genel ayarları deÄŸiÅŸtir", - "app.navBar.settingsDropdown.aboutDesc": "Kullanıcı bilgilerini göster", - "app.navBar.settingsDropdown.leaveSessionDesc": "Görüşmeden ayrıl", - "app.navBar.settingsDropdown.exitFullscreenDesc": "Tam ekran modundan çık", - "app.navBar.settingsDropdown.hotkeysLabel": "Klavye kısayolları", - "app.navBar.settingsDropdown.hotkeysDesc": "Kullanılabilir klavye kısayollarının listesi", + "app.navBar.settingsDropdown.aboutDesc": "Ä°stemci bilgilerini göster", + "app.navBar.settingsDropdown.leaveSessionDesc": "Toplantıdan ayrıl", + "app.navBar.settingsDropdown.exitFullscreenDesc": "Tam ekran kipinden çık", + "app.navBar.settingsDropdown.hotkeysLabel": "TuÅŸ takımı kısayolları", + "app.navBar.settingsDropdown.hotkeysDesc": "Kullanılabilecek tuÅŸ takımı kısayollarının listesi", "app.navBar.settingsDropdown.helpLabel": "Yardım", - "app.navBar.settingsDropdown.helpDesc": "Kullanıcıyı video derslerine baÄŸlar (yeni sekme açılır)", - "app.navBar.settingsDropdown.endMeetingDesc": "Mevcut oturumu sonlandırır", - "app.navBar.settingsDropdown.endMeetingLabel": "Oturumu sonlandır", - "app.navBar.userListToggleBtnLabel": "Kullanıcı Listesine Geç", - "app.navBar.toggleUserList.ariaLabel": "Kullanıcılar ve mesajlar arasında geçiÅŸ", - "app.navBar.toggleUserList.newMessages": "yeni mesaj bildirimiyle", - "app.navBar.recording": "Bu oturum kaydediliyor", - "app.navBar.recording.on": "Kaydediyor", - "app.navBar.recording.off": "Kaydetmiyor", - "app.navBar.emptyAudioBrdige": "Aktif mikrofon yok. Bu kayda ses eklemek için mikrofonunuzu paylaşın.", + "app.navBar.settingsDropdown.helpDesc": "Kullanıcıya görüntülü eÄŸitimleri açar (yeni sekmede)", + "app.navBar.settingsDropdown.endMeetingDesc": "Geçerli toplantıyı bitirir", + "app.navBar.settingsDropdown.endMeetingLabel": "Toplantıyı bitir", + "app.navBar.userListToggleBtnLabel": "Kullanıcı listesini aç/kapat", + "app.navBar.toggleUserList.ariaLabel": "Kullanıcılar ve iletiler arasında geçiÅŸ yapar", + "app.navBar.toggleUserList.newMessages": "yeni ileti bildirimiyle", + "app.navBar.recording": "Bu oturum kaydedildi", + "app.navBar.recording.on": "Kaydediliyor", + "app.navBar.recording.off": "Kaydedilmiyor", + "app.navBar.emptyAudioBrdige": "Etkin bir mikrofon yok. Bu kayıda ses eklemek için mikrofonunuzu paylaşın.", "app.leaveConfirmation.confirmLabel": "Ayrıl", - "app.leaveConfirmation.confirmDesc": "Sizi görüşmeden çıkarır", - "app.endMeeting.title": "Oturumu sonlandır", - "app.endMeeting.description": "Bu oturumu sonlandırmak istediÄŸinize emin misiniz?", + "app.leaveConfirmation.confirmDesc": "Toplantı oturumunuzu kapatır", + "app.endMeeting.title": "Toplantıyı bitir", + "app.endMeeting.description": "Bu oturumu bitirmek istediÄŸinize emin misiniz?", "app.endMeeting.yesLabel": "Evet", "app.endMeeting.noLabel": "Hayır", "app.about.title": "Hakkında", - "app.about.version": "Müşteri yapısı:", - "app.about.copyright": "Telif Hakkı:", - "app.about.confirmLabel": "TAMAM", - "app.about.confirmDesc": "TAMAM", + "app.about.version": "Ä°stemci yapımı:", + "app.about.copyright": "Telif hakkı:", + "app.about.confirmLabel": "Tamam", + "app.about.confirmDesc": "Tamam", "app.about.dismissLabel": "Vazgeç", - "app.about.dismissDesc": "Kullanıcı bilgilerini kapat", + "app.about.dismissDesc": "Ä°stemci bilgilerini kapat", "app.actionsBar.changeStatusLabel": "Durumu deÄŸiÅŸtir", - "app.actionsBar.muteLabel": "Sustur", - "app.actionsBar.unmuteLabel": "KonuÅŸtur", + "app.actionsBar.muteLabel": "Sesi kapat", + "app.actionsBar.unmuteLabel": "Sesi aç", "app.actionsBar.camOffLabel": "Kamera kapalı", - "app.actionsBar.raiseLabel": "El Kaldır", + "app.actionsBar.raiseLabel": "El kaldır", "app.actionsBar.label": "Eylemler çubuÄŸu", - "app.actionsBar.actionsDropdown.restorePresentationLabel": "Sunumu onar", - "app.actionsBar.actionsDropdown.restorePresentationDesc": "Sunum kapatıldıktan sonra onarma düğmesi", + "app.actionsBar.actionsDropdown.restorePresentationLabel": "Sunumu geri yükle", + "app.actionsBar.actionsDropdown.restorePresentationDesc": "Kapatıldıktan sonra sunumu geri yükleyen düğme", "app.screenshare.screenShareLabel" : "Ekran paylaşımı", "app.submenu.application.applicationSectionTitle": "Uygulama", - "app.submenu.application.animationsLabel": "Animasyonlar", - "app.submenu.application.audioAlertLabel": "Sohbet Sesli Uyarıları", - "app.submenu.application.pushAlertLabel": "Sohbet Açılır Pencere Uyarıları", - "app.submenu.application.userJoinAudioAlertLabel": "Kullanıcı katılımı için sesli uyarılar", - "app.submenu.application.userJoinPushAlertLabel": "Kullanıcı katılımı için açılır pencere uyarıları", - "app.submenu.application.fontSizeControlLabel": "Yazı büyüklüğü", - "app.submenu.application.increaseFontBtnLabel": "Uygulama Yazı Büyüklüğünü Artır", - "app.submenu.application.decreaseFontBtnLabel": "Uygulama Yazı Büyüklüğünü Azalt", - "app.submenu.application.currentSize": "mevcut {0}", + "app.submenu.application.animationsLabel": "Canlandırmalar", + "app.submenu.application.audioAlertLabel": "Sesli Sohbet Uyarıları", + "app.submenu.application.pushAlertLabel": "Açılır Pencere Sohbet Uyarıları", + "app.submenu.application.userJoinAudioAlertLabel": "Sesli Kullanıcı Katılımı Uyarıları", + "app.submenu.application.userJoinPushAlertLabel": "Açılır Pencere Kullanıcı Katılımı Uyarıları", + "app.submenu.application.fontSizeControlLabel": "Yazı boyutu", + "app.submenu.application.increaseFontBtnLabel": "Uygulamanın yazı boyutunu büyüt", + "app.submenu.application.decreaseFontBtnLabel": "Uygulamanın yazı boyutunu küçült", + "app.submenu.application.currentSize": "ÅŸu anda {0}", "app.submenu.application.languageLabel": "Uygulama Dili", "app.submenu.application.languageOptionLabel": "Dil seçin", - "app.submenu.application.noLocaleOptionLabel": "Aktif yerel ayar bulunamadı", + "app.submenu.application.noLocaleOptionLabel": "Etkin bir dil bulunamadı", "app.submenu.audio.micSourceLabel": "Mikrofon kaynağı", "app.submenu.audio.speakerSourceLabel": "Hoparlör kaynağı", - "app.submenu.audio.streamVolumeLabel": "Sesinizin seviyesi", - "app.submenu.video.title": "Video", + "app.submenu.audio.streamVolumeLabel": "Sesinizin düzeyi", + "app.submenu.video.title": "Görüntü", "app.submenu.video.videoSourceLabel": "Görüntü kaynağı", "app.submenu.video.videoOptionLabel": "Görüntü kaynağını seç", - "app.submenu.video.videoQualityLabel": "Video kalitesi", - "app.submenu.video.qualityOptionLabel": "Video kalitesini seç", - "app.submenu.video.participantsCamLabel": "Katılımcıların web kameraları görüntüleniyor", + "app.submenu.video.videoQualityLabel": "Görüntü kalitesi", + "app.submenu.video.qualityOptionLabel": "Görüntü kalitesini seçin", + "app.submenu.video.participantsCamLabel": "Ä°zleyicilerin kameraları görüntüleniyor", "app.settings.applicationTab.label": "Uygulama ", "app.settings.audioTab.label": "Ses", - "app.settings.videoTab.label": "Video", + "app.settings.videoTab.label": "Görüntü", "app.settings.usersTab.label": "Katılımcılar", "app.settings.main.label": "Ayarlar", "app.settings.main.cancel.label": "Vazgeç", - "app.settings.main.cancel.label.description": "DeÄŸiÅŸiklikleri geri alır ve ayarlar menüsünü kapatır", + "app.settings.main.cancel.label.description": "DeÄŸiÅŸiklikleri yok sayar ve ayarlar menüsünü kapatır", "app.settings.main.save.label": "Kaydet", "app.settings.main.save.label.description": "DeÄŸiÅŸiklikleri kaydeder ve ayarlar menüsünü kapatır", "app.settings.dataSavingTab.label": "Veri tasarrufu", - "app.settings.dataSavingTab.webcam": "Web kameralarını etkinleÅŸtir", - "app.settings.dataSavingTab.screenShare": "Masaüstü paylaşımını etkinleÅŸtir", + "app.settings.dataSavingTab.webcam": "Kameraları aç", + "app.settings.dataSavingTab.screenShare": "Masaüstü paylaşılabilsin", "app.settings.dataSavingTab.description": "Bant geniÅŸliÄŸinden tasarruf etmek için mevcut gösterimi ayarlayın.", "app.settings.save-notification.label": "Ayarlar kaydedildi", "app.switch.onLabel": "AÇIK", "app.switch.offLabel": "KAPALI", - "app.talkingIndicator.ariaMuteDesc" : "Susturmak için kullanıcı seçin", + "app.talkingIndicator.ariaMuteDesc" : "Sesini kapatacağınız kullanıcıyı seçin", "app.talkingIndicator.isTalking" : "{0} konuÅŸuyor", - "app.talkingIndicator.wasTalking" : "{0} konuÅŸmayı durdurdu", + "app.talkingIndicator.wasTalking" : "{0} sustu", "app.actionsBar.actionsDropdown.actionsLabel": "Eylemler", - "app.actionsBar.actionsDropdown.presentationLabel": "Bir sunum yükle", + "app.actionsBar.actionsDropdown.presentationLabel": "Sunum yükle", "app.actionsBar.actionsDropdown.initPollLabel": "Oylama baÅŸlat", "app.actionsBar.actionsDropdown.desktopShareLabel": "Ekranını paylaÅŸ", "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Ekran paylaşımı kilitli", - "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Ekran paylaşımını sonlandır", + "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Ekran paylaşımını bitir", "app.actionsBar.actionsDropdown.presentationDesc": "Sunumunuzu yükleyin", - "app.actionsBar.actionsDropdown.initPollDesc": "Oylama baÅŸlat", - "app.actionsBar.actionsDropdown.desktopShareDesc": "Ekranını diÄŸerleriyle paylaÅŸ", - "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Ekran geniÅŸliÄŸi paylaşımını sonlandır", - "app.actionsBar.actionsDropdown.pollBtnLabel": "Bir anket baÅŸlat", - "app.actionsBar.actionsDropdown.pollBtnDesc": "Anket bölmesini deÄŸiÅŸtirir", + "app.actionsBar.actionsDropdown.initPollDesc": "Bir oylama baÅŸlatın", + "app.actionsBar.actionsDropdown.desktopShareDesc": "Ekranınızı diÄŸer katılımcılarla paylaşın", + "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Ekran paylaşımını ÅŸununla bitir", + "app.actionsBar.actionsDropdown.pollBtnLabel": "Oylama baÅŸlat", + "app.actionsBar.actionsDropdown.pollBtnDesc": "Anket bölmesini açar ya da kapatır", "app.actionsBar.actionsDropdown.saveUserNames": "Kullanıcı adlarını kaydet", "app.actionsBar.actionsDropdown.createBreakoutRoom": "Çalışma odaları oluÅŸtur", - "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "mevcut oturumu bölmek için çalışma odaları oluÅŸtur", - "app.actionsBar.actionsDropdown.captionsLabel": "Kapalı altyazıları yaz", - "app.actionsBar.actionsDropdown.captionsDesc": "BaÅŸlıklar bölmesini deÄŸiÅŸtirir", - "app.actionsBar.actionsDropdown.takePresenter": "EÄŸitimci rolünü al", - "app.actionsBar.actionsDropdown.takePresenterDesc": "Kendinizi yeni eÄŸitimci olarak atayın", + "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "geçerli toplantıyı bölmek için aralar oluÅŸtur", + "app.actionsBar.actionsDropdown.captionsLabel": "Alt yazıları yaz", + "app.actionsBar.actionsDropdown.captionsDesc": "Alt yazı bölmesini açar ya da kapatır", + "app.actionsBar.actionsDropdown.takePresenter": "Sunucu ol", + "app.actionsBar.actionsDropdown.takePresenterDesc": "Kendinizi yeni sunucu olarak atayın", "app.actionsBar.emojiMenu.statusTriggerLabel": "Durumu ayarla", - "app.actionsBar.emojiMenu.awayLabel": "Dışarıda", - "app.actionsBar.emojiMenu.awayDesc": "Durumunu dışarıda yap", - "app.actionsBar.emojiMenu.raiseHandLabel": "El Kaldır", - "app.actionsBar.emojiMenu.raiseHandDesc": "Soru sormak için el kaldırın", + "app.actionsBar.emojiMenu.awayLabel": "Uzakta", + "app.actionsBar.emojiMenu.awayDesc": "Durumunuzu uzakta yapar", + "app.actionsBar.emojiMenu.raiseHandLabel": "El kaldır", + "app.actionsBar.emojiMenu.raiseHandDesc": "Soru sormak için el kaldırır", "app.actionsBar.emojiMenu.neutralLabel": "Kararsız", - "app.actionsBar.emojiMenu.neutralDesc": "Durumunu kararsız yap", - "app.actionsBar.emojiMenu.confusedLabel": "Åžaşırmış", - "app.actionsBar.emojiMenu.confusedDesc": "Durumunu ÅŸaşırmış yap", + "app.actionsBar.emojiMenu.neutralDesc": "Durumunuzu kararsız yapar", + "app.actionsBar.emojiMenu.confusedLabel": "ÅžaÅŸkın", + "app.actionsBar.emojiMenu.confusedDesc": "Durumunuzu ÅŸaşırmış yapar", "app.actionsBar.emojiMenu.sadLabel": "Ãœzgün", - "app.actionsBar.emojiMenu.sadDesc": "Durumunu üzgün yap", + "app.actionsBar.emojiMenu.sadDesc": "Durumunuzu üzgün yapar", "app.actionsBar.emojiMenu.happyLabel": "Mutlu", - "app.actionsBar.emojiMenu.happyDesc": "Durumunu mutlu yap", - "app.actionsBar.emojiMenu.noneLabel": "Durum Temizle", - "app.actionsBar.emojiMenu.noneDesc": "Durumunu temizle", + "app.actionsBar.emojiMenu.happyDesc": "Durumunuzu mutlu yapar", + "app.actionsBar.emojiMenu.noneLabel": "Durumu Temizle", + "app.actionsBar.emojiMenu.noneDesc": "Durumunuzu temizler", "app.actionsBar.emojiMenu.applauseLabel": "Alkış", "app.actionsBar.emojiMenu.applauseDesc": "Durumunu alkış yap", "app.actionsBar.emojiMenu.thumbsUpLabel": "BeÄŸendim", @@ -394,7 +402,7 @@ "app.audioModal.iOSBrowser": "Ses / Video desteklenmiyor", "app.audioModal.iOSErrorDescription": "Åžu anda iOS için Chrome'da ses ve video desteklenmemektedir.", "app.audioModal.iOSErrorRecommendation": "Safari iOS kullanmanızı tavsiye ederiz.", - "app.audioModal.audioChoiceDesc": "Bu görüşmede sesli katılımınızı nasıl yapmak istediÄŸinizi seçin", + "app.audioModal.audioChoiceDesc": "Bu toplantıya katılacağınız ses ayarını seçin", "app.audioModal.unsupportedBrowserLabel": "Tam olarak desteklenmeyen bir tarayıcı kullanıyorsunuz. Lütfen tam destek için {0} veya {1} kullanın.", "app.audioModal.closeLabel": "Kapat", "app.audioModal.yes": "Evet", @@ -443,9 +451,9 @@ "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", - "app.meeting.logout.duplicateUserEjectReason": "Toplantıya katılmaya çalışan mükerrer kullanıcı", + "app.meeting.logout.duplicateUserEjectReason": "Aynı kullanıcı toplantıya ikinci kez katılmaya çalışıyor", "app.meeting.logout.permissionEjectReason": "Ä°zin ihlali nedeniyle çıkarıldı", - "app.meeting.logout.ejectedFromMeeting": "Oturumdan çıkarıldınız", + "app.meeting.logout.ejectedFromMeeting": "Toplantıdan çıkarıldınız", "app.meeting.logout.validateTokenFailedEjectReason": "Yetkilendirme belirteci/token doÄŸrulanamadı", "app.meeting.logout.userInactivityEjectReason": "Kullanıcı uzun süredir aktif deÄŸil", "app.meeting-ended.rating.legendLabel": "Geribildirim oylaması", @@ -458,9 +466,9 @@ "app.dropdown.close": "Kapat", "app.error.400": "Geçersiz istek", "app.error.401": "Yetkisiz", - "app.error.403": "Oturumdan çıkarıldınız", + "app.error.403": "Toplantıdan çıkarıldınız", "app.error.404": "Bulunamadı", - "app.error.410": "Oturum sona erdi", + "app.error.410": "Toplantı bitti", "app.error.500": "Hops, birÅŸeyler ters gitti", "app.error.leaveLabel": "Tekrar giriÅŸ yap", "app.error.fallback.presentation.title": "Bir hata oluÅŸtu", @@ -478,7 +486,7 @@ "app.userList.guest.pendingGuestUsers": "{0} Bekleyen Misafir Kullanıcı", "app.userList.guest.pendingGuestAlert": "Oturuma katıldı ve onayınızı bekliyor.", "app.userList.guest.rememberChoice": "Seçimi hatırla", - "app.user-info.title": "Dizin araması", + "app.user-info.title": "Dizinde Arama", "app.toast.breakoutRoomEnded": "Çalışma odası sonlandı. Lütfen sesli görüşmeye yeniden katılın.", "app.toast.chat.public": "Yeni Genel Sohbet mesajı", "app.toast.chat.private": "Yeni Özel Sohbet mesajı", @@ -486,7 +494,7 @@ "app.toast.clearedEmoji.label": "Emoji durumu temizlendi", "app.toast.setEmoji.label": "Emoji durumu {0} olarak ayarlandı", "app.toast.meetingMuteOn.label": "Tüm kullanıcılar için ses kapatıldı", - "app.toast.meetingMuteOff.label": "Sessiz toplantı kapatıldı", + "app.toast.meetingMuteOff.label": "Toplantının sesi açıldı", "app.notification.recordingStart": "Bu oturum ÅŸu anda kaydediliyor", "app.notification.recordingStop": "Bu oturum ÅŸu anda kaydediliyor", "app.notification.recordingPaused": "Bu oturum artık kaydedilmiyor", @@ -513,8 +521,8 @@ "app.lock-viewers.description": "Bu seçenekler, izleyicilerin belirli özellikleri kullanmasını kısıtlamanıza olanak tanır.", "app.lock-viewers.featuresLable": "Özellik", "app.lock-viewers.lockStatusLabel": "Durum", - "app.lock-viewers.webcamLabel": "Web kamerası paylaÅŸ", - "app.lock-viewers.otherViewersWebcamLabel": "DiÄŸer izleyici web kameralarına bakın", + "app.lock-viewers.webcamLabel": "Kamerayı paylaÅŸ", + "app.lock-viewers.otherViewersWebcamLabel": "DiÄŸer izleyicilerin kameralarına bakın", "app.lock-viewers.microphoneLable": "Mikrofon paylaÅŸ", "app.lock-viewers.PublicChatLabel": "Genel Sohbet mesajı gönder", "app.lock-viewers.PrivateChatLable": "Özel mesaj gönder", @@ -534,32 +542,32 @@ "app.videoPreview.profileLabel": "Kalite", "app.videoPreview.cancelLabel": "Vazgeç", "app.videoPreview.closeLabel": "Kapat", - "app.videoPreview.findingWebcamsLabel": "Web kamerası bulunuyor", + "app.videoPreview.findingWebcamsLabel": "Kameralar bulunuyor", "app.videoPreview.startSharingLabel": "Paylaşımı baÅŸlat", - "app.videoPreview.webcamOptionLabel": "Web kamerası seçin", - "app.videoPreview.webcamPreviewLabel": "Web kamerası ön izlemesi", - "app.videoPreview.webcamSettingsTitle": "Web kamerası ayarları", - "app.videoPreview.webcamNotFoundLabel": "Web kamerası bulunamadı", - "app.videoPreview.profileNotFoundLabel": "Desteklenen kamera profili yok", - "app.video.joinVideo": "Web kamerası paylaÅŸ", - "app.video.leaveVideo": "Web kamerası paylaşımını durdur", + "app.videoPreview.webcamOptionLabel": "Kamera seçin", + "app.videoPreview.webcamPreviewLabel": "Kamera ön izlemesi", + "app.videoPreview.webcamSettingsTitle": "Kamera ayarları", + "app.videoPreview.webcamNotFoundLabel": "Kamera bulunamadı", + "app.videoPreview.profileNotFoundLabel": "Desteklenen bir kamera profili yok", + "app.video.joinVideo": "Kamerayı paylaÅŸ", + "app.video.leaveVideo": "Kamerası paylaşımını durdur", "app.video.iceCandidateError": "ICE adayı ekleme hatası", "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.permissionError": "Kamera paylaşılırken sorun çıktı. Lütfen izinleri denetleyin", + "app.video.sharingError": "Kamera paylaşılırken sorun çıktı", + "app.video.notFoundError": "Kamera bulunamadı. Lütfen baÄŸlı olduÄŸunu denetleyin", + "app.video.notAllowed": "Kamera paylaÅŸma izni verilmemiÅŸ, lütfen web tarayıcı izinlerini verdiÄŸinizden emin olun", + "app.video.notSupportedError": "Kamera görüntüsü yalnız güvenli kaynaklar ile paylaÅŸabilir, SSL sertifikanızın geçerli olduÄŸundan emin olun", + "app.video.notReadableError": "Kamera görüntüsü alınamadı. Lütfen kamerayı baÅŸka bir uygulamanın kullanmadığından emin olun", "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.suggestWebcamLock": "Ä°zleyicilerin kameraları kilitlenmeye zorlansın mı?", + "app.video.suggestWebcamLockReason": "(bu, toplantının kararlılığını artıracak)", "app.video.enable": "EtkinleÅŸtir", "app.video.cancel": "Vazgeç", "app.video.swapCam": "DeÄŸiÅŸtir", - "app.video.swapCamDesc": "Kameraların yönünü deÄŸiÅŸtir", - "app.video.videoLocked": "Web kamerası paylaşımı kapalı", - "app.video.videoButtonDesc": "Web kamerası paylaÅŸ", + "app.video.swapCamDesc": "kameraların yönünü deÄŸiÅŸtir", + "app.video.videoLocked": "Kamera paylaşımı kilitli", + "app.video.videoButtonDesc": "Kamerayı paylaÅŸ", "app.video.videoMenu": "Video menüsü", "app.video.videoMenuDisabled": "Video menüsü Web kamerası ayarlarında devre dışı", "app.video.videoMenuDesc": "Video menüsünü liste olarak aç", @@ -589,7 +597,7 @@ "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.meeting.endNotification.ok.label": "Tamam", "app.whiteboard.annotations.poll": "Anket sonuçları yayınlandı", "app.whiteboard.toolbar.tools": "Araçlar", "app.whiteboard.toolbar.tools.hand": "Sunum araçları", @@ -624,13 +632,13 @@ "app.feedback.subtitle": "BigBlueButton deneyiminizi bizimle paylaşın (zorunlu deÄŸil)", "app.feedback.textarea": "BigBlueButton'ı nasıl daha iyi yapabiliriz?", "app.feedback.sendFeedback": "Geri bildirim yap", - "app.feedback.sendFeedbackDesc": "Bir geri bildirim gönderin ve oturumdan çıkın", + "app.feedback.sendFeedbackDesc": "Bir geri bildirim gönderip toplantıdan çıkın", "app.videoDock.webcamFocusLabel": "Odakla", - "app.videoDock.webcamFocusDesc": "Seçili kamerayı odakla", + "app.videoDock.webcamFocusDesc": "SeçilmiÅŸ kameraya odaklan", "app.videoDock.webcamUnfocusLabel": "UzaklaÅŸ", - "app.videoDock.webcamUnfocusDesc": "Seçili kameradan uzaklaÅŸ", + "app.videoDock.webcamUnfocusDesc": "SeçilmiÅŸ kameradan uzaklaÅŸ", "app.videoDock.autoplayBlockedDesc": "Size diÄŸer kullanıcıların web kameralarını göstermek için izninize ihtiyacımız var.", - "app.videoDock.autoplayAllowLabel": "Web kameraları görüntüle", + "app.videoDock.autoplayAllowLabel": "Kameraları görüntüle", "app.invitation.title": "Çalışma odası davetiyesi", "app.invitation.confirm": "Davet et", "app.createBreakoutRoom.title": "Çalışma Odaları", diff --git a/bigbluebutton-html5/private/locales/tr_TR.json b/bigbluebutton-html5/private/locales/tr_TR.json index 2fce64e7fbc67b22e031960a79f6169d3b2f4dd6..be089638c9ac93c408c69a068e753498aecb51ca 100644 --- a/bigbluebutton-html5/private/locales/tr_TR.json +++ b/bigbluebutton-html5/private/locales/tr_TR.json @@ -34,7 +34,7 @@ "app.captions.menu.title": "Kapalı baÅŸlıklar", "app.captions.menu.fontSize": "Boyut", "app.captions.menu.fontColor": "Metin rengi", - "app.captions.menu.fontFamily": "Font", + "app.captions.menu.fontFamily": "Yazıtipi", "app.captions.menu.backgroundColor": "Arkalan rengi", "app.captions.menu.previewLabel": "Önizleme", "app.captions.menu.cancelLabel": "Vazgeç", @@ -58,7 +58,7 @@ "app.userList.participantsTitle": "Katılımcılar", "app.userList.messagesTitle": "Mesajlar", "app.userList.notesTitle": "Notlar", - "app.userList.notesListItem.unreadContent": " Paylaşılan notlar bölümünde yeni içerik var", + "app.userList.notesListItem.unreadContent": "Paylaşılan notlar bölümünde yeni içerik var", "app.userList.captionsTitle": "BaÅŸlıklar", "app.userList.presenter": "Sunucu", "app.userList.you": "Siz", @@ -72,6 +72,7 @@ "app.userList.menu.chat.label": "Özel mesaj yaz", "app.userList.menu.clearStatus.label": "Durumu temizle", "app.userList.menu.removeUser.label": "Kullanıcı uzaklaÅŸtır", + "app.userList.menu.removeConfirmation.label": "({0}) kullanıcısını kaldır", "app.userList.menu.muteUserAudio.label": "Kullanıcıyı sustur", "app.userList.menu.unmuteUserAudio.label": "Kullanıcıyı konuÅŸtur", "app.userList.userAriaLabel": "{0} {1} {2} Durum {3}", @@ -111,6 +112,7 @@ "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.unavailable": "Ekran Paylaşımı Mevcut DeÄŸil", "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.", @@ -255,7 +257,7 @@ "app.navBar.recording": "Bu oturum kaydediliyor", "app.navBar.recording.on": "Kaydediyor", "app.navBar.recording.off": "Kaydetmiyor", - "app.navBar.emptyAudioBrdige": "Aktif mikrofon yok. Bu kayda ses eklemek için mikrofonunuzu paylaşın.", + "app.navBar.emptyAudioBrdige": "EtkinleÅŸtirilmiÅŸ mikrofon yok. Bu kayda ses eklemek için mikrofonunuzu paylaşın.", "app.leaveConfirmation.confirmLabel": "Ayrıl", "app.leaveConfirmation.confirmDesc": "Sizi görüşmeden çıkarır", "app.endMeeting.title": "Oturumu sonlandır", diff --git a/bigbluebutton-html5/private/locales/uk_UA.json b/bigbluebutton-html5/private/locales/uk_UA.json index 59448707fc6589543f4e592303a2c852b2de9ded..68823dd42baf819d7595f79565f55a15a590b386 100644 --- a/bigbluebutton-html5/private/locales/uk_UA.json +++ b/bigbluebutton-html5/private/locales/uk_UA.json @@ -1,18 +1,18 @@ { - "app.home.greeting": "ЛаÑкаво проÑимо! Ваша Ð¿Ñ€ÐµÐ·ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ñ‡Ð½ÐµÑ‚ÑŒÑÑ Ð½Ð°Ð¹Ð±Ð»Ð¸Ð¶Ñ‡Ð¸Ð¼ чаÑом... ", + "app.home.greeting": "Вітаємо! Ваша Ð¿Ñ€ÐµÐ·ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ñ‡Ð½ÐµÑ‚ÑŒÑÑ Ð½Ð°Ð¹Ð±Ð»Ð¸Ð¶Ñ‡Ð¸Ð¼ чаÑом... ", "app.chat.submitLabel": "ÐадіÑлати повідомленнÑ", - "app.chat.errorMaxMessageLength": "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ–Ð· {0} Ñимвола(-ів) занадто довге", + "app.chat.errorMaxMessageLength": "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· {0} Ñимволів Ñ” занадто довгим", "app.chat.disconnected": "Ви від'єдналиÑÑŒ, Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ можуть бути надіÑлані", - "app.chat.locked": "Чат заблокований, Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ надіÑлати", - "app.chat.inputLabel": "Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‡Ð°Ñ‚Ñƒ {0}", - "app.chat.inputPlaceholder": "ÐадіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ {0}", + "app.chat.locked": "Чат заблоковано, неможливо надіÑлати повідомленнÑ", + "app.chat.inputLabel": "ТекÑÑ‚ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñƒ чаті з {0}", + "app.chat.inputPlaceholder": "ÐадіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ {0}", "app.chat.titlePublic": "Загальний чат", "app.chat.titlePrivate": "Приватний чат з {0}", - "app.chat.partnerDisconnected": "{0} покинув конференцію", + "app.chat.partnerDisconnected": "{0} вийшов з конференції", "app.chat.closeChatLabel": "Закрити {0}", "app.chat.hideChatLabel": "Приховати {0}", "app.chat.moreMessages": "Більше повідомлень нижче", - "app.chat.dropdown.options": "Параметри чату", + "app.chat.dropdown.options": "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñ‚Ñƒ", "app.chat.dropdown.clear": "ОчиÑтити", "app.chat.dropdown.copy": "Скопіювати", "app.chat.dropdown.save": "Зберегти", @@ -37,7 +37,7 @@ "app.captions.menu.fontFamily": "Шрифт", "app.captions.menu.backgroundColor": "Колір фону", "app.captions.menu.previewLabel": "Попередній переглÑд", - "app.captions.menu.cancelLabel": "Відмінити", + "app.captions.menu.cancelLabel": "СкаÑувати", "app.captions.pad.hide": "Приховати Ñубтитри", "app.captions.pad.tip": "ÐатиÑніть Esc, щоб ÑфокуÑувати панель інÑтрументів редактора", "app.captions.pad.ownership": "Стати ведучим", @@ -46,10 +46,10 @@ "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.captions.pad.dictationOffDesc": "Вимкнути Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð²Ð¸", + "app.note.title": "Спільні нотатки", + "app.note.label": "Ðотатки", + "app.note.hideNoteLabel": "Сховати нотатки", "app.user.activityCheck": "Перевірка активноÑÑ‚Ñ– кориÑтувача", "app.user.activityCheck.label": "Перевірте, чи знаходитьÑÑ ÐºÐ¾Ñ€Ð¸Ñтувач у зуÑÑ‚Ñ€iчi ({0})", "app.user.activityCheck.check": "Перевірка", @@ -57,12 +57,13 @@ "app.userList.usersTitle": "КориÑтувачі", "app.userList.participantsTitle": "УчаÑники", "app.userList.messagesTitle": "ПовідомленнÑ", - "app.userList.notesTitle": "Примітки", - "app.userList.notesListItem.unreadContent": "Ð’ розділі \"Спільні примітки\" поÑвилаÑÑŒ нова інформаціÑ", + "app.userList.notesTitle": "Ðотатки", + "app.userList.notesListItem.unreadContent": "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñƒ розділі \"Спільні нотатки\"", "app.userList.captionsTitle": "Субтитри", "app.userList.presenter": "Ведучий", "app.userList.you": "Ви", - "app.userList.locked": "ОбмеженнÑ", + "app.userList.locked": "Обмежено", + "app.userList.byModerator": "(модератор)", "app.userList.label": "СпиÑок кориÑтувачів", "app.userList.toggleCompactView.label": "Увімкнути/вимкнути компактний вид", "app.userList.guest": "ГіÑÑ‚ÑŒ", @@ -70,8 +71,10 @@ "app.userList.chatListItem.unreadSingular": "{0} нове повідомленнÑ", "app.userList.chatListItem.unreadPlural": "{0} нових повідомлень", "app.userList.menu.chat.label": "Почати приватний чат", - "app.userList.menu.clearStatus.label": "ОчиÑтити ÑтатуÑ", + "app.userList.menu.clearStatus.label": "ЗнÑти ÑтатуÑ", "app.userList.menu.removeUser.label": "Виключити кориÑтувача", + "app.userList.menu.removeConfirmation.label": "Вилучити кориÑтувача ({0})", + "app.userlist.menu.removeConfirmation.desc": "ДійÑно вилучити цього кориÑтувача? ПіÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ цей кориÑтувач не зможе повторно приєднатиÑÑ Ð´Ð¾ цього ÑеанÑу.", "app.userList.menu.muteUserAudio.label": "Вимкнути мікрофон кориÑтувача", "app.userList.menu.unmuteUserAudio.label": "Увімкнути мікрофон кориÑтувача", "app.userList.userAriaLabel": "{0} {1} {2} Ð¡Ñ‚Ð°Ñ‚ÑƒÑ {3}", @@ -79,51 +82,52 @@ "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.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.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.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.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.userList.userOptions.enableOnlyModeratorWebcam": "Тепер можна активувати вебкамеру, вÑÑ– бачитимуть ваÑ", + "app.media.label": "Мультимедії", "app.media.autoplayAlertDesc": "Дозволити доÑтуп", "app.media.screenshare.start": "ДемонÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ ÐµÐºÑ€Ð°Ð½Ñƒ розпочалаÑÑ", "app.media.screenshare.end": "ДемонÑтрацію екрану закінчено", - "app.media.screenshare.autoplayBlockedDesc": "Ðам потрібен Ваш дозвіл, щоб показати Вам екран ведучого.", + "app.media.screenshare.unavailable": "ДемонÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ ÐµÐºÑ€Ð°Ð½Ñƒ недоÑтупна", + "app.media.screenshare.autoplayBlockedDesc": "Ðам потрібен дозвіл, щоб показати вам екран ведучого.", "app.media.screenshare.autoplayAllowLabel": "Показати екран, Ñкий демонÑтруєтьÑÑ", "app.screenshare.notAllowed": "Помилка: Дозвіл на доÑтуп до екрану не було надано.", "app.screenshare.notSupportedError": "Помилка: ДемонÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ ÐµÐºÑ€Ð°Ð½Ñƒ можлива тільки на безпечних (SSL) доменах", - "app.screenshare.notReadableError": "Помилка: При Ñпробі захопити екран ÑталаÑÑŒ помилка", + "app.screenshare.notReadableError": "Помилка: При Ñпробі захопити екран ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°", "app.screenshare.genericError": "Помилка: ВідбулаÑÑŒ помилка при демонÑтрації екрану. Будь лаÑка, Ñпробуйте пізніше", - "app.meeting.ended": "Ð¦Ñ ÑеÑÑ–Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»Ð°ÑÑ", + "app.meeting.ended": "Цей ÑÐµÐ°Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ", "app.meeting.meetingTimeRemaining": "ЗалишилоÑÑŒ чаÑу зуÑтрічі: {0}", "app.meeting.meetingTimeHasEnded": "Ð§Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð²ÑÑ. ЗуÑтріч буде закрито незабаром", - "app.meeting.endedMessage": "Ви будете перенаправлені на головний екран", + "app.meeting.endedMessage": "ПереÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° головний екран", "app.meeting.alertMeetingEndsUnderOneMinute": "ЗуÑтріч закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· хвилину.", "app.meeting.alertBreakoutEndsUnderOneMinute": "ЗуÑтріч закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· хвилину.", - "app.presentation.hide": "Приховати презентацію", + "app.presentation.hide": "Згорнути презентацію", "app.presentation.notificationLabel": "Поточна презентаціÑ", "app.presentation.slideContent": "ВміÑÑ‚ Ñлайду", "app.presentation.startSlideContent": "Початок вміÑту Ñлайду", @@ -154,35 +158,38 @@ "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.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": "Вибрані файл(и) відхилено. Перевірте тип файлу(iв).", + "app.presentationUploder.rejectedError": "Ðеможливо завантажити вибрані файл(и). Перевірте тип файлу(iв).", "app.presentationUploder.upload.progress": "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ({0}%)", "app.presentationUploder.upload.413": "Файл занадто великий. Будь лаÑка, розділіть його на декілька файлів меншого розміру.", + "app.presentationUploder.upload.408": "Вичерпано Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ дії токену Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ.", + "app.presentationUploder.upload.404": "404: Ðеправильний токен Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ", + "app.presentationUploder.upload.401": "Ðе вдалоÑÑ Ð·Ð´Ñ–Ð¹Ñнити запит токену Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€ÐµÐ·ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ—.", "app.presentationUploder.conversion.conversionProcessingSlides": "Обробка Ñторінки {0} з {1}", "app.presentationUploder.conversion.genericConversionStatus": "Файл конвертуєтьÑÑ...", - "app.presentationUploder.conversion.generatingThumbnail": "Ð“ÐµÐ½ÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ð½Ñ–Ð°Ñ‚ÑŽÑ€...", - "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.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.isDownloadableLabel": "Заборонити Ð·Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€ÐµÐ·ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ—", + "app.presentationUploder.isNotDownloadableLabel": "Дозволити звантажувати презентацію", + "app.presentationUploder.removePresentationLabel": "Вилучити презентацію", "app.presentationUploder.setAsCurrentPresentation": "Ð’Ñтановити презентацію поточною", "app.presentationUploder.tableHeading.filename": "Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ", "app.presentationUploder.tableHeading.options": "Опції", @@ -190,10 +197,10 @@ "app.poll.pollPaneTitle": "ОпитуваннÑ", "app.poll.quickPollTitle": "Швидке опитуваннÑ", "app.poll.hidePollDesc": "Ховає панель меню опитувань", - "app.poll.customPollInstruction": "Щоб Ñтворити Ñвоє опитуваннÑ, оберіть кнопку нижче Ñ– введіть Ñвої опції.", - "app.poll.quickPollInstruction": "Оберіть опцію нижче, щоб почати опитуваннÑ.", - "app.poll.customPollLabel": "Своє опитуваннÑ", - "app.poll.startCustomLabel": "Розпочати Ñвоє опитуваннÑ", + "app.poll.customPollInstruction": "Ð”Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð¿Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ, натиÑніть відповідну кнопку та зазначте ваші питаннÑ.", + "app.poll.quickPollInstruction": "Виберіть типовий шаблон опитуваннÑ.", + "app.poll.customPollLabel": "ВлаÑне опитуваннÑ", + "app.poll.startCustomLabel": "Розпочати влаÑне опитуваннÑ", "app.poll.activePollInstruction": "Залиште цю панель відкритою, щоб бачити відповіді на Ð¾Ð¿Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð² реальному чаÑÑ–. Коли будете готові, оберіть \"Опублікувати результати голоÑуваннÑ\", щоб опублікувати результати Ñ– завершити опитуваннÑ.", "app.poll.publishLabel": "Опублікувати результати опитуваннÑ", "app.poll.backLabel": "Ðазад до параметрів опитуваннÑ", @@ -201,11 +208,11 @@ "app.poll.waitingLabel": "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° відповіді ({0} / {1})", "app.poll.ariaInputCount": "ÐžÐ¿Ñ†Ñ–Ñ Ñпеціального Ð¾Ð¿Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ {0} з {1}", "app.poll.customPlaceholder": "Додати варіант опитуваннÑ", - "app.poll.noPresentationSelected": "Ðе вибрано жодної презентації! Виберіть одну.", + "app.poll.noPresentationSelected": "Ðе вибрано жодної презентації! Виберіть щонайменше одну.", "app.poll.clickHereToSelect": "ÐатиÑніть тут, щоб вибрати", - "app.poll.t": "Вірно", + "app.poll.t": "Правильно", "app.poll.f": "Хибно", - "app.poll.tf": "Правда / Ðеправда", + "app.poll.tf": "Правильно / хибно", "app.poll.y": "Так", "app.poll.n": "ÐÑ–", "app.poll.yn": "Так / ÐÑ–", @@ -213,7 +220,7 @@ "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.true": "Правильно", "app.poll.answer.false": "Хибно", "app.poll.answer.yes": "Так", "app.poll.answer.no": "ÐÑ–", @@ -230,29 +237,29 @@ "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": "Відкрити параметри", + "app.navBar.settingsDropdown.fullscreenLabel": "Ðа веÑÑŒ екран", + "app.navBar.settingsDropdown.settingsLabel": "ÐалаштуваннÑ", "app.navBar.settingsDropdown.aboutLabel": "Про програму", - "app.navBar.settingsDropdown.leaveSessionLabel": "Вихід", + "app.navBar.settingsDropdown.leaveSessionLabel": "Вийти", "app.navBar.settingsDropdown.exitFullscreenLabel": "Вийти з повноекранного режиму", "app.navBar.settingsDropdown.fullscreenDesc": "Розгорнути меню параметрів на веÑÑŒ екран", - "app.navBar.settingsDropdown.settingsDesc": "Змінити загальні параметри", + "app.navBar.settingsDropdown.settingsDesc": "Змінити загальні налаштуваннÑ", "app.navBar.settingsDropdown.aboutDesc": "Показати інформацію про клієнта", - "app.navBar.settingsDropdown.leaveSessionDesc": "Залишити конференцію", + "app.navBar.settingsDropdown.leaveSessionDesc": "Вийти", "app.navBar.settingsDropdown.exitFullscreenDesc": "Вийти з повноекранного режиму", "app.navBar.settingsDropdown.hotkeysLabel": "ГарÑчі клавіші", - "app.navBar.settingsDropdown.hotkeysDesc": "ÐŸÐµÑ€ÐµÐ¿Ð¸Ñ Ð´Ð¾Ñтупних гарÑчих клавiш", + "app.navBar.settingsDropdown.hotkeysDesc": "Перелік гарÑчих клавiш", "app.navBar.settingsDropdown.helpLabel": "Допомога", - "app.navBar.settingsDropdown.helpDesc": "ПеренаправлÑÑ” кориÑтувача з відеоуроками (відкриваєтьÑÑ Ð½Ð¾Ð²Ð° вкладка)", + "app.navBar.settingsDropdown.helpDesc": "ПереÑпрÑмовує кориÑтувача до відео з інÑтрукціÑми (нова вкладка)", "app.navBar.settingsDropdown.endMeetingDesc": "Завершити зуÑтріч", "app.navBar.settingsDropdown.endMeetingLabel": "Завершити зуÑтріч", "app.navBar.userListToggleBtnLabel": "Увімкнути/вимкнути ÑпиÑок кориÑтувачів", - "app.navBar.toggleUserList.ariaLabel": "Увімкнути/вимкнути кориÑтувачів та повідомленнÑ", + "app.navBar.toggleUserList.ariaLabel": "Перемкнути кориÑтувачів та повідомленнÑ", "app.navBar.toggleUserList.newMessages": "зі ÑповіщеннÑм про нове повідомленнÑ", - "app.navBar.recording": "Ð¦Ñ ÑеÑÑ–Ñ Ð·Ð°Ð¿Ð¸ÑуєтьÑÑ", + "app.navBar.recording": "Цей ÑÐµÐ°Ð½Ñ Ð·Ð°Ð¿Ð¸ÑуєтьÑÑ", "app.navBar.recording.on": "ЗапиÑуєтьÑÑ", "app.navBar.recording.off": "Ðе запиÑуєтьÑÑ", "app.navBar.emptyAudioBrdige": "Ðемає активного мікрофону. Ðктивуйте Ваш мікрофон, щоб додати звук в даний запиÑ.", @@ -265,9 +272,9 @@ "app.about.title": "Про програму", "app.about.version": "Збірка клієнта:", "app.about.copyright": "ÐвторÑьке право:", - "app.about.confirmLabel": "OK", - "app.about.confirmDesc": "OK", - "app.about.dismissLabel": "Відміна", + "app.about.confirmLabel": "Гаразд", + "app.about.confirmDesc": "Гаразд", + "app.about.dismissLabel": "СкаÑувати", "app.about.dismissDesc": "Закрити інформацію про клієнта", "app.actionsBar.changeStatusLabel": "Змінити ÑтатуÑ", "app.actionsBar.muteLabel": "Вимкнути мікрофон", @@ -275,44 +282,44 @@ "app.actionsBar.camOffLabel": "Вимкнути камеру", "app.actionsBar.raiseLabel": "ПіднÑти", "app.actionsBar.label": "Панель дій", - "app.actionsBar.actionsDropdown.restorePresentationLabel": "Повернути презентацію", + "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.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.application.noLocaleOptionLabel": "ВідÑутні переклади", "app.submenu.audio.micSourceLabel": "Джерело мікрофона", "app.submenu.audio.speakerSourceLabel": "Джерело динаміків", - "app.submenu.audio.streamVolumeLabel": "ГучніÑÑ‚ÑŒ аудіо потоку", + "app.submenu.audio.streamVolumeLabel": "ГучніÑÑ‚ÑŒ звукового потоку", "app.submenu.video.title": "Відео", "app.submenu.video.videoSourceLabel": "Джерело відео", "app.submenu.video.videoOptionLabel": "Виберіть джерело відео", "app.submenu.video.videoQualityLabel": "ЯкіÑÑ‚ÑŒ відео", "app.submenu.video.qualityOptionLabel": "Виберіть ÑкіÑÑ‚ÑŒ відео", - "app.submenu.video.participantsCamLabel": "ПереглÑд веб-камер учаÑників", + "app.submenu.video.participantsCamLabel": "ПереглÑд вебкамер учаÑників", "app.settings.applicationTab.label": "ЗаÑтоÑунок", - "app.settings.audioTab.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.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.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": "ВИМК.", @@ -320,49 +327,49 @@ "app.talkingIndicator.isTalking" : "{0} говорить", "app.talkingIndicator.wasTalking" : "{0} закінчив говорити", "app.actionsBar.actionsDropdown.actionsLabel": "Дії", - "app.actionsBar.actionsDropdown.presentationLabel": "Завантажити презентацію", - "app.actionsBar.actionsDropdown.initPollLabel": "Розпочати опитуваннÑ", + "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.initPollDesc": "ОпитуваннÑ", "app.actionsBar.actionsDropdown.desktopShareDesc": "ДемонÑтрувати ваш екран іншим учаÑникам", "app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Зупинити демонÑтрацію екрану", - "app.actionsBar.actionsDropdown.pollBtnLabel": "Розпочати опитуваннÑ", - "app.actionsBar.actionsDropdown.pollBtnDesc": "Вкл/Викл панель опитуваннÑ", + "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.captionsLabel": "Створити приховані Ñубтитри", + "app.actionsBar.actionsDropdown.captionsDesc": "Вмикає панель Ñубтитрів", "app.actionsBar.actionsDropdown.takePresenter": "Стати презентатором", - "app.actionsBar.actionsDropdown.takePresenterDesc": "Ð’Ñтановити Ñебе ведучим/презентером", - "app.actionsBar.emojiMenu.statusTriggerLabel": "Задати ÑтатуÑ", + "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.awayDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"Відійшов\"", + "app.actionsBar.emojiMenu.raiseHandLabel": "ПіднÑто руку", + "app.actionsBar.emojiMenu.raiseHandDesc": "ПіднÑти руку, щоб поÑтавити питаннÑ", "app.actionsBar.emojiMenu.neutralLabel": "Ðе визначивÑÑ", - "app.actionsBar.emojiMenu.neutralDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \\\"Ðе визначивÑÑ\\\"", + "app.actionsBar.emojiMenu.neutralDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"Ðе визначивÑÑ\"", "app.actionsBar.emojiMenu.confusedLabel": "Збентежений", - "app.actionsBar.emojiMenu.confusedDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \\\"Збентежений\\\"", + "app.actionsBar.emojiMenu.confusedDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"Збентежений\"", "app.actionsBar.emojiMenu.sadLabel": "Сумний", - "app.actionsBar.emojiMenu.sadDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \\\"Сумний\\\"", + "app.actionsBar.emojiMenu.sadDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"Сумний\"", "app.actionsBar.emojiMenu.happyLabel": "ЩаÑливий", - "app.actionsBar.emojiMenu.happyDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \\\"ЩаÑливий\\\"", - "app.actionsBar.emojiMenu.noneLabel": "ОчиÑтити ÑтатуÑ", - "app.actionsBar.emojiMenu.noneDesc": "Очищує ваш ÑтатуÑ", + "app.actionsBar.emojiMenu.happyDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"ЩаÑливий\"", + "app.actionsBar.emojiMenu.noneLabel": "ЗнÑти ÑтатуÑ", + "app.actionsBar.emojiMenu.noneDesc": "Знімає ваш ÑтатуÑ", "app.actionsBar.emojiMenu.applauseLabel": "ОплеÑки", - "app.actionsBar.emojiMenu.applauseDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \\\"ОплеÑки\\\"", + "app.actionsBar.emojiMenu.applauseDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"ОплеÑки\"", "app.actionsBar.emojiMenu.thumbsUpLabel": "ПодобаєтьÑÑ", - "app.actionsBar.emojiMenu.thumbsUpDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \\\"ПодобаєтьÑÑ\\\"", + "app.actionsBar.emojiMenu.thumbsUpDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"ПодобаєтьÑÑ\"", "app.actionsBar.emojiMenu.thumbsDownLabel": "Ðе подобаєтьÑÑ", - "app.actionsBar.emojiMenu.thumbsDownDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \\\"Ðе подобаєтьÑÑ\\\"", - "app.actionsBar.currentStatusDesc": "нинішній ÑÑ‚Ð°Ñ‚ÑƒÑ {0}", + "app.actionsBar.emojiMenu.thumbsDownDesc": "Змінює ваш ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"Ðе подобаєтьÑÑ\"", + "app.actionsBar.currentStatusDesc": "поточний ÑÑ‚Ð°Ñ‚ÑƒÑ {0}", "app.actionsBar.captions.start": "Почати переглÑд Ñубтитрів", "app.actionsBar.captions.stop": "Зупинити переглÑд Ñубтитрів", - "app.audioNotification.audioFailedError1001": "WebSocket відключено (Помилка 1001)", + "app.audioNotification.audioFailedError1001": "WebSocket від'єднано (Помилка 1001)", "app.audioNotification.audioFailedError1002": "Ðе можу Ñтворити WebSocket з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (Помилка 1002)", "app.audioNotification.audioFailedError1003": "ВерÑÑ–Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð° не підтримуєтьÑÑ (Помилка 1003)", "app.audioNotification.audioFailedError1004": "Помилка у виклилику (reason={0}) (Помилка 1004)", @@ -374,78 +381,78 @@ "app.audioNotification.audioFailedError1010": "Ð§Ð°Ñ Ð½Ð° ÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾ ( ICE помилка 1010)", "app.audioNotification.audioFailedError1011": "Ð§Ð°Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ð¸Ð¹ÑˆÐ¾Ð² (ICE помилка 1011)", "app.audioNotification.audioFailedError1012": "З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ðµ (ICE помилка 1012)", - "app.audioNotification.audioFailedMessage": "Ðе вдалоÑÑ Ð²Ñтановити аудіо з'єднаннÑ", + "app.audioNotification.audioFailedMessage": "Ðе вдалоÑÑ Ð²Ñтановити голоÑове з'єднаннÑ", "app.audioNotification.mediaFailedMessage": "Помилка getUserMicMedia, дозволені тільки безпечні джерела", "app.audioNotification.closeLabel": "Закрити", - "app.audioNotificaion.reconnectingAsListenOnly": "Ðудіо було заблоковано модератором, ви підключилиÑÑ Ð»Ð¸ÑˆÐµ Ñк Ñлухач", - "app.breakoutJoinConfirmation.title": "ПриєднатиÑÑŒ до зуÑтрічі", + "app.audioNotificaion.reconnectingAsListenOnly": "Звук було заблоковано модератором, Ð²Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ð½Ð¾ лише Ñк Ñлухача", + "app.breakoutJoinConfirmation.title": "ПриєднатиÑÑ Ð´Ð¾ зуÑтрічі", "app.breakoutJoinConfirmation.message": "Чи хочете ви приєднатиÑÑ Ð´Ð¾", "app.breakoutJoinConfirmation.confirmDesc": "Приєднує Ð²Ð°Ñ Ð´Ð¾ зуÑтрічі", "app.breakoutJoinConfirmation.dismissLabel": "СкаÑувати", "app.breakoutJoinConfirmation.dismissDesc": "Закриває та відмовлÑÑ” в приєднанні до зуÑтрічі", - "app.breakoutJoinConfirmation.freeJoinMessage": "Виберіть конференцію до Ñкої бажаєте під’єднатиÑÑ", + "app.breakoutJoinConfirmation.freeJoinMessage": "Виберіть конференцію, до Ñкої бажаєте під’єднатиÑÑ", "app.breakoutTimeRemainingMessage": "Ð§Ð°Ñ Ð´Ð¾ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ„ÐµÑ€ÐµÐ½Ñ†Ñ–Ñ—: {0}", "app.breakoutWillCloseMessage": "Ð§Ð°Ñ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾. Конференцію невдовзі буде закрито", - "app.calculatingBreakoutTimeRemaining": "Підрахунок чаÑу що залишивÑÑ...", - "app.audioModal.ariaTitle": "Вікно Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ аудіо-конференції", + "app.calculatingBreakoutTimeRemaining": "Підрахунок чаÑу, що залишивÑÑ...", + "app.audioModal.ariaTitle": "Вікно Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ голоÑової конференції", "app.audioModal.microphoneLabel": "Мікрофон", "app.audioModal.listenOnlyLabel": "Тільки Ñлухати", - "app.audioModal.audioChoiceLabel": "Як ви хочете увійти в аудіо-конференцію?", - "app.audioModal.iOSBrowser": "Ðудіо/Відео не підтримуєтьÑÑ", - "app.audioModal.iOSErrorDescription": "Ðаразі аудіо та відео в Chrome Ð´Ð»Ñ iOS не підтримуютьÑÑ.", + "app.audioModal.audioChoiceLabel": "Як ви хочете приєднатиÑÑ Ð´Ð¾ голоÑової конференції?", + "app.audioModal.iOSBrowser": "Звук/відео не підтримуєтьÑÑ", + "app.audioModal.iOSErrorDescription": "Ðаразі звук та відео у Chrome Ð´Ð»Ñ iOS не підтримуютьÑÑ.", "app.audioModal.iOSErrorRecommendation": "Ми рекомендуємо викориÑтовувати Safari Ð´Ð»Ñ iOS.", - "app.audioModal.audioChoiceDesc": "Виберіть Ñк брати учаÑÑ‚ÑŒ в аудіоконференції", + "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": "Чи надали ви BigBlueButton дозвіл на доÑтуп до мікрофона? Зверніть увагу, що коли ви намагаєтеÑÑ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ аудіо-конференції, має з'ÑвитиÑÑ Ð´Ñ–Ð°Ð»Ð¾Ð³Ð¾Ð²Ðµ вікно, в Ñкому Ð’Ð°Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ð°ÑŽÑ‚ÑŒ дозвіл на Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°-приÑтрою, будь лаÑка, надайте його, щоб приєднатиÑÑ Ð´Ð¾ аудіо-конференції. Якщо цього не відбулоÑÑ, Ñпробуйте змінити дозволи мікрофона у налаштуваннÑÑ… вашого веб-переглÑдача.", + "app.audioModal.yes.arialabel" : "Чутно луну", + "app.audioModal.no.arialabel" : "Луну не чутно", + "app.audioModal.echoTestTitle": "Перевірка на Ð²Ñ–Ð´Ð»ÑƒÐ½Ð½Ñ Ð³Ð¾Ð»Ð¾Ñу. Промовте кілька Ñлів. Чи чуєте ви Ñебе в динаміках?", + "app.audioModal.settingsTitle": "Змінити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð²ÑƒÐºÑƒ", + "app.audioModal.helpTitle": "З'ÑвилиÑÑ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð¸ з приÑтроÑми Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð²ÑƒÐºÑƒ", + "app.audioModal.helpText": "Чи ви надали BigBlueButton дозвіл на доÑтуп до мікрофона? Зверніть увагу, що коли ви намагаєтеÑÑ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ голоÑової конференції, має з'ÑвитиÑÑ Ð´Ñ–Ð°Ð»Ð¾Ð³Ð¾Ð²Ðµ вікно, в Ñкому Ð²Ð°Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ð°ÑŽÑ‚ÑŒ про дозвіл на під'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¼ÑƒÐ»ÑŒÑ‚Ð¸Ð¼ÐµÐ´Ñ–Ð¹Ð½Ð¸Ñ… приÑтроїв. Будь лаÑка, прийміть це, щоб вÑтановити голоÑовий зв'Ñзок. Якщо цього не відбулоÑÑ Ñпробуйте змінити дозволи мікрофона у налаштуваннÑÑ… вашого переглÑдача.", "app.audioModal.help.noSSL": "Сторінка незахищена. Щоб дозволити доÑтуп до мікрофона, Ñторінка повинна обÑлуговуватиÑÑ Ñ‡ÐµÑ€ÐµÐ· HTTPS. Будь лаÑка, зв'ÑжітьÑÑ Ð· адмініÑтратором Ñервера.", - "app.audioModal.help.macNotAllowed": "Схоже, ÑиÑтемні наÑтройки Mac блокують доÑтуп до Вашого мікрофону. Відкрийте System Preferences> Security & Privacy> Privacy> Microphone, Ñ– переконайтеÑÑ, що викориÑтовуваний Вами браузер відзначений.", + "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.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.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.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.descriptionLabel": "Зверніть увагу, що у вашому переглÑдачі з'ÑвитьÑÑ Ð´Ñ–Ð°Ð»Ð¾Ð³Ð¾Ð²Ðµ вікно Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñƒ на доÑтуп до мікрофона.", "app.audio.audioSettings.microphoneSourceLabel": "Джерело мікрофона", "app.audio.audioSettings.speakerSourceLabel": "Джерело динаміків", - "app.audio.audioSettings.microphoneStreamLabel": "ГучніÑÑ‚ÑŒ вашого аудіопотоку", + "app.audio.audioSettings.microphoneStreamLabel": "ГучніÑÑ‚ÑŒ вашого звукового потоку", "app.audio.audioSettings.retryLabel": "Повторити", - "app.audio.listenOnly.backLabel": "Ðезад", + "app.audio.listenOnly.backLabel": "Ðазад", "app.audio.listenOnly.closeLabel": "Закрити", - "app.audio.permissionsOverlay.title": "Дозволити BigBlueButton викориÑтовувати ваші медіа-приÑтрої", - "app.audio.permissionsOverlay.hint": "Ðам потрібно, щоб ви дозволили нам викориÑтовувати Ñвої медіа-приÑтрої, щоб приєднатиÑÑŒ до голоÑової конференції :)", - "app.error.removed": "Ви були вилучені з конференції", + "app.audio.permissionsOverlay.title": "Дозволити BigBlueButton викориÑтовувати ваші мультимедійні приÑтрої", + "app.audio.permissionsOverlay.hint": "Ðам потрібно, щоб ви дозволили викориÑтовувати мультимедійні приÑтрої, щоб приєднатиÑÑŒ до голоÑової конференції :)", + "app.error.removed": "Ð’Ð°Ñ Ð±ÑƒÐ»Ð¾ вилучено з конференції", "app.error.meeting.ended": "Ви вийшли з конференції", - "app.meeting.logout.duplicateUserEjectReason": "Дубльований кориÑтувач намагаєтьÑÑ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ зуÑтрічі", + "app.meeting.logout.duplicateUserEjectReason": "КориÑтувач з таким же ім'Ñм намагаєтьÑÑ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ зуÑтрічі", "app.meeting.logout.permissionEjectReason": "Вилучено через Ð¿Ð¾Ñ€ÑƒÑˆÐµÐ½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñƒ", - "app.meeting.logout.ejectedFromMeeting": "Ви були вилучені з зуÑÑ‚Ñ€iчi", + "app.meeting.logout.ejectedFromMeeting": "Ð’Ð°Ñ Ð±ÑƒÐ»Ð¾ вилучено із зуÑтрічі", "app.meeting.logout.validateTokenFailedEjectReason": "Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ токен авторизації", "app.meeting.logout.userInactivityEjectReason": "КориÑтувач неактивний занадто довго", "app.meeting-ended.rating.legendLabel": "Рейтинг відгуків", @@ -464,29 +471,29 @@ "app.error.500": "Ой, щоÑÑŒ пішло не так", "app.error.leaveLabel": "Увійдіть знову", "app.error.fallback.presentation.title": "Виникла помилка", - "app.error.fallback.presentation.description": "Він зареєÑтрований. Спробуйте перезавантажити Ñторінку.", + "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": "ПереглÑньте очікуваних кориÑтувачів", - "app.userList.guest.allowAllAuthenticated": "Дозволити вÑім аутентифікованим", + "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.pendingUsers": "{0} кориÑтувачів в очікуванні", + "app.userList.guest.pendingGuestUsers": "{0} гоÑтей в очікуванні", + "app.userList.guest.pendingGuestAlert": "ПриєднавÑÑ Ð´Ð¾ ÑеанÑу та очікує вашого ÑхваленнÑ", "app.userList.guest.rememberChoice": "Запам'Ñтати вибір", - "app.user-info.title": "Пошук в каталозі", + "app.user-info.title": "Пошук у каталозі", "app.toast.breakoutRoomEnded": "ÐšÐ¾Ð½Ñ„ÐµÑ€ÐµÐ½Ñ†Ñ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑ. Будь лаÑка, приєднайтеÑÑŒ знову до аудіо конференції.", - "app.toast.chat.public": "Ðове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñƒ публічному чаті", + "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.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": "Цей ÑÐµÐ°Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÐµ не запиÑуєтьÑÑ", @@ -498,9 +505,9 @@ "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.openOptions": "Відкриває налаштуваннÑ", + "app.shortcut-help.toggleUserList": "Перемикає ÑпиÑок кориÑтувачів", + "app.shortcut-help.toggleMute": "Перемикає Ñтан мікрофону", "app.shortcut-help.togglePublicChat": "Вмикає загальний чат (СпиÑок кориÑтувачів має бути відкритим)", "app.shortcut-help.hidePrivateChat": "Приховує приватний чат", "app.shortcut-help.closePrivateChat": "Закриває приватний чат", @@ -509,66 +516,66 @@ "app.shortcut-help.togglePan": "Ðктивувати інÑтрумент Ð¿Ð°Ð½Ð¾Ñ€Ð°Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ (Ведучий)", "app.shortcut-help.nextSlideDesc": "ÐаÑтупний Ñлайд (Ведучий)", "app.shortcut-help.previousSlideDesc": "Попередній Ñлайд (Ведучий)", - "app.lock-viewers.title": "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñтей кориÑтувачів", - "app.lock-viewers.description": "Ці Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÑŽÑ‚ÑŒ заборонити учаÑникам викориÑтовувати певні функції", + "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.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.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.recording.startDescription": "Ð”Ð»Ñ Ð¿Ð°ÑƒÐ·Ð¸ запиÑу, будь лаÑка, натиÑніть повторно кнопку запиÑу.", + "app.recording.stopDescription": "Ви впевнені, що хочете призупинити запиÑ? Ви зможете відновити Ð·Ð°Ð¿Ð¸Ñ - Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ ще раз натиÑніть на кнопку запиÑу.", "app.videoPreview.cameraLabel": "Камера", "app.videoPreview.profileLabel": "ЯкіÑÑ‚ÑŒ", "app.videoPreview.cancelLabel": "Відмінити", "app.videoPreview.closeLabel": "Закрити", - "app.videoPreview.findingWebcamsLabel": "Пошук веб-камер", + "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.videoPreview.webcamOptionLabel": "Виберіть вебкамеру", + "app.videoPreview.webcamPreviewLabel": "Попередній переглÑд вебкамери", + "app.videoPreview.webcamSettingsTitle": "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÐ±ÐºÐ°Ð¼ÐµÑ€Ð¸", + "app.videoPreview.webcamNotFoundLabel": "Вебкамеру не знайдено", + "app.videoPreview.profileNotFoundLabel": "Ðе знайдено підтримувану вебкамеру", + "app.video.joinVideo": "Увімкнути вебкамеру", + "app.video.leaveVideo": "Вимкнути вебкамеру", "app.video.iceCandidateError": "Помилка Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ICE кандидату", "app.video.iceConnectionStateError": "Ðе вдалоÑÑ Ð·'єднатиÑÑ (ICE помилка 1107)", - "app.video.permissionError": "Помилка при транÑлÑції веб-камери. Будь лаÑка перевірте дозволи", - "app.video.sharingError": "Помилка при транÑлÑції веб-камери", - "app.video.notFoundError": "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ веб-камеру. ПереконайтеÑÑ, що вона під'єднана", - "app.video.notAllowed": "ВідÑутній дозвіл на транÑлÑцію веб-камери, будь лаÑка, переконайтеÑÑ, що ваш браузер має необхідні дозволи", - "app.video.notSupportedError": "Можна транÑлювати веб-камеру лише з безпечних джерел, переконайтеÑÑ, що Ñертифікат SSL дійÑний", - "app.video.notReadableError": "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ відео з веб-камери. Будь лаÑка, переконайтеÑÑ, що інша програма не викориÑтовує веб-камеру", - "app.video.mediaFlowTimeout1020": "Медіа не доÑÑгає Ñервера (помилка 1020)", - "app.video.suggestWebcamLock": "ПримуÑово заблокувати веб-камери учаÑникам?", + "app.video.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.enable": "Увімкнути", + "app.video.cancel": "СкаÑувати", "app.video.swapCam": "Змінити", - "app.video.swapCamDesc": "помінÑти напрÑмок веб-камер", - "app.video.videoLocked": "ТранÑлювати веб-камеру заблоковано", - "app.video.videoButtonDesc": "ТранÑлювати веб-камеру", + "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.stats.title": "СтатиÑтика з'єднань", - "app.video.stats.packetsReceived": "Пакети отримані", - "app.video.stats.packetsSent": "Пакети відправлені", - "app.video.stats.packetsLost": "Пакети втрачені", + "app.video.stats.packetsReceived": "Отримані пакети", + "app.video.stats.packetsSent": "ÐадіÑлані пакети", + "app.video.stats.packetsLost": "Втрачені пакети", "app.video.stats.bitrate": "Бітрейт", "app.video.stats.lostPercentage": "Загальний відÑоток втрачених", "app.video.stats.lostRecentPercentage": "Ðинішній відÑоток втрачених", @@ -576,33 +583,33 @@ "app.video.stats.codec": "Кодек", "app.video.stats.decodeDelay": "Затримка декодуваннÑ", "app.video.stats.rtt": "Ð§Ð°Ñ RTT", - "app.video.stats.encodeUsagePercent": "ВикориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñм", + "app.video.stats.encodeUsagePercent": "ВикориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ", "app.video.stats.currentDelay": "Поточна затримка", "app.fullscreenButton.label": "{0} на веÑÑŒ екран", - "app.deskshare.iceConnectionStateError": "Ðе вдале з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð´ÐµÐ¼Ð¾Ð½Ñтрації екрана (ICE помилка 1108)", - "app.sfu.mediaServerConnectionError2000": "Ðе можливо з'єднатиÑÑ Ð· медіа Ñервером (помилка 2000)", - "app.sfu.mediaServerOffline2001": "Медіа Ñервер офлайн. Будь лаÑка Ñпробуйте пізніше (помилка 2001)", - "app.sfu.mediaServerNoResources2002": "Ðа медіа Ñервері немає доÑтупних реÑурÑів (помилка 2002)", - "app.sfu.mediaServerRequestTimeout2003": "Ð§Ð°Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² медіа Ñервера вичерпуєтьÑÑ (помилка 2003)", - "app.sfu.serverIceGatheringFailed2021": "Медіа Ñервер не може зібрати кандидатів на з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (ICE помилка 2021)", - "app.sfu.serverIceGatheringFailed2022": "З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð° Ñервера не вдалоÑÑ (ICE помилка 2022)", - "app.sfu.mediaGenericError2200": "Медіа Ñервер не зміг обробити запит (помилка 2200)", + "app.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.sfu.noAvailableCodec2203": "Сервер не може визначити відповідний кодек (помилка 2203)", + "app.meeting.endNotification.ok.label": "Гаразд", + "app.whiteboard.annotations.poll": "Результати Ð¾Ð¿Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ¾Ð²Ð°Ð½Ð¾", "app.whiteboard.toolbar.tools": "ІнÑтрументи", "app.whiteboard.toolbar.tools.hand": "ПереміщеннÑ", "app.whiteboard.toolbar.tools.pencil": "Олівець", "app.whiteboard.toolbar.tools.rectangle": "Чотирикутник", "app.whiteboard.toolbar.tools.triangle": "Трикутник", - "app.whiteboard.toolbar.tools.ellipse": "ОкружніÑÑ‚ÑŒ", + "app.whiteboard.toolbar.tools.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.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": "Червоний", @@ -615,42 +622,42 @@ "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.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": "Як можна покращити BigBlueButton?", "app.feedback.sendFeedback": "ÐадіÑлати відгук", - "app.feedback.sendFeedbackDesc": "ÐадіÑлати відгук Ñ– залишити зуÑтріч", + "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.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.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.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.randomlyAssign": "Випадково призначити", + "app.createBreakoutRoom.endAllBreakouts": "Закрити уÑÑ– кімнати учаÑників", "app.createBreakoutRoom.roomName": "{0} (Кімната - {1})", "app.createBreakoutRoom.doneLabel": "Готово", "app.createBreakoutRoom.nextLabel": "Далі", @@ -658,26 +665,26 @@ "app.createBreakoutRoom.addRoomTime": "Збільшити триваліÑÑ‚ÑŒ до", "app.createBreakoutRoom.addParticipantLabel": "+ Додати учаÑника", "app.createBreakoutRoom.freeJoin": "Дозволити кориÑтувачам обирати кімнату ÑамоÑтійно", - "app.createBreakoutRoom.leastOneWarnBreakout": "Щонайменш один кориÑтувач повинен бути в кімнаті.", - "app.createBreakoutRoom.modalDesc": "Замітка: Ви можете перетÑгувати імена кориÑтувачів, щоб призначити Ñ—Ñ… у певні групові кімнати.", + "app.createBreakoutRoom.leastOneWarnBreakout": "Щонайменше один кориÑтувач має бути приÑутнім у кімнаті.", + "app.createBreakoutRoom.modalDesc": "Примітка: Щоб призначити кориÑтувачів до певної кімнати, будь лаÑка, перетÑгніть їхні імена до комірок кімнат.", "app.createBreakoutRoom.roomTime": "{0} хвилин", - "app.createBreakoutRoom.numberOfRoomsError": "КількіÑÑ‚ÑŒ кімнат неправильна.", + "app.createBreakoutRoom.numberOfRoomsError": "КількіÑÑ‚ÑŒ кімнат Ñ” неправильною.", "app.externalVideo.start": "ПоділитиÑÑ Ð½Ð¾Ð²Ð¸Ð¼ відео", - "app.externalVideo.title": "ПоділитиÑÑ Ð²Ñ–Ð´ÐµÐ¾ із зовнішніх реÑурÑів", - "app.externalVideo.input": "Ð—Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ URL-адреÑа відео", - "app.externalVideo.urlInput": "Додати URL-адреÑу відео", - "app.externalVideo.urlError": "Ð¦Ñ URL-адреÑа відео не підтримуєтьÑÑ", + "app.externalVideo.title": "ДемонÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´ÐµÐ¾", + "app.externalVideo.input": "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° адреÑу відеопотоку", + "app.externalVideo.urlInput": "Додати адреÑу відеопотоку", + "app.externalVideo.urlError": "Ð¦Ñ Ð°Ð´Ñ€ÐµÑа відеопотоку не підтримуєтьÑÑ", "app.externalVideo.close": "Закрити", - "app.externalVideo.autoPlayWarning": "ЗапуÑÑ‚Ñ–Ñ‚ÑŒ відео, щоб активувати Ñинхронізацію медіа", + "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 Ð´Ð»Ñ Ð¿Ð¾Ð²Ð½Ð¾Ñ— підтримки." + "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": "Будь лаÑка, викориÑтовуйте переглÑдач Safari на приÑтрої з iOS Ð´Ð»Ñ Ð¿Ð¾Ð²Ð½Ð¾Ñ— підтримки." } diff --git a/bigbluebutton-html5/private/locales/vi_VN.json b/bigbluebutton-html5/private/locales/vi_VN.json index efc0d805adf1652f523adec573b36eea5dded44b..b83a24302cd977b359869ac1b7b312e52f6e82aa 100644 --- a/bigbluebutton-html5/private/locales/vi_VN.json +++ b/bigbluebutton-html5/private/locales/vi_VN.json @@ -1,5 +1,5 @@ { - "app.home.greeting": "Phần trình bà y của bạn sẽ bắt đầu trong trong Ãt phút ...", + "app.home.greeting": "Phần trình bà y của bạn sẽ bắt đầu trong trong giây lát ...", "app.chat.submitLabel": "Gá»i tin nhắ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", @@ -7,7 +7,7 @@ "app.chat.inputLabel": "Tin nhắn nháºp và o cuá»™c trò chuyện {0}", "app.chat.inputPlaceholder": "Gá»i tin nhắn tá»›i {0}", "app.chat.titlePublic": "Thảo luáºn chung", - "app.chat.titlePrivate": "Chat riêng tÆ° vá»›i {0}", + "app.chat.titlePrivate": "Chat riêng vá»›i {0}", "app.chat.partnerDisconnected": "{0} đã rá»i cuá»™c há»p", "app.chat.closeChatLabel": "Äóng {0}", "app.chat.hideChatLabel": "Ẩn {0}", @@ -18,7 +18,7 @@ "app.chat.dropdown.save": "LÆ°u", "app.chat.label": "Chat", "app.chat.offline": "Ngoại tuyến", - "app.chat.emptyLogLabel": "Nháºt kà chat trống", + "app.chat.emptyLogLabel": "Không có nháºt ký trò truyện", "app.chat.clearPublicChatMessage": "Lịch sá» trò chuyện công khai được xóa bởi ngÆ°á»i quản lÃ", "app.chat.multi.typing": "Nhiá»u ngÆ°á»i Ä‘ang gõ", "app.chat.one.typing": "{0} Ä‘ang gõ", @@ -30,7 +30,7 @@ "app.captions.menu.ariaStartDesc": "Mở tùy chỉnh phụ Ä‘á» và đóng cá»a sổ", "app.captions.menu.select": "Chá»n các ngôn ngữ sẵn có", "app.captions.menu.ariaSelect": "Ngôn ngữ phụ Ä‘á»", - "app.captions.menu.subtitle": "Chá»n má»™t ngôn ngữ và kiểu cách cho phụ Ä‘á» cho lần nà y", + "app.captions.menu.subtitle": "Chá»n má»™t ngôn ngữ và tùy chỉnh phụ Ä‘á»", "app.captions.menu.title": "Äóng chú thÃch", "app.captions.menu.fontSize": "KÃch cỡ", "app.captions.menu.fontColor": "Mà u chữ", @@ -40,23 +40,23 @@ "app.captions.menu.cancelLabel": "Hủy", "app.captions.pad.hide": "Äóng chú thÃch", "app.captions.pad.tip": "Nhấn ESC dể chuyển ra thanh công cụ", - "app.captions.pad.ownership": "Là m tiếp", + "app.captions.pad.ownership": " Lấy lại", "app.captions.pad.ownershipTooltip": "Bạn sẽ được chỉ định là ngÆ°á»i sở hữu 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": "Kết thúc viết chÃnh tả", "app.captions.pad.dictationOnDesc": "Báºt nháºn diện lá»i nói", "app.captions.pad.dictationOffDesc": "Tắt nháºn diện lá»i nói", - "app.note.title": "Shared Notes", + "app.note.title": "Ghi chú chung", "app.note.label": "Ghi chú", "app.note.hideNoteLabel": "Ẩn ghi chú", "app.user.activityCheck": "Kiểm tra hoạt Ä‘á»™ng ngÆ°á»i dùng", - "app.user.activityCheck.label": "Kiểm tra nếu ngÆ°á»i dùng Ä‘ang ở trong cuá»™c thảo luáºn ({0})", + "app.user.activityCheck.label": "Kiểm tra nếu ngÆ°á»i dùng vẫn Ä‘ang trong cuá»™c há»p ({0})", "app.user.activityCheck.check": "Kiểm tra", - "app.note.tipLabel": "Nhấn ESC dể chuyển ra thanh công cụ", + "app.note.tipLabel": "Nhấn ESC để chuyển ra thanh công cụ", "app.userList.usersTitle": "NgÆ°á»i dùng", - "app.userList.participantsTitle": "NgÆ°á»i tham gia", - "app.userList.messagesTitle": "Thông báo", + "app.userList.participantsTitle": "NgÆ°á»i tham dá»±", + "app.userList.messagesTitle": "Tin nhắn", "app.userList.notesTitle": "Ghi chú", "app.userList.notesListItem.unreadContent": "Có thông tin má»›i trong phần chia sẻ ghi chú", "app.userList.captionsTitle": "Phụ Ä‘á»", @@ -66,16 +66,16 @@ "app.userList.label": "Danh sách ngÆ°á»i dùng", "app.userList.toggleCompactView.label": "Chuyển sang chế Ä‘á»™ thu nhá»", "app.userList.guest": "Khách ", - "app.userList.menuTitleContext": "Tùy chá»n khả dụng", + "app.userList.menuTitleContext": "Tùy chá»n sẵn có", "app.userList.chatListItem.unreadSingular": "{0} Thông báo má»›i", "app.userList.chatListItem.unreadPlural": "{0} Thông báo má»›i", - "app.userList.menu.chat.label": "Nói chuyện riêng tÆ°", + "app.userList.menu.chat.label": " Chat riêng", "app.userList.menu.clearStatus.label": "Xóa trạng thái", "app.userList.menu.removeUser.label": "Xóa ngÆ°á»i dùng", - "app.userList.menu.muteUserAudio.label": "Tắt tiếng ngÆ°á»i dùng", - "app.userList.menu.unmuteUserAudio.label": "Bá» tắt tiếng ngÆ°á»i dùng", + "app.userList.menu.muteUserAudio.label": "Tắt tiếng", + "app.userList.menu.unmuteUserAudio.label": "Mở tiếng", "app.userList.userAriaLabel": "{0}{1}{2} Trạng thái {3}", - "app.userList.menu.promoteUser.label": "Cấp quyá»n là m quản lý", + "app.userList.menu.promoteUser.label": "Cấp quyá»n quản lý", "app.userList.menu.demoteUser.label": "Bá» quyá»n quản lý", "app.userList.menu.unlockUser.label": "Mở khóa {0}", "app.userList.menu.lockUser.label": "Khóa {0}", @@ -83,26 +83,26 @@ "app.userList.menu.makePresenter.label": "Trao quyá»n thuyết trình ", "app.userList.userOptions.manageUsersLabel": "Quản lý ngÆ°á»i dùng", "app.userList.userOptions.muteAllLabel": "Tắt tiếng tất cả", - "app.userList.userOptions.muteAllDesc": "Tắt tiếng tất cả ngÆ°á»i dùng trong cuá»™c há»™i thoại", + "app.userList.userOptions.muteAllDesc": "Tắt tiếng tất cả", "app.userList.userOptions.clearAllLabel": "Xóa tất cả các biểu tượng trạng thái", "app.userList.userOptions.clearAllDesc": "Xóa các biểu tượng trạng thái từ ngÆ°á»i dùng", - "app.userList.userOptions.muteAllExceptPresenterLabel": "Tắt tiếng tất cả ngoại trừ ngÆ°á»i trình bà y", - "app.userList.userOptions.muteAllExceptPresenterDesc": "Tắt tiếng tất cả trong cuá»™c há»™i thoại ngoại trừ ngÆ°á»i trình bà y", - "app.userList.userOptions.unmuteAllLabel": "Turn off meeting mute", - "app.userList.userOptions.unmuteAllDesc": "Unmutes the meeting", + "app.userList.userOptions.muteAllExceptPresenterLabel": "Tắt tiếng tất cả trừ ngÆ°á»i trình bà y", + "app.userList.userOptions.muteAllExceptPresenterDesc": "Tắt tiếng tất cả trừ ngÆ°á»i trình bà y", + "app.userList.userOptions.unmuteAllLabel": "Tắt tiếng cuá»™c há»p", + "app.userList.userOptions.unmuteAllDesc": "Mở tiếng cuá»™c há»p", "app.userList.userOptions.lockViewersLabel": "Khóa ngÆ°á»i xem", "app.userList.userOptions.lockViewersDesc": "Khóa má»™t số chức năng nhất định cho ngÆ°á»i tham dá»± cuá»™c há»™i thoại", "app.userList.userOptions.disableCam": "Webcam ngÆ°á»i dùng không khả dụng", "app.userList.userOptions.disableMic": "Mic ngÆ°á»i dùng không khả dụng", - "app.userList.userOptions.disablePrivChat": "Trò chuyện riêng tÆ° không khả dụng", - "app.userList.userOptions.disablePubChat": "Trò chuyện công khai không khả dụng", + "app.userList.userOptions.disablePrivChat": " Chát riêng đã bị tắt", + "app.userList.userOptions.disablePubChat": " Tắt chat công khai", "app.userList.userOptions.disableNote": "Shared notes đã khóa ", "app.userList.userOptions.hideUserList": "NgÆ°á»i xem không thể xem được danh sách ngÆ°á»i dùng", "app.userList.userOptions.webcamsOnlyForModerator": "Chỉ ngÆ°á»i quản trị má»›i thấy được lượng ngÆ°á»i xem (Do khóa cà i đặt)", "app.userList.content.participants.options.clearedStatus": "Xóa tất cả trạng thái ngÆ°á»i dùng", - "app.userList.userOptions.enableCam": "Webcam của ngÆ°á»i xem có thể dùng được", - "app.userList.userOptions.enableMic": "Mic của ngÆ°á»i xem có thể dùng được", - "app.userList.userOptions.enablePrivChat": "Nói chuyện riêng tÆ° có thể dùng được", + "app.userList.userOptions.enableCam": "Webcam đã được kÃch hoạt", + "app.userList.userOptions.enableMic": "Mic của ngÆ°á»i xem đã được kÃch hoạt", + "app.userList.userOptions.enablePrivChat": "Äược phép chat riêng", "app.userList.userOptions.enablePubChat": "Có thể sá» dụng trò chuyện công khai", "app.userList.userOptions.enableNote": "Có thể sá» dụng shared notes", "app.userList.userOptions.showUserList": "NgÆ°á»i xem có thể xem được danh sách ngÆ°á»i dùng", @@ -111,19 +111,20 @@ "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.unavailable": "Không thể chia sẻ mà n hình", "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", "app.screenshare.notSupportedError": "Lá»—i: Chia sẻ mà n hình chỉ được phép trên domains (SSL) an toà n", "app.screenshare.notReadableError": "Lá»—i: Không thể chụp mà n hình được", "app.screenshare.genericError": "Lá»—i: không thể chia sẻ mà n hình, xin hãy thá» lại", - "app.meeting.ended": "Phiên hoạt Ä‘á»™ng đã kết thúc", + "app.meeting.ended": "Phiên há»p nà y đã kết thúc", "app.meeting.meetingTimeRemaining": "Thá»i gian còn lại của cuá»™c há»p: {0}", "app.meeting.meetingTimeHasEnded": "Hết giá». Cuá»™c há»p sẽ đóng lại", "app.meeting.endedMessage": "Bạn sẽ được chuyển hÆ°á»›ng vá» lại trang chủ mà n hình", "app.meeting.alertMeetingEndsUnderOneMinute": "Cuá»™c há»p sẽ kết thúc trong má»™t phút nữa", "app.meeting.alertBreakoutEndsUnderOneMinute": "Giải lao sẽ kết thúc trong má»™t phúc nữa ", - "app.presentation.hide": "Ẩn phần trình bà y", + "app.presentation.hide": "Ẩn Trình bà y", "app.presentation.notificationLabel": "Phần trình bà y hiện tại", "app.presentation.slideContent": "Ná»™i dung slide", "app.presentation.startSlideContent": "Ná»™i dung slide bắt đầu", @@ -155,7 +156,7 @@ "app.presentation.presentationToolbar.goToSlide": "Slide {0}", "app.presentationUploder.title": "Phần trình bà y", "app.presentationUploder.message": "Vá»›i bà i thuyết trình bạn có thể tải lên nhiá»u file office hoặc PDF. Chúng tôi khuyên nên dùng file PDF để được kết quả hiển thị tốt nhất. Vui lòng đảm bảo rằng có 1 file trình bà y được chá»n bằng cách chá»n và o ô checkbox phÃa bên phải.", - "app.presentationUploder.uploadLabel": "ÄÆ°a lên", + "app.presentationUploder.uploadLabel": "Tải lên", "app.presentationUploder.confirmLabel": "Xác nháºn", "app.presentationUploder.confirmDesc": "LÆ°u lại những thay dổi và bắt đầu bà i trình bà y", "app.presentationUploder.dismissLabel": "Hủy", @@ -164,21 +165,24 @@ "app.presentationUploder.dropzoneImagesLabel": "Kéo và thả hình ảnh và o đây để Ä‘Æ°a lên.", "app.presentationUploder.browseFilesLabel": "Hoặc chá»n Ä‘Æ°á»ng dẫn cho file", "app.presentationUploder.browseImagesLabel": "Hoặc chá»n Ä‘Æ°á»ng dẫn/chụp ảnh cho các hình ảnh.", - "app.presentationUploder.fileToUpload": "Chuẩn bị dÆ°a lên...", + "app.presentationUploder.fileToUpload": "Chuẩn bị tải lên...", "app.presentationUploder.currentBadge": "Hiện tại", "app.presentationUploder.rejectedError": "(Các) Tà i liệu không hợp lệ, xin hãy kiểm tra lại định dạng (các) tà i liệu", - "app.presentationUploder.upload.progress": "Äang Ä‘Æ°a lên ({0}%)", + "app.presentationUploder.upload.progress": "Äang tải lên ({0}%)", "app.presentationUploder.upload.413": "File quá dung lượng. Vui lòng cắt nhá» thà nh nhiá»u file để giảm dung lượng.", "app.presentationUploder.conversion.conversionProcessingSlides": "Äang xá» lý {0} trên {1} trang", "app.presentationUploder.conversion.genericConversionStatus": "Äang chuyển đổi file...", "app.presentationUploder.conversion.generatingThumbnail": "Tạo thumbnails", "app.presentationUploder.conversion.generatedSlides": "Các slide được tạo...", "app.presentationUploder.conversion.generatingSvg": "Tạo hình ảnh SVG ...", + "app.presentationUploder.conversion.officeDocConversionInvalid": "Lá»—i tải file, Vui lòng tải file PDF/PPT", + "app.presentationUploder.conversion.officeDocConversionFailed": "Lá»—i tải file, Vui lòng tải file PDF/PPT", "app.presentationUploder.conversion.pdfHasBigPage": "Chúng tôi không thể chuyển thà nh PDF, vui lòng tối Æ°u hóa nó", "app.presentationUploder.conversion.timeout": "Ops, sá»± thay đổi mất má»™t khoảng thá»i gian", + "app.presentationUploder.conversion.pageCountFailed": "Lá»—i không xác định được số trang", "app.presentationUploder.isDownloadableLabel": "Không cho phép tải xuống phần trình bà y", "app.presentationUploder.isNotDownloadableLabel": "Cho phép tải xuống phần trình bà y", - "app.presentationUploder.removePresentationLabel": "Bá» phần trình bà y", + "app.presentationUploder.removePresentationLabel": "Xóa phần trình bà y", "app.presentationUploder.setAsCurrentPresentation": "Thiết láºp phần trình bà y hiện tại", "app.presentationUploder.tableHeading.filename": "Tên file", "app.presentationUploder.tableHeading.options": "Tùy chá»n", @@ -235,7 +239,7 @@ "app.navBar.settingsDropdown.leaveSessionLabel": "Äăng xuất ", "app.navBar.settingsDropdown.exitFullscreenLabel": "Tắt chế Ä‘á»™ toà n mà n hình", "app.navBar.settingsDropdown.fullscreenDesc": "Tạo menu cà i đặt mà n hình ", - "app.navBar.settingsDropdown.settingsDesc": "Thay dổi cà i đặt chung", + "app.navBar.settingsDropdown.settingsDesc": "Thay đổi cà i đặt chung", "app.navBar.settingsDropdown.aboutDesc": "Hiển thị thông tin vá» khách hà ng", "app.navBar.settingsDropdown.leaveSessionDesc": "Rá»i cuá»™c há»p", "app.navBar.settingsDropdown.exitFullscreenDesc": "Tắt chế Ä‘á»™ xem toà n mà n hình", @@ -244,17 +248,17 @@ "app.navBar.settingsDropdown.helpLabel": "Há»— trợ", "app.navBar.settingsDropdown.helpDesc": "Liên kết ngÆ°á»i dùng vá»›i các video khóa há»c (mở tab má»›i)", "app.navBar.settingsDropdown.endMeetingDesc": "Kết thúc cuá»™c há»p hiện tại", - "app.navBar.settingsDropdown.endMeetingLabel": "Cuá»™c há»p kết thúc", + "app.navBar.settingsDropdown.endMeetingLabel": "Kết thúc cuá»™p há»p", "app.navBar.userListToggleBtnLabel": "Danh sách ngÆ°á»i dùng chuyển đổi", "app.navBar.toggleUserList.ariaLabel": "Chuyển đổi ngÆ°á»i dùng và tin nhắn", - "app.navBar.toggleUserList.newMessages": "Vá»›i thông báo tin nhắn má»›i", + "app.navBar.toggleUserList.newMessages": "vá»›i thông báo tin nhắn má»›i", "app.navBar.recording": "Phiên hoạt Ä‘á»™ng Ä‘ang dược ghi lại", "app.navBar.recording.on": "Ghi hình", "app.navBar.recording.off": "Không được ghi hình", "app.navBar.emptyAudioBrdige": "Không có micro Ä‘ang kÃch hoạt. Chia sẻ micro của bạn để thêm âm thanh và o file recording nà y.", "app.leaveConfirmation.confirmLabel": "Rá»i khá»i", "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.title": "Kết thúc cuá»™c há»p", "app.endMeeting.description": "Bạn thá»±c sá»± muốn kết thúc phiên hoạt Ä‘á»™ng ?", "app.endMeeting.yesLabel": "Có", "app.endMeeting.noLabel": "Không", @@ -269,7 +273,7 @@ "app.actionsBar.muteLabel": "Tắt tiếng", "app.actionsBar.unmuteLabel": "Báºt tiếng", "app.actionsBar.camOffLabel": "Camera tắt", - "app.actionsBar.raiseLabel": "Kéo lên", + "app.actionsBar.raiseLabel": " GiÆ¡ tay", "app.actionsBar.label": "Thanh hà nh Ä‘á»™ng", "app.actionsBar.actionsDropdown.restorePresentationLabel": "Khôi phục phần trình bà y", "app.actionsBar.actionsDropdown.restorePresentationDesc": "Nhấn nút để khôi phục phần trình bà y sau khi nó tắt", @@ -290,7 +294,7 @@ "app.submenu.audio.micSourceLabel": "Nguồn micro", "app.submenu.audio.speakerSourceLabel": "Nguồn loa", "app.submenu.audio.streamVolumeLabel": "Âm lượng âm thanh của bạn", - "app.submenu.video.title": "video", + "app.submenu.video.title": "Video", "app.submenu.video.videoSourceLabel": "Nguồn video", "app.submenu.video.videoOptionLabel": "Chá»n nguồn video", "app.submenu.video.videoQualityLabel": "Chất lượng video", @@ -298,7 +302,7 @@ "app.submenu.video.participantsCamLabel": "Xem webcam của các thà nh viên", "app.settings.applicationTab.label": "Ứng dụng", "app.settings.audioTab.label": "Âm thanh", - "app.settings.videoTab.label": "video", + "app.settings.videoTab.label": "Video", "app.settings.usersTab.label": "NgÆ°á»i tham gia", "app.settings.main.label": "Cà i đặt", "app.settings.main.cancel.label": "Hủy", @@ -317,9 +321,9 @@ "app.talkingIndicator.wasTalking" : "{0} dừng nói", "app.actionsBar.actionsDropdown.actionsLabel": "Các hà nh Ä‘á»™ng", "app.actionsBar.actionsDropdown.presentationLabel": "Tải lên phần trình bà y", - "app.actionsBar.actionsDropdown.initPollLabel": "Khởi tạo cuá»™c thăm dò ý kiến", - "app.actionsBar.actionsDropdown.desktopShareLabel": "Chia sẻ mà n hình của bạn", - "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Chia sẻ mà n hình đã khóa", + "app.actionsBar.actionsDropdown.initPollLabel": "Tạo cuá»™c thăm dò ý kiến", + "app.actionsBar.actionsDropdown.desktopShareLabel": "Chia sẻ mà n hình", + "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Chia sẻ mà n hình đã bị khóa", "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Dừng chia sẻ mà n hình của bạn", "app.actionsBar.actionsDropdown.presentationDesc": "Tải lên phần trình bà y của bạn", "app.actionsBar.actionsDropdown.initPollDesc": "Khởi tạo cuá»™c thăm dò ý kiến", @@ -367,7 +371,7 @@ "app.breakoutJoinConfirmation.confirmDesc": "Má»i bạn tham gia và o phòng được chia nhóm", "app.breakoutJoinConfirmation.dismissLabel": "Hủy", "app.breakoutJoinConfirmation.dismissDesc": "Äóng và từ chối lá»i má»i tham gia phòng chia nhóm", - "app.breakoutJoinConfirmation.freeJoinMessage": "Chá»n má»™t phòng đã dược chia nhóm để tham gia", + "app.breakoutJoinConfirmation.freeJoinMessage": "Chá»n má»™t phòng đã được chia nhóm để tham gia", "app.breakoutTimeRemainingMessage": "Thá»i gian còn lại của phòng: {0}", "app.breakoutWillCloseMessage": "Hết giá». Phòng chia nhóm sẽ đóng", "app.calculatingBreakoutTimeRemaining": "TÃnh thá»i gian còn lại ...", @@ -428,7 +432,7 @@ "app.error.removed": "Bạn vừa bị xóa khá»i cuá»™c há»™i nghị", "app.error.meeting.ended": "Bạn vừa đăng xuất khá»i cuá»™c há»™i nghị", "app.meeting.logout.duplicateUserEjectReason": "Má»™t ngÆ°á»i dùng khác Ä‘ang cố dùng tà i khoản của bạn để tham gia và o cuá»™c há»p", - "app.meeting.logout.permissionEjectReason": "Bị từ chối cho vi phạm quyá»n", + "app.meeting.logout.permissionEjectReason": "Bị từ chối do vi phạm quyá»n", "app.meeting.logout.ejectedFromMeeting": "Bạn vừa bị xóa khá»i phòng há»p ", "app.meeting.logout.validateTokenFailedEjectReason": "Không thể xác thá»±c mã thông báo ủy quyá»n", "app.meeting.logout.userInactivityEjectReason": "NgÆ°á»i dùng đã quá lâu không hoạt Ä‘á»™ng", @@ -486,14 +490,14 @@ "app.shortcut-help.toggleUserList": "Chuyển đổi danh sách ngÆ°á»i dùng", "app.shortcut-help.toggleMute": "Tắt tiếng/ Báºt tiếng", "app.shortcut-help.togglePublicChat": "Chuyển đổi trò chuyện công khai (Danh sách ngÆ°á»i dùng phải được mở)", - "app.shortcut-help.hidePrivateChat": "Ẩn cuá»™c trò chuyện riêng tÆ°", - "app.shortcut-help.closePrivateChat": "Äóng cuá»™c trò chuyện riêng tÆ°", + "app.shortcut-help.hidePrivateChat": "Ẩn chat riêng", + "app.shortcut-help.closePrivateChat": "Äóng chat riêng tÆ°", "app.shortcut-help.openActions": "Mở menu hoạt Ä‘á»™ng", "app.shortcut-help.openStatus": "Mở menu trạng thái", "app.shortcut-help.togglePan": "Kich hoạt công cụ Pan (NgÆ°á»i trình bà y)", "app.shortcut-help.nextSlideDesc": "Slide tiếp theo (NgÆ°á»i trình bà y)", - "app.shortcut-help.previousSlideDesc": "Slide phÃa trÆ°á»›c (NgÆ°á»i trình bà y)", - "app.lock-viewers.title": "Khóa ngÆ°á»i xem", + "app.shortcut-help.previousSlideDesc": "Slide trÆ°á»›c (NgÆ°á»i trình bà y)", + "app.lock-viewers.title": "Khóa camera", "app.lock-viewers.description": "Các tùy chá»n nà y cho phép bạn hạn chế ngÆ°á»i xem từ việc sá» dụng các tÃnh năng cụ thể.", "app.lock-viewers.featuresLable": "Nổi báºt", "app.lock-viewers.lockStatusLabel": "Trạng thái", @@ -501,19 +505,19 @@ "app.lock-viewers.otherViewersWebcamLabel": "Xem các webcam ngÆ°á»i dùng khác", "app.lock-viewers.microphoneLable": "Chia sẻ micro", "app.lock-viewers.PublicChatLabel": "Gá»i tin nhắn trò chuyện công khai", - "app.lock-viewers.PrivateChatLable": "Gá»i tin nhắn trò chuyện riêng tÆ°", - "app.lock-viewers.notesLabel": "Chỉnh sá»a Shared Notes", + "app.lock-viewers.PrivateChatLable": "Gá»i tin nhắn riêng", + "app.lock-viewers.notesLabel": "Sá»a Ghi chú chung", "app.lock-viewers.userListLabel": "Xem những ngÆ°á»i xem khác trong danh sách NgÆ°á»i dùng", "app.lock-viewers.ariaTitle": "Khóa phÆ°Æ¡ng thức tùy chỉnh ngÆ°á»i xem", "app.lock-viewers.button.apply": "Xác nháºn", "app.lock-viewers.button.cancel": "Hủy", "app.lock-viewers.locked": "Bị khóa", "app.lock-viewers.unlocked": "Mở khóa", - "app.recording.startTitle": "Bắt đầu ghi âm", - "app.recording.stopTitle": "Tạm dừng ghi âm", - "app.recording.resumeTitle": "Tiếp tục ghi âm", - "app.recording.startDescription": "Bạn có thể ấn nút ghi âm lại để tạm dừng việc ghi âm", - "app.recording.stopDescription": "Bạn có chắc là muốn tạm dừng ghi âm? Bạn có thể tiếp tục ghi âm lại bằng cách ấn nút ghi âm lại lần nữa", + "app.recording.startTitle": "Bắt đầu ghi hình", + "app.recording.stopTitle": "Tạm dừng ghi hình", + "app.recording.resumeTitle": "Tiếp tục ghi hình", + "app.recording.startDescription": "Bạn có thể ấn nút Ghi hình lại để tạm dừng", + "app.recording.stopDescription": "Bạn có chắc là muốn tạm dừng ghi hình? Bạn có thể tiếp tục ghi hình lại bằng cách ấn nút ghi hình lần nữa", "app.videoPreview.cameraLabel": "Camera", "app.videoPreview.profileLabel": "Chất lượng", "app.videoPreview.cancelLabel": "Hủy", @@ -526,15 +530,15 @@ "app.videoPreview.webcamNotFoundLabel": "Không tìm thấy webcam", "app.videoPreview.profileNotFoundLabel": "Không há»— trợ camera", "app.video.joinVideo": "Chia sẻ webcam", - "app.video.leaveVideo": "Dừng việc chia sẻ webcam", + "app.video.leaveVideo": "Dừng chia sẻ webcam", "app.video.iceCandidateError": "Error on adding ICE candidate", - "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.permissionError": "Lá»—i chia sẻ camera, vui lòng kiểm tra quyá»n chia sẻ", + "app.video.sharingError": "\bLá»—i chia sẻ camera", + "app.video.notFoundError": "Không thể tìm thấy webcam. Kiểm tra lại thiết bị", + "app.video.notAllowed": "Thiếu quyá»n chia sẻ webcam, kiểm tra lại quyá»n truy cáºp camera của Trình duyệt", "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.suggestWebcamLock": "Bắt buá»™c khóa tùy chỉnh webcam của ngÆ°á»i xem", + "app.video.suggestWebcamLock": "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", "app.video.cancel": "Hủy", @@ -542,7 +546,7 @@ "app.video.swapCamDesc": "Äổi vị trà các webcam", "app.video.videoLocked": "Chia sẻ webcam đã khóa", "app.video.videoButtonDesc": "Chia sẻ webcam", - "app.video.videoMenu": "menu video", + "app.video.videoMenu": "Menu video", "app.video.videoMenuDisabled": "menu video webcam không khả đụng trong mục cà i đặt", "app.video.videoMenuDesc": "Mở thanh menu video trượt xuống", "app.video.chromeExtensionError": "Bạn phải cà i đặt", @@ -556,13 +560,13 @@ "app.video.stats.lostRecentPercentage": "Phần trăm bị mất gần đây", "app.video.stats.dimensions": "KÃch thÆ°á»›c", "app.video.stats.codec": "Tiá»n mã hóa", - "app.video.stats.decodeDelay": "Äá»— trệ giải mã", + "app.video.stats.decodeDelay": "Äá»— trá»… giải mã", "app.video.stats.rtt": "RTT", "app.video.stats.encodeUsagePercent": "Sá» dụng mã hóa", - "app.video.stats.currentDelay": "Sá»± cháºm trá»… hiện tại", + "app.video.stats.currentDelay": "Äá»™ trá»… hiện tại", "app.fullscreenButton.label": "Tạo {0} toà n mà n hình", "app.meeting.endNotification.ok.label": "Äồng ý", - "app.whiteboard.annotations.poll": "Kết quả cuá»™c thăm dò ý kiến đã được công bố", + "app.whiteboard.annotations.poll": "Äã công bố kết quả thăm dò ý kiến", "app.whiteboard.toolbar.tools": "Công cụ", "app.whiteboard.toolbar.tools.hand": "Pan", "app.whiteboard.toolbar.tools.pencil": "Bút chì", @@ -589,10 +593,10 @@ "app.whiteboard.toolbar.color.silver": "Mà u bạc", "app.whiteboard.toolbar.undo": "Hoà n tác chú thÃch", "app.whiteboard.toolbar.clear": "Xóa tất cả các chú thÃch", - "app.whiteboard.toolbar.multiUserOn": "Báºt bảng trắng cho nhiá»u ngÆ°á»i dùng", - "app.whiteboard.toolbar.multiUserOff": "Tắt bảng trắng cho nhiá»u ngÆ°á»i dùng", + "app.whiteboard.toolbar.multiUserOn": "Chia sẻ bảng trắng", + "app.whiteboard.toolbar.multiUserOff": " Tắt chia sẻ bảng trắng", "app.whiteboard.toolbar.fontSize": "Danh sách kÃch thÆ°á»›c phông chữ", - "app.feedback.title": "Bạn vừa đăng xuất khá»i cuá»™c há»™i nghị", + "app.feedback.title": "Bạn vừa đăng xuất khá»i cuá»™c há»p", "app.feedback.subtitle": "Chúng tôi muốn nghe trải nghiệm của bạn vá» hệ thống nà y (tùy chá»n)", "app.feedback.textarea": "Là m thế nà o để hệ thống tốt hÆ¡n?", "app.feedback.sendFeedback": "Gá»i phản hồi", @@ -603,11 +607,11 @@ "app.videoDock.webcamUnfocusDesc": "Không táºp trung và o các webcam đã chá»n", "app.videoDock.autoplayBlockedDesc": "Bạn cần phải cho phép để có thể xem được webcam của ngÆ°á»i khác", "app.videoDock.autoplayAllowLabel": "Xem webcam", - "app.invitation.title": "Lá»i má»i và o phòng chia nhóm", + "app.invitation.title": "Má»i và o phòng chia nhóm thảo luáºn", "app.invitation.confirm": "Má»i", - "app.createBreakoutRoom.title": "Chia nhóm", + "app.createBreakoutRoom.title": "Chia nhóm thảo luáºn", "app.createBreakoutRoom.ariaTitle": "Ẩn các phòng chia nhóm", - "app.createBreakoutRoom.breakoutRoomLabel": "Phong chia nhóm {0}", + "app.createBreakoutRoom.breakoutRoomLabel": "Phòng thảo luáºn {0}", "app.createBreakoutRoom.generatingURL": "Tạo URL", "app.createBreakoutRoom.generatedURL": "Tạo", "app.createBreakoutRoom.duration": "Thá»i lượng {0}", @@ -635,13 +639,13 @@ "app.createBreakoutRoom.roomTime": "{0} phút", "app.createBreakoutRoom.numberOfRoomsError": "Số phòng không hợp lÃ", "app.externalVideo.start": "Chia sẻ video má»›i", - "app.externalVideo.title": "Chia sẻ 1 video ở ngoà i", + "app.externalVideo.title": "Chia sẻ 1 video bên ngoà i", "app.externalVideo.input": "URL của video ở ngoà i", "app.externalVideo.urlInput": "Thêm video URL", "app.externalVideo.urlError": "URL nà y không được há»— trợ", "app.externalVideo.close": "Äóng", "app.externalVideo.autoPlayWarning": "Phát video để báºt đồng bá»™ hóa phÆ°Æ¡ng tiện", - "app.network.connection.effective.slow": "Chúng tôi nháºn thấy các vấn Ä‘á» kết nối", + "app.network.connection.effective.slow": "Có vấn Ä‘á» vá» kết nối", "app.network.connection.effective.slow.help": "Thông tin thêm", "app.externalVideo.noteLabel": "LÆ°u ý: Các video được chia sẻ sẽ không xuất hiện trong bản recording. Cho phép: YouTube, Vimeo, Instructure Media, Twitch, Daily Motion.", "app.actionsBar.actionsDropdown.shareExternalVideo": "Chia sẻ 1 video ở ngoà i", diff --git a/bigbluebutton-html5/private/locales/zh_CN.json b/bigbluebutton-html5/private/locales/zh_CN.json index d7817b95eaa2e1661b445a9bf03be345f6af0c28..0aff691d3db9e89279b672ee4f54cb6ac72d9911 100644 --- a/bigbluebutton-html5/private/locales/zh_CN.json +++ b/bigbluebutton-html5/private/locales/zh_CN.json @@ -63,6 +63,7 @@ "app.userList.presenter": "演示者", "app.userList.you": "您", "app.userList.locked": "å·²é”定", + "app.userList.byModerator": "ç»ç”± (主æŒäºº)", "app.userList.label": "用户列表", "app.userList.toggleCompactView.label": "打开/å…³é—紧凑视图模å¼", "app.userList.guest": "游客", @@ -72,6 +73,8 @@ "app.userList.menu.chat.label": "开始ç§äººèŠå¤©", "app.userList.menu.clearStatus.label": "清除状æ€", "app.userList.menu.removeUser.label": "踢出去", + "app.userList.menu.removeConfirmation.label": "åˆ é™¤ç”¨æˆ· ({0})", + "app.userlist.menu.removeConfirmation.desc": "确实è¦åˆ 除æ¤ç”¨æˆ·å—ï¼Ÿä¸€æ—¦åˆ é™¤ï¼Œä»–ä»¬å°†æ— æ³•é‡æ–°åŠ å…¥æ¤ä¼šè¯ã€‚", "app.userList.menu.muteUserAudio.label": "é™éŸ³", "app.userList.menu.unmuteUserAudio.label": "å–消é™éŸ³", "app.userList.userAriaLabel": "{0}{1}{2}状æ€{3}", @@ -112,7 +115,6 @@ "app.media.screenshare.start": "å±å¹•åˆ†äº«å·²å¼€å§‹", "app.media.screenshare.end": "å±å¹•åˆ†äº«å·²ç»“æŸ", "app.media.screenshare.unavailable": "å±å¹•åˆ†äº«ä¸å¯ç”¨", - "app.media.screenshare.safariNotSupported": "Safari当å‰è¿˜ä¸æ”¯æŒå±å¹•åˆ†äº«ï¼Œè¯·æ¢ç”¨Firefox或Chromeæµè§ˆå™¨ã€‚", "app.media.screenshare.autoplayBlockedDesc": "我们需è¦æ‚¨çš„许å¯æ‰èƒ½æ˜¾ç¤ºæ¼”示者的å±å¹•ã€‚", "app.media.screenshare.autoplayAllowLabel": "查看分享å±å¹•", "app.screenshare.notAllowed": "错误:未授予访问å±å¹•çš„æƒé™ã€‚", @@ -171,6 +173,9 @@ "app.presentationUploder.rejectedError": "选定的文件(s)已被拒ç»ã€‚请检查文件类型(s)。", "app.presentationUploder.upload.progress": "ä¸Šä¼ ä¸({0}%)", "app.presentationUploder.upload.413": "文件太大,请分æˆå¤šä¸ªæ–‡ä»¶ã€‚", + "app.presentationUploder.upload.408": "请求上载令牌超时。", + "app.presentationUploder.upload.404": "404:ä¸Šä¼ ä»¤ç‰Œæ— æ•ˆ", + "app.presentationUploder.upload.401": "请求演示文稿上载令牌失败。", "app.presentationUploder.conversion.conversionProcessingSlides": "处ç†ä¸ï¼Œç¬¬{0}页/å…±{1}页", "app.presentationUploder.conversion.genericConversionStatus": "文件转æ¢ä¸...", "app.presentationUploder.conversion.generatingThumbnail": "æ£åœ¨ç”Ÿæˆç¼©ç•¥å›¾...", diff --git a/bigbluebutton-html5/private/locales/zh_TW.json b/bigbluebutton-html5/private/locales/zh_TW.json index 9903129ccf52d396c5fe83cc568f1761e27d7876..b4b82bd88b3fed740f04aded75511c3ebe5a2bb1 100644 --- a/bigbluebutton-html5/private/locales/zh_TW.json +++ b/bigbluebutton-html5/private/locales/zh_TW.json @@ -63,6 +63,7 @@ "app.userList.presenter": "ç°¡å ±è€…", "app.userList.you": "您", "app.userList.locked": "已鎖定", + "app.userList.byModerator": "ç”±(演說者)", "app.userList.label": "用戶列表", "app.userList.toggleCompactView.label": "打開/關閉緊湊視圖模å¼", "app.userList.guest": "訪客", @@ -72,6 +73,8 @@ "app.userList.menu.chat.label": "開始ç§äººèŠå¤©", "app.userList.menu.clearStatus.label": "清除狀態", "app.userList.menu.removeUser.label": "移除用戶", + "app.userList.menu.removeConfirmation.label": "刪除使用者({0})", + "app.userlist.menu.removeConfirmation.desc": "您確定è¦åˆªé™¤é€™å€‹åƒèˆ‡è€…å—Ž?刪除後他將å†ä¹Ÿä¸èƒ½åŠ å…¥æ¤æœƒè«‡ã€‚", "app.userList.menu.muteUserAudio.label": "用戶éœéŸ³", "app.userList.menu.unmuteUserAudio.label": "å–消用戶éœéŸ³", "app.userList.userAriaLabel": "{0}{1}{2}狀態{3}", @@ -82,12 +85,12 @@ "app.userList.menu.directoryLookup.label": "目錄查找", "app.userList.menu.makePresenter.label": "è¨ç‚ºç°¡å ±è€…", "app.userList.userOptions.manageUsersLabel": "管ç†ä½¿ç”¨è€…", - "app.userList.userOptions.muteAllLabel": "éœéŸ³æ‰€æœ‰åƒè€ƒè€…", + "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.muteAllExceptPresenterLabel": "é™¤äº†ç°¡å ±è€…å¤–ï¼Œä½¿ç”¨è€…å…¨éƒ¨éœéŸ³", + "app.userList.userOptions.muteAllExceptPresenterDesc": "é™¤äº†ç°¡å ±è€…å¤–ï¼ŒéœéŸ³æœƒè°ä¸æ‰€æœ‰ä½¿ç”¨è€…", "app.userList.userOptions.unmuteAllLabel": "關閉會è°å®¤éœéŸ³", "app.userList.userOptions.unmuteAllDesc": "解除會è°å®¤éœéŸ³", "app.userList.userOptions.lockViewersLabel": "鎖定è½çœ¾", @@ -111,7 +114,8 @@ "app.media.autoplayAlertDesc": "å…許å˜å–", "app.media.screenshare.start": "ç•«é¢åˆ†äº«å·²é–‹å§‹", "app.media.screenshare.end": "ç•«é¢åˆ†äº«å·²çµæŸ", - "app.media.screenshare.autoplayBlockedDesc": "我們需è¦æ‚¨çš„許å¯æ‰èƒ½å‘您顯示主æŒäººç•«é¢ã€‚", + "app.media.screenshare.unavailable": "ç•«é¢åˆ†äº«ä¸èƒ½ç”¨", + "app.media.screenshare.autoplayBlockedDesc": "我們需è¦æ‚¨çš„許å¯æ‰èƒ½å‘æ‚¨é¡¯ç¤ºç°¡å ±è€…ç•«é¢ã€‚", "app.media.screenshare.autoplayAllowLabel": "查看分享畫é¢", "app.screenshare.notAllowed": "錯誤: 未授與畫é¢å˜å–權é™", "app.screenshare.notSupportedError": "錯誤: 螢幕分享åªå…許在安全的(SSL)域å", @@ -154,7 +158,7 @@ "app.presentation.presentationToolbar.fitToPage": "é©åˆé é¢", "app.presentation.presentationToolbar.goToSlide": "投影片 {0}", "app.presentationUploder.title": "投影片", - "app.presentationUploder.message": "作為主æŒäººï¼Œæ‚¨å¯ä»¥ä¸Šå‚³ä»»ä½•Office文檔或PDF文件。 我們建è°æ‚¨ä½¿ç”¨PDF文件以ç²å¾—最佳效果。 請確ä¿ä½¿ç”¨å³å´çš„圓形圈é¸æ¡†ï¼Œé¸å–了è¦æ¼”說的文件。", + "app.presentationUploder.message": "ä½œç‚ºç°¡å ±è€…ï¼Œæ‚¨å¯ä»¥ä¸Šå‚³ä»»ä½•Office文檔或PDF文件。 我們建è°æ‚¨ä½¿ç”¨PDF文件以ç²å¾—最佳效果。 請確ä¿ä½¿ç”¨å³å´çš„圓形圈é¸æ¡†ï¼Œé¸å–了è¦æ¼”說的文件。", "app.presentationUploder.uploadLabel": "上傳", "app.presentationUploder.confirmLabel": "確èª", "app.presentationUploder.confirmDesc": "ä¿å˜è®Šæ›´ä¸¦ä¸”å•Ÿç”¨ç°¡å ±", @@ -169,6 +173,9 @@ "app.presentationUploder.rejectedError": "所é¸æª”案(複數檔)已被退回,請檢查(其它)æª”æ¡ˆæ ¼å¼ã€‚", "app.presentationUploder.upload.progress": "ä¸Šå‚³ä¸ ({0}%)", "app.presentationUploder.upload.413": "檔案太大了,請分æˆå¤šå€‹æª”案。", + "app.presentationUploder.upload.408": "è¦æ±‚上傳token逾時。", + "app.presentationUploder.upload.404": "404: 無效的上傳Token", + "app.presentationUploder.upload.401": "è¦ç”±æ¼”講稿上傳Token失敗。", "app.presentationUploder.conversion.conversionProcessingSlides": "處ç†ä¸ï¼Œç¬¬ {0}/{1} é ", "app.presentationUploder.conversion.genericConversionStatus": "檔案轉æ›ä¸ ...", "app.presentationUploder.conversion.generatingThumbnail": "æ£åœ¨ç”¢ç”Ÿç¸®åœ– ...", @@ -230,7 +237,7 @@ "app.failedMessage": "抱æ‰ï¼Œä¼ºæœå™¨é€£ç·šç•°å¸¸ã€‚", "app.downloadPresentationButton.label": "ä¸‹è¼‰ç°¡å ±", "app.connectingMessage": "é€£ç·šä¸ ...", - "app.waitingMessage": "已斷線了。åšè©¦é‡æ–°å»ºç«‹é€£ç·š {0} 秒", + "app.waitingMessage": "連線終斷了。åšè©¦é‡æ–°å»ºç«‹é€£ç·š {0} 秒", "app.retryNow": "ç«‹å³é‡è©¦", "app.navBar.settingsDropdown.optionsLabel": "é¸é …", "app.navBar.settingsDropdown.fullscreenLabel": "進入全螢幕", @@ -336,8 +343,8 @@ "app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "ç›®å‰çš„會è°å‰µå»ºåˆ†çµ„會è°å®¤", "app.actionsBar.actionsDropdown.captionsLabel": "寫入隱è—å¼å—幕", "app.actionsBar.actionsDropdown.captionsDesc": "é–‹/é—œå—幕é¢ç‰ˆ", - "app.actionsBar.actionsDropdown.takePresenter": "當主æŒäºº", - "app.actionsBar.actionsDropdown.takePresenterDesc": "è¨å®šè‡ªå·±ç‚ºä¸»æŒäºº", + "app.actionsBar.actionsDropdown.takePresenter": "ç•¶ç°¡å ±è€…", + "app.actionsBar.actionsDropdown.takePresenterDesc": "è¨å®šè‡ªå·±ç‚ºç°¡å ±è€…", "app.actionsBar.emojiMenu.statusTriggerLabel": "è¨å®šç‹€æ…‹", "app.actionsBar.emojiMenu.awayLabel": "離開", "app.actionsBar.emojiMenu.awayDesc": "變更您的狀態為離開", @@ -506,9 +513,9 @@ "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.shortcut-help.togglePan": "啟用Pan工具(ç°¡å ±è€…)", + "app.shortcut-help.nextSlideDesc": "下一張投影片(ç°¡å ±è€…)", + "app.shortcut-help.previousSlideDesc": "上一張投影片(ç°¡å ±è€…)", "app.lock-viewers.title": "鎖定è½çœ¾", "app.lock-viewers.description": "這些é¸é …è®“ä½ ç¦æ¢è½çœ¾ä½¿ç”¨ç‰¹å®šåŠŸèƒ½. ", "app.lock-viewers.featuresLable": "功能", diff --git a/bigbluebutton-html5/public/compatibility/kurento-extension.js b/bigbluebutton-html5/public/compatibility/kurento-extension.js index 49c0154887279ea4f04c1cdbd9f701aa6903f5b5..22e880715695d8b53173e5f40401603ac16c6024 100755 --- a/bigbluebutton-html5/public/compatibility/kurento-extension.js +++ b/bigbluebutton-html5/public/compatibility/kurento-extension.js @@ -27,7 +27,7 @@ Kurento = function ( this.internalMeetingId = internalMeetingId; // Optional parameters are: userName, caleeName, chromeExtension, wsUrl, iceServers, - // chromeScreenshareSources, firefoxScreenshareSource, logger + // chromeScreenshareSources, firefoxScreenshareSource, logger, stream Object.assign(this, options); @@ -449,6 +449,7 @@ Kurento.prototype.startScreensharing = function () { this.onIceCandidate(candidate, this.SEND_ROLE); }, sendSource: 'desktop', + videoStream: this.stream || undefined, }; let resolution; @@ -877,11 +878,6 @@ window.getScreenConstraints = function (sendSource, callback) { if (hasDisplayMedia) { return callback(null, getDisplayMediaConstraints()); } - - if (isSafari) { - // At this time (version 11.1), Safari doesn't support screenshare. - return document.dispatchEvent(new Event('safariScreenshareNotSupported')); - } }; window.kurentoInitialize = function () { diff --git a/bigbluebutton-html5/public/compatibility/kurento-utils.js b/bigbluebutton-html5/public/compatibility/kurento-utils.js index bc5d67b1391dc4f2b423ce6f01fe4fed446758dc..047e68afcdd01841aa8c3970a8fce0b8d0d92c99 100755 --- a/bigbluebutton-html5/public/compatibility/kurento-utils.js +++ b/bigbluebutton-html5/public/compatibility/kurento-utils.js @@ -440,10 +440,20 @@ function WebRtcPeer(mode, options, callback) { self.showLocalVideo(); } if (videoStream) { - videoStream.getTracks().forEach(track => pc.addTrack(track, videoStream)); + if (typeof videoStream.getTracks === 'function' + && typeof pc.addTrack === 'function') { + videoStream.getTracks().forEach(track => pc.addTrack(track, videoStream)); + } else { + pc.addStream(videoStream); + } } if (audioStream) { - audioStream.getTracks().forEach(track => pc.addTrack(track, audioStream)); + if (typeof audioStream.getTracks === 'function' + && typeof pc.addTrack === 'function') { + audioStream.getTracks().forEach(track => pc.addTrack(track, audioStream)); + } else { + pc.addStream(audioStream); + } } var browser = parser.getBrowser(); if (mode === 'sendonly' && (browser.name === 'Chrome' || browser.name === 'Chromium') && browser.major === 39) { @@ -1073,20 +1083,6 @@ var freeice = module.exports = function(opts) { },{"./stun.json":6,"./turn.json":7,"normalice":12}],6:[function(require,module,exports){ module.exports=[ - "stun.l.google.com:19302", - "stun1.l.google.com:19302", - "stun2.l.google.com:19302", - "stun3.l.google.com:19302", - "stun4.l.google.com:19302", - "stun.ekiga.net", - "stun.ideasip.com", - "stun.schlund.de", - "stun.stunprotocol.org:3478", - "stun.voiparound.com", - "stun.voipbuster.com", - "stun.voipstunt.com", - "stun.voxgratia.org", - "stun.services.mozilla.com" ] },{}],7:[function(require,module,exports){ diff --git a/bigbluebutton-html5/public/compatibility/sip.js b/bigbluebutton-html5/public/compatibility/sip.js index a2c8b5b384747755b403e106340a3684158f2928..ed3584b453423571373b0fd154acf4f96ed82cf3 100755 --- a/bigbluebutton-html5/public/compatibility/sip.js +++ b/bigbluebutton-html5/public/compatibility/sip.js @@ -9552,7 +9552,7 @@ UA.prototype.loadConfig = function(configuration) { // Session parameters iceCheckingTimeout: 1000, noAnswerTimeout: 60, - stunServers: ['stun:stun.l.google.com:19302'], + stunServers: [], turnServers: [], // Logging parameters 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 5060ebc6d6255a7aa3bb139bc655673fdb92c53c..6cec8cc2f2a4f0fae0b586c56e00efc2dcbc2105 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 @@ -1506,7 +1506,7 @@ class ApiController { logoutTimer meeting.getLogoutTimer() allowStartStopRecording meeting.getAllowStartStopRecording() welcome us.welcome - if (!StringUtils.isEmpty(meeting.moderatorOnlyMessage)) { + if (!StringUtils.isEmpty(meeting.moderatorOnlyMessage) && us.role.equals(ROLE_MODERATOR)) { modOnlyMessage meeting.moderatorOnlyMessage } if (!StringUtils.isEmpty(meeting.bannerText)) { diff --git a/labs/webminer/src/main/java/org/bigbluebutton/webminer/util/Log4jDirectConfigurer.java b/labs/webminer/src/main/java/org/bigbluebutton/webminer/util/Log4jDirectConfigurer.java deleted file mode 100755 index cf515a7a9292ccc6738a05f6070efcaec0c04bc1..0000000000000000000000000000000000000000 --- a/labs/webminer/src/main/java/org/bigbluebutton/webminer/util/Log4jDirectConfigurer.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - @(#)Log4jDirectConfigurer.java $Revision: 1.1 $ $Date: 2008/11/13 13:50:20EST $ - * - * Copyright (c) 2008 N-III Project - Royal Canadian Mounted Police - * All rights reserved. - * - * This software is the confidential and proprietary information of Royal - * Canadian Mounted Police ("Confidential Information"). You shall not - * disclose such Confidential Information and contained herein are considered - * to be Protected and Internal use ONLY by N-III Project, RCMP. - */ -package org.bigbluebutton.webminer.util; - -import org.apache.log4j.LogManager; -import org.apache.log4j.PropertyConfigurator; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; - -/** - * TODO: Brief summary here - one or two sentence overview. - * - * TODO: Detailed explanation of how this works, what it subclasses or what - * should subclass it, etc. This should be as good as the Sun Javadocs. Consider - * embedding some simple examples of using this class. See the Sun Thread class - * for an example. - * - * @version $Revision: 1.1 $ - * @see [Class name#method name] TODO - */ - -public class Log4jDirectConfigurer implements InitializingBean, DisposableBean { - private static final long DEFAULT_REFRESH_INTERVAL = 6000L; - - private String location; - private String fileName; - private String interval; - - /** - * @return the location - */ - public String getLocation() { - return location; - } - - /** - * @param location - * the location to set - */ - public void setLocation(String location) { - this.location = location; - } - - /** - * @return the fileName - */ - public String getFileName() { - return fileName; - } - - /** - * @param fileName - * the fileName to set - */ - public void setFileName(String fileName) { - this.fileName = fileName; - } - - /** - * @return the interval - */ - public String getInterval() { - return interval; - } - - /** - * @param interval - * the interval to set - */ - public void setInterval(String interval) { - this.interval = interval; - } - - /* - * (non-Javadoc) - * - * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() - */ - public void afterPropertiesSet() throws Exception { - - if (getLocation() != null && getFileName() != null) { - - String fqName = System.getProperty(getLocation()) + "/" + getFileName(); - - // use default refresh interval if not specified - long refreshInterval = DEFAULT_REFRESH_INTERVAL; - String intervalString = getInterval(); - if (intervalString != null) { - refreshInterval = Long.parseLong(intervalString); - } - - // perform actual Log4J initialization - PropertyConfigurator.configureAndWatch(fqName, refreshInterval); - } else { - throw new IllegalArgumentException( - "Missing log4jConfigLocation or log4jConfigName parameter."); - } - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.DisposableBean#destroy() - */ - public void destroy() throws Exception { - LogManager.shutdown(); - } -} diff --git a/record-and-playback/presentation/playback/presentation/2.0/lib/writing.js b/record-and-playback/presentation/playback/presentation/2.0/lib/writing.js index b4d12b201d1775e77435d2aee13e2710d01bcdb6..147156f6cf884b61b634ff4e200ecb186e9c4717 100755 --- a/record-and-playback/presentation/playback/presentation/2.0/lib/writing.js +++ b/record-and-playback/presentation/playback/presentation/2.0/lib/writing.js @@ -103,11 +103,33 @@ function getFullURL() { return url; }; +// https://stackoverflow.com/a/60553965 +function detectLyingiOS13iPad() { + var userAgent = navigator.userAgent || navigator.vendor || window.opera; + // Lying iOS13 iPad + if (userAgent.match(/Macintosh/i) !== null) { + // need to distinguish between Macbook and iPad + var canvas = document.createElement("canvas"); + if (canvas !== null) { + var context = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); + if (context) { + var info = context.getExtension("WEBGL_debug_renderer_info"); + if (info) { + var renderer = context.getParameter(info.UNMASKED_RENDERER_WEBGL); + if (renderer.indexOf("Apple") !== -1) + return true; + } + } + } + } + return false; +} + // http://stackoverflow.com/a/11381730 function mobileAndTabletCheck() { let check = false; (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); - return check; + return check || detectLyingiOS13iPad();; } // Draw the cursor at a specific point