-
- { this.hideBtn = node; }}
- data-test="hidePollDesc"
- tabIndex={0}
- label={intl.formatMessage(intlMessages.pollPaneTitle)}
- icon="left_arrow"
- aria-label={intl.formatMessage(intlMessages.hidePollDesc)}
- onClick={() => {
+ {
layoutContextDispatch({
type: ACTIONS.SET_SIDEBAR_CONTENT_IS_OPEN,
value: false,
@@ -994,12 +992,15 @@ class Poll extends Component {
type: ACTIONS.SET_SIDEBAR_CONTENT_PANEL,
value: PANELS.NONE,
});
- }}
- />
- {
+ },
+ ref: (node) => { this.hideBtn = node; },
+ }}
+ rightButtonProps={{
+ 'aria-label': `${intl.formatMessage(intlMessages.closeLabel)} ${intl.formatMessage(intlMessages.pollPaneTitle)}`,
+ 'data-test': "closePolling",
+ icon: "close",
+ label: intl.formatMessage(intlMessages.closeLabel),
+ onClick: () => {
if (currentPoll) stopPoll();
layoutContextDispatch({
type: ACTIONS.SET_SIDEBAR_CONTENT_IS_OPEN,
@@ -1011,13 +1012,9 @@ class Poll extends Component {
});
Session.set('forcePollOpen', false);
Session.set('pollInitiated', false);
- }}
- icon="close"
- size="sm"
- hideLabel
- data-test="closePolling"
- />
-
+ },
+ }}
+ />
{this.renderPollPanel()}
{intl.formatMessage(intlMessages.showRespDesc)}
{intl.formatMessage(intlMessages.addRespDesc)}
diff --git a/bigbluebutton-html5/imports/ui/components/poll/service.js b/bigbluebutton-html5/imports/ui/components/poll/service.js
index 5780d07419..48a2bc169e 100644
--- a/bigbluebutton-html5/imports/ui/components/poll/service.js
+++ b/bigbluebutton-html5/imports/ui/components/poll/service.js
@@ -1,5 +1,6 @@
import Auth from '/imports/ui/services/auth';
import { CurrentPoll } from '/imports/api/polls';
+import { escapeHtml } from '/imports/utils/string-utils';
import caseInsensitiveReducer from '/imports/utils/caseInsensitiveReducer';
import { defineMessages } from 'react-intl';
@@ -113,12 +114,7 @@ const isDefaultPoll = (pollType) => pollType !== pollTypes.Custom
const getPollResultString = (pollResultData, intl) => {
const formatBoldBlack = (s) => s.bold().fontcolor('black');
- // Sanitize. See: https://gist.github.com/sagewall/47164de600df05fb0f6f44d48a09c0bd
- const sanitize = (value) => {
- const div = document.createElement('div');
- div.appendChild(document.createTextNode(value));
- return div.innerHTML;
- };
+ const sanitize = (value) => escapeHtml(value);
const { answers, numRespondents, questionType } = pollResultData;
const ísDefault = isDefaultPoll(questionType);
diff --git a/bigbluebutton-html5/imports/ui/components/poll/styles.js b/bigbluebutton-html5/imports/ui/components/poll/styles.js
index df834b71f3..f447ebeb30 100644
--- a/bigbluebutton-html5/imports/ui/components/poll/styles.js
+++ b/bigbluebutton-html5/imports/ui/components/poll/styles.js
@@ -5,13 +5,10 @@ import {
smPaddingY,
lgPaddingX,
borderRadius,
- mdPaddingY,
borderSize,
- borderSizeLarge,
pollInputHeight,
pollSmMargin,
pollMdMargin,
- pollHeaderOffset,
} from '/imports/ui/stylesheets/styled-components/general';
import {
colorText,
@@ -338,56 +335,6 @@ const DragAndDropPollContainer = styled.div`
height: 200px !important;
`;
-const Header = styled.header`
- position: relative;
- top: ${pollHeaderOffset};
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
- margin-bottom: ${mdPaddingY};
-`;
-
-const PollHideButton = styled(Button)`
- position: relative;
- background-color: ${colorWhite};
- display: block;
- margin: ${borderSizeLarge};
- margin-bottom: ${borderSize};
- padding-left: 0;
- padding-right: inherit;
-
- [dir="rtl"] & {
- padding-left: inherit;
- padding-right: 0;
- }
-
- > i {
- color: ${colorGrayDark};
- font-size: smaller;
-
- [dir="rtl"] & {
- -webkit-transform: scale(-1, 1);
- -moz-transform: scale(-1, 1);
- -ms-transform: scale(-1, 1);
- -o-transform: scale(-1, 1);
- transform: scale(-1, 1);
- }
- }
-
- &:hover {
- background-color: ${colorWhite};
- }
-`;
-
-const PollCloseButton = styled(Button)`
- font-size: ${fontSizeBase};
- position: relative;
- & > i {
- color: ${colorText};
- }
-`;
-
const Question = styled.div`
margin-bottom: ${lgPaddingX};
`;
@@ -424,9 +371,6 @@ export default {
NoSlidePanelContainer,
PollButton,
DragAndDropPollContainer,
- Header,
- PollHideButton,
- PollCloseButton,
Warning,
CustomInputRow,
Question,
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/component.jsx b/bigbluebutton-html5/imports/ui/components/presentation/component.jsx
index eef5471ae2..17f55cd305 100755
--- a/bigbluebutton-html5/imports/ui/components/presentation/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/presentation/component.jsx
@@ -6,7 +6,6 @@ import WhiteboardToolbarContainer from '/imports/ui/components/whiteboard/whiteb
import { HUNDRED_PERCENT, MAX_PERCENT } from '/imports/utils/slideCalcUtils';
import { defineMessages, injectIntl } from 'react-intl';
import { toast } from 'react-toastify';
-import { politeSRAlert } from '/imports/utils/dom-utils';
import { Session } from 'meteor/session';
import PresentationToolbarContainer from './presentation-toolbar/container';
import PresentationPlaceholder from './presentation-placeholder/component';
@@ -25,6 +24,7 @@ import { ACTIONS, LAYOUT_TYPE } from '../layout/enums';
import DEFAULT_VALUES from '../layout/defaultValues';
import { colorContentBackground } from '/imports/ui/stylesheets/styled-components/palette';
import browserInfo from '/imports/utils/browserInfo';
+import { addNewAlert } from '../screenreader-alert/service';
const intlMessages = defineMessages({
presentationLabel: {
@@ -177,7 +177,7 @@ class Presentation extends PureComponent {
&& prevProps?.currentSlide?.num != null
&& currentSlide?.num !== prevProps.currentSlide?.num
) {
- politeSRAlert(intl.formatMessage(intlMessages.slideContentChanged, { 0: currentSlide.num }));
+ addNewAlert(intl.formatMessage(intlMessages.slideContentChanged, { 0: currentSlide.num }));
}
if (currentPresentation) {
diff --git a/bigbluebutton-html5/imports/ui/components/screenreader-alert/collection.js b/bigbluebutton-html5/imports/ui/components/screenreader-alert/collection.js
new file mode 100644
index 0000000000..479546ea84
--- /dev/null
+++ b/bigbluebutton-html5/imports/ui/components/screenreader-alert/collection.js
@@ -0,0 +1,5 @@
+import { Meteor } from 'meteor/meteor';
+
+const ScreenReaderAlertCollection = new Mongo.Collection('Screenreader-alert', { connection: null });
+
+export default ScreenReaderAlertCollection;
diff --git a/bigbluebutton-html5/imports/ui/components/screenreader-alert/component.jsx b/bigbluebutton-html5/imports/ui/components/screenreader-alert/component.jsx
new file mode 100644
index 0000000000..f4d5a2c5b6
--- /dev/null
+++ b/bigbluebutton-html5/imports/ui/components/screenreader-alert/component.jsx
@@ -0,0 +1,15 @@
+import { createPortal } from 'react-dom';
+import { useEffect } from 'react';
+import { removeAlert } from './service';
+
+const ARIA_ALERT_EXT_TIMEOUT = 15000;
+
+const ScreenReaderAlert = ({ olderAlert }) => {
+ useEffect(() => {
+ if (olderAlert) setTimeout(() => removeAlert(olderAlert.id), ARIA_ALERT_EXT_TIMEOUT);
+ }, [olderAlert?.id]);
+
+ return olderAlert ? createPortal(olderAlert.text, document.getElementById('aria-polite-alert')) : null;
+};
+
+export default ScreenReaderAlert;
diff --git a/bigbluebutton-html5/imports/ui/components/screenreader-alert/container.jsx b/bigbluebutton-html5/imports/ui/components/screenreader-alert/container.jsx
new file mode 100644
index 0000000000..d5e1e71bd5
--- /dev/null
+++ b/bigbluebutton-html5/imports/ui/components/screenreader-alert/container.jsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import { withTracker } from 'meteor/react-meteor-data';
+import ScreenReaderAlert from './component';
+import ScreenReaderAlertCollection from './collection';
+
+const ScreenReaderAlertContainer = ({ ...props }) => {
+ return (
+
+ );
+};
+
+export default withTracker(() => {
+ const olderAlert = ScreenReaderAlertCollection
+ .findOne({}, { sort: { insertTime: +1 } });
+
+ return { olderAlert };
+})(ScreenReaderAlertContainer);
diff --git a/bigbluebutton-html5/imports/ui/components/screenreader-alert/service.js b/bigbluebutton-html5/imports/ui/components/screenreader-alert/service.js
new file mode 100644
index 0000000000..0b0cef8209
--- /dev/null
+++ b/bigbluebutton-html5/imports/ui/components/screenreader-alert/service.js
@@ -0,0 +1,19 @@
+import _ from 'lodash';
+import ScreenReaderAlertCollection from './collection';
+
+export const addNewAlert = (text) => {
+ const payload = {
+ id: _.uniqueId('alert-'),
+ insertedTime: Date.now(),
+ text,
+ };
+
+ return ScreenReaderAlertCollection.insert(payload);
+};
+
+export const removeAlert = (id) => ScreenReaderAlertCollection.remove({ id });
+
+export default {
+ addNewAlert,
+ removeAlert,
+};
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/service.js b/bigbluebutton-html5/imports/ui/components/user-list/service.js
index f8219fee95..809958d6d6 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/service.js
+++ b/bigbluebutton-html5/imports/ui/components/user-list/service.js
@@ -18,6 +18,7 @@ import { Session } from 'meteor/session';
import Settings from '/imports/ui/services/settings';
import { notify } from '/imports/ui/services/notification';
import { FormattedMessage } from 'react-intl';
+import { getDateString } from '/imports/utils/string-utils';
const CHAT_CONFIG = Meteor.settings.public.chat;
const PUBLIC_CHAT_ID = CHAT_CONFIG.public_id;
@@ -666,13 +667,10 @@ export const getUserNamesLink = (docTitle, fnSortedLabel, lnSortedLabel) => {
const link = document.createElement('a');
const meeting = Meetings.findOne({ meetingId: Auth.meetingID },
{ fields: { 'meetingProp.name': 1 } });
- const date = new Date();
- const time = `${date.getHours()}-${date.getMinutes()}`;
- const dateString = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}_${time}`;
- link.setAttribute('download', `bbb-${meeting.meetingProp.name}[users-list]_${dateString}.txt`);
+ link.setAttribute('download', `bbb-${meeting.meetingProp.name}[users-list]_${getDateString()}.txt`);
link.setAttribute(
'href',
- `data: ${mimeType} ;charset=utf-16,${encodeURIComponent(namesListsString)}`,
+ `data: ${mimeType};charset=utf-16,${encodeURIComponent(namesListsString)}`,
);
return link;
};
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/container.jsx
index e7aafe52e0..5645bbd853 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/container.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/container.jsx
@@ -22,9 +22,9 @@ const UserParticipantsContainer = (props) => {
const { videoUsers, whiteboardUsers } = props;
const { users: contextUsers, isReady } = useContextUsers();
- const currentUser = contextUsers ? contextUsers[Auth.meetingID][Auth.userID] : null;
- const usersArray = contextUsers ? Object.values(contextUsers[Auth.meetingID]) : null;
- const users = contextUsers ? formatUsers(usersArray, videoUsers, whiteboardUsers) : [];
+ const currentUser = contextUsers && isReady ? contextUsers[Auth.meetingID][Auth.userID] : null;
+ const usersArray = contextUsers && isReady ? Object.values(contextUsers[Auth.meetingID]) : null;
+ const users = contextUsers && isReady ? formatUsers(usersArray, videoUsers, whiteboardUsers) : [];
return (
)}
actions={this.renderMenuItems()}
+ opts={{
+ id: "default-dropdown-menu",
+ keepMounted: true,
+ transitionDuration: 0,
+ elevation: 3,
+ getContentAnchorEl: null,
+ fullwidth: "true",
+ anchorOrigin: { vertical: 'bottom', horizontal: isRTL ? 'right' : 'left' },
+ transformOrigin: { vertical: 'top', horizontal: isRTL ? 'right' : 'left' },
+ }}
/>
);
}
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx
index 9bc55c388f..ec805a4845 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx
@@ -10,6 +10,7 @@ import logger from '/imports/startup/client/logger';
import { defineMessages, injectIntl } from 'react-intl';
import { notify } from '/imports/ui/services/notification';
import UserOptions from './component';
+import { layoutSelect } from '/imports/ui/components/layout/context';
const propTypes = {
users: PropTypes.arrayOf(Object).isRequired,
@@ -60,6 +61,8 @@ const UserOptionsContainer = withTracker((props) => {
return name;
};
+ const isRTL = layoutSelect((i) => i.isRTL);
+
return {
toggleMuteAllUsers: () => {
UserListService.muteAllUsers(Auth.userID);
@@ -91,6 +94,7 @@ const UserOptionsContainer = withTracker((props) => {
meetingName: getMeetingName(),
openLearningDashboardUrl: LearningDashboardService.openLearningDashboardUrl,
dynamicGuestPolicy,
+ isRTL,
};
})(UserOptions);
diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/video-button/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/video-button/component.jsx
index d264539aad..ba15a3c602 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/video-button/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/video-button/component.jsx
@@ -151,6 +151,7 @@ const JoinVideoButton = ({
emoji="device_list_selector"
hideLabel
label={intl.formatMessage(intlMessages.videoSettings)}
+ rotate
/>
)}
actions={actions}
diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
index 269a14c280..85e05b18c4 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
@@ -23,7 +23,7 @@ const VideoListItem = (props) => {
const {
name, voiceUser, isFullscreenContext, layoutContextDispatch, user, onHandleVideoFocus,
cameraId, numOfStreams, focused, onVideoItemMount, onVideoItemUnmount, onVirtualBgDrop,
- makeDragOperations,
+ makeDragOperations, isRTL
} = props;
const [videoIsReady, setVideoIsReady] = useState(false);
@@ -203,6 +203,50 @@ const VideoListItem = (props) => {
animations={animations}
{...makeDragOperations(onVirtualBgDrop, user.userId)}
>
+ {
+ videoIsReady
+ ? (
+ <>
+
+
+
+
+
+ setIsMirrored((value) => !value)}
+ isRTL={isRTL}
+ />
+
+
+ >
+ )
+ : (
+
+ {name}
+
+ )
+ }
+
{
const { element } = fullscreen;
const isFullscreenContext = (element === cameraId);
const layoutContextDispatch = layoutDispatch();
+ const isRTL = layoutSelect((i) => i.isRTL);
return (
{
{...{
isFullscreenContext,
layoutContextDispatch,
+ isRTL,
}}
/>
);
diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/user-actions/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/user-actions/component.jsx
index 5074eb5375..dd4f948d34 100644
--- a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/user-actions/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/user-actions/component.jsx
@@ -51,7 +51,7 @@ const intlMessages = defineMessages({
const UserActions = (props) => {
const {
name, cameraId, numOfStreams, onHandleVideoFocus, user, focused, onHandleMirror,
- isVideoSqueezed, videoContainer,
+ isVideoSqueezed, videoContainer, isRTL
} = props;
const intl = useIntl();
@@ -154,8 +154,8 @@ const UserActions = (props) => {
elevation: 3,
getContentAnchorEl: null,
fullwidth: 'true',
- anchorOrigin: { vertical: 'bottom', horizontal: 'left' },
- transformorigin: { vertical: 'bottom', horizontal: 'left' },
+ anchorOrigin: { vertical: 'bottom', horizontal: isRTL ? 'right' : 'left' },
+ transformOrigin: { vertical: 'top', horizontal: isRTL ? 'right' : 'left' },
}}
/>
)
diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx b/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx
index 8aabbeb171..57d008f3db 100755
--- a/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx
@@ -8,6 +8,7 @@ import Styled from './styles';
import { PANELS, ACTIONS } from '../layout/enums';
import Settings from '/imports/ui/services/settings';
import browserInfo from '/imports/utils/browserInfo';
+import Header from '/imports/ui/components/common/control-header/component';
const intlMessages = defineMessages({
waitingUsersTitle: {
@@ -314,15 +315,12 @@ const WaitingUsers = (props) => {
return (
-
-
- closePanel()}
- label={intl.formatMessage(intlMessages.title)}
- icon="left_arrow"
- />
-
-
+ closePanel(),
+ label: intl.formatMessage(intlMessages.title),
+ }}
+ />
{isGuestLobbyMessageEnabled ? (
diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/styles.js b/bigbluebutton-html5/imports/ui/components/waiting-users/styles.js
index c93790c077..2068e8c019 100644
--- a/bigbluebutton-html5/imports/ui/components/waiting-users/styles.js
+++ b/bigbluebutton-html5/imports/ui/components/waiting-users/styles.js
@@ -5,21 +5,16 @@ import {
itemFocusBorder,
colorGray,
colorWhite,
- colorGrayDark,
colorGrayLightest,
colorOffWhite,
} from '/imports/ui/stylesheets/styled-components/palette';
import {
borderSize,
- borderSizeLarge,
mdPaddingX,
mdPaddingY,
- pollHeaderOffset,
- toastContentWidth,
} from '/imports/ui/stylesheets/styled-components/general';
import { fontSizeBase } from '/imports/ui/stylesheets/styled-components/typography';
import { smallOnly } from '/imports/ui/stylesheets/styled-components/breakpoints';
-import { DivElipsis } from '/imports/ui/stylesheets/styled-components/placeholders';
import Button from '/imports/ui/components/common/button/component';
import { ScrollboxVertical } from '/imports/ui/stylesheets/styled-components/scrollable';
@@ -150,55 +145,6 @@ const Panel = styled.div`
}
`;
-const Header = styled.header`
- position: relative;
- top: ${pollHeaderOffset};
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
-`;
-
-const Title = styled(DivElipsis)`
- flex: 1;
-
- & > button, & > button:hover {
- max-width: ${toastContentWidth};
- }
-`;
-
-const HideButton = styled(Button)`
- position: relative;
- background-color: ${colorWhite};
- display: block;
- margin: ${borderSizeLarge};
- margin-bottom: ${borderSize};
- padding-left: 0;
- padding-right: inherit;
-
- [dir="rtl"] & {
- padding-left: inherit;
- padding-right: 0;
- }
-
- & > i {
- color: ${colorGrayDark};
- font-size: smaller;
-
- [dir="rtl"] & {
- -webkit-transform: scale(-1, 1);
- -moz-transform: scale(-1, 1);
- -ms-transform: scale(-1, 1);
- -o-transform: scale(-1, 1);
- transform: scale(-1, 1);
- }
- }
-
- &:hover {
- background-color: ${colorWhite};
- }
-`;
-
const LobbyMessage = styled.div`
border-bottom: 1px solid ${colorGrayLightest};
margin: 2px 2px 0 2px;
@@ -266,9 +212,6 @@ export default {
Users,
CustomButton,
Panel,
- Header,
- Title,
- HideButton,
LobbyMessage,
RememberContainer,
ScrollableArea,
diff --git a/bigbluebutton-html5/imports/ui/components/webcam/component.jsx b/bigbluebutton-html5/imports/ui/components/webcam/component.jsx
index d2cd5c7f44..22cae7a5a1 100644
--- a/bigbluebutton-html5/imports/ui/components/webcam/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/webcam/component.jsx
@@ -24,6 +24,7 @@ const WebcamComponent = ({
const [isFullscreen, setIsFullScreen] = useState(false);
const [resizeStart, setResizeStart] = useState({ width: 0, height: 0 });
const [cameraMaxWidth, setCameraMaxWidth] = useState(0);
+ const [draggedAtLeastOneTime, setDraggedAtLeastOneTime] = useState(false);
const lastSize = Storage.getItem('webcamSize') || { width: 0, height: 0 };
const { width: lastWidth, height: lastHeight } = lastSize;
@@ -119,9 +120,10 @@ const WebcamComponent = ({
const handleWebcamDragStop = (e) => {
setIsDragging(false);
+ setDraggedAtLeastOneTime(false);
document.body.style.overflow = 'auto';
- if (Object.values(CAMERADOCK_POSITION).includes(e.target.id)) {
+ if (Object.values(CAMERADOCK_POSITION).includes(e.target.id) && draggedAtLeastOneTime) {
layoutContextDispatch({
type: ACTIONS.SET_CAMERA_DOCK_POSITION,
value: e.target.id,
@@ -160,6 +162,11 @@ const WebcamComponent = ({
handle="video"
bounds="html"
onStart={handleWebcamDragStart}
+ onDrag={() => {
+ if (!draggedAtLeastOneTime) {
+ setDraggedAtLeastOneTime(true);
+ }
+ }}
onStop={handleWebcamDragStop}
onMouseDown={
cameraDock.isDraggable ? (e) => e.preventDefault() : undefined
diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-menu-item/styles.js b/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-menu-item/styles.js
index d060de3d78..37f53135ef 100644
--- a/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-menu-item/styles.js
+++ b/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-menu-item/styles.js
@@ -81,14 +81,6 @@ const ToolbarButton = styled(Button)`
& > i {
color: ${toolbarListColor};
}
-
- border-top-left-radius: 0;
- border-top-right-radius: ${toolbarButtonBorderRadius};
-
- [dir="rtl"] & {
- border-top-left-radius: ${toolbarButtonBorderRadius};
- border-top-right-radius: 0;
- }
`}
`;
diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-submenu-item/styles.js b/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-submenu-item/styles.js
index 8c1d7d8b32..469b378a26 100644
--- a/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-submenu-item/styles.js
+++ b/bigbluebutton-html5/imports/ui/components/whiteboard/whiteboard-toolbar/toolbar-submenu-item/styles.js
@@ -32,6 +32,13 @@ const ButtonWrapper = styled.div`
&:first-child > button {
border-top-left-radius: ${toolbarButtonBorderRadius};
border-bottom-left-radius: ${toolbarButtonBorderRadius};
+
+ [dir="rtl"] & {
+ border-top-right-radius: ${toolbarButtonBorderRadius};
+ border-bottom-right-radius: ${toolbarButtonBorderRadius};
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
}
`;
diff --git a/bigbluebutton-html5/imports/ui/services/auth/index.js b/bigbluebutton-html5/imports/ui/services/auth/index.js
index 1496de13ae..3b8da3a6fa 100755
--- a/bigbluebutton-html5/imports/ui/services/auth/index.js
+++ b/bigbluebutton-html5/imports/ui/services/auth/index.js
@@ -58,10 +58,6 @@ class Auth {
Storage.setItem('sessionToken', this._sessionToken);
}
- get sessionToken() {
- return this._sessionToken;
- }
-
get userID() {
return this._userID;
}
@@ -151,15 +147,6 @@ class Auth {
};
}
- set _connectionID(connectionId) {
- this._connectionID = connectionId;
- Storage.setItem('sessionToken', this._connectionID);
- }
-
- get sessionToken() {
- return this._sessionToken;
- }
-
set(
meetingId,
requesterUserId,
@@ -253,6 +240,7 @@ class Auth {
initAnnotationsStreamListener();
clearTimeout(validationTimeout);
this.connectionID = authenticationTokenValidation.connectionId;
+ this.connectionAuthTime = new Date().getTime();
Session.set('userWillAuth', false);
setTimeout(() => resolve(true), 100);
break;
diff --git a/bigbluebutton-html5/imports/ui/stylesheets/styled-components/globalStyles.js b/bigbluebutton-html5/imports/ui/stylesheets/styled-components/globalStyles.js
index c9cb8b69d0..aa1436e748 100644
--- a/bigbluebutton-html5/imports/ui/stylesheets/styled-components/globalStyles.js
+++ b/bigbluebutton-html5/imports/ui/stylesheets/styled-components/globalStyles.js
@@ -26,6 +26,10 @@ const GlobalStyle = createGlobalStyle`
}
}
+ .MuiList-padding {
+ padding: 0 !important;
+ }
+
.MuiPaper-root {
background-color: ${dropdownBg};
border-radius: ${borderRadius};
diff --git a/bigbluebutton-html5/imports/utils/dom-utils.js b/bigbluebutton-html5/imports/utils/dom-utils.js
index 5c221215ea..c110487cda 100644
--- a/bigbluebutton-html5/imports/utils/dom-utils.js
+++ b/bigbluebutton-html5/imports/utils/dom-utils.js
@@ -1,7 +1,5 @@
const TITLE_WITH_VIEW = 3;
-const ARIA_ALERT_TIMEOUT = 3000;
-const ARIA_ALERT_EXT_TIMEOUT = 15000;
const getTitleData = () => {
const title = document.getElementsByTagName('title')[0];
@@ -23,27 +21,7 @@ export const unregisterTitleView = () => {
title.text = data.join(' - ');
};
-export const alertScreenReader = (s = '') => {
- const app = document.getElementById('app');
- const ariaAlert = document.createElement("div");
- ariaAlert.setAttribute("id", "aria-alert");
- ariaAlert.setAttribute("role", "alert");
- ariaAlert.setAttribute("aria-hidden", false);
- ariaAlert.setAttribute("className", "sr-only");
- ariaAlert.textContent = s;
- app.appendChild(ariaAlert);
-
- setTimeout(() => {
- document.getElementById('aria-alert').remove();
- }, ARIA_ALERT_TIMEOUT);
+export default {
+ registerTitleView,
+ unregisterTitleView,
};
-
-export const politeSRAlert = (s = '') => {
- const liveArea = document.getElementById('aria-polite-alert')
- if (liveArea) liveArea.innerHTML = s;
- setTimeout(() => {
- if (liveArea) liveArea.innerHTML = '';
- }, ARIA_ALERT_EXT_TIMEOUT);
-};
-
-export default { registerTitleView, unregisterTitleView, alertScreenReader, politeSRAlert };
diff --git a/bigbluebutton-html5/imports/utils/string-utils.js b/bigbluebutton-html5/imports/utils/string-utils.js
index c44a9a0a38..c841421cd3 100644
--- a/bigbluebutton-html5/imports/utils/string-utils.js
+++ b/bigbluebutton-html5/imports/utils/string-utils.js
@@ -1,3 +1,40 @@
-export const capitalizeFirstLetter = (s = '') => s.charAt(0).toUpperCase() + s.slice(1);
-
-export default { capitalizeFirstLetter };
\ No newline at end of file
+import sanitize from 'sanitize-html';
+
+export const capitalizeFirstLetter = (s = '') => s.charAt(0).toUpperCase() + s.slice(1);
+
+/**
+ * Returns a string in the format 'Year-Month-Day_Hour-Minutes'.
+ * @param {Date} [date] - The Date object.
+ */
+export const getDateString = (date = new Date()) => {
+ const hours = date.getHours().toString().padStart(2, 0);
+ const minutes = date.getMinutes().toString().padStart(2, 0);
+ const month = (date.getMonth() + 1).toString().padStart(2, 0);
+ const dayOfMonth = date.getDate().toString().padStart(2, 0);
+ const time = `${hours}-${minutes}`;
+ const dateString = `${date.getFullYear()}-${month}-${dayOfMonth}_${time}`;
+ return dateString;
+};
+
+export const stripTags = (text) => sanitize(text, { allowedTags: [] });
+
+// Sanitize. See: https://gist.github.com/sagewall/47164de600df05fb0f6f44d48a09c0bd
+export const escapeHtml = (text) => {
+ const div = document.createElement('div');
+ div.appendChild(document.createTextNode(text));
+ return div.innerHTML;
+};
+
+export const unescapeHtml = (input) => {
+ const e = document.createElement('textarea');
+ e.innerHTML = input;
+ return e.value;
+};
+
+export default {
+ capitalizeFirstLetter,
+ getDateString,
+ stripTags,
+ escapeHtml,
+ unescapeHtml,
+};
diff --git a/bigbluebutton-html5/private/static/guest-wait/guest-wait.html b/bigbluebutton-html5/private/static/guest-wait/guest-wait.html
index 64f16995ef..22bb238761 100755
--- a/bigbluebutton-html5/private/static/guest-wait/guest-wait.html
+++ b/bigbluebutton-html5/private/static/guest-wait/guest-wait.html
@@ -261,8 +261,6 @@
updateMessage(_('app.guest.guestWait'));
enableAnimation();
try {
- const ATTEMPT_EVERY_MS = 10 * 1000; // 10 seconds
-
const sessionToken = getSearchParam('sessionToken');
if (!sessionToken) {
@@ -270,8 +268,32 @@
updateMessage(_('app.guest.noSessionToken'));
return;
}
+ //First, check that we already have a response
+ const statusFromStorage = sessionStorage.getItem(`guestStatus_${sessionToken}`);
- pollGuestStatus(sessionToken, ATTEMPT_EVERY_MS);
+ if(statusFromStorage) {
+ stopUpdatingWaitingPosition();
+
+ const statusParsed = JSON.parse(statusFromStorage);
+ const { status, response } = statusParsed;
+
+ if(status === 'ALLOW'){
+ updateLobbyMessage(_('app.guest.allow'));
+ setTimeout(() => {
+ disableAnimation();
+ window.location = response.url;
+ }, MESSAGE_TIMEOUT);
+ } else {
+ redirect(
+ _('app.guest.' + response.messageKey),
+ response.url,
+ );
+ }
+
+ return;
+ }
+
+ pollGuestStatus(sessionToken, 0);
} catch (e) {
disableAnimation();
console.error(e);
@@ -309,21 +331,28 @@
.then((data) => {
const code = data.response.returncode;
- if (code === 'FAILED') {
+ const response = data.response;
+
+ const saveStatusResponse = (status, response, token) => {
stopUpdatingWaitingPosition();
+ sessionStorage.setItem(`guestStatus_${token}`, JSON.stringify({ status, response }));
+ };
+
+ if (code === 'FAILED') {
+ saveStatusResponse(code, response, token);
return redirect(_('app.guest.' + data.response.messageKey), data.response.url);
}
const status = data.response.guestStatus;
if (status === 'DENY') {
- stopUpdatingWaitingPosition();
+ saveStatusResponse(status, response, token);
return redirect(_('app.guest.' + data.response.messageKey), data.response.url);
}
if (status === 'ALLOW') {
updateLobbyMessage(_('app.guest.allow'));
- stopUpdatingWaitingPosition();
+ saveStatusResponse(status, response, token);
// Timeout is required by accessibility to allow viewing of the message for a minimum of 3 seconds
// before redirecting.
setTimeout(() => {
@@ -335,7 +364,8 @@
updatePositionInWaitingQueue(data.response.positionInWaitingQueue);
updateLobbyMessage(data.response.lobbyMessage);
- return pollGuestStatus(token, everyMs);
+ const ATTEMPT_EVERY_MS = 10 * 1000; // 10 seconds
+ return pollGuestStatus(token, ATTEMPT_EVERY_MS);
});
}, everyMs);
};
diff --git a/bigbluebutton-html5/public/locales/ar.json b/bigbluebutton-html5/public/locales/ar.json
index ffa6488ff1..18a1ad98fd 100644
--- a/bigbluebutton-html5/public/locales/ar.json
+++ b/bigbluebutton-html5/public/locales/ar.json
@@ -111,7 +111,7 @@
"app.userList.userOptions.unmuteAllLabel": "إيقاف كتم صوت الاجتماع",
"app.userList.userOptions.unmuteAllDesc": "إلغاء كتم صوت الاجتماع",
"app.userList.userOptions.lockViewersLabel": "قفل المشاهدين",
- "app.userList.userOptions.lockViewersDesc": "قفل وظائف معينة على اامشاركين في الاجتماع",
+ "app.userList.userOptions.lockViewersDesc": "قفل وظائف معينة على المشاركين في الاجتماع",
"app.userList.userOptions.guestPolicyLabel": "سياسة الضيف",
"app.userList.userOptions.guestPolicyDesc": "تغيير إعداد سياسة الضيف في الاجتماع",
"app.userList.userOptions.disableCam": "كاميرات المشاهدين معطلة",
@@ -444,7 +444,7 @@
"app.actionsBar.actionsDropdown.presentationLabel": "إدارة العروض",
"app.actionsBar.actionsDropdown.initPollLabel": "إنشاء تصويت جديد",
"app.actionsBar.actionsDropdown.desktopShareLabel": "مشاركة الشاشة",
- "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "مشاركة الشاشة مقفل",
+ "app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "مشاركة الشاشة مقفلة",
"app.actionsBar.actionsDropdown.stopDesktopShareLabel": "إيقاف مشاركة الشاشة",
"app.actionsBar.actionsDropdown.presentationDesc": "إرفع عرضك",
"app.actionsBar.actionsDropdown.initPollDesc": "إنشاء تصويت جديد",
@@ -501,17 +501,17 @@
"app.audioNotification.audioFailedMessage": "فشل اتصال الصوت الخاص بك في الاتصال",
"app.audioNotification.mediaFailedMessage": "فشل getUserMicMedia ، مسموح فقط للأصول الآمنة",
"app.audioNotification.closeLabel": "غلق",
- "app.audioNotificaion.reconnectingAsListenOnly": "تم قفل صوت المشاهدين، حيث يتم اتصالك بالاستماع فقط",
+ "app.audioNotificaion.reconnectingAsListenOnly": "تم قفل صوت المشاهدين، يتم اتصالك بالاستماع فقط",
"app.breakoutJoinConfirmation.title": "انضم إلى الغرفة الجانبية",
"app.breakoutJoinConfirmation.message": "هل تود الانضمام",
"app.breakoutJoinConfirmation.confirmDesc": "انضم إليكم إلى الغرفة الجانبية",
"app.breakoutJoinConfirmation.dismissLabel": "إلغاء",
"app.breakoutJoinConfirmation.dismissDesc": "يغلق ويرفض الانضمام إلى الغرفة الجانبية",
"app.breakoutJoinConfirmation.freeJoinMessage": "اختر الغرفة الجانبية للانضمام",
- "app.breakoutTimeRemainingMessage": "وقت انتهاء الغرفة المفرقة: {0}",
+ "app.breakoutTimeRemainingMessage": "وقت انتهاء الغرفة الجانبية: {0}",
"app.breakoutWillCloseMessage": "انتهى الوقت. سيتم إغلاق الغرفة الجانبية قريبًا",
- "app.breakout.dropdown.manageDuration": "إدارة المدة",
- "app.breakout.dropdown.destroyAll": "تدمير الجانبيات",
+ "app.breakout.dropdown.manageDuration": "تغيير المدة",
+ "app.breakout.dropdown.destroyAll": "إنهاء الغرف الجانبية",
"app.breakout.dropdown.options": "خيارات الجانبيات",
"app.calculatingBreakoutTimeRemaining": "حساب الوقت المتبقي ...",
"app.audioModal.ariaTitle": "نافذة الانضمام إلى الصوت",
@@ -607,6 +607,7 @@
"app.error.500": "عفوا، حدث خطأ ما",
"app.error.userLoggedOut": "المستخدم لديه رمز جلسة غير صالح بسبب تسجيل الخروج",
"app.error.ejectedUser": "المستخدم لديه رمز جلسة غير صالح بسبب الطرد",
+ "app.error.joinedAnotherWindow": "يبدو أن هذه الجلسة مفتوحة في نافذة متصفح أخر.",
"app.error.userBanned": "تم حظر المستخدم",
"app.error.leaveLabel": "تسجيل الدخول مرة أخرى",
"app.error.fallback.presentation.title": "حدث خطأ",
@@ -793,7 +794,7 @@
"app.video.cancel": "إلغاء",
"app.video.swapCam": "مبادلة",
"app.video.swapCamDesc": "مبادلة اتجاه الكاميرات",
- "app.video.videoLocked": "مشاركة الكامرا مقفل",
+ "app.video.videoLocked": "مشاركة الكامرا مقفلة",
"app.video.videoButtonDesc": "مشاركة كاميرا",
"app.video.videoMenu": "قائمة الفيديو",
"app.video.videoMenuDisabled": "تم تعطيل قائمة كاميرا الفيديو في الإعدادات",
@@ -904,7 +905,7 @@
"app.createBreakoutRoom.resetAssignmentsDesc": "إعادة تعيين جميع تعيينات غرفة المستخدم",
"app.createBreakoutRoom.endAllBreakouts": "إنهاء جميع الغرف الجانبية",
"app.createBreakoutRoom.chatTitleMsgAllRooms": "كل الغرف",
- "app.createBreakoutRoom.msgToBreakoutsSent": "تم إرسال الرسالة إلى {0} غرفة فرعية",
+ "app.createBreakoutRoom.msgToBreakoutsSent": "تم إرسال الرسالة إلى {0} غرفة جانبية",
"app.createBreakoutRoom.roomName": "{0} (غرفة- {1})",
"app.createBreakoutRoom.doneLabel": "تم",
"app.createBreakoutRoom.nextLabel": "التالي",
diff --git a/bigbluebutton-html5/public/locales/ca.json b/bigbluebutton-html5/public/locales/ca.json
index 77d31240a7..9bebc77545 100644
--- a/bigbluebutton-html5/public/locales/ca.json
+++ b/bigbluebutton-html5/public/locales/ca.json
@@ -508,8 +508,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Escull la sala separada per a unir-se",
"app.breakoutTimeRemainingMessage": "Temps restant a la sala separada: {0}",
"app.breakoutWillCloseMessage": "Temps finalitzat. La reunió separada es tancarà aviat",
- "app.breakout.dropdown.manageDuration": "Gestionar la durada",
- "app.breakout.dropdown.destroyAll": "Esborrar sales externes",
"app.breakout.dropdown.options": "Opcions de sales externes",
"app.calculatingBreakoutTimeRemaining": "Calculant temps restant ...",
"app.audioModal.ariaTitle": "Entra a l'àudio modal",
diff --git a/bigbluebutton-html5/public/locales/de.json b/bigbluebutton-html5/public/locales/de.json
index 45d6b80f1d..49e5c25f1a 100644
--- a/bigbluebutton-html5/public/locales/de.json
+++ b/bigbluebutton-html5/public/locales/de.json
@@ -35,7 +35,7 @@
"app.captions.menu.ariaStartDesc": "Öffnet den Untertiteleditor und schließt diesen Dialog",
"app.captions.menu.select": "Verfügbare Sprache auswählen",
"app.captions.menu.ariaSelect": "Untertitelsprache",
- "app.captions.menu.subtitle": "Bitte eine Sprache und einen Schriftstil für die Untertitel der Konferenz wählen.",
+ "app.captions.menu.subtitle": "Bitte wählen Sie eine Sprache und einen Schriftstil für die Untertitel Ihrer Konferenz.",
"app.captions.menu.title": "Untertitel",
"app.captions.menu.fontSize": "Größe",
"app.captions.menu.fontColor": "Schriftfarbe",
@@ -62,7 +62,7 @@
"app.note.converter-button.convertAndUpload": "Geteilte Notizen im Präsentations-Bereich laden",
"app.pads.hint": "Esc drücken, um die Symbolleiste des Pads auszuwählen",
"app.user.activityCheck": "Teilnehmeraktivitätsprüfung",
- "app.user.activityCheck.label": "Prüfen, ob der:die Teilnehmer:in noch in der Konferenz ist ({0})",
+ "app.user.activityCheck.label": "Prüfen, ob der Teilnehmer noch in der Konferenz ist ({0})",
"app.user.activityCheck.check": "Prüfen",
"app.userList.usersTitle": "Teilnehmer",
"app.userList.participantsTitle": "Teilnehmer",
@@ -87,11 +87,11 @@
"app.userList.menu.clearStatus.label": "Status zurücksetzen",
"app.userList.menu.removeUser.label": "Teilnehmer entfernen",
"app.userList.menu.removeConfirmation.label": "Teilnehmer entfernen ({0})",
- "app.userlist.menu.removeConfirmation.desc": "Teilnehmer:in sperren, sodass eine erneute Teilnahme an dieser Konferenz nicht mehr möglich ist.",
+ "app.userlist.menu.removeConfirmation.desc": "Teilnehmer sperren, sodass eine erneute Teilnahme an dieser Konferenz nicht mehr möglich ist.",
"app.userList.menu.muteUserAudio.label": "Teilnehmer stummschalten",
"app.userList.menu.unmuteUserAudio.label": "Stummschaltung aufheben",
- "app.userList.menu.webcamPin.label": "Webcam der Teilnehmer:in fixieren",
- "app.userList.menu.webcamUnpin.label": "Webcam der Teilnehmer:in lösen",
+ "app.userList.menu.webcamPin.label": "Webcam der Teilnehmer anheften",
+ "app.userList.menu.webcamUnpin.label": "Webcam der Teilnehmer lösen",
"app.userList.menu.giveWhiteboardAccess.label" : "Zugriff auf Whiteboard erlauben",
"app.userList.menu.removeWhiteboardAccess.label": "Zugriff auf Whiteboard aufheben",
"app.userList.menu.ejectUserCameras.label": "Kameras schließen",
@@ -104,7 +104,7 @@
"app.userList.menu.makePresenter.label": "Zum Präsentator machen",
"app.userList.userOptions.manageUsersLabel": "Teilnehmer verwalten",
"app.userList.userOptions.muteAllLabel": "Alle Teilnehmer stummschalten",
- "app.userList.userOptions.muteAllDesc": "Alle Teilnehmer:innen der Konferenz werden stumm geschaltet",
+ "app.userList.userOptions.muteAllDesc": "Alle Teilnehmer der Konferenz werden stumm geschaltet",
"app.userList.userOptions.clearAllLabel": "Alle Statusicons löschen",
"app.userList.userOptions.clearAllDesc": "Alle Statusicons der Teilnehmer löschen",
"app.userList.userOptions.muteAllExceptPresenterLabel": "Alle Teilnehmer außer den Präsentator stummschalten",
@@ -112,7 +112,7 @@
"app.userList.userOptions.unmuteAllLabel": "Konferenz-Stummschaltung aufheben",
"app.userList.userOptions.unmuteAllDesc": "Hebt die Konferenz-Stummschaltung auf",
"app.userList.userOptions.lockViewersLabel": "Teilnehmerrechte einschränken",
- "app.userList.userOptions.lockViewersDesc": "Schränkt bestimmte Funktionen der Konferenzteilnehmer:innen ein",
+ "app.userList.userOptions.lockViewersDesc": "Schränkt bestimmte Funktionen der Konferenzteilnehmer ein",
"app.userList.userOptions.guestPolicyLabel": "Gastzugang regeln",
"app.userList.userOptions.guestPolicyDesc": "Grundregel für den Gastzugang ändern",
"app.userList.userOptions.disableCam": "Teilnehmerwebcams sind deaktiviert",
@@ -120,21 +120,21 @@
"app.userList.userOptions.disablePrivChat": "Privater Chat ist deaktiviert",
"app.userList.userOptions.disablePubChat": "Öffentlicher Chat ist deaktiviert",
"app.userList.userOptions.disableNotes": "Geteilte Notizen sind jetzt gesperrt",
- "app.userList.userOptions.hideUserList": "Liste der Teilnehmer:innen ist jetzt für diese ausgeblendet",
+ "app.userList.userOptions.hideUserList": "Teilnehmerliste ist jetzt für die Teilnehmer ausgeblendet",
"app.userList.userOptions.webcamsOnlyForModerator": "Nur Moderatoren können die Teilnehmerwebcams sehen (wegen eingeschränkter Rechteeinstellungen)",
- "app.userList.content.participants.options.clearedStatus": "Status aller Teilnehmer:innen zurückgesetzt",
+ "app.userList.content.participants.options.clearedStatus": "Status aller Teilnehmer zurückgesetzt",
"app.userList.userOptions.enableCam": "Teilnehmer dürfen ihre Webcams verwenden",
"app.userList.userOptions.enableMic": "Teilnehmer dürfen ihre Mikrofone verwenden",
"app.userList.userOptions.enablePrivChat": "Privater Chat ist erlaubt",
- "app.userList.userOptions.enablePubChat": "Gemeinsamer Chat ist erlaubt",
+ "app.userList.userOptions.enablePubChat": "Öffentlicher Chat ist erlaubt",
"app.userList.userOptions.enableNotes": "Geteilte Notizen sind jetzt erlaubt",
- "app.userList.userOptions.showUserList": "Liste der Teilnehmer:innen ist für diese sichtbar",
- "app.userList.userOptions.enableOnlyModeratorWebcam": "Webcam nun freigeben um für jede:n sichtbar zu sein.",
+ "app.userList.userOptions.showUserList": "Teilnehmerliste ist jetzt für die Teilnehmer sichtbar",
+ "app.userList.userOptions.enableOnlyModeratorWebcam": "Sie können Ihre Webcam jetzt freigeben, jeder wird Sie sehen.",
"app.userList.userOptions.savedNames.title": "Liste der Teilnehmer in der Konferenz {0} vom {1}",
"app.userList.userOptions.sortedFirstName.heading": "Sortiert nach Vorname:",
"app.userList.userOptions.sortedLastName.heading": "Sortiert nach Nachname:",
- "app.userList.userOptions.hideViewersCursor": "Cursor der Teilnehmer:innen sind gesperrt",
- "app.userList.userOptions.showViewersCursor": "Cursor der Teilnehmer:innen sind freigegeben",
+ "app.userList.userOptions.hideViewersCursor": "Cursor der Teilnehmer sind gesperrt",
+ "app.userList.userOptions.showViewersCursor": "Cursor der Teilnehmer sind freigegeben",
"app.media.label": "Media",
"app.media.autoplayAlertDesc": "Zugang erlauben",
"app.media.screenshare.start": "Bildschirmfreigabe wurde gestartet",
@@ -142,7 +142,7 @@
"app.media.screenshare.endDueToDataSaving": "Bildschirmübertragung im Datensparmodus gestoppt",
"app.media.screenshare.unavailable": "Bildschirmfreigabe nicht verfügbar",
"app.media.screenshare.notSupported": "Bildschirmfreigabe wird in diesem Browser nicht unterstützt.",
- "app.media.screenshare.autoplayBlockedDesc": "Wir benötigen deine/Ihre Zustimmung, um den Bildschirm des Präsentators zu zeigen.",
+ "app.media.screenshare.autoplayBlockedDesc": "Wir benötigen Ihre Zustimmung, um den Bildschirm des Präsentators zu zeigen.",
"app.media.screenshare.autoplayAllowLabel": "Geteilten Bildschirm ansehen",
"app.screenshare.presenterLoadingLabel": "Ihr Bildschirm wird freigegeben",
"app.screenshare.viewerLoadingLabel": "Der Bildschirm des Präsentators wird geladen",
@@ -150,14 +150,14 @@
"app.screenshare.screenshareFinalError": "Fehler {0}. Bildschirm konnte nicht geteilt werden.",
"app.screenshare.screenshareRetryError": "Fehler {0}. Bitte versuchen, den Bildschirm erneut zu teilen.",
"app.screenshare.screenshareRetryOtherEnvError": "Fehler {0}. Der Bildschirm konnte nicht freigegeben werden. Bitte mit einem anderen Browser oder einem anderen Gerät probieren.",
- "app.screenshare.screenshareUnsupportedEnv": "Fehler {0}. Dieser Browser wird nicht unterstützt. Bitte einen anderen Browser oder ein anderes Endgerät probieren.",
+ "app.screenshare.screenshareUnsupportedEnv": "Fehler {0}. Dieser Browser wird nicht unterstützt. Bitte einen anderen Browser oder ein anderes Gerät probieren.",
"app.screenshare.screensharePermissionError": "Fehler {0}. Die Berechtigung zur Bildschirmfreigabe muss erteilt werden.",
"app.meeting.ended": "Diese Konferenz wurde beendet",
"app.meeting.meetingTimeRemaining": "Verbleibende Konferenzzeit: {0}",
"app.meeting.meetingTimeHasEnded": "Die Zeit ist abgelaufen. Die Konferenz wird in Kürze beendet",
"app.meeting.endedByUserMessage": "Diese Konferenz wurde durch {0} beendet",
- "app.meeting.endedByNoModeratorMessageSingular": "Die Konferenz ist beendet, da nach einer Minute kein:e Moderator:in anwesend ist",
- "app.meeting.endedByNoModeratorMessagePlural": "Die Konferenz ist beendet, da nach {0} Minuten kein:e Moderator:in anwesend ist",
+ "app.meeting.endedByNoModeratorMessageSingular": "Die Konferenz ist beendet, da nach einer Minute kein Moderator anwesend ist",
+ "app.meeting.endedByNoModeratorMessagePlural": "Die Konferenz ist beendet, da nach {0} Minuten kein Moderator anwesend ist",
"app.meeting.endedMessage": "Sie werden zum Startbildschirm weitergeleitet",
"app.meeting.alertMeetingEndsUnderMinutesSingular": "Konferenz endet in einer Minute.",
"app.meeting.alertMeetingEndsUnderMinutesPlural": "Konferenz endet in {0} Minuten.",
@@ -204,8 +204,8 @@
"app.presentation.presentationToolbar.goToSlide": "Folie {0}",
"app.presentation.placeholder": "Es gibt derzeit keine aktive Präsentation",
"app.presentationUploder.title": "Präsentation",
- "app.presentationUploder.message": "Präsentationen können als Office-Dokumente oder PDF-Dateien hochgeladen werden. PDF-Dateien haben dabei die bessere Qualität. Eine Präsentation muss dann durch das runde Markierungsfeld auf der rechten Seite ausgewählt sein.",
- "app.presentationUploder.extraHint": "Jede Datei darf {0} MB und {1} Seiten nicht überschreiten.",
+ "app.presentationUploder.message": "Als Präsentator können Präsentationen als Office-Dokumente oder PDF-Dateien hochgeladen werden. PDF-Dateien haben dabei die bessere Qualität. Bitte achten Sie darauf, dass eine Präsentation über das runde Auswahlfeld auf der rechten Seite ausgewählt ist.",
+ "app.presentationUploder.extraHint": "WICHTIG: Jede Datei darf {0} MB und {1} Seiten nicht überschreiten.",
"app.presentationUploder.uploadLabel": "Hochladen",
"app.presentationUploder.confirmLabel": "Bestätigen",
"app.presentationUploder.confirmDesc": "Änderungen speichern und Präsentation starten",
@@ -257,12 +257,12 @@
"app.poll.autoOptionInstructions.label": "Automatische Optionierung ist aktiviert – schreiben Sie die Umfragefrage und Option(en) im angegebenen Format.",
"app.poll.maxOptionsWarning.label": "Nur die ersten 5 Optionen können verwendet werden!",
"app.poll.pollPaneTitle": "Umfrage",
- "app.poll.enableMultipleResponseLabel": "Mehrere Antworten pro Befragte:n zulassen?",
+ "app.poll.enableMultipleResponseLabel": "Mehrere Antworten pro Befragten zulassen?",
"app.poll.quickPollTitle": "Schnellumfrage",
"app.poll.hidePollDesc": "Versteckt das Umfragemenü",
- "app.poll.quickPollInstruction": "Bitte eine der unten stehenden Optionen wählen, um die Umfrage zu starten.",
- "app.poll.activePollInstruction": "Dieses Fenster offen lassen, um auf die Antworten der Teilnehmer:innen zu warten. Sobald auf 'Umfrageergebnisse veröffentlichen' geklickt wird, werden die Ergebnisse angezeigt und wird die Umfrage beendet.",
- "app.poll.dragDropPollInstruction": "Um die Umfrageoptionen automatisch auszufüllen, eine Textdatei mit den Umfrageoptionen per Drag&Drop in das hervorgehobene Feld ziehen",
+ "app.poll.quickPollInstruction": "Wählen Sie eine der unten stehenden Optionen, um die Umfrage zu starten.",
+ "app.poll.activePollInstruction": "Lassen Sie dieses Fenster offen, um auf die Antworten der Teilnehmer zu warten. Sobald Sie auf 'Umfrageergebnisse veröffentlichen' klicken, werden die Ergebnisse angezeigt und die Umfrage beendet.",
+ "app.poll.dragDropPollInstruction": "Um die Umfrageoptionen automatisch auszufüllen, eine Textdatei mit den Umfrageoptionen per Drag&Drop in das hervorgehobene Feld ziehen",
"app.poll.customPollTextArea": "Umfrageoptionen ausfüllen",
"app.poll.publishLabel": "Umfrage veröffentlichen",
"app.poll.cancelPollLabel": "Abbrechen",
@@ -273,13 +273,13 @@
"app.poll.customPlaceholder": "Umfrageoption hinzufügen",
"app.poll.noPresentationSelected": "Keine Präsentation ausgewählt! Bitte eine auswählen.",
"app.poll.clickHereToSelect": "Zum Auswählen hier klicken",
- "app.poll.question.label" : "Eine Frage stellen ...",
- "app.poll.optionalQuestion.label" : "Eine Frage stellen (optional) ...",
+ "app.poll.question.label" : "Eine Frage stellen...",
+ "app.poll.optionalQuestion.label" : "Eine Frage stellen (optional)...",
"app.poll.userResponse.label" : "Teilnehmerantwort",
"app.poll.responseTypes.label" : "Antworttypen",
"app.poll.optionDelete.label" : "Löschen",
"app.poll.responseChoices.label" : "Antwortmöglichkeiten",
- "app.poll.typedResponse.desc" : "Den Teilnehmer:innen wird ein Textfeld angezeigt, um die Antwort einzutragen.",
+ "app.poll.typedResponse.desc" : "Den Teilnehmern wird ein Textfeld angezeigt, um die Antwort einzutragen.",
"app.poll.addItem.label" : "Element hinzufügen",
"app.poll.start.label" : "Umfrage starten",
"app.poll.secretPoll.label" : "Anonyme Umfrage",
@@ -330,7 +330,7 @@
"app.connectingMessage": "Verbinde...",
"app.waitingMessage": "Verbindung unterbrochen. Versuche in {0} Sekunden erneut zu verbinden...",
"app.retryNow": "Jetzt erneut versuchen",
- "app.muteWarning.label": "Auf {0} klicken, um die Stummschaltung aufzuheben.",
+ "app.muteWarning.label": "Auf {0} klicken, um Ihre Stummschaltung aufzuheben.",
"app.muteWarning.disableMessage": "Hinweis auf Stummschaltung deaktiviert, bis die Stummschaltung aufgehoben wird",
"app.muteWarning.tooltip": "Klicken, um den Hinweis bis zur nächsten Aufhebung der Stummschaltung zu schließen",
"app.navBar.settingsDropdown.optionsLabel": "Optionen",
@@ -361,7 +361,7 @@
"app.leaveConfirmation.confirmLabel": "Verlassen",
"app.leaveConfirmation.confirmDesc": "Hiermit verlassen Sie die Konferenz",
"app.endMeeting.title": "{0} beenden",
- "app.endMeeting.description": "Mit dieser Aktion wird die Sitzung für {0} aktive(n) Teilnehmer:innen beendet. Sicher, dass die Sitzung beendet werden soll?",
+ "app.endMeeting.description": "Mit dieser Aktion wird die Konferenz für {0} aktive(n) Teilnehmer beendet. Sind Sie sicher, dass Sie diese Konferenz beenden möchten?",
"app.endMeeting.noUserDescription": "Sind Sie sicher, dass Sie die Konferenz beenden wollen?",
"app.endMeeting.contentWarning": "Chatnachrichten, geteilte Notizen, Whiteboard-Inhalte und geteilte Dokumente dieser Konferenz sind nicht mehr direkt zugänglich",
"app.endMeeting.yesLabel": "Ja",
@@ -436,7 +436,7 @@
"app.statusNotifier.and": "und",
"app.switch.onLabel": "AN",
"app.switch.offLabel": "AUS",
- "app.talkingIndicator.ariaMuteDesc" : "Auswählen, um Teilnehmer:in stummzuschalten",
+ "app.talkingIndicator.ariaMuteDesc" : "Auswählen, um Teilnehmer stummzuschalten",
"app.talkingIndicator.isTalking" : "{0} spricht",
"app.talkingIndicator.moreThanMaxIndicatorsTalking" : "{0}+ sprechen",
"app.talkingIndicator.moreThanMaxIndicatorsWereTalking" : "{0}+ sprachen",
@@ -460,8 +460,8 @@
"app.actionsBar.actionsDropdown.captionsDesc": "Untertitelfenster umschalten",
"app.actionsBar.actionsDropdown.takePresenter": "Zum Präsentator werden",
"app.actionsBar.actionsDropdown.takePresenterDesc": "Sich selbst zum neuen Präsentator machen",
- "app.actionsBar.actionsDropdown.selectRandUserLabel": "Zufällig auswählen",
- "app.actionsBar.actionsDropdown.selectRandUserDesc": "Wählt eine:n Teilnehmer:in nach dem Zufallsprinzip aus.",
+ "app.actionsBar.actionsDropdown.selectRandUserLabel": "Zufälligen Teilnehmer auswählen",
+ "app.actionsBar.actionsDropdown.selectRandUserDesc": "Wählt einen Teilnehmer nach dem Zufallsprinzip aus",
"app.actionsBar.emojiMenu.statusTriggerLabel": "Status setzen",
"app.actionsBar.emojiMenu.awayLabel": "Abwesend",
"app.actionsBar.emojiMenu.awayDesc": "Ihren Status auf abwesend setzen",
@@ -511,7 +511,7 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Gruppenraum auswählen, dem beigetreten werden soll",
"app.breakoutTimeRemainingMessage": "Verbleibende Gruppenraumzeit: {0}",
"app.breakoutWillCloseMessage": "Zeit abgelaufen. Der Gruppenraum wird in Kürze geschlossen.",
- "app.breakout.dropdown.manageDuration": "Dauer verwalten",
+ "app.breakout.dropdown.manageDuration": "Dauer ändern",
"app.breakout.dropdown.destroyAll": "Gruppenräume beenden",
"app.breakout.dropdown.options": "Gruppenraumoptionen",
"app.calculatingBreakoutTimeRemaining": "Berechne verbleibende Zeit...",
@@ -576,13 +576,13 @@
"app.audio.listenOnly.closeLabel": "Schließen",
"app.audio.permissionsOverlay.title": "Zugriff auf das Mikrofon erlauben",
"app.audio.permissionsOverlay.hint": "Zugriff auf die Mediengeräte muss im Browser erlaubt werden, um an einer Audiokonferenz teilnehmen zu können.",
- "app.error.removed": "Die Konferenz musste verlassen werden.",
- "app.error.meeting.ended": "Konferenz wurde verlassen",
- "app.meeting.logout.duplicateUserEjectReason": "Bereits anwesende:r Teilnehmer:in versucht erneut der Konferenz beizutreten",
+ "app.error.removed": "Sie wurden aus der Konferenz entfernt",
+ "app.error.meeting.ended": "Sie haben die Konferenz verlassen",
+ "app.meeting.logout.duplicateUserEjectReason": "Bereits anwesender Teilnehmer versucht erneut der Konferenz beizutreten",
"app.meeting.logout.permissionEjectReason": "Aufgrund einer Rechteverletzung aus der Konferenz entfernt worden",
"app.meeting.logout.ejectedFromMeeting": "Sie wurden aus der Konferenz entfernt",
"app.meeting.logout.validateTokenFailedEjectReason": "Verifikation des Autorisierungsmerkmals fehlgeschlagen",
- "app.meeting.logout.userInactivityEjectReason": "Teilnehmer:in war zu lange inaktiv",
+ "app.meeting.logout.userInactivityEjectReason": "Teilnehmer war zu lange inaktiv",
"app.meeting-ended.rating.legendLabel": "Feedbackbewertung",
"app.meeting-ended.rating.starLabel": "Stern",
"app.modal.close": "Schließen",
@@ -590,13 +590,13 @@
"app.modal.confirm": "Fertig",
"app.modal.newTab": "(Öffnet neuen Tab)",
"app.modal.confirm.description": "Änderungen speichern und Dialog schließen",
- "app.modal.randomUser.noViewers.description": "Kein:e Teilnehmer:in zur zufälligen Auswahl verfügbar",
- "app.modal.randomUser.selected.description": "zufällig ausgewählt",
- "app.modal.randomUser.title": "Zufällig ausgewählte:r Teilnehmer:in",
+ "app.modal.randomUser.noViewers.description": "Keine Teilnehmer zur zufälligen Auswahl verfügbar",
+ "app.modal.randomUser.selected.description": "Sie wurden zufällig ausgewählt",
+ "app.modal.randomUser.title": "Zufällig ausgewählter Teilnehmer",
"app.modal.randomUser.who": "Wer wird ausgewählt...?",
- "app.modal.randomUser.alone": "Es gibt nur eine:n Teilnehmer:in",
+ "app.modal.randomUser.alone": "Es gibt nur einen Teilnehmer",
"app.modal.randomUser.reselect.label": "Erneut auswählen",
- "app.modal.randomUser.ariaLabel.title": "Dialog für zufällig ausgewählte:n Teilnehmer:in",
+ "app.modal.randomUser.ariaLabel.title": "Dialog für zufällig ausgewählten Teilnehmer",
"app.dropdown.close": "Schließen",
"app.dropdown.list.item.activeLabel": "Aktiv",
"app.error.400": "Ungültige Anfrage",
@@ -606,9 +606,10 @@
"app.error.408": "Authentifizierung fehlgeschlagen",
"app.error.410": "Die Konferenz ist zu Ende",
"app.error.500": "Ups, irgendwas ist schiefgelaufen",
- "app.error.userLoggedOut": "Teilnehmer:in hat einen ungültigen Konferenz-Token, weil er:sie sich ausgeloggt hat",
- "app.error.ejectedUser": "Teilnehmer:in hat einen ungültigen Konferenz-Token, weil er:sie gesperrt wurde",
- "app.error.userBanned": "Teilnehmer:in wurde gesperrt",
+ "app.error.userLoggedOut": "Teilnehmer hat einen ungültigen Konferenz-Token, weil er sich ausgeloggt hat",
+ "app.error.ejectedUser": "Teilnehmer hat einen ungültigen Konferenz-Token, weil er gesperrt wurde",
+ "app.error.joinedAnotherWindow": "Diese Konferenz scheint in einem anderen Browserfenster geöffnet zu sein.",
+ "app.error.userBanned": "Teilnehmer wurde gesperrt",
"app.error.leaveLabel": "Erneut einloggen",
"app.error.fallback.presentation.title": "Es ist ein Fehler aufgetreten",
"app.error.fallback.presentation.description": "Er wurde protokolliert. Bitte versuchen, die Seite neu zu laden.",
@@ -617,30 +618,30 @@
"app.guest.errorSeeConsole": "Fehler: Weitere Details in der Konsole.",
"app.guest.noModeratorResponse": "Keine Antwort vom Moderator.",
"app.guest.noSessionToken": "Kein Konferenz-Token erhalten.",
- "app.guest.windowTitle": "Wartebereich für Gäste",
+ "app.guest.windowTitle": "BigBlueButton - Wartebereich für Gäste",
"app.guest.missingToken": "Gast fehlt Konferenz-Token.",
"app.guest.missingSession": "Gast fehlt in der Konferenz.",
"app.guest.missingMeeting": "Konferenz existiert nicht.",
"app.guest.meetingEnded": "Konferenz beendet.",
"app.guest.guestWait": "Bitte warten Sie, bis ein Moderator Ihre Teilnahme an der Konferenz freigibt.",
- "app.guest.guestDeny": "Moderator:in hat die Teilnahme an der Konferenz abgelehnt.",
+ "app.guest.guestDeny": "Der Moderator hat die Teilnahme an der Konferenz abgelehnt.",
"app.guest.seatWait": "Gast wartet auf die Teilnahme an der Konferenz.",
"app.guest.allow": "Gast zugelassen und zur Konferenz weitergeleitet.",
- "app.guest.firstPositionInWaitingQueue": "Nun Erste:r in der Warteschlange!",
+ "app.guest.firstPositionInWaitingQueue": "Sie sind der Erste in der Warteschlange!",
"app.guest.positionInWaitingQueue": "Aktuelle Position in der Warteschlange: ",
"app.guest.guestInvalid": "Gastteilnehmer ist ungültig",
"app.guest.meetingForciblyEnded": "An einer Konferenz, die bereits beendet wurde, kann nicht teilgenommen werden",
- "app.userList.guest.waitingUsers": "Wartende Teilnehmer:innen",
+ "app.userList.guest.waitingUsers": "Wartende Teilnehmer",
"app.userList.guest.waitingUsersTitle": "Teilnehmerverwaltung",
- "app.userList.guest.optionTitle": "Unbearbeitete Teilnehmer:innen überprüfen",
+ "app.userList.guest.optionTitle": "Unbearbeitete Teilnehmer überprüfen",
"app.userList.guest.allowAllAuthenticated": "Alle Autorisierten erlauben",
"app.userList.guest.allowAllGuests": "Alle Gäste erlauben",
"app.userList.guest.allowEveryone": "Alle erlauben",
"app.userList.guest.denyEveryone": "Alle verweigern",
- "app.userList.guest.pendingUsers": "{0} unbearbeitete Teilnehmer:innen",
- "app.userList.guest.noPendingUsers": "Derzeit keine ausstehenden Teilnehmer:innen ...",
+ "app.userList.guest.pendingUsers": "{0} unbearbeitete Teilnehmer",
+ "app.userList.guest.noPendingUsers": "Derzeit keine ausstehenden Teilnehmer...",
"app.userList.guest.pendingGuestUsers": "{0} wartende Gäste",
- "app.userList.guest.pendingGuestAlert": "Ist der Konferenz beigetreten und wartet auf Teilnahmeerlaubnis",
+ "app.userList.guest.pendingGuestAlert": "Ist der Konferenz beigetreten und wartet auf Ihre Teilnahmeerlaubnis",
"app.userList.guest.rememberChoice": "Auswahl für die Zukunft speichern",
"app.userList.guest.emptyMessage": "Momentan keine Nachricht vorhanden",
"app.userList.guest.inputPlaceholder": "Nachricht für den Wartebereich",
@@ -655,7 +656,7 @@
"app.toast.chat.system": "System",
"app.toast.clearedEmoji.label": "Emojistatus zurückgesetzt",
"app.toast.setEmoji.label": "Emojistatus auf {0} gesetzt",
- "app.toast.meetingMuteOn.label": "Alle Teilnehmer:innen wurden stummgeschaltet",
+ "app.toast.meetingMuteOn.label": "Alle Teilnehmer wurden stummgeschaltet",
"app.toast.meetingMuteOff.label": "Konferenz-Stummschaltung ausgeschaltet",
"app.toast.setEmoji.raiseHand": "Sie haben Ihre Hand gehoben",
"app.toast.setEmoji.lowerHand": "Habe meine Hand gesenkt",
@@ -692,7 +693,7 @@
"app.shortcut-help.toggleFullscreenKey": "Enter",
"app.shortcut-help.nextSlideKey": "Pfeil rechts",
"app.shortcut-help.previousSlideKey": "Pfeil links",
- "app.lock-viewers.title": "Rechte der Teilnehmer:innen einschränken",
+ "app.lock-viewers.title": "Teilnehmerrechte einschränken",
"app.lock-viewers.description": "Diese Optionen ermöglichen es, bestimmte Funktionen für Teilnehmer einzuschränken.",
"app.lock-viewers.featuresLable": "Funktion",
"app.lock-viewers.lockStatusLabel": "Status",
@@ -786,7 +787,7 @@
"app.video.notReadableError": "Konnte nicht auf die Webcam zugreifen. Bitte prüfen, dass kein anderes Programm auf die Webcam zugreift",
"app.video.timeoutError": "Der Browser hat nicht rechtzeitig reagiert.",
"app.video.genericError": "Ein unbekannter Fehler ist mit der Kamera aufgetreten (Fehler {0})",
- "app.video.mediaTimedOutError": "Die Webcam-Freigabe wurde unterbrochen. Bitte erneut starten.",
+ "app.video.mediaTimedOutError": "Ihre Webcam-Freigabe wurde unterbrochen. Bitte erneut starten.",
"app.video.mediaFlowTimeout1020": "Verbindung zum Server konnte nicht hergestellt werden (Fehler 1020)",
"app.video.suggestWebcamLock": "Sperrung der Teilnehmerwebcams aktivieren?",
"app.video.suggestWebcamLockReason": "(dies wird die Stabilität der Konferenz erhöhen)",
@@ -810,7 +811,7 @@
"app.video.virtualBackground.background": "Hintergrund",
"app.video.virtualBackground.genericError": "Virtueller Hintergrund konnte nicht angewendet werden. Bitte erneut versuchen.",
"app.video.virtualBackground.camBgAriaDesc": "Setzt den virtuellen Hintergrund der Webcam auf {0}",
- "app.video.camCapReached": "Es kann keine weitere Kamera freigegeben werden",
+ "app.video.camCapReached": "Sie können keine weiteren Kameras freigeben",
"app.video.meetingCamCapReached": "Konferenz hat die maximale Anzahl gleichzeitiger Kameras erreicht",
"app.video.dropZoneLabel": "Hier loslassen",
"app.fullscreenButton.label": "{0} als Vollbild darstellen",
@@ -863,7 +864,7 @@
"app.whiteboard.toolbar.fontSize": "Schriftgrößenliste",
"app.whiteboard.toolbarAriaLabel": "Präsentationswerkzeuge",
"app.feedback.title": "Sie haben sich aus der Konferenz ausgeloggt",
- "app.feedback.subtitle": "Wir würden gerne erfahren ob die Technik geklappt hat (optional)",
+ "app.feedback.subtitle": "Wir würden gerne erfahren, wie Sie BigBlueButton finden (optional)",
"app.feedback.textarea": "Wie können wir BigBlueButton verbessern?",
"app.feedback.sendFeedback": "Feedback senden",
"app.feedback.sendFeedbackDesc": "Feedback abschicken und Konferenz verlassen",
@@ -873,12 +874,12 @@
"app.videoDock.webcamFocusDesc": "Ausgewählte Webcam vergrößern",
"app.videoDock.webcamUnfocusLabel": "Normalgröße",
"app.videoDock.webcamUnfocusDesc": "Ausgewählte Webcam auf Normalgröße verkleinern",
- "app.videoDock.webcamPinLabel": "Kamera anheften",
- "app.videoDock.webcamPinDesc": "Ausgewählte Webcam fixieren",
- "app.videoDock.webcamUnpinLabel": "Kamera lösen",
- "app.videoDock.webcamUnpinLabelDisabled": "Nur Moderator:innen können Teilnehmer:innen lösen",
+ "app.videoDock.webcamPinLabel": "Anheften",
+ "app.videoDock.webcamPinDesc": "Ausgewählte Webcam anheften",
+ "app.videoDock.webcamUnpinLabel": "Lösen",
+ "app.videoDock.webcamUnpinLabelDisabled": "Nur Moderatoren können Teilnehmer lösen",
"app.videoDock.webcamUnpinDesc": "Ausgewählte Webcam lösen",
- "app.videoDock.autoplayBlockedDesc": "Wir benötigen Ihre/deine Zustimmung, um die Webcams anderer Teilnehmer:innen zu zeigen.",
+ "app.videoDock.autoplayBlockedDesc": "Wir benötigen Ihre Zustimmung, um Ihnen die Webcams anderer Teilnehmer zu zeigen.",
"app.videoDock.autoplayAllowLabel": "Webcams zeigen",
"app.invitation.title": "Gruppenraumeinladung",
"app.invitation.confirm": "Einladen",
@@ -887,7 +888,7 @@
"app.createBreakoutRoom.breakoutRoomLabel": "Gruppenräume {0}",
"app.createBreakoutRoom.askToJoin": "Raum beitreten",
"app.createBreakoutRoom.generatingURL": "Erzeuge URL",
- "app.createBreakoutRoom.generatingURLMessage": "Wir generieren eine Teilnahme-URL für den ausgewählten Gruppenraum. Das kann ein paar Sekunden dauern ...",
+ "app.createBreakoutRoom.generatingURLMessage": "Wir generieren eine Teilnahme-URL für den ausgewählten Gruppenraum. Das kann ein paar Sekunden dauern...",
"app.createBreakoutRoom.duration": "Dauer {0}",
"app.createBreakoutRoom.room": "Raum {0}",
"app.createBreakoutRoom.notAssigned": "Nicht zugewiesen ({0})",
@@ -902,7 +903,7 @@
"app.createBreakoutRoom.randomlyAssign": "Zufällig zuordnen",
"app.createBreakoutRoom.randomlyAssignDesc": "Teilnehmer zufällig in Gruppenräume zuordnen",
"app.createBreakoutRoom.resetAssignments": "Zuordnungen zurücksetzen",
- "app.createBreakoutRoom.resetAssignmentsDesc": "Alle Raumzuordnungen der Teilnehmer:innen zurücksetzen",
+ "app.createBreakoutRoom.resetAssignmentsDesc": "Alle Raumzuordnungen der Teilnehmer zurücksetzen",
"app.createBreakoutRoom.endAllBreakouts": "Alle Gruppenräume beenden",
"app.createBreakoutRoom.chatTitleMsgAllRooms": "alle Räume",
"app.createBreakoutRoom.msgToBreakoutsSent": "Nachricht wurde an {0} Gruppenräume gesendet",
@@ -912,10 +913,10 @@
"app.createBreakoutRoom.minusRoomTime": "Gruppenraumzeit verringern auf",
"app.createBreakoutRoom.addRoomTime": "Gruppenraumzeit erhöhen auf",
"app.createBreakoutRoom.addParticipantLabel": "+ Teilnehmer hinzufügen",
- "app.createBreakoutRoom.freeJoin": "Erlauben, sich selbst einen Gruppenraum auszusuchen.",
- "app.createBreakoutRoom.leastOneWarnBreakout": "Jedem Gruppenraum muss wenigstens ein:e Teilnehmer:in zugeordnet sein.",
+ "app.createBreakoutRoom.freeJoin": "Den Teilnehmern erlauben, sich selbst einen Gruppenraum auszusuchen.",
+ "app.createBreakoutRoom.leastOneWarnBreakout": "Jedem Gruppenraum muss wenigstens ein Teilnehmer zugeordnet sein.",
"app.createBreakoutRoom.minimumDurationWarnBreakout": "Die Mindestdauer für einen Gruppenraum beträgt {0} Minuten.",
- "app.createBreakoutRoom.modalDesc": "Tipp: Teilnehmer:in per Drag-and-Drop einem bestimmten Gruppenraum zuweisen.",
+ "app.createBreakoutRoom.modalDesc": "Tipp: Sie können die Teilnehmer per Drag-and-Drop einem bestimmten Gruppenraum zuweisen.",
"app.createBreakoutRoom.roomTime": "{0} Minuten",
"app.createBreakoutRoom.numberOfRoomsError": "Die Raumanzahl ist ungültig.",
"app.createBreakoutRoom.duplicatedRoomNameError": "Raumname kann nicht doppelt vergeben werden.",
@@ -1036,7 +1037,7 @@
"app.learningDashboard.usersTable.userStatusOffline": "Offline",
"app.learningDashboard.usersTable.noUsers": "Bisher keine Teilnehmer",
"app.learningDashboard.usersTable.name": "Name",
- "app.learningDashboard.usersTable.moderator": "Moderator:in",
+ "app.learningDashboard.usersTable.moderator": "Moderator",
"app.learningDashboard.usersTable.pollVotes": "Abstimmungen",
"app.learningDashboard.usersTable.join": "Teilnahme",
"app.learningDashboard.usersTable.left": "Verlassen",
@@ -1052,11 +1053,11 @@
"app.learningDashboard.errors.dataUnavailable": "Die Daten sind nicht mehr verfügbar",
"mobileApp.portals.list.empty.addFirstPortal.label": "Fügen Sie Ihr erstes Portal über die Schaltfläche oben hinzu,",
"mobileApp.portals.list.empty.orUseOurDemoServer.label": "oder nutzen Sie unseren Demo-Server.",
- "mobileApp.portals.list.add.button.label": "Neues Portal",
+ "mobileApp.portals.list.add.button.label": "Portal hinzufügen",
"mobileApp.portals.fields.name.label": "Portalname",
"mobileApp.portals.fields.name.placeholder": "BigBlueButton Demo",
"mobileApp.portals.fields.url.label": "Server-URL",
- "mobileApp.portals.addPortalPopup.confirm.button.label": "Portal hinzufügen",
+ "mobileApp.portals.addPortalPopup.confirm.button.label": "Speichern",
"mobileApp.portals.drawerNavigation.button.label": "Portale",
"mobileApp.portals.addPortalPopup.validation.emptyFields": "Benötigte Felder",
"mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Name existiert bereits",
diff --git a/bigbluebutton-html5/public/locales/el_GR.json b/bigbluebutton-html5/public/locales/el_GR.json
index 6fdb43fae9..0c03be5128 100644
--- a/bigbluebutton-html5/public/locales/el_GR.json
+++ b/bigbluebutton-html5/public/locales/el_GR.json
@@ -485,7 +485,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Επιλέξτε ένα υπο-δωμάτιο (breakout) για συμμετοχή",
"app.breakoutTimeRemainingMessage": "Χρόνος υπο-δωματίου (breakout) που απομένει: {0}",
"app.breakoutWillCloseMessage": "Ο χρόνος τελείωσε. Το υπο-δωμάτιο (breakout) θα κλείσει σύντομα.",
- "app.breakout.dropdown.manageDuration": "Διαχείριση διάρκειας",
"app.calculatingBreakoutTimeRemaining": "Υπολογισμός υπόλοιπου χρόνου ...",
"app.audioModal.ariaTitle": "Συμμετοχή με τυπικό ήχο",
"app.audioModal.microphoneLabel": "Μικρόφωνο",
diff --git a/bigbluebutton-html5/public/locales/en.json b/bigbluebutton-html5/public/locales/en.json
index 0c1fa33025..72ddf421f4 100755
--- a/bigbluebutton-html5/public/locales/en.json
+++ b/bigbluebutton-html5/public/locales/en.json
@@ -541,8 +541,8 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Choose a breakout room to join",
"app.breakoutTimeRemainingMessage": "Breakout room time remaining: {0}",
"app.breakoutWillCloseMessage": "Time ended. Breakout room will close soon",
- "app.breakout.dropdown.manageDuration": "Manage duration",
- "app.breakout.dropdown.destroyAll": "Destroy breakouts",
+ "app.breakout.dropdown.manageDuration": "Change duration",
+ "app.breakout.dropdown.destroyAll": "End breakout rooms",
"app.breakout.dropdown.options": "Breakout Options",
"app.calculatingBreakoutTimeRemaining": "Calculating remaining time ...",
"app.audioModal.ariaTitle": "Join audio modal",
@@ -643,6 +643,7 @@
"app.error.500": "Ops, something went wrong",
"app.error.userLoggedOut": "User has an invalid sessionToken due to log out",
"app.error.ejectedUser": "User has an invalid sessionToken due to ejection",
+ "app.error.joinedAnotherWindow": "This session seems to be opened in another browser window.",
"app.error.userBanned": "User has been banned",
"app.error.leaveLabel": "Log in again",
"app.error.fallback.presentation.title": "An error occurred",
diff --git a/bigbluebutton-html5/public/locales/et.json b/bigbluebutton-html5/public/locales/et.json
index 281d96459b..6ae5549d98 100644
--- a/bigbluebutton-html5/public/locales/et.json
+++ b/bigbluebutton-html5/public/locales/et.json
@@ -510,8 +510,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Vali eraldatud ruum, millega liituda",
"app.breakoutTimeRemainingMessage": "Eraldatud ruumi järelejäänud aeg: {0}",
"app.breakoutWillCloseMessage": "Aeg sai läbi. Eraldatud ruum suletakse kohe",
- "app.breakout.dropdown.manageDuration": "Halda kestust",
- "app.breakout.dropdown.destroyAll": "Lõpeta eraldatud ruumid",
"app.breakout.dropdown.options": "Eraldatud ruumide valikud",
"app.calculatingBreakoutTimeRemaining": "Arvutan järelejäänud aega...",
"app.audioModal.ariaTitle": "Audioga liitumise aken",
diff --git a/bigbluebutton-html5/public/locales/eu.json b/bigbluebutton-html5/public/locales/eu.json
index 34b30f06d4..e004515e2d 100644
--- a/bigbluebutton-html5/public/locales/eu.json
+++ b/bigbluebutton-html5/public/locales/eu.json
@@ -510,8 +510,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Aukeratu azpitalde baten gela bertara sartzeko",
"app.breakoutTimeRemainingMessage": "Azpitaldearen gelari geratzen zaion denbora: {0}",
"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.audioModal.ariaTitle": "Erabili audio modala",
diff --git a/bigbluebutton-html5/public/locales/fa_IR.json b/bigbluebutton-html5/public/locales/fa_IR.json
index 7b17186f81..f6d945acd4 100644
--- a/bigbluebutton-html5/public/locales/fa_IR.json
+++ b/bigbluebutton-html5/public/locales/fa_IR.json
@@ -6,6 +6,7 @@
"app.chat.disconnected": "ارتباط شما قطع شده است، امکان ارسال پیامها وجود ندارد",
"app.chat.locked": "گفنگو قفل شده است، امکان ارسال هیچ پیامی وجود ندارد",
"app.chat.inputLabel": "ورودی پیام برای گفتگو {0}",
+ "app.chat.inputPlaceholder": "پیامها {0}",
"app.chat.titlePublic": "گفتگوی عمومی",
"app.chat.titlePrivate": "گفتگوی خصوصی با {0}",
"app.chat.partnerDisconnected": "{0} جلسه را ترک کرد",
@@ -19,6 +20,7 @@
"app.chat.label": "گفتگو",
"app.chat.offline": "آفلاین",
"app.chat.pollResult": "نتایج نظرسنجی",
+ "app.chat.breakoutDurationUpdated": "زمان جلسه زیرمجموعه اکنون {0} دقیقه است. ",
"app.chat.emptyLogLabel": "پاک کردن سابقه گفتگو",
"app.chat.clearPublicChatMessage": "سابقه گفتگوها توسط مدیر حذف گردید",
"app.chat.multi.typing": "چند کاربر در حال نوشتن هستند",
@@ -41,8 +43,23 @@
"app.captions.menu.backgroundColor": "رنگ پسزمینه",
"app.captions.menu.previewLabel": "پیشنمایش",
"app.captions.menu.cancelLabel": "لغو",
+ "app.captions.hide": "پنهانسازی زیرنویسها",
+ "app.captions.ownership": "گرفتن کنترل",
+ "app.captions.ownershipTooltip": "شما به عنوان صاحب زیرنویسهای {0} منسوب خواهید شد",
+ "app.captions.dictationStart": "آغاز نوشتن کلمات",
+ "app.captions.dictationStop": "توقف نوشتن کلمات",
+ "app.captions.dictationOnDesc": "روشن کردن امکان تشخیص گفتار",
+ "app.captions.dictationOffDesc": "غیرفعال کردن امکان تشخیص گفتار",
+ "app.captions.speech.start": "امکان تشخیص گفتار آغاز شد",
+ "app.captions.speech.stop": "امکان تشخیص گفتار متوقف شد",
+ "app.captions.speech.error": "به دلیل ناسازگاری مرورگر یا ایجاد وقفه، تشخیص گفتار متوقف شده است",
"app.textInput.sendLabel": "ارسال",
"app.title.defaultViewLabel": "نمای پیشفرض ارائه",
+ "app.notes.title": "یادداشتهای اشتراکی",
+ "app.notes.label": "یادداشتها",
+ "app.notes.hide": "پنهان کردن یادداشتها",
+ "app.notes.locked": "قفل شده",
+ "app.pads.hint": "برای تمرکز روی نوار ابزار برگه یادداشت، Esc را فشار دهید",
"app.user.activityCheck": "بررسی فعالیت کاربر",
"app.user.activityCheck.label": "بررسی کنید آیا کاربر هنوز در جلسه ({0}) حضور دارد",
"app.user.activityCheck.check": "بررسی",
@@ -101,6 +118,7 @@
"app.userList.userOptions.disableMic": "استفاده از امکان صدا برای کاربران غیرفعال شده است",
"app.userList.userOptions.disablePrivChat": "گفتگوی خصوصی غیرفعال شده است",
"app.userList.userOptions.disablePubChat": "گفتگوی عمومی غیرفعال شده است",
+ "app.userList.userOptions.disableNotes": "یادداشت اشتراکی در حال حاضر قفل هستند",
"app.userList.userOptions.hideUserList": "لیست کاربران در حال حاضر برای شرکت کنندگان قابل مشاهده نیست",
"app.userList.userOptions.webcamsOnlyForModerator": "تنها مدیران امکان مشاهده دوربینهای کاربران را دارند (به دلیل تنظیمات قفل)",
"app.userList.content.participants.options.clearedStatus": "وضعیت همه کاربرها پاک شد",
@@ -108,11 +126,14 @@
"app.userList.userOptions.enableMic": "میکروفون کاربران فعال شد",
"app.userList.userOptions.enablePrivChat": "گفتگوی خصوصی فعال شد",
"app.userList.userOptions.enablePubChat": "گفتگوی عمومی فعال شد",
+ "app.userList.userOptions.enableNotes": "یادداشتهای اشتراکی در حال حاضر فعال هستند",
"app.userList.userOptions.showUserList": "لیست کاربران در حال حاضر برای شرکت کنندگان قابل مشاهده است",
"app.userList.userOptions.enableOnlyModeratorWebcam": "شما در حال حاضر میتوانید دوربین خود را به اشتراک بگذارید، همه تصویر شما را خواهند دید",
"app.userList.userOptions.savedNames.title": "لیست کاربران در جلسه {0} در {1}",
"app.userList.userOptions.sortedFirstName.heading": "مرتب شده بر اساس نام:",
"app.userList.userOptions.sortedLastName.heading": "مرتب شده بر اساس نام خانوادگی:",
+ "app.userList.userOptions.hideViewersCursor": "نشانگر بیننده قفل شده است",
+ "app.userList.userOptions.showViewersCursor": "قفل نشانگر بیننده باز شده است",
"app.media.label": "صدا و تصویر",
"app.media.autoplayAlertDesc": "دادن اجازه دسترسی",
"app.media.screenshare.start": "اشتراک صفحه نمایش شروع شد",
@@ -125,9 +146,9 @@
"app.screenshare.presenterLoadingLabel": "اشتراکگذاری صفحه نمایش شما در حال بارگذاری است",
"app.screenshare.viewerLoadingLabel": "اشتراکگذاری صفحه نمایش ارائهدهنده در حال بارگذاری است",
"app.screenshare.presenterSharingLabel": "اکنون شما در حال اشتراکگذاری صفحه نمایشتان هستید",
- "app.screenshare.screenshareFinalError": "کد {0}: نتوانست صفحهی نمایش را به اشتراک بگذارد.",
+ "app.screenshare.screenshareFinalError": "کد {0}: اشتراکگذاری صفحهی نمایش امکانپذیر نیست..",
"app.screenshare.screenshareRetryError": "کد {0}: دوباره سعی کنید صفحه نمایش را به اشتراک بگذارید. ",
- "app.screenshare.screenshareRetryOtherEnvError": "کد {0}: نتواست صفحه را به اشتراک بگذارد. با مرورگر یا وسیله دیگری امتحان کنید.",
+ "app.screenshare.screenshareRetryOtherEnvError": "کد {0}: اشتراکگذاری صفحهی نمایش امکانپذیر نیست. با مرورگر یا وسیله دیگری امتحان کنید.",
"app.screenshare.screenshareUnsupportedEnv": "کد {0}: مرورگر پشتیبانی نمی شود. با مرورگر یا وسیله دیگری امتحان کنید.",
"app.screenshare.screensharePermissionError": "کد {0}: برای گرفتن صفحه باید دسترسی آن را فعال کنید.",
"app.meeting.ended": "جلسه پایان یافت",
@@ -149,6 +170,13 @@
"app.presentation.endSlideContent": "انتهای محتوای اسلاید",
"app.presentation.changedSlideContent": "ارائه به اسلاید {0} تغییر کرد",
"app.presentation.emptySlideContent": "محتوایی برای اسلاید کنونی وجود ندارد",
+ "app.presentation.options.fullscreen": "تمام صفحه",
+ "app.presentation.options.exitFullscreen": "بستن حالت تمام صفحه",
+ "app.presentation.options.minimize": "کمینهکردن",
+ "app.presentation.options.snapshot": "تصویر لحظهای نمای فعلی ارائه",
+ "app.presentation.options.downloading": "در حال بارگیری...",
+ "app.presentation.options.downloaded": "ارائه فعلی بارگیری شد",
+ "app.presentation.options.downloadFailed": "بارگیری ارائه فعلی امکانپذیر نیست",
"app.presentation.presentationToolbar.noNextSlideDesc": "انتهای ارائه",
"app.presentation.presentationToolbar.noPrevSlideDesc": "ابتدای ارائه",
"app.presentation.presentationToolbar.selectLabel": "انتخاب اسلاید",
@@ -173,6 +201,7 @@
"app.presentation.presentationToolbar.fitToWidth": "اندازه تصویر را متناسب با عرض ارائه کن",
"app.presentation.presentationToolbar.fitToPage": "اندازه تصویر را متناسب با عرض صفحه کن",
"app.presentation.presentationToolbar.goToSlide": "اسلاید {0}",
+ "app.presentation.placeholder": "در حال حاضر هیچ ارائه فعالی وجود ندارد",
"app.presentationUploder.title": "ارائه",
"app.presentationUploder.message": "به عنوان یک ارائه دهنده شما قادرید انواع فایل های مجموعه آفیس و یا فایل PDF را بارگذاری نمایید؛ پیشنهاد ما برای رسیدن به بهترین نتایج، استفاده از فایل PDF میباشد. لطفا از انتخاب بودن یک ارائه توسط گزینه سمت راست اطمینان حاصل کنید.",
"app.presentationUploder.extraHint": "*مهم*: هر فایل نباید از {0} مگابایت و {1} صفحه تجاوز کند. ",
@@ -188,6 +217,7 @@
"app.presentationUploder.fileToUpload": "آماده بارگذاری ...",
"app.presentationUploder.currentBadge": "کنونی",
"app.presentationUploder.rejectedError": "پرونده(های) انتخاب شده رد شدند. لطفا نوع پرونده(ها) را بررسی کنید.",
+ "app.presentationUploder.connectionClosedError": "به دلیل اتصال ضعیف قطع شد. لطفا دوباره تلاش کنید. ",
"app.presentationUploder.upload.progress": "در حال بارگذاری ({0}%)",
"app.presentationUploder.upload.413": "حجم پرونده زیاد است، از حداکثر {0} مگابایت بیشتر است",
"app.presentationUploder.genericError": "آخ، خطای پیش آمده است...",
@@ -226,6 +256,7 @@
"app.poll.autoOptionInstructions.label": "انتخاب خودکار فعال است - سوال نظرسنجی و گزینه(های) را در قالب داده شده بنویسید.",
"app.poll.maxOptionsWarning.label": "فقط 5 گزینه اول قابل استفاده است!",
"app.poll.pollPaneTitle": "نظرسنجی",
+ "app.poll.enableMultipleResponseLabel": "اجازه برای پاسخهای متعدد به ازای هر پاسخدهنده؟ ",
"app.poll.quickPollTitle": "نظرسنجی سریع",
"app.poll.hidePollDesc": "پنهانسازی منوی نظرسنجی",
"app.poll.quickPollInstruction": "برای شروع نظرسنجی خود، گزینه زیر را انتخاب کنید.",
@@ -250,11 +281,11 @@
"app.poll.typedResponse.desc" : "برای پرکردن پاسخ خود، یک جعبه متن به کاربران نمایش داده می شود.",
"app.poll.addItem.label" : "اضافه کردن آیتم",
"app.poll.start.label" : "آغاز نظرسنجی",
- "app.poll.secretPoll.label" : "رأیگیری ناشناس",
+ "app.poll.secretPoll.label" : "نظرسنجی ناشناس",
"app.poll.secretPoll.isSecretLabel": "این نظرسنجی ناشناس است - شما قادر نخواهید بود پاسخهای فردی را ببینید.",
"app.poll.questionErr": "ارائه یک سوال الزامی است.",
"app.poll.optionErr": "یک گزینه نظرسنجی وارد کنید",
- "app.poll.startPollDesc": "آغاز رایگیری",
+ "app.poll.startPollDesc": "آغاز نظرسنجی",
"app.poll.showRespDesc": "نمایش پاسخ پیکربندی",
"app.poll.addRespDesc": "اضافه کردن ورودی پاسخ نظر سنجی",
"app.poll.deleteRespDesc": "حذف گزینه {0}",
@@ -282,7 +313,7 @@
"app.poll.liveResult.usersTitle": "کاربران",
"app.poll.liveResult.responsesTitle": "پاسخ",
"app.poll.liveResult.secretLabel": "این یک نظرسنجی ناشناس است. پاسخ هر فرد نمایش داده نمیشود.",
- "app.poll.removePollOpt": "گزینه نظرسنجی حذف شد {0}",
+ "app.poll.removePollOpt": "گزینه {0} نظرسنجی حذف شد",
"app.poll.emptyPollOpt": "خالی",
"app.polling.pollingTitle": "امکانات نظرسنجی",
"app.polling.pollQuestionTitle": "سوال نظرسنجی",
@@ -336,6 +367,7 @@
"app.endMeeting.noLabel": "خیر",
"app.about.title": "درباره",
"app.about.version": "نسخه کاربر:",
+ "app.about.version_label": "نسخه بیگبلوباتن:",
"app.about.copyright": "حق نشر:",
"app.about.confirmLabel": "تایید",
"app.about.confirmDesc": "تایید",
@@ -396,6 +428,7 @@
"app.settings.dataSavingTab.description": "برای صرفه جویی در مصرف پهنای باند اینترنت آیتم هایی که باید نمایش داده شوند را انتخاب کنید.",
"app.settings.save-notification.label": "تنظیمات ذخیره شدند",
"app.statusNotifier.lowerHands": "دستهای پایین",
+ "app.statusNotifier.lowerHandDescOneUser": "پایین آوردن دست {0}",
"app.statusNotifier.raisedHandsTitle": "دستهای بالا برده شده",
"app.statusNotifier.raisedHandDesc": "{0} دستشان را بالا بردند",
"app.statusNotifier.raisedHandDescOneUser": "{0} دستش را بالا برد",
@@ -477,6 +510,9 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "یک اتاق مجموعه را برای ملحق شدن انتخاب کنید",
"app.breakoutTimeRemainingMessage": "زمان باقی مانده از اتاق زیرمجموعه: {0}",
"app.breakoutWillCloseMessage": "زمان به اتمام رسید. اتاق زیرمجموعه به زودی بسته خواهد شد",
+ "app.breakout.dropdown.manageDuration": "تغیر مدت زمان",
+ "app.breakout.dropdown.destroyAll": "اتمام اتاقهای زیرمجموعه",
+ "app.breakout.dropdown.options": "گزینههای زیرمجموعه",
"app.calculatingBreakoutTimeRemaining": "در حال محاسبه زمان باقی مانده ...",
"app.audioModal.ariaTitle": "ملحق شدن به مدال صدا",
"app.audioModal.microphoneLabel": "میکروفون",
@@ -532,6 +568,7 @@
"app.audio.audioSettings.descriptionLabel": "لطفا توجه کنید، یک پیام در مرورگر شما ظاهر میشود، که از شما میخواهد اجازه اشتراک میکروفن خود را بدهید.",
"app.audio.audioSettings.microphoneSourceLabel": "منبع ورودی میکروفن",
"app.audio.audioSettings.speakerSourceLabel": "منبع خروجی صدا",
+ "app.audio.audioSettings.testSpeakerLabel": "بلندگوی خود را امتحان کنید",
"app.audio.audioSettings.microphoneStreamLabel": "بلندی صدای میکروفن شما",
"app.audio.audioSettings.retryLabel": "تلاش مجدد",
"app.audio.listenOnly.backLabel": "بازگشت",
@@ -570,6 +607,7 @@
"app.error.500": "آخ، خطای پیش آمده است",
"app.error.userLoggedOut": "کاربر به خاطر خروج sessionToken غیر معتبر دارد",
"app.error.ejectedUser": "کاربر به خاطر اخراج sessionToken غیر معتبر دارد",
+ "app.error.joinedAnotherWindow": "به نظر میرسد که این جلسه در پنجره مرورگر دیگری باز شده است. ",
"app.error.userBanned": "کاربر مسدود شده است",
"app.error.leaveLabel": "دوباره وارد شوید",
"app.error.fallback.presentation.title": "یک خطا رخ داده است",
@@ -588,6 +626,8 @@
"app.guest.guestDeny": "درخواست ورود به جلسه مورد پذیرش قرار نگرفت",
"app.guest.seatWait": "میهمان در انتظار اجازه ورود به اتاق میباشد.",
"app.guest.allow": "میربان تائید شد و به جلسه هدایت گردید.",
+ "app.guest.firstPositionInWaitingQueue": "شما اولین نفر در صف هستید!",
+ "app.guest.positionInWaitingQueue": "موقعیت فعلی شما در صف انتظار:",
"app.guest.guestInvalid": " کاربر مهمان نامعتبر است",
"app.guest.meetingForciblyEnded": "شما نمیتوانید به جلسهای بپیوندید که از قبل به اجبار پایان یافته است",
"app.userList.guest.waitingUsers": "کاربران در حال انتظار",
@@ -598,11 +638,14 @@
"app.userList.guest.allowEveryone": "اجازه ورود به همه",
"app.userList.guest.denyEveryone": "رد همه",
"app.userList.guest.pendingUsers": "{0} کاربر در انتظار تایید",
+ "app.userList.guest.noPendingUsers": "در حال حاظر هیچ کاربر معلقی وجود ندارد...",
"app.userList.guest.pendingGuestUsers": "{0} کاربر مهمان در انتظار تایید",
"app.userList.guest.pendingGuestAlert": "به جلسه ملحق شد و منتظر تایید شماست",
"app.userList.guest.rememberChoice": "به یاد داشتن انتخاب",
"app.userList.guest.emptyMessage": "فعلا پیامی نیست",
"app.userList.guest.inputPlaceholder": "ارسال پیام به اتاق انتظار مهمانان",
+ "app.userList.guest.privateInputPlaceholder": "پیام به {0}",
+ "app.userList.guest.privateMessageLabel": "پیامدادن",
"app.userList.guest.acceptLabel": "پذیرفتن",
"app.userList.guest.denyLabel": "رد کردن",
"app.user-info.title": "جستجوی دایرکتوری",
@@ -615,6 +658,9 @@
"app.toast.meetingMuteOn.label": "صدای همه کاربران به حالت بیصدا تغییر کرد",
"app.toast.meetingMuteOff.label": "امکان بیصدا کردن جلسه غیرفعال شد",
"app.toast.setEmoji.raiseHand": "شما دستتان را بالا برده اید",
+ "app.toast.setEmoji.lowerHand": "دست شما پایین آورده شد",
+ "app.toast.promotedLabel": "نقش شما به مدیر ارتقا یافت",
+ "app.toast.demotedLabel": "نقش شما به کاربر عادی تنزل یافت",
"app.notification.recordingStart": "جلسه در حال ضبط شدن است",
"app.notification.recordingStop": "این جلسه ضبط نمیشود",
"app.notification.recordingPaused": "جلسه دیگر ضبط نمیشود",
@@ -642,6 +688,10 @@
"app.shortcut-help.toggleFullscreen": "تغییر حالت تمام صفحه (ارائه دهنده)",
"app.shortcut-help.nextSlideDesc": "اسلاید بعدی (ارائه دهنده)",
"app.shortcut-help.previousSlideDesc": "اسلاید قبلی (ارائه دهنده)",
+ "app.shortcut-help.togglePanKey": "کلید فاصله",
+ "app.shortcut-help.toggleFullscreenKey": "کلید Enter",
+ "app.shortcut-help.nextSlideKey": "کلید سمت راست",
+ "app.shortcut-help.previousSlideKey": "کلید سمت چپ",
"app.lock-viewers.title": "قفل کردن کاربران",
"app.lock-viewers.description": "این قابلیت شما را قادر میسازد تا دسترسی به امکانات ویژه را از کاربران بگیرید.",
"app.lock-viewers.featuresLable": "امکان",
@@ -657,6 +707,7 @@
"app.lock-viewers.button.apply": "اعمال",
"app.lock-viewers.button.cancel": "لغو",
"app.lock-viewers.locked": "قفل شده",
+ "app.lock-viewers.hideViewersCursor": "مشاهده نشانگر دیگر کاربران",
"app.guest-policy.ariaTitle": "فرم تنظیمات سیاست پذیرش درخواست ورود کاربران",
"app.guest-policy.title": "سیاست پذیرش درخواست ورود کاربران",
"app.guest-policy.description": "سیاست پذیرش درخواست ورود کاربران در جلسه را مشخصی کنید",
@@ -669,15 +720,26 @@
"app.connection-status.description": "وضعیت اتصال کاربران را مشاهده کنید",
"app.connection-status.empty": "در حال حاضر هیچ مشکلی در رابطه با اتصال گزارش نشده است",
"app.connection-status.more": "بیشتر",
+ "app.connection-status.copy": "کپی آمار",
"app.connection-status.copied": "کپی شد!",
"app.connection-status.jitter": "Jitter",
"app.connection-status.label": "وضعیت اتصال",
+ "app.connection-status.settings": "تغییردادن تنظیمات شما",
"app.connection-status.no": "No",
"app.connection-status.notification": "قطعی در اتصال شما پیدا شد",
"app.connection-status.offline": "آفلاین",
+ "app.connection-status.audioUploadRate": "نرخ بارگذاری صدا",
+ "app.connection-status.audioDownloadRate": "نرخ بارگیری صدا",
+ "app.connection-status.videoUploadRate": "نرخ بارگذاری تصویر",
+ "app.connection-status.videoDownloadRate": "نرخ بارگیری تصویر",
"app.connection-status.lostPackets": "Lost packets",
"app.connection-status.usingTurn": "Using TURN",
"app.connection-status.yes": "Yes",
+ "app.connection-status.connectionStats": "آمار اتصال",
+ "app.connection-status.myLogs": "گزارشهای من",
+ "app.connection-status.sessionLogs": "گزارشهای جلسه",
+ "app.connection-status.next": "صفحه بعدی",
+ "app.connection-status.prev": "صفحه قبلی",
"app.learning-dashboard.label": "پیشخوان تحلیل یادگیری",
"app.learning-dashboard.description": "باز کردن پیشخوان به همراه فعالیتهای کاربران",
"app.learning-dashboard.clickHereToOpen": "باز کردن پیشخوان تحلیل یادگیری",
@@ -748,6 +810,8 @@
"app.video.virtualBackground.background": "پسزمینه",
"app.video.virtualBackground.genericError": "افکت دوربین اعمال نشد. مجددا تلاش کنید.",
"app.video.virtualBackground.camBgAriaDesc": "تنظیم پسزمینه مجازی دوربین به {0}",
+ "app.video.camCapReached": "نمیتوانید دوربینهای بیشتری را به اشتراک بگذارید",
+ "app.video.meetingCamCapReached": "جلسه به حد مجاز دوربینهای همزمان خود رسیده است",
"app.video.dropZoneLabel": "اینجا بیندازید",
"app.fullscreenButton.label": "تغییر {0} به تمام صفحه",
"app.fullscreenUndoButton.label": "{0} تمام صفحه را واگرد کنید",
@@ -837,7 +901,11 @@
"app.createBreakoutRoom.durationInMinutes": "مدت زمان (دقیقه)",
"app.createBreakoutRoom.randomlyAssign": "به صورت تصادفی واگذار شده",
"app.createBreakoutRoom.randomlyAssignDesc": "توزیع تصادفی کاربران به اتاقهای زیر مجموعه",
+ "app.createBreakoutRoom.resetAssignments": "بازنشانی وظایف",
+ "app.createBreakoutRoom.resetAssignmentsDesc": "بازنشانی همه وظایف اتاق کاربر",
"app.createBreakoutRoom.endAllBreakouts": "پایان تمام اتاقهای زیرمجموعه",
+ "app.createBreakoutRoom.chatTitleMsgAllRooms": "همه اتاقها",
+ "app.createBreakoutRoom.msgToBreakoutsSent": "پیام به {0} اتاق زیرمجموعه ارسال شد",
"app.createBreakoutRoom.roomName": "{0} (اتاق - {1})",
"app.createBreakoutRoom.doneLabel": "انجام شد",
"app.createBreakoutRoom.nextLabel": "بعدی",
@@ -852,6 +920,10 @@
"app.createBreakoutRoom.numberOfRoomsError": "تعداد اتاق ها نادرست است.",
"app.createBreakoutRoom.duplicatedRoomNameError": "نام اتاق نمیتواند تکراری باشد.",
"app.createBreakoutRoom.emptyRoomNameError": "نام اتاق نمیتواند خالی باشد.",
+ "app.createBreakoutRoom.setTimeInMinutes": "تنظیم مدت زمان به (دقیقه)",
+ "app.createBreakoutRoom.setTimeLabel": "اعمال",
+ "app.createBreakoutRoom.setTimeCancel": "لغو",
+ "app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "مدت زمان اتاقهای زیرمجموعه نمیتواند از زمان جلسه بیشتر باشد.",
"app.createBreakoutRoom.roomNameInputDesc": "به روز رسانی نام اتاقهای زیر مجموعه",
"app.externalVideo.start": "به اشتراک گذاری ویدئو جدید",
"app.externalVideo.title": "اشتراک یک ویدیوی خارجی",
@@ -863,6 +935,8 @@
"app.externalVideo.refreshLabel": "تازه سازی پخش کننده ویدئو/صوت",
"app.externalVideo.fullscreenLabel": "پخش کننده ویدئو/صوت",
"app.externalVideo.noteLabel": "نکته: ویدیوهای خارجی به اشتراک گذاشته شده در ضبط ظاهر نمیشوند.نشانیهای وب یوتیوب، ویمیو، Instructure Media، توییچ، دیلیموشن و فایلهای رسانهای (به عنوان مثال https://example.com/xy.mp4) پشتیبانی میشوند.",
+ "app.externalVideo.subtitlesOn": "خاموشکردن",
+ "app.externalVideo.subtitlesOff": "روشنکردن (در صورت وجود)",
"app.actionsBar.actionsDropdown.shareExternalVideo": "اشتراک یک ویدیوی خارجی",
"app.actionsBar.actionsDropdown.stopShareExternalVideo": "متوقف کردن نمایش ویدیوی خارجی",
"app.iOSWarning.label": "لطفا به iOS نسخه 12.2 یا بالاتر ارتقا دهید",
@@ -892,6 +966,7 @@
"playback.button.search.aria": "جستجو",
"playback.button.section.aria": "بخش کناری",
"playback.button.swap.aria": "تعویض محتوا",
+ "playback.button.theme.aria": "تغییر زمینه",
"playback.error.wrapper.aria": "محدوده خطا",
"playback.loader.wrapper.aria": "محدوده بارگذارنده",
"playback.player.wrapper.aria": "محدوده پخشکننده",
@@ -924,14 +999,30 @@
"playback.player.thumbnails.wrapper.aria": "محدوده تصاویر بندانگشتی",
"playback.player.webcams.wrapper.aria": "ناحیه وبکم",
"app.learningDashboard.dashboardTitle": "پیشخوان تحلیل یادگیری",
+ "app.learningDashboard.downloadSessionDataLabel": "بارگیری دادههای جلسه",
+ "app.learningDashboard.lastUpdatedLabel": "آخرین بهروزرسانی در",
+ "app.learningDashboard.sessionDataDownloadedLabel": "بارگیری شد!",
+ "app.learningDashboard.shareButton": "اشتراکگذاری با دیگران",
+ "app.learningDashboard.shareLinkCopied": "پیوند با موفقیت کپی شد!",
"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.timeline": "خط زمانی",
"app.learningDashboard.indicators.activityScore": "امتیاز فعالیت",
"app.learningDashboard.indicators.duration": "مدت زمان",
+ "app.learningDashboard.userDetails.startTime": "زمان شروع",
+ "app.learningDashboard.userDetails.endTime": "زمان پایان",
+ "app.learningDashboard.userDetails.joined": "پیوست",
+ "app.learningDashboard.userDetails.category": "دستهبندی",
+ "app.learningDashboard.userDetails.average": "میانگین",
+ "app.learningDashboard.userDetails.activityPoints": "نقاط فعالیت",
+ "app.learningDashboard.userDetails.poll": "نظرسنجی",
+ "app.learningDashboard.userDetails.response": "پاسخ",
+ "app.learningDashboard.userDetails.mostCommonAnswer": "رایجترین پاسخ",
+ "app.learningDashboard.userDetails.anonymousAnswer": "نظرسنجی ناشناس",
"app.learningDashboard.usersTable.title": "مرور کلی",
"app.learningDashboard.usersTable.colOnline": "زمان آنلاین بودن",
"app.learningDashboard.usersTable.colTalk": "زمان صحبت کردن",
@@ -944,10 +1035,32 @@
"app.learningDashboard.usersTable.userStatusOnline": "آنلاین",
"app.learningDashboard.usersTable.userStatusOffline": "آفلاین",
"app.learningDashboard.usersTable.noUsers": "هنوز هیچ کاربری وجود ندارد",
+ "app.learningDashboard.usersTable.name": "نام",
+ "app.learningDashboard.usersTable.moderator": "مدیر",
+ "app.learningDashboard.usersTable.pollVotes": "رأیهای نظرسنجی",
+ "app.learningDashboard.usersTable.join": "پیوستن",
+ "app.learningDashboard.usersTable.left": "ترککردن",
+ "app.learningDashboard.usersTable.notAvailable": "در دسترس نیست",
+ "app.learningDashboard.pollsTable.title": "نظرسنجیها",
"app.learningDashboard.pollsTable.anonymousAnswer": "نظرسنجی ناشناس (پاسخها در ردیف آخر)",
"app.learningDashboard.pollsTable.anonymousRowName": "ناشناس",
+ "app.learningDashboard.pollsTable.noPollsCreatedHeading": "هیچ نظرسنجی ایجاد نشده است",
+ "app.learningDashboard.pollsTable.noPollsCreatedMessage": "زمانی که یک نظرسنجی برای کاربران ارسال شد، نتایج آنها در این فهرست ظاهر میشود.",
+ "app.learningDashboard.statusTimelineTable.title": "خط زمانی",
+ "app.learningDashboard.statusTimelineTable.thumbnail": "تصویر کوچک ارائه",
"app.learningDashboard.errors.invalidToken": "توکن نشست نامعتبر است",
- "app.learningDashboard.errors.dataUnavailable": "داده دیگر موجود نیست"
+ "app.learningDashboard.errors.dataUnavailable": "داده دیگر موجود نیست",
+ "mobileApp.portals.list.empty.addFirstPortal.label": "با استفاده از دکمه بالا، اولین درگاه خود را اضافه کنید،",
+ "mobileApp.portals.list.empty.orUseOurDemoServer.label": "یا از سرورهای آزمایشی ما استفاده کنید.",
+ "mobileApp.portals.list.add.button.label": "افزودن درگاه",
+ "mobileApp.portals.fields.name.label": "نام درگاه",
+ "mobileApp.portals.fields.name.placeholder": "نسخه آزمایشی بیگبلوباتن",
+ "mobileApp.portals.fields.url.label": "آدرس سرور",
+ "mobileApp.portals.addPortalPopup.confirm.button.label": "ذخیره",
+ "mobileApp.portals.drawerNavigation.button.label": "درگاهها",
+ "mobileApp.portals.addPortalPopup.validation.emptyFields": "زمینههای مورد نیاز",
+ "mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "نام در حال حاضر استفاده شده است",
+ "mobileApp.portals.addPortalPopup.validation.urlInvalid": "خطا در تلاش برای بارگیری صفحه - آدرس و اتصال شبکه را بررسی کنید"
}
diff --git a/bigbluebutton-html5/public/locales/fr.json b/bigbluebutton-html5/public/locales/fr.json
index ade6e6636a..4d251b8e7e 100644
--- a/bigbluebutton-html5/public/locales/fr.json
+++ b/bigbluebutton-html5/public/locales/fr.json
@@ -132,6 +132,8 @@
"app.userList.userOptions.savedNames.title": "Liste des utilisateurs de la conférence {0} à {1}",
"app.userList.userOptions.sortedFirstName.heading": "Trié par prénom :",
"app.userList.userOptions.sortedLastName.heading": "Trié par nom :",
+ "app.userList.userOptions.hideViewersCursor": "Les curseurs du visualiseur sont bloqués",
+ "app.userList.userOptions.showViewersCursor": "Les curseurs du visualiseur sont débloqués",
"app.media.label": "Média",
"app.media.autoplayAlertDesc": "Autoriser l'accès",
"app.media.screenshare.start": "Partage d'écran commencé",
@@ -508,9 +510,9 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Choisissez une réunion privée à rejoindre",
"app.breakoutTimeRemainingMessage": "Temps restant dans la réunion privée : {0}",
"app.breakoutWillCloseMessage": "Le temps s'est écoulé. La réunion privée fermera bientôt",
- "app.breakout.dropdown.manageDuration": "Gérer la durée",
- "app.breakout.dropdown.destroyAll": "Supprimer les salles attenantes",
- "app.breakout.dropdown.options": "Options des salles attenantes",
+ "app.breakout.dropdown.manageDuration": "Changer la durée",
+ "app.breakout.dropdown.destroyAll": "Terminer les réunions privées",
+ "app.breakout.dropdown.options": "Options des réunions privées",
"app.calculatingBreakoutTimeRemaining": "Calcul du temps restant...",
"app.audioModal.ariaTitle": "Fenêtre modale pour joindre la réunion en audio",
"app.audioModal.microphoneLabel": "Microphone",
@@ -566,6 +568,7 @@
"app.audio.audioSettings.descriptionLabel": "Veuillez noter qu'une boîte de dialogue apparaîtra dans votre navigateur, vous demandant d'accepter le partage de votre micro.",
"app.audio.audioSettings.microphoneSourceLabel": "Choix du micro",
"app.audio.audioSettings.speakerSourceLabel": "Choix du haut-parleur",
+ "app.audio.audioSettings.testSpeakerLabel": "Testez votre haut-parleur",
"app.audio.audioSettings.microphoneStreamLabel": "Volume de votre flux audio",
"app.audio.audioSettings.retryLabel": "Réessayer",
"app.audio.listenOnly.backLabel": "Retour",
@@ -604,6 +607,7 @@
"app.error.500": "Oups, quelque chose s'est mal passé",
"app.error.userLoggedOut": "Le jeton de session est invalide car l'utilisateur est déconnecté",
"app.error.ejectedUser": "Le jeton de session est invalide car l'utilisateur a été expulsé",
+ "app.error.joinedAnotherWindow": "Il semble que cette conférence est ouverte dans une autre fenêtre de navigateur",
"app.error.userBanned": "L'utilisateur a été banni",
"app.error.leaveLabel": "Connectez-vous à nouveau",
"app.error.fallback.presentation.title": "Une erreur s'est produite",
@@ -684,6 +688,10 @@
"app.shortcut-help.toggleFullscreen": "Basculer le mode plein-écran (Présentateur)",
"app.shortcut-help.nextSlideDesc": "Diapositive suivante (présentateur)",
"app.shortcut-help.previousSlideDesc": "Diapositive précédente (présentateur)",
+ "app.shortcut-help.togglePanKey": "Barre d'espace",
+ "app.shortcut-help.toggleFullscreenKey": "Entrée",
+ "app.shortcut-help.nextSlideKey": "Flèche droite",
+ "app.shortcut-help.previousSlideKey": "Flèche gauche",
"app.lock-viewers.title": "Limiter la communication des participants",
"app.lock-viewers.description": "Ces options vous permettent de restreindre l'utilisation de certaines fonctionnalités par les participants.",
"app.lock-viewers.featuresLable": "Fonctionnalité",
@@ -699,6 +707,7 @@
"app.lock-viewers.button.apply": "Appliquer",
"app.lock-viewers.button.cancel": "Annuler",
"app.lock-viewers.locked": "Verrouillé",
+ "app.lock-viewers.hideViewersCursor": "Voir les curseurs des autres spectateurs",
"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.description": "Modifier le paramétrage de la gestion des accès à la réunion ",
@@ -926,6 +935,8 @@
"app.externalVideo.refreshLabel": "Réactualiser le lecteur vidéo",
"app.externalVideo.fullscreenLabel": "Lecteur vidéo",
"app.externalVideo.noteLabel": "Remarque : les vidéos externes partagées n'apparaîtront pas dans l'enregistrement. Les URL YouTube, Vimeo, Instructure Media, Twitch, Dailymotion et les URL de fichiers multimédias (par exemple https://example.com/xy.mp4) sont pris en charge.",
+ "app.externalVideo.subtitlesOn": "Éteindre",
+ "app.externalVideo.subtitlesOff": "Activer (si disponible)",
"app.actionsBar.actionsDropdown.shareExternalVideo": "Partager une vidéo externe",
"app.actionsBar.actionsDropdown.stopShareExternalVideo": "Arrêter le partage de vidéo externe",
"app.iOSWarning.label": "Veuillez mettre à jour vers iOS 12.2 ou supérieur",
@@ -955,6 +966,7 @@
"playback.button.search.aria": "Rechercher",
"playback.button.section.aria": "Section de côté",
"playback.button.swap.aria": "Permuter le contenu",
+ "playback.button.theme.aria": "Basculer le thème",
"playback.error.wrapper.aria": "Zone d'erreur",
"playback.loader.wrapper.aria": "Zone de chargement",
"playback.player.wrapper.aria": "Zone de lecture",
@@ -1038,10 +1050,17 @@
"app.learningDashboard.statusTimelineTable.thumbnail": "Vignette de présentation",
"app.learningDashboard.errors.invalidToken": "Jeton de session invalide",
"app.learningDashboard.errors.dataUnavailable": "Les données ne sont plus disponibles",
+ "mobileApp.portals.list.empty.addFirstPortal.label": "Ajoutez votre premier portail en utilisant le bouton ci-dessus,",
+ "mobileApp.portals.list.empty.orUseOurDemoServer.label": "ou utilisez notre serveur de démo.",
+ "mobileApp.portals.list.add.button.label": "Ajouter un portail",
"mobileApp.portals.fields.name.label": "Nom du portail",
"mobileApp.portals.fields.name.placeholder": "Démo BigBlueButton",
"mobileApp.portals.fields.url.label": "URL du serveur",
- "mobileApp.portals.drawerNavigation.button.label": "Portails"
+ "mobileApp.portals.addPortalPopup.confirm.button.label": "Enregistrer",
+ "mobileApp.portals.drawerNavigation.button.label": "Portails",
+ "mobileApp.portals.addPortalPopup.validation.emptyFields": "Champs requis",
+ "mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Ce nom est déjà utilisé",
+ "mobileApp.portals.addPortalPopup.validation.urlInvalid": "Erreur de chargement de la page - vérifiez l'URL et la connexion réseau"
}
diff --git a/bigbluebutton-html5/public/locales/gl.json b/bigbluebutton-html5/public/locales/gl.json
index 3e9d933683..b1ab9e3c22 100644
--- a/bigbluebutton-html5/public/locales/gl.json
+++ b/bigbluebutton-html5/public/locales/gl.json
@@ -510,8 +510,8 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Seleccionar a sala parcial na que incorporarse",
"app.breakoutTimeRemainingMessage": "Tempo restante da sala parcial: {0}",
"app.breakoutWillCloseMessage": "Rematou o tempo. A sala parcial pecharase en breve.",
- "app.breakout.dropdown.manageDuration": "Xestionar a duración",
- "app.breakout.dropdown.destroyAll": "Destruír as salas parciais",
+ "app.breakout.dropdown.manageDuration": "Cambiar a duración",
+ "app.breakout.dropdown.destroyAll": "Remate das salas parciais",
"app.breakout.dropdown.options": "Opcións das salas parciais",
"app.calculatingBreakoutTimeRemaining": "Calculando tempo restante…",
"app.audioModal.ariaTitle": " Xanela modal para unirse ao son",
@@ -607,6 +607,7 @@
"app.error.500": "Ouh! algo foi mal",
"app.error.userLoggedOut": "O usuario ten un testemuño de sesión non válido por mor do peche da sesión",
"app.error.ejectedUser": "O usuario ten un testemuño de sesión non válido por mor da expulsión",
+ "app.error.joinedAnotherWindow": "Semella que esta sesión está aberta noutra xanela do navegador.",
"app.error.userBanned": "O usuario foi expulsado",
"app.error.leaveLabel": "Acceder de novo",
"app.error.fallback.presentation.title": "Produciuse un erro",
diff --git a/bigbluebutton-html5/public/locales/hu_HU.json b/bigbluebutton-html5/public/locales/hu_HU.json
index 0ad1554a31..e705e13688 100644
--- a/bigbluebutton-html5/public/locales/hu_HU.json
+++ b/bigbluebutton-html5/public/locales/hu_HU.json
@@ -510,8 +510,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Csoportterem választása",
"app.breakoutTimeRemainingMessage": "Csoport hátralévő ideje: {0}",
"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.audioModal.ariaTitle": "Csatlakozás hangablak",
diff --git a/bigbluebutton-html5/public/locales/hy.json b/bigbluebutton-html5/public/locales/hy.json
index 4a1125ef17..b1371e8ebc 100644
--- a/bigbluebutton-html5/public/locales/hy.json
+++ b/bigbluebutton-html5/public/locales/hy.json
@@ -508,8 +508,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Ընտրեք խմբային աշխատանքի սենյակը, որին ցանկանում եք միանալ",
"app.breakoutTimeRemainingMessage": "Խմբային աշխատանքի ավարտին մնացել է {0}",
"app.breakoutWillCloseMessage": "Ժամանակը սպառվեց և Խմբային աշխատանքի սենյակը շուտով կփակվի",
- "app.breakout.dropdown.manageDuration": "Կառավարել տևողությունը",
- "app.breakout.dropdown.destroyAll": "Փակել առանձնացված սենյակները",
"app.breakout.dropdown.options": "Առանձնացված սենյակների կարգավորումներ",
"app.calculatingBreakoutTimeRemaining": "Մնացած ժամանակի հետհաշվարկ․..",
"app.audioModal.ariaTitle": "Հանդիպման միացման պատուհան",
diff --git a/bigbluebutton-html5/public/locales/it_IT.json b/bigbluebutton-html5/public/locales/it_IT.json
index 1dc0813cdc..073badc5e9 100644
--- a/bigbluebutton-html5/public/locales/it_IT.json
+++ b/bigbluebutton-html5/public/locales/it_IT.json
@@ -493,7 +493,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Scegli una Stanza Separata in cui entrare",
"app.breakoutTimeRemainingMessage": "Tempo rimasto per la Stanza Separata: {0}",
"app.breakoutWillCloseMessage": "Tempo scaduto. La Stanza Separata verrà chiusa a breve",
- "app.breakout.dropdown.manageDuration": "Gestisci durata",
"app.calculatingBreakoutTimeRemaining": "Calcolo del tempo rimanente...",
"app.audioModal.ariaTitle": "Partecipa in modalità audio",
"app.audioModal.microphoneLabel": "Microfono",
diff --git a/bigbluebutton-html5/public/locales/ja.json b/bigbluebutton-html5/public/locales/ja.json
index e5df571956..b30f9adebe 100644
--- a/bigbluebutton-html5/public/locales/ja.json
+++ b/bigbluebutton-html5/public/locales/ja.json
@@ -510,8 +510,8 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "参加する小会議室を選択",
"app.breakoutTimeRemainingMessage": "小会議室の残り時間:{0}",
"app.breakoutWillCloseMessage": "時間終了。まもなく小会議室を終了します。",
- "app.breakout.dropdown.manageDuration": "会議時間の管理",
- "app.breakout.dropdown.destroyAll": "小会議室を強制終了",
+ "app.breakout.dropdown.manageDuration": "利用時間を変更",
+ "app.breakout.dropdown.destroyAll": "小会議室を閉じる",
"app.breakout.dropdown.options": "小会議室の設定",
"app.calculatingBreakoutTimeRemaining": "残り時間を計算中...",
"app.audioModal.ariaTitle": "音声参加モーダル",
@@ -607,6 +607,7 @@
"app.error.500": "問題が起こりました",
"app.error.userLoggedOut": "ログアウトしたため、セッショントークンが無効になっています",
"app.error.ejectedUser": "強制退出のため、セッショントークンが無効になっています",
+ "app.error.joinedAnotherWindow": "このセッションはブラウザの別ウィンドウで既に開かれているようです。",
"app.error.userBanned": "ユーザーは退出させられています",
"app.error.leaveLabel": "再ログイン",
"app.error.fallback.presentation.title": "エラーが発生しました",
diff --git a/bigbluebutton-html5/public/locales/ko_KR.json b/bigbluebutton-html5/public/locales/ko_KR.json
index 228c977195..248f165580 100644
--- a/bigbluebutton-html5/public/locales/ko_KR.json
+++ b/bigbluebutton-html5/public/locales/ko_KR.json
@@ -6,6 +6,7 @@
"app.chat.disconnected": "연결이 끊어졌습니다. 메시지를 보낼 수 없습니다 ",
"app.chat.locked": "채팅이 잠겼습니다. 메시지를 보낼 수 없습니다 ",
"app.chat.inputLabel": "채팅을 위해 메시지를 {0} 입력 하세요 ",
+ "app.chat.inputPlaceholder": "메시지 {0}",
"app.chat.titlePublic": "공개 채팅",
"app.chat.titlePrivate": "{0} 와 비공개 채팅",
"app.chat.partnerDisconnected": "{0} 가 미팅에서 나갔습니다 ",
@@ -19,6 +20,7 @@
"app.chat.label": "채팅",
"app.chat.offline": "오프라인",
"app.chat.pollResult": "설문 결과",
+ "app.chat.breakoutDurationUpdated": "브레이크아웃 시간이 이제 {0} 분입니다",
"app.chat.emptyLogLabel": "채팅 기록 지우기",
"app.chat.clearPublicChatMessage": "공개 채팅 기록이 주관자에 의해 지워졌습니다 ",
"app.chat.multi.typing": "여러 사용자가 타이핑하고 있습니다 ",
@@ -41,8 +43,22 @@
"app.captions.menu.backgroundColor": "배경색",
"app.captions.menu.previewLabel": "미리보기",
"app.captions.menu.cancelLabel": "취소",
+ "app.captions.hide": "폐쇄자막 숨기기",
+ "app.captions.ownershipTooltip": "{0} 캡션의 소유자로 지정됩니다",
+ "app.captions.dictationStart": "받아쓰기 시작",
+ "app.captions.dictationStop": "받아쓰기 종료",
+ "app.captions.dictationOnDesc": "음성인식 켜기",
+ "app.captions.dictationOffDesc": "음성인식 끄기",
+ "app.captions.speech.start": "음성인식이 시작 됨",
+ "app.captions.speech.stop": "음성인식이 종료 됨",
+ "app.captions.speech.error": "브라우저 호환성 등의 문제로 인해 음성 인식이 중지 됨",
"app.textInput.sendLabel": "보내기",
"app.title.defaultViewLabel": "기본 프레젠테이션 화면",
+ "app.notes.title": "공유 노트",
+ "app.notes.label": "노트",
+ "app.notes.hide": "노트 숨기기",
+ "app.notes.locked": "잠김",
+ "app.pads.hint": "Esc를 눌러 패드의 도구 모음에 초점을 맞춥니다",
"app.user.activityCheck": "사용자 활동 체크",
"app.user.activityCheck.label": "사용자가 ({0})미팅에 아직 있는지 체크",
"app.user.activityCheck.check": "체크",
@@ -101,6 +117,7 @@
"app.userList.userOptions.disableMic": "참여자들의 마이크 사용 중지",
"app.userList.userOptions.disablePrivChat": "비공개 채팅 사용 중지",
"app.userList.userOptions.disablePubChat": "공개 채팅 사용 중지",
+ "app.userList.userOptions.disableNotes": "공유된 노트가 잠겼습니다",
"app.userList.userOptions.hideUserList": "참여자에게 사용자목록이 감춰집니다 ",
"app.userList.userOptions.webcamsOnlyForModerator": "주관자만 참여자의 웹캠을 볼 수 있습니다 (잠금설정때문)",
"app.userList.content.participants.options.clearedStatus": "모든 사용자 상태 지우기",
@@ -108,15 +125,19 @@
"app.userList.userOptions.enableMic": "참여자 마이크 사용 가능",
"app.userList.userOptions.enablePrivChat": "비공개 채팅 가능",
"app.userList.userOptions.enablePubChat": "공개 채팅 가능",
+ "app.userList.userOptions.enableNotes": "공유 노트가 활성화되었습니다",
"app.userList.userOptions.showUserList": "사용자 목록이 참여자에게 보여짐",
"app.userList.userOptions.enableOnlyModeratorWebcam": "웹캠 사용이 가능합니다. 모든 사람이 당신을 보게 됩니다 ",
"app.userList.userOptions.savedNames.title": "{1} 회의 {0}의 사용자 목록",
"app.userList.userOptions.sortedFirstName.heading": "이름으로 정렬 :",
"app.userList.userOptions.sortedLastName.heading": "성으로 정렬 :",
+ "app.userList.userOptions.hideViewersCursor": "사용자 커서가 잠겼습니다",
+ "app.userList.userOptions.showViewersCursor": "사용자 커서의 잠금이 해제되었습니다",
"app.media.label": "미디어",
"app.media.autoplayAlertDesc": "접속 허가",
"app.media.screenshare.start": "스크린공유 시작",
"app.media.screenshare.end": "스크린공유 종료 ",
+ "app.media.screenshare.endDueToDataSaving": "데이터 절약으로 인해 스크린 공유가 멈췄습니다",
"app.media.screenshare.unavailable": "스크린공유 불가",
"app.media.screenshare.notSupported": "화면공유가 이 브라우저에서는 지원되지 않습니다 ",
"app.media.screenshare.autoplayBlockedDesc": "발표자의 스크린을 보여주기 위해 당신의 허가가 필요합니다 ",
@@ -146,7 +167,15 @@
"app.presentation.slideContent": "슬라이드 컨텐츠",
"app.presentation.startSlideContent": "슬라이드 컨텐츠 시작",
"app.presentation.endSlideContent": "슬라이드 컨텐츠 종료",
+ "app.presentation.changedSlideContent": "프레젠테이션이 슬라이드 {0}번으로 변경 ",
"app.presentation.emptySlideContent": "현재의 슬라이드에대한 컨텐츠 없음",
+ "app.presentation.options.fullscreen": "전체화면",
+ "app.presentation.options.exitFullscreen": "전체화면 나가기",
+ "app.presentation.options.minimize": "최소화",
+ "app.presentation.options.snapshot": "현 프레젠테이션의 스냅샷",
+ "app.presentation.options.downloading": "다운로드 중",
+ "app.presentation.options.downloaded": "현 프레젠테이션은 다운로드 되었습니다",
+ "app.presentation.options.downloadFailed": "현 프레젠테이션을 다운로드 할 수 없습니다",
"app.presentation.presentationToolbar.noNextSlideDesc": "프레젠테이션 끝",
"app.presentation.presentationToolbar.noPrevSlideDesc": "프레젠테이션 시작",
"app.presentation.presentationToolbar.selectLabel": "슬라이드 선택",
@@ -171,8 +200,10 @@
"app.presentation.presentationToolbar.fitToWidth": "너비 맞추기",
"app.presentation.presentationToolbar.fitToPage": "페이지 맞추기",
"app.presentation.presentationToolbar.goToSlide": "슬라이드 {0}",
+ "app.presentation.placeholder": "현재 활성화된 프레젠테이션이 없습니다",
"app.presentationUploder.title": "프레젠테이션",
"app.presentationUploder.message": "발표자는 Office 문서나 PDF 파일을 업로드할 수 있습니다. PDF 파일의 업로드를 권장합니다. 우측의 원형 체크박스를 클릭해 프레젠테이션 파일을 선택하고 '확인'을 클릭하세요. ",
+ "app.presentationUploder.extraHint": "중요: 각 파일은 {0} MB나 {1} 페이지를 초과할 수 없습니다",
"app.presentationUploder.uploadLabel": "업로드",
"app.presentationUploder.confirmLabel": "확인",
"app.presentationUploder.confirmDesc": "변경 사항을 저장하고 프젠테이션 시작",
@@ -185,6 +216,7 @@
"app.presentationUploder.fileToUpload": "업로드 될 예정",
"app.presentationUploder.currentBadge": "지금",
"app.presentationUploder.rejectedError": "선택한 파일(들)이 거절 되었습니다. 파일 종류(들)를 살펴 보세요 ",
+ "app.presentationUploder.connectionClosedError": "연결상태의 불량으로 중단 됨. 다시 시도해 보세요.",
"app.presentationUploder.upload.progress": "업로드중 ({0}%)",
"app.presentationUploder.upload.413": "파일이 최대 크기인 {0} MB를 초과했습니다.",
"app.presentationUploder.genericError": "어머나. 뭔가 잘못 되었어요 ",
@@ -223,13 +255,14 @@
"app.poll.autoOptionInstructions.label": "자동 옵션이 활성화됨 – 설문 질문과 옵션을 지정된 형식으로 작성합니다.",
"app.poll.maxOptionsWarning.label": "처음 5가지 옵션만 사용 가능!",
"app.poll.pollPaneTitle": "설문조사",
+ "app.poll.enableMultipleResponseLabel": "응답자 별로 여러개의 답변을 허용하시겠습니까?",
"app.poll.quickPollTitle": "빠른설문",
"app.poll.hidePollDesc": "설문메뉴 숨기기",
"app.poll.quickPollInstruction": "예상되는 답의 형태를 고르고 설문조사를 시작하세요.",
"app.poll.activePollInstruction": "설문조사에 대한 실시간 반응을 보려면, 이 패널을 열어 놓으세요. 설문이 끝나면, 아래 '설문 결과 공개'를 클릭하고 결과를 알리세요.",
"app.poll.dragDropPollInstruction": "설문 조사 값을 채우려면 설문 조사 값이 포함 된 텍스트 파일을 강조 표시된 필드로 드래그하세요.",
"app.poll.customPollTextArea": "설문 조사 값 채우기",
- "app.poll.publishLabel": "투표 결과 발표",
+ "app.poll.publishLabel": "설문조사 결과 발표",
"app.poll.cancelPollLabel": "취소",
"app.poll.backLabel": "설문 시작",
"app.poll.closeLabel": "닫기",
@@ -251,7 +284,7 @@
"app.poll.secretPoll.isSecretLabel": "무기명 투표입니다 - 개별 응답을 볼 수 없습니다.",
"app.poll.questionErr": "질의를 제공해야 합니다.",
"app.poll.optionErr": "설문 조사 옵션 입력",
- "app.poll.startPollDesc": "투표를 시작합니다",
+ "app.poll.startPollDesc": "설문조사를 시작합니다",
"app.poll.showRespDesc": "응답 구성을 표시합니다.",
"app.poll.addRespDesc": "설문 응답 입력을 추가합니다.",
"app.poll.deleteRespDesc": "옵션 {0} 제거",
@@ -318,6 +351,7 @@
"app.navBar.userListToggleBtnLabel": "사용자 리스트 띄우기",
"app.navBar.toggleUserList.ariaLabel": "사용자와 메시지 띄우기 ",
"app.navBar.toggleUserList.newMessages": "새로운 메시지 알림과 함께",
+ "app.navBar.toggleUserList.newMsgAria": "{0}으로 부터 신규 메시지",
"app.navBar.recording": "이 세션은 녹화중입니다 ",
"app.navBar.recording.on": "녹화",
"app.navBar.recording.off": "녹화하지 않음 ",
@@ -332,6 +366,7 @@
"app.endMeeting.noLabel": "아니요",
"app.about.title": "개요",
"app.about.version": "사용자 빌드:",
+ "app.about.version_label": "BigBlueButton 버전:",
"app.about.copyright": "저작권:",
"app.about.confirmLabel": "예",
"app.about.confirmDesc": "예",
@@ -392,6 +427,7 @@
"app.settings.dataSavingTab.description": "네트워크 절약을 위해 현재 보이는것을 조정",
"app.settings.save-notification.label": "설정이 저장되었습니다 ",
"app.statusNotifier.lowerHands": "손 내리기",
+ "app.statusNotifier.lowerHandDescOneUser": "{0}의 손을 내리기",
"app.statusNotifier.raisedHandsTitle": "손 들기",
"app.statusNotifier.raisedHandDesc": "{0}이 손을 들었습니다.",
"app.statusNotifier.raisedHandDescOneUser": "{0} 손들기",
@@ -428,7 +464,7 @@
"app.actionsBar.emojiMenu.awayLabel": "부재중",
"app.actionsBar.emojiMenu.awayDesc": "부재중으로 상태 변경",
"app.actionsBar.emojiMenu.raiseHandLabel": "손들기",
- "app.actionsBar.emojiMenu.lowerHandLabel": "손내리기",
+ "app.actionsBar.emojiMenu.lowerHandLabel": "손 내리기",
"app.actionsBar.emojiMenu.raiseHandDesc": "질문을 위해 손 들기",
"app.actionsBar.emojiMenu.neutralLabel": "미결정",
"app.actionsBar.emojiMenu.neutralDesc": "미결정으로 상태 변경",
@@ -528,6 +564,7 @@
"app.audio.audioSettings.descriptionLabel": "마이크 공유를 허가 할것인지를 요청하는 창이 브라우저에서 나타날것입니다 ",
"app.audio.audioSettings.microphoneSourceLabel": "마이크 소스 ",
"app.audio.audioSettings.speakerSourceLabel": "스피커 소스 ",
+ "app.audio.audioSettings.testSpeakerLabel": "스피커 테스트",
"app.audio.audioSettings.microphoneStreamLabel": "당신의 소리 볼륨",
"app.audio.audioSettings.retryLabel": "재시도",
"app.audio.listenOnly.backLabel": "뒤로 ",
@@ -584,6 +621,7 @@
"app.guest.guestDeny": "미팅 참가가 거부된 게스트",
"app.guest.seatWait": "승인을 대기 중인 게스트",
"app.guest.allow": "승인된 게스트",
+ "app.guest.meetingForciblyEnded": "강제 종료된 회의에는 참여할 수 없습니다",
"app.userList.guest.waitingUsers": "사용자 기다림",
"app.userList.guest.waitingUsersTitle": "사용자 관리",
"app.userList.guest.optionTitle": "보류중인 사용자 검토",
@@ -597,6 +635,7 @@
"app.userList.guest.rememberChoice": "선택을 기억",
"app.userList.guest.emptyMessage": "현재 메시지가 없습니다.",
"app.userList.guest.inputPlaceholder": "게스트 로비의 메세지",
+ "app.userList.guest.privateMessageLabel": "메시지",
"app.userList.guest.acceptLabel": "수용",
"app.userList.guest.denyLabel": "거절",
"app.user-info.title": "디렉토리 검색",
@@ -609,6 +648,9 @@
"app.toast.meetingMuteOn.label": "모든 사용자가 음소거 되었습니다 ",
"app.toast.meetingMuteOff.label": "미팅 음소거 기능이 꺼졌습니다 ",
"app.toast.setEmoji.raiseHand": "손을 들었습니다",
+ "app.toast.setEmoji.lowerHand": "손을 내렸습니다.",
+ "app.toast.promotedLabel": "주관자로 승격되었습니다",
+ "app.toast.demotedLabel": "참여자로 강등되었습니다",
"app.notification.recordingStart": "이 세션의 녹화가 시작되었습니다 ",
"app.notification.recordingStop": "이 세션은 녹화되지 않습니다 ",
"app.notification.recordingPaused": "이 세션은 더이상 녹화되지 않습니다 ",
@@ -636,6 +678,7 @@
"app.shortcut-help.toggleFullscreen": "전체 화면 전환 (발표자)",
"app.shortcut-help.nextSlideDesc": "다음 슬라이드 (발표자)",
"app.shortcut-help.previousSlideDesc": "이전 슬라이드 (발표자)",
+ "app.shortcut-help.togglePanKey": "스페이스바",
"app.lock-viewers.title": "참여자 잠그기",
"app.lock-viewers.description": "이 옵션을 사용하면 참여자가 특정 기능을 사용하지 못하도록 제한 할 수 있습니다",
"app.lock-viewers.featuresLable": "특징",
@@ -651,6 +694,7 @@
"app.lock-viewers.button.apply": "적용",
"app.lock-viewers.button.cancel": "취소",
"app.lock-viewers.locked": "잠김",
+ "app.lock-viewers.hideViewersCursor": "다른 참여자들의 커서보기",
"app.guest-policy.ariaTitle": "참여자 승인 정책 설정 모달",
"app.guest-policy.title": "참여자 승인 정책",
"app.guest-policy.description": "참여자 승인 정책 변경",
@@ -669,9 +713,18 @@
"app.connection-status.no": "아니오",
"app.connection-status.notification": "연결 끊김이 감지되었습니다.",
"app.connection-status.offline": "오프라인",
+ "app.connection-status.audioUploadRate": "오디오 업로드 율",
+ "app.connection-status.audioDownloadRate": "오디오 다운로드 율",
+ "app.connection-status.videoUploadRate": "비디오 업로드 율",
+ "app.connection-status.videoDownloadRate": "비디오 다운로드 율",
"app.connection-status.lostPackets": "패킷 손실",
"app.connection-status.usingTurn": "TURN 사용",
"app.connection-status.yes": "예",
+ "app.connection-status.connectionStats": "연결 상태",
+ "app.connection-status.myLogs": "내 로그",
+ "app.connection-status.sessionLogs": "세션 로그",
+ "app.connection-status.next": "다음 페이지",
+ "app.connection-status.prev": "이전 페이지",
"app.learning-dashboard.description": "사용자 활동 기반 현황판 열기",
"app.recording.startTitle": "녹화 시작",
"app.recording.stopTitle": "녹화 일시중지",
@@ -740,6 +793,8 @@
"app.video.virtualBackground.background": "배경",
"app.video.virtualBackground.genericError": "카메라 효과를 적용하지 못했습니다. 다시 시도하세요.",
"app.video.virtualBackground.camBgAriaDesc": "웹캠의 배경을 {0}으로 설정",
+ "app.video.camCapReached": "더 많은 카메라를 공유할 수 없습니다",
+ "app.video.meetingCamCapReached": "회의가 동시에 켤 수 있는 카메라 수의 제한에 도달했습니다",
"app.video.dropZoneLabel": "여기에 드롭",
"app.fullscreenButton.label": "{0} 을 꽉찬화면으로 ",
"app.fullscreenUndoButton.label": "{0} 전체 화면 실행 취소",
@@ -756,7 +811,7 @@
"app.sfu.noAvailableCodec2203": "서버에서 적절한 코덱을 찾을 수 없습니다(오류 2203)",
"app.meeting.endNotification.ok.label": "예",
"app.whiteboard.annotations.poll": "설문조사결과가 발표되었습니다 ",
- "app.whiteboard.annotations.pollResult": "설문 결과",
+ "app.whiteboard.annotations.pollResult": "설문조사 결과",
"app.whiteboard.annotations.noResponses": "응답 없음",
"app.whiteboard.toolbar.tools": "도구들",
"app.whiteboard.toolbar.tools.hand": "Pan",
@@ -830,6 +885,7 @@
"app.createBreakoutRoom.randomlyAssign": "무작위 배정",
"app.createBreakoutRoom.randomlyAssignDesc": "사용자를 브레이크아웃 룸에 임의로 할당합니다.",
"app.createBreakoutRoom.endAllBreakouts": "브레이크 아웃룸 종료 ",
+ "app.createBreakoutRoom.chatTitleMsgAllRooms": "모든 룸",
"app.createBreakoutRoom.roomName": "{0} ( 룸 - {1} )",
"app.createBreakoutRoom.doneLabel": "완료",
"app.createBreakoutRoom.nextLabel": "다음",
@@ -844,6 +900,10 @@
"app.createBreakoutRoom.numberOfRoomsError": "룸 갯수가 적절치 않습니다 ",
"app.createBreakoutRoom.duplicatedRoomNameError": "회의룸 이름은 중복될 수 없습니다.",
"app.createBreakoutRoom.emptyRoomNameError": "회의룸 이름은 비워둘 수 없습니다.",
+ "app.createBreakoutRoom.setTimeInMinutes": "지속시간 설정(분)",
+ "app.createBreakoutRoom.setTimeLabel": "적용하기",
+ "app.createBreakoutRoom.setTimeCancel": "취소",
+ "app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "브레이크아웃 룸의 지속시간은 미팅의 잔여시간을 초과할 수 없습니다.",
"app.createBreakoutRoom.roomNameInputDesc": "브레이크아웃 룸의 이름을 업데이트",
"app.externalVideo.start": "새로운 비디오 공유",
"app.externalVideo.title": "외부 비디오 공유",
@@ -855,6 +915,8 @@
"app.externalVideo.refreshLabel": "비디오 플레이어 새로 고침",
"app.externalVideo.fullscreenLabel": "비디오 재생기",
"app.externalVideo.noteLabel": "주의 : 외부비디오 공유는 녹화중에 보이지 않습니다. 유튜브, 비메오, 트위치 등과 동영상 URL 은 지원 됩니다 ",
+ "app.externalVideo.subtitlesOn": "끄기",
+ "app.externalVideo.subtitlesOff": "켜기(가능한 경우)",
"app.actionsBar.actionsDropdown.shareExternalVideo": "외부 비디오 공유",
"app.actionsBar.actionsDropdown.stopShareExternalVideo": "외부 비디오 공유 중지 ",
"app.iOSWarning.label": "iOS 12.2 이상으로 업그레이드 하세요 ",
@@ -887,7 +949,13 @@
"playback.error.wrapper.aria": "오류 영역",
"playback.loader.wrapper.aria": "로더 영역",
"playback.player.wrapper.aria": "재생기 영역",
- "playback.player.chat.message.poll.name": "투표 결과",
+ "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.skip.next": "다음 슬라이드",
+ "playback.player.about.modal.shortcuts.skip.previous": "이전 슬라이드",
+ "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": "예",
@@ -895,6 +963,7 @@
"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": "프레젠테이션 영역",
@@ -902,14 +971,20 @@
"playback.player.search.modal.title": "검색",
"playback.player.search.modal.subtitle": "프레젠테이션 슬라이드 찾기",
"playback.player.thumbnails.wrapper.aria": "썸네일 영역",
+ "playback.player.webcams.wrapper.aria": "웹캠 영역",
+ "app.learningDashboard.sessionDataDownloadedLabel": "다운로드 됨!!",
"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.polls": "설문조사",
"app.learningDashboard.indicators.activityScore": "활동 점수",
"app.learningDashboard.indicators.duration": "지속시간",
+ "app.learningDashboard.userDetails.startTime": "시작시간",
+ "app.learningDashboard.userDetails.endTime": "종료시간",
+ "app.learningDashboard.userDetails.average": "평균",
+ "app.learningDashboard.userDetails.anonymousAnswer": "무기명 투표",
"app.learningDashboard.usersTable.title": "개요",
"app.learningDashboard.usersTable.colOnline": "온라인 시간",
"app.learningDashboard.usersTable.colTalk": "대화 시간",
@@ -922,10 +997,20 @@
"app.learningDashboard.usersTable.userStatusOnline": "온라인",
"app.learningDashboard.usersTable.userStatusOffline": "오프라인",
"app.learningDashboard.usersTable.noUsers": "아직 사용자 없음",
+ "app.learningDashboard.usersTable.name": "이름",
+ "app.learningDashboard.usersTable.notAvailable": "N/A",
"app.learningDashboard.pollsTable.anonymousAnswer": "무기명 투표 (마지막 행의 답변)",
"app.learningDashboard.pollsTable.anonymousRowName": "무기명의",
+ "app.learningDashboard.pollsTable.noPollsCreatedHeading": "생성된 설문조사가 없습니다",
+ "app.learningDashboard.pollsTable.noPollsCreatedMessage": "설문조사가 사용자에게 전송되면 해당 결과가 이 목록에 나타납니다.",
+ "app.learningDashboard.statusTimelineTable.title": "타임라인",
+ "app.learningDashboard.statusTimelineTable.thumbnail": "프레젠테이션 썸네일",
"app.learningDashboard.errors.invalidToken": "유효하지 않은 세션 토큰",
- "app.learningDashboard.errors.dataUnavailable": "데이터가 더 이상 가용하지 않습니다"
+ "app.learningDashboard.errors.dataUnavailable": "데이터가 더 이상 가용하지 않습니다",
+ "mobileApp.portals.fields.name.label": "포털 이름",
+ "mobileApp.portals.fields.url.label": "서버 URL",
+ "mobileApp.portals.addPortalPopup.confirm.button.label": "저장",
+ "mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "이름이 이미 사용 중임"
}
diff --git a/bigbluebutton-html5/public/locales/nl.json b/bigbluebutton-html5/public/locales/nl.json
index 49d0d3c814..219e59800c 100644
--- a/bigbluebutton-html5/public/locales/nl.json
+++ b/bigbluebutton-html5/public/locales/nl.json
@@ -508,8 +508,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Kies een brainstormruimte om lid te worden",
"app.breakoutTimeRemainingMessage": "Resterende brainstorm-tijd: {0}",
"app.breakoutWillCloseMessage": "Tijd verstreken. Brainstormruimte wordt spoedig afgesloten",
- "app.breakout.dropdown.manageDuration": "Beheer duur",
- "app.breakout.dropdown.destroyAll": "Brainstormruimtes verwijderen",
"app.breakout.dropdown.options": "Opties brainstormruimtes",
"app.calculatingBreakoutTimeRemaining": "Resterende tijd berekenen ...",
"app.audioModal.ariaTitle": "Deelnemen aan audio modaal",
diff --git a/bigbluebutton-html5/public/locales/pt_BR.json b/bigbluebutton-html5/public/locales/pt_BR.json
index b496c28c5f..d5bb2186d6 100644
--- a/bigbluebutton-html5/public/locales/pt_BR.json
+++ b/bigbluebutton-html5/public/locales/pt_BR.json
@@ -610,6 +610,7 @@
"app.error.500": "Ops, algo deu errado",
"app.error.userLoggedOut": "O participante tem um token de sessão inválido porque se desconectou",
"app.error.ejectedUser": "O participante tem um token de sessão inválido porque foi bloqueado",
+ "app.error.joinedAnotherWindow": "Esta sessão parece estar aberta em mais de uma janela de navegador.",
"app.error.userBanned": "O participante foi bloqueado",
"app.error.leaveLabel": "Faça o login novamente",
"app.error.fallback.presentation.title": "Um erro ocorreu",
@@ -690,6 +691,10 @@
"app.shortcut-help.toggleFullscreen": "Alternar tela inteira (Apresentador)",
"app.shortcut-help.nextSlideDesc": "Próximo slide (Apresentador)",
"app.shortcut-help.previousSlideDesc": "Slide anterior (Apresentador)",
+ "app.shortcut-help.togglePanKey": "Barra de espaço",
+ "app.shortcut-help.toggleFullscreenKey": "Enter",
+ "app.shortcut-help.nextSlideKey": "Seta para a direita",
+ "app.shortcut-help.previousSlideKey": "Seta para a esquerda",
"app.lock-viewers.title": "Restringir participantes",
"app.lock-viewers.description": "Estas opções permitem que você restrinja participantes do uso de funcionalidades específicas.",
"app.lock-viewers.featuresLable": "Funcionalidade",
@@ -933,6 +938,8 @@
"app.externalVideo.refreshLabel": "Atualizar player de vídeo",
"app.externalVideo.fullscreenLabel": "Reprodutor de vídeo",
"app.externalVideo.noteLabel": "Observação: Os vídeos externos compartilhados não são exibidos na gravação. YouTube, Vimeo, Instructure Media, Twitch, Dailymotion e URLs de arquivos de mídia (por exemplo: https://example.com/xy.mp4) são suportados.",
+ "app.externalVideo.subtitlesOn": "Desativar",
+ "app.externalVideo.subtitlesOff": "Ativar (se disponível)",
"app.actionsBar.actionsDropdown.shareExternalVideo": "Compartilhar um vídeo externo",
"app.actionsBar.actionsDropdown.stopShareExternalVideo": "Parar de compartilhar vídeo externo",
"app.iOSWarning.label": "Por favor, atualize para o iOS 12.2 ou superior",
@@ -1008,6 +1015,10 @@
"app.learningDashboard.indicators.polls": "Enquetes",
"app.learningDashboard.indicators.activityScore": "Pontuação de atividade",
"app.learningDashboard.indicators.duration": "Duração",
+ "app.learningDashboard.userDetails.category": "Categoria",
+ "app.learningDashboard.userDetails.poll": "Enquete",
+ "app.learningDashboard.userDetails.response": "Resposta",
+ "app.learningDashboard.userDetails.anonymousAnswer": "Enquete anônima",
"app.learningDashboard.usersTable.title": "Visão global",
"app.learningDashboard.usersTable.colOnline": "Tempo online",
"app.learningDashboard.usersTable.colTalk": "Tempo falando",
@@ -1020,8 +1031,12 @@
"app.learningDashboard.usersTable.userStatusOnline": "Online",
"app.learningDashboard.usersTable.userStatusOffline": "Offline",
"app.learningDashboard.usersTable.noUsers": "Ainda sem usuários",
+ "app.learningDashboard.usersTable.name": "Nome",
+ "app.learningDashboard.usersTable.moderator": "Moderador",
+ "app.learningDashboard.pollsTable.title": "Enquetes",
"app.learningDashboard.pollsTable.anonymousAnswer": "Enquete anônima (respostas na última linha)",
"app.learningDashboard.pollsTable.anonymousRowName": "Anônimos",
+ "app.learningDashboard.statusTimelineTable.title": "Linha do tempo de status",
"app.learningDashboard.errors.invalidToken": "Token de sessão inválido",
"app.learningDashboard.errors.dataUnavailable": "Dado indisponível",
"mobileApp.portals.list.empty.addFirstPortal.label": "Adicione seu primeiro portal utilizando o botão acima,",
@@ -1034,7 +1049,7 @@
"mobileApp.portals.drawerNavigation.button.label": "Portais",
"mobileApp.portals.addPortalPopup.validation.emptyFields": "Campos obrigatórios",
"mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Este nome já está sendo utilizado",
- "mobileApp.portals.addPortalPopup.validation.urlInvalid": "Erro ao tentar carregar a página, verifique o endereço e sua conexão com a internet"
+ "mobileApp.portals.addPortalPopup.validation.urlInvalid": "Erro ao tentar carregar a página verifique o endereço e sua conexão com a internet"
}
diff --git a/bigbluebutton-html5/public/locales/ru.json b/bigbluebutton-html5/public/locales/ru.json
index 29466db852..c267b5e4d0 100644
--- a/bigbluebutton-html5/public/locales/ru.json
+++ b/bigbluebutton-html5/public/locales/ru.json
@@ -104,8 +104,8 @@
"app.userList.userOptions.muteAllDesc": "Выключить микрофоны у всех пользователей в конференции",
"app.userList.userOptions.clearAllLabel": "Убрать все иконки статуса",
"app.userList.userOptions.clearAllDesc": "Убрать все иконки статуса у пользователей",
- "app.userList.userOptions.muteAllExceptPresenterLabel": "Выключить микрофоны у всех, кроме ведущего",
- "app.userList.userOptions.muteAllExceptPresenterDesc": "Выключить микрофоны у всех пользователей в конференции, кроме ведущего",
+ "app.userList.userOptions.muteAllExceptPresenterLabel": "Заблокировать микрофоны всем кроме ведущего",
+ "app.userList.userOptions.muteAllExceptPresenterDesc": "Заблокировать микрофоны у всех пользователей в конференции, кроме ведущего",
"app.userList.userOptions.unmuteAllLabel": "Отменить блокировку микрофонов",
"app.userList.userOptions.unmuteAllDesc": "Снять блокировку микрофонов в конференции",
"app.userList.userOptions.lockViewersLabel": "Заблокировать участников",
@@ -506,8 +506,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Выберите комнату групповой работы, к которой вы хотите присоединиться",
"app.breakoutTimeRemainingMessage": "До окончания работы по группам осталось: {0}",
"app.breakoutWillCloseMessage": "Время вышло. Комната для групповой работы скоро закроется.",
- "app.breakout.dropdown.manageDuration": "Управлять продолжительностью",
- "app.breakout.dropdown.destroyAll": "Закрыть комнаты для групповой работы",
"app.breakout.dropdown.options": "Параметры перерывов",
"app.calculatingBreakoutTimeRemaining": "Подсчёт оставшегося времени...",
"app.audioModal.ariaTitle": "Окно подключения к аудио-конференции",
@@ -650,7 +648,7 @@
"app.toast.chat.system": "Система",
"app.toast.clearedEmoji.label": "Статус эмодзи очищен",
"app.toast.setEmoji.label": "Ваш статус эмодзи: {0}",
- "app.toast.meetingMuteOn.label": "Всем пользователям выключили микрофоны",
+ "app.toast.meetingMuteOn.label": "Всем пользователям были выключены микрофоны",
"app.toast.meetingMuteOff.label": "Блокировка микрофонов отменена",
"app.toast.setEmoji.raiseHand": "Вы подняли свою руку",
"app.toast.setEmoji.lowerHand": "Ваша рука была опущена",
@@ -683,6 +681,10 @@
"app.shortcut-help.toggleFullscreen": "Включить/Выключить полный экран (Ведущий)",
"app.shortcut-help.nextSlideDesc": "Следующий слайд (Ведущий)",
"app.shortcut-help.previousSlideDesc": "Предыдущий слайд (Ведущий)",
+ "app.shortcut-help.togglePanKey": "Пробел",
+ "app.shortcut-help.toggleFullscreenKey": "Ввод",
+ "app.shortcut-help.nextSlideKey": "Стрелка вправо",
+ "app.shortcut-help.previousSlideKey": "Стрелка влево",
"app.lock-viewers.title": "Заблокировать участников",
"app.lock-viewers.description": "Данные настройки позволяют запретить участникам использовать определенные функции",
"app.lock-viewers.featuresLable": "Функция",
@@ -924,6 +926,8 @@
"app.externalVideo.refreshLabel": "Перезагрузить видеоплеер",
"app.externalVideo.fullscreenLabel": "Проигрыватель видео",
"app.externalVideo.noteLabel": "Примечание: Видео с внешних проигрывателей не будет записано. Поддерживаются: YouTube, Vimeo, Instructure Media, Twitch, Dailymotion и ссылки на медиа-файлы (например: https://example.com/xy.mp4).",
+ "app.externalVideo.subtitlesOn": "Отключить",
+ "app.externalVideo.subtitlesOff": "Включить (если доступно)",
"app.actionsBar.actionsDropdown.shareExternalVideo": "Демонстрировать видео с внешних ресурсов",
"app.actionsBar.actionsDropdown.stopShareExternalVideo": "Прекратить демонстрацию видео с внешних ресурсов",
"app.iOSWarning.label": "Пожалуйста, обновитесь до iOS 12.2 или более новой версии",
@@ -953,6 +957,7 @@
"playback.button.search.aria": "Поиск",
"playback.button.section.aria": "Боковая секция",
"playback.button.swap.aria": "Изменить контент",
+ "playback.button.theme.aria": "Изменить тему",
"playback.error.wrapper.aria": "Область ошибок",
"playback.loader.wrapper.aria": "Область загрузки",
"playback.player.wrapper.aria": "Область проигрывателя",
@@ -1001,6 +1006,7 @@
"app.learningDashboard.userDetails.endTime": "Время окончания",
"app.learningDashboard.userDetails.joined": "Присоединился",
"app.learningDashboard.userDetails.category": "Категория",
+ "app.learningDashboard.userDetails.average": "Среднее",
"app.learningDashboard.userDetails.activityPoints": "Баллы активности",
"app.learningDashboard.userDetails.poll": "Голосование",
"app.learningDashboard.userDetails.response": "Ответ",
@@ -1032,7 +1038,10 @@
"app.learningDashboard.statusTimelineTable.title": "Шкала времени",
"app.learningDashboard.statusTimelineTable.thumbnail": "Миниатюра презентации",
"app.learningDashboard.errors.invalidToken": "Неверный токен сеанса",
- "app.learningDashboard.errors.dataUnavailable": "Данные больше не доступны"
+ "app.learningDashboard.errors.dataUnavailable": "Данные больше не доступны",
+ "mobileApp.portals.fields.url.label": "URL сервера",
+ "mobileApp.portals.addPortalPopup.confirm.button.label": "Сохранить",
+ "mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Имя уже используется"
}
diff --git a/bigbluebutton-html5/public/locales/tr.json b/bigbluebutton-html5/public/locales/tr.json
index 2d393274bf..cebdcb1c16 100644
--- a/bigbluebutton-html5/public/locales/tr.json
+++ b/bigbluebutton-html5/public/locales/tr.json
@@ -1,13 +1,14 @@
{
"app.home.greeting": "Sunumunuz birazdan başlayacak...",
- "app.chat.submitLabel": "İleti Gönder",
- "app.chat.loading": "Sohbet mesajları yüklendi: {0}%",
+ "app.chat.submitLabel": "İleti gönder",
+ "app.chat.loading": "Sohbet iletileri yüklendi: {0}%",
"app.chat.errorMaxMessageLength": "İleti {0} karakter daha uzun",
"app.chat.disconnected": "Bağlantınız kesildi, iletiler gönderilemedi",
"app.chat.locked": "Sohbet kilitli, ileti gönderilemez",
"app.chat.inputLabel": "{0} sohbeti için ileti girişi",
- "app.chat.titlePublic": "Genel Sohbet",
- "app.chat.titlePrivate": "{0} ile Özel Sohbet",
+ "app.chat.inputPlaceholder": "İleti {0}",
+ "app.chat.titlePublic": "Herkese açık sohbet",
+ "app.chat.titlePrivate": "{0} ile özel sohbet",
"app.chat.partnerDisconnected": "{0} toplantıdan ayrıldı",
"app.chat.closeChatLabel": "Kapat {0}",
"app.chat.hideChatLabel": "Gizle {0}",
@@ -18,14 +19,15 @@
"app.chat.dropdown.save": "Kaydet",
"app.chat.label": "Sohbet",
"app.chat.offline": "Çevrimdışı",
- "app.chat.pollResult": "Anket Sonuçları",
+ "app.chat.pollResult": "Oylama sonuçları",
+ "app.chat.breakoutDurationUpdated": "Çalışma odası zamanı {0} dakika",
"app.chat.emptyLogLabel": "Sohbet günlüğü boş",
"app.chat.clearPublicChatMessage": "Herkese açık sohbet geçmişi sorumlu tarafından temizlendi",
"app.chat.multi.typing": "Birkaç kullanıcı yazıyor",
"app.chat.one.typing": "{0} yazıyor...",
"app.chat.two.typing": "{0} ve {1} yazıyor...",
"app.chat.copySuccess": "Sohbet yazışmaları kopyalandı",
- "app.chat.copyErr": "Sohbet yazışmaları kopyalanırken hata oluştu",
+ "app.chat.copyErr": "Sohbet yazışmaları kopyalanamadı",
"app.captions.label": "Alt yazılar",
"app.captions.menu.close": "Kapat",
"app.captions.menu.start": "Başlat",
@@ -41,8 +43,23 @@
"app.captions.menu.backgroundColor": "Arka plan rengi",
"app.captions.menu.previewLabel": "Ön izleme",
"app.captions.menu.cancelLabel": "Vazgeç",
+ "app.captions.hide": "Alt yazıları gizle",
+ "app.captions.ownership": "Devral",
+ "app.captions.ownershipTooltip": "{0} alt yazının sahibi olarak atanacaksınız",
+ "app.captions.dictationStart": "Dikteyi başlat",
+ "app.captions.dictationStop": "Dikteyi durdur",
+ "app.captions.dictationOnDesc": " Konuşma tanımayı açar",
+ "app.captions.dictationOffDesc": " Konuşma tanımayı kapatır",
+ "app.captions.speech.start": "Konuşma tanıma başlatıldı",
+ "app.captions.speech.stop": "Konuşma tanıma durduruldu",
+ "app.captions.speech.error": "Sesli algılama web tarayıcı uyumsuzluğu ya da belirli bir süre sessizlikten dolayı durduruldu.",
"app.textInput.sendLabel": "Gönder",
"app.title.defaultViewLabel": "Varsayılan sunum görünümü",
+ "app.notes.title": "Paylaşılmış notlar",
+ "app.notes.label": "Notlar",
+ "app.notes.hide": "Notları gizle",
+ "app.notes.locked": "Kilitli",
+ "app.pads.hint": "Pad araç çubuğuna odaklanmak için Esc tuşuna basın",
"app.user.activityCheck": "Kullanıcı etkinliği denetimi",
"app.user.activityCheck.label": "Kullanıcının hala toplantıda olup olmadığını denetleyin ({0})",
"app.user.activityCheck.check": "Denetle",
@@ -50,7 +67,7 @@
"app.userList.participantsTitle": "Katılımcılar",
"app.userList.messagesTitle": "İletiler",
"app.userList.notesTitle": "Notlar",
- "app.userList.notesListItem.unreadContent": "Paylaşılan notlar bölümünde yeni içerik var",
+ "app.userList.notesListItem.unreadContent": "Paylaşılmış notlar bölümünde yeni içerik var",
"app.userList.captionsTitle": "Alt yazılar",
"app.userList.presenter": "Sunucu",
"app.userList.you": "Siz",
@@ -58,13 +75,13 @@
"app.userList.byModerator": "(Sorumlu) tarafından",
"app.userList.label": "Kullanıcı listesi",
"app.userList.toggleCompactView.label": "Basit görünüm kipini aç/kapat",
- "app.userList.moderator": "Moderatör",
+ "app.userList.moderator": "Sorumlu",
"app.userList.mobile": "Mobil",
"app.userList.guest": "Konuk",
"app.userList.sharingWebcam": "Web kamerası",
"app.userList.menuTitleContext": "Kullanılabilecek seçenekler",
"app.userList.chatListItem.unreadSingular": "Bir yeni ileti",
- "app.userList.chatListItem.unreadPlural": "{0} yeni mesaj",
+ "app.userList.chatListItem.unreadPlural": "{0} yeni ileti",
"app.userList.menu.chat.label": "Özel sohbet başlat",
"app.userList.menu.clearStatus.label": "Durumu temizle",
"app.userList.menu.removeUser.label": "Kullanıcıyı sil",
@@ -72,16 +89,19 @@
"app.userlist.menu.removeConfirmation.desc": "Bu kullanıcının oturuma yeniden katılmasını engeller.",
"app.userList.menu.muteUserAudio.label": "Kullanıcının sesini kapat",
"app.userList.menu.unmuteUserAudio.label": "Kullanıcının sesini aç",
- "app.userList.menu.giveWhiteboardAccess.label" : "Tahta Erişimi Verin",
- "app.userList.menu.removeWhiteboardAccess.label": "Tahta Erişimini Kaldırın",
+ "app.userList.menu.webcamPin.label": "Kullanıcının kamerasını sabitle",
+ "app.userList.menu.webcamUnpin.label": "Kullanıcının kamerasının sabitlemesini kaldır",
+ "app.userList.menu.giveWhiteboardAccess.label" : "Tahta erişimi ver",
+ "app.userList.menu.removeWhiteboardAccess.label": "Tahta erişimini kaldır",
+ "app.userList.menu.ejectUserCameras.label": "Kameraları kapat",
"app.userList.userAriaLabel": "{0} {1} {2} Durum {3}",
"app.userList.menu.promoteUser.label": "Sorumlu yap",
"app.userList.menu.demoteUser.label": "İzleyici yap",
"app.userList.menu.unlockUser.label": "{0} kullanıcısının kilidini aç",
"app.userList.menu.lockUser.label": "{0} kullanıcısını kilitle",
- "app.userList.menu.directoryLookup.label": "Dizinde Arama",
+ "app.userList.menu.directoryLookup.label": "Dizinde arama",
"app.userList.menu.makePresenter.label": "Sunucu yap",
- "app.userList.userOptions.manageUsersLabel": "Kullanıcıları yönet",
+ "app.userList.userOptions.manageUsersLabel": "Kullanıcı yönetimi",
"app.userList.userOptions.muteAllLabel": "Tüm kullanıcıların sesini kapat",
"app.userList.userOptions.muteAllDesc": "Toplantıdaki tüm kullanıcıların sesini kapatır",
"app.userList.userOptions.clearAllLabel": "Tüm durum simgelerini temizle",
@@ -92,29 +112,34 @@
"app.userList.userOptions.unmuteAllDesc": "Toplantının sesini açar",
"app.userList.userOptions.lockViewersLabel": "İzleyicileri kilitle",
"app.userList.userOptions.lockViewersDesc": "Bazı özellikleri kilitleyerek toplantı katılımcılarının kullanmasını engelle",
- "app.userList.userOptions.guestPolicyLabel": "Misafir politikası",
- "app.userList.userOptions.guestPolicyDesc": "Toplantı misafir ayarlarını değiştirin",
+ "app.userList.userOptions.guestPolicyLabel": "Konuk ilkesi",
+ "app.userList.userOptions.guestPolicyDesc": "Toplantının konuk ilkesi ayarlarını değiştirin",
"app.userList.userOptions.disableCam": "İzleyicilerin kameraları kapalı",
"app.userList.userOptions.disableMic": "İzleyicilerin mikrofonları kapalı",
"app.userList.userOptions.disablePrivChat": "Özel sohbet kapalı",
"app.userList.userOptions.disablePubChat": "Herkese açık sohbet kapalı",
+ "app.userList.userOptions.disableNotes": "Paylaşılmış notlar kilitlendi",
"app.userList.userOptions.hideUserList": "Kullanıcı listesi izleyicilerden gizlendi",
- "app.userList.userOptions.webcamsOnlyForModerator": "İzleyicilerin kamerasını yalnız sorumlular görebilir (kilit ayarları nedeniyle).",
+ "app.userList.userOptions.webcamsOnlyForModerator": "İzleyicilerin kamerasını yalnızca sorumlular görebilir (kilit ayarları nedeniyle).",
"app.userList.content.participants.options.clearedStatus": "Tüm kullanıcı durumları temizlendi",
"app.userList.userOptions.enableCam": "İzleyicilerin kameraları açık",
"app.userList.userOptions.enableMic": "İzleyicilerin mikrofonları açık",
"app.userList.userOptions.enablePrivChat": "Özel sohbet açık",
"app.userList.userOptions.enablePubChat": "Herkese açık sohbet açık",
- "app.userList.userOptions.showUserList": "Kullanıcı listesi katılımcılara gösteriliyor",
+ "app.userList.userOptions.enableNotes": "Paylaşılmış notlar etkinleştirildi",
+ "app.userList.userOptions.showUserList": "Kullanıcı listesi izleyicilere gösteriliyor",
"app.userList.userOptions.enableOnlyModeratorWebcam": "Kameranı şimdi açabilirsin, herkes seni görecek",
- "app.userList.userOptions.savedNames.title": "{1} oturumunda {0} toplantısındaki kullanıcıların listesi",
- "app.userList.userOptions.sortedFirstName.heading": "İsme göre sıralandı:",
- "app.userList.userOptions.sortedLastName.heading": "Soyisme göre sıralandı:",
+ "app.userList.userOptions.savedNames.title": "{1} üzerindeki {0} toplantısındaki kullanıcıların listesi",
+ "app.userList.userOptions.sortedFirstName.heading": "Ada göre sıralı:",
+ "app.userList.userOptions.sortedLastName.heading": "Soyada göre sıralı:",
+ "app.userList.userOptions.hideViewersCursor": "İzleyici imleçleri kilitlendi",
+ "app.userList.userOptions.showViewersCursor": "İzleyici imleçlerinin kilidi açıldı",
"app.media.label": "Ortam",
- "app.media.autoplayAlertDesc": "Erişim İzni Ver",
+ "app.media.autoplayAlertDesc": "Erişim izni ver",
"app.media.screenshare.start": "Ekran paylaşımı başlatıldı",
- "app.media.screenshare.end": "Ekran paylaşımı sonlandırıldı",
- "app.media.screenshare.unavailable": "Ekran Paylaşımı Kullanılamıyor",
+ "app.media.screenshare.end": "Ekran paylaşımı kapatıldı",
+ "app.media.screenshare.endDueToDataSaving": "Veri tasarrufu nedeniyle ekran paylaşımı durduruldu",
+ "app.media.screenshare.unavailable": "Ekran paylaşımı kullanılamıyor",
"app.media.screenshare.notSupported": "Bu web tarayıcıda ekran paylaşımı desteklenmiyor.",
"app.media.screenshare.autoplayBlockedDesc": "Sunucunun ekranını görüntüleyebilmemiz için izin vermeniz gerekiyor.",
"app.media.screenshare.autoplayAllowLabel": "Paylaşılan ekranı görüntüle",
@@ -123,27 +148,35 @@
"app.screenshare.presenterSharingLabel": "Ekranınız şu anda paylaşılıyor",
"app.screenshare.screenshareFinalError": "Kod {0}. Ekran paylaşılamadı.",
"app.screenshare.screenshareRetryError": "Kod {0}. Ekranı paylaşmayı yeniden deneyin.",
- "app.screenshare.screenshareRetryOtherEnvError": "Kod {0}. Ekran paylaşılamadı. Başka bir tarayıcı veya cihaz kullanarak tekrar deneyin.",
- "app.screenshare.screenshareUnsupportedEnv": "Kod {0}. Tarayıcı desteklenmiyor. Farklı bir tarayıcı veya cihaz kullanarak yeniden deneyin.",
- "app.screenshare.screensharePermissionError": "Kod {0}. Ekranı yakalama izninin verilmesi gerekiyor.",
- "app.meeting.ended": "Bu oturum sonlandı",
+ "app.screenshare.screenshareRetryOtherEnvError": "Kod {0}. Ekran paylaşılamadı. Farklı bir web tarayıcı veya aygıt kullanarak yeniden deneyin.",
+ "app.screenshare.screenshareUnsupportedEnv": "Kod {0}. Web tarayıcı desteklenmiyor. Farklı bir web tarayıcı ya da aygıt kullanarak yeniden deneyin.",
+ "app.screenshare.screensharePermissionError": "Kod {0}. Ekran yakalama izninin verilmesi gerekiyor.",
+ "app.meeting.ended": "Bu oturum sona erdi",
"app.meeting.meetingTimeRemaining": "Toplantının bitmesine kalan süre: {0}",
- "app.meeting.meetingTimeHasEnded": "Zaman doldu. Toplantı birazdan bitirilecek",
- "app.meeting.endedByUserMessage": "Bu oturum {0} tarafından sonlandırıldı",
- "app.meeting.endedByNoModeratorMessageSingular": "Bir dakika moderatör bulunmadığı için toplantı sona erdi.",
- "app.meeting.endedByNoModeratorMessagePlural": "{0} dakika moderatör bulunmadığı için toplantı sona erdi",
+ "app.meeting.meetingTimeHasEnded": "Zaman doldu. Toplantı birazdan sona erecek",
+ "app.meeting.endedByUserMessage": "{0} bu oturumu kapattı",
+ "app.meeting.endedByNoModeratorMessageSingular": "Bu toplantı bir sorumlu bulunmadığı için başladıktan bir dakika sonra kapatıldı",
+ "app.meeting.endedByNoModeratorMessagePlural": "Bu toplantı bir sorumlu bulunmadığı için başladıktan {0} dakika sonra kapatıldı",
"app.meeting.endedMessage": "Açılış ekranına geri döneceksiniz",
- "app.meeting.alertMeetingEndsUnderMinutesSingular": "Toplantı bir dakika içinde bitirilecek.",
- "app.meeting.alertMeetingEndsUnderMinutesPlural": "Toplantı {0} dakika içinde bitirilecek.",
- "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Grup çalışması {0} dakika içinde bitirilecek.",
+ "app.meeting.alertMeetingEndsUnderMinutesSingular": "Toplantı bir dakika içinde sona erecek.",
+ "app.meeting.alertMeetingEndsUnderMinutesPlural": "Toplantı {0} dakika içinde sona erecek.",
+ "app.meeting.alertBreakoutEndsUnderMinutesPlural": "Grup çalışması {0} dakika içinde sona erecek.",
"app.meeting.alertBreakoutEndsUnderMinutesSingular": "Grup çalışması bir dakika içinde sona erecek.",
"app.presentation.hide": "Sunumu gizle",
"app.presentation.notificationLabel": "Geçerli sunum",
"app.presentation.downloadLabel": "İndir",
- "app.presentation.slideContent": "Slayt İçeriği",
+ "app.presentation.slideContent": "Slayt içeriği",
"app.presentation.startSlideContent": "Slayt içeriği başlangıcı",
"app.presentation.endSlideContent": "Slayt içeriği bitişi",
+ "app.presentation.changedSlideContent": "Sunum şu slayta değiştirildi: {0}",
"app.presentation.emptySlideContent": "Geçerli slayt için içerik yok",
+ "app.presentation.options.fullscreen": "Tam ekrana geç",
+ "app.presentation.options.exitFullscreen": "Tam ekrandan çık",
+ "app.presentation.options.minimize": "Küçült",
+ "app.presentation.options.snapshot": "Geçerli sunumun ekran görüntüsü",
+ "app.presentation.options.downloading": "İndiriliyor...",
+ "app.presentation.options.downloaded": "Geçerli sunum indirildi",
+ "app.presentation.options.downloadFailed": "Geçerli sunum indirilemedi",
"app.presentation.presentationToolbar.noNextSlideDesc": "Sunum sonu",
"app.presentation.presentationToolbar.noPrevSlideDesc": "Sunum başlangıcı",
"app.presentation.presentationToolbar.selectLabel": "Slayt seçin",
@@ -163,13 +196,15 @@
"app.presentation.presentationToolbar.zoomInDesc": "Sunumu yakınlaştırır",
"app.presentation.presentationToolbar.zoomOutLabel": "Uzaklaştır",
"app.presentation.presentationToolbar.zoomOutDesc": "Sunumu uzaklaştırır",
- "app.presentation.presentationToolbar.zoomReset": "Yakınlaştırmayı Sıfırla",
+ "app.presentation.presentationToolbar.zoomReset": "Yakınlaştırmayı sıfırla",
"app.presentation.presentationToolbar.zoomIndicator": "Geçerli yakınlaştırma yüzdesi",
"app.presentation.presentationToolbar.fitToWidth": "Genişliğe sığdır",
"app.presentation.presentationToolbar.fitToPage": "Sayfaya sığdır",
- "app.presentation.presentationToolbar.goToSlide": "{0}. Slayt",
+ "app.presentation.presentationToolbar.goToSlide": "{0}. slayt",
+ "app.presentation.placeholder": "Şu anda etkin bir sunum yok",
"app.presentationUploder.title": "Sunum",
"app.presentationUploder.message": "Sunucu olarak, herhangi bir ofis ya da PDF belgesi yükleyebilirsiniz. En iyi sonucu almak için PDF belgesi kullanmanız önerilir. Lütfen sağ taraftaki daire işaret kutusunu kullanarak bir sunum seçildiğinden emin olun.",
+ "app.presentationUploder.extraHint": "ÖNEMLİ: Her bir dosya {0} MB boyutundan ve {1} sayfadan küçük olmalıdır.",
"app.presentationUploder.uploadLabel": "Yükle",
"app.presentationUploder.confirmLabel": "Onayla",
"app.presentationUploder.confirmDesc": "Değişiklikleri kaydedip sunumu başlat",
@@ -182,9 +217,10 @@
"app.presentationUploder.fileToUpload": "Yüklenecek ...",
"app.presentationUploder.currentBadge": "Geçerli",
"app.presentationUploder.rejectedError": "Seçilmiş dosya(lar) reddedildi. Lütfen dosya türlerini denetleyin.",
+ "app.presentationUploder.connectionClosedError": "Kötü bağlantı nedeniyle kesintiye uğradı. Lütfen yeniden deneyin.",
"app.presentationUploder.upload.progress": "Yükleniyor ({0}%)",
- "app.presentationUploder.upload.413": "Dosya çok büyük, maksimum {0} MB'yi aştı",
- "app.presentationUploder.genericError": "Üzgünüz! Bir şeyler yanlış gitti ...",
+ "app.presentationUploder.upload.413": "Dosya boyutu çok büyük. En fazla {0} MB olabilir",
+ "app.presentationUploder.genericError": "Bir sorun çıktı...",
"app.presentationUploder.upload.408": "Yükleme isteği kodunun süresi geçmiş.",
"app.presentationUploder.upload.404": "404: Yükleme kodu geçersiz",
"app.presentationUploder.upload.401": "Sunum yükleme isteği kodu oluşturulamadı.",
@@ -193,22 +229,22 @@
"app.presentationUploder.conversion.generatingThumbnail": "Küçük görseller oluşturuluyor ...",
"app.presentationUploder.conversion.generatedSlides": "Slaytlar oluşturuldu ...",
"app.presentationUploder.conversion.generatingSvg": "SVG görselleri oluşturuluyor ...",
- "app.presentationUploder.conversion.pageCountExceeded": "Sayfa sayısı maksimum {0} sınırını aştı",
- "app.presentationUploder.conversion.officeDocConversionInvalid": "Ofis belgesi işlenemedi. Lütfen yerine bir PDF yükleyin.",
- "app.presentationUploder.conversion.officeDocConversionFailed": "Ofis belgesi işlenemedi. Lütfen yerine bir PDF yükleyin.",
- "app.presentationUploder.conversion.pdfHasBigPage": "PDF dosyasını dönüştüremedik, lütfen optimize etmeyi deneyin. Maksimum sayfa boyutu {0}",
- "app.presentationUploder.conversion.timeout": "Sorun var, dönüşüm çok uzun sürdü",
+ "app.presentationUploder.conversion.pageCountExceeded": "Sayfa sayısı çok fazla. En fazla {0} olabilir",
+ "app.presentationUploder.conversion.officeDocConversionInvalid": "Ofis belgesi işlenemedi. Lütfen PDF olarak yükleyin.",
+ "app.presentationUploder.conversion.officeDocConversionFailed": "Ofis belgesi işlenemedi. Lütfen PDF olarak yükleyin.",
+ "app.presentationUploder.conversion.pdfHasBigPage": "PDF dosyasını dönüştürülemedi. Lütfen iyileştirmeyi deneyin. En fazla sayfa boyutu {0}",
+ "app.presentationUploder.conversion.timeout": "Sorun var, dönüştürme çok uzun sürdü",
"app.presentationUploder.conversion.pageCountFailed": "Sayfa sayısı belirlenemedi.",
"app.presentationUploder.conversion.unsupportedDocument": "Dosya uzantısı desteklenmiyor",
- "app.presentationUploder.isDownloadableLabel": "Sunum indirmeye izin verilmiyor - sununun indirilmesine izin vermek için tıklayın",
- "app.presentationUploder.isNotDownloadableLabel": "Sunum indirmeye izin veriliyor - sununun indirilmesine izin vermemek için tıklayın",
+ "app.presentationUploder.isDownloadableLabel": "Sunumun indirilmesine izin verilmiyor. Sununun indirilmesine izin vermek için tıklayın",
+ "app.presentationUploder.isNotDownloadableLabel": "Sunumun indirilmesine izin veriliyor. Sununun indirilmesine engellemek için tıklayın",
"app.presentationUploder.removePresentationLabel": "Sunumu kaldır",
"app.presentationUploder.setAsCurrentPresentation": "Sunumu geçerli olarak ayarla",
"app.presentationUploder.tableHeading.filename": "Dosya adı",
"app.presentationUploder.tableHeading.options": "Seçenekler",
"app.presentationUploder.tableHeading.status": "Durum",
"app.presentationUploder.uploading": "Yükleniyor {0} {1}",
- "app.presentationUploder.uploadStatus": "{0} yüklemeden {1} tanesi tamamlandı",
+ "app.presentationUploder.uploadStatus": "{0} / {1} yükleme tamamlandı",
"app.presentationUploder.completed": "{0} yükleme tamamlandı",
"app.presentationUploder.item" : "öge",
"app.presentationUploder.itemPlural" : "öge",
@@ -231,34 +267,34 @@
"app.poll.backLabel": "Bir Anket Başlat",
"app.poll.closeLabel": "Kapat",
"app.poll.waitingLabel": "Yanıtlar bekleniyor ({0}/{1})",
- "app.poll.ariaInputCount": "Özel anket seçeneği {0} / {1}",
- "app.poll.customPlaceholder": "Anket seçeneği ekle",
+ "app.poll.ariaInputCount": "Özel oylama seçeneği {0} / {1}",
+ "app.poll.customPlaceholder": "Oylama seçeneği ekle",
"app.poll.noPresentationSelected": "Herhangi bir sunum seçilmemiş! Lütfen bir sunum seçin.",
"app.poll.clickHereToSelect": "Seçmek için buraya tıklayın",
"app.poll.question.label" : "Sorunuzu yazın...",
"app.poll.optionalQuestion.label" : "Sorunuzu yazın (isteğe bağlı)...",
- "app.poll.userResponse.label" : "Kullanıcı Yanıtı",
- "app.poll.responseTypes.label" : "Cevap Türleri",
+ "app.poll.userResponse.label" : "Kullanıcı yanıtı",
+ "app.poll.responseTypes.label" : "Yanıt türleri",
"app.poll.optionDelete.label" : "Sil",
- "app.poll.responseChoices.label" : "Cevap Seçenekleri",
- "app.poll.typedResponse.desc" : "Kullanıcılara cevapları için bir metin kutusu sunulacak.",
- "app.poll.addItem.label" : "Öge Ekleyin",
- "app.poll.start.label" : "Anketi Başlatın",
- "app.poll.secretPoll.label" : "Anonim Anket",
- "app.poll.secretPoll.isSecretLabel": "Anket isimsizdir - bireysel yanıtları göremezsiniz.",
- "app.poll.questionErr": "Bir soru sormak zorunludur.",
- "app.poll.optionErr": "Bir anket seçeneği girin",
- "app.poll.startPollDesc": "Anketi başlatır",
+ "app.poll.responseChoices.label" : "Yanıt seçenekleri",
+ "app.poll.typedResponse.desc" : "Kullanıcılara yanıtlarını yazabilecekleri bir metin kutusu görüntülenir.",
+ "app.poll.addItem.label" : "Öge ekle",
+ "app.poll.start.label" : "Oylamayı başlat",
+ "app.poll.secretPoll.label" : "Anonim oylama",
+ "app.poll.secretPoll.isSecretLabel": "Oylama anonim olduğundan bireysel yanıtları göremezsiniz.",
+ "app.poll.questionErr": "Bir soru yazılması zorunludur.",
+ "app.poll.optionErr": "Bir oylama seçeneği yazın",
+ "app.poll.startPollDesc": "Oylamayı başlatır",
"app.poll.showRespDesc": "Yanıt yapılandırmasını görüntüler",
- "app.poll.addRespDesc": "Anket yanıt seçeneği ekler",
+ "app.poll.addRespDesc": "Oylama yanıtı girişi ekler",
"app.poll.deleteRespDesc": "{0} seçeneğini kaldırır",
"app.poll.t": "Doğru",
"app.poll.f": "Yanlış",
"app.poll.tf": "Doğru / Yanlış",
"app.poll.y": "Evet",
"app.poll.n": "Hayır",
- "app.poll.abstention": "Çekimser",
- "app.poll.yna": "Evet / Hayır / Çekimser",
+ "app.poll.abstention": "Kararsız",
+ "app.poll.yna": "Evet / Hayır / Kararsız",
"app.poll.a2": "A / B",
"app.poll.a3": "A / B / C",
"app.poll.a4": "A / B / C / D",
@@ -267,7 +303,7 @@
"app.poll.answer.false": "Yanlış",
"app.poll.answer.yes": "Evet",
"app.poll.answer.no": "Hayır",
- "app.poll.answer.abstention": "Çekimser",
+ "app.poll.answer.abstention": "Kararsız",
"app.poll.answer.a": "A",
"app.poll.answer.b": "B",
"app.poll.answer.c": "C",
@@ -275,39 +311,39 @@
"app.poll.answer.e": "E",
"app.poll.liveResult.usersTitle": "Kullanıcılar",
"app.poll.liveResult.responsesTitle": "Yanıt",
- "app.poll.liveResult.secretLabel": "Bu isimsiz bir ankettir. Bireysel cevaplar gösterilmez.",
- "app.poll.removePollOpt": "Kaldırılan Anket seçenekleri {0}",
+ "app.poll.liveResult.secretLabel": "Bu oylama anonim olduğundan bireysel yanıtlar görüntülenmez.",
+ "app.poll.removePollOpt": "{0} oylama seçeneği kaldırıldı",
"app.poll.emptyPollOpt": "Boş",
- "app.polling.pollingTitle": "Anket seçenekleri",
- "app.polling.pollQuestionTitle": "Anket Sorusu",
- "app.polling.submitLabel": "Teslim Et",
- "app.polling.submitAriaLabel": "Anket cevaplarını teslim edin",
- "app.polling.responsePlaceholder": "Cevap girin",
- "app.polling.responseSecret": "İsimsiz anket – sunucu cevabınızı göremez.",
- "app.polling.responseNotSecret": "Normal anket – sunucu cevabınızı görebilir.",
+ "app.polling.pollingTitle": "Oylama seçenekleri",
+ "app.polling.pollQuestionTitle": "Oylama sorusu",
+ "app.polling.submitLabel": "Gönder",
+ "app.polling.submitAriaLabel": "Oylama yanıtını gönder",
+ "app.polling.responsePlaceholder": "Yanıtı yazın",
+ "app.polling.responseSecret": "Anonim oylama. Sunucu yanıtınızı göremez.",
+ "app.polling.responseNotSecret": "Normal oylama. Sunucu yanıtınızı görebilir.",
"app.polling.pollAnswerLabel": "Oylama yanıtı {0}",
- "app.polling.pollAnswerDesc": "{0} oyu vermek için bu seçeneği seçin",
+ "app.polling.pollAnswerDesc": "Bu seçeneği kullanarak {0} için oy verin",
"app.failedMessage": "Özür dileriz, sunucu ile bağlantı kurma sorunu var.",
"app.downloadPresentationButton.label": "Özgün sunumu indir",
- "app.connectingMessage": "Bağlantı kuruluyor ...",
- "app.waitingMessage": "Bağlantı kesildi. {0} saniye içinde yeniden bağlantı kurulmaya çalışılacak ...",
+ "app.connectingMessage": "Bağlantı kuruluyor...",
+ "app.waitingMessage": "Bağlantı kesildi. {0} saniye içinde yeniden bağlantı kurulmaya çalışılacak...",
"app.retryNow": "Şimdi yeniden dene",
- "app.muteWarning.label": "Sesli katılımı açmak için {0} düğmesine tıklayın.",
- "app.muteWarning.disableMessage": "Sesi açılıncaya kadar uyarıların sesini kapatma devre dışı bırakıldı",
- "app.muteWarning.tooltip": "Kapatmak için tıklayın ve bir sonraki sessize alınana kadar uyarıyı devre dışı bırakın",
+ "app.muteWarning.label": "Sesinizi açmak için {0} üzerine tıklayın.",
+ "app.muteWarning.disableMessage": "Ses açılıncaya kadar uyarı sesini kapatma devre dışı bırakıldı",
+ "app.muteWarning.tooltip": "Kapatmak için tıklayın ve ses yeniden açılana kadar uyarıyı devre dışı bırakın",
"app.navBar.settingsDropdown.optionsLabel": "Seçenekler",
"app.navBar.settingsDropdown.fullscreenLabel": "Tam ekrana geç",
"app.navBar.settingsDropdown.settingsLabel": "Ayarlar",
"app.navBar.settingsDropdown.aboutLabel": "Hakkında",
- "app.navBar.settingsDropdown.leaveSessionLabel": "Toplantıdan Ayrıl",
+ "app.navBar.settingsDropdown.leaveSessionLabel": "Toplantıdan ayrıl",
"app.navBar.settingsDropdown.exitFullscreenLabel": "Tam ekrandan çık",
"app.navBar.settingsDropdown.fullscreenDesc": "Ayarlar menüsünü tam ekran yap",
"app.navBar.settingsDropdown.settingsDesc": "Genel ayarları değiştir",
"app.navBar.settingsDropdown.aboutDesc": "İstemci bilgilerini göster",
"app.navBar.settingsDropdown.leaveSessionDesc": "Toplantıdan ayrıl",
"app.navBar.settingsDropdown.exitFullscreenDesc": "Tam ekran kipinden çık",
- "app.navBar.settingsDropdown.hotkeysLabel": "Tuş takımı kısayolları",
- "app.navBar.settingsDropdown.hotkeysDesc": "Kullanılabilecek tuş takımı kısayollarının listesi",
+ "app.navBar.settingsDropdown.hotkeysLabel": "Klavye kısayolları",
+ "app.navBar.settingsDropdown.hotkeysDesc": "Kullanılabilecek klavye kısayollarının listesi",
"app.navBar.settingsDropdown.helpLabel": "Yardım",
"app.navBar.settingsDropdown.helpDesc": "Kullanıcıya görüntülü eğitimleri açar (yeni sekmede)",
"app.navBar.settingsDropdown.endMeetingDesc": "Geçerli toplantıyı bitirir",
@@ -315,20 +351,22 @@
"app.navBar.userListToggleBtnLabel": "Kullanıcı listesini aç/kapat",
"app.navBar.toggleUserList.ariaLabel": "Kullanıcılar ve iletiler arasında geçiş yapar",
"app.navBar.toggleUserList.newMessages": "yeni ileti bildirimiyle",
+ "app.navBar.toggleUserList.newMsgAria": "{0} kullanıcısından yeni ileti",
"app.navBar.recording": "Bu oturum kaydedildi",
"app.navBar.recording.on": "Kaydediliyor",
"app.navBar.recording.off": "Kaydedilmiyor",
"app.navBar.emptyAudioBrdige": "Etkin bir mikrofon yok. Bu kayıda ses eklemek için mikrofonunuzu paylaşın.",
"app.leaveConfirmation.confirmLabel": "Ayrıl",
- "app.leaveConfirmation.confirmDesc": "Sizi görüşmeden çıkarır",
- "app.endMeeting.title": "{0} sonlandır",
- "app.endMeeting.description": "Bu işlem, aktif {0} kullanıcı için oturumu sonlandıracak. Bu oturumu sonlandırmak istediğinizden emin misiniz?",
- "app.endMeeting.noUserDescription": "Bu oturumu sonlandırmak istediğinizden emin misiniz?",
- "app.endMeeting.contentWarning": "Bu oturum için sohbet mesajlarına, notlara, beyaz tahta içeriğine ve paylaşılan belgelere artık doğrudan erişilemeyecek",
+ "app.leaveConfirmation.confirmDesc": "Sizi toplantıdan çıkarır",
+ "app.endMeeting.title": "{0} oturumunu kapat",
+ "app.endMeeting.description": "Bu işlem, {0} etkin kullanıcının bulunduğu oturumu sona erdirecek. Bu oturumu kapatmak istediğinize emin misiniz?",
+ "app.endMeeting.noUserDescription": "Bu oturumu kapatmak istediğinize emin misiniz?",
+ "app.endMeeting.contentWarning": "Bu oturum için artık sohbet iletilerine, notlara, beyaz tahta içeriğine ve paylaşılmış belgelere doğrudan erişilemeyecek",
"app.endMeeting.yesLabel": "Evet",
"app.endMeeting.noLabel": "Hayır",
"app.about.title": "Hakkında",
"app.about.version": "İstemci yapımı:",
+ "app.about.version_label": "BigBlueButton sürümü:",
"app.about.copyright": "Telif hakkı:",
"app.about.confirmLabel": "Tamam",
"app.about.confirmDesc": "Tamam",
@@ -339,32 +377,32 @@
"app.actionsBar.unmuteLabel": "Sesi aç",
"app.actionsBar.camOffLabel": "Kamera kapalı",
"app.actionsBar.raiseLabel": "El kaldır",
- "app.actionsBar.label": "Eylemler çubuğu",
+ "app.actionsBar.label": "İşlem çubuğu",
"app.actionsBar.actionsDropdown.restorePresentationLabel": "Sunumu geri yükle",
- "app.actionsBar.actionsDropdown.restorePresentationDesc": "Küçültüldükten sonra sunumu geri yükleyen düğme",
+ "app.actionsBar.actionsDropdown.restorePresentationDesc": "Simge durumuna küçültüldükten sonra sunumu eski boyutuna döndüren düğme",
"app.actionsBar.actionsDropdown.minimizePresentationLabel": "Sunumu simge durumuna küçült",
- "app.actionsBar.actionsDropdown.minimizePresentationDesc": "Sunumu simge durumuna küçültmek için kullanılan düğme",
+ "app.actionsBar.actionsDropdown.minimizePresentationDesc": "Sunumu simge durumuna küçülten düğme",
"app.screenshare.screenShareLabel" : "Ekran paylaşımı",
"app.submenu.application.applicationSectionTitle": "Uygulama",
"app.submenu.application.animationsLabel": "Canlandırmalar",
- "app.submenu.application.audioFilterLabel": "Mikrofon için Ses Filtreleri",
+ "app.submenu.application.audioFilterLabel": "Mikrofon için ses süzgeçleri",
"app.submenu.application.fontSizeControlLabel": "Yazı boyutu",
"app.submenu.application.increaseFontBtnLabel": "Uygulamanın yazı boyutunu büyüt",
"app.submenu.application.decreaseFontBtnLabel": "Uygulamanın yazı boyutunu küçült",
"app.submenu.application.currentSize": "şu anda {0}",
- "app.submenu.application.languageLabel": "Uygulama Dili",
+ "app.submenu.application.languageLabel": "Uygulama dili",
"app.submenu.application.languageOptionLabel": "Dil seçin",
"app.submenu.application.noLocaleOptionLabel": "Etkin bir dil bulunamadı",
- "app.submenu.application.paginationEnabledLabel": "Video sayfalama",
- "app.submenu.application.layoutOptionLabel": "Yerleşim Türü",
+ "app.submenu.application.paginationEnabledLabel": "Görüntü sayfalandırma",
+ "app.submenu.application.layoutOptionLabel": "Ekran düzeni türü",
"app.submenu.notification.SectionTitle": "Bildirimler",
- "app.submenu.notification.Desc": "Nasıl ve neye bildirileceğinizi tanımlayın.",
- "app.submenu.notification.audioAlertLabel": "Sesli Uyarılar",
- "app.submenu.notification.pushAlertLabel": "Açılır Pencere Uyarıları",
- "app.submenu.notification.messagesLabel": "Sohbet Mesajları",
- "app.submenu.notification.userJoinLabel": "Kullanıcı Katılımı",
- "app.submenu.notification.userLeaveLabel": "Kullanıcı Ayrıldı",
- "app.submenu.notification.guestWaitingLabel": "Onay Bekleyen Misafir",
+ "app.submenu.notification.Desc": "Neyin nasıl bildirileceğini belirleyin.",
+ "app.submenu.notification.audioAlertLabel": "Sesli uyarılar",
+ "app.submenu.notification.pushAlertLabel": "Açılır pencere uyarıları",
+ "app.submenu.notification.messagesLabel": "Sohbet iletileri",
+ "app.submenu.notification.userJoinLabel": "Kullanıcının katılması",
+ "app.submenu.notification.userLeaveLabel": "Kullanıcının ayrılması",
+ "app.submenu.notification.guestWaitingLabel": "Onay bekleyen konuk",
"app.submenu.audio.micSourceLabel": "Mikrofon kaynağı",
"app.submenu.audio.speakerSourceLabel": "Hoparlör kaynağı",
"app.submenu.audio.streamVolumeLabel": "Sesinizin düzeyi",
@@ -388,10 +426,11 @@
"app.settings.dataSavingTab.screenShare": "Masaüstü paylaşılabilsin",
"app.settings.dataSavingTab.description": "Bant genişliğinden tasarruf etmek için nelerin görüntüleneceğini ayarlayın.",
"app.settings.save-notification.label": "Ayarlar kaydedildi",
- "app.statusNotifier.lowerHands": "İndirilmiş Eller",
- "app.statusNotifier.raisedHandsTitle": "Kaldırılmış Eller",
+ "app.statusNotifier.lowerHands": "Elleri indir",
+ "app.statusNotifier.lowerHandDescOneUser": "{0} kullanıcısının elini indir",
+ "app.statusNotifier.raisedHandsTitle": "Kaldırılmış eller",
"app.statusNotifier.raisedHandDesc": "{0} kişi ellini kaldırdı",
- "app.statusNotifier.raisedHandDescOneUser": "{0} el kaldırma",
+ "app.statusNotifier.raisedHandDescOneUser": "{0} el kaldırdı",
"app.statusNotifier.and": "ve",
"app.switch.onLabel": "AÇIK",
"app.switch.offLabel": "KAPALI",
@@ -400,8 +439,8 @@
"app.talkingIndicator.moreThanMaxIndicatorsTalking" : "{0}+ konuşuyor",
"app.talkingIndicator.moreThanMaxIndicatorsWereTalking" : "{0}+ konuşuyordu",
"app.talkingIndicator.wasTalking" : "{0} sustu",
- "app.actionsBar.actionsDropdown.actionsLabel": "Eylemler",
- "app.actionsBar.actionsDropdown.presentationLabel": "Sunumları Yönet",
+ "app.actionsBar.actionsDropdown.actionsLabel": "İşlemler",
+ "app.actionsBar.actionsDropdown.presentationLabel": "Sunum yönetimi",
"app.actionsBar.actionsDropdown.initPollLabel": "Oylama başlat",
"app.actionsBar.actionsDropdown.desktopShareLabel": "Ekranını paylaş",
"app.actionsBar.actionsDropdown.lockedDesktopShareLabel": "Ekran paylaşımı kilitli",
@@ -411,31 +450,31 @@
"app.actionsBar.actionsDropdown.desktopShareDesc": "Ekranınızı diğer katılımcılarla paylaşın",
"app.actionsBar.actionsDropdown.stopDesktopShareDesc": "Ekran paylaşımını şununla bitir",
"app.actionsBar.actionsDropdown.pollBtnLabel": "Oylama başlat",
- "app.actionsBar.actionsDropdown.pollBtnDesc": "Anket bölmesini açar ya da kapatır",
+ "app.actionsBar.actionsDropdown.pollBtnDesc": "Oylama bölmesini açar ya da kapatır",
"app.actionsBar.actionsDropdown.saveUserNames": "Kullanıcı adlarını kaydet",
"app.actionsBar.actionsDropdown.createBreakoutRoom": "Grup odaları oluştur",
"app.actionsBar.actionsDropdown.createBreakoutRoomDesc": "geçerli toplantıyı bölmek için gruplar oluştur",
- "app.actionsBar.actionsDropdown.captionsLabel": "Alt yazıları yaz",
+ "app.actionsBar.actionsDropdown.captionsLabel": "Alt yazıları görüntüle",
"app.actionsBar.actionsDropdown.captionsDesc": "Alt yazı bölmesini açar ya da kapatır",
"app.actionsBar.actionsDropdown.takePresenter": "Sunucu ol",
"app.actionsBar.actionsDropdown.takePresenterDesc": "Kendinizi yeni sunucu olarak atayın",
- "app.actionsBar.actionsDropdown.selectRandUserLabel": "Rastgele Kullanıcı Seç",
- "app.actionsBar.actionsDropdown.selectRandUserDesc": "Mevcut katılımcılardan rastgele bir kullanıcı seçer",
+ "app.actionsBar.actionsDropdown.selectRandUserLabel": "Rastgele kullanıcı seç",
+ "app.actionsBar.actionsDropdown.selectRandUserDesc": "Var olan izleyicilerden rastgele bir kullanıcı seçer",
"app.actionsBar.emojiMenu.statusTriggerLabel": "Durumu ayarla",
"app.actionsBar.emojiMenu.awayLabel": "Uzakta",
"app.actionsBar.emojiMenu.awayDesc": "Durumunuzu uzakta yapar",
"app.actionsBar.emojiMenu.raiseHandLabel": "El kaldır",
- "app.actionsBar.emojiMenu.lowerHandLabel": "Elini indir",
+ "app.actionsBar.emojiMenu.lowerHandLabel": "Eli indir",
"app.actionsBar.emojiMenu.raiseHandDesc": "Soru sormak için el kaldırır",
"app.actionsBar.emojiMenu.neutralLabel": "Kararsız",
"app.actionsBar.emojiMenu.neutralDesc": "Durumunuzu kararsız yapar",
- "app.actionsBar.emojiMenu.confusedLabel": "Şaşkın",
+ "app.actionsBar.emojiMenu.confusedLabel": "Şaşırmış",
"app.actionsBar.emojiMenu.confusedDesc": "Durumunuzu şaşırmış yapar",
"app.actionsBar.emojiMenu.sadLabel": "Üzgün",
"app.actionsBar.emojiMenu.sadDesc": "Durumunuzu üzgün yapar",
"app.actionsBar.emojiMenu.happyLabel": "Mutlu",
"app.actionsBar.emojiMenu.happyDesc": "Durumunuzu mutlu yapar",
- "app.actionsBar.emojiMenu.noneLabel": "Durumu Temizle",
+ "app.actionsBar.emojiMenu.noneLabel": "Durumu temizle",
"app.actionsBar.emojiMenu.noneDesc": "Durumunuzu temizler",
"app.actionsBar.emojiMenu.applauseLabel": "Alkış",
"app.actionsBar.emojiMenu.applauseDesc": "Durumunuzu alkış yapar",
@@ -461,7 +500,7 @@
"app.audioNotification.audioFailedMessage": "Ses bağlantınız kurulamadı",
"app.audioNotification.mediaFailedMessage": "Yalnızca güvenli kaynaklara izin verildiğinden getUserMicMedia tamamlanamadı",
"app.audioNotification.closeLabel": "Kapat",
- "app.audioNotificaion.reconnectingAsListenOnly": "Katılımcıların mikrofon kullanımı kilitlenmiş. Yalnız dinleyici olarak bağlanıyorsunuz",
+ "app.audioNotificaion.reconnectingAsListenOnly": "İzleyicilerin mikrofon kullanması engellenmiş. Yalnızca dinleyici olarak bağlanıyorsunuz",
"app.breakoutJoinConfirmation.title": "Grup odasına katıl",
"app.breakoutJoinConfirmation.message": "Katılmak istiyor musunuz?",
"app.breakoutJoinConfirmation.confirmDesc": "Grup odasına katıl",
@@ -470,18 +509,21 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "Katılacağınız bir grup odası seçin",
"app.breakoutTimeRemainingMessage": "Grup odasının kalan zamanı: {0}",
"app.breakoutWillCloseMessage": "Süre bitti. Grup odası birazdan kapanacak",
+ "app.breakout.dropdown.manageDuration": "Süreyi değiştir",
+ "app.breakout.dropdown.destroyAll": "Grup odalarını kapat",
+ "app.breakout.dropdown.options": "Gruplandırma seçenekleri",
"app.calculatingBreakoutTimeRemaining": "Kalan süre hesaplanıyor...",
- "app.audioModal.ariaTitle": "Ses modunda katılın",
+ "app.audioModal.ariaTitle": "Üste açılan ses ile katılma penceresi",
"app.audioModal.microphoneLabel": "Mikrofon",
- "app.audioModal.listenOnlyLabel": "Yalnız dinleme",
- "app.audioModal.microphoneDesc": "Mikrofonla katıl",
- "app.audioModal.listenOnlyDesc": "Dinleyici olarak katıl",
- "app.audioModal.audioChoiceLabel": "Sesli katılımınızı nasıl yapmak istersiniz?",
- "app.audioModal.iOSBrowser": "Ses/Görüntü desteklenmiyor",
+ "app.audioModal.listenOnlyLabel": "Yalnızca dinleme",
+ "app.audioModal.microphoneDesc": "Sesli konferansa mikrofon ile katılır ",
+ "app.audioModal.listenOnlyDesc": "Sesli konferansa yalnızca dinleyici olarak katılır",
+ "app.audioModal.audioChoiceLabel": "Sesli toplantıya nasıl katılımak istersiniz?",
+ "app.audioModal.iOSBrowser": "Ses/görüntü desteklenmiyor",
"app.audioModal.iOSErrorDescription": "Şu anda iOS için Chrome üzerinde ses ve görüntü desteklenmiyor.",
"app.audioModal.iOSErrorRecommendation": "iOS için Safari kullanmanız önerilir.",
"app.audioModal.audioChoiceDesc": "Bu toplantıya katılacağınız ses ayarını seçin",
- "app.audioModal.unsupportedBrowserLabel": "Tam olarak desteklenmeyen bir tarayıcı kullanıyorsunuz. Lütfen tam destek almak için {0} ya da {1} kullanın.",
+ "app.audioModal.unsupportedBrowserLabel": "Tam olarak desteklenmeyen bir web tarayıcı kullanıyorsunuz. Lütfen tam destek almak için {0} ya da {1} kullanın.",
"app.audioModal.closeLabel": "Kapat",
"app.audioModal.yes": "Evet",
"app.audioModal.no": "Hayır",
@@ -490,21 +532,21 @@
"app.audioModal.echoTestTitle": "Bu size özel bir yankı testidir. Biraz konuşun. Ses duydunuz mu?",
"app.audioModal.settingsTitle": "Ses ayarlarınızı değiştirin",
"app.audioModal.helpTitle": "Ortam aygıtlarınızla ilgili bir sorun çıktı",
- "app.audioModal.helpText": "Mikrofonunuza erişme izni verdiniz mi? Görüşmeye sesinizle katılmak istediğinizde, ortam aygıtlarınıza erişme izni vermeniz için bir pencere görüntülenir. Sesli görüşmeye katılabilmek için onay vermeniz gerekir. İzin penceresi görüntülenmediyse, web tarayıcınızın ayarlarından mikrofon izinlerini değiştirmeyi deneyin.",
+ "app.audioModal.helpText": "Mikrofonunuza erişme izni verdiniz mi? Görüşmeye sesinizle katılmak istediğinizde, ortam aygıtlarınıza erişme izni vermeniz için bir pencere görüntülenir. Sesli konferansa katılabilmek için onay vermeniz gerekir. İzin penceresi görüntülenmediyse, web tarayıcınızın ayarlarından mikrofon izinlerini değiştirmeyi deneyin.",
"app.audioModal.help.noSSL": "Bu sayfa güvenli bağlantı kullanmıyor. Mikrofon erişimine izin verilebilmesi için sayfa bağlantısı HTTPS . ile kurulmalıdır. Lütfen sunucu yöneticisi ile görüşün.",
- "app.audioModal.help.macNotAllowed": "Mac Sistem Tercihleriniz mikrofonunuza erişimi engelliyor gibi görünüyor. Sistem Tercihleri > Güvenlik ve Gizlilik > Gizlilik > Mikrofon açın ve kullandığınız tarayıcının kontrol edildiğini doğrulayın.",
+ "app.audioModal.help.macNotAllowed": "Mac sistem tercihleriniz mikrofonunuza erişimi engelliyor gibi görünüyor. Sistem Tercihleri > Güvenlik ve Gizlilik > Gizlilik > Mikrofon bölümünü açın ve kullandığınız web tarayıcının işaretlenmiş olduğunu doğrulayın.",
"app.audioModal.audioDialTitle": "Telefonunuz ile katılın",
"app.audioDial.audioDialDescription": "Ara",
- "app.audioDial.audioDialConfrenceText": "ve görüşmeye katılmak için PIN numarasını yazın:",
+ "app.audioDial.audioDialConfrenceText": "ve konferansa katılmak için PIN numarasını yazın:",
"app.audioModal.autoplayBlockedDesc": "Sesi oynatmak için izniniz gerekiyor.",
"app.audioModal.playAudio": "Sesi oynat",
"app.audioModal.playAudio.arialabel" : "Sesi oynat",
"app.audioDial.tipIndicator": "İpucu",
"app.audioDial.tipMessage": "Kendi sesinizi açmak ya da kapatmak için telefonunuzda '0' tuşuna basın.",
"app.audioModal.connecting": "Ses bağlantısı kuruluyor",
- "app.audioManager.joinedAudio": "Sesli görüşmeye katıldınız",
+ "app.audioManager.joinedAudio": "Sesli konferansa katıldınız",
"app.audioManager.joinedEcho": "Yankı testine katıldınız",
- "app.audioManager.leftAudio": "Sesli görüşmeden ayrıldınız",
+ "app.audioManager.leftAudio": "Sesli konferanstan ayrıldınız",
"app.audioManager.reconnectingAudio": "Ses bağlantısı yeniden kurulmaya çalışılıyor",
"app.audioManager.genericError": "Hata: Bir sorun çıktı. Lütfen yeniden deneyin",
"app.audioManager.connectionError": "Hata: Bağlantı sorunu",
@@ -512,27 +554,28 @@
"app.audioManager.invalidTarget": "Hata: Geçersiz bir hedef için bir istekte bulunuldu",
"app.audioManager.mediaError": "Hata: Ortam aygıtlarınıza erişilirken bir sorun çıktı",
"app.audio.joinAudio": "Sesli katıl",
- "app.audio.leaveAudio": "Sesli Katılımı Kapat",
- "app.audio.changeAudioDevice": "Ses cihazını değiştir",
+ "app.audio.leaveAudio": "Sesli katılımı kapat",
+ "app.audio.changeAudioDevice": "Ses aygıtını değiştir",
"app.audio.enterSessionLabel": "Oturuma katıl",
"app.audio.playSoundLabel": "Sesi oynat",
"app.audio.backLabel": "Geri",
"app.audio.loading": "Yükleniyor",
"app.audio.microphones": "Mikrofonlar",
"app.audio.speakers": "Hoparlörler",
- "app.audio.noDeviceFound": "Cihaz bulunamadı",
+ "app.audio.noDeviceFound": "Herhangi bir aygıt bulunamadı",
"app.audio.audioSettings.titleLabel": "Ses ayarlarınızı seçin",
"app.audio.audioSettings.descriptionLabel": "Lütfen web tarayıcınızda mikrofonunuzu paylaşmanızı isteyen bir pencere görüntüleneceğini unutmayın.",
"app.audio.audioSettings.microphoneSourceLabel": "Mikrofon kaynağı",
"app.audio.audioSettings.speakerSourceLabel": "Hoparlör kaynağı",
- "app.audio.audioSettings.microphoneStreamLabel": "Ses düzeyiniz",
+ "app.audio.audioSettings.testSpeakerLabel": "Hoparlörünüzü deneyin",
+ "app.audio.audioSettings.microphoneStreamLabel": "Yayın akışınızın ses düzeyi",
"app.audio.audioSettings.retryLabel": "Yeniden dene",
"app.audio.listenOnly.backLabel": "Geri",
"app.audio.listenOnly.closeLabel": "Kapat",
"app.audio.permissionsOverlay.title": "Mikrofonunuza erişim izni verin",
- "app.audio.permissionsOverlay.hint": "Sesli görüşmeye katılabilmek için ortam aygıtlarınızı kullanmamıza izin vermelisiniz :)",
- "app.error.removed": "Görüşmeden çıkarıldınız",
- "app.error.meeting.ended": "Görüşmeden ayrıldınız",
+ "app.audio.permissionsOverlay.hint": "Sesli konferansa katılabilmek için ortam aygıtlarınızı kullanmamıza izin vermelisiniz :)",
+ "app.error.removed": "Konferanstan çıkarıldınız",
+ "app.error.meeting.ended": "Konferanstan ayrıldınız",
"app.meeting.logout.duplicateUserEjectReason": "Aynı kullanıcı toplantıya ikinci kez katılmaya çalışıyor",
"app.meeting.logout.permissionEjectReason": "İzin ihlali nedeniyle çıkarıldı",
"app.meeting.logout.ejectedFromMeeting": "Toplantıdan çıkarıldınız",
@@ -545,98 +588,111 @@
"app.modal.confirm": "Tamamlandı",
"app.modal.newTab": "(yeni sekme açar)",
"app.modal.confirm.description": "Değişiklikleri kaydeder ve üste açılan pencereyi kapatır",
- "app.modal.randomUser.noViewers.description": "Aralarından rastgele seçim yapabileceğiniz katılımcı yok",
- "app.modal.randomUser.selected.description": "Rastgele Seçildiniz",
- "app.modal.randomUser.title": "Rastgele Seçilen Kullanıcı",
- "app.modal.randomUser.who": "Kim seçilecek ..?",
- "app.modal.randomUser.alone": "Sadece bir izleyici var",
- "app.modal.randomUser.reselect.label": "Tekrar seç",
- "app.modal.randomUser.ariaLabel.title": "Rastgele Seçilen Kullanıcı Modeli",
+ "app.modal.randomUser.noViewers.description": "Aralarından rastgele seçim yapabileceğiniz bir izleyici yok",
+ "app.modal.randomUser.selected.description": "Rastgele olarak seçildiniz",
+ "app.modal.randomUser.title": "Rastgele seçilmiş kullanıcı",
+ "app.modal.randomUser.who": "Kim seçilecek...?",
+ "app.modal.randomUser.alone": "Yalnızca bir izleyici var",
+ "app.modal.randomUser.reselect.label": "Yeniden seç",
+ "app.modal.randomUser.ariaLabel.title": "Rastgele seçilmiş kullanıcı üste açılan penceresi",
"app.dropdown.close": "Kapat",
- "app.dropdown.list.item.activeLabel": "Aktif",
- "app.error.400": "İstek Hatalı",
+ "app.dropdown.list.item.activeLabel": "Etkin",
+ "app.error.400": "İstek hatalı",
"app.error.401": "Yetkisiz",
"app.error.403": "Toplantıdan çıkarıldınız",
"app.error.404": "Bulunamadı",
- "app.error.408": "Doğrulama başarısız",
- "app.error.410": "Toplantı bitti",
- "app.error.500": "Maalesef, bir şeyler ters gitti",
- "app.error.userLoggedOut": "Kullanıcı oturumu kapattığı için geçersiz bir sessionToken'a sahip",
- "app.error.ejectedUser": "Kullanıcı, çıkarma nedeniyle geçersiz bir sessionToken'a sahip",
+ "app.error.408": "Kimlik doğrulanamadı",
+ "app.error.410": "Toplantı sona erdi",
+ "app.error.500": "Bir sorun çıktı",
+ "app.error.userLoggedOut": "Kullanıcı oturumu kapattığından sessionToken geçersiz",
+ "app.error.ejectedUser": "Kullanıcı oturumdan çıkarıldığından sessionToken geçersiz",
+ "app.error.joinedAnotherWindow": "Bu oturum başka bir web tarayıcı penceresinde açık gibi görünüyor.",
"app.error.userBanned": "Kullanıcı yasaklandı",
- "app.error.leaveLabel": "Yeniden gir",
+ "app.error.leaveLabel": "Yeniden oturum aç",
"app.error.fallback.presentation.title": "Bir sorun çıktı",
- "app.error.fallback.presentation.description": "Giriş yapıldı. Lütfen sayfayı yeniden yüklemeyi deneyin.",
+ "app.error.fallback.presentation.description": "Oturum açıldı. Lütfen sayfayı yeniden yüklemeyi deneyin.",
"app.error.fallback.presentation.reloadButton": "Yeniden yükle",
"app.guest.waiting": "Katılma onayı bekleniyor",
- "app.guest.errorSeeConsole": "Hata: konsolda daha fazla ayrıntı.",
- "app.guest.noModeratorResponse": "Moderatörden cevap yok.",
- "app.guest.noSessionToken": "Oturum izni alınmadı.",
- "app.guest.windowTitle": "BigBlueButton - Misafir Lobisi",
- "app.guest.missingToken": "Konuk eksik oturum izni.",
- "app.guest.missingSession": "Misafir oturumu eksik.",
- "app.guest.missingMeeting": "Toplantı bulunmamaktadır.",
- "app.guest.meetingEnded": "Toplantı sona erdi.",
- "app.guest.guestWait": "Lütfen bir moderatörün toplantıya katılmanızı onaylamasını bekleyin.",
- "app.guest.guestDeny": "Misafir toplantıya katılmayı reddetti.",
- "app.guest.seatWait": "Toplantıda katılmayı bekleyen bir misafir var.",
- "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.waitingUsersTitle": "Kullanıcı Yönetimi",
- "app.userList.guest.optionTitle": "Bekleyen Kullanıcılara Bakın",
- "app.userList.guest.allowAllAuthenticated": "Doğrulanmış kullanıcılara izin ver",
+ "app.guest.errorSeeConsole": "Hata: Konsoldan ayrıntılı bilgi alabilirsiniz.",
+ "app.guest.noModeratorResponse": "Sorumlu yanıt vermedi.",
+ "app.guest.noSessionToken": "Herhangi bir oturum kodu alınmadı.",
+ "app.guest.windowTitle": "BigBlueButton - Konuk bekleme odası",
+ "app.guest.missingToken": "Konuğun oturum kodu eksik.",
+ "app.guest.missingSession": "Konuğun oturumu eksik.",
+ "app.guest.missingMeeting": "Toplantı bulunamadı.",
+ "app.guest.meetingEnded": "Toplantı sona ermiş.",
+ "app.guest.guestWait": "Lütfen bir sorumlunun toplantıya katılmanızı onaylamasını bekleyin.",
+ "app.guest.guestDeny": "Konuk toplantıya katılmayı reddetti.",
+ "app.guest.seatWait": "Toplantıya katılmayı bekleyen bir konuk var.",
+ "app.guest.allow": "Konuk onaylandı ve toplantıya alınıyor.",
+ "app.guest.firstPositionInWaitingQueue": "İlk sıradasınız!",
+ "app.guest.positionInWaitingQueue": "Bekleyenler arasındaki sıranız:",
+ "app.guest.guestInvalid": "Konuk kullanıcı geçersiz",
+ "app.guest.meetingForciblyEnded": "Sona erdirilmiş bir toplantıya katılamazsınız",
+ "app.userList.guest.waitingUsers": "Kullanıcılar bekleniyor",
+ "app.userList.guest.waitingUsersTitle": "Kullanıcı yönetimi",
+ "app.userList.guest.optionTitle": "Bekleyen kullanıcılara bakın",
+ "app.userList.guest.allowAllAuthenticated": "Kimliği doğrulanmış kullanıcılara izin ver",
"app.userList.guest.allowAllGuests": "Tüm konuklara izin ver",
"app.userList.guest.allowEveryone": "Herkese izin ver",
"app.userList.guest.denyEveryone": "Herkesi reddet",
- "app.userList.guest.pendingUsers": "{0} Kullanıcı Bekliyor",
- "app.userList.guest.pendingGuestUsers": "{0} Konuk Kullanıcı Bekliyor",
+ "app.userList.guest.pendingUsers": "{0} kullanıcı bekliyor",
+ "app.userList.guest.noPendingUsers": "Şu anda bekleyen bir kullanıcı yok...",
+ "app.userList.guest.pendingGuestUsers": "{0} konuk kullanıcı bekliyor",
"app.userList.guest.pendingGuestAlert": "Oturuma katıldı ve onayınızı bekliyor.",
"app.userList.guest.rememberChoice": "Seçim hatırlansın",
- "app.userList.guest.emptyMessage": "Şu anda mesaj yok",
- "app.userList.guest.inputPlaceholder": "Misafir lobisine mesaj",
- "app.userList.guest.acceptLabel": "Kabul Et",
+ "app.userList.guest.emptyMessage": "Şu anda herhangi bir ileti yok",
+ "app.userList.guest.inputPlaceholder": "Konuk bekleme odası iletisi",
+ "app.userList.guest.privateInputPlaceholder": "{0} alıcısına ileti",
+ "app.userList.guest.privateMessageLabel": "İleti",
+ "app.userList.guest.acceptLabel": "Kabul et",
"app.userList.guest.denyLabel": "Reddet",
- "app.user-info.title": "Dizinde Arama",
+ "app.user-info.title": "Dizinde arama",
"app.toast.breakoutRoomEnded": "Grup odası kapatıldı. Lütfen yeniden sesli görüşmeye katılın.",
- "app.toast.chat.public": "Yeni Genel Sohbet iletisi",
- "app.toast.chat.private": "Yeni Özel Sohbet iletisi",
+ "app.toast.chat.public": "Yeni herkese açık sohbet iletisi",
+ "app.toast.chat.private": "Yeni özel sohbet iletisi",
"app.toast.chat.system": "Sistem",
"app.toast.clearedEmoji.label": "Emoji durumu temizlendi",
"app.toast.setEmoji.label": "Emoji durumu {0} olarak ayarlandı",
"app.toast.meetingMuteOn.label": "Tüm kullanıcıların sesi kapatıldı",
"app.toast.meetingMuteOff.label": "Toplantının sesi açıldı",
"app.toast.setEmoji.raiseHand": "Elinizi kaldırdınız",
+ "app.toast.setEmoji.lowerHand": "Eliniz indirildi",
+ "app.toast.promotedLabel": "Rolünüz Sorumlu olarak güncellendi",
+ "app.toast.demotedLabel": "Rolünüz İzleyici olarak güncellendi",
"app.notification.recordingStart": "Bu oturum şu anda kaydediliyor",
"app.notification.recordingStop": "Bu oturum kaydedilmiyor",
"app.notification.recordingPaused": "Bu oturum artık kaydedilmiyor",
"app.notification.recordingAriaLabel": "Kaydedilen süre",
"app.notification.userJoinPushAlert": "{0} oturuma katıldı",
- "app.notification.userLeavePushAlert": "{0} toplantıdan ayrıldı",
+ "app.notification.userLeavePushAlert": "{0} oturumdan ayrıldı",
"app.submenu.notification.raiseHandLabel": "El kaldır",
- "app.shortcut-help.title": "Tuş takımı kısayolları",
+ "app.shortcut-help.title": "Klavye kısayolları",
"app.shortcut-help.accessKeyNotAvailable": "Erişim tuşları kullanılamıyor",
- "app.shortcut-help.comboLabel": "Açılan Kutu",
+ "app.shortcut-help.comboLabel": "Açılan kutu",
"app.shortcut-help.functionLabel": "İşlev",
"app.shortcut-help.closeLabel": "Kapat",
- "app.shortcut-help.closeDesc": "Üste açılan tuş takımı kısayolları penceresini kapatır",
- "app.shortcut-help.openOptions": "Ayarları Aç",
- "app.shortcut-help.toggleUserList": "Kullanıcı Listesini Aç/Kapat",
- "app.shortcut-help.toggleMute": "Sesi Kapat/Aç",
+ "app.shortcut-help.closeDesc": "Üste açılan klavye kısayolları penceresini kapatır",
+ "app.shortcut-help.openOptions": "Ayarları aç",
+ "app.shortcut-help.toggleUserList": "Kullanıcı listesini aç/kapat",
+ "app.shortcut-help.toggleMute": "Sesi kapat/aç",
"app.shortcut-help.togglePublicChat": "Herkese Açık Sohbete Geç (Kullanıcı listesi açık olmalıdır)",
"app.shortcut-help.hidePrivateChat": "Özel sohbeti gizle",
"app.shortcut-help.closePrivateChat": "Özel sohbeti kapat",
- "app.shortcut-help.openActions": " Eylemler menüsünü aç",
- "app.shortcut-help.raiseHand": "El Kaldırmayı Açın/Kapatın",
+ "app.shortcut-help.openActions": "İşlemler menüsünü aç",
+ "app.shortcut-help.raiseHand": "El kaldırmayı aç/kapat",
"app.shortcut-help.openDebugWindow": "Hata ayıklama penceresini aç",
"app.shortcut-help.openStatus": "Durum menüsünü aç",
- "app.shortcut-help.togglePan": "Sunum araçlarını etkinleştir (Eğitimci)",
- "app.shortcut-help.toggleFullscreen": "Tam ekranı açın/kapatın (Sunum yapan kişi)",
- "app.shortcut-help.nextSlideDesc": "Sonraki slayt (Sunucu)",
- "app.shortcut-help.previousSlideDesc": "Önceki slayt (Sunucu)",
- "app.lock-viewers.title": "Katılımcıları kilitle",
- "app.lock-viewers.description": "Bu seçenekler, izleyicilerin belirli özellikleri kullanmasını kısıtlamanıza olanak tanır.",
+ "app.shortcut-help.togglePan": "Kaydırma aracını etkinleştir (sunucu)",
+ "app.shortcut-help.toggleFullscreen": "Tam ekranı aç/kapat (sunucu)",
+ "app.shortcut-help.nextSlideDesc": "Sonraki slayt (sunucu)",
+ "app.shortcut-help.previousSlideDesc": "Önceki slayt (sunucu)",
+ "app.shortcut-help.togglePanKey": "Boşluk çubuğu",
+ "app.shortcut-help.toggleFullscreenKey": "Enter",
+ "app.shortcut-help.nextSlideKey": "Sağ ok",
+ "app.shortcut-help.previousSlideKey": "Sol ok",
+ "app.lock-viewers.title": "İzleyicileri kilitle",
+ "app.lock-viewers.description": "Bu seçenekler, izleyicilerin belirli özellikleri kullanmasını kısıtlamanızı sağlar.",
"app.lock-viewers.featuresLable": "Özellik",
"app.lock-viewers.lockStatusLabel": "Durum",
"app.lock-viewers.webcamLabel": "Kamerayı paylaş",
@@ -644,34 +700,48 @@
"app.lock-viewers.microphoneLable": "Mikrofonu paylaş",
"app.lock-viewers.PublicChatLabel": "Herkese açık sohbet iletileri gönder",
"app.lock-viewers.PrivateChatLable": "Özel sohbet iletileri gönder",
- "app.lock-viewers.notesLabel": "Paylaşılan Notları düzenle",
- "app.lock-viewers.userListLabel": "Kullanıcılar listesindeki diğer katılımcılara bakın",
- "app.lock-viewers.ariaTitle": "Katılımcıların modal ayarlarını kilitle",
+ "app.lock-viewers.notesLabel": "Paylaşılmış notları düzenle",
+ "app.lock-viewers.userListLabel": "Kullanıcılar listesindeki diğer izleyicilere bakın",
+ "app.lock-viewers.ariaTitle": "İzleyici ayarları üste açılan penceresini kilitle",
"app.lock-viewers.button.apply": "Uygula",
"app.lock-viewers.button.cancel": "Vazgeç",
"app.lock-viewers.locked": "Kilitli",
- "app.guest-policy.ariaTitle": "Misafir politikası ayarları modeli",
- "app.guest-policy.title": "Misafir politikası",
- "app.guest-policy.description": "Toplantı misafir politika ayarını değiştirin",
- "app.guest-policy.button.askModerator": "Moderatöre sorun",
- "app.guest-policy.button.alwaysAccept": "Her zaman kabul edin",
- "app.guest-policy.button.alwaysDeny": "Her zaman reddedin",
- "app.guest-policy.policyBtnDesc": "Toplantı misafir politikasını ayarla",
- "app.connection-status.ariaTitle": "Bağlantı durumu modeli",
+ "app.lock-viewers.hideViewersCursor": "Diğer izleyicilerin imleçlerine bakın",
+ "app.guest-policy.ariaTitle": "Konuk ilkesi ayarları üste açılan penceresi",
+ "app.guest-policy.title": "Konuk ilkesi",
+ "app.guest-policy.description": "Toplantı konuk ilkesi ayarını değiştir",
+ "app.guest-policy.button.askModerator": "Sorumluya sor",
+ "app.guest-policy.button.alwaysAccept": "Her zaman kabul et",
+ "app.guest-policy.button.alwaysDeny": "Her zaman reddet",
+ "app.guest-policy.policyBtnDesc": "Toplantı konuk ilkesini ayarla",
+ "app.connection-status.ariaTitle": "Bağlantı durumu üste açılan penceresi",
"app.connection-status.title": "Bağlantı durumu",
"app.connection-status.description": "Kullanıcıların bağlantı durumunu görüntüle",
- "app.connection-status.empty": "Şu anda bildirilen bağlantı sorunu yok",
- "app.connection-status.more": "daha çok",
+ "app.connection-status.empty": "Şu anda bildirilen bir bağlantı sorunu yok",
+ "app.connection-status.more": "diğer",
+ "app.connection-status.copy": "İstatistikleri kopyala",
"app.connection-status.copied": "Kopyalandı!",
- "app.connection-status.jitter": "Sapma",
+ "app.connection-status.jitter": "Titreme",
"app.connection-status.label": "Bağlantı durumu",
+ "app.connection-status.settings": "Ayarlarınız yapılıyor",
"app.connection-status.no": "Hayır",
- "app.connection-status.notification": "Bağlantınızda kayıp tespit edildi",
- "app.connection-status.offline": "çevrim dışı",
- "app.connection-status.lostPackets": "Kayıp Paketler",
- "app.connection-status.usingTurn": "TURN Kullanımı",
+ "app.connection-status.notification": "Bağlantınızda kayıp algılandı",
+ "app.connection-status.offline": "çevrimdışı",
+ "app.connection-status.audioUploadRate": "Ses yükleme hızı",
+ "app.connection-status.audioDownloadRate": "Ses indirme hızı",
+ "app.connection-status.videoUploadRate": "Görüntü yükleme hızı",
+ "app.connection-status.videoDownloadRate": "Görüntü indirme hızı",
+ "app.connection-status.lostPackets": "Kayıp paketler",
+ "app.connection-status.usingTurn": "TURN kullanımı",
"app.connection-status.yes": "Evet",
- "app.learning-dashboard.description": "Kullanıcı etkinlikleriyle birlikte katılım panosunu aç",
+ "app.connection-status.connectionStats": "Bağlantı istatistikleri",
+ "app.connection-status.myLogs": "Günlük kayıtlarım",
+ "app.connection-status.sessionLogs": "Oturum günlükleri",
+ "app.connection-status.next": "Sonraki sayfa",
+ "app.connection-status.prev": "Önceki sayfa",
+ "app.learning-dashboard.label": "Öğrenme istatistikleri panosu",
+ "app.learning-dashboard.description": "Kullanıcı etkinlikleriyle katılım panosunu açar",
+ "app.learning-dashboard.clickHereToOpen": "Öğrenme istatistikleri panosunu aç",
"app.recording.startTitle": "Kaydı başlat",
"app.recording.stopTitle": "Kaydı durdur",
"app.recording.resumeTitle": "Kaydı sürdür",
@@ -694,31 +764,31 @@
"app.videoPreview.webcamPreviewLabel": "Kamera ön izlemesi",
"app.videoPreview.webcamSettingsTitle": "Kamera ayarları",
"app.videoPreview.webcamVirtualBackgroundLabel": "Sanal arka plan ayarları",
- "app.videoPreview.webcamVirtualBackgroundDisabledLabel": "Bu cihaz sanal arka planları desteklemiyor",
+ "app.videoPreview.webcamVirtualBackgroundDisabledLabel": "Bu aygıt sanal arka planları desteklemiyor",
"app.videoPreview.webcamNotFoundLabel": "Kamera bulunamadı",
"app.videoPreview.profileNotFoundLabel": "Desteklenen bir kamera profili yok",
"app.video.joinVideo": "Kamerayı paylaş",
- "app.video.connecting": "Web kamerası paylaşımı başlıyor ...",
- "app.video.leaveVideo": "Kamerası paylaşımını durdur",
+ "app.video.connecting": "Kamera paylaşımı başlatılıyor...",
+ "app.video.leaveVideo": "Kamera paylaşımını durdur",
"app.video.advancedVideo": "Gelişmiş ayarları aç",
- "app.video.iceCandidateError": "ICE adayı ekleme hatası",
+ "app.video.iceCandidateError": "ICE adayı eklenirken sorun çıktı",
"app.video.iceConnectionStateError": "Bağlantı kurulamadı (ICE 1107 hatası)",
"app.video.permissionError": "Kamera paylaşılırken sorun çıktı. Lütfen izinleri denetleyin",
"app.video.sharingError": "Kamera paylaşılırken sorun çıktı",
- "app.video.abortError": "Kameranızın kullanılmasını engelleyen bilinmeyen bir sorun oluştu",
+ "app.video.abortError": "Kameranız bilinmeyen bir sorun nedeniyle kullanılamıyor",
"app.video.overconstrainedError": "Kameranız bu kalite profilini desteklemiyor",
- "app.video.securityError": "Tarayıcınız kamera kullanımını devre dışı bıraktı. Farklı bir tarayıcı deneyin",
- "app.video.typeError": "Geçersiz kamera kalite profili. Yöneticiniz ile iletişime geçin",
+ "app.video.securityError": "Web tarayıcınızda kamera kullanımını devre dışı bırakılmış. Farklı bir web tarayıcısı deneyin",
+ "app.video.typeError": "Kamera kalitesi profili geçersiz. Yöneticiniz ile görüşün",
"app.video.notFoundError": "Kamera bulunamadı. Lütfen bağlı olduğunu denetleyin",
"app.video.notAllowed": "Kamera paylaşma izni verilmemiş, lütfen web tarayıcı izinlerini verdiğinizden emin olun",
- "app.video.notSupportedError": "Kamera görüntüsü yalnız güvenli kaynaklar ile paylaşabilir, SSL sertifikanızın geçerli olduğundan emin olun",
+ "app.video.notSupportedError": "Kamera görüntüsü yalnızca güvenli kaynaklar ile paylaşabilir, SSL sertifikanızın geçerli olduğundan emin olun",
"app.video.notReadableError": "Kamera görüntüsü alınamadı. Lütfen kamerayı başka bir uygulamanın kullanmadığından emin olun",
- "app.video.timeoutError": "Tarayıcı gerekli zaman içersinde yanıt vermedi.",
- "app.video.genericError": "Cihazda bilinmeyen bir hata oluştu ({0})",
- "app.video.mediaTimedOutError": "Web kamerası akışı kesildi. Tekrar paylaşmayı deneyin",
+ "app.video.timeoutError": "Tarayıcı zamanında yanıt vermedi.",
+ "app.video.genericError": "Aygıtta bilinmeyen bir sorun çıktı ({0})",
+ "app.video.mediaTimedOutError": "Kamera yayın akışı kesildi. Yeniden paylaşmayı deneyin",
"app.video.mediaFlowTimeout1020": "Ortam sunucuya ulaşamadı (hata 1020)",
- "app.video.suggestWebcamLock": "İzleyicilerin kameraları kilitlenmeye zorlansın mı?",
- "app.video.suggestWebcamLockReason": "(bu, toplantının kararlılığını artıracak)",
+ "app.video.suggestWebcamLock": "İzleyicilerin kameraları zorla kilitlensin mi?",
+ "app.video.suggestWebcamLockReason": "(bu seçenek toplantının kararlılığını artırır)",
"app.video.enable": "Etkinleştir",
"app.video.cancel": "Vazgeç",
"app.video.swapCam": "Değiştir",
@@ -726,22 +796,28 @@
"app.video.videoLocked": "Kamera paylaşımı kilitli",
"app.video.videoButtonDesc": "Kamerayı paylaş",
"app.video.videoMenu": "Görüntü menüsü",
- "app.video.videoMenuDisabled": "Video menüsü Web kamerası ayarlarında devre dışı",
+ "app.video.videoMenuDisabled": "Görüntü menüsü kamerası ayarlardan devre dışı bırakılmış",
"app.video.videoMenuDesc": "Görüntü menüsü listesini aç",
- "app.video.pagination.prevPage": "Önceki videoları gör",
- "app.video.pagination.nextPage": "Sonraki videoları gör",
- "app.video.clientDisconnected": "Bağlantı sorunları nedeniyle web kamerası paylaşılamıyor",
- "app.video.virtualBackground.none": "Hiçbiri",
+ "app.video.pagination.prevPage": "Önceki görüntülere bak",
+ "app.video.pagination.nextPage": "Sonraki görüntülere bak",
+ "app.video.clientDisconnected": "Bağlantı sorunları nedeniyle kamera görüntüsü paylaşılamadı",
+ "app.video.virtualBackground.none": "Yok",
"app.video.virtualBackground.blur": "Bulanık",
- "app.video.virtualBackground.genericError": "Kamera efekti uygulanamadı. Tekrar deneyin.",
- "app.video.virtualBackground.camBgAriaDesc": "Web kamerası sanal arka planını {0} olarak ayarlar",
+ "app.video.virtualBackground.home": "Ev",
+ "app.video.virtualBackground.board": "Tahta",
+ "app.video.virtualBackground.coffeeshop": "Kafe",
+ "app.video.virtualBackground.background": "Arka plan",
+ "app.video.virtualBackground.genericError": "Kamera etkisi uygulanamadı. Yeniden deneyin.",
+ "app.video.virtualBackground.camBgAriaDesc": "Kamera sanal arka planını {0} olarak ayarlar",
+ "app.video.camCapReached": "Daha fazla kamera paylaşamazsınız",
+ "app.video.meetingCamCapReached": "Toplantıda aynı anda kullanılabilecek kamera sayısı sınırına ulaşıldı",
"app.video.dropZoneLabel": "Buraya bırakın",
- "app.fullscreenButton.label": "{0} tam ekran yap",
- "app.fullscreenUndoButton.label": "{0} tam ekranı geri al",
- "app.switchButton.expandLabel": "Ekran paylaşım videosunu genişlet",
- "app.switchButton.shrinkLabel": "Ekran paylaşım videosunu küçült",
+ "app.fullscreenButton.label": "{0} tam ekrana geç",
+ "app.fullscreenUndoButton.label": "{0} tam ekrandan çık",
+ "app.switchButton.expandLabel": "Ekran paylaşımı görüntüsünü genişlet",
+ "app.switchButton.shrinkLabel": "Ekran paylaşımı görüntüsünü daralt",
"app.sfu.mediaServerConnectionError2000": "Ortam sunucusu ile bağlantı kurulamadı (hata 2000)",
- "app.sfu.mediaServerOffline2001": "Ortam sunucusu çevrimdışı. Lütfen daha sonra yeniden deneyin (hata 2001)",
+ "app.sfu.mediaServerOffline2001": "Ortam sunucusu çevrimdışı. Lütfen bir süre sonra yeniden deneyin (hata 2001)",
"app.sfu.mediaServerNoResources2002": "Ortam sunucunda kullanılabilecek kaynak yok (hata 2002)",
"app.sfu.mediaServerRequestTimeout2003": "Ortam sunucu istekleri zaman aşımına uğradı (hata 2003)",
"app.sfu.serverIceGatheringFailed2021": "Ortam sunucusu bağlantı adaylarını alamadı (ICE hatası 2021)",
@@ -750,11 +826,11 @@
"app.sfu.invalidSdp2202":"İstemci geçersiz bir ortam isteğinde bulundu (SDP hatası 2202)",
"app.sfu.noAvailableCodec2203": "Sunucu uygun bir ortam kodlayıcı/çözücüsü bulamadı (hata 2203)",
"app.meeting.endNotification.ok.label": "Tamam",
- "app.whiteboard.annotations.poll": "Anket sonuçları yayınlandı",
- "app.whiteboard.annotations.pollResult": "Anket Sonuçları",
- "app.whiteboard.annotations.noResponses": "Cevap yok",
+ "app.whiteboard.annotations.poll": "Oylama sonuçları yayınlandı",
+ "app.whiteboard.annotations.pollResult": "Oylama sonuçları",
+ "app.whiteboard.annotations.noResponses": "Yanıt yok",
"app.whiteboard.toolbar.tools": "Araçlar",
- "app.whiteboard.toolbar.tools.hand": "Sunum araçları",
+ "app.whiteboard.toolbar.tools.hand": "Kaydırma",
"app.whiteboard.toolbar.tools.pencil": "Kalem",
"app.whiteboard.toolbar.tools.rectangle": "Dikdörtgen",
"app.whiteboard.toolbar.tools.triangle": "Üçgen",
@@ -777,35 +853,40 @@
"app.whiteboard.toolbar.color.violet": "Menekşe",
"app.whiteboard.toolbar.color.magenta": "Fuşya",
"app.whiteboard.toolbar.color.silver": "Gümüş",
- "app.whiteboard.toolbar.undo": "Ek Açıklamayı Geri Al",
- "app.whiteboard.toolbar.clear": "Tüm Ek Açıklamaları Temizle",
- "app.whiteboard.toolbar.multiUserOn": "Çoklu kullanıcı modunu aç",
- "app.whiteboard.toolbar.multiUserOff": "Çoklu kullanıcı modunu kapat",
- "app.whiteboard.toolbar.palmRejectionOn": "Avuç içi reddetmeyi aç",
- "app.whiteboard.toolbar.palmRejectionOff": "Avuç içi reddetmeyi kapat",
+ "app.whiteboard.toolbar.undo": "Açıklamayı geri al",
+ "app.whiteboard.toolbar.clear": "Tüm açıklamaları temizle",
+ "app.whiteboard.toolbar.multiUserOn": "Çok kullanıcılı tahtayı aç",
+ "app.whiteboard.toolbar.multiUserOff": "Çok kullanıcılı tahtayı kapat",
+ "app.whiteboard.toolbar.palmRejectionOn": "Avuçla reddetmeyi aç",
+ "app.whiteboard.toolbar.palmRejectionOff": "Avuçla reddetmeyi kapat",
"app.whiteboard.toolbar.fontSize": "Yazı tipi listesi",
"app.whiteboard.toolbarAriaLabel": "Sunum araçları",
- "app.feedback.title": "Görüşmeden çıktınız",
+ "app.feedback.title": "Konferanstan çıktınız",
"app.feedback.subtitle": "BigBlueButton deneyiminizi bizimle paylaşın (isteğe bağlı)",
- "app.feedback.textarea": "BigBlueButton'ı nasıl daha iyi yapabiliriz?",
- "app.feedback.sendFeedback": "Geri Bildirim Gönder",
+ "app.feedback.textarea": "BigBlueButton uygulamasını nasıl daha iyi yapabiliriz?",
+ "app.feedback.sendFeedback": "Geri bildirim gönder",
"app.feedback.sendFeedbackDesc": "Bir geri bildirim gönderip toplantıdan çıkın",
- "app.videoDock.webcamMirrorLabel": "Yansıt",
- "app.videoDock.webcamMirrorDesc": "Seçilen web kamerasını yansıt",
+ "app.videoDock.webcamMirrorLabel": "Aynala",
+ "app.videoDock.webcamMirrorDesc": "Seçilen kamera görüntüsünü aynalar",
"app.videoDock.webcamFocusLabel": "Odakla",
- "app.videoDock.webcamFocusDesc": "Seçilmiş kameraya odaklan",
- "app.videoDock.webcamUnfocusLabel": "Uzaklaş",
- "app.videoDock.webcamUnfocusDesc": "Seçilmiş kameradan uzaklaş",
- "app.videoDock.autoplayBlockedDesc": "Size diğer kullanıcıların web kameralarını göstermek için izninize ihtiyacımız var.",
+ "app.videoDock.webcamFocusDesc": "Seçilmiş kamera görüntüsüne odaklanır",
+ "app.videoDock.webcamUnfocusLabel": "Odaktan kaldır",
+ "app.videoDock.webcamUnfocusDesc": "Seçilmiş kamera görüntüsünü odaktan kaldırır",
+ "app.videoDock.webcamPinLabel": "Sabitle",
+ "app.videoDock.webcamPinDesc": "Seçilmiş kamera görüntüsünü sabitler",
+ "app.videoDock.webcamUnpinLabel": "Sabitlemeyi kaldır",
+ "app.videoDock.webcamUnpinLabelDisabled": "Yalnızca sorumlular kullanıcıların sabitlemesini kaldırabilir",
+ "app.videoDock.webcamUnpinDesc": "Seçilmiş kamera görüntüsünün sabitlemesini kaldırır",
+ "app.videoDock.autoplayBlockedDesc": "Size diğer kullanıcıların kameralarını görüntüleyabilmemiz için izniniz gerekli.",
"app.videoDock.autoplayAllowLabel": "Kameraları görüntüle",
- "app.invitation.title": "Grup odası davetiyesi",
+ "app.invitation.title": "Grup odası çağrısı",
"app.invitation.confirm": "Çağır",
- "app.createBreakoutRoom.title": "Grup Odaları",
- "app.createBreakoutRoom.ariaTitle": "Grup Odalarını Gizle",
- "app.createBreakoutRoom.breakoutRoomLabel": "Grup Odaları {0}",
- "app.createBreakoutRoom.askToJoin": "Katılmayı İste",
+ "app.createBreakoutRoom.title": "Grup odaları",
+ "app.createBreakoutRoom.ariaTitle": "Grup odalarını gizle",
+ "app.createBreakoutRoom.breakoutRoomLabel": "Grup odaları {0}",
+ "app.createBreakoutRoom.askToJoin": "Katılma isteğinde bulun",
"app.createBreakoutRoom.generatingURL": "Adres oluşturuluyor",
- "app.createBreakoutRoom.generatingURLMessage": "Seçilen çalışma odası için bir katılım URL'si oluşturuyoruz. Birkaç saniye sürebilir...",
+ "app.createBreakoutRoom.generatingURLMessage": "Seçilmiş grup odasının katılım adresi oluşturuluyor. Birkaç saniye sürebilir...",
"app.createBreakoutRoom.duration": "Süre {0}",
"app.createBreakoutRoom.room": "Oda {0}",
"app.createBreakoutRoom.notAssigned": "Atanmamış ({0})",
@@ -818,8 +899,12 @@
"app.createBreakoutRoom.numberOfRooms": "Oda sayısı",
"app.createBreakoutRoom.durationInMinutes": "Süre (dakika)",
"app.createBreakoutRoom.randomlyAssign": "Rastgele atama",
- "app.createBreakoutRoom.randomlyAssignDesc": "Kullanıcıları çalışma odalarına rastgele atar",
+ "app.createBreakoutRoom.randomlyAssignDesc": "Kullanıcıları grup odalarına rastgele atar",
+ "app.createBreakoutRoom.resetAssignments": "Atamaları sıfırla",
+ "app.createBreakoutRoom.resetAssignmentsDesc": "Tüm grup odası kullanıcı atamalarını sıfırla",
"app.createBreakoutRoom.endAllBreakouts": "Tüm grup odalarını kapat",
+ "app.createBreakoutRoom.chatTitleMsgAllRooms": "tüm odalar",
+ "app.createBreakoutRoom.msgToBreakoutsSent": "İleti {0} grup odasına gönderildi",
"app.createBreakoutRoom.roomName": "{0} (Oda - {1})",
"app.createBreakoutRoom.doneLabel": "Tamamlandı",
"app.createBreakoutRoom.nextLabel": "Sonraki",
@@ -828,94 +913,153 @@
"app.createBreakoutRoom.addParticipantLabel": "+ Katılımcı ekle",
"app.createBreakoutRoom.freeJoin": "Kullanıcılar katılacakları grup odasını seçebilsin",
"app.createBreakoutRoom.leastOneWarnBreakout": "Bir grup odasına en az bir kullanıcı atamalısınız..",
- "app.createBreakoutRoom.minimumDurationWarnBreakout": "Çalışma odası için minimum süre {0} dakikadır.",
+ "app.createBreakoutRoom.minimumDurationWarnBreakout": "En kısa grup odası süresi {0} dakikadır.",
"app.createBreakoutRoom.modalDesc": "İpucu: Herhangi bir grup odasına atamak için kullanıcıların adını sürükleyip bırakabilirsiniz.",
"app.createBreakoutRoom.roomTime": "{0} dakika",
"app.createBreakoutRoom.numberOfRoomsError": "Oda sayısı geçersiz.",
- "app.createBreakoutRoom.duplicatedRoomNameError": "Birden fazla aynı ada sahip oda olamaz.",
+ "app.createBreakoutRoom.duplicatedRoomNameError": "Odaların adı aynı olamaz.",
"app.createBreakoutRoom.emptyRoomNameError": "Oda adı boş olamaz.",
- "app.createBreakoutRoom.roomNameInputDesc": "Çalışma odasının ismini güncelle",
+ "app.createBreakoutRoom.setTimeInMinutes": "Süreyi ayarla (dakika)",
+ "app.createBreakoutRoom.setTimeLabel": "Uygula",
+ "app.createBreakoutRoom.setTimeCancel": "Vazgeç",
+ "app.createBreakoutRoom.setTimeHigherThanMeetingTimeError": "Grup odalarının süresi, kalan toplantı süresini aşamaz.",
+ "app.createBreakoutRoom.roomNameInputDesc": "Grup odasının adını günceller",
"app.externalVideo.start": "Yeni bir görüntü paylaş",
"app.externalVideo.title": "Dışarıdan bir görüntü paylaş",
- "app.externalVideo.input": "Dış Görüntü Adresi",
- "app.externalVideo.urlInput": "Görüntü Adresi Ekle",
+ "app.externalVideo.input": "Dışarıdaki görüntünün adresi",
+ "app.externalVideo.urlInput": "Görüntü adresi ekle",
"app.externalVideo.urlError": "Bu görüntü adresi desteklenmiyor",
"app.externalVideo.close": "Kapat",
- "app.externalVideo.autoPlayWarning": "Medya eşleştirmesini etkinleştirmek için videoyu oynatın",
- "app.externalVideo.refreshLabel": "Video Oynatıcısını Yenile",
- "app.externalVideo.fullscreenLabel": "Video Oynatıcı",
- "app.externalVideo.noteLabel": "Not: Paylaşılan harici videolar kayıtta görünmeyecektir. YouTube, Vimeo, Instructure Media, Twitch, Dailymotion ve medya dosyası URL'leri (ör. https://ornek.com/xy.mp4) desteklenir.",
- "app.actionsBar.actionsDropdown.shareExternalVideo": "Dışarıdan bir görüntü paylaşın",
- "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Dış görüntü paylaşımını durdur",
- "app.iOSWarning.label": "Lütfen iOS 12.2 ya da üzerindeki bir sürüme yükseltin",
- "app.legacy.unsupportedBrowser": "Tam olarak desteklenmeyen bir tarayıcı kullanıyorsunuz. Lütfen tam destek için {0} veya {1} kullanın.",
- "app.legacy.upgradeBrowser": "Desteklenen bir tarayıcının eski bir sürümünü kullanıyor gibi görünüyorsunuz. Lütfen tam destek için tarayıcınızı güncelleyin.",
+ "app.externalVideo.autoPlayWarning": "Ortam eşleştirmesini etkinleştirmek için görüntüyü oynatın",
+ "app.externalVideo.refreshLabel": "Görüntü oynatıcıyı yenile",
+ "app.externalVideo.fullscreenLabel": "Görüntü oynatıcı",
+ "app.externalVideo.noteLabel": "Not: Dışarıdan paylaşılan görüntüler kayıtta görüntülenmez. YouTube, Vimeo, Instructure Media, Twitch, Dailymotion ve ortam dosyası adresleri (https://ornek.com/xy.mp4 gibi) desteklenir.",
+ "app.externalVideo.subtitlesOn": "Kapat",
+ "app.externalVideo.subtitlesOff": "Aç (olabiliyorsa)",
+ "app.actionsBar.actionsDropdown.shareExternalVideo": "Dışarıdan bir görüntü paylaş",
+ "app.actionsBar.actionsDropdown.stopShareExternalVideo": "Dışarından görüntü paylaşımını durdur",
+ "app.iOSWarning.label": "Lütfen iOS 12.2 ya da üzerindeki bir sürüm kullanın",
+ "app.legacy.unsupportedBrowser": "Desteklenmeyen bir web tarayıcı kullanıyorsunuz. Lütfen tam destek almak için {0} ya da {1} kullanın.",
+ "app.legacy.upgradeBrowser": "Desteklenen bir web tarayıcının eski bir sürümünü kullanıyor gibi görünüyorsunuz. Lütfen tam destek almak için web tarayıcınızı güncelleyin.",
"app.legacy.criosBrowser": "Lütfen iOS üzerinde tam destek almak için Safari kullanın.",
"app.debugWindow.windowTitle": "Hata ayıklama",
- "app.debugWindow.form.userAgentLabel": "Kullanıcı Aracısı",
+ "app.debugWindow.form.userAgentLabel": "Kullanıcı uygulaması",
"app.debugWindow.form.button.copy": "Kopyala",
- "app.debugWindow.form.enableAutoarrangeLayoutLabel": "Otomatik Düzenleme Yerleşimini Etkinleştir",
- "app.debugWindow.form.enableAutoarrangeLayoutDescription": "(web kamerası alanını sürüklerseniz veya yeniden boyutlandırırsanız devre dışı bırakılır)",
- "app.debugWindow.form.chatLoggerLabel": "Sohbet Kaydedici Düzeylerini Test Edin",
+ "app.debugWindow.form.enableAutoarrangeLayoutLabel": "Ekran otomatik düzenlensin",
+ "app.debugWindow.form.enableAutoarrangeLayoutDescription": "(kamera alanını sürükler ya da yeniden boyutlandırırsanız devre dışı bırakılır)",
+ "app.debugWindow.form.chatLoggerLabel": "Sohbet kaydedici düzeylerini sına",
"app.debugWindow.form.button.apply": "Uygula",
"app.layout.style.custom": "Özel",
- "app.layout.style.smart": "Akıllı Yerleşim",
- "app.layout.style.presentationFocus": "Sunuma Odakla",
- "app.layout.style.videoFocus": "Videoya Odakla",
- "app.layout.style.customPush": "Özel (düzeni herkese uygula)",
- "app.layout.style.smartPush": "Akıllı Yerleşim (düzeni herkese uygula)",
- "app.layout.style.presentationFocusPush": "Sunuma Odaklanın (düzeni herkese uygula)",
- "app.layout.style.videoFocusPush": "Videoya Odaklan (düzeni herkese uygula)",
+ "app.layout.style.smart": "Akıllı ekran düzeni",
+ "app.layout.style.presentationFocus": "Sunuma odaklan",
+ "app.layout.style.videoFocus": "Görüntüye odaklan",
+ "app.layout.style.customPush": "Özel ekran düzeni (herkese uygulansın)",
+ "app.layout.style.smartPush": "Akıllı ekran düzeni (herkese uygulansın)",
+ "app.layout.style.presentationFocusPush": "Sunuma odaklanmış düzen (herkese uygulansın)",
+ "app.layout.style.videoFocusPush": "Görüntüye odaklanmış düzen (herkese uygulansın)",
"playback.button.about.aria": "Hakkında",
- "playback.button.clear.aria": "Aramayı Temizle",
- "playback.button.close.aria": "Modu kapat",
- "playback.button.fullscreen.aria": "Tam ekran içerik",
- "playback.button.restore.aria": "İçeriği geri yükle",
- "playback.button.search.aria": "Ara",
+ "playback.button.clear.aria": "Aramayı temizle",
+ "playback.button.close.aria": "Üste açılan pencereyi kapat",
+ "playback.button.fullscreen.aria": "İçeriği tam ekranda görüntüle",
+ "playback.button.restore.aria": "İçeriği önceki boyutuna döndür",
+ "playback.button.search.aria": "Arama",
"playback.button.section.aria": "Yan bölüm",
"playback.button.swap.aria": "İçeriği değiştir",
+ "playback.button.theme.aria": "Temayı değiştir",
"playback.error.wrapper.aria": "Hata alanı",
"playback.loader.wrapper.aria": "Yükleyici alanı",
"playback.player.wrapper.aria": "Oynatıcı alanı",
- "playback.player.chat.message.poll.name": "Anket sonucu",
+ "playback.player.about.modal.shortcuts.title": "Kısayollar",
+ "playback.player.about.modal.shortcuts.alt": "Alt",
+ "playback.player.about.modal.shortcuts.shift": "Shift",
+ "playback.player.about.modal.shortcuts.fullscreen": "Tam ekranı aç/kapat",
+ "playback.player.about.modal.shortcuts.play": "Oynat/Duraklat",
+ "playback.player.about.modal.shortcuts.section": "Yan bölümü aç/kapat",
+ "playback.player.about.modal.shortcuts.seek.backward": "Geriye atla",
+ "playback.player.about.modal.shortcuts.seek.forward": "İleri atla",
+ "playback.player.about.modal.shortcuts.skip.next": "Sonraki slayt",
+ "playback.player.about.modal.shortcuts.skip.previous": "Önceki slayt",
+ "playback.player.about.modal.shortcuts.swap": "İçeriği değiştir",
+ "playback.player.chat.message.poll.name": "Oylama sonucu",
"playback.player.chat.message.poll.question": "Soru",
"playback.player.chat.message.poll.options": "Seçenekler",
"playback.player.chat.message.poll.option.yes": "Evet",
"playback.player.chat.message.poll.option.no": "Hayır",
- "playback.player.chat.message.poll.option.abstention": "Çekimser",
+ "playback.player.chat.message.poll.option.abstention": "Kararsız",
"playback.player.chat.message.poll.option.true": "Doğru",
"playback.player.chat.message.poll.option.false": "Yanlış",
+ "playback.player.chat.message.video.name": "Dışarıdan görüntü",
"playback.player.chat.wrapper.aria": "Sohbet alanı",
- "playback.player.notes.wrapper.aria": "Notlar alanı",
+ "playback.player.notes.wrapper.aria": "Not alanı",
"playback.player.presentation.wrapper.aria": "Sunum alanı",
- "playback.player.screenshare.wrapper.aria": "Ekran paylaşım alanı",
- "playback.player.search.modal.title": "Ara",
+ "playback.player.screenshare.wrapper.aria": "Ekran paylaşımı alanı",
+ "playback.player.search.modal.title": "Arama",
"playback.player.search.modal.subtitle": "Sunum slaytları içeriğini bul",
- "playback.player.thumbnails.wrapper.aria": "Küçük resim alanı",
+ "playback.player.thumbnails.wrapper.aria": "Küçük görsel alanı",
+ "playback.player.webcams.wrapper.aria": "Kameralar alanı",
+ "app.learningDashboard.dashboardTitle": "Öğrenme istatistikleri panosu",
+ "app.learningDashboard.downloadSessionDataLabel": "Oturum verilerini indir",
+ "app.learningDashboard.lastUpdatedLabel": "Son güncellenme",
+ "app.learningDashboard.sessionDataDownloadedLabel": "İndirildi!",
+ "app.learningDashboard.shareButton": "Diğerleriyle paylaş",
+ "app.learningDashboard.shareLinkCopied": "Bağlantı kopyalandı!",
"app.learningDashboard.user": "Kullanıcı",
- "app.learningDashboard.indicators.meetingStatusEnded": "Sonlandı",
- "app.learningDashboard.indicators.meetingStatusActive": "Aktif",
- "app.learningDashboard.indicators.usersOnline": "Aktif Kullanıcılar",
- "app.learningDashboard.indicators.usersTotal": "Katılımcıların Toplam Sayısı",
- "app.learningDashboard.indicators.polls": "Anketler",
- "app.learningDashboard.indicators.activityScore": "Etkinlik Puanı",
+ "app.learningDashboard.indicators.meetingStatusEnded": "Sona erdi",
+ "app.learningDashboard.indicators.meetingStatusActive": "Etkin",
+ "app.learningDashboard.indicators.usersOnline": "Etkin kullanıcı sayısı",
+ "app.learningDashboard.indicators.usersTotal": "Toplam katılımcı sayısı",
+ "app.learningDashboard.indicators.polls": "Oylamalar",
+ "app.learningDashboard.indicators.timeline": "Zaman çizelgesi",
+ "app.learningDashboard.indicators.activityScore": "Etkinlik puanı",
"app.learningDashboard.indicators.duration": "Süre",
- "app.learningDashboard.usersTable.title": "Genel bakış",
- "app.learningDashboard.usersTable.colOnline": "Çevrim İçi Süre",
- "app.learningDashboard.usersTable.colTalk": "Konuşma Süresi",
- "app.learningDashboard.usersTable.colWebcam": "Web Kamera Süresi",
- "app.learningDashboard.usersTable.colMessages": "Mesajlar",
+ "app.learningDashboard.userDetails.startTime": "Başlangıç zamanı",
+ "app.learningDashboard.userDetails.endTime": "Bitiş zamanı",
+ "app.learningDashboard.userDetails.joined": "Katıldı",
+ "app.learningDashboard.userDetails.category": "Kategori",
+ "app.learningDashboard.userDetails.average": "Ortalama",
+ "app.learningDashboard.userDetails.activityPoints": "Etkinlik puanları",
+ "app.learningDashboard.userDetails.poll": "Oylama",
+ "app.learningDashboard.userDetails.response": "Yanıt",
+ "app.learningDashboard.userDetails.mostCommonAnswer": "En çok verilen yanıt",
+ "app.learningDashboard.userDetails.anonymousAnswer": "Anonim oylama",
+ "app.learningDashboard.usersTable.title": "Özet",
+ "app.learningDashboard.usersTable.colOnline": "Çevrim içi süresi",
+ "app.learningDashboard.usersTable.colTalk": "Konuşma süresi",
+ "app.learningDashboard.usersTable.colWebcam": "Kamera süresi",
+ "app.learningDashboard.usersTable.colMessages": "İletiler",
"app.learningDashboard.usersTable.colEmojis": "Emojiler",
- "app.learningDashboard.usersTable.colRaiseHands": "El Kaldırma",
- "app.learningDashboard.usersTable.colActivityScore": "Etkinlik Puanı",
+ "app.learningDashboard.usersTable.colRaiseHands": "El kaldırma",
+ "app.learningDashboard.usersTable.colActivityScore": "Etkinlik puanı",
"app.learningDashboard.usersTable.colStatus": "Durum",
- "app.learningDashboard.usersTable.userStatusOnline": "Çevrim İçi",
- "app.learningDashboard.usersTable.userStatusOffline": "Çevrim Dışı",
- "app.learningDashboard.usersTable.noUsers": "Henüz kullanıcı yok",
- "app.learningDashboard.pollsTable.anonymousAnswer": "İsimsiz Anket (cevaplar son satırda)",
- "app.learningDashboard.pollsTable.anonymousRowName": "İsimsiz",
- "app.learningDashboard.errors.invalidToken": "Geçersiz oturum anahtarı.",
- "app.learningDashboard.errors.dataUnavailable": "Veri artık erişilebilir değil"
+ "app.learningDashboard.usersTable.userStatusOnline": "Çevrimiçi",
+ "app.learningDashboard.usersTable.userStatusOffline": "Çevrimdışı",
+ "app.learningDashboard.usersTable.noUsers": "Henüz bir kullanıcı yok",
+ "app.learningDashboard.usersTable.name": "Ad",
+ "app.learningDashboard.usersTable.moderator": "Sorumlu",
+ "app.learningDashboard.usersTable.pollVotes": "Oylama sonuçları",
+ "app.learningDashboard.usersTable.join": "Katıl",
+ "app.learningDashboard.usersTable.left": "Ayrıl",
+ "app.learningDashboard.usersTable.notAvailable": "Yok",
+ "app.learningDashboard.pollsTable.title": "Oylamalar",
+ "app.learningDashboard.pollsTable.anonymousAnswer": "Anonim oylama (yanıtlar son satırda)",
+ "app.learningDashboard.pollsTable.anonymousRowName": "Anonim",
+ "app.learningDashboard.pollsTable.noPollsCreatedHeading": "Henüz bir oylama oluşturulmamış",
+ "app.learningDashboard.pollsTable.noPollsCreatedMessage": "Kullanıcılara bir oylama gönderildiğinde, sonuçları bu listede görüntülenir.",
+ "app.learningDashboard.statusTimelineTable.title": "Zaman çizelgesi",
+ "app.learningDashboard.statusTimelineTable.thumbnail": "Sunum küçük görseli",
+ "app.learningDashboard.errors.invalidToken": "Oturum kodu geçersiz",
+ "app.learningDashboard.errors.dataUnavailable": "Veriler artık kullanılamıyor",
+ "mobileApp.portals.list.empty.addFirstPortal.label": "Yukarıdaki düğmeyi kullanarak ilk portalinizi ekleyin.",
+ "mobileApp.portals.list.empty.orUseOurDemoServer.label": "ya da tanıtım sunucumuzu kullanın.",
+ "mobileApp.portals.list.add.button.label": "Portal ekle",
+ "mobileApp.portals.fields.name.label": "Portal adı",
+ "mobileApp.portals.fields.name.placeholder": "BigBlueButton tanıtımı",
+ "mobileApp.portals.fields.url.label": "Sunucu adresi",
+ "mobileApp.portals.addPortalPopup.confirm.button.label": "Kaydet",
+ "mobileApp.portals.drawerNavigation.button.label": "Portaller",
+ "mobileApp.portals.addPortalPopup.validation.emptyFields": "Zorunlu alanlar",
+ "mobileApp.portals.addPortalPopup.validation.portalNameAlreadyExists": "Adı başkası kullanıyor",
+ "mobileApp.portals.addPortalPopup.validation.urlInvalid": "Sayfa yüklenirken bir sorun çıktı. Adresi ve ağ bağlantınızı denetleyin"
}
diff --git a/bigbluebutton-html5/public/locales/zh_TW.json b/bigbluebutton-html5/public/locales/zh_TW.json
index 389a7d61e0..d66ab285b9 100644
--- a/bigbluebutton-html5/public/locales/zh_TW.json
+++ b/bigbluebutton-html5/public/locales/zh_TW.json
@@ -516,8 +516,6 @@
"app.breakoutJoinConfirmation.freeJoinMessage": "選擇並加入分組會議室",
"app.breakoutTimeRemainingMessage": "分組會議室時間剩餘: {0}",
"app.breakoutWillCloseMessage": "時間結束,分組會議室將很快關閉。",
- "app.breakout.dropdown.manageDuration": "管理持續時間",
- "app.breakout.dropdown.destroyAll": "結束分組討論",
"app.breakout.dropdown.options": "分組選項",
"app.calculatingBreakoutTimeRemaining": "計算剩餘時間",
"app.audioModal.ariaTitle": "加入音訊模式",
diff --git a/build/packages-template/bbb-config/after-install.sh b/build/packages-template/bbb-config/after-install.sh
index ec450f49eb..9dfe0e12c7 100644
--- a/build/packages-template/bbb-config/after-install.sh
+++ b/build/packages-template/bbb-config/after-install.sh
@@ -128,12 +128,10 @@ fi
# set full BBB version in settings.yml so it can be displayed in the client
BBB_RELEASE_FILE=/etc/bigbluebutton/bigbluebutton-release
BBB_HTML5_SETTINGS_FILE=/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
-if [[ -f $BBB_RELEASE_FILE ]] ; then
- BBB_FULL_VERSION=$(cat $BBB_RELEASE_FILE | sed -n '/^BIGBLUEBUTTON_RELEASE/{s/.*=//;p}' )
- echo "setting BBB_FULL_VERSION=$BBB_FULL_VERSION in $BBB_HTML5_SETTINGS_FILE "
- if [[ -f $BBB_HTML5_SETTINGS_FILE ]] ; then
- yq w -i $BBB_HTML5_SETTINGS_FILE public.app.bbbServerVersion $BBB_FULL_VERSION
- fi
+if [ -f $BBB_RELEASE_FILE ] && [ -f $BBB_HTML5_SETTINGS_FILE ]; then
+ BBB_FULL_VERSION=$(cat $BBB_RELEASE_FILE | sed -n '/^BIGBLUEBUTTON_RELEASE/{s/.*=//;p}' | tail -n 1)
+ echo "setting public.app.bbbServerVersion: $BBB_FULL_VERSION in $BBB_HTML5_SETTINGS_FILE "
+ yq w -i $BBB_HTML5_SETTINGS_FILE public.app.bbbServerVersion $BBB_FULL_VERSION
fi
# Fix permissions for logging
diff --git a/build/packages-template/bbb-etherpad/build.sh b/build/packages-template/bbb-etherpad/build.sh
index 3d06f38224..3c5e491565 100755
--- a/build/packages-template/bbb-etherpad/build.sh
+++ b/build/packages-template/bbb-etherpad/build.sh
@@ -49,6 +49,7 @@ npm install ./ep_redis_publisher-*.tgz
npm install ep_cursortrace
npm install ep_disable_chat
+npm install --no-save --legacy-peer-deps ep_auth_session
mkdir -p staging/usr/share/etherpad-lite
diff --git a/build/packages-template/bbb-etherpad/notes.nginx b/build/packages-template/bbb-etherpad/notes.nginx
index de53f0b90d..130d1d88f6 100644
--- a/build/packages-template/bbb-etherpad/notes.nginx
+++ b/build/packages-template/bbb-etherpad/notes.nginx
@@ -22,6 +22,16 @@ location /pad/p/ {
auth_request_set $auth_status $upstream_status;
}
+location /pad/auth_session {
+ rewrite /pad/auth_session(.*) /auth_session$1 break;
+ proxy_pass http://127.0.0.1:9001/;
+ proxy_pass_header Server;
+ proxy_set_header Host $host;
+ proxy_buffering off;
+ auth_request /bigbluebutton/connection/checkAuthorization;
+ auth_request_set $auth_status $upstream_status;
+}
+
location /pad {
rewrite /pad/(.*) /$1 break;
rewrite ^/pad$ /pad/ permanent;
diff --git a/build/packages-template/bbb-html5/after-install.sh b/build/packages-template/bbb-html5/after-install.sh
index e96d8df68f..733a48ce92 100644
--- a/build/packages-template/bbb-html5/after-install.sh
+++ b/build/packages-template/bbb-html5/after-install.sh
@@ -38,13 +38,12 @@ fi
# set full BBB version in settings.yml so it can be displayed in the client
BBB_RELEASE_FILE=/etc/bigbluebutton/bigbluebutton-release
BBB_HTML5_SETTINGS_FILE=/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
-if [[ -f $BBB_RELEASE_FILE ]] ; then
- BBB_FULL_VERSION=$(cat $BBB_RELEASE_FILE | sed -n '/^BIGBLUEBUTTON_RELEASE/{s/.*=//;p}' )
- echo "setting BBB_FULL_VERSION=$BBB_FULL_VERSION in $BBB_HTML5_SETTINGS_FILE "
- if [[ -f $BBB_HTML5_SETTINGS_FILE ]] ; then
- yq w -i $BBB_HTML5_SETTINGS_FILE public.app.bbbServerVersion $BBB_FULL_VERSION
- fi
-fi
+if [ -f $BBB_RELEASE_FILE ] && [ -f $BBB_HTML5_SETTINGS_FILE ]; then
+ BBB_FULL_VERSION=$(cat $BBB_RELEASE_FILE | sed -n '/^BIGBLUEBUTTON_RELEASE/{s/.*=//;p}' | tail -n 1)
+ echo "setting public.app.bbbServerVersion: $BBB_FULL_VERSION in $BBB_HTML5_SETTINGS_FILE "
+ yq w -i $BBB_HTML5_SETTINGS_FILE public.app.bbbServerVersion $BBB_FULL_VERSION
+fi
+
# Remove old overrides
if [ -f /etc/systemd/system/mongod.service.d/override-mongo.conf ] \
diff --git a/record-and-playback/core/Gemfile b/record-and-playback/core/Gemfile
index 9b6b5a3c1b..b1506ead16 100644
--- a/record-and-playback/core/Gemfile
+++ b/record-and-playback/core/Gemfile
@@ -26,7 +26,7 @@ gem 'journald-logger', '~> 3.0'
gem 'jwt', '~> 2.2'
gem 'locale', '~> 2.1'
gem 'loofah', '~> 2.3'
-gem 'nokogiri', '~> 1.13', '>= 1.13.4'
+gem 'nokogiri', '~> 1.13', '>= 1.13.6'
gem 'open4', '~> 1.3'
gem 'rb-inotify', '~> 0.10'
gem 'redis', '~> 4.1'
diff --git a/record-and-playback/core/Gemfile.lock b/record-and-playback/core/Gemfile.lock
index 8b62e5f3a3..f3ba6d3524 100644
--- a/record-and-playback/core/Gemfile.lock
+++ b/record-and-playback/core/Gemfile.lock
@@ -2,7 +2,7 @@ GEM
remote: https://rubygems.org/
specs:
absolute_time (1.0.0)
- activesupport (5.2.7)
+ activesupport (5.2.8)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
@@ -24,7 +24,7 @@ GEM
journald-native (1.0.12)
jwt (2.3.0)
locale (2.1.3)
- loofah (2.16.0)
+ loofah (2.18.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mini_portile2 (2.8.0)
@@ -33,16 +33,16 @@ GEM
multi_json (1.15.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
- nokogiri (1.13.4)
+ nokogiri (1.13.6)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
open4 (1.3.4)
optimist (3.0.1)
parallel (1.22.1)
- parser (3.1.1.0)
+ parser (3.1.2.0)
ast (~> 2.4.1)
racc (1.6.0)
- rack (2.2.3)
+ rack (2.2.3.1)
rack-protection (2.2.0)
rack
rainbow (3.1.1)
@@ -95,7 +95,7 @@ DEPENDENCIES
locale (~> 2.1)
loofah (~> 2.3)
minitest (~> 5.14.1)
- nokogiri (~> 1.13, >= 1.13.4)
+ nokogiri (~> 1.13, >= 1.13.6)
open4 (~> 1.3)
optimist
rake (>= 12.3, < 14)
diff --git a/record-and-playback/core/scripts/rap-enqueue.rb b/record-and-playback/core/scripts/rap-enqueue.rb
index 691f26216a..16a5abcbff 100755
--- a/record-and-playback/core/scripts/rap-enqueue.rb
+++ b/record-and-playback/core/scripts/rap-enqueue.rb
@@ -1,4 +1,4 @@
-#!/usr/bin/ruby
+#!/usr/bin/env ruby
# frozen_string_literal: true
# Copyright © 2021 BigBlueButton Inc. and by respective authors.
@@ -18,10 +18,14 @@
# You should have received a copy of the GNU Lesser General Public License
# along with BigBlueButton. If not, see .
+require 'rubygems'
+
+ENV['BUNDLE_GEMFILE'] = File.join(__dir__, '../Gemfile')
+require 'bundler/setup'
+
require_relative '../lib/recordandplayback'
require 'recordandplayback/workers'
-require 'rubygems'
require 'yaml'
require 'resque'