Linting and translations
parent
34cdac8102
commit
a1dc652d04
|
|
@ -46,7 +46,8 @@
|
|||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"electron": "electron --no-sandbox .",
|
||||
"dev": "nf start -p 3000"
|
||||
"dev": "nf start -p 3000",
|
||||
"lint": "eslint -c .eslintrc.json --ext .js src"
|
||||
},
|
||||
"browserslist": [
|
||||
">0.2%",
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ export default class RoomClient
|
|||
this._hark = null;
|
||||
|
||||
// Local MediaStream for hark
|
||||
this._harkStream = null
|
||||
this._harkStream = null;
|
||||
|
||||
// Local webcam mediasoup Producer.
|
||||
this._webcamProducer = null;
|
||||
|
|
@ -1162,21 +1162,30 @@ export default class RoomClient
|
|||
...VIDEO_CONSTRAINS[resolution]
|
||||
}
|
||||
});
|
||||
if (stream){
|
||||
|
||||
if (stream)
|
||||
{
|
||||
const track = stream.getVideoTracks()[0];
|
||||
if (track) {
|
||||
|
||||
if (track)
|
||||
{
|
||||
await this._webcamProducer.replaceTrack({ track });
|
||||
|
||||
store.dispatch(
|
||||
producerActions.setProducerTrack(this._webcamProducer.id, track));
|
||||
|
||||
} else {
|
||||
logger.warn('getVideoTracks Error: First Video Track is null')
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.warn('getVideoTracks Error: First Video Track is null');
|
||||
}
|
||||
|
||||
} else {
|
||||
logger.warn ('getUserMedia Error: Stream is null!')
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.warn('getUserMedia Error: Stream is null!');
|
||||
}
|
||||
|
||||
store.dispatch(settingsActions.setSelectedWebcamDevice(deviceId));
|
||||
|
||||
await this._updateWebcams();
|
||||
|
|
@ -2340,7 +2349,7 @@ export default class RoomClient
|
|||
dtlsParameters,
|
||||
iceServers : this._turnServers,
|
||||
// TODO: Fix for issue #72
|
||||
iceTransportPolicy : this._device.flag === 'firefox' ? 'relay' : undefined,
|
||||
iceTransportPolicy : this._device.flag === 'firefox' ? 'relay' : undefined,
|
||||
proprietaryConstraints : PC_PROPRIETARY_CONSTRAINTS
|
||||
});
|
||||
|
||||
|
|
@ -2402,7 +2411,7 @@ export default class RoomClient
|
|||
iceParameters,
|
||||
iceCandidates,
|
||||
dtlsParameters,
|
||||
iceServers : this._turnServers,
|
||||
iceServers : this._turnServers,
|
||||
// TODO: Fix for issue #72
|
||||
iceTransportPolicy : this._device.flag === 'firefox' ? 'relay' : undefined
|
||||
});
|
||||
|
|
|
|||
|
|
@ -35,12 +35,10 @@ export const setConsumerPreferredLayers = (consumerId, spatialLayer, temporalLay
|
|||
});
|
||||
|
||||
export const setConsumerPriority = (consumerId, priority) =>
|
||||
{
|
||||
return {
|
||||
type : 'SET_CONSUMER_PRIORITY',
|
||||
payload : { consumerId, priority }
|
||||
};
|
||||
};
|
||||
({
|
||||
type : 'SET_CONSUMER_PRIORITY',
|
||||
payload : { consumerId, priority }
|
||||
});
|
||||
|
||||
export const setConsumerTrack = (consumerId, track) =>
|
||||
({
|
||||
|
|
|
|||
|
|
@ -34,11 +34,11 @@ export const setPicture = (picture) =>
|
|||
});
|
||||
|
||||
export const setMediaCapabilities = ({
|
||||
canSendMic,
|
||||
canSendWebcam,
|
||||
canShareScreen,
|
||||
canShareFiles
|
||||
}) =>
|
||||
canSendMic,
|
||||
canSendWebcam,
|
||||
canShareScreen,
|
||||
canShareFiles
|
||||
}) =>
|
||||
({
|
||||
type : 'SET_MEDIA_CAPABILITIES',
|
||||
payload : { canSendMic, canSendWebcam, canShareScreen, canShareFiles }
|
||||
|
|
@ -92,7 +92,7 @@ export const setDisplayNameInProgress = (flag) =>
|
|||
payload : { flag }
|
||||
});
|
||||
|
||||
export const setIsSpeaking = (flag) =>
|
||||
export const setIsSpeaking = (flag) =>
|
||||
({
|
||||
type : 'SET_IS_SPEAKING',
|
||||
payload : { flag }
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ export const setPeerPicture = (peerId, picture) =>
|
|||
payload : { peerId, picture }
|
||||
});
|
||||
|
||||
|
||||
export const addPeerRole = (peerId, role) =>
|
||||
({
|
||||
type : 'ADD_PEER_ROLE',
|
||||
|
|
|
|||
|
|
@ -178,7 +178,8 @@ const ChooseRoom = ({
|
|||
<CookieConsent buttonText={intl.formatMessage({
|
||||
id : 'room.consentUnderstand',
|
||||
defaultMessage : 'I understand'
|
||||
})}>
|
||||
})}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='room.cookieConsent'
|
||||
defaultMessage='This website uses cookies to enhance the user experience'
|
||||
|
|
|
|||
|
|
@ -68,34 +68,33 @@ const styles = (theme) =>
|
|||
},
|
||||
controls :
|
||||
{
|
||||
position : 'absolute',
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
backgroundColor : 'rgba(0, 0, 0, 0.3)',
|
||||
display : 'flex',
|
||||
flexDirection : 'column',
|
||||
justifyContent : 'center',
|
||||
alignItems : 'flex-end',
|
||||
padding : theme.spacing(1),
|
||||
zIndex : 21,
|
||||
opacity : 0,
|
||||
transition : 'opacity 0.3s',
|
||||
touchAction : 'none',
|
||||
pointerEvents : 'none',
|
||||
'&.hover' :
|
||||
position : 'absolute',
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
display : 'flex',
|
||||
flexDirection : 'column',
|
||||
justifyContent : 'center',
|
||||
alignItems : 'flex-end',
|
||||
padding : theme.spacing(1),
|
||||
zIndex : 21,
|
||||
touchAction : 'none',
|
||||
pointerEvents : 'none',
|
||||
'& p' :
|
||||
{
|
||||
opacity : 1
|
||||
},
|
||||
'& p' :
|
||||
{
|
||||
position : 'absolute',
|
||||
float : 'left',
|
||||
top : '50%',
|
||||
left : '50%',
|
||||
transform : 'translate(-50%, -50%)',
|
||||
color : 'rgba(255, 255, 255, 0.5)',
|
||||
fontSize : '7em',
|
||||
margin : 0
|
||||
position : 'absolute',
|
||||
float : 'left',
|
||||
top : '50%',
|
||||
left : '50%',
|
||||
opacity : 0,
|
||||
transition : 'opacity 0.3s',
|
||||
transform : 'translate(-50%, -50%)',
|
||||
color : 'rgba(255, 255, 255, 0.5)',
|
||||
fontSize : '7em',
|
||||
margin : 0,
|
||||
'&.hover' :
|
||||
{
|
||||
opacity : 1
|
||||
}
|
||||
}
|
||||
},
|
||||
ptt :
|
||||
|
|
@ -112,8 +111,8 @@ const styles = (theme) =>
|
|||
padding : '15px',
|
||||
borderRadius : '20px',
|
||||
textAlign : 'center',
|
||||
opacity : 0,
|
||||
'&.enabled' :
|
||||
opacity : 0,
|
||||
'&.enabled' :
|
||||
{
|
||||
opacity : 1
|
||||
}
|
||||
|
|
@ -323,7 +322,7 @@ const Me = (props) =>
|
|||
<div className={classnames(classes.ptt, (micState ==='muted' && me.isSpeaking) ? 'enabled' : null)} >
|
||||
<FormattedMessage
|
||||
id='me.mutedPTT'
|
||||
defaultMessage='You are muted: hold SPACE-BAR to speak!'
|
||||
defaultMessage='You are muted, hold down SPACE-BAR to talk'
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ const styles = (theme) =>
|
|||
},
|
||||
divider :
|
||||
{
|
||||
marginLeft : theme.spacing(3),
|
||||
marginLeft : theme.spacing(3)
|
||||
},
|
||||
show :
|
||||
{
|
||||
|
|
@ -364,7 +364,7 @@ TopBar.propTypes =
|
|||
room : appPropTypes.Room.isRequired,
|
||||
peersLength : PropTypes.number,
|
||||
lobbyPeers : PropTypes.array,
|
||||
permanentTopBar : PropTypes.bool,
|
||||
permanentTopBar : PropTypes.bool,
|
||||
myPicture : PropTypes.string,
|
||||
loggedIn : PropTypes.bool.isRequired,
|
||||
loginEnabled : PropTypes.bool.isRequired,
|
||||
|
|
@ -383,14 +383,14 @@ TopBar.propTypes =
|
|||
|
||||
const mapStateToProps = (state) =>
|
||||
({
|
||||
room : state.room,
|
||||
peersLength : peersLengthSelector(state),
|
||||
lobbyPeers : lobbyPeersKeySelector(state),
|
||||
room : state.room,
|
||||
peersLength : peersLengthSelector(state),
|
||||
lobbyPeers : lobbyPeersKeySelector(state),
|
||||
permanentTopBar : state.settings.permanentTopBar,
|
||||
loggedIn : state.me.loggedIn,
|
||||
loginEnabled : state.me.loginEnabled,
|
||||
myPicture : state.me.picture,
|
||||
unread : state.toolarea.unreadMessages +
|
||||
loggedIn : state.me.loggedIn,
|
||||
loginEnabled : state.me.loginEnabled,
|
||||
myPicture : state.me.picture,
|
||||
unread : state.toolarea.unreadMessages +
|
||||
state.toolarea.unreadFiles
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -339,7 +339,8 @@ const JoinDialog = ({
|
|||
<CookieConsent buttonText={intl.formatMessage({
|
||||
id : 'room.consentUnderstand',
|
||||
defaultMessage : 'I understand'
|
||||
})}>
|
||||
})}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='room.cookieConsent'
|
||||
defaultMessage='This website uses cookies to enhance the user experience'
|
||||
|
|
|
|||
|
|
@ -151,14 +151,14 @@ const ListPeer = (props) =>
|
|||
id : 'tooltip.muteScreenSharing',
|
||||
defaultMessage : 'Mute participant share'
|
||||
})}
|
||||
color={ screenVisible ? 'primary' : 'secondary'}
|
||||
disabled={ peer.peerScreenInProgress }
|
||||
color={screenVisible ? 'primary' : 'secondary'}
|
||||
disabled={peer.peerScreenInProgress}
|
||||
onClick={() =>
|
||||
{
|
||||
screenVisible ?
|
||||
roomClient.modifyPeerConsumer(peer.id, 'screen', true) :
|
||||
roomClient.modifyPeerConsumer(peer.id, 'screen', false);
|
||||
}}
|
||||
{
|
||||
screenVisible ?
|
||||
roomClient.modifyPeerConsumer(peer.id, 'screen', true) :
|
||||
roomClient.modifyPeerConsumer(peer.id, 'screen', false);
|
||||
}}
|
||||
>
|
||||
{ screenVisible ?
|
||||
<ScreenIcon />
|
||||
|
|
@ -172,14 +172,14 @@ const ListPeer = (props) =>
|
|||
id : 'tooltip.muteParticipant',
|
||||
defaultMessage : 'Mute participant'
|
||||
})}
|
||||
color={ micEnabled ? 'primary' : 'secondary'}
|
||||
disabled={ peer.peerAudioInProgress }
|
||||
color={micEnabled ? 'primary' : 'secondary'}
|
||||
disabled={peer.peerAudioInProgress}
|
||||
onClick={() =>
|
||||
{
|
||||
micEnabled ?
|
||||
roomClient.modifyPeerConsumer(peer.id, 'mic', true) :
|
||||
roomClient.modifyPeerConsumer(peer.id, 'mic', false);
|
||||
}}
|
||||
{
|
||||
micEnabled ?
|
||||
roomClient.modifyPeerConsumer(peer.id, 'mic', true) :
|
||||
roomClient.modifyPeerConsumer(peer.id, 'mic', false);
|
||||
}}
|
||||
>
|
||||
{ micEnabled ?
|
||||
<MicIcon />
|
||||
|
|
@ -193,11 +193,11 @@ const ListPeer = (props) =>
|
|||
id : 'tooltip.kickParticipant',
|
||||
defaultMessage : 'Kick out participant'
|
||||
})}
|
||||
disabled={ peer.peerKickInProgress }
|
||||
disabled={peer.peerKickInProgress}
|
||||
onClick={() =>
|
||||
{
|
||||
roomClient.kickPeer(peer.id);
|
||||
}}
|
||||
{
|
||||
roomClient.kickPeer(peer.id);
|
||||
}}
|
||||
>
|
||||
<ExitIcon />
|
||||
</IconButton>
|
||||
|
|
|
|||
|
|
@ -287,28 +287,28 @@ class Filmstrip extends React.PureComponent
|
|||
}
|
||||
|
||||
Filmstrip.propTypes = {
|
||||
roomClient : PropTypes.any.isRequired,
|
||||
activeSpeakerId : PropTypes.string,
|
||||
advancedMode : PropTypes.bool,
|
||||
peers : PropTypes.object.isRequired,
|
||||
consumers : PropTypes.object.isRequired,
|
||||
myId : PropTypes.string.isRequired,
|
||||
selectedPeerId : PropTypes.string,
|
||||
spotlights : PropTypes.array.isRequired,
|
||||
boxes : PropTypes.number,
|
||||
classes : PropTypes.object.isRequired
|
||||
roomClient : PropTypes.any.isRequired,
|
||||
activeSpeakerId : PropTypes.string,
|
||||
advancedMode : PropTypes.bool,
|
||||
peers : PropTypes.object.isRequired,
|
||||
consumers : PropTypes.object.isRequired,
|
||||
myId : PropTypes.string.isRequired,
|
||||
selectedPeerId : PropTypes.string,
|
||||
spotlights : PropTypes.array.isRequired,
|
||||
boxes : PropTypes.number,
|
||||
classes : PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) =>
|
||||
{
|
||||
return {
|
||||
activeSpeakerId : state.room.activeSpeakerId,
|
||||
selectedPeerId : state.room.selectedPeerId,
|
||||
peers : state.peers,
|
||||
consumers : state.consumers,
|
||||
myId : state.me.id,
|
||||
spotlights : state.room.spotlights,
|
||||
boxes : videoBoxesSelector(state)
|
||||
activeSpeakerId : state.room.activeSpeakerId,
|
||||
selectedPeerId : state.room.selectedPeerId,
|
||||
peers : state.peers,
|
||||
consumers : state.consumers,
|
||||
myId : state.me.id,
|
||||
spotlights : state.room.spotlights,
|
||||
boxes : videoBoxesSelector(state)
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -159,13 +159,13 @@ class Room extends React.PureComponent
|
|||
<CookieConsent
|
||||
buttonText={
|
||||
<FormattedMessage
|
||||
id = 'room.consentUnderstand'
|
||||
defaultMessage = 'I understand'
|
||||
id='room.consentUnderstand'
|
||||
defaultMessage='I understand'
|
||||
/>
|
||||
}
|
||||
>
|
||||
<FormattedMessage
|
||||
id = 'room.cookieConsent'
|
||||
id='room.cookieConsent'
|
||||
defaultMessage='This website uses cookies to enhance the user experience'
|
||||
/>
|
||||
</CookieConsent>
|
||||
|
|
|
|||
|
|
@ -353,15 +353,15 @@ const Settings = ({
|
|||
|
||||
Settings.propTypes =
|
||||
{
|
||||
roomClient : PropTypes.any.isRequired,
|
||||
me : appPropTypes.Me.isRequired,
|
||||
room : appPropTypes.Room.isRequired,
|
||||
settings : PropTypes.object.isRequired,
|
||||
onToggleAdvancedMode : PropTypes.func.isRequired,
|
||||
roomClient : PropTypes.any.isRequired,
|
||||
me : appPropTypes.Me.isRequired,
|
||||
room : appPropTypes.Room.isRequired,
|
||||
settings : PropTypes.object.isRequired,
|
||||
onToggleAdvancedMode : PropTypes.func.isRequired,
|
||||
onTogglePermanentTopBar : PropTypes.func.isRequired,
|
||||
handleChangeMode : PropTypes.func.isRequired,
|
||||
handleCloseSettings : PropTypes.func.isRequired,
|
||||
classes : PropTypes.object.isRequired
|
||||
handleChangeMode : PropTypes.func.isRequired,
|
||||
handleCloseSettings : PropTypes.func.isRequired,
|
||||
classes : PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) =>
|
||||
|
|
@ -374,10 +374,10 @@ const mapStateToProps = (state) =>
|
|||
};
|
||||
|
||||
const mapDispatchToProps = {
|
||||
onToggleAdvancedMode : settingsActions.toggleAdvancedMode,
|
||||
onToggleAdvancedMode : settingsActions.toggleAdvancedMode,
|
||||
onTogglePermanentTopBar : settingsActions.togglePermanentTopBar,
|
||||
handleChangeMode : roomActions.setDisplayMode,
|
||||
handleCloseSettings : roomActions.setSettingsOpen
|
||||
handleChangeMode : roomActions.setDisplayMode,
|
||||
handleCloseSettings : roomActions.setSettingsOpen
|
||||
};
|
||||
|
||||
export default withRoomContext(connect(
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ FullScreenView.propTypes =
|
|||
consumer : appPropTypes.Consumer,
|
||||
toggleConsumerFullscreen : PropTypes.func.isRequired,
|
||||
toolbarsVisible : PropTypes.bool,
|
||||
permanentTopBar : PropTypes.bool,
|
||||
permanentTopBar : PropTypes.bool,
|
||||
classes : PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
|
|
@ -143,7 +143,7 @@ const mapStateToProps = (state) =>
|
|||
({
|
||||
consumer : state.consumers[state.room.fullScreenConsumer],
|
||||
toolbarsVisible : state.room.toolbarsVisible,
|
||||
permanentTopBar : state.settings.permanentTopBar
|
||||
permanentTopBar : state.settings.permanentTopBar
|
||||
});
|
||||
|
||||
const mapDispatchToProps = (dispatch) =>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ const initialState =
|
|||
advancedMode : false,
|
||||
resolution : 'medium', // low, medium, high, veryhigh, ultra
|
||||
lastN : 4,
|
||||
permanentTopBar : true
|
||||
permanentTopBar : true
|
||||
};
|
||||
|
||||
const settings = (state = initialState, action) =>
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "登录",
|
||||
"tooltip.logout": "注销",
|
||||
|
|
|
|||
|
|
@ -48,6 +48,12 @@
|
|||
"room.spotlights": "Aktivní Účastníci",
|
||||
"room.passive": "Pasivní Účastníci",
|
||||
"room.videoPaused": "Toto video bylo pozastaveno",
|
||||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Přihlášení",
|
||||
"tooltip.logout": "Odhlášení",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Anmelden",
|
||||
"tooltip.logout": "Abmelden",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Log ind",
|
||||
"tooltip.logout": "Log ud",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Σύνδεση",
|
||||
"tooltip.logout": "Αποσύνδεση",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": "Mute all",
|
||||
"room.stopAllVideo": "Stop all video",
|
||||
"room.closeMeeting": "Close meeting",
|
||||
"room.speechUnsupported": "Your browser does not support speech recognition",
|
||||
|
||||
"me.mutedPTT": "You are muted, hold down SPACE-BAR to talk",
|
||||
|
||||
"tooltip.login": "Log in",
|
||||
"tooltip.logout": "Log out",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Entrar",
|
||||
"tooltip.logout": "Salir",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Connexion",
|
||||
"tooltip.logout": "Déconnexion",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Prijava",
|
||||
"tooltip.logout": "Odjava",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Belépés",
|
||||
"tooltip.logout": "Kilépés",
|
||||
|
|
|
|||
|
|
@ -49,6 +49,12 @@
|
|||
"room.spotlights": "Partecipanti in Evidenza",
|
||||
"room.passive": "Participanti Passivi",
|
||||
"room.videoPaused": "Il video è in pausa",
|
||||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Log in",
|
||||
"tooltip.logout": "Log out",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": "Demp alle",
|
||||
"room.stopAllVideo": "Stopp all video",
|
||||
"room.closeMeeting": "Avslutt møte",
|
||||
"room.speechUnsupported": "Din nettleser støtter ikke stemmegjenkjenning",
|
||||
|
||||
"me.mutedPTT": "Du er dempet, hold nede SPACE for å snakke",
|
||||
|
||||
"tooltip.login": "Logg in",
|
||||
"tooltip.logout": "Logg ut",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Zaloguj",
|
||||
"tooltip.logout": "Wyloguj",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Entrar",
|
||||
"tooltip.logout": "Sair",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
"room.muteAll": null,
|
||||
"room.stopAllVideo": null,
|
||||
"room.closeMeeting": null,
|
||||
"room.speechUnsupported": null,
|
||||
|
||||
"me.mutedPTT": null,
|
||||
|
||||
"tooltip.login": "Intră în cont",
|
||||
"tooltip.logout": "Deconectare",
|
||||
|
|
|
|||
Loading…
Reference in New Issue