Merge pull request #6 from havfo/develop

Sync with upstream Develop
auto_join_3.3
Saša Davidović 2020-05-14 08:26:02 +02:00 committed by GitHub
commit 77e807143b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 811 additions and 393 deletions

View File

@ -302,6 +302,16 @@ export default class RoomClient
switch (key) switch (key)
{ {
case String.fromCharCode(37):
{
this._spotlights.setPrevAsSelected();
break;
}
case String.fromCharCode(39):
{
this._spotlights.setNextAsSelected();
break;
}
case 'A': // Activate advanced mode case 'A': // Activate advanced mode
{ {
store.dispatch(settingsActions.toggleAdvancedMode()); store.dispatch(settingsActions.toggleAdvancedMode());

View File

@ -12,6 +12,7 @@ export default class Spotlights extends EventEmitter
this._signalingSocket = signalingSocket; this._signalingSocket = signalingSocket;
this._maxSpotlights = maxSpotlights; this._maxSpotlights = maxSpotlights;
this._peerList = []; this._peerList = [];
this._unmutablePeerList = [];
this._selectedSpotlights = []; this._selectedSpotlights = [];
this._currentSpotlights = []; this._currentSpotlights = [];
this._started = false; this._started = false;
@ -45,6 +46,90 @@ export default class Spotlights extends EventEmitter
} }
} }
setNextAsSelected()
{
let peerId = null;
if (this._selectedSpotlights.length > 0)
{
peerId = this._selectedSpotlights[0];
}
else if (this._unmutablePeerList.length > 0)
{
peerId = this._unmutablePeerList[0];
}
if (peerId != null && this._currentSpotlights.length < this._unmutablePeerList.length)
{
const oldIndex = this._unmutablePeerList.indexOf(peerId);
let index = oldIndex;
index++;
do
{
if (index >= this._unmutablePeerList.length)
{
index = 0;
}
const newSelectedPeer = this._unmutablePeerList[index];
if (!this._currentSpotlights.includes(newSelectedPeer))
{
this.setPeerSpotlight(newSelectedPeer);
break;
}
index++;
if (index === oldIndex)
{
break;
}
} while (true);
}
}
setPrevAsSelected()
{
let peerId = null;
if (this._selectedSpotlights.length > 0)
{
peerId = this._selectedSpotlights[0];
}
else if (this._unmutablePeerList.length > 0)
{
peerId = this._unmutablePeerList[0];
}
if (peerId != null && this._currentSpotlights.length < this._unmutablePeerList.length)
{
const oldIndex = this._unmutablePeerList.indexOf(peerId);
let index = oldIndex;
index--;
do
{
if (index < 0)
{
index = this._unmutablePeerList.length - 1;
}
const newSelectedPeer = this._unmutablePeerList[index];
if (!this._currentSpotlights.includes(newSelectedPeer))
{
this.setPeerSpotlight(newSelectedPeer);
break;
}
index--;
if (index === oldIndex)
{
break;
}
} while (true);
}
}
setPeerSpotlight(peerId) setPeerSpotlight(peerId)
{ {
logger.debug('setPeerSpotlight() [peerId:"%s"]', peerId); logger.debug('setPeerSpotlight() [peerId:"%s"]', peerId);
@ -114,6 +199,7 @@ export default class Spotlights extends EventEmitter
logger.debug('_handlePeer() | adding peer [peerId: "%s"]', id); logger.debug('_handlePeer() | adding peer [peerId: "%s"]', id);
this._peerList.push(id); this._peerList.push(id);
this._unmutablePeerList.push(id);
if (this._started) if (this._started)
this._spotlightsUpdated(); this._spotlightsUpdated();
@ -126,6 +212,7 @@ export default class Spotlights extends EventEmitter
'room "peerClosed" event [peerId:%o]', id); 'room "peerClosed" event [peerId:%o]', id);
this._peerList = this._peerList.filter((peer) => peer !== id); this._peerList = this._peerList.filter((peer) => peer !== id);
this._unmutablePeerList = this._unmutablePeerList.filter((peer) => peer !== id);
this._selectedSpotlights = this._selectedSpotlights.filter((peer) => peer !== id); this._selectedSpotlights = this._selectedSpotlights.filter((peer) => peer !== id);

View File

@ -290,6 +290,28 @@ const Me = (props) =>
'margin' : spacing 'margin' : spacing
}; };
let audioScore = null;
if (micProducer && micProducer.score)
{
audioScore =
micProducer.score.reduce(
(prev, curr) =>
(prev.score < curr.score ? prev : curr)
);
}
let videoScore = null;
if (webcamProducer && webcamProducer.score)
{
videoScore =
webcamProducer.score.reduce(
(prev, curr) =>
(prev.score < curr.score ? prev : curr)
);
}
return ( return (
<React.Fragment> <React.Fragment>
<div <div
@ -378,195 +400,207 @@ const Me = (props) =>
<React.Fragment> <React.Fragment>
<Tooltip title={micTip} placement='left'> <Tooltip title={micTip} placement='left'>
{ smallContainer ? { smallContainer ?
<IconButton <div>
aria-label={intl.formatMessage({ <IconButton
id : 'device.muteAudio', aria-label={intl.formatMessage({
defaultMessage : 'Mute audio' id : 'device.muteAudio',
})} defaultMessage : 'Mute audio'
className={classes.smallContainer} })}
disabled={!me.canSendMic || me.audioInProgress} className={classes.smallContainer}
color={micState === 'on' ? 'primary' : 'secondary'} disabled={!me.canSendMic || me.audioInProgress}
size='small' color={micState === 'on' ? 'primary' : 'secondary'}
onClick={() => size='small'
{ onClick={() =>
if (micState === 'off') {
roomClient.enableMic(); if (micState === 'off')
else if (micState === 'on') roomClient.enableMic();
roomClient.muteMic(); else if (micState === 'on')
else roomClient.muteMic();
roomClient.unmuteMic(); else
}} roomClient.unmuteMic();
> }}
{ micState === 'on' ? >
<MicIcon /> { micState === 'on' ?
: <MicIcon />
<MicOffIcon /> :
} <MicOffIcon />
</IconButton> }
</IconButton>
</div>
: :
<Fab <div>
aria-label={intl.formatMessage({ <Fab
id : 'device.muteAudio', aria-label={intl.formatMessage({
defaultMessage : 'Mute audio' id : 'device.muteAudio',
})} defaultMessage : 'Mute audio'
className={classes.fab} })}
disabled={!me.canSendMic || me.audioInProgress} className={classes.fab}
color={micState === 'on' ? 'default' : 'secondary'} disabled={!me.canSendMic || me.audioInProgress}
size='large' color={micState === 'on' ? 'default' : 'secondary'}
onClick={() => size='large'
{ onClick={() =>
if (micState === 'off') {
roomClient.enableMic(); if (micState === 'off')
else if (micState === 'on') roomClient.enableMic();
roomClient.muteMic(); else if (micState === 'on')
else roomClient.muteMic();
roomClient.unmuteMic(); else
}} roomClient.unmuteMic();
> }}
{ micState === 'on' ? >
<MicIcon /> { micState === 'on' ?
: <MicIcon />
<MicOffIcon /> :
} <MicOffIcon />
</Fab> }
</Fab>
</div>
} }
</Tooltip> </Tooltip>
<Tooltip title={webcamTip} placement='left'> <Tooltip title={webcamTip} placement='left'>
{ smallContainer ? { smallContainer ?
<IconButton <div>
aria-label={intl.formatMessage({ <IconButton
id : 'device.startVideo', aria-label={intl.formatMessage({
defaultMessage : 'Start video' id : 'device.startVideo',
})} defaultMessage : 'Start video'
className={classes.smallContainer} })}
disabled={!me.canSendWebcam || me.webcamInProgress} className={classes.smallContainer}
color={webcamState === 'on' ? 'primary' : 'secondary'} disabled={!me.canSendWebcam || me.webcamInProgress}
size='small' color={webcamState === 'on' ? 'primary' : 'secondary'}
onClick={() => size='small'
{ onClick={() =>
webcamState === 'on' ? {
roomClient.disableWebcam() : webcamState === 'on' ?
roomClient.enableWebcam(); roomClient.disableWebcam() :
}} roomClient.enableWebcam();
> }}
{ webcamState === 'on' ? >
<VideoIcon /> { webcamState === 'on' ?
: <VideoIcon />
<VideoOffIcon /> :
} <VideoOffIcon />
</IconButton> }
</IconButton>
</div>
: :
<Fab <div>
aria-label={intl.formatMessage({ <Fab
id : 'device.startVideo', aria-label={intl.formatMessage({
defaultMessage : 'Start video' id : 'device.startVideo',
})} defaultMessage : 'Start video'
className={classes.fab} })}
disabled={!me.canSendWebcam || me.webcamInProgress} className={classes.fab}
color={webcamState === 'on' ? 'default' : 'secondary'} disabled={!me.canSendWebcam || me.webcamInProgress}
size='large' color={webcamState === 'on' ? 'default' : 'secondary'}
onClick={() => size='large'
{ onClick={() =>
webcamState === 'on' ? {
roomClient.disableWebcam() : webcamState === 'on' ?
roomClient.enableWebcam(); roomClient.disableWebcam() :
}} roomClient.enableWebcam();
> }}
{ webcamState === 'on' ? >
<VideoIcon /> { webcamState === 'on' ?
: <VideoIcon />
<VideoOffIcon /> :
} <VideoOffIcon />
</Fab> }
</Fab>
</div>
} }
</Tooltip> </Tooltip>
{ me.browser.platform !== 'mobile' && { me.browser.platform !== 'mobile' &&
<Tooltip title={screenTip} placement='left'> <Tooltip title={screenTip} placement='left'>
{ smallContainer ? { smallContainer ?
<IconButton <div>
aria-label={intl.formatMessage({ <IconButton
id : 'device.startScreenSharing', aria-label={intl.formatMessage({
defaultMessage : 'Start screen sharing' id : 'device.startScreenSharing',
})} defaultMessage : 'Start screen sharing'
className={classes.smallContainer} })}
disabled={ className={classes.smallContainer}
!canShareScreen || disabled={
!canShareScreen ||
!me.canShareScreen || !me.canShareScreen ||
me.screenShareInProgress me.screenShareInProgress
}
color='primary'
size='small'
onClick={() =>
{
switch (screenState)
{
case 'on':
{
roomClient.disableScreenSharing();
break;
}
case 'off':
{
roomClient.enableScreenSharing();
break;
}
default:
{
break;
}
} }
}} color='primary'
> size='small'
{ (screenState === 'on' || screenState === 'unsupported') && onClick={() =>
{
switch (screenState)
{
case 'on':
{
roomClient.disableScreenSharing();
break;
}
case 'off':
{
roomClient.enableScreenSharing();
break;
}
default:
{
break;
}
}
}}
>
{ (screenState === 'on' || screenState === 'unsupported') &&
<ScreenOffIcon/> <ScreenOffIcon/>
} }
{ screenState === 'off' && { screenState === 'off' &&
<ScreenIcon/> <ScreenIcon/>
} }
</IconButton> </IconButton>
</div>
: :
<Fab <div>
aria-label={intl.formatMessage({ <Fab
id : 'device.startScreenSharing', aria-label={intl.formatMessage({
defaultMessage : 'Start screen sharing' id : 'device.startScreenSharing',
})} defaultMessage : 'Start screen sharing'
className={classes.fab} })}
disabled={ className={classes.fab}
!canShareScreen || disabled={
!canShareScreen ||
!me.canShareScreen || !me.canShareScreen ||
me.screenShareInProgress me.screenShareInProgress
}
color={screenState === 'on' ? 'primary' : 'default'}
size='large'
onClick={() =>
{
switch (screenState)
{
case 'on':
{
roomClient.disableScreenSharing();
break;
}
case 'off':
{
roomClient.enableScreenSharing();
break;
}
default:
{
break;
}
} }
}} color={screenState === 'on' ? 'primary' : 'default'}
> size='large'
{ (screenState === 'on' || screenState === 'unsupported') && onClick={() =>
{
switch (screenState)
{
case 'on':
{
roomClient.disableScreenSharing();
break;
}
case 'off':
{
roomClient.enableScreenSharing();
break;
}
default:
{
break;
}
}
}}
>
{ (screenState === 'on' || screenState === 'unsupported') &&
<ScreenOffIcon/> <ScreenOffIcon/>
} }
{ screenState === 'off' && { screenState === 'off' &&
<ScreenIcon/> <ScreenIcon/>
} }
</Fab> </Fab>
</div>
} }
</Tooltip> </Tooltip>
} }
@ -576,6 +610,7 @@ const Me = (props) =>
<VideoView <VideoView
isMe isMe
VideoView
advancedMode={advancedMode} advancedMode={advancedMode}
peer={me} peer={me}
displayName={settings.displayName} displayName={settings.displayName}
@ -584,6 +619,8 @@ const Me = (props) =>
videoVisible={videoVisible} videoVisible={videoVisible}
audioCodec={micProducer && micProducer.codec} audioCodec={micProducer && micProducer.codec}
videoCodec={webcamProducer && webcamProducer.codec} videoCodec={webcamProducer && webcamProducer.codec}
audioScore={audioScore}
videoScore={videoScore}
onChangeDisplayName={(displayName) => onChangeDisplayName={(displayName) =>
{ {
roomClient.changeDisplayName(displayName); roomClient.changeDisplayName(displayName);
@ -627,6 +664,18 @@ const Me = (props) =>
style={spacingStyle} style={spacingStyle}
> >
<div className={classes.viewContainer} style={style}> <div className={classes.viewContainer} style={style}>
<p className={
classnames(
classes.meTag,
hover ? 'hover' : null,
smallContainer ? 'smallContainer' : null
)}
>
<FormattedMessage
id='room.me'
defaultMessage='ME'
/>
</p>
<div <div
className={classnames( className={classnames(
classes.controls, classes.controls,
@ -653,48 +702,45 @@ const Me = (props) =>
}, 2000); }, 2000);
}} }}
> >
<p className={hover ? 'hover' : null}>
<FormattedMessage
id='room.me'
defaultMessage='ME'
/>
</p>
<Tooltip title={webcamTip} placement='left'> <Tooltip title={webcamTip} placement='left'>
{ smallContainer ? { smallContainer ?
<IconButton <div>
aria-label={intl.formatMessage({ <IconButton
id : 'device.stopVideo', aria-label={intl.formatMessage({
defaultMessage : 'Stop video' id : 'device.stopVideo',
})} defaultMessage : 'Stop video'
className={classes.smallContainer} })}
disabled={!me.canSendWebcam || me.webcamInProgress} className={classes.smallContainer}
size='small' disabled={!me.canSendWebcam || me.webcamInProgress}
color='primary' size='small'
onClick={() => color='primary'
{ onClick={() =>
roomClient.disableExtraVideo(producer.id); {
}} roomClient.disableExtraVideo(producer.id);
> }}
<VideoIcon /> >
<VideoIcon />
</IconButton> </IconButton>
</div>
: :
<Fab <div>
aria-label={intl.formatMessage({ <Fab
id : 'device.stopVideo', aria-label={intl.formatMessage({
defaultMessage : 'Stop video' id : 'device.stopVideo',
})} defaultMessage : 'Stop video'
className={classes.fab} })}
disabled={!me.canSendWebcam || me.webcamInProgress} className={classes.fab}
size={smallContainer ? 'small' : 'large'} disabled={!me.canSendWebcam || me.webcamInProgress}
onClick={() => size={smallContainer ? 'small' : 'large'}
{ onClick={() =>
roomClient.disableExtraVideo(producer.id); {
}} roomClient.disableExtraVideo(producer.id);
> }}
<VideoIcon /> >
</Fab> <VideoIcon />
</Fab>
</div>
} }
</Tooltip> </Tooltip>
</div> </div>
@ -742,40 +788,18 @@ const Me = (props) =>
style={spacingStyle} style={spacingStyle}
> >
<div className={classes.viewContainer} style={style}> <div className={classes.viewContainer} style={style}>
<div <p className={
className={classnames( classnames(
classes.controls, classes.meTag,
settings.hiddenControls ? 'hide' : null, hover ? 'hover' : null,
hover ? 'hover' : null smallContainer ? 'smallContainer' : null
)} )}
onMouseOver={() => setHover(true)}
onMouseOut={() => setHover(false)}
onTouchStart={() =>
{
if (touchTimeout)
clearTimeout(touchTimeout);
setHover(true);
}}
onTouchEnd={() =>
{
if (touchTimeout)
clearTimeout(touchTimeout);
touchTimeout = setTimeout(() =>
{
setHover(false);
}, 2000);
}}
> >
<p className={hover ? 'hover' : null}> <FormattedMessage
<FormattedMessage id='room.me'
id='room.me' defaultMessage='ME'
defaultMessage='ME' />
/> </p>
</p>
</div>
<VideoView <VideoView
isMe isMe

View File

@ -394,6 +394,7 @@ const Peer = (props) =>
</div> </div>
<VideoView <VideoView
showQuality
advancedMode={advancedMode} advancedMode={advancedMode}
peer={peer} peer={peer}
displayName={peer.displayName} displayName={peer.displayName}
@ -589,6 +590,7 @@ const Peer = (props) =>
</div> </div>
<VideoView <VideoView
showQuality
advancedMode={advancedMode} advancedMode={advancedMode}
peer={peer} peer={peer}
displayName={peer.displayName} displayName={peer.displayName}
@ -730,6 +732,7 @@ const Peer = (props) =>
</Tooltip> </Tooltip>
</div> </div>
<VideoView <VideoView
showQuality
advancedMode={advancedMode} advancedMode={advancedMode}
videoContain videoContain
consumerSpatialLayers={ consumerSpatialLayers={

View File

@ -23,7 +23,8 @@ const shortcuts=[
{ key: '1', label: 'label.democratic', defaultMessage: 'Democratic View' }, { key: '1', label: 'label.democratic', defaultMessage: 'Democratic View' },
{ key: '2', label: 'label.filmstrip', defaultMessage: 'Filmstrip View' }, { key: '2', label: 'label.filmstrip', defaultMessage: 'Filmstrip View' },
{ key: 'space', label: 'me.mutedPTT', defaultMessage: 'Push SPACE to talk' }, { key: 'space', label: 'me.mutedPTT', defaultMessage: 'Push SPACE to talk' },
{ key: 'a', label: 'label.advanced', defaultMessage: 'Show advanced information' } { key: 'a', label: 'label.advanced', defaultMessage: 'Show advanced information' },
{ key: `${String.fromCharCode(8592)} ${String.fromCharCode(8594)}`, label: 'room.browsePeersSpotlight', defaultMessage: 'Browse participants into Spotlight' }
]; ];
const styles = (theme) => const styles = (theme) =>
({ ({

View File

@ -254,57 +254,57 @@ const ListPeer = (props) =>
} }
{ isModerator && micConsumer && { isModerator && micConsumer &&
<Tooltip <Tooltip
title={intl.formatMessage({ title={intl.formatMessage({
id : 'tooltip.muteParticipant', id : 'tooltip.muteParticipantAudioModerator',
defaultMessage : 'Mute globally participant mic' defaultMessage : 'Mute participant audio globally'
})} })}
placement='bottom' placement='bottom'
>
<IconButton
className={classes.buttons}
style={{ color: green[500] }}
disabled={!isModerator || peer.stopPeerAudioInProgress}
onClick={(e) =>
{
e.stopPropagation();
roomClient.mutePeer(peer.id);
}}
> >
{ !micConsumer.remotelyPaused ? <IconButton
<MicIcon /> className={classes.buttons}
: style={{ color: green[500] }}
<MicOffIcon /> disabled={!isModerator || peer.stopPeerAudioInProgress}
} onClick={(e) =>
</IconButton> {
</Tooltip> e.stopPropagation();
roomClient.mutePeer(peer.id);
}}
>
{ !micConsumer.remotelyPaused ?
<MicIcon />
:
<MicOffIcon />
}
</IconButton>
</Tooltip>
} }
{ isModerator && webcamConsumer && { isModerator && webcamConsumer &&
<Tooltip <Tooltip
title={intl.formatMessage({ title={intl.formatMessage({
id : 'tooltip.muteParticipantVideo', id : 'tooltip.muteParticipantVideoModerator',
defaultMessage : 'Mute globally participant video' defaultMessage : 'Mute participant video globally'
})} })}
placement='bottom' placement='bottom'
>
<IconButton
className={classes.buttons}
style={{ color: green[500] }}
disabled={!isModerator || peer.stopPeerVideoInProgress}
onClick={(e) =>
{
e.stopPropagation();
roomClient.stopPeerVideo(peer.id);
}}
> >
{ !webcamConsumer.remotelyPaused ? <IconButton
<VideocamIcon /> className={classes.buttons}
: style={{ color: green[500] }}
<VideocamOffIcon /> disabled={!isModerator || peer.stopPeerVideoInProgress}
} onClick={(e) =>
</IconButton> {
</Tooltip> e.stopPropagation();
roomClient.stopPeerVideo(peer.id);
}}
>
{ !webcamConsumer.remotelyPaused ?
<VideocamIcon />
:
<VideocamOffIcon />
}
</IconButton>
</Tooltip>
} }
{children} {children}
</div> </div>

View File

@ -95,7 +95,7 @@ const Settings = ({
/> />
<Tab <Tab
label={intl.formatMessage({ label={intl.formatMessage({
id : 'label.appearence', id : 'label.appearance',
defaultMessage : 'Appearence' defaultMessage : 'Appearence'
})} })}
/> />

View File

@ -152,6 +152,7 @@ class VideoView extends React.PureComponent
{ {
const { const {
isMe, isMe,
showQuality,
isScreen, isScreen,
displayName, displayName,
showPeerInfo, showPeerInfo,
@ -177,58 +178,63 @@ class VideoView extends React.PureComponent
videoHeight videoHeight
} = this.state; } = this.state;
let quality = <SignalCellularOffIcon style={{ color: red[500] }}/>; let quality = null;
if (videoScore || audioScore) if (showQuality)
{ {
const score = videoScore ? videoScore : audioScore; quality = <SignalCellularOffIcon style={{ color: red[500] }}/>;
switch (score.producerScore) if (videoScore || audioScore)
{ {
case 0: const score = videoScore ? videoScore : audioScore;
case 1:
switch (isMe ? score.score : score.producerScore)
{ {
quality = <SignalCellular0BarIcon style={{ color: red[500] }}/>; case 0:
case 1:
break; {
} quality = <SignalCellular0BarIcon style={{ color: red[500] }}/>;
case 2: break;
case 3: }
{
quality = <SignalCellular1BarIcon style={{ color: red[500] }}/>; case 2:
case 3:
break; {
} quality = <SignalCellular1BarIcon style={{ color: red[500] }}/>;
case 4: break;
case 5: }
case 6:
{ case 4:
quality = <SignalCellular2BarIcon style={{ color: orange[500] }}/>; case 5:
case 6:
break; {
} quality = <SignalCellular2BarIcon style={{ color: orange[500] }}/>;
case 7: break;
case 8: }
case 9:
{ case 7:
quality = <SignalCellular3BarIcon style={{ color: yellow[500] }}/>; case 8:
case 9:
break; {
} quality = <SignalCellular3BarIcon style={{ color: yellow[500] }}/>;
case 10: break;
{ }
quality = null;
case 10:
break; {
} quality = null;
default: break;
{ }
break;
default:
{
break;
}
} }
} }
} }
@ -258,7 +264,7 @@ class VideoView extends React.PureComponent
<p>{videoWidth}x{videoHeight}</p> <p>{videoWidth}x{videoHeight}</p>
} }
</div> </div>
{ !isMe && { showQuality &&
<div className={classnames(classes.box, 'right')}> <div className={classnames(classes.box, 'right')}>
{ {
quality quality
@ -438,6 +444,7 @@ class VideoView extends React.PureComponent
VideoView.propTypes = VideoView.propTypes =
{ {
isMe : PropTypes.bool, isMe : PropTypes.bool,
showQuality : PropTypes.bool,
isScreen : PropTypes.bool, isScreen : PropTypes.bool,
displayName : PropTypes.string, displayName : PropTypes.string,
showPeerInfo : PropTypes.bool, showPeerInfo : PropTypes.bool,

View File

@ -31,7 +31,8 @@ import messagesFrench from './translations/fr';
import messagesGreek from './translations/el'; import messagesGreek from './translations/el';
import messagesRomanian from './translations/ro'; import messagesRomanian from './translations/ro';
import messagesPortuguese from './translations/pt'; import messagesPortuguese from './translations/pt';
import messagesChinese from './translations/cn'; import messagesChineseSimplified from './translations/cn';
import messagesChineseTraditional from './translations/tw';
import messagesSpanish from './translations/es'; import messagesSpanish from './translations/es';
import messagesCroatian from './translations/hr'; import messagesCroatian from './translations/hr';
import messagesCzech from './translations/cs'; import messagesCzech from './translations/cs';
@ -49,26 +50,37 @@ const cache = createIntlCache();
const messages = const messages =
{ {
// 'en' : messagesEnglish, // 'en' : messagesEnglish,
'nb' : messagesNorwegian, 'nb' : messagesNorwegian,
'de' : messagesGerman, 'de' : messagesGerman,
'hu' : messagesHungarian, 'hu' : messagesHungarian,
'pl' : messagesPolish, 'pl' : messagesPolish,
'dk' : messagesDanish, 'dk' : messagesDanish,
'fr' : messagesFrench, 'fr' : messagesFrench,
'el' : messagesGreek, 'el' : messagesGreek,
'ro' : messagesRomanian, 'ro' : messagesRomanian,
'pt' : messagesPortuguese, 'pt' : messagesPortuguese,
'zh' : messagesChinese, 'zh-hans' : messagesChineseSimplified,
'es' : messagesSpanish, 'zh-hant' : messagesChineseTraditional,
'hr' : messagesCroatian, 'es' : messagesSpanish,
'cs' : messagesCzech, 'hr' : messagesCroatian,
'it' : messagesItalian, 'cs' : messagesCzech,
'uk' : messagesUkrainian, 'it' : messagesItalian,
'tr' : messagesTurkish, 'uk' : messagesUkrainian,
'lv' : messagesLatvian 'tr' : messagesTurkish,
'lv' : messagesLatvian
}; };
const locale = navigator.language.split(/[-_]/)[0]; // language without region code const browserLanguage = (navigator.language || navigator.browserLanguage).toLowerCase();
let locale = browserLanguage.split(/[-_]/)[0]; // language without region code
if (locale === 'zh')
{
if (browserLanguage === 'zh-cn')
locale = 'zh-hans';
else
locale = 'zh-hant';
}
const intl = createIntl({ const intl = createIntl({
locale, locale,

View File

@ -60,6 +60,17 @@ const producers = (state = initialState, action) =>
return { ...state, [producerId]: newProducer }; return { ...state, [producerId]: newProducer };
} }
case 'SET_PRODUCER_SCORE':
{
const { producerId, score } = action.payload;
const producer = state[producerId];
const newProducer = { ...producer, score };
return { ...state, [producerId]: newProducer };
}
default: default:
return state; return state;
} }

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "房间名称", "label.roomName": "房间名称",
"label.chooseRoomButton": "继续", "label.chooseRoomButton": "继续",
@ -109,7 +113,7 @@
"label.ultra": "超高 (UHD)", "label.ultra": "超高 (UHD)",
"label.close": "关闭", "label.close": "关闭",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -62,6 +62,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -83,6 +84,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Jméno místnosti", "label.roomName": "Jméno místnosti",
"label.chooseRoomButton": "Pokračovat", "label.chooseRoomButton": "Pokračovat",
@ -108,7 +112,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Zavřít", "label.close": "Zavřít",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -51,7 +51,7 @@
"room.videoPaused": "Video gestoppt", "room.videoPaused": "Video gestoppt",
"room.muteAll": "Alle stummschalten", "room.muteAll": "Alle stummschalten",
"room.stopAllVideo": "Alle Videos stoppen", "room.stopAllVideo": "Alle Videos stoppen",
"room.closeMeeting": "Meeting schließen", "room.closeMeeting": "Meeting beenden",
"room.clearChat": "Liste löschen", "room.clearChat": "Liste löschen",
"room.clearFileSharing": "Liste löschen", "room.clearFileSharing": "Liste löschen",
"room.speechUnsupported": "Dein Browser unterstützt keine Spracherkennung", "room.speechUnsupported": "Dein Browser unterstützt keine Spracherkennung",
@ -61,10 +61,11 @@
"room.extraVideo": "Video hinzufügen", "room.extraVideo": "Video hinzufügen",
"room.overRoomLimit": "Der Raum ist voll, probiere es später nochmal", "room.overRoomLimit": "Der Raum ist voll, probiere es später nochmal",
"room.help": "Hilfe", "room.help": "Hilfe",
"room.about": "Impressum", "room.about": "Über",
"room.shortcutKeys": "Tastaturkürzel", "room.shortcutKeys": "Tastaturkürzel",
"room.browsePeersSpotlight": null,
"me.mutedPTT": "Du bist stummgeschalted, Halte die SPACE-Taste um zu sprechen", "me.mutedPTT": "Du bist stummgeschaltet. Halte die SPACE-Taste um zu sprechen",
"roles.gotRole": "Rolle erhalten: {role}", "roles.gotRole": "Rolle erhalten: {role}",
"roles.lostRole": "Rolle entzogen: {role}", "roles.lostRole": "Rolle entzogen: {role}",
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": "Video stoppen", "tooltip.muteParticipantVideo": "Video stoppen",
"tooltip.raisedHand": "Hand heben", "tooltip.raisedHand": "Hand heben",
"tooltip.muteScreenSharing": "Stoppe Bildschirmfreigabe", "tooltip.muteScreenSharing": "Stoppe Bildschirmfreigabe",
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Name des Raums", "label.roomName": "Name des Raums",
"label.chooseRoomButton": "Weiter", "label.chooseRoomButton": "Weiter",
@ -103,16 +107,16 @@
"label.democratic": "Demokratisch", "label.democratic": "Demokratisch",
"label.filmstrip": "Filmstreifen", "label.filmstrip": "Filmstreifen",
"label.low": "Niedrig", "label.low": "Niedrig",
"label.medium": "Medium", "label.medium": "Mittel",
"label.high": "Hoch (HD)", "label.high": "Hoch (HD)",
"label.veryHigh": "Sehr hoch (FHD)", "label.veryHigh": "Sehr hoch (FHD)",
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Schließen", "label.close": "Schließen",
"label.media": "Audio / Video", "label.media": "Audio / Video",
"label.appearence": "Erscheinung", "label.appearance": "Ansicht",
"label.advanced": "Erweiter", "label.advanced": "Erweitert",
"label.addVideo": "Video hinzufügen", "label.addVideo": "Video hinzufügen",
"label.promoteAllPeers": "Alle Teinehmer einlassen", "label.promoteAllPeers": "Alle Teilnehmer reinlassen",
"label.moreActions": "Weitere Aktionen", "label.moreActions": "Weitere Aktionen",
"settings.settings": "Einstellungen", "settings.settings": "Einstellungen",
@ -134,7 +138,7 @@
"settings.hiddenControls": "Medienwerkzeugleiste automatisch ausblenden", "settings.hiddenControls": "Medienwerkzeugleiste automatisch ausblenden",
"settings.notificationSounds": "Audiosignal bei Benachrichtigungen", "settings.notificationSounds": "Audiosignal bei Benachrichtigungen",
"settings.showNotifications": "Zeige Benachrichtigungen", "settings.showNotifications": "Zeige Benachrichtigungen",
"settings.buttonControlBar": "Seperate seitliche Medienwerkzeugleiste", "settings.buttonControlBar": "Separate seitliche Medienwerkzeugleiste",
"settings.echoCancellation": "Echounterdrückung", "settings.echoCancellation": "Echounterdrückung",
"settings.autoGainControl": "Automatische Pegelregelung (Audioeingang)", "settings.autoGainControl": "Automatische Pegelregelung (Audioeingang)",
"settings.noiseSuppression": "Rauschunterdrückung", "settings.noiseSuppression": "Rauschunterdrückung",

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Værelsesnavn", "label.roomName": "Værelsesnavn",
"label.chooseRoomButton": "Fortsæt", "label.chooseRoomButton": "Fortsæt",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Luk", "label.close": "Luk",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Όνομα δωματίου", "label.roomName": "Όνομα δωματίου",
"label.chooseRoomButton": "Συνέχεια", "label.chooseRoomButton": "Συνέχεια",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Κλείσιμο", "label.close": "Κλείσιμο",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -63,6 +63,7 @@
"room.help": "Help", "room.help": "Help",
"room.about": "About", "room.about": "About",
"room.shortcutKeys": "Shortcut Keys", "room.shortcutKeys": "Shortcut Keys",
"room.browsePeersSpotlight": null,
"me.mutedPTT": "You are muted, hold down SPACE-BAR to talk", "me.mutedPTT": "You are muted, hold down SPACE-BAR to talk",
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": "Mute participant video", "tooltip.muteParticipantVideo": "Mute participant video",
"tooltip.raisedHand": "Raise hand", "tooltip.raisedHand": "Raise hand",
"tooltip.muteScreenSharing": "Mute participant share", "tooltip.muteScreenSharing": "Mute participant share",
"tooltip.muteParticipantAudioModerator": "Mute participant audio globally",
"tooltip.muteParticipantVideoModerator": "Mute participant video globally",
"tooltip.muteScreenSharingModerator": "Mute participant screen share globally",
"label.roomName": "Room name", "label.roomName": "Room name",
"label.chooseRoomButton": "Continue", "label.chooseRoomButton": "Continue",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Close", "label.close": "Close",
"label.media": "Media", "label.media": "Media",
"label.appearence": "Appearence", "label.appearance": "Appearence",
"label.advanced": "Advanced", "label.advanced": "Advanced",
"label.addVideo": "Add video", "label.addVideo": "Add video",
"label.promoteAllPeers": "Promote all", "label.promoteAllPeers": "Promote all",

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Nombre de la sala", "label.roomName": "Nombre de la sala",
"label.chooseRoomButton": "Continuar", "label.chooseRoomButton": "Continuar",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Cerrar", "label.close": "Cerrar",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Nom de la salle", "label.roomName": "Nom de la salle",
"label.chooseRoomButton": "Continuer", "label.chooseRoomButton": "Continuer",
@ -109,7 +113,7 @@
"label.ultra": "Ultra Haute Définition", "label.ultra": "Ultra Haute Définition",
"label.close": "Fermer", "label.close": "Fermer",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": "Utišani ste, pritisnite i držite SPACE tipku za razgovor", "me.mutedPTT": "Utišani ste, pritisnite i držite SPACE tipku za razgovor",
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": "Ne primaj video sudionika", "tooltip.muteParticipantVideo": "Ne primaj video sudionika",
"tooltip.raisedHand": "Podigni ruku", "tooltip.raisedHand": "Podigni ruku",
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Naziv sobe", "label.roomName": "Naziv sobe",
"label.chooseRoomButton": "Nastavi", "label.chooseRoomButton": "Nastavi",
@ -109,7 +113,7 @@
"label.ultra": "Ultra visoka (UHD)", "label.ultra": "Ultra visoka (UHD)",
"label.close": "Zatvori", "label.close": "Zatvori",
"label.media": "Medij", "label.media": "Medij",
"label.appearence": "Prikaz", "label.appearance": "Prikaz",
"label.advanced": "Napredno", "label.advanced": "Napredno",
"label.addVideo": "Dodaj video", "label.addVideo": "Dodaj video",
"label.promoteAllPeers": "Promoviraj sve", "label.promoteAllPeers": "Promoviraj sve",

View File

@ -63,6 +63,7 @@
"room.help": "Segítség", "room.help": "Segítség",
"room.about": "Névjegy", "room.about": "Névjegy",
"room.shortcutKeys": "Billentyűparancsok", "room.shortcutKeys": "Billentyűparancsok",
"room.browsePeersSpotlight": null,
"me.mutedPTT": "Némítva vagy, ha beszélnél nyomd le a szóköz billentyűt", "me.mutedPTT": "Némítva vagy, ha beszélnél nyomd le a szóköz billentyűt",
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": "Résztvevő videóstreamének némítása", "tooltip.muteParticipantVideo": "Résztvevő videóstreamének némítása",
"tooltip.raisedHand": "Jelentkezés", "tooltip.raisedHand": "Jelentkezés",
"tooltip.muteScreenSharing": "Képernyőmegosztás szüneteltetése", "tooltip.muteScreenSharing": "Képernyőmegosztás szüneteltetése",
"tooltip.muteParticipantAudioModerator": "Résztvevő hangjának általános némítása",
"tooltip.muteParticipantVideoModerator": "Résztvevő videójának általános némítása",
"tooltip.muteScreenSharingModerator": "Résztvevő képernyőmegosztásának általános némítása",
"label.roomName": "Konferencia", "label.roomName": "Konferencia",
"label.chooseRoomButton": "Tovább", "label.chooseRoomButton": "Tovább",
@ -109,7 +113,7 @@
"label.ultra": "Ultra magas (UHD)", "label.ultra": "Ultra magas (UHD)",
"label.close": "Bezár", "label.close": "Bezár",
"label.media": "Média", "label.media": "Média",
"label.appearence": "Megjelenés", "label.appearance": "Megjelenés",
"label.advanced": "Részletek", "label.advanced": "Részletek",
"label.addVideo": "Videó hozzáadása", "label.addVideo": "Videó hozzáadása",
"label.promoteAllPeers": "Mindenkit beengedek", "label.promoteAllPeers": "Mindenkit beengedek",
@ -138,7 +142,7 @@
"settings.echoCancellation": "Visszhangelnyomás", "settings.echoCancellation": "Visszhangelnyomás",
"settings.autoGainControl": "Automatikus hangerő", "settings.autoGainControl": "Automatikus hangerő",
"settings.noiseSuppression": "Zajelnyomás", "settings.noiseSuppression": "Zajelnyomás",
"settings.drawerOverlayed": null, "settings.drawerOverlayed": "Oldalsáv a tartalom felett",
"filesharing.saveFileError": "A file-t nem sikerült elmenteni", "filesharing.saveFileError": "A file-t nem sikerült elmenteni",
"filesharing.startingFileShare": "Fájl megosztása", "filesharing.startingFileShare": "Fájl megosztása",

View File

@ -59,10 +59,11 @@
"room.raisedHand": "{displayName} ha alzato la mano", "room.raisedHand": "{displayName} ha alzato la mano",
"room.loweredHand": "{displayName} ha abbassato la mano", "room.loweredHand": "{displayName} ha abbassato la mano",
"room.extraVideo": "Video extra", "room.extraVideo": "Video extra",
"room.overRoomLimit": null, "room.overRoomLimit": "La stanza è piena, riprova più tardi.",
"room.help": null, "room.help": "Aiuto",
"room.about": null, "room.about": "Informazioni su",
"room.shortcutKeys": null, "room.shortcutKeys": "Scorciatoie da tastiera",
"room.browsePeersSpotlight": null,
"me.mutedPTT": "Sei mutato, tieni premuto SPAZIO per parlare", "me.mutedPTT": "Sei mutato, tieni premuto SPAZIO per parlare",
@ -71,7 +72,7 @@
"tooltip.login": "Log in", "tooltip.login": "Log in",
"tooltip.logout": "Log out", "tooltip.logout": "Log out",
"tooltip.admitFromLobby": "Ammetti dalla lobby", "tooltip.admitFromLobby": "Accetta partecipante dalla lobby",
"tooltip.lockRoom": "Blocca stanza", "tooltip.lockRoom": "Blocca stanza",
"tooltip.unLockRoom": "Sblocca stanza", "tooltip.unLockRoom": "Sblocca stanza",
"tooltip.enterFullscreen": "Modalità schermo intero", "tooltip.enterFullscreen": "Modalità schermo intero",
@ -79,10 +80,14 @@
"tooltip.lobby": "Mostra lobby", "tooltip.lobby": "Mostra lobby",
"tooltip.settings": "Mostra impostazioni", "tooltip.settings": "Mostra impostazioni",
"tooltip.participants": "Mostra partecipanti", "tooltip.participants": "Mostra partecipanti",
"tooltip.kickParticipant": "Espelli partecipante",
"tooltip.muteParticipant": "Muta partecipante", "tooltip.muteParticipant": "Muta partecipante",
"tooltip.muteParticipantVideo": "Ferma video partecipante", "tooltip.muteParticipantVideo": "Ferma video partecipante",
"tooltip.raisedHand": "Mano alzata", "tooltip.raisedHand": "Mano alzata",
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": "Ferma condivisione schermo partecipante",
"tooltip.muteParticipantAudioModerator": "Sospendi audio globale",
"tooltip.muteParticipantVideoModerator": "Sospendi video globale",
"tooltip.muteScreenSharingModerator": "Sospendi condivisione schermo globale",
"label.roomName": "Nome della stanza", "label.roomName": "Nome della stanza",
"label.chooseRoomButton": "Continua", "label.chooseRoomButton": "Continua",
@ -96,7 +101,7 @@
"label.filesharing": "Condivisione file", "label.filesharing": "Condivisione file",
"label.participants": "Partecipanti", "label.participants": "Partecipanti",
"label.shareFile": "Condividi file", "label.shareFile": "Condividi file",
"label.shareGalleryFile": null, "label.shareGalleryFile": "Condividi immagine",
"label.fileSharingUnsupported": "Condivisione file non supportata", "label.fileSharingUnsupported": "Condivisione file non supportata",
"label.unknown": "Sconosciuto", "label.unknown": "Sconosciuto",
"label.democratic": "Vista Democratica", "label.democratic": "Vista Democratica",
@ -108,11 +113,11 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Chiudi", "label.close": "Chiudi",
"label.media": "Media", "label.media": "Media",
"label.appearence": "Aspetto", "label.appearance": "Aspetto",
"label.advanced": "Avanzate", "label.advanced": "Avanzate",
"label.addVideo": "Aggiungi video", "label.addVideo": "Aggiungi video",
"label.promoteAllPeers": "Promuovi tutti", "label.promoteAllPeers": "Promuovi tutti",
"label.moreActions": null, "label.moreActions": "Altre azioni",
"settings.settings": "Impostazioni", "settings.settings": "Impostazioni",
"settings.camera": "Videocamera", "settings.camera": "Videocamera",
@ -132,12 +137,12 @@
"settings.lastn": "Numero di video visibili", "settings.lastn": "Numero di video visibili",
"settings.hiddenControls": "Controlli media nascosti", "settings.hiddenControls": "Controlli media nascosti",
"settings.notificationSounds": "Suoni di notifica", "settings.notificationSounds": "Suoni di notifica",
"settings.showNotifications": null, "settings.showNotifications": "Mostra notifiche",
"settings.buttonControlBar": null, "settings.buttonControlBar": "Controlli media separati",
"settings.echoCancellation": null, "settings.echoCancellation": "Cancellazione echo",
"settings.autoGainControl": null, "settings.autoGainControl": "Controllo guadagno automatico",
"settings.noiseSuppression": null, "settings.noiseSuppression": "Riduzione del rumore",
"settings.drawerOverlayed": null, "settings.drawerOverlayed": "Barra laterale sovrapposta",
"filesharing.saveFileError": "Impossibile salvare file", "filesharing.saveFileError": "Impossibile salvare file",
"filesharing.startingFileShare": "Tentativo di condivisione file", "filesharing.startingFileShare": "Tentativo di condivisione file",
@ -153,7 +158,7 @@
"devices.devicesChanged": "Il tuo dispositivo è cambiato, configura i dispositivi nel menù di impostazioni", "devices.devicesChanged": "Il tuo dispositivo è cambiato, configura i dispositivi nel menù di impostazioni",
"device.audioUnsupported": "Dispositivo audio non supportato", "device.audioUnsupported": "Dispositivo audio non supportato",
"device.activateAudio": "Attiva audio", "device.activateAudio": "Attiva audio",
"device.muteAudio": "Silenzia audio", "device.muteAudio": "Silenzia audio",
"device.unMuteAudio": "Riattiva audio", "device.unMuteAudio": "Riattiva audio",
@ -183,4 +188,4 @@
"moderator.clearFiles": "Il moderatore ha pulito i file", "moderator.clearFiles": "Il moderatore ha pulito i file",
"moderator.muteAudio": "Il moderatore ha mutato il tuo audio", "moderator.muteAudio": "Il moderatore ha mutato il tuo audio",
"moderator.muteVideo": "Il moderatore ha fermato il tuo video" "moderator.muteVideo": "Il moderatore ha fermato il tuo video"
} }

View File

@ -62,6 +62,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": "Jūs esat noklusināts. Turiet taustiņu SPACE-BAR, lai runātu", "me.mutedPTT": "Jūs esat noklusināts. Turiet taustiņu SPACE-BAR, lai runātu",
@ -83,6 +84,9 @@
"tooltip.muteParticipantVideo": "Atslēgt dalībnieka video", "tooltip.muteParticipantVideo": "Atslēgt dalībnieka video",
"tooltip.raisedHand": "Pacelt roku", "tooltip.raisedHand": "Pacelt roku",
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Sapulces telpas nosaukums (ID)", "label.roomName": "Sapulces telpas nosaukums (ID)",
"label.chooseRoomButton": "Turpināt", "label.chooseRoomButton": "Turpināt",
@ -107,7 +111,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Aizvērt", "label.close": "Aizvērt",
"label.media": "Mediji", "label.media": "Mediji",
"label.appearence": "Izskats", "label.appearance": "Izskats",
"label.advanced": "Advancēts", "label.advanced": "Advancēts",
"label.addVideo": "Pievienot video", "label.addVideo": "Pievienot video",
"label.moreActions": null, "label.moreActions": null,

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": "Du er dempet, hold nede SPACE for å snakke", "me.mutedPTT": "Du er dempet, hold nede SPACE for å snakke",
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": "Demp deltakervideo", "tooltip.muteParticipantVideo": "Demp deltakervideo",
"tooltip.raisedHand": "Rekk opp hånden", "tooltip.raisedHand": "Rekk opp hånden",
"tooltip.muteScreenSharing": "Demp deltaker skjermdeling", "tooltip.muteScreenSharing": "Demp deltaker skjermdeling",
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Møtenavn", "label.roomName": "Møtenavn",
"label.chooseRoomButton": "Fortsett", "label.chooseRoomButton": "Fortsett",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Lukk", "label.close": "Lukk",
"label.media": "Media", "label.media": "Media",
"label.appearence": "Utseende", "label.appearance": "Utseende",
"label.advanced": "Avansert", "label.advanced": "Avansert",
"label.addVideo": "Legg til video", "label.addVideo": "Legg til video",
"label.promoteAllPeers": "Slipp inn alle", "label.promoteAllPeers": "Slipp inn alle",

View File

@ -63,6 +63,7 @@
"room.help": "Pomoc", "room.help": "Pomoc",
"room.about": "O pogramie", "room.about": "O pogramie",
"room.shortcutKeys": "Skróty klawiaturowe", "room.shortcutKeys": "Skróty klawiaturowe",
"room.browsePeersSpotlight": null,
"me.mutedPTT": "Masz wyciszony mikrofon, przytrzymaj spację aby mówić", "me.mutedPTT": "Masz wyciszony mikrofon, przytrzymaj spację aby mówić",
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": "Wyłącz wideo użytkownika", "tooltip.muteParticipantVideo": "Wyłącz wideo użytkownika",
"tooltip.raisedHand": "Podnieś rękę", "tooltip.raisedHand": "Podnieś rękę",
"tooltip.muteScreenSharing": "Anuluj udostępniania pulpitu przez użytkownika", "tooltip.muteScreenSharing": "Anuluj udostępniania pulpitu przez użytkownika",
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Nazwa konferencji", "label.roomName": "Nazwa konferencji",
"label.chooseRoomButton": "Kontynuuj", "label.chooseRoomButton": "Kontynuuj",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Zamknij", "label.close": "Zamknij",
"label.media": "Media", "label.media": "Media",
"label.appearence": "Wygląd", "label.appearance": "Wygląd",
"label.advanced": "Zaawansowane", "label.advanced": "Zaawansowane",
"label.addVideo": "Dodaj wideo", "label.addVideo": "Dodaj wideo",
"label.promoteAllPeers": "Wpuść wszystkich", "label.promoteAllPeers": "Wpuść wszystkich",

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Nome da sala", "label.roomName": "Nome da sala",
"label.chooseRoomButton": "Continuar", "label.chooseRoomButton": "Continuar",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Fechar", "label.close": "Fechar",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Numele camerei", "label.roomName": "Numele camerei",
"label.chooseRoomButton": "Continuare", "label.chooseRoomButton": "Continuare",
@ -109,7 +113,7 @@
"label.ultra": "Rezoluție ultra înaltă (UHD)", "label.ultra": "Rezoluție ultra înaltă (UHD)",
"label.close": "Închide", "label.close": "Închide",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Oda adı", "label.roomName": "Oda adı",
"label.chooseRoomButton": "Devam", "label.chooseRoomButton": "Devam",
@ -109,7 +113,7 @@
"label.ultra": "Ultra (UHD)", "label.ultra": "Ultra (UHD)",
"label.close": "Kapat", "label.close": "Kapat",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,

View File

@ -0,0 +1,190 @@
{
"socket.disconnected": "您已斷開連接",
"socket.reconnecting": "嘗試重新連接",
"socket.reconnected": "您已重新連接",
"socket.requestError": "服務器請求錯誤",
"room.chooseRoom": "選擇您要加入的房間的名稱",
"room.cookieConsent": "這個網站使用Cookies來提升您的使用者體驗",
"room.consentUnderstand": "了解",
"room.joined": "您已加入房間",
"room.cantJoin": "無法加入房間",
"room.youLocked": "您已鎖定房間",
"room.cantLock": "無法鎖定房間",
"room.youUnLocked": "您解鎖了房間",
"room.cantUnLock": "無法解鎖房間",
"room.locked": "房間已鎖定",
"room.unlocked": "房間現已解鎖",
"room.newLobbyPeer": "新參與者進入大廳",
"room.lobbyPeerLeft": "參與者離開大廳",
"room.lobbyPeerChangedDisplayName": "大廳的參與者將名稱變更為 {displayName}",
"room.lobbyPeerChangedPicture": "大廳的參與者變更了圖片",
"room.setAccessCode": "設置房間的進入密碼",
"room.accessCodeOn": "房間的進入密碼現已啟用",
"room.accessCodeOff": "房間的進入密碼已停用",
"room.peerChangedDisplayName": "{oldDisplayName} 已變更名稱為 {displayName}",
"room.newPeer": "{displayName} 加入了會議室",
"room.newFile": "有新文件",
"room.toggleAdvancedMode": "切換進階模式",
"room.setDemocraticView": "已更改為使用者佈局",
"room.setFilmStripView": "已更改為投影片佈局",
"room.loggedIn": "您已登入",
"room.loggedOut": "您已登出",
"room.changedDisplayName": "您的顯示名稱已變更為 {displayName}",
"room.changeDisplayNameError": "更改顯示名稱時發生錯誤",
"room.chatError": "無法發送聊天消息",
"room.aboutToJoin": "您即將參加會議",
"room.roomId": "房間ID: {roomName}",
"room.setYourName": "設置您的顯示名稱,並選擇您想加入的方式:",
"room.audioOnly": "僅通話",
"room.audioVideo": "通話和視訊",
"room.youAreReady": "準備完畢!",
"room.emptyRequireLogin": "房間是空的! 您可以登錄以開始會議或等待主持人加入",
"room.locketWait": "房間已鎖定! 請等待其他人允許您進入...",
"room.lobbyAdministration": "大廳管理",
"room.peersInLobby": "大廳的參與者",
"room.lobbyEmpty": "大廳目前沒有人",
"room.hiddenPeers": "{hiddenPeersCount, plural, one {participant} other {participants}}",
"room.me": "我",
"room.spotlights": "Spotlight中的參與者",
"room.passive": "被動參與者",
"room.videoPaused": "視訊已關閉",
"room.muteAll": "全部靜音",
"room.stopAllVideo": "關閉全部視訊",
"room.closeMeeting": "關閉會議",
"room.clearChat": "清除聊天",
"room.clearFileSharing": "清除檔案",
"room.speechUnsupported": "您的瀏覽器不支援語音辨識",
"room.moderatoractions": "管理員動作",
"room.raisedHand": "{displayName} 舉手了",
"room.loweredHand": "{displayName} 放下了他的手",
"room.extraVideo": "其他視訊",
"room.overRoomLimit": "房間已滿,請稍後重試",
"room.help": "幫助",
"room.about": "關於",
"room.shortcutKeys": "鍵盤快速鍵",
"me.mutedPTT": "您已靜音,請按下 空白鍵 來說話",
"roles.gotRole": "您已取得身份: {role}",
"roles.lostRole": "您的 {role} 身份已被撤銷",
"tooltip.login": "登入",
"tooltip.logout": "登出",
"tooltip.admitFromLobby": "從大廳允許",
"tooltip.lockRoom": "鎖定房間",
"tooltip.unLockRoom": "解鎖房間",
"tooltip.enterFullscreen": "進入全螢幕",
"tooltip.leaveFullscreen": "退出全螢幕",
"tooltip.lobby": "顯示大廳",
"tooltip.settings": "顯示設置",
"tooltip.participants": "顯示參加者",
"tooltip.kickParticipant": "踢出",
"tooltip.muteParticipant": "靜音",
"tooltip.muteParticipantVideo": "隱藏視訊",
"tooltip.raisedHand": "舉手",
"tooltip.muteScreenSharing": "隱藏螢幕分享",
"tooltip.muteParticipantAudioModerator": "關閉聲音",
"tooltip.muteParticipantVideoModerator": "關閉視訊",
"tooltip.muteScreenSharingModerator": "關閉螢幕分享",
"label.roomName": "房間名稱",
"label.chooseRoomButton": "繼續",
"label.yourName": "您的名字",
"label.newWindow": "新視窗",
"label.fullscreen": "全螢幕",
"label.openDrawer": "打開側邊欄",
"label.leave": "離開",
"label.chatInput": "輸入聊天訊息",
"label.chat": "聊天",
"label.filesharing": "文件分享",
"label.participants": "參與者",
"label.shareFile": "分享文件",
"label.shareGalleryFile": "分享圖片",
"label.fileSharingUnsupported": "不支援文件分享",
"label.unknown": "未知",
"label.democratic": "使用者佈局",
"label.filmstrip": "投影片佈局",
"label.low": "低",
"label.medium": "中",
"label.high": "高 (HD)",
"label.veryHigh": "非常高 (FHD)",
"label.ultra": "超高 (UHD)",
"label.close": "關閉",
"label.media": "媒體",
"label.appearance": "外觀",
"label.advanced": "進階",
"label.addVideo": "新增視訊",
"label.promoteAllPeers": "提升全部",
"label.moreActions": "更多",
"settings.settings": "設置",
"settings.camera": "視訊來源",
"settings.selectCamera": "選擇視訊來源",
"settings.cantSelectCamera": "無法選擇此視訊來源",
"settings.audio": "音訊來源",
"settings.selectAudio": "選擇音訊來源",
"settings.cantSelectAudio": "無法選擇音訊來源",
"settings.audioOutput": "音訊輸出",
"settings.selectAudioOutput": "選擇音訊輸出設備",
"settings.cantSelectAudioOutput": "無法選擇音訊輸出設備",
"settings.resolution": "選擇視訊解析度",
"settings.layout": "房間佈局",
"settings.selectRoomLayout": "選擇房間佈局",
"settings.advancedMode": "進階模式",
"settings.permanentTopBar": "固定頂端列",
"settings.lastn": "視訊數量上限",
"settings.hiddenControls": "隱藏控制按鈕",
"settings.notificationSounds": "通知音效",
"settings.showNotifications": "顯示通知",
"settings.buttonControlBar": "獨立控制按鈕",
"settings.echoCancellation": "回音消除",
"settings.autoGainControl": "自動增益控制",
"settings.noiseSuppression": "噪音消除",
"settings.drawerOverlayed": "側邊欄覆蓋畫面",
"filesharing.saveFileError": "無法保存文件",
"filesharing.startingFileShare": "開始分享文件",
"filesharing.successfulFileShare": "文件已成功分享",
"filesharing.unableToShare": "無法分享文件",
"filesharing.error": "文件分享發生錯誤",
"filesharing.finished": "文件分享成功",
"filesharing.save": "保存文件",
"filesharing.sharedFile": "{displayName} 分享了一個文件",
"filesharing.download": "下載文件",
"filesharing.missingSeeds": "如果過了很久還是無法下載,則可能沒有人播種了。請讓上傳者重新上傳您想要的文件。",
"devices.devicesChanged": "您的設備已更改,請在設置中設定您的設備",
"device.audioUnsupported": "不支援您的音訊格式",
"device.activateAudio": "開啟音訊",
"device.muteAudio": "靜音",
"device.unMuteAudio": "取消靜音",
"device.videoUnsupported": "不支援您的視訊格式",
"device.startVideo": "開啟視訊",
"device.stopVideo": "關閉視訊",
"device.screenSharingUnsupported": "不支援您的螢幕分享格式",
"device.startScreenSharing": "開始螢幕分享",
"device.stopScreenSharing": "停止螢幕分享",
"devices.microphoneDisconnected": "麥克風已斷開",
"devices.microphoneError": "麥克風發生錯誤",
"devices.microphoneMute": "麥克風靜音",
"devices.microphoneUnMute": "取消麥克風靜音",
"devices.microphoneEnable": "麥克風已啟用",
"devices.microphoneMuteError": "無法使麥克風靜音",
"devices.microphoneUnMuteError": "無法取消麥克風靜音",
"devices.screenSharingDisconnected" : "螢幕分享已斷開",
"devices.screenSharingError": "螢幕分享時發生錯誤",
"devices.cameraDisconnected": "相機已斷開連接",
"devices.cameraError": "存取相機時發生錯誤",
"moderator.clearChat": "管理員清除了聊天",
"moderator.clearFiles": "管理員清除了所有檔案",
"moderator.muteAudio": "您已被管理員靜音",
"moderator.muteVideo": "您的視訊已被管理員關閉"
}

View File

@ -63,6 +63,7 @@
"room.help": null, "room.help": null,
"room.about": null, "room.about": null,
"room.shortcutKeys": null, "room.shortcutKeys": null,
"room.browsePeersSpotlight": null,
"me.mutedPTT": null, "me.mutedPTT": null,
@ -84,6 +85,9 @@
"tooltip.muteParticipantVideo": null, "tooltip.muteParticipantVideo": null,
"tooltip.raisedHand": null, "tooltip.raisedHand": null,
"tooltip.muteScreenSharing": null, "tooltip.muteScreenSharing": null,
"tooltip.muteParticipantAudioModerator": null,
"tooltip.muteParticipantVideoModerator": null,
"tooltip.muteScreenSharingModerator": null,
"label.roomName": "Назва кімнати", "label.roomName": "Назва кімнати",
"label.chooseRoomButton": "Продовжити", "label.chooseRoomButton": "Продовжити",
@ -109,7 +113,7 @@
"label.ultra": "Ультра (UHD)", "label.ultra": "Ультра (UHD)",
"label.close": "Закрити", "label.close": "Закрити",
"label.media": null, "label.media": null,
"label.appearence": null, "label.appearance": null,
"label.advanced": null, "label.advanced": null,
"label.addVideo": null, "label.addVideo": null,
"label.promoteAllPeers": null, "label.promoteAllPeers": null,