mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-01-07 23:32:29 +00:00
Compare commits
395 Commits
android-sd
...
7710
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
392c8e9aa8 | ||
|
|
7f87d4eada | ||
|
|
6d11aa8049 | ||
|
|
0c1ce152fe | ||
|
|
82ae6a8456 | ||
|
|
9ebab2c7d0 | ||
|
|
af4488d1e9 | ||
|
|
d9599d31f1 | ||
|
|
d094ac0034 | ||
|
|
c6b7ec7c9c | ||
|
|
6e35e5b310 | ||
|
|
429787f9c8 | ||
|
|
f7995b395f | ||
|
|
72b4c8123a | ||
|
|
4c6cadea6d | ||
|
|
1bc50ea71c | ||
|
|
60b5225ffd | ||
|
|
5fe3685a05 | ||
|
|
fbfc0f6c2f | ||
|
|
bbed4be61b | ||
|
|
68f954d068 | ||
|
|
30144b8707 | ||
|
|
dd232f55a9 | ||
|
|
3a836eba63 | ||
|
|
55a16f31c2 | ||
|
|
7de88f4e47 | ||
|
|
d71b827d1a | ||
|
|
3811caa8a0 | ||
|
|
32f6bc376b | ||
|
|
8b4ebe4fa3 | ||
|
|
45415ef8da | ||
|
|
99bba14628 | ||
|
|
8b8b2568e2 | ||
|
|
ca144e127c | ||
|
|
965760df41 | ||
|
|
6ab25f7bc0 | ||
|
|
701ae5b2b1 | ||
|
|
b2d6ee06df | ||
|
|
18f5bdeaf8 | ||
|
|
dd6ce33296 | ||
|
|
5a7a6bf59c | ||
|
|
20d8a403f3 | ||
|
|
0bce8e185d | ||
|
|
7f21075613 | ||
|
|
e833860fcb | ||
|
|
376b17e011 | ||
|
|
87541a63d3 | ||
|
|
109b83d6f1 | ||
|
|
3a1fc363ed | ||
|
|
71658a5de6 | ||
|
|
40ac57a5d4 | ||
|
|
a20bf845ea | ||
|
|
95943b725c | ||
|
|
0813ae0f3c | ||
|
|
a33e34c309 | ||
|
|
821cc11364 | ||
|
|
caf7df4a82 | ||
|
|
bda39ef876 | ||
|
|
9e2ed855eb | ||
|
|
3be453e76a | ||
|
|
dec54692c1 | ||
|
|
e77d19b128 | ||
|
|
a83bf98625 | ||
|
|
3307365885 | ||
|
|
341fc774a6 | ||
|
|
56673f14b5 | ||
|
|
ab08eb2f99 | ||
|
|
000458697d | ||
|
|
b0c56d8963 | ||
|
|
0ecd65777e | ||
|
|
6d02f50d09 | ||
|
|
a71143891e | ||
|
|
6fda5924a3 | ||
|
|
b09574f62f | ||
|
|
8cdde88049 | ||
|
|
9cd42b988d | ||
|
|
8b559ad4f2 | ||
|
|
192fce8740 | ||
|
|
235016d7cf | ||
|
|
27792b0be4 | ||
|
|
765fd7d766 | ||
|
|
d49a5097f0 | ||
|
|
cfcc3fdbbe | ||
|
|
fdbceb0e42 | ||
|
|
89197cbdb2 | ||
|
|
f067f07d64 | ||
|
|
4594a978e0 | ||
|
|
fcddccf018 | ||
|
|
7a9285b326 | ||
|
|
11f0ab9226 | ||
|
|
0b6705610c | ||
|
|
9d9199ba3b | ||
|
|
ff656a0625 | ||
|
|
148fc103e3 | ||
|
|
77abbee308 | ||
|
|
83c4ce98b4 | ||
|
|
898741e40d | ||
|
|
0c3e7395e7 | ||
|
|
c530bdd107 | ||
|
|
29dbcb309d | ||
|
|
8a4990d9ae | ||
|
|
0e55cbbda6 | ||
|
|
6da94aecf2 | ||
|
|
2a3c962e88 | ||
|
|
34f1eb60f4 | ||
|
|
4115ebe856 | ||
|
|
d7dadfc157 | ||
|
|
2851eeeab3 | ||
|
|
84d75f2ae8 | ||
|
|
73b3309adf | ||
|
|
e2de06f60d | ||
|
|
cdc7962d11 | ||
|
|
59242e1217 | ||
|
|
631e39d4fd | ||
|
|
4290cdf53d | ||
|
|
84c1e20216 | ||
|
|
e6caeb86b0 | ||
|
|
5854e38a09 | ||
|
|
3e9ee9451f | ||
|
|
29d02f0a2b | ||
|
|
c780f9bbba | ||
|
|
d5a0bac0a3 | ||
|
|
f0187cc0f8 | ||
|
|
4708d894cc | ||
|
|
f38d120406 | ||
|
|
53960baf76 | ||
|
|
a0f061aa6f | ||
|
|
f2fb525d0a | ||
|
|
5a59bee597 | ||
|
|
07b903d887 | ||
|
|
1a39315001 | ||
|
|
97e5f00dae | ||
|
|
bae77f21f8 | ||
|
|
24d788f333 | ||
|
|
c4d553c605 | ||
|
|
fa64e2e67c | ||
|
|
94c29180e4 | ||
|
|
b864d91572 | ||
|
|
2006182a2a | ||
|
|
8fc3de416c | ||
|
|
4c5787511e | ||
|
|
8a2e4bc628 | ||
|
|
f78ebbb9a9 | ||
|
|
4cc4c25691 | ||
|
|
d02c7dc3a7 | ||
|
|
8741ee771e | ||
|
|
006e8463cd | ||
|
|
86e295e9bc | ||
|
|
07bade2557 | ||
|
|
0becc890d8 | ||
|
|
a1ce6f1ce5 | ||
|
|
43a7d00c63 | ||
|
|
9c04ba767c | ||
|
|
7e1d10fb4d | ||
|
|
4ce2280e31 | ||
|
|
2918a89d35 | ||
|
|
8f1c83edfd | ||
|
|
106452d857 | ||
|
|
a4d3fb6c70 | ||
|
|
a7af01b9e3 | ||
|
|
f7f434ab55 | ||
|
|
09c0854779 | ||
|
|
b4d12d74f7 | ||
|
|
50b064907a | ||
|
|
b9d6a0f269 | ||
|
|
2414e57260 | ||
|
|
6c41ddb622 | ||
|
|
55e75d56fd | ||
|
|
32ac299422 | ||
|
|
cb7146f954 | ||
|
|
144c1ce4f4 | ||
|
|
2102d6eda1 | ||
|
|
1f8e3fe26f | ||
|
|
8b0285a9d7 | ||
|
|
b546d01c2d | ||
|
|
7bf3e7df1d | ||
|
|
f9ac965e18 | ||
|
|
d70412166c | ||
|
|
a843406cb0 | ||
|
|
58115477a2 | ||
|
|
e1dc573c3c | ||
|
|
c025102511 | ||
|
|
54d052de73 | ||
|
|
7e633f0136 | ||
|
|
4b4bc1c823 | ||
|
|
767e23f34c | ||
|
|
b003d28cc5 | ||
|
|
91c8e9bd86 | ||
|
|
1f52c0b49f | ||
|
|
16fd4d4411 | ||
|
|
b8a669ad21 | ||
|
|
f0cb33a627 | ||
|
|
b5b7019325 | ||
|
|
7ccd68eb18 | ||
|
|
44b0ac57eb | ||
|
|
a411b7c969 | ||
|
|
fc8ce532f6 | ||
|
|
ef56b3c5b6 | ||
|
|
37e13804a5 | ||
|
|
8b209b3c6e | ||
|
|
cb26042d08 | ||
|
|
2952d1cde8 | ||
|
|
8a7f456560 | ||
|
|
f74b6cd82f | ||
|
|
d04515c35a | ||
|
|
2aca0ce110 | ||
|
|
d0e49b27a1 | ||
|
|
d97c365aed | ||
|
|
8304e77a04 | ||
|
|
b1db315582 | ||
|
|
4e785dd982 | ||
|
|
40f5afcf43 | ||
|
|
de2688bb33 | ||
|
|
76db09303b | ||
|
|
ea4e20f9a7 | ||
|
|
01a74856a3 | ||
|
|
36045100bf | ||
|
|
cc344cb548 | ||
|
|
a2624952a0 | ||
|
|
b8259e00dc | ||
|
|
463c823d3b | ||
|
|
5a6f3ead5a | ||
|
|
1b4d666af3 | ||
|
|
77d299338a | ||
|
|
33fc6e2f3f | ||
|
|
a95eaa6c2e | ||
|
|
5a3947bb23 | ||
|
|
f84a561d9e | ||
|
|
295878ffff | ||
|
|
609942654a | ||
|
|
60ad0196c3 | ||
|
|
caea6966ef | ||
|
|
d4c269f7cb | ||
|
|
54a1ee53b4 | ||
|
|
2c51e8ac06 | ||
|
|
3cbd69eef2 | ||
|
|
ee539644d8 | ||
|
|
465263bc97 | ||
|
|
1def65eb90 | ||
|
|
746be98bfc | ||
|
|
99b58dd318 | ||
|
|
df3ef0d895 | ||
|
|
83e4042668 | ||
|
|
c6e87568b6 | ||
|
|
0170c65c7b | ||
|
|
a7c1ccec71 | ||
|
|
1adbebf9dc | ||
|
|
9d68cb52b3 | ||
|
|
44272b650c | ||
|
|
5ce96d379a | ||
|
|
173c5fe430 | ||
|
|
e10595c3ed | ||
|
|
9138f56701 | ||
|
|
974e2a5106 | ||
|
|
509cf661f5 | ||
|
|
25fdea9984 | ||
|
|
9979e470fc | ||
|
|
2a492f5036 | ||
|
|
baf1f01e44 | ||
|
|
1f8dc944e3 | ||
|
|
dc07c6fede | ||
|
|
94a63f8aea | ||
|
|
a47cb595db | ||
|
|
86ccc176e8 | ||
|
|
b31041f0ce | ||
|
|
e434a78de9 | ||
|
|
6ddb77e03c | ||
|
|
f6665d79c0 | ||
|
|
75a7b99a42 | ||
|
|
3858a40c1c | ||
|
|
3d6aa8f2b5 | ||
|
|
54436f97c1 | ||
|
|
dca40dc6cb | ||
|
|
c19d91a373 | ||
|
|
840cfd8ab0 | ||
|
|
8cf6ba88e1 | ||
|
|
4ac81b030e | ||
|
|
e5cd1b29fe | ||
|
|
ebc932572f | ||
|
|
f0a6c6e67e | ||
|
|
e1454b5c4a | ||
|
|
f6e2abdf01 | ||
|
|
e2a02f4b21 | ||
|
|
934d7db24e | ||
|
|
2b520cbc4c | ||
|
|
e37dd73b9e | ||
|
|
c646319657 | ||
|
|
7a3a5a3f43 | ||
|
|
5345a77092 | ||
|
|
91de33550d | ||
|
|
85fb7513db | ||
|
|
c9d907e3fe | ||
|
|
5dfd02151e | ||
|
|
e446802ac9 | ||
|
|
bb71a4bb7d | ||
|
|
7ea2b9c8c0 | ||
|
|
056bc55e1f | ||
|
|
b1f89276cf | ||
|
|
f75ae6bd21 | ||
|
|
1066c65a6a | ||
|
|
03daaa4832 | ||
|
|
faea112f5e | ||
|
|
4461196ba3 | ||
|
|
ef3f20830d | ||
|
|
6d3ff5a956 | ||
|
|
9b6ef10555 | ||
|
|
1ac86cf979 | ||
|
|
1303040e17 | ||
|
|
5e2f745407 | ||
|
|
dc6861d5a4 | ||
|
|
7e5833bed2 | ||
|
|
55af587836 | ||
|
|
f59174d6ce | ||
|
|
c83c4488bf | ||
|
|
38280c358f | ||
|
|
f7c1500bc0 | ||
|
|
ae90e96a3e | ||
|
|
c05a49567d | ||
|
|
96fe34e6c7 | ||
|
|
c9f6de1371 | ||
|
|
60a995d654 | ||
|
|
1b053b0ff2 | ||
|
|
6293b586f1 | ||
|
|
f615b0133c | ||
|
|
06f509b475 | ||
|
|
47d261e45c | ||
|
|
961dbd81c7 | ||
|
|
190755126b | ||
|
|
f21ebf63ba | ||
|
|
beb30c5224 | ||
|
|
2253393ac8 | ||
|
|
965a6981db | ||
|
|
214c53220f | ||
|
|
c5af0ba621 | ||
|
|
22eff7fa21 | ||
|
|
0f57928585 | ||
|
|
7fee0297e8 | ||
|
|
df81e0fe53 | ||
|
|
c58de5c690 | ||
|
|
cf1fa52426 | ||
|
|
e58cad0464 | ||
|
|
2bf982452e | ||
|
|
891278d0b3 | ||
|
|
056226b8af | ||
|
|
f8dae86798 | ||
|
|
309f23ba94 | ||
|
|
3f93a81818 | ||
|
|
83196cda10 | ||
|
|
f3670ce86d | ||
|
|
5fd5804245 | ||
|
|
c58e557019 | ||
|
|
50515e0143 | ||
|
|
05f082ef06 | ||
|
|
20ef19ecf1 | ||
|
|
65450e36ef | ||
|
|
1b7a81afa5 | ||
|
|
470e987fad | ||
|
|
419db67267 | ||
|
|
ff70025429 | ||
|
|
7a305ef96e | ||
|
|
28efcea9d8 | ||
|
|
3927f3423f | ||
|
|
0c3b5139b1 | ||
|
|
ec9fcdf1cb | ||
|
|
d335438f12 | ||
|
|
69b536cfb9 | ||
|
|
edb4555699 | ||
|
|
8b6728c65d | ||
|
|
d3336192c3 | ||
|
|
10eadbb7e6 | ||
|
|
36a5282823 | ||
|
|
555be6c229 | ||
|
|
3f5e6883b5 | ||
|
|
ddcf90e95c | ||
|
|
683e9e72b9 | ||
|
|
123eaf77fa | ||
|
|
bb29f20a07 | ||
|
|
866390ece1 | ||
|
|
5b844e45e3 | ||
|
|
1c80771405 | ||
|
|
d42cbbd9f8 | ||
|
|
18873a9659 | ||
|
|
7859397790 | ||
|
|
bc23f9cd33 | ||
|
|
02f0057578 | ||
|
|
63761d515a | ||
|
|
5cc4b31f35 | ||
|
|
a03bf2cb8e | ||
|
|
312902ea77 | ||
|
|
961a9236fd | ||
|
|
364e63da14 | ||
|
|
27c62b3d78 | ||
|
|
51623b47f0 | ||
|
|
824cfc0c9c | ||
|
|
398e170e2d |
3
.github/workflows/ci-lua.yml
vendored
3
.github/workflows/ci-lua.yml
vendored
@@ -17,7 +17,8 @@ jobs:
|
||||
|
||||
- name: Check lua codes
|
||||
run: |
|
||||
set -o pipefail && luacheck . | awk -F: '
|
||||
set -o pipefail && luacheck . \
|
||||
--exclude-files=resources/prosody-plugins/mod_firewall/mod_firewall.lua | awk -F: '
|
||||
{
|
||||
print $0
|
||||
printf "::warning file=%s,line=%s,col=%s::%s\n", $1, $2, $3, $4
|
||||
|
||||
14
.github/workflows/ci.yml
vendored
14
.github/workflows/ci.yml
vendored
@@ -74,3 +74,17 @@ jobs:
|
||||
cache: 'npm'
|
||||
- run: npm install
|
||||
- run: npx react-native bundle --entry-file react/index.native.js --platform ios --bundle-output /tmp/ios.bundle --reset-cache
|
||||
debian-build:
|
||||
name: Test Debian packages build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
cache: 'npm'
|
||||
- run: npm install
|
||||
- run: make
|
||||
- run: sudo apt-get install -y debhelper
|
||||
- run: dpkg-buildpackage -A -rfakeroot -us -uc -d
|
||||
- run: make source-package
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -99,6 +99,10 @@ tsconfig.json
|
||||
#
|
||||
react-native-sdk/*.tgz
|
||||
react-native-sdk/android/src
|
||||
!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java
|
||||
!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/JitsiMeetReactNativePackage.java
|
||||
!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/JMOngoingConferenceModule.java
|
||||
!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/RNOngoingNotification.java
|
||||
react-native-sdk/images
|
||||
react-native-sdk/ios
|
||||
react-native-sdk/lang
|
||||
|
||||
4
Makefile
4
Makefile
@@ -55,6 +55,8 @@ deploy-appbundle:
|
||||
$(BUILD_DIR)/face-landmarks-worker.min.js.map \
|
||||
$(BUILD_DIR)/noise-suppressor-worklet.min.js \
|
||||
$(BUILD_DIR)/noise-suppressor-worklet.min.js.map \
|
||||
$(BUILD_DIR)/screenshot-capture-worker.min.js \
|
||||
$(BUILD_DIR)/screenshot-capture-worker.min.js.map \
|
||||
$(DEPLOY_DIR)
|
||||
cp \
|
||||
$(BUILD_DIR)/close3.min.js \
|
||||
@@ -123,7 +125,7 @@ dev: deploy-init deploy-css deploy-rnnoise-binary deploy-tflite deploy-meet-mode
|
||||
|
||||
source-package:
|
||||
mkdir -p source_package/jitsi-meet/css && \
|
||||
cp -r *.js *.html resources/*.txt favicon.ico fonts images libs static sounds LICENSE lang source_package/jitsi-meet && \
|
||||
cp -r *.js *.html resources/*.txt fonts images libs static sounds LICENSE lang source_package/jitsi-meet && \
|
||||
cp css/all.css source_package/jitsi-meet/css && \
|
||||
(cd source_package ; tar cjf ../jitsi-meet.tar.bz2 jitsi-meet) && \
|
||||
rm -rf source_package
|
||||
|
||||
@@ -27,7 +27,7 @@ And many more!
|
||||
|
||||
## Using Jitsi Meet
|
||||
|
||||
Using Jitsi Meet is straightforward, as it's browser based. Head over to [meet.jit.si](https://meet.jit.si) and give it a try. It's anonymous, scalable and free to use. All browsers are supported!
|
||||
Using Jitsi Meet is straightforward, as it's browser based. Head over to [meet.jit.si](https://meet.jit.si) and give it a try. It's scalable and free to use. All you need is a Google, Facebook or GitHub account in order to start a meeting. All browsers are supported!
|
||||
|
||||
Using mobile? No problem, you can either use your mobile web browser or our fully-featured
|
||||
mobile apps:
|
||||
|
||||
@@ -81,14 +81,15 @@ dependencies {
|
||||
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
|
||||
|
||||
if (!rootProject.ext.libreBuild) {
|
||||
implementation 'com.google.android.gms:play-services-auth:16.0.1'
|
||||
// Sync with react-native-google-signin
|
||||
implementation 'com.google.android.gms:play-services-auth:20.5.0'
|
||||
|
||||
// Firebase
|
||||
// - Crashlytics
|
||||
// - Dynamic Links
|
||||
implementation 'com.google.firebase:firebase-analytics:17.5.0'
|
||||
implementation 'com.google.firebase:firebase-crashlytics:17.2.1'
|
||||
implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
|
||||
implementation 'com.google.firebase:firebase-analytics:21.3.0'
|
||||
implementation 'com.google.firebase:firebase-crashlytics:18.4.3'
|
||||
implementation 'com.google.firebase:firebase-dynamic-links:21.1.0'
|
||||
}
|
||||
|
||||
implementation project(':sdk')
|
||||
|
||||
@@ -152,7 +152,6 @@ public class MainActivity extends JitsiMeetActivity {
|
||||
= new JitsiMeetConferenceOptions.Builder()
|
||||
.setServerURL(buildURL(defaultURL))
|
||||
.setFeatureFlag("welcomepage.enabled", true)
|
||||
.setFeatureFlag("call-integration.enabled", false)
|
||||
.setFeatureFlag("resolution", 360)
|
||||
.setFeatureFlag("server-url-change.enabled", !configurationByRestrictions)
|
||||
.build();
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- Server URL configuration -->
|
||||
<restriction
|
||||
android:defaultValue="https://meet.jit.si"
|
||||
android:description="@string/restriction_server_url_description"
|
||||
android:key="SERVER_URL"
|
||||
android:restrictionType="string"
|
||||
android:title="@string/restriction_server_url_title"/>
|
||||
</restrictions>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- Server URL configuration -->
|
||||
<restriction
|
||||
android:description="@string/restriction_server_url_description"
|
||||
android:key="SERVER_URL"
|
||||
android:restrictionType="string"
|
||||
android:title="@string/restriction_server_url_title"/>
|
||||
</restrictions>
|
||||
|
||||
@@ -10,29 +10,24 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.1.1'
|
||||
classpath 'com.google.gms:google-services:4.3.14'
|
||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
|
||||
classpath 'com.android.tools.build:gradle:7.3.1'
|
||||
classpath 'com.google.gms:google-services:4.4.0'
|
||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
|
||||
}
|
||||
}
|
||||
|
||||
ext {
|
||||
kotlinVersion = "1.7.0"
|
||||
buildToolsVersion = "31.0.0"
|
||||
compileSdkVersion = 32
|
||||
buildToolsVersion = "33.0.2"
|
||||
compileSdkVersion = 33
|
||||
minSdkVersion = 24
|
||||
targetSdkVersion = 32
|
||||
targetSdkVersion = 33
|
||||
supportLibVersion = "28.0.0"
|
||||
|
||||
if (System.properties['os.arch'] == "aarch64") {
|
||||
// For M1 Users we need to use the NDK 24 which added support for aarch64
|
||||
ndkVersion = "24.0.8215888"
|
||||
} else {
|
||||
// Otherwise we default to the side-by-side NDK version from AGP.
|
||||
ndkVersion = "21.4.7075529"
|
||||
}
|
||||
// We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
|
||||
ndkVersion = "23.1.7779620"
|
||||
|
||||
// The Maven artifact groupdId of the third-party react-native modules which
|
||||
// The Maven artifact groupId of the third-party react-native modules which
|
||||
// Jitsi Meet SDK for Android depends on and which are not available in
|
||||
// third-party Maven repositories so we have to deploy to a Maven repository
|
||||
// of ours.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -29,6 +29,10 @@ if [[ $MVN_HTTP == 1 ]]; then
|
||||
# Push React Native
|
||||
echo "Pushing React Native ${RN_VERSION} to the Maven repo"
|
||||
pushd ${THIS_DIR}/../../node_modules/react-native/android/com/facebook/react/react-native/${RN_VERSION}
|
||||
cat react-native-${RN_VERSION}.pom \
|
||||
| sed "s#<packaging>pom</packaging>#<packaging>aar</packaging>#" \
|
||||
| sed "/<optional>/d" \
|
||||
> react-native-${RN_VERSION}-fixed.pom
|
||||
mvn \
|
||||
deploy:deploy-file \
|
||||
-Durl=${MVN_REPO} \
|
||||
@@ -36,7 +40,7 @@ if [[ $MVN_HTTP == 1 ]]; then
|
||||
-Dfile=react-native-${RN_VERSION}-release.aar \
|
||||
-Dpackaging=aar \
|
||||
-DgeneratePom=false \
|
||||
-DpomFile=react-native-${RN_VERSION}.pom || true
|
||||
-DpomFile=react-native-${RN_VERSION}-fixed.pom || true
|
||||
popd
|
||||
# Push JSC
|
||||
echo "Pushing JSC ${JSC_VERSION} to the Maven repo"
|
||||
@@ -55,13 +59,17 @@ else
|
||||
if [[ ! -d ${MVN_REPO}/com/facebook/react/react-native/${RN_VERSION} ]]; then
|
||||
echo "Pushing React Native ${RN_VERSION} to the Maven repo"
|
||||
pushd ${THIS_DIR}/../../node_modules/react-native/android/com/facebook/react/react-native/${RN_VERSION}
|
||||
cat react-native-${RN_VERSION}.pom \
|
||||
| sed "s#<packaging>pom</packaging>#<packaging>aar</packaging>#" \
|
||||
| sed "/<optional>/d" \
|
||||
> react-native-${RN_VERSION}-fixed.pom
|
||||
mvn \
|
||||
deploy:deploy-file \
|
||||
-Durl=${MVN_REPO} \
|
||||
-Dfile=react-native-${RN_VERSION}-release.aar \
|
||||
-Dpackaging=aar \
|
||||
-DgeneratePom=false \
|
||||
-DpomFile=react-native-${RN_VERSION}.pom
|
||||
-DpomFile=react-native-${RN_VERSION}-fixed.pom
|
||||
popd
|
||||
fi
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ dependencies {
|
||||
}
|
||||
implementation project(':react-native-gesture-handler')
|
||||
implementation project(':react-native-get-random-values')
|
||||
implementation project(':react-native-immersive')
|
||||
implementation project(':react-native-immersive-mode')
|
||||
implementation project(':react-native-keep-awake')
|
||||
implementation project(':react-native-orientation-locker')
|
||||
implementation project(':react-native-pager-view')
|
||||
|
||||
@@ -77,7 +77,8 @@ public class BroadcastAction {
|
||||
CLOSE_CHAT("org.jitsi.meet.CLOSE_CHAT"),
|
||||
SEND_CHAT_MESSAGE("org.jitsi.meet.SEND_CHAT_MESSAGE"),
|
||||
SET_VIDEO_MUTED("org.jitsi.meet.SET_VIDEO_MUTED"),
|
||||
SET_CLOSED_CAPTIONS_ENABLED("org.jitsi.meet.SET_CLOSED_CAPTIONS_ENABLED");
|
||||
SET_CLOSED_CAPTIONS_ENABLED("org.jitsi.meet.SET_CLOSED_CAPTIONS_ENABLED"),
|
||||
TOGGLE_CAMERA("org.jitsi.meet.TOGGLE_CAMERA");
|
||||
|
||||
private final String action;
|
||||
|
||||
|
||||
@@ -75,6 +75,8 @@ public class BroadcastEvent {
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
CONFERENCE_BLURRED("org.jitsi.meet.CONFERENCE_BLURRED"),
|
||||
CONFERENCE_FOCUSED("org.jitsi.meet.CONFERENCE_FOCUSED"),
|
||||
CONFERENCE_JOINED("org.jitsi.meet.CONFERENCE_JOINED"),
|
||||
CONFERENCE_TERMINATED("org.jitsi.meet.CONFERENCE_TERMINATED"),
|
||||
CONFERENCE_WILL_JOIN("org.jitsi.meet.CONFERENCE_WILL_JOIN"),
|
||||
@@ -89,6 +91,8 @@ public class BroadcastEvent {
|
||||
VIDEO_MUTED_CHANGED("org.jitsi.meet.VIDEO_MUTED_CHANGED"),
|
||||
READY_TO_CLOSE("org.jitsi.meet.READY_TO_CLOSE");
|
||||
|
||||
private static final String CONFERENCE_BLURRED_NAME = "CONFERENCE_BLURRED";
|
||||
private static final String CONFERENCE_FOCUSED_NAME = "CONFERENCE_FOCUSED";
|
||||
private static final String CONFERENCE_WILL_JOIN_NAME = "CONFERENCE_WILL_JOIN";
|
||||
private static final String CONFERENCE_JOINED_NAME = "CONFERENCE_JOINED";
|
||||
private static final String CONFERENCE_TERMINATED_NAME = "CONFERENCE_TERMINATED";
|
||||
@@ -124,6 +128,10 @@ public class BroadcastEvent {
|
||||
|
||||
private static Type buildTypeFromName(String name) {
|
||||
switch (name) {
|
||||
case CONFERENCE_BLURRED_NAME:
|
||||
return CONFERENCE_BLURRED;
|
||||
case CONFERENCE_FOCUSED_NAME:
|
||||
return CONFERENCE_FOCUSED;
|
||||
case CONFERENCE_WILL_JOIN_NAME:
|
||||
return CONFERENCE_WILL_JOIN;
|
||||
case CONFERENCE_JOINED_NAME:
|
||||
|
||||
@@ -54,4 +54,14 @@ public class BroadcastIntentHelper {
|
||||
intent.putExtra("enabled", enabled);
|
||||
return intent;
|
||||
}
|
||||
|
||||
public static Intent buildRetrieveParticipantsInfo(String requestId) {
|
||||
Intent intent = new Intent(BroadcastAction.Type.RETRIEVE_PARTICIPANTS_INFO.getAction());
|
||||
intent.putExtra("requestId", requestId);
|
||||
return intent;
|
||||
}
|
||||
|
||||
public static Intent buildToggleCameraIntent() {
|
||||
return new Intent(BroadcastAction.Type.TOGGLE_CAMERA.getAction());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,6 +96,7 @@ class ExternalAPIModule extends ReactContextBaseJavaModule {
|
||||
constants.put("SEND_CHAT_MESSAGE", BroadcastAction.Type.SEND_CHAT_MESSAGE.getAction());
|
||||
constants.put("SET_VIDEO_MUTED", BroadcastAction.Type.SET_VIDEO_MUTED.getAction());
|
||||
constants.put("SET_CLOSED_CAPTIONS_ENABLED", BroadcastAction.Type.SET_CLOSED_CAPTIONS_ENABLED.getAction());
|
||||
constants.put("TOGGLE_CAMERA", BroadcastAction.Type.TOGGLE_CAMERA.getAction());
|
||||
|
||||
return constants;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.facebook.react.ReactRootView;
|
||||
import com.rnimmersive.RNImmersiveModule;
|
||||
|
||||
import org.jitsi.meet.sdk.log.JitsiMeetLogger;
|
||||
|
||||
@@ -229,22 +228,4 @@ public class JitsiMeetView extends FrameLayout {
|
||||
dispose();
|
||||
super.onDetachedFromWindow();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the window containing this view gains or loses focus.
|
||||
*
|
||||
* @param hasFocus If the window of this view now has focus, {@code true};
|
||||
* otherwise, {@code false}.
|
||||
*/
|
||||
@Override
|
||||
public void onWindowFocusChanged(boolean hasFocus) {
|
||||
super.onWindowFocusChanged(hasFocus);
|
||||
|
||||
// https://github.com/mockingbot/react-native-immersive#restore-immersive-state
|
||||
RNImmersiveModule immersive = RNImmersiveModule.getInstance();
|
||||
|
||||
if (hasFocus && immersive != null) {
|
||||
immersive.emitImmersiveStateChangeEvent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ class ReactInstanceManagerHolder {
|
||||
new com.oney.WebRTCModule.WebRTCModulePackage(),
|
||||
new com.swmansion.gesturehandler.RNGestureHandlerPackage(),
|
||||
new org.linusu.RNGetRandomValuesPackage(),
|
||||
new com.rnimmersive.RNImmersivePackage(),
|
||||
new com.rnimmersivemode.RNImmersiveModePackage(),
|
||||
new com.swmansion.rnscreens.RNScreensPackage(),
|
||||
new com.zmxv.RNSound.RNSoundPackage(),
|
||||
new com.th3rdwave.safeareacontext.SafeAreaContextPackage(),
|
||||
|
||||
@@ -27,8 +27,8 @@ include ':react-native-giphy'
|
||||
project(':react-native-giphy').projectDir = new File(rootProject.projectDir, '../node_modules/@giphy/react-native-sdk/android')
|
||||
include ':react-native-google-signin'
|
||||
project(':react-native-google-signin').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-google-signin/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-immersive-mode'
|
||||
project(':react-native-immersive-mode').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-immersive-mode/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-orientation-locker'
|
||||
|
||||
6
app.js
6
app.js
@@ -31,12 +31,6 @@ if (window.Olm) {
|
||||
window.APP = {
|
||||
API,
|
||||
conference,
|
||||
|
||||
// Used for automated performance tests.
|
||||
connectionTimes: {
|
||||
'index.loaded': window.indexLoadedTime
|
||||
},
|
||||
|
||||
translation,
|
||||
UI
|
||||
};
|
||||
|
||||
463
conference.js
463
conference.js
@@ -4,12 +4,8 @@ import { jitsiLocalStorage } from '@jitsi/js-utils';
|
||||
import Logger from '@jitsi/logger';
|
||||
import EventEmitter from 'events';
|
||||
|
||||
import { openConnection } from './connection';
|
||||
import { ENDPOINT_TEXT_MESSAGE_NAME } from './modules/API/constants';
|
||||
import { AUDIO_ONLY_SCREEN_SHARE_NO_TRACK } from './modules/UI/UIErrors';
|
||||
import AuthHandler from './modules/UI/authentication/AuthHandler';
|
||||
import UIUtil from './modules/UI/util/UIUtil';
|
||||
import VideoLayout from './modules/UI/videolayout/VideoLayout';
|
||||
import mediaDeviceHelper from './modules/devices/mediaDeviceHelper';
|
||||
import Recorder from './modules/recorder/Recorder';
|
||||
import { createTaskQueue } from './modules/util/helpers';
|
||||
@@ -37,7 +33,7 @@ import {
|
||||
conferenceSubjectChanged,
|
||||
conferenceTimestampChanged,
|
||||
conferenceUniqueIdSet,
|
||||
conferenceWillJoin,
|
||||
conferenceWillInit,
|
||||
conferenceWillLeave,
|
||||
dataChannelClosed,
|
||||
dataChannelOpened,
|
||||
@@ -57,12 +53,10 @@ import {
|
||||
commonUserJoinedHandling,
|
||||
commonUserLeftHandling,
|
||||
getConferenceOptions,
|
||||
getVisitorOptions,
|
||||
restoreConferenceOptions,
|
||||
sendLocalParticipant
|
||||
} from './react/features/base/conference/functions';
|
||||
import { overwriteConfig } from './react/features/base/config/actions';
|
||||
import { getReplaceParticipant } from './react/features/base/config/functions';
|
||||
import { connect } from './react/features/base/connection/actions.web';
|
||||
import {
|
||||
checkAndNotifyForNewDevice,
|
||||
getAvailableDevices,
|
||||
@@ -71,21 +65,22 @@ import {
|
||||
updateDeviceList
|
||||
} from './react/features/base/devices/actions.web';
|
||||
import {
|
||||
areDevicesDifferent,
|
||||
filterIgnoredDevices,
|
||||
flattenAvailableDevices,
|
||||
getDefaultDeviceId,
|
||||
logDevices,
|
||||
setAudioOutputDeviceId
|
||||
} from './react/features/base/devices/functions.web';
|
||||
import {
|
||||
JitsiConferenceErrors,
|
||||
JitsiConferenceEvents,
|
||||
JitsiConnectionErrors,
|
||||
JitsiConnectionEvents,
|
||||
JitsiE2ePingEvents,
|
||||
JitsiMediaDevicesEvents,
|
||||
JitsiTrackErrors,
|
||||
JitsiTrackEvents,
|
||||
browser
|
||||
} from './react/features/base/lib-jitsi-meet';
|
||||
import { isFatalJitsiConnectionError } from './react/features/base/lib-jitsi-meet/functions';
|
||||
import {
|
||||
gumPending,
|
||||
setAudioAvailable,
|
||||
@@ -139,13 +134,19 @@ import {
|
||||
isUserInteractionRequiredForUnmute
|
||||
} from './react/features/base/tracks/functions';
|
||||
import { downloadJSON } from './react/features/base/util/downloadJSON';
|
||||
import { openLeaveReasonDialog } from './react/features/conference/actions.web';
|
||||
import { showDesktopPicker } from './react/features/desktop-picker/actions';
|
||||
import { appendSuffix } from './react/features/display-name/functions';
|
||||
import { maybeOpenFeedbackDialog, submitFeedback } from './react/features/feedback/actions';
|
||||
import { initKeyboardShortcuts } from './react/features/keyboard-shortcuts/actions';
|
||||
import { maybeSetLobbyChatMessageListener } from './react/features/lobby/actions.any';
|
||||
import { setNoiseSuppressionEnabled } from './react/features/noise-suppression/actions';
|
||||
import { hideNotification, showNotification, showWarningNotification } from './react/features/notifications/actions';
|
||||
import {
|
||||
hideNotification,
|
||||
showErrorNotification,
|
||||
showNotification,
|
||||
showWarningNotification
|
||||
} from './react/features/notifications/actions';
|
||||
import {
|
||||
DATA_CHANNEL_CLOSED_NOTIFICATION_ID,
|
||||
NOTIFICATION_TIMEOUT_TYPE
|
||||
@@ -153,7 +154,7 @@ import {
|
||||
import { isModerationNotificationDisplayed } from './react/features/notifications/functions';
|
||||
import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay/actions';
|
||||
import { suspendDetected } from './react/features/power-monitor/actions';
|
||||
import { initPrejoin, makePrecallTest, setJoiningInProgress } from './react/features/prejoin/actions';
|
||||
import { initPrejoin } from './react/features/prejoin/actions';
|
||||
import { isPrejoinPageVisible } from './react/features/prejoin/functions';
|
||||
import { disableReceiver, stopReceiver } from './react/features/remote-control/actions';
|
||||
import { setScreenAudioShareState } from './react/features/screen-share/actions.web';
|
||||
@@ -164,7 +165,6 @@ import { createRnnoiseProcessor } from './react/features/stream-effects/rnnoise'
|
||||
import { endpointMessageReceived } from './react/features/subtitles/actions.any';
|
||||
import { handleToggleVideoMuted } from './react/features/toolbox/actions.any';
|
||||
import { muteLocal } from './react/features/video-menu/actions.any';
|
||||
import { setIAmVisitor } from './react/features/visitors/actions';
|
||||
import { iAmVisitor } from './react/features/visitors/functions';
|
||||
import UIEvents from './service/UI/UIEvents';
|
||||
|
||||
@@ -173,25 +173,6 @@ const logger = Logger.getLogger(__filename);
|
||||
const eventEmitter = new EventEmitter();
|
||||
|
||||
let room;
|
||||
let connection;
|
||||
|
||||
/**
|
||||
* The promise is used when the prejoin screen is shown.
|
||||
* While the user configures the devices the connection can be made.
|
||||
*
|
||||
* @type {Promise<Object>}
|
||||
* @private
|
||||
*/
|
||||
let _connectionPromise;
|
||||
|
||||
/**
|
||||
* We are storing the resolve function of a Promise that waits for the _connectionPromise to be created. This is needed
|
||||
* when the prejoin button was pressed before the conference object was initialized and the _connectionPromise has not
|
||||
* been initialized when we tried to execute prejoinStart. In this case in prejoinStart we create a new Promise, assign
|
||||
* the resolve function to this variable and wait for the promise to resolve before we continue. The
|
||||
* _onConnectionPromiseCreated will be called once the _connectionPromise is created.
|
||||
*/
|
||||
let _onConnectionPromiseCreated;
|
||||
|
||||
/*
|
||||
* Logic to open a desktop picker put on the window global for
|
||||
@@ -213,26 +194,6 @@ const commands = {
|
||||
ETHERPAD: 'etherpad'
|
||||
};
|
||||
|
||||
/**
|
||||
* Open Connection. When authentication failed it shows auth dialog.
|
||||
* @param roomName the room name to use
|
||||
* @returns Promise<JitsiConnection>
|
||||
*/
|
||||
function connect(roomName) {
|
||||
return openConnection({
|
||||
retry: true,
|
||||
roomName
|
||||
})
|
||||
.catch(err => {
|
||||
if (err === JitsiConnectionErrors.PASSWORD_REQUIRED) {
|
||||
APP.UI.notifyTokenAuthFailed();
|
||||
} else {
|
||||
APP.UI.notifyConnectionFailed(err);
|
||||
}
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Share data to other users.
|
||||
* @param command the command
|
||||
@@ -326,63 +287,25 @@ class ConferenceConnector {
|
||||
break;
|
||||
}
|
||||
|
||||
// not enough rights to create conference
|
||||
case JitsiConferenceErrors.AUTHENTICATION_REQUIRED: {
|
||||
|
||||
const replaceParticipant = getReplaceParticipant(APP.store.getState());
|
||||
|
||||
// Schedule reconnect to check if someone else created the room.
|
||||
this.reconnectTimeout = setTimeout(() => {
|
||||
APP.store.dispatch(conferenceWillJoin(room));
|
||||
room.join(null, replaceParticipant);
|
||||
}, 5000);
|
||||
|
||||
const { password }
|
||||
= APP.store.getState()['features/base/conference'];
|
||||
|
||||
AuthHandler.requireAuth(room, password);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case JitsiConferenceErrors.RESERVATION_ERROR: {
|
||||
const [ code, msg ] = params;
|
||||
|
||||
APP.UI.notifyReservationError(code, msg);
|
||||
break;
|
||||
}
|
||||
|
||||
case JitsiConferenceErrors.REDIRECTED: {
|
||||
const newConfig = getVisitorOptions(APP.store.getState(), params);
|
||||
|
||||
if (!newConfig) {
|
||||
logger.warn('Not redirected missing params');
|
||||
break;
|
||||
}
|
||||
|
||||
const [ vnode ] = params;
|
||||
|
||||
APP.store.dispatch(overwriteConfig(newConfig))
|
||||
.then(() => this._conference.leaveRoom())
|
||||
.then(() => APP.store.dispatch(setIAmVisitor(Boolean(vnode))))
|
||||
|
||||
// we do not clear local tracks on error, so we need to manually clear them
|
||||
.then(() => APP.store.dispatch(destroyLocalTracks()))
|
||||
.then(() => {
|
||||
// Reset VideoLayout. It's destroyed in features/video-layout/middleware.web.js so re-initialize it.
|
||||
VideoLayout.initLargeVideo();
|
||||
VideoLayout.resizeVideoArea();
|
||||
|
||||
connect(this._conference.roomName).then(con => {
|
||||
this._conference.startConference(con, []);
|
||||
});
|
||||
});
|
||||
|
||||
APP.store.dispatch(showErrorNotification({
|
||||
descriptionArguments: {
|
||||
code,
|
||||
msg
|
||||
},
|
||||
descriptionKey: 'dialog.reservationErrorMsg',
|
||||
titleKey: 'dialog.reservationError'
|
||||
}, NOTIFICATION_TIMEOUT_TYPE.LONG));
|
||||
break;
|
||||
}
|
||||
|
||||
case JitsiConferenceErrors.GRACEFUL_SHUTDOWN:
|
||||
APP.UI.notifyGracefulShutdown();
|
||||
APP.store.dispatch(showErrorNotification({
|
||||
descriptionKey: 'dialog.gracefulShutdown',
|
||||
titleKey: 'dialog.serviceUnavailable'
|
||||
}, NOTIFICATION_TIMEOUT_TYPE.LONG));
|
||||
break;
|
||||
|
||||
// FIXME FOCUS_DISCONNECTED is a confusing event name.
|
||||
@@ -408,31 +331,9 @@ class ConferenceConnector {
|
||||
// FIXME the conference should be stopped by the library and not by
|
||||
// the app. Both the errors above are unrecoverable from the library
|
||||
// perspective.
|
||||
room.leave(CONFERENCE_LEAVE_REASONS.UNRECOVERABLE_ERROR).then(() => connection.disconnect());
|
||||
room.leave(CONFERENCE_LEAVE_REASONS.UNRECOVERABLE_ERROR).then(() => APP.connection.disconnect());
|
||||
break;
|
||||
|
||||
case JitsiConferenceErrors.CONFERENCE_MAX_USERS: {
|
||||
APP.UI.notifyMaxUsersLimitReached();
|
||||
|
||||
// in case of max users(it can be from a visitor node), let's restore
|
||||
// oldConfig if any as we will be back to the main prosody
|
||||
const newConfig = restoreConferenceOptions(APP.store.getState());
|
||||
|
||||
if (newConfig) {
|
||||
APP.store.dispatch(overwriteConfig(newConfig))
|
||||
.then(() => this._conference.leaveRoom())
|
||||
.then(() => {
|
||||
_connectionPromise = connect(this._conference.roomName);
|
||||
|
||||
return _connectionPromise;
|
||||
})
|
||||
.then(con => {
|
||||
APP.connection = connection = con;
|
||||
});
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case JitsiConferenceErrors.INCOMPATIBLE_SERVER_VERSIONS:
|
||||
APP.store.dispatch(reloadWithStoredParams());
|
||||
break;
|
||||
@@ -488,11 +389,11 @@ function disconnect() {
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
if (!connection) {
|
||||
if (!APP.connection) {
|
||||
return onDisconnected();
|
||||
}
|
||||
|
||||
return connection.disconnect().then(onDisconnected, onDisconnected);
|
||||
return APP.connection.disconnect().then(onDisconnected, onDisconnected);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -510,25 +411,6 @@ function setGUMPendingStateOnFailedTracks(tracks) {
|
||||
APP.store.dispatch(gumPending(nonPendingTracks, IGUMPendingState.NONE));
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles CONNECTION_FAILED events from lib-jitsi-meet.
|
||||
*
|
||||
* @param {JitsiConnectionError} error - The reported error.
|
||||
* @returns {void}
|
||||
* @private
|
||||
*/
|
||||
function _connectionFailedHandler(error) {
|
||||
if (isFatalJitsiConnectionError(error)) {
|
||||
APP.connection.removeEventListener(
|
||||
JitsiConnectionEvents.CONNECTION_FAILED,
|
||||
_connectionFailedHandler);
|
||||
if (room) {
|
||||
APP.store.dispatch(conferenceWillLeave(room));
|
||||
room.leave(CONFERENCE_LEAVE_REASONS.UNRECOVERABLE_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
/**
|
||||
* Flag used to delay modification of the muted status of local media tracks
|
||||
@@ -547,7 +429,16 @@ export default {
|
||||
/**
|
||||
* Returns an object containing a promise which resolves with the created tracks &
|
||||
* the errors resulting from that process.
|
||||
*
|
||||
* @param {object} options
|
||||
* @param {boolean} options.startAudioOnly=false - if <tt>true</tt> then
|
||||
* only audio track will be created and the audio only mode will be turned
|
||||
* on.
|
||||
* @param {boolean} options.startScreenSharing=false - if <tt>true</tt>
|
||||
* should start with screensharing instead of camera video.
|
||||
* @param {boolean} options.startWithAudioMuted - will start the conference
|
||||
* without any audio tracks.
|
||||
* @param {boolean} options.startWithVideoMuted - will start the conference
|
||||
* without any video tracks.
|
||||
* @returns {Promise<JitsiLocalTrack[]>, Object}
|
||||
*/
|
||||
createInitialLocalTracks(options = {}) {
|
||||
@@ -555,7 +446,7 @@ export default {
|
||||
|
||||
// Always get a handle on the audio input device so that we have statistics (such as "No audio input" or
|
||||
// "Are you trying to speak?" ) even if the user joins the conference muted.
|
||||
const initialDevices = config.disableInitialGUM ? [] : [ MEDIA_TYPE.AUDIO ];
|
||||
const initialDevices = config.startSilent || config.disableInitialGUM ? [] : [ MEDIA_TYPE.AUDIO ];
|
||||
const requestedAudio = !config.disableInitialGUM;
|
||||
let requestedVideo = false;
|
||||
|
||||
@@ -725,37 +616,7 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates local media tracks and connects to a room. Will show error
|
||||
* dialogs in case accessing the local microphone and/or camera failed. Will
|
||||
* show guidance overlay for users on how to give access to camera and/or
|
||||
* microphone.
|
||||
* @param {string} roomName
|
||||
* @param {object} options
|
||||
* @param {boolean} options.startAudioOnly=false - if <tt>true</tt> then
|
||||
* only audio track will be created and the audio only mode will be turned
|
||||
* on.
|
||||
* @param {boolean} options.startScreenSharing=false - if <tt>true</tt>
|
||||
* should start with screensharing instead of camera video.
|
||||
* @param {boolean} options.startWithAudioMuted - will start the conference
|
||||
* without any audio tracks.
|
||||
* @param {boolean} options.startWithVideoMuted - will start the conference
|
||||
* without any video tracks.
|
||||
* @returns {Promise.<JitsiLocalTrack[], JitsiConnection>}
|
||||
*/
|
||||
createInitialLocalTracksAndConnect(roomName, options = {}) {
|
||||
const { tryCreateLocalTracks, errors } = this.createInitialLocalTracks(options);
|
||||
|
||||
return Promise.all([ tryCreateLocalTracks, connect(roomName) ])
|
||||
.then(([ tracks, con ]) => {
|
||||
|
||||
this._displayErrorsForCreateInitialLocalTracks(errors);
|
||||
|
||||
return [ tracks, con ];
|
||||
});
|
||||
},
|
||||
|
||||
startConference(con, tracks) {
|
||||
startConference(tracks) {
|
||||
tracks.forEach(track => {
|
||||
if ((track.isAudioTrack() && this.isLocalAudioMuted())
|
||||
|| (track.isVideoTrack() && this.isLocalVideoMuted())) {
|
||||
@@ -768,9 +629,6 @@ export default {
|
||||
}
|
||||
});
|
||||
|
||||
con.addEventListener(JitsiConnectionEvents.CONNECTION_FAILED, _connectionFailedHandler);
|
||||
APP.connection = connection = con;
|
||||
|
||||
this._createRoom(tracks);
|
||||
|
||||
// if user didn't give access to mic or camera or doesn't have
|
||||
@@ -778,7 +636,7 @@ export default {
|
||||
// so that the user can try unmute later on and add audio/video
|
||||
// to the conference
|
||||
if (!tracks.find(t => t.isAudioTrack())) {
|
||||
this.setAudioMuteStatus(true);
|
||||
this.updateAudioIconEnabled();
|
||||
}
|
||||
|
||||
if (!tracks.find(t => t.isVideoTrack())) {
|
||||
@@ -860,19 +718,6 @@ export default {
|
||||
};
|
||||
|
||||
if (isPrejoinPageVisible(state)) {
|
||||
_connectionPromise = connect(roomName).then(c => {
|
||||
// We want to initialize it early, in case of errors to be able to gather logs.
|
||||
APP.connection = c;
|
||||
|
||||
return c;
|
||||
});
|
||||
|
||||
if (_onConnectionPromiseCreated) {
|
||||
_onConnectionPromiseCreated();
|
||||
}
|
||||
|
||||
APP.store.dispatch(makePrecallTest(this._getConferenceOptions()));
|
||||
|
||||
const { tryCreateLocalTracks, errors } = this.createInitialLocalTracks(initialOptions);
|
||||
const localTracks = await tryCreateLocalTracks;
|
||||
|
||||
@@ -897,41 +742,26 @@ export default {
|
||||
return this._setLocalAudioVideoStreams(tracks);
|
||||
}
|
||||
|
||||
const [ tracks, con ] = await this.createInitialLocalTracksAndConnect(roomName, initialOptions);
|
||||
const { tryCreateLocalTracks, errors } = this.createInitialLocalTracks(initialOptions);
|
||||
|
||||
this._initDeviceList(true);
|
||||
return Promise.all([
|
||||
tryCreateLocalTracks.then(tr => {
|
||||
this._displayErrorsForCreateInitialLocalTracks(errors);
|
||||
|
||||
const filteredTracks = handleInitialTracks(initialOptions, tracks);
|
||||
return tr;
|
||||
}).then(tr => {
|
||||
this._initDeviceList(true);
|
||||
|
||||
setGUMPendingStateOnFailedTracks(filteredTracks);
|
||||
const filteredTracks = handleInitialTracks(initialOptions, tr);
|
||||
|
||||
return this.startConference(con, filteredTracks);
|
||||
},
|
||||
setGUMPendingStateOnFailedTracks(filteredTracks);
|
||||
|
||||
/**
|
||||
* Joins conference after the tracks have been configured in the prejoin screen.
|
||||
*
|
||||
* @param {Object[]} tracks - An array with the configured tracks
|
||||
* @returns {void}
|
||||
*/
|
||||
async prejoinStart(tracks) {
|
||||
if (!_connectionPromise) {
|
||||
// The conference object isn't initialized yet. Wait for the promise to initialise.
|
||||
await new Promise(resolve => {
|
||||
_onConnectionPromiseCreated = resolve;
|
||||
});
|
||||
_onConnectionPromiseCreated = undefined;
|
||||
}
|
||||
|
||||
let con;
|
||||
|
||||
try {
|
||||
con = await _connectionPromise;
|
||||
this.startConference(con, tracks);
|
||||
} catch (error) {
|
||||
logger.error(`An error occurred while trying to join a meeting from the prejoin screen: ${error}`);
|
||||
APP.store.dispatch(setJoiningInProgress(false));
|
||||
}
|
||||
return filteredTracks;
|
||||
}),
|
||||
APP.store.dispatch(connect())
|
||||
]).then(([ tracks, _ ]) => {
|
||||
this.startConference(tracks).catch(logger.error);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1013,7 +843,7 @@ export default {
|
||||
// This will only modify base/media.audio.muted which is then synced
|
||||
// up with the track at the end of local tracks initialization.
|
||||
muteLocalAudio(mute);
|
||||
this.setAudioMuteStatus(mute);
|
||||
this.updateAudioIconEnabled();
|
||||
|
||||
return;
|
||||
} else if (this.isLocalAudioMuted() === mute) {
|
||||
@@ -1207,17 +1037,6 @@ export default {
|
||||
.filter(p => !p.isHidden() || !(config.iAmRecorder && p.isHiddenFromRecorder())).length + 1;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns true if the callstats integration is enabled, otherwise returns
|
||||
* false.
|
||||
*
|
||||
* @returns true if the callstats integration is enabled, otherwise returns
|
||||
* false.
|
||||
*/
|
||||
isCallstatsEnabled() {
|
||||
return room && room.isCallstatsEnabled();
|
||||
},
|
||||
|
||||
/**
|
||||
* Get speaker stats that track total dominant speaker time.
|
||||
*
|
||||
@@ -1229,13 +1048,6 @@ export default {
|
||||
return room.getSpeakerStats();
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns the connection times stored in the library.
|
||||
*/
|
||||
getConnectionTimes() {
|
||||
return room.getConnectionTimes();
|
||||
},
|
||||
|
||||
// used by torture currently
|
||||
isJoined() {
|
||||
return room && room.isJoined();
|
||||
@@ -1413,9 +1225,7 @@ export default {
|
||||
* Used by the Breakout Rooms feature to join a breakout room or go back to the main room.
|
||||
*/
|
||||
async joinRoom(roomName, options) {
|
||||
// Reset VideoLayout. It's destroyed in features/video-layout/middleware.web.js so re-initialize it.
|
||||
VideoLayout.initLargeVideo();
|
||||
VideoLayout.resizeVideoArea();
|
||||
APP.store.dispatch(conferenceWillInit());
|
||||
|
||||
// Restore initial state.
|
||||
this._localTracksInitialized = false;
|
||||
@@ -1440,7 +1250,7 @@ export default {
|
||||
},
|
||||
|
||||
_createRoom(localTracks) {
|
||||
room = connection.initJitsiConference(APP.conference.roomName, this._getConferenceOptions());
|
||||
room = APP.connection.initJitsiConference(APP.conference.roomName, this._getConferenceOptions());
|
||||
|
||||
// Filter out the tracks that are muted (except on Safari).
|
||||
const tracks = browser.isWebKitBased() ? localTracks : localTracks.filter(track => !track.isMuted());
|
||||
@@ -1564,7 +1374,7 @@ export default {
|
||||
APP.store.dispatch(
|
||||
replaceLocalTrack(oldTrack, newTrack, room))
|
||||
.then(() => {
|
||||
this.setAudioMuteStatus(this.isLocalAudioMuted());
|
||||
this.updateAudioIconEnabled();
|
||||
})
|
||||
.then(resolve)
|
||||
.catch(reject)
|
||||
@@ -1787,10 +1597,10 @@ export default {
|
||||
titleKey = 'notify.screenShareNoAudioTitle';
|
||||
}
|
||||
|
||||
APP.UI.messageHandler.showError({
|
||||
APP.store.dispatch(showErrorNotification({
|
||||
descriptionKey,
|
||||
titleKey
|
||||
});
|
||||
}, NOTIFICATION_TIMEOUT_TYPE.LONG));
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1821,10 +1631,14 @@ export default {
|
||||
APP.store.dispatch(conferenceUniqueIdSet(room, ...args));
|
||||
});
|
||||
|
||||
room.on(
|
||||
JitsiConferenceEvents.AUTH_STATUS_CHANGED,
|
||||
(authEnabled, authLogin) =>
|
||||
APP.store.dispatch(authStatusChanged(authEnabled, authLogin)));
|
||||
// we want to ignore this event in case of tokenAuthUrl config
|
||||
// we are deprecating this and at some point will get rid of it
|
||||
if (!config.tokenAuthUrl) {
|
||||
room.on(
|
||||
JitsiConferenceEvents.AUTH_STATUS_CHANGED,
|
||||
(authEnabled, authLogin) =>
|
||||
APP.store.dispatch(authStatusChanged(authEnabled, authLogin)));
|
||||
}
|
||||
|
||||
room.on(JitsiConferenceEvents.PARTCIPANT_FEATURES_CHANGED, user => {
|
||||
APP.store.dispatch(updateRemoteParticipantFeatures(user));
|
||||
@@ -2184,21 +1998,6 @@ export default {
|
||||
this.hangup(true);
|
||||
});
|
||||
|
||||
// logout
|
||||
APP.UI.addListener(UIEvents.LOGOUT, () => {
|
||||
AuthHandler.logout(room).then(url => {
|
||||
if (url) {
|
||||
UIUtil.redirect(url);
|
||||
} else {
|
||||
this.hangup(true);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
APP.UI.addListener(UIEvents.AUTH_CLICKED, () => {
|
||||
AuthHandler.authenticate(room);
|
||||
});
|
||||
|
||||
APP.UI.addListener(
|
||||
UIEvents.VIDEO_DEVICE_CHANGED,
|
||||
cameraDeviceId => {
|
||||
@@ -2230,10 +2029,6 @@ export default {
|
||||
|
||||
return this.useVideoStream(stream);
|
||||
})
|
||||
.then(() => {
|
||||
logger.info(`Switched local video device to ${cameraDeviceId}.`);
|
||||
this._updateVideoDeviceId();
|
||||
})
|
||||
.catch(error => {
|
||||
logger.error(`Failed to switch to selected camera:${cameraDeviceId}, error:${error}`);
|
||||
|
||||
@@ -2288,8 +2083,6 @@ export default {
|
||||
// above mentioned chrome bug.
|
||||
localAudio._realDeviceId = localAudio.deviceId = 'default';
|
||||
}
|
||||
logger.info(`switched local audio input device to: ${selectedDeviceId}`);
|
||||
this._updateAudioDeviceId();
|
||||
})
|
||||
.catch(err => {
|
||||
logger.error(`Failed to switch to selected audio input device ${selectedDeviceId}, error=${err}`);
|
||||
@@ -2374,13 +2167,6 @@ export default {
|
||||
|
||||
return dispatch(getAvailableDevices())
|
||||
.then(devices => {
|
||||
// Ugly way to synchronize real device IDs with local
|
||||
// storage and settings menu. This is a workaround until
|
||||
// getConstraints() method will be implemented in browsers.
|
||||
this._updateAudioDeviceId();
|
||||
|
||||
this._updateVideoDeviceId();
|
||||
|
||||
APP.UI.onAvailableDevicesChanged(devices);
|
||||
});
|
||||
}
|
||||
@@ -2388,36 +2174,6 @@ export default {
|
||||
return Promise.resolve();
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates the settings for the currently used video device, extracting
|
||||
* the device id from the used track.
|
||||
* @private
|
||||
*/
|
||||
_updateVideoDeviceId() {
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
|
||||
if (localVideo && localVideo.videoType === 'camera') {
|
||||
APP.store.dispatch(updateSettings({
|
||||
cameraDeviceId: localVideo.getDeviceId()
|
||||
}));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates the settings for the currently used audio device, extracting
|
||||
* the device id from the used track.
|
||||
* @private
|
||||
*/
|
||||
_updateAudioDeviceId() {
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
|
||||
if (localAudio) {
|
||||
APP.store.dispatch(updateSettings({
|
||||
micDeviceId: localAudio.getDeviceId()
|
||||
}));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Event listener for JitsiMediaDevicesEvents.DEVICE_LIST_CHANGED to
|
||||
* handle change of available media devices.
|
||||
@@ -2426,19 +2182,28 @@ export default {
|
||||
* @returns {Promise}
|
||||
*/
|
||||
async _onDeviceListChanged(devices) {
|
||||
const oldDevices = APP.store.getState()['features/base/devices'].availableDevices;
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
const state = APP.store.getState();
|
||||
const { filteredDevices, ignoredDevices } = filterIgnoredDevices(devices);
|
||||
const oldDevices = state['features/base/devices'].availableDevices;
|
||||
|
||||
APP.store.dispatch(updateDeviceList(devices));
|
||||
if (!areDevicesDifferent(flattenAvailableDevices(oldDevices), filteredDevices)) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
logDevices(ignoredDevices, 'Ignored devices on device list changed:');
|
||||
|
||||
const localAudio = getLocalJitsiAudioTrack(state);
|
||||
const localVideo = getLocalJitsiVideoTrack(state);
|
||||
|
||||
APP.store.dispatch(updateDeviceList(filteredDevices));
|
||||
|
||||
// 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 newLabelsOnly = mediaDeviceHelper.newDeviceListAddedLabelsOnly(oldDevices, filteredDevices);
|
||||
const newDevices
|
||||
= mediaDeviceHelper.getNewMediaDevicesAfterDeviceListChanged(
|
||||
devices,
|
||||
filteredDevices,
|
||||
localVideo,
|
||||
localAudio,
|
||||
newLabelsOnly);
|
||||
@@ -2557,21 +2322,17 @@ export default {
|
||||
this.useAudioStream(track)
|
||||
.then(() => {
|
||||
hasDefaultMicChanged && (track._realDeviceId = track.deviceId = 'default');
|
||||
this._updateAudioDeviceId();
|
||||
}));
|
||||
} else {
|
||||
promises.push(
|
||||
this.useVideoStream(track)
|
||||
.then(() => {
|
||||
this._updateVideoDeviceId();
|
||||
}));
|
||||
this.useVideoStream(track));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Promise.all(promises)
|
||||
.then(() => {
|
||||
APP.UI.onAvailableDevicesChanged(devices);
|
||||
APP.UI.onAvailableDevicesChanged(filteredDevices);
|
||||
});
|
||||
},
|
||||
|
||||
@@ -2614,9 +2375,10 @@ export default {
|
||||
/**
|
||||
* Disconnect from the conference and optionally request user feedback.
|
||||
* @param {boolean} [requestFeedback=false] if user feedback should be
|
||||
* @param {string} [hangupReason] the reason for leaving the meeting
|
||||
* requested
|
||||
*/
|
||||
hangup(requestFeedback = false) {
|
||||
hangup(requestFeedback = false, hangupReason) {
|
||||
APP.store.dispatch(disableReceiver());
|
||||
|
||||
this._stopProxyConnection();
|
||||
@@ -2633,36 +2395,42 @@ export default {
|
||||
|
||||
APP.UI.removeAllListeners();
|
||||
|
||||
let requestFeedbackPromise;
|
||||
let feedbackResultPromise = Promise.resolve({});
|
||||
|
||||
if (requestFeedback) {
|
||||
requestFeedbackPromise
|
||||
= APP.store.dispatch(maybeOpenFeedbackDialog(room))
|
||||
const feedbackDialogClosed = (feedbackResult = {}) => {
|
||||
if (!feedbackResult.wasDialogShown && hangupReason) {
|
||||
return APP.store.dispatch(
|
||||
openLeaveReasonDialog(hangupReason)).then(() => feedbackResult);
|
||||
}
|
||||
|
||||
// false because the thank you dialog shouldn't be displayed
|
||||
.catch(() => Promise.resolve(false));
|
||||
} else {
|
||||
requestFeedbackPromise = Promise.resolve(true);
|
||||
return Promise.resolve(feedbackResult);
|
||||
};
|
||||
|
||||
feedbackResultPromise
|
||||
= APP.store.dispatch(maybeOpenFeedbackDialog(room, hangupReason))
|
||||
.then(feedbackDialogClosed, feedbackDialogClosed);
|
||||
}
|
||||
|
||||
Promise.all([
|
||||
requestFeedbackPromise,
|
||||
this.leaveRoom()
|
||||
])
|
||||
.then(values => {
|
||||
const leavePromise = this.leaveRoom().catch(() => Promise.resolve());
|
||||
|
||||
Promise.allSettled([ feedbackResultPromise, leavePromise ]).then(([ feedback, _ ]) => {
|
||||
this._room = undefined;
|
||||
room = undefined;
|
||||
|
||||
/**
|
||||
* Don't call {@code notifyReadyToClose} if the promotional page flag is set
|
||||
* and let the page take care of sending the message, since there will be
|
||||
* a redirect to the page regardlessly.
|
||||
* a redirect to the page anyway.
|
||||
*/
|
||||
if (!interfaceConfig.SHOW_PROMOTIONAL_CLOSE_PAGE) {
|
||||
APP.API.notifyReadyToClose();
|
||||
}
|
||||
APP.store.dispatch(maybeRedirectToWelcomePage(values[0]));
|
||||
|
||||
APP.store.dispatch(maybeRedirectToWelcomePage(feedback.value ?? {}));
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -2672,7 +2440,7 @@ export default {
|
||||
* @param {string} reason - reason for leaving the room.
|
||||
* @returns {Promise}
|
||||
*/
|
||||
async leaveRoom(doDisconnect = true, reason = '') {
|
||||
leaveRoom(doDisconnect = true, reason = '') {
|
||||
APP.store.dispatch(conferenceWillLeave(room));
|
||||
|
||||
const maybeDisconnect = () => {
|
||||
@@ -2849,15 +2617,6 @@ export default {
|
||||
APP.UI.setVideoMuted(this.getMyUserId());
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets the audio muted status.
|
||||
*
|
||||
* @param {boolean} muted - New muted status.
|
||||
*/
|
||||
setAudioMuteStatus(muted) {
|
||||
APP.UI.setAudioMuted(this.getMyUserId(), muted);
|
||||
},
|
||||
|
||||
/**
|
||||
* Dispatches the passed in feedback for submission. The submitted score
|
||||
* should be a number inclusively between 1 through 5, or -1 for no score.
|
||||
|
||||
282
config.js
282
config.js
@@ -51,6 +51,9 @@ var config = {
|
||||
// Websocket URL (XMPP)
|
||||
// websocket: 'wss://jitsi-meet.example.com/' + subdir + 'xmpp-websocket',
|
||||
|
||||
// Whether BOSH should be preferred over WebSocket if both are configured.
|
||||
// preferBosh: false,
|
||||
|
||||
// The real JID of focus participant - can be overridden here
|
||||
// Do not change username - FIXME: Make focus username configurable
|
||||
// https://github.com/jitsi/jitsi-meet/issues/7376
|
||||
@@ -94,11 +97,6 @@ var config = {
|
||||
// Disables the auto-play behavior of *all* newly created video element.
|
||||
// This is useful when the client runs on a host with limited resources.
|
||||
// noAutoPlayVideo: false,
|
||||
|
||||
// Enable callstats only for a percentage of users.
|
||||
// This takes a value between 0 and 100 which determines the probability for
|
||||
// the callstats to be enabled.
|
||||
// callStatsThreshold: 5, // enable callstats for 5% of the users.
|
||||
},
|
||||
|
||||
// Disables moderator indicators.
|
||||
@@ -215,6 +213,9 @@ var config = {
|
||||
|
||||
// Video
|
||||
|
||||
// Sets the default camera facing mode.
|
||||
// cameraFacingMode: 'user',
|
||||
|
||||
// Sets the preferred resolution (height) for local video. Defaults to 720.
|
||||
// resolution: 720,
|
||||
|
||||
@@ -288,12 +289,19 @@ var config = {
|
||||
// max: 5,
|
||||
// },
|
||||
|
||||
// This option has been deprecated since it is no longer supported as per the w3c spec.
|
||||
// https://w3c.github.io/mediacapture-screen-share/#dom-mediadevices-getdisplaymedia. If the user has not
|
||||
// interacted with the webpage before the getDisplayMedia call, the promise will be rejected by the browser. This
|
||||
// has already been implemented in Firefox and Safari and will be implemented in Chrome soon.
|
||||
// https://bugs.chromium.org/p/chromium/issues/detail?id=1198918
|
||||
// startScreenSharing: false,
|
||||
// Optional screenshare settings that give more control over screen capture in the browser.
|
||||
// screenShareSettings: {
|
||||
// // Show users the current tab is the preferred capture source, default: false.
|
||||
// desktopPreferCurrentTab: false,
|
||||
// // Allow users to select system audio, default: include.
|
||||
// desktopSystemAudio: 'include',
|
||||
// // Allow users to seamlessly switch which tab they are sharing without having to select the tab again.
|
||||
// desktopSurfaceSwitching: 'include',
|
||||
// // Allow a user to be shown a preference for what screen is to be captured, default: unset.
|
||||
// desktopDisplaySurface: undefined,
|
||||
// // Allow users to select the current tab as a capture source, default: exclude.
|
||||
// desktopSelfBrowserSurface: 'exclude'
|
||||
// },
|
||||
|
||||
// Recording
|
||||
|
||||
@@ -370,7 +378,7 @@ var config = {
|
||||
// DEPRECATED. Use transcription.preferredLanguage instead.
|
||||
// preferredTranscribeLanguage: 'en-US',
|
||||
|
||||
// DEPRECATED. Use transcription.autoCaptionOnRecord instead.
|
||||
// DEPRECATED. Use transcription.autoTranscribeOnRecord instead.
|
||||
// autoCaptionOnRecord: false,
|
||||
|
||||
// Transcription options.
|
||||
@@ -402,8 +410,8 @@ var config = {
|
||||
// // Disable start transcription for all participants.
|
||||
// disableStartForAll: false,
|
||||
|
||||
// // Enables automatic turning on captions when recording is started
|
||||
// autoCaptionOnRecord: false,
|
||||
// // Enables automatic turning on transcribing when recording is started
|
||||
// autoTranscribeOnRecord: false,
|
||||
// },
|
||||
|
||||
// Misc
|
||||
@@ -431,6 +439,49 @@ var config = {
|
||||
// // Provides a way to set the codec preference on desktop based endpoints.
|
||||
// codecPreferenceOrder: [ 'VP9', 'VP8', 'H264' ],
|
||||
//
|
||||
// // Codec specific settings for scalability modes and max bitrates.
|
||||
// av1: {
|
||||
// maxBitratesVideo: {
|
||||
// low: 100000,
|
||||
// standard: 300000,
|
||||
// high: 1000000,
|
||||
// ssHigh: 2500000
|
||||
// },
|
||||
// scalabilityModeEnabled: true,
|
||||
// useSimulcast: false,
|
||||
// useKSVC: true
|
||||
// },
|
||||
// h264: {
|
||||
// maxBitratesVideo: {
|
||||
// low: 200000,
|
||||
// standard: 500000,
|
||||
// high: 1500000,
|
||||
// ssHigh: 2500000
|
||||
// },
|
||||
// scalabilityModeEnabled: true
|
||||
// },
|
||||
// vp8: {
|
||||
// maxBitratesVideo: {
|
||||
// low: 200000,
|
||||
// standard: 500000,
|
||||
// high: 1500000,
|
||||
// ssHigh: 2500000
|
||||
// },
|
||||
// scalabilityModeEnabled: false
|
||||
// },
|
||||
// vp9: {
|
||||
// maxBitratesVideo: {
|
||||
// low: 100000,
|
||||
// standard: 300000,
|
||||
// high: 1200000,
|
||||
// ssHigh: 2500000
|
||||
// },
|
||||
// scalabilityModeEnabled: true,
|
||||
// useSimulcast: false,
|
||||
// useKSVC: true
|
||||
// }
|
||||
//
|
||||
// DEPRECATED! Use `codec specific settings` instead.
|
||||
// // Provides a way to configure the maximum bitrates that will be enforced on the simulcast streams for
|
||||
// // video tracks. The keys in the object represent the type of the stream (LD, SD or HD) and the values
|
||||
// // are the max.bitrates to be set on that particular type of stream. The actual send may vary based on
|
||||
@@ -588,7 +639,7 @@ var config = {
|
||||
// },
|
||||
|
||||
// Configs for the lobby screen.
|
||||
// lobby {
|
||||
// lobby: {
|
||||
// // If Lobby is enabled, it starts knocking automatically. Replaces `autoKnockLobby`.
|
||||
// autoKnock: false,
|
||||
// // Enables the lobby chat. Replaces `enableLobbyChat`.
|
||||
@@ -632,6 +683,7 @@ var config = {
|
||||
// hideDominantSpeakerBadge: false,
|
||||
|
||||
// Default language for the user interface. Cannot be overwritten.
|
||||
// DEPRECATED! Use the `lang` iframe option directly instead.
|
||||
// defaultLanguage: 'en',
|
||||
|
||||
// Disables profile and the edit of all fields from the profile settings (display name and email)
|
||||
@@ -826,6 +878,42 @@ var config = {
|
||||
// 'whiteboard',
|
||||
// ],
|
||||
|
||||
// Participant context menu buttons which have their click/tap event exposed through the API on
|
||||
// `participantMenuButtonClick`. Passing a string for the button key will
|
||||
// prevent execution of the click/tap routine; passing an object with `key` and
|
||||
// `preventExecution` flag on false will not prevent execution of the click/tap
|
||||
// routine. Below array with mixed mode for passing the buttons.
|
||||
// participantMenuButtonsWithNotifyClick: [
|
||||
// 'allow-video',
|
||||
// {
|
||||
// key: 'ask-unmute',
|
||||
// preventExecution: false
|
||||
// },
|
||||
// 'conn-status',
|
||||
// 'flip-local-video',
|
||||
// 'grant-moderator',
|
||||
// {
|
||||
// key: 'kick',
|
||||
// preventExecution: true
|
||||
// },
|
||||
// {
|
||||
// key: 'hide-self-view',
|
||||
// preventExecution: false
|
||||
// },
|
||||
// 'mute',
|
||||
// 'mute-others',
|
||||
// 'mute-others-video',
|
||||
// 'mute-video',
|
||||
// 'pinToStage',
|
||||
// 'privateMessage',
|
||||
// {
|
||||
// key: 'remote-control',
|
||||
// preventExecution: false
|
||||
// },
|
||||
// 'send-participant-to-room',
|
||||
// 'verify',
|
||||
// ],
|
||||
|
||||
// List of pre meeting screens buttons to hide. The values must be one or more of the 5 allowed buttons:
|
||||
// 'microphone', 'camera', 'select-background', 'invite', 'settings'
|
||||
// hiddenPremeetingButtons: [],
|
||||
@@ -835,7 +923,7 @@ var config = {
|
||||
// customParticipantMenuButtons: [],
|
||||
|
||||
// An array with custom option buttons for the toolbar
|
||||
// type: Array<{ icon: string; id: string; text: string; }>
|
||||
// type: Array<{ icon: string; id: string; text: string; backgroundColor?: string; }>
|
||||
// customToolbarButtons: [],
|
||||
|
||||
// Stats
|
||||
@@ -850,38 +938,10 @@ var config = {
|
||||
// The interval at which PeerConnection.getStats() is called. Defaults to 10000
|
||||
// pcStatsInterval: 10000,
|
||||
|
||||
// To enable sending statistics to callstats.io you must provide the
|
||||
// Application ID and Secret.
|
||||
// callStatsID: '',
|
||||
// callStatsSecret: '',
|
||||
// callStatsApplicationLogsDisabled: false,
|
||||
|
||||
// The callstats initialize config params as described in the API:
|
||||
// https://docs.callstats.io/docs/javascript#callstatsinitialize-with-app-secret
|
||||
// callStatsConfigParams: {
|
||||
// disableBeforeUnloadHandler: true, // disables callstats.js's window.onbeforeunload parameter.
|
||||
// applicationVersion: "app_version", // Application version specified by the developer.
|
||||
// disablePrecalltest: true, // disables the pre-call test, it is enabled by default.
|
||||
// siteID: "siteID", // The name/ID of the site/campus from where the call/pre-call test is made.
|
||||
// additionalIDs: { // additionalIDs object, contains application related IDs.
|
||||
// customerID: "Customer Identifier. Example, walmart.",
|
||||
// tenantID: "Tenant Identifier. Example, monster.",
|
||||
// productName: "Product Name. Example, Jitsi.",
|
||||
// meetingsName: "Meeting Name. Example, Jitsi loves callstats.",
|
||||
// serverName: "Server/MiddleBox Name. Example, jvb-prod-us-east-mlkncws12.",
|
||||
// pbxID: "PBX Identifier. Example, walmart.",
|
||||
// pbxExtensionID: "PBX Extension Identifier. Example, 5625.",
|
||||
// fqExtensionID: "Fully qualified Extension Identifier. Example, +71 (US) +5625.",
|
||||
// sessionID: "Session Identifier. Example, session-12-34",
|
||||
// },
|
||||
// collectLegacyStats: true, //enables the collection of legacy stats in chrome browser
|
||||
// collectIP: true, //enables the collection localIP address
|
||||
// },
|
||||
|
||||
// Enables sending participants' display names to callstats
|
||||
// Enables sending participants' display names to stats
|
||||
// enableDisplayNameInStats: false,
|
||||
|
||||
// Enables sending participants' emails (if available) to callstats and other analytics
|
||||
// Enables sending participants' emails (if available) to stats and other analytics
|
||||
// enableEmailInStats: false,
|
||||
|
||||
// faceLandmarks: {
|
||||
@@ -904,7 +964,7 @@ var config = {
|
||||
// captureInterval: 1000,
|
||||
// },
|
||||
|
||||
// Controls the percentage of automatic feedback shown to participants when callstats is enabled.
|
||||
// Controls the percentage of automatic feedback shown to participants.
|
||||
// The default value is 100%. If set to 0, no automatic feedback will be requested
|
||||
// feedbackPercentage: 100,
|
||||
|
||||
@@ -912,7 +972,7 @@ var config = {
|
||||
//
|
||||
|
||||
// If third party requests are disabled, no other server will be contacted.
|
||||
// This means avatars will be locally generated and callstats integration
|
||||
// This means avatars will be locally generated and external stats integration
|
||||
// will not function.
|
||||
// disableThirdPartyRequests: false,
|
||||
|
||||
@@ -979,6 +1039,10 @@ var config = {
|
||||
// The Amplitude APP Key:
|
||||
// amplitudeAPPKey: '<APP_KEY>',
|
||||
|
||||
// Enables Amplitude UTM tracking:
|
||||
// Default value is false.
|
||||
// amplitudeIncludeUTM: false,
|
||||
|
||||
// Obfuscates room name sent to analytics (amplitude, rtcstats)
|
||||
// Default value is false.
|
||||
// obfuscateRoomName: false,
|
||||
@@ -1008,6 +1072,11 @@ var config = {
|
||||
// "libs/analytics-ga.min.js", // google-analytics
|
||||
// "https://example.com/my-custom-analytics.js",
|
||||
// ],
|
||||
|
||||
// By enabling watchRTCEnabled option you would want to use watchRTC feature
|
||||
// This would also require to configure watchRTCConfigParams.
|
||||
// Please remember to keep rtcstatsEnabled disabled for watchRTC to work.
|
||||
// watchRTCEnabled: false,
|
||||
},
|
||||
|
||||
// Logs that should go be passed through the 'log' event if a handler is defined for it
|
||||
@@ -1253,6 +1322,16 @@ var config = {
|
||||
// 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 customized icons that should replace the default ones.
|
||||
// The keys need to be the exact same icon names used in here:
|
||||
// https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/icons/svg/index.ts
|
||||
// To avoid having the icons trimmed or displayed in an unexpected way, please provide svg
|
||||
// files containing svg xml icons in the size that the default icons come in.
|
||||
customIcons: {
|
||||
IconArrowUp: 'https://example.com/arrow-up.svg',
|
||||
IconDownload: 'https://example.com/download.svg',
|
||||
IconRemoteControlStart: 'https://example.com/remote-start.svg',
|
||||
},
|
||||
// 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
|
||||
@@ -1306,6 +1385,9 @@ var config = {
|
||||
// hideJoinRoomButton: false,
|
||||
// },
|
||||
|
||||
// When true, virtual background feature will be disabled.
|
||||
// disableVirtualBackground: false,
|
||||
|
||||
// When true the user cannot add more images to be used as virtual background.
|
||||
// Only the default ones from will be available.
|
||||
// disableAddingBackgroundImages: false,
|
||||
@@ -1383,6 +1465,31 @@ var config = {
|
||||
// dialInConfCodeUrl is the conference mapper converting a meeting id to a PIN used for dial-in
|
||||
// or the other way around (more info in resources/cloud-api.swagger)
|
||||
|
||||
// You can use external service for authentication that will redirect back passing a jwt token
|
||||
// You can use tokenAuthUrl config to point to a URL of such service.
|
||||
// The URL for the service supports few params which will be filled in by the code.
|
||||
// tokenAuthUrl:
|
||||
// 'https://myservice.com/auth/{room}?code_challenge_method=S256&code_challenge={code_challenge}&state={state}'
|
||||
// Supported parameters in tokenAuthUrl:
|
||||
// {room} - will be replaced with the room name
|
||||
// {code_challenge} - (A web only). A oauth 2.0 code challenge that will be sent to the service. See:
|
||||
// https://datatracker.ietf.org/doc/html/rfc7636. The code verifier will be saved in the sessionStorage
|
||||
// under key: 'code_verifier'.
|
||||
// {state} - A json with the current state before redirecting. Keys that are included in the state:
|
||||
// - room (The current room name as shown in the address bar)
|
||||
// - roomSafe (the backend safe room name to use (lowercase), that is passed to the backend)
|
||||
// - tenant (The tenant if any)
|
||||
// - config.xxx (all config overrides)
|
||||
// - interfaceConfig.xxx (all interfaceConfig overrides)
|
||||
// - ios=true (in case ios mobile app is used)
|
||||
// - android=true (in case android mobile app is used)
|
||||
// - electron=true (when web is loaded in electron app)
|
||||
// If there is a logout service you can specify its URL with:
|
||||
// tokenLogoutUrl: 'https://myservice.com/logout'
|
||||
// You can enable tokenAuthUrlAutoRedirect which will detect that you have logged in successfully before
|
||||
// and will automatically redirect to the token service to get the token for the meeting.
|
||||
// tokenAuthUrlAutoRedirect: false
|
||||
|
||||
// List of undocumented settings used in jitsi-meet
|
||||
/**
|
||||
_immediateReloadThreshold
|
||||
@@ -1402,7 +1509,6 @@ var config = {
|
||||
peopleSearchQueryTypes
|
||||
peopleSearchUrl
|
||||
requireDisplayName
|
||||
tokenAuthUrl
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -1417,8 +1523,6 @@ var config = {
|
||||
_peerConnStatusOutOfLastNTimeout
|
||||
_peerConnStatusRtcMuteTimeout
|
||||
avgRtpStatsN
|
||||
callStatsConfIDNamespace
|
||||
callStatsCustomScriptUrl
|
||||
desktopSharingSources
|
||||
disableAEC
|
||||
disableAGC
|
||||
@@ -1427,7 +1531,6 @@ var config = {
|
||||
disableLocalStats
|
||||
disableNS
|
||||
enableTalkWhileMuted
|
||||
forceJVB121Ratio
|
||||
forceTurnRelay
|
||||
hiddenDomain
|
||||
hiddenFromRecorderFeatureEnabled
|
||||
@@ -1451,6 +1554,7 @@ var config = {
|
||||
*/
|
||||
// notifications: [
|
||||
// 'connection.CONNFAIL', // shown when the connection fails,
|
||||
// 'dialog.cameraConstraintFailedError', // shown when the camera failed
|
||||
// 'dialog.cameraNotSendingData', // shown when there's no feed from user's camera
|
||||
// 'dialog.kickTitle', // shown when user has been kicked
|
||||
// 'dialog.liveStreaming', // livestreaming notifications (pending, on, off, limits)
|
||||
@@ -1461,10 +1565,12 @@ var config = {
|
||||
// 'dialog.recording', // recording notifications (pending, on, off, limits)
|
||||
// 'dialog.remoteControlTitle', // remote control notifications (allowed, denied, start, stop, error)
|
||||
// 'dialog.reservationError',
|
||||
// 'dialog.screenSharingFailedTitle', // shown when the screen sharing failed
|
||||
// 'dialog.serviceUnavailable', // shown when server is not reachable
|
||||
// 'dialog.sessTerminated', // shown when there is a failed conference session
|
||||
// 'dialog.sessionRestarted', // show when a client reload is initiated because of bridge migration
|
||||
// 'dialog.tokenAuthFailed', // show when an invalid jwt is used
|
||||
// 'dialog.tokenAuthFailedWithReasons', // show when an invalid jwt is used with the reason behind the error
|
||||
// 'dialog.transcribing', // transcribing notifications (pending, off)
|
||||
// 'dialOut.statusMessage', // shown when dial out status is updated.
|
||||
// 'liveStreaming.busy', // shown when livestreaming service is busy
|
||||
@@ -1472,37 +1578,45 @@ var config = {
|
||||
// 'liveStreaming.unavailableTitle', // shown when livestreaming service is not reachable
|
||||
// 'lobby.joinRejectedMessage', // shown when while in a lobby, user's request to join is rejected
|
||||
// 'lobby.notificationTitle', // shown when lobby is toggled and when join requests are allowed / denied
|
||||
// 'notify.audioUnmuteBlockedTitle', // shown when mic unmute blocked
|
||||
// 'notify.chatMessages', // shown when receiving chat messages while the chat window is closed
|
||||
// 'notify.disconnected', // shown when a participant has left
|
||||
// 'notify.connectedOneMember', // show when a participant joined
|
||||
// 'notify.connectedTwoMembers', // show when two participants joined simultaneously
|
||||
// 'notify.connectedThreePlusMembers', // show when more than 2 participants joined simultaneously
|
||||
// 'notify.leftOneMember', // show when a participant left
|
||||
// 'notify.leftTwoMembers', // show when two participants left simultaneously
|
||||
// 'notify.leftThreePlusMembers', // show when more than 2 participants left simultaneously
|
||||
// 'notify.grantedTo', // shown when moderator rights were granted to a participant
|
||||
// 'notify.connectedTwoMembers', // show when two participants joined simultaneously
|
||||
// 'notify.dataChannelClosed', // shown when the bridge channel has been disconnected
|
||||
// 'notify.hostAskedUnmute', // shown to participant when host asks them to unmute
|
||||
// 'notify.invitedOneMember', // shown when 1 participant has been invited
|
||||
// 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited
|
||||
// 'notify.invitedTwoMembers', // shown when 2 participants have been invited
|
||||
// 'notify.kickParticipant', // shown when a participant is kicked
|
||||
// 'notify.leftOneMember', // show when a participant left
|
||||
// 'notify.leftThreePlusMembers', // show when more than 2 participants left simultaneously
|
||||
// 'notify.leftTwoMembers', // show when two participants left simultaneously
|
||||
// 'notify.linkToSalesforce', // shown when joining a meeting with salesforce integration
|
||||
// 'notify.moderationStartedTitle', // shown when AV moderation is activated
|
||||
// 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated
|
||||
// 'notify.localRecordingStarted', // shown when the local recording has been started
|
||||
// 'notify.localRecordingStopped', // shown when the local recording has been stopped
|
||||
// 'notify.moderationInEffectCSTitle', // shown when user attempts to share content during AV moderation
|
||||
// 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation
|
||||
// 'notify.moderationInEffectVideoTitle', // shown when user attempts to enable video during AV moderation
|
||||
// 'notify.moderationInEffectCSTitle', // shown when user attempts to share content during AV moderation
|
||||
// 'notify.moderator', // shown when user gets moderator privilege
|
||||
// 'notify.mutedRemotelyTitle', // shown when user is muted by a remote party
|
||||
// 'notify.mutedTitle', // shown when user has been muted upon joining,
|
||||
// 'notify.newDeviceAudioTitle', // prompts the user to use a newly detected audio device
|
||||
// 'notify.newDeviceCameraTitle', // prompts the user to use a newly detected camera
|
||||
// 'notify.noiseSuppressionFailedTitle', // shown when failed to start noise suppression
|
||||
// 'notify.participantWantsToJoin', // shown when lobby is enabled and participant requests to join meeting
|
||||
// 'notify.participantsWantToJoin', // shown when lobby is enabled and participants request to join meeting
|
||||
// 'notify.passwordRemovedRemotely', // shown when a password has been removed remotely
|
||||
// 'notify.passwordSetRemotely', // shown when a password has been set remotely
|
||||
// 'notify.raisedHand', // shown when a partcipant used raise hand,
|
||||
// 'notify.screenShareNoAudio', // shown when the audio could not be shared for the selected screen
|
||||
// 'notify.screenSharingAudioOnlyTitle', // shown when the best performance has been affected by screen sharing
|
||||
// 'notify.selfViewTitle', // show "You can always un-hide the self-view from settings"
|
||||
// 'notify.startSilentTitle', // shown when user joined with no audio
|
||||
// 'notify.suboptimalExperienceTitle', // show the browser warning
|
||||
// 'notify.unmute', // shown to moderator when user raises hand during AV moderation
|
||||
// 'notify.videoMutedRemotelyTitle', // shown when user's video is muted by a remote party,
|
||||
// 'notify.videoUnmuteBlockedTitle', // shown when camera unmute and desktop sharing are blocked
|
||||
// 'prejoin.errorDialOut',
|
||||
// 'prejoin.errorDialOutDisconnected',
|
||||
// 'prejoin.errorDialOutFailed',
|
||||
@@ -1525,6 +1639,8 @@ var config = {
|
||||
// disableFilmstripAutohiding: false,
|
||||
|
||||
// filmstrip: {
|
||||
// // Disable the vertical/horizonal filmstrip.
|
||||
// disabled: false,
|
||||
// // Disables user resizable filmstrip. Also, allows configuration of the filmstrip
|
||||
// // (width, tiles aspect ratios) through the interfaceConfig options.
|
||||
// disableResizable: false,
|
||||
@@ -1547,6 +1663,8 @@ var config = {
|
||||
|
||||
// Tile view related config options.
|
||||
// tileView: {
|
||||
// // Whether tileview should be disabled.
|
||||
// disabled: false,
|
||||
// // The optimal number of tiles that are going to be shown in tile view. Depending on the screen size it may
|
||||
// // not be possible to show the exact number of participants specified here.
|
||||
// numberOfVisibleTiles: 25,
|
||||
@@ -1578,13 +1696,12 @@ var config = {
|
||||
// logging: {
|
||||
// // Default log level for the app and lib-jitsi-meet.
|
||||
// defaultLogLevel: 'trace',
|
||||
// // Option to disable LogCollector (which stores the logs on CallStats).
|
||||
// // Option to disable LogCollector.
|
||||
// //disableLogCollector: true,
|
||||
// // Individual loggers are customizable.
|
||||
// loggers: {
|
||||
// // The following are too verbose in their logging with the default level.
|
||||
// 'modules/RTC/TraceablePeerConnection.js': 'info',
|
||||
// 'modules/statistics/CallStats.js': 'info',
|
||||
// 'modules/xmpp/strophe.util.js': 'log',
|
||||
// },
|
||||
|
||||
@@ -1598,6 +1715,45 @@ var config = {
|
||||
// // The server used to support whiteboard collaboration.
|
||||
// // https://github.com/jitsi/excalidraw-backend
|
||||
// collabServerBaseUrl: 'https://excalidraw-backend.example.com',
|
||||
// // The user access limit to the whiteboard, introduced as a means
|
||||
// // to control the performance.
|
||||
// userLimit: 25,
|
||||
// // The url for more info about the whiteboard and its usage limitations.
|
||||
// limitUrl: 'https://example.com/blog/whiteboard-limits,
|
||||
// },
|
||||
|
||||
// The watchRTC initialize config params as described :
|
||||
// https://testrtc.com/docs/installing-the-watchrtc-javascript-sdk/#h-set-up-the-sdk
|
||||
// https://www.npmjs.com/package/@testrtc/watchrtc-sdk
|
||||
// watchRTCConfigParams: {
|
||||
// /** Watchrtc api key */
|
||||
// rtcApiKey: string;
|
||||
// /** Identifier for the session */
|
||||
// rtcRoomId?: string;
|
||||
// /** Identifier for the current peer */
|
||||
// rtcPeerId?: string;
|
||||
// /**
|
||||
// * ["tag1", "tag2", "tag3"]
|
||||
// * @deprecated use 'keys' instead
|
||||
// */
|
||||
// rtcTags?: string[];
|
||||
// /** { "key1": "value1", "key2": "value2"} */
|
||||
// keys?: any;
|
||||
// /** Enables additional logging */
|
||||
// debug?: boolean;
|
||||
// rtcToken?: string;
|
||||
// /**
|
||||
// * @deprecated No longer needed. Use "proxyUrl" instead.
|
||||
// */
|
||||
// wsUrl?: string;
|
||||
// proxyUrl?: string;
|
||||
// console?: {
|
||||
// level: string;
|
||||
// override: boolean;
|
||||
// };
|
||||
// allowBrowserLogCollection?: boolean;
|
||||
// collectionInterval?: number;
|
||||
// logGetStats?: boolean;
|
||||
// },
|
||||
};
|
||||
|
||||
|
||||
209
connection.js
209
connection.js
@@ -1,209 +0,0 @@
|
||||
/* global APP, JitsiMeetJS, config */
|
||||
|
||||
import { jitsiLocalStorage } from '@jitsi/js-utils';
|
||||
import Logger from '@jitsi/logger';
|
||||
|
||||
import { redirectToTokenAuthService } from './modules/UI/authentication/AuthHandler';
|
||||
import { LoginDialog } from './react/features/authentication/components';
|
||||
import { isTokenAuthEnabled } from './react/features/authentication/functions';
|
||||
import {
|
||||
connectionEstablished,
|
||||
connectionFailed,
|
||||
constructOptions
|
||||
} from './react/features/base/connection/actions.web';
|
||||
import { openDialog } from './react/features/base/dialog/actions';
|
||||
import { setJWT } from './react/features/base/jwt/actions';
|
||||
import {
|
||||
JitsiConnectionErrors,
|
||||
JitsiConnectionEvents
|
||||
} from './react/features/base/lib-jitsi-meet';
|
||||
import { isFatalJitsiConnectionError } from './react/features/base/lib-jitsi-meet/functions';
|
||||
import { getCustomerDetails } from './react/features/jaas/actions.any';
|
||||
import { getJaasJWT, isVpaasMeeting } from './react/features/jaas/functions';
|
||||
import {
|
||||
setPrejoinDisplayNameRequired
|
||||
} from './react/features/prejoin/actions';
|
||||
const logger = Logger.getLogger(__filename);
|
||||
|
||||
/**
|
||||
* The feature announced so we can distinguish jibri participants.
|
||||
*
|
||||
* @type {string}
|
||||
*/
|
||||
export const DISCO_JIBRI_FEATURE = 'http://jitsi.org/protocol/jibri';
|
||||
|
||||
/**
|
||||
* Try to open connection using provided credentials.
|
||||
* @param {string} [id]
|
||||
* @param {string} [password]
|
||||
* @returns {Promise<JitsiConnection>} connection if
|
||||
* everything is ok, else error.
|
||||
*/
|
||||
export async function connect(id, password) {
|
||||
const state = APP.store.getState();
|
||||
let { jwt } = state['features/base/jwt'];
|
||||
const { iAmRecorder, iAmSipGateway } = state['features/base/config'];
|
||||
|
||||
if (!iAmRecorder && !iAmSipGateway && isVpaasMeeting(state)) {
|
||||
await APP.store.dispatch(getCustomerDetails());
|
||||
|
||||
if (!jwt) {
|
||||
jwt = await getJaasJWT(state);
|
||||
APP.store.dispatch(setJWT(jwt));
|
||||
}
|
||||
}
|
||||
|
||||
const connection = new JitsiMeetJS.JitsiConnection(null, jwt, constructOptions(state));
|
||||
|
||||
if (config.iAmRecorder) {
|
||||
connection.addFeature(DISCO_JIBRI_FEATURE);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.addEventListener(
|
||||
JitsiConnectionEvents.CONNECTION_ESTABLISHED,
|
||||
handleConnectionEstablished);
|
||||
connection.addEventListener(
|
||||
JitsiConnectionEvents.CONNECTION_FAILED,
|
||||
handleConnectionFailed);
|
||||
connection.addEventListener(
|
||||
JitsiConnectionEvents.CONNECTION_FAILED,
|
||||
connectionFailedHandler);
|
||||
connection.addEventListener(
|
||||
JitsiConnectionEvents.DISPLAY_NAME_REQUIRED,
|
||||
displayNameRequiredHandler
|
||||
);
|
||||
|
||||
/* eslint-disable max-params */
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function connectionFailedHandler(error, message, credentials, details) {
|
||||
/* eslint-enable max-params */
|
||||
APP.store.dispatch(
|
||||
connectionFailed(
|
||||
connection, {
|
||||
credentials,
|
||||
details,
|
||||
message,
|
||||
name: error
|
||||
}));
|
||||
|
||||
if (isFatalJitsiConnectionError(error)) {
|
||||
connection.removeEventListener(
|
||||
JitsiConnectionEvents.CONNECTION_FAILED,
|
||||
connectionFailedHandler);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function unsubscribe() {
|
||||
connection.removeEventListener(
|
||||
JitsiConnectionEvents.CONNECTION_ESTABLISHED,
|
||||
handleConnectionEstablished);
|
||||
connection.removeEventListener(
|
||||
JitsiConnectionEvents.CONNECTION_FAILED,
|
||||
handleConnectionFailed);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function handleConnectionEstablished() {
|
||||
APP.store.dispatch(connectionEstablished(connection, Date.now()));
|
||||
unsubscribe();
|
||||
resolve(connection);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function handleConnectionFailed(err) {
|
||||
unsubscribe();
|
||||
logger.error('CONNECTION FAILED:', err);
|
||||
reject(err);
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks the display name for the prejoin screen as required.
|
||||
* This can happen if a user tries to join a room with lobby enabled.
|
||||
*/
|
||||
function displayNameRequiredHandler() {
|
||||
APP.store.dispatch(setPrejoinDisplayNameRequired());
|
||||
}
|
||||
|
||||
connection.connect({
|
||||
id,
|
||||
password
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Open JitsiConnection using provided credentials.
|
||||
* If retry option is true it will show auth dialog on PASSWORD_REQUIRED error.
|
||||
*
|
||||
* @param {object} options
|
||||
* @param {string} [options.id]
|
||||
* @param {string} [options.password]
|
||||
* @param {string} [options.roomName]
|
||||
* @param {boolean} [retry] if we should show auth dialog
|
||||
* on PASSWORD_REQUIRED error.
|
||||
*
|
||||
* @returns {Promise<JitsiConnection>}
|
||||
*/
|
||||
export function openConnection({ id, password, retry, roomName }) {
|
||||
const usernameOverride
|
||||
= jitsiLocalStorage.getItem('xmpp_username_override');
|
||||
const passwordOverride
|
||||
= jitsiLocalStorage.getItem('xmpp_password_override');
|
||||
|
||||
if (usernameOverride && usernameOverride.length > 0) {
|
||||
id = usernameOverride; // eslint-disable-line no-param-reassign
|
||||
}
|
||||
if (passwordOverride && passwordOverride.length > 0) {
|
||||
password = passwordOverride; // eslint-disable-line no-param-reassign
|
||||
}
|
||||
|
||||
return connect(id, password).catch(err => {
|
||||
if (retry) {
|
||||
const { jwt } = APP.store.getState()['features/base/jwt'];
|
||||
|
||||
if (err === JitsiConnectionErrors.PASSWORD_REQUIRED && !jwt) {
|
||||
return requestAuth(roomName);
|
||||
}
|
||||
}
|
||||
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Authentication Dialog and try to connect with new credentials.
|
||||
* If failed to connect because of PASSWORD_REQUIRED error
|
||||
* then ask for password again.
|
||||
* @param {string} [roomName] name of the conference room
|
||||
*
|
||||
* @returns {Promise<JitsiConnection>}
|
||||
*/
|
||||
function requestAuth(roomName) {
|
||||
const config = APP.store.getState()['features/base/config'];
|
||||
|
||||
if (isTokenAuthEnabled(config)) {
|
||||
// This Promise never resolves as user gets redirected to another URL
|
||||
return new Promise(() => redirectToTokenAuthService(roomName));
|
||||
}
|
||||
|
||||
return new Promise(resolve => {
|
||||
const onSuccess = connection => {
|
||||
resolve(connection);
|
||||
};
|
||||
|
||||
APP.store.dispatch(
|
||||
openDialog(LoginDialog, { onSuccess,
|
||||
roomName })
|
||||
);
|
||||
});
|
||||
}
|
||||
@@ -66,10 +66,6 @@ body, input, textarea, keygen, select, button {
|
||||
font-family: $baseFontFamily !important;
|
||||
}
|
||||
|
||||
#nowebrtc {
|
||||
display:none;
|
||||
}
|
||||
|
||||
button, input, select, textarea {
|
||||
margin: 0;
|
||||
vertical-align: baseline;
|
||||
@@ -119,17 +115,18 @@ form {
|
||||
}
|
||||
|
||||
.leftwatermark {
|
||||
max-width: 140px;
|
||||
max-height:70px;
|
||||
left: 32px;
|
||||
top: 32px;
|
||||
background-position: center left;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.leftwatermarknomargin {
|
||||
background-position: center left;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
&.no-margin {
|
||||
left:0;
|
||||
top:0;
|
||||
}
|
||||
}
|
||||
|
||||
.rightwatermark {
|
||||
@@ -148,21 +145,6 @@ form {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.connected {
|
||||
color: #21B9FC;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.lastN, .disconnected {
|
||||
color: #a3a3a3;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#inviteLinkRef {
|
||||
-webkit-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-style default OS scrollbar.
|
||||
*/
|
||||
@@ -185,7 +167,7 @@ form {
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: rgba(0, 0, 0, .5);
|
||||
background: #3D3D3D;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
@@ -193,3 +175,16 @@ form {
|
||||
.jitsi-icon svg path {
|
||||
fill: inherit !important;
|
||||
}
|
||||
|
||||
.sr-only {
|
||||
border: 0 !important;
|
||||
clip: rect(1px, 1px, 1px, 1px) !important;
|
||||
clip-path: inset(50%) !important;
|
||||
height: 1px !important;
|
||||
margin: -1px !important;
|
||||
overflow: hidden !important;
|
||||
padding: 0 !important;
|
||||
position: absolute !important;
|
||||
width: 1px !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
175
css/_chat.scss
175
css/_chat.scss
@@ -1,35 +1,3 @@
|
||||
#sideToolbarContainer {
|
||||
background-color: $chatBackgroundColor;
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
transition: width .16s ease-in-out;
|
||||
width: $sidebarWidth;
|
||||
z-index: 300;
|
||||
|
||||
@media (max-width: 580px) {
|
||||
height: 100vh;
|
||||
height: -webkit-fill-available;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.chat-panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// extract header + tabs height
|
||||
height: calc(100% - 119px);
|
||||
}
|
||||
|
||||
.chat-panel-no-tabs {
|
||||
// extract header height
|
||||
height: calc(100% - 70px);
|
||||
}
|
||||
|
||||
#chat-conversation-container {
|
||||
// extract message input height
|
||||
height: calc(100% - 64px);
|
||||
@@ -76,27 +44,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.chat-header {
|
||||
height: 70px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 16px;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
font-weight: 600;
|
||||
font-size: 24px;
|
||||
line-height: 32px;
|
||||
|
||||
.jitsi-icon {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.chat-input-container {
|
||||
padding: 0 16px 24px;
|
||||
}
|
||||
@@ -112,61 +59,6 @@
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.smiley-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 38px;
|
||||
width: 38px;
|
||||
margin: 2px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#chat-input .smiley-button {
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
&:hover {
|
||||
background-color: #484A4F;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.remoteuser {
|
||||
color: #B8C7E0;
|
||||
}
|
||||
|
||||
.usrmsg-form {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#usermsg {
|
||||
-ms-overflow-style: none;
|
||||
border: 0px none;
|
||||
border-radius:0;
|
||||
box-shadow: none;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
padding: 10px;
|
||||
overflow-y: auto;
|
||||
resize: none;
|
||||
scrollbar-width: none;
|
||||
width: 100%;
|
||||
word-break: break-word;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#usermsg:hover {
|
||||
border: 0px none;
|
||||
box-shadow: none;
|
||||
}
|
||||
#usermsg:focus,
|
||||
#usermsg:active {
|
||||
border-bottom: 1px solid white;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
#nickname {
|
||||
text-align: center;
|
||||
color: #9d9d9d;
|
||||
@@ -174,11 +66,6 @@
|
||||
margin: auto 0;
|
||||
padding: 0 16px;
|
||||
|
||||
#nickname-title {
|
||||
margin-bottom: 5px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
label[for="nickinput"] {
|
||||
> div > span {
|
||||
color: #B8C7E0;
|
||||
@@ -191,24 +78,6 @@
|
||||
label {
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.enter-chat {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 16px;
|
||||
height: 40px;
|
||||
background: #1B67EC;
|
||||
border-radius: 3px;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
|
||||
&.disabled {
|
||||
color: #AFB6BC;
|
||||
background: #11336E;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mobile-browser {
|
||||
@@ -216,14 +85,6 @@
|
||||
input {
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
.enter-chat {
|
||||
height: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
#usermsg {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.chatmessage .usermessage {
|
||||
@@ -231,32 +92,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
.sideToolbarContainer {
|
||||
* {
|
||||
-webkit-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
}
|
||||
|
||||
.sr-only {
|
||||
border: 0 !important;
|
||||
clip: rect(1px, 1px, 1px, 1px) !important;
|
||||
clip-path: inset(50%) !important;
|
||||
height: 1px !important;
|
||||
margin: -1px !important;
|
||||
overflow: hidden !important;
|
||||
padding: 0 !important;
|
||||
position: absolute !important;
|
||||
width: 1px !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
.chatmessage {
|
||||
&.localuser {
|
||||
background-color: #484A4F;
|
||||
border-radius: 6px 0px 6px 6px;
|
||||
}
|
||||
|
||||
&.error {
|
||||
border-radius: 0px;
|
||||
|
||||
@@ -288,13 +124,6 @@
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
#smileysarea {
|
||||
display: flex;
|
||||
max-height: 150px;
|
||||
min-height: 35px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.smiley-input {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
@@ -345,10 +174,6 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#usermsg::-webkit-scrollbar-track-piece {
|
||||
background: #3a3a3a;
|
||||
}
|
||||
|
||||
.chat-message-group {
|
||||
&.local {
|
||||
align-items: flex-end;
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
.drawer-portal {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 351;
|
||||
border-radius: 16px 16px 0 0;
|
||||
|
||||
&.notification-portal {
|
||||
z-index: 901;
|
||||
}
|
||||
}
|
||||
|
||||
.drawer-portal::after {
|
||||
content: '';
|
||||
background-color: #141414;
|
||||
margin-bottom: env(safe-area-inset-bottom, 0);
|
||||
}
|
||||
|
||||
.drawer-menu-container {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.drawer-menu {
|
||||
overflow-y: auto;
|
||||
margin-bottom: env(safe-area-inset-bottom, 0);
|
||||
width: 100%;
|
||||
|
||||
.drawer-toggle {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 44px;
|
||||
cursor: pointer;
|
||||
|
||||
svg {
|
||||
fill: none;
|
||||
}
|
||||
}
|
||||
|
||||
&#{&} .overflow-menu {
|
||||
margin: auto;
|
||||
font-size: 1.2em;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
height: calc(80vh - 144px - 64px);
|
||||
overflow-y: auto;
|
||||
|
||||
.overflow-menu-item {
|
||||
box-sizing: border-box;
|
||||
height: 48px;
|
||||
padding: 12px 16px;
|
||||
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
font-size: 16px;
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&.unclickable {
|
||||
cursor: default;
|
||||
}
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
&.unclickable:hover {
|
||||
background: inherit;
|
||||
}
|
||||
}
|
||||
&.disabled {
|
||||
cursor: initial;
|
||||
color: #3b475c;
|
||||
}
|
||||
}
|
||||
|
||||
.profile-text {
|
||||
max-width: 100%;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
#e2ee-section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.description {
|
||||
font-size: 13px;
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.control-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
margin-top: 15px;
|
||||
|
||||
label {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,4 @@
|
||||
/*Initialize*/
|
||||
div.loginmenu {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
padding: 5px;
|
||||
top: 40px;
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
a.disabled {
|
||||
color: gray !important;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.loginmenu.extendedToolbarPopup {
|
||||
top: 20px;
|
||||
left: 40px;
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
.filmstrip-toolbox,
|
||||
.always-on-top-toolbox {
|
||||
background-color: $newToolbarBackgroundColor;
|
||||
border-radius: 3px;
|
||||
@@ -29,7 +28,3 @@
|
||||
transform: translateX(-50%);
|
||||
padding: 3px !important;
|
||||
}
|
||||
|
||||
.filmstrip-toolbox {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
.jqistates {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.jqistates h2 {
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 18px;
|
||||
line-height: 25px;
|
||||
text-align: center;
|
||||
color: #424242;
|
||||
}
|
||||
|
||||
.jqistates input {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.jqistates input[type='text'], input[type='password'] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
button.jqidefaultbutton #inviteLinkRef {
|
||||
color: #2c8ad2;
|
||||
}
|
||||
|
||||
#inviteLinkRef {
|
||||
-webkit-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
@@ -75,6 +75,3 @@
|
||||
margin-bottom: 36px;
|
||||
width: 100%;
|
||||
}
|
||||
.navigate-section-list-empty {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
.notice {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
z-index: $zindex3;
|
||||
margin-top: 6px;
|
||||
|
||||
@include transform(translateX(-50%));
|
||||
|
||||
&__message {
|
||||
background-color: #000000;
|
||||
color: white;
|
||||
padding: 3px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
}
|
||||
@@ -1,42 +1,3 @@
|
||||
.participants_pane {
|
||||
background-color: #141414;
|
||||
flex-shrink: 0;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
transition: width .16s ease-in-out;
|
||||
width: 315px;
|
||||
z-index: $zindex0;
|
||||
}
|
||||
|
||||
.participants_pane-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-weight: 600;
|
||||
height: 100%;
|
||||
width: 315px;
|
||||
|
||||
& > *:first-child,
|
||||
& > *:last-child {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 580px) {
|
||||
.participants_pane {
|
||||
height: 100vh;
|
||||
height: -webkit-fill-available;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.participants_pane-content {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.jitsi-icon {
|
||||
&-dominant-speaker {
|
||||
background-color: #1EC26A;
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
.polls-panel {
|
||||
height: calc(100% - 119px);
|
||||
}
|
||||
@@ -154,17 +154,17 @@ $reactionCount: 20;
|
||||
}
|
||||
|
||||
70% {
|
||||
transform: translate(40px, -70vh) scale(1.5);
|
||||
transform: translate(40px, -70dvh) scale(1.5);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translate(40px, -70vh) scale(1.5);
|
||||
transform: translate(40px, -70dvh) scale(1.5);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate(140px, -50vh) scale(1);
|
||||
transform: translate(140px, -50dvh) scale(1);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@@ -187,17 +187,17 @@ $reactionCount: 20;
|
||||
}
|
||||
|
||||
70% {
|
||||
transform: translate(#{$topX}px, -#{$topY}vh) scale(1.5);
|
||||
transform: translate(#{$topX}px, -#{$topY}dvh) scale(1.5);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translate(#{$topX}px, -#{$topY}vh) scale(1.5);
|
||||
transform: translate(#{$topX}px, -#{$topY}dvh) scale(1.5);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate(#{$bottomX}px, -#{$bottomY}vh) scale(1);
|
||||
transform: translate(#{$bottomX}px, -#{$bottomY}dvh) scale(1);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
.recordingSpinner {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.recording-dialog {
|
||||
flex: 0;
|
||||
flex-direction: column;
|
||||
@@ -19,6 +15,10 @@
|
||||
font-size: 14px;
|
||||
margin-left: 16px;
|
||||
max-width: 70%;
|
||||
|
||||
&-no-space {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.space-top {
|
||||
@@ -50,10 +50,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.recording-switch-disabled {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.recording-icon-container {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
@@ -156,8 +152,7 @@
|
||||
*/
|
||||
font-size: 14px;
|
||||
|
||||
.broadcast-dropdown,
|
||||
.broadcast-dropdown-trigger {
|
||||
.broadcast-dropdown {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
.hint-msg{
|
||||
.hint-msg {
|
||||
p {
|
||||
margin: 26px auto;
|
||||
font-weight: 600;
|
||||
@@ -31,4 +31,10 @@
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
.forbidden-msg {
|
||||
p {
|
||||
font-size: 16px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,14 +34,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.subject-info {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
margin-bottom: 4px;
|
||||
max-width: 80%;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.details-container {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
|
||||
@@ -58,21 +58,6 @@
|
||||
z-index: $toolbarZ;
|
||||
pointer-events: none;
|
||||
|
||||
.button-group-center,
|
||||
.button-group-left,
|
||||
.button-group-right {
|
||||
display: flex;
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
.button-group-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.button-group-right {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.toolbox-button-wth-dialog {
|
||||
display: inline-block;
|
||||
}
|
||||
@@ -112,16 +97,6 @@
|
||||
padding-bottom: env(safe-area-inset-bottom, 0);
|
||||
}
|
||||
|
||||
.beta-tag {
|
||||
background: #36383C;
|
||||
border-radius: 3px;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
margin-left: 8px;
|
||||
padding: 0 4px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.overflow-menu-hr {
|
||||
border-top: 1px solid #4C4D50;
|
||||
border-bottom: 0;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -24,24 +24,6 @@
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows an inline element.
|
||||
*/
|
||||
.show-inline {
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows a flex element.
|
||||
*/
|
||||
.show-flex {
|
||||
display: -webkit-box !important;
|
||||
display: -moz-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: -webkit-flex !important;
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* resets default button styles,
|
||||
* mostly intended to be used on interactive elements that
|
||||
|
||||
@@ -209,23 +209,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
#reloadPresentation {
|
||||
display: none;
|
||||
position: absolute;
|
||||
color: #FFFFFF;
|
||||
top: 0;
|
||||
right:0;
|
||||
padding: 10px 10px;
|
||||
font-size: 11pt;
|
||||
cursor: pointer;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
border-radius: 5px;
|
||||
background-clip: padding-box;
|
||||
-webkit-border-radius: 5px;
|
||||
-webkit-background-clip: padding-box;
|
||||
z-index: 20; /*The reload button should appear on top of the header!*/
|
||||
}
|
||||
|
||||
#dominantSpeaker {
|
||||
visibility: hidden;
|
||||
width: 300px;
|
||||
@@ -236,10 +219,6 @@
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
#mixedstream {
|
||||
display:none !important;
|
||||
}
|
||||
|
||||
#dominantSpeakerAvatarContainer,
|
||||
.dynamic-shadow {
|
||||
width: 200px;
|
||||
@@ -287,10 +266,10 @@
|
||||
#avatarContainer {
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
height: 50vh;
|
||||
margin-top: 25vh;
|
||||
height: 50dvh;
|
||||
margin-top: 25dvh;
|
||||
overflow: hidden;
|
||||
width: 50vh;
|
||||
width: 50dvh;
|
||||
|
||||
#avatar {
|
||||
height: 100%;
|
||||
@@ -309,11 +288,6 @@
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.videoMessageFilter {
|
||||
-webkit-filter: grayscale(.5) opacity(0.8);
|
||||
filter: grayscale(.5) opacity(0.8);
|
||||
}
|
||||
|
||||
#remotePresenceMessage,
|
||||
#remoteConnectionMessage {
|
||||
position: absolute;
|
||||
|
||||
@@ -10,7 +10,7 @@ body.welcome-page {
|
||||
flex-direction: column;
|
||||
font-family: $welcomePageFontFamily;
|
||||
justify-content: space-between;
|
||||
min-height: 100vh;
|
||||
min-height: 100dvh;
|
||||
position: relative;
|
||||
|
||||
.header {
|
||||
@@ -61,6 +61,35 @@ body.welcome-page {
|
||||
|
||||
}
|
||||
|
||||
.not-allow-title-character-div {
|
||||
color: #f03e3e;
|
||||
background-color: #fff;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
margin: 10px 0px 5px 0px;
|
||||
text-align: $welcomePageHeaderTextAlign;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
.not-allow-title-character-text {
|
||||
float: right;
|
||||
line-height: 1.9;
|
||||
};
|
||||
.jitsi-icon {
|
||||
margin-right: 9px;
|
||||
float: left;
|
||||
|
||||
|
||||
svg {
|
||||
fill:#f03e3e;
|
||||
|
||||
& > *:first-child {
|
||||
fill: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.insecure-room-name-warning {
|
||||
align-items: center;
|
||||
color: rgb(215, 121, 118);
|
||||
@@ -231,11 +260,6 @@ body.welcome-page {
|
||||
width: $welcomePageWatermarkWidth;
|
||||
height: $welcomePageWatermarkHeight;
|
||||
}
|
||||
|
||||
.watermark.leftwatermarknomargin {
|
||||
width: $welcomePageWatermarkWidth;
|
||||
height: $welcomePageWatermarkHeight;
|
||||
}
|
||||
}
|
||||
|
||||
&.without-content {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.deep-linking-mobile {
|
||||
background-color: #fff;
|
||||
height: 100vh;
|
||||
height: 100dvh;
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
width: 100vw;
|
||||
|
||||
@@ -37,7 +37,6 @@ $flagsImagePath: "../images/";
|
||||
@import 'modals/screen-share/share-audio';
|
||||
@import 'modals/screen-share/share-screen-warning';
|
||||
@import 'videolayout_default';
|
||||
@import 'notice';
|
||||
@import 'subject';
|
||||
@import 'popup_menu';
|
||||
@import 'recording';
|
||||
@@ -73,12 +72,9 @@ $flagsImagePath: "../images/";
|
||||
@import 'premeeting/main';
|
||||
@import 'modals/invite/invite_more';
|
||||
@import 'modals/security/security';
|
||||
@import 'e2ee';
|
||||
@import 'responsive';
|
||||
@import 'drawer';
|
||||
@import 'participants-pane';
|
||||
@import 'reactions-menu';
|
||||
@import 'plan-limit';
|
||||
@import 'polls';
|
||||
|
||||
/* Modules END */
|
||||
|
||||
5
debian/jitsi-meet-tokens.postinst
vendored
5
debian/jitsi-meet-tokens.postinst
vendored
@@ -38,6 +38,11 @@ case "$1" in
|
||||
if [ "$RET" = "false" ] ; then
|
||||
echo "Application secret is mandatory"
|
||||
fi
|
||||
# Not allowed unix special characters in secret: /, \, ", ', `
|
||||
if echo "$RET" | grep -q "[/\\\"\`\']" ; then
|
||||
echo "Application secret contains invalid characters: /, \\, \", ', \`"
|
||||
exit 1
|
||||
fi
|
||||
APP_SECRET=$RET
|
||||
|
||||
PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua"
|
||||
|
||||
1
debian/jitsi-meet-web.install
vendored
1
debian/jitsi-meet-web.install
vendored
@@ -1,6 +1,5 @@
|
||||
interface_config.js /usr/share/jitsi-meet/
|
||||
*.html /usr/share/jitsi-meet/
|
||||
*.ico /usr/share/jitsi-meet/
|
||||
libs /usr/share/jitsi-meet/
|
||||
static /usr/share/jitsi-meet/
|
||||
css/all.css /usr/share/jitsi-meet/css/
|
||||
|
||||
@@ -43,8 +43,8 @@ server {
|
||||
}
|
||||
}
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name jitsi-meet.example.com;
|
||||
|
||||
# Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
|
||||
|
||||
BIN
favicon.ico
BIN
favicon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 3.6 KiB |
2
globals.d.ts
vendored
2
globals.d.ts
vendored
@@ -19,6 +19,8 @@ declare global {
|
||||
interfaceConfig?: any;
|
||||
JitsiMeetJS?: any;
|
||||
JitsiMeetElectron?: any;
|
||||
PressureObserver?: any;
|
||||
PressureRecord?: any;
|
||||
// selenium tests handler
|
||||
_sharedVideoPlayer: any;
|
||||
alwaysOnTop: { api: any };
|
||||
|
||||
2
globals.native.d.ts
vendored
2
globals.native.d.ts
vendored
@@ -17,6 +17,8 @@ interface IWindow {
|
||||
innerWidth: number;
|
||||
interfaceConfig: any;
|
||||
location: ILocation;
|
||||
PressureObserver?: any;
|
||||
PressureRecord?: any;
|
||||
self: any;
|
||||
top: any;
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB |
13
images/favicon.svg
Normal file
13
images/favicon.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 8.5 KiB |
@@ -107,8 +107,8 @@ var interfaceConfig = {
|
||||
// Names of browsers which should show a warning stating the current browser
|
||||
// has a suboptimal experience. Browsers which are not listed as optimal or
|
||||
// unsupported are considered suboptimal. Valid values are:
|
||||
// chrome, chromium, edge, electron, firefox, nwjs, opera, safari
|
||||
OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'nwjs', 'electron', 'safari' ],
|
||||
// chrome, chromium, electron, firefox , safari, webkit
|
||||
OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'electron', 'safari', 'webkit' ],
|
||||
|
||||
POLICY_LOGO: null,
|
||||
PROVIDER_NAME: 'Jitsi',
|
||||
|
||||
15
ios/Podfile
15
ios/Podfile
@@ -6,8 +6,6 @@ workspace 'jitsi-meet'
|
||||
|
||||
install! 'cocoapods', :deterministic_uuids => false
|
||||
|
||||
production = ENV["PRODUCTION"] == "1"
|
||||
|
||||
target 'JitsiMeet' do
|
||||
project 'app/app.xcodeproj'
|
||||
|
||||
@@ -26,7 +24,6 @@ target 'JitsiMeetSDK' do
|
||||
flags = get_default_flags()
|
||||
use_react_native!(
|
||||
:path => config[:reactNativePath],
|
||||
:production => production,
|
||||
:hermes_enabled => false,
|
||||
:fabric_enabled => false,
|
||||
# An absolute path to your application root.
|
||||
@@ -46,7 +43,6 @@ target 'JitsiMeetSDK' do
|
||||
|
||||
pod 'CocoaLumberjack', '3.7.2'
|
||||
pod 'ObjectiveDropboxOfficial', '6.2.3'
|
||||
pod 'JitsiWebRTC', '~> 111.0.0'
|
||||
end
|
||||
|
||||
target 'JitsiMeetSDKLite' do
|
||||
@@ -57,24 +53,24 @@ target 'JitsiMeetSDKLite' do
|
||||
|
||||
# React Native and its dependencies
|
||||
#
|
||||
|
||||
|
||||
config = use_native_modules!
|
||||
use_react_native!(
|
||||
:path => config["reactNativePath"],
|
||||
:path => config[:reactNativePath],
|
||||
:hermes_enabled => false,
|
||||
:fabric_enabled => false,
|
||||
# An absolute path to your application root.
|
||||
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
||||
)
|
||||
|
||||
|
||||
# Native pod dependencies
|
||||
#
|
||||
|
||||
|
||||
pod 'CocoaLumberjack', '3.7.2'
|
||||
end
|
||||
|
||||
post_install do |installer|
|
||||
react_native_post_install(installer)
|
||||
react_native_post_install(installer, :mac_catalyst_enabled => false)
|
||||
__apply_Xcode_12_5_M1_post_install_workaround(installer)
|
||||
installer.pods_project.targets.each do |target|
|
||||
# https://github.com/CocoaPods/CocoaPods/issues/11402
|
||||
@@ -86,6 +82,7 @@ post_install do |installer|
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['SUPPORTS_MACCATALYST'] = 'NO'
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.4'
|
||||
config.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -no-verify-emitted-module-interface'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
682
ios/Podfile.lock
682
ios/Podfile.lock
@@ -3,25 +3,25 @@ PODS:
|
||||
- amplitude-react-native (2.7.0):
|
||||
- Amplitude (= 8.7.1)
|
||||
- React-Core
|
||||
- AppAuth (1.6.1):
|
||||
- AppAuth/Core (= 1.6.1)
|
||||
- AppAuth/ExternalUserAgent (= 1.6.1)
|
||||
- AppAuth/Core (1.6.1)
|
||||
- AppAuth/ExternalUserAgent (1.6.1):
|
||||
- AppAuth (1.6.2):
|
||||
- AppAuth/Core (= 1.6.2)
|
||||
- AppAuth/ExternalUserAgent (= 1.6.2)
|
||||
- AppAuth/Core (1.6.2)
|
||||
- AppAuth/ExternalUserAgent (1.6.2):
|
||||
- AppAuth/Core
|
||||
- boost (1.76.0)
|
||||
- CocoaLumberjack (3.7.2):
|
||||
- CocoaLumberjack/Core (= 3.7.2)
|
||||
- CocoaLumberjack/Core (3.7.2)
|
||||
- DoubleConversion (1.1.6)
|
||||
- FBLazyVector (0.69.10)
|
||||
- FBReactNativeSpec (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCTRequired (= 0.69.10)
|
||||
- RCTTypeSafety (= 0.69.10)
|
||||
- React-Core (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- FBLazyVector (0.70.14)
|
||||
- FBReactNativeSpec (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- RCTRequired (= 0.70.14)
|
||||
- RCTTypeSafety (= 0.70.14)
|
||||
- React-Core (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- Firebase/Analytics (8.15.0):
|
||||
- Firebase/Core
|
||||
- Firebase/Core (8.15.0):
|
||||
@@ -103,390 +103,391 @@ PODS:
|
||||
- GoogleUtilities/Network (~> 7.7)
|
||||
- "GoogleUtilities/NSData+zlib (~> 7.7)"
|
||||
- nanopb (~> 2.30908.0)
|
||||
- GoogleDataTransport (9.2.2):
|
||||
- GoogleDataTransport (9.3.0):
|
||||
- GoogleUtilities/Environment (~> 7.7)
|
||||
- nanopb (< 2.30910.0, >= 2.30908.0)
|
||||
- PromisesObjC (< 3.0, >= 1.2)
|
||||
- GoogleSignIn (6.2.4):
|
||||
- GoogleSignIn (7.0.0):
|
||||
- AppAuth (~> 1.5)
|
||||
- GTMAppAuth (~> 1.3)
|
||||
- GTMSessionFetcher/Core (< 3.0, >= 1.1)
|
||||
- GoogleUtilities/AppDelegateSwizzler (7.11.1):
|
||||
- GTMAppAuth (< 3.0, >= 1.3)
|
||||
- GTMSessionFetcher/Core (< 4.0, >= 1.1)
|
||||
- GoogleUtilities/AppDelegateSwizzler (7.12.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (7.11.1):
|
||||
- GoogleUtilities/Environment (7.12.0):
|
||||
- PromisesObjC (< 3.0, >= 1.2)
|
||||
- GoogleUtilities/Logger (7.11.1):
|
||||
- GoogleUtilities/Logger (7.12.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/MethodSwizzler (7.11.1):
|
||||
- GoogleUtilities/MethodSwizzler (7.12.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network (7.11.1):
|
||||
- GoogleUtilities/Network (7.12.0):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (7.11.1)"
|
||||
- GoogleUtilities/Reachability (7.11.1):
|
||||
- "GoogleUtilities/NSData+zlib (7.12.0)"
|
||||
- GoogleUtilities/Reachability (7.12.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/UserDefaults (7.11.1):
|
||||
- GoogleUtilities/UserDefaults (7.12.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GTMAppAuth (1.3.1):
|
||||
- GTMAppAuth (2.0.0):
|
||||
- AppAuth/Core (~> 1.6)
|
||||
- GTMSessionFetcher/Core (< 3.0, >= 1.5)
|
||||
- GTMSessionFetcher/Core (2.3.0)
|
||||
- JitsiWebRTC (111.0.2)
|
||||
- libwebp (1.2.4):
|
||||
- libwebp/demux (= 1.2.4)
|
||||
- libwebp/mux (= 1.2.4)
|
||||
- libwebp/webp (= 1.2.4)
|
||||
- libwebp/demux (1.2.4):
|
||||
- GTMSessionFetcher/Core (< 4.0, >= 1.5)
|
||||
- GTMSessionFetcher/Core (3.2.0)
|
||||
- JitsiWebRTC (118.0.0)
|
||||
- libwebp (1.3.2):
|
||||
- libwebp/demux (= 1.3.2)
|
||||
- libwebp/mux (= 1.3.2)
|
||||
- libwebp/sharpyuv (= 1.3.2)
|
||||
- libwebp/webp (= 1.3.2)
|
||||
- libwebp/demux (1.3.2):
|
||||
- libwebp/webp
|
||||
- libwebp/mux (1.2.4):
|
||||
- libwebp/mux (1.3.2):
|
||||
- libwebp/demux
|
||||
- libwebp/webp (1.2.4)
|
||||
- libwebp/sharpyuv (1.3.2)
|
||||
- libwebp/webp (1.3.2):
|
||||
- libwebp/sharpyuv
|
||||
- nanopb (2.30908.0):
|
||||
- nanopb/decode (= 2.30908.0)
|
||||
- nanopb/encode (= 2.30908.0)
|
||||
- nanopb/decode (2.30908.0)
|
||||
- nanopb/encode (2.30908.0)
|
||||
- ObjectiveDropboxOfficial (6.2.3)
|
||||
- PromisesObjC (2.2.0)
|
||||
- PromisesSwift (2.2.0):
|
||||
- PromisesObjC (= 2.2.0)
|
||||
- RCT-Folly (2021.06.28.00-v2):
|
||||
- PromisesObjC (2.3.1)
|
||||
- PromisesSwift (2.3.1):
|
||||
- PromisesObjC (= 2.3.1)
|
||||
- RCT-Folly (2021.07.22.00):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- RCT-Folly/Default (= 2021.06.28.00-v2)
|
||||
- RCT-Folly/Default (2021.06.28.00-v2):
|
||||
- RCT-Folly/Default (= 2021.07.22.00)
|
||||
- RCT-Folly/Default (2021.07.22.00):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- RCTRequired (0.69.10)
|
||||
- RCTTypeSafety (0.69.10):
|
||||
- FBLazyVector (= 0.69.10)
|
||||
- RCTRequired (= 0.69.10)
|
||||
- React-Core (= 0.69.10)
|
||||
- React (0.69.10):
|
||||
- React-Core (= 0.69.10)
|
||||
- React-Core/DevSupport (= 0.69.10)
|
||||
- React-Core/RCTWebSocket (= 0.69.10)
|
||||
- React-RCTActionSheet (= 0.69.10)
|
||||
- React-RCTAnimation (= 0.69.10)
|
||||
- React-RCTBlob (= 0.69.10)
|
||||
- React-RCTImage (= 0.69.10)
|
||||
- React-RCTLinking (= 0.69.10)
|
||||
- React-RCTNetwork (= 0.69.10)
|
||||
- React-RCTSettings (= 0.69.10)
|
||||
- React-RCTText (= 0.69.10)
|
||||
- React-RCTVibration (= 0.69.10)
|
||||
- React-bridging (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-callinvoker (0.69.10)
|
||||
- React-Codegen (0.69.10):
|
||||
- FBReactNativeSpec (= 0.69.10)
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCTRequired (= 0.69.10)
|
||||
- RCTTypeSafety (= 0.69.10)
|
||||
- React-Core (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-Core (0.69.10):
|
||||
- RCTRequired (0.70.14)
|
||||
- RCTTypeSafety (0.70.14):
|
||||
- FBLazyVector (= 0.70.14)
|
||||
- RCTRequired (= 0.70.14)
|
||||
- React-Core (= 0.70.14)
|
||||
- React (0.70.14):
|
||||
- React-Core (= 0.70.14)
|
||||
- React-Core/DevSupport (= 0.70.14)
|
||||
- React-Core/RCTWebSocket (= 0.70.14)
|
||||
- React-RCTActionSheet (= 0.70.14)
|
||||
- React-RCTAnimation (= 0.70.14)
|
||||
- React-RCTBlob (= 0.70.14)
|
||||
- React-RCTImage (= 0.70.14)
|
||||
- React-RCTLinking (= 0.70.14)
|
||||
- React-RCTNetwork (= 0.70.14)
|
||||
- React-RCTSettings (= 0.70.14)
|
||||
- React-RCTText (= 0.70.14)
|
||||
- React-RCTVibration (= 0.70.14)
|
||||
- React-bridging (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-callinvoker (0.70.14)
|
||||
- React-Codegen (0.70.14):
|
||||
- FBReactNativeSpec (= 0.70.14)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- RCTRequired (= 0.70.14)
|
||||
- RCTTypeSafety (= 0.70.14)
|
||||
- React-Core (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-Core (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-Core/Default (= 0.69.10)
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default (= 0.70.14)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/CoreModulesHeaders (0.69.10):
|
||||
- React-Core/CoreModulesHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/Default (0.69.10):
|
||||
- React-Core/Default (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/DevSupport (0.69.10):
|
||||
- React-Core/DevSupport (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-Core/Default (= 0.69.10)
|
||||
- React-Core/RCTWebSocket (= 0.69.10)
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-jsinspector (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default (= 0.70.14)
|
||||
- React-Core/RCTWebSocket (= 0.70.14)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-jsinspector (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTActionSheetHeaders (0.69.10):
|
||||
- React-Core/RCTActionSheetHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTAnimationHeaders (0.69.10):
|
||||
- React-Core/RCTAnimationHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTBlobHeaders (0.69.10):
|
||||
- React-Core/RCTBlobHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTImageHeaders (0.69.10):
|
||||
- React-Core/RCTImageHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTLinkingHeaders (0.69.10):
|
||||
- React-Core/RCTLinkingHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTNetworkHeaders (0.69.10):
|
||||
- React-Core/RCTNetworkHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTSettingsHeaders (0.69.10):
|
||||
- React-Core/RCTSettingsHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTTextHeaders (0.69.10):
|
||||
- React-Core/RCTTextHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTVibrationHeaders (0.69.10):
|
||||
- React-Core/RCTVibrationHeaders (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-Core/RCTWebSocket (0.69.10):
|
||||
- React-Core/RCTWebSocket (0.70.14):
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-Core/Default (= 0.69.10)
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsiexecutor (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core/Default (= 0.70.14)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsiexecutor (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- Yoga
|
||||
- React-CoreModules (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCTTypeSafety (= 0.69.10)
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/CoreModulesHeaders (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-RCTImage (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-cxxreact (0.69.10):
|
||||
- React-CoreModules (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- RCTTypeSafety (= 0.70.14)
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/CoreModulesHeaders (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-RCTImage (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-cxxreact (0.70.14):
|
||||
- boost (= 1.76.0)
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-callinvoker (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-jsinspector (= 0.69.10)
|
||||
- React-logger (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-runtimeexecutor (= 0.69.10)
|
||||
- React-jsi (0.69.10):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-callinvoker (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-jsinspector (= 0.70.14)
|
||||
- React-logger (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- React-runtimeexecutor (= 0.70.14)
|
||||
- React-jsi (0.70.14):
|
||||
- boost (= 1.76.0)
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-jsi/Default (= 0.69.10)
|
||||
- React-jsi/Default (0.69.10):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-jsi/Default (= 0.70.14)
|
||||
- React-jsi/Default (0.70.14):
|
||||
- boost (= 1.76.0)
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-jsiexecutor (0.69.10):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-jsiexecutor (0.70.14):
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- React-jsinspector (0.69.10)
|
||||
- React-logger (0.69.10):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- React-jsinspector (0.70.14)
|
||||
- React-logger (0.70.14):
|
||||
- glog
|
||||
- react-native-background-timer (2.4.1):
|
||||
- React-Core
|
||||
- react-native-get-random-values (1.7.2):
|
||||
- react-native-get-random-values (1.9.0):
|
||||
- React-Core
|
||||
- react-native-keep-awake (4.0.0):
|
||||
- React
|
||||
- react-native-netinfo (7.1.7):
|
||||
- react-native-netinfo (11.1.0):
|
||||
- React-Core
|
||||
- react-native-orientation-locker (1.5.0):
|
||||
- react-native-orientation-locker (1.6.0):
|
||||
- React-Core
|
||||
- react-native-pager-view (5.4.9):
|
||||
- react-native-pager-view (6.2.0):
|
||||
- React-Core
|
||||
- react-native-safe-area-context (4.6.4):
|
||||
- RCT-Folly
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- react-native-performance (5.0.0):
|
||||
- React-Core
|
||||
- ReactCommon/turbomodule/core
|
||||
- react-native-slider (4.1.12):
|
||||
- react-native-safe-area-context (4.7.1):
|
||||
- React-Core
|
||||
- react-native-slider (4.4.3):
|
||||
- React-Core
|
||||
- react-native-splash-screen (3.3.0):
|
||||
- React-Core
|
||||
- react-native-video (6.0.0-alpha.1):
|
||||
- react-native-video (6.0.0-alpha.7):
|
||||
- React-Core
|
||||
- react-native-video/Video (= 6.0.0-alpha.1)
|
||||
- react-native-video/Video (6.0.0-alpha.1):
|
||||
- react-native-video/Video (= 6.0.0-alpha.7)
|
||||
- react-native-video/Video (6.0.0-alpha.7):
|
||||
- PromisesSwift
|
||||
- React-Core
|
||||
- react-native-webrtc (111.0.3):
|
||||
- JitsiWebRTC (~> 111.0.0)
|
||||
- react-native-webrtc (118.0.0):
|
||||
- JitsiWebRTC (~> 118.0.0)
|
||||
- React-Core
|
||||
- react-native-webview (11.15.1):
|
||||
- react-native-webview (13.5.1):
|
||||
- React-Core
|
||||
- React-perflogger (0.69.10)
|
||||
- React-RCTActionSheet (0.69.10):
|
||||
- React-Core/RCTActionSheetHeaders (= 0.69.10)
|
||||
- React-RCTAnimation (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCTTypeSafety (= 0.69.10)
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/RCTAnimationHeaders (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-RCTBlob (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/RCTBlobHeaders (= 0.69.10)
|
||||
- React-Core/RCTWebSocket (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-RCTNetwork (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-RCTImage (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCTTypeSafety (= 0.69.10)
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/RCTImageHeaders (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-RCTNetwork (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-RCTLinking (0.69.10):
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/RCTLinkingHeaders (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-RCTNetwork (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCTTypeSafety (= 0.69.10)
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/RCTNetworkHeaders (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-RCTSettings (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- RCTTypeSafety (= 0.69.10)
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/RCTSettingsHeaders (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-RCTText (0.69.10):
|
||||
- React-Core/RCTTextHeaders (= 0.69.10)
|
||||
- React-RCTVibration (0.69.10):
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-Codegen (= 0.69.10)
|
||||
- React-Core/RCTVibrationHeaders (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (= 0.69.10)
|
||||
- React-runtimeexecutor (0.69.10):
|
||||
- React-jsi (= 0.69.10)
|
||||
- ReactCommon/turbomodule/core (0.69.10):
|
||||
- React-perflogger (0.70.14)
|
||||
- React-RCTActionSheet (0.70.14):
|
||||
- React-Core/RCTActionSheetHeaders (= 0.70.14)
|
||||
- React-RCTAnimation (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- RCTTypeSafety (= 0.70.14)
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/RCTAnimationHeaders (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-RCTBlob (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/RCTBlobHeaders (= 0.70.14)
|
||||
- React-Core/RCTWebSocket (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-RCTNetwork (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-RCTImage (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- RCTTypeSafety (= 0.70.14)
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/RCTImageHeaders (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-RCTNetwork (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-RCTLinking (0.70.14):
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/RCTLinkingHeaders (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-RCTNetwork (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- RCTTypeSafety (= 0.70.14)
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/RCTNetworkHeaders (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-RCTSettings (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- RCTTypeSafety (= 0.70.14)
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/RCTSettingsHeaders (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-RCTText (0.70.14):
|
||||
- React-Core/RCTTextHeaders (= 0.70.14)
|
||||
- React-RCTVibration (0.70.14):
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Codegen (= 0.70.14)
|
||||
- React-Core/RCTVibrationHeaders (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (= 0.70.14)
|
||||
- React-runtimeexecutor (0.70.14):
|
||||
- React-jsi (= 0.70.14)
|
||||
- ReactCommon/turbomodule/core (0.70.14):
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- RCT-Folly (= 2021.06.28.00-v2)
|
||||
- React-bridging (= 0.69.10)
|
||||
- React-callinvoker (= 0.69.10)
|
||||
- React-Core (= 0.69.10)
|
||||
- React-cxxreact (= 0.69.10)
|
||||
- React-jsi (= 0.69.10)
|
||||
- React-logger (= 0.69.10)
|
||||
- React-perflogger (= 0.69.10)
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-bridging (= 0.70.14)
|
||||
- React-callinvoker (= 0.70.14)
|
||||
- React-Core (= 0.70.14)
|
||||
- React-cxxreact (= 0.70.14)
|
||||
- React-jsi (= 0.70.14)
|
||||
- React-logger (= 0.70.14)
|
||||
- React-perflogger (= 0.70.14)
|
||||
- RNCalendarEvents (2.2.0):
|
||||
- React
|
||||
- RNCAsyncStorage (1.17.3):
|
||||
- RNCAsyncStorage (1.19.4):
|
||||
- React-Core
|
||||
- RNCClipboard (1.5.1):
|
||||
- React-Core
|
||||
- RNDefaultPreference (1.4.4):
|
||||
- React-Core
|
||||
- RNDeviceInfo (8.4.8):
|
||||
- RNDeviceInfo (10.9.0):
|
||||
- React-Core
|
||||
- RNGestureHandler (2.9.0):
|
||||
- React-Core
|
||||
- RNGoogleSignin (9.0.2):
|
||||
- GoogleSignIn (~> 6.2)
|
||||
- RNGoogleSignin (10.1.0):
|
||||
- GoogleSignIn (~> 7.0)
|
||||
- React-Core
|
||||
- RNScreens (3.22.0):
|
||||
- RNScreens (3.24.0):
|
||||
- React-Core
|
||||
- React-RCTImage
|
||||
- RNSound (0.11.1):
|
||||
- RNSound (0.11.2):
|
||||
- React-Core
|
||||
- RNSound/Core (= 0.11.1)
|
||||
- RNSound/Core (0.11.1):
|
||||
- RNSound/Core (= 0.11.2)
|
||||
- RNSound/Core (0.11.2):
|
||||
- React-Core
|
||||
- RNSVG (12.4.3):
|
||||
- RNSVG (13.13.0):
|
||||
- React-Core
|
||||
- RNWatch (1.0.11):
|
||||
- RNWatch (1.1.0):
|
||||
- React
|
||||
- Yoga (1.14.0)
|
||||
|
||||
@@ -502,7 +503,6 @@ DEPENDENCIES:
|
||||
- Firebase/DynamicLinks (~> 8.0)
|
||||
- "giphy-react-native-sdk (from `../node_modules/@giphy/react-native-sdk`)"
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- JitsiWebRTC (~> 111.0.0)
|
||||
- ObjectiveDropboxOfficial (= 6.2.3)
|
||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
||||
@@ -525,6 +525,7 @@ DEPENDENCIES:
|
||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||
- react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`)
|
||||
- react-native-pager-view (from `../node_modules/react-native-pager-view`)
|
||||
- react-native-performance (from `../node_modules/react-native-performance`)
|
||||
- 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`)
|
||||
@@ -638,6 +639,8 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native-orientation-locker"
|
||||
react-native-pager-view:
|
||||
:path: "../node_modules/react-native-pager-view"
|
||||
react-native-performance:
|
||||
:path: "../node_modules/react-native-performance"
|
||||
react-native-safe-area-context:
|
||||
:path: "../node_modules/react-native-safe-area-context"
|
||||
react-native-slider:
|
||||
@@ -702,12 +705,12 @@ EXTERNAL SOURCES:
|
||||
SPEC CHECKSUMS:
|
||||
Amplitude: 834c7332dfb9640a751e21c13efb22a07c0c12d4
|
||||
amplitude-react-native: 0ed8cab759aafaa94961b82122bf56297da607ad
|
||||
AppAuth: e48b432bb4ba88b10cb2bcc50d7f3af21e78b9c2
|
||||
AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570
|
||||
boost: a7c83b31436843459a1961bfd74b96033dc77234
|
||||
CocoaLumberjack: b7e05132ff94f6ae4dfa9d5bce9141893a21d9da
|
||||
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
|
||||
FBLazyVector: a8af91c2b5a0029d12ff6b32e428863d63c48991
|
||||
FBReactNativeSpec: ec5e878f6452a3de5430e0b2324a4d4ae6ac63f6
|
||||
FBLazyVector: efad4471d02263013cfcb7a2f75de6ac7565692f
|
||||
FBReactNativeSpec: 9cd9542bfdcc64e07bc649f809dd621876f78619
|
||||
Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d
|
||||
FirebaseAnalytics: 7761cbadb00a717d8d0939363eb46041526474fa
|
||||
FirebaseCore: 5743c5785c074a794d35f2fff7ecc254a91e08b1
|
||||
@@ -718,70 +721,71 @@ SPEC CHECKSUMS:
|
||||
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
||||
Giphy: 6b5f6986c8df4f71e01a8ef86595f426b3439fb5
|
||||
giphy-react-native-sdk: fcda9639f8ca2cc47e0517b6ef11c19359db5f5a
|
||||
glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a
|
||||
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
|
||||
GoogleAppMeasurement: 4c19f031220c72464d460c9daa1fb5d1acce958e
|
||||
GoogleDataTransport: 8378d1fa8ac49753ea6ce70d65a7cb70ce5f66e6
|
||||
GoogleSignIn: 5651ce3a61e56ca864160e79b484cd9ed3f49b7a
|
||||
GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749
|
||||
GTMAppAuth: 0ff230db599948a9ad7470ca667337803b3fc4dd
|
||||
GTMSessionFetcher: 3a63d75eecd6aa32c2fc79f578064e1214dfdec2
|
||||
JitsiWebRTC: 80f62908fcf2a1160e0d14b584323fb6e6be630b
|
||||
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
|
||||
GoogleDataTransport: 57c22343ab29bc686febbf7cbb13bad167c2d8fe
|
||||
GoogleSignIn: b232380cf495a429b8095d3178a8d5855b42e842
|
||||
GoogleUtilities: 0759d1a57ebb953965c2dfe0ba4c82e95ccc2e34
|
||||
GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae
|
||||
GTMSessionFetcher: 41b9ef0b4c08a6db4b7eb51a21ae5183ec99a2c8
|
||||
JitsiWebRTC: 3a41671ef65a51d7204323814b055a2690b921c7
|
||||
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
|
||||
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
|
||||
ObjectiveDropboxOfficial: fe206ce8c0bc49976c249d472db7fdbc53ebbd53
|
||||
PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef
|
||||
PromisesSwift: cf9eb58666a43bbe007302226e510b16c1e10959
|
||||
RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a
|
||||
RCTRequired: 3581db0757e7ff9be10718a56b3d79b6a6bd3bdf
|
||||
RCTTypeSafety: ce13e630c48340401ebfb28710959913f74b8b36
|
||||
React: cca8f2b7cce018f79847ca79847fa367b206e8a1
|
||||
React-bridging: b893643f09d3964afba6c347e00dd86cf10691e5
|
||||
React-callinvoker: 9ac7cba30428eddf7a06d1253f8e7561b5c97334
|
||||
React-Codegen: 65ff9fbddf8a17a6d4f495f71d365288f934a93a
|
||||
React-Core: 550b694774bc778b5c7bf7608fc12a484e01ec05
|
||||
React-CoreModules: c332d5b416cb3ccf972e7af79d496498a700e073
|
||||
React-cxxreact: c5c4106bfd2d0cee80b848e33b7ff4e35a721b16
|
||||
React-jsi: 6ff3fb9b9764a499c959e0096c0d384fa2b4beef
|
||||
React-jsiexecutor: 388f1c99404c848141d7ea162f61233d04829ede
|
||||
React-jsinspector: a4463b3411b8b9b37153255ef694a84c77ba3c7f
|
||||
React-logger: 2a0497622cbabc47fb769d97620952df14c1f814
|
||||
PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4
|
||||
PromisesSwift: 28dca69a9c40779916ac2d6985a0192a5cb4a265
|
||||
RCT-Folly: 0080d0a6ebf2577475bda044aa59e2ca1f909cda
|
||||
RCTRequired: 6f42727926c2ef4836fc23169586f3d8d7f5a6e4
|
||||
RCTTypeSafety: de9b538a8f20ae8c780bf38935f37f303b083fc8
|
||||
React: 6604c02c25295898e9332c5dbe5d6f140be1e246
|
||||
React-bridging: 55de000607b776d7c9b1333f38d1991ef25bf915
|
||||
React-callinvoker: aa42aaefd72dbe9218c112fd503eff7ab782bd11
|
||||
React-Codegen: 9e13e901ac4d4c46349c2db28b8774fa4274ec18
|
||||
React-Core: b046bbaddd981014eaac20cef83de953a0405c1b
|
||||
React-CoreModules: 4f0b29e5924b06a868983952265f77fed219f349
|
||||
React-cxxreact: 818c9b06607f7972e95eeacb326389429c6a2d38
|
||||
React-jsi: 0bf359879bc4c2c908204b1cd789b0a727a7a568
|
||||
React-jsiexecutor: 03144eeee729e6a6cb8d7ff2d5653b67315f8f31
|
||||
React-jsinspector: 6538dfb58970d1fb9d89c9c34e87713ece6c3cf0
|
||||
React-logger: 4e9c3f888b4b5bb72a3ac7f1be7929e776181016
|
||||
react-native-background-timer: 17ea5e06803401a379ebf1f20505b793ac44d0fe
|
||||
react-native-get-random-values: 30b3f74ca34e30e2e480de48e4add2706a40ac8f
|
||||
react-native-get-random-values: dee677497c6a740b71e5612e8dbd83e7539ed5bb
|
||||
react-native-keep-awake: afad8a51dfef9fe9655a6344771be32c8596d774
|
||||
react-native-netinfo: 27f287f2d191693f3b9d01a4273137fcf91c3b5d
|
||||
react-native-orientation-locker: 851f6510d8046ea2f14aa169b1e01fcd309a94ba
|
||||
react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540
|
||||
react-native-safe-area-context: 68b07eabfb0d14547d36f6929c0e98d818064f02
|
||||
react-native-slider: 6e9b86e76cce4b9e35b3403193a6432ed07e0c81
|
||||
react-native-netinfo: 3aa5637c18834966e0c932de8ae1ae56fea20a97
|
||||
react-native-orientation-locker: 4409c5b12b65f942e75449872b4f078b6f27af81
|
||||
react-native-pager-view: 0ccb8bf60e2ebd38b1f3669fa3650ecce81db2df
|
||||
react-native-performance: 47ac22ebf2aa24f324a96a5825581f6ce18c09e8
|
||||
react-native-safe-area-context: 9697629f7b2cda43cf52169bb7e0767d330648c2
|
||||
react-native-slider: 1cdd6ba29675df21f30544253bf7351d3c2d68c4
|
||||
react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457
|
||||
react-native-video: bb6f12a7198db53b261fefb5d609dc77417acc8b
|
||||
react-native-webrtc: 4d1669c2ed29767fe70b0169428b4466589ecf8b
|
||||
react-native-webview: ea4899a1056c782afa96dd082179a66cbebf5504
|
||||
React-perflogger: bc57c4a953c1ec913b0d984cf4f2b9842a12bde0
|
||||
React-RCTActionSheet: 3efa3546119a1050f6c34a461b386dd9e36eaf0b
|
||||
React-RCTAnimation: e58fb9f1adf7b38af329881ea2740f43ffeea854
|
||||
React-RCTBlob: d2238645553c3ec787324268c0676148d86e6cc4
|
||||
React-RCTImage: e6d7c9ab978cae99364fcc96b9238fc7740a13da
|
||||
React-RCTLinking: 329e88ce217dad464ef34b5d0c40b3ceaac6c9ec
|
||||
React-RCTNetwork: c8967f2382aac31761ddb750fee53fa34cf7a4ee
|
||||
React-RCTSettings: 8a825b4b5ea58f6713a7c97eea6cc82e9895188b
|
||||
React-RCTText: ffcaac5c66bc065f2ccf79b6fe34585adb9e589b
|
||||
React-RCTVibration: 0039c986626b78242401931bb23c803935fae9d1
|
||||
React-runtimeexecutor: 5ebf1ddaa706bf2986123f22d2cad905443c2c5f
|
||||
ReactCommon: 65754b8932ea80272714988268bbfb9f303264a5
|
||||
react-native-video: 967eead48aaa42c25a9e1d65c3b1ab30762a88df
|
||||
react-native-webrtc: c8d9ad3c152105b2720ca2851d04b49659551992
|
||||
react-native-webview: 8baa0f5c6d336d6ba488e942bcadea5bf51f050a
|
||||
React-perflogger: 74b2d33200b8c26440c2c39b87a4177d8404655f
|
||||
React-RCTActionSheet: 3fdf6b3a85f2ea4b365b267efd9c82aaeb20fe33
|
||||
React-RCTAnimation: 9659d5ed57ccbd129516486b2cce38e536841337
|
||||
React-RCTBlob: 49ac98cfd9476af046814a2c9126fca1bf0cbe75
|
||||
React-RCTImage: b4d2d7d14ad9389bd645bc2daa706ccaead3fc44
|
||||
React-RCTLinking: ebf051ed2532652e5290e4fb7c017c42e4e1f0d2
|
||||
React-RCTNetwork: 1636df1f91d4c5ad8815ef93f695931af1c0a842
|
||||
React-RCTSettings: f6306171fd5d3cd8c5fa0b1803da599784ead5c5
|
||||
React-RCTText: 53c106b5fb9e263c2f1e5d6b0733049989d6c428
|
||||
React-RCTVibration: d293c50100c0927379e6a80fab86a219e08792ae
|
||||
React-runtimeexecutor: 0d01d03375f996484fcc231ccca3fe604a4a5652
|
||||
ReactCommon: dce64235f8548b6e4758647310145f5356c8d0cb
|
||||
RNCalendarEvents: 7e65eb4a94f53c1744d1e275f7fafcfaa619f7a3
|
||||
RNCAsyncStorage: 005c0e2f09575360f142d0d1f1f15e4ec575b1af
|
||||
RNCAsyncStorage: 3a8f7145d17cdd9f88e7b77666c94a09e4f759c8
|
||||
RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495
|
||||
RNDefaultPreference: 08bdb06cfa9188d5da97d4642dac745218d7fb31
|
||||
RNDeviceInfo: 0400a6d0c94186d1120c3cbd97b23abc022187a9
|
||||
RNDeviceInfo: 02ea8b23e2280fa18e00a06d7e62804d74028579
|
||||
RNGestureHandler: 071d7a9ad81e8b83fe7663b303d132406a7d8f39
|
||||
RNGoogleSignin: 22e468a9474dbcb8618d8847205ad4f0b2575d13
|
||||
RNScreens: 68fd1060f57dd1023880bf4c05d74784b5392789
|
||||
RNSound: 27e8268bdb0a1f191f219a33267f7e0445e8d62f
|
||||
RNSVG: f3b60aeeaa81960e2e0536c3a9eef50b667ef3a9
|
||||
RNWatch: dae6c858a2051dbdcfb00b9a86cf4d90400263b4
|
||||
Yoga: d24d6184b6b85f742536bd93bd07d69d7b9bb4c1
|
||||
RNGoogleSignin: a6a612cce56a45ab701c5c5c6e36f5390522d100
|
||||
RNScreens: b21dc57dfa2b710c30ec600786a3fc223b1b92e7
|
||||
RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852
|
||||
RNSVG: ed492aaf3af9ca01bc945f7a149d76d62e73ec82
|
||||
RNWatch: fd30ca40a5b5ef58dcbc195638e68219bc455236
|
||||
Yoga: 56413d530d1808044600320ced5baa883acedc44
|
||||
|
||||
PODFILE CHECKSUM: e3579df5272b8b697c9fdc0e55aa0845b189c4dd
|
||||
PODFILE CHECKSUM: c5053669414ca81c03ca4548249b11fe53a13060
|
||||
|
||||
COCOAPODS: 1.11.3
|
||||
COCOAPODS: 1.14.3
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 52;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
@@ -862,7 +862,6 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -892,7 +891,6 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -978,7 +976,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -1013,6 +1011,7 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
@@ -1028,6 +1027,10 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@@ -1039,7 +1042,7 @@
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -1069,6 +1072,10 @@
|
||||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(inherited)",
|
||||
_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
@@ -1081,6 +1088,10 @@
|
||||
);
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
||||
@@ -38,12 +38,6 @@
|
||||
[builder setFeatureFlag:@"resolution" withValue:@(360)];
|
||||
[builder setFeatureFlag:@"ios.screensharing.enabled" withBoolean:YES];
|
||||
[builder setFeatureFlag:@"ios.recording.enabled" withBoolean:YES];
|
||||
builder.serverURL = [NSURL URLWithString:@"https://meet.jit.si"];
|
||||
#if TARGET_IPHONE_SIMULATOR
|
||||
// CallKit has started to create problems starting with the iOS 16 simulator.
|
||||
// Disable it since it never worked in the simulator anyway.
|
||||
[builder setFeatureFlag:@"call-integration.enabled" withBoolean:NO];
|
||||
#endif
|
||||
}];
|
||||
|
||||
[jitsiMeet application:application didFinishLaunchingWithOptions:launchOptions];
|
||||
@@ -131,7 +125,7 @@
|
||||
|
||||
- (UIInterfaceOrientationMask)application:(UIApplication *)application
|
||||
supportedInterfaceOrientationsForWindow:(UIWindow *)window {
|
||||
return [[JitsiMeet sharedInstance] application:application
|
||||
return [[JitsiMeet sharedInstance] application:application
|
||||
supportedInterfaceOrientationsForWindow:window];
|
||||
}
|
||||
|
||||
|
||||
@@ -728,7 +728,7 @@
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -766,6 +766,7 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
@@ -776,6 +777,10 @@
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@@ -791,7 +796,7 @@
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -824,6 +829,10 @@
|
||||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(inherited)",
|
||||
_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
@@ -832,6 +841,10 @@
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
||||
@@ -70,10 +70,7 @@ RCT_EXPORT_MODULE();
|
||||
= [[NSBundle bundleForClass:self.class] infoDictionary];
|
||||
NSString *sdkVersion = sdkInfoDictionary[@"CFBundleShortVersionString"];
|
||||
if (sdkVersion == nil) {
|
||||
sdkVersion = sdkInfoDictionary[@"CFBundleVersion"];
|
||||
if (sdkVersion == nil) {
|
||||
sdkVersion = @"";
|
||||
}
|
||||
sdkVersion = @"";
|
||||
}
|
||||
|
||||
// build number
|
||||
|
||||
@@ -30,5 +30,6 @@ static NSString * const sendEventNotificationName = @"org.jitsi.meet.SendEvent";
|
||||
- (void)sendChatMessage:(NSString*)message :(NSString*)to ;
|
||||
- (void)sendSetVideoMuted:(BOOL)muted;
|
||||
- (void)sendSetClosedCaptionsEnabled:(BOOL)enabled;
|
||||
- (void)toggleCamera;
|
||||
|
||||
@end
|
||||
|
||||
@@ -27,6 +27,7 @@ static NSString * const closeChatAction = @"org.jitsi.meet.CLOSE_CHAT";
|
||||
static NSString * const sendChatMessageAction = @"org.jitsi.meet.SEND_CHAT_MESSAGE";
|
||||
static NSString * const setVideoMutedAction = @"org.jitsi.meet.SET_VIDEO_MUTED";
|
||||
static NSString * const setClosedCaptionsEnabledAction = @"org.jitsi.meet.SET_CLOSED_CAPTIONS_ENABLED";
|
||||
static NSString * const toggleCameraAction = @"org.jitsi.meet.TOGGLE_CAMERA";
|
||||
|
||||
@implementation ExternalAPI
|
||||
|
||||
@@ -50,7 +51,8 @@ RCT_EXPORT_MODULE();
|
||||
@"CLOSE_CHAT": closeChatAction,
|
||||
@"SEND_CHAT_MESSAGE": sendChatMessageAction,
|
||||
@"SET_VIDEO_MUTED" : setVideoMutedAction,
|
||||
@"SET_CLOSED_CAPTIONS_ENABLED": setClosedCaptionsEnabledAction
|
||||
@"SET_CLOSED_CAPTIONS_ENABLED": setClosedCaptionsEnabledAction,
|
||||
@"TOGGLE_CAMERA": toggleCameraAction
|
||||
};
|
||||
};
|
||||
|
||||
@@ -75,7 +77,8 @@ RCT_EXPORT_MODULE();
|
||||
closeChatAction,
|
||||
sendChatMessageAction,
|
||||
setVideoMutedAction,
|
||||
setClosedCaptionsEnabledAction
|
||||
setClosedCaptionsEnabledAction,
|
||||
toggleCameraAction
|
||||
];
|
||||
}
|
||||
|
||||
@@ -173,4 +176,8 @@ RCT_EXPORT_METHOD(sendEvent:(NSString *)name
|
||||
[self sendEventWithName:setClosedCaptionsEnabledAction body:data];
|
||||
}
|
||||
|
||||
- (void)toggleCamera {
|
||||
[self sendEventWithName:toggleCameraAction body:nil];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -46,5 +46,6 @@
|
||||
- (void)sendChatMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to;
|
||||
- (void)setVideoMuted:(BOOL)muted;
|
||||
- (void)setClosedCaptionsEnabled:(BOOL)enabled;
|
||||
- (void)toggleCamera;
|
||||
|
||||
@end
|
||||
|
||||
@@ -138,6 +138,11 @@ static NSString *const PiPEnabledFeatureFlag = @"pip.enabled";
|
||||
[externalAPI sendSetClosedCaptionsEnabled:enabled];
|
||||
}
|
||||
|
||||
- (void)toggleCamera {
|
||||
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
|
||||
[externalAPI toggleCamera];
|
||||
}
|
||||
|
||||
#pragma mark Private methods
|
||||
|
||||
- (void)registerObservers {
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"dsb": "Dolnoserbšćina",
|
||||
"el": "Ελληνικά",
|
||||
"en": "English",
|
||||
"enGB": "English (United Kingdom)",
|
||||
"eo": "Esperanto",
|
||||
"es": "Español",
|
||||
"esUS": "Español (Latinoamérica)",
|
||||
|
||||
@@ -557,8 +557,6 @@
|
||||
"youtubeTerms": "شروط خدمة يوتيوب"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "سمح بالدخول",
|
||||
"admitAll": "سمح للجميع بالدخول",
|
||||
"allow": "اسمح",
|
||||
"backToKnockModeButton": "لا يوجد كلمة مرور، اطلب الإذن بالدخول بدلًا من ذلك.",
|
||||
"chat": "دردشة",
|
||||
@@ -593,8 +591,6 @@
|
||||
"notificationTitle": "غرفة الانتظار",
|
||||
"passwordField": "أدخل كلمة الدخول إلى المُلتقى",
|
||||
"passwordJoinButton": "انضم",
|
||||
"reject": "رفض",
|
||||
"rejectAll": "رفض الكل",
|
||||
"title": "غرفة الانتظار",
|
||||
"toggleLabel": "فعِّل غرفة الانتظار"
|
||||
},
|
||||
@@ -720,6 +716,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "سمح بالدخول",
|
||||
"admitAll": "سمح للجميع بالدخول",
|
||||
"allow": "السماح للحاضرين بـ:",
|
||||
"allowVideo": "السماح بالفيديو",
|
||||
"askUnmute": "اطلب إعادة الصوت",
|
||||
@@ -732,6 +730,7 @@
|
||||
"mute": "كتم الصوت",
|
||||
"muteAll": "كتم الكل",
|
||||
"muteEveryoneElse": "كتم صوت الآخرين",
|
||||
"reject": "رفض",
|
||||
"stopEveryonesVideo": "أوقف فيديو الجميع",
|
||||
"stopVideo": "أوقف الفيديو",
|
||||
"unblockEveryoneMicCamera": "قم بإلغاء حظر ميكروفون وكاميرا الجميع",
|
||||
|
||||
@@ -420,8 +420,6 @@
|
||||
"youtubeTerms": "Условия за ползване на YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Допусни",
|
||||
"allow": "Разреши",
|
||||
"backToKnockModeButton": "Заявка за включване без парола",
|
||||
"dialogTitle": "Режим лоби",
|
||||
"disableDialogContent": "Режим Лоби е включен. Този решим защитава срещите Ви от случайни посетители. Искате ли да го изключите?",
|
||||
@@ -450,7 +448,6 @@
|
||||
"notificationTitle": "Лоби",
|
||||
"passwordField": "Въведи парола за срещата",
|
||||
"passwordJoinButton": "Влез",
|
||||
"reject": "Откажи",
|
||||
"title": "Лоби",
|
||||
"toggleLabel": "Включи лоби"
|
||||
},
|
||||
@@ -521,6 +518,13 @@
|
||||
"suboptimalExperienceTitle": "Внимание",
|
||||
"unmute": "Пускане на микрофона"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Допусни",
|
||||
"allow": "Разреши",
|
||||
"reject": "Откажи"
|
||||
}
|
||||
},
|
||||
"passwordDigitsOnly": "До {{number}} цифри",
|
||||
"passwordSetRemotely": "зададена от друг участник",
|
||||
"poweredby": "с подкрепата на",
|
||||
|
||||
@@ -561,8 +561,6 @@
|
||||
"youtubeTerms": "Condicions de servei de YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Admet",
|
||||
"admitAll": "Admet tothom",
|
||||
"allow": "Permet",
|
||||
"backToKnockModeButton": "Demaneu per a unir-vos",
|
||||
"chat": "Xat",
|
||||
@@ -597,8 +595,6 @@
|
||||
"notificationTitle": "Sala d'espera",
|
||||
"passwordField": "Introduïu la contrasenya de la reunió",
|
||||
"passwordJoinButton": "Entra",
|
||||
"reject": "Rebuja",
|
||||
"rejectAll": "Rebutja-ho tot",
|
||||
"title": "Sala d'espera",
|
||||
"toggleLabel": "Activa la sala d'espera"
|
||||
},
|
||||
@@ -727,6 +723,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Admet",
|
||||
"admitAll": "Admet tothom",
|
||||
"allow": "Permet als assistents:",
|
||||
"allowVideo": "Permet el vídeo",
|
||||
"askUnmute": "Demanar l'activació el micròfon",
|
||||
@@ -739,6 +737,7 @@
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silencia tothom",
|
||||
"muteEveryoneElse": "Silenciar tothom",
|
||||
"reject": "Rebuja",
|
||||
"stopEveryonesVideo": "Atura el vídeo a tothom",
|
||||
"stopVideo": "Atura el vídeo",
|
||||
"unblockEveryoneMicCamera": "Desbloquejar el micròfon i la càmera de tothom",
|
||||
|
||||
@@ -557,8 +557,6 @@
|
||||
"youtubeTerms": "Podmínky používání YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "",
|
||||
"admitAll": "",
|
||||
"allow": "Povolit",
|
||||
"backToKnockModeButton": "Žádné heslo, místo toho požádat o přijetí",
|
||||
"chat": "",
|
||||
@@ -593,7 +591,6 @@
|
||||
"notificationTitle": "Předsálí",
|
||||
"passwordField": "Zadejte heslo setkání",
|
||||
"passwordJoinButton": "Vstoupit",
|
||||
"reject": "Odmítnout",
|
||||
"title": "Předsálí",
|
||||
"toggleLabel": "Zapnout předsálí"
|
||||
},
|
||||
@@ -719,22 +716,7 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"allow": "",
|
||||
"allowVideo": "",
|
||||
"askUnmute": "",
|
||||
"audioModeration": "",
|
||||
"blockEveryoneMicCamera": "",
|
||||
"invite": "",
|
||||
"moreModerationActions": "",
|
||||
"moreModerationControls": "",
|
||||
"moreParticipantOptions": "",
|
||||
"mute": "",
|
||||
"muteAll": "",
|
||||
"muteEveryoneElse": "",
|
||||
"stopEveryonesVideo": "",
|
||||
"stopVideo": "",
|
||||
"unblockEveryoneMicCamera": "",
|
||||
"videoModeration": ""
|
||||
"reject": "Odmítnout"
|
||||
},
|
||||
"close": "",
|
||||
"header": "",
|
||||
|
||||
@@ -63,15 +63,20 @@
|
||||
"leaveBreakoutRoom": "Breakout-Raum verlassen",
|
||||
"more": "Mehr",
|
||||
"remove": "Entfernen",
|
||||
"rename": "Umbenennen",
|
||||
"renameBreakoutRoom": "Breakout-Raum umbenennen",
|
||||
"sendToBreakoutRoom": "Anwesende in Breakout-Raum verschieben:"
|
||||
},
|
||||
"breakoutList": "Breakout-Liste",
|
||||
"defaultName": "Breakout-Raum #{{index}}",
|
||||
"hideParticipantList": "Teilnehmerliste ausblenden",
|
||||
"mainRoom": "Hauptraum",
|
||||
"notifications": {
|
||||
"joined": "Breakout-Raum \"{{name}}\" betreten",
|
||||
"joinedMainRoom": "Hauptraum betreten",
|
||||
"joinedTitle": "Breakout-Räume"
|
||||
}
|
||||
},
|
||||
"showParticipantList": "Teilnehmerliste anzeigen"
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Konferenzlink hinzufügen",
|
||||
@@ -254,6 +259,7 @@
|
||||
"Share": "Teilen",
|
||||
"Submit": "OK",
|
||||
"WaitForHostMsg": "Die Konferenz wurde noch nicht gestartet. Falls Sie die Konferenz leiten, authentifizieren Sie sich bitte. Warten Sie andernfalls, bis die Konferenz gestartet wird.",
|
||||
"WaitingForHostButton": "Auf Moderation warten",
|
||||
"WaitingForHostTitle": "Warten auf den Beginn der Konferenz …",
|
||||
"Yes": "Ja",
|
||||
"accessibilityLabel": {
|
||||
@@ -267,6 +273,8 @@
|
||||
"addMeetingNote": "Notiz zu dieser Konferenz hinzufügen",
|
||||
"addOptionalNote": "Notiz hinzufügen (optional):",
|
||||
"allow": "Erlauben",
|
||||
"allowToggleCameraDialog": "Wollen Sie {{initiatorName}} erlauben, Ihre Kameraauswahl zu ändern?",
|
||||
"allowToggleCameraTitle": "Änderung der Kamera zulassen?",
|
||||
"alreadySharedVideoMsg": "Eine andere Person gibt bereits ein Video weiter. Bei dieser Konferenz ist jeweils nur ein geteiltes Video möglich.",
|
||||
"alreadySharedVideoTitle": "Nur ein geteiltes Video gleichzeitig",
|
||||
"applicationWindow": "Anwendungsfenster",
|
||||
@@ -327,6 +335,7 @@
|
||||
"lockRoom": "Konferenz$t(lockRoomPassword) hinzufügen",
|
||||
"lockTitle": "Sperren fehlgeschlagen",
|
||||
"login": "Anmelden",
|
||||
"loginQuestion": "Sind Sie sicher, dass sie sich anmelden und die Konferenz verlassen möchten?",
|
||||
"logoutQuestion": "Sind Sie sicher, dass Sie sich abmelden und die Konferenz verlassen möchten?",
|
||||
"logoutTitle": "Abmelden",
|
||||
"maxUsersLimitReached": "Das Limit für die maximale Personenzahl ist erreicht. Die Konferenz ist voll. Bitte wenden Sie sich an die Konferenzleitung oder versuchen Sie es später noch einmal!",
|
||||
@@ -370,8 +379,6 @@
|
||||
"permissionCameraRequiredError": "Der Zugriff auf die Kamera wird benötigt, um in Videokonferenzen teilzunehmen. Bitte in den Einstellungen zulassen",
|
||||
"permissionErrorTitle": "Berechtigung benötigt",
|
||||
"permissionMicRequiredError": "Der Zugriff auf das Mikrofon wird benötigt, um an Konferenzen mit Ton teilzunehmen. Bitte in den Einstellungen zulassen",
|
||||
"popupError": "Ihr Browser blockiert Pop-ups von dieser Website. Bitte aktivieren Sie Pop-ups in den Sicherheitseinstellungen des Browsers und versuchen Sie es erneut.",
|
||||
"popupErrorTitle": "Pop-up blockiert",
|
||||
"readMore": "mehr",
|
||||
"recentlyUsedObjects": "Ihre zuletzt verwendeten Objekte",
|
||||
"recording": "Aufnahme",
|
||||
@@ -388,6 +395,8 @@
|
||||
"removePassword": "$t(lockRoomPasswordUppercase) entfernen",
|
||||
"removeSharedVideoMsg": "Sind Sie sicher, dass Sie das geteilte Video entfernen möchten?",
|
||||
"removeSharedVideoTitle": "Freigegebenes Video entfernen",
|
||||
"renameBreakoutRoomLabel": "Raumname",
|
||||
"renameBreakoutRoomTitle": "Breakout-Raum umbenennen",
|
||||
"reservationError": "Fehler im Reservierungssystem",
|
||||
"reservationErrorMsg": "Fehler, Nummer: {{code}}, Nachricht: {{msg}}",
|
||||
"retry": "Wiederholen",
|
||||
@@ -407,8 +416,10 @@
|
||||
"sendPrivateMessageTitle": "Privat antworten?",
|
||||
"serviceUnavailable": "Dienst nicht verfügbar",
|
||||
"sessTerminated": "Konferenz beendet",
|
||||
"sessTerminatedReason": "Die Konferenz wurde beendet",
|
||||
"sessionRestarted": "Konferenz neugestartet",
|
||||
"shareAudio": "Fortfahren",
|
||||
"shareAudioAltText": "Um den gewünschten Inhalt zu teilen: Navigiere zu \"Browser tab\", wähle den Inhalt, aktiviere \"Audio teilen\" Kästchen Und klicke den “Teilen” schaltfläche",
|
||||
"shareAudioTitle": "Wie kann Audio geteilt werden",
|
||||
"shareAudioWarningD1": "müssen Sie Ihre Bildschirmfreigabe stoppen, bevor Sie Audio teilen können.",
|
||||
"shareAudioWarningD2": "müssen Sie Ihre Bildschirmfreigabe neustarten und die Option \"Audio freigeben\" auswählen.",
|
||||
@@ -438,7 +449,25 @@
|
||||
"thankYou": "Danke für die Verwendung von {{appName}}!",
|
||||
"token": "Token",
|
||||
"tokenAuthFailed": "Sie sind nicht berechtigt, dieser Konferenz beizutreten.",
|
||||
"tokenAuthFailedReason": {
|
||||
"audInvalid": "Ungültiger `aud`-Wert. Erwartet wird `jitsi`.",
|
||||
"contextNotFound": "Das `context`-Objekt fehlt.",
|
||||
"expInvalid": "Ungültiger `exp`-Wert.",
|
||||
"featureInvalid": "Ungültiges Feature: {{feature}}, noch nicht implementiert.",
|
||||
"featureValueInvalid": "Ungültiger Wert für Feature: {{feature}}.",
|
||||
"featuresNotFound": "Das `features`-Objekt fehlt.",
|
||||
"headerNotFound": "Header fehlt.",
|
||||
"issInvalid": "Ungültiger `iss`-Wert. Erwartet wird `chat`.",
|
||||
"kidMismatch": "Die Key-ID (kid) passt nicht zum sub.",
|
||||
"kidNotFound": "Fehlende Key-ID (kid).",
|
||||
"nbfFuture": "Der `nbf`-Wert liegt in der Zukunft.",
|
||||
"nbfInvalid": "Ungültiger `nbf`-Wert.",
|
||||
"payloadNotFound": "Fehlende Payload.",
|
||||
"tokenExpired": "Das Token ist abgelaufen."
|
||||
},
|
||||
"tokenAuthFailedTitle": "Authentifizierung fehlgeschlagen",
|
||||
"tokenAuthFailedWithReasons": "Teilnahme an der Konferenz fehlgeschlagen. Möglicher Grund: {{reason}}",
|
||||
"tokenAuthUnsupported": "Token-Authentifizierung wird nicht unterstützt.",
|
||||
"transcribing": "Wird transkribiert",
|
||||
"unlockRoom": "Konferenz$t(lockRoomPassword) entfernen",
|
||||
"user": "Anmeldename",
|
||||
@@ -527,6 +556,7 @@
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"reachedLimit": "Sie haben die Grenzen Ihres Tarifs erreicht.",
|
||||
"sip": "SIP-Adresse",
|
||||
"sipAudioOnly": "SIP-Adresse (nur Ton)",
|
||||
"title": "Teilen",
|
||||
"tooltip": "Freigabe-Link und Einwahlinformationen für dieses Meeting",
|
||||
"upgradeOptions": "Bitte prüfen Sie Ihre Upgrade-Optionen auf"
|
||||
@@ -606,8 +636,6 @@
|
||||
"youtubeTerms": "YouTube-Nutzungsbedingungen"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Zulassen",
|
||||
"admitAll": "Alle zulassen",
|
||||
"backToKnockModeButton": "Kein Passwort, stattdessen Beitritt anfragen",
|
||||
"chat": "Chat",
|
||||
"dialogTitle": "Lobbymodus",
|
||||
@@ -633,16 +661,14 @@
|
||||
"knockingParticipantList": "Liste anklopfender Personen",
|
||||
"lobbyChatStartedNotification": "{{moderator}} hat einen Lobby-Chat mit {{attendee}} gestartet",
|
||||
"lobbyChatStartedTitle": "{{moderator}} hat einen Lobby-Chat mit Ihnen gestartet.",
|
||||
"lobbyClosed": "Die Lobby wurde geschlossen.",
|
||||
"nameField": "Geben Sie Ihren Namen ein",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} wurde von {{originParticipantName}} der Zutritt verwehrt",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} wurde von {{originParticipantName}} der Zutritt gestattet",
|
||||
"notificationLobbyDisabled": "{{originParticipantName}} hat die Lobby deaktiviert",
|
||||
"notificationLobbyEnabled": "{{originParticipantName}} hat die Lobby aktiviert",
|
||||
"notificationTitle": "Lobby",
|
||||
"passwordField": "Konferenzpasswort eingeben",
|
||||
"passwordJoinButton": "Beitreten",
|
||||
"reject": "Ablehnen",
|
||||
"rejectAll": "Alle ablehnen",
|
||||
"title": "Lobby",
|
||||
"toggleLabel": "Lobby aktivieren"
|
||||
},
|
||||
@@ -674,6 +700,8 @@
|
||||
"sessionToken": "Sitzungs-Token",
|
||||
"start": "Aufnahme starten",
|
||||
"stop": "Aufnahme stoppen",
|
||||
"stopping": "Aufnahme wird gestoppt",
|
||||
"wait": "Bitte warten Sie während wir Ihre Aufnahme speichern",
|
||||
"yes": "Ja"
|
||||
},
|
||||
"lockRoomPassword": "Passwort",
|
||||
@@ -742,7 +770,6 @@
|
||||
"newDeviceCameraTitle": "Neue Kamera erkannt",
|
||||
"noiseSuppressionDesktopAudioDescription": "Die Rauschunterdrückung kann nicht genutzt werden, wenn der Computersound geteilt wird, bitte zuerst deaktivieren und dann nochmals versuchen.",
|
||||
"noiseSuppressionFailedTitle": "Rauschunterdrückung konnte nicht gestartet werden",
|
||||
"noiseSuppressionNoTrackDescription": "Bitte eigenes Mikrofon zuerst aktivieren.",
|
||||
"noiseSuppressionStereoDescription": "Rauschunterdrückung unterstützt aktuell keinen Stereoton.",
|
||||
"oldElectronClientDescription1": "Sie scheinen eine alte Version des Jitsi-Meet-Clients zu nutzen. Diese hat bekannte Schwachstellen. Bitte aktualisieren Sie auf unsere ",
|
||||
"oldElectronClientDescription2": "aktuelle Version",
|
||||
@@ -776,6 +803,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Zulassen",
|
||||
"admitAll": "Alle zulassen",
|
||||
"allow": "Anwesenden erlauben:",
|
||||
"allowVideo": "Kamera einschalten",
|
||||
"askUnmute": "Anfragen, Stummschaltung aufzuheben",
|
||||
@@ -788,6 +817,7 @@
|
||||
"mute": "Stummschalten",
|
||||
"muteAll": "Alle stummschalten",
|
||||
"muteEveryoneElse": "Alle anderen stummschalten",
|
||||
"reject": "Ablehnen",
|
||||
"stopEveryonesVideo": "Alle Kameras ausschalten",
|
||||
"stopVideo": "Kamera ausschalten",
|
||||
"unblockEveryoneMicCamera": "Kamera und Mikrofon von allen entsperren",
|
||||
@@ -1057,6 +1087,7 @@
|
||||
"alertOk": "OK",
|
||||
"alertTitle": "Warnung",
|
||||
"alertURLText": "Die angegebene Server-URL ist ungültig",
|
||||
"apply": "Übernehmen",
|
||||
"buildInfoSection": "Build-Informationen",
|
||||
"conferenceSection": "Konferenz",
|
||||
"disableCallIntegration": "Native Anrufintegration deaktivieren",
|
||||
@@ -1067,6 +1098,7 @@
|
||||
"displayNamePlaceholderText": "z.B. Erika Musterfrau",
|
||||
"email": "E-Mail",
|
||||
"emailPlaceholderText": "email@beispiel.de",
|
||||
"gavatarMessage": "Wenn Sie ein Gravatar-Konto mit Ihrer Emailadresse haben, wird dieses als Ihr Profilfoto verwendet.",
|
||||
"goTo": "Gehe zu",
|
||||
"header": "Einstellungen",
|
||||
"help": "Hilfe",
|
||||
|
||||
@@ -563,8 +563,6 @@
|
||||
"youtubeTerms": "wužywaŕske wustawki za youtube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "pśizwóliś",
|
||||
"admitAll": "wšyknym pśizwólenje daś",
|
||||
"backToKnockModeButton": "mimo kodowego słowa, město togo wó pśistup pšosyś",
|
||||
"chat": "chat",
|
||||
"dialogTitle": "lobbyjowy modus",
|
||||
@@ -598,8 +596,6 @@
|
||||
"notificationTitle": "lobby",
|
||||
"passwordField": "kodowe słowo za konferencu zapódaś",
|
||||
"passwordJoinButton": "pśistupiś",
|
||||
"reject": "wótpokazaś",
|
||||
"rejectAll": "wšykne wótpokazaś",
|
||||
"title": "",
|
||||
"toggleLabel": "lobby aktiwěrowaś / deaktiwěrowaś"
|
||||
},
|
||||
@@ -730,6 +726,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "pśizwóliś",
|
||||
"admitAll": "wšyknym pśizwólenje daś",
|
||||
"allow": "wobźělnikam pšawo daś:",
|
||||
"allowVideo": "kameru aktiwěrowaś",
|
||||
"askUnmute": "pšosbu wó anulěrowanje wuśišenja stajiś",
|
||||
@@ -742,6 +740,7 @@
|
||||
"mute": "wuśišyś",
|
||||
"muteAll": "wšyknych wuśišyś",
|
||||
"muteEveryoneElse": "wšykne druge wuśišyś",
|
||||
"reject": "wótpokazaś",
|
||||
"stopEveryonesVideo": "wšykne kamery wušaltowaś",
|
||||
"stopVideo": "kameru wušaltowaś",
|
||||
"unblockEveryoneMicCamera": "blokěrowane kamery a mikrofon wšyknych zasej aktiwěrowaś",
|
||||
|
||||
@@ -580,8 +580,6 @@
|
||||
"youtubeTerms": "Όροι υπηρεσιών YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Αποδοχή",
|
||||
"admitAll": "Αποδοχή όλων",
|
||||
"backToKnockModeButton": "Αίτημα εισόδου",
|
||||
"chat": "Συνομιλία",
|
||||
"dialogTitle": "Λειτουργία υποδοχής",
|
||||
@@ -615,8 +613,6 @@
|
||||
"notificationTitle": "Υποδοχή",
|
||||
"passwordField": "Εισάγετε τον κωδικό σύσκεψης",
|
||||
"passwordJoinButton": "Συμμετοχή",
|
||||
"reject": "Απόρριψη",
|
||||
"rejectAll": "Απόρριψη όλων",
|
||||
"title": "Υποδοχή",
|
||||
"toggleLabel": "Ενεργοποίηση υποδοχής"
|
||||
},
|
||||
@@ -745,6 +741,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Αποδοχή",
|
||||
"admitAll": "Αποδοχή όλων",
|
||||
"allow": "Επιτρέψτε στους συμμετέχοντες να:",
|
||||
"allowVideo": "Επιτρέψτε το βίντεο",
|
||||
"askUnmute": "Αίτηση για κατάργηση σίγησης",
|
||||
@@ -757,6 +755,7 @@
|
||||
"mute": "Σίγηση",
|
||||
"muteAll": "Σίγηση όλων",
|
||||
"muteEveryoneElse": "Σίγηση όλων των άλλων",
|
||||
"reject": "Απόρριψη",
|
||||
"stopEveryonesVideo": "Διακοπή όλων των βίντεο",
|
||||
"stopVideo": "Διακοπή του βίντεο",
|
||||
"unblockEveryoneMicCamera": "Επιτρέψτε τα μικρόφωνα και τις κάμερες όλων",
|
||||
|
||||
@@ -1,760 +0,0 @@
|
||||
{
|
||||
"addPeople": {
|
||||
"add": "Invite",
|
||||
"countryNotSupported": "We do not support this destination yet.",
|
||||
"countryReminder": "Calling outside the US? Please make sure you start with the country code!",
|
||||
"disabled": "You can't invite people.",
|
||||
"failedToAdd": "Failed to add members",
|
||||
"footerText": "Dialling out is disabled.",
|
||||
"loading": "Searching for people and phone numbers",
|
||||
"loadingNumber": "Validating phone number",
|
||||
"loadingPeople": "Searching for people to invite",
|
||||
"noResults": "No matching search results",
|
||||
"noValidNumbers": "Please enter a phone number",
|
||||
"searchNumbers": "Add phone numbers",
|
||||
"searchPeople": "Search for people",
|
||||
"searchPeopleAndNumbers": "Search for people or add their phone numbers",
|
||||
"telephone": "Telephone: {{number}}",
|
||||
"title": "Invite people to this meeting"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
"headphones": "Headphones",
|
||||
"none": "",
|
||||
"phone": "Phone",
|
||||
"speaker": "Speaker"
|
||||
},
|
||||
"audioOnly": {
|
||||
"audioOnly": "Audio only"
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Add a meeting link",
|
||||
"confirmAddLink": "Do you want to add a Jitsi link to this event?",
|
||||
"error": {
|
||||
"appConfiguration": "Calendar integration is not properly configured.",
|
||||
"generic": "An error has occurred. Please check your calendar settings or try refreshing the calendar.",
|
||||
"notSignedIn": "An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."
|
||||
},
|
||||
"join": "Join",
|
||||
"joinTooltip": "Join the meeting",
|
||||
"nextMeeting": "next meeting",
|
||||
"noEvents": "There are no upcoming events scheduled.",
|
||||
"ongoingMeeting": "ongoing meeting",
|
||||
"permissionButton": "Open settings",
|
||||
"permissionMessage": "The Calendar permission is required to see your meetings in the app.",
|
||||
"refresh": "Refresh calendar",
|
||||
"today": "Today"
|
||||
},
|
||||
"chat": {
|
||||
"messagebox": "Type a message",
|
||||
"nickname": {
|
||||
"popover": "Choose a nickname",
|
||||
"title": "Enter a nickname to use chat",
|
||||
"titleWithPolls": "Enter a nickname to use chat"
|
||||
},
|
||||
"sendButton": "Send",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"buttonText": "",
|
||||
"dontShowAgain": "",
|
||||
"installExtensionText": ""
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Connecting you to your meeting…"
|
||||
},
|
||||
"connection": {
|
||||
"ATTACHED": "Attached",
|
||||
"AUTHENTICATING": "Authenticating",
|
||||
"AUTHFAIL": "Authentication failed",
|
||||
"CONNECTED": "Connected",
|
||||
"CONNECTING": "Connecting",
|
||||
"CONNFAIL": "Connection failed",
|
||||
"DISCONNECTED": "Disconnected",
|
||||
"DISCONNECTING": "Disconnecting",
|
||||
"ERROR": "Error",
|
||||
"FETCH_SESSION_ID": "",
|
||||
"GET_SESSION_ID_ERROR": "",
|
||||
"GOT_SESSION_ID": "",
|
||||
"LOW_BANDWIDTH": "",
|
||||
"RECONNECTING": "A network problem occurred. Reconnecting..."
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Address:",
|
||||
"bandwidth": "Estimated bandwidth:",
|
||||
"bitrate": "Bitrate:",
|
||||
"bridgeCount": "Server count: ",
|
||||
"codecs": "Codecs (A/V): ",
|
||||
"connectedTo": "Connected to:",
|
||||
"framerate": "Frame rate:",
|
||||
"less": "Show less",
|
||||
"localaddress": "Local address:",
|
||||
"localaddress_plural": "Local addresses:",
|
||||
"localport": "Local port:",
|
||||
"localport_plural": "Local ports:",
|
||||
"more": "Show more",
|
||||
"packetloss": "Packet loss:",
|
||||
"quality": {
|
||||
"good": "Good",
|
||||
"inactive": "Inactive",
|
||||
"lost": "Lost",
|
||||
"nonoptimal": "Nonoptimal",
|
||||
"poor": "Poor"
|
||||
},
|
||||
"remoteaddress": "Remote address:",
|
||||
"remoteaddress_plural": "Remote addresses:",
|
||||
"remoteport": "Remote port:",
|
||||
"remoteport_plural": "Remote ports:",
|
||||
"resolution": "Resolution:",
|
||||
"status": "Connection:",
|
||||
"transport": "Transport:",
|
||||
"transport_plural": "Transports:",
|
||||
"turn": " (turn)"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Earlier",
|
||||
"today": "Today",
|
||||
"yesterday": "Yesterday"
|
||||
},
|
||||
"deepLinking": {
|
||||
"appNotInstalled": "You need the {{app}} mobile app to join this meeting on your phone.",
|
||||
"description": "Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.",
|
||||
"descriptionWithoutWeb": "",
|
||||
"downloadApp": "Download the app",
|
||||
"ifDoNotHaveApp": "If you don't have the app yet:",
|
||||
"ifHaveApp": "If you already have the app:",
|
||||
"joinInApp": "Join this meeting using the app",
|
||||
"launchWebButton": "Launch in web",
|
||||
"title": "Launching your meeting in {{app}}…",
|
||||
"tryAgainButton": "Try again in desktop"
|
||||
},
|
||||
"defaultLink": "e.g. {{url}}",
|
||||
"defaultNickname": "",
|
||||
"deviceError": {
|
||||
"cameraError": "Failed to access your camera",
|
||||
"cameraPermission": "Error obtaining camera permission",
|
||||
"microphoneError": "Failed to access your microphone",
|
||||
"microphonePermission": "Error obtaining microphone permission"
|
||||
},
|
||||
"deviceSelection": {
|
||||
"noPermission": "Permission not granted",
|
||||
"previewUnavailable": "Preview unavailable",
|
||||
"selectADevice": "Select a device",
|
||||
"testAudio": "Play a test sound"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "is now {{status}}"
|
||||
},
|
||||
"dialog": {
|
||||
"Back": "Back",
|
||||
"Cancel": "Cancel",
|
||||
"IamHost": "I am the host",
|
||||
"Ok": "Ok",
|
||||
"Remove": "Remove",
|
||||
"Share": "Share",
|
||||
"Submit": "Submit",
|
||||
"WaitForHostMsg": "The conference has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.",
|
||||
"WaitingForHost": "Waiting for the host …",
|
||||
"Yes": "Yes",
|
||||
"accessibilityLabel": {
|
||||
"liveStreaming": "Live Stream"
|
||||
},
|
||||
"allow": "Allow",
|
||||
"alreadySharedVideoMsg": "Another member is already sharing a video. This conference allows only one shared video at a time.",
|
||||
"alreadySharedVideoTitle": "Only one shared video is allowed at a time",
|
||||
"applicationWindow": "Application window",
|
||||
"cameraConstraintFailedError": "Your camera does not satisfy some of the required constraints.",
|
||||
"cameraNotFoundError": "Camera was not found.",
|
||||
"cameraNotSendingData": "We are unable to access your camera. Please check if another application is using this device, select another device from the settings menu or try to reload the application.",
|
||||
"cameraNotSendingDataTitle": "Unable to access camera",
|
||||
"cameraPermissionDeniedError": "You have not granted permission to use your camera. You can still join the conference but others won't see you. Use the camera button in the address bar to fix this.",
|
||||
"cameraUnknownError": "Cannot use camera for an unknown reason.",
|
||||
"cameraUnsupportedResolutionError": "Your camera does not support required video resolution.",
|
||||
"close": "Close",
|
||||
"conferenceDisconnectMsg": "You may want to check your network connection. Reconnecting in {{seconds}} sec…",
|
||||
"conferenceDisconnectTitle": "You have been disconnected.",
|
||||
"conferenceReloadMsg": "We're trying to fix this. Reconnecting in {{seconds}} sec…",
|
||||
"conferenceReloadTitle": "Unfortunately, something went wrong.",
|
||||
"confirm": "Confirm",
|
||||
"confirmNo": "No",
|
||||
"confirmYes": "Yes",
|
||||
"connectError": "Oops! Something went wrong and we couldn't connect to the conference.",
|
||||
"connectErrorWithMsg": "Oops! Something went wrong and we couldn't connect to the conference: {{msg}}",
|
||||
"connecting": "Connecting",
|
||||
"contactSupport": "Contact support",
|
||||
"copy": "Copy",
|
||||
"dismiss": "Dismiss",
|
||||
"displayNameRequired": "Display name is required",
|
||||
"done": "Done",
|
||||
"enterDisplayName": "Please enter your display name",
|
||||
"error": "Error",
|
||||
"externalInstallationMsg": "You need to install our desktop sharing extension.",
|
||||
"externalInstallationTitle": "Extension required",
|
||||
"goToStore": "Go to the webstore",
|
||||
"gracefulShutdown": "Our service is currently down for maintenance. Please try again later.",
|
||||
"incorrectPassword": "Incorrect username or password",
|
||||
"incorrectRoomLockPassword": "",
|
||||
"inlineInstallExtension": "Install now",
|
||||
"inlineInstallationMsg": "You need to install our desktop sharing extension.",
|
||||
"internalError": "Oops! Something went wrong. The following error occurred: {{error}}",
|
||||
"internalErrorTitle": "Internal error",
|
||||
"kickMessage": "Ouch! You have been kicked out of the meet!",
|
||||
"kickParticipantButton": "Kick",
|
||||
"kickParticipantDialog": "Are you sure you want to kick this participant?",
|
||||
"kickParticipantTitle": "Kick this member?",
|
||||
"kickTitle": "Kicked from meeting",
|
||||
"liveStreaming": "Live Streaming",
|
||||
"liveStreamingDisabledForGuestTooltip": "Guests can't start live streaming.",
|
||||
"liveStreamingDisabledTooltip": "Start live stream disabled.",
|
||||
"lockMessage": "Failed to lock the conference.",
|
||||
"lockRoom": "Add meeting password",
|
||||
"lockTitle": "Lock failed",
|
||||
"logoutQuestion": "Are you sure you want to logout and stop the conference?",
|
||||
"logoutTitle": "Log out",
|
||||
"maxUsersLimitReached": "The limit for maximum number of members has been reached. The conference is full. Please contact the meeting owner or try again later!",
|
||||
"maxUsersLimitReachedTitle": "Maximum members limit reached",
|
||||
"micConstraintFailedError": "Your microphone does not satisfy some of the required constraints.",
|
||||
"micNotFoundError": "Microphone was not found.",
|
||||
"micNotSendingData": "We are unable to access your microphone. Please select another device from the settings menu or try to reload the application.",
|
||||
"micNotSendingDataTitle": "Unable to access microphone",
|
||||
"micPermissionDeniedError": "You have not granted permission to use your microphone. You can still join the conference but others won't hear you. Use the camera button in the address bar to fix this.",
|
||||
"micUnknownError": "Cannot use microphone for an unknown reason.",
|
||||
"muteEveryoneDialog": "",
|
||||
"muteEveryoneElseDialog": "",
|
||||
"muteEveryoneElseTitle": "",
|
||||
"muteEveryoneSelf": "",
|
||||
"muteEveryoneStartMuted": "",
|
||||
"muteEveryoneTitle": "",
|
||||
"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.",
|
||||
"muteParticipantTitle": "Mute this member?",
|
||||
"passwordLabel": "Password",
|
||||
"passwordNotSupported": "Setting a meeting password is not supported.",
|
||||
"passwordNotSupportedTitle": "Password not supported",
|
||||
"passwordRequired": "Password required",
|
||||
"popupError": "Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser's security settings and try again.",
|
||||
"popupErrorTitle": "Pop-up blocked",
|
||||
"recording": "Recording",
|
||||
"recordingDisabledForGuestTooltip": "Guests can't start recordings.",
|
||||
"recordingDisabledTooltip": "Start recording disabled.",
|
||||
"rejoinNow": "Rejoin now",
|
||||
"remoteControlAllowedMessage": "{{user}} accepted your remote control request!",
|
||||
"remoteControlDeniedMessage": "{{user}} rejected your remote control request!",
|
||||
"remoteControlErrorMessage": "An error occurred while trying to request remote control permissions from {{user}}!",
|
||||
"remoteControlRequestMessage": "Will you allow {{user}} to remotely control your desktop?",
|
||||
"remoteControlShareScreenWarning": "Note that if you press \"Allow\" you will share your screen!",
|
||||
"remoteControlStopMessage": "The remote control session ended!",
|
||||
"remoteControlTitle": "Remote desktop control",
|
||||
"removePassword": "Remove password",
|
||||
"removeSharedVideoMsg": "Are you sure you would like to remove your shared video?",
|
||||
"removeSharedVideoTitle": "Remove shared video",
|
||||
"reservationError": "Reservation system error",
|
||||
"reservationErrorMsg": "Error code: {{code}}, message: {{msg}}",
|
||||
"retry": "Retry",
|
||||
"screenSharingAudio": "",
|
||||
"screenSharingFailedToInstall": "Oops! Your screen sharing extension failed to install.",
|
||||
"screenSharingFailedToInstallTitle": "Screen sharing extension failed to install",
|
||||
"screenSharingFirefoxPermissionDeniedError": "Something went wrong while we were trying to share your screen. Please make sure that you have given us permission to do so. ",
|
||||
"screenSharingFirefoxPermissionDeniedTitle": "Oops! We weren’t able to start screen sharing!",
|
||||
"screenSharingPermissionDeniedError": "Oops! Something went wrong with your screen sharing extension permissions. Please reload and try again.",
|
||||
"sendPrivateMessage": "",
|
||||
"sendPrivateMessageCancel": "",
|
||||
"sendPrivateMessageOk": "",
|
||||
"sendPrivateMessageTitle": "",
|
||||
"serviceUnavailable": "Service unavailable",
|
||||
"sessTerminated": "Call terminated",
|
||||
"shareVideoLinkError": "Please provide a correct video link.",
|
||||
"shareVideoTitle": "Share a video",
|
||||
"shareYourScreen": "Share your screen",
|
||||
"shareYourScreenDisabled": "Screen sharing disabled.",
|
||||
"shareYourScreenDisabledForGuest": "Guests can't screen share.",
|
||||
"startLiveStreaming": "Start live stream",
|
||||
"startRecording": "Start recording",
|
||||
"startRemoteControlErrorMessage": "An error occurred while trying to start the remote control session!",
|
||||
"stopLiveStreaming": "Stop live stream",
|
||||
"stopRecording": "Stop recording",
|
||||
"stopRecordingWarning": "Are you sure you would like to stop the recording?",
|
||||
"stopStreamingWarning": "Are you sure you would like to stop the live streaming?",
|
||||
"streamKey": "Live stream key",
|
||||
"thankYou": "Thank you for using {{appName}}!",
|
||||
"token": "token",
|
||||
"tokenAuthFailed": "Sorry, you're not allowed to join this call.",
|
||||
"tokenAuthFailedTitle": "Authentication failed",
|
||||
"transcribing": "Transcribing",
|
||||
"unlockRoom": "Remove meeting password",
|
||||
"userPassword": "user password",
|
||||
"yourEntireScreen": "Your entire screen"
|
||||
},
|
||||
"documentSharing": {
|
||||
"title": ""
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Average",
|
||||
"bad": "Bad",
|
||||
"detailsLabel": "Tell us more about it.",
|
||||
"good": "Good",
|
||||
"rateExperience": "Rate your meeting experience",
|
||||
"veryBad": "Very Bad",
|
||||
"veryGood": "Very Good"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Answer",
|
||||
"audioCallTitle": "Incoming call",
|
||||
"decline": "Dismiss",
|
||||
"productLabel": "from Jitsi Meet",
|
||||
"videoCallTitle": "Incoming video call"
|
||||
},
|
||||
"info": {
|
||||
"accessibilityLabel": "Show info",
|
||||
"addPassword": "Add password",
|
||||
"cancelPassword": "Cancel password",
|
||||
"conferenceURL": "Link:",
|
||||
"country": "Country",
|
||||
"dialANumber": "To join your meeting, dial one of these numbers and then enter the pin.",
|
||||
"dialInConferenceID": "PIN:",
|
||||
"dialInNotSupported": "Sorry, dialling in is currently not supported.",
|
||||
"dialInNumber": "Dial-in:",
|
||||
"dialInSummaryError": "Error fetching dial-in info now. Please try again later.",
|
||||
"dialInTollFree": "Toll Free",
|
||||
"genericError": "Whoops, something went wrong.",
|
||||
"inviteLiveStream": "To view the live stream of this meeting, click this link: {{url}}",
|
||||
"invitePhone": "One tap audio Dial In: {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "",
|
||||
"inviteURLFirstPartGeneral": "You are invited to join a meeting.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} is inviting you to a meeting.\n",
|
||||
"inviteURLSecondPart": "\nJoin the meeting:\n{{url}}\n",
|
||||
"label": "Meeting info",
|
||||
"liveStreamURL": "Live stream:",
|
||||
"moreNumbers": "More numbers",
|
||||
"noNumbers": "No dial-in numbers.",
|
||||
"noPassword": "None",
|
||||
"noRoom": "No room was specified to dial-in into.",
|
||||
"numbers": "Dial-in Numbers",
|
||||
"password": "Password:",
|
||||
"title": "Share",
|
||||
"tooltip": "Share link and dial-in info for this meeting"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "We stumbled a bit.",
|
||||
"retry": "Try again",
|
||||
"support": "Support",
|
||||
"supportMsg": "If this keeps happening, reach out to"
|
||||
},
|
||||
"inviteDialog": {
|
||||
"alertText": "Failed to invite some participants.",
|
||||
"header": "Invite",
|
||||
"searchCallOnlyPlaceholder": "Enter phone number",
|
||||
"searchPeopleOnlyPlaceholder": "Search for participants",
|
||||
"searchPlaceholder": "Participant or phone number",
|
||||
"send": "Send"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Focus on your video",
|
||||
"focusRemote": "Focus on another person's video",
|
||||
"fullScreen": "View or exit full screen",
|
||||
"keyboardShortcuts": "Keyboard shortcuts",
|
||||
"localRecording": "Show or hide local recording controls",
|
||||
"mute": "Mute or unmute your microphone",
|
||||
"pushToTalk": "Press to transmit",
|
||||
"raiseHand": "Raise or lower your hand",
|
||||
"showSpeakerStats": "Show participants stats",
|
||||
"toggleChat": "Open or close the chat",
|
||||
"toggleFilmstrip": "Show or hide video thumbnails",
|
||||
"toggleScreensharing": "Switch between camera and screen sharing",
|
||||
"toggleShortcuts": "Show or hide keyboard shortcuts",
|
||||
"videoMute": "Start or stop your camera",
|
||||
"videoQuality": ""
|
||||
},
|
||||
"liveStreaming": {
|
||||
"busy": "We're working on freeing streaming resources. Please try again in a few minutes.",
|
||||
"busyTitle": "All streamers are currently busy",
|
||||
"changeSignIn": "Switch accounts.",
|
||||
"choose": "Choose a live stream",
|
||||
"chooseCTA": "Choose a streaming option. You're currently logged in as {{email}}.",
|
||||
"enterStreamKey": "Enter your YouTube live stream key here.",
|
||||
"error": "Live Streaming failed. Please try again.",
|
||||
"errorAPI": "An error occurred while accessing your YouTube broadcasts. Please try logging in again.",
|
||||
"errorLiveStreamNotEnabled": "Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.",
|
||||
"expandedOff": "The live streaming has stopped",
|
||||
"expandedOn": "The meeting is currently being streamed to YouTube.",
|
||||
"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.",
|
||||
"googlePrivacyPolicy": "Google Privacy Policy",
|
||||
"invalidStreamKey": "Live stream key may be incorrect.",
|
||||
"off": "Live Streaming stopped",
|
||||
"offBy": "",
|
||||
"on": "Live Streaming started",
|
||||
"onBy": "",
|
||||
"pending": "Starting Live Stream…",
|
||||
"serviceName": "Live Streaming service",
|
||||
"signIn": "Sign in with Google",
|
||||
"signInCTA": "Sign in or enter your live stream key from YouTube.",
|
||||
"signOut": "Sign out",
|
||||
"signedInAs": "You are currently signed in as:",
|
||||
"start": "Start a live stream",
|
||||
"streamIdHelp": "What's this?",
|
||||
"title": "Live Stream",
|
||||
"unavailableTitle": "Live Streaming unavailable",
|
||||
"youtubeTerms": "YouTube terms of services"
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
"off": "Off",
|
||||
"on": "On",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"dialogTitle": "Local Recording Controls",
|
||||
"duration": "Duration",
|
||||
"durationNA": "N/A",
|
||||
"encoding": "Encoding",
|
||||
"label": "LOR",
|
||||
"labelToolTip": "Local recording is engaged",
|
||||
"localRecording": "Local Recording",
|
||||
"me": "Me",
|
||||
"messages": {
|
||||
"engaged": "Local recording engaged.",
|
||||
"finished": "Recording session {{token}} finished. Please send the recorded file to the moderator.",
|
||||
"finishedModerator": "Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.",
|
||||
"notModerator": "You are not the moderator. You cannot start or stop local recording."
|
||||
},
|
||||
"moderator": "Moderator",
|
||||
"no": "No",
|
||||
"participant": "Participant",
|
||||
"participantStats": "Participant Stats",
|
||||
"sessionToken": "Session Token",
|
||||
"start": "Start Recording",
|
||||
"stop": "Stop Recording",
|
||||
"yes": "Yes"
|
||||
},
|
||||
"lockRoomPassword": "password",
|
||||
"lockRoomPasswordUppercase": "Password",
|
||||
"me": "me",
|
||||
"notify": {
|
||||
"connectedOneMember": "{{name}} joined the meeting",
|
||||
"connectedThreePlusMembers": "{{name}} and {{count}} others joined the meeting",
|
||||
"connectedTwoMembers": "{{first}} and {{second}} joined the meeting",
|
||||
"disconnected": "disconnected",
|
||||
"focus": "Conference focus",
|
||||
"focusFail": "{{component}} not available - retry in {{ms}} sec",
|
||||
"grantedTo": "Moderator rights granted to {{to}}!",
|
||||
"invitedOneMember": "{{name}} has been invited",
|
||||
"invitedThreePlusMembers": "{{name}} and {{count}} others have been invited",
|
||||
"invitedTwoMembers": "{{first}} and {{second}} have been invited",
|
||||
"kickParticipant": "{{kicked}} was kicked by {{kicker}}",
|
||||
"me": "Me",
|
||||
"moderator": "Moderator rights granted!",
|
||||
"muted": "You have started the conversation muted.",
|
||||
"mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.",
|
||||
"mutedRemotelyTitle": "You have been muted by {{participantDisplayName}}!",
|
||||
"mutedTitle": "You're muted!",
|
||||
"newDeviceAction": "Use",
|
||||
"newDeviceAudioTitle": "New audio device detected",
|
||||
"newDeviceCameraTitle": "New camera detected",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant",
|
||||
"raisedHand": "{{name}} would like to speak.",
|
||||
"somebody": "Somebody",
|
||||
"startSilentDescription": "Rejoin the meeting to enable audio",
|
||||
"startSilentTitle": "You joined with no audio output!",
|
||||
"suboptimalBrowserWarning": "We are afraid your meeting experience isn't going to be that great here. We are looking for ways to improve this, but until then please try using one of the <a href='{{recommendedBrowserPageLink}}' target='_blank'>fully supported browsers</a>.",
|
||||
"suboptimalExperienceDescription": "Eer... we are afraid your experience with {{appName}} isn't going to be that great here. We are looking for ways to improve this but, until then, please try using one of the <a href='{{recommendedBrowserPageLink}}' target='_blank'>fully supported browsers</a>.",
|
||||
"suboptimalExperienceTitle": "Browser Warning",
|
||||
"unmute": "Unmute"
|
||||
},
|
||||
"passwordDigitsOnly": "Up to {{number}} digits",
|
||||
"passwordSetRemotely": "set by another member",
|
||||
"poweredby": "powered by",
|
||||
"presenceStatus": {
|
||||
"busy": "Busy",
|
||||
"calling": "Calling…",
|
||||
"connected": "Connected",
|
||||
"connecting": "Connecting…",
|
||||
"connecting2": "Connecting*...",
|
||||
"disconnected": "Disconnected",
|
||||
"expired": "Expired",
|
||||
"ignored": "Ignored",
|
||||
"initializingCall": "Initialising Call…",
|
||||
"invited": "Invited",
|
||||
"rejected": "Rejected",
|
||||
"ringing": "Ringing…"
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Set your display name",
|
||||
"setEmailInput": "Enter email",
|
||||
"setEmailLabel": "Set your Gravatar email",
|
||||
"title": "Profile"
|
||||
},
|
||||
"raisedHand": "Would like to speak",
|
||||
"recording": {
|
||||
"authDropboxText": "Upload to Dropbox",
|
||||
"availableSpace": "Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)",
|
||||
"beta": "BETA",
|
||||
"busy": "We're working on freeing recording resources. Please try again in a few minutes.",
|
||||
"busyTitle": "All recorders are currently busy",
|
||||
"error": "Recording failed. Please try again.",
|
||||
"expandedOff": "Recording has stopped",
|
||||
"expandedOn": "The meeting is currently being recorded.",
|
||||
"expandedPending": "Recording is being started…",
|
||||
"failedToStart": "Recording failed to start",
|
||||
"fileSharingdescription": "Share recording with meeting participants",
|
||||
"live": "LIVE",
|
||||
"loggedIn": "Logged in as {{userName}}",
|
||||
"off": "Recording stopped",
|
||||
"offBy": "{{name}} stopped the recording",
|
||||
"on": "Recording started",
|
||||
"onBy": "{{name}} started the recording",
|
||||
"pending": "Preparing to record the meeting…",
|
||||
"rec": "REC",
|
||||
"serviceDescription": "Your recording will be saved by the recording service",
|
||||
"serviceName": "Recording service",
|
||||
"signIn": "Sign in",
|
||||
"signOut": "Sign out",
|
||||
"title": "Recording",
|
||||
"unavailable": "Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.",
|
||||
"unavailableTitle": "Recording unavailable"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Pull to refresh"
|
||||
},
|
||||
"settings": {
|
||||
"calendar": {
|
||||
"about": "The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.",
|
||||
"disconnect": "Disconnect",
|
||||
"microsoftSignIn": "Sign in with Microsoft",
|
||||
"signedIn": "Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.",
|
||||
"title": "Calendar"
|
||||
},
|
||||
"devices": "Devices",
|
||||
"followMe": "Everyone follows me",
|
||||
"language": "Language",
|
||||
"loggedIn": "Logged in as {{name}}",
|
||||
"microphones": "Microphones",
|
||||
"moderator": "Moderator",
|
||||
"more": "More",
|
||||
"name": "Name",
|
||||
"noDevice": "None",
|
||||
"selectAudioOutput": "Audio output",
|
||||
"selectCamera": "Camera",
|
||||
"selectMic": "Microphone",
|
||||
"speakers": "Speakers",
|
||||
"startAudioMuted": "Everyone starts muted",
|
||||
"startVideoMuted": "Everyone starts hidden",
|
||||
"title": "Settings"
|
||||
},
|
||||
"settingsView": {
|
||||
"advanced": "Advanced",
|
||||
"alertOk": "OK",
|
||||
"alertTitle": "Warning",
|
||||
"alertURLText": "The entered server URL is invalid",
|
||||
"buildInfoSection": "Build Information",
|
||||
"conferenceSection": "Conference",
|
||||
"disableCallIntegration": "Disable native call integration",
|
||||
"disableP2P": "Disable Peer-To-Peer mode",
|
||||
"displayName": "Display name",
|
||||
"email": "Email",
|
||||
"header": "Settings",
|
||||
"profileSection": "Profile",
|
||||
"serverURL": "Server URL",
|
||||
"showAdvanced": "Show advanced settings",
|
||||
"startWithAudioMuted": "Start with audio muted",
|
||||
"startWithVideoMuted": "Start with video muted",
|
||||
"version": "Version"
|
||||
},
|
||||
"share": {
|
||||
"dialInfoText": "\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}",
|
||||
"mainText": "Click the following link to join the meeting:\n{{roomUrl}}"
|
||||
},
|
||||
"speaker": "Speaker",
|
||||
"speakerStats": {
|
||||
"hours": "{{count}}h",
|
||||
"minutes": "{{count}}m",
|
||||
"name": "Name",
|
||||
"seconds": "{{count}}s",
|
||||
"speakerStats": "Participants Stats",
|
||||
"speakerTime": "Speaker Time"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"title": "{{app}} needs to use your microphone and camera."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"rejoinKeyTitle": "Rejoin",
|
||||
"text": "Press the <i>Rejoin</i> button to reconnect.",
|
||||
"title": "Your video call was interrupted because this computer went to sleep."
|
||||
},
|
||||
"toolbar": {
|
||||
"Settings": "Settings",
|
||||
"accessibilityLabel": {
|
||||
"Settings": "Toggle settings",
|
||||
"audioOnly": "Toggle audio only",
|
||||
"audioRoute": "Select the sound device",
|
||||
"callQuality": "Manage call quality",
|
||||
"cc": "Toggle subtitles",
|
||||
"chat": "Toggle chat window",
|
||||
"document": "Toggle shared document",
|
||||
"download": "Download our apps",
|
||||
"feedback": "Leave feedback",
|
||||
"fullScreen": "Toggle full screen",
|
||||
"hangup": "Leave the call",
|
||||
"help": "Help",
|
||||
"invite": "Invite people",
|
||||
"kick": "Kick participant",
|
||||
"localRecording": "Toggle local recording controls",
|
||||
"lockRoom": "Toggle meeting password",
|
||||
"moreActions": "Toggle more actions menu",
|
||||
"moreActionsMenu": "More actions menu",
|
||||
"moreOptions": "Show more options",
|
||||
"mute": "Toggle mute audio",
|
||||
"muteEveryone": "Mute everyone",
|
||||
"pip": "Toggle Picture-in-Picture mode",
|
||||
"privateMessage": "Send private message",
|
||||
"profile": "Edit your profile",
|
||||
"raiseHand": "Toggle raise hand",
|
||||
"recording": "Toggle recording",
|
||||
"remoteMute": "Mute participant",
|
||||
"shareRoom": "Invite someone",
|
||||
"shareYourScreen": "Toggle screenshare",
|
||||
"sharedvideo": "Toggle video sharing",
|
||||
"shortcuts": "Toggle shortcuts",
|
||||
"show": "Show on stage",
|
||||
"speakerStats": "Toggle participants statistics",
|
||||
"tileView": "Toggle tile view",
|
||||
"toggleCamera": "Toggle camera",
|
||||
"videoblur": "",
|
||||
"videomute": "Toggle mute video"
|
||||
},
|
||||
"addPeople": "Add people to your call",
|
||||
"audioOnlyOff": "Disable audio only mode",
|
||||
"audioOnlyOn": "Enable audio only mode",
|
||||
"audioRoute": "Select the sound device",
|
||||
"authenticate": "Authenticate",
|
||||
"callQuality": "Manage call quality",
|
||||
"chat": "Open / Close chat",
|
||||
"closeChat": "Close chat",
|
||||
"documentClose": "Close shared document",
|
||||
"documentOpen": "Open shared document",
|
||||
"enterFullScreen": "View full screen",
|
||||
"enterTileView": "Enter tile view",
|
||||
"exitFullScreen": "Exit full screen",
|
||||
"exitTileView": "Exit tile view",
|
||||
"feedback": "Leave feedback",
|
||||
"hangup": "Leave",
|
||||
"invite": "Invite people",
|
||||
"login": "Log in",
|
||||
"logout": "Log out",
|
||||
"lowerYourHand": "Lower your hand",
|
||||
"moreActions": "More actions",
|
||||
"mute": "Mute / Unmute",
|
||||
"openChat": "Open chat",
|
||||
"pip": "Enter Picture-in-Picture mode",
|
||||
"profile": "Edit your profile",
|
||||
"raiseHand": "Raise / Lower your hand",
|
||||
"raiseYourHand": "Raise your hand",
|
||||
"shareRoom": "Invite someone",
|
||||
"sharedvideo": "Share video",
|
||||
"shortcuts": "View shortcuts",
|
||||
"speakerStats": "Participants stats",
|
||||
"startScreenSharing": "Start screen sharing",
|
||||
"startSubtitles": "Start subtitles",
|
||||
"startvideoblur": "",
|
||||
"stopScreenSharing": "Stop screen sharing",
|
||||
"stopSharedVideo": "Stop video",
|
||||
"stopSubtitles": "Stop subtitles",
|
||||
"stopvideoblur": "",
|
||||
"talkWhileMutedPopup": "Trying to speak? You are muted.",
|
||||
"tileViewToggle": "Toggle tile view",
|
||||
"toggleCamera": "Toggle camera",
|
||||
"videomute": "Start / Stop camera"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Start / Stop subtitles",
|
||||
"error": "Transcribing failed. Please try again.",
|
||||
"expandedLabel": "Transcribing is currently on",
|
||||
"failedToStart": "Transcribing failed to start",
|
||||
"labelToolTip": "The meeting is being transcribed",
|
||||
"off": "Transcribing stopped",
|
||||
"pending": "Preparing to transcribe the meeting…",
|
||||
"start": "Start showing subtitles",
|
||||
"stop": "Stop showing subtitles",
|
||||
"tr": "TR"
|
||||
},
|
||||
"userMedia": {
|
||||
"androidGrantPermissions": "Select <b><i>Allow</i></b> when your browser asks for permissions.",
|
||||
"chromeGrantPermissions": "Select <b><i>Allow</i></b> when your browser asks for permissions.",
|
||||
"edgeGrantPermissions": "Select <b><i>Yes</i></b> when your browser asks for permissions.",
|
||||
"electronGrantPermissions": "Please grant permissions to use your camera and microphone",
|
||||
"firefoxGrantPermissions": "Select <b><i>Share Selected Device</i></b> when your browser asks for permissions.",
|
||||
"iexplorerGrantPermissions": "Select <b><i>OK</i></b> when your browser asks for permissions.",
|
||||
"nwjsGrantPermissions": "Please grant permissions to use your camera and microphone",
|
||||
"operaGrantPermissions": "Select <b><i>Allow</i></b> when your browser asks for permissions.",
|
||||
"react-nativeGrantPermissions": "Select <b><i>Allow</i></b> when your browser asks for permissions.",
|
||||
"safariGrantPermissions": "Select <b><i>OK</i></b> when your browser asks for permissions."
|
||||
},
|
||||
"videoSIPGW": {
|
||||
"busy": "We're working on freeing resources. Please try again in a few minutes.",
|
||||
"busyTitle": "The Room service is currently busy",
|
||||
"errorAlreadyInvited": "{{displayName}} already invited",
|
||||
"errorInvite": "Conference not established yet. Please try again later.",
|
||||
"errorInviteFailed": "We're working on resolving the issue. Please try again later.",
|
||||
"errorInviteFailedTitle": "Inviting {{displayName}} failed",
|
||||
"errorInviteTitle": "Error inviting room",
|
||||
"pending": "{{displayName}} has been invited"
|
||||
},
|
||||
"videoStatus": {
|
||||
"audioOnly": "AUD",
|
||||
"audioOnlyExpanded": "You are in audio only mode. This mode saves bandwidth but you won't see videos of others.",
|
||||
"callQuality": "Call Quality",
|
||||
"hd": "HD",
|
||||
"highDefinition": "High definition",
|
||||
"labelTooiltipNoVideo": "No video",
|
||||
"labelTooltipAudioOnly": "Audio-only mode enabled",
|
||||
"ld": "LD",
|
||||
"lowDefinition": "Low definition",
|
||||
"onlyAudioAvailable": "Only audio is available",
|
||||
"onlyAudioSupported": "We only support audio in this browser.",
|
||||
"sd": "SD",
|
||||
"standardDefinition": "Standard definition"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"domute": "Mute",
|
||||
"flip": "Flip",
|
||||
"kick": "Kick out",
|
||||
"moderator": "Moderator",
|
||||
"mute": "Member is muted",
|
||||
"muted": "Muted",
|
||||
"remoteControl": "Remote control",
|
||||
"show": "",
|
||||
"videomute": "Member has stopped the camera"
|
||||
},
|
||||
"welcomepage": {
|
||||
"accessibilityLabel": {
|
||||
"join": "Tap to join",
|
||||
"roomname": "Enter room name"
|
||||
},
|
||||
"appDescription": "Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.",
|
||||
"audioVideoSwitch": {
|
||||
"audio": "Voice",
|
||||
"video": "Video"
|
||||
},
|
||||
"calendar": "Calendar",
|
||||
"connectCalendarButton": "Connect your calendar",
|
||||
"connectCalendarText": "",
|
||||
"enterRoomTitle": "Start a new meeting",
|
||||
"go": "GO",
|
||||
"info": "Info",
|
||||
"join": "JOIN",
|
||||
"privacy": "Privacy",
|
||||
"recentList": "Recent",
|
||||
"recentListDelete": "Delete",
|
||||
"recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",
|
||||
"reducedUIText": "",
|
||||
"roomname": "Enter room name",
|
||||
"roomnameHint": "Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.",
|
||||
"sendFeedback": "Send feedback",
|
||||
"terms": "Terms",
|
||||
"title": "Secure, fully featured, and completely free video conferencing"
|
||||
}
|
||||
}
|
||||
@@ -561,8 +561,6 @@
|
||||
"youtubeTerms": "Uzkondiĉoj de YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Akcepti",
|
||||
"admitAll": "Akcepti ĉion",
|
||||
"allow": "Permesi",
|
||||
"backToKnockModeButton": "Petu por aliĝi",
|
||||
"chat": "Babilejo",
|
||||
@@ -597,8 +595,6 @@
|
||||
"notificationTitle": "Atendejo",
|
||||
"passwordField": "Entajpu pasvorton de la renkontiĝo",
|
||||
"passwordJoinButton": "Aliĝi",
|
||||
"reject": "Malakceptu",
|
||||
"rejectAll": "Malakceptu ĉion",
|
||||
"title": "Atendejo",
|
||||
"toggleLabel": "Ŝaltu atendejon"
|
||||
},
|
||||
@@ -725,6 +721,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Akcepti",
|
||||
"admitAll": "Akcepti ĉion",
|
||||
"allow": "Al la partoprenantoj permesi:",
|
||||
"allowVideo": "Permesi kameraon",
|
||||
"askUnmute": "Peti malsilentigi",
|
||||
@@ -737,6 +735,7 @@
|
||||
"mute": "Silentigi",
|
||||
"muteAll": "Silentigi ĉiujn",
|
||||
"muteEveryoneElse": "Silentigi ĉiujn aliajn",
|
||||
"reject": "Malakceptu",
|
||||
"stopEveryonesVideo": "Ĉesigu ĉies videaĵon",
|
||||
"stopVideo": "Ĉesigu la videaĵon",
|
||||
"unblockEveryoneMicCamera": "Malbloku ĉies mikrofonon kaj kameraon",
|
||||
|
||||
@@ -598,8 +598,6 @@
|
||||
"youtubeTerms": "Términos de servicios de YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Admitir",
|
||||
"admitAll": "Admitir todo",
|
||||
"backToKnockModeButton": "No hay contraseña, pide permiso para entrar.",
|
||||
"chat": "Chat",
|
||||
"dialogTitle": "Sala de espera",
|
||||
@@ -633,8 +631,6 @@
|
||||
"notificationTitle": "Sala de espera",
|
||||
"passwordField": "Introduce la contraseña de la reunión",
|
||||
"passwordJoinButton": "Entrar",
|
||||
"reject": "Rechazar",
|
||||
"rejectAll": "Rechazar todo",
|
||||
"title": "Sala de espera",
|
||||
"toggleLabel": "Activar sala de espera"
|
||||
},
|
||||
@@ -768,6 +764,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Admitir",
|
||||
"admitAll": "Admitir todo",
|
||||
"allow": "Permitir a los asistentes:",
|
||||
"allowVideo": "Permitir vídeo",
|
||||
"askUnmute": "Pida que le quiten el silencio",
|
||||
@@ -778,8 +776,9 @@
|
||||
"moreModerationControls": "Más controles de moderación",
|
||||
"moreParticipantOptions": "Más opciones de participantes",
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silenciar a todos los demás",
|
||||
"muteAll": "Silenciar a todos",
|
||||
"muteEveryoneElse": "Silenciar al resto",
|
||||
"reject": "Rechazar",
|
||||
"stopEveryonesVideo": "Detener el vídeo de todos",
|
||||
"stopVideo": "Detener el vídeo",
|
||||
"unblockEveryoneMicCamera": "Desbloquear el micrófono y la cámara de todos",
|
||||
@@ -1361,7 +1360,7 @@
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Información de conexión",
|
||||
"domute": "Silenciar",
|
||||
"domuteOthers": "Silenciar a todos",
|
||||
"domuteOthers": "Silenciar a todos los demás",
|
||||
"domuteVideo": "Desactivar la cámara",
|
||||
"domuteVideoOfOthers": "Desactivar la cámara de todos los demás",
|
||||
"flip": "Voltear",
|
||||
|
||||
@@ -521,8 +521,6 @@
|
||||
"youtubeTerms": "Términos de servicios de YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Admitir",
|
||||
"admitAll": "Admitir todo",
|
||||
"allow": "permitir",
|
||||
"backToKnockModeButton": "No hay contraseña, pide permiso para entrar.",
|
||||
"dialogTitle": "Sala de espera",
|
||||
@@ -553,8 +551,6 @@
|
||||
"notificationTitle": "Sala de espera",
|
||||
"passwordField": "Introduce la contraseña de la reunión",
|
||||
"passwordJoinButton": "Entrar",
|
||||
"reject": "Rechazar",
|
||||
"rejectAll": "Rechazar todo",
|
||||
"title": "Sala de espera",
|
||||
"toggleLabel": "Activar sala de espera"
|
||||
},
|
||||
@@ -652,6 +648,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Admitir",
|
||||
"admitAll": "Admitir todo",
|
||||
"allow": "Permitir a los asistentes:",
|
||||
"allowVideo": "Permitir vídeo",
|
||||
"askUnmute": "Pida que le quiten el silencio",
|
||||
@@ -661,6 +659,7 @@
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silenciar a todos los demás",
|
||||
"muteEveryoneElse": "Silenciar al resto",
|
||||
"reject": "Rechazar",
|
||||
"stopEveryonesVideo": "Detener el vídeo de todos",
|
||||
"stopVideo": "Detener el vídeo",
|
||||
"unblockEveryoneMicCamera": "Desbloquear el micrófono y la cámara de todos",
|
||||
|
||||
@@ -463,8 +463,6 @@
|
||||
"youtubeTerms": "YouTuberen erabilpen baldintzak"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Onartu",
|
||||
"admitAll": "Onartu guztiak",
|
||||
"allow": "Baimendu",
|
||||
"backToKnockModeButton": "Ez du pasahitza erabili, baina sartzea eskatu du",
|
||||
"dialogTitle": "Itxaron-gela modua",
|
||||
@@ -494,7 +492,6 @@
|
||||
"notificationTitle": "Itxaron-gela",
|
||||
"passwordField": "Idatzi bileraren pasahitza",
|
||||
"passwordJoinButton": "Sartu",
|
||||
"reject": "Baztertu",
|
||||
"title": "Itxaron-gela",
|
||||
"toggleLabel": "Itxaron-gela aktibatu"
|
||||
},
|
||||
@@ -576,8 +573,11 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Onartu",
|
||||
"admitAll": "Onartu guztiak",
|
||||
"invite": "Gonbidatu norbait",
|
||||
"muteAll": "Ixilarazi guztiak",
|
||||
"reject": "Baztertu",
|
||||
"stopVideo": "Gelditu bideoa"
|
||||
},
|
||||
"close": "Itxi",
|
||||
|
||||
@@ -606,8 +606,6 @@
|
||||
"youtubeTerms": "شرایط خدمات یوتیوب"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "پذیرفتن",
|
||||
"admitAll": "پذیرفتن همه",
|
||||
"backToKnockModeButton": "درخواست برای پیوستن",
|
||||
"chat": "گپ",
|
||||
"dialogTitle": "حالت اتاق انتظار",
|
||||
@@ -641,8 +639,6 @@
|
||||
"notificationTitle": "اتاق انتظار",
|
||||
"passwordField": "گذرواژهٔ جلسه را وارد کنید",
|
||||
"passwordJoinButton": "پیوستن",
|
||||
"reject": "ردکردن",
|
||||
"rejectAll": "ردکردن همه",
|
||||
"title": "اتاق انتظار",
|
||||
"toggleLabel": "فعالکردن اتاق انتظار"
|
||||
},
|
||||
@@ -776,6 +772,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "پذیرفتن",
|
||||
"admitAll": "پذیرفتن همه",
|
||||
"allow": "به حاضران اجازه دهید:",
|
||||
"allowVideo": "اجازهٔ ویدیو",
|
||||
"askUnmute": "درخواست وصلکردن صدا",
|
||||
@@ -788,6 +786,7 @@
|
||||
"mute": "بیصداکردن",
|
||||
"muteAll": "بیصداکردن همه",
|
||||
"muteEveryoneElse": "بیصداکردن بقیه افراد",
|
||||
"reject": "ردکردن",
|
||||
"stopEveryonesVideo": "توقف ویدیوی همه",
|
||||
"stopVideo": "توقف ویدیو",
|
||||
"unblockEveryoneMicCamera": "رفع مسدودی میکروفون و دوربین همه",
|
||||
|
||||
@@ -584,8 +584,6 @@
|
||||
"youtubeTerms": "Conditions d'utilisation de YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Accepter",
|
||||
"admitAll": "Tout accepter",
|
||||
"backToKnockModeButton": "Aucun mot de passe, demander à rejoindre plutôt",
|
||||
"chat": "Chat",
|
||||
"dialogTitle": "Mode salle d'attente",
|
||||
@@ -619,8 +617,6 @@
|
||||
"notificationTitle": "Salle d'attente",
|
||||
"passwordField": "Veuillez saisir le mot de passe de la réunion",
|
||||
"passwordJoinButton": "Rejoindre",
|
||||
"reject": "Refuser",
|
||||
"rejectAll": "Refuser tout",
|
||||
"title": "Salle d'attente",
|
||||
"toggleLabel": "Activer la salle d'attente"
|
||||
},
|
||||
@@ -751,6 +747,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Accepter",
|
||||
"admitAll": "Tout accepter",
|
||||
"allow": "Autoriser les participants à:",
|
||||
"allowVideo": "permettre la vidéo",
|
||||
"askUnmute": "Demander de réactiver le micro",
|
||||
@@ -763,6 +761,7 @@
|
||||
"mute": "Couper le micro",
|
||||
"muteAll": "Couper le micro de tout le monde",
|
||||
"muteEveryoneElse": "Couper le micro de tous les autres",
|
||||
"reject": "Refuser",
|
||||
"stopEveryonesVideo": "Couper toutes les caméras",
|
||||
"stopVideo": "Couper la vidéo",
|
||||
"unblockEveryoneMicCamera": "Débloquer tous les micros et caméras",
|
||||
|
||||
@@ -482,7 +482,6 @@
|
||||
"notificationTitle": "लॉबी",
|
||||
"passwordField": "मीटिंग पासवर्ड दर्ज करें",
|
||||
"passwordJoinButton": "Join",
|
||||
"reject": "अस्वीकार",
|
||||
"title": "लॉबी",
|
||||
"toggleLabel": "लॉबी सक्षम करें"
|
||||
},
|
||||
@@ -559,6 +558,11 @@
|
||||
"videoMutedRemotelyDescription": "You can always turn it on again.",
|
||||
"videoMutedRemotelyTitle": "आपका कैमरा {{participantDisplayName}}द्वारा अक्षम कर दिया गया है!"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"reject": "अस्वीकार"
|
||||
}
|
||||
},
|
||||
"passwordDigitsOnly": "Up to {{number}} digits",
|
||||
"passwordSetRemotely": "दूसरे प्रतिभागी द्वारा निर्धारित",
|
||||
"poweredby": "powered by",
|
||||
|
||||
@@ -561,8 +561,6 @@
|
||||
"youtubeTerms": "Uvjeti YouTube usluge"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Prihvati",
|
||||
"admitAll": "Prihvati sve",
|
||||
"allow": "Dopusti",
|
||||
"backToKnockModeButton": "Zatraži pridruživanje",
|
||||
"chat": "Chat",
|
||||
@@ -597,8 +595,6 @@
|
||||
"notificationTitle": "Predvorje",
|
||||
"passwordField": "Upiši lozinku sastanka",
|
||||
"passwordJoinButton": "Pridruži se",
|
||||
"reject": "Odbij",
|
||||
"rejectAll": "Odbij sve",
|
||||
"title": "Predvorje",
|
||||
"toggleLabel": "Uključi predvorje"
|
||||
},
|
||||
@@ -725,6 +721,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Prihvati",
|
||||
"admitAll": "Prihvati sve",
|
||||
"allow": "Dozvoli sudionicima da:",
|
||||
"allowVideo": "Dozvole video",
|
||||
"askUnmute": "Zatraže isključivanje zvuka",
|
||||
@@ -737,6 +735,7 @@
|
||||
"mute": "Isključe zvuk",
|
||||
"muteAll": "Isključe zvuk svih sudionika",
|
||||
"muteEveryoneElse": "Isključe zvuk svih drugih",
|
||||
"reject": "Odbij",
|
||||
"stopEveryonesVideo": "Prekinu videa svih",
|
||||
"stopVideo": "Prekinu video",
|
||||
"unblockEveryoneMicCamera": "Deblokiraju mikrofone i kamere svih sudionika",
|
||||
|
||||
@@ -551,8 +551,6 @@
|
||||
"youtubeTerms": "wuměnjenja wužiwanja na YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "přizwolić",
|
||||
"admitAll": "wšitko přizwolić",
|
||||
"allow": "přiwzać",
|
||||
"backToKnockModeButton": "žane hesło, město toho wo přistup prosyć",
|
||||
"chat": "chat",
|
||||
@@ -587,8 +585,6 @@
|
||||
"notificationTitle": "lobby",
|
||||
"passwordField": "konferencne hesło zapodać",
|
||||
"passwordJoinButton": "přistupić",
|
||||
"reject": "wotpokazać",
|
||||
"rejectAll": "wšitko wotpokazać",
|
||||
"title": "lobby",
|
||||
"toggleLabel": "lobby aktiwěrować"
|
||||
},
|
||||
@@ -710,6 +706,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "přizwolić",
|
||||
"admitAll": "wšitko přizwolić",
|
||||
"allow": "přitomnym dowolić",
|
||||
"allowVideo": "kameru zaswěčić",
|
||||
"askUnmute": "wo wotstajenje šaltowanja na němosć prosyć",
|
||||
@@ -722,6 +720,7 @@
|
||||
"mute": "něme šaltować",
|
||||
"muteAll": "wšěch němych šaltować",
|
||||
"muteEveryoneElse": "wšěch druhich němych šaltować",
|
||||
"reject": "wotpokazać",
|
||||
"stopEveryonesVideo": "wšitke kamery hasnyć",
|
||||
"stopVideo": "kameru hasnyć",
|
||||
"unblockEveryoneMicCamera": "kameru a mikrofon wšěch wočinić",
|
||||
|
||||
@@ -462,8 +462,6 @@
|
||||
"youtubeTerms": "YouTube szolgáltatási feltételek"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Engedélyezés",
|
||||
"admitAll": "Mindet engedélyez",
|
||||
"allow": "Engedélyez",
|
||||
"backToKnockModeButton": "Csatlakozási kérelem küldése",
|
||||
"chat": "Chat",
|
||||
@@ -495,8 +493,6 @@
|
||||
"notificationTitle": "Lobby",
|
||||
"passwordField": "Adja meg az értekezlet jelszavát",
|
||||
"passwordJoinButton": "Csatlakozás",
|
||||
"reject": "Elutasít",
|
||||
"rejectAll": "Mindet elutasít",
|
||||
"toggleLabel": "Lobby engedélyezése"
|
||||
},
|
||||
"localRecording": {
|
||||
@@ -579,6 +575,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Engedélyezés",
|
||||
"admitAll": "Mindet engedélyez",
|
||||
"allow": "Engedélyezés a résztvevőknek, hogy:",
|
||||
"allowVideo": "Videó engedélyezése",
|
||||
"askUnmute": "Kérje a némítás feloldását",
|
||||
@@ -591,6 +589,7 @@
|
||||
"mute": "Némítás",
|
||||
"muteAll": "Mindenkit elnémít",
|
||||
"muteEveryoneElse": "Mute everyone else",
|
||||
"reject": "Elutasít",
|
||||
"stopEveryonesVideo": "Mindenki videójának leállítása",
|
||||
"stopVideo": "Videó leállítása",
|
||||
"unblockEveryoneMicCamera": "Unblock everyone's mic and camera",
|
||||
|
||||
@@ -561,8 +561,6 @@
|
||||
"youtubeTerms": "Condizioni di utilizzo di YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Ammetti",
|
||||
"admitAll": "Ammetti tutti",
|
||||
"allow": "Autorizza",
|
||||
"backToKnockModeButton": "Nessuna password, richiedi l'accesso",
|
||||
"chat": "Conversazione",
|
||||
@@ -597,8 +595,6 @@
|
||||
"notificationTitle": "Sala d'attesa",
|
||||
"passwordField": "Inserisci la password della riunione",
|
||||
"passwordJoinButton": "Entra",
|
||||
"reject": "Respingi",
|
||||
"rejectAll": "Respingi tutti",
|
||||
"title": "Sala d'attesa",
|
||||
"toggleLabel": "Attiva sala d'attesa"
|
||||
},
|
||||
@@ -725,6 +721,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Ammetti",
|
||||
"admitAll": "Ammetti tutti",
|
||||
"allow": "Permetti ai partecipanti di:",
|
||||
"allowVideo": "Autorizza video",
|
||||
"askUnmute": "Chiedi di accendere microfono",
|
||||
@@ -737,6 +735,7 @@
|
||||
"mute": "Silenzia",
|
||||
"muteAll": "Silenzia tutti",
|
||||
"muteEveryoneElse": "Silenzia tutti gli altri",
|
||||
"reject": "Respingi",
|
||||
"stopEveryonesVideo": "Ferma il video di tutti",
|
||||
"stopVideo": "Ferma il video",
|
||||
"unblockEveryoneMicCamera": "Sblocca audio e video a tutti",
|
||||
|
||||
@@ -525,8 +525,6 @@
|
||||
"youtubeTerms": "YouTube サービス利用規約"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "許可",
|
||||
"admitAll": "全員許可",
|
||||
"allow": "許可",
|
||||
"backToKnockModeButton": "参加を依頼",
|
||||
"dialogTitle": "ロビーモード",
|
||||
@@ -557,8 +555,6 @@
|
||||
"notificationTitle": "ロビー",
|
||||
"passwordField": "ミーティングパスワードを入力してください",
|
||||
"passwordJoinButton": "参加",
|
||||
"reject": "却下",
|
||||
"rejectAll": "全員却下",
|
||||
"title": "ロビー",
|
||||
"toggleLabel": "ロビーを有効"
|
||||
},
|
||||
@@ -671,6 +667,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "許可",
|
||||
"admitAll": "全員許可",
|
||||
"allow": "参加者に次のことを許可:",
|
||||
"allowVideo": "ビデオを許可",
|
||||
"askUnmute": "ミュート解除を依頼",
|
||||
@@ -683,6 +681,7 @@
|
||||
"mute": "ミュート",
|
||||
"muteAll": "全員をミュート",
|
||||
"muteEveryoneElse": "他のすべての人をミュート",
|
||||
"reject": "却下",
|
||||
"stopEveryonesVideo": "全員のビデオを停止",
|
||||
"stopVideo": "ビデオを停止",
|
||||
"unblockEveryoneMicCamera": "全員のマイクとビデオのブロックを解除",
|
||||
|
||||
@@ -498,8 +498,6 @@
|
||||
"youtubeTerms": "Tiwtilin n yimeẓla n Youtube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Steεref",
|
||||
"admitAll": "Steεref s kullec",
|
||||
"allow": "Sireg",
|
||||
"backToKnockModeButton": "Ulac awal uffir, suter attekki deg ubdil-is",
|
||||
"dialogTitle": "Askar Lobby",
|
||||
@@ -530,8 +528,6 @@
|
||||
"notificationTitle": "Taxxamt n uraǧu",
|
||||
"passwordField": "Sekcem awal uffir n temlilit",
|
||||
"passwordJoinButton": "Semlil",
|
||||
"reject": "Agi",
|
||||
"rejectAll": "Agi akk",
|
||||
"title": "Taxxamt n uraǧu",
|
||||
"toggleLabel": "Rmed Lobby"
|
||||
},
|
||||
@@ -628,6 +624,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Steεref",
|
||||
"admitAll": "Steεref s kullec",
|
||||
"allow": "Sireg i yimttekkiyen ad:",
|
||||
"allowVideo": "Sireg tavidyut",
|
||||
"askUnmute": "Suter tririt n ṣṣut",
|
||||
@@ -637,6 +635,7 @@
|
||||
"mute": "Asusam",
|
||||
"muteAll": "Sgugem meṛṛa",
|
||||
"muteEveryoneElse": "Sgugem-iten i meṛṛa",
|
||||
"reject": "Agi",
|
||||
"stopEveryonesVideo": "Seḥbes tavidyut n yal yiwen",
|
||||
"stopVideo": "Seḥbes tavidyut n Youtube",
|
||||
"unblockEveryoneMicCamera": "Serreḥ i usawaḍ d tkamiṛat n yal yiwen",
|
||||
|
||||
1225
lang/main-lv.json
1225
lang/main-lv.json
File diff suppressed because it is too large
Load Diff
@@ -464,7 +464,6 @@
|
||||
"notificationTitle": "ലോബി",
|
||||
"passwordField": "മീറ്റിംഗ് പാസ്വേഡ് നൽകുക",
|
||||
"passwordJoinButton": "ചേരുക",
|
||||
"reject": "നിരസിക്കുക",
|
||||
"title": "ലോബി",
|
||||
"toggleLabel": "ലോബി പ്രവർത്തനക്ഷമമാക്കുക"
|
||||
},
|
||||
@@ -539,6 +538,11 @@
|
||||
"suboptimalExperienceTitle": "ബ്രൗസർ മുന്നറിയിപ്പ്",
|
||||
"unmute": "അൺമ്യൂട്ട്"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"reject": "നിരസിക്കുക"
|
||||
}
|
||||
},
|
||||
"passwordDigitsOnly": "{{number}} അക്കങ്ങൾ വരെ",
|
||||
"passwordSetRemotely": "മറ്റൊരു പങ്കാളി സജ്ജമാക്കിയത്",
|
||||
"poweredby": "powered by",
|
||||
|
||||
@@ -586,8 +586,6 @@
|
||||
"youtubeTerms": "YouTube үйлчилгээний нөхцөл"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Ok",
|
||||
"admitAll": "Бүгдийг зөвшөөр",
|
||||
"backToKnockModeButton": "Зөвшөөрөл хүсэх",
|
||||
"chat": "Зурвас",
|
||||
"dialogTitle": "Лобби горим",
|
||||
@@ -621,8 +619,6 @@
|
||||
"notificationTitle": "Лобби",
|
||||
"passwordField": "Нууц үгээ оруулна уу",
|
||||
"passwordJoinButton": "Оролцох",
|
||||
"reject": "Татгалзах",
|
||||
"rejectAll": "Бүгдийг татгалзуулах",
|
||||
"title": "Лобби",
|
||||
"toggleLabel": "Лобби идэвхижүүлэх"
|
||||
},
|
||||
@@ -755,6 +751,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Ok",
|
||||
"admitAll": "Бүгдийг зөвшөөр",
|
||||
"allow": "Оролцогчийг зөвшөөрөх:",
|
||||
"allowVideo": "Дүрс зөвшөөрөх",
|
||||
"askUnmute": "Дуугаа нээхийг хүсэх",
|
||||
@@ -767,6 +765,7 @@
|
||||
"mute": "Дуугүй болгох",
|
||||
"muteAll": "Бүгдийг дуугүй болгох",
|
||||
"muteEveryoneElse": "Бүгдийг дуугүй болгох",
|
||||
"reject": "Татгалзах",
|
||||
"stopEveryonesVideo": "Бүгдийн дүрсийг хаах",
|
||||
"stopVideo": "Дүрс хаах",
|
||||
"unblockEveryoneMicCamera": "Бүх хүний микрофон, камерыг нээх",
|
||||
|
||||
@@ -486,8 +486,6 @@
|
||||
"youtubeTerms": "Servicevoorwaarden YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Toelaten",
|
||||
"admitAll": "Allen toelaten",
|
||||
"allow": "Toestaan",
|
||||
"backToKnockModeButton": "Geen wachtwoord, vraag om deel te mogen nemen",
|
||||
"dialogTitle": "Lobby-modus",
|
||||
@@ -519,8 +517,6 @@
|
||||
"notificationTitle": "Lobby",
|
||||
"passwordField": "Voer wachtwoord voor vergadering in",
|
||||
"passwordJoinButton": "Deelnemen",
|
||||
"reject": "Afwijzen",
|
||||
"rejectAll": "Allen afwijzen",
|
||||
"title": "Lobby",
|
||||
"toggleLabel": "Lobby inschakelen"
|
||||
},
|
||||
@@ -624,6 +620,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Toelaten",
|
||||
"admitAll": "Allen toelaten",
|
||||
"allow": "Sta deelnemers toe:",
|
||||
"allowVideo": "Video toestaan",
|
||||
"askUnmute": "Vragen om dempen op te heffen",
|
||||
@@ -636,6 +634,7 @@
|
||||
"mute": "Dempen",
|
||||
"muteAll": "Allen dempen",
|
||||
"muteEveryoneElse": "Alle anderen dempen",
|
||||
"reject": "Afwijzen",
|
||||
"stopEveryonesVideo": "Camera's van iedereen uitzetten",
|
||||
"stopVideo": "Camera uitzetten",
|
||||
"unblockEveryoneMicCamera": "Deblokkeer microfoon en camera van allen",
|
||||
|
||||
@@ -524,8 +524,6 @@
|
||||
"youtubeTerms": "Condicions d’utilizacion de YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Acceptar",
|
||||
"admitAll": "Tot acceptar",
|
||||
"allow": "Autorizar",
|
||||
"backToKnockModeButton": "Cap de senhal, demandar a participar a la plaça",
|
||||
"dialogTitle": "Mòde sala d'espèra",
|
||||
@@ -556,8 +554,6 @@
|
||||
"notificationTitle": "Sala d'espèra",
|
||||
"passwordField": "Picatz lo senhal de la conferéncia",
|
||||
"passwordJoinButton": "Rejónher",
|
||||
"reject": "Regetar",
|
||||
"rejectAll": "Tot regetar",
|
||||
"title": "Sala d'espèra",
|
||||
"toggleLabel": "Activar la sala d'espèra"
|
||||
},
|
||||
@@ -670,6 +666,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Acceptar",
|
||||
"admitAll": "Tot acceptar",
|
||||
"allow": "Permetre als convidats de :",
|
||||
"allowVideo": "Autorizar la vidèo",
|
||||
"askUnmute": "Demandar a restablir lo son",
|
||||
@@ -682,6 +680,7 @@
|
||||
"mute": "Amudir",
|
||||
"muteAll": "Amudir tot lo monde",
|
||||
"muteEveryoneElse": "Amudir tot los demai",
|
||||
"reject": "Regetar",
|
||||
"stopEveryonesVideo": "Arrestar la vidèo de tot lo monde",
|
||||
"stopVideo": "Arrestar la vidèo",
|
||||
"unblockEveryoneMicCamera": "Desblocar lo microfòn e la camèra de tot lo monde",
|
||||
|
||||
@@ -586,8 +586,6 @@
|
||||
"youtubeTerms": "Warunki użytkowania YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Pozwól",
|
||||
"admitAll": "Pozwól wszystkim",
|
||||
"backToKnockModeButton": "Brak hasła, poproś o dołączenie",
|
||||
"chat": "Chat",
|
||||
"dialogTitle": "Lobby",
|
||||
@@ -621,8 +619,6 @@
|
||||
"notificationTitle": "Lobby",
|
||||
"passwordField": "Wprowadź hasło",
|
||||
"passwordJoinButton": "Dołącz",
|
||||
"reject": "Odrzuć",
|
||||
"rejectAll": "Odrzuć wszystkich",
|
||||
"title": "Lobby",
|
||||
"toggleLabel": "Włącz / Wyłącz lobby"
|
||||
},
|
||||
@@ -756,6 +752,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Pozwól",
|
||||
"admitAll": "Pozwól wszystkim",
|
||||
"allow": "Zezwól uczestnikom na:",
|
||||
"allowVideo": "Zezwól na wideo",
|
||||
"askUnmute": "Poproś o wyłączenie wyciszenia",
|
||||
@@ -768,6 +766,7 @@
|
||||
"mute": "Wycisz",
|
||||
"muteAll": "Wycisz wszystkich",
|
||||
"muteEveryoneElse": "Wycisz pozostałych",
|
||||
"reject": "Odrzuć",
|
||||
"stopEveryonesVideo": "Wyłącz wszystkie kamery",
|
||||
"stopVideo": "Wyłącz kamerę",
|
||||
"unblockEveryoneMicCamera": "Odblokuj wszystkim kamerę i mikrofon",
|
||||
|
||||
@@ -63,15 +63,22 @@
|
||||
"leaveBreakoutRoom": "Sair da sala",
|
||||
"more": "Mais",
|
||||
"remove": "Eliminar sala",
|
||||
"rename": "Renomear",
|
||||
"renameBreakoutRoom": "Renomear sala",
|
||||
"sendToBreakoutRoom": "Enviar participante para:"
|
||||
},
|
||||
"breakoutList": "lista de salas",
|
||||
"buttonLabel": "Salas simultâneas",
|
||||
"defaultName": "Sala #{{index}}",
|
||||
"hideParticipantList": "Ocultar lista de participantes",
|
||||
"mainRoom": "Sala principal",
|
||||
"notifications": {
|
||||
"joined": "Entrada na sala \"{{name}}\"",
|
||||
"joinedMainRoom": "Entrada na sala principal",
|
||||
"joinedTitle": "Salas simultâneas"
|
||||
}
|
||||
},
|
||||
"showParticipantList": "Mostrar lista de participantes",
|
||||
"title": "Salas simultâneas"
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Adicionar um link da reunião",
|
||||
@@ -248,13 +255,14 @@
|
||||
"dialog": {
|
||||
"Back": "Voltar",
|
||||
"Cancel": "Cancelar",
|
||||
"IamHost": "Eu sou o anfitrião",
|
||||
"IamHost": "Iniciar sessão",
|
||||
"Ok": "OK",
|
||||
"Remove": "Remover",
|
||||
"Share": "Partilhar",
|
||||
"Submit": "Submeter",
|
||||
"WaitForHostMsg": "A conferência ainda não começou. Se for o anfitrião, por favor autentique. Caso contrário, por favor aguarde que o anfitrião chegue.",
|
||||
"WaitingForHostTitle": "À espera do anfitrião ...",
|
||||
"WaitForHostMsg": "A conferência ainda não começou porque ainda não chegaram moderadores. Se quiser ser um moderador, inicie a sessão. Caso contrário, aguarde.",
|
||||
"WaitingForHostButton": "Esperar pelo moderador",
|
||||
"WaitingForHostTitle": "À espera de um moderador...",
|
||||
"Yes": "Sim",
|
||||
"accessibilityLabel": {
|
||||
"Cancel": "Cancelar (sair da caixa de diálogo)",
|
||||
@@ -267,6 +275,8 @@
|
||||
"addMeetingNote": "Acrescentar uma nota sobre esta reunião",
|
||||
"addOptionalNote": "Adicionar uma nota (opcional):",
|
||||
"allow": "Permitir",
|
||||
"allowToggleCameraDialog": "Permite que {{initiatorName}} alterne o modo de visualização da câmara?",
|
||||
"allowToggleCameraTitle": "Permitir alternar a câmara?",
|
||||
"alreadySharedVideoMsg": "Outro participante já está a partilhar um vídeo. Esta conferência permite apenas um vídeo partilhado de cada vez.",
|
||||
"alreadySharedVideoTitle": "Só é permitido um vídeo partilhado de cada vez",
|
||||
"applicationWindow": "Janela de aplicação",
|
||||
@@ -327,6 +337,7 @@
|
||||
"lockRoom": "Adicionar reunião $t(lockRoomPassword)",
|
||||
"lockTitle": "Bloqueio falhado",
|
||||
"login": "Entrar",
|
||||
"loginQuestion": "Tem a certeza de que pretende iniciar sessão e abandonar a conferência?",
|
||||
"logoutQuestion": "Tem a certeza de que quer terminar a sessão e sair da conferência?",
|
||||
"logoutTitle": "Sair",
|
||||
"maxUsersLimitReached": "O limite para o número máximo de participantes foi atingido. A conferência está cheia. Por favor contacte o proprietário da reunião ou tente novamente mais tarde!",
|
||||
@@ -370,8 +381,6 @@
|
||||
"permissionCameraRequiredError": "É necessária a autorização da câmara para participar em conferências com vídeo. Por favor, conceda-a em Definições",
|
||||
"permissionErrorTitle": "Permissão necessária",
|
||||
"permissionMicRequiredError": "É necessária a permissão do microfone para participar em conferências com áudio. Por favor, conceda-a em Definições",
|
||||
"popupError": "O seu navegador está a bloquear janelas pop-up a partir deste site. Por favor, active os pop-ups nas definições de segurança do seu browser e tente novamente.",
|
||||
"popupErrorTitle": "Pop-up bloqueado",
|
||||
"readMore": "mais",
|
||||
"recentlyUsedObjects": "Os seus objetos recentemente utilizados",
|
||||
"recording": "A gravar",
|
||||
@@ -388,6 +397,8 @@
|
||||
"removePassword": "Remover $t(lockRoomPassword)",
|
||||
"removeSharedVideoMsg": "Tem a certeza de que gostaria de remover o seu vídeo partilhado?",
|
||||
"removeSharedVideoTitle": "Remover vídeo partilhado",
|
||||
"renameBreakoutRoomLabel": "Nome da sala",
|
||||
"renameBreakoutRoomTitle": "Mudar o nome da sala",
|
||||
"reservationError": "Erro no sistema de reservas",
|
||||
"reservationErrorMsg": "Código de erro: {{code}}, mensagem: {{msg}}",
|
||||
"retry": "Tentativa",
|
||||
@@ -407,6 +418,7 @@
|
||||
"sendPrivateMessageTitle": "Enviar em privado?",
|
||||
"serviceUnavailable": "Serviço indisponível",
|
||||
"sessTerminated": "Chamada terminada",
|
||||
"sessTerminatedReason": "A reunião foi encerrada",
|
||||
"sessionRestarted": "Chamada reiniciada devido a um problema de ligação.",
|
||||
"shareAudio": "Continuar",
|
||||
"shareAudioTitle": "Como partilhar áudio",
|
||||
@@ -438,7 +450,25 @@
|
||||
"thankYou": "Obrigado por utilizar {{appName}}!",
|
||||
"token": "token",
|
||||
"tokenAuthFailed": "Desculpe, não está autorizado a juntar-se a esta chamada.",
|
||||
"tokenAuthFailedReason": {
|
||||
"audInvalid": "Valor `aud` inválido. Deveria ser `jitsi`.",
|
||||
"contextNotFound": "O objeto `context` está em falta na carga útil.",
|
||||
"expInvalid": "Valor `exp` inválido.",
|
||||
"featureInvalid": "Funcionalidade inválida: {{feature}}, muito provavelmente ainda não implementada.",
|
||||
"featureValueInvalid": "Valor inválido para a caraterística: {{feature}}.",
|
||||
"featuresNotFound": "O objeto `features` está em falta na carga útil.",
|
||||
"headerNotFound": "Falta o cabeçalho.",
|
||||
"issInvalid": "Valor `iss` inválido. Deveria ser `chat`.",
|
||||
"kidMismatch": "O ID da chave (kid) não corresponde ao sub.",
|
||||
"kidNotFound": "Falta o ID da chave (kid)",
|
||||
"nbfFuture": "O valor `nbf` está no futuro.",
|
||||
"nbfInvalid": "Valor `nbf` inválido.",
|
||||
"payloadNotFound": "Falta a carga útil.",
|
||||
"tokenExpired": "O token expirou."
|
||||
},
|
||||
"tokenAuthFailedTitle": "A autenticação falhou",
|
||||
"tokenAuthFailedWithReasons": "Lamentamos, mas não está autorizado a participar nesta chamada. Razões possíveis: {{reason}}",
|
||||
"tokenAuthUnsupported": "O URL de token não é suportado.",
|
||||
"transcribing": "Transcrição",
|
||||
"unlockRoom": "Retirar reunião $t(lockRoomPassword)",
|
||||
"user": "Utilizador",
|
||||
@@ -452,6 +482,10 @@
|
||||
"viewUpgradeOptions": "Ver opções de actualização",
|
||||
"viewUpgradeOptionsContent": "Para obter acesso ilimitado a funcionalidades premium como gravação, transcrições, RTMP Streaming & mais, terá de actualizar o seu plano.",
|
||||
"viewUpgradeOptionsTitle": "Descobriu uma característica premium!",
|
||||
"whiteboardLimitContent": "Lamentamos, mas o limite de utilizadores do quadro branco foi atingido.",
|
||||
"whiteboardLimitReference": "Para mais informações consultar",
|
||||
"whiteboardLimitReferenceUrl": "o nosso sítio Web",
|
||||
"whiteboardLimitTitle": "Restrição da utilização do quadro branco",
|
||||
"yourEntireScreen": "O seu ecrã inteiro"
|
||||
},
|
||||
"documentSharing": {
|
||||
@@ -526,7 +560,8 @@
|
||||
"numbers": "Números para entrar por chamada telefónica",
|
||||
"password": "$t(lockRoomPasswordUppercase): ",
|
||||
"reachedLimit": "atingiu o limite do seu plano.",
|
||||
"sip": "Endereços SIP",
|
||||
"sip": "Endereço SIP",
|
||||
"sipAudioOnly": "Endereço SIP só de áudio",
|
||||
"title": "Partilhar",
|
||||
"tooltip": "Partilhar link e acesso telefónico para esta reunião",
|
||||
"upgradeOptions": "Por favor, verifique as opções de atualização em"
|
||||
@@ -590,15 +625,15 @@
|
||||
"limitNotificationDescriptionWeb": "Devido à grande procura, a sua transmissão será limitada a {{limit}} min. Para uma tentativa de streaming ilimitada tente <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"off": "Transmissão em direto encerrada",
|
||||
"offBy": "{{name}} parou a transmissão em direto",
|
||||
"on": "Transmissão em Direto",
|
||||
"on": "Iniciada a transmissão em direto",
|
||||
"onBy": "{{name}} iniciou a transmissão em direto",
|
||||
"pending": "Iniciando Transmissão em Direto...",
|
||||
"pending": "Início da transmissão em direto...",
|
||||
"serviceName": "Serviço de Transmissão em Direto",
|
||||
"sessionAlreadyActive": "Esta sessão já está a ser gravada ou transmitida em direto.",
|
||||
"signIn": "Faça login no Google",
|
||||
"signInCTA": "Faça login ou insira sua chave de transmissão em Direto do YouTube.",
|
||||
"signIn": "Iniciar sessão com o Google",
|
||||
"signInCTA": "Inicie sessão ou introduza a sua chave de transmissão em direto do YouTube.",
|
||||
"signOut": "Sair",
|
||||
"signedInAs": "Está conectado como:",
|
||||
"signedInAs": "Atualmente, tem sessão iniciada como:",
|
||||
"start": "Iniciar uma transmissão em direto",
|
||||
"streamIdHelp": "O que é isso?",
|
||||
"title": "Transmissão em direto",
|
||||
@@ -606,8 +641,6 @@
|
||||
"youtubeTerms": "Termos de serviços do YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Aceitar",
|
||||
"admitAll": "Aceitar todos",
|
||||
"backToKnockModeButton": "Peça para aderir",
|
||||
"chat": "Chat",
|
||||
"dialogTitle": "Modo sala de espera",
|
||||
@@ -633,16 +666,14 @@
|
||||
"knockingParticipantList": "Lista de participantes a expulsar",
|
||||
"lobbyChatStartedNotification": "{{moderator}} iniciou com {{attendee}} uma conversa na sala de espera",
|
||||
"lobbyChatStartedTitle": "{{moderator}} iniciou consigo uma conversa na sala de espera.",
|
||||
"lobbyClosed": "A sala de espera foi encerrada.",
|
||||
"nameField": "Introduza o seu nome",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} foi recusada a adesão por {{originParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} foi autorizado a aderir por {{originParticipantName}}",
|
||||
"notificationLobbyDisabled": "A sala de espera foi desactivada por {{originParticipantName}}",
|
||||
"notificationLobbyEnabled": "A sala de espera foi activada por {{originParticipantName}}",
|
||||
"notificationTitle": "Sala de espera",
|
||||
"passwordField": "Introduza a senha da reunião",
|
||||
"passwordJoinButton": "Solicitar",
|
||||
"reject": "Rejeitar",
|
||||
"rejectAll": "Rejeitar todos",
|
||||
"title": "Sala de espera",
|
||||
"toggleLabel": "Ativar sala de espera"
|
||||
},
|
||||
@@ -674,6 +705,8 @@
|
||||
"sessionToken": "Token de Sessão",
|
||||
"start": "Iniciar gravação",
|
||||
"stop": "Parar gravação",
|
||||
"stopping": "A parar a gravação",
|
||||
"wait": "Aguarde enquanto guardamos a sua gravação",
|
||||
"yes": "Sim"
|
||||
},
|
||||
"lockRoomPassword": "senha",
|
||||
@@ -696,6 +729,7 @@
|
||||
"dataChannelClosed": "Deficiência na qualidade do vídeo",
|
||||
"dataChannelClosedDescription": "O canal de ponte foi desconectado e, portanto, a qualidade do vídeo está limitada à sua configuração mais baixa.",
|
||||
"disabledIframe": "A incorporação destina-se apenas a fins de demonstração, pelo que esta chamada será desligada em {{timeout}} minutos.",
|
||||
"disabledIframeSecondary": "A incorporação de {{domain}} destina-se apenas a fins de demonstração, pelo que esta chamada será desligada em {{timeout}} minutos. Por favor, use <a href='{{jaasDomain}}' rel='noopener noreferrer' target='_blank'>Jitsi as a Service</a> para incorporação em produção!",
|
||||
"disconnected": "desconectado",
|
||||
"displayNotifications": "Mostrar notificações para",
|
||||
"dontRemindMe": "Não me lembre",
|
||||
@@ -742,7 +776,6 @@
|
||||
"newDeviceCameraTitle": "Nova câmara detetada",
|
||||
"noiseSuppressionDesktopAudioDescription": "A supressão de ruído não pode ser ativada enquanto se partilha o áudio do ambiente de trabalho, por favor desative-o e tente novamente.",
|
||||
"noiseSuppressionFailedTitle": "Falha ao iniciar a supressão de ruído",
|
||||
"noiseSuppressionNoTrackDescription": "Por favor, ligue primeiro o seu microfone.",
|
||||
"noiseSuppressionStereoDescription": "A supressão do ruído de áudio estéreo não é atualmente suportada.",
|
||||
"oldElectronClientDescription1": "Parece estar a utilizar uma versão antiga do cliente Jitsi Meet que tem vulnerabilidades de segurança conhecidas. Por favor, certifique-se de que actualiza a nossa ",
|
||||
"oldElectronClientDescription2": "compilação mais recente",
|
||||
@@ -772,15 +805,20 @@
|
||||
"videoUnmuteBlockedDescription": "A operação de ligar a câmara e partilhar o ambiente de trabalho foi temporariamente bloqueada devido aos limites do sistema.",
|
||||
"videoUnmuteBlockedTitle": "Está bloqueado ligar a câmara e partilhar o ambiente de trabalho!",
|
||||
"viewLobby": "Ver sala de espera",
|
||||
"waitingParticipants": "{{waitingParticipants}} pessoas"
|
||||
"waitingParticipants": "{{waitingParticipants}} pessoas",
|
||||
"whiteboardLimitDescription": "Guarde o seu progresso, pois o limite de utilizadores será atingido em breve e o quadro branco será encerrado.",
|
||||
"whiteboardLimitTitle": "Utilização do quadro branco"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Aceitar",
|
||||
"admitAll": "Aceitar todos",
|
||||
"allow": "Permitir aos participantes:",
|
||||
"allowVideo": "Permitir vídeo",
|
||||
"askUnmute": "Pedir para ligar o som",
|
||||
"audioModeration": "Ligar o microfone deles",
|
||||
"blockEveryoneMicCamera": "Bloquear o microfone e a câmara de todos",
|
||||
"breakoutRooms": "Salas simultâneas",
|
||||
"invite": "Convidar alguém",
|
||||
"moreModerationActions": "Mais opções de moderação",
|
||||
"moreModerationControls": "Mais controlos de moderação",
|
||||
@@ -788,6 +826,7 @@
|
||||
"mute": "Silenciar",
|
||||
"muteAll": "Silenciar todos",
|
||||
"muteEveryoneElse": "Silenciar todos os outros",
|
||||
"reject": "Rejeitar",
|
||||
"stopEveryonesVideo": "Desligar a câmara de todos",
|
||||
"stopVideo": "Desligar a câmara",
|
||||
"unblockEveryoneMicCamera": "Desbloquear o microfone e a câmara de todos",
|
||||
@@ -1057,6 +1096,7 @@
|
||||
"alertOk": "OK",
|
||||
"alertTitle": "Atenção",
|
||||
"alertURLText": "A URL digitada do servidor é inválida",
|
||||
"apply": "Aplicar",
|
||||
"buildInfoSection": "Informações de compilação",
|
||||
"conferenceSection": "Conferência",
|
||||
"disableCallIntegration": "Desactivar a integração de chamadas nativas",
|
||||
@@ -1067,19 +1107,21 @@
|
||||
"displayNamePlaceholderText": "Ex: João Dias",
|
||||
"email": "Email",
|
||||
"emailPlaceholderText": "email@example.com",
|
||||
"gavatarMessage": "Se o seu e-mail estiver associado a uma conta Gravatar, utilizá-la-emos para apresentar a sua imagem de perfil.",
|
||||
"goTo": "Ir para",
|
||||
"header": "Configurações",
|
||||
"help": "Ajuda",
|
||||
"links": "Links",
|
||||
"privacy": "Privacidade",
|
||||
"profileSection": "Perfil",
|
||||
"sdkVersion": "Versão do SDK",
|
||||
"serverURL": "URL do servidor",
|
||||
"showAdvanced": "Mostrar definições avançadas",
|
||||
"startCarModeInLowBandwidthMode": "Iniciar o modo de condução em modo de baixa largura de banda",
|
||||
"startWithAudioMuted": "Iniciar sem áudio",
|
||||
"startWithVideoMuted": "Iniciar sem vídeo",
|
||||
"terms": "Termos",
|
||||
"version": "Versão"
|
||||
"version": "Versão da App"
|
||||
},
|
||||
"share": {
|
||||
"dialInfoText": "\n\n=====\n\nDeseja apenas discar no seu telefone?\n\n{{defaultDialInNumber}}Clique neste link para ver os números de telefone para esta reunião\n{{dialInfoPageUrl}}",
|
||||
@@ -1124,7 +1166,7 @@
|
||||
"audioOnly": "Mudar para apenas áudio",
|
||||
"audioRoute": "Selecionar o dispositivo de som",
|
||||
"boo": "Vaia",
|
||||
"breakoutRoom": "Entrar/Sair salas instantâneas",
|
||||
"breakoutRooms": "Salas simultâneas",
|
||||
"callQuality": "Gerir a qualidade do vídeo",
|
||||
"carmode": "Modo de condução",
|
||||
"cc": "Mudar legendas",
|
||||
@@ -1240,7 +1282,7 @@
|
||||
"help": "Ajuda",
|
||||
"hideWhiteboard": "Esconder quadro branco",
|
||||
"invite": "Convidar pessoas",
|
||||
"joinBreakoutRoom": "Entrar na sala",
|
||||
"joinBreakoutRoom": "Entar na sala",
|
||||
"laugh": "Risos",
|
||||
"leaveBreakoutRoom": "Sair da sala",
|
||||
"leaveConference": "Sair da reunião",
|
||||
@@ -1249,7 +1291,7 @@
|
||||
"lobbyButtonDisable": "Desativar sala de espera",
|
||||
"lobbyButtonEnable": "Ativar sala de espera",
|
||||
"login": "Iniciar sessão",
|
||||
"logout": "Encerrar sessão",
|
||||
"logout": "Terminar sessão",
|
||||
"lowerYourHand": "Baixar a mão",
|
||||
"moreActions": "Mais ações",
|
||||
"moreOptions": "Mais opções",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -557,8 +557,6 @@
|
||||
"youtubeTerms": "Условия использования YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Признать",
|
||||
"admitAll": "Признать все",
|
||||
"backToKnockModeButton": "Попросить присоединиться",
|
||||
"chat": "Чат",
|
||||
"dialogTitle": "Режим лобби",
|
||||
@@ -592,8 +590,6 @@
|
||||
"notificationTitle": "Лобби",
|
||||
"passwordField": "Введите пароль встречи",
|
||||
"passwordJoinButton": "Присоединиться",
|
||||
"reject": "Отказать",
|
||||
"rejectAll": "Отказать всем",
|
||||
"title": "Лобби",
|
||||
"toggleLabel": "Включить лобби"
|
||||
},
|
||||
@@ -720,6 +716,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Признать",
|
||||
"admitAll": "Признать все",
|
||||
"allow": "Разрешить",
|
||||
"allowVideo": "Разрешить видео",
|
||||
"askUnmute": "Попросить разрешение включить микрофон",
|
||||
@@ -732,6 +730,7 @@
|
||||
"mute": "Выключить звук",
|
||||
"muteAll": "Выключить звук у всех",
|
||||
"muteEveryoneElse": "Выключить микрофон у остальных",
|
||||
"reject": "Отказать",
|
||||
"stopEveryonesVideo": "Выключить у всех камеру",
|
||||
"stopVideo": "Остановить видео",
|
||||
"unblockEveryoneMicCamera": "Разблокировать у всех микрофон и камеру",
|
||||
|
||||
@@ -561,8 +561,6 @@
|
||||
"youtubeTerms": "Cunditziones de servìtziu de YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Ammite",
|
||||
"admitAll": "Ammite totu",
|
||||
"allow": "Permite",
|
||||
"backToKnockModeButton": "Pedi de intrare",
|
||||
"chat": "Tzarrada",
|
||||
@@ -597,8 +595,6 @@
|
||||
"notificationTitle": "Aposentu de abetu",
|
||||
"passwordField": "Inserta sa crae de sa riunione",
|
||||
"passwordJoinButton": "Aderi",
|
||||
"reject": "Refuda",
|
||||
"rejectAll": "Refuda totu",
|
||||
"title": "Aposentu de abetu",
|
||||
"toggleLabel": "Ativa s'aposentu de abetu"
|
||||
},
|
||||
@@ -727,6 +723,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Ammite",
|
||||
"admitAll": "Ammite totu",
|
||||
"allow": "Permite a is partetzipantes:",
|
||||
"allowVideo": "Permite vìdeu",
|
||||
"askUnmute": "Pedi de ativare su micròfonu",
|
||||
@@ -739,6 +737,7 @@
|
||||
"mute": "A sa muda",
|
||||
"muteAll": "Totu a sa muda",
|
||||
"muteEveryoneElse": "Pone totus a sa muda",
|
||||
"reject": "Refuda",
|
||||
"stopEveryonesVideo": "Istuda su vìdeu de totu is partetzipantes",
|
||||
"stopVideo": "Firma su vìdeu",
|
||||
"unblockEveryoneMicCamera": "Isbloca su micròfonu e sa càmera de totu is partetzipantes",
|
||||
|
||||
@@ -466,7 +466,6 @@
|
||||
"notificationTitle": "Čakáreň",
|
||||
"passwordField": "Zadajte heslo do konferencie",
|
||||
"passwordJoinButton": "Vstúpiť",
|
||||
"reject": "Odmietnuť",
|
||||
"title": "Čakáreň",
|
||||
"toggleLabel": "Zapnúť čakáreň"
|
||||
},
|
||||
@@ -541,6 +540,11 @@
|
||||
"suboptimalExperienceTitle": "Prehliadačové varovanie",
|
||||
"unmute": "Zapnúť mikrofón"
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"reject": "Odmietnuť"
|
||||
}
|
||||
},
|
||||
"passwordDigitsOnly": "až {{number}} číslic",
|
||||
"passwordSetRemotely": "nastavené iným účastníkom",
|
||||
"poweredby": "založené na",
|
||||
|
||||
@@ -499,8 +499,6 @@
|
||||
"youtubeTerms": "Pogoji uporabe YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Sprejmi",
|
||||
"admitAll": "Sprejmi vse",
|
||||
"allow": "Dovoli",
|
||||
"backToKnockModeButton": "Prosi za dostop",
|
||||
"dialogTitle": "Način predsobe",
|
||||
@@ -531,8 +529,6 @@
|
||||
"notificationTitle": "Predsoba",
|
||||
"passwordField": "Vnesite geslo sestanka",
|
||||
"passwordJoinButton": "Pridruži se",
|
||||
"reject": "Zavrni",
|
||||
"rejectAll": "Zavrni vse",
|
||||
"title": "Predsoba",
|
||||
"toggleLabel": "Omogoči predsobo"
|
||||
},
|
||||
@@ -629,6 +625,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Sprejmi",
|
||||
"admitAll": "Sprejmi vse",
|
||||
"allow": "Udeleženci si lahko:",
|
||||
"allowVideo": "Dovoli video",
|
||||
"askUnmute": "Prosi za vklop mikrofona",
|
||||
@@ -638,6 +636,7 @@
|
||||
"mute": "Izklopi zvok",
|
||||
"muteAll": "Izklopi zvok vsem",
|
||||
"muteEveryoneElse": "Izklopi zvok vsem ostalim",
|
||||
"reject": "Zavrni",
|
||||
"stopEveryonesVideo": "Izklopi video vsem ostalim",
|
||||
"stopVideo": "Izklopi video",
|
||||
"unblockEveryoneMicCamera": "Dovoli zvok in video vsem udeležencem",
|
||||
|
||||
@@ -582,8 +582,6 @@
|
||||
"youtubeTerms": "Kushte shërbimi YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Pranoje",
|
||||
"admitAll": "Pranoji të tërë",
|
||||
"backToKnockModeButton": "Kërkoji të marrë pjesë",
|
||||
"chat": "Fjalosje",
|
||||
"dialogTitle": "Mënyra holl",
|
||||
@@ -617,8 +615,6 @@
|
||||
"notificationTitle": "Holl",
|
||||
"passwordField": "Jepni fjalëkalim takimi",
|
||||
"passwordJoinButton": "Hyni",
|
||||
"reject": "Hidhe poshtë",
|
||||
"rejectAll": "Hidhi poshtë të tërë",
|
||||
"title": "Holl",
|
||||
"toggleLabel": "Aktivizoni hollin"
|
||||
},
|
||||
@@ -749,6 +745,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Pranoje",
|
||||
"admitAll": "Pranoji të tërë",
|
||||
"allow": "Lejoju pjesëmarrësve të:",
|
||||
"allowVideo": "Çaktivizoni videon",
|
||||
"askUnmute": "Kërkoni heqje heshtimi",
|
||||
@@ -761,6 +759,7 @@
|
||||
"mute": "Heshtoje",
|
||||
"muteAll": "Heshtoji të tërë",
|
||||
"muteEveryoneElse": "Heshto gjithkënd tjetër",
|
||||
"reject": "Hidhe poshtë",
|
||||
"stopEveryonesVideo": "Ndal videon e gjithkujt",
|
||||
"stopVideo": "Ndale videon",
|
||||
"unblockEveryoneMicCamera": "Zhblloko mikrofonin dhe kamerën e gjithkujt",
|
||||
|
||||
@@ -391,7 +391,7 @@
|
||||
"serviceUnavailable": "Tjänsten otillgänglig",
|
||||
"sessTerminated": "Konferensen avslutades",
|
||||
"sessionRestarted": "Samtal återstartat av bryggan",
|
||||
"shareAudio": "Forstätt",
|
||||
"shareAudio": "Fortsätt",
|
||||
"shareAudioTitle": "Hur man delar ljud",
|
||||
"shareAudioWarningD1": "Du måste avsluta din skärmdelning innan du kan dela ditt ljud",
|
||||
"shareAudioWarningD2": "Du måste starta om din skärmdelning och därefter klicka på \"ljuddelning\"",
|
||||
@@ -427,13 +427,13 @@
|
||||
"user": "Användare",
|
||||
"userIdentifier": "Användar-ID",
|
||||
"userPassword": "Lösenord",
|
||||
"verifyParticipantConfirm": "Dem matchar",
|
||||
"verifyParticipantDismiss": "Dem matchar inte",
|
||||
"verifyParticipantConfirm": "De matchar",
|
||||
"verifyParticipantDismiss": "De matchar inte",
|
||||
"verifyParticipantQuestion": "EXPERIMENTELLT: Fråga deltagaren; {{participantName}} om han/hon kan se samma innehåll, i samma ordning.",
|
||||
"verifyParticipantTitle": "Användarverifikation",
|
||||
"videoLink": "Videolänk",
|
||||
"viewUpgradeOptions": "Se uppgraderings alternativ",
|
||||
"viewUpgradeOptionsContent": "För att få obegränsad tillgång till premiumfunktioner som inspelning, transkriptioner, RTMP -streaming och mer måste du uppgradera din plan.",
|
||||
"viewUpgradeOptionsContent": "För att få obegränsad tillgång till premiumfunktioner som inspelning, transkriptioner, RTMP-streaming och mer måste du uppgradera din plan.",
|
||||
"viewUpgradeOptionsTitle": "Du upptäckte en premiumfunktion!",
|
||||
"yourEntireScreen": "Helskärm"
|
||||
},
|
||||
@@ -458,7 +458,7 @@
|
||||
},
|
||||
"filmstrip": {
|
||||
"accessibilityLabel": {
|
||||
"heading": "Videomineatyrer"
|
||||
"heading": "Videominiatyrer"
|
||||
}
|
||||
},
|
||||
"giphy": {
|
||||
@@ -587,8 +587,6 @@
|
||||
"youtubeTerms": "Tjänstevillkor för YouTube"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Godkänn",
|
||||
"admitAll": "Godkänn alla",
|
||||
"backToKnockModeButton": "Tillbaka till väntrum",
|
||||
"chat": "Chatt",
|
||||
"dialogTitle": "Väntrum",
|
||||
@@ -622,8 +620,6 @@
|
||||
"notificationTitle": "Väntrum",
|
||||
"passwordField": "Ange möteslösenord",
|
||||
"passwordJoinButton": "Anslut",
|
||||
"reject": "Avvisa",
|
||||
"rejectAll": "Avvisa alla",
|
||||
"title": "Lobby",
|
||||
"toggleLabel": "Aktivera väntrum"
|
||||
},
|
||||
@@ -757,6 +753,8 @@
|
||||
},
|
||||
"participantsPane": {
|
||||
"actions": {
|
||||
"admit": "Godkänn",
|
||||
"admitAll": "Godkänn alla",
|
||||
"allow": "Låt deltagarna:",
|
||||
"allowVideo": "Tillåt kamera",
|
||||
"askUnmute": "Be om att aktivera ljud",
|
||||
@@ -769,6 +767,7 @@
|
||||
"mute": "Stäng av ljud",
|
||||
"muteAll": "Stäng av allt ljud",
|
||||
"muteEveryoneElse": "Inaktivera ljud för alla deltagare",
|
||||
"reject": "Avvisa",
|
||||
"stopEveryonesVideo": "Inaktivera allas video",
|
||||
"stopVideo": "Inaktivera video",
|
||||
"unblockEveryoneMicCamera": "Aktivera allas mikrofon och kamera",
|
||||
@@ -1278,7 +1277,7 @@
|
||||
"tileViewToggle": "Öppna eller stäng panelvyn",
|
||||
"toggleCamera": "Byta kamera",
|
||||
"unmute": "Slå på ljud",
|
||||
"videoSettings": "Video inställningar",
|
||||
"videoSettings": "Videoinställningar",
|
||||
"videomute": "Inaktivera kameran",
|
||||
"videounmute": "Aktivera kameran"
|
||||
},
|
||||
@@ -1346,9 +1345,9 @@
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Anslutningsinformation",
|
||||
"domute": "Tysta",
|
||||
"domuteOthers": "Inkativerad ljud för alla andra",
|
||||
"domuteOthers": "Inaktivera ljud för alla andra",
|
||||
"domuteVideo": "Inaktivera kamera",
|
||||
"domuteVideoOfOthers": "Inkativera kamera för alla andra",
|
||||
"domuteVideoOfOthers": "Inaktivera kamera för alla andra",
|
||||
"flip": "Vänd",
|
||||
"grantModerator": "Godkänn moderator",
|
||||
"hideSelfView": "Dölj självvyn",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user