mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-09-12 07:58:41 +00:00
Compare commits
201 Commits
5445
...
vp/avatar-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
003eff1d60 | ||
|
|
c2ab8935c1 | ||
|
|
70b8ccc097 | ||
|
|
cc63ff1c3c | ||
|
|
4a5982da1f | ||
|
|
fc16bfa6cb | ||
|
|
9a2aa3848c | ||
|
|
0a65ec1dfa | ||
|
|
7bbc3bcf9e | ||
|
|
48b12b4e00 | ||
|
|
91413fbd96 | ||
|
|
03848fb3f8 | ||
|
|
e8cf932abb | ||
|
|
1a93da8c35 | ||
|
|
73e8f5703c | ||
|
|
a203a92060 | ||
|
|
ef93584c2b | ||
|
|
a618697e34 | ||
|
|
64e504f349 | ||
|
|
994f6307b9 | ||
|
|
d7b581e338 | ||
|
|
763d975445 | ||
|
|
42e62e013d | ||
|
|
04b085e062 | ||
|
|
83e22524bc | ||
|
|
909173cdb5 | ||
|
|
5d1bf9e649 | ||
|
|
14a422ba83 | ||
|
|
0106e68728 | ||
|
|
c843744df1 | ||
|
|
f6f7406d24 | ||
|
|
76a976b5d1 | ||
|
|
2e7c06d045 | ||
|
|
9fbbcbbd31 | ||
|
|
6101cd2c1a | ||
|
|
41d654b2dc | ||
|
|
c381a3eed4 | ||
|
|
f42fe0ce17 | ||
|
|
b277812e8e | ||
|
|
fad5ac9048 | ||
|
|
10d54498d0 | ||
|
|
cd166b5f19 | ||
|
|
b5faf9f62a | ||
|
|
d98ea3ca24 | ||
|
|
d2b7151f23 | ||
|
|
7fa72db384 | ||
|
|
d56b282c5d | ||
|
|
72e1dcb877 | ||
|
|
98b05a2529 | ||
|
|
2d0a70f2ab | ||
|
|
6243836b3e | ||
|
|
6520cc2496 | ||
|
|
61684b1071 | ||
|
|
e42db3c9c2 | ||
|
|
6f75226044 | ||
|
|
7e9d665697 | ||
|
|
9aa2bbe115 | ||
|
|
31e4a9c1a0 | ||
|
|
1106e71f03 | ||
|
|
d84ba85f58 | ||
|
|
1e706db114 | ||
|
|
c82cead5ae | ||
|
|
39d1ccff85 | ||
|
|
2e69ec71c5 | ||
|
|
be6adad61b | ||
|
|
23b8dd4860 | ||
|
|
c74bdf137c | ||
|
|
8ebca64af1 | ||
|
|
61025edb74 | ||
|
|
4e2fea1e12 | ||
|
|
f5cdd5fca1 | ||
|
|
eec8b9e58e | ||
|
|
a96a4ea336 | ||
|
|
876773ca2a | ||
|
|
bc6070b98d | ||
|
|
9ca0ee41b6 | ||
|
|
957bd8916a | ||
|
|
8f08a54fb2 | ||
|
|
28c793b3a9 | ||
|
|
243aa20912 | ||
|
|
2d27195652 | ||
|
|
bcb0fe919c | ||
|
|
981fc2f410 | ||
|
|
e6e808c764 | ||
|
|
01ae4c477b | ||
|
|
e0010def14 | ||
|
|
e77216f18e | ||
|
|
ba7b5fc996 | ||
|
|
162a67fe8b | ||
|
|
0aba61d5c6 | ||
|
|
5e4f09dd0a | ||
|
|
17c0298e59 | ||
|
|
6348840cbd | ||
|
|
6a7842ab7e | ||
|
|
b2894cc941 | ||
|
|
fc52105cf6 | ||
|
|
b47a263e5c | ||
|
|
15b677aa2a | ||
|
|
08fb232627 | ||
|
|
3c5017a66a | ||
|
|
a97b700712 | ||
|
|
bf36b22bbd | ||
|
|
d6253c57c9 | ||
|
|
978586c157 | ||
|
|
a7efbfb0f8 | ||
|
|
68eb0795eb | ||
|
|
4c46396e6a | ||
|
|
4767ef497f | ||
|
|
f27cb46f3c | ||
|
|
c2e55339d1 | ||
|
|
a78c8c199d | ||
|
|
0d7ecfad40 | ||
|
|
040a1d8add | ||
|
|
3294dc882d | ||
|
|
21d5b7bcd6 | ||
|
|
c4cbf83208 | ||
|
|
f1ae9a6697 | ||
|
|
c653334d69 | ||
|
|
e51655a93a | ||
|
|
8983ea41fd | ||
|
|
cd6a814978 | ||
|
|
41f5872f70 | ||
|
|
af01072827 | ||
|
|
eaa084722f | ||
|
|
318bc26fa0 | ||
|
|
072c29c0f9 | ||
|
|
9ab16a0a5c | ||
|
|
69d2cb52fe | ||
|
|
6845a759a0 | ||
|
|
7aca5e71b9 | ||
|
|
78e825de36 | ||
|
|
829f36e886 | ||
|
|
afbf261f67 | ||
|
|
76fc5a0806 | ||
|
|
09d3344c39 | ||
|
|
0dc061f633 | ||
|
|
ba110fbdc3 | ||
|
|
a6167997d8 | ||
|
|
b6047b9761 | ||
|
|
53a05dd1ad | ||
|
|
be5c397422 | ||
|
|
d38bf36b2a | ||
|
|
1793bf460e | ||
|
|
9e3084ef48 | ||
|
|
b0f8b34d94 | ||
|
|
366dc8d11b | ||
|
|
667a6eac80 | ||
|
|
84f37b1777 | ||
|
|
779d44298b | ||
|
|
b4ba887d92 | ||
|
|
0182cc0504 | ||
|
|
1dbfbb9786 | ||
|
|
d77a3bb61e | ||
|
|
9b6b335c60 | ||
|
|
2ab0d6b606 | ||
|
|
dec05917d3 | ||
|
|
0715f85796 | ||
|
|
f1e13404b7 | ||
|
|
dd89034503 | ||
|
|
92c34c9c3e | ||
|
|
e273a05dd0 | ||
|
|
81dfbaeb81 | ||
|
|
2cfa5f6312 | ||
|
|
162ec5a2b2 | ||
|
|
338ff43c81 | ||
|
|
da5603dd9a | ||
|
|
92c6324ff3 | ||
|
|
4b7a6741fa | ||
|
|
f435fc4ade | ||
|
|
b250f21f91 | ||
|
|
acaadb503f | ||
|
|
6e55351e68 | ||
|
|
4f58b5fab9 | ||
|
|
3f7c6a3801 | ||
|
|
9df59b4a6f | ||
|
|
a5129ef291 | ||
|
|
bc6e49754c | ||
|
|
ab18fa731b | ||
|
|
becbbdd139 | ||
|
|
0a9985f5ca | ||
|
|
fbef0e2a59 | ||
|
|
1ad8f77179 | ||
|
|
bad8911fe8 | ||
|
|
1feb0fa129 | ||
|
|
a0aff63dde | ||
|
|
f24e0f3622 | ||
|
|
c37678f3bb | ||
|
|
70af0d6b78 | ||
|
|
09efaa0d0d | ||
|
|
2855642fc3 | ||
|
|
ebb0a206f1 | ||
|
|
04194ae8a1 | ||
|
|
ea26a48678 | ||
|
|
359c11bfb9 | ||
|
|
16402d8482 | ||
|
|
2b62cc8a74 | ||
|
|
bb8bc2fe32 | ||
|
|
97ea155905 | ||
|
|
e0bde6d491 | ||
|
|
9506f3ac3d | ||
|
|
accdfe4625 |
@@ -8,8 +8,12 @@ libs/*
|
||||
resources/*
|
||||
react/features/stream-effects/virtual-background/vendor/*
|
||||
load-test/*
|
||||
react/features/facial-recognition/resources/*
|
||||
|
||||
# ESLint will by default ignore its own configuration file. However, there does
|
||||
# not seem to be a reason why we will want to risk being inconsistent with our
|
||||
# remaining JavaScript source code.
|
||||
!.eslintrc.js
|
||||
|
||||
# Not worth it.
|
||||
actionTypes.js
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module.exports = {
|
||||
'extends': [
|
||||
'eslint-config-jitsi'
|
||||
'@jitsi/eslint-config'
|
||||
]
|
||||
};
|
||||
|
||||
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@@ -10,9 +10,12 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '14.x'
|
||||
- run: npm i -g npm@7
|
||||
node-version: '16.x'
|
||||
- run: npm install
|
||||
- name: Check git status
|
||||
run: git status
|
||||
- name: Check git diff
|
||||
run: git diff
|
||||
- name: Check if the git repository is clean
|
||||
run: exit $( git status --porcelain --untracked-files=no | head -255 | wc -l )
|
||||
- run: npm run lint
|
||||
|
||||
32
Makefile
32
Makefile
@@ -7,6 +7,7 @@ OLM_DIR = node_modules/@matrix-org/olm
|
||||
RNNOISE_WASM_DIR = node_modules/rnnoise-wasm/dist/
|
||||
TFLITE_WASM = react/features/stream-effects/virtual-background/vendor/tflite
|
||||
MEET_MODELS_DIR = react/features/stream-effects/virtual-background/vendor/models/
|
||||
FACIAL_MODELS_DIR = react/features/facial-recognition/resources
|
||||
NODE_SASS = ./node_modules/.bin/sass
|
||||
NPM = npm
|
||||
OUTPUT_DIR = .
|
||||
@@ -28,7 +29,7 @@ clean:
|
||||
rm -fr $(BUILD_DIR)
|
||||
|
||||
.NOTPARALLEL:
|
||||
deploy: deploy-init deploy-appbundle deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-libflac deploy-olm deploy-css deploy-local
|
||||
deploy: deploy-init deploy-appbundle deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-libflac deploy-olm deploy-css deploy-local deploy-facial-expressions
|
||||
|
||||
deploy-init:
|
||||
rm -fr $(DEPLOY_DIR)
|
||||
@@ -37,24 +38,26 @@ deploy-init:
|
||||
deploy-appbundle:
|
||||
cp \
|
||||
$(BUILD_DIR)/app.bundle.min.js \
|
||||
$(BUILD_DIR)/app.bundle.min.map \
|
||||
$(BUILD_DIR)/app.bundle.min.js.map \
|
||||
$(BUILD_DIR)/do_external_connect.min.js \
|
||||
$(BUILD_DIR)/do_external_connect.min.map \
|
||||
$(BUILD_DIR)/do_external_connect.min.js.map \
|
||||
$(BUILD_DIR)/external_api.min.js \
|
||||
$(BUILD_DIR)/external_api.min.map \
|
||||
$(BUILD_DIR)/external_api.min.js.map \
|
||||
$(BUILD_DIR)/flacEncodeWorker.min.js \
|
||||
$(BUILD_DIR)/flacEncodeWorker.min.map \
|
||||
$(BUILD_DIR)/flacEncodeWorker.min.js.map \
|
||||
$(BUILD_DIR)/dial_in_info_bundle.min.js \
|
||||
$(BUILD_DIR)/dial_in_info_bundle.min.map \
|
||||
$(BUILD_DIR)/dial_in_info_bundle.min.js.map \
|
||||
$(BUILD_DIR)/alwaysontop.min.js \
|
||||
$(BUILD_DIR)/alwaysontop.min.map \
|
||||
$(BUILD_DIR)/alwaysontop.min.js.map \
|
||||
$(OUTPUT_DIR)/analytics-ga.js \
|
||||
$(BUILD_DIR)/analytics-ga.min.js \
|
||||
$(BUILD_DIR)/analytics-ga.min.map \
|
||||
$(BUILD_DIR)/analytics-ga.min.js.map \
|
||||
$(BUILD_DIR)/facial-expressions-worker.min.js \
|
||||
$(BUILD_DIR)/facial-expressions-worker.min.js.map \
|
||||
$(DEPLOY_DIR)
|
||||
cp \
|
||||
$(BUILD_DIR)/close3.min.js \
|
||||
$(BUILD_DIR)/close3.min.map \
|
||||
$(BUILD_DIR)/close3.min.js.map \
|
||||
$(DEPLOY_DIR) || true
|
||||
|
||||
deploy-lib-jitsi-meet:
|
||||
@@ -85,12 +88,17 @@ deploy-rnnoise-binary:
|
||||
deploy-tflite:
|
||||
cp \
|
||||
$(TFLITE_WASM)/*.wasm \
|
||||
$(DEPLOY_DIR)
|
||||
$(DEPLOY_DIR)
|
||||
|
||||
deploy-meet-models:
|
||||
cp \
|
||||
$(MEET_MODELS_DIR)/*.tflite \
|
||||
$(DEPLOY_DIR)
|
||||
$(DEPLOY_DIR)
|
||||
|
||||
deploy-facial-expressions:
|
||||
cp \
|
||||
$(FACIAL_MODELS_DIR)/* \
|
||||
$(DEPLOY_DIR)
|
||||
|
||||
deploy-css:
|
||||
$(NODE_SASS) $(STYLES_MAIN) $(STYLES_BUNDLE) && \
|
||||
@@ -101,7 +109,7 @@ deploy-local:
|
||||
([ ! -x deploy-local.sh ] || ./deploy-local.sh)
|
||||
|
||||
.NOTPARALLEL:
|
||||
dev: deploy-init deploy-css deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-libflac deploy-olm
|
||||
dev: deploy-init deploy-css deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-libflac deploy-olm deploy-facial-expressions
|
||||
$(WEBPACK_DEV_SERVER)
|
||||
|
||||
source-package:
|
||||
|
||||
@@ -82,7 +82,7 @@ public class MainActivity extends JitsiMeetActivity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
JitsiMeet.showSplashScreen(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
super.onCreate(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -150,8 +150,8 @@ public class MainActivity extends JitsiMeetActivity {
|
||||
// Set default options
|
||||
JitsiMeetConferenceOptions defaultOptions
|
||||
= new JitsiMeetConferenceOptions.Builder()
|
||||
.setWelcomePageEnabled(true)
|
||||
.setServerURL(buildURL(defaultURL))
|
||||
.setFeatureFlag("welcomepage.enabled", true)
|
||||
.setFeatureFlag("call-integration.enabled", false)
|
||||
.setFeatureFlag("resolution", 360)
|
||||
.setFeatureFlag("server-url-change.enabled", !configurationByRestrictions)
|
||||
@@ -182,11 +182,6 @@ public class MainActivity extends JitsiMeetActivity {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onConferenceTerminated(HashMap<String, Object> extraData) {
|
||||
Log.d(TAG, "Conference terminated: " + extraData);
|
||||
}
|
||||
|
||||
// Activity lifecycle method overrides
|
||||
//
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ allprojects {
|
||||
|
||||
project.version = "${json.version}-jitsi-${versionQualifierNumber}"
|
||||
|
||||
task androidSourcesJar(type: Jar) {
|
||||
task jitsiAndroidSourcesJar(type: Jar) {
|
||||
classifier = 'sources'
|
||||
from android.sourceSets.main.java.source
|
||||
}
|
||||
@@ -124,7 +124,7 @@ allprojects {
|
||||
artifact("${project.buildDir}/outputs/aar/${project.name}-release.aar") {
|
||||
extension "aar"
|
||||
}
|
||||
artifact(androidSourcesJar)
|
||||
artifact(jitsiAndroidSourcesJar)
|
||||
pom.withXml {
|
||||
def pomXml = asNode()
|
||||
pomXml.appendNode('name', project.name)
|
||||
|
||||
@@ -70,9 +70,15 @@ dependencies {
|
||||
implementation project(':react-native-calendar-events')
|
||||
implementation project(':react-native-community_netinfo')
|
||||
implementation project(':react-native-default-preference')
|
||||
implementation project(':react-native-gesture-handler')
|
||||
implementation project(':react-native-get-random-values')
|
||||
implementation project(':react-native-immersive')
|
||||
implementation project(':react-native-keep-awake')
|
||||
implementation project(':react-native-masked-view_masked-view')
|
||||
implementation project(':react-native-performance')
|
||||
implementation project(':react-native-reanimated')
|
||||
implementation project(':react-native-safe-area-context')
|
||||
implementation project(':react-native-screens')
|
||||
implementation project(':react-native-slider')
|
||||
implementation project(':react-native-sound')
|
||||
implementation project(':react-native-splash-screen')
|
||||
@@ -211,7 +217,7 @@ publishing {
|
||||
def groupId = it.moduleGroup
|
||||
def artifactId = it.moduleName
|
||||
|
||||
if (artifactId.startsWith('react-native-') && groupId.equals('jitsi-meet')) {
|
||||
if (artifactId.startsWith('react-native-')) {
|
||||
groupId = rootProject.ext.moduleGroupId
|
||||
}
|
||||
|
||||
|
||||
@@ -86,8 +86,8 @@ public class BroadcastEvent {
|
||||
PARTICIPANTS_INFO_RETRIEVED("org.jitsi.meet.PARTICIPANTS_INFO_RETRIEVED"),
|
||||
CHAT_MESSAGE_RECEIVED("org.jitsi.meet.CHAT_MESSAGE_RECEIVED"),
|
||||
CHAT_TOGGLED("org.jitsi.meet.CHAT_TOGGLED"),
|
||||
VIDEO_MUTED_CHANGED("org.jitsi.meet.VIDEO_MUTED_CHANGED");
|
||||
|
||||
VIDEO_MUTED_CHANGED("org.jitsi.meet.VIDEO_MUTED_CHANGED"),
|
||||
READY_TO_CLOSE("org.jitsi.meet.READY_TO_CLOSE");
|
||||
|
||||
private static final String CONFERENCE_WILL_JOIN_NAME = "CONFERENCE_WILL_JOIN";
|
||||
private static final String CONFERENCE_JOINED_NAME = "CONFERENCE_JOINED";
|
||||
@@ -101,6 +101,7 @@ public class BroadcastEvent {
|
||||
private static final String CHAT_MESSAGE_RECEIVED_NAME = "CHAT_MESSAGE_RECEIVED";
|
||||
private static final String CHAT_TOGGLED_NAME = "CHAT_TOGGLED";
|
||||
private static final String VIDEO_MUTED_CHANGED_NAME = "VIDEO_MUTED_CHANGED";
|
||||
private static final String READY_TO_CLOSE_NAME = "READY_TO_CLOSE";
|
||||
|
||||
private final String action;
|
||||
|
||||
@@ -147,6 +148,8 @@ public class BroadcastEvent {
|
||||
return CHAT_TOGGLED;
|
||||
case VIDEO_MUTED_CHANGED_NAME:
|
||||
return VIDEO_MUTED_CHANGED;
|
||||
case READY_TO_CLOSE_NAME:
|
||||
return READY_TO_CLOSE;
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -24,7 +24,7 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.facebook.react.modules.core.PermissionListener;
|
||||
@@ -38,7 +38,7 @@ import android.app.Activity;
|
||||
* A base activity for SDK users to embed. It uses {@link JitsiMeetFragment} to do the heavy
|
||||
* lifting and wires the remaining Activity lifecycle methods so it works out of the box.
|
||||
*/
|
||||
public class JitsiMeetActivity extends FragmentActivity
|
||||
public class JitsiMeetActivity extends AppCompatActivity
|
||||
implements JitsiMeetActivityInterface {
|
||||
|
||||
protected static final String TAG = JitsiMeetActivity.class.getSimpleName();
|
||||
@@ -194,7 +194,6 @@ public class JitsiMeetActivity extends FragmentActivity
|
||||
|
||||
protected void onConferenceTerminated(HashMap<String, Object> extraData) {
|
||||
JitsiMeetLogger.i("Conference terminated: " + extraData);
|
||||
finish();
|
||||
}
|
||||
|
||||
protected void onConferenceWillJoin(HashMap<String, Object> extraData) {
|
||||
@@ -217,6 +216,11 @@ public class JitsiMeetActivity extends FragmentActivity
|
||||
}
|
||||
}
|
||||
|
||||
protected void onReadyToClose() {
|
||||
JitsiMeetLogger.i("SDK is ready to close");
|
||||
finish();
|
||||
}
|
||||
|
||||
// Activity lifecycle methods
|
||||
//
|
||||
|
||||
@@ -298,6 +302,9 @@ public class JitsiMeetActivity extends FragmentActivity
|
||||
case PARTICIPANT_LEFT:
|
||||
onParticipantLeft(event.getData());
|
||||
break;
|
||||
case READY_TO_CLOSE:
|
||||
onReadyToClose();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,11 +45,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
*/
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* Color scheme override, see: https://github.com/jitsi/jitsi-meet/blob/dbedee5e22e5dcf9c92db96ef5bb3c9982fc526d/react/features/base/color-scheme/defaultScheme.js
|
||||
*/
|
||||
private Bundle colorScheme;
|
||||
|
||||
/**
|
||||
* Config. See: https://github.com/jitsi/jitsi-meet/blob/master/config.js
|
||||
*/
|
||||
@@ -77,10 +72,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
return token;
|
||||
}
|
||||
|
||||
public Bundle getColorScheme() {
|
||||
return colorScheme;
|
||||
}
|
||||
|
||||
public Bundle getFeatureFlags() {
|
||||
return featureFlags;
|
||||
}
|
||||
@@ -97,7 +88,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
private String room;
|
||||
private String token;
|
||||
|
||||
private Bundle colorScheme;
|
||||
private Bundle config;
|
||||
private Bundle featureFlags;
|
||||
|
||||
@@ -152,19 +142,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the color scheme override so the app is themed. See:
|
||||
* https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/color-scheme/defaultScheme.js
|
||||
* for the structure.
|
||||
* @param colorScheme - A color scheme to be applied to the app.
|
||||
* @return - The {@link Builder} object itself so the method calls can be chained.
|
||||
*/
|
||||
public Builder setColorScheme(Bundle colorScheme) {
|
||||
this.colorScheme = colorScheme;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates the conference will be joined with the microphone muted.
|
||||
* @param audioMuted - Muted indication.
|
||||
@@ -198,19 +175,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the welcome page enabled / disabled. The welcome page lists recent meetings and
|
||||
* calendar appointments and it's meant to be used by standalone applications. Defaults to
|
||||
* false.
|
||||
* @param enabled - Whether the welcome page should be enabled or not.
|
||||
* @return - The {@link Builder} object itself so the method calls can be chained.
|
||||
*/
|
||||
public Builder setWelcomePageEnabled(boolean enabled) {
|
||||
this.featureFlags.putBoolean("welcomepage.enabled", enabled);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setFeatureFlag(String flag, boolean value) {
|
||||
this.featureFlags.putBoolean(flag, value);
|
||||
|
||||
@@ -276,7 +240,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
options.serverURL = this.serverURL;
|
||||
options.room = this.room;
|
||||
options.token = this.token;
|
||||
options.colorScheme = this.colorScheme;
|
||||
options.config = this.config;
|
||||
options.featureFlags = this.featureFlags;
|
||||
options.userInfo = this.userInfo;
|
||||
@@ -292,7 +255,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
serverURL = (URL) in.readSerializable();
|
||||
room = in.readString();
|
||||
token = in.readString();
|
||||
colorScheme = in.readBundle();
|
||||
config = in.readBundle();
|
||||
featureFlags = in.readBundle();
|
||||
userInfo = new JitsiMeetUserInfo(in.readBundle());
|
||||
@@ -308,10 +270,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
|
||||
props.putBundle("flags", featureFlags);
|
||||
|
||||
if (colorScheme != null) {
|
||||
props.putBundle("colorScheme", colorScheme);
|
||||
}
|
||||
|
||||
Bundle urlProps = new Bundle();
|
||||
|
||||
// The room is fully qualified
|
||||
@@ -360,7 +318,6 @@ public class JitsiMeetConferenceOptions implements Parcelable {
|
||||
dest.writeSerializable(serverURL);
|
||||
dest.writeString(room);
|
||||
dest.writeString(token);
|
||||
dest.writeBundle(colorScheme);
|
||||
dest.writeBundle(config);
|
||||
dest.writeBundle(featureFlags);
|
||||
dest.writeBundle(userInfo != null ? userInfo.asBundle() : new Bundle());
|
||||
|
||||
@@ -175,21 +175,27 @@ class ReactInstanceManagerHolder {
|
||||
|
||||
List<ReactPackage> packages
|
||||
= new ArrayList<>(Arrays.asList(
|
||||
new com.reactnativecommunity.asyncstorage.AsyncStoragePackage(),
|
||||
new com.ocetnik.timer.BackgroundTimerPackage(),
|
||||
new com.calendarevents.CalendarEventsPackage(),
|
||||
new com.corbt.keepawake.KCKeepAwakePackage(),
|
||||
new com.facebook.react.shell.MainReactPackage(),
|
||||
new com.horcrux.svg.SvgPackage(),
|
||||
new com.reactnativecommunity.netinfo.NetInfoPackage(),
|
||||
new com.oblador.performance.PerformancePackage(),
|
||||
new com.reactnativecommunity.slider.ReactSliderPackage(),
|
||||
new com.brentvatne.react.ReactVideoPackage(),
|
||||
new com.swmansion.reanimated.ReanimatedPackage(),
|
||||
new org.reactnative.maskedview.RNCMaskedViewPackage(),
|
||||
new com.reactnativecommunity.webview.RNCWebViewPackage(),
|
||||
new com.kevinresol.react_native_default_preference.RNDefaultPreferencePackage(),
|
||||
new com.learnium.RNDeviceInfo.RNDeviceInfo(),
|
||||
new com.oblador.performance.PerformancePackage(),
|
||||
new com.ocetnik.timer.BackgroundTimerPackage(),
|
||||
new com.reactnativecommunity.asyncstorage.AsyncStoragePackage(),
|
||||
new com.reactnativecommunity.netinfo.NetInfoPackage(),
|
||||
new com.reactnativecommunity.slider.ReactSliderPackage(),
|
||||
new com.reactnativecommunity.webview.RNCWebViewPackage(),
|
||||
new com.swmansion.gesturehandler.react.RNGestureHandlerPackage(),
|
||||
new org.linusu.RNGetRandomValuesPackage(),
|
||||
new com.rnimmersive.RNImmersivePackage(),
|
||||
new com.swmansion.rnscreens.RNScreensPackage(),
|
||||
new com.zmxv.RNSound.RNSoundPackage(),
|
||||
new com.brentvatne.react.ReactVideoPackage(),
|
||||
new com.th3rdwave.safeareacontext.SafeAreaContextPackage(),
|
||||
new com.horcrux.svg.SvgPackage(),
|
||||
new ReactPackageAdapter() {
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
||||
|
||||
@@ -15,14 +15,26 @@ include ':react-native-default-preference'
|
||||
project(':react-native-default-preference').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-default-preference/android')
|
||||
include ':react-native-device-info'
|
||||
project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
|
||||
include ':react-native-gesture-handler'
|
||||
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
|
||||
include ':react-native-get-random-values'
|
||||
project(':react-native-get-random-values').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-get-random-values/android')
|
||||
include ':react-native-google-signin'
|
||||
project(':react-native-google-signin').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/google-signin/android')
|
||||
include ':react-native-immersive'
|
||||
project(':react-native-immersive').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-immersive/android')
|
||||
include ':react-native-keep-awake'
|
||||
project(':react-native-keep-awake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keep-awake/android')
|
||||
include ':react-native-masked-view_masked-view'
|
||||
project(':react-native-masked-view_masked-view').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-masked-view/masked-view/android')
|
||||
include ':react-native-performance'
|
||||
project(':react-native-performance').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-performance/android')
|
||||
include ':react-native-reanimated'
|
||||
project(':react-native-reanimated').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-reanimated/android')
|
||||
include ':react-native-safe-area-context'
|
||||
project(':react-native-safe-area-context').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-safe-area-context/android')
|
||||
include ':react-native-screens'
|
||||
project(':react-native-screens').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screens/android')
|
||||
include ':react-native-slider'
|
||||
project(':react-native-slider').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/slider/android')
|
||||
include ':react-native-sound'
|
||||
|
||||
122
conference.js
122
conference.js
@@ -1,8 +1,8 @@
|
||||
/* global APP, JitsiMeetJS, config, interfaceConfig */
|
||||
|
||||
import { jitsiLocalStorage } from '@jitsi/js-utils';
|
||||
import Logger from '@jitsi/logger';
|
||||
import EventEmitter from 'events';
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
|
||||
import { openConnection } from './connection';
|
||||
import { ENDPOINT_TEXT_MESSAGE_NAME } from './modules/API/constants';
|
||||
@@ -29,6 +29,7 @@ import { shouldShowModeratedNotification } from './react/features/av-moderation/
|
||||
import {
|
||||
AVATAR_URL_COMMAND,
|
||||
EMAIL_COMMAND,
|
||||
_conferenceWillJoin,
|
||||
authStatusChanged,
|
||||
commonUserJoinedHandling,
|
||||
commonUserLeftHandling,
|
||||
@@ -47,7 +48,7 @@ import {
|
||||
onStartMutedPolicyChanged,
|
||||
p2pStatusChanged,
|
||||
sendLocalParticipant,
|
||||
_conferenceWillJoin
|
||||
nonParticipantMessageReceived
|
||||
} from './react/features/base/conference';
|
||||
import { getReplaceParticipant } from './react/features/base/config/functions';
|
||||
import {
|
||||
@@ -107,6 +108,7 @@ import {
|
||||
getLocalJitsiAudioTrack,
|
||||
getLocalJitsiVideoTrack,
|
||||
getLocalTracks,
|
||||
getLocalVideoTrack,
|
||||
isLocalCameraTrackMuted,
|
||||
isLocalTrackMuted,
|
||||
isUserInteractionRequiredForUnmute,
|
||||
@@ -121,7 +123,11 @@ import {
|
||||
maybeOpenFeedbackDialog,
|
||||
submitFeedback
|
||||
} from './react/features/feedback';
|
||||
import { isModerationNotificationDisplayed, showNotification } from './react/features/notifications';
|
||||
import {
|
||||
isModerationNotificationDisplayed,
|
||||
showNotification,
|
||||
NOTIFICATION_TIMEOUT_TYPE
|
||||
} from './react/features/notifications';
|
||||
import { mediaPermissionPromptVisibilityChanged, toggleSlowGUMOverlay } from './react/features/overlay';
|
||||
import { suspendDetected } from './react/features/power-monitor';
|
||||
import {
|
||||
@@ -129,7 +135,8 @@ import {
|
||||
isPrejoinPageEnabled,
|
||||
isPrejoinPageVisible,
|
||||
makePrecallTest,
|
||||
setJoiningInProgress
|
||||
setJoiningInProgress,
|
||||
setPrejoinPageVisibility
|
||||
} from './react/features/prejoin';
|
||||
import { disableReceiver, stopReceiver } from './react/features/remote-control';
|
||||
import { setScreenAudioShareState, isScreenAudioShared } from './react/features/screen-share/';
|
||||
@@ -354,7 +361,10 @@ class ConferenceConnector {
|
||||
case JitsiConferenceErrors.FOCUS_DISCONNECTED: {
|
||||
const [ focus, retrySec ] = params;
|
||||
|
||||
APP.UI.notifyFocusDisconnected(focus, retrySec);
|
||||
APP.store.dispatch(showNotification({
|
||||
descriptionKey: focus,
|
||||
titleKey: retrySec
|
||||
}, NOTIFICATION_TIMEOUT_TYPE.SHORT));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -752,13 +762,13 @@ export default {
|
||||
APP.store.dispatch(showNotification({
|
||||
descriptionKey: 'notify.startSilentDescription',
|
||||
titleKey: 'notify.startSilentTitle'
|
||||
}));
|
||||
}, NOTIFICATION_TIMEOUT_TYPE.LONG));
|
||||
}
|
||||
|
||||
// XXX The API will take care of disconnecting from the XMPP
|
||||
// server (and, thus, leaving the room) on unload.
|
||||
return new Promise((resolve, reject) => {
|
||||
(new ConferenceConnector(resolve, reject)).connect();
|
||||
new ConferenceConnector(resolve, reject).connect();
|
||||
});
|
||||
},
|
||||
|
||||
@@ -1013,6 +1023,14 @@ export default {
|
||||
* dialogs in case of media permissions error.
|
||||
*/
|
||||
muteVideo(mute, showUI = true) {
|
||||
if (this.videoSwitchInProgress) {
|
||||
// Turning the camera on while the screen sharing mode is being turned off is causing issues around
|
||||
// the presenter mode handling. It should be okay for the user to click the button again once that's done.
|
||||
console.warn('muteVideo - unable to perform operations while video switch is in progress');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mute
|
||||
&& isUserInteractionRequiredForUnmute(APP.store.getState())) {
|
||||
logger.error('Unmuting video requires user interaction');
|
||||
@@ -1350,11 +1368,49 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
_createRoom(localTracks) {
|
||||
/**
|
||||
* Used by the Breakout Rooms feature to join a breakout room or go back to the main room.
|
||||
*/
|
||||
async joinRoom(roomName, isBreakoutRoom = false) {
|
||||
this.roomName = roomName;
|
||||
|
||||
const { tryCreateLocalTracks, errors } = this.createInitialLocalTracks();
|
||||
const localTracks = await tryCreateLocalTracks;
|
||||
|
||||
this._displayErrorsForCreateInitialLocalTracks(errors);
|
||||
localTracks.forEach(track => {
|
||||
if ((track.isAudioTrack() && this.isLocalAudioMuted())
|
||||
|| (track.isVideoTrack() && this.isLocalVideoMuted())) {
|
||||
track.mute();
|
||||
}
|
||||
});
|
||||
this._createRoom(localTracks, isBreakoutRoom);
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
new ConferenceConnector(resolve, reject).connect();
|
||||
});
|
||||
},
|
||||
|
||||
_createRoom(localTracks, isBreakoutRoom = false) {
|
||||
const extraOptions = {};
|
||||
|
||||
if (isBreakoutRoom) {
|
||||
// We must be in a room already.
|
||||
if (!room?.xmpp?.breakoutRoomsComponentAddress) {
|
||||
throw new Error('Breakout Rooms not enabled');
|
||||
}
|
||||
|
||||
// TODO: re-evaluate this. -saghul
|
||||
extraOptions.customDomain = room.xmpp.breakoutRoomsComponentAddress;
|
||||
}
|
||||
|
||||
room
|
||||
= connection.initJitsiConference(
|
||||
APP.conference.roomName,
|
||||
this._getConferenceOptions());
|
||||
{
|
||||
...this._getConferenceOptions(),
|
||||
...extraOptions
|
||||
});
|
||||
|
||||
// Filter out the tracks that are muted (except on Safari).
|
||||
const tracks = browser.isWebKitBased() ? localTracks : localTracks.filter(track => !track.isMuted());
|
||||
@@ -1548,6 +1604,8 @@ export default {
|
||||
if (config.enableScreenshotCapture) {
|
||||
APP.store.dispatch(toggleScreenshotCaptureSummary(false));
|
||||
}
|
||||
const tracks = APP.store.getState()['features/base/tracks'];
|
||||
const duration = getLocalVideoTrack(tracks)?.jitsiTrack.getDuration() ?? 0;
|
||||
|
||||
// It can happen that presenter GUM is in progress while screensharing is being turned off. Here it needs to
|
||||
// wait for that GUM to be resolved in order to prevent leaking the presenter track(this.localPresenterVideo
|
||||
@@ -1609,7 +1667,8 @@ export default {
|
||||
return promise.then(
|
||||
() => {
|
||||
this.videoSwitchInProgress = false;
|
||||
sendAnalytics(createScreenSharingEvent('stopped'));
|
||||
sendAnalytics(createScreenSharingEvent('stopped',
|
||||
duration === 0 ? null : duration));
|
||||
logger.info('Screen sharing stopped.');
|
||||
},
|
||||
error => {
|
||||
@@ -1639,7 +1698,7 @@ export default {
|
||||
async toggleScreenSharing(toggle = !this._untoggleScreenSharing, options = {}, ignoreDidHaveVideo) {
|
||||
logger.debug(`toggleScreenSharing: ${toggle}`);
|
||||
if (this.videoSwitchInProgress) {
|
||||
return Promise.reject('Switch in progress.');
|
||||
return Promise.reject(`toggleScreenSharing: ${toggle} aborted - video switch in progress.`);
|
||||
}
|
||||
if (!JitsiMeetJS.isDesktopSharingEnabled()) {
|
||||
return Promise.reject('Cannot toggle screen sharing: not supported.');
|
||||
@@ -2005,6 +2064,9 @@ export default {
|
||||
room.on(JitsiConferenceEvents.CONFERENCE_JOINED, () => {
|
||||
this._onConferenceJoined();
|
||||
});
|
||||
room.on(JitsiConferenceEvents.CONFERENCE_JOIN_IN_PROGRESS, () => {
|
||||
APP.store.dispatch(setPrejoinPageVisibility(false));
|
||||
});
|
||||
|
||||
room.on(
|
||||
JitsiConferenceEvents.CONFERENCE_LEFT,
|
||||
@@ -2206,6 +2268,10 @@ export default {
|
||||
}
|
||||
});
|
||||
|
||||
room.on(
|
||||
JitsiConferenceEvents.NON_PARTICIPANT_MESSAGE_RECEIVED,
|
||||
(...args) => APP.store.dispatch(nonParticipantMessageReceived(...args)));
|
||||
|
||||
room.on(
|
||||
JitsiConferenceEvents.LOCK_STATE_CHANGED,
|
||||
(...args) => APP.store.dispatch(lockStateChanged(room, ...args)));
|
||||
@@ -2305,7 +2371,12 @@ export default {
|
||||
}
|
||||
|
||||
Promise.allSettled(promises)
|
||||
.then(() => APP.UI.notifyInitiallyMuted());
|
||||
.then(() => {
|
||||
APP.store.dispatch(showNotification({
|
||||
titleKey: 'notify.mutedTitle',
|
||||
descriptionKey: 'notify.muted'
|
||||
}, NOTIFICATION_TIMEOUT_TYPE.SHORT));
|
||||
});
|
||||
});
|
||||
|
||||
room.on(
|
||||
@@ -2634,12 +2705,17 @@ export default {
|
||||
|
||||
APP.store.dispatch(updateDeviceList(devices));
|
||||
|
||||
// Firefox users can choose their preferred device in the gUM prompt. In that case
|
||||
// we should respect that and not attempt to switch to the preferred device from
|
||||
// our settings.
|
||||
const newLabelsOnly = mediaDeviceHelper.newDeviceListAddedLabelsOnly(oldDevices, devices);
|
||||
const newDevices
|
||||
= mediaDeviceHelper.getNewMediaDevicesAfterDeviceListChanged(
|
||||
devices,
|
||||
this.isSharingScreen,
|
||||
localVideo,
|
||||
localAudio);
|
||||
localAudio,
|
||||
newLabelsOnly);
|
||||
const promises = [];
|
||||
const audioWasMuted = this.isLocalAudioMuted();
|
||||
const videoWasMuted = this.isLocalVideoMuted();
|
||||
@@ -2883,6 +2959,17 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Leaves the room.
|
||||
*
|
||||
* @returns {Promise}
|
||||
*/
|
||||
leaveRoom() {
|
||||
if (room && room.isJoined()) {
|
||||
return room.leave();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Leaves the room and calls JitsiConnection.disconnect.
|
||||
*
|
||||
@@ -2977,6 +3064,15 @@ export default {
|
||||
room.sendEndpointMessage(to, payload);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a facial expression as a string and its duration as a number
|
||||
* @param {object} payload - Object containing the {string} facialExpression
|
||||
* and {number} duration
|
||||
*/
|
||||
sendFacialExpression(payload) {
|
||||
room.sendFacialExpression(payload);
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds new listener.
|
||||
* @param {String} eventName the name of the event
|
||||
|
||||
91
config.js
91
config.js
@@ -279,6 +279,7 @@ var config = {
|
||||
// autoHide: true,
|
||||
// autoHideTimeout: 5000,
|
||||
// disabled: false,
|
||||
// disableDetails: false,
|
||||
// inactiveDisabled: false
|
||||
// },
|
||||
|
||||
@@ -374,6 +375,13 @@ var config = {
|
||||
// resizeDesktopForPresenter: false
|
||||
// },
|
||||
|
||||
// Notification timeouts
|
||||
// notificationTimeouts: {
|
||||
// short: 2500,
|
||||
// medium: 5000,
|
||||
// long: 10000
|
||||
// },
|
||||
|
||||
// // Options for the recording limit notification.
|
||||
// recordingLimit: {
|
||||
//
|
||||
@@ -429,6 +437,12 @@ var config = {
|
||||
// Hides lobby button
|
||||
// hideLobbyButton: false,
|
||||
|
||||
// If Lobby is enabled starts knocking automatically.
|
||||
// autoKnockLobby: false,
|
||||
|
||||
// Hides add breakout room button
|
||||
// hideAddRoomButton: false,
|
||||
|
||||
// Require users to always specify a display name.
|
||||
// requireDisplayName: true,
|
||||
|
||||
@@ -648,6 +662,9 @@ var config = {
|
||||
// Enables sending participants' emails (if available) to callstats and other analytics
|
||||
// enableEmailInStats: false,
|
||||
|
||||
// Enables detecting faces of participants and get their expression and send it to other participants
|
||||
// enableFacialRecognition: true,
|
||||
|
||||
// Controls the percentage of automatic feedback shown to participants when callstats is enabled.
|
||||
// The default value is 100%. If set to 0, no automatic feedback will be requested
|
||||
// feedbackPercentage: 100,
|
||||
@@ -730,7 +747,7 @@ var config = {
|
||||
// module connects to the provided rtcstatsEndpoint and sends statistics regarding
|
||||
// PeerConnection states along with getStats metrics polled at the specified
|
||||
// interval.
|
||||
// rtcstatsEnabled: true,
|
||||
// rtcstatsEnabled: false,
|
||||
|
||||
// In order to enable rtcstats one needs to provide a endpoint url.
|
||||
// rtcstatsEndpoint: wss://rtcstats-server-pilot.jitsi.net/,
|
||||
@@ -825,6 +842,10 @@ var config = {
|
||||
// format: 'flac'
|
||||
//
|
||||
|
||||
// },
|
||||
// e2ee: {
|
||||
// labels,
|
||||
// externallyManagedKey: false
|
||||
// },
|
||||
|
||||
// Options related to end-to-end (participant to participant) ping.
|
||||
@@ -895,22 +916,55 @@ var config = {
|
||||
If there is no url set or there are missing fields, the defaults are applied.
|
||||
The config file should be in JSON.
|
||||
None of the fields are mandatory and the response must have the shape:
|
||||
{
|
||||
// The domain url to apply (will replace the domain in the sharing conference link/embed section)
|
||||
inviteDomain: 'example-company.org,
|
||||
// The hex value for the colour used as background
|
||||
backgroundColor: '#fff',
|
||||
// The url for the image used as background
|
||||
backgroundImageUrl: 'https://example.com/background-img.png',
|
||||
// The anchor url used when clicking the logo image
|
||||
logoClickUrl: 'https://example-company.org',
|
||||
// The url used for the image used as logo
|
||||
logoImageUrl: 'https://example.com/logo-img.png',
|
||||
// Overwrite for pool of background images for avatars
|
||||
avatarBackgrounds: ['url(https://example.com/avatar-background-1.png)', '#FFF'],
|
||||
// The lobby/prejoin screen background
|
||||
premeetingBackground: 'url(https://example.com/premeeting-background.png)'
|
||||
}
|
||||
{
|
||||
// The domain url to apply (will replace the domain in the sharing conference link/embed section)
|
||||
inviteDomain: 'example-company.org,
|
||||
// The hex value for the colour used as background
|
||||
backgroundColor: '#fff',
|
||||
// The url for the image used as background
|
||||
backgroundImageUrl: 'https://example.com/background-img.png',
|
||||
// The anchor url used when clicking the logo image
|
||||
logoClickUrl: 'https://example-company.org',
|
||||
// The url used for the image used as logo
|
||||
logoImageUrl: 'https://example.com/logo-img.png',
|
||||
// Overwrite for pool of background images for avatars
|
||||
avatarBackgrounds: ['url(https://example.com/avatar-background-1.png)', '#FFF'],
|
||||
// The lobby/prejoin screen background
|
||||
premeetingBackground: 'url(https://example.com/premeeting-background.png)',
|
||||
// A list of images that can be used as video backgrounds.
|
||||
// When this field is present, the default images will be replaced with those provided.
|
||||
virtualBackgrounds: ['https://example.com/img.jpg'],
|
||||
// Object containing a theme's properties. It also supports partial overwrites of the main theme.
|
||||
// For a list of all possible theme tokens and their current defaults, please check:
|
||||
// https://github.com/jitsi/jitsi-meet/tree/master/resources/custom-theme/custom-theme.json
|
||||
// For a short explanations on each of the tokens, please check:
|
||||
// https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/ui/Tokens.js
|
||||
// IMPORTANT!: This is work in progress so many of the various tokens are not yet applied in code
|
||||
// or they are partially applied.
|
||||
customTheme: {
|
||||
palette: {
|
||||
ui01: "orange !important",
|
||||
ui02: "maroon",
|
||||
surface02: 'darkgreen',
|
||||
ui03: "violet",
|
||||
ui04: "magenta",
|
||||
ui05: "blueviolet",
|
||||
field02Hover: 'red',
|
||||
action01: 'green',
|
||||
action01Hover: 'lightgreen',
|
||||
action02Disabled: 'beige',
|
||||
success02: 'cadetblue',
|
||||
action02Hover: 'aliceblue'
|
||||
},
|
||||
typography: {
|
||||
labelRegular: {
|
||||
fontSize: 25,
|
||||
lineHeight: 30,
|
||||
fontWeight: 500
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
// dynamicBrandingUrl: '',
|
||||
|
||||
@@ -918,6 +972,9 @@ var config = {
|
||||
// Only the default ones from will be available.
|
||||
// disableAddingBackgroundImages: false,
|
||||
|
||||
// Disables using screensharing as virtual background.
|
||||
// disableScreensharingVirtualBackground: false,
|
||||
|
||||
// Sets the background transparency level. '0' is fully transparent, '1' is opaque.
|
||||
// backgroundAlpha: 1,
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* global APP, JitsiMeetJS, config */
|
||||
|
||||
import { jitsiLocalStorage } from '@jitsi/js-utils';
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
import Logger from '@jitsi/logger';
|
||||
|
||||
import { redirectToTokenAuthService } from './modules/UI/authentication/AuthHandler';
|
||||
import { LoginDialog } from './react/features/authentication/components';
|
||||
|
||||
@@ -24,61 +24,6 @@
|
||||
bottom: calc(#{$newToolbarSizeWithPadding}) !important;
|
||||
}
|
||||
|
||||
.modal-dialog-form {
|
||||
/**
|
||||
* Override @atlaskit/dropdown-menu styling when in a modal because the
|
||||
* dropdown backgrounds clash with the modal backgrounds.
|
||||
*/
|
||||
.dropdown-menu div[style*="transform"] {
|
||||
outline: 1px solid #455166;
|
||||
}
|
||||
.dropdown-menu button:not(:active):not(:hover) > span {
|
||||
color: #B8C7E0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override @atlaskit/tab styling when in a modal because the
|
||||
* tab text color clash with the modal backgrounds.
|
||||
*/
|
||||
div[role="tablist"] > div:not([data-selected]):not(:hover),
|
||||
label > div > span {
|
||||
color: #B8C7E0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Override @atlaskit/modal-dialog header styling
|
||||
*/
|
||||
.atlaskit-portal [role="dialog"] header {
|
||||
box-shadow: none;
|
||||
.jitsi-icon {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.jitsi-icon svg {
|
||||
fill: #B8C7E0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Override @atlaskit/modal-dialog footer styling.
|
||||
*/
|
||||
.atlaskit-portal [role="dialog"] footer {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make header close button more easily tappable on mobile.
|
||||
*/
|
||||
.mobile-browser .atlaskit-portal [role="dialog"] header .jitsi-icon {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
background: #2a3a4b;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override @atlaskit/theme styling for the top toolbar so it displays over
|
||||
* the video thumbnail while obscuring as little as possible.
|
||||
@@ -158,3 +103,20 @@ div.Tooltip {
|
||||
line-height: 14px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
// make modal full screen on landscape orientation
|
||||
@media (max-height: 420px) {
|
||||
.atlaskit-portal {
|
||||
.css-1oc7v0j {
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
max-width: 100%;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
|
||||
&> div {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,34 +2,39 @@
|
||||
background-color: $chatBackgroundColor;
|
||||
box-sizing: border-box;
|
||||
color: #FFF;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
left: -$sidebarWidth;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: $sidebarWidth;
|
||||
z-index: $sideToolbarContainerZ;
|
||||
|
||||
/**
|
||||
* The sidebar (chat) is off-screen when hidden. Move it flush to the left
|
||||
* side of the window when it should be visible.
|
||||
*/
|
||||
&.slideInExt {
|
||||
left: 0;
|
||||
@media (max-width: 580px) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.chat-panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// extract header + tabs height
|
||||
height: calc(100% - 102px);
|
||||
}
|
||||
|
||||
.chat-panel-no-tabs {
|
||||
// extract header height
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
|
||||
#chatconversation {
|
||||
box-sizing: border-box;
|
||||
flex: 1;
|
||||
font-size: 10pt;
|
||||
// extract message input height
|
||||
height: calc(100% - 68px);
|
||||
line-height: 20px;
|
||||
overflow: auto;
|
||||
padding: 16px;
|
||||
text-align: left;
|
||||
width: $sidebarWidth;
|
||||
word-wrap: break-word;
|
||||
|
||||
display: flex;
|
||||
@@ -58,28 +63,6 @@
|
||||
a:active {
|
||||
color: black;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
background: #06a5df;
|
||||
width: 7px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-track {
|
||||
background: black;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-track-piece {
|
||||
background: black;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #06a5df;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
#chat-recipient {
|
||||
@@ -319,10 +302,6 @@
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media (max-width: 580px) {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.sr-only {
|
||||
@@ -563,11 +542,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.touchmove-hack {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make header close button more easily tappable on mobile.
|
||||
|
||||
@@ -11,12 +11,6 @@
|
||||
{
|
||||
@extend %connection-info;
|
||||
|
||||
/**
|
||||
* Apply negative margin to reduce the appearance of padding in AtlasKit
|
||||
* InlineDialog.
|
||||
*/
|
||||
margin: -15px;
|
||||
|
||||
> table {
|
||||
white-space: nowrap;
|
||||
@extend %connection-info;
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
.label {
|
||||
align-items: center;
|
||||
background: #36383C;
|
||||
border-radius: 3px;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
height: 28px;
|
||||
margin: 0 0 4px 4px;
|
||||
padding: 0 8px;
|
||||
|
||||
&--green {
|
||||
background: #31B76A;
|
||||
}
|
||||
|
||||
&--red {
|
||||
background: #E34F56
|
||||
}
|
||||
|
||||
&--white {
|
||||
background: #fff;
|
||||
color: #5e6d7a;
|
||||
|
||||
svg {
|
||||
fill: #5e6d7a;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.label-text-with-icon {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.participants-count {
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -56,3 +56,9 @@
|
||||
border-radius: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.mobile-browser.shift-right {
|
||||
.participants_pane {
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
288
css/_polls.scss
288
css/_polls.scss
@@ -1,5 +1,7 @@
|
||||
.poll-dialog {
|
||||
font-size: 1rem;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 20px;
|
||||
|
||||
h1, span, li, strong {
|
||||
color: #bce;
|
||||
@@ -16,28 +18,58 @@
|
||||
}
|
||||
|
||||
.poll-header {
|
||||
padding: 8px 16px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.poll-answer-container{
|
||||
padding: 8px;
|
||||
.poll-creator {
|
||||
color: #C2C2C2;
|
||||
font-weight: 600;
|
||||
margin: 4px 0 16px 0;
|
||||
}
|
||||
|
||||
.poll-answer-container {
|
||||
background: #3D3D3D;
|
||||
border-radius: 3px;
|
||||
margin-bottom: 8px;
|
||||
|
||||
@media (max-width: 580px) {
|
||||
&> span {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
svg {
|
||||
margin-top: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.poll-answer-option {
|
||||
font-weight: 400;
|
||||
display: block;
|
||||
margin: 4px;
|
||||
|
||||
@media (max-width: 580px) {
|
||||
font-size: 16px;
|
||||
margin: 11px 8px
|
||||
}
|
||||
}
|
||||
|
||||
.poll-answer-field-list, .poll-answer-list, .poll-result-list {
|
||||
list-style-type: none;
|
||||
padding: 0 16px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.poll-answer-field-list {
|
||||
padding: 0 16px;
|
||||
}
|
||||
|
||||
ol.poll-result-list {
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.poll-result-list > li {
|
||||
margin-bottom: 8px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.poll-answer-field {
|
||||
@@ -60,7 +92,7 @@ ol.poll-result-list {
|
||||
.poll-create-container .jsYMHu {
|
||||
background: #292929;
|
||||
border-color: #808090;
|
||||
color: white // #808090
|
||||
color: #fff // #808090
|
||||
}
|
||||
|
||||
.poll-add-button {
|
||||
@@ -72,7 +104,7 @@ ol.poll-result-list {
|
||||
.poll-remove-option-button {
|
||||
background: 0 0;
|
||||
border: none;
|
||||
color: #8B8B8B;
|
||||
color: #E04757;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
@@ -85,7 +117,7 @@ ol.poll-result-list {
|
||||
|
||||
.poll-icon-button, .poll-drag-handle {
|
||||
.jitsi-icon svg {
|
||||
fill: #bce;
|
||||
fill: #929292;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,6 +126,7 @@ ol.poll-result-list {
|
||||
border: none;
|
||||
cursor: grab;
|
||||
padding-left: 8;
|
||||
padding-top: 8px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
@@ -105,13 +138,12 @@ ol.poll-result-list {
|
||||
}
|
||||
|
||||
.poll-question {
|
||||
font-size: 1.2em;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
.poll-answer-voters {
|
||||
font-size: 1em;
|
||||
font-weight: lighter;
|
||||
list-style-type: none;
|
||||
border: #616161 solid 1px;
|
||||
@@ -191,29 +223,36 @@ ol.poll-result-list {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
|
||||
a.poll-detail-link, a.poll-change-vote-link {
|
||||
color: #669AEC;
|
||||
cursor: pointer;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
color: #669AEC;
|
||||
}
|
||||
|
||||
&:visited {
|
||||
color: #669AEC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.poll-detail-link, a.poll-change-vote-link {
|
||||
color: #246FE5;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.polls-pane-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-weight: 600;
|
||||
height: 85%;
|
||||
align-items: stretch;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pane-content{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.empty-pane-icon {
|
||||
@@ -228,37 +267,41 @@ a.poll-detail-link, a.poll-change-vote-link {
|
||||
}
|
||||
|
||||
.empty-pane-message {
|
||||
color: #fff;
|
||||
padding: 0 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.poll-results {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.poll-answer {
|
||||
h1, strong ,span {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.poll-results, .poll-answer {
|
||||
margin-bottom: 16px;
|
||||
background: #292929;
|
||||
border-radius: 8px;
|
||||
padding: 12px 8px;
|
||||
border-width: thin;
|
||||
border-style: solid;
|
||||
border-color: #616161;
|
||||
border: 1px solid #666666;
|
||||
margin: 16px;
|
||||
padding: 16px;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.poll-results {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.poll-answer {
|
||||
|
||||
h1, strong ,span {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.poll-create-label {
|
||||
color: white;
|
||||
margin-bottom: 4;
|
||||
color: #C2C2C2;
|
||||
display: flex;
|
||||
font-weight: 400;
|
||||
margin-bottom: 4;
|
||||
}
|
||||
|
||||
.expandable-input{
|
||||
line-height: 18px;
|
||||
resize: none;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
@@ -271,24 +314,31 @@ a.poll-detail-link, a.poll-change-vote-link {
|
||||
padding: 10px 16px;
|
||||
}
|
||||
|
||||
#polls-panel {
|
||||
height: calc(100% - 102px);
|
||||
}
|
||||
|
||||
.poll-container {
|
||||
box-sizing: border-box;
|
||||
flex: 1;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
height: calc(100% - 88px);
|
||||
line-height: 20px;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
|
||||
& > * + *:not(.ignore-child) {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
@media (max-width: 580px) {
|
||||
height: calc(100% - 102px);
|
||||
}
|
||||
}
|
||||
|
||||
.poll-create-header {
|
||||
color: #fff;
|
||||
font-size: 20px;
|
||||
line-height: 28px;
|
||||
margin: 20px 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
@@ -297,28 +347,45 @@ a.poll-detail-link, a.poll-change-vote-link {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.poll-create-footer {
|
||||
background-color: #141414;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
width: calc(100% - 32px);
|
||||
}
|
||||
|
||||
.poll-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding: 8px 16px;
|
||||
height: 40px;
|
||||
align-items: stretch;
|
||||
|
||||
& > *:not(:last-child) {
|
||||
margin-right: 16px;
|
||||
}
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 16px 16px 16px;
|
||||
}
|
||||
|
||||
.poll-primary-button {
|
||||
align-items: center;
|
||||
.poll-answer-footer {
|
||||
padding: 8px 0 0 0;
|
||||
}
|
||||
|
||||
.poll-button {
|
||||
align-items: center;
|
||||
border: 0;
|
||||
border-radius: 6px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
min-height: 40px;
|
||||
width: 100%;
|
||||
|
||||
&:disabled {
|
||||
cursor: initial;
|
||||
}
|
||||
|
||||
@media (max-width: 580px) {
|
||||
min-height: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
.poll-button-primary {
|
||||
background-color: #0056E0;
|
||||
border: 0;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
font-weight: unset;
|
||||
justify-content: center;
|
||||
font-size: 15px;
|
||||
flex: 1;
|
||||
|
||||
&:hover {
|
||||
background-color: #246FE5;
|
||||
@@ -337,23 +404,10 @@ a.poll-detail-link, a.poll-change-vote-link {
|
||||
background-color: #00225A;
|
||||
color: #858585;
|
||||
}
|
||||
|
||||
& > *:not(:last-child) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.poll-secondary-button {
|
||||
align-items: center;
|
||||
.poll-button-secondary {
|
||||
background-color: #3D3D3D;
|
||||
border: 0;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
font-weight: unset;
|
||||
justify-content: center;
|
||||
font-size: 15px;
|
||||
height: 40px;
|
||||
width: 100%;
|
||||
|
||||
&:hover {
|
||||
background-color: #525252;
|
||||
@@ -372,79 +426,19 @@ a.poll-detail-link, a.poll-change-vote-link {
|
||||
background-color: #141414;
|
||||
color: #858585;
|
||||
}
|
||||
|
||||
& > *:not(:last-child) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.poll-small-primary-button {
|
||||
align-items: center;
|
||||
background-color: #0056E0;
|
||||
border: 0;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
font-weight: unset;
|
||||
justify-content: center;
|
||||
font-size: 15px;
|
||||
height: 40px;
|
||||
width: 50%;
|
||||
|
||||
&:hover {
|
||||
background-color: #246FE5;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: #0045B3;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
background-color: #0045B3;
|
||||
border: 3px solid #99BBF3;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
background-color: #00225A;
|
||||
color: #858585;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
& > *:not(:last-child) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
.poll-button-short {
|
||||
max-width: 132px;
|
||||
}
|
||||
|
||||
.poll-small-secondary-button {
|
||||
align-items: center;
|
||||
background-color: #3D3D3D;
|
||||
border: 0;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
font-weight: unset;
|
||||
justify-content: center;
|
||||
font-size: 15px;
|
||||
height: 40px;
|
||||
width: 50%;
|
||||
|
||||
&:hover {
|
||||
background-color: #525252;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: #292929;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
background-color: #292929;
|
||||
border: 3px solid #858585;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
background-color: #141414;
|
||||
color: #858585;
|
||||
}
|
||||
|
||||
& > *:not(:last-child) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
.poll-button-shortest {
|
||||
max-width: 117px;
|
||||
}
|
||||
|
||||
.poll-button-short,
|
||||
.poll-button-shortest {
|
||||
@media (max-width: 580px) {
|
||||
min-width: 49%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,3 +46,7 @@
|
||||
padding: 16px 24px;
|
||||
z-index: $popoverZ;
|
||||
}
|
||||
|
||||
.padded-content {
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
.popupmenu {
|
||||
background-color: $menuBG;
|
||||
border-radius: 3px;
|
||||
list-style-type: none;
|
||||
min-width: 150px;
|
||||
text-align: left;
|
||||
padding: 0px;
|
||||
@@ -38,6 +39,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
&__list {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&__text {
|
||||
display: inline-block;
|
||||
margin-left: 8px;
|
||||
|
||||
@@ -77,14 +77,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.toolbox-button {
|
||||
color: $toolbarButtonColor;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
line-height: $newToolbarSize;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.toolbar-button-with-badge {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
@@ -115,86 +107,6 @@
|
||||
padding-bottom: env(safe-area-inset-bottom, 0);
|
||||
}
|
||||
|
||||
.toolbox-content-items {
|
||||
background: $newToolbarBackgroundColor;
|
||||
border-radius: 6px;
|
||||
margin: 0 auto;
|
||||
padding: 6px;
|
||||
text-align: center;
|
||||
pointer-events: all;
|
||||
box-shadow: 0px 2px 8px 4px rgba(0, 0, 0, 0.25), 0px 0px 0px 1px rgba(0, 0, 0, 0.15);
|
||||
|
||||
>div {
|
||||
margin-left: 8px;
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.overflow-menu {
|
||||
font-size: 14px;
|
||||
list-style-type: none;
|
||||
padding: 8px 0;
|
||||
background-color: $menuBG;
|
||||
|
||||
.profile-text {
|
||||
max-width: 150px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.overflow-menu-item {
|
||||
align-items: center;
|
||||
color: $overflowMenuItemColor;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
height: 40px;
|
||||
line-height: 24px;
|
||||
padding: 8px 16px;
|
||||
box-sizing: border-box;
|
||||
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
&:hover {
|
||||
background: $overflowMenuItemBackground;
|
||||
}
|
||||
}
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&.unclickable {
|
||||
cursor: default;
|
||||
}
|
||||
&.disabled {
|
||||
cursor: initial;
|
||||
color: #929292;
|
||||
|
||||
&:hover {
|
||||
background: none;
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: #929292;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
&.unclickable:hover {
|
||||
background: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.beta-tag {
|
||||
background: #36383C;
|
||||
border-radius: 3px;
|
||||
@@ -205,73 +117,12 @@
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.overflow-menu-item-icon {
|
||||
margin-right: 16px;
|
||||
|
||||
i {
|
||||
display: inline;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
i:hover {
|
||||
background-color: initial;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 24px;
|
||||
max-height: 24px;
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: #fff;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.overflow-menu-hr {
|
||||
border-top: 1px solid #4C4D50;
|
||||
border-bottom: 0;
|
||||
margin: 8px 0;
|
||||
}
|
||||
|
||||
.toolbox-icon {
|
||||
display: flex;
|
||||
border-radius: 3px;
|
||||
flex-direction: column;
|
||||
font-size: 24px;
|
||||
height: $newToolbarSize;
|
||||
justify-content: center;
|
||||
width: $newToolbarSize;
|
||||
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
&:hover {
|
||||
background: $newToolbarButtonHoverColor;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 320px) {
|
||||
height: 36px;
|
||||
width: 36px;
|
||||
}
|
||||
|
||||
&.toggled {
|
||||
background: $newToolbarButtonToggleColor;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
cursor: initial !important;
|
||||
background-color: #36383c !important;
|
||||
|
||||
svg {
|
||||
fill: #929292 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.hangup-button {
|
||||
background-color: $hangupColor;
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ $zindex10: 10;
|
||||
$reloadZ: 20;
|
||||
$poweredByZ: 100;
|
||||
$ringingZ: 300;
|
||||
$sideToolbarContainerZ: 200;
|
||||
$sideToolbarContainerZ: 300;
|
||||
$toolbarZ: 250;
|
||||
$drawerZ: 351;
|
||||
$tooltipsZ: 401;
|
||||
@@ -269,4 +269,4 @@ $verySmallScreen: 500px;
|
||||
* Prejoin / premeeting screen
|
||||
*/
|
||||
|
||||
$prejoinDefaultContentWidth: 336px;
|
||||
$prejoinDefaultContentWidth: 336px;
|
||||
|
||||
@@ -87,7 +87,6 @@
|
||||
|
||||
&__toolbar {
|
||||
bottom: 0;
|
||||
height: $thumbnailToolbarHeight;
|
||||
padding: 0 5px 0 5px;
|
||||
}
|
||||
|
||||
@@ -190,6 +189,20 @@
|
||||
z-index: $zindex2;
|
||||
}
|
||||
|
||||
&__participant-name {
|
||||
color: #fff;
|
||||
background-color: rgba(0,0,0,.4);
|
||||
padding: 3px 7px;
|
||||
border-radius: 3px;
|
||||
max-width: calc(100% - 32px);
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
height: 16px;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@media (min-width: 581px) {
|
||||
&.shift-right {
|
||||
&#largeVideoContainer {
|
||||
@@ -281,21 +294,8 @@
|
||||
#alwaysOnTop .displayname,
|
||||
.videocontainer .displayname,
|
||||
.videocontainer .editdisplayname {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 10%;
|
||||
width: 80%;
|
||||
top: 50%;
|
||||
@include transform(translateY(-40%));
|
||||
color: $participantNameColor;
|
||||
text-align: center;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 12px;
|
||||
font-weight: 100;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
line-height: $thumbnailToolbarHeight;
|
||||
z-index: $zindex2;
|
||||
color: $participantNameColor;
|
||||
}
|
||||
|
||||
#alwaysOnTop .displayname {
|
||||
@@ -415,6 +415,11 @@
|
||||
&.status-other {
|
||||
background: $connectionIndicatorBg;
|
||||
}
|
||||
|
||||
&.status-disabled {
|
||||
background: transparent;
|
||||
border: none
|
||||
}
|
||||
}
|
||||
|
||||
.local-video-menu-trigger,
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
.copy-button {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 8px 8px 8px 16px;
|
||||
margin-top: 5px;
|
||||
width: calc(100% - 24px);
|
||||
height: 24px;
|
||||
|
||||
background: #0376DA;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background: #278ADF;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
&-content {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
max-width: 292px;
|
||||
margin-right: 16px;
|
||||
|
||||
&.selected {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
&.clicked {
|
||||
background: #31B76A;
|
||||
}
|
||||
|
||||
& > div > svg > path {
|
||||
fill: #fff;
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,6 @@ $flagsImagePath: "../images/";
|
||||
@import 'inlay';
|
||||
@import 'reload_overlay/reload_overlay';
|
||||
@import 'mini_toolbox';
|
||||
@import 'buttons/copy.scss';
|
||||
@import 'modals/desktop-picker/desktop-picker';
|
||||
@import 'modals/device-selection/device-selection';
|
||||
@import 'modals/dialog';
|
||||
@@ -44,7 +43,6 @@ $flagsImagePath: "../images/";
|
||||
@import 'modals/screen-share/share-audio';
|
||||
@import 'modals/screen-share/share-screen-warning';
|
||||
@import 'modals/speaker_stats/speaker_stats';
|
||||
@import 'modals/video-quality/video-quality';
|
||||
@import 'modals/virtual-background/virtual-background';
|
||||
@import 'modals/local-recording/local-recording';
|
||||
@import 'videolayout_default';
|
||||
@@ -78,7 +76,6 @@ $flagsImagePath: "../images/";
|
||||
@import 'filmstrip/tile_view_overrides';
|
||||
@import 'filmstrip/vertical_filmstrip';
|
||||
@import 'filmstrip/vertical_filmstrip_overrides';
|
||||
@import 'labels';
|
||||
@import 'unsupported-browser/main';
|
||||
@import 'modals/invite/add-people';
|
||||
@import 'deep-linking/main';
|
||||
|
||||
@@ -122,9 +122,6 @@
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
}
|
||||
.modal-dialog-footer {
|
||||
font-size: $modalButtonFontSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Styling inline dialog errors.
|
||||
|
||||
@@ -27,7 +27,10 @@
|
||||
|
||||
.speaker-stats-item__status,
|
||||
.speaker-stats-item__name,
|
||||
.speaker-stats-item__time {
|
||||
.speaker-stats-item__time,
|
||||
.speaker-stats-item__name_expressions_on,
|
||||
.speaker-stats-item__time_expressions_on,
|
||||
.speaker-stats-item__expression {
|
||||
display: inline-block;
|
||||
margin: 5px 0;
|
||||
vertical-align: middle;
|
||||
@@ -41,9 +44,35 @@
|
||||
.speaker-stats-item__time {
|
||||
width: 55%;
|
||||
}
|
||||
.speaker-stats-item__name_expressions_on {
|
||||
width: 20%;
|
||||
}
|
||||
.speaker-stats-item__time_expressions_on {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.speaker-stats-item__expression {
|
||||
width: 7%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media(max-width: 750px) {
|
||||
.speaker-stats-item__name_expressions_on {
|
||||
width: 25%;
|
||||
}
|
||||
.speaker-stats-item__time_expressions_on {
|
||||
width: 30%;
|
||||
}
|
||||
.speaker-stats-item__expression {
|
||||
width: 10%;
|
||||
}
|
||||
}
|
||||
|
||||
.speaker-stats-item__name,
|
||||
.speaker-stats-item__time {
|
||||
.speaker-stats-item__time,
|
||||
.speaker-stats-item__name_expressions_on,
|
||||
.speaker-stats-item__time_expressions_on,
|
||||
.speaker-stats-item__expression {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
.video-quality-dialog {
|
||||
.video-quality-dialog-title {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.video-quality-dialog-contents {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px;
|
||||
min-width: 250px;
|
||||
|
||||
.video-quality-dialog-slider-container {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.video-quality-dialog-slider {
|
||||
width: calc(100% - 5px);
|
||||
|
||||
@mixin sliderTrackStyles() {
|
||||
height: 15px;
|
||||
border-radius: 10px;
|
||||
background: rgb(14, 22, 36);
|
||||
}
|
||||
|
||||
&::-ms-track {
|
||||
@include sliderTrackStyles();
|
||||
}
|
||||
|
||||
&::-moz-range-track {
|
||||
@include sliderTrackStyles();
|
||||
}
|
||||
|
||||
&::-webkit-slider-runnable-track {
|
||||
@include sliderTrackStyles();
|
||||
}
|
||||
|
||||
@mixin sliderThumbStyles() {
|
||||
top: 50%;
|
||||
border: none;
|
||||
position: relative;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
&::-ms-thumb {
|
||||
@include sliderThumbStyles();
|
||||
}
|
||||
|
||||
&::-moz-range-thumb {
|
||||
@include sliderThumbStyles();
|
||||
|
||||
}
|
||||
|
||||
&::-webkit-slider-thumb {
|
||||
@include sliderThumbStyles();
|
||||
}
|
||||
}
|
||||
|
||||
.video-quality-dialog-labels {
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
margin-top: 5px;
|
||||
position: relative;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.video-quality-dialog-label-container {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
transform: translate(-50%, 0%);
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
border-radius: 50%;
|
||||
left: 0;
|
||||
height: 6px;
|
||||
margin: 0 auto;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -16px;
|
||||
width: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-quality-dialog-label-container.active {
|
||||
color: $videoQualityActive;
|
||||
font-weight: bold;
|
||||
|
||||
&::before {
|
||||
background: $videoQualityActive;
|
||||
height: 12px;
|
||||
top: -19px;
|
||||
width: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-quality-dialog-label-container:first-child {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.video-quality-dialog-label {
|
||||
display: table-caption;
|
||||
word-spacing: unset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.modal-dialog-form {
|
||||
.video-quality-dialog-title {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,6 @@
|
||||
.prejoin-preview {
|
||||
&-dropdown-btns {
|
||||
padding: 8px 0;
|
||||
width: calc(100% - 48px);
|
||||
}
|
||||
|
||||
&-dropdown-btn {
|
||||
@@ -59,8 +58,6 @@
|
||||
background: #fff;
|
||||
padding: 0;
|
||||
position: absolute !important;
|
||||
top: 48px !important;
|
||||
transform: none !important;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +138,6 @@
|
||||
|
||||
.toolbox-content-items {
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
@@ -171,6 +170,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
// mobile phone landscape
|
||||
@media (max-height: 420px) {
|
||||
flex-direction: row;
|
||||
|
||||
div.content {
|
||||
padding: 16px 16px 0 16px;
|
||||
}
|
||||
|
||||
.con-status {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 400px) {
|
||||
.content {
|
||||
padding: 16px;
|
||||
|
||||
2
debian/jitsi-meet-prosody.postinst
vendored
2
debian/jitsi-meet-prosody.postinst
vendored
@@ -130,6 +130,8 @@ case "$1" in
|
||||
echo -e " storage = \"memory\"" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " modules_enabled = { \"ping\"; }" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " admins = { \"$JICOFO_AUTH_USER@$JICOFO_AUTH_DOMAIN\", \"jvb@$JICOFO_AUTH_DOMAIN\" }" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " muc_room_locking = false" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " muc_room_default_public_jids = true" >> $PROSODY_HOST_CONFIG
|
||||
fi
|
||||
|
||||
# Convert the old focus component config to the new one.
|
||||
|
||||
2
debian/jitsi-meet-tokens.postinst
vendored
2
debian/jitsi-meet-tokens.postinst
vendored
@@ -61,7 +61,7 @@ case "$1" in
|
||||
sed -i '/^\s*--\s*"token_verification"/ s/--\s*//' $PROSODY_HOST_CONFIG
|
||||
|
||||
# Install luajwt
|
||||
if ! luarocks install luajwtjitsi; then
|
||||
if ! luarocks install luajwtjitsi 2.0-0; then
|
||||
echo "Failed to install luajwtjitsi - try installing it manually"
|
||||
fi
|
||||
|
||||
|
||||
@@ -52,10 +52,12 @@ VirtualHost "jitmeet.example.com"
|
||||
"external_services";
|
||||
"conference_duration";
|
||||
"muc_lobby_rooms";
|
||||
"muc_breakout_rooms";
|
||||
"av_moderation";
|
||||
}
|
||||
c2s_require_encryption = false
|
||||
lobby_muc = "lobby.jitmeet.example.com"
|
||||
breakout_rooms_muc = "breakout.jitmeet.example.com"
|
||||
main_muc = "conference.jitmeet.example.com"
|
||||
-- muc_lobby_whitelist = { "recorder.jitmeet.example.com" } -- Here we can whitelist jibri to enter lobby enabled rooms
|
||||
|
||||
@@ -67,6 +69,19 @@ Component "conference.jitmeet.example.com" "muc"
|
||||
"muc_domain_mapper";
|
||||
"polls";
|
||||
--"token_verification";
|
||||
"muc_rate_limit";
|
||||
}
|
||||
admins = { "focusUser@auth.jitmeet.example.com" }
|
||||
muc_room_locking = false
|
||||
muc_room_default_public_jids = true
|
||||
|
||||
Component "breakout.jitmeet.example.com" "muc"
|
||||
restrict_room_creation = true
|
||||
storage = "memory"
|
||||
modules_enabled = {
|
||||
"muc_meeting_id";
|
||||
"muc_domain_mapper";
|
||||
--"token_verification";
|
||||
}
|
||||
admins = { "focusUser@auth.jitmeet.example.com" }
|
||||
muc_room_locking = false
|
||||
|
||||
102
flow-typed/npm/uuid_v3.x.x.js
vendored
102
flow-typed/npm/uuid_v3.x.x.js
vendored
@@ -1,102 +0,0 @@
|
||||
// flow-typed signature: 609c1622fc97de96d59519934aa5ce87
|
||||
// flow-typed version: c6154227d1/uuid_v3.x.x/flow_>=v0.32.x <=v0.103.x
|
||||
|
||||
declare module "uuid" {
|
||||
declare class uuid {
|
||||
static (
|
||||
options?: {|
|
||||
random?: number[],
|
||||
rng?: () => number[] | Buffer
|
||||
|},
|
||||
buffer?: number[] | Buffer,
|
||||
offset?: number
|
||||
): string,
|
||||
|
||||
static v1(
|
||||
options?: {|
|
||||
node?: number[],
|
||||
clockseq?: number,
|
||||
msecs?: number | Date,
|
||||
nsecs?: number
|
||||
|},
|
||||
buffer?: number[] | Buffer,
|
||||
offset?: number
|
||||
): string,
|
||||
|
||||
static v4(
|
||||
options?: {|
|
||||
random?: number[],
|
||||
rng?: () => number[] | Buffer
|
||||
|},
|
||||
buffer?: number[] | Buffer,
|
||||
offset?: number
|
||||
): string
|
||||
}
|
||||
declare module.exports: Class<uuid>;
|
||||
}
|
||||
|
||||
declare module "uuid/v1" {
|
||||
declare class v1 {
|
||||
static (
|
||||
options?: {|
|
||||
node?: number[],
|
||||
clockseq?: number,
|
||||
msecs?: number | Date,
|
||||
nsecs?: number
|
||||
|},
|
||||
buffer?: number[] | Buffer,
|
||||
offset?: number
|
||||
): string
|
||||
}
|
||||
|
||||
declare module.exports: Class<v1>;
|
||||
}
|
||||
|
||||
declare module "uuid/v3" {
|
||||
declare class v3 {
|
||||
static (
|
||||
name?: string | number[],
|
||||
namespace?: string | number[],
|
||||
buffer?: number[] | Buffer,
|
||||
offset?: number
|
||||
): string,
|
||||
|
||||
static name: string,
|
||||
static DNS: string,
|
||||
static URL: string
|
||||
}
|
||||
|
||||
declare module.exports: Class<v3>;
|
||||
}
|
||||
|
||||
declare module "uuid/v4" {
|
||||
declare class v4 {
|
||||
static (
|
||||
options?: {|
|
||||
random?: number[],
|
||||
rng?: () => number[] | Buffer
|
||||
|},
|
||||
buffer?: number[] | Buffer,
|
||||
offset?: number
|
||||
): string
|
||||
}
|
||||
|
||||
declare module.exports: Class<v4>;
|
||||
}
|
||||
|
||||
declare module "uuid/v5" {
|
||||
declare class v5 {
|
||||
static (
|
||||
name?: string | number[],
|
||||
namespace?: string | number[],
|
||||
buffer?: number[] | Buffer,
|
||||
offset?: number
|
||||
): string,
|
||||
|
||||
static name: string,
|
||||
static DNS: string,
|
||||
static URL: string
|
||||
}
|
||||
|
||||
declare module.exports: Class<v5>;
|
||||
}
|
||||
71
flow-typed/npm/uuid_v8.x.x.js
vendored
Normal file
71
flow-typed/npm/uuid_v8.x.x.js
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
declare module 'uuid' {
|
||||
// v1 (Timestamp)
|
||||
declare type V1Options = {|
|
||||
node?: $ReadOnlyArray<number>,
|
||||
clockseq?: number,
|
||||
msecs?: number,
|
||||
nsecs?: number,
|
||||
random?: $ReadOnlyArray<number>,
|
||||
rng?: () => $ReadOnlyArray<number>,
|
||||
|};
|
||||
|
||||
declare export function v1(options?: V1Options): string;
|
||||
|
||||
declare export function v1(
|
||||
options: V1Options | null,
|
||||
buffer: Array<number>,
|
||||
offset?: number
|
||||
): Array<number>;
|
||||
|
||||
// v3 (Namespace)
|
||||
declare function v3Impl(
|
||||
name: string | $ReadOnlyArray<number>,
|
||||
namespace: string | $ReadOnlyArray<number>
|
||||
): string;
|
||||
|
||||
declare function v3Impl(
|
||||
name: string | $ReadOnlyArray<number>,
|
||||
namespace: string | $ReadOnlyArray<number>,
|
||||
buffer: Array<number>,
|
||||
offset?: number
|
||||
): Array<number>;
|
||||
|
||||
declare export var v3: {|
|
||||
[[call]]: typeof v3Impl,
|
||||
DNS: string,
|
||||
URL: string,
|
||||
|};
|
||||
|
||||
// v4 (Random)
|
||||
declare type V4Options = {|
|
||||
random?: $ReadOnlyArray<number>,
|
||||
rng?: () => $ReadOnlyArray<number>,
|
||||
|};
|
||||
|
||||
declare export function v4(options?: V4Options): string;
|
||||
|
||||
declare export function v4(
|
||||
options: V4Options | null,
|
||||
buffer: Array<number>,
|
||||
offset?: number
|
||||
): Array<number>;
|
||||
|
||||
// v5 (Namespace)
|
||||
declare function v5Impl(
|
||||
name: string | $ReadOnlyArray<number>,
|
||||
namespace: string | $ReadOnlyArray<number>
|
||||
): string;
|
||||
|
||||
declare function v5Impl(
|
||||
name: string | $ReadOnlyArray<number>,
|
||||
namespace: string | $ReadOnlyArray<number>,
|
||||
buffer: Array<number>,
|
||||
offset?: number
|
||||
): Array<number>;
|
||||
|
||||
declare export var v5: {|
|
||||
[[call]]: typeof v5Impl,
|
||||
DNS: string,
|
||||
URL: string,
|
||||
|};
|
||||
}
|
||||
@@ -225,13 +225,6 @@ var interfaceConfig = {
|
||||
*/
|
||||
// ANDROID_APP_PACKAGE: 'org.jitsi.meet',
|
||||
|
||||
/**
|
||||
* Override the behavior of some notifications to remain displayed until
|
||||
* explicitly dismissed through a user action. The value is how long, in
|
||||
* milliseconds, those notifications should remain displayed.
|
||||
*/
|
||||
// ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT: 15000,
|
||||
|
||||
// List of undocumented settings
|
||||
/**
|
||||
INDICATOR_FONT_SIZES
|
||||
|
||||
@@ -57,6 +57,7 @@ target 'JitsiMeetSDK' do
|
||||
pod 'amplitude-react-native', :path => '../node_modules/@amplitude/react-native'
|
||||
pod 'react-native-background-timer', :path => '../node_modules/react-native-background-timer'
|
||||
pod 'react-native-calendar-events', :path => '../node_modules/react-native-calendar-events'
|
||||
pod 'react-native-get-random-values', :path => '../node_modules/react-native-get-random-values'
|
||||
pod 'react-native-keep-awake', :path => '../node_modules/react-native-keep-awake'
|
||||
pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
|
||||
pod 'react-native-performance', :path => '../node_modules/react-native-performance/ios'
|
||||
@@ -72,6 +73,11 @@ target 'JitsiMeetSDK' do
|
||||
pod 'RNSVG', :path => '../node_modules/react-native-svg'
|
||||
pod 'RNWatch', :path => '../node_modules/react-native-watch-connectivity'
|
||||
pod 'RNDefaultPreference', :path => '../node_modules/react-native-default-preference'
|
||||
pod 'RNGestureHandler', :path => '../node_modules/react-native-gesture-handler'
|
||||
pod 'RNReanimated', :path => '../node_modules/react-native-reanimated'
|
||||
pod 'RNScreens', :path => '../node_modules/react-native-screens'
|
||||
pod 'react-native-safe-area-context', :path => '../node_modules/react-native-safe-area-context'
|
||||
pod 'RNCMaskedView', :path => '../node_modules/@react-native-masked-view/masked-view'
|
||||
|
||||
# Native pod dependencies
|
||||
#
|
||||
|
||||
@@ -109,7 +109,7 @@ PODS:
|
||||
- GTMAppAuth (1.2.2):
|
||||
- AppAuth/Core (~> 1.4)
|
||||
- GTMSessionFetcher/Core (~> 1.5)
|
||||
- GTMSessionFetcher/Core (1.6.1)
|
||||
- GTMSessionFetcher/Core (1.7.0)
|
||||
- nanopb (1.30906.0):
|
||||
- nanopb/decode (= 1.30906.0)
|
||||
- nanopb/encode (= 1.30906.0)
|
||||
@@ -284,12 +284,16 @@ PODS:
|
||||
- React
|
||||
- react-native-calendar-events (2.0.0):
|
||||
- React
|
||||
- react-native-get-random-values (1.7.0):
|
||||
- React-Core
|
||||
- react-native-keep-awake (4.0.0):
|
||||
- React
|
||||
- react-native-netinfo (4.1.5):
|
||||
- React
|
||||
- react-native-performance (2.0.0):
|
||||
- React-Core
|
||||
- react-native-safe-area-context (3.3.2):
|
||||
- React-Core
|
||||
- react-native-slider (3.0.3):
|
||||
- React
|
||||
- react-native-splash-screen (3.2.0):
|
||||
@@ -299,7 +303,7 @@ PODS:
|
||||
- react-native-video/Video (= 5.1.1)
|
||||
- react-native-video/Video (5.1.1):
|
||||
- React-Core
|
||||
- react-native-webrtc (1.92.2):
|
||||
- react-native-webrtc (1.94.0):
|
||||
- React-Core
|
||||
- react-native-webview (11.0.2):
|
||||
- React-Core
|
||||
@@ -359,13 +363,21 @@ PODS:
|
||||
- ReactCommon/turbomodule/core (= 0.61.5-jitsi.2)
|
||||
- RNCAsyncStorage (1.15.5):
|
||||
- React-Core
|
||||
- RNCMaskedView (0.2.6):
|
||||
- React-Core
|
||||
- RNDefaultPreference (1.4.2):
|
||||
- React
|
||||
- RNDeviceInfo (8.0.0):
|
||||
- React-Core
|
||||
- RNGestureHandler (1.10.3):
|
||||
- React-Core
|
||||
- RNGoogleSignin (3.0.1):
|
||||
- GoogleSignIn (~> 5.0.0)
|
||||
- React
|
||||
- RNReanimated (1.13.3):
|
||||
- React-Core
|
||||
- RNScreens (2.18.1):
|
||||
- React-Core
|
||||
- RNSound (0.11.0):
|
||||
- React
|
||||
- RNSound/Core (= 0.11.0)
|
||||
@@ -402,9 +414,11 @@ DEPENDENCIES:
|
||||
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
|
||||
- react-native-background-timer (from `../node_modules/react-native-background-timer`)
|
||||
- react-native-calendar-events (from `../node_modules/react-native-calendar-events`)
|
||||
- react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
|
||||
- react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
|
||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||
- react-native-performance (from `../node_modules/react-native-performance/ios`)
|
||||
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
|
||||
- "react-native-slider (from `../node_modules/@react-native-community/slider`)"
|
||||
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
|
||||
- react-native-video (from `../node_modules/react-native-video/react-native-video.podspec`)
|
||||
@@ -421,9 +435,13 @@ DEPENDENCIES:
|
||||
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
||||
- ReactCommon/turbomodule (from `../node_modules/react-native/ReactCommon`)
|
||||
- "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
|
||||
- "RNCMaskedView (from `../node_modules/@react-native-masked-view/masked-view`)"
|
||||
- RNDefaultPreference (from `../node_modules/react-native-default-preference`)
|
||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
|
||||
- "RNGoogleSignin (from `../node_modules/@react-native-community/google-signin`)"
|
||||
- RNReanimated (from `../node_modules/react-native-reanimated`)
|
||||
- RNScreens (from `../node_modules/react-native-screens`)
|
||||
- RNSound (from `../node_modules/react-native-sound`)
|
||||
- RNSVG (from `../node_modules/react-native-svg`)
|
||||
- RNWatch (from `../node_modules/react-native-watch-connectivity`)
|
||||
@@ -487,12 +505,16 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native-background-timer"
|
||||
react-native-calendar-events:
|
||||
:path: "../node_modules/react-native-calendar-events"
|
||||
react-native-get-random-values:
|
||||
:path: "../node_modules/react-native-get-random-values"
|
||||
react-native-keep-awake:
|
||||
:path: "../node_modules/react-native-keep-awake"
|
||||
react-native-netinfo:
|
||||
:path: "../node_modules/@react-native-community/netinfo"
|
||||
react-native-performance:
|
||||
:path: "../node_modules/react-native-performance/ios"
|
||||
react-native-safe-area-context:
|
||||
:path: "../node_modules/react-native-safe-area-context"
|
||||
react-native-slider:
|
||||
:path: "../node_modules/@react-native-community/slider"
|
||||
react-native-splash-screen:
|
||||
@@ -525,12 +547,20 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
RNCAsyncStorage:
|
||||
:path: "../node_modules/@react-native-async-storage/async-storage"
|
||||
RNCMaskedView:
|
||||
:path: "../node_modules/@react-native-masked-view/masked-view"
|
||||
RNDefaultPreference:
|
||||
:path: "../node_modules/react-native-default-preference"
|
||||
RNDeviceInfo:
|
||||
:path: "../node_modules/react-native-device-info"
|
||||
RNGestureHandler:
|
||||
:path: "../node_modules/react-native-gesture-handler"
|
||||
RNGoogleSignin:
|
||||
:path: "../node_modules/@react-native-community/google-signin"
|
||||
RNReanimated:
|
||||
:path: "../node_modules/react-native-reanimated"
|
||||
RNScreens:
|
||||
:path: "../node_modules/react-native-screens"
|
||||
RNSound:
|
||||
:path: "../node_modules/react-native-sound"
|
||||
RNSVG:
|
||||
@@ -542,7 +572,7 @@ EXTERNAL SOURCES:
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Amplitude: 263118b9e691e73a1c864b05bb08a3aff3636d16
|
||||
amplitude-react-native: 833a4bd7f656f826bda1de01a7b8593b58842209
|
||||
amplitude-react-native: 9369759dc6d01590aeb6261f714d53beaebc7e6f
|
||||
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
|
||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||
CocoaLumberjack: 2f44e60eb91c176d471fdba43b9e3eae6a721947
|
||||
@@ -563,7 +593,7 @@ SPEC CHECKSUMS:
|
||||
GoogleSignIn: 7137d297ddc022a7e0aa4619c86d72c909fa7213
|
||||
GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3
|
||||
GTMAppAuth: ad5c2b70b9a8689e1a04033c9369c4915bfcbe89
|
||||
GTMSessionFetcher: 36689134877faeb055b27dfa4ccc9ceaa42e029e
|
||||
GTMSessionFetcher: 43748f93435c2aa068b1cbe39655aaf600652e91
|
||||
nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc
|
||||
ObjectiveDropboxOfficial: b4765572e334d6fc6214b43a7595510324bbbbaa
|
||||
PromisesObjC: 3113f7f76903778cf4a0586bd1ab89329a0b7b97
|
||||
@@ -576,16 +606,18 @@ SPEC CHECKSUMS:
|
||||
React-jsi: ddb471a56185e4007835a1bba0882ecb5ce3dc0e
|
||||
React-jsiexecutor: 67106691c60030ec888d7cbbc4f48a3168e27a02
|
||||
React-jsinspector: 92ceee6c66dc19886289b52436ade7e020b89602
|
||||
react-native-background-timer: e0384ea2fa5a98f67f84f9c4dc274260ddd674ed
|
||||
react-native-calendar-events: 1442fad71a00388f933cfa25512588fec300fcf8
|
||||
react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
|
||||
react-native-netinfo: 8d8db463bcc5db66a8ac5c48a7d86beb3b92f61a
|
||||
react-native-performance: 8edfa2bbc9a2af4a02f01d342118e413a95145e0
|
||||
react-native-slider: b733e17fdd31186707146debf1f04b5d94aa1a93
|
||||
react-native-background-timer: 029c606b3fd6dd476b153e177c518b6ade4c169f
|
||||
react-native-calendar-events: 82dc6c915653a1a8a266e43fdbbfdb3b1022ca99
|
||||
react-native-get-random-values: 237bffb1c7e05fb142092681531810a29ba53015
|
||||
react-native-keep-awake: afad8a51dfef9fe9655a6344771be32c8596d774
|
||||
react-native-netinfo: 0e563248a4b9a99c33ec29bd03c2d50767db22a6
|
||||
react-native-performance: 6bd6cfac80594775fb782405fceaaf206becf53b
|
||||
react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
|
||||
react-native-slider: e99fc201cefe81270fc9d81714a7a0f5e566b168
|
||||
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
|
||||
react-native-video: 1574074179ecaf6a9dd067116c8f31bf9fec15c8
|
||||
react-native-webrtc: 41526e4060dac373c18676f866962d4180ee47b9
|
||||
react-native-webview: b2542d6fd424bcc3e3b2ec5f854f0abb4ec86c87
|
||||
react-native-video: 0bb76b6d6b77da3009611586c7dbf817b947f30e
|
||||
react-native-webrtc: e22646adc86f2009328b21eb0e40ca404c77258c
|
||||
react-native-webview: dfd7202ff115c44d3ea401c2f36122fb3ac79f07
|
||||
React-RCTActionSheet: bcbc311dc3b47bc8efb2737ff0940239a45789a9
|
||||
React-RCTAnimation: 65f61080ce632f6dea23d52e354ffac9948396c6
|
||||
React-RCTBlob: 70d88f7b68b5c44953cdb286ac2e36a7a509a97e
|
||||
@@ -596,15 +628,19 @@ SPEC CHECKSUMS:
|
||||
React-RCTText: 4f1b99f228278d2a5e9008eced8dc9c974c4a270
|
||||
React-RCTVibration: c1041024893fdfdb8371e7c720c437751b711676
|
||||
ReactCommon: 18014e1d98dbeb9141e935cfe35fc93bd511ffb6
|
||||
RNCAsyncStorage: 8324611026e8dc3706f829953aa6e3899f581589
|
||||
RNDefaultPreference: 56a405ce61033ac77b95004dccd7ac54c2eb50d1
|
||||
RNDeviceInfo: 72ded653ce636b3f03571e90bed99309a714944e
|
||||
RNCAsyncStorage: 56a3355a10b5d660c48c6e37325ac85ebfd09885
|
||||
RNCMaskedView: c298b644a10c0c142055b3ae24d83879ecb13ccd
|
||||
RNDefaultPreference: 1f8133ec0bc0f9453cdada578564ba1ef551fb44
|
||||
RNDeviceInfo: 87d2d175c760f6bcf58acd036f887e8b2392802c
|
||||
RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
|
||||
RNGoogleSignin: 39336070b35fc4cea6a98cf111e00480317be0ae
|
||||
RNSound: c980916b596cc15c8dcd2f6ecd3b13c4881dbe20
|
||||
RNReanimated: 514a11da3a2bcc6c3dfd9de32b38e2b9bf101926
|
||||
RNScreens: f7ad633b2e0190b77b6a7aab7f914fad6f198d8d
|
||||
RNSound: da030221e6ac7e8290c6b43f2b5f2133a8e225b0
|
||||
RNSVG: ce9d996113475209013317e48b05c21ee988d42e
|
||||
RNWatch: a5320c959c75e72845c07985f3e935e58998f1d3
|
||||
Yoga: 96b469c5e81ff51b917b92e8c3390642d4ded30c
|
||||
|
||||
PODFILE CHECKSUM: 3cc305fd6ee83fff506c10c4805471fa72b61c9a
|
||||
PODFILE CHECKSUM: 836d4804218c0608e1326471ec83fe31cfa9c86d
|
||||
|
||||
COCOAPODS: 1.10.1
|
||||
COCOAPODS: 1.11.2
|
||||
|
||||
@@ -34,10 +34,10 @@
|
||||
jitsiMeet.universalLinkDomains = @[@"meet.jit.si", @"alpha.jitsi.net", @"beta.meet.jit.si"];
|
||||
|
||||
jitsiMeet.defaultConferenceOptions = [JitsiMeetConferenceOptions fromBuilder:^(JitsiMeetConferenceOptionsBuilder *builder) {
|
||||
[builder setFeatureFlag:@"welcomepage.enabled" withBoolean:YES];
|
||||
[builder setFeatureFlag:@"resolution" withValue:@(360)];
|
||||
[builder setFeatureFlag:@"ios.screensharing.enabled" withBoolean:YES];
|
||||
builder.serverURL = [NSURL URLWithString:@"https://meet.jit.si"];
|
||||
builder.welcomePageEnabled = YES;
|
||||
|
||||
// Apple rejected our app because they claim requiring a
|
||||
// Dropbox account for recording is not acceptable.
|
||||
|
||||
@@ -91,10 +91,13 @@
|
||||
#if 0
|
||||
- (void)enterPictureInPicture:(NSDictionary *)data {
|
||||
[self _onJitsiMeetViewDelegateEvent:@"ENTER_PICTURE_IN_PICTURE" withData:data];
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
- (void)readyToClose:(NSDictionary *)data {
|
||||
[self _onJitsiMeetViewDelegateEvent:@"READY_TO_CLOSE" withData:data];
|
||||
}
|
||||
|
||||
- (void)participantJoined:(NSDictionary *)data {
|
||||
NSLog(@"%@%@", @"Participant joined: ", data[@"participantId"]);
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
4E51B76425E5345E0038575A /* ScheenshareEventEmiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */; };
|
||||
4E51B76525E5345E0038575A /* ScheenshareEventEmiter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */; };
|
||||
4ED4FFF32721B9B90074E620 /* JitsiAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
4ED4FFF42721B9B90074E620 /* JitsiAudioSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */; };
|
||||
6F08DF7D4458EE3CF3F36F6D /* libPods-JitsiMeetSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4376CA6886DE68FD7A4294B /* libPods-JitsiMeetSDK.a */; };
|
||||
A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */ = {isa = PBXBuildFile; fileRef = A4A934E8212F3ADB001E9388 /* Dropbox.m */; };
|
||||
C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5B2053091D0040BE68 /* image-resize@2x.png */; };
|
||||
@@ -77,6 +79,9 @@
|
||||
0BD906E91EC0C00300C8C18E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScheenshareEventEmiter.h; sourceTree = "<group>"; };
|
||||
4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScheenshareEventEmiter.m; sourceTree = "<group>"; };
|
||||
4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiAudioSession.h; sourceTree = "<group>"; };
|
||||
4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiAudioSession.m; sourceTree = "<group>"; };
|
||||
4ED4FFF52721BAE10074E620 /* JitsiAudioSession+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiAudioSession+Private.h"; sourceTree = "<group>"; };
|
||||
891FE43DAD30BC8976683100 /* Pods-JitsiMeetSDK.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDK.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK.release.xcconfig"; sourceTree = "<group>"; };
|
||||
98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.release.xcconfig"; sourceTree = "<group>"; };
|
||||
@@ -174,6 +179,9 @@
|
||||
DEFE535821FB311F00011A3A /* JitsiMeet+Private.h */,
|
||||
DEA9F283258A5D9900D4CD74 /* JitsiMeetSDK.h */,
|
||||
DEFE535321FB1BF800011A3A /* JitsiMeet.m */,
|
||||
4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */,
|
||||
4ED4FFF52721BAE10074E620 /* JitsiAudioSession+Private.h */,
|
||||
4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */,
|
||||
DEAD3224220C497000E93636 /* JitsiMeetConferenceOptions.h */,
|
||||
DEAD3228220C734300E93636 /* JitsiMeetConferenceOptions+Private.h */,
|
||||
DEAD3225220C497000E93636 /* JitsiMeetConferenceOptions.m */,
|
||||
@@ -277,6 +285,7 @@
|
||||
4E51B76425E5345E0038575A /* ScheenshareEventEmiter.h in Headers */,
|
||||
DE65AACC2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h in Headers */,
|
||||
0B412F221EDEF6EA00B1A0A6 /* JitsiMeetViewDelegate.h in Headers */,
|
||||
4ED4FFF32721B9B90074E620 /* JitsiAudioSession.h in Headers */,
|
||||
0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */,
|
||||
DE81A2D42316AC4D00AE1940 /* JitsiMeetLogger.h in Headers */,
|
||||
DE65AACA2317FFCD00290BEC /* LogUtils.h in Headers */,
|
||||
@@ -438,6 +447,7 @@
|
||||
files = (
|
||||
0BB9AD7B1F5EC8F4001C08DB /* CallKit.m in Sources */,
|
||||
DE81A2DF2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m in Sources */,
|
||||
4ED4FFF42721B9B90074E620 /* JitsiAudioSession.m in Sources */,
|
||||
0BB9AD7D1F60356D001C08DB /* AppInfo.m in Sources */,
|
||||
DE81A2D92316AC7600AE1940 /* LogBridge.m in Sources */,
|
||||
DEAFA779229EAD520033A7FA /* RNRootView.m in Sources */,
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#import <React/RCTLog.h>
|
||||
#import <WebRTC/WebRTC.h>
|
||||
|
||||
#import "JitsiAudioSession+Private.h"
|
||||
#import "LogUtils.h"
|
||||
|
||||
|
||||
@@ -113,7 +114,7 @@ RCT_EXPORT_MODULE();
|
||||
isSpeakerOn = NO;
|
||||
isEarpieceOn = NO;
|
||||
|
||||
RTCAudioSession *session = [RTCAudioSession sharedInstance];
|
||||
RTCAudioSession *session = JitsiAudioSession.rtcAudioSession;
|
||||
[session addDelegate:self];
|
||||
}
|
||||
|
||||
@@ -127,7 +128,7 @@ RCT_EXPORT_MODULE();
|
||||
|
||||
- (BOOL)setConfigWithoutLock:(RTCAudioSessionConfiguration *)config
|
||||
error:(NSError * _Nullable *)outError {
|
||||
RTCAudioSession *session = [RTCAudioSession sharedInstance];
|
||||
RTCAudioSession *session = JitsiAudioSession.rtcAudioSession;
|
||||
|
||||
return [session setConfiguration:config error:outError];
|
||||
}
|
||||
@@ -135,7 +136,7 @@ RCT_EXPORT_MODULE();
|
||||
- (BOOL)setConfig:(RTCAudioSessionConfiguration *)config
|
||||
error:(NSError * _Nullable *)outError {
|
||||
|
||||
RTCAudioSession *session = [RTCAudioSession sharedInstance];
|
||||
RTCAudioSession *session = JitsiAudioSession.rtcAudioSession;
|
||||
[session lockForConfiguration];
|
||||
BOOL success = [self setConfigWithoutLock:config error:outError];
|
||||
[session unlockForConfiguration];
|
||||
@@ -178,7 +179,7 @@ RCT_EXPORT_METHOD(setAudioDevice:(NSString *)device
|
||||
reject:(RCTPromiseRejectBlock)reject) {
|
||||
DDLogInfo(@"[AudioMode] Selected device: %@", device);
|
||||
|
||||
RTCAudioSession *session = [RTCAudioSession sharedInstance];
|
||||
RTCAudioSession *session = JitsiAudioSession.rtcAudioSession;
|
||||
[session lockForConfiguration];
|
||||
BOOL success;
|
||||
NSError *error = nil;
|
||||
@@ -273,7 +274,7 @@ RCT_EXPORT_METHOD(updateDeviceList) {
|
||||
RTCAudioSessionConfiguration *config = [self configForMode:self->activeMode];
|
||||
[self setConfig:config error:nil];
|
||||
if (self->forceSpeaker && !self->isSpeakerOn) {
|
||||
RTCAudioSession *session = [RTCAudioSession sharedInstance];
|
||||
RTCAudioSession *session = JitsiAudioSession.rtcAudioSession;
|
||||
[session lockForConfiguration];
|
||||
[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
|
||||
[session unlockForConfiguration];
|
||||
|
||||
24
ios/sdk/src/JitsiAudioSession+Private.h
Normal file
24
ios/sdk/src/JitsiAudioSession+Private.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright @ 2017-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.
|
||||
*/
|
||||
|
||||
#import "JitsiAudioSession.h"
|
||||
#import <WebRTC/WebRTC.h>
|
||||
|
||||
@interface JitsiAudioSession (Private)
|
||||
|
||||
+ (RTCAudioSession *)rtcAudioSession;
|
||||
|
||||
@end
|
||||
26
ios/sdk/src/JitsiAudioSession.h
Normal file
26
ios/sdk/src/JitsiAudioSession.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright @ 2017-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.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class AVAudioSession;
|
||||
|
||||
@interface JitsiAudioSession : NSObject
|
||||
|
||||
+ (void)activateWithAudioSession:(AVAudioSession *)session;
|
||||
+ (void)deactivateWithAudioSession:(AVAudioSession *)session;
|
||||
|
||||
@end
|
||||
34
ios/sdk/src/JitsiAudioSession.m
Normal file
34
ios/sdk/src/JitsiAudioSession.m
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright @ 2017-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.
|
||||
*/
|
||||
|
||||
#import "JitsiAudioSession.h"
|
||||
#import "JitsiAudioSession+Private.h"
|
||||
|
||||
@implementation JitsiAudioSession
|
||||
|
||||
+ (RTCAudioSession *)rtcAudioSession {
|
||||
return [RTCAudioSession sharedInstance];
|
||||
}
|
||||
|
||||
+ (void)activateWithAudioSession:(AVAudioSession *)session {
|
||||
[self.rtcAudioSession audioSessionDidActivate:session];
|
||||
}
|
||||
|
||||
+ (void)deactivateWithAudioSession:(AVAudioSession *)session {
|
||||
[self.rtcAudioSession audioSessionDidDeactivate:session];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -127,6 +127,7 @@
|
||||
}
|
||||
|
||||
- (void)destroyReactNativeBridge {
|
||||
[_bridgeWrapper invalidate];
|
||||
_bridgeWrapper = nil;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,12 +34,6 @@
|
||||
*/
|
||||
@property (nonatomic, copy, nullable) NSString *token;
|
||||
|
||||
/**
|
||||
* Color scheme override, see:
|
||||
* https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/color-scheme/defaultScheme.js
|
||||
*/
|
||||
@property (nonatomic, copy, nullable) NSDictionary *colorScheme;
|
||||
|
||||
/**
|
||||
* Feature flags. See: https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/flags/constants.js
|
||||
*/
|
||||
@@ -47,12 +41,6 @@
|
||||
|
||||
@property (nonatomic, readonly, nonnull) NSDictionary *config;
|
||||
|
||||
/**
|
||||
* Set to YES to enable the welcome page. Typically SDK users won't need this enabled
|
||||
* since the host application decides which meeting to join.
|
||||
*/
|
||||
@property (nonatomic) BOOL welcomePageEnabled;
|
||||
|
||||
/**
|
||||
* Information about the local user. It will be used in absence of a token.
|
||||
*/
|
||||
@@ -82,11 +70,8 @@
|
||||
@property (nonatomic, copy, nullable, readonly) NSString *room;
|
||||
@property (nonatomic, copy, nullable, readonly) NSString *token;
|
||||
|
||||
@property (nonatomic, copy, nullable) NSDictionary *colorScheme;
|
||||
@property (nonatomic, readonly, nonnull) NSDictionary *featureFlags;
|
||||
|
||||
@property (nonatomic, readonly) BOOL welcomePageEnabled;
|
||||
|
||||
@property (nonatomic, nullable) JitsiMeetUserInfo *userInfo;
|
||||
|
||||
+ (instancetype _Nonnull)fromBuilder:(void (^_Nonnull)(JitsiMeetConferenceOptionsBuilder *_Nonnull))initBlock;
|
||||
|
||||
@@ -19,26 +19,17 @@
|
||||
#import "JitsiMeetConferenceOptions+Private.h"
|
||||
#import "JitsiMeetUserInfo+Private.h"
|
||||
|
||||
/**
|
||||
* Backwards compatibility: turn the boolean property into a feature flag.
|
||||
*/
|
||||
static NSString *const WelcomePageEnabledFeatureFlag = @"welcomepage.enabled";
|
||||
|
||||
|
||||
@implementation JitsiMeetConferenceOptionsBuilder {
|
||||
NSMutableDictionary *_featureFlags;
|
||||
NSMutableDictionary *_config;
|
||||
}
|
||||
|
||||
@dynamic welcomePageEnabled;
|
||||
|
||||
- (instancetype)init {
|
||||
if (self = [super init]) {
|
||||
_serverURL = nil;
|
||||
_room = nil;
|
||||
_token = nil;
|
||||
|
||||
_colorScheme = nil;
|
||||
_config = [[NSMutableDictionary alloc] init];
|
||||
_featureFlags = [[NSMutableDictionary alloc] init];
|
||||
|
||||
@@ -96,19 +87,6 @@ static NSString *const WelcomePageEnabledFeatureFlag = @"welcomepage.enabled";
|
||||
_config[config] = value;
|
||||
}
|
||||
|
||||
#pragma mark - Dynamic properties
|
||||
|
||||
- (void)setWelcomePageEnabled:(BOOL)welcomePageEnabled {
|
||||
[self setFeatureFlag:WelcomePageEnabledFeatureFlag
|
||||
withBoolean:welcomePageEnabled];
|
||||
}
|
||||
|
||||
- (BOOL)welcomePageEnabled {
|
||||
NSNumber *n = _featureFlags[WelcomePageEnabledFeatureFlag];
|
||||
|
||||
return n != nil ? [n boolValue] : NO;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation JitsiMeetConferenceOptions {
|
||||
@@ -116,16 +94,6 @@ static NSString *const WelcomePageEnabledFeatureFlag = @"welcomepage.enabled";
|
||||
NSDictionary *_config;
|
||||
}
|
||||
|
||||
@dynamic welcomePageEnabled;
|
||||
|
||||
#pragma mark - Dynamic properties
|
||||
|
||||
- (BOOL)welcomePageEnabled {
|
||||
NSNumber *n = _featureFlags[WelcomePageEnabledFeatureFlag];
|
||||
|
||||
return n != nil ? [n boolValue] : NO;
|
||||
}
|
||||
|
||||
#pragma mark - Internal initializer
|
||||
|
||||
- (instancetype)initWithBuilder:(JitsiMeetConferenceOptionsBuilder *)builder {
|
||||
@@ -134,8 +102,6 @@ static NSString *const WelcomePageEnabledFeatureFlag = @"welcomepage.enabled";
|
||||
_room = builder.room;
|
||||
_token = builder.token;
|
||||
|
||||
_colorScheme = builder.colorScheme;
|
||||
|
||||
_config = builder.config;
|
||||
|
||||
_featureFlags = [NSDictionary dictionaryWithDictionary:builder.featureFlags];
|
||||
@@ -161,10 +127,6 @@ static NSString *const WelcomePageEnabledFeatureFlag = @"welcomepage.enabled";
|
||||
|
||||
props[@"flags"] = [NSMutableDictionary dictionaryWithDictionary:_featureFlags];
|
||||
|
||||
if (_colorScheme != nil) {
|
||||
props[@"colorScheme"] = self.colorScheme;
|
||||
}
|
||||
|
||||
NSMutableDictionary *urlProps = [[NSMutableDictionary alloc] init];
|
||||
|
||||
// The room is fully qualified.
|
||||
|
||||
@@ -20,4 +20,5 @@
|
||||
#import <JitsiMeetSDK/JitsiMeetConferenceOptions.h>
|
||||
#import <JitsiMeetSDK/JitsiMeetLogger.h>
|
||||
#import <JitsiMeetSDK/JitsiMeetBaseLogHandler.h>
|
||||
#import <JitsiMeetSDK/JitsiAudioSession.h>
|
||||
#import <JitsiMeetSDK/InfoPlistUtil.h>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
@property (nonatomic, copy, nullable) NSString *displayName;
|
||||
/**
|
||||
* User e-mail.
|
||||
* User email.
|
||||
*/
|
||||
@property (nonatomic, copy, nullable) NSString *email;
|
||||
/**
|
||||
|
||||
@@ -111,4 +111,9 @@
|
||||
*/
|
||||
- (void)videoMutedChanged:(NSDictionary *)data;
|
||||
|
||||
/**
|
||||
* Called when the SDK is ready to be closed. No meeting is happening at this point.
|
||||
*/
|
||||
- (void)readyToClose:(NSDictionary *)data;
|
||||
|
||||
@end
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#import <JitsiMeetSDK/JitsiMeetSDK-Swift.h>
|
||||
|
||||
#import "../LogUtils.h"
|
||||
#import "JitsiAudioSession.h"
|
||||
|
||||
|
||||
// The events emitted/supported by RNCallKit:
|
||||
@@ -319,13 +320,13 @@ RCT_EXPORT_METHOD(updateCall:(NSString *)callUUID
|
||||
- (void) providerDidActivateAudioSessionWithSession:(AVAudioSession *)session {
|
||||
DDLogInfo(@"[RNCallKit][CXProviderDelegate][provider:didActivateAudioSession:]");
|
||||
|
||||
[[RTCAudioSession sharedInstance] audioSessionDidActivate:session];
|
||||
[JitsiAudioSession activateWithAudioSession:session];
|
||||
}
|
||||
|
||||
- (void) providerDidDeactivateAudioSessionWithSession:(AVAudioSession *)session {
|
||||
DDLogInfo(@"[RNCallKit][CXProviderDelegate][provider:didDeactivateAudioSession:]");
|
||||
|
||||
[[RTCAudioSession sharedInstance] audioSessionDidDeactivate:session];
|
||||
[JitsiAudioSession deactivateWithAudioSession:session];
|
||||
}
|
||||
|
||||
- (void) providerTimedOutPerformingActionWithAction:(CXAction *)action {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"noResults": "لم يُعثَر على أي نتيجة بحث متطابقة",
|
||||
"outlookEmail": "بريد مايكروسوفت",
|
||||
"phoneNumbers": "أضف ارقام هواتف",
|
||||
"search": "ابحث عن أشخاص",
|
||||
"searching": "يبحث",
|
||||
"shareInvite": "شارك دعوةً للاجتماع",
|
||||
"shareLink": "شارك رابط الاجتماع لدعوة الأخرين",
|
||||
"shareStream": "شارك رابط البث المباشر للاجتماع",
|
||||
@@ -39,6 +39,20 @@
|
||||
"audioOnly": {
|
||||
"audioOnly": "معدل تبادل البيانات منخفض"
|
||||
},
|
||||
"breakoutRooms": {
|
||||
"defaultName": "غرفة الاجتماعات الفرعية رقم {{index}}",
|
||||
"mainRoom": "الغرفة الرئيسية",
|
||||
"actions": {
|
||||
"add": "أضف غرفة جانبية",
|
||||
"autoAssign": "التخصيص التلقائي للغرف الجانبية",
|
||||
"close": "أغلق",
|
||||
"join": "انضم",
|
||||
"leaveBreakoutRoom": "اترك الغرفة الجانبية",
|
||||
"more": "أكثر",
|
||||
"remove": "إزالة",
|
||||
"sendToBreakoutRoom": "أرسل المشارك إلى:"
|
||||
}
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "أضف رابطًا لاجتماع",
|
||||
"confirmAddLink": "هل تريد إضافة رابط جيستسي لهذا الحدث؟",
|
||||
@@ -190,8 +204,8 @@
|
||||
"cameraNotSendingData": "لا نتمكن من الوصول إلى كاميرتك. تحقَّق رجاءً إن كان أي تطبيق آخر يستعملها، أو اختر جهازًا آخر من القائمة أو جرب تحميل التطبيق مجدَّدًا.",
|
||||
"cameraNotSendingDataTitle": "يصعب الوصول الوصول إلى كاميرتك",
|
||||
"cameraPermissionDeniedError": "لم تُمنَح إذن استعمال الكاميرا. لا يزال بإمكانك حضور المؤتمر ولكن لن يراك الآخرون. استعمال زر الكاميرا في شريط العنوان لمحاول إصلاح المشكلة.",
|
||||
"cameraUnknownError": "يصعب استعمال الكاميرا لأسباب مجهولة.",
|
||||
"cameraTimeoutError": "تعذر بدء مصدر الفيديو. انتهت المهلة!",
|
||||
"cameraUnknownError": "يصعب استعمال الكاميرا لأسباب مجهولة.",
|
||||
"cameraUnsupportedResolutionError": "لا تدعم كاميرتك دقة الفيديو المطلوبة.",
|
||||
"Cancel": "ِألغ",
|
||||
"close": "أغلق",
|
||||
@@ -249,34 +263,34 @@
|
||||
"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",
|
||||
"micTimeoutError": "تعذر بدء مصدر الصوت. انقضت المهلة!",
|
||||
"micUnknownError": "لا يمكن استخدام الميكروفون لسبب غير معروف.",
|
||||
"moderationAudioLabel": "السماح للحاضرين بإعادة الصوت بأنفسهم",
|
||||
"moderationVideoLabel": "السماح للحاضرين ببدء الفيديو الخاص بهم",
|
||||
"muteEveryoneElseDialog": "بمجرد أن تكتمهم، لن تتمكن نم إلغاء الكتم هذا، ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteEveryoneElseTitle": "أتريد كتم الجميع باستثناء {{whom}}?",
|
||||
"muteEveryoneDialog": "أمتأكد من رغبتك بكتم الجميع؟ لن تتمكن من إلغاء الكتم ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteEveryoneDialogModerationOn": "The participants can send a request to speak at any time.",
|
||||
"muteEveryoneDialogModerationOn": "يمكن للمشاركين إرسال طلب للتحدث في أي وقت.",
|
||||
"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?",
|
||||
"muteEveryoneElsesVideoDialog": "بمجرد تعطيل الكاميرا ، لن تتمكن من إعادة تشغيلها ، ولكن يمكنهم إعادة تشغيلها في أي وقت.",
|
||||
"muteEveryoneElsesVideoTitle": "وقف فيديو الجميع باستثناء {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "يمكن للمشاركين تشغيل الفيديو الخاص بهم في أي وقت.",
|
||||
"muteEveryonesVideoDialogModerationOn": "يمكن للمشاركين إرسال طلب لتشغيل الفيديو الخاص بهم في أي وقت.",
|
||||
"muteEveryonesVideoDialogOk": "إبطال",
|
||||
"muteEveryonesVideoTitle": "وقف فيديو الجميع؟",
|
||||
"muteEveryoneSelf": "اكتم نفسك أيضًا",
|
||||
"muteEveryoneStartMuted": "البدء مع كتم الجميع من الآن فصاعدًا",
|
||||
"muteParticipantBody": "لن تتكمن من إلغاء كتمهم، ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteParticipantButton": "كتم",
|
||||
"muteParticipantDialog": "أمتأكد من رغبتك لهذا المشارك؟ لن تتمكن من إلغاء الكتم ولكن يمكنه إلغاء كتم أنفسهم في أي وقت.",
|
||||
"muteParticipantsVideoDialog": "هل أنت متأكد أنك تريد إيقاف تشغيل كاميرا هذا المشارك؟ لن تتمكن من إعادة تشغيل الكاميرا ، ولكن يمكنهم إعادة تشغيلها في أي وقت.",
|
||||
"muteParticipantTitle": "أتريد كتم هذا المشارك؟",
|
||||
"muteParticipantsVideoDialogModerationOn": "هل أنت متأكد أنك تريد إيقاف تشغيل كاميرا هذا المشارك؟ لن تكون قادرًا على إعادة تشغيل الكاميرا ولن يفعلوا ذلك أيضًا.",
|
||||
"muteParticipantsVideoButton": "وقف الكاميرا",
|
||||
"muteParticipantsVideoTitle": "تعطيل الكاميرا لهذا المشارك؟",
|
||||
"muteParticipantsVideoBody": "لن تتمكن من إعادة تشغيل الكاميرا ، ولكن يمكنهم إعادة تشغيلها في أي وقت.",
|
||||
"muteParticipantsVideoBodyModerationOn": "لن تكون قادرًا على إعادة تشغيل الكاميرا ولن يفعلوا ذلك أيضًا.",
|
||||
"noDropboxToken": "لا يوجد رمز مميز صالح لـ Dropbox",
|
||||
"Ok": "تمام",
|
||||
"password": "Password",
|
||||
"password": "كلمه السر",
|
||||
"passwordLabel": "جعل عضو ما هذا الاجتماع مغلقًا. أدخل رجاءً $t(lockRoomPassword) للإنضمام.",
|
||||
"passwordNotSupported": "ضبط اجتماع $t(lockRoomPassword) غير مدعوم.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) غير مدعوم",
|
||||
@@ -318,12 +332,12 @@
|
||||
"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",
|
||||
"shareAudioTitle": "كيفية مشاركة الصوت",
|
||||
"shareAudioWarningTitle": "تحتاج إلى إيقاف مشاركة الشاشة قبل مشاركة الصوت",
|
||||
"shareAudioWarningH1": "إذا كنت تريد مشاركة الصوت فقط:",
|
||||
"shareAudioWarningD1": "تحتاج إلى إيقاف مشاركة الشاشة قبل مشاركة الصوت الخاص بك.",
|
||||
"shareAudioWarningD2": "تحتاج إلى إعادة تشغيل مشاركة الشاشة والتحقق من خيار مشاركة الصوت .",
|
||||
"shareMediaWarningGenericH2": "إذا كنت ترغب في مشاركة شاشتك والصوت",
|
||||
"shareVideoLinkError": "زودنا برابط يوتيوب صحيح",
|
||||
"shareVideoTitle": "شارك فيديو",
|
||||
"shareYourScreen": "شارك شاشتك",
|
||||
@@ -334,7 +348,7 @@
|
||||
"shareScreenWarningTitle": "تحتاج إلى إيقاف مشاركة الصوت قبل مشاركة شاشتك",
|
||||
"shareScreenWarningH1": "إذا كنت تريد مشاركة شاشتك فقط:",
|
||||
"shareScreenWarningD1": "تحتاج إلى إيقاف مشاركة الصوت قبل مشاركة شاشتك.",
|
||||
"shareScreenWarningD2": "you need to stop audio sharing, start screen sharing and check the \"share audio\" option.",
|
||||
"shareScreenWarningD2": "تحتاج إلى إيقاف مشاركة الصوت وبدء مشاركة الشاشة وتحديد خيار مشاركة الصوت .",
|
||||
"sharedVideoLinkPlaceholder": "رابط اليوتيوب او رابط الفيديو المباشر",
|
||||
"stopLiveStreaming": "أوقف البث الحي",
|
||||
"stopRecording": "أوقف التسجيل",
|
||||
@@ -357,7 +371,7 @@
|
||||
"viewUpgradeOptionsTitle": "لقد اكتشفت ميزة مميزة!",
|
||||
"WaitForHostMsg": "لم يبدأ المؤتمر <b>{{room}}</b> بعد. إن كنت المضيف والراعي، فنرجو تأكيد ذلك عبر الاستيثاق أو انتظر وصول المضيف رجاءً. ",
|
||||
"WaitForHostMsgWOk": "لم يبدأ المؤتمر <b>{{room}}</b> بعد. إن كنت المضيف والراعي، فاضغط على «تمام» للاستيثاق أو انتظر وصول المضيف رجاءً.",
|
||||
"WaitingForHost": "ننتظر وصول المضيف ...",
|
||||
"WaitingForHostTitle": "في انتظار المضيف ...",
|
||||
"Yes": "نعم",
|
||||
"yourEntireScreen": "شاشتك كاملةً",
|
||||
"remoteUserControls": "ضوابط المستخدم عن بعد لـ {{username}}",
|
||||
@@ -386,15 +400,15 @@
|
||||
"none": "بدون",
|
||||
"uploadedImage": "تحميل الصورة {{index}}",
|
||||
"deleteImage": "حذف صورة",
|
||||
"image1" : "Beach",
|
||||
"image2" : "جدار أبيض محايد",
|
||||
"image3" : "غرفة بيضاء فارغة",
|
||||
"image4" : "مصباح أرضي أسود",
|
||||
"image5" : "جبل",
|
||||
"image6" : "غابة",
|
||||
"image7" : "شروق الشمس",
|
||||
"image1": "شاطئ",
|
||||
"image2": "جدار أبيض محايد",
|
||||
"image3": "غرفة بيضاء فارغة",
|
||||
"image4": "مصباح أرضي أسود",
|
||||
"image5": "جبل",
|
||||
"image6": "غابة",
|
||||
"image7": "شروق الشمس",
|
||||
"desktopShareError": "تعذر إنشاء مشاركة سطح المكتب",
|
||||
"desktopShare":"مشاركة سطح المكتب",
|
||||
"desktopShare": "مشاركة سطح المكتب",
|
||||
"webAssemblyWarning": "WebAssembly غير مدعوم",
|
||||
"backgroundEffectError": "فشل تطبيق تأثير الخلفية."
|
||||
},
|
||||
@@ -423,7 +437,7 @@
|
||||
"country": "البلد",
|
||||
"dialANumber": "إن أردت الإنضمام إلى الإجتماع، اتصل بأحد الأرقام التالية ثم أدخل رمز المرور",
|
||||
"dialInConferenceID": "رمز المرور (PIN):",
|
||||
"copyNumber":"إنسخ الرقم",
|
||||
"copyNumber": "إنسخ الرقم",
|
||||
"dialInNotSupported": "عذرًا، الاتصال غير مدعوم حاليًا.",
|
||||
"dialInNumber": "اتصل:",
|
||||
"dialInSummaryError": "خطأ في تحصيل معلومات الاتصال. جرب مرة أخرى لاحقًا.",
|
||||
@@ -432,11 +446,11 @@
|
||||
"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}}.",
|
||||
"inviteSipEndpoint": "للانضمام باستخدام عنوان SIP ، أدخل هذا: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} يدعوك إلى اجتماع.",
|
||||
"inviteTextiOSJoinSilent": "إذا كنت تقوم بالاتصال من خلال هاتف الغرفة ، فاستخدم هذا الارتباط للانضمام دون الاتصال بالصوت: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "انقر فوق الرابط التالي للانضمام: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "للانضمام عبر الهاتف ، استخدم هذا الرقم: {{number}},,{{conferenceID}}#. إذا كنت تبحث عن رقم مختلف ، فهذه هي القائمة الكاملة: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "دُعيِت للإنضمام إلى اجتماع",
|
||||
"inviteURLFirstPartPersonal": "دعاك {{name}} لاجتماع.\n",
|
||||
"inviteURLSecondPart": "\nانضم للاجتماع:\n{{url}}\n",
|
||||
@@ -466,7 +480,7 @@
|
||||
"support": "الدعم",
|
||||
"supportMsg": "إن تكرَّر حصول هذا، تواصل مع"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logo, links to Homepage",
|
||||
"jitsiHome": "{{logo}} الشعار ، رابط إلى الصفحة الرئيسية",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "ركز على الفيديو الخاص بك",
|
||||
"focusRemote": "ركز على فيديو مشارك آخر",
|
||||
@@ -501,6 +515,7 @@
|
||||
"expandedPending": "تبدأ عملية البث الحي...",
|
||||
"failedToStart": "فشلت عملية بدء البث الحي",
|
||||
"getStreamKeyManually": "لم نتمكن من الوصول إلى أي بث حي. جرب جلب مفتاح بث حي خاص بك من يوتيوب.",
|
||||
"inProgress": "البث المباشر غير ممكّن على {{email}}. يرجى تمكين البث المباشر أو تسجيل الدخول إلى حساب مع تمكين البث المباشر.",
|
||||
"invalidStreamKey": "يحتمل كون مفتاح البث الحي غير صحيح.",
|
||||
"off": "أُوقِف البث الحي",
|
||||
"offBy": "أوقف {{name}} البث الحي",
|
||||
@@ -508,6 +523,7 @@
|
||||
"onBy": "بدأ {{name}} بثًّا حيًّا",
|
||||
"pending": "بدء بثٍّ حيٍّ",
|
||||
"serviceName": "خدمة البث الحي",
|
||||
"sessionAlreadyActive": "هذه الجلسة قيد التسجيل أو البث المباشر.",
|
||||
"signedInAs": "أنت مسجل حاليًا بصفة:",
|
||||
"signIn": "سجل الدخول عبر حساب غوغل",
|
||||
"signInCTA": "سجل الدخول أو أدخل مفتاح البث الحي الخاص بك من يوتيوب",
|
||||
@@ -551,8 +567,8 @@
|
||||
"lockRoomPasswordUppercase": "كلمة المرور",
|
||||
"me": "أنا",
|
||||
"notify": {
|
||||
"allowAction": "Allow",
|
||||
"allowedUnmute": "You can unmute your microphone, start your camera or share your screen.",
|
||||
"allowAction": "يسمح",
|
||||
"allowedUnmute": "يمكنك إعادة صوت الميكروفون و بدء تشغيل الكاميرا أو مشاركة شاشتك.",
|
||||
"connectedOneMember": "انضم {{name}} للاجتماع",
|
||||
"connectedThreePlusMembers": "انضم {{name}} وعدد {{count}} غيره إلى الاجتماع",
|
||||
"connectedTwoMembers": "انضم {{first}} و {{second}} إلى الاجتماع",
|
||||
@@ -570,13 +586,13 @@
|
||||
"mutedTitle": "مكتوم!",
|
||||
"mutedRemotelyTitle": "كتم {{participantDisplayName}} الصوت لديك!",
|
||||
"mutedRemotelyDescription": "يمكنك إلغاء الكتم متى كنت جاهزًا للتحدث. اكتم الصوت بعد الانتهاء من التحدث لخفض الضجيج أثناء الاجتماع",
|
||||
"videoMutedRemotelyTitle": "Your video has been turned off by {{participantDisplayName}}",
|
||||
"videoMutedRemotelyDescription": "You can always turn it on again.",
|
||||
"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!",
|
||||
"screenShareNoAudio": "لم يتم تحديد مربع مشاركة الصوت في شاشة تحديد النافذة.",
|
||||
"screenShareNoAudioTitle": "تعذرت مشاركة صوت النظام!",
|
||||
"somebody": "شخص ما",
|
||||
"startSilentTitle": "انضممت دون مخرج للصوت!",
|
||||
"startSilentDescription": "أنضم مجدَّدًا للاجتماع لتفعيل الصوت",
|
||||
@@ -590,28 +606,28 @@
|
||||
"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"
|
||||
"moderationInEffectDescription": "من فضلك ارفع يدك إذا كنت تريد التحدث.",
|
||||
"moderationInEffectCSDescription": "يرجى رفع اليد إذا كنت تريد مشاركة شاشتك.",
|
||||
"moderationInEffectVideoDescription": "يرجى رفع يدك إذا كنت تريد بدء تشغيل الكاميرا.",
|
||||
"moderationInEffectTitle": "تم كتم صوت الميكروفون الخاص بك بواسطة المشرف",
|
||||
"moderationInEffectCSTitle": "تم حظر مشاركة الشاشة من قبل المشرف",
|
||||
"moderationInEffectVideoTitle": "تم حظر الكاميرا الخاصة بك من قبل المشرف",
|
||||
"moderationRequestFromModerator": "المضيف يريد منك إلغاء كتم الصوت",
|
||||
"moderationRequestFromParticipant": "يريد التحدث",
|
||||
"moderationStartedTitle": "بدأ الاشراف",
|
||||
"moderationStoppedTitle": "توقف الاشراف",
|
||||
"moderationToggleDescription": "من {{participantDisplayName}}",
|
||||
"raiseHandAction": "رفع اليد",
|
||||
"reactionSounds": "تعطيل الأصوات",
|
||||
"groupTitle": "إشعارات"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Close",
|
||||
"header": "Participants",
|
||||
"close": "غلق",
|
||||
"header": "مشاركون",
|
||||
"headings": {
|
||||
"lobby": "Lobby ({{count}})",
|
||||
"lobby": "الردهة ({{count}})",
|
||||
"participantsList": "المشاركون في الاجتماع({{count}})",
|
||||
"waitingLobby": "Waiting in lobby ({{count}})"
|
||||
"waitingLobby": "منتظرون في الردهة ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "السماح للحاضرين بـ:",
|
||||
@@ -620,6 +636,8 @@
|
||||
"blockEveryoneMicCamera": "حظر ميكروفون وكاميرا الجميع",
|
||||
"invite": "قم بدعوة شخص ما",
|
||||
"askUnmute": "اطلب إعادة الصوت",
|
||||
"moreModerationActions": "المزيد من خيارات الاشراف",
|
||||
"moreParticipantOptions": "المزيد من خيارات المشاركين",
|
||||
"mute": "كتم الصوت",
|
||||
"muteAll": "كتم الكل",
|
||||
"muteEveryoneElse": "كتم صوت الآخرين",
|
||||
@@ -627,36 +645,38 @@
|
||||
"stopVideo": "أوقف الفيديو",
|
||||
"unblockEveryoneMicCamera": "قم بإلغاء حظر ميكروفون وكاميرا الجميع",
|
||||
"videoModeration": "ابدأ الفيديو الخاص بهم"
|
||||
}
|
||||
},
|
||||
"search": "بحث"
|
||||
},
|
||||
"passwordSetRemotely": "ضبطها مشارك آخر",
|
||||
"passwordDigitsOnly": "حتى {{number}} عدد",
|
||||
"polls": {
|
||||
"by": "من",
|
||||
"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"
|
||||
"addOption": "إضافة خيار",
|
||||
"answerPlaceholder": "خيار {{index}}",
|
||||
"create": "إنشاء استطلاع",
|
||||
"cancel": "إلغاء",
|
||||
"pollOption": "خيار الاستطلاع {{index}}",
|
||||
"pollQuestion": "سؤال الاستطلاع",
|
||||
"questionPlaceholder": "طرح سؤال",
|
||||
"removeOption": "إزالة خيار",
|
||||
"send": "أرسل"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Skip",
|
||||
"submit": "Submit"
|
||||
"skip": "تخطى",
|
||||
"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"
|
||||
"vote": "تصويت",
|
||||
"changeVote": "تغيير التصويت",
|
||||
"empty": "لا توجد استطلاعات للرأي في الاجتماع حتى الآن. ابدأ الاستطلاع هنا!",
|
||||
"hideDetailedResults": "أخفِ التفاصيل",
|
||||
"showDetailedResults": "اظهر التفاصيل"
|
||||
},
|
||||
"notification": {
|
||||
"title": "A new poll was added to this meeting",
|
||||
"description": "Open polls tab to vote"
|
||||
"title": "تمت إضافة اقتراع جديد إلى هذا الاجتماع",
|
||||
"description": "افتح علامة تبويب الاقتراع للتصويت"
|
||||
}
|
||||
},
|
||||
"poweredby": "مُشغَّل بوساطة",
|
||||
@@ -699,7 +719,7 @@
|
||||
"errorDialOutFailed": "فشلت عملية الاتصال، للأسف.",
|
||||
"errorDialOutStatus": "خطأ في معرفة حالة الاتصال",
|
||||
"errorMissingName": "أدخل اسمك للدخول للاجتماع",
|
||||
"errorNoPermissions": "You need to enable microphone and camera access",
|
||||
"errorNoPermissions": "تحتاج إلى تمكين الوصول إلى الميكروفون والكاميرا",
|
||||
"errorStatusCode": "فشل الاتصال برمز خطأ: {{status}}",
|
||||
"errorValidation": "فشل التحقق من الرقم",
|
||||
"iWantToDialIn": "أريد الاتصال",
|
||||
@@ -712,8 +732,8 @@
|
||||
"or": "أو",
|
||||
"premeeting": "ما قبل الاجتماع",
|
||||
"showScreen": "تفعيل واجهة ما قبل الاجتماع",
|
||||
"keyboardShortcuts": "تفعيل اختصارات لوحة المفاتيح",
|
||||
"startWithPhone": "البدء مع جهاز الصوت من الجوال",
|
||||
"keyboardShortcuts" : "تفعيل اختصارات لوحة المفاتيح",
|
||||
"screenSharingError": "خطأ في مشاركة الشاشة:",
|
||||
"videoOnlyError": "خطأ في الفيديو:",
|
||||
"videoTrackError": "لم نتمكن من إنشاء ملف الفيديو",
|
||||
@@ -751,13 +771,14 @@
|
||||
"busyTitle": "جميع المسجلين مشغولون حاليًا",
|
||||
"copyLink": "Copy Link",
|
||||
"error": "فشل التسجيل. حاول مرة أخرى.",
|
||||
"errorFetchingLink": "Error fetching recording link.",
|
||||
"errorFetchingLink": "خطأ في جلب رابط التسجيل.",
|
||||
"expandedOff": "أوقٍف التسجيل",
|
||||
"expandedOn": "يُسجَّل الاجتماع الآن",
|
||||
"expandedPending": "بدء التسجيل...",
|
||||
"failedToStart": "فشل بدء التسجيل",
|
||||
"fileSharingdescription": "شارك التسجيل مع المشاركين للاجتماع",
|
||||
"linkGenerated": "We have generated a link to your recording.",
|
||||
"inProgress": "التسجيل أو البث المباشر قيد التقدم",
|
||||
"linkGenerated": "لقد أنشأنا رابطًا لتسجيلك.",
|
||||
"live": "مباشر",
|
||||
"loggedIn": "مُسجَّل باسم {{userName}}",
|
||||
"off": "أوقِف التسجيل",
|
||||
@@ -767,13 +788,14 @@
|
||||
"pending": "التحضير لتسجيل الاجتماع...",
|
||||
"rec": "تسجيل",
|
||||
"serviceDescription": "ستحفظ خدمة التسجيل الفيديو المستجل",
|
||||
"serviceDescriptionCloud": "Cloud recording",
|
||||
"serviceDescriptionCloud": "تسجيل سحابي",
|
||||
"serviceName": "خدمة التسجيل",
|
||||
"sessionAlreadyActive": "هذه الجلسة قيد التسجيل أو البث المباشر.",
|
||||
"signIn": "دخول",
|
||||
"signOut": "خروج",
|
||||
"unavailable": "عجبًا! {{serviceName}} غير متاحة حاليًا. نعمل على حل المشكلة. حاول مرة أخرى لاحقًا.",
|
||||
"unavailableTitle": "التسجيل غير متاح",
|
||||
"uploadToCloud": "Upload to the cloud"
|
||||
"uploadToCloud": "تحميل إلى السحابة"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "اسحب للتحديث"
|
||||
@@ -849,17 +871,24 @@
|
||||
},
|
||||
"speaker": "المتحدث",
|
||||
"speakerStats": {
|
||||
"search": "Search",
|
||||
"search": "بحث",
|
||||
"hours": "{{count}}س",
|
||||
"minutes": "{{count}}د",
|
||||
"name": "الاسم",
|
||||
"seconds": "{{count}}ثا",
|
||||
"speakerStats": "حالة المتحدث",
|
||||
"speakerTime": "وقت المتحدث"
|
||||
"speakerTime": "وقت المتحدث",
|
||||
"happy": "سعيد",
|
||||
"neutral": "حيادي",
|
||||
"sad": "حزين",
|
||||
"surprised": "مندهش",
|
||||
"angry": "غاضب",
|
||||
"fearful": "خائف",
|
||||
"disgusted": "مشمئز"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"genericTitle": "The meeting needs to use your microphone and camera.",
|
||||
"genericTitle": "يحتاج الاجتماع إلى استخدام الميكروفون والكاميرا.",
|
||||
"title": "يريد {{app}} استعمال المجهار والكاميرا خاصَّتك."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
@@ -872,10 +901,11 @@
|
||||
"audioOnly": "بدل الصوت فقط",
|
||||
"audioRoute": "اختر جهاز الصوت",
|
||||
"boo": "Boo",
|
||||
"breakoutRoom": "الانضمام / مغادرة غرفة فرعية",
|
||||
"callQuality": "اضبط دقة الفيديو",
|
||||
"cc": "اظهِر/اخفِ الترجمة",
|
||||
"chat": "اظهِر/اخفِ نافذة الدردشة",
|
||||
"clap": "Clap",
|
||||
"clap": "تصفيق",
|
||||
"document": "اظهِر/اخفِ الملف المشارك",
|
||||
"download": "نزِّل التطبيق",
|
||||
"embedMeeting": "ضمِّن الاجتماع",
|
||||
@@ -886,8 +916,8 @@
|
||||
"help": "مساعدة",
|
||||
"invite": "ادعُ آخرين",
|
||||
"kick": "اطرد مشاركًا",
|
||||
"laugh": "Laugh",
|
||||
"like": "Thumbs Up",
|
||||
"laugh": "يضحك",
|
||||
"like": "رفع الإبهام متمنيا النجاح",
|
||||
"lobbyButton": "فعِّل/عطِّل وضع غرفة الانتظار",
|
||||
"localRecording": "اظهِر/اخفِ التحكم بالتسجيل المحلي",
|
||||
"lockRoom": "اظهِر/اخفِ كلمة مرور الاجتماع",
|
||||
@@ -918,7 +948,7 @@
|
||||
"show": "اظهر على المنصة",
|
||||
"silence": "Silence",
|
||||
"speakerStats": "اظهِر/اخفِ حالة المتحدث",
|
||||
"surprised": "Surprised",
|
||||
"surprised": "مندهش",
|
||||
"tileView": "اظهِر/اخفِ عرض العنوان",
|
||||
"toggleCamera": "بدِّل الكاميرا",
|
||||
"toggleFilmstrip": "بدِّل وضع الشريط السينمائي (filmstrip)",
|
||||
@@ -938,7 +968,7 @@
|
||||
"boo": "Boo",
|
||||
"callQuality": "اضبط دقة الفيديو",
|
||||
"chat": "افتح / أغلق الشاشة",
|
||||
"clap": "Clap",
|
||||
"clap": "تصفيق",
|
||||
"closeChat": "أغلق الدردشة",
|
||||
"closeReactionsMenu": "إغلاق قائمة ردود الفعل",
|
||||
"disableReactionSounds": "يمكنك تعطيل أصوات ردود الفعل لهذا الاجتماع",
|
||||
@@ -955,8 +985,10 @@
|
||||
"hangup": "غادر",
|
||||
"help": "مساعدة",
|
||||
"invite": "ادعُ أحدًا",
|
||||
"laugh": "Laugh",
|
||||
"like": "Thumbs Up",
|
||||
"joinBreakoutRoom": "انضم إلى غرفة الجانبية",
|
||||
"laugh": "يضحك",
|
||||
"leaveBreakoutRoom": "اترك إلى غرفة الجانبية",
|
||||
"like": "رفع الإبهام متمنيا النجاح",
|
||||
"lobbyButtonDisable": "عطِّل وضع غرفة الانتظار",
|
||||
"lobbyButtonEnable": "فعِّل وضع غرفة الانتظار",
|
||||
"login": "ادخل",
|
||||
@@ -982,19 +1014,19 @@
|
||||
"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",
|
||||
"reactionBoo": "أرسل رد فعل بوو",
|
||||
"reactionClap": "أرسل رد فعل التصفيق",
|
||||
"reactionLaugh": "أرسل رد فعل يضحك",
|
||||
"reactionLike": "إرسال رد فعل ممتاز",
|
||||
"reactionSilence": "أرسل رد فعل الصمت",
|
||||
"reactionSurprised": "أرسل رد فعل متفاجئًا",
|
||||
"security": "خيارات الحماية",
|
||||
"Settings": "الإعدادات",
|
||||
"shareaudio": "مشاركة الصوت",
|
||||
"sharedvideo": "شارك فيديو يوتيوب",
|
||||
"shareRoom": "ادعُ أحدًا",
|
||||
"shortcuts": "اعرض الاختصارات",
|
||||
"silence": "Silence",
|
||||
"silence": "سكوت",
|
||||
"speakerStats": "حالة المتحدث",
|
||||
"startScreenSharing": "ابدأ بمشاركة الشاشة",
|
||||
"startSubtitles": "أظهر الترجمة",
|
||||
@@ -1002,7 +1034,7 @@
|
||||
"stopScreenSharing": "أوقف مشاركة الشاشة",
|
||||
"stopSubtitles": "أخفِ الترجمة",
|
||||
"stopSharedVideo": "أوقف فيديو يوتيوب المشارك",
|
||||
"surprised": "Surprised",
|
||||
"surprised": "مندهش",
|
||||
"talkWhileMutedPopup": "أتحاول التحدث؟ المجهار مكتوم لديك.",
|
||||
"tileViewToggle": "بدِّل عنوان العرض",
|
||||
"toggleCamera": "بدِّل الكاميرا",
|
||||
@@ -1033,7 +1065,7 @@
|
||||
"react-nativeGrantPermissions": "اختر <b><i>السماح</i></b> عندما يطلب المتصفح الأذونات.",
|
||||
"safariGrantPermissions": "اختر <b><i>تمام</i></b> عندما يطلب المتصفح الأذونات."
|
||||
},
|
||||
"volumeSlider": "Volume slider",
|
||||
"volumeSlider": "مستوى الصوت",
|
||||
"videoSIPGW": {
|
||||
"busy": "نعمل على تحرير الموارد. حاول مرة أخرى لاحقًا بعد بضعة دقائق.",
|
||||
"busyTitle": "خدمة الغرفة مشغولة حاليًا",
|
||||
@@ -1045,7 +1077,10 @@
|
||||
"pending": "دعي {{displayName}} مسبقًا"
|
||||
},
|
||||
"videoStatus": {
|
||||
"adjustFor": "ضبط ل:",
|
||||
"audioOnly": "صوت",
|
||||
"bestPerformance": "أفضل أداء",
|
||||
"highestQuality": "اعلى جودة",
|
||||
"audioOnlyExpanded": "أنت في وضع معدَّل البيانات المتبادلة المنخفض. الصوت ومشاركة الشاشة هو المتاح فقط في هذا الوضع.",
|
||||
"callQuality": "جودة الفيديو",
|
||||
"hd": "دقة عالية",
|
||||
@@ -1056,6 +1091,7 @@
|
||||
"ld": "دقة منخفضة",
|
||||
"ldTooltip": "عرض فيديو بدقة منخفضة",
|
||||
"lowDefinition": "دقة منخفضة",
|
||||
"performanceSettings": "إعدادات الأداء",
|
||||
"sd": "دقة قياسية",
|
||||
"sdTooltip": "عرض فيديو بدقة قياسية",
|
||||
"standardDefinition": "دقة قياسية"
|
||||
@@ -1078,7 +1114,7 @@
|
||||
"videomute": "أوقف المشارك الكاميرا"
|
||||
},
|
||||
"welcomepage": {
|
||||
"addMeetingName": "Add Meeting name",
|
||||
"addMeetingName": "أضف اسم الاجتماع",
|
||||
"accessibilityLabel": {
|
||||
"join": "انقر للمشاركة",
|
||||
"roomname": "أدخل اسم الغرفة"
|
||||
@@ -1095,14 +1131,14 @@
|
||||
"getHelp": "أريد مساعدة",
|
||||
"go": "ابدأ",
|
||||
"goSmall": "ابدأ",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"headerSubtitle": "Secure and high quality meetings",
|
||||
"headerTitle": "حِـــوار جيتسي",
|
||||
"headerSubtitle": "آمــن وبنـوعيـة فـائقـة الجـودة",
|
||||
"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",
|
||||
"jitsiOnMobile": "جيتسي على الهاتف المحمول - حمّل تطبيقاتنا وابدأ اجتماعًا من أي مكان",
|
||||
"mobileDownLoadLinkIos": "قم بتنزيل تطبيق الهاتف لنظام iOS",
|
||||
"mobileDownLoadLinkAndroid": "قم بتنزيل تطبيق الهاتف لنظام أندرويد",
|
||||
"mobileDownLoadLinkFDroid": "قم بتنزيل تطبيق الجوال لـ F-Droid",
|
||||
"moderatedMessage": "أو a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">احجز رابط لاجتماع</a> إن كنت رئيس الجلسة الوحيد فقط.",
|
||||
"privacy": "الخصوصية",
|
||||
"recentList": "الجديد",
|
||||
@@ -1113,28 +1149,34 @@
|
||||
"roomname": "أدخل اسم الغرفة",
|
||||
"roomnameHint": "أدخل اسم أو رابط الغرفة التي تريد الانضمام إليها. يمكنك إنشاء اسم جديد لترسله إلى من تريد أن تجتمع معهم.",
|
||||
"sendFeedback": "أبدِ رأيك",
|
||||
"startMeeting": "Start meeting",
|
||||
"startMeeting": "إبدأ الحـِوار",
|
||||
"terms": "الشروط",
|
||||
"title": "منصة عقد مؤتمرات واجتماعات آمنة وكاملة المزايا ومجانية بالمطلق",
|
||||
"logo":{
|
||||
"calendar":"Calendar logo",
|
||||
"microsoftLogo":"Microsoft logo",
|
||||
"logoDeepLinking":"Jitsi meet logo",
|
||||
"desktopPreviewThumbnail":"Desktop preview thumbnail",
|
||||
"googleLogo":"Google Logo",
|
||||
"policyLogo":"Policy logo"
|
||||
"logo": {
|
||||
"calendar": "شعار التقويم",
|
||||
"microsoftLogo": "شعار مايكروسوفت",
|
||||
"logoDeepLinking": "شعار jitsi",
|
||||
"desktopPreviewThumbnail": "صورة مصغرة لمعاينة سطح المكتب",
|
||||
"googleLogo": "شعار كوكل",
|
||||
"policyLogo": "شعار السياسة"
|
||||
}
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "ادعُ آخرين",
|
||||
"youAreAlone": "أنت بمفردك في الاجتماع"
|
||||
},
|
||||
"termsView": {
|
||||
"header": "مصطلحات"
|
||||
},
|
||||
"privacyView": {
|
||||
"header": "خصوصية"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "مركز المساعدة"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Admit",
|
||||
"admitAll": "Admit all",
|
||||
"admit": "سمح بالدخول",
|
||||
"admitAll": "سمح للجميع بالدخول",
|
||||
"knockingParticipantList": "تنبيه قائمة المشاركين",
|
||||
"allow": "اسمح",
|
||||
"backToKnockModeButton": "لا يوجد كلمة مرور، اطلب الإذن بالدخول بدلًا من ذلك.",
|
||||
@@ -1147,7 +1189,7 @@
|
||||
"enableDialogText": "يحمي وضع الانتظار غرفة الاجتماع عبر منح رئيس الجلسة إمكانية الموافقة على انضمام المشاركين.",
|
||||
"enterPasswordButton": "أدخل كلمة المرور لهذا الاجتماع",
|
||||
"enterPasswordTitle": "أدخل كلمة المرور للدخول للاجتماع",
|
||||
"errorMissingPassword": "Please enter the meeting password",
|
||||
"errorMissingPassword": "الرجاء إدخال كلمة مرور الاجتماع",
|
||||
"invalidPassword": "كلمة مرور غير صحيحة",
|
||||
"joiningMessage": "ستتمكن من الانضمام للاجتماع بعد الموافقة على طلبك",
|
||||
"joinWithPasswordMessage": "الرجاء الانتظار أثناء محاولة الدخول دون كلمة مرور...",
|
||||
@@ -1166,7 +1208,7 @@
|
||||
"passwordField": "أدخل كلمة الدخول إلى الاجتماع",
|
||||
"passwordJoinButton": "انضم",
|
||||
"reject": "رفض",
|
||||
"rejectAll": "Reject all",
|
||||
"rejectAll": "رفض الكل",
|
||||
"toggleLabel": "فعِّل غرفة الانتظار"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -488,8 +488,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Якое адлюстроўваецца імя",
|
||||
"setEmailInput": "Калі ласка, увядзіце e-mail",
|
||||
"setEmailLabel": "E-mail для Gravatar",
|
||||
"setEmailInput": "Калі ласка, увядзіце email",
|
||||
"setEmailLabel": "Email для Gravatar",
|
||||
"title": "Профіль"
|
||||
},
|
||||
"raisedHand": "Хоча гаварыць",
|
||||
@@ -558,7 +558,7 @@
|
||||
"disableCallIntegration": "Адключыць убудаваную інтэграцыю выклікаў",
|
||||
"disableP2P": "Адключыць рэжым Peer-To-Peer",
|
||||
"displayName": "Якое адлюстроўваецца імя",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Налады",
|
||||
"profileSection": "Профіль",
|
||||
"serverURL": "Адрас сервера",
|
||||
|
||||
@@ -236,7 +236,7 @@
|
||||
"remoteControlDeniedMessage": "{{user}} ha rebutjat la petició de control remot!",
|
||||
"remoteControlErrorMessage": "S'ha produït un error en intentar sol·licitar a {{user}} permisos de control remot!",
|
||||
"remoteControlRequestMessage": "Voleu permetre a {{user}} de controlar remotament el vostre escriptori?",
|
||||
"remoteControlShareScreenWarning": "Tingueu present que si pitgeu \"Permet\" compartireu la vostra pantalla!",
|
||||
"remoteControlShareScreenWarning": "Tingueu present que si pitgeu \"Permet\"compartireu la vostra pantalla!",
|
||||
"remoteControlStopMessage": "La sessió de control remot ha finalitzat!",
|
||||
"remoteControlTitle": "Control d'escriptori remot",
|
||||
"Remove": "Suprimeix",
|
||||
@@ -464,6 +464,32 @@
|
||||
"newDeviceAudioTitle": "S'ha detectat un aparell d'àudio nou",
|
||||
"newDeviceAction": "Usa"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Tanca",
|
||||
"header": "Participants",
|
||||
"headings": {
|
||||
"lobby": "Sala d'espera ({{count}})",
|
||||
"participantsList": "Participants de la reunió ({{count}})",
|
||||
"waitingLobby": "Esperant al vestíbul ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Permetre als assistents:",
|
||||
"allowVideo": "Permet el vídeo",
|
||||
"audioModeration": "Deixeu de silenciar ells mateixos",
|
||||
"blockEveryoneMicCamera": "Bloqueja el micròfon i la càmera de tothom",
|
||||
"invite": "Convida algú",
|
||||
"askUnmute": "Demana que es deixi de silenciare",
|
||||
"moreModerationActions": "Més opcions de moderació",
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silencia tot",
|
||||
"muteEveryoneElse": "Silencia a tots els altres",
|
||||
"stopEveryonesVideo": "Atura el vídeo de tothom",
|
||||
"stopVideo": "Atura el vídeo",
|
||||
"unblockEveryoneMicCamera": "Desbloqueja el micròfon i la càmera de tothom",
|
||||
"videoModeration": "Comença el seu vídeo"
|
||||
},
|
||||
"search": "Cerca participants"
|
||||
},
|
||||
"passwordSetRemotely": "establerta per una altre participant",
|
||||
"passwordDigitsOnly": "Fins a {{number}} dígits",
|
||||
"poweredby": "funciona amb",
|
||||
@@ -577,7 +603,7 @@
|
||||
},
|
||||
"startupoverlay": {
|
||||
"title": "{{app}} requereix usar el micròfon i la càmera.",
|
||||
"policyText": " "
|
||||
"policyText": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"rejoinKeyTitle": "Torna a entrar",
|
||||
@@ -606,12 +632,17 @@
|
||||
"moreOptions": "Mostra més opcions",
|
||||
"mute": "Activa o desactiva el silenci de l'àudio",
|
||||
"muteEveryone": "Silencia tothom",
|
||||
"muteEveryoneElse": "Silencia a tots els altres participants",
|
||||
"muteEveryonesVideo": "Desactiva el vídeo de tothom",
|
||||
"muteEveryoneElsesVideo": "Desactiva el vídeo a tots els altres participants",
|
||||
"participants": "Participants",
|
||||
"pip": "Activa o desactiva el mode imatge en imatge",
|
||||
"privateMessage": "Envia un missatge privat",
|
||||
"profile": "Edita el perfil",
|
||||
"raiseHand": "Aixeca o abaixa la mà",
|
||||
"recording": "Activa o desactiva l'enregistrament",
|
||||
"remoteMute": "Silencia el participant",
|
||||
"remoteVideoMute": "Desactiva la càmera del participant",
|
||||
"Settings": "Activa o desactiva la configuració",
|
||||
"sharedvideo": "Activa o desactiva la compartició de vídeo",
|
||||
"shareRoom": "Convida-hi algú",
|
||||
@@ -626,6 +657,8 @@
|
||||
"toggleFilmstrip": "Activa o desactiva la tira"
|
||||
},
|
||||
"addPeople": "Afegeix persones a la trucada",
|
||||
"audioSettings": "Configuració d'àudio",
|
||||
"videoSettings": "Configuració de vídeo",
|
||||
"audioOnlyOff": "Desactiva el mode de poc ample de banda",
|
||||
"audioOnlyOn": "Activa el mode de poc ample de banda",
|
||||
"audioRoute": "Seleccioneu l'aparell de so",
|
||||
@@ -734,13 +767,18 @@
|
||||
"standardDefinition": "Definició estàndard"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Informació de connexió",
|
||||
"domute": "Silencia",
|
||||
"domuteVideo": "Desactiva la càmera",
|
||||
"domuteOthers": "Silencia a tots els altres participants",
|
||||
"domuteVideoOfOthers": "Desactiva la càmera de tots els altres",
|
||||
"flip": "Capgira",
|
||||
"grantModerator": "Concedir drets de moderador",
|
||||
"kick": "Expulsa",
|
||||
"moderator": "Moderador",
|
||||
"mute": "El participant és silenciat",
|
||||
"muted": "Silenciat",
|
||||
"videoMuted": "Càmera desactivada",
|
||||
"remoteControl": "Inicia o atura el control remot",
|
||||
"show": "Mostra-ho en l'escena",
|
||||
"videomute": "El participant ha aturat la càmera"
|
||||
@@ -782,5 +820,42 @@
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Centre d'ajuda"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Acceptar",
|
||||
"admitAll": "Acceptar Tots",
|
||||
"knockingParticipantList": "Participants en espera",
|
||||
"allow": "Permetre",
|
||||
"backToKnockModeButton": "Sol·licitar entrada",
|
||||
"dialogTitle": "Sala d’espera",
|
||||
"disableDialogContent": "La sala d’espera està habilitada actualment. Aquesta funció garanteix que els participants no desitjats no puguin unir-se a la seva reunió. Vols deshabilitar-ho?",
|
||||
"disableDialogSubmit": "Deshabilitat",
|
||||
"emailField": "Introdueix el teu email",
|
||||
"enableDialogPasswordField": "Estableix la contrasenya (opcional)",
|
||||
"enableDialogSubmit": "Habilitat",
|
||||
"enableDialogText": "La sala d’espera li permet protegir la seva reunió en permetre que les persones només entrin després d’una aprovació formal per part d’un moderador.",
|
||||
"enterPasswordButton": "Introduir la contrasenya de la reunió",
|
||||
"enterPasswordTitle": "Introdueixi la contrasenya per a unir-se a la reunió",
|
||||
"errorMissingPassword": "Si us plau, Introdueixi la contrasenya de la reunió",
|
||||
"invalidPassword": "Contrasenya errònia",
|
||||
"joiningMessage": "T’uniràs a la reunió tan aviat com algú accepti la teva sol·licitud",
|
||||
"joinWithPasswordMessage": "Intentant unir-se amb contrasenya, esperi ...",
|
||||
"joinRejectedMessage": "Un moderador va rebutjar la seva sol·licitud per a unir-se.",
|
||||
"joinTitle": "Unir-se a la reunió",
|
||||
"joiningTitle": "Sol·licitar unir-se a la reunió...",
|
||||
"joiningWithPasswordTitle": "Connectant-se a la reunió amb contrasenya...",
|
||||
"knockButton": "Sol·licitar entrada a la reunió",
|
||||
"knockTitle": "Algú vol unir-se a la reunió",
|
||||
"nameField": "Introdueix el teu nom",
|
||||
"notificationLobbyAccessDenied": "{{originParticipantName}} ha rebutjat l’entrada a la reunió de {{targetParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{originParticipantName}} ha acceptat l’entrada a la reunió de {{targetParticipantName}}",
|
||||
"notificationLobbyDisabled": "La sala d’espera ha estat deshabilitada per {{originParticipantName}}",
|
||||
"notificationLobbyEnabled": "La sala d’espera ha estat habilitada per {{originParticipantName}}",
|
||||
"notificationTitle": "Sala d’espera",
|
||||
"passwordField": "Introduir la contrasenya de la reunió",
|
||||
"passwordJoinButton": "Unir-se",
|
||||
"reject": "Rebutjar",
|
||||
"rejectAll": "Rebutjar Tots",
|
||||
"toggleLabel": "Habilitar sala d’espera"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
"copyStream": "Zkopírovat odkaz na živý přenos",
|
||||
"countryNotSupported": "Toto místo zatím nepodporujeme.",
|
||||
"countryReminder": "Voláte mimo USA? Nezapomeňte začít kódem své země!",
|
||||
"defaultEmail": "Vás výchozí e-mail",
|
||||
"defaultEmail": "Vás výchozí email",
|
||||
"disabled": "Nemůžete pozvat lidi.",
|
||||
"failedToAdd": "Nepodařilo se přidat účastníky",
|
||||
"footerText": "Vytáčení je zakázáno.",
|
||||
"googleEmail": "E-mail Google",
|
||||
"googleEmail": "Email Google",
|
||||
"inviteMoreHeader": "Jste v setkání sám/sama",
|
||||
"inviteMoreMailSubject": "Přidejte se k setkání {{appName}}",
|
||||
"inviteMorePrompt": "Pozvat další lidi",
|
||||
@@ -21,7 +21,7 @@
|
||||
"loadingPeople": "Hledání lidí pro pozvání",
|
||||
"noResults": "Žádné odpovídající výsledky vyhledávání",
|
||||
"noValidNumbers": "Zadejte telefonní číslo",
|
||||
"outlookEmail": "E-mail Outlook",
|
||||
"outlookEmail": "Email Outlook",
|
||||
"searchNumbers": "Přidat telefonní čísla",
|
||||
"searchPeople": "Hledat lidi",
|
||||
"searchPeopleAndNumbers": "Hledat lidi nebo přidat jejich telefonní čísla",
|
||||
@@ -30,7 +30,7 @@
|
||||
"shareStream": "Sdílet odkaz na živý přenos",
|
||||
"telephone": "Telefonní číslo: {{number}}",
|
||||
"title": "Pozvěte lidi na toto setkání",
|
||||
"yahooEmail": "E-mail Yahoo"
|
||||
"yahooEmail": "Email Yahoo"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -462,7 +462,7 @@
|
||||
"dialogTitle": "Mód předsálí",
|
||||
"disableDialogContent": "Je zapnutý mód předsálí. Zajišťuje, aby do setkání nemohli vstoupit nežádoucí účastníci. Chcete jej vypnout?",
|
||||
"disableDialogSubmit": "Vypnout",
|
||||
"emailField": "Zadejte svoje e-mailovou adresu",
|
||||
"emailField": "Zadejte svoje emailovou adresu",
|
||||
"enableDialogPasswordField": "Nastavte heslo (volitelně)",
|
||||
"enableDialogSubmit": "Zapnout",
|
||||
"enableDialogText": "Mód předsálí vám umožňuje zabezpečit setkání tím, že se lidé mohou připojit až po formálním schválení moderátorem.",
|
||||
@@ -637,8 +637,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Nastavte si jméno",
|
||||
"setEmailInput": "Zadejte e-mail",
|
||||
"setEmailLabel": "Nastavte si e-mail vašeho Gravataru",
|
||||
"setEmailInput": "Zadejte email",
|
||||
"setEmailLabel": "Nastavte si email vašeho Gravataru",
|
||||
"title": "Profil"
|
||||
},
|
||||
"raisedHand": "Chtěl(a) bych mluvit",
|
||||
@@ -718,7 +718,7 @@
|
||||
"disableCrashReportingWarning": "Určitě chcete vypnout hlášení o pádu? Nastavení se uplatní, až restartujete aplikaci.",
|
||||
"disableP2P": "Vypnout mód Peer-To-Peer",
|
||||
"displayName": "Zobrazované jméno",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Nastavení",
|
||||
"profileSection": "Profil",
|
||||
"serverURL": "URL serveru",
|
||||
|
||||
@@ -39,6 +39,23 @@
|
||||
"audioOnly": {
|
||||
"audioOnly": "Geringe Bandbreite"
|
||||
},
|
||||
"blankPage": {
|
||||
"meetingEnded": "Konferenz beendet."
|
||||
},
|
||||
"breakoutRooms": {
|
||||
"defaultName": "Breakout-Raum #{{index}}",
|
||||
"mainRoom": "Hauptraum",
|
||||
"actions": {
|
||||
"add": "Breakout-Raum hinzufügen",
|
||||
"autoAssign": "Automatisch auf Breakout-Räume verteilen",
|
||||
"close": "Schließen",
|
||||
"join": "Teilnehmen",
|
||||
"leaveBreakoutRoom": "Breakout-Raum verlassen",
|
||||
"more": "Mehr",
|
||||
"remove": "Entfernen",
|
||||
"sendToBreakoutRoom": "Anwesende in Breakout-Raum verschieben:"
|
||||
}
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Konferenzlink hinzufügen",
|
||||
"confirmAddLink": "Möchten Sie einen Jitsi-Link zu diesem Termin hinzufügen?",
|
||||
@@ -213,7 +230,9 @@
|
||||
"done": "Fertig",
|
||||
"e2eeDescription": "Ende-zu-Ende-Verschlüsselung ist derzeit noch EXPERIMENTELL. Bitte beachten Sie, dass das Aktivieren der Ende-zu-Ende-Verschlüsselung diverse serverseitige Funktionen deaktiviert: Aufnahmen, Livestreaming und Telefoneinwahl. Bitte beachten Sie außerdem, dass der Konferenz dann nur noch mit Browsern beigetreten werden kann, die Insertable Streams unterstützen.",
|
||||
"e2eeLabel": "Ende-zu-Ende-Verschlüsselung aktivieren",
|
||||
"e2eeDisabledDueToMaxModeDescription": "Ende-zu-Ende-Verschlüsselung kann aufgrund der großen Zahl an Anwesenden nicht aktiviert werden.",
|
||||
"e2eeWarning": "WARNUNG: Nicht alle Personen dieser Konferenz scheinen Ende-zu-Ende-Verschlüsselung zu unterstützen. Wenn Sie diese aktivieren, können die entsprechenden Personen nichts mehr sehen oder hören.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "WARNUNG: Ende-zu-Ende-Verschlüsselung wird automatisch deaktiviert, wenn weitere Anwesende an der Konferenz teilnehmen.",
|
||||
"enterDisplayName": "Bitte geben Sie hier Ihren Namen ein",
|
||||
"embedMeeting": "Besprechung einbetten",
|
||||
"error": "Fehler",
|
||||
@@ -333,6 +352,7 @@
|
||||
"shareScreenWarningH1": "Wenn Sie Ihren Bildschirm freigeben wollen:",
|
||||
"shareScreenWarningD1": "müssen Sie Ihre Audiofreigabe stoppen, bevor Sie ihren Bildschirm freigeben.",
|
||||
"shareScreenWarningD2": "müssen Sie Ihre Audiofreigabe stoppen und dann die Bildschirmfreigabe mit der Option \"Audio freigeben\" starten.",
|
||||
"sharedVideoLinkPlaceholder": "YouTube-URL oder direkte Video-URL",
|
||||
"stopLiveStreaming": "Livestream stoppen",
|
||||
"stopRecording": "Aufnahme stoppen",
|
||||
"stopRecordingWarning": "Sind Sie sicher, dass Sie die Aufnahme stoppen möchten?",
|
||||
@@ -498,6 +518,7 @@
|
||||
"expandedPending": "Livestream wird gestartet …",
|
||||
"failedToStart": "Livestream konnte nicht gestartet werden",
|
||||
"getStreamKeyManually": "Wir waren nicht in der Lage, Livestreams abzurufen. Versuchen Sie, Ihren Livestream-Schlüssel von YouTube zu erhalten.",
|
||||
"inProgress": "Livestreaming gestartet",
|
||||
"invalidStreamKey": "Der Livestream-Schlüssel ist u. U. falsch.",
|
||||
"off": "Livestream gestoppt",
|
||||
"offBy": "{{name}} stoppte den Livestream",
|
||||
@@ -505,6 +526,7 @@
|
||||
"onBy": "{{name}} startete den Livestream",
|
||||
"pending": "Livestream wird gestartet …",
|
||||
"serviceName": "Livestreaming-Dienst",
|
||||
"sessionAlreadyActive": "Diese Konferenz wird bereits als Livestream übertragen.",
|
||||
"signedInAs": "Sie sind derzeit angemeldet als:",
|
||||
"signIn": "Mit Google anmelden",
|
||||
"signInCTA": "Anmelden oder den Streamschlüssel des YouTube-Livestreams eingeben.",
|
||||
@@ -548,13 +570,14 @@
|
||||
"lockRoomPasswordUppercase": "Passwort",
|
||||
"me": "ich",
|
||||
"notify": {
|
||||
"allowAction": "Erlauben",
|
||||
"allowedUnmute": "Sie können die Stummschaltung aufheben, Ihre Kamera einschalten oder Ihren Bildschirm teilen.",
|
||||
"connectedOneMember": "{{name}} nimmt am Meeting teil",
|
||||
"connectedThreePlusMembers": "{{name}} und {{count}} andere Personen nehmen am Meeting teil",
|
||||
"connectedTwoMembers": "{{first}} und {{second}} nehmen am Meeting teil",
|
||||
"disconnected": "getrennt",
|
||||
"focus": "Konferenzleitung",
|
||||
"focusFail": "{{component}} ist im Moment nicht verfügbar – wiederholen in {{ms}} Sekunden",
|
||||
"grantedTo": "Moderationsrechte an {{to}} vergeben!",
|
||||
"hostAskedUnmute": "Die Moderation bittet Sie, das Mikrofon zu aktivieren",
|
||||
"invitedOneMember": "{{name}} wurde eingeladen",
|
||||
"invitedThreePlusMembers": "{{name}} und {{count}} andere wurden eingeladen",
|
||||
@@ -598,7 +621,6 @@
|
||||
"moderationStoppedTitle": "Moderation gestoppt",
|
||||
"moderationToggleDescription": "von {{participantDisplayName}}",
|
||||
"raiseHandAction": "Melden",
|
||||
"groupTitle": "Benachrichtigungen",
|
||||
"reactionSounds": "Interaktionstöne deaktivieren",
|
||||
"groupTitle": "Benachrichtigungen"
|
||||
},
|
||||
@@ -612,10 +634,13 @@
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Anwesenden erlauben:",
|
||||
"allowVideo": "Kamera einschalten",
|
||||
"audioModeration": "Für sich selbst die Stummschaltung aufzuheben",
|
||||
"blockEveryoneMicCamera": "Kamera und Mikrofon von allen sperren",
|
||||
"invite": "Person einladen",
|
||||
"askUnmute": "Anfragen, Stummschaltung aufzuheben",
|
||||
"moreModerationActions": "Weitere Moderationsoptionen",
|
||||
"moreParticipantOptions": "Mehr Optionen für Anwesende",
|
||||
"mute": "Stummschalten",
|
||||
"muteAll": "Alle stummschalten",
|
||||
"muteEveryoneElse": "Alle anderen stummschalten",
|
||||
@@ -623,11 +648,13 @@
|
||||
"stopVideo": "Kamera ausschalten",
|
||||
"unblockEveryoneMicCamera": "Kamera und Mikrofon von allen entsperren",
|
||||
"videoModeration": "Kamera einschalten"
|
||||
}
|
||||
},
|
||||
"search": "Suche Anwesende"
|
||||
},
|
||||
"passwordSetRemotely": "von einer anderen Person gesetzt",
|
||||
"passwordDigitsOnly": "Bis zu {{number}} Ziffern",
|
||||
"polls": {
|
||||
"by": "Von {{ name }}",
|
||||
"create": {
|
||||
"addOption": "Antwort hinzufügen",
|
||||
"answerPlaceholder": "Antwort {{index}}",
|
||||
@@ -695,6 +722,7 @@
|
||||
"errorDialOutFailed": "Anruf fehlgeschlagen. Anruf fehlgeschlagen",
|
||||
"errorDialOutStatus": "Fehler beim Abrufen des Anrufstatus",
|
||||
"errorMissingName": "Bitte geben Sie Ihren Namen ein, um der Konferenz beizutreten.",
|
||||
"errorNoPermissions": "Sie müssen den Zugriff auf Mikrofon und Kamera erlauben",
|
||||
"errorStatusCode": "Anruf fehlgeschlagen. Statuscode: {{status}}",
|
||||
"errorValidation": "Nummerverifikation fehlgeschlagen",
|
||||
"iWantToDialIn": "Ich möchte mich einwählen",
|
||||
@@ -752,6 +780,7 @@
|
||||
"expandedPending": "Aufzeichnung wird gestartet…",
|
||||
"failedToStart": "Die Aufnahme konnte nicht gestartet werden",
|
||||
"fileSharingdescription": "Aufzeichnung mit den Personen der Konferenz teilen",
|
||||
"inProgress": "Aufzeichnung gestartet",
|
||||
"linkGenerated": "Link zur Aufzeichnung wurde generiert.",
|
||||
"live": "LIVE",
|
||||
"loggedIn": "Als {{userName}} angemeldet",
|
||||
@@ -764,6 +793,7 @@
|
||||
"serviceDescription": "Ihre Aufzeichnung wird vom Aufzeichnungsdienst gespeichert",
|
||||
"serviceDescriptionCloud": "Cloud-Aufzeichnung",
|
||||
"serviceName": "Aufnahmedienst",
|
||||
"sessionAlreadyActive": "Diese Konferenz wird bereits aufgezeichnet.",
|
||||
"signIn": "Anmelden",
|
||||
"signOut": "Abmelden",
|
||||
"unavailable": "Oh! Der {{serviceName}} ist aktuell nicht verfügbar. Wir arbeiten an der Behebung des Problems. Bitte versuchen Sie es später noch einmal.",
|
||||
@@ -850,7 +880,14 @@
|
||||
"name": "Name",
|
||||
"seconds": "{{count}} Sek.",
|
||||
"speakerStats": "Sprechstatistik",
|
||||
"speakerTime": "Sprechzeit"
|
||||
"speakerTime": "Sprechzeit",
|
||||
"happy": "Fröhlich",
|
||||
"neutral": "Neutral",
|
||||
"sad": "Traurig",
|
||||
"surprised": "Überrascht",
|
||||
"angry": "Sauer",
|
||||
"fearful": "Ängstlich",
|
||||
"disgusted": "Angeekelt"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
@@ -867,6 +904,7 @@
|
||||
"audioOnly": "„Nur Audio“ ein-/ausschalten",
|
||||
"audioRoute": "Audiogerät auswählen",
|
||||
"boo": "Buhen",
|
||||
"breakoutRoom": "Breakout-Räume betreten/verlassen",
|
||||
"callQuality": "Qualitätseinstellungen",
|
||||
"cc": "Untertitel ein-/ausschalten",
|
||||
"chat": "Chatfenster öffnen / schließen",
|
||||
@@ -898,7 +936,7 @@
|
||||
"pip": "Bild-in-Bild-Modus ein-/ausschalten",
|
||||
"privateMessage": "Private Nachricht senden",
|
||||
"profile": "Profil bearbeiten",
|
||||
"raiseHand": "Hand erheben / senken",
|
||||
"raiseHand": "Hand heben",
|
||||
"reactionsMenu": "Interaktionsmenü öffnen / schließen",
|
||||
"recording": "Aufzeichnung ein-/ausschalten",
|
||||
"remoteMute": "Personen stummschalten",
|
||||
@@ -935,7 +973,7 @@
|
||||
"chat": "Chat öffnen / schließen",
|
||||
"clap": "Klatschen",
|
||||
"closeChat": "Chat schließen",
|
||||
"closeReactionsMenu": "Interationsmenü schließen",
|
||||
"closeReactionsMenu": "Interaktionsmenü schließen",
|
||||
"disableReactionSounds": "Sie können die Interaktionstöne für diese Konferenz deaktivieren",
|
||||
"documentClose": "Geteiltes Dokument schließen",
|
||||
"documentOpen": "Geteiltes Dokument öffnen",
|
||||
@@ -950,7 +988,9 @@
|
||||
"hangup": "Konferenz verlassen",
|
||||
"help": "Hilfe",
|
||||
"invite": "Personen einladen",
|
||||
"joinBreakoutRoom": "In Breakout-Raum wechseln",
|
||||
"laugh": "Lachen",
|
||||
"leaveBreakoutRoom": "Breakout-Raum verlassen",
|
||||
"like": "Daumen hoch",
|
||||
"lobbyButtonDisable": "Lobbymodus deaktivieren",
|
||||
"lobbyButtonEnable": "Lobbymodus aktivieren",
|
||||
@@ -970,12 +1010,12 @@
|
||||
"noisyAudioInputTitle": "Ihr Mikrofon scheint lärmintensiv zu sein!",
|
||||
"noisyAudioInputDesc": "Es klingt, als ob Ihr Mikrofon Störgeräusche verursacht. Bitte überlegen Sie, ob Sie das Gerät stummschalten oder austauschen wollen.",
|
||||
"openChat": "Chat öffnen",
|
||||
"openReactionsMenu": "Interationsmenü öffnen",
|
||||
"openReactionsMenu": "Interaktionsmenü öffnen",
|
||||
"participants": "Anwesende",
|
||||
"pip": "Bild-in-Bild-Modus einschalten",
|
||||
"privateMessage": "Private Nachricht senden",
|
||||
"profile": "Profil bearbeiten",
|
||||
"raiseHand": "Hand erheben / senken",
|
||||
"raiseHand": "Hand heben",
|
||||
"raiseYourHand": "Melden",
|
||||
"reactionBoo": "Buhen senden",
|
||||
"reactionClap": "Klatschen senden",
|
||||
@@ -1040,7 +1080,10 @@
|
||||
"pending": "{{displayName}} wurde eingeladen"
|
||||
},
|
||||
"videoStatus": {
|
||||
"adjustFor": "Einstellen für:",
|
||||
"audioOnly": "AUD",
|
||||
"bestPerformance": "Beste Leistung",
|
||||
"highestQuality": "Höchste Qualität",
|
||||
"audioOnlyExpanded": "Sie befinden sich im Modus „Nur Audio“. Dieser Modus benötigt weniger Bandbreite, Sie sehen jedoch nicht die Videos der anderen.",
|
||||
"callQuality": "Videoqualität",
|
||||
"hd": "HD",
|
||||
@@ -1051,6 +1094,7 @@
|
||||
"ld": "LD",
|
||||
"ldTooltip": "Video wird in niedriger Auflösung angezeigt",
|
||||
"lowDefinition": "Niedrige Auflösung",
|
||||
"performanceSettings": "Qualitätseinstellungen",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Video wird in Standardauflösung angezeigt",
|
||||
"standardDefinition": "Standardauflösung"
|
||||
@@ -1124,6 +1168,12 @@
|
||||
"button": "Andere einladen",
|
||||
"youAreAlone": "Nur Sie sind in dieser Konferenz"
|
||||
},
|
||||
"termsView": {
|
||||
"header": "Nutzungsbedingungen"
|
||||
},
|
||||
"privacyView": {
|
||||
"header": "Datenschutz"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Hilfecenter"
|
||||
},
|
||||
|
||||
@@ -544,7 +544,7 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Ρυθμίστε το όνομα εμφάνισής σας",
|
||||
"setEmailInput": "Εισάγετε το e-mail",
|
||||
"setEmailInput": "Εισάγετε το email",
|
||||
"setEmailLabel": "Ρυθμίστε το gravatar email",
|
||||
"title": "Προφίλ"
|
||||
},
|
||||
@@ -621,7 +621,7 @@
|
||||
"disableCallIntegration": "Απενεργοποίηση ολοκλήρωσης εγγενούς κλήσης",
|
||||
"disableP2P": "Απενεργοποίηση λειτουργίας Peer-to-Peer",
|
||||
"displayName": "Εμφανιζόμενο όνομα",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Ρυθμίσεις",
|
||||
"profileSection": "Προφίλ",
|
||||
"serverURL": "Διεύθυνση URL του διακομιστή",
|
||||
|
||||
@@ -480,8 +480,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Set your display name",
|
||||
"setEmailInput": "Enter e-mail",
|
||||
"setEmailLabel": "Set your Gravatar e-mail",
|
||||
"setEmailInput": "Enter email",
|
||||
"setEmailLabel": "Set your Gravatar email",
|
||||
"title": "Profile"
|
||||
},
|
||||
"recording": {
|
||||
|
||||
@@ -373,11 +373,11 @@
|
||||
"busyTitle": "Kõik ülekandjad on hetkel hõivatud",
|
||||
"changeSignIn": "Vaheta kontot.",
|
||||
"choose": "Vali otseülekanne",
|
||||
"chooseCTA": "Vali ülekande viis. Oled sisse logitud e-mailiga {{email}}.",
|
||||
"chooseCTA": "Vali ülekande viis. Oled sisse logitud emailiga {{email}}.",
|
||||
"enterStreamKey": "Sisesta siia oma YouTube’i ülekande võti.",
|
||||
"error": "Otseülekanne ebaõnnestus. Proovi uuesti.",
|
||||
"errorAPI": "YouTube’i kanaliga ühendumisel tekkis viga. Palun logi uuesti sisse.",
|
||||
"errorLiveStreamNotEnabled": "Otseülekanne ei ole e-mailiga {{email}} sisse lülitatud. Luba kasutajaga otseülekanded või vaheta kontot.",
|
||||
"errorLiveStreamNotEnabled": "Otseülekanne ei ole emailiga {{email}} sisse lülitatud. Luba kasutajaga otseülekanded või vaheta kontot.",
|
||||
"expandedOff": "Otseülekanne on peatatud",
|
||||
"expandedOn": "Kõnest tehakse otseülekanne YouTube’i.",
|
||||
"expandedPending": "Otseülekanne algab…",
|
||||
@@ -480,7 +480,7 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Sisesta nimi",
|
||||
"setEmailInput": "Sisesta e-mail",
|
||||
"setEmailInput": "Sisesta email",
|
||||
"setEmailLabel": "Sisesta Gravatar e-kirja aadress",
|
||||
"title": "Profiil"
|
||||
},
|
||||
@@ -548,7 +548,7 @@
|
||||
"disableCallIntegration": "Lülita kohaliku kõne integratsioon välja",
|
||||
"disableP2P": "Lülita otseühendus välja",
|
||||
"displayName": "Kasutatav nimi",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Seaded",
|
||||
"profileSection": "Profiil",
|
||||
"serverURL": "Serveri link",
|
||||
|
||||
@@ -39,6 +39,20 @@
|
||||
"audioOnly": {
|
||||
"audioOnly": "Bande passante faible"
|
||||
},
|
||||
"breakoutRooms": {
|
||||
"defaultName": "Salle annexe #{{index}}",
|
||||
"mainRoom": "Salle principale",
|
||||
"actions": {
|
||||
"add": "Ajouter salle annexe",
|
||||
"autoAssign": "Assigner automatqieuement aux salles annexes",
|
||||
"close": "Fermer",
|
||||
"join": "Rejoindre",
|
||||
"leaveBreakoutRoom": "Quitter la salle annexe",
|
||||
"more": "Plus",
|
||||
"remove": "Supprimer",
|
||||
"sendToBreakoutRoom": "Envoyer le participant dans:"
|
||||
}
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Ajouter un lien de conférence",
|
||||
"confirmAddLink": "Voulez-vous ajouter un lien Jitsi à cet événement ?",
|
||||
@@ -187,7 +201,7 @@
|
||||
"Back": "Retour",
|
||||
"cameraConstraintFailedError": "Votre caméra ne satisfait pas certaines des contraintes nécessaires.",
|
||||
"cameraNotFoundError": "La caméra n'a pas été trouvée.",
|
||||
"cameraNotSendingData": "Nous sommes incapables d'accéder à votre caméra. Veuillez sélectionner un autre périphérique dans les paramètres ou rafraîchir la page.",
|
||||
"cameraNotSendingData": "Impossible d'accéder à votre caméra. Veuillez sélectionner un autre périphérique dans les paramètres ou rafraîchir la page.",
|
||||
"cameraNotSendingDataTitle": "Impossible d'accéder à votre caméra",
|
||||
"cameraPermissionDeniedError": "Vous n'avez pas autorisé l'utilisation de votre caméra. Vous pouvez toujours participer à la conférence, mais les autres ne pourront pas vous voir. Utilisez le bouton de la caméra dans la barre d'adresse pour résoudre ce problème.",
|
||||
"cameraTimeoutError": "Impossible de démarrer la source vidéo. Délai dépassé!",
|
||||
@@ -211,9 +225,11 @@
|
||||
"dismiss": "Rejeter",
|
||||
"displayNameRequired": "Bonjour ! Quel est votre nom ?",
|
||||
"done": "Terminé",
|
||||
"e2eeDescription": "Le chiffrement de Bout-en-Bout est actuellement EXPERIMENTAL. Veuillez garder à l'esprit que l'activation du chiffrement de Bout-en-Bout désactivera les services fournis côté serveur tels que : l'enregistrement, la diffusion en direct et la participation par téléphone. Gardez également à l'esprit que la réunion ne fonctionnera que pour les personnes qui se joignent à partir de navigateurs prenant en charge les flux insérables.",
|
||||
"e2eeDescription": "Le chiffrement de Bout-en-Bout est actuellement EXPERIMENTAL. Veuillez garder à l'esprit que l'activation du chiffrement de Bout-en-Bout désactivera les services fournis côté serveur tels que : l'enregistrement, la diffusion en direct et la participation par téléphone. Gardez également à l'esprit que la réunion ne fonctionnera que pour les personnes qui se connectent à partir de navigateurs prenant en charge les flux insérables.",
|
||||
"e2eeLabel": "Activer le chiffrement de Bout-en-Bout",
|
||||
"e2eeDisabledDueToMaxModeDescription": "Impossible d'activer le chiffrement de bout en bout en raison du trop grand nombre de participants à la conférence.",
|
||||
"e2eeWarning": "ATTENTION : Tous les participants de cette réunion ne semblent pas prendre en charge le chiffrement de Bout-en-Bout. Si vous activez le chiffrement, ils ne pourront ni vous voir, ni vous entendre.",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "ATTENTION: le chiffrement de bout en bout sera automatiquement arrêté si plus de participants joignent la conférence.",
|
||||
"enterDisplayName": "Merci de saisir votre nom ici",
|
||||
"embedMeeting": "Intégrer la réunion",
|
||||
"error": "Erreur",
|
||||
@@ -221,6 +237,7 @@
|
||||
"grantModeratorDialog": "Êtes-vous sûr de vouloir rendre ce participant modérateur ?",
|
||||
"grantModeratorTitle": "Nommer modérateur",
|
||||
"IamHost": "Je suis l'hôte",
|
||||
"hideShareAudioHelper": "Ne pas montrer ce dialogue à nouveau",
|
||||
"incorrectRoomLockPassword": "Mot de passe incorrect",
|
||||
"incorrectPassword": "Nom d'utilisateur ou mot de passe incorrect",
|
||||
"internalError": "Oups ! Quelque chose s'est mal passée. L'erreur suivante s'est produite : {{error}}",
|
||||
@@ -232,14 +249,14 @@
|
||||
"kickTitle": "Oups ! vous avez été expulsé(e) par {{participantDisplayName}}",
|
||||
"liveStreaming": "Direct",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossible durant l'enregistrement",
|
||||
"liveStreamingDisabledTooltip": "La diffusion en direct est désactivé",
|
||||
"liveStreamingDisabledTooltip": "La diffusion en direct est désactivée",
|
||||
"lockMessage": "Impossible de verrouiller la conférence.",
|
||||
"lockRoom": "Ajouter un $t(lockRoomPassword) à la réunion ",
|
||||
"lockTitle": "Échec du verrouillage",
|
||||
"login": "Connexion",
|
||||
"logoutQuestion": "Voulez-vous vraiment vous déconnecter et arrêter la conférence ?",
|
||||
"logoutTitle": "Déconnexion",
|
||||
"maxUsersLimitReached": "Le nombre maximal de participant est atteint. Le conférence est complète. Merci de contacter l'organisateur de la réunion ou réessayer plus tard !",
|
||||
"maxUsersLimitReached": "Le nombre maximal de participants est atteint. Le conférence est complète. Merci de contacter l'organisateur de la réunion ou réessayer plus tard !",
|
||||
"maxUsersLimitReachedTitle": "Le nombre maximal de participants est atteint",
|
||||
"micConstraintFailedError": "Votre microphone ne satisfait pas certaines des contraintes nécessaires.",
|
||||
"micNotFoundError": "Le microphone n'a pas été détecté.",
|
||||
@@ -253,27 +270,34 @@
|
||||
"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.",
|
||||
"muteEveryoneDialogModerationOn": "Les participants peuvent demander à parler n'importe quand",
|
||||
"muteEveryoneTitle": "Couper le micro de tout le monde ?",
|
||||
"muteEveryoneElsesVideoDialog": "Une fois la caméra coupée, vous ne pourrez plus la rallumer, mais ils peuvent la rallumer à tout moment.",
|
||||
"muteEveryoneElsesVideoTitle": "Couper la vidéo de tout le monde sauf {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "Êtes-vous sûr de vouloir couper la caméra de tout le monde? Vous ne pourrez pas la réactiver, mais ils peuvent la remettre à tout moment.",
|
||||
"muteEveryonesVideoDialogModerationOn": "Les participants peuvent demander à activer leur caméra n'importe quand.",
|
||||
"muteEveryonesVideoDialogOk": "Désactiver",
|
||||
"muteEveryonesVideoTitle": "Couper la caméra de tout le monde?",
|
||||
"muteEveryoneSelf": "vous",
|
||||
"muteEveryoneStartMuted": "Tout le monde démarre avec le micro coupé",
|
||||
"muteParticipantBody": "Vous ne pourrez plus réactiver son micro, mais il pourra l'activer par lui-même à tout moment.",
|
||||
"muteParticipantButton": "Couper le micro",
|
||||
"muteParticipantDialog": "Êtes-vous sûr(e) de vouloir couper le micro de ce participant ? Seul le participant pourra ensuite réactiver son micro à tout moment.",
|
||||
"muteParticipantTitle": "Couper le micro de ce participant ?",
|
||||
"muteParticipantsVideoDialog": "Êtes-vous sûr(e) de vouloir couper la caméra de ce participant ? Seul le participant pourra ensuite réactiver son micro à tout moment.",
|
||||
"muteParticipantsVideoDialogModerationOn": "Êtes-vous sûr(e) de vouloir couper la caméra de ce participant ? Ni vous ni le participant ne pourront la réactiver ensuite ?",
|
||||
"muteParticipantsVideoButton": "Couper la caméra",
|
||||
"muteParticipantsVideoTitle": "Couper la caméra de ce participant?",
|
||||
"muteParticipantsVideoBody": "Vous ne pourrez pas rallumer la caméra, mais ils peuvent la rallumer à tout moment.",
|
||||
"muteParticipantsVideoBodyModerationOn": "Ni vous ni le participant ne pourront rallumer la caméra.",
|
||||
"noDropboxToken": "Pas de jeton Dropbox valide",
|
||||
"Ok": "Ok",
|
||||
"password": "Mot de passe",
|
||||
"passwordLabel": "La réunion a été verrouillée par un(e) participant(e). Veuillez entrer le $t(lockRoomPassword) pour la rejoindre.",
|
||||
"passwordNotSupported": "La définition d'un $t(lockRoomPassword) de réunion n'est pas prise en charge.",
|
||||
"passwordNotSupportedTitle": "L'ajout d'un $t(lockRoomPassword) n'est pas supporté",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) requis",
|
||||
"permissionErrorTitle": "Permission nécessaire",
|
||||
"permissionCameraRequiredError": "L'autorisation caméra est nécessaire pour participer aux réunions avec vidéo. Merci de l'accorder dans les paramètres",
|
||||
"permissionMicRequiredError": "L'autorisation microphone est nécessaire pour participer aux réunions avec son. Merci de l'accorder dans les paramètres",
|
||||
"popupError": "Votre navigateur bloque les fenêtres pop-up. Veuillez autoriser les fenêtres pop-up dans les paramètres de votre navigateur.",
|
||||
"popupErrorTitle": "Pop-up bloquée",
|
||||
"readMore": "plus",
|
||||
@@ -296,18 +320,24 @@
|
||||
"reservationErrorMsg": "Code d'erreur: {{code}}, message: {{msg}}",
|
||||
"retry": "Réessayer",
|
||||
"screenSharingAudio": "Partager l'audio",
|
||||
"screenSharingFailed": "Oops ! Quelque chose s'est mal passée, nous n'avons pas pu démarrer le partage d'écran !",
|
||||
"screenSharingFailed": "Houla ! Quelque chose s'est mal passé, nous n'avons pas pu démarrer le partage d'écran !",
|
||||
"screenSharingFailedTitle": "Echec du partage d'écran !",
|
||||
"screenSharingPermissionDeniedError": "Oops ! Un problème est survenu avec vos autorisations de partage d'écran. Veuillez réessayer.",
|
||||
"screenSharingPermissionDeniedError": "Oups ! Une erreur s'est produite avec vos autorisations d'extension de partage d'écran. Veuillez rafraîchir et réessayer.",
|
||||
"screenSharingPermissionDeniedError": "Houla ! Un problème est survenu avec vos autorisations de partage d'écran. Veuillez réessayer.",
|
||||
"sendPrivateMessage": "Vous avez récemment reçu un message privé. Aviez-vous l'intention d'y répondre en privé, ou vouliez-vous envoyer votre message au groupe ?",
|
||||
"sendPrivateMessageCancel": "Envoyer au groupe",
|
||||
"sendPrivateMessageOk": "Envoyer en privé",
|
||||
"sendPrivateMessageTitle": "Envoyer en privé ?",
|
||||
"serviceUnavailable": "Service indisponible",
|
||||
"sessTerminated": "Appel terminé",
|
||||
"sessionRestarted": "L'appel est relancé par le pont",
|
||||
"sessionRestarted": "L'appel est relancé par la passerelle",
|
||||
"Share": "Partager",
|
||||
"shareAudio": "Continuer",
|
||||
"shareAudioTitle" : "Comment partager le son",
|
||||
"shareAudioWarningTitle": "Vous devez cesser de partager l'écran avant de partager l'audio",
|
||||
"shareAudioWarningH1": "Si vous voulez partager uniquement de l'audio:",
|
||||
"shareAudioWarningD1": "vous devez cesser le partage d'écran avant de partager votre son.",
|
||||
"shareAudioWarningD2": "viys devez partager votre écran à nouveau et cocher l'ootion \"Partager l'audio\".",
|
||||
"shareMediaWarningGenericH2": "Si vous voulez partager votre écran et l'audio",
|
||||
"shareVideoLinkError": "Veuillez renseigner un lien Youtube fonctionnel.",
|
||||
"shareVideoTitle": "Partager une vidéo",
|
||||
"shareYourScreen": "Partager votre écran",
|
||||
@@ -315,6 +345,11 @@
|
||||
"startLiveStreaming": "Démarrer la diffusion en direct",
|
||||
"startRecording": "Commencer l'enregistrement",
|
||||
"startRemoteControlErrorMessage": "Une erreur est survenue lors de la tentative de démarrage de la session de contrôle à distance !",
|
||||
"shareScreenWarningTitle": "Vous devez cesser de partager votre audio avant de partager votre écran",
|
||||
"shareScreenWarningH1": "Si vous voulez partager uniquement votre écran:",
|
||||
"shareScreenWarningD1": "vous devez arrêter le partage d'audio avant de partager votre écran.",
|
||||
"shareScreenWarningD2": "vous devez arrêter le partage d'audio, démarrer le partage d'écran et cocher l'option \"Partager l'audio\".",
|
||||
"sharedVideoLinkPlaceholder": "lien YouTube ou lien vidéo direct",
|
||||
"stopLiveStreaming": "Arrêter la diffusion en direct",
|
||||
"stopRecording": "Arrêter l'enregistrement",
|
||||
"stopRecordingWarning": "Désirez-vous vraiment arrêter l'enregistrement ?",
|
||||
@@ -331,9 +366,12 @@
|
||||
"userIdentifier": "Identifiant utilisateur",
|
||||
"userPassword": "mot de passe utilisateur",
|
||||
"videoLink": "Lien de la vidéo",
|
||||
"viewUpgradeOptions": "Voir les options de mise à jour",
|
||||
"viewUpgradeOptionsContent": "Pour obtenir un accès illimité à des capacités premium comme l'enregistrement, les transcriptions, diffusion RTMP et plus, vous devez mettre à jour votre plan.",
|
||||
"viewUpgradeOptionsTitle": "Vous avez découvert une capacité premium !",
|
||||
"WaitForHostMsg": "La conférence <b>{{room}}</b> n'a pas encore commencé. Si vous en êtes l'hôte, veuillez vous authentifier. Sinon, veuillez attendre son arrivée.",
|
||||
"WaitForHostMsgWOk": "La conférence <b>{{room}}</b> n'a pas encore commencé. Si vous en êtes l'hôte, veuillez appuyer sur Ok pour vous authentifier. Sinon, veuillez attendre son arrivée.",
|
||||
"WaitingForHostTitle": "En attente du hôte ...",
|
||||
"WaitingForHostTitle": "En attente de l'hôte ...",
|
||||
"Yes": "Oui",
|
||||
"yourEntireScreen": "Votre écran entier",
|
||||
"remoteUserControls": "Contrôles de l'utilisateur distant {{username}}",
|
||||
@@ -346,7 +384,7 @@
|
||||
"title": "Document partagé"
|
||||
},
|
||||
"e2ee": {
|
||||
"labelToolTip": "L'audio et la vidéo de cette conférence sont chiffrés de Bout-en-Bout"
|
||||
"labelToolTip": "Le son et la vidéo de cette conférence sont chiffrés de Bout-en-Bout"
|
||||
},
|
||||
"embedMeeting": {
|
||||
"title": "Intégrer cette réunion"
|
||||
@@ -368,9 +406,11 @@
|
||||
"image4" : "Lampadaire noir",
|
||||
"image5" : "Montagne",
|
||||
"image6" : "Forêt ",
|
||||
"image7" : "Lever du soleil",
|
||||
"image7" : "Lever de soleil",
|
||||
"desktopShareError": "Impossible de créer le partage de bureau",
|
||||
"desktopShare":"Partage de bureau"
|
||||
"desktopShare":"Partage de bureau",
|
||||
"webAssemblyWarning": "WebAssembly non supporté",
|
||||
"backgroundEffectError": "Erreur dans l'application de l'effet d'arrière-plan."
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Moyen",
|
||||
@@ -405,8 +445,12 @@
|
||||
"genericError": "Oups, quelque chose a mal tourné.",
|
||||
"inviteLiveStream": "Pour voir la diffusion en direct de cette réunion, cliquez sur ce lien : {{url}}",
|
||||
"invitePhone": "Pour rejoindre depuis un téléphone, saisissez : {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "Vous cherchez un numéro d'appel différent ?\nAfficher les numéros d'appel de la réunion: {{url}}\n\n\nSi vous appelez également via un téléphone de salle, vous pouvez vous connecter sans audio: {{silentUrl}}",
|
||||
"invitePhoneAlternatives": "Vous cherchez un numéro d'appel différent ?\nAfficher les numéros d'appel de la réunion: {{url}}\n\n\nSi vous appelez également via un téléphone de réunion, vous pouvez vous connecter sans audio: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "Pour rejoindre en utilisant l'adresse SIP, entrez ceci : {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} vous invite à une réunion.",
|
||||
"inviteTextiOSJoinSilent": "Si vous téléphonez avec un téléphone de réunion, utilisez ce lien pour rejoindre sans vous connecter en audio: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Clickez le lien suivant pour rejoindre: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "Pour rejoindre par téléphone, utilisez ce numéro: {{number}},,{{conferenceID}}#. Si vous voulez utiliser un autre numéro, voici la liste complête: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Vous êtes invité(e) à participer à une réunion.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} vous invite à une réunion.\n",
|
||||
"inviteURLSecondPart": "\nRejoindre la réunion :\n{{url}}\n",
|
||||
@@ -417,6 +461,7 @@
|
||||
"noRoom": "Aucune réunion n'a été spécifiée pour l'appel entrant.",
|
||||
"numbers": "Numéros d'appel",
|
||||
"password": "$t(lockRoomPasswordUppercase) :",
|
||||
"sip": "adresse SIP",
|
||||
"title": "Partager",
|
||||
"tooltip": "Partager le lien et les informations de connexion pour cette conférence",
|
||||
"label": "Information de la réunion"
|
||||
@@ -430,7 +475,7 @@
|
||||
"send": "Envoyer"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "Nous avons trébuché un peu.",
|
||||
"msg": "Il y a eu un petit problème.",
|
||||
"retry": "Réessayer",
|
||||
"support": "Support",
|
||||
"supportMsg": "Si ceci persiste, contactez"
|
||||
@@ -454,6 +499,8 @@
|
||||
"videoMute": "Démarrer / Arrêter votre caméra"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"limitNotificationDescriptionWeb": "En raison d'une forte demande, votre diffusion sera limitée à {{limit}} min. Pour une diffusion illimitée, essayez <a href={{url}} rel='noopener noreferrer' target='_blank'> {{app}} </a>.",
|
||||
"limitNotificationDescriptionNative": "Votre diffusion sera limitée à {{limit}} min. Pour une diffusion illimitée, essayez {{app}}.",
|
||||
"busy": "Nous tentons de libérer des ressources de diffusion. Veuillez réessayez dans quelques minutes.",
|
||||
"busyTitle": "Tous les flux sont actuellement occupés",
|
||||
"changeSignIn": "Changer de compte.",
|
||||
@@ -461,8 +508,6 @@
|
||||
"chooseCTA": "Choisissez une option de diffusion. Vous êtes actuellement connecté comme {{email}}.",
|
||||
"enterStreamKey": "Entrez votre clé de diffusion Youtube ici",
|
||||
"error": "La diffusion a échouée. Veuillez réessayer ultérieurement.",
|
||||
"enterStreamKey": "Entrez votre clé de flux direct YouTube ici.",
|
||||
"error": "Le Streaming a échoué. Veuillez réessayer.",
|
||||
"errorAPI": "Une erreur s'est produite lors de l'accès à vos diffusions YouTube. Veuillez réessayer de vous connecter.",
|
||||
"errorLiveStreamNotEnabled": "La diffusion en direct n'est pas activée pour {{email}}. Merci de l'activer ou de vous connecter avec un compte où elle est déjà activée.",
|
||||
"expandedOff": "La diffusion en direct a été arrêtée",
|
||||
@@ -470,15 +515,15 @@
|
||||
"expandedPending": "La diffusion en direct a commencé ...",
|
||||
"failedToStart": "La diffusion n'a pas réussi à démarrer",
|
||||
"getStreamKeyManually": "Nous n'avons pas réussi à récupérer un flux de direct. Essayez d'obtenir votre clé de diffusion en direct sur YouTube.",
|
||||
"inProgress": "Enregisrtement ou diffusion en cours",
|
||||
"invalidStreamKey": "La clé de diffusion en direct n'est peut-être pas correcte.",
|
||||
"limitNotificationDescriptionWeb": "En raison d'une forte demande, votre diffusion sera limitée à {{limit}} min. Pour un streaming illimité, essayez <a href={{url}} rel='noopener noreferrer' target='_blank'> {{app}} </a>.",
|
||||
"limitNotificationDescriptionNative": "Votre diffusion sera limitée à {{limit}} min. Pour un streaming illimité, essayez {{app}}.",
|
||||
"off": "La diffusion en direct (streaming) a été arrêté",
|
||||
"offBy": "{{name}} a arrêté la diffusion en direct",
|
||||
"on": "En direct",
|
||||
"onBy": "{{name}} a démarré la diffusion en direct",
|
||||
"pending": "Lancement du direct ...",
|
||||
"serviceName": "Service de diffusion en direct",
|
||||
"sessionAlreadyActive": "Cette session est déjà en cours d'enregistrement ou de diffusion.",
|
||||
"signedInAs": "Vous êtes connecté en tant que :",
|
||||
"signIn": "Se connecter avec Google",
|
||||
"signInCTA": "Connectez vous ou saisissez votre clé de diffusion Youtube.",
|
||||
@@ -509,7 +554,7 @@
|
||||
"finishedModerator": "L'enregistrement de la session {{token}} s'est terminé. L'enregistrement a bien été sauvegardée. Merci de demander aux autres participants de soumettre leurs enregistrements.",
|
||||
"notModerator": "Vous n'êtes pas le modérateur. Vous ne pouvez pas démarrer ou arrêter un enregistrement local."
|
||||
},
|
||||
"moderator": "Modérateur ",
|
||||
"moderator": "Droits de modérateur accordés",
|
||||
"no": "Non",
|
||||
"participant": "Participant(e)",
|
||||
"participantStats": "Statistiques du participant",
|
||||
@@ -522,13 +567,15 @@
|
||||
"lockRoomPasswordUppercase": "Mot de passe",
|
||||
"me": "moi",
|
||||
"notify": {
|
||||
"allowAction": "Permettre",
|
||||
"allowedUnmute": "Vous pouvez réactiver votre écran, votre caméra ou partager votre écran.",
|
||||
"connectedOneMember": "{{name}} a rejoint la réunion",
|
||||
"connectedThreePlusMembers": "{{name}} et {{count}} autres personnes ont rejoint la réunion",
|
||||
"connectedTwoMembers": "{{first}} et {{second}} ont rejoint la réunion",
|
||||
"disconnected": "déconnecté",
|
||||
"focus": "Focus de conférence",
|
||||
"focusFail": "{{component}} n'est pas disponible - réessayez dans {{ms}} sec",
|
||||
"grantedTo": "Droits modérateur accordés à {{to}} !",
|
||||
"hostAskedUnmute": "Le modérateur souhaite vous donner la parole",
|
||||
"invitedOneMember": "{{name}} a été invité(e)",
|
||||
"invitedThreePlusMembers": "{{name}} et {{count}} autres ont été invités",
|
||||
"invitedTwoMembers": "{{first}} et {{second}} ont été invités",
|
||||
@@ -549,42 +596,62 @@
|
||||
"somebody": "Quelqu'un",
|
||||
"startSilentTitle": "Vous avez rejoint sans sortie audio !",
|
||||
"startSilentDescription": "Rejoignez la réunion de nouveau pour activer l'audio",
|
||||
"suboptimalBrowserWarning": "Nous craignons que votre expérience de réunion en ligne ne soit bonne ici. Nous cherchons des moyens d'améliorer cela, mais d'ici-là, essayez d'utiliser l'un des <a href='{{recommendedBrowserPageLink}}' target='_blank'>navigateurs supportés</a>.",
|
||||
"suboptimalBrowserWarning": "Nous craignons que votre expérience de réunion en ligne ne soit pas idéale ici. Nous cherchons des moyens d'améliorer cela, mais d'ici-là, essayez d'utiliser l'un des <a href='{{recommendedBrowserPageLink}}' target='_blank'>navigateurs supportés</a>.",
|
||||
"suboptimalExperienceTitle": "Avertissement du navigateur",
|
||||
"unmute": "Rétablir le son",
|
||||
"newDeviceCameraTitle": "Nouvelle caméra détectée",
|
||||
"newDeviceAudioTitle": "Nouveau périphérique audio détecté",
|
||||
"newDeviceAction": "Utiliser",
|
||||
"OldElectronAPPTitle": "Vulnérabilité de sécurité !",
|
||||
"oldElectronClientDescription1": "Vous semblez utiliser une ancienne version du client Jitsi Meet qui présente des vulnérabilités de sécurité connues. Veuillez vous assurer de mettre à jour vers notre ",
|
||||
"OldElectronAPPTitle": "Faille de sécurité !",
|
||||
"oldElectronClientDescription1": "Vous semblez utiliser une ancienne version du client Jitsi Meet qui présente des failles de sécurité connues. Veuillez vous assurer de mettre à jour vers notre ",
|
||||
"oldElectronClientDescription2": "dernière build",
|
||||
"oldElectronClientDescription3": " rapidement !",
|
||||
"moderationInEffectDescription": "Merci de levez la main pour demander la parole.",
|
||||
"moderationInEffectCSDescription": "Merci de lever la main si vous voulez partager votre écran.",
|
||||
"moderationInEffectVideoDescription": "Merci de lever la main si vous souhaitez démarrer votre caméra.",
|
||||
"moderationInEffectTitle": "Votre micro est coupé par le modérateur",
|
||||
"moderationInEffectCSTitle": "Le partage d'écran est interdit par le modérateur",
|
||||
"moderationInEffectVideoTitle": "Votre caméra est coupée par le modérateur",
|
||||
"moderationRequestFromModerator": "Le modérateur souhaite que vous activiez votre micro",
|
||||
"moderationRequestFromParticipant": "Souhaite parler",
|
||||
"moderationStartedTitle": "Modération démarrée",
|
||||
"moderationStoppedTitle": "Modération arrêtée",
|
||||
"moderationToggleDescription": "par {{participantDisplayName}}",
|
||||
"raiseHandAction": "Lever la main",
|
||||
"reactionSounds": "Bloquer les réactions sonores",
|
||||
"groupTitle": "Notifications"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Fermer",
|
||||
"header": "Participants",
|
||||
"headings": {
|
||||
"lobby": "Salle d'attente ({{count}})",
|
||||
"participantsList": "Participants de la réunion ({{count}})",
|
||||
"waitingLobby": "Dans la salle d'attente ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Autoriser les participant à:",
|
||||
"allow": "Autoriser les participants à:",
|
||||
"allowVideo": "permettre la vidéo",
|
||||
"audioModeration": "réouvrir leur micro",
|
||||
"blockEveryoneMicCamera": "Bloquer tous les micros et caméras",
|
||||
"invite": "Inviter quelqu'un",
|
||||
"askUnmute": "Demander de réactiver le micro",
|
||||
"moreModerationActions": "Options de modération supplémentaires",
|
||||
"moreParticipantOptions": "Options supplémentaires pour les participants",
|
||||
"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"
|
||||
}
|
||||
"unblockEveryoneMicCamera": "Débloquer tous les micros et caméras",
|
||||
"videoModeration": "Démarrer leur vidéo"
|
||||
},
|
||||
"search": "Rechercher des participants"
|
||||
},
|
||||
"passwordSetRemotely": "défini par un autre participant",
|
||||
"passwordDigitsOnly": "Jusqu'à {{number}} chiffres",
|
||||
"polls": {
|
||||
"by": "Par {{ name }}",
|
||||
"create": {
|
||||
"addOption": "Ajouter une option",
|
||||
"answerPlaceholder": "Option {{index}}",
|
||||
@@ -609,7 +676,7 @@
|
||||
},
|
||||
"notification": {
|
||||
"title": "Un nouveau sondage a été ajouté à la réunion",
|
||||
"description": "Ouvrez l'onget des sondages pour voter"
|
||||
"description": "Ouvrez l'onglet des sondages pour voter"
|
||||
}
|
||||
},
|
||||
"poweredby": "produit par",
|
||||
@@ -629,8 +696,8 @@
|
||||
"poor": "Vous avez une mauvaise connexion"
|
||||
},
|
||||
"connectionDetails": {
|
||||
"audioClipping": "Attendez vous à ce que votre audio soit coupé.",
|
||||
"audioHighQuality": "Votre audio sera de bonne qualité.",
|
||||
"audioClipping": "Attendez vous à ce que votre son soit coupé.",
|
||||
"audioHighQuality": "Votre son sera de bonne qualité.",
|
||||
"audioLowNoVideo": "Attendez vous à une faible qualité audio et aucune vidéo",
|
||||
"goodQuality": "Impressionnant ! La qualité de vos médias sera excellente",
|
||||
"noMediaConnectivity": "Nous n'avons pas pu trouver un moyen d'établir une connectivité multimédia pour ce test. Cela est généralement causé par un pare-feu ou un NAT.",
|
||||
@@ -652,6 +719,7 @@
|
||||
"errorDialOutFailed": "Impossible de composer le numéro. L'appel a échoué",
|
||||
"errorDialOutStatus": "Erreur lors de l'obtention de l'état d'appel sortant",
|
||||
"errorMissingName": "Veuillez entrer votre nom pour entrer en conférence",
|
||||
"errorNoPermissions": "Vous devez permettre l'accès microphone et caméra",
|
||||
"errorStatusCode": "Erreur de numérotation, code d'état: {{status}}",
|
||||
"errorValidation": "La validation du numéro a échoué",
|
||||
"iWantToDialIn": "Je veux me connecter",
|
||||
@@ -662,7 +730,6 @@
|
||||
"linkCopied": "Lien copié dans le presse-papiers",
|
||||
"lookGood": "Il semble que votre microphone fonctionne correctement",
|
||||
"or": "ou",
|
||||
"calling": "Appel",
|
||||
"premeeting": "Pré-séance",
|
||||
"showScreen": "Activer l'écran de pré-séance",
|
||||
"startWithPhone": "Commencez avec l'audio du téléphone",
|
||||
@@ -689,25 +756,29 @@
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Choisissez un pseudo",
|
||||
"setEmailInput": "Entrez une adresse e-mail",
|
||||
"setEmailInput": "Entrez une adresse email",
|
||||
"setEmailLabel": "Définir votre courriel Gravatar",
|
||||
"title": "Profil"
|
||||
},
|
||||
"raisedHand": "Aimerait prendre la parole",
|
||||
"recording": {
|
||||
"limitNotificationDescriptionWeb": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez <a href={{url}} rel='noopener noreferrer' target='_blank'> {{app}} </a>.",
|
||||
"limitNotificationDescriptionNative": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez <3> {{app}} </3>.",
|
||||
"authDropboxText": "Téléchargement vers Dropbox",
|
||||
"availableSpace": "Espace disponible : {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)",
|
||||
"beta": "BETA",
|
||||
"busy": "Nous sommes en train de libérer les ressources d'enregistrement. Réessayez dans quelques minutes.",
|
||||
"busyTitle": "Tous les enregistreurs sont actuellement occupés",
|
||||
"copyLink": "Copier lien",
|
||||
"error": "Échec de l'enregistrement. Veuillez réessayer.",
|
||||
"errorFetchingLink": "Erreur de récupération du lien d'enregistrement.",
|
||||
"expandedOff": "L'enregistrement a été arrêté",
|
||||
"expandedOn": "Cette conférence est actuellement en cours d'enregistrement.",
|
||||
"expandedPending": "Démarrage de l'enregistrement ...",
|
||||
"failedToStart": "L'enregistrement n'a pas réussi à démarrer",
|
||||
"fileSharingdescription": "Partager l'enregistrement avec les participants de la réunion",
|
||||
"limitNotificationDescriptionWeb": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez <a href={{url}} rel='noopener noreferrer' target='_blank'> {{app}} </a>.",
|
||||
"limitNotificationDescriptionNative": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez <3> {{app}} </3>.",
|
||||
"inProgress": "Enregistrement ou diffusion en cours",
|
||||
"linkGenerated": "Nous avons généré un lien à votre enregistrement.",
|
||||
"live": "DIRECT",
|
||||
"loggedIn": "Connecté en tant que {{userName}}",
|
||||
"off": "Enregistrement arrêté",
|
||||
@@ -719,30 +790,37 @@
|
||||
"serviceDescription": "Votre enregistrement sera enregistré par le service dédié",
|
||||
"serviceDescriptionCloud": "Enregistrement Cloud",
|
||||
"serviceName": "Service d'enregistrement",
|
||||
"sessionAlreadyActive": "Cette session est déjà en cours d'enregistrement ou de diffusion.",
|
||||
"signIn": "Se connecter",
|
||||
"signOut": "Se déconnecter",
|
||||
"unavailable": "Oups ! Le {{serviceName}} est actuellement indisponible. Nous tentons de résoudre le problème. Veuillez réessayer plus tard.",
|
||||
"unavailableTitle": "Enregistrement indisponible"
|
||||
"unavailableTitle": "Enregistrement indisponible",
|
||||
"uploadToCloud": "Envoyer vers le cloud"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Tirer pour recharger"
|
||||
},
|
||||
"security": {
|
||||
"about": "Vous pouvez ajouter un mot de passe à votre réunion. Les participants devront fournir le mot de passe avant qu'ils soient autorisés à rejoindre la réunion.",
|
||||
"aboutReadOnly": "Les modérateurs peuvent ajouter un mot de passe à la réunion. Les participants devront fournir le mot de passe avant qu'ils soient autorisés à rejoindre la réunion.",
|
||||
"about": "Vous pouvez ajouter un mot de passe à votre réunion. Les participants devront fournir le mot de passe avant de pouvoir rejoindre la réunion.",
|
||||
"aboutReadOnly": "Les modérateurs peuvent ajouter un mot de passe à la réunion. Les participants devront fournir le mot de passe avant de pouvoir rejoindre la réunion.",
|
||||
"insecureRoomNameWarning": "Le nom de la salle est peu sûr. Des participants non désirés peuvent rejoindre votre réunion. Pensez à sécuriser votre réunion en cliquant sur le bouton de sécurité.",
|
||||
"securityOptions": "Options de sécurité"
|
||||
},
|
||||
"settings": {
|
||||
"calendar": {
|
||||
"about": "L'intégration de {{appName}} avec votre calendrier permet d'accéder de manière sécurisée aux événement à venir.",
|
||||
"about": "L'intégration de {{appName}} avec votre calendrier permet d'accéder de manière sécurisée aux événements à venir.",
|
||||
"disconnect": "Se déconnecter",
|
||||
"microsoftSignIn": "Se connecter avec Microsoft",
|
||||
"signedIn": "Accès aux événements du calendrier {{email}}. Cliquez sur le bouton se déconnecter ci-dessous pour arrêter l'accès aux événements du calendrier.",
|
||||
"title": "Calendrier"
|
||||
},
|
||||
"desktopShareFramerate": "Images par seconde pour le Partage d'écran",
|
||||
"desktopShareWarning": "Vous devez repartager l'écran pour que ces paramètres soient utilisés.",
|
||||
"desktopShareHighFpsWarning": "Augmenter le nombre d'images par seconde pour le partage d'écran peut impacter votre bande passante. Vous devez repartager l'écran pour que ces paramètres soient utilisés.",
|
||||
"devices": "Périphériques",
|
||||
"followMe": "Tout le monde me suit",
|
||||
"framesPerSecond": "images par seconde",
|
||||
"incomingMessage": "un message arrive",
|
||||
"language": "Langue",
|
||||
"loggedIn": "Connecté en tant que {{name}}",
|
||||
"microphones": "Microphones",
|
||||
@@ -750,13 +828,19 @@
|
||||
"more": "Plus",
|
||||
"name": "Nom",
|
||||
"noDevice": "Aucun",
|
||||
"participantJoined": "un participant arrive",
|
||||
"participantLeft": "un participant quitte",
|
||||
"playSounds": "Jouer un son quand",
|
||||
"reactions": "il y a une réaction à la réunion",
|
||||
"sameAsSystem": "Identique au système ({{label}})",
|
||||
"selectAudioOutput": "Sortie audio",
|
||||
"selectCamera": "Caméra",
|
||||
"selectMic": "Microphone",
|
||||
"speakers": "Intervenants",
|
||||
"sounds": "Sons",
|
||||
"speakers": "Haut-parleurs",
|
||||
"startAudioMuted": "Tout le monde commence en muet",
|
||||
"startVideoMuted": "Tout le monde commence sans vidéo",
|
||||
"talkWhileMuted": "vous parlez en étant muet",
|
||||
"title": "Paramètres"
|
||||
},
|
||||
"settingsView": {
|
||||
@@ -787,12 +871,20 @@
|
||||
},
|
||||
"speaker": "Haut-parleur",
|
||||
"speakerStats": {
|
||||
"search": "Recherche",
|
||||
"hours": "{{count}}h",
|
||||
"minutes": "{{count}}m",
|
||||
"name": "Nom",
|
||||
"seconds": "{{count}}s",
|
||||
"speakerStats": "Statistiques de l'interlocuteur",
|
||||
"speakerTime": "Temps de l'interlocuteur"
|
||||
"speakerTime": "Temps de l'interlocuteur",
|
||||
"happy": "Content",
|
||||
"neutral": "Indifférent",
|
||||
"sad": "Triste",
|
||||
"surprised": "Surpris",
|
||||
"angry": "En colère",
|
||||
"fearful": "Effrayé",
|
||||
"disgusted": "Dégoûté"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
@@ -808,19 +900,24 @@
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Activer / Désactiver le mode voix uniquement",
|
||||
"audioRoute": "Sélectionner la source audio",
|
||||
"boo": "Hou",
|
||||
"breakoutRoom": "Rejoindre/quitter une salle annexe",
|
||||
"callQuality": "Ajuster la qualité vidéo",
|
||||
"cc": "Activer / Désactiver les sous-titres",
|
||||
"chat": "Afficher / Masquer la discussion instantanée",
|
||||
"clap": "Applaudir",
|
||||
"document": "Activer / Désactiver le document partagé",
|
||||
"download": "Télécharger nos applications",
|
||||
"embedMeeting": "Intégrer la réunion",
|
||||
"feedback": "Laisser des commentaires",
|
||||
"fullScreen": "Activer / Désactiver le plein écran",
|
||||
"grantModerator": "Nommer modérateur",
|
||||
"grantModerator": "donner des droits de modérateur",
|
||||
"hangup": "Quitter la conversation",
|
||||
"help": "Aide",
|
||||
"invite": "Inviter des participants",
|
||||
"kick": "Expulser le participant",
|
||||
"laugh": "Rire",
|
||||
"like": "Approuver",
|
||||
"lobbyButton": "Activer / Désactiver le mode salle d'attente",
|
||||
"localRecording": "Activer / Désactiver les contrôles d'enregistrement local",
|
||||
"lockRoom": "Activer / Désactiver le mot de passe de la réunion",
|
||||
@@ -837,6 +934,7 @@
|
||||
"privateMessage": "Envoyer un message privé",
|
||||
"profile": "Éditer votre profil",
|
||||
"raiseHand": "Lever la main",
|
||||
"reactionsMenu": "Ouvrir / fermer le menu réactions",
|
||||
"recording": "Activer / Désactiver l'enregistrement",
|
||||
"remoteMute": "Couper le micro du participant",
|
||||
"remoteVideoMute": "Couper la caméra du participant",
|
||||
@@ -848,7 +946,9 @@
|
||||
"shareYourScreen": "Activer / Désactiver le partage d'écran",
|
||||
"shortcuts": "Afficher / Masquer les raccourcis",
|
||||
"show": "Afficher en premier plan",
|
||||
"silence": "Silence",
|
||||
"speakerStats": "Afficher / Cacher les statistiques de parole",
|
||||
"surprised": "Surpris",
|
||||
"tileView": "Activer / Désactiver la vue mosaïque",
|
||||
"toggleCamera": "Changer de caméra",
|
||||
"toggleFilmstrip": "Basculer de pellicule",
|
||||
@@ -860,13 +960,18 @@
|
||||
},
|
||||
"addPeople": "Ajouter des personnes à votre appel",
|
||||
"audioSettings": "Paramètres audio",
|
||||
"videoSettings": "Paramètres vidéo",
|
||||
"audioOnlyOff": "Désactiver le mode bande passante réduite",
|
||||
"audioOnlyOn": "Activer le mode bande passante réduite",
|
||||
"audioRoute": "Sélectionner la source audio",
|
||||
"authenticate": "Authentifiez-vous",
|
||||
"boo": "Huer",
|
||||
"callQuality": "Ajuster la qualité vidéo",
|
||||
"chat": "Ouvrir / Fermer le chat",
|
||||
"clap": "Applaudir",
|
||||
"closeChat": "Fermer le chat",
|
||||
"closeReactionsMenu": "Fermer le menu réactions",
|
||||
"disableReactionSounds": "Vous pouvez interdire les réactions sonores à cette réunion",
|
||||
"documentClose": "Fermer le document partagé",
|
||||
"documentOpen": "Ouvrir le document partagé",
|
||||
"download": "Télécharger nos applications",
|
||||
@@ -880,6 +985,10 @@
|
||||
"hangup": "Quitter",
|
||||
"help": "Aide",
|
||||
"invite": "Inviter des participants",
|
||||
"joinBreakoutRoom": "Rejoindre salle annexe",
|
||||
"laugh": "Rire",
|
||||
"leaveBreakoutRoom": "Quitter salle annexe",
|
||||
"like": "Approuver",
|
||||
"lobbyButtonDisable": "Désactiver le mode salle d'attente / contrôle des participant(e)s",
|
||||
"lobbyButtonEnable": "Activer le mode salle d'attente / contrôle des participant(e)s",
|
||||
"login": "Connexion",
|
||||
@@ -896,31 +1005,40 @@
|
||||
"noAudioSignalDialInDesc": "Vous pouvez également appeler en utilisant :",
|
||||
"noAudioSignalDialInLinkDesc": "Numéros d'appel",
|
||||
"noisyAudioInputTitle": "Votre microphone semble être bruyant !",
|
||||
"noisyAudioInputDesc": "Il semble que votre microphone fasse du bruit, veuillez le couper ou changer de périphérique.",
|
||||
"noisyAudioInputDesc": "Il semble que votre microphone soit bruyant, veuillez le couper ou changer de périphérique.",
|
||||
"openChat": "Ouvrir le chat",
|
||||
"openReactionsMenu": "Ouvrir le menu Réactions",
|
||||
"participants": "Participants",
|
||||
"pip": "Entrer en mode Picture-in-Picture",
|
||||
"privateMessage": "Envoyer un message privé",
|
||||
"profile": "Éditer votre profil",
|
||||
"raiseHand": "Lever / Baisser la main",
|
||||
"raiseYourHand": "Lever la main",
|
||||
"reactionBoo": "Envoyer réaction huer",
|
||||
"reactionClap": "Envoyer réaction applaudir",
|
||||
"reactionLaugh": "Envoyer réaction rire",
|
||||
"reactionLike": "Envoyer réaction approuver",
|
||||
"reactionSilence": "Envoyer réaction silence",
|
||||
"reactionSurprised": "Envoyer réaction surprise",
|
||||
"security": "Options de sécurité",
|
||||
"Settings": "Paramètres",
|
||||
"shareaudio": "Partager l'audio",
|
||||
"sharedvideo": "Partager une vidéo YouTube",
|
||||
"shareRoom": "Inviter quelqu'un",
|
||||
"shortcuts": "Afficher les raccourcis",
|
||||
"silence": "Silence",
|
||||
"speakerStats": "Statistiques de l'interlocuteur",
|
||||
"startScreenSharing": "Démarrer le partage d'écran",
|
||||
"startSubtitles": "Activer les sous-titres",
|
||||
"stopAudioSharing": "Arrêter le partage son",
|
||||
"stopScreenSharing": "Arrêter le partage d'écran",
|
||||
"stopSubtitles": "Désactiver les sous-titres",
|
||||
"stopSharedVideo": "Arrêter la vidéo YouTube",
|
||||
"surprised": "Surpris",
|
||||
"talkWhileMutedPopup": "Vous voulez parler ? Votre micro est coupé.",
|
||||
"tileViewToggle": "Activer / Désactiver la vue mosaïque",
|
||||
"toggleCamera": "Changer de caméra",
|
||||
"videomute": "Démarrer / Arrêter la caméra",
|
||||
"videoSettings": "Paramètres vidéo",
|
||||
"selectBackground": "Sélectionner un arrière-plan"
|
||||
},
|
||||
"transcribing": {
|
||||
@@ -959,7 +1077,10 @@
|
||||
"pending": "{{displayName}} a été invité(e)"
|
||||
},
|
||||
"videoStatus": {
|
||||
"adjustFor": "Ajuster pour:",
|
||||
"audioOnly": "VOIX",
|
||||
"bestPerformance": "la meilleure performance",
|
||||
"highestQuality": "la meilleure qualité",
|
||||
"audioOnlyExpanded": "Vous êtes en mode bande passante réduite. Dans ce mode, vous ne recevrez que le partage audio et le partage d'écran.",
|
||||
"callQuality": "Qualité vidéo",
|
||||
"hd": "HD",
|
||||
@@ -970,6 +1091,7 @@
|
||||
"ld": "BD",
|
||||
"ldTooltip": "Regardez la vidéo en basse définition",
|
||||
"lowDefinition": "Basse définition",
|
||||
"performanceSettings": "Paramètres de performance",
|
||||
"sd": "MD",
|
||||
"sdTooltip": "Regardez la vidéo en définition standard",
|
||||
"standardDefinition": "Moyenne Définition"
|
||||
@@ -981,7 +1103,7 @@
|
||||
"domuteOthers": "Couper le micro de tous les autres",
|
||||
"domuteVideoOfOthers": "Couper la caméra des autres",
|
||||
"flip": "Balancer",
|
||||
"grantModerator": "Nommer modérateur",
|
||||
"grantModerator": "Donner des droits de modérateur",
|
||||
"kick": "Exclure",
|
||||
"moderator": "Modérateur",
|
||||
"mute": "Un participant a coupé son micro",
|
||||
@@ -1043,6 +1165,12 @@
|
||||
"button": "Inviter d'autres personnes",
|
||||
"youAreAlone": "Vous êtes le seul participant de la réunion"
|
||||
},
|
||||
"termsView": {
|
||||
"header": "Conditions d'utilisation"
|
||||
},
|
||||
"privacyView": {
|
||||
"header": "Confidentialité"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Centre d'aide"
|
||||
},
|
||||
@@ -1061,6 +1189,7 @@
|
||||
"enableDialogText": "Le mode salle d'attente vous permet de protéger votre réunion en autorisant les personnes à entrer qu'après l'approbation formelle d'un modérateur.",
|
||||
"enterPasswordButton": "Saisissez un mot de passe de réunion",
|
||||
"enterPasswordTitle": "Saisissez le mot de passe pour rejoindre la réunion",
|
||||
"errorMissingPassword": "Veuillez saisir le mot de passe de la réunion",
|
||||
"invalidPassword": "Mot de passe invalide",
|
||||
"joiningMessage": "Vous allez rejoindre une réunion dès que quelqu'un aura accepté votre demande",
|
||||
"joinWithPasswordMessage": "Tentative de rejoindre avec mot de passe, patientez s'il vous plait ...",
|
||||
@@ -1079,6 +1208,7 @@
|
||||
"passwordField": "Veuillez saisir le mot de passe de la réunion",
|
||||
"passwordJoinButton": "Rejoindre",
|
||||
"reject": "Refuser",
|
||||
"rejectAll": "Refuser tout",
|
||||
"toggleLabel": "Activer la salle d'attente"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -479,8 +479,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Állítsa be a megjelenő nevet",
|
||||
"setEmailInput": "Adjon meg egy e-mail címet",
|
||||
"setEmailLabel": "Adja meg a gravatar e-mail címet",
|
||||
"setEmailInput": "Adjon meg egy email címet",
|
||||
"setEmailLabel": "Adja meg a gravatar email címet",
|
||||
"title": "Profil"
|
||||
},
|
||||
"raisedHand": "Beszélni szeretnék",
|
||||
@@ -549,7 +549,7 @@
|
||||
"disableCallIntegration": "A natív hívások integrációjának letiltása",
|
||||
"disableP2P": "Kapcsolja ki a peer-to-peer módot",
|
||||
"displayName": "Megjelenő név",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Beállítások",
|
||||
"profileSection": "Profil",
|
||||
"serverURL": "Kiszolgáló URL",
|
||||
|
||||
@@ -487,7 +487,7 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Set your display name",
|
||||
"setEmailInput": "Enter e-mail",
|
||||
"setEmailInput": "Enter email",
|
||||
"setEmailLabel": "Set your gravatar email",
|
||||
"title": "Profile"
|
||||
},
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
"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",
|
||||
"defaultEmail": "Tua email di default",
|
||||
"disabled": "Non puoi invitare persone.",
|
||||
"failedToAdd": "L'aggiunta di nuove persone è fallita",
|
||||
"footerText": "La chiamata all'esterno è disabilitata.",
|
||||
"googleEmail": "E-mail Google",
|
||||
"googleEmail": "Email Google",
|
||||
"inviteMoreHeader": "Sei l'unico presente nella riunione",
|
||||
"inviteMoreMailSubject": "Unisciti alla riunione {{appName}}",
|
||||
"inviteMorePrompt": "Invita altre persone",
|
||||
"linkCopied": "Collegamento copiato negli appunti",
|
||||
"noResults": "Nessun risultato corrispondente",
|
||||
"outlookEmail": "E-mail Outlook",
|
||||
"outlookEmail": "Email Outlook",
|
||||
"phoneNumbers": "numeri di telefono",
|
||||
"searching": "Sto cercando...",
|
||||
"shareInvite": "Condividi invito alla riunione",
|
||||
@@ -27,7 +27,7 @@
|
||||
"sipAddresses": "indirizzi SIP",
|
||||
"telephone": "Telefono: {{number}}",
|
||||
"title": "Invita persone a questa riunione",
|
||||
"yahooEmail": "E-mail Yahoo"
|
||||
"yahooEmail": "Email Yahoo"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -736,8 +736,8 @@
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Imposta il nome da visualizzare",
|
||||
"setEmailInput": "Inserisci e-mail",
|
||||
"setEmailLabel": "Imposta l'e-mail gravatar",
|
||||
"setEmailInput": "Inserisci email",
|
||||
"setEmailLabel": "Imposta l'email gravatar",
|
||||
"title": "Profilo"
|
||||
},
|
||||
"raisedHand": "Vorrebbe parlare",
|
||||
@@ -834,7 +834,7 @@
|
||||
"disableCrashReporting": "Disattiva la diagnostica dei crash",
|
||||
"disableCrashReportingWarning": "Sei sicuro di voler disattivare la diagnostica dei crash? Quest'impostazione verrà eseguita al prossimo avvio dell'app.",
|
||||
"displayName": "Nome visualizzato",
|
||||
"email": "e-mail",
|
||||
"email": "email",
|
||||
"header": "Impostazioni",
|
||||
"profileSection": "Profilo",
|
||||
"serverURL": "URL del server",
|
||||
@@ -1141,7 +1141,7 @@
|
||||
"dialogTitle": "Sala d'attesa",
|
||||
"disableDialogContent": "Sala d'attesa attiva. Questa funzione ti permette di non dare accesso alla riunione a partecipanti indesiderati. Vuoi disattivarla?",
|
||||
"disableDialogSubmit": "Disattiva",
|
||||
"emailField": "Inserisci il tuo indirizzo e-mail",
|
||||
"emailField": "Inserisci il tuo indirizzo email",
|
||||
"enableDialogPasswordField": "Imposta password (opzionale)",
|
||||
"enableDialogSubmit": "Attiva",
|
||||
"enableDialogText": "La sala d'attesa ti permette di proteggere la riunione concedendo l'ingresso solo alle persone autorizzate da un moderatore.",
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
"copyStream": "Link naar livestream kopiëren",
|
||||
"countryNotSupported": "Deze bestemming wordt nog niet ondersteund.",
|
||||
"countryReminder": "Belt u buiten de Verenigde Staten? Vergeet dan niet met de landcode te beginnen.",
|
||||
"defaultEmail": "Uw Standaard E-mail",
|
||||
"defaultEmail": "Uw Standaard Email",
|
||||
"disabled": "U kunt geen personen uitnodigen.",
|
||||
"failedToAdd": "Het toevoegen van deelnemers is mislukt",
|
||||
"footerText": "Uitgaande oproepen zijn uitgeschakeld.",
|
||||
"googleEmail": "Google E-mail",
|
||||
"googleEmail": "Google Email",
|
||||
"inviteMoreHeader": "U bent de enige in de vergadering",
|
||||
"inviteMoreMailSubject": "Deelnemen aan {{appName}}-vergadering",
|
||||
"inviteMorePrompt": "Nodig meer personen uit",
|
||||
@@ -21,7 +21,7 @@
|
||||
"loadingPeople": "Personen om uit te nodigen aan het zoeken",
|
||||
"noResults": "Geen resultaten die overeenkomen met de zoekopdracht",
|
||||
"noValidNumbers": "Voer een telefoonnummer in",
|
||||
"outlookEmail": "Outlook E-mail",
|
||||
"outlookEmail": "Outlook Email",
|
||||
"searchNumbers": "Telefoonnummers toevoegen",
|
||||
"searchPeople": "Personen zoeken",
|
||||
"searchPeopleAndNumbers": "Personen zoeken of hun telefoonnummers toevoegen",
|
||||
@@ -30,7 +30,7 @@
|
||||
"shareStream": "Deel de link naar de livestream",
|
||||
"telephone": "Telefoon: {{number}}",
|
||||
"title": "Personen uitnodigen voor deze vergadering",
|
||||
"yahooEmail": "Yahoo E-mail"
|
||||
"yahooEmail": "Yahoo Email"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -586,8 +586,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Uw weergavenaam instellen",
|
||||
"setEmailInput": "Voer e-mailadres in",
|
||||
"setEmailLabel": "Uw Gravatar e-mail instellen",
|
||||
"setEmailInput": "Voer emailadres in",
|
||||
"setEmailLabel": "Uw Gravatar email instellen",
|
||||
"title": "Profiel"
|
||||
},
|
||||
"raisedHand": "Zou graag willen spreken",
|
||||
@@ -931,7 +931,7 @@
|
||||
"dialogTitle": "Lobby-modus",
|
||||
"disableDialogContent": "Lobby-modus is momenteel ingeschakeld. Deze functie zorgt ervoor dat ongewenste deelnemers niet aan uw vergadering kunnen deelnemen. Wilt u het uitschakelen?",
|
||||
"disableDialogSubmit": "Uitschakelen",
|
||||
"emailField": "Voer uw e-mailadres in",
|
||||
"emailField": "Voer uw emailadres in",
|
||||
"enableDialogPasswordField": "Stel wachtwoord in (optioneel)",
|
||||
"enableDialogSubmit": "Inschakelen",
|
||||
"enableDialogText": "Met de lobby-modus kunt u uw vergadering beveiligen, door deelnemers alleen toe te laten na een formele goedkeuring van een moderator.",
|
||||
|
||||
@@ -251,7 +251,6 @@
|
||||
"muteEveryoneTitle": "Rendre mut tot lo monde ?",
|
||||
"muteParticipantBody": "Poiretz pas lo tornar activar lo microfòn, mai eles pòdon o far quand vòlon.",
|
||||
"muteParticipantButton": "Copar lo son",
|
||||
"muteParticipantDialog": "Volètz vertadièrament copar lo son a aqueste participant ? Poiretz pas lo tornar la votz, mas eles pòdon restablir la comunicacion quand vòlgan.",
|
||||
"muteParticipantTitle": "Copar lo micro als participants ?",
|
||||
"Ok": "D'acòrdi",
|
||||
"passwordLabel": "Aquesta conferéncia es estada barrada per un participant. Mercés de dintrar lo $t(lockRoomPassword) per la rejónher.",
|
||||
@@ -327,11 +326,11 @@
|
||||
"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",
|
||||
"muteParticipantsVideoButton": "Arrestar la vidèo",
|
||||
"muteParticipantsVideoTitle": "Desactivar la camèra d’aqueste participant ?",
|
||||
"noDropboxToken": "Cap de geton Dropbox pas valid",
|
||||
"password": "Senhal",
|
||||
"sessionRestarted": "Sonada reaviada pel pont",
|
||||
"sessionRestarted": "Sonada reaviada a causa d’un problèma de connexion.",
|
||||
"shareAudio": "Contunhar",
|
||||
"shareAudioTitle": "Cossí partejar l’àudio",
|
||||
"shareAudioWarningTitle": "Devètz arrestar lo partiment d’ecran abans lo partiment d’àudio",
|
||||
@@ -361,7 +360,9 @@
|
||||
"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"
|
||||
"localUserControls": "Contraròtles de l’utilizaire local",
|
||||
"muteParticipantsVideoBodyModerationOn": "Poiretz pas li activar de nòu e el tanpauc.",
|
||||
"muteParticipantsVideoDialogModerationOn": "Volètz vertadièrament copar la camèra d’aqueste participant ? Poiretz pas li activar de nòu e el tanpauc."
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "ara es {{status}}"
|
||||
@@ -495,7 +496,9 @@
|
||||
"start": "Aviar una difusion en dirècte",
|
||||
"streamIdHelp": "Qu’es aquò ?",
|
||||
"unavailableTitle": "Difusion en dirècte indisponibla",
|
||||
"youtubeTerms": "Condicions d’utilizacion de YouTube"
|
||||
"youtubeTerms": "Condicions d’utilizacion de YouTube",
|
||||
"sessionAlreadyActive": "Aquesta session es ja en cors d’enregistrament o en difusion en dirèct.",
|
||||
"inProgress": "Enregistrament o difusion en dirècte en cors"
|
||||
},
|
||||
"lobby": {
|
||||
"allow": "Autorizar",
|
||||
@@ -604,7 +607,7 @@
|
||||
"suboptimalExperienceTitle": "Avertiment del navigador",
|
||||
"unmute": "Restablir lo son",
|
||||
"allowAction": "Autorizar",
|
||||
"videoMutedRemotelyTitle": "{{moderator}} a copat vòstra camèra",
|
||||
"videoMutedRemotelyTitle": "{{participantDisplayName}} a copat vòstra vidèo",
|
||||
"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.",
|
||||
@@ -741,7 +744,9 @@
|
||||
"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."
|
||||
"errorFetchingLink": "Error en recuperant lo ligam de l’enregistrament.",
|
||||
"inProgress": "Enregistrament o difusion en dirècte en cors",
|
||||
"sessionAlreadyActive": "Aquesta session es ja en cors d’enregistrament o en difusion en dirèct."
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Tirar per actualizar"
|
||||
@@ -823,7 +828,14 @@
|
||||
"seconds": "{{count}} segondas",
|
||||
"speakerStats": "Estatisticas orator",
|
||||
"speakerTime": "Temps de paraula",
|
||||
"search": "Recercar"
|
||||
"search": "Recercar",
|
||||
"neutral": "Neutre",
|
||||
"sad": "Trist",
|
||||
"surprised": "Surprés",
|
||||
"angry": "Encolerat",
|
||||
"fearful": "Pauruc",
|
||||
"disgusted": "Desgostat",
|
||||
"happy": "Content"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"genericTitle": "Aquesta reünion requerís l'utilizacion del microfòn e de la camèra.",
|
||||
@@ -883,8 +895,8 @@
|
||||
"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",
|
||||
"muteEveryonesVideo": "Copar la vidèo del monde",
|
||||
"muteEveryoneElsesVideo": "Copar la vidèo de los demai",
|
||||
"participants": "Participants",
|
||||
"remoteVideoMute": "Copar la camèra del participant",
|
||||
"shareaudio": "Partejar l’àudio",
|
||||
@@ -894,7 +906,8 @@
|
||||
"expand": "Espandir",
|
||||
"collapse": "Plegar",
|
||||
"muteEveryoneElse": "Copar lo microfòn dels autres",
|
||||
"reactionsMenu": "Dobrir / Tampar lo menú de reaccions"
|
||||
"reactionsMenu": "Dobrir / Tampar lo menú de reaccions",
|
||||
"breakoutRoom": "Rejónher/quitar la sala de reünion"
|
||||
},
|
||||
"addPeople": "Ajustar de monde a vòstra sonada",
|
||||
"audioOnlyOff": "Desactivar lo mòde connexion febla",
|
||||
@@ -975,7 +988,9 @@
|
||||
"reactionLike": "Enviar una reaccion d’aprobacion",
|
||||
"reactionSilence": "Enviar una reaccion de silenci",
|
||||
"reactionSurprised": "Enviar una reaccion de suspresa",
|
||||
"reactionClap": "Enviar una reaccion d’aplaudiment"
|
||||
"reactionClap": "Enviar una reaccion d’aplaudiment",
|
||||
"leaveBreakoutRoom": "Quitar la sala de reünion",
|
||||
"joinBreakoutRoom": "Rejónher la sala de reünion"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Aviar / Arrestat los sostítols",
|
||||
@@ -1025,7 +1040,11 @@
|
||||
"lowDefinition": "Bassa definicion",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Difusion vidèo en definicion estandard",
|
||||
"standardDefinition": "Definicion estandard"
|
||||
"standardDefinition": "Definicion estandard",
|
||||
"performanceSettings": "Paramètres de performança",
|
||||
"adjustFor": "Ajustar per :",
|
||||
"bestPerformance": "Melhora performança",
|
||||
"highestQuality": "Qualitat mai nauta"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Info connexion",
|
||||
@@ -1136,8 +1155,11 @@
|
||||
"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"
|
||||
}
|
||||
"allowVideo": "Autorizar la vidèo",
|
||||
"moreModerationActions": "Mai d’opcions de moderacion",
|
||||
"moreParticipantOptions": "Mai d’opcions de participant"
|
||||
},
|
||||
"search": "Cercar participants"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logotipe, mena a la pagina d'acuèlh",
|
||||
"polls": {
|
||||
@@ -1166,7 +1188,28 @@
|
||||
"notification": {
|
||||
"title": "Un sondatge novèl es estat apondut a la conferéncia",
|
||||
"description": "Dobrissètz l’onglet dels sondatge per votar"
|
||||
}
|
||||
},
|
||||
"by": "Per {{ name }}"
|
||||
},
|
||||
"volumeSlider": "Nivèl de volum"
|
||||
"volumeSlider": "Nivèl de volum",
|
||||
"breakoutRooms": {
|
||||
"actions": {
|
||||
"add": "Apondre una sala de reünion",
|
||||
"close": "Tampar",
|
||||
"join": "Rejónher",
|
||||
"leaveBreakoutRoom": "Quitar la sala de reünion",
|
||||
"more": "Mai",
|
||||
"remove": "Levar",
|
||||
"sendToBreakoutRoom": "Enviar lo participant a :",
|
||||
"autoAssign": "Atribucion auto a las salas de reünion"
|
||||
},
|
||||
"defaultName": "Sala de reünion #{{index}}",
|
||||
"mainRoom": "Sala principala"
|
||||
},
|
||||
"privacyView": {
|
||||
"header": "Confidencialitat"
|
||||
},
|
||||
"termsView": {
|
||||
"header": "Acòrds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -724,7 +724,7 @@
|
||||
"profile": {
|
||||
"avatar": "awatar",
|
||||
"setDisplayNameLabel": "Podaj swoją wyświetlaną nazwę",
|
||||
"setEmailInput": "Wprowadź adres e-mail",
|
||||
"setEmailInput": "Wprowadź adres email",
|
||||
"setEmailLabel": "Ustaw adres poczty elektronicznej swojego Gravatara",
|
||||
"title": "Profil"
|
||||
},
|
||||
@@ -822,7 +822,7 @@
|
||||
"disableCrashReporting": "Wyłącz raportowanie błędów",
|
||||
"disableCrashReportingWarning": "Czy na pewno chcesz wyłączyć raportowanie błędów? Ustawienie zacznie funkcjonować po restarcie aplikacji.",
|
||||
"displayName": "Wyświetlana nazwa",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Ustawienia",
|
||||
"profileSection": "Profil",
|
||||
"serverURL": "Adres URL serwera",
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
"contacts": "contactos",
|
||||
"countryNotSupported": "Ainda não temos suporte para este destino.",
|
||||
"countryReminder": "Está a telefonar para fora dos EUA? Por favor, certifique-se de que começa com o código do país!",
|
||||
"defaultEmail": "O seu e-mail predefinido",
|
||||
"defaultEmail": "O seu email predefinido",
|
||||
"disabled": "Não pode convidar outras pessoas.",
|
||||
"failedToAdd": "Falha ao adicionar participantes",
|
||||
"footerText": "A marcação está desactivada.",
|
||||
"googleEmail": "E-mail do Google",
|
||||
"googleEmail": "Email do Google",
|
||||
"inviteMoreHeader": "Você é o único na reunião",
|
||||
"inviteMoreMailSubject": "Participar na reunião {{appName}}",
|
||||
"inviteMorePrompt": "Convidar mais pessoas",
|
||||
"linkCopied": "Link copiado para a área de transferência",
|
||||
"noResults": "Sem resultados de pesquisa correspondentes",
|
||||
"outlookEmail": "E-mail do Outlook",
|
||||
"outlookEmail": "Email do Outlook",
|
||||
"phoneNumbers": "números de telefone",
|
||||
"searching": "A pesquisar...",
|
||||
"shareInvite": "Partilhar convite de reunião",
|
||||
@@ -27,7 +27,7 @@
|
||||
"sipAddresses": "endereços SIP",
|
||||
"telephone": "Telefone: {{number}}",
|
||||
"title": "Convidar pessoas para esta reunião",
|
||||
"yahooEmail": "E-mail do Yahoo"
|
||||
"yahooEmail": "Email do Yahoo"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -268,12 +268,12 @@
|
||||
"muteEveryoneStartMuted": "A partir de agora, toda a gente começa a ficar calada",
|
||||
"muteParticipantBody": "Não poderá reativá-los, mas eles podem reativar-se a qualquer momento.",
|
||||
"muteParticipantButton": "Silenciar",
|
||||
"muteParticipantDialog": "Tem a certeza de que quer silenciar este participante? Não poderá reativá-los, mas eles podem reativar-se a qualquer momento.",
|
||||
"muteParticipantsVideoDialog": "Tem a certeza de que quer desativar a câmara deste participante? Não poderá voltar a ativar a câmara, mas eles podem voltar a reativá-la a qualquer momento.",
|
||||
"muteParticipantTitle": "Silenciar este participante?",
|
||||
"muteParticipantsVideoDialogModerationOn": "Tem a certeza de que quer desligar a câmara deste participante? Não será capaz de voltar a ligar a câmara e eles também não.",
|
||||
"muteParticipantsVideoButton": "Parar vídeo",
|
||||
"muteParticipantsVideoTitle": "Desativar a câmara deste participante?",
|
||||
"muteParticipantsVideoBody": "Não poderá voltar a ligar a câmara, mas eles podem voltar a ligá-la a qualquer momento.",
|
||||
"muteParticipantsVideoBodyModerationOn": "Não será capaz de voltar a ligar a câmara e eles também não.",
|
||||
"noDropboxToken": "Nenhum token do Dropbox válido",
|
||||
"Ok": "OK",
|
||||
"password": "Palavra-passe",
|
||||
@@ -377,7 +377,7 @@
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Planos de Fundo virtuais",
|
||||
"title": "Planos de fundo virtuais",
|
||||
"blur": "Desfocagem",
|
||||
"slightBlur": "Desfocagem ligeira",
|
||||
"removeBackground": "Remover imagem de fundo",
|
||||
@@ -568,9 +568,9 @@
|
||||
"moderator": "É agora um moderador",
|
||||
"muted": "Você iniciou uma conversa com o microfone desativado.",
|
||||
"mutedTitle": "Você está silenciado!",
|
||||
"mutedRemotelyTitle": "Foi silenciado pelo {{moderador}}",
|
||||
"mutedRemotelyTitle": "Foi silenciado pelo {{participantDisplayName}}",
|
||||
"mutedRemotelyDescription": "Pode sempre voltar a ativar o microfone quando estiver pronto para falar. Silencie de volta quando estiver pronto para manter o barulho afastado da reunião.",
|
||||
"videoMutedRemotelyTitle": "A sua câmara foi desligada pelo {{moderador}}.",
|
||||
"videoMutedRemotelyTitle": "A sua câmara foi desligada pelo {{participantDisplayName}}.",
|
||||
"videoMutedRemotelyDescription": "Pode sempre ligá-la novamente.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removido por outro participante",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) definido por outro participante",
|
||||
@@ -616,22 +616,25 @@
|
||||
"actions": {
|
||||
"allow": "Permitir aos participantes:",
|
||||
"allowVideo": "Permitir vídeo",
|
||||
"audioModeration": "Eles próprios ativam o som",
|
||||
"audioModeration": "Ativarem o microfone deles",
|
||||
"blockEveryoneMicCamera": "Bloquear o microfone e a câmara de todos",
|
||||
"invite": "Convidar alguém",
|
||||
"askUnmute": "Pedir para ligar o microfone",
|
||||
"moreModerationActions": "Mais opções de moderação",
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silenciar todos",
|
||||
"muteEveryoneElse": "Silenciar todos os outros",
|
||||
"stopEveryonesVideo": "Desligar a câmara de todos",
|
||||
"stopVideo": "Desligar a câmara",
|
||||
"unblockEveryoneMicCamera": "Desbloquear o microfone e a câmara de todos",
|
||||
"videoModeration": "Ligar a câmara deles"
|
||||
}
|
||||
"videoModeration": "Ligarem a câmara deles"
|
||||
},
|
||||
"search": "Pesquisar participantes"
|
||||
},
|
||||
"passwordSetRemotely": "Definido por outro participante",
|
||||
"passwordDigitsOnly": "Até {{number}} dígitos",
|
||||
"polls": {
|
||||
"by": "Por {{ name }}",
|
||||
"create": {
|
||||
"addOption": "Adicionar opção",
|
||||
"answerPlaceholder": "Opção {{index}}",
|
||||
@@ -736,7 +739,7 @@
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Definir seu nome de exibição",
|
||||
"setEmailInput": "Digite e-mail",
|
||||
"setEmailInput": "Digite email",
|
||||
"setEmailLabel": "Definir seu email de gravatar",
|
||||
"title": "Perfil"
|
||||
},
|
||||
@@ -834,7 +837,7 @@
|
||||
"disableCrashReporting": "Desativar relatório de falhas",
|
||||
"disableCrashReportingWarning": "Tem a certeza de que quer desativar o relatório de falhas? A configuração será aplicada depois de reiniciar a aplicação.",
|
||||
"displayName": "Nome de exibição",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Configurações",
|
||||
"profileSection": "Perfil",
|
||||
"serverURL": "URL do servidor",
|
||||
@@ -1045,7 +1048,10 @@
|
||||
"pending": "{{displayName}} foi convidado"
|
||||
},
|
||||
"videoStatus": {
|
||||
"adjustFor": "Ajustar para:",
|
||||
"audioOnly": "AUD",
|
||||
"bestPerformance": "Melhor desempenho",
|
||||
"highestQuality": "Máxima qualidade",
|
||||
"audioOnlyExpanded": "Está em modo de baixa largura de banda. Neste modo, receberá apenas partilha de áudio e ecrã.",
|
||||
"callQuality": "Qualidade de vídeo",
|
||||
"hd": "HD",
|
||||
@@ -1056,6 +1062,7 @@
|
||||
"ld": "LD",
|
||||
"ldTooltip": "Ver vídeo em baixa definição",
|
||||
"lowDefinition": "Baixa definição (LD)",
|
||||
"performanceSettings": "Definições de desempenho",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Ver vídeo em definição padrão",
|
||||
"standardDefinition": "Definição padrão"
|
||||
@@ -1141,7 +1148,7 @@
|
||||
"dialogTitle": "Modo sala de espera",
|
||||
"disableDialogContent": "O modo sala de espera está actualmente activada. Esta característica assegura que os participantes indesejados não possam juntar-se à sua reunião. Quer desativá-la?",
|
||||
"disableDialogSubmit": "Desativar",
|
||||
"emailField": "Introduza o seu endereço de e-mail",
|
||||
"emailField": "Introduza o seu endereço de email",
|
||||
"enableDialogPasswordField": "Definir senha (opcional)",
|
||||
"enableDialogSubmit": "Habilitar",
|
||||
"enableDialogText": "O modo sala de espera permite-lhe proteger a sua reunião apenas permitindo a entrada de pessoas após uma aprovação formal por um moderador.",
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
"addPeople": {
|
||||
"add": "Convidar",
|
||||
"addContacts": "Convide seus contatos",
|
||||
"contacts": "contatos",
|
||||
"copyInvite": "Copiar convite da reunião",
|
||||
"copyLink": "Copiar link da reunião",
|
||||
"copyStream": "Copiar link da transmissão ao vivo",
|
||||
"contacts": "contatos",
|
||||
"countryNotSupported": "Ainda não suportamos este destino.",
|
||||
"countryReminder": "Ligando de fora dos EUA? Por favor, certifique-se de começar com o código do país!",
|
||||
"defaultEmail": "Seu email padrão",
|
||||
"disabled": "Você não pode convidar pessoas.",
|
||||
"failedToAdd": "Falha em adicionar participantes",
|
||||
"footerText": "Discagem está desativada.",
|
||||
"googleEmail": "E-mail Google",
|
||||
"googleEmail": "Email Google",
|
||||
"inviteMoreHeader": "Você é o único na reunião",
|
||||
"inviteMoreMailSubject": "Entre na reunião {{appName}}",
|
||||
"inviteMorePrompt": "Convide mais pessoas",
|
||||
"linkCopied": "Link copiado para a área de transferência",
|
||||
"noResults": "Nenhum resultado de busca correspondente",
|
||||
"outlookEmail": "E-mail Outlook ",
|
||||
"outlookEmail": "Email Outlook ",
|
||||
"phoneNumbers": "números de telefone",
|
||||
"searching": "Procurando...",
|
||||
"shareInvite": "Compartilhar convite da reunião",
|
||||
@@ -27,14 +27,14 @@
|
||||
"sipAddresses": "endereços SIP",
|
||||
"telephone": "Telefone: {{number}}",
|
||||
"title": "Convide pessoas para sua reunião",
|
||||
"yahooEmail": "E-mail Yahoo"
|
||||
"yahooEmail": "Email Yahoo"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
"headphones": "Fones de ouvido",
|
||||
"none": "Sem dispositivos de áudio disponível",
|
||||
"phone": "Celular",
|
||||
"speaker": "Alto-falantes",
|
||||
"none": "Sem dispositivos de áudio disponível"
|
||||
"speaker": "Alto-falantes"
|
||||
},
|
||||
"audioOnly": {
|
||||
"audioOnly": "Largura de banda baixa"
|
||||
@@ -61,28 +61,32 @@
|
||||
"enter": "Entrar no bate-papo",
|
||||
"error": "Erro: sua mensagem não foi enviada. Motivo: {{error}}",
|
||||
"fieldPlaceHolder": "Digite sua mensagem aqui",
|
||||
"message": "Mensagem",
|
||||
"messageAccessibleTitle": "{{user}} disse:",
|
||||
"messageAccessibleTitleMe": "Você disse:",
|
||||
"messagebox": "Digite uma mensagem",
|
||||
"messageTo": "Mensagem privada para {{recipient}}",
|
||||
"noMessagesMessage": "Não há mensagens na reunião ainda. Inicie uma conversa aqui!",
|
||||
"nickname": {
|
||||
"popover": "Escolha um apelido",
|
||||
"title": "Digite um apelido para usar o bate-papo",
|
||||
"titleWithPolls": "Digite um apelido para usar o bate-papo"
|
||||
},
|
||||
"noMessagesMessage": "Não há mensagens na reunião ainda. Inicie uma conversa aqui!",
|
||||
"privateNotice": "Mensagem privada para {{recipient}}",
|
||||
"smileysPanel": "Painel de Emojis",
|
||||
"tabs": {
|
||||
"chat": "Conversa",
|
||||
"polls": "Votações"
|
||||
},
|
||||
"title": "Bate-papo",
|
||||
"titleWithPolls": "Bate-papo",
|
||||
"you": "você",
|
||||
"message": "Mensagem",
|
||||
"messageAccessibleTitle": "{{user}} disse:",
|
||||
"messageAccessibleTitleMe": "Você disse:",
|
||||
"smileysPanel": "Painel de Emojis"
|
||||
"you": "você"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Instale a extensão para integrar com Google Calendar e Office 365",
|
||||
"buttonText": "Instalar extensão do Chrome",
|
||||
"close": "Fechar",
|
||||
"dontShowAgain": "Não me mostre isso de novo",
|
||||
"close": "Fechar"
|
||||
"installExtensionText": "Instale a extensão para integrar com Google Calendar e Office 365"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Conectando você à reunião…"
|
||||
@@ -120,6 +124,7 @@
|
||||
"maxEnabledResolution": "envio máx",
|
||||
"more": "Mostrar mais",
|
||||
"packetloss": "Perda de pacote:",
|
||||
"participant_id": "Id participante:",
|
||||
"quality": {
|
||||
"good": "Boa",
|
||||
"inactive": "Inativo",
|
||||
@@ -133,7 +138,6 @@
|
||||
"remoteport_plural": "Portas remotas:",
|
||||
"resolution": "Resolução:",
|
||||
"savelogs": "Grave os logs",
|
||||
"participant_id": "Id participante:",
|
||||
"status": "Conexão:",
|
||||
"transport": "Transporte:",
|
||||
"transport_plural": "Transportes:",
|
||||
@@ -208,18 +212,20 @@
|
||||
"displayNameRequired": "Oi! Qual o seu nome?",
|
||||
"done": "Feito",
|
||||
"e2eeDescription": "Encriptação ponto-a-ponto é, no momento, EXPERIMENTAL. Por favor tenha em mente que habilitar a encriptação ponto-a-ponto irá desativar os serviços disponíveis no servidor como: gravação, transmissão ao vivo e telefonar participantes. Além disso a reunião só irá funcionar para os participantes entrando em browsers com suporte a funcionalidade.",
|
||||
"e2eeLabel": "Enable End-to-End Encryption",
|
||||
"e2eeDisabledDueToMaxModeDescription": "Não foi possível habilitar a criptografia de ponta-a-ponta devido ao grande número de participantes na conferência.",
|
||||
"e2eeLabel": "Enable End-to-End Encryption",
|
||||
"e2eeWarning": "WARNING: Not all participants in this meeting seem to have support for End-to-End encryption. If you enable it they won't be able to see nor hear you.",
|
||||
"enterDisplayName": "Digite seu nome aqui",
|
||||
"e2eeWillDisableDueToMaxModeDescription": "AVISO: A criptografia de ponta-a-ponta será automaticamente desativada se mais participantes entrarem na conferência.",
|
||||
"embedMeeting": "Reunião em formato compacto",
|
||||
"enterDisplayName": "Digite seu nome aqui",
|
||||
"error": "Erro",
|
||||
"gracefulShutdown": "Nosso serviço está em manutenção. Tente novamente mais tarde.",
|
||||
"grantModeratorDialog": "Tem certeza que quer participar como moderador da reunião?",
|
||||
"grantModeratorTitle": "Permitir moderador",
|
||||
"hideShareAudioHelper": "Não mostre este diálogo novamente",
|
||||
"IamHost": "Eu sou o anfitrião",
|
||||
"incorrectRoomLockPassword": "Senha incorreta",
|
||||
"incorrectPassword": "Usuário ou senha incorretos",
|
||||
"incorrectRoomLockPassword": "Senha incorreta",
|
||||
"internalError": "Oops! Alguma coisa está errada. O seguinte erro ocorreu: {{error}}",
|
||||
"internalErrorTitle": "Erro interno",
|
||||
"kickMessage": "Você pode entrar em contato com {{participantDisplayName}} para obter mais detalhes.",
|
||||
@@ -230,11 +236,12 @@
|
||||
"liveStreaming": "Transmissão ao Vivo",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Não é possível transmitir enquanto a gravação está ativa",
|
||||
"liveStreamingDisabledTooltip": "Iniciar transmissão ao vivo desativada.",
|
||||
"localUserControls": "Controles de usuários locais",
|
||||
"lockMessage": "Falha ao bloquear a conferência.",
|
||||
"lockRoom": "Adicionar reunião $t(lockRoomPasswordUppercase)",
|
||||
"lockTitle": "Bloqueio falhou",
|
||||
"logoutQuestion": "Deseja encerrar a sessão e finalizar a conferência?",
|
||||
"login": "Entrar",
|
||||
"logoutQuestion": "Deseja encerrar a sessão e finalizar a conferência?",
|
||||
"logoutTitle": "Encerrar sessão",
|
||||
"maxUsersLimitReached": "O limite para o número máximo de participantes foi atingido. A conferência está cheia. Entre em contato com o proprietário da reunião ou tente novamente mais tarde!",
|
||||
"maxUsersLimitReachedTitle": "Limite máximo de participantes atingido",
|
||||
@@ -245,25 +252,29 @@
|
||||
"micPermissionDeniedError": "Não foi permitido acessar o seu microfone. Você ainda pode entrar na conferência, mas sem enviar áudio. Clique no botão do microfone para tentar reparar.",
|
||||
"micTimeoutError": "Não foi possível iniciar fonte de áudio. Tempo esgotado!",
|
||||
"micUnknownError": "Não pode usar o microfone por uma razão desconhecida.",
|
||||
"muteEveryoneElseDialog": "Uma vez silenciados, você não poderá reativar o som deles, mas eles poderão reativar o som a qualquer momento.",
|
||||
"muteEveryoneElseTitle": "Silenciar todo mundo exceto {{whom}}?",
|
||||
"muteEveryoneDialog": "Tem certeza que deseja silenciar todos? Você não poderá ativar o som deles, mas eles podem ativar o som eles mesmo a qualquer momento.",
|
||||
"muteEveryoneTitle": "Silenciar todos?",
|
||||
"moderationAudioLabel": "Permitir aos participantes reativar o som",
|
||||
"moderationVideoLabel": "Permitir aos participantes reativar o vídeo",
|
||||
"muteEveryoneDialog": "Você não poderá reativar o som deles, mas eles poderão reativar a qualquer momento.",
|
||||
"muteEveryoneDialogModerationOn": "Os participantes podem enviar solicitação para reativar seus sons a qualquer momento.",
|
||||
"muteEveryoneElseDialog": "Uma vez silenciados, você não poderá reativar o som deles, mas eles poderão reativar seus sons a qualquer momento.",
|
||||
"muteEveryoneElsesVideoDialog": "Você não poderá reativar posteriormente, mas cada participante pode ativar sua própria câmera a qualquer momento.",
|
||||
"muteEveryoneElsesVideoTitle": "Desativar a câmera de todos exceto {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "Tem certeza que deseja desativar a câmera de todos? Você não poderá reativar posteriormente, mas cada participante pode ativar sua própria câmera a qualquer momento.",
|
||||
"muteEveryonesVideoDialogOk": "Desabilitar",
|
||||
"muteEveryonesVideoTitle": "Desativar a câmera de todos?",
|
||||
"muteEveryoneElseTitle": "Silenciar todo mundo exceto {{whom}}?",
|
||||
"muteEveryoneSelf": "a si próprio",
|
||||
"muteEveryoneStartMuted": "Todos iniciam silenciados daqui para frente",
|
||||
"muteEveryonesVideoDialog": "Tem certeza que deseja desativar a câmera de todos? Você não poderá reativar posteriormente, mas cada participante pode ativar sua própria câmera a qualquer momento.",
|
||||
"muteEveryonesVideoDialogModerationOn": "Os participantes podem enviar solicitação para reativar seus vídeos a qualquer momento.",
|
||||
"muteEveryonesVideoDialogOk": "Desabilitar",
|
||||
"muteEveryonesVideoTitle": "Desativar a câmera de todos?",
|
||||
"muteEveryoneTitle": "Silenciar todos?",
|
||||
"muteParticipantBody": "Você não está habilitado para tirar o mudo deles, mas eles podem tirar o mudo deles mesmos a qualquer tempo.",
|
||||
"muteParticipantButton": "Mudo",
|
||||
"muteParticipantDialog": "Tem certeza de que deseja silenciar este participante? Você não poderá desfazer isso, mas o participante pode reabilitar o áudio a qualquer momento.",
|
||||
"muteParticipantsVideoDialog": "Tem certeza de que deseja desativar a câmera deste participante? Você não poderá reativar posteriormente, mas o participante pode ativar sua própria câmera a qualquer momento.",
|
||||
"muteParticipantTitle": "Deixar mudo este participante?",
|
||||
"muteParticipantsVideoButton": "Desativar a câmera",
|
||||
"muteParticipantsVideoTitle": "Desativar a câmera deste participante?",
|
||||
"muteParticipantsVideoBody": "Você não poderá reativar posteriormente, mas o participante pode ativar sua própria câmera a qualquer momento.",
|
||||
"muteParticipantsVideoButton": "Desativar a câmera",
|
||||
"muteParticipantsVideoDialog": "Tem certeza de que deseja desativar a câmera deste participante? Você não poderá reativar posteriormente, mas o participante pode ativar sua própria câmera a qualquer momento.",
|
||||
"muteParticipantsVideoTitle": "Desativar a câmera deste participante?",
|
||||
"muteParticipantTitle": "Deixar mudo este participante?",
|
||||
"noDropboxToken": "Nenhum token do Dropbox válido",
|
||||
"Ok": "OK",
|
||||
"password": "Senha",
|
||||
@@ -271,8 +282,8 @@
|
||||
"passwordNotSupported": "A configuração de uma reunião $t(lockRoomPassword) não é suportada.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) não suportado",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) requerido",
|
||||
"permissionErrorTitle": "Permissão necessária",
|
||||
"permissionCameraRequiredError": "É necessário permitir acesso à câmera para participar de reuniões com vídeo. Ative a permissão nas configurações",
|
||||
"permissionErrorTitle": "Permissão necessária",
|
||||
"permissionMicRequiredError": "É necessário permitir acesso ao microfone para participar de reuniões com áudio. Ative a permissão nas configurações",
|
||||
"popupError": "Seu navegador está bloqueando janelas popup deste site. Habilite os popups nas configurações de segurança no seu navegador e tente novamente.",
|
||||
"popupErrorTitle": "Popup bloqueado",
|
||||
@@ -288,6 +299,7 @@
|
||||
"remoteControlShareScreenWarning": "Note que se você pressionar \"Permitir\" você vai compartilhar sua tela!",
|
||||
"remoteControlStopMessage": "A sessão de controle remoto terminou!",
|
||||
"remoteControlTitle": "Conexão de área de trabalho remota",
|
||||
"remoteUserControls": "Controles de usuários remotos de {{username}}",
|
||||
"Remove": "Remover",
|
||||
"removePassword": "Remover $t(lockRoomPassword)",
|
||||
"removeSharedVideoMsg": "Deseja remover seu vídeo compartilhado?",
|
||||
@@ -304,16 +316,21 @@
|
||||
"sendPrivateMessageOk": "Enviar em privado",
|
||||
"sendPrivateMessageTitle": "Enviar em privado?",
|
||||
"serviceUnavailable": "Serviço indisponível",
|
||||
"sessTerminated": "Chamada terminada",
|
||||
"sessionRestarted": "Chamada reiniciada pelo bridge",
|
||||
"sessTerminated": "Chamada terminada",
|
||||
"Share": "Compartilhar",
|
||||
"shareAudio": "Continuar",
|
||||
"shareAudioTitle": "Como compartilhar áudio",
|
||||
"shareAudioWarningTitle": "Você precisa parar o compartilhamento de tela antes de compartilhar seu áudio",
|
||||
"shareAudioWarningH1": "Se você quiser compartilhar apenas seu áudio:",
|
||||
"shareAudioWarningD1": "você precisa parar o compartilhamento de tela antes de compartilhar seu áudio.",
|
||||
"shareAudioWarningD2": "você precisa reiniciar o compartilhamento de tela e selecionar a opção \"compartilhar áudio\".",
|
||||
"shareAudioWarningH1": "Se você quiser compartilhar apenas seu áudio:",
|
||||
"shareAudioWarningTitle": "Você precisa parar o compartilhamento de tela antes de compartilhar seu áudio",
|
||||
"sharedVideoLinkPlaceholder": "link do YouTube ou link direto de vídeo",
|
||||
"shareMediaWarningGenericH2": "Se você quiser compartilhar sua tela e seu áudio",
|
||||
"shareScreenWarningD1": "você precisa parar o compartilhamento de áudio antes de compartilhar sua tela.",
|
||||
"shareScreenWarningD2": "você precisa parar o compartilhamento de áudio, iniciar o compartilhamento de tela e selecionar a opção \"compartilhar áudio\".",
|
||||
"shareScreenWarningH1": "Se você quiser compartilhar apenas sua tela:",
|
||||
"shareScreenWarningTitle": "Você precisa parar o compartilhamento de áudio antes de compartilhar sua tela",
|
||||
"shareVideoLinkError": "Por favor, forneça um link do youtube correto.",
|
||||
"shareVideoTitle": "Compartilhar um vídeo",
|
||||
"shareYourScreen": "Compartilhar sua tela",
|
||||
@@ -321,10 +338,6 @@
|
||||
"startLiveStreaming": "Iniciar transmissão ao vivo",
|
||||
"startRecording": "Iniciar gravação",
|
||||
"startRemoteControlErrorMessage": "Um erro ocorreu enquanto tentava iniciar uma sessão de controle remoto!",
|
||||
"shareScreenWarningTitle": "Você precisa parar o compartilhamento de áudio antes de compartilhar sua tela",
|
||||
"shareScreenWarningH1": "Se você quiser compartilhar apenas sua tela:",
|
||||
"shareScreenWarningD1": "você precisa parar o compartilhamento de áudio antes de compartilhar sua tela.",
|
||||
"shareScreenWarningD2": "você precisa parar o compartilhamento de áudio, iniciar o compartilhamento de tela e selecionar a opção \"compartilhar áudio\".",
|
||||
"stopLiveStreaming": "Parar transmissão ao vivo",
|
||||
"stopRecording": "Parar a gravação",
|
||||
"stopRecordingWarning": "Tem certeza que deseja parar a gravação?",
|
||||
@@ -348,9 +361,7 @@
|
||||
"WaitForHostMsgWOk": "A conferência <b>{{room}}</b> ainda não começou. Se você é o anfitrião, pressione OK para autenticar. Do contrário, aguarde a chegada do anfitrião.",
|
||||
"WaitingForHostTitle": "Esperando o anfitrião...",
|
||||
"Yes": "Sim",
|
||||
"yourEntireScreen": "Toda sua tela",
|
||||
"remoteUserControls": "Controles de usuários remotos de {{username}}",
|
||||
"localUserControls": "Controles de usuários locais"
|
||||
"yourEntireScreen": "Toda sua tela"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "está agora {{status}}"
|
||||
@@ -364,37 +375,18 @@
|
||||
"embedMeeting": {
|
||||
"title": "Reunião em formato compacto"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Fundos virtuais",
|
||||
"blur": "Desfoque",
|
||||
"slightBlur": "Desfoque suave",
|
||||
"removeBackground": "Remover fundo",
|
||||
"addBackground": "Adicionar novo fundo",
|
||||
"pleaseWait": "Aguarde...",
|
||||
"none": "Nenhum",
|
||||
"uploadedImage": "Imagem enviada {{index}}",
|
||||
"deleteImage": "Excluir imagem",
|
||||
"image1": "Praia",
|
||||
"image2": "Parede branca neutra",
|
||||
"image3": "Quarto branco vazio",
|
||||
"image4": "Luminária preta",
|
||||
"image5": "Montanha",
|
||||
"image6": "Floresta",
|
||||
"image7": "Alvorada",
|
||||
"desktopShareError": "Não foi possível compartilhar o desktop",
|
||||
"desktopShare": "Compartilhar desktop",
|
||||
"webAssemblyWarning": "Não há suporte para WebAssembly"
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Média",
|
||||
"bad": "Ruim",
|
||||
"detailsLabel": "Nos conte mais sobre isso.",
|
||||
"good": "Boa",
|
||||
"rateExperience": "Avalie sua experiência na reunião",
|
||||
"star": "Estrela",
|
||||
"veryBad": "Muito ruim",
|
||||
"veryGood": "Muito boa",
|
||||
"star": "Estrela"
|
||||
"veryGood": "Muito boa"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Centro de ajuda"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Responder",
|
||||
@@ -408,10 +400,10 @@
|
||||
"addPassword": "Adicione $t(lockRoomPassword)",
|
||||
"cancelPassword": "Cancela $t(lockRoomPassword)",
|
||||
"conferenceURL": "Link:",
|
||||
"copyNumber": "Copiar número",
|
||||
"country": "País",
|
||||
"dialANumber": "Para entrar na reunião, disque um desses números e depois insira o PIN.",
|
||||
"dialInConferenceID": "PIN:",
|
||||
"copyNumber": "Copiar número",
|
||||
"dialInNotSupported": "Desculpe, a discagem não é atualmente suportada.",
|
||||
"dialInNumber": "Discar:",
|
||||
"dialInSummaryError": "Ocorreu um erro ao buscar a informação de discagem. Tente novamente mais tarde.",
|
||||
@@ -421,13 +413,14 @@
|
||||
"invitePhone": "Para participar por telefone, toque aqui: {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "Procurando um número de discagem diferente?\nVeja os números de discagem da reunião: {{url}} \n\n\nSe você também estiver discando através de um telefone da sala, participe sem conectar-se ao áudio: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "Para participar usando o endereço SIP, insira isto: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} está convidando você para uma reunião.",
|
||||
"inviteTextiOSJoinSilent": "Se você estiver discando através de um telefone da sala, use este link para participar sem conectar-se ao áudio: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Clique no seguinte link para entrar: {{inviteUrl}}.",
|
||||
"inviteTextiOSJoinSilent": "Se você estiver discando através de um telefone da sala, use este link para participar sem conectar-se ao áudio: {{silentUrl}}.",
|
||||
"inviteTextiOSPersonal": "{{name}} está convidando você para uma reunião.",
|
||||
"inviteTextiOSPhone": "Para participar por telefone, use este número: {{number}},,{{conferenceID}}#. Se você estiver procurando um número diferente, esta é a lista completa: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Você foi convidado para uma reunião.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} está convidando você para uma reunião.\n",
|
||||
"inviteURLSecondPart": "\nEntre na reunião:\n{{url}}\n",
|
||||
"label": "Informações da reunião",
|
||||
"liveStreamURL": "Transmissão ao vivo:",
|
||||
"moreNumbers": "Mais números",
|
||||
"noNumbers": "Sem números de discagem.",
|
||||
@@ -437,8 +430,13 @@
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"sip": "endereço SIP",
|
||||
"title": "Compartilhar",
|
||||
"tooltip": "Compartilhar link e discagem para esta reunião",
|
||||
"label": "Informações da reunião"
|
||||
"tooltip": "Compartilhar link e discagem para esta reunião"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "Tivemos um pequeno problema.",
|
||||
"retry": "Tentar novamente",
|
||||
"support": "Suporte",
|
||||
"supportMsg": "Se isso continuar acontecendo, chegar a"
|
||||
},
|
||||
"inviteDialog": {
|
||||
"alertText": "Não foi possível convidar alguns participantes.",
|
||||
@@ -448,12 +446,6 @@
|
||||
"searchPlaceholder": "Participante ou nº de telefone",
|
||||
"send": "Enviar"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "Tivemos um pequeno problema.",
|
||||
"retry": "Tentar novamente",
|
||||
"support": "Suporte",
|
||||
"supportMsg": "Se isso continuar acontecendo, chegar a"
|
||||
},
|
||||
"jitsiHome": "Logo de {{logo}} (direciona para página inicial)",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Focar no seu vídeo",
|
||||
@@ -473,8 +465,6 @@
|
||||
"videoMute": "Iniciar ou parar sua câmera"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"limitNotificationDescriptionWeb": "Devido a alta demanda sua transmissão será limitada a {{limit}} minutos. Para transmissão ilimitada tente <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Sua transmissão será limitada a {{limit}} minutos. Para transmissão ilimitada tente {{app}}.",
|
||||
"busy": "Estamos trabalhando para liberar os recursos de transmissão. Tente novamente em alguns minutos.",
|
||||
"busyTitle": "Todas as transmissões estão atualmente ocupadas",
|
||||
"changeSignIn": "Alternar contas.",
|
||||
@@ -489,7 +479,10 @@
|
||||
"expandedPending": "Iniciando a transmissão ao vivo...",
|
||||
"failedToStart": "Falha ao iniciar a transmissão ao vivo",
|
||||
"getStreamKeyManually": "Não conseguimos buscar nenhuma transmissão ao vivo. Tente obter sua chave de transmissão ao vivo no YouTube.",
|
||||
"googlePrivacyPolicy": "Política de Privacidade do Google",
|
||||
"invalidStreamKey": "A senha para transmissão ao vivo pode estar incorreta.",
|
||||
"limitNotificationDescriptionNative": "Sua transmissão será limitada a {{limit}} minutos. Para transmissão ilimitada tente {{app}}.",
|
||||
"limitNotificationDescriptionWeb": "Devido a alta demanda sua transmissão será limitada a {{limit}} minutos. Para transmissão ilimitada tente <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"off": "Transmissão ao vivo encerrada",
|
||||
"offBy": "{{name}} parou a transmissão ao vivo",
|
||||
"on": "Transmissão ao Vivo",
|
||||
@@ -503,8 +496,44 @@
|
||||
"start": "Iniciar uma transmissão ao vivo",
|
||||
"streamIdHelp": "O que é isso?",
|
||||
"unavailableTitle": "Transmissão ao vivo indisponível",
|
||||
"youtubeTerms": "Termos de serviços do YouTube",
|
||||
"googlePrivacyPolicy": "Política de Privacidade do Google"
|
||||
"youtubeTerms": "Termos de serviços do YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Aceitar",
|
||||
"admitAll": "Aceitar todos",
|
||||
"allow": "Permitir",
|
||||
"backToKnockModeButton": "Sem senha, peça para se juntar",
|
||||
"dialogTitle": "Modo sala de espera",
|
||||
"disableDialogContent": "O modo sala de espera está habilitado. Este recurso evita que particpantes não convidados juntem-se à sua conferência. Deseja desabilitar?",
|
||||
"disableDialogSubmit": "Desabilitar",
|
||||
"emailField": "Informe seu email",
|
||||
"enableDialogPasswordField": "Definir senha (opcional)",
|
||||
"enableDialogSubmit": "Habilitar",
|
||||
"enableDialogText": "O modo sala de espera protege a sua conferência, permitindo a entrada de participantes apenas após a aprovação formal do moderador.",
|
||||
"enterPasswordButton": "Informe a senha da conferência",
|
||||
"enterPasswordTitle": "Informe a senha para se juntar à conferência",
|
||||
"errorMissingPassword": "Por favor informe a senha da conferência",
|
||||
"invalidPassword": "Senha inválida",
|
||||
"joiningMessage": "Você se juntará à conferência tão logo alguém aprove sua solicitação",
|
||||
"joiningTitle": "Pedindo para se juntar à conferência...",
|
||||
"joiningWithPasswordTitle": "Participando com senha...",
|
||||
"joinRejectedMessage": "Sua solicitação de participação foi rejeitada pelo moderador.",
|
||||
"joinTitle": "Junte-se à conferência",
|
||||
"joinWithPasswordMessage": "Tentando entrar com a senha, por favor aguarde...",
|
||||
"knockButton": "Peça para participar",
|
||||
"knockingParticipantList": "Remover lista de participantes",
|
||||
"knockTitle": "Alguém deseja participar da conferência",
|
||||
"nameField": "Informe seu nome",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} foi rejeitado por {{originParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} foi aceito por {{originParticipantName}}",
|
||||
"notificationLobbyDisabled": "Sala de espera foi desabilitada por {{originParticipantName}}",
|
||||
"notificationLobbyEnabled": "Sala de espera foi habilitada por {{originParticipantName}}",
|
||||
"notificationTitle": "Sala de espera",
|
||||
"passwordField": "Informe a senha da conferência",
|
||||
"passwordJoinButton": "Solicitar",
|
||||
"reject": "Rejeitar",
|
||||
"rejectAll": "Rejeitar todos",
|
||||
"toggleLabel": "Habilitar sala de espera"
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -537,84 +566,120 @@
|
||||
},
|
||||
"lockRoomPassword": "senha",
|
||||
"lockRoomPasswordUppercase": "Senha",
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Convidar outros",
|
||||
"youAreAlone": "Você é o único na reunião"
|
||||
},
|
||||
"me": "eu",
|
||||
"notify": {
|
||||
"allowAction": "Permitir",
|
||||
"allowedUnmute": "Você pode religar seu microfone, ativar sua câmera ou compartilhar sua tela.",
|
||||
"connectedOneMember": "{{name}} entrou na reunião",
|
||||
"connectedThreePlusMembers": "{{name}} e outros {{count}} entraram na reunião",
|
||||
"connectedTwoMembers": "{{first}} e {{second}} entraram na reunião",
|
||||
"disconnected": "desconectado",
|
||||
"focus": "Foco da conferência",
|
||||
"focusFail": "{{component}} não disponível - tente em {{ms}} seg",
|
||||
"grantedTo": "Direitos de moderador concedido para {{to}}!",
|
||||
"groupTitle": "Notificações",
|
||||
"hostAskedUnmute": "O anfitrião deseja que você ative o som",
|
||||
"invitedOneMember": "{{name}} foi convidado(a)",
|
||||
"invitedThreePlusMembers": "{{name}} e {{count}} outros foram convidados",
|
||||
"invitedTwoMembers": "{{first}} e {{second}} foram convidados",
|
||||
"kickParticipant": "{{kicked}} foi removido por {{kicker}}",
|
||||
"me": "Eu",
|
||||
"moderator": "Direitos de moderador concedidos!",
|
||||
"muted": "Você iniciou uma conversa em mudo.",
|
||||
"mutedTitle": "Você está mudo!",
|
||||
"mutedRemotelyTitle": "Você foi silenciado por {{participantDisplayName}}!",
|
||||
"mutedRemotelyDescription": "Você sempre pode ativar o som quando estiver pronto para falar. Retire o som quando terminar para manter o ruído longe da reunião.",
|
||||
"videoMutedRemotelyTitle": "Sua câmera foi desativada por {{participantDisplayName}}!",
|
||||
"videoMutedRemotelyDescription": "Você pode ativar sua câmera a qualquer momento.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removido por outro participante",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) definido por outro participante",
|
||||
"raisedHand": "{{name}} gostaria de falar.",
|
||||
"screenShareNoAudio": "O compartilhamento de áudio não foi selecionado na tela de escolha de janela.",
|
||||
"screenShareNoAudioTitle": "Compartilhamento de áudio não selecionado",
|
||||
"somebody": "Alguém",
|
||||
"startSilentTitle": "Você entrou sem saída de áudio!",
|
||||
"startSilentDescription": "Volte à reunião para habilitar o áudio",
|
||||
"suboptimalBrowserWarning": "Tememos que sua experiência de reunião não seja tão boa aqui. Estamos procurando maneiras de melhorar isso, mas até então, tente usar um dos <a href='{{recommendedBrowserPageLink}}' target='_blank'>navegadores completamente suportados</a>.",
|
||||
"suboptimalExperienceTitle": "Alerta do navegador",
|
||||
"unmute": "Ativar som",
|
||||
"newDeviceCameraTitle": "Nova câmera detectada",
|
||||
"newDeviceAudioTitle": "Novo dispositivo de áudio detectado",
|
||||
"newDeviceAction": "Usar",
|
||||
"OldElectronAPPTitle": "Vulnerabilidade de segurança!",
|
||||
"oldElectronClientDescription1": "Você está usando um versão antiga do cliente Jitsi Meet que possui uma conhecida vulnerabilidade de segurança. Por favor tenha certeza de atulizar para a nossa ",
|
||||
"oldElectronClientDescription2": "última versão",
|
||||
"oldElectronClientDescription3": " agora!",
|
||||
"moderationInEffectDescription": "Levante a mão se quiser falar",
|
||||
"moderationInEffectCSDescription": "Levante a mão se quiser compartilhar seu vídeo",
|
||||
"moderationInEffectVideoDescription": "Levante a mão se quiser que seu vídeo fique visível",
|
||||
"moderationInEffectTitle": "O microfone foi silenciado pelo moderador",
|
||||
"moderationInEffectCSTitle": "O compartilhamento de conteúdo foi desativado pelo moderador",
|
||||
"moderationInEffectDescription": "Levante a mão se quiser falar",
|
||||
"moderationInEffectTitle": "O microfone foi silenciado pelo moderador",
|
||||
"moderationInEffectVideoDescription": "Levante a mão se quiser que seu vídeo fique visível",
|
||||
"moderationInEffectVideoTitle": "O vídeo foi desativado pelo moderador",
|
||||
"moderationRequestFromModerator": "O anfitrião deseja que você ative o som",
|
||||
"moderationRequestFromParticipant": "Quer falar",
|
||||
"moderationStartedTitle": "Moderação iniciada",
|
||||
"moderationStoppedTitle": "Moderação encerrada",
|
||||
"moderationToggleDescription": "por {{participantDisplayName}}",
|
||||
"moderator": "Direitos de moderador concedidos!",
|
||||
"muted": "Você iniciou uma conversa em mudo.",
|
||||
"mutedRemotelyDescription": "Você sempre pode ativar o som quando estiver pronto para falar. Retire o som quando terminar para manter o ruído longe da reunião.",
|
||||
"mutedRemotelyTitle": "Você foi silenciado por {{participantDisplayName}}!",
|
||||
"mutedTitle": "Você está mudo!",
|
||||
"newDeviceAction": "Usar",
|
||||
"newDeviceAudioTitle": "Novo dispositivo de áudio detectado",
|
||||
"newDeviceCameraTitle": "Nova câmera detectada",
|
||||
"OldElectronAPPTitle": "Vulnerabilidade de segurança!",
|
||||
"oldElectronClientDescription1": "Você está usando um versão antiga do cliente Jitsi Meet que possui uma conhecida vulnerabilidade de segurança. Por favor tenha certeza de atulizar para a nossa ",
|
||||
"oldElectronClientDescription2": "última versão",
|
||||
"oldElectronClientDescription3": " agora!",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removido por outro participante",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) definido por outro participante",
|
||||
"raisedHand": "{{name}} gostaria de falar.",
|
||||
"raiseHandAction": "Levantar a mão",
|
||||
"groupTitle": "Notificações"
|
||||
"reactionSounds": "Desabilitar sons",
|
||||
"screenShareNoAudio": "O compartilhamento de áudio não foi selecionado na tela de escolha de janela.",
|
||||
"screenShareNoAudioTitle": "Compartilhamento de áudio não selecionado",
|
||||
"somebody": "Alguém",
|
||||
"startSilentDescription": "Volte à reunião para habilitar o áudio",
|
||||
"startSilentTitle": "Você entrou sem saída de áudio!",
|
||||
"suboptimalBrowserWarning": "Tememos que sua experiência de reunião não seja tão boa aqui. Estamos procurando maneiras de melhorar isso, mas até então, tente usar um dos <a href='{{recommendedBrowserPageLink}}' target='_blank'>navegadores completamente suportados</a>.",
|
||||
"suboptimalExperienceTitle": "Alerta do navegador",
|
||||
"unmute": "Ativar som",
|
||||
"videoMutedRemotelyDescription": "Você pode ativar sua câmera a qualquer momento.",
|
||||
"videoMutedRemotelyTitle": "Sua câmera foi desativada por {{participantDisplayName}}!"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"allow": "Permitir aos participantes:",
|
||||
"allowVideo": "Permitir vídeo",
|
||||
"askUnmute": "Pedir para ativar som",
|
||||
"audioModeration": "Reativarem seus sons",
|
||||
"blockEveryoneMicCamera": "Bloquear microfone e câmera de todos",
|
||||
"invite": "Convidar alguém",
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silenciar todos",
|
||||
"muteEveryoneElse": "Silenciar todos os demais",
|
||||
"stopEveryonesVideo": "Parar vídeo de todos",
|
||||
"stopVideo": "Parar vídeo",
|
||||
"unblockEveryoneMicCamera": "Desbloquear microfone e câmera de todos",
|
||||
"videoModeration": "Ativarem seus vídeos"
|
||||
},
|
||||
"close": "Fechar",
|
||||
"header": "Participantes",
|
||||
"headings": {
|
||||
"lobby": "Sala de espera ({{count}})",
|
||||
"participantsList": "Participantes da reunião ({{count}})",
|
||||
"waitingLobby": "Aguardando na sala de espera ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Permitir aos participantes:",
|
||||
"blockEveryoneMicCamera": "Bloquear microfone e câmera de todos",
|
||||
"invite": "Convidar alguém",
|
||||
"askUnmute": "Pedir para ativar som",
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silenciar todos",
|
||||
"muteEveryoneElse": "Silenciar todos os demais",
|
||||
"startModeration": "Ativar som eles mesmos ou iniciar vídeo",
|
||||
"stopEveryonesVideo": "Parar vídeo de todos",
|
||||
"stopVideo": "Parar vídeo",
|
||||
"unblockEveryoneMicCamera": "Desbloquear microfone e câmera de todos"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "Definido por outro participante",
|
||||
"passwordDigitsOnly": "Até {{number}} dígitos",
|
||||
"passwordSetRemotely": "Definido por outro participante",
|
||||
"polls": {
|
||||
"answer": {
|
||||
"skip": "Desistir",
|
||||
"submit": "Enviar"
|
||||
},
|
||||
"create": {
|
||||
"addOption": "Adicionar opção",
|
||||
"answerPlaceholder": "Opção {{index}}",
|
||||
"cancel": "Cancelar",
|
||||
"create": "Iniciar uma votação",
|
||||
"pollOption": "Opção {{index}}",
|
||||
"pollQuestion": "Pergunta",
|
||||
"questionPlaceholder": "Faça uma pergunta",
|
||||
"removeOption": "Remover opção",
|
||||
"send": "Enviar"
|
||||
},
|
||||
"notification": {
|
||||
"description": "Abra a aba das votações para votar",
|
||||
"title": "Uma nova votação foi iniciada nesta conferência"
|
||||
},
|
||||
"results": {
|
||||
"changeVote": "Mudar voto",
|
||||
"empty": "Não há votações nesta reunião por enquanto. Inicie uma votação aqui!",
|
||||
"hideDetailedResults": "Ocultar detalhes",
|
||||
"showDetailedResults": "Mostrar detalhes",
|
||||
"vote": "Voto"
|
||||
}
|
||||
},
|
||||
"poweredby": "distribuído por",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Erro de áudio e vídeo error:",
|
||||
@@ -646,30 +711,31 @@
|
||||
"videoTearing": "Espera-se um vídeo pixelado ou com artefatos visuais."
|
||||
},
|
||||
"copyAndShare": "Copiar e compartilhar o link da reunião",
|
||||
"dialing": "Discando",
|
||||
"dialInMeeting": "Discar para a reunião",
|
||||
"dialInPin": "Discar para a reunião e inserir o código PIN:",
|
||||
"dialing": "Discando",
|
||||
"doNotShow": "Não mostre esta tela novamente",
|
||||
"errorDialOut": "Não é possível discar",
|
||||
"errorDialOutDisconnected": "Não é possível discar. Desconectando",
|
||||
"errorDialOutFailed": "Não é possível discar. Chamada finalizada",
|
||||
"errorDialOutStatus": "Erro ao tentar discar",
|
||||
"errorMissingName": "Por favor entre com seu nome para participar da reunião",
|
||||
"errorNoPermissions": "Você precisa permitir acesso ao microfone e à câmera",
|
||||
"errorStatusCode": "Erro ao discar, código de estado: {{status}}",
|
||||
"errorValidation": "Validação do número falhou",
|
||||
"initiated": "Chamada iniciada",
|
||||
"iWantToDialIn": "Eu quere discar",
|
||||
"joinAudioByPhone": "Participar com o áudio via ligação",
|
||||
"joinMeeting": "Participar da reunião",
|
||||
"joinWithoutAudio": "Participar sem áudio",
|
||||
"initiated": "Chamada iniciada",
|
||||
"keyboardShortcuts": "Habilitar atalhos de teclado",
|
||||
"linkCopied": "Link copiado para a área de transferência",
|
||||
"lookGood": "Seu microfone está funcionando corretamente",
|
||||
"or": "ou",
|
||||
"premeeting": "Pré-reunião",
|
||||
"showScreen": "Habilitar tela pré-reunião",
|
||||
"keyboardShortcuts": "Habilitar atalhos de teclado",
|
||||
"startWithPhone": "Iniciar com o áudio da ligação",
|
||||
"screenSharingError": "Erro de compartilhamento de tela:",
|
||||
"showScreen": "Habilitar tela pré-reunião",
|
||||
"startWithPhone": "Iniciar com o áudio da ligação",
|
||||
"videoOnlyError": "Erro de vídeo:",
|
||||
"videoTrackError": "Não é possível criar faixa de vídeo.",
|
||||
"viewAllNumbers": "veja todos os números"
|
||||
@@ -691,14 +757,12 @@
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Definir seu nome de exibição",
|
||||
"setEmailInput": "Digite e-mail",
|
||||
"setEmailLabel": "Definir seu e-mail de Gravatar",
|
||||
"setEmailInput": "Digite email",
|
||||
"setEmailLabel": "Definir seu email de Gravatar",
|
||||
"title": "Perfil"
|
||||
},
|
||||
"raisedHand": "Gostaria de falar",
|
||||
"recording": {
|
||||
"limitNotificationDescriptionWeb": "Devido a demanda, sua gravação ficará limitada a {{limit}} minutos. Para gravação ilimitada tente <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Devido a demanda, sua gravação ficará limitada a {{limit}} minutos. Para gravação ilimitada tente <3>{{app}}</3>.",
|
||||
"authDropboxText": "Enviar para o Dropbox",
|
||||
"availableSpace": "Espaço disponível: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de gravação)",
|
||||
"beta": "BETA",
|
||||
@@ -712,6 +776,8 @@
|
||||
"expandedPending": "Iniciando gravação...",
|
||||
"failedToStart": "Falha ao iniciar a gravação",
|
||||
"fileSharingdescription": "Compartilhar gravação com participantes da reunião",
|
||||
"limitNotificationDescriptionNative": "Devido a demanda, sua gravação ficará limitada a {{limit}} minutos. Para gravação ilimitada tente <3>{{app}}</3>.",
|
||||
"limitNotificationDescriptionWeb": "Devido a demanda, sua gravação ficará limitada a {{limit}} minutos. Para gravação ilimitada tente <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"linkGenerated": "Geramos um link para sua gravação.",
|
||||
"live": "AOVIVO",
|
||||
"loggedIn": "Conectado como {{userName}}",
|
||||
@@ -748,8 +814,8 @@
|
||||
"title": "Calendário"
|
||||
},
|
||||
"desktopShareFramerate": "Taxa de quadros do compartilhamento de desktop",
|
||||
"desktopShareWarning": "Você precisa reiniciar o compartilhamento de tela para que as novas configurações tenham efeito.",
|
||||
"desktopShareHighFpsWarning": "Uma taxa de quadros mais alta para compartilhamento de desktop pode afetar sua largura de banda. Você precisa reiniciar o compartilhamento de tela para que as novas configurações tenham efeito.",
|
||||
"desktopShareWarning": "Você precisa reiniciar o compartilhamento de tela para que as novas configurações tenham efeito.",
|
||||
"devices": "Dispositivos",
|
||||
"followMe": "Todos me seguem",
|
||||
"framesPerSecond": "quadros por segundo",
|
||||
@@ -764,6 +830,7 @@
|
||||
"participantJoined": "Participante Entrou",
|
||||
"participantLeft": "Participante Saiu",
|
||||
"playSounds": "Tocar sons",
|
||||
"reactions": "Reações da reunião",
|
||||
"sameAsSystem": "Igual ao sistema ({{label}})",
|
||||
"selectAudioOutput": "Saída de áudio",
|
||||
"selectCamera": "Câmera",
|
||||
@@ -777,18 +844,18 @@
|
||||
},
|
||||
"settingsView": {
|
||||
"advanced": "Avançado",
|
||||
"alertOk": "OK",
|
||||
"alertCancel": "Cancelar",
|
||||
"alertOk": "OK",
|
||||
"alertTitle": "Atenção",
|
||||
"alertURLText": "A URL digitada do servidor é inválida",
|
||||
"buildInfoSection": "Informações de compilação",
|
||||
"conferenceSection": "Conferência",
|
||||
"disableCallIntegration": "Desativar integração de chamada nativa",
|
||||
"disableP2P": "Desativar modo ponto a ponto",
|
||||
"disableCrashReporting": "Desabilitar aviso de falha",
|
||||
"disableCrashReportingWarning": "Tem certeza eue quer desabilitar o aviso de falha? A opção será habilitada após reiniciar o app.",
|
||||
"disableP2P": "Desativar modo ponto a ponto",
|
||||
"displayName": "Nome de exibição",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Configurações",
|
||||
"profileSection": "Perfil",
|
||||
"serverURL": "URL do servidor",
|
||||
@@ -806,13 +873,14 @@
|
||||
"hours": "{{count}}h",
|
||||
"minutes": "{{count}}m",
|
||||
"name": "Nome",
|
||||
"search": "Busca",
|
||||
"seconds": "{{count}}s",
|
||||
"speakerStats": "Estatísticas do Apresentador",
|
||||
"speakerTime": "Tempo do Apresentador"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"genericTitle": "A reunião precisa usar seu microfone e câmera.",
|
||||
"policyText": " ",
|
||||
"title": "O {{app}} precisa usar seu microfone e câmera."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
@@ -829,9 +897,11 @@
|
||||
"cc": "Alternar legendas",
|
||||
"chat": "Alternar para janela de chat",
|
||||
"clap": "Aplauso",
|
||||
"collapse": "Recolher",
|
||||
"document": "Alternar para documento compartilhado",
|
||||
"download": "Baixe nossos aplicativos",
|
||||
"embedMeeting": "Reunião em formato compacto",
|
||||
"expand": "Expandir",
|
||||
"feedback": "Deixar feedback",
|
||||
"fullScreen": "Alternar para tela cheia",
|
||||
"grantModerator": "Atribuir Moderador",
|
||||
@@ -850,10 +920,9 @@
|
||||
"mute": "Alternar mudo do áudio",
|
||||
"muteEveryone": "Silenciar todos",
|
||||
"muteEveryoneElse": "Silenciar todos os demais",
|
||||
"muteEveryonesVideo": "Desativar a câmera de todos",
|
||||
"muteEveryoneElsesVideo": "Desativar a câmera de todos os demais",
|
||||
"muteEveryonesVideo": "Desativar a câmera de todos",
|
||||
"participants": "Participantes",
|
||||
"party": "Festa",
|
||||
"pip": "Alternar modo Picture-in-Picture",
|
||||
"privateMessage": "Enviar mensagem privada",
|
||||
"profile": "Editar seu perfil",
|
||||
@@ -863,6 +932,7 @@
|
||||
"remoteMute": "Silenciar participante",
|
||||
"remoteVideoMute": "Desativar a câmera do participante",
|
||||
"security": "Opções de segurança",
|
||||
"selectBackground": "Selecionar Fundo",
|
||||
"Settings": "Alternar configurações",
|
||||
"shareaudio": "Compartilhar áudio",
|
||||
"sharedvideo": "Alternar compartilhamento de vídeo do YouTube",
|
||||
@@ -870,23 +940,20 @@
|
||||
"shareYourScreen": "Alternar compartilhamento de tela",
|
||||
"shortcuts": "Alternar atalhos",
|
||||
"show": "Mostrar no palco",
|
||||
"silence": "Silenciar",
|
||||
"speakerStats": "Alternar estatísticas do apresentador",
|
||||
"surprised": "Surpresa",
|
||||
"tileView": "Alternar visualização em blocos",
|
||||
"toggleCamera": "Alternar câmera",
|
||||
"toggleFilmstrip": "Alterar tira de filme",
|
||||
"videomute": "Alternar mudo do vídeo",
|
||||
"videoblur": "Alternar desfoque de vídeo",
|
||||
"selectBackground": "Selecionar Fundo",
|
||||
"expand": "Expandir",
|
||||
"collapse": "Recolher"
|
||||
"videomute": "Alternar mudo do vídeo"
|
||||
},
|
||||
"addPeople": "Adicionar pessoas à sua chamada",
|
||||
"audioSettings": "Configurações de áudio",
|
||||
"videoSettings": "Configurações de vídeo",
|
||||
"audioOnlyOff": "Desabilitar modo de largura de banda baixa",
|
||||
"audioOnlyOn": "Habilitar modo de largura de banda baixa",
|
||||
"audioRoute": "Selecionar o dispositivo de som",
|
||||
"audioSettings": "Configurações de áudio",
|
||||
"authenticate": "Autenticar",
|
||||
"boo": "Vaia",
|
||||
"callQuality": "Gerenciar qualidade do vídeo",
|
||||
@@ -894,6 +961,7 @@
|
||||
"clap": "Aplauso",
|
||||
"closeChat": "Fechar chat",
|
||||
"closeReactionsMenu": "Fechar menu de reações",
|
||||
"disableReactionSounds": "Você pode desabilitar os sons de reação para esta reunião",
|
||||
"documentClose": "Fechar documento compartilhado",
|
||||
"documentOpen": "Abrir documento compartilhado",
|
||||
"download": "Baixe nossos aplicativos",
|
||||
@@ -919,17 +987,16 @@
|
||||
"mute": "Mudo / Não mudo",
|
||||
"muteEveryone": "Silenciar todos",
|
||||
"muteEveryonesVideo": "Desativar a câmera de todos",
|
||||
"noAudioSignalTitle": "Não há entrada de áudio vindo do seu microfone!",
|
||||
"noAudioSignalDesc": "Se você não o desativou propositalmente das configurações do sistema ou do hardware, considere trocar o dispositivo.",
|
||||
"noAudioSignalDescSuggestion": "Se você não o desativou propositalmente das configurações do sistema ou do hardware, considere trocar para o dispositivo sugerido.",
|
||||
"noAudioSignalDialInDesc": "Você também pode discar usando:",
|
||||
"noAudioSignalDialInLinkDesc": "Discar números",
|
||||
"noisyAudioInputTitle": "O seu microfone parece estar barulhento!",
|
||||
"noAudioSignalTitle": "Não há entrada de áudio vindo do seu microfone!",
|
||||
"noisyAudioInputDesc": "Parece que o microfone está fazendo barulho, considere silenciar ou alterar o dispositivo.",
|
||||
"noisyAudioInputTitle": "O seu microfone parece estar barulhento!",
|
||||
"openChat": "Abrir chat",
|
||||
"openReactionsMenu": "Abrir menu de reações",
|
||||
"participants": "Participantes",
|
||||
"party": "Festa",
|
||||
"pip": "Entrar em modo Quadro-a-Quadro",
|
||||
"privateMessage": "Enviar mensagem privada",
|
||||
"profile": "Editar seu perfil",
|
||||
@@ -939,27 +1006,29 @@
|
||||
"reactionClap": "Enviar reação de aplauso",
|
||||
"reactionLaugh": "Enviar reação de risada",
|
||||
"reactionLike": "Enviar reação de gostei",
|
||||
"reactionParty": "Enviar reação de festa",
|
||||
"reactionSilence": "Enviar reação de silêncio",
|
||||
"reactionSurprised": "Enviar reação de surpresa",
|
||||
"security": "Opções de segurança",
|
||||
"selectBackground": "Selecionar fundo",
|
||||
"Settings": "Configurações",
|
||||
"shareaudio": "Compartilhar áudio",
|
||||
"sharedvideo": "Compartilhar um vídeo do YouTube",
|
||||
"shareRoom": "Convidar alguém",
|
||||
"shortcuts": "Ver atalhos",
|
||||
"silence": "Silêncio",
|
||||
"speakerStats": "Estatísticas do Apresentador",
|
||||
"startScreenSharing": "Iniciar compart. de tela",
|
||||
"startSubtitles": "Iniciar legendas",
|
||||
"stopAudioSharing": "Parar compart. de áudio",
|
||||
"stopScreenSharing": "Parar compart. de tela",
|
||||
"stopSubtitles": "Parar legendas",
|
||||
"stopSharedVideo": "Parar vídeo do YouTube",
|
||||
"stopSubtitles": "Parar legendas",
|
||||
"surprised": "Surpresa",
|
||||
"talkWhileMutedPopup": "Tentando falar? Você está em mudo.",
|
||||
"tileViewToggle": "Alternar visualização em blocos",
|
||||
"toggleCamera": "Alternar câmera",
|
||||
"videomute": "Iniciar ou parar a câmera",
|
||||
"selectBackground": "Selecionar fundo"
|
||||
"videoSettings": "Configurações de vídeo"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Iniciar/parar legendas",
|
||||
@@ -985,7 +1054,6 @@
|
||||
"react-nativeGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"safariGrantPermissions": "Selecione <b><i>OK</i></b> quando seu navegador perguntar pelas permissões."
|
||||
},
|
||||
"volumeSlider": "Controle de volume",
|
||||
"videoSIPGW": {
|
||||
"busy": "Estamos trabalhando para liberar recursos. Por favor, tente novamente em alguns minutos.",
|
||||
"busyTitle": "O serviço da sala está ocupado",
|
||||
@@ -1015,8 +1083,8 @@
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Informações da Conexão",
|
||||
"domute": "Mudo",
|
||||
"domuteVideo": "Desativar a câmera",
|
||||
"domuteOthers": "Silenciar todos os demais",
|
||||
"domuteVideo": "Desativar a câmera",
|
||||
"domuteVideoOfOthers": "Desativar a câmera de todos os demais",
|
||||
"flip": "Inverter",
|
||||
"grantModerator": "Atribuir Moderador",
|
||||
@@ -1024,17 +1092,41 @@
|
||||
"moderator": "Moderador",
|
||||
"mute": "Participante está mudo",
|
||||
"muted": "Mudo",
|
||||
"videoMuted": "Câmera desativada",
|
||||
"remoteControl": "Controle remoto",
|
||||
"show": "Mostrar no palco",
|
||||
"videomute": "O participante parou a câmera"
|
||||
"videomute": "O participante parou a câmera",
|
||||
"videoMuted": "Câmera desativada"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"addBackground": "Adicionar novo fundo",
|
||||
"apply": "Aplicar",
|
||||
"backgroundEffectError": "Falha ao aplicar efeito de fundo.",
|
||||
"blur": "Desfoque",
|
||||
"deleteImage": "Excluir imagem",
|
||||
"desktopShare": "Compartilhar desktop",
|
||||
"desktopShareError": "Não foi possível compartilhar o desktop",
|
||||
"image1": "Praia",
|
||||
"image2": "Parede branca neutra",
|
||||
"image3": "Quarto branco vazio",
|
||||
"image4": "Luminária preta",
|
||||
"image5": "Montanha",
|
||||
"image6": "Floresta",
|
||||
"image7": "Alvorada",
|
||||
"none": "Nenhum",
|
||||
"pleaseWait": "Aguarde...",
|
||||
"removeBackground": "Remover fundo",
|
||||
"slightBlur": "Desfoque suave",
|
||||
"title": "Fundos virtuais",
|
||||
"uploadedImage": "Imagem enviada {{index}}",
|
||||
"webAssemblyWarning": "Não há suporte para WebAssembly"
|
||||
},
|
||||
"volumeSlider": "Controle de volume",
|
||||
"welcomepage": {
|
||||
"addMeetingName": "Adicionar nome da reunião",
|
||||
"accessibilityLabel": {
|
||||
"join": "Toque para entrar",
|
||||
"roomname": "Digite o nome da sala"
|
||||
},
|
||||
"addMeetingName": "Adicionar nome da reunião",
|
||||
"appDescription": "Vá em frente, converse por vídeo com toda a equipe. De fato, convide todos que você conhece. {{app}} é uma solução de videoconferência totalmente criptografada e 100% de código aberto que você pode usar todos os dias, a cada dia, gratuitamente — sem necessidade de conta.",
|
||||
"audioVideoSwitch": {
|
||||
"audio": "Voz",
|
||||
@@ -1047,77 +1139,34 @@
|
||||
"getHelp": "Obter ajuda",
|
||||
"go": "IR",
|
||||
"goSmall": "IR",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"headerSubtitle": "Reuniões com segurança e alta qualidade",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"info": "Informações",
|
||||
"join": "CRIAR / ENTRAR",
|
||||
"jitsiOnMobile": "Jitsi em dispositivos móveis – baixe nossos aplicativos e inicie uma reunião em qualquer lugar",
|
||||
"mobileDownLoadLinkIos": "Baixar aplicativo móvel para iOS",
|
||||
"join": "CRIAR / ENTRAR",
|
||||
"logo": {
|
||||
"calendar": "Logo do Calendário",
|
||||
"desktopPreviewThumbnail": "Miniatura de Visualização do Desktop",
|
||||
"googleLogo": "Logo do Google",
|
||||
"logoDeepLinking": "Logo do Jitsi Meet",
|
||||
"microsoftLogo": "Logo da Microsoft",
|
||||
"policyLogo": "Logo da Política de Privacidade"
|
||||
},
|
||||
"mobileDownLoadLinkAndroid": "Baixar aplicativo móvel para Android",
|
||||
"mobileDownLoadLinkFDroid": "Baixar aplicativo móvel para F-Droid",
|
||||
"mobileDownLoadLinkIos": "Baixar aplicativo móvel para iOS",
|
||||
"moderatedMessage": "Ou <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">agende uma URL de reunião</a> antes, onde você é o único moderador.",
|
||||
"privacy": "Política de Privacidade",
|
||||
"recentList": "Recente",
|
||||
"recentListDelete": "Remover",
|
||||
"recentListEmpty": "Sua lista recente está vazia. As reuniões que você realizar serão exibidas aqui.",
|
||||
"reducedUIText": "Bem-vindo ao {{app}}!",
|
||||
"roomNameAllowedChars": "Nome da reunião não deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.",
|
||||
"roomname": "Digite o nome da sala",
|
||||
"roomNameAllowedChars": "Nome da reunião não deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.",
|
||||
"roomnameHint": "Digite o nome ou a URL da sala que você deseja entrar. Você pode digitar um nome, e apenas deixe para as pessoas que você quer se reunir digitem o mesmo nome.",
|
||||
"sendFeedback": "Enviar comentários",
|
||||
"startMeeting": "Iniciar reunião",
|
||||
"terms": "Termos",
|
||||
"title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas",
|
||||
"logo": {
|
||||
"calendar": "Logo do Calendário",
|
||||
"microsoftLogo": "Logo da Microsoft",
|
||||
"logoDeepLinking": "Logo do Jitsi Meet",
|
||||
"desktopPreviewThumbnail": "Miniatura de Visualização do Desktop",
|
||||
"googleLogo": "Logo do Google",
|
||||
"policyLogo": "Logo da Política de Privacidade"
|
||||
}
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Convidar outros",
|
||||
"youAreAlone": "Você é o único na reunião"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Centro de ajuda"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Aceitar",
|
||||
"admitAll": "Aceitar todos",
|
||||
"knockingParticipantList": "Remover lista de participantes",
|
||||
"allow": "Permitir",
|
||||
"backToKnockModeButton": "Sem senha, peça para se juntar",
|
||||
"dialogTitle": "Modo sala de espera",
|
||||
"disableDialogContent": "O modo sala de espera está habilitado. Este recurso evita que particpantes não convidados juntem-se à sua conferência. Deseja desabilitar?",
|
||||
"disableDialogSubmit": "Desabilitar",
|
||||
"emailField": "Informe seu email",
|
||||
"enableDialogPasswordField": "Definir senha (opcional)",
|
||||
"enableDialogSubmit": "Habilitar",
|
||||
"enableDialogText": "O modo sala de espera protege a sua conferência, permitindo a entrada de participantes apenas após a aprovação formal do moderador.",
|
||||
"enterPasswordButton": "Informe a senha da conferência",
|
||||
"enterPasswordTitle": "Informe a senha para se juntar à conferência",
|
||||
"invalidPassword": "Senha inválida",
|
||||
"joiningMessage": "Você se juntará à conferência tão logo alguém aprove sua solicitação",
|
||||
"joinWithPasswordMessage": "Tentando entrar com a senha, por favor aguarde...",
|
||||
"joinRejectedMessage": "Sua solicitação de participação foi rejeitada pelo moderador.",
|
||||
"joinTitle": "Junte-se à conferência",
|
||||
"joiningTitle": "Pedindo para se juntar à conferência...",
|
||||
"joiningWithPasswordTitle": "Participando com senha...",
|
||||
"knockButton": "Peça para participar",
|
||||
"knockTitle": "Alguém deseja participar da conferência",
|
||||
"nameField": "Informe seu nome",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} foi rejeitado por {{originParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} foi aceito por {{originParticipantName}}",
|
||||
"notificationLobbyDisabled": "Sala de espera foi desabilitada por {{originParticipantName}}",
|
||||
"notificationLobbyEnabled": "Sala de espera foi habilitada por {{originParticipantName}}",
|
||||
"notificationTitle": "Sala de espera",
|
||||
"passwordField": "Informe a senha da conferência",
|
||||
"passwordJoinButton": "Solicitar",
|
||||
"reject": "Rejeitar",
|
||||
"rejectAll": "Rejeitar todos",
|
||||
"toggleLabel": "Habilitar sala de espera"
|
||||
"title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -479,8 +479,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Introduceți numele care va fi afișat",
|
||||
"setEmailInput": "Introduceți adresa de e-mail",
|
||||
"setEmailLabel": "Setați adresa de e-mail gravatar",
|
||||
"setEmailInput": "Introduceți adresa de email",
|
||||
"setEmailLabel": "Setați adresa de email gravatar",
|
||||
"title": "Profil"
|
||||
},
|
||||
"recording": {
|
||||
|
||||
@@ -238,10 +238,10 @@
|
||||
"internalError": "Что-то пошло не так. Ошибка: {{error}}",
|
||||
"internalErrorTitle": "Внутренняя ошибка",
|
||||
"kickMessage": "Вы можете связаться с {{participantDisplayName}} для получения более подробной информации.",
|
||||
"kickParticipantButton": "Выгнать",
|
||||
"kickParticipantDialog": "Вы уверены, что хотите выгнать этого участника?",
|
||||
"kickParticipantTitle": "Выгнать этого участника?",
|
||||
"kickTitle": "Ай! {{participantDisplayName}} выгнал вас из конференции.",
|
||||
"kickParticipantButton": "Отключить",
|
||||
"kickParticipantDialog": "Вы уверены, что хотите отключить этого участника?",
|
||||
"kickParticipantTitle": "Отключить этого участника?",
|
||||
"kickTitle": "{{participantDisplayName}} отключил вас от конференции.",
|
||||
"liveStreaming": "Трансляция",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Невозможно пока активна запись",
|
||||
"liveStreamingDisabledForGuestTooltip": "Гости не могут начать трансляцию",
|
||||
@@ -373,7 +373,7 @@
|
||||
"genericError": "Что-то пошло не так.",
|
||||
"inviteLiveStream": "Трансляция этой встречи: {{url}}",
|
||||
"invitePhone": "Для того, чтобы присоединиться по телефону, нажмите {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "Ищите дпугой номер для набора?\nПосмотреть номера для набора для конференции: {{url}}\n\n\nЕсли также выполняется набор номера через телефон в комнате, подключитесь в режиме слушателя: {{silentUrl}}",
|
||||
"invitePhoneAlternatives": "Ищите другой номер для набора?\nПосмотреть номера для набора для конференции: {{url}}\n\n\nЕсли также выполняется набор номера через телефон в комнате, подключитесь в режиме слушателя: {{silentUrl}}",
|
||||
"inviteURLFirstPartGeneral": "Вас приглашают присоединиться к конференции.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} приглашает Вас присоединиться к конференции. \n",
|
||||
"inviteURLSecondPart": "\nПрисоединиться к конференции:\n{{url}}\n",
|
||||
@@ -482,6 +482,7 @@
|
||||
"passwordField": "Введите пароль встречи",
|
||||
"passwordJoinButton": "Присоединиться",
|
||||
"reject": "Отказать",
|
||||
"rejectAll": "Отказать всем",
|
||||
"toggleLabel": "Включить лобби"
|
||||
},
|
||||
"localRecording": {
|
||||
@@ -523,6 +524,7 @@
|
||||
},
|
||||
"me": "я",
|
||||
"notify": {
|
||||
"allowAction": "Разрешить",
|
||||
"OldElectronAPPTitle": "Уязвимость в системе безопасности!",
|
||||
"connectedOneMember": "{{name}} присоединился к конференции",
|
||||
"connectedThreePlusMembers": "{{name}} и {{count}} других пользователей присоединились к конференции",
|
||||
@@ -534,7 +536,7 @@
|
||||
"invitedOneMember": "{{name}} был приглашен",
|
||||
"invitedThreePlusMembers": "Приглашены {{name}} и {{count}} других пользователей(ля)",
|
||||
"invitedTwoMembers": "{{first}} и {{second}} присоединились к конференции",
|
||||
"kickParticipant": "{{kicker}} выгнал {{kicked}}",
|
||||
"kickParticipant": "{{kicker}} отключил {{kicked}}",
|
||||
"me": "Я",
|
||||
"moderator": "Получены права модератора!",
|
||||
"muted": "Вы начали разговор без звука.",
|
||||
@@ -612,8 +614,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Отображаемое имя",
|
||||
"setEmailInput": "Введите e-mail",
|
||||
"setEmailLabel": "E-mail для Gravatar",
|
||||
"setEmailInput": "Введите email",
|
||||
"setEmailLabel": "Email для Gravatar",
|
||||
"title": "Профиль"
|
||||
},
|
||||
"raisedHand": "Хочет говорить",
|
||||
@@ -772,7 +774,7 @@
|
||||
"videomute": "Вкл/Выкл видео"
|
||||
},
|
||||
"addPeople": "Добавить людей к вашему сеансу связи",
|
||||
"audioOnlyOff": "Отключить режим экономии пропуской способности",
|
||||
"audioOnlyOff": "Отключить режим экономии пропускной способности",
|
||||
"audioOnlyOn": "Включить режим экономии пропускной способности",
|
||||
"audioRoute": "Выбрать аудиоустройство",
|
||||
"authenticate": "Аутентифицировать",
|
||||
@@ -801,7 +803,7 @@
|
||||
"moreOptions": "Больше настроек",
|
||||
"mute": "Микрофон (вкл./выкл.)",
|
||||
"muteEveryone": "Выкл. микрофон у всех",
|
||||
"muteEveryonesVideo": "Выкл. Камеру у всех",
|
||||
"muteEveryonesVideo": "Выкл. камеру у всех",
|
||||
"noAudioSignalTitle": "От вашего микрофона не идет звуковой сигнал!",
|
||||
"noAudioSignalDesc": "Если вы специально не отключали микрофон в системных настройках, подумайте о том, чтобы поменять его.",
|
||||
"noAudioSignalDescSuggestion": "Если вы специально не отключали микрофон в системных настройках, вы можете попробовать использовать следующее устройство:",
|
||||
|
||||
@@ -553,7 +553,7 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Nastavte si meno",
|
||||
"setEmailInput": "Zadajte e-mail",
|
||||
"setEmailInput": "Zadajte email",
|
||||
"setEmailLabel": "Nastavte si email vašeho gravataru",
|
||||
"title": "Profil"
|
||||
},
|
||||
@@ -634,7 +634,7 @@
|
||||
"disableCrashReporting": "Vypnúť oznamovanie pádov",
|
||||
"disableCrashReportingWarning": "Naozak chcete vypnúť oznamovanie pádov? Nastavenie bude aktívne po reštartovaní aplikácie.",
|
||||
"displayName": "Ukázať",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"header": "Nastavenia",
|
||||
"profileSection": "Profil",
|
||||
"serverURL": "Adresa URL servera",
|
||||
@@ -884,7 +884,7 @@
|
||||
"dialogTitle": "Čakáreň",
|
||||
"disableDialogContent": "Čakáreň je zapnutá. Táto funkcia zabezpečuje, že do konferencie nemôžu vstúpiť neželaní účastníci. Chcete ju vypnúť?",
|
||||
"disableDialogSubmit": "Vypnúť",
|
||||
"emailField": "Zadajte vašu e-mailovú adresu",
|
||||
"emailField": "Zadajte vašu emailovú adresu",
|
||||
"enableDialogPasswordField": "Nastaviť heslo (voliteľné)",
|
||||
"enableDialogSubmit": "Zapnúť",
|
||||
"enableDialogText": "Čakáreň umožňuje zabezpečiť konferenciu tým, že účastníci môžu do konferencie vstúpiť len po schválení moderátorom.",
|
||||
|
||||
@@ -23,19 +23,19 @@
|
||||
"copyStream": "Kopiera livestreamlänk",
|
||||
"contacts": "Kontakter",
|
||||
"defaultEmail": "Din mailadress",
|
||||
"googleEmail": "Google e-mail",
|
||||
"googleEmail": "Google email",
|
||||
"inviteMoreHeader": "Du är enda deltagaren i mötet",
|
||||
"inviteMoreMailSubject": "Anslut till {{appName}} möte",
|
||||
"inviteMorePrompt": "Bjud in fler personer",
|
||||
"linkCopied": "Länk kopierad till utklipp",
|
||||
"outlookEmail": "Outlook e-mail",
|
||||
"outlookEmail": "Outlook email",
|
||||
"phoneNumbers": "telefonnummer",
|
||||
"searching": "Söker....",
|
||||
"shareInvite": "Dela mötes inbjudan",
|
||||
"shareLink": "Dela mötes inbjudan för att bjuda in fler",
|
||||
"shareStream": "Dela livestreamlänken",
|
||||
"sipAddresses": "sip-adress",
|
||||
"yahooEmail": "Yahoo e-mail"
|
||||
"yahooEmail": "Yahoo email"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
|
||||
@@ -598,8 +598,8 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Ім'я на екрані",
|
||||
"setEmailInput": "Зазначте e-mail",
|
||||
"setEmailLabel": "E-mail для Gravatar",
|
||||
"setEmailInput": "Зазначте email",
|
||||
"setEmailLabel": "Email для Gravatar",
|
||||
"title": "Профіль"
|
||||
},
|
||||
"raisedHand": "Бажає говорити",
|
||||
|
||||
@@ -514,7 +514,7 @@
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Nhập tên hiển thị của bạn",
|
||||
"setEmailInput": "Nhập địa chỉ e-mail",
|
||||
"setEmailInput": "Nhập địa chỉ email",
|
||||
"setEmailLabel": "Nhập địa chỉ Gravatar thư điện tử của bạn",
|
||||
"title": "Hồ sơ"
|
||||
},
|
||||
|
||||
@@ -39,6 +39,23 @@
|
||||
"audioOnly": {
|
||||
"audioOnly": "Low bandwidth"
|
||||
},
|
||||
"blankPage": {
|
||||
"meetingEnded": "Meeting ended."
|
||||
},
|
||||
"breakoutRooms": {
|
||||
"defaultName": "Breakout room #{{index}}",
|
||||
"mainRoom": "Main room",
|
||||
"actions": {
|
||||
"add": "Add breakout room",
|
||||
"autoAssign": "Auto assign to breakout rooms",
|
||||
"close": "Close",
|
||||
"join": "Join",
|
||||
"leaveBreakoutRoom": "Leave breakout room",
|
||||
"more": "More",
|
||||
"remove": "Remove",
|
||||
"sendToBreakoutRoom": "Send participant to:"
|
||||
}
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Add a meeting link",
|
||||
"confirmAddLink": "Do you want to add a Jitsi link to this event?",
|
||||
@@ -268,12 +285,12 @@
|
||||
"muteEveryoneStartMuted": "Everyone starts muted from now on",
|
||||
"muteParticipantBody": "You won't be able to unmute them, but they can unmute themselves at any time.",
|
||||
"muteParticipantButton": "Mute",
|
||||
"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?",
|
||||
"muteParticipantsVideoDialogModerationOn": "Are you sure you want to turn off this participant's camera? You won't be able to turn the camera back on and neither will they.",
|
||||
"muteParticipantsVideoButton": "Stop video",
|
||||
"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.",
|
||||
"muteParticipantsVideoBodyModerationOn": "You won't be able to turn the camera back on and neither will they.",
|
||||
"noDropboxToken": "No valid Dropbox token",
|
||||
"Ok": "OK",
|
||||
"password": "Password",
|
||||
@@ -501,6 +518,7 @@
|
||||
"expandedPending": "The live streaming is being started...",
|
||||
"failedToStart": "Live Streaming failed to start",
|
||||
"getStreamKeyManually": "We weren’t able to fetch any live streams. Try getting your live stream key from YouTube.",
|
||||
"inProgress": "Recording or live streaming in progress",
|
||||
"invalidStreamKey": "Live stream key may be incorrect.",
|
||||
"off": "Live Streaming stopped",
|
||||
"offBy": "{{name}} stopped the live streaming",
|
||||
@@ -508,6 +526,7 @@
|
||||
"onBy": "{{name}} started the live streaming",
|
||||
"pending": "Starting Live Stream...",
|
||||
"serviceName": "Live Streaming service",
|
||||
"sessionAlreadyActive": "This session is already being recorded or live streamed.",
|
||||
"signedInAs": "You are currently signed in as:",
|
||||
"signIn": "Sign in with Google",
|
||||
"signInCTA": "Sign in or enter your live stream key from YouTube.",
|
||||
@@ -568,9 +587,9 @@
|
||||
"moderator": "You're now a moderator",
|
||||
"muted": "You have started the conversation muted.",
|
||||
"mutedTitle": "You're muted!",
|
||||
"mutedRemotelyTitle": "You've been muted by {{moderator}}",
|
||||
"mutedRemotelyTitle": "You've been muted by {{participantDisplayName}}",
|
||||
"mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.",
|
||||
"videoMutedRemotelyTitle": "Your video has been turned off by {{moderator}}",
|
||||
"videoMutedRemotelyTitle": "Your video has been turned off by {{participantDisplayName}}",
|
||||
"videoMutedRemotelyDescription": "You can always turn it on again.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant",
|
||||
@@ -620,6 +639,8 @@
|
||||
"blockEveryoneMicCamera": "Block everyone's mic and camera",
|
||||
"invite": "Invite Someone",
|
||||
"askUnmute": "Ask to unmute",
|
||||
"moreModerationActions": "More moderation options",
|
||||
"moreParticipantOptions": "More participant options",
|
||||
"mute": "Mute",
|
||||
"muteAll": "Mute all",
|
||||
"muteEveryoneElse": "Mute everyone else",
|
||||
@@ -627,11 +648,13 @@
|
||||
"stopVideo": "Stop video",
|
||||
"unblockEveryoneMicCamera": "Unblock everyone's mic and camera",
|
||||
"videoModeration": "Start their video"
|
||||
}
|
||||
},
|
||||
"search": "Search participants"
|
||||
},
|
||||
"passwordSetRemotely": "Set by another participant",
|
||||
"passwordDigitsOnly": "Up to {{number}} digits",
|
||||
"polls": {
|
||||
"by": "By {{ name }}",
|
||||
"create": {
|
||||
"addOption": "Add option",
|
||||
"answerPlaceholder": "Option {{index}}",
|
||||
@@ -736,7 +759,7 @@
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Set your display name",
|
||||
"setEmailInput": "Enter e-mail",
|
||||
"setEmailInput": "Enter email",
|
||||
"setEmailLabel": "Set your gravatar email",
|
||||
"title": "Profile"
|
||||
},
|
||||
@@ -757,6 +780,7 @@
|
||||
"expandedPending": "Recording is being started...",
|
||||
"failedToStart": "Recording failed to start",
|
||||
"fileSharingdescription": "Share recording with meeting participants",
|
||||
"inProgress": "Recording or live streaming in progress",
|
||||
"linkGenerated": "We have generated a link to your recording.",
|
||||
"live": "LIVE",
|
||||
"loggedIn": "Logged in as {{userName}}",
|
||||
@@ -769,6 +793,7 @@
|
||||
"serviceDescription": "Your recording will be saved by the recording service",
|
||||
"serviceDescriptionCloud": "Cloud recording",
|
||||
"serviceName": "Recording service",
|
||||
"sessionAlreadyActive": "This session is already being recorded or live streamed.",
|
||||
"signIn": "Sign in",
|
||||
"signOut": "Sign out",
|
||||
"unavailable": "Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.",
|
||||
@@ -855,7 +880,14 @@
|
||||
"name": "Name",
|
||||
"seconds": "{{count}}s",
|
||||
"speakerStats": "Speaker Stats",
|
||||
"speakerTime": "Speaker Time"
|
||||
"speakerTime": "Speaker Time",
|
||||
"happy": "Happy",
|
||||
"neutral": "Neutral",
|
||||
"sad": "Sad",
|
||||
"surprised": "Surprised",
|
||||
"angry": "Angry",
|
||||
"fearful": "Fearful",
|
||||
"disgusted": "Disgusted"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
@@ -872,6 +904,7 @@
|
||||
"audioOnly": "Toggle audio only",
|
||||
"audioRoute": "Select the sound device",
|
||||
"boo": "Boo",
|
||||
"breakoutRoom": "Join/leave breakout room",
|
||||
"callQuality": "Manage video quality",
|
||||
"cc": "Toggle subtitles",
|
||||
"chat": "Open / Close chat",
|
||||
@@ -955,7 +988,9 @@
|
||||
"hangup": "Leave the meeting",
|
||||
"help": "Help",
|
||||
"invite": "Invite people",
|
||||
"joinBreakoutRoom": "Join breakout room",
|
||||
"laugh": "Laugh",
|
||||
"leaveBreakoutRoom": "Leave breakout room",
|
||||
"like": "Thumbs Up",
|
||||
"lobbyButtonDisable": "Disable lobby mode",
|
||||
"lobbyButtonEnable": "Enable lobby mode",
|
||||
@@ -1045,7 +1080,10 @@
|
||||
"pending": "{{displayName}} has been invited"
|
||||
},
|
||||
"videoStatus": {
|
||||
"adjustFor": "Adjust for:",
|
||||
"audioOnly": "AUD",
|
||||
"bestPerformance": "Best performance",
|
||||
"highestQuality": "Highest quality",
|
||||
"audioOnlyExpanded": "You are in low bandwidth mode. In this mode you will receive only audio and screen sharing.",
|
||||
"callQuality": "Video Quality",
|
||||
"hd": "HD",
|
||||
@@ -1056,6 +1094,7 @@
|
||||
"ld": "LD",
|
||||
"ldTooltip": "Viewing low definition video",
|
||||
"lowDefinition": "Low definition",
|
||||
"performanceSettings": "Performance settings",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Viewing standard definition video",
|
||||
"standardDefinition": "Standard definition"
|
||||
@@ -1129,6 +1168,12 @@
|
||||
"button": "Invite others",
|
||||
"youAreAlone": "You are the only one in the meeting"
|
||||
},
|
||||
"termsView": {
|
||||
"header": "Terms"
|
||||
},
|
||||
"privacyView": {
|
||||
"header": "Privacy"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Help center"
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// @flow
|
||||
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
import Logger from '@jitsi/logger';
|
||||
|
||||
import {
|
||||
createApiEvent,
|
||||
@@ -37,7 +37,8 @@ import {
|
||||
kickParticipant,
|
||||
raiseHand,
|
||||
isParticipantModerator,
|
||||
isLocalParticipantModerator
|
||||
isLocalParticipantModerator,
|
||||
hasRaisedHand
|
||||
} from '../../react/features/base/participants';
|
||||
import { updateSettings } from '../../react/features/base/settings';
|
||||
import { isToggleCameraEnabled, toggleCamera } from '../../react/features/base/tracks';
|
||||
@@ -51,7 +52,7 @@ import {
|
||||
processExternalDeviceRequest
|
||||
} from '../../react/features/device-selection/functions';
|
||||
import { isEnabled as isDropboxEnabled } from '../../react/features/dropbox';
|
||||
import { toggleE2EE } from '../../react/features/e2ee/actions';
|
||||
import { setMediaEncryptionKey, toggleE2EE } from '../../react/features/e2ee/actions';
|
||||
import { setVolume } from '../../react/features/filmstrip';
|
||||
import { invite } from '../../react/features/invite';
|
||||
import {
|
||||
@@ -61,7 +62,7 @@ import {
|
||||
captureLargeVideoScreenshot,
|
||||
resizeLargeVideo
|
||||
} from '../../react/features/large-video/actions.web';
|
||||
import { toggleLobbyMode } from '../../react/features/lobby/actions';
|
||||
import { toggleLobbyMode, setKnockingParticipantApproval } 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';
|
||||
@@ -113,6 +114,9 @@ let videoAvailable = true;
|
||||
*/
|
||||
function initCommands() {
|
||||
commands = {
|
||||
'answer-knocking-participant': (id, approved) => {
|
||||
APP.store.dispatch(setKnockingParticipantApproval(id, approved));
|
||||
},
|
||||
'approve-video': participantId => {
|
||||
if (!isLocalParticipantModerator(APP.store.getState())) {
|
||||
return;
|
||||
@@ -278,7 +282,7 @@ function initCommands() {
|
||||
if (!localParticipant) {
|
||||
return;
|
||||
}
|
||||
const { raisedHand } = localParticipant;
|
||||
const raisedHand = hasRaisedHand(localParticipant);
|
||||
|
||||
sendAnalytics(createApiEvent('raise-hand.toggled'));
|
||||
APP.store.dispatch(raiseHand(!raisedHand));
|
||||
@@ -360,6 +364,9 @@ function initCommands() {
|
||||
logger.debug('Toggle E2EE key command received');
|
||||
APP.store.dispatch(toggleE2EE(enabled));
|
||||
},
|
||||
'set-media-encryption-key': keyInfo => {
|
||||
APP.store.dispatch(setMediaEncryptionKey(JSON.parse(keyInfo)));
|
||||
},
|
||||
'set-video-quality': frameHeight => {
|
||||
logger.debug('Set video quality command received');
|
||||
sendAnalytics(createApiEvent('set.video.quality'));
|
||||
@@ -1458,6 +1465,33 @@ class API {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) that the current recording link is
|
||||
* available.
|
||||
*
|
||||
* @param {string} link - The recording download link.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyRecordingLinkAvailable(link: string) {
|
||||
this._sendEvent({
|
||||
name: 'recording-link-available',
|
||||
link
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) that a participant is knocking in the lobby.
|
||||
*
|
||||
* @param {Object} participant - Participant data such as id and name.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyKnockingParticipant(participant: Object) {
|
||||
this._sendEvent({
|
||||
name: 'knocking-participant',
|
||||
participant
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) that an error occured.
|
||||
*
|
||||
|
||||
@@ -12,6 +12,6 @@ import { parseURLParams } from '../../react/features/base/util/parseURLParams';
|
||||
export const API_ID = parseURLParams(window.location).jitsi_meet_external_api_id;
|
||||
|
||||
/**
|
||||
* The payload name for the datachannel/endpoint text message event
|
||||
* The payload name for the datachannel/endpoint text message event.
|
||||
*/
|
||||
export const ENDPOINT_TEXT_MESSAGE_NAME = 'endpoint-text-message';
|
||||
|
||||
50
modules/API/external/external_api.js
vendored
50
modules/API/external/external_api.js
vendored
@@ -24,9 +24,10 @@ const ALWAYS_ON_TOP_FILENAMES = [
|
||||
|
||||
/**
|
||||
* Maps the names of the commands expected by the API with the name of the
|
||||
* commands expected by jitsi-meet
|
||||
* commands expected by jitsi-meet.
|
||||
*/
|
||||
const commands = {
|
||||
answerKnockingParticipant: 'answer-knocking-participant',
|
||||
approveVideo: 'approve-video',
|
||||
askToUnmute: 'ask-to-unmute',
|
||||
avatarUrl: 'avatar-url',
|
||||
@@ -49,6 +50,7 @@ const commands = {
|
||||
sendTones: 'send-tones',
|
||||
setFollowMe: 'set-follow-me',
|
||||
setLargeVideoParticipant: 'set-large-video-participant',
|
||||
setMediaEncryptionKey: 'set-media-encryption-key',
|
||||
setParticipantVolume: 'set-participant-volume',
|
||||
setTileView: 'set-tile-view',
|
||||
setVideoQuality: 'set-video-quality',
|
||||
@@ -62,6 +64,7 @@ const commands = {
|
||||
toggleCamera: 'toggle-camera',
|
||||
toggleCameraMirror: 'toggle-camera-mirror',
|
||||
toggleChat: 'toggle-chat',
|
||||
toggleE2EE: 'toggle-e2ee',
|
||||
toggleFilmStrip: 'toggle-film-strip',
|
||||
toggleModeration: 'toggle-moderation',
|
||||
toggleRaiseHand: 'toggle-raise-hand',
|
||||
@@ -74,7 +77,7 @@ const commands = {
|
||||
|
||||
/**
|
||||
* Maps the names of the events expected by the API with the name of the
|
||||
* events expected by jitsi-meet
|
||||
* events expected by jitsi-meet.
|
||||
*/
|
||||
const events = {
|
||||
'avatar-changed': 'avatarChanged',
|
||||
@@ -94,6 +97,7 @@ const events = {
|
||||
'feedback-prompt-displayed': 'feedbackPromptDisplayed',
|
||||
'filmstrip-display-changed': 'filmstripDisplayChanged',
|
||||
'incoming-message': 'incomingMessage',
|
||||
'knocking-participant': 'knockingParticipant',
|
||||
'log': 'log',
|
||||
'mic-error': 'micError',
|
||||
'moderation-participant-approved': 'moderationParticipantApproved',
|
||||
@@ -110,6 +114,7 @@ const events = {
|
||||
'password-required': 'passwordRequired',
|
||||
'proxy-connection-event': 'proxyConnectionEvent',
|
||||
'raise-hand-updated': 'raiseHandUpdated',
|
||||
'recording-link-available': 'recordingLinkAvailable',
|
||||
'recording-status-changed': 'recordingStatusChanged',
|
||||
'video-ready-to-close': 'readyToClose',
|
||||
'video-conference-joined': 'videoConferenceJoined',
|
||||
@@ -126,7 +131,8 @@ const events = {
|
||||
};
|
||||
|
||||
/**
|
||||
* Last id of api object
|
||||
* Last id of api object.
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
let id = 0;
|
||||
@@ -384,7 +390,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
}
|
||||
|
||||
return ALWAYS_ON_TOP_FILENAMES.map(
|
||||
filename => (new URL(filename, baseURL)).href
|
||||
filename => new URL(filename, baseURL).href
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1181,6 +1187,40 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
* @returns {void}
|
||||
*/
|
||||
stopRecording(mode) {
|
||||
this.executeCommand('startRecording', mode);
|
||||
this.executeCommand('stopRecording', mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets e2ee enabled/disabled.
|
||||
*
|
||||
* @param {boolean} enabled - The new value for e2ee enabled.
|
||||
* @returns {void}
|
||||
*/
|
||||
toggleE2EE(enabled) {
|
||||
this.executeCommand('toggleE2EE', enabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the key and keyIndex for e2ee.
|
||||
*
|
||||
* @param {Object} keyInfo - Json containing key information.
|
||||
* @param {CryptoKey} [keyInfo.encryptionKey] - The encryption key.
|
||||
* @param {number} [keyInfo.index] - The index of the encryption key.
|
||||
* @returns {void}
|
||||
*/
|
||||
async setMediaEncryptionKey(keyInfo) {
|
||||
const { key, index } = keyInfo;
|
||||
|
||||
if (key) {
|
||||
const exportedKey = await crypto.subtle.exportKey('raw', key);
|
||||
|
||||
this.executeCommand('setMediaEncryptionKey', JSON.stringify({
|
||||
exportedKey: Array.from(new Uint8Array(exportedKey)),
|
||||
index }));
|
||||
} else {
|
||||
this.executeCommand('setMediaEncryptionKey', JSON.stringify({
|
||||
exportedKey: false,
|
||||
index }));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
2
modules/API/external/functions.js
vendored
2
modules/API/external/functions.js
vendored
@@ -1,6 +1,6 @@
|
||||
// @flow
|
||||
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
import Logger from '@jitsi/logger';
|
||||
|
||||
const logger = Logger.getLogger(__filename);
|
||||
|
||||
|
||||
@@ -3,14 +3,19 @@
|
||||
|
||||
const UI = {};
|
||||
|
||||
import Logger from '@jitsi/logger';
|
||||
import EventEmitter from 'events';
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
|
||||
import { isMobileBrowser } from '../../react/features/base/environment/utils';
|
||||
import { setColorAlpha } from '../../react/features/base/util';
|
||||
import { setDocumentUrl } from '../../react/features/etherpad';
|
||||
import { setFilmstripVisible } from '../../react/features/filmstrip';
|
||||
import { joinLeaveNotificationsDisabled, setNotificationsEnabled } from '../../react/features/notifications';
|
||||
import {
|
||||
joinLeaveNotificationsDisabled,
|
||||
setNotificationsEnabled,
|
||||
showNotification,
|
||||
NOTIFICATION_TIMEOUT_TYPE
|
||||
} from '../../react/features/notifications';
|
||||
import {
|
||||
dockToolbox,
|
||||
setToolboxEnabled,
|
||||
@@ -215,12 +220,10 @@ UI.updateUserStatus = (user, status) => {
|
||||
|
||||
const displayName = user.getDisplayName();
|
||||
|
||||
messageHandler.participantNotification(
|
||||
displayName,
|
||||
'',
|
||||
'connected',
|
||||
'dialOut.statusMessage',
|
||||
{ status: UIUtil.escapeHtml(status) });
|
||||
APP.store.dispatch(showNotification({
|
||||
titleKey: `${displayName} connected`,
|
||||
descriptionKey: 'dialOut.statusMessage'
|
||||
}, NOTIFICATION_TIMEOUT_TYPE.SHORT));
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -333,18 +336,6 @@ UI.notifyMaxUsersLimitReached = function() {
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Notify user that he was automatically muted when joned the conference.
|
||||
*/
|
||||
UI.notifyInitiallyMuted = function() {
|
||||
messageHandler.participantNotification(
|
||||
null,
|
||||
'notify.mutedTitle',
|
||||
'connected',
|
||||
'notify.muted',
|
||||
null);
|
||||
};
|
||||
|
||||
UI.handleLastNEndpoints = function(leavingIds, enteringIds) {
|
||||
VideoLayout.onLastNEndpointsChanged(leavingIds, enteringIds);
|
||||
};
|
||||
@@ -363,15 +354,6 @@ UI.notifyTokenAuthFailed = function() {
|
||||
});
|
||||
};
|
||||
|
||||
UI.notifyFocusDisconnected = function(focus, retrySec) {
|
||||
messageHandler.participantNotification(
|
||||
null, 'notify.focus',
|
||||
'disconnected', 'notify.focusFail',
|
||||
{ component: focus,
|
||||
ms: retrySec }
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Update list of available physical devices.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// @flow
|
||||
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
import Logger from '@jitsi/logger';
|
||||
|
||||
import { openConnection } from '../../../connection';
|
||||
import {
|
||||
|
||||
@@ -1,51 +1,12 @@
|
||||
/* global $, APP */
|
||||
/* global APP */
|
||||
|
||||
import {
|
||||
NOTIFICATION_TIMEOUT,
|
||||
NOTIFICATION_TIMEOUT_TYPE,
|
||||
showErrorNotification,
|
||||
showNotification,
|
||||
showWarningNotification
|
||||
} from '../../../react/features/notifications';
|
||||
|
||||
const messageHandler = {
|
||||
OK: 'dialog.OK',
|
||||
CANCEL: 'dialog.Cancel',
|
||||
|
||||
/**
|
||||
* Returns the formatted title string.
|
||||
*
|
||||
* @return the title string formatted as a div.
|
||||
*/
|
||||
_getFormattedTitleString(titleKey) {
|
||||
const $titleString = $('<h2>');
|
||||
|
||||
$titleString.addClass('aui-dialog2-header-main');
|
||||
$titleString.attr('data-i18n', titleKey);
|
||||
|
||||
return $('<div>').append($titleString)
|
||||
.html();
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns the dialog css classes.
|
||||
*
|
||||
* @return the dialog css classes
|
||||
*/
|
||||
_getDialogClasses(size = 'small') {
|
||||
return {
|
||||
box: '',
|
||||
form: '',
|
||||
prompt: `dialog aui-layer aui-dialog2 aui-dialog2-${size}`,
|
||||
close: 'aui-hide',
|
||||
fade: 'aui-blanket',
|
||||
button: 'button-control',
|
||||
message: 'aui-dialog2-content',
|
||||
buttons: 'aui-dialog2-footer',
|
||||
defaultButton: 'button-control_primary',
|
||||
title: 'aui-dialog2-header'
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Opens new popup window for given <tt>url</tt> centered over current
|
||||
* window.
|
||||
@@ -86,7 +47,7 @@ const messageHandler = {
|
||||
* showErrorNotification action.
|
||||
*/
|
||||
showError(props) {
|
||||
APP.store.dispatch(showErrorNotification(props));
|
||||
APP.store.dispatch(showErrorNotification(props, NOTIFICATION_TIMEOUT_TYPE.LONG));
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -96,35 +57,7 @@ const messageHandler = {
|
||||
* showWarningNotification action.
|
||||
*/
|
||||
showWarning(props) {
|
||||
APP.store.dispatch(showWarningNotification(props));
|
||||
},
|
||||
|
||||
/**
|
||||
* Displays a notification about participant action.
|
||||
* @param displayName the display name of the participant that is
|
||||
* associated with the notification.
|
||||
* @param displayNameKey the key from the language file for the display
|
||||
* name. Only used if displayName is not provided.
|
||||
* @param cls css class for the notification
|
||||
* @param messageKey the key from the language file for the text of the
|
||||
* message.
|
||||
* @param messageArguments object with the arguments for the message.
|
||||
* @param optional configurations for the notification (e.g. timeout)
|
||||
*/
|
||||
participantNotification( // eslint-disable-line max-params
|
||||
displayName,
|
||||
displayNameKey,
|
||||
cls,
|
||||
messageKey,
|
||||
messageArguments,
|
||||
timeout = NOTIFICATION_TIMEOUT) {
|
||||
APP.store.dispatch(showNotification({
|
||||
descriptionArguments: messageArguments,
|
||||
descriptionKey: messageKey,
|
||||
titleKey: displayNameKey,
|
||||
title: displayName
|
||||
},
|
||||
timeout));
|
||||
APP.store.dispatch(showWarningNotification(props, NOTIFICATION_TIMEOUT_TYPE.LONG));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* global $, APP */
|
||||
/* eslint-disable no-unused-vars */
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
import Logger from '@jitsi/logger';
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { I18nextProvider } from 'react-i18next';
|
||||
@@ -8,6 +8,7 @@ import { Provider } from 'react-redux';
|
||||
|
||||
import { createScreenSharingIssueEvent, sendAnalytics } from '../../../react/features/analytics';
|
||||
import { Avatar } from '../../../react/features/base/avatar';
|
||||
import theme from '../../../react/features/base/components/themes/participantsPaneTheme.json';
|
||||
import { i18next } from '../../../react/features/base/i18n';
|
||||
import {
|
||||
JitsiParticipantConnectionStatus
|
||||
@@ -20,7 +21,6 @@ import {
|
||||
updateKnownLargeVideoResolution
|
||||
} from '../../../react/features/large-video/actions';
|
||||
import { getParticipantsPaneOpen } from '../../../react/features/participants-pane/functions';
|
||||
import theme from '../../../react/features/participants-pane/theme.json';
|
||||
import { PresenceLabel } from '../../../react/features/presence-status';
|
||||
import { shouldDisplayTileView } from '../../../react/features/video-layout';
|
||||
/* eslint-enable no-unused-vars */
|
||||
|
||||
@@ -495,6 +495,10 @@ export class VideoContainer extends LargeContainer {
|
||||
|
||||
stream.attach(this.$video[0]);
|
||||
|
||||
// Ensure large video gets play() called on it when a new stream is attached to it. This is necessary in the
|
||||
// case of Safari as autoplay doesn't kick-in automatically on Safari 15 and newer versions.
|
||||
browser.isWebKitBased() && this.$video[0].play();
|
||||
|
||||
const flipX = stream.isLocal() && this.localFlipX && !this.isScreenSharing();
|
||||
|
||||
this.$video.css({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* global APP */
|
||||
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
import Logger from '@jitsi/logger';
|
||||
|
||||
import { MEDIA_TYPE, VIDEO_TYPE } from '../../../react/features/base/media';
|
||||
import {
|
||||
|
||||
@@ -8,7 +8,8 @@ import {
|
||||
import {
|
||||
getUserSelectedCameraDeviceId,
|
||||
getUserSelectedMicDeviceId,
|
||||
getUserSelectedOutputDeviceId
|
||||
getUserSelectedOutputDeviceId,
|
||||
updateSettings
|
||||
} from '../../react/features/base/settings';
|
||||
|
||||
/**
|
||||
@@ -51,15 +52,19 @@ function getNewAudioOutputDevice(newDevices) {
|
||||
* list of available devices has been changed.
|
||||
* @param {MediaDeviceInfo[]} newDevices
|
||||
* @param {JitsiLocalTrack} localAudio
|
||||
* @param {boolean} newLabel
|
||||
* @returns {string|undefined} - ID of new microphone device to use, undefined
|
||||
* if audio input device should not be changed.
|
||||
*/
|
||||
function getNewAudioInputDevice(newDevices, localAudio) {
|
||||
function getNewAudioInputDevice(newDevices, localAudio, newLabel) {
|
||||
const availableAudioInputDevices = newDevices.filter(
|
||||
d => d.kind === 'audioinput');
|
||||
const selectedAudioInputDeviceId = getUserSelectedMicDeviceId(APP.store.getState());
|
||||
const selectedAudioInputDevice = availableAudioInputDevices.find(
|
||||
d => d.deviceId === selectedAudioInputDeviceId);
|
||||
const localAudioDeviceId = localAudio?.getDeviceId();
|
||||
const localAudioDevice = availableAudioInputDevices.find(
|
||||
d => d.deviceId === localAudioDeviceId);
|
||||
|
||||
// Here we handle case when no device was initially plugged, but
|
||||
// then it's connected OR new device was connected when previous
|
||||
@@ -75,12 +80,22 @@ function getNewAudioInputDevice(newDevices, localAudio) {
|
||||
return availableAudioInputDevices[0].deviceId;
|
||||
}
|
||||
} else if (selectedAudioInputDevice
|
||||
&& selectedAudioInputDeviceId !== localAudio.getDeviceId()) {
|
||||
&& selectedAudioInputDeviceId !== localAudioDeviceId) {
|
||||
|
||||
// And here we handle case when we already have some device working,
|
||||
// but we plug-in a "preferred" (previously selected in settings, stored
|
||||
// in local storage) device.
|
||||
return selectedAudioInputDeviceId;
|
||||
if (newLabel) {
|
||||
// If a Firefox user with manual permission prompt chose a different
|
||||
// device from what we have stored as the preferred device we accept
|
||||
// and store that as the new preferred device.
|
||||
APP.store.dispatch(updateSettings({
|
||||
userSelectedMicDeviceId: localAudioDeviceId,
|
||||
userSelectedMicDeviceLabel: localAudioDevice.label
|
||||
}));
|
||||
} else {
|
||||
// And here we handle case when we already have some device working,
|
||||
// but we plug-in a "preferred" (previously selected in settings, stored
|
||||
// in local storage) device.
|
||||
return selectedAudioInputDeviceId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,15 +104,19 @@ function getNewAudioInputDevice(newDevices, localAudio) {
|
||||
* list of available devices has been changed.
|
||||
* @param {MediaDeviceInfo[]} newDevices
|
||||
* @param {JitsiLocalTrack} localVideo
|
||||
* @param {boolean} newLabel
|
||||
* @returns {string|undefined} - ID of new camera device to use, undefined
|
||||
* if video input device should not be changed.
|
||||
*/
|
||||
function getNewVideoInputDevice(newDevices, localVideo) {
|
||||
function getNewVideoInputDevice(newDevices, localVideo, newLabel) {
|
||||
const availableVideoInputDevices = newDevices.filter(
|
||||
d => d.kind === 'videoinput');
|
||||
const selectedVideoInputDeviceId = getUserSelectedCameraDeviceId(APP.store.getState());
|
||||
const selectedVideoInputDevice = availableVideoInputDevices.find(
|
||||
d => d.deviceId === selectedVideoInputDeviceId);
|
||||
const localVideoDeviceId = localVideo?.getDeviceId();
|
||||
const localVideoDevice = availableVideoInputDevices.find(
|
||||
d => d.deviceId === localVideoDeviceId);
|
||||
|
||||
// Here we handle case when no video input device was initially plugged,
|
||||
// but then device is connected OR new device was connected when
|
||||
@@ -113,11 +132,22 @@ function getNewVideoInputDevice(newDevices, localVideo) {
|
||||
return availableVideoInputDevices[0].deviceId;
|
||||
}
|
||||
} else if (selectedVideoInputDevice
|
||||
&& selectedVideoInputDeviceId !== localVideo.getDeviceId()) {
|
||||
// And here we handle case when we already have some device working,
|
||||
// but we plug-in a "preferred" (previously selected in settings, stored
|
||||
// in local storage) device.
|
||||
return selectedVideoInputDeviceId;
|
||||
&& selectedVideoInputDeviceId !== localVideoDeviceId) {
|
||||
|
||||
if (newLabel) {
|
||||
// If a Firefox user with manual permission prompt chose a different
|
||||
// device from what we have stored as the preferred device we accept
|
||||
// and store that as the new preferred device.
|
||||
APP.store.dispatch(updateSettings({
|
||||
userSelectedCameraDeviceId: localVideoDeviceId,
|
||||
userSelectedCameraDeviceLabel: localVideoDevice.label
|
||||
}));
|
||||
} else {
|
||||
// And here we handle case when we already have some device working,
|
||||
// but we plug-in a "preferred" (previously selected in settings, stored
|
||||
// in local storage) device.
|
||||
return selectedVideoInputDeviceId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,14 +169,42 @@ export default {
|
||||
newDevices,
|
||||
isSharingScreen,
|
||||
localVideo,
|
||||
localAudio) {
|
||||
localAudio,
|
||||
newLabels) {
|
||||
return {
|
||||
audioinput: getNewAudioInputDevice(newDevices, localAudio),
|
||||
videoinput: isSharingScreen ? undefined : getNewVideoInputDevice(newDevices, localVideo),
|
||||
audioinput: getNewAudioInputDevice(newDevices, localAudio, newLabels),
|
||||
videoinput: isSharingScreen ? undefined : getNewVideoInputDevice(newDevices, localVideo, newLabels),
|
||||
audiooutput: getNewAudioOutputDevice(newDevices)
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if the only difference between an object of known devices compared
|
||||
* to an array of new devices are only the labels for the devices.
|
||||
* @param {Object} oldDevices
|
||||
* @param {MediaDeviceInfo[]} newDevices
|
||||
* @returns {boolean}
|
||||
*/
|
||||
newDeviceListAddedLabelsOnly(oldDevices, newDevices) {
|
||||
const oldDevicesFlattend = oldDevices.audioInput.concat(oldDevices.audioOutput).concat(oldDevices.videoInput);
|
||||
|
||||
if (oldDevicesFlattend.length !== newDevices.length) {
|
||||
return false;
|
||||
}
|
||||
oldDevicesFlattend.forEach(oldDevice => {
|
||||
if (oldDevice.label !== '') {
|
||||
return false;
|
||||
}
|
||||
const newDevice = newDevices.find(nd => nd.deviceId === oldDevice.deviceId);
|
||||
|
||||
if (!newDevice || newDevice.label === '') {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Tries to create new local tracks for new devices obtained after device
|
||||
* list changed. Shows error dialog in case of failures.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* global APP */
|
||||
import { jitsiLocalStorage } from '@jitsi/js-utils';
|
||||
import Logger from 'jitsi-meet-logger';
|
||||
import Logger from '@jitsi/logger';
|
||||
|
||||
import {
|
||||
ACTION_SHORTCUT_PRESSED as PRESSED,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const logger = require('jitsi-meet-logger').getLogger(__filename);
|
||||
const logger = require('@jitsi/logger').getLogger(__filename);
|
||||
|
||||
/**
|
||||
* Manages a queue of functions where the current function in progress will
|
||||
|
||||
14855
package-lock.json
generated
14855
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
61
package.json
61
package.json
@@ -35,6 +35,8 @@
|
||||
"@atlaskit/tooltip": "17.1.2",
|
||||
"@hapi/bourne": "2.0.0",
|
||||
"@jitsi/js-utils": "2.0.0",
|
||||
"@jitsi/logger": "2.0.0",
|
||||
"@jitsi/rtcstats": "9.0.1",
|
||||
"@material-ui/core": "4.11.3",
|
||||
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.3.tgz",
|
||||
"@microsoft/microsoft-graph-client": "1.1.0",
|
||||
@@ -42,25 +44,33 @@
|
||||
"@react-native-community/google-signin": "3.0.1",
|
||||
"@react-native-community/netinfo": "4.1.5",
|
||||
"@react-native-community/slider": "3.0.3",
|
||||
"@react-native-masked-view/masked-view": "0.2.6",
|
||||
"@react-navigation/bottom-tabs": "5.11.15",
|
||||
"@react-navigation/drawer": "5.12.9",
|
||||
"@react-navigation/material-top-tabs": "5.3.19",
|
||||
"@react-navigation/native": "5.9.8",
|
||||
"@react-navigation/stack": "5.14.9",
|
||||
"@svgr/webpack": "4.3.2",
|
||||
"@xmldom/xmldom": "0.7.5",
|
||||
"amplitude-js": "8.2.1",
|
||||
"base64-js": "1.3.1",
|
||||
"bc-css-flags": "3.0.0",
|
||||
"clipboard-copy": "4.0.1",
|
||||
"clsx": "1.1.1",
|
||||
"dropbox": "10.7.0",
|
||||
"face-api.js": "0.22.2",
|
||||
"focus-visible": "5.1.0",
|
||||
"grapheme-splitter": "1.0.4",
|
||||
"i18n-iso-countries": "6.8.0",
|
||||
"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#f4f7db2e5f4c815a2c5e1bc4de44f0e16e1d27a6",
|
||||
"libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "2.29.1",
|
||||
@@ -81,18 +91,24 @@
|
||||
"react-native-collapsible": "1.5.1",
|
||||
"react-native-default-preference": "1.4.2",
|
||||
"react-native-device-info": "8.0.0",
|
||||
"react-native-gesture-handler": "1.10.3",
|
||||
"react-native-get-random-values": "1.7.0",
|
||||
"react-native-immersive": "2.0.0",
|
||||
"react-native-keep-awake": "4.0.0",
|
||||
"react-native-paper": "4.8.1",
|
||||
"react-native-performance": "2.0.0",
|
||||
"react-native-reanimated": "1.13.3",
|
||||
"react-native-safe-area-context": "3.3.2",
|
||||
"react-native-screens": "2.18.1",
|
||||
"react-native-sound": "github:jitsi/react-native-sound#3fe5480fce935e888d5089d94a191c7c7e3aa190",
|
||||
"react-native-splash-screen": "3.2.0",
|
||||
"react-native-svg": "12.1.0",
|
||||
"react-native-svg-transformer": "0.14.3",
|
||||
"react-native-tab-view": "2.16.0",
|
||||
"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": "1.94.0",
|
||||
"react-native-webview": "11.0.2",
|
||||
"react-native-youtube-iframe": "2.1.1",
|
||||
"react-redux": "7.1.0",
|
||||
@@ -104,40 +120,33 @@
|
||||
"redux-thunk": "2.2.0",
|
||||
"resemblejs": "4.0.0",
|
||||
"rnnoise-wasm": "github:jitsi/rnnoise-wasm#566a16885897704d6e6d67a1d5ac5d39781db2af",
|
||||
"rtcstats": "github:jitsi/rtcstats#v8.1.0",
|
||||
"styled-components": "3.4.9",
|
||||
"util": "0.12.1",
|
||||
"uuid": "3.1.0",
|
||||
"uuid": "8.3.2",
|
||||
"wasm-check": "2.0.1",
|
||||
"windows-iana": "^3.1.0",
|
||||
"xmldom": "0.5.0",
|
||||
"zxcvbn": "4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.9.0",
|
||||
"@babel/plugin-proposal-class-properties": "7.1.0",
|
||||
"@babel/plugin-proposal-export-default-from": "7.0.0",
|
||||
"@babel/plugin-proposal-export-namespace-from": "7.0.0",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "7.4.4",
|
||||
"@babel/plugin-proposal-optional-chaining": "7.2.0",
|
||||
"@babel/plugin-transform-flow-strip-types": "7.0.0",
|
||||
"@babel/preset-env": "7.1.0",
|
||||
"@babel/preset-flow": "7.0.0",
|
||||
"@babel/preset-react": "7.0.0",
|
||||
"@babel/runtime": "7.15.3",
|
||||
"babel-eslint": "10.0.1",
|
||||
"babel-loader": "8.0.4",
|
||||
"@babel/core": "7.16.0",
|
||||
"@babel/eslint-parser": "7.16.0",
|
||||
"@babel/plugin-proposal-export-default-from": "7.16.0",
|
||||
"@babel/preset-env": "7.16.0",
|
||||
"@babel/preset-flow": "7.16.0",
|
||||
"@babel/preset-react": "7.16.0",
|
||||
"@babel/runtime": "7.16.0",
|
||||
"@jitsi/eslint-config": "4.0.0",
|
||||
"babel-loader": "8.2.3",
|
||||
"babel-plugin-optional-require": "0.3.1",
|
||||
"circular-dependency-plugin": "5.2.0",
|
||||
"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-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",
|
||||
"eslint": "8.1.0",
|
||||
"eslint-plugin-flowtype": "8.0.3",
|
||||
"eslint-plugin-import": "2.25.2",
|
||||
"eslint-plugin-jsdoc": "37.0.3",
|
||||
"eslint-plugin-react": "7.26.1",
|
||||
"eslint-plugin-react-native": "3.11.0",
|
||||
"expose-loader": "3.0.0",
|
||||
"flow-bin": "0.104.0",
|
||||
"imports-loader": "0.7.1",
|
||||
|
||||
11
patches/eslint-plugin-flowtype+8.0.3.patch
Normal file
11
patches/eslint-plugin-flowtype+8.0.3.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
diff --git a/node_modules/eslint-plugin-flowtype/dist/configs/recommended.json b/node_modules/eslint-plugin-flowtype/dist/configs/recommended.json
|
||||
index 90a0d69..2ad7d68 100644
|
||||
--- a/node_modules/eslint-plugin-flowtype/dist/configs/recommended.json
|
||||
+++ b/node_modules/eslint-plugin-flowtype/dist/configs/recommended.json
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
- "parser": "@babel/eslint",
|
||||
+ "parser": "@babel/eslint-parser",
|
||||
"parserOptions": {
|
||||
"babelOptions": {
|
||||
"plugins": [
|
||||
@@ -1,9 +1,18 @@
|
||||
module.exports = {
|
||||
'extends': [
|
||||
'../.eslintrc.js',
|
||||
'eslint-config-jitsi/flow',
|
||||
'eslint-config-jitsi/jsdoc',
|
||||
'eslint-config-jitsi/react',
|
||||
'@jitsi/eslint-config/flow',
|
||||
'@jitsi/eslint-config/jsdoc',
|
||||
'@jitsi/eslint-config/react',
|
||||
'.eslintrc-react-native.js'
|
||||
]
|
||||
],
|
||||
'rules': {
|
||||
// XXX remove this eventually.
|
||||
'react/jsx-indent-props': 0
|
||||
},
|
||||
'settings': {
|
||||
'react': {
|
||||
'version': 'detect'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ type State = {
|
||||
* Represents the always on top page.
|
||||
*
|
||||
* @class AlwaysOnTop
|
||||
* @extends Component
|
||||
* @augments Component
|
||||
*/
|
||||
export default class AlwaysOnTop extends Component<*, State> {
|
||||
_hovered: boolean;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user