mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-09-12 18:48:40 +00:00
Compare commits
55 Commits
5791
...
improve-ti
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bcdccc1dc6 | ||
|
|
f282dbb5dc | ||
|
|
2e8a635373 | ||
|
|
01ab415941 | ||
|
|
66b4c0cab0 | ||
|
|
78b117cec6 | ||
|
|
b5c68c2b6a | ||
|
|
fa9f4588c2 | ||
|
|
df6eff8804 | ||
|
|
63a4b106ac | ||
|
|
debb63d3d6 | ||
|
|
b9f3448379 | ||
|
|
2a8d0b6e33 | ||
|
|
8cb1e1e233 | ||
|
|
eb70c611c2 | ||
|
|
40f5f4cd0d | ||
|
|
96c977a8ed | ||
|
|
80d1088645 | ||
|
|
5bcdd5173c | ||
|
|
b21beecbea | ||
|
|
beea4b5b62 | ||
|
|
0940659070 | ||
|
|
609e4d646d | ||
|
|
9d829003b4 | ||
|
|
fe2c5f6447 | ||
|
|
43ab8e3ca8 | ||
|
|
332feefa36 | ||
|
|
23b4e93ed9 | ||
|
|
5baa2f839f | ||
|
|
7e5c283e3c | ||
|
|
4b483f7ec8 | ||
|
|
f0118c0fb5 | ||
|
|
ae5723406d | ||
|
|
02721c0c3d | ||
|
|
c58ebd9792 | ||
|
|
35e97450f9 | ||
|
|
a2425f71dd | ||
|
|
c9941dedb9 | ||
|
|
4e8d962027 | ||
|
|
6331f8caa0 | ||
|
|
45b8ce8afb | ||
|
|
076b823ea2 | ||
|
|
2ac410df00 | ||
|
|
f5c0d7da5e | ||
|
|
64322db56a | ||
|
|
b3c4fb6287 | ||
|
|
8258490873 | ||
|
|
95d4c8ffb8 | ||
|
|
55aca37eb6 | ||
|
|
19e510a762 | ||
|
|
b9433368ee | ||
|
|
49dd007167 | ||
|
|
931ef75b4f | ||
|
|
a7529aca7f | ||
|
|
d5f0e3c062 |
14
Makefile
14
Makefile
@@ -1,12 +1,12 @@
|
||||
BUILD_DIR = build
|
||||
CLEANCSS = ./node_modules/.bin/cleancss
|
||||
DEPLOY_DIR = libs
|
||||
LIBJITSIMEET_DIR = node_modules/lib-jitsi-meet/
|
||||
LIBFLAC_DIR = node_modules/libflacjs/dist/min/
|
||||
LIBJITSIMEET_DIR = node_modules/lib-jitsi-meet
|
||||
LIBFLAC_DIR = node_modules/libflacjs/dist/min
|
||||
OLM_DIR = node_modules/@matrix-org/olm
|
||||
RNNOISE_WASM_DIR = node_modules/rnnoise-wasm/dist/
|
||||
RNNOISE_WASM_DIR = node_modules/rnnoise-wasm/dist
|
||||
TFLITE_WASM = react/features/stream-effects/virtual-background/vendor/tflite
|
||||
MEET_MODELS_DIR = react/features/stream-effects/virtual-background/vendor/models/
|
||||
MEET_MODELS_DIR = react/features/stream-effects/virtual-background/vendor/models
|
||||
FACIAL_MODELS_DIR = react/features/facial-recognition/resources
|
||||
NODE_SASS = ./node_modules/.bin/sass
|
||||
NPM = npm
|
||||
@@ -62,9 +62,9 @@ deploy-appbundle:
|
||||
|
||||
deploy-lib-jitsi-meet:
|
||||
cp \
|
||||
$(LIBJITSIMEET_DIR)/lib-jitsi-meet.min.js \
|
||||
$(LIBJITSIMEET_DIR)/lib-jitsi-meet.min.map \
|
||||
$(LIBJITSIMEET_DIR)/lib-jitsi-meet.e2ee-worker.js \
|
||||
$(LIBJITSIMEET_DIR)/dist/umd/lib-jitsi-meet.min.js \
|
||||
$(LIBJITSIMEET_DIR)/dist/umd/lib-jitsi-meet.min.map \
|
||||
$(LIBJITSIMEET_DIR)/dist/umd/lib-jitsi-meet.e2ee-worker.js \
|
||||
$(LIBJITSIMEET_DIR)/connection_optimization/external_connect.js \
|
||||
$(LIBJITSIMEET_DIR)/modules/browser/capabilities.json \
|
||||
$(DEPLOY_DIR)
|
||||
|
||||
@@ -71,8 +71,7 @@ import {
|
||||
JitsiMediaDevicesEvents,
|
||||
JitsiParticipantConnectionStatus,
|
||||
JitsiTrackErrors,
|
||||
JitsiTrackEvents,
|
||||
JitsiRecordingConstants
|
||||
JitsiTrackEvents
|
||||
} from './react/features/base/lib-jitsi-meet';
|
||||
import {
|
||||
getStartWithAudioMuted,
|
||||
@@ -141,10 +140,10 @@ import {
|
||||
setJoiningInProgress,
|
||||
setPrejoinPageVisibility
|
||||
} from './react/features/prejoin';
|
||||
import { getActiveSession } from './react/features/recording/functions';
|
||||
import { disableReceiver, stopReceiver } from './react/features/remote-control';
|
||||
import { setScreenAudioShareState, isScreenAudioShared } from './react/features/screen-share/';
|
||||
import { toggleScreenshotCaptureSummary } from './react/features/screenshot-capture';
|
||||
import { isScreenshotCaptureEnabled } from './react/features/screenshot-capture/functions';
|
||||
import { AudioMixerEffect } from './react/features/stream-effects/audio-mixer/AudioMixerEffect';
|
||||
import { createPresenterEffect } from './react/features/stream-effects/presenter';
|
||||
import { createRnnoiseProcessor } from './react/features/stream-effects/rnnoise';
|
||||
@@ -486,7 +485,7 @@ export default {
|
||||
|
||||
// Always get a handle on the audio input device so that we have statistics (such as "No audio input" or
|
||||
// "Are you trying to speak?" ) even if the user joins the conference muted.
|
||||
const initialDevices = config.disableInitialGUM ? [] : [ 'audio' ];
|
||||
const initialDevices = config.disableInitialGUM ? [] : [ MEDIA_TYPE.AUDIO ];
|
||||
const requestedAudio = !config.disableInitialGUM;
|
||||
let requestedVideo = false;
|
||||
|
||||
@@ -494,7 +493,7 @@ export default {
|
||||
&& !options.startWithVideoMuted
|
||||
&& !options.startAudioOnly
|
||||
&& !options.startScreenSharing) {
|
||||
initialDevices.push('video');
|
||||
initialDevices.push(MEDIA_TYPE.VIDEO);
|
||||
requestedVideo = true;
|
||||
}
|
||||
|
||||
@@ -518,21 +517,35 @@ export default {
|
||||
// spend much time displaying the overlay screen. If GUM is not resolved within 15 seconds it will
|
||||
// probably never resolve.
|
||||
const timeout = browser.isElectron() ? 15000 : 60000;
|
||||
const audioOptions = {
|
||||
devices: [ MEDIA_TYPE.AUDIO ],
|
||||
timeout,
|
||||
firePermissionPromptIsShownEvent: true,
|
||||
fireSlowPromiseEvent: true
|
||||
};
|
||||
|
||||
// FIXME is there any simpler way to rewrite this spaghetti below ?
|
||||
if (options.startScreenSharing) {
|
||||
tryCreateLocalTracks = this._createDesktopTrack()
|
||||
// This option has been deprecated since it is no longer supported as per the w3c spec.
|
||||
// https://w3c.github.io/mediacapture-screen-share/#dom-mediadevices-getdisplaymedia. If the user has not
|
||||
// interacted with the webpage before the getDisplayMedia call, the promise will be rejected by the
|
||||
// browser. This has already been implemented in Firefox and Safari and will be implemented in Chrome soon.
|
||||
// https://bugs.chromium.org/p/chromium/issues/detail?id=1198918
|
||||
// Please note that Spot uses the same config option to use an external video input device label as
|
||||
// screenshare and calls getUserMedia instead of getDisplayMedia for capturing the media. Therefore it
|
||||
// needs to be supported here if _desktopSharingSourceDevice is provided.
|
||||
const errMessage = new Error('startScreenSharing config option is no longer supported for web browsers');
|
||||
const desktopPromise = config._desktopSharingSourceDevice
|
||||
? this._createDesktopTrack()
|
||||
: Promise.reject(errMessage);
|
||||
|
||||
tryCreateLocalTracks = desktopPromise
|
||||
.then(([ desktopStream ]) => {
|
||||
if (!requestedAudio) {
|
||||
return [ desktopStream ];
|
||||
}
|
||||
|
||||
return createLocalTracksF({
|
||||
devices: [ 'audio' ],
|
||||
timeout,
|
||||
firePermissionPromptIsShownEvent: true,
|
||||
fireSlowPromiseEvent: true
|
||||
})
|
||||
return createLocalTracksF(audioOptions)
|
||||
.then(([ audioStream ]) =>
|
||||
[ desktopStream, audioStream ])
|
||||
.catch(error => {
|
||||
@@ -545,14 +558,7 @@ export default {
|
||||
logger.error('Failed to obtain desktop stream', error);
|
||||
errors.screenSharingError = error;
|
||||
|
||||
return requestedAudio
|
||||
? createLocalTracksF({
|
||||
devices: [ 'audio' ],
|
||||
timeout,
|
||||
firePermissionPromptIsShownEvent: true,
|
||||
fireSlowPromiseEvent: true
|
||||
})
|
||||
: [];
|
||||
return requestedAudio ? createLocalTracksF(audioOptions) : [];
|
||||
})
|
||||
.catch(error => {
|
||||
errors.audioOnlyError = error;
|
||||
@@ -587,13 +593,7 @@ export default {
|
||||
return [];
|
||||
}
|
||||
|
||||
return (
|
||||
createLocalTracksF({
|
||||
devices: [ 'audio' ],
|
||||
timeout,
|
||||
firePermissionPromptIsShownEvent: true,
|
||||
fireSlowPromiseEvent: true
|
||||
}));
|
||||
return createLocalTracksF(audioOptions);
|
||||
} else if (requestedAudio && !requestedVideo) {
|
||||
errors.audioOnlyError = err;
|
||||
|
||||
@@ -615,7 +615,7 @@ export default {
|
||||
// Try video only...
|
||||
return requestedVideo
|
||||
? createLocalTracksF({
|
||||
devices: [ 'video' ],
|
||||
devices: [ MEDIA_TYPE.VIDEO ],
|
||||
firePermissionPromptIsShownEvent: true,
|
||||
fireSlowPromiseEvent: true
|
||||
})
|
||||
@@ -1141,8 +1141,11 @@ export default {
|
||||
return room.getParticipants();
|
||||
},
|
||||
|
||||
/**
|
||||
* Used by Jibri to detect when it's alone and the meeting should be terminated.
|
||||
*/
|
||||
get membersCount() {
|
||||
return room.getParticipants().length + 1;
|
||||
return room.getParticipants().filter(p => !p.isHidden()).length + 1;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1571,9 +1574,7 @@ export default {
|
||||
|
||||
this._stopProxyConnection();
|
||||
|
||||
if (config.enableScreenshotCapture) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(false));
|
||||
}
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(false));
|
||||
const tracks = APP.store.getState()['features/base/tracks'];
|
||||
const duration = getLocalVideoTrack(tracks)?.jitsiTrack.getDuration() ?? 0;
|
||||
|
||||
@@ -1952,10 +1953,8 @@ export default {
|
||||
})
|
||||
.then(() => {
|
||||
this.videoSwitchInProgress = false;
|
||||
if (config.enableScreenshotCapture) {
|
||||
if (getActiveSession(APP.store.getState(), JitsiRecordingConstants.mode.FILE)) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(true));
|
||||
}
|
||||
if (isScreenshotCaptureEnabled(APP.store.getState(), false, true)) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(true));
|
||||
}
|
||||
sendAnalytics(createScreenSharingEvent('started'));
|
||||
logger.log('Screen sharing started');
|
||||
|
||||
26
config.js
26
config.js
@@ -98,6 +98,17 @@ var config = {
|
||||
// Disables self-view settings in UI
|
||||
// disableSelfViewSettings: false,
|
||||
|
||||
// screenshotCapture : {
|
||||
// Enables the screensharing capture feature.
|
||||
// enabled: false,
|
||||
//
|
||||
// The mode for the screenshot capture feature.
|
||||
// Can be either 'recording' - screensharing screenshots are taken
|
||||
// only when the recording is also on,
|
||||
// or 'always' - screensharing screenshots are always taken.
|
||||
// mode: 'recording'
|
||||
// }
|
||||
|
||||
// Disables ICE/UDP by filtering out local and remote UDP candidates in
|
||||
// signalling.
|
||||
// webrtcIceUdpDisable: false,
|
||||
@@ -236,7 +247,11 @@ var config = {
|
||||
// max: 5
|
||||
// },
|
||||
|
||||
// Try to start calls with screen-sharing instead of camera video.
|
||||
// This option has been deprecated since it is no longer supported as per the w3c spec.
|
||||
// https://w3c.github.io/mediacapture-screen-share/#dom-mediadevices-getdisplaymedia. If the user has not
|
||||
// interacted with the webpage before the getDisplayMedia call, the promise will be rejected by the browser. This
|
||||
// has already been implemented in Firefox and Safari and will be implemented in Chrome soon.
|
||||
// https://bugs.chromium.org/p/chromium/issues/detail?id=1198918
|
||||
// startScreenSharing: false,
|
||||
|
||||
// Recording
|
||||
@@ -491,7 +506,10 @@ var config = {
|
||||
// defaultRemoteDisplayName: 'Fellow Jitster',
|
||||
|
||||
// Hides the display name from the participant thumbnail
|
||||
// hideDisplayName: false
|
||||
// hideDisplayName: false,
|
||||
|
||||
// Hides the dominant speaker name badge that hovers above the toolbox
|
||||
// hideDominantSpeakerBadge: false,
|
||||
|
||||
// Default language for the user interface.
|
||||
// defaultLanguage: 'en',
|
||||
@@ -724,6 +742,9 @@ var config = {
|
||||
// Enables detecting faces of participants and get their expression and send it to other participants
|
||||
// enableFacialRecognition: true,
|
||||
|
||||
// Enables displaying facial expressions in speaker stats
|
||||
// enableDisplayFacialExpressions: true,
|
||||
|
||||
// Controls the percentage of automatic feedback shown to participants when callstats is enabled.
|
||||
// The default value is 100%. If set to 0, no automatic feedback will be requested
|
||||
// feedbackPercentage: 100,
|
||||
@@ -1210,6 +1231,7 @@ var config = {
|
||||
// 'notify.mutedTitle', // shown when user has been muted upon joining,
|
||||
// 'notify.newDeviceAudioTitle', // prompts the user to use a newly detected audio device
|
||||
// 'notify.newDeviceCameraTitle', // prompts the user to use a newly detected camera
|
||||
// 'notify.participantWantsToJoin', // shown when lobby is enabled and participant requests to join meeting
|
||||
// 'notify.passwordRemovedRemotely', // shown when a password has been removed remotely
|
||||
// 'notify.passwordSetRemotely', // shown when a password has been set remotely
|
||||
// 'notify.raisedHand', // shown when a partcipant used raise hand,
|
||||
|
||||
@@ -74,6 +74,10 @@
|
||||
display: block;
|
||||
}
|
||||
|
||||
.filmstrip__videos.has-scroll {
|
||||
padding-left: 7px;
|
||||
}
|
||||
|
||||
.remote-videos {
|
||||
box-sizing: border-box;
|
||||
|
||||
@@ -91,7 +95,6 @@
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
|
||||
.videocontainer {
|
||||
border: 0;
|
||||
|
||||
@@ -1,80 +1,30 @@
|
||||
.speaker-stats {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
font-weight: 500;
|
||||
|
||||
.speaker-stats-item__status-dot {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
border-radius: 50%;
|
||||
margin: 0 auto;
|
||||
|
||||
&.status-active {
|
||||
background: green;
|
||||
.row{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.avatar {
|
||||
width: 32px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
&.status-inactive {
|
||||
background: gray;
|
||||
.name-time {
|
||||
width: calc(100% - 48px);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.status-user-left {
|
||||
color: $placeHolderColor;
|
||||
}
|
||||
|
||||
.speaker-stats-item__status,
|
||||
.speaker-stats-item__name,
|
||||
.speaker-stats-item__time,
|
||||
.speaker-stats-item__name_expressions_on,
|
||||
.speaker-stats-item__time_expressions_on,
|
||||
.speaker-stats-item__expression {
|
||||
display: inline-block;
|
||||
margin: 5px 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.speaker-stats-item__status {
|
||||
width: 5%;
|
||||
}
|
||||
.speaker-stats-item__name {
|
||||
width: 40%;
|
||||
}
|
||||
.speaker-stats-item__time {
|
||||
width: 55%;
|
||||
}
|
||||
.speaker-stats-item__name_expressions_on {
|
||||
width: 20%;
|
||||
}
|
||||
.speaker-stats-item__time_expressions_on {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.speaker-stats-item__expression {
|
||||
width: 7%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media(max-width: 750px) {
|
||||
.speaker-stats-item__name_expressions_on {
|
||||
width: 25%;
|
||||
.name-time_expressions-on {
|
||||
width: calc(47% - 48px);
|
||||
}
|
||||
.speaker-stats-item__time_expressions_on {
|
||||
width: 30%;
|
||||
.expressions {
|
||||
width: calc(53% - 29px);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.expression {
|
||||
width: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.speaker-stats-item__expression {
|
||||
width: 10%;
|
||||
}
|
||||
}
|
||||
|
||||
.speaker-stats-item__name,
|
||||
.speaker-stats-item__time,
|
||||
.speaker-stats-item__name_expressions_on,
|
||||
.speaker-stats-item__time_expressions_on,
|
||||
.speaker-stats-item__expression {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
9
debian/jitsi-meet-prosody.postinst
vendored
9
debian/jitsi-meet-prosody.postinst
vendored
@@ -204,6 +204,8 @@ case "$1" in
|
||||
fi
|
||||
fi
|
||||
|
||||
CERT_ADDED_TO_TRUST="false"
|
||||
|
||||
if [ ! -f /var/lib/prosody/$JICOFO_AUTH_DOMAIN.crt ]; then
|
||||
# prosodyctl takes care for the permissions
|
||||
# echo for using all default values
|
||||
@@ -220,6 +222,8 @@ case "$1" in
|
||||
# store not get re-generated with latest changes
|
||||
update-ca-certificates -f
|
||||
|
||||
CERT_ADDED_TO_TRUST="true"
|
||||
|
||||
# don't fail on systems with custom config ($PROSODY_HOST_CONFIG is missing)
|
||||
if [ -f $PROSODY_HOST_CONFIG ]; then
|
||||
# now let's add the ssl cert for the auth. domain (we use # as a sed delimiter cause filepaths are confused with default / delimiter)
|
||||
@@ -232,6 +236,11 @@ case "$1" in
|
||||
|
||||
if [ "$PROSODY_CONFIG_PRESENT" = "false" ]; then
|
||||
invoke-rc.d prosody restart || true
|
||||
|
||||
# In case we had updated the certificates and restarted prosody, let's restart and the bridge if possible
|
||||
if [ -d /run/systemd/system ] && [ "$CERT_ADDED_TO_TRUST" = "true" ]; then
|
||||
systemctl restart jitsi-videobridge2.service >/dev/null || true
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ var interfaceConfig = {
|
||||
|
||||
LANG_DETECTION: true, // Allow i18n to detect the system language
|
||||
LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live', // Documentation reference for the live streaming feature.
|
||||
LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9
|
||||
LOCAL_THUMBNAIL_RATIO: 1, // 1:1
|
||||
|
||||
/**
|
||||
* Maximum coefficient of the ratio of the large video to the visible area
|
||||
|
||||
@@ -14,10 +14,12 @@
|
||||
"esUS": "スペイン語 (ラテンアメリカ)",
|
||||
"et": "エストニア語",
|
||||
"eu": "バスク語",
|
||||
"fa": "ペルシア語",
|
||||
"fi": "フィンランド語",
|
||||
"fr": "フランス語",
|
||||
"frCA": "フランス語 (カナダ)",
|
||||
"he": "ヘブライ語",
|
||||
"hi": "ヒンディー語",
|
||||
"hr": "クロアチア語",
|
||||
"hu": "ハンガリー語",
|
||||
"hy": "アルメニア語",
|
||||
@@ -27,18 +29,23 @@
|
||||
"kab": "カビル語",
|
||||
"ko": "韓国語",
|
||||
"lt": "リトアニア語",
|
||||
"lv": "ラトビア語",
|
||||
"ml": "マラヤーラム語",
|
||||
"mr": "マラーティー語",
|
||||
"nl": "オランダ語",
|
||||
"oc": "オック語",
|
||||
"pl": "ポーランド語",
|
||||
"pt": "ポルトガル語",
|
||||
"ptBR": "ポルトガル語 (ブラジル)",
|
||||
"ro": "ルーマニア語",
|
||||
"ru": "ロシア語",
|
||||
"sc": "サルデーニャ語",
|
||||
"sk": "スロバキア語",
|
||||
"sl": "スロベニア語",
|
||||
"sq": "アルバニア語",
|
||||
"sr": "セルビア語",
|
||||
"sv": "スウェーデン語",
|
||||
"te": "テルグ語",
|
||||
"th": "タイ語",
|
||||
"tr": "トルコ語",
|
||||
"uk": "ウクライナ語",
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"serviceUnavailable": "Diens nie beskikbaar nie",
|
||||
"sessTerminated": "Oproep gestaak",
|
||||
"shareVideoLinkError": "Gee asb. ’n korrekte YouTube-skakel.",
|
||||
"shareVideoLinkError": "Gee asb. ’n korrekte skakel.",
|
||||
"shareVideoTitle": "Deel ’n video",
|
||||
"shareYourScreen": "Deel u skerm",
|
||||
"shareYourScreenDisabled": "Skermdeling gedeaktiveer.",
|
||||
@@ -568,7 +568,7 @@
|
||||
"remoteMute": "",
|
||||
"shareRoom": "Nooi iemand",
|
||||
"shareYourScreen": "Wissel skermdeling",
|
||||
"sharedvideo": "Wissel YouTube-videodeling",
|
||||
"sharedvideo": "Wissel videodeling",
|
||||
"shortcuts": "Wissel kortpaaie",
|
||||
"show": "",
|
||||
"speakerStats": "Wissel sprekerstatistiek",
|
||||
@@ -605,14 +605,14 @@
|
||||
"raiseHand": "Lig / laat sak u hand",
|
||||
"raiseYourHand": "",
|
||||
"shareRoom": "Nooi iemand",
|
||||
"sharedvideo": "Deel ’n YouTube-video",
|
||||
"sharedvideo": "Deel ’n video",
|
||||
"shortcuts": "Sien kortpaaie",
|
||||
"speakerStats": "Sprekerstatistiek",
|
||||
"startScreenSharing": "",
|
||||
"startSubtitles": "",
|
||||
"startvideoblur": "",
|
||||
"stopScreenSharing": "",
|
||||
"stopSharedVideo": "Stop YouTube-video",
|
||||
"stopSharedVideo": "Stop video",
|
||||
"stopSubtitles": "",
|
||||
"stopvideoblur": "",
|
||||
"talkWhileMutedPopup": "Besig om te praat? U is gedemp.",
|
||||
|
||||
@@ -365,6 +365,7 @@
|
||||
"shareVideoTitle": "شارك فيديو",
|
||||
"shareYourScreen": "شارك شاشتك",
|
||||
"shareYourScreenDisabled": "مشاركة الشاشة مُعطَّلة",
|
||||
"sharedVideoDialogError": "",
|
||||
"sharedVideoLinkPlaceholder": "رابط اليوتيوب او رابط الفيديو المباشر",
|
||||
"startLiveStreaming": "ابدأ بثًا حيًا",
|
||||
"startRecording": "ابدأ التسجيل",
|
||||
@@ -642,6 +643,8 @@
|
||||
"oldElectronClientDescription1": "يبدو أنَّك تستعمل إصدارًا قديمًا من جيتسي يحوي ثغرة أمنية. تأكد رجاءً من أنَّك حدَّثته إلى ",
|
||||
"oldElectronClientDescription2": "أحدث إصدار",
|
||||
"oldElectronClientDescription3": " الآن!",
|
||||
"participantWantsToJoin": "يريد الانضمام إلى الاجتماع",
|
||||
"participantsWantToJoin": "يريد الانضمام إلى الاجتماع",
|
||||
"passwordRemovedRemotely": "أزال أحد المشاركين {{participantDisplayName}}",
|
||||
"passwordSetRemotely": "ضبط أحد المشاركين $t(lockRoomPasswordUppercase)",
|
||||
"raiseHandAction": "رفع اليد",
|
||||
@@ -661,7 +664,9 @@
|
||||
"videoMutedRemotelyDescription": "You can always turn it on again.",
|
||||
"videoMutedRemotelyTitle": "Your video has been turned off by {{participantDisplayName}}",
|
||||
"videoUnmuteBlockedDescription": "تم حظر عملية إلغاء كتم الكاميرا مؤقتًا بسبب قيود النظام.",
|
||||
"videoUnmuteBlockedTitle": "تم حظر إعادة الكاميرا!"
|
||||
"videoUnmuteBlockedTitle": "تم حظر إعادة الكاميرا!",
|
||||
"viewLobby": "مشاهدة اللوبي",
|
||||
"waitingParticipants": "{{waitingParticipants}} اشخاص"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
@@ -807,6 +812,7 @@
|
||||
"title": "الملف الشخصي"
|
||||
},
|
||||
"raisedHand": "يرد التحدث",
|
||||
"raisedHandsLabel": "عدد الأيدي المرفوعة",
|
||||
"recording": {
|
||||
"authDropboxText": "رفع إلى Dropbox",
|
||||
"availableSpace": "المساحة المتاحة: {{spaceLeft}} ميغابايت (ما يقارب {{duration}} دقيقة تسجيل).",
|
||||
@@ -995,6 +1001,7 @@
|
||||
"remoteVideoMute": "تعطيل كاميرا المشارك",
|
||||
"security": "خيارات الحماية",
|
||||
"selectBackground": "اختر الخلفية",
|
||||
"selfView": "تبديل الواجهة الذاتية",
|
||||
"shareRoom": "ادعُ أحدًا",
|
||||
"shareYourScreen": "بدِّل وضع مشاركة الشاشة",
|
||||
"shareaudio": "مشاركة الصوت",
|
||||
@@ -1160,7 +1167,9 @@
|
||||
"mute": "المشارك مكتوم الصوت",
|
||||
"muted": "مكتوم",
|
||||
"remoteControl": "بدء / إيقاف التحكم البعيد",
|
||||
"screenSharing": "المشارك يشارك شاشته",
|
||||
"show": "أظهر على المنصة",
|
||||
"showSelfView": "إظهار الواجهة الذاتية",
|
||||
"videoMuted": "الكاميرا معطلة",
|
||||
"videomute": "أوقف المشارك الكاميرا"
|
||||
},
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
"sendPrivateMessageTitle": "Адаслаць асабістае паведамленне?",
|
||||
"serviceUnavailable": "Служба недаступная",
|
||||
"sessTerminated": "Сувязь перарвана",
|
||||
"shareVideoLinkError": "Калі ласка, падайце дакладную спасылку на YouTube.",
|
||||
"shareVideoLinkError": "Калі ласка, падайце дакладную спасылку.",
|
||||
"shareVideoTitle": "Падзяліцца відэа",
|
||||
"shareYourScreen": "Паказаць экран",
|
||||
"shareYourScreenDisabled": "Дэманстрацыя экрана адключаная.",
|
||||
|
||||
@@ -280,7 +280,7 @@
|
||||
"sendPrivateMessageTitle": "Да се изпрати лично?",
|
||||
"serviceUnavailable": "Услугата не е налична",
|
||||
"sessTerminated": "Разговорът приключи",
|
||||
"shareVideoLinkError": "Моля, въведете правилна връзка към YouTube.",
|
||||
"shareVideoLinkError": "Моля, въведете правилна връзка.",
|
||||
"shareVideoTitle": "Сподели видео",
|
||||
"shareYourScreen": "Споделяне на екрана",
|
||||
"shareYourScreenDisabled": "Споделянето на екрана не се поддържа.",
|
||||
@@ -679,7 +679,7 @@
|
||||
"remoteMute": "Заглуши участник",
|
||||
"shareRoom": "Добавете някого",
|
||||
"shareYourScreen": "Споделяне на екрана",
|
||||
"sharedvideo": "Пускане/спиране на споделеното YouTube видео",
|
||||
"sharedvideo": "Пускане/спиране на споделеното видео",
|
||||
"shortcuts": "Бързи клавиши",
|
||||
"show": "Покажи на главния екран",
|
||||
"speakerStats": "Показване на статистики за участниците",
|
||||
@@ -729,14 +729,14 @@
|
||||
"raiseHand": "Вдигане/сваляне на ръка",
|
||||
"raiseYourHand": "Поискай думата",
|
||||
"shareRoom": "Добавете някого",
|
||||
"sharedvideo": "Споделяне на YouTube видео",
|
||||
"sharedvideo": "Споделяне на видео",
|
||||
"shortcuts": "Виж бързите клавиши",
|
||||
"speakerStats": "Статистика за говорителите",
|
||||
"startScreenSharing": "Започни споделяне на екрана",
|
||||
"startSubtitles": "Пускане на субтитри",
|
||||
"startvideoblur": "Замъгли фона ми",
|
||||
"stopScreenSharing": "Спиране споделяне на екрана",
|
||||
"stopSharedVideo": "Спиране на YouTube видео",
|
||||
"stopSharedVideo": "Спиране на видео",
|
||||
"stopSubtitles": "Спиране на субтитри",
|
||||
"stopvideoblur": "Спиране замъгляването на фона",
|
||||
"talkWhileMutedPopup": "Опитвате се да говорите? В момента микрофонът Ви е заглушен.",
|
||||
|
||||
@@ -998,7 +998,7 @@
|
||||
"shareRoom": "Convida-hi algú",
|
||||
"shareYourScreen": "Inicia o atura la compartició de pantalla",
|
||||
"shareaudio": "Comparteix l'àudio",
|
||||
"sharedvideo": "Activa o desactiva la compartició de vídeo a Youtube",
|
||||
"sharedvideo": "Activa o desactiva la compartició de vídeo",
|
||||
"shortcuts": "Activa o desactiva les dreceres",
|
||||
"show": "Mostra-ho en l'escena",
|
||||
"silence": "Silenci",
|
||||
|
||||
@@ -311,7 +311,7 @@
|
||||
"sendPrivateMessageTitle": "Poslat soukromě?",
|
||||
"serviceUnavailable": "Služba není dostupná",
|
||||
"sessTerminated": "Volání ukončeno",
|
||||
"shareVideoLinkError": "Zadejte prosím správný odkaz videa na YouTube.",
|
||||
"shareVideoLinkError": "Zadejte prosím správný odkaz videa.",
|
||||
"shareVideoTitle": "Sdílet obraz",
|
||||
"shareYourScreen": "Sdílet obrazovku",
|
||||
"shareYourScreenDisabled": "Sdílení obrazovky vypnuto.",
|
||||
@@ -786,7 +786,7 @@
|
||||
"security": "Možnosti zabezpečení",
|
||||
"shareRoom": "Pozvat někoho",
|
||||
"shareYourScreen": "Sdílet obrazovku",
|
||||
"sharedvideo": "Přepnout sdílení videa z YouTube",
|
||||
"sharedvideo": "Přepnout sdílení videa",
|
||||
"shortcuts": "Zobrazit zkratky",
|
||||
"show": "",
|
||||
"speakerStats": "Statistika řečníků",
|
||||
@@ -841,14 +841,14 @@
|
||||
"raiseYourHand": "Přihlásit se o slovo",
|
||||
"security": "Možnosti zabezpečení",
|
||||
"shareRoom": "Pozvat někoho",
|
||||
"sharedvideo": "Sdílet video z YouTube",
|
||||
"sharedvideo": "Sdílet video",
|
||||
"shortcuts": "Klávesové zkratky",
|
||||
"speakerStats": "Statistiky řečníků",
|
||||
"startScreenSharing": "Začít sdílet obrazovku",
|
||||
"startSubtitles": "Zapnout titulky",
|
||||
"startvideoblur": "Rozmazat pozadí",
|
||||
"stopScreenSharing": "Zastavit sdílení obrazovky",
|
||||
"stopSharedVideo": "Zastavit video z YouTube",
|
||||
"stopSharedVideo": "Zastavit video",
|
||||
"stopSubtitles": "Vypnout titulky",
|
||||
"stopvideoblur": "Zrušit rozmazání",
|
||||
"talkWhileMutedPopup": "Snažíte se mluvit? Máte ztišený mikrofon.",
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
"sendPrivateMessageTitle": "Send privat?",
|
||||
"serviceUnavailable": "Service er ikke tilgængelig",
|
||||
"sessTerminated": "Møde afsluttet",
|
||||
"shareVideoLinkError": "Angiv venligst et gyldigt YouTube link.",
|
||||
"shareVideoLinkError": "Angiv venligst et gyldigt link.",
|
||||
"shareVideoTitle": "Del en video",
|
||||
"shareYourScreen": "Del din skærm",
|
||||
"shareYourScreenDisabled": "Skærmdeling er ikke slået til.",
|
||||
@@ -612,7 +612,7 @@
|
||||
"remoteMute": "Slå lyd fra for deltager",
|
||||
"shareRoom": "Invitér nogen",
|
||||
"shareYourScreen": "Slå skærmdeling fra/til",
|
||||
"sharedvideo": "Slå YouTube-videodeling fra/til",
|
||||
"sharedvideo": "Slå videodeling fra/til",
|
||||
"shortcuts": "Slå genveje fra/til",
|
||||
"show": "Vis",
|
||||
"speakerStats": "Slå højtalerinfo fra/til",
|
||||
@@ -661,14 +661,14 @@
|
||||
"raiseHand": "Ræk hånden op / Tag hånden ned",
|
||||
"raiseYourHand": "Ræk hånden op",
|
||||
"shareRoom": "Invitér deltagere",
|
||||
"sharedvideo": "Del en YouTube-video",
|
||||
"sharedvideo": "Del en video",
|
||||
"shortcuts": "Vis genveje",
|
||||
"speakerStats": "Deltagerstatistik",
|
||||
"startScreenSharing": "Start skærmdeling",
|
||||
"startSubtitles": "Vis undertekster",
|
||||
"startvideoblur": "Slå baggrundssløring til",
|
||||
"stopScreenSharing": "Stop skærmdeling",
|
||||
"stopSharedVideo": "Stop YouTube-video",
|
||||
"stopSharedVideo": "Stop video",
|
||||
"stopSubtitles": "Skjul undertekster",
|
||||
"stopvideoblur": "Slå baggrundssløring fra",
|
||||
"talkWhileMutedPopup": "Forsøger du at sige noget? Din lyd er slået fra.",
|
||||
|
||||
@@ -361,7 +361,7 @@
|
||||
"shareScreenWarningD2": "müssen Sie Ihre Audiofreigabe stoppen und dann die Bildschirmfreigabe mit der Option \"Audio freigeben\" starten.",
|
||||
"shareScreenWarningH1": "Wenn Sie Ihren Bildschirm freigeben wollen:",
|
||||
"shareScreenWarningTitle": "Sie müssen die Audiofreigabe beenden, bevor Sie den Bildschirm freigeben können",
|
||||
"shareVideoLinkError": "Bitte einen gültigen YouTube-Link angeben.",
|
||||
"shareVideoLinkError": "Bitte einen gültigen Link angeben.",
|
||||
"shareVideoTitle": "Video teilen",
|
||||
"shareYourScreen": "Bildschirmfreigabe ein-/ausschalten",
|
||||
"shareYourScreenDisabled": "Bildschirmfreigabe deaktiviert.",
|
||||
@@ -999,7 +999,7 @@
|
||||
"shareRoom": "Person einladen",
|
||||
"shareYourScreen": "Bildschirmfreigabe ein-/ausschalten",
|
||||
"shareaudio": "Audio teilen",
|
||||
"sharedvideo": "YouTube-Videofreigabe ein-/ausschalten",
|
||||
"sharedvideo": "Videofreigabe ein-/ausschalten",
|
||||
"shortcuts": "Tastenkombinationen ein-/ausblenden",
|
||||
"show": "Im Vordergrund anzeigen",
|
||||
"silence": "Stille",
|
||||
@@ -1076,7 +1076,7 @@
|
||||
"selectBackground": "Hintergrund auswählen",
|
||||
"shareRoom": "Person einladen",
|
||||
"shareaudio": "Audio teilen",
|
||||
"sharedvideo": "YouTube-Video teilen",
|
||||
"sharedvideo": "Video teilen",
|
||||
"shortcuts": "Tastenkürzel anzeigen",
|
||||
"silence": "Stille",
|
||||
"speakerStats": "Sprechstatistik",
|
||||
@@ -1084,7 +1084,7 @@
|
||||
"startSubtitles": "Untertitel einschalten",
|
||||
"stopAudioSharing": "Audiofreigabe stoppen",
|
||||
"stopScreenSharing": "Bildschirmfreigabe stoppen",
|
||||
"stopSharedVideo": "YouTube-Video stoppen",
|
||||
"stopSharedVideo": "Video stoppen",
|
||||
"stopSubtitles": "Untertitel ausschalten",
|
||||
"surprised": "Überrascht",
|
||||
"talkWhileMutedPopup": "Versuchen Sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.",
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
"sendPrivateMessageTitle": "Θέλετε να στείλετε ιδιωτικά;",
|
||||
"serviceUnavailable": "Η υπηρεσία δεν είναι διαθέσιμη",
|
||||
"sessTerminated": "Η κλήση τερματίστηκε",
|
||||
"shareVideoLinkError": "Παρακαλώ δώστε έναν σωστό σύνδεσμο youtube.",
|
||||
"shareVideoLinkError": "Παρακαλώ δώστε έναν σωστό σύνδεσμο.",
|
||||
"shareVideoTitle": "Μοιραστείτε ένα βίντεο",
|
||||
"shareYourScreen": "Μοιραστείτε την οθόνη σας",
|
||||
"shareYourScreenDisabled": "Η κοινή χρήση οθόνης απενεργοποιήθηκε.",
|
||||
@@ -724,7 +724,7 @@
|
||||
"security": "Επιλογές ασφαλείας",
|
||||
"shareRoom": "Προσκαλέστε κάποιον",
|
||||
"shareYourScreen": "Εναλλαγή κοινής χρήσης οθόνης",
|
||||
"sharedvideo": "Εναλλαγή κοινής χρήσης βίντεο στο Youtube",
|
||||
"sharedvideo": "Εναλλαγή κοινής χρήσης βίντεο",
|
||||
"shortcuts": "Εναλλαγή συντομεύσεων",
|
||||
"show": "Εμφάνιση στη σκηνή",
|
||||
"speakerStats": "Εναλλαγή στατιστικών ομιλητών",
|
||||
@@ -778,14 +778,14 @@
|
||||
"raiseYourHand": "Σηκώστε το χέρι σας",
|
||||
"security": "Επιλογές ασφαλείας",
|
||||
"shareRoom": "Προσκαλέστε κάποιον",
|
||||
"sharedvideo": "Μοιραστείτε βίντεο στο YouTube",
|
||||
"sharedvideo": "Μοιραστείτε βίντεο",
|
||||
"shortcuts": "Δείτε τις συντομεύσεις",
|
||||
"speakerStats": "Στατιστικά ομιλητών",
|
||||
"startScreenSharing": "Ξεκινήστε την κοινή χρήση οθόνης",
|
||||
"startSubtitles": "Έναρξη υποτίτλων",
|
||||
"startvideoblur": "Θόλωσε το φόντο μου",
|
||||
"stopScreenSharing": "Διακόψτε την κοινή χρήση οθόνης",
|
||||
"stopSharedVideo": "Σταμάτημα του βίντεο YouTube",
|
||||
"stopSharedVideo": "Σταμάτημα του βίντεο",
|
||||
"stopSubtitles": "Σταμάτημα υποτίτλων",
|
||||
"stopvideoblur": "Απενεργοποίηση θόλωσης του φόντου",
|
||||
"talkWhileMutedPopup": "Προσπαθείτε να μιλήσετε; Είστε σε σίγαση.",
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
"sendPrivateMessageTitle": "",
|
||||
"serviceUnavailable": "Service unavailable",
|
||||
"sessTerminated": "Call terminated",
|
||||
"shareVideoLinkError": "Please provide a correct youtube link.",
|
||||
"shareVideoLinkError": "Please provide a correct video link.",
|
||||
"shareVideoTitle": "Share a video",
|
||||
"shareYourScreen": "Share your screen",
|
||||
"shareYourScreenDisabled": "Screen sharing disabled.",
|
||||
@@ -622,7 +622,7 @@
|
||||
"remoteMute": "Mute participant",
|
||||
"shareRoom": "Invite someone",
|
||||
"shareYourScreen": "Toggle screenshare",
|
||||
"sharedvideo": "Toggle YouTube video sharing",
|
||||
"sharedvideo": "Toggle video sharing",
|
||||
"shortcuts": "Toggle shortcuts",
|
||||
"show": "Show on stage",
|
||||
"speakerStats": "Toggle speaker statistics",
|
||||
@@ -659,14 +659,14 @@
|
||||
"raiseHand": "Raise / Lower your hand",
|
||||
"raiseYourHand": "Raise your hand",
|
||||
"shareRoom": "Invite someone",
|
||||
"sharedvideo": "Share a YouTube video",
|
||||
"sharedvideo": "Share video",
|
||||
"shortcuts": "View shortcuts",
|
||||
"speakerStats": "Speaker stats",
|
||||
"startScreenSharing": "Start screen sharing",
|
||||
"startSubtitles": "Start subtitles",
|
||||
"startvideoblur": "",
|
||||
"stopScreenSharing": "Stop screen sharing",
|
||||
"stopSharedVideo": "Stop YouTube video",
|
||||
"stopSharedVideo": "Stop video",
|
||||
"stopSubtitles": "Stop subtitles",
|
||||
"stopvideoblur": "",
|
||||
"talkWhileMutedPopup": "Trying to speak? You are muted.",
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
"sendPrivateMessageTitle": "Sendi private?",
|
||||
"serviceUnavailable": "Servo ne disponeblas",
|
||||
"sessTerminated": "Voko finita",
|
||||
"shareVideoLinkError": "Bonvolu doni ĝustan ligilon de YouTube",
|
||||
"shareVideoLinkError": "Bonvolu doni ĝustan ligilon",
|
||||
"shareVideoTitle": "Kundividi videon",
|
||||
"shareYourScreen": "Kundividi vian ekranon",
|
||||
"shareYourScreenDisabled": "Kundividado de ekrano malŝaltita.",
|
||||
@@ -635,7 +635,7 @@
|
||||
"remoteMute": "Silentigi partoprenanton",
|
||||
"shareRoom": "Inviti iun",
|
||||
"shareYourScreen": "Baskuligi kundividadon de ekrano",
|
||||
"sharedvideo": "Baskuligi kundividadon de videoj el YouTube",
|
||||
"sharedvideo": "Baskuligi kundividadon de videoj",
|
||||
"shortcuts": "Baskuligi fulmklavojn",
|
||||
"show": "Montri sur scenejo",
|
||||
"speakerStats": "Baskuligi statistikojn pri parolanto",
|
||||
@@ -686,14 +686,14 @@
|
||||
"raiseHand": "Levi / Mallevi vian manon",
|
||||
"raiseYourHand": "Levi vian manon",
|
||||
"shareRoom": "Inviti iun",
|
||||
"sharedvideo": "Kundividi videon el YouTube",
|
||||
"sharedvideo": "Kundividi videon",
|
||||
"shortcuts": "Vidi fulmklavojn",
|
||||
"speakerStats": "Statistikoj pri parolintoj",
|
||||
"startScreenSharing": "Komenci dividadon de ekrano",
|
||||
"startSubtitles": "Komenci subtekstojn",
|
||||
"startvideoblur": "Malnetigi mian fonon",
|
||||
"stopScreenSharing": "Ĉesigi dividadon de ekrano",
|
||||
"stopSharedVideo": "Haltigi videon el YouTube",
|
||||
"stopSharedVideo": "Haltigi videon",
|
||||
"stopSubtitles": "Ĉesigi subtekstojn",
|
||||
"stopvideoblur": "Ĉesigi malnetigon de fono",
|
||||
"talkWhileMutedPopup": "Ĉu vi provas paroli? Vi estas silentigita.",
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
"addContacts": "Invitar a sus contactos",
|
||||
"contacts": "contactos",
|
||||
"copyInvite": "Copiar la invitación a la reunión",
|
||||
"copyLink": "Copiar el link de la reunión",
|
||||
"copyStream": "Copiar el link de la transmisión en vivo",
|
||||
"copyLink": "Copiar el enlace de la reunión",
|
||||
"copyStream": "Copiar el enlace de la transmisión en vivo",
|
||||
"countryNotSupported": "Aún no contamos con soporte a este destino.",
|
||||
"countryReminder": "¿Llamando fuera de los Estados Unidos? ¡Por favor, asegúrese de empezar con el código de país!",
|
||||
"defaultEmail": "Dirección de correo por defecto",
|
||||
@@ -20,10 +20,10 @@
|
||||
"noResults": "No se encontraron coincidencias",
|
||||
"outlookEmail": "Correo de Outlook",
|
||||
"phoneNumbers": "números de teléfono",
|
||||
"searching": "Búscando...",
|
||||
"searching": "Buscando...",
|
||||
"shareInvite": "Compartir la invitación a la reunión",
|
||||
"shareLink": "Compartir el link de la reunion",
|
||||
"shareStream": "Compartir el link de la transmición en vivo",
|
||||
"shareLink": "Compartir el enlace de la reunion",
|
||||
"shareStream": "Compartir el enlace de la transmisión en vivo",
|
||||
"sipAddresses": "direcciones sip",
|
||||
"telephone": "Teléfono: {{number}}",
|
||||
"title": "Invitar a otras personas a esta reunión",
|
||||
@@ -214,8 +214,8 @@
|
||||
"confirm": "Confirmar",
|
||||
"confirmNo": "No",
|
||||
"confirmYes": "Sí",
|
||||
"connectError": "¡Oops! Algo salió mal y no fue posible conectarnos a la conferencia.",
|
||||
"connectErrorWithMsg": "¡Oops! Algo salió mal y no fue posible conectarnos a la conferencia: {{msg}}",
|
||||
"connectError": "¡Ups! Algo salió mal y no fue posible conectarnos a la conferencia.",
|
||||
"connectErrorWithMsg": "¡Ups! Algo salió mal y no fue posible conectarnos a la conferencia: {{msg}}",
|
||||
"connecting": "Conectando",
|
||||
"contactSupport": "Contacta al soporte técnico",
|
||||
"copied": "Copiado",
|
||||
@@ -225,19 +225,19 @@
|
||||
"done": "Listo",
|
||||
"e2eeDescription": "El cifrado de extremo a extremo es actualmente EXPERIMENTAL. Tenga en cuenta que activarlo puede deshabilitar servicios como: grabación, transmisión en vivo y participación telefónica. Además, esta reunión solo funcionará con personas que se unan con un navegador.",
|
||||
"e2eeDisabledDueToMaxModeDescription": "No se puede activar el cifrado de extremo a extremo debido al gran número de participantes en la conferencia.",
|
||||
"e2eeLabel": "Habilitar cifrado Extremo-a-Extremo",
|
||||
"e2eeWarning": "ADVERTENCIA: No todos los participantes de esta reunión soportan el cifrado de extremo a extremo. Si usted habilita esta opción, ellos no podrán verlo ni oírlo.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "ADVERTENCIA: El cifrado de extremo a extremo se desactivará automáticamente si se unen más participantes a la conferencia.",
|
||||
"e2eeLabel": "Habilitar cifrado de extremo a extremo",
|
||||
"e2eeWarning": "ATENCIÓN: No todos los participantes de esta reunión soportan el cifrado de extremo a extremo. Si habilitas esta opción, ellos no podrán verte ni oirte.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "ATENCIÓN: El cifrado de extremo a extremo se desactivará automáticamente si se unen más participantes a la reunión.",
|
||||
"embedMeeting": "Incrustar reunión",
|
||||
"enterDisplayName": "Por favor ingresa tu nombre aquí",
|
||||
"error": "Error",
|
||||
"gracefulShutdown": "Nuestro servicio se encuentra en mantenimiento. Por favor, intente más tarde.",
|
||||
"grantModeratorDialog": "¿Estas seguro de que quieres convertir a este participante en moderator?",
|
||||
"grantModeratorDialog": "¿Estás seguro de que quieres convertir a este participante en moderador?",
|
||||
"grantModeratorTitle": "Convertir en moderador",
|
||||
"hideShareAudioHelper": "No volver a mostrar este diálogo",
|
||||
"incorrectPassword": "Nombre de usuario o contraseña incorrecta",
|
||||
"incorrectRoomLockPassword": "Contraseña incorrecta",
|
||||
"internalError": "¡Oops! Algo salió mal. El siguiente error ocurrió: {{error}}",
|
||||
"internalError": "¡Ups! Algo salió mal. El siguiente error ocurrió: {{error}}",
|
||||
"internalErrorTitle": "Error interno",
|
||||
"kickMessage": "Puede ponerse en contacto con {{participantDisplayName}} para obtener más detalles.",
|
||||
"kickParticipantButton": "Expulsar",
|
||||
@@ -254,7 +254,7 @@
|
||||
"login": "Iniciar sesión",
|
||||
"logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?",
|
||||
"logoutTitle": "Cerrar sesión",
|
||||
"maxUsersLimitReached": "El límite máximo de participantes ha sido alcanzado. Por favor contacta al organizador o intenta más tarde.",
|
||||
"maxUsersLimitReached": "Se ha alcanzado el límite máximo de participantes. Por favor contacta con el organizador o inténtalo más tarde.",
|
||||
"maxUsersLimitReachedTitle": "La reunión está llena.",
|
||||
"micConstraintFailedError": "El micrófono no satisface algunos de los requerimientos.",
|
||||
"micNotFoundError": "No se encontró el micrófono.",
|
||||
@@ -297,7 +297,7 @@
|
||||
"permissionMicRequiredError": "El permiso de micrófono es necesario para participar en conferencias con sonido. Por favor, permítelo en Ajustes",
|
||||
"popupError": "Su navegador está bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuración de seguridad de su navegador y vuelva a intentarlo.",
|
||||
"popupErrorTitle": "Ventana emergente bloqueada",
|
||||
"readMore": "mas",
|
||||
"readMore": "más",
|
||||
"recording": "Grabando",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "No es posible mientras la transmisión en vivo este activa",
|
||||
"recordingDisabledTooltip": "Inicio de grabación desactivado.",
|
||||
@@ -317,7 +317,7 @@
|
||||
"reservationErrorMsg": "Código de error: {{code}}, mensaje: {{msg}}",
|
||||
"retry": "Reintentar",
|
||||
"screenSharingAudio": "Compartir audio",
|
||||
"screenSharingFailed": "¡Oops! ¡Algo salio mal, no se pudo iniciar la compartición de su pantalla!",
|
||||
"screenSharingFailed": "¡Ups! ¡Algo salió mal, no se pudo iniciar la compartición de su pantalla!",
|
||||
"screenSharingFailedTitle": "¡Fallo al compartir su pantalla!",
|
||||
"screenSharingPermissionDeniedError": "¡Uy! Algo salió mal con tus permisos de extensión para compartir pantalla. Vuelve a cargar la página e intenta de nuevo.",
|
||||
"sendPrivateMessage": "Acabas de recibir un mensaje privado. ¿Deseas responder en privado o a todos?",
|
||||
@@ -338,7 +338,7 @@
|
||||
"shareScreenWarningD2": "tienes que dejar de compartir el audio, empezar a compartir la pantalla y marcar la opción \"compartir el audio\".",
|
||||
"shareScreenWarningH1": "Si quieres compartir sólo tu pantalla:",
|
||||
"shareScreenWarningTitle": "Tienes que dejar de compartir el audio antes de compartir la pantalla",
|
||||
"shareVideoLinkError": "Proporciona un enlace de YouTube correcto.",
|
||||
"shareVideoLinkError": "Proporciona un enlace correcto.",
|
||||
"shareVideoTitle": "Compartir un vídeo",
|
||||
"shareYourScreen": "Compartir pantalla",
|
||||
"shareYourScreenDisabled": "Se desactivó la opción para compartir pantalla.",
|
||||
@@ -411,7 +411,7 @@
|
||||
"genericError": "Algo salió mal.",
|
||||
"inviteLiveStream": "Para ver la transmisión en vivo de esta reunión, haz clic en este enlace: {{url}}",
|
||||
"invitePhone": "También puedes entrar por llamada telefónica: Marca al número {{number}}, y al escuchar la contestadora introduce {{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "Si necesitas un número telefónico de otro país, revisa los números disponibles en {{url}}\n\n\nSi además de entrar vía llamada vas a usar otro dispositivo, puedes usar este link para entrar sin audio: {{silentUrl}}",
|
||||
"invitePhoneAlternatives": "Si necesitas un número telefónico de otro país, revisa los números disponibles en {{url}}\n\n\nSi además de entrar vía llamada vas a usar otro dispositivo, puedes usar este enlace para entrar sin audio: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "Para unirse utilizando la dirección SIP, introduzca esto: {{sipUri}}",
|
||||
"inviteTextiOSInviteUrl": "Haz clic en el siguiente enlace para unirte: {{inviteUrl}}.",
|
||||
"inviteTextiOSJoinSilent": "Si marca a través de un teléfono de sala, utilice este enlace para unirse sin conectarse al audio: {{silentUrl}}.",
|
||||
@@ -419,7 +419,7 @@
|
||||
"inviteTextiOSPhone": "Para participar por teléfono, utiliza este número: {{number}},,{{conferenceID}}. Si buscas otro número, ésta es la lista completa: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Estás invitado a unirte a una reunión.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} te esta invitando a una reunión.\n",
|
||||
"inviteURLSecondPart": "\nLink para unirse a la reunión:\n{{url}}\n",
|
||||
"inviteURLSecondPart": "\nEnlace para unirse a la reunión:\n{{url}}\n",
|
||||
"label": "Información de la reunión",
|
||||
"liveStreamURL": "Transmisión en vivo:",
|
||||
"moreNumbers": "Más números",
|
||||
@@ -456,13 +456,13 @@
|
||||
"mute": "Activar o silenciar el micrófono",
|
||||
"pushToTalk": "Presiona para hablar",
|
||||
"raiseHand": "Levantar o bajar la mano",
|
||||
"showSpeakerStats": "Mostrar estadísticas de los hablantes",
|
||||
"showSpeakerStats": "Mostrar estadísticas de los participantes",
|
||||
"toggleChat": "Abrir o cerrar el chat",
|
||||
"toggleFilmstrip": "Mostrar u ocultar miniaturas de vídeo",
|
||||
"toggleParticipantsPane": "Mostrar u ocultar el panel de participantes",
|
||||
"toggleScreensharing": "Cambiar entre cámara y pantalla compartida",
|
||||
"toggleShortcuts": "Mostrar u ocultar atajos del teclado",
|
||||
"videoMute": "Prender o apagar la cámara"
|
||||
"videoMute": "Encender o apagar la cámara"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"busy": "Nuestros servidores andan un poco ocupados. Vuelve a intentarlo en unos minutos.",
|
||||
@@ -710,7 +710,7 @@
|
||||
"videoLowQuality": "Prevemos que su video tendrá baja calidad en términos de velocidad de fotogramas y resolución.",
|
||||
"videoTearing": "Prevemos que su video se pixelará o tendrá artefactos visuales."
|
||||
},
|
||||
"copyAndShare": "Copia y comparte el link de la reuinión",
|
||||
"copyAndShare": "Copia y comparte el enlace de la reunión",
|
||||
"dialInMeeting": "Entrar con llamada telefónica",
|
||||
"dialInPin": "Marca a la reunión e ingresa el código:",
|
||||
"dialing": "Marcando",
|
||||
@@ -818,7 +818,7 @@
|
||||
"desktopShareWarning": "Es necesario reiniciar la pantalla compartida para que los nuevos ajustes surtan efecto.",
|
||||
"devices": "Dispositivos",
|
||||
"followMe": "Todos me siguen",
|
||||
"framesPerSecond": "fotogramas-por-segundo",
|
||||
"framesPerSecond": "fotogramas por segundo",
|
||||
"incomingMessage": "Mensaje entrante",
|
||||
"language": "Idioma",
|
||||
"loggedIn": "Sesión iniciada como {{name}}",
|
||||
@@ -866,7 +866,7 @@
|
||||
},
|
||||
"share": {
|
||||
"dialInfoText": "\n\n=====\n\n¿Deseas entrar por llamada telefónica?\n\n{{defaultDialInNumber}}La lista de números disponibles para la reunión está disponible aquí: \n{{dialInfoPageUrl}}",
|
||||
"mainText": "Haz clic en el link para unirte a la reunión:\n{{roomUrl}}"
|
||||
"mainText": "Haz clic en el enlace para unirte a la reunión:\n{{roomUrl}}"
|
||||
},
|
||||
"speaker": "Participante",
|
||||
"speakerStats": {
|
||||
@@ -938,7 +938,7 @@
|
||||
"shareRoom": "Invitar a alguien",
|
||||
"shareYourScreen": "Alternar pantalla compartida",
|
||||
"shareaudio": "Compartir audio",
|
||||
"sharedvideo": "Alternar vídeo compartido de YouTube",
|
||||
"sharedvideo": "Alternar vídeo compartido",
|
||||
"shortcuts": "Alternar accesos directos",
|
||||
"show": "Mostrar en primer",
|
||||
"silence": "Silencio",
|
||||
@@ -1013,15 +1013,15 @@
|
||||
"selectBackground": "Seleccionar fondo",
|
||||
"shareRoom": "Invitar a alguien",
|
||||
"shareaudio": "Compartir audio",
|
||||
"sharedvideo": "Compartir un vídeo de YouTube",
|
||||
"sharedvideo": "Compartir un vídeo",
|
||||
"shortcuts": "Ver atajos del teclado",
|
||||
"silence": "Silencio",
|
||||
"speakerStats": "Estadísticas de los hablantes",
|
||||
"speakerStats": "Estadísticas de los participantes",
|
||||
"startScreenSharing": "Comenzar a compartir pantalla",
|
||||
"startSubtitles": "Iniciar subtítulos",
|
||||
"stopAudioSharing": "Dejar de compartir el audio",
|
||||
"stopScreenSharing": "Dejar de compartir pantalla",
|
||||
"stopSharedVideo": "Detener vídeo de YouTube",
|
||||
"stopSharedVideo": "Detener vídeo",
|
||||
"stopSubtitles": "Detener subtítulos",
|
||||
"surprised": "Compartir audio",
|
||||
"talkWhileMutedPopup": "¿Intentas hablar? Estás silenciado.",
|
||||
@@ -1160,7 +1160,7 @@
|
||||
"recentList": "Reciente",
|
||||
"recentListDelete": "Eliminar",
|
||||
"recentListEmpty": "Tu historial de reuniones está vacío. Reúnete y aparecerán aquí.",
|
||||
"reducedUIText": "¡Bienvenid@ a {{app}}!",
|
||||
"reducedUIText": "¡Bienvenido a {{app}}!",
|
||||
"roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.",
|
||||
"roomname": "Introduce el nombre de la sala",
|
||||
"roomnameHint": "Introduce el nombre o URL de la sala a la que deseas unirte. Puedes inventar un nombre, simplemente infórmaselo a las personas con las que te reunirás para que introduzcan el mismo nombre.",
|
||||
|
||||
@@ -359,7 +359,7 @@
|
||||
"shareScreenWarningD2": "tienes que dejar de compartir el audio, empezar a compartir la pantalla y marcar la opción \"compartir el audio\".",
|
||||
"shareScreenWarningH1": "Si quieres compartir sólo tu pantalla:",
|
||||
"shareScreenWarningTitle": "Tienes que dejar de compartir el audio antes de compartir la pantalla",
|
||||
"shareVideoLinkError": "Proporciona un enlace de YouTube correcto.",
|
||||
"shareVideoLinkError": "Proporciona un enlace correcto.",
|
||||
"shareVideoTitle": "Compartir un video",
|
||||
"shareYourScreen": "Compartir pantalla",
|
||||
"shareYourScreenDisabled": "Se desactivó la opción para compartir pantalla.",
|
||||
@@ -964,7 +964,7 @@
|
||||
"shareRoom": "Invitar a alguien",
|
||||
"shareYourScreen": "Alternar pantalla compartida",
|
||||
"shareaudio": "Compartir audio",
|
||||
"sharedvideo": "Alternar video compartido de YouTube",
|
||||
"sharedvideo": "Alternar video compartido",
|
||||
"shortcuts": "Alternar accesos directos",
|
||||
"show": "Mostrar en primer plano",
|
||||
"silence": "Silencio",
|
||||
@@ -1039,7 +1039,7 @@
|
||||
"selectBackground": "Seleccionar fondo",
|
||||
"shareRoom": "Invitar a alguien",
|
||||
"shareaudio": "Compartir audio",
|
||||
"sharedvideo": "Compartir un video de YouTube",
|
||||
"sharedvideo": "Compartir un video",
|
||||
"shortcuts": "Ver atajos del teclado",
|
||||
"silence": "Silencio",
|
||||
"speakerStats": "Estadísticas de los hablantes",
|
||||
@@ -1048,7 +1048,7 @@
|
||||
"startvideoblur": "Desenfocar mi fondo",
|
||||
"stopAudioSharing": "Dejar de compartir el audio",
|
||||
"stopScreenSharing": "Dejar de compartir pantalla",
|
||||
"stopSharedVideo": "Detener video de YouTube",
|
||||
"stopSharedVideo": "Detener video",
|
||||
"stopSubtitles": "Detener subtítulos",
|
||||
"stopvideoblur": "Desactivar desenfoque del fondo",
|
||||
"surprised": "Compartir audio",
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
"sendPrivateMessageTitle": "Saada privaatselt?",
|
||||
"serviceUnavailable": "Teenus pole kättesaadav",
|
||||
"sessTerminated": "Kõne lõpetatud",
|
||||
"shareVideoLinkError": "Sisesta korrektne Youtube’i link.",
|
||||
"shareVideoLinkError": "Sisesta korrektne link.",
|
||||
"shareVideoTitle": "Jaga videot",
|
||||
"shareYourScreen": "Jaga ekraani",
|
||||
"shareYourScreenDisabled": "Ekraani jagamine on keelatud.",
|
||||
@@ -615,7 +615,7 @@
|
||||
"remoteMute": "Lülita kasutaja mikrofon välja",
|
||||
"shareRoom": "Kutsu",
|
||||
"shareYourScreen": "Jaga ekraani",
|
||||
"sharedvideo": "Kasuta YouTube’i video jagamist",
|
||||
"sharedvideo": "Kasuta video jagamist",
|
||||
"shortcuts": "Kasuta kiirvalikuid",
|
||||
"show": "Näita laval",
|
||||
"speakerStats": "Kõnelejate statistika",
|
||||
@@ -664,14 +664,14 @@
|
||||
"raiseHand": "Tõsta/langeta kätt",
|
||||
"raiseYourHand": "Tõsta kätt",
|
||||
"shareRoom": "Kutsu",
|
||||
"sharedvideo": "Jaga YouTube’i videot",
|
||||
"sharedvideo": "Jaga videot",
|
||||
"shortcuts": "Vaata kiirvalikuid",
|
||||
"speakerStats": "Kõneleja andmed",
|
||||
"startScreenSharing": "Alust ekraani jagamist",
|
||||
"startSubtitles": "Alusta subtiitrite näitamist",
|
||||
"startvideoblur": "Tausta hägustamine",
|
||||
"stopScreenSharing": "Lõpeta ekraani jagamine",
|
||||
"stopSharedVideo": "Lõpeta YouTube’i video",
|
||||
"stopSharedVideo": "Lõpeta video",
|
||||
"stopSubtitles": "Lõpeta subtiitrite näitamine",
|
||||
"stopvideoblur": "Lülita tausta hägustamine välja",
|
||||
"talkWhileMutedPopup": "Soovid rääkida? Mikrofon on välja lülitatud.",
|
||||
|
||||
@@ -311,7 +311,7 @@
|
||||
"serviceUnavailable": "Zerbitzua ez erabilgarria",
|
||||
"sessTerminated": "Deia amaituta",
|
||||
"sessionRestarted": "Deia zubiak berrabiarazi du",
|
||||
"shareVideoLinkError": "Eman YouTube esteka zuzena.",
|
||||
"shareVideoLinkError": "Eman esteka zuzena.",
|
||||
"shareVideoTitle": "Partekatu bideoa",
|
||||
"shareYourScreen": "Partekatu zure pantaila",
|
||||
"shareYourScreenDisabled": "Pantaila-partekatzea desgaituta.",
|
||||
@@ -823,7 +823,7 @@
|
||||
"shareRoom": "norbait gonbidatu",
|
||||
"shareYourScreen": "Txandakatu pantaila partekatzea",
|
||||
"shareaudio": "Partekatu audioa",
|
||||
"sharedvideo": "Txandakatu YouTube bideoa partekatzen",
|
||||
"sharedvideo": "Txandakatu bideoa partekatzen",
|
||||
"shortcuts": "Txandakatu lasterbideak",
|
||||
"show": "Erakutsi",
|
||||
"speakerStats": "Txandakatu hiztunen estatistikak",
|
||||
@@ -883,13 +883,13 @@
|
||||
"selectBackground": "Aukeratu atzeko planoa",
|
||||
"shareRoom": "Gonbidatu norbait",
|
||||
"shareaudio": "Partekatu audioa",
|
||||
"sharedvideo": "Partekatu YouTube bideoa",
|
||||
"sharedvideo": "Partekatu bideoa",
|
||||
"shortcuts": "Ikusi lasterbideak",
|
||||
"speakerStats": "Hizlariaren estatistikak",
|
||||
"startScreenSharing": "Hasi pantaila partekatzen",
|
||||
"startSubtitles": "Azpitituluak hasi",
|
||||
"stopScreenSharing": "Gelditu pantaila partekatzea",
|
||||
"stopSharedVideo": "YouTuben bideoa gelditu",
|
||||
"stopSharedVideo": "Bideoa gelditu",
|
||||
"stopSubtitles": "Azpitituluak gelditu",
|
||||
"talkWhileMutedPopup": "Hitz egiten saiatzen ari al zara? Mututa zaude.",
|
||||
"tileViewToggle": "Txandakatu fitxa ikuspegia",
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
"screenSharingPermissionDeniedError": "Hups!Jokin meni vikaan näytönjakolaajennuksen käyttöoikeuksissa. Käynnistä uudelleen ja yritä sitten uudelleen.",
|
||||
"serviceUnavailable": "Palvelu ei käytettävissä",
|
||||
"sessTerminated": "Puhelu lopetettu",
|
||||
"shareVideoLinkError": "Anna oikea YouTube-linkki.",
|
||||
"shareVideoLinkError": "Anna oikea linkki.",
|
||||
"shareVideoTitle": "Jaa video",
|
||||
"shareYourScreen": "Jaa näyttö",
|
||||
"shareYourScreenDisabled": "Näytönjako ei ole käytössä.",
|
||||
@@ -568,7 +568,7 @@
|
||||
"remoteMute": "Mykistä osanottaja",
|
||||
"shareRoom": "Kutsu joku",
|
||||
"shareYourScreen": "Säädä näytön jakoa",
|
||||
"sharedvideo": "Säädä YouTube-videon jakoa",
|
||||
"sharedvideo": "Säädä videon jakoa",
|
||||
"shortcuts": "Säädä pikanäppäimiä",
|
||||
"show": "",
|
||||
"speakerStats": "Säädä puhujatilastoja",
|
||||
@@ -605,14 +605,14 @@
|
||||
"raiseHand": "Nosta/laske käsi",
|
||||
"raiseYourHand": "Nosta käsi",
|
||||
"shareRoom": "Kutsu joku",
|
||||
"sharedvideo": "Jaa YouTube-video",
|
||||
"sharedvideo": "Jaa video",
|
||||
"shortcuts": "Näytä pikanäppäimet",
|
||||
"speakerStats": "Puhujatilastot",
|
||||
"startScreenSharing": "Aloita näytön jako",
|
||||
"startSubtitles": "Käynnistä tekstitys",
|
||||
"startvideoblur": "",
|
||||
"stopScreenSharing": "Lopeta näytön jako",
|
||||
"stopSharedVideo": "Pysäytä YouTube-video",
|
||||
"stopSharedVideo": "Pysäytä video",
|
||||
"stopSubtitles": "Lopeta tekstitys",
|
||||
"stopvideoblur": "",
|
||||
"talkWhileMutedPopup": "Yritätkö puhua? Olet mykistettynä.",
|
||||
|
||||
@@ -361,7 +361,7 @@
|
||||
"shareScreenWarningD2": "vous devez arrêter le partage d'audio, démarrer le partage d'écran et cocher l'option \"Partager l'audio\".",
|
||||
"shareScreenWarningH1": "Si vous voulez partager uniquement votre écran:",
|
||||
"shareScreenWarningTitle": "Vous devez cesser de partager votre audio avant de partager votre écran",
|
||||
"shareVideoLinkError": "Veuillez renseigner un lien Youtube fonctionnel.",
|
||||
"shareVideoLinkError": "Veuillez renseigner un lien de diffusion vidéo fonctionnel.",
|
||||
"shareVideoTitle": "Partager une vidéo",
|
||||
"shareYourScreen": "Partager votre écran",
|
||||
"shareYourScreenDisabled": "Le partage d'écran est désactivé.",
|
||||
@@ -1003,7 +1003,7 @@
|
||||
"shareRoom": "Inviter quelqu'un",
|
||||
"shareYourScreen": "Activer / Désactiver le partage d'écran",
|
||||
"shareaudio": "Partager l'audio",
|
||||
"sharedvideo": "Démarrer / Arrêter le partage de vidéo YouTube",
|
||||
"sharedvideo": "Démarrer / Arrêter le partage de vidéo",
|
||||
"shortcuts": "Afficher / Masquer les raccourcis",
|
||||
"show": "Afficher en premier plan",
|
||||
"silence": "Silence",
|
||||
@@ -1080,7 +1080,7 @@
|
||||
"selectBackground": "Sélectionner un arrière-plan",
|
||||
"shareRoom": "Inviter quelqu'un",
|
||||
"shareaudio": "Partager l'audio",
|
||||
"sharedvideo": "Partager une vidéo YouTube",
|
||||
"sharedvideo": "Partager une vidéo",
|
||||
"shortcuts": "Afficher les raccourcis",
|
||||
"silence": "Silence",
|
||||
"speakerStats": "Statistiques de l'interlocuteur",
|
||||
@@ -1088,7 +1088,7 @@
|
||||
"startSubtitles": "Activer les sous-titres",
|
||||
"stopAudioSharing": "Arrêter le partage son",
|
||||
"stopScreenSharing": "Arrêter le partage d'écran",
|
||||
"stopSharedVideo": "Arrêter la vidéo YouTube",
|
||||
"stopSharedVideo": "Arrêter la vidéo",
|
||||
"stopSubtitles": "Désactiver les sous-titres",
|
||||
"surprised": "Surpris",
|
||||
"talkWhileMutedPopup": "Vous voulez parler ? Votre micro est coupé.",
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
"sendPrivateMessageTitle": "Envoyer en privé ?",
|
||||
"serviceUnavailable": "Service non disponible",
|
||||
"sessTerminated": "Appel terminé",
|
||||
"shareVideoLinkError": "Veuillez fournir un lien YouTube correct.",
|
||||
"shareVideoLinkError": "Veuillez fournir un lien correct.",
|
||||
"shareVideoTitle": "Partager une vidéo",
|
||||
"shareYourScreen": "Partager votre écran",
|
||||
"shareYourScreenDisabled": "Le partage d'écran est désactivé.",
|
||||
@@ -594,7 +594,7 @@
|
||||
"remoteMute": "Mettre le participant en sourdine",
|
||||
"shareRoom": "Inviter quelqu'un",
|
||||
"shareYourScreen": "Basculement du partage d'écran",
|
||||
"sharedvideo": "Basculement du partage de vidéo YouTube",
|
||||
"sharedvideo": "Basculement du partage de vidéo",
|
||||
"shortcuts": "Basculement des raccourcis",
|
||||
"show": "",
|
||||
"speakerStats": "Basculement des statistiques d'intervenant",
|
||||
@@ -637,14 +637,14 @@
|
||||
"raiseHand": "Lever / Abaisser votre main",
|
||||
"raiseYourHand": "Lever votre main",
|
||||
"shareRoom": "Inviter quelqu'un",
|
||||
"sharedvideo": "Partager une vidéo YouTube",
|
||||
"sharedvideo": "Partager une vidéo",
|
||||
"shortcuts": "Voir les raccourcis",
|
||||
"speakerStats": "Statistiques d'intervenant",
|
||||
"startScreenSharing": "Démarrer le partage d'écran",
|
||||
"startSubtitles": "Activer les sous-titres",
|
||||
"startvideoblur": "Brouiller mon arrière plan",
|
||||
"stopScreenSharing": "Arrêter le partage d'écran",
|
||||
"stopSharedVideo": "Arrêter la vidéo YouTube",
|
||||
"stopSharedVideo": "Arrêter la vidéo",
|
||||
"stopSubtitles": "Désactiver les sous-titres",
|
||||
"stopvideoblur": "Désactiver le brouillage d'arrière-plan",
|
||||
"talkWhileMutedPopup": "Vous essayez de parler? Vous êtes en sourdine.",
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
"sendPrivateMessageTitle": "Enviar por privado?",
|
||||
"serviceUnavailable": "O servizo non está dispoñíbel",
|
||||
"sessTerminated": "Terminouse a chamada",
|
||||
"shareVideoLinkError": "Forneza unha ligazón de YouTube correcta.",
|
||||
"shareVideoLinkError": "Forneza unha ligazón correcta.",
|
||||
"shareVideoTitle": "Compartir un vídeo",
|
||||
"shareYourScreen": "Compartir a súa pantalla",
|
||||
"shareYourScreenDisabled": "Compartición de pantalla desactivada.",
|
||||
@@ -599,7 +599,7 @@
|
||||
"remoteMute": "Silenciar participante",
|
||||
"shareRoom": "Convidar a alguén",
|
||||
"shareYourScreen": "Trocar a pantalla compartida",
|
||||
"sharedvideo": "Trocar a compartición de YouTube",
|
||||
"sharedvideo": "Trocar a compartición",
|
||||
"shortcuts": "Trocar atallos",
|
||||
"show": "Amosar en primeiro plano",
|
||||
"speakerStats": "Trocar as estatísticas do falante",
|
||||
@@ -644,14 +644,14 @@
|
||||
"raiseHand": "Levantar / Baixar a man",
|
||||
"raiseYourHand": "Levantar a súa man",
|
||||
"shareRoom": "Convidar a alguén",
|
||||
"sharedvideo": "Compartir un vídeo de YouTube",
|
||||
"sharedvideo": "Compartir un vídeo",
|
||||
"shortcuts": "Ver atallos de teclado",
|
||||
"speakerStats": "Estatísticas de falante",
|
||||
"startScreenSharing": "Comezar a compartir pantalla",
|
||||
"startSubtitles": "Comezar subtítulos",
|
||||
"startvideoblur": "Difuminar o meu fondo",
|
||||
"stopScreenSharing": "Parar de compartir pantalla",
|
||||
"stopSharedVideo": "Parar o vídeo de YouTube",
|
||||
"stopSharedVideo": "Parar o vídeo",
|
||||
"stopSubtitles": "Parar subtítulos",
|
||||
"stopvideoblur": "Desactivar o difuminado do fondo",
|
||||
"talkWhileMutedPopup": "Está a tentar falar? Está silenciado.",
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
"screenSharingPermissionDeniedError": "Uh! Nešto se dogodilo s vašim dijeljenjem dozvola za proširenje na zaslonu. Ponovno učitajte i pokušajte ponovno.",
|
||||
"serviceUnavailable": "",
|
||||
"sessTerminated": "",
|
||||
"shareVideoLinkError": "Unesite točnu vezu na youtube.",
|
||||
"shareVideoLinkError": "Unesite točnu vezu.",
|
||||
"shareVideoTitle": "Dijelite videozapis",
|
||||
"shareYourScreen": "Dijelite vaš ekran",
|
||||
"shareYourScreenDisabled": "Dijeljenje ekrana je isključeno.",
|
||||
@@ -610,14 +610,14 @@
|
||||
"raiseHand": "Podigni / spusti ruku",
|
||||
"raiseYourHand": "Podigni ruku",
|
||||
"shareRoom": "Pozovi nekoga",
|
||||
"sharedvideo": "Podijeli YouTube videozapis",
|
||||
"sharedvideo": "Podijeli videozapis",
|
||||
"shortcuts": "Prikaz prečaca",
|
||||
"speakerStats": "Statistika govornika",
|
||||
"startScreenSharing": "Pokreni dijeljenje ekrana",
|
||||
"startSubtitles": "Pokreni podnaslove",
|
||||
"startvideoblur": "",
|
||||
"stopScreenSharing": "Zaustavi dijeljenje ekrana",
|
||||
"stopSharedVideo": "Zaustavi YouTube videozapis",
|
||||
"stopSharedVideo": "Zaustavi videozapis",
|
||||
"stopSubtitles": "Zaustavi podnaslove",
|
||||
"stopvideoblur": "",
|
||||
"talkWhileMutedPopup": "Pokušavaš govoriti? Utišan si.",
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
"sendPrivateMessageTitle": "Privátban legyen elküldve?",
|
||||
"serviceUnavailable": "Szolgáltatás nem elérhető",
|
||||
"sessTerminated": "Hívás megszakadt",
|
||||
"shareVideoLinkError": "Adjon meg egy helyes YouTube linket.",
|
||||
"shareVideoLinkError": "Adjon meg egy helyes linket.",
|
||||
"shareVideoTitle": "Videó megosztása",
|
||||
"shareYourScreen": "Képernyő megosztása",
|
||||
"shareYourScreenDisabled": "Képernyőmegosztás letiltva.",
|
||||
@@ -624,7 +624,7 @@
|
||||
"remoteMute": "Résztvevők némítása",
|
||||
"shareRoom": "Valaki meghívása",
|
||||
"shareYourScreen": "Képernyőmegosztás átváltása",
|
||||
"sharedvideo": "YouTube videó megosztásának átváltása",
|
||||
"sharedvideo": "Videó megosztásának átváltása",
|
||||
"shortcuts": "Gyorsbillentyűk átváltása",
|
||||
"show": "Megjelenítés a színpadon",
|
||||
"speakerStats": "Beszélő statisztika átváltása",
|
||||
@@ -674,14 +674,14 @@
|
||||
"raiseHand": "Kéz felemelése / leengedése",
|
||||
"raiseYourHand": "Kéz felemelése",
|
||||
"shareRoom": "Valaki meghívása",
|
||||
"sharedvideo": "YouTube videó megosztása",
|
||||
"sharedvideo": "Videó megosztása",
|
||||
"shortcuts": "Gyorsbillentyűk megtekintése",
|
||||
"speakerStats": "Beszélő statisztika",
|
||||
"startScreenSharing": "Képernyőmegosztás kezdése",
|
||||
"startSubtitles": "Feliratok kezdése",
|
||||
"startvideoblur": "Háttér elhomályosítása",
|
||||
"stopScreenSharing": "Képernyőmegosztás leállítása",
|
||||
"stopSharedVideo": "YouTube videó leállítása",
|
||||
"stopSharedVideo": "Videó leállítása",
|
||||
"stopSubtitles": "Felirat leállítása",
|
||||
"stopvideoblur": "Háttér elhomályosításának letiltása",
|
||||
"talkWhileMutedPopup": "Úgy tűnik beszélni szeretne, de le van némítva.",
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
"sendPrivateMessageTitle": "Send privately?",
|
||||
"serviceUnavailable": "Service unavailable",
|
||||
"sessTerminated": "Call terminated",
|
||||
"shareVideoLinkError": "Please provide a correct youtube link.",
|
||||
"shareVideoLinkError": "Please provide a correct link.",
|
||||
"shareVideoTitle": "Share a video",
|
||||
"shareYourScreen": "Share your screen",
|
||||
"shareYourScreenDisabled": "Screen sharing disabled.",
|
||||
@@ -627,7 +627,7 @@
|
||||
"remoteMute": "Mute participant",
|
||||
"shareRoom": "Invite someone",
|
||||
"shareYourScreen": "Toggle screenshare",
|
||||
"sharedvideo": "Toggle Youtube video sharing",
|
||||
"sharedvideo": "Toggle video sharing",
|
||||
"shortcuts": "Toggle shortcuts",
|
||||
"show": "Show on stage",
|
||||
"speakerStats": "Toggle speaker statistics",
|
||||
@@ -677,14 +677,14 @@
|
||||
"raiseHand": "Raise / Lower your hand",
|
||||
"raiseYourHand": "Raise your hand",
|
||||
"shareRoom": "Invite someone",
|
||||
"sharedvideo": "Share a YouTube video",
|
||||
"sharedvideo": "Share video",
|
||||
"shortcuts": "View shortcuts",
|
||||
"speakerStats": "Speaker stats",
|
||||
"startScreenSharing": "Start screen sharing",
|
||||
"startSubtitles": "Start subtitles",
|
||||
"startvideoblur": "Blur my background",
|
||||
"stopScreenSharing": "Stop screen sharing",
|
||||
"stopSharedVideo": "Stop YouTube video",
|
||||
"stopSharedVideo": "Stop video",
|
||||
"stopSubtitles": "Stop subtitles",
|
||||
"stopvideoblur": "Disable background blur",
|
||||
"talkWhileMutedPopup": "Trying to speak? You are muted.",
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
"sendPrivateMessageTitle": "Senda sem einkamál?",
|
||||
"serviceUnavailable": "Þjónustan er ekki tiltæk",
|
||||
"sessTerminated": "Símtali er lokið",
|
||||
"shareVideoLinkError": "Settu inn réttan YouTube-tengil.",
|
||||
"shareVideoLinkError": "Settu inn réttan tengil.",
|
||||
"shareVideoTitle": "Deila myndmerki",
|
||||
"shareYourScreen": "Deila skjánum þínum",
|
||||
"shareYourScreenDisabled": "Skjádeiling er óvirk.",
|
||||
@@ -623,7 +623,7 @@
|
||||
"remoteMute": "Þagga niður í þátttakanda",
|
||||
"shareRoom": "Bjóddu einhverjum",
|
||||
"shareYourScreen": "Víxla skjádeilingu af/á",
|
||||
"sharedvideo": "Víxla deilingu Youtube-myndskeiðs af/á",
|
||||
"sharedvideo": "Víxla deilingu myndskeiðs af/á",
|
||||
"shortcuts": "Víxla flýtilyklum af/á",
|
||||
"show": "Birta í glugga",
|
||||
"speakerStats": "Víxla tölfræði ræðumanna af/á",
|
||||
@@ -673,14 +673,14 @@
|
||||
"raiseHand": "Rétta upp / Leggja niður hönd",
|
||||
"raiseYourHand": "Rétta upp höndina",
|
||||
"shareRoom": "Bjóddu einhverjum",
|
||||
"sharedvideo": "Deila YouTube-myndskeiði",
|
||||
"sharedvideo": "Deila myndskeiði",
|
||||
"shortcuts": "Skoða flýtilykla",
|
||||
"speakerStats": "Tölfræði ræðumanns",
|
||||
"startScreenSharing": "Hefja skjádeilingu",
|
||||
"startSubtitles": "Hefja birtingu skjátexta",
|
||||
"startvideoblur": "Móða bakgrunninn minn",
|
||||
"stopScreenSharing": "Hætta skjádeilingu",
|
||||
"stopSharedVideo": "Stöðva YouTube-myndskeið",
|
||||
"stopSharedVideo": "Stöðva myndskeið",
|
||||
"stopSubtitles": "Hætta birtingu skjátexta",
|
||||
"stopvideoblur": "Gera móðun bakgrunns óvirka",
|
||||
"talkWhileMutedPopup": "Ertu að reyna að tala? Þaggað er niður í þér.",
|
||||
|
||||
@@ -338,7 +338,7 @@
|
||||
"shareScreenWarningD2": "devi fermare la condivisione audio, avvia la condivisione dello schermo e spunta \"condividi audio\" option.",
|
||||
"shareScreenWarningH1": "Se vuoi condividere solo lo schermo:",
|
||||
"shareScreenWarningTitle": "Ferma la condivisione audio, per condividere lo schermo",
|
||||
"shareVideoLinkError": "Fornire un link youtube corretto.",
|
||||
"shareVideoLinkError": "Fornire un link corretto.",
|
||||
"shareVideoTitle": "Condividi un video",
|
||||
"shareYourScreen": "Condividi schermo",
|
||||
"shareYourScreenDisabled": "Condivisione schermo disabilitata.",
|
||||
@@ -938,7 +938,7 @@
|
||||
"shareRoom": "Invita qualcuno",
|
||||
"shareYourScreen": "Attiva/disattiva condivisione schermo",
|
||||
"shareaudio": "Condividi audio",
|
||||
"sharedvideo": "Attiva/disattiva condivisione YouTube",
|
||||
"sharedvideo": "Attiva/disattiva condivisione",
|
||||
"shortcuts": "Attiva/disattiva scorciatoie",
|
||||
"show": "Mostra in primo piano",
|
||||
"silence": "Silenzio",
|
||||
@@ -1013,14 +1013,14 @@
|
||||
"selectBackground": "Scegli sfondo",
|
||||
"shareRoom": "Invita partecipante",
|
||||
"shareaudio": "Condividi audio",
|
||||
"sharedvideo": "Condividi un video Youtube",
|
||||
"sharedvideo": "Condividi un video",
|
||||
"shortcuts": "Visualizza scorciatoie",
|
||||
"silence": "Silenzio",
|
||||
"speakerStats": "Statistiche",
|
||||
"startScreenSharing": "Inizia la condivisione dello schermo",
|
||||
"startSubtitles": "Avvia sottotitoli",
|
||||
"stopScreenSharing": "Ferma la condivisione dello schermo",
|
||||
"stopSharedVideo": "Ferma video YouTube",
|
||||
"stopSharedVideo": "Ferma video",
|
||||
"stopSubtitles": "Ferma sottotitoli",
|
||||
"surprised": "Sopresa",
|
||||
"talkWhileMutedPopup": "Stai provando a parlare? Il microfono è disattivato.",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -938,7 +938,7 @@
|
||||
"shareRoom": "Snubget-d albaɛḍ",
|
||||
"shareYourScreen": "Rmed/Sens beṭṭu n ugdil",
|
||||
"shareaudio": "Bḍu ameslaw",
|
||||
"sharedvideo": "Rmed/Sens beṭṭu n tvidyut n Youtube",
|
||||
"sharedvideo": "Rmed/Sens beṭṭu n tvidyut",
|
||||
"shortcuts": "Rmed/Sens inegzumen",
|
||||
"show": "Sken ɣef usayes",
|
||||
"silence": "Tasusmi",
|
||||
@@ -1013,7 +1013,7 @@
|
||||
"selectBackground": "Fren agilal",
|
||||
"shareRoom": "Snubget-d albaɛḍ",
|
||||
"shareaudio": "Bḍu ameslaw",
|
||||
"sharedvideo": "Bḍu tavidyut n Youtube",
|
||||
"sharedvideo": "Bḍu tavidyut",
|
||||
"shortcuts": "Wali inegzumen",
|
||||
"silence": "Tasusmi",
|
||||
"speakerStats": "Addad n yimsiwlen",
|
||||
@@ -1021,7 +1021,7 @@
|
||||
"startSubtitles": "Bdu iduzwilen",
|
||||
"stopAudioSharing": "Seḥbes beṭṭu n umeslaw",
|
||||
"stopScreenSharing": "Seḥbes beṭṭu n ugdil",
|
||||
"stopSharedVideo": "Seḥbes tavidyut n Youtube",
|
||||
"stopSharedVideo": "Seḥbes tavidyut",
|
||||
"stopSubtitles": "Seḥbes iduzwilen",
|
||||
"surprised": "Awham",
|
||||
"talkWhileMutedPopup": "Tettaɛraḍeḍ ad d-temmeslayeḍ? Tettwasgugmeḍ.",
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
"sendPrivateMessageTitle": "Siųsti privačiai?",
|
||||
"serviceUnavailable": "Paslaugos neteikiamos",
|
||||
"sessTerminated": "Skambutis nutrauktas",
|
||||
"shareVideoLinkError": "Prašome pateikti teisinga Youtube adresą.",
|
||||
"shareVideoLinkError": "Prašome pateikti teisinga adresą.",
|
||||
"shareVideoTitle": "Dalintis video",
|
||||
"shareYourScreen": "Dalintis ekrano vaizdu",
|
||||
"shareYourScreenDisabled": "Ekrano dalinimasis negalimas.",
|
||||
@@ -615,7 +615,7 @@
|
||||
"remoteMute": "Nutildyti dalyvius",
|
||||
"shareRoom": "Pakviesti ką nors",
|
||||
"shareYourScreen": "Perjungti vaizdo dalinimasi",
|
||||
"sharedvideo": "Perjungti Youtube vaizdo dalinimasi",
|
||||
"sharedvideo": "Perjungti vaizdo dalinimasi",
|
||||
"shortcuts": "Perjungti trumpinius",
|
||||
"show": "Rodyti viešai",
|
||||
"speakerStats": "Perjungti garsiakalbio nuostatas",
|
||||
@@ -665,14 +665,14 @@
|
||||
"raiseHand": "Pakelti / Nuleisti ranką",
|
||||
"raiseYourHand": "Pakelti ranką",
|
||||
"shareRoom": "Pakviesti ką nors",
|
||||
"sharedvideo": "Pasidalinkite Youtube video",
|
||||
"sharedvideo": "Pasidalinkite video",
|
||||
"shortcuts": "Peržiūrėti trumpinius",
|
||||
"speakerStats": "Garsiakalbio pasirinktys",
|
||||
"startScreenSharing": "Pradėti ekrano dalinimasi",
|
||||
"startSubtitles": "Įjungti subtitrus",
|
||||
"startvideoblur": "Sulieti foną",
|
||||
"stopScreenSharing": "Nebesidalinti vaizdu",
|
||||
"stopSharedVideo": "Išjungti Youtube vaizdą",
|
||||
"stopSharedVideo": "Išjungti vaizdą",
|
||||
"stopSubtitles": "Išjungti subtitrus",
|
||||
"stopvideoblur": "Nesulieti fono",
|
||||
"talkWhileMutedPopup": "Ar bandote kalbėti? Jūs esate begarsio rėžime.",
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
"sendPrivateMessageTitle": "Vēlaties nosūtīt privātu ziņu?",
|
||||
"serviceUnavailable": "Pakalpojums nepieejams",
|
||||
"sessTerminated": "Sesija beigusies",
|
||||
"shareVideoLinkError": "Lūdzu, norādiet derīgu Youtube saiti.",
|
||||
"shareVideoLinkError": "Lūdzu, norādiet derīgu saiti.",
|
||||
"shareVideoTitle": "Kopīgot video",
|
||||
"shareYourScreen": "Kopīgot ekrānu",
|
||||
"shareYourScreenDisabled": "Ekrāna kopīgošana izslēgta",
|
||||
@@ -605,7 +605,7 @@
|
||||
"remoteMute": "Atslēgt dalībnieka mikrofonu",
|
||||
"shareRoom": "Nosūtīt uzaicinājumu",
|
||||
"shareYourScreen": "Ekrāna kopīgošana (iesl./izsl.)",
|
||||
"sharedvideo": "Pārslēgt Youtube video kopīgošanu (iesl./izsl.)",
|
||||
"sharedvideo": "Pārslēgt video kopīgošanu (iesl./izsl.)",
|
||||
"shortcuts": "Īstaustiņi (iesl./izsl.)",
|
||||
"show": "Rādīt tuvplānā",
|
||||
"speakerStats": "Statistika (iesl./izsl.)",
|
||||
@@ -653,14 +653,14 @@
|
||||
"raiseHand": "Vēlos runāt (pacelt/nolaist roku)",
|
||||
"raiseYourHand": "Pacelt roku",
|
||||
"shareRoom": "Nosūtīt uzaicinājumu",
|
||||
"sharedvideo": "Sākt kopīgot YouTube video",
|
||||
"sharedvideo": "Sākt kopīgot video",
|
||||
"shortcuts": "Īstaustiņi (taustiņu kombinācijas)",
|
||||
"speakerStats": "Statistika",
|
||||
"startScreenSharing": "Sākt ekrāna kopīgošanu",
|
||||
"startSubtitles": "Ieslēgt subtitrus",
|
||||
"startvideoblur": "Kameras fona izpludināšanu ieslēgt",
|
||||
"stopScreenSharing": "Beigt ekrāna kopīgošanu",
|
||||
"stopSharedVideo": "Beigt kopīgot YouTube video",
|
||||
"stopSharedVideo": "Beigt kopīgot video",
|
||||
"stopSubtitles": "Izslēgt subtitrus",
|
||||
"stopvideoblur": "Kameras fona izpludināšanu izslēgt",
|
||||
"talkWhileMutedPopup": "Cenšaties runāt? Jums atlsēgta skaņa.",
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"addPeople": {
|
||||
"add": "Uitnodigen",
|
||||
"addContacts": "Nodig uw contacten uit",
|
||||
"contacts": "contacten",
|
||||
"copyInvite": "Uitnodiging voor vergadering kopiëren",
|
||||
"copyLink": "Link naar vergadering kopiëren",
|
||||
"copyStream": "Link naar livestream kopiëren",
|
||||
@@ -16,15 +17,10 @@
|
||||
"inviteMoreMailSubject": "Deelnemen aan {{appName}}-vergadering",
|
||||
"inviteMorePrompt": "Nodig meer personen uit",
|
||||
"linkCopied": "Link gekopieerd naar klembord",
|
||||
"loading": "Personen en telefoonnummers aan het zoeken",
|
||||
"loadingNumber": "Telefoonnummer aan het valideren",
|
||||
"loadingPeople": "Personen om uit te nodigen aan het zoeken",
|
||||
"noResults": "Geen resultaten die overeenkomen met de zoekopdracht",
|
||||
"noValidNumbers": "Voer een telefoonnummer in",
|
||||
"outlookEmail": "Outlook e-mail",
|
||||
"searchNumbers": "Telefoonnummers toevoegen",
|
||||
"searchPeople": "Personen zoeken",
|
||||
"searchPeopleAndNumbers": "Personen zoeken of hun telefoonnummers toevoegen",
|
||||
"phoneNumbers": "telefoonnummers",
|
||||
"searching": "Zoeken...",
|
||||
"shareInvite": "Uitnodiging voor vergadering delen",
|
||||
"shareLink": "Deel de link naar de vergadering om anderen uit te nodigen",
|
||||
"shareStream": "Deel de link naar de livestream",
|
||||
@@ -42,6 +38,27 @@
|
||||
"audioOnly": {
|
||||
"audioOnly": "Lage bandbreedte"
|
||||
},
|
||||
"blankPage": {
|
||||
"meetingEnded": "Vergadering beëindigd."
|
||||
},
|
||||
"breakoutRooms": {
|
||||
"actions": {
|
||||
"add": "Aparte vergaderruimte toevoegen",
|
||||
"close": "Sluiten",
|
||||
"join": "Deelnemen",
|
||||
"leaveBreakoutRoom": "Verlaat aparte vergaderruimte",
|
||||
"more": "Meer",
|
||||
"remove": "Verwijderen",
|
||||
"sendToBreakoutRoom": "Stuur deelnemer naar:"
|
||||
},
|
||||
"defaultName": "Aparte vergaderruimte #{{index}}",
|
||||
"mainRoom": "Hoofdruimte",
|
||||
"notifications": {
|
||||
"joined": "Aparte vergaderruimte \"{{name}}\" binnentreden",
|
||||
"joinedMainRoom": "Hoofdruimte binnentreden",
|
||||
"joinedTitle": "Aparte vergaderruimtes"
|
||||
}
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Een link naar een vergadering toevoegen",
|
||||
"confirmAddLink": "Wilt u een Jitsi-link aan deze afspraak toevoegen?",
|
||||
@@ -87,6 +104,7 @@
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"buttonText": "Installeer Chrome Extensie",
|
||||
"close": "Sluiten",
|
||||
"dontShowAgain": "Laat me dit niet meer zien",
|
||||
"installExtensionText": "Installeer de extensie voor Google Calendar en Office 365 integratie"
|
||||
},
|
||||
@@ -160,7 +178,8 @@
|
||||
"joinInApp": "Deelnemen aan deze vergadering met de app",
|
||||
"launchWebButton": "Starten in web",
|
||||
"title": "Uw vergadering wordt gestart in {{app}}...",
|
||||
"tryAgainButton": "Opnieuw proberen in desktop"
|
||||
"tryAgainButton": "Opnieuw proberen in desktop",
|
||||
"unsupportedBrowser": "Het lijkt erop dat u een browser gebruikt die wij niet ondersteunen."
|
||||
},
|
||||
"defaultLink": "bijv. {{url}}",
|
||||
"defaultNickname": "bijv. Jannie Roze",
|
||||
@@ -259,17 +278,21 @@
|
||||
"micPermissionDeniedError": "U hebt geen toestemming verleend om uw microfoon te gebruiken. U kunt wel deelnemen aan de vergadering, maar anderen kunnen u niet horen. Gebruik de cameraknop in de adresbalk om dit op te lossen.",
|
||||
"micTimeoutError": "Kan de microfoon niet gebruiken vanwege een timeout fout.",
|
||||
"micUnknownError": "Kan de microfoon om een onbekende reden niet gebruiken.",
|
||||
"moderationAudioLabel": "Sta deelnemers toe om voor henzelf dempen op te heffen",
|
||||
"moderationVideoLabel": "Sta deelnemers toe om hun camera aan te zetten",
|
||||
"muteEveryoneDialog": "Weet u zeker dat u iedereen wilt dempen? U kunt het dempen niet opheffen, maar zij kunnen dit wel ieder moment zelf doen.",
|
||||
"muteEveryoneDialogModerationOn": "De deelnemers kunnen te allen tijde een verzoek om te spreken indienen.",
|
||||
"muteEveryoneElseDialog": "Eenmaal gedempt kunt u het dempen niet opheffen, maar zij kunnen dit wel ieder moment zelf doen.",
|
||||
"muteEveryoneElseTitle": "Iedereen dempen behalve {{whom}}?",
|
||||
"muteEveryoneElsesVideoDialog": "Als u de camera's uitzet kan u hem niet meer aanzetten, maar de andere deelnemers kunnen dit wel ieder moment zelf doen.",
|
||||
"muteEveryoneElsesVideoDialog": "Als u de camera's uitzet kunt u hem niet meer aanzetten, maar de andere deelnemers kunnen dit wel ieder moment zelf doen.",
|
||||
"muteEveryoneElsesVideoTitle": "De camera van iedereen behalve {{whom}} uitzetten?",
|
||||
"muteEveryoneSelf": "uzelf",
|
||||
"muteEveryoneStartMuted": "Iedereen start vanaf nu gedempt",
|
||||
"muteEveryoneTitle": "Iedereen dempen?",
|
||||
"muteEveryonesVideoDialog": "Weet u zeker dat u iedereen zijn camera uit wilt zetten? Als u de camera's uitzet kan u hem niet meer aanzetten, maar de andere deelnemers kunnen dit wel ieder moment zelf doen.",
|
||||
"muteEveryonesVideoDialog": "Weet u zeker dat u de camera van iedereen wilt uitzetten? Als u de camera's uitzet kunt u deze niet meer aanzetten, maar de andere deelnemers kunnen dit wel ieder moment zelf doen.",
|
||||
"muteEveryonesVideoDialogModerationOn": "De deelnemers kunnen te allen tijde een verzoek om hun camera aan te zetten indienen.",
|
||||
"muteEveryonesVideoDialogOk": "Uitzetten",
|
||||
"muteEveryonesVideoTitle": "Iedereen zijn camera uitzetten?",
|
||||
"muteEveryonesVideoTitle": "Camera van iedereen uitzetten?",
|
||||
"muteParticipantBody": "U kunt het dempen niet opheffen, maar zij kunnen dit wel ieder moment zelf doen.",
|
||||
"muteParticipantButton": "Dempen",
|
||||
"muteParticipantDialog": "Weet u zeker dat u deze deelnemer wilt dempen? U kunt het dempen niet opheffen, maar deze deelnemer kan dit wel ieder moment zelf doen.",
|
||||
@@ -312,7 +335,7 @@
|
||||
"serviceUnavailable": "Service niet beschikbaar",
|
||||
"sessTerminated": "Gesprek beëindigd",
|
||||
"sessionRestarted": "Gesprek herstart door de server",
|
||||
"shareVideoLinkError": "Geef een juiste YouTube-link op",
|
||||
"shareVideoLinkError": "Geef een juiste link op",
|
||||
"shareVideoTitle": "Een video delen",
|
||||
"shareYourScreen": "Uw scherm delen",
|
||||
"shareYourScreenDisabled": "Schermdeling is uitgeschakeld.",
|
||||
@@ -368,6 +391,7 @@
|
||||
"addPassword": "$t(lockRoomPasswordUppercase) toevoegen",
|
||||
"cancelPassword": "$t(lockRoomPasswordUppercase) annuleren",
|
||||
"conferenceURL": "Link:",
|
||||
"copyNumber": "Kopieer nummer",
|
||||
"country": "Land",
|
||||
"dialANumber": "Om deel te nemen aan uw vergadering, belt u een van deze nummers en voert u vervolgens de pincode in.",
|
||||
"dialInConferenceID": "Pincode:",
|
||||
@@ -421,7 +445,7 @@
|
||||
"toggleFilmstrip": "Videominiaturen weergeven of verbergen",
|
||||
"toggleScreensharing": "Wisselen tussen camera en schermdeling",
|
||||
"toggleShortcuts": "Sneltoetsen weergeven of verbergen",
|
||||
"videoMute": "Uw camera starten of stoppen"
|
||||
"videoMute": "Uw camera aanzetten of uitzetten"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"busy": "Er wordt gewerkt aan het vrijmaken van streamingmiddelen. Probeer het over enkele minuten opnieuw.",
|
||||
@@ -458,6 +482,8 @@
|
||||
"youtubeTerms": "Servicevoorwaarden YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Toelaten",
|
||||
"admitAll": "Allen toelaten",
|
||||
"allow": "Toestaan",
|
||||
"backToKnockModeButton": "Geen wachtwoord, vraag om deel te mogen nemen",
|
||||
"dialogTitle": "Lobby-modus",
|
||||
@@ -469,6 +495,7 @@
|
||||
"enableDialogText": "Met de lobby-modus kunt u uw vergadering beveiligen, door deelnemers alleen toe te laten na een formele goedkeuring van een moderator.",
|
||||
"enterPasswordButton": "Voer wachtwoord voor vergadering in",
|
||||
"enterPasswordTitle": "Voer wachtwoord in om deel te nemen aan vergadering",
|
||||
"errorMissingPassword": "Voer alstublieft het wachtwoord van de vergadering in",
|
||||
"invalidPassword": "Ongeldig wachtwoord",
|
||||
"joinRejectedMessage": "Uw verzoek tot deelname is afgewezen door een moderator.",
|
||||
"joinTitle": "Deelnemen aan vergadering",
|
||||
@@ -488,6 +515,7 @@
|
||||
"passwordField": "Voer wachtwoord voor vergadering in",
|
||||
"passwordJoinButton": "Deelnemen",
|
||||
"reject": "Afwijzen",
|
||||
"rejectAll": "Allen afwijzen",
|
||||
"toggleLabel": "Lobby inschakelen"
|
||||
},
|
||||
"localRecording": {
|
||||
@@ -528,18 +556,35 @@
|
||||
"me": "ik",
|
||||
"notify": {
|
||||
"OldElectronAPPTitle": "Beveiligingskwetsbaarheid!",
|
||||
"allowAction": "Toestaan",
|
||||
"allowedUnmute": "U kunt het dempen van uw microfoon opheffen, uw camera aanzetten of uw scherm delen.",
|
||||
"audioUnmuteBlockedTitle": "Dempen opheffen is geblokkeerd!",
|
||||
"chatMessages": "Chatberichten",
|
||||
"connectedOneMember": "{{name}} neemt nu deel aan de vergadering",
|
||||
"connectedThreePlusMembers": "{{name}} en {{count}} anderen nemen nu deel aan de vergadering",
|
||||
"connectedTwoMembers": "{{first}} en {{second}} nemen nu deel aan de vergadering",
|
||||
"disconnected": "verbinding verbroken",
|
||||
"displayNotifications": "Toon meldingen voor",
|
||||
"focus": "Focus van vergadering",
|
||||
"focusFail": "{{component}} niet beschikbaar - probeer over {{ms}} sec. opnieuw",
|
||||
"grantedTo": "Moderatorrechten verleend aan {{to}}!",
|
||||
"groupTitle": "Meldingen",
|
||||
"hostAskedUnmute": "De moderator wil graag dat u spreekt",
|
||||
"invitedOneMember": "{{name}} is uitgenodigd",
|
||||
"invitedThreePlusMembers": "{{name}} en {{count}} anderen zijn uitgenodigd",
|
||||
"invitedTwoMembers": "{{first}} en {{second}} zijn uitgenodigd",
|
||||
"kickParticipant": "{{kicked}} is verwijderd door {{kicker}}",
|
||||
"leftOneMember": "{{name}} heeft de vergadering verlaten",
|
||||
"leftThreePlusMembers": "{{name}} en vele anderen hebben de vergadering verlaten",
|
||||
"leftTwoMembers": "{{first}} en {{second}} hebben de vergadering verlaten",
|
||||
"me": "Ik",
|
||||
"moderationInEffectCSDescription": "Steek uw hand op als u uw scherm wilt delen.",
|
||||
"moderationInEffectCSTitle": "Schermdelen is geblokkeerd door de moderator",
|
||||
"moderationInEffectDescription": "Steek uw hand op als u wilt spreken.",
|
||||
"moderationInEffectTitle": "Uw microfoon is gedempt door de moderator",
|
||||
"moderationInEffectVideoDescription": "Steek uw hand op als u uw camera wilt aanzetten.",
|
||||
"moderationInEffectVideoTitle": "Uw camera is geblokkeerd door de moderator",
|
||||
"moderationRequestFromModerator": "De host vraagt u om dempen op te heffen",
|
||||
"moderationRequestFromParticipant": "Wil graag spreken",
|
||||
"moderator": "Moderatorrechten verleend!",
|
||||
"muted": "U hebt het gesprek gedempt gestart.",
|
||||
"mutedRemotelyDescription": "U kunt het dempen altijd opheffen wanneer u klaar bent om te spreken. Demp opnieuw wanneer u klaar bent, om ruis buiten de vergadering te houden.",
|
||||
@@ -551,9 +596,15 @@
|
||||
"oldElectronClientDescription1": "Het lijkt erop dat u een oude versie van Jitsi Meet gebruikt, waarvan beveiligingskwetsbaarheden bekend zijn. Zorg ervoor dat u nu bijwerkt naar de ",
|
||||
"oldElectronClientDescription2": "nieuwste versie",
|
||||
"oldElectronClientDescription3": "!",
|
||||
"participantWantsToJoin": "Wil deelnemen aan de vergadering",
|
||||
"participantsWantToJoin": "Willen deelnemen aan de vergadering",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) verwijderd door een andere deelnemer",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) ingesteld door een ander deelnemer",
|
||||
"raiseHandAction": "Hand opsteken",
|
||||
"raisedHand": "{{name}} zou graag willen spreken.",
|
||||
"raisedHands": "{{participantName}} en {{raisedHands}} meer mensen",
|
||||
"reactionSounds": "Geluiden uitschakelen",
|
||||
"reactionSoundsForAll": "Geluiden uitschakelen voor iedereen",
|
||||
"somebody": "Iemand",
|
||||
"startSilentDescription": "Neem opnieuw aan de vergadering deel om audio in te schakelen",
|
||||
"startSilentTitle": "U neemt deel zonder audio-output!",
|
||||
@@ -561,7 +612,37 @@
|
||||
"suboptimalExperienceTitle": "Browserwaarschuwing",
|
||||
"unmute": "Dempen opheffen",
|
||||
"videoMutedRemotelyDescription": "U kan hem ten alle tijden weer aanzetten.",
|
||||
"videoMutedRemotelyTitle": "Uw camera is uitgezet door {{participantDisplayName}}!"
|
||||
"videoMutedRemotelyTitle": "Uw camera is uitgezet door {{participantDisplayName}}!",
|
||||
"viewLobby": "Lobby bekijken",
|
||||
"waitingParticipants": "{{waitingParticipants}} mensen"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"allow": "Sta deelnemers toe:",
|
||||
"allowVideo": "Video toestaan",
|
||||
"askUnmute": "Vragen om dempen op te heffen",
|
||||
"audioModeration": "Voor henzelf dempen op te heffen",
|
||||
"blockEveryoneMicCamera": "Blokkeer microfoon en camera van allen",
|
||||
"invite": "Iemand uitnodigen",
|
||||
"moreModerationActions": "Meer moderatoropties",
|
||||
"moreModerationControls": "Meer moderatorinstellingen",
|
||||
"moreParticipantOptions": "Meer deelnemeropties",
|
||||
"mute": "Dempen",
|
||||
"muteAll": "Allen dempen",
|
||||
"muteEveryoneElse": "Alle anderen dempen",
|
||||
"stopEveryonesVideo": "Camera's van iedereen uitzetten",
|
||||
"stopVideo": "Camera uitzetten",
|
||||
"unblockEveryoneMicCamera": "Deblokkeer microfoon en camera van allen",
|
||||
"videoModeration": "Hun camera aan te zetten"
|
||||
},
|
||||
"close": "Sluiten",
|
||||
"header": "Deelnemers",
|
||||
"headings": {
|
||||
"lobby": "Lobby ({{count}})",
|
||||
"participantsList": "Deelnemers aan vergadering ({{count}})",
|
||||
"waitingLobby": "In de lobby aan het wachten ({{count}})"
|
||||
},
|
||||
"search": "Zoek deelnemers"
|
||||
},
|
||||
"passwordDigitsOnly": "Maximaal {{number}} cijfers",
|
||||
"passwordSetRemotely": "ingesteld door een andere deelnemer",
|
||||
@@ -627,6 +708,7 @@
|
||||
"joinAudioByPhone": "Deelnemen met telefoonaudio",
|
||||
"joinMeeting": "Deelnemen aan de vergadering",
|
||||
"joinWithoutAudio": "Deelnemen zonder audio",
|
||||
"keyboardShortcuts": "Sneltoetsen inschakelen",
|
||||
"linkCopied": "Link gekopieerd naar klembord",
|
||||
"lookGood": "Het klinkt alsof uw microfoon naar behoren werkt",
|
||||
"or": "of",
|
||||
@@ -652,6 +734,9 @@
|
||||
"rejected": "Geweigerd",
|
||||
"ringing": "Gaat over..."
|
||||
},
|
||||
"privacyView": {
|
||||
"header": "Privacy"
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Uw weergavenaam instellen",
|
||||
"setEmailInput": "Voer e-mailadres in",
|
||||
@@ -705,8 +790,13 @@
|
||||
"signedIn": "Agenda-afspraken voor {{email}} worden uitgelezen. Klik op de knop 'Verbinding verbreken' hieronder om de toegang tot agenda-afspraken te stoppen.",
|
||||
"title": "Agenda"
|
||||
},
|
||||
"desktopShareFramerate": "Framesnelheid schermdeling",
|
||||
"desktopShareHighFpsWarning": "Een hogere framesnelheid voor schermdeling kan invloed hebben op de bandbreedte. U moet het schermdelen opnieuw beginnen om de nieuwe instellingen toe te passen.",
|
||||
"desktopShareWarning": "U moet het schermdelen opnieuw beginnen om de nieuwe instellingen toe te passen.",
|
||||
"devices": "Apparaten",
|
||||
"followMe": "Iedereen volgt mij",
|
||||
"framesPerSecond": "beelden per seconde",
|
||||
"incomingMessage": "Binnenkomend bericht",
|
||||
"language": "Taal",
|
||||
"loggedIn": "Aangemeld als {{name}}",
|
||||
"microphones": "Microfoons",
|
||||
@@ -717,8 +807,11 @@
|
||||
"selectAudioOutput": "Audio-uitvoer",
|
||||
"selectCamera": "Camera",
|
||||
"selectMic": "Microfoon",
|
||||
"selfView": "Eigen beeld",
|
||||
"sounds": "Geluiden",
|
||||
"speakers": "Speakers",
|
||||
"startAudioMuted": "Iedereen start gedempt",
|
||||
"startReactionsMuted": "Reactiegeluiden voor iedereen dempen",
|
||||
"startVideoMuted": "Iedereen start verborgen",
|
||||
"title": "Instellingen"
|
||||
},
|
||||
@@ -773,6 +866,7 @@
|
||||
"Settings": "Instellingen in- of uitschakelen",
|
||||
"audioOnly": "Alleen audio in- of uitschakelen",
|
||||
"audioRoute": "Het afspeelapparaat selecteren",
|
||||
"breakoutRoom": "Neem deel aan/verlaat aparte vergaderruimte",
|
||||
"callQuality": "Videokwaliteit beheren",
|
||||
"cc": "Ondertiteling in- of uitschakelen",
|
||||
"chat": "Chatvenster in- of uitschakelen",
|
||||
@@ -795,8 +889,6 @@
|
||||
"mute": "Audio dempen in- of uitschakelen",
|
||||
"muteEveryone": "Iedereen dempen",
|
||||
"muteEveryoneElse": "Alle anderen dempen",
|
||||
"muteEveryoneElsesVideo": "Alle andere camera's uitschakelen",
|
||||
"muteEveryonesVideo": "Alle camera's uitschakelen",
|
||||
"pip": "Picture-in-Picture-modus in- of uitschakelen",
|
||||
"privateMessage": "Verstuur privébericht",
|
||||
"profile": "Uw profiel bewerken",
|
||||
@@ -809,7 +901,7 @@
|
||||
"shareRoom": "Iemand uitnodigen",
|
||||
"shareYourScreen": "Schermdeling in- of uitschakelen",
|
||||
"shareaudio": "Audio delen",
|
||||
"sharedvideo": "YouTube-video delen in- of uitschakelen",
|
||||
"sharedvideo": "Video delen in- of uitschakelen",
|
||||
"shortcuts": "Sneltoetsen in- of uitschakelen",
|
||||
"show": "Op podium weergeven",
|
||||
"speakerStats": "Sprekerstatistieken in- of uitschakelen",
|
||||
@@ -827,6 +919,8 @@
|
||||
"callQuality": "Videokwaliteit beheren",
|
||||
"chat": "Chat openen / sluiten",
|
||||
"closeChat": "Chat sluiten",
|
||||
"closeReactionsMenu": "Reactiemenu sluiten",
|
||||
"disableReactionSounds": "U kunt reactiegeluiden uitschakelen voor deze vergadering",
|
||||
"documentClose": "Gedeeld document sluiten",
|
||||
"documentOpen": "Gedeeld document openen",
|
||||
"download": "Download onze apps",
|
||||
@@ -840,6 +934,8 @@
|
||||
"hangup": "Verlaten",
|
||||
"help": "Hulp",
|
||||
"invite": "Personen uitnodigen",
|
||||
"joinBreakoutRoom": "Deelnemen aan aparte vergaderruimte",
|
||||
"leaveBreakoutRoom": "Aparte vergaderruimte verlaten",
|
||||
"lobbyButtonDisable": "Schakel lobby-modus uit",
|
||||
"lobbyButtonEnable": "Schakel lobby-modus in",
|
||||
"login": "Aanmelden",
|
||||
@@ -847,7 +943,7 @@
|
||||
"lowerYourHand": "Uw hand laten zakken",
|
||||
"moreActions": "Meer acties",
|
||||
"moreOptions": "Meer opties",
|
||||
"mute": "Dempen / Dempen opheffen",
|
||||
"mute": "Dempen / dempen opheffen",
|
||||
"muteEveryone": "Iedereen dempen",
|
||||
"muteEveryonesVideo": "Camera's van iedereen uitzetten",
|
||||
"noAudioSignalDesc": "Als u niet met opzet hebt gedempt vanuit systeeminstellingen of hardware, overweeg dan van apparaat te wisselen.",
|
||||
@@ -867,20 +963,19 @@
|
||||
"selectBackground": "Achtergrond selecteren",
|
||||
"shareRoom": "Iemand uitnodigen",
|
||||
"shareaudio": "Audio delen",
|
||||
"sharedvideo": "Een YouTube-video delen",
|
||||
"sharedvideo": "Een video delen",
|
||||
"shortcuts": "Sneltoetsen weergeven",
|
||||
"speakerStats": "Sprekerstatistieken",
|
||||
"startScreenSharing": "Schermdeling starten",
|
||||
"startSubtitles": "Ondertiteling starten",
|
||||
"stopScreenSharing": "Schermdeling stoppen",
|
||||
"stopSharedVideo": "YouTube-video stoppen",
|
||||
"stopSharedVideo": "Video stoppen",
|
||||
"stopSubtitles": "Ondertiteling stoppen",
|
||||
"stopvideoblur": "Achtergrond vervagen uitschakelen",
|
||||
"talkWhileMutedPopup": "Probeert u te spreken? U bent gedempt.",
|
||||
"tileViewToggle": "Tegelweergave in- of uitschakelen",
|
||||
"toggleCamera": "Camera wisselen",
|
||||
"videoSettings": "Instellingen van camera",
|
||||
"videomute": "Camera starten / stoppen"
|
||||
"videomute": "Camera aanzetten / uitzetten"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Ondertiteling starten / stoppen",
|
||||
@@ -944,6 +1039,7 @@
|
||||
"domuteVideoOfOthers": "Camera van alle anderen uitschakelen",
|
||||
"flip": "Omdraaien",
|
||||
"grantModerator": "Moderatorrechten verlenen",
|
||||
"hideSelfView": "Verberg eigen beeld",
|
||||
"kick": "Verwijderen",
|
||||
"moderator": "Moderator",
|
||||
"mute": "Deelnemer is gedempt",
|
||||
|
||||
@@ -361,7 +361,7 @@
|
||||
"shareScreenWarningD2": "devètz arrestar lo partiment àudio, aviar lo partiment d’ecran e clicar l’opcion « partejar l’àudio ».",
|
||||
"shareScreenWarningH1": "Se volètz partejar pas que l’ecran :",
|
||||
"shareScreenWarningTitle": "Devètz arrestar lo partiment àudio abans lo partiment de l’ecran",
|
||||
"shareVideoLinkError": "Se vos plai, provesissètz un ligam Youtube foncional.",
|
||||
"shareVideoLinkError": "Se vos plai, provesissètz un ligam foncional.",
|
||||
"shareVideoTitle": "Partejar una vidèo",
|
||||
"shareYourScreen": "Partejar vòstre ecran",
|
||||
"shareYourScreenDisabled": "Lo partiment d’ecran es desactivat.",
|
||||
@@ -1003,7 +1003,7 @@
|
||||
"shareRoom": "Convidar qualqu’un",
|
||||
"shareYourScreen": "Passar a la captura d’ecran",
|
||||
"shareaudio": "Partejar l’àudio",
|
||||
"sharedvideo": "Passar al partatge de vidèo YouTube",
|
||||
"sharedvideo": "Passar al partatge de vidèo",
|
||||
"shortcuts": "Passar als acorchis",
|
||||
"show": "Mostrar davant",
|
||||
"silence": "Amudir",
|
||||
@@ -1080,7 +1080,7 @@
|
||||
"selectBackground": "Seleccionar un rèireplan",
|
||||
"shareRoom": "Convidar qualqu’un",
|
||||
"shareaudio": "Partejar l’àudio",
|
||||
"sharedvideo": "Partejar una vidèo Youtube",
|
||||
"sharedvideo": "Partejar una vidèo",
|
||||
"shortcuts": "Veire los acorchis clavièr",
|
||||
"silence": "Amudir",
|
||||
"speakerStats": "Estatisticas parladors",
|
||||
@@ -1088,7 +1088,7 @@
|
||||
"startSubtitles": "Aviar los sostítols",
|
||||
"stopAudioSharing": "Arrestar lo partiment àudio",
|
||||
"stopScreenSharing": "Arrestar lo partatge d’ecran",
|
||||
"stopSharedVideo": "Arrestar la vidèo Youtube",
|
||||
"stopSharedVideo": "Arrestar la vidèo",
|
||||
"stopSubtitles": "Arrestar los sostítols",
|
||||
"surprised": "Suspresa",
|
||||
"talkWhileMutedPopup": "Ensajatz de parlar ? Vòstre microfòn es copat.",
|
||||
|
||||
@@ -361,7 +361,7 @@
|
||||
"shareScreenWarningD2": "musisz zatrzymać udostępnianie dźwięku, rozpocząć udostępnianie ekranu i zaznaczyć opcję \"udostępnij dźwięk\".",
|
||||
"shareScreenWarningH1": "Kiedy chcesz udostępniać wyłącznie swój ekran:",
|
||||
"shareScreenWarningTitle": "Aby udostępnić ekran, musisz zatrzymać udostępnianie dźwięku",
|
||||
"shareVideoLinkError": "Podaj proszę prawidłowy link youtube.",
|
||||
"shareVideoLinkError": "Podaj proszę prawidłowy link.",
|
||||
"shareVideoTitle": "Udostępnij wideo",
|
||||
"shareYourScreen": "Włącz udostępnianie ekranu",
|
||||
"shareYourScreenDisabled": "Udostępnianie ekranu wyłączone.",
|
||||
@@ -990,7 +990,7 @@
|
||||
"shareRoom": "Zaproś kogoś",
|
||||
"shareYourScreen": "Przełączanie udostępniania ekranu",
|
||||
"shareaudio": "Udostępnij audio",
|
||||
"sharedvideo": "Przełącz udostępnianie obrazu na YouTube",
|
||||
"sharedvideo": "Przełącz udostępnianie obrazu",
|
||||
"shortcuts": "Przełączanie skrótów klawiszowych",
|
||||
"show": "Pokaż na scenie",
|
||||
"silence": "Cisza",
|
||||
@@ -1067,7 +1067,7 @@
|
||||
"selectBackground": "Wybierz tło",
|
||||
"shareRoom": "Zaproś kogoś",
|
||||
"shareaudio": "Udostępnij audio",
|
||||
"sharedvideo": "Udostępnij wideo z Youtube",
|
||||
"sharedvideo": "Udostępnij wideo",
|
||||
"shortcuts": "Wyświetl skróty",
|
||||
"silence": "Cisza",
|
||||
"speakerStats": "Statystyki mówców",
|
||||
@@ -1075,7 +1075,7 @@
|
||||
"startSubtitles": "Uruchom napisy",
|
||||
"stopAudioSharing": "Zakończ udostępnianie audio",
|
||||
"stopScreenSharing": "Zakończ współdzielenie ekranu",
|
||||
"stopSharedVideo": "Zatrzymaj wideo z YouTube",
|
||||
"stopSharedVideo": "Zatrzymaj wideo",
|
||||
"stopSubtitles": "Zatrzymaj napisy",
|
||||
"surprised": "Zaskoczony",
|
||||
"talkWhileMutedPopup": "Próbujesz mówić? Jesteś wyciszony.",
|
||||
|
||||
@@ -999,7 +999,7 @@
|
||||
"shareRoom": "Convidar alguém",
|
||||
"shareYourScreen": "Iniciar / Parar partilha de ecrã",
|
||||
"shareaudio": "Partilhar áudio",
|
||||
"sharedvideo": "Mudar a partilha de vídeos do YouTube",
|
||||
"sharedvideo": "Mudar a partilha de vídeos",
|
||||
"shortcuts": "Mostrar / Esconder atalhos",
|
||||
"show": "Mostrar no palco",
|
||||
"silence": "Silêncio",
|
||||
@@ -1084,7 +1084,7 @@
|
||||
"startSubtitles": "Iniciar legendas",
|
||||
"stopAudioSharing": "Parar partilha de áudio",
|
||||
"stopScreenSharing": "Parar partilha de ecrã",
|
||||
"stopSharedVideo": "Parar vídeo do YouTube",
|
||||
"stopSharedVideo": "Parar vídeo",
|
||||
"stopSubtitles": "Parar legendas",
|
||||
"surprised": "Surpreendido",
|
||||
"talkWhileMutedPopup": "Está a tentar falar? Está com o microfone desativado.",
|
||||
|
||||
@@ -338,7 +338,7 @@
|
||||
"shareScreenWarningD2": "você precisa parar o compartilhamento de áudio, iniciar o compartilhamento de tela e selecionar a opção \"compartilhar áudio\".",
|
||||
"shareScreenWarningH1": "Se você quiser compartilhar apenas sua tela:",
|
||||
"shareScreenWarningTitle": "Você precisa parar o compartilhamento de áudio antes de compartilhar sua tela",
|
||||
"shareVideoLinkError": "Por favor, forneça um link do youtube correto.",
|
||||
"shareVideoLinkError": "Por favor, forneça um link correto.",
|
||||
"shareVideoTitle": "Compartilhar um vídeo",
|
||||
"shareYourScreen": "Compartilhar sua tela",
|
||||
"shareYourScreenDisabled": "Compartilhamento de tela desativada.",
|
||||
@@ -938,7 +938,7 @@
|
||||
"shareRoom": "Convidar alguém",
|
||||
"shareYourScreen": "Alternar compartilhamento de tela",
|
||||
"shareaudio": "Compartilhar áudio",
|
||||
"sharedvideo": "Alternar compartilhamento de vídeo do YouTube",
|
||||
"sharedvideo": "Alternar compartilhamento de vídeo",
|
||||
"shortcuts": "Alternar atalhos",
|
||||
"show": "Mostrar no palco",
|
||||
"silence": "Silenciar",
|
||||
@@ -1013,7 +1013,7 @@
|
||||
"selectBackground": "Selecionar fundo",
|
||||
"shareRoom": "Convidar alguém",
|
||||
"shareaudio": "Compartilhar áudio",
|
||||
"sharedvideo": "Compartilhar um vídeo do YouTube",
|
||||
"sharedvideo": "Compartilhar um vídeo",
|
||||
"shortcuts": "Ver atalhos",
|
||||
"silence": "Silêncio",
|
||||
"speakerStats": "Estatísticas do Apresentador",
|
||||
@@ -1021,7 +1021,7 @@
|
||||
"startSubtitles": "Iniciar legendas",
|
||||
"stopAudioSharing": "Parar compart. de áudio",
|
||||
"stopScreenSharing": "Parar compart. de tela",
|
||||
"stopSharedVideo": "Parar vídeo do YouTube",
|
||||
"stopSharedVideo": "Parar vídeo",
|
||||
"stopSubtitles": "Parar legendas",
|
||||
"surprised": "Surpresa",
|
||||
"talkWhileMutedPopup": "Tentando falar? Você está em mudo.",
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
"sendPrivateMessageTitle": "",
|
||||
"serviceUnavailable": "Serviciu indisponibil",
|
||||
"sessTerminated": "Apel încheiat",
|
||||
"shareVideoLinkError": "Vă rugam să furnizați un link You Tube corect.",
|
||||
"shareVideoLinkError": "Vă rugam să furnizați un link corect.",
|
||||
"shareVideoTitle": "Partajare video",
|
||||
"shareYourScreen": "Partajare ecran",
|
||||
"shareYourScreenDisabled": "Partajare ecran dezactivată.",
|
||||
@@ -621,7 +621,7 @@
|
||||
"remoteMute": "Comutare mod silențios participant",
|
||||
"shareRoom": "Adăugați persoane",
|
||||
"shareYourScreen": "Activați / dezactivați partajarea ecranului",
|
||||
"sharedvideo": "Comutați partajarea video YouTube",
|
||||
"sharedvideo": "Comutați partajarea video",
|
||||
"shortcuts": "Activați / dezactivați comenzi rapide",
|
||||
"show": "",
|
||||
"speakerStats": "Afișați/ascundeți parametrii difuzorului",
|
||||
@@ -658,14 +658,14 @@
|
||||
"raiseHand": "Ridicați / Coborâți mâna",
|
||||
"raiseYourHand": "Ridicați mâna",
|
||||
"shareRoom": "Adăugați persoane",
|
||||
"sharedvideo": "Partajați un video YouTube",
|
||||
"sharedvideo": "Partajați un video",
|
||||
"shortcuts": "Vizualizare comenzi rapide",
|
||||
"speakerStats": "Parametrii difuzorului",
|
||||
"startScreenSharing": "Inițiere partajare ecran",
|
||||
"startSubtitles": "Inițiere subtitrări",
|
||||
"startvideoblur": "",
|
||||
"stopScreenSharing": "Încheiere partajare ecran",
|
||||
"stopSharedVideo": "Oprire video YouTube",
|
||||
"stopSharedVideo": "Oprire video",
|
||||
"stopSubtitles": "Acundere subtitrări",
|
||||
"stopvideoblur": "",
|
||||
"talkWhileMutedPopup": "Încercați să vorbiți? Microfonul este dezactivat.",
|
||||
|
||||
@@ -312,7 +312,7 @@
|
||||
"sendPrivateMessageTitle": "Отправить личное сообщение?",
|
||||
"serviceUnavailable": "Служба недоступна",
|
||||
"sessTerminated": "Связь прервана",
|
||||
"shareVideoLinkError": "Пожалуйста, укажите корректную ссылку Youtube.",
|
||||
"shareVideoLinkError": "Пожалуйста, укажите корректную ссылку.",
|
||||
"shareVideoTitle": "Поделиться видео",
|
||||
"shareYourScreen": "Показать экран",
|
||||
"shareYourScreenDisabled": "Демонстрация экрана отключена",
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
"sendPrivateMessageTitle": "Boles imbiare custu messàgiu in privadu?",
|
||||
"serviceUnavailable": "Su servìtziu no est a disponimentu",
|
||||
"sessTerminated": "Mutida acabada",
|
||||
"shareVideoLinkError": "Fruni unu ligàmene de youtube curretu.",
|
||||
"shareVideoLinkError": "Fruni unu ligàmene curretu.",
|
||||
"shareVideoTitle": "Cumpartzi unu vìdeu",
|
||||
"shareYourScreen": "Cumpartzi s'ischermu",
|
||||
"shareYourScreenDisabled": "Cumpartzidura de ischermu disativada.",
|
||||
@@ -623,7 +623,7 @@
|
||||
"remoteMute": "Pone partetzipante a sa muda",
|
||||
"shareRoom": "Invita una persone",
|
||||
"shareYourScreen": "Ativa o disativa sa cumpartzidura de ischermu",
|
||||
"sharedvideo": "Ativa o disativa sa cumpartzidura de vìdeos de YouTube",
|
||||
"sharedvideo": "Ativa o disativa sa cumpartzidura de vìdeos",
|
||||
"shortcuts": "Ativa o disativa incurtzaduras",
|
||||
"show": "Ammustra in s'iscena",
|
||||
"speakerStats": "Càmbia istatìsticas de partetzipante",
|
||||
@@ -672,14 +672,14 @@
|
||||
"raiseHand": "Àrtzia o abassa sa manu",
|
||||
"raiseYourHand": "Àrtzia sa manu",
|
||||
"shareRoom": "Invita una persone",
|
||||
"sharedvideo": "Cumpartzi unu vìdeu de YouTube",
|
||||
"sharedvideo": "Cumpartzi unu vìdeu",
|
||||
"shortcuts": "Ammustra incurtzaduras",
|
||||
"speakerStats": "Istatìsticas de partetzipante",
|
||||
"startScreenSharing": "Avia sa cumpartzidura de s'ischermu",
|
||||
"startSubtitles": "Avia sutatìtulos",
|
||||
"startvideoblur": "Isfoca s'isfundu meu",
|
||||
"stopScreenSharing": "Firma sa cumpartzidura de s'ischermu",
|
||||
"stopSharedVideo": "Firma vìdeu de YouTube",
|
||||
"stopSharedVideo": "Firma vìdeu",
|
||||
"stopSubtitles": "Firma sutatìtulos",
|
||||
"stopvideoblur": "Disativa s'isfocadu de s'isfundu",
|
||||
"talkWhileMutedPopup": "Ses chirchende de chistionare? Ses a sa muda.",
|
||||
|
||||
@@ -291,7 +291,7 @@
|
||||
"sendPrivateMessageTitle": "Súkromne poslať?",
|
||||
"serviceUnavailable": "Služba nedostupná",
|
||||
"sessTerminated": "Volanie ukončené",
|
||||
"shareVideoLinkError": "Prosím, zadajte správny Youtube odkaz.",
|
||||
"shareVideoLinkError": "Prosím, zadajte správny odkaz.",
|
||||
"shareVideoTitle": "Zdieľať video",
|
||||
"shareYourScreen": "Zdielať obrazovku",
|
||||
"shareYourScreenDisabled": "Zdieľanie obrazovky vypnuté.",
|
||||
@@ -741,7 +741,7 @@
|
||||
"security": "Nastavenie zabezpečenia",
|
||||
"shareRoom": "Pozvať osobu",
|
||||
"shareYourScreen": "Zdieľanie obrazovky zapnúť/vypnúť",
|
||||
"sharedvideo": "Zdieľanie YouTube videa zapnúť/vypnúť",
|
||||
"sharedvideo": "Zdieľanie videa zapnúť/vypnúť",
|
||||
"shortcuts": "Klávesové skratky zobraziť/skryť",
|
||||
"show": "V popredí zobraziť",
|
||||
"speakerStats": "Štatistiky rečníka zobraziť/skryť",
|
||||
@@ -796,14 +796,14 @@
|
||||
"security": "Nastavenie zabezpečenia",
|
||||
"selectBackground": "Vybrať pozadie",
|
||||
"shareRoom": "Pozvať niekoho",
|
||||
"sharedvideo": "Zdielať YouTube video",
|
||||
"sharedvideo": "Zdielať video",
|
||||
"shortcuts": "Ukázať klávesové skratky",
|
||||
"speakerStats": "Štatistiky rečníka",
|
||||
"startScreenSharing": "Začať zdieľanie obrazovky",
|
||||
"startSubtitles": "Začať titulky",
|
||||
"startvideoblur": "Rozmazať pozadie",
|
||||
"stopScreenSharing": "Ukončiť zdieľanie obrazovky",
|
||||
"stopSharedVideo": "Ukončiť zdielané YouTube video",
|
||||
"stopSharedVideo": "Ukončiť zdielané video",
|
||||
"stopSubtitles": "Ukončiť titulky",
|
||||
"stopvideoblur": "Ukončiť rozmazanie pozadia",
|
||||
"talkWhileMutedPopup": "Skúšate hovoriť? Ste stlmený.",
|
||||
|
||||
@@ -338,7 +338,7 @@
|
||||
"shareScreenWarningD2": "prekiniti morate deljenje zvoka, deliti zaslon in odznačiti opcijo \"deli zvok \".",
|
||||
"shareScreenWarningH1": "Če želite deliti le zaslon:",
|
||||
"shareScreenWarningTitle": "Za deljenje zaslona morate najprej prekiniti deljenje zvoka.",
|
||||
"shareVideoLinkError": "Prosimo, vnesite pravilno Youtube povezavo.",
|
||||
"shareVideoLinkError": "Prosimo, vnesite pravilno povezavo.",
|
||||
"shareVideoTitle": "Delite video",
|
||||
"shareYourScreen": "Delite vaš zaslon",
|
||||
"shareYourScreenDisabled": "Deljenje zaslona je onemogočeno.",
|
||||
@@ -938,7 +938,7 @@
|
||||
"shareRoom": "Povabi druge osebe",
|
||||
"shareYourScreen": "Preklopi deljenje zaslona",
|
||||
"shareaudio": "Deli zvok",
|
||||
"sharedvideo": "Preklopi deljenje Youtube videa",
|
||||
"sharedvideo": "Preklopi deljenje videa",
|
||||
"shortcuts": "Preklopi bližnjice",
|
||||
"show": "Prikaži na sceni",
|
||||
"silence": "Tišina",
|
||||
@@ -1013,7 +1013,7 @@
|
||||
"selectBackground": "Izberi ozadje",
|
||||
"shareRoom": "Povabi nekoga",
|
||||
"shareaudio": "Deli zvok",
|
||||
"sharedvideo": "Deli YouTube video",
|
||||
"sharedvideo": "Deli video",
|
||||
"shortcuts": "Prikaži bližnjice",
|
||||
"silence": "Tišina",
|
||||
"speakerStats": "Statistike govorcev",
|
||||
@@ -1021,7 +1021,7 @@
|
||||
"startSubtitles": "Začni prikaz podnapisov",
|
||||
"stopAudioSharing": "Izklopi deljenje zvoka",
|
||||
"stopScreenSharing": "Prekini deljenje zaslona",
|
||||
"stopSharedVideo": "Ustavi Youtube video",
|
||||
"stopSharedVideo": "Ustavi video",
|
||||
"stopSubtitles": "Prekini prikaz podnapisov",
|
||||
"surprised": "Presenečenje",
|
||||
"talkWhileMutedPopup": "Želite govoriti? Utišani ste.",
|
||||
|
||||
@@ -39,6 +39,28 @@
|
||||
"audioOnly": {
|
||||
"audioOnly": "Gjerësi e ulët bande"
|
||||
},
|
||||
"blankPage": {
|
||||
"meetingEnded": "Takimi përfundoi."
|
||||
},
|
||||
"breakoutRooms": {
|
||||
"actions": {
|
||||
"add": "Shtoni aneks konsultimesh",
|
||||
"autoAssign": "Caktoje automatikisht te anekse konsultimesh",
|
||||
"close": "Mbylle",
|
||||
"join": "Hyni",
|
||||
"leaveBreakoutRoom": "Dilni nga aneks konsultimesh",
|
||||
"more": "Më tepër",
|
||||
"remove": "Hiqe",
|
||||
"sendToBreakoutRoom": "Dërgoje pjesëmarrësin te:"
|
||||
},
|
||||
"defaultName": "Dhomë aneks konsultimesh #{{index}}",
|
||||
"mainRoom": "Dhoma kryesore",
|
||||
"notifications": {
|
||||
"joined": "Po hyhet te dhomë aneks konsultimesh \"{{name}}\"",
|
||||
"joinedMainRoom": "Po hyhet te dhoma kryesore",
|
||||
"joinedTitle": "Dhoma Aneks Konsultimesh"
|
||||
}
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Shtoni një lidhje takimi",
|
||||
"confirmAddLink": "Doni të shtohet një lidhje Jitsi te kjo veprimtari?",
|
||||
@@ -58,7 +80,7 @@
|
||||
"today": "Sot"
|
||||
},
|
||||
"chat": {
|
||||
"enter": "Hyni në dhomë fjalosjeje",
|
||||
"enter": "Hyni në fjalosje",
|
||||
"error": "Gabim: mesazhi juaj s’u dërgua. Arsye: {{error}}",
|
||||
"fieldPlaceHolder": "Shtypni këtu mesazhin tuaj",
|
||||
"message": "Mesazh",
|
||||
@@ -69,13 +91,17 @@
|
||||
"nickname": {
|
||||
"popover": "Zgjidhni një nofkë",
|
||||
"title": "Që të përdorni fjalosjen, jepni një nofkë",
|
||||
"titleWithPolls": "Që të përdorni fjalosjen, jepni një nofkë"
|
||||
"titleWithPolls": "Që të përdorni fjalosjen dhe pyetësorë, jepni një nofkë"
|
||||
},
|
||||
"noMessagesMessage": "Ende s’ka mesazhe te takimi. Filloni një bisedë këtu!",
|
||||
"noMessagesMessage": "Te takimi s’ka ende mesazhe. Nisni një bisedë këtu!",
|
||||
"privateNotice": "Mesazh privat për {{recipient}}",
|
||||
"smileysPanel": "Panel emoji-sh",
|
||||
"tabs": {
|
||||
"chat": "Fjalosje",
|
||||
"polls": "Pyetësorë"
|
||||
},
|
||||
"title": "Fjalosje",
|
||||
"titleWithPolls": "Fjalosje",
|
||||
"titleWithPolls": "Fjalosje dhe Pyetësorë",
|
||||
"you": "ju"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
@@ -154,7 +180,8 @@
|
||||
"joinInApp": "Merrni pjesë në këtë takim duke përdorur aplikacionin",
|
||||
"launchWebButton": "Nise në web",
|
||||
"title": "Po niset takimi juaj në {{app}}…",
|
||||
"tryAgainButton": "Riprovoni në desktop"
|
||||
"tryAgainButton": "Riprovoni në desktop",
|
||||
"unsupportedBrowser": "Duket se përdorni një shfletues që s’e mbulojmë."
|
||||
},
|
||||
"defaultLink": "p.sh., {{url}}",
|
||||
"defaultNickname": "p.sh., Ndrikulla",
|
||||
@@ -176,13 +203,13 @@
|
||||
"dialog": {
|
||||
"Back": "Mbrapsht",
|
||||
"Cancel": "Anuloje",
|
||||
"IamHost": "Jam organizuesi",
|
||||
"IamHost": "Jam organizatori",
|
||||
"Ok": "OK",
|
||||
"Remove": "Hiqe",
|
||||
"Share": "Ndajeni",
|
||||
"Share": "Ndaje",
|
||||
"Submit": "Parashtroje",
|
||||
"WaitForHostMsg": "Konferenca <b>{{room}}</b> s’ka nisur ende. Nëse jeni organizatori, atëherë ju lutemi, bëni mirëfilltësimin. Përndryshe, ju lutemi, pritni që të mbërrijë organizatori.",
|
||||
"WaitForHostMsgWOk": "Konferenca <b>{{room}}</b> s’ka nisur ende. Nëse jeni organizatori, atëherë ju lutemi, shtypni OK, që të kryhet mirëfilltësimi. Përndryshe, ju lutemi, pritni që të mbërrijë organizatori.",
|
||||
"WaitForHostMsg": "Konferenca <b>{{room}}</b> s’ka nisur ende. Nëse jeni organizatori, ju lutemi, bëni mirëfilltësimin. Përndryshe, ju lutemi, pritni që të mbërrijë organizatori.",
|
||||
"WaitForHostMsgWOk": "Konferenca <b>{{room}}</b> s’ka nisur ende. Nëse jeni organizatori, ju lutemi, shtypni OK që të bëhet mirëfilltësimi. Përndryshe, ju lutemi, pritni që të mbërrijë organizatori.",
|
||||
"WaitingForHostTitle": "Po pritet për organizatorin…",
|
||||
"Yes": "Po",
|
||||
"accessibilityLabel": {
|
||||
@@ -219,15 +246,18 @@
|
||||
"dismiss": "Hidhe tej",
|
||||
"displayNameRequired": "Njatjeta! Cili është emri juaj?",
|
||||
"done": "U bë",
|
||||
"e2eeDescription": "Fshehtëzimi Skaj-më-Skaj aktualisht është EKSPERIMENTAL. Ju lutemi, mbani parasysh se aktivizimi i fshehtëzimit skaj-më-skaj praktikisht do të çaktivizojë shërbime të ofruara më anë të shërbyesit, të tillë si: regjistrim, transmetim të drejtpërdrejtë dhe pjesëmarrje me telefon. Mbani parasysh gjithashtu se takimi do të funksionojë vetëm për persona që hyjnë në të nga shfletues që mbulojnë futje rrjedhash transmetimi.",
|
||||
"e2eeDescription": "Fshehtëzimi Skaj-më-Skaj aktualisht është EKSPERIMENTAL. Ju lutemi, mbani parasysh se aktivizimi i fshehtëzimit skaj-më-skaj praktikisht do të çaktivizojë shërbime të ofruara më anë të shërbyesit, të tillë si: pjesëmarrje me telefon. Mbani parasysh gjithashtu se takimi do të funksionojë vetëm për persona që hyjnë në të nga shfletues të cilët mbulojnë futje rrjedhash transmetimi.",
|
||||
"e2eeDisabledDueToMaxModeDescription": "S’mund të aktivizohet fshehtëzimi Skaj-më-Skaj, për shkak të numrit të madh të pjesëmarrësve në konferencë.",
|
||||
"e2eeLabel": "Aktivizo Fshehtëzim Skaj-më-Skaj",
|
||||
"e2eeWarning": "KUJDES: Jo të gjithë pjesëmarrësit në këtë takim duket të kenë mbulim për fshehtëzim Skaj-më-Skaj. Në e aktivizofshi, ata s’do të jenë në gjendje t’ju shohin apo dëgjojnë.",
|
||||
"e2eeWarning": "KUJDES: Jo krejt pjesëmarrësit në këtë takim duket se kanë mbulim për fshehtëzim Skaj-më-Skaj. Në e aktivizofshi, ata s’do të jenë në gjendje t’ju shohin apo dëgjojnë.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "KUJDES: Fshehtëzimi Skaj-më-Skaj do të çaktivizohet automatikisht, nëse në konferencë vijnë më tepër pjesëmarrës.",
|
||||
"embedMeeting": "Trupëzoni takim",
|
||||
"enterDisplayName": "Ju lutemi, jepni këtu emrin tuaj",
|
||||
"enterDisplayName": "Jepni këtu emrin tuaj",
|
||||
"error": "Gabim",
|
||||
"gracefulShutdown": "Shërbimi ynë është aktualisht i ndërprerë, për punë mirëmbajtjeje. Ju lutemi, riprovoni më vonë.",
|
||||
"grantModeratorDialog": "Jeni i sigurt se doni ta bëni moderator këtë pjesëmarrës?",
|
||||
"grantModeratorDialog": "Jeni i sigurt se doni të akordohen të drejta moderatori për {{participantName}}?",
|
||||
"grantModeratorTitle": "Akordoni të drejta moderatori",
|
||||
"hideShareAudioHelper": "Mos e shfaq më këtë dialog",
|
||||
"incorrectPassword": "Emër përdoruesi ose fjalëkalim i pasaktë",
|
||||
"incorrectRoomLockPassword": "Fjalëkalim i pasaktë",
|
||||
"internalError": "Hëm! Diç shkoi ters. Ndodhi gabimi vijues: {{error}}",
|
||||
@@ -240,7 +270,7 @@
|
||||
"liveStreaming": "Transmetim i Drejtpërdrejtë",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Jo e mundshme, kur është aktiv regjistrimi",
|
||||
"liveStreamingDisabledTooltip": "Nisje transmetimesh të drejtpërdrejta e çaktivizuar.",
|
||||
"localUserControls": "Kontrolle përdoruesi vendor",
|
||||
"localUserControls": "Kontrolle vendore përdoruesi",
|
||||
"lockMessage": "S’u arrit të kyçej konferenca.",
|
||||
"lockRoom": "Shtoni takim $t(lockRoomPasswordUppercase)",
|
||||
"lockTitle": "Kyçja dështoi",
|
||||
@@ -256,68 +286,90 @@
|
||||
"micPermissionDeniedError": "S’keni akorduar leje për t’u përdorur mikrofoni juaj. Mundeni prapëseprapë të merrni pjesë te konferenca, por të tjerët s’do t’ju dëgjojnë. Përdorni butonin e kamerës, te shtylla e adresave, për ta ndrequr këtë gjë.",
|
||||
"micTimeoutError": "S’u nis dot burim audio. Ndodhi mbarim kohe!",
|
||||
"micUnknownError": "S’përdoret dot mikrofoni, për një arsye të panjohur.",
|
||||
"muteEveryoneDialog": "Jeni i sigurt se doni të heshtohet gjithkush? S’do të jeni në gjendje t’u hiqni heshtimin, por ata mund të heqin heshtimin për vetveten në çfarëdo kohe.",
|
||||
"muteEveryoneElseDialog": "Pasi të heshtohen, s’do të jeni në gjendje t’u hiqni heshtimin, por ata mund të heqin heshtimin për vetveten në çfarëdo kohe.",
|
||||
"moderationAudioLabel": "Lejoji pjesëmarrësit të heqin heshtimin e vetes",
|
||||
"moderationVideoLabel": "Lejoji pjesëmarrësit të nisin videon e tyre",
|
||||
"muteEveryoneDialog": "Pjesëmarrësit mund të heqin kurdo heshtimin e veten.",
|
||||
"muteEveryoneDialogModerationOn": "Pjesëmarrësit mund të dërgojnë kurdo kërkesë për të folur.",
|
||||
"muteEveryoneElseDialog": "Po i heshtuat, s’do të jeni në gjendje t’u hiqni heshtimin, por ata munden të heqin kurdo heshtimin për veten.",
|
||||
"muteEveryoneElseTitle": "Të heshtohet gjithkush, hiq {{whom}}?",
|
||||
"muteEveryoneElsesVideoDialog": "Pasi të çaktivizohet kamera, s’do të jeni në gjendje ta hapni sërish, por ata mund ta hapin në çfarëdo kohe.",
|
||||
"muteEveryoneElsesVideoTitle": "Të çaktivizohet kamera e gjithkujt, hiq {{whom}}?",
|
||||
"muteEveryoneSelf": "vetes",
|
||||
"muteEveryoneStartMuted": "Gjithkush ia fillon i heshtuar, nga tani e tutje",
|
||||
"muteEveryoneElsesVideoDialog": "Pasi të jetë çaktivizuar kamera, s’do të jeni në gjendje ta riaktivizoni, por ata munden ta riaktivizojnë kurdo.",
|
||||
"muteEveryoneElsesVideoTitle": "Të ndalet videoja e gjithkujt, hiq {{whom}}?",
|
||||
"muteEveryoneSelf": "ju",
|
||||
"muteEveryoneStartMuted": "Tani e tutje, gjithkush fillon i heshtuar",
|
||||
"muteEveryoneTitle": "Të heshtohet gjithkush?",
|
||||
"muteEveryonesVideoDialog": "Jeni i sigurt se doni të çaktivizohet kamera e gjithkujt? S’do të jeni në gjendje ta hapni sërish, por ata mund ta hapin në çfarëdo kohe.",
|
||||
"muteEveryonesVideoDialog": "Pjesëmarrësit mund të aktivizojnë videon e tyre kurdo.",
|
||||
"muteEveryonesVideoDialogModerationOn": "Pjesëmarrësit mund të dërgojnë kurdo kërkesë për aktivizimin e videos së tyre.",
|
||||
"muteEveryonesVideoDialogOk": "Çaktivizoje",
|
||||
"muteEveryonesVideoTitle": "Të çaktivizohet kamera i gjithkujt?",
|
||||
"muteParticipantBody": "S’do të jeni në gjendje t’u hiqni heshtimin, por ata mund ta bëjnë këtë për veten në çfarëdo kohe.",
|
||||
"muteEveryonesVideoTitle": "Të ndalet videoja e gjithkujt?",
|
||||
"muteParticipantBody": "S’do jeni në gjendje të hiqni heshtimin për ta, por ata munden kurdo ta heqin për veten.",
|
||||
"muteParticipantButton": "Heshtoje",
|
||||
"muteParticipantDialog": "Jeni i sigurt se doni të heshtohet ky pjesëmarrës? S’do të jeni në gjenjde t’u hiqni heshtimin, por ata mund ta bëjnë këtë për veten në çfarëdo kohe.",
|
||||
"muteParticipantTitle": "Të heshtohet ky pjesëmarrës?",
|
||||
"muteParticipantsVideoBody": "S’do të jeni në gjendje të rihapni kamerën, por ata mund ta bëjnë këtë për veten në çfarëdo kohe.",
|
||||
"muteParticipantsVideoButton": "Çaktivizo kamerën",
|
||||
"muteParticipantsVideoBody": "S’do të jeni në gjendje të riaktivizoni kamerën e tyre, por ata munden kurdo ta riaktvizojnë për veten.",
|
||||
"muteParticipantsVideoBodyModerationOn": "S’do të jeni në gjendje të riaktivizoni kamerën e tyre dhe as ata s’do të munden.",
|
||||
"muteParticipantsVideoButton": "Ndale videon",
|
||||
"muteParticipantsVideoDialog": "Jeni i sigurt se doni të çaktivizoni kamerën e këtij pjesëmarrësi? S’do të jeni në gjendje të riaktivizoni kamerën, por ai mund ta riaktivizojë kurdo.",
|
||||
"muteParticipantsVideoDialogModerationOn": "Jeni i sigurt se doni të çaktivizoni kamerën e këtij pjesëmarrësi? S’do të jeni në gjendje ta riaktivizoni dhe as ai s’do të mundet.",
|
||||
"muteParticipantsVideoTitle": "Të çaktivizohet kamera e këtij pjesëmarrësi?",
|
||||
"noDropboxToken": "Token Dropbox jo i vlefshëm",
|
||||
"password": "Fjalëkalim",
|
||||
"passwordLabel": "Takimi është kyçur nga njëri prej pjesëmarrësve. Që të merrni pjesë, ju lutemi, jepni $t(lockRoomPassword).",
|
||||
"passwordNotSupported": "Nuk mbulohet caktimi i një $t(lockRoomPassword) takimi.",
|
||||
"passwordLabel": "Takimi është kyçur nga një pjesëmarrës. Ju lutemi, që të hyni, jepni $t(lockRoomPassword).",
|
||||
"passwordNotSupported": "Nuk mbulohet ujdisja e një takimi $t(lockRoomPassword).",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nuk mbulohet",
|
||||
"passwordRequired": "Lypset $t(lockRoomPasswordUppercase)",
|
||||
"popupError": "Shfletuesi juaj po bllokon dritare flluska prej këtij sajti. Ju lutemi, aktivizoi flluskat, që nga rregullimet tuaja mbi sigurinë e shfletuesit, dhe riprovoni.",
|
||||
"popupErrorTitle": "Flluskat bllokohen",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) i domosdoshëm",
|
||||
"permissionCameraRequiredError": "Leja mbi kamerën është e domosdoshme për të marrë pjesë në konferenca me video. Ju lutemi, akordojeni që nga Rregullimet",
|
||||
"permissionErrorTitle": "Leje e domosdoshme",
|
||||
"permissionMicRequiredError": "Leja mbi mikrofonin është e domosdoshme për të marrë pjesë në konferenca me audio. Ju lutemi, akordojeni që nga Rregullimet",
|
||||
"popupError": "Shfletuesi juaj i bllokon dritaret flluskë prej këtij sajti. Ju lutemi, aktivizoni flluskat te rregullimet e sigurisë të shfletuesit tuaj dhe riprovoni.",
|
||||
"popupErrorTitle": "Flluska u bllokua",
|
||||
"readMore": "më tepër",
|
||||
"recording": "Regjistrim",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Jo e mundshme teksa është aktiv transmetimi i drejtpërdrejtë",
|
||||
"recordingDisabledTooltip": "Nisje regjistrimi e çaktivizuar.",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Jo i mundshëm kur ka aktiv një transmetim të drejtpërdrejtë",
|
||||
"recordingDisabledTooltip": "Nisja e regjistrimit është çaktivizuar.",
|
||||
"rejoinNow": "Rihyni tani",
|
||||
"remoteControlAllowedMessage": "{{user}} pranoi kërkesën tuaj për kontroll së largëti!",
|
||||
"remoteControlDeniedMessage": "{{user}} hodhi poshtë kërkesën tuaj për kontroll së largëti!",
|
||||
"remoteControlErrorMessage": "Ndodhi një gabim teksa provohej të kërkohej leje kontrolli së largëti nga {{user}}!",
|
||||
"remoteControlRequestMessage": "Do ta lejoni {{user}} të kontrollojë së largëti desktopin tuaj?",
|
||||
"remoteControlShareScreenWarning": "Kini parasysh se, nëse shtypni “Lejoje”, ai do të shohë ekranin tuaj!",
|
||||
"remoteControlStopMessage": "Sesioni me kontroll së largëti dështoi!",
|
||||
"remoteControlErrorMessage": "Ndodhi një gabim teksa provohej të kërkoheshin leje kontrolli së largëti nga {{user}}!",
|
||||
"remoteControlRequestMessage": "A do ta lejoni {{user}} të kontrollojë së largëti desktopin tuaj?",
|
||||
"remoteControlShareScreenWarning": "Mbani parasysh se nëse shtypni \"Lejoje\", do t’u tregoni ekranin tuaj!",
|
||||
"remoteControlStopMessage": "Sesioni me kontroll së largëti përfundoi!",
|
||||
"remoteControlTitle": "Kontroll desktopi së largëti",
|
||||
"remoteUserControls": "Kontrolle përdoruesi të largët për {{username}}",
|
||||
"remoteUserControls": "Kontrolle përdoruesi së largëti të {{username}}",
|
||||
"removePassword": "Hiqe $t(lockRoomPassword)",
|
||||
"removeSharedVideoMsg": "Jeni i sigurt se doni të hiqet videoja që ndatë me të tjerët?",
|
||||
"removeSharedVideoTitle": "Hiqe videon e ndarë me të tjerët",
|
||||
"removeSharedVideoMsg": "Jeni i sigurt se doni të hiqni videon që keni ndarë me të tjerë?",
|
||||
"removeSharedVideoTitle": "Hiqe videon e ndarë me të tjerë",
|
||||
"reservationError": "Gabim sistemi rezervimi",
|
||||
"reservationErrorMsg": "Kod gabimi: {{code}}, mesazh: {{msg}}",
|
||||
"retry": "Riprovoni",
|
||||
"screenSharingAudio": "Ndani audio me të tjerë",
|
||||
"screenSharingFailed": "Hëm! Diç shkoi ters, s’qemë në gjendje të nisnim dhënie ekrani të tjerëve!",
|
||||
"screenSharingFailedTitle": "Dhënia e ekranit të tjerëve dështoi!",
|
||||
"screenSharingPermissionDeniedError": "Hëm! Diç shkoi ters me lejet tuaja për dhënie ekrani. Ju lutemi, ringarkojeni dhe riprovoni.",
|
||||
"sendPrivateMessage": "Tani së fundi morët një mesazh privat. Kishit ndërmend t’i përgjigjeni privatisht, apo doni t’ia dërgoni grupit përgjigjen?",
|
||||
"screenSharingAudio": "Ndajeni audion me të tjerë",
|
||||
"screenSharingFailed": "Hëm! Diç shkoi ters, s’qemë në gjendje të nisnim tregim ekrani!",
|
||||
"screenSharingFailedTitle": "Tregimi i ekrani dështoi!",
|
||||
"screenSharingPermissionDeniedError": "Hëm! Diç shkoi ters me lejet tuaja për tregim ekrani. Ju lutemi, ringarkojeni dhe riprovoni.",
|
||||
"sendPrivateMessage": "Tani së fundi morët një mesazh privat. Kishit ndërmend t’i përgjigjeni privatisht, apo doni t’ia dërgoni mesazhin grupit?",
|
||||
"sendPrivateMessageCancel": "Dërgoja grupit",
|
||||
"sendPrivateMessageOk": "Dërgoje privatisht",
|
||||
"sendPrivateMessageTitle": "Të dërgohet privatisht?",
|
||||
"serviceUnavailable": "Shërbim jashtë funksionimi",
|
||||
"sessTerminated": "Thirrja përfundoi",
|
||||
"sessionRestarted": "Thirrje e rinisur nga ura",
|
||||
"shareVideoLinkError": "Ju lutemi, jepni një lidhje Youtube të saktë.",
|
||||
"sessionRestarted": "Thirrja rinisi për shkak të një problemi lidhjeje.",
|
||||
"shareAudio": "Vazhdo",
|
||||
"shareAudioTitle": "Si të ndahet audio me të tjerë",
|
||||
"shareAudioWarningD1": "lypset të ndalni tregim ekrani, para se të ndani audion tuaj me të tjerë.",
|
||||
"shareAudioWarningD2": "lypset të rinisni tregimin e ekranit tuaj dhe t’i vini shenjë mundësisë \"ndani audio me të tjerë\".",
|
||||
"shareAudioWarningH1": "Nëse doni të ndani vetëm audio me të tjerë:",
|
||||
"shareAudioWarningTitle": "Lypset të ndalni tregimin e ekranit, para se të ndani audio me të tjerë",
|
||||
"shareMediaWarningGenericH2": "Nëse doni të tregoni ekranin dhe të ndani audio me të tjerë",
|
||||
"shareScreenWarningD1": "lypset të ndalni ndarjen e audios me të tjerë, para se të tregoni ekranin tuaj.",
|
||||
"shareScreenWarningD2": "lypset të ndalni ndarjen e audios me të tjerë, të nisni tregimin e ekranit dhe t’i vini shenjë mundësisë \"ndani audio me të tjerë\".",
|
||||
"shareScreenWarningH1": "Nëse thjesht doni të tregoni ekranin tuaj:",
|
||||
"shareScreenWarningTitle": "Lypset të ndalni ndarjen e audios me të tjerë, para tregimit të ekranit tuaj",
|
||||
"shareVideoLinkError": "Ju lutemi, jepni një lidhje të saktë videoje.",
|
||||
"shareVideoTitle": "Ndani video me të tjerë",
|
||||
"shareYourScreen": "Tregojuni ekranin tuaj",
|
||||
"shareYourScreenDisabled": "Tregimi i ekrani është i çaktivizuar.",
|
||||
"startLiveStreaming": "Nis transmetim të drejtpërdrejtë",
|
||||
"startRecording": "Nis regjistrim",
|
||||
"startRemoteControlErrorMessage": "Ndodhi një gatim teksa provohej të nisej sesioni me kontroll së largëti!",
|
||||
"shareYourScreen": "Tregoni ekranin tuaj",
|
||||
"shareYourScreenDisabled": "Tregimi i ekranit është i çaktivizuar.",
|
||||
"sharedVideoDialogError": "Gabim: URL e pavlefshme",
|
||||
"sharedVideoLinkPlaceholder": "Lidhje YouTube ose lidhje e drejtpërdrejtë për video",
|
||||
"startLiveStreaming": "Nisni transmetim të drejtpërdrejtë",
|
||||
"startRecording": "Fillo regjistrim",
|
||||
"startRemoteControlErrorMessage": "Ndodhi një gabim teksa provohej të nisej sesioni i kontrollit së largëti!",
|
||||
"stopLiveStreaming": "Ndale transmetimin e drejtpërdrejtë",
|
||||
"stopRecording": "Ndale regjistrimin",
|
||||
"stopRecordingWarning": "Jeni i sigurt se doni të ndalet regjistrimi?",
|
||||
@@ -333,6 +385,9 @@
|
||||
"userIdentifier": "Identifikues përdoruesi",
|
||||
"userPassword": "Fjalëkalim përdoruesi",
|
||||
"videoLink": "Lidhje videoje",
|
||||
"viewUpgradeOptions": "Shihni mundësi përmirësimi",
|
||||
"viewUpgradeOptionsContent": "Që të përfitoni përdorim të pakufizuar veçorish me pagesë, të tilla si regjistrimi, transcriptime, RTMP Streaming & etj, duhet të përmirësoni planin tuaj.",
|
||||
"viewUpgradeOptionsTitle": "Zbuluat një veçori me pagesë!",
|
||||
"yourEntireScreen": "Krejt ekranin tuaj"
|
||||
},
|
||||
"documentSharing": {
|
||||
@@ -346,13 +401,13 @@
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Çka",
|
||||
"bad": "E keqe",
|
||||
"detailsLabel": "Na tregoni më tepër.",
|
||||
"good": "E mirë",
|
||||
"rateExperience": "Vlerësoni rastin tuaj",
|
||||
"star": "Yll",
|
||||
"veryBad": "Shumë e Keqe",
|
||||
"veryGood": "Shumë e Mirë"
|
||||
"bad": "I dobët",
|
||||
"detailsLabel": "Na thoni më tepër rreth tij.",
|
||||
"good": "I mirë",
|
||||
"rateExperience": "Vlerësoni funksionimin e takimit për ju",
|
||||
"star": "Vlerësojeni Me Yll",
|
||||
"veryBad": "Shumë i Dobët",
|
||||
"veryGood": "Shumë i Mirë"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Qendër ndihme"
|
||||
@@ -382,17 +437,21 @@
|
||||
"invitePhone": "Nga ana tjetër, që të merrni pjesë me telefon, prekni këtë: {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "Po kërkoni për një tjetër numër?\nShihni numra takimi: {{url}}\n\n\nNëse po provohet gjithashtu numër përmes telefoni dhome, merrni pjesë pa lidhje audioje: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "Për të marrë pjesë duke përdorur adresën SIP, jepni këtë: {{sipUri}}",
|
||||
"inviteTextiOSInviteUrl": "Që të hyni, klikoni lidhjen vijuese: {{inviteUrl}}.",
|
||||
"inviteTextiOSJoinSilent": "Nëse po i bini numrit përmes një telefoni dhome, përdorni këtë lidhje për të hyrë pa lidhur audion: {{silentUrl}}.",
|
||||
"inviteTextiOSPersonal": "{{name}} po ju fton në një takim.",
|
||||
"inviteTextiOSPhone": "Që të hyni përmes një telefoni, përdorni këtë numër: {{number}},,{{conferenceID}}#. Nëse po kërkoni për tjetër numër, kjo është lista e plotë: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Jeni ftuar të merrni pjesë në një takim.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} po ju fton në një takim.\n",
|
||||
"inviteURLSecondPart": "\nMerrni pjesë te takimi:\n{{url}}\n",
|
||||
"label": "Hollësi numrash",
|
||||
"label": "Hollësi për t’i rënë numrit",
|
||||
"liveStreamURL": "Transmetim i drejtpërdrejtë:",
|
||||
"moreNumbers": "Më tepër numra",
|
||||
"noNumbers": "S’ka numra për përdorim.",
|
||||
"noPassword": "Asnjë",
|
||||
"noRoom": "S’u dha dhomë për të cilën të formësohet numri.",
|
||||
"numbers": "Numra Për T’u Përdorur",
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"password": "$t(lockRoomPasswordUppercase): ",
|
||||
"sip": "Adresë SIP",
|
||||
"title": "Ndani me të tjerë",
|
||||
"tooltip": "Ndani me të tjerë lidhje dhe hollësi numrash për këtë takim"
|
||||
@@ -445,6 +504,7 @@
|
||||
"failedToStart": "S’u arrit të fillohej Transmetim i Drejtpërdrejtë",
|
||||
"getStreamKeyManually": "S’qemë në gjendje të sillnim ndonjë transmetim të drejtpërdrejtë. Provoni të merrni kyçin tuaj për transmetim të drejtpërdrejtë nga YouTube-i.",
|
||||
"googlePrivacyPolicy": "Rregulla Privatësie Google",
|
||||
"inProgress": "Regjistrim ose transmetim i drejtpërdrejtë në punë e sipër",
|
||||
"invalidStreamKey": "Kyçi për transmetim të drejtpërdrejtë mund të jetë i pasaktë.",
|
||||
"limitNotificationDescriptionNative": "Transmetimi juaj do të kufizohet në {{limit}} min. Për transmetim të pakufizuar, provoni {{app}}.",
|
||||
"limitNotificationDescriptionWeb": "Për shkak kërkesash të shumta, transmetimi juaj do të kufizohet në {{limit}} min. Për transmetim të pakufizuar, provoni <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
@@ -454,6 +514,7 @@
|
||||
"onBy": "{{name}} nisi transmetimin e drejtpërdrejtë",
|
||||
"pending": "Po niset Transmetimi i Drejtpërdrejtë…",
|
||||
"serviceName": "Shërbim Transmetimi i Drejtpërdrejtë",
|
||||
"sessionAlreadyActive": "Ky sesion po regjistrohet ose transmetohet drejtpërsëdrejti tashmë.",
|
||||
"signIn": "Hyni me Google",
|
||||
"signInCTA": "Hyni, ose jepni kyçin tuaj për transmetim të drejtpërdrejtë nga YouTube-i.",
|
||||
"signOut": "Dilni",
|
||||
@@ -467,36 +528,38 @@
|
||||
"admit": "Pranoje",
|
||||
"admitAll": "Pranoji të tërë",
|
||||
"allow": "Lejoje",
|
||||
"backToKnockModeButton": "Pa fjalëkalim, kërkoni pjesëmarrje",
|
||||
"backToKnockModeButton": "Kërkoji të marrë pjesë",
|
||||
"dialogTitle": "Mënyra holl",
|
||||
"disableDialogContent": "Mënyra holl është aktualisht e aktivizuar. Kjo veçori garanton që në takimin tuaj s’mund të marrin pjesë anëtarë të padëshiruar. Doni të çaktivizohet?",
|
||||
"disableDialogContent": "Mënyra holl është aktualisht e aktivizuar. Kjo veçori siguron që pjesëmarrës të padëshiruar të mos mund të hyjnë në takimin tuaj. Doni të çaktivizohet?",
|
||||
"disableDialogSubmit": "Çaktivizoje",
|
||||
"emailField": "Jepni adresën tuaj email",
|
||||
"enableDialogPasswordField": "Caktoni fjalëkalim (në daçi)",
|
||||
"enableDialogSubmit": "Aktivizoje",
|
||||
"enableDialogText": "Mënyra holl ju lejon të mbroni takimin tuaj duke lejuar të hyjnë persona vetëm pas një miratimi formal nga një moderator.",
|
||||
"enableDialogText": "Mënyra holl ju lejon të mbroni takimin tuaj duke u lejuar hyrje njerëzve vetëm pas një miratimi formal nga një moderator.",
|
||||
"enterPasswordButton": "Jepni fjalëkalim takimi",
|
||||
"enterPasswordTitle": "Që të hyni në takim, jepni fjalëkalimin",
|
||||
"enterPasswordTitle": "Jepni fjalëkalimin për hyrje në takim",
|
||||
"errorMissingPassword": "Ju lutemi, jepni fjalëkalimin e takimit",
|
||||
"invalidPassword": "Fjalëkalim i pavlefshëm",
|
||||
"joinRejectedMessage": "Kërkesa juaj për pjesëmarrje u hodh poshtë nga një moderator.",
|
||||
"joinRejectedMessage": "Kërkesa juaj për hyrje u hodh poshtë nga një moderator.",
|
||||
"joinTitle": "Merrni Pjesë Në Takim",
|
||||
"joinWithPasswordMessage": "Po provohet hyrja me fjalëkalim, ju lutemi, pritni…",
|
||||
"joiningMessage": "Do të merrni pjesë në takim sapo dikush të pranojë kërkesën tuaj",
|
||||
"joiningTitle": "Po kërkohet pjesëmarrje në takim…",
|
||||
"joinWithPasswordMessage": "Po provohet të hyhet me fjalëkalim, ju lutemi, pritni…",
|
||||
"joiningMessage": "Do të hyni në takim sapo dikush të pranojë kërkesën tuaj",
|
||||
"joiningTitle": "Po kërkohet të hyhet në takim…",
|
||||
"joiningWithPasswordTitle": "Po hyhet me fjalëkalim…",
|
||||
"knockButton": "Kërko Pjesëmarrje",
|
||||
"knockTitle": "Dikush dëshiron të marrë pjesë në takim",
|
||||
"knockingParticipantList": "Listë pjesëmarrësish me trokitje",
|
||||
"knockButton": "Kërko të Hyhet",
|
||||
"knockTitle": "Dikush dëshiron të hyjë në takim",
|
||||
"knockingParticipantList": "Listë pjesëmarrësish që duan të hyjnë",
|
||||
"nameField": "Jepni emrin tuaj",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} s’është pranuar të marrë pjesë, nga {{originParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} është pranuar të marrë pjesë, nga {{originParticipantName}}",
|
||||
"notificationLobbyAccessDenied": "Hyrja e {{targetParticipantName}} është hedhur poshtë nga {{originParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} është lejuar të hyjë nga {{originParticipantName}}",
|
||||
"notificationLobbyDisabled": "Holli është çaktivizuar nga {{originParticipantName}}",
|
||||
"notificationLobbyEnabled": "Holli është aktivizuar nga {{originParticipantName}}",
|
||||
"notificationTitle": "Holl",
|
||||
"passwordField": "Jepni fjalëkalim takimi",
|
||||
"passwordJoinButton": "Hyni",
|
||||
"reject": "Hidhe poshtë",
|
||||
"toggleLabel": "Aktivizo hollin"
|
||||
"rejectAll": "Hidhi poshtë të tërë",
|
||||
"toggleLabel": "Aktivizoni hollin"
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -504,7 +567,7 @@
|
||||
"on": "On",
|
||||
"unknown": "E panjohur"
|
||||
},
|
||||
"dialogTitle": "Kontrolle Vendore Regjistrimesh",
|
||||
"dialogTitle": "Kontrolle Regjistrimesh Vendore",
|
||||
"duration": "Kohëzgjatje",
|
||||
"durationNA": "N/A",
|
||||
"encoding": "Kodim",
|
||||
@@ -536,75 +599,134 @@
|
||||
"me": "unë",
|
||||
"notify": {
|
||||
"OldElectronAPPTitle": "Cenueshmëri sigurie!",
|
||||
"allowAction": "Lejoje",
|
||||
"allowedUnmute": "Mund të hiqni heshtimin e mikrofonit tuaj, të nisni kamerën tuaj ose të tregoni ekranin tuaj.",
|
||||
"audioUnmuteBlockedDescription": "Veprimi i heqjes së heshtimit të mikrofonit është bllokuar përkohësisht për shkak kufizimesh të sistemit.",
|
||||
"audioUnmuteBlockedTitle": "Heqje heshtimi mikrofoni e bllokuar!",
|
||||
"chatMessages": "Mesazhe fjalosjeje",
|
||||
"connectedOneMember": "{{name}} nisi takimin",
|
||||
"connectedThreePlusMembers": "{{name}} dhe {{count}} tjerë hynë në takim",
|
||||
"connectedThreePlusMembers": "{{name}} dhe mjaft të tjerë tjerë hynë në takim",
|
||||
"connectedTwoMembers": "{{first}} dhe {{second}} tjetër hynë në takim",
|
||||
"disconnected": "u shkëput",
|
||||
"displayNotifications": "Shfaq njoftime për",
|
||||
"focus": "Fokusi te konferenca",
|
||||
"focusFail": "{{component}} jo i passhëm - riprovoni pas {{ms}} sekondash",
|
||||
"grantedTo": "U akorduan të drejta moderatori për {{to}}!",
|
||||
"groupTitle": "Njoftime",
|
||||
"hostAskedUnmute": "Organizuesi do të donte që të hiqnit heshtimin",
|
||||
"invitedOneMember": "U ftua {{name}}",
|
||||
"invitedThreePlusMembers": "U ftuan {{name}} dhe {{count}} të tjerë",
|
||||
"invitedTwoMembers": "U ftua {{first}} dhe {{second}} tjetër",
|
||||
"hostAskedUnmute": "Moderatori do të donte të flisnit",
|
||||
"invitedOneMember": "{{name}} u ftua",
|
||||
"invitedThreePlusMembers": "{{name}} dhe {{count}} të tjerë u ftuan",
|
||||
"invitedTwoMembers": "{{first}} dhe {{second}} u ftuan",
|
||||
"kickParticipant": "{{kicked}} u përzu nga {{kicker}}",
|
||||
"leftOneMember": "{{name}} doli nga takimi",
|
||||
"leftThreePlusMembers": "{{name}} dhe mjaft të tjerë dolën nga takimi",
|
||||
"leftTwoMembers": "{{first}} dhe {{second}} dolën nga takimi",
|
||||
"me": "Unë",
|
||||
"moderationInEffectCSDescription": "Ju lutemi, nëse doni t’u jepni të tjerëve videon tuaj, ngrini dorën",
|
||||
"moderationInEffectCSTitle": "Ndarje lënde me të tjerë është çaktivizuar nga moderatori",
|
||||
"moderationInEffectDescription": "Ju lutemi, nëse doni të flisni, ngrini dorën",
|
||||
"moderationInEffectTitle": "Mikrofoni është mbyllur nga moderatori",
|
||||
"moderationInEffectVideoDescription": "Ju lutemi, nëse doni që videoja juaj të jetë e dukshme, ngrini dorën",
|
||||
"moderationInEffectVideoTitle": "Vdeoja është mbyllur nga moderatori",
|
||||
"moderationRequestFromModerator": "Organizuesi do të donte që ju të hiqnit heshtimin",
|
||||
"moderationInEffectCSDescription": "Ju lutemi, ngrini dorën, nëse doni të tregoni ekranin tuaj.",
|
||||
"moderationInEffectCSTitle": "Tregimi i ekranit është bllokuar nga moderatori",
|
||||
"moderationInEffectDescription": "Ju lutemi, ngrini dorën, nëse doni të flisni.",
|
||||
"moderationInEffectTitle": "Mikrofoni juaj është heshtuar nga moderatori",
|
||||
"moderationInEffectVideoDescription": "Ju lutemi, ngrini dorën, nëse doni të niset kamera juaj.",
|
||||
"moderationInEffectVideoTitle": "Kamera juaj është bllokuar nga moderatori",
|
||||
"moderationRequestFromModerator": "Organizatori do të donte të hiqnit heshtimin",
|
||||
"moderationRequestFromParticipant": "Dëshiron të flasë",
|
||||
"moderationStartedTitle": "Filloi moderimi",
|
||||
"moderationStoppedTitle": "Moderimi u ndal",
|
||||
"moderationStartedTitle": "Moderimi filloi",
|
||||
"moderationStoppedTitle": "Moderimi përfundoi",
|
||||
"moderationToggleDescription": "nga {{participantDisplayName}}",
|
||||
"moderator": "U akorduan të drejta moderatori!",
|
||||
"muted": "E keni filluar të heshtuar bisedën.",
|
||||
"mutedRemotelyDescription": "Mundeni përherë të hiqni heshtimin, kur jeni gati për të folur. Heshtojeni prapë, kur të keni mbaruar, për t’i mbajtur larg zhurmat nga takimi.",
|
||||
"mutedRemotelyTitle": "Jeni heshtuar nga {{participantDisplayName}}!",
|
||||
"mutedTitle": "Jeni heshtuar!",
|
||||
"moderator": "Tani jeni moderator",
|
||||
"muted": "E keni filluar bisedën të heshtur.",
|
||||
"mutedRemotelyDescription": "Mundeni përherë të hiqni heshtimin, kur të jeni gati për të folur. Ribëni heshtimin, kur të mbaroni, për të mbajtur zhurmat jashtë takimit.",
|
||||
"mutedRemotelyTitle": "Jeni heshtuar nga {{moderator}}",
|
||||
"mutedTitle": "U heshtuat!",
|
||||
"newDeviceAction": "Përdore",
|
||||
"newDeviceAudioTitle": "U pikas pajisje audio e re",
|
||||
"newDeviceCameraTitle": "U pikas kamerë e re",
|
||||
"oldElectronClientDescription1": "Duket se përdorni një version të vjetër të klientit Jitsi Meet, i cili përmban cenueshmëri të ditura sigurie. Ju lutemi, siguroni përditësimin e tij me ",
|
||||
"oldElectronClientDescription1": "Duket se përdorni një version të vjetër të klientit Jitsi Meet, i cili ka cenueshmëri sigurie që njihen. Ju lutemi, siguroni përditësimin me ",
|
||||
"oldElectronClientDescription2": "montimin tonë më të ri",
|
||||
"oldElectronClientDescription3": " që tani!",
|
||||
"participantWantsToJoin": "Dëshiron të hyjë në takim",
|
||||
"participantsWantToJoin": "Dëshirojnë të hyjnë në takim",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) u hoq nga një tjetër pjesëmarrës",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) u caktua nga një tjetër pjesëmarrës",
|
||||
"raiseHandAction": "Ngrini dorën",
|
||||
"raisedHand": "{{name}} do të donte të fliste.",
|
||||
"screenShareNoAudio": " Kutizës për ndarje zëri me të tjerët s’i qe vënë shenjë te skena e përzgjedhjes.",
|
||||
"screenShareNoAudioTitle": "Ndarjes së audios s’i qe vënë shenjë",
|
||||
"raisedHand": "Do të donte të fliste.",
|
||||
"raisedHands": "{{participantName}} dhe {{raisedHands}} persona të tjerë",
|
||||
"reactionSounds": "Çaktivizo tingujt",
|
||||
"reactionSoundsForAll": "Çaktivizoji tingujt për të tërë",
|
||||
"screenShareNoAudio": "Kutizës për ndarje audioje me të tjerë s’i është vënë shenjë te skena e përzgjedhjes së dritares.",
|
||||
"screenShareNoAudioTitle": "S’u nda dot me të tjerë audioja e sistemit!",
|
||||
"selfViewTitle": "Mundeni përherë të hiqni fshehjen e pamjes së vetes, që nga rregullimet",
|
||||
"somebody": "Dikush",
|
||||
"startSilentDescription": "Që të aktivizohet audioja, rihyni në takim",
|
||||
"startSilentTitle": "Hytë pa audio!",
|
||||
"suboptimalBrowserWarning": "Kemi frikë se takimi juaj këtu s’do të jetë dhe aq mirë këtu. Po kërkojmë rrugë për ta përmirësuar, por deri atëherë, ju lutemi, provoni një nga <a href='{{recommendedBrowserPageLink}}' target='_blank'>shfletuesit e mbuluar plotësisht</a>.",
|
||||
"suboptimalExperienceTitle": "Sinjalizim Për Shfletuesin",
|
||||
"unmute": "Hiqi heshtimin",
|
||||
"videoMutedRemotelyDescription": "Mundeni përherë ta riaktivizoni.",
|
||||
"videoMutedRemotelyTitle": "Kamera juaj është çaktivizuar nga {{participantDisplayName}}!"
|
||||
"startSilentTitle": "Hytë pa zë në dalje!",
|
||||
"suboptimalBrowserWarning": "Kemi frikë se funksionimi i takimit për ju s’do të jetë kushedi këtu. Po kërkojmë rrugë për ta përmirësuar këtë punë, por deri atëherë, ju lutemi, provoni të përdorni një nga <a href='{{recommendedBrowserPageLink}}' target='_blank'>shfletuesit e mbuluar plotësisht</a>.",
|
||||
"suboptimalExperienceTitle": "Sinjalizim Mbi Shfletuesin",
|
||||
"unmute": "Çheshtoje",
|
||||
"videoMutedRemotelyDescription": "Mundeni përherë ta rihapni.",
|
||||
"videoMutedRemotelyTitle": "Videoja juaj u mbyll nga {{moderator}}",
|
||||
"videoUnmuteBlockedDescription": "Heqja e heshtimit të kamerës dhe veprimi i tregimit të desktopit janë bllokuar përkohësisht për shkak kufizimesh të sistemit.",
|
||||
"videoUnmuteBlockedTitle": "Heqja e heshtimit të kamerës dhe tregimi i desktopit janë bllokuar!",
|
||||
"viewLobby": "Shihni hollin",
|
||||
"waitingParticipants": "{{waitingParticipants}} vetë"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"allow": "Lejoji pjesëmarrësit:",
|
||||
"askUnmute": "Të kërkojnë çheshtim",
|
||||
"invite": "Të Ftojnë Dikë",
|
||||
"muteAll": "Të Heshtojnë të tërë",
|
||||
"startModeration": "Të çheshtojnë veten ose të nisin videon",
|
||||
"stopEveryonesVideo": "Të ndalin videon e gjithkujt",
|
||||
"stopVideo": "Të ndalin video"
|
||||
"allow": "Lejoju pjesëmarrësve të:",
|
||||
"allowVideo": "Çaktivizoni videon",
|
||||
"askUnmute": "Kërkoni heqje heshtimi",
|
||||
"audioModeration": "Hiqni heshtim të vetes",
|
||||
"blockEveryoneMicCamera": "Bllokoni mikrofonin dhe kamerën e gjithkujt",
|
||||
"invite": "Ftoni Dikë",
|
||||
"moreModerationActions": "Më tepër mundësi moderimi",
|
||||
"moreModerationControls": "Më tepër kontrolle moderimi",
|
||||
"moreParticipantOptions": "Më tepër mundësi pjesëmarrësi",
|
||||
"mute": "Heshtoje",
|
||||
"muteAll": "Heshtoji të tërë",
|
||||
"muteEveryoneElse": "Heshto gjithkënd tjetër",
|
||||
"stopEveryonesVideo": "Ndal videon e gjithkujt",
|
||||
"stopVideo": "Ndale videon",
|
||||
"unblockEveryoneMicCamera": "Zhblloko mikrofonin dhe kamerën e gjithkujt",
|
||||
"videoModeration": "Nis videon e vet"
|
||||
},
|
||||
"close": "Mbylle",
|
||||
"header": "Pjesëmarrës",
|
||||
"headings": {
|
||||
"lobby": "Holli ({{count}})",
|
||||
"participantsList": "Pjesëmarrës në takim ({{count}})"
|
||||
}
|
||||
"participantsList": "Pjesëmarrës në takim ({{count}})",
|
||||
"waitingLobby": "Duke pritur në holl ({{count}})"
|
||||
},
|
||||
"search": "Kërkoni te pjesëmarrësit"
|
||||
},
|
||||
"passwordDigitsOnly": "Deri në {{number}} shifra",
|
||||
"passwordSetRemotely": "caktuar nga një tjetër pjesëmarrës",
|
||||
"passwordSetRemotely": "Caktuar nga një tjetër pjesëmarrës",
|
||||
"polls": {
|
||||
"answer": {
|
||||
"skip": "Anashkaloje",
|
||||
"submit": "Parashtroje"
|
||||
},
|
||||
"by": "Nga {{ name }}",
|
||||
"create": {
|
||||
"addOption": "Shtoni mundësi",
|
||||
"answerPlaceholder": "Mundësia {{index}}",
|
||||
"cancel": "Anuloje",
|
||||
"create": "Krijoni një pyetësor",
|
||||
"pollOption": "Mundësi pyetësori {{index}}",
|
||||
"pollQuestion": "Pyetje Pyetësori",
|
||||
"questionPlaceholder": "Bëni një pyetje",
|
||||
"removeOption": "Hiqe mundësinë",
|
||||
"send": "Dërgoje"
|
||||
},
|
||||
"notification": {
|
||||
"description": "Që të votoni, hapni skedën e pyetësorëve",
|
||||
"title": "Te ky takim u shtua një pyetësor i ri"
|
||||
},
|
||||
"results": {
|
||||
"changeVote": "Ndryshoni votën",
|
||||
"empty": "Te takimi s’ka ende pyetësorë. Nisni një pyetësor këtu!",
|
||||
"hideDetailedResults": "Fshihi hollësitë",
|
||||
"showDetailedResults": "Shfaqi hollësitë",
|
||||
"vote": "Votoni"
|
||||
}
|
||||
},
|
||||
"poweredby": "bazuar në",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Gabim audio dhe video:",
|
||||
@@ -645,16 +767,17 @@
|
||||
"errorDialOutFailed": "S’u bë dot thirrja e numrit. Thirrja dështoi",
|
||||
"errorDialOutStatus": "Gabim në marrje gjendjeje thirrjeje numri",
|
||||
"errorMissingName": "Që të merrni pjesë te takimi, ju lutemi, jepni emrin tuaj",
|
||||
"errorNoPermissions": "Lypset të aktivizoni përdorim mikrofoni dhe kamere",
|
||||
"errorStatusCode": "Gabim në thirrje numri, kod gjendjeje: {{status}}",
|
||||
"errorValidation": "Vlerësimi i numrit dështoi",
|
||||
"iWantToDialIn": "Dua t’i bie",
|
||||
"iWantToDialIn": "Dua t’i bie numrit",
|
||||
"initiated": "U nis thirrja",
|
||||
"joinAudioByPhone": "Merrni pjesë me audio telefoni",
|
||||
"joinMeeting": "Merrni pjesë në takim",
|
||||
"joinWithoutAudio": "Merrni pjesë pa audio",
|
||||
"keyboardShortcuts": "Aktivizo shkurtore Tastiere",
|
||||
"keyboardShortcuts": "Aktivizo shkurtore tastiere",
|
||||
"linkCopied": "Lidhja u kopjua në të papastër",
|
||||
"lookGood": "Duket sikur mikrofoni juaj po punon si duhet",
|
||||
"lookGood": "Mikrofoni juaj po punon si duhet",
|
||||
"or": "ose",
|
||||
"premeeting": "Para takimit",
|
||||
"screenSharingError": "Gabim ndarjeje ekrani me të tjerë:",
|
||||
@@ -678,6 +801,9 @@
|
||||
"rejected": "Hedhur poshtë",
|
||||
"ringing": "Po i bihet ziles…"
|
||||
},
|
||||
"privacyView": {
|
||||
"header": "Privatësi"
|
||||
},
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Caktoni emrin tuaj për në ekran",
|
||||
@@ -686,6 +812,7 @@
|
||||
"title": "Profil"
|
||||
},
|
||||
"raisedHand": "Do të donte të fliste",
|
||||
"raisedHandsLabel": "Numër duarsh të ngritura",
|
||||
"recording": {
|
||||
"authDropboxText": "Ngarkoje në Dropbox",
|
||||
"availableSpace": "Hapësirë e gatshme: {{spaceLeft}} MB (afërsisht {{duration}} minuta regjistrim)",
|
||||
@@ -700,10 +827,11 @@
|
||||
"expandedPending": "Po niset regjistrimi…",
|
||||
"failedToStart": "S’u arrit të niset regjistrimi",
|
||||
"fileSharingdescription": "Ndajeni regjistrimin me pjesëmarrësit në takim",
|
||||
"limitNotificationDescriptionNative": "Për shkak kërkesash të shumta, regjistrimi juaj do të kufizohet në {{limit}} min. Për regjistrim të pakufizuar, provoni <3>{{app}}</3>.",
|
||||
"limitNotificationDescriptionWeb": "Për shkak kërkesash të shumta, regjistrimi juaj do të kufizohet në {{limit}} min. Për regjistrim të pakufizuar, provoni <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"inProgress": "Regjistrim ose transmetim drejtpërsëdrejti në ecuri e sipër",
|
||||
"limitNotificationDescriptionNative": "Për shkak kërkesash të shumta, regjistrimi juaj do të kufizohet në {{limit}} min. Për regjistrime të pakufizuara provoni <3>{{app}}</3>.",
|
||||
"limitNotificationDescriptionWeb": "Për shkak kërkesash të shumta, regjistrimi juaj do të kufizohet në {{limit}} min. Për regjistrime të pakufizuara provoni <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"linkGenerated": "Kemi prodhuar një lidhje për te regjistrimi juaj.",
|
||||
"live": "LIVE",
|
||||
"live": "DREJTPËRSËDREJTI",
|
||||
"loggedIn": "I futur si {{userName}}",
|
||||
"off": "Regjistrimi u ndal",
|
||||
"offBy": "{{name}} ndali regjistrimin",
|
||||
@@ -714,6 +842,7 @@
|
||||
"serviceDescription": "Regjistrimi juaj do të ruhet nga shërbimi i regjistrimit",
|
||||
"serviceDescriptionCloud": "Regjistrim në re",
|
||||
"serviceName": "Shërbim regjistrimi",
|
||||
"sessionAlreadyActive": "Ky sesion po regjistrohet ose transmetohet drejtpërsëdrejti tashmë.",
|
||||
"signIn": "Hyni",
|
||||
"signOut": "Dilni",
|
||||
"unavailable": "Hëm! {{serviceName}} s’është i passhëm aktualisht. Po punojmë për të zgjidhur problemin. Ju lutemi, riprovoni më vonë.",
|
||||
@@ -726,33 +855,46 @@
|
||||
"security": {
|
||||
"about": "Takimit tuaj mund t’i shtoni një $t(lockRoomPassword). Pjesëmarrësve do t’u duhet të japin $t(lockRoomPassword) përpara se të lejohen të marrin pjesë në takim.",
|
||||
"aboutReadOnly": "Pjesëmarrësit moderatorë mund t’i shtojnë takimit një $t(lockRoomPassword). Pjesëmarrësve do t’u duhet të japin $t(lockRoomPassword) përpara se të lejohen të marrin pjesë në takim.",
|
||||
"insecureRoomNameWarning": "Emri i dhomës s’është pa rrezik. Pjesëmarrës të padëshiruar munden të marrin pjesë në konferencën tuaj. Shihni mundësinë e bërjes të sigurt të takimit tuaj, duke përdorur butonin e sigurisë.",
|
||||
"securityOptions": "Mundësi sigurie"
|
||||
"header": "Mundësi Sigurie",
|
||||
"insecureRoomNameWarning": "Emri i dhomës s’është pa rrezik. Pjesëmarrës të padëshiruar munden të marrin pjesë në konferencën tuaj. Shihni mundësinë e bërjes të sigurt të takimit tuaj, duke përdorur butonin e sigurisë."
|
||||
},
|
||||
"settings": {
|
||||
"calendar": {
|
||||
"about": "Integrimi i me kalendar {{appName}} përdoret për të hyrë me sukses te kalendari juaj, që kështu të mund të lexohen veprimtari të ardhshme.",
|
||||
"disconnect": "Shkëputu",
|
||||
"microsoftSignIn": "Hyni me Microsoft",
|
||||
"signedIn": "Aktualisht duke parë veprimtari kalendari për {{email}}. Klikoni mbi butonin Shkëputu më poshtë që të ndalni parjen e veprimtarive të kalendarit.",
|
||||
"signedIn": "Aktualisht po shihen veprimtari kalendari për {{email}}. Klikoni mbi butonin Shkëputu më poshtë që të ndalni parjen e veprimtarive të kalendarit.",
|
||||
"title": "Kalendar"
|
||||
},
|
||||
"desktopShareFramerate": "Shpejtësi kuadrosh për tregim desktopi",
|
||||
"desktopShareHighFpsWarning": "Një shpejtësi më e madhe për tregimin e ekranit mund të ketë ndikim në konsumin e gjerësisë së bandës. Që të hyjnë në fuqi rregullimet e reja, lypset të rinisni tregimin e ekranit.",
|
||||
"desktopShareWarning": "Që të hyjnë në fuqi rregullimet e reja, duhet të rinisni tregimin e ekranit.",
|
||||
"devices": "Pajisje",
|
||||
"followMe": "Më ndjek gjithkush",
|
||||
"framesPerSecond": "kuadro-për-sekondë",
|
||||
"incomingMessage": "Mesazh ardhës",
|
||||
"language": "Gjuhë",
|
||||
"loggedIn": "Futur si {{name}}",
|
||||
"loggedIn": "I futur si {{name}}",
|
||||
"microphones": "Mikrofona",
|
||||
"moderator": "Moderator",
|
||||
"more": "Më tepër",
|
||||
"name": "Emër",
|
||||
"noDevice": "Asnjë",
|
||||
"participantJoined": "Hyri Pjesëmarrës",
|
||||
"participantLeft": "Doli Pjesëmarrës",
|
||||
"playSounds": "Luaj tingull kur",
|
||||
"reactions": "Reagime takimi",
|
||||
"sameAsSystem": "Njësoj me sistemin ({{label}})",
|
||||
"selectAudioOutput": "Dalje audio",
|
||||
"selectCamera": "Kamerë",
|
||||
"selectMic": "Mikrofon",
|
||||
"selfView": "Parje e vetes",
|
||||
"sounds": "Tinguj",
|
||||
"speakers": "Altoparlantë",
|
||||
"startAudioMuted": "Gjithkush fillon i heshtuar",
|
||||
"startReactionsMuted": "Heshto tinguj reagimesh për këdo",
|
||||
"startVideoMuted": "Gjithkush fillon i fshehur",
|
||||
"talkWhileMuted": "Flisni, teksa jeni i heshtuar",
|
||||
"title": "Rregullime"
|
||||
},
|
||||
"settingsView": {
|
||||
@@ -783,12 +925,21 @@
|
||||
},
|
||||
"speaker": "Folës",
|
||||
"speakerStats": {
|
||||
"angry": "I zemëruar",
|
||||
"disgusted": "I pështirosur",
|
||||
"displayEmotions": "Shfaq emocione",
|
||||
"fearful": "I firkësuar",
|
||||
"happy": "I gëzuar",
|
||||
"hours": "{{count}}h",
|
||||
"minutes": "{{count}}m",
|
||||
"name": "Emër",
|
||||
"neutral": "Asnjanës",
|
||||
"sad": "I trishtuar",
|
||||
"search": "Kërko",
|
||||
"seconds": "{{count}}s",
|
||||
"speakerStats": "Statistika Folësi",
|
||||
"speakerTime": "Kohë Folësi"
|
||||
"speakerTime": "Kohë Folësi",
|
||||
"surprised": "I befasuar"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"genericTitle": "Takimi lyp përdorimin e mikrofonit dhe kamerës tuaj.",
|
||||
@@ -800,15 +951,21 @@
|
||||
"text": "Që të rilidheni, shtypni butonin <i>Rihyni</i>.",
|
||||
"title": "Thirrja juaj video u ndërpre, ngaqë kompjuteri u kalua në dremitje."
|
||||
},
|
||||
"termsView": {
|
||||
"header": "Terma"
|
||||
},
|
||||
"toolbar": {
|
||||
"Settings": "Rregullime",
|
||||
"accessibilityLabel": {
|
||||
"Settings": "Shfaq/Fshih rregullime",
|
||||
"Settings": "Shfaq/Fshih rregullimet",
|
||||
"audioOnly": "Hap/Mbyll vetëm audion",
|
||||
"audioRoute": "Përzgjidhni pajisje zëri",
|
||||
"callQuality": "Administroni cilësi video",
|
||||
"boo": "Ya",
|
||||
"breakoutRoom": "Hyni/Dilni nga dhomë aneks konsultimesh",
|
||||
"callQuality": "Administroni cilësi videoje",
|
||||
"cc": "Shfaq/Fshih titra",
|
||||
"chat": "Hap / Mbyll fjalosje",
|
||||
"chat": "Hapni / Mbyllni fjalosje",
|
||||
"clap": "Duartrokitje",
|
||||
"collapse": "Tkurre",
|
||||
"document": "Shfaq/Fshih dokument të ndarë",
|
||||
"download": "Shkarkoni aplikacionet tona",
|
||||
@@ -819,36 +976,42 @@
|
||||
"grantModerator": "Akordoji të Drejta Moderatori",
|
||||
"hangup": "Braktiseni takimin",
|
||||
"help": "Ndihmë",
|
||||
"invite": "Ftoni persona",
|
||||
"kick": "Përzini pjesëmarrës",
|
||||
"lobbyButton": "Aktivizo/Çaktivizo mënyrën holl",
|
||||
"localRecording": "Shfaq/Fshi kontrolle regjistrimi vendor",
|
||||
"invite": "Ftoni njerëz",
|
||||
"kick": "Përzëre pjesëmarrësin",
|
||||
"laugh": "E qeshur",
|
||||
"like": "Thumbs Up",
|
||||
"lobbyButton": "Aktivizo/Çaktivizoni mënyrën holl",
|
||||
"localRecording": "Shfaq/Fshih kontrolle regjistrimi vendor",
|
||||
"lockRoom": "Aktivizo/Çaktivizo fjalëkalim takimi",
|
||||
"moreActions": "Më tepër veprime",
|
||||
"moreActionsMenu": "Menu “Më tepër veprime”",
|
||||
"moreOptions": "Shfaq më tepër mundësi",
|
||||
"mute": "Mbyll/Hap zërin",
|
||||
"mute": "Heshtoje / Çheshtoje",
|
||||
"muteEveryone": "Heshto gjithkënd",
|
||||
"muteEveryoneElse": "Heshto gjithkënd tjetër",
|
||||
"muteEveryoneElsesVideo": "Çaktivizo kamerën e gjithkujt tjetër",
|
||||
"muteEveryonesVideo": "Çaktivizo kamerën e gjithkujt",
|
||||
"muteEveryoneElsesVideoStream": "Ndal videon e gjithkujt tjetër",
|
||||
"muteEveryonesVideoStream": "Ndal videon e gjithkujt",
|
||||
"participants": "Pjesëmarrës",
|
||||
"pip": "Kalo/Dil nga mënyra “Picture-in-Picture”",
|
||||
"privateMessage": "Dërgo mesazh privat",
|
||||
"pip": "Aktivizo/Çaktivizo mënyrën “Picture-in-Picture”",
|
||||
"privateMessage": "Dërgoni mesazh privat",
|
||||
"profile": "Përpunoni profilin tuaj",
|
||||
"raiseHand": "Ngrini/Ulni dorën",
|
||||
"recording": "Nis/Ndal regjistrim",
|
||||
"raiseHand": "Ngrini / Ulni dorën tuaj",
|
||||
"reactionsMenu": "Hap / Mbyll menu reagimesh",
|
||||
"recording": "Nis/Ndal regjistrimin",
|
||||
"remoteMute": "Heshto pjesëmarrësin",
|
||||
"remoteVideoMute": "Çaktivizo kamerën e pjesëmarrësit",
|
||||
"security": "Mundësi sigurie",
|
||||
"selectBackground": "Përzgjidhni Sfond",
|
||||
"selfView": "Shfaq/Fshih pamje veteje",
|
||||
"shareRoom": "Ftoni dikë",
|
||||
"shareYourScreen": "Nisni / Ndalni dhënien e ekranit tuaj",
|
||||
"shareYourScreen": "Nisni / Ndalni tregimin e ekranit tuaj",
|
||||
"shareaudio": "Ndani audio me të tjerë",
|
||||
"sharedvideo": "Shfaq/Fshih skenë për ndarje videoje YouTube me të tjerët",
|
||||
"shortcuts": "Shfaq/Fshih shkurtoret",
|
||||
"show": "Show on stage",
|
||||
"speakerStats": "Shfaqni statistika folësi",
|
||||
"sharedvideo": "Aktivizo/Çaktivizo ndarje videoje me të tjerë",
|
||||
"shortcuts": "Shfaq/Fshih shkurtore",
|
||||
"show": "Shfaqe në skenë",
|
||||
"silence": "Heshtje",
|
||||
"speakerStats": "Shfaq/Fshih statistika folësi",
|
||||
"surprised": "I befasuar",
|
||||
"tileView": "Kalo/Dil nga mënyra mozaik",
|
||||
"toggleCamera": "Hap/Mbyll kamerën",
|
||||
"toggleFilmstrip": "Shfaq/Fshih shirit filmi",
|
||||
@@ -860,10 +1023,14 @@
|
||||
"audioOnlyOn": "Aktivizo mënyrën “Sasi e ulët të dhënash trafiku”",
|
||||
"audioRoute": "Përzgjidhni pajisje zëri",
|
||||
"audioSettings": "Rregullime për audion",
|
||||
"authenticate": "Bëni mirëfilltësim",
|
||||
"authenticate": "Bëni mirëfilltësimin",
|
||||
"boo": "Ya",
|
||||
"callQuality": "Administroni cilësi video",
|
||||
"chat": "Hap / Mbyll fjalosje",
|
||||
"clap": "Duartrokitje",
|
||||
"closeChat": "Mbyll fjalosjen",
|
||||
"closeReactionsMenu": "Mbyll menu reagimesh",
|
||||
"disableReactionSounds": "Mund të çaktivizoni tinguj reagimesh për këtë takim",
|
||||
"documentClose": "Mbylle dokumentin e ndarë",
|
||||
"documentOpen": "Hape dokumentin e ndarë",
|
||||
"download": "Shkarkoni aplikacione tonat",
|
||||
@@ -877,6 +1044,10 @@
|
||||
"hangup": "Braktisni takimin",
|
||||
"help": "Ndihmë",
|
||||
"invite": "Ftoni persona",
|
||||
"joinBreakoutRoom": "Hyni në dhomë aneks konsultimesh",
|
||||
"laugh": "Qeshje",
|
||||
"leaveBreakoutRoom": "Dilni nga dhomë aneks konsultimesh",
|
||||
"like": "Thumbs Up",
|
||||
"lobbyButtonDisable": "Çaktivizo mënyrën holl",
|
||||
"lobbyButtonEnable": "Aktivizo mënyrën holl",
|
||||
"login": "Hyrje",
|
||||
@@ -886,7 +1057,7 @@
|
||||
"moreOptions": "Më tepër veprime",
|
||||
"mute": "Heshtoje / Hiqi heshtimin",
|
||||
"muteEveryone": "Heshto gjithkënd",
|
||||
"muteEveryonesVideo": "Çaktivizo kamerën e kujtdo",
|
||||
"muteEveryonesVideo": "Çaktivizo videon e gjithkujt",
|
||||
"noAudioSignalDesc": "Nëse s’e keni heshtuar që nga rregullimet e sistemit, ose nga hardware-i, shihni mundësinë e ndërrimit të pajisjes.",
|
||||
"noAudioSignalDescSuggestion": "Nëse s’e keni heshtuar që nga rregullimet e sistemit, ose nga hardware-i, shihni mundësinë e kalimit te pajisja e sugjeruar.",
|
||||
"noAudioSignalDialInDesc": "Mund t’i bini numrit edhe duke përdorur:",
|
||||
@@ -895,32 +1066,42 @@
|
||||
"noisyAudioInputDesc": "Dëgjohet sikur mikrofoni juaj prodhon zhurmë, ju lutemi, shihni mundësinë e heshtimit të tij, ose të ndërrimit të pajisjes.",
|
||||
"noisyAudioInputTitle": "Mikrofoni juaj duket të jetë i zhurmshëm!",
|
||||
"openChat": "Hapni fjalosje",
|
||||
"openReactionsMenu": "Hap menu reagimesh",
|
||||
"participants": "Pjesëmarrës",
|
||||
"pip": "Kalo nën mënyrën “Picture-in-Picture”",
|
||||
"privateMessage": "Dërgo mesazh privat",
|
||||
"profile": "Përpunoni profilin tuaj",
|
||||
"raiseHand": "Ngrini / Ulni dorën",
|
||||
"raiseYourHand": "Ngrini dorën",
|
||||
"reactionBoo": "Dërgo reagim me ya",
|
||||
"reactionClap": "Dërgo reagim me duartrokitje",
|
||||
"reactionLaugh": "Dërgo reagim me qeshje",
|
||||
"reactionLike": "Dërgo reagim me “thumbs up”",
|
||||
"reactionSilence": "Dërgo reagim me heshtje",
|
||||
"reactionSurprised": "Dërgo reagim të befasuari",
|
||||
"security": "Mundësi sigurie",
|
||||
"selectBackground": "Përzgjidhni sfond",
|
||||
"shareRoom": "Ftoni dikë",
|
||||
"shareaudio": "Ndani audio me të tjerë",
|
||||
"sharedvideo": "Ndani video me të tjerë",
|
||||
"shortcuts": "Shihni shkurtore",
|
||||
"silence": "Heshtje",
|
||||
"speakerStats": "Statistika folësi",
|
||||
"startScreenSharing": "Nise tregimin e ekranit",
|
||||
"startSubtitles": "Nis titra",
|
||||
"stopAudioSharing": "Ndal ndarje audioje me të tjerë",
|
||||
"stopScreenSharing": "Ndale tregimin e ekranit",
|
||||
"stopSharedVideo": "Ndale videon",
|
||||
"stopSubtitles": "Ndali titrat",
|
||||
"surprised": "I befasuar",
|
||||
"talkWhileMutedPopup": "Po provoni të flisni? Jeni i heshtuar.",
|
||||
"tileViewToggle": "Kaloni/Dilni nga mënyra mozaik",
|
||||
"toggleCamera": "Hapni/Mbyllni kamerën",
|
||||
"videoSettings": "Rregullime për videon",
|
||||
"videomute": "Nise / Ndale kamerën"
|
||||
"videoSetting": "Rregullime videoje",
|
||||
"videomute": "Nisni / Ndalni kamerën"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Ndal / Nisi titrat",
|
||||
"ccButtonTooltip": "Ndali / Nisi titrat",
|
||||
"error": "Transkriptimi dështoi. Ju lutemi, riprovoni.",
|
||||
"expandedLabel": "Transkriptimi aktualisht është aktiv",
|
||||
"failedToStart": "S’u arrit të nisej transkriptim",
|
||||
@@ -950,21 +1131,25 @@
|
||||
"errorInvite": "Konferencë ende pa u nisur. Ju lutemi, riprovoni më vonë.",
|
||||
"errorInviteFailed": "Po merremi me zgjidhjen e problemit. Ju lutemi, riprovoni më vonë.",
|
||||
"errorInviteFailedTitle": "S’u arrit të ftohej {{displayName}}",
|
||||
"errorInviteTitle": "Gabim në ftimin e dhomës",
|
||||
"errorInviteTitle": "Gabim në ftesën e dhomës",
|
||||
"pending": "{{displayName}} u ftua"
|
||||
},
|
||||
"videoStatus": {
|
||||
"adjustFor": "Rregulloje për:",
|
||||
"audioOnly": "AUD",
|
||||
"audioOnlyExpanded": "Gjendeni nën mënyrën “sasi e ulët trafiku”. Nën këtë mënyrë, do të merrni vetëm audio dhe tregim ekrani.",
|
||||
"audioOnlyExpanded": "Gjendeni nën mënyrën “gjerësi e ulët bande”. Nën këtë mënyrë, do të merrni vetëm audio dhe tregim ekrani.",
|
||||
"bestPerformance": "Punimi më i mirë",
|
||||
"callQuality": "Cilësi videoje",
|
||||
"hd": "CL",
|
||||
"hdTooltip": "Po shihet video në cilësi të lartë",
|
||||
"highDefinition": "Cilësi e Lartë",
|
||||
"highestQuality": "Cilësia më e lartë",
|
||||
"labelTooiltipNoVideo": "Pa video",
|
||||
"labelTooltipAudioOnly": "U aktivizua mënyra “sasi e ulët trafiku”",
|
||||
"labelTooltipAudioOnly": "U aktivizua mënyra “gjerësi e ulët bande”",
|
||||
"ld": "CU",
|
||||
"ldTooltip": "Po shihet video në cilësi të ulët",
|
||||
"lowDefinition": "Cilësi e Ulët",
|
||||
"lowDefinition": "Cilësi e ulët",
|
||||
"performanceSettings": "Rregullime funksionimi",
|
||||
"sd": "CS",
|
||||
"sdTooltip": "Po shihet video në cilësi standarde",
|
||||
"standardDefinition": "Cilësi standarde"
|
||||
@@ -975,38 +1160,43 @@
|
||||
"domuteOthers": "Heshto gjithkënd tjetër",
|
||||
"domuteVideo": "Çaktivizoje kamerën",
|
||||
"domuteVideoOfOthers": "Çaktivizo kamerën e gjithkujt tjetër",
|
||||
"flip": "Flip",
|
||||
"grantModerator": "Akordoji Leje Moderatori",
|
||||
"flip": "Ktheje më anë tjetër",
|
||||
"grantModerator": "Akordoji të Drejta Moderatori",
|
||||
"hideSelfView": "Fshihe pamjen e vetes",
|
||||
"kick": "Përzëre",
|
||||
"moderator": "Moderator",
|
||||
"mute": "Pjesëmarrësi është heshtuar",
|
||||
"muted": "I heshtuar",
|
||||
"remoteControl": "Nisni / Ndalni kontroll së largëti",
|
||||
"show": "Show on stage",
|
||||
"remoteControl": "Nis / Ndal kontroll së largëti",
|
||||
"screenSharing": "Pjesëmarrësi po tregon ekranin e vet",
|
||||
"show": "Shfaqe në skenë",
|
||||
"showSelfView": "Shfaq pamje të vetes",
|
||||
"videoMuted": "Kamera e çaktivizuar",
|
||||
"videomute": "Pjesëmarrësi ka ndalur kamerën"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"addBackground": "Shtoni sfond",
|
||||
"apply": "Zbatoje",
|
||||
"backgroundEffectError": "S’u arrit të zbatohej efekt sfondi.",
|
||||
"blur": "Turbulloje",
|
||||
"deleteImage": "Fshije figurën",
|
||||
"desktopShare": "Dhënie desktopi",
|
||||
"desktopShareError": "S’u krijua dot dhënie desktopi",
|
||||
"desktopShare": "Tregim desktopi",
|
||||
"desktopShareError": "S’u krijua dot tregim desktopi",
|
||||
"image1": "Plazh",
|
||||
"image2": "Mur i bardhë neutral",
|
||||
"image2": "Mur i bardhë asnjanës",
|
||||
"image3": "Dhomë e bardhë e zbrazët",
|
||||
"image4": "Llambadar i zi dyshemeje",
|
||||
"image4": "Ndriçues i zi në dysheme",
|
||||
"image5": "Mal",
|
||||
"image6": "Pyll",
|
||||
"image6": "Pyll ",
|
||||
"image7": "Ag",
|
||||
"none": "Asnjë",
|
||||
"pleaseWait": "Ju lutemi, pritni…",
|
||||
"removeBackground": "Hiqe sfondin",
|
||||
"slightBlur": "Turbullim Paksa",
|
||||
"title": "Sfonde virtualë",
|
||||
"uploadedImage": "Ngarkoni figurë {{index}}",
|
||||
"webAssemblyWarning": "WebAssembly nuk mbulohet"
|
||||
"uploadedImage": "Ngarkoi figurën {{index}}",
|
||||
"webAssemblyWarning": "Nuk mbulohet WebAssembly",
|
||||
"webAssemblyWarningDescription": "WebAssembly e çaktivizuar ose e pambuluar nga ky shfletues"
|
||||
},
|
||||
"volumeSlider": "Rrëshqitës volumi",
|
||||
"welcomepage": {
|
||||
@@ -1029,16 +1219,16 @@
|
||||
"goSmall": "SHKO",
|
||||
"headerSubtitle": "Takime me siguri dhe me cilësi të lartë",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"info": "Hollësi për dial-in",
|
||||
"jitsiOnMobile": "Jitsi në celular – Shkarkoni aplikacione tona dhe nisni një takim prej ngado",
|
||||
"info": "Hollësi për t’i rënë numrit",
|
||||
"jitsiOnMobile": "Jitsi në celular – Shkarkoni aplikacionet tona dhe nisni një takim prej ngado",
|
||||
"join": "KRIJONI / MERRNI PJESË",
|
||||
"logo": {
|
||||
"calendar": "Stemë Calendar-i",
|
||||
"desktopPreviewThumbnail": "Miniaturë paraparjeje në desktop",
|
||||
"googleLogo": "Stemë Google",
|
||||
"logoDeepLinking": "Stemë Jitsi Meet",
|
||||
"calendar": "Stemë kalendari",
|
||||
"desktopPreviewThumbnail": "Miniaturë paraparjeje desktopi",
|
||||
"googleLogo": "Stemë Google-i",
|
||||
"logoDeepLinking": "Stemë “Jitsi meet”",
|
||||
"microsoftLogo": "Stemë Microsoft-i",
|
||||
"policyLogo": "Stemë Policy"
|
||||
"policyLogo": "Stemë Rregullash"
|
||||
},
|
||||
"mobileDownLoadLinkAndroid": "Shkarkoni aplikacionin për celular me Android",
|
||||
"mobileDownLoadLinkFDroid": "Shkarkoni aplikacionin për celular me F-Droid",
|
||||
|
||||
@@ -250,7 +250,7 @@
|
||||
"screenSharingPermissionDeniedError": "Ух! Нeшто сe догодило додјелом дозвола за додатак за дијељење екрана. Освјежите и покушајтe поново.",
|
||||
"serviceUnavailable": "",
|
||||
"sessTerminated": "",
|
||||
"shareVideoLinkError": "Унeситe тачну вeзу на YouTube.",
|
||||
"shareVideoLinkError": "Унeситe тачну вeзу.",
|
||||
"shareVideoTitle": "Дијeлитe видeозапис",
|
||||
"shareYourScreen": "Дијeлитe ваш eкран",
|
||||
"shareYourScreenDisabled": "Дијeљeњe eкрана јe искључeно.",
|
||||
@@ -656,14 +656,14 @@
|
||||
"raiseHand": "Подигни / спусти руку",
|
||||
"raiseYourHand": "Подигни руку",
|
||||
"shareRoom": "Позови нeкога",
|
||||
"sharedvideo": "Подијeли YouTube видeозапис",
|
||||
"sharedvideo": "Подијeли видeозапис",
|
||||
"shortcuts": "Приказ прeчица",
|
||||
"speakerStats": "Статистика говорника",
|
||||
"startScreenSharing": "Покрeни дијeљeњe eкрана",
|
||||
"startSubtitles": "Покрeни поднасловe",
|
||||
"startvideoblur": "Замути моју позадину",
|
||||
"stopScreenSharing": "Заустави дијeљeњe eкрана",
|
||||
"stopSharedVideo": "Заустави YouTube видeозапис",
|
||||
"stopSharedVideo": "Заустави видeозапис",
|
||||
"stopSubtitles": "Заустави поднасловe",
|
||||
"stopvideoblur": "Искључи замућену позадину",
|
||||
"talkWhileMutedPopup": "Покушаваш говорити? Утишан си.",
|
||||
|
||||
@@ -354,7 +354,7 @@
|
||||
"shareScreenWarningD2": "du måste avsluta ljuddelning, starta skärmdelning och sen aktivera \"ljuddelning\"",
|
||||
"shareScreenWarningH1": "Om du bara vill dela din skärm:",
|
||||
"shareScreenWarningTitle": "Du måste avsluta ljuddelning innan du kan dela in skärm",
|
||||
"shareVideoLinkError": "Skriv in en fungerande YouTube-länk.",
|
||||
"shareVideoLinkError": "Skriv in en fungerande länk.",
|
||||
"shareVideoTitle": "Ta bort en delad video",
|
||||
"shareYourScreen": "Dela din skärm",
|
||||
"shareYourScreenDisabled": "Skärmdelning har inaktiverats.",
|
||||
@@ -951,7 +951,7 @@
|
||||
"shareRoom": "Bjud in någon",
|
||||
"shareYourScreen": "Slå av eller på skärmdelning",
|
||||
"shareaudio": "Dela ljud",
|
||||
"sharedvideo": "Slå av eller på YouTube-videodelning",
|
||||
"sharedvideo": "Slå av eller på videodelning",
|
||||
"shortcuts": "Stäng eller öppna genvägar",
|
||||
"show": "Visa på scenen",
|
||||
"silence": "Tyst läge",
|
||||
@@ -1026,7 +1026,7 @@
|
||||
"selectBackground": "Välj bakgrund",
|
||||
"shareRoom": "Bjud in någon",
|
||||
"shareaudio": "Dela ljud",
|
||||
"sharedvideo": "Dela en YouTube-video",
|
||||
"sharedvideo": "Dela en video",
|
||||
"shortcuts": "Visa genvägar",
|
||||
"silence": "Tystnad",
|
||||
"speakerStats": "Talarstatistik",
|
||||
@@ -1035,7 +1035,7 @@
|
||||
"startvideoblur": "Blurra min bakgrund",
|
||||
"stopAudioSharing": "Inaktivera ljuddelning",
|
||||
"stopScreenSharing": "Avsluta skämdelning",
|
||||
"stopSharedVideo": "Pausa YouTube-video",
|
||||
"stopSharedVideo": "Pausa video",
|
||||
"stopSubtitles": "Avsluta undertextning",
|
||||
"stopvideoblur": "Inaktivera bakgrundsblurr",
|
||||
"surprised": "Överaskad",
|
||||
|
||||
@@ -807,7 +807,7 @@
|
||||
"shareRoom": "Invite someone",
|
||||
"shareYourScreen": "Toggle screenshare",
|
||||
"shareaudio": "Share audio",
|
||||
"sharedvideo": "Toggle YouTube video sharing",
|
||||
"sharedvideo": "Toggle video sharing",
|
||||
"shortcuts": "Toggle shortcuts",
|
||||
"show": "Show on stage",
|
||||
"speakerStats": "Toggle speaker statistics",
|
||||
@@ -866,13 +866,13 @@
|
||||
"selectBackground": "వెనుతలం ఎంచుకోండి",
|
||||
"shareRoom": "Invite someone",
|
||||
"shareaudio": "Share audio",
|
||||
"sharedvideo": "Share a YouTube video",
|
||||
"sharedvideo": "Share video",
|
||||
"shortcuts": "View shortcuts",
|
||||
"speakerStats": "Speaker stats",
|
||||
"startScreenSharing": "Start screen sharing",
|
||||
"startSubtitles": "Start subtitles",
|
||||
"stopScreenSharing": "Stop screen sharing",
|
||||
"stopSharedVideo": "Stop YouTube video",
|
||||
"stopSharedVideo": "Stop video",
|
||||
"stopSubtitles": "Stop subtitles",
|
||||
"talkWhileMutedPopup": "మాట్లాడటానికి ప్రయత్నిస్తున్నారా? మీరు మౌనించబడివున్నారు.",
|
||||
"tileViewToggle": "Toggle tile view",
|
||||
|
||||
@@ -360,7 +360,7 @@
|
||||
"shareScreenWarningD2": "ses paylaşımını durdurmanız, ekran paylaşımını başlatmanız ve \"sesi paylaş\" seçeneğini işaretlemeniz gerekiyor.",
|
||||
"shareScreenWarningH1": "Sadece ekranınızı paylaşmak istiyorsanız:",
|
||||
"shareScreenWarningTitle": "Ekranınızı paylaşmadan önce ses paylaşımını durdurmanız gerekiyor",
|
||||
"shareVideoLinkError": "Lütfen doğru bir Youtube bağlantısı sağlayın.",
|
||||
"shareVideoLinkError": "Lütfen doğru bir bağlantısı sağlayın.",
|
||||
"shareVideoTitle": "Bir video paylaş",
|
||||
"shareYourScreen": "Ekranınızı paylaşın",
|
||||
"shareYourScreenDisabled": "Ekran paylaşımı devre dışı.",
|
||||
@@ -964,7 +964,7 @@
|
||||
"shareRoom": "Birini davet et",
|
||||
"shareYourScreen": "Ekran paylaşımını aç/kapat",
|
||||
"shareaudio": "Sesi paylaş",
|
||||
"sharedvideo": "Youtube video paylaşmayı aç/kapat",
|
||||
"sharedvideo": "Video paylaşmayı aç/kapat",
|
||||
"shortcuts": "Kısayolları aç/kapat",
|
||||
"show": "Sahnede göster",
|
||||
"silence": "Sessiz",
|
||||
@@ -1039,7 +1039,7 @@
|
||||
"selectBackground": "Arkaplan seç",
|
||||
"shareRoom": "Birini davet et",
|
||||
"shareaudio": "Ses paylaş",
|
||||
"sharedvideo": "Bir Youtube videosu paylaş",
|
||||
"sharedvideo": "Bir videosu paylaş",
|
||||
"shortcuts": "Kısayolları göster",
|
||||
"silence": "Sessiz",
|
||||
"speakerStats": "Konuşmacı istatistikleri",
|
||||
@@ -1048,7 +1048,7 @@
|
||||
"startvideoblur": "",
|
||||
"stopAudioSharing": "Ses paylaşımını durdur",
|
||||
"stopScreenSharing": "Ekran paylaşımını durdur",
|
||||
"stopSharedVideo": "Youtube videosunu durdur",
|
||||
"stopSharedVideo": "Videosunu durdur",
|
||||
"stopSubtitles": "Altyazıları durdur",
|
||||
"stopvideoblur": "",
|
||||
"surprised": "Sürpriz",
|
||||
|
||||
@@ -304,7 +304,7 @@
|
||||
"sendPrivateMessageTitle": "Надіслати приватне повідомлення?",
|
||||
"serviceUnavailable": "Служба недоступна",
|
||||
"sessTerminated": "Зв'язок перервано",
|
||||
"shareVideoLinkError": "Будь ласка, зазначте правильне посилання в Youtube.",
|
||||
"shareVideoLinkError": "Будь ласка, зазначте правильне посилання.",
|
||||
"shareVideoTitle": "Поділитися відео",
|
||||
"shareYourScreen": "Демонстрація екрану",
|
||||
"shareYourScreenDisabled": "Доступ до екрану вимкнено.",
|
||||
@@ -755,7 +755,7 @@
|
||||
"security": "Настройки безопасности",
|
||||
"shareRoom": "Надіслати запрошення",
|
||||
"shareYourScreen": "Демонструвати мій екран",
|
||||
"sharedvideo": "Активація YouTube-трансляції",
|
||||
"sharedvideo": "Активація трансляції",
|
||||
"shortcuts": "Показувати значки",
|
||||
"show": "Показати з наближенням",
|
||||
"speakerStats": "Показувати статистику",
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
"screenSharingPermissionDeniedError": "Không thể truy cập micro",
|
||||
"serviceUnavailable": "Dịch vụ không khả dụng",
|
||||
"sessTerminated": "Cuộc gọi kết thúc",
|
||||
"shareVideoLinkError": "Vui lòng cung cấp liên kết youtube chính xác.",
|
||||
"shareVideoLinkError": "Vui lòng cung cấp liên kết chính xác.",
|
||||
"shareVideoTitle": "Chia sẻ video",
|
||||
"shareYourScreen": "Chia sẻ màn hình của bạn",
|
||||
"shareYourScreenDisabled": "Chia sẻ màn hình đã tắt.",
|
||||
@@ -619,7 +619,7 @@
|
||||
"selectBackground": "Chọn hình nền",
|
||||
"shareRoom": "Mời ai đó",
|
||||
"shareYourScreen": "Mở/Đóng Chia sẻ màn hình",
|
||||
"sharedvideo": "Mở/Đóng Chia sẻ YouTube",
|
||||
"sharedvideo": "Mở/Đóng Chia",
|
||||
"shortcuts": "Mở/Đóng Phím tắt",
|
||||
"show": "",
|
||||
"speakerStats": "Mở/Đóng Thống kê",
|
||||
@@ -664,14 +664,14 @@
|
||||
"security": "Tùy chọn bảo mật",
|
||||
"selectBackground": "Chọn hình nền",
|
||||
"shareRoom": "Mời ai đó",
|
||||
"sharedvideo": "Chia sẻ YouTube video",
|
||||
"sharedvideo": "Chia sẻ video",
|
||||
"shortcuts": "Xem phím tắt",
|
||||
"speakerStats": "Thống kê về diễn giả",
|
||||
"startScreenSharing": "Bắt đầu chia sẻ màn hình",
|
||||
"startSubtitles": "Bắt đầu phụ đề",
|
||||
"startvideoblur": "",
|
||||
"stopScreenSharing": "Dừng chia sẻ màn hình",
|
||||
"stopSharedVideo": "Dừng Youtube",
|
||||
"stopSharedVideo": "Dừng video",
|
||||
"stopSubtitles": "Dừng phụ đề",
|
||||
"stopvideoblur": "",
|
||||
"talkWhileMutedPopup": "Cố gắng để nói chuyện? Bạn đang tắt tiếng.",
|
||||
|
||||
@@ -927,6 +927,7 @@
|
||||
"speakerStats": {
|
||||
"angry": "Angry",
|
||||
"disgusted": "Disgusted",
|
||||
"displayEmotions": "Display emotions",
|
||||
"fearful": "Fearful",
|
||||
"happy": "Happy",
|
||||
"hours": "{{count}}h",
|
||||
@@ -1001,10 +1002,11 @@
|
||||
"remoteVideoMute": "Disable camera of participant",
|
||||
"security": "Security options",
|
||||
"selectBackground": "Select Background",
|
||||
"selfView": "Toggle self view",
|
||||
"shareRoom": "Invite someone",
|
||||
"shareYourScreen": "Start / Stop sharing your screen",
|
||||
"shareaudio": "Share audio",
|
||||
"sharedvideo": "Toggle YouTube video sharing",
|
||||
"sharedvideo": "Toggle video sharing",
|
||||
"shortcuts": "Toggle shortcuts",
|
||||
"show": "Show on stage",
|
||||
"silence": "Silence",
|
||||
@@ -1168,6 +1170,7 @@
|
||||
"remoteControl": "Start / Stop remote control",
|
||||
"screenSharing": "Participant is sharing their screen",
|
||||
"show": "Show on stage",
|
||||
"showSelfView": "Show self view",
|
||||
"videoMuted": "Camera disabled",
|
||||
"videomute": "Participant has stopped the camera"
|
||||
},
|
||||
|
||||
@@ -43,6 +43,15 @@ import {
|
||||
} from '../../react/features/base/participants';
|
||||
import { updateSettings } from '../../react/features/base/settings';
|
||||
import { isToggleCameraEnabled, toggleCamera } from '../../react/features/base/tracks';
|
||||
import {
|
||||
autoAssignToBreakoutRooms,
|
||||
closeBreakoutRoom,
|
||||
createBreakoutRoom,
|
||||
moveToRoom,
|
||||
removeBreakoutRoom,
|
||||
sendParticipantToRoom
|
||||
} from '../../react/features/breakout-rooms/actions';
|
||||
import { getBreakoutRooms } from '../../react/features/breakout-rooms/functions';
|
||||
import {
|
||||
sendMessage,
|
||||
setPrivateMessageRecipient,
|
||||
@@ -64,12 +73,17 @@ import {
|
||||
resizeLargeVideo
|
||||
} from '../../react/features/large-video/actions.web';
|
||||
import { toggleLobbyMode, setKnockingParticipantApproval } from '../../react/features/lobby/actions';
|
||||
import { isForceMuted } from '../../react/features/participants-pane/functions';
|
||||
import {
|
||||
close as closeParticipantsPane,
|
||||
open as openParticipantsPane
|
||||
} from '../../react/features/participants-pane/actions';
|
||||
import { getParticipantsPaneOpen, isForceMuted } from '../../react/features/participants-pane/functions';
|
||||
import { RECORDING_TYPES } from '../../react/features/recording/constants';
|
||||
import { getActiveSession } from '../../react/features/recording/functions';
|
||||
import { isScreenAudioSupported, isScreenVideoShared } from '../../react/features/screen-share';
|
||||
import { isScreenAudioSupported } from '../../react/features/screen-share';
|
||||
import { startScreenShareFlow, startAudioScreenShareFlow } from '../../react/features/screen-share/actions';
|
||||
import { toggleScreenshotCaptureSummary } from '../../react/features/screenshot-capture';
|
||||
import { isScreenshotCaptureEnabled } from '../../react/features/screenshot-capture/functions';
|
||||
import { playSharedVideo, stopSharedVideo } from '../../react/features/shared-video/actions.any';
|
||||
import { extractYoutubeIdOrURL } from '../../react/features/shared-video/functions';
|
||||
import { toggleTileView, setTileView } from '../../react/features/video-layout';
|
||||
@@ -117,6 +131,14 @@ let videoAvailable = true;
|
||||
*/
|
||||
function initCommands() {
|
||||
commands = {
|
||||
'add-breakout-room': name => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
logger.error('Missing moderator rights to add breakout rooms');
|
||||
|
||||
return;
|
||||
}
|
||||
APP.store.dispatch(createBreakoutRoom(name));
|
||||
},
|
||||
'answer-knocking-participant': (id, approved) => {
|
||||
APP.store.dispatch(setKnockingParticipantApproval(id, approved));
|
||||
},
|
||||
@@ -134,6 +156,14 @@ function initCommands() {
|
||||
|
||||
APP.store.dispatch(approveParticipantAudio(participantId));
|
||||
},
|
||||
'auto-assign-to-breakout-rooms': () => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
logger.error('Missing moderator rights to auto-assign participants to breakout rooms');
|
||||
|
||||
return;
|
||||
}
|
||||
APP.store.dispatch(autoAssignToBreakoutRooms());
|
||||
},
|
||||
'display-name': displayName => {
|
||||
sendAnalytics(createApiEvent('display.name.changed'));
|
||||
APP.conference.changeLocalDisplayName(displayName);
|
||||
@@ -197,6 +227,14 @@ function initCommands() {
|
||||
|
||||
APP.store.dispatch(reject(participantId));
|
||||
},
|
||||
'remove-breakout-room': breakoutRoomJid => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
logger.error('Missing moderator rights to remove breakout rooms');
|
||||
|
||||
return;
|
||||
}
|
||||
APP.store.dispatch(removeBreakoutRoom(breakoutRoomJid));
|
||||
},
|
||||
'resize-large-video': (width, height) => {
|
||||
logger.debug('Resize large video command received');
|
||||
sendAnalytics(createApiEvent('largevideo.resized'));
|
||||
@@ -283,6 +321,12 @@ function initCommands() {
|
||||
APP.store.dispatch(disable());
|
||||
}
|
||||
},
|
||||
'toggle-participants-pane': enabled => {
|
||||
const toggleParticipantsPane = enabled
|
||||
? openParticipantsPane : closeParticipantsPane;
|
||||
|
||||
APP.store.dispatch(toggleParticipantsPane());
|
||||
},
|
||||
'toggle-raise-hand': () => {
|
||||
const localParticipant = getLocalParticipant(APP.store.getState());
|
||||
|
||||
@@ -481,9 +525,7 @@ function initCommands() {
|
||||
return;
|
||||
}
|
||||
|
||||
const enableScreenshotCapture = state['features/base/config'].enableScreenshotCapture;
|
||||
|
||||
if (enableScreenshotCapture && isScreenVideoShared(state)) {
|
||||
if (isScreenshotCaptureEnabled(state, true, false)) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(true));
|
||||
}
|
||||
conference.startRecording(recordingConfig);
|
||||
@@ -514,9 +556,7 @@ function initCommands() {
|
||||
const activeSession = getActiveSession(state, mode);
|
||||
|
||||
if (activeSession && activeSession.id) {
|
||||
if (state['features/base/config'].enableScreenshotCapture) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(false));
|
||||
}
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(false));
|
||||
conference.stopRecording(activeSession.id);
|
||||
} else {
|
||||
logger.error('No recording or streaming session found');
|
||||
@@ -540,6 +580,26 @@ function initCommands() {
|
||||
'cancel-private-chat': () => {
|
||||
APP.store.dispatch(setPrivateMessageRecipient());
|
||||
},
|
||||
'close-breakout-room': roomId => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
logger.error('Missing moderator rights to close breakout rooms');
|
||||
|
||||
return;
|
||||
}
|
||||
APP.store.dispatch(closeBreakoutRoom(roomId));
|
||||
},
|
||||
'join-breakout-room': roomId => {
|
||||
APP.store.dispatch(moveToRoom(roomId));
|
||||
},
|
||||
'send-participant-to-room': (participantId, roomId) => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
logger.error('Missing moderator rights to send participants to rooms');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
APP.store.dispatch(sendParticipantToRoom(participantId, roomId));
|
||||
},
|
||||
'kick-participant': participantId => {
|
||||
APP.store.dispatch(kickParticipant(participantId));
|
||||
},
|
||||
@@ -640,6 +700,10 @@ function initCommands() {
|
||||
callback(isForceMuted(participant, type, state));
|
||||
break;
|
||||
}
|
||||
case 'is-participants-pane-open': {
|
||||
callback(getParticipantsPaneOpen(APP.store.getState()));
|
||||
break;
|
||||
}
|
||||
case 'is-video-muted':
|
||||
callback(APP.conference.isLocalVideoMuted());
|
||||
break;
|
||||
@@ -684,6 +748,10 @@ function initCommands() {
|
||||
});
|
||||
break;
|
||||
}
|
||||
case 'list-breakout-rooms': {
|
||||
callback(getBreakoutRooms(APP.store.getState()));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -1151,8 +1219,8 @@ class API {
|
||||
*
|
||||
* @param {string} roomName - The room name.
|
||||
* @param {string} id - The id of the local user.
|
||||
* @param {Object} props - The display name and avatar URL of the local
|
||||
* user.
|
||||
* @param {Object} props - The display name, the avatar URL of the local
|
||||
* user and the type of the room.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyConferenceJoined(roomName: string, id: string, props: Object) {
|
||||
|
||||
30
modules/API/external/external_api.js
vendored
30
modules/API/external/external_api.js
vendored
@@ -27,17 +27,21 @@ const ALWAYS_ON_TOP_FILENAMES = [
|
||||
* commands expected by jitsi-meet.
|
||||
*/
|
||||
const commands = {
|
||||
addBreakoutRoom: 'add-breakout-room',
|
||||
answerKnockingParticipant: 'answer-knocking-participant',
|
||||
approveVideo: 'approve-video',
|
||||
askToUnmute: 'ask-to-unmute',
|
||||
autoAssignToBreakoutRooms: 'auto-assign-to-breakout-rooms',
|
||||
avatarUrl: 'avatar-url',
|
||||
cancelPrivateChat: 'cancel-private-chat',
|
||||
closeBreakoutRoom: 'close-breakout-room',
|
||||
displayName: 'display-name',
|
||||
e2eeKey: 'e2ee-key',
|
||||
email: 'email',
|
||||
toggleLobby: 'toggle-lobby',
|
||||
hangup: 'video-hangup',
|
||||
initiatePrivateChat: 'initiate-private-chat',
|
||||
joinBreakoutRoom: 'join-breakout-room',
|
||||
localSubject: 'local-subject',
|
||||
kickParticipant: 'kick-participant',
|
||||
muteEveryone: 'mute-everyone',
|
||||
@@ -45,9 +49,11 @@ const commands = {
|
||||
password: 'password',
|
||||
pinParticipant: 'pin-participant',
|
||||
rejectParticipant: 'reject-participant',
|
||||
removeBreakoutRoom: 'remove-breakout-room',
|
||||
resizeLargeVideo: 'resize-large-video',
|
||||
sendChatMessage: 'send-chat-message',
|
||||
sendEndpointTextMessage: 'send-endpoint-text-message',
|
||||
sendParticipantToRoom: 'send-participant-to-room',
|
||||
sendTones: 'send-tones',
|
||||
setFollowMe: 'set-follow-me',
|
||||
setLargeVideoParticipant: 'set-large-video-participant',
|
||||
@@ -68,6 +74,7 @@ const commands = {
|
||||
toggleE2EE: 'toggle-e2ee',
|
||||
toggleFilmStrip: 'toggle-film-strip',
|
||||
toggleModeration: 'toggle-moderation',
|
||||
toggleParticipantsPane: 'toggle-participants-pane',
|
||||
toggleRaiseHand: 'toggle-raise-hand',
|
||||
toggleShareAudio: 'toggle-share-audio',
|
||||
toggleShareScreen: 'toggle-share-screen',
|
||||
@@ -940,6 +947,18 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the participants pane is open.
|
||||
*
|
||||
* @returns {Promise} - Resolves with true if the participants pane is open
|
||||
* and with false if not.
|
||||
*/
|
||||
isParticipantsPaneOpen() {
|
||||
return this._transport.sendRequest({
|
||||
name: 'is-participants-pane-open'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns screen sharing status.
|
||||
*
|
||||
@@ -1041,6 +1060,17 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of breakout rooms.
|
||||
*
|
||||
* @returns {Promise} Resolves with the list of breakout rooms.
|
||||
*/
|
||||
listBreakoutRooms() {
|
||||
return this._transport.sendRequest({
|
||||
name: 'list-breakout-rooms'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Pins a participant's video on to the stage view.
|
||||
*
|
||||
|
||||
165
package-lock.json
generated
165
package-lock.json
generated
@@ -34,7 +34,7 @@
|
||||
"@jitsi/rtcstats": "9.0.1",
|
||||
"@material-ui/core": "4.11.3",
|
||||
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz",
|
||||
"@microsoft/microsoft-graph-client": "1.1.0",
|
||||
"@microsoft/microsoft-graph-client": "3.0.1",
|
||||
"@react-native-async-storage/async-storage": "1.15.14",
|
||||
"@react-native-community/clipboard": "1.5.1",
|
||||
"@react-native-community/netinfo": "7.1.7",
|
||||
@@ -67,7 +67,7 @@
|
||||
"jquery-i18next": "1.2.1",
|
||||
"js-md5": "0.6.1",
|
||||
"jwt-decode": "2.2.0",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#4baeb98964c6656b4ddb3fd5d355a9ddfa03fe74",
|
||||
"lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/1343-2d21eb5b/lib-jitsi-meet.tgz",
|
||||
"libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "2.29.1",
|
||||
@@ -88,6 +88,7 @@
|
||||
"react-native-collapsible": "1.6.0",
|
||||
"react-native-default-preference": "github:kevinresol/react-native-default-preference#11bff5eb05cb04fd8d35b5e761eeee80525e8c6c",
|
||||
"react-native-device-info": "8.4.8",
|
||||
"react-native-dialog": "9.2.0",
|
||||
"react-native-gesture-handler": "2.1.0",
|
||||
"react-native-get-random-values": "1.7.2",
|
||||
"react-native-immersive": "2.0.0",
|
||||
@@ -155,6 +156,7 @@
|
||||
"string-replace-loader": "3.0.3",
|
||||
"style-loader": "0.19.0",
|
||||
"traverse": "0.6.6",
|
||||
"typescript": "4.3.5",
|
||||
"unorm": "1.6.0",
|
||||
"webpack": "5.57.1",
|
||||
"webpack-bundle-analyzer": "4.4.2",
|
||||
@@ -3495,15 +3497,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": {
|
||||
"version": "2.6.5",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz",
|
||||
"integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==",
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": {
|
||||
@@ -3743,14 +3753,36 @@
|
||||
"integrity": "sha512-OhC9wwZ/ox9vputA1MR2A7QlYlvfXCV+tdbADOR7Jn7o9qoXh3HWf+AbSpXTK3daF0GIHA69Ws8XOnWqu5n53A=="
|
||||
},
|
||||
"node_modules/@microsoft/microsoft-graph-client": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-1.1.0.tgz",
|
||||
"integrity": "sha512-sDgchKZz1l3QJVNdkE1P1KpwTjupNt1mS9h1T0CiP+ayMN7IeFKfElB8IYtxFplNalZTmEq+iqoQFqUVpVMLfQ==",
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-3.0.1.tgz",
|
||||
"integrity": "sha512-sudEc1kKMsdtEI6IZfnTL8JUQ1a7pmV7D/ID2n/fsZCZH3MKi2vZ9XeKZfnFAbgaGcNT2bl55w8fcV3vBljJXA==",
|
||||
"dependencies": {
|
||||
"es6-promise": "^4.1.0",
|
||||
"isomorphic-fetch": "^2.2.1"
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@azure/identity": {
|
||||
"optional": true
|
||||
},
|
||||
"@azure/msal-browser": {
|
||||
"optional": true
|
||||
},
|
||||
"buffer": {
|
||||
"optional": true
|
||||
},
|
||||
"stream-browserify": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@microsoft/microsoft-graph-client/node_modules/tslib": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||
@@ -8013,11 +8045,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/dropbox/node_modules/node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/duplexer": {
|
||||
@@ -8253,11 +8296,6 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/es6-promise": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
|
||||
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
|
||||
@@ -12010,9 +12048,8 @@
|
||||
},
|
||||
"node_modules/lib-jitsi-meet": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "git+ssh://git@github.com/jitsi/lib-jitsi-meet.git#4baeb98964c6656b4ddb3fd5d355a9ddfa03fe74",
|
||||
"integrity": "sha512-iabilMXCe7l32EWEiMzFky2MVLbgQ8a9hUFIdy2EntzHSsTq52dxOWn/CO9UexeWEZfUHgngyjX2JGM0CC1k5g==",
|
||||
"hasInstallScript": true,
|
||||
"resolved": "https://github.com/jitsi/lib-jitsi-meet/releases/download/1343-2d21eb5b/lib-jitsi-meet.tgz",
|
||||
"integrity": "sha512-AXvmJDYsi9kIUQekM5+Eab0FDX6i3xxUbxDegjfixz9zfsM5qowBwwlBNZWSwD1hpb+ScH9PG3Gb7VYKtkmMdw==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@jitsi/js-utils": "2.0.0",
|
||||
@@ -13007,9 +13044,9 @@
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.1.30",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
|
||||
"integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz",
|
||||
"integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==",
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
@@ -15044,6 +15081,14 @@
|
||||
"react-native": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-dialog": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-dialog/-/react-native-dialog-9.2.0.tgz",
|
||||
"integrity": "sha512-VXdfo+bAi9ER7+w4aKOWypw8K97C2orvnfnxX4Lup/U8iQB/635V00hgfHEE3s0XScQHftXxm34Fa4iIIjojQA==",
|
||||
"peerDependencies": {
|
||||
"react-native": ">=0.63.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-gesture-handler": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.1.0.tgz",
|
||||
@@ -18243,6 +18288,19 @@
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
|
||||
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ua-parser-js": {
|
||||
"version": "0.7.31",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
|
||||
@@ -22499,9 +22557,9 @@
|
||||
}
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.5",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz",
|
||||
"integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==",
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
@@ -22664,12 +22722,19 @@
|
||||
"integrity": "sha512-OhC9wwZ/ox9vputA1MR2A7QlYlvfXCV+tdbADOR7Jn7o9qoXh3HWf+AbSpXTK3daF0GIHA69Ws8XOnWqu5n53A=="
|
||||
},
|
||||
"@microsoft/microsoft-graph-client": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-1.1.0.tgz",
|
||||
"integrity": "sha512-sDgchKZz1l3QJVNdkE1P1KpwTjupNt1mS9h1T0CiP+ayMN7IeFKfElB8IYtxFplNalZTmEq+iqoQFqUVpVMLfQ==",
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-3.0.1.tgz",
|
||||
"integrity": "sha512-sudEc1kKMsdtEI6IZfnTL8JUQ1a7pmV7D/ID2n/fsZCZH3MKi2vZ9XeKZfnFAbgaGcNT2bl55w8fcV3vBljJXA==",
|
||||
"requires": {
|
||||
"es6-promise": "^4.1.0",
|
||||
"isomorphic-fetch": "^2.2.1"
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@nodelib/fs.scandir": {
|
||||
@@ -26044,9 +26109,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"requires": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -26242,11 +26310,6 @@
|
||||
"is-symbol": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"es6-promise": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
|
||||
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="
|
||||
},
|
||||
"escalade": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
|
||||
@@ -29140,9 +29203,8 @@
|
||||
}
|
||||
},
|
||||
"lib-jitsi-meet": {
|
||||
"version": "git+ssh://git@github.com/jitsi/lib-jitsi-meet.git#4baeb98964c6656b4ddb3fd5d355a9ddfa03fe74",
|
||||
"integrity": "sha512-iabilMXCe7l32EWEiMzFky2MVLbgQ8a9hUFIdy2EntzHSsTq52dxOWn/CO9UexeWEZfUHgngyjX2JGM0CC1k5g==",
|
||||
"from": "lib-jitsi-meet@github:jitsi/lib-jitsi-meet#4baeb98964c6656b4ddb3fd5d355a9ddfa03fe74",
|
||||
"version": "https://github.com/jitsi/lib-jitsi-meet/releases/download/1343-2d21eb5b/lib-jitsi-meet.tgz",
|
||||
"integrity": "sha512-AXvmJDYsi9kIUQekM5+Eab0FDX6i3xxUbxDegjfixz9zfsM5qowBwwlBNZWSwD1hpb+ScH9PG3Gb7VYKtkmMdw==",
|
||||
"requires": {
|
||||
"@jitsi/js-utils": "2.0.0",
|
||||
"@jitsi/logger": "2.0.0",
|
||||
@@ -29969,9 +30031,9 @@
|
||||
"optional": true
|
||||
},
|
||||
"nanoid": {
|
||||
"version": "3.1.30",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
|
||||
"integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ=="
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz",
|
||||
"integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA=="
|
||||
},
|
||||
"nanomatch": {
|
||||
"version": "1.2.13",
|
||||
@@ -31533,6 +31595,11 @@
|
||||
"resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-8.4.8.tgz",
|
||||
"integrity": "sha512-92676ZWHZHsPM/EW1ulgb2MuVfjYfMWRTWMbLcrCsipkcMaZ9Traz5mpsnCS7KZpsOksnvUinzDIjsct2XGc6Q=="
|
||||
},
|
||||
"react-native-dialog": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-dialog/-/react-native-dialog-9.2.0.tgz",
|
||||
"integrity": "sha512-VXdfo+bAi9ER7+w4aKOWypw8K97C2orvnfnxX4Lup/U8iQB/635V00hgfHEE3s0XScQHftXxm34Fa4iIIjojQA=="
|
||||
},
|
||||
"react-native-gesture-handler": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.1.0.tgz",
|
||||
@@ -33895,6 +33962,12 @@
|
||||
"mime-types": "~2.1.24"
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
|
||||
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
||||
"dev": true
|
||||
},
|
||||
"ua-parser-js": {
|
||||
"version": "0.7.31",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"@jitsi/rtcstats": "9.0.1",
|
||||
"@material-ui/core": "4.11.3",
|
||||
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz",
|
||||
"@microsoft/microsoft-graph-client": "1.1.0",
|
||||
"@microsoft/microsoft-graph-client": "3.0.1",
|
||||
"@react-native-async-storage/async-storage": "1.15.14",
|
||||
"@react-native-community/clipboard": "1.5.1",
|
||||
"@react-native-community/netinfo": "7.1.7",
|
||||
@@ -72,7 +72,7 @@
|
||||
"jquery-i18next": "1.2.1",
|
||||
"js-md5": "0.6.1",
|
||||
"jwt-decode": "2.2.0",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#4baeb98964c6656b4ddb3fd5d355a9ddfa03fe74",
|
||||
"lib-jitsi-meet": "https://github.com/jitsi/lib-jitsi-meet/releases/download/1343-2d21eb5b/lib-jitsi-meet.tgz",
|
||||
"libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "2.29.1",
|
||||
@@ -93,6 +93,7 @@
|
||||
"react-native-collapsible": "1.6.0",
|
||||
"react-native-default-preference": "github:kevinresol/react-native-default-preference#11bff5eb05cb04fd8d35b5e761eeee80525e8c6c",
|
||||
"react-native-device-info": "8.4.8",
|
||||
"react-native-dialog": "9.2.0",
|
||||
"react-native-gesture-handler": "2.1.0",
|
||||
"react-native-get-random-values": "1.7.2",
|
||||
"react-native-immersive": "2.0.0",
|
||||
@@ -160,6 +161,7 @@
|
||||
"string-replace-loader": "3.0.3",
|
||||
"style-loader": "0.19.0",
|
||||
"traverse": "0.6.6",
|
||||
"typescript": "4.3.5",
|
||||
"unorm": "1.6.0",
|
||||
"webpack": "5.57.1",
|
||||
"webpack-bundle-analyzer": "4.4.2",
|
||||
|
||||
@@ -34,7 +34,6 @@ import {
|
||||
} from './functions';
|
||||
import logger from './logger';
|
||||
|
||||
declare var APP: Object;
|
||||
declare var interfaceConfig: Object;
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import { getFeatureFlag } from '../../base/flags/functions';
|
||||
import { Platform } from '../../base/react';
|
||||
import { DimensionsDetector, clientResized } from '../../base/responsive-ui';
|
||||
import { updateSettings } from '../../base/settings';
|
||||
import { _getRouteToRender } from '../getRouteToRender.native';
|
||||
import logger from '../logger';
|
||||
|
||||
import { AbstractApp } from './AbstractApp';
|
||||
@@ -95,8 +96,12 @@ export class App extends AbstractApp {
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_extraInit() {
|
||||
async _extraInit() {
|
||||
const { dispatch, getState } = this.state.store;
|
||||
const route = await _getRouteToRender();
|
||||
|
||||
// We need the root navigator to be set early.
|
||||
await this._navigate(route);
|
||||
|
||||
// We set these early enough so then we avoid any unnecessary re-renders.
|
||||
dispatch(updateFlags(this.props.flags));
|
||||
|
||||
@@ -1,41 +1,17 @@
|
||||
|
||||
import { isRoomValid } from '../base/conference';
|
||||
import { toState } from '../base/redux';
|
||||
import { ConferenceNavigationContainer } from '../conference';
|
||||
import RootNavigationContainer from '../welcome/components/RootNavigationContainer';
|
||||
import RootNavigationContainer from '../mobile/navigation/components/RootNavigationContainer';
|
||||
|
||||
const route = {
|
||||
component: RootNavigationContainer,
|
||||
href: undefined
|
||||
};
|
||||
|
||||
/**
|
||||
* Determines which route is to be rendered in order to depict a specific Redux
|
||||
* store.
|
||||
*
|
||||
* @param {(Function|Object)} stateful - THe redux store, state, or
|
||||
* {@code getState} function.
|
||||
* @returns {Promise<Object>}
|
||||
*/
|
||||
export function _getRouteToRender(stateful) {
|
||||
const state = toState(stateful);
|
||||
|
||||
return _getMobileRoute(state);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@code Route} to display on the React Native app.
|
||||
*
|
||||
* @param {Object} state - The redux state.
|
||||
* @returns {Promise}
|
||||
*/
|
||||
function _getMobileRoute(state) {
|
||||
const route = {
|
||||
component: null,
|
||||
href: undefined
|
||||
};
|
||||
|
||||
if (isRoomValid(state['features/base/conference'].room)) {
|
||||
route.component = ConferenceNavigationContainer;
|
||||
} else {
|
||||
route.component = RootNavigationContainer;
|
||||
}
|
||||
|
||||
export function _getRouteToRender() {
|
||||
return Promise.resolve(route);
|
||||
}
|
||||
|
||||
|
||||
@@ -80,11 +80,10 @@ function _getWebWelcomePageRoute(state) {
|
||||
}
|
||||
} else {
|
||||
// Web: if the welcome page is disabled, go directly to a random room.
|
||||
const url = new URL(window.location.href);
|
||||
|
||||
let href = window.location.href;
|
||||
|
||||
href.endsWith('/') || (href += '/');
|
||||
route.href = href + generateRoomWithoutSeparator();
|
||||
url.pathname += generateRoomWithoutSeparator();
|
||||
route.href = url.href;
|
||||
}
|
||||
|
||||
return Promise.resolve(route);
|
||||
|
||||
@@ -50,7 +50,7 @@ function _connectionEstablished(store, next, action) {
|
||||
// In the Web app we explicitly do not want to display the hash and
|
||||
// query/search URL params. Unfortunately, window.location and, more
|
||||
// importantly, its params are used not only in jitsi-meet but also in
|
||||
// lib-jitsi-meet. Consequenlty, the time to remove the params is
|
||||
// lib-jitsi-meet. Consequently, the time to remove the params is
|
||||
// determined by when no one needs them anymore.
|
||||
const { history, location } = window;
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import '../mobile/call-integration/middleware';
|
||||
import '../mobile/external-api/middleware';
|
||||
import '../mobile/full-screen/middleware';
|
||||
import '../mobile/incoming-call/middleware';
|
||||
import '../mobile/navigation/middleware';
|
||||
import '../mobile/permissions/middleware';
|
||||
import '../mobile/proximity/middleware';
|
||||
import '../mobile/wake-lock/middleware';
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
/* @flow */
|
||||
|
||||
import React, { Component } from 'react';
|
||||
import { Text, TextInput, View } from 'react-native';
|
||||
import { Platform, Text, View } from 'react-native';
|
||||
import Dialog from 'react-native-dialog';
|
||||
import { connect as reduxConnect } from 'react-redux';
|
||||
import type { Dispatch } from 'redux';
|
||||
|
||||
import { ColorSchemeRegistry } from '../../../base/color-scheme';
|
||||
import { toJid } from '../../../base/connection';
|
||||
import { connect } from '../../../base/connection/actions.native';
|
||||
import {
|
||||
CustomSubmitDialog,
|
||||
FIELD_UNDERLINE,
|
||||
PLACEHOLDER_COLOR,
|
||||
_abstractMapStateToProps,
|
||||
inputDialog as inputDialogStyle
|
||||
} from '../../../base/dialog';
|
||||
import { _abstractMapStateToProps } from '../../../base/dialog';
|
||||
import { translate } from '../../../base/i18n';
|
||||
import { JitsiConnectionErrors } from '../../../base/lib-jitsi-meet';
|
||||
import type { StyleType } from '../../../base/styles';
|
||||
@@ -44,11 +39,6 @@ type Props = {
|
||||
*/
|
||||
_connecting: boolean,
|
||||
|
||||
/**
|
||||
* The color-schemed stylesheet of the base/dialog feature.
|
||||
*/
|
||||
_dialogStyles: StyleType,
|
||||
|
||||
/**
|
||||
* The error which occurred during login/authentication.
|
||||
*/
|
||||
@@ -150,42 +140,62 @@ class LoginDialog extends Component<Props, State> {
|
||||
render() {
|
||||
const {
|
||||
_connecting: connecting,
|
||||
_dialogStyles,
|
||||
_styles: styles,
|
||||
t
|
||||
} = this.props;
|
||||
let rightKey;
|
||||
let leftKey;
|
||||
let rightOnPress;
|
||||
let leftOnPress;
|
||||
let rightDisabled;
|
||||
let leftDisabled;
|
||||
|
||||
if (Platform.OS === 'android') {
|
||||
rightKey = 'dialog.Ok';
|
||||
rightOnPress = () => this._onLogin();
|
||||
rightDisabled = connecting;
|
||||
leftKey = 'dialog.Cancel';
|
||||
leftOnPress = () => this._onCancel();
|
||||
} else {
|
||||
rightKey = 'dialog.Cancel';
|
||||
rightOnPress = () => this._onCancel();
|
||||
leftKey = 'dialog.Ok';
|
||||
leftOnPress = () => this._onLogin();
|
||||
leftDisabled = connecting;
|
||||
}
|
||||
|
||||
return (
|
||||
<CustomSubmitDialog
|
||||
okDisabled = { connecting }
|
||||
onCancel = { this._onCancel }
|
||||
onSubmit = { this._onLogin }>
|
||||
<View style = { styles.loginDialog }>
|
||||
<TextInput
|
||||
<View>
|
||||
<Dialog.Container
|
||||
visible = { true }>
|
||||
<Dialog.Title>
|
||||
{ t('dialog.login') }
|
||||
</Dialog.Title>
|
||||
<Dialog.Input
|
||||
autoCapitalize = { 'none' }
|
||||
autoCorrect = { false }
|
||||
onChangeText = { this._onUsernameChange }
|
||||
placeholder = { 'user@domain.com' }
|
||||
placeholderTextColor = { PLACEHOLDER_COLOR }
|
||||
spellCheck = { false }
|
||||
style = { _dialogStyles.field }
|
||||
underlineColorAndroid = { FIELD_UNDERLINE }
|
||||
value = { this.state.username } />
|
||||
<TextInput
|
||||
<Dialog.Input
|
||||
autoCapitalize = { 'none' }
|
||||
onChangeText = { this._onPasswordChange }
|
||||
placeholder = { t('dialog.userPassword') }
|
||||
placeholderTextColor = { PLACEHOLDER_COLOR }
|
||||
secureTextEntry = { true }
|
||||
style = { [
|
||||
_dialogStyles.field,
|
||||
inputDialogStyle.bottomField
|
||||
] }
|
||||
underlineColorAndroid = { FIELD_UNDERLINE }
|
||||
value = { this.state.password } />
|
||||
{ this._renderMessage() }
|
||||
</View>
|
||||
</CustomSubmitDialog>
|
||||
<Dialog.Description>
|
||||
{ this._renderMessage() }
|
||||
</Dialog.Description>
|
||||
<Dialog.Button
|
||||
disabled = { rightDisabled }
|
||||
label = { t(rightKey) }
|
||||
onPress = { rightOnPress } />
|
||||
<Dialog.Button
|
||||
disabled = { leftDisabled }
|
||||
label = { t(leftKey) }
|
||||
onPress = { leftOnPress } />
|
||||
</Dialog.Container>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -239,10 +249,8 @@ class LoginDialog extends Component<Props, State> {
|
||||
|
||||
if (messageKey) {
|
||||
const message = t(messageKey, messageOptions);
|
||||
const messageStyles = [
|
||||
styles.dialogText,
|
||||
messageIsError ? styles.errorMessage : styles.progressMessage
|
||||
];
|
||||
const messageStyles
|
||||
= messageIsError ? styles.errorMessage : styles.progressMessage;
|
||||
|
||||
return (
|
||||
<Text style = { messageStyles }>
|
||||
@@ -337,7 +345,7 @@ function _mapStateToProps(state) {
|
||||
progress,
|
||||
thenableWithCancel
|
||||
} = state['features/authentication'];
|
||||
const { authRequired } = state['features/base/conference'];
|
||||
const { authRequired, conference } = state['features/base/conference'];
|
||||
const { hosts: configHosts } = state['features/base/config'];
|
||||
const {
|
||||
connecting,
|
||||
@@ -346,7 +354,7 @@ function _mapStateToProps(state) {
|
||||
|
||||
return {
|
||||
..._abstractMapStateToProps(state),
|
||||
_conference: authRequired,
|
||||
_conference: authRequired || conference,
|
||||
_configHosts: configHosts,
|
||||
_connecting: Boolean(connecting) || Boolean(thenableWithCancel),
|
||||
_error: connectionError || authenticateAndUpgradeRoleError,
|
||||
|
||||
@@ -63,14 +63,14 @@ class WaitForOwnerDialog extends Component<Props> {
|
||||
|
||||
return (
|
||||
<ConfirmDialog
|
||||
cancelKey = 'dialog.Cancel'
|
||||
contentKey = {
|
||||
cancelLabel = 'dialog.Cancel'
|
||||
confirmLabel = 'dialog.IamHost'
|
||||
descriptionKey = {
|
||||
{
|
||||
key: 'dialog.WaitForHostMsgWOk',
|
||||
params: { room }
|
||||
}
|
||||
}
|
||||
okKey = 'dialog.Ok'
|
||||
onCancel = { this._onCancel }
|
||||
onSubmit = { this._onLogin } />
|
||||
);
|
||||
|
||||
@@ -299,7 +299,7 @@ function mapStateToProps(state) {
|
||||
progress,
|
||||
thenableWithCancel
|
||||
} = state['features/authentication'];
|
||||
const { authRequired } = state['features/base/conference'];
|
||||
const { authRequired, conference } = state['features/base/conference'];
|
||||
const { hosts: configHosts } = state['features/base/config'];
|
||||
const {
|
||||
connecting,
|
||||
@@ -307,7 +307,7 @@ function mapStateToProps(state) {
|
||||
} = state['features/base/connection'];
|
||||
|
||||
return {
|
||||
_conference: authRequired,
|
||||
_conference: authRequired || conference,
|
||||
_configHosts: configHosts,
|
||||
_connecting: connecting || thenableWithCancel,
|
||||
_error: connectionError || authenticateAndUpgradeRoleError,
|
||||
|
||||
@@ -19,6 +19,7 @@ import { MiddlewareRegistry } from '../base/redux';
|
||||
import {
|
||||
CANCEL_LOGIN,
|
||||
STOP_WAIT_FOR_OWNER,
|
||||
UPGRADE_ROLE_FINISHED,
|
||||
WAIT_FOR_OWNER
|
||||
} from './actionTypes';
|
||||
import {
|
||||
@@ -61,10 +62,15 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
// Go back to the app's entry point.
|
||||
_hideLoginDialog(store);
|
||||
|
||||
// FIXME Like cancelWaitForOwner, dispatch conferenceLeft to notify
|
||||
// the external-api.
|
||||
const { authRequired, conference } = getState()['features/base/conference'];
|
||||
|
||||
dispatch(appNavigate(undefined));
|
||||
// Only end the meeting if we are not already inside and trying to upgrade.
|
||||
if (authRequired && !conference) {
|
||||
// FIXME Like cancelWaitForOwner, dispatch conferenceLeft to notify
|
||||
// the external-api.
|
||||
|
||||
dispatch(appNavigate(undefined));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -123,6 +129,15 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
store.dispatch(hideDialog(WaitForOwnerDialog));
|
||||
break;
|
||||
|
||||
case UPGRADE_ROLE_FINISHED: {
|
||||
const { error, progress } = action;
|
||||
|
||||
if (!error && progress === 1) {
|
||||
_hideLoginDialog(store);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case WAIT_FOR_OWNER: {
|
||||
_clearExistingWaitForOwnerTimeout(store);
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import { MiddlewareRegistry } from '../base/redux';
|
||||
import {
|
||||
CANCEL_LOGIN,
|
||||
STOP_WAIT_FOR_OWNER,
|
||||
UPGRADE_ROLE_FINISHED,
|
||||
WAIT_FOR_OWNER
|
||||
} from './actionTypes';
|
||||
import {
|
||||
@@ -39,16 +40,23 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
switch (action.type) {
|
||||
|
||||
case CANCEL_LOGIN: {
|
||||
const { dispatch, getState } = store;
|
||||
|
||||
if (!isDialogOpen(store, WaitForOwnerDialog)) {
|
||||
if (_isWaitingForOwner(store)) {
|
||||
store.dispatch(openWaitForOwnerDialog());
|
||||
dispatch(openWaitForOwnerDialog());
|
||||
|
||||
return next(action);
|
||||
}
|
||||
|
||||
store.dispatch(hideLoginDialog());
|
||||
dispatch(hideLoginDialog());
|
||||
|
||||
store.dispatch(maybeRedirectToWelcomePage());
|
||||
const { authRequired, conference } = getState()['features/base/conference'];
|
||||
|
||||
// Only end the meeting if we are not already inside and trying to upgrade.
|
||||
if (authRequired && !conference) {
|
||||
dispatch(maybeRedirectToWelcomePage());
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -91,6 +99,15 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
store.dispatch(hideDialog(WaitForOwnerDialog));
|
||||
break;
|
||||
|
||||
case UPGRADE_ROLE_FINISHED: {
|
||||
const { error, progress } = action;
|
||||
|
||||
if (!error && progress === 1) {
|
||||
store.dispatch(hideLoginDialog());
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case WAIT_FOR_OWNER: {
|
||||
_clearExistingWaitForOwnerTimeout(store);
|
||||
|
||||
|
||||
@@ -144,7 +144,6 @@ export default [
|
||||
'enableOpusRed',
|
||||
'enableRemb',
|
||||
'enableSaveLogs',
|
||||
'enableScreenshotCapture',
|
||||
'enableTalkWhileMuted',
|
||||
'enableUnifiedOnChrome',
|
||||
'enableNoAudioDetection',
|
||||
@@ -163,6 +162,7 @@ export default [
|
||||
'hiddenPremeetingButtons',
|
||||
'hideConferenceSubject',
|
||||
'hideDisplayName',
|
||||
'hideDominantSpeakerBadge',
|
||||
'hideRecordingLabel',
|
||||
'hideParticipantsStats',
|
||||
'hideConferenceTimer',
|
||||
@@ -197,6 +197,7 @@ export default [
|
||||
'readOnlyName',
|
||||
'replaceParticipant',
|
||||
'resolution',
|
||||
'screenshotCapture',
|
||||
'startAudioMuted',
|
||||
'startAudioOnly',
|
||||
'startLastN',
|
||||
@@ -210,6 +211,7 @@ export default [
|
||||
'testing',
|
||||
'toolbarButtons',
|
||||
'toolbarConfig',
|
||||
'tileView',
|
||||
'transcribingEnabled',
|
||||
'useHostPageLocalStorage',
|
||||
'useTurnUdp',
|
||||
|
||||
@@ -186,6 +186,15 @@ export function isNameReadOnly(state: Object): boolean {
|
||||
|| state['features/base/config'].readOnlyName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Selector for determining if the display name is visible.
|
||||
*
|
||||
* @param {Object} state - The state of the app.
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isDisplayNameVisible(state: Object): boolean {
|
||||
return !state['features/base/config'].hideDisplayName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restores a Jitsi Meet config.js from {@code localStorage} if it was
|
||||
|
||||
57
react/features/base/dialog/components/functions.native.js
Normal file
57
react/features/base/dialog/components/functions.native.js
Normal file
@@ -0,0 +1,57 @@
|
||||
import React from 'react';
|
||||
import { Text } from 'react-native';
|
||||
|
||||
import { brandedDialog as styles } from './native';
|
||||
|
||||
/**
|
||||
* Renders a specific {@code string} which may contain HTML.
|
||||
*
|
||||
* @param {string|undefined} html - The {@code string} which may
|
||||
* contain HTML to render.
|
||||
* @returns {ReactElement[]|string}
|
||||
*/
|
||||
export function renderHTML(html) {
|
||||
if (typeof html === 'string') {
|
||||
// At the time of this writing, the specified HTML contains a couple
|
||||
// of spaces one after the other. They do not cause a visible
|
||||
// problem on Web, because the specified HTML is rendered as, well,
|
||||
// HTML. However, we're not rendering HTML here.
|
||||
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
html = html.replace(/\s{2,}/gi, ' ');
|
||||
|
||||
// Render text in <b>text</b> in bold.
|
||||
const opening = /<\s*b\s*>/gi;
|
||||
const closing = /<\s*\/\s*b\s*>/gi;
|
||||
let o;
|
||||
let c;
|
||||
let prevClosingLastIndex = 0;
|
||||
const r = [];
|
||||
|
||||
// eslint-disable-next-line no-cond-assign
|
||||
while (o = opening.exec(html)) {
|
||||
closing.lastIndex = opening.lastIndex;
|
||||
|
||||
// eslint-disable-next-line no-cond-assign
|
||||
if (c = closing.exec(html)) {
|
||||
r.push(html.substring(prevClosingLastIndex, o.index));
|
||||
r.push(
|
||||
<Text style = { styles.boldDialogText }>
|
||||
{ html.substring(opening.lastIndex, c.index) }
|
||||
</Text>);
|
||||
opening.lastIndex
|
||||
= prevClosingLastIndex
|
||||
= closing.lastIndex;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (prevClosingLastIndex < html.length) {
|
||||
r.push(html.substring(prevClosingLastIndex));
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import { Text } from 'react-native';
|
||||
import { translate } from '../../../i18n';
|
||||
import { connect } from '../../../redux';
|
||||
import { _abstractMapStateToProps } from '../../functions';
|
||||
import { renderHTML } from '../functions.native';
|
||||
|
||||
import { type Props as AbstractProps } from './BaseDialog';
|
||||
import BaseSubmitDialog from './BaseSubmitDialog';
|
||||
@@ -36,7 +37,7 @@ class AlertDialog extends BaseSubmitDialog<Props, *> {
|
||||
const content
|
||||
= typeof contentKey === 'string'
|
||||
? t(contentKey)
|
||||
: this._renderHTML(t(contentKey.key, contentKey.params));
|
||||
: renderHTML(t(contentKey.key, contentKey.params));
|
||||
|
||||
return (
|
||||
<Text style = { _dialogStyles.text }>
|
||||
@@ -44,8 +45,6 @@ class AlertDialog extends BaseSubmitDialog<Props, *> {
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
||||
_renderHTML: string => Object | string;
|
||||
}
|
||||
|
||||
export default translate(connect(_abstractMapStateToProps)(AlertDialog));
|
||||
|
||||
@@ -94,59 +94,6 @@ class BaseDialog<P: Props, S: State> extends AbstractDialog<P, S> {
|
||||
* @returns {ReactElement}
|
||||
*/
|
||||
_renderContent: () => Object;
|
||||
|
||||
/**
|
||||
* Renders a specific {@code string} which may contain HTML.
|
||||
*
|
||||
* @param {string|undefined} html - The {@code string} which may
|
||||
* contain HTML to render.
|
||||
* @returns {ReactElement[]|string}
|
||||
*/
|
||||
_renderHTML(html: ?string) {
|
||||
if (typeof html === 'string') {
|
||||
// At the time of this writing, the specified HTML contains a couple
|
||||
// of spaces one after the other. They do not cause a visible
|
||||
// problem on Web, because the specified HTML is rendered as, well,
|
||||
// HTML. However, we're not rendering HTML here.
|
||||
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
html = html.replace(/\s{2,}/gi, ' ');
|
||||
|
||||
// Render text in <b>text</b> in bold.
|
||||
const opening = /<\s*b\s*>/gi;
|
||||
const closing = /<\s*\/\s*b\s*>/gi;
|
||||
let o;
|
||||
let c;
|
||||
let prevClosingLastIndex = 0;
|
||||
const r = [];
|
||||
|
||||
// eslint-disable-next-line no-cond-assign
|
||||
while (o = opening.exec(html)) {
|
||||
closing.lastIndex = opening.lastIndex;
|
||||
|
||||
// eslint-disable-next-line no-cond-assign
|
||||
if (c = closing.exec(html)) {
|
||||
r.push(html.substring(prevClosingLastIndex, o.index));
|
||||
r.push(
|
||||
<Text style = { styles.boldDialogText }>
|
||||
{ html.substring(opening.lastIndex, c.index) }
|
||||
</Text>);
|
||||
opening.lastIndex
|
||||
= prevClosingLastIndex
|
||||
= closing.lastIndex;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (prevClosingLastIndex < html.length) {
|
||||
r.push(html.substring(prevClosingLastIndex));
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
||||
export default BaseDialog;
|
||||
|
||||
@@ -84,8 +84,6 @@ class BaseSubmitDialog<P: Props, S: *> extends BaseDialog<P, S> {
|
||||
|
||||
_onSubmit: () => boolean;
|
||||
|
||||
_renderHTML: string => Object | string;
|
||||
|
||||
/** .
|
||||
* Renders the actual content of the dialog defining what is about to be
|
||||
* submitted. E.g. A simple confirmation (text, properly wrapped) or a
|
||||
|
||||
@@ -1,107 +1,165 @@
|
||||
// @flow
|
||||
|
||||
import React from 'react';
|
||||
import { Text, TouchableOpacity } from 'react-native';
|
||||
import { Platform, View } from 'react-native';
|
||||
import Dialog from 'react-native-dialog';
|
||||
|
||||
import { translate } from '../../../i18n';
|
||||
import { connect } from '../../../redux';
|
||||
import { StyleType } from '../../../styles';
|
||||
import { _abstractMapStateToProps } from '../../functions';
|
||||
import AbstractDialog from '../AbstractDialog';
|
||||
import { renderHTML } from '../functions.native';
|
||||
|
||||
import { type Props as BaseProps } from './BaseDialog';
|
||||
import BaseSubmitDialog from './BaseSubmitDialog';
|
||||
import { brandedDialog } from './styles';
|
||||
import styles from './styles';
|
||||
|
||||
type Props = BaseProps & {
|
||||
|
||||
/**
|
||||
* The color-schemed stylesheet of the feature.
|
||||
*/
|
||||
_dialogStyles: StyleType,
|
||||
|
||||
/**
|
||||
* Untranslated i18n key of the content to be displayed.
|
||||
*
|
||||
* NOTE: This dialog also adds support to Object type keys that will be
|
||||
* translated using the provided params. See i18n function
|
||||
* {@code translate(string, Object)} for more details.
|
||||
*/
|
||||
contentKey: string | { key: string, params: Object},
|
||||
|
||||
/**
|
||||
* The handler for the event when clicking the 'confirmNo' button.
|
||||
* Defaults to onCancel if absent.
|
||||
*/
|
||||
onDecline?: Function,
|
||||
|
||||
t: Function
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements a confirm dialog component.
|
||||
* The type of the React {@code Component} props of
|
||||
* {@link ConfirmDialog}.
|
||||
*/
|
||||
class ConfirmDialog extends BaseSubmitDialog<Props, *> {
|
||||
type Props = {
|
||||
|
||||
/**
|
||||
* Returns the title key of the submit button.
|
||||
*
|
||||
* @returns {string}
|
||||
* The i18n key of the text label for the cancel button.
|
||||
*/
|
||||
_getSubmitButtonKey() {
|
||||
return this.props.okKey || 'dialog.confirmYes';
|
||||
cancelLabel: string,
|
||||
|
||||
/**
|
||||
* The React {@code Component} children.
|
||||
*/
|
||||
children?: React$Node,
|
||||
|
||||
/**
|
||||
* The i18n key of the text label for the confirm button.
|
||||
*/
|
||||
confirmLabel: string,
|
||||
|
||||
/**
|
||||
* Dialog description key for translations.
|
||||
*/
|
||||
descriptionKey?: string | Object,
|
||||
|
||||
/**
|
||||
* Whether or not the nature of the confirm button is destructive.
|
||||
*/
|
||||
isConfirmDestructive?: Boolean,
|
||||
|
||||
/**
|
||||
* Invoked to obtain translated strings.
|
||||
*/
|
||||
t: Function,
|
||||
|
||||
/**
|
||||
* Dialog title.
|
||||
*/
|
||||
title?: string,
|
||||
};
|
||||
|
||||
/**
|
||||
* React Component for getting confirmation to stop a file recording session in
|
||||
* progress.
|
||||
*
|
||||
* @augments Component
|
||||
*/
|
||||
class ConfirmDialog extends AbstractDialog<Props> {
|
||||
/**
|
||||
* Default values for {@code ConfirmDialog} component's properties.
|
||||
*
|
||||
* @static
|
||||
*/
|
||||
static defaultProps = {
|
||||
isConfirmDestructive: false
|
||||
};
|
||||
|
||||
/**
|
||||
* Renders the dialog description.
|
||||
*
|
||||
* @returns {React$Component}
|
||||
*/
|
||||
_renderDescription() {
|
||||
const { descriptionKey, t } = this.props;
|
||||
const description
|
||||
= typeof descriptionKey === 'string'
|
||||
? t(descriptionKey)
|
||||
: renderHTML(
|
||||
t(descriptionKey?.key, descriptionKey?.params)
|
||||
);
|
||||
|
||||
return (
|
||||
<Dialog.Description>
|
||||
{ description }
|
||||
</Dialog.Description>
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements {@code Component#render}.
|
||||
*
|
||||
* @inheritdoc
|
||||
*/
|
||||
render() {
|
||||
const {
|
||||
cancelLabel,
|
||||
children,
|
||||
confirmLabel,
|
||||
isConfirmDestructive,
|
||||
t,
|
||||
title
|
||||
} = this.props;
|
||||
|
||||
const dialogButtonStyle
|
||||
= isConfirmDestructive
|
||||
? styles.destructiveDialogButton : styles.dialogButton;
|
||||
|
||||
let rightLabel;
|
||||
let leftLabel;
|
||||
let rightOnPress;
|
||||
let leftOnPress;
|
||||
let rightStyle;
|
||||
let leftStyle;
|
||||
|
||||
if (Platform.OS === 'android') {
|
||||
rightLabel = confirmLabel || 'dialog.confirmYes';
|
||||
rightOnPress = () => this._onSubmit();
|
||||
rightStyle = dialogButtonStyle;
|
||||
leftLabel = cancelLabel || 'dialog.confirmNo';
|
||||
leftOnPress = () => this._onCancel();
|
||||
leftStyle = styles.dialogButton;
|
||||
} else {
|
||||
rightLabel = cancelLabel || 'dialog.confirmNo';
|
||||
rightOnPress = () => this._onCancel();
|
||||
rightStyle = styles.dialogButton;
|
||||
leftLabel = confirmLabel || 'dialog.confirmYes';
|
||||
leftOnPress = () => this._onSubmit();
|
||||
leftStyle = dialogButtonStyle;
|
||||
}
|
||||
|
||||
return (
|
||||
<View>
|
||||
<Dialog.Container
|
||||
visible = { true }>
|
||||
{
|
||||
title && <Dialog.Title>
|
||||
{ t(title) }
|
||||
</Dialog.Title>
|
||||
}
|
||||
{ this._renderDescription() }
|
||||
{ children }
|
||||
<Dialog.Button
|
||||
label = { t(rightLabel) }
|
||||
onPress = { rightOnPress }
|
||||
style = { rightStyle } />
|
||||
<Dialog.Button
|
||||
label = { t(leftLabel) }
|
||||
onPress = { leftOnPress }
|
||||
style = { leftStyle } />
|
||||
</Dialog.Container>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
_onCancel: () => void;
|
||||
|
||||
/**
|
||||
* Renders the 'No' button.
|
||||
*
|
||||
* NOTE: The {@code ConfirmDialog} is the only dialog right now that
|
||||
* renders 2 buttons, mainly for clarity.
|
||||
*
|
||||
* @inheritdoc
|
||||
*/
|
||||
_renderAdditionalButtons() {
|
||||
const { _dialogStyles, cancelKey, onDecline, t } = this.props;
|
||||
|
||||
return (
|
||||
<TouchableOpacity
|
||||
onPress = { onDecline || this._onCancel }
|
||||
style = { [
|
||||
_dialogStyles.button,
|
||||
brandedDialog.buttonFarLeft,
|
||||
_dialogStyles.buttonSeparator
|
||||
] }>
|
||||
<Text style = { _dialogStyles.buttonLabel }>
|
||||
{ t(cancelKey || 'dialog.confirmNo') }
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements {@code BaseSubmitDialog._renderSubmittable}.
|
||||
*
|
||||
* @inheritdoc
|
||||
*/
|
||||
_renderSubmittable() {
|
||||
if (this.props.children) {
|
||||
return this.props.children;
|
||||
}
|
||||
|
||||
const { _dialogStyles, contentKey, t } = this.props;
|
||||
const content
|
||||
= typeof contentKey === 'string'
|
||||
? t(contentKey)
|
||||
: this._renderHTML(t(contentKey.key, contentKey.params));
|
||||
|
||||
return (
|
||||
<Text style = { _dialogStyles.text }>
|
||||
{ content }
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
||||
_renderHTML: string => Object | string;
|
||||
_onSubmit: (?string) => void;
|
||||
}
|
||||
|
||||
export default translate(connect(_abstractMapStateToProps)(ConfirmDialog));
|
||||
export default translate(connect()(ConfirmDialog));
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
// @flow
|
||||
|
||||
import { connect } from '../../../redux';
|
||||
import { _abstractMapStateToProps } from '../../functions';
|
||||
|
||||
import BaseDialog, { type Props } from './BaseDialog';
|
||||
|
||||
/**
|
||||
* Implements a custom dialog component, where the content can freely be
|
||||
* rendered.
|
||||
*/
|
||||
class CustomDialog extends BaseDialog<Props, *> {
|
||||
/**
|
||||
* Implements {@code BaseDialog._renderContent}.
|
||||
*
|
||||
* @inheritdoc
|
||||
*/
|
||||
_renderContent() {
|
||||
return this.props.children;
|
||||
}
|
||||
}
|
||||
|
||||
export default connect(_abstractMapStateToProps)(CustomDialog);
|
||||
@@ -1,32 +1,25 @@
|
||||
// @flow
|
||||
|
||||
import React from 'react';
|
||||
import { View, Text, TextInput, TouchableOpacity } from 'react-native';
|
||||
import { View } from 'react-native';
|
||||
import Dialog from 'react-native-dialog';
|
||||
|
||||
import { translate } from '../../../i18n';
|
||||
import { connect } from '../../../redux';
|
||||
import { StyleType } from '../../../styles';
|
||||
import { _abstractMapStateToProps } from '../../functions';
|
||||
import { type State as AbstractState } from '../AbstractDialog';
|
||||
import AbstractDialog, {
|
||||
type Props as AbstractProps,
|
||||
type State as AbstractState
|
||||
} from '../AbstractDialog';
|
||||
|
||||
import BaseDialog, { type Props as BaseProps } from './BaseDialog';
|
||||
import {
|
||||
FIELD_UNDERLINE,
|
||||
brandedDialog,
|
||||
inputDialog as styles
|
||||
} from './styles';
|
||||
import { inputDialog as styles } from './styles';
|
||||
|
||||
type Props = BaseProps & {
|
||||
type Props = AbstractProps & {
|
||||
|
||||
/**
|
||||
* The color-schemed stylesheet of the feature.
|
||||
* The dialog descriptionKey.
|
||||
*/
|
||||
_dialogStyles: StyleType,
|
||||
|
||||
/**
|
||||
* The untranslated i18n key for the field label on the dialog.
|
||||
*/
|
||||
contentKey: string,
|
||||
descriptionKey: string,
|
||||
|
||||
/**
|
||||
* An optional initial value to initiate the field with.
|
||||
@@ -38,18 +31,28 @@ type Props = BaseProps & {
|
||||
*/
|
||||
messageKey?: string,
|
||||
|
||||
/**
|
||||
* The translate function.
|
||||
*/
|
||||
t: Function,
|
||||
|
||||
/**
|
||||
* Props for the text input.
|
||||
*/
|
||||
textInputProps: ?Object,
|
||||
|
||||
/**
|
||||
* The untranslated i18n key for the dialog title.
|
||||
*/
|
||||
titleKey?: string,
|
||||
|
||||
/**
|
||||
* Validating of the input.
|
||||
*/
|
||||
validateInput: ?Function
|
||||
}
|
||||
|
||||
type State = {
|
||||
...AbstractState,
|
||||
type State = AbstractState & {
|
||||
|
||||
/**
|
||||
* The current value of the field.
|
||||
@@ -60,7 +63,7 @@ type State = {
|
||||
/**
|
||||
* Implements a single field input dialog component.
|
||||
*/
|
||||
class InputDialog extends BaseDialog<Props, State> {
|
||||
class InputDialog<P: Props, S: State> extends AbstractDialog<P, S> {
|
||||
/**
|
||||
* Instantiates a new {@code InputDialog}.
|
||||
*
|
||||
@@ -79,52 +82,50 @@ class InputDialog extends BaseDialog<Props, State> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements {@code BaseDialog._renderContent}.
|
||||
* Implements {@code Component#render}.
|
||||
*
|
||||
* @inheritdoc
|
||||
*/
|
||||
_renderContent() {
|
||||
const { _dialogStyles, messageKey, okDisabled, t } = this.props;
|
||||
render() {
|
||||
const {
|
||||
descriptionKey,
|
||||
messageKey,
|
||||
t,
|
||||
titleKey
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<View>
|
||||
<View
|
||||
style = { [
|
||||
brandedDialog.mainWrapper,
|
||||
styles.fieldWrapper
|
||||
] }>
|
||||
<Text style = { _dialogStyles.fieldLabel }>
|
||||
{ t(this.props.contentKey) }
|
||||
</Text>
|
||||
<TextInput
|
||||
<Dialog.Container
|
||||
onBackdropPress = { this._onCancel }
|
||||
visible = { true }>
|
||||
<Dialog.Title>
|
||||
{ t(titleKey) }
|
||||
</Dialog.Title>
|
||||
{
|
||||
descriptionKey && (
|
||||
<Dialog.Description>
|
||||
{ t(descriptionKey) }
|
||||
</Dialog.Description>
|
||||
)
|
||||
}
|
||||
<Dialog.Input
|
||||
autoFocus = { true }
|
||||
onChangeText = { this._onChangeText }
|
||||
style = { _dialogStyles.field }
|
||||
underlineColorAndroid = { FIELD_UNDERLINE }
|
||||
value = { this.state.fieldValue }
|
||||
{ ...this.props.textInputProps } />
|
||||
{ messageKey && (<Text
|
||||
style = { [
|
||||
styles.formMessage,
|
||||
_dialogStyles.text
|
||||
] }>
|
||||
{ t(messageKey) }
|
||||
</Text>) }
|
||||
</View>
|
||||
<View style = { brandedDialog.buttonWrapper }>
|
||||
<TouchableOpacity
|
||||
disabled = { okDisabled }
|
||||
onPress = { this._onSubmitValue }
|
||||
style = { [
|
||||
_dialogStyles.button,
|
||||
brandedDialog.buttonFarLeft,
|
||||
brandedDialog.buttonFarRight
|
||||
] }>
|
||||
<Text style = { _dialogStyles.buttonLabel }>
|
||||
{ t('dialog.Ok') }
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
{
|
||||
messageKey && (
|
||||
<Dialog.Description
|
||||
style = { styles.formMessage }>
|
||||
{ t(messageKey) }
|
||||
</Dialog.Description>
|
||||
)
|
||||
}
|
||||
<Dialog.Button
|
||||
label = { t('dialog.Ok') }
|
||||
onPress = { this._onSubmitValue } />
|
||||
</Dialog.Container>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
@@ -140,9 +141,7 @@ class InputDialog extends BaseDialog<Props, State> {
|
||||
* @returns {void}
|
||||
*/
|
||||
_onChangeText(fieldValue) {
|
||||
|
||||
if (this.props.validateInput
|
||||
&& !this.props.validateInput(fieldValue)) {
|
||||
if (this.props.validateInput && !this.props.validateInput(fieldValue)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
export { default as BottomSheet } from './BottomSheet';
|
||||
export { default as ConfirmDialog } from './ConfirmDialog';
|
||||
export { default as CustomDialog } from './CustomDialog';
|
||||
export { default as DialogContainer } from './DialogContainer';
|
||||
export { default as AlertDialog } from './AlertDialog';
|
||||
export { default as InputDialog } from './InputDialog';
|
||||
|
||||
@@ -20,8 +20,6 @@ export const MD_FONT_SIZE = 16;
|
||||
export const MD_ITEM_HEIGHT = 48;
|
||||
export const MD_ITEM_MARGIN_PADDING = 16;
|
||||
|
||||
export const PLACEHOLDER_COLOR = ColorPalette.lightGrey;
|
||||
|
||||
/**
|
||||
* The React {@code Component} styles of {@code BottomSheet}. These have
|
||||
* been implemented as per the Material Design guidelines:
|
||||
@@ -56,6 +54,18 @@ export const bottomSheetStyles = {
|
||||
}
|
||||
};
|
||||
|
||||
export default {
|
||||
|
||||
dialogButton: {
|
||||
...BaseTheme.typography.labelButton
|
||||
},
|
||||
|
||||
destructiveDialogButton: {
|
||||
...BaseTheme.typography.labelButton,
|
||||
color: BaseTheme.palette.actionDanger
|
||||
}
|
||||
};
|
||||
|
||||
export const brandedDialog = {
|
||||
|
||||
/**
|
||||
@@ -146,19 +156,11 @@ const brandedDialogIconStyle = {
|
||||
};
|
||||
|
||||
export const inputDialog = {
|
||||
bottomField: {
|
||||
marginBottom: 0
|
||||
},
|
||||
|
||||
fieldWrapper: {
|
||||
...brandedDialog.mainWrapper,
|
||||
paddingBottom: BoxModel.padding * 2
|
||||
},
|
||||
|
||||
formMessage: {
|
||||
alignSelf: 'flex-start',
|
||||
fontStyle: 'italic',
|
||||
margin: BoxModel.margin
|
||||
fontWeight: 'bold',
|
||||
marginTop: BaseTheme.spacing[3]
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -14,12 +14,6 @@ import './native';
|
||||
// Re-export JitsiMeetJS from the library lib-jitsi-meet to (the other features
|
||||
// of) the project jitsi-meet.
|
||||
//
|
||||
// TODO The Web support implemented by the jitsi-meet project explicitly uses
|
||||
// the library lib-jitsi-meet as a binary and keeps it out of the application
|
||||
// bundle. The mobile support implemented by the jitsi-meet project did not get
|
||||
// to keeping the lib-jitsi-meet library out of the application bundle and even
|
||||
// used it from source. As an intermediate step, start using the library
|
||||
// lib-jitsi-meet as a binary on mobile at the time of this writing. In the
|
||||
// future, implement not packaging it in the application bundle.
|
||||
import JitsiMeetJS from 'lib-jitsi-meet/lib-jitsi-meet.min';
|
||||
|
||||
import JitsiMeetJS from 'lib-jitsi-meet';
|
||||
export { JitsiMeetJS as default };
|
||||
|
||||
@@ -603,7 +603,6 @@ function _raiseHandUpdated({ dispatch, getState }, conference, participantId, ne
|
||||
titleKey: 'notify.somebody',
|
||||
title: notificationTitle,
|
||||
descriptionKey: 'notify.raisedHand',
|
||||
raiseHandNotification: true,
|
||||
concatText: true,
|
||||
uid: RAISE_HAND_NOTIFICATION_ID,
|
||||
...action
|
||||
|
||||
@@ -1,7 +1,30 @@
|
||||
// @flow
|
||||
|
||||
import _ from 'lodash';
|
||||
import { NIL, parse as parseUUID } from 'uuid';
|
||||
import zxcvbn from 'zxcvbn';
|
||||
|
||||
// The null UUID.
|
||||
const NIL_UUID = parseUUID(NIL);
|
||||
|
||||
/**
|
||||
* Checks if the given string is a valid UUID or not.
|
||||
*
|
||||
* @param {string} str - The string to be checked.
|
||||
* @returns {boolean} - Whether the string is a valid UUID or not.
|
||||
*/
|
||||
function isValidUUID(str) {
|
||||
let uuid;
|
||||
|
||||
try {
|
||||
uuid = parseUUID(str);
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !_.isEqual(uuid, NIL_UUID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the room name is considered a weak (insecure) one.
|
||||
*
|
||||
@@ -9,5 +32,5 @@ import zxcvbn from 'zxcvbn';
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export default function isInsecureRoomName(roomName: string = ''): boolean {
|
||||
return zxcvbn(roomName).score < 3;
|
||||
return !isValidUUID(roomName) && zxcvbn(roomName).score < 3;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
// @flow
|
||||
|
||||
import React from 'react';
|
||||
import { Text, TouchableOpacity, View } from 'react-native';
|
||||
import {
|
||||
Text,
|
||||
TouchableOpacity,
|
||||
TouchableWithoutFeedback,
|
||||
View
|
||||
} from 'react-native';
|
||||
|
||||
import { translate } from '../../base/i18n';
|
||||
import { AbstractPage } from '../../base/react';
|
||||
@@ -27,6 +32,11 @@ type Props = {
|
||||
*/
|
||||
disabled: boolean,
|
||||
|
||||
/**
|
||||
* Callback to be invoked when pressing the list container.
|
||||
*/
|
||||
onListContainerPress?: boolean,
|
||||
|
||||
/**
|
||||
* The translate function.
|
||||
*/
|
||||
@@ -71,20 +81,23 @@ class CalendarList extends AbstractPage<Props> {
|
||||
* @inheritdoc
|
||||
*/
|
||||
render() {
|
||||
const { disabled } = this.props;
|
||||
const { disabled, onListContainerPress } = this.props;
|
||||
|
||||
return (
|
||||
CalendarListContent
|
||||
? <View
|
||||
style = {
|
||||
disabled
|
||||
? styles.calendarSyncDisabled
|
||||
: styles.calendarSync }>
|
||||
<CalendarListContent
|
||||
disabled = { disabled }
|
||||
listEmptyComponent
|
||||
= { this._getRenderListEmptyComponent() } />
|
||||
</View>
|
||||
? <TouchableWithoutFeedback
|
||||
onPress = { onListContainerPress }>
|
||||
<View
|
||||
style = {
|
||||
disabled
|
||||
? styles.calendarSyncDisabled
|
||||
: styles.calendarSync }>
|
||||
<CalendarListContent
|
||||
disabled = { disabled }
|
||||
listEmptyComponent
|
||||
= { this._getRenderListEmptyComponent() } />
|
||||
</View>
|
||||
</TouchableWithoutFeedback>
|
||||
: null
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,12 +17,7 @@ type Props = {
|
||||
/**
|
||||
* The ID of the event to be updated.
|
||||
*/
|
||||
eventId: string,
|
||||
|
||||
/**
|
||||
* Function to translate i18n labels.
|
||||
*/
|
||||
t: Function
|
||||
eventId: string
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -49,7 +44,7 @@ class UpdateCalendarEventDialog extends Component<Props> {
|
||||
render() {
|
||||
return (
|
||||
<ConfirmDialog
|
||||
contentKey = 'calendarSync.confirmAddLink'
|
||||
descriptionKey = 'calendarSync.confirmAddLink'
|
||||
onSubmit = { this._onSubmit } />
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import { Client } from '@microsoft/microsoft-graph-client';
|
||||
import base64js from 'base64-js';
|
||||
import type { Dispatch } from 'redux';
|
||||
import { v4 as uuidV4 } from 'uuid';
|
||||
import { findWindows } from 'windows-iana';
|
||||
|
||||
import { createDeferred } from '../../../../modules/util/helpers';
|
||||
@@ -153,8 +154,8 @@ export const microsoftCalendarApi = {
|
||||
const signInDeferred = createDeferred();
|
||||
|
||||
const guids = {
|
||||
authState: generateGuid(),
|
||||
authNonce: generateGuid()
|
||||
authState: uuidV4(),
|
||||
authNonce: uuidV4()
|
||||
};
|
||||
|
||||
dispatch(setCalendarAPIAuthState(guids));
|
||||
@@ -339,21 +340,6 @@ function formatCalendarEntry(entry) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a guid to be used for verifying token validity.
|
||||
*
|
||||
* @private
|
||||
* @returns {string} The generated string.
|
||||
*/
|
||||
function generateGuid() {
|
||||
const buf = new Uint16Array(8);
|
||||
|
||||
window.crypto.getRandomValues(buf);
|
||||
|
||||
return `${s4(buf[0])}${s4(buf[1])}-${s4(buf[2])}-${s4(buf[3])}-${
|
||||
s4(buf[4])}-${s4(buf[5])}${s4(buf[6])}${s4(buf[7])}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs and returns the URL to use for renewing an auth token.
|
||||
*
|
||||
@@ -582,24 +568,6 @@ function requestCalendarEvents( // eslint-disable-line max-params
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the passed in number to a string and ensure it is at least 4
|
||||
* characters in length, prepending 0's as needed.
|
||||
*
|
||||
* @param {number} num - The number to pad and convert to a string.
|
||||
* @private
|
||||
* @returns {string} - The number converted to a string.
|
||||
*/
|
||||
function s4(num) {
|
||||
let ret = num.toString(16);
|
||||
|
||||
while (ret.length < 4) {
|
||||
ret = `0${ret}`;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a Base64URL encoded string to a UTF-8 encoded string including CJK or Latin.
|
||||
*
|
||||
|
||||
@@ -7,8 +7,8 @@ import {
|
||||
AbstractButton,
|
||||
type AbstractButtonProps
|
||||
} from '../../../base/toolbox/components';
|
||||
import { navigate } from '../../../conference/components/native/ConferenceNavigationContainerRef';
|
||||
import { screen } from '../../../conference/components/native/routes';
|
||||
import { navigate } from '../../../mobile/navigation/components/conference/ConferenceNavigationContainerRef';
|
||||
import { screen } from '../../../mobile/navigation/routes';
|
||||
import { getUnreadCount } from '../../functions';
|
||||
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@ class ChatPrivacyDialog extends AbstractChatPrivacyDialog {
|
||||
render() {
|
||||
return (
|
||||
<ConfirmDialog
|
||||
cancelKey = 'dialog.sendPrivateMessageCancel'
|
||||
contentKey = 'dialog.sendPrivateMessage'
|
||||
okKey = 'dialog.sendPrivateMessageOk'
|
||||
cancelLabel = 'dialog.sendPrivateMessageCancel'
|
||||
confirmLabel = 'dialog.sendPrivateMessageOk'
|
||||
descriptionKey = 'dialog.sendPrivateMessage'
|
||||
onCancel = { this._onSendGroupMessage }
|
||||
onSubmit = { this._onSendPrivateMessage } />
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ import { connect } from '../../../base/redux';
|
||||
import { type StyleType } from '../../../base/styles';
|
||||
import {
|
||||
setParams
|
||||
} from '../../../conference/components/native/ConferenceNavigationContainerRef';
|
||||
} from '../../../mobile/navigation/components/conference/ConferenceNavigationContainerRef';
|
||||
import { setPrivateMessageRecipient } from '../../actions.any';
|
||||
import AbstractMessageRecipient, {
|
||||
type Props as AbstractProps
|
||||
|
||||
@@ -6,8 +6,8 @@ import { IconMessage, IconReply } from '../../../base/icons';
|
||||
import { getParticipantById } from '../../../base/participants';
|
||||
import { connect } from '../../../base/redux';
|
||||
import { AbstractButton, type AbstractButtonProps } from '../../../base/toolbox/components';
|
||||
import { navigate } from '../../../conference/components/native/ConferenceNavigationContainerRef';
|
||||
import { screen } from '../../../conference/components/native/routes';
|
||||
import { navigate } from '../../../mobile/navigation/components/conference/ConferenceNavigationContainerRef';
|
||||
import { screen } from '../../../mobile/navigation/routes';
|
||||
|
||||
export type Props = AbstractButtonProps & {
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// @flow
|
||||
|
||||
export { default as Chat } from './Chat';
|
||||
export { default as ChatAndPolls } from './ChatAndPolls';
|
||||
export { default as ChatButton } from './ChatButton';
|
||||
export { default as ChatPrivacyDialog } from './ChatPrivacyDialog';
|
||||
|
||||
@@ -23,6 +23,9 @@ import { LargeVideo } from '../../../large-video';
|
||||
import { KnockingParticipantList } from '../../../lobby/components/native';
|
||||
import { getIsLobbyVisible } from '../../../lobby/functions';
|
||||
import { BackButtonRegistry } from '../../../mobile/back-button';
|
||||
import { navigate }
|
||||
from '../../../mobile/navigation/components/conference/ConferenceNavigationContainerRef';
|
||||
import { screen } from '../../../mobile/navigation/routes';
|
||||
import { Captions } from '../../../subtitles';
|
||||
import { setToolboxVisible } from '../../../toolbox/actions';
|
||||
import { Toolbox } from '../../../toolbox/components/native';
|
||||
@@ -34,12 +37,10 @@ import {
|
||||
import type { AbstractProps } from '../AbstractConference';
|
||||
|
||||
import AlwaysOnLabels from './AlwaysOnLabels';
|
||||
import { navigate } from './ConferenceNavigationContainerRef';
|
||||
import ExpandedLabelPopup from './ExpandedLabelPopup';
|
||||
import LonelyMeetingExperience from './LonelyMeetingExperience';
|
||||
import TitleBar from './TitleBar';
|
||||
import { EXPANDED_LABEL_TIMEOUT } from './constants';
|
||||
import { screen } from './routes';
|
||||
import styles from './styles';
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// @flow
|
||||
|
||||
export { default as Conference } from './Conference';
|
||||
export { default as ConferenceNavigationContainer } from './ConferenceNavigationContainer';
|
||||
export { default as renderConferenceTimer } from './ConferenceTimerDisplay';
|
||||
export { default as InsecureRoomNameLabel } from './InsecureRoomNameLabel';
|
||||
|
||||
@@ -132,7 +132,6 @@ export default {
|
||||
},
|
||||
|
||||
alwaysOnTitleBar: {
|
||||
padding: 4,
|
||||
paddingRight: 0,
|
||||
borderRadius: 6,
|
||||
backgroundColor: 'rgba(0, 0, 0, .5)',
|
||||
@@ -141,7 +140,11 @@ export default {
|
||||
alignSelf: 'flex-start',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
marginTop: BaseTheme.spacing[2]
|
||||
marginTop: BaseTheme.spacing[2],
|
||||
|
||||
'&:not(:empty)': {
|
||||
padding: 4
|
||||
}
|
||||
},
|
||||
|
||||
expandedLabelWrapper: {
|
||||
|
||||
@@ -238,7 +238,7 @@ class Conference extends AbstractConference<Props, *> {
|
||||
<Filmstrip />
|
||||
</div>
|
||||
|
||||
{ _showPrejoin || _showLobby || <Toolbox showDominantSpeakerName = { true } /> }
|
||||
{ _showPrejoin || _showLobby || <Toolbox /> }
|
||||
<Chat />
|
||||
|
||||
{_notificationsVisible && (_overflowDrawer
|
||||
|
||||
@@ -18,8 +18,9 @@ class DisplayNamePrompt extends AbstractDisplayNamePrompt<*> {
|
||||
render() {
|
||||
return (
|
||||
<InputDialog
|
||||
contentKey = 'dialog.enterDisplayName'
|
||||
onSubmit = { this._onSetDisplayName } />
|
||||
descriptionKey = 'dialog.enterDisplayName'
|
||||
onSubmit = { this._onSetDisplayName }
|
||||
titleKey = 'dialog.displayNameRequired' />
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import { makeStyles } from '@material-ui/core/styles';
|
||||
import React from 'react';
|
||||
import { useSelector } from 'react-redux';
|
||||
|
||||
import { isDisplayNameVisible } from '../../../base/config/functions.any';
|
||||
import { getLocalParticipant } from '../../../base/participants';
|
||||
import { withPixelLineHeight } from '../../../base/styles/functions.web';
|
||||
import { getLargeVideoParticipant } from '../../../large-video/functions';
|
||||
@@ -44,8 +45,9 @@ const DominantSpeakerName = () => {
|
||||
|
||||
const isTileView = useSelector(isLayoutTileView);
|
||||
const toolboxVisible = useSelector(isToolboxVisible);
|
||||
const showDisplayName = useSelector(isDisplayNameVisible);
|
||||
|
||||
if (nameToDisplay && selectedId !== localId && !isTileView) {
|
||||
if (showDisplayName && nameToDisplay && selectedId !== localId && !isTileView) {
|
||||
return (
|
||||
<div
|
||||
className = { `${classes.badgeContainer}${toolboxVisible ? '' : ` ${classes.containerElevated}`}` }>
|
||||
|
||||
@@ -5,8 +5,8 @@ import { translate } from '../../base/i18n';
|
||||
import { IconShareDoc } from '../../base/icons';
|
||||
import { connect } from '../../base/redux';
|
||||
import { AbstractButton, type AbstractButtonProps } from '../../base/toolbox/components';
|
||||
import { navigate } from '../../conference/components/native/ConferenceNavigationContainerRef';
|
||||
import { screen } from '../../conference/components/native/routes';
|
||||
import { navigate } from '../../mobile/navigation/components/conference/ConferenceNavigationContainerRef';
|
||||
import { screen } from '../../mobile/navigation/routes';
|
||||
|
||||
|
||||
type Props = AbstractButtonProps;
|
||||
|
||||
@@ -10,9 +10,9 @@ import { IconArrowBack } from '../../../base/icons';
|
||||
import JitsiScreen from '../../../base/modal/components/JitsiScreen';
|
||||
import { LoadingIndicator } from '../../../base/react';
|
||||
import { connect } from '../../../base/redux';
|
||||
import { goBack } from '../../../conference/components/native/ConferenceNavigationContainerRef';
|
||||
import HeaderNavigationButton
|
||||
from '../../../conference/components/native/HeaderNavigationButton';
|
||||
from '../../../mobile/navigation/components/HeaderNavigationButton';
|
||||
import { goBack } from '../../../mobile/navigation/components/conference/ConferenceNavigationContainerRef';
|
||||
import { getSharedDocumentUrl } from '../../functions';
|
||||
|
||||
import styles, { INDICATOR_COLOR } from './styles';
|
||||
|
||||
@@ -88,7 +88,9 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
case CONFERENCE_JOINED: {
|
||||
const state = store.getState();
|
||||
const { defaultLocalDisplayName } = state['features/base/config'];
|
||||
const { room } = state['features/base/conference'];
|
||||
const { loadableAvatarUrl, name, id } = getLocalParticipant(state);
|
||||
const breakoutRoom = APP.conference.roomName.toString() !== room.toLowerCase();
|
||||
|
||||
// we use APP.conference.roomName as we do not update state['features/base/conference'].room when
|
||||
// moving between rooms in case of breakout rooms and it stays always with the name of the main room
|
||||
@@ -101,7 +103,8 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
name,
|
||||
defaultLocalDisplayName
|
||||
),
|
||||
avatarURL: loadableAvatarUrl
|
||||
avatarURL: loadableAvatarUrl,
|
||||
breakoutRoom
|
||||
}
|
||||
);
|
||||
break;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user