mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-01-05 14:22:28 +00:00
Compare commits
116 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58d98ad7d3 | ||
|
|
e278703c58 | ||
|
|
042a2cb447 | ||
|
|
a8f281a43e | ||
|
|
663752be2c | ||
|
|
380ef3da0b | ||
|
|
07da5940a5 | ||
|
|
ab366b9d94 | ||
|
|
bba1917820 | ||
|
|
0833f8c867 | ||
|
|
3bf9c41f08 | ||
|
|
0b54e005d7 | ||
|
|
b92c1f52d5 | ||
|
|
8eaf99586e | ||
|
|
c7ad5b5b26 | ||
|
|
61c3613de0 | ||
|
|
b801e0115d | ||
|
|
1add438a1f | ||
|
|
aadbe59d00 | ||
|
|
350f0fbb27 | ||
|
|
1db52354fb | ||
|
|
6711801c3b | ||
|
|
e2443f8d01 | ||
|
|
11a86a9383 | ||
|
|
40a485ec6c | ||
|
|
535bd81d61 | ||
|
|
1dc8bfa631 | ||
|
|
f2e2d52cfd | ||
|
|
0db2dd0546 | ||
|
|
6673d12cec | ||
|
|
5e152b4a42 | ||
|
|
db473dfef5 | ||
|
|
0bad0d9ecf | ||
|
|
f1bf8e5f9a | ||
|
|
131d2476ae | ||
|
|
34c55b4eb2 | ||
|
|
d83d822818 | ||
|
|
5857620d81 | ||
|
|
b7cb0a44f2 | ||
|
|
3bf1a1774f | ||
|
|
d21eb59f24 | ||
|
|
9a16733950 | ||
|
|
d96246dea8 | ||
|
|
a5fc75ed35 | ||
|
|
07d023968a | ||
|
|
d95d52843f | ||
|
|
49be96799a | ||
|
|
2008c90359 | ||
|
|
0f01772625 | ||
|
|
f5dee99131 | ||
|
|
909c397664 | ||
|
|
f51e65d129 | ||
|
|
56c0edc896 | ||
|
|
add8265ab9 | ||
|
|
527b96fe00 | ||
|
|
452b1b7e2e | ||
|
|
a0c3a00e59 | ||
|
|
00b5ce71e0 | ||
|
|
9a8b67a0a4 | ||
|
|
c730676ce6 | ||
|
|
76a53b039f | ||
|
|
5713b381c4 | ||
|
|
1e83bdef6c | ||
|
|
531ec79e13 | ||
|
|
772e7b0121 | ||
|
|
5bd329acb9 | ||
|
|
dfd53f4041 | ||
|
|
221cf67d0a | ||
|
|
20a1833c6c | ||
|
|
36f604aab8 | ||
|
|
8db6e783f1 | ||
|
|
7b4a426ad2 | ||
|
|
a687907105 | ||
|
|
5dc03f56f6 | ||
|
|
83a1ee1182 | ||
|
|
0a6872733e | ||
|
|
5249998ec5 | ||
|
|
18e2232e9e | ||
|
|
5c299bcd46 | ||
|
|
b9866e3464 | ||
|
|
e5041202dc | ||
|
|
bec9920c79 | ||
|
|
5367d43c26 | ||
|
|
aa06e89807 | ||
|
|
74026e743c | ||
|
|
eb4fff773b | ||
|
|
5d402b2039 | ||
|
|
a2bac9c3ac | ||
|
|
aff976d53d | ||
|
|
c2ffcdc67e | ||
|
|
bb670fd90d | ||
|
|
b31ed40309 | ||
|
|
7dd43d93b6 | ||
|
|
37acce3764 | ||
|
|
4716bdd380 | ||
|
|
7c93a130ca | ||
|
|
3c18117101 | ||
|
|
9013b01df6 | ||
|
|
7827c3d1ad | ||
|
|
751d9a9b8e | ||
|
|
bafe6fa895 | ||
|
|
1edf8ab9f0 | ||
|
|
c03fb61c5f | ||
|
|
7d6365c5e0 | ||
|
|
eb4aefbca1 | ||
|
|
6c40329f6a | ||
|
|
b14e571d5c | ||
|
|
70b369a1af | ||
|
|
cf6d6f8a12 | ||
|
|
b15f1d190d | ||
|
|
e67db2381e | ||
|
|
11382cfda6 | ||
|
|
248865ad3f | ||
|
|
7966c8f88f | ||
|
|
6537447d7c | ||
|
|
a892d5fed1 |
118
README.md
118
README.md
@@ -1,82 +1,88 @@
|
||||
# Jitsi Meet - Secure, Simple and Scalable Video Conferences
|
||||
# <p align="center">Jitsi Meet</p>
|
||||
|
||||
Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses [Jitsi Videobridge](https://jitsi.org/videobridge) to provide high quality, [secure](https://jitsi.org/security) and scalable video conferences. Jitsi Meet in action can be seen at [here at the session #482 of the VoIP Users Conference](http://youtu.be/7vFUVClsNh0).
|
||||
Jitsi Meet is a set of Open Source projects which empower users to use and deploy
|
||||
video conferencing platforms with state-of-the-art video quality and features.
|
||||
|
||||
The Jitsi Meet client runs in your browser, without installing anything on your computer. You can try it out at https://meet.jit.si.
|
||||
<hr />
|
||||
|
||||
Jitsi Meet allows for very efficient collaboration. Users can stream their desktop or only some windows. It also supports shared document editing with Etherpad.
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/jitsi/jitsi-meet/master/readme-img1.png" width="900" />
|
||||
</p>
|
||||
|
||||
**NOTE:** If you are looking for Jitsi as a Service (JaaS) please start [here](https://jaas.8x8.vc).
|
||||
<hr />
|
||||
|
||||
## Installation
|
||||
Amongst others here are the main features Jitsi Meet offers:
|
||||
|
||||
On the client side, no installation is necessary. You just point your browser to the URL of your deployment. This section is about installing a Jitsi Meet suite on your server and hosting your own conferencing service.
|
||||
* Support for all current browsers
|
||||
* Mobile applications
|
||||
* Web and native SDKs for integration
|
||||
* HD audio and video
|
||||
* Content sharing
|
||||
* End-to-End Encryption
|
||||
* Raise hand and reactions
|
||||
* Chat with private conversations
|
||||
* Polls
|
||||
* Virtual backgrounds
|
||||
|
||||
Installing Jitsi Meet is a simple experience. For Debian-based system, following the [quick install](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart) document, which uses the package system. You can also see a demonstration of the process in [this tutorial video](https://jitsi.org/tutorial).
|
||||
And many more!
|
||||
|
||||
For other systems, or if you wish to install all components manually, see the [detailed manual installation instructions](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual).
|
||||
## Using Jitsi Meet
|
||||
|
||||
Installation with Docker is also available. Please see the [instruction](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker).
|
||||
Using Jitsi Meet is straightforward, as it's browser based. Head over to [meet.jit.si](https://meet.jit.si) and give it a try. It's anonymous, scalable and free to use. All browsers are supported!
|
||||
|
||||
## Download
|
||||
Using mobile? No problem, you can either use your mobile web browser or our fully-featured
|
||||
mobile apps:
|
||||
|
||||
| Latest stable release | [](https://github.com/jitsi/jitsi-meet/releases/latest) |
|
||||
|---|---|
|
||||
| Android | Android (F-Droid) | iOS |
|
||||
|:-:|:-:|:-:|
|
||||
| [<img src="resources/img/google-play-badge.png" height="50">](https://play.google.com/store/apps/details?id=org.jitsi.meet) | [<img src="resources/img/f-droid-badge.png" height="50">](https://f-droid.org/en/packages/org.jitsi.meet/) | [<img src="resources/img/appstore-badge.png" height="50">](https://itunes.apple.com/us/app/jitsi-meet/id1165103905) |
|
||||
|
||||
You can download Debian/Ubuntu binaries:
|
||||
* [stable](https://download.jitsi.org/stable/) ([instructions](https://jitsi.org/downloads/ubuntu-debian-installations-instructions/))
|
||||
* [testing](https://download.jitsi.org/testing/) ([instructions](https://jitsi.org/downloads/ubuntu-debian-installations-instructions-for-testing/))
|
||||
* [nightly](https://download.jitsi.org/unstable/) ([instructions](https://jitsi.org/downloads/ubuntu-debian-installations-instructions-nightly/))
|
||||
|
||||
You can download source archives (produced by ```make source-package```):
|
||||
* [source builds](https://download.jitsi.org/jitsi-meet/src/)
|
||||
|
||||
### Mobile apps
|
||||
|
||||
* [Android](https://play.google.com/store/apps/details?id=org.jitsi.meet)
|
||||
|
||||
[<img src="resources/img/google-play-badge.png" height="50">](https://play.google.com/store/apps/details?id=org.jitsi.meet)
|
||||
|
||||
* [Android (F-Droid)](https://f-droid.org/en/packages/org.jitsi.meet/)
|
||||
|
||||
[<img src="resources/img/f-droid-badge.png" height="50">](https://f-droid.org/en/packages/org.jitsi.meet/)
|
||||
|
||||
* [iOS](https://itunes.apple.com/us/app/jitsi-meet/id1165103905)
|
||||
|
||||
[<img src="resources/img/appstore-badge.png" height="50">](https://itunes.apple.com/us/app/jitsi-meet/id1165103905)
|
||||
|
||||
You can also sign up for our open beta testing here:
|
||||
If you are feeling adventurous and want to get an early scoop of the features as they are being
|
||||
developed you can also sign up for our open beta testing here:
|
||||
|
||||
* [Android](https://play.google.com/apps/testing/org.jitsi.meet)
|
||||
* [iOS](https://testflight.apple.com/join/isy6ja7S)
|
||||
|
||||
## Release notes
|
||||
## Running your own instance
|
||||
|
||||
Release notes for Jitsi Meet are maintained on [this repository](https://github.com/jitsi/jitsi-meet-release-notes).
|
||||
If you'd like to run your own Jitsi Meet installation head over to the [handbook](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-start) to get started.
|
||||
|
||||
## Development
|
||||
We provide Debian packages and a comprehensive Docker setup to make deployments as simple as possible.
|
||||
Advanced users also have the possibility of building all the components from source.
|
||||
|
||||
For web development see [here](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-web), and for mobile see [here](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-mobile).
|
||||
You can check the latest releases [[here](https://jitsi.github.io/handbook/docs/releases).
|
||||
|
||||
## Jitsi as a Service
|
||||
|
||||
If you like the branding capabilities of running your own instance but you'd like
|
||||
to avoid dealing with the complexity of monitoring, scaling and updates, JaaS might be
|
||||
for you.
|
||||
|
||||
[8x8 Jitsi as a Service (JaaS)](https://jaas.8x8.vc) is an enterprise-ready video meeting platform that allows developers, organizations and businesses to easily build and deploy video solutions. With Jitsi as a Service we now give you all the power of Jitsi running on our global platform so you can focus on building secure and branded video experiences.
|
||||
|
||||
## Documentation
|
||||
|
||||
All the Jitsi Meet documentation is available in [the handbook](https://jitsi.github.io/handbook/).
|
||||
|
||||
## Security
|
||||
|
||||
For a comprehensive description of all Jitsi Meet's security aspects, please check [this link](https://jitsi.org/security).
|
||||
|
||||
For a detailed description of Jitsi Meet's End-to-End Encryption (E2EE) implementation,
|
||||
please check [this link](https://jitsi.org/e2ee-whitepaper/).
|
||||
|
||||
For information on reporting security vulnerabilities in Jitsi Meet, see [SECURITY.md](./SECURITY.md).
|
||||
|
||||
## Contributing
|
||||
|
||||
If you are looking to contribute to Jitsi Meet, first of all, thank you! Please
|
||||
see our [guidelines for contributing](CONTRIBUTING.md).
|
||||
|
||||
## Embedding in external applications
|
||||
<br />
|
||||
<br />
|
||||
|
||||
Jitsi Meet provides a very flexible way of embedding in external applications by using the [Jitsi Meet API](doc/api.md).
|
||||
|
||||
## Security
|
||||
|
||||
The security section here was starting to feel a bit too succinct for the complexity of the topic, so we created a post that covers the topic much more broadly here: https://jitsi.org/security
|
||||
|
||||
The section on end-to-end encryption in that document is likely going to be one of the key points of interest: https://jitsi.org/security/#e2ee
|
||||
|
||||
## Security issues
|
||||
|
||||
For information on reporting security vulnerabilities in Jitsi Meet, see [SECURITY.md](./SECURITY.md).
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
Jitsi Meet started out as a sample conferencing application using Jitsi Videobridge. It was originally developed by ESTOS' developer Philipp Hancke who then contributed it to the community where development continues with joint forces!
|
||||
<footer>
|
||||
<p align="center" style="font-size: smaller;">
|
||||
Built with ❤️ by the Jitsi team at <a href="https://8x8.com" target="_blank">8x8</a> and our community.
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
@@ -26,4 +26,4 @@ android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
||||
appVersion=21.4.0
|
||||
sdkVersion=3.9.0
|
||||
sdkVersion=3.9.1
|
||||
|
||||
@@ -44,7 +44,7 @@ dependencies {
|
||||
//noinspection GradleDynamicVersion
|
||||
implementation 'org.webkit:android-jsc:+'
|
||||
|
||||
implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8'
|
||||
implementation 'com.dropbox.core:dropbox-core-sdk:4.0.1'
|
||||
implementation 'com.jakewharton.timber:timber:4.7.1'
|
||||
implementation 'com.squareup.duktape:duktape-android:1.3.0'
|
||||
implementation 'com.google.code.gson:gson:2.8.6'
|
||||
@@ -56,7 +56,7 @@ dependencies {
|
||||
exclude group: 'com.android.installreferrer'
|
||||
}
|
||||
} else {
|
||||
implementation project(':amplitudereactnative')
|
||||
implementation project(':react-native-amplitude')
|
||||
implementation project(':react-native-device-info')
|
||||
implementation(project(":react-native-google-signin")) {
|
||||
exclude group: 'com.google.android.gms'
|
||||
@@ -71,6 +71,7 @@ dependencies {
|
||||
implementation project(':react-native-default-preference')
|
||||
implementation project(':react-native-immersive')
|
||||
implementation project(':react-native-keep-awake')
|
||||
implementation project(':react-native-performance')
|
||||
implementation project(':react-native-slider')
|
||||
implementation project(':react-native-sound')
|
||||
implementation project(':react-native-splash-screen')
|
||||
@@ -156,16 +157,9 @@ android.libraryVariants.all { def variant ->
|
||||
// Bundle sounds
|
||||
//
|
||||
copy {
|
||||
from("${projectDir}/../../sounds/incomingMessage.wav")
|
||||
from("${projectDir}/../../sounds/joined.wav")
|
||||
from("${projectDir}/../../sounds/left.wav")
|
||||
from("${projectDir}/../../sounds/liveStreamingOn.mp3")
|
||||
from("${projectDir}/../../sounds/liveStreamingOff.mp3")
|
||||
from("${projectDir}/../../sounds/outgoingRinging.wav")
|
||||
from("${projectDir}/../../sounds/outgoingStart.wav")
|
||||
from("${projectDir}/../../sounds/recordingOn.mp3")
|
||||
from("${projectDir}/../../sounds/recordingOff.mp3")
|
||||
from("${projectDir}/../../sounds/rejected.wav")
|
||||
from("${projectDir}/../../sounds")
|
||||
include("*.wav")
|
||||
include("*.mp3")
|
||||
into("${assetsDir}/sounds")
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ import android.text.TextUtils;
|
||||
|
||||
import com.dropbox.core.DbxException;
|
||||
import com.dropbox.core.DbxRequestConfig;
|
||||
import com.dropbox.core.android.Auth;
|
||||
import com.dropbox.core.oauth.DbxCredential;
|
||||
import com.dropbox.core.v2.DbxClientV2;
|
||||
import com.dropbox.core.v2.users.FullAccount;
|
||||
import com.dropbox.core.v2.users.SpaceAllocation;
|
||||
@@ -17,7 +19,6 @@ import com.facebook.react.bridge.LifecycleEventListener;
|
||||
import com.facebook.react.bridge.Promise;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.dropbox.core.android.Auth;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
@@ -66,7 +67,7 @@ class DropboxModule
|
||||
@ReactMethod
|
||||
public void authorize(final Promise promise) {
|
||||
if (isEnabled) {
|
||||
Auth.startOAuth2Authentication(this.getCurrentActivity(), appKey);
|
||||
Auth.startOAuth2PKCE(this.getCurrentActivity(), appKey, DbxRequestConfig.newBuilder(clientId).build());
|
||||
this.promise = promise;
|
||||
} else {
|
||||
promise.reject(
|
||||
@@ -181,11 +182,23 @@ class DropboxModule
|
||||
|
||||
@Override
|
||||
public void onHostResume() {
|
||||
String token = Auth.getOAuth2Token();
|
||||
DbxCredential credential = Auth.getDbxCredential();
|
||||
|
||||
if (this.promise != null ) {
|
||||
if (credential != null) {
|
||||
WritableMap result = Arguments.createMap();
|
||||
result.putString("token", credential.getAccessToken());
|
||||
result.putString("rToken", credential.getRefreshToken());
|
||||
result.putDouble("expireDate", credential.getExpiresAt());
|
||||
|
||||
this.promise.resolve(result);
|
||||
this.promise = null;
|
||||
} else {
|
||||
this.promise.reject("Invalid dropbox credentials");
|
||||
}
|
||||
|
||||
if (token != null && this.promise != null) {
|
||||
this.promise.resolve(token);
|
||||
this.promise = null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,12 +116,15 @@ public class JitsiMeetActivityDelegate {
|
||||
= ReactInstanceManagerHolder.getReactInstanceManager();
|
||||
|
||||
if (reactInstanceManager != null) {
|
||||
// Try to avoid a crash because some devices trip on this assert:
|
||||
// https://github.com/facebook/react-native/blob/df4e67fe75d781d1eb264128cadf079989542755/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java#L512
|
||||
// Why this happens is a mystery wrapped in an enigma.
|
||||
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
|
||||
if (reactContext != null && activity == reactContext.getCurrentActivity()) {
|
||||
try {
|
||||
reactInstanceManager.onHostPause(activity);
|
||||
} catch (AssertionError e) {
|
||||
// There seems to be a problem in RN when resuming an Activity when
|
||||
// rotation is involved and the planets align. There doesn't seem to
|
||||
// be a proper solution, but since the activity is going away anyway,
|
||||
// we'll YOLO-ignore the exception and hope fo the best.
|
||||
// Ref: https://github.com/facebook/react-native/search?q=Pausing+an+activity+that+is+not+the+current+activity%2C+this+is+incorrect%21&type=issues
|
||||
JitsiMeetLogger.e(e, "Error running onHostPause, ignoring");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class NotificationChannels {
|
||||
static final String ONGOING_CONFERENCE_CHANNEL_ID = "JitsiOngoingConferenceChannel";
|
||||
static final String ONGOING_CONFERNCE_CHANNEL_NAME = "Ongoing Conference Notifications";
|
||||
|
||||
public static List<String> allIds = new ArrayList<String>() {{ add(ONGOING_CONFERENCE_CHANNEL_ID); }};
|
||||
}
|
||||
@@ -16,6 +16,9 @@
|
||||
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import static org.jitsi.meet.sdk.NotificationChannels.ONGOING_CONFERENCE_CHANNEL_ID;
|
||||
import static org.jitsi.meet.sdk.NotificationChannels.ONGOING_CONFERNCE_CHANNEL_NAME;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
@@ -39,9 +42,6 @@ import java.util.Random;
|
||||
class OngoingNotification {
|
||||
private static final String TAG = OngoingNotification.class.getSimpleName();
|
||||
|
||||
private static final String CHANNEL_ID = "JitsiNotificationChannel";
|
||||
private static final String CHANNEL_NAME = "Ongoing Conference Notifications";
|
||||
|
||||
static final int NOTIFICATION_ID = new Random().nextInt(99999) + 10000;
|
||||
private static long startingTime = 0;
|
||||
|
||||
@@ -60,13 +60,13 @@ class OngoingNotification {
|
||||
= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
|
||||
NotificationChannel channel
|
||||
= notificationManager.getNotificationChannel(CHANNEL_ID);
|
||||
= notificationManager.getNotificationChannel(ONGOING_CONFERENCE_CHANNEL_ID);
|
||||
if (channel != null) {
|
||||
// The channel was already created, no need to do it again.
|
||||
return;
|
||||
}
|
||||
|
||||
channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
|
||||
channel = new NotificationChannel(ONGOING_CONFERENCE_CHANNEL_ID, ONGOING_CONFERNCE_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
|
||||
channel.enableLights(false);
|
||||
channel.enableVibration(false);
|
||||
channel.setShowBadge(false);
|
||||
@@ -84,7 +84,7 @@ class OngoingNotification {
|
||||
Intent notificationIntent = new Intent(context, context.getClass());
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
|
||||
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID);
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, ONGOING_CONFERENCE_CHANNEL_ID);
|
||||
|
||||
if (startingTime == 0) {
|
||||
startingTime = System.currentTimeMillis();
|
||||
|
||||
@@ -184,6 +184,7 @@ class ReactInstanceManagerHolder {
|
||||
new com.horcrux.svg.SvgPackage(),
|
||||
new com.kevinresol.react_native_default_preference.RNDefaultPreferencePackage(),
|
||||
new com.learnium.RNDeviceInfo.RNDeviceInfo(),
|
||||
new com.oblador.performance.PerformancePackage(),
|
||||
new com.ocetnik.timer.BackgroundTimerPackage(),
|
||||
new com.reactnativecommunity.asyncstorage.AsyncStoragePackage(),
|
||||
new com.reactnativecommunity.netinfo.NetInfoPackage(),
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
rootProject.name = 'jitsi-meet'
|
||||
|
||||
include ':app', ':sdk'
|
||||
include ':amplitudereactnative'
|
||||
project(':amplitudereactnative').projectDir = new File(rootProject.projectDir, '../node_modules/@amplitude/react-native//android')
|
||||
include ':react-native-amplitude'
|
||||
project(':react-native-amplitude').projectDir = new File(rootProject.projectDir, '../node_modules/@amplitude/react-native//android')
|
||||
include ':react-native-async-storage'
|
||||
project(':react-native-async-storage').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-async-storage/async-storage/android')
|
||||
include ':react-native-background-timer'
|
||||
@@ -21,6 +21,8 @@ include ':react-native-immersive'
|
||||
project(':react-native-immersive').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-immersive/android')
|
||||
include ':react-native-keep-awake'
|
||||
project(':react-native-keep-awake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keep-awake/android')
|
||||
include ':react-native-performance'
|
||||
project(':react-native-performance').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-performance/android')
|
||||
include ':react-native-slider'
|
||||
project(':react-native-slider').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/slider/android')
|
||||
include ':react-native-sound'
|
||||
|
||||
210
conference.js
210
conference.js
@@ -24,6 +24,8 @@ import {
|
||||
redirectToStaticPage,
|
||||
reloadWithStoredParams
|
||||
} from './react/features/app/actions';
|
||||
import { showModeratedNotification } from './react/features/av-moderation/actions';
|
||||
import { shouldShowModeratedNotification } from './react/features/av-moderation/functions';
|
||||
import {
|
||||
AVATAR_URL_COMMAND,
|
||||
EMAIL_COMMAND,
|
||||
@@ -44,7 +46,8 @@ import {
|
||||
lockStateChanged,
|
||||
onStartMutedPolicyChanged,
|
||||
p2pStatusChanged,
|
||||
sendLocalParticipant
|
||||
sendLocalParticipant,
|
||||
_conferenceWillJoin
|
||||
} from './react/features/base/conference';
|
||||
import { getReplaceParticipant } from './react/features/base/config/functions';
|
||||
import {
|
||||
@@ -56,6 +59,7 @@ import {
|
||||
setAudioOutputDeviceId,
|
||||
updateDeviceList
|
||||
} from './react/features/base/devices';
|
||||
import { isIosMobileBrowser } from './react/features/base/environment/utils';
|
||||
import {
|
||||
browser,
|
||||
isFatalJitsiConnectionError,
|
||||
@@ -118,7 +122,7 @@ import {
|
||||
maybeOpenFeedbackDialog,
|
||||
submitFeedback
|
||||
} from './react/features/feedback';
|
||||
import { showNotification } from './react/features/notifications';
|
||||
import { isModerationNotificationDisplayed, showNotification } from './react/features/notifications';
|
||||
import { mediaPermissionPromptVisibilityChanged, toggleSlowGUMOverlay } from './react/features/overlay';
|
||||
import { suspendDetected } from './react/features/power-monitor';
|
||||
import {
|
||||
@@ -453,27 +457,12 @@ export default {
|
||||
|
||||
isSharingScreen: false,
|
||||
|
||||
/**
|
||||
* The local audio track (if any).
|
||||
* FIXME tracks from redux store should be the single source of truth
|
||||
* @type {JitsiLocalTrack|null}
|
||||
*/
|
||||
localAudio: null,
|
||||
|
||||
/**
|
||||
* The local presenter video track (if any).
|
||||
* @type {JitsiLocalTrack|null}
|
||||
*/
|
||||
localPresenterVideo: null,
|
||||
|
||||
/**
|
||||
* The local video track (if any).
|
||||
* FIXME tracks from redux store should be the single source of truth, but
|
||||
* more refactoring is required around screen sharing ('localVideo' usages).
|
||||
* @type {JitsiLocalTrack|null}
|
||||
*/
|
||||
localVideo: null,
|
||||
|
||||
/**
|
||||
* Returns an object containing a promise which resolves with the created tracks &
|
||||
* the errors resulting from that process.
|
||||
@@ -727,9 +716,7 @@ export default {
|
||||
track.mute();
|
||||
}
|
||||
});
|
||||
logger.log(`Initialized with ${tracks.length} local tracks`);
|
||||
|
||||
this._localTracksInitialized = true;
|
||||
con.addEventListener(JitsiConnectionEvents.CONNECTION_FAILED, _connectionFailedHandler);
|
||||
APP.connection = connection = con;
|
||||
|
||||
@@ -834,7 +821,13 @@ export default {
|
||||
this._initDeviceList(true);
|
||||
|
||||
if (initialOptions.startWithAudioMuted) {
|
||||
localTracks = localTracks.filter(track => track.getType() !== MEDIA_TYPE.AUDIO);
|
||||
// Always add the audio track to the peer connection and then mute the track on mobile Safari
|
||||
// because of a known issue where audio playout doesn't happen if the user joins audio and video muted.
|
||||
if (isIosMobileBrowser()) {
|
||||
this.muteAudio(true, true);
|
||||
} else {
|
||||
localTracks = localTracks.filter(track => track.getType() !== MEDIA_TYPE.AUDIO);
|
||||
}
|
||||
}
|
||||
|
||||
return this.startConference(con, localTracks);
|
||||
@@ -880,13 +873,24 @@ export default {
|
||||
* dialogs in case of media permissions error.
|
||||
*/
|
||||
muteAudio(mute, showUI = true) {
|
||||
const state = APP.store.getState();
|
||||
|
||||
if (!mute
|
||||
&& isUserInteractionRequiredForUnmute(APP.store.getState())) {
|
||||
&& isUserInteractionRequiredForUnmute(state)) {
|
||||
logger.error('Unmuting audio requires user interaction');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// check for A/V Moderation when trying to unmute
|
||||
if (!mute && shouldShowModeratedNotification(MEDIA_TYPE.AUDIO, state)) {
|
||||
if (!isModerationNotificationDisplayed(MEDIA_TYPE.AUDIO, state)) {
|
||||
APP.store.dispatch(showModeratedNotification(MEDIA_TYPE.AUDIO));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Not ready to modify track's state yet
|
||||
if (!this._localTracksInitialized) {
|
||||
// This will only modify base/media.audio.muted which is then synced
|
||||
@@ -900,7 +904,9 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.localAudio && !mute) {
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
|
||||
if (!localAudio && !mute) {
|
||||
const maybeShowErrorDialog = error => {
|
||||
showUI && APP.store.dispatch(notifyMicError(error));
|
||||
};
|
||||
@@ -954,17 +960,18 @@ export default {
|
||||
const maybeShowErrorDialog = error => {
|
||||
showUI && APP.store.dispatch(notifyCameraError(error));
|
||||
};
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
|
||||
if (mute) {
|
||||
try {
|
||||
await this.localVideo.setEffect(undefined);
|
||||
await localVideo.setEffect(undefined);
|
||||
} catch (err) {
|
||||
logger.error('Failed to remove the presenter effect', err);
|
||||
maybeShowErrorDialog(err);
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
await this.localVideo.setEffect(await this._createPresenterStreamEffect());
|
||||
await localVideo.setEffect(await this._createPresenterStreamEffect());
|
||||
} catch (err) {
|
||||
logger.error('Failed to apply the presenter effect', err);
|
||||
maybeShowErrorDialog(err);
|
||||
@@ -1006,7 +1013,9 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.localVideo && !mute) {
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
|
||||
if (!localVideo && !mute) {
|
||||
const maybeShowErrorDialog = error => {
|
||||
showUI && APP.store.dispatch(notifyCameraError(error));
|
||||
};
|
||||
@@ -1320,14 +1329,14 @@ export default {
|
||||
APP.conference.roomName,
|
||||
this._getConferenceOptions());
|
||||
|
||||
APP.store.dispatch(conferenceWillJoin(room));
|
||||
|
||||
// Filter out the tracks that are muted.
|
||||
const tracks = localTracks.filter(track => !track.isMuted());
|
||||
// Filter out the tracks that are muted (except on mobile Safari).
|
||||
const tracks = isIosMobileBrowser() ? localTracks : localTracks.filter(track => !track.isMuted());
|
||||
|
||||
this._setLocalAudioVideoStreams(tracks);
|
||||
this._room = room; // FIXME do not use this
|
||||
|
||||
APP.store.dispatch(_conferenceWillJoin(room));
|
||||
|
||||
sendLocalParticipant(APP.store, room);
|
||||
|
||||
this._setupListeners();
|
||||
@@ -1340,7 +1349,7 @@ export default {
|
||||
* @private
|
||||
*/
|
||||
_setLocalAudioVideoStreams(tracks = []) {
|
||||
return tracks.map(track => {
|
||||
const promises = tracks.map(track => {
|
||||
if (track.isAudioTrack()) {
|
||||
return this.useAudioStream(track);
|
||||
} else if (track.isVideoTrack()) {
|
||||
@@ -1349,12 +1358,16 @@ export default {
|
||||
return this.useVideoStream(track);
|
||||
}
|
||||
|
||||
logger.error(
|
||||
'Ignored not an audio nor a video track: ', track);
|
||||
logger.error('Ignored not an audio nor a video track: ', track);
|
||||
|
||||
return Promise.resolve();
|
||||
|
||||
});
|
||||
|
||||
return Promise.allSettled(promises).then(() => {
|
||||
this._localTracksInitialized = true;
|
||||
logger.log(`Initialized with ${tracks.length} local tracks`);
|
||||
});
|
||||
},
|
||||
|
||||
_getConferenceOptions() {
|
||||
@@ -1376,29 +1389,20 @@ export default {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
_replaceLocalVideoTrackQueue.enqueue(onFinish => {
|
||||
const state = APP.store.getState();
|
||||
const oldTrack = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
|
||||
// When the prejoin page is displayed localVideo is not set
|
||||
// so just replace the video track from the store with the new one.
|
||||
if (isPrejoinPageVisible(state)) {
|
||||
const oldTrack = getLocalJitsiVideoTrack(state);
|
||||
logger.debug(`useVideoStream: Replacing ${oldTrack} with ${newTrack}`);
|
||||
|
||||
logger.debug(`useVideoStream on the prejoin screen: Replacing ${oldTrack} with ${newTrack}`);
|
||||
if (oldTrack === newTrack) {
|
||||
resolve();
|
||||
onFinish();
|
||||
|
||||
return APP.store.dispatch(replaceLocalTrack(oldTrack, newTrack))
|
||||
.then(resolve)
|
||||
.catch(error => {
|
||||
logger.error(`useVideoStream failed on the prejoin screen: ${error}`);
|
||||
reject(error);
|
||||
})
|
||||
.then(onFinish);
|
||||
return;
|
||||
}
|
||||
|
||||
logger.debug(`useVideoStream: Replacing ${this.localVideo} with ${newTrack}`);
|
||||
APP.store.dispatch(
|
||||
replaceLocalTrack(this.localVideo, newTrack, room))
|
||||
replaceLocalTrack(oldTrack, newTrack, room))
|
||||
.then(() => {
|
||||
this.localVideo = newTrack;
|
||||
this._setSharingScreen(newTrack);
|
||||
this.setVideoMuteStatus();
|
||||
})
|
||||
@@ -1448,23 +1452,18 @@ export default {
|
||||
useAudioStream(newTrack) {
|
||||
return new Promise((resolve, reject) => {
|
||||
_replaceLocalAudioTrackQueue.enqueue(onFinish => {
|
||||
const state = APP.store.getState();
|
||||
const oldTrack = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
|
||||
// When the prejoin page is displayed localAudio is not set
|
||||
// so just replace the audio track from the store with the new one.
|
||||
if (isPrejoinPageVisible(state)) {
|
||||
const oldTrack = getLocalJitsiAudioTrack(state);
|
||||
if (oldTrack === newTrack) {
|
||||
resolve();
|
||||
onFinish();
|
||||
|
||||
return APP.store.dispatch(replaceLocalTrack(oldTrack, newTrack))
|
||||
.then(resolve)
|
||||
.catch(reject)
|
||||
.then(onFinish);
|
||||
return;
|
||||
}
|
||||
|
||||
APP.store.dispatch(
|
||||
replaceLocalTrack(this.localAudio, newTrack, room))
|
||||
replaceLocalTrack(oldTrack, newTrack, room))
|
||||
.then(() => {
|
||||
this.localAudio = newTrack;
|
||||
this.setAudioMuteStatus(this.isLocalAudioMuted());
|
||||
})
|
||||
.then(resolve)
|
||||
@@ -1539,7 +1538,9 @@ export default {
|
||||
|
||||
// If system audio was also shared stop the AudioMixerEffect and dispose of the desktop audio track.
|
||||
if (this._mixerEffect) {
|
||||
await this.localAudio.setEffect(undefined);
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
|
||||
await localAudio.setEffect(undefined);
|
||||
await this._desktopAudioStream.dispose();
|
||||
this._mixerEffect = undefined;
|
||||
this._desktopAudioStream = undefined;
|
||||
@@ -1765,7 +1766,8 @@ export default {
|
||||
|
||||
// Create a new presenter track and apply the presenter effect.
|
||||
if (!this.localPresenterVideo && !mute) {
|
||||
const { height, width } = this.localVideo.track.getSettings() ?? this.localVideo.track.getConstraints();
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
const { height, width } = localVideo.track.getSettings() ?? localVideo.track.getConstraints();
|
||||
const isPortrait = height >= width;
|
||||
const DESKTOP_STREAM_CAP = 720;
|
||||
|
||||
@@ -1794,7 +1796,7 @@ export default {
|
||||
|
||||
// Apply the constraints on the desktop track.
|
||||
try {
|
||||
await this.localVideo.track.applyConstraints(desktopResizeConstraints);
|
||||
await localVideo.track.applyConstraints(desktopResizeConstraints);
|
||||
} catch (err) {
|
||||
logger.error('Failed to apply constraints on the desktop stream for presenter mode', err);
|
||||
|
||||
@@ -1802,7 +1804,7 @@ export default {
|
||||
}
|
||||
}
|
||||
const trackHeight = resizeDesktopStream
|
||||
? this.localVideo.track.getSettings().height ?? DESKTOP_STREAM_CAP
|
||||
? localVideo.track.getSettings().height ?? DESKTOP_STREAM_CAP
|
||||
: height;
|
||||
let effect;
|
||||
|
||||
@@ -1817,7 +1819,7 @@ export default {
|
||||
|
||||
// Replace the desktop track on the peerconnection.
|
||||
try {
|
||||
await this.localVideo.setEffect(effect);
|
||||
await localVideo.setEffect(effect);
|
||||
APP.store.dispatch(setVideoMuted(mute, MEDIA_TYPE.PRESENTER));
|
||||
this.setVideoMuteStatus();
|
||||
} catch (err) {
|
||||
@@ -1873,12 +1875,14 @@ export default {
|
||||
}
|
||||
|
||||
if (this._desktopAudioStream) {
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
|
||||
// If there is a localAudio stream, mix in the desktop audio stream captured by the screen sharing
|
||||
// api.
|
||||
if (this.localAudio) {
|
||||
if (localAudio) {
|
||||
this._mixerEffect = new AudioMixerEffect(this._desktopAudioStream);
|
||||
|
||||
await this.localAudio.setEffect(this._mixerEffect);
|
||||
await localAudio.setEffect(this._mixerEffect);
|
||||
} else {
|
||||
// If no local stream is present ( i.e. no input audio devices) we use the screen share audio
|
||||
// stream as we would use a regular stream.
|
||||
@@ -2059,10 +2063,10 @@ export default {
|
||||
});
|
||||
|
||||
room.on(JitsiConferenceEvents.TRACK_AUDIO_LEVEL_CHANGED, (id, lvl) => {
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
let newLvl = lvl;
|
||||
|
||||
if (this.isLocalId(id)
|
||||
&& this.localAudio && this.localAudio.isMuted()) {
|
||||
if (this.isLocalId(id) && localAudio?.isMuted()) {
|
||||
newLvl = 0;
|
||||
}
|
||||
|
||||
@@ -2261,7 +2265,9 @@ export default {
|
||||
|
||||
// Remove the tracks from the peerconnection.
|
||||
for (const track of localTracks) {
|
||||
if (audioMuted && track.jitsiTrack?.getType() === MEDIA_TYPE.AUDIO) {
|
||||
// Always add the track on mobile Safari because of a known issue where audio playout doesn't happen
|
||||
// if the user joins audio and video muted.
|
||||
if (audioMuted && track.jitsiTrack?.getType() === MEDIA_TYPE.AUDIO && !isIosMobileBrowser()) {
|
||||
promises.push(this.useAudioStream(null));
|
||||
}
|
||||
if (videoMuted && track.jitsiTrack?.getType() === MEDIA_TYPE.VIDEO) {
|
||||
@@ -2302,6 +2308,7 @@ export default {
|
||||
APP.UI.addListener(
|
||||
UIEvents.VIDEO_DEVICE_CHANGED,
|
||||
cameraDeviceId => {
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
const videoWasMuted = this.isLocalVideoMuted();
|
||||
|
||||
sendAnalytics(createDeviceChangedEvent('video', 'input'));
|
||||
@@ -2309,7 +2316,7 @@ export default {
|
||||
// If both screenshare and video are in progress, restart the
|
||||
// presenter mode with the new camera device.
|
||||
if (this.isSharingScreen && !videoWasMuted) {
|
||||
const { height } = this.localVideo.track.getSettings();
|
||||
const { height } = localVideo.track.getSettings();
|
||||
|
||||
// dispose the existing presenter track and create a new
|
||||
// camera track.
|
||||
@@ -2318,7 +2325,7 @@ export default {
|
||||
this.localPresenterVideo = null;
|
||||
|
||||
return this._createPresenterStreamEffect(height, cameraDeviceId)
|
||||
.then(effect => this.localVideo.setEffect(effect))
|
||||
.then(effect => localVideo.setEffect(effect))
|
||||
.then(() => {
|
||||
this.setVideoMuteStatus();
|
||||
logger.log('Switched local video device while screen sharing and the video is unmuted');
|
||||
@@ -2331,7 +2338,7 @@ export default {
|
||||
// that can be applied on un-mute.
|
||||
} else if (this.isSharingScreen && videoWasMuted) {
|
||||
logger.log('Switched local video device: while screen sharing and the video is muted');
|
||||
const { height } = this.localVideo.track.getSettings();
|
||||
const { height } = localVideo.track.getSettings();
|
||||
|
||||
this._updateVideoDeviceId();
|
||||
|
||||
@@ -2417,13 +2424,15 @@ export default {
|
||||
return this.useAudioStream(stream);
|
||||
})
|
||||
.then(() => {
|
||||
if (this.localAudio && hasDefaultMicChanged) {
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
|
||||
if (localAudio && hasDefaultMicChanged) {
|
||||
// workaround for the default device to be shown as selected in the
|
||||
// settings even when the real device id was passed to gUM because of the
|
||||
// above mentioned chrome bug.
|
||||
this.localAudio._realDeviceId = this.localAudio.deviceId = 'default';
|
||||
localAudio._realDeviceId = localAudio.deviceId = 'default';
|
||||
}
|
||||
logger.log(`switched local audio device: ${this.localAudio?.getDeviceId()}`);
|
||||
logger.log(`switched local audio device: ${localAudio?.getDeviceId()}`);
|
||||
|
||||
this._updateAudioDeviceId();
|
||||
})
|
||||
@@ -2489,9 +2498,6 @@ export default {
|
||||
JitsiMediaDevicesEvents.DEVICE_LIST_CHANGED,
|
||||
this.deviceChangeListener);
|
||||
}
|
||||
|
||||
this.localVideo = null;
|
||||
this.localAudio = null;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -2554,10 +2560,11 @@ export default {
|
||||
* @private
|
||||
*/
|
||||
_updateVideoDeviceId() {
|
||||
if (this.localVideo
|
||||
&& this.localVideo.videoType === 'camera') {
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
|
||||
if (localVideo && localVideo.videoType === 'camera') {
|
||||
APP.store.dispatch(updateSettings({
|
||||
cameraDeviceId: this.localVideo.getDeviceId()
|
||||
cameraDeviceId: localVideo.getDeviceId()
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -2575,9 +2582,11 @@ export default {
|
||||
* @private
|
||||
*/
|
||||
_updateAudioDeviceId() {
|
||||
if (this.localAudio) {
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
|
||||
if (localAudio) {
|
||||
APP.store.dispatch(updateSettings({
|
||||
micDeviceId: this.localAudio.getDeviceId()
|
||||
micDeviceId: localAudio.getDeviceId()
|
||||
}));
|
||||
}
|
||||
},
|
||||
@@ -2591,6 +2600,8 @@ export default {
|
||||
*/
|
||||
_onDeviceListChanged(devices) {
|
||||
const oldDevices = APP.store.getState()['features/base/devices'].availableDevices;
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
|
||||
APP.store.dispatch(updateDeviceList(devices));
|
||||
|
||||
@@ -2598,8 +2609,8 @@ export default {
|
||||
= mediaDeviceHelper.getNewMediaDevicesAfterDeviceListChanged(
|
||||
devices,
|
||||
this.isSharingScreen,
|
||||
this.localVideo,
|
||||
this.localAudio);
|
||||
localVideo,
|
||||
localAudio);
|
||||
const promises = [];
|
||||
const audioWasMuted = this.isLocalAudioMuted();
|
||||
const videoWasMuted = this.isLocalVideoMuted();
|
||||
@@ -2622,12 +2633,12 @@ export default {
|
||||
// simpler):
|
||||
// If the default device is changed we need to first stop the local streams and then call GUM. Otherwise GUM
|
||||
// will return a stream using the old default device.
|
||||
if (requestedInput.audio && this.localAudio) {
|
||||
this.localAudio.stopStream();
|
||||
if (requestedInput.audio && localAudio) {
|
||||
localAudio.stopStream();
|
||||
}
|
||||
|
||||
if (requestedInput.video && this.localVideo) {
|
||||
this.localVideo.stopStream();
|
||||
if (requestedInput.video && localVideo) {
|
||||
localVideo.stopStream();
|
||||
}
|
||||
|
||||
// Let's handle unknown/non-preferred devices
|
||||
@@ -2707,15 +2718,16 @@ export default {
|
||||
= mediaType === 'audio'
|
||||
? this.useAudioStream.bind(this)
|
||||
: this.useVideoStream.bind(this);
|
||||
const track = tracks.find(t => t.getType() === mediaType) || null;
|
||||
|
||||
// Use the new stream or null if we failed to obtain it.
|
||||
return useStream(tracks.find(track => track.getType() === mediaType) || null)
|
||||
return useStream(track)
|
||||
.then(() => {
|
||||
if (this.localAudio && hasDefaultMicChanged) {
|
||||
if (track?.isAudioTrack() && hasDefaultMicChanged) {
|
||||
// workaround for the default device to be shown as selected in the
|
||||
// settings even when the real device id was passed to gUM because of
|
||||
// the above mentioned chrome bug.
|
||||
this.localAudio._realDeviceId = this.localAudio.deviceId = 'default';
|
||||
track._realDeviceId = track.deviceId = 'default';
|
||||
}
|
||||
mediaType === 'audio'
|
||||
? this._updateAudioDeviceId()
|
||||
@@ -2755,14 +2767,13 @@ export default {
|
||||
* Determines whether or not the audio button should be enabled.
|
||||
*/
|
||||
updateAudioIconEnabled() {
|
||||
const audioMediaDevices
|
||||
= APP.store.getState()['features/base/devices'].availableDevices.audioInput;
|
||||
const audioDeviceCount
|
||||
= audioMediaDevices ? audioMediaDevices.length : 0;
|
||||
const localAudio = getLocalJitsiAudioTrack(APP.store.getState());
|
||||
const audioMediaDevices = APP.store.getState()['features/base/devices'].availableDevices.audioInput;
|
||||
const audioDeviceCount = audioMediaDevices ? audioMediaDevices.length : 0;
|
||||
|
||||
// The audio functionality is considered available if there are any
|
||||
// audio devices detected or if the local audio stream already exists.
|
||||
const available = audioDeviceCount > 0 || Boolean(this.localAudio);
|
||||
const available = audioDeviceCount > 0 || Boolean(localAudio);
|
||||
|
||||
APP.store.dispatch(setAudioAvailable(available));
|
||||
APP.API.notifyAudioAvailabilityChanged(available);
|
||||
@@ -2776,13 +2787,14 @@ export default {
|
||||
= APP.store.getState()['features/base/devices'].availableDevices.videoInput;
|
||||
const videoDeviceCount
|
||||
= videoMediaDevices ? videoMediaDevices.length : 0;
|
||||
const localVideo = getLocalJitsiVideoTrack(APP.store.getState());
|
||||
|
||||
// The video functionality is considered available if there are any
|
||||
// video devices detected or if there is local video stream already
|
||||
// active which could be either screensharing stream or a video track
|
||||
// created before the permissions were rejected (through browser
|
||||
// config).
|
||||
const available = videoDeviceCount > 0 || Boolean(this.localVideo);
|
||||
const available = videoDeviceCount > 0 || Boolean(localVideo);
|
||||
|
||||
APP.store.dispatch(setVideoAvailable(available));
|
||||
APP.API.notifyVideoAvailabilityChanged(available);
|
||||
@@ -2800,8 +2812,6 @@ export default {
|
||||
|
||||
APP.store.dispatch(destroyLocalTracks());
|
||||
this._localTracksInitialized = false;
|
||||
this.localVideo = null;
|
||||
this.localAudio = null;
|
||||
|
||||
// Remove unnecessary event listeners from firing callbacks.
|
||||
if (this.deviceChangeListener) {
|
||||
|
||||
127
config.js
127
config.js
@@ -41,9 +41,16 @@ var config = {
|
||||
// issues related to insertable streams.
|
||||
// disableE2EE: false,
|
||||
|
||||
// Enables/disables thumbnail reordering in the filmstrip. It is enabled by default unless explicitly
|
||||
// disabled by the below option.
|
||||
// enableThumbnailReordering: true,
|
||||
|
||||
// Enables XMPP WebSocket (as opposed to BOSH) for the given amount of users.
|
||||
// mobileXmppWsThreshold: 10 // enable XMPP WebSockets on mobile for 10% of the users
|
||||
|
||||
// P2P test mode disables automatic switching to P2P when there are 2
|
||||
// participants in the conference.
|
||||
p2pTestMode: false
|
||||
// p2pTestMode: false,
|
||||
|
||||
// Enables the test specific features consumed by jitsi-meet-torture
|
||||
// testMode: false
|
||||
@@ -144,9 +151,19 @@ var config = {
|
||||
// Sets the preferred resolution (height) for local video. Defaults to 720.
|
||||
// resolution: 720,
|
||||
|
||||
// Specifies whether the raised hand will hide when someone becomes a dominant speaker or not
|
||||
// disableRemoveRaisedHandOnFocus: false,
|
||||
|
||||
// Specifies whether there will be a search field in speaker stats or not
|
||||
// disableSpeakerStatsSearch: false,
|
||||
|
||||
// Specifies whether participants in speaker stats should be ordered or not, and with what priority
|
||||
// speakerStatsOrder: [
|
||||
// 'role', <- Moderators on top
|
||||
// 'name', <- Alphabetically by name
|
||||
// 'hasLeft', <- The ones that have left in the bottom
|
||||
// ] <- the order of the array elements determines priority
|
||||
|
||||
// How many participants while in the tile view mode, before the receiving video quality is reduced from HD to SD.
|
||||
// Use -1 to disable.
|
||||
// maxFullResolutionParticipants: 2,
|
||||
@@ -169,9 +186,10 @@ var config = {
|
||||
// Enable / disable simulcast support.
|
||||
// disableSimulcast: false,
|
||||
|
||||
// Enable / disable layer suspension. If enabled, endpoints whose HD
|
||||
// layers are not in use will be suspended (no longer sent) until they
|
||||
// are requested again.
|
||||
// Enable / disable layer suspension. If enabled, endpoints whose HD layers are not in use will be suspended
|
||||
// (no longer sent) until they are requested again. This is enabled by default. This must be enabled for screen
|
||||
// sharing to work as expected on Chrome. Disabling this might result in low resolution screenshare being sent
|
||||
// by the client.
|
||||
// enableLayerSuspension: false,
|
||||
|
||||
// Every participant after the Nth will start video muted.
|
||||
@@ -241,8 +259,9 @@ var config = {
|
||||
// transcribeWithAppLanguage: true,
|
||||
|
||||
// Transcriber language. This settings will only work if "transcribeWithAppLanguage" is explicitly set to false.
|
||||
// Available languages can be found in lang/language.json.
|
||||
// preferredTranscribeLanguage: 'en',
|
||||
// Available languages can be found in
|
||||
// ./src/react/features/transcribing/transcriber-langs.json.
|
||||
// preferredTranscribeLanguage: 'en-US',
|
||||
|
||||
// Enables automatic turning on captions when recording is started
|
||||
// autoCaptionOnRecord: false,
|
||||
@@ -252,6 +271,14 @@ var config = {
|
||||
// Default value for the channel "last N" attribute. -1 for unlimited.
|
||||
channelLastN: -1,
|
||||
|
||||
// Connection indicators
|
||||
// connectionIndicators: {
|
||||
// autoHide: true,
|
||||
// autoHideTimeout: 5000,
|
||||
// disabled: false,
|
||||
// inactiveDisabled: false
|
||||
// },
|
||||
|
||||
// Provides a way for the lastN value to be controlled through the UI.
|
||||
// When startLastN is present, conference starts with a last-n value of startLastN and channelLastN
|
||||
// value will be used when the quality level is selected using "Manage Video Quality" slider.
|
||||
@@ -320,7 +347,7 @@ var config = {
|
||||
// VP9: {
|
||||
// low: 100000,
|
||||
// standard: 300000,
|
||||
// high: 1200000
|
||||
// high: 1200000
|
||||
// }
|
||||
// },
|
||||
//
|
||||
@@ -515,6 +542,47 @@ var config = {
|
||||
// '__end'
|
||||
// ],
|
||||
|
||||
// Toolbar buttons which have their click event exposed through the API on
|
||||
// `toolbarButtonClicked` event instead of executing the normal click routine.
|
||||
// buttonsWithNotifyClick: [
|
||||
// 'camera',
|
||||
// 'chat',
|
||||
// 'closedcaptions',
|
||||
// 'desktop',
|
||||
// 'download',
|
||||
// 'embedmeeting',
|
||||
// 'etherpad',
|
||||
// 'feedback',
|
||||
// 'filmstrip',
|
||||
// 'fullscreen',
|
||||
// 'hangup',
|
||||
// 'help',
|
||||
// 'invite',
|
||||
// 'livestreaming',
|
||||
// 'microphone',
|
||||
// 'mute-everyone',
|
||||
// 'mute-video-everyone',
|
||||
// 'participants-pane',
|
||||
// 'profile',
|
||||
// 'raisehand',
|
||||
// 'recording',
|
||||
// 'security',
|
||||
// 'select-background',
|
||||
// 'settings',
|
||||
// 'shareaudio',
|
||||
// 'sharedvideo',
|
||||
// 'shortcuts',
|
||||
// 'stats',
|
||||
// 'tileview',
|
||||
// 'toggle-camera',
|
||||
// 'videoquality',
|
||||
// '__end'
|
||||
// ],
|
||||
|
||||
// List of pre meeting screens buttons to hide. The values must be one or more of the 5 allowed buttons:
|
||||
// 'microphone', 'camera', 'select-background', 'invite', 'settings'
|
||||
// hiddenPremeetingButtons: [],
|
||||
|
||||
// Stats
|
||||
//
|
||||
|
||||
@@ -670,13 +738,39 @@ var config = {
|
||||
// userRegion: "asia"
|
||||
},
|
||||
|
||||
// Array<string> of disabled sounds.
|
||||
// Possible values:
|
||||
// - 'ASKED_TO_UNMUTE_SOUND'
|
||||
// - 'E2EE_OFF_SOUND'
|
||||
// - 'E2EE_ON_SOUND'
|
||||
// - 'INCOMING_MSG_SOUND'
|
||||
// - 'KNOCKING_PARTICIPANT_SOUND'
|
||||
// - 'LIVE_STREAMING_OFF_SOUND'
|
||||
// - 'LIVE_STREAMING_ON_SOUND'
|
||||
// - 'NO_AUDIO_SIGNAL_SOUND'
|
||||
// - 'NOISY_AUDIO_INPUT_SOUND'
|
||||
// - 'OUTGOING_CALL_EXPIRED_SOUND'
|
||||
// - 'OUTGOING_CALL_REJECTED_SOUND'
|
||||
// - 'OUTGOING_CALL_RINGING_SOUND'
|
||||
// - 'OUTGOING_CALL_START_SOUND'
|
||||
// - 'PARTICIPANT_JOINED_SOUND'
|
||||
// - 'PARTICIPANT_LEFT_SOUND'
|
||||
// - 'RAISE_HAND_SOUND'
|
||||
// - 'RECORDING_OFF_SOUND'
|
||||
// - 'RECORDING_ON_SOUND'
|
||||
// - 'TALK_WHILE_MUTED_SOUND'
|
||||
// disabledSounds: [],
|
||||
|
||||
// DEPRECATED! Use `disabledSounds` instead.
|
||||
// Decides whether the start/stop recording audio notifications should play on record.
|
||||
// disableRecordAudioNotification: false,
|
||||
|
||||
// DEPRECATED! Use `disabledSounds` instead.
|
||||
// Disables the sounds that play when other participants join or leave the
|
||||
// conference (if set to true, these sounds will not be played).
|
||||
// disableJoinLeaveSounds: false,
|
||||
|
||||
// DEPRECATED! Use `disabledSounds` instead.
|
||||
// Disables the sounds that play when a chat message is received.
|
||||
// disableIncomingMessageSound: false,
|
||||
|
||||
@@ -790,7 +884,11 @@ var config = {
|
||||
// The anchor url used when clicking the logo image
|
||||
logoClickUrl: 'https://example-company.org',
|
||||
// The url used for the image used as logo
|
||||
logoImageUrl: 'https://example.com/logo-img.png'
|
||||
logoImageUrl: 'https://example.com/logo-img.png',
|
||||
// Overwrite for pool of background images for avatars
|
||||
avatarBackgrounds: ['url(https://example.com/avatar-background-1.png)', '#FFF'],
|
||||
// The lobby/prejoin screen background
|
||||
premeetingBackground: 'url(https://example.com/premeeting-background.png)'
|
||||
}
|
||||
*/
|
||||
// dynamicBrandingUrl: '',
|
||||
@@ -851,6 +949,7 @@ var config = {
|
||||
disableRemoteControl
|
||||
displayJids
|
||||
externalConnectUrl
|
||||
e2eeLabels
|
||||
firefox_fake_device
|
||||
googleApiApplicationClientID
|
||||
iAmRecorder
|
||||
@@ -930,11 +1029,19 @@ var config = {
|
||||
// 'lobby.notificationTitle', // shown when lobby is toggled and when join requests are allowed / denied
|
||||
// 'localRecording.localRecording', // shown when a local recording is started
|
||||
// 'notify.disconnected', // shown when a participant has left
|
||||
// 'notify.connectedOneMember', // show when a participant joined
|
||||
// 'notify.connectedTwoMembers', // show when two participants joined simultaneously
|
||||
// 'notify.connectedThreePlusMembers', // show when more than 2 participants joined simultaneously
|
||||
// 'notify.grantedTo', // shown when moderator rights were granted to a participant
|
||||
// 'notify.invitedOneMember', // shown when 1 participant has been invited
|
||||
// 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited
|
||||
// 'notify.invitedTwoMembers', // shown when 2 participants have been invited
|
||||
// 'notify.kickParticipant', // shown when a participant is kicked
|
||||
// 'notify.moderationStartedTitle', // shown when AV moderation is activated
|
||||
// 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated
|
||||
// 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation
|
||||
// 'notify.moderationInEffectVideoTitle', // shown when user attempts to enable video during AV moderation
|
||||
// 'notify.moderationInEffectCSTitle', // shown when user attempts to share content during AV moderation
|
||||
// 'notify.mutedRemotelyTitle', // shown when user is muted by a remote party
|
||||
// 'notify.mutedTitle', // shown when user has been muted upon joining,
|
||||
// 'notify.newDeviceAudioTitle', // prompts the user to use a newly detected audio device
|
||||
@@ -943,6 +1050,7 @@ var config = {
|
||||
// 'notify.passwordSetRemotely', // shown when a password has been set remotely
|
||||
// 'notify.raisedHand', // shown when a partcipant used raise hand,
|
||||
// 'notify.startSilentTitle', // shown when user joined with no audio
|
||||
// 'notify.unmute', // shown to moderator when user raises hand during AV moderation
|
||||
// 'prejoin.errorDialOut',
|
||||
// 'prejoin.errorDialOutDisconnected',
|
||||
// 'prejoin.errorDialOutFailed',
|
||||
@@ -961,6 +1069,9 @@ var config = {
|
||||
// Prevent the filmstrip from autohiding when screen width is under a certain threshold
|
||||
// disableFilmstripAutohiding: false,
|
||||
|
||||
// Specifies whether the chat emoticons are disabled or not
|
||||
// disableChatSmileys: false,
|
||||
|
||||
// Allow all above example options to include a trailing comma and
|
||||
// prevent fear when commenting out the last value.
|
||||
makeJsonParserHappy: 'even if last key had a trailing comma'
|
||||
|
||||
@@ -106,9 +106,7 @@ export async function connect(id, password, roomName) {
|
||||
|
||||
serviceUrl += `?room=${roomName}`;
|
||||
|
||||
// FIXME Remove deprecated 'bosh' option assignment at some point(LJM will be accepting only 'serviceUrl' option
|
||||
// in future). It's included for the time being for Jitsi Meet and lib-jitsi-meet versions interoperability.
|
||||
connectionConfig.serviceUrl = connectionConfig.bosh = serviceUrl;
|
||||
connectionConfig.serviceUrl = serviceUrl;
|
||||
|
||||
if (connectionConfig.websocketKeepAliveUrl) {
|
||||
connectionConfig.websocketKeepAliveUrl += `?room=${roomName}`;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
margin: 8px 16px 8px 0;
|
||||
}
|
||||
|
||||
@media (max-width: 375px) {
|
||||
@media (max-width: 580px) {
|
||||
.participants_pane {
|
||||
height: 100vh;
|
||||
height: -webkit-fill-available;
|
||||
|
||||
@@ -98,6 +98,7 @@ $flagsImagePath: "../images/";
|
||||
@import 'country-picker';
|
||||
@import 'modals/invite/invite_more';
|
||||
@import 'modals/security/security';
|
||||
@import 'modals/mute/mute-dialog';
|
||||
@import 'e2ee';
|
||||
@import 'responsive';
|
||||
@import 'drawer';
|
||||
|
||||
19
css/modals/mute/_mute-dialog.scss
Normal file
19
css/modals/mute/_mute-dialog.scss
Normal file
@@ -0,0 +1,19 @@
|
||||
.mute-dialog {
|
||||
.separator-line {
|
||||
margin: 24px 0 24px -20px;
|
||||
padding: 0 20px;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: #5E6D7A;
|
||||
}
|
||||
|
||||
.control-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 15px;
|
||||
|
||||
label {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ $sidePanelWidth: 300px;
|
||||
.content {
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
width: auto;
|
||||
|
||||
.new-toolbox {
|
||||
width: auto;
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
margin-bottom: 32px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
input.field {
|
||||
background-color: white;
|
||||
border: none;
|
||||
@@ -116,11 +116,11 @@
|
||||
padding: 10px 16px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
|
||||
|
||||
&.error {
|
||||
border: 1px solid #E04757;
|
||||
}
|
||||
|
||||
|
||||
&.focused {
|
||||
box-shadow: 0px 0px 1px 1.5px black, 0px 0px 1.3px 4px white;
|
||||
}
|
||||
@@ -144,7 +144,7 @@
|
||||
|
||||
@media (max-width: 1000px) {
|
||||
flex-direction: column-reverse;
|
||||
|
||||
|
||||
.content {
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
@@ -208,8 +208,6 @@
|
||||
width: 100%;
|
||||
|
||||
.avatar {
|
||||
background: #0045B3;
|
||||
|
||||
text {
|
||||
fill: white;
|
||||
font-size: 26px;
|
||||
|
||||
2
debian/control
vendored
2
debian/control
vendored
@@ -33,7 +33,7 @@ Description: Configuration for web serving of Jitsi Meet
|
||||
|
||||
Package: jitsi-meet-prosody
|
||||
Architecture: all
|
||||
Depends: openssl, prosody | prosody-trunk | prosody-0.11, lua-sec
|
||||
Depends: openssl, prosody (>= 0.11.0) | prosody-trunk | prosody-0.11, lua-sec
|
||||
Replaces: jitsi-meet-tokens
|
||||
Description: Prosody configuration for Jitsi Meet
|
||||
Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
|
||||
|
||||
@@ -25,31 +25,11 @@ var interfaceConfig = {
|
||||
BRAND_WATERMARK_LINK: '',
|
||||
|
||||
CLOSE_PAGE_GUEST_HINT: false, // A html text to be shown to guests on the close page, false disables it
|
||||
/**
|
||||
* Whether the connection indicator icon should hide itself based on
|
||||
* connection strength. If true, the connection indicator will remain
|
||||
* displayed while the participant has a weak connection and will hide
|
||||
* itself after the CONNECTION_INDICATOR_HIDE_TIMEOUT when the connection is
|
||||
* strong.
|
||||
*
|
||||
* @type {boolean}
|
||||
*/
|
||||
CONNECTION_INDICATOR_AUTO_HIDE_ENABLED: true,
|
||||
|
||||
/**
|
||||
* How long the connection indicator should remain displayed before hiding.
|
||||
* Used in conjunction with CONNECTION_INDICATOR_AUTOHIDE_ENABLED.
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT: 5000,
|
||||
|
||||
/**
|
||||
* If true, hides the connection indicators completely.
|
||||
*
|
||||
* @type {boolean}
|
||||
*/
|
||||
CONNECTION_INDICATOR_DISABLED: false,
|
||||
// Connection indicators (
|
||||
// CONNECTION_INDICATOR_AUTO_HIDE_ENABLED,
|
||||
// CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT,
|
||||
// CONNECTION_INDICATOR_DISABLED) got moved to config.js.
|
||||
|
||||
DEFAULT_BACKGROUND: '#474747',
|
||||
DEFAULT_LOCAL_DISPLAY_NAME: 'me',
|
||||
@@ -185,10 +165,10 @@ var interfaceConfig = {
|
||||
SHOW_BRAND_WATERMARK: false,
|
||||
|
||||
/**
|
||||
* Decides whether the chrome extension banner should be rendered on the landing page and during the meeting.
|
||||
* If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s)
|
||||
* being already installed is done before rendering.
|
||||
*/
|
||||
* Decides whether the chrome extension banner should be rendered on the landing page and during the meeting.
|
||||
* If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s)
|
||||
* being already installed is done before rendering.
|
||||
*/
|
||||
SHOW_CHROME_EXTENSION_BANNER: false,
|
||||
|
||||
SHOW_DEEP_LINKING_IMAGE: false,
|
||||
@@ -224,7 +204,8 @@ var interfaceConfig = {
|
||||
// Determines how the video would fit the screen. 'both' would fit the whole
|
||||
// screen, 'height' would fit the original video height to the height of the
|
||||
// screen, 'width' would fit the original video width to the width of the
|
||||
// screen respecting ratio.
|
||||
// screen respecting ratio, 'nocrop' would make the video as large as
|
||||
// possible and preserve aspect ratio without cropping.
|
||||
VIDEO_LAYOUT_FIT: 'both',
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,6 +59,7 @@ target 'JitsiMeetSDK' do
|
||||
pod 'react-native-calendar-events', :path => '../node_modules/react-native-calendar-events'
|
||||
pod 'react-native-keep-awake', :path => '../node_modules/react-native-keep-awake'
|
||||
pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
|
||||
pod 'react-native-performance', :path => '../node_modules/react-native-performance/ios'
|
||||
pod 'react-native-slider', :path => '../node_modules/@react-native-community/slider'
|
||||
pod 'react-native-splash-screen', :path => '../node_modules/react-native-splash-screen'
|
||||
pod 'react-native-video', :path => '../node_modules/react-native-video/react-native-video.podspec'
|
||||
@@ -76,7 +77,7 @@ target 'JitsiMeetSDK' do
|
||||
#
|
||||
|
||||
pod 'CocoaLumberjack', '~>3.5.3'
|
||||
pod 'ObjectiveDropboxOfficial', '~> 3.9.4'
|
||||
pod 'ObjectiveDropboxOfficial', '~>6.1.0'
|
||||
|
||||
use_native_modules!
|
||||
end
|
||||
|
||||
@@ -115,7 +115,7 @@ PODS:
|
||||
- nanopb/encode (= 1.30906.0)
|
||||
- nanopb/decode (1.30906.0)
|
||||
- nanopb/encode (1.30906.0)
|
||||
- ObjectiveDropboxOfficial (3.9.4)
|
||||
- ObjectiveDropboxOfficial (6.1.0)
|
||||
- PromisesObjC (1.2.12)
|
||||
- RCTRequired (0.61.5-jitsi.2)
|
||||
- RCTTypeSafety (0.61.5-jitsi.2):
|
||||
@@ -288,6 +288,8 @@ PODS:
|
||||
- React
|
||||
- react-native-netinfo (4.1.5):
|
||||
- React
|
||||
- react-native-performance (2.0.0):
|
||||
- React-Core
|
||||
- react-native-slider (3.0.3):
|
||||
- React
|
||||
- react-native-splash-screen (3.2.0):
|
||||
@@ -297,7 +299,7 @@ PODS:
|
||||
- react-native-video/Video (= 5.1.1)
|
||||
- react-native-video/Video (5.1.1):
|
||||
- React-Core
|
||||
- react-native-webrtc (1.92.0):
|
||||
- react-native-webrtc (1.92.1):
|
||||
- React-Core
|
||||
- react-native-webview (11.0.2):
|
||||
- React-Core
|
||||
@@ -386,7 +388,7 @@ DEPENDENCIES:
|
||||
- Firebase/DynamicLinks (~> 6.33.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)
|
||||
- ObjectiveDropboxOfficial (~> 6.1.0)
|
||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired/`)
|
||||
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety/`)
|
||||
- React (from `../node_modules/react-native/`)
|
||||
@@ -402,6 +404,7 @@ DEPENDENCIES:
|
||||
- react-native-calendar-events (from `../node_modules/react-native-calendar-events`)
|
||||
- react-native-keep-awake (from `../node_modules/react-native-keep-awake`)
|
||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||
- react-native-performance (from `../node_modules/react-native-performance/ios`)
|
||||
- "react-native-slider (from `../node_modules/@react-native-community/slider`)"
|
||||
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
|
||||
- react-native-video (from `../node_modules/react-native-video/react-native-video.podspec`)
|
||||
@@ -488,6 +491,8 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native-keep-awake"
|
||||
react-native-netinfo:
|
||||
:path: "../node_modules/@react-native-community/netinfo"
|
||||
react-native-performance:
|
||||
:path: "../node_modules/react-native-performance/ios"
|
||||
react-native-slider:
|
||||
:path: "../node_modules/@react-native-community/slider"
|
||||
react-native-splash-screen:
|
||||
@@ -560,7 +565,7 @@ SPEC CHECKSUMS:
|
||||
GTMAppAuth: ad5c2b70b9a8689e1a04033c9369c4915bfcbe89
|
||||
GTMSessionFetcher: 36689134877faeb055b27dfa4ccc9ceaa42e029e
|
||||
nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc
|
||||
ObjectiveDropboxOfficial: a5afefc83f6467c42c45f2253f583f2ad1ffc701
|
||||
ObjectiveDropboxOfficial: b4765572e334d6fc6214b43a7595510324bbbbaa
|
||||
PromisesObjC: 3113f7f76903778cf4a0586bd1ab89329a0b7b97
|
||||
RCTRequired: a686731276578c125dff205f08b6ec9cee6ede32
|
||||
RCTTypeSafety: 88e5500e801c00d16a3d1895e3470d13beed6584
|
||||
@@ -575,10 +580,11 @@ SPEC CHECKSUMS:
|
||||
react-native-calendar-events: 1442fad71a00388f933cfa25512588fec300fcf8
|
||||
react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
|
||||
react-native-netinfo: 8d8db463bcc5db66a8ac5c48a7d86beb3b92f61a
|
||||
react-native-performance: 8edfa2bbc9a2af4a02f01d342118e413a95145e0
|
||||
react-native-slider: b733e17fdd31186707146debf1f04b5d94aa1a93
|
||||
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
|
||||
react-native-video: 1574074179ecaf6a9dd067116c8f31bf9fec15c8
|
||||
react-native-webrtc: bbb644859dcc37ccb7edaec860ca62ed47bf996c
|
||||
react-native-webrtc: 77b969fe6bc5b7c93b455f93a13698812fb8bb4e
|
||||
react-native-webview: b2542d6fd424bcc3e3b2ec5f854f0abb4ec86c87
|
||||
React-RCTActionSheet: bcbc311dc3b47bc8efb2737ff0940239a45789a9
|
||||
React-RCTAnimation: 65f61080ce632f6dea23d52e354ffac9948396c6
|
||||
@@ -599,6 +605,6 @@ SPEC CHECKSUMS:
|
||||
RNWatch: a5320c959c75e72845c07985f3e935e58998f1d3
|
||||
Yoga: 96b469c5e81ff51b917b92e8c3390642d4ded30c
|
||||
|
||||
PODFILE CHECKSUM: 1ae1a9823f3eab0b6e735b9637ba7588e0890d08
|
||||
PODFILE CHECKSUM: e830b1b5a46d340e22689b146b55dcf24664c6f1
|
||||
|
||||
COCOAPODS: 1.10.1
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
|
||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
2681BB562C7A0B42CFBA6719 /* libPods-JitsiMeet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D6152FF9E9F7B0E86F70A21D /* libPods-JitsiMeet.a */; };
|
||||
4E90F9402632D1AB001102D4 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E90F93F2632D1AB001102D4 /* Atomic.swift */; };
|
||||
4EB06024260E026600F524C5 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EC49B8625BED71300E76218 /* ReplayKit.framework */; };
|
||||
4EB06027260E026600F524C5 /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB06026260E026600F524C5 /* SampleHandler.swift */; };
|
||||
@@ -30,7 +31,6 @@
|
||||
4EB0603C260E09D000F524C5 /* SocketConnection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB06039260E09D000F524C5 /* SocketConnection.swift */; };
|
||||
4EB0603D260E09D000F524C5 /* DarwinNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0603A260E09D000F524C5 /* DarwinNotificationCenter.swift */; };
|
||||
4EB0603E260E09D000F524C5 /* SampleUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0603B260E09D000F524C5 /* SampleUploader.swift */; };
|
||||
55BEDABDA92D47D399A70A5E /* libPods-JitsiMeet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D878B07B3FBD6E305EAA6B27 /* libPods-JitsiMeet.a */; };
|
||||
DE050389256E904600DEE3A5 /* WebRTC.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE050388256E904600DEE3A5 /* WebRTC.xcframework */; };
|
||||
DE05038A256E904600DEE3A5 /* WebRTC.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DE050388256E904600DEE3A5 /* WebRTC.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
DE4C456121DE1E4E00EA0709 /* FIRUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */; };
|
||||
@@ -113,7 +113,6 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
09AA3B93E4CC62D84B424690 /* Pods-jitsi-meet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-jitsi-meet.release.xcconfig"; path = "../Pods/Target Support Files/Pods-jitsi-meet/Pods-jitsi-meet.release.xcconfig"; sourceTree = "<group>"; };
|
||||
0B26BE6D1EC5BC3C00EEFB41 /* JitsiMeet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = JitsiMeet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
0B412F1D1EDEE6E800B1A0A6 /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
0B412F1E1EDEE6E800B1A0A6 /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||
@@ -139,7 +138,7 @@
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
4670A512A688E2DC34528282 /* Pods-jitsi-meet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-jitsi-meet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-jitsi-meet/Pods-jitsi-meet.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
3E0F4ED943C0B12BE77F6B45 /* Pods-JitsiMeet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.release.xcconfig"; path = "Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.release.xcconfig"; sourceTree = "<group>"; };
|
||||
4E90F93F2632D1AB001102D4 /* Atomic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Atomic.swift; sourceTree = "<group>"; };
|
||||
4EB06023260E026600F524C5 /* JitsiMeetBroadcastExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = JitsiMeetBroadcastExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
4EB06026260E026600F524C5 /* SampleHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleHandler.swift; sourceTree = "<group>"; };
|
||||
@@ -149,11 +148,9 @@
|
||||
4EB0603A260E09D000F524C5 /* DarwinNotificationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DarwinNotificationCenter.swift; sourceTree = "<group>"; };
|
||||
4EB0603B260E09D000F524C5 /* SampleUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SampleUploader.swift; sourceTree = "<group>"; };
|
||||
4EC49B8625BED71300E76218 /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; };
|
||||
5FEF9D87A4D2A38AD7193308 /* Pods-JitsiMeet-JitsiMeetBroadcastExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet-JitsiMeetBroadcastExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet-JitsiMeetBroadcastExtension/Pods-JitsiMeet-JitsiMeetBroadcastExtension.release.xcconfig"; sourceTree = "<group>"; };
|
||||
609CB2080B75F75A89923F3D /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
A7B2827E068A0E05260054AC /* Pods-JitsiMeet-JitsiMeetBroadcastExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet-JitsiMeetBroadcastExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet-JitsiMeetBroadcastExtension/Pods-JitsiMeet-JitsiMeetBroadcastExtension.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
756FCE06C08D9B947653C98A /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
B3B083EB1D4955FF0069CEE7 /* app.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = app.entitlements; sourceTree = "<group>"; };
|
||||
D878B07B3FBD6E305EAA6B27 /* libPods-JitsiMeet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-JitsiMeet.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D6152FF9E9F7B0E86F70A21D /* libPods-JitsiMeet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-JitsiMeet.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DE050388256E904600DEE3A5 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/apple/WebRTC.xcframework"; sourceTree = "<group>"; };
|
||||
DE4C455F21DE1E4E00EA0709 /* FIRUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRUtilities.m; sourceTree = "<group>"; };
|
||||
DE4C456021DE1E4E00EA0709 /* FIRUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRUtilities.h; sourceTree = "<group>"; };
|
||||
@@ -161,7 +158,6 @@
|
||||
DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/ios/WebRTC.xcframework"; sourceTree = "<group>"; };
|
||||
E58801132278944E008B0561 /* JitsiMeetContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetContext.swift; sourceTree = "<group>"; };
|
||||
E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetCommands.swift; sourceTree = "<group>"; };
|
||||
FC040BBED70876444D89E91C /* Pods-JitsiMeet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.release.xcconfig"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -178,7 +174,7 @@
|
||||
files = (
|
||||
DE050389256E904600DEE3A5 /* WebRTC.xcframework in Frameworks */,
|
||||
DEA9F289258A6EA800D4CD74 /* JitsiMeetSDK.framework in Frameworks */,
|
||||
55BEDABDA92D47D399A70A5E /* libPods-JitsiMeet.a in Frameworks */,
|
||||
2681BB562C7A0B42CFBA6719 /* libPods-JitsiMeet.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -208,8 +204,8 @@
|
||||
0B26BE6D1EC5BC3C00EEFB41 /* JitsiMeet.framework */,
|
||||
DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */,
|
||||
0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */,
|
||||
D878B07B3FBD6E305EAA6B27 /* libPods-JitsiMeet.a */,
|
||||
4EC49B8625BED71300E76218 /* ReplayKit.framework */,
|
||||
D6152FF9E9F7B0E86F70A21D /* libPods-JitsiMeet.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -278,19 +274,6 @@
|
||||
sourceTree = "<group>";
|
||||
tabWidth = 4;
|
||||
};
|
||||
5E96ADD5E49F3B3822EF9A52 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4670A512A688E2DC34528282 /* Pods-jitsi-meet.debug.xcconfig */,
|
||||
09AA3B93E4CC62D84B424690 /* Pods-jitsi-meet.release.xcconfig */,
|
||||
609CB2080B75F75A89923F3D /* Pods-JitsiMeet.debug.xcconfig */,
|
||||
FC040BBED70876444D89E91C /* Pods-JitsiMeet.release.xcconfig */,
|
||||
A7B2827E068A0E05260054AC /* Pods-JitsiMeet-JitsiMeetBroadcastExtension.debug.xcconfig */,
|
||||
5FEF9D87A4D2A38AD7193308 /* Pods-JitsiMeet-JitsiMeetBroadcastExtension.release.xcconfig */,
|
||||
);
|
||||
name = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
83CBB9F61A601CBA00E9B192 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -298,10 +281,10 @@
|
||||
0B26BE711EC5BC4D00EEFB41 /* Frameworks */,
|
||||
83CBBA001A601CBA00E9B192 /* Products */,
|
||||
13B07FAE1A68108700A75B9A /* src */,
|
||||
5E96ADD5E49F3B3822EF9A52 /* Pods */,
|
||||
0BEA5C261F7B8F73000D0AB4 /* Watch app */,
|
||||
0BEA5C351F7B8F73000D0AB4 /* WatchKit extension */,
|
||||
4EB06025260E026600F524C5 /* JitsiMeetBroadcast Extension */,
|
||||
CDD71F5E1157E9F283DF92A8 /* Pods */,
|
||||
);
|
||||
indentWidth = 2;
|
||||
sourceTree = "<group>";
|
||||
@@ -318,6 +301,16 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CDD71F5E1157E9F283DF92A8 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
756FCE06C08D9B947653C98A /* Pods-JitsiMeet.debug.xcconfig */,
|
||||
3E0F4ED943C0B12BE77F6B45 /* Pods-JitsiMeet.release.xcconfig */,
|
||||
);
|
||||
name = Pods;
|
||||
path = ../Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@@ -360,7 +353,7 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "JitsiMeet" */;
|
||||
buildPhases = (
|
||||
B6607F42A5CF0C76E98929E2 /* [CP] Check Pods Manifest.lock */,
|
||||
69BC5020DBE393B56BD76636 /* [CP] Check Pods Manifest.lock */,
|
||||
0BBA83C41EC9F7600075A103 /* Run React packager */,
|
||||
13B07F871A680F5B00A75B9A /* Sources */,
|
||||
13B07F8C1A680F5B00A75B9A /* Frameworks */,
|
||||
@@ -523,7 +516,7 @@
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "../scripts/run-packager.sh\n";
|
||||
};
|
||||
B6607F42A5CF0C76E98929E2 /* [CP] Check Pods Manifest.lock */ = {
|
||||
69BC5020DBE393B56BD76636 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@@ -825,7 +818,7 @@
|
||||
};
|
||||
13B07F941A680F5B00A75B9A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 609CB2080B75F75A89923F3D /* Pods-JitsiMeet.debug.xcconfig */;
|
||||
baseConfigurationReference = 756FCE06C08D9B947653C98A /* Pods-JitsiMeet.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIconDebug;
|
||||
@@ -855,7 +848,7 @@
|
||||
};
|
||||
13B07F951A680F5B00A75B9A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = FC040BBED70876444D89E91C /* Pods-JitsiMeet.release.xcconfig */;
|
||||
baseConfigurationReference = 3E0F4ED943C0B12BE77F6B45 /* Pods-JitsiMeet.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIconRelease;
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
0B412F181EDEC65D00B1A0A6 /* JitsiMeetView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
0B412F191EDEC65D00B1A0A6 /* JitsiMeetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */; };
|
||||
0B412F221EDEF6EA00B1A0A6 /* JitsiMeetViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
0B49424520AD8DBD00BD2DE0 /* outgoingStart.wav in Resources */ = {isa = PBXBuildFile; fileRef = 0B49424320AD8DBD00BD2DE0 /* outgoingStart.wav */; };
|
||||
0B49424620AD8DBD00BD2DE0 /* outgoingRinging.wav in Resources */ = {isa = PBXBuildFile; fileRef = 0B49424420AD8DBD00BD2DE0 /* outgoingRinging.wav */; };
|
||||
0B93EF7E1EC9DDCD0030D24D /* RCTBridgeWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */; };
|
||||
0B93EF7F1EC9DDCD0030D24D /* RCTBridgeWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B93EF7D1EC9DDCD0030D24D /* RCTBridgeWrapper.m */; };
|
||||
0BA13D311EE83FF8007BEF7F /* ExternalAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA13D301EE83FF8007BEF7F /* ExternalAPI.m */; };
|
||||
@@ -26,16 +24,8 @@
|
||||
0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
4E51B76425E5345E0038575A /* ScheenshareEventEmiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */; };
|
||||
4E51B76525E5345E0038575A /* ScheenshareEventEmiter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */; };
|
||||
6C31EDC820C06D490089C899 /* recordingOn.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 6C31EDC720C06D490089C899 /* recordingOn.mp3 */; };
|
||||
6C31EDCA20C06D530089C899 /* recordingOff.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 6C31EDC920C06D530089C899 /* recordingOff.mp3 */; };
|
||||
6F08DF7D4458EE3CF3F36F6D /* libPods-JitsiMeetSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4376CA6886DE68FD7A4294B /* libPods-JitsiMeetSDK.a */; };
|
||||
75635B0A20751D6D00F29C9F /* joined.wav in Resources */ = {isa = PBXBuildFile; fileRef = 75635B0820751D6D00F29C9F /* joined.wav */; };
|
||||
75635B0B20751D6D00F29C9F /* left.wav in Resources */ = {isa = PBXBuildFile; fileRef = 75635B0920751D6D00F29C9F /* left.wav */; };
|
||||
87FE6F3321E52437004A5DC7 /* incomingMessage.wav in Resources */ = {isa = PBXBuildFile; fileRef = 87FE6F3221E52437004A5DC7 /* incomingMessage.wav */; };
|
||||
A4414AE020B37F1A003546E6 /* rejected.wav in Resources */ = {isa = PBXBuildFile; fileRef = A4414ADF20B37F1A003546E6 /* rejected.wav */; };
|
||||
A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */ = {isa = PBXBuildFile; fileRef = A4A934E8212F3ADB001E9388 /* Dropbox.m */; };
|
||||
C30F88D0CB0F4F5593216D24 /* liveStreamingOff.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = C30F88D1CB0F4F5593216D24 /* liveStreamingOff.mp3 */; };
|
||||
C30F88D2CB0F4F5593216D24 /* liveStreamingOn.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = C30F88D3CB0F4F5593216D24 /* liveStreamingOn.mp3 */; };
|
||||
C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5B2053091D0040BE68 /* image-resize@2x.png */; };
|
||||
C6245F5E2053091D0040BE68 /* image-resize@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5C2053091D0040BE68 /* image-resize@3x.png */; };
|
||||
C69EFA0C209A0F660027712B /* JMCallKitEmitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C69EFA09209A0F650027712B /* JMCallKitEmitter.swift */; };
|
||||
@@ -70,8 +60,6 @@
|
||||
0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JitsiMeetView.h; sourceTree = "<group>"; };
|
||||
0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetView.m; sourceTree = "<group>"; };
|
||||
0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetViewDelegate.h; sourceTree = "<group>"; };
|
||||
0B49424320AD8DBD00BD2DE0 /* outgoingStart.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = outgoingStart.wav; path = ../../sounds/outgoingStart.wav; sourceTree = "<group>"; };
|
||||
0B49424420AD8DBD00BD2DE0 /* outgoingRinging.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = outgoingRinging.wav; path = ../../sounds/outgoingRinging.wav; sourceTree = "<group>"; };
|
||||
0B93EF7A1EC608550030D24D /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
||||
0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBridgeWrapper.h; sourceTree = "<group>"; };
|
||||
0B93EF7D1EC9DDCD0030D24D /* RCTBridgeWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBridgeWrapper.m; sourceTree = "<group>"; };
|
||||
@@ -89,19 +77,11 @@
|
||||
0BD906E91EC0C00300C8C18E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScheenshareEventEmiter.h; sourceTree = "<group>"; };
|
||||
4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScheenshareEventEmiter.m; sourceTree = "<group>"; };
|
||||
6C31EDC720C06D490089C899 /* recordingOn.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = recordingOn.mp3; path = ../../sounds/recordingOn.mp3; sourceTree = "<group>"; };
|
||||
6C31EDC920C06D530089C899 /* recordingOff.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = recordingOff.mp3; path = ../../sounds/recordingOff.mp3; sourceTree = "<group>"; };
|
||||
75635B0820751D6D00F29C9F /* joined.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = joined.wav; path = ../../sounds/joined.wav; sourceTree = "<group>"; };
|
||||
75635B0920751D6D00F29C9F /* left.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = left.wav; path = ../../sounds/left.wav; sourceTree = "<group>"; };
|
||||
87FE6F3221E52437004A5DC7 /* incomingMessage.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = incomingMessage.wav; path = ../../sounds/incomingMessage.wav; sourceTree = "<group>"; };
|
||||
891FE43DAD30BC8976683100 /* Pods-JitsiMeetSDK.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDK.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK.release.xcconfig"; sourceTree = "<group>"; };
|
||||
98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.release.xcconfig"; sourceTree = "<group>"; };
|
||||
A4414ADF20B37F1A003546E6 /* rejected.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = rejected.wav; path = ../../sounds/rejected.wav; sourceTree = "<group>"; };
|
||||
A4A934E8212F3ADB001E9388 /* Dropbox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Dropbox.m; sourceTree = "<group>"; };
|
||||
A4A934EB21349A06001E9388 /* Dropbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dropbox.h; sourceTree = "<group>"; };
|
||||
C30F88D1CB0F4F5593216D24 /* liveStreamingOff.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = liveStreamingOff.mp3; path = ../../sounds/liveStreamingOff.mp3; sourceTree = "<group>"; };
|
||||
C30F88D3CB0F4F5593216D24 /* liveStreamingOn.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = liveStreamingOn.mp3; path = ../../sounds/liveStreamingOn.mp3; sourceTree = "<group>"; };
|
||||
C6245F5B2053091D0040BE68 /* image-resize@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "image-resize@2x.png"; path = "src/picture-in-picture/image-resize@2x.png"; sourceTree = "<group>"; };
|
||||
C6245F5C2053091D0040BE68 /* image-resize@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "image-resize@3x.png"; path = "src/picture-in-picture/image-resize@3x.png"; sourceTree = "<group>"; };
|
||||
C69EFA09209A0F650027712B /* JMCallKitEmitter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JMCallKitEmitter.swift; sourceTree = "<group>"; };
|
||||
@@ -155,19 +135,9 @@
|
||||
0BCA49681EC4BBE500B793EE /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
87FE6F3221E52437004A5DC7 /* incomingMessage.wav */,
|
||||
0BC4B8681F8C01E100CE8B21 /* CallKitIcon.png */,
|
||||
C6245F5B2053091D0040BE68 /* image-resize@2x.png */,
|
||||
C6245F5C2053091D0040BE68 /* image-resize@3x.png */,
|
||||
75635B0820751D6D00F29C9F /* joined.wav */,
|
||||
75635B0920751D6D00F29C9F /* left.wav */,
|
||||
C30F88D1CB0F4F5593216D24 /* liveStreamingOff.mp3 */,
|
||||
C30F88D3CB0F4F5593216D24 /* liveStreamingOn.mp3 */,
|
||||
0B49424420AD8DBD00BD2DE0 /* outgoingRinging.wav */,
|
||||
0B49424320AD8DBD00BD2DE0 /* outgoingStart.wav */,
|
||||
6C31EDC920C06D530089C899 /* recordingOff.mp3 */,
|
||||
6C31EDC720C06D490089C899 /* recordingOn.mp3 */,
|
||||
A4414ADF20B37F1A003546E6 /* rejected.wav */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
@@ -328,6 +298,7 @@
|
||||
0BD906E11EC0C00300C8C18E /* Frameworks */,
|
||||
0BD906E21EC0C00300C8C18E /* Headers */,
|
||||
0BD906E31EC0C00300C8C18E /* Resources */,
|
||||
DE17D0D426E0B86300F77E2E /* Copy sounds */,
|
||||
0BCA49651EC4B77500B793EE /* Package React bundle */,
|
||||
C7BC10B338C94EEB98048E64 /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
@@ -379,18 +350,8 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
87FE6F3321E52437004A5DC7 /* incomingMessage.wav in Resources */,
|
||||
0B49424520AD8DBD00BD2DE0 /* outgoingStart.wav in Resources */,
|
||||
C30F88D0CB0F4F5593216D24 /* liveStreamingOff.mp3 in Resources */,
|
||||
C30F88D2CB0F4F5593216D24 /* liveStreamingOn.mp3 in Resources */,
|
||||
6C31EDCA20C06D530089C899 /* recordingOff.mp3 in Resources */,
|
||||
A4414AE020B37F1A003546E6 /* rejected.wav in Resources */,
|
||||
0B49424620AD8DBD00BD2DE0 /* outgoingRinging.wav in Resources */,
|
||||
C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */,
|
||||
6C31EDC820C06D490089C899 /* recordingOn.mp3 in Resources */,
|
||||
0BC4B8691F8C03A700CE8B21 /* CallKitIcon.png in Resources */,
|
||||
75635B0B20751D6D00F29C9F /* left.wav in Resources */,
|
||||
75635B0A20751D6D00F29C9F /* joined.wav in Resources */,
|
||||
C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */,
|
||||
C6245F5E2053091D0040BE68 /* image-resize@3x.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -450,6 +411,24 @@
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
DE17D0D426E0B86300F77E2E /* Copy sounds */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Copy sounds";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "SOUNDS_DIR=\"${PROJECT_DIR}/../../sounds\"\n\ncp $SOUNDS_DIR/* ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
|
||||
@@ -63,11 +63,14 @@ RCT_EXPORT_METHOD(authorize:(RCTPromiseResolveBlock)resolve
|
||||
currentReject = reject;
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[DBClientsManager authorizeFromController:[UIApplication sharedApplication]
|
||||
controller:[[self class] topMostController]
|
||||
openURL:^(NSURL *url) {
|
||||
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
|
||||
}];
|
||||
DBScopeRequest *scopeRequest = [[DBScopeRequest alloc] initWithScopeType:DBScopeTypeUser
|
||||
scopes:@[]
|
||||
includeGrantedScopes:NO];
|
||||
[DBClientsManager authorizeFromControllerV2:[UIApplication sharedApplication]
|
||||
controller:[[self class] topMostController]
|
||||
loadingStatusDelegate:nil
|
||||
openURL:^(NSURL *url) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; }
|
||||
scopeRequest:scopeRequest];
|
||||
});
|
||||
}
|
||||
|
||||
@@ -128,25 +131,31 @@ RCT_EXPORT_METHOD(getSpaceUsage: (NSString *)token
|
||||
if (currentReject == nil || currentResolve == nil) {
|
||||
return NO;
|
||||
}
|
||||
DBOAuthResult *authResult = [DBClientsManager handleRedirectURL:url];
|
||||
if (authResult) {
|
||||
if ([authResult isSuccess]) {
|
||||
currentResolve(authResult.accessToken.accessToken);
|
||||
} else {
|
||||
NSString *msg;
|
||||
if ([authResult isError]) {
|
||||
msg = [NSString stringWithFormat:@"%@, error type: %zd",[authResult errorDescription], [authResult errorType]];
|
||||
|
||||
BOOL canHandle = [DBClientsManager handleRedirectURL:url completion:^(DBOAuthResult *authResult) {
|
||||
if (authResult) {
|
||||
if ([authResult isSuccess]) {
|
||||
NSInteger msTimestamp = authResult.accessToken.tokenExpirationTimestamp * 1000;
|
||||
NSDictionary *authInfo = @{@"token": authResult.accessToken.accessToken,
|
||||
@"rToken": authResult.accessToken.refreshToken,
|
||||
@"expireDate": @(msTimestamp)
|
||||
};
|
||||
currentResolve(authInfo);
|
||||
} else {
|
||||
msg = @"OAuth canceled!";
|
||||
NSString *msg;
|
||||
if ([authResult isError]) {
|
||||
msg = [NSString stringWithFormat:@"%@, error type: %zd", [authResult errorDescription], [authResult errorType]];
|
||||
} else {
|
||||
msg = @"OAuth canceled!";
|
||||
}
|
||||
currentReject(@"authorize", msg, nil);
|
||||
}
|
||||
currentReject(@"authorize", msg, nil);
|
||||
currentResolve = nil;
|
||||
currentReject = nil;
|
||||
}
|
||||
currentResolve = nil;
|
||||
currentReject = nil;
|
||||
|
||||
return YES;
|
||||
}
|
||||
return NO;
|
||||
}];
|
||||
|
||||
return canHandle;
|
||||
}
|
||||
|
||||
+ (UIViewController *)topMostController {
|
||||
|
||||
@@ -49,9 +49,11 @@
|
||||
"messagebox": "",
|
||||
"nickname": {
|
||||
"popover": "Kies ’n bynaam",
|
||||
"title": ""
|
||||
"title": "",
|
||||
"titleWithPolls": ""
|
||||
},
|
||||
"title": ""
|
||||
"title": "",
|
||||
"titleWithPolls": ""
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": ""
|
||||
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "لا يوجد أي رسالة في الاجتماع بعد. ابدأ محادثة هنا.",
|
||||
"nickname": {
|
||||
"popover": "اختر لقبًا",
|
||||
"title": "اكتب لقبًا لاعتماده في المحادثة"
|
||||
"title": "اكتب لقبًا لاعتماده في المحادثة",
|
||||
"titleWithPolls": "اكتب لقبًا لاعتماده في المحادثة"
|
||||
},
|
||||
"privateNotice": "أرسل رسالة خاصة إلى {{recipient}}",
|
||||
"title": "محادثة",
|
||||
"titleWithPolls": "محادثة",
|
||||
"you": "أنت"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "У канферэнцыі пакуль няма ніякіх паведамленняў. Пачніце размову!",
|
||||
"nickname": {
|
||||
"popover": "Калі ласка, пазначце імя",
|
||||
"title": "Калі ласка, увядзіце імя для выкарыстання чата"
|
||||
"title": "Калі ласка, увядзіце імя для выкарыстання чата",
|
||||
"titleWithPolls": "Калі ласка, увядзіце імя для выкарыстання чата"
|
||||
},
|
||||
"privateNotice": "Асабістае паведамленне карыстальнiку {{recipient}}",
|
||||
"title": "Чат",
|
||||
"titleWithPolls": "Чат",
|
||||
"you": "Вы"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -65,10 +65,12 @@
|
||||
"noMessagesMessage": "Все още няма съобщения в срещата. Започнете разговор тук!",
|
||||
"nickname": {
|
||||
"popover": "Избор на име",
|
||||
"title": "Въведете име, за да обменяте съобщения"
|
||||
"title": "Въведете име, за да обменяте съобщения",
|
||||
"titleWithPolls": "Въведете име, за да обменяте съобщения"
|
||||
},
|
||||
"privateNotice": "Лично съобщение до {{recipient}}",
|
||||
"title": "Текстови съобщения",
|
||||
"titleWithPolls": "Текстови съобщения",
|
||||
"you": "вие"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Encara no hi ha cap missatge en aquesta reunió. Comenceu una conversa aquí!",
|
||||
"nickname": {
|
||||
"popover": "Trieu un sobrenom",
|
||||
"title": "Introduïu un sobrenom per a usar el xat"
|
||||
"title": "Introduïu un sobrenom per a usar el xat",
|
||||
"titleWithPolls": "Introduïu un sobrenom per a usar el xat"
|
||||
},
|
||||
"privateNotice": "Missatge privat per a {{recipient}}",
|
||||
"title": "Xat",
|
||||
"titleWithPolls": "Xat",
|
||||
"you": "vós"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -67,11 +67,13 @@
|
||||
"messagebox": "Napište zprávu",
|
||||
"nickname": {
|
||||
"popover": "Zvolte si přezdívku",
|
||||
"title": "Vložte přezdívku, abyste mohl/a používat zprávy"
|
||||
"title": "Vložte přezdívku, abyste mohl/a používat zprávy",
|
||||
"titleWithPolls": "Vložte přezdívku, abyste mohl/a používat zprávy"
|
||||
},
|
||||
"noMessagesMessage": "V setkání zatím nejsou žádné zprávy. Tady můžete začít konverzaci!",
|
||||
"privateNotice": "Soukromá zpráva pro {{recipient}}",
|
||||
"title": "Zprávy",
|
||||
"titleWithPolls": "Zprávy",
|
||||
"you": "vy"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -54,10 +54,12 @@
|
||||
"noMessagesMessage": "Der er ikke nogen beskeder i mødet endnu. Skriv noget!",
|
||||
"nickname": {
|
||||
"popover": "Vælg dit navn/alias",
|
||||
"title": "Indtast et navn/alias for at deltage i chatten"
|
||||
"title": "Indtast et navn/alias for at deltage i chatten",
|
||||
"titleWithPolls": "Indtast et navn/alias for at deltage i chatten"
|
||||
},
|
||||
"privateNotice": "Privat besked til {{recipient}}",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "Dig"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -66,15 +66,21 @@
|
||||
"noMessagesMessage": "Es gibt noch keine Nachricht in dieser Konferenz. Starten Sie hier eine Unterhaltung!",
|
||||
"nickname": {
|
||||
"popover": "Wähle einen Alias",
|
||||
"title": "Geben Sie einen Alias zum Chatten ein"
|
||||
"title": "Geben Sie einen Alias zum Chatten ein",
|
||||
"titleWithPolls": "Geben Sie einen Alias zum Chatten ein"
|
||||
},
|
||||
"privateNotice": "Private Nachricht an {{recipient}}",
|
||||
"title": "Chatten",
|
||||
"you": "Sie",
|
||||
"message": "Nachricht",
|
||||
"messageAccessibleTitle": "{{user}} sagt:",
|
||||
"messageAccessibleTitleMe": "Ich sage:",
|
||||
"smileysPanel": "Emoji-Auswahl"
|
||||
"smileysPanel": "Emoji-Auswahl",
|
||||
"tabs": {
|
||||
"chat": "Chatten",
|
||||
"polls": "Umfragen"
|
||||
},
|
||||
"title": "Chatten",
|
||||
"titleWithPolls": "Chatten und Umfragen",
|
||||
"you": "Sie"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Installieren Sie die Erweiterung für die Integration von Google Calendar und Office 365",
|
||||
@@ -243,13 +249,17 @@
|
||||
"micPermissionDeniedError": "Die Berechtigung zur Verwendung des Mikrofons wurde nicht erteilt. Sie können trotzdem an der Konferenz teilnehmen, aber die anderen Personen können Sie nicht hören. Verwenden Sie die Kamera-Schaltfläche in der Adressleiste, um die Berechtigungen zu erteilen.",
|
||||
"micTimeoutError": "Audioquelle konnte nicht gestartet werden. Zeitüberschreitung",
|
||||
"micUnknownError": "Das Mikrofon kann aus einem unbekannten Grund nicht verwendet werden.",
|
||||
"moderationAudioLabel": "Erlaube Anwesenden die Stummschaltung für sich aufzuheben",
|
||||
"moderationVideoLabel": "Erlaube Anwesenden ihre Kamera einzuschalten",
|
||||
"muteEveryoneElseDialog": "Einmal stummgeschaltet, können Sie deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.",
|
||||
"muteEveryoneElseTitle": "Alle außer {{whom}} stummschalten?",
|
||||
"muteEveryoneDialog": "Wollen Sie wirklich alle stummschalten? Sie können deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.",
|
||||
"muteEveryoneDialogModerationOn": "Die Anwesenden können eine Anfrage zum Sprechen jederzeit senden.",
|
||||
"muteEveryoneTitle": "Alle stummschalten?",
|
||||
"muteEveryoneElsesVideoDialog": "Sobald die Kamera deaktiviert ist, können Sie sie nicht wieder aktivieren, die Teilnehmer können dies aber jederzeit wieder ändern.",
|
||||
"muteEveryoneElsesVideoTitle": "Die Kamera von allen außer {{whom}} ausschalten?",
|
||||
"muteEveryonesVideoDialog": "Sind Sie sicher, dass Sie die Kamera von allen Teilnehmern deaktivieren möchten? Sie können sie nicht wieder aktivieren, die Teilnehmer können dies aber jederzeit wieder ändern.",
|
||||
"muteEveryonesVideoDialogModerationOn": "Die Anwesenden können jederzeit eine Anfrage senden, um ihre Kamera einzuschalten.",
|
||||
"muteEveryonesVideoDialogOk": "deaktivieren",
|
||||
"muteEveryonesVideoTitle": "Die Kamera von allen anderen ausschalten?",
|
||||
"muteEveryoneSelf": "sich selbst",
|
||||
@@ -382,7 +392,8 @@
|
||||
"image7" : "Sonnenaufgang",
|
||||
"desktopShareError": "Desktop konnte nicht freigegeben werden",
|
||||
"desktopShare": "Desktopfreigabe",
|
||||
"webAssemblyWarning": "WebAssembly wird nicht unterstützt"
|
||||
"webAssemblyWarning": "WebAssembly wird nicht unterstützt",
|
||||
"backgroundEffectError": "Failed to apply background effect."
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Durchschnittlich",
|
||||
@@ -587,6 +598,8 @@
|
||||
"moderationStoppedTitle": "Moderation gestoppt",
|
||||
"moderationToggleDescription": "von {{participantDisplayName}}",
|
||||
"raiseHandAction": "Melden",
|
||||
"groupTitle": "Benachrichtigungen",
|
||||
"reactionSounds": "Interaktionstöne deaktivieren",
|
||||
"groupTitle": "Benachrichtigungen"
|
||||
},
|
||||
"participantsPane": {
|
||||
@@ -599,20 +612,49 @@
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Anwesenden erlauben:",
|
||||
"audioModeration": "Für sich selbst die Stummschaltung aufzuheben",
|
||||
"blockEveryoneMicCamera": "Kamera und Mikrofon von allen sperren",
|
||||
"invite": "Person einladen",
|
||||
"askUnmute": "Anfragen, Stummschaltung aufzuheben",
|
||||
"mute": "Stummschalten",
|
||||
"muteAll": "Alle stummschalten",
|
||||
"muteEveryoneElse": "Alle anderen stummschalten",
|
||||
"startModeration": "Stummschaltung aufheben oder Kamera aktivieren",
|
||||
"stopEveryonesVideo": "Alle Kameras ausschalten",
|
||||
"stopVideo": "Kamera ausschalten",
|
||||
"unblockEveryoneMicCamera": "Kamera und Mikrofon von allen entsperren"
|
||||
"unblockEveryoneMicCamera": "Kamera und Mikrofon von allen entsperren",
|
||||
"videoModeration": "Kamera einschalten"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "von einer anderen Person gesetzt",
|
||||
"passwordDigitsOnly": "Bis zu {{number}} Ziffern",
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Antwort hinzufügen",
|
||||
"answerPlaceholder": "Antwort {{index}}",
|
||||
"create": "Umfrage erstellen",
|
||||
"cancel": "Abbrechen",
|
||||
"pollOption" : "Antwort {{index}}",
|
||||
"pollQuestion" : "Frage",
|
||||
"questionPlaceholder": "Eine Frage stellen",
|
||||
"removeOption": "Antwort entfernen",
|
||||
"send": "Erstellen"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Überspringen",
|
||||
"submit": "Speichern"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Vote",
|
||||
"changeVote": "Antwort ändern",
|
||||
"empty": "Es gibt bisher keine Umfragen in dieser Konferenz. Sie können hier eine Umfrage starten!",
|
||||
"hideDetailedResults": "Details verbergen",
|
||||
"showDetailedResults": "Details anzeigen"
|
||||
},
|
||||
"notification": {
|
||||
"title": "Dieser Konferenz wurde eine Umfrage hinzugefügt",
|
||||
"description": "Öffnen Sie das Umfragen-Tab um abzustimmen"
|
||||
}
|
||||
},
|
||||
"poweredby": "Betrieben von",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Audio- und Videofehler:",
|
||||
@@ -762,6 +804,7 @@
|
||||
"participantJoined": "Neue Person nimmt teil",
|
||||
"participantLeft": "Person verlässt die Konferenz",
|
||||
"playSounds": "Hinweistöne aktiviert",
|
||||
"reactions": "Interaktionen",
|
||||
"sameAsSystem": "Wie System ({{label}})",
|
||||
"selectAudioOutput": "Audioausgabe",
|
||||
"selectCamera": "Kamera",
|
||||
@@ -852,7 +895,6 @@
|
||||
"muteEveryonesVideo": "Alle Kameras ausschalten",
|
||||
"muteEveryoneElsesVideo": "Alle anderen Kameras ausschalten",
|
||||
"participants": "Anwesende",
|
||||
"party": "Konfetti",
|
||||
"pip": "Bild-in-Bild-Modus ein-/ausschalten",
|
||||
"privateMessage": "Private Nachricht senden",
|
||||
"profile": "Profil bearbeiten",
|
||||
@@ -869,6 +911,7 @@
|
||||
"shareYourScreen": "Bildschirmfreigabe ein-/ausschalten",
|
||||
"shortcuts": "Tastenkombinationen ein-/ausblenden",
|
||||
"show": "Im Vordergrund anzeigen",
|
||||
"silence": "Stille",
|
||||
"speakerStats": "Sprechstatistik ein-/ausblenden",
|
||||
"surprised": "Überrascht",
|
||||
"tileView": "Kachelansicht ein-/ausschalten",
|
||||
@@ -893,6 +936,7 @@
|
||||
"clap": "Klatschen",
|
||||
"closeChat": "Chat schließen",
|
||||
"closeReactionsMenu": "Interationsmenü schließen",
|
||||
"disableReactionSounds": "Sie können die Interaktionstöne für diese Konferenz deaktivieren",
|
||||
"documentClose": "Geteiltes Dokument schließen",
|
||||
"documentOpen": "Geteiltes Dokument öffnen",
|
||||
"download": "Unsere Apps herunterladen",
|
||||
@@ -928,7 +972,6 @@
|
||||
"openChat": "Chat öffnen",
|
||||
"openReactionsMenu": "Interationsmenü öffnen",
|
||||
"participants": "Anwesende",
|
||||
"party": "Konfetti",
|
||||
"pip": "Bild-in-Bild-Modus einschalten",
|
||||
"privateMessage": "Private Nachricht senden",
|
||||
"profile": "Profil bearbeiten",
|
||||
@@ -938,7 +981,7 @@
|
||||
"reactionClap": "Klatschen senden",
|
||||
"reactionLaugh": "Lachen senden",
|
||||
"reactionLike": "Daumen hoch senden",
|
||||
"reactionParty": "Konfetti senden",
|
||||
"reactionSilence": "Stille senden",
|
||||
"reactionSurprised": "Überrascht senden",
|
||||
"security": "Sicherheitsoptionen",
|
||||
"Settings": "Einstellungen",
|
||||
@@ -946,6 +989,7 @@
|
||||
"sharedvideo": "YouTube-Video teilen",
|
||||
"shareRoom": "Person einladen",
|
||||
"shortcuts": "Tastenkürzel anzeigen",
|
||||
"silence": "Stille",
|
||||
"speakerStats": "Sprechstatistik",
|
||||
"startScreenSharing": "Bildschirmfreigabe starten",
|
||||
"startSubtitles": "Untertitel einschalten",
|
||||
@@ -1098,6 +1142,7 @@
|
||||
"enableDialogText": "Mit dem Lobbymodus schützen Sie Ihre Konferenz, damit der Beitritt von Ihnen moderiert werden kann.",
|
||||
"enterPasswordButton": "Konferenzpasswort eingeben",
|
||||
"enterPasswordTitle": "Passwort zum Beitreten benutzen",
|
||||
"errorMissingPassword": "Bitte das Konferenzpasswort eingeben",
|
||||
"invalidPassword": "Ungültiges Passwort",
|
||||
"joiningMessage": "Sie treten der Konferenz bei, sobald jemand Ihre Anfrage annimmt.",
|
||||
"joinWithPasswordMessage": "Beitrittsversuch mit Passwort, bitte warten …",
|
||||
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "Δεν υπάρχουν μηνύματα στη συνάντηση ακόμα. Ξεκινήστε μια συζήτηση εδώ!",
|
||||
"nickname": {
|
||||
"popover": "Επιλέξτε ένα ψευδώνυμο",
|
||||
"title": "Εισάγετε ένα ψευδώνυμο για τη χρήση της συνομιλίας"
|
||||
"title": "Εισάγετε ένα ψευδώνυμο για τη χρήση της συνομιλίας",
|
||||
"titleWithPolls": "Εισάγετε ένα ψευδώνυμο για τη χρήση της συνομιλίας"
|
||||
},
|
||||
"privateNotice": "Ιδιωτικό μηνύμα στον / στην {recipient}}",
|
||||
"title": "Συνομιλία",
|
||||
"titleWithPolls": "Συνομιλία",
|
||||
"you": "Εσείς"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -50,9 +50,11 @@
|
||||
"messagebox": "Type a message",
|
||||
"nickname": {
|
||||
"popover": "Choose a nickname",
|
||||
"title": "Enter a nickname to use chat"
|
||||
"title": "Enter a nickname to use chat",
|
||||
"titleWithPolls": "Enter a nickname to use chat"
|
||||
},
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "",
|
||||
"privateNotice": "",
|
||||
"noMessagesMessage": "",
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Ankoraŭ ne estas mesaĝoj en la kunveno. Komencu konversation ĉi tie!",
|
||||
"nickname": {
|
||||
"popover": "Elektu kaŝnomon",
|
||||
"title": "Elektu kaŝnomon por uzi la babilejon"
|
||||
"title": "Elektu kaŝnomon por uzi la babilejon",
|
||||
"titleWithPolls": "Elektu kaŝnomon por uzi la babilejon"
|
||||
},
|
||||
"privateNotice": "Privata mesaĝo al {{recipient}}",
|
||||
"title": "Babilejo",
|
||||
"titleWithPolls": "Babilejo",
|
||||
"you": "vi"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "No hay mensajes en la reunión. ¡Inicie una conversación!",
|
||||
"nickname": {
|
||||
"popover": "Selecciona un apodo",
|
||||
"title": "Introduce un apodo para usar el chat"
|
||||
"title": "Introduce un apodo para usar el chat",
|
||||
"titleWithPolls": "Introduce un apodo para usar el chat"
|
||||
},
|
||||
"privateNotice": "Mensaje privado para {{recipient}}",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "usted"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "No hay mensajes en la reunión. ¡Inicie una conversación!",
|
||||
"nickname": {
|
||||
"popover": "Selecciona un apodo",
|
||||
"title": "Introduce un apodo para usar el chat"
|
||||
"title": "Introduce un apodo para usar el chat",
|
||||
"titleWithPolls": "Introduce un apodo para usar el chat"
|
||||
},
|
||||
"privateNotice": "Mensaje privado para {{recipient}}",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "usted"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Kirjavahetust pole veel alustatud. Alusta kirjavahetust siin!",
|
||||
"nickname": {
|
||||
"popover": "Sisesta nimi",
|
||||
"title": "Sisesta nimi, et kõnega alustada"
|
||||
"title": "Sisesta nimi, et kõnega alustada",
|
||||
"titleWithPolls": "Sisesta nimi, et kõnega alustada"
|
||||
},
|
||||
"privateNotice": "Privaatsõnum kasutajale {{recipient}}",
|
||||
"title": "Kõne",
|
||||
"titleWithPolls": "Kõne",
|
||||
"you": "you"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -64,10 +64,12 @@
|
||||
"noMessagesMessage": "Bileran oraindik mezurik ez dago. Hasi elkarrizketa hemen!",
|
||||
"nickname": {
|
||||
"popover": "Aukeratu goitizena",
|
||||
"title": "Sartu goitizena txata erabiltzeko"
|
||||
"title": "Sartu goitizena txata erabiltzeko",
|
||||
"titleWithPolls": "Sartu goitizena txata erabiltzeko"
|
||||
},
|
||||
"privateNotice": "Mezu pribatua {{recipient}}(e)ri",
|
||||
"title": "Txata",
|
||||
"titleWithPolls": "Txata",
|
||||
"you": "zu",
|
||||
"message": "Mezua",
|
||||
"messageAccessibleTitle": "{{user}} partaideak zera dio:",
|
||||
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "هیچ گفتگویی در جلسه وجود ندارد، گفتگو را شما آعاز کنید!",
|
||||
"nickname": {
|
||||
"popover": "نام نمایشی خود را وارد نمایید",
|
||||
"title": "نام نمایشی خود را در گفتگو وارد نمایید"
|
||||
"title": "نام نمایشی خود را در گفتگو وارد نمایید",
|
||||
"titleWithPolls": "نام نمایشی خود را در گفتگو وارد نمایید"
|
||||
},
|
||||
"privateNotice": "پیام خصوصی به {{recipient}}",
|
||||
"title": "گفتگو",
|
||||
"titleWithPolls": "گفتگو",
|
||||
"you": "شما"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -49,9 +49,11 @@
|
||||
"messagebox": "Kirjoita viesti",
|
||||
"nickname": {
|
||||
"popover": "Valitse lempinimi",
|
||||
"title": "Anna chatissä käytettävä lempinimi"
|
||||
"title": "Anna chatissä käytettävä lempinimi",
|
||||
"titleWithPolls": "Anna chatissä käytettävä lempinimi"
|
||||
},
|
||||
"title": "Chatti"
|
||||
"title": "Chatti",
|
||||
"titleWithPolls": "Chatti"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Yhdistetään kokoukseen…"
|
||||
|
||||
@@ -66,7 +66,8 @@
|
||||
"noMessagesMessage": "Il n'y a pas encore de messages dans cette réunion. Démarrez une conversation ici !",
|
||||
"nickname": {
|
||||
"popover": "Choisissez un pseudonyme",
|
||||
"title": "Entrez un pseudonyme pour utiliser le chat et les sondages"
|
||||
"title": "Entrez un pseudonyme pour utiliser le chat",
|
||||
"titleWithPolls": "Entrez un pseudonyme pour utiliser le chat et les sondages"
|
||||
},
|
||||
"privateNotice": "Message privé à {{recipient}}",
|
||||
"message": "Message",
|
||||
@@ -74,11 +75,12 @@
|
||||
"messageAccessibleTitleMe": "Je dis: ",
|
||||
"smileysPanel": "Panneaux des Émojis",
|
||||
"tabs": {
|
||||
"chat": "Chat",
|
||||
"polls": "Sondages"
|
||||
},
|
||||
"title": "Chat et Sondages",
|
||||
"you": "vous"
|
||||
"chat": "Chat",
|
||||
"polls": "Sondages"
|
||||
},
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat et Sondages",
|
||||
"you": "vous"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Installer l'extension pour l'intégration de Google Calendar et Office 365",
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Il n'y a pas encore de messages dans cette réunion. Démarrez une conversation ici !",
|
||||
"nickname": {
|
||||
"popover": "Choisissez un nom d'affichage",
|
||||
"title": "Entrer un nom d'affichage pour utiliser le clavardage"
|
||||
"title": "Entrer un nom d'affichage pour utiliser le clavardage",
|
||||
"titleWithPolls": "Entrer un nom d'affichage pour utiliser le clavardage"
|
||||
},
|
||||
"privateNotice": "Message privé à {{recipient}}",
|
||||
"title": "Clavardage",
|
||||
"titleWithPolls": "Clavardage",
|
||||
"you": "vous"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Aínda non hai mensaxes na reunión. Comece unha conversación aquí!",
|
||||
"nickname": {
|
||||
"popover": "Escolla un alcume",
|
||||
"title": "Escriba un alcume para utilizar no chat"
|
||||
"title": "Escriba un alcume para utilizar no chat",
|
||||
"titleWithPolls": "Escriba un alcume para utilizar no chat"
|
||||
},
|
||||
"privateNotice": "Mensaxe privada para {{recipient}}",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "vostede"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "אין עדיין הודעות בפגישה. התחל שיחה כאן!",
|
||||
"nickname": {
|
||||
"popover": "בחר שם משתמש",
|
||||
"title": "נא להזין שם משתמש בכדי להשתמש בצ'אט"
|
||||
"title": "נא להזין שם משתמש בכדי להשתמש בצ'אט",
|
||||
"titleWithPolls": "נא להזין שם משתמש בכדי להשתמש בצ'אט"
|
||||
},
|
||||
"privateNotice": "הודעה פרטית אל {{recipient}}",
|
||||
"title": "צ'אט",
|
||||
"titleWithPolls": "צ'אט",
|
||||
"you": "אתה"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -70,10 +70,12 @@
|
||||
"noMessagesMessage": "अभी तक मीटिंग में कोई संदेश नहीं आया है। वार्तालाप प्रारंभ करें!",
|
||||
"nickname": {
|
||||
"popover": "एक उपनाम चुनें",
|
||||
"title": "चैट का उपयोग करने के लिए एक उपनाम दर्ज करें"
|
||||
"title": "चैट का उपयोग करने के लिए एक उपनाम दर्ज करें",
|
||||
"titleWithPolls": "चैट का उपयोग करने के लिए एक उपनाम दर्ज करें"
|
||||
},
|
||||
"privateNotice": "{{recipient}} के लिए निजी संदेश",
|
||||
"title": "चैट",
|
||||
"titleWithPolls": "चैट",
|
||||
"you": "आप"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -49,9 +49,11 @@
|
||||
"messagebox": "",
|
||||
"nickname": {
|
||||
"popover": "Odaberite nadimak",
|
||||
"title": "Unesite nadimak za čavrljanje"
|
||||
"title": "Unesite nadimak za čavrljanje",
|
||||
"titleWithPolls": "Unesite nadimak za čavrljanje"
|
||||
},
|
||||
"title": "Čavrljanje"
|
||||
"title": "Čavrljanje",
|
||||
"titleWithPolls": "Čavrljanje"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": ""
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "A találkozón még nincsenek üzenetek. Itt kezdhet beszélgetést!",
|
||||
"nickname": {
|
||||
"popover": "Becenév kiválasztása",
|
||||
"title": "Adjon meg egy becenevet a csevegés számára"
|
||||
"title": "Adjon meg egy becenevet a csevegés számára",
|
||||
"titleWithPolls": "Adjon meg egy becenevet a csevegés számára"
|
||||
},
|
||||
"privateNotice": "Privát üzenet a felhasználónak: {{recipient}}",
|
||||
"title": "Csevegés",
|
||||
"titleWithPolls": "Csevegés",
|
||||
"you": "neked"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
|
||||
@@ -49,9 +49,11 @@
|
||||
"messagebox": "",
|
||||
"nickname": {
|
||||
"popover": "Ընտրեք մականուն",
|
||||
"title": ""
|
||||
"title": "",
|
||||
"titleWithPolls": ""
|
||||
},
|
||||
"title": ""
|
||||
"title": "",
|
||||
"titleWithPolls": ""
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": ""
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "There are no messages in the meeting yet. Start a conversation here!",
|
||||
"nickname": {
|
||||
"popover": "Choose a nickname",
|
||||
"title": "Enter a nickname to use chat"
|
||||
"title": "Enter a nickname to use chat",
|
||||
"titleWithPolls": "Enter a nickname to use chat"
|
||||
},
|
||||
"privateNotice": "Private message to {{recipient}}",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "you"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Það eru ennþá engin skilaboð á fundinum. Byrjaðu umræðuna hér!",
|
||||
"nickname": {
|
||||
"popover": "Veldu gælunafn",
|
||||
"title": "Settu inn gælunafn/stuttnefni til að nota við spjall"
|
||||
"title": "Settu inn gælunafn/stuttnefni til að nota við spjall",
|
||||
"titleWithPolls": "Settu inn gælunafn/stuttnefni til að nota við spjall"
|
||||
},
|
||||
"privateNotice": "Einkaskilaboð til {{recipient}}",
|
||||
"title": "Spjall",
|
||||
"titleWithPolls": "Spjall",
|
||||
"you": "þú"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -70,10 +70,12 @@
|
||||
"noMessagesMessage": "Non ci sono ancora messaggi nella riunione. Comincia una conversazione, qui!",
|
||||
"nickname": {
|
||||
"popover": "Scegli un nickname",
|
||||
"title": "Inserire un nickname per utilizzare la conversazione"
|
||||
"title": "Inserire un nickname per utilizzare la conversazione",
|
||||
"titleWithPolls": "Inserire un nickname per utilizzare la conversazione"
|
||||
},
|
||||
"privateNotice": "Messaggio privato per {{recipient}}",
|
||||
"title": "Conversazione",
|
||||
"titleWithPolls": "Conversazione",
|
||||
"you": "tu"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -72,10 +72,12 @@
|
||||
"noMessagesMessage": "このミーティングにはまだメッセージがありません。会話を開始してください!",
|
||||
"nickname": {
|
||||
"popover": "ニックネームを入力",
|
||||
"title": "チャットで使用するニックネームを入力してください"
|
||||
"title": "チャットで使用するニックネームを入力してください",
|
||||
"titleWithPolls": "チャットで使用するニックネームを入力してください"
|
||||
},
|
||||
"privateNotice": "{{recipient}} へのプライベートメッセージ",
|
||||
"title": "チャット",
|
||||
"titleWithPolls": "チャット",
|
||||
"you": "あなた"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
@@ -534,14 +536,25 @@
|
||||
"oldElectronClientDescription3": "に更新してください!"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "閉じる",
|
||||
"header": "参加者",
|
||||
"headings": {
|
||||
"lobby": "ロビー ({{count}})",
|
||||
"participantsList": "参加者会議 ({{count}})"
|
||||
"participantsList": "会議参加者 ({{count}})",
|
||||
"waitingLobby": "({{count}}) ロビーで待つ"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "参加者に:",
|
||||
"blockEveryoneMicCamera": "全員の音声と動画をブロックにする",
|
||||
"invite": "参加者招待",
|
||||
"askUnmute": "ミュートを解除するよう依頼する",
|
||||
"mute": "ニューと",
|
||||
"muteAll": "全員音声無効",
|
||||
"stopVideo": "ビデオ停止"
|
||||
"muteEveryoneElse": "他のすべての人をミュートする",
|
||||
"startModeration": "ミュート解除するか、動画を開始する",
|
||||
"stopEveryonesVideo": "全員の動画を無効にする",
|
||||
"stopVideo": "ビデオ停止",
|
||||
"unblockEveryoneMicCamera": "全員の音声と動画のブロックを解除する"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "他の参加者によりセット",
|
||||
|
||||
@@ -63,9 +63,11 @@
|
||||
"messagebox": "Aru izen",
|
||||
"nickname": {
|
||||
"popover": "Fren meffer isem",
|
||||
"title": "Sekcem meffer isem i useqdec n usqerdec"
|
||||
"title": "Sekcem meffer isem i useqdec n usqerdec",
|
||||
"titleWithPolls": "Sekcem meffer isem i useqdec n usqerdec"
|
||||
},
|
||||
"title": "Asqerdec",
|
||||
"titleWithPolls": "Asqerdec",
|
||||
"noMessagesMessage": "Ulac iznan akka tura deg temlilit. Bdu adiwenni da!",
|
||||
"you": "kečč·kemm",
|
||||
"fieldPlaceHolder": "Aru izen-inek·inem da"
|
||||
|
||||
@@ -69,10 +69,12 @@
|
||||
"noMessagesMessage": "아직 회의에 메시지가 없습니다. 여기서 대화를 시작하세요!",
|
||||
"nickname": {
|
||||
"popover": "닉네임을 선택하세요",
|
||||
"title": "채팅에서 사용할 닉네임을 입력하세요"
|
||||
"title": "채팅에서 사용할 닉네임을 입력하세요",
|
||||
"titleWithPolls": "채팅에서 사용할 닉네임을 입력하세요"
|
||||
},
|
||||
"privateNotice": "{{recipient}}에게 보내는 비공개 메시지",
|
||||
"title": "채팅",
|
||||
"titleWithPolls": "채팅",
|
||||
"you": "당신"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Susitikime dar nėra pranešimų. Pradėkite pokalbį čia!",
|
||||
"nickname": {
|
||||
"popover": "Pridėkite slapyvardį",
|
||||
"title": "Norėdami naudoti pokalbį, įveskite slapyvardį"
|
||||
"title": "Norėdami naudoti pokalbį, įveskite slapyvardį",
|
||||
"titleWithPolls": "Norėdami naudoti pokalbį, įveskite slapyvardį"
|
||||
},
|
||||
"privateNotice": "Asmeninis pranešimas {{gavėjui}}",
|
||||
"title": "Pokalbis",
|
||||
"titleWithPolls": "Pokalbis",
|
||||
"you": "Jūs"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Sapulcē pagaidām nav nevienas ziņas. Uzsāciet saraksti!",
|
||||
"nickname": {
|
||||
"popover": "Izvēlieties vārdu",
|
||||
"title": "Ierakstiet vārdu izmantošanai tērziņā"
|
||||
"title": "Ierakstiet vārdu izmantošanai tērziņā",
|
||||
"titleWithPolls": "Ierakstiet vārdu izmantošanai tērziņā"
|
||||
},
|
||||
"privateNotice": "Privāta ziņa/paziņojums lietotājam {{recipient}}",
|
||||
"title": "Tērzēšana",
|
||||
"titleWithPolls": "Tērzēšana",
|
||||
"you": "mans vārds"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "മീറ്റിംഗിൽ ഇതുവരെ മെസ്സേജുകളൊന്നുമില്ല. ഇവിടെ ഒരു സംഭാഷണം ആരംഭിക്കുക!",
|
||||
"nickname": {
|
||||
"popover": "ഒരു വിളിപ്പേര് തിരഞ്ഞെടുക്കുക",
|
||||
"title": "ചാറ്റ് ഉപയോഗിക്കുന്നതിന് ഒരു വിളിപ്പേര് നൽകുക"
|
||||
"title": "ചാറ്റ് ഉപയോഗിക്കുന്നതിന് ഒരു വിളിപ്പേര് നൽകുക",
|
||||
"titleWithPolls": "ചാറ്റ് ഉപയോഗിക്കുന്നതിന് ഒരു വിളിപ്പേര് നൽകുക"
|
||||
},
|
||||
"privateNotice": " {{recipient}}-ലേക്കുള്ള സ്വകാര്യ സന്ദേശം",
|
||||
"title": "ചാറ്റ്",
|
||||
"titleWithPolls": "ചാറ്റ്",
|
||||
"you": "നിങ്ങൾ"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Энэ хуралд ямар ч зурвас байхгүй. Эндээс зурвасаа эхлүүл!",
|
||||
"nickname": {
|
||||
"popover": "Нэр бичнэ үү",
|
||||
"title": "Нэрээ оруулна уу"
|
||||
"title": "Нэрээ оруулна уу",
|
||||
"titleWithPolls": "Нэрээ оруулна уу"
|
||||
},
|
||||
"privateNotice": "Хувийн зурвас {{recipient}}",
|
||||
"title": "Чат",
|
||||
"titleWithPolls": "Чат",
|
||||
"you": "чи"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "अद्याप मीटिंगमध्ये कोणतेही संदेश नाहीत. येथे संभाषण सुरू करा!",
|
||||
"nickname": {
|
||||
"popover": "टोपणनाव निवडा",
|
||||
"title": "चॅट वापरण्यासाठी टोपणनाव प्रविष्ट करा"
|
||||
"title": "चॅट वापरण्यासाठी टोपणनाव प्रविष्ट करा",
|
||||
"titleWithPolls": "चॅट वापरण्यासाठी टोपणनाव प्रविष्ट करा"
|
||||
},
|
||||
"privateNotice": "यांना खाजगी संदेश{{recipient}}",
|
||||
"title": "गप्पा",
|
||||
"titleWithPolls": "गप्पा",
|
||||
"you": "आपण"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -46,9 +46,11 @@
|
||||
"messagebox": "Skriv en melding",
|
||||
"nickname": {
|
||||
"popover": "Velg et kallenavn",
|
||||
"title": ""
|
||||
"title": "",
|
||||
"titleWithPolls": ""
|
||||
},
|
||||
"title": "",
|
||||
"titleWithPolls": "",
|
||||
"messageTo": "Privat melding til {{recipient}}",
|
||||
"fieldPlaceHolder": "Skriv inn din melding her"
|
||||
},
|
||||
|
||||
@@ -69,10 +69,12 @@
|
||||
"noMessagesMessage": "Er zijn nog geen berichten in de vergadering. Begin hier een gesprek!",
|
||||
"nickname": {
|
||||
"popover": "Kies een bijnaam",
|
||||
"title": "Voer een bijnaam in om chat te gebruiken"
|
||||
"title": "Voer een bijnaam in om chat te gebruiken",
|
||||
"titleWithPolls": "Voer een bijnaam in om chat te gebruiken"
|
||||
},
|
||||
"privateNotice": "Privébericht aan {{recipient}}",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "u"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,9 +5,10 @@
|
||||
"copyInvite": "Kopiuj zaproszenie na spotkanie",
|
||||
"copyLink": "Kopiuj link spotkania",
|
||||
"copyStream": "Kopiuj link transmisji na żywo",
|
||||
"contacts": "kontakty",
|
||||
"countryNotSupported": "Nie obsługujemy jeszcze tej lokalizacji.",
|
||||
"countryReminder": "Dzwonisz spoza USA? Upewnij się, że zaczynasz od kodu kraju!",
|
||||
"defaultEmail": "Domyślna poczta",
|
||||
"defaultEmail": "Domyślna poczta",
|
||||
"disabled": "Nie możesz zapraszać ludzi.",
|
||||
"failedToAdd": "Błąd dodawania uczestników",
|
||||
"footerText": "Wybieranie numeru jest wyłączone.",
|
||||
@@ -16,18 +17,14 @@
|
||||
"inviteMoreMailSubject": "Dołącz do spotkania {{appName}}",
|
||||
"inviteMorePrompt": "Zaproś innych uczestników",
|
||||
"linkCopied": "Link skopiowany do schowka",
|
||||
"loading": "Szukaj ludzi i numerów telefonów",
|
||||
"loadingNumber": "Weryfikacja numeru telefonu",
|
||||
"loadingPeople": "Wyszukiwanie osób do zaproszenia",
|
||||
"noResults": "Brak pasujących wyników wyszukiwania",
|
||||
"noValidNumbers": "Proszę wpisać numer telefonu",
|
||||
"outlookEmail": "Poczta Outlook",
|
||||
"searchNumbers": "Dodaj numery telefonów",
|
||||
"searchPeople": "Szukaj ludzi",
|
||||
"searchPeopleAndNumbers": "Wyszukaj osoby i dodaj ich numery telefonu",
|
||||
"phoneNumbers": "numery telefonów",
|
||||
"searching": "Wyszukiwanie...",
|
||||
"shareInvite": "Udostępnij zaproszenie na spotkanie",
|
||||
"shareLink": "Udostępnij link do spotkania, aby zaprosić innych uczestników",
|
||||
"shareStream": "Udostępnij link transmisji na żywo",
|
||||
"sipAddresses": "adresy SIP",
|
||||
"telephone": "Telefon: {{number}}",
|
||||
"title": "Zaproś uczestników na to spotkanie",
|
||||
"yahooEmail": "Poczta Yahoo"
|
||||
@@ -61,6 +58,7 @@
|
||||
"today": "Dzisiaj"
|
||||
},
|
||||
"chat": {
|
||||
"enter": "Wejdź do pokoju",
|
||||
"error": "Błąd: Twoja wiadomość nie została wysłana. Powód: {{error}}",
|
||||
"fieldPlaceHolder": "Wpisz wiadomość tutaj",
|
||||
"messagebox": "Wpisz wiadomość",
|
||||
@@ -68,18 +66,29 @@
|
||||
"noMessagesMessage": "Aktualnie brak wiadomości w tym spotkaniu. Rozpocznij konwersację!",
|
||||
"nickname": {
|
||||
"popover": "Wybierz swój nick",
|
||||
"title": "Wpisz swoją nazwę, aby użyć rozmowy"
|
||||
"title": "Wpisz swoją nazwę, aby użyć rozmowy",
|
||||
"titleWithPolls": "Wpisz swoją nazwę, aby użyć rozmowy"
|
||||
},
|
||||
"privateNotice": "Prywatna wiadomość do {{recipient}}",
|
||||
"message": "Wiadomość",
|
||||
"messageAccessibleTitle": "{{user}} mówi:",
|
||||
"messageAccessibleTitleMe": "mówię:",
|
||||
"smileysPanel": "Panel emoji",
|
||||
"tabs": {
|
||||
"chat": "Chat",
|
||||
"polls": "Ankiety"
|
||||
},
|
||||
"title": "Rozmowa",
|
||||
"titleWithPolls": "Rozmowa",
|
||||
"you": "Ty"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Zainstaluj rozszerzenie integrujące Kalendarz Google i Office 365",
|
||||
"buttonText": "Zainstaluj rozszerzenie Chrome",
|
||||
"dontShowAgain": "Nie pokazuj ponownie"
|
||||
"dontShowAgain": "Nie pokazuj ponownie",
|
||||
"close": "Zamknij"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Łączenie ze spotkaniem…"
|
||||
},
|
||||
"connection": {
|
||||
@@ -99,9 +108,11 @@
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Adres:",
|
||||
"audio_ssrc": "Audio SSRC:",
|
||||
"bandwidth": "Szacowana przepustowość:",
|
||||
"bitrate": "Szybkość transmisji:",
|
||||
"bridgeCount": "Liczba serwerów: ",
|
||||
"codecs": "Kodeki (A/V): ",
|
||||
"connectedTo": "Podłączone do:",
|
||||
"e2e_rtt": "E2E RTT:",
|
||||
"framerate": "Klatek na sekundę:",
|
||||
@@ -125,9 +136,12 @@
|
||||
"remoteport": "Port zdalny:",
|
||||
"remoteport_plural": "Porty zdalne:",
|
||||
"resolution": "Rozdzielczość:",
|
||||
"savelogs": "Zapisz logi",
|
||||
"participant_id": "ID uczestnika:",
|
||||
"status": "Połączenie:",
|
||||
"transport": "Transport:",
|
||||
"transport_plural": "Transporty:"
|
||||
"transport_plural": "Transporty:",
|
||||
"video_ssrc": "Video SSRC:"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Wcześniej",
|
||||
@@ -169,12 +183,14 @@
|
||||
"alreadySharedVideoMsg": "Inny użytkownik już prezentuje wideo. Ta konferencja pozwala tylko na prezentację jednego wideo w tym samym czasie.",
|
||||
"alreadySharedVideoTitle": "Tylko jedna prezentacja wideo jest dozwolona w tym samym czasie",
|
||||
"applicationWindow": "Okno aplikacji",
|
||||
"authenticationRequired": "Wymagane uwierzytelnienie",
|
||||
"Back": "Wstecz",
|
||||
"cameraConstraintFailedError": "Twoja kamera nie spełnia niektórych obowiązkowych wymagań.",
|
||||
"cameraNotFoundError": "Kamera nie znaleziona.",
|
||||
"cameraNotSendingData": "Nie możemy połączyć się z Twoją kamerą. Sprawdź, czy inna aplikacja nie używa tego urządzenia, wybierz inne urządzenie z menu ustawień lub spróbuj zrestartować aplikację.",
|
||||
"cameraNotSendingDataTitle": "Brak dostępu do kamery",
|
||||
"cameraPermissionDeniedError": "Nie udzieliłeś pozwolenia na użycie swojej kamery. Nadal możesz dołączyć do konferencji, ale inni nie będą Cię widzieć. Naciśnij przycisk kamery na pasku adresu, aby to poprawić.",
|
||||
"cameraTimeoutError": "Nie udało się uruchomić źródła obrazu. Przekroczono limit czasu",
|
||||
"cameraUnknownError": "Z nieznanej przyczyny nie można użyć kamery.",
|
||||
"cameraUnsupportedResolutionError": "Twoja kamera nie obsługuje wymaganej rozdzielczości.",
|
||||
"Cancel": "Anuluj",
|
||||
@@ -197,15 +213,14 @@
|
||||
"done": "Zrobione",
|
||||
"e2eeDescription": "Szyfrowanie End-to-End jest aktualnie w fazie EKSPERYMENTALNEJ. Proszę mieć na uwadze fakt, że szyfrowanie end-to-end wyłączy oferowane przez serwer usługi takie jak: nagrywanie, streaming na żywo i dołączanie uczestników przez telefon. Proszę mieć również na uwadze fakt, że takie spotkanie zadziałą tylko dla uczestników korzystających z przeglądarek wspierających wstawiane strumienie.",
|
||||
"e2eeLabel": "Klucz E2EE",
|
||||
"e2eeNoKey": "brak",
|
||||
"e2eeToggleSet": "Ustaw klucz",
|
||||
"e2eeSet": "Ustaw",
|
||||
"e2eeWarning": "UWAGA: Niektórzy uczestnicy tego spotkania nie mają włączonej obsługi szyfrowania E2EE. Jeśli włączysz tą funkcję ci uczestnicy nie będą mieli z tobą kontaktu.",
|
||||
"enterDisplayName": "Wpisz tutaj swoje imię",
|
||||
"embedMeeting": "Osadź spotkanie",
|
||||
"error": "Błąd",
|
||||
"gracefulShutdown": "Usługa aktualnie jest niedostępna. Prosze spróbować później.",
|
||||
"grantModeratorDialog": "Czy na pewno chcesz przyznać temu uczestnikowi prawa moderatora?",
|
||||
"grantModeratorTitle": "Przyznaj prawa moderatora",
|
||||
"hideShareAudioHelper": "Nie pokazuj więcej",
|
||||
"IamHost": "Jestem gospodarzem",
|
||||
"incorrectRoomLockPassword": "Hasło nieprawidłowe",
|
||||
"incorrectPassword": "Niepoprawna nazwa użytkownika lub hasło",
|
||||
@@ -218,12 +233,12 @@
|
||||
"kickTitle": "Ups! {{participantDisplayName}} usunął Cię z tego spotkania",
|
||||
"liveStreaming": "Strumień na żywo",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Nie możliwe podczas aktywnego nagrywania",
|
||||
"liveStreamingDisabledForGuestTooltip": "Goście nie mogą używać transmisji na żywo.",
|
||||
"liveStreamingDisabledTooltip": "Rozpoczęcie transmisji na żywo jest wyłączone.",
|
||||
"lockMessage": "Zabezpieczenie konferencji nie powiodło się.",
|
||||
"lockRoom": "Dodaj spotkanie $t(lockRoomPasswordUppercase)",
|
||||
"lockTitle": "Nie powiodło się zabezpieczenie konferencji",
|
||||
"logoutQuestion": "Na pewno chcesz się wylogować i zakończyć konferencję?",
|
||||
"login": "Zaloguj",
|
||||
"logoutTitle": "Wyloguj",
|
||||
"maxUsersLimitReached": "Osiągnięto limit maksymalnej liczby uczestników. Konferencja jest zapełniona. Skontaktuj się z właścicielem spotkania lub spróbuj ponownie później!",
|
||||
"maxUsersLimitReachedTitle": "Osiągnięto maksymalną liczbę uczestników",
|
||||
@@ -232,29 +247,43 @@
|
||||
"micNotSendingData": "Wejdź w ustawienia komputera, aby wyłączyć wyciszenie i dostosować poziom głośności",
|
||||
"micNotSendingDataTitle": "Twój mikrofon jest wyciszony przez ustawienia systemowe",
|
||||
"micPermissionDeniedError": "Nie udzieliłeś pozwolenia na użycie twojego mikrofonu. Nadal możesz uczestniczyc w konferencji ale inni nie będą cię słyszeli. Użyj przycisku kamera aby to naprawić.",
|
||||
"micTimeoutError": "Nie udało się uruchomić źródła dźwięku. Przekroczono limit czasu",
|
||||
"micUnknownError": "Z nieznanej przyczyny nie można użyć mikrofonu.",
|
||||
"muteEveryoneElseDialog": "Gdy wyciszysz wszystkich nie będziesz miał możliwości wyłączyć ich wyciszenia, ale oni będą mogli samodzielnie wyłączyć wyciszenie w dowolnym momencie.",
|
||||
"muteEveryoneElseTitle": "Wyciszyć wszystkich za wyjątkiem {{whom}}?",
|
||||
"muteEveryoneElsesVideoDialog": "Po dezaktywacji kamery nie można jej ponownie aktywować, ale uczestnicy mogą to zmienić samodzielnie w dowolnym momencie.",
|
||||
"muteEveryoneElsesVideoTitle": "Wyłączyć kamerę wszystkim oprócz {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "Czy na pewno chcesz wyłączyć kamery wszystkich uczestników? Nie możesz ponownie włączyć kamer, ale uczestnicy mogą to zmienić samodzielnie w dowolnym momencie.",
|
||||
"muteEveryonesVideoDialogOk": "Wyłącz",
|
||||
"muteEveryonesVideoTitle": "Wyłączyć kamery pozostałych uczestników?",
|
||||
"muteEveryoneDialog": "Czy na pewno wyciszyć wszystkich? Nie będziesz miał możliwości wyłączyć ich wyciszenia, ale oni będą mogli samodzielnie wyłączyć wyciszenie w dowolnym momencie.",
|
||||
"muteEveryoneTitle": "Wyciszyć wszystkich?",
|
||||
"muteEveryoneSelf": "siebie",
|
||||
"muteEveryoneStartMuted": "Od tego momentu wszyscy są wyciszeni",
|
||||
"muteParticipantBody": "Nie możesz wyłączyć ich wyciszenia, ale oni mogą samodzielnie wyłączyć wyciszenie w dowolnym momencie.",
|
||||
"muteParticipantButton": "Wyciszenie",
|
||||
"muteParticipantButton": "Wycisz",
|
||||
"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.",
|
||||
"muteParticipantsVideoDialog": "Czy na pewno chcesz wyłączyć kamerę tego uczestnika? Nie będziesz mógł ponownie włączyć jego kamery, ale będzie on mógł samodzielnie włączyć kamerę w dowolnym momencie.",
|
||||
"muteParticipantTitle": "Wyciszyć tego uczestnika?",
|
||||
"muteParticipantsVideoButton": "Wyłącz kamerę",
|
||||
"muteParticipantsVideoTitle": "Wyłączyć kamerę tego uczestnika?",
|
||||
"muteParticipantsVideoBody": "Nie będziesz mógł włączyć jego kamery ponownie, ale uczestnik samodzielnie może włączyć kamerę w dowolnym momencie.",
|
||||
"noDropboxToken": "Brak poprawnego tokenu Dropbox",
|
||||
"Ok": "OK",
|
||||
"passwordLabel": "$t(lockRoomPasswordUppercase)",
|
||||
"password": "$t(lockRoomPasswordUppercase)",
|
||||
"passwordLabel": "Spotkanie zostało zabezpieczone przez innego uczestnika. Wprowadź $t(lockRoomPassword), aby dołączyć.",
|
||||
"passwordNotSupported": "Ustanowienie spotkania $t(lockRoomPassword) nie jest obsługiwane.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nie jest obsługiwane",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) jest wymagane",
|
||||
"permissionErrorTitle": "Wymagana autoryzacja",
|
||||
"permissionCameraRequiredError": "Dostęp do kamery jest wymagany do udziału w konferencjach z obrazem. Udziel dostępu do kamery w ustawieniach",
|
||||
"permissionMicRequiredError": "Dostęp do mikrofonu jest wymagany do udziału w konferencjach z dźwiękiem. Udziel dostępu do mikrofonu w ustawieniach",
|
||||
"popupError": "Twoja przeglądarka blokuje wyskakujące okienka pochodzące z tej witryny. Włącz wyświetlanie wyskakujących okienek w ustawieniach bezpieczeństwa Twojej przeglądarki i spróbuj ponownie.",
|
||||
"popupErrorTitle": "Wyskakujące okienko zostało zablokowane",
|
||||
"readMore": "więcej",
|
||||
"recording": "Nagrywanie",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Nie możliwe podczas aktywnej transmisji na żywo",
|
||||
"recordingDisabledForGuestTooltip": "Goście nie mogą uruchamiać nagrywania.",
|
||||
"recordingDisabledTooltip": "Start recording disabled.",
|
||||
"recordingDisabledTooltip": "Nagrywanie wyłączone.",
|
||||
"rejoinNow": "Połącz ponownie teraz",
|
||||
"remoteControlAllowedMessage": "{{user}} zaakceptował Twoją prośbę o kontrolę zdalną!",
|
||||
"remoteControlDeniedMessage": "{{user}} odrzucił Twoją prośbę o kontrolę zdalną!",
|
||||
@@ -280,15 +309,26 @@
|
||||
"sendPrivateMessageTitle": "Wysłać prywatnie?",
|
||||
"serviceUnavailable": "Usługa jest niedostępna",
|
||||
"sessTerminated": "Połączenie przerwane",
|
||||
"sessionRestarted": "Konferencja została wznowiona",
|
||||
"Share": "Udostępnij",
|
||||
"shareAudio": "Kontynuuj",
|
||||
"shareAudioTitle": "Jak można udostępnić dźwięk?",
|
||||
"shareAudioWarningTitle": "Aby udostępniać dźwięk, musisz wyłączyć udostępnianie ekranu",
|
||||
"shareAudioWarningH1": "Jeśli chcesz udostępniać wyłącznie dźwięk:",
|
||||
"shareAudioWarningD1": "musisz wyłączyć udostępnianie ekranu, zanim będziesz mógł udostępniać dźwięk.",
|
||||
"shareAudioWarningD2": "musisz ponownie uruchomić udostępnianie ekranu i wybrać opcję \"udostępnij dźwiękś\".",
|
||||
"shareMediaWarningGenericH2": "Jeżeli chcesz udostępniać ekran i dźwięk",
|
||||
"shareVideoLinkError": "Podaj proszę prawidłowy link youtube.",
|
||||
"shareVideoTitle": "Udostępnij wideo",
|
||||
"shareYourScreen": "Włącz udostępnianie ekranu",
|
||||
"shareYourScreenDisabled": "Udostępnianie ekranu wyłączone.",
|
||||
"shareYourScreenDisabledForGuest": "Goście nie mogą współdzielić ekranu.",
|
||||
"startLiveStreaming": "Rozpocznij transmisję na żywo",
|
||||
"startRecording": "Rozpocznij nagrywanie",
|
||||
"startRemoteControlErrorMessage": "Wystąpił błąd podczas próby rozpoczęcie sesji zdalnej kontroli!",
|
||||
"shareScreenWarningTitle": "Aby udostępnić ekran, musisz zatrzymać udostępnianie dźwięku",
|
||||
"shareScreenWarningH1": "Kiedy chcesz udostępniać wyłącznie swój ekran:",
|
||||
"shareScreenWarningD1": "musisz zatrzymać udostępnianie dźwięku przed udostępnieniem ekranu.",
|
||||
"shareScreenWarningD2": "musisz zatrzymać udostępnianie dźwięku, rozpocząć udostępnianie ekranu i zaznaczyć opcję \"udostępnij dźwięk\".",
|
||||
"stopLiveStreaming": "Zatrzymaj transmisję na żywo",
|
||||
"stopRecording": "Zatrzymaj nagrywanie",
|
||||
"stopRecordingWarning": "Naprawdę chcesz zatrzymać nagrywanie?",
|
||||
@@ -301,12 +341,20 @@
|
||||
"tokenAuthFailedTitle": "Uwierzytelnianie nie powiodło się",
|
||||
"transcribing": "Transkrypcja",
|
||||
"unlockRoom": "Usuń spotkanie $t(lockRoomPassword)",
|
||||
"user": "Użytkownik",
|
||||
"userIdentifier": "Nazwa użytkownika",
|
||||
"userPassword": "hasło użytkownika",
|
||||
"videoLink": "Link do video",
|
||||
"viewUpgradeOptions": "Pokaż opcje aktualizacji",
|
||||
"viewUpgradeOptionsContent": "Musisz uaktualnić swój plan, aby korzystać z funkcji premium, takich jak nagrywanie, transkrypcja, przesyłanie strumieniowe RTMP i nie tylko.",
|
||||
"viewUpgradeOptionsTitle": "Odkryłeś funkcję premium!",
|
||||
"WaitForHostMsg": "Spotkanie <b>{{room}}</b> jeszcze się nie rozpoczęło. Jeśli jesteś gospodarzem, prosimy o uwierzytelnienie. Jeśli nie, prosimy czekać na przybycie gospodarza.",
|
||||
"WaitForHostMsgWOk": "Spotkanie <b>{{room}}</b> jeszcze się nie rozoczęło. Jeśli jesteś jej gospodarzem, wybierz Ok, aby się uwierzytelnić. Jeśli nie, prosimy czekać na przybycie gospodarza.",
|
||||
"WaitingForHost": "Oczekiwanie na gospodarza…",
|
||||
"WaitingForHostTitle": "Oczekiwanie na gospodarza...",
|
||||
"Yes": "Tak",
|
||||
"yourEntireScreen": "Cały Twój ekran"
|
||||
"yourEntireScreen": "Cały Twój ekran",
|
||||
"remoteUserControls": "Zdalna kontrola użytkownika {{username}}",
|
||||
"localUserControls": "Lokalna kontrola użytkownika"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "jest teraz {{status}}"
|
||||
@@ -320,6 +368,28 @@
|
||||
"embedMeeting": {
|
||||
"title": "Osadź to spotkanie"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Zastosuj",
|
||||
"title": "Tła",
|
||||
"blur": "Rozmycie",
|
||||
"slightBlur": "Lekkie rozmycie",
|
||||
"removeBackground": "Usuń tło",
|
||||
"addBackground": "Dodaj tło",
|
||||
"pleaseWait": "Proszę czekać...",
|
||||
"none": "Żadne",
|
||||
"uploadedImage": "Przesłany obraz {{index}}",
|
||||
"deleteImage": "Usuń obraz",
|
||||
"image1": "Plaża",
|
||||
"image2": "Biała ściana",
|
||||
"image3": "Biały pusty pokój",
|
||||
"image4": "Czarna lampa",
|
||||
"image5": "Góra",
|
||||
"image6": "Las",
|
||||
"image7": "Wschód słońca",
|
||||
"desktopShareError": "Nie można udostępnić pulpitu",
|
||||
"desktopShare": "Udostępnianie pulpitu",
|
||||
"webAssemblyWarning": "WebAssembly nie jest obsługiwany"
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Średnio",
|
||||
"bad": "Źle",
|
||||
@@ -327,7 +397,8 @@
|
||||
"good": "Dobrze",
|
||||
"rateExperience": "Jak oceniasz tę konferencję?",
|
||||
"veryBad": "Bardzo źle",
|
||||
"veryGood": "Bardzo dobrze"
|
||||
"veryGood": "Bardzo dobrze",
|
||||
"star": "Gwiazda"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Odbierz",
|
||||
@@ -344,6 +415,7 @@
|
||||
"country": "Kraj",
|
||||
"dialANumber": "Aby dołączyć do spotkania, wprowadź jeden z tych numerów i podaj pin.",
|
||||
"dialInConferenceID": "PIN:",
|
||||
"copyNumber": "Skopiuj numer",
|
||||
"dialInNotSupported": "Przepraszamy, aktualnie wybieranie nie jest obsługiwane.",
|
||||
"dialInNumber": "Wdzwoń się:",
|
||||
"dialInSummaryError": "Błąd podczas przetwarzania danych do wdzwonienia. Spróbuj ponownie później.",
|
||||
@@ -352,6 +424,11 @@
|
||||
"inviteLiveStream": "Aby obejrzeć transmisję na żywo z tego spotkania, kliknij ten odnośnik: {{url}}",
|
||||
"invitePhone": "Aby skorzystać z połączenia telefonicznego, wprowadź: {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "Poszukujesz innego numeru do wdzwonienia?\nZobacz listę numerów: {{url}}\n\n\nJeśli wdzwaniasz się z telefonu pokojowego, połącz się bez dźwięku: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "Aby dołączyć używając SIP użyj tego adresu: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} zaprasza Cię do spotkania.",
|
||||
"inviteTextiOSJoinSilent": "Jeżeli wdzwaniasz się za pomocą telefonu konferencyjnego użyj tego linku, aby dołączyć bez dźwięku: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Kliknij w link, aby dołączyć: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "Aby dołączyć z telefonu użyj numeru: {{number}},,{{conferenceID}}#. Pełna lista numerów telefonów: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Zostałeś zaproszony do dołączenia do spotkania.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} zaprasza Cię na spotkanie.\n",
|
||||
"inviteURLSecondPart": "\nDołącz do spotkania:\n{{url}}\n",
|
||||
@@ -362,6 +439,7 @@
|
||||
"noRoom": "Nie podano pokoju do wdzwonienia.",
|
||||
"numbers": "Numery do wdzwonienia",
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"sip": "Adres SIP",
|
||||
"title": "Udostępnij",
|
||||
"tooltip": "Udostępnij odnośnik i informacje do wdzwonienia się na to spotkanie",
|
||||
"label": "Poinformuj o spotkaniu"
|
||||
@@ -380,6 +458,7 @@
|
||||
"support": "Wsparcie",
|
||||
"supportMsg": "Jeśli to się powtarza, skontaktuj się z nami przez"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logo, link do strony głównej",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Powiększ wideo",
|
||||
"focusRemote": "Skup na obrazie innej osoby",
|
||||
@@ -392,10 +471,10 @@
|
||||
"showSpeakerStats": "Pokaż statystyki mówcy",
|
||||
"toggleChat": "Otwórz lub zamknij czat",
|
||||
"toggleFilmstrip": "Wyświetl lub ukryj miniaturki video",
|
||||
"toggleParticipantsPane": "Pokaż lub ukryj listę uczestników",
|
||||
"toggleScreensharing": "Przełącz pomiędzy kamerą i wspóldzieleniem ekranu",
|
||||
"toggleShortcuts": "Wyświetl lub ukryj skróty klawiaturowe",
|
||||
"videoMute": "Uruchom lub zatrzymaj kamerę",
|
||||
"videoQuality": "Zarządzanie jakością połączeń"
|
||||
"videoMute": "Uruchom lub zatrzymaj kamerę"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"limitNotificationDescriptionWeb": "Ze względu na duże zapotrzebowanie twoje strumieniowanie będzie ograniczone do {{limit}} minut. Aby strumieniować bez ograniczeń wybróbuj <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
@@ -428,7 +507,7 @@
|
||||
"start": "Rozpocznij transmisję na żywo",
|
||||
"streamIdHelp": "Co to jest?",
|
||||
"unavailableTitle": "Transmisja na żywo jest niedostępna",
|
||||
"youtubeTerms": "Warunki użytkowania YouTube",
|
||||
"youtubeTerms": "Warunki użytkowania YouTube",
|
||||
"googlePrivacyPolicy": "Polityka prywatności Google"
|
||||
},
|
||||
"localRecording": {
|
||||
@@ -471,6 +550,7 @@
|
||||
"focus": "Fokus konferencji",
|
||||
"focusFail": "{{component}} jest niedostępny - ponowienie w ciągu {{ms}} sec",
|
||||
"grantedTo": "Prawa moderatora przyznane dla {{to}}!",
|
||||
"hostAskedUnmute": "Gospodarz prosi Cię o wyłączenie wyciszenia",
|
||||
"invitedOneMember": "{{name}} został zaproszony",
|
||||
"invitedThreePlusMembers": "{{name}} i {{count}} innych osób zostało zaproszone",
|
||||
"invitedTwoMembers": "{{first}} i {{second}} zostali zaproszeni",
|
||||
@@ -481,9 +561,13 @@
|
||||
"mutedTitle": "Jesteś wyciszony!",
|
||||
"mutedRemotelyTitle": "Zostałeś wyciszony przez {{participantDisplayName}}!",
|
||||
"mutedRemotelyDescription": "Zawsze możesz wyłączyć wyciszenie, gdy będziesz gotowy do mówienia. Wycisz, gdy skończysz, aby nie hałasować podczas spotkania.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) usunięty przez innego uczestnika",
|
||||
"videoMutedRemotelyTitle": "Twoja kamera została wyłączona przez {{participantDisplayName}}!",
|
||||
"videoMutedRemotelyDescription": "Możesz ją włączyć ponownie w dowolnym momencie.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) usunięte przez innego uczestnika",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) ustawiony przez innego uczestnika",
|
||||
"raisedHand": "{{name}} chce mówić.",
|
||||
"screenShareNoAudio": "Opcja \"Udostępnij dźwięk\" nie została zaznaczona podczas wyboru okna.",
|
||||
"screenShareNoAudioTitle": "Nie można udostępnić dźwięku",
|
||||
"somebody": "Ktoś",
|
||||
"startSilentTitle": "Dołączyłeś bez wyjścia dźwiękowego!",
|
||||
"startSilentDescription": "Ponownie dołącz do spotkania, aby włączyć dźwięk",
|
||||
@@ -496,13 +580,78 @@
|
||||
"OldElectronAPPTitle": "Luka bezpieczeństwa!",
|
||||
"oldElectronClientDescription1": "Najprawdopodobniej używasz starej wersji klienta Jitsi Meet, który jest podatny na luki bezpieczeństwa. Proszę zaktualizować do ",
|
||||
"oldElectronClientDescription2": "najnowszej wersji",
|
||||
"oldElectronClientDescription3": " teraz!"
|
||||
"oldElectronClientDescription3": " teraz!",
|
||||
"moderationInEffectDescription": "Podnieś rękę, jeżeli chcesz mówić",
|
||||
"moderationInEffectCSDescription": "Podnieś rękę, aby udostępniać obraz",
|
||||
"moderationInEffectVideoDescription": "Podnieś rękę, aby włączyć kamerę",
|
||||
"moderationInEffectTitle": "Mikrofon jest wyciszony przez moderatora",
|
||||
"moderationInEffectCSTitle": "Udostępnianie jest wyłaczone przez moderatora",
|
||||
"moderationInEffectVideoTitle": "Kamera jest wyłączona przez moderatora",
|
||||
"moderationRequestFromModerator": "Moderator prosi Cię o włączenie mikrofonu",
|
||||
"moderationRequestFromParticipant": "chce mówić",
|
||||
"moderationStartedTitle": "Rozpoczęto moderację",
|
||||
"moderationStoppedTitle": "Moderacja zatrzymana",
|
||||
"moderationToggleDescription": "przez {{participantDisplayName}}",
|
||||
"raiseHandAction": "Podnieś rękę",
|
||||
"reactionSounds": "Wyłącz dźwięki",
|
||||
"groupTitle": "Powiadomienia"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Zamknij",
|
||||
"header": "Uczestnicy",
|
||||
"headings": {
|
||||
"lobby": "Lobby ({{count}})",
|
||||
"participantsList": "Obecnych ({{count}})",
|
||||
"waitingLobby": "Oczekujących ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Zezwól uczestnikom na:",
|
||||
"blockEveryoneMicCamera": "Zablokuj wszystkim kamerę i mikrofon",
|
||||
"invite": "Zaproś",
|
||||
"askUnmute": "Poproś o wyłączenie wyciszenia",
|
||||
"mute": "Wycisz",
|
||||
"muteAll": "Wycisz wszystkich",
|
||||
"muteEveryoneElse": "Wycisz pozostałych",
|
||||
"startModeration": "Wyłącz wyciszenie lub rozpocznij wideo",
|
||||
"stopEveryonesVideo": "Wyłącz wszystkie kamery",
|
||||
"stopVideo": "Wyłącz kamerę",
|
||||
"unblockEveryoneMicCamera": "Odblokuj wszystkim kamerę i mikrofon"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "wybrane przez innego uczestnika",
|
||||
"passwordDigitsOnly": "Do {{number}} cyfr",
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Dodaj opcję",
|
||||
"answerPlaceholder": "Opcja {{index}}",
|
||||
"create": "Stwórz ankietę",
|
||||
"cancel": "Anuluj",
|
||||
"pollOption": "Opcja {{index}}",
|
||||
"pollQuestion": "Pytanie",
|
||||
"questionPlaceholder": "Zadaj pytanie",
|
||||
"removeOption": "Usuń opcję",
|
||||
"send": "Wyślij"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Pomiń",
|
||||
"submit": "Wyślij"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Głosuj",
|
||||
"changeVote": "Zmień głos",
|
||||
"empty": "Nie ma aktywnych ankiet. Rozpocznij ankietę tutaj!",
|
||||
"hideDetailedResults": "Ukryj szczegóły",
|
||||
"showDetailedResults": "Pokaż szczegóły"
|
||||
},
|
||||
"notification": {
|
||||
"title": "Utworzono nową ankietę do tego spotkania",
|
||||
"description": "Otwórz kartę ankiet, aby zagłosować"
|
||||
}
|
||||
},
|
||||
"poweredby": "napędzane dzięki",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Błąd audio i wideo:",
|
||||
"audioDeviceProblem": "Wystąpił problem z urządzeniem audio.",
|
||||
"audioOnlyError": "Błąd audio:",
|
||||
"audioTrackError": "Nie można utworzyć ścieżki audio.",
|
||||
"calling": "Wybieranie",
|
||||
@@ -510,6 +659,25 @@
|
||||
"callMeAtNumber": "Zadzwoń do mnie pod ten numer:",
|
||||
"configuringDevices": "Konfigurowanie urządzeń...",
|
||||
"connectedWithAudioQ": "Jesteś połączony głosowo?",
|
||||
"connection": {
|
||||
"good": "Twoje połączenie internetowe wygląda dobrze!",
|
||||
"nonOptimal": "Twoje połączenie internetowe nie jest optymalne.",
|
||||
"poor": "Masz złe połączenie internetowe."
|
||||
},
|
||||
"connectionDetails": {
|
||||
"audioClipping": "Twój dźwięk będzie się przycinał.",
|
||||
"audioHighQuality": "Twój dźwięk będzie miał doskonałą jakość.",
|
||||
"audioLowNoVideo": "Twój dźwięk prawdopodobnie będzie zły i nie będzie wideo.",
|
||||
"goodQuality": "Świetnie! Jakość obrazu i dźwięku powinna być bardzo dobra.",
|
||||
"noMediaConnectivity": "Nie można nawiązać połączenia z mediami. Jest to zwykle wywoływane przez zaporę sieciową lub NAT.",
|
||||
"noVideo": "Twój obraz będzie słabej jakości.",
|
||||
"undetectable": "Jeśli podczas spotkania nadal będziesz mieć problemy z przeglądarką, sprawdź połączenie oraz działanie głośników, mikrofonu i kamery. Upewnij się również, że Twoja przeglądarka ma niezbędne uprawnienia dostępu do mikrofonu i kamery oraz że masz zainstalowaną najnowszą wersję przeglądarki. Jeśli nadal masz problemy, skontaktuj się z obsługą aplikacji.",
|
||||
"veryPoorConnection": "Twoja jakość konferencji będzie prawdopodobnie bardzo słaba.",
|
||||
"videoFreezing": "Twój obraz będzie się przycinał, stanie się czarny i będzie miał niską rozdzielczość.",
|
||||
"videoHighQuality": "Twój obraz będzie dobrej jakości.",
|
||||
"videoLowQuality": "Twój obraz będzie miał niską rozdzielczość oraz liczbę klatek na sekundę.",
|
||||
"videoTearing": "Twój obraz będzie miał niską rozdzielczość, a na ekranie pojawią się nieporządane artefakty."
|
||||
},
|
||||
"copyAndShare": "Kopiuj i udostępnij link spotkania",
|
||||
"dialInMeeting": "Wdzwoń się na spotkanie",
|
||||
"dialInPin": "Wdzwoń się na spotkanie i wprowadź kod PIN:",
|
||||
@@ -519,6 +687,7 @@
|
||||
"errorDialOutDisconnected": "Nie udało się wybrać numeru. Rozłączono",
|
||||
"errorDialOutFailed": "Nie udało się wybrać numeru. Połączenie nieudane",
|
||||
"errorDialOutStatus": "Błąd podczas uzyskiwania stanu połączenia",
|
||||
"errorMissingName": "Podaj imię, aby dołączyć do spotkania",
|
||||
"errorStatusCode": "Błąd wybierania, kod statusu: {{status}}",
|
||||
"errorValidation": "Weryfikacja numeru zakończona niepowodzeniem",
|
||||
"iWantToDialIn": "Chcę się wdzwonić",
|
||||
@@ -531,6 +700,7 @@
|
||||
"or": "lub",
|
||||
"premeeting": "Przed spotkaniem",
|
||||
"showScreen": "Włącz ekran Przed spotkaniem",
|
||||
"keyboardShortcuts": "Włącz skróty klawiszowe",
|
||||
"startWithPhone": "Uruchom przez telefon",
|
||||
"screenSharingError": "Błąd udostępniania ekranu:",
|
||||
"videoOnlyError": "Błąd wideo:",
|
||||
@@ -539,25 +709,26 @@
|
||||
},
|
||||
"presenceStatus": {
|
||||
"busy": "Zajęte",
|
||||
"calling": "Dzwonienie…",
|
||||
"calling": "Dzwonię...",
|
||||
"connected": "Połączono",
|
||||
"connecting": "Łączenie…",
|
||||
"connecting2": "Łączenie*...",
|
||||
"connecting": "Łączę...",
|
||||
"connecting2": "Łączę*...",
|
||||
"disconnected": "Rozłączony",
|
||||
"expired": "Wygasłe",
|
||||
"expired": "Wygasły",
|
||||
"ignored": "Zignorowane",
|
||||
"initializingCall": "Inicjalizacja połączenia…",
|
||||
"initializingCall": "Inicjalizacja połączenia...",
|
||||
"invited": "Zaproszony",
|
||||
"rejected": "Odrzucony",
|
||||
"ringing": "Dzwonek…"
|
||||
"ringing": "Dzwonek..."
|
||||
},
|
||||
"profile": {
|
||||
"avatar": "awatar",
|
||||
"setDisplayNameLabel": "Podaj swoją wyświetlaną nazwę",
|
||||
"setEmailInput": "Wprowadź adres e-mail",
|
||||
"setEmailLabel": "Ustaw adres poczty elektronicznej swojego Gravatara",
|
||||
"title": "Profil"
|
||||
},
|
||||
"raisedHand": "Chcesz się odezwać ?",
|
||||
"raisedHand": "Chcę coś powiedzieć",
|
||||
"recording": {
|
||||
"limitNotificationDescriptionWeb": "Ze względu na duże zapotrzebowanie twoje nagrywanie będzie ograniczone do {{limit}} minut. Aby strumieniować bez ograniczeń wybróbuj <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Ze względu na duże zapotrzebowanie twoje nagrywanie będzie ograniczone do {{limit}} minut. Aby strumieniować bez ograniczeń wybróbuj <3>{{app}}</3>.",
|
||||
@@ -566,12 +737,15 @@
|
||||
"beta": "BETA",
|
||||
"busy": "Pracujemy nad uwolnieniem zasobów nagrywania. Proszę spróbować ponownie za kilka minut.",
|
||||
"busyTitle": "Wszystkie urządzenia nagrywania są obecnie zajete",
|
||||
"copyLink": "Skopiuj link",
|
||||
"error": "Nagranie się nie powiodło. Proszę spróbować ponownie.",
|
||||
"errorFetchingLink": "Nie udało się wczytać linku do nagrania.",
|
||||
"expandedOff": "Nagrywanie zostało zatrzymane",
|
||||
"expandedOn": "Spotkanie jest obecnie nagrywane.",
|
||||
"expandedPending": "Nagrywanie się rozpoczyna…",
|
||||
"failedToStart": "Nagrywanie nie jest możliwe",
|
||||
"fileSharingdescription": "Udostępnij nagranie uczestnikom spotkania",
|
||||
"linkGenerated": "Wygenerowano link do nagrania.",
|
||||
"live": "NA ŻYWO",
|
||||
"loggedIn": "Zalogowano jako {{userName}}",
|
||||
"off": "Nagrywanie zatrzymane",
|
||||
@@ -581,11 +755,13 @@
|
||||
"pending": "Przygotowanie do nagrania spotkania…",
|
||||
"rec": "NAGRYWANIE",
|
||||
"serviceDescription": "Twoje nagranie zostanie zapisane przez usługę nagrywania",
|
||||
"serviceDescriptionCloud": "Nagrywanie w chmurze",
|
||||
"serviceName": "Usługa nagrywania",
|
||||
"signIn": "Zaloguj się",
|
||||
"signOut": "Wyloguj się",
|
||||
"unavailable": "Ups! {{serviceName}} w tej chwili niedostępny. Próbujemy rozwiązać ten problem. Spróbuj ponownie później.",
|
||||
"unavailableTitle": "Nagrywanie niedostępne"
|
||||
"unavailableTitle": "Nagrywanie niedostępne",
|
||||
"uploadToCloud": "Prześlij do chmury"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Przeciągnij, aby odświeżyć"
|
||||
@@ -604,27 +780,39 @@
|
||||
"signedIn": "Dostęp do wydarzeń kalendarza dla {{email}}. Kliknij poniższy przycisk Rozłącz aby zatrzymać dostęp do wydarzeń kalendarza.",
|
||||
"title": "Kalendarz"
|
||||
},
|
||||
"desktopShareFramerate": "Liczba klatek na sekundę dla udostępniania ekranu",
|
||||
"desktopShareWarning": "Wymagane ponowne włączenie udostępniania ekranu, aby zastosować nowe ustawienia.",
|
||||
"desktopShareHighFpsWarning": "Wyższa liczba klatek może wpłynąć na szybkość transmisji danych. Aby ustawienie zaczęło obowiązywać, musisz ponownie uruchomić udostępnianie ekranu.",
|
||||
"devices": "Urządzenia",
|
||||
"followMe": "Wszyscy widzą mnie",
|
||||
"framesPerSecond": "klatek na sekundę",
|
||||
"incomingMessage": "Przychodząca wiadomość",
|
||||
"language": "Język",
|
||||
"loggedIn": "Zalogowano jako {{name}}",
|
||||
"microphones": "Mikrofony",
|
||||
"sounds": "Dźwięki",
|
||||
"moderator": "Moderacja",
|
||||
"more": "Więcej",
|
||||
"name": "Nazwa",
|
||||
"noDevice": "Brak",
|
||||
"participantJoined": "Dołączył nowy uczestnik",
|
||||
"participantLeft": "Uczestnik opuścił spotkanie",
|
||||
"playSounds": "Włącz dźwięki",
|
||||
"reactions": "Reakcje",
|
||||
"sameAsSystem": "Jak system ({{label}})",
|
||||
"selectAudioOutput": "Wyjście audio",
|
||||
"selectCamera": "Kamera",
|
||||
"selectMic": "Mikrofon",
|
||||
"speakers": "Głośniki",
|
||||
"speakers": "Głośniki",
|
||||
"startAudioMuted": "Wycisz wszystkich dołączających",
|
||||
"startVideoMuted": "Ukryj wszystkich dołączających",
|
||||
"talkWhileMuted": "Jesteś wyciszony",
|
||||
"title": "Ustawienia"
|
||||
},
|
||||
"settingsView": {
|
||||
"advanced": "Zaawansowane",
|
||||
"alertOk": "OK",
|
||||
"alertCancel": "Anuluj",
|
||||
"alertCancel": "Anuluj",
|
||||
"alertTitle": "Uwaga",
|
||||
"alertURLText": "Wprowadzony adres URL serwera jest nieprawidłowy",
|
||||
"buildInfoSection": "Informacja o kompilacji",
|
||||
@@ -649,6 +837,7 @@
|
||||
},
|
||||
"speaker": "Mówca",
|
||||
"speakerStats": {
|
||||
"search": "Wyszukaj",
|
||||
"hours": "{{count}} godz.",
|
||||
"minutes": "{{count}} min.",
|
||||
"name": "Nazwa",
|
||||
@@ -658,7 +847,8 @@
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"title": "{{app}} potrzebuje używać Twój mikrofon i kamerę."
|
||||
"genericTitle": "Spotkanie potrzebuje używać Twojego mikrofonu i kiamery.",
|
||||
"title": "{{app}} potrzebuje używać Twojego mikrofonu i kiamery."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"rejoinKeyTitle": "Dołącz ponownie",
|
||||
@@ -669,13 +859,14 @@
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Przełączanie tylko audio",
|
||||
"audioRoute": "Wybierz urządzenie dźwiękowe",
|
||||
"boo": "Buczenie",
|
||||
"callQuality": "Zarządzanie jakością obrazu",
|
||||
"cc": "Przełączanie napisów",
|
||||
"chat": "Przełączanie okna rozmowy",
|
||||
"clap": "Klaskanie",
|
||||
"document": "Przełączanie wspólnego dokumentu",
|
||||
"download": "Pobierz nasze aplikacje",
|
||||
"embedMeeting": "Osadź spotkanie",
|
||||
"e2ee": "Szyfrowanie End-to-End",
|
||||
"feedback": "Zostaw swoją opinię",
|
||||
"fullScreen": "Przełączanie trybu pełnoekranowego",
|
||||
"grantModerator": "Przyznaj prawa moderowania",
|
||||
@@ -683,6 +874,8 @@
|
||||
"help": "Pomoc",
|
||||
"invite": "Zaproś uczestników",
|
||||
"kick": "Usuń uczestnika",
|
||||
"laugh": "Śmiech",
|
||||
"like": "Kciuk w górę",
|
||||
"lobbyButton": "Włącz/wyłącz tryb lobby",
|
||||
"localRecording": "Przełączanie lokalnych urządzeń sterujących zapisem danych",
|
||||
"lockRoom": "Przełączenie hasła spotkania",
|
||||
@@ -691,34 +884,52 @@
|
||||
"moreOptions": "Pokaż więcej opcji",
|
||||
"mute": "Uruchamianie wyciszonego audycji",
|
||||
"muteEveryone": "Wycisz wszystkich",
|
||||
"muteEveryoneElse": "Wycisz pozostałych",
|
||||
"muteEveryonesVideo": "Wyłącz wszystkim kamery",
|
||||
"muteEveryoneElsesVideo": "Wyłącz kamery pozostałym",
|
||||
"participants": "Uczestnicy",
|
||||
"pip": "Tryb przełączania obrazu-w-obrazie",
|
||||
"privateMessage": "Wyślij wiadomość prywatną",
|
||||
"profile": "Edytuj swój profil",
|
||||
"raiseHand": "Przełączyć rękę w górę",
|
||||
"reactionsMenu": "Otwórz / Zamknij reakcje",
|
||||
"recording": "Przełączanie nagrywania",
|
||||
"remoteMute": "Wycisz uczestnika",
|
||||
"remoteVideoMute": "Wyłącz kamerę uczestnika",
|
||||
"security": "Opcje zabezpieczeń",
|
||||
"Settings": "Ustawienia przełączania",
|
||||
"shareaudio": "Udostępnij audio",
|
||||
"sharedvideo": "Przełącz udostępnianie obrazu na YouTube",
|
||||
"shareRoom": "Zaproś kogoś",
|
||||
"shareYourScreen": "Przełączanie podziału ekranu",
|
||||
"shortcuts": "Przełączanie skrótów klawiszowych",
|
||||
"show": "Pokaż na scenie",
|
||||
"silence": "Cisza",
|
||||
"speakerStats": "Przełączanie statystyk dotyczących mówców",
|
||||
"surprised": "Zaskoczony",
|
||||
"tileView": "Przełącz widok kafelkowy",
|
||||
"toggleCamera": "Przełączanie kamery",
|
||||
"toggleFilmstrip": "Przełącz filmstrip",
|
||||
"videomute": "Przełączanie wyciszonego filmu wideo",
|
||||
"videoblur": "Przełącz rozmazanie obrazu"
|
||||
"videoblur": "Przełącz rozmazanie obrazu",
|
||||
"selectBackground": "Wybierz tło",
|
||||
"expand": "Rozwiń",
|
||||
"collapse": "Zwiń"
|
||||
},
|
||||
"addPeople": "Dodaj ludzi do swojej rozmowy",
|
||||
"audioSettings": "Ustawienia audio",
|
||||
"videoSettings": "Ustawienia video",
|
||||
"audioOnlyOff": "Wyłącz tryb słabego łącza",
|
||||
"audioOnlyOn": "Włącz tryb słabego łącza",
|
||||
"audioRoute": "Wybierz urządzenie dźwiękowe",
|
||||
"authenticate": "Uwierzytelnianie",
|
||||
"boo": "Buczenie",
|
||||
"callQuality": "Zarządzanie jakością obrazu",
|
||||
"chat": "Otwórz / Zamknij okno czatu",
|
||||
"clap": "Klaskanie",
|
||||
"closeChat": "Zamknij czat",
|
||||
"closeReactionsMenu": "Zamknij reakcje",
|
||||
"disableReactionSounds": "Wyłącz dźwięki reakcji dla tego spotkania",
|
||||
"documentClose": "Zamknij udostępniony dokument",
|
||||
"documentOpen": "Otwarty udostępniony dokument",
|
||||
"download": "Pobierz nasze aplikacje",
|
||||
@@ -732,6 +943,8 @@
|
||||
"hangup": "Opuść spotkanie",
|
||||
"help": "Pomoc",
|
||||
"invite": "Zaproś uczestników",
|
||||
"laugh": "Śmiech",
|
||||
"like": "Kciuk w górę",
|
||||
"lobbyButtonDisable": "Wyłącz tryb lobby",
|
||||
"lobbyButtonEnable": "Włącz tryb lobby",
|
||||
"login": "Zaloguj",
|
||||
@@ -741,6 +954,7 @@
|
||||
"moreOptions": "Więcej opcji",
|
||||
"mute": "Włącz / Wyłącz mikrofon",
|
||||
"muteEveryone": "Wycisz wszystkich",
|
||||
"muteEveryonesVideo": "Wyłącz wszystkim kamery",
|
||||
"noAudioSignalTitle": "Brak sygnału audio!",
|
||||
"noAudioSignalDesc": "Jeżeli celowo nie wyciszyłeś mikrofonu w ustawieniach systemowych spróbuj innego urządzenia.",
|
||||
"noAudioSignalDescSuggestion": "Jeżeli celowo nie wyciszyłeś mikrofonu w ustawieniach systemowych spróbuj sugerowanego urządzenia.",
|
||||
@@ -749,28 +963,39 @@
|
||||
"noisyAudioInputTitle": "Twój mikrofon powoduje zakłócenia!",
|
||||
"noisyAudioInputDesc": "Wygląda na to, że Twój mikrofon powoduje zakłócenia.",
|
||||
"openChat": "Otwórz czat",
|
||||
"openReactionsMenu": "Otwórz reakcje",
|
||||
"participants": "Uczestnicy",
|
||||
"pip": "Wprowadź tryb obrazu w obrazie",
|
||||
"privateMessage": "Wyślij wiadomość prywatną",
|
||||
"profile": "Edytuj swój profil",
|
||||
"raiseHand": "Podnieś / Opuść rękę",
|
||||
"raiseYourHand": "Podnieś rękę",
|
||||
"reactionBoo": "Wyślij buczenie",
|
||||
"reactionClap": "Wyślij klaskanie",
|
||||
"reactionLaugh": "Wyślij śmiech",
|
||||
"reactionLike": "Wyślij kciuk w górę",
|
||||
"reactionSilence": "Wyślij cisza",
|
||||
"reactionSurprised": "Wyślij zaskoczony",
|
||||
"security": "Opcje zabezpieczeń",
|
||||
"Settings": "Ustawienia",
|
||||
"shareaudio": "Udostępnij audio",
|
||||
"sharedvideo": "Udostępnij wideo z Youtube",
|
||||
"shareRoom": "Zaproś kogoś",
|
||||
"shortcuts": "Wyświetl skróty",
|
||||
"silence": "Cisza",
|
||||
"speakerStats": "Statystyki mówców",
|
||||
"startScreenSharing": "Zacznij współdzielenie ekranu",
|
||||
"startSubtitles": "Uruchom napisy",
|
||||
"stopScreenSharing": "Zatrzymaj współdzielenie ekranu",
|
||||
"stopAudioSharing": "Zakończ udostępnianie audio",
|
||||
"stopScreenSharing": "Zakończ współdzielenie ekranu",
|
||||
"stopSubtitles": "Zatrzymaj napisy",
|
||||
"stopSharedVideo": "Zatrzymaj wideo z YouTube",
|
||||
"surprised": "Zaskoczony",
|
||||
"talkWhileMutedPopup": "Próbujesz mówić? Jesteś wyciszony.",
|
||||
"tileViewToggle": "Przełączanie kafelkowego widoku",
|
||||
"toggleCamera": "Przełączanie kamery",
|
||||
"videomute": "Włącz / Wyłącz kamerę",
|
||||
"startvideoblur": "Rozmaż moje tło",
|
||||
"stopvideoblur": "Wyłącz rozmazanie tła"
|
||||
"selectBackground": "Wybierz tło"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Uruchom / Zatrzymaj napisy",
|
||||
@@ -796,6 +1021,7 @@
|
||||
"react-nativeGrantPermissions": "Wybierz <b><i>Pozwól</i></b>, gdy przeglądarka zapyta o pozwolenie.",
|
||||
"safariGrantPermissions": "Wybierz <b><i>OK</i></b>, gdy przegladarka zapyta o pozwolenie."
|
||||
},
|
||||
"volumeSlider": "Kontrola głośności",
|
||||
"videoSIPGW": {
|
||||
"busy": "Pracujemy nad uwolnieniem zasobów. Prosimy spróbować za kilka minut.",
|
||||
"busyTitle": "Usługa pokoju jest obecnie zajęta",
|
||||
@@ -818,15 +1044,16 @@
|
||||
"ld": "LD",
|
||||
"ldTooltip": "Podgląd obrazu w niskiej rozdzielczości",
|
||||
"lowDefinition": "Niska rozdzielczość",
|
||||
"onlyAudioAvailable": "Dostępny jest tylko dźwięk",
|
||||
"onlyAudioSupported": "Obsługujemy tylko dźwięk w tej przeglądarce.",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Podgląd obrazu w standardowej rozdzielczości",
|
||||
"standardDefinition": "Standardowa rozdzielczość"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"connectionInfo": "Informacje o połączeniu",
|
||||
"domute": "Wyciszenie",
|
||||
"domuteVideo": "Wyłącz kamerę",
|
||||
"domuteOthers": "Wycisz pozostałych",
|
||||
"domuteVideoOfOthers": "Wyłącz kamerę pozostałym",
|
||||
"flip": "Odwrócenie",
|
||||
"grantModerator": "Przyznaj prawa moderatora",
|
||||
"kick": "Wyrzuć",
|
||||
@@ -835,9 +1062,11 @@
|
||||
"muted": "Wyciszony",
|
||||
"remoteControl": "Kontrola zdalna",
|
||||
"show": "Pokaż na scenie",
|
||||
"videomute": "Uczestnik zatrzymał kamerę"
|
||||
"videomute": "Uczestnik zatrzymał kamerę",
|
||||
"videoMuted": "Kamera wyłączona"
|
||||
},
|
||||
"welcomepage": {
|
||||
"addMeetingName": "Dodaj nazwę spotkania",
|
||||
"accessibilityLabel": {
|
||||
"join": "Stuknij aby dołączyć",
|
||||
"roomname": "Podaj nazwę sali konferencyjnej"
|
||||
@@ -854,8 +1083,14 @@
|
||||
"getHelp": "Pomoc",
|
||||
"go": "Dalej",
|
||||
"goSmall": "Dalej",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"headerSubtitle": "Bezpieczne i wysokiej jakości spotkania",
|
||||
"info": "Informacje",
|
||||
"join": "Utwórz / Dołącz",
|
||||
"jitsiOnMobile": "Jitsi mobile – pobierz appkę i rozpocznij spotkanie z dowolnego miejsca",
|
||||
"mobileDownLoadLinkIos": "Pobierz appkę dla systemu iOS",
|
||||
"mobileDownLoadLinkAndroid": "Pobierz appkę dla systemu Android",
|
||||
"mobileDownLoadLinkFDroid": "Pobierz appkę dla systemu F-Droid",
|
||||
"moderatedMessage": "lub <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">zarezerwuj adres spotkania</a> jeśli jesteś jedynym moderatorem.",
|
||||
"privacy": "Polityka prywatności",
|
||||
"recentList": "Niedawno",
|
||||
@@ -866,9 +1101,18 @@
|
||||
"roomname": "Podaj nazwę sali konferencyjnej",
|
||||
"roomnameHint": "Wprowadź nazwę lub adres URL pokoju, do którego chcesz dołączyć. Możesz wymyślić nazwę, po prostu pozwól, aby osoby, z którymi się spotykasz, znały ją tak, aby wpisały tę samą nazwę.",
|
||||
"sendFeedback": "Wyślij opinię",
|
||||
"startMeeting": "Rozpocznij spotkanie",
|
||||
"terms": "Warunki korzystania",
|
||||
"title": "Bezpieczna, w pełni funkcjonalna i całkowicie bezpłatna wideokonferencja"
|
||||
},
|
||||
"title": "Bezpieczna, w pełni funkcjonalna i całkowicie bezpłatna wideokonferencja",
|
||||
"logo": {
|
||||
"calendar": "Logo kalendarza",
|
||||
"microsoftLogo": "Logo Microsoftu",
|
||||
"logoDeepLinking": "Logo Jitsi meet",
|
||||
"desktopPreviewThumbnail": "Miniatura podglądu pulpitu",
|
||||
"googleLogo": "Logo Google",
|
||||
"policyLogo": "Logo polityki"
|
||||
}
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Zaproś innych uczestników",
|
||||
"youAreAlone": "Tylko ty uczestniczysz w tym spotkaniu"
|
||||
@@ -877,6 +1121,8 @@
|
||||
"header": "Centrum pomocy"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Pozwól",
|
||||
"admitAll": "Pozwól wszystkim",
|
||||
"knockingParticipantList": "Oczekujący uczestnicy",
|
||||
"allow": "Zezwól",
|
||||
"backToKnockModeButton": "Brak hasła, poproś o dołączenie",
|
||||
@@ -889,6 +1135,7 @@
|
||||
"enableDialogText": "Lobby umożliwia zabezpieczenie spotkania przed dostępem niechcianych osób. Uczestnik może dołączyć do spotkania tylko po zaakceptowaniu przez moderatora.",
|
||||
"enterPasswordButton": "Hasło spotkania",
|
||||
"enterPasswordTitle": "Wprowadź hasło aby dołączyć",
|
||||
"errorMissingPassword": "Proszę wprowadź hasło do spotkania",
|
||||
"invalidPassword": "Nieprawidłowe hasło",
|
||||
"joiningMessage": "Dołączysz do spotkania po zaakceptowaniu Twojej prośby",
|
||||
"joinWithPasswordMessage": "Dołączanie z hasłem, proszę czekać...",
|
||||
@@ -907,6 +1154,7 @@
|
||||
"passwordField": "Wprowadź hasło",
|
||||
"passwordJoinButton": "Dołącz",
|
||||
"reject": "Odrzuć",
|
||||
"rejectAll": "Odrzuć wszystkich",
|
||||
"toggleLabel": "Włącz / Wyłącz lobby"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,9 +31,9 @@
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
"headphones": "Fones de ouvido",
|
||||
"headphones": "Auscultadores",
|
||||
"phone": "Telemóvel",
|
||||
"speaker": "Alto-falantes",
|
||||
"speaker": "Altifalante",
|
||||
"none": "Sem dispositivos de áudio disponíveis"
|
||||
},
|
||||
"audioOnly": {
|
||||
@@ -66,7 +66,8 @@
|
||||
"noMessagesMessage": "Ainda não há mensagens na reunião. Comece aqui uma conversa!",
|
||||
"nickname": {
|
||||
"popover": "Escolha um apelido",
|
||||
"title": "Introduza um apelido para usar no chat e nas sondagens"
|
||||
"title": "Introduza um apelido para usar no chat e nas sondagens",
|
||||
"titleWithPolls": "Introduza um apelido para usar no chat e nas sondagens"
|
||||
},
|
||||
"privateNotice": "Mensagem privada para {{recipient}}",
|
||||
"message": "Mensagem",
|
||||
@@ -78,8 +79,15 @@
|
||||
"polls": "Sondagens"
|
||||
},
|
||||
"title": "Chat e Sondagens",
|
||||
"titleWithPolls": "Chat e Sondagens",
|
||||
"you": "você"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
"installExtensionText": "Instalar a extensão para a integração Google Calendar e Office 365",
|
||||
"buttonText": "Instalar extensão do Chrome",
|
||||
"dontShowAgain": "Não me mostre isto outra vez",
|
||||
"close": "Fechar"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "A ligá-lo à reunião…"
|
||||
},
|
||||
@@ -93,27 +101,34 @@
|
||||
"DISCONNECTED": "Desligado",
|
||||
"DISCONNECTING": "A desligar",
|
||||
"ERROR": "Erro",
|
||||
"RECONNECTING": "Ocorreu um problema de rede. A religar..."
|
||||
"FETCH_SESSION_ID": "Obtenção da session-id...",
|
||||
"GET_SESSION_ID_ERROR": "Obter erro de session-id: {{code}}",
|
||||
"GOT_SESSION_ID": "Obtenção da session-id... Feito",
|
||||
"LOW_BANDWIDTH": "Vídeo para {{displayName}} foi desligada para poupar largura de banda"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Endereço:",
|
||||
"audio_ssrc": "Áudio SSRC:",
|
||||
"bandwidth": "Largura de banda estimada:",
|
||||
"bitrate": "Taxa de bits:",
|
||||
"bridgeCount": "Servidores: ",
|
||||
"codecs": "Codecs (A/V): ",
|
||||
"connectedTo": "Ligado a:",
|
||||
"e2e_rtt": "E2E RTT:",
|
||||
"framerate": "Taxa de frames:",
|
||||
"less": "Mostrar menos",
|
||||
"localaddress": "Endereço local:",
|
||||
"localaddress_plural": "Endereços locais:",
|
||||
"localport": "Porta local:",
|
||||
"localport_plural": "Portas locais:",
|
||||
"maxEnabledResolution": "enviar máx",
|
||||
"more": "Mostrar mais",
|
||||
"packetloss": "Perda de pacote:",
|
||||
"quality": {
|
||||
"good": "Boa",
|
||||
"inactive": "Inativo",
|
||||
"lost": "Perdido",
|
||||
"nonoptimal": "Não ótima",
|
||||
"nonoptimal": "Não é ótima",
|
||||
"poor": "Pobre"
|
||||
},
|
||||
"remoteaddress": "Endereço remoto:",
|
||||
@@ -121,9 +136,12 @@
|
||||
"remoteport": "Porta remota:",
|
||||
"remoteport_plural": "Portas remotas:",
|
||||
"resolution": "Resolução:",
|
||||
"savelogs": "Guardar registos",
|
||||
"participant_id": "Participante id:",
|
||||
"status": "Ligação:",
|
||||
"transport": "Transporte:",
|
||||
"transport_plural": "Transportes:"
|
||||
"transport_plural": "Transportes:",
|
||||
"video_ssrc": "Vídeo SSRC:"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Mais cedo",
|
||||
@@ -145,8 +163,8 @@
|
||||
"defaultLink": "ex.: {{url}}",
|
||||
"defaultNickname": "ex.: João Pedro",
|
||||
"deviceError": {
|
||||
"cameraError": "Falha ao aceder à sua câmera",
|
||||
"cameraPermission": "Erro ao obter permissão para a câmera",
|
||||
"cameraError": "Falha ao aceder à sua câmara",
|
||||
"cameraPermission": "Erro ao obter permissão para a câmara",
|
||||
"microphoneError": "Falha ao aceder ao seu microfone",
|
||||
"microphonePermission": "Erro ao obter permissão para o microfone"
|
||||
},
|
||||
@@ -193,7 +211,7 @@
|
||||
"dismiss": "Dispensar",
|
||||
"displayNameRequired": "Olá! Qual é o seu nome?",
|
||||
"done": "Feito",
|
||||
"e2eeDescription": "A encriptação de ponta a ponta é actualmente EXPERIMENTAL. Tenha em mente que ligar a encriptação de ponta a ponta irá efectivamente desactivar os serviços fornecidos do lado do servidor, tais como: gravação, transmissão em direto e participação telefónica. Tenha também em mente que o encontro só funcionará para pessoas que se juntem a partir de browsers com suporte para \"insertable streams\".",
|
||||
"e2eeDescription": "A encriptação de ponta a ponta é actualmente EXPERIMENTAL. Tenha em mente que ligar a encriptação de ponta a ponta irá efectivamente desactivar os serviços fornecidos do lado do servidor, tais como: participação telefónica. Tenha também em mente que o encontro só funcionará para pessoas que se juntem a partir de browsers com suporte para \"insertable streams\".",
|
||||
"e2eeLabel": "Habilitar encriptação de ponta a ponta",
|
||||
"e2eeWarning": "AVISO: Nem todos os participantes neste encontro parecem ter apoio para a encriptação de ponta a ponta. Se o permitir, eles não o poderão ver nem ouvir.",
|
||||
"enterDisplayName": "Digite o seu nome aqui",
|
||||
@@ -202,6 +220,7 @@
|
||||
"gracefulShutdown": "O nosso serviço está atualmente em manutenção. Por favor, tente novamente mais tarde.",
|
||||
"grantModeratorDialog": "Tem a certeza de que quer fazer deste participante um moderador?",
|
||||
"grantModeratorTitle": "Converter em moderador",
|
||||
"hideShareAudioHelper": "Não mostrar esta caixa de diálogo novamente",
|
||||
"IamHost": "Eu sou o anfitrião",
|
||||
"incorrectRoomLockPassword": "Palavra-passe incorreta",
|
||||
"incorrectPassword": "Nome de utilizador ou palavra-passe incorretos",
|
||||
@@ -242,18 +261,23 @@
|
||||
"muteEveryoneSelf": "você mesmo",
|
||||
"muteEveryoneStartMuted": "A partir de agora, toda a gente começa a ficar calada",
|
||||
"muteParticipantBody": "Não poderá reativá-los, mas eles podem reativar-se a qualquer momento.",
|
||||
"muteParticipantButton": "Mudo",
|
||||
"muteParticipantButton": "Silenciar",
|
||||
"muteParticipantDialog": "Tem a certeza de que quer silenciar este participante? Não poderá reativá-los, mas eles podem reativar-se a qualquer momento.",
|
||||
"muteParticipantsVideoDialog": "Tem a certeza de que quer desativar a câmara deste participante? Não poderá voltar a ativar a câmara, mas eles podem voltar a reativá-la a qualquer momento.",
|
||||
"muteParticipantTitle": "Silenciar este participante?",
|
||||
"muteParticipantsVideoButton": "Desativar a câmara",
|
||||
"muteParticipantsVideoTitle": "Desativar a câmara deste participante?",
|
||||
"muteParticipantsVideoBody": "Não poderá voltar a ligar a câmara, mas eles podem voltar a ligá-la a qualquer momento.",
|
||||
"noDropboxToken": "Nenhum token do Dropbox válido",
|
||||
"Ok": "OK",
|
||||
"password": "Palavra-passe",
|
||||
"passwordLabel": "A reunião foi encerrada por um participante. Por favor, introduza a $t(lockRoomPassword) para participar.",
|
||||
"passwordNotSupported": "A definição na reunião $t(lockRoomPassword) não é suportada.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) não é suportada.",
|
||||
"passwordRequired": "$t(lockRoomPasswordUppercase) necessário",
|
||||
"permissionErrorTitle": "Permissão necessária",
|
||||
"permissionCameraRequiredError": "É necessária a autorização da câmara para participar em conferências com vídeo. Por favor, conceda-a em Definições",
|
||||
"permissionMicRequiredError": "É necessária a permissão do microfone para participar em conferências com áudio. Por favor, conceda-a em Definições",
|
||||
"popupError": "O seu navegador está a bloquear janelas pop-up a partir deste site. Por favor, active os pop-ups nas definições de segurança do seu browser e tente novamente.",
|
||||
"popupErrorTitle": "Pop-up bloqueado",
|
||||
"readMore": "mais",
|
||||
@@ -287,6 +311,13 @@
|
||||
"sessTerminated": "Chamada terminada",
|
||||
"sessionRestarted": "Chamada reiniciada pela ponte",
|
||||
"Share": "Partilhar",
|
||||
"shareAudio": "Continuar",
|
||||
"shareAudioTitle" : "Como partilhar áudio",
|
||||
"shareAudioWarningTitle": "Tem de parar a partilha de ecrã antes de partilhar áudio",
|
||||
"shareAudioWarningH1": "Se quiser partilhar apenas áudio:",
|
||||
"shareAudioWarningD1": "precisa de parar a partilha do ecrã antes de partilhar o seu áudio.",
|
||||
"shareAudioWarningD2": "precisa de reiniciar a sua partilha de ecrã e verificar a opção \"partilhar áudio\".",
|
||||
"shareMediaWarningGenericH2": "Se quiser partilhar o seu ecrã e áudio",
|
||||
"shareVideoLinkError": "Por favor, forneça um link correcto do vídeo.",
|
||||
"shareVideoTitle": "Partilhar vídeo",
|
||||
"shareYourScreen": "Partilhe o seu ecrã",
|
||||
@@ -294,6 +325,10 @@
|
||||
"startLiveStreaming": "Iniciar a transmissão em direto",
|
||||
"startRecording": "Iniciar gravação",
|
||||
"startRemoteControlErrorMessage": "Ocorreu um erro ao tentar iniciar a sessão de controlo remoto!",
|
||||
"shareScreenWarningTitle": "Tem de parar a partilha de áudio antes de partilhar o seu ecrã",
|
||||
"shareScreenWarningH1": "Se quiser partilhar apenas o seu ecrã:",
|
||||
"shareScreenWarningD1": "precisa de parar a partilha de áudio antes de partilhar o seu ecrã.",
|
||||
"shareScreenWarningD2": "é necessário parar a partilha de áudio, iniciar a partilha de ecrã e verificar a opção \"partilhar áudio\".",
|
||||
"stopLiveStreaming": "Parar a transmissão em direto",
|
||||
"stopRecording": "Parar gravação",
|
||||
"stopRecordingWarning": "Tem a certeza de que gostaria de parar a gravação?",
|
||||
@@ -310,6 +345,9 @@
|
||||
"userIdentifier": "Identificador do utilizador",
|
||||
"userPassword": "Palavra-passe do utilizador",
|
||||
"videoLink": "Link do vídeo",
|
||||
"viewUpgradeOptions": "Ver opções de actualização",
|
||||
"viewUpgradeOptionsContent": "Para obter acesso ilimitado a funcionalidades premium como gravação, transcrições, RTMP Streaming & mais, terá de actualizar o seu plano.",
|
||||
"viewUpgradeOptionsTitle": "Descobriu uma característica premium!",
|
||||
"WaitForHostMsg": "A conferência <b>{{room}}</b> ainda não começou. Se for o anfitrião, por favor autentique. Caso contrário, por favor aguarde que o anfitrião chegue.",
|
||||
"WaitForHostMsgWOk": "A conferência <b>{{room}}</b> ainda não começou. Se for o anfitrião, por favor prima Ok para autenticar. Caso contrário, por favor aguarde que o anfitrião chegue.",
|
||||
"WaitingForHostTitle": "À espera do anfitrião ...",
|
||||
@@ -324,51 +362,88 @@
|
||||
"documentSharing": {
|
||||
"title": "Documento compartilhado"
|
||||
},
|
||||
"e2ee": {
|
||||
"labelToolTip": "A comunicação áudio e vídeo nesta chamada é encriptada de ponta a ponta"
|
||||
},
|
||||
"embedMeeting": {
|
||||
"title": "Incorporar esta reunião"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Aplicar",
|
||||
"title": "Planos de Fundo virtuais",
|
||||
"blur": "Desfocagem",
|
||||
"slightBlur": "Desfocagem ligeira",
|
||||
"removeBackground": "Remover imagem de fundo",
|
||||
"addBackground": "Adicionar imagem de fundo",
|
||||
"pleaseWait": "Por favor aguarde...",
|
||||
"none": "Nenhum",
|
||||
"uploadedImage": "Imagem carregada {{index}}",
|
||||
"deleteImage": "Apagar imagem",
|
||||
"image1" : "Praia",
|
||||
"image2" : "Parede branca neutra",
|
||||
"image3" : "Quarto branco vazio",
|
||||
"image4" : "Luminária preta",
|
||||
"image5" : "Montanha",
|
||||
"image6" : "Floresta ",
|
||||
"image7" : "Nascer do sol",
|
||||
"desktopShareError": "Não foi possível partilhar a área de trabalho",
|
||||
"desktopShare":"Partilhar área de trabalho",
|
||||
"webAssemblyWarning": "WebAssembly não suportado",
|
||||
"backgroundEffectError": "Falha ao aplicar efeito de fundo."
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Média",
|
||||
"bad": "Ruim",
|
||||
"detailsLabel": "Nos conte mais sobre isso.",
|
||||
"bad": "Má",
|
||||
"detailsLabel": "Conte-nos mais sobre isso.",
|
||||
"good": "Boa",
|
||||
"rateExperience": "Avalie sua experiência na reunião",
|
||||
"veryBad": "Muito ruim",
|
||||
"veryGood": "Muito boa"
|
||||
"veryBad": "Muito má",
|
||||
"veryGood": "Muito boa",
|
||||
"star": "Estrela"
|
||||
},
|
||||
"incomingCall": {
|
||||
"answer": "Responder",
|
||||
"audioCallTitle": "Chamada recebida",
|
||||
"decline": "Dispensar",
|
||||
"decline": "Recusar",
|
||||
"productLabel": "do Jitsi Meet",
|
||||
"videoCallTitle": "Chamada de vídeo recebida"
|
||||
},
|
||||
"info": {
|
||||
"accessibilityLabel": "Mostrar info",
|
||||
"addPassword": "Adicione $t(lockRoomPassword)",
|
||||
"cancelPassword": "Cancela $t(lockRoomPassword)",
|
||||
"accessibilityLabel": "Mostrar informação",
|
||||
"addPassword": "Adicionar $t(lockRoomPassword)",
|
||||
"cancelPassword": "Cancelar $t(lockRoomPassword)",
|
||||
"conferenceURL": "Link:",
|
||||
"country": "País",
|
||||
"dialANumber": "Para entrar na reunião, disque um desses números e depois insira o PIN.",
|
||||
"dialANumber": "Para se juntar à sua reunião, marque um destes números e depois introduza o PIN.",
|
||||
"dialInConferenceID": "PIN:",
|
||||
"dialInNotSupported": "Desculpe, a discagem não é atualmente suportada.",
|
||||
"dialInNumber": "Discar:",
|
||||
"dialInSummaryError": "Ocorreu um erro ao buscar a informação de discagem. Tente novamente mais tarde.",
|
||||
"dialInTollFree": "Chamada gratuita",
|
||||
"genericError": "Oops, alguma coisa deu errado.",
|
||||
"inviteLiveStream": "Para ver a transmissão em direto da reunião, clique no link: {{url}}",
|
||||
"invitePhone": "Para participar por telefone, toque aqui: {{number}} ,, {{conferenceID}} # \\ n",
|
||||
"invitePhoneAlternatives": "Procurando um número de discagem diferente?\nVeja os números de discagem da reunião: {{url}} \n\n\nSe você também estiver discando através de um telefone da sala, participe sem conectar-se ao áudio: {{silentUrl}}",
|
||||
"inviteURLFirstPartGeneral": "Você foi convidado para uma reunião.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} está convidando você para uma reunião.\n",
|
||||
"inviteURLSecondPart": "\nEntre na reunião:\n{{url}}\n",
|
||||
"copyNumber":"Copiar número",
|
||||
"dialInNotSupported": "Desculpe, a marcação telefónica não é de momento suportada.",
|
||||
"dialInNumber": "Marcar:",
|
||||
"dialInSummaryError": "Ocorreu um erro durante a captura de informação da marcação. Por favor, tente novamente mais tarde.",
|
||||
"dialInTollFree": "Ligação gratuita",
|
||||
"genericError": "Whoops, algo correu mal.",
|
||||
"inviteLiveStream": "Para ver a transmissão em direto desta reunião, clique neste link: {{url}}",
|
||||
"invitePhone": "Para entrar por telefone, toque aqui: {{number}},,{{conferenceID}}#\n",
|
||||
"invitePhoneAlternatives": "À procura de um número de telefone diferente?\nVeja os números de telefone da reunião: {{url}}\n\n\nSe ligar através de um telefone de quarto, junte-se com o microfone desligado: {{silentUrl}}",
|
||||
"inviteSipEndpoint": "Para entrar utilizando o endereço SIP, insira este: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} está a convidá-lo para uma reunião.",
|
||||
"inviteTextiOSJoinSilent": "Se ligar através de um telefone de quarto, utilize este link para entrar com o microfone desligado: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Clique no seguinte link para entrar: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "Para entrar através do telefone, utilize este número: {{number}},,{{conferenceID}}#. Se estiver à procura de um número diferente, esta é a lista completa: {{didUrl}}.",
|
||||
"inviteURLFirstPartGeneral": "Está convidado a entrar numa reunião.",
|
||||
"inviteURLFirstPartPersonal": "{{name}} está a convidá-lo para uma reunião.\n",
|
||||
"inviteURLSecondPart": "\nEntrar na reunião:\n{{url}}\n",
|
||||
"liveStreamURL": "Transmissão em direto:",
|
||||
"moreNumbers": "Mais números",
|
||||
"noNumbers": "Sem números de discagem.",
|
||||
"noNumbers": "Sem números de telefone.",
|
||||
"noPassword": "Nenhum",
|
||||
"noRoom": "Nenhuma sala foi especificada para entrar.",
|
||||
"numbers": "Números de discagem",
|
||||
"noRoom": "Não foi especificado nenhuma sala para ligar.",
|
||||
"numbers": "Números para entrar por chamada telefónica",
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"title": "Compartilhar",
|
||||
"tooltip": "Compartilhar link e discagem para esta reunião",
|
||||
"label": "Informações da reunião"
|
||||
"sip": "Endereços SIP",
|
||||
"title": "Partilhar",
|
||||
"tooltip": "Partilhar link e acesso telefónico para esta reunião",
|
||||
"label": "Informação da reunião"
|
||||
},
|
||||
"inviteDialog": {
|
||||
"alertText": "Não foi possível convidar alguns participantes.",
|
||||
@@ -384,6 +459,7 @@
|
||||
"support": "Suporte",
|
||||
"supportMsg": "Se isso continuar acontecendo, chegar a"
|
||||
},
|
||||
"jitsiHome": "Logo de {{logo}}, redireciona para página inicial",
|
||||
"keyboardShortcuts": {
|
||||
"focusLocal": "Focar no seu vídeo",
|
||||
"focusRemote": "Focar no vídeo de outro participante",
|
||||
@@ -402,6 +478,8 @@
|
||||
"videoMute": "Iniciar ou parar a sua câmara"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"limitNotificationDescriptionWeb": "Devido à grande procura, a sua transmissão será limitada a {{limit}} min. Para uma tentativa de streaming ilimitada tente <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "A sua transmissão será limitada a {{limit}} min. Para uma tentativa de streaming ilimitada tente {{app}}.",
|
||||
"busy": "Estamos trabalhando para liberar os recursos de transmissão. Tente novamente em alguns minutos.",
|
||||
"busyTitle": "Todas as transmissões estão atualmente ocupadas",
|
||||
"changeSignIn": "Alternar contas.",
|
||||
@@ -429,7 +507,9 @@
|
||||
"signOut": "Sair",
|
||||
"start": "Iniciar uma transmissão em direto",
|
||||
"streamIdHelp": "O que é isso?",
|
||||
"unavailableTitle": "Transmissão em direto indisponível"
|
||||
"unavailableTitle": "Transmissão em direto indisponível",
|
||||
"youtubeTerms": "Termos de serviços do YouTube",
|
||||
"googlePrivacyPolicy": "Política de Privacidade do Google"
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -462,41 +542,60 @@
|
||||
},
|
||||
"lockRoomPassword": "senha",
|
||||
"lockRoomPasswordUppercase": "Senha",
|
||||
"lonelyMeetingExperience": {
|
||||
"youAreAlone": "Você é o único na reunião",
|
||||
"button": "Convidar outros"
|
||||
},
|
||||
"me": "eu",
|
||||
"notify": {
|
||||
"connectedOneMember": "{{name}} entrou na reunião",
|
||||
"connectedThreePlusMembers": "{{name}} e outros {{count}} entraram na reunião",
|
||||
"connectedThreePlusMembers": "{{name}} e muitos outros entraram na reunião",
|
||||
"connectedTwoMembers": "{{first}} e {{second}} entraram na reunião",
|
||||
"disconnected": "desconectado",
|
||||
"focus": "Foco da conferência",
|
||||
"focusFail": "{{component}} não disponĩvel - tente em {{ms}} seg.",
|
||||
"grantedTo": "Direitos de moderador concedido para {{to}}!",
|
||||
"hostAskedUnmute": "O anfitrião deseja que você ative o som",
|
||||
"invitedOneMember": "{{displayName}} foi convidado",
|
||||
"invitedThreePlusMembers": "{{name}} e {{count}} outros foram convidados",
|
||||
"invitedTwoMembers": "{{first}} e {{second}} foram convidados",
|
||||
"kickParticipant": "{{kicked}} foi chutado por {{kicker}}",
|
||||
"kickParticipant": "{{kicked}} foi expulso por {{kicker}}",
|
||||
"me": "Eu",
|
||||
"moderator": "Direitos de moderador concedidos!",
|
||||
"muted": "Você iniciou uma conversa em mudo.",
|
||||
"mutedTitle": "Você está mudo!",
|
||||
"muted": "Você iniciou uma conversa com o microfone desativado.",
|
||||
"mutedTitle": "Você está silenciado!",
|
||||
"mutedRemotelyTitle": "Você foi silenciado por {{participantDisplayName}}!",
|
||||
"mutedRemotelyDescription": "Você sempre pode ativar o som quando estiver pronto para falar. Retire o som quando terminar para manter o ruído longe da reunião.",
|
||||
"mutedRemotelyDescription": "Pode sempre voltar a ativar o microfone quando estiver pronto para falar. Silencie de volta quando estiver pronto para manter o barulho afastado da reunião.",
|
||||
"videoMutedRemotelyTitle": "A sua câmara foi desactivada por {{participantDisplayName}}!",
|
||||
"videoMutedRemotelyDescription": "Pode sempre ligá-la novamente.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removido por outro participante",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) definido por outro participante",
|
||||
"raisedHand": "{{name}} gostaria de falar.",
|
||||
"screenShareNoAudio": " A caixa de compartilhar áudio não foi marcada no ecrã de seleção da janela.",
|
||||
"screenShareNoAudioTitle": "Não foi possível partilhar o áudio do sistema!",
|
||||
"somebody": "Alguém",
|
||||
"startSilentTitle": "Você entrou sem saída de áudio!",
|
||||
"startSilentDescription": "Volte à reunião para habilitar o áudio",
|
||||
"suboptimalBrowserWarning": "Tememos que sua experiência de reunião não seja tão boa aqui. Estamos procurando maneiras de melhorar isso, mas até então, tente usar um dos <a href='{{recommendedBrowserPageLink}}' target='_blank'>navegadores completamente suportados</a>.",
|
||||
"suboptimalExperienceTitle": "Alerta do navegador",
|
||||
"unmute": "Ativar som",
|
||||
"newDeviceCameraTitle": "Nova câmera detectada",
|
||||
"newDeviceAudioTitle": "Novo dispositivo de áudio detectado",
|
||||
"newDeviceAction": "Usar"
|
||||
"newDeviceCameraTitle": "Nova câmara detetada",
|
||||
"newDeviceAudioTitle": "Novo dispositivo de áudio detetado",
|
||||
"newDeviceAction": "Usar",
|
||||
"OldElectronAPPTitle": "Vulnerabilidade de segurança!",
|
||||
"oldElectronClientDescription1": "Parece estar a utilizar uma versão antiga do cliente Jitsi Meet que tem vulnerabilidades de segurança conhecidas. Por favor, certifique-se de que actualiza a nossa ",
|
||||
"oldElectronClientDescription2": "compilação mais recente",
|
||||
"oldElectronClientDescription3": " agora!",
|
||||
"moderationInEffectDescription": "Por favor, levante a mão se quiser falar",
|
||||
"moderationInEffectCSDescription": "Por favor, levante a mão se quiser partilhar o seu vídeo",
|
||||
"moderationInEffectVideoDescription": "Por favor, levante a mão se quiser que o seu vídeo seja visível",
|
||||
"moderationInEffectTitle": "O microfone foi silenciado pelo moderador",
|
||||
"moderationInEffectCSTitle": "A partilha de conteúdos foi desativada pelo moderador",
|
||||
"moderationInEffectVideoTitle": "O vídeo foi desativado pelo moderador",
|
||||
"moderationRequestFromModerator": "O anfitrião deseja que você ative o som",
|
||||
"moderationRequestFromParticipant": "Quer falar",
|
||||
"moderationStartedTitle": "Início da moderação",
|
||||
"moderationStoppedTitle": "A moderação parou",
|
||||
"moderationToggleDescription": "pelo {{participantDisplayName}}",
|
||||
"raiseHandAction": "Levantar a mão",
|
||||
"reactionSounds": "Desactivar sons",
|
||||
"groupTitle": "Notificações"
|
||||
},
|
||||
"participantsPane": {
|
||||
"close": "Fechar",
|
||||
@@ -624,6 +723,7 @@
|
||||
"ringing": "Tocando..."
|
||||
},
|
||||
"profile": {
|
||||
"avatar": "avatar",
|
||||
"setDisplayNameLabel": "Definir seu nome de exibição",
|
||||
"setEmailInput": "Digite e-mail",
|
||||
"setEmailLabel": "Definir seu email de gravatar",
|
||||
@@ -631,18 +731,23 @@
|
||||
},
|
||||
"raisedHand": "Gostaria de falar",
|
||||
"recording": {
|
||||
"limitNotificationDescriptionWeb": "Devido à grande procura, a sua gravação será limitada a {{limit}} min. For unlimited recordings try <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Due to high demand your recording will be limited to {{limit}} min. Para gravações ilimitadas tente <3>{{app}}</3>.",
|
||||
"authDropboxText": "Enviar para o Dropbox.",
|
||||
"availableSpace": "Espaço disponível: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de gravação)",
|
||||
"beta": "BETA",
|
||||
"busy": "Estamos trabalhando para liberar recursos de gravação. Tente novamente em alguns minutos.",
|
||||
"busyTitle": "Todas as gravações estão atualmente ocupadas",
|
||||
"copyLink": "Copiar Link",
|
||||
"error": "A gravação falhou. Tente novamente.",
|
||||
"errorFetchingLink": "Erro ao procurar link da gravação.",
|
||||
"expandedOff": "Gravação finalizada",
|
||||
"expandedOn": "A reunião está sendo gravada.",
|
||||
"expandedPending": "Iniciando gravação...",
|
||||
"failedToStart": "Falha ao iniciar a gravação",
|
||||
"fileSharingdescription": "Compartilhar gravação com participantes da reunião",
|
||||
"live": "EM DIRETO",
|
||||
"linkGenerated": "Gerámos um link para a sua gravação.",
|
||||
"live": "DIRETO",
|
||||
"loggedIn": "Conectado como {{userName}}",
|
||||
"off": "Gravação parada",
|
||||
"offBy": "{{name}} parou a gravação",
|
||||
@@ -651,11 +756,13 @@
|
||||
"pending": "Preparando para gravar a reunião...",
|
||||
"rec": "REC",
|
||||
"serviceDescription": "Sua gravação será salva pelo serviço de gravação",
|
||||
"serviceDescriptionCloud": "Gravação na nuvem",
|
||||
"serviceName": "Serviço de gravação",
|
||||
"signIn": "Entrar",
|
||||
"signOut": "Sair",
|
||||
"unavailable": "Oops! O {{serviceName}} está indisponível. Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.",
|
||||
"unavailableTitle": "Gravação indisponível"
|
||||
"unavailableTitle": "Gravação indisponível",
|
||||
"uploadToCloud": "Enviar para a nuvem"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Puxe para atualizar"
|
||||
@@ -680,7 +787,7 @@
|
||||
"devices": "Dispositivos",
|
||||
"followMe": "Todos me seguem",
|
||||
"framesPerSecond": "fotogramas-por-segundo",
|
||||
"incomingMessage": "Receber mensagem",
|
||||
"incomingMessage": "Receber uma mensagem",
|
||||
"language": "Idioma",
|
||||
"loggedIn": "Sessão iniciada como {{name}}",
|
||||
"microphones": "Microfones",
|
||||
@@ -688,9 +795,10 @@
|
||||
"more": "Mais",
|
||||
"name": "Nome",
|
||||
"noDevice": "Nenhum",
|
||||
"participantJoined": "Entrar participante",
|
||||
"participantLeft": "Sair participante",
|
||||
"participantJoined": "Entrar um participante",
|
||||
"participantLeft": "Sair um participante",
|
||||
"playSounds": "Reproduzir som quando",
|
||||
"reactions": "Expressarem uma reação",
|
||||
"sameAsSystem": "O mesmo que o sistema ({{label}})",
|
||||
"selectAudioOutput": "Saída de áudio",
|
||||
"selectCamera": "Câmara",
|
||||
@@ -703,14 +811,17 @@
|
||||
"title": "Definições"
|
||||
},
|
||||
"settingsView": {
|
||||
"advanced": "",
|
||||
"advanced": "Avançado",
|
||||
"alertOk": "OK",
|
||||
"alertCancel": "Cancelar",
|
||||
"alertTitle": "Atenção",
|
||||
"alertURLText": "A URL digitada do servidor é inválida",
|
||||
"buildInfoSection": "Informações de compilação",
|
||||
"conferenceSection": "Conferência",
|
||||
"disableCallIntegration": "",
|
||||
"disableP2P": "",
|
||||
"disableCallIntegration": "Desactivar a integração de chamadas nativas",
|
||||
"disableP2P": "Desactivar o modo Peer-To-Peer",
|
||||
"disableCrashReporting": "Desativar relatório de falhas",
|
||||
"disableCrashReportingWarning": "Tem a certeza de que quer desativar o relatório de falhas? A configuração será aplicada depois de reiniciar a aplicação.",
|
||||
"displayName": "Nome de exibição",
|
||||
"email": "E-mail",
|
||||
"header": "Configurações",
|
||||
@@ -727,6 +838,7 @@
|
||||
},
|
||||
"speaker": "Participante",
|
||||
"speakerStats": {
|
||||
"search": "Pesquisar",
|
||||
"hours": "{{count}}h",
|
||||
"minutes": "{{count}}m",
|
||||
"name": "Nome",
|
||||
@@ -745,123 +857,146 @@
|
||||
"title": "Sua chamada de vídeo foi interrompida, porque seu computador foi dormir."
|
||||
},
|
||||
"toolbar": {
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Mudar para apenas áudio",
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Mudar para apenas áudio",
|
||||
"audioRoute": "Selecionar o dispositivo de som",
|
||||
"boo": "Vaia",
|
||||
"callQuality": "Gerir a qualidade do vídeo",
|
||||
"cc": "Mudar legendas",
|
||||
"chat": "Abrir / Fechar chat",
|
||||
"clap": "Aplausos",
|
||||
"document": "Mudar para documento partilhado",
|
||||
"download": "Descarregar as nossas aplicações",
|
||||
"embedMeeting": "Reunião incorporada",
|
||||
"feedback": "Deixar comentários",
|
||||
"fullScreen": "Mudar para ecrã completo",
|
||||
"grantModerator": "Converter em moderador",
|
||||
"hangup": "Sair da reunião",
|
||||
"help": "Ajuda",
|
||||
"invite": "Convidar pessoas",
|
||||
"kick": "Remover participante",
|
||||
"laugh": "Risos",
|
||||
"like": "Aprovado",
|
||||
"lobbyButton": "Ativar/desativar sala de espera",
|
||||
"localRecording": "Mudar os controlos locais de gravação",
|
||||
"lockRoom": "Mudar palavra-chave de reunião",
|
||||
"moreActions": "Mais ações",
|
||||
"moreActionsMenu": "Menu de mais ações",
|
||||
"moreOptions": "Mostrar mais opções",
|
||||
"mute": "Ativar / Desativar microfone",
|
||||
"muteEveryone": "Silenciar a todos",
|
||||
"muteEveryoneElse": "Silenciar todos os outros",
|
||||
"muteEveryonesVideo": "Desativar a câmara de todos",
|
||||
"muteEveryoneElsesVideo": "Desativar a câmara de todos os outros",
|
||||
"participants": "Participantes",
|
||||
"pip": "Mudar para o modo Picture-in-Picture",
|
||||
"privateMessage": "Enviar mensagem privada",
|
||||
"profile": "Editar o seu perfil",
|
||||
"raiseHand": "Levantar / Baixar a mão",
|
||||
"reactionsMenu": "Abrir / Fechar menu de reações",
|
||||
"recording": "Mudar gravação",
|
||||
"remoteMute": "Participante sem som",
|
||||
"remoteVideoMute": "Desativar a câmara do participante",
|
||||
"security": "Opções de segurança",
|
||||
"Settings": "Mudar configurações",
|
||||
"shareaudio": "Partilhar áudio",
|
||||
"sharedvideo": "Mudar a partilha de vídeos do YouTube",
|
||||
"shareRoom": "Convidar alguém",
|
||||
"shareYourScreen": "Iniciar / Parar partilha de ecrã",
|
||||
"shortcuts": "Mostrar / Esconder atalhos",
|
||||
"show": "Mostrar no palco",
|
||||
"silence": "Silêncio",
|
||||
"speakerStats": "Mostrar / Esconder estatísticas dos participantes",
|
||||
"surprised": "Surpreendido",
|
||||
"tileView": "Mudar a vista em quadrícula",
|
||||
"toggleCamera": "Mudar a câmara",
|
||||
"toggleFilmstrip": "Mudar a película de filme",
|
||||
"videomute": "Iniciar / Parar câmara",
|
||||
"videoblur": "Mudar o desfoque de vídeo",
|
||||
"selectBackground": "Selecionar plano de fundo",
|
||||
"expand": "Expandir",
|
||||
"collapse": "Colapsar"
|
||||
},
|
||||
"addPeople": "Adicione pessoas à sua chamada",
|
||||
"audioSettings": "Definições de áudio",
|
||||
"videoSettings": "Definições de vídeo",
|
||||
"audioOnlyOff": "Desativar modo de largura de banda baixa",
|
||||
"audioOnlyOn": "Ativar modo de largura de banda baixa",
|
||||
"audioRoute": "Selecionar o dispositivo de som",
|
||||
"authenticate": "Autenticar",
|
||||
"boo": "Vaia",
|
||||
"callQuality": "Gerir a qualidade do vídeo",
|
||||
"cc": "Mudar legendas",
|
||||
"chat": "Abrir / Fechar chat",
|
||||
"document": "Mudar para documento partilhado",
|
||||
"clap": "Aplausos",
|
||||
"closeChat": "Fechar chat",
|
||||
"closeReactionsMenu": "Fechar menu de reações",
|
||||
"disableReactionSounds": "Pode desactivar os sons de reacção para esta reunião",
|
||||
"documentClose": "Fechar documento partilhado",
|
||||
"documentOpen": "Abrir documento partilhado",
|
||||
"download": "Descarregar as nossas aplicações",
|
||||
"embedMeeting": "Reunião incorporada",
|
||||
"e2ee": "Criptografia ponta a ponta",
|
||||
"embedMeeting": "Incorporar reunião",
|
||||
"enterFullScreen": "Ver em ecrã completo",
|
||||
"enterTileView": "Ver em quadrícula",
|
||||
"exitFullScreen": "Sair de ecrã completo",
|
||||
"exitTileView": "Sair de quadrícula",
|
||||
"feedback": "Deixar comentários",
|
||||
"fullScreen": "Mudar para ecrã completo",
|
||||
"grantModerator": "Converter em moderador",
|
||||
"hangup": "Sair da reunião",
|
||||
"help": "Ajuda",
|
||||
"invite": "Convidar pessoas",
|
||||
"kick": "Remover participante",
|
||||
"lobbyButton": "Ativar/desativar sala de espera",
|
||||
"localRecording": "Mudar os controlos locais de gravação",
|
||||
"lockRoom": "Mudar palavra-chave de reunião",
|
||||
"laugh": "Risos",
|
||||
"like": "Aprovado",
|
||||
"lobbyButtonDisable": "Desativar sala de espera",
|
||||
"lobbyButtonEnable": "Ativar sala de espera",
|
||||
"login": "Iniciar sessão",
|
||||
"logout": "Encerrar sessão",
|
||||
"lowerYourHand": "Baixar a mão",
|
||||
"moreActions": "Mais ações",
|
||||
"moreActionsMenu": "Menu de mais ações",
|
||||
"moreOptions": "Mostrar mais opções",
|
||||
"moreOptions": "Mais opções",
|
||||
"mute": "Ativar / Desativar microfone",
|
||||
"muteEveryone": "Silenciar a todos",
|
||||
"muteEveryoneElse": "Silenciar todos os outros",
|
||||
"muteEveryone": "Silenciar todos",
|
||||
"muteEveryonesVideo": "Desativar a câmara de todos",
|
||||
"muteEveryoneElsesVideo": "Desativar a câmara de todos os outros",
|
||||
"noAudioSignalTitle": "Não há nenhuma entrada vinda do seu microfone!",
|
||||
"noAudioSignalDesc": "Se não o silenciou propositadamente a partir de configurações do sistema ou hardware, considere mudar de dispositivo.",
|
||||
"noAudioSignalDescSuggestion": "Se não o silenciou propositadamente a partir das configurações do sistema ou hardware, considere mudar para o dispositivo sugerido.",
|
||||
"noAudioSignalDialInDesc": "Também pode marcar usando:",
|
||||
"noAudioSignalDialInLinkDesc": "Números de marcação",
|
||||
"noisyAudioInputTitle": "Seu microfone parece estar barulhento!",
|
||||
"noisyAudioInputDesc": "Parece que o seu microfone está a fazer barulho, por favor considere silenciar ou mudar de dispositivo.",
|
||||
"openChat": "Abrir chat",
|
||||
"openReactionsMenu": "Abrir menu de reações",
|
||||
"participants": "Participantes",
|
||||
"pip": "Mudar para o modo Picture-in-Picture",
|
||||
"pip": "Entrar no modo Picture-in-Picture",
|
||||
"privateMessage": "Enviar mensagem privada",
|
||||
"profile": "Editar o seu perfil",
|
||||
"raiseHand": "Levantar / Baixar a mão",
|
||||
"recording": "Mudar gravação",
|
||||
"remoteMute": "Participante sem som",
|
||||
"remoteVideoMute": "Desativar a câmara do participante",
|
||||
"raiseYourHand": "Levantar a mão",
|
||||
"reactionBoo": "Enviar reação de vaia",
|
||||
"reactionClap": "Enviar reação de aplausos",
|
||||
"reactionLaugh": "Enviar reação de risos",
|
||||
"reactionLike": "Enviar reação de aprovado",
|
||||
"reactionSilence": "Enviar reação de silêncio",
|
||||
"reactionSurprised": "Enviar reação de surpreendido",
|
||||
"security": "Opções de segurança",
|
||||
"Settings": "Mudar configurações",
|
||||
"Settings": "Definições",
|
||||
"shareaudio": "Partilhar áudio",
|
||||
"sharedvideo": "Mudar a partilha de vídeos do YouTube",
|
||||
"sharedvideo": "Partilhar vídeo",
|
||||
"shareRoom": "Convidar alguém",
|
||||
"shareYourScreen": "Iniciar / Parar partilha de ecrã",
|
||||
"shortcuts": "Mostrar / Esconder atalhos",
|
||||
"show": "Mostrar no palco",
|
||||
"speakerStats": "Mostrar / Esconder estatísticas dos participantes",
|
||||
"tileView": "Mudar para vista em quadrícula",
|
||||
"shortcuts": "Ver atalhos",
|
||||
"silence": "Silêncio",
|
||||
"speakerStats": "Estatísticas dos participantes",
|
||||
"startScreenSharing": "Iniciar partilha de ecrã",
|
||||
"startSubtitles": "Iniciar legendas",
|
||||
"stopAudioSharing": "Parar partilha de áudio",
|
||||
"stopScreenSharing": "Parar partilha de ecrã",
|
||||
"stopSubtitles": "Parar legendas",
|
||||
"stopSharedVideo": "Parar vídeo do YouTube",
|
||||
"surprised": "Surpreendido",
|
||||
"talkWhileMutedPopup": "Está a tentar falar? Está com o microfone desativado.",
|
||||
"tileViewToggle": "Mudar para vista em quadrícula",
|
||||
"toggleCamera": "Mudar a câmara",
|
||||
"toggleFilmstrip": "Mudar para película de filme",
|
||||
"videomute": "Iniciar / Parar câmara",
|
||||
"videoblur": "Mudar o desfoque de vídeo",
|
||||
"selectBackground": "Selecionar plano de fundo",
|
||||
"expand": "Expandir",
|
||||
"collapse": "Colapsar"
|
||||
},
|
||||
"addPeople": "Adicione pessoas à sua chamada",
|
||||
"audioSettings": "Definições de áudio",
|
||||
"videoSettings": "Definições de vídeo",
|
||||
"audioOnlyOff": "Desativar modo de largura de banda baixa",
|
||||
"audioOnlyOn": "Ativar modo de largura de banda baixa",
|
||||
"audioRoute": "Selecionar o dispositivo de som",
|
||||
"authenticate": "Autenticar",
|
||||
"callQuality": "Gerir a qualidade do vídeo",
|
||||
"chat": "Abrir / Fechar chat",
|
||||
"closeChat": "Fechar chat",
|
||||
"documentClose": "Fechar documento partilhado",
|
||||
"documentOpen": "Abrir documento partilhado",
|
||||
"download": "Descarregar as nossas aplicações",
|
||||
"e2ee": "Criptografia ponta a ponta",
|
||||
"embedMeeting": "Incorporar reunião",
|
||||
"enterFullScreen": "Ver em ecrã completo",
|
||||
"enterTileView": "Ver em quadrícula",
|
||||
"exitFullScreen": "Sair de ecrã completo",
|
||||
"exitTileView": "Sair de quadrícula",
|
||||
"feedback": "Deixar comentários",
|
||||
"hangup": "Sair da reunião",
|
||||
"help": "Ajuda",
|
||||
"invite": "Convidar pessoas",
|
||||
"lobbyButtonDisable": "Desativar sala de espera",
|
||||
"lobbyButtonEnable": "Ativar sala de espera",
|
||||
"login": "Iniciar sessão",
|
||||
"logout": "Encerrar sessão",
|
||||
"lowerYourHand": "Baixar a mão",
|
||||
"moreActions": "Mais ações",
|
||||
"moreOptions": "Mais opções",
|
||||
"mute": "Ativar / Desativar microfone",
|
||||
"muteEveryone": "Silenciar todos",
|
||||
"muteEveryonesVideo": "Desativar a câmara de todos",
|
||||
"noAudioSignalTitle": "Não há nenhuma entrada vinda do seu microfone!",
|
||||
"noAudioSignalDesc": "Se não o silenciou propositadamente a partir de configurações do sistema ou hardware, considere mudar de dispositivo.",
|
||||
"noAudioSignalDescSuggestion": "Se não o silenciou propositadamente a partir das configurações do sistema ou hardware, considere mudar para o dispositivo sugerido.",
|
||||
"noAudioSignalDialInDesc": "Também pode marcar usando:",
|
||||
"noAudioSignalDialInLinkDesc": "Números de marcação",
|
||||
"noisyAudioInputTitle": "Seu microfone parece estar barulhento!",
|
||||
"noisyAudioInputDesc": "Parece que o seu microfone está a fazer barulho, por favor considere silenciar ou mudar de dispositivo.",
|
||||
"openChat": "Abrir chat",
|
||||
"participants": "Participantes",
|
||||
"pip": "Entrar no modo Picture-in-Picture",
|
||||
"privateMessage": "Enviar mensagem privada",
|
||||
"profile": "Editar o seu perfil",
|
||||
"raiseHand": "Levantar / Baixar a mão",
|
||||
"raiseYourHand": "Levantar a mão",
|
||||
"security": "Opções de segurança",
|
||||
"Settings": "Definições",
|
||||
"shareaudio": "Partilhar áudio",
|
||||
"sharedvideo": "Partilhar vídeo",
|
||||
"shareRoom": "Convidar alguém",
|
||||
"shortcuts": "Ver atalhos",
|
||||
"speakerStats": "Estatísticas dos participantes",
|
||||
"startScreenSharing": "Iniciar partilha de ecrã",
|
||||
"startSubtitles": "Iniciar legendas",
|
||||
"stopScreenSharing": "Parar partilha de ecrã",
|
||||
"stopSubtitles": "Parar legendas",
|
||||
"stopSharedVideo": "Parar vídeo do YouTube",
|
||||
"talkWhileMutedPopup": "Está a tentar falar? Está com o som desligado.",
|
||||
"tileViewToggle": "Mudar para vista em quadrícula",
|
||||
"toggleCamera": "Mudar a câmara",
|
||||
"videomute": "Iniciar / Parar câmara",
|
||||
"selectBackground": "Selecionar plano de fundo"
|
||||
"selectBackground": "Selecionar plano de fundo"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Iniciar/parar legendas",
|
||||
@@ -876,30 +1011,31 @@
|
||||
"tr": "TR"
|
||||
},
|
||||
"userMedia": {
|
||||
"androidGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"chromeGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"edgeGrantPermissions": "Selecione <b><i>Sim</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"electronGrantPermissions": "Dê as permissões para usar sua câmera e microfone",
|
||||
"firefoxGrantPermissions": "Selecione <b><i>Compartilhar Dispositivos Selecionados</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"iexplorerGrantPermissions": "Selecione <b><i>OK</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"nwjsGrantPermissions": "Dê as permissões para usar sua câmera e microfone",
|
||||
"operaGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"react-nativeGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"safariGrantPermissions": "Selecione <b><i>OK</i></b> quando seu navegador perguntar pelas permissões."
|
||||
"androidGrantPermissions": "Selecione <b><i>Permitir</i></b> quando o seu navegador perguntar pelas permissões.",
|
||||
"chromeGrantPermissions": "Selecione <b><i>Permitir</i></b> quando o seu navegador perguntar pelas permissões.",
|
||||
"edgeGrantPermissions": "Selecione <b><i>Sim</i></b> quando o seu navegador perguntar pelas permissões.",
|
||||
"electronGrantPermissions": "Dê as permissões para usar a sua câmara e microfone",
|
||||
"firefoxGrantPermissions": "Selecione <b><i>Partilhar Dispositivos Selecionados</i></b> quando o seu navegador perguntar pelas permissões.",
|
||||
"iexplorerGrantPermissions": "Selecione <b><i>OK</i></b> quando o seu navegador perguntar pelas permissões.",
|
||||
"nwjsGrantPermissions": "Dê as permissões para usar a sua câmara e microfone",
|
||||
"operaGrantPermissions": "Selecione <b><i>Permitir</i></b> quando o seu navegador perguntar pelas permissões.",
|
||||
"react-nativeGrantPermissions": "Selecione <b><i>Permitir</i></b> quando o seu navegador perguntar pelas permissões.",
|
||||
"safariGrantPermissions": "Selecione <b><i>OK</i></b> quando o seu navegador perguntar pelas permissões."
|
||||
},
|
||||
"volumeSlider": "Controlo de volume",
|
||||
"videoSIPGW": {
|
||||
"busy": "Estamos trabalhando para liberar recursos. Por favor, tente novamente em alguns minutos.",
|
||||
"busy": "Estamos a trabalhar para liberar recursos. Por favor, tente novamente em alguns minutos.",
|
||||
"busyTitle": "O serviço da sala está ocupado",
|
||||
"errorAlreadyInvited": "{{displayName}} já convidado",
|
||||
"errorInvite": "A conferência ainda não foi estabelecida. Por favor, tente mais tarde.",
|
||||
"errorInviteFailed": "Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.",
|
||||
"errorInviteFailed": "Estamos a trabalhar para resolver o problema. Por favor, tente mais tarde.",
|
||||
"errorInviteFailedTitle": "Convite para {{displayName}} falhou",
|
||||
"errorInviteTitle": "Erro no convite da sala",
|
||||
"pending": "{{displayName}} foi convidado"
|
||||
},
|
||||
"videoStatus": {
|
||||
"audioOnly": "AUD",
|
||||
"audioOnlyExpanded": "Você está em modo de banda baixa. Neste modo, se recebe somente áudio e compartilhamento de tela.",
|
||||
"audioOnlyExpanded": "Está em modo de baixa largura de banda. Neste modo, receberá apenas partilha de áudio e ecrã.",
|
||||
"callQuality": "Qualidade de vídeo",
|
||||
"hd": "HD",
|
||||
"hdTooltip": "Ver vídeo em alta definição",
|
||||
@@ -909,8 +1045,6 @@
|
||||
"ld": "LD",
|
||||
"ldTooltip": "Ver vídeo em baixa definição",
|
||||
"lowDefinition": "Baixa definição (LD)",
|
||||
"onlyAudioAvailable": "Somente áudio disponível",
|
||||
"onlyAudioSupported": "Suportamos somente áudio neste navegador.",
|
||||
"sd": "SD",
|
||||
"sdTooltip": "Ver vídeo em definição padrão",
|
||||
"standardDefinition": "Definição padrão"
|
||||
@@ -927,39 +1061,65 @@
|
||||
"moderator": "Moderador",
|
||||
"mute": "Participante está sem som",
|
||||
"muted": "Sem som",
|
||||
"videomute": "O participante parou a câmara",
|
||||
"videoMuted": "Câmara desativada",
|
||||
"remoteControl": "Iniciar / Parar controlo remoto",
|
||||
"show": "Mostrar no palco"
|
||||
"show": "Mostrar no palco",
|
||||
"videomute": "O participante parou a câmara"
|
||||
},
|
||||
"welcomepage": {
|
||||
"addMeetingName": "AAdicionar nome da reunião",
|
||||
"accessibilityLabel": {
|
||||
"join": "Toque para entrar",
|
||||
"roomname": "Digite o nome da sala"
|
||||
},
|
||||
"appDescription": "Vá em frente, converse por vídeo com toda a equipe. De fato, convide todos que você conhece. {{app}} é uma solução de videoconferência totalmente criptografada e 100% de código aberto que você pode usar todos os dias, a cada dia, gratuitamente — sem necessidade de conta.",
|
||||
"appDescription": "Vá em frente, converse por vídeo com toda a equipa. Na verdade, convide todos os que conhece. {{app}} é uma solução de videoconferência totalmente criptografada e 100% de código aberto que você pode usar todos os dias, a cada dia, gratuitamente — sem necessidade de conta.",
|
||||
"audioVideoSwitch": {
|
||||
"audio": "Voz",
|
||||
"video": "Vídeo"
|
||||
},
|
||||
"calendar": "Calendário",
|
||||
"connectCalendarButton": "Conectar seu calendário",
|
||||
"connectCalendarText": "Conecte seu calendário para ver todas as reuniões em {{app}}. Além disso, adicione reuniões de {{provider}} ao seu calendário e inicie-as com apenas um clique.",
|
||||
"connectCalendarText": "Conecte o seu calendário para ver todas as reuniões em {{app}}. Além disso, adicione reuniões de {{provider}} ao seu calendário e inicie-as com apenas um clique.",
|
||||
"enterRoomTitle": "Iniciar uma nova reunião",
|
||||
"roomNameAllowedChars": "Nome da reunião não deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.",
|
||||
"getHelp": "Obter ajuda",
|
||||
"go": "IR",
|
||||
"goSmall": "IR",
|
||||
"join": "",
|
||||
"headerTitle": "Jitsi Meet",
|
||||
"headerSubtitle": "Reuniões com segurança e alta qualidade",
|
||||
"info": "Informações",
|
||||
"join": "CRIAR / ENTRAR",
|
||||
"jitsiOnMobile": "Jitsi em dispositivos móveis – descarregue as nossas aplicações e inicie uma reunião em qualquer lugar",
|
||||
"mobileDownLoadLinkIos": "Descarregar aplicação móvel para iOS",
|
||||
"mobileDownLoadLinkAndroid": "Descarregar aplicação móvel para Android",
|
||||
"mobileDownLoadLinkFDroid": "Descarregar aplicação móvel para F-Droid",
|
||||
"moderatedMessage": "Ou <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">reserve um URL de reunião</a> com antecedência onde é o único moderador.",
|
||||
"privacy": "Política de Privacidade",
|
||||
"recentList": "Recente",
|
||||
"recentListDelete": "Remover",
|
||||
"recentListEmpty": "Sua lista recente está vazia. As reuniões que você realizar serão exibidas aqui.",
|
||||
"reducedUIText": "Bem-vindo ao {{app}}!",
|
||||
"roomNameAllowedChars": "Nome da reunião não deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.",
|
||||
"roomname": "Digite o nome da sala",
|
||||
"roomnameHint": "Digite o nome ou a URL da sala que você deseja entrar. Você pode digitar um nome, e apenas deixe para as pessoas que você quer se reunir digitem o mesmo nome.",
|
||||
"roomnameHint": "Digite o nome ou URL da sala a que pretende entrar. Pode inventar um nome, basta informar as pessoas com quem se vai encontrar para que entrem com o mesmo nome.",
|
||||
"sendFeedback": "Enviar comentários",
|
||||
"startMeeting": "Iniciar reunião",
|
||||
"terms": "Termos",
|
||||
"title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas"
|
||||
"title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas",
|
||||
"logo":{
|
||||
"calendar": "Logo do Calendário",
|
||||
"microsoftLogo": "Logo da Microsoft",
|
||||
"logoDeepLinking": "Logo do Jitsi Meet",
|
||||
"desktopPreviewThumbnail": "Miniatura de Visualização do Desktop",
|
||||
"googleLogo": "Logo do Google",
|
||||
"policyLogo": "Logo da Política de Privacidade"
|
||||
}
|
||||
},
|
||||
"lonelyMeetingExperience": {
|
||||
"button": "Convidar outros",
|
||||
"youAreAlone": "É o único na reunião"
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Centro de ajuda"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Aceitar",
|
||||
|
||||
@@ -66,10 +66,12 @@
|
||||
"noMessagesMessage": "Não há mensagens na reunião ainda. Inicie uma conversa aqui!",
|
||||
"nickname": {
|
||||
"popover": "Escolha um apelido",
|
||||
"title": "Digite um apelido para usar o bate-papo"
|
||||
"title": "Digite um apelido para usar o bate-papo",
|
||||
"titleWithPolls": "Digite um apelido para usar o bate-papo"
|
||||
},
|
||||
"privateNotice": "Mensagem privada para {{recipient}}",
|
||||
"title": "Bate-papo",
|
||||
"titleWithPolls": "Bate-papo",
|
||||
"you": "você",
|
||||
"message": "Mensagem",
|
||||
"messageAccessibleTitle": "{{user}} disse:",
|
||||
|
||||
@@ -50,9 +50,11 @@
|
||||
"messagebox": "Scrieți mesajul",
|
||||
"nickname": {
|
||||
"popover": "Alegeți un pseudonim",
|
||||
"title": "Introduceți un pseudonim pentru a conversa"
|
||||
"title": "Introduceți un pseudonim pentru a conversa",
|
||||
"titleWithPolls": "Introduceți un pseudonim pentru a conversa"
|
||||
},
|
||||
"title": "Apel video",
|
||||
"titleWithPolls": "Apel video",
|
||||
"you": "",
|
||||
"privateNotice": "",
|
||||
"noMessagesMessage": "",
|
||||
|
||||
@@ -67,11 +67,13 @@
|
||||
"messagebox": "Введите сообщение",
|
||||
"nickname": {
|
||||
"popover": "Выберите имя",
|
||||
"title": "Введите имя для использования чата"
|
||||
"title": "Введите имя для использования чата",
|
||||
"titleWithPolls": "Введите имя для использования чата"
|
||||
},
|
||||
"noMessagesMessage": "В конференции пока нет никаких сообщений. Начните разговор!",
|
||||
"privateNotice": "Личное сообщение пользователю {{recipient}}",
|
||||
"title": "Чат",
|
||||
"titleWithPolls": "Чат",
|
||||
"you": "вы"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
"noMessagesMessage": "Perunu messàgiu ancora in sa riunione. Cumintza una tzarrada inoghe!",
|
||||
"nickname": {
|
||||
"popover": "Sèbera unu nòmine",
|
||||
"title": "Inserta su nòmine pro impreare sa tzarrada"
|
||||
"title": "Inserta su nòmine pro impreare sa tzarrada",
|
||||
"titleWithPolls": "Inserta su nòmine pro impreare sa tzarrada"
|
||||
},
|
||||
"privateNotice": "Messàgiu privadu a {{recipient}}",
|
||||
"title": "Tzarrada",
|
||||
"titleWithPolls": "Tzarrada",
|
||||
"you": "tue"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "V tejto konferencii ešte nie je žiadna správa. Začnite tu vašu diskusiu!",
|
||||
"nickname": {
|
||||
"popover": "Zvoľte meno",
|
||||
"title": "Zadajte vašu prezývku"
|
||||
"title": "Zadajte vašu prezývku",
|
||||
"titleWithPolls": "Zadajte vašu prezývku"
|
||||
},
|
||||
"privateNotice": "Súkromná správa pre {{recipient}}",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat",
|
||||
"you": "Vy"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -52,11 +52,13 @@
|
||||
"messagebox": "Vnesite sporočilo",
|
||||
"nickname": {
|
||||
"popover": "Izberite svoje ime",
|
||||
"title": "Vnesite ime, ki ga želite uporabljati na srečanju"
|
||||
"title": "Vnesite ime, ki ga želite uporabljati na srečanju",
|
||||
"titleWithPolls": "Vnesite ime, ki ga želite uporabljati na srečanju"
|
||||
},
|
||||
"noMessagesMessage": "There are no messages in the meeting yet. Start a conversation here!",
|
||||
"privateNotice": "Zasebno sporočilo za uporabnika {{recipient}}",
|
||||
"title": "Klepet",
|
||||
"titleWithPolls": "Klepet",
|
||||
"you": "vi"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -66,10 +66,12 @@
|
||||
"noMessagesMessage": "Ende s’ka mesazhe te takimi. Filloni një bisedë këtu!",
|
||||
"nickname": {
|
||||
"popover": "Zgjidhni një nofkë",
|
||||
"title": "Që të përdorni fjalosjen, jepni një nofkë"
|
||||
"title": "Që të përdorni fjalosjen, jepni një nofkë",
|
||||
"titleWithPolls": "Që të përdorni fjalosjen, jepni një nofkë"
|
||||
},
|
||||
"privateNotice": "Mesazh privat për {{recipient}}",
|
||||
"title": "Fjalosje",
|
||||
"titleWithPolls": "Fjalosje",
|
||||
"you": "ju",
|
||||
"message": "Mesazh",
|
||||
"messageAccessibleTitle": "{{user}} thotë:",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
{
|
||||
"addPeople": {
|
||||
"add": "Bjud in",
|
||||
@@ -15,7 +16,26 @@
|
||||
"searchPeople": "Sök efter personer",
|
||||
"searchPeopleAndNumbers": "Sök efter personer eller lägg till deras telefonnummer",
|
||||
"telephone": "Telefon: {{number}}",
|
||||
"title": "Bjud in andra till mötet"
|
||||
"title": "Bjud in andra till mötet",
|
||||
"addContacts": "Bjud in dina kontakter",
|
||||
"copyInvite": "Kopiera mötesinbjudan",
|
||||
"copyLink": "Kopiera möteslänk",
|
||||
"copyStream": "Kopiera livestreamlänk",
|
||||
"contacts": "Kontakter",
|
||||
"defaultEmail": "Din mailadress",
|
||||
"googleEmail": "Google e-mail",
|
||||
"inviteMoreHeader": "Du är enda deltagaren i mötet",
|
||||
"inviteMoreMailSubject": "Anslut till {{appName}} möte",
|
||||
"inviteMorePrompt": "Bjud in fler personer",
|
||||
"linkCopied": "Länk kopierad till utklipp",
|
||||
"outlookEmail": "Outlook e-mail",
|
||||
"phoneNumbers": "telefonnummer",
|
||||
"searching": "Söker....",
|
||||
"shareInvite": "Dela mötes inbjudan",
|
||||
"shareLink": "Dela mötes inbjudan för att bjuda in fler",
|
||||
"shareStream": "Dela livestreamlänken",
|
||||
"sipAddresses": "sip-adress",
|
||||
"yahooEmail": "Yahoo e-mail"
|
||||
},
|
||||
"audioDevices": {
|
||||
"bluetooth": "Bluetooth",
|
||||
@@ -50,17 +70,28 @@
|
||||
"messagebox": "Skriv ett meddelande",
|
||||
"nickname": {
|
||||
"popover": "Välj ett namn",
|
||||
"title": "Skriv in ett namn för att börja använda chatten"
|
||||
"title": "Skriv in ett namn för att börja använda chatten",
|
||||
"titleWithPolls": "Skriv in ett namn för att börja använda chatten"
|
||||
},
|
||||
"title": "Chatt",
|
||||
"titleWithPolls": "Chatt",
|
||||
"you": "du",
|
||||
"privateNotice": "Privat meddelande till {{recipient}}",
|
||||
"noMessagesMessage": "Det finns ännu inga meddelanden i mötet. Påbörja en konversation!",
|
||||
"messageTo": "Privat meddelande till {{recipient}}",
|
||||
"fieldPlaceHolder": "Skriv ditt meddelande här"
|
||||
"fieldPlaceHolder": "Skriv ditt meddelande här",
|
||||
"enter": "Delta i mötet",
|
||||
"message": "Meddelande",
|
||||
"messageAccessibleTitle": "{{user}} Säger:",
|
||||
"messageAccessibleTitleMe": "Jag säger: ",
|
||||
"smileysPanel": "Emoji panel",
|
||||
"tabs": {
|
||||
"chat": "Chat",
|
||||
"polls": "Omröstningar"
|
||||
}
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Ansluter till mötet…"
|
||||
"joiningRoom": "Ansluter till mötet..."
|
||||
},
|
||||
"connection": {
|
||||
"ATTACHED": "Ansluten",
|
||||
@@ -72,11 +103,11 @@
|
||||
"DISCONNECTED": "Frånkopplad",
|
||||
"DISCONNECTING": "Kopplar från",
|
||||
"ERROR": "Fel",
|
||||
"RECONNECTING": "Ett nätverksproblem uppstod. Återansluter…",
|
||||
"RECONNECTING": "Ett nätverksproblem uppstod. Återansluter...",
|
||||
"LOW_BANDWIDTH": "Video för {{displayName}} har stängts av för att spara bandbredd",
|
||||
"GOT_SESSION_ID": "Hämta sessions-id ... Klart",
|
||||
"GET_SESSION_ID_ERROR": "Hämta sessions-id-fel: {{code}}",
|
||||
"FETCH_SESSION_ID": "Hämtar sessions-id …"
|
||||
"FETCH_SESSION_ID": "Hämtar sessions-id ..."
|
||||
},
|
||||
"connectionindicator": {
|
||||
"address": "Adress:",
|
||||
@@ -108,7 +139,13 @@
|
||||
"transport": "Transport:",
|
||||
"transport_plural": "Transporter:",
|
||||
"turn": " (turn)",
|
||||
"e2e_rtt": "E2E RTT:"
|
||||
"e2e_rtt": "E2E RTT:",
|
||||
"audio_ssrc": "Ljud SSRC:",
|
||||
"codecs": "Codecs (A/V):",
|
||||
"maxEnabledResolution": "Sänd maxiamlt",
|
||||
"savelogs": "Spara loggar",
|
||||
"participant_id": "Deltagar id:",
|
||||
"video_ssrc": "Video SSRC:"
|
||||
},
|
||||
"dateUtils": {
|
||||
"earlier": "Tidigare",
|
||||
@@ -122,8 +159,11 @@
|
||||
"downloadApp": "Hämta appen",
|
||||
"launchWebButton": "Starta på webben",
|
||||
"openApp": "Fortsätt till appen",
|
||||
"title": "Startar ditt möte i {{app}} …",
|
||||
"tryAgainButton": "Försök igen på skrivbordet"
|
||||
"title": "Startar ditt möte i {{app}} ...",
|
||||
"tryAgainButton": "Försök igen på skrivbordet",
|
||||
"ifDoNotHaveApp": "Om du inte har appen än:",
|
||||
"ifHaveApp": "Om du redan har appen:",
|
||||
"joinInApp": "Delta i denna möte med din app"
|
||||
},
|
||||
"defaultLink": "t ex. {{url}}",
|
||||
"deviceError": {
|
||||
@@ -156,9 +196,9 @@
|
||||
"cameraUnsupportedResolutionError": "Din kamera stöder inte den krävda videoupplösningen.",
|
||||
"Cancel": "Avbryt",
|
||||
"close": "Stäng",
|
||||
"conferenceDisconnectMsg": "Kolla din internetanslutning. Återansluter om {{seconds}} sekunder…",
|
||||
"conferenceDisconnectMsg": "Kolla din internetanslutning. Återansluter om {{seconds}} sekunder...",
|
||||
"conferenceDisconnectTitle": "Du har kopplats ner.",
|
||||
"conferenceReloadMsg": "Vi försöker fixa problemet. Återansluter om {{seconds}} sekunder…",
|
||||
"conferenceReloadMsg": "Vi försöker fixa problemet. Återansluter om {{seconds}} sekunder...",
|
||||
"conferenceReloadTitle": "Något gick snett.",
|
||||
"confirm": "Bekräfta",
|
||||
"confirmNo": "Nej",
|
||||
@@ -197,11 +237,11 @@
|
||||
"lockTitle": "Låsning misslyckades",
|
||||
"logoutQuestion": "Är du säker på att du vill logga ut och stoppa konferensen?",
|
||||
"logoutTitle": "Logga ut",
|
||||
"maxUsersLimitReached": "",
|
||||
"maxUsersLimitReached": "Gränsen för maximalt antal deltagare har nåtts. Konferensen är full. Kontakta mötesägaren eller försök igen senare!",
|
||||
"maxUsersLimitReachedTitle": "Maximal deltagarantal uppnått",
|
||||
"micConstraintFailedError": "Din mikrofon uppfyller inte kraven för användning.",
|
||||
"micNotFoundError": "Hittar ingen mikrofon.",
|
||||
"micNotSendingData": "",
|
||||
"micNotSendingData": "Gå till datorns inställningar för att stänga av mikrofonen och justera dess nivå",
|
||||
"micNotSendingDataTitle": "Din mikrofon är tystad av dina systeminställningar",
|
||||
"micPermissionDeniedError": "Du har inte tillåtit användning av din mikrofon. Du kan gå med i mötet men de andra kan då inte höra dej. Om du vill tillåta användning av din mikrofon gör du det via mikrofonknappen i URL-fältet.",
|
||||
"micUnknownError": "Av okänd anledning kan inte din mikrofon användas.",
|
||||
@@ -209,7 +249,7 @@
|
||||
"muteParticipantButton": "Tysta",
|
||||
"muteParticipantDialog": "Vill du tysta den här deltagaren? Du kan inte aktivera mikrofonen igen, men deltagaren kan när som helst göra det själv.",
|
||||
"muteParticipantTitle": "Tysta deltagaren?",
|
||||
"Ok": "Ok",
|
||||
"Ok": "OK",
|
||||
"passwordLabel": "Mötet har låsts av en deltagare. Ange $t(lockRoomPassword) för att gå med.",
|
||||
"passwordNotSupported": "Att sätta ett $t(lockRoomPassword) för mötesrummet stöds ej.",
|
||||
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) stöds inte",
|
||||
@@ -265,7 +305,7 @@
|
||||
"userPassword": "användarlösenord",
|
||||
"WaitForHostMsg": "Konferensen <b>{{room}}</b> har inte börjat än. Autentisera konferensen om du är värd. Vänta annars på att värden startar konferensen.",
|
||||
"WaitForHostMsgWOk": "Konferensen <b>{{room}}</b> har inte börjat än. Om du är värd, autentisera konferensen genom att trycka på Ok. Vänta annars på att värden startar konferensen.",
|
||||
"WaitingForHost": "Väntar på värden …",
|
||||
"WaitingForHost": "Väntar på värden ...",
|
||||
"Yes": "Ja",
|
||||
"yourEntireScreen": "Helskärm",
|
||||
"muteEveryoneElseDialog": "När någon tystats kan du inte slå på mikrofonen, men de kan själva slå på sin egen mikrofon när som helst.",
|
||||
@@ -274,15 +314,93 @@
|
||||
"muteEveryoneStartMuted": "Alla börjar tystade",
|
||||
"muteEveryoneTitle": "Tysta alla?",
|
||||
"sendPrivateMessage": "Du har fått ett privat meddelande. Tänkte du svara på det privat, eller vill du skicka ditt meddelande till alla deltagare?",
|
||||
"screenSharingAudio": "",
|
||||
"screenSharingAudio": "Dela ljud",
|
||||
"sendPrivateMessageCancel": "Skicka till alla deltagare",
|
||||
"sendPrivateMessageTitle": "",
|
||||
"sendPrivateMessageOk": ""
|
||||
"sendPrivateMessageTitle": "Skicka privat?",
|
||||
"sendPrivateMessageOk": "Skicka privat",
|
||||
"add": "Lägg till",
|
||||
"authenticationRequired": "Autentisering krävs",
|
||||
"cameraTimeoutError": "Tiden är ute, kunde ej starta video. ",
|
||||
"copied": "Kopierad",
|
||||
"e2eeDescription": "???",
|
||||
"e2eeLabel": "Aktivera \"end-to-end\" kryptering",
|
||||
"e2eeWarning": "Varning, alla deltagare i mötet har ej stöd för \"end-to-end\" kryptering",
|
||||
"embedMeeting": "Bädda in möte",
|
||||
"grantModeratorDialog": "Är du säker du vill göra denna deltagare till en moderator?",
|
||||
"grantModeratorTitle": "Godkänn moderator",
|
||||
"hideShareAudioHelper": "Visa inte denna dialog igen ",
|
||||
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ej möjligt medan inspelning pågår",
|
||||
"login": "Logga in",
|
||||
"micTimeoutError": "Time out, kunde ej starta ljud enhet",
|
||||
"muteEveryoneElsesVideoDialog": "När kameran är inaktiverad kan den inte aktiveras igen. Däremot kan övriga deltagare aktivera sina kameror.",
|
||||
"muteEveryoneElsesVideoTitle": "Inaktivera allas kameror förutom {{whom}}",
|
||||
"muteEveryonesVideoDialog": "Är du säker du vill inaktivera allas kameror. Du kommer inte att kunna aktivera dessa igen. Däremot kommer deltagarna att kunna aktivera sin egen kamera när som.",
|
||||
"muteEveryonesVideoDialogOk": "Inkativera",
|
||||
"muteEveryonesVideoTitle": "Inaktiveras allas kameror",
|
||||
"muteEveryoneSelf": "Dig själv",
|
||||
"muteParticipantsVideoDialog": "Är du säker du vill inaktivera denna deltagares kamera. Du kommer inte att kunna aktivera den igen. Däremot kan deltagaren kunna aktivera sin egen kamera när som.",
|
||||
"muteParticipantsVideoButton": "Inkativera kamera",
|
||||
"muteParticipantsVideoTitle": "Inaktivera denna deltagares kamera?",
|
||||
"muteParticipantsVideoBody": "Du kommer inte att kunna aktivera kameran igen. Däremot kan deltagaren kunna aktivera sin egen kamera när som.",
|
||||
"noDropboxToken": "Ingen giltig dropbox tecken",
|
||||
"password": "Lösenord",
|
||||
"permissionErrorTitle": "Tillåtelse krävs",
|
||||
"permissionCameraRequiredError": "Tillåtelese krävs för att delta med kamera i denna möte. Var god skaffa detta i \"inställningar\".",
|
||||
"permissionMicRequiredError": "Tillåtelese krävs för att delta med mikrofon i denna möte. Var god skaffa detta i \"inställningar\".",
|
||||
"readMore": "Mer",
|
||||
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ej möjligt medan live streaming pågår.",
|
||||
"screenSharingFailed": "Oops! Något gick fel, skärmdelning kunde ej startas.",
|
||||
"screenSharingFailedTitle": "Skärmdelning misslyckades!",
|
||||
"sessionRestarted": "Samtal återstartat av bryggan",
|
||||
"shareAudio": "Forstätt",
|
||||
"shareAudioTitle": "Hur man delar ljud",
|
||||
"shareAudioWarningTitle": "Du måste avsluta skärmdelning innan du kan dela ljud",
|
||||
"shareAudioWarningH1": "Om du bara vill dela ljud:",
|
||||
"shareAudioWarningD1": "Du måste avsluta din skärmdelning innan du kan dela ditt ljud",
|
||||
"shareAudioWarningD2": "Du måste starta om din skärmdelning och därefter klicka på \"ljuddelning\"",
|
||||
"shareMediaWarningGenericH2": "Om du vill dela din bild och ljud",
|
||||
"shareScreenWarningTitle": "Du måste avsluta ljuddelning innan du kan dela in skärm",
|
||||
"shareScreenWarningH1": "Om du bara vill dela din skärm:",
|
||||
"shareScreenWarningD1": "du måste avsluta ljuddelning innan du aktiverar skärmdelning",
|
||||
"shareScreenWarningD2": "du måste avsluta ljuddelning, starta skärmdelning och sen aktivera \"ljuddelning\"",
|
||||
"user": "Användare",
|
||||
"userIdentifier": "Användar indentifierare",
|
||||
"videoLink": "Videolänk",
|
||||
"viewUpgradeOptions": "Se uppgraderings alternativ",
|
||||
"viewUpgradeOptionsContent": "För att få obegränsad tillgång till premiumfunktioner som inspelning, transkriptioner, RTMP -streaming och mer måste du uppgradera din plan.",
|
||||
"viewUpgradeOptionsTitle": "Du upptäckte en premiumfunktion!",
|
||||
"WaitingForHostTitle": "Väntar på värden ...",
|
||||
"remoteUserControls": "Fjärranvändarkontroller av {{användarnamn}}",
|
||||
"localUserControls": "Lokala användarkontroller"
|
||||
},
|
||||
"dialOut": {
|
||||
"statusMessage": "är nu {{status}}"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Tillämpa",
|
||||
"title": "Virtuella bakgrunder",
|
||||
"blur": "Oskärpa",
|
||||
"slightBlur": "Lätt oskärpa",
|
||||
"removeBackground": "Ta bort bakgrunden",
|
||||
"addBackground": "Lägg till bakgrund",
|
||||
"pleaseWait": "Vänligen vänta...",
|
||||
"none": "Ingen",
|
||||
"uploadedImage": "Uppladdad bild {{index}}",
|
||||
"deleteImage": "Ta bort bild",
|
||||
"image1": "Strand",
|
||||
"image2": "Vit neutral bakgrund",
|
||||
"image3": "Vitt tomt rum",
|
||||
"image4": "Svart golvlampa",
|
||||
"image5": "Berg",
|
||||
"image6": "Skog",
|
||||
"image7": "Soluppgång",
|
||||
"desktopShareError": "Det gick inte att dela skrivbordet",
|
||||
"desktopShare": "Dela skrivbord",
|
||||
"webAssemblyWarning": "WebAssembly stöds inte",
|
||||
"backgroundEffectError": "Det gick inte att tillämpa bakgrundseffekt."
|
||||
},
|
||||
"feedback": {
|
||||
"star": "Stjärna",
|
||||
"average": "Medel",
|
||||
"bad": "Dåligt",
|
||||
"detailsLabel": "Berätta mer.",
|
||||
@@ -313,9 +431,9 @@
|
||||
"genericError": "Oj då, något gick fel.",
|
||||
"inviteLiveStream": "Om du vill se livesändningen av mötet klickar du här: {{url}}",
|
||||
"invitePhone": "För att gå med via telefon istället trycker du in: {{number}} ,, {{conferenceID}} #\n",
|
||||
"invitePhoneAlternatives": "",
|
||||
"invitePhoneAlternatives": "Letar du efter ett annat uppringningsnummer?\nSe mötesuppringningsnummer: {{url}}\n\n\nOm du också ringer in via en rumstelefon går du med utan att ansluta till ljud: {{silentUrl}}",
|
||||
"inviteURLFirstPartGeneral": "Du är inbjuden till ett möte.",
|
||||
"inviteURLFirstPartPersonal": "",
|
||||
"inviteURLFirstPartPersonal": "{{name}} bjuder in dig till ett möte.\n",
|
||||
"inviteURLSecondPart": "\nGå med i mötet:\n{{url}}\n",
|
||||
"liveStreamURL": "Livesändning:",
|
||||
"moreNumbers": "Fler nummer",
|
||||
@@ -326,7 +444,14 @@
|
||||
"password": "$t(lockRoomPasswordUppercase):",
|
||||
"title": "Dela",
|
||||
"tooltip": "Dela länk och information om inringning för mötet",
|
||||
"label": "Mötesinformation"
|
||||
"label": "Mötesinformation",
|
||||
"copyNumber": "Kopiera nummer",
|
||||
"inviteSipEndpoint": "Om du ansluta med SIP -adressen anger du följande: {{sipUri}}",
|
||||
"inviteTextiOSPersonal": "{{name}} bjuder in dig till ett möte.",
|
||||
"inviteTextiOSJoinSilent": "Om du ringer in via en rumstelefon använder du den här länken för att ansluta utan ljud: {{silentUrl}}.",
|
||||
"inviteTextiOSInviteUrl": "Klicka på följande länk för att gå med: {{inviteUrl}}.",
|
||||
"inviteTextiOSPhone": "Om du vill gå med via telefon använder du det här numret: {{number}} ,, {{conferenceID}}#. Om du letar efter ett annat nummer är detta hela listan: {{didUrl}}.",
|
||||
"sip": "SIP adress"
|
||||
},
|
||||
"inviteDialog": {
|
||||
"alertText": "Det gick inte att bjuda in alla deltagare.",
|
||||
@@ -357,7 +482,7 @@
|
||||
"toggleScreensharing": "Växla mellan kamera och skärmdelning",
|
||||
"toggleShortcuts": "Visa eller dölj kortkommandon",
|
||||
"videoMute": "Aktivera / avaktivera din kamera",
|
||||
"videoQuality": ""
|
||||
"toggleParticipantsPane": "Visa eller dölj deltagarfönstret"
|
||||
},
|
||||
"liveStreaming": {
|
||||
"busy": "Vi försöker frigöra fler strömningsresurser. Försök igen senare.",
|
||||
@@ -371,13 +496,13 @@
|
||||
"errorLiveStreamNotEnabled": "Livesändning är otillgänglig för {{email}}. Aktivera livesändning eller logga in på ett konto där det är aktiverat.",
|
||||
"expandedOff": "Livesändningen har avslutats",
|
||||
"expandedOn": "Mötet livesänds just nu på YouTube.",
|
||||
"expandedPending": "Livesändningen startas …",
|
||||
"expandedPending": "Livesändningen startas ...",
|
||||
"failedToStart": "Strömningen kunde inte påbörjas",
|
||||
"getStreamKeyManually": "Vi kunde inte hämta några direktströmmar. Försök att få din direktströmningsnyckel från YouTube.",
|
||||
"invalidStreamKey": "Livesändningslösenordet kan vara felaktigt.",
|
||||
"off": "Strömning avslutad",
|
||||
"on": "Strömma",
|
||||
"pending": "Börja strömma …",
|
||||
"pending": "Börja strömma ...",
|
||||
"serviceName": "Livesändningstjänst",
|
||||
"signedInAs": "Du är nu inloggad som:",
|
||||
"signIn": "Logga in med Google",
|
||||
@@ -389,7 +514,9 @@
|
||||
"offBy": "{{name}} stoppade direktströmningen",
|
||||
"onBy": "{{name}} startade direktströmningen",
|
||||
"youtubeTerms": "Tjänstevillkor för YouTube",
|
||||
"googlePrivacyPolicy": ""
|
||||
"googlePrivacyPolicy": "Googles sekretesspolicy",
|
||||
"limitNotificationDescriptionWeb": "På grund av stor efterfrågan kommer din strömning att begränsas till {{limit}} min. För obegränsad strömning, prova <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "Din strömning är begränsad till {{limit}} min. För obegränsad strömning, prova {{app}}."
|
||||
},
|
||||
"localRecording": {
|
||||
"clientState": {
|
||||
@@ -439,7 +566,7 @@
|
||||
"moderator": "Moderatorsrättigheter tilldelades!",
|
||||
"muted": "Du har startat konversationen utan mikrofon.",
|
||||
"mutedTitle": "Du har mikrofonen avstängd!",
|
||||
"mutedRemotelyTitle": "",
|
||||
"mutedRemotelyTitle": "Din mikrofonen har blivit avstängd av {{participantDisplayName}}!",
|
||||
"mutedRemotelyDescription": "Du kan alltid slå på mikrofonen när du är redo att tala. Stäng av när du är klar för att hålla brus borta från mötet.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) togs bort av en annan deltagare",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) satt av en annan deltagare",
|
||||
@@ -447,36 +574,118 @@
|
||||
"somebody": "Någon",
|
||||
"startSilentTitle": "Du gick med utan ljud aktiverat!",
|
||||
"startSilentDescription": "Anslut till mötet igen för att aktivera ljud",
|
||||
"suboptimalExperienceDescription": "Hmm… din upplevelse med {{appName}} kommer inte att bli särskilt bra. Vi försöker hitta sätt att förbättra det, men till dess använd en av <a href='{{recommendedBrowserPageLink}}' target='_blank'>de helt stödda webbläsarna</a>.",
|
||||
"suboptimalExperienceDescription": "Hmm... din upplevelse med {{appName}} kommer inte att bli särskilt bra. Vi försöker hitta sätt att förbättra det, men till dess använd en av <a href='{{recommendedBrowserPageLink}}' target='_blank'>de helt stödda webbläsarna</a>.",
|
||||
"suboptimalExperienceTitle": "Webbläsarvarning",
|
||||
"unmute": "Slå på mikrofonen",
|
||||
"newDeviceCameraTitle": "Ny kamera hittad",
|
||||
"newDeviceAudioTitle": "Ny ljudenhet hittad",
|
||||
"newDeviceAction": "Använd",
|
||||
"suboptimalBrowserWarning": "Din mötesupplevelse kommer tyvärr inte att bli så bra. Vi letar efter sätt att förbättra detta, men fram till dess kan du försöka använda en av de <a href='{{recommendedBrowserPageLink}}' target='_blank'> fullt stödda webbläsarna </a>."
|
||||
"suboptimalBrowserWarning": "Din mötesupplevelse kommer tyvärr inte att bli så bra. Vi letar efter sätt att förbättra detta, men fram till dess kan du försöka använda en av de <a href='{{recommendedBrowserPageLink}}' target='_blank'> fullt stödda webbläsarna </a>.",
|
||||
"hostAskedUnmute": "Värden vill att du ska stänga av ljudet",
|
||||
"videoMutedRemotelyTitle": "Din kamera har inaktiverats av {{participantDisplayName}}!",
|
||||
"videoMutedRemotelyDescription": "Du kan alltid slå på den igen.",
|
||||
"screenShareNoAudio": "\"Dela ljudrutan\" aktiverades inte i fönstret för val av fönster.",
|
||||
"screenShareNoAudioTitle": "Det gick inte att dela systemljud!",
|
||||
"OldElectronAPPTitle": "Säkerhetsproblem!",
|
||||
"oldElectronClientDescription1": "Den version av Jitis meet som används är gammal och har säkerhetsluckor. Var god uppdatera till den senaste versionen.",
|
||||
"oldElectronClientDescription2": "senast build",
|
||||
"oldElectronClientDescription3": "nu!",
|
||||
"moderationInEffectDescription": "Räck upp handen om du vill tala",
|
||||
"moderationInEffectCSDescription": "Räck upp handen om du vill dela din video",
|
||||
"moderationInEffectVideoDescription": "Räck upp handen om du vill att din video ska synas",
|
||||
"moderationInEffectTitle": "Mikrofonen är avstängd av moderatorn",
|
||||
"moderationInEffectCSTitle": "Innehållsdelning är inaktiverat av moderator",
|
||||
"moderationInEffectVideoTitle": "Videon stängs av av moderatorn",
|
||||
"moderationRequestFromModerator": "Värden vill att du ska aktivera ditt ljudet",
|
||||
"moderationRequestFromParticipant": "Vill prata",
|
||||
"moderationStartedTitle": "Moderering startad",
|
||||
"moderationStoppedTitle": "Moderering stoppad",
|
||||
"moderationToggleDescription": "av {{participantDisplayName}}",
|
||||
"raiseHandAction": "Räck upp handen",
|
||||
"reactionSounds": "Inaktivera ljud",
|
||||
"groupTitle": "Notifieringar"
|
||||
},
|
||||
"passwordSetRemotely": "satt av en annan deltagare",
|
||||
"passwordDigitsOnly": "",
|
||||
"passwordDigitsOnly": "Ange max {{number}} siffror",
|
||||
"poweredby": "drivs med",
|
||||
"prejoin": {
|
||||
"audioAndVideoError": "Ljud- och videofel:",
|
||||
"audioDeviceProblem": "Det finns ett problem med din ljudenhet",
|
||||
"audioOnlyError": "Ljudfel:",
|
||||
"audioTrackError": "Det gick inte att skapa ljudspår.",
|
||||
"calling": "Ringer",
|
||||
"callMe": "Ring mig",
|
||||
"callMeAtNumber": "Ring mig på det här numret:",
|
||||
"configuringDevices": "Konfigurerar enheter...",
|
||||
"connectedWithAudioQ": "Är din mikrofon ansluten?",
|
||||
"connection": {
|
||||
"good": "Din internetanslutning fungerar bra!",
|
||||
"nonOptimal": "Din internetanslutning är inte optimal",
|
||||
"poor": "Din internetanslutning fungerar dåligt"
|
||||
},
|
||||
"connectionDetails": {
|
||||
"audioClipping": "Ditt ljud kan upplevas hackigt.",
|
||||
"audioHighQuality": "Vi förväntar oss att ditt ljud har utmärkt kvalitet.",
|
||||
"audioLowNoVideo": "Vi förväntar oss att din ljudkvalitet är låg och ingen video.",
|
||||
"goodQuality": "Grymt bra! Din mediekvalitet kommer att bli bra.",
|
||||
"noMediaConnectivity": "Vi kunde inte hitta ett sätt att upprätta mediaanslutning för detta test. Detta orsakas vanligtvis av en brandvägg eller NAT.",
|
||||
"noVideo": "Vi förväntar oss att din video kommer ha låg kvalitet eller inte fungera.",
|
||||
"undetectable": "Om du fortfarande inte kan ringa i webbläsaren rekommenderar vi att du ser till att dina högtalare, mikrofon och kamera är korrekt inställda, att du har beviljat din webbläsare rättigheter att använda din mikrofon och kamera och att din webbläsarversion är uppdaterad.",
|
||||
"veryPoorConnection": "Vi förväntar oss att din samtalskvalitet är riktigt dålig.",
|
||||
"videoFreezing": "Vi förväntar oss att din video fryser, blir svart och pixeleras.",
|
||||
"videoHighQuality": "Vi förväntar oss att din video har bra kvalitet.",
|
||||
"videoLowQuality": "Vi förväntar oss att din video har låg kvalitet när det gäller bildhastighet och upplösning.",
|
||||
"videoTearing": "Vi förväntar oss att din video ska vara pixelerad eller ha visuella artefakter."
|
||||
},
|
||||
"copyAndShare": "Kopiera och dela möteslänk",
|
||||
"dialInMeeting": "Ring in till mötet",
|
||||
"dialInPin": "Ring in till mötet och ange PIN-kod:",
|
||||
"dialing": "Ringer",
|
||||
"doNotShow": "Visa inte denna ruta igen",
|
||||
"errorDialOut": "Kunde inte ringa ut",
|
||||
"errorDialOutDisconnected": "Kunde inte ringa ut. Kopplar ner",
|
||||
"errorDialOutFailed": "Kunde inte ringa ut. Samtal misslyckades",
|
||||
"errorDialOutStatus": "Kunde inte hämta status på utgående samtal",
|
||||
"errorMissingName": "Ange ditt namn för att ansluta till mötet",
|
||||
"errorStatusCode": "Kunde inte ringa ut, statuskod: {{status}}",
|
||||
"errorValidation": "Ogiltigt nummer",
|
||||
"iWantToDialIn": "Jag vill ringa in",
|
||||
"joinAudioByPhone": "Anslut med ljud via telefon",
|
||||
"joinMeeting": "Anslut till mötet",
|
||||
"joinWithoutAudio": "Anslut utan ljud",
|
||||
"initiated": "Samtalet påbörjades",
|
||||
"linkCopied": "Länken kopierades till urklipp",
|
||||
"lookGood": "Din mikrofon fungerar som den ska",
|
||||
"or": "eller",
|
||||
"premeeting": "Förmöte",
|
||||
"showScreen": "Aktivera skärmen före mötet",
|
||||
"keyboardShortcuts": "Aktivera kortkommandon",
|
||||
"startWithPhone": "Börja med telefonljud",
|
||||
"screenSharingError": "Skärmdelningsfel:",
|
||||
"videoOnlyError": "Videofel:",
|
||||
"videoTrackError": "Det gick inte att skapa videospår.",
|
||||
"viewAllNumbers": "visa alla nummer"
|
||||
},
|
||||
"presenceStatus": {
|
||||
"busy": "Upptagen",
|
||||
"calling": "Ringer…",
|
||||
"calling": "Ringer...",
|
||||
"connected": "Ansluten",
|
||||
"connecting": "Ansluter…",
|
||||
"connecting2": "Ansluter*…",
|
||||
"connecting": "Ansluter...",
|
||||
"connecting2": "Ansluter*...",
|
||||
"disconnected": "Frånkopplad",
|
||||
"expired": "Utgången",
|
||||
"ignored": "Ignorerad",
|
||||
"initializingCall": "Startar samtal…",
|
||||
"initializingCall": "Startar samtal...",
|
||||
"invited": "Inbjuden",
|
||||
"rejected": "Avvisad",
|
||||
"ringing": "Ringer…"
|
||||
"ringing": "Ringer..."
|
||||
},
|
||||
"profile": {
|
||||
"setDisplayNameLabel": "Ange ditt visningsnamn",
|
||||
"setEmailInput": "Skriv e-postadress",
|
||||
"setEmailLabel": "Ange din gravatar-e-postadress",
|
||||
"title": "Profil"
|
||||
"title": "Profil",
|
||||
"avatar": "avatar"
|
||||
},
|
||||
"recording": {
|
||||
"authDropboxText": "Ladda upp till Dropbox",
|
||||
@@ -487,14 +696,14 @@
|
||||
"error": "Inspelningen misslyckades. Försök igen.",
|
||||
"expandedOff": "Inspelningen har avslutats",
|
||||
"expandedOn": "Mötet spelas nu in.",
|
||||
"expandedPending": "Inspelningen påbörjas…",
|
||||
"expandedPending": "Inspelningen påbörjas...",
|
||||
"failedToStart": "Inspelningen kunde inte påbörjas",
|
||||
"fileSharingdescription": "Dela inspelningen med mötesdeltagare",
|
||||
"live": "LIVE",
|
||||
"loggedIn": "Inloggad som {{userName}}",
|
||||
"off": "Inspelningen avslutades",
|
||||
"on": "Inspelning",
|
||||
"pending": "Förbereder inspelning av mötet…",
|
||||
"pending": "Förbereder inspelning av mötet...",
|
||||
"rec": "REC",
|
||||
"serviceDescription": "Din inspelning kommer att sparas av inspelningstjänsten",
|
||||
"serviceName": "Inspelningstjänst",
|
||||
@@ -503,7 +712,14 @@
|
||||
"unavailable": "{{serviceName}} är inte tillgänglig. Vi försöker åtgärda felet. Försök igen senare.",
|
||||
"unavailableTitle": "Inspelning kan inte göras",
|
||||
"onBy": "{{name}} påbörjade inspelningen",
|
||||
"offBy": "{{name}} avslutade inspelningen"
|
||||
"offBy": "{{name}} avslutade inspelningen",
|
||||
"limitNotificationDescriptionWeb": "På grund av stor efterfrågan är din inspelning begränsad till {{limit}} min. För obegränsade inspelningar, prova <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
|
||||
"limitNotificationDescriptionNative": "På grund av stor efterfrågan är din inspelning begränsad till {{limit}} min. För obegränsade inspelningar, försök <3>{{app}}</3>.",
|
||||
"copyLink": "Kopiera länk",
|
||||
"errorFetchingLink": "Fel vid hämtning av inspelningslänk.",
|
||||
"linkGenerated": "Vi har genererat en länk till din inspelning.",
|
||||
"serviceDescriptionCloud": "Molninspelning",
|
||||
"uploadToCloud": "Ladda upp till molnet"
|
||||
},
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Dra för att uppdatera"
|
||||
@@ -517,7 +733,7 @@
|
||||
"title": "Kalender"
|
||||
},
|
||||
"devices": "Enheter",
|
||||
"followMe": "Alla följer mej",
|
||||
"followMe": "Alla följer mig",
|
||||
"language": "Språk",
|
||||
"loggedIn": "Inloggad som {{name}}",
|
||||
"moderator": "Moderator",
|
||||
@@ -531,7 +747,19 @@
|
||||
"startVideoMuted": "Alla börjar osynliga",
|
||||
"title": "Inställningar",
|
||||
"speakers": "Högtalare",
|
||||
"microphones": "Mikrofoner"
|
||||
"microphones": "Mikrofoner",
|
||||
"desktopShareFramerate": "Bildfrekvens för skrivbordsdelning",
|
||||
"desktopShareWarning": "Du måste starta om skärmdelningen för att de nya inställningarna ska träda i kraft.",
|
||||
"desktopShareHighFpsWarning": "En högre bildhastighet för skrivbordsdelning kan påverka din bandbredd. Du måste starta om skärmdelningen för att de nya inställningarna ska träda i kraft.",
|
||||
"framesPerSecond": "bildrutor per sekund",
|
||||
"incomingMessage": "Inkommande meddelande",
|
||||
"participantJoined": "Deltagare ansluten",
|
||||
"participantLeft": "Deltagare lämnat mötet",
|
||||
"playSounds": "Spelljud på",
|
||||
"reactions": "Reaktioner",
|
||||
"sameAsSystem": "Samma som system ({{label}})",
|
||||
"sounds": "Ljud",
|
||||
"talkWhileMuted": "Prata medan din ljud är inaktiverad"
|
||||
},
|
||||
"settingsView": {
|
||||
"alertOk": "OK",
|
||||
@@ -549,8 +777,11 @@
|
||||
"version": "Version",
|
||||
"disableCallIntegration": "Tillåt inte deltagande via telefon",
|
||||
"showAdvanced": "Visa avancerade inställningar",
|
||||
"disableP2P": "",
|
||||
"advanced": "Avancerat"
|
||||
"disableP2P": "Inaktivera Dator-till-dator-läge",
|
||||
"advanced": "Avancerat",
|
||||
"alertCancel": "Avbryt",
|
||||
"disableCrashReporting": "Inaktivera kraschrapportering",
|
||||
"disableCrashReportingWarning": "Är du säker på att du vill inaktivera kraschrapportering? Inställningen tillämpas när du startar om appen."
|
||||
},
|
||||
"share": {
|
||||
"dialInfoText": "\n\n=====\n\nVill du istället ringa in via telefon?\n\n{{defaultDialInNumber}} Klicka på den här länken för att se telefonnumret för detta möte\n{{dialInfoPageUrl}}",
|
||||
@@ -563,11 +794,13 @@
|
||||
"name": "Namn",
|
||||
"seconds": "{{count}} s",
|
||||
"speakerStats": "Talarstatistik",
|
||||
"speakerTime": "Talartid"
|
||||
"speakerTime": "Talartid",
|
||||
"search": "Sök"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"title": "{{app}} vill använda din kamera och mikrofon."
|
||||
"title": "{{app}} vill använda din kamera och mikrofon.",
|
||||
"genericTitle": "Mötet måste använda din mikrofon och kamera."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"rejoinKeyTitle": "Gå med igen",
|
||||
@@ -578,7 +811,7 @@
|
||||
"accessibilityLabel": {
|
||||
"audioOnly": "Slå av eller på ljudet",
|
||||
"audioRoute": "Välj ljudenhet",
|
||||
"callQuality": "",
|
||||
"callQuality": "Hantera videokvalitet",
|
||||
"cc": "Slå av eller på undertexter",
|
||||
"chat": "Öppna eller stäng chattfönster",
|
||||
"document": "Öppna eller stäng delat dokument",
|
||||
@@ -602,18 +835,38 @@
|
||||
"shareRoom": "Bjud in någon",
|
||||
"shareYourScreen": "Slå av eller på skärmdelning",
|
||||
"shortcuts": "Stäng eller öppna genvägar",
|
||||
"show": "",
|
||||
"show": "Visa på scenen",
|
||||
"speakerStats": "Stäng eller öppna talarstatistik",
|
||||
"tileView": "Öppna eller stäng panelvyn",
|
||||
"toggleCamera": "Växla kamera",
|
||||
"videomute": "Sätt på eller stäng av mikrofonen",
|
||||
"videoblur": "",
|
||||
"videoblur": "Växla videooskärpa",
|
||||
"muteEveryone": "Tysta alla",
|
||||
"toggleFilmstrip": "",
|
||||
"privateMessage": "",
|
||||
"toggleFilmstrip": "Växla filmremsa",
|
||||
"privateMessage": "Skicka privat meddelande",
|
||||
"moreOptions": "Visa fler alternativ",
|
||||
"help": "Hjälp",
|
||||
"download": ""
|
||||
"download": "Ladda ner app",
|
||||
"boo": "Bua",
|
||||
"clap": "Klappa",
|
||||
"embedMeeting": "Bädda in möte",
|
||||
"grantModerator": "Godkänn moderator",
|
||||
"laugh": "Skratta",
|
||||
"like": "Tummen upp",
|
||||
"lobbyButton": "Aktivera/inaktivera väntrumsläge",
|
||||
"muteEveryoneElse": "Inkativerad ljud för alla andra",
|
||||
"muteEveryonesVideo": "Inkommande medelande",
|
||||
"muteEveryoneElsesVideo": "Inaktivera alla andras kameror",
|
||||
"participants": "Deltagare",
|
||||
"reactionsMenu": "Öppna7ständ meny för reaktioner",
|
||||
"remoteVideoMute": "Inaktivera kamera för deltagare",
|
||||
"security": "Säkerhetsalternativ",
|
||||
"shareaudio": "Dela ljud",
|
||||
"silence": "Tyst läge",
|
||||
"surprised": "Överaskning",
|
||||
"selectBackground": "Välj bakgrund",
|
||||
"expand": "Expandera",
|
||||
"collapse": "Kollaps"
|
||||
},
|
||||
"addPeople": "Lägg till personer i samtal",
|
||||
"audioOnlyOff": "Avsluta ljudläget",
|
||||
@@ -662,14 +915,41 @@
|
||||
"noAudioSignalTitle": "Det kommer inget ljud från din mikrofon!",
|
||||
"muteEveryone": "Tysta alla",
|
||||
"privateMessage": "Skicka privat meddelande",
|
||||
"noisyAudioInputTitle": "",
|
||||
"noAudioSignalDialInLinkDesc": "",
|
||||
"noAudioSignalDialInDesc": "",
|
||||
"noAudioSignalDescSuggestion": "",
|
||||
"noAudioSignalDesc": "",
|
||||
"moreOptions": "",
|
||||
"help": "",
|
||||
"download": ""
|
||||
"noisyAudioInputTitle": "Din mikrofon verkar vara bullrig!",
|
||||
"noAudioSignalDialInDesc": "Du kan också ringa in med:",
|
||||
"noAudioSignalDialInLinkDesc": "Uppringningsnummer",
|
||||
"noAudioSignalDescSuggestion": "Om du inte avsiktligt tystade det från systeminställningar eller hårdvara, överväg att byta till den föreslagna enheten.",
|
||||
"noAudioSignalDesc": "Om du inte avsiktligt stängde av det från systeminställningar eller hårdvara, överväg att byta enhet.",
|
||||
"moreOptions": "Visa fler alternativ",
|
||||
"help": "Hjälp",
|
||||
"download": "Ladda ner vår app",
|
||||
"audioSettings": "Ljud inställningar",
|
||||
"videoSettings": "Video inställningar",
|
||||
"boo": "Bua",
|
||||
"clap": "Klappa",
|
||||
"closeReactionsMenu": "Stäng meny för reaktioner",
|
||||
"disableReactionSounds": "Du kan inaktivera reaktionsljud för det här mötet",
|
||||
"e2ee": "End-to-End kryptering",
|
||||
"embedMeeting": "Bädda in möte",
|
||||
"laugh": "Skratta",
|
||||
"like": "Tummen upp",
|
||||
"lobbyButtonDisable": "Inaktivera väntrumsläge",
|
||||
"lobbyButtonEnable": "Aktivera väntrumsläge",
|
||||
"muteEveryonesVideo": "Inaktivera allas kamera",
|
||||
"openReactionsMenu": "Öppna meny för reaktioner",
|
||||
"participants": "Deltagare",
|
||||
"reactionBoo": "Bua",
|
||||
"reactionClap": "Klappa",
|
||||
"reactionLaugh": "Skratta",
|
||||
"reactionLike": "Skicka tummen upp",
|
||||
"reactionSilence": "Skicka tyst reaktion",
|
||||
"reactionSurprised": "Skicka reaktionen överaskad",
|
||||
"security": "Säkerhetsalternativ",
|
||||
"shareaudio": "Dela ljud",
|
||||
"silence": "Tystnad",
|
||||
"stopAudioSharing": "Inaktivera ljuddelning",
|
||||
"surprised": "Överaskad",
|
||||
"selectBackground": "Välj bakgrund"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Starta / Avsluta undertexter",
|
||||
@@ -678,7 +958,7 @@
|
||||
"failedToStart": "Det gick inte att starta transkribering",
|
||||
"labelToolTip": "Mötet transkriberas",
|
||||
"off": "Transkribering avslutades",
|
||||
"pending": "Förbereder transkribering av mötet …",
|
||||
"pending": "Förbereder transkribering av mötet ...",
|
||||
"start": "Börja visa undertexter",
|
||||
"stop": "Sluta visa undertexter",
|
||||
"tr": "TR"
|
||||
@@ -719,8 +999,9 @@
|
||||
"onlyAudioSupported": "Vi stöder bara ljud i denna webbläsare.",
|
||||
"sd": "SD",
|
||||
"standardDefinition": "Normal upplösning",
|
||||
"ldTooltip": "",
|
||||
"hdTooltip": ""
|
||||
"ldTooltip": "Titta på lågupplöst video",
|
||||
"hdTooltip": "Titta på högupplöst video",
|
||||
"sdTooltip": "Titta på video med standardupplösning"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"domute": "Tysta",
|
||||
@@ -730,8 +1011,14 @@
|
||||
"mute": "Deltagaren har avstängd mikrofon",
|
||||
"muted": "Tystad",
|
||||
"remoteControl": "Fjärrkontroll",
|
||||
"show": "",
|
||||
"videomute": "Deltagaren har stäng av kameran"
|
||||
"show": "Visa på scenen",
|
||||
"videomute": "Deltagaren har stäng av kameran",
|
||||
"connectionInfo": "Anslutningsinformation",
|
||||
"domuteVideo": "Inaktivera kamera",
|
||||
"domuteOthers": "Inkativerad ljud för alla andra",
|
||||
"domuteVideoOfOthers": "Inkativera kamera för alla andra",
|
||||
"grantModerator": "Godkänn moderator",
|
||||
"videoMuted": "kamera inaktiverad"
|
||||
},
|
||||
"welcomepage": {
|
||||
"accessibilityLabel": {
|
||||
@@ -754,28 +1041,150 @@
|
||||
"recentList": "Tidigare",
|
||||
"recentListDelete": "Radera",
|
||||
"recentListEmpty": "Inga tidigare möten. Chatta med ditt team och hitta alla tidigare möten där.",
|
||||
"reducedUIText": "",
|
||||
"reducedUIText": "Välkommen till {{app}}!",
|
||||
"roomname": "Skriv in rumsnamn",
|
||||
"roomnameHint": "Ange namnet eller URL:en till mötesrummet du vill ansluta till. Du kan hitta på ett nytt namn, berätta då för de andra du tänker möta så de anger samma namn.",
|
||||
"sendFeedback": "Ge återkoppling",
|
||||
"terms": "Villkor",
|
||||
"title": "Säkra, välutrustade och helt kostnadsfria videokonferenser",
|
||||
"roomNameAllowedChars": "Mötesnamn kan inte innehålla dessa tecken: ?, &,:, ', \",%, #.",
|
||||
"getHelp": "",
|
||||
"goSmall": "BÖRJA"
|
||||
"getHelp": "Få hjälp",
|
||||
"goSmall": "BÖRJA",
|
||||
"addMeetingName": "Lägg till mötesnamn",
|
||||
"headerTitle": "Jitisi Meet",
|
||||
"headerSubtitle": "Säkra- och högkvalitet möten",
|
||||
"jitsiOnMobile": "Jitsi på mobilen - ladda ner våra appar och starta ett möte var som helst",
|
||||
"mobileDownLoadLinkIos": "Ladda ner mobilappen för iOS",
|
||||
"mobileDownLoadLinkAndroid": "Ladda ner mobilappen för Android",
|
||||
"mobileDownLoadLinkFDroid": "Ladda ner mobilappen för F-droid",
|
||||
"moderatedMessage": "Eller <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\"> boka en mötesadress </a> i förväg där du är den enda moderatorn.",
|
||||
"startMeeting": "Starta möte",
|
||||
"logo": {
|
||||
"calendar": "Kalender logotyp",
|
||||
"microsoftLogo": "Microsoft logotyp",
|
||||
"logoDeepLinking": "Jitisi logotyp",
|
||||
"desktopPreviewThumbnail": "Miniatyrbild av skrivbordsförhandsgranskning",
|
||||
"googleLogo": "Google logotyp",
|
||||
"policyLogo": "Policy-logotyp"
|
||||
}
|
||||
},
|
||||
"defaultNickname": "till exempel Julia Eriksson",
|
||||
"chromeExtensionBanner": {
|
||||
"dontShowAgain": "Visa inte det här igen",
|
||||
"buttonText": "Installera Chrome-tillägg",
|
||||
"installExtensionText": "Installera tillägget för integration med Google Kalender och Office 365"
|
||||
"installExtensionText": "Installera tillägget för integration med Google Kalender och Office 365",
|
||||
"close": "Stäng"
|
||||
},
|
||||
"documentSharing": {
|
||||
"title": ""
|
||||
"title": "Delade dokument"
|
||||
},
|
||||
"raisedHand": "Jag vill prata",
|
||||
"e2ee": {
|
||||
"labelToolTip": "jud- och videokommunikation för detta samtal är krypterad från dator till dator"
|
||||
},
|
||||
"embedMeeting": {
|
||||
"title": "Bädda in möte"
|
||||
},
|
||||
"raisedHand": "Räck upp handen",
|
||||
"lonelyMeetingExperience": {
|
||||
"youAreAlone": "Du är ensam i mötet",
|
||||
"button": "Bjud in andra"
|
||||
}
|
||||
},
|
||||
"helpView": {
|
||||
"header": "Hjälpcenter"
|
||||
},
|
||||
"lobby": {
|
||||
"admit": "Godkänn",
|
||||
"admitAll": "Godkänn alla",
|
||||
"knockingParticipantList": "Väntande deltagare",
|
||||
"allow": "Tillåt",
|
||||
"backToKnockModeButton": "Tillbaka till väntrum",
|
||||
"dialogTitle": "Väntrum",
|
||||
"disableDialogContent": "Väntrumsläge är för närvarande aktiverat. Denna funktion säkerställer att oönskade deltagare inte kan gå med i ditt möte. Vill du inaktivera det?",
|
||||
"disableDialogSubmit": "Inaktivera",
|
||||
"emailField": "Skriv in din mailadress",
|
||||
"enableDialogPasswordField": "Ange lösenord (valfritt)",
|
||||
"enableDialogSubmit": "Aktivera",
|
||||
"enableDialogText": "Väntrumsläge låter dig skydda ditt möte genom att bara tillåta människor att komma in efter ett formellt godkännande av en moderator.",
|
||||
"enterPasswordButton": "Ange möteslösenord",
|
||||
"enterPasswordTitle": "Ange lösenord för att ansluta till mötet",
|
||||
"errorMissingPassword": "Ange möteslösenord",
|
||||
"invalidPassword": "Felaktigt lösenord",
|
||||
"joiningMessage": "Du kommer anslutas till mötet så snart någon accepterat din begäran",
|
||||
"joinWithPasswordMessage": "Försöker ansluta med lösenord, vänta...",
|
||||
"joinRejectedMessage": "Din anslutningsbegäran avvisades av en moderator.",
|
||||
"joinTitle": "Anslut till mötet",
|
||||
"joiningTitle": "Begär att få delta i mötet...",
|
||||
"joiningWithPasswordTitle": "Ansluter med lösenord...",
|
||||
"knockButton": "Anslut till mötet",
|
||||
"knockTitle": "Någon önskar delta i mötet",
|
||||
"nameField": "Ange ditt namn",
|
||||
"notificationLobbyAccessDenied": "{{targetParticipantName}} har nekats att delta av {{originParticipantName}}",
|
||||
"notificationLobbyAccessGranted": "{{targetParticipantName}} har godkänts att delta av {{originParticipantName}}",
|
||||
"notificationLobbyDisabled": "Väntrumsläge har inaktiverats av {{originParticipantName}}",
|
||||
"notificationLobbyEnabled": "Väntrumsläge har aktiverats av {{originParticipantName}}",
|
||||
"notificationTitle": "Väntrum",
|
||||
"passwordField": "Ange möteslösenord",
|
||||
"passwordJoinButton": "Anslut",
|
||||
"reject": "Avvisa",
|
||||
"rejectAll": "Avvisa alla",
|
||||
"toggleLabel": "Aktivera väntrum"
|
||||
},
|
||||
"jitsiHome": "{{logo}} Logotyp, länkar till startsidan",
|
||||
"participantsPane": {
|
||||
"close": "Stäng",
|
||||
"header": "Deltagare",
|
||||
"headings": {
|
||||
"lobby": "Väntrum ({{count}})",
|
||||
"participantsList": "Mötesdeltagare ({{count}})",
|
||||
"waitingLobby": "Väntar i väntrum ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Låt deltagarna:",
|
||||
"blockEveryoneMicCamera": "Inaktivera allas mikrofon och kamera",
|
||||
"invite": "Bjud in någon",
|
||||
"askUnmute": "Be om att aktivera ljud",
|
||||
"mute": "Stäng av ljud",
|
||||
"muteAll": "Stäng av all ljud",
|
||||
"muteEveryoneElse": "Inaktivera ljud för alla deltagare",
|
||||
"startModeration": "Slå på ljudet själv eller starta video",
|
||||
"stopEveryonesVideo": "Inaktivera allas video",
|
||||
"stopVideo": "Inaktivera video",
|
||||
"unblockEveryoneMicCamera": "Aktivera allas mikrofon och kamera"
|
||||
}
|
||||
},
|
||||
"polls": {
|
||||
"create": {
|
||||
"addOption": "Lägg till alternativ",
|
||||
"answerPlaceholder": "Alternativ",
|
||||
"create": "Skapa en omröstning",
|
||||
"cancel": "Cancellera",
|
||||
"pollOption": "Alternativ för omröstning",
|
||||
"pollQuestion": "Fråga för omröstning",
|
||||
"questionPlaceholder": "Ställ en fråga",
|
||||
"removeOption": "Ta bort alternativ",
|
||||
"send": "Skicka"
|
||||
},
|
||||
"answer": {
|
||||
"skip": "Skicka",
|
||||
"submit": "Skippa"
|
||||
},
|
||||
"results": {
|
||||
"vote": "Rösta",
|
||||
"changeVote": "Ändra din röst",
|
||||
"empty": "Det finns inga omröstningar i mötet än. Starta en omröstning här!",
|
||||
"hideDetailedResults": "Göm deltaljer",
|
||||
"showDetailedResults": "Visa detaljer"
|
||||
},
|
||||
"notification": {
|
||||
"title": "En ny omröstning har blivit tillagd till detta möte",
|
||||
"description": "Öppna fliken omröstningar för att rösta"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"about": "Du kan lägga till en $t(lockRoomPassword) till ditt möte. Deltagarna måste ange $t(lockRoomPassword) innan de får gå med i mötet.",
|
||||
"aboutReadOnly": "Moderatorn kan lägga till en $t(lockRoomPassword) till mötet. Deltagarna måste ange $t(lockRoomPassword) innan de får gå med i mötet.",
|
||||
"insecureRoomNameWarning": "Rummets namn är osäkert. Oönskade deltagare kan gå med i din konferens. Överväg att säkra ditt möte med hjälp av säkerhetsknappen.",
|
||||
"securityOptions": "Säkerhetsalternativ"
|
||||
},
|
||||
"volumeSlider": "Volymreglage"
|
||||
}
|
||||
|
||||
@@ -70,10 +70,12 @@
|
||||
"noMessagesMessage": "ఈ సమావేశంలో ఇంకా సందేశాలేమీ లేవు. ఇక్కడ ఒక సంభాషణను మొదలుపెట్టండి!",
|
||||
"nickname": {
|
||||
"popover": "ఒక మారుపేరు ఎంచుకోండి",
|
||||
"title": "సంభాషణను మొదలుపెట్టడానికి ఒక మారుపేరును ఇవ్వండి"
|
||||
"title": "సంభాషణను మొదలుపెట్టడానికి ఒక మారుపేరును ఇవ్వండి",
|
||||
"titleWithPolls": "సంభాషణను మొదలుపెట్టడానికి ఒక మారుపేరును ఇవ్వండి"
|
||||
},
|
||||
"privateNotice": "{{recipient}}కి అంతరంగిక సందేశం",
|
||||
"title": "సంభాషణ",
|
||||
"titleWithPolls": "సంభాషణ",
|
||||
"you": "మీరు"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -67,12 +67,13 @@
|
||||
"noMessagesMessage": "Toplantıda henüz mesaj yok. Burada bir konuşma başlatın!",
|
||||
"nickname": {
|
||||
"popover": "Bir takma ad seçin",
|
||||
"title": "Sohbette kullanmak için bir takma ad girin"
|
||||
"title": "Sohbette kullanmak için bir takma ad girin",
|
||||
"titleWithPolls": "Sohbette kullanmak için bir takma ad girin"
|
||||
},
|
||||
"privateNotice": "{{recipient}} için özel mesaj",
|
||||
"privateNotice": "{{recipient}} için özel mesaj",
|
||||
"title": "Sohbet",
|
||||
"titleWithPolls": "Sohbet",
|
||||
"you": "sen"
|
||||
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Toplantıya bağlanılıyor..."
|
||||
|
||||
@@ -67,10 +67,12 @@
|
||||
"noMessagesMessage": "У цій конференції відсутні повідомлення. Будь ласка, почніть розмову тут.",
|
||||
"nickname": {
|
||||
"popover": "Зазначте ім'я",
|
||||
"title": "Зазначте ваше ім'я для чату"
|
||||
"title": "Зазначте ваше ім'я для чату",
|
||||
"titleWithPolls": "Зазначте ваше ім'я для чату"
|
||||
},
|
||||
"privateNotice": "Приватне повідомлення для {{recipient}}",
|
||||
"title": "Чат",
|
||||
"titleWithPolls": "Чат",
|
||||
"you": "Ви"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
{
|
||||
"addPeople": {
|
||||
"add": "Mời",
|
||||
"copyInvite": "Sao chép lời mời",
|
||||
"countryNotSupported": "Chúng tôi chưa hỗ trợ đích đến này.",
|
||||
"countryReminder": "Đang gọi ra ngoài Mỹ? Đảm bảo bắt đầu bằng mã quốc gia!",
|
||||
"disabled": "Bạn không thể mời thêm người.",
|
||||
"failedToAdd": "",
|
||||
"footerText": "Quay số bị tắt.",
|
||||
"inviteMorePrompt": "Mời thêm người tham dự",
|
||||
"loading": "Đang tìm kiếm người hoặc số điện thoại.",
|
||||
"loadingNumber": "Đang xác nhận số điện thoại.",
|
||||
"loadingPeople": "Đang tìm kiếm người để mời",
|
||||
@@ -14,6 +16,8 @@
|
||||
"searchNumbers": "Thêm số điện thoại",
|
||||
"searchPeople": "Tìm người",
|
||||
"searchPeopleAndNumbers": "Tìm người và thêm số",
|
||||
"shareLink": "Chia sẻ đường dẫn để mời người khác tham dự cuộc họp",
|
||||
"shareInvite": "Chia sẻ lời mời tham dự cuộc họp",
|
||||
"telephone": "Số:{{number}}",
|
||||
"title": "Mời người tham dự cuộc họp này"
|
||||
},
|
||||
@@ -45,13 +49,16 @@
|
||||
"today": "Hôm nay"
|
||||
},
|
||||
"chat": {
|
||||
"error": "Lỗi: thông điệp của bạn \"{{originalText}}\" không được gửi. Nguyên nhân: {{error}}",
|
||||
"messagebox": "Nhập một thông điệp",
|
||||
"error": "Lỗi: tin nhắn của bạn \"{{originalText}}\" không được gửi. Nguyên nhân: {{error}}",
|
||||
"messagebox": "Nhập nội dung tin nhắn",
|
||||
"nickname": {
|
||||
"popover": "Chọn biệt danh",
|
||||
"title": "Nhập một tên để sử dụng Chat"
|
||||
"popover": "Chọn tên",
|
||||
"title": "Nhập tên của bạn để tán gẫu",
|
||||
"titleWithPolls": "Nhập tên của bạn để tán gẫu"
|
||||
},
|
||||
"title": "Chat"
|
||||
"title": "Tán gẫu",
|
||||
"titleWithPolls": "Tán gẫu",
|
||||
"you": "bạn"
|
||||
},
|
||||
"connectingOverlay": {
|
||||
"joiningRoom": "Đang kết nối tới cuộc họp của bạn…"
|
||||
@@ -94,6 +101,7 @@
|
||||
"remoteport_0": "Cổng từ xa:",
|
||||
"remoteport_1": "Các cổng từ xa:",
|
||||
"resolution": "Độ phân giải:",
|
||||
"participant_id": "ID của người tham dự:",
|
||||
"status": "Kết nối:",
|
||||
"transport_0": "Vận chuyển:",
|
||||
"transport_1": "Các vận chuyển:",
|
||||
@@ -160,8 +168,12 @@
|
||||
"dismiss": "Hủy",
|
||||
"displayNameRequired": "",
|
||||
"done": "Xong",
|
||||
"e2eeDescription": "Mã hóa end-to-end vẫn đang trong giai đoạn THỬ NGHIỆM. Vui lòng lưu ý rằng việc kích hoạt mã hóa end-to-end sẽ tắt một số tính năng trên máy chủ bao gồm: ghi hình, phát trực tiếp và tham gia cuộc họp từ điện thoại. Đồng thời vui lòng lưu ý rằng chỉ có thể tham dự cuộc họp từ các trình duyệt có hỗ trợ nhúng luồng.",
|
||||
"e2eeLabel": "Kích hoạt mã hóa end-to-end",
|
||||
"e2eeWarning": " CẢNH BÁO: Có vẻ không phải phải tất cả mọi người trong cuộc họp này đều hỗ trợ mã hóa end-to-end. Nếu bạn kích hoạt nó, họ sẽ có thể không còn nghe hoặc thấy gì nữa.",
|
||||
"enterDisplayName": "",
|
||||
"error": "Lỗi",
|
||||
"grantModeratorDialog": " Bạn có thực sự muốn cấp quyền quản trị cho người này?",
|
||||
"externalInstallationMsg": "Bạn cần cài đặt tiện ích mở rộng chia sẻ máy tính của chúng tôi.",
|
||||
"externalInstallationTitle": "Yêu cầu tiện ích mở rộng",
|
||||
"goToStore": "Đi tới cửa hàng trên mạng",
|
||||
@@ -194,10 +206,19 @@
|
||||
"micNotSendingDataTitle": "",
|
||||
"micPermissionDeniedError": "Bạn chưa cấp phép sử dụng microphone của bạn. Bạn vẫn có thể tham gia hội nghị nhưng những người khác sẽ không nghe thấy bạn. Sử dụng nút camera trên thanh địa chỉ để sửa lỗi này.",
|
||||
"micUnknownError": "Không thể sử dụng microphone vì lý do không rõ ràng.",
|
||||
"muteEveryoneElseDialog": "Một khi đã tắt tiếng, bạn không thể bật lại. Nhưng họ có thể tự mở tiếng lại bất kỳ lúc nào.",
|
||||
"muteEveryoneElseTitle": "Tắt tiếng tất cả ngoại trừ {{whom}}?",
|
||||
"muteEveryoneDialog": " Bạn có thực sự muốn tắt tiếng tất cả mọi người? Bạn sẽ không thể bật lại tiếng cho họ nhưng họ có thể tự mở tiếng lại bất kỳ lúc nào.",
|
||||
"muteEveryoneTitle": "Tắt tiếng tất cả mọi người?",
|
||||
"muteEveryonesVideoDialog": " Bạn có chắc muốn tắt camera của tất cả mọi người? Bạn không thể mở lại camera của người tham dự nhưng họ có thể mở lại bất kỳ lúc nào.",
|
||||
"muteEveryonesVideoTitle": "Tắt camera của tất cả mọi người?",
|
||||
"muteParticipantBody": "Bạn không thể tắt tiếng của họ, nhưng họ có thể tự tắt tiếng bất cứ lúc nào.",
|
||||
"muteParticipantButton": "Tắt tiếng",
|
||||
"muteParticipantDialog": "Bạn muốn tắt tiếng của người này? Bạn sẽ không thể bật lại tiếng, nhưng họ có thể tự bật lại tiếng bất cứ lúc nào.",
|
||||
"muteParticipantTitle": "Tắt tiếng của người tham dự này?",
|
||||
"muteParticipantsVideoButton": "Tắt camera",
|
||||
"muteParticipantsVideoTitle": "Tắt camera của người này?",
|
||||
"muteParticipantsVideoBody": "Bạn không thể bật lại camera, nhưng họ có thể bật lại bất kỳ lúc nào.",
|
||||
"Ok": "Được",
|
||||
"passwordLabel": "",
|
||||
"passwordNotSupported": "Phòng họp không hỗ trợ khóa bằng mật khẩu.",
|
||||
@@ -223,6 +244,7 @@
|
||||
"reservationError": "Lỗi hệ thống đặt phòng",
|
||||
"reservationErrorMsg": "Mã lỗi: {{code}}, thông báo: {{msg}}",
|
||||
"retry": "Thử lại",
|
||||
"screenSharingAudio": "Chia sẻ âm thanh",
|
||||
"screenSharingFailedToInstall": "Duh! Không cài đặt được bộ mở rộng chia sẻ màn hình",
|
||||
"screenSharingFailedToInstallTitle": "Duh! Bộ mở rộng chia sẻ màn hình có vấn đề với cấu hình bảo mật. Làm ơn tải và thử lại ",
|
||||
"screenSharingFirefoxPermissionDeniedError": "Có gì đó sai khi chúng tôi cố gắng chia sẻ màn hình của bạn. Vui lòng đảm bảo bạn đã cho phép chúng tôi thực hiện.",
|
||||
@@ -261,6 +283,32 @@
|
||||
"dialOut": {
|
||||
"statusMessage": "hiện đang {{status}}"
|
||||
},
|
||||
"embedMeeting": {
|
||||
"title": "Nhúng cuộc họp"
|
||||
},
|
||||
"virtualBackground": {
|
||||
"apply": "Áp dụng",
|
||||
"title": "Hình nền ảo",
|
||||
"blur": "Làm mờ",
|
||||
"slightBlur": "Làm mờ nhẹ",
|
||||
"removeBackground": "Xóa hình nền",
|
||||
"addBackground": "Thêm hình nền",
|
||||
"pleaseWait": "Vui lòng đợi...",
|
||||
"none": "Không có",
|
||||
"uploadedImage": "Tải ảnh lên {{index}}",
|
||||
"deleteImage": "Xóa ảnh",
|
||||
"image1": "Bãi biển",
|
||||
"image2": "Tường trắng trung tính",
|
||||
"image3": "Phòng trống màu trắng",
|
||||
"image4": "Đèn sàn màu đen",
|
||||
"image5": "Núi",
|
||||
"image6": "Rừng",
|
||||
"image7": "Mặt trời mọc",
|
||||
"desktopShareError": "Không thể chia sẻ màn hình",
|
||||
"desktopShare": "Chia sẻ màn hình",
|
||||
"webAssemblyWarning": "WebAssembly không được hỗ trợ",
|
||||
"backgroundEffectError": "Không thể áp dụng hiệu ứng hình nền."
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Trung bình",
|
||||
"bad": "Kém",
|
||||
@@ -428,6 +476,25 @@
|
||||
"newDeviceAudioTitle": "Thiết bị âm thanh mới được phát hiện",
|
||||
"newDeviceAction": "Sử dụng"
|
||||
},
|
||||
"participantsPane": {
|
||||
"headings": {
|
||||
"lobby": "Phòng chờ ({{count}})",
|
||||
"participantsList": "Những người tham dự ({{count}})",
|
||||
"waitingLobby": "Đang đợi ở phòng chờ ({{count}})"
|
||||
},
|
||||
"actions": {
|
||||
"muteEveryoneElse": "Tắt tiếng những người khác",
|
||||
"invite": "Mời người tham dự",
|
||||
"askUnmute": "Yêu cầu bật tiếng",
|
||||
"mute": "Tắt tiếng",
|
||||
"muteAll": "Tắt tiếng tất cả mọi người",
|
||||
"muteEveryoneElse": "Tắt tiếng tất cả những người khác",
|
||||
"startModeration": "Unmute themselves or start video",
|
||||
"stopEveryonesVideo": "Tắt hình của tất cả mọi người",
|
||||
"stopVideo": "Tắt hình",
|
||||
"unblockEveryoneMicCamera": "Mở khóa camera và micro của tất cả mọi người"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "được thiết lập bởi một người khác",
|
||||
"passwordDigitsOnly": "",
|
||||
"poweredby": "Được hỗ trợ bởi",
|
||||
@@ -479,6 +546,11 @@
|
||||
"sectionList": {
|
||||
"pullToRefresh": "Kéo để làm tươi"
|
||||
},
|
||||
"security": {
|
||||
"about": "Bạn có thể thiết lập mật khẩu cho cuộc họp. Người tham dự cần phải nhập mật khẩu trước khi được phép vào phòng họp.",
|
||||
"insecureRoomNameWarning": "Cuộc họp này không bảo mật. Những người tham dự không mong muốn có thể tham gia cuộc họp của bạn.",
|
||||
"securityOptions": "Tùy chọn bảo mật"
|
||||
},
|
||||
"settings": {
|
||||
"calendar": {
|
||||
"about": "{{appName}} tích hợp lịch được sử dụng để truy cập bảo mật lịch để lấy thông tin sự kiện sắp tới.",
|
||||
@@ -549,6 +621,7 @@
|
||||
"document": "Mở/Đóng tài liệu được chia sẻ",
|
||||
"feedback": "Để lại phản hồi",
|
||||
"fullScreen": "Mở/Đóng toàn màn hình",
|
||||
"grantModerator": "Cấp quyền quản trị",
|
||||
"hangup": "Rời cuộc gọi",
|
||||
"invite": "Mời người tham gia",
|
||||
"kick": "Đẩy người tham gia ra",
|
||||
@@ -557,6 +630,9 @@
|
||||
"moreActions": "Mở/Đóng Thêm hành động",
|
||||
"moreActionsMenu": "Menu Thêm hành động",
|
||||
"mute": "Mở/Đóng Tắt tiếng",
|
||||
"muteEveryone": "Tắt tiếng tất cả mọi người",
|
||||
"muteEveryoneElse": "Tắt tiếng những người khác",
|
||||
"muteEveryonesVideo": "Tắt tất cả camera",
|
||||
"pip": "Mở/Đóng chế độ Hình-trong-Hình",
|
||||
"profile": "Chỉnh sửa hồ sơ cá nhân",
|
||||
"raiseHand": "Mở/Đóng Giơ tay",
|
||||
@@ -572,9 +648,12 @@
|
||||
"tileView": "Mở/Đóng Xem dạng lưới",
|
||||
"toggleCamera": "Mở/Đóng Camera",
|
||||
"videomute": "Mở/Đóng Tiếng, Hình",
|
||||
"videoblur": ""
|
||||
"videoblur": "Chuyển đổi làm mờ video",
|
||||
"selectBackground": "Chọn hình nền"
|
||||
},
|
||||
"addPeople": "Thêm người vào cuộc gọi",
|
||||
"audioSettings": "Cài đặt âm thanh",
|
||||
"videoSettings": "Cài đặt hình ảnh",
|
||||
"audioOnlyOff": "Chế độ chỉ tắt tiếng",
|
||||
"audioOnlyOn": "Bật chế độ Chỉ âm thanh",
|
||||
"audioRoute": "Chọn thiết bị âm thanh",
|
||||
@@ -596,11 +675,17 @@
|
||||
"lowerYourHand": "Hạ tay",
|
||||
"moreActions": "Thêm hành động",
|
||||
"mute": "Tắt tiếng / Bật tiếng",
|
||||
"muteEveryone": "Tắt tiếng tất cả mọi người",
|
||||
"muteEveryonesVideo": "Tắt tất cả camera",
|
||||
"noisyAudioInputTitle": "Micro của bạn dường như có nhiều tiếng ồn!",
|
||||
"noisyAudioInputDesc": "Dường như micro của bạn đang tạo ra tiếng ồn. Vui lòng tắt tiếng hoặc thay thiết bị khác.",
|
||||
"openChat": "Mở Chat",
|
||||
"participants": "Những người tham dự",
|
||||
"pip": "Vào chế độ Ảnh-trong-Ảnh",
|
||||
"profile": "Chỉnh sửa hồ sơ cá nhân",
|
||||
"raiseHand": "Giơ / Hạ tay",
|
||||
"raiseYourHand": "Giơ tay",
|
||||
"security": "Tùy chọn bảo mật",
|
||||
"Settings": "Cài đặt",
|
||||
"sharedvideo": "Chia sẻ YouTube video",
|
||||
"shareRoom": "Mời ai đó",
|
||||
@@ -616,7 +701,8 @@
|
||||
"toggleCamera": "Mở/Đóng Camera",
|
||||
"videomute": "Bật / Tắt camera",
|
||||
"startvideoblur": "",
|
||||
"stopvideoblur": ""
|
||||
"stopvideoblur": "",
|
||||
"selectBackground": "Chọn hình nền"
|
||||
},
|
||||
"transcribing": {
|
||||
"ccButtonTooltip": "Chạy/Dừng phụ đề",
|
||||
@@ -655,7 +741,7 @@
|
||||
"videoStatus": {
|
||||
"audioOnly": "AUD",
|
||||
"audioOnlyExpanded": "Bạn đang ở chế độ chỉ tiếng. Chế độ này giảm băng thông nhưng không thấy hình ảnh người khác.",
|
||||
"callQuality": "",
|
||||
"callQuality": "Chất lượng hình ảnh",
|
||||
"hd": "HD",
|
||||
"highDefinition": "HD",
|
||||
"labelTooiltipNoVideo": "Không hình ảnh",
|
||||
@@ -670,6 +756,7 @@
|
||||
"videothumbnail": {
|
||||
"domute": "Tắt tiếng",
|
||||
"flip": "Lật",
|
||||
"grantModerator": "Cấp quyền quản trị",
|
||||
"kick": "Đẩy ra",
|
||||
"moderator": "Quản trị viên",
|
||||
"mute": "Người tham gia bị tắt tiếng",
|
||||
@@ -706,4 +793,4 @@
|
||||
"terms": "Điều kiện",
|
||||
"title": "Bảo mật, đầy đủ tính năng và miễn phí hoàn toàn"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -68,10 +68,12 @@
|
||||
"noMessagesMessage": "会议中还没有消息,在这里开始谈话吧!",
|
||||
"nickname": {
|
||||
"popover": "选择一个昵称",
|
||||
"title": "输入一个昵称用于聊天"
|
||||
"title": "输入一个昵称用于聊天",
|
||||
"titleWithPolls": "输入一个昵称用于聊天"
|
||||
},
|
||||
"privateNotice": "与 {{recipient}} 的私人聊天",
|
||||
"title": "话题",
|
||||
"titleWithPolls": "话题",
|
||||
"you": "您"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
|
||||
@@ -66,10 +66,12 @@
|
||||
"noMessagesMessage": "此會議尚無訊息。在此開始對話交談!",
|
||||
"nickname": {
|
||||
"popover": "選擇名稱",
|
||||
"title": "輸入名稱來使用交談"
|
||||
"title": "輸入名稱來使用交談",
|
||||
"titleWithPolls": "輸入名稱來使用交談"
|
||||
},
|
||||
"privateNotice": "私人訊息傳送至 {{recipient}}",
|
||||
"title": "對話",
|
||||
"titleWithPolls": "對話",
|
||||
"you": "您",
|
||||
"message": "訊息",
|
||||
"messageAccessibleTitle": "{{user}} 說:",
|
||||
|
||||
@@ -66,7 +66,8 @@
|
||||
"noMessagesMessage": "There are no messages in the meeting yet. Start a conversation here!",
|
||||
"nickname": {
|
||||
"popover": "Choose a nickname",
|
||||
"title": "Enter a nickname to use chat and polls"
|
||||
"title": "Enter a nickname to use chat",
|
||||
"titleWithPolls": "Enter a nickname to use chat and polls"
|
||||
},
|
||||
"privateNotice": "Private message to {{recipient}}",
|
||||
"message": "Message",
|
||||
@@ -77,7 +78,8 @@
|
||||
"chat": "Chat",
|
||||
"polls": "Polls"
|
||||
},
|
||||
"title": "Chat and Polls",
|
||||
"title": "Chat",
|
||||
"titleWithPolls": "Chat and Polls",
|
||||
"you": "you"
|
||||
},
|
||||
"chromeExtensionBanner": {
|
||||
@@ -216,8 +218,8 @@
|
||||
"embedMeeting": "Embed meeting",
|
||||
"error": "Error",
|
||||
"gracefulShutdown": "Our service is currently down for maintenance. Please try again later.",
|
||||
"grantModeratorDialog": "Are you sure you want to make this participant a moderator?",
|
||||
"grantModeratorTitle": "Grant moderator",
|
||||
"grantModeratorDialog": "Are you sure you want to grant moderator rights to {{participantName}}?",
|
||||
"grantModeratorTitle": "Grant moderator rights",
|
||||
"hideShareAudioHelper": "Don't show this dialog again",
|
||||
"IamHost": "I am the host",
|
||||
"incorrectRoomLockPassword": "Incorrect password",
|
||||
@@ -247,15 +249,19 @@
|
||||
"micPermissionDeniedError": "You have not granted permission to use your microphone. You can still join the conference but others won't hear you. Use the camera button in the address bar to fix this.",
|
||||
"micTimeoutError": "Could not start audio source. Timeout occured!",
|
||||
"micUnknownError": "Cannot use microphone for an unknown reason.",
|
||||
"moderationAudioLabel": "Allow attendees to unmute themselves",
|
||||
"moderationVideoLabel": "Allow attendees to start their video",
|
||||
"muteEveryoneElseDialog": "Once muted, you won't be able to unmute them, but they can unmute themselves at any time.",
|
||||
"muteEveryoneElseTitle": "Mute everyone except {{whom}}?",
|
||||
"muteEveryoneDialog": "Are you sure you want to mute everyone? You won't be able to unmute them, but they can unmute themselves at any time.",
|
||||
"muteEveryoneDialog": "The participants can unmute themselves at any time.",
|
||||
"muteEveryoneDialogModerationOn": "The participants can send a request to speak at any time.",
|
||||
"muteEveryoneTitle": "Mute everyone?",
|
||||
"muteEveryoneElsesVideoDialog": "Once the camera is disabled, you won't be able to turn it back on, but they can turn it back on at any time.",
|
||||
"muteEveryoneElsesVideoTitle": "Disable everyone's camera except {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "Are you sure you want to disable everyone's camera? You won't be able to turn it back on, but they can turn it back on at any time.",
|
||||
"muteEveryoneElsesVideoTitle": "Stop everyone's video except {{whom}}?",
|
||||
"muteEveryonesVideoDialog": "The participants can turn on their video at any time.",
|
||||
"muteEveryonesVideoDialogModerationOn": "The participants can send a request to turn on their video at any time.",
|
||||
"muteEveryonesVideoDialogOk": "Disable",
|
||||
"muteEveryonesVideoTitle": "Disable everyone's camera?",
|
||||
"muteEveryonesVideoTitle": "Stop everyone's video?",
|
||||
"muteEveryoneSelf": "yourself",
|
||||
"muteEveryoneStartMuted": "Everyone starts muted from now on",
|
||||
"muteParticipantBody": "You won't be able to unmute them, but they can unmute themselves at any time.",
|
||||
@@ -263,7 +269,7 @@
|
||||
"muteParticipantDialog": "Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.",
|
||||
"muteParticipantsVideoDialog": "Are you sure you want to turn off this participant's camera? You won't be able to turn the camera back on, but they can turn it back on at any time.",
|
||||
"muteParticipantTitle": "Mute this participant?",
|
||||
"muteParticipantsVideoButton": "Disable camera",
|
||||
"muteParticipantsVideoButton": "Stop camera",
|
||||
"muteParticipantsVideoTitle": "Disable camera of this participant?",
|
||||
"muteParticipantsVideoBody": "You won't be able to turn the camera back on, but they can turn it back on at any time.",
|
||||
"noDropboxToken": "No valid Dropbox token",
|
||||
@@ -327,6 +333,7 @@
|
||||
"shareScreenWarningH1": "If you want to share just your screen:",
|
||||
"shareScreenWarningD1": "you need to stop audio sharing before sharing your screen.",
|
||||
"shareScreenWarningD2": "you need to stop audio sharing, start screen sharing and check the \"share audio\" option.",
|
||||
"sharedVideoLinkPlaceholder": "YouTube link or direct video link",
|
||||
"stopLiveStreaming": "Stop live stream",
|
||||
"stopRecording": "Stop recording",
|
||||
"stopRecordingWarning": "Are you sure you would like to stop the recording?",
|
||||
@@ -386,7 +393,8 @@
|
||||
"image7" : "Sunrise",
|
||||
"desktopShareError": "Could not create desktop share",
|
||||
"desktopShare":"Desktop share",
|
||||
"webAssemblyWarning": "WebAssembly not supported"
|
||||
"webAssemblyWarning": "WebAssembly not supported",
|
||||
"backgroundEffectError": "Failed to apply background effect."
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Average",
|
||||
@@ -541,29 +549,30 @@
|
||||
"lockRoomPasswordUppercase": "Password",
|
||||
"me": "me",
|
||||
"notify": {
|
||||
"allowAction": "Allow",
|
||||
"allowedUnmute": "You can unmute your microphone, start your camera or share your screen.",
|
||||
"connectedOneMember": "{{name}} joined the meeting",
|
||||
"connectedThreePlusMembers": "{{name}} and {{count}} others joined the meeting",
|
||||
"connectedThreePlusMembers": "{{name}} and many others joined the meeting",
|
||||
"connectedTwoMembers": "{{first}} and {{second}} joined the meeting",
|
||||
"disconnected": "disconnected",
|
||||
"focus": "Conference focus",
|
||||
"focusFail": "{{component}} not available - retry in {{ms}} sec",
|
||||
"grantedTo": "Moderator rights granted to {{to}}!",
|
||||
"hostAskedUnmute": "The host would like you to unmute",
|
||||
"hostAskedUnmute": "The moderator would like you to speak",
|
||||
"invitedOneMember": "{{name}} has been invited",
|
||||
"invitedThreePlusMembers": "{{name}} and {{count}} others have been invited",
|
||||
"invitedTwoMembers": "{{first}} and {{second}} have been invited",
|
||||
"kickParticipant": "{{kicked}} was kicked by {{kicker}}",
|
||||
"me": "Me",
|
||||
"moderator": "Moderator rights granted!",
|
||||
"moderator": "You're now a moderator",
|
||||
"muted": "You have started the conversation muted.",
|
||||
"mutedTitle": "You're muted!",
|
||||
"mutedRemotelyTitle": "You have been muted by {{participantDisplayName}}!",
|
||||
"mutedRemotelyTitle": "You've been muted by {{moderator}}",
|
||||
"mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.",
|
||||
"videoMutedRemotelyTitle": "Your camera has been disabled by {{participantDisplayName}}!",
|
||||
"videoMutedRemotelyTitle": "Your camera has been turned off by {{moderator}}",
|
||||
"videoMutedRemotelyDescription": "You can always turn it on again.",
|
||||
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant",
|
||||
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant",
|
||||
"raisedHand": "{{name}} would like to speak.",
|
||||
"raisedHand": "Would like to speak.",
|
||||
"screenShareNoAudio": " Share audio box was not checked in the window selection screen.",
|
||||
"screenShareNoAudioTitle": "Couldn't share system audio!",
|
||||
"somebody": "Somebody",
|
||||
@@ -579,12 +588,12 @@
|
||||
"oldElectronClientDescription1": "You appear to be using an old version of the Jitsi Meet client which has known security vulnerabilities. Please make sure you update to our ",
|
||||
"oldElectronClientDescription2": "latest build",
|
||||
"oldElectronClientDescription3": " now!",
|
||||
"moderationInEffectDescription": "Please raise hand if you want to speak",
|
||||
"moderationInEffectCSDescription": "Please raise hand if you want to share your video",
|
||||
"moderationInEffectVideoDescription": "Please raise your hand if you want your video to be visible",
|
||||
"moderationInEffectTitle": "The microphone is muted by the moderator",
|
||||
"moderationInEffectCSTitle": "Content sharing is disabled by moderator",
|
||||
"moderationInEffectVideoTitle": "The video is muted by the moderator",
|
||||
"moderationInEffectDescription": "Please raise hand if you want to speak.",
|
||||
"moderationInEffectCSDescription": "Please raise hand if you want to share your screen.",
|
||||
"moderationInEffectVideoDescription": "Please raise your hand if you want to start your camera.",
|
||||
"moderationInEffectTitle": "Your microphone is muted by the moderator",
|
||||
"moderationInEffectCSTitle": "Screen sharing is blocked by the moderator",
|
||||
"moderationInEffectVideoTitle": "Your camera is blocked by the moderator",
|
||||
"moderationRequestFromModerator": "The host would like you to unmute",
|
||||
"moderationRequestFromParticipant": "Wants to speak",
|
||||
"moderationStartedTitle": "Moderation started",
|
||||
@@ -604,16 +613,17 @@
|
||||
},
|
||||
"actions": {
|
||||
"allow": "Allow attendees to:",
|
||||
"audioModeration": "Unmute themselves",
|
||||
"blockEveryoneMicCamera": "Block everyone's mic and camera",
|
||||
"invite": "Invite Someone",
|
||||
"askUnmute": "Ask to unmute",
|
||||
"mute": "Mute",
|
||||
"muteAll": "Mute all",
|
||||
"muteEveryoneElse": "Mute everyone else",
|
||||
"startModeration": "Unmute themselves or start video",
|
||||
"stopEveryonesVideo": "Stop everyone's video",
|
||||
"stopVideo": "Stop video",
|
||||
"unblockEveryoneMicCamera": "Unblock everyone's mic and camera"
|
||||
"unblockEveryoneMicCamera": "Unblock everyone's mic and camera",
|
||||
"videoModeration": "Start their video"
|
||||
}
|
||||
},
|
||||
"passwordSetRemotely": "Set by another participant",
|
||||
@@ -867,7 +877,7 @@
|
||||
"embedMeeting": "Embed meeting",
|
||||
"feedback": "Leave feedback",
|
||||
"fullScreen": "Toggle full screen",
|
||||
"grantModerator": "Grant Moderator",
|
||||
"grantModerator": "Grant Moderator Rights",
|
||||
"hangup": "Leave the meeting",
|
||||
"help": "Help",
|
||||
"invite": "Invite people",
|
||||
@@ -1053,7 +1063,7 @@
|
||||
"domuteOthers": "Mute everyone else",
|
||||
"domuteVideoOfOthers": "Disable camera of everyone else",
|
||||
"flip": "Flip",
|
||||
"grantModerator": "Grant Moderator",
|
||||
"grantModerator": "Grant Moderator Rights",
|
||||
"kick": "Kick out",
|
||||
"moderator": "Moderator",
|
||||
"mute": "Participant is muted",
|
||||
|
||||
@@ -39,6 +39,7 @@ import {
|
||||
} from '../../react/features/device-selection/functions';
|
||||
import { isEnabled as isDropboxEnabled } from '../../react/features/dropbox';
|
||||
import { toggleE2EE } from '../../react/features/e2ee/actions';
|
||||
import { setVolume } from '../../react/features/filmstrip';
|
||||
import { invite } from '../../react/features/invite';
|
||||
import {
|
||||
selectParticipantInLargeVideo
|
||||
@@ -174,6 +175,9 @@ function initCommands() {
|
||||
sendAnalytics(createApiEvent('largevideo.participant.set'));
|
||||
APP.store.dispatch(selectParticipantInLargeVideo(participantId));
|
||||
},
|
||||
'set-participant-volume': (participantId, volume) => {
|
||||
APP.store.dispatch(setVolume(participantId, volume));
|
||||
},
|
||||
'subject': subject => {
|
||||
sendAnalytics(createApiEvent('subject.changed'));
|
||||
APP.store.dispatch(setSubject(subject));
|
||||
@@ -1325,6 +1329,32 @@ class API {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) that an error occured.
|
||||
*
|
||||
* @param {Object} error - The error.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyError(error: Object) {
|
||||
this._sendEvent({
|
||||
name: 'error-occurred',
|
||||
error
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application ( if API is enabled) that a toolbar button was clicked.
|
||||
*
|
||||
* @param {string} key - The key of the toolbar button.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyToolbarButtonClicked(key: string) {
|
||||
this._sendEvent({
|
||||
name: 'toolbar-button-clicked',
|
||||
key
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Disposes the allocated resources.
|
||||
*
|
||||
|
||||
@@ -15,8 +15,3 @@ export const API_ID = parseURLParams(window.location).jitsi_meet_external_api_id
|
||||
* The payload name for the datachannel/endpoint text message event
|
||||
*/
|
||||
export const ENDPOINT_TEXT_MESSAGE_NAME = 'endpoint-text-message';
|
||||
|
||||
/**
|
||||
* The payload name for the datachannel/endpoint reaction event
|
||||
*/
|
||||
export const ENDPOINT_REACTION_NAME = 'endpoint-reaction';
|
||||
|
||||
5
modules/API/external/external_api.js
vendored
5
modules/API/external/external_api.js
vendored
@@ -46,6 +46,7 @@ const commands = {
|
||||
sendTones: 'send-tones',
|
||||
setFollowMe: 'set-follow-me',
|
||||
setLargeVideoParticipant: 'set-large-video-participant',
|
||||
setParticipantVolume: 'set-participant-volume',
|
||||
setTileView: 'set-tile-view',
|
||||
setVideoQuality: 'set-video-quality',
|
||||
startRecording: 'start-recording',
|
||||
@@ -81,6 +82,7 @@ const events = {
|
||||
'device-list-changed': 'deviceListChanged',
|
||||
'display-name-change': 'displayNameChange',
|
||||
'email-change': 'emailChange',
|
||||
'error-occurred': 'errorOccurred',
|
||||
'endpoint-text-message-received': 'endpointTextMessageReceived',
|
||||
'feedback-submitted': 'feedbackSubmitted',
|
||||
'feedback-prompt-displayed': 'feedbackPromptDisplayed',
|
||||
@@ -110,7 +112,8 @@ const events = {
|
||||
'dominant-speaker-changed': 'dominantSpeakerChanged',
|
||||
'subject-change': 'subjectChange',
|
||||
'suspend-detected': 'suspendDetected',
|
||||
'tile-view-changed': 'tileViewChanged'
|
||||
'tile-view-changed': 'tileViewChanged',
|
||||
'toolbar-button-clicked': 'toolbarButtonClicked'
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -98,14 +98,21 @@ function computeCameraVideoSize( // eslint-disable-line max-params
|
||||
}
|
||||
|
||||
const aspectRatio = videoWidth / videoHeight;
|
||||
const videoSpaceRatio = videoSpaceWidth / videoSpaceHeight;
|
||||
|
||||
switch (videoLayoutFit) {
|
||||
case 'height':
|
||||
return [ videoSpaceHeight * aspectRatio, videoSpaceHeight ];
|
||||
case 'width':
|
||||
return [ videoSpaceWidth, videoSpaceWidth / aspectRatio ];
|
||||
case 'nocrop':
|
||||
return computeCameraVideoSize(
|
||||
videoWidth,
|
||||
videoHeight,
|
||||
videoSpaceWidth,
|
||||
videoSpaceHeight,
|
||||
videoSpaceRatio < aspectRatio ? 'width' : 'height');
|
||||
case 'both': {
|
||||
const videoSpaceRatio = videoSpaceWidth / videoSpaceHeight;
|
||||
const maxZoomCoefficient = interfaceConfig.MAXIMUM_ZOOMING_COEFFICIENT
|
||||
|| Infinity;
|
||||
|
||||
|
||||
46
package-lock.json
generated
46
package-lock.json
generated
@@ -2752,11 +2752,18 @@
|
||||
}
|
||||
},
|
||||
"@jitsi/sdp-interop": {
|
||||
"version": "github:jitsi/sdp-interop#5fc4af6dcf8a6e6af9fedbcd654412fd47b1b4ae",
|
||||
"from": "github:jitsi/sdp-interop#5fc4af6dcf8a6e6af9fedbcd654412fd47b1b4ae",
|
||||
"version": "github:jitsi/sdp-interop#98cd62cc00f92c8c2430e52ca746a86813658e83",
|
||||
"from": "github:jitsi/sdp-interop#98cd62cc00f92c8c2430e52ca746a86813658e83",
|
||||
"requires": {
|
||||
"lodash.clonedeep": "4.5.0",
|
||||
"sdp-transform": "2.3.0"
|
||||
"sdp-transform": "2.14.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"sdp-transform": {
|
||||
"version": "2.14.1",
|
||||
"resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.1.tgz",
|
||||
"integrity": "sha512-RjZyX3nVwJyCuTo5tGPx+PZWkDMCg7oOLpSlhjDdZfwUoNqG1mM8nyj31IGHyaPWXhjbP7cdK3qZ2bmkJ1GzRw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@jitsi/sdp-simulcast": {
|
||||
@@ -7482,12 +7489,18 @@
|
||||
}
|
||||
},
|
||||
"dropbox": {
|
||||
"version": "4.0.9",
|
||||
"resolved": "https://registry.npmjs.org/dropbox/-/dropbox-4.0.9.tgz",
|
||||
"integrity": "sha512-UeaKw7DY24ZGLRV8xboZvbZXhbTVrFjPjfpr0LfF/KVOzBUad9vJJwqz3udqTLNxD0FXbFlC9rlNLLNXaj9msg==",
|
||||
"version": "10.7.0",
|
||||
"resolved": "https://registry.npmjs.org/dropbox/-/dropbox-10.7.0.tgz",
|
||||
"integrity": "sha512-btNLOYHxukACfnkEUNhlTPCnkecfbL89mrPU3RMKAWdCQXM18aRLm+t+0xIpzvRUSGeXPER+3d+QJk5Wi+4QGw==",
|
||||
"requires": {
|
||||
"buffer": "^5.0.8",
|
||||
"moment": "^2.19.3"
|
||||
"node-fetch": "^2.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"duplexer": {
|
||||
@@ -11104,11 +11117,11 @@
|
||||
}
|
||||
},
|
||||
"lib-jitsi-meet": {
|
||||
"version": "github:jitsi/lib-jitsi-meet#61c977f70ab353013a40e7daaeb5fc3713526984",
|
||||
"from": "github:jitsi/lib-jitsi-meet#61c977f70ab353013a40e7daaeb5fc3713526984",
|
||||
"version": "github:jitsi/lib-jitsi-meet#fbf85bdcec64185431cd6012060f4d4e922c573f",
|
||||
"from": "github:jitsi/lib-jitsi-meet#fbf85bdcec64185431cd6012060f4d4e922c573f",
|
||||
"requires": {
|
||||
"@jitsi/js-utils": "1.0.2",
|
||||
"@jitsi/sdp-interop": "github:jitsi/sdp-interop#5fc4af6dcf8a6e6af9fedbcd654412fd47b1b4ae",
|
||||
"@jitsi/sdp-interop": "github:jitsi/sdp-interop#98cd62cc00f92c8c2430e52ca746a86813658e83",
|
||||
"@jitsi/sdp-simulcast": "0.4.0",
|
||||
"async": "0.9.0",
|
||||
"base64-js": "1.3.1",
|
||||
@@ -15062,6 +15075,11 @@
|
||||
"react-native-iphone-x-helper": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"react-native-performance": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-performance/-/react-native-performance-2.0.0.tgz",
|
||||
"integrity": "sha512-jKM9Qg0SkL9D9ad377nxb1VV+OXJSyYyIrBHKmM6CABNxfrLVA5xkQMEibjmZQde7b0ndJOZoQAiObgJjjc4VQ=="
|
||||
},
|
||||
"react-native-sound": {
|
||||
"version": "github:jitsi/react-native-sound#3fe5480fce935e888d5089d94a191c7c7e3aa190",
|
||||
"from": "github:jitsi/react-native-sound#3fe5480fce935e888d5089d94a191c7c7e3aa190"
|
||||
@@ -15183,9 +15201,9 @@
|
||||
"integrity": "sha512-iqdJ1KpZbR4XGahgVmaeibB7kDhyMT7wrylINgJaYBY38IAiI0LF32VX1umO4pko6n21YF5I/kSeNQ+OXGqqow=="
|
||||
},
|
||||
"react-native-webrtc": {
|
||||
"version": "1.92.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.92.0.tgz",
|
||||
"integrity": "sha512-nztKQ/SmO1DgA3QWCDHHK8ZVDf+5rLbmH42Ukoqnld7ut8/ehmFZXc17aSV/BN0H60jPigGqAMYopt/LZak7Sg==",
|
||||
"version": "1.92.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-1.92.1.tgz",
|
||||
"integrity": "sha512-cbFU1acL9aud/ohk/40jwahSNac4PwBKdmRPgXb9WqaGwxAr4CgSsrBRmruCISMdw0Pec+ZoZtYjXVuHzF51sg==",
|
||||
"requires": {
|
||||
"base64-js": "^1.1.2",
|
||||
"cross-os": "^1.3.0",
|
||||
|
||||
@@ -47,7 +47,8 @@
|
||||
"base64-js": "1.3.1",
|
||||
"bc-css-flags": "3.0.0",
|
||||
"clipboard-copy": "4.0.1",
|
||||
"dropbox": "4.0.9",
|
||||
"clsx": "1.1.1",
|
||||
"dropbox": "10.7.0",
|
||||
"focus-visible": "5.1.0",
|
||||
"i18n-iso-countries": "6.8.0",
|
||||
"i18next": "17.0.6",
|
||||
@@ -58,7 +59,7 @@
|
||||
"jquery-i18next": "1.2.1",
|
||||
"js-md5": "0.6.1",
|
||||
"jwt-decode": "2.2.0",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#61c977f70ab353013a40e7daaeb5fc3713526984",
|
||||
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#fbf85bdcec64185431cd6012060f4d4e922c573f",
|
||||
"libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "2.29.1",
|
||||
@@ -83,6 +84,7 @@
|
||||
"react-native-immersive": "2.0.0",
|
||||
"react-native-keep-awake": "4.0.0",
|
||||
"react-native-paper": "4.8.1",
|
||||
"react-native-performance": "2.0.0",
|
||||
"react-native-sound": "github:jitsi/react-native-sound#3fe5480fce935e888d5089d94a191c7c7e3aa190",
|
||||
"react-native-splash-screen": "3.2.0",
|
||||
"react-native-svg": "12.1.0",
|
||||
@@ -90,7 +92,7 @@
|
||||
"react-native-url-polyfill": "1.2.0",
|
||||
"react-native-video": "5.1.1",
|
||||
"react-native-watch-connectivity": "0.4.3",
|
||||
"react-native-webrtc": "1.92.0",
|
||||
"react-native-webrtc": "1.92.1",
|
||||
"react-native-webview": "11.0.2",
|
||||
"react-native-youtube-iframe": "2.1.1",
|
||||
"react-redux": "7.1.0",
|
||||
|
||||
@@ -181,7 +181,7 @@ export function initAnalytics({ getState }: { getState: Function }, handlers: Ar
|
||||
permanentProperties.appName = getAppName();
|
||||
|
||||
// Report if user is using websocket
|
||||
permanentProperties.websocket = navigator.product !== 'ReactNative' && typeof config.websocket === 'string';
|
||||
permanentProperties.websocket = typeof config.websocket === 'string';
|
||||
|
||||
// Report if user is using the external API
|
||||
permanentProperties.externalApi = typeof API_ID === 'number';
|
||||
|
||||
@@ -42,6 +42,7 @@ import '../recording/middleware';
|
||||
import '../rejoin/middleware';
|
||||
import '../room-lock/middleware';
|
||||
import '../rtcstats/middleware';
|
||||
import '../speaker-stats/middleware';
|
||||
import '../subtitles/middleware';
|
||||
import '../toolbox/middleware';
|
||||
import '../transcribing/middleware';
|
||||
|
||||
@@ -46,6 +46,7 @@ import '../reactions/reducer';
|
||||
import '../recent-list/reducer';
|
||||
import '../recording/reducer';
|
||||
import '../settings/reducer';
|
||||
import '../speaker-stats/reducer';
|
||||
import '../subtitles/reducer';
|
||||
import '../screen-share/reducer';
|
||||
import '../toolbox/reducer';
|
||||
|
||||
@@ -29,22 +29,40 @@ export const ENABLE_MODERATION = 'ENABLE_MODERATION';
|
||||
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that A/V Moderation disable has been requested.
|
||||
* The type of (redux) action which signals that Audio Moderation disable has been requested.
|
||||
*
|
||||
* {
|
||||
* type: REQUEST_DISABLE_MODERATION
|
||||
* type: REQUEST_DISABLE_AUDIO_MODERATION
|
||||
* }
|
||||
*/
|
||||
export const REQUEST_DISABLE_MODERATION = 'REQUEST_DISABLE_MODERATION';
|
||||
export const REQUEST_DISABLE_AUDIO_MODERATION = 'REQUEST_DISABLE_AUDIO_MODERATION';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that A/V Moderation enable has been requested.
|
||||
* The type of (redux) action which signals that Video Moderation disable has been requested.
|
||||
*
|
||||
* {
|
||||
* type: REQUEST_ENABLE_MODERATION
|
||||
* type: REQUEST_DISABLE_VIDEO_MODERATION
|
||||
* }
|
||||
*/
|
||||
export const REQUEST_ENABLE_MODERATION = 'REQUEST_ENABLE_MODERATION';
|
||||
export const REQUEST_DISABLE_VIDEO_MODERATION = 'REQUEST_DISABLE_VIDEO_MODERATION';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that Audio Moderation enable has been requested.
|
||||
*
|
||||
* {
|
||||
* type: REQUEST_ENABLE_AUDIO_MODERATION
|
||||
* }
|
||||
*/
|
||||
export const REQUEST_ENABLE_AUDIO_MODERATION = 'REQUEST_ENABLE_AUDIO_MODERATION';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that Video Moderation enable has been requested.
|
||||
*
|
||||
* {
|
||||
* type: REQUEST_ENABLE_VIDEO_MODERATION
|
||||
* }
|
||||
*/
|
||||
export const REQUEST_ENABLE_VIDEO_MODERATION = 'REQUEST_ENABLE_VIDEO_MODERATION';
|
||||
|
||||
/**
|
||||
* The type of (redux) action which signals that the local participant had been approved.
|
||||
|
||||
@@ -11,9 +11,12 @@ import {
|
||||
LOCAL_PARTICIPANT_MODERATION_NOTIFICATION,
|
||||
PARTICIPANT_APPROVED,
|
||||
PARTICIPANT_PENDING_AUDIO,
|
||||
REQUEST_DISABLE_MODERATION,
|
||||
REQUEST_ENABLE_MODERATION
|
||||
REQUEST_DISABLE_AUDIO_MODERATION,
|
||||
REQUEST_ENABLE_AUDIO_MODERATION,
|
||||
REQUEST_DISABLE_VIDEO_MODERATION,
|
||||
REQUEST_ENABLE_VIDEO_MODERATION
|
||||
} from './actionTypes';
|
||||
import { isEnabledFromState } from './functions';
|
||||
|
||||
/**
|
||||
* Action used by moderator to approve audio and video for a participant.
|
||||
@@ -22,10 +25,15 @@ import {
|
||||
* @returns {void}
|
||||
*/
|
||||
export const approveParticipant = (id: string) => (dispatch: Function, getState: Function) => {
|
||||
const { conference } = getConferenceState(getState());
|
||||
const state = getState();
|
||||
const { conference } = getConferenceState(state);
|
||||
|
||||
conference.avModerationApprove(MEDIA_TYPE.AUDIO, id);
|
||||
conference.avModerationApprove(MEDIA_TYPE.VIDEO, id);
|
||||
if (isEnabledFromState(MEDIA_TYPE.AUDIO, state)) {
|
||||
conference.avModerationApprove(MEDIA_TYPE.AUDIO, id);
|
||||
}
|
||||
if (isEnabledFromState(MEDIA_TYPE.VIDEO, state)) {
|
||||
conference.avModerationApprove(MEDIA_TYPE.VIDEO, id);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -89,28 +97,54 @@ export const enableModeration = (mediaType: MediaType, actor: Object) => {
|
||||
};
|
||||
|
||||
/**
|
||||
* Requests disable of audio and video moderation.
|
||||
* Requests disable of audio moderation.
|
||||
*
|
||||
* @returns {{
|
||||
* type: REQUEST_DISABLE_MODERATED_AUDIO
|
||||
* type: REQUEST_DISABLE_AUDIO_MODERATION
|
||||
* }}
|
||||
*/
|
||||
export const requestDisableModeration = () => {
|
||||
export const requestDisableAudioModeration = () => {
|
||||
return {
|
||||
type: REQUEST_DISABLE_MODERATION
|
||||
type: REQUEST_DISABLE_AUDIO_MODERATION
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Requests enabled audio & video moderation.
|
||||
* Requests disable of video moderation.
|
||||
*
|
||||
* @returns {{
|
||||
* type: REQUEST_ENABLE_MODERATED_AUDIO
|
||||
* type: REQUEST_DISABLE_VIDEO_MODERATION
|
||||
* }}
|
||||
*/
|
||||
export const requestEnableModeration = () => {
|
||||
export const requestDisableVideoModeration = () => {
|
||||
return {
|
||||
type: REQUEST_ENABLE_MODERATION
|
||||
type: REQUEST_DISABLE_VIDEO_MODERATION
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Requests enable of audio moderation.
|
||||
*
|
||||
* @returns {{
|
||||
* type: REQUEST_ENABLE_AUDIO_MODERATION
|
||||
* }}
|
||||
*/
|
||||
export const requestEnableAudioModeration = () => {
|
||||
return {
|
||||
type: REQUEST_ENABLE_AUDIO_MODERATION
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Requests enable of video moderation.
|
||||
*
|
||||
* @returns {{
|
||||
* type: REQUEST_ENABLE_VIDEO_MODERATION
|
||||
* }}
|
||||
*/
|
||||
export const requestEnableVideoModeration = () => {
|
||||
return {
|
||||
type: REQUEST_ENABLE_VIDEO_MODERATION
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
import React from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useSelector } from 'react-redux';
|
||||
|
||||
import NotificationWithParticipants from '../../notifications/components/web/NotificationWithParticipants';
|
||||
import {
|
||||
approveParticipant,
|
||||
dismissPendingAudioParticipant
|
||||
} from '../actions';
|
||||
import { getParticipantsAskingToAudioUnmute } from '../functions';
|
||||
|
||||
|
||||
/**
|
||||
* Component used to display a list of participants who asked to be unmuted.
|
||||
* This is visible only to moderators.
|
||||
*
|
||||
* @returns {React$Element<'ul'> | null}
|
||||
*/
|
||||
export default function() {
|
||||
const participants = useSelector(getParticipantsAskingToAudioUnmute);
|
||||
const { t } = useTranslation();
|
||||
|
||||
return participants.length
|
||||
? (
|
||||
<>
|
||||
<div className = 'title'>
|
||||
{ t('raisedHand') }
|
||||
</div>
|
||||
<NotificationWithParticipants
|
||||
approveButtonText = { t('notify.unmute') }
|
||||
onApprove = { approveParticipant }
|
||||
onReject = { dismissPendingAudioParticipant }
|
||||
participants = { participants }
|
||||
rejectButtonText = { t('dialog.dismiss') }
|
||||
testIdPrefix = 'avModeration' />
|
||||
</>
|
||||
) : null;
|
||||
}
|
||||
@@ -17,3 +17,15 @@ export const MEDIA_TYPE_TO_PENDING_STORE_KEY: {[key: MediaType]: string} = {
|
||||
[MEDIA_TYPE.AUDIO]: 'pendingAudio',
|
||||
[MEDIA_TYPE.VIDEO]: 'pendingVideo'
|
||||
};
|
||||
|
||||
export const ASKED_TO_UNMUTE_SOUND_ID = 'ASKED_TO_UNMUTE_SOUND';
|
||||
|
||||
export const AUDIO_MODERATION_NOTIFICATION_ID = 'audio-moderation';
|
||||
export const VIDEO_MODERATION_NOTIFICATION_ID = 'video-moderation';
|
||||
export const CS_MODERATION_NOTIFICATION_ID = 'screensharing-moderation';
|
||||
|
||||
export const MODERATION_NOTIFICATIONS = {
|
||||
[MEDIA_TYPE.AUDIO]: AUDIO_MODERATION_NOTIFICATION_ID,
|
||||
[MEDIA_TYPE.VIDEO]: VIDEO_MODERATION_NOTIFICATION_ID,
|
||||
[MEDIA_TYPE.PRESENTER]: CS_MODERATION_NOTIFICATION_ID
|
||||
};
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// @flow
|
||||
import { batch } from 'react-redux';
|
||||
|
||||
import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../base/app';
|
||||
import { getConferenceState } from '../base/conference';
|
||||
import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
|
||||
import { MEDIA_TYPE } from '../base/media';
|
||||
import {
|
||||
getLocalParticipant,
|
||||
getParticipantDisplayName,
|
||||
getRemoteParticipants,
|
||||
isLocalParticipantModerator,
|
||||
isParticipantModerator,
|
||||
@@ -14,18 +14,19 @@ import {
|
||||
raiseHand
|
||||
} from '../base/participants';
|
||||
import { MiddlewareRegistry, StateListenerRegistry } from '../base/redux';
|
||||
import { playSound, registerSound, unregisterSound } from '../base/sounds';
|
||||
import {
|
||||
hideNotification,
|
||||
NOTIFICATION_TIMEOUT,
|
||||
showNotification
|
||||
} from '../notifications';
|
||||
import { muteLocal } from '../video-menu/actions.any';
|
||||
|
||||
import {
|
||||
DISABLE_MODERATION,
|
||||
ENABLE_MODERATION,
|
||||
LOCAL_PARTICIPANT_MODERATION_NOTIFICATION,
|
||||
REQUEST_DISABLE_MODERATION,
|
||||
REQUEST_ENABLE_MODERATION
|
||||
REQUEST_DISABLE_AUDIO_MODERATION,
|
||||
REQUEST_DISABLE_VIDEO_MODERATION,
|
||||
REQUEST_ENABLE_AUDIO_MODERATION,
|
||||
REQUEST_ENABLE_VIDEO_MODERATION
|
||||
} from './actionTypes';
|
||||
import {
|
||||
disableModeration,
|
||||
@@ -36,38 +37,29 @@ import {
|
||||
participantApproved,
|
||||
participantPendingAudio
|
||||
} from './actions';
|
||||
import {
|
||||
ASKED_TO_UNMUTE_SOUND_ID, AUDIO_MODERATION_NOTIFICATION_ID,
|
||||
CS_MODERATION_NOTIFICATION_ID,
|
||||
VIDEO_MODERATION_NOTIFICATION_ID
|
||||
} from './constants';
|
||||
import {
|
||||
isEnabledFromState,
|
||||
isParticipantApproved,
|
||||
isParticipantPending
|
||||
} from './functions';
|
||||
|
||||
const VIDEO_MODERATION_NOTIFICATION_ID = 'video-moderation';
|
||||
const AUDIO_MODERATION_NOTIFICATION_ID = 'audio-moderation';
|
||||
const CS_MODERATION_NOTIFICATION_ID = 'video-moderation';
|
||||
import { ASKED_TO_UNMUTE_FILE } from './sounds';
|
||||
|
||||
MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
const { actor, mediaType, type } = action;
|
||||
const { type } = action;
|
||||
const { conference } = getConferenceState(getState());
|
||||
|
||||
switch (type) {
|
||||
case DISABLE_MODERATION:
|
||||
case ENABLE_MODERATION: {
|
||||
// Audio & video moderation are both enabled at the same time.
|
||||
// Avoid displaying 2 different notifications.
|
||||
if (mediaType === MEDIA_TYPE.VIDEO) {
|
||||
const titleKey = type === ENABLE_MODERATION
|
||||
? 'notify.moderationStartedTitle'
|
||||
: 'notify.moderationStoppedTitle';
|
||||
|
||||
dispatch(showNotification({
|
||||
descriptionKey: actor ? 'notify.moderationToggleDescription' : undefined,
|
||||
descriptionArguments: actor ? {
|
||||
participantDisplayName: getParticipantDisplayName(getState, actor.getId())
|
||||
} : undefined,
|
||||
titleKey
|
||||
}, NOTIFICATION_TIMEOUT));
|
||||
}
|
||||
|
||||
case APP_WILL_MOUNT: {
|
||||
dispatch(registerSound(ASKED_TO_UNMUTE_SOUND_ID, ASKED_TO_UNMUTE_FILE));
|
||||
break;
|
||||
}
|
||||
case APP_WILL_UNMOUNT: {
|
||||
dispatch(unregisterSound(ASKED_TO_UNMUTE_SOUND_ID));
|
||||
break;
|
||||
}
|
||||
case LOCAL_PARTICIPANT_MODERATION_NOTIFICATION: {
|
||||
@@ -78,19 +70,16 @@ MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
switch (action.mediaType) {
|
||||
case MEDIA_TYPE.AUDIO: {
|
||||
titleKey = 'notify.moderationInEffectTitle';
|
||||
descriptionKey = 'notify.moderationInEffectDescription';
|
||||
uid = AUDIO_MODERATION_NOTIFICATION_ID;
|
||||
break;
|
||||
}
|
||||
case MEDIA_TYPE.VIDEO: {
|
||||
titleKey = 'notify.moderationInEffectVideoTitle';
|
||||
descriptionKey = 'notify.moderationInEffectVideoDescription';
|
||||
uid = VIDEO_MODERATION_NOTIFICATION_ID;
|
||||
break;
|
||||
}
|
||||
case MEDIA_TYPE.PRESENTER: {
|
||||
titleKey = 'notify.moderationInEffectCSTitle';
|
||||
descriptionKey = 'notify.moderationInEffectCSDescription';
|
||||
uid = CS_MODERATION_NOTIFICATION_ID;
|
||||
break;
|
||||
}
|
||||
@@ -110,17 +99,19 @@ MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
|
||||
break;
|
||||
}
|
||||
case REQUEST_DISABLE_MODERATION: {
|
||||
const { conference } = getConferenceState(getState());
|
||||
|
||||
case REQUEST_DISABLE_AUDIO_MODERATION: {
|
||||
conference.disableAVModeration(MEDIA_TYPE.AUDIO);
|
||||
break;
|
||||
}
|
||||
case REQUEST_DISABLE_VIDEO_MODERATION: {
|
||||
conference.disableAVModeration(MEDIA_TYPE.VIDEO);
|
||||
break;
|
||||
}
|
||||
case REQUEST_ENABLE_MODERATION: {
|
||||
const { conference } = getConferenceState(getState());
|
||||
|
||||
case REQUEST_ENABLE_AUDIO_MODERATION: {
|
||||
conference.enableAVModeration(MEDIA_TYPE.AUDIO);
|
||||
break;
|
||||
}
|
||||
case REQUEST_ENABLE_VIDEO_MODERATION: {
|
||||
conference.enableAVModeration(MEDIA_TYPE.VIDEO);
|
||||
break;
|
||||
}
|
||||
@@ -174,12 +165,14 @@ StateListenerRegistry.register(
|
||||
|
||||
// Audio & video moderation are both enabled at the same time.
|
||||
// Avoid displaying 2 different notifications.
|
||||
if (mediaType === MEDIA_TYPE.VIDEO) {
|
||||
if (mediaType === MEDIA_TYPE.AUDIO) {
|
||||
dispatch(showNotification({
|
||||
titleKey: 'notify.unmute',
|
||||
descriptionKey: 'notify.hostAskedUnmute',
|
||||
sticky: true
|
||||
titleKey: 'notify.hostAskedUnmute',
|
||||
sticky: true,
|
||||
customActionNameKey: 'notify.unmute',
|
||||
customActionHandler: () => dispatch(muteLocal(false, MEDIA_TYPE.AUDIO))
|
||||
}));
|
||||
dispatch(playSound(ASKED_TO_UNMUTE_SOUND_ID));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
6
react/features/av-moderation/sounds.js
Normal file
6
react/features/av-moderation/sounds.js
Normal file
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* The name of the bundled audio file which will be played for the raise hand sound.
|
||||
*
|
||||
* @type {string}
|
||||
*/
|
||||
export const ASKED_TO_UNMUTE_FILE = 'asked-unmute.mp3';
|
||||
@@ -100,6 +100,18 @@ export default class BaseApp extends Component<*, State> {
|
||||
this.state.store.dispatch(appWillUnmount(this));
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs for errors that were not caught.
|
||||
*
|
||||
* @param {Error} error - The error that was thrown.
|
||||
* @param {Object} info - Info about the error(stack trace);.
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
componentDidCatch(error: Error, info: Object) {
|
||||
logger.error(error, info);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delays this {@code BaseApp}'s startup until the {@code Storage}
|
||||
* implementation of {@code localStorage} initializes. While the
|
||||
|
||||
@@ -357,7 +357,7 @@ export function conferenceUniqueIdSet(conference: Object) {
|
||||
* the local participant will (try to) join.
|
||||
* @returns {Function}
|
||||
*/
|
||||
function _conferenceWillJoin(conference: Object) {
|
||||
export function _conferenceWillJoin(conference: Object) {
|
||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||
const localTracks
|
||||
= getLocalTracks(getState()['features/base/tracks'])
|
||||
|
||||
@@ -551,7 +551,7 @@ function _updateLocalParticipantInConference({ dispatch, getState }, next, actio
|
||||
|
||||
const localParticipant = getLocalParticipant(getState);
|
||||
|
||||
if (conference && participant.id === localParticipant.id) {
|
||||
if (conference && participant.id === localParticipant?.id) {
|
||||
if ('name' in participant) {
|
||||
conference.setDisplayName(participant.name);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ export default [
|
||||
'apiLogLevels',
|
||||
'avgRtpStatsN',
|
||||
'backgroundAlpha',
|
||||
'buttonsWithNotifyClick',
|
||||
|
||||
/**
|
||||
* The display name of the CallKit call representing the conference/meeting
|
||||
@@ -70,6 +71,7 @@ export default [
|
||||
'callUUID',
|
||||
|
||||
'channelLastN',
|
||||
'connectionIndicators',
|
||||
'constraints',
|
||||
'brandingRoomAlias',
|
||||
'debug',
|
||||
@@ -82,7 +84,9 @@ export default [
|
||||
'disableAGC',
|
||||
'disableAP',
|
||||
'disableAudioLevels',
|
||||
'disableChatSmileys',
|
||||
'disableDeepLinking',
|
||||
'disabledSounds',
|
||||
'disableFilmstripAutohiding',
|
||||
'disableInitialGUM',
|
||||
'disableH264',
|
||||
@@ -94,13 +98,16 @@ export default [
|
||||
'disableNS',
|
||||
'disablePolls',
|
||||
'disableProfile',
|
||||
'disableRecordAudioNotification',
|
||||
'disableRemoteControl',
|
||||
'disableRemoteMute',
|
||||
'disableResponsiveTiles',
|
||||
'disableRtx',
|
||||
'disableShortcuts',
|
||||
'disableShowMoreStats',
|
||||
'disableRemoveRaisedHandOnFocus',
|
||||
'disableSpeakerStatsSearch',
|
||||
'speakerStatsOrder',
|
||||
'disableSimulcast',
|
||||
'disableThirdPartyRequests',
|
||||
'disableTileView',
|
||||
@@ -108,6 +115,7 @@ export default [
|
||||
'doNotStoreRoom',
|
||||
'doNotFlipLocalVideo',
|
||||
'dropbox',
|
||||
'e2eeLabels',
|
||||
'e2eping',
|
||||
'enableDisplayNameInStats',
|
||||
'enableEmailInStats',
|
||||
@@ -117,10 +125,12 @@ export default [
|
||||
'enableLayerSuspension',
|
||||
'enableLipSync',
|
||||
'enableOpusRed',
|
||||
'enableReactions',
|
||||
'enableRemb',
|
||||
'enableSaveLogs',
|
||||
'enableScreenshotCapture',
|
||||
'enableTalkWhileMuted',
|
||||
'enableUnifiedOnChrome',
|
||||
'enableNoAudioDetection',
|
||||
'enableNoisyMicDetection',
|
||||
'enableTcc',
|
||||
@@ -134,6 +144,7 @@ export default [
|
||||
'forceTurnRelay',
|
||||
'gatherStats',
|
||||
'googleApiApplicationClientID',
|
||||
'hiddenPremeetingButtons',
|
||||
'hideConferenceSubject',
|
||||
'hideRecordingLabel',
|
||||
'hideParticipantsStats',
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user