mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-09-04 08:27:48 +00:00
Compare commits
22 Commits
3937
...
update-js-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7469e7fa3d | ||
|
|
c170970992 | ||
|
|
d19a659871 | ||
|
|
955b24be9d | ||
|
|
de6c7e0117 | ||
|
|
feb8fe9e34 | ||
|
|
aff6d4b36d | ||
|
|
45c60717d6 | ||
|
|
6596e27f69 | ||
|
|
8cba7e91d3 | ||
|
|
3a871cbed8 | ||
|
|
a46fd60788 | ||
|
|
97735ff548 | ||
|
|
9fdc18d1ec | ||
|
|
4a21882345 | ||
|
|
cb0cea4ebd | ||
|
|
b894daa9cf | ||
|
|
06641a7dd6 | ||
|
|
94f7b570d7 | ||
|
|
ca5605620a | ||
|
|
8d0202113a | ||
|
|
f2e59226c0 |
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@@ -1,10 +1,10 @@
|
||||
name: Linter
|
||||
name: Simple CI
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
run-linter:
|
||||
name: Run Linter
|
||||
run-ci:
|
||||
name: Build Frontend
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
@@ -13,3 +13,4 @@ jobs:
|
||||
node-version: '12.x'
|
||||
- run: npm install
|
||||
- run: npm run lint
|
||||
- run: make
|
||||
|
||||
@@ -20,5 +20,5 @@
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
||||
appVersion=20.1.0
|
||||
sdkVersion=2.6.0
|
||||
appVersion=20.2.0
|
||||
sdkVersion=2.8.0
|
||||
|
||||
@@ -459,6 +459,15 @@ var config = {
|
||||
// downloadAppsUrl: 'https://docs.example.com/our-apps.html'
|
||||
// },
|
||||
|
||||
// Options related to the remote participant menu.
|
||||
// remoteVideoMenu: {
|
||||
// // If set to true the 'Kick out' button will be disabled.
|
||||
// disableKick: true
|
||||
// },
|
||||
|
||||
// If set to true all muting operations of remote participants will be disabled.
|
||||
// disableRemoteMute: true,
|
||||
|
||||
// List of undocumented settings used in jitsi-meet
|
||||
/**
|
||||
_immediateReloadThreshold
|
||||
|
||||
2
debian/jitsi-meet-prosody.postinst
vendored
2
debian/jitsi-meet-prosody.postinst
vendored
@@ -136,7 +136,7 @@ case "$1" in
|
||||
echo -e "\nComponent \"internal.auth.$JVB_HOSTNAME\" \"muc\"" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " storage = \"null\"" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " modules_enabled = { \"ping\"; }" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " admins = { \"focusUser@auth.jitmeet.example.com\", \"jvb@auth.jitmeet.example.com\" }" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " admins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\", \"jvb@auth.$JVB_HOSTNAME\" }" >> $PROSODY_HOST_CONFIG
|
||||
fi
|
||||
|
||||
if [ ! -f /var/lib/prosody/$JVB_HOSTNAME.crt ]; then
|
||||
|
||||
10
debian/jitsi-meet-prosody.postrm
vendored
10
debian/jitsi-meet-prosody.postrm
vendored
@@ -36,13 +36,17 @@ case "$1" in
|
||||
rm -f /etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua
|
||||
rm -f /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua
|
||||
|
||||
JICOFO_AUTH_DOMAIN="auth.$JVB_HOSTNAME"
|
||||
# clean up generated certificates
|
||||
rm -f /etc/prosody/certs/$JVB_HOSTNAME.crt
|
||||
rm -f /etc/prosody/certs/$JVB_HOSTNAME.key
|
||||
rm -f /etc/prosody/certs/auth.$JVB_HOSTNAME.crt
|
||||
rm -f /etc/prosody/certs/auth.$JVB_HOSTNAME.key
|
||||
rm -rf /var/lib/prosody/auth.$JVB_HOSTNAME.*
|
||||
rm -f /etc/prosody/certs/$JICOFO_AUTH_DOMAIN.crt
|
||||
rm -f /etc/prosody/certs/$JICOFO_AUTH_DOMAIN.key
|
||||
rm -rf /var/lib/prosody/$JICOFO_AUTH_DOMAIN.*
|
||||
rm -rf /var/lib/prosody/$JVB_HOSTNAME.*
|
||||
|
||||
# clean created users
|
||||
rm -rf /var/lib/prosody/`echo $JICOFO_AUTH_DOMAIN | sed -e "s/\./%2e/g"`
|
||||
fi
|
||||
|
||||
# Clear the debconf variable
|
||||
|
||||
60
debian/jitsi-meet-turnserver.postrm
vendored
Normal file
60
debian/jitsi-meet-turnserver.postrm
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
# postrm script for jitsi-meet-turnserver
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
# Load debconf
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
if [ -x "/etc/init.d/nginx" ]; then
|
||||
invoke-rc.d nginx reload || true
|
||||
fi
|
||||
if [ -x "/etc/init.d/apache2" ]; then
|
||||
invoke-rc.d apache2 reload || true
|
||||
fi
|
||||
;;
|
||||
purge)
|
||||
if [ -x "/etc/init.d/nginx" ]; then
|
||||
invoke-rc.d nginx reload || true
|
||||
fi
|
||||
if [ -x "/etc/init.d/apache2" ]; then
|
||||
invoke-rc.d apache2 reload || true
|
||||
fi
|
||||
# Clear the debconf variable
|
||||
db_purge
|
||||
;;
|
||||
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
db_stop
|
||||
|
||||
exit 0
|
||||
2
debian/jitsi-meet-web-config.postinst
vendored
2
debian/jitsi-meet-web-config.postinst
vendored
@@ -120,6 +120,8 @@ case "$1" in
|
||||
echo ""
|
||||
echo "You are using jetty to serve jitsi-meet, we are now upgrading you to use nginx!"
|
||||
echo ""
|
||||
echo "If you are using Let’s Encrypt certificates please re-run the script."
|
||||
echo ""
|
||||
echo "------------------------------------------------"
|
||||
echo ""
|
||||
|
||||
|
||||
1
debian/jitsi-meet-web.install
vendored
1
debian/jitsi-meet-web.install
vendored
@@ -11,4 +11,5 @@ fonts /usr/share/jitsi-meet/
|
||||
images /usr/share/jitsi-meet/
|
||||
lang /usr/share/jitsi-meet/
|
||||
connection_optimization /usr/share/jitsi-meet/
|
||||
resources/robots.txt /usr/share/jitsi-meet/
|
||||
resources/*.sh /usr/share/jitsi-meet/scripts/
|
||||
|
||||
@@ -50,6 +50,8 @@ Component "conference.jitmeet.example.com" "muc"
|
||||
-- "token_verification";
|
||||
}
|
||||
admins = { "focusUser@auth.jitmeet.example.com" }
|
||||
muc_room_locking = false
|
||||
muc_room_default_public_jids = true
|
||||
|
||||
-- internal muc component
|
||||
Component "internal.auth.jitmeet.example.com" "muc"
|
||||
|
||||
@@ -225,6 +225,8 @@ npm install
|
||||
make
|
||||
```
|
||||
|
||||
_NOTE: When installing on older distributions keep in mind that you need Node.js >= 10 and npm >= 6._
|
||||
|
||||
Edit host names in `/srv/jitsi-meet/config.js` (see also the example config file):
|
||||
```
|
||||
var config = {
|
||||
|
||||
@@ -5,10 +5,10 @@ require_relative '../node_modules/@react-native-community/cli-platform-ios/nativ
|
||||
target 'jitsi-meet' do
|
||||
project 'app/app.xcodeproj'
|
||||
|
||||
pod 'Crashlytics', '~> 3.12.0'
|
||||
pod 'Fabric', '~> 1.9.0'
|
||||
pod 'Firebase/Core', '~> 5.18.0'
|
||||
pod 'Firebase/DynamicLinks', '~> 5.18.0'
|
||||
pod 'Crashlytics', '~> 3.14.0'
|
||||
pod 'Fabric', '~> 1.10.2'
|
||||
pod 'Firebase/Core', '~> 6.16.0'
|
||||
pod 'Firebase/DynamicLinks', '~> 6.16.0'
|
||||
end
|
||||
|
||||
target 'JitsiMeet' do
|
||||
|
||||
169
ios/Podfile.lock
169
ios/Podfile.lock
@@ -11,10 +11,10 @@ PODS:
|
||||
- CocoaLumberjack (3.5.3):
|
||||
- CocoaLumberjack/Core (= 3.5.3)
|
||||
- CocoaLumberjack/Core (3.5.3)
|
||||
- Crashlytics (3.12.0):
|
||||
- Fabric (~> 1.9.0)
|
||||
- Crashlytics (3.14.0):
|
||||
- Fabric (~> 1.10.2)
|
||||
- DoubleConversion (1.1.6)
|
||||
- Fabric (1.9.0)
|
||||
- Fabric (1.10.2)
|
||||
- FBLazyVector (0.61.5-jitsi.1)
|
||||
- FBReactNativeSpec (0.61.5-jitsi.1):
|
||||
- Folly (= 2018.10.22.00)
|
||||
@@ -23,34 +23,48 @@ PODS:
|
||||
- React-Core (= 0.61.5-jitsi.1)
|
||||
- React-jsi (= 0.61.5-jitsi.1)
|
||||
- ReactCommon/turbomodule/core (= 0.61.5-jitsi.1)
|
||||
- Firebase/Core (5.18.0):
|
||||
- Firebase/Core (6.16.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAnalytics (= 5.7.0)
|
||||
- Firebase/CoreOnly (5.18.0):
|
||||
- FirebaseCore (= 5.3.1)
|
||||
- Firebase/DynamicLinks (5.18.0):
|
||||
- FirebaseAnalytics (= 6.2.2)
|
||||
- Firebase/CoreOnly (6.16.0):
|
||||
- FirebaseCore (= 6.6.1)
|
||||
- Firebase/DynamicLinks (6.16.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseDynamicLinks (= 3.4.1)
|
||||
- FirebaseAnalytics (5.7.0):
|
||||
- FirebaseCore (~> 5.3)
|
||||
- FirebaseInstanceID (~> 3.6)
|
||||
- GoogleAppMeasurement (= 5.7.0)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- FirebaseAnalyticsInterop (1.2.0)
|
||||
- FirebaseCore (5.3.1):
|
||||
- GoogleUtilities/Logger (~> 5.2)
|
||||
- FirebaseDynamicLinks (3.4.1):
|
||||
- FirebaseAnalytics (~> 5.1)
|
||||
- FirebaseAnalyticsInterop (~> 1.0)
|
||||
- FirebaseCore (~> 5.2)
|
||||
- FirebaseInstanceID (3.7.0):
|
||||
- FirebaseCore (~> 5.2)
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- GoogleUtilities/UserDefaults (~> 5.2)
|
||||
- FirebaseDynamicLinks (~> 4.0.6)
|
||||
- FirebaseAnalytics (6.2.2):
|
||||
- FirebaseCore (~> 6.6)
|
||||
- FirebaseInstanceID (~> 4.3)
|
||||
- GoogleAppMeasurement (= 6.2.2)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
||||
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
||||
- GoogleUtilities/Network (~> 6.0)
|
||||
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
||||
- nanopb (= 0.3.9011)
|
||||
- FirebaseAnalyticsInterop (1.5.0)
|
||||
- FirebaseCore (6.6.1):
|
||||
- FirebaseCoreDiagnostics (~> 1.2)
|
||||
- FirebaseCoreDiagnosticsInterop (~> 1.2)
|
||||
- GoogleUtilities/Environment (~> 6.5)
|
||||
- GoogleUtilities/Logger (~> 6.5)
|
||||
- FirebaseCoreDiagnostics (1.2.2):
|
||||
- FirebaseCoreDiagnosticsInterop (~> 1.2)
|
||||
- GoogleDataTransportCCTSupport (~> 2.0)
|
||||
- GoogleUtilities/Environment (~> 6.5)
|
||||
- GoogleUtilities/Logger (~> 6.5)
|
||||
- nanopb (~> 0.3.901)
|
||||
- FirebaseCoreDiagnosticsInterop (1.2.0)
|
||||
- FirebaseDynamicLinks (4.0.8):
|
||||
- FirebaseAnalyticsInterop (~> 1.3)
|
||||
- FirebaseCore (~> 6.2)
|
||||
- FirebaseInstallations (1.1.1):
|
||||
- FirebaseCore (~> 6.6)
|
||||
- GoogleUtilities/UserDefaults (~> 6.5)
|
||||
- PromisesObjC (~> 1.2)
|
||||
- FirebaseInstanceID (4.3.2):
|
||||
- FirebaseCore (~> 6.6)
|
||||
- FirebaseInstallations (~> 1.0)
|
||||
- GoogleUtilities/Environment (~> 6.5)
|
||||
- GoogleUtilities/UserDefaults (~> 6.5)
|
||||
- Folly (2018.10.22.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
@@ -61,33 +75,37 @@ PODS:
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- glog (0.3.5)
|
||||
- GoogleAppMeasurement (5.7.0):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- GoogleAppMeasurement (6.2.2):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
||||
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
||||
- GoogleUtilities/Network (~> 6.0)
|
||||
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
||||
- nanopb (= 0.3.9011)
|
||||
- GoogleDataTransport (5.1.0)
|
||||
- GoogleDataTransportCCTSupport (2.0.1):
|
||||
- GoogleDataTransport (~> 5.1)
|
||||
- nanopb (~> 0.3.901)
|
||||
- GoogleSignIn (5.0.1):
|
||||
- AppAuth (~> 1.2)
|
||||
- GTMAppAuth (~> 1.0)
|
||||
- GTMSessionFetcher/Core (~> 1.1)
|
||||
- GoogleUtilities/AppDelegateSwizzler (5.4.1):
|
||||
- GoogleUtilities/AppDelegateSwizzler (6.5.2):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (5.4.1)
|
||||
- GoogleUtilities/Logger (5.4.1):
|
||||
- GoogleUtilities/Environment (6.5.2)
|
||||
- GoogleUtilities/Logger (6.5.2):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/MethodSwizzler (5.4.1):
|
||||
- GoogleUtilities/MethodSwizzler (6.5.2):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network (5.4.1):
|
||||
- GoogleUtilities/Network (6.5.2):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (5.4.1)"
|
||||
- GoogleUtilities/Reachability (5.4.1):
|
||||
- "GoogleUtilities/NSData+zlib (6.5.2)"
|
||||
- GoogleUtilities/Reachability (6.5.2):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/UserDefaults (5.4.1):
|
||||
- GoogleUtilities/UserDefaults (6.5.2):
|
||||
- GoogleUtilities/Logger
|
||||
- GTMAppAuth (1.0.0):
|
||||
- AppAuth/Core (~> 1.0)
|
||||
@@ -97,12 +115,13 @@ PODS:
|
||||
- GTMSessionFetcher/Core (1.2.2)
|
||||
- GTMSessionFetcher/Full (1.2.2):
|
||||
- GTMSessionFetcher/Core (= 1.2.2)
|
||||
- nanopb (0.3.901):
|
||||
- nanopb/decode (= 0.3.901)
|
||||
- nanopb/encode (= 0.3.901)
|
||||
- nanopb/decode (0.3.901)
|
||||
- nanopb/encode (0.3.901)
|
||||
- nanopb (0.3.9011):
|
||||
- nanopb/decode (= 0.3.9011)
|
||||
- nanopb/encode (= 0.3.9011)
|
||||
- nanopb/decode (0.3.9011)
|
||||
- nanopb/encode (0.3.9011)
|
||||
- ObjectiveDropboxOfficial (3.9.4)
|
||||
- PromisesObjC (1.2.8)
|
||||
- RCTRequired (0.61.5-jitsi.1)
|
||||
- RCTTypeSafety (0.61.5-jitsi.1):
|
||||
- FBLazyVector (= 0.61.5-jitsi.1)
|
||||
@@ -352,13 +371,13 @@ DEPENDENCIES:
|
||||
- Amplitude-iOS (~> 4.0.4)
|
||||
- BVLinearGradient (from `../node_modules/react-native-linear-gradient`)
|
||||
- CocoaLumberjack (~> 3.5.3)
|
||||
- Crashlytics (~> 3.12.0)
|
||||
- Crashlytics (~> 3.14.0)
|
||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- Fabric (~> 1.9.0)
|
||||
- Fabric (~> 1.10.2)
|
||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector/`)
|
||||
- FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec/`)
|
||||
- Firebase/Core (~> 5.18.0)
|
||||
- Firebase/DynamicLinks (~> 5.18.0)
|
||||
- Firebase/Core (~> 6.16.0)
|
||||
- Firebase/DynamicLinks (~> 6.16.0)
|
||||
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- ObjectiveDropboxOfficial (~> 3.9.4)
|
||||
@@ -401,23 +420,29 @@ SPEC REPOS:
|
||||
- Amplitude-iOS
|
||||
- boost-for-react-native
|
||||
- CocoaLumberjack
|
||||
- ObjectiveDropboxOfficial
|
||||
trunk:
|
||||
- AppAuth
|
||||
- Crashlytics
|
||||
- Fabric
|
||||
- Firebase
|
||||
- FirebaseAnalytics
|
||||
- FirebaseAnalyticsInterop
|
||||
- FirebaseCore
|
||||
- FirebaseCoreDiagnostics
|
||||
- FirebaseCoreDiagnosticsInterop
|
||||
- FirebaseDynamicLinks
|
||||
- FirebaseInstallations
|
||||
- FirebaseInstanceID
|
||||
- GoogleAppMeasurement
|
||||
- GoogleUtilities
|
||||
- nanopb
|
||||
- ObjectiveDropboxOfficial
|
||||
trunk:
|
||||
- AppAuth
|
||||
- GoogleDataTransport
|
||||
- GoogleDataTransportCCTSupport
|
||||
- GoogleSignIn
|
||||
- GoogleUtilities
|
||||
- GTMAppAuth
|
||||
- GTMSessionFetcher
|
||||
- nanopb
|
||||
- PromisesObjC
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
BVLinearGradient:
|
||||
@@ -501,26 +526,32 @@ SPEC CHECKSUMS:
|
||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||
BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
|
||||
CocoaLumberjack: 2f44e60eb91c176d471fdba43b9e3eae6a721947
|
||||
Crashlytics: 07fb167b1694128c1c9a5a5cc319b0e9c3ca0933
|
||||
Crashlytics: 540b7e5f5da5a042647227a5e3ac51d85eed06df
|
||||
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
|
||||
Fabric: f988e33c97f08930a413e08123064d2e5f68d655
|
||||
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
||||
FBLazyVector: 4a5251159a3ed05dc11cc8b74cf937869935814b
|
||||
FBReactNativeSpec: 6fa602a20993212cc9877a81838578ffb0008bc9
|
||||
Firebase: 02f3281965c075426141a0ce1277e9de6649cab9
|
||||
FirebaseAnalytics: 23851fe602c872130a2c5c55040b302120346cc2
|
||||
FirebaseAnalyticsInterop: efbe45c8385ec626e29f9525e5ebd38520dfb6c1
|
||||
FirebaseCore: 52f851b30e11360f1e67cf04b1edfebf0a47a2d3
|
||||
FirebaseDynamicLinks: f209c3caccd82102caa0e91d393e3ccc593501fd
|
||||
FirebaseInstanceID: bd6fc5a258884e206fd5c474ebe4f5b00e21770e
|
||||
Firebase: 497158b816d0a86fc31babbd05546fcd7e6083ff
|
||||
FirebaseAnalytics: cf95d3aab897612783020fbd98401d5366f135ee
|
||||
FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae
|
||||
FirebaseCore: 85064903ed6c28e47fec9c7bd149d94ba1b6b6e7
|
||||
FirebaseCoreDiagnostics: e9b4cd8ba60dee0f2d13347332e4b7898cca5b61
|
||||
FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
|
||||
FirebaseDynamicLinks: 417dc6dbb6013233c77558290d73296f429656a6
|
||||
FirebaseInstallations: acb3216eb9784d3b1d2d2d635ff74fa892cc0c44
|
||||
FirebaseInstanceID: 7ee0d6777013bb952f377b41965bf132b6a075be
|
||||
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
|
||||
glog: 1f3da668190260b06b429bb211bfbee5cd790c28
|
||||
GoogleAppMeasurement: 6cf307834da065863f9faf4c0de0a936d81dd832
|
||||
GoogleAppMeasurement: d0560d915abf15e692e8538ba1d58442217b6aff
|
||||
GoogleDataTransport: b29a21d813e906014ca16c00897827e40e4a24ab
|
||||
GoogleDataTransportCCTSupport: 6f15a89b0ca35d6fa523e1f752ef818588885988
|
||||
GoogleSignIn: 3a51b9bb8e48b635fd7f4272cee06ca260345b86
|
||||
GoogleUtilities: 1e25823cbf46540b4284f6ef8e17b3a68ee12bbc
|
||||
GoogleUtilities: ad0f3b691c67909d03a3327cc205222ab8f42e0e
|
||||
GTMAppAuth: 4deac854479704f348309e7b66189e604cf5e01e
|
||||
GTMSessionFetcher: 61bb0f61a4cb560030f1222021178008a5727a23
|
||||
nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
|
||||
nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd
|
||||
ObjectiveDropboxOfficial: a5afefc83f6467c42c45f2253f583f2ad1ffc701
|
||||
PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6
|
||||
RCTRequired: f63dd90a89a60602acdd44c42e5d2645ca60ab79
|
||||
RCTTypeSafety: 24a3c6d55684046ed550b1d0ef083a9bf71c8bd4
|
||||
React: 71c5a51135f291c3b32c0b558e167b858ae50e84
|
||||
@@ -553,6 +584,6 @@ SPEC CHECKSUMS:
|
||||
RNWatch: 09738b339eceb66e4d80a2371633ca5fb380fa42
|
||||
Yoga: 7b4209fda2441f99d54dd6cf4c82b094409bb68f
|
||||
|
||||
PODFILE CHECKSUM: 0fdfa45ae809c9460c80be3e0d4bbb822fccc418
|
||||
PODFILE CHECKSUM: f615794fb9184757b00cd16e534824ba6ee2fc98
|
||||
|
||||
COCOAPODS: 1.8.4
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
B35383AD1DDA0083008F406A /* Adjust embedded framework architectures */,
|
||||
0BB7DA181EC9E695007AAE98 /* Adjust ATS */,
|
||||
DEF4813D224925A2002AD03A /* Copy Google Plist file */,
|
||||
DEC2069321CBBD6900072F03 /* Setup Fabric */,
|
||||
DEC2069321CBBD6900072F03 /* Setup Crashlytics */,
|
||||
DE11877A21EE09640078D059 /* Setup Google reverse URL handler */,
|
||||
DE4F6D6E22005C0400DE699E /* Setup Dropbox */,
|
||||
0BEA5C491F7B8F73000D0AB4 /* Embed Watch Content */,
|
||||
@@ -492,7 +492,7 @@
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "INFO_PLIST=\"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH\"\nDROPBOX_KEY_FILE=\"$PROJECT_DIR/dropbox.key\"\n\nif [[ -f $DROPBOX_KEY_FILE ]]; then\n /usr/libexec/PlistBuddy -c \"Delete :LSApplicationQueriesSchemes\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes array\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes:0 string 'dbapi-2'\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes:1 string 'dbapi-8-emm'\" $INFO_PLIST\n\n DROPBOX_KEY=$(head -n 1 $DROPBOX_KEY_FILE)\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLName string dropbox\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLSchemes array\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLSchemes:0 string $DROPBOX_KEY\" $INFO_PLIST\nfi\n";
|
||||
};
|
||||
DEC2069321CBBD6900072F03 /* Setup Fabric */ = {
|
||||
DEC2069321CBBD6900072F03 /* Setup Crashlytics */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@@ -501,14 +501,14 @@
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Setup Fabric";
|
||||
name = "Setup Crashlytics";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "${PODS_ROOT}/Fabric/run\n";
|
||||
shellScript = "GOOGLE_PLIST=\"$PROJECT_DIR/GoogleService-Info.plist\"\n\nif [[ -f $GOOGLE_PLIST ]]; then\n if [ \"${CONFIGURATION}\" != \"Debug\" ]; then\n find \"${DWARF_DSYM_FOLDER_PATH}\" -name \"*.dSYM\" | xargs -I \\{\\} ${PODS_ROOT}/Fabric/upload-symbols -gsp $GOOGLE_PLIST -p ios \\{\\}\n fi\nfi\n";
|
||||
};
|
||||
DEF4813D224925A2002AD03A /* Copy Google Plist file */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>20.1.0</string>
|
||||
<string>20.2.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>20.1.0</string>
|
||||
<string>20.2.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>20.1.0</string>
|
||||
<string>20.2.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>CLKComplicationPrincipalClass</key>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.6.0</string>
|
||||
<string>2.8.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
||||
@@ -28,5 +28,5 @@
|
||||
"tr": "Turco",
|
||||
"vi": "Vietnamita",
|
||||
"zhCN": "Chino (China)",
|
||||
"zhTW": "Chino (Taiwan)\"msgstr \""
|
||||
"zhTW": "Chino (Taiwan)"
|
||||
}
|
||||
@@ -28,5 +28,5 @@
|
||||
"tr": "Turco",
|
||||
"vi": "Vietnamita",
|
||||
"zhCN": "Chino (China)",
|
||||
"zhTW": "Chino (Taiwan)\"msgstr \""
|
||||
"zhTW": "Chino (Taiwan)"
|
||||
}
|
||||
@@ -28,5 +28,5 @@
|
||||
"tr": "Török",
|
||||
"vi": "Vietnámi",
|
||||
"zhCN": "Kínai (Kína)",
|
||||
"zhTW": "Kínai (Tajvan)\"msgstr \""
|
||||
"zhTW": "Kínai (Tajvan)"
|
||||
}
|
||||
@@ -1,32 +1,32 @@
|
||||
{
|
||||
"en": "Angielski",
|
||||
"af": "Afrykanerski",
|
||||
"bg": "Bułgarski",
|
||||
"ca": "Kataloński",
|
||||
"cs": "Czeski",
|
||||
"de": "Niemiecki",
|
||||
"el": "Grecki",
|
||||
"enGB": "Angielski (Zjednoczone Królestwo)",
|
||||
"eo": "Esperanto",
|
||||
"es": "Hiszpański",
|
||||
"esUS": "Hiszpański (Ameryka Łacińska)",
|
||||
"fi": "Fiński",
|
||||
"fr": "Francuski",
|
||||
"frCA": "Francuski (kanadyjski)",
|
||||
"hr": "Chorwacki",
|
||||
"hu": "Węgierski",
|
||||
"hy": "Ormiański",
|
||||
"it": "Włoski",
|
||||
"ja": "Japoński",
|
||||
"ko": "Koreański",
|
||||
"nl": "Holenderski",
|
||||
"oc": "Oksytański",
|
||||
"pl": "Polski",
|
||||
"ptBR": "Portugalski (brazylijski)",
|
||||
"ru": "Rosyjski",
|
||||
"sv": "Szwedzki",
|
||||
"tr": "Turecki",
|
||||
"vi": "Wietnamski",
|
||||
"zhCN": "Chiński (Chiny)",
|
||||
"zhTW": "Chiński (Tajwan)\"msgstr \""
|
||||
"en": "angielski",
|
||||
"af": "afrykanerski",
|
||||
"bg": "bułgarski",
|
||||
"ca": "kataloński",
|
||||
"cs": "czeski",
|
||||
"de": "niemiecki",
|
||||
"el": "grecki",
|
||||
"enGB": "angielski (Zjednoczone Królestwo)",
|
||||
"eo": "esperanto",
|
||||
"es": "hiszpański",
|
||||
"esUS": "hiszpański (Ameryka Łacińska)",
|
||||
"fi": "fiński",
|
||||
"fr": "francuski",
|
||||
"frCA": "francuski (kanadyjski)",
|
||||
"hr": "chorwacki",
|
||||
"hu": "węgierski",
|
||||
"hy": "ormiański",
|
||||
"it": "włoski",
|
||||
"ja": "japoński",
|
||||
"ko": "koreański",
|
||||
"nl": "holenderski",
|
||||
"oc": "oksytański",
|
||||
"pl": "polski",
|
||||
"ptBR": "portugalski (brazylijski)",
|
||||
"ru": "rosyjski",
|
||||
"sv": "szwedzki",
|
||||
"tr": "turecki",
|
||||
"vi": "wietnamski",
|
||||
"zhCN": "chiński (Chiny)",
|
||||
"zhTW": "chiński (Tajwan)"
|
||||
}
|
||||
@@ -28,5 +28,5 @@
|
||||
"tr": "Turco",
|
||||
"vi": "Vietnamita",
|
||||
"zhCN": "Chinês (China)",
|
||||
"zhTW": "Chinês (Taiwan)\"msgstr \""
|
||||
"zhTW": "Chinês (Taiwan)"
|
||||
}
|
||||
@@ -28,5 +28,5 @@
|
||||
"tr": "Turkish",
|
||||
"vi": "Vietnamese",
|
||||
"zhCN": "中文 简体 (中国)",
|
||||
"zhTW": "中文 正體 (台灣)\"msgstr \""
|
||||
"zhTW": "中文 正體 (台灣)"
|
||||
}
|
||||
@@ -20,7 +20,7 @@
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
"headphones": "Kopfhörer",
|
||||
"phone": "Telefon",
|
||||
"phone": "Hörer",
|
||||
"speaker": "Lautsprecher",
|
||||
"none": "Keine Audiogeräte verfügbar"
|
||||
},
|
||||
@@ -29,19 +29,19 @@
|
||||
},
|
||||
"calendarSync": {
|
||||
"addMeetingURL": "Meeting-Link hinzufügen",
|
||||
"confirmAddLink": "Wollen Sie einen Jitsi-Link zu dieser Veranstaltung hinzufügen?",
|
||||
"confirmAddLink": "Wollen Sie einen Jitsi-Link zu diesem Termin hinzufügen?",
|
||||
"error": {
|
||||
"appConfiguration": "Kalenderintegration ist nicht richtig konfiguriert.",
|
||||
"generic": "Ein Fehler ist aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, den Kalender zu aktualisieren.",
|
||||
"notSignedIn": "Ein Fehler ist während der Authentifizierung zur Anzeige von Kalendererveranstaltungen aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden."
|
||||
"notSignedIn": "Ein Fehler ist während der Authentifizierung zur Anzeige von Kalenderertermine aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden."
|
||||
},
|
||||
"join": "Teilnehmen",
|
||||
"joinTooltip": "Am Meeting teilnehmen",
|
||||
"nextMeeting": "Nächste Konferenz",
|
||||
"noEvents": "Es sind keine bevorstehenden Veranstaltungen geplant.",
|
||||
"noEvents": "Es gibt keine bevorstehenden Termine.",
|
||||
"ongoingMeeting": "Laufendes Meeting",
|
||||
"permissionButton": "Einstellungen öffnen",
|
||||
"permissionMessage": "Die App benötigt Zugriff auf den Kalender, um die Termine und Konferenzen anzuzeigen.",
|
||||
"permissionMessage": "Die App benötigt Zugriff auf den Kalender, um Termine und Konferenzen anzuzeigen.",
|
||||
"refresh": "Kalender aktualisieren",
|
||||
"today": "Heute"
|
||||
},
|
||||
@@ -78,9 +78,9 @@
|
||||
"DISCONNECTING": "Verbindung wird getrennt",
|
||||
"ERROR": "Fehler",
|
||||
"FETCH_SESSION_ID": "Sitzungs-ID erhalten...",
|
||||
"GET_SESSION_ID_ERROR": "Session-ID-Fehler erhalten: {{code}}",
|
||||
"GET_SESSION_ID_ERROR": "Sitzungs-ID-Fehler erhalten: {{code}}",
|
||||
"GOT_SESSION_ID": "Sitzungs-ID erhalten... Beendet",
|
||||
"LOW_BANDWIDTH": "Video für {{displayName}} wurde ausgeschaltet um Bandbreite einzusparen"
|
||||
"LOW_BANDWIDTH": "Video für {{displayName}} wurde ausgeschaltet, um Bandbreite einzusparen"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Adresse:",
|
||||
@@ -119,9 +119,9 @@
|
||||
"yesterday": "Gestern"
|
||||
},
|
||||
"deepLinking": {
|
||||
"appNotInstalled": "Sie benötigen die {{app}}-App, um der Konferenz auf dem Smartphone beizutreten.",
|
||||
"appNotInstalled": "Sie benötigen die „{{app}}“-App, um der Konferenz auf dem Smartphone beizutreten.",
|
||||
"description": "Nichts passiert? Wir haben versucht, die Konferenz in {{app}} zu öffnen. Versuchen Sie es erneut oder treten Sie der Konferenz in {{app}} im Web bei.",
|
||||
"descriptionWithoutWeb": "Ist nichts passiert? Wir haben versucht, Ihre Besprechung in der {{{app}}} Desktop-App zu starten.",
|
||||
"descriptionWithoutWeb": "Ist nichts passiert? Wir haben versucht, Ihre Besprechung in der „{{{app}}}“-Desktop-App zu starten.",
|
||||
"downloadApp": "App herunterladen",
|
||||
"launchWebButton": "Im Web öffnen",
|
||||
"openApp": "In der App fortfahren",
|
||||
@@ -153,13 +153,13 @@
|
||||
"Back": "Zurück",
|
||||
"cameraConstraintFailedError": "Ihre Kamera erfüllt die notwendigen Anforderungen nicht.",
|
||||
"cameraNotFoundError": "Kamera nicht gefunden.",
|
||||
"cameraNotSendingData": "Die Kamera ist nicht verfügbar. Bitte prüfen ob eine andere Applikation die Kamera verwendet, eine andere Kamera vom Einstellungs-Menu auswählen oder die Applikation neu laden.",
|
||||
"cameraNotSendingData": "Die Kamera ist nicht verfügbar. Bitte prüfen, ob eine andere Applikation die Kamera verwendet, eine andere Kamera vom Einstellungs-Menü auswählen oder die Applikation neu laden.",
|
||||
"cameraNotSendingDataTitle": "Zugriff auf Kamera nicht möglich",
|
||||
"cameraPermissionDeniedError": "Die Berechtigung zur Verwendung der Kamera wurde nicht erteilt. Sie können trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer können Sie nicht sehen. Verwenden Sie die Kamera-Schaltfläche in der Adressleiste um die Berechtigungen zu erteilen.",
|
||||
"cameraUnknownError": "Die Kamera kann aus einem unbekannten Grund nicht verwendet werden.",
|
||||
"cameraUnsupportedResolutionError": "Die Kamera unterstützt die erforderliche Auflösung nicht.",
|
||||
"Cancel": "Abbrechen",
|
||||
"close": "Schliessen",
|
||||
"close": "Schließen",
|
||||
"conferenceDisconnectMsg": "Prüfen Sie allenfalls Ihre Netzwerkverbindung. Verbinde in {{seconds}} Sekunden...",
|
||||
"conferenceDisconnectTitle": "Ihre Verbindung ist getrennt worden.",
|
||||
"conferenceReloadMsg": "Wir versuchen das zu beheben. Verbinde in {{seconds}} Sekunden...",
|
||||
@@ -177,14 +177,14 @@
|
||||
"done": "Fertig",
|
||||
"enterDisplayName": "Bitte geben Sie hier Ihren Namen ein",
|
||||
"error": "Fehler",
|
||||
"externalInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden.",
|
||||
"externalInstallationMsg": "Die Bildschirmfreigabe-Erweiterung muss installiert werden.",
|
||||
"externalInstallationTitle": "Erweiterung erforderlich",
|
||||
"goToStore": "Zum Store",
|
||||
"gracefulShutdown": "Der Dienst steht momentan wegen Wartungsarbeiten nicht zur Verfügung. Bitte versuchen Sie es später noch einmal.",
|
||||
"IamHost": "Ich bin der Organisator",
|
||||
"incorrectRoomLockPassword": "Falsches Passwort",
|
||||
"incorrectPassword": "Benutzername oder Passwort ungültig",
|
||||
"inlineInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden.",
|
||||
"inlineInstallationMsg": "Die Bildschirmfreigabe-Erweiterung muss installiert werden.",
|
||||
"inlineInstallExtension": "Jetzt installieren",
|
||||
"internalError": "Oh! Es hat etwas nicht funktioniert. Der folgende Fehler ist aufgetreten: {{error}}",
|
||||
"internalErrorTitle": "Interner Fehler",
|
||||
@@ -193,9 +193,9 @@
|
||||
"kickParticipantDialog": "Wollen Sie diesen Teilnehmer wirklich entfernen?",
|
||||
"kickParticipantTitle": "Teilnehmer stummschalten?",
|
||||
"kickTitle": "Autsch! {{participantDisplayName}} hat Sie aus dem Meeting geworfen.",
|
||||
"liveStreaming": "Live-Streaming",
|
||||
"liveStreamingDisabledForGuestTooltip": "Gäste können kein Live-Streaming starten.",
|
||||
"liveStreamingDisabledTooltip": "Starten des Live-Streams deaktiviert.",
|
||||
"liveStreaming": "Livestreaming",
|
||||
"liveStreamingDisabledForGuestTooltip": "Gäste können kein Livestreaming starten.",
|
||||
"liveStreamingDisabledTooltip": "Starten des Livestreams deaktiviert.",
|
||||
"lockMessage": "Die Konferenz konnte nicht gesperrt werden.",
|
||||
"lockRoom": "Meeting $t(lockRoomPasswordUppercase) hinzufügen",
|
||||
"lockTitle": "Sperren fehlgeschlagen",
|
||||
@@ -210,7 +210,7 @@
|
||||
"micPermissionDeniedError": "Die Berechtigung zur Verwendung des Mikrofons wurde nicht erteilt. Sie können trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer können Sie nicht hören. Verwenden Sie die Kamera-Schaltfläche in der Adressleiste um die Berechtigungen zu erteilen.",
|
||||
"micUnknownError": "Das Mikrofon kann aus einem unbekannten Grund nicht verwendet werden.",
|
||||
"muteEveryoneElseDialog": "Einmal stummgeschaltet, können Sie deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.",
|
||||
"muteEveryoneElseTitle": "Alle ausser {{whom}} stummschaten?",
|
||||
"muteEveryoneElseTitle": "Alle außer {{whom}} stummschaten?",
|
||||
"muteEveryoneDialog": "Wollen Sie wirklich alle stummschalten? Sie können deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.",
|
||||
"muteEveryoneTitle": "Alle stummschalten?",
|
||||
"muteEveryoneSelf": "sich selbst",
|
||||
@@ -224,7 +224,7 @@
|
||||
"passwordNotSupported": "Setzen eines Konferenz-Passworts ist nicht unterstützt",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nicht unterstützt",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) erforderlich",
|
||||
"popupError": "Ihr Browser blockiert Pop-ups von dieser Website. Bitte aktivieren Sie Popups in den Sicherheitseinstellungen des Browsers und versuchen Sie es erneut.",
|
||||
"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",
|
||||
"recording": "Aufnahme",
|
||||
"recordingDisabledForGuestTooltip": "Gäste können keine Aufzeichnungen starten.",
|
||||
@@ -233,7 +233,7 @@
|
||||
"remoteControlAllowedMessage": "{{user}} hat die Anfrage zur Fernsteuerung angenommen.",
|
||||
"remoteControlDeniedMessage": "{{user}} hat die Anfrage zur Fernsteuerung verweigert.",
|
||||
"remoteControlErrorMessage": "Beim Anfordern der Fernsteuerungsberechtigung von {{user}} ist ein Fehler aufgetreten.",
|
||||
"remoteControlRequestMessage": "Möchten Sie {{user}} erlauben den Computer fernzusteuern?",
|
||||
"remoteControlRequestMessage": "Möchten Sie {{user}} erlauben, den Computer fernzusteuern?",
|
||||
"remoteControlShareScreenWarning": "Achtung, wenn Sie die Anfrage genehmigen, starten Sie die Bildschirmfreigabe!",
|
||||
"remoteControlStopMessage": "Die Fernsteuerung wurde beendet.",
|
||||
"remoteControlTitle": "Fernsteuerung",
|
||||
@@ -264,21 +264,21 @@
|
||||
"startLiveStreaming": "Einen Livestream starten",
|
||||
"startRecording": "Aufnahme starten",
|
||||
"startRemoteControlErrorMessage": "Beim Versuch die Fernsteuerung zu starten ist ein Fehler aufgetreten.",
|
||||
"stopLiveStreaming": "Live-Streaming stoppen",
|
||||
"stopLiveStreaming": "Livestreaming stoppen",
|
||||
"stopRecording": "Aufnahme stoppen",
|
||||
"stopRecordingWarning": "Sind Sie sicher, dass Sie die Aufnahme stoppen möchten?",
|
||||
"stopStreamingWarning": "Sind Sie sicher, dass Sie das Live-Streaming stoppen möchten?",
|
||||
"stopStreamingWarning": "Sind Sie sicher, dass Sie das Livestreaming stoppen möchten?",
|
||||
"streamKey": "Name/Schlüssel für den Stream",
|
||||
"Submit": "OK",
|
||||
"thankYou": "Danke für die Verwendung von {{appName}}!",
|
||||
"token": "Token",
|
||||
"tokenAuthFailed": "Sie sind nicht berechtigt dieser Konferenz beizutreten.",
|
||||
"tokenAuthFailed": "Sie sind nicht berechtigt, dieser Konferenz beizutreten.",
|
||||
"tokenAuthFailedTitle": "Authentifizierung fehlgeschlagen",
|
||||
"transcribing": "Wird transkribiert",
|
||||
"unlockRoom": "Meeting $t(lockRoomPassword) entfernen",
|
||||
"userPassword": "Benutzerpasswort",
|
||||
"WaitForHostMsg": "Die Konferenz <b>{{room}}</b> wurde noch nicht gestartet. Wenn Sie der Veranstalter sind, authentifizieren Sie sich. Warten Sie andernfalls, bis der Veranstalter erscheint.",
|
||||
"WaitForHostMsgWOk": "Die Konferenz <b>{{room}}</b> wurde noch nicht gestartet. Wenn Sie der Veranstalter sind, drücken Sie zum Authentifizieren auf OK. Warten Sie andernfalls, bis der Veranstalter erscheint.",
|
||||
"WaitForHostMsg": "Die Konferenz <b>{{room}}</b> wurde noch nicht gestartet. Wenn Sie der Organisator sind, authentifizieren Sie sich. Warten Sie andernfalls, bis der Veranstalter erscheint.",
|
||||
"WaitForHostMsgWOk": "Die Konferenz <b>{{room}}</b> wurde noch nicht gestartet. Wenn Sie der Organisator sind, drücken Sie zum Authentifizieren auf OK. Warten Sie andernfalls, bis der Veranstalter erscheint.",
|
||||
"WaitingForHost": "Warten auf den Organisator...",
|
||||
"Yes": "Ja",
|
||||
"yourEntireScreen": "Ganzer Bildschirm"
|
||||
@@ -347,7 +347,7 @@
|
||||
"msg": "Es ist ein Fehler aufgetreten.",
|
||||
"retry": "Erneut versuchen",
|
||||
"support": "Support",
|
||||
"supportMsg": "Wenn der Fehler erneut auftritt, bitte kontaktieren sie"
|
||||
"supportMsg": "Wenn der Fehler erneut auftritt, bitte kontaktieren Sie"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Lokales Video fokussieren",
|
||||
@@ -356,7 +356,7 @@
|
||||
"keyboardShortcuts": "Tastenkürzel",
|
||||
"localRecording": "Lokale Aufzeichnungssteuerelemente ein- oder ausblenden",
|
||||
"mute": "Stummschaltung aktivieren oder deaktivieren",
|
||||
"pushToTalk": "Drücken, um zu sprechen",
|
||||
"pushToTalk": "Push-to-Talk (Sprechtaste)",
|
||||
"raiseHand": "Hand erheben",
|
||||
"showSpeakerStats": "Statistiken für Sprecher anzeigen",
|
||||
"toggleChat": "Chat öffnen oder schließen",
|
||||
@@ -370,31 +370,31 @@
|
||||
"busy": "Es werden Resourcen zum Streamen bereitgestellt. Bitte in ein paar Minuten erneut versuchen.",
|
||||
"busyTitle": "Alle Streaming-Instanzen sind in Gebrauch",
|
||||
"changeSignIn": "Konten wechseln.",
|
||||
"choose": "Live stream auswählen",
|
||||
"choose": "Livestream auswählen",
|
||||
"chooseCTA": "Streaming-Option auswählen. Sie sind aktuell als {{email}} angemeldet.",
|
||||
"enterStreamKey": "Name/Schlüssel für den YouTube Livestream hier eingeben.",
|
||||
"error": "Das Live-Streaming ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
||||
"errorAPI": "Beim abrufen der YouTube Livestreams ist ein Fehler aufgetreten. Bitte versuchen Sie sich erneut anzumelden.",
|
||||
"errorLiveStreamNotEnabled": "Live-Streaming ist für {{email}} nicht aktiviert. Aktivieren Sie das Live-Streaming oder melden Sie sich bei einem Konto mit aktiviertem Live-Streaming an.",
|
||||
"expandedOff": "Live-Streaming wurde angehalten",
|
||||
"enterStreamKey": "Name/Schlüssel für den YouTube-Livestream hier eingeben.",
|
||||
"error": "Das Livestreaming ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
||||
"errorAPI": "Beim Abrufen der YouTube-Livestreams ist ein Fehler aufgetreten. Bitte versuchen Sie, sich erneut anzumelden.",
|
||||
"errorLiveStreamNotEnabled": "Livestreaming ist für {{email}} nicht aktiviert. Aktivieren Sie das Livestreaming oder melden Sie sich bei einem Konto mit aktiviertem Livestreaming an.",
|
||||
"expandedOff": "Livestreaming wurde angehalten",
|
||||
"expandedOn": "Das Meeting wird momentan an YouTube gestreamt.",
|
||||
"expandedPending": "Live-Streaming wird gestartet...",
|
||||
"failedToStart": "Live-Streaming konnte nicht gestartet werden",
|
||||
"getStreamKeyManually": "Wir waren nicht in der Lage, Live-Streams abzurufen. Versuchen Sie, Ihren Live-Stream-Schlüssel von YouTube zu erhalten.",
|
||||
"invalidStreamKey": "Der Live-Stream-Schlüssel ist u. U. falsch.",
|
||||
"off": "Live-Streaming gestoppt",
|
||||
"offBy": "{{name}} stoppte das Live-Streaming",
|
||||
"on": "Live-Streaming",
|
||||
"onBy": "{{name}} startete das Live-Streaming",
|
||||
"pending": "Live-Stream wird gestartet...",
|
||||
"serviceName": "Live Streaming-Dienst",
|
||||
"expandedPending": "Livestreaming wird gestartet...",
|
||||
"failedToStart": "Livestreaming konnte nicht gestartet werden",
|
||||
"getStreamKeyManually": "Wir waren nicht in der Lage, Livestreams abzurufen. Versuchen Sie, Ihren Livestream-Schlüssel von YouTube zu erhalten.",
|
||||
"invalidStreamKey": "Der Livestream-Schlüssel ist u. U. falsch.",
|
||||
"off": "Livestreaming gestoppt",
|
||||
"offBy": "{{name}} stoppte das Livestreaming",
|
||||
"on": "Livestreaming",
|
||||
"onBy": "{{name}} startete das Livestreaming",
|
||||
"pending": "Livestream wird gestartet...",
|
||||
"serviceName": "Livestreaming-Dienst",
|
||||
"signedInAs": "Sie sind derzeit angemeldet als:",
|
||||
"signIn": "Mit Google anmelden",
|
||||
"signInCTA": "Anmelden oder den Name/Schlüssel des YouTube Livestreams eingeben.",
|
||||
"signInCTA": "Anmelden oder den Namen/Schlüssel des YouTube-Livestreams eingeben.",
|
||||
"signOut": "Abmelden",
|
||||
"start": "Einen Livestream starten",
|
||||
"streamIdHelp": "Was ist das?",
|
||||
"unavailableTitle": "Live-Streaming nicht verfügbar"
|
||||
"unavailableTitle": "Livestreaming nicht verfügbar"
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -413,7 +413,7 @@
|
||||
"messages": {
|
||||
"engaged": "Lokale Aufzeichnung ist aktiviert",
|
||||
"finished": "Aufzeichnung der Sitzung {{token}} ist beendet. Senden Sie die aufgezeichnete Datei an den Moderator.",
|
||||
"finishedModerator": "Aufzeichnung der Sitzung {{token}} ist beendet. Die Aufzeichnung der lokalen Verlaufs wurde gespeichert. Bitten Sie die anderen Teilnehmer, ihre Aufzeichnungen zu übermitteln.",
|
||||
"finishedModerator": "Aufzeichnung der Sitzung {{token}} ist beendet. Die Aufzeichnung des lokalen Verlaufs wurde gespeichert. Bitten Sie die anderen Teilnehmer, ihre Aufzeichnungen zu übermitteln.",
|
||||
"notModerator": "Sie sind nicht der Moderator. Sie können die lokale Aufzeichnung nicht starten oder stoppen."
|
||||
},
|
||||
"moderator": "Moderator",
|
||||
@@ -451,8 +451,8 @@
|
||||
"raisedHand": "{{name}} möchte sprechen.",
|
||||
"somebody": "Jemand",
|
||||
"startSilentTitle": "Sie sind ohne Audioausgabe beigetreten!",
|
||||
"startSilentDescription": "Treten Sie dem Meeting noch einma bei, um Ihr Audio zu aktivieren",
|
||||
"suboptimalExperienceDescription": "Tut uns leid, aber die Konferenz wird mit {{appName}} kein grossartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der <a href=\"static/recommendedBrowsers.html\" target=\"_blank\">vollständig unterstützen Browser</a>.",
|
||||
"startSilentDescription": "Treten Sie dem Meeting noch einmal bei, um Ihr Audio zu aktivieren",
|
||||
"suboptimalExperienceDescription": "Tut uns leid, aber die Konferenz wird mit {{appName}} kein großartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der <a href=\"static/recommendedBrowsers.html\" target=\"_blank\">vollständig unterstützen Browser</a>.",
|
||||
"suboptimalExperienceTitle": "Browserwarnung",
|
||||
"unmute": "Stummschaltung aufheben",
|
||||
"newDeviceCameraTitle": "Neue Kamera erkannt",
|
||||
@@ -479,7 +479,7 @@
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Anzeigename festlegen",
|
||||
"setEmailInput": "E-Mail eingeben",
|
||||
"setEmailLabel": "E-Mail Adresse für Gravatar",
|
||||
"setEmailLabel": "E-Mail-Adresse für Gravatar",
|
||||
"title": "Profil"
|
||||
},
|
||||
"raisedHand": "Ich möchte sprechen",
|
||||
@@ -487,7 +487,7 @@
|
||||
"authDropboxText": "In Dropbox hochladen",
|
||||
"availableSpace": "Verfügbarer Speicherplatz: {{spaceLeft}} MB (ca. {{duration}} Minuten Aufzeichnung)",
|
||||
"beta": "BETA",
|
||||
"busy": "Es werden Resourcen für eine Aufnahme bereitgestellt. Bitte in ein paar Minuten erneut versuchen.",
|
||||
"busy": "Es werden Ressourcen für eine Aufnahme bereitgestellt. Bitte in ein paar Minuten erneut versuchen.",
|
||||
"busyTitle": "Alle Aufnahme-Instanzen sind in Gebrauch",
|
||||
"error": "Die Aufzeichnung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
||||
"expandedOff": "Aufzeichnung wurde gestoppt",
|
||||
@@ -511,14 +511,14 @@
|
||||
"unavailableTitle": "Aufnahme nicht verfügbar"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Ziehen um zu aktualisieren"
|
||||
"pullToRefresh": "Ziehen, um zu aktualisieren"
|
||||
},
|
||||
"settings": {
|
||||
"calendar": {
|
||||
"about": "Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Veranstaltungen zu ermöglichen.",
|
||||
"about": "Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Termine zu ermöglichen.",
|
||||
"disconnect": "Getrennt",
|
||||
"microsoftSignIn": "Mit Microsoft anmelden",
|
||||
"signedIn": "Momentan wird auf Kalenderveranstaltungen von {{email}} zugegriffen. Klicken Sie auf die folgende Schaltfläche „Trennen“, um den Zugriff auf die Kalenderveranstaltungen zu stoppen.",
|
||||
"signedIn": "Momentan wird auf Kalendertermine von {{email}} zugegriffen. Klicken Sie auf die folgende Schaltfläche „Trennen“, um den Zugriff auf die Kalendertermine zu stoppen.",
|
||||
"title": "Kalender"
|
||||
},
|
||||
"devices": "Geräte",
|
||||
@@ -540,7 +540,7 @@
|
||||
"advanced": "Erweitert",
|
||||
"alertOk": "OK",
|
||||
"alertTitle": "Warnung",
|
||||
"alertURLText": "Die angegebene Server URL ist ungültig",
|
||||
"alertURLText": "Die angegebene Server-URL ist ungültig",
|
||||
"buildInfoSection": "Build-Informationen",
|
||||
"conferenceSection": "Konferenz",
|
||||
"disableCallIntegration": "Native Anrufintegration deaktivieren",
|
||||
@@ -549,7 +549,7 @@
|
||||
"email": "E-Mail",
|
||||
"header": "Einstellungen",
|
||||
"profileSection": "Profil",
|
||||
"serverURL": "Server URL",
|
||||
"serverURL": "Server-URL",
|
||||
"showAdvanced": "Erweiterte Einstellungen anzeigen",
|
||||
"startWithAudioMuted": "Stumm beitreten",
|
||||
"startWithVideoMuted": "Ohne Video beitreten",
|
||||
@@ -574,20 +574,20 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"rejoinKeyTitle": "Erneut teilnehmen",
|
||||
"text": "<i>Erneut teilnehmen</i> Schaltfläche betätigen um erneut zu verbinden.",
|
||||
"title": "Die Konferenz wurde unterbrochen, weil der Standbymodus aktiviert wurde."
|
||||
"text": "„<i>Erneut teilnehmen</i>“-Schaltfläche betätigen, um erneut zu verbinden.",
|
||||
"title": "Die Konferenz wurde unterbrochen, weil der Standby-Modus aktiviert wurde."
|
||||
},
|
||||
"toolbar": {
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Nur Audio ein-/ausschalten",
|
||||
"audioOnly": "„Nur Audio“ ein-/ausschalten",
|
||||
"audioRoute": "Audiogerät auswählen",
|
||||
"callQuality": "Qualitätseinstellungen",
|
||||
"cc": "Untertitel ein-/ausschalten",
|
||||
"chat": "Chatfenster ein-/ausblenden",
|
||||
"document": "Geteiltes Dokument schliessen",
|
||||
"document": "Geteiltes Dokument schließen",
|
||||
"download": "Unsere Apps herunterladen",
|
||||
"feedback": "Feedback hinterlassen",
|
||||
"fullScreen": "Vollbildschirm ein-/ausblenden",
|
||||
"fullScreen": "Vollbildmodus aktivieren/deaktivieren",
|
||||
"hangup": "Anruf beenden",
|
||||
"help": "Hilfe",
|
||||
"invite": "Teilnehmer einladen",
|
||||
@@ -623,9 +623,9 @@
|
||||
"audioRoute": "Audiogerät auswählen",
|
||||
"authenticate": "Anmelden",
|
||||
"callQuality": "Qualitätseinstellungen",
|
||||
"chat": "Chat öffnen / schliessen",
|
||||
"chat": "Chat öffnen / schließen",
|
||||
"closeChat": "Chat schließen",
|
||||
"documentClose": "Geteiltes Dokument schliessen",
|
||||
"documentClose": "Geteiltes Dokument schließen",
|
||||
"documentOpen": "Geteiltes Dokument öffnen",
|
||||
"download": "Unsere Apps herunterladen",
|
||||
"enterFullScreen": "Vollbildmodus",
|
||||
@@ -649,7 +649,7 @@
|
||||
"noAudioSignalDialInDesc": "Sie können sich auch über die Einwahlnummer einwählen:",
|
||||
"noAudioSignalDialInLinkDesc" : "Einwahlnummern:",
|
||||
"noisyAudioInputTitle": "Ihr Mikrofon scheint lärmintensiv zu sein!",
|
||||
"noisyAudioInputDesc": "Es klingt, als ob Ihr Mikrofon Geräusche macht. Bitte überlegen Sie, ob Sie das Gerät stummschalten oder austauschen wollen.",
|
||||
"noisyAudioInputDesc": "Es klingt, als ob Ihr Mikrofon Störgeräusche verursacht. Bitte überlegen Sie, ob Sie das Gerät stummschalten oder austauschen wollen.",
|
||||
"openChat": "Chat öffnen",
|
||||
"pip": "Bild-in-Bild-Modus einschalten",
|
||||
"privateMessage": "Private Nachricht senden",
|
||||
@@ -666,7 +666,7 @@
|
||||
"stopScreenSharing": "Bildschirmfreigabe stoppen",
|
||||
"stopSubtitles": "Untertitel ausschalten",
|
||||
"stopSharedVideo": "YouTube-Video stoppen",
|
||||
"talkWhileMutedPopup": "Versuchen sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.",
|
||||
"talkWhileMutedPopup": "Versuchen Sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.",
|
||||
"tileViewToggle": "Kachelansicht ein-/ausschalten",
|
||||
"toggleCamera": "Kamera wechseln",
|
||||
"videomute": "Kamera starten / stoppen",
|
||||
@@ -710,19 +710,19 @@
|
||||
"videoStatus": {
|
||||
"audioOnly": "AUD",
|
||||
"audioOnlyExpanded": "Sie befinden sich im Modus „Nur Audio“. Dieser Modus benötigt weniger Bandbreite, Sie sehen jedoch nicht die Videos der anderen.",
|
||||
"callQuality": "Video-Qualität",
|
||||
"callQuality": "Videoqualität",
|
||||
"hd": "HD",
|
||||
"hdTooltip": "Video wird in hoher Auflösung angezeigt",
|
||||
"highDefinition": "Hohe Auflösung",
|
||||
"labelTooiltipNoVideo": "Kein Video",
|
||||
"labelTooltipAudioOnly": "Nur-Audio Modus aktiv",
|
||||
"labelTooltipAudioOnly": "„Nur Audio“-Modus aktiv",
|
||||
"ld": "LD",
|
||||
"ldTooltip": "Video wird in niedriger Auflösung angezeigt",
|
||||
"lowDefinition": "Niedrige Auflösung",
|
||||
"onlyAudioAvailable": "Nur Ton",
|
||||
"onlyAudioSupported": "In diesem Browser wird nur Audio unterstützt.",
|
||||
"p2pEnabled": "Ende-zu-Ende aktiviert",
|
||||
"p2pVideoQualityDescription": "Im Ende-zu-Ende-Modus kann die empfangene Videoqualität nur zwischen hoch und Nur-Audio umgeschaltet werden. Andere Einstellungen werden erst beim Verlassen des Ende-zu-Ende-Modus berücksichtigt.",
|
||||
"p2pVideoQualityDescription": "Im Ende-zu-Ende-Modus kann die empfangene Videoqualität nur zwischen „Hoch“ und „Nur Audio“ umgeschaltet werden. Andere Einstellungen werden erst beim Verlassen des Ende-zu-Ende-Modus berücksichtigt.",
|
||||
"recHighDefinitionOnly": "Hohe Qualität wird bevorzugt.",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Video wird in Standardauflösung angezeigt",
|
||||
@@ -745,9 +745,9 @@
|
||||
"join": "Zum Teilnehmen tippen",
|
||||
"roomname": "Konferenzname eingeben"
|
||||
},
|
||||
"appDescription": "Auf geht's! Beginne eine Videokonferenz mit dem ganzen Team. Oder besser noch, lade alle ein, die du kennst. {{app}} ist eine vollständig verschlüsselte, aus 100% Open-Source-Software bestehende Videokonferenzlösung, die du den ganzen Tag kostenlos verwenden kannst — ohne Registrierung.",
|
||||
"appDescription": "Auf geht's! Starten Sie eine Videokonferenz mit dem ganzen Team. Oder besser noch: Laden Sie alle ein, die Sie kennen. {{app}} ist eine vollständig verschlüsselte, aus 100% Open-Source-Software bestehende Videokonferenzlösung, die Sie den ganzen Tag kostenlos verwenden können — ohne Registrierung.",
|
||||
"audioVideoSwitch": {
|
||||
"audio": "Sprache",
|
||||
"audio": "Audio",
|
||||
"video": "Video"
|
||||
},
|
||||
"calendar": "Kalender",
|
||||
@@ -759,15 +759,15 @@
|
||||
"goSmall": "Los",
|
||||
"join": "Beitreten",
|
||||
"info": "Informationen",
|
||||
"privacy": "Privatsphäre",
|
||||
"privacy": "Datenschutz",
|
||||
"recentList": "Letzte",
|
||||
"recentListDelete": "Löschen",
|
||||
"recentListEmpty": "Die Liste „Letzte“ ist momentan leer. Chatten Sie mit Ihrem Team. Sie finden all Ihre letzten Meetings hier.",
|
||||
"reducedUIText": "Willkommen bei {{app}}!",
|
||||
"roomname": "Konferenzname eingeben",
|
||||
"roomnameHint": "Name oder URL der Konferenz, der Sie beitreten möchten. Sie können einen Namen erfinden, er muss nur den anderen Teilnehmern übermittelt werden, damit sie der gleichen Konferenz beitreten.",
|
||||
"sendFeedback": "Senden Sie uns Ihr Feedback",
|
||||
"terms": "Bedingungen",
|
||||
"roomnameHint": "Name oder URL der Konferenz, der Sie beitreten möchten. Sie können einen Namen erfinden, er muss nur den anderen Teilnehmern übermittelt werden, damit diese der gleichen Konferenz beitreten.",
|
||||
"sendFeedback": "Feedback senden",
|
||||
"terms": "AGB",
|
||||
"title": "Sichere, mit umfassenden Funktionen ausgestattete und vollkommen kostenlose Videokonferenzen"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
"bluetooth": "Bluetooth",
|
||||
"headphones": "Kõrvaklapid",
|
||||
"phone": "Telefon",
|
||||
"speaker": "Kõlar"
|
||||
"speaker": "Kõlar",
|
||||
"none": "Heli vahendid pole kättesaadavad"
|
||||
},
|
||||
"audioOnly": {
|
||||
"audioOnly": "Ainult heli"
|
||||
@@ -46,12 +47,22 @@
|
||||
},
|
||||
"chat": {
|
||||
"error": "Viga: sõnumi \"{{originalText}}\" saatmine ebaõnnestus. Põhjus: {{error}}",
|
||||
"fieldPlaceHolder": "Sisesta oma sõnum siia",
|
||||
"messagebox": "Sisesta sõnum",
|
||||
"messageTo": "Privaatsõnum kasutajale {{recipient}}",
|
||||
"noMessagesMessage": "Kirjavahetust pole veel alustatud. Alusta kirjavahetust siin!",
|
||||
"nickname": {
|
||||
"popover": "Sisesta nimi",
|
||||
"title": "Sisesta nimi, et kõnega alustada"
|
||||
},
|
||||
"title": "Kõne"
|
||||
"privateNotice": "Privaatsõnum kasutajale {{recipient}}",
|
||||
"title": "Kõne",
|
||||
"you": "you"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Paigalda Google Kalendri laiendus ja Office 365 integratsioon",
|
||||
"buttonText": "Paigalda Chrome'i laiendus",
|
||||
"dontShowAgain": "Ära rohkem näita"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Kõnega ühendamine..."
|
||||
@@ -66,7 +77,10 @@
|
||||
"DISCONNECTED": "Ühendus katkestatud",
|
||||
"DISCONNECTING": "Ühenduse katkestamine...",
|
||||
"ERROR": "Viga",
|
||||
"RECONNECTING": "Võrguühenduse viga. Ühenduse taastamine..."
|
||||
"FETCH_SESSION_ID": "Sessiooni-ID püüdmine...",
|
||||
"GET_SESSION_ID_ERROR": "Sessiooni-ID püüdmisel tekkis viga: {{code}}",
|
||||
"GOT_SESSION_ID": "Sessiooni-ID püüdmine... Tehtud",
|
||||
"LOW_BANDWIDTH": "Kasutaja {{displayName}} video on ülekandekiiruse parandamiseks välja lülitatud"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Aadress:",
|
||||
@@ -74,6 +88,7 @@
|
||||
"bitrate": "Andmeedastuskiirus:",
|
||||
"bridgeCount": "Serverite arv: ",
|
||||
"connectedTo": "Ühendatud:",
|
||||
"e2e_rtt": "E2E RTT:",
|
||||
"framerate": "Ekraani eraldusvõime:",
|
||||
"less": "Näita vähem",
|
||||
"localaddress": "Lokaalne aadress:",
|
||||
@@ -96,8 +111,7 @@
|
||||
"resolution": "Resolutsioon:",
|
||||
"status": "Ühendus:",
|
||||
"transport": "Transport:",
|
||||
"transport_plural": "Transpordid:",
|
||||
"turn": " (turn)"
|
||||
"transport_plural": "Transpordid:"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Varem",
|
||||
@@ -107,7 +121,7 @@
|
||||
"deepLinking": {
|
||||
"appNotInstalled": "Kõnega liitumiseks läbi mobiiltelefoni on vaja paigaldada {{app}} rakendus.",
|
||||
"description": "Midagi ei juhtunud? Proovisime ühendust luua töölaua rakendusega. Proovi uuesti või käivita {{app}} rakendus.",
|
||||
"descriptionWithoutWeb": "",
|
||||
"descriptionWithoutWeb": "Midagi ei juhtunud? Televastuvõttu prooviti avada töölaua rakendusest {{app}}.",
|
||||
"downloadApp": "Laadi rakendus alla",
|
||||
"launchWebButton": "Käivita veebis",
|
||||
"openApp": "Jätka töölaua rakendusega",
|
||||
@@ -115,6 +129,7 @@
|
||||
"tryAgainButton": "Proovi töölaua rakendusega uuesti "
|
||||
},
|
||||
"defaultLink": "nt {{url}}",
|
||||
"defaultNickname": "nt. Mari Maasikas",
|
||||
"deviceError": {
|
||||
"cameraError": "Ei saanud kaameraga ühendust",
|
||||
"cameraPermission": "Puudub õigus kasutada kaamerat",
|
||||
@@ -167,7 +182,7 @@
|
||||
"goToStore": "Mine veebipoodi",
|
||||
"gracefulShutdown": "Rakendus on hoolduseks ajutiselt maas. Proovi hiljem uuesti!",
|
||||
"IamHost": "Mina olen võõrustaja",
|
||||
"incorrectRoomLockPassword": "",
|
||||
"incorrectRoomLockPassword": "Vale parool",
|
||||
"incorrectPassword": "Vale kasutajanimi või parool",
|
||||
"inlineInstallationMsg": "Töölauale tuleb paigaldada jagamise laiendus.",
|
||||
"inlineInstallExtension": "Paiglada kohe",
|
||||
@@ -194,6 +209,12 @@
|
||||
"micNotSendingDataTitle": "Mikrofon pole kättesaadav.",
|
||||
"micPermissionDeniedError": "Mikrofoni kasutamine on keelatud. Kõnega on võimalik ühineda, aga teised Sind ei kuule. Mikrofoni kasutamiseks vajuta aadressiribal mikrofoni nupule.",
|
||||
"micUnknownError": "Mikrofoni ei saa kasutada. Põhjus teadmata.",
|
||||
"muteEveryoneElseDialog": "Peale mikrofoni vaigistamist saab ainult kasutaja ise oma mikrofoni tagasi sisse lülitada.",
|
||||
"muteEveryoneElseTitle": "Vaigista kõikide teiste mikrofonid, välja arvatud {{whom}}?",
|
||||
"muteEveryoneDialog": "Oled kindel, et soovid kõikide teiste mikrofonid vaigistada? Neid saab tagasi sisse lülitada ainult kasutaja ise.",
|
||||
"muteEveryoneTitle": "Vaigista kõik?",
|
||||
"muteEveryoneSelf": "Sina ise",
|
||||
"muteEveryoneStartMuted": "Edaspidi alustavad kõik välja lülitatud mikrofonidega",
|
||||
"muteParticipantBody": "Teiste kasutajate mikrofoni ei saa sisse lülitada. Kasutaja saab ise otsutada, kas mikrofon on sees või väljas.",
|
||||
"muteParticipantButton": "Lülita mikrofon välja",
|
||||
"muteParticipantDialog": "Oled kindel, et soovid kasutaja mikrofoni välja lülitada? Seda saab ainult kasutaja ise sisse tagasi lülitada.",
|
||||
@@ -228,6 +249,10 @@
|
||||
"screenSharingFirefoxPermissionDeniedError": "Ekraani jagamisega läks midagi valesti! Veendu, et oled ekraani jagamiseks loa andnud.",
|
||||
"screenSharingFirefoxPermissionDeniedTitle": "Oih, ekraani jagamist ei saanud alustada!",
|
||||
"screenSharingPermissionDeniedError": "Oih, midagi läks valesti ekraanijagamise laienduse õigustega! Värskenda ja proovi uuesti.",
|
||||
"sendPrivateMessage": "Sulle saabus privaatsõnum. Kas soovid vastata privaatselt või avalikult?",
|
||||
"sendPrivateMessageCancel": "Saada sõnum avalikult",
|
||||
"sendPrivateMessageOk": "Saada sõnum privaatselt",
|
||||
"sendPrivateMessageTitle": "Saada privaatselt?",
|
||||
"serviceUnavailable": "Teenus pole kättesaadav",
|
||||
"sessTerminated": "Kõne lõpetatud",
|
||||
"Share": "Jaga",
|
||||
@@ -261,6 +286,9 @@
|
||||
"dialOut": {
|
||||
"statusMessage": "on staatusega {{status}}"
|
||||
},
|
||||
"documentSharing": {
|
||||
"title": "Jagatud dokument"
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Keskmine",
|
||||
"bad": "Halb",
|
||||
@@ -274,7 +302,7 @@
|
||||
"answer": "Vasta",
|
||||
"audioCallTitle": "Sissetulev kõne",
|
||||
"decline": "Lõpeta",
|
||||
"productLabel": "Jitsi Meet televastuvõtt",
|
||||
"productLabel": "Jitsi",
|
||||
"videoCallTitle": "Sissetulev videokõne"
|
||||
},
|
||||
"info": {
|
||||
@@ -292,7 +320,7 @@
|
||||
"genericError": "Oih, midagi läks valesti!",
|
||||
"inviteLiveStream": "Otseülekande nägemiseks vajuta lingile: {{url}}",
|
||||
"invitePhone": "Üks klikk heliga sissehelistamiseks: {{number}},,{{conferenceID}}#",
|
||||
"invitePhoneAlternatives": "",
|
||||
"invitePhoneAlternatives": "Otsid teist sissehelistamise numbrit?\nVaata sissehelistamise numbreid: {{url}}\n\n\nKui helistad läbi ruumi, ühine kõnega väljalülitatud mikrofoni režiimis: {{silentUrl}}",
|
||||
"inviteURLFirstPartGeneral": "Oled kõnesse kutsutud.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} kutsub Sind kõnesse.\n",
|
||||
"inviteURLSecondPart": "\nÜhine kõnega:\n{{url}}\n",
|
||||
@@ -335,7 +363,8 @@
|
||||
"toggleFilmstrip": "Näita/peida video eelvaade",
|
||||
"toggleScreensharing": "Vaheta kaamera ja ekraanijagamise vahel",
|
||||
"toggleShortcuts": "Näita/peida klaviatuuri kiirvalikud",
|
||||
"videoMute": "Lülita kaamera sisse/välja"
|
||||
"videoMute": "Lülita kaamera sisse/välja",
|
||||
"videoQuality": "Halda kõne kvaliteeti"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"busy": "Toimub ülekande ressursi vabastamine. Proovi mõne minuti pärast uuesti.",
|
||||
@@ -354,7 +383,9 @@
|
||||
"getStreamKeyManually": "Ülekandjaid ei leitud. Leia YouTube’st otseülekande võti.",
|
||||
"invalidStreamKey": "Otseülekande võti võib olla vale.",
|
||||
"off": "Otseülekanne on peatatud",
|
||||
"offBy": "{{name}} lõpetas otseülekande",
|
||||
"on": "Otseülekanne",
|
||||
"onBy": "{{name}} alustas otseülekandega",
|
||||
"pending": "Otseülekande alustamine...",
|
||||
"serviceName": "Otseülekande teenus",
|
||||
"signedInAs": "Oled sisse logitud kasutajana:",
|
||||
@@ -414,16 +445,16 @@
|
||||
"muted": "Alustasid kõnet väljalülitatud mikrofoniga.",
|
||||
"mutedTitle": "Mikrofon on välja lülitatud!",
|
||||
"mutedRemotelyTitle": "Sinu mikrofon lülitati välja kasutaja {{participantDisplayName}} poolt!",
|
||||
"mutedRemotelyDescription": "",
|
||||
"passwordRemovedRemotely": "",
|
||||
"passwordSetRemotely": "",
|
||||
"mutedRemotelyDescription": "Saad alati oma mikrofoni sisse lülitada, kui soovid rääkida. Lülita mikrofon peale rääkimist uuesti välja liigse müra ja kaja vältimiseks.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) eemaldatud teise kasutaja poolt",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) lisatud teise kasutaja poolt",
|
||||
"raisedHand": "{{name}} soovib rääkida.",
|
||||
"somebody": "Keegi",
|
||||
"startSilentTitle": "",
|
||||
"startSilentDescription": "",
|
||||
"startSilentTitle": "Ühinesid ilma mikrofonita!",
|
||||
"startSilentDescription": "Mikrofoni kasutamiseks ühine kõnega uuesti",
|
||||
"suboptimalExperienceDescription": "Rakenduse {{appName}} parima kvaliteedi tagamiseks palun kasuta <a href='static/recommendedBrowsers.html' target='_blank'>ühte nendest veebilehitsejatest</a>.",
|
||||
"suboptimalExperienceTitle": "Veebilehitseja hoiatus",
|
||||
"unmute": "",
|
||||
"unmute": "Lülita mikrofon sisse",
|
||||
"newDeviceCameraTitle": "Leitud uus kaamera",
|
||||
"newDeviceAudioTitle": "Leitud uus heliseadeldis",
|
||||
"newDeviceAction": "Kasuta"
|
||||
@@ -451,6 +482,7 @@
|
||||
"setEmailLabel": "Sisesta gravatar email",
|
||||
"title": "Profiil"
|
||||
},
|
||||
"raisedHand": "Soovin rääkida",
|
||||
"recording": {
|
||||
"authDropboxText": "Lisa Dropbox’i",
|
||||
"availableSpace": "Vaba ruum: {{spaceLeft}} MB (ca {{duration}} minutit salvestamist)",
|
||||
@@ -466,7 +498,9 @@
|
||||
"live": "Otse",
|
||||
"loggedIn": "Sisseloginud kasutajana {{userName}}",
|
||||
"off": "Salvestamine on lõpetatud",
|
||||
"offBy": "{{name}} lõpetas salvestamise",
|
||||
"on": "Salvestatakse",
|
||||
"onBy": "{{name}} alustas salvestamist",
|
||||
"pending": "Kõne salvestamise ettevalmistus...",
|
||||
"rec": "REC",
|
||||
"serviceDescription": "Salvestus toimub teenuse kaudu",
|
||||
@@ -503,16 +537,20 @@
|
||||
"title": "Seaded"
|
||||
},
|
||||
"settingsView": {
|
||||
"advanced": "Täpsem",
|
||||
"alertOk": "OK",
|
||||
"alertTitle": "Hoiatus",
|
||||
"alertURLText": "Sisestatud link ei ole õige",
|
||||
"buildInfoSection": "Versioon",
|
||||
"conferenceSection": "Kõne",
|
||||
"disableCallIntegration": "Lülita kohaliku kõne integratsioon välja",
|
||||
"disableP2P": "Lülita otseühendus välja",
|
||||
"displayName": "Kasutatav nimi",
|
||||
"email": "E-mail",
|
||||
"header": "Seaded",
|
||||
"profileSection": "Profiil",
|
||||
"serverURL": "Serveri link",
|
||||
"showAdvanced": "Näita täpsemaid seadistusi",
|
||||
"startWithAudioMuted": "Alusta väljalülitatud heliga",
|
||||
"startWithVideoMuted": "Alusta väljalülitatud videoga",
|
||||
"version": "Versioon"
|
||||
@@ -547,17 +585,22 @@
|
||||
"cc": "Kasuta subtiitreid",
|
||||
"chat": "Kasuta vestluse akent",
|
||||
"document": "Kasuta jagatud dokumente",
|
||||
"download": "Laadi rakendus alla",
|
||||
"feedback": "Jäta tagasiside",
|
||||
"fullScreen": "Kasuta täisekraani",
|
||||
"hangup": "Lahku kõnest",
|
||||
"help": "Abi",
|
||||
"invite": "Kutsu inimesi",
|
||||
"kick": "Eemalda kõneleja",
|
||||
"localRecording": "Näita salvestamise paneeli",
|
||||
"lockRoom": "Kasuta kõne parooli",
|
||||
"moreActions": "Kasuta toimingute menüüd",
|
||||
"moreActionsMenu": "Toimingute menüü",
|
||||
"moreOptions": "Näita rohkem valikuid",
|
||||
"mute": "Lülita heli välja",
|
||||
"muteEveryone": "Vaigista kõikide mikrofonid",
|
||||
"pip": "Kasuta pilt-pildis vaadet",
|
||||
"privateMessage": "Saada privaatsõnum",
|
||||
"profile": "Muuda profiili",
|
||||
"raiseHand": "Käe tõstmine",
|
||||
"recording": "Salvestamine",
|
||||
@@ -567,12 +610,12 @@
|
||||
"shareRoom": "Kutsu",
|
||||
"shareYourScreen": "Jaga ekraani",
|
||||
"shortcuts": "Kasuta kiirvalikuid",
|
||||
"show": "",
|
||||
"show": "Näita laval",
|
||||
"speakerStats": "Kõnelejate statistika",
|
||||
"tileView": "Paneelvaade",
|
||||
"toggleCamera": "Kasuta kaamerat",
|
||||
"videomute": "Video väljalülitamine",
|
||||
"videoblur": ""
|
||||
"videoblur": "Video hägustamine"
|
||||
},
|
||||
"addPeople": "Lisa kõnesse inimesi",
|
||||
"audioOnlyOff": "Lülita “ainult heli” valik välja",
|
||||
@@ -584,20 +627,32 @@
|
||||
"closeChat": "Sulge vestlus",
|
||||
"documentClose": "Sulge jagatud dokument",
|
||||
"documentOpen": "Ava jagatud dokument",
|
||||
"download": "Laadi rakendus alla",
|
||||
"enterFullScreen": "Vaata täisekraanil",
|
||||
"enterTileView": "Vaata paneelvaates",
|
||||
"exitFullScreen": "Välju täisekraani vaatest",
|
||||
"exitTileView": "Välju paneelvaatest",
|
||||
"feedback": "Jäta tagasiside",
|
||||
"hangup": "Lahku",
|
||||
"help": "Abi",
|
||||
"invite": "Kutsu",
|
||||
"login": "Logi sisse",
|
||||
"logout": "Logi välja",
|
||||
"lowerYourHand": "Langeta kätt",
|
||||
"moreActions": "Rohkem tegevusi",
|
||||
"moreOptions": "Rohkem valikuid",
|
||||
"mute": "Mikrofon sisse/välja",
|
||||
"muteEveryone": "Vaigista kõikide mikrofonid",
|
||||
"noAudioSignalTitle": "Mikrofon ei püüa sisendit kinni!",
|
||||
"noAudioSignalDesc": "Kui Sa ei lülitanud mikrofoni seadistustest tahtlikult välja, kaalu seadme vahetamist.",
|
||||
"noAudioSignalDescSuggestion": "Kui Sa ei lülitanud mikrofoni seadistustest tahtlikult välja, kaalu seadme vahetamist.",
|
||||
"noAudioSignalDialInDesc": "Võid sisse helistada valides:",
|
||||
"noAudioSignalDialInLinkDesc" : "Sissehelistamise numbrid",
|
||||
"noisyAudioInputTitle": "Mikrofonis on müra! Tundub, et läbi mikrofoni kostub palju helisid. Kaalu mikrofoni välja lülitamist või seadme vahetamist.",
|
||||
"noisyAudioInputDesc": "Tundub, et läbi mikrofoni kostub palju helisid. Kaalu mikrofoni välja lülitamist või seadme vahetamist.",
|
||||
"openChat": "Ava vestlus",
|
||||
"pip": "Ava pilt-pildis vaade",
|
||||
"privateMessage": "Saada privaatsõnum",
|
||||
"profile": "Muuda profiili",
|
||||
"raiseHand": "Tõsta/langeta kätt",
|
||||
"raiseYourHand": "Tõsta kätt",
|
||||
@@ -615,8 +670,8 @@
|
||||
"tileViewToggle": "Näita paneelvaadet",
|
||||
"toggleCamera": "Kasuta kaamerat",
|
||||
"videomute": "Kaamera sisse/välja",
|
||||
"startvideoblur": "",
|
||||
"stopvideoblur": ""
|
||||
"startvideoblur": "Tausta hägustamine",
|
||||
"stopvideoblur": "Lülita tausta hägustamine välja"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Subtiitrid sisse/välja",
|
||||
@@ -657,28 +712,32 @@
|
||||
"audioOnlyExpanded": "Kasutad kõnes ainult heli. See hõivab ülekandekiirust vähem, aga video jagamine on välja lülitatud.",
|
||||
"callQuality": "Kõne kvaliteet",
|
||||
"hd": "HD",
|
||||
"hdTooltip": "Video vaatamine kõrgkvaliteediga",
|
||||
"highDefinition": "Kõrgresolutsioon",
|
||||
"labelTooiltipNoVideo": "Video puudub",
|
||||
"labelTooltipAudioOnly": "Valitud on “ainult heli” seadistus",
|
||||
"ld": "LD",
|
||||
"lowDefinition": "Madal resolutsioon",
|
||||
"ldTooltip": "Video vaatamine madala kvaliteediga",
|
||||
"lowDefinition": "Madal",
|
||||
"onlyAudioAvailable": "Saab kasutada ainult heli",
|
||||
"onlyAudioSupported": "Selles veebilehitsejas on toetatud ainult heli.",
|
||||
"p2pEnabled": "Otseühendus on sisse lülitatud",
|
||||
"p2pVideoQualityDescription": "Otseühenduse režiimis saab vastuvõetava kõne heli olla “ainult heli“, või kõrge. Teisi seadistusi ei saa valida.",
|
||||
"recHighDefinitionOnly": "Eelistan kõrgresolutsiooni.",
|
||||
"sd": "SD",
|
||||
"standardDefinition": "Vaikimisi kasutatav resolutsioon"
|
||||
"sdTooltip": "Video vaatamine vaikekvaliteediga",
|
||||
"standardDefinition": "Vaike resolutsioon"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"domute": "Lülita mikrofon välja",
|
||||
"domuteOthers": "Vaigista teiste mikrofonid",
|
||||
"flip": "Pööra",
|
||||
"kick": "Eemalda kõnest",
|
||||
"moderator": "Moderaator",
|
||||
"mute": "Kasutaja mikrofon välja lülitatud",
|
||||
"muted": "Mikrofon välja lülitatud",
|
||||
"remoteControl": "Kaugjuhtimine",
|
||||
"show": "",
|
||||
"show": "Näita laval",
|
||||
"videomute": "Kasutaja on kaamera peatanud"
|
||||
},
|
||||
"welcomepage": {
|
||||
@@ -693,20 +752,26 @@
|
||||
},
|
||||
"calendar": "Kalender",
|
||||
"connectCalendarButton": "Ühenda kalender",
|
||||
"connectCalendarText": "",
|
||||
"connectCalendarText": "Ühenda oma kalender, et kõiki kohtumisi näha rakenduses {{app}}. Lisa {{provider}} kohtumised kalendrisse ja alusta kõnesid ühe klikiga.",
|
||||
"enterRoomTitle": "Alusta uut kõnet",
|
||||
"roomNameAllowedChars": "Televastuvõtu nimi ei tohi sisaldada sümboleid: ?, &, :, ', \", %, #.",
|
||||
"go": "Mine",
|
||||
"goSmall": "Mine",
|
||||
"join": "Ühine",
|
||||
"info": "Info",
|
||||
"privacy": "Privaatsus",
|
||||
"recentList": "Hiljutised",
|
||||
"recentListDelete": "Kustuta",
|
||||
"recentListEmpty": "Hiljutiste valikute nimekiri on tühi. Vestle kasutajatega ja leia oma hiljutised kõned siit.",
|
||||
"reducedUIText": "",
|
||||
"reducedUIText": "Tere tulemast rakendusse {{app}}!",
|
||||
"roomname": "Sisesta ruumi nimi",
|
||||
"roomnameHint": "Sisesta ruumi nimi või link, millega soovid ühinega. Võid nime välja mõelda, aga anna osalejatele sellest teada, et nad saaksid ruumiga ühineda.",
|
||||
"sendFeedback": "Saada tagasiside",
|
||||
"terms": "Tingimused",
|
||||
"title": "Turvaline, võimalusi täis ja tasuta keskkond videokõnede jaoks."
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Kutsu teisi",
|
||||
"youAreAlone": "Asud hetkel ruumis üksi"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"noMessagesMessage": "",
|
||||
"nickname": {
|
||||
"popover": "Wybierz swój nick",
|
||||
"title": "Wpisz swoje imię i nazwisko, aby użyć rozmowy"
|
||||
"title": "Wpisz swoją nazwę, aby użyć rozmowy"
|
||||
},
|
||||
"privateNotice": "Prywatna wiadomość do {{recipient}}",
|
||||
"title": "Rozmowa",
|
||||
@@ -76,38 +76,38 @@
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Adres:",
|
||||
"bandwidth": "Zakładana przepustowość:",
|
||||
"bandwidth": "Szacowana przepustowość:",
|
||||
"bitrate": "Szybkość transmisji:",
|
||||
"bridgeCount": "Liczba serwerów: ",
|
||||
"connectedTo": "Podłączone do:",
|
||||
"framerate": "Częstotliwość wyświetlania klatek:",
|
||||
"framerate": "Klatek na sekundę:",
|
||||
"less": "Pokaż mniej",
|
||||
"localaddress_0": "Adres lokalny:",
|
||||
"localaddress_1": "Adresy lokalne:",
|
||||
"localaddress_2": "Adresów lokalnych:",
|
||||
"localaddress_2": "Adresy lokalne:",
|
||||
"localport_0": "Port lokalny:",
|
||||
"localport_1": "Porty lokalne:",
|
||||
"localport_2": "Portów lokalnych:",
|
||||
"localport_2": "Porty lokalne:",
|
||||
"more": "Pokaż więcej",
|
||||
"packetloss": "Strata pakietów:",
|
||||
"packetloss": "Utrata pakietów:",
|
||||
"quality": {
|
||||
"good": "Prawdziwy",
|
||||
"inactive": "Nieaktywny",
|
||||
"lost": "Zaginiony",
|
||||
"good": "Dobre",
|
||||
"inactive": "Nieaktywne",
|
||||
"lost": "Utracone",
|
||||
"nonoptimal": "Nieoptymalne",
|
||||
"poor": "Słaby"
|
||||
"poor": "Słabe"
|
||||
},
|
||||
"remoteaddress_0": "Adres zdalny:",
|
||||
"remoteaddress_1": "Adresy zdalne:",
|
||||
"remoteaddress_2": "Adresów zdalnych:",
|
||||
"remoteaddress_2": "Adresy zdalne:",
|
||||
"remoteport_0": "Port zdalny:",
|
||||
"remoteport_1": "Porty zdalne:",
|
||||
"remoteport_2": "Portów zdalnych:",
|
||||
"remoteport_2": "Porty zdalne:",
|
||||
"resolution": "Rozdzielczość:",
|
||||
"status": "Połączenie:",
|
||||
"transport_0": "Przekazywanie:",
|
||||
"transport_1": "Przekazywania:",
|
||||
"transport_2": "Przekazywań:"
|
||||
"transport_0": "Transport:",
|
||||
"transport_1": "Transporty:",
|
||||
"transport_2": "Transporty:"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Wcześniej",
|
||||
@@ -128,7 +128,7 @@
|
||||
"defaultNickname": "np. Ziutek Kowalski",
|
||||
"deviceError": {
|
||||
"cameraError": "Błąd dostępu do Twojej kamery",
|
||||
"cameraPermission": "Błąd podczas przetwarzania uprawnień do kamery",
|
||||
"cameraPermission": "Błąd podczas otrzymywania uprawnień do kamery",
|
||||
"microphoneError": "Błąd dostępu do Twojego mikrofonu",
|
||||
"microphonePermission": "Błąd podczas otrzymywania uprawnień do mikrofonu"
|
||||
},
|
||||
@@ -209,7 +209,7 @@
|
||||
"muteParticipantButton": "Wyciszenie",
|
||||
"muteParticipantDialog": "Czy na pewno wyciszyć tego uczestnika? Nie będziesz mógł wyłączyć wyciszenia uczestników, ale oni mogą samodzielnie wyłączyć wyciszenie w dowolnym momencie.",
|
||||
"muteParticipantTitle": "Wyciszyć tego uczestnika?",
|
||||
"Ok": "Ok",
|
||||
"Ok": "OK",
|
||||
"passwordLabel": "$t(lockRoomPasswordUppercase)",
|
||||
"passwordNotSupported": "Ustanowienie spotkania $t(lockRoomPassword) nie jest obsługiwane.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nie jest obsługiwane",
|
||||
@@ -280,16 +280,16 @@
|
||||
"title": "Współdzielony dokument"
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Średni",
|
||||
"bad": "Źle",
|
||||
"average": "Średnio",
|
||||
"bad": "Źle",
|
||||
"detailsLabel": "Powiedz nam o tym więcej.",
|
||||
"good": "Prawdziwy",
|
||||
"rateExperience": "Oceń proszę swoje doświadczenia z konferencji",
|
||||
"good": "Dobrze",
|
||||
"rateExperience": "Jak oceniasz tę konferencję?",
|
||||
"veryBad": "Bardzo źle",
|
||||
"veryGood": "1: Bardzo dobrze"
|
||||
"veryGood": "Bardzo dobrze"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Odpowiedz",
|
||||
"answer": "Odbierz",
|
||||
"audioCallTitle": "Przychodzące połączenie",
|
||||
"decline": "Odrzuć",
|
||||
"productLabel": "z Jitsi Meet",
|
||||
@@ -512,18 +512,18 @@
|
||||
"title": "Kalendarz"
|
||||
},
|
||||
"devices": "Urządzenia",
|
||||
"followMe": "Wszyscy za mną",
|
||||
"followMe": "Wszyscy widzą mnie",
|
||||
"language": "Język",
|
||||
"loggedIn": "Zalogowano jako {{name}}",
|
||||
"moderator": "Moderujący",
|
||||
"moderator": "Moderacja",
|
||||
"more": "Więcej",
|
||||
"name": "Nazwa",
|
||||
"noDevice": "Brak",
|
||||
"selectAudioOutput": "Wyjście audio",
|
||||
"selectCamera": "Kamera",
|
||||
"selectMic": "Mikrofon",
|
||||
"startAudioMuted": "Wszyscy się wyciszyli",
|
||||
"startVideoMuted": "Wszyscy się ukryli",
|
||||
"startAudioMuted": "Wycisz wszystkich dołączających",
|
||||
"startVideoMuted": "Ukryj wszystkich dołączających",
|
||||
"title": "Ustawienia"
|
||||
},
|
||||
"settingsView": {
|
||||
@@ -600,7 +600,7 @@
|
||||
"shortcuts": "Przełączanie skrótów klawiszowych",
|
||||
"show": "",
|
||||
"speakerStats": "Przełączanie statystyk dotyczących mówców",
|
||||
"tileView": "Przełączanie kafelkowego widoku",
|
||||
"tileView": "Przełącz widok kafelkowy",
|
||||
"toggleCamera": "Przełączanie kamery",
|
||||
"videomute": "Przełączanie wyciszonego filmu wideo",
|
||||
"videoblur": "Przełącz rozmazanie obrazu"
|
||||
@@ -626,9 +626,9 @@
|
||||
"invite": "Zapraszaj ludzi",
|
||||
"login": "Zaloguj",
|
||||
"logout": "Wyloguj",
|
||||
"lowerYourHand": "Opuść swą rękę",
|
||||
"lowerYourHand": "Opuść rękę",
|
||||
"moreActions": "Więcej działań",
|
||||
"mute": "Wycisz / Pogłośnij",
|
||||
"mute": "Włącz / Wyłącz mikrofon",
|
||||
"noAudioSignalTitle": "",
|
||||
"noAudioSignalDesc": "",
|
||||
"noAudioSignalDescSuggestion": "",
|
||||
@@ -636,13 +636,13 @@
|
||||
"pip": "Wprowadź tryb obrazu w obrazie",
|
||||
"privateMessage": "Wyślij wiadomość prywatną",
|
||||
"profile": "Edytuj swój profil",
|
||||
"raiseHand": "Podnieś / Opuść swą rękę",
|
||||
"raiseYourHand": "Podnieś swą rękę",
|
||||
"raiseHand": "Podnieś / Opuść rękę",
|
||||
"raiseYourHand": "Podnieś rękę",
|
||||
"Settings": "Ustawienia",
|
||||
"sharedvideo": "Udostępniaj wideo w Youtube",
|
||||
"sharedvideo": "Udostępnij wideo w Youtube",
|
||||
"shareRoom": "Zaproś kogoś",
|
||||
"shortcuts": "Wyświetlanie skrótów",
|
||||
"speakerStats": "Statystyki głośników",
|
||||
"shortcuts": "Wyświetl skróty",
|
||||
"speakerStats": "Statystyki mówców",
|
||||
"startScreenSharing": "Zacznij współdzielenie ekranu",
|
||||
"startSubtitles": "Uruchom napisy",
|
||||
"stopScreenSharing": "Zatrzymaj współdzielenie ekranu",
|
||||
|
||||
@@ -614,6 +614,7 @@
|
||||
"speakerStats": "Toggle speaker statistics",
|
||||
"tileView": "Toggle tile view",
|
||||
"toggleCamera": "Toggle camera",
|
||||
"toggleFilmstrip": "Toggle filmstrip",
|
||||
"videomute": "Toggle mute video",
|
||||
"videoblur": "Toggle video blur"
|
||||
},
|
||||
|
||||
@@ -369,12 +369,14 @@ class API {
|
||||
* Notify external application (if API is enabled) that message was sent.
|
||||
*
|
||||
* @param {string} message - Message body.
|
||||
* @param {boolean} privateMessage - True if the message was a private message.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifySendingChatMessage(message: string) {
|
||||
notifySendingChatMessage(message: string, privateMessage: boolean) {
|
||||
this._sendEvent({
|
||||
name: 'outgoing-message',
|
||||
message
|
||||
message,
|
||||
privateMessage
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"jquery-contextmenu": "2.4.5",
|
||||
"jquery-i18next": "1.2.1",
|
||||
"js-md5": "0.6.1",
|
||||
"js-utils": "github:jitsi/js-utils#91c5e53ca5fa42907c88d56bc78254e6e56e058d",
|
||||
"js-utils": "github:jitsi/js-utils#0b2cef90613a74777fefd98d4ee3eda3879809ab",
|
||||
"jsrsasign": "8.0.12",
|
||||
"jwt-decode": "2.2.0",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#a7950f8ebb489225c2e8bf41fe65f330b3de0874",
|
||||
|
||||
@@ -164,7 +164,7 @@ export function getConferenceName(stateful: Function | Object): string {
|
||||
|| subject
|
||||
|| callDisplayName
|
||||
|| (callee && callee.name)
|
||||
|| _.startCase(safeDecodeURIComponent(room));
|
||||
|| safeStartCase(safeDecodeURIComponent(room));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -351,3 +351,19 @@ export function sendLocalParticipant(
|
||||
|
||||
conference.setDisplayName(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* A safe implementation of lodash#startCase that doesn't deburr the string.
|
||||
*
|
||||
* NOTE: According to lodash roadmap, lodash v5 will have this function.
|
||||
*
|
||||
* Code based on https://github.com/lodash/lodash/blob/master/startCase.js.
|
||||
*
|
||||
* @param {string} s - The string to do start case on.
|
||||
* @returns {string}
|
||||
*/
|
||||
function safeStartCase(s = '') {
|
||||
return _.words(`${s}`.replace(/['\u2019]/g, '')).reduce(
|
||||
(result, word, index) => result + (index ? ' ' : '') + _.upperFirst(word)
|
||||
, '');
|
||||
}
|
||||
|
||||
@@ -88,6 +88,7 @@ export default [
|
||||
'disableLocalVideoFlip',
|
||||
'disableNS',
|
||||
'disableRemoteControl',
|
||||
'disableRemoteMute',
|
||||
'disableRtx',
|
||||
'disableSuspendVideo',
|
||||
'disableThirdPartyRequests',
|
||||
@@ -126,6 +127,7 @@ export default [
|
||||
'pcStatsInterval',
|
||||
'preferH264',
|
||||
'requireDisplayName',
|
||||
'remoteVideoMenu',
|
||||
'resolution',
|
||||
'startAudioMuted',
|
||||
'startAudioOnly',
|
||||
|
||||
@@ -43,7 +43,9 @@ const INITIAL_RN_STATE = {
|
||||
p2p: {
|
||||
disableH264: false,
|
||||
preferH264: true
|
||||
}
|
||||
},
|
||||
|
||||
remoteVideoMenu: {}
|
||||
};
|
||||
|
||||
ReducerRegistry.register('features/base/config', (state = _getInitialState(), action) => {
|
||||
|
||||
@@ -13,6 +13,12 @@ export const CALENDAR_ENABLED = 'calendar.enabled';
|
||||
*/
|
||||
export const CALL_INTEGRATION_ENABLED = 'call-integration.enabled';
|
||||
|
||||
/**
|
||||
* Flag indicating if chat should be enabled.
|
||||
* Default: enabled (true).
|
||||
*/
|
||||
export const CLOSE_CAPTIONS_ENABLED = 'close-captions.enabled';
|
||||
|
||||
/**
|
||||
* Flag indicating if chat should be enabled.
|
||||
* Default: enabled (true).
|
||||
|
||||
@@ -64,6 +64,7 @@ export { default as IconSettings } from './settings.svg';
|
||||
export { default as IconSignalLevel0 } from './signal_cellular_0.svg';
|
||||
export { default as IconSignalLevel1 } from './signal_cellular_1.svg';
|
||||
export { default as IconSignalLevel2 } from './signal_cellular_2.svg';
|
||||
export { default as IconShare } from './share.svg';
|
||||
export { default as IconShareDesktop } from './share-desktop.svg';
|
||||
export { default as IconShareDoc } from './share-doc.svg';
|
||||
export { default as IconShareVideo } from './shared-video.svg';
|
||||
|
||||
1
react/features/base/icons/svg/share.svg
Normal file
1
react/features/base/icons/svg/share.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" enable-background="new 0 0 50 50"><path d="M30.3 13.7L25 8.4l-5.3 5.3-1.4-1.4L25 5.6l6.7 6.7z"/><path d="M24 7h2v21h-2z"/><path d="M35 40H15c-1.7 0-3-1.3-3-3V19c0-1.7 1.3-3 3-3h7v2h-7c-.6 0-1 .4-1 1v18c0 .6.4 1 1 1h20c.6 0 1-.4 1-1V19c0-.6-.4-1-1-1h-7v-2h7c1.7 0 3 1.3 3 3v18c0 1.7-1.3 3-3 3z"/></svg>
|
||||
|
After Width: | Height: | Size: 361 B |
@@ -76,12 +76,12 @@ MiddlewareRegistry.register(store => next => action => {
|
||||
} else {
|
||||
// Sending the message if privacy notice doesn't need to be shown.
|
||||
|
||||
if (typeof APP !== 'undefined') {
|
||||
APP.API.notifySendingChatMessage(action.message);
|
||||
}
|
||||
|
||||
const { privateMessageRecipient } = state['features/chat'];
|
||||
|
||||
if (typeof APP !== 'undefined') {
|
||||
APP.API.notifySendingChatMessage(action.message, Boolean(privateMessageRecipient));
|
||||
}
|
||||
|
||||
if (privateMessageRecipient) {
|
||||
conference.sendPrivateTextMessage(privateMessageRecipient.id, action.message);
|
||||
_persistSentPrivateMessage(store, privateMessageRecipient.id, action.message);
|
||||
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
sendAnalytics
|
||||
} from '../../../analytics';
|
||||
import { Icon, IconMenuDown, IconMenuUp } from '../../../base/icons';
|
||||
import { translate } from '../../../base/i18n';
|
||||
import { connect } from '../../../base/redux';
|
||||
import { dockToolbox } from '../../../toolbox';
|
||||
|
||||
@@ -87,7 +88,12 @@ type Props = {
|
||||
/**
|
||||
* The redux {@code dispatch} function.
|
||||
*/
|
||||
dispatch: Dispatch<any>
|
||||
dispatch: Dispatch<any>,
|
||||
|
||||
/**
|
||||
* Invoked to obtain translated strings.
|
||||
*/
|
||||
t: Function
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -338,10 +344,12 @@ class Filmstrip extends Component <Props> {
|
||||
*/
|
||||
_renderToggleButton() {
|
||||
const icon = this.props._visible ? IconMenuDown : IconMenuUp;
|
||||
const { t } = this.props;
|
||||
|
||||
return (
|
||||
<div className = 'filmstrip__toolbar'>
|
||||
<button
|
||||
aria-label = { t('toolbar.accessibilityLabel.toggleFilmstrip') }
|
||||
id = 'toggleFilmstripButton'
|
||||
onClick = { this._onToolbarToggleFilmstrip }>
|
||||
<Icon src = { icon } />
|
||||
@@ -387,4 +395,4 @@ function _mapStateToProps(state) {
|
||||
};
|
||||
}
|
||||
|
||||
export default connect(_mapStateToProps)(Filmstrip);
|
||||
export default translate(connect(_mapStateToProps)(Filmstrip));
|
||||
|
||||
@@ -13,9 +13,18 @@ import {
|
||||
View
|
||||
} from 'react-native';
|
||||
|
||||
import { ColorSchemeRegistry } from '../../../../base/color-scheme';
|
||||
import { AlertDialog, openDialog } from '../../../../base/dialog';
|
||||
import { translate } from '../../../../base/i18n';
|
||||
import { Icon, IconCancelSelection, IconCheck, IconClose, IconPhone, IconSearch } from '../../../../base/icons';
|
||||
import {
|
||||
Icon,
|
||||
IconCancelSelection,
|
||||
IconCheck,
|
||||
IconClose,
|
||||
IconPhone,
|
||||
IconSearch,
|
||||
IconShare
|
||||
} from '../../../../base/icons';
|
||||
import {
|
||||
AvatarListItem,
|
||||
HeaderWithNavigation,
|
||||
@@ -23,6 +32,7 @@ import {
|
||||
type Item
|
||||
} from '../../../../base/react';
|
||||
import { connect } from '../../../../base/redux';
|
||||
import { beginShareRoom } from '../../../../share-room';
|
||||
|
||||
import { setAddPeopleDialogVisible } from '../../../actions.native';
|
||||
|
||||
@@ -39,6 +49,11 @@ import styles, {
|
||||
|
||||
type Props = AbstractProps & {
|
||||
|
||||
/**
|
||||
* The color schemed style of the Header.
|
||||
*/
|
||||
_headerStyles: Object,
|
||||
|
||||
/**
|
||||
* True if the invite dialog should be open, false otherwise.
|
||||
*/
|
||||
@@ -113,6 +128,7 @@ class AddPeopleDialog extends AbstractAddPeopleDialog<Props, State> {
|
||||
this._onCloseAddPeopleDialog = this._onCloseAddPeopleDialog.bind(this);
|
||||
this._onInvite = this._onInvite.bind(this);
|
||||
this._onPressItem = this._onPressItem.bind(this);
|
||||
this._onShareMeeting = this._onShareMeeting.bind(this);
|
||||
this._onTypeQuery = this._onTypeQuery.bind(this);
|
||||
this._setFieldRef = this._setFieldRef.bind(this);
|
||||
}
|
||||
@@ -137,7 +153,8 @@ class AddPeopleDialog extends AbstractAddPeopleDialog<Props, State> {
|
||||
render() {
|
||||
const {
|
||||
_addPeopleEnabled,
|
||||
_dialOutEnabled
|
||||
_dialOutEnabled,
|
||||
_headerStyles
|
||||
} = this.props;
|
||||
const { inviteItems, selectableItems } = this.state;
|
||||
|
||||
@@ -206,6 +223,9 @@ class AddPeopleDialog extends AbstractAddPeopleDialog<Props, State> {
|
||||
renderItem = { this._renderItem } />
|
||||
</View>
|
||||
</SafeAreaView>
|
||||
<SafeAreaView style = { [ styles.bottomBar, _headerStyles.headerOverlay ] }>
|
||||
{ this._renderShareMeetingButton() }
|
||||
</SafeAreaView>
|
||||
</KeyboardAvoidingView>
|
||||
</SlidingView>
|
||||
);
|
||||
@@ -349,6 +369,22 @@ class AddPeopleDialog extends AbstractAddPeopleDialog<Props, State> {
|
||||
};
|
||||
}
|
||||
|
||||
_onShareMeeting: () => void
|
||||
|
||||
/**
|
||||
* Shows the system share sheet to share the meeting information.
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
_onShareMeeting() {
|
||||
if (this.state.inviteItems.length > 0) {
|
||||
// The use probably intended to invite people.
|
||||
this._onInvite();
|
||||
} else {
|
||||
this.props.dispatch(beginShareRoom());
|
||||
}
|
||||
}
|
||||
|
||||
_onTypeQuery: string => void
|
||||
|
||||
/**
|
||||
@@ -526,6 +562,24 @@ class AddPeopleDialog extends AbstractAddPeopleDialog<Props, State> {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders a button to share the meeting info.
|
||||
*
|
||||
* @returns {React#Element<*>}
|
||||
*/
|
||||
_renderShareMeetingButton() {
|
||||
const { _headerStyles } = this.props;
|
||||
|
||||
return (
|
||||
<TouchableOpacity
|
||||
onPress = { this._onShareMeeting }>
|
||||
<Icon
|
||||
src = { IconShare }
|
||||
style = { [ _headerStyles.headerButtonText, styles.shareIcon ] } />
|
||||
</TouchableOpacity>
|
||||
);
|
||||
}
|
||||
|
||||
_setFieldRef: ?TextInput => void
|
||||
|
||||
/**
|
||||
@@ -567,6 +621,7 @@ class AddPeopleDialog extends AbstractAddPeopleDialog<Props, State> {
|
||||
function _mapStateToProps(state: Object) {
|
||||
return {
|
||||
..._abstractMapStateToProps(state),
|
||||
_headerStyles: ColorSchemeRegistry.get(state, 'Header'),
|
||||
_isVisible: state['features/invite'].inviteDialogVisible
|
||||
};
|
||||
}
|
||||
|
||||
@@ -23,6 +23,12 @@ export default {
|
||||
flex: 1
|
||||
},
|
||||
|
||||
bottomBar: {
|
||||
alignItems: 'center',
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-around'
|
||||
},
|
||||
|
||||
clearButton: {
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
@@ -124,6 +130,10 @@ export default {
|
||||
width: ICON_SIZE + 16
|
||||
},
|
||||
|
||||
shareIcon: {
|
||||
fontSize: 42
|
||||
},
|
||||
|
||||
unselectIcon: {
|
||||
color: LIGHT_GREY,
|
||||
fontSize: 16,
|
||||
|
||||
@@ -40,6 +40,16 @@ type Props = {
|
||||
*/
|
||||
_bottomSheetStyles: StyleType,
|
||||
|
||||
/**
|
||||
* Whether or not to display the kick button.
|
||||
*/
|
||||
_disableKick: boolean,
|
||||
|
||||
/**
|
||||
* Whether or not to display the remote mute buttons.
|
||||
*/
|
||||
_disableRemoteMute: boolean,
|
||||
|
||||
/**
|
||||
* True if the menu is currently open, false otherwise.
|
||||
*/
|
||||
@@ -75,7 +85,7 @@ class RemoteVideoMenu extends Component<Props> {
|
||||
* @inheritdoc
|
||||
*/
|
||||
render() {
|
||||
const { participant } = this.props;
|
||||
const { _disableKick, _disableRemoteMute, participant } = this.props;
|
||||
const buttonProps = {
|
||||
afterClick: this._onCancel,
|
||||
showLabel: true,
|
||||
@@ -83,6 +93,19 @@ class RemoteVideoMenu extends Component<Props> {
|
||||
styles: this.props._bottomSheetStyles.buttons
|
||||
};
|
||||
|
||||
const buttons = [];
|
||||
|
||||
if (!_disableRemoteMute) {
|
||||
buttons.push(<MuteButton { ...buttonProps } />);
|
||||
}
|
||||
|
||||
if (!_disableKick) {
|
||||
buttons.push(<KickButton { ...buttonProps } />);
|
||||
}
|
||||
|
||||
buttons.push(<PinButton { ...buttonProps } />);
|
||||
buttons.push(<PrivateMessageButton { ...buttonProps } />);
|
||||
|
||||
return (
|
||||
<BottomSheet onCancel = { this._onCancel }>
|
||||
<View style = { styles.participantNameContainer }>
|
||||
@@ -93,10 +116,7 @@ class RemoteVideoMenu extends Component<Props> {
|
||||
{ this.props._participantDisplayName }
|
||||
</Text>
|
||||
</View>
|
||||
<MuteButton { ...buttonProps } />
|
||||
<KickButton { ...buttonProps } />
|
||||
<PinButton { ...buttonProps } />
|
||||
<PrivateMessageButton { ...buttonProps } />
|
||||
{ buttons }
|
||||
</BottomSheet>
|
||||
);
|
||||
}
|
||||
@@ -130,13 +150,15 @@ class RemoteVideoMenu extends Component<Props> {
|
||||
*/
|
||||
function _mapStateToProps(state, ownProps) {
|
||||
const { participant } = ownProps;
|
||||
const { remoteVideoMenu = {}, disableRemoteMute } = state['features/base/config'];
|
||||
const { disableKick } = remoteVideoMenu;
|
||||
|
||||
return {
|
||||
_bottomSheetStyles:
|
||||
ColorSchemeRegistry.get(state, 'BottomSheet'),
|
||||
_bottomSheetStyles: ColorSchemeRegistry.get(state, 'BottomSheet'),
|
||||
_disableKick: Boolean(disableKick),
|
||||
_disableRemoteMute: Boolean(disableRemoteMute),
|
||||
_isOpen: isDialogOpen(state, RemoteVideoMenu_),
|
||||
_participantDisplayName: getParticipantDisplayName(
|
||||
state, participant.id)
|
||||
_participantDisplayName: getParticipantDisplayName(state, participant.id)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,16 @@ declare var interfaceConfig: Object;
|
||||
*/
|
||||
type Props = {
|
||||
|
||||
/**
|
||||
* Whether or not to display the kick button.
|
||||
*/
|
||||
_disableKick: boolean,
|
||||
|
||||
/**
|
||||
* Whether or not to display the remote mute buttons.
|
||||
*/
|
||||
_disableRemoteMute: Boolean,
|
||||
|
||||
/**
|
||||
* Whether or not the participant is a conference moderator.
|
||||
*/
|
||||
@@ -157,6 +167,8 @@ class RemoteVideoMenuTriggerButton extends Component<Props> {
|
||||
*/
|
||||
_renderRemoteVideoMenu() {
|
||||
const {
|
||||
_disableKick,
|
||||
_disableRemoteMute,
|
||||
_isModerator,
|
||||
initialVolumeValue,
|
||||
isAudioMuted,
|
||||
@@ -169,22 +181,27 @@ class RemoteVideoMenuTriggerButton extends Component<Props> {
|
||||
const buttons = [];
|
||||
|
||||
if (_isModerator) {
|
||||
buttons.push(
|
||||
<MuteButton
|
||||
isAudioMuted = { isAudioMuted }
|
||||
key = 'mute'
|
||||
participantID = { participantID } />
|
||||
);
|
||||
buttons.push(
|
||||
<MuteEveryoneElseButton
|
||||
key = 'mute-others'
|
||||
participantID = { participantID } />
|
||||
);
|
||||
buttons.push(
|
||||
<KickButton
|
||||
key = 'kick'
|
||||
participantID = { participantID } />
|
||||
);
|
||||
if (!_disableRemoteMute) {
|
||||
buttons.push(
|
||||
<MuteButton
|
||||
isAudioMuted = { isAudioMuted }
|
||||
key = 'mute'
|
||||
participantID = { participantID } />
|
||||
);
|
||||
buttons.push(
|
||||
<MuteEveryoneElseButton
|
||||
key = 'mute-others'
|
||||
participantID = { participantID } />
|
||||
);
|
||||
}
|
||||
|
||||
if (!_disableKick) {
|
||||
buttons.push(
|
||||
<KickButton
|
||||
key = 'kick'
|
||||
participantID = { participantID } />
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (remoteControlState) {
|
||||
@@ -236,9 +253,13 @@ class RemoteVideoMenuTriggerButton extends Component<Props> {
|
||||
*/
|
||||
function _mapStateToProps(state) {
|
||||
const participant = getLocalParticipant(state);
|
||||
const { remoteVideoMenu = {}, disableRemoteMute } = state['features/base/config'];
|
||||
const { disableKick } = remoteVideoMenu;
|
||||
|
||||
return {
|
||||
_isModerator: Boolean(participant?.role === PARTICIPANT_ROLE.MODERATOR)
|
||||
_isModerator: Boolean(participant?.role === PARTICIPANT_ROLE.MODERATOR),
|
||||
_disableKick: Boolean(disableKick),
|
||||
_disableRemoteMute: Boolean(disableRemoteMute)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// @flow
|
||||
|
||||
import { getFeatureFlag, CLOSE_CAPTIONS_ENABLED } from '../../base/flags';
|
||||
import { translate } from '../../base/i18n';
|
||||
import { IconClosedCaption } from '../../base/icons';
|
||||
import { connect } from '../../base/redux';
|
||||
@@ -20,5 +21,24 @@ class ClosedCaptionButton
|
||||
toggledLabel = 'transcribing.stop';
|
||||
}
|
||||
|
||||
export default translate(connect(_abstractMapStateToProps)(
|
||||
ClosedCaptionButton));
|
||||
/**
|
||||
* Maps (parts of) the redux state to the associated props for this component.
|
||||
*
|
||||
* @param {Object} state - The redux state.
|
||||
* @param {Object} ownProps - The properties explicitly passed to the component
|
||||
* instance.
|
||||
* @private
|
||||
* @returns {Props}
|
||||
*/
|
||||
export function mapStateToProps(state: Object, ownProps: Object) {
|
||||
const { transcribingEnabled } = state['features/base/config'];
|
||||
const enabled = getFeatureFlag(state, CLOSE_CAPTIONS_ENABLED, true) && transcribingEnabled;
|
||||
const { visible = enabled } = ownProps;
|
||||
|
||||
return {
|
||||
..._abstractMapStateToProps(state, ownProps),
|
||||
visible
|
||||
};
|
||||
}
|
||||
|
||||
export default translate(connect(mapStateToProps)(ClosedCaptionButton));
|
||||
|
||||
@@ -22,5 +22,4 @@ class ClosedCaptionButton
|
||||
toggledLabel = 'toolbar.stopSubtitles';
|
||||
}
|
||||
|
||||
export default translate(connect(_abstractMapStateToProps)(
|
||||
ClosedCaptionButton));
|
||||
export default translate(connect(_abstractMapStateToProps)(ClosedCaptionButton));
|
||||
|
||||
@@ -64,11 +64,12 @@ function _mapStateToProps(state: Object, ownProps: Props) {
|
||||
const localParticipant = getLocalParticipant(state);
|
||||
const isModerator = localParticipant.role === PARTICIPANT_ROLE.MODERATOR;
|
||||
const { visible } = ownProps;
|
||||
const { disableRemoteMute } = state['features/base/config'];
|
||||
|
||||
return {
|
||||
isModerator,
|
||||
localParticipantId: localParticipant.id,
|
||||
visible: visible && isModerator
|
||||
visible: visible && isModerator && !disableRemoteMute
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import type { Dispatch } from 'redux';
|
||||
import { createWelcomePageEvent, sendAnalytics } from '../../analytics';
|
||||
import { appNavigate } from '../../app';
|
||||
import { isCalendarEnabled } from '../../calendar-sync';
|
||||
import { isRecentListEnabled } from '../../recent-list/functions';
|
||||
|
||||
/**
|
||||
* {@code AbstractWelcomePage}'s React {@code Component} prop types.
|
||||
@@ -18,6 +19,11 @@ type Props = {
|
||||
*/
|
||||
_calendarEnabled: boolean,
|
||||
|
||||
/**
|
||||
* Whether the recent list is enabled
|
||||
*/
|
||||
_recentListEnabled: Boolean,
|
||||
|
||||
/**
|
||||
* Room name to join to.
|
||||
*/
|
||||
@@ -239,6 +245,7 @@ export class AbstractWelcomePage extends Component<Props, *> {
|
||||
export function _mapStateToProps(state: Object) {
|
||||
return {
|
||||
_calendarEnabled: isCalendarEnabled(state),
|
||||
_recentListEnabled: isRecentListEnabled(),
|
||||
_room: state['features/base/conference'].room,
|
||||
_settings: state['features/base/settings']
|
||||
};
|
||||
|
||||
@@ -285,7 +285,7 @@ class WelcomePage extends AbstractWelcomePage {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { _calendarEnabled, t } = this.props;
|
||||
const { _calendarEnabled, _recentListEnabled, t } = this.props;
|
||||
|
||||
const tabs = [];
|
||||
|
||||
@@ -296,10 +296,16 @@ class WelcomePage extends AbstractWelcomePage {
|
||||
});
|
||||
}
|
||||
|
||||
tabs.push({
|
||||
label: t('welcomepage.recentList'),
|
||||
content: <RecentList />
|
||||
});
|
||||
if (_recentListEnabled) {
|
||||
tabs.push({
|
||||
label: t('welcomepage.recentList'),
|
||||
content: <RecentList />
|
||||
});
|
||||
}
|
||||
|
||||
if (tabs.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<Tabs
|
||||
|
||||
@@ -46,6 +46,7 @@ local function check_for_max_occupants(event)
|
||||
-- For each person in the room that's not on the whitelist, subtract one
|
||||
-- from the count.
|
||||
for _, occupant in room:each_occupant() do
|
||||
user, domain, res = split_jid(occupant.bare_jid);
|
||||
if not whitelist:contains(domain) and not whitelist:contains(user..'@'..domain) then
|
||||
slots = slots - 1
|
||||
end
|
||||
|
||||
3
resources/robots.txt
Normal file
3
resources/robots.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
User-agent: *
|
||||
Allow: /$
|
||||
Disallow: /
|
||||
Reference in New Issue
Block a user