Merge branch 'develop' of https://github.com/bigbluebutton/bigbluebutton into develop-bbb

This commit is contained in:
Lucas Zawacki 2022-04-14 18:48:02 +00:00
commit 378d0f18a0
154 changed files with 8696 additions and 2487 deletions

View File

@ -1,2 +0,0 @@
Dockerfile

View File

@ -1,24 +0,0 @@
FROM bbb-common-message AS builder
ARG COMMON_VERSION=0.0.1-SNAPSHOT
COPY . /source
RUN cd /source \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& sbt compile
RUN apt-get update \
&& apt-get -y install fakeroot
RUN cd /source \
&& sbt debian:packageBin
# FROM ubuntu:16.04
FROM openjdk:8-jre-slim-stretch
COPY --from=builder /source/target/*.deb /root/
RUN dpkg -i /root/*.deb
CMD ["/usr/share/bbb-apps-akka/bin/bbb-apps-akka"]

View File

@ -11,6 +11,7 @@ trait BreakoutApp2x extends BreakoutRoomCreatedMsgHdlr
with CreateBreakoutRoomsCmdMsgHdlr with CreateBreakoutRoomsCmdMsgHdlr
with EndAllBreakoutRoomsMsgHdlr with EndAllBreakoutRoomsMsgHdlr
with UpdateBreakoutRoomsTimeMsgHdlr with UpdateBreakoutRoomsTimeMsgHdlr
with ChangeUserBreakoutReqMsgHdlr
with SendMessageToAllBreakoutRoomsMsgHdlr with SendMessageToAllBreakoutRoomsMsgHdlr
with SendMessageToBreakoutRoomInternalMsgHdlr with SendMessageToBreakoutRoomInternalMsgHdlr
with RequestBreakoutJoinURLReqMsgHdlr with RequestBreakoutJoinURLReqMsgHdlr

View File

@ -82,6 +82,29 @@ object BreakoutHdlrHelpers extends SystemConfiguration {
} }
def sendChangeUserBreakoutMsg(
outGW: OutMsgRouter,
meetingId: String,
userId: String,
fromBreakoutId: String,
toBreakoutId: String,
redirectToHtml5JoinURL: String
): Unit = {
def build(meetingId: String, userId: String, fromBreakoutId: String, toBreakoutId: String, redirectToHtml5JoinURL: String): BbbCommonEnvCoreMsg = {
val routing = Routing.addMsgToClientRouting(MessageTypes.DIRECT, meetingId, userId)
val envelope = BbbCoreEnvelope(ChangeUserBreakoutEvtMsg.NAME, routing)
val header = BbbClientMsgHeader(ChangeUserBreakoutEvtMsg.NAME, meetingId, userId)
val body = ChangeUserBreakoutEvtMsgBody(meetingId, userId, fromBreakoutId, toBreakoutId, redirectToHtml5JoinURL)
val event = ChangeUserBreakoutEvtMsg(header, body)
BbbCommonEnvCoreMsg(envelope, event)
}
val msgEvent = build(meetingId, userId, fromBreakoutId, toBreakoutId, redirectToHtml5JoinURL)
outGW.send(msgEvent)
}
def updateParentMeetingWithUsers( def updateParentMeetingWithUsers(
liveMeeting: LiveMeeting, liveMeeting: LiveMeeting,
eventBus: InternalEventBus eventBus: InternalEventBus

View File

@ -0,0 +1,81 @@
package org.bigbluebutton.core.apps.breakout
import org.bigbluebutton.common2.msgs._
import org.bigbluebutton.core.api.EjectUserFromBreakoutInternalMsg
import org.bigbluebutton.core.apps.breakout.BreakoutHdlrHelpers.{ getRedirectUrls }
import org.bigbluebutton.core.apps.{ PermissionCheck, RightsManagementTrait }
import org.bigbluebutton.core.bus.BigBlueButtonEvent
import org.bigbluebutton.core.domain.MeetingState2x
import org.bigbluebutton.core.models.{ EjectReasonCode }
import org.bigbluebutton.core.running.{ MeetingActor, OutMsgRouter }
import org.bigbluebutton.core2.message.senders.{ MsgBuilder }
trait ChangeUserBreakoutReqMsgHdlr extends RightsManagementTrait {
this: MeetingActor =>
val outGW: OutMsgRouter
def handleChangeUserBreakoutReqMsg(msg: ChangeUserBreakoutReqMsg, state: MeetingState2x): MeetingState2x = {
if (permissionFailed(PermissionCheck.MOD_LEVEL, PermissionCheck.VIEWER_LEVEL, liveMeeting.users2x, msg.header.userId)) {
val meetingId = liveMeeting.props.meetingProp.intId
val reason = "No permission to move user among breakout rooms."
PermissionCheck.ejectUserForFailedPermission(meetingId, msg.header.userId, reason, outGW, liveMeeting)
state
} else {
val meetingId = liveMeeting.props.meetingProp.intId
for {
breakoutModel <- state.breakout
} yield {
//Eject user from room From
for {
roomFrom <- breakoutModel.rooms.get(msg.body.fromBreakoutId)
} yield {
roomFrom.users.filter(u => u.id == msg.body.userId + "-" + roomFrom.sequence).foreach(user => {
eventBus.publish(BigBlueButtonEvent(roomFrom.id, EjectUserFromBreakoutInternalMsg(meetingId, roomFrom.id, user.id, msg.header.userId, "User moved to another room", EjectReasonCode.EJECT_USER, false)))
})
}
//Get join URL for room To
val redirectToHtml5JoinURL = (
for {
roomTo <- breakoutModel.rooms.get(msg.body.toBreakoutId)
(redirectToHtml5JoinURL, redirectJoinURL) <- getRedirectUrls(liveMeeting, msg.body.userId, roomTo.externalId, roomTo.sequence.toString())
} yield redirectToHtml5JoinURL
).getOrElse("")
BreakoutHdlrHelpers.sendChangeUserBreakoutMsg(
outGW,
meetingId,
msg.body.userId,
msg.body.fromBreakoutId,
msg.body.toBreakoutId,
redirectToHtml5JoinURL,
)
//Send notification to moved User
for {
roomFrom <- breakoutModel.rooms.get(msg.body.fromBreakoutId)
roomTo <- breakoutModel.rooms.get(msg.body.toBreakoutId)
} yield {
val notifyUserEvent = MsgBuilder.buildNotifyUserInMeetingEvtMsg(
msg.body.userId,
liveMeeting.props.meetingProp.intId,
"info",
"promote",
"app.updateBreakoutRoom.userChangeRoomNotification",
"Notification to warn user was moved to another room",
Vector(roomTo.shortName)
)
outGW.send(notifyUserEvent)
}
}
state
}
}
}

View File

@ -30,6 +30,9 @@ trait EjectUserFromBreakoutInternalMsgHdlr {
// send a system message to force disconnection // send a system message to force disconnection
Sender.sendDisconnectClientSysMsg(msg.breakoutId, registeredUser.id, msg.ejectedBy, msg.reasonCode, outGW) Sender.sendDisconnectClientSysMsg(msg.breakoutId, registeredUser.id, msg.ejectedBy, msg.reasonCode, outGW)
//send users update to parent meeting
BreakoutHdlrHelpers.updateParentMeetingWithUsers(liveMeeting, eventBus)
log.info("Eject user {} id={} in breakoutId {}", registeredUser.name, registeredUser.id, msg.breakoutId) log.info("Eject user {} id={} in breakoutId {}", registeredUser.name, registeredUser.id, msg.breakoutId)
} }

View File

@ -3,8 +3,8 @@ package org.bigbluebutton.core.apps.users
import org.bigbluebutton.common2.msgs.UserJoinMeetingReqMsg import org.bigbluebutton.common2.msgs.UserJoinMeetingReqMsg
import org.bigbluebutton.core.apps.breakout.BreakoutHdlrHelpers import org.bigbluebutton.core.apps.breakout.BreakoutHdlrHelpers
import org.bigbluebutton.core.domain.MeetingState2x import org.bigbluebutton.core.domain.MeetingState2x
import org.bigbluebutton.core.models.{Users2x, VoiceUsers} import org.bigbluebutton.core.models.{ Users2x, VoiceUsers }
import org.bigbluebutton.core.running.{HandlerHelpers, LiveMeeting, MeetingActor, OutMsgRouter} import org.bigbluebutton.core.running.{ HandlerHelpers, LiveMeeting, MeetingActor, OutMsgRouter }
trait UserJoinMeetingReqMsgHdlr extends HandlerHelpers { trait UserJoinMeetingReqMsgHdlr extends HandlerHelpers {
this: MeetingActor => this: MeetingActor =>

View File

@ -231,6 +231,8 @@ class ReceivedJsonMsgHandlerActor(
routeGenericMsg[UpdateBreakoutRoomsTimeReqMsg](envelope, jsonNode) routeGenericMsg[UpdateBreakoutRoomsTimeReqMsg](envelope, jsonNode)
case SendMessageToAllBreakoutRoomsReqMsg.NAME => case SendMessageToAllBreakoutRoomsReqMsg.NAME =>
routeGenericMsg[SendMessageToAllBreakoutRoomsReqMsg](envelope, jsonNode) routeGenericMsg[SendMessageToAllBreakoutRoomsReqMsg](envelope, jsonNode)
case ChangeUserBreakoutReqMsg.NAME =>
routeGenericMsg[ChangeUserBreakoutReqMsg](envelope, jsonNode)
// Layout // Layout
case GetCurrentLayoutReqMsg.NAME => case GetCurrentLayoutReqMsg.NAME =>

View File

@ -437,6 +437,7 @@ class MeetingActor(
case m: TransferUserToMeetingRequestMsg => state = handleTransferUserToMeetingRequestMsg(m, state) case m: TransferUserToMeetingRequestMsg => state = handleTransferUserToMeetingRequestMsg(m, state)
case m: UpdateBreakoutRoomsTimeReqMsg => state = handleUpdateBreakoutRoomsTimeMsg(m, state) case m: UpdateBreakoutRoomsTimeReqMsg => state = handleUpdateBreakoutRoomsTimeMsg(m, state)
case m: SendMessageToAllBreakoutRoomsReqMsg => state = handleSendMessageToAllBreakoutRoomsMsg(m, state) case m: SendMessageToAllBreakoutRoomsReqMsg => state = handleSendMessageToAllBreakoutRoomsMsg(m, state)
case m: ChangeUserBreakoutReqMsg => state = handleChangeUserBreakoutReqMsg(m, state)
// Voice // Voice
case m: UserLeftVoiceConfEvtMsg => handleUserLeftVoiceConfEvtMsg(m) case m: UserLeftVoiceConfEvtMsg => handleUserLeftVoiceConfEvtMsg(m)

View File

@ -1,26 +0,0 @@
FROM bbb-fsesl-client AS builder
ARG COMMON_VERSION=0.0.1-SNAPSHOT
COPY . /source
RUN cd /source \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-fsesl-client[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& sbt compile
RUN apt-get update \
&& apt-get -y install fakeroot
RUN cd /source \
&& sbt debian:packageBin
FROM openjdk:8-jre-slim-stretch
COPY --from=builder /source/target/*.deb /root/
RUN dpkg -i /root/*.deb
COPY wait-for-it.sh /usr/local/bin/
CMD ["/usr/share/bbb-fsesl-akka/bin/bbb-fsesl-akka"]

View File

@ -1,13 +0,0 @@
FROM sbt:0.13.8
ARG COMMON_VERSION
COPY . /bbb-common-message
RUN cd /bbb-common-message \
&& sed -i "s|\(version := \)\".*|\1\"$COMMON_VERSION\"|g" build.sbt \
&& echo 'publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath+"/.m2/repository")))' | tee -a build.sbt \
&& sbt compile \
&& sbt publish \
&& sbt publishLocal

View File

@ -110,6 +110,14 @@ object SendMessageToAllBreakoutRoomsEvtMsg { val NAME = "SendMessageToAllBreakou
case class SendMessageToAllBreakoutRoomsEvtMsg(header: BbbClientMsgHeader, body: SendMessageToAllBreakoutRoomsEvtMsgBody) extends BbbCoreMsg case class SendMessageToAllBreakoutRoomsEvtMsg(header: BbbClientMsgHeader, body: SendMessageToAllBreakoutRoomsEvtMsgBody) extends BbbCoreMsg
case class SendMessageToAllBreakoutRoomsEvtMsgBody(meetingId: String, senderId: String, msg: String, totalOfRooms: Int) case class SendMessageToAllBreakoutRoomsEvtMsgBody(meetingId: String, senderId: String, msg: String, totalOfRooms: Int)
object ChangeUserBreakoutReqMsg { val NAME = "ChangeUserBreakoutReqMsg" }
case class ChangeUserBreakoutReqMsg(header: BbbClientMsgHeader, body: ChangeUserBreakoutReqMsgBody) extends StandardMsg
case class ChangeUserBreakoutReqMsgBody(meetingId: String, userId: String, fromBreakoutId: String, toBreakoutId: String)
object ChangeUserBreakoutEvtMsg { val NAME = "ChangeUserBreakoutEvtMsg" }
case class ChangeUserBreakoutEvtMsg(header: BbbClientMsgHeader, body: ChangeUserBreakoutEvtMsgBody) extends BbbCoreMsg
case class ChangeUserBreakoutEvtMsgBody(meetingId: String, userId: String, fromBreakoutId: String, toBreakoutId: String, redirectToHtml5JoinURL: String)
// Common Value objects // Common Value objects
case class BreakoutUserVO(id: String, name: String) case class BreakoutUserVO(id: String, name: String)

View File

@ -1,13 +0,0 @@
FROM bbb-common-message
ARG COMMON_VERSION
COPY . /bbb-common-web
RUN cd /bbb-common-web \
&& sed -i "s|\(version := \)\".*|\1\"$COMMON_VERSION\"|g" build.sbt \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& echo 'publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath+"/.m2/repository")))' | tee -a build.sbt \
&& sbt compile \
&& sbt publish \
&& sbt publishLocal

View File

@ -1,13 +0,0 @@
FROM bbb-common-message
ARG COMMON_VERSION
COPY . /bbb-fsesl-client
RUN cd /bbb-fsesl-client \
&& sed -i "s|\(version := \)\".*|\1\"$COMMON_VERSION\"|g" build.sbt \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& echo 'publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath+"/.m2/repository")))' | tee -a build.sbt \
&& sbt compile \
&& sbt publish \
&& sbt publishLocal

View File

@ -1 +1 @@
git clone --branch v3.4.0 --depth 1 https://github.com/bigbluebutton/bbb-playback bbb-playback git clone --branch v3.4.1 --depth 1 https://github.com/bigbluebutton/bbb-playback bbb-playback

View File

@ -658,8 +658,10 @@ fi
if [[ $SECRET ]]; then if [[ $SECRET ]]; then
need_root need_root
if get_properties_value securitySalt "$BBB_WEB_ETC_CONFIG" > /dev/null ; then
change_var_salt "$BBB_WEB_ETC_CONFIG" securitySalt "$SECRET" echo "Assigning secret in $BBB_WEB_ETC_CONFIG"
if [ -f "$BBB_WEB_ETC_CONFIG" ] && grep "^securitySalt" "$BBB_WEB_ETC_CONFIG" > /dev/null ; then
change_var_value "$BBB_WEB_ETC_CONFIG" securitySalt "$SECRET"
else else
echo "securitySalt=$SECRET" >> "$BBB_WEB_ETC_CONFIG" echo "securitySalt=$SECRET" >> "$BBB_WEB_ETC_CONFIG"
fi fi
@ -1612,7 +1614,7 @@ if [ -n "$HOST" ]; then
if [ -f "$BBB_WEB_ETC_CONFIG" ] && grep "bigbluebutton.web.serverURL" "$BBB_WEB_ETC_CONFIG" > /dev/null ; then if [ -f "$BBB_WEB_ETC_CONFIG" ] && grep "bigbluebutton.web.serverURL" "$BBB_WEB_ETC_CONFIG" > /dev/null ; then
change_var_value "$BBB_WEB_ETC_CONFIG" bigbluebutton.web.serverURL "$PROTOCOL://$HOST" change_var_value "$BBB_WEB_ETC_CONFIG" bigbluebutton.web.serverURL "$PROTOCOL://$HOST"
else else
echo "bigbluebutton.web.serverURL=$PROTOCOL://$HOST" > "$BBB_WEB_ETC_CONFIG" echo "bigbluebutton.web.serverURL=$PROTOCOL://$HOST" >> "$BBB_WEB_ETC_CONFIG"
fi fi

View File

@ -1,2 +0,0 @@
Dockerfile
Dockerfile.dev

View File

@ -1,38 +0,0 @@
FROM node:8
RUN set -x \
&& curl -sL https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh \
&& useradd -m -G users -s /bin/bash meteor
RUN apt-get update && apt-get -y install jq
COPY . /source
RUN cd /source \
&& mv docker-entrypoint.sh /usr/local/bin/ \
&& chown -R meteor:meteor . \
&& mkdir /app \
&& chown -R meteor:meteor /app
USER meteor
RUN cd /source \
&& meteor npm install \
&& meteor build --directory /app
ENV NODE_ENV production
RUN cd /app/bundle/programs/server \
&& npm install \
&& npm cache clear --force
WORKDIR /app/bundle
ENV MONGO_URL=mongodb://mongo:27017/html5client \
PORT=3000 \
ROOT_URL=http://localhost:3000 \
METEOR_SETTINGS_MODIFIER=.
EXPOSE 3000
CMD ["docker-entrypoint.sh"]

View File

@ -1,24 +0,0 @@
FROM node:8
COPY . /source
RUN set -x \
&& curl -sL https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh \
&& useradd -m -G users -s /bin/bash meteor \
&& chown -R meteor:meteor /source
USER meteor
RUN cd /source \
&& meteor npm install
WORKDIR /source
ENV MONGO_URL=mongodb://mongo:27017/html5client \
PORT=3000 \
ROOT_URL=http://localhost:3000
EXPOSE 3000
CMD ["npm", "start"]

View File

@ -1,5 +0,0 @@
#!/bin/bash -e
export METEOR_SETTINGS=` jq "${METEOR_SETTINGS_MODIFIER}" ./programs/server/assets/app/config/settings.yml `
exec node main.js

View File

@ -4,9 +4,11 @@ import handleBreakoutRoomsList from './handlers/breakoutList';
import handleUpdateTimeRemaining from './handlers/updateTimeRemaining'; import handleUpdateTimeRemaining from './handlers/updateTimeRemaining';
import handleBreakoutClosed from './handlers/breakoutClosed'; import handleBreakoutClosed from './handlers/breakoutClosed';
import joinedUsersChanged from './handlers/joinedUsersChanged'; import joinedUsersChanged from './handlers/joinedUsersChanged';
import userBreakoutChanged from '/imports/api/breakouts/server/handlers/userBreakoutChanged';
RedisPubSub.on('BreakoutRoomsListEvtMsg', handleBreakoutRoomsList); RedisPubSub.on('BreakoutRoomsListEvtMsg', handleBreakoutRoomsList);
RedisPubSub.on('BreakoutRoomJoinURLEvtMsg', handleBreakoutJoinURL); RedisPubSub.on('BreakoutRoomJoinURLEvtMsg', handleBreakoutJoinURL);
RedisPubSub.on('BreakoutRoomsTimeRemainingUpdateEvtMsg', handleUpdateTimeRemaining); RedisPubSub.on('BreakoutRoomsTimeRemainingUpdateEvtMsg', handleUpdateTimeRemaining);
RedisPubSub.on('BreakoutRoomEndedEvtMsg', handleBreakoutClosed); RedisPubSub.on('BreakoutRoomEndedEvtMsg', handleBreakoutClosed);
RedisPubSub.on('UpdateBreakoutUsersEvtMsg', joinedUsersChanged); RedisPubSub.on('UpdateBreakoutUsersEvtMsg', joinedUsersChanged);
RedisPubSub.on('ChangeUserBreakoutEvtMsg', userBreakoutChanged);

View File

@ -0,0 +1,65 @@
import Breakouts from '/imports/api/breakouts';
import Logger from '/imports/startup/server/logger';
import { check } from 'meteor/check';
export default function userBreakoutChanged({ body }) {
check(body, Object);
const {
meetingId,
userId,
fromBreakoutId,
toBreakoutId,
redirectToHtml5JoinURL,
} = body;
check(meetingId, String);
check(userId, String);
check(fromBreakoutId, String);
check(toBreakoutId, String);
check(redirectToHtml5JoinURL, String);
const oldBreakoutSelector = {
parentMeetingId: meetingId,
breakoutId: fromBreakoutId,
freeJoin: false,
};
const newBreakoutSelector = {
parentMeetingId: meetingId,
breakoutId: toBreakoutId,
};
const oldModifier = {
$unset: {
[`url_${userId}`]: '',
},
};
const newModifier = {
$set: {
[`url_${userId}`]: {
redirectToHtml5JoinURL,
insertedTime: new Date().getTime(),
},
},
};
try {
let numberAffectedRows = 0;
if (oldBreakoutSelector.breakoutId !== '') {
numberAffectedRows += Breakouts.update(oldBreakoutSelector, oldModifier);
}
if (newBreakoutSelector.breakoutId !== '') {
numberAffectedRows += Breakouts.update(newBreakoutSelector, newModifier);
}
if (numberAffectedRows > 0) {
Logger.info(`Updated user breakout for userId=${userId}`);
}
} catch (err) {
Logger.error(`Updating user breakout: ${err}`);
}
}

View File

@ -4,6 +4,7 @@ import requestJoinURL from './methods/requestJoinURL';
import endAllBreakouts from './methods/endAllBreakouts'; import endAllBreakouts from './methods/endAllBreakouts';
import setBreakoutsTime from '/imports/api/breakouts/server/methods/setBreakoutsTime'; import setBreakoutsTime from '/imports/api/breakouts/server/methods/setBreakoutsTime';
import sendMessageToAllBreakouts from './methods/sendMessageToAllBreakouts'; import sendMessageToAllBreakouts from './methods/sendMessageToAllBreakouts';
import moveUser from '/imports/api/breakouts/server/methods/moveUser';
Meteor.methods({ Meteor.methods({
requestJoinURL, requestJoinURL,
@ -11,4 +12,5 @@ Meteor.methods({
endAllBreakouts, endAllBreakouts,
setBreakoutsTime, setBreakoutsTime,
sendMessageToAllBreakouts, sendMessageToAllBreakouts,
moveUser,
}); });

View File

@ -0,0 +1,32 @@
import { Meteor } from 'meteor/meteor';
import RedisPubSub from '/imports/startup/server/redis';
import { extractCredentials } from '/imports/api/common/server/helpers';
import { check } from 'meteor/check';
import Logger from '/imports/startup/server/logger';
export default function moveUser(fromBreakoutId, toBreakoutId, userIdToMove) {
const REDIS_CONFIG = Meteor.settings.private.redis;
const CHANNEL = REDIS_CONFIG.channels.toAkkaApps;
const EVENT_NAME = 'ChangeUserBreakoutReqMsg';
try {
const { meetingId, requesterUserId } = extractCredentials(this.userId);
check(meetingId, String);
check(requesterUserId, String);
const userId = userIdToMove || requesterUserId;
return RedisPubSub.publishUserMessage(
CHANNEL, EVENT_NAME, meetingId, requesterUserId,
{
meetingId,
fromBreakoutId,
toBreakoutId,
userId,
},
);
} catch (err) {
Logger.error(`Exception while invoking method moveUser ${err.stack}`);
}
}

View File

@ -167,10 +167,13 @@ export default function addMeeting(meeting) {
const sanitizeTextInChat = original => SanitizeHTML(original, { const sanitizeTextInChat = original => SanitizeHTML(original, {
allowedTags: ['a', 'b', 'br', 'i', 'img', 'li', 'small', 'span', 'strong', 'u', 'ul'], allowedTags: ['a', 'b', 'br', 'i', 'img', 'li', 'small', 'span', 'strong', 'u', 'ul'],
allowedAttributes: { allowedAttributes: {
a: ['href', 'name', 'target'], a: ['href', 'target'],
img: ['src', 'width', 'height'], img: ['src', 'width', 'height'],
}, },
allowedSchemes: ['https'], allowedSchemes: ['https'],
allowedSchemesByTag: {
a: ['https', 'mailto', 'tel']
}
}); });
const sanitizedWelcomeText = sanitizeTextInChat(welcomeMsg); const sanitizedWelcomeText = sanitizeTextInChat(welcomeMsg);
@ -181,14 +184,18 @@ export default function addMeeting(meeting) {
const insertBlankTarget = (s, i) => `${s.substr(0, i)} target="_blank"${s.substr(i)}`; const insertBlankTarget = (s, i) => `${s.substr(0, i)} target="_blank"${s.substr(i)}`;
const linkWithoutTarget = new RegExp('<a href="(.*?)">', 'g'); const linkWithoutTarget = new RegExp('<a href="(.*?)">', 'g');
linkWithoutTarget.test(welcomeMsg);
if (linkWithoutTarget.lastIndex > 0) { do {
welcomeMsg = insertBlankTarget( linkWithoutTarget.test(welcomeMsg);
welcomeMsg,
linkWithoutTarget.lastIndex - 1, if (linkWithoutTarget.lastIndex > 0) {
); welcomeMsg = insertBlankTarget(
} welcomeMsg,
linkWithoutTarget.lastIndex - 1,
);
linkWithoutTarget.lastIndex = linkWithoutTarget.lastIndex - 1;
}
} while (linkWithoutTarget.lastIndex > 0);
newMeeting.welcomeProp.welcomeMsg = welcomeMsg; newMeeting.welcomeProp.welcomeMsg = welcomeMsg;

View File

@ -160,7 +160,7 @@ Meteor.publish('meeting-time-remaining', timeRemainingPublish);
function notifications() { function notifications() {
const tokenValidation = AuthTokenValidation.findOne({ connectionId: this.connection.id }); const tokenValidation = AuthTokenValidation.findOne({ connectionId: this.connection.id });
if (tokenValidation || tokenValidation.validationStatus === ValidationStates.VALIDATED) { if (tokenValidation && tokenValidation.validationStatus === ValidationStates.VALIDATED) {
notificationEmitter.on('notification', (notification) => { notificationEmitter.on('notification', (notification) => {
const { meetingId, userId } = tokenValidation; const { meetingId, userId } = tokenValidation;
switch (notification.type) { switch (notification.type) {

View File

@ -257,6 +257,11 @@ class Base extends Component {
} }
if (ejected) { if (ejected) {
if (meetingIsBreakout) {
window.close();
return null;
}
return (<MeetingEnded code="403" ejectedReason={ejectedReason} />); return (<MeetingEnded code="403" ejectedReason={ejectedReason} />);
} }

View File

@ -9,6 +9,7 @@ import Modal from '/imports/ui/components/common/modal/fullscreen/component';
import { withModalMounter } from '/imports/ui/components/common/modal/service'; import { withModalMounter } from '/imports/ui/components/common/modal/service';
import SortList from './sort-user-list/component'; import SortList from './sort-user-list/component';
import Styled from './styles'; import Styled from './styles';
import Icon from '/imports/ui/components/common/icon/component.jsx';
const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator; const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator;
@ -21,6 +22,26 @@ const intlMessages = defineMessages({
id: 'app.createBreakoutRoom.modalDesc', id: 'app.createBreakoutRoom.modalDesc',
description: 'modal description', description: 'modal description',
}, },
breakoutRoomUpdateDesc: {
id: 'app.updateBreakoutRoom.modalDesc',
description: 'update modal description',
},
cancelLabel: {
id: 'app.updateBreakoutRoom.cancelLabel',
description: 'used in the button that close update modal',
},
updateTitle: {
id: 'app.updateBreakoutRoom.title',
description: 'update breakout title',
},
updateConfirm: {
id: 'app.updateBreakoutRoom.confirm',
description: 'Update to breakout confirm button label',
},
resetUserRoom: {
id: 'app.update.resetRoom',
description: 'Reset user room button label',
},
confirmButton: { confirmButton: {
id: 'app.createBreakoutRoom.confirm', id: 'app.createBreakoutRoom.confirm',
description: 'confirm button label', description: 'confirm button label',
@ -153,7 +174,7 @@ const propTypes = {
meetingName: PropTypes.string.isRequired, meetingName: PropTypes.string.isRequired,
users: PropTypes.arrayOf(PropTypes.object).isRequired, users: PropTypes.arrayOf(PropTypes.object).isRequired,
createBreakoutRoom: PropTypes.func.isRequired, createBreakoutRoom: PropTypes.func.isRequired,
getUsersNotAssigned: PropTypes.func.isRequired, getUsersNotJoined: PropTypes.func.isRequired,
getBreakouts: PropTypes.func.isRequired, getBreakouts: PropTypes.func.isRequired,
sendInvitation: PropTypes.func.isRequired, sendInvitation: PropTypes.func.isRequired,
mountModal: PropTypes.func.isRequired, mountModal: PropTypes.func.isRequired,
@ -192,10 +213,11 @@ class BreakoutRoom extends PureComponent {
this.removeRoomUsers = this.removeRoomUsers.bind(this); this.removeRoomUsers = this.removeRoomUsers.bind(this);
this.renderErrorMessages = this.renderErrorMessages.bind(this); this.renderErrorMessages = this.renderErrorMessages.bind(this);
this.renderJoinedUsers = this.renderJoinedUsers.bind(this); this.renderJoinedUsers = this.renderJoinedUsers.bind(this);
this.onUpdateBreakouts = this.onUpdateBreakouts.bind(this);
this.state = { this.state = {
numberOfRooms: MIN_BREAKOUT_ROOMS, numberOfRooms: MIN_BREAKOUT_ROOMS,
seletedId: '', selectedId: '',
users: [], users: [],
durationTime: 15, durationTime: 15,
freeJoin: false, freeJoin: false,
@ -220,7 +242,7 @@ class BreakoutRoom extends PureComponent {
componentDidMount() { componentDidMount() {
const { const {
isInvitation, breakoutJoinedUsers, getLastBreakouts, groups, isInvitation, breakoutJoinedUsers, getLastBreakouts, groups, isUpdate,
} = this.props; } = this.props;
this.setRoomUsers(); this.setRoomUsers();
if (isInvitation) { if (isInvitation) {
@ -231,6 +253,30 @@ class BreakoutRoom extends PureComponent {
}); });
} }
if (isUpdate) {
const usersToMerge = []
breakoutJoinedUsers.forEach((breakout) => {
breakout.joinedUsers.forEach((user) => {
usersToMerge.push({
userId: user.userId,
userName: user.name,
from: breakout.sequence,
room: breakout.sequence,
isModerator: user.role === ROLE_MODERATOR,
joined: true,
});
});
});
this.setState((prevState) => {
return {
users: [
...prevState.users,
...usersToMerge,
],
};
});
}
const lastBreakouts = getLastBreakouts(); const lastBreakouts = getLastBreakouts();
if (lastBreakouts.length > 0) { if (lastBreakouts.length > 0) {
this.populateWithLastBreakouts(lastBreakouts); this.populateWithLastBreakouts(lastBreakouts);
@ -424,6 +470,52 @@ class BreakoutRoom extends PureComponent {
this.handleDismiss(); this.handleDismiss();
} }
getBreakoutBySequence(sequence) {
const { getBreakouts } = this.props;
const breakouts = getBreakouts();
return breakouts.find((breakout) => breakout.sequence === sequence);
}
changeUserBreakout(fromBreakoutId, toBreakoutId, userId) {
const { moveUser } = this.props;
moveUser(fromBreakoutId, toBreakoutId, userId);
}
onUpdateBreakouts() {
const { users } = this.state;
const leastOneUserIsValid = users.some((user) => user.from !== user.room);
if (!leastOneUserIsValid) {
this.setState({ leastOneUserIsValid });
}
users.forEach((user) => {
const { from, room } = user;
let { userId } = user;
if (from === room) return;
let toBreakoutId = '';
if (room !== 0) {
const toBreakout = this.getBreakoutBySequence(room);
toBreakoutId = toBreakout.breakoutId;
}
let fromBreakoutId = '';
if (from !== 0) {
[userId] = userId.split('-');
const fromBreakout = this.getBreakoutBySequence(from);
fromBreakoutId = fromBreakout.breakoutId;
}
this.changeUserBreakout(fromBreakoutId, toBreakoutId, userId);
});
this.handleDismiss();
}
onAssignRandomly() { onAssignRandomly() {
const { numberOfRooms } = this.state; const { numberOfRooms } = this.state;
const { users } = this.state; const { users } = this.state;
@ -463,16 +555,17 @@ class BreakoutRoom extends PureComponent {
} }
setRoomUsers() { setRoomUsers() {
const { users, getUsersNotAssigned } = this.props; const { users, getUsersNotJoined } = this.props;
const { users: stateUsers } = this.state; const { users: stateUsers } = this.state;
const stateUsersId = stateUsers.map((user) => user.userId); const stateUsersId = stateUsers.map((user) => user.userId);
const roomUsers = getUsersNotAssigned(users) const roomUsers = getUsersNotJoined(users)
.filter((user) => !stateUsersId.includes(user.userId)) .filter((user) => !stateUsersId.includes(user.userId))
.map((user) => ({ .map((user) => ({
userId: user.userId, userId: user.userId,
extId: user.extId, extId: user.extId,
userName: user.name, userName: user.name,
isModerator: user.role === ROLE_MODERATOR, isModerator: user.role === ROLE_MODERATOR,
from: 0,
room: 0, room: 0,
})); }));
@ -533,7 +626,7 @@ class BreakoutRoom extends PureComponent {
const usersCopy = [...users]; const usersCopy = [...users];
usersCopy[idxUser].room = room; if (idxUser >= 0) usersCopy[idxUser].room = room;
this.setState({ this.setState({
users: usersCopy, users: usersCopy,
@ -693,7 +786,7 @@ class BreakoutRoom extends PureComponent {
ev.preventDefault(); ev.preventDefault();
const data = ev.dataTransfer.getData('text'); const data = ev.dataTransfer.getData('text');
this.changeUserRoom(data, room); this.changeUserRoom(data, room);
this.setState({ seletedId: '' }); this.setState({ selectedId: '' });
}; };
const changeRoomName = (position) => (ev) => { const changeRoomName = (position) => (ev) => {
@ -769,6 +862,7 @@ class BreakoutRoom extends PureComponent {
const { const {
intl, intl,
isInvitation, isInvitation,
isUpdate,
} = this.props; } = this.props;
const { const {
numberOfRooms, numberOfRooms,
@ -776,7 +870,7 @@ class BreakoutRoom extends PureComponent {
numberOfRoomsIsValid, numberOfRoomsIsValid,
durationIsValid, durationIsValid,
} = this.state; } = this.state;
if (isInvitation) return null; if (isInvitation || isUpdate) return null;
return ( return (
<React.Fragment key="breakout-form"> <React.Fragment key="breakout-form">
@ -907,8 +1001,8 @@ class BreakoutRoom extends PureComponent {
} }
renderCheckboxes() { renderCheckboxes() {
const { intl, isInvitation, isBreakoutRecordable } = this.props; const { intl, isInvitation, isUpdate, isBreakoutRecordable } = this.props;
if (isInvitation) return null; if (isInvitation || isUpdate) return null;
const { const {
freeJoin, freeJoin,
record, record,
@ -948,14 +1042,14 @@ class BreakoutRoom extends PureComponent {
renderUserItemByRoom(room) { renderUserItemByRoom(room) {
const { const {
leastOneUserIsValid, leastOneUserIsValid,
seletedId, selectedId,
} = this.state; } = this.state;
const { intl, isMe } = this.props; const { intl, isMe } = this.props;
const dragStart = (ev) => { const dragStart = (ev) => {
ev.dataTransfer.setData('text', ev.target.id); ev.dataTransfer.setData('text', ev.target.id);
this.setState({ seletedId: ev.target.id }); this.setState({ selectedId: ev.target.id });
if (!leastOneUserIsValid) { if (!leastOneUserIsValid) {
this.setState({ leastOneUserIsValid: true }); this.setState({ leastOneUserIsValid: true });
@ -963,7 +1057,7 @@ class BreakoutRoom extends PureComponent {
}; };
const dragEnd = () => { const dragEnd = () => {
this.setState({ seletedId: '' }); this.setState({ selectedId: '' });
}; };
return this.getUserByRoom(room) return this.getUserByRoom(room)
@ -972,14 +1066,27 @@ class BreakoutRoom extends PureComponent {
tabIndex={-1} tabIndex={-1}
id={`roomUserItem-${user.userId}`} id={`roomUserItem-${user.userId}`}
key={user.userId} key={user.userId}
selected={seletedId === user.userId} selected={selectedId.replace('roomUserItem-', '') === user.userId.replace('roomUserItem-', '')}
disabled={false} disabled={false}
highlight={room !== user.from}
draggable draggable
onDragStart={dragStart} onDragStart={dragStart}
onDragEnd={dragEnd} onDragEnd={dragEnd}
> >
{user.userName} <span>
<i>{(isMe(user.userId)) ? ` (${intl.formatMessage(intlMessages.you)})` : ''}</i> <span>{user.userName}</span>
<i>{(isMe(user.userId)) ? ` (${intl.formatMessage(intlMessages.you)})` : ''}</i>
</span>
{ room !== user.from ? (
<span
className="close"
role="button"
aria-label={intl.formatMessage(intlMessages.resetUserRoom)}
onClick={() => this.changeUserRoom(user.userId, user.from)}
>
<Icon iconName="close" />
</span>
) : null }
</Styled.RoomUserItem> </Styled.RoomUserItem>
)); ));
} }
@ -1114,16 +1221,18 @@ class BreakoutRoom extends PureComponent {
} }
renderTitle() { renderTitle() {
const { intl } = this.props; const { intl, isUpdate } = this.props;
return ( return (
<Styled.SubTitle> <Styled.SubTitle>
{intl.formatMessage(intlMessages.breakoutRoomDesc)} { isUpdate
? intl.formatMessage(intlMessages.breakoutRoomUpdateDesc)
: intl.formatMessage(intlMessages.breakoutRoomDesc) }
</Styled.SubTitle> </Styled.SubTitle>
); );
} }
render() { render() {
const { intl, isInvitation } = this.props; const { intl, isInvitation, isUpdate } = this.props;
const { const {
preventClosing, preventClosing,
leastOneUserIsValid, leastOneUserIsValid,
@ -1140,14 +1249,18 @@ class BreakoutRoom extends PureComponent {
title={ title={
isInvitation isInvitation
? intl.formatMessage(intlMessages.invitationTitle) ? intl.formatMessage(intlMessages.invitationTitle)
: isUpdate
? intl.formatMessage(intlMessages.updateTitle)
: intl.formatMessage(intlMessages.breakoutRoomTitle) : intl.formatMessage(intlMessages.breakoutRoomTitle)
} }
confirm={ confirm={
{ {
label: isInvitation label: isInvitation
? intl.formatMessage(intlMessages.invitationConfirm) ? intl.formatMessage(intlMessages.invitationConfirm)
: isUpdate
? intl.formatMessage(intlMessages.updateConfirm)
: intl.formatMessage(intlMessages.confirmButton), : intl.formatMessage(intlMessages.confirmButton),
callback: isInvitation ? this.onInviteBreakout : this.onCreateBreakouts, callback: isInvitation ? this.onInviteBreakout : isUpdate ? this.onUpdateBreakouts : this.onCreateBreakouts,
disabled: !leastOneUserIsValid disabled: !leastOneUserIsValid
|| !numberOfRoomsIsValid || !numberOfRoomsIsValid
|| !roomNameDuplicatedIsValid || !roomNameDuplicatedIsValid
@ -1158,7 +1271,9 @@ class BreakoutRoom extends PureComponent {
} }
dismiss={{ dismiss={{
callback: this.handleDismiss, callback: this.handleDismiss,
label: intl.formatMessage(intlMessages.dismissLabel), label: isUpdate
? intl.formatMessage(intlMessages.cancelLabel)
: intl.formatMessage(intlMessages.dismissLabel),
}} }}
preventClosing={preventClosing} preventClosing={preventClosing}
> >

View File

@ -20,7 +20,7 @@ export default withTracker(() => ({
getBreakouts: ActionsBarService.getBreakouts, getBreakouts: ActionsBarService.getBreakouts,
getLastBreakouts: ActionsBarService.getLastBreakouts, getLastBreakouts: ActionsBarService.getLastBreakouts,
getBreakoutUserWasIn: BreakoutRoomService.getBreakoutUserWasIn, getBreakoutUserWasIn: BreakoutRoomService.getBreakoutUserWasIn,
getUsersNotAssigned: ActionsBarService.getUsersNotAssigned, getUsersNotJoined: ActionsBarService.getUsersNotJoined,
sendInvitation: ActionsBarService.sendInvitation, sendInvitation: ActionsBarService.sendInvitation,
breakoutJoinedUsers: ActionsBarService.breakoutJoinedUsers(), breakoutJoinedUsers: ActionsBarService.breakoutJoinedUsers(),
users: ActionsBarService.users(), users: ActionsBarService.users(),
@ -28,4 +28,5 @@ export default withTracker(() => ({
isMe: ActionsBarService.isMe, isMe: ActionsBarService.isMe,
meetingName: ActionsBarService.meetingName(), meetingName: ActionsBarService.meetingName(),
amIModerator: ActionsBarService.amIModerator(), amIModerator: ActionsBarService.amIModerator(),
moveUser: ActionsBarService.moveUser,
}))(CreateBreakoutRoomContainer); }))(CreateBreakoutRoomContainer);

View File

@ -12,12 +12,15 @@ import {
colorWhite, colorWhite,
colorPrimary, colorPrimary,
colorBlueLight, colorBlueLight,
colorBlueLightest,
colorGrayLightest,
} from '/imports/ui/stylesheets/styled-components/palette'; } from '/imports/ui/stylesheets/styled-components/palette';
import { fontSizeSmall, fontSizeBase } from '/imports/ui/stylesheets/styled-components/typography'; import { fontSizeSmall, fontSizeBase, fontSizeSmaller } from '/imports/ui/stylesheets/styled-components/typography';
import { import {
borderRadius, borderRadius,
borderSize, borderSize,
lgPaddingX, lgPaddingX,
lgPaddingY,
} from '/imports/ui/stylesheets/styled-components/general'; } from '/imports/ui/stylesheets/styled-components/general';
const BoxContainer = styled.div` const BoxContainer = styled.div`
@ -66,9 +69,10 @@ const FreeJoinLabel = styled.label`
const BreakoutNameInput = styled.input` const BreakoutNameInput = styled.input`
width: 100%; width: 100%;
text-align: left; text-align: left;
font-weight: normal; font-weight: 600;
padding: .25rem; padding: .25rem .25rem .25rem 0;
margin: 0; margin: 0;
border: none;
&::placeholder { &::placeholder {
color: ${colorGray}; color: ${colorGray};
opacity: 1; opacity: 1;
@ -79,8 +83,9 @@ const BreakoutBox = styled(ScrollboxVertical)`
width: 100%; width: 100%;
min-height: 6rem; min-height: 6rem;
max-height: 8rem; max-height: 8rem;
border: 1px solid ${colorGrayLighter}; border: 1px solid ${colorGrayLightest};
border-radius: ${borderRadius}; border-radius: ${borderRadius};
padding: ${lgPaddingY} 0;
`; `;
const SpanWarn = styled.span` const SpanWarn = styled.span`
@ -228,12 +233,21 @@ const RoomUserItem = styled.p`
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
cursor: pointer; cursor: pointer;
border-bottom: solid .5px ${colorGrayLighter}; display: flex;
justify-content: space-between;
[dir="rtl"] & { [dir="rtl"] & {
padding: .25rem .25rem .25rem 0; padding: .25rem .25rem .25rem 0;
} }
span.close {
display: flex;
flex-direction: column;
justify-content: center;
margin-right: 5px;
font-size: ${fontSizeSmaller};
}
${({ selected }) => selected && ` ${({ selected }) => selected && `
background-color: ${colorPrimary}; background-color: ${colorPrimary};
color: ${colorWhite}; color: ${colorWhite};
@ -243,6 +257,10 @@ const RoomUserItem = styled.p`
cursor: not-allowed; cursor: not-allowed;
color: ${colorGrayLighter}; color: ${colorGrayLighter};
`} `}
${({ highlight }) => highlight && `
background-color: ${colorBlueLightest};
`}
`; `;
const LockIcon = styled.span` const LockIcon = styled.span`

View File

@ -30,7 +30,7 @@ const currentBreakoutUsers = (user) => !Breakouts.findOne({
const filterBreakoutUsers = (filter) => (users) => users.filter(filter); const filterBreakoutUsers = (filter) => (users) => users.filter(filter);
const getUsersNotAssigned = filterBreakoutUsers(currentBreakoutUsers); const getUsersNotJoined = filterBreakoutUsers(currentBreakoutUsers);
const takePresenterRole = () => makeCall('assignPresenter', Auth.userID); const takePresenterRole = () => makeCall('assignPresenter', Auth.userID);
@ -68,9 +68,10 @@ export default {
breakoutJoinedUsers: () => Breakouts.find({ breakoutJoinedUsers: () => Breakouts.find({
joinedUsers: { $exists: true }, joinedUsers: { $exists: true },
}, { fields: { joinedUsers: 1, breakoutId: 1, sequence: 1 }, sort: { sequence: 1 } }).fetch(), }, { fields: { joinedUsers: 1, breakoutId: 1, sequence: 1 }, sort: { sequence: 1 } }).fetch(),
moveUser: (fromBreakoutId, toBreakoutId, userId) => makeCall('moveUser', fromBreakoutId, toBreakoutId, userId),
getBreakouts, getBreakouts,
getLastBreakouts, getLastBreakouts,
getUsersNotAssigned, getUsersNotJoined,
takePresenterRole, takePresenterRole,
isSharingVideo: () => getVideoUrl(), isSharingVideo: () => getVideoUrl(),
}; };

View File

@ -171,6 +171,8 @@ class App extends Component {
layoutRate, layoutRate,
horizontalPosition, horizontalPosition,
isRTL, isRTL,
shouldShowScreenshare,
shouldShowExternalVideo,
} = this.props; } = this.props;
const { browserName } = browserInfo; const { browserName } = browserInfo;
const { osName } = deviceInfo; const { osName } = deviceInfo;
@ -205,7 +207,7 @@ class App extends Component {
} }
Settings.save(); Settings.save();
const initialPresentation = !getFromUserSettings('bbb_hide_presentation', HIDE_PRESENTATION || !layoutPresOpen); const initialPresentation = !getFromUserSettings('bbb_hide_presentation', HIDE_PRESENTATION || !layoutPresOpen) || shouldShowScreenshare || shouldShowExternalVideo;
MediaService.setPresentationIsOpen(layoutContextDispatch, initialPresentation); MediaService.setPresentationIsOpen(layoutContextDispatch, initialPresentation);
if (selectedLayout === 'custom') { if (selectedLayout === 'custom') {

View File

@ -8,6 +8,7 @@ import AudioService from '../audio/service';
import VideoService from '../video-provider/service'; import VideoService from '../video-provider/service';
import { screenshareHasEnded } from '/imports/ui/components/screenshare/service'; import { screenshareHasEnded } from '/imports/ui/components/screenshare/service';
import Styled from './styles'; import Styled from './styles';
import { Session } from 'meteor/session';
const intlMessages = defineMessages({ const intlMessages = defineMessages({
title: { title: {
@ -129,6 +130,8 @@ class BreakoutJoinConfirmation extends Component {
extraInfo: { breakoutURL, isFreeJoin }, extraInfo: { breakoutURL, isFreeJoin },
}, 'joining breakout room but redirected to about://blank'); }, 'joining breakout room but redirected to about://blank');
} }
Session.set('lastBreakoutIdOpened', selectValue);
window.open(url); window.open(url);
mountModal(null); mountModal(null);
} }

View File

@ -1,7 +1,9 @@
import React, { PureComponent } from 'react'; import React, { PureComponent } from 'react';
import { defineMessages, injectIntl } from 'react-intl'; import { defineMessages, injectIntl } from 'react-intl';
import { withModalMounter } from '/imports/ui/components/common/modal/service';
import BBBMenu from "/imports/ui/components/common/menu/component"; import BBBMenu from "/imports/ui/components/common/menu/component";
import Button from '/imports/ui/components/common/button/component'; import Button from '/imports/ui/components/common/button/component';
import CreateBreakoutRoomModal from '/imports/ui/components/actions-bar/create-breakout-room/container';
const intlMessages = defineMessages({ const intlMessages = defineMessages({
options: { options: {
@ -12,6 +14,11 @@ const intlMessages = defineMessages({
id: 'app.breakout.dropdown.manageDuration', id: 'app.breakout.dropdown.manageDuration',
description: 'Manage duration label', description: 'Manage duration label',
}, },
manageUsers: {
id: 'app.breakout.dropdown.manageUsers',
description: 'Manage users label',
defaultMessage: 'Manage Users',
},
destroy: { destroy: {
id: 'app.breakout.dropdown.destroyAll', id: 'app.breakout.dropdown.destroyAll',
description: 'Destroy breakouts label', description: 'Destroy breakouts label',
@ -30,6 +37,7 @@ class BreakoutDropdown extends PureComponent {
endAllBreakouts, endAllBreakouts,
isMeteorConnected, isMeteorConnected,
amIModerator, amIModerator,
mountModal,
} = this.props; } = this.props;
this.menuItems = []; this.menuItems = [];
@ -45,6 +53,19 @@ class BreakoutDropdown extends PureComponent {
} }
); );
this.menuItems.push(
{
key: 'updateBreakoutUsers',
dataTest: 'openUpdateBreakoutUsersModal',
label: intl.formatMessage(intlMessages.manageUsers),
onClick: () => {
mountModal(
<CreateBreakoutRoomModal isUpdate />
);
}
}
);
if (amIModerator) { if (amIModerator) {
this.menuItems.push( this.menuItems.push(
{ {
@ -101,4 +122,4 @@ class BreakoutDropdown extends PureComponent {
} }
} }
export default injectIntl(BreakoutDropdown); export default withModalMounter(injectIntl(BreakoutDropdown));

View File

@ -155,6 +155,8 @@ class BreakoutRoom extends PureComponent {
if (breakoutUrlData.redirectToHtml5JoinURL !== '' if (breakoutUrlData.redirectToHtml5JoinURL !== ''
&& breakoutUrlData.redirectToHtml5JoinURL !== prevBreakoutData.redirectToHtml5JoinURL) { && breakoutUrlData.redirectToHtml5JoinURL !== prevBreakoutData.redirectToHtml5JoinURL) {
prevBreakoutData = breakoutUrlData; prevBreakoutData = breakoutUrlData;
Session.set('lastBreakoutIdOpened', requestedBreakoutId);
window.open(breakoutUrlData.redirectToHtml5JoinURL, '_blank'); window.open(breakoutUrlData.redirectToHtml5JoinURL, '_blank');
_.delay(() => this.setState({ generated: true, waiting: false }), 1000); _.delay(() => this.setState({ generated: true, waiting: false }), 1000);
} }
@ -171,7 +173,6 @@ class BreakoutRoom extends PureComponent {
} }
getBreakoutURL(breakoutId) { getBreakoutURL(breakoutId) {
Session.set('lastBreakoutOpened', breakoutId);
const { requestJoinURL, getBreakoutRoomUrl } = this.props; const { requestJoinURL, getBreakoutRoomUrl } = this.props;
const { waiting } = this.state; const { waiting } = this.state;
const breakoutRoomUrlData = getBreakoutRoomUrl(breakoutId); const breakoutRoomUrlData = getBreakoutRoomUrl(breakoutId);
@ -187,6 +188,8 @@ class BreakoutRoom extends PureComponent {
} }
if (breakoutRoomUrlData) { if (breakoutRoomUrlData) {
Session.set('lastBreakoutIdOpened', breakoutId);
window.open(breakoutRoomUrlData.redirectToHtml5JoinURL, '_blank'); window.open(breakoutRoomUrlData.redirectToHtml5JoinURL, '_blank');
this.setState({ waiting: false, generated: false }); this.setState({ waiting: false, generated: false });
} }

View File

@ -9,10 +9,10 @@ const BREAKOUT_MODAL_DELAY = 200;
const propTypes = { const propTypes = {
mountModal: PropTypes.func.isRequired, mountModal: PropTypes.func.isRequired,
currentBreakoutUrlData: PropTypes.shape({ lastBreakoutReceived: PropTypes.shape({
insertedTime: PropTypes.number.isRequired, breakoutUrlData: PropTypes.func.isRequired,
}), }),
breakoutUserIsIn: PropTypes.shape({ breakoutRoomsUserIsIn: PropTypes.shape({
sequence: PropTypes.number.isRequired, sequence: PropTypes.number.isRequired,
}), }),
breakouts: PropTypes.arrayOf(PropTypes.shape({ breakouts: PropTypes.arrayOf(PropTypes.shape({
@ -21,8 +21,8 @@ const propTypes = {
}; };
const defaultProps = { const defaultProps = {
currentBreakoutUrlData: undefined, lastBreakoutReceived: undefined,
breakoutUserIsIn: undefined, breakoutRoomsUserIsIn: undefined,
breakouts: [], breakouts: [],
}; };
@ -54,30 +54,34 @@ class BreakoutRoomInvitation extends Component {
checkBreakouts(oldProps) { checkBreakouts(oldProps) {
const { const {
breakouts, breakouts,
currentBreakoutUrlData, lastBreakoutReceived,
getBreakoutByUrlData, breakoutRoomsUserIsIn,
breakoutUserIsIn,
} = this.props; } = this.props;
const { const {
didSendBreakoutInvite, didSendBreakoutInvite,
} = this.state; } = this.state;
const hasBreakouts = breakouts.length > 0; const hasBreakoutsAvailable = breakouts.length > 0;
if (hasBreakouts && !breakoutUserIsIn && BreakoutService.checkInviteModerators()) { if (hasBreakoutsAvailable
&& !breakoutRoomsUserIsIn
&& BreakoutService.checkInviteModerators()) {
const freeJoinRooms = breakouts.filter((breakout) => breakout.freeJoin); const freeJoinRooms = breakouts.filter((breakout) => breakout.freeJoin);
if (currentBreakoutUrlData) { if (lastBreakoutReceived) {
const breakoutRoom = getBreakoutByUrlData(currentBreakoutUrlData); const lastBreakoutIdOpened = Session.get('lastBreakoutIdOpened');
const currentInsertedTime = currentBreakoutUrlData.insertedTime; const oldLastBktReceivedInsertedTime = (typeof oldProps.lastBreakoutReceived === 'object') ? oldProps.lastBreakoutReceived.breakoutUrlData.insertedTime : 0;
const oldCurrentUrlData = oldProps.currentBreakoutUrlData || {};
const oldInsertedTime = oldCurrentUrlData.insertedTime; // check if user has a new invitation
if (currentInsertedTime !== oldInsertedTime) { if (lastBreakoutReceived.breakoutUrlData.insertedTime !== oldLastBktReceivedInsertedTime
const lastBreakoutId = Session.get('lastBreakoutOpened'); // or check if user just left a room and was invited to another room in last 15 secs
if (breakoutRoom.breakoutId !== lastBreakoutId) { || (typeof oldProps.breakoutRoomsUserIsIn === 'object'
this.inviteUserToBreakout(breakoutRoom); && !breakoutRoomsUserIsIn
} && lastBreakoutReceived.breakoutId !== lastBreakoutIdOpened
&& lastBreakoutReceived.breakoutUrlData.insertedTime > (new Date().getTime()) - 15000)
) {
this.inviteUserToBreakout(lastBreakoutReceived);
} }
} else if (freeJoinRooms.length > 0 && !didSendBreakoutInvite) { } else if (freeJoinRooms.length > 0 && !didSendBreakoutInvite) {
const maxSeq = Math.max(...freeJoinRooms.map(((room) => room.sequence))); const maxSeq = Math.max(...freeJoinRooms.map(((room) => room.sequence)));
@ -90,12 +94,13 @@ class BreakoutRoomInvitation extends Component {
} }
} }
if (!hasBreakouts && didSendBreakoutInvite) { if (!hasBreakoutsAvailable && didSendBreakoutInvite) {
this.setState({ didSendBreakoutInvite: false }); this.setState({ didSendBreakoutInvite: false });
} }
} }
inviteUserToBreakout(breakout) { inviteUserToBreakout(breakout) {
Session.set('lastBreakoutIdInvited', breakout.breakoutId);
const { const {
mountModal, mountModal,
} = this.props; } = this.props;

View File

@ -15,7 +15,6 @@ const BreakoutRoomInvitationContainer = ({ isMeetingBreakout, ...props }) => {
export default withTracker(() => ({ export default withTracker(() => ({
isMeetingBreakout: AppService.meetingIsBreakout(), isMeetingBreakout: AppService.meetingIsBreakout(),
breakouts: BreakoutService.getBreakoutsNoTime(), breakouts: BreakoutService.getBreakoutsNoTime(),
getBreakoutByUrlData: BreakoutService.getBreakoutByUrlData, lastBreakoutReceived: BreakoutService.getLastBreakoutByUserId(Auth.userID),
currentBreakoutUrlData: BreakoutService.getBreakoutUrlByUserId(Auth.userID), breakoutRoomsUserIsIn: BreakoutService.getBreakoutUserIsIn(Auth.userID),
breakoutUserIsIn: BreakoutService.getBreakoutUserIsIn(Auth.userID),
}))(BreakoutRoomInvitationContainer); }))(BreakoutRoomInvitationContainer);

View File

@ -122,26 +122,27 @@ const checkInviteModerators = () => {
const getBreakoutByUserId = (userId) => const getBreakoutByUserId = (userId) =>
Breakouts.find( Breakouts.find(
{ [`url_${userId}`]: { $exists: true } }, { [`url_${userId}`]: { $exists: true } },
{ fields: { timeRemaining: 0 } } { fields: { timeRemaining: 0 } },
).fetch(); ).fetch();
const getBreakoutByUrlData = (breakoutUrlData) => const getWithBreakoutUrlData = (userId) => (breakoutsArray) => breakoutsArray
Breakouts.findOne({ [`url_${Auth.userID}`]: breakoutUrlData }); .map((breakout) => {
if (typeof breakout[`url_${userId}`] === 'object') {
return Object.assign(breakout, { breakoutUrlData: breakout[`url_${userId}`] });
}
return Object.assign(breakout, { breakoutUrlData: { insertedTime: 0 } });
})
.reduce((acc, urlDataArray) => acc.concat(urlDataArray), []);
const getUrlFromBreakouts = (userId) => (breakoutsArray) => const getLastBreakoutInserted = (breakoutURLArray) => breakoutURLArray.sort((a, b) => {
breakoutsArray return a.breakoutUrlData.insertedTime - b.breakoutUrlData.insertedTime;
.map((breakout) => breakout[`url_${userId}`]) }).pop();
.reduce((acc, urlDataArray) => acc.concat(urlDataArray), []);
const getLastURLInserted = (breakoutURLArray) => const getLastBreakoutByUserId = (userId) => fp.pipe(
breakoutURLArray.sort((a, b) => a.insertedTime - b.insertedTime).pop(); getBreakoutByUserId,
getWithBreakoutUrlData(userId),
const getBreakoutUrlByUserId = (userId) => getLastBreakoutInserted,
fp.pipe( )(userId);
getBreakoutByUserId,
getUrlFromBreakouts(userId),
getLastURLInserted
)(userId);
const getBreakouts = () => const getBreakouts = () =>
Breakouts.find({}, { sort: { sequence: 1 } }).fetch(); Breakouts.find({}, { sort: { sequence: 1 } }).fetch();
@ -205,8 +206,7 @@ export default {
transferToBreakout, transferToBreakout,
meetingId: () => Auth.meetingID, meetingId: () => Auth.meetingID,
amIModerator, amIModerator,
getBreakoutUrlByUserId, getLastBreakoutByUserId,
getBreakoutByUrlData,
getBreakouts, getBreakouts,
getBreakoutsNoTime, getBreakoutsNoTime,
getBreakoutUserIsIn, getBreakoutUserIsIn,

View File

@ -101,6 +101,7 @@ const Meta = styled.div`
flex: 1; flex: 1;
flex-flow: row; flex-flow: row;
line-height: 1.35; line-height: 1.35;
align-items: baseline;
`; `;
const Name = styled.div` const Name = styled.div`

View File

@ -2,16 +2,17 @@ import styled from 'styled-components';
import Styled from '../base/styles'; import Styled from '../base/styles';
import { smallOnly } from '/imports/ui/stylesheets/styled-components/breakpoints'; import { smallOnly } from '/imports/ui/stylesheets/styled-components/breakpoints';
import Button from '/imports/ui/components/common/button/component'; import Button from '/imports/ui/components/common/button/component';
import { borderSize, smPaddingX } from '/imports/ui/stylesheets/styled-components/general'; import { borderSize, smPaddingX, borderRadius } from '/imports/ui/stylesheets/styled-components/general';
import { import {
lineHeightComputed, lineHeightComputed,
modalTitleFw, modalTitleFw,
} from '/imports/ui/stylesheets/styled-components/typography'; } from '/imports/ui/stylesheets/styled-components/typography';
import { import {
colorGrayLighter, colorGrayLightest,
colorText, colorText,
colorWhite, colorWhite,
colorLink, colorLink,
colorBlueLight,
} from '/imports/ui/stylesheets/styled-components/palette'; } from '/imports/ui/stylesheets/styled-components/palette';
const FullscreenModal = styled(Styled.BaseModal)` const FullscreenModal = styled(Styled.BaseModal)`
@ -32,7 +33,7 @@ const FullscreenModal = styled(Styled.BaseModal)`
const Header = styled.header` const Header = styled.header`
display: flex; display: flex;
padding: ${lineHeightComputed} 0; padding: ${lineHeightComputed} 0;
border-bottom: ${borderSize} solid ${colorGrayLighter}; border-bottom: ${borderSize} solid ${colorGrayLightest};
`; `;
const Title = styled.h1` const Title = styled.h1`
@ -61,12 +62,26 @@ const Content = styled.div`
const DismissButton = styled(Button)` const DismissButton = styled(Button)`
flex: 0 1 48%; flex: 0 1 48%;
border: 1px solid ${colorBlueLight};
border-radius: ${borderRadius};
color: ${colorBlueLight};
&:focus,
.buttonWrapper:focus:not([aria-disabled="true"]) & {
color: ${colorBlueLight};
}
&:hover,
.buttonWrapper:hover & {
color: ${colorBlueLight};
}
`; `;
const ConfirmButton = styled(Button)` const ConfirmButton = styled(Button)`
flex: 0 1 48%; flex: 0 1 48%;
color: ${colorWhite} !important; color: ${colorWhite} !important;
background-color: ${colorLink} !important; background-color: ${colorLink} !important;
border-width: 1px;
${({ popout }) => popout === 'popout' && ` ${({ popout }) => popout === 'popout' && `
& > i { & > i {

View File

@ -17,6 +17,7 @@ color: ${colorGray};
bottom: 0; bottom: 0;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
flex-direction: column;
overflow-x: hidden; overflow-x: hidden;
overflow-wrap: break-word; overflow-wrap: break-word;
word-break: break-all; word-break: break-all;

View File

@ -301,14 +301,23 @@ class PresentationUploader extends Component {
} }
}); });
if (!_.isEqual(prevProps.presentations, propPresentations) || presentations.length === 0) { const presState = Object.values({
this.setState({ ...propPresentations,
presentations: Object.values({ ...presentations,
...presentations, });
...propPresentations, const presStateMapped = presState.map((presentation) => {
}), propPresentations.forEach((propPres) => {
}); if (propPres.id == presentation.id){
} presentation.isCurrent = propPres.isCurrent;
}
})
return presentation;
})
this.setState({
presentations: presStateMapped,
})
} }
if (presentations.length > 0) { if (presentations.length > 0) {
@ -857,7 +866,6 @@ class PresentationUploader extends Component {
keyValue={item.id} keyValue={item.id}
onChange={() => this.handleCurrentChange(item.id)} onChange={() => this.handleCurrentChange(item.id)}
disabled={disableActions} disabled={disableActions}
animations={animations}
/> />
</Styled.ItemAction> </Styled.ItemAction>
{isRemovable ? ( {isRemovable ? (

View File

@ -5,6 +5,7 @@ import Poll from '/imports/api/polls/';
import { makeCall } from '/imports/ui/services/api'; import { makeCall } from '/imports/ui/services/api';
import logger from '/imports/startup/client/logger'; import logger from '/imports/startup/client/logger';
import _ from 'lodash'; import _ from 'lodash';
import { Random } from 'meteor/random'
const CONVERSION_TIMEOUT = 300000; const CONVERSION_TIMEOUT = 300000;
const TOKEN_TIMEOUT = 5000; const TOKEN_TIMEOUT = 5000;
@ -155,7 +156,6 @@ const requestPresentationUploadToken = (
}); });
const uploadAndConvertPresentation = ( const uploadAndConvertPresentation = (
tmpPresId,
file, file,
downloadable, downloadable,
podId, podId,
@ -165,9 +165,9 @@ const uploadAndConvertPresentation = (
onProgress, onProgress,
onConversion, onConversion,
) => { ) => {
const tmpPresId = _.uniqueId(Random.id(20))
const data = new FormData(); const data = new FormData();
data.append('presentation_name', file.name);
data.append('Filename', file.name);
data.append('fileUpload', file); data.append('fileUpload', file);
data.append('conference', meetingId); data.append('conference', meetingId);
data.append('room', meetingId); data.append('room', meetingId);
@ -209,7 +209,7 @@ const uploadAndConvertPresentations = (
podId, podId,
uploadEndpoint, uploadEndpoint,
) => Promise.all(presentationsToUpload.map((p) => uploadAndConvertPresentation( ) => Promise.all(presentationsToUpload.map((p) => uploadAndConvertPresentation(
p.id, p.file, p.isDownloadable, podId, meetingId, uploadEndpoint, p.file, p.isDownloadable, podId, meetingId, uploadEndpoint,
p.onUpload, p.onProgress, p.onConversion, p.onUpload, p.onProgress, p.onConversion,
))); )));

View File

@ -98,6 +98,22 @@ const intlMessages = defineMessages({
id: 'app.shortcut-help.previousSlideDesc', id: 'app.shortcut-help.previousSlideDesc',
description: 'describes the previous slide shortcut', description: 'describes the previous slide shortcut',
}, },
togglePanKey: {
id: 'app.shortcut-help.togglePanKey',
description: 'describes the toggle pan shortcut key',
},
toggleFullscreenKey: {
id: 'app.shortcut-help.toggleFullscreenKey',
description: 'describes the toggle full-screen shortcut key',
},
nextSlideKey: {
id: 'app.shortcut-help.nextSlideKey',
description: 'describes the next slide shortcut key',
},
previousSlideKey: {
id: 'app.shortcut-help.previousSlideKey',
description: 'describes the previous slide shortcut key',
},
}); });
const ShortcutHelpComponent = (props) => { const ShortcutHelpComponent = (props) => {
@ -143,28 +159,28 @@ const ShortcutHelpComponent = (props) => {
shortcutItems.push(( shortcutItems.push((
<tr key={_.uniqueId('hotkey-item-')}> <tr key={_.uniqueId('hotkey-item-')}>
<Styled.KeyCell>Spacebar</Styled.KeyCell> <Styled.KeyCell>{intl.formatMessage(intlMessages.togglePanKey)}</Styled.KeyCell>
<Styled.DescCell>{intl.formatMessage(intlMessages.togglePan)}</Styled.DescCell> <Styled.DescCell>{intl.formatMessage(intlMessages.togglePan)}</Styled.DescCell>
</tr> </tr>
)); ));
shortcutItems.push(( shortcutItems.push((
<tr key={_.uniqueId('hotkey-item-')}> <tr key={_.uniqueId('hotkey-item-')}>
<Styled.KeyCell>Enter</Styled.KeyCell> <Styled.KeyCell>{intl.formatMessage(intlMessages.toggleFullscreenKey)}</Styled.KeyCell>
<Styled.DescCell>{intl.formatMessage(intlMessages.toggleFullscreen)}</Styled.DescCell> <Styled.DescCell>{intl.formatMessage(intlMessages.toggleFullscreen)}</Styled.DescCell>
</tr> </tr>
)); ));
shortcutItems.push(( shortcutItems.push((
<tr key={_.uniqueId('hotkey-item-')}> <tr key={_.uniqueId('hotkey-item-')}>
<Styled.KeyCell>Right Arrow</Styled.KeyCell> <Styled.KeyCell>{intl.formatMessage(intlMessages.nextSlideKey)}</Styled.KeyCell>
<Styled.DescCell>{intl.formatMessage(intlMessages.nextSlideDesc)}</Styled.DescCell> <Styled.DescCell>{intl.formatMessage(intlMessages.nextSlideDesc)}</Styled.DescCell>
</tr> </tr>
)); ));
shortcutItems.push(( shortcutItems.push((
<tr key={_.uniqueId('hotkey-item-')}> <tr key={_.uniqueId('hotkey-item-')}>
<Styled.KeyCell>Left Arrow</Styled.KeyCell> <Styled.KeyCell>{intl.formatMessage(intlMessages.previousSlideKey)}</Styled.KeyCell>
<Styled.DescCell>{intl.formatMessage(intlMessages.previousSlideDesc)}</Styled.DescCell> <Styled.DescCell>{intl.formatMessage(intlMessages.previousSlideDesc)}</Styled.DescCell>
</tr> </tr>
)); ));

View File

@ -123,6 +123,10 @@ const SidebarContent = (props) => {
width, width,
height, height,
}} }}
handleStyles={{
left: { height: '100vh' },
right: { height: '100vh' },
}}
> >
{sidebarContentPanel === PANELS.CHAT {sidebarContentPanel === PANELS.CHAT
&& ( && (

View File

@ -211,7 +211,7 @@ class UserOptions extends PureComponent {
toggleMuteAllUsersExceptPresenter, toggleMuteAllUsersExceptPresenter,
meetingIsBreakout, meetingIsBreakout,
hasBreakoutRoom, hasBreakoutRoom,
getUsersNotAssigned, getUsersNotJoined,
openLearningDashboardUrl, openLearningDashboardUrl,
amIModerator, amIModerator,
users, users,
@ -227,7 +227,7 @@ class UserOptions extends PureComponent {
const canInviteUsers = amIModerator const canInviteUsers = amIModerator
&& !meetingIsBreakout && !meetingIsBreakout
&& hasBreakoutRoom && hasBreakoutRoom
&& getUsersNotAssigned(users).length; && getUsersNotJoined(users).length;
const { locale } = intl; const { locale } = intl;

View File

@ -84,7 +84,7 @@ const UserOptionsContainer = withTracker((props) => {
toggleStatus, toggleStatus,
isMeetingMuted: isMeetingMuteOnStart(), isMeetingMuted: isMeetingMuteOnStart(),
amIModerator: ActionsBarService.amIModerator(), amIModerator: ActionsBarService.amIModerator(),
getUsersNotAssigned: ActionsBarService.getUsersNotAssigned, getUsersNotJoined: ActionsBarService.getUsersNotJoined,
hasBreakoutRoom: UserListService.hasBreakoutRoom(), hasBreakoutRoom: UserListService.hasBreakoutRoom(),
isBreakoutRecordable: ActionsBarService.isBreakoutRecordable(), isBreakoutRecordable: ActionsBarService.isBreakoutRecordable(),
guestPolicy: WaitingUsersService.getGuestPolicy(), guestPolicy: WaitingUsersService.getGuestPolicy(),

View File

@ -730,10 +730,15 @@ class VideoService {
this.exitVideo(); this.exitVideo();
} }
getStatus() {
if (this.isConnecting) return 'videoConnecting';
if (this.isConnected) return 'connected';
return 'disconnected';
}
disableReason() { disableReason() {
const locks = { const locks = {
videoLocked: this.isUserLocked(), videoLocked: this.isUserLocked(),
videoConnecting: this.isConnecting,
camCapReached: this.hasCapReached() && !this.hasVideoStream(), camCapReached: this.hasCapReached() && !this.hasVideoStream(),
meteorDisconnected: !Meteor.status().connected meteorDisconnected: !Meteor.status().connected
}; };
@ -992,6 +997,7 @@ export default {
getAuthenticatedURL: () => videoService.getAuthenticatedURL(), getAuthenticatedURL: () => videoService.getAuthenticatedURL(),
isLocalStream: cameraId => videoService.isLocalStream(cameraId), isLocalStream: cameraId => videoService.isLocalStream(cameraId),
hasVideoStream: () => videoService.hasVideoStream(), hasVideoStream: () => videoService.hasVideoStream(),
getStatus: () => videoService.getStatus(),
disableReason: () => videoService.disableReason(), disableReason: () => videoService.disableReason(),
playStart: cameraId => videoService.playStart(cameraId), playStart: cameraId => videoService.playStart(cameraId),
getCameraProfile: () => videoService.getCameraProfile(), getCameraProfile: () => videoService.getCameraProfile(),

View File

@ -50,50 +50,62 @@ const JOIN_VIDEO_DELAY_MILLISECONDS = 500;
const propTypes = { const propTypes = {
intl: PropTypes.object.isRequired, intl: PropTypes.object.isRequired,
hasVideoStream: PropTypes.bool.isRequired, hasVideoStream: PropTypes.bool.isRequired,
status: PropTypes.string.isRequired,
mountVideoPreview: PropTypes.func.isRequired, mountVideoPreview: PropTypes.func.isRequired,
forceMountVideoPreview: PropTypes.func.isRequired,
}; };
const JoinVideoButton = ({ const JoinVideoButton = ({
intl, intl,
hasVideoStream, hasVideoStream,
status,
disableReason, disableReason,
mountVideoPreview, mountVideoPreview,
forceMountVideoPreview,
}) => { }) => {
const { isMobile } = deviceInfo; const { isMobile } = deviceInfo;
const shouldEnableWebcamSelectorButton = ENABLE_WEBCAM_SELECTOR_BUTTON
&& hasVideoStream
&& !isMobile;
const exitVideo = () => hasVideoStream
&& !isMobile
&& (!VideoService.isMultipleCamerasEnabled() || shouldEnableWebcamSelectorButton);
const isMobileSharingCamera = hasVideoStream && isMobile; const isMobileSharingCamera = hasVideoStream && isMobile;
const isDesktopSharingCamera = hasVideoStream && !isMobile;
const shouldEnableWebcamSelectorButton = ENABLE_WEBCAM_SELECTOR_BUTTON
&& isDesktopSharingCamera;
const exitVideo = () => isDesktopSharingCamera && (!VideoService.isMultipleCamerasEnabled()
|| shouldEnableWebcamSelectorButton);
const handleOnClick = debounce(() => { const handleOnClick = debounce(() => {
if (!validIOSVersion()) { if (!validIOSVersion()) {
return VideoService.notify(intl.formatMessage(intlMessages.iOSWarning)); return VideoService.notify(intl.formatMessage(intlMessages.iOSWarning));
} }
if (exitVideo()) { switch (status) {
VideoService.exitVideo(); case 'videoConnecting':
} else if (isMobileSharingCamera) { VideoService.stopVideo();
forceMountVideoPreview(); break;
} else { case 'connected':
mountVideoPreview(); default:
if (exitVideo()) {
VideoService.exitVideo();
} else {
mountVideoPreview(isMobileSharingCamera);
}
} }
}, JOIN_VIDEO_DELAY_MILLISECONDS); }, JOIN_VIDEO_DELAY_MILLISECONDS);
const handleOpenAdvancedOptions = (e) => { const handleOpenAdvancedOptions = (e) => {
e.stopPropagation(); e.stopPropagation();
forceMountVideoPreview(); mountVideoPreview(isMobileSharingCamera);
}; };
let label = exitVideo() const getMessageFromStatus = () => {
? intl.formatMessage(intlMessages.leaveVideo) let statusMessage = status;
: intl.formatMessage(intlMessages.joinVideo); if (status !== 'videoConnecting') {
statusMessage = exitVideo() ? 'leaveVideo' : 'joinVideo';
}
return statusMessage;
};
if (disableReason) label = intl.formatMessage(intlMessages[disableReason]); const label = disableReason
? intl.formatMessage(intlMessages[disableReason])
: intl.formatMessage(intlMessages[getMessageFromStatus()]);
const isSharing = hasVideoStream || status === 'videoConnecting';
const renderEmojiButton = () => ( const renderEmojiButton = () => (
shouldEnableWebcamSelectorButton shouldEnableWebcamSelectorButton
@ -114,9 +126,9 @@ const JoinVideoButton = ({
data-test={hasVideoStream ? 'leaveVideo' : 'joinVideo'} data-test={hasVideoStream ? 'leaveVideo' : 'joinVideo'}
onClick={handleOnClick} onClick={handleOnClick}
hideLabel hideLabel
color={hasVideoStream ? 'primary' : 'default'} color={isSharing ? 'primary' : 'default'}
icon={hasVideoStream ? 'video' : 'video_off'} icon={isSharing ? 'video' : 'video_off'}
ghost={!hasVideoStream} ghost={!isSharing}
size="lg" size="lg"
circle circle
disabled={!!disableReason} disabled={!!disableReason}

View File

@ -10,17 +10,17 @@ const JoinVideoOptionsContainer = (props) => {
const { const {
hasVideoStream, hasVideoStream,
disableReason, disableReason,
status,
intl, intl,
mountModal, mountModal,
...restProps ...restProps
} = props; } = props;
const mountVideoPreview = () => { mountModal(<VideoPreviewContainer forceOpen={false} />); }; const mountVideoPreview = (force) => { mountModal(<VideoPreviewContainer forceOpen={force} />); };
const forceMountVideoPreview = () => { mountModal(<VideoPreviewContainer forceOpen />); };
return ( return (
<JoinVideoButton {...{ <JoinVideoButton {...{
mountVideoPreview, forceMountVideoPreview, hasVideoStream, disableReason, ...restProps, mountVideoPreview, hasVideoStream, disableReason, status, ...restProps,
}} }}
/> />
); );
@ -29,4 +29,5 @@ const JoinVideoOptionsContainer = (props) => {
export default withModalMounter(injectIntl(withTracker(() => ({ export default withModalMounter(injectIntl(withTracker(() => ({
hasVideoStream: VideoService.hasVideoStream(), hasVideoStream: VideoService.hasVideoStream(),
disableReason: VideoService.disableReason(), disableReason: VideoService.disableReason(),
status: VideoService.getStatus(),
}))(JoinVideoOptionsContainer))); }))(JoinVideoOptionsContainer)));

File diff suppressed because it is too large Load Diff

View File

@ -589,7 +589,6 @@
"app.lock-viewers.button.apply": "Pas toe", "app.lock-viewers.button.apply": "Pas toe",
"app.lock-viewers.button.cancel": "Kanselleer", "app.lock-viewers.button.cancel": "Kanselleer",
"app.lock-viewers.locked": "Gesluit", "app.lock-viewers.locked": "Gesluit",
"app.lock-viewers.unlocked": "Ontsluit",
"app.guest-policy.ariaTitle": "Gasbeleid instellings modaal", "app.guest-policy.ariaTitle": "Gasbeleid instellings modaal",
"app.guest-policy.title": "Gasbeleid", "app.guest-policy.title": "Gasbeleid",
"app.guest-policy.description": "Verander vergadering gasbeleid instellings", "app.guest-policy.description": "Verander vergadering gasbeleid instellings",

View File

@ -132,6 +132,8 @@
"app.userList.userOptions.savedNames.title": "قائمة المستخدمين في الاجتماع {0} في {1}", "app.userList.userOptions.savedNames.title": "قائمة المستخدمين في الاجتماع {0} في {1}",
"app.userList.userOptions.sortedFirstName.heading": "مرتبة حسب الاسم الأول:", "app.userList.userOptions.sortedFirstName.heading": "مرتبة حسب الاسم الأول:",
"app.userList.userOptions.sortedLastName.heading": "مرتبة حسب الاسم الأخير:", "app.userList.userOptions.sortedLastName.heading": "مرتبة حسب الاسم الأخير:",
"app.userList.userOptions.hideViewersCursor": "مؤشرات المشاهد مقفلة",
"app.userList.userOptions.showViewersCursor": "مؤشرات المشاهد متاحة",
"app.media.label": "الوسائط", "app.media.label": "الوسائط",
"app.media.autoplayAlertDesc": "تمكين إستخدام", "app.media.autoplayAlertDesc": "تمكين إستخدام",
"app.media.screenshare.start": "بدأت مشاركة الشاشة", "app.media.screenshare.start": "بدأت مشاركة الشاشة",
@ -169,7 +171,7 @@
"app.presentation.changedSlideContent": "تغيير العرض إلى الشريحة: {0}", "app.presentation.changedSlideContent": "تغيير العرض إلى الشريحة: {0}",
"app.presentation.emptySlideContent": "لا يوجد محتوى للشريحة الحالية", "app.presentation.emptySlideContent": "لا يوجد محتوى للشريحة الحالية",
"app.presentation.options.fullscreen": "ملء الشاشة", "app.presentation.options.fullscreen": "ملء الشاشة",
"app.presentation.options.exitFullscreen": "الخروج من وضع ملئ للشاشة", "app.presentation.options.exitFullscreen": "الخروج من شاشة كاملة",
"app.presentation.options.minimize": "تصغير", "app.presentation.options.minimize": "تصغير",
"app.presentation.options.snapshot": "لقطة من العرض الحالي", "app.presentation.options.snapshot": "لقطة من العرض الحالي",
"app.presentation.options.downloading": "جارى التحميل...", "app.presentation.options.downloading": "جارى التحميل...",
@ -327,16 +329,16 @@
"app.muteWarning.disableMessage": "كتم التنبيهات معطلة حتى إعادة الصوت", "app.muteWarning.disableMessage": "كتم التنبيهات معطلة حتى إعادة الصوت",
"app.muteWarning.tooltip": "انقر لإغلاق وتعطيل التحذير حتى إلغاء كتم الصوت التالي", "app.muteWarning.tooltip": "انقر لإغلاق وتعطيل التحذير حتى إلغاء كتم الصوت التالي",
"app.navBar.settingsDropdown.optionsLabel": "خيارات", "app.navBar.settingsDropdown.optionsLabel": "خيارات",
"app.navBar.settingsDropdown.fullscreenLabel": "جعل الشاشة الكاملة", "app.navBar.settingsDropdown.fullscreenLabel": "جعل شاشة كاملة",
"app.navBar.settingsDropdown.settingsLabel": "الإعدادات", "app.navBar.settingsDropdown.settingsLabel": "الإعدادات",
"app.navBar.settingsDropdown.aboutLabel": "حول", "app.navBar.settingsDropdown.aboutLabel": "حول",
"app.navBar.settingsDropdown.leaveSessionLabel": "اترك الاجتماع", "app.navBar.settingsDropdown.leaveSessionLabel": "اترك الاجتماع",
"app.navBar.settingsDropdown.exitFullscreenLabel": "الخروج من الشاشة الكاملة", "app.navBar.settingsDropdown.exitFullscreenLabel": "الخروج من شاشة كاملة",
"app.navBar.settingsDropdown.fullscreenDesc": "جعل قائمة الاعدادات على الشاشة الكاملة", "app.navBar.settingsDropdown.fullscreenDesc": "جعل قائمة الإعدادات على شاشة كاملة",
"app.navBar.settingsDropdown.settingsDesc": "تغيير الإعدادات العامة", "app.navBar.settingsDropdown.settingsDesc": "تغيير الإعدادات العامة",
"app.navBar.settingsDropdown.aboutDesc": "مزيد من المعلومات عن التطبيق", "app.navBar.settingsDropdown.aboutDesc": "مزيد من المعلومات عن التطبيق",
"app.navBar.settingsDropdown.leaveSessionDesc": "مغادرة الإجتماع", "app.navBar.settingsDropdown.leaveSessionDesc": "مغادرة الإجتماع",
"app.navBar.settingsDropdown.exitFullscreenDesc": "الخروج من الشاشة الكاملة", "app.navBar.settingsDropdown.exitFullscreenDesc": "الخروج من شاشة كاملة",
"app.navBar.settingsDropdown.hotkeysLabel": "اختصارات لوحة المفاتيح", "app.navBar.settingsDropdown.hotkeysLabel": "اختصارات لوحة المفاتيح",
"app.navBar.settingsDropdown.hotkeysDesc": "قائمة اختصارات لوحة المفاتيح المتاحة", "app.navBar.settingsDropdown.hotkeysDesc": "قائمة اختصارات لوحة المفاتيح المتاحة",
"app.navBar.settingsDropdown.helpLabel": "مساعدة", "app.navBar.settingsDropdown.helpLabel": "مساعدة",
@ -562,6 +564,7 @@
"app.audio.audioSettings.descriptionLabel": "يرجى ملاحظة أنه سيظهر نافذة حوار في متصفحك ، مما يتطلب منك قبول مشاركة الميكروفون", "app.audio.audioSettings.descriptionLabel": "يرجى ملاحظة أنه سيظهر نافذة حوار في متصفحك ، مما يتطلب منك قبول مشاركة الميكروفون",
"app.audio.audioSettings.microphoneSourceLabel": "مصدر الميكروفون", "app.audio.audioSettings.microphoneSourceLabel": "مصدر الميكروفون",
"app.audio.audioSettings.speakerSourceLabel": "مصدر مكبر الصوت", "app.audio.audioSettings.speakerSourceLabel": "مصدر مكبر الصوت",
"app.audio.audioSettings.testSpeakerLabel": "اختبر سمّاعتك",
"app.audio.audioSettings.microphoneStreamLabel": "مستوى صوتك المتدفق ", "app.audio.audioSettings.microphoneStreamLabel": "مستوى صوتك المتدفق ",
"app.audio.audioSettings.retryLabel": "المحاولة مرة أخرى", "app.audio.audioSettings.retryLabel": "المحاولة مرة أخرى",
"app.audio.listenOnly.backLabel": "الى الخلف", "app.audio.listenOnly.backLabel": "الى الخلف",
@ -677,7 +680,7 @@
"app.shortcut-help.openDebugWindow": "افتح نافذة التصحيح", "app.shortcut-help.openDebugWindow": "افتح نافذة التصحيح",
"app.shortcut-help.openStatus": "فتح قائمة الحالات", "app.shortcut-help.openStatus": "فتح قائمة الحالات",
"app.shortcut-help.togglePan": "تشغيل لوحة الأدوات (مقدم)", "app.shortcut-help.togglePan": "تشغيل لوحة الأدوات (مقدم)",
"app.shortcut-help.toggleFullscreen": "تبديل مِلء الشاشة (مقدم)", "app.shortcut-help.toggleFullscreen": "تبديل الشاشة الكاملة (مقدم)",
"app.shortcut-help.nextSlideDesc": "الشريحة التالية (مقدم)", "app.shortcut-help.nextSlideDesc": "الشريحة التالية (مقدم)",
"app.shortcut-help.previousSlideDesc": "الشريحة السابقة (مقدم)", "app.shortcut-help.previousSlideDesc": "الشريحة السابقة (مقدم)",
"app.lock-viewers.title": "قفل المشاهدين", "app.lock-viewers.title": "قفل المشاهدين",
@ -695,7 +698,7 @@
"app.lock-viewers.button.apply": "تطبيق", "app.lock-viewers.button.apply": "تطبيق",
"app.lock-viewers.button.cancel": "إلغاء", "app.lock-viewers.button.cancel": "إلغاء",
"app.lock-viewers.locked": "مقفل", "app.lock-viewers.locked": "مقفل",
"app.lock-viewers.unlocked": "مفتوح", "app.lock-viewers.hideViewersCursor": "رؤية مؤشرات المشاهدين الآخرين",
"app.guest-policy.ariaTitle": "نهج إعدادات سياسة الضيف", "app.guest-policy.ariaTitle": "نهج إعدادات سياسة الضيف",
"app.guest-policy.title": "سياسة الضيف", "app.guest-policy.title": "سياسة الضيف",
"app.guest-policy.description": "تغيير إعداد سياسة ضيف الاجتماع", "app.guest-policy.description": "تغيير إعداد سياسة ضيف الاجتماع",
@ -801,7 +804,7 @@
"app.video.camCapReached": "لا يمكنك مشاركة المزيد من الكاميرات", "app.video.camCapReached": "لا يمكنك مشاركة المزيد من الكاميرات",
"app.video.meetingCamCapReached": "وصل الاجتماع إلى حده من الكاميرات المتزامنة", "app.video.meetingCamCapReached": "وصل الاجتماع إلى حده من الكاميرات المتزامنة",
"app.video.dropZoneLabel": "أفلت هنا", "app.video.dropZoneLabel": "أفلت هنا",
"app.fullscreenButton.label": "جعل {0} على الشاشة الكاملة", "app.fullscreenButton.label": "جعل {0} على شاشة كاملة",
"app.fullscreenUndoButton.label": "تراجع عن {0} شاشة كاملة", "app.fullscreenUndoButton.label": "تراجع عن {0} شاشة كاملة",
"app.switchButton.expandLabel": "قم بتوسيع مشاركة الشاشة بالفيديو", "app.switchButton.expandLabel": "قم بتوسيع مشاركة الشاشة بالفيديو",
"app.switchButton.shrinkLabel": "تقليص مشاركة الشاشة الفيديو", "app.switchButton.shrinkLabel": "تقليص مشاركة الشاشة الفيديو",
@ -947,18 +950,19 @@
"playback.button.about.aria": "حول", "playback.button.about.aria": "حول",
"playback.button.clear.aria": "مسح البحث", "playback.button.clear.aria": "مسح البحث",
"playback.button.close.aria": "إغلاق مشروط", "playback.button.close.aria": "إغلاق مشروط",
"playback.button.fullscreen.aria": "محتوى ملء الشاشة", "playback.button.fullscreen.aria": "محتوى الشاشة الكاملة",
"playback.button.restore.aria": "استعادة المحتوى", "playback.button.restore.aria": "استعادة المحتوى",
"playback.button.search.aria": "بحث", "playback.button.search.aria": "بحث",
"playback.button.section.aria": "قسم جانبي", "playback.button.section.aria": "قسم جانبي",
"playback.button.swap.aria": "تبادل المحتوى", "playback.button.swap.aria": "تبادل المحتوى",
"playback.button.theme.aria": "تبديل منظر الشاشة",
"playback.error.wrapper.aria": "مساحة الخطأ", "playback.error.wrapper.aria": "مساحة الخطأ",
"playback.loader.wrapper.aria": "مساحة المحمّل", "playback.loader.wrapper.aria": "مساحة المحمّل",
"playback.player.wrapper.aria": "مساحة العرض", "playback.player.wrapper.aria": "مساحة العرض",
"playback.player.about.modal.shortcuts.title": "الاختصارات", "playback.player.about.modal.shortcuts.title": "الاختصارات",
"playback.player.about.modal.shortcuts.alt": "Alt", "playback.player.about.modal.shortcuts.alt": "Alt",
"playback.player.about.modal.shortcuts.shift": "Shift", "playback.player.about.modal.shortcuts.shift": "Shift",
"playback.player.about.modal.shortcuts.fullscreen": "تبديل ملء الشاشة", "playback.player.about.modal.shortcuts.fullscreen": "تبديل الشاشة الكاملة",
"playback.player.about.modal.shortcuts.play": "تشغيل / وقف", "playback.player.about.modal.shortcuts.play": "تشغيل / وقف",
"playback.player.about.modal.shortcuts.section": "تبديل القسم الجانبي", "playback.player.about.modal.shortcuts.section": "تبديل القسم الجانبي",
"playback.player.about.modal.shortcuts.seek.backward": "ما قبل", "playback.player.about.modal.shortcuts.seek.backward": "ما قبل",

View File

@ -543,7 +543,6 @@
"app.lock-viewers.button.apply": "Tətbiq et", "app.lock-viewers.button.apply": "Tətbiq et",
"app.lock-viewers.button.cancel": "Ləğv et", "app.lock-viewers.button.cancel": "Ləğv et",
"app.lock-viewers.locked": "Kilidlənib", "app.lock-viewers.locked": "Kilidlənib",
"app.lock-viewers.unlocked": "Kiliddən açılıb",
"app.connection-status.ariaTitle": "Bağlantı vəziyyəti modaldır", "app.connection-status.ariaTitle": "Bağlantı vəziyyəti modaldır",
"app.connection-status.title": "Bağlantı vəziyyəti", "app.connection-status.title": "Bağlantı vəziyyəti",
"app.connection-status.description": "İstifadəçilərin əlaqə vəziyyətinə baxın", "app.connection-status.description": "İstifadəçilərin əlaqə vəziyyətinə baxın",

View File

@ -1,7 +1,6 @@
{ {
"app.home.greeting": "Вашата презентация ще започне всеки момент", "app.home.greeting": "Вашата презентация ще започне всеки момент",
"app.chat.submitLabel": "Изпрати", "app.chat.submitLabel": "Изпрати",
"app.chat.loading": "Заредени чат съобщения: {0}%",
"app.chat.errorMaxMessageLength": "Съобщението е с {0} знак(а) по-дълго ", "app.chat.errorMaxMessageLength": "Съобщението е с {0} знак(а) по-дълго ",
"app.chat.disconnected": "Вие не сте свързан, съобщението не може да бъде изпратено", "app.chat.disconnected": "Вие не сте свързан, съобщението не може да бъде изпратено",
"app.chat.locked": "Разговора е заключен, съобщението не може да бъде изпратено", "app.chat.locked": "Разговора е заключен, съобщението не може да бъде изпратено",
@ -24,8 +23,6 @@
"app.chat.multi.typing": "Пишат няколко потребителя", "app.chat.multi.typing": "Пишат няколко потребителя",
"app.chat.one.typing": "{0} пише", "app.chat.one.typing": "{0} пише",
"app.chat.two.typing": "{0} и {1} пишат", "app.chat.two.typing": "{0} и {1} пишат",
"app.chat.copySuccess": "Копиране на чата",
"app.chat.copyErr": "Проблем с копирането на чата",
"app.captions.label": "Субтитри", "app.captions.label": "Субтитри",
"app.captions.menu.close": "Затвори", "app.captions.menu.close": "Затвори",
"app.captions.menu.start": "Старт", "app.captions.menu.start": "Старт",
@ -41,23 +38,6 @@
"app.captions.menu.backgroundColor": "Цвят на фона", "app.captions.menu.backgroundColor": "Цвят на фона",
"app.captions.menu.previewLabel": "Преглед", "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": "Поемете контрол",
"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.speechRecognitionStop": "Разпознаването на реч е прекратено поради несъвместимост в браузъра или период на мълчание",
"app.textInput.sendLabel": "Изпращане",
"app.title.defaultViewLabel": "Стандартен изглед на презентацията",
"app.note.title": "Споделени бележки",
"app.note.label": "Бележка",
"app.note.hideNoteLabel": "Скрий бележката",
"app.note.tipLabel": "Натиснете Esc за връщане в редактора",
"app.note.locked": "Заключен",
"app.user.activityCheck": "Проверка на потребителската активност", "app.user.activityCheck": "Проверка на потребителската активност",
"app.user.activityCheck.label": "Проверка дали потребителя е още в срещата ({0})", "app.user.activityCheck.label": "Проверка дали потребителя е още в срещата ({0})",
"app.user.activityCheck.check": "Провери", "app.user.activityCheck.check": "Провери",
@ -73,13 +53,8 @@
"app.userList.byModerator": "от (Модератор)", "app.userList.byModerator": "от (Модератор)",
"app.userList.label": "Списък на потребителите", "app.userList.label": "Списък на потребителите",
"app.userList.toggleCompactView.label": "Превключи към режим на компактен преглед", "app.userList.toggleCompactView.label": "Превключи към режим на компактен преглед",
"app.userList.moderator": "Модератор",
"app.userList.mobile": "Мобилен",
"app.userList.guest": "Гост", "app.userList.guest": "Гост",
"app.userList.sharingWebcam": "Web камера",
"app.userList.menuTitleContext": "Опции", "app.userList.menuTitleContext": "Опции",
"app.userList.chatListItem.unreadSingular": "Едно ново съобщение",
"app.userList.chatListItem.unreadPlural": "{0} нови съобщения",
"app.userList.menu.chat.label": "Започни личен чат", "app.userList.menu.chat.label": "Започни личен чат",
"app.userList.menu.clearStatus.label": "Изчисти статуса", "app.userList.menu.clearStatus.label": "Изчисти статуса",
"app.userList.menu.removeUser.label": "Изключи потребителя", "app.userList.menu.removeUser.label": "Изключи потребителя",
@ -87,11 +62,6 @@
"app.userlist.menu.removeConfirmation.desc": "Предотврати повторно влизане на потребителя", "app.userlist.menu.removeConfirmation.desc": "Предотврати повторно влизане на потребителя",
"app.userList.menu.muteUserAudio.label": "Заглуши", "app.userList.menu.muteUserAudio.label": "Заглуши",
"app.userList.menu.unmuteUserAudio.label": "включи микрофона", "app.userList.menu.unmuteUserAudio.label": "включи микрофона",
"app.userList.menu.webcamPin.label": "Закачи потребителските камери",
"app.userList.menu.webcamUnpin.label": "Откачи потребителските камери",
"app.userList.menu.giveWhiteboardAccess.label" : "Предоставя достъп до дъската",
"app.userList.menu.removeWhiteboardAccess.label": "Премахва достъп до дъската",
"app.userList.menu.ejectUserCameras.label": "Затвори камерите",
"app.userList.userAriaLabel": "{0} {1} {2} Статус {3}", "app.userList.userAriaLabel": "{0} {1} {2} Статус {3}",
"app.userList.menu.promoteUser.label": "Повиши до модератор", "app.userList.menu.promoteUser.label": "Повиши до модератор",
"app.userList.menu.demoteUser.label": "Понижи до участник", "app.userList.menu.demoteUser.label": "Понижи до участник",
@ -123,44 +93,25 @@
"app.userList.userOptions.enablePubChat": "Общия чат е разрешен", "app.userList.userOptions.enablePubChat": "Общия чат е разрешен",
"app.userList.userOptions.showUserList": "Участниците виждат списъка с потребителите", "app.userList.userOptions.showUserList": "Участниците виждат списъка с потребителите",
"app.userList.userOptions.enableOnlyModeratorWebcam": "Вече можете да включите камерата си, всички ще ви виждат", "app.userList.userOptions.enableOnlyModeratorWebcam": "Вече можете да включите камерата си, всички ще ви виждат",
"app.userList.userOptions.savedNames.title": "Списък на потребителите в срещата {0} от {1}",
"app.userList.userOptions.sortedFirstName.heading": "Сортирани по собствено име:",
"app.userList.userOptions.sortedLastName.heading": "Сортирани по фамилия:",
"app.media.label": "Медия", "app.media.label": "Медия",
"app.media.autoplayAlertDesc": "Разреши достъпа", "app.media.autoplayAlertDesc": "Разреши достъпа",
"app.media.screenshare.start": "Споделянето на екрана започна", "app.media.screenshare.start": "Споделянето на екрана започна",
"app.media.screenshare.end": "Споделянето на екрана приключи", "app.media.screenshare.end": "Споделянето на екрана приключи",
"app.media.screenshare.endDueToDataSaving": "Споделянето на екран е спряно за икономия на трафик",
"app.media.screenshare.unavailable": "Споделянето на екран не е възможно", "app.media.screenshare.unavailable": "Споделянето на екран не е възможно",
"app.media.screenshare.notSupported": " Споделянето на екран не е възможно с този браузър.", "app.media.screenshare.notSupported": " Споделянето на екран не е възможно с този браузър.",
"app.media.screenshare.autoplayBlockedDesc": "Нуждаем се от Вашето разрешение за да Ви покажем екрана на презентатора", "app.media.screenshare.autoplayBlockedDesc": "Нуждаем се от Вашето разрешение за да Ви покажем екрана на презентатора",
"app.media.screenshare.autoplayAllowLabel": "Виж споделения екран", "app.media.screenshare.autoplayAllowLabel": "Виж споделения екран",
"app.screenshare.presenterLoadingLabel": "Вашият споделен екран се зарежда",
"app.screenshare.viewerLoadingLabel": "Екрана на презентатора се зарежда",
"app.screenshare.presenterSharingLabel": "В момента споделяте екрана си",
"app.screenshare.screenshareFinalError": "Код {0}. Невъзможно е споделянето на екрана",
"app.screenshare.screenshareRetryError": "Код {0}. Повторен опит за споделяне на екран",
"app.screenshare.screenshareRetryOtherEnvError": "Код {0}. Невъзможно е споделянето на екрана. Опитайте да използвате друг браузър или устройство",
"app.screenshare.screenshareUnsupportedEnv": "Код {0}. Браузърът не се поддържа. Опитайте да използвате друг браузър или устройство.",
"app.screenshare.screensharePermissionError": "Код {0}. Необходимо е разрешение за заснемане на екрана.",
"app.meeting.ended": "Тази сесия приключи", "app.meeting.ended": "Тази сесия приключи",
"app.meeting.meetingTimeRemaining": "Оставащо време до края на срещата: {0}", "app.meeting.meetingTimeRemaining": "Оставащо време до края на срещата: {0}",
"app.meeting.meetingTimeHasEnded": "Времето изтече: Скоро срещата ще приключи", "app.meeting.meetingTimeHasEnded": "Времето изтече: Скоро срещата ще приключи",
"app.meeting.endedByUserMessage": "Сесията е прекратена от {0}",
"app.meeting.endedByNoModeratorMessageSingular": "Срещата е прекратена поради липса на модератор за повече от една минута.",
"app.meeting.endedByNoModeratorMessagePlural": "Срещата е прекратена поради липса на модератор за повече от {0} минути.",
"app.meeting.endedMessage": "Ще бъдете пренасочени към началния екран", "app.meeting.endedMessage": "Ще бъдете пренасочени към началния екран",
"app.meeting.alertMeetingEndsUnderMinutesSingular": "Срещата ще приключи до една минута", "app.meeting.alertMeetingEndsUnderMinutesSingular": "Срещата ще приключи до една минута",
"app.meeting.alertMeetingEndsUnderMinutesPlural": "Срещата ще приключи до {0} минути", "app.meeting.alertMeetingEndsUnderMinutesPlural": "Срещата ще приключи до {0} минути",
"app.meeting.alertBreakoutEndsUnderMinutesPlural": "Екипната стая ще се затвори след {0} минути.",
"app.meeting.alertBreakoutEndsUnderMinutesSingular": "Екипната стая ще се затвори след една минута.",
"app.presentation.hide": "Скрий презентацията", "app.presentation.hide": "Скрий презентацията",
"app.presentation.notificationLabel": "Текуща презентация", "app.presentation.notificationLabel": "Текуща презентация",
"app.presentation.downloadLabel": "Download",
"app.presentation.slideContent": "Съдържание на слайда", "app.presentation.slideContent": "Съдържание на слайда",
"app.presentation.startSlideContent": "Начало на слайда", "app.presentation.startSlideContent": "Начало на слайда",
"app.presentation.endSlideContent": "Край на слайда", "app.presentation.endSlideContent": "Край на слайда",
"app.presentation.changedSlideContent": "Презентацията премина към слайд: {0}",
"app.presentation.emptySlideContent": "Няма съдържание в текущия слайд", "app.presentation.emptySlideContent": "Няма съдържание в текущия слайд",
"app.presentation.presentationToolbar.noNextSlideDesc": "Край на презентацията", "app.presentation.presentationToolbar.noNextSlideDesc": "Край на презентацията",
"app.presentation.presentationToolbar.noPrevSlideDesc": "Начало на презентацията", "app.presentation.presentationToolbar.noPrevSlideDesc": "Начало на презентацията",
@ -186,10 +137,8 @@
"app.presentation.presentationToolbar.fitToWidth": "Разшири максимално", "app.presentation.presentationToolbar.fitToWidth": "Разшири максимално",
"app.presentation.presentationToolbar.fitToPage": "Запълни страницата", "app.presentation.presentationToolbar.fitToPage": "Запълни страницата",
"app.presentation.presentationToolbar.goToSlide": "Слайд {0}", "app.presentation.presentationToolbar.goToSlide": "Слайд {0}",
"app.presentation.placeholder": "Изчакване да бъде качена презентация",
"app.presentationUploder.title": "презентацията", "app.presentationUploder.title": "презентацията",
"app.presentationUploder.message": "Като презентатор имате възможност да качите Office документ или PDF файл. Препоръчваме PDF файл. Моля уверете се, че презентацията е избрана използвайки кръглия чек бокс от дясно.", "app.presentationUploder.message": "Като презентатор имате възможност да качите Office документ или PDF файл. Препоръчваме PDF файл. Моля уверете се, че презентацията е избрана използвайки кръглия чек бокс от дясно.",
"app.presentationUploder.extraHint": "ВАЖНО: единичен файл не може да превишава {0} МВ и {1} страници. ",
"app.presentationUploder.uploadLabel": "Качване", "app.presentationUploder.uploadLabel": "Качване",
"app.presentationUploder.confirmLabel": "Потвърждаване", "app.presentationUploder.confirmLabel": "Потвърждаване",
"app.presentationUploder.confirmDesc": "Запазете Вашите промени и стартирайте презентацията", "app.presentationUploder.confirmDesc": "Запазете Вашите промени и стартирайте презентацията",
@ -202,10 +151,7 @@
"app.presentationUploder.fileToUpload": "да бъде качено...", "app.presentationUploder.fileToUpload": "да бъде качено...",
"app.presentationUploder.currentBadge": "Текущо", "app.presentationUploder.currentBadge": "Текущо",
"app.presentationUploder.rejectedError": "Избрания/те файл(ове) бяха отхвърлени. Моля проверете типа на файла(овете)", "app.presentationUploder.rejectedError": "Избрания/те файл(ове) бяха отхвърлени. Моля проверете типа на файла(овете)",
"app.presentationUploder.connectionClosedError": "Прекъсване поради лоша връзка. Моля опитайте отново.",
"app.presentationUploder.upload.progress": "Качване ({0}%)", "app.presentationUploder.upload.progress": "Качване ({0}%)",
"app.presentationUploder.upload.413": "Файла е прекалено голям, надвишава максумума от {0} МВ",
"app.presentationUploder.genericError": "Оопс, нещо се обърка...",
"app.presentationUploder.upload.408": "Времето на заявката за upload токен изтече", "app.presentationUploder.upload.408": "Времето на заявката за upload токен изтече",
"app.presentationUploder.upload.404": "404: Невалиден токен за upload", "app.presentationUploder.upload.404": "404: Невалиден токен за upload",
"app.presentationUploder.upload.401": "Неуспешна заявка за презентация", "app.presentationUploder.upload.401": "Неуспешна заявка за презентация",
@ -214,68 +160,31 @@
"app.presentationUploder.conversion.generatingThumbnail": "Генериране на thumbnails ...", "app.presentationUploder.conversion.generatingThumbnail": "Генериране на thumbnails ...",
"app.presentationUploder.conversion.generatedSlides": "Генериране на слайдове ...", "app.presentationUploder.conversion.generatedSlides": "Генериране на слайдове ...",
"app.presentationUploder.conversion.generatingSvg": "Генериране на SVG изобажения ...", "app.presentationUploder.conversion.generatingSvg": "Генериране на SVG изобажения ...",
"app.presentationUploder.conversion.pageCountExceeded": "Страниците надвишават максумума от {0}",
"app.presentationUploder.conversion.officeDocConversionInvalid": "Грешка при обработка на office документа. Моля, по възможност качете PDF файл.", "app.presentationUploder.conversion.officeDocConversionInvalid": "Грешка при обработка на office документа. Моля, по възможност качете PDF файл.",
"app.presentationUploder.conversion.officeDocConversionFailed": "Грешка при обработка на office документа. Моля, по възможност качете PDF файл.", "app.presentationUploder.conversion.officeDocConversionFailed": "Грешка при обработка на office документа. Моля, по възможност качете PDF файл.",
"app.presentationUploder.conversion.pdfHasBigPage": "Проблем с конвертирането на PDF файла, моля опитайте да го оптимизирате. Максимален брой страници {0}",
"app.presentationUploder.conversion.timeout": "Опс, обработката отне много време", "app.presentationUploder.conversion.timeout": "Опс, обработката отне много време",
"app.presentationUploder.conversion.pageCountFailed": "Проблем с установяването на броя на страниците.", "app.presentationUploder.conversion.pageCountFailed": "Проблем с установяването на броя на страниците.",
"app.presentationUploder.conversion.unsupportedDocument": "Неподържано файлово разширение",
"app.presentationUploder.isDownloadableLabel": "Свалянето на презентацията не е разрешено - кликнете за предоставяне на разрешение за сваляне ",
"app.presentationUploder.isNotDownloadableLabel": "Свалянето на презентацията е разрешено - кликнете за да забраните свалянето",
"app.presentationUploder.removePresentationLabel": "Премахни презентацията", "app.presentationUploder.removePresentationLabel": "Премахни презентацията",
"app.presentationUploder.setAsCurrentPresentation": "Направи презентацията активна", "app.presentationUploder.setAsCurrentPresentation": "Направи презентацията активна",
"app.presentationUploder.tableHeading.filename": "Име на файла", "app.presentationUploder.tableHeading.filename": "Име на файла",
"app.presentationUploder.tableHeading.options": "Опции", "app.presentationUploder.tableHeading.options": "Опции",
"app.presentationUploder.tableHeading.status": "Статус", "app.presentationUploder.tableHeading.status": "Статус",
"app.presentationUploder.uploading": "Качване {0} {1}",
"app.presentationUploder.uploadStatus": "{0} от {1} качвания приключиха ",
"app.presentationUploder.completed": "{0} качвания приключиха",
"app.presentationUploder.item" : "елемент",
"app.presentationUploder.itemPlural" : "елементи",
"app.presentationUploder.clearErrors": "Изчисти грешките",
"app.presentationUploder.clearErrorsDesc": "Изчиства неуспешно качените презентации",
"app.presentationUploder.uploadViewTitle": "Качи презентация",
"app.poll.pollPaneTitle": "Проучване", "app.poll.pollPaneTitle": "Проучване",
"app.poll.quickPollTitle": "Бързо проучване", "app.poll.quickPollTitle": "Бързо проучване",
"app.poll.hidePollDesc": "Скрии панела за гласуване", "app.poll.hidePollDesc": "Скрии панела за гласуване",
"app.poll.quickPollInstruction": "Изберете вариантите по-долу за да стартирате Вашето проучване", "app.poll.quickPollInstruction": "Изберете вариантите по-долу за да стартирате Вашето проучване",
"app.poll.activePollInstruction": "Оставете панела отворен за да виждате в реално време отговорите на Вашето проучване. Когато сте готови, изберете 'Публикувай резултатите'", "app.poll.activePollInstruction": "Оставете панела отворен за да виждате в реално време отговорите на Вашето проучване. Когато сте готови, изберете 'Публикувай резултатите'",
"app.poll.dragDropPollInstruction": "За да попълните стойностите на анкетата, довлачете текстов файл със стойностите до маркираното поле",
"app.poll.customPollTextArea": "Попълнете стойностите на анкетата",
"app.poll.publishLabel": "Публикувай анкетата",
"app.poll.cancelPollLabel": "Отмяна",
"app.poll.backLabel": "Стартирай анкета",
"app.poll.closeLabel": "Затвори", "app.poll.closeLabel": "Затвори",
"app.poll.waitingLabel": "Очакват се отговорите ({0}/{1})", "app.poll.waitingLabel": "Очакват се отговорите ({0}/{1})",
"app.poll.ariaInputCount": "Опции в проучването {0} от {1}", "app.poll.ariaInputCount": "Опции в проучването {0} от {1}",
"app.poll.customPlaceholder": "Добави вариант в проучването", "app.poll.customPlaceholder": "Добави вариант в проучването",
"app.poll.noPresentationSelected": "Не е избрана презентация! Моля изберете.", "app.poll.noPresentationSelected": "Не е избрана презентация! Моля изберете.",
"app.poll.clickHereToSelect": "Щракнете туз за избор", "app.poll.clickHereToSelect": "Щракнете туз за избор",
"app.poll.question.label" : "Напишете Вашия въпрос...",
"app.poll.optionalQuestion.label" : "Напишете Вашия въпрос (незадължително)...",
"app.poll.userResponse.label" : "Потребителски отговор",
"app.poll.responseTypes.label" : "Варианти на отговор",
"app.poll.optionDelete.label" : "Изтрий",
"app.poll.responseChoices.label" : "Изпор на отговори",
"app.poll.typedResponse.desc" : "На потребителите ще бъде показано текстово поле в което да попълнят отговора си.",
"app.poll.addItem.label" : "Добави елемент",
"app.poll.start.label" : "Стартирай анкета",
"app.poll.secretPoll.label" : "Анонимна анкета",
"app.poll.secretPoll.isSecretLabel": "Анкетата е анонимна - няма да можете да видите индивидуалните отговори.",
"app.poll.questionErr": "Въвеждането на въпрос е задължително.",
"app.poll.optionErr": "Въведете опции за анкетата",
"app.poll.startPollDesc": "Започнете анкетата",
"app.poll.showRespDesc": "Настройка на отговора",
"app.poll.addRespDesc": "Добавя възможност за въвеждане на отговр",
"app.poll.deleteRespDesc": "Премахва опция {0}",
"app.poll.t": "Вярно", "app.poll.t": "Вярно",
"app.poll.f": "Невярно", "app.poll.f": "Невярно",
"app.poll.tf": "Вярно / Невярно", "app.poll.tf": "Вярно / Невярно",
"app.poll.y": "Да", "app.poll.y": "Да",
"app.poll.n": "Не", "app.poll.n": "Не",
"app.poll.abstention": "Въздържал се",
"app.poll.yna": "Да / Не / Въздържал се",
"app.poll.a2": "A / B", "app.poll.a2": "A / B",
"app.poll.a3": "A / B / C", "app.poll.a3": "A / B / C",
"app.poll.a4": "A / B / C / D", "app.poll.a4": "A / B / C / D",
@ -284,7 +193,6 @@
"app.poll.answer.false": "Невярно", "app.poll.answer.false": "Невярно",
"app.poll.answer.yes": "Да", "app.poll.answer.yes": "Да",
"app.poll.answer.no": "Не", "app.poll.answer.no": "Не",
"app.poll.answer.abstention": "Въздържал се",
"app.poll.answer.a": "A", "app.poll.answer.a": "A",
"app.poll.answer.b": "B", "app.poll.answer.b": "B",
"app.poll.answer.c": "C", "app.poll.answer.c": "C",
@ -292,16 +200,7 @@
"app.poll.answer.e": "E", "app.poll.answer.e": "E",
"app.poll.liveResult.usersTitle": "Потребители", "app.poll.liveResult.usersTitle": "Потребители",
"app.poll.liveResult.responsesTitle": "Отговор", "app.poll.liveResult.responsesTitle": "Отговор",
"app.poll.liveResult.secretLabel": "Това е анонимна анкета. Индивидуалните отговори няма да бъдат показани.",
"app.poll.removePollOpt": "Премахната опция {0} от анкетата",
"app.poll.emptyPollOpt": "Празно",
"app.polling.pollingTitle": "Опции за проучването", "app.polling.pollingTitle": "Опции за проучването",
"app.polling.pollQuestionTitle": "Въпрос за гласуване",
"app.polling.submitLabel": "Изпрати",
"app.polling.submitAriaLabel": "Изпрати отговора",
"app.polling.responsePlaceholder": "Въведи отговор",
"app.polling.responseSecret": "Анонимна анкета - презентатора няма да вижда Вашия отговор.",
"app.polling.responseNotSecret": "Нормална анкета - Презентатора ще вижда вашия отговор.",
"app.polling.pollAnswerLabel": "Отговори на проучването {0}", "app.polling.pollAnswerLabel": "Отговори на проучването {0}",
"app.polling.pollAnswerDesc": "Изберете тази опция за да гласувате за {0}", "app.polling.pollAnswerDesc": "Изберете тази опция за да гласувате за {0}",
"app.failedMessage": "Съжаляваме, има проблем с връзката до сървъра", "app.failedMessage": "Съжаляваме, има проблем с връзката до сървъра",
@ -309,14 +208,10 @@
"app.connectingMessage": "Свързване...", "app.connectingMessage": "Свързване...",
"app.waitingMessage": "Разкачен. Опит за свързване след {0} секунди ...", "app.waitingMessage": "Разкачен. Опит за свързване след {0} секунди ...",
"app.retryNow": "Опитай сега", "app.retryNow": "Опитай сега",
"app.muteWarning.label": "Кликнете {0} за премахване на заглушаването",
"app.muteWarning.disableMessage": "Съобщенията за заглушаване са изключени до премахване на заглушаването",
"app.muteWarning.tooltip": "Кликнете за да затворите и изключите предупреждението до следващото премахване на заглушаването",
"app.navBar.settingsDropdown.optionsLabel": "Опции", "app.navBar.settingsDropdown.optionsLabel": "Опции",
"app.navBar.settingsDropdown.fullscreenLabel": "Покажи на цял екран", "app.navBar.settingsDropdown.fullscreenLabel": "Покажи на цял екран",
"app.navBar.settingsDropdown.settingsLabel": "Настройки", "app.navBar.settingsDropdown.settingsLabel": "Настройки",
"app.navBar.settingsDropdown.aboutLabel": "Относно", "app.navBar.settingsDropdown.aboutLabel": "Относно",
"app.navBar.settingsDropdown.leaveSessionLabel": "Непускане на срещата",
"app.navBar.settingsDropdown.exitFullscreenLabel": "Изход от цял екран", "app.navBar.settingsDropdown.exitFullscreenLabel": "Изход от цял екран",
"app.navBar.settingsDropdown.fullscreenDesc": "Покажи менюто с настройките на цял екран", "app.navBar.settingsDropdown.fullscreenDesc": "Покажи менюто с настройките на цял екран",
"app.navBar.settingsDropdown.settingsDesc": "Change the general settings", "app.navBar.settingsDropdown.settingsDesc": "Change the general settings",
@ -331,17 +226,12 @@
"app.navBar.userListToggleBtnLabel": "Показва списъка с потребители", "app.navBar.userListToggleBtnLabel": "Показва списъка с потребители",
"app.navBar.toggleUserList.ariaLabel": "Скрий/покажи потребителите и съобщенията", "app.navBar.toggleUserList.ariaLabel": "Скрий/покажи потребителите и съобщенията",
"app.navBar.toggleUserList.newMessages": "with new message notification", "app.navBar.toggleUserList.newMessages": "with new message notification",
"app.navBar.toggleUserList.newMsgAria": "Ново съобщение от {0} ",
"app.navBar.recording": "Тази сесия се записва", "app.navBar.recording": "Тази сесия се записва",
"app.navBar.recording.on": "Запис", "app.navBar.recording.on": "Запис",
"app.navBar.recording.off": "Не се записва", "app.navBar.recording.off": "Не се записва",
"app.navBar.emptyAudioBrdige": "Няма активен микрофон. Включете микрофона за да има звук към този запис.", "app.navBar.emptyAudioBrdige": "Няма активен микрофон. Включете микрофона за да има звук към този запис.",
"app.leaveConfirmation.confirmLabel": "Напусни", "app.leaveConfirmation.confirmLabel": "Напусни",
"app.leaveConfirmation.confirmDesc": "Напускане на срещата", "app.leaveConfirmation.confirmDesc": "Напускане на срещата",
"app.endMeeting.title": "Край {0}",
"app.endMeeting.description": "Ще прекратите сесията на {0} активни потребител/я. Сигурни ли сте, че желаете да прекратите сесията?",
"app.endMeeting.noUserDescription": "Сигурни ли сте че желаете да прекратите сесията?",
"app.endMeeting.contentWarning": "Съобщенията в чата, споделените бележки, съдържанието на дъската и споделените документи за тази сесия няма да бъдат директно достъпни.",
"app.endMeeting.yesLabel": "Да", "app.endMeeting.yesLabel": "Да",
"app.endMeeting.noLabel": "Не", "app.endMeeting.noLabel": "Не",
"app.about.title": "Относно", "app.about.title": "Относно",
@ -356,13 +246,9 @@
"app.actionsBar.camOffLabel": "Камера изк.", "app.actionsBar.camOffLabel": "Камера изк.",
"app.actionsBar.raiseLabel": "вдигни ръка", "app.actionsBar.raiseLabel": "вдигни ръка",
"app.actionsBar.actionsDropdown.restorePresentationLabel": "Покажи презентацията", "app.actionsBar.actionsDropdown.restorePresentationLabel": "Покажи презентацията",
"app.actionsBar.actionsDropdown.restorePresentationDesc": "Бутон за възстановяване на презентацията след мимимизиране",
"app.actionsBar.actionsDropdown.minimizePresentationLabel": "Минимизирай презентацията",
"app.actionsBar.actionsDropdown.minimizePresentationDesc": "Бутон за минимизиране на презентацията",
"app.screenshare.screenShareLabel" : "Споделяне на екрана", "app.screenshare.screenShareLabel" : "Споделяне на екрана",
"app.submenu.application.applicationSectionTitle": "Приложение", "app.submenu.application.applicationSectionTitle": "Приложение",
"app.submenu.application.animationsLabel": "Анимации", "app.submenu.application.animationsLabel": "Анимации",
"app.submenu.application.audioFilterLabel": "Аудио филтри за микрофона",
"app.submenu.application.fontSizeControlLabel": "Размер на шрифта", "app.submenu.application.fontSizeControlLabel": "Размер на шрифта",
"app.submenu.application.increaseFontBtnLabel": "Увеличи размера на шрифта", "app.submenu.application.increaseFontBtnLabel": "Увеличи размера на шрифта",
"app.submenu.application.decreaseFontBtnLabel": "Намали размера на шрифта", "app.submenu.application.decreaseFontBtnLabel": "Намали размера на шрифта",
@ -370,14 +256,11 @@
"app.submenu.application.languageLabel": "Език на интерфейса", "app.submenu.application.languageLabel": "Език на интерфейса",
"app.submenu.application.languageOptionLabel": "Изберете език", "app.submenu.application.languageOptionLabel": "Изберете език",
"app.submenu.application.noLocaleOptionLabel": "Няма активна локализация", "app.submenu.application.noLocaleOptionLabel": "Няма активна локализация",
"app.submenu.application.paginationEnabledLabel": "Видео страниране",
"app.submenu.application.layoutOptionLabel": "Видове изгледи",
"app.submenu.notification.SectionTitle": "Съобщения", "app.submenu.notification.SectionTitle": "Съобщения",
"app.submenu.notification.Desc": "Дефинира как и за какво ще бъдете информирани", "app.submenu.notification.Desc": "Дефинира как и за какво ще бъдете информирани",
"app.submenu.notification.audioAlertLabel": "Звукови предупреждения", "app.submenu.notification.audioAlertLabel": "Звукови предупреждения",
"app.submenu.notification.pushAlertLabel": "Popup предупреждения", "app.submenu.notification.pushAlertLabel": "Popup предупреждения",
"app.submenu.notification.messagesLabel": "Чат съобщение", "app.submenu.notification.messagesLabel": "Чат съобщение",
"app.submenu.notification.guestWaitingLabel": "Гост очаква одобрение",
"app.submenu.audio.micSourceLabel": "Микрофон - източник", "app.submenu.audio.micSourceLabel": "Микрофон - източник",
"app.submenu.audio.speakerSourceLabel": "Говорители - източник", "app.submenu.audio.speakerSourceLabel": "Говорители - източник",
"app.submenu.audio.streamVolumeLabel": "Сила на звука", "app.submenu.audio.streamVolumeLabel": "Сила на звука",
@ -401,20 +284,12 @@
"app.settings.dataSavingTab.screenShare": "Разреши споделянето на екрана", "app.settings.dataSavingTab.screenShare": "Разреши споделянето на екрана",
"app.settings.dataSavingTab.description": "За да ограничите използването на данни, определете какво да се показва", "app.settings.dataSavingTab.description": "За да ограничите използването на данни, определете какво да се показва",
"app.settings.save-notification.label": "Настройките бяха записани", "app.settings.save-notification.label": "Настройките бяха записани",
"app.statusNotifier.lowerHands": "Смъкни ръцете",
"app.statusNotifier.raisedHandsTitle": "Вдигнати ръце",
"app.statusNotifier.raisedHandDesc": "{0} вдигнаха ръка",
"app.statusNotifier.raisedHandDescOneUser": "{0} вдигнати ръце",
"app.statusNotifier.and": "и",
"app.switch.onLabel": "ВКЛ", "app.switch.onLabel": "ВКЛ",
"app.switch.offLabel": "ИЗК", "app.switch.offLabel": "ИЗК",
"app.talkingIndicator.ariaMuteDesc" : "Избери за да заглушиш потребителя", "app.talkingIndicator.ariaMuteDesc" : "Избери за да заглушиш потребителя",
"app.talkingIndicator.isTalking" : "{0} говори", "app.talkingIndicator.isTalking" : "{0} говори",
"app.talkingIndicator.moreThanMaxIndicatorsTalking" : "{0}+ говорят",
"app.talkingIndicator.moreThanMaxIndicatorsWereTalking" : "{0}+ говореха",
"app.talkingIndicator.wasTalking" : "{0} спря да говори", "app.talkingIndicator.wasTalking" : "{0} спря да говори",
"app.actionsBar.actionsDropdown.actionsLabel": "Действия", "app.actionsBar.actionsDropdown.actionsLabel": "Действия",
"app.actionsBar.actionsDropdown.presentationLabel": "Управление на презентациите",
"app.actionsBar.actionsDropdown.initPollLabel": "Стартирай проучване", "app.actionsBar.actionsDropdown.initPollLabel": "Стартирай проучване",
"app.actionsBar.actionsDropdown.desktopShareLabel": "Сподели екрана", "app.actionsBar.actionsDropdown.desktopShareLabel": "Сподели екрана",
"app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Споделянето на екрана е забранено", "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Споделянето на екрана е забранено",
@ -432,13 +307,9 @@
"app.actionsBar.actionsDropdown.captionsDesc": "Показва/скрива панела на субтитрите", "app.actionsBar.actionsDropdown.captionsDesc": "Показва/скрива панела на субтитрите",
"app.actionsBar.actionsDropdown.takePresenter": "Стани презентатор", "app.actionsBar.actionsDropdown.takePresenter": "Стани презентатор",
"app.actionsBar.actionsDropdown.takePresenterDesc": "Правиш се презентатор", "app.actionsBar.actionsDropdown.takePresenterDesc": "Правиш се презентатор",
"app.actionsBar.actionsDropdown.selectRandUserLabel": "Избери случаен потребител",
"app.actionsBar.actionsDropdown.selectRandUserDesc": "Избери случаен участник",
"app.actionsBar.emojiMenu.statusTriggerLabel": "Статус", "app.actionsBar.emojiMenu.statusTriggerLabel": "Статус",
"app.actionsBar.emojiMenu.awayLabel": "Отсъстващ", "app.actionsBar.emojiMenu.awayLabel": "Отсъстващ",
"app.actionsBar.emojiMenu.awayDesc": "Промени статуса си на отсъстващ", "app.actionsBar.emojiMenu.awayDesc": "Промени статуса си на отсъстващ",
"app.actionsBar.emojiMenu.raiseHandLabel": "Вдигни ръка",
"app.actionsBar.emojiMenu.lowerHandLabel": "Смъкни ръка",
"app.actionsBar.emojiMenu.raiseHandDesc": "Вдигни ръка за да зададеш въпрос", "app.actionsBar.emojiMenu.raiseHandDesc": "Вдигни ръка за да зададеш въпрос",
"app.actionsBar.emojiMenu.neutralLabel": "Неопределено", "app.actionsBar.emojiMenu.neutralLabel": "Неопределено",
"app.actionsBar.emojiMenu.neutralDesc": "Промени статуса си на неопределен", "app.actionsBar.emojiMenu.neutralDesc": "Промени статуса си на неопределен",
@ -484,8 +355,6 @@
"app.audioModal.ariaTitle": "Включи аудиото", "app.audioModal.ariaTitle": "Включи аудиото",
"app.audioModal.microphoneLabel": "Със звук", "app.audioModal.microphoneLabel": "Със звук",
"app.audioModal.listenOnlyLabel": "Като слушател", "app.audioModal.listenOnlyLabel": "Като слушател",
"app.audioModal.microphoneDesc": "Влез в срещата с микрофон",
"app.audioModal.listenOnlyDesc": "Влез в срещата като слушател",
"app.audioModal.audioChoiceLabel": "Как желаете да се включите?", "app.audioModal.audioChoiceLabel": "Как желаете да се включите?",
"app.audioModal.iOSBrowser": "Аудио/Видео не се поддържа", "app.audioModal.iOSBrowser": "Аудио/Видео не се поддържа",
"app.audioModal.iOSErrorDescription": "Към момента Chrome под iOS не поддържа аудио и видео. ", "app.audioModal.iOSErrorDescription": "Към момента Chrome под iOS не поддържа аудио и видео. ",
@ -511,7 +380,6 @@
"app.audioModal.playAudio.arialabel" : "Пусни аудио", "app.audioModal.playAudio.arialabel" : "Пусни аудио",
"app.audioDial.tipIndicator": "Подсказка", "app.audioDial.tipIndicator": "Подсказка",
"app.audioDial.tipMessage": "Натиснете `0` на вашия телефон за да вкл/изк микрофона си.", "app.audioDial.tipMessage": "Натиснете `0` на вашия телефон за да вкл/изк микрофона си.",
"app.audioModal.connecting": "Установяване на аудио връзка",
"app.audioManager.joinedAudio": "Вие се присъединихте към аудио конференцията", "app.audioManager.joinedAudio": "Вие се присъединихте към аудио конференцията",
"app.audioManager.joinedEcho": "Вие се присъединихте към ехо тест", "app.audioManager.joinedEcho": "Вие се присъединихте към ехо тест",
"app.audioManager.leftAudio": "Вие напуснахте аудио конференцията", "app.audioManager.leftAudio": "Вие напуснахте аудио конференцията",
@ -523,14 +391,9 @@
"app.audioManager.mediaError": "Грешка: Има проблем с досъпа до вашите камера/микрофон", "app.audioManager.mediaError": "Грешка: Има проблем с досъпа до вашите камера/микрофон",
"app.audio.joinAudio": "Включи аудиото", "app.audio.joinAudio": "Включи аудиото",
"app.audio.leaveAudio": "Изключи аудиото", "app.audio.leaveAudio": "Изключи аудиото",
"app.audio.changeAudioDevice": "Премени аудио устройството",
"app.audio.enterSessionLabel": "Влез в сесията", "app.audio.enterSessionLabel": "Влез в сесията",
"app.audio.playSoundLabel": "Пусни звук", "app.audio.playSoundLabel": "Пусни звук",
"app.audio.backLabel": "Назад", "app.audio.backLabel": "Назад",
"app.audio.loading": "Зареждане",
"app.audio.microphones": "Микрофони",
"app.audio.speakers": "Говорители",
"app.audio.noDeviceFound": "Не е намерено устройство",
"app.audio.audioSettings.titleLabel": "Изберете Ваште аудио настройки", "app.audio.audioSettings.titleLabel": "Изберете Ваште аудио настройки",
"app.audio.audioSettings.descriptionLabel": "Моля обърнете внимание, Вашият браузър ще поиска разрешение за споделяне на микрофона", "app.audio.audioSettings.descriptionLabel": "Моля обърнете внимание, Вашият браузър ще поиска разрешение за споделяне на микрофона",
"app.audio.audioSettings.microphoneSourceLabel": "Микрофон - източник", "app.audio.audioSettings.microphoneSourceLabel": "Микрофон - източник",
@ -555,41 +418,18 @@
"app.modal.confirm": "Завършено", "app.modal.confirm": "Завършено",
"app.modal.newTab": "(отваря нов таб)", "app.modal.newTab": "(отваря нов таб)",
"app.modal.confirm.description": "Запази промяната и затвори избора", "app.modal.confirm.description": "Запази промяната и затвори избора",
"app.modal.randomUser.noViewers.description": "Не са налични участници от които да се избере случаен\n",
"app.modal.randomUser.selected.description": "Вие бяхте избран на случаен принцип",
"app.modal.randomUser.title": "Случайно избран потребител",
"app.modal.randomUser.who": "Кой ще бъде избран..?",
"app.modal.randomUser.alone": "Има само един участник",
"app.modal.randomUser.reselect.label": "Избери отново",
"app.modal.randomUser.ariaLabel.title": "Диалог за случаен избор на потребител",
"app.dropdown.close": "Затвори", "app.dropdown.close": "Затвори",
"app.dropdown.list.item.activeLabel": "Активен",
"app.error.400": "Грешна заявка", "app.error.400": "Грешна заявка",
"app.error.401": "Неауторизиран", "app.error.401": "Неауторизиран",
"app.error.403": "Вие бяхте изключен от срещата", "app.error.403": "Вие бяхте изключен от срещата",
"app.error.404": "Не е намерен", "app.error.404": "Не е намерен",
"app.error.408": "Ауторизацията неуспешна",
"app.error.410": "Срещата приключи", "app.error.410": "Срещата приключи",
"app.error.500": "Опс, нещо не е наред", "app.error.500": "Опс, нещо не е наред",
"app.error.userLoggedOut": "Потребителя има невалиден sessionToken поради log out ",
"app.error.ejectedUser": "Потребителя има невалиден sessionToken поради изхвърляне",
"app.error.userBanned": "Потребителя беше изгонен",
"app.error.leaveLabel": "Влезте отново", "app.error.leaveLabel": "Влезте отново",
"app.error.fallback.presentation.title": "Възникна грешка", "app.error.fallback.presentation.title": "Възникна грешка",
"app.error.fallback.presentation.description": "Влязъл е. Моля презаредете станицата", "app.error.fallback.presentation.description": "Влязъл е. Моля презаредете станицата",
"app.error.fallback.presentation.reloadButton": "Презареждане", "app.error.fallback.presentation.reloadButton": "Презареждане",
"app.guest.waiting": "Изчаква одобрение за вход", "app.guest.waiting": "Изчаква одобрение за вход",
"app.guest.errorSeeConsole": "Грешка: Повече подробности в конзолата.",
"app.guest.noModeratorResponse": "Няма отговор от модератора.",
"app.guest.windowTitle": "BigBlueButton - Лоби за гости",
"app.guest.missingMeeting": "Срещата не съществува.",
"app.guest.meetingEnded": "Срещата приключи.",
"app.guest.guestWait": "Моля изчакайте модератора да одобри участието Ви в срещата.",
"app.guest.guestDeny": "Участието на госта в срещата е отказано.",
"app.guest.seatWait": "Гост очаква одобрение за участие в срещата.",
"app.guest.allow": "Госта е одобрен и препратен към срещата.",
"app.guest.guestInvalid": "Госта е невалиден",
"app.guest.meetingForciblyEnded": "Не можете да влезете в среща която принудително е приключила",
"app.userList.guest.waitingUsers": "Изчаква потребители", "app.userList.guest.waitingUsers": "Изчаква потребители",
"app.userList.guest.waitingUsersTitle": "Управление на потребителите", "app.userList.guest.waitingUsersTitle": "Управление на потребителите",
"app.userList.guest.optionTitle": "Преглеждане на чакващите потребители", "app.userList.guest.optionTitle": "Преглеждане на чакващите потребители",
@ -601,10 +441,6 @@
"app.userList.guest.pendingGuestUsers": "{0} Изчакващи Гост потребители", "app.userList.guest.pendingGuestUsers": "{0} Изчакващи Гост потребители",
"app.userList.guest.pendingGuestAlert": "Присъедини се към сесията и очаква Вашето одобрение", "app.userList.guest.pendingGuestAlert": "Присъедини се към сесията и очаква Вашето одобрение",
"app.userList.guest.rememberChoice": "Запомни избора", "app.userList.guest.rememberChoice": "Запомни избора",
"app.userList.guest.emptyMessage": "Няма нови съобщения",
"app.userList.guest.inputPlaceholder": "Съобщение до гостите в лобито",
"app.userList.guest.acceptLabel": "Приемам",
"app.userList.guest.denyLabel": "Забранявам",
"app.user-info.title": "Преглед на директорията", "app.user-info.title": "Преглед на директорията",
"app.toast.breakoutRoomEnded": "Екипната стая бе затворена. Моля вкючете аудиото.", "app.toast.breakoutRoomEnded": "Екипната стая бе затворена. Моля вкючете аудиото.",
"app.toast.chat.public": "Ново съобщение в Общия чат", "app.toast.chat.public": "Ново съобщение в Общия чат",
@ -614,17 +450,13 @@
"app.toast.setEmoji.label": "Емоджи стутса е сменен на {0}", "app.toast.setEmoji.label": "Емоджи стутса е сменен на {0}",
"app.toast.meetingMuteOn.label": "Всички потребители бяха заглушени", "app.toast.meetingMuteOn.label": "Всички потребители бяха заглушени",
"app.toast.meetingMuteOff.label": "Заглушаването на срещата е изключено", "app.toast.meetingMuteOff.label": "Заглушаването на срещата е изключено",
"app.toast.setEmoji.raiseHand": "Вие дигнахте ръка",
"app.toast.setEmoji.lowerHand": "Вие свалихте ръка",
"app.notification.recordingStart": "Тази сесия се записва", "app.notification.recordingStart": "Тази сесия се записва",
"app.notification.recordingStop": "Тази сесия не се записва", "app.notification.recordingStop": "Тази сесия не се записва",
"app.notification.recordingPaused": "Тази сесия вече не се записва", "app.notification.recordingPaused": "Тази сесия вече не се записва",
"app.notification.recordingAriaLabel": "Време на запис", "app.notification.recordingAriaLabel": "Време на запис",
"app.notification.userJoinPushAlert": "{0} се присъедини към сесията", "app.notification.userJoinPushAlert": "{0} се присъедини към сесията",
"app.notification.userLeavePushAlert": "{0} напуснаха сесията",
"app.submenu.notification.raiseHandLabel": "Вдигни ръка", "app.submenu.notification.raiseHandLabel": "Вдигни ръка",
"app.shortcut-help.title": "Клавишни комбинации", "app.shortcut-help.title": "Клавишни комбинации",
"app.shortcut-help.accessKeyNotAvailable": "Кода за достъп не е достъпен",
"app.shortcut-help.comboLabel": "Комбинация", "app.shortcut-help.comboLabel": "Комбинация",
"app.shortcut-help.functionLabel": "Функция", "app.shortcut-help.functionLabel": "Функция",
"app.shortcut-help.closeLabel": "Затвори", "app.shortcut-help.closeLabel": "Затвори",
@ -638,7 +470,6 @@
"app.shortcut-help.openActions": "Отвори менюто с възможни действия", "app.shortcut-help.openActions": "Отвори менюто с възможни действия",
"app.shortcut-help.openStatus": "Отвори статус менюто", "app.shortcut-help.openStatus": "Отвори статус менюто",
"app.shortcut-help.togglePan": "Активиране на показалеца (Презентатор)", "app.shortcut-help.togglePan": "Активиране на показалеца (Презентатор)",
"app.shortcut-help.toggleFullscreen": "Превключи на пълен екран (Презентатор)",
"app.shortcut-help.nextSlideDesc": "Следващ слайд (Презентатор)", "app.shortcut-help.nextSlideDesc": "Следващ слайд (Презентатор)",
"app.shortcut-help.previousSlideDesc": "Предишен слайд (Презентатор)", "app.shortcut-help.previousSlideDesc": "Предишен слайд (Презентатор)",
"app.lock-viewers.title": "Задай ограничение", "app.lock-viewers.title": "Задай ограничение",
@ -655,27 +486,9 @@
"app.lock-viewers.button.apply": "Приложи", "app.lock-viewers.button.apply": "Приложи",
"app.lock-viewers.button.cancel": "Отказ", "app.lock-viewers.button.cancel": "Отказ",
"app.lock-viewers.locked": "Забранено", "app.lock-viewers.locked": "Забранено",
"app.lock-viewers.unlocked": "Разрешено",
"app.guest-policy.button.askModerator": "Попитай модератора",
"app.guest-policy.button.alwaysAccept": "Винаги приемам",
"app.guest-policy.button.alwaysDeny": "Винаги отказвам",
"app.connection-status.ariaTitle": "Статус на връзката",
"app.connection-status.title": "Статус на връзката", "app.connection-status.title": "Статус на връзката",
"app.connection-status.description": "Статус на връзката на потребителите", "app.connection-status.description": "Статус на връзката на потребителите",
"app.connection-status.empty": "Не са докладвани проблеми с връзката",
"app.connection-status.more": "още", "app.connection-status.more": "още",
"app.connection-status.copy": "Копирай мрежовите данни",
"app.connection-status.copied": "Копирани!",
"app.connection-status.label": "Статус на връзката",
"app.connection-status.no": "Не",
"app.connection-status.notification": "Установени са проблеми с връзката Ви",
"app.connection-status.offline": "offline",
"app.connection-status.lostPackets": "Загуба на пакети",
"app.connection-status.usingTurn": "Използване на TURN",
"app.connection-status.yes": "Да",
"app.learning-dashboard.label": "Табло анализи на участието",
"app.learning-dashboard.description": "Отвори таблото с потребителските активности",
"app.learning-dashboard.clickHereToOpen": "Отвори таблото са анализи на обучението",
"app.recording.startTitle": "Стартиране на записа", "app.recording.startTitle": "Стартиране на записа",
"app.recording.stopTitle": "Пауза на записа", "app.recording.stopTitle": "Пауза на записа",
"app.recording.resumeTitle": "Продължи записа", "app.recording.resumeTitle": "Продължи записа",
@ -683,45 +496,27 @@
"app.recording.stopDescription": "Сигурни ли сте че желаете да паузирате записа? Можете да продължите записа при натискане на бутона отново.", "app.recording.stopDescription": "Сигурни ли сте че желаете да паузирате записа? Можете да продължите записа при натискане на бутона отново.",
"app.videoPreview.cameraLabel": "Камера", "app.videoPreview.cameraLabel": "Камера",
"app.videoPreview.profileLabel": "Качество", "app.videoPreview.profileLabel": "Качество",
"app.videoPreview.quality.low": "Ниско",
"app.videoPreview.quality.medium": "Средно",
"app.videoPreview.quality.high": "Високо",
"app.videoPreview.quality.hd": "Висока резолюция",
"app.videoPreview.cancelLabel": "Отказ", "app.videoPreview.cancelLabel": "Отказ",
"app.videoPreview.closeLabel": "Затвори", "app.videoPreview.closeLabel": "Затвори",
"app.videoPreview.findingWebcamsLabel": "Търсене на камери", "app.videoPreview.findingWebcamsLabel": "Търсене на камери",
"app.videoPreview.startSharingLabel": "Започване на споделянето", "app.videoPreview.startSharingLabel": "Започване на споделянето",
"app.videoPreview.stopSharingLabel": "Спри споделянето", "app.videoPreview.stopSharingLabel": "Спри споделянето",
"app.videoPreview.stopSharingAllLabel": "Спри всички",
"app.videoPreview.sharedCameraLabel": "Тази камера вече е споделена", "app.videoPreview.sharedCameraLabel": "Тази камера вече е споделена",
"app.videoPreview.webcamOptionLabel": "Избери камера", "app.videoPreview.webcamOptionLabel": "Избери камера",
"app.videoPreview.webcamPreviewLabel": "Камера преглед", "app.videoPreview.webcamPreviewLabel": "Камера преглед",
"app.videoPreview.webcamSettingsTitle": "Настройки на камерата", "app.videoPreview.webcamSettingsTitle": "Настройки на камерата",
"app.videoPreview.webcamVirtualBackgroundLabel": "Настройки на виртуалния фон",
"app.videoPreview.webcamVirtualBackgroundDisabledLabel": "Това устройство не поддържа виртуален фон",
"app.videoPreview.webcamNotFoundLabel": "Камерата не е намерена", "app.videoPreview.webcamNotFoundLabel": "Камерата не е намерена",
"app.videoPreview.profileNotFoundLabel": "Няма поддържан профил на камера",
"app.video.joinVideo": "Сподели камерата", "app.video.joinVideo": "Сподели камерата",
"app.video.connecting": "Започва споделянето на камерата...",
"app.video.leaveVideo": "Спри споделянето на камерата", "app.video.leaveVideo": "Спри споделянето на камерата",
"app.video.advancedVideo": "Отвори разширените настройки",
"app.video.iceCandidateError": "Грешка при добавянето на ICE кандидат", "app.video.iceCandidateError": "Грешка при добавянето на ICE кандидат",
"app.video.iceConnectionStateError": "Проблем с връзката (ICE грешка 1107)", "app.video.iceConnectionStateError": "Проблем с връзката (ICE грешка 1107)",
"app.video.permissionError": "Грешка при споделянето на камерата. Моля проверете разрешенията", "app.video.permissionError": "Грешка при споделянето на камерата. Моля проверете разрешенията",
"app.video.sharingError": "Грешка при споделянето на камерата", "app.video.sharingError": "Грешка при споделянето на камерата",
"app.video.abortError": "Възникна непознат проблем, който възпрепятства използването на камерата",
"app.video.overconstrainedError": "Вашата камера не поддържа това качество",
"app.video.securityError": "Вашият браузър не позволява използването на камерата. Опитайте с друг браузър ",
"app.video.typeError": "Невалиден профил на качеството за камерата. Свържете се с администратор.",
"app.video.notFoundError": "Камерата не беше намерена. Моля проверете дали е свързана", "app.video.notFoundError": "Камерата не беше намерена. Моля проверете дали е свързана",
"app.video.notAllowed": "Липсва разрешение за споделяне на камерата, моля проверете разрешенията на браузъра", "app.video.notAllowed": "Липсва разрешение за споделяне на камерата, моля проверете разрешенията на браузъра",
"app.video.notSupportedError": "Може да се споделя видео от камерата само от сигурни източници, проверете валидността на SSL сертификата", "app.video.notSupportedError": "Може да се споделя видео от камерата само от сигурни източници, проверете валидността на SSL сертификата",
"app.video.notReadableError": "Няма достъп до видеото от камерата. Моля проверете дали друго приложение не я ползва.", "app.video.notReadableError": "Няма достъп до видеото от камерата. Моля проверете дали друго приложение не я ползва.",
"app.video.timeoutError": "Браузърът не отговори навреме",
"app.video.genericError": "Възникна непозната грешка с устройството ({0})",
"app.video.mediaTimedOutError": "Видеопотока от Вашата камера беше прекъснат. Опитайте да я споделите отново",
"app.video.mediaFlowTimeout1020": "Медията не може да достигне до сървъра (грешка 1020)", "app.video.mediaFlowTimeout1020": "Медията не може да достигне до сървъра (грешка 1020)",
"app.video.suggestWebcamLock": "Да се ​​приложи ли настройката за заключване на уеб камерите на участниците?",
"app.video.suggestWebcamLockReason": "(това ще подобри стабилността на срещата)", "app.video.suggestWebcamLockReason": "(това ще подобри стабилността на срещата)",
"app.video.enable": "Разреши", "app.video.enable": "Разреши",
"app.video.cancel": "Отказ", "app.video.cancel": "Отказ",
@ -732,23 +527,7 @@
"app.video.videoMenu": "Видео меню", "app.video.videoMenu": "Видео меню",
"app.video.videoMenuDisabled": "Видео менюто на камерета е изключено в настройките", "app.video.videoMenuDisabled": "Видео менюто на камерета е изключено в настройките",
"app.video.videoMenuDesc": "Отвори падащото видео меню", "app.video.videoMenuDesc": "Отвори падащото видео меню",
"app.video.pagination.prevPage": "Виж предишните видеа",
"app.video.pagination.nextPage": "Виж следващите видеа",
"app.video.clientDisconnected": "Поради проблеми с връзката камерата не може да бъде споделена",
"app.video.virtualBackground.none": "Нищо",
"app.video.virtualBackground.blur": "Замъглено",
"app.video.virtualBackground.home": "Дом",
"app.video.virtualBackground.board": "Дъска",
"app.video.virtualBackground.coffeeshop": "Кафене",
"app.video.virtualBackground.background": "Фон",
"app.video.virtualBackground.genericError": "Проблем с прилагане на ефекта. Опитайте отново",
"app.video.virtualBackground.camBgAriaDesc": "Приложи виртуален фон към {0}",
"app.video.camCapReached": "Вие не може да споделяте повече камери",
"app.video.dropZoneLabel": "Пусни тук",
"app.fullscreenButton.label": "Покажи {0} на цял екран", "app.fullscreenButton.label": "Покажи {0} на цял екран",
"app.fullscreenUndoButton.label": "Назад {0} fullscreen",
"app.switchButton.expandLabel": "Разпъни видеото на споделения екран",
"app.switchButton.shrinkLabel": "Намали видеото на споделения екран",
"app.sfu.mediaServerConnectionError2000": "Връзката тс медия сървъра невъзможна (Грешка 2000)", "app.sfu.mediaServerConnectionError2000": "Връзката тс медия сървъра невъзможна (Грешка 2000)",
"app.sfu.mediaServerOffline2001": "Медия сървъра е offline. Моля опитайте по-късно (грешка 2001)", "app.sfu.mediaServerOffline2001": "Медия сървъра е offline. Моля опитайте по-късно (грешка 2001)",
"app.sfu.mediaServerNoResources2002": "Медия сървъра няма свободни ресурси (грешка 2002)", "app.sfu.mediaServerNoResources2002": "Медия сървъра няма свободни ресурси (грешка 2002)",
@ -758,9 +537,6 @@
"app.sfu.invalidSdp2202":"Клиента генерира невалидна медия заявка (SDP грешка 2202)", "app.sfu.invalidSdp2202":"Клиента генерира невалидна медия заявка (SDP грешка 2202)",
"app.sfu.noAvailableCodec2203": "Сървъра на може да намери подходящ кодек (грешка 2203)", "app.sfu.noAvailableCodec2203": "Сървъра на може да намери подходящ кодек (грешка 2203)",
"app.meeting.endNotification.ok.label": "OK", "app.meeting.endNotification.ok.label": "OK",
"app.whiteboard.annotations.poll": "Резултатите от анкетата са публикувани",
"app.whiteboard.annotations.pollResult": "Резултати от анкетата",
"app.whiteboard.annotations.noResponses": "Няма отговор",
"app.whiteboard.toolbar.tools": "Инструменти", "app.whiteboard.toolbar.tools": "Инструменти",
"app.whiteboard.toolbar.tools.hand": "Показалец", "app.whiteboard.toolbar.tools.hand": "Показалец",
"app.whiteboard.toolbar.tools.pencil": "Молив", "app.whiteboard.toolbar.tools.pencil": "Молив",
@ -788,23 +564,15 @@
"app.whiteboard.toolbar.multiUserOn": "Включи многопотребителската бяла дъска", "app.whiteboard.toolbar.multiUserOn": "Включи многопотребителската бяла дъска",
"app.whiteboard.toolbar.multiUserOff": "Изключи многопотребителската бяла дъска", "app.whiteboard.toolbar.multiUserOff": "Изключи многопотребителската бяла дъска",
"app.whiteboard.toolbar.fontSize": "Размер на шрифта", "app.whiteboard.toolbar.fontSize": "Размер на шрифта",
"app.whiteboard.toolbarAriaLabel": "Инструменти за презентиране",
"app.feedback.title": "Вие излязохте от конференцията", "app.feedback.title": "Вие излязохте от конференцията",
"app.feedback.subtitle": "Ще се радваме да чуем Вашия опит с BigBlueButton (опционално)", "app.feedback.subtitle": "Ще се радваме да чуем Вашия опит с BigBlueButton (опционално)",
"app.feedback.textarea": "Как можем да подобрим BigBlueButton?", "app.feedback.textarea": "Как можем да подобрим BigBlueButton?",
"app.feedback.sendFeedback": "Изпрати мнение", "app.feedback.sendFeedback": "Изпрати мнение",
"app.feedback.sendFeedbackDesc": "Изпрати мнение и напусни срещата", "app.feedback.sendFeedbackDesc": "Изпрати мнение и напусни срещата",
"app.videoDock.webcamMirrorLabel": "Огледало",
"app.videoDock.webcamMirrorDesc": "Огледален образ на избраната камера",
"app.videoDock.webcamFocusLabel": "Фокус", "app.videoDock.webcamFocusLabel": "Фокус",
"app.videoDock.webcamFocusDesc": "Премести фокуса върху избраната камера", "app.videoDock.webcamFocusDesc": "Премести фокуса върху избраната камера",
"app.videoDock.webcamUnfocusLabel": "Премахни фокуса", "app.videoDock.webcamUnfocusLabel": "Премахни фокуса",
"app.videoDock.webcamUnfocusDesc": "Премахни фокуса от избраната камера", "app.videoDock.webcamUnfocusDesc": "Премахни фокуса от избраната камера",
"app.videoDock.webcamPinLabel": "Закачи",
"app.videoDock.webcamPinDesc": "Закачи избраната камера",
"app.videoDock.webcamUnpinLabel": "Разкачи",
"app.videoDock.webcamUnpinLabelDisabled": "Само модераторите могат да разкачат участници",
"app.videoDock.webcamUnpinDesc": "Разкачи избраната камера",
"app.videoDock.autoplayBlockedDesc": "Нуждаем се от Вашето разрешение да Ви покажем камерите да другите потребители", "app.videoDock.autoplayBlockedDesc": "Нуждаем се от Вашето разрешение да Ви покажем камерите да другите потребители",
"app.videoDock.autoplayAllowLabel": "Прегледай камерите", "app.videoDock.autoplayAllowLabel": "Прегледай камерите",
"app.invitation.title": "Покана за екипна стая", "app.invitation.title": "Покана за екипна стая",
@ -812,22 +580,17 @@
"app.createBreakoutRoom.title": "Екипни стаи", "app.createBreakoutRoom.title": "Екипни стаи",
"app.createBreakoutRoom.ariaTitle": "Скрий екипните стаи", "app.createBreakoutRoom.ariaTitle": "Скрий екипните стаи",
"app.createBreakoutRoom.breakoutRoomLabel": "Екипни стаи {0}", "app.createBreakoutRoom.breakoutRoomLabel": "Екипни стаи {0}",
"app.createBreakoutRoom.askToJoin": "Поискайте да се присъедините",
"app.createBreakoutRoom.generatingURL": "Генериране на URL", "app.createBreakoutRoom.generatingURL": "Генериране на URL",
"app.createBreakoutRoom.generatingURLMessage": "Генерира се URL за присъединяване към избраната екипна стая. Това ще отнеме няколко секунди...",
"app.createBreakoutRoom.duration": "Продължителност {0}", "app.createBreakoutRoom.duration": "Продължителност {0}",
"app.createBreakoutRoom.room": "Стая {0}", "app.createBreakoutRoom.room": "Стая {0}",
"app.createBreakoutRoom.notAssigned": "Неприсъединени ({0})", "app.createBreakoutRoom.notAssigned": "Неприсъединени ({0})",
"app.createBreakoutRoom.join": "Влез в стаята", "app.createBreakoutRoom.join": "Влез в стаята",
"app.createBreakoutRoom.joinAudio": "Включи аудиото",
"app.createBreakoutRoom.returnAudio": "Възстанови аудиото",
"app.createBreakoutRoom.alreadyConnected": "Вече сте в стаята", "app.createBreakoutRoom.alreadyConnected": "Вече сте в стаята",
"app.createBreakoutRoom.confirm": "Създай", "app.createBreakoutRoom.confirm": "Създай",
"app.createBreakoutRoom.record": "Запиши", "app.createBreakoutRoom.record": "Запиши",
"app.createBreakoutRoom.numberOfRooms": "Брой на стаите", "app.createBreakoutRoom.numberOfRooms": "Брой на стаите",
"app.createBreakoutRoom.durationInMinutes": "Продължителност (минути)", "app.createBreakoutRoom.durationInMinutes": "Продължителност (минути)",
"app.createBreakoutRoom.randomlyAssign": "Случайно записване", "app.createBreakoutRoom.randomlyAssign": "Случайно записване",
"app.createBreakoutRoom.randomlyAssignDesc": "Разпредели участниците в екипните стаи на случаен принцип",
"app.createBreakoutRoom.endAllBreakouts": "Затвори всички екипни стаи", "app.createBreakoutRoom.endAllBreakouts": "Затвори всички екипни стаи",
"app.createBreakoutRoom.roomName": "{0} (Стая - {1})", "app.createBreakoutRoom.roomName": "{0} (Стая - {1})",
"app.createBreakoutRoom.doneLabel": "Завършено", "app.createBreakoutRoom.doneLabel": "Завършено",
@ -837,17 +600,9 @@
"app.createBreakoutRoom.addParticipantLabel": "+ Добави участник", "app.createBreakoutRoom.addParticipantLabel": "+ Добави участник",
"app.createBreakoutRoom.freeJoin": "Разрешете на потребителите да изберат в коя екипна стая да влязат", "app.createBreakoutRoom.freeJoin": "Разрешете на потребителите да изберат в коя екипна стая да влязат",
"app.createBreakoutRoom.leastOneWarnBreakout": "Трябва да поставите поне един потребител в екипната стая.", "app.createBreakoutRoom.leastOneWarnBreakout": "Трябва да поставите поне един потребител в екипната стая.",
"app.createBreakoutRoom.minimumDurationWarnBreakout": "Минималното време за активност на екипната стая е {0} минути.",
"app.createBreakoutRoom.modalDesc": "Съвет: Можете да влачите потребителските имена до конкретната екипна стая.", "app.createBreakoutRoom.modalDesc": "Съвет: Можете да влачите потребителските имена до конкретната екипна стая.",
"app.createBreakoutRoom.roomTime": "{0} минути", "app.createBreakoutRoom.roomTime": "{0} минути",
"app.createBreakoutRoom.numberOfRoomsError": "Броя на стаите е невалиден", "app.createBreakoutRoom.numberOfRoomsError": "Броя на стаите е невалиден",
"app.createBreakoutRoom.duplicatedRoomNameError": "Имената на стаите на могат да се дублират",
"app.createBreakoutRoom.emptyRoomNameError": "Името на стаята не може да е празно",
"app.createBreakoutRoom.extendTimeInMinutes": "Време за удължаване(минути)",
"app.createBreakoutRoom.extendTimeLabel": "Удължи",
"app.createBreakoutRoom.extendTimeCancel": "Отмени",
"app.createBreakoutRoom.extendTimeHigherThanMeetingTimeError": "Времето за активност на екипната стая не може да превишава това на основната среща",
"app.createBreakoutRoom.roomNameInputDesc": "Обновява името на екипната стая",
"app.externalVideo.start": "Сподели ново видео", "app.externalVideo.start": "Сподели ново видео",
"app.externalVideo.title": "Сподели външно видео", "app.externalVideo.title": "Сподели външно видео",
"app.externalVideo.input": "Външно видео URl", "app.externalVideo.input": "Външно видео URl",
@ -855,91 +610,12 @@
"app.externalVideo.urlError": "Този видеоизточник не се поддържа.", "app.externalVideo.urlError": "Този видеоизточник не се поддържа.",
"app.externalVideo.close": "Затвори", "app.externalVideo.close": "Затвори",
"app.externalVideo.autoPlayWarning": "Щракнете вълхо видеото за да го пуснете", "app.externalVideo.autoPlayWarning": "Щракнете вълхо видеото за да го пуснете",
"app.externalVideo.refreshLabel": "Обнови Video Player",
"app.externalVideo.noteLabel": "Бележка: Споделеното външно видео няма да се появи във записа. Поддържат се YouTube, Vimeo, Instructure Media, Twitch, Dailymotion and URLs на медийни файлове (e.g. https://example.com/xy.mp4) .",
"app.actionsBar.actionsDropdown.shareExternalVideo": "Сподели външно видео", "app.actionsBar.actionsDropdown.shareExternalVideo": "Сподели външно видео",
"app.actionsBar.actionsDropdown.stopShareExternalVideo": "Спри споделянето на видео", "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Спри споделянето на видео",
"app.iOSWarning.label": "Моля обновете до iOS 12.2 или по-висока", "app.iOSWarning.label": "Моля обновете до iOS 12.2 или по-висока",
"app.legacy.unsupportedBrowser": "Вие използвате браузър който не се поддържа.За пълна функционалност, моля използвайте {0} или {1}", "app.legacy.unsupportedBrowser": "Вие използвате браузър който не се поддържа.За пълна функционалност, моля използвайте {0} или {1}",
"app.legacy.upgradeBrowser": "Вие използвате стара версия на браузър който се поддържа. За постигане на пълна функционалнаст, моля обновете браузъра си.", "app.legacy.upgradeBrowser": "Вие използвате стара версия на браузър който се поддържа. За постигане на пълна функционалнаст, моля обновете браузъра си.",
"app.legacy.criosBrowser": "За пълна функционалност под iOS моля използвайте Safari", "app.legacy.criosBrowser": "За пълна функционалност под iOS моля използвайте Safari"
"app.debugWindow.form.button.copy": "Копирай",
"app.debugWindow.form.enableAutoarrangeLayoutLabel": "Включи автоматично подреждане на изгледа",
"app.debugWindow.form.enableAutoarrangeLayoutDescription": "(ще бъде изключено ако влачите или преоразмерите прозореца на камерата)",
"app.debugWindow.form.button.apply": "Приложи",
"app.layout.style.custom": "Персонализиран",
"app.layout.style.smart": "Умно оформление",
"app.layout.style.presentationFocus": "Фокус върху презентацията",
"app.layout.style.videoFocus": "Фокус върху видеото",
"app.layout.style.customPush": "Персонализиран (налага оформлението на всички)",
"app.layout.style.smartPush": "Умно оформление(налага оформлението на всички)",
"app.layout.style.presentationFocusPush": "Фокус върху презентацията (налага оформлението на всички)",
"app.layout.style.videoFocusPush": "Фокус върху видеото(налага оформлението на всички)",
"playback.button.about.aria": "Относно",
"playback.button.clear.aria": "Изчисти търсенето",
"playback.button.close.aria": "Затвори",
"playback.button.fullscreen.aria": "Съдържанието на цял екран",
"playback.button.restore.aria": "Възстанови съдържанието",
"playback.button.search.aria": "Търси",
"playback.button.section.aria": "Странична секция",
"playback.button.swap.aria": "Размени съдържанието",
"playback.error.wrapper.aria": "Зона за грешки",
"playback.loader.wrapper.aria": "Зона за зареждане",
"playback.player.wrapper.aria": "Зона на плейъра",
"playback.player.about.modal.shortcuts.title": "Пряк път",
"playback.player.about.modal.shortcuts.alt": "Alt",
"playback.player.about.modal.shortcuts.shift": "Shift",
"playback.player.about.modal.shortcuts.fullscreen": "Превключи на цял екран",
"playback.player.about.modal.shortcuts.play": "Пусни / Пауза",
"playback.player.about.modal.shortcuts.section": "Превключи страничната секция",
"playback.player.about.modal.shortcuts.seek.backward": "Търси назад",
"playback.player.about.modal.shortcuts.seek.forward": "Търси напред",
"playback.player.about.modal.shortcuts.skip.next": "Следващ слайд",
"playback.player.about.modal.shortcuts.skip.previous": "Предишен слайд",
"playback.player.about.modal.shortcuts.swap": "Размени съдържанието",
"playback.player.chat.message.poll.name": "Резултат от анкетата",
"playback.player.chat.message.poll.question": "Въпрос",
"playback.player.chat.message.poll.options": "Опции",
"playback.player.chat.message.poll.option.yes": "Да",
"playback.player.chat.message.poll.option.no": "е",
"playback.player.chat.message.poll.option.abstention": "Въздържал се",
"playback.player.chat.message.poll.option.true": "Вярно",
"playback.player.chat.message.poll.option.false": "Невярно",
"playback.player.chat.message.video.name": "Външно видео",
"playback.player.chat.wrapper.aria": "Зона за чат",
"playback.player.notes.wrapper.aria": "Зона за бележки",
"playback.player.presentation.wrapper.aria": "Зона за презентация",
"playback.player.screenshare.wrapper.aria": "Зона за споделен екран",
"playback.player.search.modal.title": "Търсене",
"playback.player.search.modal.subtitle": "Намери съдържание в презентацията",
"playback.player.thumbnails.wrapper.aria": "Зона с миниатюри",
"playback.player.webcams.wrapper.aria": "Зона за камери",
"app.learningDashboard.dashboardTitle": "Табло за анализ на обучението",
"app.learningDashboard.user": "Потребител",
"app.learningDashboard.indicators.meetingStatusEnded": "Приключил",
"app.learningDashboard.indicators.meetingStatusActive": "Активен",
"app.learningDashboard.indicators.usersOnline": "Активни потребители",
"app.learningDashboard.indicators.usersTotal": "Общ брой на участниците",
"app.learningDashboard.indicators.polls": "Анкети",
"app.learningDashboard.indicators.raiseHand": "Вдикнати ръце",
"app.learningDashboard.indicators.activityScore": "Точки на активност",
"app.learningDashboard.indicators.duration": "Продължителност",
"app.learningDashboard.usersTable.title": "Преглед",
"app.learningDashboard.usersTable.colOnline": "Време онлайн",
"app.learningDashboard.usersTable.colTalk": "Време за дискусия",
"app.learningDashboard.usersTable.colWebcam": "Време с камера",
"app.learningDashboard.usersTable.colMessages": "Съобщения",
"app.learningDashboard.usersTable.colEmojis": "Емотикони",
"app.learningDashboard.usersTable.colRaiseHands": "Вдигнати ръце",
"app.learningDashboard.usersTable.colActivityScore": "Точки на активност",
"app.learningDashboard.usersTable.colStatus": "Статус",
"app.learningDashboard.usersTable.userStatusOnline": "Онлайн",
"app.learningDashboard.usersTable.userStatusOffline": "Офлайн",
"app.learningDashboard.pollsTable.title": "Анкетиране",
"app.learningDashboard.pollsTable.anonymousAnswer": "Анонимна анкета (отговорите в последния ред)",
"app.learningDashboard.pollsTable.anonymousRowName": "Анонимен",
"app.learningDashboard.statusTimelineTable.title": "Времева линия на статуса ",
"app.learningDashboard.errors.dataUnavailable": "Данните вече не са достъпни"
} }

View File

@ -616,7 +616,6 @@
"app.lock-viewers.button.apply": "প্রয়োগ করুন", "app.lock-viewers.button.apply": "প্রয়োগ করুন",
"app.lock-viewers.button.cancel": "ক্যানকেল", "app.lock-viewers.button.cancel": "ক্যানকেল",
"app.lock-viewers.locked": "লকড", "app.lock-viewers.locked": "লকড",
"app.lock-viewers.unlocked": "আনলক করা",
"app.guest-policy.ariaTitle": "অতিথি নীতি সেটিংস মডেল", "app.guest-policy.ariaTitle": "অতিথি নীতি সেটিংস মডেল",
"app.guest-policy.title": "অতিথি নীতি", "app.guest-policy.title": "অতিথি নীতি",
"app.guest-policy.description": "সভায় অতিথি নীতি সেটিং পরিবর্তন করুন", "app.guest-policy.description": "সভায় অতিথি নীতি সেটিং পরিবর্তন করুন",

View File

@ -695,7 +695,6 @@
"app.lock-viewers.button.apply": "Aplica", "app.lock-viewers.button.apply": "Aplica",
"app.lock-viewers.button.cancel": "Cancel·la", "app.lock-viewers.button.cancel": "Cancel·la",
"app.lock-viewers.locked": "Bloquejat/da", "app.lock-viewers.locked": "Bloquejat/da",
"app.lock-viewers.unlocked": "Desbloqueja",
"app.guest-policy.ariaTitle": "Modalitat de configuració de la política de convidats", "app.guest-policy.ariaTitle": "Modalitat de configuració de la política de convidats",
"app.guest-policy.title": "Política de convidats", "app.guest-policy.title": "Política de convidats",
"app.guest-policy.description": "Canviar la configuració de la política de convidats a les reunions", "app.guest-policy.description": "Canviar la configuració de la política de convidats a les reunions",

View File

@ -651,7 +651,6 @@
"app.lock-viewers.button.apply": "Aplikovat", "app.lock-viewers.button.apply": "Aplikovat",
"app.lock-viewers.button.cancel": "Zrušit", "app.lock-viewers.button.cancel": "Zrušit",
"app.lock-viewers.locked": "Uzamčen", "app.lock-viewers.locked": "Uzamčen",
"app.lock-viewers.unlocked": "Povoleno",
"app.guest-policy.ariaTitle": "Panel nastavení Pravidla pro hosty", "app.guest-policy.ariaTitle": "Panel nastavení Pravidla pro hosty",
"app.guest-policy.title": "Pravidla pro hosty", "app.guest-policy.title": "Pravidla pro hosty",
"app.guest-policy.description": "Změnit nastavení pravidel pro hosty", "app.guest-policy.description": "Změnit nastavení pravidel pro hosty",

View File

@ -548,7 +548,6 @@
"app.lock-viewers.button.apply": "Anvend", "app.lock-viewers.button.apply": "Anvend",
"app.lock-viewers.button.cancel": "Afbestille", "app.lock-viewers.button.cancel": "Afbestille",
"app.lock-viewers.locked": "Låst", "app.lock-viewers.locked": "Låst",
"app.lock-viewers.unlocked": "Oplåst",
"app.connection-status.ariaTitle": "Forbindelsesstatus modal", "app.connection-status.ariaTitle": "Forbindelsesstatus modal",
"app.connection-status.title": "Forbindelsesstatus", "app.connection-status.title": "Forbindelsesstatus",
"app.connection-status.description": "Se brugernes forbindelsesstatus", "app.connection-status.description": "Se brugernes forbindelsesstatus",

View File

@ -133,6 +133,8 @@
"app.userList.userOptions.savedNames.title": "Liste der Teilnehmer in der Konferenz {0} vom {1}", "app.userList.userOptions.savedNames.title": "Liste der Teilnehmer in der Konferenz {0} vom {1}",
"app.userList.userOptions.sortedFirstName.heading": "Sortiert nach Vorname:", "app.userList.userOptions.sortedFirstName.heading": "Sortiert nach Vorname:",
"app.userList.userOptions.sortedLastName.heading": "Sortiert nach Nachname:", "app.userList.userOptions.sortedLastName.heading": "Sortiert nach Nachname:",
"app.userList.userOptions.hideViewersCursor": "Cursor der Teilnehmer sind gesperrt",
"app.userList.userOptions.showViewersCursor": "Cursor der Teilnehmer sind freigegeben",
"app.media.label": "Media", "app.media.label": "Media",
"app.media.autoplayAlertDesc": "Zugang erlauben", "app.media.autoplayAlertDesc": "Zugang erlauben",
"app.media.screenshare.start": "Bildschirmfreigabe wurde gestartet", "app.media.screenshare.start": "Bildschirmfreigabe wurde gestartet",
@ -563,6 +565,7 @@
"app.audio.audioSettings.descriptionLabel": "Ein Dialogfenster wird sich in Ihrem Browser öffnen, in dem Sie der Freigabe Ihres Mikrofons zustimmen müssen.", "app.audio.audioSettings.descriptionLabel": "Ein Dialogfenster wird sich in Ihrem Browser öffnen, in dem Sie der Freigabe Ihres Mikrofons zustimmen müssen.",
"app.audio.audioSettings.microphoneSourceLabel": "Mikrofoneingang", "app.audio.audioSettings.microphoneSourceLabel": "Mikrofoneingang",
"app.audio.audioSettings.speakerSourceLabel": "Lautsprecherausgang", "app.audio.audioSettings.speakerSourceLabel": "Lautsprecherausgang",
"app.audio.audioSettings.testSpeakerLabel": "Testen Sie Ihren Lautsprecher",
"app.audio.audioSettings.microphoneStreamLabel": "Lautstärke Ihres Audiosignals", "app.audio.audioSettings.microphoneStreamLabel": "Lautstärke Ihres Audiosignals",
"app.audio.audioSettings.retryLabel": "Erneut versuchen", "app.audio.audioSettings.retryLabel": "Erneut versuchen",
"app.audio.listenOnly.backLabel": "Zurück", "app.audio.listenOnly.backLabel": "Zurück",
@ -696,7 +699,7 @@
"app.lock-viewers.button.apply": "Anwenden", "app.lock-viewers.button.apply": "Anwenden",
"app.lock-viewers.button.cancel": "Abbrechen", "app.lock-viewers.button.cancel": "Abbrechen",
"app.lock-viewers.locked": "Gesperrt", "app.lock-viewers.locked": "Gesperrt",
"app.lock-viewers.unlocked": "Freigegeben", "app.lock-viewers.hideViewersCursor": "Cursor anderer Teilnehmer anzeigen",
"app.guest-policy.ariaTitle": "Einstellungsdialog für Gastzugangsregelung", "app.guest-policy.ariaTitle": "Einstellungsdialog für Gastzugangsregelung",
"app.guest-policy.title": "Gastzugang regeln", "app.guest-policy.title": "Gastzugang regeln",
"app.guest-policy.description": "Grundregel für den Gastzugang ändern", "app.guest-policy.description": "Grundregel für den Gastzugang ändern",
@ -953,6 +956,7 @@
"playback.button.search.aria": "Suche", "playback.button.search.aria": "Suche",
"playback.button.section.aria": "Randabschnitt", "playback.button.section.aria": "Randabschnitt",
"playback.button.swap.aria": "Inhalt umschalten", "playback.button.swap.aria": "Inhalt umschalten",
"playback.button.theme.aria": "Design wechseln",
"playback.error.wrapper.aria": "Fehlerbereich", "playback.error.wrapper.aria": "Fehlerbereich",
"playback.loader.wrapper.aria": "Loaderbereich", "playback.loader.wrapper.aria": "Loaderbereich",
"playback.player.wrapper.aria": "Playerbereich", "playback.player.wrapper.aria": "Playerbereich",

View File

@ -207,7 +207,7 @@
"app.poll.quickPollTitle": "އަވަސް ވޯޓު", "app.poll.quickPollTitle": "އަވަސް ވޯޓު",
"app.poll.hidePollDesc": "ވޯޓު މެނޫ ޕޭން ފޮރުވާނެ", "app.poll.hidePollDesc": "ވޯޓު މެނޫ ޕޭން ފޮރުވާނެ",
"app.poll.quickPollInstruction": "ވޯޓު ފެށުމަށްޓަކައި ތިރިން އޮޕްޝަންއެއް ހިޔާރުކުރައްވާ.", "app.poll.quickPollInstruction": "ވޯޓު ފެށުމަށްޓަކައި ތިރިން އޮޕްޝަންއެއް ހިޔާރުކުރައްވާ.",
"app.poll.activePollInstruction": "ލައިވްކޮށް ވޯޓުގެ ނަތީއްޖާ ބެއްލެވުމަށް މި ޕޭން ހުޅުވާފައި ބަހައްޓާ. ތައްޔާރުވުމުން، ނަތީއްޖާ ޝާއިއުކޮށް ވޯޓު ބަންދުކުރުމަށް 'ވޯޓުގެ ނަތީއްޖާ ޝާއިއުކުރ' ހިޔާރުކުރައްވާ. ", "app.poll.activePollInstruction": "ލައިވްކޮށް ވޯޓުގެ ނަތީއްޖާ ބެއްލެވުމަށް މި ޕޭން ހުޅުވާފައި ބަހައްޓާ. ތައްޔާރުވުމުން، ނަތީއްޖާ ޝާއިއުކޮށް ވޯޓު ބަންދުކުރުމަށް 'ވޯޓުގެ ނަތީއްޖާ ޝާއިއުކުރޭ' ހިޔާރުކުރައްވާ. ",
"app.poll.dragDropPollInstruction": "ވޯޓުގެ ވެލިއުތައް ފުރުމަށް، ވޯޓުގެ ވެލިއުތައް ހިމެނޭ ޓެކްސްޓް ފައިލެއް ފާހަގަކޮށްފައިވާ ފިލްޑަށް ޑްރޭގްކޮށްލާ", "app.poll.dragDropPollInstruction": "ވޯޓުގެ ވެލިއުތައް ފުރުމަށް، ވޯޓުގެ ވެލިއުތައް ހިމެނޭ ޓެކްސްޓް ފައިލެއް ފާހަގަކޮށްފައިވާ ފިލްޑަށް ޑްރޭގްކޮށްލާ",
"app.poll.customPollTextArea": "ވޯޓުގެ ވެލިއުތައް ފުރާލާ", "app.poll.customPollTextArea": "ވޯޓުގެ ވެލިއުތައް ފުރާލާ",
"app.poll.backLabel": "ވޯޓެއް ފަށާ", "app.poll.backLabel": "ވޯޓެއް ފަށާ",
@ -601,7 +601,6 @@
"app.lock-viewers.button.apply": "ބަދަލު ގެނޭ", "app.lock-viewers.button.apply": "ބަދަލު ގެނޭ",
"app.lock-viewers.button.cancel": "ކެންސަލްކޮށްލާ", "app.lock-viewers.button.cancel": "ކެންސަލްކޮށްލާ",
"app.lock-viewers.locked": "ތަޅުލާފައި", "app.lock-viewers.locked": "ތަޅުލާފައި",
"app.lock-viewers.unlocked": "ތަޅުހުޅުވާފައި",
"app.guest-policy.ariaTitle": "މެހެމާނުންގެ ޕޮލިސީ ސެޓިންގސް މޯޑަލް", "app.guest-policy.ariaTitle": "މެހެމާނުންގެ ޕޮލިސީ ސެޓިންގސް މޯޑަލް",
"app.guest-policy.title": "މެހެމާނުންގެ ޕޮލިސީ", "app.guest-policy.title": "މެހެމާނުންގެ ޕޮލިސީ",
"app.guest-policy.description": "ބައްދަލުވުމުގެ މެހެމާނުންގެ ޕޮލިސީ ޚިޔާރުތައް ބަދަލުކުރޭ", "app.guest-policy.description": "ބައްދަލުވުމުގެ މެހެމާނުންގެ ޕޮލިސީ ޚިޔާރުތައް ބަދަލުކުރޭ",

View File

@ -662,7 +662,6 @@
"app.lock-viewers.button.apply": "Εφαρμογή", "app.lock-viewers.button.apply": "Εφαρμογή",
"app.lock-viewers.button.cancel": "Ακύρωση", "app.lock-viewers.button.cancel": "Ακύρωση",
"app.lock-viewers.locked": "Κλειδωμένο", "app.lock-viewers.locked": "Κλειδωμένο",
"app.lock-viewers.unlocked": "Μη Κλειδωμένο",
"app.guest-policy.ariaTitle": "Τυπικές ρυθμίσεις πολιτικής για επισκέπτη", "app.guest-policy.ariaTitle": "Τυπικές ρυθμίσεις πολιτικής για επισκέπτη",
"app.guest-policy.title": "Πολιτική επισκεπτών", "app.guest-policy.title": "Πολιτική επισκεπτών",
"app.guest-policy.description": "Αλλαγή ρυθμίσεων πολιτικής συνεδρίας για επισκέπτη", "app.guest-policy.description": "Αλλαγή ρυθμίσεων πολιτικής συνεδρίας για επισκέπτη",

View File

@ -690,6 +690,10 @@
"app.shortcut-help.toggleFullscreen": "Toggle Full-screen (Presenter)", "app.shortcut-help.toggleFullscreen": "Toggle Full-screen (Presenter)",
"app.shortcut-help.nextSlideDesc": "Next slide (Presenter)", "app.shortcut-help.nextSlideDesc": "Next slide (Presenter)",
"app.shortcut-help.previousSlideDesc": "Previous slide (Presenter)", "app.shortcut-help.previousSlideDesc": "Previous slide (Presenter)",
"app.shortcut-help.togglePanKey": "Spacebar",
"app.shortcut-help.toggleFullscreenKey": "Enter",
"app.shortcut-help.nextSlideKey": "Right Arrow",
"app.shortcut-help.previousSlideKey": "Left Arrow",
"app.lock-viewers.title": "Lock viewers", "app.lock-viewers.title": "Lock viewers",
"app.lock-viewers.description": "These options enable you to restrict viewers from using specific features.", "app.lock-viewers.description": "These options enable you to restrict viewers from using specific features.",
"app.lock-viewers.featuresLable": "Feature", "app.lock-viewers.featuresLable": "Feature",
@ -929,6 +933,12 @@
"app.createBreakoutRoom.setTimeCancel": "Cancel", "app.createBreakoutRoom.setTimeCancel": "Cancel",
"app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "The breakout rooms duration can't exceed the meeting remaining time.", "app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "The breakout rooms duration can't exceed the meeting remaining time.",
"app.createBreakoutRoom.roomNameInputDesc": "Updates breakout room name", "app.createBreakoutRoom.roomNameInputDesc": "Updates breakout room name",
"app.updateBreakoutRoom.modalDesc": "To update or invite a user, simply drag them into the desired room.",
"app.updateBreakoutRoom.cancelLabel": "Cancel",
"app.updateBreakoutRoom.title": "Update Breakout Rooms",
"app.updateBreakoutRoom.confirm": "Apply",
"app.updateBreakoutRoom.userChangeRoomNotification": "You were moved to room {0}.",
"app.update.resetRoom": "Reset user room",
"app.externalVideo.start": "Share a new video", "app.externalVideo.start": "Share a new video",
"app.externalVideo.title": "Share an external video", "app.externalVideo.title": "Share an external video",
"app.externalVideo.input": "External Video URL", "app.externalVideo.input": "External Video URL",
@ -1059,13 +1069,15 @@
"app.learningDashboard.statusTimelineTable.thumbnail": "Presentation thumbnail", "app.learningDashboard.statusTimelineTable.thumbnail": "Presentation thumbnail",
"app.learningDashboard.errors.invalidToken": "Invalid session token", "app.learningDashboard.errors.invalidToken": "Invalid session token",
"app.learningDashboard.errors.dataUnavailable": "Data is no longer available", "app.learningDashboard.errors.dataUnavailable": "Data is no longer available",
"mobileApp.portals.list.empty.label": "Please add portals.", "mobileApp.portals.list.empty.addFirstPortal.label": "Add your first portal using the button above,",
"mobileApp.portals.list.add.button.label": "New Portal", "mobileApp.portals.list.empty.orUseOurDemoServer.label": "or use our demo server.",
"mobileApp.portals.list.add.button.label": "Add portal",
"mobileApp.portals.fields.name.label": "Portal Name", "mobileApp.portals.fields.name.label": "Portal Name",
"mobileApp.portals.fields.name.placeholder": "BigBlueButton demo", "mobileApp.portals.fields.name.placeholder": "BigBlueButton demo",
"mobileApp.portals.fields.url.label": "Server URL", "mobileApp.portals.fields.url.label": "Server URL",
"mobileApp.portals.addPortalPopup.confirm.button.label": "Add Portal", "mobileApp.portals.addPortalPopup.confirm.button.label": "Save",
"mobileApp.portals.drawerNavigation.button.label": "Portals", "mobileApp.portals.drawerNavigation.button.label": "Portals",
"mobileApp.portals.addPortalPopup.validation.emptyFilds": "Empty Fields", "mobileApp.portals.addPortalPopup.validation.emptyFields": "Required Fields",
"mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Name Already Exists" "mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Name already in use",
"mobileApp.portals.addPortalPopup.validation.urlInvalid": "Error trying to load the page - check URL and network connection"
} }

View File

@ -528,7 +528,6 @@
"app.lock-viewers.button.apply": "Apliki", "app.lock-viewers.button.apply": "Apliki",
"app.lock-viewers.button.cancel": "Nuligi", "app.lock-viewers.button.cancel": "Nuligi",
"app.lock-viewers.locked": "Malebligite", "app.lock-viewers.locked": "Malebligite",
"app.lock-viewers.unlocked": "Ebligite",
"app.connection-status.ariaTitle": "Dialogo pri konektostato", "app.connection-status.ariaTitle": "Dialogo pri konektostato",
"app.connection-status.title": "Konektostato", "app.connection-status.title": "Konektostato",
"app.connection-status.description": "Vidi la konektostaton de uzantoj", "app.connection-status.description": "Vidi la konektostaton de uzantoj",

View File

@ -228,7 +228,7 @@
"app.poll.optionErr": "Introducir una opción a la votación/encuesta", "app.poll.optionErr": "Introducir una opción a la votación/encuesta",
"app.poll.t": "Verdadero", "app.poll.t": "Verdadero",
"app.poll.f": "Falso", "app.poll.f": "Falso",
"app.poll.tf": "Verdadero / Falso", "app.poll.tf": "Verdadero / Falseo",
"app.poll.y": "Sí", "app.poll.y": "Sí",
"app.poll.n": "No", "app.poll.n": "No",
"app.poll.abstention": "Abstención", "app.poll.abstention": "Abstención",
@ -602,7 +602,6 @@
"app.lock-viewers.button.apply": "Aplicar", "app.lock-viewers.button.apply": "Aplicar",
"app.lock-viewers.button.cancel": "Cancelar", "app.lock-viewers.button.cancel": "Cancelar",
"app.lock-viewers.locked": "Bloqueado", "app.lock-viewers.locked": "Bloqueado",
"app.lock-viewers.unlocked": "Desbloqueado",
"app.guest-policy.ariaTitle": "Modo de configuración de la política de invitados", "app.guest-policy.ariaTitle": "Modo de configuración de la política de invitados",
"app.guest-policy.title": "Política de invitados", "app.guest-policy.title": "Política de invitados",
"app.guest-policy.description": "Cambiar la configuración de la política de invitados a la reunión", "app.guest-policy.description": "Cambiar la configuración de la política de invitados a la reunión",

View File

@ -600,7 +600,6 @@
"app.lock-viewers.button.apply": "Aplicar", "app.lock-viewers.button.apply": "Aplicar",
"app.lock-viewers.button.cancel": "Cancelar", "app.lock-viewers.button.cancel": "Cancelar",
"app.lock-viewers.locked": "Bloqueado", "app.lock-viewers.locked": "Bloqueado",
"app.lock-viewers.unlocked": "Desbloqueado",
"app.guest-policy.ariaTitle": "Modo de configuración de la política de invitados", "app.guest-policy.ariaTitle": "Modo de configuración de la política de invitados",
"app.guest-policy.title": "Política de invitados", "app.guest-policy.title": "Política de invitados",
"app.guest-policy.description": "Cambiar la configuración de la política de invitados a la reunión", "app.guest-policy.description": "Cambiar la configuración de la política de invitados a la reunión",

View File

@ -132,6 +132,8 @@
"app.userList.userOptions.savedNames.title": "Kasutajate nimekiri koosolekul {0} kell {1}", "app.userList.userOptions.savedNames.title": "Kasutajate nimekiri koosolekul {0} kell {1}",
"app.userList.userOptions.sortedFirstName.heading": "Sorteeritult eesnime järgi:", "app.userList.userOptions.sortedFirstName.heading": "Sorteeritult eesnime järgi:",
"app.userList.userOptions.sortedLastName.heading": "Sorteeritult perekonnanime järgi:", "app.userList.userOptions.sortedLastName.heading": "Sorteeritult perekonnanime järgi:",
"app.userList.userOptions.hideViewersCursor": "Vaatajate kursorid on lukustatud",
"app.userList.userOptions.showViewersCursor": "Vaatajate kursorid on vabastatud",
"app.media.label": "Meedia", "app.media.label": "Meedia",
"app.media.autoplayAlertDesc": "Luba juurdepääs", "app.media.autoplayAlertDesc": "Luba juurdepääs",
"app.media.screenshare.start": "Ekraanijagamine algas", "app.media.screenshare.start": "Ekraanijagamine algas",
@ -215,7 +217,7 @@
"app.presentationUploder.fileToUpload": "Ootab üleslaadimist...", "app.presentationUploder.fileToUpload": "Ootab üleslaadimist...",
"app.presentationUploder.currentBadge": "Aktiivne", "app.presentationUploder.currentBadge": "Aktiivne",
"app.presentationUploder.rejectedError": "Valitud fail(id) lükati tagasi. Palun kontrolli failitüüpi.", "app.presentationUploder.rejectedError": "Valitud fail(id) lükati tagasi. Palun kontrolli failitüüpi.",
"app.presentationUploder.connectionClosedError": "Katkestatud halva ühenduvuse tõttu.", "app.presentationUploder.connectionClosedError": "Katkestatud halva ühenduvuse tõttu. Palun proovi uuesti.",
"app.presentationUploder.upload.progress": "Üleslaadimine ({0}%)", "app.presentationUploder.upload.progress": "Üleslaadimine ({0}%)",
"app.presentationUploder.upload.413": "Fail on liiga suur, maksimaalne suurus on {0} MB.", "app.presentationUploder.upload.413": "Fail on liiga suur, maksimaalne suurus on {0} MB.",
"app.presentationUploder.genericError": "Oih, miskit läks valesti...", "app.presentationUploder.genericError": "Oih, miskit läks valesti...",
@ -562,6 +564,7 @@
"app.audio.audioSettings.descriptionLabel": "Pane tähele, et veebilehitsejas avaneb dialoogiaken, kus palutakse luba sinu mikrofoni jagamiseks.", "app.audio.audioSettings.descriptionLabel": "Pane tähele, et veebilehitsejas avaneb dialoogiaken, kus palutakse luba sinu mikrofoni jagamiseks.",
"app.audio.audioSettings.microphoneSourceLabel": "Mikrofoni sisend", "app.audio.audioSettings.microphoneSourceLabel": "Mikrofoni sisend",
"app.audio.audioSettings.speakerSourceLabel": "Kõlarite sisend", "app.audio.audioSettings.speakerSourceLabel": "Kõlarite sisend",
"app.audio.audioSettings.testSpeakerLabel": "Testi kõlarit",
"app.audio.audioSettings.microphoneStreamLabel": "Audiovoo helitugevus", "app.audio.audioSettings.microphoneStreamLabel": "Audiovoo helitugevus",
"app.audio.audioSettings.retryLabel": "Uuesti", "app.audio.audioSettings.retryLabel": "Uuesti",
"app.audio.listenOnly.backLabel": "Tagasi", "app.audio.listenOnly.backLabel": "Tagasi",
@ -695,7 +698,7 @@
"app.lock-viewers.button.apply": "Kinnita", "app.lock-viewers.button.apply": "Kinnita",
"app.lock-viewers.button.cancel": "Tühista", "app.lock-viewers.button.cancel": "Tühista",
"app.lock-viewers.locked": "Lukustatud", "app.lock-viewers.locked": "Lukustatud",
"app.lock-viewers.unlocked": "Avatud", "app.lock-viewers.hideViewersCursor": "Näita teiste vaatajate kursoreid",
"app.guest-policy.ariaTitle": "Külaliste reeglite seadistamise aken", "app.guest-policy.ariaTitle": "Külaliste reeglite seadistamise aken",
"app.guest-policy.title": "Külaliste reeglid", "app.guest-policy.title": "Külaliste reeglid",
"app.guest-policy.description": "Muuda koosoleku külaliste reegleid", "app.guest-policy.description": "Muuda koosoleku külaliste reegleid",
@ -952,6 +955,7 @@
"playback.button.search.aria": "Otsi", "playback.button.search.aria": "Otsi",
"playback.button.section.aria": "Külgsektsioon", "playback.button.section.aria": "Külgsektsioon",
"playback.button.swap.aria": "Vaheta sisu", "playback.button.swap.aria": "Vaheta sisu",
"playback.button.theme.aria": "Lülita teemat",
"playback.error.wrapper.aria": "Vigade ala", "playback.error.wrapper.aria": "Vigade ala",
"playback.loader.wrapper.aria": "Laadija ala", "playback.loader.wrapper.aria": "Laadija ala",
"playback.player.wrapper.aria": "Mängija ala", "playback.player.wrapper.aria": "Mängija ala",

View File

@ -6,9 +6,10 @@
"app.chat.disconnected": "Deskonektatuta zaude, mezuak ezin dira bidali", "app.chat.disconnected": "Deskonektatuta zaude, mezuak ezin dira bidali",
"app.chat.locked": "Txata blokeatuta dago, mezuak ezin dira bidali", "app.chat.locked": "Txata blokeatuta dago, mezuak ezin dira bidali",
"app.chat.inputLabel": "Txatean {0} mezu sartu dira", "app.chat.inputLabel": "Txatean {0} mezu sartu dira",
"app.chat.inputPlaceholder": "Mezuak {0}",
"app.chat.titlePublic": "Txat publikoa", "app.chat.titlePublic": "Txat publikoa",
"app.chat.titlePrivate": "Txat pribatua {0}-(r)ekin", "app.chat.titlePrivate": "Txat pribatua {0}-ekin",
"app.chat.partnerDisconnected": "{0}-(e)k bilera utzi du", "app.chat.partnerDisconnected": "{0}-k bilera utzi du",
"app.chat.closeChatLabel": "Itxi {0}", "app.chat.closeChatLabel": "Itxi {0}",
"app.chat.hideChatLabel": "Ezkutatu {0}", "app.chat.hideChatLabel": "Ezkutatu {0}",
"app.chat.moreMessages": "Mezu gehiago behean", "app.chat.moreMessages": "Mezu gehiago behean",
@ -43,6 +44,8 @@
"app.captions.menu.previewLabel": "Aurreikusi", "app.captions.menu.previewLabel": "Aurreikusi",
"app.captions.menu.cancelLabel": "Utzi", "app.captions.menu.cancelLabel": "Utzi",
"app.captions.hide": "Ezkutatu azpitituluak", "app.captions.hide": "Ezkutatu azpitituluak",
"app.captions.ownership": "Hartu kontrola",
"app.captions.ownershipTooltip": "{0} azpitituluen jabe gisa hartuko zaituzte",
"app.captions.dictationStart": "Hasi diktaketa", "app.captions.dictationStart": "Hasi diktaketa",
"app.captions.dictationStop": "Gelditu diktaketa", "app.captions.dictationStop": "Gelditu diktaketa",
"app.captions.dictationOnDesc": "Aktibatu hizketa-ezagutzea", "app.captions.dictationOnDesc": "Aktibatu hizketa-ezagutzea",
@ -129,6 +132,8 @@
"app.userList.userOptions.savedNames.title": "Bileraren erabiltzaile zerrenda {0}/{1}", "app.userList.userOptions.savedNames.title": "Bileraren erabiltzaile zerrenda {0}/{1}",
"app.userList.userOptions.sortedFirstName.heading": "Izenaren arabera ordenatuta:", "app.userList.userOptions.sortedFirstName.heading": "Izenaren arabera ordenatuta:",
"app.userList.userOptions.sortedLastName.heading": "Abizenaren arabera ordenatuta:", "app.userList.userOptions.sortedLastName.heading": "Abizenaren arabera ordenatuta:",
"app.userList.userOptions.hideViewersCursor": "Ikusleen kurtsoreak blokeatuta daude",
"app.userList.userOptions.showViewersCursor": "Ikusleen kurtsoreak desblokeatuta daude",
"app.media.label": "Multimedia", "app.media.label": "Multimedia",
"app.media.autoplayAlertDesc": "Baimendu sartzea", "app.media.autoplayAlertDesc": "Baimendu sartzea",
"app.media.screenshare.start": "Pantaila partekatzea hasi da", "app.media.screenshare.start": "Pantaila partekatzea hasi da",
@ -196,6 +201,7 @@
"app.presentation.presentationToolbar.fitToWidth": "Doitu zabalera", "app.presentation.presentationToolbar.fitToWidth": "Doitu zabalera",
"app.presentation.presentationToolbar.fitToPage": "Doitu orrira", "app.presentation.presentationToolbar.fitToPage": "Doitu orrira",
"app.presentation.presentationToolbar.goToSlide": "{0} diapositiba", "app.presentation.presentationToolbar.goToSlide": "{0} diapositiba",
"app.presentation.placeholder": "Une honetan ez dago aurkezpen aktiborik",
"app.presentationUploder.title": "Aurkezpena", "app.presentationUploder.title": "Aurkezpena",
"app.presentationUploder.message": "Aurkezle gisa edozein bulegoko dokumentu edo PDF fitxategi igotzeko gaitasuna duzu. Emaitzarik onena lortzeko PDF fitxategia gomendatzen dugu. Ziurtatu ezazu aurkezpena hautatuta dagoela eskuinean dagoen kontrol-zirkulua erabiliz.", "app.presentationUploder.message": "Aurkezle gisa edozein bulegoko dokumentu edo PDF fitxategi igotzeko gaitasuna duzu. Emaitzarik onena lortzeko PDF fitxategia gomendatzen dugu. Ziurtatu ezazu aurkezpena hautatuta dagoela eskuinean dagoen kontrol-zirkulua erabiliz.",
"app.presentationUploder.extraHint": "GARRANTZITSUA: fitxategi bakoitzak ezin ditu {0} MB eta {1} orrialde baino gehiago izan.", "app.presentationUploder.extraHint": "GARRANTZITSUA: fitxategi bakoitzak ezin ditu {0} MB eta {1} orrialde baino gehiago izan.",
@ -357,6 +363,7 @@
"app.endMeeting.noLabel": "Ez", "app.endMeeting.noLabel": "Ez",
"app.about.title": "Honi buruz", "app.about.title": "Honi buruz",
"app.about.version": "Bezeroaren bertsioa:", "app.about.version": "Bezeroaren bertsioa:",
"app.about.version_label": "BigBlueButton-en bertsioa:",
"app.about.copyright": "Copyright:", "app.about.copyright": "Copyright:",
"app.about.confirmLabel": "Ados", "app.about.confirmLabel": "Ados",
"app.about.confirmDesc": "Ados", "app.about.confirmDesc": "Ados",
@ -417,6 +424,7 @@
"app.settings.dataSavingTab.description": "Zure banda zabalera aurrezteko, doitu ezazu une honetan erakusten dena.", "app.settings.dataSavingTab.description": "Zure banda zabalera aurrezteko, doitu ezazu une honetan erakusten dena.",
"app.settings.save-notification.label": "Ezarpenak gorde dira", "app.settings.save-notification.label": "Ezarpenak gorde dira",
"app.statusNotifier.lowerHands": "Jaitsi eskuak", "app.statusNotifier.lowerHands": "Jaitsi eskuak",
"app.statusNotifier.lowerHandDescOneUser": "Jaitsi {0}-ren eskua",
"app.statusNotifier.raisedHandsTitle": "Altxatutako eskuak", "app.statusNotifier.raisedHandsTitle": "Altxatutako eskuak",
"app.statusNotifier.raisedHandDesc": "{0}-k altxatu dute eskua", "app.statusNotifier.raisedHandDesc": "{0}-k altxatu dute eskua",
"app.statusNotifier.raisedHandDescOneUser": "{0} esku altxatuta", "app.statusNotifier.raisedHandDescOneUser": "{0} esku altxatuta",
@ -427,7 +435,7 @@
"app.talkingIndicator.isTalking" : "{0} hitz egiten ari da", "app.talkingIndicator.isTalking" : "{0} hitz egiten ari da",
"app.talkingIndicator.moreThanMaxIndicatorsTalking" : "{0}+ hitz egiten ari dira", "app.talkingIndicator.moreThanMaxIndicatorsTalking" : "{0}+ hitz egiten ari dira",
"app.talkingIndicator.moreThanMaxIndicatorsWereTalking" : "{0}+ hitz egiten ari ziren", "app.talkingIndicator.moreThanMaxIndicatorsWereTalking" : "{0}+ hitz egiten ari ziren",
"app.talkingIndicator.wasTalking" : "{0}-(e)k hitz egiteari utzi dio", "app.talkingIndicator.wasTalking" : "{0}-k hitz egiteari utzi dio",
"app.actionsBar.actionsDropdown.actionsLabel": "Ekintzak", "app.actionsBar.actionsDropdown.actionsLabel": "Ekintzak",
"app.actionsBar.actionsDropdown.presentationLabel": "Kudeatu aurkezpenak", "app.actionsBar.actionsDropdown.presentationLabel": "Kudeatu aurkezpenak",
"app.actionsBar.actionsDropdown.initPollLabel": "Hasi inkesta bat", "app.actionsBar.actionsDropdown.initPollLabel": "Hasi inkesta bat",
@ -453,7 +461,7 @@
"app.actionsBar.emojiMenu.awayLabel": "Kanpoan", "app.actionsBar.emojiMenu.awayLabel": "Kanpoan",
"app.actionsBar.emojiMenu.awayDesc": "Aldatu zure egoera: kanpoan", "app.actionsBar.emojiMenu.awayDesc": "Aldatu zure egoera: kanpoan",
"app.actionsBar.emojiMenu.raiseHandLabel": "Altxa eskua", "app.actionsBar.emojiMenu.raiseHandLabel": "Altxa eskua",
"app.actionsBar.emojiMenu.lowerHandLabel": "Jaitsi eskuka", "app.actionsBar.emojiMenu.lowerHandLabel": "Jaitsi eskua",
"app.actionsBar.emojiMenu.raiseHandDesc": "Altxatu eskua hitza eskatzeko", "app.actionsBar.emojiMenu.raiseHandDesc": "Altxatu eskua hitza eskatzeko",
"app.actionsBar.emojiMenu.neutralLabel": "Zalantzan", "app.actionsBar.emojiMenu.neutralLabel": "Zalantzan",
"app.actionsBar.emojiMenu.neutralDesc": "Aldatu zure egoera: zalantzan", "app.actionsBar.emojiMenu.neutralDesc": "Aldatu zure egoera: zalantzan",
@ -498,6 +506,9 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Aukeratu azpitalde baten gela bertara sartzeko", "app.breakoutJoinConfirmation.freeJoinMessage": "Aukeratu azpitalde baten gela bertara sartzeko",
"app.breakoutTimeRemainingMessage": "Azpitaldearen gelari geratzen zaion denbora: {0}", "app.breakoutTimeRemainingMessage": "Azpitaldearen gelari geratzen zaion denbora: {0}",
"app.breakoutWillCloseMessage": "Denbora agortu da. Azpitaldearen gela laster itxiko da", "app.breakoutWillCloseMessage": "Denbora agortu da. Azpitaldearen gela laster itxiko da",
"app.breakout.dropdown.manageDuration": "Kudeatu iraupena",
"app.breakout.dropdown.destroyAll": "Bukatu azpitaldeak",
"app.breakout.dropdown.options": "Azpitaldeen aukerak",
"app.calculatingBreakoutTimeRemaining": "Geratzen den denbora kalkulatzen...", "app.calculatingBreakoutTimeRemaining": "Geratzen den denbora kalkulatzen...",
"app.audioModal.ariaTitle": "Erabili audio modala", "app.audioModal.ariaTitle": "Erabili audio modala",
"app.audioModal.microphoneLabel": "Mikrofonoa", "app.audioModal.microphoneLabel": "Mikrofonoa",
@ -609,6 +620,10 @@
"app.guest.guestDeny": "Gonbidatuak uko egin dio bileran sartzeari.", "app.guest.guestDeny": "Gonbidatuak uko egin dio bileran sartzeari.",
"app.guest.seatWait": "Gonbidatua bilerako aulki baten zain dago.", "app.guest.seatWait": "Gonbidatua bilerako aulki baten zain dago.",
"app.guest.allow": "Gonbidatua onartu da eta bilerara sartu da", "app.guest.allow": "Gonbidatua onartu da eta bilerara sartu da",
"app.guest.firstPositionInWaitingQueue": "Ilaran lehena zara!",
"app.guest.positionInWaitingQueue": "Zure uneko posizioa itxaron-ilaran:",
"app.guest.guestInvalid": "Erabiltzaile gonbidatua baliogabea da",
"app.guest.meetingForciblyEnded": "Ezin duzu sartu dagoeneko bukatu-arazi den bilera batean",
"app.userList.guest.waitingUsers": "Itxaron zerrenda", "app.userList.guest.waitingUsers": "Itxaron zerrenda",
"app.userList.guest.waitingUsersTitle": "Erabiltzaileen kudeaketa", "app.userList.guest.waitingUsersTitle": "Erabiltzaileen kudeaketa",
"app.userList.guest.optionTitle": "Berrikusi zain dauden erabiltzaileak", "app.userList.guest.optionTitle": "Berrikusi zain dauden erabiltzaileak",
@ -617,11 +632,14 @@
"app.userList.guest.allowEveryone": "Onartu guztiak", "app.userList.guest.allowEveryone": "Onartu guztiak",
"app.userList.guest.denyEveryone": "Ukatu guztiak", "app.userList.guest.denyEveryone": "Ukatu guztiak",
"app.userList.guest.pendingUsers": "{0} erabiltzaile zain", "app.userList.guest.pendingUsers": "{0} erabiltzaile zain",
"app.userList.guest.noPendingUsers": "Ez dago zain dagoen erabiltzailerik...",
"app.userList.guest.pendingGuestUsers": "{0} gonbidatu zain", "app.userList.guest.pendingGuestUsers": "{0} gonbidatu zain",
"app.userList.guest.pendingGuestAlert": "Saioan sartu da eta zure onarpenaren zain dago", "app.userList.guest.pendingGuestAlert": "Saioan sartu da eta zure onarpenaren zain dago",
"app.userList.guest.rememberChoice": "Gogoratu aukeratutakoa", "app.userList.guest.rememberChoice": "Gogoratu aukeratutakoa",
"app.userList.guest.emptyMessage": "Une honetan ez dago mezurik", "app.userList.guest.emptyMessage": "Une honetan ez dago mezurik",
"app.userList.guest.inputPlaceholder": "Mezua gonbidatuen atondorako", "app.userList.guest.inputPlaceholder": "Mezua gonbidatuen atondorako",
"app.userList.guest.privateInputPlaceholder": "Mezua {0}-rentzat",
"app.userList.guest.privateMessageLabel": "Mezua",
"app.userList.guest.acceptLabel": "Onartu", "app.userList.guest.acceptLabel": "Onartu",
"app.userList.guest.denyLabel": "Ukatu", "app.userList.guest.denyLabel": "Ukatu",
"app.user-info.title": "Direktorio bilatzea", "app.user-info.title": "Direktorio bilatzea",
@ -634,6 +652,9 @@
"app.toast.meetingMuteOn.label": "Erabiltzaile guztiak isilarazi dira", "app.toast.meetingMuteOn.label": "Erabiltzaile guztiak isilarazi dira",
"app.toast.meetingMuteOff.label": "Bileraren isilaraztea itzali da", "app.toast.meetingMuteOff.label": "Bileraren isilaraztea itzali da",
"app.toast.setEmoji.raiseHand": "Eskua altxatu duzu", "app.toast.setEmoji.raiseHand": "Eskua altxatu duzu",
"app.toast.setEmoji.lowerHand": "Zure eskua jaitsi dute",
"app.toast.promotedLabel": "Moderatzaile rola eman dizute",
"app.toast.demotedLabel": "Ikusle rolera jaitsi zaituzte",
"app.notification.recordingStart": "Saio hau grabatzen ari da", "app.notification.recordingStart": "Saio hau grabatzen ari da",
"app.notification.recordingStop": "Saioa ez da grabatzen ari", "app.notification.recordingStop": "Saioa ez da grabatzen ari",
"app.notification.recordingPaused": "Saio hau ez da jada grabatzen ari", "app.notification.recordingPaused": "Saio hau ez da jada grabatzen ari",
@ -676,7 +697,7 @@
"app.lock-viewers.button.apply": "Aplikatu", "app.lock-viewers.button.apply": "Aplikatu",
"app.lock-viewers.button.cancel": "Utzi", "app.lock-viewers.button.cancel": "Utzi",
"app.lock-viewers.locked": "Blokeatua", "app.lock-viewers.locked": "Blokeatua",
"app.lock-viewers.unlocked": "Desblokeatuta", "app.lock-viewers.hideViewersCursor": "Ikusi beste ikusleen kurtsoreak",
"app.guest-policy.ariaTitle": "Gonbidatuen gidalerroen ezarpen modala", "app.guest-policy.ariaTitle": "Gonbidatuen gidalerroen ezarpen modala",
"app.guest-policy.title": "Gonbidapen gidalerroak", "app.guest-policy.title": "Gonbidapen gidalerroak",
"app.guest-policy.description": "Aldatu bileraren gonbidapen gidalerroen ezarpenak", "app.guest-policy.description": "Aldatu bileraren gonbidapen gidalerroen ezarpenak",
@ -689,15 +710,26 @@
"app.connection-status.description": "Ikusi erabiltzaileen konexio egoera", "app.connection-status.description": "Ikusi erabiltzaileen konexio egoera",
"app.connection-status.empty": "Une honetan ez dago konexio huts egiteen txostenik", "app.connection-status.empty": "Une honetan ez dago konexio huts egiteen txostenik",
"app.connection-status.more": "gehiago", "app.connection-status.more": "gehiago",
"app.connection-status.copy": "Kopiatu estatistikak",
"app.connection-status.copied": "Kopiatu dira!", "app.connection-status.copied": "Kopiatu dira!",
"app.connection-status.jitter": "Bibrazioa", "app.connection-status.jitter": "Bibrazioa",
"app.connection-status.label": "Konexioaren egoera", "app.connection-status.label": "Konexioaren egoera",
"app.connection-status.settings": "Zure ezarpenak doitzen",
"app.connection-status.no": "Ez", "app.connection-status.no": "Ez",
"app.connection-status.notification": "Zure konexioaren galera antzeman da", "app.connection-status.notification": "Zure konexioaren galera antzeman da",
"app.connection-status.offline": "Lineaz kanpo", "app.connection-status.offline": "Lineaz kanpo",
"app.connection-status.audioUploadRate": "Audioaren igoera-tasa",
"app.connection-status.audioDownloadRate": "Audioaren jaitsiera-tasa",
"app.connection-status.videoUploadRate": "Bideoaren igoera-tasa",
"app.connection-status.videoDownloadRate": "Bideoaren jaitsiera-tasa",
"app.connection-status.lostPackets": "Pakete galduak", "app.connection-status.lostPackets": "Pakete galduak",
"app.connection-status.usingTurn": "TXANDA erabiltzen", "app.connection-status.usingTurn": "TXANDA erabiltzen",
"app.connection-status.yes": "Bai", "app.connection-status.yes": "Bai",
"app.connection-status.connectionStats": "Konexioaren estatistikak",
"app.connection-status.myLogs": "Nire erregistroak",
"app.connection-status.sessionLogs": "Saioaren erregistroak",
"app.connection-status.next": "Hurrengo orria",
"app.connection-status.prev": "Aurreko orria",
"app.learning-dashboard.label": "Ikaskuntzaren estatistiken panela", "app.learning-dashboard.label": "Ikaskuntzaren estatistiken panela",
"app.learning-dashboard.description": "Ireki arbela erabiltzaileen aktibitateekin", "app.learning-dashboard.description": "Ireki arbela erabiltzaileen aktibitateekin",
"app.learning-dashboard.clickHereToOpen": "Ireki ikaskuntza estatistiken panela", "app.learning-dashboard.clickHereToOpen": "Ireki ikaskuntza estatistiken panela",
@ -768,6 +800,8 @@
"app.video.virtualBackground.background": "Atzeko planoa", "app.video.virtualBackground.background": "Atzeko planoa",
"app.video.virtualBackground.genericError": "Kamera efektuaren aplikazioak huts egin du. Saiatu berriro", "app.video.virtualBackground.genericError": "Kamera efektuaren aplikazioak huts egin du. Saiatu berriro",
"app.video.virtualBackground.camBgAriaDesc": "{0} ezartzen du web-kameraren atzeko plano birtuala", "app.video.virtualBackground.camBgAriaDesc": "{0} ezartzen du web-kameraren atzeko plano birtuala",
"app.video.camCapReached": "Ezin duzu kamera gehiago partekatu",
"app.video.meetingCamCapReached": "Bilera aldibereko kameren mugara iritsi da",
"app.video.dropZoneLabel": "Jaregin hona", "app.video.dropZoneLabel": "Jaregin hona",
"app.fullscreenButton.label": "Jarri {0} pantaila osoan", "app.fullscreenButton.label": "Jarri {0} pantaila osoan",
"app.fullscreenUndoButton.label": "Desegin {0} pantaila osoa", "app.fullscreenUndoButton.label": "Desegin {0} pantaila osoa",
@ -857,7 +891,11 @@
"app.createBreakoutRoom.durationInMinutes": "Iraupena (minutuak)", "app.createBreakoutRoom.durationInMinutes": "Iraupena (minutuak)",
"app.createBreakoutRoom.randomlyAssign": "Ausazko esleipena", "app.createBreakoutRoom.randomlyAssign": "Ausazko esleipena",
"app.createBreakoutRoom.randomlyAssignDesc": "Azpitaldeetarako erabiltzaileak ausaz esleitzen ditu", "app.createBreakoutRoom.randomlyAssignDesc": "Azpitaldeetarako erabiltzaileak ausaz esleitzen ditu",
"app.createBreakoutRoom.resetAssignments": "Berrezarri esleipenak",
"app.createBreakoutRoom.resetAssignmentsDesc": "Berrezarri erabiltzaileen gelaren esleipen guztiak",
"app.createBreakoutRoom.endAllBreakouts": "Itxi azpitaldeen gela guztiak", "app.createBreakoutRoom.endAllBreakouts": "Itxi azpitaldeen gela guztiak",
"app.createBreakoutRoom.chatTitleMsgAllRooms": "gela guztiak",
"app.createBreakoutRoom.msgToBreakoutsSent": "Mezua {0} azpigeletara bidali da",
"app.createBreakoutRoom.roomName": "{0} (Gela - {1})", "app.createBreakoutRoom.roomName": "{0} (Gela - {1})",
"app.createBreakoutRoom.doneLabel": "Eginda", "app.createBreakoutRoom.doneLabel": "Eginda",
"app.createBreakoutRoom.nextLabel": "Hurrengoa", "app.createBreakoutRoom.nextLabel": "Hurrengoa",
@ -872,6 +910,10 @@
"app.createBreakoutRoom.numberOfRoomsError": "Gela kopurua ez da baliozkoa", "app.createBreakoutRoom.numberOfRoomsError": "Gela kopurua ez da baliozkoa",
"app.createBreakoutRoom.duplicatedRoomNameError": "Gelaren izena ezin da bikoiztu.", "app.createBreakoutRoom.duplicatedRoomNameError": "Gelaren izena ezin da bikoiztu.",
"app.createBreakoutRoom.emptyRoomNameError": "Gelaren izena ezin da hutsik utzi.", "app.createBreakoutRoom.emptyRoomNameError": "Gelaren izena ezin da hutsik utzi.",
"app.createBreakoutRoom.setTimeInMinutes": "Ezarri iraupena (minututan)",
"app.createBreakoutRoom.setTimeLabel": "Aplikatu",
"app.createBreakoutRoom.setTimeCancel": "Utzi",
"app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "Azpitaldeen gelen iraupenak ezin du bilerari geratzen zaion denbora gainditu.",
"app.createBreakoutRoom.roomNameInputDesc": "Eguneratzen du azpitaldearen gelaren izena", "app.createBreakoutRoom.roomNameInputDesc": "Eguneratzen du azpitaldearen gelaren izena",
"app.externalVideo.start": "Partekatu bideo berri bat", "app.externalVideo.start": "Partekatu bideo berri bat",
"app.externalVideo.title": "Partekatu kanpoko bideo bat", "app.externalVideo.title": "Partekatu kanpoko bideo bat",
@ -912,9 +954,21 @@
"playback.button.search.aria": "Bilatu", "playback.button.search.aria": "Bilatu",
"playback.button.section.aria": "Alboko atala", "playback.button.section.aria": "Alboko atala",
"playback.button.swap.aria": "Aldatu edukia", "playback.button.swap.aria": "Aldatu edukia",
"playback.button.theme.aria": "Aldatu itxura",
"playback.error.wrapper.aria": "Erroreen eremua", "playback.error.wrapper.aria": "Erroreen eremua",
"playback.loader.wrapper.aria": "Kargatzailearen eremua", "playback.loader.wrapper.aria": "Kargatzailearen eremua",
"playback.player.wrapper.aria": "Erreproduzigailuaren eremua", "playback.player.wrapper.aria": "Erreproduzigailuaren eremua",
"playback.player.about.modal.shortcuts.title": "Laster-teklak",
"playback.player.about.modal.shortcuts.alt": "Alt",
"playback.player.about.modal.shortcuts.shift": "Mayus",
"playback.player.about.modal.shortcuts.fullscreen": "Pantaila osora",
"playback.player.about.modal.shortcuts.play": "Erreproduzitu/Pausatu",
"playback.player.about.modal.shortcuts.section": "Aldatu alboko atala",
"playback.player.about.modal.shortcuts.seek.backward": "Bilatu atzerantz",
"playback.player.about.modal.shortcuts.seek.forward": "Bilatu aurrerantz",
"playback.player.about.modal.shortcuts.skip.next": "Hurrengo diapositiba",
"playback.player.about.modal.shortcuts.skip.previous": "Aurreko diapositiba",
"playback.player.about.modal.shortcuts.swap": "Trukatu edukia",
"playback.player.chat.message.poll.name": "Inkestaren emaitza", "playback.player.chat.message.poll.name": "Inkestaren emaitza",
"playback.player.chat.message.poll.question": "Galdera", "playback.player.chat.message.poll.question": "Galdera",
"playback.player.chat.message.poll.options": "Aukerak", "playback.player.chat.message.poll.options": "Aukerak",
@ -923,6 +977,7 @@
"playback.player.chat.message.poll.option.abstention": "Abstentzioa", "playback.player.chat.message.poll.option.abstention": "Abstentzioa",
"playback.player.chat.message.poll.option.true": "Egia", "playback.player.chat.message.poll.option.true": "Egia",
"playback.player.chat.message.poll.option.false": "Gezurra", "playback.player.chat.message.poll.option.false": "Gezurra",
"playback.player.chat.message.video.name": "Kanpoko bideoa",
"playback.player.chat.wrapper.aria": "Txat eremua", "playback.player.chat.wrapper.aria": "Txat eremua",
"playback.player.notes.wrapper.aria": "Oharren eremua", "playback.player.notes.wrapper.aria": "Oharren eremua",
"playback.player.presentation.wrapper.aria": "Aurkezpenaren eremua", "playback.player.presentation.wrapper.aria": "Aurkezpenaren eremua",
@ -930,15 +985,32 @@
"playback.player.search.modal.title": "Bilatu", "playback.player.search.modal.title": "Bilatu",
"playback.player.search.modal.subtitle": "Aurkitu aurkezpenaren diapositiben edukia", "playback.player.search.modal.subtitle": "Aurkitu aurkezpenaren diapositiben edukia",
"playback.player.thumbnails.wrapper.aria": "Koadro txikien eremua", "playback.player.thumbnails.wrapper.aria": "Koadro txikien eremua",
"playback.player.webcams.wrapper.aria": "Web-kameren eremua",
"app.learningDashboard.dashboardTitle": "Ikaskuntzaren estatistiken panela", "app.learningDashboard.dashboardTitle": "Ikaskuntzaren estatistiken panela",
"app.learningDashboard.downloadSessionDataLabel": "Deskargatu saioaren datuak",
"app.learningDashboard.lastUpdatedLabel": "Azken eguneratzea:",
"app.learningDashboard.sessionDataDownloadedLabel": "Deskarga osatu da!",
"app.learningDashboard.shareButton": "Partekatu besterekin",
"app.learningDashboard.shareLinkCopied": "Esteka behar bezala kopiatu da!",
"app.learningDashboard.user": "Erabiltzailea", "app.learningDashboard.user": "Erabiltzailea",
"app.learningDashboard.indicators.meetingStatusEnded": "Bukatua", "app.learningDashboard.indicators.meetingStatusEnded": "Bukatua",
"app.learningDashboard.indicators.meetingStatusActive": "Aktiboa", "app.learningDashboard.indicators.meetingStatusActive": "Aktiboa",
"app.learningDashboard.indicators.usersOnline": "Erabiltzaile aktiboak", "app.learningDashboard.indicators.usersOnline": "Erabiltzaile aktiboak",
"app.learningDashboard.indicators.usersTotal": "Erabiltzaileak denetara", "app.learningDashboard.indicators.usersTotal": "Erabiltzaileak denetara",
"app.learningDashboard.indicators.polls": "Inkestak", "app.learningDashboard.indicators.polls": "Inkestak",
"app.learningDashboard.indicators.timeline": "Denbora-lerroa",
"app.learningDashboard.indicators.activityScore": "Jardueraren puntuazioa", "app.learningDashboard.indicators.activityScore": "Jardueraren puntuazioa",
"app.learningDashboard.indicators.duration": "Iraupena", "app.learningDashboard.indicators.duration": "Iraupena",
"app.learningDashboard.userDetails.startTime": "Hasiera ordua",
"app.learningDashboard.userDetails.endTime": "Bukaera ordua",
"app.learningDashboard.userDetails.joined": "Barruan",
"app.learningDashboard.userDetails.category": "Kategoria",
"app.learningDashboard.userDetails.average": "Batez beste",
"app.learningDashboard.userDetails.activityPoints": "Aktibitate puntuak",
"app.learningDashboard.userDetails.poll": "Inkesta",
"app.learningDashboard.userDetails.response": "Erantzuna",
"app.learningDashboard.userDetails.mostCommonAnswer": "Erantzun ohikoena",
"app.learningDashboard.userDetails.anonymousAnswer": "Inkesta anonimoa",
"app.learningDashboard.usersTable.title": "Ikuspegi orokorra", "app.learningDashboard.usersTable.title": "Ikuspegi orokorra",
"app.learningDashboard.usersTable.colOnline": "Lineako denbora", "app.learningDashboard.usersTable.colOnline": "Lineako denbora",
"app.learningDashboard.usersTable.colTalk": "Hizketako denbora", "app.learningDashboard.usersTable.colTalk": "Hizketako denbora",
@ -951,10 +1023,30 @@
"app.learningDashboard.usersTable.userStatusOnline": "Linean", "app.learningDashboard.usersTable.userStatusOnline": "Linean",
"app.learningDashboard.usersTable.userStatusOffline": "Lineatik kanpo", "app.learningDashboard.usersTable.userStatusOffline": "Lineatik kanpo",
"app.learningDashboard.usersTable.noUsers": "Oraindik ez dago erabiltzailerik", "app.learningDashboard.usersTable.noUsers": "Oraindik ez dago erabiltzailerik",
"app.learningDashboard.usersTable.name": "Izena",
"app.learningDashboard.usersTable.moderator": "Moderatzailea",
"app.learningDashboard.usersTable.pollVotes": "Botoak",
"app.learningDashboard.usersTable.join": "Sartu",
"app.learningDashboard.usersTable.left": "Irten",
"app.learningDashboard.usersTable.notAvailable": "Erantzunik ez",
"app.learningDashboard.pollsTable.title": "Inkestak",
"app.learningDashboard.pollsTable.anonymousAnswer": "Inkesta anonimoa (erantzun azken errenkadan)", "app.learningDashboard.pollsTable.anonymousAnswer": "Inkesta anonimoa (erantzun azken errenkadan)",
"app.learningDashboard.pollsTable.anonymousRowName": "Anonimoa", "app.learningDashboard.pollsTable.anonymousRowName": "Anonimoa",
"app.learningDashboard.pollsTable.noPollsCreatedHeading": "Ez da inkestarik sortu",
"app.learningDashboard.pollsTable.noPollsCreatedMessage": "Erabiltzaileei inkesta bat bidalitakoan, haien emaitzak zerrenda honetan agertuko dira.",
"app.learningDashboard.statusTimelineTable.title": "Denbora-lerroa",
"app.learningDashboard.statusTimelineTable.thumbnail": "Aurkezpenaren miniaturak",
"app.learningDashboard.errors.invalidToken": "Saioaren token baliogabea", "app.learningDashboard.errors.invalidToken": "Saioaren token baliogabea",
"app.learningDashboard.errors.dataUnavailable": "Datuak ez daude eskuragarri" "app.learningDashboard.errors.dataUnavailable": "Datuak ez daude eskuragarri",
"mobileApp.portals.list.empty.label": "Gehitu atariak.",
"mobileApp.portals.list.add.button.label": "Atari berria",
"mobileApp.portals.fields.name.label": "Atariaren izena",
"mobileApp.portals.fields.name.placeholder": "BigBlueButton demo",
"mobileApp.portals.fields.url.label": "Zerbitzariaren URLa",
"mobileApp.portals.addPortalPopup.confirm.button.label": "Gehitu ataria",
"mobileApp.portals.drawerNavigation.button.label": "Atariak",
"mobileApp.portals.addPortalPopup.validation.emptyFilds": "Eremu hutsak",
"mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Izen hori dagoeneko badago"
} }

View File

@ -188,7 +188,6 @@
"app.presentationUploder.fileToUpload": "آماده بارگذاری ...", "app.presentationUploder.fileToUpload": "آماده بارگذاری ...",
"app.presentationUploder.currentBadge": "کنونی", "app.presentationUploder.currentBadge": "کنونی",
"app.presentationUploder.rejectedError": "پرونده(های) انتخاب شده رد شدند. لطفا نوع پرونده(ها) را بررسی کنید.", "app.presentationUploder.rejectedError": "پرونده(های) انتخاب شده رد شدند. لطفا نوع پرونده(ها) را بررسی کنید.",
"app.presentationUploder.connectionClosedError": "به دلیل اتصال ضعیف قطع شد. لطفا دوباره تلاش کنید. ",
"app.presentationUploder.upload.progress": "در حال بارگذاری ({0}%)", "app.presentationUploder.upload.progress": "در حال بارگذاری ({0}%)",
"app.presentationUploder.upload.413": "حجم پرونده زیاد است، از حداکثر {0} مگابایت بیشتر است", "app.presentationUploder.upload.413": "حجم پرونده زیاد است، از حداکثر {0} مگابایت بیشتر است",
"app.presentationUploder.genericError": "آخ، خطای پیش آمده است...", "app.presentationUploder.genericError": "آخ، خطای پیش آمده است...",
@ -654,7 +653,6 @@
"app.lock-viewers.button.apply": "اعمال", "app.lock-viewers.button.apply": "اعمال",
"app.lock-viewers.button.cancel": "لغو", "app.lock-viewers.button.cancel": "لغو",
"app.lock-viewers.locked": "قفل شده", "app.lock-viewers.locked": "قفل شده",
"app.lock-viewers.unlocked": "مجاز",
"app.guest-policy.ariaTitle": "فرم تنظیمات سیاست پذیرش درخواست ورود کاربران", "app.guest-policy.ariaTitle": "فرم تنظیمات سیاست پذیرش درخواست ورود کاربران",
"app.guest-policy.title": "سیاست پذیرش درخواست ورود کاربران", "app.guest-policy.title": "سیاست پذیرش درخواست ورود کاربران",
"app.guest-policy.description": "سیاست پذیرش درخواست ورود کاربران در جلسه را مشخصی کنید", "app.guest-policy.description": "سیاست پذیرش درخواست ورود کاربران در جلسه را مشخصی کنید",
@ -746,7 +744,6 @@
"app.video.virtualBackground.background": "پس‌زمینه", "app.video.virtualBackground.background": "پس‌زمینه",
"app.video.virtualBackground.genericError": "افکت دوربین اعمال نشد. مجددا تلاش کنید.", "app.video.virtualBackground.genericError": "افکت دوربین اعمال نشد. مجددا تلاش کنید.",
"app.video.virtualBackground.camBgAriaDesc": "تنظیم پس‌زمینه مجازی دوربین به {0}", "app.video.virtualBackground.camBgAriaDesc": "تنظیم پس‌زمینه مجازی دوربین به {0}",
"app.video.camCapReached": "نمی‌توانید دوربین‌های بیشتری را به اشتراک بگذارید. ",
"app.video.dropZoneLabel": "اینجا بیندازید", "app.video.dropZoneLabel": "اینجا بیندازید",
"app.fullscreenButton.label": "تغییر {0} به تمام صفحه", "app.fullscreenButton.label": "تغییر {0} به تمام صفحه",
"app.fullscreenUndoButton.label": "{0} تمام صفحه را واگرد کنید", "app.fullscreenUndoButton.label": "{0} تمام صفحه را واگرد کنید",

View File

@ -695,7 +695,6 @@
"app.lock-viewers.button.apply": "Appliquer", "app.lock-viewers.button.apply": "Appliquer",
"app.lock-viewers.button.cancel": "Annuler", "app.lock-viewers.button.cancel": "Annuler",
"app.lock-viewers.locked": "Verrouillé", "app.lock-viewers.locked": "Verrouillé",
"app.lock-viewers.unlocked": "Déverrouillé",
"app.guest-policy.ariaTitle": "Fenêtre des paramètres de gestion des accès", "app.guest-policy.ariaTitle": "Fenêtre des paramètres de gestion des accès",
"app.guest-policy.title": "Gestion des accès", "app.guest-policy.title": "Gestion des accès",
"app.guest-policy.description": "Modifier le paramétrage de la gestion des accès à la réunion ", "app.guest-policy.description": "Modifier le paramétrage de la gestion des accès à la réunion ",
@ -960,9 +959,9 @@
"playback.player.about.modal.shortcuts.shift": "Maj", "playback.player.about.modal.shortcuts.shift": "Maj",
"playback.player.about.modal.shortcuts.fullscreen": "Basculer en plein écran", "playback.player.about.modal.shortcuts.fullscreen": "Basculer en plein écran",
"playback.player.about.modal.shortcuts.play": "Lecture/Pause", "playback.player.about.modal.shortcuts.play": "Lecture/Pause",
"playback.player.about.modal.shortcuts.section": "Basculer le volet latéral", "playback.player.about.modal.shortcuts.section": "Faire apparaître/disparaître le volet latéral",
"playback.player.about.modal.shortcuts.seek.backward": "Rechercher en remontant", "playback.player.about.modal.shortcuts.seek.backward": "Reculer",
"playback.player.about.modal.shortcuts.seek.forward": "Rechercher en avançant", "playback.player.about.modal.shortcuts.seek.forward": "Avancer",
"playback.player.about.modal.shortcuts.skip.next": "Diapositive suivante", "playback.player.about.modal.shortcuts.skip.next": "Diapositive suivante",
"playback.player.about.modal.shortcuts.skip.previous": "Diapositive précédente", "playback.player.about.modal.shortcuts.skip.previous": "Diapositive précédente",
"playback.player.about.modal.shortcuts.swap": "Permuter le contenu", "playback.player.about.modal.shortcuts.swap": "Permuter le contenu",

View File

@ -132,6 +132,8 @@
"app.userList.userOptions.savedNames.title": "Lista de usuarios en xuntanza {0} en {1}", "app.userList.userOptions.savedNames.title": "Lista de usuarios en xuntanza {0} en {1}",
"app.userList.userOptions.sortedFirstName.heading": "Ordenado por nome:", "app.userList.userOptions.sortedFirstName.heading": "Ordenado por nome:",
"app.userList.userOptions.sortedLastName.heading": "Ordenado por apelido:", "app.userList.userOptions.sortedLastName.heading": "Ordenado por apelido:",
"app.userList.userOptions.hideViewersCursor": "Os cursores do espectador están bloqueados",
"app.userList.userOptions.showViewersCursor": "Os cursores do espectador están desbloqueados",
"app.media.label": "Multimedia", "app.media.label": "Multimedia",
"app.media.autoplayAlertDesc": "Permitir acceso", "app.media.autoplayAlertDesc": "Permitir acceso",
"app.media.screenshare.start": "Comezou a pantalla compartida", "app.media.screenshare.start": "Comezou a pantalla compartida",
@ -562,6 +564,7 @@
"app.audio.audioSettings.descriptionLabel": "Teña en conta que aparecerá un diálogo no navegador que lle requerira que acepte compartir o seu micrófono", "app.audio.audioSettings.descriptionLabel": "Teña en conta que aparecerá un diálogo no navegador que lle requerira que acepte compartir o seu micrófono",
"app.audio.audioSettings.microphoneSourceLabel": "Fonte de micrófono", "app.audio.audioSettings.microphoneSourceLabel": "Fonte de micrófono",
"app.audio.audioSettings.speakerSourceLabel": "Fonte de altofalante", "app.audio.audioSettings.speakerSourceLabel": "Fonte de altofalante",
"app.audio.audioSettings.testSpeakerLabel": "Probar o seu altofalante",
"app.audio.audioSettings.microphoneStreamLabel": "O seu volume do fluxo de son", "app.audio.audioSettings.microphoneStreamLabel": "O seu volume do fluxo de son",
"app.audio.audioSettings.retryLabel": "Tentar de novo", "app.audio.audioSettings.retryLabel": "Tentar de novo",
"app.audio.listenOnly.backLabel": "Atrás", "app.audio.listenOnly.backLabel": "Atrás",
@ -695,7 +698,7 @@
"app.lock-viewers.button.apply": "Aplicar", "app.lock-viewers.button.apply": "Aplicar",
"app.lock-viewers.button.cancel": "Cancelar", "app.lock-viewers.button.cancel": "Cancelar",
"app.lock-viewers.locked": "Bloqueado", "app.lock-viewers.locked": "Bloqueado",
"app.lock-viewers.unlocked": "Desbloqueado", "app.lock-viewers.hideViewersCursor": "Ver os cursores doutros espectadores",
"app.guest-policy.ariaTitle": "Axustes das normas de convidados modais", "app.guest-policy.ariaTitle": "Axustes das normas de convidados modais",
"app.guest-policy.title": "Normas para os convidados", "app.guest-policy.title": "Normas para os convidados",
"app.guest-policy.description": "Cambiar os axustes das normas de convidados á xuntanza", "app.guest-policy.description": "Cambiar os axustes das normas de convidados á xuntanza",
@ -952,6 +955,7 @@
"playback.button.search.aria": "Buscar", "playback.button.search.aria": "Buscar",
"playback.button.section.aria": "Sección lateral", "playback.button.section.aria": "Sección lateral",
"playback.button.swap.aria": "Intercambiar o contido", "playback.button.swap.aria": "Intercambiar o contido",
"playback.button.theme.aria": "Alternar o tema",
"playback.error.wrapper.aria": "Área de erro", "playback.error.wrapper.aria": "Área de erro",
"playback.loader.wrapper.aria": "Área do cargador", "playback.loader.wrapper.aria": "Área do cargador",
"playback.player.wrapper.aria": "Área do reprodutor", "playback.player.wrapper.aria": "Área do reprodutor",

View File

@ -428,7 +428,6 @@
"app.lock-viewers.button.apply": "אישור", "app.lock-viewers.button.apply": "אישור",
"app.lock-viewers.button.cancel": "ביטול", "app.lock-viewers.button.cancel": "ביטול",
"app.lock-viewers.locked": "לא מאופשר", "app.lock-viewers.locked": "לא מאופשר",
"app.lock-viewers.unlocked": "מאופשר",
"app.recording.startTitle": "התחלת הקלטה", "app.recording.startTitle": "התחלת הקלטה",
"app.recording.stopTitle": "השהית הקלטה", "app.recording.stopTitle": "השהית הקלטה",
"app.recording.resumeTitle": "הפעלת הקלטה מחדש", "app.recording.resumeTitle": "הפעלת הקלטה מחדש",

View File

@ -389,7 +389,6 @@
"app.lock-viewers.button.apply": "Primjeni", "app.lock-viewers.button.apply": "Primjeni",
"app.lock-viewers.button.cancel": "Odustani", "app.lock-viewers.button.cancel": "Odustani",
"app.lock-viewers.locked": "Zaključano", "app.lock-viewers.locked": "Zaključano",
"app.lock-viewers.unlocked": "Otključano",
"app.guest-policy.button.askModerator": "Pitaj moderatora", "app.guest-policy.button.askModerator": "Pitaj moderatora",
"app.guest-policy.button.alwaysAccept": "Uvijek prihvati", "app.guest-policy.button.alwaysAccept": "Uvijek prihvati",
"app.guest-policy.button.alwaysDeny": "Uvijek odbij", "app.guest-policy.button.alwaysDeny": "Uvijek odbij",

View File

@ -2,28 +2,32 @@
"app.home.greeting": "A prezentáció hamarosan elindul ...", "app.home.greeting": "A prezentáció hamarosan elindul ...",
"app.chat.submitLabel": "Üzenet küldése", "app.chat.submitLabel": "Üzenet küldése",
"app.chat.loading": "Üzenet töltődik: {0}%", "app.chat.loading": "Üzenet töltődik: {0}%",
"app.chat.errorMaxMessageLength": "Az üzenet {0} karakterrel hosszabb", "app.chat.errorMaxMessageLength": "Az üzenet {0} karakterrel hosszabb",
"app.chat.disconnected": "Nem küldhetsz üzenete, mert nem kapcsolódtál", "app.chat.disconnected": "Nem küldhetsz üzenete, mert nem kapcsolódtál",
"app.chat.locked": "Nem küldhetsz üzenetet, mert a beszélgetés zárolt", "app.chat.locked": "Nem küldhetsz üzenetet, mert a beszélgetés zárolt",
"app.chat.inputLabel": "{0}: üzenet érkezett", "app.chat.inputLabel": "{0}: üzenet érkezett",
"app.chat.inputPlaceholder": "{0} üzenet",
"app.chat.titlePublic": "Nyilvános üzenetek", "app.chat.titlePublic": "Nyilvános üzenetek",
"app.chat.titlePrivate": "Privát üzenetek {0} résztvevővel", "app.chat.titlePrivate": "Privát üzenetek {0} résztvevővel",
"app.chat.partnerDisconnected": "{0} kilépett", "app.chat.partnerDisconnected": "{0} kilépett",
"app.chat.closeChatLabel": "{0} bezárása", "app.chat.closeChatLabel": "{0} bezárása",
"app.chat.hideChatLabel": "{0} elrejtése", "app.chat.hideChatLabel": "{0} elrejtése",
"app.chat.moreMessages": "További üzenetek lejjebb", "app.chat.moreMessages": "További üzenetek lejjebb",
"app.chat.dropdown.options": "Üzenetek beállításai", "app.chat.dropdown.options": "Üzenetbeállítások",
"app.chat.dropdown.clear": "Törlés", "app.chat.dropdown.clear": "Törlés",
"app.chat.dropdown.copy": "Másolás", "app.chat.dropdown.copy": "Másolás",
"app.chat.dropdown.save": "Mentés", "app.chat.dropdown.save": "Mentés",
"app.chat.label": "Üzenetek", "app.chat.label": "Üzenetek",
"app.chat.offline": "Offline", "app.chat.offline": "Offline",
"app.chat.pollResult": "Szavazás eredménye", "app.chat.pollResult": "Szavazás eredménye",
"app.chat.breakoutDurationUpdated": "A csoportmegbeszélés ideje {0} perc",
"app.chat.emptyLogLabel": "Az üzenetek naplója üres", "app.chat.emptyLogLabel": "Az üzenetek naplója üres",
"app.chat.clearPublicChatMessage": "A nyilvános beszélgetés előzményeit csak Szervező törölheti", "app.chat.clearPublicChatMessage": "A nyilvános beszélgetés előzményeit csak a szervező törölheti",
"app.chat.multi.typing": "Több résztvevő gépel", "app.chat.multi.typing": "Több résztvevő gépel",
"app.chat.one.typing": "{0} gépel", "app.chat.one.typing": "{0} gépel",
"app.chat.two.typing": "{0} és {1} gépel", "app.chat.two.typing": "{0} és {1} gépel",
"app.chat.copySuccess": "Másolt üzenetátirat",
"app.chat.copyErr": "Üzenetátirat másolása sikertelen",
"app.captions.label": "Feliratok", "app.captions.label": "Feliratok",
"app.captions.menu.close": "Bezárás", "app.captions.menu.close": "Bezárás",
"app.captions.menu.start": "Indítás", "app.captions.menu.start": "Indítás",
@ -39,10 +43,27 @@
"app.captions.menu.backgroundColor": "Háttérszín", "app.captions.menu.backgroundColor": "Háttérszín",
"app.captions.menu.previewLabel": "Előnézet", "app.captions.menu.previewLabel": "Előnézet",
"app.captions.menu.cancelLabel": "Mégsem", "app.captions.menu.cancelLabel": "Mégsem",
"app.captions.hide": "Felirat elrejtése",
"app.captions.ownership": "Átvétel",
"app.captions.ownershipTooltip": "{0} feliratok tulajdonosa leszel",
"app.captions.dictationStart": "Diktálás indítása",
"app.captions.dictationStop": "Diktálás befejezése",
"app.captions.dictationOnDesc": "Beszédfelismerés bekapcsolása",
"app.captions.dictationOffDesc": "Beszédfelismerés kikapcsolása",
"app.captions.speech.start": "A beszédfelismerés elindult",
"app.captions.speech.stop": "A beszédfelismerés leállt",
"app.captions.speech.error": "A beszédfelismerő leállt a böngésző inkompatibilitása vagy a csöndes időszak miatt",
"app.textInput.sendLabel": "Küldés",
"app.title.defaultViewLabel": "Alapértelmezett prezentációs nézet",
"app.notes.title": "Megosztott jegyzetek",
"app.notes.label": "Jegyetek",
"app.notes.hide": "Jegyzet elrejtése",
"app.notes.locked": "Zárolt",
"app.pads.hint": "Nyomj Esc-et a szerkesztő eszköztárra fókuszálásához",
"app.user.activityCheck": "Felhasználói aktivitás ellenőrzése", "app.user.activityCheck": "Felhasználói aktivitás ellenőrzése",
"app.user.activityCheck.label": "Ellenőrzi, hogy a felhasználó még az előadás résztvevője-e ({0})", "app.user.activityCheck.label": "Ellenőrzi, hogy a felhasználó még az előadás résztvevője-e ({0})",
"app.user.activityCheck.check": "Ellenőrzés", "app.user.activityCheck.check": "Ellenőrzés",
"app.userList.usersTitle": "Résztvevők", "app.userList.usersTitle": "Felhasználók",
"app.userList.participantsTitle": "Résztvevők", "app.userList.participantsTitle": "Résztvevők",
"app.userList.messagesTitle": "Üzenetek", "app.userList.messagesTitle": "Üzenetek",
"app.userList.notesTitle": "Jegyetek", "app.userList.notesTitle": "Jegyetek",
@ -52,14 +73,17 @@
"app.userList.you": "Én", "app.userList.you": "Én",
"app.userList.locked": "Zárolt", "app.userList.locked": "Zárolt",
"app.userList.byModerator": "(Szervező)", "app.userList.byModerator": "(Szervező)",
"app.userList.label": "Résztvevők", "app.userList.label": "Résztvevők listája",
"app.userList.toggleCompactView.label": "Kompakt nézet be-, kikapcsolása", "app.userList.toggleCompactView.label": "Kompakt nézet be-, kikapcsolása",
"app.userList.moderator": "Szervező", "app.userList.moderator": "Moderátor",
"app.userList.mobile": "Mobil", "app.userList.mobile": "Mobil",
"app.userList.guest": "Vendég", "app.userList.guest": "Vendég",
"app.userList.sharingWebcam": "Webkamera",
"app.userList.menuTitleContext": "Elérhető beállítások", "app.userList.menuTitleContext": "Elérhető beállítások",
"app.userList.chatListItem.unreadSingular": "Egy új üzenet",
"app.userList.chatListItem.unreadPlural": "{0} új üzenet",
"app.userList.menu.chat.label": "Privát üzenetek indítása", "app.userList.menu.chat.label": "Privát üzenetek indítása",
"app.userList.menu.clearStatus.label": "Hangulatjeled törlése", "app.userList.menu.clearStatus.label": "Állapot törlése",
"app.userList.menu.removeUser.label": "Résztvevő eltávolítása", "app.userList.menu.removeUser.label": "Résztvevő eltávolítása",
"app.userList.menu.removeConfirmation.label": "({0}) résztvevő eltávolítása", "app.userList.menu.removeConfirmation.label": "({0}) résztvevő eltávolítása",
"app.userlist.menu.removeConfirmation.desc": "A résztvevő újracsatlakozásának megakadályozása.", "app.userlist.menu.removeConfirmation.desc": "A résztvevő újracsatlakozásának megakadályozása.",
@ -69,6 +93,7 @@
"app.userList.menu.webcamUnpin.label": "Résztvevő webkamera feloldás", "app.userList.menu.webcamUnpin.label": "Résztvevő webkamera feloldás",
"app.userList.menu.giveWhiteboardAccess.label" : "Hozzáférést biztosít a táblához", "app.userList.menu.giveWhiteboardAccess.label" : "Hozzáférést biztosít a táblához",
"app.userList.menu.removeWhiteboardAccess.label": "Hozzáférés megvonás a táblától", "app.userList.menu.removeWhiteboardAccess.label": "Hozzáférés megvonás a táblától",
"app.userList.menu.ejectUserCameras.label": "Feliratok",
"app.userList.userAriaLabel": "{0} {1} {2} állapot {3}", "app.userList.userAriaLabel": "{0} {1} {2} állapot {3}",
"app.userList.menu.promoteUser.label": "Előléptetés Szervezővé", "app.userList.menu.promoteUser.label": "Előléptetés Szervezővé",
"app.userList.menu.demoteUser.label": "Lefokozás résztvevővé", "app.userList.menu.demoteUser.label": "Lefokozás résztvevővé",
@ -93,6 +118,7 @@
"app.userList.userOptions.disableMic": "A résztvevők mikrofonja le van tiltva", "app.userList.userOptions.disableMic": "A résztvevők mikrofonja le van tiltva",
"app.userList.userOptions.disablePrivChat": "A privát üzenetek le van tiltva", "app.userList.userOptions.disablePrivChat": "A privát üzenetek le van tiltva",
"app.userList.userOptions.disablePubChat": "A nyilvános üzenetek le van tiltva", "app.userList.userOptions.disablePubChat": "A nyilvános üzenetek le van tiltva",
"app.userList.userOptions.disableNotes": "A megosztott jegyzetek zárolva vannak",
"app.userList.userOptions.hideUserList": "A résztvevők nem látják a résztvevői névsort", "app.userList.userOptions.hideUserList": "A résztvevők nem látják a résztvevői névsort",
"app.userList.userOptions.webcamsOnlyForModerator": "Csak Szervezők láthatják a résztvevők webkaméráját (zárolási beállítások miatt)", "app.userList.userOptions.webcamsOnlyForModerator": "Csak Szervezők láthatják a résztvevők webkaméráját (zárolási beállítások miatt)",
"app.userList.content.participants.options.clearedStatus": "Az összes résztvevő állapotát sikeresen törölted", "app.userList.content.participants.options.clearedStatus": "Az összes résztvevő állapotát sikeresen törölted",
@ -100,15 +126,19 @@
"app.userList.userOptions.enableMic": "A résztvevők mikrofonja engedélyezve van", "app.userList.userOptions.enableMic": "A résztvevők mikrofonja engedélyezve van",
"app.userList.userOptions.enablePrivChat": "A privát üzenetek engedélyezve van", "app.userList.userOptions.enablePrivChat": "A privát üzenetek engedélyezve van",
"app.userList.userOptions.enablePubChat": "A nyilvános üzenetek engedélyezve van", "app.userList.userOptions.enablePubChat": "A nyilvános üzenetek engedélyezve van",
"app.userList.userOptions.enableNotes": "A megosztott jegyzet engedélyezve van",
"app.userList.userOptions.showUserList": "A résztvevők látják a résztvevői névsort", "app.userList.userOptions.showUserList": "A résztvevők látják a résztvevői névsort",
"app.userList.userOptions.enableOnlyModeratorWebcam": "A webkamerád engedélyezve van, így a többiek láthatnak", "app.userList.userOptions.enableOnlyModeratorWebcam": "A webkamerád engedélyezve van, így a többiek láthatnak",
"app.userList.userOptions.savedNames.title": "A(z) {0} konferencia résztvevőinek listája, {1}", "app.userList.userOptions.savedNames.title": "{0} előadás résztvevőinek listája, {1}",
"app.userList.userOptions.sortedFirstName.heading": "Keresztnév szerint rendezve:", "app.userList.userOptions.sortedFirstName.heading": "Keresztnév szerint rendezve:",
"app.userList.userOptions.sortedLastName.heading": "Vezetéknév szerint rendezve:", "app.userList.userOptions.sortedLastName.heading": "Vezetéknév szerint rendezve:",
"app.userList.userOptions.hideViewersCursor": "Résztvevők kurzora zárolva",
"app.userList.userOptions.showViewersCursor": "Résztvevők kurzora nincs zárolva",
"app.media.label": "Média", "app.media.label": "Média",
"app.media.autoplayAlertDesc": "Hozzáférés engedélyezése", "app.media.autoplayAlertDesc": "Hozzáférés engedélyezése",
"app.media.screenshare.start": "A képernyőmegosztás elindult", "app.media.screenshare.start": "A képernyőmegosztás elindult",
"app.media.screenshare.end": "A képernyőmegosztás befejeződött", "app.media.screenshare.end": "A képernyőmegosztás befejeződött",
"app.media.screenshare.endDueToDataSaving": "A képernyőmegosztás leállt adatcsökkentés miatt",
"app.media.screenshare.unavailable": "A képernyőmegosztás nem érhető el", "app.media.screenshare.unavailable": "A képernyőmegosztás nem érhető el",
"app.media.screenshare.notSupported": "Ez a böngésző nem támogatja a képernyőmegosztást.", "app.media.screenshare.notSupported": "Ez a böngésző nem támogatja a képernyőmegosztást.",
"app.media.screenshare.autoplayBlockedDesc": "Az előadó képernyőjének megjelenítéséhez az engedélyedre van szükségünk.", "app.media.screenshare.autoplayBlockedDesc": "Az előadó képernyőjének megjelenítéséhez az engedélyedre van szükségünk.",
@ -138,7 +168,15 @@
"app.presentation.slideContent": "Diatartalom", "app.presentation.slideContent": "Diatartalom",
"app.presentation.startSlideContent": "Diatartalom indítása", "app.presentation.startSlideContent": "Diatartalom indítása",
"app.presentation.endSlideContent": "Diatartalom befejezése", "app.presentation.endSlideContent": "Diatartalom befejezése",
"app.presentation.changedSlideContent": "A prezentáció váltott a diára: {0}",
"app.presentation.emptySlideContent": "A jelenlegi diának nincs tartalma", "app.presentation.emptySlideContent": "A jelenlegi diának nincs tartalma",
"app.presentation.options.fullscreen": "Teljes képernyő",
"app.presentation.options.exitFullscreen": "Teljes képernyő bezárása",
"app.presentation.options.minimize": "Kis méret",
"app.presentation.options.snapshot": "Pillanatkép az aktuális előadásról ",
"app.presentation.options.downloading": "Letöltés...",
"app.presentation.options.downloaded": "Az aktuális előadás letöltve",
"app.presentation.options.downloadFailed": "Az aktuális előadás nem tölthető le",
"app.presentation.presentationToolbar.noNextSlideDesc": "Prezentáció vége", "app.presentation.presentationToolbar.noNextSlideDesc": "Prezentáció vége",
"app.presentation.presentationToolbar.noPrevSlideDesc": "Prezentáció eleje", "app.presentation.presentationToolbar.noPrevSlideDesc": "Prezentáció eleje",
"app.presentation.presentationToolbar.selectLabel": "Dia választása", "app.presentation.presentationToolbar.selectLabel": "Dia választása",
@ -163,8 +201,10 @@
"app.presentation.presentationToolbar.fitToWidth": "A szélességhez illeszkedjen", "app.presentation.presentationToolbar.fitToWidth": "A szélességhez illeszkedjen",
"app.presentation.presentationToolbar.fitToPage": "Az oldalhoz illeszkedjen", "app.presentation.presentationToolbar.fitToPage": "Az oldalhoz illeszkedjen",
"app.presentation.presentationToolbar.goToSlide": "{0}. dia", "app.presentation.presentationToolbar.goToSlide": "{0}. dia",
"app.presentation.placeholder": "Jelenleg nincs aktív előadás",
"app.presentationUploder.title": "Prezentáció", "app.presentationUploder.title": "Prezentáció",
"app.presentationUploder.message": "Előadóként tetszőleges office dokumentumot, illetve PDF fájlt fel tudsz tölteni. A legjobb eredmény érdekében javasoljuk PDF fájl használatát. Kérjük, ellenőrizd, hogy egy prezentációt kiválasztottál a jobb oldalon lévő jelölővel. ", "app.presentationUploder.message": "Előadóként tetszőleges office dokumentumot, illetve PDF fájlt fel tudsz tölteni. A legjobb eredmény érdekében javasoljuk PDF fájl használatát. Kérjük, ellenőrizd, hogy egy prezentációt kiválasztottál a jobb oldalon lévő jelölővel. ",
"app.presentationUploder.extraHint": "FONTOS: egyik fájl sem érheti el {0} MB-ot és {1} oldalt.",
"app.presentationUploder.uploadLabel": "Feltöltés", "app.presentationUploder.uploadLabel": "Feltöltés",
"app.presentationUploder.confirmLabel": "Jóváhagyás", "app.presentationUploder.confirmLabel": "Jóváhagyás",
"app.presentationUploder.confirmDesc": "Mentsd a módosításaidat és indítsd a prezentációt", "app.presentationUploder.confirmDesc": "Mentsd a módosításaidat és indítsd a prezentációt",
@ -177,6 +217,7 @@
"app.presentationUploder.fileToUpload": "Feltöltendő ...", "app.presentationUploder.fileToUpload": "Feltöltendő ...",
"app.presentationUploder.currentBadge": "Jelenlegi", "app.presentationUploder.currentBadge": "Jelenlegi",
"app.presentationUploder.rejectedError": "A kiválasztott fájl(oka)t visszautasítottuk. Kérjük, ellenőrizd a fájl(ok) típusát.", "app.presentationUploder.rejectedError": "A kiválasztott fájl(oka)t visszautasítottuk. Kérjük, ellenőrizd a fájl(ok) típusát.",
"app.presentationUploder.connectionClosedError": "Megszakadt a lassú kapcsolat miatt. Kérem, próbáld újra.",
"app.presentationUploder.upload.progress": "({0}%) feltöltve", "app.presentationUploder.upload.progress": "({0}%) feltöltve",
"app.presentationUploder.upload.413": "A fájl túl nagy, túllépte a maximális {0} MB-ot", "app.presentationUploder.upload.413": "A fájl túl nagy, túllépte a maximális {0} MB-ot",
"app.presentationUploder.genericError": "Hoppá, valami hiba történt ...", "app.presentationUploder.genericError": "Hoppá, valami hiba történt ...",
@ -211,6 +252,7 @@
"app.presentationUploder.clearErrorsDesc": "Hibás feltöltések törlése", "app.presentationUploder.clearErrorsDesc": "Hibás feltöltések törlése",
"app.presentationUploder.uploadViewTitle": "Bemutató feltöltése", "app.presentationUploder.uploadViewTitle": "Bemutató feltöltése",
"app.poll.pollPaneTitle": "Szavazás", "app.poll.pollPaneTitle": "Szavazás",
"app.poll.enableMultipleResponseLabel": "Több válasz is lehetséges válaszadónként?",
"app.poll.quickPollTitle": "Gyorsszavazás", "app.poll.quickPollTitle": "Gyorsszavazás",
"app.poll.hidePollDesc": "Szavazásmenü-panel elrejtése", "app.poll.hidePollDesc": "Szavazásmenü-panel elrejtése",
"app.poll.quickPollInstruction": "Válassz egy beállítást a szavazás indításához", "app.poll.quickPollInstruction": "Válassz egy beállítást a szavazás indításához",
@ -238,7 +280,11 @@
"app.poll.secretPoll.label" : "Névtelen szavazás", "app.poll.secretPoll.label" : "Névtelen szavazás",
"app.poll.secretPoll.isSecretLabel": "A szavazás anonim az egyéni válaszokat nem láthatja.", "app.poll.secretPoll.isSecretLabel": "A szavazás anonim az egyéni válaszokat nem láthatja.",
"app.poll.questionErr": "Kérdés megadása kötelező.", "app.poll.questionErr": "Kérdés megadása kötelező.",
"app.poll.optionErr": "Szavazási lehetőség beírása",
"app.poll.startPollDesc": "Szavazás kezdése", "app.poll.startPollDesc": "Szavazás kezdése",
"app.poll.showRespDesc": "Válaszok beállításainak megjelenítése",
"app.poll.addRespDesc": "Szavazási válaszbemenet hozzáadása",
"app.poll.deleteRespDesc": "{0} lehetőség eltávolítása",
"app.poll.t": "Igaz", "app.poll.t": "Igaz",
"app.poll.f": "Hamis", "app.poll.f": "Hamis",
"app.poll.tf": "Igaz / Hamis", "app.poll.tf": "Igaz / Hamis",
@ -263,6 +309,8 @@
"app.poll.liveResult.usersTitle": "Résztvevők", "app.poll.liveResult.usersTitle": "Résztvevők",
"app.poll.liveResult.responsesTitle": "Válasz", "app.poll.liveResult.responsesTitle": "Válasz",
"app.poll.liveResult.secretLabel": "Ez egy névtelen szavazás. Az egyéni válaszok nem jelennek meg.", "app.poll.liveResult.secretLabel": "Ez egy névtelen szavazás. Az egyéni válaszok nem jelennek meg.",
"app.poll.removePollOpt": "{0} szavazási lehetőség eltávolítva",
"app.poll.emptyPollOpt": "Üres",
"app.polling.pollingTitle": "Válaszlehetőségek", "app.polling.pollingTitle": "Válaszlehetőségek",
"app.polling.pollQuestionTitle": "Szavazás kérdése", "app.polling.pollQuestionTitle": "Szavazás kérdése",
"app.polling.submitLabel": "Beküldés", "app.polling.submitLabel": "Beküldés",
@ -278,6 +326,8 @@
"app.waitingMessage": "Szétkapcsolódtunk. {0} másodperc múlva próbálunk újra csatlakozni ...", "app.waitingMessage": "Szétkapcsolódtunk. {0} másodperc múlva próbálunk újra csatlakozni ...",
"app.retryNow": "Most próbáld újra", "app.retryNow": "Most próbáld újra",
"app.muteWarning.label": "{0} kattints, hogy hallható légy!", "app.muteWarning.label": "{0} kattints, hogy hallható légy!",
"app.muteWarning.disableMessage": "A néma figyelmeztetések tiltva a visszavonásig",
"app.muteWarning.tooltip": "Kattints a figyelmeztetés bezárásához és letiltásához a következő némítás feloldásáig",
"app.navBar.settingsDropdown.optionsLabel": "Beállítások", "app.navBar.settingsDropdown.optionsLabel": "Beállítások",
"app.navBar.settingsDropdown.fullscreenLabel": "Teljes képernyő", "app.navBar.settingsDropdown.fullscreenLabel": "Teljes képernyő",
"app.navBar.settingsDropdown.settingsLabel": "Beállítások", "app.navBar.settingsDropdown.settingsLabel": "Beállítások",
@ -298,6 +348,7 @@
"app.navBar.userListToggleBtnLabel": "Résztvevői ablak be-, kikapcsolása", "app.navBar.userListToggleBtnLabel": "Résztvevői ablak be-, kikapcsolása",
"app.navBar.toggleUserList.ariaLabel": "Résztvevők és Üzentek felcserélése", "app.navBar.toggleUserList.ariaLabel": "Résztvevők és Üzentek felcserélése",
"app.navBar.toggleUserList.newMessages": "új üzenetértesítéssel", "app.navBar.toggleUserList.newMessages": "új üzenetértesítéssel",
"app.navBar.toggleUserList.newMsgAria": "Új üzenet tőle: {0}",
"app.navBar.recording": "Ezt a munkamenetet rögzítjük", "app.navBar.recording": "Ezt a munkamenetet rögzítjük",
"app.navBar.recording.on": "Felvétel", "app.navBar.recording.on": "Felvétel",
"app.navBar.recording.off": "Nem készül felvétel", "app.navBar.recording.off": "Nem készül felvétel",
@ -312,6 +363,7 @@
"app.endMeeting.noLabel": "Nem", "app.endMeeting.noLabel": "Nem",
"app.about.title": "Névjegy", "app.about.title": "Névjegy",
"app.about.version": "Kliens buildszáma:", "app.about.version": "Kliens buildszáma:",
"app.about.version_label": "BigBlueButton verzió:",
"app.about.copyright": "Copyright:", "app.about.copyright": "Copyright:",
"app.about.confirmLabel": "OK", "app.about.confirmLabel": "OK",
"app.about.confirmDesc": "OK", "app.about.confirmDesc": "OK",
@ -372,6 +424,7 @@
"app.settings.dataSavingTab.description": "Igazítsd a sávszélességedhez, hogy mi jelenhessen meg a képernyődön.", "app.settings.dataSavingTab.description": "Igazítsd a sávszélességedhez, hogy mi jelenhessen meg a képernyődön.",
"app.settings.save-notification.label": "A beállításokat mentettük", "app.settings.save-notification.label": "A beállításokat mentettük",
"app.statusNotifier.lowerHands": "Kezek leengedése", "app.statusNotifier.lowerHands": "Kezek leengedése",
"app.statusNotifier.lowerHandDescOneUser": "{0} kezének letétele",
"app.statusNotifier.raisedHandsTitle": "Kézfeltartások", "app.statusNotifier.raisedHandsTitle": "Kézfeltartások",
"app.statusNotifier.raisedHandDesc": "{0} jelentkeznek", "app.statusNotifier.raisedHandDesc": "{0} jelentkeznek",
"app.statusNotifier.raisedHandDescOneUser": "{0} jelentkezik", "app.statusNotifier.raisedHandDescOneUser": "{0} jelentkezik",
@ -380,7 +433,7 @@
"app.switch.offLabel": "KI", "app.switch.offLabel": "KI",
"app.talkingIndicator.ariaMuteDesc" : "Válasszd ki a némítani kívánt résztvevőt", "app.talkingIndicator.ariaMuteDesc" : "Válasszd ki a némítani kívánt résztvevőt",
"app.talkingIndicator.isTalking" : "{0} beszél", "app.talkingIndicator.isTalking" : "{0} beszél",
"app.talkingIndicator.moreThanMaxIndicatorsTalking" : "0}+ beszél", "app.talkingIndicator.moreThanMaxIndicatorsTalking" : "{0}+ beszél",
"app.talkingIndicator.moreThanMaxIndicatorsWereTalking" : "{0}+ beszélgettek", "app.talkingIndicator.moreThanMaxIndicatorsWereTalking" : "{0}+ beszélgettek",
"app.talkingIndicator.wasTalking" : "{0} befejezte beszédét", "app.talkingIndicator.wasTalking" : "{0} befejezte beszédét",
"app.actionsBar.actionsDropdown.actionsLabel": "Műveletek", "app.actionsBar.actionsDropdown.actionsLabel": "Műveletek",
@ -453,6 +506,9 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Csoportterem választása", "app.breakoutJoinConfirmation.freeJoinMessage": "Csoportterem választása",
"app.breakoutTimeRemainingMessage": "Csoport hátralévő ideje: {0}", "app.breakoutTimeRemainingMessage": "Csoport hátralévő ideje: {0}",
"app.breakoutWillCloseMessage": "Az idő lejárt. A csoportterem hamarosan bezárul", "app.breakoutWillCloseMessage": "Az idő lejárt. A csoportterem hamarosan bezárul",
"app.breakout.dropdown.manageDuration": "Időtartam kezelése",
"app.breakout.dropdown.destroyAll": "Csoporttermek megszüntetése",
"app.breakout.dropdown.options": "Csoporttermek beállításai",
"app.calculatingBreakoutTimeRemaining": "Hátralévő idő számítása ...", "app.calculatingBreakoutTimeRemaining": "Hátralévő idő számítása ...",
"app.audioModal.ariaTitle": "Csatlakozás hangablak", "app.audioModal.ariaTitle": "Csatlakozás hangablak",
"app.audioModal.microphoneLabel": "Mikrofon", "app.audioModal.microphoneLabel": "Mikrofon",
@ -508,6 +564,7 @@
"app.audio.audioSettings.descriptionLabel": "Kérjük, figyelj, hogy egy ablak fog megjelenni a böngésződben, benne kérés, hogy fogadd el a mikrofonod megosztását.", "app.audio.audioSettings.descriptionLabel": "Kérjük, figyelj, hogy egy ablak fog megjelenni a böngésződben, benne kérés, hogy fogadd el a mikrofonod megosztását.",
"app.audio.audioSettings.microphoneSourceLabel": "Mikrofon forrása", "app.audio.audioSettings.microphoneSourceLabel": "Mikrofon forrása",
"app.audio.audioSettings.speakerSourceLabel": "Hangszóró forrása", "app.audio.audioSettings.speakerSourceLabel": "Hangszóró forrása",
"app.audio.audioSettings.testSpeakerLabel": "Hang tesztelése",
"app.audio.audioSettings.microphoneStreamLabel": "A hangstream hangerőd", "app.audio.audioSettings.microphoneStreamLabel": "A hangstream hangerőd",
"app.audio.audioSettings.retryLabel": "Újra", "app.audio.audioSettings.retryLabel": "Újra",
"app.audio.listenOnly.backLabel": "Vissza", "app.audio.listenOnly.backLabel": "Vissza",
@ -544,6 +601,8 @@
"app.error.408": "Hitelesítés nem sikerült", "app.error.408": "Hitelesítés nem sikerült",
"app.error.410": "A találkozó véget ért", "app.error.410": "A találkozó véget ért",
"app.error.500": "Sajnáljuk, hiba történt", "app.error.500": "Sajnáljuk, hiba történt",
"app.error.userLoggedOut": "A felhasználónak érvénytelen munkamenet-tokenje van kijelentkezés miatt",
"app.error.ejectedUser": "A felhasználónak érvénytelen munkamenet-tokenje van kizárás miatt",
"app.error.userBanned": "A résztvevőt kitiltották", "app.error.userBanned": "A résztvevőt kitiltották",
"app.error.leaveLabel": "Bejelentkezés újra", "app.error.leaveLabel": "Bejelentkezés újra",
"app.error.fallback.presentation.title": "Hiba lépett fel", "app.error.fallback.presentation.title": "Hiba lépett fel",
@ -562,6 +621,10 @@
"app.guest.guestDeny": "Sajnálom, a Szervező elutasította a csatlakozásod. Amennyiben úgy gondolod, hogy ez tévedésből történt, kérlek vedd fel a kapcsolatot a szervezővel, hogy tisztázni tudd a helyzetet!", "app.guest.guestDeny": "Sajnálom, a Szervező elutasította a csatlakozásod. Amennyiben úgy gondolod, hogy ez tévedésből történt, kérlek vedd fel a kapcsolatot a szervezővel, hogy tisztázni tudd a helyzetet!",
"app.guest.seatWait": "Vendég várakozik csatlakozáshoz", "app.guest.seatWait": "Vendég várakozik csatlakozáshoz",
"app.guest.allow": "Vendég csatlakozása jóváhagyva", "app.guest.allow": "Vendég csatlakozása jóváhagyva",
"app.guest.firstPositionInWaitingQueue": "Te vagy az első a sorban!",
"app.guest.positionInWaitingQueue": "Jelenlegi helyed a várakozási sorban:",
"app.guest.guestInvalid": "A vendég felhasználó érvénytelen",
"app.guest.meetingForciblyEnded": "Befejezett előadáshoz nem csatlakozhatsz",
"app.userList.guest.waitingUsers": "Várakozók", "app.userList.guest.waitingUsers": "Várakozók",
"app.userList.guest.waitingUsersTitle": "Résztvevő kezelés", "app.userList.guest.waitingUsersTitle": "Résztvevő kezelés",
"app.userList.guest.optionTitle": "Várakozók", "app.userList.guest.optionTitle": "Várakozók",
@ -570,11 +633,14 @@
"app.userList.guest.allowEveryone": "Mindenki engedélyezése", "app.userList.guest.allowEveryone": "Mindenki engedélyezése",
"app.userList.guest.denyEveryone": "Mindenki tiltása", "app.userList.guest.denyEveryone": "Mindenki tiltása",
"app.userList.guest.pendingUsers": "{0} várakozó szervező", "app.userList.guest.pendingUsers": "{0} várakozó szervező",
"app.userList.guest.noPendingUsers": "Egy várakozó vendég sincs...",
"app.userList.guest.pendingGuestUsers": "{0} várakozó ", "app.userList.guest.pendingGuestUsers": "{0} várakozó ",
"app.userList.guest.pendingGuestAlert": "csatlakozott a munkamenethez és várakozik a jóváhagyásodra.", "app.userList.guest.pendingGuestAlert": "csatlakozott a munkamenethez és várakozik a jóváhagyásodra.",
"app.userList.guest.rememberChoice": "Választás megjegyzése", "app.userList.guest.rememberChoice": "Választás megjegyzése",
"app.userList.guest.emptyMessage": "Jelenleg nincs üzenet", "app.userList.guest.emptyMessage": "Jelenleg nincs üzenet",
"app.userList.guest.inputPlaceholder": "Üzenet a belépésre várakozóknak", "app.userList.guest.inputPlaceholder": "Üzenet a belépésre várakozóknak",
"app.userList.guest.privateInputPlaceholder": "Üzenet neki: {0}",
"app.userList.guest.privateMessageLabel": "Üzenet",
"app.userList.guest.acceptLabel": "Engedélyezés", "app.userList.guest.acceptLabel": "Engedélyezés",
"app.userList.guest.denyLabel": "Tiltás", "app.userList.guest.denyLabel": "Tiltás",
"app.user-info.title": "Címtárkeresés", "app.user-info.title": "Címtárkeresés",
@ -582,11 +648,14 @@
"app.toast.chat.public": "Új nyilvános üzenet", "app.toast.chat.public": "Új nyilvános üzenet",
"app.toast.chat.private": "Új privát üzenet", "app.toast.chat.private": "Új privát üzenet",
"app.toast.chat.system": "Rendszer", "app.toast.chat.system": "Rendszer",
"app.toast.clearedEmoji.label": "Hangulatjel(ek) törölve", "app.toast.clearedEmoji.label": "Hangulatjel-állapot törölve",
"app.toast.setEmoji.label": "Hangulatod új állapota {0}", "app.toast.setEmoji.label": "Hangulatod új állapota {0}",
"app.toast.meetingMuteOn.label": "Az összes résztvevőt elnémítottad", "app.toast.meetingMuteOn.label": "Az összes résztvevőt elnémítottad",
"app.toast.meetingMuteOff.label": "A megbeszélés némaságát kikapcsoltad", "app.toast.meetingMuteOff.label": "A megbeszélés némaságát kikapcsoltad",
"app.toast.setEmoji.raiseHand": "Felemelted a kezed", "app.toast.setEmoji.raiseHand": "Felemelted a kezed",
"app.toast.setEmoji.lowerHand": "Kezedet letették",
"app.toast.promotedLabel": "Moderátorrá léptettek elő",
"app.toast.demotedLabel": "Résztvevővé fokoztak le",
"app.notification.recordingStart": "Ezt a munkamenetet rögzítjük", "app.notification.recordingStart": "Ezt a munkamenetet rögzítjük",
"app.notification.recordingStop": "Ezt a munkamenetet nem rögzítjük", "app.notification.recordingStop": "Ezt a munkamenetet nem rögzítjük",
"app.notification.recordingPaused": "Ezt a munkamenetet nem rögzítjük tovább", "app.notification.recordingPaused": "Ezt a munkamenetet nem rögzítjük tovább",
@ -624,12 +693,12 @@
"app.lock-viewers.PublicChatLabel": "Nyilvános üzenetek küldése", "app.lock-viewers.PublicChatLabel": "Nyilvános üzenetek küldése",
"app.lock-viewers.PrivateChatLable": "Privát üzenetek küldése", "app.lock-viewers.PrivateChatLable": "Privát üzenetek küldése",
"app.lock-viewers.notesLabel": "Nyilvános megjegyzések módosítása", "app.lock-viewers.notesLabel": "Nyilvános megjegyzések módosítása",
"app.lock-viewers.userListLabel": "A Résztvevői lista nyílt", "app.lock-viewers.userListLabel": "A többi résztvevő megjelenítése a Résztvevői listában",
"app.lock-viewers.ariaTitle": "Résztvevők beállításablakának zárolása", "app.lock-viewers.ariaTitle": "Résztvevők beállításablakának zárolása",
"app.lock-viewers.button.apply": "Alkalmaz", "app.lock-viewers.button.apply": "Alkalmaz",
"app.lock-viewers.button.cancel": "Mégsem", "app.lock-viewers.button.cancel": "Mégsem",
"app.lock-viewers.locked": "Zárolt", "app.lock-viewers.locked": "Zárolt",
"app.lock-viewers.unlocked": "Zárolás feloldva", "app.lock-viewers.hideViewersCursor": "A többi felhasználó kurzorának megtekintése",
"app.guest-policy.ariaTitle": "Vendégek fogadása", "app.guest-policy.ariaTitle": "Vendégek fogadása",
"app.guest-policy.title": "Vendégek fogadása", "app.guest-policy.title": "Vendégek fogadása",
"app.guest-policy.description": "Teendő új vendég fogadásakor", "app.guest-policy.description": "Teendő új vendég fogadásakor",
@ -642,14 +711,26 @@
"app.connection-status.description": "Az állapotjel saját interneted minőségéről mutat képet.", "app.connection-status.description": "Az állapotjel saját interneted minőségéről mutat képet.",
"app.connection-status.empty": "Jelenleg nincs kapcsolódási probléma.", "app.connection-status.empty": "Jelenleg nincs kapcsolódási probléma.",
"app.connection-status.more": "több", "app.connection-status.more": "több",
"app.connection-status.copy": "Statisztikák másolása",
"app.connection-status.copied": "Másolva!", "app.connection-status.copied": "Másolva!",
"app.connection-status.jitter": "Jitter", "app.connection-status.jitter": "Jitter",
"app.connection-status.label": "Kapcsolódás állapota", "app.connection-status.label": "Kapcsolódás állapota",
"app.connection-status.settings": "Beállításaim alkalmazása",
"app.connection-status.no": "Nem", "app.connection-status.no": "Nem",
"app.connection-status.notification": "Kapcsolatod szakadozik.", "app.connection-status.notification": "Kapcsolatod szakadozik.",
"app.connection-status.offline": "offline",
"app.connection-status.audioUploadRate": "Hang feltöltési arány",
"app.connection-status.audioDownloadRate": "Hang letöltési arány",
"app.connection-status.videoUploadRate": "Videó feltöltési arány",
"app.connection-status.videoDownloadRate": "Videó letöltési arány",
"app.connection-status.lostPackets": "Elvesztett csomag", "app.connection-status.lostPackets": "Elvesztett csomag",
"app.connection-status.usingTurn": "TURN használat", "app.connection-status.usingTurn": "TURN használat",
"app.connection-status.yes": "Igen", "app.connection-status.yes": "Igen",
"app.connection-status.connectionStats": "Csatlakozási statisztikák",
"app.connection-status.myLogs": "Naplózásaim",
"app.connection-status.sessionLogs": "Munkamenet-naplók",
"app.connection-status.next": "Következő oldal",
"app.connection-status.prev": "Előző oldal",
"app.learning-dashboard.label": "Aktivitáselemzés irányítópult", "app.learning-dashboard.label": "Aktivitáselemzés irányítópult",
"app.learning-dashboard.description": "Irányítópult megnyitása a résztvevők tevékenységeivel", "app.learning-dashboard.description": "Irányítópult megnyitása a résztvevők tevékenységeivel",
"app.learning-dashboard.clickHereToOpen": "Aktivitáselemzés irányítópult megnyitása", "app.learning-dashboard.clickHereToOpen": "Aktivitáselemzés irányítópult megnyitása",
@ -695,6 +776,7 @@
"app.video.notSupportedError": "Csak biztonságok forrásból oszthatsz meg webkamerát, ezért kérjük, ellenőrizd, hogy SSL tanúsítványod érvényes-e", "app.video.notSupportedError": "Csak biztonságok forrásból oszthatsz meg webkamerát, ezért kérjük, ellenőrizd, hogy SSL tanúsítványod érvényes-e",
"app.video.notReadableError": "Nem vesszük a webkamera képét. Kérjük, ellenőrizd, hogy másik program ne használja a webkamerát", "app.video.notReadableError": "Nem vesszük a webkamera képét. Kérjük, ellenőrizd, hogy másik program ne használja a webkamerát",
"app.video.timeoutError": "A böngésző nem válaszolt időben.", "app.video.timeoutError": "A böngésző nem válaszolt időben.",
"app.video.genericError": "({0}) eszköz ismeretlen hibát okozott",
"app.video.mediaTimedOutError": "A webkamera adatfolyama megszakadt. Próbáld meg újra megosztani", "app.video.mediaTimedOutError": "A webkamera adatfolyama megszakadt. Próbáld meg újra megosztani",
"app.video.mediaFlowTimeout1020": "A média nem éri el a szervert (hiba 1020)", "app.video.mediaFlowTimeout1020": "A média nem éri el a szervert (hiba 1020)",
"app.video.suggestWebcamLock": "Érvényesíted a zárolási beállítást a nézők webkameráján?", "app.video.suggestWebcamLock": "Érvényesíted a zárolási beállítást a nézők webkameráján?",
@ -713,12 +795,19 @@
"app.video.clientDisconnected": "A webkamerát nem lehet megosztani kapcsolódási problémák miatt", "app.video.clientDisconnected": "A webkamerát nem lehet megosztani kapcsolódási problémák miatt",
"app.video.virtualBackground.none": "Egyik sem", "app.video.virtualBackground.none": "Egyik sem",
"app.video.virtualBackground.blur": "Elhomályosít", "app.video.virtualBackground.blur": "Elhomályosít",
"app.video.virtualBackground.home": "Kezdőpont",
"app.video.virtualBackground.board": "Tábla", "app.video.virtualBackground.board": "Tábla",
"app.video.virtualBackground.coffeeshop": "Kávézó", "app.video.virtualBackground.coffeeshop": "Kávézó",
"app.video.virtualBackground.background": "Háttér", "app.video.virtualBackground.background": "Háttér",
"app.video.virtualBackground.genericError": "Nem sikerült alkalmazni a kameraeffektust. Próbáld újra.", "app.video.virtualBackground.genericError": "Nem sikerült alkalmazni a kameraeffektust. Próbáld újra.",
"app.video.virtualBackground.camBgAriaDesc": "A webkamera virtuális hátterét a következőre állítottad: {0}", "app.video.virtualBackground.camBgAriaDesc": "A webkamera virtuális hátterét a következőre állítottad: {0}",
"app.video.camCapReached": "Több webkamerát nem oszthatsz meg",
"app.video.meetingCamCapReached": "Az előadás elérte az egyidőben maximálisan megosztható webkamerák számát.",
"app.video.dropZoneLabel": "Dobja ide",
"app.fullscreenButton.label": "{0} teljes képernyős módra állítása", "app.fullscreenButton.label": "{0} teljes képernyős módra állítása",
"app.fullscreenUndoButton.label": "{0} teljes képernyőjének visszaállítása",
"app.switchButton.expandLabel": "Képernyőmegosztási videó kiterjesztése",
"app.switchButton.shrinkLabel": "Képernyőmegosztási videó zsugorítása",
"app.sfu.mediaServerConnectionError2000": "Nem sikerült csatlakozni a médiaszerverhez (hiba 2000)", "app.sfu.mediaServerConnectionError2000": "Nem sikerült csatlakozni a médiaszerverhez (hiba 2000)",
"app.sfu.mediaServerOffline2001": "A médiaszerver ki van kapcsolva. Kérjük, próbálja később. (hiba 2001)", "app.sfu.mediaServerOffline2001": "A médiaszerver ki van kapcsolva. Kérjük, próbálja később. (hiba 2001)",
"app.sfu.mediaServerNoResources2002": "A médiaszervernek nincs elérhető erőforrása (hiba 2002)", "app.sfu.mediaServerNoResources2002": "A médiaszervernek nincs elérhető erőforrása (hiba 2002)",
@ -731,6 +820,7 @@
"app.meeting.endNotification.ok.label": "OK", "app.meeting.endNotification.ok.label": "OK",
"app.whiteboard.annotations.poll": "A szavazás eredményeit sikeresen közzétetted", "app.whiteboard.annotations.poll": "A szavazás eredményeit sikeresen közzétetted",
"app.whiteboard.annotations.pollResult": "Szavazás eredménye", "app.whiteboard.annotations.pollResult": "Szavazás eredménye",
"app.whiteboard.annotations.noResponses": "Egy válasz sincs",
"app.whiteboard.toolbar.tools": "Eszközök", "app.whiteboard.toolbar.tools": "Eszközök",
"app.whiteboard.toolbar.tools.hand": "Mozgatás", "app.whiteboard.toolbar.tools.hand": "Mozgatás",
"app.whiteboard.toolbar.tools.pencil": "Ceruza", "app.whiteboard.toolbar.tools.pencil": "Ceruza",
@ -762,6 +852,7 @@
"app.whiteboard.toolbar.palmRejectionOn": "Érintőképernyőn rajzolás elutasítása", "app.whiteboard.toolbar.palmRejectionOn": "Érintőképernyőn rajzolás elutasítása",
"app.whiteboard.toolbar.palmRejectionOff": "Érintőképernyőn rajzolás engedélyezése", "app.whiteboard.toolbar.palmRejectionOff": "Érintőképernyőn rajzolás engedélyezése",
"app.whiteboard.toolbar.fontSize": "Betűméretek", "app.whiteboard.toolbar.fontSize": "Betűméretek",
"app.whiteboard.toolbarAriaLabel": "Prezentációs eszköz",
"app.feedback.title": "Kiléptél a beszélgetésből", "app.feedback.title": "Kiléptél a beszélgetésből",
"app.feedback.subtitle": "Örömmel vesszük, ha írsz néhány szót a BigBlueButton használatának tapasztalatairól (nem kötelező)", "app.feedback.subtitle": "Örömmel vesszük, ha írsz néhány szót a BigBlueButton használatának tapasztalatairól (nem kötelező)",
"app.feedback.textarea": "Hogyan tennéd jobbá a BigBlueButton-t?", "app.feedback.textarea": "Hogyan tennéd jobbá a BigBlueButton-t?",
@ -773,7 +864,9 @@
"app.videoDock.webcamFocusDesc": "Fókusz a kiválasztott webkamerára", "app.videoDock.webcamFocusDesc": "Fókusz a kiválasztott webkamerára",
"app.videoDock.webcamUnfocusLabel": "Fókusz elvétele", "app.videoDock.webcamUnfocusLabel": "Fókusz elvétele",
"app.videoDock.webcamUnfocusDesc": "Fókusz elvétele a kiválasztott webkameráról", "app.videoDock.webcamUnfocusDesc": "Fókusz elvétele a kiválasztott webkameráról",
"app.videoDock.webcamPinLabel": "Kitűzés",
"app.videoDock.webcamPinDesc": "Rögzítsd a kiválasztott webkamerát", "app.videoDock.webcamPinDesc": "Rögzítsd a kiválasztott webkamerát",
"app.videoDock.webcamUnpinLabel": "Kitűzés eltávolítása",
"app.videoDock.webcamUnpinLabelDisabled": "Csak Szervezők oldhatják fel a résztvevők rögzítését", "app.videoDock.webcamUnpinLabelDisabled": "Csak Szervezők oldhatják fel a résztvevők rögzítését",
"app.videoDock.webcamUnpinDesc": "Oldd fel a kiválasztott webkamerát", "app.videoDock.webcamUnpinDesc": "Oldd fel a kiválasztott webkamerát",
"app.videoDock.autoplayBlockedDesc": "Mások webkamerájának a megjelenítéséhez az engedélyedre van szükségünk.", "app.videoDock.autoplayBlockedDesc": "Mások webkamerájának a megjelenítéséhez az engedélyedre van szükségünk.",
@ -783,7 +876,9 @@
"app.createBreakoutRoom.title": "Csoporttermek", "app.createBreakoutRoom.title": "Csoporttermek",
"app.createBreakoutRoom.ariaTitle": "Csoporttermek elrejtése", "app.createBreakoutRoom.ariaTitle": "Csoporttermek elrejtése",
"app.createBreakoutRoom.breakoutRoomLabel": "{0} csoportterem", "app.createBreakoutRoom.breakoutRoomLabel": "{0} csoportterem",
"app.createBreakoutRoom.askToJoin": "Csatlakozás kérése",
"app.createBreakoutRoom.generatingURL": "URL létrehozása", "app.createBreakoutRoom.generatingURL": "URL létrehozása",
"app.createBreakoutRoom.generatingURLMessage": "Rövid időn belül legyártjuk a csoportszobához a csatlakozásai linket...",
"app.createBreakoutRoom.duration": "{0} időtartam", "app.createBreakoutRoom.duration": "{0} időtartam",
"app.createBreakoutRoom.room": "{0}. Terem", "app.createBreakoutRoom.room": "{0}. Terem",
"app.createBreakoutRoom.notAssigned": "({0}) nincs hozzárendelve", "app.createBreakoutRoom.notAssigned": "({0}) nincs hozzárendelve",
@ -797,7 +892,11 @@
"app.createBreakoutRoom.durationInMinutes": "Időtartam (percben)", "app.createBreakoutRoom.durationInMinutes": "Időtartam (percben)",
"app.createBreakoutRoom.randomlyAssign": "Véletlenszerű hozzárendelés", "app.createBreakoutRoom.randomlyAssign": "Véletlenszerű hozzárendelés",
"app.createBreakoutRoom.randomlyAssignDesc": "Véletlenszerűen rendeli a résztvevőket a csoportterembe", "app.createBreakoutRoom.randomlyAssignDesc": "Véletlenszerűen rendeli a résztvevőket a csoportterembe",
"app.createBreakoutRoom.resetAssignments": "Hozzárendelések resztelése",
"app.createBreakoutRoom.resetAssignmentsDesc": "Összes felhasználó szoba összerendelés reszetelése",
"app.createBreakoutRoom.endAllBreakouts": "Összes csoportterem bezárása", "app.createBreakoutRoom.endAllBreakouts": "Összes csoportterem bezárása",
"app.createBreakoutRoom.chatTitleMsgAllRooms": "összes szoba",
"app.createBreakoutRoom.msgToBreakoutsSent": "{0} csoportteremnek küldendő üzenet",
"app.createBreakoutRoom.roomName": "{0} (Terem - {1})", "app.createBreakoutRoom.roomName": "{0} (Terem - {1})",
"app.createBreakoutRoom.doneLabel": "Kész", "app.createBreakoutRoom.doneLabel": "Kész",
"app.createBreakoutRoom.nextLabel": "Következő", "app.createBreakoutRoom.nextLabel": "Következő",
@ -810,6 +909,13 @@
"app.createBreakoutRoom.modalDesc": "Tipp: Fogd-és-vidd a résztvevő nevét a kívánt csoportterembe.", "app.createBreakoutRoom.modalDesc": "Tipp: Fogd-és-vidd a résztvevő nevét a kívánt csoportterembe.",
"app.createBreakoutRoom.roomTime": "{0} perc", "app.createBreakoutRoom.roomTime": "{0} perc",
"app.createBreakoutRoom.numberOfRoomsError": "A termek száma érvénytelen.", "app.createBreakoutRoom.numberOfRoomsError": "A termek száma érvénytelen.",
"app.createBreakoutRoom.duplicatedRoomNameError": "A szoba neve nem duplikálható.",
"app.createBreakoutRoom.emptyRoomNameError": "A szoba neve nem lehet üres.",
"app.createBreakoutRoom.setTimeInMinutes": "Időtartam beállítása (percben)",
"app.createBreakoutRoom.setTimeLabel": "Alkalmaz",
"app.createBreakoutRoom.setTimeCancel": "Mégsem",
"app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "A csoporttermek nyitvatartási időtartama nem haladhatja meg a megbeszélésből hátralévő időt.",
"app.createBreakoutRoom.roomNameInputDesc": "Csoportterem nevének módosítása",
"app.externalVideo.start": "Egy új videó megosztása", "app.externalVideo.start": "Egy új videó megosztása",
"app.externalVideo.title": "Egy külső videó megosztása", "app.externalVideo.title": "Egy külső videó megosztása",
"app.externalVideo.input": "Külső videó URL", "app.externalVideo.input": "Külső videó URL",
@ -817,6 +923,8 @@
"app.externalVideo.urlError": "Ez a videó URL nem támogatott", "app.externalVideo.urlError": "Ez a videó URL nem támogatott",
"app.externalVideo.close": "Bezárás", "app.externalVideo.close": "Bezárás",
"app.externalVideo.autoPlayWarning": "Játszd le a videót a médiaszinkronizáció engedélyezéséhez", "app.externalVideo.autoPlayWarning": "Játszd le a videót a médiaszinkronizáció engedélyezéséhez",
"app.externalVideo.refreshLabel": "Videólejátszó frissítése",
"app.externalVideo.fullscreenLabel": "Videólejátszó",
"app.externalVideo.noteLabel": "Megjegyzés: A megosztott külső videó nem jelenik meg a felvételen. A YouTube, Vimeo, Instructure Media, Twitch, Daily Motion és média URL-ek (például https://example.com/xy.mp4) támogatottak.", "app.externalVideo.noteLabel": "Megjegyzés: A megosztott külső videó nem jelenik meg a felvételen. A YouTube, Vimeo, Instructure Media, Twitch, Daily Motion és média URL-ek (például https://example.com/xy.mp4) támogatottak.",
"app.actionsBar.actionsDropdown.shareExternalVideo": "Egy külső videó megosztása", "app.actionsBar.actionsDropdown.shareExternalVideo": "Egy külső videó megosztása",
"app.actionsBar.actionsDropdown.stopShareExternalVideo": "Külső videó megosztásának befejezése", "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Külső videó megosztásának befejezése",
@ -824,9 +932,13 @@
"app.legacy.unsupportedBrowser": "Úgy néz ki, hogy a böngésződ nem támogatott. Kérjük, használj {0} vagy {1} böngészőt a teljes támogatás érdekében.", "app.legacy.unsupportedBrowser": "Úgy néz ki, hogy a böngésződ nem támogatott. Kérjük, használj {0} vagy {1} böngészőt a teljes támogatás érdekében.",
"app.legacy.upgradeBrowser": "Úgy néz ki, hogy a böngésződ egy régi verzióját használod. Kérjük, frissítsd a böngésződet a teljes támogatás érdekében.", "app.legacy.upgradeBrowser": "Úgy néz ki, hogy a böngésződ egy régi verzióját használod. Kérjük, frissítsd a böngésződet a teljes támogatás érdekében.",
"app.legacy.criosBrowser": "iOS-en a teljes támogatáshoz használj Safari böngészőt .", "app.legacy.criosBrowser": "iOS-en a teljes támogatáshoz használj Safari böngészőt .",
"app.debugWindow.windowTitle": "Debug",
"app.debugWindow.form.userAgentLabel": "User Agent",
"app.debugWindow.form.button.copy": "Másolás", "app.debugWindow.form.button.copy": "Másolás",
"app.debugWindow.form.enableAutoarrangeLayoutLabel": "Automatikus elrendezés engedélyezése", "app.debugWindow.form.enableAutoarrangeLayoutLabel": "Automatikus elrendezés engedélyezése",
"app.debugWindow.form.enableAutoarrangeLayoutDescription": "(le van tiltva, hogy húzd vagy átméretezd a webkamerák területét)", "app.debugWindow.form.enableAutoarrangeLayoutDescription": "(le van tiltva, hogy húzd vagy átméretezd a webkamerák területét)",
"app.debugWindow.form.chatLoggerLabel": "Tesztüzenet naplózási szintjei",
"app.debugWindow.form.button.apply": "Alkalmaz",
"app.layout.style.custom": "Egyéni", "app.layout.style.custom": "Egyéni",
"app.layout.style.smart": "Intelligens elrendezés", "app.layout.style.smart": "Intelligens elrendezés",
"app.layout.style.presentationFocus": "Prezentáció a fókuszban", "app.layout.style.presentationFocus": "Prezentáció a fókuszban",
@ -835,25 +947,107 @@
"app.layout.style.smartPush": "Intelligens elrendezés (mindenkinél kikényszerítve)", "app.layout.style.smartPush": "Intelligens elrendezés (mindenkinél kikényszerítve)",
"app.layout.style.presentationFocusPush": "Prezentáció a fókuszban (mindenkinél kikényszerítve)", "app.layout.style.presentationFocusPush": "Prezentáció a fókuszban (mindenkinél kikényszerítve)",
"app.layout.style.videoFocusPush": "Video a fókuszban (mindenkinél kikényszerítve)", "app.layout.style.videoFocusPush": "Video a fókuszban (mindenkinél kikényszerítve)",
"playback.button.about.aria": "Névjegy",
"playback.button.clear.aria": "Keresés törlése",
"playback.button.close.aria": "Ablak bezárása",
"playback.button.fullscreen.aria": "Teljes képernyős tartalom",
"playback.button.restore.aria": "Tartalom visszaállítása",
"playback.button.search.aria": "Keresés",
"playback.button.section.aria": "Oldalsó rész",
"playback.button.swap.aria": "Tartalom cseréje",
"playback.button.theme.aria": "Téma felcserélése",
"playback.error.wrapper.aria": "Hiba területe",
"playback.loader.wrapper.aria": "Betöltő területe",
"playback.player.wrapper.aria": "Lejátszó területe",
"playback.player.about.modal.shortcuts.title": "Gyorsbillentyűk",
"playback.player.about.modal.shortcuts.alt": "Alt",
"playback.player.about.modal.shortcuts.shift": "Shift",
"playback.player.about.modal.shortcuts.fullscreen": "Teljes képernyő be-ki",
"playback.player.about.modal.shortcuts.play": "Lejátszás/Megállítás",
"playback.player.about.modal.shortcuts.section": "Oldalterület felcserélése",
"playback.player.about.modal.shortcuts.seek.backward": "Visszafelé keresés",
"playback.player.about.modal.shortcuts.seek.forward": "Előre keresés",
"playback.player.about.modal.shortcuts.skip.next": "Következő dia",
"playback.player.about.modal.shortcuts.skip.previous": "Előző dia",
"playback.player.about.modal.shortcuts.swap": "Tartalom cseréje",
"playback.player.chat.message.poll.name": "Szavazás eredménye",
"playback.player.chat.message.poll.question": "Kérdés",
"playback.player.chat.message.poll.options": "Lehetőségek",
"playback.player.chat.message.poll.option.yes": "Igen",
"playback.player.chat.message.poll.option.no": "Nem",
"playback.player.chat.message.poll.option.abstention": "Tartózkodás",
"playback.player.chat.message.poll.option.true": "Igaz",
"playback.player.chat.message.poll.option.false": "Hamis",
"playback.player.chat.message.video.name": "Külső videó",
"playback.player.chat.wrapper.aria": "Csevegés területe",
"playback.player.notes.wrapper.aria": "Jegyzetek területe",
"playback.player.presentation.wrapper.aria": "Prezentáció területe",
"playback.player.screenshare.wrapper.aria": "Képernyőmegosztás területe",
"playback.player.search.modal.title": "Keresés",
"playback.player.search.modal.subtitle": "Prezentációs diák tartalmának keresése ",
"playback.player.thumbnails.wrapper.aria": "Bélyegképek területe",
"playback.player.webcams.wrapper.aria": "Webkamerák területe",
"app.learningDashboard.dashboardTitle": "Aktivitáselemzés irányítópult", "app.learningDashboard.dashboardTitle": "Aktivitáselemzés irányítópult",
"app.learningDashboard.downloadSessionDataLabel": "Munkamenet-adat letöltése",
"app.learningDashboard.lastUpdatedLabel": "Utolsó módosítás időpontja:",
"app.learningDashboard.sessionDataDownloadedLabel": "Letöltve!",
"app.learningDashboard.shareButton": "Megosztás másokkal",
"app.learningDashboard.shareLinkCopied": "A linket sikeresen másolta!",
"app.learningDashboard.user": "Résztvevő", "app.learningDashboard.user": "Résztvevő",
"app.learningDashboard.indicators.meetingStatusEnded": "Lezárult",
"app.learningDashboard.indicators.meetingStatusActive": "Aktív", "app.learningDashboard.indicators.meetingStatusActive": "Aktív",
"app.learningDashboard.indicators.usersOnline": "Aktív résztvevők", "app.learningDashboard.indicators.usersOnline": "Aktív résztvevők",
"app.learningDashboard.indicators.usersTotal": "Résztvevők száma", "app.learningDashboard.indicators.usersTotal": "Résztvevők száma",
"app.learningDashboard.indicators.polls": "Szavazások", "app.learningDashboard.indicators.polls": "Szavazások",
"app.learningDashboard.indicators.timeline": "Idővonal",
"app.learningDashboard.indicators.activityScore": "Aktivitás pontszám", "app.learningDashboard.indicators.activityScore": "Aktivitás pontszám",
"app.learningDashboard.indicators.duration": "Időtartam", "app.learningDashboard.indicators.duration": "Időtartam",
"app.learningDashboard.userDetails.startTime": "Kezdő időpont",
"app.learningDashboard.userDetails.endTime": "Záró időpont",
"app.learningDashboard.userDetails.joined": "Csatlakozott",
"app.learningDashboard.userDetails.category": "Kategória",
"app.learningDashboard.userDetails.average": "Átlag",
"app.learningDashboard.userDetails.activityPoints": "Aktivitás pontszámok",
"app.learningDashboard.userDetails.poll": "Szavazás",
"app.learningDashboard.userDetails.response": "Válasz",
"app.learningDashboard.userDetails.mostCommonAnswer": "Leggyakoribb válasz",
"app.learningDashboard.userDetails.anonymousAnswer": "Névtelen szavazás",
"app.learningDashboard.usersTable.title": "Áttekintés", "app.learningDashboard.usersTable.title": "Áttekintés",
"app.learningDashboard.usersTable.colOnline": "Kapcsolódás ideje", "app.learningDashboard.usersTable.colOnline": "Kapcsolódás ideje",
"app.learningDashboard.usersTable.colTalk": "Beszélgetés ideje", "app.learningDashboard.usersTable.colTalk": "Beszélgetés ideje",
"app.learningDashboard.usersTable.colWebcam": "Webkamera ideje", "app.learningDashboard.usersTable.colWebcam": "Webkamera ideje",
"app.learningDashboard.usersTable.colMessages": "Üzenetek", "app.learningDashboard.usersTable.colMessages": "Üzenetek",
"app.learningDashboard.usersTable.colEmojis": "Hangulatjelek",
"app.learningDashboard.usersTable.colRaiseHands": "Jelentkezések", "app.learningDashboard.usersTable.colRaiseHands": "Jelentkezések",
"app.learningDashboard.usersTable.colActivityScore": "Aktivitás pontszám", "app.learningDashboard.usersTable.colActivityScore": "Aktivitás pontszám",
"app.learningDashboard.usersTable.colStatus": "Állapot", "app.learningDashboard.usersTable.colStatus": "Állapot",
"app.learningDashboard.usersTable.userStatusOnline": "Kapcsolódva", "app.learningDashboard.usersTable.userStatusOnline": "Online",
"app.learningDashboard.usersTable.userStatusOffline": "Offline",
"app.learningDashboard.usersTable.noUsers": "Még nincsenek résztvevők", "app.learningDashboard.usersTable.noUsers": "Még nincsenek résztvevők",
"app.learningDashboard.pollsTable.anonymousAnswer": "Névtelen szavazás (válaszok az utolsó sorban)" "app.learningDashboard.usersTable.name": "Név",
"app.learningDashboard.usersTable.moderator": "Moderátor",
"app.learningDashboard.usersTable.pollVotes": "Szavaztok",
"app.learningDashboard.usersTable.join": "Csatlakozás",
"app.learningDashboard.usersTable.left": "Bal",
"app.learningDashboard.usersTable.notAvailable": "N/A",
"app.learningDashboard.pollsTable.title": "Szavazások",
"app.learningDashboard.pollsTable.anonymousAnswer": "Névtelen szavazás (válaszok az utolsó sorban)",
"app.learningDashboard.pollsTable.anonymousRowName": "Névtelen",
"app.learningDashboard.pollsTable.noPollsCreatedHeading": "Egy szavazás sem jött létre",
"app.learningDashboard.pollsTable.noPollsCreatedMessage": "Miután elküldték a szavazást a felhasználóknak, eredményeik megjelennek ebben a listában.",
"app.learningDashboard.statusTimelineTable.title": "Idővonal",
"app.learningDashboard.statusTimelineTable.thumbnail": "Bemutató bélyegképe",
"app.learningDashboard.errors.invalidToken": "Érvénytelen munkamenet-token",
"app.learningDashboard.errors.dataUnavailable": "Az adat többé nem érhető el",
"mobileApp.portals.list.empty.label": "Portálok hozzáadása.",
"mobileApp.portals.list.add.button.label": "Új portál",
"mobileApp.portals.fields.name.label": "Portál neve",
"mobileApp.portals.fields.name.placeholder": "BigBlueButton demo",
"mobileApp.portals.fields.url.label": "Szerver URL-je",
"mobileApp.portals.addPortalPopup.confirm.button.label": "Portál hozzáadása",
"mobileApp.portals.drawerNavigation.button.label": "Portálok",
"mobileApp.portals.addPortalPopup.validation.emptyFilds": "Üres mezők",
"mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Ez a név már létezik"
} }

View File

@ -695,7 +695,6 @@
"app.lock-viewers.button.apply": "Ընդունել", "app.lock-viewers.button.apply": "Ընդունել",
"app.lock-viewers.button.cancel": "Չեղարկել", "app.lock-viewers.button.cancel": "Չեղարկել",
"app.lock-viewers.locked": "Արգելափակված է", "app.lock-viewers.locked": "Արգելափակված է",
"app.lock-viewers.unlocked": "Արգելափակված չէ",
"app.guest-policy.ariaTitle": "Հյուրերի միանալու կանոնների պատուհան", "app.guest-policy.ariaTitle": "Հյուրերի միանալու կանոնների պատուհան",
"app.guest-policy.title": "Հյուրերի միանալու կանոններ", "app.guest-policy.title": "Հյուրերի միանալու կանոններ",
"app.guest-policy.description": "Փոխել հյուրերի միանալու կանոնները", "app.guest-policy.description": "Փոխել հյուրերի միանալու կանոնները",

View File

@ -648,7 +648,6 @@
"app.lock-viewers.button.apply": "Terapkan", "app.lock-viewers.button.apply": "Terapkan",
"app.lock-viewers.button.cancel": "Batalkan", "app.lock-viewers.button.cancel": "Batalkan",
"app.lock-viewers.locked": "Terkunci", "app.lock-viewers.locked": "Terkunci",
"app.lock-viewers.unlocked": "Tak Terkunci",
"app.guest-policy.title": "Kebijakan tamu", "app.guest-policy.title": "Kebijakan tamu",
"app.guest-policy.description": "Ubah pengaturan kebijakan tamu pertemuan", "app.guest-policy.description": "Ubah pengaturan kebijakan tamu pertemuan",
"app.guest-policy.button.askModerator": "Tanya moderator", "app.guest-policy.button.askModerator": "Tanya moderator",

View File

@ -669,7 +669,6 @@
"app.lock-viewers.button.apply": "Applica", "app.lock-viewers.button.apply": "Applica",
"app.lock-viewers.button.cancel": "Annulla", "app.lock-viewers.button.cancel": "Annulla",
"app.lock-viewers.locked": "Bloccato", "app.lock-viewers.locked": "Bloccato",
"app.lock-viewers.unlocked": "Sbloccato",
"app.guest-policy.ariaTitle": "Finestra impostazioni regolamento degli ospiti", "app.guest-policy.ariaTitle": "Finestra impostazioni regolamento degli ospiti",
"app.guest-policy.title": "Regolamento degli ospiti", "app.guest-policy.title": "Regolamento degli ospiti",
"app.guest-policy.description": "Modifica impostazioni sulle norme degli ospiti al meeting", "app.guest-policy.description": "Modifica impostazioni sulle norme degli ospiti al meeting",
@ -908,12 +907,8 @@
"playback.error.wrapper.aria": "Area errori", "playback.error.wrapper.aria": "Area errori",
"playback.loader.wrapper.aria": "Area caricatore", "playback.loader.wrapper.aria": "Area caricatore",
"playback.player.wrapper.aria": "Area riproduttore", "playback.player.wrapper.aria": "Area riproduttore",
"playback.player.about.modal.shortcuts.title": "Scorciatoie",
"playback.player.about.modal.shortcuts.alt": "Alt",
"playback.player.about.modal.shortcuts.shift": "Shift",
"playback.player.about.modal.shortcuts.skip.next": "Prossima slide", "playback.player.about.modal.shortcuts.skip.next": "Prossima slide",
"playback.player.about.modal.shortcuts.skip.previous": "Slide precedente", "playback.player.about.modal.shortcuts.skip.previous": "Slide precedente",
"playback.player.about.modal.shortcuts.swap": "Scambia contenuto",
"playback.player.chat.message.poll.name": "Risultati sondaggio", "playback.player.chat.message.poll.name": "Risultati sondaggio",
"playback.player.chat.message.poll.question": "Domanda", "playback.player.chat.message.poll.question": "Domanda",
"playback.player.chat.message.poll.options": "Opzioni", "playback.player.chat.message.poll.options": "Opzioni",

View File

@ -132,6 +132,8 @@
"app.userList.userOptions.savedNames.title": "{0}の会議の{1}のユーザーリスト", "app.userList.userOptions.savedNames.title": "{0}の会議の{1}のユーザーリスト",
"app.userList.userOptions.sortedFirstName.heading": "第一語でソート", "app.userList.userOptions.sortedFirstName.heading": "第一語でソート",
"app.userList.userOptions.sortedLastName.heading": "第二語でソート", "app.userList.userOptions.sortedLastName.heading": "第二語でソート",
"app.userList.userOptions.hideViewersCursor": "ビューアーのカーソルがロックされました",
"app.userList.userOptions.showViewersCursor": "ビューアーのカーソルロックが解除されました",
"app.media.label": "メディア", "app.media.label": "メディア",
"app.media.autoplayAlertDesc": "アクセス許可", "app.media.autoplayAlertDesc": "アクセス許可",
"app.media.screenshare.start": "画面共有を開始しました", "app.media.screenshare.start": "画面共有を開始しました",
@ -562,6 +564,7 @@
"app.audio.audioSettings.descriptionLabel": "マイク共有の許可を求めるダイアログがブラウザ内に現われますのでご了承ください。", "app.audio.audioSettings.descriptionLabel": "マイク共有の許可を求めるダイアログがブラウザ内に現われますのでご了承ください。",
"app.audio.audioSettings.microphoneSourceLabel": "マイクのソース", "app.audio.audioSettings.microphoneSourceLabel": "マイクのソース",
"app.audio.audioSettings.speakerSourceLabel": "スピーカーのソース", "app.audio.audioSettings.speakerSourceLabel": "スピーカーのソース",
"app.audio.audioSettings.testSpeakerLabel": "スピーカーをテストする",
"app.audio.audioSettings.microphoneStreamLabel": "音声ストリームの音量", "app.audio.audioSettings.microphoneStreamLabel": "音声ストリームの音量",
"app.audio.audioSettings.retryLabel": "再試行", "app.audio.audioSettings.retryLabel": "再試行",
"app.audio.listenOnly.backLabel": "戻る", "app.audio.listenOnly.backLabel": "戻る",
@ -695,7 +698,7 @@
"app.lock-viewers.button.apply": "適用", "app.lock-viewers.button.apply": "適用",
"app.lock-viewers.button.cancel": "キャンセル", "app.lock-viewers.button.cancel": "キャンセル",
"app.lock-viewers.locked": "禁止", "app.lock-viewers.locked": "禁止",
"app.lock-viewers.unlocked": "許可", "app.lock-viewers.hideViewersCursor": "他のビューアーのカーソルを表示する",
"app.guest-policy.ariaTitle": "入室許可設定モーダル", "app.guest-policy.ariaTitle": "入室許可設定モーダル",
"app.guest-policy.title": "入室許可設定", "app.guest-policy.title": "入室許可設定",
"app.guest-policy.description": "会議室の入室許可設定を変更する", "app.guest-policy.description": "会議室の入室許可設定を変更する",
@ -952,6 +955,7 @@
"playback.button.search.aria": "検索", "playback.button.search.aria": "検索",
"playback.button.section.aria": "サイドセクション", "playback.button.section.aria": "サイドセクション",
"playback.button.swap.aria": "コンテンツの入れ替え", "playback.button.swap.aria": "コンテンツの入れ替え",
"playback.button.theme.aria": "テーマの切り替え",
"playback.error.wrapper.aria": "エラーエリア", "playback.error.wrapper.aria": "エラーエリア",
"playback.loader.wrapper.aria": "ローダーエリア", "playback.loader.wrapper.aria": "ローダーエリア",
"playback.player.wrapper.aria": "プレイヤーエリア", "playback.player.wrapper.aria": "プレイヤーエリア",

View File

@ -539,7 +539,6 @@
"app.lock-viewers.button.apply": "გამოყენება", "app.lock-viewers.button.apply": "გამოყენება",
"app.lock-viewers.button.cancel": "გაუქმება", "app.lock-viewers.button.cancel": "გაუქმება",
"app.lock-viewers.locked": "ჩაკეტილია", "app.lock-viewers.locked": "ჩაკეტილია",
"app.lock-viewers.unlocked": "გახსნილია",
"app.connection-status.title": "კავშირის სტატუსი", "app.connection-status.title": "კავშირის სტატუსი",
"app.connection-status.more": "მეტი", "app.connection-status.more": "მეტი",
"app.connection-status.copied": "დაკოპირებულია!", "app.connection-status.copied": "დაკოპირებულია!",

View File

@ -481,7 +481,6 @@
"app.lock-viewers.button.apply": "ಅನ್ವಯಿಸು", "app.lock-viewers.button.apply": "ಅನ್ವಯಿಸು",
"app.lock-viewers.button.cancel": "ರದ್ದುಮಾಡಿ", "app.lock-viewers.button.cancel": "ರದ್ದುಮಾಡಿ",
"app.lock-viewers.locked": "ಲಾಕ್ ಮಾಡಲಾಗಿದೆ", "app.lock-viewers.locked": "ಲಾಕ್ ಮಾಡಲಾಗಿದೆ",
"app.lock-viewers.unlocked": "ಅನ್ಲಾಕ್ ಮಾಡಲಾಗಿದೆ",
"app.recording.startTitle": "ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಿ", "app.recording.startTitle": "ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಿ",
"app.recording.stopTitle": "ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಿ", "app.recording.stopTitle": "ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಿ",
"app.recording.resumeTitle": "ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ಪುನರಾರಂಭಿಸಿ", "app.recording.resumeTitle": "ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ಪುನರಾರಂಭಿಸಿ",

View File

@ -647,7 +647,6 @@
"app.lock-viewers.button.apply": "적용", "app.lock-viewers.button.apply": "적용",
"app.lock-viewers.button.cancel": "취소", "app.lock-viewers.button.cancel": "취소",
"app.lock-viewers.locked": "잠김", "app.lock-viewers.locked": "잠김",
"app.lock-viewers.unlocked": "해제",
"app.guest-policy.ariaTitle": "참여자 승인 정책 설정 모달", "app.guest-policy.ariaTitle": "참여자 승인 정책 설정 모달",
"app.guest-policy.title": "참여자 승인 정책", "app.guest-policy.title": "참여자 승인 정책",
"app.guest-policy.description": "참여자 승인 정책 변경", "app.guest-policy.description": "참여자 승인 정책 변경",

View File

@ -519,7 +519,6 @@
"app.lock-viewers.button.apply": "Taikyti", "app.lock-viewers.button.apply": "Taikyti",
"app.lock-viewers.button.cancel": "Atšaukti", "app.lock-viewers.button.cancel": "Atšaukti",
"app.lock-viewers.locked": "Užrakinta", "app.lock-viewers.locked": "Užrakinta",
"app.lock-viewers.unlocked": "Atrakinta",
"app.connection-status.title": "Ryšio būsena", "app.connection-status.title": "Ryšio būsena",
"app.connection-status.description": "Peržiūrėti naudotojų ryšio būseną", "app.connection-status.description": "Peržiūrėti naudotojų ryšio būseną",
"app.connection-status.more": "daugiau", "app.connection-status.more": "daugiau",

View File

@ -479,7 +479,6 @@
"app.lock-viewers.button.apply": "Pielietot", "app.lock-viewers.button.apply": "Pielietot",
"app.lock-viewers.button.cancel": "Atcelt", "app.lock-viewers.button.cancel": "Atcelt",
"app.lock-viewers.locked": "Slēgts/bloķēts", "app.lock-viewers.locked": "Slēgts/bloķēts",
"app.lock-viewers.unlocked": "Atslēgts/nebloķēts",
"app.recording.startTitle": "Sākt ierakstu", "app.recording.startTitle": "Sākt ierakstu",
"app.recording.stopTitle": "Pauzēt ierakstu", "app.recording.stopTitle": "Pauzēt ierakstu",
"app.recording.resumeTitle": "Turpināt ierakstu", "app.recording.resumeTitle": "Turpināt ierakstu",

View File

@ -629,7 +629,6 @@
"app.lock-viewers.button.apply": "പ്രയോഗിക്കുക", "app.lock-viewers.button.apply": "പ്രയോഗിക്കുക",
"app.lock-viewers.button.cancel": "റദ്ദാക്കുക", "app.lock-viewers.button.cancel": "റദ്ദാക്കുക",
"app.lock-viewers.locked": "ലോക്കുചെയ്‌തു", "app.lock-viewers.locked": "ലോക്കുചെയ്‌തു",
"app.lock-viewers.unlocked": "അൺലോക്കുചെയ്‌തു",
"app.guest-policy.ariaTitle": "അതിഥി നയ ക്രമീകരണ മോഡൽ", "app.guest-policy.ariaTitle": "അതിഥി നയ ക്രമീകരണ മോഡൽ",
"app.guest-policy.title": "അതിഥി നയം", "app.guest-policy.title": "അതിഥി നയം",
"app.guest-policy.description": "മീറ്റിംഗ് അതിഥി നയ ക്രമീകരണം മാറ്റുക", "app.guest-policy.description": "മീറ്റിംഗ് അതിഥി നയ ക്രമീകരണം മാറ്റുക",

View File

@ -486,7 +486,6 @@
"app.lock-viewers.button.apply": "Bruk", "app.lock-viewers.button.apply": "Bruk",
"app.lock-viewers.button.cancel": "Avbryt", "app.lock-viewers.button.cancel": "Avbryt",
"app.lock-viewers.locked": "Låst", "app.lock-viewers.locked": "Låst",
"app.lock-viewers.unlocked": "Opplåst",
"app.recording.startTitle": "Start innspilling", "app.recording.startTitle": "Start innspilling",
"app.recording.stopTitle": "Pause innspilling", "app.recording.stopTitle": "Pause innspilling",
"app.recording.resumeTitle": "Gjenoppta innspilling", "app.recording.resumeTitle": "Gjenoppta innspilling",

View File

@ -695,7 +695,6 @@
"app.lock-viewers.button.apply": "Toepassen", "app.lock-viewers.button.apply": "Toepassen",
"app.lock-viewers.button.cancel": "Annuleren", "app.lock-viewers.button.cancel": "Annuleren",
"app.lock-viewers.locked": "Vergrendeld", "app.lock-viewers.locked": "Vergrendeld",
"app.lock-viewers.unlocked": "Ontgrendeld",
"app.guest-policy.ariaTitle": "Modale instellingen voor het beleid voor gasten", "app.guest-policy.ariaTitle": "Modale instellingen voor het beleid voor gasten",
"app.guest-policy.title": "Beleid voor gasten", "app.guest-policy.title": "Beleid voor gasten",
"app.guest-policy.description": "Wijzig de instellingen van het beleid voor gasten", "app.guest-policy.description": "Wijzig de instellingen van het beleid voor gasten",

View File

@ -625,7 +625,6 @@
"app.lock-viewers.button.apply": "Zastosuj", "app.lock-viewers.button.apply": "Zastosuj",
"app.lock-viewers.button.cancel": "Anuluj", "app.lock-viewers.button.cancel": "Anuluj",
"app.lock-viewers.locked": "Zablokowane", "app.lock-viewers.locked": "Zablokowane",
"app.lock-viewers.unlocked": "Odblokowane",
"app.guest-policy.ariaTitle": "Okno ustawień polityki gości", "app.guest-policy.ariaTitle": "Okno ustawień polityki gości",
"app.guest-policy.title": "Polityka gości", "app.guest-policy.title": "Polityka gości",
"app.guest-policy.description": "Zmień ustawienia polityki gości spotkania", "app.guest-policy.description": "Zmień ustawienia polityki gości spotkania",

View File

@ -648,7 +648,6 @@
"app.lock-viewers.button.apply": "Aplicar", "app.lock-viewers.button.apply": "Aplicar",
"app.lock-viewers.button.cancel": "Cancelar", "app.lock-viewers.button.cancel": "Cancelar",
"app.lock-viewers.locked": "Bloqueado", "app.lock-viewers.locked": "Bloqueado",
"app.lock-viewers.unlocked": "Desbloqueado",
"app.guest-policy.ariaTitle": "Janela de configurações da política de convidado", "app.guest-policy.ariaTitle": "Janela de configurações da política de convidado",
"app.guest-policy.title": "Política de convidado", "app.guest-policy.title": "Política de convidado",
"app.guest-policy.description": "Alterar configuração da política de convidados da sessão", "app.guest-policy.description": "Alterar configuração da política de convidados da sessão",

View File

@ -6,6 +6,7 @@
"app.chat.disconnected": "Você está desconectado, as mensagens não podem ser enviadas", "app.chat.disconnected": "Você está desconectado, as mensagens não podem ser enviadas",
"app.chat.locked": "O bate-papo está bloqueado, as mensagens não podem ser enviadas", "app.chat.locked": "O bate-papo está bloqueado, as mensagens não podem ser enviadas",
"app.chat.inputLabel": "Entrada de mensagem para o bate-papo {0}", "app.chat.inputLabel": "Entrada de mensagem para o bate-papo {0}",
"app.chat.inputPlaceholder": "Mensagem {0}",
"app.chat.titlePublic": "Bate-papo público", "app.chat.titlePublic": "Bate-papo público",
"app.chat.titlePrivate": "Bate-papo privado com {0}", "app.chat.titlePrivate": "Bate-papo privado com {0}",
"app.chat.partnerDisconnected": "{0} saiu da sessão", "app.chat.partnerDisconnected": "{0} saiu da sessão",
@ -19,6 +20,7 @@
"app.chat.label": "Bate-papo", "app.chat.label": "Bate-papo",
"app.chat.offline": "Offline", "app.chat.offline": "Offline",
"app.chat.pollResult": "Resultados da enquete", "app.chat.pollResult": "Resultados da enquete",
"app.chat.breakoutDurationUpdated": "Tempo das salas de apoio agora é de {0} minutos",
"app.chat.emptyLogLabel": "Registro do bate-papo vazio", "app.chat.emptyLogLabel": "Registro do bate-papo vazio",
"app.chat.clearPublicChatMessage": "O histórico do bate-papo público foi apagado por um moderador", "app.chat.clearPublicChatMessage": "O histórico do bate-papo público foi apagado por um moderador",
"app.chat.multi.typing": "Múltiplos usuários estão digitando", "app.chat.multi.typing": "Múltiplos usuários estão digitando",
@ -41,14 +43,23 @@
"app.captions.menu.backgroundColor": "Cor de fundo", "app.captions.menu.backgroundColor": "Cor de fundo",
"app.captions.menu.previewLabel": "Visualizar", "app.captions.menu.previewLabel": "Visualizar",
"app.captions.menu.cancelLabel": "Cancelar", "app.captions.menu.cancelLabel": "Cancelar",
"app.captions.hide": "Ocultar legendas",
"app.captions.ownership": "Assumir o controle",
"app.captions.ownershipTooltip": "Você recebeu o controle das legendas {0}",
"app.captions.dictationStart": "Iniciar ditado",
"app.captions.dictationStop": "Encerrar ditado",
"app.captions.dictationOnDesc": "Ativar o reconhecimento de fala",
"app.captions.dictationOffDesc": "Desativar o reconhecimento de fala",
"app.captions.speech.start": "Reconhecimento de fala iniciado",
"app.captions.speech.stop": "Reconhecimento de fala encerrado",
"app.captions.speech.error": "O reconhecimento de fala parou devido à incompatibilidade do navegador ou algum tempo de silêncio",
"app.textInput.sendLabel": "Enviar", "app.textInput.sendLabel": "Enviar",
"app.title.defaultViewLabel": "Visualização da apresentação padrão", "app.title.defaultViewLabel": "Visualização da apresentação padrão",
"app.note.title": "Notas compartilhadas", "app.notes.title": "Notas compartilhadas",
"app.note.label": "Notas", "app.notes.label": "Notas",
"app.note.hideNoteLabel": "Ocultar notas", "app.notes.hide": "Ocultar notas",
"app.note.converter-button.convertAndUpload": "Adicionar notas compartilhadas como apresentação", "app.notes.locked": "Bloqueado",
"app.note.tipLabel": "Pressione Esc para focar na barra de ferramentas do editor", "app.pads.hint": "Pressione Esc para focar na barra de ferramentas do editor",
"app.note.locked": "Bloqueado",
"app.user.activityCheck": "Verificação de atividade do usuário", "app.user.activityCheck": "Verificação de atividade do usuário",
"app.user.activityCheck.label": "Verifica se o usuário ainda está na sala ({0})", "app.user.activityCheck.label": "Verifica se o usuário ainda está na sala ({0})",
"app.user.activityCheck.check": "Verificar", "app.user.activityCheck.check": "Verificar",
@ -107,6 +118,7 @@
"app.userList.userOptions.disableMic": "Microfones dos participantes estão desabilitados", "app.userList.userOptions.disableMic": "Microfones dos participantes estão desabilitados",
"app.userList.userOptions.disablePrivChat": "Bate-papo privado está desabilitado", "app.userList.userOptions.disablePrivChat": "Bate-papo privado está desabilitado",
"app.userList.userOptions.disablePubChat": "Bate-papo público está desabilitado", "app.userList.userOptions.disablePubChat": "Bate-papo público está desabilitado",
"app.userList.userOptions.disableNotes": "Notas compartilhadas agora estão bloqueadas",
"app.userList.userOptions.hideUserList": "A lista de participantes agora está oculta para os espectadores", "app.userList.userOptions.hideUserList": "A lista de participantes agora está oculta para os espectadores",
"app.userList.userOptions.webcamsOnlyForModerator": "Somente os moderadores podem ver as webcams dos participantes (devido às configurações de bloqueio)", "app.userList.userOptions.webcamsOnlyForModerator": "Somente os moderadores podem ver as webcams dos participantes (devido às configurações de bloqueio)",
"app.userList.content.participants.options.clearedStatus": "Status de todos os participantes redefinidos", "app.userList.content.participants.options.clearedStatus": "Status de todos os participantes redefinidos",
@ -114,16 +126,19 @@
"app.userList.userOptions.enableMic": "Os participantes podem usar seus microfones", "app.userList.userOptions.enableMic": "Os participantes podem usar seus microfones",
"app.userList.userOptions.enablePrivChat": "Bate-papo privado está liberado", "app.userList.userOptions.enablePrivChat": "Bate-papo privado está liberado",
"app.userList.userOptions.enablePubChat": "Bate-papo público está liberado", "app.userList.userOptions.enablePubChat": "Bate-papo público está liberado",
"app.userList.userOptions.enableNotes": "Notas compartilhadas estão liberadas",
"app.userList.userOptions.showUserList": "A lista de participantes agora está visível aos espectadores", "app.userList.userOptions.showUserList": "A lista de participantes agora está visível aos espectadores",
"app.userList.userOptions.enableOnlyModeratorWebcam": "Você pode habilitar sua webcam agora, todo mundo vai ver você", "app.userList.userOptions.enableOnlyModeratorWebcam": "Você pode habilitar sua webcam agora, todo mundo vai ver você",
"app.userList.userOptions.savedNames.title": "Lista de usuários na sessão {0} em {1}", "app.userList.userOptions.savedNames.title": "Lista de usuários na sessão {0} em {1}",
"app.userList.userOptions.sortedFirstName.heading": "Ordenado pelo primeiro nome:", "app.userList.userOptions.sortedFirstName.heading": "Ordenado pelo primeiro nome:",
"app.userList.userOptions.sortedLastName.heading": "Ordenado pelo último nome:", "app.userList.userOptions.sortedLastName.heading": "Ordenado pelo último nome:",
"app.userList.userOptions.hideViewersCursor": "Cursores dos participantes estão bloqueados",
"app.userList.userOptions.showViewersCursor": "Cursores dos participantes estão liberados",
"app.media.label": "Mídia", "app.media.label": "Mídia",
"app.media.autoplayAlertDesc": "Permitir acesso", "app.media.autoplayAlertDesc": "Permitir acesso",
"app.media.screenshare.start": "O compartilhamento de tela foi iniciado", "app.media.screenshare.start": "O compartilhamento de tela foi iniciado",
"app.media.screenshare.end": "O compartilhamento de tela foi encerrado", "app.media.screenshare.end": "O compartilhamento de tela foi encerrado",
"app.media.screenshare.endDueToDataSaving": "O compartilhamento de tela foi interrompido devido à economia de dados", "app.media.screenshare.endDueToDataSaving": "Compartilhamento de tela parado por economia de dados",
"app.media.screenshare.unavailable": "Compartilhamento de tela indisponível", "app.media.screenshare.unavailable": "Compartilhamento de tela indisponível",
"app.media.screenshare.notSupported": "Compartilhamento de tela não suportado neste navegador.", "app.media.screenshare.notSupported": "Compartilhamento de tela não suportado neste navegador.",
"app.media.screenshare.autoplayBlockedDesc": "Precisamos da sua permissão para mostrar a tela do apresentador.", "app.media.screenshare.autoplayBlockedDesc": "Precisamos da sua permissão para mostrar a tela do apresentador.",
@ -153,8 +168,15 @@
"app.presentation.slideContent": "Conteúdo do slide", "app.presentation.slideContent": "Conteúdo do slide",
"app.presentation.startSlideContent": "Início do conteúdo do slide", "app.presentation.startSlideContent": "Início do conteúdo do slide",
"app.presentation.endSlideContent": "Fim do conteúdo do slide", "app.presentation.endSlideContent": "Fim do conteúdo do slide",
"app.presentation.changedSlideContent": "Apresentação alterada para slide: {0}", "app.presentation.changedSlideContent": "Apresentação alterada para o slide: {0}",
"app.presentation.emptySlideContent": "Nenhum conteúdo no slide atual", "app.presentation.emptySlideContent": "Nenhum conteúdo no slide atual",
"app.presentation.options.fullscreen": "Tela cheia",
"app.presentation.options.exitFullscreen": "Sair de tela cheia",
"app.presentation.options.minimize": "Minimizar",
"app.presentation.options.snapshot": "Salvar imagem da apresentação",
"app.presentation.options.downloading": "Downloading...",
"app.presentation.options.downloaded": "Donwload da apresentação atual encerrado",
"app.presentation.options.downloadFailed": "Não foi possível fazer o download da apresentação atual",
"app.presentation.presentationToolbar.noNextSlideDesc": "Fim da apresentação", "app.presentation.presentationToolbar.noNextSlideDesc": "Fim da apresentação",
"app.presentation.presentationToolbar.noPrevSlideDesc": "Início da apresentação", "app.presentation.presentationToolbar.noPrevSlideDesc": "Início da apresentação",
"app.presentation.presentationToolbar.selectLabel": "Selecione o slide", "app.presentation.presentationToolbar.selectLabel": "Selecione o slide",
@ -179,6 +201,7 @@
"app.presentation.presentationToolbar.fitToWidth": "Ajustar à largura", "app.presentation.presentationToolbar.fitToWidth": "Ajustar à largura",
"app.presentation.presentationToolbar.fitToPage": "Ajustar à página", "app.presentation.presentationToolbar.fitToPage": "Ajustar à página",
"app.presentation.presentationToolbar.goToSlide": "Slide {0}", "app.presentation.presentationToolbar.goToSlide": "Slide {0}",
"app.presentation.placeholder": "No momento não há apresentação ativa",
"app.presentationUploder.title": "Apresentação", "app.presentationUploder.title": "Apresentação",
"app.presentationUploder.message": "Como apresentador, você pode enviar qualquer documento do Office ou arquivo PDF. Para melhores resultados, recomendamos que se carregue arquivos em PDF. Por favor, certifique-se de que uma apresentação seja selecionada usando a caixa de seleção circular à direita.", "app.presentationUploder.message": "Como apresentador, você pode enviar qualquer documento do Office ou arquivo PDF. Para melhores resultados, recomendamos que se carregue arquivos em PDF. Por favor, certifique-se de que uma apresentação seja selecionada usando a caixa de seleção circular à direita.",
"app.presentationUploder.extraHint": "IMPORTANTE: cada arquivo não pode exceder {0} MB e {1} páginas.", "app.presentationUploder.extraHint": "IMPORTANTE: cada arquivo não pode exceder {0} MB e {1} páginas.",
@ -194,7 +217,7 @@
"app.presentationUploder.fileToUpload": "Carregar arquivo...", "app.presentationUploder.fileToUpload": "Carregar arquivo...",
"app.presentationUploder.currentBadge": "Atual", "app.presentationUploder.currentBadge": "Atual",
"app.presentationUploder.rejectedError": "Os arquivos selecionados foram rejeitados. Por favor, verifique os tipos de arquivos permitidos.", "app.presentationUploder.rejectedError": "Os arquivos selecionados foram rejeitados. Por favor, verifique os tipos de arquivos permitidos.",
"app.presentationUploder.connectionClosedError": "Interrompido por conectividade ruim. Por favor, tente novamente.", "app.presentationUploder.connectionClosedError": "Interrompido por problemas de conectividade. Por favor tente novamente.",
"app.presentationUploder.upload.progress": "Carregando ({0}%)", "app.presentationUploder.upload.progress": "Carregando ({0}%)",
"app.presentationUploder.upload.413": "O arquivo é muito grande, excedeu o limite de {0} MB", "app.presentationUploder.upload.413": "O arquivo é muito grande, excedeu o limite de {0} MB",
"app.presentationUploder.genericError": "Ops, algo deu errado ...", "app.presentationUploder.genericError": "Ops, algo deu errado ...",
@ -229,6 +252,7 @@
"app.presentationUploder.clearErrorsDesc": "Limpar envios de apresentações com falhas", "app.presentationUploder.clearErrorsDesc": "Limpar envios de apresentações com falhas",
"app.presentationUploder.uploadViewTitle": "Carregar apresentação", "app.presentationUploder.uploadViewTitle": "Carregar apresentação",
"app.poll.pollPaneTitle": "Enquete", "app.poll.pollPaneTitle": "Enquete",
"app.poll.enableMultipleResponseLabel": "Permitir múltiplas respostas por participante?",
"app.poll.quickPollTitle": "Enquete rápida", "app.poll.quickPollTitle": "Enquete rápida",
"app.poll.hidePollDesc": "Ocultar menu de enquetes", "app.poll.hidePollDesc": "Ocultar menu de enquetes",
"app.poll.quickPollInstruction": "Selecione uma opção abaixo para iniciar uma enquete.", "app.poll.quickPollInstruction": "Selecione uma opção abaixo para iniciar uma enquete.",
@ -339,6 +363,7 @@
"app.endMeeting.noLabel": "Não", "app.endMeeting.noLabel": "Não",
"app.about.title": "Sobre", "app.about.title": "Sobre",
"app.about.version": "Versão do cliente:", "app.about.version": "Versão do cliente:",
"app.about.version_label": "Versão do BigBlueButton:",
"app.about.copyright": "Copyright:", "app.about.copyright": "Copyright:",
"app.about.confirmLabel": "OK", "app.about.confirmLabel": "OK",
"app.about.confirmDesc": "OK", "app.about.confirmDesc": "OK",
@ -402,6 +427,7 @@
"app.settings.dataSavingTab.description": "Para economizar o volume de transferência de dados, ajuste o que está sendo exibido no momento.", "app.settings.dataSavingTab.description": "Para economizar o volume de transferência de dados, ajuste o que está sendo exibido no momento.",
"app.settings.save-notification.label": "As configurações foram salvas", "app.settings.save-notification.label": "As configurações foram salvas",
"app.statusNotifier.lowerHands": "Mãos baixadas", "app.statusNotifier.lowerHands": "Mãos baixadas",
"app.statusNotifier.lowerHandDescOneUser": "Abaixar a mão de {0}",
"app.statusNotifier.raisedHandsTitle": "Mãos levantadas", "app.statusNotifier.raisedHandsTitle": "Mãos levantadas",
"app.statusNotifier.raisedHandDesc": "{0} levantaram as mãos", "app.statusNotifier.raisedHandDesc": "{0} levantaram as mãos",
"app.statusNotifier.raisedHandDescOneUser": "{0} levantou a mão", "app.statusNotifier.raisedHandDescOneUser": "{0} levantou a mão",
@ -484,6 +510,9 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Escolha uma sala de apoio para entrar", "app.breakoutJoinConfirmation.freeJoinMessage": "Escolha uma sala de apoio para entrar",
"app.breakoutTimeRemainingMessage": "Tempo restante na sala de apoio: {0}", "app.breakoutTimeRemainingMessage": "Tempo restante na sala de apoio: {0}",
"app.breakoutWillCloseMessage": "Tempo expirado. A sala de apoio será fechada em breve", "app.breakoutWillCloseMessage": "Tempo expirado. A sala de apoio será fechada em breve",
"app.breakout.dropdown.manageDuration": "Gerenciar duração",
"app.breakout.dropdown.destroyAll": "Encerrar salas de apoio",
"app.breakout.dropdown.options": "Opções das salas de apoio",
"app.calculatingBreakoutTimeRemaining": "Calculando o tempo restante...", "app.calculatingBreakoutTimeRemaining": "Calculando o tempo restante...",
"app.audioModal.ariaTitle": "Janela de ativação de áudio", "app.audioModal.ariaTitle": "Janela de ativação de áudio",
"app.audioModal.microphoneLabel": "Microfone", "app.audioModal.microphoneLabel": "Microfone",
@ -595,8 +624,10 @@
"app.guest.guestDeny": "Convidado teve sua entrada negada.", "app.guest.guestDeny": "Convidado teve sua entrada negada.",
"app.guest.seatWait": "Convidado aguardando uma vaga na reunião.", "app.guest.seatWait": "Convidado aguardando uma vaga na reunião.",
"app.guest.allow": "Convidado aprovado e sendo redirecionado para a sessão.", "app.guest.allow": "Convidado aprovado e sendo redirecionado para a sessão.",
"app.guest.guestInvalid": "O usuário convidado é inválido", "app.guest.firstPositionInWaitingQueue": "Você é o primeiro da fila!",
"app.guest.meetingForciblyEnded": "Você não pode entrar em uma reunião que já foi encerrada", "app.guest.positionInWaitingQueue": "Sua posição atual na fila de espera é:",
"app.guest.guestInvalid": "Convidado inválido",
"app.guest.meetingForciblyEnded": "Você não pode acessar uma sessão que já foi encerrada",
"app.userList.guest.waitingUsers": "Aguardando", "app.userList.guest.waitingUsers": "Aguardando",
"app.userList.guest.waitingUsersTitle": "Convidados", "app.userList.guest.waitingUsersTitle": "Convidados",
"app.userList.guest.optionTitle": "Usuários aguardando aprovação", "app.userList.guest.optionTitle": "Usuários aguardando aprovação",
@ -605,11 +636,14 @@
"app.userList.guest.allowEveryone": "Permitir todos", "app.userList.guest.allowEveryone": "Permitir todos",
"app.userList.guest.denyEveryone": "Rejeitar todos", "app.userList.guest.denyEveryone": "Rejeitar todos",
"app.userList.guest.pendingUsers": "{0} usuários aguardando", "app.userList.guest.pendingUsers": "{0} usuários aguardando",
"app.userList.guest.noPendingUsers": "Sem usuários aguardando...",
"app.userList.guest.pendingGuestUsers": "{0} usuários convidados aguardando", "app.userList.guest.pendingGuestUsers": "{0} usuários convidados aguardando",
"app.userList.guest.pendingGuestAlert": "entrou na sessão e está aguardando sua aprovação.", "app.userList.guest.pendingGuestAlert": "entrou na sessão e está aguardando sua aprovação.",
"app.userList.guest.rememberChoice": "Lembrar escolha", "app.userList.guest.rememberChoice": "Lembrar escolha",
"app.userList.guest.emptyMessage": "Atualmente não há mensagem", "app.userList.guest.emptyMessage": "Atualmente não há mensagem",
"app.userList.guest.inputPlaceholder": "Mensagem para a sala de espera", "app.userList.guest.inputPlaceholder": "Mensagem para a sala de espera",
"app.userList.guest.privateInputPlaceholder": "Mensagem para {0}",
"app.userList.guest.privateMessageLabel": "Mensagem",
"app.userList.guest.acceptLabel": "Aceitar", "app.userList.guest.acceptLabel": "Aceitar",
"app.userList.guest.denyLabel": "Recusar", "app.userList.guest.denyLabel": "Recusar",
"app.user-info.title": "Pesquisa de Diretório", "app.user-info.title": "Pesquisa de Diretório",
@ -622,6 +656,9 @@
"app.toast.meetingMuteOn.label": "Todos os participantes foram silenciados", "app.toast.meetingMuteOn.label": "Todos os participantes foram silenciados",
"app.toast.meetingMuteOff.label": "Mudo da sessão desativado", "app.toast.meetingMuteOff.label": "Mudo da sessão desativado",
"app.toast.setEmoji.raiseHand": "Você levantou sua mão", "app.toast.setEmoji.raiseHand": "Você levantou sua mão",
"app.toast.setEmoji.lowerHand": "Sua mão foi abaixada",
"app.toast.promotedLabel": "Você foi promovido para moderador",
"app.toast.demotedLabel": "Você foi despromovido para participante",
"app.notification.recordingStart": "Esta sessão está sendo gravada", "app.notification.recordingStart": "Esta sessão está sendo gravada",
"app.notification.recordingStop": "Esta sessão não está sendo gravada", "app.notification.recordingStop": "Esta sessão não está sendo gravada",
"app.notification.recordingPaused": "Esta sessão não está mais sendo gravada", "app.notification.recordingPaused": "Esta sessão não está mais sendo gravada",
@ -664,7 +701,7 @@
"app.lock-viewers.button.apply": "Aplicar", "app.lock-viewers.button.apply": "Aplicar",
"app.lock-viewers.button.cancel": "Cancelar", "app.lock-viewers.button.cancel": "Cancelar",
"app.lock-viewers.locked": "Bloqueado", "app.lock-viewers.locked": "Bloqueado",
"app.lock-viewers.unlocked": "Liberado", "app.lock-viewers.hideViewersCursor": "Ver os cursores dos outros participantes",
"app.guest-policy.ariaTitle": "Janela de configurações da política de convidado", "app.guest-policy.ariaTitle": "Janela de configurações da política de convidado",
"app.guest-policy.title": "Política de convidado", "app.guest-policy.title": "Política de convidado",
"app.guest-policy.description": "Alterar configuração da política de convidados da sessão", "app.guest-policy.description": "Alterar configuração da política de convidados da sessão",
@ -677,15 +714,26 @@
"app.connection-status.description": "Mostra o status da conexão dos participantes", "app.connection-status.description": "Mostra o status da conexão dos participantes",
"app.connection-status.empty": "Atualmente não há problemas de conexão relatados", "app.connection-status.empty": "Atualmente não há problemas de conexão relatados",
"app.connection-status.more": "mais", "app.connection-status.more": "mais",
"app.connection-status.copy": "Copiar",
"app.connection-status.copied": "Copiado!", "app.connection-status.copied": "Copiado!",
"app.connection-status.jitter": "Jitter", "app.connection-status.jitter": "Jitter",
"app.connection-status.label": "Status da conexão", "app.connection-status.label": "Status da conexão",
"app.connection-status.settings": "Ajustando suas configurações...",
"app.connection-status.no": "Não", "app.connection-status.no": "Não",
"app.connection-status.notification": "Sua conexão foi perdida", "app.connection-status.notification": "Sua conexão foi perdida",
"app.connection-status.offline": "desconectado", "app.connection-status.offline": "desconectado",
"app.connection-status.audioUploadRate": "Taxa de upload de áudio",
"app.connection-status.audioDownloadRate": "Taxa de download de áudio",
"app.connection-status.videoUploadRate": "Taxa de upload de vídeo",
"app.connection-status.videoDownloadRate": "Taxa de download de vídeo",
"app.connection-status.lostPackets": "Pacotes perdidos", "app.connection-status.lostPackets": "Pacotes perdidos",
"app.connection-status.usingTurn": "Usando TURN", "app.connection-status.usingTurn": "Usando TURN",
"app.connection-status.yes": "Sim", "app.connection-status.yes": "Sim",
"app.connection-status.connectionStats": "Status da conexão",
"app.connection-status.myLogs": "Meus registros",
"app.connection-status.sessionLogs": "Registros da sessão",
"app.connection-status.next": "Próxima página",
"app.connection-status.prev": "Página anterior",
"app.learning-dashboard.label": "Painel Analítico de Aprendizagem", "app.learning-dashboard.label": "Painel Analítico de Aprendizagem",
"app.learning-dashboard.description": "Abrir painel com a atividade dos usuários", "app.learning-dashboard.description": "Abrir painel com a atividade dos usuários",
"app.learning-dashboard.clickHereToOpen": "Abrir Painel Analítico de Aprendizagem", "app.learning-dashboard.clickHereToOpen": "Abrir Painel Analítico de Aprendizagem",
@ -757,6 +805,7 @@
"app.video.virtualBackground.genericError": "Falha ao aplicar efeito de câmera. Tente novamente.", "app.video.virtualBackground.genericError": "Falha ao aplicar efeito de câmera. Tente novamente.",
"app.video.virtualBackground.camBgAriaDesc": "Define fundo virtual de camera para {0}", "app.video.virtualBackground.camBgAriaDesc": "Define fundo virtual de camera para {0}",
"app.video.camCapReached": "Você não pode compartilhar mais câmeras", "app.video.camCapReached": "Você não pode compartilhar mais câmeras",
"app.video.meetingCamCapReached": "A sessão atingiu seu limite de câmeras simultâneas",
"app.video.dropZoneLabel": "Largar aqui", "app.video.dropZoneLabel": "Largar aqui",
"app.fullscreenButton.label": "Alternar {0} para tela cheia", "app.fullscreenButton.label": "Alternar {0} para tela cheia",
"app.fullscreenUndoButton.label": "Desfazer {0} tela inteira", "app.fullscreenUndoButton.label": "Desfazer {0} tela inteira",
@ -846,7 +895,11 @@
"app.createBreakoutRoom.durationInMinutes": "Duração (minutos)", "app.createBreakoutRoom.durationInMinutes": "Duração (minutos)",
"app.createBreakoutRoom.randomlyAssign": "Atribuir aleatoriamente", "app.createBreakoutRoom.randomlyAssign": "Atribuir aleatoriamente",
"app.createBreakoutRoom.randomlyAssignDesc": "Atribuir usuários em salas de apoio aleatóriamente", "app.createBreakoutRoom.randomlyAssignDesc": "Atribuir usuários em salas de apoio aleatóriamente",
"app.createBreakoutRoom.resetAssignments": "Redefinir atribuições",
"app.createBreakoutRoom.resetAssignmentsDesc": "Redefinir todas atribuições",
"app.createBreakoutRoom.endAllBreakouts": "Encerrar todas as salas de apoio", "app.createBreakoutRoom.endAllBreakouts": "Encerrar todas as salas de apoio",
"app.createBreakoutRoom.chatTitleMsgAllRooms": "todas salas",
"app.createBreakoutRoom.msgToBreakoutsSent": "A mensagem foi enviada para {0} salas de apoio",
"app.createBreakoutRoom.roomName": "{0} (Sala - {1})", "app.createBreakoutRoom.roomName": "{0} (Sala - {1})",
"app.createBreakoutRoom.doneLabel": "Confirmar", "app.createBreakoutRoom.doneLabel": "Confirmar",
"app.createBreakoutRoom.nextLabel": "Próximo", "app.createBreakoutRoom.nextLabel": "Próximo",
@ -861,6 +914,10 @@
"app.createBreakoutRoom.numberOfRoomsError": "O número de salas é inválido.", "app.createBreakoutRoom.numberOfRoomsError": "O número de salas é inválido.",
"app.createBreakoutRoom.duplicatedRoomNameError": "O nome da sala não pode ser duplicado.", "app.createBreakoutRoom.duplicatedRoomNameError": "O nome da sala não pode ser duplicado.",
"app.createBreakoutRoom.emptyRoomNameError": "O nome da sala não pode estar vazio.", "app.createBreakoutRoom.emptyRoomNameError": "O nome da sala não pode estar vazio.",
"app.createBreakoutRoom.setTimeInMinutes": "Definir duração para (minutos)",
"app.createBreakoutRoom.setTimeLabel": "Aplicar",
"app.createBreakoutRoom.setTimeCancel": "Cancelar",
"app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "A duração das salas de apoio não pode exceder o tempo remanescente da sessão.",
"app.createBreakoutRoom.roomNameInputDesc": "Atualiza o nome da sala de apoio", "app.createBreakoutRoom.roomNameInputDesc": "Atualiza o nome da sala de apoio",
"app.externalVideo.start": "Compartilhar vídeo", "app.externalVideo.start": "Compartilhar vídeo",
"app.externalVideo.title": "Compartilhar um vídeo externo", "app.externalVideo.title": "Compartilhar um vídeo externo",
@ -914,10 +971,10 @@
"playback.player.about.modal.shortcuts.alt": "Alt", "playback.player.about.modal.shortcuts.alt": "Alt",
"playback.player.about.modal.shortcuts.shift": "Shift", "playback.player.about.modal.shortcuts.shift": "Shift",
"playback.player.about.modal.shortcuts.fullscreen": "Alternar tela cheia", "playback.player.about.modal.shortcuts.fullscreen": "Alternar tela cheia",
"playback.player.about.modal.shortcuts.play": "Reproduzir/Pausar", "playback.player.about.modal.shortcuts.play": "Play/Pause",
"playback.player.about.modal.shortcuts.section": "Alternar seção lateral", "playback.player.about.modal.shortcuts.section": "Alternar seção lateral",
"playback.player.about.modal.shortcuts.seek.backward": "Buscar para trás", "playback.player.about.modal.shortcuts.seek.backward": "Avançar",
"playback.player.about.modal.shortcuts.seek.forward": "Procurar para a frente", "playback.player.about.modal.shortcuts.seek.forward": "Retroceder",
"playback.player.about.modal.shortcuts.skip.next": "Próximo slide", "playback.player.about.modal.shortcuts.skip.next": "Próximo slide",
"playback.player.about.modal.shortcuts.skip.previous": "Slide anterior", "playback.player.about.modal.shortcuts.skip.previous": "Slide anterior",
"playback.player.about.modal.shortcuts.swap": "Trocar conteúdo", "playback.player.about.modal.shortcuts.swap": "Trocar conteúdo",
@ -937,7 +994,7 @@
"playback.player.search.modal.title": "Procurar", "playback.player.search.modal.title": "Procurar",
"playback.player.search.modal.subtitle": "Encontre o conteúdo dos slides da apresentação", "playback.player.search.modal.subtitle": "Encontre o conteúdo dos slides da apresentação",
"playback.player.thumbnails.wrapper.aria": "Área das miniaturas", "playback.player.thumbnails.wrapper.aria": "Área das miniaturas",
"playback.player.webcams.wrapper.aria": "Área de webcams", "playback.player.webcams.wrapper.aria": "Área das câmeras",
"app.learningDashboard.dashboardTitle": "Painel Analítico de Aprendizagem", "app.learningDashboard.dashboardTitle": "Painel Analítico de Aprendizagem",
"app.learningDashboard.user": "Usuário", "app.learningDashboard.user": "Usuário",
"app.learningDashboard.indicators.meetingStatusEnded": "Finalizado", "app.learningDashboard.indicators.meetingStatusEnded": "Finalizado",

View File

@ -462,7 +462,6 @@
"app.lock-viewers.button.apply": "Aplica", "app.lock-viewers.button.apply": "Aplica",
"app.lock-viewers.button.cancel": "Anulare", "app.lock-viewers.button.cancel": "Anulare",
"app.lock-viewers.locked": "Blocat", "app.lock-viewers.locked": "Blocat",
"app.lock-viewers.unlocked": "Deblocat",
"app.recording.startTitle": "Porneste inregistrare", "app.recording.startTitle": "Porneste inregistrare",
"app.recording.stopTitle": "Pauza inregistrare", "app.recording.stopTitle": "Pauza inregistrare",
"app.recording.resumeTitle": "Reporneste inregistrare", "app.recording.resumeTitle": "Reporneste inregistrare",

View File

@ -435,7 +435,7 @@
"app.actionsBar.actionsDropdown.actionsLabel": "Действия", "app.actionsBar.actionsDropdown.actionsLabel": "Действия",
"app.actionsBar.actionsDropdown.presentationLabel": "Управление презентациями", "app.actionsBar.actionsDropdown.presentationLabel": "Управление презентациями",
"app.actionsBar.actionsDropdown.initPollLabel": "Начать голосование", "app.actionsBar.actionsDropdown.initPollLabel": "Начать голосование",
"app.actionsBar.actionsDropdown.desktopShareLabel": "Демонстрировать ваш экран", "app.actionsBar.actionsDropdown.desktopShareLabel": "Демонстировать ваш экран",
"app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Демонстрация экрана заблокирована", "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Демонстрация экрана заблокирована",
"app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Остановить демонстрацию экрана", "app.actionsBar.actionsDropdown.stopDesktopShareLabel": "Остановить демонстрацию экрана",
"app.actionsBar.actionsDropdown.presentationDesc": "Загрузите вашу презентацию", "app.actionsBar.actionsDropdown.presentationDesc": "Загрузите вашу презентацию",
@ -560,6 +560,7 @@
"app.audio.audioSettings.descriptionLabel": "Вам будет показан запрос на разрешение использование вашего микрофона", "app.audio.audioSettings.descriptionLabel": "Вам будет показан запрос на разрешение использование вашего микрофона",
"app.audio.audioSettings.microphoneSourceLabel": "Микрофон", "app.audio.audioSettings.microphoneSourceLabel": "Микрофон",
"app.audio.audioSettings.speakerSourceLabel": "Динамики", "app.audio.audioSettings.speakerSourceLabel": "Динамики",
"app.audio.audioSettings.testSpeakerLabel": "Проверить динамики",
"app.audio.audioSettings.microphoneStreamLabel": "Громкость вашего аудио-потока", "app.audio.audioSettings.microphoneStreamLabel": "Громкость вашего аудио-потока",
"app.audio.audioSettings.retryLabel": "Повторить", "app.audio.audioSettings.retryLabel": "Повторить",
"app.audio.listenOnly.backLabel": "Назад", "app.audio.listenOnly.backLabel": "Назад",
@ -693,7 +694,6 @@
"app.lock-viewers.button.apply": "Применить", "app.lock-viewers.button.apply": "Применить",
"app.lock-viewers.button.cancel": "Отмена", "app.lock-viewers.button.cancel": "Отмена",
"app.lock-viewers.locked": "Заблокировано", "app.lock-viewers.locked": "Заблокировано",
"app.lock-viewers.unlocked": "Разблокирован",
"app.guest-policy.ariaTitle": "Окно настроек для правил входа гостей в конференцию", "app.guest-policy.ariaTitle": "Окно настроек для правил входа гостей в конференцию",
"app.guest-policy.title": "Правила входа гостей в конференцию", "app.guest-policy.title": "Правила входа гостей в конференцию",
"app.guest-policy.description": "Изменить правила входа гостей в конференцию", "app.guest-policy.description": "Изменить правила входа гостей в конференцию",
@ -797,6 +797,7 @@
"app.video.virtualBackground.genericError": "Ошибка при применении эффекта для камеры. Попробуйте ещё раз.", "app.video.virtualBackground.genericError": "Ошибка при применении эффекта для камеры. Попробуйте ещё раз.",
"app.video.virtualBackground.camBgAriaDesc": "Установка виртуального фона веб-камеры на {0}", "app.video.virtualBackground.camBgAriaDesc": "Установка виртуального фона веб-камеры на {0}",
"app.video.camCapReached": "Вы не можете предоставить больше камер", "app.video.camCapReached": "Вы не можете предоставить больше камер",
"app.video.meetingCamCapReached": "В этой конференции включено максимальное количество веб-камер",
"app.video.dropZoneLabel": "Перенесите файл сюда", "app.video.dropZoneLabel": "Перенесите файл сюда",
"app.fullscreenButton.label": "Включить {0} на полный экран", "app.fullscreenButton.label": "Включить {0} на полный экран",
"app.fullscreenUndoButton.label": "Отменить {0} полноэкранный режим", "app.fullscreenUndoButton.label": "Отменить {0} полноэкранный режим",

View File

@ -590,7 +590,6 @@
"app.lock-viewers.button.apply": "Aplikovať", "app.lock-viewers.button.apply": "Aplikovať",
"app.lock-viewers.button.cancel": "Zrušiť", "app.lock-viewers.button.cancel": "Zrušiť",
"app.lock-viewers.locked": "Uzamknuté", "app.lock-viewers.locked": "Uzamknuté",
"app.lock-viewers.unlocked": "Odomknuté",
"app.guest-policy.ariaTitle": "Nastavenia pravidiel pre hostí sú modálne", "app.guest-policy.ariaTitle": "Nastavenia pravidiel pre hostí sú modálne",
"app.guest-policy.title": "Pravidlá pre hostí", "app.guest-policy.title": "Pravidlá pre hostí",
"app.guest-policy.description": "Zmeniť nastavenia pravidiel pre hostí", "app.guest-policy.description": "Zmeniť nastavenia pravidiel pre hostí",

View File

@ -519,7 +519,6 @@
"app.lock-viewers.button.apply": "Potrdi", "app.lock-viewers.button.apply": "Potrdi",
"app.lock-viewers.button.cancel": "Prekliči", "app.lock-viewers.button.cancel": "Prekliči",
"app.lock-viewers.locked": "Zaklenjeno", "app.lock-viewers.locked": "Zaklenjeno",
"app.lock-viewers.unlocked": "Odklenjeno",
"app.connection-status.ariaTitle": "Okno stanja povezave", "app.connection-status.ariaTitle": "Okno stanja povezave",
"app.connection-status.title": "Stanje povezave", "app.connection-status.title": "Stanje povezave",
"app.connection-status.description": "Pokaži stanje povezave uporabnika", "app.connection-status.description": "Pokaži stanje povezave uporabnika",

View File

@ -492,7 +492,6 @@
"app.lock-viewers.button.apply": "Primenite", "app.lock-viewers.button.apply": "Primenite",
"app.lock-viewers.button.cancel": "Otkažite", "app.lock-viewers.button.cancel": "Otkažite",
"app.lock-viewers.locked": "Zaključano", "app.lock-viewers.locked": "Zaključano",
"app.lock-viewers.unlocked": "Otključano",
"app.connection-status.description": "Pogledajte status povezivanja učesnika", "app.connection-status.description": "Pogledajte status povezivanja učesnika",
"app.recording.startTitle": "Započnite snimanje", "app.recording.startTitle": "Započnite snimanje",
"app.recording.stopTitle": "Pauzirajte snimanje", "app.recording.stopTitle": "Pauzirajte snimanje",

View File

@ -648,7 +648,6 @@
"app.lock-viewers.button.apply": "Spara", "app.lock-viewers.button.apply": "Spara",
"app.lock-viewers.button.cancel": "Avbryt", "app.lock-viewers.button.cancel": "Avbryt",
"app.lock-viewers.locked": "Låst", "app.lock-viewers.locked": "Låst",
"app.lock-viewers.unlocked": "Upplåst",
"app.guest-policy.ariaTitle": "Gäst policy inställningar modal", "app.guest-policy.ariaTitle": "Gäst policy inställningar modal",
"app.guest-policy.title": "Gäst policy", "app.guest-policy.title": "Gäst policy",
"app.guest-policy.description": "Ändra mötespolicy för gäster", "app.guest-policy.description": "Ändra mötespolicy för gäster",

View File

@ -609,7 +609,6 @@
"app.lock-viewers.button.apply": "விண்ணப்பிக்கவும்", "app.lock-viewers.button.apply": "விண்ணப்பிக்கவும்",
"app.lock-viewers.button.cancel": "ரத்துசெய்", "app.lock-viewers.button.cancel": "ரத்துசெய்",
"app.lock-viewers.locked": "பூட்டப்பட்டுள்ளது", "app.lock-viewers.locked": "பூட்டப்பட்டுள்ளது",
"app.lock-viewers.unlocked": "திறக்கப்பட்டது",
"app.guest-policy.ariaTitle": "விருந்தினர் கொள்கை அமைப்புகள் மாதிரி", "app.guest-policy.ariaTitle": "விருந்தினர் கொள்கை அமைப்புகள் மாதிரி",
"app.guest-policy.title": "விருந்தினர் கொள்கை", "app.guest-policy.title": "விருந்தினர் கொள்கை",
"app.guest-policy.description": "சந்திப்பு விருந்தினர் கொள்கை அமைப்பை மாற்றவும்", "app.guest-policy.description": "சந்திப்பு விருந்தினர் கொள்கை அமைப்பை மாற்றவும்",

View File

@ -641,7 +641,6 @@
"app.lock-viewers.button.apply": "అమలు చేయి", "app.lock-viewers.button.apply": "అమలు చేయి",
"app.lock-viewers.button.cancel": "రద్దు చేయి", "app.lock-viewers.button.cancel": "రద్దు చేయి",
"app.lock-viewers.locked": "లాక్ చేయబడింది", "app.lock-viewers.locked": "లాక్ చేయబడింది",
"app.lock-viewers.unlocked": "అన్ లాక్ చేయబడింది",
"app.guest-policy.ariaTitle": "అతిథి విధాన సెట్టింగ్‌లు మోడల్", "app.guest-policy.ariaTitle": "అతిథి విధాన సెట్టింగ్‌లు మోడల్",
"app.guest-policy.title": "అతిథి విధానం", "app.guest-policy.title": "అతిథి విధానం",
"app.guest-policy.description": "సమావేశ అతిథి విధాన సెట్టింగ్‌ని మార్చండి", "app.guest-policy.description": "సమావేశ అతిథి విధాన సెట్టింగ్‌ని మార్చండి",

View File

@ -465,7 +465,6 @@
"app.lock-viewers.button.apply": "ใช้งาน", "app.lock-viewers.button.apply": "ใช้งาน",
"app.lock-viewers.button.cancel": "ยกเลิก", "app.lock-viewers.button.cancel": "ยกเลิก",
"app.lock-viewers.locked": "ล็อค", "app.lock-viewers.locked": "ล็อค",
"app.lock-viewers.unlocked": "ปลดล็อค",
"app.recording.startTitle": "เริ่มการบันทึก", "app.recording.startTitle": "เริ่มการบันทึก",
"app.recording.stopTitle": "หยุดการบันทึกชั่วคราว", "app.recording.stopTitle": "หยุดการบันทึกชั่วคราว",
"app.recording.resumeTitle": "ทำการบันทึกต่อ", "app.recording.resumeTitle": "ทำการบันทึกต่อ",

View File

@ -577,6 +577,8 @@
"app.guest.guestDeny": "Misafir toplantıya katılmayı reddetti.", "app.guest.guestDeny": "Misafir toplantıya katılmayı reddetti.",
"app.guest.seatWait": "Toplantıda katılmayı bekleyen bir misafir var.", "app.guest.seatWait": "Toplantıda katılmayı bekleyen bir misafir var.",
"app.guest.allow": "Misafir onaylandı ve toplantıya yönlendiriliyor.", "app.guest.allow": "Misafir onaylandı ve toplantıya yönlendiriliyor.",
"app.guest.firstPositionInWaitingQueue": "İlk Sıradasınız!",
"app.guest.positionInWaitingQueue": "Bekleme kuyruğundaki mevcut konumunuz:",
"app.userList.guest.waitingUsers": "Kullanıcılar Bekleniyor", "app.userList.guest.waitingUsers": "Kullanıcılar Bekleniyor",
"app.userList.guest.waitingUsersTitle": "Kullanıcı Yönetimi", "app.userList.guest.waitingUsersTitle": "Kullanıcı Yönetimi",
"app.userList.guest.optionTitle": "Bekleyen Kullanıcılara Bakın", "app.userList.guest.optionTitle": "Bekleyen Kullanıcılara Bakın",
@ -644,7 +646,6 @@
"app.lock-viewers.button.apply": "Uygula", "app.lock-viewers.button.apply": "Uygula",
"app.lock-viewers.button.cancel": "Vazgeç", "app.lock-viewers.button.cancel": "Vazgeç",
"app.lock-viewers.locked": "Kilitli", "app.lock-viewers.locked": "Kilitli",
"app.lock-viewers.unlocked": "Kilidi açık",
"app.guest-policy.ariaTitle": "Misafir politikası ayarları modeli", "app.guest-policy.ariaTitle": "Misafir politikası ayarları modeli",
"app.guest-policy.title": "Misafir politikası", "app.guest-policy.title": "Misafir politikası",
"app.guest-policy.description": "Toplantı misafir politika ayarını değiştirin", "app.guest-policy.description": "Toplantı misafir politika ayarını değiştirin",

View File

@ -607,7 +607,7 @@
"app.guest.seatWait": "Toplantıda katılmayı bekleyen bir misafir var.", "app.guest.seatWait": "Toplantıda katılmayı bekleyen bir misafir var.",
"app.guest.allow": "Misafir onaylandı ve toplantıya yönlendiriliyor.", "app.guest.allow": "Misafir onaylandı ve toplantıya yönlendiriliyor.",
"app.guest.firstPositionInWaitingQueue": "İlk Sıradasınız!", "app.guest.firstPositionInWaitingQueue": "İlk Sıradasınız!",
"app.guest.positionInWaitingQueue": "Bekleme sırasındaki mevcut konumunuz:", "app.guest.positionInWaitingQueue": "Bekleme kuyruğundaki mevcut konumunuz:",
"app.guest.guestInvalid": "Konuk kullanıcı geçersiz", "app.guest.guestInvalid": "Konuk kullanıcı geçersiz",
"app.guest.meetingForciblyEnded": "Zorla sonlandırılan bir toplantıya katılamazsınız", "app.guest.meetingForciblyEnded": "Zorla sonlandırılan bir toplantıya katılamazsınız",
"app.userList.guest.waitingUsers": "Kullanıcılar bekleniyor", "app.userList.guest.waitingUsers": "Kullanıcılar bekleniyor",
@ -683,7 +683,6 @@
"app.lock-viewers.button.apply": "Uygula", "app.lock-viewers.button.apply": "Uygula",
"app.lock-viewers.button.cancel": "Vazgeç", "app.lock-viewers.button.cancel": "Vazgeç",
"app.lock-viewers.locked": "Kilitli", "app.lock-viewers.locked": "Kilitli",
"app.lock-viewers.unlocked": "Açık",
"app.guest-policy.ariaTitle": "Misafir politikası ayarları modeli", "app.guest-policy.ariaTitle": "Misafir politikası ayarları modeli",
"app.guest-policy.title": "Misafir Politikası", "app.guest-policy.title": "Misafir Politikası",
"app.guest-policy.description": "Toplantı misafir politika ayarını değiştirin", "app.guest-policy.description": "Toplantı misafir politika ayarını değiştirin",

Some files were not shown because too many files have changed in this diff Show More