mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-05-22 21:17:48 +00:00
Compare commits
21 Commits
5441
...
new-update
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63754f01a5 | ||
|
|
dcf677bdf0 | ||
|
|
eaea2cdef0 | ||
|
|
bcad87e894 | ||
|
|
d500493649 | ||
|
|
8ad3ef0022 | ||
|
|
d0664d9ea0 | ||
|
|
45c40d7afc | ||
|
|
e33edfd2a5 | ||
|
|
96b2a07172 | ||
|
|
0e8c01af75 | ||
|
|
3049ad6dbf | ||
|
|
9a30ad87a7 | ||
|
|
11c05560c4 | ||
|
|
d92fa59c74 | ||
|
|
4eb1d16faa | ||
|
|
91adc70724 | ||
|
|
15b083c182 | ||
|
|
26fdaf7b8d | ||
|
|
64a9874d63 | ||
|
|
753cffc458 |
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@@ -10,8 +10,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '14.x'
|
||||
- run: npm i -g npm@7
|
||||
node-version: '12.x'
|
||||
- run: npm install
|
||||
- name: Check if the git repository is clean
|
||||
run: exit $( git status --porcelain --untracked-files=no | head -255 | wc -l )
|
||||
|
||||
10
Makefile
10
Makefile
@@ -14,12 +14,12 @@ STYLES_BUNDLE = css/all.bundle.css
|
||||
STYLES_DESTINATION = css/all.css
|
||||
STYLES_MAIN = css/main.scss
|
||||
WEBPACK = ./node_modules/.bin/webpack
|
||||
WEBPACK_DEV_SERVER = ./node_modules/.bin/webpack serve --mode development
|
||||
WEBPACK_DEV_SERVER = ./node_modules/.bin/webpack-dev-server
|
||||
|
||||
all: compile deploy clean
|
||||
|
||||
compile: compile-load-test
|
||||
$(WEBPACK)
|
||||
$(WEBPACK) -p
|
||||
|
||||
compile-load-test:
|
||||
${NPM} install --prefix resources/load-test && ${NPM} run build --prefix resources/load-test
|
||||
@@ -51,11 +51,9 @@ deploy-appbundle:
|
||||
$(OUTPUT_DIR)/analytics-ga.js \
|
||||
$(BUILD_DIR)/analytics-ga.min.js \
|
||||
$(BUILD_DIR)/analytics-ga.min.map \
|
||||
$(DEPLOY_DIR)
|
||||
cp \
|
||||
$(BUILD_DIR)/close3.min.js \
|
||||
$(BUILD_DIR)/close3.min.map \
|
||||
$(DEPLOY_DIR) || true
|
||||
$(DEPLOY_DIR)
|
||||
|
||||
deploy-lib-jitsi-meet:
|
||||
cp \
|
||||
@@ -102,7 +100,7 @@ deploy-local:
|
||||
|
||||
.NOTPARALLEL:
|
||||
dev: deploy-init deploy-css deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-libflac deploy-olm
|
||||
$(WEBPACK_DEV_SERVER)
|
||||
$(WEBPACK_DEV_SERVER) --detect-circular-deps
|
||||
|
||||
source-package:
|
||||
mkdir -p source_package/jitsi-meet/css && \
|
||||
|
||||
@@ -50,7 +50,7 @@ If you'd like to run your own Jitsi Meet installation head over to the [handbook
|
||||
We provide Debian packages and a comprehensive Docker setup to make deployments as simple as possible.
|
||||
Advanced users also have the possibility of building all the components from source.
|
||||
|
||||
You can check the latest releases [here](https://jitsi.github.io/handbook/docs/releases).
|
||||
You can check the latest releases [[here](https://jitsi.github.io/handbook/docs/releases).
|
||||
|
||||
## Jitsi as a Service
|
||||
|
||||
|
||||
@@ -26,5 +26,5 @@ android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
android.bundle.enableUncompressedNativeLibs=false
|
||||
|
||||
appVersion=21.4.0
|
||||
sdkVersion=3.10.0
|
||||
appVersion=21.4.1
|
||||
sdkVersion=3.10.2
|
||||
|
||||
@@ -48,7 +48,6 @@ dependencies {
|
||||
implementation 'com.jakewharton.timber:timber:4.7.1'
|
||||
implementation 'com.squareup.duktape:duktape-android:1.3.0'
|
||||
implementation 'com.google.code.gson:gson:2.8.6'
|
||||
implementation "androidx.startup:startup-runtime:1.1.0"
|
||||
|
||||
if (rootProject.ext.libreBuild) {
|
||||
implementation(project(':react-native-device-info')) {
|
||||
|
||||
@@ -57,14 +57,6 @@
|
||||
android:enabled="false"
|
||||
tools:replace="android:authorities">
|
||||
</provider>
|
||||
<provider
|
||||
android:name="androidx.startup.InitializationProvider"
|
||||
android:authorities="${applicationId}.androidx-startup"
|
||||
android:exported="false">
|
||||
<meta-data android:name="org.jitsi.meet.sdk.JitsiInitializer"
|
||||
android:value="androidx.startup" />
|
||||
</provider>
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Copyright @ 2021-present 8x8, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.startup.Initializer;
|
||||
|
||||
import com.facebook.soloader.SoLoader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class JitsiInitializer implements Initializer<Boolean> {
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Boolean create(@NonNull Context context) {
|
||||
SoLoader.init(context, /* native exopackage */ false);
|
||||
return true;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public List<Class<? extends Initializer<?>>> dependencies() {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
@@ -296,6 +296,7 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
config = in.readBundle();
|
||||
featureFlags = in.readBundle();
|
||||
userInfo = new JitsiMeetUserInfo(in.readBundle());
|
||||
byte tmpAudioMuted = in.readByte();
|
||||
}
|
||||
|
||||
Bundle asProps() {
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.List;
|
||||
|
||||
public class NotificationChannels {
|
||||
static final String ONGOING_CONFERENCE_CHANNEL_ID = "JitsiOngoingConferenceChannel";
|
||||
static final String ONGOING_CONFERNCE_CHANNEL_NAME = "Ongoing Conference Notifications";
|
||||
|
||||
public static List<String> allIds = new ArrayList<String>() {{ add(ONGOING_CONFERENCE_CHANNEL_ID); }};
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import static org.jitsi.meet.sdk.NotificationChannels.ONGOING_CONFERENCE_CHANNEL_ID;
|
||||
import static org.jitsi.meet.sdk.NotificationChannels.ONGOING_CONFERNCE_CHANNEL_NAME;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
@@ -65,7 +66,7 @@ class OngoingNotification {
|
||||
return;
|
||||
}
|
||||
|
||||
channel = new NotificationChannel(ONGOING_CONFERENCE_CHANNEL_ID, context.getString(R.string.ongoing_notification_action_unmute), NotificationManager.IMPORTANCE_DEFAULT);
|
||||
channel = new NotificationChannel(ONGOING_CONFERENCE_CHANNEL_ID, ONGOING_CONFERNCE_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
|
||||
channel.enableLights(false);
|
||||
channel.enableVibration(false);
|
||||
channel.setShowBadge(false);
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.facebook.react.devsupport.DevInternalSettings;
|
||||
import com.facebook.react.jscexecutor.JSCExecutorFactory;
|
||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import com.oney.WebRTCModule.RTCVideoViewManager;
|
||||
import com.oney.WebRTCModule.WebRTCModule;
|
||||
|
||||
@@ -173,6 +174,8 @@ class ReactInstanceManagerHolder {
|
||||
return;
|
||||
}
|
||||
|
||||
SoLoader.init(activity.getApplication(), /* native exopackage */ false);
|
||||
|
||||
List<ReactPackage> packages
|
||||
= new ArrayList<>(Arrays.asList(
|
||||
new com.calendarevents.CalendarEventsPackage(),
|
||||
|
||||
@@ -6,5 +6,4 @@
|
||||
<string name="ongoing_notification_action_hang_up">Hang up</string>
|
||||
<string name="ongoing_notification_action_mute">Mute</string>
|
||||
<string name="ongoing_notification_action_unmute">Unmute</string>
|
||||
<string name="ongoing_notification_channel_name">Ongoing Conference Notifications</string>
|
||||
</resources>
|
||||
|
||||
@@ -59,6 +59,7 @@ import {
|
||||
setAudioOutputDeviceId,
|
||||
updateDeviceList
|
||||
} from './react/features/base/devices';
|
||||
import { isIosMobileBrowser } from './react/features/base/environment/utils';
|
||||
import {
|
||||
browser,
|
||||
isFatalJitsiConnectionError,
|
||||
@@ -128,12 +129,11 @@ import {
|
||||
initPrejoin,
|
||||
isPrejoinPageEnabled,
|
||||
isPrejoinPageVisible,
|
||||
makePrecallTest,
|
||||
setJoiningInProgress
|
||||
makePrecallTest
|
||||
} from './react/features/prejoin';
|
||||
import { disableReceiver, stopReceiver } from './react/features/remote-control';
|
||||
import { setScreenAudioShareState, isScreenAudioShared } from './react/features/screen-share/';
|
||||
import { toggleScreenshotCaptureSummary } from './react/features/screenshot-capture';
|
||||
import { toggleScreenshotCaptureEffect } from './react/features/screenshot-capture';
|
||||
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';
|
||||
@@ -156,15 +156,6 @@ let connection;
|
||||
*/
|
||||
let _connectionPromise;
|
||||
|
||||
/**
|
||||
* We are storing the resolve function of a Promise that waits for the _connectionPromise to be created. This is needed
|
||||
* when the prejoin button was pressed before the conference object was initialized and the _connectionPromise has not
|
||||
* been initialized when we tried to execute prejoinStart. In this case in prejoinStart we create a new Promise, assign
|
||||
* the resolve function to this variable and wait for the promise to resolve before we continue. The
|
||||
* _onConnectionPromiseCreated will be called once the _connectionPromise is created.
|
||||
*/
|
||||
let _onConnectionPromiseCreated;
|
||||
|
||||
/**
|
||||
* This promise is used for chaining mutePresenterVideo calls in order to avoid calling GUM multiple times if it takes
|
||||
* a while to finish.
|
||||
@@ -803,10 +794,6 @@ export default {
|
||||
return c;
|
||||
});
|
||||
|
||||
if (_onConnectionPromiseCreated) {
|
||||
_onConnectionPromiseCreated();
|
||||
}
|
||||
|
||||
APP.store.dispatch(makePrecallTest(this._getConferenceOptions()));
|
||||
|
||||
const { tryCreateLocalTracks, errors } = this.createInitialLocalTracks(initialOptions);
|
||||
@@ -834,9 +821,9 @@ export default {
|
||||
this._initDeviceList(true);
|
||||
|
||||
if (initialOptions.startWithAudioMuted) {
|
||||
// Always add the track on Safari because of a known issue where audio playout doesn't happen
|
||||
// if the user joins audio and video muted, i.e., if there is no local media capture.
|
||||
if (browser.isWebKitBased()) {
|
||||
// Always add the audio track to the peer connection and then mute the track on mobile Safari
|
||||
// because of a known issue where audio playout doesn't happen if the user joins audio and video muted.
|
||||
if (isIosMobileBrowser()) {
|
||||
this.muteAudio(true, true);
|
||||
} else {
|
||||
localTracks = localTracks.filter(track => track.getType() !== MEDIA_TYPE.AUDIO);
|
||||
@@ -850,26 +837,12 @@ export default {
|
||||
* Joins conference after the tracks have been configured in the prejoin screen.
|
||||
*
|
||||
* @param {Object[]} tracks - An array with the configured tracks
|
||||
* @returns {void}
|
||||
* @returns {Promise}
|
||||
*/
|
||||
async prejoinStart(tracks) {
|
||||
if (!_connectionPromise) {
|
||||
// The conference object isn't initialized yet. Wait for the promise to initialise.
|
||||
await new Promise(resolve => {
|
||||
_onConnectionPromiseCreated = resolve;
|
||||
});
|
||||
_onConnectionPromiseCreated = undefined;
|
||||
}
|
||||
const con = await _connectionPromise;
|
||||
|
||||
let con;
|
||||
|
||||
try {
|
||||
con = await _connectionPromise;
|
||||
this.startConference(con, tracks);
|
||||
} catch (error) {
|
||||
logger.error(`An error occurred while trying to join a meeting from the prejoin screen: ${error}`);
|
||||
APP.store.dispatch(setJoiningInProgress(false));
|
||||
}
|
||||
return this.startConference(con, tracks);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1356,8 +1329,8 @@ export default {
|
||||
APP.conference.roomName,
|
||||
this._getConferenceOptions());
|
||||
|
||||
// Filter out the tracks that are muted (except on Safari).
|
||||
const tracks = browser.isWebKitBased() ? localTracks : localTracks.filter(track => !track.isMuted());
|
||||
// Filter out the tracks that are muted (except on mobile Safari).
|
||||
const tracks = isIosMobileBrowser() ? localTracks : localTracks.filter(track => !track.isMuted());
|
||||
|
||||
this._setLocalAudioVideoStreams(tracks);
|
||||
this._room = room; // FIXME do not use this
|
||||
@@ -1530,23 +1503,22 @@ export default {
|
||||
*
|
||||
* @param {boolean} didHaveVideo indicates if there was a camera video being
|
||||
* used, before switching to screen sharing.
|
||||
* @param {boolean} ignoreDidHaveVideo indicates if the camera video should be
|
||||
* ignored when switching screen sharing off.
|
||||
* @param {boolean} wasVideoMuted indicates if the video was muted, before
|
||||
* switching to screen sharing.
|
||||
* @return {Promise} resolved after the screen sharing is turned off, or
|
||||
* rejected with some error (no idea what kind of error, possible GUM error)
|
||||
* in case it fails.
|
||||
* @private
|
||||
*/
|
||||
async _turnScreenSharingOff(didHaveVideo, ignoreDidHaveVideo) {
|
||||
async _turnScreenSharingOff(didHaveVideo) {
|
||||
this._untoggleScreenSharing = null;
|
||||
this.videoSwitchInProgress = true;
|
||||
|
||||
APP.store.dispatch(stopReceiver());
|
||||
|
||||
this._stopProxyConnection();
|
||||
|
||||
if (config.enableScreenshotCapture) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(false));
|
||||
APP.store.dispatch(toggleScreenshotCaptureEffect(false));
|
||||
}
|
||||
|
||||
// It can happen that presenter GUM is in progress while screensharing is being turned off. Here it needs to
|
||||
@@ -1582,7 +1554,7 @@ export default {
|
||||
|
||||
APP.store.dispatch(setScreenAudioShareState(false));
|
||||
|
||||
if (didHaveVideo && !ignoreDidHaveVideo) {
|
||||
if (didHaveVideo) {
|
||||
promise = promise.then(() => createLocalTracksF({ devices: [ 'video' ] }))
|
||||
.then(([ stream ]) => {
|
||||
logger.debug(`_turnScreenSharingOff using ${stream} for useVideoStream`);
|
||||
@@ -1633,10 +1605,9 @@ export default {
|
||||
* @param {Array<string>} [options.desktopSharingSources] - Array with the
|
||||
* sources that have to be displayed in the desktop picker window ('screen',
|
||||
* 'window', etc.).
|
||||
* @param {boolean} ignoreDidHaveVideo - if true ignore if video was on when sharing started.
|
||||
* @return {Promise.<T>}
|
||||
*/
|
||||
async toggleScreenSharing(toggle = !this._untoggleScreenSharing, options = {}, ignoreDidHaveVideo) {
|
||||
async toggleScreenSharing(toggle = !this._untoggleScreenSharing, options = {}) {
|
||||
logger.debug(`toggleScreenSharing: ${toggle}`);
|
||||
if (this.videoSwitchInProgress) {
|
||||
return Promise.reject('Switch in progress.');
|
||||
@@ -1662,7 +1633,7 @@ export default {
|
||||
}
|
||||
|
||||
return this._untoggleScreenSharing
|
||||
? this._untoggleScreenSharing(ignoreDidHaveVideo)
|
||||
? this._untoggleScreenSharing()
|
||||
: Promise.resolve();
|
||||
},
|
||||
|
||||
@@ -1924,7 +1895,7 @@ export default {
|
||||
.then(() => {
|
||||
this.videoSwitchInProgress = false;
|
||||
if (config.enableScreenshotCapture) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(true));
|
||||
APP.store.dispatch(toggleScreenshotCaptureEffect(true));
|
||||
}
|
||||
sendAnalytics(createScreenSharingEvent('started'));
|
||||
logger.log('Screen sharing started');
|
||||
@@ -2294,9 +2265,9 @@ export default {
|
||||
|
||||
// Remove the tracks from the peerconnection.
|
||||
for (const track of localTracks) {
|
||||
// Always add the track on Safari because of a known issue where audio playout doesn't happen
|
||||
// if the user joins audio and video muted, i.e., if there is no local media capture.
|
||||
if (audioMuted && track.jitsiTrack?.getType() === MEDIA_TYPE.AUDIO && !browser.isWebKitBased()) {
|
||||
// Always add the track on mobile Safari because of a known issue where audio playout doesn't happen
|
||||
// if the user joins audio and video muted.
|
||||
if (audioMuted && track.jitsiTrack?.getType() === MEDIA_TYPE.AUDIO && !isIosMobileBrowser()) {
|
||||
promises.push(this.useAudioStream(null));
|
||||
}
|
||||
if (videoMuted && track.jitsiTrack?.getType() === MEDIA_TYPE.VIDEO) {
|
||||
@@ -2505,8 +2476,8 @@ export default {
|
||||
});
|
||||
|
||||
APP.UI.addListener(
|
||||
UIEvents.TOGGLE_SCREENSHARING, ({ enabled, audioOnly, ignoreDidHaveVideo }) => {
|
||||
this.toggleScreenSharing(enabled, { audioOnly }, ignoreDidHaveVideo);
|
||||
UIEvents.TOGGLE_SCREENSHARING, ({ enabled, audioOnly }) => {
|
||||
this.toggleScreenSharing(enabled, { audioOnly });
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
27
config.js
27
config.js
@@ -476,10 +476,6 @@ var config = {
|
||||
// When 'true', it shows an intermediate page before joining, where the user can configure their devices.
|
||||
// prejoinPageEnabled: false,
|
||||
|
||||
// When 'true', the user cannot edit the display name.
|
||||
// (Mainly useful when used in conjuction with the JWT so the JWT name becomes read only.)
|
||||
// readOnlyName: false,
|
||||
|
||||
// If etherpad integration is enabled, setting this to true will
|
||||
// automatically open the etherpad when a participant joins. This
|
||||
// does not affect the mobile app since opening an etherpad
|
||||
@@ -549,19 +545,6 @@ var config = {
|
||||
// '__end'
|
||||
// ],
|
||||
|
||||
// Holds values related to toolbar visibility control.
|
||||
// toolbarConfig: {
|
||||
// // Moved from interfaceConfig.INITIAL_TOOLBAR_TIMEOUT
|
||||
// // The initial numer of miliseconds for the toolbar buttons to be visible on screen.
|
||||
// initialTimeout: 20000,
|
||||
// // Moved from interfaceConfig.TOOLBAR_TIMEOUT
|
||||
// // Number of miliseconds for the toolbar buttons to be visible on screen.
|
||||
// timeout: 4000,
|
||||
// // Moved from interfaceConfig.TOOLBAR_ALWAYS_VISIBLE
|
||||
// // Whether toolbar should be always visible or should hide after x miliseconds.
|
||||
// alwaysVisible: false
|
||||
// },
|
||||
|
||||
// Toolbar buttons which have their click event exposed through the API on
|
||||
// `toolbarButtonClicked` event instead of executing the normal click routine.
|
||||
// buttonsWithNotifyClick: [
|
||||
@@ -776,7 +759,6 @@ var config = {
|
||||
// - 'PARTICIPANT_JOINED_SOUND'
|
||||
// - 'PARTICIPANT_LEFT_SOUND'
|
||||
// - 'RAISE_HAND_SOUND'
|
||||
// - 'REACTION_SOUND'
|
||||
// - 'RECORDING_OFF_SOUND'
|
||||
// - 'RECORDING_ON_SOUND'
|
||||
// - 'TALK_WHILE_MUTED_SOUND'
|
||||
@@ -914,10 +896,6 @@ var config = {
|
||||
*/
|
||||
// dynamicBrandingUrl: '',
|
||||
|
||||
// When true the user cannot add more images to be used as virtual background.
|
||||
// Only the default ones from will be available.
|
||||
// disableAddingBackgroundImages: false,
|
||||
|
||||
// Sets the background transparency level. '0' is fully transparent, '1' is opaque.
|
||||
// backgroundAlpha: 1,
|
||||
|
||||
@@ -973,6 +951,11 @@ var config = {
|
||||
// will open an etherpad document.
|
||||
// etherpad_base: 'https://your-etherpad-installati.on/p/',
|
||||
|
||||
// If etherpad_base is set, and useRoomAsSharedDocumentName is set to true,
|
||||
// open a pad with the name of the room (lowercased) instead of a pad with a
|
||||
// random UUID.
|
||||
// useRoomAsSharedDocumentName: true,
|
||||
|
||||
// List of undocumented settings used in jitsi-meet
|
||||
/**
|
||||
_immediateReloadThreshold
|
||||
|
||||
@@ -213,7 +213,6 @@
|
||||
}
|
||||
|
||||
#usermsg {
|
||||
-ms-overflow-style: none;
|
||||
border: 0px none;
|
||||
border-radius:0;
|
||||
box-shadow: none;
|
||||
@@ -222,13 +221,8 @@
|
||||
padding: 10px;
|
||||
overflow-y: auto;
|
||||
resize: none;
|
||||
scrollbar-width: none;
|
||||
width: 100%;
|
||||
word-break: break-word;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#usermsg:hover {
|
||||
|
||||
@@ -249,7 +249,6 @@ a.poll-detail-link, a.poll-change-vote-link {
|
||||
border-width: thin;
|
||||
border-style: solid;
|
||||
border-color: #616161;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.poll-create-label {
|
||||
@@ -406,7 +405,6 @@ a.poll-detail-link, a.poll-change-vote-link {
|
||||
&:disabled {
|
||||
background-color: #00225A;
|
||||
color: #858585;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
& > *:not(:last-child) {
|
||||
|
||||
@@ -3,45 +3,48 @@
|
||||
* to allow mouse movement from the popover trigger to the popover itself
|
||||
* without triggering a mouseleave event.
|
||||
*/
|
||||
.popover-mousemove-padding-bottom {
|
||||
bottom: -15px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
%vertical-popover-padding {
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 20px;
|
||||
padding: 20px 0;
|
||||
top: -20px;
|
||||
}
|
||||
|
||||
%horizontal-popover-padding {
|
||||
height: 25px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
padding: 0 35px;
|
||||
left: -35px;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
.popover-mousemove-padding-left {
|
||||
@extend %vertical-popover-padding;
|
||||
left: -35px;
|
||||
left: -20px;
|
||||
}
|
||||
|
||||
.popover-mousemove-padding-right {
|
||||
@extend %vertical-popover-padding;
|
||||
right: -35px;
|
||||
right: -20px;
|
||||
}
|
||||
|
||||
.popover-mousemove-padding-bottom {
|
||||
@extend %horizontal-popover-padding;
|
||||
bottom: -40px;
|
||||
}
|
||||
|
||||
.popover-mousemove-padding-top {
|
||||
@extend %horizontal-popover-padding;
|
||||
top: -40px;
|
||||
/**
|
||||
* An invisible element is added to the top of the popover to ensure the mouse
|
||||
* stays over the popover when the popover's height is shrunk, which would then
|
||||
* normally leave the mouse outside of the popover itself and cause a mouseleave
|
||||
* event.
|
||||
*/
|
||||
.popover-mouse-padding-top {
|
||||
height: 30px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -25px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.popover {
|
||||
background-color: $popoverBg;
|
||||
border-radius: 3px;
|
||||
margin: -16px -24px;
|
||||
padding: 16px 24px;
|
||||
z-index: $popoverZ;
|
||||
|
||||
@@ -75,7 +75,3 @@
|
||||
top: 0;
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
.shift-right .details-container {
|
||||
margin-left: calc(#{$sidebarWidth} / 2);
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
right: 0;
|
||||
transition: bottom .3s ease-in;
|
||||
width: 100%;
|
||||
pointer-events: none;
|
||||
|
||||
|
||||
&.visible {
|
||||
|
||||
@@ -61,7 +61,7 @@ $videoThumbnailSelected: #165ECC;
|
||||
$participantNameColor: #fff;
|
||||
$thumbnailPictogramColor: #fff;
|
||||
$dominantSpeakerBg: #165ecc;
|
||||
$raiseHandBg: #F8AE1A;
|
||||
$raiseHandBg: #D6D61E;
|
||||
$audioLevelBg: #44A5FF;
|
||||
$connectionIndicatorBg: #165ecc;
|
||||
$audioLevelShadow: rgba(9, 36, 77, 0.9);
|
||||
|
||||
@@ -390,7 +390,7 @@
|
||||
}
|
||||
|
||||
.raisehandindicator {
|
||||
background: $raiseHandBg !important;
|
||||
background: $raiseHandBg;
|
||||
}
|
||||
|
||||
.connection-indicator {
|
||||
|
||||
@@ -63,8 +63,6 @@
|
||||
}
|
||||
|
||||
.remote-videos {
|
||||
overscroll-behavior: contain;
|
||||
|
||||
& > div {
|
||||
transition: opacity 1s;
|
||||
position: absolute;
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overscroll-behavior: contain;
|
||||
}
|
||||
|
||||
.filmstrip__videos .videocontainer {
|
||||
|
||||
@@ -114,7 +114,6 @@
|
||||
.remote-videos {
|
||||
display: flex;
|
||||
transition: height .3s ease-in;
|
||||
overscroll-behavior: contain;
|
||||
|
||||
& > div {
|
||||
position: absolute;
|
||||
|
||||
@@ -226,6 +226,8 @@
|
||||
.avatar {
|
||||
text {
|
||||
fill: white;
|
||||
font-size: 26px;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
8
doc/example-config-files/config.js.example
Executable file
8
doc/example-config-files/config.js.example
Executable file
@@ -0,0 +1,8 @@
|
||||
var config = {
|
||||
hosts: {
|
||||
domain: 'jitsi.example.com',
|
||||
muc: 'conference.jitsi.example.com', // FIXME: use XEP-0030
|
||||
bridge: 'jitsi-videobridge.jitsi.example.com' // FIXME: use XEP-0030
|
||||
},
|
||||
bosh: '//jitsi.example.com/http-bind' // FIXME: use xep-0156 for that
|
||||
};
|
||||
39
doc/example-config-files/jitsi.example.com.example
Executable file
39
doc/example-config-files/jitsi.example.com.example
Executable file
@@ -0,0 +1,39 @@
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
server_name jitsi.example.com;
|
||||
# set the root
|
||||
root /srv/jitsi.example.com;
|
||||
index index.html;
|
||||
|
||||
location ~ ^/([a-zA-Z0-9=\?]+)$ {
|
||||
rewrite ^/(.*)$ / break;
|
||||
}
|
||||
|
||||
location / {
|
||||
ssi on;
|
||||
}
|
||||
|
||||
gzip on;
|
||||
gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm;
|
||||
gzip_vary on;
|
||||
gzip_proxied no-cache no-store private expired auth;
|
||||
gzip_min_length 512;
|
||||
|
||||
# BOSH
|
||||
location /http-bind {
|
||||
proxy_pass http://localhost:5280/http-bind;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header Host $http_host;
|
||||
}
|
||||
|
||||
# xmpp websockets
|
||||
location /xmpp-websocket {
|
||||
proxy_pass http://localhost:5280/xmpp-websocket;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
tcp_nodelay on;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
var subdomain = "<!--# echo var="subdomain" default="" -->";
|
||||
if (subdomain) {
|
||||
subdomain = subdomain.substr(0,subdomain.length-1).split('.').join('_').toLowerCase() + '.';
|
||||
}
|
||||
|
||||
var config = {
|
||||
hosts: {
|
||||
domain: 'jitsi.example.com',
|
||||
muc: 'conference.'+subdomain+'jitsi.example.com', // FIXME: use XEP-0030
|
||||
focus: 'focus.jitsi.example.com',
|
||||
},
|
||||
bosh: '//jitsi.example.com/http-bind', // FIXME: use xep-0156 for that
|
||||
websocket: 'wss://jitsi.example.com/xmpp-websocket'
|
||||
};
|
||||
@@ -0,0 +1,76 @@
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
server_name jitsi.example.com;
|
||||
# set the root
|
||||
root /srv/jitsi.example.com;
|
||||
# ssi on with javascript for multidomain variables in config.js
|
||||
ssi on;
|
||||
ssi_types application/x-javascript application/javascript;
|
||||
index index.html;
|
||||
set $prefix "";
|
||||
|
||||
# BOSH
|
||||
location /http-bind {
|
||||
proxy_pass http://localhost:5280/http-bind;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header Host $http_host;
|
||||
}
|
||||
|
||||
# xmpp websockets
|
||||
location /xmpp-websocket {
|
||||
proxy_pass http://localhost:5280/xmpp-websocket;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
tcp_nodelay on;
|
||||
}
|
||||
|
||||
gzip on;
|
||||
gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm;
|
||||
gzip_vary on;
|
||||
gzip_proxied no-cache no-store private expired auth;
|
||||
gzip_min_length 512;
|
||||
|
||||
location ~ ^/([^/?&:'"]+)$ {
|
||||
try_files $uri @root_path;
|
||||
}
|
||||
|
||||
location @root_path {
|
||||
rewrite ^/(.*)$ / break;
|
||||
}
|
||||
|
||||
location ~ ^/([^/?&:'"]+)/config.js$
|
||||
{
|
||||
set $subdomain "$1.";
|
||||
set $subdir "$1/";
|
||||
|
||||
alias /etc/jitsi/meet/{{jitsi_meet_domain_name}}-config.js;
|
||||
}
|
||||
|
||||
# Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
|
||||
location ~ ^/([^/?&:'"]+)/(.*)$ {
|
||||
set $subdomain "$1.";
|
||||
set $subdir "$1/";
|
||||
rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
|
||||
}
|
||||
|
||||
# BOSH for subdomains
|
||||
location ~ ^/([^/?&:'"]+)/http-bind {
|
||||
set $subdomain "$1.";
|
||||
set $subdir "$1/";
|
||||
set $prefix "$1";
|
||||
|
||||
rewrite ^/(.*)$ /http-bind;
|
||||
}
|
||||
|
||||
# websockets for subdomains
|
||||
location ~ ^/([^/?&:'"]+)/xmpp-websocket {
|
||||
set $subdomain "$1.";
|
||||
set $subdir "$1/";
|
||||
set $prefix "$1";
|
||||
|
||||
rewrite ^/(.*)$ /xmpp-websocket;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
-- Prosody XMPP Server Configuration
|
||||
--
|
||||
-- Information on configuring Prosody can be found on our
|
||||
-- website at http://prosody.im/doc/configure
|
||||
--
|
||||
-- Tip: You can check that the syntax of this file is correct
|
||||
-- when you have finished by running: prosodyctl check config
|
||||
-- If there are any errors, it will let you know what and where
|
||||
-- they are, otherwise it will keep quiet.
|
||||
--
|
||||
-- Good luck, and happy Jabbering!
|
||||
|
||||
|
||||
---------- Server-wide settings ----------
|
||||
-- Settings in this section apply to the whole server and are the default settings
|
||||
-- for any virtual hosts
|
||||
|
||||
-- This is a (by default, empty) list of accounts that are admins
|
||||
-- for the server. Note that you must create the accounts separately
|
||||
-- (see http://prosody.im/doc/creating_accounts for info)
|
||||
-- Example: admins = { "user1@example.com", "user2@example.net" }
|
||||
admins = { }
|
||||
daemonize = true
|
||||
cross_domain_bosh = true;
|
||||
component_ports = { 5347 }
|
||||
--component_interface = "192.168.0.10"
|
||||
|
||||
-- Enable use of libevent for better performance under high load
|
||||
-- For more information see: http://prosody.im/doc/libevent
|
||||
--use_libevent = true
|
||||
|
||||
-- This is the list of modules Prosody will load on startup.
|
||||
-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.
|
||||
-- Documentation on modules can be found at: http://prosody.im/doc/modules
|
||||
modules_enabled = {
|
||||
|
||||
-- Generally required
|
||||
"roster"; -- Allow users to have a roster. Recommended ;)
|
||||
"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
|
||||
"tls"; -- Add support for secure TLS on c2s/s2s connections
|
||||
"dialback"; -- s2s dialback support
|
||||
"disco"; -- Service discovery
|
||||
"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
|
||||
|
||||
-- Not essential, but recommended
|
||||
"private"; -- Private XML storage (for room bookmarks, etc.)
|
||||
"vcard"; -- Allow users to set vCards
|
||||
|
||||
-- These are commented by default as they have a performance impact
|
||||
--"privacy"; -- Support privacy lists
|
||||
"compression"; -- Stream compression (requires the lua-zlib package installed)
|
||||
|
||||
-- Nice to have
|
||||
"version"; -- Replies to server version requests
|
||||
"uptime"; -- Report how long server has been running
|
||||
"time"; -- Let others know the time here on this server
|
||||
"ping"; -- Replies to XMPP pings with pongs
|
||||
"pep"; -- Enables users to publish their mood, activity, playing music and more
|
||||
"register"; -- Allow users to register on this server using a client and change passwords
|
||||
|
||||
-- Admin interfaces
|
||||
"admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
|
||||
--"admin_telnet"; -- Opens telnet console interface on localhost port 5582
|
||||
|
||||
-- HTTP modules
|
||||
"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
|
||||
--"http_files"; -- Serve static files from a directory over HTTP
|
||||
|
||||
-- Other specific functionality
|
||||
--"groups"; -- Shared roster support
|
||||
--"announce"; -- Send announcement to all online users
|
||||
--"welcome"; -- Welcome users who register accounts
|
||||
--"watchregistrations"; -- Alert admins of registrations
|
||||
--"motd"; -- Send a message to users when they log in
|
||||
--"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
|
||||
|
||||
-- jitsi
|
||||
"smacks";
|
||||
"carbons";
|
||||
"mam";
|
||||
"lastactivity";
|
||||
"offline";
|
||||
"pubsub";
|
||||
"adhoc";
|
||||
"websocket";
|
||||
"http_altconnect";
|
||||
}
|
||||
|
||||
-- domain mapper options, must at least have domain base set to use the mapper
|
||||
muc_mapper_domain_base = "jitsi.example.com";
|
||||
|
||||
-- These modules are auto-loaded, but should you want
|
||||
-- to disable them then uncomment them here:
|
||||
modules_disabled = {
|
||||
--"offline"; -- Store offline messages
|
||||
--"c2s"; -- Handle client connections
|
||||
--"s2s"; -- Handle server-to-server connections
|
||||
}
|
||||
|
||||
-- Disable account creation by default, for security
|
||||
-- For more information see http://prosody.im/doc/creating_accounts
|
||||
allow_registration = false
|
||||
|
||||
-- These are the SSL/TLS-related settings. If you don't want
|
||||
-- to use SSL/TLS, you may comment or remove this
|
||||
ssl = {
|
||||
key = "/etc/prosody/certs/localhost.key";
|
||||
certificate = "/etc/prosody/certs/localhost.crt";
|
||||
}
|
||||
|
||||
-- Force clients to use encrypted connections? This option will
|
||||
-- prevent clients from authenticating unless they are using encryption.
|
||||
|
||||
--c2s_require_encryption = true
|
||||
|
||||
-- Force certificate authentication for server-to-server connections?
|
||||
-- This provides ideal security, but requires servers you communicate
|
||||
-- with to support encryption AND present valid, trusted certificates.
|
||||
-- NOTE: Your version of LuaSec must support certificate verification!
|
||||
-- For more information see http://prosody.im/doc/s2s#security
|
||||
|
||||
--s2s_secure_auth = false
|
||||
|
||||
-- Many servers don't support encryption or have invalid or self-signed
|
||||
-- certificates. You can list domains here that will not be required to
|
||||
-- authenticate using certificates. They will be authenticated using DNS.
|
||||
|
||||
--s2s_insecure_domains = { "gmail.com" }
|
||||
|
||||
-- Even if you leave s2s_secure_auth disabled, you can still require valid
|
||||
-- certificates for some domains by specifying a list here.
|
||||
|
||||
--s2s_secure_domains = { "jabber.org" }
|
||||
|
||||
-- Required for init scripts and prosodyctl
|
||||
pidfile = "/var/run/prosody/prosody.pid"
|
||||
|
||||
-- Select the authentication backend to use. The 'internal' providers
|
||||
-- use Prosody's configured data storage to store the authentication data.
|
||||
-- To allow Prosody to offer secure authentication mechanisms to clients, the
|
||||
-- default provider stores passwords in plaintext. If you do not trust your
|
||||
-- server please see http://prosody.im/doc/modules/mod_auth_internal_hashed
|
||||
-- for information about using the hashed backend.
|
||||
|
||||
authentication = "internal_hashed"
|
||||
|
||||
-- Select the storage backend to use. By default Prosody uses flat files
|
||||
-- in its configured data directory, but it also supports more backends
|
||||
-- through modules. An "sql" backend is included by default, but requires
|
||||
-- additional dependencies. See http://prosody.im/doc/storage for more info.
|
||||
|
||||
--storage = "sql" -- Default is "internal"
|
||||
|
||||
-- For the "sql" backend, you can uncomment *one* of the below to configure:
|
||||
--sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename.
|
||||
--sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }
|
||||
--sql = { driver = "PostgreSQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }
|
||||
|
||||
-- Logging configuration
|
||||
-- For advanced logging see http://prosody.im/doc/logging
|
||||
log = {
|
||||
info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging
|
||||
error = "/var/log/prosody/prosody.err";
|
||||
"*syslog";
|
||||
}
|
||||
|
||||
----------- Virtual hosts -----------
|
||||
-- You need to add a VirtualHost entry for each domain you wish Prosody to serve.
|
||||
-- Settings under each VirtualHost entry apply *only* to that host.
|
||||
|
||||
--VirtualHost "localhost"
|
||||
|
||||
VirtualHost "jitsi.example.com"
|
||||
-- enabled = false -- Remove this line to enable this host
|
||||
authentication = "anonymous"
|
||||
-- Assign this host a certificate for TLS, otherwise it would use the one
|
||||
-- set in the global section (if any).
|
||||
-- Note that old-style SSL on port 5223 only supports one certificate, and will always
|
||||
-- use the global one.
|
||||
ssl = {
|
||||
key = "/var/lib/prosody/jitsi.example.com.key";
|
||||
certificate = "/var/lib/prosody/jitsi.example.com.crt";
|
||||
}
|
||||
|
||||
c2s_require_encryption = false
|
||||
|
||||
VirtualHost "auth.jitsi.example.com"
|
||||
ssl = {
|
||||
key = "/var/lib/prosody/auth.jitsi.example.com.key";
|
||||
certificate = "/var/lib/prosody/auth.jitsi.example.com.crt";
|
||||
}
|
||||
authentication = "internal_hashed"
|
||||
|
||||
------ Components ------
|
||||
-- You can specify components to add hosts that provide special services,
|
||||
-- like multi-user conferences, and transports.
|
||||
-- For more information on components, see http://prosody.im/doc/components
|
||||
|
||||
---Set up a MUC (multi-user chat) room server on conference.example.com:
|
||||
--Component "conference.example.com" "muc"
|
||||
|
||||
-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
|
||||
--Component "proxy.example.com" "proxy65"
|
||||
|
||||
---Set up an external component (default component port is 5347)
|
||||
--
|
||||
-- External components allow adding various services, such as gateways/
|
||||
-- transports to other networks like ICQ, MSN and Yahoo. For more info
|
||||
-- see: http://prosody.im/doc/components#adding_an_external_component
|
||||
--
|
||||
--Component "gateway.example.com"
|
||||
-- component_secret = "password"
|
||||
|
||||
Component "conference.jitsi.example.com" "muc"
|
||||
modules_enabled = { "muc_domain_mapper" }
|
||||
|
||||
Component "jitsi-videobridge.jitsi.example.com"
|
||||
component_secret = "IfGaish6"
|
||||
54
doc/example-config-files/nginx.conf.example
Executable file
54
doc/example-config-files/nginx.conf.example
Executable file
@@ -0,0 +1,54 @@
|
||||
user www-data;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /var/log/nginx/error.log;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
# multi_accept on;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
|
||||
sendfile on;
|
||||
#tcp_nopush on;
|
||||
|
||||
#keepalive_timeout 0;
|
||||
keepalive_timeout 65;
|
||||
tcp_nodelay on;
|
||||
|
||||
tcp_nopush on;
|
||||
types_hash_max_size 2048;
|
||||
server_names_hash_bucket_size 64;
|
||||
|
||||
gzip on;
|
||||
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
|
||||
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
|
||||
# mail {
|
||||
# # See sample authentication script at:
|
||||
# # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript
|
||||
#
|
||||
# # auth_http localhost/auth.php;
|
||||
# # pop3_capabilities "TOP" "USER";
|
||||
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
|
||||
#
|
||||
# server {
|
||||
# listen localhost:110;
|
||||
# protocol pop3;
|
||||
# proxy on;
|
||||
# }
|
||||
#
|
||||
# server {
|
||||
# listen localhost:143;
|
||||
# protocol imap;
|
||||
# proxy on;
|
||||
# }
|
||||
# }
|
||||
214
doc/example-config-files/prosody.cfg.lua.example
Executable file
214
doc/example-config-files/prosody.cfg.lua.example
Executable file
@@ -0,0 +1,214 @@
|
||||
-- Prosody XMPP Server Configuration
|
||||
--
|
||||
-- Information on configuring Prosody can be found on our
|
||||
-- website at http://prosody.im/doc/configure
|
||||
--
|
||||
-- Tip: You can check that the syntax of this file is correct
|
||||
-- when you have finished by running: prosodyctl check config
|
||||
-- If there are any errors, it will let you know what and where
|
||||
-- they are, otherwise it will keep quiet.
|
||||
--
|
||||
-- Good luck, and happy Jabbering!
|
||||
|
||||
|
||||
---------- Server-wide settings ----------
|
||||
-- Settings in this section apply to the whole server and are the default settings
|
||||
-- for any virtual hosts
|
||||
|
||||
-- This is a (by default, empty) list of accounts that are admins
|
||||
-- for the server. Note that you must create the accounts separately
|
||||
-- (see http://prosody.im/doc/creating_accounts for info)
|
||||
-- Example: admins = { "user1@example.com", "user2@example.net" }
|
||||
admins = { }
|
||||
daemonize = true
|
||||
cross_domain_bosh = true;
|
||||
component_ports = { 5347 }
|
||||
--component_interface = "192.168.0.10"
|
||||
|
||||
-- Enable use of libevent for better performance under high load
|
||||
-- For more information see: http://prosody.im/doc/libevent
|
||||
--use_libevent = true
|
||||
|
||||
-- This is the list of modules Prosody will load on startup.
|
||||
-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.
|
||||
-- Documentation on modules can be found at: http://prosody.im/doc/modules
|
||||
modules_enabled = {
|
||||
|
||||
-- Generally required
|
||||
"roster"; -- Allow users to have a roster. Recommended ;)
|
||||
"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
|
||||
"tls"; -- Add support for secure TLS on c2s/s2s connections
|
||||
"dialback"; -- s2s dialback support
|
||||
"disco"; -- Service discovery
|
||||
"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
|
||||
|
||||
-- Not essential, but recommended
|
||||
"private"; -- Private XML storage (for room bookmarks, etc.)
|
||||
"vcard"; -- Allow users to set vCards
|
||||
|
||||
-- These are commented by default as they have a performance impact
|
||||
--"privacy"; -- Support privacy lists
|
||||
"compression"; -- Stream compression (requires the lua-zlib package installed)
|
||||
|
||||
-- Nice to have
|
||||
"version"; -- Replies to server version requests
|
||||
"uptime"; -- Report how long server has been running
|
||||
"time"; -- Let others know the time here on this server
|
||||
"ping"; -- Replies to XMPP pings with pongs
|
||||
"pep"; -- Enables users to publish their mood, activity, playing music and more
|
||||
"register"; -- Allow users to register on this server using a client and change passwords
|
||||
|
||||
-- Admin interfaces
|
||||
"admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
|
||||
--"admin_telnet"; -- Opens telnet console interface on localhost port 5582
|
||||
|
||||
-- HTTP modules
|
||||
"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
|
||||
--"http_files"; -- Serve static files from a directory over HTTP
|
||||
|
||||
-- Other specific functionality
|
||||
--"groups"; -- Shared roster support
|
||||
--"announce"; -- Send announcement to all online users
|
||||
--"welcome"; -- Welcome users who register accounts
|
||||
--"watchregistrations"; -- Alert admins of registrations
|
||||
--"motd"; -- Send a message to users when they log in
|
||||
--"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
|
||||
|
||||
-- jitsi
|
||||
"smacks";
|
||||
"carbons";
|
||||
"mam";
|
||||
"lastactivity";
|
||||
"offline";
|
||||
"pubsub";
|
||||
"adhoc";
|
||||
"websocket";
|
||||
"http_altconnect";
|
||||
}
|
||||
|
||||
-- These modules are auto-loaded, but should you want
|
||||
-- to disable them then uncomment them here:
|
||||
modules_disabled = {
|
||||
--"offline"; -- Store offline messages
|
||||
--"c2s"; -- Handle client connections
|
||||
--"s2s"; -- Handle server-to-server connections
|
||||
}
|
||||
|
||||
-- Disable account creation by default, for security
|
||||
-- For more information see http://prosody.im/doc/creating_accounts
|
||||
allow_registration = false
|
||||
|
||||
-- These are the SSL/TLS-related settings. If you don't want
|
||||
-- to use SSL/TLS, you may comment or remove this
|
||||
ssl = {
|
||||
key = "/etc/prosody/certs/localhost.key";
|
||||
certificate = "/etc/prosody/certs/localhost.crt";
|
||||
}
|
||||
|
||||
-- Force clients to use encrypted connections? This option will
|
||||
-- prevent clients from authenticating unless they are using encryption.
|
||||
|
||||
--c2s_require_encryption = true
|
||||
|
||||
-- Force certificate authentication for server-to-server connections?
|
||||
-- This provides ideal security, but requires servers you communicate
|
||||
-- with to support encryption AND present valid, trusted certificates.
|
||||
-- NOTE: Your version of LuaSec must support certificate verification!
|
||||
-- For more information see http://prosody.im/doc/s2s#security
|
||||
|
||||
--s2s_secure_auth = false
|
||||
|
||||
-- Many servers don't support encryption or have invalid or self-signed
|
||||
-- certificates. You can list domains here that will not be required to
|
||||
-- authenticate using certificates. They will be authenticated using DNS.
|
||||
|
||||
--s2s_insecure_domains = { "gmail.com" }
|
||||
|
||||
-- Even if you leave s2s_secure_auth disabled, you can still require valid
|
||||
-- certificates for some domains by specifying a list here.
|
||||
|
||||
--s2s_secure_domains = { "jabber.org" }
|
||||
|
||||
-- Required for init scripts and prosodyctl
|
||||
pidfile = "/var/run/prosody/prosody.pid"
|
||||
|
||||
-- Select the authentication backend to use. The 'internal' providers
|
||||
-- use Prosody's configured data storage to store the authentication data.
|
||||
-- To allow Prosody to offer secure authentication mechanisms to clients, the
|
||||
-- default provider stores passwords in plaintext. If you do not trust your
|
||||
-- server please see http://prosody.im/doc/modules/mod_auth_internal_hashed
|
||||
-- for information about using the hashed backend.
|
||||
|
||||
authentication = "internal_hashed"
|
||||
|
||||
-- Select the storage backend to use. By default Prosody uses flat files
|
||||
-- in its configured data directory, but it also supports more backends
|
||||
-- through modules. An "sql" backend is included by default, but requires
|
||||
-- additional dependencies. See http://prosody.im/doc/storage for more info.
|
||||
|
||||
--storage = "sql" -- Default is "internal"
|
||||
|
||||
-- For the "sql" backend, you can uncomment *one* of the below to configure:
|
||||
--sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename.
|
||||
--sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }
|
||||
--sql = { driver = "PostgreSQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" }
|
||||
|
||||
-- Logging configuration
|
||||
-- For advanced logging see http://prosody.im/doc/logging
|
||||
log = {
|
||||
info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging
|
||||
error = "/var/log/prosody/prosody.err";
|
||||
"*syslog";
|
||||
}
|
||||
|
||||
----------- Virtual hosts -----------
|
||||
-- You need to add a VirtualHost entry for each domain you wish Prosody to serve.
|
||||
-- Settings under each VirtualHost entry apply *only* to that host.
|
||||
|
||||
--VirtualHost "localhost"
|
||||
|
||||
VirtualHost "jitsi.example.com"
|
||||
-- enabled = false -- Remove this line to enable this host
|
||||
authentication = "anonymous"
|
||||
-- Assign this host a certificate for TLS, otherwise it would use the one
|
||||
-- set in the global section (if any).
|
||||
-- Note that old-style SSL on port 5223 only supports one certificate, and will always
|
||||
-- use the global one.
|
||||
ssl = {
|
||||
key = "/var/lib/prosody/jitsi.example.com.key";
|
||||
certificate = "/var/lib/prosody/jitsi.example.com.crt";
|
||||
}
|
||||
|
||||
c2s_require_encryption = false
|
||||
|
||||
VirtualHost "auth.jitsi.example.com"
|
||||
ssl = {
|
||||
key = "/var/lib/prosody/auth.jitsi.example.com.key";
|
||||
certificate = "/var/lib/prosody/auth.jitsi.example.com.crt";
|
||||
}
|
||||
authentication = "internal_hashed"
|
||||
|
||||
------ Components ------
|
||||
-- You can specify components to add hosts that provide special services,
|
||||
-- like multi-user conferences, and transports.
|
||||
-- For more information on components, see http://prosody.im/doc/components
|
||||
|
||||
---Set up a MUC (multi-user chat) room server on conference.example.com:
|
||||
--Component "conference.example.com" "muc"
|
||||
|
||||
-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
|
||||
--Component "proxy.example.com" "proxy65"
|
||||
|
||||
---Set up an external component (default component port is 5347)
|
||||
--
|
||||
-- External components allow adding various services, such as gateways/
|
||||
-- transports to other networks like ICQ, MSN and Yahoo. For more info
|
||||
-- see: http://prosody.im/doc/components#adding_an_external_component
|
||||
--
|
||||
--Component "gateway.example.com"
|
||||
-- component_secret = "password"
|
||||
|
||||
Component "conference.jitsi.example.com" "muc"
|
||||
|
||||
Component "jitsi-videobridge.jitsi.example.com"
|
||||
component_secret = "IfGaish6"
|
||||
@@ -0,0 +1,32 @@
|
||||
# Jitsi Conference Focus settings
|
||||
# sets the host name of the XMPP server
|
||||
JICOFO_HOST=localhost
|
||||
|
||||
# sets the XMPP domain (default: none)
|
||||
JICOFO_HOSTNAME=meet.example.com
|
||||
|
||||
# sets the secret used to authenticate as an XMPP component
|
||||
JICOFO_SECRET=$JICOFO_SECRET
|
||||
|
||||
# sets the port to use for the XMPP component connection
|
||||
JICOFO_PORT=5347
|
||||
|
||||
# sets the XMPP domain name to use for XMPP user logins
|
||||
JICOFO_AUTH_DOMAIN=auth.meet.example.com
|
||||
|
||||
# sets the username to use for XMPP user logins
|
||||
JICOFO_AUTH_USER=focus
|
||||
|
||||
# sets the password to use for XMPP user logins
|
||||
JICOFO_AUTH_PASSWORD=$JICOFO_PASSWORD
|
||||
|
||||
# extra options to pass to the jicofo daemon
|
||||
JICOFO_OPTS=""
|
||||
|
||||
# adds java system props that are passed to jicofo (default are for home and logging config file)
|
||||
JAVA_SYS_PROPS=" \
|
||||
-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi \
|
||||
-Dnet.java.sip.communicator.SC_HOME_DIR_NAME=jicofo \
|
||||
-Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi \
|
||||
-Djava.util.logging.config.file=/etc/jitsi/jicofo/logging.properties \
|
||||
"
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.meet.example.com
|
||||
org.jitsi.jicofo.ALWAYS_TRUST_MODE_ENABLED=true
|
||||
|
||||
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.meet.example.com
|
||||
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
|
||||
@@ -0,0 +1,87 @@
|
||||
plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }
|
||||
|
||||
-- domain mapper options, must at least have domain base set to use the mapper
|
||||
muc_mapper_domain_base = "meet.example.com";
|
||||
|
||||
turncredentials_secret = "turncredentials_secret_test";
|
||||
|
||||
turncredentials = {
|
||||
{ type = "stun", host = "meet.example.com", port = "443" },
|
||||
{ type = "turn", host = "meet.example.com", port = "443", transport = "udp" },
|
||||
{ type = "turns", host = "meet.example.com", port = "443", transport = "tcp" }
|
||||
};
|
||||
|
||||
cross_domain_bosh = false;
|
||||
consider_bosh_secure = true;
|
||||
|
||||
VirtualHost "meet.example.com"
|
||||
-- enabled = false -- Remove this line to enable this host
|
||||
authentication = "anonymous"
|
||||
-- Properties below are modified by jitsi-meet-tokens package config
|
||||
-- and authentication above is switched to "token"
|
||||
--app_id="example_app_id"
|
||||
--app_secret="example_app_secret"
|
||||
-- Assign this host a certificate for TLS, otherwise it would use the one
|
||||
-- set in the global section (if any).
|
||||
-- Note that old-style SSL on port 5223 only supports one certificate, and will always
|
||||
-- use the global one.
|
||||
ssl = {
|
||||
key = "/etc/prosody/certs/meet.example.com.key";
|
||||
certificate = "/etc/prosody/certs/meet.example.com.crt";
|
||||
}
|
||||
speakerstats_component = "speakerstats.meet.example.com"
|
||||
conference_duration_component = "conferenceduration.meet.example.com"
|
||||
-- we need bosh
|
||||
modules_enabled = {
|
||||
"bosh";
|
||||
"pubsub";
|
||||
"ping"; -- Enable mod_ping
|
||||
"speakerstats";
|
||||
"turncredentials";
|
||||
"conference_duration";
|
||||
}
|
||||
c2s_require_encryption = false
|
||||
|
||||
Component "conference.meet.example.com" "muc"
|
||||
storage = "memory"
|
||||
modules_enabled = {
|
||||
"muc_meeting_id";
|
||||
"muc_domain_mapper";
|
||||
--"token_verification";
|
||||
}
|
||||
admins = { "focus@auth.meet.example.com" }
|
||||
muc_room_locking = false
|
||||
muc_room_default_public_jids = true
|
||||
|
||||
-- internal muc component
|
||||
-- Note: This is also used from jibris
|
||||
Component "internal.auth.meet.example.com" "muc"
|
||||
storage = "memory"
|
||||
modules_enabled = {
|
||||
"ping";
|
||||
}
|
||||
admins = { "focus@auth.meet.example.com", "jvb@auth.meet.example.com" }
|
||||
|
||||
VirtualHost "auth.meet.example.com"
|
||||
ssl = {
|
||||
key = "/etc/prosody/certs/auth.meet.example.com.key";
|
||||
certificate = "/etc/prosody/certs/auth.meet.example.com.crt";
|
||||
}
|
||||
authentication = "internal_hashed"
|
||||
|
||||
Component "focus.meet.example.com"
|
||||
component_secret = "jicofo_secret_test"
|
||||
|
||||
Component "speakerstats.meet.example.com" "speakerstats_component"
|
||||
muc_component = "conference.meet.example.com"
|
||||
|
||||
Component "conferenceduration.meet.example.com" "conference_duration_component"
|
||||
muc_component = "conference.meet.example.com"
|
||||
|
||||
-- for Jibri
|
||||
VirtualHost "recorder.meet.example.com"
|
||||
modules_enabled = {
|
||||
"ping";
|
||||
}
|
||||
authentication = "internal_hashed"
|
||||
c2s_require_encryption = false
|
||||
@@ -0,0 +1,112 @@
|
||||
-- Prosody XMPP Server Configuration
|
||||
|
||||
---------- Server-wide settings ----------
|
||||
-- Settings in this section apply to the whole server and are the default settings
|
||||
-- for any virtual hosts
|
||||
|
||||
admins = { }
|
||||
|
||||
network_backend = "epoll"
|
||||
|
||||
-- This is the list of modules Prosody will load on startup.
|
||||
-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.
|
||||
-- Documentation for bundled modules can be found at: https://prosody.im/doc/modules
|
||||
modules_enabled = {
|
||||
|
||||
-- Generally required
|
||||
"roster"; -- Allow users to have a roster. Recommended ;)
|
||||
"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
|
||||
"tls"; -- Add support for secure TLS on c2s/s2s connections
|
||||
"dialback"; -- s2s dialback support
|
||||
"disco"; -- Service discovery
|
||||
|
||||
-- Not essential, but recommended
|
||||
"carbons"; -- Keep multiple clients in sync
|
||||
"pep"; -- Enables users to publish their avatar, mood, activity, playing music and more
|
||||
"private"; -- Private XML storage (for room bookmarks, etc.)
|
||||
"blocklist"; -- Allow users to block communications with other users
|
||||
"vcard4"; -- User profiles (stored in PEP)
|
||||
"vcard_legacy"; -- Conversion between legacy vCard and PEP Avatar, vcard
|
||||
|
||||
-- Nice to have
|
||||
"version"; -- Replies to server version requests
|
||||
"uptime"; -- Report how long server has been running
|
||||
"time"; -- Let others know the time here on this server
|
||||
"ping"; -- Replies to XMPP pings with pongs
|
||||
"register"; -- Allow users to register on this server using a client and change passwords
|
||||
--"mam"; -- Store messages in an archive and allow users to access it
|
||||
--"csi_simple"; -- Simple Mobile optimizations
|
||||
|
||||
-- Admin interfaces
|
||||
"admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
|
||||
--"admin_telnet"; -- Opens telnet console interface on localhost port 5582
|
||||
|
||||
-- HTTP modules
|
||||
--"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
|
||||
--"websocket"; -- XMPP over WebSockets
|
||||
--"http_files"; -- Serve static files from a directory over HTTP
|
||||
|
||||
-- Other specific functionality
|
||||
--"limits"; -- Enable bandwidth limiting for XMPP connections
|
||||
--"groups"; -- Shared roster support
|
||||
--"server_contact_info"; -- Publish contact information for this service
|
||||
--"announce"; -- Send announcement to all online users
|
||||
--"welcome"; -- Welcome users who register accounts
|
||||
--"watchregistrations"; -- Alert admins of registrations
|
||||
--"motd"; -- Send a message to users when they log in
|
||||
--"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
|
||||
--"proxy65"; -- Enables a file transfer proxy service which clients behind NAT can use
|
||||
}
|
||||
|
||||
-- These modules are auto-loaded, but should you want
|
||||
-- to disable them then uncomment them here:
|
||||
modules_disabled = {
|
||||
--"offline"; -- Store offline messages
|
||||
--"c2s"; -- Handle client connections
|
||||
--"s2s"; -- Handle server-to-server connections
|
||||
--"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
|
||||
}
|
||||
|
||||
-- Disable account creation by default, for security
|
||||
-- For more information see https://prosody.im/doc/creating_accounts
|
||||
allow_registration = false
|
||||
|
||||
-- Force clients to use encrypted connections? This option will
|
||||
-- prevent clients from authenticating unless they are using encryption.
|
||||
|
||||
c2s_require_encryption = true
|
||||
|
||||
-- Force servers to use encrypted connections? This option will
|
||||
-- prevent servers from authenticating unless they are using encryption.
|
||||
|
||||
s2s_require_encryption = true
|
||||
|
||||
-- Force certificate authentication for server-to-server connections?
|
||||
|
||||
s2s_secure_auth = false
|
||||
|
||||
-- Required for init scripts and prosodyctl
|
||||
pidfile = "/var/run/prosody/prosody.pid"
|
||||
|
||||
-- Select the authentication backend to use. The 'internal' providers
|
||||
-- use Prosody's configured data storage to store the authentication data.
|
||||
|
||||
authentication = "internal_hashed"
|
||||
|
||||
archive_expires_after = "1w" -- Remove archived messages after 1 week
|
||||
|
||||
-- Logging configuration
|
||||
-- For advanced logging see https://prosody.im/doc/logging
|
||||
log = {
|
||||
info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging
|
||||
error = "/var/log/prosody/prosody.err";
|
||||
--"*syslog"; -- Uncomment this for logging to syslog
|
||||
--"*console"; -- Log to the console, useful for debugging with daemonize=false
|
||||
}
|
||||
|
||||
-- Location of directory to find certificates in (relative to main config file):
|
||||
certificates = "certs"
|
||||
|
||||
VirtualHost "localhost"
|
||||
|
||||
Include "conf.d/*.cfg.lua"
|
||||
@@ -0,0 +1,24 @@
|
||||
# Jitsi Videobridge settings
|
||||
|
||||
# sets the XMPP domain (default: none)
|
||||
JVB_HOSTNAME=meet.example.com
|
||||
|
||||
# sets the hostname of the XMPP server (default: domain if set, localhost otherwise)
|
||||
JVB_HOST=
|
||||
|
||||
# sets the port of the XMPP server (default: 5275)
|
||||
JVB_PORT=5347
|
||||
|
||||
# sets the shared secret used to authenticate to the XMPP server
|
||||
JVB_SECRET=$VP_SECRET
|
||||
|
||||
# extra options to pass to the JVB daemon
|
||||
JVB_OPTS="--apis=rest,"
|
||||
|
||||
# adds java system props that are passed to jvb (default are for home and logging config file)
|
||||
JAVA_SYS_PROPS=" \
|
||||
-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi \
|
||||
-Dnet.java.sip.communicator.SC_HOME_DIR_NAME=videobridge \
|
||||
-Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi \
|
||||
-Djava.util.logging.config.file=/etc/jitsi/videobridge/logging.properties \
|
||||
"
|
||||
@@ -0,0 +1,19 @@
|
||||
org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true
|
||||
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443
|
||||
|
||||
org.jitsi.jicofo.ALWAYS_TRUST_MODE_ENABLED=true
|
||||
|
||||
org.jitsi.videobridge.ENABLE_REST_SHUTDOWN=true
|
||||
|
||||
# Enable broadcasting stats/presence in a MUC
|
||||
org.jitsi.videobridge.ENABLE_STATISTICS=true
|
||||
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri,rest
|
||||
org.jitsi.videobridge.STATISTICS_INTERVAL=5000
|
||||
|
||||
org.jitsi.videobridge.xmpp.user.shard-1.HOSTNAME=meet.example.com
|
||||
org.jitsi.videobridge.xmpp.user.shard-1.DOMAIN=auth.meet.example.com
|
||||
org.jitsi.videobridge.xmpp.user.shard-1.USERNAME=jvb
|
||||
org.jitsi.videobridge.xmpp.user.shard-1.PASSWORD=$VB_PASSWORD
|
||||
org.jitsi.videobridge.xmpp.user.shard-1.MUC_JIDS=JvbBrewery@internal.auth.meet.example.com
|
||||
org.jitsi.videobridge.xmpp.user.shard-1.MUC_NICKNAME=$NICKNAME_OF_VB
|
||||
org.jitsi.videobridge.xmpp.user.shard-1.DISABLE_CERTIFICATE_VERIFICATION=true
|
||||
@@ -26,6 +26,11 @@ var interfaceConfig = {
|
||||
|
||||
CLOSE_PAGE_GUEST_HINT: false, // A html text to be shown to guests on the close page, false disables it
|
||||
|
||||
// Connection indicators (
|
||||
// CONNECTION_INDICATOR_AUTO_HIDE_ENABLED,
|
||||
// CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT,
|
||||
// CONNECTION_INDICATOR_DISABLED) got moved to config.js.
|
||||
|
||||
DEFAULT_BACKGROUND: '#474747',
|
||||
DEFAULT_LOCAL_DISPLAY_NAME: 'me',
|
||||
DEFAULT_LOGO_URL: 'images/watermark.svg',
|
||||
@@ -34,6 +39,9 @@ var interfaceConfig = {
|
||||
|
||||
DISABLE_DOMINANT_SPEAKER_INDICATOR: false,
|
||||
|
||||
// Deprecated. Please use disableModeratorIndicator from config.js
|
||||
// DISABLE_FOCUS_INDICATOR: false,
|
||||
|
||||
/**
|
||||
* If true, notifications regarding joining/leaving are no longer displayed.
|
||||
*/
|
||||
@@ -89,6 +97,7 @@ var interfaceConfig = {
|
||||
*/
|
||||
HIDE_INVITE_MORE_HEADER: false,
|
||||
|
||||
INITIAL_TOOLBAR_TIMEOUT: 20000,
|
||||
JITSI_WATERMARK_LINK: 'https://jitsi.org',
|
||||
|
||||
LANG_DETECTION: true, // Allow i18n to detect the system language
|
||||
@@ -174,6 +183,16 @@ var interfaceConfig = {
|
||||
*/
|
||||
SUPPORT_URL: 'https://community.jitsi.org/',
|
||||
|
||||
TOOLBAR_ALWAYS_VISIBLE: false,
|
||||
|
||||
/**
|
||||
* DEPRECATED!
|
||||
* This config was moved to config.js as `toolbarButtons`.
|
||||
*/
|
||||
// TOOLBAR_BUTTONS: [],
|
||||
|
||||
TOOLBAR_TIMEOUT: 4000,
|
||||
|
||||
// Browsers, in addition to those which do not fully support WebRTC, that
|
||||
// are not supported and should show the unsupported browser page.
|
||||
UNSUPPORTED_BROWSERS: [],
|
||||
@@ -238,28 +257,6 @@ var interfaceConfig = {
|
||||
PHONE_NUMBER_REGEX
|
||||
*/
|
||||
|
||||
// -----------------DEPRECATED CONFIGS BELOW THIS LINE-----------------------------
|
||||
|
||||
// Connection indicators (
|
||||
// CONNECTION_INDICATOR_AUTO_HIDE_ENABLED,
|
||||
// CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT,
|
||||
// CONNECTION_INDICATOR_DISABLED) got moved to config.js.
|
||||
|
||||
// Please use disableModeratorIndicator from config.js
|
||||
// DISABLE_FOCUS_INDICATOR: false,
|
||||
|
||||
// Moved to config.js as `toolbarConfig.initialTimeout`.
|
||||
// INITIAL_TOOLBAR_TIMEOUT: 20000,
|
||||
|
||||
// Moved to config.js as `toolbarConfig.alwaysVisible`.
|
||||
// TOOLBAR_ALWAYS_VISIBLE: false,
|
||||
|
||||
// This config was moved to config.js as `toolbarButtons`.
|
||||
// TOOLBAR_BUTTONS: [],
|
||||
|
||||
// Moved to config.js as `toolbarConfig.timeout`.
|
||||
// TOOLBAR_TIMEOUT: 4000,
|
||||
|
||||
// Allow all above example options to include a trailing comma and
|
||||
// prevent fear when commenting out the last value.
|
||||
// eslint-disable-next-line sort-keys
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
platform :ios, '12.0'
|
||||
platform :ios, '11.0'
|
||||
workspace 'jitsi-meet'
|
||||
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
||||
install! 'cocoapods', :deterministic_uuids => false
|
||||
@@ -87,7 +87,7 @@ post_install do |installer|
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['ENABLE_BITCODE'] = 'YES'
|
||||
config.build_settings['SUPPORTS_MACCATALYST'] = 'NO'
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -605,6 +605,6 @@ SPEC CHECKSUMS:
|
||||
RNWatch: a5320c959c75e72845c07985f3e935e58998f1d3
|
||||
Yoga: 96b469c5e81ff51b917b92e8c3390642d4ded30c
|
||||
|
||||
PODFILE CHECKSUM: 3cc305fd6ee83fff506c10c4805471fa72b61c9a
|
||||
PODFILE CHECKSUM: e830b1b5a46d340e22689b146b55dcf24664c6f1
|
||||
|
||||
COCOAPODS: 1.10.1
|
||||
|
||||
@@ -996,7 +996,7 @@
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
);
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -1049,7 +1049,7 @@
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
);
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>21.4.0</string>
|
||||
<string>21.4.3</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>NSExtension</key>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>21.4.0</string>
|
||||
<string>21.4.3</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright @ 2017-present 8x8, Inc.
|
||||
* Copyright @ 2018-present 8x8, Inc.
|
||||
* Copyright @ 2017-2018 Atlassian Pty Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,6 +15,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Availability.h>
|
||||
|
||||
@import CoreSpotlight;
|
||||
@import MobileCoreServices;
|
||||
@import Intents; // Needed for NSUserActivity suggestedInvocationPhrase
|
||||
@@ -55,29 +58,34 @@
|
||||
[self _onJitsiMeetViewDelegateEvent:@"CONFERENCE_JOINED" withData:data];
|
||||
|
||||
// Register a NSUserActivity for this conference so it can be invoked as a
|
||||
// Siri shortcut.
|
||||
NSUserActivity *userActivity
|
||||
= [[NSUserActivity alloc] initWithActivityType:JitsiMeetConferenceActivityType];
|
||||
// Siri shortcut. This is only supported in iOS >= 12.
|
||||
#ifdef __IPHONE_12_0
|
||||
if (@available(iOS 12.0, *)) {
|
||||
NSUserActivity *userActivity
|
||||
= [[NSUserActivity alloc] initWithActivityType:JitsiMeetConferenceActivityType];
|
||||
|
||||
NSString *urlStr = data[@"url"];
|
||||
NSURL *url = [NSURL URLWithString:urlStr];
|
||||
NSString *conference = [url.pathComponents lastObject];
|
||||
NSString *urlStr = data[@"url"];
|
||||
NSURL *url = [NSURL URLWithString:urlStr];
|
||||
NSString *conference = [url.pathComponents lastObject];
|
||||
|
||||
userActivity.title = [NSString stringWithFormat:@"Join %@", conference];
|
||||
userActivity.suggestedInvocationPhrase = @"Join my Jitsi meeting";
|
||||
userActivity.userInfo = @{@"url": urlStr};
|
||||
[userActivity setEligibleForSearch:YES];
|
||||
[userActivity setEligibleForPrediction:YES];
|
||||
[userActivity setPersistentIdentifier:urlStr];
|
||||
userActivity.title = [NSString stringWithFormat:@"Join %@", conference];
|
||||
userActivity.suggestedInvocationPhrase = @"Join my Jitsi meeting";
|
||||
userActivity.userInfo = @{@"url": urlStr};
|
||||
[userActivity setEligibleForSearch:YES];
|
||||
[userActivity setEligibleForPrediction:YES];
|
||||
[userActivity setPersistentIdentifier:urlStr];
|
||||
|
||||
// Subtitle
|
||||
CSSearchableItemAttributeSet *attributes
|
||||
= [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeItem];
|
||||
attributes.contentDescription = urlStr;
|
||||
userActivity.contentAttributeSet = attributes;
|
||||
// Subtitle
|
||||
CSSearchableItemAttributeSet *attributes
|
||||
= [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeItem];
|
||||
attributes.contentDescription = urlStr;
|
||||
userActivity.contentAttributeSet = attributes;
|
||||
|
||||
self.userActivity = userActivity;
|
||||
[userActivity becomeCurrent];
|
||||
}
|
||||
#endif
|
||||
|
||||
self.userActivity = userActivity;
|
||||
[userActivity becomeCurrent];
|
||||
}
|
||||
|
||||
- (void)conferenceTerminated:(NSDictionary *)data {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>21.4.0</string>
|
||||
<string>21.4.3</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>21.4.0</string>
|
||||
<string>21.4.3</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>CLKComplicationPrincipalClass</key>
|
||||
|
||||
@@ -520,7 +520,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -576,7 +576,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.10.0</string>
|
||||
<string>3.10.4</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
||||
@@ -127,6 +127,7 @@
|
||||
}
|
||||
|
||||
- (void)destroyReactNativeBridge {
|
||||
[_bridgeWrapper invalidate];
|
||||
_bridgeWrapper = nil;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,4 +34,6 @@
|
||||
|
||||
@property (nonatomic, readonly, strong) RCTBridge *bridge;
|
||||
|
||||
- (void)invalidate;
|
||||
|
||||
@end
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)invalidate {
|
||||
[_bridge invalidate];
|
||||
}
|
||||
|
||||
#pragma mark helper methods for getting the packager URL
|
||||
|
||||
#if DEBUG
|
||||
|
||||
@@ -44,14 +44,5 @@
|
||||
"esUS": "Taspanit (Temrikt Talatinit)",
|
||||
"enGB": "Tagnizit (Tagldit i ddukklen)",
|
||||
"da": "Tadanit",
|
||||
"ca": "Takaṭalant",
|
||||
"mr": "Tamratit",
|
||||
"ml": "Tamalayalamt",
|
||||
"lv": "Talatviant",
|
||||
"fa": "Tafarisit",
|
||||
"pt": "Taportugit",
|
||||
"sr": "Taserbit",
|
||||
"sq": "Talbanit",
|
||||
"hi": "Tahindit",
|
||||
"te": "Tatelugut"
|
||||
"ca": "Takaṭalant"
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"copyInvite": "انسخ دعوةً للاجتماع",
|
||||
"copyLink": "انسخ رابط الاجتماع",
|
||||
"copyStream": "انسخ رابط البث المباشر",
|
||||
"contacts": "contacts",
|
||||
"countryNotSupported": "لا ندعم هذه الوجهة حاليًا.",
|
||||
"countryReminder": "أتريد الاتصال بمن هو خارج الولايات المتحدة؟ تأكد من الابتداء برمز الدولة أولًا!",
|
||||
"defaultEmail": "بريدك الافتراضي",
|
||||
@@ -17,14 +16,18 @@
|
||||
"inviteMoreMailSubject": "ضم {{appName}} للاجتماع",
|
||||
"inviteMorePrompt": "ادعُ أشخاصًا آخرين",
|
||||
"linkCopied": "نُسِخ الرابط",
|
||||
"loading": "البحث عن أشخاص وأرقام هواتف",
|
||||
"loadingNumber": "التحقق من رقم الهاتف",
|
||||
"loadingPeople": "البحث عن أشخاص لإضافتهم",
|
||||
"noResults": "لم يُعثَر على أي نتيجة بحث متطابقة",
|
||||
"noValidNumbers": "ادخل رقم هاتف، رجاءً",
|
||||
"outlookEmail": "بريد مايكروسوفت",
|
||||
"phoneNumbers": "أضف ارقام هواتف",
|
||||
"search": "ابحث عن أشخاص",
|
||||
"searchNumbers": "أضف ارقام هواتف",
|
||||
"searchPeople": "ابحث عن أشخاص",
|
||||
"searchPeopleAndNumbers": "ابحث عن أشخاص أو أضف أرقام هواتفهم",
|
||||
"shareInvite": "شارك دعوةً للاجتماع",
|
||||
"shareLink": "شارك رابط الاجتماع لدعوة الأخرين",
|
||||
"shareStream": "شارك رابط البث المباشر للاجتماع",
|
||||
"sipAddresses": "sip عنوان",
|
||||
"telephone": "رقم الهاتف: {{number}}",
|
||||
"title": "ادعُ أحدًا لهذا الاجتماع",
|
||||
"yahooEmail": "بريد ياهوو"
|
||||
@@ -58,7 +61,6 @@
|
||||
"today": "اليوم"
|
||||
},
|
||||
"chat": {
|
||||
"enter": "أدخل الغرفة",
|
||||
"error": "خطأ: لم تُرسَل رسالتك. السبب: {{error}}",
|
||||
"fieldPlaceHolder": "اكتب رسالتك هنا",
|
||||
"messagebox": "اكتب رسالة",
|
||||
@@ -70,14 +72,6 @@
|
||||
"titleWithPolls": "اكتب لقبًا لاعتماده في المحادثة"
|
||||
},
|
||||
"privateNotice": "أرسل رسالة خاصة إلى {{recipient}}",
|
||||
"message": "رسالة",
|
||||
"messageAccessibleTitle": "{{user}} مقولة:",
|
||||
"messageAccessibleTitleMe": "أنا أقول:",
|
||||
"smileysPanel": "واجهة الإيموجي",
|
||||
"tabs": {
|
||||
"chat": "دردشة",
|
||||
"polls": "تصويت"
|
||||
},
|
||||
"title": "محادثة",
|
||||
"titleWithPolls": "محادثة",
|
||||
"you": "أنت"
|
||||
@@ -85,8 +79,7 @@
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "نزِّل الإضافة للدمج مع رزنامة غوغل ورزنامة أوفيس 365",
|
||||
"buttonText": "نزِّل إضافة متصفح كروم",
|
||||
"dontShowAgain": "لا ترني هذه مرة أخرى",
|
||||
"close": "إغلق"
|
||||
"dontShowAgain": "لا ترني هذه مرة أخرى"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "قيد وصلك بالإجتماع..."
|
||||
@@ -108,7 +101,6 @@
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "العنوان:",
|
||||
"audio_ssrc": "مصدر الصوت:",
|
||||
"bandwidth": "مُعدَّل البيانات المتبادلة:",
|
||||
"bitrate": "مُعدَّل البث:",
|
||||
"bridgeCount": "عدد المخدِّمات: ",
|
||||
@@ -136,12 +128,9 @@
|
||||
"remoteport": "المنفذ البعيد:",
|
||||
"remoteport_plural": "المنافذ البعيدة:",
|
||||
"resolution": "الدقة:",
|
||||
"savelogs": "خزن الوقوعات",
|
||||
"participant_id": "معرّف المشترك:",
|
||||
"status": "الاتصال:",
|
||||
"transport": "النقل:",
|
||||
"transport_plural": "النواقل:",
|
||||
"video_ssrc": "مصدر الصورة:"
|
||||
"transport_plural": "النواقل:"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "سابقًا",
|
||||
@@ -183,7 +172,6 @@
|
||||
"alreadySharedVideoMsg": "يشارك أحد الحضور الفيديو حاليًا، ولا يسمح هذا الإجتماع سوى بمشاركة فيديو واحد في آن واحد",
|
||||
"alreadySharedVideoTitle": "لا يُسمَح سوى بفيديو مشارك واحد على الأكثر في آن واحد.",
|
||||
"applicationWindow": "نافذة التطبيق",
|
||||
"authenticationRequired": "يستلزم التوثيق",
|
||||
"Back": "عد للخلف",
|
||||
"cameraConstraintFailedError": "لا تتوافق كاميرتك مع بعض الشروط المطلوبة.",
|
||||
"cameraNotFoundError": "لم يُعثَر على اي كاميرا",
|
||||
@@ -191,7 +179,6 @@
|
||||
"cameraNotSendingDataTitle": "يصعب الوصول الوصول إلى كاميرتك",
|
||||
"cameraPermissionDeniedError": "لم تُمنَح إذن استعمال الكاميرا. لا يزال بإمكانك حضور المؤتمر ولكن لن يراك الآخرون. استعمال زر الكاميرا في شريط العنوان لمحاول إصلاح المشكلة.",
|
||||
"cameraUnknownError": "يصعب استعمال الكاميرا لأسباب مجهولة.",
|
||||
"cameraTimeoutError": "تعذر بدء مصدر الفيديو. انتهت المهلة!",
|
||||
"cameraUnsupportedResolutionError": "لا تدعم كاميرتك دقة الفيديو المطلوبة.",
|
||||
"Cancel": "ِألغ",
|
||||
"close": "أغلق",
|
||||
@@ -209,20 +196,16 @@
|
||||
"copied": "نُسِخ!",
|
||||
"copy": "انسخ",
|
||||
"dismiss": "تجاهل",
|
||||
"displayNameRequired": "السلام عليكم! ما اسمك؟",
|
||||
"displayNameRequired": "السلام عليك! ما اسمك؟",
|
||||
"done": "اُنجِز",
|
||||
"e2eeDescription": "<p>عملية التعمية من طرف لطرف <strong>قيد التجريب</strong> حاليًا. زر رجاءً <a href='https://jitsi.org/blog/e2ee/' target='_blank'>هذا المنشور</a> لمزيد من التفاصيل.</p><br/><p>ضع في ذهنك أن تشغيل عملية التعمية من طرف لطرف ستعطل عمل بعض الخدمات التي يقدمها المُخدِّم مثل: التسجيل، والبث الحي، الاشتراك عبر الهاتف. أضف إلى ذلك أن الاجتماع سيعمل مع الأشخاص المنضمين من المتصفح التي تدعم قابلية الدخول إلى البث.</p>",
|
||||
"e2eeLabel": "المفتاح",
|
||||
"e2eeDisabledDueToMaxModeDescription": "لا يمكن تمكين التشفير من طرف إلى طرف بسبب العدد الكبير من المشاركين في المؤتمر.",
|
||||
"e2eeWarning": "تحذير: لا يبدو أن جميع المشاركين في هذا الاجتماع لديهم دعم للتشفير من طرف إلى طرف. إذا قمت بتمكينه فلن يتمكنوا من رؤيتك أو سماعك.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "تحذير: سيتم تعطيل التشفير من طرف إلى طرف تلقائيًا إذا انضم المزيد من المشاركين إلى المؤتمر.",
|
||||
"e2eeWarning": "<br /><p><strong>تحذير:</strong>لا يبدو أن جميع الحاضرين في هذا الاجتماع يدعمون عملية التعمية طرف لطرف. إن فعَّلت العملية، فلن يتمكنوا من رؤيتك ولا سماعك.</p>",
|
||||
"enterDisplayName": "أدخل اسمك هنا، رجاءً",
|
||||
"embedMeeting": "تضمين الاجتماع",
|
||||
"error": "خطأ",
|
||||
"gracefulShutdown": "خدمتنا متوقفة حاليًا لعمليات الصيانة. جرب مرة أخرى في وقت لاحق.",
|
||||
"grantModeratorDialog": "أما زلت راغب بجعل هذا المشارك رئيس الجلسة؟",
|
||||
"grantModeratorTitle": "اجعله رئيس الجلسة",
|
||||
"hideShareAudioHelper": "لا تظهر هذا الحوار مرة أخرى",
|
||||
"IamHost": "أنا المضيف",
|
||||
"incorrectRoomLockPassword": "كلمة مرور خطأ",
|
||||
"incorrectPassword": "اسم المستخدم أو كلمة المرور خطأ",
|
||||
@@ -232,15 +215,15 @@
|
||||
"kickParticipantButton": "اطرد",
|
||||
"kickParticipantDialog": "أمتأكد من طرد هذا المشارك؟",
|
||||
"kickParticipantTitle": "أتريد طرد هذا المشارك؟",
|
||||
"kickTitle": "عذرًا! تم طردك {{participantDisplayName}} من الاجتماع",
|
||||
"kickTitle": "عذرًا! طردك {{participantDisplayName}} من الاجتماع",
|
||||
"liveStreaming": "البث المباشر الحي",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "غير ممكن أثناء التسجيل",
|
||||
"liveStreamingDisabledForGuestTooltip": "لا يمكن للضيوف بدء بث حي مباشر.",
|
||||
"liveStreamingDisabledTooltip": "بدء بثٍ حيٍّ مُعطَّل",
|
||||
"lockMessage": "فشل جعل المؤتمر مغلقًا.",
|
||||
"lockRoom": "أضف الاجتماع $t(lockRoomPasswordUppercase)",
|
||||
"lockTitle": "فشلت عملية القفل والإغلاق",
|
||||
"logoutQuestion": "أمتأكد من رغبتك في الخروج وإيقاف المؤتمر؟",
|
||||
"login": "تسجيل الدخول",
|
||||
"logoutTitle": "الخروج",
|
||||
"maxUsersLimitReached": "وصل عدد المشاركين إلى الحد الأقصى. المؤتمر مكتمل الحضور. اتصل رجاءً براعي المؤتمر أو جرب مرة أخرى لاحقًا.",
|
||||
"maxUsersLimitReachedTitle": "وصل عدد المشاركين إلى الحد الأقصى",
|
||||
@@ -249,46 +232,28 @@
|
||||
"micNotSendingData": "اذهب إلى إعدادات حاسوبك لإلغاء كتم المجهار (المايكروفون) وضبط مستواه",
|
||||
"micNotSendingDataTitle": "كتم ضبط الإعدادات لديك المجهار (المايكروفون)",
|
||||
"micPermissionDeniedError": "لم تعط إذن استعمال المجهار (المايكروفون) الخاص بك. ما يزال بإمكانك الإنضمام إلى المؤتمر ولكن دون أن يسمعك الآخرون. جرب استعمال زر الكاميرا في شريط العنوان لإصلاح هذه المشكلة.",
|
||||
"micTimeoutError": "Could not start audio source. Timeout occured!",
|
||||
"micUnknownError": "Cannot use microphone for an unknown reason.",
|
||||
"moderationAudioLabel": "Allow attendees to unmute themselves",
|
||||
"moderationVideoLabel": "Allow attendees to start their video",
|
||||
"micUnknownError": "يصعب استعمال المجهار (المايكروفون) الخاص بك لأسباب مجهولة.",
|
||||
"muteEveryoneElseDialog": "بمجرد أن تكتمهم، لن تتمكن نم إلغاء الكتم هذا، ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteEveryoneElseTitle": "أتريد كتم الجميع باستثناء {{whom}}?",
|
||||
"muteEveryoneDialog": "أمتأكد من رغبتك بكتم الجميع؟ لن تتمكن من إلغاء الكتم ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteEveryoneDialogModerationOn": "The participants can send a request to speak at any time.",
|
||||
"muteEveryoneTitle": "أتريد كتم الجميع؟",
|
||||
"muteEveryoneElsesVideoDialog": "Once the camera is disabled, you won't be able to turn it back on, but they can turn it back on at any time.",
|
||||
"muteEveryoneElsesVideoTitle": "Stop everyone's video except {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "The participants can turn on their video at any time.",
|
||||
"muteEveryonesVideoDialogModerationOn": "The participants can send a request to turn on their video at any time.",
|
||||
"muteEveryonesVideoDialogOk": "Disable",
|
||||
"muteEveryonesVideoTitle": "Stop everyone's video?",
|
||||
"muteEveryoneSelf": "اكتم نفسك أيضًا",
|
||||
"muteEveryoneStartMuted": "البدء مع كتم الجميع من الآن فصاعدًا",
|
||||
"muteParticipantBody": "لن تتكمن من إلغاء كتمهم، ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteParticipantButton": "كتم",
|
||||
"muteParticipantDialog": "أمتأكد من رغبتك لهذا المشارك؟ لن تتمكن من إلغاء الكتم ولكن يمكنه إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteParticipantsVideoDialog": "هل أنت متأكد أنك تريد إيقاف تشغيل كاميرا هذا المشارك؟ لن تتمكن من إعادة تشغيل الكاميرا ، ولكن يمكنهم إعادة تشغيلها في أي وقت.",
|
||||
"muteParticipantTitle": "أتريد كتم هذا المشارك؟",
|
||||
"muteParticipantsVideoButton": "وقف الكاميرا",
|
||||
"muteParticipantsVideoTitle": "تعطيل الكاميرا لهذا المشارك؟",
|
||||
"muteParticipantsVideoBody": "لن تتمكن من إعادة تشغيل الكاميرا ، ولكن يمكنهم إعادة تشغيلها في أي وقت.",
|
||||
"noDropboxToken": "لا يوجد رمز مميز صالح لـ Dropbox",
|
||||
"Ok": "تمام",
|
||||
"password": "Password",
|
||||
"passwordLabel": "جعل عضو ما هذا الاجتماع مغلقًا. أدخل رجاءً $t(lockRoomPassword) للإنضمام.",
|
||||
"passwordNotSupported": "ضبط اجتماع $t(lockRoomPassword) غير مدعوم.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) غير مدعوم",
|
||||
"passwordRequired": "يُطلَب $t(lockRoomPasswordUppercase)",
|
||||
"permissionErrorTitle": "الإذن مطلوب",
|
||||
"permissionCameraRequiredError": "مطلوب إذن الكاميرا للمشاركة في المؤتمرات بالفيديو. يرجى منحه في الإعدادات",
|
||||
"permissionMicRequiredError": "مطلوب إذن الميكروفون للمشاركة في المؤتمرات مع الصوت. يرجى منحه في الإعدادات",
|
||||
"popupError": "يمنع متصفحك النوافذ المنبثقة من هذا الموقع. فعِّل رجاءً النوافذ المنبثقة في المتصفح من إعدادات الحماية وحاول مرة أخرى.",
|
||||
"popupErrorTitle": "النوافذ المنبثقة محجوبة.",
|
||||
"readMore": "أكثر",
|
||||
"readMore": "more",
|
||||
"recording": "قيد التسجيل",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "ليس بالإمكان ما دمت قيد البث المباشر",
|
||||
"recordingDisabledForGuestTooltip": "لا يمكن للضيوف بدء عملية التسجيل.",
|
||||
"recordingDisabledTooltip": "عملية التسجيل معطلة.",
|
||||
"rejoinNow": "انضم مجدَّدًا الآن",
|
||||
"remoteControlAllowedMessage": "قبل {{user}} طلب إمكانية التحكم البعيد!",
|
||||
@@ -315,27 +280,15 @@
|
||||
"sendPrivateMessageTitle": "أترسل ردًا خاصًا؟",
|
||||
"serviceUnavailable": "الخدمة غير متاحة",
|
||||
"sessTerminated": "أُنهيَت المكالمة",
|
||||
"sessionRestarted": "إعادة الاتصال من الجسر",
|
||||
"Share": "شارك",
|
||||
"shareAudio": "استمر",
|
||||
"shareAudioTitle" : "How to share audio",
|
||||
"shareAudioWarningTitle": "You need to stop screen sharing before sharing audio",
|
||||
"shareAudioWarningH1": "If you want to share just audio:",
|
||||
"shareAudioWarningD1": "you need to stop screen sharing before sharing your audio.",
|
||||
"shareAudioWarningD2": "you need to restart your screen sharing and check the \"share audio\" option.",
|
||||
"shareMediaWarningGenericH2": "If you want to share your screen and audio",
|
||||
"shareVideoLinkError": "زودنا برابط يوتيوب صحيح",
|
||||
"shareVideoTitle": "شارك فيديو",
|
||||
"shareYourScreen": "شارك شاشتك",
|
||||
"shareYourScreenDisabled": "مشاركة الشاشة مُعطَّلة",
|
||||
"shareYourScreenDisabledForGuest": "لا يمكن للضيوف مشاركة شاشتهم",
|
||||
"startLiveStreaming": "ابدأ بثًا حيًا",
|
||||
"startRecording": "ابدأ التسجيل",
|
||||
"startRemoteControlErrorMessage": "حصل خطأٌ أثناء محاولة بدء جلسة تحكم بعيد!",
|
||||
"shareScreenWarningTitle": "تحتاج إلى إيقاف مشاركة الصوت قبل مشاركة شاشتك",
|
||||
"shareScreenWarningH1": "إذا كنت تريد مشاركة شاشتك فقط:",
|
||||
"shareScreenWarningD1": "تحتاج إلى إيقاف مشاركة الصوت قبل مشاركة شاشتك.",
|
||||
"shareScreenWarningD2": "you need to stop audio sharing, start screen sharing and check the \"share audio\" option.",
|
||||
"sharedVideoLinkPlaceholder": "رابط اليوتيوب او رابط الفيديو المباشر",
|
||||
"stopLiveStreaming": "أوقف البث الحي",
|
||||
"stopRecording": "أوقف التسجيل",
|
||||
"stopRecordingWarning": "أمتأكد من رغبتك بإيقاف التسجيل؟",
|
||||
@@ -348,20 +301,12 @@
|
||||
"tokenAuthFailedTitle": "فشلت عملية الاستيثاق",
|
||||
"transcribing": "يذاع",
|
||||
"unlockRoom": "إزل الاجتماع $t(lockRoomPassword)",
|
||||
"user": "مستخدم",
|
||||
"userIdentifier": "معرف المستخدم",
|
||||
"userPassword": "كلمة مرور المستخدم",
|
||||
"videoLink": "رابط الفيديو",
|
||||
"viewUpgradeOptions": "عرض خيارات الترقية",
|
||||
"viewUpgradeOptionsContent": "للحصول على وصول غير محدود إلى الميزات المتميزة مثل التسجيل والنسخ وتدفق RTMP والمزيد ، ستحتاج إلى ترقية خطتك.",
|
||||
"viewUpgradeOptionsTitle": "لقد اكتشفت ميزة مميزة!",
|
||||
"WaitForHostMsg": "لم يبدأ المؤتمر <b>{{room}}</b> بعد. إن كنت المضيف والراعي، فنرجو تأكيد ذلك عبر الاستيثاق أو انتظر وصول المضيف رجاءً. ",
|
||||
"WaitForHostMsgWOk": "لم يبدأ المؤتمر <b>{{room}}</b> بعد. إن كنت المضيف والراعي، فاضغط على «تمام» للاستيثاق أو انتظر وصول المضيف رجاءً.",
|
||||
"WaitingForHost": "ننتظر وصول المضيف ...",
|
||||
"Yes": "نعم",
|
||||
"yourEntireScreen": "شاشتك كاملةً",
|
||||
"remoteUserControls": "ضوابط المستخدم عن بعد لـ {{username}}",
|
||||
"localUserControls": "ضوابط المستخدم المحلي"
|
||||
"yourEntireScreen": "شاشتك كاملةً"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "{{status}} الآن"
|
||||
@@ -375,29 +320,6 @@
|
||||
"embedMeeting": {
|
||||
"title": "ضمِّن هذا الاجتماع"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "تطبيق",
|
||||
"title": "خلفيات افتراضية",
|
||||
"blur": "ضبابية",
|
||||
"slightBlur": "طمس طفيف",
|
||||
"removeBackground": "إزالة خلفية",
|
||||
"addBackground": "أضف خلفية",
|
||||
"pleaseWait": "يرجى الانتظار...",
|
||||
"none": "بدون",
|
||||
"uploadedImage": "تحميل الصورة {{index}}",
|
||||
"deleteImage": "حذف صورة",
|
||||
"image1" : "Beach",
|
||||
"image2" : "جدار أبيض محايد",
|
||||
"image3" : "غرفة بيضاء فارغة",
|
||||
"image4" : "مصباح أرضي أسود",
|
||||
"image5" : "جبل",
|
||||
"image6" : "غابة",
|
||||
"image7" : "شروق الشمس",
|
||||
"desktopShareError": "تعذر إنشاء مشاركة سطح المكتب",
|
||||
"desktopShare":"مشاركة سطح المكتب",
|
||||
"webAssemblyWarning": "WebAssembly غير مدعوم",
|
||||
"backgroundEffectError": "فشل تطبيق تأثير الخلفية."
|
||||
},
|
||||
"feedback": {
|
||||
"average": "المتوسط",
|
||||
"bad": "سيئة",
|
||||
@@ -405,8 +327,7 @@
|
||||
"good": "جيدة",
|
||||
"rateExperience": "قيِّم تجربتك مع هذا الإجتماع",
|
||||
"veryBad": "سيئة للغاية",
|
||||
"veryGood": "ممتازة",
|
||||
"star": "نجمة"
|
||||
"veryGood": "ممتازة"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "أجب",
|
||||
@@ -423,7 +344,6 @@
|
||||
"country": "البلد",
|
||||
"dialANumber": "إن أردت الإنضمام إلى الإجتماع، اتصل بأحد الأرقام التالية ثم أدخل رمز المرور",
|
||||
"dialInConferenceID": "رمز المرور (PIN):",
|
||||
"copyNumber":"إنسخ الرقم",
|
||||
"dialInNotSupported": "عذرًا، الاتصال غير مدعوم حاليًا.",
|
||||
"dialInNumber": "اتصل:",
|
||||
"dialInSummaryError": "خطأ في تحصيل معلومات الاتصال. جرب مرة أخرى لاحقًا.",
|
||||
@@ -432,11 +352,6 @@
|
||||
"inviteLiveStream": "لمشاهدة البث الحي لهذا الإجتماع، اضط على هذا الرابط: {{url}}",
|
||||
"invitePhone": "للإنضمام من الهاتف، استعمل: {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "أتبحث عن رقم اتصال مختلف؟\nأنظر أرقام الوصول إلى هذا الإجتماع: {{url}}\n\n\nإن كنت أيضًا تتصل عبر غرفة اتصال (room phone)، انضم دون الاتصال بالصوت: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "To join using the SIP address, enter this: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} is inviting you to a meeting.",
|
||||
"inviteTextiOSJoinSilent": "If you are dialing-in through a room phone, use this link to join without connecting to audio: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Click the following link to join: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "To join via phone, use this number: {{number}},,{{conferenceID}}#. If you are looking for a different number, this is the full list: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "دُعيِت للإنضمام إلى اجتماع",
|
||||
"inviteURLFirstPartPersonal": "دعاك {{name}} لاجتماع.\n",
|
||||
"inviteURLSecondPart": "\nانضم للاجتماع:\n{{url}}\n",
|
||||
@@ -447,7 +362,6 @@
|
||||
"noRoom": "لم تُخصَّص غرفة للاتصال إليها",
|
||||
"numbers": "أرقام الاتصال",
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"sip": "SIP عنوان",
|
||||
"title": "شارك",
|
||||
"tooltip": "شارك رابط وتفاصيل الاتصال لهذا الاجتماع",
|
||||
"label": "تفاصيل الاجتماع"
|
||||
@@ -466,7 +380,6 @@
|
||||
"support": "الدعم",
|
||||
"supportMsg": "إن تكرَّر حصول هذا، تواصل مع"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logo, links to Homepage",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "ركز على الفيديو الخاص بك",
|
||||
"focusRemote": "ركز على فيديو مشارك آخر",
|
||||
@@ -479,10 +392,10 @@
|
||||
"showSpeakerStats": "اظهر حالة مكبر الصوت",
|
||||
"toggleChat": "افتح/أغلق المحادثة",
|
||||
"toggleFilmstrip": "أظهِر/اخفِ إطار الفيديو المُصغَّر",
|
||||
"toggleParticipantsPane": "إظهار أو إخفاء قائمة المشاركين",
|
||||
"toggleScreensharing": "بدِّل بين الكاميرا ومشاركة الشاشة",
|
||||
"toggleShortcuts": "أظهِر/اخفِ اختصارات لوحة المفاتيح",
|
||||
"videoMute": "ابدأ/أوقف كاميرتك"
|
||||
"videoMute": "ابدأ/أوقف كاميرتك",
|
||||
"videoQuality": "اضبط جودة المكالمة"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"limitNotificationDescriptionWeb": "نظرًا للضغط الكبير، سيقيَّد البث إلى {{limit}} د، ولكن إن أردت إجراء عملية بث غير محدودة، جرِّب <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
@@ -551,15 +464,13 @@
|
||||
"lockRoomPasswordUppercase": "كلمة المرور",
|
||||
"me": "أنا",
|
||||
"notify": {
|
||||
"allowAction": "Allow",
|
||||
"allowedUnmute": "You can unmute your microphone, start your camera or share your screen.",
|
||||
"connectedOneMember": "انضم {{name}} للاجتماع",
|
||||
"connectedThreePlusMembers": "انضم {{name}} وعدد {{count}} غيره إلى الاجتماع",
|
||||
"connectedTwoMembers": "انضم {{first}} و {{second}} إلى الاجتماع",
|
||||
"disconnected": "انقطع الاتصال",
|
||||
"focus": "التركيز على المؤتمر",
|
||||
"focusFail": "إنَّ {{component}} غير متاح. ستعاد المحاولة مرة أخرى خلال {{ms}} ثانية.",
|
||||
"hostAskedUnmute": "The moderator would like you to speak",
|
||||
"grantedTo": "مُنِحت صلاحية رئيس الجلسة إلى {{to}}!",
|
||||
"invitedOneMember": "دُعِي {{name}}",
|
||||
"invitedThreePlusMembers": "دُعِي {{name}} وعدد {{count}} آخرين",
|
||||
"invitedTwoMembers": "دُعِي {{first}} و {{second}}",
|
||||
@@ -573,10 +484,6 @@
|
||||
"passwordRemovedRemotely": "أزال أحد المشاركين {{participantDisplayName}}",
|
||||
"passwordSetRemotely": "ضبط أحد المشاركين $t(lockRoomPasswordUppercase)",
|
||||
"raisedHand": "يريد {{name}} التحدث",
|
||||
"screenShareNoAudio": " Share audio box was not checked in the window selection screen.",
|
||||
"screenShareNoAudioTitle": "Couldn't share system audio!",
|
||||
"screenShareNoAudio": " Share audio box was not checked in the window selection screen.",
|
||||
"screenShareNoAudioTitle": "Couldn't share system audio!",
|
||||
"somebody": "شخص ما",
|
||||
"startSilentTitle": "انضممت دون مخرج للصوت!",
|
||||
"startSilentDescription": "أنضم مجدَّدًا للاجتماع لتفعيل الصوت",
|
||||
@@ -589,76 +496,10 @@
|
||||
"OldElectronAPPTitle": "ثغرة أمنية!",
|
||||
"oldElectronClientDescription1": "يبدو أنَّك تستعمل إصدارًا قديمًا من جيتسي يحوي ثغرة أمنية. تأكد رجاءً من أنَّك حدَّثته إلى ",
|
||||
"oldElectronClientDescription2": "أحدث إصدار",
|
||||
"oldElectronClientDescription3": " الآن!",
|
||||
"moderationInEffectDescription": "Please raise hand if you want to speak.",
|
||||
"moderationInEffectCSDescription": "Please raise hand if you want to share your screen.",
|
||||
"moderationInEffectVideoDescription": "Please raise your hand if you want to start your camera.",
|
||||
"moderationInEffectTitle": "Your microphone is muted by the moderator",
|
||||
"moderationInEffectCSTitle": "Screen sharing is blocked by the moderator",
|
||||
"moderationInEffectVideoTitle": "Your camera is blocked by the moderator",
|
||||
"moderationRequestFromModerator": "The host would like you to unmute",
|
||||
"moderationRequestFromParticipant": "Wants to speak",
|
||||
"moderationStartedTitle": "Moderation started",
|
||||
"moderationStoppedTitle": "Moderation stopped",
|
||||
"moderationToggleDescription": "by {{participantDisplayName}}",
|
||||
"raiseHandAction": "Raise hand",
|
||||
"reactionSounds": "Disable sounds",
|
||||
"groupTitle": "Notifications"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Close",
|
||||
"header": "Participants",
|
||||
"headings": {
|
||||
"lobby": "Lobby ({{count}})",
|
||||
"participantsList": "المشاركون في الاجتماع({{count}})",
|
||||
"waitingLobby": "Waiting in lobby ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "السماح للحاضرين بـ:",
|
||||
"allowVideo": "السماح بالفيديو",
|
||||
"audioModeration": "إعادة صوت أنفسهم",
|
||||
"blockEveryoneMicCamera": "حظر ميكروفون وكاميرا الجميع",
|
||||
"invite": "قم بدعوة شخص ما",
|
||||
"askUnmute": "اطلب إعادة الصوت",
|
||||
"mute": "كتم الصوت",
|
||||
"muteAll": "كتم الكل",
|
||||
"muteEveryoneElse": "كتم صوت الآخرين",
|
||||
"stopEveryonesVideo": "أوقف فيديو الجميع",
|
||||
"stopVideo": "أوقف الفيديو",
|
||||
"unblockEveryoneMicCamera": "قم بإلغاء حظر ميكروفون وكاميرا الجميع",
|
||||
"videoModeration": "ابدأ الفيديو الخاص بهم"
|
||||
}
|
||||
"oldElectronClientDescription3": " الآن!"
|
||||
},
|
||||
"passwordSetRemotely": "ضبطها مشارك آخر",
|
||||
"passwordDigitsOnly": "حتى {{number}} عدد",
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Add option",
|
||||
"answerPlaceholder": "Option {{index}}",
|
||||
"create": "Create a poll",
|
||||
"cancel": "Cancel",
|
||||
"pollOption" : "Poll option {{index}}",
|
||||
"pollQuestion" : "Poll Question",
|
||||
"questionPlaceholder": "Ask a question",
|
||||
"removeOption": "Remove option",
|
||||
"send": "Send"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Skip",
|
||||
"submit": "Submit"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Vote",
|
||||
"changeVote": "Change vote",
|
||||
"empty": "There are no polls in the meeting yet. Start a poll here!",
|
||||
"hideDetailedResults": "Hide details",
|
||||
"showDetailedResults": "Show details"
|
||||
},
|
||||
"notification": {
|
||||
"title": "A new poll was added to this meeting",
|
||||
"description": "Open polls tab to vote"
|
||||
}
|
||||
},
|
||||
"poweredby": "مُشغَّل بوساطة",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "خطأ في الصوت أو الفيديو:",
|
||||
@@ -699,7 +540,6 @@
|
||||
"errorDialOutFailed": "فشلت عملية الاتصال، للأسف.",
|
||||
"errorDialOutStatus": "خطأ في معرفة حالة الاتصال",
|
||||
"errorMissingName": "أدخل اسمك للدخول للاجتماع",
|
||||
"errorNoPermissions": "You need to enable microphone and camera access",
|
||||
"errorStatusCode": "فشل الاتصال برمز خطأ: {{status}}",
|
||||
"errorValidation": "فشل التحقق من الرقم",
|
||||
"iWantToDialIn": "أريد الاتصال",
|
||||
@@ -713,7 +553,6 @@
|
||||
"premeeting": "ما قبل الاجتماع",
|
||||
"showScreen": "تفعيل واجهة ما قبل الاجتماع",
|
||||
"startWithPhone": "البدء مع جهاز الصوت من الجوال",
|
||||
"keyboardShortcuts" : "تفعيل اختصارات لوحة المفاتيح",
|
||||
"screenSharingError": "خطأ في مشاركة الشاشة:",
|
||||
"videoOnlyError": "خطأ في الفيديو:",
|
||||
"videoTrackError": "لم نتمكن من إنشاء ملف الفيديو",
|
||||
@@ -734,7 +573,6 @@
|
||||
"ringing": "يرن..."
|
||||
},
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "حدد اسمك المراد عرضه",
|
||||
"setEmailInput": "أدخل بريدك الإلكتروني",
|
||||
"setEmailLabel": "حدد الصورة الرمزية (gravatar) لبريدك الإلكتروني",
|
||||
@@ -749,15 +587,12 @@
|
||||
"beta": "تجريبي",
|
||||
"busy": "نعمل على تحرير موارد التسجيل. حاول مرة أخرى بعد بضعة دقائق.",
|
||||
"busyTitle": "جميع المسجلين مشغولون حاليًا",
|
||||
"copyLink": "Copy Link",
|
||||
"error": "فشل التسجيل. حاول مرة أخرى.",
|
||||
"errorFetchingLink": "Error fetching recording link.",
|
||||
"expandedOff": "أوقٍف التسجيل",
|
||||
"expandedOn": "يُسجَّل الاجتماع الآن",
|
||||
"expandedPending": "بدء التسجيل...",
|
||||
"failedToStart": "فشل بدء التسجيل",
|
||||
"fileSharingdescription": "شارك التسجيل مع المشاركين للاجتماع",
|
||||
"linkGenerated": "We have generated a link to your recording.",
|
||||
"live": "مباشر",
|
||||
"loggedIn": "مُسجَّل باسم {{userName}}",
|
||||
"off": "أوقِف التسجيل",
|
||||
@@ -767,13 +602,11 @@
|
||||
"pending": "التحضير لتسجيل الاجتماع...",
|
||||
"rec": "تسجيل",
|
||||
"serviceDescription": "ستحفظ خدمة التسجيل الفيديو المستجل",
|
||||
"serviceDescriptionCloud": "Cloud recording",
|
||||
"serviceName": "خدمة التسجيل",
|
||||
"signIn": "دخول",
|
||||
"signOut": "خروج",
|
||||
"unavailable": "عجبًا! {{serviceName}} غير متاحة حاليًا. نعمل على حل المشكلة. حاول مرة أخرى لاحقًا.",
|
||||
"unavailableTitle": "التسجيل غير متاح",
|
||||
"uploadToCloud": "Upload to the cloud"
|
||||
"unavailableTitle": "التسجيل غير متاح"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "اسحب للتحديث"
|
||||
@@ -792,13 +625,8 @@
|
||||
"signedIn": "يجري الوصول إلى أحداث الرزنامة حاليًا التي تخص {{email}}. اضغط على زر قطع الاتصال بالأسفل لإيقاف الوصول إلى أحداث المسجلة في الرزنامة.",
|
||||
"title": "الرزنامة"
|
||||
},
|
||||
"desktopShareFramerate": "معدل إطارات مشاركة سطح المكتب",
|
||||
"desktopShareWarning": "تحتاج إلى إعادة تشغيل مشاركة الشاشة حتى تدخل الإعدادات الجديدة حيز التنفيذ. تحتاج إلى إعادة تشغيل مشاركة الشاشة حتى يتم تفعيل الإعدادات الجديدة.",
|
||||
"desktopShareHighFpsWarning": "قد يؤثر معدل الإطارات الأعلى لمشاركة سطح المكتب على النطاق الترددي الخاص بك. تحتاج إلى إعادة تشغيل مشاركة الشاشة حتى تدخل الإعدادات الجديدة حيز التنفيذ.",
|
||||
"devices": "الأجهزة",
|
||||
"followMe": "كل من يتابعني",
|
||||
"framesPerSecond": "إطار في الثانية",
|
||||
"incomingMessage": "رسالة واردة",
|
||||
"language": "اللغة",
|
||||
"loggedIn": "الدخول باسم {{name}}",
|
||||
"microphones": "المجهار (المايكروفون)",
|
||||
@@ -806,19 +634,12 @@
|
||||
"more": "المزيد",
|
||||
"name": "الاسم",
|
||||
"noDevice": "لا يوجد",
|
||||
"participantJoined": "انضم مشارك",
|
||||
"participantLeft": "غادر المشارك",
|
||||
"playSounds": "تشغيل الصوت عند:",
|
||||
"reactions": "ردود فعل الاجتماع",
|
||||
"sameAsSystem": "مثل النظام ({{label}})",
|
||||
"selectAudioOutput": "خرج الصوت",
|
||||
"selectCamera": "الكاميرا",
|
||||
"selectMic": "المجهار (المايكروفون)",
|
||||
"sounds": "اصوات",
|
||||
"speakers": "المذياع (مكبر الصوت)",
|
||||
"startAudioMuted": "بدء الجميع مكتومي الصوت",
|
||||
"startVideoMuted": "بدء الجميع دون فيديو",
|
||||
"talkWhileMuted": "تحدث أثناء كتم الصوت",
|
||||
"title": "الإعدادات"
|
||||
},
|
||||
"settingsView": {
|
||||
@@ -849,7 +670,6 @@
|
||||
},
|
||||
"speaker": "المتحدث",
|
||||
"speakerStats": {
|
||||
"search": "Search",
|
||||
"hours": "{{count}}س",
|
||||
"minutes": "{{count}}د",
|
||||
"name": "الاسم",
|
||||
@@ -859,7 +679,6 @@
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"genericTitle": "The meeting needs to use your microphone and camera.",
|
||||
"title": "يريد {{app}} استعمال المجهار والكاميرا خاصَّتك."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
@@ -871,11 +690,9 @@
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "بدل الصوت فقط",
|
||||
"audioRoute": "اختر جهاز الصوت",
|
||||
"boo": "Boo",
|
||||
"callQuality": "اضبط دقة الفيديو",
|
||||
"cc": "اظهِر/اخفِ الترجمة",
|
||||
"chat": "اظهِر/اخفِ نافذة الدردشة",
|
||||
"clap": "Clap",
|
||||
"document": "اظهِر/اخفِ الملف المشارك",
|
||||
"download": "نزِّل التطبيق",
|
||||
"embedMeeting": "ضمِّن الاجتماع",
|
||||
@@ -886,8 +703,6 @@
|
||||
"help": "مساعدة",
|
||||
"invite": "ادعُ آخرين",
|
||||
"kick": "اطرد مشاركًا",
|
||||
"laugh": "Laugh",
|
||||
"like": "Thumbs Up",
|
||||
"lobbyButton": "فعِّل/عطِّل وضع غرفة الانتظار",
|
||||
"localRecording": "اظهِر/اخفِ التحكم بالتسجيل المحلي",
|
||||
"lockRoom": "اظهِر/اخفِ كلمة مرور الاجتماع",
|
||||
@@ -896,52 +711,34 @@
|
||||
"moreOptions": "اظهر المزيد من الخيارت",
|
||||
"mute": "اظهِر/اخفِ كتم الصوت",
|
||||
"muteEveryone": "كتم الجميع",
|
||||
"muteEveryoneElse": "كتم صوت الآخرين",
|
||||
"muteEveryonesVideo": "تعطيل كاميرا الجميع",
|
||||
"muteEveryoneElsesVideo": "تعطيل كاميرا الآخرين",
|
||||
"participants": "مشاركون",
|
||||
"pip": "استعمل/اخرج من وضع صورة-في-صورة",
|
||||
"privateMessage": "أرسل رسالة خاصة",
|
||||
"profile": "عدِّل ملفك الشخصي",
|
||||
"raiseHand": "اظهِر/اخفِ رفع اليد",
|
||||
"reactionsMenu": "فتح / إغلاق قائمة التفاعلات",
|
||||
"recording": "اظهِر/اخفِ التسجيل",
|
||||
"remoteMute": "اكتم مشاركًا",
|
||||
"remoteVideoMute": "تعطيل كاميرا المشارك",
|
||||
"security": "خيارات الحماية",
|
||||
"Settings": "اظهِر/اخفِ الإعدادات",
|
||||
"shareaudio": "مشاركة الصوت",
|
||||
"sharedvideo": "اظهِر/اخفِ مشاركة فيديو يوتيوب",
|
||||
"shareRoom": "ادعُ أحدًا",
|
||||
"shareYourScreen": "بدِّل وضع مشاركة الشاشة",
|
||||
"shortcuts": "اظهِر/اخفِ الاختصارات",
|
||||
"show": "اظهر على المنصة",
|
||||
"silence": "Silence",
|
||||
"speakerStats": "اظهِر/اخفِ حالة المتحدث",
|
||||
"surprised": "Surprised",
|
||||
"tileView": "اظهِر/اخفِ عرض العنوان",
|
||||
"toggleCamera": "بدِّل الكاميرا",
|
||||
"toggleFilmstrip": "بدِّل وضع الشريط السينمائي (filmstrip)",
|
||||
"videomute": "بدِّل وضع اخفاء الفيديو",
|
||||
"videoblur": "استعمل/اخرج من وضع تغبيش خلفية الفيديو",
|
||||
"selectBackground": "اختر الخلفية",
|
||||
"expand": "وسّع",
|
||||
"collapse": "قلّص"
|
||||
"videoblur": "استعمل/اخرج من وضع تغبيش خلفية الفيديو"
|
||||
},
|
||||
"addPeople": "اضف أحدًا إلى المكالمة",
|
||||
"audioSettings": "إعدادات الصوت",
|
||||
"videoSettings": "اعدادات الفيديو",
|
||||
"audioOnlyOff": "عطِّل وضع معدَّل نقل البيانات المنخفص",
|
||||
"audioOnlyOn": "فعِّل وضع نقل البيانات المنخفض",
|
||||
"audioRoute": "اختر جهاز الصوت",
|
||||
"authenticate": "اَجرِ عملية الاستيثاق",
|
||||
"boo": "Boo",
|
||||
"callQuality": "اضبط دقة الفيديو",
|
||||
"chat": "افتح / أغلق الشاشة",
|
||||
"clap": "Clap",
|
||||
"closeChat": "أغلق الدردشة",
|
||||
"closeReactionsMenu": "إغلاق قائمة ردود الفعل",
|
||||
"disableReactionSounds": "يمكنك تعطيل أصوات ردود الفعل لهذا الاجتماع",
|
||||
"documentClose": "أغلق الملف المشارك",
|
||||
"documentOpen": "افتح الملف المشارك",
|
||||
"download": "نزِّل التطبيق",
|
||||
@@ -955,8 +752,6 @@
|
||||
"hangup": "غادر",
|
||||
"help": "مساعدة",
|
||||
"invite": "ادعُ أحدًا",
|
||||
"laugh": "Laugh",
|
||||
"like": "Thumbs Up",
|
||||
"lobbyButtonDisable": "عطِّل وضع غرفة الانتظار",
|
||||
"lobbyButtonEnable": "فعِّل وضع غرفة الانتظار",
|
||||
"login": "ادخل",
|
||||
@@ -966,7 +761,6 @@
|
||||
"moreOptions": "المزيد من الخيارات",
|
||||
"mute": "اكتم / ألغ الكتم",
|
||||
"muteEveryone": "اكتم الجميع",
|
||||
"muteEveryonesVideo": "تعطيل كاميرا الجميع",
|
||||
"noAudioSignalTitle": "لا يصلنا شيئًا من المجهار (المايكروفون) الخاص بك",
|
||||
"noAudioSignalDesc": "إن لم تكتمه عمدًا من إعدادات النظام لديك أو من الجهاز نفسه، بدِّله إلى جهاز آخر.",
|
||||
"noAudioSignalDescSuggestion": "إن لم تكتمه عمدًا من إعدادات النظام لديك أو من الجهاز نفسه، بدِّله إلى الجهاز الموصى به.",
|
||||
@@ -975,39 +769,28 @@
|
||||
"noisyAudioInputTitle": "يبدو أنَّ المجهار (المايكروفون) لديك يصدر الكثير من الضجة!",
|
||||
"noisyAudioInputDesc": "يبدو أنَّ المجهار (المايكروفون) لديك يصدر الكثير من الضجة، اكتمه رجاءً أو استعمل مجهارًا آخر.",
|
||||
"openChat": "فتح الدرشة",
|
||||
"openReactionsMenu": "افتح قائمة التفاعلات",
|
||||
"participants": "مشاركون",
|
||||
"pip": "استعمل وضع صورة-في-صورة",
|
||||
"privateMessage": "أرسل رسالة خاصة",
|
||||
"profile": "عدِّل ملفك الشخصي",
|
||||
"raiseHand": "ارفع / اخفض يدك",
|
||||
"raiseYourHand": "ارفع يدك",
|
||||
"reactionBoo": "Send boo reaction",
|
||||
"reactionClap": "Send clap reaction",
|
||||
"reactionLaugh": "Send laugh reaction",
|
||||
"reactionLike": "Send thumbs up reaction",
|
||||
"reactionSilence": "Send silence reaction",
|
||||
"reactionSurprised": "Send surprised reaction",
|
||||
"security": "خيارات الحماية",
|
||||
"Settings": "الإعدادات",
|
||||
"shareaudio": "مشاركة الصوت",
|
||||
"sharedvideo": "شارك فيديو يوتيوب",
|
||||
"shareRoom": "ادعُ أحدًا",
|
||||
"shortcuts": "اعرض الاختصارات",
|
||||
"silence": "Silence",
|
||||
"speakerStats": "حالة المتحدث",
|
||||
"startScreenSharing": "ابدأ بمشاركة الشاشة",
|
||||
"startSubtitles": "أظهر الترجمة",
|
||||
"stopAudioSharing": "وقف مشاركة الصوت",
|
||||
"stopScreenSharing": "أوقف مشاركة الشاشة",
|
||||
"stopSubtitles": "أخفِ الترجمة",
|
||||
"stopSharedVideo": "أوقف فيديو يوتيوب المشارك",
|
||||
"surprised": "Surprised",
|
||||
"talkWhileMutedPopup": "أتحاول التحدث؟ المجهار مكتوم لديك.",
|
||||
"tileViewToggle": "بدِّل عنوان العرض",
|
||||
"toggleCamera": "بدِّل الكاميرا",
|
||||
"videomute": "استعمل / أوقف الكاميرا",
|
||||
"selectBackground": "اختر الخلفية"
|
||||
"startvideoblur": "غبِّش الخلفية",
|
||||
"stopvideoblur": "توقف عن تغبيش الخلفية"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "أظهر / أخف الترجمة",
|
||||
@@ -1033,7 +816,6 @@
|
||||
"react-nativeGrantPermissions": "اختر <b><i>السماح</i></b> عندما يطلب المتصفح الأذونات.",
|
||||
"safariGrantPermissions": "اختر <b><i>تمام</i></b> عندما يطلب المتصفح الأذونات."
|
||||
},
|
||||
"volumeSlider": "Volume slider",
|
||||
"videoSIPGW": {
|
||||
"busy": "نعمل على تحرير الموارد. حاول مرة أخرى لاحقًا بعد بضعة دقائق.",
|
||||
"busyTitle": "خدمة الغرفة مشغولة حاليًا",
|
||||
@@ -1056,29 +838,26 @@
|
||||
"ld": "دقة منخفضة",
|
||||
"ldTooltip": "عرض فيديو بدقة منخفضة",
|
||||
"lowDefinition": "دقة منخفضة",
|
||||
"onlyAudioAvailable": "الصوت متاح فقط",
|
||||
"onlyAudioSupported": "الصوت مدعوم فقط في هذا المتصفح",
|
||||
"sd": "دقة قياسية",
|
||||
"sdTooltip": "عرض فيديو بدقة قياسية",
|
||||
"standardDefinition": "دقة قياسية"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "معلومات الاتصال",
|
||||
"domute": "كتم",
|
||||
"domuteVideo": "تعطيل الكاميرا",
|
||||
"domuteOthers": "كتم الجميع",
|
||||
"domuteVideoOfOthers": "تعطيل الكاميرا للآخرين",
|
||||
"flip": "قلب",
|
||||
"grantModerator": "امنح صلاحيات رئيس الجلسة",
|
||||
"kick": "طرد خارجًا",
|
||||
"moderator": "رئيس الجلسة",
|
||||
"mute": "المشارك مكتوم الصوت",
|
||||
"muted": "مكتوم",
|
||||
"videoMuted": "الكاميرا معطلة",
|
||||
"remoteControl": "بدء / إيقاف التحكم البعيد",
|
||||
"show": "أظهر على المنصة",
|
||||
"videomute": "أوقف المشارك الكاميرا"
|
||||
},
|
||||
"welcomepage": {
|
||||
"addMeetingName": "Add Meeting name",
|
||||
"accessibilityLabel": {
|
||||
"join": "انقر للمشاركة",
|
||||
"roomname": "أدخل اسم الغرفة"
|
||||
@@ -1095,14 +874,8 @@
|
||||
"getHelp": "أريد مساعدة",
|
||||
"go": "ابدأ",
|
||||
"goSmall": "ابدأ",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"headerSubtitle": "Secure and high quality meetings",
|
||||
"info": "معلومات",
|
||||
"join": "أنشئ / انضم",
|
||||
"jitsiOnMobile": "Jitsi on mobile – download our apps and start a meeting from anywhere",
|
||||
"mobileDownLoadLinkIos": "Download mobile app for iOS",
|
||||
"mobileDownLoadLinkAndroid": "Download mobile app for Android",
|
||||
"mobileDownLoadLinkFDroid": "Download mobile app for F-Droid",
|
||||
"moderatedMessage": "أو a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">احجز رابط لاجتماع</a> إن كنت رئيس الجلسة الوحيد فقط.",
|
||||
"privacy": "الخصوصية",
|
||||
"recentList": "الجديد",
|
||||
@@ -1113,17 +886,8 @@
|
||||
"roomname": "أدخل اسم الغرفة",
|
||||
"roomnameHint": "أدخل اسم أو رابط الغرفة التي تريد الانضمام إليها. يمكنك إنشاء اسم جديد لترسله إلى من تريد أن تجتمع معهم.",
|
||||
"sendFeedback": "أبدِ رأيك",
|
||||
"startMeeting": "Start meeting",
|
||||
"terms": "الشروط",
|
||||
"title": "منصة عقد مؤتمرات واجتماعات آمنة وكاملة المزايا ومجانية بالمطلق",
|
||||
"logo":{
|
||||
"calendar":"Calendar logo",
|
||||
"microsoftLogo":"Microsoft logo",
|
||||
"logoDeepLinking":"Jitsi meet logo",
|
||||
"desktopPreviewThumbnail":"Desktop preview thumbnail",
|
||||
"googleLogo":"Google Logo",
|
||||
"policyLogo":"Policy logo"
|
||||
}
|
||||
"title": "منصة عقد مؤتمرات واجتماعات آمنة وكاملة المزايا ومجانية بالمطلق"
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "ادعُ آخرين",
|
||||
@@ -1133,8 +897,6 @@
|
||||
"header": "مركز المساعدة"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Admit",
|
||||
"admitAll": "Admit all",
|
||||
"knockingParticipantList": "تنبيه قائمة المشاركين",
|
||||
"allow": "اسمح",
|
||||
"backToKnockModeButton": "لا يوجد كلمة مرور، اطلب الإذن بالدخول بدلًا من ذلك.",
|
||||
@@ -1147,7 +909,6 @@
|
||||
"enableDialogText": "يحمي وضع الانتظار غرفة الاجتماع عبر منح رئيس الجلسة إمكانية الموافقة على انضمام المشاركين.",
|
||||
"enterPasswordButton": "أدخل كلمة المرور لهذا الاجتماع",
|
||||
"enterPasswordTitle": "أدخل كلمة المرور للدخول للاجتماع",
|
||||
"errorMissingPassword": "Please enter the meeting password",
|
||||
"invalidPassword": "كلمة مرور غير صحيحة",
|
||||
"joiningMessage": "ستتمكن من الانضمام للاجتماع بعد الموافقة على طلبك",
|
||||
"joinWithPasswordMessage": "الرجاء الانتظار أثناء محاولة الدخول دون كلمة مرور...",
|
||||
@@ -1166,7 +927,6 @@
|
||||
"passwordField": "أدخل كلمة الدخول إلى الاجتماع",
|
||||
"passwordJoinButton": "انضم",
|
||||
"reject": "رفض",
|
||||
"rejectAll": "Reject all",
|
||||
"toggleLabel": "فعِّل غرفة الانتظار"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"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",
|
||||
"contacts": "contactos",
|
||||
"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",
|
||||
@@ -17,14 +16,18 @@
|
||||
"inviteMoreMailSubject": "Unirse a la reunión {{appName}}",
|
||||
"inviteMorePrompt": "Invitar a más personas",
|
||||
"linkCopied": "Link copiado al portapapeles",
|
||||
"loading": "Buscando por contacto y número telefónico",
|
||||
"loadingNumber": "Validando el número telefónico",
|
||||
"loadingPeople": "Buscando contactos a invitar",
|
||||
"noResults": "No se encontraron coincidencias",
|
||||
"noValidNumbers": "Por favor ingrese un número de teléfono",
|
||||
"outlookEmail": "Correo de Outlook",
|
||||
"phoneNumbers": "números de teléfono",
|
||||
"searching": "Búscando...",
|
||||
"searchNumbers": "Agregar números telefónicos",
|
||||
"searchPeople": "Buscar personas",
|
||||
"searchPeopleAndNumbers": "Buscar personas o añadir sus números de teléfono",
|
||||
"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",
|
||||
"sipAddresses": "direcciones sip",
|
||||
"telephone": "Teléfono: {{number}}",
|
||||
"title": "Invitar a otras personas a esta reunión",
|
||||
"yahooEmail": "Correo de Yahoo"
|
||||
@@ -58,7 +61,6 @@
|
||||
"today": "Hoy"
|
||||
},
|
||||
"chat": {
|
||||
"enter": "Entrar en la sala",
|
||||
"error": "Error: su mensaje no se envío. Motivo: {{error}}",
|
||||
"fieldPlaceHolder": "Escriba su mensaje aquí",
|
||||
"messagebox": "Escriba un mensaje",
|
||||
@@ -70,26 +72,17 @@
|
||||
"titleWithPolls": "Introduce un apodo para usar el chat"
|
||||
},
|
||||
"privateNotice": "Mensaje privado para {{recipient}}",
|
||||
"message": "Mensaje",
|
||||
"messageAccessibleTitle": "{{user}} dice:",
|
||||
"messageAccessibleTitleMe": "yo digo:",
|
||||
"smileysPanel": "Panel de Emojis",
|
||||
"tabs": {
|
||||
"chat": "Chat",
|
||||
"polls": "Encuestas"
|
||||
},
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "tú"
|
||||
"you": "usted"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Instalar la extensión para Google Calendar y la integración con Office 365",
|
||||
"buttonText": "Instalar extensión de Chrome",
|
||||
"dontShowAgain": "No mostrar nuevamente",
|
||||
"close": "Cerrar"
|
||||
"dontShowAgain": "No mostrar nuevamente"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Conectándose a la reunión…"
|
||||
"joiningRoom": "Conectándose a su reunión…"
|
||||
},
|
||||
"connection": {
|
||||
"ATTACHED": "Adjunto",
|
||||
@@ -101,6 +94,7 @@
|
||||
"DISCONNECTED": "Desconectado",
|
||||
"DISCONNECTING": "Desconectando",
|
||||
"ERROR": "Error",
|
||||
"RECONNECTING": "Ocurrió un problema en la red. Reconectando...",
|
||||
"FETCH_SESSION_ID": "Obteniendo session-ID…",
|
||||
"GET_SESSION_ID_ERROR": "Obtener session-id error: {{code}}",
|
||||
"GOT_SESSION_ID": "Obteniendo session-ID… Listo",
|
||||
@@ -124,6 +118,7 @@
|
||||
"maxEnabledResolution": "enviar max",
|
||||
"more": "Mostrar más",
|
||||
"packetloss": "Pérdida de paquetes:",
|
||||
"participant_id": "ID participante:",
|
||||
"quality": {
|
||||
"good": "Buena",
|
||||
"inactive": "Inactivo",
|
||||
@@ -135,9 +130,8 @@
|
||||
"remoteaddress_plural": "Direcciones remotas:",
|
||||
"remoteport": "Puerto remoto:",
|
||||
"remoteport_plural": "Puertos remotos:",
|
||||
"resolution": "Resolución:",
|
||||
"savelogs": "Guardar logs",
|
||||
"participant_id": "ID participante:",
|
||||
"resolution": "Resolución:",
|
||||
"status": "Calidad:",
|
||||
"transport": "Transporte:",
|
||||
"transport_plural": "Transportes:",
|
||||
@@ -153,10 +147,11 @@
|
||||
"description": "¿No pasó nada? Hemos intentado iniciar la reunión en la aplicación de escritorio {{app}}. Intenta de nuevo o inicia en la aplicación web {{app}}.",
|
||||
"descriptionWithoutWeb": "¿No pasó nada? Intentamos iniciar su reunión en la aplicación de escritorio {{app}}.",
|
||||
"downloadApp": "Descargar la app",
|
||||
"launchWebButton": "Iniciar en el navegador",
|
||||
"ifDoNotHaveApp": "Si aún no tienes la app:",
|
||||
"ifHaveApp": "Si ya tienes la app:",
|
||||
"joinInApp": "Unirse a la reunion usando la app",
|
||||
"launchWebButton": "Iniciar en el navegador",
|
||||
"openApp": "Continuar a la aplicación",
|
||||
"title": "Iniciando la reunión en {{app}}…",
|
||||
"tryAgainButton": "Intentar de nuevo en el escritorio"
|
||||
},
|
||||
@@ -183,14 +178,12 @@
|
||||
"alreadySharedVideoMsg": "Otro participante ya está compartiendo un vídeo. Esta conferencia sólo permite compartir un vídeo a la vez.",
|
||||
"alreadySharedVideoTitle": "Solo se permite un vídeo compartido a la vez",
|
||||
"applicationWindow": "Ventana de aplicación",
|
||||
"authenticationRequired": "Se requiere autenticación",
|
||||
"Back": "Anterior",
|
||||
"cameraConstraintFailedError": "Su cámara no satisface algunos de los requerimientos.",
|
||||
"cameraNotFoundError": "No se encontró la cámara.",
|
||||
"cameraNotSendingData": "No podemos acceder a la cámara. Asegúrate que no haya otra aplicación usándola, selecciona otro dispositivo del menú de configuración o intenta volver a cargar la aplicación.",
|
||||
"cameraNotSendingDataTitle": "No es posible acceder a la cámara",
|
||||
"cameraPermissionDeniedError": "No has otorgado permiso para usar la cámara. Puedes unirte a la conferencia de todos modos, pero los demás asistentes no te podrán ver. Usa el botón de la cámara en la barra de direcciones para solucionar esto.",
|
||||
"cameraTimeoutError": "No se ha podido iniciar la fuente de vídeo. Se ha agotado el tiempo de espera.",
|
||||
"cameraUnknownError": "No se puede usar la cámara por un motivo desconocido.",
|
||||
"cameraUnsupportedResolutionError": "La cámara no admite la resolución de vídeo requerida.",
|
||||
"Cancel": "Cancelar",
|
||||
@@ -205,27 +198,29 @@
|
||||
"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}}",
|
||||
"connecting": "Conectando",
|
||||
"contactSupport": "Contacta al soporte técnico",
|
||||
"copied": "Copiado",
|
||||
"contactSupport": "Contacta al soporte técnico",
|
||||
"copy": "Copiar",
|
||||
"dismiss": "Descartar",
|
||||
"displayNameRequired": "¡Hola! ¿Cuál es tu nombre?",
|
||||
"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.",
|
||||
"e2eeLabel": "Habilitar cifrado Extremo-a-Extremo",
|
||||
"e2eeDisabledDueToMaxModeDescription": "No se puede activar el cifrado de extremo a extremo debido al gran número de participantes en la conferencia.",
|
||||
"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.",
|
||||
"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.",
|
||||
"enterDisplayName": "Por favor ingresa tu nombre aquí",
|
||||
"embedMeeting": "Incrustar reunión",
|
||||
"enterDisplayNameToJoin": "Por favor ingresa tu nombre para unirte",
|
||||
"error": "Error",
|
||||
"externalInstallationMsg": "Necesita instalar nuestra extensión para compartir pantalla.",
|
||||
"externalInstallationTitle": "Extensión requerida",
|
||||
"goToStore": "Ir a la tienda web",
|
||||
"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?",
|
||||
"grantModeratorTitle": "Convertir en moderador",
|
||||
"hideShareAudioHelper": "No volver a mostrar este diálogo",
|
||||
"IamHost": "Soy el anfitrión",
|
||||
"incorrectRoomLockPassword": "Contraseña incorrecta",
|
||||
"incorrectPassword": "Nombre de usuario o contraseña incorrecta",
|
||||
"inlineInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.",
|
||||
"inlineInstallExtension": "Instalar ahora",
|
||||
"internalError": "¡Oops! Algo salió mal. El siguiente error ocurrió: {{error}}",
|
||||
"internalErrorTitle": "Error interno",
|
||||
"kickMessage": "Puede ponerse en contacto con {{participantDisplayName}} para obtener más detalles.",
|
||||
@@ -233,14 +228,14 @@
|
||||
"kickParticipantDialog": "¿Seguro que quiere expulsar a este participante?",
|
||||
"kickParticipantTitle": "¿Expulsar a este participante?",
|
||||
"kickTitle": "¡Ay! {{participantDisplayName}} te expulsó de la reunión",
|
||||
"liveStreaming": "Transmisión en vivo",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "No es posible mientras la grabación este activa",
|
||||
"liveStreaming": "Transmisión en vivo",
|
||||
"liveStreamingDisabledForGuestTooltip": "Los invitados no pueden iniciar la transmisión en vivo.",
|
||||
"liveStreamingDisabledTooltip": "Las trasmisiones están deshabilitadas.",
|
||||
"lockMessage": "No se pudo bloquear la conferencia.",
|
||||
"lockRoom": "Agregar $t(lockRoomPasswordUppercase) a la reunión",
|
||||
"lockTitle": "El bloqueo falló",
|
||||
"logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?",
|
||||
"login": "Iniciar sesión",
|
||||
"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.",
|
||||
"maxUsersLimitReachedTitle": "La reunión está llena.",
|
||||
@@ -249,34 +244,18 @@
|
||||
"micNotSendingData": "Vaya a la configuración de su computadora para activar el micrófono y ajustar su nivel",
|
||||
"micNotSendingDataTitle": "Su micrófono está silenciado en la configuración de su sistema",
|
||||
"micPermissionDeniedError": "No ha otorgado permisos para usar su micrófono. Puede unirse a la conferencia, pero no lo podrán escuchar. Utilice el botón en la barra de dirección para solucionar esto.",
|
||||
"micTimeoutError": "No se ha podido iniciar la fuente de audio. Se ha agotado el tiempo de espera.",
|
||||
"micUnknownError": "No se puede usar el micrófono por motivos desconocidos.",
|
||||
"moderationAudioLabel": "Permitir a los asistentes activar su audio.",
|
||||
"moderationVideoLabel": "Permitir a los asistentes activar su video.",
|
||||
"muteEveryoneElseDialog": "Una vez silenciados, no podrás quitarles el modo silencio, pero ellos podrán hacerlo en cualquier momento.",
|
||||
"muteEveryoneElseTitle": "¿Silenciar a todos excepto a {{whom}}?",
|
||||
"muteEveryoneDialog": "¿Estás seguro que quieres silenciar a todos? No podrás quitarles el silencio, pero ellos pueden quitárselo en cualquier momento.",
|
||||
"muteEveryoneDialogModerationOn": "Los participantes pueden enviar una solicitud de intervención en cualquier momento.",
|
||||
"muteEveryoneTitle": "¿Silenciar a todos?",
|
||||
"muteEveryoneElsesVideoDialog": "Una vez desactivada la cámara, no podrás volver a activarla, pero pueden volver a activarla en cualquier momento.",
|
||||
"muteEveryoneElsesVideoTitle": "¿Detener el vídeo de todos, excepto el de {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "Los participantes pueden encender su vídeo en cualquier momento.",
|
||||
"muteEveryonesVideoDialogModerationOn": "Los participantes pueden enviar una solicitud para encender su vídeo en cualquier momento.",
|
||||
"muteEveryonesVideoDialogOk": "Desactivar",
|
||||
"muteEveryonesVideoTitle": "¿Detener el vídeo de todos?",
|
||||
"muteEveryoneSelf": "ti mismo",
|
||||
"muteEveryoneStartMuted": "Todos inician silenciados desde ahora",
|
||||
"muteParticipantBody": "No podrás quitarles el modo en silencio, pero ellos pueden quitárselo en cualquier momento.",
|
||||
"muteParticipantButton": "Silenciar",
|
||||
"muteParticipantDialog": "¿Seguro que quieres silenciar a este participante? No podrás revertir esta acción, pero el participante podrá hacerlo en cualquier momento",
|
||||
"muteParticipantsVideoDialog": "¿Estás seguro de que quieres apagar la cámara de este participante? No podrás volver a encender la cámara, pero ellos pueden volver a encenderla en cualquier momento.",
|
||||
"muteParticipantTitle": "¿Silenciar a este participante?",
|
||||
"muteParticipantsVideoButton": "Detener video",
|
||||
"muteParticipantsVideoTitle": "¿Desactivar la cámara de este participante?",
|
||||
"muteParticipantsVideoBody": "No podrás volver a encender la cámara, pero ellos pueden volver a encenderla en cualquier momento.",
|
||||
"noDropboxToken": "No hay un token válido de Dropbox",
|
||||
"Ok": "Aceptar",
|
||||
"password": "Contraseña",
|
||||
"passwordLabel": "$t(lockRoomPasswordUppercase)",
|
||||
"passwordNotSupported": "No se soporta $t(lockRoomPassword) en la reunión",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) no es compatible",
|
||||
@@ -289,6 +268,7 @@
|
||||
"readMore": "mas",
|
||||
"recording": "Grabando",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "No es posible mientras la transmisión en vivo este activa",
|
||||
"recordingDisabledForGuestTooltip": "Los invitados no pueden iniciar grabaciones.",
|
||||
"recordingDisabledTooltip": "Inicio de grabación desactivado.",
|
||||
"rejoinNow": "Reunirse ahora",
|
||||
"remoteControlAllowedMessage": "¡{{user}} ha aceptado tu solicitud de control remoto!",
|
||||
@@ -308,6 +288,10 @@
|
||||
"screenSharingAudio": "Compartir audio",
|
||||
"screenSharingFailed": "¡Oops! ¡Algo salio mal, no se pudo iniciar la compartición de su pantalla!",
|
||||
"screenSharingFailedTitle": "¡Fallo al compartir su pantalla!",
|
||||
"screenSharingFailedToInstall": "¡Uy! La extensión de uso compartido de pantalla no se pudo instalar.",
|
||||
"screenSharingFailedToInstallTitle": "La extensión de uso compartido de pantalla no se pudo instalar",
|
||||
"screenSharingFirefoxPermissionDeniedError": "Algo salió mal al compartir pantalla. Asegúrate de habernos dado permiso para hacerlo.",
|
||||
"screenSharingFirefoxPermissionDeniedTitle": "¡Uy! No pudimos iniciar el uso compartido de la 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?",
|
||||
"sendPrivateMessageCancel": "Enviar al grupo",
|
||||
@@ -315,27 +299,15 @@
|
||||
"sendPrivateMessageTitle": "¿Enviar en privado?",
|
||||
"serviceUnavailable": "Servicio no disponible",
|
||||
"sessTerminated": "Llamada terminada",
|
||||
"sessionRestarted": "Llamada reiniciada por un problema de conexión.",
|
||||
"Share": "Compartir",
|
||||
"shareAudio": "Continuar",
|
||||
"shareAudioTitle": "Cómo compartir el audio",
|
||||
"shareAudioWarningTitle": "Hay que dejar de compartir la pantalla antes de compartir el audio",
|
||||
"shareAudioWarningH1": "Si quieres compartir sólo el audio:",
|
||||
"shareAudioWarningD1": "debes dejar de compartir la pantalla antes de compartir el audio.",
|
||||
"shareAudioWarningD2": "Tienes que reiniciar tu pantalla compartida y marcar la opción \"compartir audio\".",
|
||||
"shareMediaWarningGenericH2": "Si quieres compartir tu pantalla y audio",
|
||||
"shareVideoLinkError": "Proporciona un enlace de YouTube correcto.",
|
||||
"shareVideoTitle": "Compartir un vídeo",
|
||||
"shareYourScreen": "Compartir pantalla",
|
||||
"shareYourScreenDisabled": "Se desactivó la opción para compartir pantalla.",
|
||||
"shareYourScreenDisabledForGuest": "Los invitados no pueden compartir la pantalla.",
|
||||
"startLiveStreaming": "Iniciar transmisión en vivo",
|
||||
"startRecording": "Iniciar grabación",
|
||||
"startRemoteControlErrorMessage": "Se produjo un error al intentar iniciar la sesión de control remoto.",
|
||||
"shareScreenWarningTitle": "Tienes que dejar de compartir el audio antes de compartir la pantalla",
|
||||
"shareScreenWarningH1": "Si quieres compartir sólo tu pantalla:",
|
||||
"shareScreenWarningD1": "debes dejar de compartir el audio antes de compartir la pantalla.",
|
||||
"shareScreenWarningD2": "tienes que dejar de compartir el audio, empezar a compartir la pantalla y marcar la opción \"compartir el audio\".",
|
||||
"sharedVideoLinkPlaceholder": "Enlace de YouTube o enlace de vídeo directo",
|
||||
"stopLiveStreaming": "Detener transmisión en vivo",
|
||||
"stopRecording": "Detener grabación",
|
||||
"stopRecordingWarning": "¿Estás seguro de que deseas detener la grabación?",
|
||||
@@ -348,20 +320,12 @@
|
||||
"tokenAuthFailedTitle": "Error de autenticación",
|
||||
"transcribing": "Transcribiendo",
|
||||
"unlockRoom": "Quitar la $t(lockRoomPassword) de reunión",
|
||||
"user": "Usuario",
|
||||
"userIdentifier": "Identificador de usuario",
|
||||
"userPassword": "contraseña del usuario",
|
||||
"videoLink": "Enlace de vídeo",
|
||||
"viewUpgradeOptions": "Ver opciones de mejora",
|
||||
"viewUpgradeOptionsContent": "Para obtener acceso ilimitado a las funciones premium, como la grabación, las transcripciones, el streaming RTMP y otras, tendrás que actualizar tu plan.",
|
||||
"viewUpgradeOptionsTitle": "¡Has descubierto una característica premium!",
|
||||
"WaitForHostMsg": "La conferencia <b>{{room}}</b> aún no ha comenzado. Si eres el anfitrión, inicia sesión. De lo contrario, espera a que llegue el anfitrión.",
|
||||
"WaitForHostMsgWOk": "La conferencia <b>{{room}}</b> aún no ha comenzado. Si eres el anfitrión, presiona Aceptar para autenticar. De lo contrario, espera a que llegue el anfitrión.",
|
||||
"WaitingForHostTitle": "Esperando al anfitrión...",
|
||||
"WaitingForHost": "Esperando al anfitrión…",
|
||||
"Yes": "Sí",
|
||||
"yourEntireScreen": "Toda la pantalla",
|
||||
"remoteUserControls": "El control remoto de {{username}}",
|
||||
"localUserControls": "Controles de usuario locales"
|
||||
"yourEntireScreen": "Toda la pantalla"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "está {{status}}"
|
||||
@@ -373,30 +337,10 @@
|
||||
"labelToolTip": "La comunicación de audio y vídeo en esta reunión está cifrada de extremo a extremo"
|
||||
},
|
||||
"embedMeeting": {
|
||||
"title": "Insertar esta reunión"
|
||||
"title": "Insertar reunión en sitio web"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Fondos virtuales",
|
||||
"blur": "Desenfoque",
|
||||
"slightBlur": "Desenfoque Ligero",
|
||||
"removeBackground": "Eliminar el fondo",
|
||||
"addBackground": "Añadir fondo",
|
||||
"pleaseWait": "Por favor, espera...",
|
||||
"none": "Ninguno",
|
||||
"uploadedImage": "Imagen subida {{index}}",
|
||||
"deleteImage": "Borrar imagen",
|
||||
"image1": "Playa",
|
||||
"image2": "Pared neutra blanca",
|
||||
"image3": "Habitación blanca y vacía",
|
||||
"image4": "Lámpara de pie negra",
|
||||
"image5": "Montaña",
|
||||
"image6": "Bosque",
|
||||
"image7": "Amanecer",
|
||||
"desktopShareError": "No se ha podido crear el escritorio compartido",
|
||||
"desktopShare": "Compartir el escritorio",
|
||||
"webAssemblyWarning": "No se admite WebAssembly",
|
||||
"backgroundEffectError": "No se ha podido aplicar el efecto de fondo."
|
||||
"embedMeeting": {
|
||||
"title": "Insertar esta reunión"
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Promedio",
|
||||
@@ -405,8 +349,7 @@
|
||||
"good": "Buena",
|
||||
"rateExperience": "¿Cómo estuvo tu experiencia en la reunión?",
|
||||
"veryBad": "Muy mala",
|
||||
"veryGood": "Muy buena",
|
||||
"star": "Estrella"
|
||||
"veryGood": "Muy buena"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Contestar",
|
||||
@@ -423,7 +366,6 @@
|
||||
"country": "País",
|
||||
"dialANumber": "Para unirte a la reunión, marca uno de estos números y, luego introduce el PIN.",
|
||||
"dialInConferenceID": "PIN:",
|
||||
"copyNumber": "Copiar número",
|
||||
"dialInNotSupported": "Lo sentimos, actualmente no se admite el marcado telefónico a la reunión.",
|
||||
"dialInNumber": "Marcar:",
|
||||
"dialInSummaryError": "Se ha producido un error al capturar la información de marcación. Vuelva a intentarlo más tarde",
|
||||
@@ -432,11 +374,6 @@
|
||||
"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}}",
|
||||
"inviteSipEndpoint": "Para unirse utilizando la dirección SIP, introduzca esto: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} te invita a una reunión.",
|
||||
"inviteTextiOSJoinSilent": "Si marca a través de un teléfono de sala, utilice este enlace para unirse sin conectarse al audio: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Haz clic en el siguiente enlace para unirte: {{inviteUrl}}.",
|
||||
"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",
|
||||
@@ -447,7 +384,6 @@
|
||||
"noRoom": "No se especificó la sala a marcar.",
|
||||
"numbers": "Números para entrar por llamada telefónica:",
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"sip": "Dirección SIP",
|
||||
"title": "Compartir",
|
||||
"tooltip": "Compartir el enlace y acceso telefónico para esta reunión",
|
||||
"label": "Información de la reunión"
|
||||
@@ -466,7 +402,6 @@
|
||||
"support": "Soporte",
|
||||
"supportMsg": "Si esto sigue ocurriendo, contacta a"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logotipo, enlaces a la página web",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Ver tu cámara",
|
||||
"focusRemote": "Ver la cámara de otras personas",
|
||||
@@ -479,14 +414,12 @@
|
||||
"showSpeakerStats": "Mostrar estadísticas de los hablantes",
|
||||
"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": "Prender o apagar la cámara",
|
||||
"videoQuality": "Ajustar la calidad de la llamada"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"limitNotificationDescriptionWeb": "Debido a la alta demanda su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en {{app}}.",
|
||||
"busy": "Nuestros servidores andan un poco ocupados. Vuelve a intentarlo en unos minutos.",
|
||||
"busyTitle": "Todos los transmisores están ocupados",
|
||||
"changeSignIn": "Cambiar de cuenta.",
|
||||
@@ -498,6 +431,9 @@
|
||||
"errorLiveStreamNotEnabled": "La transmisión en vivo no está activada en {{email}}. Por favor, activa la transmisión en vivo o inicia sesión en una cuenta con la transmisión en vivo activada.",
|
||||
"expandedOff": "La transmisión en vivo se ha detenido",
|
||||
"expandedOn": "La reunión se está transmitiendo a YouTube.",
|
||||
"googlePrivacyPolicy": "Política de Privacidad de Google",
|
||||
"limitNotificationDescriptionWeb": "Debido a la alta demanda su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en {{app}}.",
|
||||
"expandedPending": "La transmisión en vivo se está iniciando…",
|
||||
"failedToStart": "La transmisión en vivo no se pudo iniciar",
|
||||
"getStreamKeyManually": "No pudimos encontrar tu clave de transmisión. Por favor, obtenla de la página de YouTube y pégala.",
|
||||
@@ -515,8 +451,7 @@
|
||||
"start": "Iniciar una transmisión en vivo",
|
||||
"streamIdHelp": "¿Qué es esto?",
|
||||
"unavailableTitle": "Transmisión en vivo no disponible",
|
||||
"youtubeTerms": "Términos de servicios de YouTube",
|
||||
"googlePrivacyPolicy": "Política de Privacidad de Google"
|
||||
"youtubeTerms": "Términos de servicios de YouTube"
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -551,15 +486,13 @@
|
||||
"lockRoomPasswordUppercase": "Contraseña",
|
||||
"me": "yo",
|
||||
"notify": {
|
||||
"allowAction": "Permitir",
|
||||
"allowedUnmute": "Puedes anular el silencio del micrófono, iniciar la cámara o compartir la pantalla.",
|
||||
"connectedOneMember": "{{name}} se unió a la reunión",
|
||||
"connectedThreePlusMembers": "{{name}} y {{count}} más se unieron a la reunión",
|
||||
"connectedTwoMembers": "{{first}} y {{second}} se unieron a la reunión",
|
||||
"disconnected": "desconectado",
|
||||
"focus": "Enfocar conferencia",
|
||||
"focusFail": "{{component}} no disponible. Vuelve a intentar en {{ms}} segundos",
|
||||
"hostAskedUnmute": "El moderador quiere que hables",
|
||||
"grantedTo": "Se otorgaron derechos de moderador a {{to}}.",
|
||||
"invitedOneMember": "{{name}} ha sido invitado",
|
||||
"invitedThreePlusMembers": "{{name}} y {{count}} más han sido invitados",
|
||||
"invitedTwoMembers": "{{first}} y {{second}} han sido invitados",
|
||||
@@ -570,13 +503,9 @@
|
||||
"mutedTitle": "¡Estás silenciado!",
|
||||
"mutedRemotelyTitle": "¡{{Nombre del participante}} te ha silenciado!",
|
||||
"mutedRemotelyDescription": "Siempre puedes reactivar tu micrófono cuando estés listo para hablar. Vuélvelo a apagar cuando termines de hablar para no hacer ruido.",
|
||||
"videoMutedRemotelyTitle": "Su vídeo ha sido desactivado por {{moderator}}",
|
||||
"videoMutedRemotelyDescription": "Siempre puedes volver a encenderlo.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) eliminada por otro participante",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) agregada por otro participante",
|
||||
"raisedHand": "{{name}} quisiera hablar.",
|
||||
"screenShareNoAudio": "La casilla Compartir audio no estaba marcada en la pantalla de selección de ventanas.",
|
||||
"screenShareNoAudioTitle": "No se pudo compartir el audio del sistema.",
|
||||
"somebody": "Alguien",
|
||||
"startSilentTitle": "¡Te uniste sin audio!",
|
||||
"startSilentDescription": "Vuelve a ingresar para activar el audio",
|
||||
@@ -589,87 +518,13 @@
|
||||
"OldElectronAPPTitle": "¡Aplicación obsoleta e insegura!",
|
||||
"oldElectronClientDescription1": "Estás usando una versión vieja de la aplicación de Jitsi Meet que tiene problemas de seguridad. ¡Por favor, actualiza a la ",
|
||||
"oldElectronClientDescription2": "versión más reciente",
|
||||
"oldElectronClientDescription3": " YA!",
|
||||
"moderationInEffectDescription": "Por favor, levanten la mano si quieren hablar.",
|
||||
"moderationInEffectCSDescription": "Por favor, levante la mano si quiere compartir su pantalla.",
|
||||
"moderationInEffectVideoDescription": "Por favor, levanten la mano si quieren encender su cámara.",
|
||||
"moderationInEffectTitle": "Su micrófono está silenciado por el moderador",
|
||||
"moderationInEffectCSTitle": "La pantalla compartida está bloqueada por el moderador",
|
||||
"moderationInEffectVideoTitle": "Su cámara está bloqueada por el moderador",
|
||||
"moderationRequestFromModerator": "El anfitrión desea que se desactive el silencio",
|
||||
"moderationRequestFromParticipant": "Quiere hablar",
|
||||
"moderationStartedTitle": "Comienzo de la moderación",
|
||||
"moderationStoppedTitle": "La moderación se detuvo",
|
||||
"moderationToggleDescription": "por {{participantDisplayName}}",
|
||||
"raiseHandAction": "Levantar la mano",
|
||||
"reactionSounds": "Desactivar sonidos",
|
||||
"groupTitle": "Notificaciones"
|
||||
"oldElectronClientDescription3": " YA!"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Cerrar",
|
||||
"header": "Participantes",
|
||||
"headings": {
|
||||
"lobby": "Vestíbulo ({{count}})",
|
||||
"participantsList": "Participantes en la reunión ({{count}})",
|
||||
"waitingLobby": "Esperando en el vestíbulo ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Permitir a los asistentes:",
|
||||
"allowVideo": "Permitir vídeo",
|
||||
"audioModeration": "Desmutearse a sí mismos",
|
||||
"blockEveryoneMicCamera": "Bloquear el micrófono y la cámara de todos.",
|
||||
"invite": "Invitar a alguien",
|
||||
"askUnmute": "Pida que le quiten el silencio",
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silenciar a todos los demás",
|
||||
"muteEveryoneElse": "Silenciar al resto",
|
||||
"stopEveryonesVideo": "Detener el vídeo de todos",
|
||||
"stopVideo": "Detener el vídeo",
|
||||
"unblockEveryoneMicCamera": "Desbloquear el micrófono y la cámara de todos",
|
||||
"videoModeration": "Iniciar su vídeo"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "Definida por otro participante",
|
||||
"passwordSetRemotely": "definida por otro participante",
|
||||
"passwordDigitsOnly": "Hasta {{number]] cifras",
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Añadir opción",
|
||||
"answerPlaceholder": "Opción {{index}}",
|
||||
"create": "Crear una encuesta",
|
||||
"cancel": "Cancelar",
|
||||
"pollOption": "Opción de encuesta {{index}}",
|
||||
"pollQuestion": "Pregunta de la encuesta",
|
||||
"questionPlaceholder": "Haz una pregunta",
|
||||
"removeOption": "Eliminar la opción",
|
||||
"send": "Enviar"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Saltar",
|
||||
"submit": "Enviar"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Vota",
|
||||
"changeVote": "Cambiar el voto",
|
||||
"empty": "Todavía no hay encuestas en la reunión. ¡Inicie una encuesta aquí!",
|
||||
"hideDetailedResults": "Ocultar detalles",
|
||||
"showDetailedResults": "Mostrar detalles"
|
||||
},
|
||||
"notification": {
|
||||
"title": "Se ha añadido una nueva encuesta a esta reunión",
|
||||
"description": "Abre la pestaña de encuestas para votar"
|
||||
}
|
||||
},
|
||||
"poweredby": "con tecnología de",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Error en audio y vídeo:",
|
||||
"audioDeviceProblem": "Hay un problema con su dispositivo de audio",
|
||||
"audioOnlyError": "Error en audio:",
|
||||
"audioTrackError": "No se pudo crear la pista de audio.",
|
||||
"calling": "Llamando",
|
||||
"callMe": "Llámame",
|
||||
"callMeAtNumber": "Llamame a este número:",
|
||||
"configuringDevices": "Configurando dispositivos...",
|
||||
"connectedWithAudioQ": "¿Estás está conectado con audio?",
|
||||
"connection": {
|
||||
"good": "¡Su conexión a internet es buena!",
|
||||
"nonOptimal": "Su conexión a internet no es óptima",
|
||||
@@ -689,6 +544,16 @@
|
||||
"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."
|
||||
},
|
||||
"errorMissingName": "Ingrese su nombre para unirse a la reunión",
|
||||
"premeeting": "Pre-reunión",
|
||||
"showScreen": "Habilitar pantalla pre-reunión",
|
||||
"audioAndVideoError": "Error en audio y vídeo:",
|
||||
"audioOnlyError": "Error en audio:",
|
||||
"audioTrackError": "No se pudo crear la pista de audio.",
|
||||
"callMe": "Llámame",
|
||||
"callMeAtNumber": "Llamame a este número:",
|
||||
"configuringDevices": "Configurando dispositivos...",
|
||||
"connectedWithAudioQ": "¿Estás está conectado con audio?",
|
||||
"copyAndShare": "Copia y comparte el link de la reuinión",
|
||||
"dialInMeeting": "Entrar con llamada telefónica",
|
||||
"dialInPin": "Marca a la reunión e ingresa el código:",
|
||||
@@ -698,8 +563,6 @@
|
||||
"errorDialOutDisconnected": "No se pudo marcar. Desconectado.",
|
||||
"errorDialOutFailed": "No se pudo marcar. La llamada falló.",
|
||||
"errorDialOutStatus": "Hubo algún error, y no se pudo determinar cuál",
|
||||
"errorMissingName": "Ingrese su nombre para unirse a la reunión",
|
||||
"errorNoPermissions": "Tienes que habilitar el acceso al micrófono y a la cámara",
|
||||
"errorStatusCode": "Error al marcar, código de error {{status}}",
|
||||
"errorValidation": "No se pudo validar el número",
|
||||
"iWantToDialIn": "Quiero entrar por teléfono",
|
||||
@@ -710,9 +573,7 @@
|
||||
"linkCopied": "Se copió el link",
|
||||
"lookGood": "Tu micrófono funciona bien.",
|
||||
"or": "o",
|
||||
"premeeting": "Pre-reunión",
|
||||
"showScreen": "Habilitar pantalla pre-reunión",
|
||||
"keyboardShortcuts": "Activar los atajos de teclado",
|
||||
"calling": "Llamando",
|
||||
"startWithPhone": "Iniciar con audio de llamada telefónica",
|
||||
"screenSharingError": "Error al compartir pantalla:",
|
||||
"videoOnlyError": "Error con el vídeo:",
|
||||
@@ -734,7 +595,6 @@
|
||||
"ringing": "Timbrando…"
|
||||
},
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Configura tu nombre para mostrar",
|
||||
"setEmailInput": "Introducir correo electrónico",
|
||||
"setEmailLabel": "Configurar tu correo electrónico de Gravatar",
|
||||
@@ -742,22 +602,19 @@
|
||||
},
|
||||
"raisedHand": "Desea hablar",
|
||||
"recording": {
|
||||
"limitNotificationDescriptionWeb": "Debido a la alta demanda su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en <3>{{app}}</3>.",
|
||||
"authDropboxText": "Subir a Dropbox",
|
||||
"availableSpace": "Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabación)",
|
||||
"beta": "BETA",
|
||||
"busy": "Estamos trabajando para liberar recursos de grabación. Vuelve a intentarlo en unos minutos.",
|
||||
"busyTitle": "Todas las grabadoras están actualmente ocupadas",
|
||||
"copyLink": "Copiar enlace",
|
||||
"error": "Error de grabación. Vuelve a intentarlo.",
|
||||
"errorFetchingLink": "Error en la obtención del enlace de grabación.",
|
||||
"expandedOff": "Grabación detenida",
|
||||
"expandedOn": "La reunión está siendo grabada.",
|
||||
"expandedPending": "La grabación se está iniciando…",
|
||||
"failedToStart": "No se pudo iniciar la grabación",
|
||||
"fileSharingdescription": "Compartir la grabación con los participantes de la reunión",
|
||||
"linkGenerated": "Hemos generado un enlace a su grabación.",
|
||||
"limitNotificationDescriptionWeb": "Debido a la alta demanda su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en <3>{{app}}</3>.",
|
||||
"live": "EN VIVO",
|
||||
"loggedIn": "Sesión iniciada como {{userName}}",
|
||||
"off": "Grabación detenida",
|
||||
@@ -767,20 +624,18 @@
|
||||
"pending": "Preparando para grabar la reunión…",
|
||||
"rec": "GRA",
|
||||
"serviceDescription": "El servicio de grabación guardará la grabación",
|
||||
"serviceDescriptionCloud": "Grabación en la nube",
|
||||
"serviceName": "Servicio de grabación",
|
||||
"signIn": "Iniciar sesión",
|
||||
"signOut": "Cerrar sesión",
|
||||
"unavailable": "¡Uy! {{serviceName}} actualmente no está disponible. Estamos trabajando para resolver el problema. Vuelve a intentarlo más tarde.",
|
||||
"unavailableTitle": "Grabación no disponible",
|
||||
"uploadToCloud": "Subir a la nube"
|
||||
"unavailableTitle": "Grabación no disponible"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Mueve el dedo para abajo para actualizar."
|
||||
},
|
||||
"security": {
|
||||
"about": "Puedes agregar una contraseña a la reunión. Los participantes necesitarán la contraseña para unirse a la reunión.",
|
||||
"aboutReadOnly": "Los participantes moderadores pueden agregar una $t(lockRoomPassword) a la reunión. Los participantes deberán proporcionar la $t(lockRoomPassword) antes de que se les permita unirse a la reunión.",
|
||||
"about": "Puedes agregar una contraseña a la reunión. Los participantes necesitarán la contraseña para unirse a la reunión.",
|
||||
"insecureRoomNameWarning": "El nombre de la sala es inseguro. Participantes no deseados pueden llegar a unirse a la reunión.",
|
||||
"securityOptions": "Opciones de seguridad"
|
||||
},
|
||||
@@ -792,13 +647,8 @@
|
||||
"signedIn": "Actualmente se accede a eventos del calendario para {{email}}. Haz clic en el botón Desconectar más abajo para detener el acceso a eventos del calendario.",
|
||||
"title": "Calendario"
|
||||
},
|
||||
"desktopShareFramerate": "Velocidad de fotogramas para compartir el escritorio",
|
||||
"desktopShareWarning": "Es necesario reiniciar la pantalla compartida para que los nuevos ajustes surtan efecto.",
|
||||
"desktopShareHighFpsWarning": "Una mayor velocidad de fotogramas para el uso compartido de la pantalla podría afectar a su ancho de banda. Es necesario reiniciar la pantalla compartida para que la nueva configuración surta efecto.",
|
||||
"devices": "Dispositivos",
|
||||
"followMe": "Todos me siguen",
|
||||
"framesPerSecond": "fotogramas-por-segundo",
|
||||
"incomingMessage": "Mensaje entrante",
|
||||
"language": "Idioma",
|
||||
"loggedIn": "Sesión iniciada como {{name}}",
|
||||
"microphones": "Micrófono",
|
||||
@@ -806,19 +656,13 @@
|
||||
"more": "Más",
|
||||
"name": "Nombre",
|
||||
"noDevice": "Ninguno",
|
||||
"participantJoined": "Un articipante incorporado",
|
||||
"participantLeft": "Un participante se ha ido",
|
||||
"playSounds": "Reproducir sonido",
|
||||
"reactions": "Reacciones de la reunión",
|
||||
"sameAsSystem": "Igual que el sistema ({{label}})",
|
||||
"selectAudioOutput": "Salida de audio",
|
||||
"selectCamera": "Cámara",
|
||||
"selectMic": "Micrófono",
|
||||
"sounds": "Sonidos",
|
||||
"speakers": "Parlantes",
|
||||
"speakers": "Altavoces",
|
||||
"startAudioMuted": "Todos inician silenciados",
|
||||
"startVideoMuted": "Todos inician con cámara desactivada",
|
||||
"talkWhileMuted": "Hablar en silencio",
|
||||
"speakers": "Parlantes",
|
||||
"title": "Ajustes"
|
||||
},
|
||||
"settingsView": {
|
||||
@@ -831,9 +675,9 @@
|
||||
"conferenceSection": "Conferencia",
|
||||
"disableCallIntegration": "Desactivar la integración nativa de llamadas",
|
||||
"disableP2P": "Desactivar la comunicación directa (\"Peer-To-Peer\")",
|
||||
"displayName": "Nombre a mostrar",
|
||||
"disableCrashReporting": "Desactivar el reporte de crasheos",
|
||||
"disableCrashReportingWarning": "¿Estás seguro que no deseas reportarnos los crasheos? La opción se activará al reiniciar la app.",
|
||||
"displayName": "Nombre a mostrar",
|
||||
"email": "Correo electrónico",
|
||||
"header": "Configuración",
|
||||
"profileSection": "Perfil",
|
||||
@@ -849,7 +693,6 @@
|
||||
},
|
||||
"speaker": "Participante",
|
||||
"speakerStats": {
|
||||
"search": "Buscar",
|
||||
"hours": "{{count}} h",
|
||||
"minutes": "{{count}} min",
|
||||
"name": "Nombre",
|
||||
@@ -859,7 +702,6 @@
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"genericTitle": "La reunión debe utilizar su micrófono y su cámara.",
|
||||
"title": "{{app}} necesita usar el micrófono y la cámara."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
@@ -871,23 +713,22 @@
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Alternar cámaras de los demás",
|
||||
"audioRoute": "Seleccionar el dispositivo de sonido",
|
||||
"boo": "Boo",
|
||||
"callQuality": "Administrar la calidad de vídeo",
|
||||
"cc": "Alternar subtítulos",
|
||||
"chat": "Alternar ventana de chat",
|
||||
"clap": "Aplauso",
|
||||
"document": "Alternar documento compartido",
|
||||
"download": "Descargar nuestras aplicaciones",
|
||||
"embedMeeting": "Insertar reunión",
|
||||
"grantModerator": "Convertir en moderador",
|
||||
"download": "Descargar nuestras aplicaciones",
|
||||
"e2ee": "Cifrado de extremo a extremo",
|
||||
"feedback": "Dejar comentarios",
|
||||
"fullScreen": "Alternar pantalla completa",
|
||||
"grantModerator": "Convertir en moderador",
|
||||
"hangup": "Colgar",
|
||||
"help": "Ayuda",
|
||||
"invite": "Invitar personas",
|
||||
"lobbyButtonDisable": "Desactivar sala de espera",
|
||||
"lobbyButtonEnable": "Activar sala de espera",
|
||||
"kick": "Expulsar participante",
|
||||
"laugh": "Ríete",
|
||||
"like": "Pulgares arriba",
|
||||
"lobbyButton": "Activar / desactivar el modo lobby",
|
||||
"localRecording": "Alternar controles de grabación local",
|
||||
"lockRoom": "Alternar contraseña de la reunión",
|
||||
@@ -896,57 +737,39 @@
|
||||
"moreOptions": "Mostrar más opciones",
|
||||
"mute": "Silenciar micrófono",
|
||||
"muteEveryone": "Silenciar a todos",
|
||||
"muteEveryoneElse": "Silenciar a todos los demás",
|
||||
"muteEveryonesVideo": "Desactivar el vídeo de todos",
|
||||
"muteEveryoneElsesVideo": "Desactivar el vídeo de los demás",
|
||||
"participants": "Participantes",
|
||||
"pip": "Alternar modo ventana en miniatura",
|
||||
"privateMessage": "Enviar mensaje privado",
|
||||
"profile": "Editar perfil",
|
||||
"raiseHand": "Levantar o bajar la mano",
|
||||
"reactionsMenu": "Abrir / Cerrar el menú de reacciones",
|
||||
"recording": "Alternar grabación",
|
||||
"remoteMute": "Silenciar participante",
|
||||
"remoteVideoMute": "Desactivar la cámara del participante",
|
||||
"security": "Opciones de seguridad",
|
||||
"Settings": "Alternar configuración",
|
||||
"shareaudio": "Compartir audio",
|
||||
"sharedvideo": "Alternar vídeo compartido de YouTube",
|
||||
"shareRoom": "Invitar a alguien",
|
||||
"shareYourScreen": "Alternar pantalla compartida",
|
||||
"shortcuts": "Alternar accesos directos",
|
||||
"show": "Mostrar en primer",
|
||||
"silence": "Silencio",
|
||||
"speakerStats": "Alternar estadísticas del orador",
|
||||
"surprised": "Sorprendido",
|
||||
"tileView": "Alternar vista de mosaico",
|
||||
"toggleCamera": "Alternar cámara",
|
||||
"toggleFilmstrip": "Alternar mosaicos",
|
||||
"videomute": "Alternar vídeo",
|
||||
"videoblur": "Alternar desenfoque de vídeo",
|
||||
"selectBackground": "Seleccione el fondo",
|
||||
"expand": "Ampliar",
|
||||
"collapse": "Colapsar"
|
||||
"videoblur": "Alternar desenfoque de vídeo"
|
||||
},
|
||||
"addPeople": "Agregar personas a la llamada",
|
||||
"audioSettings": "Ajustes de audio",
|
||||
"videoSettings": "Ajustes de vídeo",
|
||||
"audioOnlyOff": "Mostrar cámaras de los demás",
|
||||
"audioOnlyOn": "Ocultar cámaras de los demás (para ahorrar datos)",
|
||||
"audioRoute": "Selecciona el dispositivo de sonido",
|
||||
"authenticate": "Autenticar",
|
||||
"boo": "Boo",
|
||||
"callQuality": "Ajustar la calidad de vídeo",
|
||||
"chat": "Abrir o cerrar chat",
|
||||
"clap": "Aplauso",
|
||||
"closeChat": "Cerrar chat",
|
||||
"closeReactionsMenu": "Cerrar el menú de reacciones",
|
||||
"disableReactionSounds": "Puede desactivar los sonidos de reacción para esta reunión",
|
||||
"documentClose": "Cerrar documento compartido",
|
||||
"documentOpen": "Abrir documento compartido",
|
||||
"download": "Descarga nuestras aplicaciones",
|
||||
"e2ee": "Cifrado de extremo a extremo",
|
||||
"embedMeeting": "Insertar reunión",
|
||||
"e2ee": "Cifrado de extremo a extremo",
|
||||
"enterFullScreen": "Pantalla completa",
|
||||
"enterTileView": "Ver en cuadrícula",
|
||||
"exitFullScreen": "Salir de pantalla completa",
|
||||
@@ -955,8 +778,6 @@
|
||||
"hangup": "Colgar",
|
||||
"help": "Ayuda",
|
||||
"invite": "Invitar personas",
|
||||
"laugh": "Ríete",
|
||||
"like": "Pulgares arriba",
|
||||
"lobbyButtonDisable": "Desactivar el modo lobby",
|
||||
"lobbyButtonEnable": "Activar el modo lobby",
|
||||
"login": "Inicio de sesión",
|
||||
@@ -966,7 +787,6 @@
|
||||
"moreOptions": "Más opciones",
|
||||
"mute": "Activar o silenciar el micrófono",
|
||||
"muteEveryone": "Silenciar a todos",
|
||||
"muteEveryonesVideo": "Desactivar la cámara de todos",
|
||||
"noAudioSignalTitle": "¡No se registra audio de tu micrófono!",
|
||||
"noAudioSignalDesc": "Checa si no está silenciado en tu configuración del sistema o dispositivo, o cambia de micrófono.",
|
||||
"noAudioSignalDescSuggestion": "Si no lo silenciaste a propósito desde la configuración del sistema o el dispositivo, intenta usar este otro micrófono:",
|
||||
@@ -975,39 +795,28 @@
|
||||
"noisyAudioInputTitle": "Tu micrófono parece estar ruidoso",
|
||||
"noisyAudioInputDesc": "Tu micrófono está haciendo ruido, siléncialo, ajusta su volumen en configuración del sistema, o cambia de micrófono.",
|
||||
"openChat": "Abrir chat",
|
||||
"openReactionsMenu": "Abrir el menú de reacciones",
|
||||
"participants": "Participantes",
|
||||
"pip": "Mostrar en ventana pequeña",
|
||||
"privateMessage": "Enviar mensaje privado",
|
||||
"profile": "Editar perfil",
|
||||
"raiseHand": "Levantar o bajar la mano",
|
||||
"raiseYourHand": "Levantar la mano",
|
||||
"reactionBoo": "Enviar la reacción de Boo",
|
||||
"reactionClap": "Enviar reacción de aplauso",
|
||||
"reactionLaugh": "Enviar reacción de risa",
|
||||
"reactionLike": "Enviar la reacción de los pulgares hacia arriba",
|
||||
"reactionSilence": "Enviar reacción de silencio",
|
||||
"reactionSurprised": "Enviar reacción de sorpresa",
|
||||
"security": "Opciones de seguridad",
|
||||
"Settings": "Configuración",
|
||||
"shareaudio": "Compartir audio",
|
||||
"sharedvideo": "Compartir un vídeo de YouTube",
|
||||
"shareRoom": "Invitar a alguien",
|
||||
"shortcuts": "Ver atajos del teclado",
|
||||
"silence": "Silencio",
|
||||
"speakerStats": "Estadísticas de los hablantes",
|
||||
"startScreenSharing": "Comenzar a compartir pantalla",
|
||||
"startSubtitles": "Iniciar subtítulos",
|
||||
"stopAudioSharing": "Dejar de compartir el audio",
|
||||
"stopScreenSharing": "Dejar de compartir pantalla",
|
||||
"stopSubtitles": "Detener subtítulos",
|
||||
"stopSharedVideo": "Detener vídeo de YouTube",
|
||||
"surprised": "Compartir audio",
|
||||
"talkWhileMutedPopup": "¿Intentas hablar? Estás silenciado.",
|
||||
"tileViewToggle": "Activar o desactivar vista en cuadrícula",
|
||||
"toggleCamera": "Activar o desactivar cámara",
|
||||
"videomute": "Iniciar o detener cámara",
|
||||
"selectBackground": "Seleccionar fondo"
|
||||
"startvideoblur": "Desenfocar mi fondo",
|
||||
"stopvideoblur": "Desactivar desenfoque del fondo"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Iniciar o detener subtítulos",
|
||||
@@ -1033,7 +842,6 @@
|
||||
"react-nativeGrantPermissions": "Selecciona <b><i>Permitir</i></b> cuando el navegador solicite permisos.",
|
||||
"safariGrantPermissions": "Selecciona <b><i>Aceptar</i></b> cuando el navegador solicite permisos."
|
||||
},
|
||||
"volumeSlider": "Deslizador de volumen",
|
||||
"videoSIPGW": {
|
||||
"busy": "Estamos trabajando para liberar recursos. Vuelve a intentarlo en unos minutos.",
|
||||
"busyTitle": "El servicio de salas está actualmente ocupado",
|
||||
@@ -1056,29 +864,26 @@
|
||||
"ld": "LD",
|
||||
"ldTooltip": "Viendo vídeo en baja definición",
|
||||
"lowDefinition": "Baja definición",
|
||||
"onlyAudioAvailable": "Solo hay audio disponible",
|
||||
"onlyAudioSupported": "Solo admitimos audio en este navegador.",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Viendo vídeo en definición estándar",
|
||||
"standardDefinition": "Definición estándar"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Información de conexión",
|
||||
"domute": "Silenciar",
|
||||
"domuteVideo": "Desactivar la cámara",
|
||||
"domuteOthers": "Silenciar a todos",
|
||||
"domuteVideoOfOthers": "Desactivar la cámara de todos los demás",
|
||||
"flip": "Voltear",
|
||||
"grantModerator": "Convertir en moderador",
|
||||
"kick": "Expulsar",
|
||||
"moderator": "Moderador",
|
||||
"mute": "Se silenció el participante",
|
||||
"muted": "Silenciado",
|
||||
"videoMuted": "Cámara desactivada",
|
||||
"remoteControl": "Control remoto",
|
||||
"show": "Mostrar en primer plano",
|
||||
"videomute": "El participante paró su cámara"
|
||||
},
|
||||
"welcomepage": {
|
||||
"addMeetingName": "Añadir el nombre de la reunión",
|
||||
"accessibilityLabel": {
|
||||
"join": "Toca para unirte",
|
||||
"roomname": "Introduce el nombre de la sala"
|
||||
@@ -1093,37 +898,22 @@
|
||||
"connectCalendarText": "Conecta tu calendario para ver todas tus reuniones de {{app}}. Además, agrega reuniones a tu calendario e inícialas con un solo clic.",
|
||||
"enterRoomTitle": "Comenzar una reunión",
|
||||
"getHelp": "Obtener ayuda",
|
||||
"roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.",
|
||||
"go": "IR",
|
||||
"goSmall": "IR",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"headerSubtitle": "Reuniones seguras y de alta calidad",
|
||||
"info": "Información",
|
||||
"join": "CREAR / UNIRSE",
|
||||
"jitsiOnMobile": "Jitsi en el móvil: descarga nuestras aplicaciones y comienza una reunión desde cualquier lugar",
|
||||
"mobileDownLoadLinkIos": "Descargar la aplicación móvil para iOS",
|
||||
"mobileDownLoadLinkAndroid": "Descargar la aplicación móvil para Android",
|
||||
"mobileDownLoadLinkFDroid": "Descargar la aplicación móvil para F-Droid",
|
||||
"info": "Información",
|
||||
"moderatedMessage": "O <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">reserve con antelación una URL de reunión</a> en la que usted sea el único moderador.",
|
||||
"privacy": "Privacidad",
|
||||
"recentList": "Reciente",
|
||||
"recentListDelete": "Eliminar",
|
||||
"recentListEmpty": "Tu historial de reuniones está vacío. Reúnete y aparecerán aquí.",
|
||||
"reducedUIText": "¡Bienvenid@ 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.",
|
||||
"sendFeedback": "Enviar sugerencias",
|
||||
"startMeeting": "Iniciar la reunión",
|
||||
"terms": "Términos",
|
||||
"title": "Videoconferencias seguras, con gran variedad de funcionalidades y completamente gratuitas",
|
||||
"logo": {
|
||||
"calendar": "Logotipo del calendario",
|
||||
"microsoftLogo": "Logotipo de Microsoft",
|
||||
"logoDeepLinking": "Logotipo de la reunión de Jitsi",
|
||||
"desktopPreviewThumbnail": "Vista previa del escritorio en miniatura",
|
||||
"googleLogo": "Logotipo de Google",
|
||||
"policyLogo": "Logotipo de la política"
|
||||
}
|
||||
"title": "Videoconferencias seguras, con gran variedad de funcionalidades y completamente gratuitas"
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Invita a otros",
|
||||
@@ -1133,8 +923,6 @@
|
||||
"header": "Centro de ayuda"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Admitir",
|
||||
"admitAll": "Admitir todo",
|
||||
"knockingParticipantList": "Participantes que quieren entrar",
|
||||
"allow": "permitir",
|
||||
"backToKnockModeButton": "No hay contraseña, pide permiso para entrar.",
|
||||
@@ -1147,7 +935,6 @@
|
||||
"enableDialogText": "La sala de espera te deja proteger tu reunión, de modo que todas los que entren enviarán una solicitud que deberá ser aprobada por un moderador.",
|
||||
"enterPasswordButton": "Introduce la contraseña de la reunión",
|
||||
"enterPasswordTitle": "Introduce la contraseña para poder entrar",
|
||||
"errorMissingPassword": "Por favor, introduzca la contraseña de la reunión",
|
||||
"invalidPassword": "Contraseña inválida",
|
||||
"joiningMessage": "Podrás entrar tan pronto te acepten tu solicitud.",
|
||||
"joinWithPasswordMessage": "Tratando de entrar con contraseña, por favor espera...",
|
||||
@@ -1166,7 +953,6 @@
|
||||
"passwordField": "Introduce la contraseña de la reunión",
|
||||
"passwordJoinButton": "Entrar",
|
||||
"reject": "Rechazar",
|
||||
"rejectAll": "Rechazar todo",
|
||||
"toggleLabel": "Activar sala de espera"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,8 +248,6 @@
|
||||
"micPermissionDeniedError": "Vous n'avez pas autorisé l'utilisation de votre microphone. Vous pouvez toujours participer à la conférence, mais les autres ne vont pas vous entendre. Utilisez le bouton du microphone dans la barre d'adresse pour résoudre ce problème.",
|
||||
"micTimeoutError": "Impossible de démarrer la source audio. Délai dépassé!",
|
||||
"micUnknownError": "Vous ne pouvez pas utiliser le microphone pour une raison inconnue.",
|
||||
"moderationAudioLabel": "Autoriser les participants à réactiver leur micro",
|
||||
"moderationVideoLabel": "Autoriser les participants à démarrer leur vidéo",
|
||||
"muteEveryoneElseDialog": "Une fois leur micro coupé, vous ne pourrez plus le réactiver, mais ils pourront l'activer par eux-mêmes à tout moment.",
|
||||
"muteEveryoneElseTitle": "Couper le micro de tout le monde sauf de {{whom}} ?",
|
||||
"muteEveryoneDialog": "Êtes-vous sûr de vouloir couper les micros de tout le monde ? Vous ne pourrez plus réactiver leur micro, mais ils pourront l'activer par eux-mêmes à tout moment.",
|
||||
@@ -565,21 +563,12 @@
|
||||
"close": "Fermer",
|
||||
"headings": {
|
||||
"lobby": "Salle d'attente ({{count}})",
|
||||
"participantsList": "Participants de la réunion ({{count}})",
|
||||
"waitingLobby": "Dans la salle d'attente ({{count}})"
|
||||
"participantsList": "Participants de la réunion ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Autoriser les participant à:",
|
||||
"blockEveryoneMicCamera": "Bloquer tous les micros et caméras",
|
||||
"invite": "Inviter quelqu'un",
|
||||
"askUnmute": "Demander de réactiver le micro",
|
||||
"mute": "Couper le micro",
|
||||
"muteAll": "Couper le micro de tout le monde",
|
||||
"muteEveryoneElse": "Couper le micro de tous les autres",
|
||||
"startModeration": "Réactiver son micro ou démarrer sa vidéo",
|
||||
"stopEveryonesVideo": "Couper toutes les caméras",
|
||||
"stopVideo": "Couper la vidéo",
|
||||
"unblockEveryoneMicCamera": "Débloquer tous les micros et caméras"
|
||||
"muteAll": "couper le micro de tout le monde",
|
||||
"stopVideo": "couper la vidéo"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "défini par un autre participant",
|
||||
|
||||
@@ -296,7 +296,7 @@
|
||||
"sendPrivateMessageTitle": "निजी तौर पर भेजें?",
|
||||
"serviceUnavailable": "सेवा अनुपलब्ध",
|
||||
"sessTerminated": "कॉल समाप्त",
|
||||
"sessionRestarted": "Call restarted because of a connection issue",
|
||||
"sessionRestarted": "Call restarted by the bridge",
|
||||
"Share": "Share",
|
||||
"shareVideoLinkError": "कृपया एक सही यूट्यूब लिंक प्रदान करें।.",
|
||||
"shareVideoTitle": "एक वीडियो साझा करें",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"copyInvite": "Copia invito alla riunione",
|
||||
"copyLink": "Copia collegamento alla riunione",
|
||||
"copyStream": "Copia collegamento della diretta",
|
||||
"contacts": "contatti",
|
||||
"countryNotSupported": "Non supportiamo ancora questa destinazione.",
|
||||
"countryReminder": "Stai chiamando fuori dagli Stati Uniti? Assicurati d'inserire il prefisso internazionale!",
|
||||
"defaultEmail": "Tua e-mail di default",
|
||||
@@ -17,14 +16,19 @@
|
||||
"inviteMoreMailSubject": "Unisciti alla riunione {{appName}}",
|
||||
"inviteMorePrompt": "Invita altre persone",
|
||||
"linkCopied": "Collegamento copiato negli appunti",
|
||||
"loading": "Sto cercando persone e numeri di telefono",
|
||||
"loadingNumber": "Sto controllando il numero di telefono",
|
||||
"loadingPeople": "Sto cercando le persone da invitare",
|
||||
"noResults": "Nessun risultato corrispondente",
|
||||
"noValidNumbers": "Per favore inserire un numero di telefono",
|
||||
"outlookEmail": "E-mail Outlook",
|
||||
"phoneNumbers": "numeri di telefono",
|
||||
"searching": "Sto cercando...",
|
||||
"searchNumbers": "Aggiungi numeri di telefono",
|
||||
"searchPeople": "Cerca persone",
|
||||
"searchPeopleAndNumbers": "Cerca persone o aggiungi i loro numeri di telefono",
|
||||
"shareInvite": "Condividi invito alla riunione",
|
||||
"shareLink": "Condividi il collegamento alla riunione per invitare altri",
|
||||
"shareStream": "Condividi il collegamento alla diretta",
|
||||
"sipAddresses": "indirizzi SIP",
|
||||
"sip": "SIP: {{address}}",
|
||||
"telephone": "Telefono: {{number}}",
|
||||
"title": "Invita persone a questa riunione",
|
||||
"yahooEmail": "E-mail Yahoo"
|
||||
@@ -70,14 +74,6 @@
|
||||
"titleWithPolls": "Inserire un nickname per utilizzare la conversazione"
|
||||
},
|
||||
"privateNotice": "Messaggio privato per {{recipient}}",
|
||||
"message": "Messaggio",
|
||||
"messageAccessibleTitle": "{{user}} dice:",
|
||||
"messageAccessibleTitleMe": "io dico:",
|
||||
"smileysPanel": "Pannello emoji",
|
||||
"tabs": {
|
||||
"chat": "Chat",
|
||||
"polls": "Sondaggi"
|
||||
},
|
||||
"title": "Conversazione",
|
||||
"titleWithPolls": "Conversazione",
|
||||
"you": "tu"
|
||||
@@ -85,7 +81,6 @@
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Installa un'estensione per integrare Google Calendar e Office 365",
|
||||
"buttonText": "Installa l'estensione Chrome",
|
||||
"close": "Chiudi",
|
||||
"dontShowAgain": "Non mostrare più questo messaggio"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
@@ -213,16 +208,12 @@
|
||||
"done": "Fatto",
|
||||
"e2eeDescription": "La crittografia punto-a-punto al momento è SPERIMENTALE. Tieni presente che attivandola disabiliterai i servizi svolti dal server, come: la registrazione, la dirette streaming e la partecipazione usando telefoni. Tieni anche presente che la riunione funzionerà solo per chi si collega usando browser che supportano flussi inseribili (insertable streams).",
|
||||
"e2eeLabel": "Attiva la crittografia punto-a-punto",
|
||||
"e2eeDisabledDueToMaxModeDescription": "Impossibile crittografare la sessione, per il numero eccessivo di partecipanti.",
|
||||
"e2eeWarning": "ATTENZIONE: non tutti i partecipanti a questa riunione sembrano supportare le funzionalità di crittografia punto-a-punto. Se la attivi, non potranno sentirti o vederti.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "WARNING: ATTENZIONE: la crittografia punto-punto verrà disattivata automaticamente, se si aggiungono nuovi partecipanti alla riunione.",
|
||||
"enterDisplayName": "Inserisci qui il tuo nome",
|
||||
"embedMeeting": "Incorpora la riunione",
|
||||
"error": "Errore",
|
||||
"gracefulShutdown": "Il nostro servizio è al momento spento per manutenzione. Si prega di riprovare più tardi.",
|
||||
"grantModeratorDialog": "Sei sicuro di voler rendere moderatore questo partecipante?",
|
||||
"grantModeratorTitle": "Autorizza moderatore",
|
||||
"hideShareAudioHelper": "Non mostrare più questa finestra",
|
||||
"IamHost": "Sono l'organizzatore",
|
||||
"incorrectRoomLockPassword": "Password errata",
|
||||
"incorrectPassword": "Nome utente o password errati",
|
||||
@@ -251,39 +242,30 @@
|
||||
"micPermissionDeniedError": "Non hai concesso il permesso di usare il microfono. Puoi comunque partecipare alla riunione ma gli altri non potranno sentirti. Usa il bottone a forma di telecamera nella barra degli indirizzi per cambiare impostazioni.",
|
||||
"micTimeoutError": "Impossibile avviare la fonte audio. Tempo di attesa scaduto.",
|
||||
"micUnknownError": "Impossibile usare il microfono per un motivo sconosciuto.",
|
||||
"moderationAudioLabel": "Permetti ai partecipenti di accendere il microfono",
|
||||
"moderationVideoLabel": "Permetti ai partecipanti di arrivare la videocamera",
|
||||
"muteEveryoneElseDialog": "Una volta spenti i microfoni non potrai riattivarli, ma loro potranno farlo in qualsiasi momento.",
|
||||
"muteEveryoneElseTitle": "Spengo il microfono a tutti, eccetto a {{whom}}?",
|
||||
"muteEveryoneDialog": "Sei sicuro di voler spegnere il microfono a tutti? Non potrai riattivarli, ma loro potranno farlo in qualsiasi momento.",
|
||||
"muteEveryoneDialogModerationOn": "I partecipanti possono fare richiesta di parlare in ogni momento.",
|
||||
"muteEveryoneTitle": "Spengo i microfoni a tutti?",
|
||||
"muteEveryoneElsesVideoDialog": "Una volta spente le videocamere non potrai riaccenderle, ma ogni partecipante potrà farlo in ogni momento.",
|
||||
"muteEveryoneElsesVideoTitle": "Spengo tutte le videocamere, tranne a {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "Sei sicuro di voler spegnere le videocamere a tutti? Non potrai riaccenderle, ma ogni partecipante potrà farlo in ogni momento.",
|
||||
"muteEveryonesVideoDialogModerationOn": "I partecipanti possono fare richiesta di trasmettere video in ogni momento.",
|
||||
"muteEveryonesVideoDialog": "Sei sicuro di voler spegnere le videocamere di tutti? Non potrai riaccenderle, ma ogni partecipante potrà farlo in ogni momento.",
|
||||
"muteEveryonesVideoDialogOk": "Spegni",
|
||||
"muteEveryonesVideoTitle": "Vuoi spegnere le videocamere di tutti?",
|
||||
"muteEveryoneSelf": "te",
|
||||
"muteEveryoneStartMuted": "Tutti cominciano a microfono spento, d'adesso in avanti",
|
||||
"muteParticipantBody": "Non sarai in grado di riattivare il loro microfono, ma loro potranno riattivarlo in qualsiasi momento.",
|
||||
"muteParticipantButton": "Spegni microfono",
|
||||
"muteParticipantDialog": "Sei sicuro di voler spegnere il microfono di questo partecipante? Lui potrà riattivarlo in ogni momento.",
|
||||
"muteParticipantsVideoDialog": "Sei sicuro di voler spegnere la videocamera di questo partecipante? Lui potrà riattivarla in ogni momento.",
|
||||
"muteParticipantDialog": "Sei sicuro di voler spegnere il microfono a questo partecipante? Sarà lui a doverlo riattivare, per parlare.",
|
||||
"muteParticipantTitle": "Spengo il microfono a questo partecipante?",
|
||||
"muteParticipantsVideoButton": "Spegni videocamera",
|
||||
"muteParticipantsVideoTitle": "Vuoi spegnere la videocamera di questo partecipante?",
|
||||
"muteParticipantsVideoBody": "Una volta spenta la videocamera non potrai riaccenderla, ma lui potrà riattivarla in qualsiasi momento.",
|
||||
"noDropboxToken": "Token Dropbox non valido",
|
||||
"Ok": "OK",
|
||||
"password": "Password",
|
||||
"passwordLabel": "La riunione è stata bloccata da un partecipante. Immetti la $t(lockRoomPassword) per collegarti, per favore.",
|
||||
"passwordNotSupported": "Impostare una $t(lockRoomPassword) non è supportato.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) non supportato",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) richiesta",
|
||||
"permissionErrorTitle": "Autorizzazione richiesta",
|
||||
"permissionCameraRequiredError": "L'autorizzazione all'uso della videcamera deve essere concessa, se si desidera mandare online la propria immagine. Per favore, concedi l'autorizzazione nelle impostazioni",
|
||||
"permissionMicRequiredError": "L'autorizzazione all'uso del microfono deve essere concessa, se si desidera parlare durante la conferenza. Per favore, concedi l'autorizzazione nelle impostazioni",
|
||||
"popupError": "Il tuo browser sta bloccando i pop-up da questo sito. Per favore abilita i pop-up dalle impostazioni di sicurezza del browser e riprova.",
|
||||
"popupErrorTitle": "Pop-up bloccato",
|
||||
"readMore": "continua",
|
||||
@@ -317,26 +299,14 @@
|
||||
"sessTerminated": "Chiamata terminata",
|
||||
"sessionRestarted": "Chiamata riavviata automaticamente",
|
||||
"Share": "Condividi",
|
||||
"shareAudio": "Continue",
|
||||
"shareAudioTitle" : "Come condividere l'audio",
|
||||
"shareAudioWarningTitle": "Ferma la condivisione dello schermo, per condividere l'audio",
|
||||
"shareAudioWarningH1": "Se vuoi condividere solo l'audio:",
|
||||
"shareAudioWarningD1": "devi fermare la condivisione dello schermo, per condividere l'audio.",
|
||||
"shareAudioWarningD2": "devi riavviare la condivisione schermo e spuntare l'opzione \"condividi audio\".",
|
||||
"shareMediaWarningGenericH2": "Se vuoi condividere il tuo schermo e l'audio",
|
||||
"shareVideoLinkError": "Fornire un link youtube corretto.",
|
||||
"shareVideoTitle": "Condividi un video",
|
||||
"shareYourScreen": "Condividi schermo",
|
||||
"shareYourScreenDisabled": "Condivisione schermo disabilitata.",
|
||||
"startLiveStreaming": "Inizia una diretta",
|
||||
"startRecording": "Inizia a registrare",
|
||||
"startRemoteControlErrorMessage": "Si è verificato un errore nel tentativo di avviare la sessione di controllo remoto!",
|
||||
"shareScreenWarningTitle": "Ferma la condivisione audio, per condividere lo schermo",
|
||||
"shareScreenWarningH1": "Se vuoi condividere solo lo schermo:",
|
||||
"shareScreenWarningD1": "devi fermare la condivisione audio, per condividere lo schermo.",
|
||||
"shareScreenWarningD2": "devi fermare la condivisione audio, avvia la condivisione dello schermo e spunta \"condividi audio\" option.",
|
||||
"sharedVideoLinkPlaceholder": "Link YouTube o link video diretto",
|
||||
"stopLiveStreaming": "Ferma la diretta streaming",
|
||||
"startRemoteControlErrorMessage": "Si è verificato un errore cercando di avviare la sessione di controllo remoto!",
|
||||
"stopLiveStreaming": "Ferma la diretta",
|
||||
"stopRecording": "Ferma registrazione",
|
||||
"stopRecordingWarning": "Sei sicuro di voler interrompere la registrazione?",
|
||||
"stopStreamingWarning": "Sei sicuro di voler interrompere la diretta?",
|
||||
@@ -352,16 +322,11 @@
|
||||
"userIdentifier": "Identificatore utente",
|
||||
"userPassword": "Password utente",
|
||||
"videoLink": "Collegamento video",
|
||||
"viewUpgradeOptions": "Vedi le opzioni premium",
|
||||
"viewUpgradeOptionsContent": "Per aver accesso illimitato alle funzionalità premium come la registrazione, trascrizione, lo Streaming RTMP & altri, devi passare ad un abbonamento diverso.",
|
||||
"viewUpgradeOptionsTitle": "Hai scoperto una funzione premium!",
|
||||
"WaitForHostMsg": "La riunione <b>{{room}}</b> non è ancora cominciata. Se sei l'organizzatore, per favore autenticati. Altrimenti, aspetta l'arrivo dell'organizzatore.",
|
||||
"WaitForHostMsgWOk": "La riunione <b>{{room}}</b> non è ancora cominciata. Se sei l'organizzatore, allora premi OK per autenticarti. Altrimenti, aspetta l'arrivo dell'organizzatore.",
|
||||
"WaitingForHost": "In attesa dell'organizzatore...",
|
||||
"Yes": "Sì",
|
||||
"yourEntireScreen": "Schermo intero",
|
||||
"remoteUserControls": "Controlli dell'utente remoto {{username}}",
|
||||
"localUserControls": "Controlli dell'utente locale"
|
||||
"yourEntireScreen": "Schermo intero"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "è {{status}}"
|
||||
@@ -376,27 +341,13 @@
|
||||
"title": "Incorpora questa riunione"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Applica",
|
||||
"title": "Sfondi",
|
||||
"blur": "Sfuoca",
|
||||
"slightBlur": "Sfuoca leggermente",
|
||||
"removeBackground": "Togli sfondo",
|
||||
"addBackground": "Aggiungi sfondo",
|
||||
"uploadImage": "Carica immagine",
|
||||
"pleaseWait": "Aspetta un momento...",
|
||||
"none": "Nessuno",
|
||||
"uploadedImage": "Carica immagine {{index}}",
|
||||
"deleteImage": "Cancella immagine",
|
||||
"image1" : "Spiaggia",
|
||||
"image2" : "Parete neutra bianca",
|
||||
"image3" : "Stanza bianca vuota",
|
||||
"image4" : "Lampanda da pavimento nera",
|
||||
"image5" : "Montagna",
|
||||
"image6" : "Foresta",
|
||||
"image7" : "Alba",
|
||||
"desktopShareError": "Impossibile condividere il desktop",
|
||||
"desktopShare":"Condivisione desktop",
|
||||
"webAssemblyWarning": "Il WebAssembly not è supportato",
|
||||
"backgroundEffectError": "L'applicazione dell'effetto allo sfondo è fallita."
|
||||
"none": "Nessuno"
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Media",
|
||||
@@ -405,8 +356,7 @@
|
||||
"good": "Buona",
|
||||
"rateExperience": "Valuta la qualità della videoconferenza.",
|
||||
"veryBad": "Pessima",
|
||||
"veryGood": "Ottima",
|
||||
"star": "Stella"
|
||||
"veryGood": "Ottima"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Rispondi",
|
||||
@@ -423,7 +373,6 @@
|
||||
"country": "Paese",
|
||||
"dialANumber": "Per collegarti telefonicamente al meeting, chiama uno di questi numeri e metti il pin.",
|
||||
"dialInConferenceID": "PIN:",
|
||||
"copyNumber":"Copia numero",
|
||||
"dialInNotSupported": "Spiacenti, la partecipazione solo telefonica non è supportata attualmente",
|
||||
"dialInNumber": "Componi:",
|
||||
"dialInSummaryError": "Errore nella ricerca dei numeri telefonici. Riprova più tardi.",
|
||||
@@ -432,11 +381,6 @@
|
||||
"inviteLiveStream": "Per vedere la diretta di questa riunione, fai click su questo link: {{url}}",
|
||||
"invitePhone": "Per seguire solo telefonicamente, fai click: {{number}},,{{conferenceID}}#",
|
||||
"invitePhoneAlternatives": "Cerchi un numero diverso da chiamare?\nEcco dei numeri telefonici per collegarsi alle riunioni: {{url}}\n\n\nSe entri in riunione anche col computer, entra senza attivare l'audio: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "Per entrare con un indirizzo SIP, immettere questo: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} ti sta invitando ad una riunione.",
|
||||
"inviteTextiOSJoinSilent": "Se stai chiamando da un telefono fisso, usa questo link per entrare in riunione senz'audio: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Clicca il link seguente, per entrare in riunione: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "Per entrare in riunione con un telefono, usa questo numero: {{number}},,{{conferenceID}}#. Se cerchi altri numeri, questa è la lista completa: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Invito a connettersi ad una riunione.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} ti sta invitando ad una riunione.\n",
|
||||
"inviteURLSecondPart": "\nPartecipa alla riunione:\n{{url}}\n",
|
||||
@@ -447,7 +391,6 @@
|
||||
"noRoom": "Non è stata specificata nessuna stanza da chiamare.",
|
||||
"numbers": "Numeri da chiamare",
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"sip": "SIP address",
|
||||
"title": "Condividi",
|
||||
"tooltip": "Invia il collegamento e i numeri telefonici di questa riunione",
|
||||
"label": "Informazioni riunione"
|
||||
@@ -466,7 +409,6 @@
|
||||
"support": "Supporto",
|
||||
"supportMsg": "Se succede ancora contatta"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logo, collega alla Homepage",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Sposta il focus sul tuo video",
|
||||
"focusRemote": "Sposta il focus sul video di un altro partecipante",
|
||||
@@ -551,8 +493,6 @@
|
||||
"lockRoomPasswordUppercase": "Password",
|
||||
"me": "io",
|
||||
"notify": {
|
||||
"allowAction": "Permetti",
|
||||
"allowedUnmute": "Puoi accendere il microfono, avviare la videocamera, o condividere il tuo schermo.",
|
||||
"connectedOneMember": "{{name}} si è connesso",
|
||||
"connectedThreePlusMembers": "{{name}} e altri {{count}} si sono connessi",
|
||||
"connectedTwoMembers": "{{first}} e {{second}} si sono connessi",
|
||||
@@ -589,76 +529,21 @@
|
||||
"OldElectronAPPTitle": "Falla di sicurezza!",
|
||||
"oldElectronClientDescription1": "Sembri stare usando una versione obsoleta del client Jitsi Meet che ha dei problemi di sicurezza noti. Assicurati di aggiornarla presso il nostro ",
|
||||
"oldElectronClientDescription2": "ultima build",
|
||||
"oldElectronClientDescription3": " ora!",
|
||||
"moderationInEffectDescription": "Alza la mano, se vuoi prender la parola, per favore.",
|
||||
"moderationInEffectCSDescription": "Alza la mano, se vuoi condividere lo schermo, per favore.",
|
||||
"moderationInEffectVideoDescription": "Alza la mano, se vuoi avviare la tua videocamera, per favore.",
|
||||
"moderationInEffectTitle": "Il tuo microfono è stato spento dal moderatore",
|
||||
"moderationInEffectCSTitle": "La condivisione schermo è stata bloccata dal moderatore",
|
||||
"moderationInEffectVideoTitle": "La tua videocamera è stata spenta dal moderatore",
|
||||
"moderationRequestFromModerator": "Il moderatore vorrebbe che tu accendessi il microfono",
|
||||
"moderationRequestFromParticipant": "Vuole parlare",
|
||||
"moderationStartedTitle": "Moderazione in corso",
|
||||
"moderationStoppedTitle": "Moderazione interrotta",
|
||||
"moderationToggleDescription": "da {{participantDisplayName}}",
|
||||
"raiseHandAction": "Alza la mano",
|
||||
"reactionSounds": "Disattiva suoni",
|
||||
"groupTitle": "Notifiche"
|
||||
"oldElectronClientDescription3": " ora!"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Chiudi",
|
||||
"header": "Partecipanti",
|
||||
"headings": {
|
||||
"lobby": "Sala d'attesa ({{count}})",
|
||||
"participantsList": "Partecipanti alla riunione ({{count}})",
|
||||
"waitingLobby": "In attesa ({{count}})"
|
||||
},
|
||||
"headings": {
|
||||
"lobby": "({{count}}) in sala d'attesa",
|
||||
"participantsList": "({{count}}) partecipanti"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Permetti ai partecipanti di:",
|
||||
"allowVideo": "Autorizza video",
|
||||
"audioModeration": "Possono attivare audio",
|
||||
"blockEveryoneMicCamera": "Blocca audio e video a tutti",
|
||||
"invite": "Invita persone",
|
||||
"askUnmute": "Chiedi di attivare audio",
|
||||
"mute": "Silenzia",
|
||||
"muteAll": "Silenzia tutti",
|
||||
"muteEveryoneElse": "Silenzia tutti gli altri",
|
||||
"stopEveryonesVideo": "Ferma il video di tutti",
|
||||
"stopVideo": "Ferma il video",
|
||||
"unblockEveryoneMicCamera": "Sblocca audio e video a tutti",
|
||||
"videoModeration": "Avvia il loro video"
|
||||
"stopVideo": "Ferma il video"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "definita da altro utente",
|
||||
"passwordDigitsOnly": "Fino a {{number}} cifre",
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Aggiungi risposta",
|
||||
"answerPlaceholder": "Risposta {{index}}",
|
||||
"create": "Crea un sondaggio",
|
||||
"cancel": "Annulla",
|
||||
"pollOption" : "Risposta sondaggio {{index}}",
|
||||
"pollQuestion" : "Domanda Sondaggio",
|
||||
"questionPlaceholder": "Poni una domanda",
|
||||
"removeOption": "Elimina risposta",
|
||||
"send": "Invia"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Salta",
|
||||
"submit": "Invia"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Vota",
|
||||
"changeVote": "Cambia voto",
|
||||
"empty": "Non ci sono ancora sondaggi in questa riunione. Crea un sondaggi, da qui!",
|
||||
"hideDetailedResults": "Nascondi dettagli",
|
||||
"showDetailedResults": "Mostra dettagli"
|
||||
},
|
||||
"notification": {
|
||||
"title": "Un nuovo sondaggio è stato aggiunto alla riunione",
|
||||
"description": "Apri la scheda sondaggi per votare"
|
||||
}
|
||||
},
|
||||
"poweredby": "offerto da",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Errore audio e video:",
|
||||
@@ -699,7 +584,6 @@
|
||||
"errorDialOutFailed": "Impossibile fare la chiamata. Chiamata fallita",
|
||||
"errorDialOutStatus": "Errore nel ricevere lo stato della rete",
|
||||
"errorMissingName": "Inserire il proprio nome, per accedere alla riunione",
|
||||
"errorNoPermissions": "Devi autorizzare l'accesso al microfono e alla videocamera",
|
||||
"errorStatusCode": "Errore nella chiamata, codice: {{status}}",
|
||||
"errorValidation": "Numero inesistente",
|
||||
"iWantToDialIn": "Voglio chiamare il numero",
|
||||
@@ -712,7 +596,6 @@
|
||||
"or": "o",
|
||||
"premeeting": "Attesa riunione",
|
||||
"showScreen": "Avvia la schermata d'attesa della riunione",
|
||||
"keyboardShortcuts" : "Attiva le scorciatoie da tastiera",
|
||||
"startWithPhone": "Avvia usando il telefono, per parlare",
|
||||
"screenSharingError": "Errore di condivisione dello schermo:",
|
||||
"videoOnlyError": "Errore video:",
|
||||
@@ -734,7 +617,6 @@
|
||||
"ringing": "Sta suonando..."
|
||||
},
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Imposta il nome da visualizzare",
|
||||
"setEmailInput": "Inserisci e-mail",
|
||||
"setEmailLabel": "Imposta l'e-mail gravatar",
|
||||
@@ -749,15 +631,12 @@
|
||||
"beta": "BETA",
|
||||
"busy": "Stiamo cercando di liberare risorse per la registrazione. Riprova tra qualche minuto.",
|
||||
"busyTitle": "Tutti i registratori sono occupati",
|
||||
"copyLink": "Copia collegamento",
|
||||
"error": "Registrazione fallita. Prova di nuovo.",
|
||||
"errorFetchingLink": "Errore nel collegamento alla tua registrazione.",
|
||||
"expandedOff": "Registrazione interrotta",
|
||||
"expandedOn": "La registrazione della riunione è attiva.",
|
||||
"expandedPending": "La registrazione è in fase di avvio...",
|
||||
"failedToStart": "Non è stato possibile avviare la registrazione",
|
||||
"fileSharingdescription": "Condividi la registrazione con i partecipanti alla riunione",
|
||||
"linkGenerated": "Abbiamo generato un collegamento alla tua registrazione.",
|
||||
"live": "DIRETTA",
|
||||
"loggedIn": "Accesso effettuato come {{userName}}",
|
||||
"off": "Registrazione interrotta",
|
||||
@@ -772,8 +651,7 @@
|
||||
"signIn": "Entra",
|
||||
"signOut": "Esci",
|
||||
"unavailable": "Ops! Il {{serviceName}} non è al momento disponibile. Stiamo lavorando per risolvere il problema. Riprova più tardi.",
|
||||
"unavailableTitle": "Registrazione non disponibile",
|
||||
"uploadToCloud": "Carica in cloud"
|
||||
"unavailableTitle": "Registrazione non disponibile"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Trascina per aggiornare"
|
||||
@@ -792,13 +670,8 @@
|
||||
"signedIn": "Sto accedendo agli eventi del calendario per {{email}}. Fai click su «Disconnetti» per interrompere l’accesso agli eventi del calendario.",
|
||||
"title": "Calendario"
|
||||
},
|
||||
"desktopShareFramerate": "Frequenza di aggiornamento condivisone schermo",
|
||||
"desktopShareWarning": "Devi riavviare la condivisione schermo, per attivare le modifiche.",
|
||||
"desktopShareHighFpsWarning": "Una frequenza di aggiornamento più alta può mettere alla prova la tua connessione ad internet, durante la condivisione schermo. Devi riavviare la condivisione schermo, per attivare le modifiche.",
|
||||
"devices": "Dispositivi",
|
||||
"followMe": "Tutti mi seguono",
|
||||
"framesPerSecond": "schermate al secondo",
|
||||
"incomingMessage": "Messaggio in arrivo",
|
||||
"language": "Lingua",
|
||||
"loggedIn": "Connesso come {{name}}",
|
||||
"microphones": "Microfoni",
|
||||
@@ -806,19 +679,12 @@
|
||||
"more": "Altro",
|
||||
"name": "Nome",
|
||||
"noDevice": "Nessuno",
|
||||
"participantJoined": "Partecipante Entrato",
|
||||
"participantLeft": "Partecipante Uscito",
|
||||
"playSounds": "Suoni attivati",
|
||||
"reactions": "Reazioni riunione",
|
||||
"sameAsSystem": "Come nel sistema ({{label}})",
|
||||
"selectAudioOutput": "Uscita audio",
|
||||
"selectCamera": "Videocamera",
|
||||
"selectMic": "Microfono",
|
||||
"sounds": "Suoni",
|
||||
"speakers": "Altoparlanti",
|
||||
"startAudioMuted": "Tutti cominciano a microfono spento",
|
||||
"startVideoMuted": "Tutti cominciano a video disattivato",
|
||||
"talkWhileMuted": "Parla senza microfono",
|
||||
"startAudioMuted": "Tutti cominciano con il microfono disattivato",
|
||||
"startVideoMuted": "Tutti cominciano con il video disattivato",
|
||||
"title": "Impostazioni"
|
||||
},
|
||||
"settingsView": {
|
||||
@@ -849,7 +715,6 @@
|
||||
},
|
||||
"speaker": "Relatore",
|
||||
"speakerStats": {
|
||||
"search": "Cerca",
|
||||
"hours": "{{count}}h",
|
||||
"minutes": "{{count}}m",
|
||||
"name": "Nome",
|
||||
@@ -869,25 +734,21 @@
|
||||
},
|
||||
"toolbar": {
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Spegni/Accendi audio",
|
||||
"audioOnly": "Attiva/disattiva solo audio",
|
||||
"audioRoute": "Scegli l'uscita audio",
|
||||
"boo": "Boo",
|
||||
"callQuality": "Imposta qualità della chiamata",
|
||||
"cc": "Avvia/Ferma sottotitoli",
|
||||
"chat": "Entra/Esci da conversazione",
|
||||
"clap": "Applaudi",
|
||||
"document": "Apri/Chiudi documenti condivisi",
|
||||
"cc": "Attiva/disattiva sottotitoli",
|
||||
"chat": "Attiva/disattiva la conversazione",
|
||||
"document": "Attiva/disattiva documento condiviso",
|
||||
"download": "Scarica le nostre app",
|
||||
"embedMeeting": "Incorpora riunione altrove",
|
||||
"feedback": "Lascia un feedback",
|
||||
"fullScreen": "Apri/Chiudi schermo intero",
|
||||
"fullScreen": "Attiva/disattiva schermo intero",
|
||||
"grantModerator": "Autorizza moderatore",
|
||||
"hangup": "Lascia la riunione",
|
||||
"help": "Aiuto",
|
||||
"invite": "Invita persone",
|
||||
"kick": "Espelli partecipante",
|
||||
"laugh": "Ridi",
|
||||
"like": "Mi piace",
|
||||
"lobbyButton": "Attiva/disattiva sala d'attesa",
|
||||
"localRecording": "Abilita/disattiva controlli di registrazione locale",
|
||||
"lockRoom": "Attiva o disattiva password",
|
||||
@@ -903,45 +764,34 @@
|
||||
"pip": "Attiva/disattiva immagine nell’immagine",
|
||||
"privateMessage": "Invia messaggio privato",
|
||||
"profile": "Modifica profilo",
|
||||
"raiseHand": "Alza/Abbassa la mano",
|
||||
"reactionsMenu": "Apri/chiudi menù delle reaction",
|
||||
"recording": "Avvia/ferma registrazione",
|
||||
"raiseHand": "Attiva/disattiva alzata di mano",
|
||||
"recording": "Attiva/disattiva registrazione",
|
||||
"remoteMute": "Spegni microfono al partecipante",
|
||||
"remoteVideoMute": "Spegni videocamera del partecipante",
|
||||
"security": "Impostazioni di sicurezza",
|
||||
"Settings": "Attiva/disattiva impostazioni",
|
||||
"shareaudio": "Condividi audio",
|
||||
"sharedvideo": "Attiva/disattiva condivisione YouTube",
|
||||
"shareaudio": "Condividi audio",
|
||||
"shareRoom": "Invita qualcuno",
|
||||
"shareYourScreen": "Attiva/disattiva condivisione schermo",
|
||||
"shortcuts": "Attiva/disattiva scorciatoie",
|
||||
"show": "Mostra in primo piano",
|
||||
"silence": "Silenzio",
|
||||
"speakerStats": "Attiva/disattiva statistiche relatore",
|
||||
"surprised": "Sorpreso",
|
||||
"tileView": "Vedi tutti i partecipanti insieme, o uno solo",
|
||||
"toggleCamera": "Cambia videocamera",
|
||||
"toggleFilmstrip": "Attiva/disattiva pellicola",
|
||||
"videomute": "Attiva/disattiva videocamera",
|
||||
"videoblur": "Sfoca video",
|
||||
"selectBackground": "Scegli sfondo",
|
||||
"expand": "Espandi",
|
||||
"collapse": "Riduci"
|
||||
"selectBackground": "Scegli sfondo"
|
||||
},
|
||||
"addPeople": "Aggiungi persone alla chiamata",
|
||||
"audioSettings": "Impostazioni audio",
|
||||
"videoSettings": "Impostazioni video",
|
||||
"audioOnlyOff": "Disabilita modalità per banda limitata",
|
||||
"audioOnlyOn": "Abilita modalità per banda limitata",
|
||||
"audioRoute": "Scegli l'uscita audio",
|
||||
"authenticate": "Autenticazione",
|
||||
"boo": "Boo",
|
||||
"callQuality": "Imposta qualità video",
|
||||
"chat": "Apri / Chiudi conversazione",
|
||||
"clap": "Applaudi",
|
||||
"closeChat": "Chiudi conversazione",
|
||||
"closeReactionsMenu": "Chiudi il menù reazioni",
|
||||
"disableReactionSounds": "Puoi disattivare i suoni delle reaction, in questa riunione",
|
||||
"documentClose": "Chiudi documento condiviso",
|
||||
"documentOpen": "Apri documento condiviso",
|
||||
"download": "Scarica le nostre app",
|
||||
@@ -955,8 +805,6 @@
|
||||
"hangup": "Butta giù",
|
||||
"help": "Aiuto",
|
||||
"invite": "Invita persone",
|
||||
"laugh": "Ridi",
|
||||
"like": "Mi piace",
|
||||
"lobbyButtonDisable": "Disabilita sala d'attesa",
|
||||
"lobbyButtonEnable": "Abilita sala d'attesa",
|
||||
"login": "Accedi",
|
||||
@@ -975,33 +823,24 @@
|
||||
"noisyAudioInputTitle": "Il tuo microfono sembra rumoroso!",
|
||||
"noisyAudioInputDesc": "Sembra che il tuo microfono faccia dei rumori, prova a spegnerlo o cambiarlo per favore.",
|
||||
"openChat": "Apri una conversazione",
|
||||
"openReactionsMenu": "Apri il menù reazioni",
|
||||
"participants": "Partecipanti",
|
||||
"pip": "Abilita visualizzazione immagine nell'immagine",
|
||||
"privateMessage": "invia un messaggio privato",
|
||||
"profile": "Modifica profilo",
|
||||
"raiseHand": "Alza / Abbassa la mano",
|
||||
"raiseYourHand": "Alza la mano",
|
||||
"reactionBoo": "Invia boo",
|
||||
"reactionClap": "Invia applauso",
|
||||
"reactionLaugh": "Invia risata",
|
||||
"reactionLike": "Invia mi piace",
|
||||
"reactionSilence": "Invia silenzio",
|
||||
"reactionSurprised": "Invia sorpresa",
|
||||
"security": "Impostazioni di sicurezza",
|
||||
"Settings": "Impostazioni",
|
||||
"shareaudio": "Condividi audio",
|
||||
"sharedvideo": "Condividi un video Youtube",
|
||||
"shareRoom": "Invita partecipante",
|
||||
"shortcuts": "Visualizza scorciatoie",
|
||||
"silence": "Silenzio",
|
||||
"speakerStats": "Statistiche",
|
||||
"startScreenSharing": "Inizia la condivisione dello schermo",
|
||||
"startSubtitles": "Avvia sottotitoli",
|
||||
"stopScreenSharing": "Ferma la condivisione dello schermo",
|
||||
"stopSubtitles": "Ferma sottotitoli",
|
||||
"stopSharedVideo": "Ferma video YouTube",
|
||||
"surprised": "Sopresa",
|
||||
"talkWhileMutedPopup": "Stai provando a parlare? Il microfono è disattivato.",
|
||||
"tileViewToggle": "Vedi tutti i partecipanti insieme, o uno solo",
|
||||
"toggleCamera": "Cambia videocamera",
|
||||
@@ -1033,7 +872,6 @@
|
||||
"react-nativeGrantPermissions": "Seleziona <b><i>consenti</i></b> quando richiesto dal browser.",
|
||||
"safariGrantPermissions": "Seleziona <b><i>OK</i></b> quando richiesto dal browser."
|
||||
},
|
||||
"volumeSlider": "Sbarra volume",
|
||||
"videoSIPGW": {
|
||||
"busy": "Stiamo lavorando per liberare le risorse. Riprova tra qualche minuto.",
|
||||
"busyTitle": "Il servizio Stanza al momento è occupato",
|
||||
@@ -1078,7 +916,6 @@
|
||||
"videomute": "Il partecipante ha la videocamera spenta"
|
||||
},
|
||||
"welcomepage": {
|
||||
"addMeetingName": "Aggiungi Nome riunione",
|
||||
"accessibilityLabel": {
|
||||
"join": "Tocca per accedere",
|
||||
"roomname": "Inserisci nome stanza"
|
||||
@@ -1100,9 +937,6 @@
|
||||
"info": "Informazioni chiamata",
|
||||
"join": "CREA / UNISCITI",
|
||||
"jitsiOnMobile": "Jitsi su mobile – scarica le nostre app e dai inizio ad una riunione dovunque tu sia",
|
||||
"mobileDownLoadLinkIos": "Scarica app per iOS",
|
||||
"mobileDownLoadLinkAndroid": "Scarica app per Android",
|
||||
"mobileDownLoadLinkFDroid": "Scarica app da F-Droid",
|
||||
"moderatedMessage": "O <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">prepara una URL</a> in anticipo, per le riunioni di cui sei il moderatore.",
|
||||
"privacy": "Riservatezza",
|
||||
"recentList": "Recenti",
|
||||
@@ -1115,15 +949,7 @@
|
||||
"sendFeedback": "Invia feedback",
|
||||
"startMeeting": "Inizia riunione",
|
||||
"terms": "Termini di utilizzo",
|
||||
"title": "Il sistema di videoconferenza sicuro, funzionale e completamente gratuito.",
|
||||
"logo":{
|
||||
"calendar":"Logo calendario",
|
||||
"microsoftLogo":"Logo Microsoft",
|
||||
"logoDeepLinking":"Logo Jitsi meet",
|
||||
"desktopPreviewThumbnail":"Icona anteprima desktop",
|
||||
"googleLogo":"Logo Google",
|
||||
"policyLogo":"Logo normativa"
|
||||
}
|
||||
"title": "Il sistema di videoconferenza sicuro, funzionale e completamente gratuito."
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Invita altri",
|
||||
@@ -1133,8 +959,6 @@
|
||||
"header": "Aiuto"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Ammetti",
|
||||
"admitAll": "Ammetti tutti",
|
||||
"knockingParticipantList": "Lista dei partecipanti in attesa",
|
||||
"allow": "Autorizza",
|
||||
"backToKnockModeButton": "Nessuna password, richiedi l'accesso",
|
||||
@@ -1147,7 +971,6 @@
|
||||
"enableDialogText": "La sala d'attesa ti permette di proteggere la riunione concedendo l'ingresso solo alle persone autorizzate da un moderatore.",
|
||||
"enterPasswordButton": "Inserisci password riunione",
|
||||
"enterPasswordTitle": "Inserisci la password per entrare nella riunione",
|
||||
"errorMissingPassword": "Per favore, mettere la password della riunione",
|
||||
"invalidPassword": "Password errata",
|
||||
"joiningMessage": "Entrerai nella riunione non appena qualcuno approva la tua richiesta",
|
||||
"joinWithPasswordMessage": "Ho inviato la password per entrare, attendi...",
|
||||
@@ -1166,7 +989,6 @@
|
||||
"passwordField": "Inserisci la password della riunione",
|
||||
"passwordJoinButton": "Entra",
|
||||
"reject": "Respingi",
|
||||
"rejectAll": "Respingi tutti",
|
||||
"toggleLabel": "Attiva sala d'attesa"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,14 @@
|
||||
"disabled": "Ur tezmireḍ ara ad tesnubgteḍ medden.",
|
||||
"failedToAdd": "Timerna n yimttekkiyen ur teddi ara",
|
||||
"footerText": "Asuḍen yensa.",
|
||||
"loading": "Anadi ɣef yimdanen d wuṭṭunen n tiliɣri",
|
||||
"loadingNumber": "Asentem n wuṭṭun n tiliɣri",
|
||||
"loadingPeople": "Nadi imdanen i usnubget",
|
||||
"noResults": "Ulac igmaḍ n unadi yemṣadan",
|
||||
"noValidNumbers": "Ttxil-k·m sekcem uṭṭun n tiliɣri",
|
||||
"searchNumbers": "Rnu uṭṭunen n tiliɣri",
|
||||
"searchPeople": "Nadi imdanen",
|
||||
"searchPeopleAndNumbers": "Nadi imdanen neɣ rnu uṭṭunen-nsen n tiliɣri",
|
||||
"telephone": "Tiliɣri: {{number}}",
|
||||
"title": "Snubget-d imdanen ɣer temlilit-a",
|
||||
"shareLink": "Bḍu aseɣwen n usarag i usnubget n wiyaḍ",
|
||||
@@ -21,13 +28,7 @@
|
||||
"shareStream": "Bḍu aseɣwen n usuddem usrid",
|
||||
"shareInvite": "Bḍu tinubga n temlilit",
|
||||
"outlookEmail": "Imayl n Outlook",
|
||||
"copyLink": "Nɣel aseɣwen n temlilit",
|
||||
"contacts": "inermisen",
|
||||
"inviteMoreHeader": "Alla kečč i / kem i yellan deg temlilit",
|
||||
"linkCopied": "Aseɣwen ittwanɣel ɣer \"Ɣef afus\"",
|
||||
"searching": "Anadi...",
|
||||
"sipAddresses": "tansiwin sip",
|
||||
"phoneNumbers": "uṭṭunen n tiliɣri"
|
||||
"copyLink": "Nɣel aseɣwen n temlilit"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -69,18 +70,7 @@
|
||||
"titleWithPolls": "Asqerdec",
|
||||
"noMessagesMessage": "Ulac iznan akka tura deg temlilit. Bdu adiwenni da!",
|
||||
"you": "kečč·kemm",
|
||||
"fieldPlaceHolder": "Aru izen-inek·inem da",
|
||||
"messageTo": "Izen uslig i {{recipient}}",
|
||||
"privateNotice": "Izen uslig i {{recipient}}",
|
||||
"message": "Izen",
|
||||
"enter": "Kcem taxxamt",
|
||||
"messageAccessibleTitle": "{{user}} ad d-yeqqar:",
|
||||
"messageAccessibleTitleMe": "ad qqareɣ:",
|
||||
"smileysPanel": "Afeggag n Emoji",
|
||||
"tabs": {
|
||||
"chat": "Asqerdec",
|
||||
"polls": "Tifranin"
|
||||
}
|
||||
"fieldPlaceHolder": "Aru izen-inek·inem da"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Tetteqqneḍ ɣer temlilit-ik·im..."
|
||||
@@ -88,13 +78,14 @@
|
||||
"connection": {
|
||||
"ATTACHED": "Isedda",
|
||||
"AUTHENTICATING": "Asesteb",
|
||||
"AUTHFAIL": "Asesteb ur yeddi ara",
|
||||
"AUTHFAIL": "",
|
||||
"CONNECTED": "Yeqqen",
|
||||
"CONNECTING": "Tuqqna",
|
||||
"CONNFAIL": "Tuqqna ur teddi yara",
|
||||
"DISCONNECTED": "Ur yeqqin ara",
|
||||
"DISCONNECTING": "Tuffɣa",
|
||||
"ERROR": "Tuccḍa",
|
||||
"RECONNECTING": "Tulsa n tuqqna",
|
||||
"GOT_SESSION_ID": "Awway n usulay n tɣimit... Yemmed",
|
||||
"LOW_BANDWIDTH": "Tettwasens tvidyut i {{displayName}} i wakken ad tettwaḥraz tehri n tseftit",
|
||||
"FETCH_SESSION_ID": "Awway n usulay n tɣimit...",
|
||||
@@ -129,13 +120,8 @@
|
||||
"status": "Tuqqna:",
|
||||
"transport_plural": "Tumnayin:",
|
||||
"transport": "Tumnayt:",
|
||||
"e2e_rtt": "E2E RTT:",
|
||||
"audio_ssrc": "Imesli SSRC:",
|
||||
"codecs": "Codecs (A/V) : ",
|
||||
"participant_id": "Id n umtteki:",
|
||||
"savelogs": "Sekles iɣmisen",
|
||||
"video_ssrc": "Tavidyut SSRC:",
|
||||
"maxEnabledResolution": "tuzna tafellayt"
|
||||
"turn": "",
|
||||
"e2e_rtt": "E2E RTT:"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Zik",
|
||||
@@ -148,6 +134,7 @@
|
||||
"descriptionWithoutWeb": "Ulac d acu yeḍran? Neɛreḍ ad nseddu timlilit-inek·inem deg usnas n tnarit {{app}}.",
|
||||
"downloadApp": "Sider-d asnas",
|
||||
"launchWebButton": "Seddu deg web",
|
||||
"openApp": "",
|
||||
"title": "Seddu timlilit-ik·im deg {{app}}...",
|
||||
"tryAgainButton": "Ɛreḍ tikkelt-nniḍen ɣef tnarit",
|
||||
"ifDoNotHaveApp": "Ma yella mazal urɛad ur tesɛiḍ ara asnas:",
|
||||
@@ -202,10 +189,15 @@
|
||||
"done": "Immed",
|
||||
"enterDisplayName": "Ttxil-k·m sekcem isem-ik·im da",
|
||||
"error": "Tuccḍa",
|
||||
"externalInstallationMsg": "",
|
||||
"externalInstallationTitle": "",
|
||||
"goToStore": "",
|
||||
"gracefulShutdown": "Ameẓlu-nneɣ akka tura yensa i uṣeggem. Ma ulac aɣilif ɛreḍ tikkelt-nniḍen.",
|
||||
"IamHost": "Nekk d asenneftaɣ",
|
||||
"incorrectRoomLockPassword": "Awal uffir d arameɣtu",
|
||||
"incorrectPassword": "Isem n useqdac neɣ awal uffir ud arameɣt",
|
||||
"inlineInstallationMsg": "",
|
||||
"inlineInstallExtension": "Sbedd tura",
|
||||
"internalError": "Nesḥassef! Yella wayen ur nteddu ara akken iwata. Tuccḍa i d-iteddun i d-yeḍran: {{error}}",
|
||||
"internalErrorTitle": "Tuccḍa tagensant",
|
||||
"kickMessage": "Tzemreḍ ad tremseḍ {{participantDisplayName}} i wugar n telqayt.",
|
||||
@@ -213,7 +205,8 @@
|
||||
"kickParticipantDialog": "Tebɣiḍ s tidet ad tsuffɣeḍ imttekki-a?",
|
||||
"kickParticipantTitle": "Suffeɣ amttekki-a?",
|
||||
"kickTitle": "Ay! {{participantDisplayName}} isuffeɣ-ik·ikem-d seg temlilit",
|
||||
"liveStreaming": "Asuddem usrid",
|
||||
"liveStreaming": "",
|
||||
"liveStreamingDisabledForGuestTooltip": "Inebgawen ur zmiren ara ad bdun asuddem usrid.",
|
||||
"liveStreamingDisabledTooltip": "Beddu n usuddem usrid yensa.",
|
||||
"lockMessage": "Asekkeṛ n usarag ur yeddi ara.",
|
||||
"lockRoom": "Rnu timlilit $t(lockRoomPasswordUppercase)",
|
||||
@@ -240,6 +233,7 @@
|
||||
"popupError": "Iminig-ik·im yessewḥal isfuyla udhimen n usmel-a. Ma ulac aɣilif rmed isfuyla udhimen deg yiɣewwaren n yiminig-inek·inem syen ɛreḍ tikkelt-nniḍen.",
|
||||
"popupErrorTitle": "Isfuyla udhimen ttusweḥlen",
|
||||
"recording": "Asekles",
|
||||
"recordingDisabledForGuestTooltip": "Inebgawen ur zmiren ara ad bdun asekles.",
|
||||
"recordingDisabledTooltip": "Beddu n usekles yensa.",
|
||||
"rejoinNow": "Rnu tura",
|
||||
"remoteControlAllowedMessage": "{{user}} yeqbel asuter-ik·im n usenqed anmeggag!",
|
||||
@@ -256,6 +250,10 @@
|
||||
"reservationError": "Tuccḍa deg unagraw n uḥerri",
|
||||
"reservationErrorMsg": "Tangalt n tuccḍa: {{code}}, izen: {{msg}}",
|
||||
"retry": "Ɛreḍ tikkelt-nniḍen",
|
||||
"screenSharingFailedToInstall": "",
|
||||
"screenSharingFailedToInstallTitle": "",
|
||||
"screenSharingFirefoxPermissionDeniedError": "",
|
||||
"screenSharingFirefoxPermissionDeniedTitle": "",
|
||||
"screenSharingPermissionDeniedError": "Nesḥassef! Yella wayen ur nteddu ara akken iwata d tsirag n beṭṭu n ugdil. Ma ulac aɣilif ales asali syen ɛreḍ tikkelt-nniḍen.",
|
||||
"serviceUnavailable": "Ulac ameẓlu",
|
||||
"sessTerminated": "Yekfa usiwel",
|
||||
@@ -264,11 +262,12 @@
|
||||
"shareVideoTitle": "Bḍu tavidyut",
|
||||
"shareYourScreen": "Bḍut agdil-ik·im",
|
||||
"shareYourScreenDisabled": "Beṭṭu n ugdil yensa.",
|
||||
"shareYourScreenDisabledForGuest": "Inebgawen ur zmiren ara ad bḍun agdil.",
|
||||
"startLiveStreaming": "Bdu asuddem usrid",
|
||||
"startRecording": "Bdu asekles",
|
||||
"startRecording": "",
|
||||
"startRemoteControlErrorMessage": "Tella-d tuccḍa mi nettaɛraḍ ad nebdu tiɣimit n usenqed anmeggag!",
|
||||
"stopLiveStreaming": "Seḥbes asuddem usrid",
|
||||
"stopRecording": "Seḥbes asekles",
|
||||
"stopRecording": "",
|
||||
"stopRecordingWarning": "S tidet tebɣiḍ ad tesḥebseḍ asekles?",
|
||||
"stopStreamingWarning": "S tidet tebɣiḍ ad tesḥebseḍ asuddem usrid?",
|
||||
"streamKey": "Tasarut n usuddem usrid",
|
||||
@@ -276,12 +275,13 @@
|
||||
"thankYou": "Tanemmirt ɣef useqdec n {{appName}}!",
|
||||
"token": "ajuṭu",
|
||||
"tokenAuthFailed": "Suref-aɣ, ur tesɛiḍ ara tisirag ad tettekkiḍ deg usiwel-a.",
|
||||
"tokenAuthFailedTitle": "Asesteb ur yeddi ara",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"transcribing": "Aseskel",
|
||||
"unlockRoom": "Kkes timlilit $t(lockRoomPassword)",
|
||||
"userPassword": "Awal uffir n useqdac",
|
||||
"userPassword": "awal uffir n useqdac",
|
||||
"WaitForHostMsg": "Asarag <b>{{room}}</b> mazal ur yebdi ara. Ma yella d kečč·kemm i d asenneftaɣ, ttxil-k·m ilaq usesteb. Ma yella xaṭi, ttxil-k·m rǧu asenneftaɣ ad d-yaweḍ.",
|
||||
"WaitForHostMsgWOk": "Asarag <b>{{room}}</b> mazal ur yebdi ara. Ma yella d kečč·kemm i d asenneftaɣ, ttxil-k·m sit ɣef Ih i usesteb. Ma yella xaṭi, ttxil-k·m rǧu asenneftaɣ ad d-yaweḍ.",
|
||||
"WaitingForHost": "Aṛaǧu n usenneftaɣ ...",
|
||||
"Yes": "Ih",
|
||||
"yourEntireScreen": "Meṛṛa agdil-inek·inem",
|
||||
"add": "Rnu",
|
||||
@@ -292,9 +292,11 @@
|
||||
"screenSharingFailedTitle": "Beṭṭu n ugdil ur yeddi ara!",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "D awezɣi ma yili yermed usekles",
|
||||
"screenSharingFailed": "Suref-aɣ! Yella wayen ur neddi ara akken iwata, ur nessaweḍ ara ad nsenker beṭṭu n ugdil!",
|
||||
"e2eeToggleSet": "Sbadu tasarut",
|
||||
"muteEveryoneDialog": "Tebɣiḍ s tidet ad tsenseḍ yal yiwen? Ur tettizmireḍ ara ad talseḍ armad-nsen, maca zemren ad alsen armad melmi i bɣan.",
|
||||
"muteEveryoneTitle": "Sgugem yal yiwen?",
|
||||
"muteEveryoneSelf": "iman-ik·im",
|
||||
"e2eeSet": "Sbadu",
|
||||
"screenSharingAudio": "Bḍu ameslaw",
|
||||
"e2eeDescription": "Awgelhen seg yixef er yixef d ARMITAN akka tura. Ma ulac aɣilif err deg walliɣ-ik·im armad n uwgelhen seg yixef ɣer yixef ad issens akken iwata imeẓla i d-yettwamudden tama n yiqeddacen am: usekles, asuddem usrid d uttekki s tiliɣri. Err deg wallaɣ-ik·im daɣen, timlilit ad teddu kan i yimdanen i yettekkan seg yiminiggen yessefraken aragen i izemren ad ttwaskecmen.",
|
||||
"sendPrivateMessageCancel": "Azen ɣer ugraw",
|
||||
@@ -302,59 +304,7 @@
|
||||
"sendPrivateMessageOk": "Azen s wudem uslig",
|
||||
"e2eeWarning": "Ɣur-k·m: Mačči akk imttekkiyen n temlilit-a ttbanen ssefraken awgelhen seg yixef ɣer yixef. Ma yella tesremdeḍ-t, ur ssawaḍen ara ad ak·am-id-walin, ur ssawaḍen ad ak·am-d-slen.",
|
||||
"muteEveryoneElseTitle": "Sgugem yal yiwen slid {{whom}}?",
|
||||
"sendPrivateMessageTitle": "Azen s wudem uslig?",
|
||||
"readMore": "ugar",
|
||||
"shareAudio": "Continuer",
|
||||
"copied": "Yenɣel",
|
||||
"authenticationRequired": "Tlaq tuqqna",
|
||||
"login": "Aseqdac",
|
||||
"muteEveryonesVideoDialogOk": "Désactiver",
|
||||
"password": "Awal uffir",
|
||||
"user": "Aseqdac",
|
||||
"WaitingForHostTitle": "Aṛaǧu n usenneftaɣ ...",
|
||||
"muteEveryoneElsesVideoTitle": "Seḥbes tavidyut n yal yiwen ala {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "Zemren imttekiyen ad remden tavidyut-nsen deg yal lawan.",
|
||||
"muteEveryonesVideoTitle": "Seḥbes tavidyut n yal yiwen?",
|
||||
"permissionErrorTitle": "Isra tisirag",
|
||||
"videoLink": "Aseɣwen n tvidyut",
|
||||
"viewUpgradeOptions": "Wali iɣewaṛen n uleqqem",
|
||||
"moderationVideoLabel": "Sireg imttekiyen ad bdun tavidyut i yiman-nsen",
|
||||
"muteEveryoneDialogModerationOn": "Zemren imttekiyen ad aznen asuter n umeslay deg yal lawan.",
|
||||
"muteEveryoneElsesVideoDialog": "Ticki takamiṛat tensa, ur tettizmireḍ ara ad talseḍ armad-ines, maca nutni zemren ad alsen armad-ines melmi i bɣan.",
|
||||
"cameraTimeoutError": "Ur yezmir ara ad ibdu aɣbalu n tvudyut. Yemmut umenḍar!",
|
||||
"e2eeDisabledDueToMaxModeDescription": "Ur yezmir ara ad irmed awgelhen si ixef-ɣer-yixef acku aṭas i yellan n yimettekiyen.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "Ɣur-k.m: Awgelhen si ixef-ɣer-yixef ad yens s wudem awurman ma rnan-d ugar n yimettekiyen.",
|
||||
"micTimeoutError": "Ur yezmir ara ad ibdu aɣbalu n yimesli. Yemmut umenḍar!",
|
||||
"muteEveryonesVideoDialogModerationOn": "Zemren imttekiyen ad aznen asuter ad remden tavidyut-nsen deg yal lawan.",
|
||||
"muteParticipantsVideoDialog": "Tebɣiḍ s tidet ad tsenseḍ takamiṛat n umttekki-a? Ur tettizmireḍ ara ad talseḍ armad-is, maca nutni zemren ad alsen armad melmi i bɣan.",
|
||||
"moderationAudioLabel": "Sireg imttekiyen ad ksen iesli i yiman-nsen",
|
||||
"grantModeratorDialog": "Tebγiḍ s tidet ad tefkeḍ izerfan n usektem i {{participantName}}?",
|
||||
"grantModeratorTitle": "Efk izerfan n usektem",
|
||||
"muteParticipantsVideoBody": "Ur tezmareḍ ara ad talseḍ armad n tkamiṛat , maca zemren ad alsen armad melmi i bɣan.",
|
||||
"shareAudioTitle": "Amek ara tebḍuḍ imesli",
|
||||
"muteParticipantsVideoTitle": "Seḥbes takamiṛat n yimttekki-a?",
|
||||
"noDropboxToken": "Ajiṭun n Dropbox mačči d ameɣtu",
|
||||
"muteParticipantsVideoButton": "Seḥbes tavidyut n Youtube",
|
||||
"embedMeeting": "Sleɣ timlilit",
|
||||
"hideShareAudioHelper": "Ur d-skan ara adiweni-agi tikelt nniḍen",
|
||||
"shareAudioWarningD1": "ilaq ad tesḥebseḍ beṭṭu n ugdil send beṭṭu n yimesli inek.inem.",
|
||||
"shareScreenWarningTitle": "Ilaq ad tesḥebseḍ beṭṭu n umeslaw send beṭṭu n ugdil",
|
||||
"shareScreenWarningH1": "Ma yella tebɣiḍ ad tebḍuḍ kan agdil:",
|
||||
"shareScreenWarningD1": "ilaq ad tesḥebseḍ beṭṭu n umeslaw send beṭṭu n ugdil.",
|
||||
"sharedVideoLinkPlaceholder": "Aseɣwen n Youtube neɣ aseɣwen n tvidyut srid",
|
||||
"shareMediaWarningGenericH2": "Ma yella tebɣiḍ ad tebḍuḍ agdil d umeslaw",
|
||||
"sessionRestarted": "Allus n usenker n usiwel s ttawil n tqenṭert",
|
||||
"shareScreenWarningD2": "tesriḍ ad tesḥebseḍ beṭṭu n umeslaw, senker beṭṭu n ugdil rnu senqed taxtiṛt \"bḍu ameslaw\".",
|
||||
"userIdentifier": "Asulay n useqdac",
|
||||
"viewUpgradeOptionsContent": "I wakken ad tesεuḍ anekcum war talast ɣer tmahilin premium am usekles, azemmem, asuddem RTMP & wayen-nniḍen, ilaq ad tleqqmeḍ aɣawas-ik·im.",
|
||||
"permissionCameraRequiredError": "Tasiregt n tkamiṛat tettwasra i uttekki deg yisaragen s tvidyut. Ma ulac aɣilif, sireg-itt deg Yiɣewwaren",
|
||||
"permissionMicRequiredError": "Tasiregt n usawad tettwasra i uttekki deg yisaragen s umeslaw. Ma ulac aɣilif, sireg-it deg Yiɣewwaren",
|
||||
"viewUpgradeOptionsTitle": "Tufid-d tamahilt premium!",
|
||||
"remoteUserControls": "Isenqaden n useqdac anmeggag n {{username}}",
|
||||
"localUserControls": "Isenqaden n useqdac adigan",
|
||||
"shareAudioWarningTitle": "Ilaq ad tesḥebseḍ beṭṭu n ugdil send beṭṭu n umeslaw",
|
||||
"shareAudioWarningH1": "Ma yella tebɣiḍ ad tebḍuḍ kan ameslaw:",
|
||||
"shareAudioWarningD2": "tesriḍ ad talseḍ asenker n beṭṭu n ugdil rnu senqed taxtiṛt \"bḍu ameslaw\"."
|
||||
"sendPrivateMessageTitle": "Azen s wudem uslig?"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "tura d {{status}}"
|
||||
@@ -366,8 +316,7 @@
|
||||
"good": "Yelha",
|
||||
"rateExperience": "Ttxil-k·m ktazel tarmit-ik·im n temlilit",
|
||||
"veryBad": "Diri-t maḍi",
|
||||
"veryGood": "Yelha maḍi",
|
||||
"star": "Itri"
|
||||
"veryGood": "Yelha maḍi"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Tiririt",
|
||||
@@ -400,18 +349,11 @@
|
||||
"noNumbers": "Ulac uṭṭun n usiwel.",
|
||||
"noPassword": "Ula d yiwen",
|
||||
"noRoom": "Ulac taxxamt i yettwafernen i usiwel ɣer-s.",
|
||||
"numbers": "Uṭṭunen n usiwel",
|
||||
"password": "$t(lockRoomPasswordUppercase) :",
|
||||
"numbers": "",
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"title": "Bḍu",
|
||||
"tooltip": "Bḍu aseɣwen d telɣut n tuqqna n temlilit-a",
|
||||
"label": "Talɣut n temlilit",
|
||||
"inviteTextiOSPersonal": "{{name}} isnubget-ik·ikem ɣer temlilit.",
|
||||
"sip": "Tansiwin SIP",
|
||||
"copyNumber": "Nɣel uṭṭun",
|
||||
"inviteSipEndpoint": "I tmerna s useqdec n tansa n SIP, sekcem wa: {{sipUri}}",
|
||||
"inviteTextiOSJoinSilent": "Ma yella tetteqneḍ s wuṭṭun n texxamt, seqdec aseɣwen-a i wakken ad ternuḍ war ma teqqneḍ ɣer umeslaw: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Sit ɣef useɣwen-a i wakken ad ternuḍ: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "I tmerna s wuṭṭun n tiliɣri, seqdec uṭṭun-a: {{number}},,{{conferenceID}}#. Ma yella tettnadiḍ uṭṭun-nniḍen, ha-tt-a tebdart teččur: {{didUrl}}."
|
||||
"label": "Talɣut n temlilit"
|
||||
},
|
||||
"inviteDialog": {
|
||||
"alertText": "Ancad n kra n yimttekkiyen ur yeddi ara.",
|
||||
@@ -442,7 +384,7 @@
|
||||
"toggleScreensharing": "Uɣal gar tkamiṛat d beṭṭu n ugdil",
|
||||
"toggleShortcuts": "Sken neɣ ffer inegzumen n unasiw",
|
||||
"videoMute": "Sker neɣ seḥbes takamiṛat inek·inem",
|
||||
"toggleParticipantsPane": "Sken neɣ ffer agalis n yimttekkiyen"
|
||||
"videoQuality": "Sefrek taɣara n usiwel"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"busy": "Aql-aɣ nxeddem ad d-neslelli tiɣbula n usuddem. Ma ulac aɣilif, ɛreḍ tikkelt-nniḍen deg kra n tesdidin.",
|
||||
@@ -461,7 +403,7 @@
|
||||
"getStreamKeyManually": "Ur nessaweḍ ara ad d-nerr ula d yiwen n usuddem usrid. Ɛreḍ ad d-tawiḍ tasarut-ik·im n usuddem usrid seg Youtube.",
|
||||
"invalidStreamKey": "Tasarut n usuddem usrid yezmer mačči d tameɣtut.",
|
||||
"off": "Asuddem usrid yettuḥbes",
|
||||
"on": "Yebda usuddem usrid",
|
||||
"on": "rmed",
|
||||
"pending": "Beddu n usuddem usrid...",
|
||||
"serviceName": "Ameẓlu n usuddem usrid",
|
||||
"signedInAs": "Aql-ak·akem akka tura teqqneḍ d:",
|
||||
@@ -499,12 +441,12 @@
|
||||
"notModerator": "Kečč·kemm mačči d amaẓrag. Ur tezmireḍ ara ad tebduḍ neɣ ad tesḥebseḍ asekles adigan."
|
||||
},
|
||||
"moderator": "Aseɣyad",
|
||||
"no": "Uhu",
|
||||
"no": "uhu",
|
||||
"participant": "Imttekki",
|
||||
"participantStats": "Addad n yimttekki",
|
||||
"sessionToken": "Ajuṭu n tɣimit",
|
||||
"start": "Bdu asekles",
|
||||
"stop": "Seḥbes asekles",
|
||||
"start": "",
|
||||
"stop": "",
|
||||
"yes": "Ih"
|
||||
},
|
||||
"lockRoomPassword": "awal uffir",
|
||||
@@ -517,15 +459,16 @@
|
||||
"disconnected": "yeffeɣ",
|
||||
"focus": "Afukus n usarag",
|
||||
"focusFail": "{{component}} ulac-it - ɛreḍ deg {{ms}} tesinin",
|
||||
"grantedTo": "Izerfan n umaẓrag ttwamudden i {{to}}!",
|
||||
"invitedOneMember": "{{name}} yettwanced-d",
|
||||
"invitedThreePlusMembers": "{{name}} d {{count}} wiyaḍ ttwanecden-d",
|
||||
"invitedTwoMembers": "{{first}} d {{second}} ttwanecden-d",
|
||||
"kickParticipant": "{{kicked}} isuffeɣ-it {{kicker}}",
|
||||
"me": "Nekk",
|
||||
"moderator": "Izerfan n usektem ttwamudden",
|
||||
"moderator": "Izerfan n umaẓrag ttwamudden!",
|
||||
"muted": "Tebdiḍ asqerdec s tsusmi.",
|
||||
"mutedTitle": "Tettwasgugmeḍ!",
|
||||
"mutedRemotelyTitle": "Yesgugem-ik·ikem {{moderator}}",
|
||||
"mutedRemotelyTitle": "Yesgugem-ik·ikem {{participantDisplayName}}!",
|
||||
"mutedRemotelyDescription": "Tzemreḍ ad d-terreḍ imesli melmi i tebɣiḍ ad d-temmeslayeḍ. Sens-it mi ara tfakkeḍ ameslay i wakken ad tesbeɛdeḍ zzhir ɣef temlilit.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) yettwakkes sɣur yimttekki-nniḍen",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) yettusbadu sɣur yimttekki-nniḍen",
|
||||
@@ -533,6 +476,7 @@
|
||||
"somebody": "Albaɛḍ",
|
||||
"startSilentTitle": "Terniḍ s war tuffɣa n umeslaw!",
|
||||
"startSilentDescription": "Ttekki deg temlilit i wakken ad tremdeḍ ameslaw",
|
||||
"suboptimalExperienceDescription": "",
|
||||
"suboptimalExperienceTitle": "Alɣu n yiminig",
|
||||
"unmute": "Sgugem",
|
||||
"newDeviceCameraTitle": "Tettwaf-d tkamiṛat tamaynut",
|
||||
@@ -542,30 +486,9 @@
|
||||
"oldElectronClientDescription1": "Akka i nettwali tesseqdaceḍ lqem aqbur n umsaɣ Jitsi Meet i yesɛan uguren n tɣellist yettwassnen. Ma ulac aɣilif ḍmen ad tleqqmeḍ ",
|
||||
"OldElectronAPPTitle": "Ur teǧhid ara tɣellist!",
|
||||
"oldElectronClientDescription2": "lqem akk aneggaru",
|
||||
"oldElectronClientDescription3": " tura!",
|
||||
"allowAction": "Sireg",
|
||||
"groupTitle": "Ilɣa",
|
||||
"moderationRequestFromParticipant": "Ibɣa ad imeslay",
|
||||
"raiseHandAction": "Rfed afus",
|
||||
"reactionSounds": "Sens imesli",
|
||||
"allowedUnmute": "Tzemreḍ ad tekkseḍ asgugem i usawaḍ-ik·im, ad tesnekreḍ takamiṛat neɣ ad tebḍuḍ agdil.",
|
||||
"hostAskedUnmute": "Imḍebber yebɣa ad temmeslayeḍ",
|
||||
"screenShareNoAudio": " Tabewwaḍt n umeslaw n beṭṭu ur tettwaṛcam ara deg ugdil n tefrant n usfaylu.",
|
||||
"screenShareNoAudioTitle": "Ur yezmir ara ad yebḍu ameslaw n unagraw!",
|
||||
"moderationInEffectDescription": "Ma ulac aɣilif, rfed afus-ik·im ma tebɣiḍ ad temmeslayeḍ.",
|
||||
"moderationInEffectCSDescription": "Ma ulac aɣilif, rfed afus-ik·im ma tebɣiḍ ad tebḍuḍ agdil.",
|
||||
"moderationRequestFromModerator": "Asenneftaɣ yebɣa ad tekkseḍ asgugem",
|
||||
"moderationStartedTitle": "Asektem yebda",
|
||||
"moderationStoppedTitle": "Asektem yensa",
|
||||
"moderationToggleDescription": "sɣur {{participantDisplayName}}",
|
||||
"videoMutedRemotelyDescription": "Tzemreḍ ad ad t-tremdeḍ melmi tebɣiḍ.",
|
||||
"moderationInEffectVideoDescription": "Ma ulac aɣilif, rfed afus-ik·im ma tebɣiḍ ad tesnekreḍ takamiṛat.",
|
||||
"moderationInEffectTitle": "Asawaḍ-ik·im yettwasgugem sɣur yimḍebber",
|
||||
"moderationInEffectCSTitle": "Beṭṭu n ugdil yettusewḥel sɣur yimḍebber",
|
||||
"moderationInEffectVideoTitle": "Takamiṛat-ik·im tettusewḥel sɣur yimḍebber",
|
||||
"videoMutedRemotelyTitle": "Tavidyut-ik·im tettwasens sɣur {{moderator}}"
|
||||
"oldElectronClientDescription3": " tura!"
|
||||
},
|
||||
"passwordSetRemotely": "Yettusbadu sɣur yimttekki-nniḍen",
|
||||
"passwordSetRemotely": "yettusbadu sɣur yimttekki-nniḍen",
|
||||
"passwordDigitsOnly": "Alamma d {{number}} yizwilen",
|
||||
"poweredby": "yemmug-d sɣur",
|
||||
"presenceStatus": {
|
||||
@@ -586,8 +509,7 @@
|
||||
"setDisplayNameLabel": "Sbadu isem n uskan",
|
||||
"setEmailInput": "Sekcem-d imayl",
|
||||
"setEmailLabel": "Sbadu imayl-inek·inem n Gravatar",
|
||||
"title": "Amaɣnu",
|
||||
"avatar": "avaṭar"
|
||||
"title": "Amaɣnu"
|
||||
},
|
||||
"recording": {
|
||||
"authDropboxText": "Sali-d ɣer Dropbox",
|
||||
@@ -616,12 +538,7 @@
|
||||
"offBy": "{{name}} iseḥbes asekles",
|
||||
"limitNotificationDescriptionNative": "Seg tuget n usuter, asekles-inek·inem ad yesɛu kan {{limit}} tesdidin. I yiseklas war tilas, ɛreḍ <3>{{app}}</3>.",
|
||||
"limitNotificationDescriptionWeb": "Seg tuget n usuter, asekles-inek·inem ad yesɛu kan {{limit}} tesdidin. I yiseklas war tilas, ɛreḍ <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"onBy": "{{name}} yebda asekles",
|
||||
"copyLink": "Sukken aseɣwen",
|
||||
"errorFetchingLink": "Tuccḍa lawan n tririt n useɣwen n usekles.",
|
||||
"linkGenerated": "Nsirew-d aseɣwen i usekles-inek·inem.",
|
||||
"uploadToCloud": "Sali ɣer usigna",
|
||||
"serviceDescriptionCloud": "Asekles deg usigna"
|
||||
"onBy": "{{name}} yebda asekles"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Jbed-d i usnirem"
|
||||
@@ -649,19 +566,7 @@
|
||||
"startVideoMuted": "Yeffer waddad n yal yiwen",
|
||||
"title": "Iɣewwaren",
|
||||
"microphones": "Isawaḍen",
|
||||
"speakers": "Imsiwilen",
|
||||
"sounds": "Imeslan",
|
||||
"desktopShareWarning": "Ilaq ad talseḍ asenker n beṭṭu n ugdil i yiɣewwaren imaynuten i wakken ad ṭṭfen ibeddilen.",
|
||||
"desktopShareHighFpsWarning": "Beṭṭu n tnarit s unya afellay izmer ad isaẓay tuqqna, Ilaq ales n tnekra n beṭṭu n ugdil akken asbadu amaynut ad iddu.",
|
||||
"incomingMessage": "Iteddu-d yizen",
|
||||
"participantJoined": "Yerna-d yimttekki",
|
||||
"participantLeft": "Imttekki azelmaḍ",
|
||||
"playSounds": "Rmed ṣṣut",
|
||||
"reactions": "Tisedmirin n temlilit",
|
||||
"sameAsSystem": "Kifkif akked unagraw ({{label}})",
|
||||
"talkWhileMuted": "Mmeslay ma yettwakkes ṣṣut",
|
||||
"desktopShareFramerate": "Anya n beṭṭu n tnarit",
|
||||
"framesPerSecond": "tugniwin s tasint"
|
||||
"speakers": "Imsiwilen"
|
||||
},
|
||||
"settingsView": {
|
||||
"alertOk": "IH",
|
||||
@@ -695,14 +600,12 @@
|
||||
"minutes": "{{count}} n tesdidin",
|
||||
"name": "Isem",
|
||||
"seconds": "{{count}} n tsinin",
|
||||
"speakerStats": "Addad n yimsiwel",
|
||||
"speakerTime": "Akud n yimsiwel",
|
||||
"search": "Rechercher"
|
||||
"speakerStats": "",
|
||||
"speakerTime": "Akud n yimsiwel"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"title": "{{app}} yesra ad yesseqdec asawaḍ d tkamiṛat-inek·inem.",
|
||||
"genericTitle": "Timlilit tesra aseqdec n usawaḍ d tkamiṛat inek·inem."
|
||||
"title": "{{app}} yesra ad yesseqdec asawaḍ d tkamiṛat-inek·inem."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"rejoinKeyTitle": "Kcem",
|
||||
@@ -712,15 +615,15 @@
|
||||
"toolbar": {
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Rmed/Sens imesli kan",
|
||||
"audioRoute": "Fren ibenk n yimesli",
|
||||
"callQuality": "Sefrek taɣara n tvidyut",
|
||||
"audioRoute": "",
|
||||
"callQuality": "",
|
||||
"cc": "Ffer/Sken iduzwilen",
|
||||
"chat": "Ffer/Sken asfaylu n udiwenni",
|
||||
"document": "Ldi / Mdel isemli yettwabḍan",
|
||||
"feedback": "Eǧǧ tamuɣli",
|
||||
"feedback": "",
|
||||
"fullScreen": "Ɛeddi ɣer ugdil aččuran",
|
||||
"hangup": "Eǧǧ asiwel",
|
||||
"invite": "Snubget imdanen",
|
||||
"invite": "",
|
||||
"kick": "Suffeɣ amttekki",
|
||||
"localRecording": "Ɛeddi ɣer yisenqaden n usekles adigan",
|
||||
"lockRoom": "Snefli awal uffir n temlilit",
|
||||
@@ -734,48 +637,27 @@
|
||||
"remoteMute": "Sgugem imttekki",
|
||||
"Settings": "Sken/Fneẓ iɣewwaren",
|
||||
"sharedvideo": "Rmed/Sens beṭṭu n tvidyut n Youtube",
|
||||
"shareRoom": "Snubget-d albaɛḍ",
|
||||
"shareRoom": "",
|
||||
"shareYourScreen": "Rmed/Sens beṭṭu n ugdil",
|
||||
"shortcuts": "Rmed/Sens inegzumen",
|
||||
"show": "Sken ɣef usayes",
|
||||
"show": "",
|
||||
"speakerStats": "Sken/Ffer tiddadanin n yimsiwel",
|
||||
"tileView": "Err askan d aɛban",
|
||||
"toggleCamera": "Rmed/sens takamiṛat",
|
||||
"tileView": "",
|
||||
"toggleCamera": "",
|
||||
"videomute": "Rmed/Sens tavidyut",
|
||||
"videoblur": "Rmed/Sens arway n tvidyut",
|
||||
"privateMessage": "Azen izen uslig",
|
||||
"help": "Tallelt",
|
||||
"toggleFilmstrip": "Sken/Ffer tilemyin",
|
||||
"lobbyButton": "Rmed/sens askar Lobby",
|
||||
"moreOptions": "Sken ugar n textiṛiyin",
|
||||
"download": "Sali-d isnasen-nneɣ",
|
||||
"muteEveryone": "Sgugem yal yiwen",
|
||||
"muteEveryoneElse": "Sgugem-iten i meṛṛa",
|
||||
"security": "Tixtiṛiyin n tɣellist",
|
||||
"shareaudio": "Bḍu ameslaw",
|
||||
"expand": "Développer",
|
||||
"collapse": "Ḍfes",
|
||||
"participants": "Imttekkiyen",
|
||||
"embedMeeting": "Sleɣ timlilit",
|
||||
"silence": "Tasusmi",
|
||||
"reactionsMenu": "Ldi / Mdel umuɣ n tsedmirin",
|
||||
"remoteVideoMute": "Sens takamiṛat n yimttekki",
|
||||
"grantModerator": "Mudd tisirag n usektem",
|
||||
"laugh": "Taḍsa",
|
||||
"like": "Adebbuz d asawen",
|
||||
"boo": "Boo",
|
||||
"clap": "Aṣeffaq",
|
||||
"surprised": "Awham",
|
||||
"selectBackground": "Fren agilal",
|
||||
"muteEveryonesVideo": "Sens tavidyut n yal yiwen",
|
||||
"muteEveryoneElsesVideo": "Sens tavidyut n yal yiwen"
|
||||
"moreOptions": "Sken ugar n textiṛiyin"
|
||||
},
|
||||
"addPeople": "Rnu-d imdanen ɣer usiwel-inek·inem",
|
||||
"audioOnlyOff": "Sens askar n tehri n tesfift adday",
|
||||
"audioOnlyOn": "Rmed askar n tehri n tesfift adday",
|
||||
"audioRoute": "Fren ibenk n yimesli",
|
||||
"audioRoute": "",
|
||||
"authenticate": "Sesteb",
|
||||
"callQuality": "Sefrek taɣara n tvidyut",
|
||||
"callQuality": "",
|
||||
"chat": "Ldi / Mdel asqerdec",
|
||||
"closeChat": "Mdel asqerdec",
|
||||
"documentClose": "Mdel isemli yettwabḍan",
|
||||
@@ -784,9 +666,9 @@
|
||||
"enterTileView": "Kcem ɣer uskan aɛban",
|
||||
"exitFullScreen": "Ffeɣ seg ugdil aččuran",
|
||||
"exitTileView": "Ffeɣ seg uskan aɛban",
|
||||
"feedback": "Eǧǧ tamuɣli",
|
||||
"feedback": "",
|
||||
"hangup": "Eǧǧ",
|
||||
"invite": "Snubget imdanen",
|
||||
"invite": "",
|
||||
"login": "Qqen",
|
||||
"logout": "Tufɣa",
|
||||
"lowerYourHand": "Ṣubb afus-ik·im",
|
||||
@@ -799,18 +681,20 @@
|
||||
"raiseYourHand": "Rfed afus-ik·im",
|
||||
"Settings": "Iɣewwaren",
|
||||
"sharedvideo": "Bḍu tavidyut n Youtube",
|
||||
"shareRoom": "Snubget-d albaɛḍ",
|
||||
"shareRoom": "",
|
||||
"shortcuts": "Wali inegzumen",
|
||||
"speakerStats": "Addad n yimsiwlen",
|
||||
"speakerStats": "",
|
||||
"startScreenSharing": "Bdu beṭṭu n ugdil",
|
||||
"startSubtitles": "Bdu iduzwilen",
|
||||
"stopScreenSharing": "Seḥbes beṭṭu n ugdil",
|
||||
"stopSubtitles": "Seḥbes iduzwilen",
|
||||
"stopSharedVideo": "Seḥbes tavidyut n Youtube",
|
||||
"talkWhileMutedPopup": "Tettaɛraḍeḍ ad d-temmeslayeḍ? Tettwasgugmeḍ.",
|
||||
"tileViewToggle": "Err askan d aɛban",
|
||||
"toggleCamera": "Rmed/sens takamiṛat",
|
||||
"tileViewToggle": "",
|
||||
"toggleCamera": "",
|
||||
"videomute": "Seqleɛ / Seḥbes takamirat",
|
||||
"startvideoblur": "Rwi agilal-inu",
|
||||
"stopvideoblur": "Sens arway n ugilal",
|
||||
"privateMessage": "Azen izen uslig",
|
||||
"moreOptions": "Ugar n textiṛiyin",
|
||||
"help": "Tallelt",
|
||||
@@ -821,35 +705,7 @@
|
||||
"noAudioSignalTitle": "Ulac akk anekcum i d-yekkan seg usawaḍ-inek·inem!",
|
||||
"lobbyButtonDisable": "Sens askar Lobby",
|
||||
"lobbyButtonEnable": "Rmed askar Lobby",
|
||||
"noAudioSignalDesc": "Ma yella ur tɛemmdeḍ ara asensi-ines seg yiɣewwaren n unagraw neɣ n warrum, muqel ad tbeddleḍ ibenk.",
|
||||
"audioSettings": "Iɣewwaren n umeslaw",
|
||||
"videoSettings": "Iɣewwaren n tvidyut",
|
||||
"download": "Sali-d isnasen-nneɣ",
|
||||
"e2ee": "Awgelhen seg yixef ɣer yixef",
|
||||
"muteEveryone": "Sgugem yal yiwen",
|
||||
"security": "Tixtiṛiyin n tɣellist",
|
||||
"shareaudio": "Bḍu ameslaw",
|
||||
"embedMeeting": "Sleɣ timlilit",
|
||||
"participants": "Imttekkiyen",
|
||||
"silence": "Tasusmi",
|
||||
"boo": "Boo",
|
||||
"reactionBoo": "Azen tasedmirt n boo",
|
||||
"clap": "Aṣeffaq",
|
||||
"closeReactionsMenu": "Mdel umuɣ n tsedmirin",
|
||||
"noAudioSignalDialInLinkDesc": "Uṭṭunen n unekcum",
|
||||
"reactionClap": "Azen tasedmirt n useffaq",
|
||||
"reactionLaugh": "Azen tasedmert n teḍsa",
|
||||
"reactionLike": "Azen tasedmert n udebbuz d asawen",
|
||||
"reactionSilence": "Azen tasedmirt n tsusmi",
|
||||
"reactionSurprised": "Azen tasedmirt n ubati",
|
||||
"disableReactionSounds": "Tzemreḍ ad tsenseḍ imesliyen n tsedmirt i temlilit-a",
|
||||
"laugh": "Taḍsa",
|
||||
"like": "Adebbuz d asawen",
|
||||
"muteEveryonesVideo": "Sens takamiṛat n yal yiwen",
|
||||
"openReactionsMenu": "Ldi umuɣ n tsedmirin",
|
||||
"stopAudioSharing": "Seḥbes beṭṭu n umeslaw",
|
||||
"surprised": "Awham",
|
||||
"selectBackground": "Fren agilal"
|
||||
"noAudioSignalDesc": "Ma yella ur tɛemmdeḍ ara asensi-ines seg yiɣewwaren n unagraw neɣ n warrum, muqel ad tbeddleḍ ibenk."
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Bdu / Seḥbes izwal isnawanen",
|
||||
@@ -895,6 +751,8 @@
|
||||
"labelTooltipAudioOnly": "Askar n tehri n tesfift adday yermed",
|
||||
"ld": "LD",
|
||||
"lowDefinition": "Tabadut taddayt",
|
||||
"onlyAudioAvailable": "D ameslaw kan i yellan",
|
||||
"onlyAudioSupported": "Ala ameslaw i nessefrak deg yiminig-a.",
|
||||
"sd": "SD",
|
||||
"standardDefinition": "Tabadut taslugant",
|
||||
"ldTooltip": "Awali n tvidyut n tbadut taddayt",
|
||||
@@ -909,14 +767,9 @@
|
||||
"mute": "Imttekki yettwasgugem",
|
||||
"muted": "Yettwasgugem",
|
||||
"remoteControl": "Bdu / Asenqed agemmaḍ",
|
||||
"show": "Sken ɣef usayes",
|
||||
"show": "",
|
||||
"videomute": "Imttekki isseḥbes takamiṛat",
|
||||
"domuteOthers": "Sgugem-iten i meṛṛa",
|
||||
"videoMuted": "Tensa tkamiṛat",
|
||||
"domuteVideoOfOthers": "Sens takamiṛat n yal yiwen",
|
||||
"grantModerator": "Mudd tisirag n usektem",
|
||||
"connectionInfo": "Talɣut n tuqqna",
|
||||
"domuteVideo": "Sens takamiṛat"
|
||||
"domuteOthers": "Sgugem-iten i meṛṛa"
|
||||
},
|
||||
"welcomepage": {
|
||||
"accessibilityLabel": {
|
||||
@@ -947,24 +800,7 @@
|
||||
"title": "Asarag s tvidyut d aɣelsan, d ummid yerna baṭel",
|
||||
"goSmall": "Ddu",
|
||||
"getHelp": "Awi tallalt",
|
||||
"roomNameAllowedChars": "Isem n temlilit ur ilaq ara ad ilin deg-s isekkilen-a: ?, &, :, ', \", %, #.",
|
||||
"addMeetingName": "Rnu isem n temlilit",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"startMeeting": "Bdu timlilit",
|
||||
"logo": {
|
||||
"calendar": "Alugu n umitay",
|
||||
"microsoftLogo": "Alugu n Microsoft",
|
||||
"logoDeepLinking": "Alugu Jitsi Meet",
|
||||
"googleLogo": "Alugu n Google",
|
||||
"desktopPreviewThumbnail": "Tanfult n teskant n tnarit",
|
||||
"policyLogo": "Alugu n tsertit"
|
||||
},
|
||||
"mobileDownLoadLinkAndroid": "Sader asnas n uziraz i Android",
|
||||
"mobileDownLoadLinkFDroid": "Sader asnas n uziraz i F-Droid",
|
||||
"moderatedMessage": "Neɣ <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">ḥerr zik URL n temlilit</a> anida i telliḍ d kečč kan i d imḍebber.",
|
||||
"headerSubtitle": "Timliliyin n tɣellist d tɣara meqqren",
|
||||
"jitsiOnMobile": "Jitsi ɣef uziraz - sader isnasen-nneɣ syen tebduḍ timlilit seg wanda i tebɣiḍ",
|
||||
"mobileDownLoadLinkIos": "Sader asnas n uziraz i iOS"
|
||||
"roomNameAllowedChars": "Isem n temlilit ur ilaq ara ad ilin deg-s isekkilen-a: ?, &, :, ', \", %, #."
|
||||
},
|
||||
"prejoin": {
|
||||
"or": "neɣ",
|
||||
@@ -996,40 +832,12 @@
|
||||
"iWantToDialIn": "Bɣiɣ ad qqneɣ ɣer",
|
||||
"errorDialOut": "Asuddes n wuṭṭun d awezɣi",
|
||||
"audioAndVideoError": "Tuccḍa deg umeslaw d tvidyut:",
|
||||
"joinAudioByPhone": "Ttekki s umeslaw n tiliɣri",
|
||||
"joinMeeting": "Ttekki deg temlilit",
|
||||
"linkCopied": "Aseɣwen yettwanɣel 'ɣef wafus'",
|
||||
"premeeting": "Timlilit tuzwirt",
|
||||
"showScreen": "Rmed agdil n temlilit tuzwirt",
|
||||
"keyboardShortcuts": "Rmed inegzumen n unasiw",
|
||||
"audioDeviceProblem": "Yella wugur d yibenk-ik·im n umeslaw",
|
||||
"connection": {
|
||||
"good": "Tuqqna-inek·inem internet tettban tgerrez!",
|
||||
"nonOptimal": "Tuqqna-inek·inem internet ur tgerrez ara maḍi",
|
||||
"poor": "Tuqqna-inek·inem internet txuṣṣ aṭas"
|
||||
},
|
||||
"connectionDetails": {
|
||||
"audioClipping": "Negmen ad yettwagzem umeslaw-inek·inem.",
|
||||
"audioHighQuality": "Negmen belli ameslaw-inek·inem ad yesεu taɣara igerrzen aṭas.",
|
||||
"audioLowNoVideo": "Negmen belli taɣara n umeslaw-inek·inem ad tili tṣubb yerna ulac tavidyut.",
|
||||
"goodQuality": "Gedha! Taɣara n umidyat-inek·inem ad tili tgerrez aṭas.",
|
||||
"noMediaConnectivity": "Ur nessaweḍ ara ad nserked tuqqna n umidya i usekyed-a. Ssebba n waya deg tudet d aɣrab n tmes neɣ d NAT.",
|
||||
"noVideo": "Negmen belli tavidyut-ik·im ad tili txuṣ aṭas.",
|
||||
"undetectable": "Ma mazal ur tezmireḍ ara ad tsiwleḍ deg yiminig, Wali ma yella imsmeɣrzen n imesli, asawaḍ akked tkamiṛat qaɛsen ne alla, daɣen ma yella tefkiḍ izerfan i yiminig ad iseqdec asawaḍ akked tkamiṛat, daɣen ma yella tesɛiḍ lqem aneggaru n yiminig. Ma mazal ugur, nermes aneflay n usnas web.",
|
||||
"veryPoorConnection": "Negmen belli taɣara n usiwel-inek·inem ad yili ixuṣ aṭas.",
|
||||
"videoFreezing": "Nerǧa d akken tavidyut ad teḥbes, ad tuɣal d taberkant neɣ texreb.",
|
||||
"videoHighQuality": "Negmen belli tavidyut-ik·im ad tesεu taɣara igerrzen.",
|
||||
"videoLowQuality": "Nerǧa tavidyut ad tenɣes deg tɣara deg wayen icudden ɣer ubeqqeḍ ines.",
|
||||
"videoTearing": "Nerǧa tavidyut ad tenɣes deg ipiksilen neɣ ad tesɛu cammat."
|
||||
},
|
||||
"errorMissingName": "Ma ulac aɣilif, sekcem isem-ik·im i waken ad ternuḍ ɣer temlilit",
|
||||
"errorNoPermissions": "Ilaq ad tremdeḍ anekcum ɣer usawaḍ d tkamiṛat"
|
||||
"joinAudioByPhone": "Ttekki s umeslaw n tiliɣri"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"buttonText": "Sbedd asiɣzef Chrome",
|
||||
"dontShowAgain": "Ur iyi-d-ssutur ara aya tikkelt-nniḍen",
|
||||
"installExtensionText": "Sbedd asiɣzef i umsidef n uwitay n Google d Office 365",
|
||||
"close": "Mdel"
|
||||
"installExtensionText": "Sbedd asiɣzef i umsidef n uwitay n Google d Office 365"
|
||||
},
|
||||
"lobby": {
|
||||
"joinWithPasswordMessage": "Aneɛruḍ n uttekki s wawal uffir, ttxil-k·m rǧu...",
|
||||
@@ -1051,32 +859,15 @@
|
||||
"joinRejectedMessage": "Asuter-inek·inem n uttekki yettwagi sɣur amaẓrag.",
|
||||
"backToKnockModeButton": "Ulac awal uffir, suter attekki deg ubdil-is",
|
||||
"toggleLabel": "Rmed Lobby",
|
||||
"joiningWithPasswordTitle": "Attekki s wawal uffir...",
|
||||
"allow": "Sireg",
|
||||
"enterPasswordButton": "Sekcem awal uffir n temlilit",
|
||||
"passwordField": "Sekcem awal uffir n temlilit",
|
||||
"passwordJoinButton": "Semlil",
|
||||
"rejectAll": "Agi akk",
|
||||
"joinTitle": "Ttekki deg temlilit",
|
||||
"notificationTitle": "Taxxamt n uraǧu",
|
||||
"errorMissingPassword": "Ma ulac aɣilif, sekcem awal n uεeddi n temlilit",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} yettwagi ad yernu sɣur {{originParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} yettusireg ad yernu sɣur {{originParticipantName}}",
|
||||
"notificationLobbyDisabled": "Lobby yettwasens sɣur {{originParticipantName}}",
|
||||
"notificationLobbyEnabled": "Lobby yettwarmed sɣur {{originParticipantName}}",
|
||||
"admit": "Steεref",
|
||||
"admitAll": "Steεref s kullec",
|
||||
"knockingParticipantList": "Tadbart n yimttekkiyen n usṭebṭeb"
|
||||
"joiningWithPasswordTitle": "Attekki s wawal uffir..."
|
||||
},
|
||||
"security": {
|
||||
"about": "Tzemreḍ ad ternuḍ $t(lockRoomPassword) ɣer temlilit-ik·im. Imttekkiyen sran ad d-mudden $t(lockRoomPassword) send ad ttwaqeblen ad ttekkin deg temlilit.",
|
||||
"aboutReadOnly": "Imttekkiyen imaẓragen zemren ad rnun $t(lockRoomPassword) ɣer temlilit-ik·im. Imttekkiyen sran ad d-mudden $t(lockRoomPassword) send ad ttwaqeblen ad ttekkin deg temlilit.",
|
||||
"insecureRoomNameWarning": "Isem n texxamt yella ccekk deg-s. Imttekkiyen ur tebɣiḍ ara zemren ad d-rnun ɣer usarag-ik·im. Xemmem ad tḥarzeḍ timlilit-ik·im s useqdec n tqeffalt n tɣellist.",
|
||||
"securityOptions": "Tixtiṛiyin n tɣellist"
|
||||
"insecureRoomNameWarning": "Isem n texxamt yella ccekk deg-s. Imttekkiyen ur tebɣiḍ ara zemren ad d-rnun ɣer usarag-ik·im. Xemmem ad tḥarzeḍ timlilit-ik·im s useqdec n tqeffalt n tɣellist."
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Snubget-d wiyaḍ",
|
||||
"youAreAlone": "D kečč·kemm kan i yellan deg temlilit"
|
||||
"button": "Snubget-d wiyaḍ"
|
||||
},
|
||||
"defaultNickname": "am. Jayn Pink",
|
||||
"e2ee": {
|
||||
@@ -1088,85 +879,5 @@
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Agens n tallalt"
|
||||
},
|
||||
"polls": {
|
||||
"create": {
|
||||
"send": "Azen",
|
||||
"cancel": "Sefex",
|
||||
"addOption": "Rnu aɣewwaṛ",
|
||||
"answerPlaceholder": "Aɣewwaṛ {{index}}",
|
||||
"questionPlaceholder": "Efk asteqsi",
|
||||
"removeOption": "Kkes aɣewwaṛ",
|
||||
"create": "Rnu asenqed",
|
||||
"pollOption": "Taxtiṛt n usenqed {{index}}",
|
||||
"pollQuestion": "Asteqsi n usenqed"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Ttu",
|
||||
"submit": "Azen"
|
||||
},
|
||||
"results": {
|
||||
"hideDetailedResults": "Ffer tilɣa",
|
||||
"showDetailedResults": "Sken talqayt",
|
||||
"vote": "Tafrant",
|
||||
"changeVote": "Beddel tafrant",
|
||||
"empty": "Ulac akka tura isenqaden deg temlilit. Bdu asenqed da!"
|
||||
},
|
||||
"notification": {
|
||||
"title": "Asenqed amaynut yettwarna ɣer temlilt-a",
|
||||
"description": "Ldi iccer n yisenqad i ufran"
|
||||
}
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Snes",
|
||||
"pleaseWait": "Ttxil-k rǧu...",
|
||||
"none": "Ula d yiwen",
|
||||
"image1": "Taftist",
|
||||
"image5": "Adrar",
|
||||
"image7": "Alluy n yiṭṭij",
|
||||
"deleteImage": "Kkes tugna",
|
||||
"desktopShare": "Bḍu tanarit",
|
||||
"desktopShareError": "Ur izmir ara ad ibḍu tanarit",
|
||||
"blur": "Aluɣu",
|
||||
"title": "Igilalen uhlisen",
|
||||
"removeBackground": "Kkes agilal",
|
||||
"addBackground": "Rnu agilal",
|
||||
"image6": "Tiẓgi ",
|
||||
"image4": "Taftilt n wannag aberkan",
|
||||
"uploadedImage": "Sali-d tugna {{index}}",
|
||||
"image2": "Aɣrab acebḥan arawsan",
|
||||
"image3": "Taxxamt tacebḥant tilemt",
|
||||
"webAssemblyWarning": "WebAssembly ur yettusefrak ara",
|
||||
"backgroundEffectError": "Asnes n yisemda n ugilal yecceḍ.",
|
||||
"slightBlur": "Cwiṭ n uluɣu"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Mdel",
|
||||
"actions": {
|
||||
"mute": "Asusam",
|
||||
"muteEveryoneElse": "Sgugem-iten i meṛṛa",
|
||||
"allowVideo": "Sireg tavidyut",
|
||||
"invite": "Snubget-d albaɛḍ",
|
||||
"muteAll": "Sgugem meṛṛa",
|
||||
"stopEveryonesVideo": "Seḥbes tavidyut n yal yiwen",
|
||||
"stopVideo": "Seḥbes tavidyut n Youtube",
|
||||
"allow": "Sireg i yimttekkiyen ad:",
|
||||
"unblockEveryoneMicCamera": "Serreḥ i usawaḍ d tkamiṛat n yal yiwen",
|
||||
"videoModeration": "Bdan tavidyut-nsen",
|
||||
"audioModeration": "Kksen asgugem i yiman-nsen",
|
||||
"blockEveryoneMicCamera": "Sewḥel asawaḍ d tkamiṛat n yal yiwen",
|
||||
"askUnmute": "Suter tririt n ṣṣut"
|
||||
},
|
||||
"header": "Imttekkiyen",
|
||||
"headings": {
|
||||
"lobby": "Lobby ({{count}})",
|
||||
"participantsList": "Imttekkiyen n temlilit ({{count}})",
|
||||
"waitingLobby": "Araǧu deg lobby ({{count}})"
|
||||
}
|
||||
},
|
||||
"embedMeeting": {
|
||||
"title": "Sleɣ timlilit-a"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Alugu, iseɣwan ɣer usebter agejdan",
|
||||
"volumeSlider": "Tigri n ubleɣ"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,17 +17,21 @@
|
||||
"inviteMoreMailSubject": "Rejónher la conferéncia {{appName}}",
|
||||
"inviteMorePrompt": "Convidar mai de monde",
|
||||
"linkCopied": "Ligam copiat al quichapapièrs",
|
||||
"loading": "Recèrca de monde e de numèro de telefòn",
|
||||
"loadingNumber": "Validacion del numèro de telefòn",
|
||||
"loadingPeople": "Recèrca de monde de convidar",
|
||||
"noResults": "Pas cap de resultat trobat",
|
||||
"noValidNumbers": "Picatz lo numèro de telefòn",
|
||||
"outlookEmail": "Outlook Email",
|
||||
"searchNumbers": "Apondre de numèros de telefòn",
|
||||
"searchPeople": "Cercar de monde",
|
||||
"searchPeopleAndNumbers": "Cercar de monde o apondre lor numèros de telefòn",
|
||||
"shareInvite": "Partejar invitacion conferéncia",
|
||||
"shareLink": "Partejar lo ligam de la conferéncia per convidar de monde",
|
||||
"shareStream": "Partejar la ligam de la difusion en dirècte",
|
||||
"telephone": "Telefòn : {{number}}",
|
||||
"title": "Convidatz de monde a vòstra conferéncia",
|
||||
"yahooEmail": "Yahoo Email",
|
||||
"phoneNumbers": "numèros de telefòn",
|
||||
"searching": "Recèrca...",
|
||||
"sipAddresses": "adreças sip"
|
||||
"yahooEmail": "Yahoo Email"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -75,18 +79,12 @@
|
||||
"smileysPanel": "Panèl d’Emoji",
|
||||
"title": "Messatjariá",
|
||||
"titleWithPolls": "Messatjariá",
|
||||
"you": "vos",
|
||||
"enter": "Dintrar dins la sala",
|
||||
"tabs": {
|
||||
"chat": "Messatjariá",
|
||||
"polls": "Sondatges"
|
||||
}
|
||||
"you": "vos"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"buttonText": "Installar l’extension Chrome",
|
||||
"dontShowAgain": "Me mostrar pas mai aquò",
|
||||
"installExtensionText": "Installar l’extension per l’integracion de Google Calendar e Office 365",
|
||||
"close": "Tampar"
|
||||
"installExtensionText": "Installar l’extension per l’integracion de Google Calendar e Office 365"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Connexion a vòstra reünion…"
|
||||
@@ -104,7 +102,8 @@
|
||||
"FETCH_SESSION_ID": "Obtencion de session-id...",
|
||||
"GET_SESSION_ID_ERROR": "Obténer l’error session-id : {{code}}",
|
||||
"GOT_SESSION_ID": "Obtencion de session-id... Fach",
|
||||
"LOW_BANDWIDTH": "La vidèo per {{displayName}} es estada copada per estalviar la banda passanta"
|
||||
"LOW_BANDWIDTH": "La vidèo per {{displayName}} es estada copada per estalviar la banda passanta",
|
||||
"RECONNECTING": "Un problèma ret s'es produita. Reconnexion en cors..."
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Adreça :",
|
||||
@@ -157,6 +156,7 @@
|
||||
"ifHaveApp": "S’avètz ja l’aplicacion :",
|
||||
"joinInApp": "Rejónher la conferéncia en utilizant l’aplicacion",
|
||||
"launchWebButton": "Lançar del navigador",
|
||||
"openApp": "Telecargar l’aplicacion",
|
||||
"title": "Aviada de vòstra conferéncia dins {{app}}…",
|
||||
"tryAgainButton": "Tornar ensajar del burèu"
|
||||
},
|
||||
@@ -214,12 +214,17 @@
|
||||
"e2eeWarning": "AVERTIMENT : pas totes los participants d'aquesta conferéncia semblan poder suportar lo chiframent del cap a la fin. Se l'activatz poiràn pas vos veire nimai vos entendre.",
|
||||
"enterDisplayName": "Volgatz picar vòstre nom aquí",
|
||||
"error": "Error",
|
||||
"externalInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran.",
|
||||
"externalInstallationTitle": "Extension requesida",
|
||||
"goToStore": "Anar al webstore",
|
||||
"gracefulShutdown": "Lo servici es actualament en mantenença. Ensajatz tornamai pus tard.",
|
||||
"grantModeratorDialog": "Volètz vertadièrament far venir aqueste participant moderator ?",
|
||||
"grantModeratorTitle": "Passar moderator",
|
||||
"IamHost": "Soi l’òste",
|
||||
"incorrectPassword": "Nom de compte o senhal incorrècte",
|
||||
"incorrectRoomLockPassword": "Senhal incorrècte",
|
||||
"inlineInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran.",
|
||||
"inlineInstallExtension": "Installar ara",
|
||||
"internalError": "Òu ! Quicòm a pas foncionat. L'error seguenta s'es producha : {{error}}",
|
||||
"internalErrorTitle": "Error intèrna",
|
||||
"kickMessage": "Podètz contactat {{participantDisplayName}} per mai de detalhs.",
|
||||
@@ -229,6 +234,7 @@
|
||||
"kickTitle": "Ai ! {{participantDisplayName}} vos a forabandit de la conferéncia",
|
||||
"liveStreaming": "La difusion en dirècte es estada arrestada",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossible pendent un enregistrament actiu",
|
||||
"liveStreamingDisabledForGuestTooltip": "Los convidats pòdon pas aviar una difusion en dirècte.",
|
||||
"liveStreamingDisabledTooltip": "Difusion en dirècte desactivada.",
|
||||
"lockMessage": "Impossible de verrolhar la conferéncia.",
|
||||
"lockRoom": "Ajustar un $t(lockRoomPasswordUppercase) a la conferéncia",
|
||||
@@ -258,11 +264,12 @@
|
||||
"passwordNotSupported": "Ajustar un $t(lockRoomPassword) a una conferéncia es pas suportat.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) pas suportat",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) requesit",
|
||||
"popupError": "Vòstre navigador bloca las fenèstras que sorgisson a partir d'aqueste site. Mercés d'activar aquelas fenèstras dins los paramètres de vòstre navigador e de tornar ensajar.",
|
||||
"popupError": "Vòstre navigator bloca las fenèstras que sorgisson a partir d'aqueste site. Mercés d'activar aquelas fenèstras dins los paramètres de vòstre navigator e de tornar ensajar.",
|
||||
"popupErrorTitle": "Fenèstra que sorgís blocada",
|
||||
"readMore": "mai",
|
||||
"recording": "Enregistrament",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossible pendent una difusion activa",
|
||||
"recordingDisabledForGuestTooltip": "Los convits pòdon pas lançar d’enregistraments.",
|
||||
"recordingDisabledTooltip": "L’enregistrament es desactivat.",
|
||||
"rejoinNow": "Participar ara",
|
||||
"remoteControlAllowedMessage": "{{user}} a acceptat vòstra demanda de contraròtle alonhat !",
|
||||
@@ -282,6 +289,10 @@
|
||||
"screenSharingAudio": "Partejar l’àudio",
|
||||
"screenSharingFailed": "Ops ! Quicòm a trucat, avèm pas pogut començar lo partiment d'ecran!",
|
||||
"screenSharingFailedTitle": "Fracàs del partiment d'ecran !",
|
||||
"screenSharingFailedToInstall": "Òu ! Fracàs de l'installacion de partatge d'ecran.",
|
||||
"screenSharingFailedToInstallTitle": "Fracàs de l'installacion de partatge d'ecran",
|
||||
"screenSharingFirefoxPermissionDeniedError": "Quicòm a fach mèuca quand èrem a ensajar de partejar vòstre ecran. Mercés de verificar qu’avètz donat l’autorizacion de lo partejar.",
|
||||
"screenSharingFirefoxPermissionDeniedTitle": "Ops ! Avèm pas pogut aviar lo partatge d’ecran.",
|
||||
"screenSharingPermissionDeniedError": "Òps ! Quicòm s'es pas ben passat amb l'autorizacion de vòstra autorizacion de partatge d'ecran. Mercés de recargar e tornar ensajar.",
|
||||
"sendPrivateMessage": "Avètz recentament recebut un messatge privat. Avètz ensajat d’i respondre en privat, o volètz enviar lo messatge al grop ?",
|
||||
"sendPrivateMessageCancel": "Enviar al grop",
|
||||
@@ -294,6 +305,7 @@
|
||||
"shareVideoTitle": "Partejar una vidèo",
|
||||
"shareYourScreen": "Partejar vòstre ecran",
|
||||
"shareYourScreenDisabled": "Lo partiment d’ecran es desactivat.",
|
||||
"shareYourScreenDisabledForGuest": "Los convits pòdon pas partejar l’ecran.",
|
||||
"startLiveStreaming": "Aviar una difusion en dirècte",
|
||||
"startRecording": "Arrestar l'enregistrament",
|
||||
"startRemoteControlErrorMessage": "Una error s'es produsida en ensajar de començar la session de contraròtle a distància !",
|
||||
@@ -313,55 +325,9 @@
|
||||
"userPassword": "senhal utilizaire",
|
||||
"WaitForHostMsg": "La conferéncia <b>{{room}}</b> a pas encara començat. Se sètz l’òst volgatz ben vos identificar. Autrament esperatz qu’arribe l’òste.",
|
||||
"WaitForHostMsgWOk": "La conferéncia <b>{{room}}</b> a pas encara començat. Se sètz l’òst volgatz ben clicar Ok per vos identificar. Autrament esperatz qu’arribe l’òste.",
|
||||
"WaitingForHost": "En espèra de l’òste...",
|
||||
"Yes": "Òc",
|
||||
"yourEntireScreen": "Vòstre ecran complet",
|
||||
"authenticationRequired": "Autentificacion requerida",
|
||||
"login": "Connexion",
|
||||
"muteEveryoneElsesVideoDialog": "Un còp la camèra desactivada, poiretz pas la reactivar, mas pòdon la reactivar quand vòlgan.",
|
||||
"WaitingForHostTitle": "En espèra de l’òste...",
|
||||
"embedMeeting": "Integrar la conferéncia",
|
||||
"hideShareAudioHelper": "Afichar pas mai aquesta fenèstra",
|
||||
"micTimeoutError": "Aviada impossibla de la font àudio. Relambi despassat !",
|
||||
"moderationAudioLabel": "Permetre als convidats de se copar lo son",
|
||||
"moderationVideoLabel": "Permetre als convidats d’aviar lor vidèo",
|
||||
"muteEveryoneDialogModerationOn": "Los participants pòdon enviar una requèsta per parlar quand vòlgan.",
|
||||
"muteEveryoneElsesVideoTitle": "Arrestar la vidèo de tot lo monde levat {{whom}} ?",
|
||||
"muteEveryonesVideoTitle": "Arrestar la vidèo de tot lo monde ?",
|
||||
"muteParticipantsVideoButton": "Arrestar la camèra",
|
||||
"muteParticipantsVideoTitle": "Desactivar la camèra d’aqueste participant ?",
|
||||
"noDropboxToken": "Cap de geton Dropbox pas valid",
|
||||
"password": "Senhal",
|
||||
"sessionRestarted": "Sonada reaviada pel pont",
|
||||
"shareAudio": "Contunhar",
|
||||
"shareAudioTitle": "Cossí partejar l’àudio",
|
||||
"shareAudioWarningTitle": "Devètz arrestar lo partiment d’ecran abans lo partiment d’àudio",
|
||||
"shareAudioWarningH1": "Se volètz partejar pas que l’àudio :",
|
||||
"shareAudioWarningD1": "devètz arrestar lo partiment d’ecran abans lo partiment d’àudio.",
|
||||
"shareMediaWarningGenericH2": "Se volètz partejar vòstre ecran e l’àudio",
|
||||
"shareScreenWarningTitle": "Devètz arrestar lo partiment àudio abans lo partiment de l’ecran",
|
||||
"shareScreenWarningH1": "Se volètz partejar pas que l’ecran :",
|
||||
"shareScreenWarningD1": "devètz arrestar lo partiment àudio abans lo partiment de l’ecran.",
|
||||
"sharedVideoLinkPlaceholder": "Ligam YouTube o ligam vidèo dirèct",
|
||||
"userIdentifier": "Identificador utilizaire",
|
||||
"cameraTimeoutError": "Aviada impossibla de la font vidèo. Relambi despassat !",
|
||||
"muteEveryonesVideoDialog": "Los participants pòdon activar lor vidèo quand vòlgan.",
|
||||
"muteEveryonesVideoDialogModerationOn": "Los participants pòdon enviar una requèsta per activar lor vidèo quand vòlgan.",
|
||||
"muteEveryonesVideoDialogOk": "Desactivar",
|
||||
"permissionErrorTitle": "Autorizacion requerida",
|
||||
"videoLink": "ligam vidèo",
|
||||
"viewUpgradeOptions": "Veire las opcions de mesa a nivèl",
|
||||
"viewUpgradeOptionsTitle": "Avètz descobèrt una foncionalitat premium !",
|
||||
"e2eeDisabledDueToMaxModeDescription": "Impossible d'activar lo chiframent del cap a la fin a causa d'un nombre tròp bèl de participants dins la conferéncia.",
|
||||
"remoteUserControls": "Contraròtle a distància de l'utilizaire {{username}}",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "AVERTIMENT : lo chiframent del cap a la fin serà automaticament desactivat se mai de participants rejonhent la conferéncia.",
|
||||
"permissionCameraRequiredError": "L’autorizacion de la camèra es requerida per participar a la conferéncia amb la vidèo. Mercés de la donar als Paramètres",
|
||||
"permissionMicRequiredError": "L’autorizacion del microfòn es requerida per participar a la conferéncia amb l’àudio. Mercés de la donar als Paramètres",
|
||||
"viewUpgradeOptionsContent": "Per obténer un accès sens limit a las foncionalitats premium coma l’enregistrament, la transcripcion, la difusion RTMP e encara mai, devètz passar al nivèl superior.",
|
||||
"muteParticipantsVideoDialog": "Volètz vertadièrament copar la camèra d’aqueste participant ? Poiretz pas li activar de nòu, mas poiriá se la restablir quand vòlga.",
|
||||
"muteParticipantsVideoBody": "Poiretz pas lor activar la camèra de nòu, mas poirián se la restablir quand vòlga.",
|
||||
"shareAudioWarningD2": "devètz reaviar lo partiment d’ecran e clicar l’opcion « partejar l’àudio ».",
|
||||
"shareScreenWarningD2": "devètz arrestar lo partiment àudio, aviar lo partiment d’ecran e clicar l’opcion « partejar l’àudio ».",
|
||||
"localUserControls": "Contraròtles de l’utilizaire local"
|
||||
"yourEntireScreen": "Vòstre ecran complet"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "ara es {{status}}"
|
||||
@@ -382,8 +348,7 @@
|
||||
"good": "Bona",
|
||||
"rateExperience": "Mercés de donar una nòta a vòstra experiéncia",
|
||||
"veryBad": "Fòrça marrida",
|
||||
"veryGood": "Fòrça bona",
|
||||
"star": "Estela"
|
||||
"veryGood": "Fòrça bona"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Centre d’ajuda"
|
||||
@@ -423,14 +388,7 @@
|
||||
"numbers": "Sonar de numèros",
|
||||
"password": "$t(lockRoomPasswordUppercase) :",
|
||||
"title": "Partejar",
|
||||
"tooltip": "Partejar lo ligam e las informacions d’aquesta conferéncia",
|
||||
"copyNumber": "Copiar lo numèro",
|
||||
"inviteTextiOSPersonal": "{{name}} vos convida a la conferéncia.",
|
||||
"sip": "adreça SIP",
|
||||
"inviteSipEndpoint": "Per rejónher en utilizant l’adreça SIP, picatz aquò : {{sipUri}}",
|
||||
"inviteTextiOSPhone": "Per participar per telefòn, utilizatz aqueste numèro : {{number}},,{{conferenceID}}#. Se cercatz un numèro diferent, vaquí la lista complèta : {{didUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Clicatz lo ligam seguent per rejónher : {{inviteUrl}}.",
|
||||
"inviteTextiOSJoinSilent": "Se sonatz via un aparelh de sala de reünion, utilizatz aqueste ligam per rejónher sens connectar l’àudio : {{silentUrl}}."
|
||||
"tooltip": "Partejar lo ligam e las informacions d’aquesta conferéncia"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "Avèm un pauc patit a manténer la connexion.",
|
||||
@@ -461,7 +419,7 @@
|
||||
"toggleScreensharing": "Caplevar entre camèra e partatge d'ecran",
|
||||
"toggleShortcuts": "Mostrar o amagar los acorchis clavièr",
|
||||
"videoMute": "Aviar o arrestar vòstra camèra",
|
||||
"toggleParticipantsPane": "Afichar o amagar lo panèl dels participants"
|
||||
"videoQuality": "Gerir la qualitat de las sonadas"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"busy": "Sèm a ensajar de liurar de ressorças flux. Mercés de tornar ensajar dins una estona.",
|
||||
@@ -526,13 +484,7 @@
|
||||
"passwordField": "Picatz lo senhal de la conferéncia",
|
||||
"passwordJoinButton": "Rejónher",
|
||||
"reject": "Regetar",
|
||||
"toggleLabel": "Activar la sala d'espèra",
|
||||
"admit": "Acceptar",
|
||||
"admitAll": "Tot acceptar",
|
||||
"rejectAll": "Tot regetar",
|
||||
"errorMissingPassword": "Mercés de picar lo senhal de la conferéncia",
|
||||
"disableDialogContent": "La sala d’espèra es actualament activada. Aquesta foncionalitat assegura que los participants indesirables poiràn pas participar. La volètz desactivar ?",
|
||||
"enableDialogText": "La sala d’espèra vos permet de protegir vòstras conferéncias en autorizant las personas de dintrar qu’aprèp l’aprobacion formala d’un moderator."
|
||||
"toggleLabel": "Activar la sala d'espèra"
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -577,15 +529,16 @@
|
||||
"disconnected": "desconnectat",
|
||||
"focus": "Focus de conferéncia",
|
||||
"focusFail": "{{component}} es pas disponible - ensajatz tornamai dins {{ms}} sec",
|
||||
"grantedTo": "Dreches moderator acordats a {{to}} !",
|
||||
"invitedOneMember": "{{name}} es estat convidat",
|
||||
"invitedThreePlusMembers": "{{name}} e {{count}} autres son estats convidats",
|
||||
"invitedTwoMembers": "{{first}} e {{second}} son estats convidats",
|
||||
"kickParticipant": "{{kicked}} es estat expulsat per {{kicker}}",
|
||||
"me": "Ieu",
|
||||
"moderator": "Sètz ara moderator",
|
||||
"moderator": "Dreches moderator acordats !",
|
||||
"muted": "Avètz començat la conversacion en mut.",
|
||||
"mutedRemotelyDescription": "Podètz totjorn activar vòstre microfòn per prendre la paraula. Desactivatz lo microfò quand terminetz per evitar los bruches parasits.",
|
||||
"mutedRemotelyTitle": "{{participantDisplayName}} vos a mes en silenci",
|
||||
"mutedRemotelyTitle": "{{participantDisplayName}} vos a mes en silenci !",
|
||||
"mutedTitle": "Sètz en mut !",
|
||||
"newDeviceAction": "Utilizar",
|
||||
"newDeviceAudioTitle": "Nòu periferic àudio detectat",
|
||||
@@ -600,30 +553,9 @@
|
||||
"somebody": "Qualqu'un",
|
||||
"startSilentDescription": "Rejónher la conferéncia per activar l’àudio",
|
||||
"startSilentTitle": "Avètz jonch sens cap de sortida àudio !",
|
||||
"suboptimalBrowserWarning": "Planhèm que vòstra experiéncia de la conferéncia siá pas de las bonas. Sèm a cercar de solucions per melhorar aquò, d’aquel temps, ensajatz un dels <a href='{{recommendedBrowserPageLink}}' target='_blank'>navigadors compatibles</a>.",
|
||||
"suboptimalExperienceTitle": "Avertiment del navigador",
|
||||
"unmute": "Restablir lo son",
|
||||
"allowAction": "Autorizar",
|
||||
"videoMutedRemotelyTitle": "{{moderator}} a copat vòstra camèra",
|
||||
"moderationInEffectTitle": "Lo moderator a amudit vòstre microfòn",
|
||||
"moderationInEffectVideoTitle": "Lo moderator a blocat vòstra camèra",
|
||||
"videoMutedRemotelyDescription": "La podètz totjorn tornar activar.",
|
||||
"moderationInEffectCSTitle": "Lo moderator a blocat lo partiment d’ecran",
|
||||
"moderationRequestFromModerator": "L’òste volriá que restabliguèssetz vòstre son",
|
||||
"moderationRequestFromParticipant": "Vòl parlar",
|
||||
"moderationStartedTitle": "Moderacion començada",
|
||||
"moderationStoppedTitle": "Moderacion arrestada",
|
||||
"moderationToggleDescription": "per {{participantDisplayName}}",
|
||||
"raiseHandAction": "Levar la man",
|
||||
"reactionSounds": "Desactivar los sons",
|
||||
"groupTitle": "Notificacions",
|
||||
"hostAskedUnmute": "Lo moderator vos que parletz",
|
||||
"moderationInEffectDescription": "Volgatz levar la man se volètz parlar.",
|
||||
"screenShareNoAudioTitle": "Partiment impossible de l’àudio del sistèma !",
|
||||
"allowedUnmute": "Vos podètz restablir lo son del microfòn, aviar la camèra e partejar l’ecran.",
|
||||
"screenShareNoAudio": " La casa Partejar l’àudio es pas estada marcada a l’ecran de seleccion de la fenèstra.",
|
||||
"moderationInEffectCSDescription": "Volgatz levar la man se volètz partejar vòstre ecran.",
|
||||
"moderationInEffectVideoDescription": "Volgatz levar la man se volètz aviar vòstra camèra."
|
||||
"suboptimalBrowserWarning": "Planhèm que vòstra experiéncia de la conferéncia siá pas de las bonas. Sèm a cercar de solucions per melhorar aquò, d’aquel temps, ensajatz un dels <a href='{{recommendedBrowserPageLink}}' target='_blank'>navegators compatibles</a>.",
|
||||
"suboptimalExperienceTitle": "Avertiment del navegador",
|
||||
"unmute": "Restablir lo son"
|
||||
},
|
||||
"passwordDigitsOnly": "Fins a {{number}} chifras",
|
||||
"passwordSetRemotely": "causit per qualqu'un mai",
|
||||
@@ -652,10 +584,7 @@
|
||||
"noVideo": "Nos esperam a trobat vòstra qualitat vidèo òrra.",
|
||||
"veryPoorConnection": "Nos esperam a trobar vòstra qualitat vidèo plan òrra.",
|
||||
"videoFreezing": "Nos esperam a veire vòstra vidèo se gelar, venir negra e se pixelizar.",
|
||||
"videoHighQuality": "Nos esperam a trobar vòstra qualitat vidèo de bona qualitat.",
|
||||
"undetectable": "Se capitatz totjorn pas de sonar del navigador estant, vos recomandam de vos assegurar que vos naut-parlaires, lo microfòn e la camèra son corrèctament configurats, qu’avètz donadas las autorizacions al navegador pel microfòn e la camèra e que lo navigador es a jorn. Se tenètz d’aver de dificultats per sonar, devètz contactar lo desvolopaire de l’aplicacion Web.",
|
||||
"videoLowQuality": "Presumissèm que vòstra vidèo aurà una baissa qualitat tocant la frequéncia d’imatge e la resolucion.",
|
||||
"videoTearing": "Presumissèm que vòstra vidèo serà pixelizada e aurà d’artefacts visuals."
|
||||
"videoHighQuality": "Nos esperam a trobar vòstra qualitat vidèo de bona qualitat."
|
||||
},
|
||||
"copyAndShare": "Copiar e partejar lo ligam de conferéncia",
|
||||
"dialing": "A sonar",
|
||||
@@ -681,11 +610,7 @@
|
||||
"startWithPhone": "Començar amb l’àudio del telefòn",
|
||||
"videoOnlyError": "Error vidèo :",
|
||||
"videoTrackError": "Creacion d’una pista àudio impossibla.",
|
||||
"viewAllNumbers": "veire totes los numèros",
|
||||
"errorValidation": "Validacion del numèro fracassada",
|
||||
"keyboardShortcuts": "Activar los acorchis de clavièr",
|
||||
"errorStatusCode": "Error de numerotacion, còdi d’estat : {{status}}",
|
||||
"errorNoPermissions": "Devètz activar l’accès al microfòn e a la camèra"
|
||||
"viewAllNumbers": "veire totes los numèros"
|
||||
},
|
||||
"presenceStatus": {
|
||||
"busy": "Ocupat",
|
||||
@@ -705,8 +630,7 @@
|
||||
"setDisplayNameLabel": "Causissètz vòstre escais",
|
||||
"setEmailInput": "Picatz lo corrièl",
|
||||
"setEmailLabel": "Definissètz vòstre corrièl per Gravatar",
|
||||
"title": "Perfil",
|
||||
"avatar": "avatar"
|
||||
"title": "Perfil"
|
||||
},
|
||||
"raisedHand": "Volriá charrar",
|
||||
"recording": {
|
||||
@@ -735,13 +659,7 @@
|
||||
"signIn": "Connexion",
|
||||
"signOut": "Se desconnectar",
|
||||
"unavailable": "Ops ! Lo {{serviceName}} es pas disponible pel moment. Sèm a reglar aqueste problèma. Mercés de tornar ensajar mai tard.",
|
||||
"unavailableTitle": "Enregistrament indisponible",
|
||||
"copyLink": "Copiar lo ligam",
|
||||
"linkGenerated": "Avèm generat un ligam pel vòstre enregistrament.",
|
||||
"uploadToCloud": "Enviar al cloud",
|
||||
"limitNotificationDescriptionWeb": "A causa d’una demanda fòrta vòstre enregistrament serà limitat a {{limit}} min. Per d’enregistraments sens limit ensajatz <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "A causa d’una demanda fòrta vòstre enregistrament serà limitat a {{limit}} min. Per d’enregistraments sens limit ensajatz <3>{{app}}</3>.",
|
||||
"errorFetchingLink": "Error en recuperant lo ligam de l’enregistrament."
|
||||
"unavailableTitle": "Enregistrament indisponible"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Tirar per actualizar"
|
||||
@@ -775,19 +693,7 @@
|
||||
"speakers": "Naut-parlairs",
|
||||
"startAudioMuted": "Començan totes sens son",
|
||||
"startVideoMuted": "Començan totes sens vidèo",
|
||||
"title": "Paramètres",
|
||||
"desktopShareFramerate": "Frequéncia d’imatge del partiment de burèu",
|
||||
"framesPerSecond": "frames-per-second",
|
||||
"participantJoined": "Lo participant a rejonch",
|
||||
"participantLeft": "Lo participant es partit",
|
||||
"playSounds": "Lectura dels sons activa",
|
||||
"reactions": "Reaccions de la conferéncia",
|
||||
"sameAsSystem": "Coma pel sistèma ({{label}})",
|
||||
"sounds": "Sons",
|
||||
"talkWhileMuted": "Parlar en mut",
|
||||
"desktopShareHighFpsWarning": "Una frequéncia d’imatge mai nauta pel partiment burèu pòt afectar la benda passanta. Devètz reaviar lo partiment d’ecran per aplicar los paramètres novèls.",
|
||||
"desktopShareWarning": "Devètz reaviar lo partiment d’ecran per prendre en compte las modificacions.",
|
||||
"incomingMessage": "Messatge dintrant"
|
||||
"title": "Paramètres"
|
||||
},
|
||||
"settingsView": {
|
||||
"advanced": "Avançat",
|
||||
@@ -822,8 +728,7 @@
|
||||
"name": "Escais",
|
||||
"seconds": "{{count}} segondas",
|
||||
"speakerStats": "Estatisticas orator",
|
||||
"speakerTime": "Temps de paraula",
|
||||
"search": "Recercar"
|
||||
"speakerTime": "Temps de paraula"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"genericTitle": "Aquesta reünion requerís l'utilizacion del microfòn e de la camèra.",
|
||||
@@ -844,6 +749,7 @@
|
||||
"chat": "Passar a la fenèstra chat",
|
||||
"document": "Tampar los documents partejats",
|
||||
"download": "Telecargar nòstra aplicacion",
|
||||
"e2ee": "Chiframent del cap a la fin",
|
||||
"embedMeeting": "Conferéncia integrada",
|
||||
"feedback": "Daissar un comentari",
|
||||
"fullScreen": "Passar al ecran complèt",
|
||||
@@ -878,23 +784,7 @@
|
||||
"toggleCamera": "Passar a la camèra",
|
||||
"toggleFilmstrip": "Bascular mòde benda film",
|
||||
"videoblur": "Enfoscar o non la vidèo",
|
||||
"videomute": "Silenciar la vidèo",
|
||||
"boo": "Aücar",
|
||||
"clap": "Picar de las mans",
|
||||
"laugh": "Rire",
|
||||
"like": "Levar lo det gròs",
|
||||
"muteEveryonesVideo": "Copar la camèra dels autres",
|
||||
"muteEveryoneElsesVideo": "Copar la camèra de los demai",
|
||||
"participants": "Participants",
|
||||
"remoteVideoMute": "Copar la camèra del participant",
|
||||
"shareaudio": "Partejar l’àudio",
|
||||
"silence": "Amudir",
|
||||
"surprised": "Suspresa",
|
||||
"selectBackground": "Seleccionar un rèireplan",
|
||||
"expand": "Espandir",
|
||||
"collapse": "Plegar",
|
||||
"muteEveryoneElse": "Copar lo microfòn dels autres",
|
||||
"reactionsMenu": "Dobrir / Tampar lo menú de reaccions"
|
||||
"videomute": "Silenciar la vidèo"
|
||||
},
|
||||
"addPeople": "Ajustar de monde a vòstra sonada",
|
||||
"audioOnlyOff": "Desactivar lo mòde connexion febla",
|
||||
@@ -928,8 +818,8 @@
|
||||
"muteEveryone": "Rendre mut tot lo monde",
|
||||
"noAudioSignalDesc": "S’avètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz de cambiar d’aparelh.",
|
||||
"noAudioSignalDescSuggestion": "S’avètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz d’utilizar un autre aparelh suggerit.",
|
||||
"noAudioSignalDialInDesc": "Podètz tanben sonar en utilizant :",
|
||||
"noAudioSignalDialInLinkDesc": "Numèros de sonada",
|
||||
"noAudioSignalDialInDesc": "",
|
||||
"noAudioSignalDialInLinkDesc": "",
|
||||
"noAudioSignalTitle": "I a pas cap de son en entrada del microfòn !",
|
||||
"noisyAudioInputDesc": "Sembla que vòstre microfòn mene bruch, pensatz de lo copar o de lo cambiar.",
|
||||
"noisyAudioInputTitle": "Vòstre microfòn sembla brusent !",
|
||||
@@ -947,35 +837,15 @@
|
||||
"speakerStats": "Estatisticas parladors",
|
||||
"startScreenSharing": "Aviar lo partatge d’ecran",
|
||||
"startSubtitles": "Aviar los sostítols",
|
||||
"startvideoblur": "Trebolar mon rèire-plan",
|
||||
"stopScreenSharing": "Arrestar lo partatge d’ecran",
|
||||
"stopSharedVideo": "Arrestar la vidèo Youtube",
|
||||
"stopSubtitles": "Arrestar los sostítols",
|
||||
"stopvideoblur": "Desactivar lo borrolatge del rèire-plan",
|
||||
"talkWhileMutedPopup": "Ensajatz de parlar ? Vòstre microfòn es copat.",
|
||||
"tileViewToggle": "Activar/Desactivar la vista en mosaïc",
|
||||
"toggleCamera": "Passar a la camèra",
|
||||
"videomute": "Aviar / Arrestar la camèra",
|
||||
"openReactionsMenu": "Dobrir lo menú de reaccions",
|
||||
"participants": "Participants",
|
||||
"shareaudio": "Partejar l’àudio",
|
||||
"silence": "Amudir",
|
||||
"surprised": "Suspresa",
|
||||
"selectBackground": "Seleccionar un rèireplan",
|
||||
"audioSettings": "Paramètres àudio",
|
||||
"videoSettings": "Paramètres vidèo",
|
||||
"laugh": "Rire",
|
||||
"muteEveryonesVideo": "Desactivar la camèra de tot lo monde",
|
||||
"stopAudioSharing": "Arrestar lo partiment àudio",
|
||||
"closeReactionsMenu": "Tampar lo menú de reaccions",
|
||||
"boo": "Aücar",
|
||||
"clap": "Picar de las mans",
|
||||
"disableReactionSounds": "Podètz desactivar los sons de las reaccions per aquesta conferéncia",
|
||||
"like": "Levar lo det gròs",
|
||||
"reactionBoo": "Enviar una reaccion de bramada",
|
||||
"reactionLaugh": "Enviar una reaccion de rire",
|
||||
"reactionLike": "Enviar una reaccion d’aprobacion",
|
||||
"reactionSilence": "Enviar una reaccion de silenci",
|
||||
"reactionSurprised": "Enviar una reaccion de suspresa",
|
||||
"reactionClap": "Enviar una reaccion d’aplaudiment"
|
||||
"videomute": "Aviar / Arrestar la camèra"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Aviar / Arrestat los sostítols",
|
||||
@@ -1023,6 +893,8 @@
|
||||
"ld": "Bassa definicion",
|
||||
"ldTooltip": "Difusion vidèo en bassa definicion",
|
||||
"lowDefinition": "Bassa definicion",
|
||||
"onlyAudioAvailable": "Pas que l’àudio es disponible",
|
||||
"onlyAudioSupported": "Sèm compatibles solament amb l’àudio dins aqueste navigator.",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Difusion vidèo en definicion estandard",
|
||||
"standardDefinition": "Definicion estandard"
|
||||
@@ -1039,10 +911,7 @@
|
||||
"muted": "Mut",
|
||||
"remoteControl": "Contraròtle alonhat",
|
||||
"show": "Mostrar davant",
|
||||
"videomute": "Lo participant a arrestat la camèra",
|
||||
"domuteVideo": "Desactivar la camèra",
|
||||
"domuteVideoOfOthers": "Desactivar la camèra dels demai",
|
||||
"videoMuted": "Camèra desactivada"
|
||||
"videomute": "Lo participant a arrestat la camèra"
|
||||
},
|
||||
"welcomepage": {
|
||||
"accessibilityLabel": {
|
||||
@@ -1063,6 +932,7 @@
|
||||
"goSmall": "Crear",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"info": "Infor",
|
||||
"jitsiMeet": "Jitsi Meet",
|
||||
"jitsiOnMobile": "Jitsi sus mobil –telecargatz nòstra aplicacion e començatz de conferéncias de pertot",
|
||||
"join": "CREAR / REJÓNHER",
|
||||
"moderatedMessage": "O <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">reservatz una URL de conferéncia</a> a l'avança ont sètz l'unic moderator.",
|
||||
@@ -1074,99 +944,10 @@
|
||||
"roomname": "Sasissètz un nom de sala",
|
||||
"roomNameAllowedChars": "Lo nom de la conferéncia deu pas conténer aqueles caractèrs : ?, &, :, ', \", %, #.",
|
||||
"roomnameHint": "Picatz lo nom o l’URL de la sala que volètz jónher. Podètz inventar un nom, cal pas que lo monde que volètz convidar lo sàpian.",
|
||||
"secureMeetings": "Conferéncias seguras e de nauta qualitat",
|
||||
"sendFeedback": "Mandar vòstra opinion",
|
||||
"startMeeting": "Començar la reünion",
|
||||
"terms": "Tèrmes",
|
||||
"title": "Conferéncias vidèo securizadas amb plen de foncionalitats e complètament gratuitas",
|
||||
"addMeetingName": "Nomenar la conferéncia",
|
||||
"mobileDownLoadLinkIos": "Telecargar l'aplicacion per iOS",
|
||||
"mobileDownLoadLinkAndroid": "Telecargar l'aplicacion per Android",
|
||||
"mobileDownLoadLinkFDroid": "Telecargar l'aplicacion per F-Droid",
|
||||
"headerSubtitle": "Conferéncias securizadas e de Nauta qualitat",
|
||||
"logo": {
|
||||
"policyLogo": "Logotipe de la politica",
|
||||
"calendar": "Logotipe Calendar",
|
||||
"microsoftLogo": "Logotipe Microsoft",
|
||||
"logoDeepLinking": "Logotipe Jitsi meet",
|
||||
"desktopPreviewThumbnail": "Vinheta d'apercebut del burèu",
|
||||
"googleLogo": "Logotipe Google"
|
||||
}
|
||||
},
|
||||
"virtualBackground": {
|
||||
"addBackground": "Apondre un rèireplan",
|
||||
"image7": "Solelh levant",
|
||||
"backgroundEffectError": "Aplicacion fracassada de l’efeich al rèireplan.",
|
||||
"apply": "Aplicar",
|
||||
"title": "Rèireplans virtuals",
|
||||
"blur": "Fosc",
|
||||
"slightBlur": "Fosc leugièr",
|
||||
"removeBackground": "Suprimir lo rèireplan",
|
||||
"pleaseWait": "Esperatz...",
|
||||
"none": "Cap",
|
||||
"uploadedImage": "Imatge enviat {{index}}",
|
||||
"deleteImage": "Suprimir l’imatge",
|
||||
"image1": "Plaja",
|
||||
"image2": "Paret blanca neutra",
|
||||
"image3": "Sala voida blanca",
|
||||
"image4": "Lampadari negre",
|
||||
"image5": "Montanha",
|
||||
"image6": "Forèst ",
|
||||
"desktopShareError": "Creacion impossibla d’un partiment de burèu",
|
||||
"desktopShare": "Partiment de burèu",
|
||||
"webAssemblyWarning": "WebAssembly pas pres en carga"
|
||||
},
|
||||
"participantsPane": {
|
||||
"headings": {
|
||||
"lobby": "Sala d’espèra ({{count}})",
|
||||
"participantsList": "Participants de la conferéncia ({{count}})",
|
||||
"waitingLobby": "Dins la sala d'espèra ({{count}})"
|
||||
},
|
||||
"close": "Tancar",
|
||||
"header": "Participants",
|
||||
"actions": {
|
||||
"allow": "Permetre als convidats de :",
|
||||
"audioModeration": "Se tornar lo son",
|
||||
"blockEveryoneMicCamera": "Blocar lo microfòn e la camèra del monde",
|
||||
"invite": "Convidar qualqu'un",
|
||||
"askUnmute": "Demandar a restablir lo son",
|
||||
"mute": "Amudir",
|
||||
"muteAll": "Amudir tot lo monde",
|
||||
"muteEveryoneElse": "Amudir tot los demai",
|
||||
"stopEveryonesVideo": "Arrestar la vidèo de tot lo monde",
|
||||
"stopVideo": "Arrestar la vidèo",
|
||||
"unblockEveryoneMicCamera": "Desblocar lo microfòn e la camèra de tot lo monde",
|
||||
"videoModeration": "Aviar lor vidèo",
|
||||
"allowVideo": "Autorizar la vidèo"
|
||||
}
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logotipe, mena a la pagina d'acuèlh",
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Apondre una opcion",
|
||||
"answerPlaceholder": "Opcion {{index}}",
|
||||
"create": "Crear un sondatge",
|
||||
"cancel": "Anullar",
|
||||
"pollOption": "Opcion sondarge {{index}}",
|
||||
"pollQuestion": "Question del sondatge",
|
||||
"questionPlaceholder": "Pausar una question",
|
||||
"removeOption": "Suprimir l'opcion",
|
||||
"send": "Enviar"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Sautar",
|
||||
"submit": "Enviar"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Votar",
|
||||
"changeVote": "Cambiar lo vote",
|
||||
"hideDetailedResults": "Rescondre los detalhs",
|
||||
"showDetailedResults": "Mostrar los detalhs",
|
||||
"empty": "I a pas cap de sondatge dins la conferéncia pel moment. Començatz-ne un aicí !"
|
||||
},
|
||||
"notification": {
|
||||
"title": "Un sondatge novèl es estat apondut a la conferéncia",
|
||||
"description": "Dobrissètz l’onglet dels sondatge per votar"
|
||||
}
|
||||
},
|
||||
"volumeSlider": "Nivèl de volum"
|
||||
"title": "Conferéncias vidèo securizadas amb plen de foncionalitats e complètament gratuitas"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -801,14 +801,13 @@
|
||||
"moreOptions": "Больше настроек",
|
||||
"mute": "Микрофон (вкл./выкл.)",
|
||||
"muteEveryone": "Выкл. микрофон у всех",
|
||||
"muteEveryonesVideo": "Выкл. Камеру у всех",
|
||||
"noAudioSignalTitle": "От вашего микрофона не идет звуковой сигнал!",
|
||||
"noAudioSignalDesc": "Если вы специально не отключали микрофон в системных настройках, подумайте о том, чтобы поменять его.",
|
||||
"noAudioSignalDescSuggestion": "Если вы специально не отключали микрофон в системных настройках, вы можете попробовать использовать следующее устройство:",
|
||||
"noAudioSignalDialInDesc": "Вы можете также дозвониться используя:",
|
||||
"noAudioSignalDialInLinkDesc": "Номера для дозвона",
|
||||
"noisyAudioInputTitle": "Похоже, ваш микрофон создает шум!",
|
||||
"noAudioSignalTitle": "От вашего микрофона не идет звуковой сигнал!",
|
||||
"noisyAudioInputDesc": "Возможно, ваш микрофон создает шум. Вы можете выключить его или смените устройство.",
|
||||
"noisyAudioInputTitle": "Похоже, ваш микрофон создает шум!",
|
||||
"openChat": "Открыть чат",
|
||||
"participants": "Участники",
|
||||
"pip": "Вкл режим Картинка-в-картинке",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -297,7 +297,7 @@
|
||||
"sendPrivateMessageTitle": "అంతరంగికంగా పంపించాలా?",
|
||||
"serviceUnavailable": "సేవ అందుబాటులో లేదు",
|
||||
"sessTerminated": "Call terminated",
|
||||
"sessionRestarted": "Call restarted because of a connection issue.",
|
||||
"sessionRestarted": "Call restarted by the bridge",
|
||||
"Share": "పంచుకోండి",
|
||||
"shareVideoLinkError": "దయచేసి సరైన యూట్యూబ్ లంకెను ఇవ్వండి.",
|
||||
"shareVideoTitle": "ఒక వీడియో పంచుకోండి",
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
{
|
||||
"addPeople": {
|
||||
"add": "Davet et",
|
||||
"addContacts": "Kişilerinizi davet edin",
|
||||
"addContacts": "Kişilerinizi davet edin",
|
||||
"copyInvite": "Toplantı davetini kopyala",
|
||||
"copyLink": "Toplantı bağlantısını kopyala",
|
||||
"copyStream": "Canlı akış bağlantısını kopyala",
|
||||
"contacts": "kişiler",
|
||||
"copyStream": "Canlı akış bağlantısını kopyala",
|
||||
"countryNotSupported": "Ülke henüz desteklenmiyor",
|
||||
"countryReminder": "Dış bir ülkeyi mi arıyorsunuz? Lütfen ülke koduyla başlayın!",
|
||||
"defaultEmail": "Varsayılan E-postanız",
|
||||
"defaultEmail": "Varsayılan E-postanız",
|
||||
"disabled": "Kişi davet edemezsiniz.",
|
||||
"failedToAdd": "Kişi eklenemedi",
|
||||
"footerText": "Dış arama devre dışı.",
|
||||
"googleEmail": "Google Email",
|
||||
"googleEmail": "Google Email",
|
||||
"inviteMoreHeader": "Toplantıdaki tek kişisiniz",
|
||||
"inviteMoreMailSubject": "{{appName}} toplantısına katıl",
|
||||
"inviteMorePrompt": "Daha fazla kişi davet et",
|
||||
@@ -23,18 +22,14 @@
|
||||
"noResults": "Eşleşen sonuç bulunamadı",
|
||||
"noValidNumbers": "Lütfen bir telefon numarası girin",
|
||||
"outlookEmail": "Outlook Email",
|
||||
"phoneNumbers": "telefon numaraları",
|
||||
"searchNumbers": "Telefon numarası ekle",
|
||||
"searchPeople": "Kişi ara",
|
||||
"searchPeopleAndNumbers": "Kişi arayın veya telefon numarası ekleyin",
|
||||
"searching": "Aranıyor...",
|
||||
"shareInvite": "Toplantı davetini paylaş",
|
||||
"shareLink": "Katılımcıları davet etmek için toplantı bağlantısını paylaşın",
|
||||
"shareStream": "Canlı akış bağlantısını paylaşın",
|
||||
"sipAddresses": "sip adresleri",
|
||||
"telephone": "Telefon numarası: {{number}}",
|
||||
"title": "Bu toplantıya kişi davet edin",
|
||||
"yahooEmail": "Yahoo Email"
|
||||
"title": "Bu toplantıya kişi davet edin"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -65,7 +60,6 @@
|
||||
"today": "Bugün"
|
||||
},
|
||||
"chat": {
|
||||
"enter": "Odaya gir",
|
||||
"error": "Hata: Mesajınız gönderilmedi. Neden: {{error}}",
|
||||
"fieldPlaceHolder": "Mesajınızı buraya yazın",
|
||||
"messagebox": "Bir mesaj yazın",
|
||||
@@ -76,15 +70,7 @@
|
||||
"title": "Sohbette kullanmak için bir takma ad girin",
|
||||
"titleWithPolls": "Sohbette kullanmak için bir takma ad girin"
|
||||
},
|
||||
"privateNotice": "{{recipient}} için özel mesaj",
|
||||
"message": "Mesaj",
|
||||
"messageAccessibleTitle": "{{user}} diyor:",
|
||||
"messageAccessibleTitleMe": "ben diyorum:",
|
||||
"smileysPanel": "Emoji paneli",
|
||||
"tabs": {
|
||||
"chat": "Sohbet",
|
||||
"polls": "Anket"
|
||||
},
|
||||
"privateNotice": "{{recipient}} için özel mesaj",
|
||||
"title": "Sohbet",
|
||||
"titleWithPolls": "Sohbet",
|
||||
"you": "sen"
|
||||
@@ -110,20 +96,16 @@
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Adres:",
|
||||
"audio_ssrc": "Ses SSRC:",
|
||||
"bandwidth": "Tahmini bant genişliği:",
|
||||
"bitrate": "Bit hızı:",
|
||||
"bridgeCount": "Sunucu sayısı: ",
|
||||
"codecs": "Kodekler (A/V): ",
|
||||
"connectedTo": "Bağlandı şuna:",
|
||||
"e2e_rtt": "E2E RTT:",
|
||||
"framerate": "Çerçeve hızı:",
|
||||
"less": "Daha az göster",
|
||||
"localaddress": "Yerel adres:",
|
||||
"localaddress_plural": "Yerel adresler:",
|
||||
"localport": "Yerel port:",
|
||||
"localport_plural": "Yerel portlar:",
|
||||
"maxEnabledResolution": "maksimumu gönder",
|
||||
"more": "Daha fazla göster",
|
||||
"packetloss": "Paket kaybı:",
|
||||
"quality": {
|
||||
@@ -137,14 +119,11 @@
|
||||
"remoteaddress_plural": "Uzak adresler:",
|
||||
"remoteport": "Uzak port:",
|
||||
"remoteport_plural": "Uzak portlar:",
|
||||
"savelogs": "Logları Kaydet",
|
||||
"participant_id": "Katılımcı id:",
|
||||
"resolution": "Çözünürlük:",
|
||||
"status": "Bağlantı:",
|
||||
"transport": "Transport:",
|
||||
"transport_plural": "Transportlar:",
|
||||
"turn": " (turn)",
|
||||
"video_ssrc": "Video SSRC:"
|
||||
"turn": " (turn)"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Daha eski",
|
||||
@@ -181,19 +160,18 @@
|
||||
"accessibilityLabel": {
|
||||
"liveStreaming": "Canlı akış"
|
||||
},
|
||||
"add": "Ekle",
|
||||
|
||||
"add": "Ekle",
|
||||
"allow": "İzin ver",
|
||||
"alreadySharedVideoMsg": "Başka bir katılımcı zaten bir video paylaşıyor. Bu konferans aynı anda yalnızca bir paylaşılan videoya izin verir.",
|
||||
"alreadySharedVideoTitle": "Aynı anda yalnızca bir paylaşılan videoya izin verilir.",
|
||||
"applicationWindow": "Uygulama penceresi",
|
||||
"authenticationRequired": "Kimlik doğrulaması gerekli",
|
||||
"Back": "Geri",
|
||||
"cameraConstraintFailedError": "Kameranız gerekli bazı özellikleri karşılayamıyor.",
|
||||
"cameraNotFoundError": "Kamera bulunamadı.",
|
||||
"cameraNotSendingData": "Kameranıza erişemiyoruz. Lütfen başka bir uygulamanın bu cihazı kullanıp kullanmadığını kontrol edin, Ayarlar menüsünden başka bir cihaz seçin veya uygulamayı yeniden yüklemeyi deneyin.",
|
||||
"cameraNotSendingDataTitle": "Kameraya erişilemiyor",
|
||||
"cameraPermissionDeniedError": "Kamera kullanımına izin vermediniz. Yine de toplantıya katılabilirsiniz, ancak diğerleri sizi göremez. Bunu düzeltmek için kamera butonunu kullanın.",
|
||||
"cameraTimeoutError": "Video kaynağı başlatılamadı. Zaman aşımı!",
|
||||
"cameraUnknownError": "Bilinmeyen bir nedenden dolayı kamera kullanılamıyor.",
|
||||
"cameraUnsupportedResolutionError": "Kameranız gerekli video çözünürlüğünü desteklemiyor.",
|
||||
"Cancel": "İptal",
|
||||
@@ -209,26 +187,16 @@
|
||||
"connectErrorWithMsg": "Hata! Bir şeyler ters gitti ve konferansa bağlanamadık: {{msg}}",
|
||||
"connecting": "Bağlanıyor",
|
||||
"contactSupport": "Destek ekibine erişin",
|
||||
"copied": "Kopyalandı",
|
||||
"copy": "Kopyala",
|
||||
"dismiss": "Son ver",
|
||||
"displayNameRequired": "Merhaba, görünmesini istediğin ismin nedir?",
|
||||
"done": "Bitti",
|
||||
"e2eeDescription": "Uçtan-uca şifreleme şu an deneyseldir. Lütfen uçtan-uca şifrelemeyi açmanın, telefon katılımı gibi sunucu tarafında sağlanan hizmetleri devredışı bırakabileceğini unutmayın. Ayrıca toplantının yalnızca eklenebilir akışları destekleyen tarayıcılardan katılan kişiler için çalışacağını unutmayın.",
|
||||
"e2eeLabel": "Uçtan-uca şifrelemeyi etkinleştir",
|
||||
"e2eeDisabledDueToMaxModeDescription": "Yüksek katılımcı sayısından dolayı bu konferansta Uçtan-Uca şifreleme etkinleştirilemiyor.",
|
||||
"e2eeWarning": "UYARI: Bu toplantıdaki kullanıcıların bazıları uçtan-uca şifrelemeyi desteklemiyor gibi görünüyor. Eğer etkinleştirirseniz sizi duyamaz ve göremezler.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "UYARI: Konferansa daha fazla katılımcı katılırsa Uçtan-Uca Şifreleme otomatik olarak devre dışı bırakılır.",
|
||||
"enterDisplayName": "Lütfen adınızı buraya girin...",
|
||||
"embedMeeting": "Toplantıyı yerleştir",
|
||||
"error": "Hata",
|
||||
"externalInstallationMsg": "Masaüstü paylaşım uzantımızı yüklemeniz gerekmektedir.",
|
||||
"externalInstallationTitle": "Uzantı gerekli",
|
||||
"goToStore": "Mağazaya git",
|
||||
"gracefulShutdown": "Hizmetimiz şu anda bakım için devre dışı. Lütfen daha sonra tekrar deneyiniz.",
|
||||
"grantModeratorDialog": "{{participantName}} için moderatör hakları vermek istediğinize emin misiniz?",
|
||||
"grantModeratorTitle": "Moderatör hakları ver",
|
||||
"hideShareAudioHelper": "Bu iletişim kutusunu bir daha gösterme",
|
||||
"IamHost": "Toplantı sahibiyim",
|
||||
"incorrectRoomLockPassword": "Yanlış paralo",
|
||||
"incorrectPassword": "Kullanıcı adı veya parola hatalı",
|
||||
@@ -249,7 +217,6 @@
|
||||
"lockRoom": "Toplantı parolası ekle",
|
||||
"lockTitle": "Kilitlenemedi",
|
||||
"logoutQuestion": "Oturumu kapatmak ve toplantıyı durdurmak istediğinizden emin misiniz?",
|
||||
"login": "Giriş",
|
||||
"logoutTitle": "Oturumu kapat",
|
||||
"maxUsersLimitReached": "Maksimum katılımcı sayısı sınırına ulaşıldı. Toplantı dolu. Lütfen toplantı sahibiyle iletişime geçin veya daha sonra tekrar deneyin!",
|
||||
"maxUsersLimitReachedTitle": "Maksimum katılımcı sınırına ulaşıldı",
|
||||
@@ -258,44 +225,29 @@
|
||||
"micNotSendingData": "Mikrofonunuza erişemiyoruz. Lütfen Ayarlar menüsünden başka bir cihaz seçin veya uygulamayı yeniden yüklemeyi deneyin.",
|
||||
"micNotSendingDataTitle": "Mikrofona erişilemiyor.",
|
||||
"micPermissionDeniedError": "Mikrofon kullanımına izin vermediniz. Yine de toplantıya katılabilirsiniz, ancak diğerleri sizi duyamaz. Bunu düzeltmek için mikrofon butonunu kullanın.",
|
||||
"micTimeoutError": "Ses kaynağı başlatılamadı. Zaman aşımı!",
|
||||
"micUnknownError": "Bilinmeyen bir nedenden dolayı mikrofon kullanılamıyor.",
|
||||
"moderationAudioLabel": "Katılımcıların kendi seslerini açmalarına izin ver",
|
||||
"moderationVideoLabel": "Katılımcıların kendi videolarını başlatmalarına izin ver",
|
||||
"muteEveryoneElseDialog": "Susturulduğunda, mikrofonlarını sessizden çıkaramayacaksınız ancak onlar diledikleri zaman kendilerini sessizden çıkarabilirler.",
|
||||
"muteEveryoneElseTitle": "{{whom}} hariç herkesi sustur?",
|
||||
"muteEveryoneDialog": "Herkesi susturmak istediğinizden emin misiniz? Onları sessizden çıkaramayacaksınız ancak onlar kendilerini her zaman sessizden çıkarabilirler.",
|
||||
"muteEveryoneDialogModerationOn": "Katılımcılar istedikleri zaman konuşma talebi gönderebilirler.",
|
||||
"muteEveryoneTitle": "Herkesi sustur?",
|
||||
"muteEveryoneElsesVideoDialog": "Kameraları devre dışı bırakıldığında geri açamayacaksınız, ancak onlar kameralarını her zaman açabilirler.",
|
||||
"muteEveryoneElsesVideoTitle": "{{whom}} hariç herkesin kamerasını devre dışı bırak?",
|
||||
"muteEveryonesVideoDialog": "Herkesin kamerasını devre dışı bırakmak istediğinizden emin misiniz? Kameralar devre dışı bırakıldığında geri açamayacaksınız, ancak onlar kameralarını her zaman açabilirler.",
|
||||
"muteEveryonesVideoDialogModerationOn": "Katılımcılar istedikleri zaman videolarını açmak için istek gönderebilirler.",
|
||||
"muteEveryonesVideoDialogOk": "Kameraları Kapat",
|
||||
"muteEveryonesVideoTitle": "Herkesin kamerasını devre dışı bırak?",
|
||||
"muteEveryoneSelf": "Kendiniz",
|
||||
"muteEveryoneStartMuted": "Şu andan itibaren herkes sessizde başlayacak",
|
||||
"muteEveryoneElseDialog" : "Susturulduğunda, mikrofonlarını sessizden çıkaramayacaksınız ancak onlar diledikleri zaman kendilerini sessizden çıkarabilirler.",
|
||||
"muteEveryoneElseTitle" : "{{whom}} hariç herkesi sustur?",
|
||||
"muteEveryoneDialog" : "Herkesi susturmak istediğinizden emin misiniz? Onları sessizden çıkaramayacaksınız ancak onlar kendilerini her zaman sessizden çıkarabilirler.",
|
||||
"muteEveryoneTitle" : "Herkesi sustur?",
|
||||
"muteEveryoneElsesVideoDialog" : "Kameraları devre dışı bırakıldığında geri açamayacaksınız, ancak onlar kameralarını her zaman açabilirler.",
|
||||
"muteEveryoneElsesVideoTitle" : "{{whom}} hariç herkesin kamerasını devre dışı bırak?",
|
||||
"muteEveryonesVideoDialog" : "Herkesin kamerasını devre dışı bırakmak istediğinizden emin misiniz? Kameralar devre dışı bırakıldığında geri açamayacaksınız, ancak onlar kameralarını her zaman açabilirler.",
|
||||
"muteEveryonesVideoDialogOk" : "Kameraları Kapat",
|
||||
"muteEveryonesVideoTitle" : "Herkesin kamerasını devre dışı bırak?",
|
||||
"muteEveryoneSelf" : "Kendiniz",
|
||||
"muteEveryoneStartMuted" : "Şu andan itibaren herkes sessizde başlayacak",
|
||||
"muteParticipantBody": "Sesi açamazsınız, ancak istedikleri zaman kendileri seslerini açabilirler.",
|
||||
"muteParticipantButton": "Sustur",
|
||||
"muteParticipantDialog": "Bu katılımcının sesini kapatmak istediğinizden emin misiniz? Sesini açamazsınız, ancak istedikleri zaman kendileri seslerini açabilirler.",
|
||||
"muteParticipantsVideoDialog": "Bu katılımcının kamerasını kapatmak istediğinize emin misiniz? Kamerayı tekrar açamazsınız ancak istedikleri zaman tekrar açabilirler.",
|
||||
"muteParticipantTitle": "Bu katılımcı susturulsun mu?",
|
||||
"muteParticipantsVideoButton": "Kamerayı durdur",
|
||||
"muteParticipantsVideoTitle": "Bu katılımcı için kamerayı durdur?",
|
||||
"muteParticipantsVideoBody": "Kamerayı tekrar açamazsınız ancak istedikleri zaman tekrar açabilirler.",
|
||||
"noDropboxToken": "Dropbox anahtarı geçerli değil",
|
||||
"Ok": "Tamam",
|
||||
"password": "Parola",
|
||||
"passwordLabel": "Toplantı bir katılımcı tarafından kilitlendi. Lütfen giriş yapmak için $t(lockRoomPassword) giriniz.",
|
||||
"passwordNotSupported": "Toplantı parolası ayarlama desteklenmiyor.",
|
||||
"passwordNotSupportedTitle": "Parola desteklenmiyor",
|
||||
"passwordRequired": "Parola gerekli",
|
||||
"permissionErrorTitle": "İzin gerekli",
|
||||
"permissionCameraRequiredError": "Videolu konferanslara katılmak için kamera izni gereklidir. Lütfen ayarlardan izin verin",
|
||||
"permissionMicRequiredError": "Konferanslara sesli olarak katılmak için lütfen mikrofon izni gereklidir. Lütfen ayarlardan izin verin",
|
||||
"popupError": "Tarayıcınız bu siteden açılan pencereleri engelliyor. Lütfen tarayıcınızın güvenlik ayarlarından açılır pencereleri etkinleştirin ve tekrar deneyin.",
|
||||
"popupErrorTitle": "Açılır pencere engellendi",
|
||||
"readMore": "daha fazla",
|
||||
"recording": "Kaydediliyor",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Canlı akış etkinken mümkün değil...",
|
||||
"recordingDisabledForGuestTooltip": "Misafirler kayıt etmeye başlayamaz.",
|
||||
@@ -316,8 +268,6 @@
|
||||
"reservationErrorMsg": "Hata kodu: {{code}}, mesaj: {{msg}}",
|
||||
"retry": "Yeniden Dene",
|
||||
"screenSharingAudio": "Sesi paylaş",
|
||||
"screenSharingFailed": "Hop! Bir şeyler ters gitti, ekran paylaşımınızı başlatamıyoruz!",
|
||||
"screenSharingFailedTitle": "Ekran paylaşımı başarısız!",
|
||||
"screenSharingFailedToInstall": "Hata! Ekran paylaşım uzantınız yüklenemedi.",
|
||||
"screenSharingFailedToInstallTitle": "Ekran paylaşım uzantısı yüklenemedi",
|
||||
"screenSharingFirefoxPermissionDeniedError": "Ekranınızı paylaşmaya çalışırken bir şeyler ters gitti. Lütfen bize izin verdiğinizden emin olun.",
|
||||
@@ -327,17 +277,9 @@
|
||||
"sendPrivateMessageCancel": "Gruba gönder",
|
||||
"sendPrivateMessageOk": "Özel olarak gönder",
|
||||
"sendPrivateMessageTitle": "Özel olarak gönderilsin mi?",
|
||||
"serviceUnavailable": "Hizmet kullanılamıyor",
|
||||
"serviceUnavailable": "Hizmet kullanılamıyor",
|
||||
"sessTerminated": "Arama sonlandırıldı",
|
||||
"sessionRestarted": "Çağrı köprü tarafından yeniden başlatıldı",
|
||||
"Share": "Paylaş",
|
||||
"shareAudio": "Devam",
|
||||
"shareAudioTitle" : "Ses nasıl paylaşılır",
|
||||
"shareAudioWarningTitle": "Ses paylaşımından önce ekran paylaşımını kapatmanız gerekmektedir",
|
||||
"shareAudioWarningH1": "Eğer sadece ses paylaşmak istiyorsanız:",
|
||||
"shareAudioWarningD1": "sesinizi paylaşmadan önce ekran paylaşımını durdurmanız gerekiyor.",
|
||||
"shareAudioWarningD2": "ekran paylaşımınızı yeniden başlatmanız ve \"sesi paylaş\" seçeneğini işaretlemeniz gerekiyor.",
|
||||
"shareMediaWarningGenericH2": "Ekranınızı ve sesinizi paylaşmak istiyorsanız",
|
||||
"shareVideoLinkError": "Lütfen doğru bir Youtube bağlantısı sağlayın.",
|
||||
"shareVideoTitle": "Bir video paylaş",
|
||||
"shareYourScreen": "Ekranınızı paylaşın",
|
||||
@@ -346,11 +288,6 @@
|
||||
"startLiveStreaming": "Canlı akışı başlat",
|
||||
"startRecording": "Kaydı başlat",
|
||||
"startRemoteControlErrorMessage": "Uzaktan kontrol oturumunu başlatmaya çalışırken bir hata oluştu!",
|
||||
"shareScreenWarningTitle": "Ekranınızı paylaşmadan önce ses paylaşımını durdurmanız gerekiyor",
|
||||
"shareScreenWarningH1": "Sadece ekranınızı paylaşmak istiyorsanız:",
|
||||
"shareScreenWarningD1": "ekranınızı paylaşmadan önce ses paylaşımını durdurmanız gerekiyor.",
|
||||
"shareScreenWarningD2": "ses paylaşımını durdurmanız, ekran paylaşımını başlatmanız ve \"sesi paylaş\" seçeneğini işaretlemeniz gerekiyor.",
|
||||
"sharedVideoLinkPlaceholder": "YouTube bağlantısı veya doğrudan video bağlantısı",
|
||||
"stopLiveStreaming": "Canlı akışı durdur",
|
||||
"stopRecording": "Kaydı durdur",
|
||||
"stopRecordingWarning": "Kaydı durdurmak istediğinizden emin misiniz?",
|
||||
@@ -363,57 +300,26 @@
|
||||
"tokenAuthFailedTitle": "Kimlik doğrulama başarısız",
|
||||
"transcribing": "Deşifre ediliyor",
|
||||
"unlockRoom": "Toplantı parolasını kaldır",
|
||||
"user": "Kullanıcı",
|
||||
"userIdentifier": "Kullanıcı tanımlayıcı",
|
||||
"userPassword": "Kullancı parolası",
|
||||
"videoLink": "Video bağlantısı",
|
||||
"viewUpgradeOptions": "Yükseltme seçeneklerini görüntüle",
|
||||
"viewUpgradeOptionsContent": "Kayıt, çeviri yazılar, RTMP Akışı ve daha fazlası gibi premium özelliklere sınırsız erişim elde etmek için planınızı yükseltmeniz gerekir.",
|
||||
"viewUpgradeOptionsTitle": "Premium bir özellik keşfettiniz!",
|
||||
"WaitForHostMsg": "<b>{{room}}</b> toplantısı henüz başlamadı. Toplantı sahibi sizseniz, lütfen kimlik doğrulaması yapın. Değilseniz lütfen toplantı sahibinin gelmesini bekleyin.",
|
||||
"WaitForHostMsgWOk": "<b>{{room}}</b> toplantısı henüz başlamadı. Toplantı sahibi sizseniz, kimlik doğrulaması için Tamam butonuna basın. Değilseniz lütfen toplantı sahibinin gelmesini bekleyin.",
|
||||
"WaitingForHostTitle": "Toplantı sahibi bekleniyor ...",
|
||||
"WaitingForHost": "Toplantı sahibi bekleniyor...",
|
||||
"Yes": "Evet",
|
||||
"yourEntireScreen": "Tüm ekranınız",
|
||||
"remoteUserControls": "{{username}} için uzaktan kullanıcı kontrolleri",
|
||||
"localUserControls": "Yerel kullanıcı kontrolleri"
|
||||
"yourEntireScreen": "Tüm ekranınız"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "şimdi {{status}}"
|
||||
},
|
||||
|
||||
"documentSharing": {
|
||||
"title": "Paylaşılan Döküman"
|
||||
},
|
||||
|
||||
|
||||
"e2ee": {
|
||||
"labelToolTip": "Bu görüşmedeki ses ve video iletişimi uçtan uca şifrelenmiştir."
|
||||
},
|
||||
"embedMeeting": {
|
||||
"title": "Bu toplantıyı yerleştir"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Uygula",
|
||||
"title": "Sanal arkaplanlar",
|
||||
"blur": "Bulanıklaştır",
|
||||
"slightBlur": "Hafif Bulanıklık",
|
||||
"removeBackground": "Arkaplanı kaldır",
|
||||
"addBackground": "Arkaplan Ekle",
|
||||
"pleaseWait": "Lütfen bekleyiniz...",
|
||||
"none": "Hiçbiri",
|
||||
"uploadedImage": "Yüklenen resim {{index}}",
|
||||
"deleteImage": "Resmi sil",
|
||||
"image1" : "Plaj",
|
||||
"image2" : "Beyaz nötr duvar",
|
||||
"image3" : "Beyaz boş oda",
|
||||
"image4" : "Siyah zemin lambası",
|
||||
"image5" : "Dağ",
|
||||
"image6" : "Orman ",
|
||||
"image7" : "Gündoğumu",
|
||||
"desktopShareError": "Masaüstü paylaşımı oluşturulamadı",
|
||||
"desktopShare":"Masaüstü paylaşımı",
|
||||
"webAssemblyWarning": "WebAssembly desteklenmiyor",
|
||||
"backgroundEffectError": "Arkaplan efekt uygulaması başarısız."
|
||||
},
|
||||
|
||||
"feedback": {
|
||||
"average": "Orta",
|
||||
"bad": "Kötü",
|
||||
@@ -421,8 +327,7 @@
|
||||
"good": "İyi",
|
||||
"rateExperience": "Toplantı deneyiminizi derecelendirin",
|
||||
"veryBad": "Çok kötü",
|
||||
"veryGood": "Çok iyi",
|
||||
"star": "Yıldız"
|
||||
"veryGood": "Çok iyi"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Cevapla",
|
||||
@@ -439,7 +344,6 @@
|
||||
"country": "Ülke",
|
||||
"dialANumber": "Toplantınıza katılmak için bu numaralardan birini çevirin ve ardından kodu girin.",
|
||||
"dialInConferenceID": "KOD:",
|
||||
"copyNumber":"Numarayı kopyala",
|
||||
"dialInNotSupported": "Maalesef arama şu anda desteklenmiyor.",
|
||||
"dialInNumber": "Arama:",
|
||||
"dialInSummaryError": "Arama bilgisi getirilirken hata oluştu. Lütfen daha sonra tekrar deneyin.",
|
||||
@@ -448,11 +352,6 @@
|
||||
"inviteLiveStream": "Bu toplantının canlı akışını görüntülemek için şu bağlantıyı tıklayın: {{url}}",
|
||||
"invitePhone": "Tek dokunuşla sesli arama: {{number}},,{{conferenceID}}#",
|
||||
"invitePhoneAlternatives": "",
|
||||
"inviteSipEndpoint": "SIP adresine katılmak için lütfen bunu girin: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} toplantıya davet ediliyor.",
|
||||
"inviteTextiOSJoinSilent": "Oda telefonundan bağlanıyorsanız, sese bağlanmadan katılmak için şu bağlantıyı kullanın: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Katılmak için linke tıklayınız: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "Telefonla katılmak için şu numarayı kullanın: {{number}},{{conferenceID}}#. Farklı bir numara arıyorsanız, tam liste bu: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Bir toplantıya katılmaya davet edildiniz.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} sizi bir toplantıya davet ediyor.\n",
|
||||
"inviteURLSecondPart": "\nToplantıya katıl:\n{{url}}\n",
|
||||
@@ -463,7 +362,6 @@
|
||||
"noRoom": "Aranacak oda belirtilmedi.",
|
||||
"numbers": "Arama Numaraları",
|
||||
"password": "Parola:",
|
||||
"sip": "SIP adresi",
|
||||
"title": "Paylaş",
|
||||
"tooltip": "Bu toplantı için bağlantıyı ve arama bilgilerini paylaşın",
|
||||
"label": "Toplantı bilgileri"
|
||||
@@ -482,7 +380,6 @@
|
||||
"support": "Destek",
|
||||
"supportMsg": "Bu olmaya devam ederse, ulaşın."
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logo, Anasayfaya bağlantı",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Videoya odaklan",
|
||||
"focusRemote": "Başka bir kişinin videosuna odaklan",
|
||||
@@ -495,15 +392,13 @@
|
||||
"showSpeakerStats": "Konuşmacı istatistiklerini göster",
|
||||
"toggleChat": "Mesajlaşmayı aç veya kapat",
|
||||
"toggleFilmstrip": "Video önizlemelerini göster veya gizle",
|
||||
"toggleParticipantsPane": "Katılımcılar bölmesini göster veya gizle",
|
||||
"toggleScreensharing": "Kamera ve ekran paylaşımı arasında geçiş yap",
|
||||
"toggleShortcuts": "Klavye kısayollarını göster veya gizle",
|
||||
"videoMute": "Kamerayı aç veya kapat",
|
||||
"videoQuality": "Çağrı kalitesini yönetin"
|
||||
|
||||
},
|
||||
"liveStreaming": {
|
||||
"limitNotificationDescriptionWeb": "Yüksek talep nedeniyle akışınız {{limit}} dk ile sınırlı olacaktır. Sınırsız akış için <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a> deneyin.",
|
||||
"limitNotificationDescriptionNative": "Akışınız {{limit}} dk ile sınırlı olacak. Sınırsız akış için {{app}} deneyin.",
|
||||
"busy": "Akış kaynaklarını serbest bırakmaya çalışıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.",
|
||||
"busyTitle": "Tüm yayıncılar şu anda meşgul",
|
||||
"changeSignIn": "Hesap değiştir.",
|
||||
@@ -534,6 +429,7 @@
|
||||
"unavailableTitle": "Canlı Akış kullanılamıyor",
|
||||
"youtubeTerms": "YouTube hizmet şartları",
|
||||
"googlePrivacyPolicy": "Google Gizlilik Politikası"
|
||||
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -568,15 +464,12 @@
|
||||
"lockRoomPasswordUppercase": "Parola",
|
||||
"me": "ben",
|
||||
"notify": {
|
||||
"allowAction": "İzin ver",
|
||||
"allowedUnmute": "Mikrofonunuzu sessizden çıkarabilir, kameranızı başlatabilir veya ekranınızı paylaşabilirsiniz.",
|
||||
"connectedOneMember": "{{name}} toplantıya katıldı",
|
||||
"connectedThreePlusMembers": "{{name}} ve {{count}} kişi daha toplantıya katıldı",
|
||||
"connectedTwoMembers": "{{first}} ve {{second}} toplantıya katıldı",
|
||||
"disconnected": "bağlantı kesildi",
|
||||
"focus": "Toplantı odağı",
|
||||
"focusFail": "{{component}} uygun değil - {{ms}} saniye içinde tekrar deneyin",
|
||||
"hostAskedUnmute": "Moderatör konuşmanı istiyor",
|
||||
"grantedTo": "{{to}} kişisine yönetici hakları verildi!",
|
||||
"invitedOneMember": "{{name}} davet edildi",
|
||||
"invitedThreePlusMembers": "{{name}} ve {{count}} kişi daha davet edildi",
|
||||
@@ -588,13 +481,9 @@
|
||||
"mutedTitle": "Sesiniz kapalı!",
|
||||
"mutedRemotelyTitle": "{{participantDisplayName}} tarafından sessize alındınız!",
|
||||
"mutedRemotelyDescription": "Konuşmaya hazır olduğun zaman, Kendi mikrofonunu açabilirsin. Görüşmeden gürültüyü uzak tutmak için kendini tekrar sessize almalısın.",
|
||||
"videoMutedRemotelyTitle": "{{moderator}} tarafından videonuz kapatıldı",
|
||||
"videoMutedRemotelyDescription": "Her zaman yeniden açabilirsiniz.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) başka bir katılımcı tarafından kaldırıldı",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) başka bir katılımcı tarafından ayarlandı",
|
||||
"raisedHand": "{{name}} söz hakkı istiyor.",
|
||||
"screenShareNoAudio": " Pencere seçim ekranında sesi paylaş kutusu işaretlenmedi.",
|
||||
"screenShareNoAudioTitle": "Sistem sesi paylaşılamadı!",
|
||||
"somebody": "Birisi",
|
||||
"startSilentTitle": "Ses çıkışı olmadan bağlandınız",
|
||||
"startSilentDescription": "Ses çıkışını açtıktan sonra tekrar bağlanın",
|
||||
@@ -607,105 +496,21 @@
|
||||
"OldElectronAPPTitle": "Güvenlik açığı!",
|
||||
"oldElectronClientDescription1": "Güvenlik açıkları bilinen Jitsi Meet istemcisinin eski bir sürümünü kullanıyor görünüyorsunuz. Lütfen güncellediğinizden emin olun.",
|
||||
"oldElectronClientDescription2": "son yapı",
|
||||
"oldElectronClientDescription3": " şimdi!",
|
||||
"moderationInEffectDescription": "Konuşmak isterseniz lütfen el kaldırın.",
|
||||
"moderationInEffectCSDescription": "Ekranınızı paylaşmak isterseniz lütfen el kaldırın.",
|
||||
"moderationInEffectVideoDescription": "Kameranızı başlatmak isterseniz lütfen el kaldırın.",
|
||||
"moderationInEffectTitle": "Mikrofonunuz moderatör tarafından susturuldu",
|
||||
"moderationInEffectCSTitle": "Ekran paylaşımı moderatör tarafından bloklandı",
|
||||
"moderationInEffectVideoTitle": "Kameranız moderatör tarafından bloklandı",
|
||||
"moderationRequestFromModerator": "Ev sahibi sesi açmanızı istiyor",
|
||||
"moderationRequestFromParticipant": "Konuşmak istiyor",
|
||||
"moderationStartedTitle": "Denetim başlatıldı",
|
||||
"moderationStoppedTitle": "Denetim durduruldu",
|
||||
"moderationToggleDescription": "{{participantDisplayName}} tarafından",
|
||||
"raiseHandAction": "El kaldır",
|
||||
"reactionSounds": "Sesleri devre dışı bırak",
|
||||
"groupTitle": "Bildirimler"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Kapat",
|
||||
"header": "Katılımcılar",
|
||||
"headings": {
|
||||
"lobby": "Lobi ({{count}})",
|
||||
"participantsList": "Toplantı Katılımcıları ({{count}})",
|
||||
"waitingLobby": "Lobide bekleyen ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Katılımcıların şunları yapmasına izin ver:",
|
||||
"allowVideo": "Video'ya izin ver",
|
||||
"audioModeration": "Seslerini aç",
|
||||
"blockEveryoneMicCamera": "Herkesin mikrofonunu ve kamerasını blokla",
|
||||
"invite": "Birini davet et",
|
||||
"askUnmute": "Sesi açmayı iste",
|
||||
"mute": "Sustur",
|
||||
"muteAll": "Herkesi sustur",
|
||||
"muteEveryoneElse": "Diğer herkesi sessize al",
|
||||
"stopEveryonesVideo": "Herkesin videosunu durdur",
|
||||
"stopVideo": "Video'yu durdur",
|
||||
"unblockEveryoneMicCamera": "Herkesin mikrofonunun ve kamerasının engellemesini kaldır",
|
||||
"videoModeration": "Videolarını başlat"
|
||||
}
|
||||
"oldElectronClientDescription3": " şimdi!"
|
||||
|
||||
},
|
||||
"passwordSetRemotely": "başka katılımcı tarafından ayarlandı",
|
||||
"passwordDigitsOnly": "{{number}} rakama kadar",
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Seçenek Ekle",
|
||||
"answerPlaceholder": "Seçenek {{index}}",
|
||||
"create": "Anket oluştur",
|
||||
"cancel": "İptal et",
|
||||
"pollOption" : "Anket seçeneği {{index}}",
|
||||
"pollQuestion" : "Anket Sorusu",
|
||||
"questionPlaceholder": "Soru sor",
|
||||
"removeOption": "Seçeneği sil",
|
||||
"send": "Gönder"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Geç",
|
||||
"submit": "Gönder"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Oylar",
|
||||
"changeVote": "Oyu değiştir",
|
||||
"empty": "Bu toplantıda henüz bir anket oluşturulmadı. Anket başlat!",
|
||||
"hideDetailedResults": "Detayları gizle",
|
||||
"showDetailedResults": "Detayları göster"
|
||||
},
|
||||
"notification": {
|
||||
"title": "Anket toplantıya eklendi",
|
||||
"description": "Oy vermek için anketler sekmesini açın"
|
||||
}
|
||||
},
|
||||
"poweredby": "",
|
||||
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Ses ve video hatası:",
|
||||
"audioDeviceProblem": "Ses cihazınızla ilgili bir sorun var",
|
||||
"audioOnlyError": "Ses Hatası:",
|
||||
"audioTrackError": "Ses parçası oluşturulamadı.",
|
||||
"callMe": "Beni ara",
|
||||
"callMeAtNumber": "Beni şu numaradan arayın:",
|
||||
"configuringDevices": "Cihazlar yapılandırılıyor...",
|
||||
"connectedWithAudioQ": "Sese bağlı mısınız?",
|
||||
"connection": {
|
||||
"good": "İnternet bağlantınız iyi görünüyor!",
|
||||
"nonOptimal": "İnternet bağlantınız uygun değil",
|
||||
"poor": "İnternet bağlantınız zayıf"
|
||||
},
|
||||
"connectionDetails": {
|
||||
"audioClipping": "Sesinizin kırpılmasını bekliyoruz.",
|
||||
"audioHighQuality": "Sesinizin mükemmel kalitede olmasını bekliyoruz.",
|
||||
"audioLowNoVideo": "Ses kalitenizin düşük olmasını ve video olmamasını bekliyoruz.",
|
||||
"goodQuality": "Mükemmel! Medya kaliteniz harika olacak.",
|
||||
"noMediaConnectivity": "Bu test için medya bağlantısı kurmanın bir yolunu bulamadık. Buna genellikle bir güvenlik duvarı veya NAT neden olur.",
|
||||
"noVideo": "Videonuzun korkunç olmasını bekliyoruz.",
|
||||
"undetectable": "Tarayıcıda hala arama yapamıyorsanız, hoparlörlerinizin, mikrofonunuzun ve kameranızın doğru şekilde kurulduğundan, tarayıcınıza mikrofon ve kameranızı kullanma haklarını verdiğinizden ve tarayıcı sürümünüzün güncel olduğundan emin olmanızı öneririz. Arama konusunda hala sorun yaşıyorsanız, web uygulaması geliştiricisi ile iletişime geçmelisiniz.",
|
||||
"veryPoorConnection": "Çağrı kalitenizin gerçekten korkunç olmasını bekliyoruz.",
|
||||
"videoFreezing": "Videonuzun donmasını, kararmasını ve piksellenmesini bekliyoruz.",
|
||||
"videoHighQuality": "Videonuzun kaliteli olmasını bekliyoruz.",
|
||||
"videoLowQuality": "Videonuzun kare hızı ve çözünürlük açısından düşük kalitede olmasını bekliyoruz.",
|
||||
"videoTearing": "Videonuzun pikselli olmasını veya görsel problemler içermesini bekliyoruz."
|
||||
},
|
||||
"copyAndShare": "Toplantı bağlantısını kopyala ve paylaş",
|
||||
"dialInMeeting": "Toplantıya telefon et",
|
||||
"dialInPin": "Toplantıya telefon edin ve PIN kodunu girin:",
|
||||
@@ -715,8 +520,6 @@
|
||||
"errorDialOutDisconnected": "Dışarı arama yapılamadı. Bağlantı kesildi",
|
||||
"errorDialOutFailed": "Dışarı arama yapılamadı. Arama başarısız",
|
||||
"errorDialOutStatus": "Dışarı arama durumu alınırken hata oluştu",
|
||||
"errorMissingName": "Toplantıya girmek için lütfen isminizi giriniz",
|
||||
"errorNoPermissions": "Mikrofon ve kamera erişimini etkinleştirmeniz gerekiyor",
|
||||
"errorStatusCode": "Dışarı arama hatası, durum kodu: {{status}}",
|
||||
"errorValidation": "Numara doğrulanamadı",
|
||||
"iWantToDialIn": "İçeri arama yapmak istiyorum",
|
||||
@@ -727,9 +530,6 @@
|
||||
"linkCopied": "Bağlantı panoya kopyalandı",
|
||||
"lookGood": "Mikrofonunuz düzgün çalışıyor gibi görünüyor",
|
||||
"or": "veya",
|
||||
"premeeting": "Toplantı öncesi",
|
||||
"showScreen": "Toplantı öncesi ekranını etkinleştir",
|
||||
"keyboardShortcuts" : "Klavye kısayollarını etkinleştir",
|
||||
"calling": "Arama",
|
||||
"startWithPhone": "Telefon sesiyle başlayın",
|
||||
"screenSharingError": "Ekran paylaşma hatası:",
|
||||
@@ -737,6 +537,7 @@
|
||||
"videoTrackError": "Video izleme oluşturulamadı.",
|
||||
"viewAllNumbers": "tüm numaraları görüntüle"
|
||||
},
|
||||
|
||||
"presenceStatus": {
|
||||
"busy": "Meşgul",
|
||||
"calling": "Arıyor...",
|
||||
@@ -752,7 +553,6 @@
|
||||
"ringing": "Çalıyor..."
|
||||
},
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Görünür adınızı ayarlayın",
|
||||
"setEmailInput": "E-posta adresinizi girin",
|
||||
"setEmailLabel": "Gravatar e-postanızı ayarlayın",
|
||||
@@ -767,41 +567,35 @@
|
||||
"beta": "BETA",
|
||||
"busy": "Kayıt kaynaklarını boşaltmaya çalışıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.",
|
||||
"busyTitle": "Tüm kayıt cihazları şu anda meşgul",
|
||||
"copyLink": "Linki Kopyala",
|
||||
"error": "Kayıt başarısız oldu. Lütfen tekrar deneyin.",
|
||||
"errorFetchingLink": "Kayıt bağlantısı getirilirken hata oluştu.",
|
||||
"expandedOff": "Kayıt durdu",
|
||||
"expandedOn": "Toplantı şu anda kaydediliyor.",
|
||||
"expandedPending": "Kayıt başlatılıyor ...",
|
||||
"failedToStart": "Kayıt başlatılamadı",
|
||||
"fileSharingdescription": "Toplantı katılımcılarıyla kaydı paylaş",
|
||||
"linkGenerated": "Kaydınızla ilgili link oluşturduk.",
|
||||
"live": "CANLI",
|
||||
"loggedIn": "{{userName}} olarak giriş yapıldı",
|
||||
"off": "Kayıt durdu",
|
||||
"offBy": "{{name}} isimli kayıt durduruldu",
|
||||
"on": "Kayıt başladı",
|
||||
"onBy": "{{name}} isimli kayıt başlatıldı",
|
||||
"pending": "Toplantıyı kaydetmeye hazırlanıyor ...",
|
||||
"rec": "KAYIT",
|
||||
"serviceDescription": "Kaydınız kayıt hizmeti tarafından kaydedilecektir",
|
||||
"serviceDescriptionCloud": "Bulut kaydı",
|
||||
"serviceName": "Kayıt hizmeti",
|
||||
"signIn": "Giriş yap",
|
||||
"signOut": "Çıkış yap",
|
||||
"unavailable": "Ah! {{serviceName}} şu anda kullanılamıyor. Sorunu çözmek için çalışıyoruz. Lütfen daha sonra tekrar deneyin.",
|
||||
"unavailableTitle": "Kayıt yapılamıyor",
|
||||
"uploadToCloud": "Buluta yükle"
|
||||
"unavailableTitle": "Kayıt yapılamıyor"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Yenilemek için çekin"
|
||||
},
|
||||
|
||||
"security": {
|
||||
"about": "Toplantınıza bir parola ekleyebilirsiniz. Katılımcıların toplantıya katılmasına izin verilmeden önce parolayı girmeleri gerekecektir.",
|
||||
"aboutReadOnly": "Moderatörler toplantıya toplantıya bir $t(lockRoomPassword) eklenebilir. Katılımcıların toplantıya katılmalarına izin verilmeden önce $t(lockRoomPassword) bilgilerini sağlamaları gerekir..",
|
||||
"insecureRoomNameWarning": "Toplantı odası güvenli değil. Konferansınıza istenmeyen katılımcılar katılabilir.",
|
||||
"securityOptions": "Güvenlik Seçenekleri"
|
||||
},
|
||||
|
||||
"settings": {
|
||||
"calendar": {
|
||||
"about": "{{appName}} takvim entegrasyonu, yaklaşan etkinlikleri okuyabilmesi için takviminize güvenli bir şekilde erişmek için kullanılır.",
|
||||
@@ -810,33 +604,19 @@
|
||||
"signedIn": "Şu anda {{email}} için takvim etkinliklerine erişiliyor. Takvim etkinliklerine erişmeyi durdurmak için aşağıdaki Bağlantıyı Kes butonuna tıklayın.",
|
||||
"title": "Takvim"
|
||||
},
|
||||
"desktopShareFramerate": "Masaüstü paylaşım kare hızı",
|
||||
"desktopShareWarning": "Yeni ayarların etkili olması için ekran paylaşımını yeniden başlatmanız gerekli.",
|
||||
"desktopShareHighFpsWarning": "Masaüstü paylaşımı için daha yüksek bir kare hızı bant genişliğinizi etkileyebilir. Yeni ayarların etkili olması için ekran paylaşımını yeniden başlatmanız gerekli.",
|
||||
"devices": "Cihazlar",
|
||||
"followMe": "Beni takip edenler",
|
||||
"framesPerSecond": "kare/saniye",
|
||||
"incomingMessage": "Gelen mesaj",
|
||||
"language": "Dil",
|
||||
"loggedIn": "{{name}} olarak giriş yapıldı",
|
||||
"microphones": "Mikrofonlar",
|
||||
"moderator": "Yönetici",
|
||||
"more": "Daha fazla",
|
||||
"name": "Ad",
|
||||
"noDevice": "Yok",
|
||||
"participantJoined": "Katılımcı katıldı",
|
||||
"participantLeft": "Katılımcı ayrıldı",
|
||||
"playSounds": "Sesi çal",
|
||||
"reactions": "Toplantı reaksiyonları",
|
||||
"sameAsSystem": "Sistemle aynı ({{label}})",
|
||||
"selectAudioOutput": "Ses çıkışı",
|
||||
"selectCamera": "Kamera",
|
||||
"selectMic": "Mikrofon",
|
||||
"sounds": "Sesler",
|
||||
"speakers": "Hoparlörler",
|
||||
"startAudioMuted": "Herkes ses kapalı başlasın",
|
||||
"startVideoMuted": "Herkes görüntü kapalı başlasın",
|
||||
"talkWhileMuted": "Sesi kapalıyken konuş",
|
||||
"title": "Ayarlar"
|
||||
},
|
||||
"settingsView": {
|
||||
@@ -867,7 +647,6 @@
|
||||
},
|
||||
"speaker": "Konuşmacı",
|
||||
"speakerStats": {
|
||||
"search": "Ara",
|
||||
"hours": "{{count}}sa",
|
||||
"minutes": "{{count}}dk",
|
||||
"name": "Ad",
|
||||
@@ -877,7 +656,6 @@
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"genericTitle": "Toplantının mikrofonunuzu ve kameranızı kullanması gerekli.",
|
||||
"title": "{{app}} kameranızı ve mikrofonunuzu kullanmaya ihtiyaç duyuyor."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
@@ -889,93 +667,63 @@
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Yalnızca sesi aç/kapat",
|
||||
"audioRoute": "Ses aygıtını seçin",
|
||||
"boo": "Boo",
|
||||
"callQuality": "Arama kalitesini yönetin",
|
||||
"cc": "Altyazıları aç/kapat",
|
||||
"chat": "Mesajlaşma penceresini aç/kapat",
|
||||
"clap": "Alkış",
|
||||
"document": "Paylaşılan dokümanı aç/kapat",
|
||||
"download": "Uygulamalarımızı indirin",
|
||||
"embedMeeting": "Toplantıyı yerleştir",
|
||||
"e2ee": "Uçtan uca şifreleme",
|
||||
"feedback": "Geri bildirim bırakın",
|
||||
"grantModerator": "Moderatör Hakları Ver",
|
||||
"fullScreen": "Tam ekranı aç/kapat",
|
||||
"hangup": "Aramadan ayrıl",
|
||||
"help": "Yardım",
|
||||
"invite": "İnsanları davet et",
|
||||
"kick": "Katılımcı çıkar",
|
||||
"laugh": "Gül",
|
||||
"like": "Çok iyi!",
|
||||
"lobbyButton": "Lobi modunu etkinleştir / devre dışı bırak",
|
||||
"localRecording": "Kayıt denetimlerini aç/kapat",
|
||||
"lockRoom": "Toplantı parolasını aç/kapat",
|
||||
"moreActions": "Diğer işlemler menüsünü aç/kapat",
|
||||
"moreActionsMenu": "Diğer işlemler menüsü",
|
||||
"moreOptions": "Daha fazla seçenek göster",
|
||||
"mute": "Sesi aç/kapat",
|
||||
"muteEveryone": "Herkesi sustur",
|
||||
"muteEveryoneElse": "Diğer herkesi sessize al",
|
||||
"muteEveryonesVideo": "Herkesin kamerasını devre dışı bırak",
|
||||
"muteEveryoneElsesVideo": "Diğer herkesin kamerasını devre dışı bırak",
|
||||
"participants": "Katılımcılar",
|
||||
"pip": "Resim içinde Resim modunu aç/kapat",
|
||||
"privateMessage": "Özel mesaj gönder",
|
||||
"profile": "Profilinizi düzenleyin",
|
||||
"raiseHand": "El kaldırmayı aç/kapat",
|
||||
"reactionsMenu": "Reaksiyon menüsünü Aç / Kapa",
|
||||
"recording": "Kaydetmeyi aç/kapat",
|
||||
"remoteMute": "Katılımcının sesini kapat",
|
||||
"remoteVideoMute": "Katılımcının kamerasını devre dışı bırak",
|
||||
"security": "Güvenlik seçenekleri",
|
||||
"Settings": "Ayarları aç/kapat",
|
||||
"shareaudio": "Sesi paylaş",
|
||||
"sharedvideo": "Youtube video paylaşmayı aç/kapat",
|
||||
"shareRoom": "Birini davet et",
|
||||
"shareYourScreen": "Ekran paylaşımını aç/kapat",
|
||||
"shortcuts": "Kısayolları aç/kapat",
|
||||
"show": "Sahnede göster",
|
||||
"silence": "Sessiz",
|
||||
"speakerStats": "Konuşmacı istatistiklerini aç/kapat",
|
||||
"surprised": "Sürpriz",
|
||||
"tileView": "Döşeme görünümünü aç/kapat",
|
||||
"toggleCamera": "Kamerayı değiştir",
|
||||
"toggleFilmstrip": "Film şeridini aç/kapat",
|
||||
"videomute": "Sessiz videoyu aç/kapat",
|
||||
"videoblur": "",
|
||||
"selectBackground": "Arkaplan Seç",
|
||||
"expand": "Genişlet",
|
||||
"collapse": "Daralt"
|
||||
"videoblur": ""
|
||||
},
|
||||
"addPeople": "Aramanıza kişi ekleyin",
|
||||
"audioSettings": "Ses ayarları",
|
||||
"videoSettings": "Video ayarları",
|
||||
"audioOnlyOff": "Yalnızca ses modunu devre dışı bırak",
|
||||
"audioOnlyOn": "Yalnızca ses modunu etkinleştir",
|
||||
"audioRoute": "Ses aygıtını seçin",
|
||||
"authenticate": "Kimlik doğrula",
|
||||
"boo": "Boo",
|
||||
"callQuality": "Arama kalitesini yönetin",
|
||||
"chat": "Mesajlaşmayı aç/kapat",
|
||||
"clap": "Alkış",
|
||||
"closeChat": "Mesajlaşmayı kapat",
|
||||
"closeReactionsMenu": "Reaksiyon menüsünü kapat",
|
||||
"disableReactionSounds": "Toplantı için reaksiyon seslerini devre dışı bırak",
|
||||
"documentClose": "Paylaşılan dokümanı kapat",
|
||||
"documentOpen": "Paylaşılan dokümanı aç",
|
||||
"download": "Uygulamalarımızı indirin",
|
||||
"download": "Uygulamalarımızı indirin",
|
||||
"e2ee": "Uçtan uca şifreleme",
|
||||
"embedMeeting": "Toplantıyı yerleştir",
|
||||
"enterFullScreen": "Tam ekran görüntüle",
|
||||
"enterTileView": "Döşeme görünümüne geç",
|
||||
"exitFullScreen": "Tam ekrandan çık",
|
||||
"exitTileView": "Döşeme görünümünden çık",
|
||||
"feedback": "Geri bildirim bırakın",
|
||||
"hangup": "Ayrıl",
|
||||
"help": "Yardım",
|
||||
"help": "Yardım",
|
||||
"invite": "Kişi davet et",
|
||||
"laugh": "Gül",
|
||||
"like": "Çok iyi!",
|
||||
"lobbyButtonDisable": "Lobi modunu devre dışı bırak",
|
||||
"lobbyButtonEnable": "Lobi modunu devre aktifleştir",
|
||||
"login": "Oturum aç",
|
||||
@@ -985,7 +733,6 @@
|
||||
"moreOptions": "Daha fazla seçenek",
|
||||
"mute": "Sessiz / Sesli",
|
||||
"muteEveryone": "Herkesi sustur",
|
||||
"muteEveryonesVideo": "Herkesin kamerasını devre dışı bırak",
|
||||
"noAudioSignalTitle": "Mikrofonunuzdan hiçbir giriş gelmiyor!",
|
||||
"noAudioSignalDesc": "Sistem ayarlarından veya donanımdan sesi kapatmadıysanız, cihazınızı değiştirin.",
|
||||
"noAudioSignalDescSuggestion": "Sistem ayarlarından veya donanımdan kasıtlı olarak kapatmadıysanız, önerilen aygıta geçmeyi düşünün.",
|
||||
@@ -994,39 +741,25 @@
|
||||
"noisyAudioInputTitle": "Mikrofonunuz gürültülü görünüyor!",
|
||||
"noisyAudioInputDesc": "Mikrofonunuz gürültü yapıyor gibi görünüyor, lütfen cihazı kapatmayı veya değiştirmeyi düşünün.",
|
||||
"openChat": "Mesajlaşmayı aç",
|
||||
"openReactionsMenu": "Reaksiyon menüsünü aç",
|
||||
"participants": "Katılımcılar",
|
||||
"pip": "Resim içinde Resim moduna gir",
|
||||
"privateMessage": "Özel mesaj gönder",
|
||||
"profile": "Profilinizi düzenleyin",
|
||||
"raiseHand": "Elinizi kaldırın/indirin",
|
||||
"raiseYourHand": "Elinizi kaldırın",
|
||||
"reactionBoo": "Boo gönder",
|
||||
"reactionClap": "Alkış gönder",
|
||||
"reactionLaugh": "Gülme gönder",
|
||||
"reactionLike": "Çok iyi! gönder",
|
||||
"reactionSilence": "Sessizlik gönder",
|
||||
"reactionSurprised": "Sürpriz gönder",
|
||||
"security": "Güvenlik seçenekleri",
|
||||
"Settings": "Ayarlar",
|
||||
"shareaudio": "Ses paylaş",
|
||||
"sharedvideo": "Bir Youtube videosu paylaş",
|
||||
"shareRoom": "Birini davet et",
|
||||
"shortcuts": "Kısayolları göster",
|
||||
"silence": "Sessiz",
|
||||
"speakerStats": "Konuşmacı istatistikleri",
|
||||
"startScreenSharing": "Ekran paylaşımını başlat",
|
||||
"startSubtitles": "Altyazıları başlat",
|
||||
"stopAudioSharing": "Ses paylaşımını durdur",
|
||||
"stopScreenSharing": "Ekran paylaşımını durdur",
|
||||
"stopSubtitles": "Altyazıları durdur",
|
||||
"stopSharedVideo": "Youtube videosunu durdur",
|
||||
"surprised": "Sürpriz",
|
||||
"talkWhileMutedPopup": "Bir şey mi dediniz? Mikrofonunuz kapalı.",
|
||||
"tileViewToggle": "Döşeme görünümünü aç/kapat",
|
||||
"toggleCamera": "Kamerayı değiştir",
|
||||
"videomute": "Kamera başlat / durdur",
|
||||
"selectBackground": "Arkaplan seç",
|
||||
"startvideoblur": "",
|
||||
"stopvideoblur": ""
|
||||
},
|
||||
@@ -1054,7 +787,6 @@
|
||||
"react-nativeGrantPermissions": "Tarayıcınız izin istediğinde <b><i>İzin Ver</i></b> seçeneğini seçin.",
|
||||
"safariGrantPermissions": "Tarayıcınız izin istediğinde <b><i>Tamam</i></b> seçeneğini seçin."
|
||||
},
|
||||
"volumeSlider": "Ses kaydırıcısı",
|
||||
"videoSIPGW": {
|
||||
"busy": "Kaynakları serbest bırakmaya çalışıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.",
|
||||
"busyTitle": "Oda hizmeti şu anda meşgul",
|
||||
@@ -1070,7 +802,6 @@
|
||||
"audioOnlyExpanded": "Yalnızca ses modundasınız. Bu mod bant genişliğinden tasarruf sağlar, ancak başkalarının videolarını göremezsiniz.",
|
||||
"callQuality": "Arama Kalitesi",
|
||||
"hd": "HD",
|
||||
"hdTooltip": "Yüksek çözünürlükte video görüntüleniyor",
|
||||
"highDefinition": "Yüksek çözünürlük",
|
||||
"labelTooiltipNoVideo": "Görüntü yok",
|
||||
"labelTooltipAudioOnly": "Yalnızca ses modu etkin",
|
||||
@@ -1084,24 +815,18 @@
|
||||
"standardDefinition": "Standart çözünürlük"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Bağlantı Bilgisi",
|
||||
"domute": "Sustur",
|
||||
"domuteVideo": "Kamerayı devre dışı bırak",
|
||||
"domuteOthers": "Diğer herkesi sustur",
|
||||
"domuteVideoOfOthers": "Diğer herkesin kamerasını devre dışı bırak",
|
||||
"flip": "Döndür",
|
||||
"grantModerator": "Moderatör Hakları Ver",
|
||||
"kick": "Çıkar",
|
||||
"moderator": "Yönetici",
|
||||
"mute": "Katılımcı sessiz",
|
||||
"muted": "Sessiz",
|
||||
"videoMuted": "Kamerayı devre dışı bırakıldı",
|
||||
"remoteControl": "Uzaktan kontrol",
|
||||
"show": "Sahnede göster",
|
||||
"videomute": "Katılımcı kamerayı durdurdu"
|
||||
},
|
||||
"welcomepage": {
|
||||
"addMeetingName": "Toplantı adı ekle",
|
||||
"accessibilityLabel": {
|
||||
"join": "Katılmak için dokunun",
|
||||
"roomname": "Oda adı girin"
|
||||
@@ -1115,18 +840,11 @@
|
||||
"connectCalendarButton": "Takviminizi bağlayın",
|
||||
"connectCalendarText": "",
|
||||
"enterRoomTitle": "Yeni bir toplantı başlat",
|
||||
"getHelp": "Yardım alın",
|
||||
"getHelp": "Yardım alın",
|
||||
"roomNameAllowedChars": "Toplantı adı şu karakterlerden hiçbirini içermemelidir: ?, &, :, ', \", %, #.",
|
||||
|
||||
"go": "GİT",
|
||||
"goSmall": "GİT",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"headerSubtitle": "Güvenli ve yüksek kaliteli toplantılar",
|
||||
"join": "KATIL",
|
||||
"jitsiOnMobile": "Mobil'de Jitsi – uygulamalarımızı indirin ve her yerden bir toplantı başlatın",
|
||||
"mobileDownLoadLinkIos": "iOS için mobil uygulamayı indirin",
|
||||
"mobileDownLoadLinkAndroid": "Android için mobil uygulamayı indirin",
|
||||
"mobileDownLoadLinkFDroid": "F-Droid için mobil uygulamayı indirin",
|
||||
"moderatedMessage": "veya moderatör olduğunuz <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">bir toplantı linki oluşturun</a>.",
|
||||
"info": "Bilgi",
|
||||
"privacy": "Gizlilik",
|
||||
"recentList": "En son",
|
||||
@@ -1136,37 +854,29 @@
|
||||
"roomname": "Oda adı girin",
|
||||
"roomnameHint": "Katılmak istediğiniz odanın adını veya bağlantısını girin. İstediğiniz oda adını uydurabilirsiniz. Aynı odada buluşmak için görüşmek istediğiniz kişilere bunu iletmeniz yeterli.",
|
||||
"sendFeedback": "Geri bildirim gönder",
|
||||
"startMeeting": "Toplantı başlat",
|
||||
"terms": "Kurallar",
|
||||
"title": "Güvenli, tüm özelliklere erişimli ve tamamen ücretsiz görüntülü arama",
|
||||
"logo":{
|
||||
"calendar":"Takvim logo",
|
||||
"microsoftLogo":"Microsoft logo",
|
||||
"logoDeepLinking":"Jitsi meet logo",
|
||||
"desktopPreviewThumbnail":"Masaüstü önizleme küçük resmi",
|
||||
"googleLogo":"Google Logo",
|
||||
"policyLogo":"Politika logo"
|
||||
}
|
||||
"title": "Güvenli, tüm özelliklere erişimli ve tamamen ücretsiz görüntülü arama"
|
||||
|
||||
},
|
||||
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Birilerini davet et",
|
||||
"youAreAlone": "Toplantıdaki tek kişisiniz"
|
||||
},
|
||||
|
||||
"helpView": {
|
||||
"header": "Yardım Merkezi"
|
||||
},
|
||||
|
||||
"defaultNickname": "örnek Jane Pink",
|
||||
"chromeExtensionBanner": {
|
||||
"dontShowAgain": "Bunu bir daha gösterme",
|
||||
"buttonText": "Chrome Eklentisi'ni indirin",
|
||||
"installExtensionText": "Google Takvim ve Office 365 entegrasyonu için uzantıyı yükleyin",
|
||||
"close": "Kapat"
|
||||
"installExtensionText": "Google Takvim ve Office 365 entegrasyonu için uzantıyı yükleyin"
|
||||
},
|
||||
|
||||
"lobby": {
|
||||
"admit": "Kabul et",
|
||||
"allow": "İzin ver",
|
||||
"admitAll": "Hepsini kabul et",
|
||||
"knockingParticipantList": "Kapıyı çalan katılımcı listesi",
|
||||
"backToKnockModeButton": "Parola yok, bunun yerine katılmayı isteyin",
|
||||
"dialogTitle": "Lobi modu",
|
||||
"disableDialogContent": "Lobi modu şu anda etkin. Bu özellik, istenmeyen katılımcıların toplantınıza katılamamasını sağlar. Devre dışı bırakmak istiyor musunuz?",
|
||||
@@ -1177,7 +887,6 @@
|
||||
"enableDialogText": "Lobi modu, toplantınızı yalnızca kişilerin bir moderatör tarafından resmi olarak onaylandıktan sonra girmelerine izin vererek korumanıza izin verir.",
|
||||
"enterPasswordButton": "Toplantı parolasını girin",
|
||||
"enterPasswordTitle": "Toplantıya katılmak için parola girin",
|
||||
"errorMissingPassword": "Lütfen toplantı parolasını girin",
|
||||
"invalidPassword": "Geçersiz parola",
|
||||
"joiningMessage": "Birisi isteğinizi kabul eder etmez toplantıya katılacaksınız",
|
||||
"joinWithPasswordMessage": "Parola ile katılmaya çalışıyorsunuz lütfen bekleyin...",
|
||||
@@ -1188,15 +897,10 @@
|
||||
"knockButton": "Katılmak için sor",
|
||||
"knockTitle": "Birisi toplantıya katılmak istiyor",
|
||||
"nameField": "Adınızı giriniz",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} adlı katılımcı {{originParticipantName}} tarafından reddedildi",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} adlı katılımcı {{originParticipantName}} tarafından kabul edildi",
|
||||
"notificationLobbyDisabled": "Lobi {{originParticipantName}} tarafından devre dışı bırakıldı",
|
||||
"notificationLobbyEnabled": "Lobi {{originParticipantName}} tarafından etkinleştirildi",
|
||||
"notificationTitle": "Lobi",
|
||||
"passwordField": "Toplantı parolasını giriniz",
|
||||
"passwordJoinButton": "Katıl",
|
||||
"reject": "Reddet",
|
||||
"rejectAll": "Hepsini reddet",
|
||||
"toggleLabel": "Lobiyi etkinleştir"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
"muteParticipantDialog": "Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.",
|
||||
"muteParticipantsVideoDialog": "Are you sure you want to turn off this participant's camera? You won't be able to turn the camera back on, but they can turn it back on at any time.",
|
||||
"muteParticipantTitle": "Mute this participant?",
|
||||
"muteParticipantsVideoButton": "Stop video",
|
||||
"muteParticipantsVideoButton": "Stop camera",
|
||||
"muteParticipantsVideoTitle": "Disable camera of this participant?",
|
||||
"muteParticipantsVideoBody": "You won't be able to turn the camera back on, but they can turn it back on at any time.",
|
||||
"noDropboxToken": "No valid Dropbox token",
|
||||
@@ -315,7 +315,7 @@
|
||||
"sendPrivateMessageTitle": "Send privately?",
|
||||
"serviceUnavailable": "Service unavailable",
|
||||
"sessTerminated": "Call terminated",
|
||||
"sessionRestarted": "Call restarted because of a connection issue.",
|
||||
"sessionRestarted": "Call restarted by the bridge",
|
||||
"Share": "Share",
|
||||
"shareAudio": "Continue",
|
||||
"shareAudioTitle" : "How to share audio",
|
||||
@@ -897,8 +897,8 @@
|
||||
"mute": "Mute / Unmute",
|
||||
"muteEveryone": "Mute everyone",
|
||||
"muteEveryoneElse": "Mute everyone else",
|
||||
"muteEveryonesVideo": "Disable everyone's video",
|
||||
"muteEveryoneElsesVideo": "Disable everyone else's video",
|
||||
"muteEveryonesVideo": "Disable everyone's camera",
|
||||
"muteEveryoneElsesVideo": "Disable everyone else's camera",
|
||||
"participants": "Participants",
|
||||
"pip": "Toggle Picture-in-Picture mode",
|
||||
"privateMessage": "Send private message",
|
||||
|
||||
@@ -1,25 +1,15 @@
|
||||
# Jitsi Meet Translation
|
||||
|
||||
Jitsi Meet Translation
|
||||
==========================
|
||||
Jitsi Meet uses [i18next](http://i18next.com) library for translation.
|
||||
i18next uses separate json files for each language.
|
||||
|
||||
|
||||
## Translating Jitsi Meet
|
||||
|
||||
Translating Jitsi Meet
|
||||
======================
|
||||
The translation of Jitsi Meet is handled editing manually the language files.
|
||||
|
||||
You can use the `update-translation.js` script as follows to help you with that:
|
||||
|
||||
```js
|
||||
cd lang
|
||||
node update-translation.js main-es.json
|
||||
```
|
||||
|
||||
That will cause the `main-es.json` file to be updated with all the missing keys set as empty
|
||||
strings. All that's missing is for you to fill in the blanks!
|
||||
|
||||
## Development
|
||||
|
||||
Development
|
||||
===========
|
||||
If you want to add new functionality for Jitsi Meet and you have texts that need to be translated you must add key and value in main.json file in English for each translatable text.
|
||||
Than you can use the key to get the translated text for the current language.
|
||||
|
||||
@@ -53,3 +43,7 @@ You can add translatable text in the HTML:
|
||||
For the available values of ``options`` parameter for the above methods of translation module see [i18next documentation](http://i18next.com/pages/doc_features).
|
||||
|
||||
**Note:** It is useful to add attributes in the HTML for persistent HTML elements because when the language is changed the text will be automatically translated.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
/* eslint-disable */
|
||||
|
||||
const fs = require('fs');
|
||||
const process = require('process');
|
||||
const traverse = require('traverse');
|
||||
const mainLang = require('./main.json');
|
||||
|
||||
const [ targetLangFile ] = process.argv.slice(-1);
|
||||
|
||||
if (!targetLangFile) {
|
||||
console.log('No target language file specified');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const targetLang = require(`./${targetLangFile}`);
|
||||
|
||||
const paths = traverse(mainLang).reduce(function(acc, item) {
|
||||
if (this.isLeaf) {
|
||||
acc.push(this.path);
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
const result = {};
|
||||
|
||||
for (const path of paths) {
|
||||
if (traverse(targetLang).has(path)) {
|
||||
traverse(result).set(path, traverse(targetLang).get(path));
|
||||
} else {
|
||||
//console.log(`${path.join('.')} is missing`);
|
||||
traverse(result).set(path, '');
|
||||
}
|
||||
}
|
||||
|
||||
const data = JSON.stringify(result, undefined, 4);
|
||||
|
||||
fs.writeFileSync(`./${targetLangFile}`, data);
|
||||
@@ -6,17 +6,6 @@ import {
|
||||
createApiEvent,
|
||||
sendAnalytics
|
||||
} from '../../react/features/analytics';
|
||||
import {
|
||||
approveParticipantAudio,
|
||||
approveParticipantVideo,
|
||||
rejectParticipantAudio,
|
||||
rejectParticipantVideo,
|
||||
requestDisableAudioModeration,
|
||||
requestDisableVideoModeration,
|
||||
requestEnableAudioModeration,
|
||||
requestEnableVideoModeration
|
||||
} from '../../react/features/av-moderation/actions';
|
||||
import { isEnabledFromState } from '../../react/features/av-moderation/functions';
|
||||
import {
|
||||
getCurrentConference,
|
||||
sendTones,
|
||||
@@ -36,8 +25,7 @@ import {
|
||||
pinParticipant,
|
||||
kickParticipant,
|
||||
raiseHand,
|
||||
isParticipantModerator,
|
||||
isLocalParticipantModerator
|
||||
isParticipantModerator
|
||||
} from '../../react/features/base/participants';
|
||||
import { updateSettings } from '../../react/features/base/settings';
|
||||
import { isToggleCameraEnabled, toggleCamera } from '../../react/features/base/tracks';
|
||||
@@ -62,7 +50,6 @@ import {
|
||||
resizeLargeVideo
|
||||
} from '../../react/features/large-video/actions.web';
|
||||
import { toggleLobbyMode } from '../../react/features/lobby/actions';
|
||||
import { isForceMuted } from '../../react/features/participants-pane/functions';
|
||||
import { RECORDING_TYPES } from '../../react/features/recording/constants';
|
||||
import { getActiveSession } from '../../react/features/recording/functions';
|
||||
import { isScreenAudioSupported } from '../../react/features/screen-share';
|
||||
@@ -113,20 +100,6 @@ let videoAvailable = true;
|
||||
*/
|
||||
function initCommands() {
|
||||
commands = {
|
||||
'approve-video': participantId => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
return;
|
||||
}
|
||||
|
||||
APP.store.dispatch(approveParticipantVideo(participantId));
|
||||
},
|
||||
'ask-to-unmute': participantId => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
return;
|
||||
}
|
||||
|
||||
APP.store.dispatch(approveParticipantAudio(participantId));
|
||||
},
|
||||
'display-name': displayName => {
|
||||
sendAnalytics(createApiEvent('display.name.changed'));
|
||||
APP.conference.changeLocalDisplayName(displayName);
|
||||
@@ -177,15 +150,6 @@ function initCommands() {
|
||||
'proxy-connection-event': event => {
|
||||
APP.conference.onProxyConnectionEvent(event);
|
||||
},
|
||||
'reject-participant': (participantId, mediaType) => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
return;
|
||||
}
|
||||
|
||||
const reject = mediaType === MEDIA_TYPE.VIDEO ? rejectParticipantVideo : rejectParticipantAudio;
|
||||
|
||||
APP.store.dispatch(reject(participantId));
|
||||
},
|
||||
'resize-large-video': (width, height) => {
|
||||
logger.debug('Resize large video command received');
|
||||
sendAnalytics(createApiEvent('largevideo.resized'));
|
||||
@@ -254,24 +218,6 @@ function initCommands() {
|
||||
sendAnalytics(createApiEvent('chat.toggled'));
|
||||
APP.store.dispatch(toggleChat());
|
||||
},
|
||||
'toggle-moderation': (enabled, mediaType) => {
|
||||
const state = APP.store.getState();
|
||||
|
||||
if (!isLocalParticipantModerator(state)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const enable = mediaType === MEDIA_TYPE.VIDEO
|
||||
? requestEnableVideoModeration : requestEnableAudioModeration;
|
||||
const disable = mediaType === MEDIA_TYPE.VIDEO
|
||||
? requestDisableVideoModeration : requestDisableAudioModeration;
|
||||
|
||||
if (enabled) {
|
||||
APP.store.dispatch(enable());
|
||||
} else {
|
||||
APP.store.dispatch(disable());
|
||||
}
|
||||
},
|
||||
'toggle-raise-hand': () => {
|
||||
const localParticipant = getLocalParticipant(APP.store.getState());
|
||||
|
||||
@@ -560,9 +506,6 @@ function initCommands() {
|
||||
});
|
||||
});
|
||||
break;
|
||||
case 'deployment-info':
|
||||
callback(APP.store.getState()['features/base/config'].deploymentInfo);
|
||||
break;
|
||||
case 'invite': {
|
||||
const { invitees } = request;
|
||||
|
||||
@@ -598,22 +541,6 @@ function initCommands() {
|
||||
case 'is-audio-muted':
|
||||
callback(APP.conference.isLocalAudioMuted());
|
||||
break;
|
||||
case 'is-moderation-on': {
|
||||
const { mediaType } = request;
|
||||
const type = mediaType || MEDIA_TYPE.AUDIO;
|
||||
|
||||
callback(isEnabledFromState(type, APP.store.getState()));
|
||||
break;
|
||||
}
|
||||
case 'is-participant-force-muted': {
|
||||
const state = APP.store.getState();
|
||||
const { participantId, mediaType } = request;
|
||||
const type = mediaType || MEDIA_TYPE.AUDIO;
|
||||
const participant = getParticipantById(state, participantId);
|
||||
|
||||
callback(isForceMuted(participant, type, state));
|
||||
break;
|
||||
}
|
||||
case 'is-video-muted':
|
||||
callback(APP.conference.isLocalVideoMuted());
|
||||
break;
|
||||
@@ -879,51 +806,6 @@ class API {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify the external application that the moderation status has changed.
|
||||
*
|
||||
* @param {string} mediaType - Media type for which the moderation changed.
|
||||
* @param {boolean} enabled - Whether or not the new moderation status is enabled.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyModerationChanged(mediaType: string, enabled: boolean) {
|
||||
this._sendEvent({
|
||||
name: 'moderation-status-changed',
|
||||
mediaType,
|
||||
enabled
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify the external application that a participant was approved on moderation.
|
||||
*
|
||||
* @param {string} participantId - The ID of the participant that got approved.
|
||||
* @param {string} mediaType - Media type for which the participant was approved.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyParticipantApproved(participantId: string, mediaType: string) {
|
||||
this._sendEvent({
|
||||
name: 'moderation-participant-approved',
|
||||
id: participantId,
|
||||
mediaType
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify the external application that a participant was rejected on moderation.
|
||||
*
|
||||
* @param {string} participantId - The ID of the participant that got rejected.
|
||||
* @param {string} mediaType - Media type for which the participant was rejected.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyParticipantRejected(participantId: string, mediaType: string) {
|
||||
this._sendEvent({
|
||||
name: 'moderation-participant-rejected',
|
||||
id: participantId,
|
||||
mediaType
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application that the video quality setting has changed.
|
||||
*
|
||||
@@ -1151,15 +1033,6 @@ class API {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application that the data channel has been opened.
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyDataChannelOpened() {
|
||||
this._sendEvent({ name: 'data-channel-opened' });
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) that we are ready to be
|
||||
* closed.
|
||||
|
||||
49
modules/API/external/external_api.js
vendored
49
modules/API/external/external_api.js
vendored
@@ -27,8 +27,6 @@ const ALWAYS_ON_TOP_FILENAMES = [
|
||||
* commands expected by jitsi-meet
|
||||
*/
|
||||
const commands = {
|
||||
approveVideo: 'approve-video',
|
||||
askToUnmute: 'ask-to-unmute',
|
||||
avatarUrl: 'avatar-url',
|
||||
cancelPrivateChat: 'cancel-private-chat',
|
||||
displayName: 'display-name',
|
||||
@@ -42,7 +40,6 @@ const commands = {
|
||||
overwriteConfig: 'overwrite-config',
|
||||
password: 'password',
|
||||
pinParticipant: 'pin-participant',
|
||||
rejectParticipant: 'reject-participant',
|
||||
resizeLargeVideo: 'resize-large-video',
|
||||
sendChatMessage: 'send-chat-message',
|
||||
sendEndpointTextMessage: 'send-endpoint-text-message',
|
||||
@@ -63,7 +60,6 @@ const commands = {
|
||||
toggleCameraMirror: 'toggle-camera-mirror',
|
||||
toggleChat: 'toggle-chat',
|
||||
toggleFilmStrip: 'toggle-film-strip',
|
||||
toggleModeration: 'toggle-moderation',
|
||||
toggleRaiseHand: 'toggle-raise-hand',
|
||||
toggleShareAudio: 'toggle-share-audio',
|
||||
toggleShareScreen: 'toggle-share-screen',
|
||||
@@ -84,7 +80,6 @@ const events = {
|
||||
'camera-error': 'cameraError',
|
||||
'chat-updated': 'chatUpdated',
|
||||
'content-sharing-participants-changed': 'contentSharingParticipantsChanged',
|
||||
'data-channel-opened': 'dataChannelOpened',
|
||||
'device-list-changed': 'deviceListChanged',
|
||||
'display-name-change': 'displayNameChange',
|
||||
'email-change': 'emailChange',
|
||||
@@ -96,9 +91,6 @@ const events = {
|
||||
'incoming-message': 'incomingMessage',
|
||||
'log': 'log',
|
||||
'mic-error': 'micError',
|
||||
'moderation-participant-approved': 'moderationParticipantApproved',
|
||||
'moderation-participant-rejected': 'moderationParticipantRejected',
|
||||
'moderation-status-changed': 'moderationStatusChanged',
|
||||
'mouse-enter': 'mouseEnter',
|
||||
'mouse-leave': 'mouseLeave',
|
||||
'mouse-move': 'mouseMove',
|
||||
@@ -903,36 +895,6 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the moderation on status on the given mediaType.
|
||||
*
|
||||
* @param {string} mediaType - The media type for which to check moderation.
|
||||
* @returns {Promise} - Resolves with the moderation on status and rejects on
|
||||
* failure.
|
||||
*/
|
||||
isModerationOn(mediaType) {
|
||||
return this._transport.sendRequest({
|
||||
name: 'is-moderation-on',
|
||||
mediaType
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns force muted status of the given participant id for the given media type.
|
||||
*
|
||||
* @param {string} participantId - The id of the participant to check.
|
||||
* @param {string} mediaType - The media type for which to check.
|
||||
* @returns {Promise} - Resolves with the force muted status and rejects on
|
||||
* failure.
|
||||
*/
|
||||
isParticipantForceMuted(participantId, mediaType) {
|
||||
return this._transport.sendRequest({
|
||||
name: 'is-participant-force-muted',
|
||||
participantId,
|
||||
mediaType
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns screen sharing status.
|
||||
*
|
||||
@@ -956,17 +918,6 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
return avatarURL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the deployment info.
|
||||
*
|
||||
* @returns {Promise} - Resolves with the deployment info object.
|
||||
*/
|
||||
getDeploymentInfo() {
|
||||
return this._transport.sendRequest({
|
||||
name: 'deployment-info'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the display name of a participant.
|
||||
*
|
||||
|
||||
29751
package-lock.json
generated
29751
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
33
package.json
33
package.json
@@ -34,7 +34,7 @@
|
||||
"@atlaskit/toggle": "12.0.3",
|
||||
"@atlaskit/tooltip": "17.1.2",
|
||||
"@hapi/bourne": "2.0.0",
|
||||
"@jitsi/js-utils": "2.0.0",
|
||||
"@jitsi/js-utils": "1.0.6",
|
||||
"@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",
|
||||
@@ -54,18 +54,18 @@
|
||||
"i18next": "17.0.6",
|
||||
"i18next-browser-languagedetector": "3.0.1",
|
||||
"i18next-xhr-backend": "3.0.0",
|
||||
"image-capture": "0.4.0",
|
||||
"jitsi-meet-logger": "github:jitsi/jitsi-meet-logger#v1.0.0",
|
||||
"jquery": "3.5.1",
|
||||
"jquery-i18next": "1.2.1",
|
||||
"js-md5": "0.6.1",
|
||||
"jwt-decode": "2.2.0",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#a5cc2321b8528c3117d366ef198a3428fe5bed67",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#1bef6319fbdfdfb03b51d3f7efa348a111ac5805",
|
||||
"libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "2.29.1",
|
||||
"moment-duration-format": "2.2.2",
|
||||
"optional-require": "1.0.3",
|
||||
"pixelmatch": "5.1.0",
|
||||
"promise.allsettled": "1.0.4",
|
||||
"punycode": "2.1.1",
|
||||
"react": "16.12",
|
||||
@@ -92,7 +92,7 @@
|
||||
"react-native-url-polyfill": "1.2.0",
|
||||
"react-native-video": "5.1.1",
|
||||
"react-native-watch-connectivity": "0.4.3",
|
||||
"react-native-webrtc": "1.92.2",
|
||||
"react-native-webrtc": "github:react-native-webrtc/react-native-webrtc#aeb735154c9393bbfde40bf02b797e6eeb91f63a",
|
||||
"react-native-webview": "11.0.2",
|
||||
"react-native-youtube-iframe": "2.1.1",
|
||||
"react-redux": "7.1.0",
|
||||
@@ -102,9 +102,8 @@
|
||||
"react-youtube": "7.13.1",
|
||||
"redux": "4.0.4",
|
||||
"redux-thunk": "2.2.0",
|
||||
"resemblejs": "4.0.0",
|
||||
"rnnoise-wasm": "github:jitsi/rnnoise-wasm#566a16885897704d6e6d67a1d5ac5d39781db2af",
|
||||
"rtcstats": "github:jitsi/rtcstats#v8.1.0",
|
||||
"rtcstats": "github:jitsi/rtcstats#v8.0.1",
|
||||
"styled-components": "3.4.9",
|
||||
"util": "0.12.1",
|
||||
"uuid": "3.1.0",
|
||||
@@ -124,7 +123,7 @@
|
||||
"@babel/preset-env": "7.1.0",
|
||||
"@babel/preset-flow": "7.0.0",
|
||||
"@babel/preset-react": "7.0.0",
|
||||
"@babel/runtime": "7.15.3",
|
||||
"@babel/runtime": "7.9.0",
|
||||
"babel-eslint": "10.0.1",
|
||||
"babel-loader": "8.0.4",
|
||||
"babel-plugin-optional-require": "0.3.1",
|
||||
@@ -132,32 +131,30 @@
|
||||
"clean-css-cli": "4.3.0",
|
||||
"css-loader": "3.6.0",
|
||||
"eslint": "5.6.1",
|
||||
"eslint-config-jitsi": "github:jitsi/eslint-config-jitsi#2.0.0",
|
||||
"eslint-config-jitsi": "github:jitsi/eslint-config-jitsi#1.0.3",
|
||||
"eslint-plugin-flowtype": "2.50.3",
|
||||
"eslint-plugin-import": "2.20.2",
|
||||
"eslint-plugin-jsdoc": "3.8.0",
|
||||
"eslint-plugin-react": "7.11.1",
|
||||
"eslint-plugin-react-native": "3.3.0",
|
||||
"expose-loader": "3.0.0",
|
||||
"expose-loader": "0.7.5",
|
||||
"flow-bin": "0.104.0",
|
||||
"imports-loader": "0.7.1",
|
||||
"jetifier": "1.6.4",
|
||||
"metro-react-native-babel-preset": "0.56.0",
|
||||
"patch-package": "6.4.7",
|
||||
"process": "0.11.10",
|
||||
"sass": "1.26.8",
|
||||
"string-replace-loader": "3.0.3",
|
||||
"string-replace-loader": "2.1.1",
|
||||
"style-loader": "0.19.0",
|
||||
"traverse": "0.6.6",
|
||||
"unorm": "1.6.0",
|
||||
"webpack": "5.57.1",
|
||||
"webpack-bundle-analyzer": "4.4.2",
|
||||
"webpack-cli": "4.9.0",
|
||||
"webpack-dev-server": "4.3.1"
|
||||
"webpack": "4.43.0",
|
||||
"webpack-bundle-analyzer": "3.4.1",
|
||||
"webpack-cli": "3.3.11",
|
||||
"webpack-dev-server": "3.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0",
|
||||
"npm": ">=7.0.0"
|
||||
"node": ">=8.0.0",
|
||||
"npm": ">=6.0.0"
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
module.exports = {
|
||||
'extends': [
|
||||
'../.eslintrc.js',
|
||||
'eslint-config-jitsi/flow',
|
||||
'eslint-config-jitsi/jsdoc',
|
||||
'eslint-config-jitsi/react',
|
||||
'.eslintrc-react-native.js'
|
||||
|
||||
@@ -867,15 +867,3 @@ export function createWelcomePageEvent(action, actionSubject, attributes = {}) {
|
||||
source: 'welcomePage'
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an event which indicates a screenshot of the screensharing has been taken.
|
||||
*
|
||||
* @returns {Object} The event in a format suitable for sending via
|
||||
* sendAnalytics.
|
||||
*/
|
||||
export function createScreensharingCaptureTakenEvent() {
|
||||
return {
|
||||
action: 'screen.sharing.capture'
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
import '../authentication/middleware';
|
||||
import '../base/devices/middleware';
|
||||
import '../dynamic-branding/middleware';
|
||||
import '../e2ee/middleware';
|
||||
import '../external-api/middleware';
|
||||
import '../keyboard-shortcuts/middleware';
|
||||
|
||||
@@ -167,7 +167,6 @@ class LoginDialog extends Component<Props, State> {
|
||||
onChangeText = { this._onUsernameChange }
|
||||
placeholder = { 'user@domain.com' }
|
||||
placeholderTextColor = { PLACEHOLDER_COLOR }
|
||||
spellCheck = { false }
|
||||
style = { _dialogStyles.field }
|
||||
underlineColorAndroid = { FIELD_UNDERLINE }
|
||||
value = { this.state.username } />
|
||||
|
||||
@@ -74,16 +74,6 @@ export const REQUEST_ENABLE_VIDEO_MODERATION = 'REQUEST_ENABLE_VIDEO_MODERATION'
|
||||
*/
|
||||
export const LOCAL_PARTICIPANT_APPROVED = 'LOCAL_PARTICIPANT_APPROVED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that the local participant had been blocked.
|
||||
*
|
||||
* {
|
||||
* type: LOCAL_PARTICIPANT_REJECTED,
|
||||
* mediaType: MediaType
|
||||
* }
|
||||
*/
|
||||
export const LOCAL_PARTICIPANT_REJECTED = 'LOCAL_PARTICIPANT_REJECTED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals to show notification to the local participant.
|
||||
*
|
||||
@@ -104,17 +94,6 @@ export const LOCAL_PARTICIPANT_MODERATION_NOTIFICATION = 'LOCAL_PARTICIPANT_MODE
|
||||
*/
|
||||
export const PARTICIPANT_APPROVED = 'PARTICIPANT_APPROVED';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a participant was blocked for a media type.
|
||||
*
|
||||
* {
|
||||
* type: PARTICIPANT_REJECTED,
|
||||
* mediaType: MediaType
|
||||
* participantId: String
|
||||
* }
|
||||
*/
|
||||
export const PARTICIPANT_REJECTED = 'PARTICIPANT_REJECTED';
|
||||
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that a participant asked to have its audio umuted.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
import { getConferenceState } from '../base/conference';
|
||||
import { MEDIA_TYPE, type MediaType } from '../base/media/constants';
|
||||
import { getParticipantById, isParticipantModerator } from '../base/participants';
|
||||
import { getParticipantById } from '../base/participants';
|
||||
import { isForceMuted } from '../participants-pane/functions';
|
||||
|
||||
import {
|
||||
@@ -16,97 +16,29 @@ import {
|
||||
REQUEST_DISABLE_AUDIO_MODERATION,
|
||||
REQUEST_ENABLE_AUDIO_MODERATION,
|
||||
REQUEST_DISABLE_VIDEO_MODERATION,
|
||||
REQUEST_ENABLE_VIDEO_MODERATION,
|
||||
LOCAL_PARTICIPANT_REJECTED,
|
||||
PARTICIPANT_REJECTED
|
||||
REQUEST_ENABLE_VIDEO_MODERATION
|
||||
} from './actionTypes';
|
||||
import { isEnabledFromState } from './functions';
|
||||
|
||||
/**
|
||||
* Action used by moderator to approve audio for a participant.
|
||||
*
|
||||
* @param {staring} id - The id of the participant to be approved.
|
||||
* @returns {void}
|
||||
*/
|
||||
export const approveParticipantAudio = (id: string) => (dispatch: Function, getState: Function) => {
|
||||
const state = getState();
|
||||
const { conference } = getConferenceState(state);
|
||||
|
||||
const isAudioModerationOn = isEnabledFromState(MEDIA_TYPE.AUDIO, state);
|
||||
const isVideoModerationOn = isEnabledFromState(MEDIA_TYPE.VIDEO, state);
|
||||
|
||||
if (isAudioModerationOn || !isVideoModerationOn) {
|
||||
conference.avModerationApprove(MEDIA_TYPE.AUDIO, id);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Action used by moderator to approve video for a participant.
|
||||
*
|
||||
* @param {staring} id - The id of the participant to be approved.
|
||||
* @returns {void}
|
||||
*/
|
||||
export const approveParticipantVideo = (id: string) => (dispatch: Function, getState: Function) => {
|
||||
const state = getState();
|
||||
const { conference } = getConferenceState(state);
|
||||
const participant = getParticipantById(state, id);
|
||||
|
||||
const isVideoForceMuted = isForceMuted(participant, MEDIA_TYPE.VIDEO, state);
|
||||
const isVideoModerationOn = isEnabledFromState(MEDIA_TYPE.VIDEO, state);
|
||||
|
||||
if (isVideoModerationOn && isVideoForceMuted) {
|
||||
conference.avModerationApprove(MEDIA_TYPE.VIDEO, id);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Action used by moderator to approve audio and video for a participant.
|
||||
*
|
||||
* @param {staring} id - The id of the participant to be approved.
|
||||
* @returns {void}
|
||||
*/
|
||||
export const approveParticipant = (id: string) => (dispatch: Function) => {
|
||||
dispatch(approveParticipantAudio(id));
|
||||
dispatch(approveParticipantVideo(id));
|
||||
};
|
||||
|
||||
/**
|
||||
* Action used by moderator to reject audio for a participant.
|
||||
*
|
||||
* @param {staring} id - The id of the participant to be rejected.
|
||||
* @returns {void}
|
||||
*/
|
||||
export const rejectParticipantAudio = (id: string) => (dispatch: Function, getState: Function) => {
|
||||
export const approveParticipant = (id: string) => (dispatch: Function, getState: Function) => {
|
||||
const state = getState();
|
||||
const { conference } = getConferenceState(state);
|
||||
const audioModeration = isEnabledFromState(MEDIA_TYPE.AUDIO, state);
|
||||
|
||||
const participant = getParticipantById(state, id);
|
||||
|
||||
const isAudioForceMuted = isForceMuted(participant, MEDIA_TYPE.AUDIO, state);
|
||||
const isModerator = isParticipantModerator(participant);
|
||||
|
||||
if (audioModeration && !isAudioForceMuted && !isModerator) {
|
||||
conference.avModerationReject(MEDIA_TYPE.AUDIO, id);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Action used by moderator to reject video for a participant.
|
||||
*
|
||||
* @param {staring} id - The id of the participant to be rejected.
|
||||
* @returns {void}
|
||||
*/
|
||||
export const rejectParticipantVideo = (id: string) => (dispatch: Function, getState: Function) => {
|
||||
const state = getState();
|
||||
const { conference } = getConferenceState(state);
|
||||
const videoModeration = isEnabledFromState(MEDIA_TYPE.VIDEO, state);
|
||||
|
||||
const participant = getParticipantById(state, id);
|
||||
const isVideoForceMuted = isForceMuted(participant, MEDIA_TYPE.VIDEO, state);
|
||||
const isModerator = isParticipantModerator(participant);
|
||||
|
||||
if (videoModeration && !isVideoForceMuted && !isModerator) {
|
||||
conference.avModerationReject(MEDIA_TYPE.VIDEO, id);
|
||||
if (isEnabledFromState(MEDIA_TYPE.AUDIO, state) && isAudioForceMuted) {
|
||||
conference.avModerationApprove(MEDIA_TYPE.AUDIO, id);
|
||||
}
|
||||
if (isEnabledFromState(MEDIA_TYPE.VIDEO, state) && isVideoForceMuted) {
|
||||
conference.avModerationApprove(MEDIA_TYPE.VIDEO, id);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -237,21 +169,6 @@ export const localParticipantApproved = (mediaType: MediaType) => {
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Local participant was blocked to be able to unmute audio and video.
|
||||
*
|
||||
* @param {MediaType} mediaType - The media type to disable.
|
||||
* @returns {{
|
||||
* type: LOCAL_PARTICIPANT_REJECTED
|
||||
* }}
|
||||
*/
|
||||
export const localParticipantRejected = (mediaType: MediaType) => {
|
||||
return {
|
||||
type: LOCAL_PARTICIPANT_REJECTED,
|
||||
mediaType
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Shows notification when A/V moderation is enabled and local participant is still not approved.
|
||||
*
|
||||
@@ -294,21 +211,3 @@ export function participantApproved(id: string, mediaType: MediaType) {
|
||||
mediaType
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* A participant was blocked to unmute for a mediaType.
|
||||
*
|
||||
* @param {string} id - The id of the approved participant.
|
||||
* @param {MediaType} mediaType - The media type which was approved.
|
||||
* @returns {{
|
||||
* type: PARTICIPANT_REJECTED,
|
||||
* }}
|
||||
*/
|
||||
export function participantRejected(id: string, mediaType: MediaType) {
|
||||
return {
|
||||
type: PARTICIPANT_REJECTED,
|
||||
id,
|
||||
mediaType
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -22,13 +22,7 @@ import {
|
||||
import { muteLocal } from '../video-menu/actions.any';
|
||||
|
||||
import {
|
||||
DISABLE_MODERATION,
|
||||
ENABLE_MODERATION,
|
||||
LOCAL_PARTICIPANT_APPROVED,
|
||||
LOCAL_PARTICIPANT_MODERATION_NOTIFICATION,
|
||||
LOCAL_PARTICIPANT_REJECTED,
|
||||
PARTICIPANT_APPROVED,
|
||||
PARTICIPANT_REJECTED,
|
||||
REQUEST_DISABLE_AUDIO_MODERATION,
|
||||
REQUEST_DISABLE_VIDEO_MODERATION,
|
||||
REQUEST_ENABLE_AUDIO_MODERATION,
|
||||
@@ -41,9 +35,7 @@ import {
|
||||
enableModeration,
|
||||
localParticipantApproved,
|
||||
participantApproved,
|
||||
participantPendingAudio,
|
||||
localParticipantRejected,
|
||||
participantRejected
|
||||
participantPendingAudio
|
||||
} from './actions';
|
||||
import {
|
||||
ASKED_TO_UNMUTE_SOUND_ID, AUDIO_MODERATION_NOTIFICATION_ID,
|
||||
@@ -57,8 +49,6 @@ import {
|
||||
} from './functions';
|
||||
import { ASKED_TO_UNMUTE_FILE } from './sounds';
|
||||
|
||||
declare var APP: Object;
|
||||
|
||||
MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
const { type } = action;
|
||||
const { conference } = getConferenceState(getState());
|
||||
@@ -156,46 +146,6 @@ MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
|
||||
break;
|
||||
}
|
||||
case ENABLE_MODERATION: {
|
||||
if (typeof APP !== 'undefined') {
|
||||
APP.API.notifyModerationChanged(action.mediaType, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DISABLE_MODERATION: {
|
||||
if (typeof APP !== 'undefined') {
|
||||
APP.API.notifyModerationChanged(action.mediaType, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LOCAL_PARTICIPANT_APPROVED: {
|
||||
if (typeof APP !== 'undefined') {
|
||||
const local = getLocalParticipant(getState());
|
||||
|
||||
APP.API.notifyParticipantApproved(local.id, action.mediaType);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PARTICIPANT_APPROVED: {
|
||||
if (typeof APP !== 'undefined') {
|
||||
APP.API.notifyParticipantApproved(action.id, action.mediaType);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LOCAL_PARTICIPANT_REJECTED: {
|
||||
if (typeof APP !== 'undefined') {
|
||||
const local = getLocalParticipant(getState());
|
||||
|
||||
APP.API.notifyParticipantRejected(local.id, action.mediaType);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PARTICIPANT_REJECTED: {
|
||||
if (typeof APP !== 'undefined') {
|
||||
APP.API.notifyParticipantRejected(action.id, action.mediaType);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return next(action);
|
||||
@@ -226,10 +176,6 @@ StateListenerRegistry.register(
|
||||
}
|
||||
});
|
||||
|
||||
conference.on(JitsiConferenceEvents.AV_MODERATION_REJECTED, ({ mediaType }) => {
|
||||
dispatch(localParticipantRejected(mediaType));
|
||||
});
|
||||
|
||||
conference.on(JitsiConferenceEvents.AV_MODERATION_CHANGED, ({ enabled, mediaType, actor }) => {
|
||||
enabled ? dispatch(enableModeration(mediaType, actor)) : dispatch(disableModeration(mediaType, actor));
|
||||
});
|
||||
@@ -248,14 +194,5 @@ StateListenerRegistry.register(
|
||||
dispatch(dismissPendingParticipant(id, mediaType));
|
||||
});
|
||||
});
|
||||
|
||||
// this is received by moderators
|
||||
conference.on(
|
||||
JitsiConferenceEvents.AV_MODERATION_PARTICIPANT_REJECTED,
|
||||
({ participant, mediaType }) => {
|
||||
const { _id: id } = participant;
|
||||
|
||||
dispatch(participantRejected(id, mediaType));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -13,10 +13,8 @@ import {
|
||||
DISMISS_PENDING_PARTICIPANT,
|
||||
ENABLE_MODERATION,
|
||||
LOCAL_PARTICIPANT_APPROVED,
|
||||
LOCAL_PARTICIPANT_REJECTED,
|
||||
PARTICIPANT_APPROVED,
|
||||
PARTICIPANT_PENDING_AUDIO,
|
||||
PARTICIPANT_REJECTED
|
||||
PARTICIPANT_PENDING_AUDIO
|
||||
} from './actionTypes';
|
||||
import { MEDIA_TYPE_TO_PENDING_STORE_KEY } from './constants';
|
||||
|
||||
@@ -107,16 +105,6 @@ ReducerRegistry.register('features/av-moderation', (state = initialState, action
|
||||
};
|
||||
}
|
||||
|
||||
case LOCAL_PARTICIPANT_REJECTED: {
|
||||
const newState = action.mediaType === MEDIA_TYPE.AUDIO
|
||||
? { audioUnmuteApproved: false } : { videoUnmuteApproved: false };
|
||||
|
||||
return {
|
||||
...state,
|
||||
...newState
|
||||
};
|
||||
}
|
||||
|
||||
case PARTICIPANT_PENDING_AUDIO: {
|
||||
const { participant } = action;
|
||||
|
||||
@@ -240,32 +228,6 @@ ReducerRegistry.register('features/av-moderation', (state = initialState, action
|
||||
return state;
|
||||
}
|
||||
|
||||
case PARTICIPANT_REJECTED: {
|
||||
const { mediaType, id } = action;
|
||||
|
||||
if (mediaType === MEDIA_TYPE.AUDIO) {
|
||||
return {
|
||||
...state,
|
||||
audioWhitelist: {
|
||||
...state.audioWhitelist,
|
||||
[id]: false
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
if (mediaType === MEDIA_TYPE.VIDEO) {
|
||||
return {
|
||||
...state,
|
||||
videoWhitelist: {
|
||||
...state.videoWhitelist,
|
||||
[id]: false
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return state;
|
||||
|
||||
@@ -3,17 +3,15 @@
|
||||
import _ from 'lodash';
|
||||
|
||||
const AVATAR_COLORS = [
|
||||
'#6A50D3',
|
||||
'#FF9B42',
|
||||
'#DF486F',
|
||||
'#73348C',
|
||||
'#B23683',
|
||||
'#F96E57',
|
||||
'#4380E2',
|
||||
'#2AA076',
|
||||
'#00A8B3'
|
||||
'232, 105, 156',
|
||||
'255, 198, 115',
|
||||
'128, 128, 255',
|
||||
'105, 232, 194',
|
||||
'234, 255, 128'
|
||||
];
|
||||
|
||||
const AVATAR_OPACITY = 0.4;
|
||||
|
||||
/**
|
||||
* Generates the background color of an initials based avatar.
|
||||
*
|
||||
@@ -37,7 +35,7 @@ export function getAvatarColor(initials: ?string, customAvatarBackgrounds: Array
|
||||
colorIndex = nameHash % colorsBase.length;
|
||||
}
|
||||
|
||||
return colorsBase[colorIndex];
|
||||
return hasCustomAvatarBackgronds ? colorsBase[colorIndex] : `rgba(${colorsBase[colorIndex]}, ${AVATAR_OPACITY})`;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,9 +2,8 @@ import extraConfigWhitelist from './extraConfigWhitelist';
|
||||
|
||||
/**
|
||||
* The config keys to whitelist, the keys that can be overridden.
|
||||
* Whitelisting a key allows all properties under that key to be overridden.
|
||||
* For example whitelisting 'p2p' allows 'p2p.enabled' to be overridden, and
|
||||
* overriding 'p2p.enabled' does not modify any other keys under 'p2p'.
|
||||
* Currently we can only whitelist the first part of the properties, like
|
||||
* 'p2p.enabled' we whitelist all p2p options.
|
||||
* The whitelist is used only for config.js.
|
||||
*
|
||||
* @type Array
|
||||
@@ -85,7 +84,6 @@ export default [
|
||||
'disableAEC',
|
||||
'disableAGC',
|
||||
'disableAP',
|
||||
'disableAddingBackgroundImages',
|
||||
'disableAudioLevels',
|
||||
'disableChatSmileys',
|
||||
'disableDeepLinking',
|
||||
@@ -176,7 +174,6 @@ export default [
|
||||
'requireDisplayName',
|
||||
'remoteVideoMenu',
|
||||
'roomPasswordNumberOfDigits',
|
||||
'readOnlyName',
|
||||
'replaceParticipant',
|
||||
'resolution',
|
||||
'startAudioMuted',
|
||||
@@ -191,10 +188,9 @@ export default [
|
||||
'subject',
|
||||
'testing',
|
||||
'toolbarButtons',
|
||||
'toolbarConfig',
|
||||
'useHostPageLocalStorage',
|
||||
'useTurnUdp',
|
||||
'videoQuality',
|
||||
'videoQuality.persist',
|
||||
'webrtcIceTcpDisable',
|
||||
'webrtcIceUdpDisable'
|
||||
].concat(extraConfigWhitelist);
|
||||
|
||||
@@ -152,18 +152,6 @@ export function getWhitelistedJSON(configName: string, configJSON: Object): Obje
|
||||
return configJSON;
|
||||
}
|
||||
|
||||
/**
|
||||
* Selector for determining if the display name is read only.
|
||||
*
|
||||
* @param {Object} state - The state of the app.
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isNameReadOnly(state: Object): boolean {
|
||||
return state['features/base/config'].disableProfile
|
||||
|| state['features/base/config'].readOnlyName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Restores a Jitsi Meet config.js from {@code localStorage} if it was
|
||||
* previously downloaded from a specific {@code baseURL} and stored with
|
||||
|
||||
@@ -227,28 +227,6 @@ function _translateLegacyConfig(oldValue: Object) {
|
||||
newValue.toolbarButtons = interfaceConfig.TOOLBAR_BUTTONS;
|
||||
}
|
||||
|
||||
if (!oldValue.toolbarConfig) {
|
||||
oldValue.toolbarConfig = {};
|
||||
}
|
||||
|
||||
if (typeof oldValue.toolbarConfig.alwaysVisible !== 'boolean'
|
||||
&& typeof interfaceConfig === 'object'
|
||||
&& typeof interfaceConfig.TOOLBAR_ALWAYS_VISIBLE === 'boolean') {
|
||||
newValue.toolbarConfig.alwaysVisible = interfaceConfig.TOOLBAR_ALWAYS_VISIBLE;
|
||||
}
|
||||
|
||||
if (typeof oldValue.toolbarConfig.initialTimeout !== 'number'
|
||||
&& typeof interfaceConfig === 'object'
|
||||
&& typeof interfaceConfig.INITIAL_TOOLBAR_TIMEOUT === 'number') {
|
||||
newValue.toolbarConfig.initialTimeout = interfaceConfig.INITIAL_TOOLBAR_TIMEOUT;
|
||||
}
|
||||
|
||||
if (typeof oldValue.toolbarConfig.timeout !== 'number'
|
||||
&& typeof interfaceConfig === 'object'
|
||||
&& typeof interfaceConfig.TOOLBAR_TIMEOUT === 'number') {
|
||||
newValue.toolbarConfig.timeout = interfaceConfig.TOOLBAR_TIMEOUT;
|
||||
}
|
||||
|
||||
const filteredConferenceInfo = Object.keys(CONFERENCE_HEADER_MAPPING).filter(key => oldValue[key]);
|
||||
|
||||
if (filteredConferenceInfo.length) {
|
||||
|
||||
@@ -82,6 +82,7 @@ const _updateLastN = debounce(({ dispatch, getState }) => {
|
||||
lastNSelected = 1;
|
||||
}
|
||||
|
||||
logger.info(`Setting last N to: ${lastNSelected}`);
|
||||
dispatch(setLastN(lastNSelected));
|
||||
}, 1000); /* Don't send this more often than once a second. */
|
||||
|
||||
|
||||
@@ -455,6 +455,47 @@ async function _getFirstLoadableAvatarUrl(participant, store) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Selector for retrieving ids of participants in the order that they are displayed in the filmstrip (with the
|
||||
* exception of participants with raised hand). The participants are reordered as follows.
|
||||
* 1. Local participant.
|
||||
* 2. Participants with raised hand.
|
||||
* 3. Participants with screenshare sorted alphabetically by their display name.
|
||||
* 4. Shared video participants.
|
||||
* 5. Recent speakers sorted alphabetically by their display name.
|
||||
* 6. Rest of the participants sorted alphabetically by their display name.
|
||||
*
|
||||
* @param {(Function|Object)} stateful - The (whole) redux state, or redux's
|
||||
* {@code getState} function to be used to retrieve the state features/base/participants.
|
||||
* @returns {Array<string>}
|
||||
*/
|
||||
export function getSortedParticipantIds(stateful: Object | Function): Array<string> {
|
||||
const { id } = getLocalParticipant(stateful);
|
||||
const remoteParticipants = getRemoteParticipantsSorted(stateful);
|
||||
const reorderedParticipants = new Set(remoteParticipants);
|
||||
const raisedHandParticipants = getRaiseHandsQueue(stateful);
|
||||
const remoteRaisedHandParticipants = new Set(raisedHandParticipants || []);
|
||||
|
||||
for (const participant of remoteRaisedHandParticipants.keys()) {
|
||||
// Avoid duplicates.
|
||||
if (reorderedParticipants.has(participant)) {
|
||||
reorderedParticipants.delete(participant);
|
||||
} else {
|
||||
remoteRaisedHandParticipants.delete(participant);
|
||||
}
|
||||
}
|
||||
|
||||
// Remove self.
|
||||
remoteRaisedHandParticipants.has(id) && remoteRaisedHandParticipants.delete(id);
|
||||
|
||||
// Move self and participants with raised hand to the top of the list.
|
||||
return [
|
||||
id,
|
||||
...Array.from(remoteRaisedHandParticipants.keys()),
|
||||
...Array.from(reorderedParticipants.keys())
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the participants queue with raised hands.
|
||||
*
|
||||
|
||||
@@ -1,10 +1,35 @@
|
||||
/* @flow */
|
||||
|
||||
import InlineDialog from '@atlaskit/inline-dialog';
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { Drawer, DrawerPortal, DialogPortal } from '../../../toolbox/components/web';
|
||||
import { isMobileBrowser } from '../../environment/utils';
|
||||
import { getContextMenuStyle } from '../functions.web';
|
||||
import { Drawer, DrawerPortal } from '../../../toolbox/components/web';
|
||||
|
||||
/**
|
||||
* A map of dialog positions, relative to trigger, to css classes used to
|
||||
* manipulate elements for handling mouse events.
|
||||
*
|
||||
* @private
|
||||
* @type {object}
|
||||
*/
|
||||
const DIALOG_TO_PADDING_POSITION = {
|
||||
'left': 'popover-mousemove-padding-right',
|
||||
'right': 'popover-mousemove-padding-left',
|
||||
'top': 'popover-mousemove-padding-bottom'
|
||||
};
|
||||
|
||||
/**
|
||||
* Takes the position expected by {@code InlineDialog} and maps it to a CSS
|
||||
* class that can be used styling the elements used for preventing mouseleave
|
||||
* events when moving from the trigger to the dialog.
|
||||
*
|
||||
* @param {string} position - From which position the dialog will display.
|
||||
* @private
|
||||
* @returns {string}
|
||||
*/
|
||||
function _mapPositionToPaddingClass(position = 'left') {
|
||||
return DIALOG_TO_PADDING_POSITION[position.split('-')[0]];
|
||||
}
|
||||
|
||||
/**
|
||||
* The type of the React {@code Component} props of {@link Popover}.
|
||||
@@ -65,11 +90,6 @@ type Props = {
|
||||
*/
|
||||
type State = {
|
||||
|
||||
/**
|
||||
* The style to apply to the context menu in order to position it correctly.
|
||||
*/
|
||||
contextMenuStyle: Object,
|
||||
|
||||
/**
|
||||
* Whether or not the {@code InlineDialog} should be displayed.
|
||||
*/
|
||||
@@ -98,7 +118,6 @@ class Popover extends Component<Props, State> {
|
||||
*/
|
||||
_containerRef: Object;
|
||||
|
||||
_contextMenuRef: HTMLElement;
|
||||
|
||||
/**
|
||||
* Initializes a new {@code Popover} instance.
|
||||
@@ -110,8 +129,7 @@ class Popover extends Component<Props, State> {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
showDialog: false,
|
||||
contextMenuStyle: null
|
||||
showDialog: false
|
||||
};
|
||||
|
||||
// Bind event handlers so they are only bound once for every instance.
|
||||
@@ -122,9 +140,6 @@ class Popover extends Component<Props, State> {
|
||||
this._onEscKey = this._onEscKey.bind(this);
|
||||
this._onThumbClick = this._onThumbClick.bind(this);
|
||||
this._onTouchStart = this._onTouchStart.bind(this);
|
||||
this._setContextMenuRef = this._setContextMenuRef.bind(this);
|
||||
this._setContextMenuStyle = this._setContextMenuStyle.bind(this);
|
||||
this._getCustomDialogStyle = this._getCustomDialogStyle.bind(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -164,7 +179,7 @@ class Popover extends Component<Props, State> {
|
||||
* @returns {ReactElement}
|
||||
*/
|
||||
render() {
|
||||
const { children, className, content, id, overflowDrawer } = this.props;
|
||||
const { children, className, content, id, overflowDrawer, position } = this.props;
|
||||
|
||||
if (overflowDrawer) {
|
||||
return (
|
||||
@@ -193,47 +208,16 @@ class Popover extends Component<Props, State> {
|
||||
onMouseEnter = { this._onShowDialog }
|
||||
onMouseLeave = { this._onHideDialog }
|
||||
ref = { this._containerRef }>
|
||||
{ this.state.showDialog && (
|
||||
<DialogPortal
|
||||
getRef = { this._setContextMenuRef }
|
||||
setSize = { this._setContextMenuStyle }
|
||||
style = { this.state.contextMenuStyle }>
|
||||
{this._renderContent()}
|
||||
</DialogPortal>
|
||||
)}
|
||||
{ children }
|
||||
<InlineDialog
|
||||
content = { this._renderContent() }
|
||||
isOpen = { this.state.showDialog }
|
||||
placement = { position }>
|
||||
{ children }
|
||||
</InlineDialog>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
_setContextMenuStyle: (size: Object) => void;
|
||||
|
||||
/**
|
||||
* Sets the context menu dialog style for positioning it on screen.
|
||||
*
|
||||
* @param {DOMRectReadOnly} size -The size info of the current context menu.
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_setContextMenuStyle(size) {
|
||||
const style = this._getCustomDialogStyle(size);
|
||||
|
||||
this.setState({ contextMenuStyle: style });
|
||||
}
|
||||
|
||||
_setContextMenuRef: (elem: HTMLElement) => void;
|
||||
|
||||
/**
|
||||
* Sets the context menu's ref.
|
||||
*
|
||||
* @param {HTMLElement} elem -The html element of the context menu.
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_setContextMenuRef(elem) {
|
||||
this._contextMenuRef = elem;
|
||||
}
|
||||
|
||||
_onTouchStart: (event: TouchEvent) => void;
|
||||
|
||||
/**
|
||||
@@ -246,9 +230,9 @@ class Popover extends Component<Props, State> {
|
||||
_onTouchStart(event) {
|
||||
if (this.state.showDialog
|
||||
&& !this.props.overflowDrawer
|
||||
&& this._contextMenuRef
|
||||
&& this._contextMenuRef.contains
|
||||
&& !this._contextMenuRef.contains(event.target)) {
|
||||
&& this._containerRef
|
||||
&& this._containerRef.current
|
||||
&& !this._containerRef.current.contains(event.target)) {
|
||||
this._onHideDialog();
|
||||
}
|
||||
}
|
||||
@@ -262,10 +246,7 @@ class Popover extends Component<Props, State> {
|
||||
* @returns {void}
|
||||
*/
|
||||
_onHideDialog() {
|
||||
this.setState({
|
||||
showDialog: false,
|
||||
contextMenuStyle: null
|
||||
});
|
||||
this.setState({ showDialog: false });
|
||||
|
||||
if (this.props.onPopoverClose) {
|
||||
this.props.onPopoverClose();
|
||||
@@ -346,24 +327,6 @@ class Popover extends Component<Props, State> {
|
||||
}
|
||||
}
|
||||
|
||||
_getCustomDialogStyle: (DOMRectReadOnly) => void;
|
||||
|
||||
/**
|
||||
* Gets style for positioning the context menu on screen in regards to the trigger's
|
||||
* position.
|
||||
*
|
||||
* @param {DOMRectReadOnly} size -The current context menu's size info.
|
||||
*
|
||||
* @returns {Object} - The new style of the context menu.
|
||||
*/
|
||||
_getCustomDialogStyle(size) {
|
||||
if (this._containerRef && this._containerRef.current) {
|
||||
const bounds = this._containerRef.current.getBoundingClientRect();
|
||||
|
||||
return getContextMenuStyle(bounds, size, this.props.position);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the React Element to be displayed in the {@code InlineDialog}.
|
||||
* Also adds padding to support moving the mouse from the trigger to the
|
||||
@@ -373,20 +336,15 @@ class Popover extends Component<Props, State> {
|
||||
* @returns {ReactElement}
|
||||
*/
|
||||
_renderContent() {
|
||||
const { content } = this.props;
|
||||
const { content, position } = this.props;
|
||||
|
||||
return (
|
||||
<div
|
||||
className = 'popover popupmenu'
|
||||
className = 'popover'
|
||||
onKeyDown = { this._onEscKey }>
|
||||
{ content }
|
||||
{!isMobileBrowser() && (
|
||||
<>
|
||||
<div className = 'popover-mousemove-padding-top' />
|
||||
<div className = 'popover-mousemove-padding-right' />
|
||||
<div className = 'popover-mousemove-padding-left' />
|
||||
<div className = 'popover-mousemove-padding-bottom' />
|
||||
</>)}
|
||||
<div className = 'popover-mouse-padding-top' />
|
||||
<div className = { _mapPositionToPaddingClass(position) } />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,158 +0,0 @@
|
||||
// @flow
|
||||
|
||||
const LEFT_RIGHT_OFFSET = 25;
|
||||
const TOP_BOTTOM_OFFSET = 20;
|
||||
|
||||
const getLeftAlignedStyle = bounds => {
|
||||
return {
|
||||
position: 'fixed',
|
||||
right: `${window.innerWidth - bounds.x + LEFT_RIGHT_OFFSET}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getRightAlignedStyle = bounds => {
|
||||
return {
|
||||
position: 'fixed',
|
||||
left: `${bounds.x + bounds.width + LEFT_RIGHT_OFFSET}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getTopAlignedStyle = bounds => {
|
||||
return {
|
||||
position: 'fixed',
|
||||
bottom: `${window.innerHeight - bounds.y + TOP_BOTTOM_OFFSET}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getBottomAlignedStyle = bounds => {
|
||||
return {
|
||||
position: 'fixed',
|
||||
top: `${bounds.y + bounds.height + TOP_BOTTOM_OFFSET}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getLeftRightStartAlign = (bounds, size) => {
|
||||
return {
|
||||
top: `${Math.min(bounds.y + 15, window.innerHeight - size.height - 20)}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getLeftRightMidAlign = (bounds, size) => {
|
||||
return {
|
||||
bottom: `${window.innerHeight - bounds.y - bounds.height - (size.height / 2)}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getLeftRightEndAlign = (bounds, size) => {
|
||||
return {
|
||||
bottom: `${Math.min(window.innerHeight - bounds.y - bounds.height, window.innerHeight - size.height)}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getTopBotStartAlign = bounds => {
|
||||
return {
|
||||
right: `${window.innerWidth - bounds.x + 10}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getTopBotMidAlign = (bounds, size) => {
|
||||
return {
|
||||
right: `${window.innerWidth - bounds.x - (size.width / 2)}px`
|
||||
};
|
||||
};
|
||||
|
||||
const getTopBotEndAlign = bounds => {
|
||||
return {
|
||||
left: `${bounds.x + bounds.width + 10}px`
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the trigger element's and the context menu's bounds/size info and
|
||||
* computes the style to apply to the context menu to positioning it correctly
|
||||
* in regards to the given position info.
|
||||
*
|
||||
* @param {DOMRect} triggerBounds -The bounds info of the trigger html element.
|
||||
* @param {DOMRectReadOnly} dialogSize - The size info of the context menu.
|
||||
* @param {string} position - The position of the context menu in regards to the trigger element.
|
||||
*
|
||||
* @returns {Object} = The style to apply to context menu for positioning it correctly.
|
||||
*/
|
||||
export const getContextMenuStyle = (triggerBounds: DOMRect,
|
||||
dialogSize: DOMRectReadOnly,
|
||||
position: string) => {
|
||||
const parsed = position.split('-');
|
||||
|
||||
switch (parsed[0]) {
|
||||
case 'top': {
|
||||
let alignmentStyle = {};
|
||||
|
||||
if (parsed[1]) {
|
||||
alignmentStyle = parsed[1] === 'start'
|
||||
? getTopBotStartAlign(triggerBounds)
|
||||
: getTopBotEndAlign(triggerBounds);
|
||||
} else {
|
||||
alignmentStyle = getTopBotMidAlign(triggerBounds, dialogSize);
|
||||
}
|
||||
|
||||
return {
|
||||
...getTopAlignedStyle(triggerBounds),
|
||||
...alignmentStyle
|
||||
};
|
||||
}
|
||||
case 'bottom': {
|
||||
let alignmentStyle = {};
|
||||
|
||||
if (parsed[1]) {
|
||||
alignmentStyle = parsed[1] === 'start'
|
||||
? getTopBotStartAlign(triggerBounds)
|
||||
: getTopBotEndAlign(triggerBounds);
|
||||
} else {
|
||||
alignmentStyle = getTopBotMidAlign(triggerBounds, dialogSize);
|
||||
}
|
||||
|
||||
return {
|
||||
...getBottomAlignedStyle(triggerBounds),
|
||||
...alignmentStyle
|
||||
};
|
||||
}
|
||||
case 'left': {
|
||||
let alignmentStyle = {};
|
||||
|
||||
if (parsed[1]) {
|
||||
alignmentStyle = parsed[1] === 'start'
|
||||
? getLeftRightStartAlign(triggerBounds, dialogSize)
|
||||
: getLeftRightEndAlign(triggerBounds, dialogSize);
|
||||
} else {
|
||||
alignmentStyle = getLeftRightMidAlign(triggerBounds, dialogSize);
|
||||
}
|
||||
|
||||
return {
|
||||
...getLeftAlignedStyle(triggerBounds),
|
||||
...alignmentStyle
|
||||
};
|
||||
}
|
||||
case 'right': {
|
||||
let alignmentStyle = {};
|
||||
|
||||
if (parsed[1]) {
|
||||
alignmentStyle = parsed[1] === 'start'
|
||||
? getLeftRightStartAlign(triggerBounds, dialogSize)
|
||||
: getLeftRightEndAlign(triggerBounds, dialogSize);
|
||||
} else {
|
||||
alignmentStyle = getLeftRightMidAlign(triggerBounds, dialogSize);
|
||||
}
|
||||
|
||||
return {
|
||||
...getRightAlignedStyle(triggerBounds),
|
||||
...alignmentStyle
|
||||
};
|
||||
}
|
||||
default: {
|
||||
return {
|
||||
...getLeftAlignedStyle(triggerBounds),
|
||||
...getLeftRightEndAlign(triggerBounds, dialogSize)
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -36,11 +36,6 @@ type Props = {
|
||||
*/
|
||||
placeHolder: string,
|
||||
|
||||
/**
|
||||
* Whether the input is read only or not.
|
||||
*/
|
||||
readOnly?: boolean,
|
||||
|
||||
/**
|
||||
* The field type (e.g. text, password...etc).
|
||||
*/
|
||||
@@ -131,7 +126,6 @@ export default class InputField extends PureComponent<Props, State> {
|
||||
onFocus = { this._onFocus }
|
||||
onKeyDown = { this._onKeyDown }
|
||||
placeholder = { this.props.placeHolder }
|
||||
readOnly = { this.props.readOnly }
|
||||
type = { this.props.type }
|
||||
value = { this.state.value } />
|
||||
);
|
||||
|
||||
@@ -59,8 +59,9 @@ function Preview(props: Props) {
|
||||
<Avatar
|
||||
className = 'premeeting-screen-avatar'
|
||||
displayName = { name }
|
||||
dynamicColor = { false }
|
||||
participantId = { _participantId }
|
||||
size = { 200 } />
|
||||
size = { 180 } />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -11,11 +11,6 @@ import { BASE_INDICATOR } from './styles';
|
||||
|
||||
type Props = {
|
||||
|
||||
/**
|
||||
* Overwritten background color when indicator is highlighted.
|
||||
*/
|
||||
backgroundColor?: string;
|
||||
|
||||
/**
|
||||
* True if a highlighted background has to be applied.
|
||||
*/
|
||||
@@ -43,17 +38,12 @@ export default class BaseIndicator extends Component<Props> {
|
||||
* @inheritdoc
|
||||
*/
|
||||
render() {
|
||||
const { highlight, icon, iconStyle, backgroundColor } = this.props;
|
||||
const highlightedIndicator = { ...styles.highlightedIndicator };
|
||||
|
||||
if (backgroundColor) {
|
||||
highlightedIndicator.backgroundColor = backgroundColor;
|
||||
}
|
||||
const { highlight, icon, iconStyle } = this.props;
|
||||
|
||||
return (
|
||||
<View
|
||||
style = { [ BASE_INDICATOR,
|
||||
highlight ? highlightedIndicator : null ] }>
|
||||
highlight ? styles.highlightedIndicator : null ] }>
|
||||
<Icon
|
||||
src = { icon }
|
||||
style = { [
|
||||
|
||||
@@ -70,7 +70,7 @@ export function playSound(soundId: string): Object {
|
||||
return (dispatch: Function, getState: Function) => {
|
||||
const disabledSounds = getDisabledSounds(getState());
|
||||
|
||||
if (!disabledSounds.includes(soundId) && !disabledSounds.find(id => soundId.startsWith(id))) {
|
||||
if (!disabledSounds.includes(soundId)) {
|
||||
dispatch({
|
||||
type: PLAY_SOUND,
|
||||
soundId
|
||||
|
||||
@@ -261,20 +261,17 @@ export function showNoDataFromSourceVideoError(jitsiTrack) {
|
||||
*
|
||||
* @param {boolean} enabled - The state to toggle screen sharing to.
|
||||
* @param {boolean} audioOnly - Only share system audio.
|
||||
* @param {boolean} ignoreDidHaveVideo - Wether or not to ignore if video was on when sharing started.
|
||||
* @returns {{
|
||||
* type: TOGGLE_SCREENSHARING,
|
||||
* on: boolean,
|
||||
* audioOnly: boolean,
|
||||
* ignoreDidHaveVideo: boolean
|
||||
* audioOnly: boolean
|
||||
* }}
|
||||
*/
|
||||
export function toggleScreensharing(enabled, audioOnly = false, ignoreDidHaveVideo = false) {
|
||||
export function toggleScreensharing(enabled, audioOnly = false) {
|
||||
return {
|
||||
type: TOGGLE_SCREENSHARING,
|
||||
enabled,
|
||||
audioOnly,
|
||||
ignoreDidHaveVideo
|
||||
audioOnly
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// @flow
|
||||
|
||||
import { createScreenshotCaptureEffect } from '../../stream-effects/screenshot-capture';
|
||||
import { createVirtualBackgroundEffect } from '../../stream-effects/virtual-background';
|
||||
|
||||
import logger from './logger';
|
||||
@@ -22,6 +23,14 @@ export default function loadEffects(store: Object): Promise<any> {
|
||||
return Promise.resolve();
|
||||
})
|
||||
: Promise.resolve();
|
||||
const screenshotCapturePromise = state['features/screenshot-capture']?.capturesEnabled
|
||||
? createScreenshotCaptureEffect(state)
|
||||
.catch(error => {
|
||||
logger.error('Failed to obtain the screenshot capture effect effect instance with error: ', error);
|
||||
|
||||
return Promise.all([ backgroundPromise ]);
|
||||
return Promise.resolve();
|
||||
})
|
||||
: Promise.resolve();
|
||||
|
||||
return Promise.all([ backgroundPromise, screenshotCapturePromise ]);
|
||||
}
|
||||
|
||||
@@ -149,11 +149,10 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
return;
|
||||
}
|
||||
|
||||
const { enabled, audioOnly, ignoreDidHaveVideo } = action;
|
||||
const { enabled, audioOnly } = action;
|
||||
|
||||
APP.UI.emitEvent(UIEvents.TOGGLE_SCREENSHARING, { enabled,
|
||||
audioOnly,
|
||||
ignoreDidHaveVideo });
|
||||
audioOnly });
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -179,7 +178,7 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
} else if (jitsiTrack.isLocal() && !(jitsiTrack.videoType === VIDEO_TYPE.DESKTOP)) {
|
||||
APP.conference.setVideoMuteStatus();
|
||||
} else if (jitsiTrack.isLocal() && muted && jitsiTrack.videoType === VIDEO_TYPE.DESKTOP) {
|
||||
store.dispatch(toggleScreensharing(false, false, true));
|
||||
store.dispatch(toggleScreensharing(false));
|
||||
} else {
|
||||
APP.UI.setVideoMuted(participantID);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class Chat extends AbstractChat<Props> {
|
||||
return (
|
||||
<JitsiModal
|
||||
headerProps = {{
|
||||
headerLabelKey: this.props._isPollsEnabled ? 'chat.titleWithPolls' : 'chat.title'
|
||||
headerLabelKey: 'chat.title'
|
||||
}}
|
||||
modalId = { CHAT_VIEW_MODAL_ID }
|
||||
onClose = { this._onClose }>
|
||||
|
||||
@@ -161,8 +161,10 @@ class ConferenceInfo extends Component<Props> {
|
||||
render() {
|
||||
return (
|
||||
<div className = 'details-container' >
|
||||
{ this._renderAlwaysVisible() }
|
||||
{ this._renderAutoHide() }
|
||||
{ [
|
||||
this._renderAlwaysVisible(),
|
||||
this._renderAutoHide()
|
||||
] }
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ export function fetchCustomBrandingData() {
|
||||
const { customizationReady } = state['features/dynamic-branding'];
|
||||
|
||||
if (!customizationReady) {
|
||||
const url = await getDynamicBrandingUrl();
|
||||
const url = getDynamicBrandingUrl(state);
|
||||
|
||||
if (url) {
|
||||
try {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// @flow
|
||||
import { loadConfig } from '../base/lib-jitsi-meet';
|
||||
|
||||
/**
|
||||
* Extracts the fqn part from a path, where fqn represents
|
||||
@@ -8,8 +7,8 @@ import { loadConfig } from '../base/lib-jitsi-meet';
|
||||
* @param {string} path - The URL path.
|
||||
* @returns {string}
|
||||
*/
|
||||
export function extractFqnFromPath() {
|
||||
const parts = window.location.pathname.split('/');
|
||||
export function extractFqnFromPath(path: string) {
|
||||
const parts = path.split('/');
|
||||
const len = parts.length;
|
||||
|
||||
return parts.length > 2 ? `${parts[len - 2]}/${parts[len - 1]}` : '';
|
||||
@@ -18,18 +17,18 @@ export function extractFqnFromPath() {
|
||||
/**
|
||||
* Returns the url used for fetching dynamic branding.
|
||||
*
|
||||
* @param {Object} state - The state of the app.
|
||||
* @returns {string}
|
||||
*/
|
||||
export async function getDynamicBrandingUrl() {
|
||||
const config = await loadConfig(window.location.href);
|
||||
const { dynamicBrandingUrl } = config;
|
||||
export function getDynamicBrandingUrl(state: Object) {
|
||||
const { dynamicBrandingUrl } = state['features/base/config'];
|
||||
|
||||
if (dynamicBrandingUrl) {
|
||||
return dynamicBrandingUrl;
|
||||
}
|
||||
|
||||
const { brandingDataUrl: baseUrl } = config;
|
||||
const fqn = extractFqnFromPath();
|
||||
const baseUrl = state['features/base/config'].brandingDataUrl;
|
||||
const fqn = extractFqnFromPath(state['features/base/connection'].locationURL.pathname);
|
||||
|
||||
if (baseUrl && fqn) {
|
||||
return `${baseUrl}?conferenceFqn=${encodeURIComponent(fqn)}`;
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
// @flow
|
||||
|
||||
import { APP_WILL_MOUNT } from '../base/app';
|
||||
import { MiddlewareRegistry } from '../base/redux';
|
||||
|
||||
import { fetchCustomBrandingData } from './actions';
|
||||
|
||||
MiddlewareRegistry.register(store => next => action => {
|
||||
switch (action.type) {
|
||||
case APP_WILL_MOUNT: {
|
||||
|
||||
store.dispatch(fetchCustomBrandingData());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return next(action);
|
||||
});
|
||||
@@ -1,7 +1,6 @@
|
||||
// @flow
|
||||
|
||||
import { ReducerRegistry } from '../base/redux';
|
||||
import { type Image } from '../virtual-background/constants';
|
||||
|
||||
import {
|
||||
SET_DYNAMIC_BRANDING_DATA,
|
||||
@@ -114,15 +113,7 @@ const DEFAULT_STATE = {
|
||||
* @public
|
||||
* @type {boolean}
|
||||
*/
|
||||
useDynamicBrandingData: false,
|
||||
|
||||
/**
|
||||
* An array of images to be used as virtual backgrounds instead of the default ones.
|
||||
*
|
||||
* @public
|
||||
* @type {Array<Object>}
|
||||
*/
|
||||
virtualBackgrounds: []
|
||||
useDynamicBrandingData: false
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -140,8 +131,7 @@ ReducerRegistry.register(STORE_NAME, (state = DEFAULT_STATE, action) => {
|
||||
inviteDomain,
|
||||
logoClickUrl,
|
||||
logoImageUrl,
|
||||
premeetingBackground,
|
||||
virtualBackgrounds
|
||||
premeetingBackground
|
||||
} = action.value;
|
||||
|
||||
return {
|
||||
@@ -156,8 +146,7 @@ ReducerRegistry.register(STORE_NAME, (state = DEFAULT_STATE, action) => {
|
||||
premeetingBackground,
|
||||
customizationFailed: false,
|
||||
customizationReady: true,
|
||||
useDynamicBrandingData: true,
|
||||
virtualBackgrounds: formatImages(virtualBackgrounds || [])
|
||||
useDynamicBrandingData: true
|
||||
};
|
||||
}
|
||||
case SET_DYNAMIC_BRANDING_FAILED: {
|
||||
@@ -177,30 +166,3 @@ ReducerRegistry.register(STORE_NAME, (state = DEFAULT_STATE, action) => {
|
||||
|
||||
return state;
|
||||
});
|
||||
|
||||
/**
|
||||
* Transforms the branding images into an array of Images objects ready
|
||||
* to be used as virtual backgrounds.
|
||||
*
|
||||
* @param {Array<string>} images -
|
||||
* @private
|
||||
* @returns {{Props}}
|
||||
*/
|
||||
function formatImages(images: Array<string> | Array<Object>): Array<Image> {
|
||||
return images.map((img, i) => {
|
||||
let src;
|
||||
let tooltip;
|
||||
|
||||
if (typeof img === 'object') {
|
||||
({ src, tooltip } = img);
|
||||
} else {
|
||||
src = img;
|
||||
}
|
||||
|
||||
return {
|
||||
id: `branding-${i}`,
|
||||
src,
|
||||
tooltip
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user