Compare commits

...

112 Commits

Author SHA1 Message Date
Vadim A. Misbakh-Soloviov
a08da498dc (feat) OpenResty Support
Signed-off-by: Vadim A. Misbakh-Soloviov <git@mva.name>
2022-11-07 22:28:44 +07:00
Hristo Terezov
a995b33753 chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1528.0.0+23644901...v1530.0.0+f2af389e
2022-11-03 07:28:05 +01:00
Nils Ohlmeier
bfb15a2523 chore(deps) @jitsi/rtcstats 9.4.0 2022-11-03 07:26:14 +01:00
TTG
1d59c8122d fix(lang) update Chinese translations (#12344)
* Update Simplified Chinese translation

* Update Traditional Chinese translation

* Update translations

* Updated translation for #12391

* Updated translation for 12371
2022-11-02 16:41:26 -05:00
Hristo Terezov
31766c891b Fix get rooms info (#12492)
* Include local participant; filter out hidden participants for getRoomsInfo

* Review fixes: include ts changes and types

Co-authored-by: Bogdan Duduman <bogdan.duduman@8x8.com>
2022-11-02 12:06:45 -05:00
Robert Pintilii
7a3b8d6ac4 fix(recording-dialog) Fix broken dialog content (#12490) 2022-11-02 12:49:30 +02:00
Saúl Ibarra Corretgé
edf5e1c094 fix(ts) fix mysterious linting errors
We have a rule that should apply here, but somehow it doesn't...
2022-11-02 09:03:14 +01:00
Saúl Ibarra Corretgé
7cd39b7983 feat(ts) make tsc happy 2022-11-02 09:03:14 +01:00
Hristo Terezov
49bcf5c179 fix(iframeAPI): pinParticipant & setLargeVideo
Add the ability to specify video type when in multistream mode.
2022-11-01 18:33:09 -05:00
Filip Rejmus
2b3989e5e6 ref(features/base) remove no sound for id warn 2022-11-01 19:05:22 +01:00
Saúl Ibarra Corretgé
9b1e662a93 fix(connection-indicator) use SSRCs to match tiles to stats 2022-11-01 16:21:29 +01:00
Saúl Ibarra Corretgé
73160de3b7 fix(connection-stats) make local / remote layout consistent
Move region information and server count to the "More" section on both
types of tiles.
2022-11-01 16:21:29 +01:00
Saúl Ibarra Corretgé
f5fc524030 fix(connection-stats) fix rendering codec information
Ref: https://github.com/jitsi/lib-jitsi-meet/pull/2143
2022-11-01 16:21:29 +01:00
Saúl Ibarra Corretgé
6e3b3879cc chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1522.0.0+28436e57...v1528.0.0+23644901
2022-11-01 16:21:07 +01:00
Filip Rejmus
c9f9708166 ref(remove ReactInstanceHolder from AudioModule 2022-11-01 12:45:13 +01:00
Calinteodor
7a8350356a feat(base/react): removed old web Switch component and exports (#12481)
* feat(base/react): removed old Switch component and exports
2022-11-01 11:42:36 +02:00
Saúl Ibarra Corretgé
2596c463fe fix(ts) make tsc (almost) not cry on native
Co-authored-by: Calinteodor <calin.chitu@8x8.com>
Co-authored-by: Robert Pintilii <robert.pin9@gmail.com>
2022-11-01 10:07:10 +01:00
Saúl Ibarra Corretgé
2de0520835 chore(deps) eslint-config-jitsi@latest 2022-11-01 10:07:10 +01:00
JohnProv
c276c204ac lang: Update main-nl.json (#12479)
Fix name
2022-10-31 12:20:02 -05:00
Calinteodor
67cf6e6d18 feat(base/ui/native): removed unused files and updated imports (#12477)
* feat(base/ui/native): removed unused files and updated imports
2022-10-31 16:34:26 +02:00
Robert Pintilii
b321cf3639 ref(add-people-dialog) Update design (#12468)
Convert some files to TS
2022-10-31 09:56:26 +02:00
TTG
8e54a69160 feat: Adjust language list to be shown in native language (#12475)
* Remove language lists

* Replace with native language

* Remove languages resource
2022-10-29 09:20:50 -05:00
Milo Ivir
93e5e48648 lang: Update Croatian translation (#12441)
* Update Croatian translation

- update according to the current "main.json" file

* Update main-hr.json

- added the comma at line 486
I hope that solves the issue.
2022-10-28 11:22:25 -05:00
polfernandez
c945b9cc5e Misspelling. Update main-ca.json
There is a misspelling in the "joiningTitle" label. "S'està demanat per a entrar a la reunió...", should be "S'ha demanat per a entrar a la reunió..."
2022-10-28 09:33:39 -05:00
Robert Pintilii
7c3d2010e4 ref(TS) Convert some features to TS (#12471) 2022-10-28 11:53:24 +03:00
José Luís Andrade
894c5cd788 fix(lang) update Portuguese translation 2022-10-28 10:05:09 +02:00
chipechop
1c7e457879 fix(lang) update Italian translation 2022-10-28 10:04:30 +02:00
chipechop
b6b536962d fix(lang) update Italian language list 2022-10-28 10:03:35 +02:00
nomadbyte
b625b7b0ec fix(lang) update Ukrainian translation 2022-10-28 10:00:14 +02:00
Saúl Ibarra Corretgé
eb59949dfa fix(dialog,web) fix opening dialogs in succession
If onSubmit opens a new dialog, we'd be hiding it otherwise.
2022-10-28 08:57:56 +02:00
Robert Pintilii
69f4b116a9 ref(TS) Convert some features to TS (#12469) 2022-10-28 09:41:12 +03:00
Robert Pintilii
75d7c4b160 ref(dialog) Update some dialogs' styles (#12467) 2022-10-27 11:36:50 +03:00
Robert Pintilii
b5065306e5 ref(audio-popup) Replace InlineDialog with Popover (#12466) 2022-10-27 11:03:28 +03:00
Robert Pintilii
9f5a56bbc7 ref(TS) Convert some features to TS (#12462) 2022-10-27 10:33:11 +03:00
Mihaela Dumitru
b4809fe083 feat(gif) Support rating config + show display name over gif tile (#12461) 2022-10-26 16:23:39 +03:00
Robert Pintilii
6dedc7fb1a ref(TS) Convert some features to TS (#12454) 2022-10-26 09:59:21 +03:00
Robert Pintilii
a780051720 fix(input) Fix background color (#12452)
Use theme background on autofill Firefox
2022-10-26 09:09:58 +03:00
Armel Chesnais
51ac3ef64a fix(noise-suppression) exit out early if no input data to Worklet
Disconnecting the input node to the worklet causes the worklet to crash. Adding a guard clause for empty input prevents this.
2022-10-25 21:55:47 +02:00
Filip Rejmus
a915238b49 chore(deps) @react-native-async-storage 1.17.3 2022-10-25 21:49:59 +02:00
Robert Pintilii
687837310a ref(components) Replace some InlineDialogs with Popover (#12453)
Remove comments referencing InlineDialog
2022-10-25 16:11:55 +03:00
Robert Pintilii
7f879d2154 ref(SCSS) Remove some unused SASS variables (#12451) 2022-10-25 11:01:53 +03:00
Robert Pintilii
faec46dd17 ref(popover) Update Popover to support click trigger (#12447)
Convert Popover to TS
Update OverflowMenu to use Popover instead of InlineDialog
2022-10-24 12:51:18 +03:00
Saúl Ibarra Corretgé
33ec975e19 fix(rn,config) fix forcing VP8 for bridge calls 2022-10-24 10:28:38 +02:00
Saúl Ibarra Corretgé
db6165209b feat(rn) use H.264 (HW codec) for P2P calls
This requires a custom video encoder / decoder factory which uses the
hardware codec only for H.264 and the software implementations for the rest.
2022-10-24 10:28:38 +02:00
Robert Pintilii
27775de48d fix(label) Fix Participants Count label color (#12445) 2022-10-24 10:44:41 +03:00
Saúl Ibarra Corretgé
8818f4f4e6 fix(rn,filmstrip) fix dropping tiles on conference join 2022-10-21 18:45:56 +02:00
Jaya Allamsetty
aebe4885bb ref(filmstrip) Remove the option to disable thumbnail re-ordering. 2022-10-21 09:17:17 -04:00
Saúl Ibarra Corretgé
146cc2f9c9 fix(deps) update xmldom@0.7.6 2022-10-21 14:21:31 +02:00
Saúl Ibarra Corretgé
3b5878d078 fix(ios) also bump the lite SDK version when bumping versions 2022-10-21 13:34:30 +02:00
Robert Pintilii
6ab996568b ref(TS, rn) Fix some TS errors on tsconfig.native (#12432) 2022-10-21 14:09:15 +03:00
Robert Pintilii
4755f5a031 fix(dialog) Wrap dialog in FocusLock (#12431)
Improve accessibility by not allowing the user to navigate outside the dialog
2022-10-21 10:42:00 +03:00
Robert Pintilii
0b48e55a35 ref(TS) Convert some features to TS (#12425) 2022-10-21 10:33:10 +03:00
Hristo Terezov
9e1ac3bea6 fix(recording): recording link.
Show the start recording notification on jicofo update only. This way
the initiator will be available and we will be able to fetch and display
recording link and send iframe API event.
2022-10-20 20:09:50 -05:00
Shawn
7249406960 fix(persistent_lobby): properly destroy main room when empty 2022-10-20 12:15:56 -05:00
Saúl Ibarra Corretgé
a9f5829e58 fix(rn,filmstrip) clear participants cache when changing conferences 2022-10-20 17:03:30 +02:00
Saúl Ibarra Corretgé
4bb1697115 fix(filmstrip) prevent duplicated participants 2022-10-20 17:03:30 +02:00
Robert Pintilii
2938d1f2dc ref(TS) Require interfaces to start with I (#12424) 2022-10-20 12:11:27 +03:00
Robert Pintilii
10d202439b ref: Update npm scripts (#12422) 2022-10-20 11:17:57 +03:00
Robert Pintilii
af0715dc17 ref(keyboard-avoider) Don't use styled components (#12420) 2022-10-20 10:31:27 +03:00
Дамян Минков
601e21ffcd fix: Drops participants count white background. (#12416)
* fix: Drops participants count white background.

Currently, it is white background with white icon.

* squash: Drop unused import.
2022-10-19 11:42:28 -05:00
Robert Pintilii
ff29196f3a ref(participants-pane) Change to function component (#12410)
Use makeStyles instead of withStyles
2022-10-19 14:38:54 +03:00
Robert Pintilii
748b66b04a ref(toolbox) Convert feature to TS (#12413) 2022-10-19 14:38:38 +03:00
Robert Pintilii
ca4db54e6e ref(overflow-menu-button) Change to function component (#12411)
Use makeStyles instead of withStyles
2022-10-19 11:43:10 +03:00
Robert Pintilii
3eecf8063f ref(TS) Remove unnecessary ts-ignores (#12412)
Remove ts-ignores that are no longer needed because of tsconfig.web.json
Change ts-ignore to ts-expect-error for files outside react/features
2022-10-19 11:42:54 +03:00
Robert Pintilii
440339dea8 ref(display-name) Change to function component (#12402)
Use makeStyles instead of withStyles
2022-10-19 10:19:40 +03:00
Jaya Allamsetty
dbb0a953c6 chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1519.0.0+eb623e75...v1522.0.0+28436e57
2022-10-18 17:41:21 -04:00
Robert Pintilii
442ae6c3cb chore(TS): Create web tsconfig (#12381)
* fix(ts,connection) avoid mixing web and native code

* chore(ts) split config

The mobile part is still WIP.

* Remove default tsconfig

* Fix ts-loader - use web tsconfig

* Fix tsconfig

Use noEmit only on npm scripts (for type checking), but don't use it in webpack

* Fix

* Fix import

* Fix

Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
2022-10-18 11:21:48 -05:00
tamasdomokos
30051d2b0e feat(translation): add description for source language (#12371) 2022-10-18 14:42:51 +03:00
Robert Pintilii
9ae236a010 ref(keyboard-shortcuts) Change Dialog to function component (#12403)
Use makeStyles instead of withStyles
Fix style
2022-10-18 13:56:26 +03:00
Robert Pintilii
6f209a8139 ref(salesforce) Use new Dialog component (#12400) 2022-10-18 13:56:08 +03:00
Jaya Allamsetty
69567fb371 chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1508.0.0+238dd7b2...v1519.0.0+eb623e75
2022-10-17 20:16:33 -04:00
Jaya Allamsetty
66cddddd3e fix(video-layout) Fix auto-pinning latest screenshare. 2022-10-17 16:53:27 -04:00
bogdandarie
485c875ee5 feat(config) add ability to hide speaker stats 2022-10-17 22:40:13 +02:00
Horatiu Muresan
ceb1cd9673 fix(screenshare-jwt) Disable screen share based on jwt 2022-10-17 11:01:56 -05:00
Calinteodor
4d817af060 feat(settings/native): fixed scroll inside screen (#12395)
* feat(settings): fixed scroll, bottom insets and bounce
2022-10-17 18:14:40 +03:00
Дамян Минков
a082a3fb0f feat: Updates deb install texts. (#12394)
* fix: Changes dialog txt for deb install.

* squash: Adjust jaas account creation txt.

* squash: Small update.

* squash: Small update2.
2022-10-17 09:18:31 -05:00
Robert Pintilii
2a321d6b1f ref(TS) Convert some files to TS (#12364) 2022-10-17 14:28:01 +03:00
Robert Pintilii
dd6478b3cf ref(ui-components) Use new Dialog (#12363)
Convert some files to TS
Improve Dialog component
2022-10-17 14:27:48 +03:00
Saúl Ibarra Corretgé
6274299d49 chore(ios) sync project file 2022-10-17 12:51:30 +02:00
Alex Bumbu
d77d2f0c5b fix(iOS, layout): fix iOS 16 layout
This (partially) reverts commit ddab27e292.

We're reverting this to fix the iOS 16 layout problems caused by the interaction between the app rootViewControoler and JitsiMeetViewController, with the downside that using any RN components based on native view controllers will most likely be faulty. The solution for this would be to change the SDK's entry point to a view controller, instead of JitsiMeetView.
2022-10-17 12:33:44 +02:00
Janitz
33be0dc32e fix(lang) add chat.sendButton translation 2022-10-17 12:05:59 +02:00
Robert Pintilii
44c8b31187 ref(styles) Change some withStyles to makeStyles (#12373)
Convert PreMeetingScreen to TS and transform it to function component
2022-10-17 12:28:04 +03:00
bogdandarie
1279c5b0da fix(jaas) redirect to about blank when close meeting opened in iframe 2022-10-17 09:32:18 +02:00
bogdandarie
495957104c fix(notifications) don't show self view notifications if already one is active 2022-10-17 09:03:06 +02:00
Calinteodor
b558d7936c feat(chat): fixed chat counter (#12385)
* feat(chat): fixed chat counter and updated new messages button web styles
2022-10-14 17:09:42 +03:00
Calin-Teodor
1fe2a9193f feat(conference/native): adjusted carmode ui 2022-10-14 16:13:54 +03:00
Calin-Teodor
e8e6beabab feat(prejoin/native): adjusted room name margins 2022-10-14 16:00:44 +03:00
Saúl Ibarra Corretgé
3e31e1816d fix(ios) fix mute "ping-pong" 2022-10-14 14:32:09 +02:00
kerem
eb1c3d8c56 feat(deps,rn) update React Native to version 0.68.4 (#12376)
* BREAKING: update rn to 0.68.4
2022-10-14 14:37:10 +03:00
Saúl Ibarra Corretgé
4a54f4bedc fix(rn,large-video) don't render video for the local SS 2022-10-13 19:14:40 +02:00
Calinteodor
4d84123c71 feat(prejoin/native): clear notifications when joining (#12361)
* feat(prejoin/native): clear notifications when joining
2022-10-13 17:05:21 +03:00
Saúl Ibarra Corretgé
4018e8875f fix(rn,screensharing) fix build 2022-10-13 15:19:24 +02:00
Calinteodor
be93fbd512 feat(toolbox/conference/audio-mode/chat/native): UI fixes and updates (#12375)
feat(toolbox/conference/audio-mode/chat/native): UI fixes and updates
2022-10-13 16:13:00 +03:00
Robert Pintilii
51bbc3f87f ref(ui-components) Use new Button on prejoin (#12372) 2022-10-13 13:42:39 +03:00
Robert Pintilii
f5fb402784 ref(TS) Convert some features to TS (#12366) 2022-10-13 11:26:28 +03:00
Robert Pintilii
70503d2518 ref(label) Convert to function component (#12370)
Fixes issue where Label styles would take precedence over parent styles (raised hand counter would be gray instead of yellow)
2022-10-13 10:46:00 +03:00
Дамян Минков
40e1f28fc2 fix: Fix log messages in end_conference module. (#12369)
* fix: Fix log message.

From `general error No muc_component specified` to `endconference.meet.damencho.net:end_conference error No muc_component specified`

* squash: more.
2022-10-12 13:31:06 -05:00
Calinteodor
935f95a3d5 feat(prejoin/native): ui updates (#12368)
* feat(prejoin/native): ui updates
2022-10-12 15:43:11 +03:00
Hristo Terezov
53e4f584f9 fix(remote-control): when multistream is enabled 2022-10-11 15:48:24 -05:00
Saúl Ibarra Corretgé
e218c0d3af fix(conference) fix Spot wireless screen sharing
Make sure we use the same screen-sharing flow which takes multi-stream
into consideration.
2022-10-11 18:09:50 +02:00
Robert Pintilii
6c3206e4d4 ref: TS Improvements (#12358)
Remove unnecessary ts-ignores
Remove unnecessary eslint-disable
Fix type errors
Change Dispatch type to IStore['dispatch']
2022-10-11 13:47:54 +03:00
Saúl Ibarra Corretgé
6365b699c1 chore(deps) make sure all deps are pinned to exact versions 2022-10-11 11:16:00 +02:00
Saúl Ibarra Corretgé
768cca6162 fix(android) fix crash in Android < 10
Activity.registerActivityLifecycleCallbacks is only available in API level 29.

Ref: https://developer.android.com/reference/android/app/Activity.html#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)
2022-10-11 11:16:00 +02:00
Calinteodor
abdc5123eb feat(base/ui): fixed native button active style (#12353)
* feat(base/ui): fixed native button active style
2022-10-11 11:26:09 +03:00
Robert Pintilii
6423ed8fb5 ref(ui-components) Use new Dialog component (#12351)
Convert some files to TS
2022-10-11 11:24:11 +03:00
Robert Pintilii
b858496adb ref(ui-components) Use new Dialog component (#12349)
Convert some files to TS
Refactor MuteEveryone and MuteEveryonesVideo dialogs. Move shared code to abstract components. Remove unnecessary code
2022-10-10 12:12:02 +03:00
Jaya Allamsetty
68f79e52e7 fix(virtual-background) Remove unused action type VIRTUAL_BACKGROUND_TRACK_CHANGED. 2022-10-07 19:22:54 -04:00
Jaya Allamsetty
3f78de2d34 fix(virtual-backgroud) Remove desktop share as virtual background.
Its no longer supported in multi-stream mode.
2022-10-07 19:22:54 -04:00
Shawn
2029db5a59 fix(reservations): skip reservations check for breakout rooms 2022-10-07 17:07:28 -05:00
Jaya Allamsetty
6ede5c478f fix(external-api) Remove muted SS tracks from the list of participants currently screensharing.
Fixes an issue where 'contentSharingParticipantsChanged' event and 'getContentSharingParticipants' API continue to list IDs of the participants that have already stopped their screenshares.
2022-10-07 11:25:01 -04:00
Duduman Bogdan Vlad
2ba7b3acb7 fix(large-view) fix selection if local SS auto-select is true 2022-10-07 17:06:25 +02:00
robertpin
ebcd1d85f2 fix(local-recording) don't use tab audio
We have observed that participant audio is distant and garbled, so we
added the tracks individually to the mixer.

In addition, using tab audio prevents us from using preferCurrentTab due
to: https://bugs.chromium.org/p/chromium/issues/detail?id=1317964 so
losing audio effects but having better participant audio quality (in
addition to better UX) is not a bad compromise.
2022-10-07 17:04:31 +02:00
681 changed files with 7788 additions and 10782 deletions

View File

@@ -19,7 +19,7 @@ jobs:
run: npm run lang-sort
- name: Check if the git repository is clean
run: $(exit $(git status --porcelain --untracked-files=no | head -255 | wc -l)) || (echo "Dirty git tree"; git diff; exit 1)
- run: npm run lint
- run: npm run lint:ci
- run: for file in lang/*.json; do npx --yes jsonlint -q $file || exit 1; done
linux-build:
name: Build Frontend (Linux)

1
.gitignore vendored
View File

@@ -92,3 +92,4 @@ twa/*.apk
twa/*.aab
twa/assetlinks.json
tsconfig.json

View File

@@ -22,6 +22,8 @@ import android.os.Build;
import android.telecom.CallAudioState;
import androidx.annotation.RequiresApi;
import com.facebook.react.bridge.ReactContext;
import java.util.HashSet;
import java.util.Set;
@@ -49,6 +51,8 @@ class AudioDeviceHandlerConnectionService implements
*/
private AudioModeModule module;
private RNConnectionService rcs;
/**
* Converts any of the "DEVICE_" constants into the corresponding
* {@link android.telecom.CallAudioState} "ROUTE_" number.
@@ -141,8 +145,8 @@ class AudioDeviceHandlerConnectionService implements
JitsiMeetLogger.i("Using " + TAG + " as the audio device handler");
module = audioModeModule;
rcs = module.getContext().getNativeModule(RNConnectionService.class);
RNConnectionService rcs = ReactInstanceManagerHolder.getNativeModule(RNConnectionService.class);
if (rcs != null) {
rcs.setCallAudioStateListener(this);
} else {
@@ -152,9 +156,9 @@ class AudioDeviceHandlerConnectionService implements
@Override
public void stop() {
RNConnectionService rcs = ReactInstanceManagerHolder.getNativeModule(RNConnectionService.class);
if (rcs != null) {
rcs.setCallAudioStateListener(null);
rcs = null;
} else {
JitsiMeetLogger.w(TAG + " Couldn't set call audio state listener, module is null");
}

View File

@@ -26,10 +26,13 @@ import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import org.jitsi.meet.sdk.log.JitsiMeetLogger;
@@ -196,7 +199,7 @@ class AudioModeModule extends ReactContextBaseJavaModule {
deviceInfo.putBoolean("selected", device.equals(selectedDevice));
data.pushMap(deviceInfo);
}
ReactInstanceManagerHolder.emitEvent(DEVICE_CHANGE_EVENT, data);
getContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(DEVICE_CHANGE_EVENT, data);
JitsiMeetLogger.i(TAG + " Updating audio device list");
}
});
@@ -212,6 +215,10 @@ class AudioModeModule extends ReactContextBaseJavaModule {
return NAME;
}
public ReactContext getContext(){
return this.getReactApplicationContext();
}
/**
* Initializes the audio device handler module. This function is called *after* all Catalyst
* modules have been created, and that's why we use it, because {@link AudioDeviceHandlerConnectionService}

View File

@@ -0,0 +1,46 @@
/*
* Copyright 2017 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
package org.jitsi.meet.sdk;
import org.webrtc.VideoCodecInfo;
import java.util.Map;
import java.util.HashMap;
/** Container for static helper functions related to dealing with H264 codecs. */
class H264Utils {
public static final String H264_FMTP_PROFILE_LEVEL_ID = "profile-level-id";
public static final String H264_FMTP_LEVEL_ASYMMETRY_ALLOWED = "level-asymmetry-allowed";
public static final String H264_FMTP_PACKETIZATION_MODE = "packetization-mode";
public static final String H264_PROFILE_CONSTRAINED_BASELINE = "42e0";
public static final String H264_PROFILE_CONSTRAINED_HIGH = "640c";
public static final String H264_LEVEL_3_1 = "1f"; // 31 in hex.
public static final String H264_CONSTRAINED_HIGH_3_1 =
H264_PROFILE_CONSTRAINED_HIGH + H264_LEVEL_3_1;
public static final String H264_CONSTRAINED_BASELINE_3_1 =
H264_PROFILE_CONSTRAINED_BASELINE + H264_LEVEL_3_1;
public static Map<String, String> getDefaultH264Params(boolean isHighProfile) {
final Map<String, String> params = new HashMap<>();
params.put(VideoCodecInfo.H264_FMTP_LEVEL_ASYMMETRY_ALLOWED, "1");
params.put(VideoCodecInfo.H264_FMTP_PACKETIZATION_MODE, "1");
params.put(VideoCodecInfo.H264_FMTP_PROFILE_LEVEL_ID,
isHighProfile ? VideoCodecInfo.H264_CONSTRAINED_HIGH_3_1
: VideoCodecInfo.H264_CONSTRAINED_BASELINE_3_1);
return params;
}
public static VideoCodecInfo DEFAULT_H264_BASELINE_PROFILE_CODEC =
new VideoCodecInfo("H264", getDefaultH264Params(/* isHighProfile= */ false));
public static VideoCodecInfo DEFAULT_H264_HIGH_PROFILE_CODEC =
new VideoCodecInfo("H264", getDefaultH264Params(/* isHighProfile= */ true));
}

View File

@@ -15,6 +15,7 @@
*/
package org.jitsi.meet.sdk;
import android.app.Application;
import android.content.Context;
import android.util.Log;
@@ -22,6 +23,7 @@ import androidx.annotation.NonNull;
import androidx.startup.Initializer;
import com.facebook.soloader.SoLoader;
import org.wonday.orientation.OrientationActivityLifecycle;
import java.util.Collections;
import java.util.List;
@@ -37,6 +39,10 @@ public class JitsiInitializer implements Initializer<Boolean> {
// Register our uncaught exception handler.
JitsiMeetUncaughtExceptionHandler.register();
// Register activity lifecycle handler for the orientation locker module.
((Application) context).registerActivityLifecycleCallbacks(OrientationActivityLifecycle.getInstance());
return true;
}

View File

@@ -31,7 +31,6 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.facebook.react.modules.core.PermissionListener;
import org.wonday.orientation.OrientationActivityLifecycle;
import org.jitsi.meet.sdk.log.JitsiMeetLogger;
import java.util.HashMap;
@@ -104,7 +103,6 @@ public class JitsiMeetActivity extends AppCompatActivity
this.jitsiView = findViewById(R.id.jitsiView);
registerForBroadcastMessages();
registerActivityLifecycleCallbacks(OrientationActivityLifecycle.getInstance());
if (!extraInitialize()) {
initialize();

View File

@@ -31,12 +31,12 @@ import com.facebook.react.common.LifecycleState;
import com.facebook.react.jscexecutor.JSCExecutorFactory;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.uimanager.ViewManager;
import com.oney.WebRTCModule.EglUtils;
import com.oney.WebRTCModule.RTCVideoViewManager;
import com.oney.WebRTCModule.WebRTCModule;
import org.devio.rn.splashscreen.SplashScreenModule;
import org.webrtc.SoftwareVideoDecoderFactory;
import org.webrtc.SoftwareVideoEncoderFactory;
import org.webrtc.EglBase;
import org.webrtc.audio.AudioDeviceModule;
import org.webrtc.audio.JavaAudioDeviceModule;
@@ -89,8 +89,10 @@ class ReactInstanceManagerHolder {
.createAudioDeviceModule();
options.setAudioDeviceModule(adm);
options.setVideoDecoderFactory(new SoftwareVideoDecoderFactory());
options.setVideoEncoderFactory(new SoftwareVideoEncoderFactory());
EglBase.Context eglContext = EglUtils.getRootEglBaseContext();
options.setVideoDecoderFactory(new WebRTCVideoDecoderFactory(eglContext));
options.setVideoEncoderFactory(new WebRTCVideoEncoderFactory(eglContext));
nativeModules.add(new WebRTCModule(reactContext, options));

View File

@@ -0,0 +1,19 @@
package org.jitsi.meet.sdk;
/** Enumeration of supported video codec types. */
public enum VideoCodecMimeType {
VP8("video/x-vnd.on2.vp8"),
VP9("video/x-vnd.on2.vp9"),
H264("video/avc"),
AV1("video/av01");
private final String mimeType;
private VideoCodecMimeType(String mimeType) {
this.mimeType = mimeType;
}
String mimeType() {
return mimeType;
}
}

View File

@@ -0,0 +1,52 @@
package org.jitsi.meet.sdk;
import androidx.annotation.Nullable;
import org.webrtc.EglBase;
import org.webrtc.HardwareVideoDecoderFactory;
import org.webrtc.SoftwareVideoDecoderFactory;
import org.webrtc.VideoCodecInfo;
import org.webrtc.VideoDecoder;
import org.webrtc.VideoDecoderFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* This is a custom video decoder factory for WebRTC which behaves similarly
* to the default one in iOS. It supports the following codecs:
*
* - In hardware: H.264 (baseline)
* - In software: VP8, VP9, AV1
*/
public class WebRTCVideoDecoderFactory implements VideoDecoderFactory {
private final VideoDecoderFactory hardwareVideoDecoderFactory;
private final VideoDecoderFactory softwareVideoDecoderFactory = new SoftwareVideoDecoderFactory();
public WebRTCVideoDecoderFactory(@Nullable EglBase.Context eglContext) {
this.hardwareVideoDecoderFactory = new HardwareVideoDecoderFactory(eglContext);
}
@Nullable
@Override
public VideoDecoder createDecoder(VideoCodecInfo codecInfo) {
if (codecInfo.name.equalsIgnoreCase(VideoCodecMimeType.H264.name())) {
return this.hardwareVideoDecoderFactory.createDecoder(codecInfo);
}
return this.softwareVideoDecoderFactory.createDecoder(codecInfo);
}
@Override
public VideoCodecInfo[] getSupportedCodecs() {
List<VideoCodecInfo> codecs = new ArrayList<>();
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.name(), new HashMap<>()));
codecs.add(H264Utils.DEFAULT_H264_BASELINE_PROFILE_CODEC);
return codecs.toArray(new VideoCodecInfo[codecs.size()]);
}
}

View File

@@ -0,0 +1,53 @@
package org.jitsi.meet.sdk;
import androidx.annotation.Nullable;
import org.webrtc.EglBase;
import org.webrtc.HardwareVideoEncoderFactory;
import org.webrtc.SoftwareVideoEncoderFactory;
import org.webrtc.VideoCodecInfo;
import org.webrtc.VideoEncoder;
import org.webrtc.VideoEncoderFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* This is a custom video encoder factory for WebRTC which behaves similarly
* to the default one in iOS. It supports the following codecs:
*
* - In hardware: H.264 (baseline)
* - In software: VP8, VP9, AV1
*/
public class WebRTCVideoEncoderFactory implements VideoEncoderFactory {
private final VideoEncoderFactory hardwareVideoEncoderFactory;
private final VideoEncoderFactory softwareVideoEncoderFactory = new SoftwareVideoEncoderFactory();
public WebRTCVideoEncoderFactory(@Nullable EglBase.Context eglContext) {
this.hardwareVideoEncoderFactory =
new HardwareVideoEncoderFactory(eglContext, false, false);
}
@Nullable
@Override
public VideoEncoder createEncoder(VideoCodecInfo codecInfo) {
if (codecInfo.name.equalsIgnoreCase(VideoCodecMimeType.H264.name())) {
return this.hardwareVideoEncoderFactory.createEncoder(codecInfo);
}
return this.softwareVideoEncoderFactory.createEncoder(codecInfo);
}
@Override
public VideoCodecInfo[] getSupportedCodecs() {
List<VideoCodecInfo> codecs = new ArrayList<>();
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.name(), new HashMap<>()));
codecs.add(H264Utils.DEFAULT_H264_BASELINE_PROFILE_CODEC);
return codecs.toArray(new VideoCodecInfo[codecs.size()]);
}
}

View File

@@ -62,12 +62,14 @@ import {
import {
checkAndNotifyForNewDevice,
getAvailableDevices,
getDefaultDeviceId,
notifyCameraError,
notifyMicError,
setAudioOutputDeviceId,
updateDeviceList
} from './react/features/base/devices';
} from './react/features/base/devices/actions.web';
import {
getDefaultDeviceId,
setAudioOutputDeviceId
} from './react/features/base/devices/functions.web';
import {
JitsiConferenceErrors,
JitsiConferenceEvents,
@@ -127,6 +129,7 @@ import {
isLocalTrackMuted,
isUserInteractionRequiredForUnmute,
replaceLocalTrack,
toggleScreensharing as toggleScreensharingA,
trackAdded,
trackRemoved
} from './react/features/base/tracks';
@@ -146,12 +149,8 @@ import {
} from './react/features/notifications';
import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay';
import { suspendDetected } from './react/features/power-monitor';
import {
initPrejoin,
isPrejoinPageVisible,
makePrecallTest,
setJoiningInProgress
} from './react/features/prejoin';
import { initPrejoin, makePrecallTest, setJoiningInProgress } from './react/features/prejoin/actions';
import { isPrejoinPageVisible } from './react/features/prejoin/functions';
import { disableReceiver, stopReceiver } from './react/features/remote-control';
import { isScreenAudioShared, setScreenAudioShareState } from './react/features/screen-share/';
import { toggleScreenshotCaptureSummary } from './react/features/screenshot-capture';
@@ -1733,6 +1732,8 @@ export default {
* is not specified and starts the procedure for obtaining new screen
* sharing/video track otherwise.
*
* NOTE: this is currently ONLY used in the non-multi-stream case.
*
* @param {boolean} [toggle] - If true - new screen sharing track will be
* obtained. If false - new video track will be obtain. If not specified -
* toggles between screen sharing and camera video.
@@ -2657,12 +2658,6 @@ export default {
APP.UI.updateLargeVideo(displayedUserId, true);
}
});
APP.UI.addListener(
UIEvents.TOGGLE_SCREENSHARING, ({ enabled, audioOnly, ignoreDidHaveVideo }) => {
this.toggleScreenSharing(enabled, { audioOnly }, ignoreDidHaveVideo);
}
);
},
/**
@@ -3216,7 +3211,7 @@ export default {
return;
}
this.toggleScreenSharing(undefined, { desktopStream });
APP.store.dispatch(toggleScreensharingA(undefined, false, false, { desktopStream }));
}
});
}

View File

@@ -65,10 +65,6 @@ 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
@@ -224,9 +220,29 @@ var config = {
// Specifies whether the raised hand will hide when someone becomes a dominant speaker or not
// disableRemoveRaisedHandOnFocus: false,
// speakerStats: {
// // Specifies whether the speaker stats is enable or not.
// disabled: false,
// // Specifies whether there will be a search field in speaker stats or not.
// disableSearch: false,
// // Specifies whether participants in speaker stats should be ordered or not, and with what priority.
// // 'role', <- Moderators on top.
// // 'name', <- Alphabetically by name.
// // 'hasLeft', <- The ones that have left in the bottom.
// order: [
// 'role',
// 'name',
// 'hasLeft',
// ],
// },
// DEPRECATED. Please use speakerStats.disableSearch instead.
// Specifies whether there will be a search field in speaker stats or not
// disableSpeakerStatsSearch: false,
// DEPRECATED. Please use speakerStats.order .
// Specifies whether participants in speaker stats should be ordered or not, and with what priority
// speakerStatsOrder: [
// 'role', <- Moderators on top
@@ -1487,6 +1503,8 @@ var config = {
// displayMode: 'all',
// // How long the GIF should be displayed on the tile (in milliseconds).
// tileTime: 5000,
// // Limit results by rating: g, pg, pg-13, r. Default value: g.
// rating: 'pg',
// },
// Logging

View File

@@ -10,7 +10,7 @@ import {
connectionEstablished,
connectionFailed,
constructOptions
} from './react/features/base/connection/actions';
} from './react/features/base/connection/actions.web';
import { openDialog } from './react/features/base/dialog/actions';
import { setJWT } from './react/features/base/jwt';
import {

View File

@@ -8,7 +8,6 @@ $hangupColor:#DD3849;
$hangupHoverColor: #F25363;
$hangupMenuButtonColor:#0056E0;;
$hangupMenuButtonHoverColor: #246FE5;
$hangupFontSize: 2em;
/**
* Size variables.
@@ -45,7 +44,6 @@ $newToolbarSizeMobile: 60px;
$newToolbarSizeWithPadding: calc(#{$newToolbarSize} + 24px);
$toolbarTitleFontSize: 19px;
$overflowMenuItemColor: #fff;
$overflowMenuItemBackground: #36383C;
/**
@@ -88,7 +86,7 @@ $chatPrivateMessageBackgroundColor: rgb(153, 69, 77);
$chatRemoteMessageBackgroundColor: #242528;
$sidebarWidth: 315px;
/**
/**
* Misc.
*/
$borderRadius: 4px;
@@ -103,8 +101,6 @@ $zindex0: 0;
$zindex1: 1;
$zindex2: 2;
$zindex3: 3;
$toolbarBackgroundZ: 4;
$labelsZ: 5;
$subtitlesZ: 7;
$popoverZ: 8;
$reloadZ: 20;
@@ -113,10 +109,7 @@ $ringingZ: 300;
$sideToolbarContainerZ: 300;
$toolbarZ: 250;
$drawerZ: 351;
$tooltipsZ: 401;
$dropdownMaskZ: 900;
$dropdownZ: 901;
$centeredVideoLabelZ: 1010;
$overlayZ: 1016;
// Place filmstrip videos over toolbar in order
// to make connection info visible.
@@ -250,7 +243,6 @@ $chromeExtensionBannerRightInMeeeting: 10px;
/**
* media type thresholds
*/
$smallScreen: 700px;
$verySmallScreen: 500px;
/**

View File

@@ -8,6 +8,7 @@
border-radius: 3px;
overflow: auto;
padding: 8px;
margin-bottom: 8px;
}
&-entry {

View File

@@ -38,3 +38,7 @@
margin-top: 2px;
display: block;
}
.dialog-bottom-margin {
margin-bottom: 5px;
}

View File

@@ -9,7 +9,6 @@
font-size: 15px;
margin-left: auto;
margin-top: 16px;
width: auto;
}
&-code {

View File

@@ -84,56 +84,6 @@
}
}
&.icon-container {
display: none;
&.active {
display: flex;
width: calc(100% - 26px);
padding: 8px 8px 8px 16px;
background: #2A3A4B;
border: 1px solid #5E6D7A;
border-top: none;
border-radius: 0 0 3px 3px;
.copy-invite-icon, .provider-icon {
align-items: center;
cursor: pointer;
display: flex;
height: 40px;
place-content: center;
width: 40px;
}
&:hover > div:hover {
background-color: rgba(255, 255, 255, 0.2);
border-radius: 4px;
}
& > :not(:last-child) {
margin-right: 16px;
}
.copy-invite-icon > div > svg > path {
fill: #A4B8D1;
}
}
}
&.dial-in-display {
.info-label {
color: #A4B8D1;
}
.dial-in-copy {
display: inline-block;
vertical-align: middle;
cursor: pointer;
height: 24px;
}
}
&.invite-buttons {
width: 100%;
text-align: right;

View File

@@ -204,3 +204,7 @@
}
}
}
.lobby-button-margin {
margin-bottom: 16px;
}

View File

@@ -6,8 +6,6 @@ $baseLight: #FFFFFF;
/**
* Controls
*/
$controlBackground: $baseLight;
$controlColor: #333333;
$sliderTrackBackground: #474747;
$sliderThumbBackground: #3572b0;
@@ -60,42 +58,21 @@ $readOnlyInputColor: #a7a7a7;
$defaultDarkSelectionColor: #ccc;
$buttonFontWeight: 400;
$labelFontWeight: 400;
$hintFontSize: em(13, 14);
$linkFontColor: #3572b0;
$linkHoverFontColor: darken(#3572b0, 10%);
$dropdownColor: #333;
$errorColor: #c61600;
// Feedback colors
$feedbackCancelFontColor: #333;
// Popover colors
$popoverFontColor: #ffffff !important;
$popupSliderColor: #0376da;
// Toolbar
$secondaryToolbarBg: rgba(0, 0, 0, 0.5);
// TOFIX: Once moved to react rename to match the side panel class name.
$sideToolbarContainerBg: rgba(0, 0, 0, 0.75);
$toolbarBackground: rgba(0, 0, 0, 0.5);
$toolbarBadgeBackground: #165ECC;
$toolbarBadgeColor: #FFFFFF;
$toolbarButtonColor: #FFFFFF;
$toolbarSelectBackground: rgba(0, 0, 0, .6);
$toolbarTitleColor: #FFFFFF;
$toolbarToggleBackground: #12499C;
/**
* Forms
*/
//dropdown
$selectFontColor: $controlColor;
$selectBg: $controlBackground;
$selectActiveBg: darken($controlBackground, 5%);
$selectActiveItemBg: darken($controlBackground, 20%);
/**
* TODO: Replace by themed component.
*/
$videoQualityActive: #57A0ff;
$selectBg: $baseLight;

2
debian/control vendored
View File

@@ -20,7 +20,7 @@ Description: WebRTC JavaScript video conferences
Package: jitsi-meet-web-config
Architecture: all
Depends: openssl, nginx | nginx-full | nginx-extras | apache2, curl
Depends: openssl, nginx | nginx-full | nginx-extras | openresty | apache2, curl
Description: Configuration for web serving of Jitsi Meet
Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
Videobridge to provide high quality, scalable video conferences.

View File

@@ -1,12 +1,12 @@
Template: jitsi-meet-prosody/jvb-hostname
Type: string
_Description: The hostname of the current installation:
The value for the hostname that is set in Jitsi Videobridge installation.
_Description: The domain of the current installation (e.g. meet.jitsi.com):
The value of the domain that is set in the Jitsi Videobridge installation.
Template: jitsi-videobridge/jvb-hostname
Type: string
_Description: The hostname of the current installation:
The value for the hostname that is set in Jitsi Videobridge installation.
_Description: The domain of the current installation (e.g. meet.jitsi.com):
The value of the domain that is set in the Jitsi Videobridge installation.
Template: jitsi-videobridge/jvbsecret
Type: password

View File

@@ -1,9 +1,9 @@
Template: jitsi-meet-turnserver/jvb-hostname
Type: string
_Description: The hostname of the current installation:
The value for the hostname that is set in Jitsi Videobridge installation.
_Description: The domain of the current installation (e.g. meet.jitsi.com):
The value of the domain that is set in the Jitsi Videobridge installation.
Template: jitsi-videobridge/jvb-hostname
Type: string
_Description: The hostname of the current installation:
The value for the hostname that is set in Jitsi Videobridge installation.
_Description: The domain of the current installation (e.g. meet.jitsi.com):
The value of the domain that is set in the Jitsi Videobridge installation.

View File

@@ -57,6 +57,10 @@ case "$1" in
|| [ "$NGINX_EXTRAS_INSTALL_CHECK" = "unpacked" ] ; then
FORCE_NGINX="true"
fi
OPENRESTY_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'openresty' 2>/dev/null | awk '{print $3}' || true)"
if [ "$OPENRESTY_INSTALL_CHECK" = "installed" ] || [ "$OPENRESTY_INSTALL_CHECK" = "unpacked" ] ; then
FORCE_OPENRESTY="true"
fi
APACHE_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'apache2' 2>/dev/null | awk '{print $3}' || true)"
if [ "$APACHE_INSTALL_CHECK" = "installed" ] || [ "$APACHE_INSTALL_CHECK" = "unpacked" ] ; then
FORCE_APACHE="true"
@@ -182,21 +186,41 @@ case "$1" in
echo "config.flags.receiveMultipleVideoStreams = true;" >> $JITSI_MEET_CONFIG
fi
if [[ "$FORCE_NGINX" = "true" && ( -z "$JVB_HOSTNAME_OLD" || "$RECONFIGURING" = "true" ) ]] ; then
if [[ "$FORCE_OPENRESTY" = "true" ]]; then
NGX_COMMON_CONF_PATH="/usr/local/openresty/nginx/conf/$JVB_HOSTNAME.conf"
NGX_SVC_NAME=openresty
OPENRESTY_NGX_CONF="/usr/local/openresty/nginx/conf/nginx.conf"
else
NGX_COMMON_CONF_PATH="/etc/nginx/sites-available/$JVB_HOSTNAME.conf"
NGX_SVC_NAME=nginx
fi
if [[ ( "$FORCE_NGINX" = "true" || "$FORCE_OPENRESTY" = "true" ) && ( -z "$JVB_HOSTNAME_OLD" || "$RECONFIGURING" = "true" ) ]] ; then
# this is a reconfigure, lets just delete old links
if [ "$RECONFIGURING" = "true" ] ; then
rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME_OLD.conf
rm -f /etc/jitsi/meet/$JVB_HOSTNAME_OLD-config.js
if [[ "$FORCE_OPENRESTY" = "true" ]]; then
sed -i "/include.*$JVB_HOSTNAME_OLD/d" "$OPENRESTY_NGX_CONF"
fi
fi
# nginx conf
if [ ! -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf ] ; then
cp /usr/share/jitsi-meet-web-config/jitsi-meet.example /etc/nginx/sites-available/$JVB_HOSTNAME.conf
if [ ! -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf ] ; then
ln -s /etc/nginx/sites-available/$JVB_HOSTNAME.conf /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
if [ ! -f "$NGX_COMMON_CONF_PATH" ] ; then
cp /usr/share/jitsi-meet-web-config/jitsi-meet.example "$NGX_COMMON_CONF_PATH"
if [ ! -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf ] && ! [[ "$FORCE_OPENRESTY" = "true" ]] ; then
ln -s "$NGX_COMMON_CONF_PATH" /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
fi
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" "$NGX_COMMON_CONF_PATH"
if [[ "$FORCE_OPENRESTY" = "true" ]]; then
OPENRESTY_NGX_CONF_MD5_ORIG=$(dpkg-query -s openresty | sed -n '/\/nginx\.conf /{s@.* @@;p}')
OPENRESTY_NGX_CONF_MD5_USERS=$(md5sum "$OPENRESTY_NGX_CONF" | sed 's@ .*@@')
if [[ "$OPENRESTY_NGX_CONF_MD5_USERS" = "$OPENRESTY_NGX_CONF_MD5_ORIG" ]]; then
sed -i "/^http \x7b/,/^\x7d/s@^\x7d@\tinclude $NGX_COMMON_CONF_PATH;\n\x7d@" "$OPENRESTY_NGX_CONF"
fi
fi
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" /etc/nginx/sites-available/$JVB_HOSTNAME.conf
fi
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
@@ -204,14 +228,14 @@ case "$1" in
CERT_KEY_ESC=$(echo $CERT_KEY | sed 's/\./\\\./g')
CERT_KEY_ESC=$(echo $CERT_KEY_ESC | sed 's/\//\\\//g')
sed -i "s/ssl_certificate_key\ \/etc\/jitsi\/meet\/.*key/ssl_certificate_key\ $CERT_KEY_ESC/g" \
/etc/nginx/sites-available/$JVB_HOSTNAME.conf
"$NGX_COMMON_CONF_PATH"
CERT_CRT_ESC=$(echo $CERT_CRT | sed 's/\./\\\./g')
CERT_CRT_ESC=$(echo $CERT_CRT_ESC | sed 's/\//\\\//g')
sed -i "s/ssl_certificate\ \/etc\/jitsi\/meet\/.*crt/ssl_certificate\ $CERT_CRT_ESC/g" \
/etc/nginx/sites-available/$JVB_HOSTNAME.conf
"$NGX_COMMON_CONF_PATH"
fi
invoke-rc.d nginx reload || true
invoke-rc.d $NGX_SVC_NAME reload || true
elif [[ "$FORCE_APACHE" = "true" && ( -z "$JVB_HOSTNAME_OLD" || "$RECONFIGURING" = "true" ) ]] ; then
# this is a reconfigure, lets just delete old links

View File

@@ -24,6 +24,9 @@ set -e
case "$1" in
remove)
if [ -x "/etc/init.d/openresty" ]; then
invoke-rc.d openresty reload || true
fi
if [ -x "/etc/init.d/nginx" ]; then
invoke-rc.d nginx reload || true
fi
@@ -38,6 +41,7 @@ case "$1" in
rm -f /etc/jitsi/meet/$JVB_HOSTNAME-config.js
rm -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf
rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
rm -f /usr/local/openresty/nginx/conf/$JVB_HOSTNAME.conf
rm -f /etc/apache2/sites-available/$JVB_HOSTNAME.conf
rm -f /etc/apache2/sites-enabled/$JVB_HOSTNAME.conf
rm -f /etc/jitsi/meet/$JVB_HOSTNAME.key

View File

@@ -23,8 +23,8 @@ _Description: Full local server path to the SSL certificate file:
Template: jitsi-meet/jvb-hostname
Type: string
_Description: The hostname of the current installation:
The value for the hostname that is set in Jitsi Videobridge installation.
_Description: The domain of the current installation (e.g. meet.jitsi.com):
The value of the domain that is set in the Jitsi Videobridge installation.
Template: jitsi-videobridge/jvb-hostname
Type: string
@@ -33,8 +33,8 @@ _Description: Hostname:
Template: jitsi-meet/jaas-choice
Type: boolean
_Description: Interested in adding telephony to your Jitsi meetings?
You can easily add dialing in support to your meetings. You need to give us the permission to create a free JaaS (Jitsi as a Service) account for you.
_Description: Add telephony to your Jitsi meetings?
You can easily add dial-in support to your meetings. To allow this we would need your permission to create a free JaaS (Jitsi as a Service) account for you.
Template: jitsi-meet/email
Type: string

View File

@@ -84,7 +84,7 @@ msgstr ""
#. Description
#: ../jitsi-meet-web-config.templates:4001
msgid ""
"The value for the hostname that is set in Jitsi Videobridge installation."
"The value of the domain that is set in the Jitsi Videobridge installation."
msgstr ""
#. Type: boolean

3
globals.d.ts vendored
View File

@@ -16,7 +16,10 @@ declare global {
config: IConfig;
JITSI_MEET_LITE_SDK?: boolean;
interfaceConfig?: any;
JitsiMeetJS?: any;
}
const config: IConfig;
const JitsiMeetJS: any;
}

42
globals.native.d.ts vendored Normal file
View File

@@ -0,0 +1,42 @@
import { IConfig } from "./react/features/base/config/configType";
export {};
interface ILocation extends URL {
assign(url: string);
replace(url: string);
reload();
};
interface IWindow {
JITSI_MEET_LITE_SDK: boolean;
JitsiMeetJS: any;
config: IConfig;
document: any;
innerHeight: number;
innerWidth: number;
interfaceConfig: any;
location: ILocation;
self: any;
top: any;
onerror: (event: string, source: any, lineno: any, colno: any, e: Error) => void;
onunhandledrejection: (event: any) => void;
setTimeout: typeof setTimeout;
clearTimeout: typeof clearTimeout;
setImmediate: typeof setImmediate;
clearImmediate: typeof clearImmediate;
}
interface INavigator {
product: string;
}
declare global {
const APP: any;
const document: any;
const interfaceConfig: any;
const navigator: INavigator;
const window: IWindow;
}

View File

@@ -13,14 +13,14 @@ PODS:
- CocoaLumberjack/Core (= 3.7.2)
- CocoaLumberjack/Core (3.7.2)
- DoubleConversion (1.1.6)
- FBLazyVector (0.68.3)
- FBReactNativeSpec (0.68.3):
- FBLazyVector (0.68.4)
- FBReactNativeSpec (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.68.3)
- RCTTypeSafety (= 0.68.3)
- React-Core (= 0.68.3)
- React-jsi (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- RCTRequired (= 0.68.4)
- RCTTypeSafety (= 0.68.4)
- React-Core (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- Firebase/Analytics (8.15.0):
- Firebase/Core
- Firebase/Core (8.15.0):
@@ -163,201 +163,201 @@ PODS:
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCTRequired (0.68.3)
- RCTTypeSafety (0.68.3):
- FBLazyVector (= 0.68.3)
- RCTRequired (0.68.4)
- RCTTypeSafety (0.68.4):
- FBLazyVector (= 0.68.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.68.3)
- React-Core (= 0.68.3)
- React (0.68.3):
- React-Core (= 0.68.3)
- React-Core/DevSupport (= 0.68.3)
- React-Core/RCTWebSocket (= 0.68.3)
- React-RCTActionSheet (= 0.68.3)
- React-RCTAnimation (= 0.68.3)
- React-RCTBlob (= 0.68.3)
- React-RCTImage (= 0.68.3)
- React-RCTLinking (= 0.68.3)
- React-RCTNetwork (= 0.68.3)
- React-RCTSettings (= 0.68.3)
- React-RCTText (= 0.68.3)
- React-RCTVibration (= 0.68.3)
- React-callinvoker (0.68.3)
- React-Codegen (0.68.3):
- FBReactNativeSpec (= 0.68.3)
- RCTRequired (= 0.68.4)
- React-Core (= 0.68.4)
- React (0.68.4):
- React-Core (= 0.68.4)
- React-Core/DevSupport (= 0.68.4)
- React-Core/RCTWebSocket (= 0.68.4)
- React-RCTActionSheet (= 0.68.4)
- React-RCTAnimation (= 0.68.4)
- React-RCTBlob (= 0.68.4)
- React-RCTImage (= 0.68.4)
- React-RCTLinking (= 0.68.4)
- React-RCTNetwork (= 0.68.4)
- React-RCTSettings (= 0.68.4)
- React-RCTText (= 0.68.4)
- React-RCTVibration (= 0.68.4)
- React-callinvoker (0.68.4)
- React-Codegen (0.68.4):
- FBReactNativeSpec (= 0.68.4)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.68.3)
- RCTTypeSafety (= 0.68.3)
- React-Core (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-Core (0.68.3):
- RCTRequired (= 0.68.4)
- RCTTypeSafety (= 0.68.4)
- React-Core (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-Core (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.68.3)
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-Core/Default (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/CoreModulesHeaders (0.68.3):
- React-Core/CoreModulesHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/Default (0.68.3):
- React-Core/Default (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/DevSupport (0.68.3):
- React-Core/DevSupport (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.68.3)
- React-Core/RCTWebSocket (= 0.68.3)
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-jsinspector (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-Core/Default (= 0.68.4)
- React-Core/RCTWebSocket (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-jsinspector (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTActionSheetHeaders (0.68.3):
- React-Core/RCTActionSheetHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTAnimationHeaders (0.68.3):
- React-Core/RCTAnimationHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTBlobHeaders (0.68.3):
- React-Core/RCTBlobHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTImageHeaders (0.68.3):
- React-Core/RCTImageHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTLinkingHeaders (0.68.3):
- React-Core/RCTLinkingHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTNetworkHeaders (0.68.3):
- React-Core/RCTNetworkHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTSettingsHeaders (0.68.3):
- React-Core/RCTSettingsHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTTextHeaders (0.68.3):
- React-Core/RCTTextHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTVibrationHeaders (0.68.3):
- React-Core/RCTVibrationHeaders (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-Core/RCTWebSocket (0.68.3):
- React-Core/RCTWebSocket (0.68.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.68.3)
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsiexecutor (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-Core/Default (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsiexecutor (= 0.68.4)
- React-perflogger (= 0.68.4)
- Yoga
- React-CoreModules (0.68.3):
- React-CoreModules (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.3)
- React-Codegen (= 0.68.3)
- React-Core/CoreModulesHeaders (= 0.68.3)
- React-jsi (= 0.68.3)
- React-RCTImage (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-cxxreact (0.68.3):
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/CoreModulesHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- React-RCTImage (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-cxxreact (0.68.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.68.3)
- React-jsi (= 0.68.3)
- React-jsinspector (= 0.68.3)
- React-logger (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-runtimeexecutor (= 0.68.3)
- React-jsi (0.68.3):
- React-callinvoker (= 0.68.4)
- React-jsi (= 0.68.4)
- React-jsinspector (= 0.68.4)
- React-logger (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-runtimeexecutor (= 0.68.4)
- React-jsi (0.68.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsi/Default (= 0.68.3)
- React-jsi/Default (0.68.3):
- React-jsi/Default (= 0.68.4)
- React-jsi/Default (0.68.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsiexecutor (0.68.3):
- React-jsiexecutor (0.68.4):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-jsinspector (0.68.3)
- React-logger (0.68.3):
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-perflogger (= 0.68.4)
- React-jsinspector (0.68.4)
- React-logger (0.68.4):
- glog
- react-native-background-timer (2.4.1):
- React-Core
@@ -390,74 +390,74 @@ PODS:
- React-Core
- react-native-webview (11.15.1):
- React-Core
- React-perflogger (0.68.3)
- React-RCTActionSheet (0.68.3):
- React-Core/RCTActionSheetHeaders (= 0.68.3)
- React-RCTAnimation (0.68.3):
- React-perflogger (0.68.4)
- React-RCTActionSheet (0.68.4):
- React-Core/RCTActionSheetHeaders (= 0.68.4)
- React-RCTAnimation (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.3)
- React-Codegen (= 0.68.3)
- React-Core/RCTAnimationHeaders (= 0.68.3)
- React-jsi (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-RCTBlob (0.68.3):
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTAnimationHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTBlob (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- React-Codegen (= 0.68.3)
- React-Core/RCTBlobHeaders (= 0.68.3)
- React-Core/RCTWebSocket (= 0.68.3)
- React-jsi (= 0.68.3)
- React-RCTNetwork (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-RCTImage (0.68.3):
- React-Codegen (= 0.68.4)
- React-Core/RCTBlobHeaders (= 0.68.4)
- React-Core/RCTWebSocket (= 0.68.4)
- React-jsi (= 0.68.4)
- React-RCTNetwork (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTImage (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.3)
- React-Codegen (= 0.68.3)
- React-Core/RCTImageHeaders (= 0.68.3)
- React-jsi (= 0.68.3)
- React-RCTNetwork (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-RCTLinking (0.68.3):
- React-Codegen (= 0.68.3)
- React-Core/RCTLinkingHeaders (= 0.68.3)
- React-jsi (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-RCTNetwork (0.68.3):
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTImageHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- React-RCTNetwork (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTLinking (0.68.4):
- React-Codegen (= 0.68.4)
- React-Core/RCTLinkingHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTNetwork (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.3)
- React-Codegen (= 0.68.3)
- React-Core/RCTNetworkHeaders (= 0.68.3)
- React-jsi (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-RCTSettings (0.68.3):
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTNetworkHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTSettings (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.68.3)
- React-Codegen (= 0.68.3)
- React-Core/RCTSettingsHeaders (= 0.68.3)
- React-jsi (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-RCTText (0.68.3):
- React-Core/RCTTextHeaders (= 0.68.3)
- React-RCTVibration (0.68.3):
- RCTTypeSafety (= 0.68.4)
- React-Codegen (= 0.68.4)
- React-Core/RCTSettingsHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-RCTText (0.68.4):
- React-Core/RCTTextHeaders (= 0.68.4)
- React-RCTVibration (0.68.4):
- RCT-Folly (= 2021.06.28.00-v2)
- React-Codegen (= 0.68.3)
- React-Core/RCTVibrationHeaders (= 0.68.3)
- React-jsi (= 0.68.3)
- ReactCommon/turbomodule/core (= 0.68.3)
- React-runtimeexecutor (0.68.3):
- React-jsi (= 0.68.3)
- ReactCommon/turbomodule/core (0.68.3):
- React-Codegen (= 0.68.4)
- React-Core/RCTVibrationHeaders (= 0.68.4)
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (= 0.68.4)
- React-runtimeexecutor (0.68.4):
- React-jsi (= 0.68.4)
- ReactCommon/turbomodule/core (0.68.4):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.68.3)
- React-Core (= 0.68.3)
- React-cxxreact (= 0.68.3)
- React-jsi (= 0.68.3)
- React-logger (= 0.68.3)
- React-perflogger (= 0.68.3)
- React-callinvoker (= 0.68.4)
- React-Core (= 0.68.4)
- React-cxxreact (= 0.68.4)
- React-jsi (= 0.68.4)
- React-logger (= 0.68.4)
- React-perflogger (= 0.68.4)
- RNCalendarEvents (2.2.0):
- React
- RNCAsyncStorage (1.15.14):
- RNCAsyncStorage (1.17.3):
- React-Core
- RNCClipboard (1.5.1):
- React-Core
@@ -706,8 +706,8 @@ SPEC CHECKSUMS:
boost: a7c83b31436843459a1961bfd74b96033dc77234
CocoaLumberjack: b7e05132ff94f6ae4dfa9d5bce9141893a21d9da
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
FBLazyVector: 34f7420274737b6fcf2e2d9fd42641e66b4436a3
FBReactNativeSpec: 68c23fb2cea9393190e0815b673d742fa33d2dab
FBLazyVector: 023a2028f218d648b588348bfa9261b4914b93db
FBReactNativeSpec: 9f4902cc009389d3704ff75de2aa513dee34d5c2
Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d
FirebaseAnalytics: 7761cbadb00a717d8d0939363eb46041526474fa
FirebaseCore: 5743c5785c074a794d35f2fff7ecc254a91e08b1
@@ -732,18 +732,18 @@ SPEC CHECKSUMS:
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
PromisesSwift: 99fddfe4a0ec88a56486644c0da106694c92a604
RCT-Folly: 4d8508a426467c48885f1151029bc15fa5d7b3b8
RCTRequired: b8caca023d386d43740dfb94c2cf68f695fa5e77
RCTTypeSafety: ec44ea1d6ad1e5cd6447b22159ff40c2ebbd23b1
React: 9f8c8afb9a9d61b7a1b01a1c6fb7f0d4f902988f
React-callinvoker: f813eee352cfd333208e8d67a72f584f5435769d
React-Codegen: 771562186fec8c7830897f97ca59de683abd3184
React-Core: 74670b4b715083e1c9003462f3f4fe32a70ba5c5
React-CoreModules: 34bd5b93e5322e60102a5ad78b992c882e558022
React-cxxreact: adc9fc6a9333ae779bd72effaf77173bd9f22bf7
React-jsi: ab91137ea7d92a86e48b6f15d3a5580bea471776
React-jsiexecutor: a5043e9e1e1bd13b80b58b228c6901b3721a4f54
React-jsinspector: 86e89b9f135787a2e8eb74b3fc00ec61e9a80ae1
React-logger: f790bd10f86b38012e108fb4b564023602702270
RCTRequired: e6003505912d056f21f64465063cf4b79418f2b9
RCTTypeSafety: d7ef4745c8d9c9faa65c26b4b6230fc5cd4c4424
React: 6692c30fb74ab29078b25c31c9841d863e08cdd9
React-callinvoker: fe2b234fa518d8bb7600707c536ab0a3e1f5edba
React-Codegen: 9964bb2422c7014894182ac50068caae05f68551
React-Core: a07bcd2f15ff93cddc9ceb07eddeec3d2ff8d990
React-CoreModules: 7fb4ee0fc35ad2b7daf775f0ef6309efdd8d3d82
React-cxxreact: 51a8058a35a2f02ad4175334a7cd24aa5558ced4
React-jsi: 69b974b418d2658a3f1799903be7cbcb8ac59755
React-jsiexecutor: 4f35a29798ba9d0d892a84001d11f626688dbb8e
React-jsinspector: 6f75220cd4b6020976d340ab21c63458dd3cad9e
React-logger: 7013d2499df6346e6a72802d4084badaaa82543b
react-native-background-timer: 17ea5e06803401a379ebf1f20505b793ac44d0fe
react-native-get-random-values: 30b3f74ca34e30e2e480de48e4add2706a40ac8f
react-native-keep-awake: afad8a51dfef9fe9655a6344771be32c8596d774
@@ -757,20 +757,20 @@ SPEC CHECKSUMS:
react-native-video: bb6f12a7198db53b261fefb5d609dc77417acc8b
react-native-webrtc: 4a4c31be61f88d1d3356526eebce72f462a6760e
react-native-webview: ea4899a1056c782afa96dd082179a66cbebf5504
React-perflogger: fa15d1d29ff7557ee25ea48f7f59e65896fb3215
React-RCTActionSheet: e83515333352a3cc19c146e3c7a63a8a9269da8f
React-RCTAnimation: 8032daa2846e3db7ac28c4c5a207d0bfb5e1e3ad
React-RCTBlob: fe40e206cebcb4f552e0ecdac3ef81b3baf3cb37
React-RCTImage: dfc0df14cbfec1ec54fdd4700b8fe3bf8127dde2
React-RCTLinking: ac9f65f0c8db738a6156ae7640ba92494b4770a5
React-RCTNetwork: cf289a0386a1bd057e5eabb8563dfe5ce0af868c
React-RCTSettings: 7889cfcf6c7d5738f3cb8889557a38eeea2f04ff
React-RCTText: fd249e1f8406fb6e35cc77a2b9ff66a3477bf41a
React-RCTVibration: f41f116aad644973f24653effb3db3de64fa0314
React-runtimeexecutor: 8cdd80915ed6dabf2221a689f1f7ddb50ea5e9f3
ReactCommon: 5b1b43a7d81a1ac4eec85f7c4db3283a14a3b13d
React-perflogger: 0b0500685176e53ea582c45179a653aa82e4ae49
React-RCTActionSheet: 38469be9d20242f9c717e43c2983e8e3e6c640c4
React-RCTAnimation: 93774f3e8857e7c3c1cbbd277056d02be4496be1
React-RCTBlob: 6d0567d7a6561b62feb8c3b1cc33b3c591ba85ab
React-RCTImage: 1006a91318a6181a0256b89d2e321b6ea0e2e6e3
React-RCTLinking: 0b2300493c879c3bcac2d4c6b0178e8d0e5e2202
React-RCTNetwork: b9a33a95703651abed92490e50396d54b7270a17
React-RCTSettings: e6464123e5b5062fc23bb5adb51188a6061e9601
React-RCTText: 188d6f0ae20cd28891f59ecad41028ee2f793757
React-RCTVibration: a67beb7d2f3c73e9b74c4124ef61b84c601be649
React-runtimeexecutor: 088723cf020113e64736a709f52719dbb359c73e
ReactCommon: 1a4f19f3b4366feec03a98bdbb200b6085c5000f
RNCalendarEvents: 7e65eb4a94f53c1744d1e275f7fafcfaa619f7a3
RNCAsyncStorage: ea6b5c280997b2b32a587793163b1f10e580c4f7
RNCAsyncStorage: 005c0e2f09575360f142d0d1f1f15e4ec575b1af
RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495
RNCMaskedView: c298b644a10c0c142055b3ae24d83879ecb13ccd
RNDefaultPreference: 08bdb06cfa9188d5da97d4642dac745218d7fb31
@@ -781,7 +781,7 @@ SPEC CHECKSUMS:
RNSound: 27e8268bdb0a1f191f219a33267f7e0445e8d62f
RNSVG: f3b60aeeaa81960e2e0536c3a9eef50b667ef3a9
RNWatch: dae6c858a2051dbdcfb00b9a86cf4d90400263b4
Yoga: 2f6a78c58dcc2963bd8e34d96a4246d9dff2e3a7
Yoga: c926c8eec5c78a788b51e6c8a604825d00d694d7
PODFILE CHECKSUM: e671cdcdb80fab67e305861c36bfae8ed5a5b0ef

View File

@@ -35,14 +35,12 @@
4E0EF63C28CA4069005D1B03 /* JMCallKitProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0EF63828CA4069005D1B03 /* JMCallKitProxy.m */; };
4E51B76425E5345E0038575A /* ScheenshareEventEmiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */; };
4E51B76525E5345E0038575A /* ScheenshareEventEmiter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */; };
4EBA6E61286072E300B31882 /* JitsiMeetViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EBA6E5F286072E300B31882 /* JitsiMeetViewController.h */; };
4EBA6E62286072E300B31882 /* JitsiMeetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA6E60286072E300B31882 /* JitsiMeetViewController.m */; };
4EBA6E652860B1E800B31882 /* JitsiMeetRenderingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EBA6E632860B1E800B31882 /* JitsiMeetRenderingView.h */; };
4EBA6E662860B1E800B31882 /* JitsiMeetRenderingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA6E642860B1E800B31882 /* JitsiMeetRenderingView.m */; };
4E812F3328F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */; };
4E812F3428F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */; };
4E812F3928F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */; };
4E812F3A28F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */; };
4ED4FFF32721B9B90074E620 /* JitsiAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
4ED4FFF42721B9B90074E620 /* JitsiAudioSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */; };
4EEC9630286C73A2008705FA /* JitsiMeetView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EEC962E286C73A2008705FA /* JitsiMeetView+Private.h */; };
4EEC9631286C73A2008705FA /* JitsiMeetView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EEC962F286C73A2008705FA /* JitsiMeetView+Private.m */; };
6F08DF7D4458EE3CF3F36F6D /* BuildFile in Frameworks */ = {isa = PBXBuildFile; };
9A8EE79C77C17743BB66E8BD /* libPods-JitsiMeetSDKLite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B46497DE9A95BDF5E312AF48 /* libPods-JitsiMeetSDKLite.a */; };
A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */ = {isa = PBXBuildFile; fileRef = A4A934E8212F3ADB001E9388 /* Dropbox.m */; };
@@ -70,20 +68,16 @@
DE9A0134289A9A9A00E41CBB /* JitsiMeetSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = DEA9F283258A5D9900D4CD74 /* JitsiMeetSDK.h */; settings = {ATTRIBUTES = (Public, ); }; };
DE9A0135289A9A9A00E41CBB /* ScheenshareEventEmiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */; };
DE9A0136289A9A9A00E41CBB /* JitsiMeetBaseLogHandler+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DE65AACB2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h */; };
DE9A0137289A9A9A00E41CBB /* JitsiMeetRenderingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EBA6E632860B1E800B31882 /* JitsiMeetRenderingView.h */; };
DE9A0138289A9A9A00E41CBB /* JitsiMeetViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
DE9A0139289A9A9A00E41CBB /* JitsiAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
DE9A013A289A9A9A00E41CBB /* JitsiMeetView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EEC962E286C73A2008705FA /* JitsiMeetView+Private.h */; };
DE9A013B289A9A9A00E41CBB /* JitsiMeet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */; settings = {ATTRIBUTES = (Public, ); }; };
DE9A013C289A9A9A00E41CBB /* JitsiMeetLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DE81A2D22316AC4D00AE1940 /* JitsiMeetLogger.h */; settings = {ATTRIBUTES = (Public, ); }; };
DE9A013D289A9A9A00E41CBB /* LogUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = DE65AAC92317FFCD00290BEC /* LogUtils.h */; };
DE9A013E289A9A9A00E41CBB /* JitsiMeetViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EBA6E5F286072E300B31882 /* JitsiMeetViewController.h */; };
DE9A013F289A9A9A00E41CBB /* JitsiMeetConferenceOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DEAD3224220C497000E93636 /* JitsiMeetConferenceOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
DE9A0140289A9A9A00E41CBB /* ExternalAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = C81E9AB825AC5AD800B134D9 /* ExternalAPI.h */; };
DE9A0141289A9A9A00E41CBB /* InfoPlistUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = C8AFD27D2462C613000293D2 /* InfoPlistUtil.h */; settings = {ATTRIBUTES = (Public, ); }; };
DE9A0143289A9A9A00E41CBB /* CallKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BB9AD7A1F5EC8F4001C08DB /* CallKit.m */; };
DE9A0144289A9A9A00E41CBB /* JitsiMeetBaseLogHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2DD2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m */; };
DE9A0145289A9A9A00E41CBB /* JitsiMeetRenderingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA6E642860B1E800B31882 /* JitsiMeetRenderingView.m */; };
DE9A0146289A9A9A00E41CBB /* JitsiAudioSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */; };
DE9A0147289A9A9A00E41CBB /* AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BB9AD7C1F60356D001C08DB /* AppInfo.m */; };
DE9A0148289A9A9A00E41CBB /* LogBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2D72316AC7600AE1940 /* LogBridge.m */; };
@@ -99,10 +93,8 @@
DE9A0152289A9A9A00E41CBB /* AudioMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495C1EC4B6C600B793EE /* AudioMode.m */; };
DE9A0153289A9A9A00E41CBB /* Proximity.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495E1EC4B6C600B793EE /* Proximity.m */; };
DE9A0155289A9A9A00E41CBB /* ReactUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFE535521FB2E8300011A3A /* ReactUtils.m */; };
DE9A0156289A9A9A00E41CBB /* JitsiMeetView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EEC962F286C73A2008705FA /* JitsiMeetView+Private.m */; };
DE9A0157289A9A9A00E41CBB /* DragGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6A3425E204EF76800E062DD /* DragGestureController.swift */; };
DE9A0158289A9A9A00E41CBB /* ScheenshareEventEmiter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */; };
DE9A015A289A9A9A00E41CBB /* JitsiMeetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBA6E60286072E300B31882 /* JitsiMeetViewController.m */; };
DE9A015C289A9A9A00E41CBB /* JitsiMeetLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2D32316AC4D00AE1940 /* JitsiMeetLogger.m */; };
DE9A015E289A9A9A00E41CBB /* JitsiMeetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */; };
DE9A015F289A9A9A00E41CBB /* JitsiMeet.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFE535321FB1BF800011A3A /* JitsiMeet.m */; };
@@ -148,15 +140,11 @@
4E0EF63828CA4069005D1B03 /* JMCallKitProxy.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JMCallKitProxy.m; 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>"; };
4EBA6E5F286072E300B31882 /* JitsiMeetViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetViewController.h; sourceTree = "<group>"; };
4EBA6E60286072E300B31882 /* JitsiMeetViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetViewController.m; sourceTree = "<group>"; };
4EBA6E632860B1E800B31882 /* JitsiMeetRenderingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetRenderingView.h; sourceTree = "<group>"; };
4EBA6E642860B1E800B31882 /* JitsiMeetRenderingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetRenderingView.m; sourceTree = "<group>"; };
4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JitsiMeetView+Private.h"; sourceTree = "<group>"; };
4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "JitsiMeetView+Private.m"; sourceTree = "<group>"; };
4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiAudioSession.h; sourceTree = "<group>"; };
4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiAudioSession.m; sourceTree = "<group>"; };
4ED4FFF52721BAE10074E620 /* JitsiAudioSession+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiAudioSession+Private.h"; sourceTree = "<group>"; };
4EEC962E286C73A2008705FA /* JitsiMeetView+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiMeetView+Private.h"; sourceTree = "<group>"; };
4EEC962F286C73A2008705FA /* JitsiMeetView+Private.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "JitsiMeetView+Private.m"; sourceTree = "<group>"; };
86389F55993FAAF6AEB3FA3E /* Pods-JitsiMeetSDKLite.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDKLite.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDKLite/Pods-JitsiMeetSDKLite.release.xcconfig"; 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>"; };
8F48C340DE0D91D1012976C5 /* Pods-JitsiMeetSDKLite.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDKLite.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDKLite/Pods-JitsiMeetSDKLite.debug.xcconfig"; sourceTree = "<group>"; };
@@ -281,14 +269,10 @@
DE81A2DC2317ED5400AE1940 /* JitsiMeetBaseLogHandler.h */,
DE65AACB2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h */,
DE81A2DD2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m */,
4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */,
4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */,
0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */,
4EEC962E286C73A2008705FA /* JitsiMeetView+Private.h */,
4EEC962F286C73A2008705FA /* JitsiMeetView+Private.m */,
0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */,
4EBA6E632860B1E800B31882 /* JitsiMeetRenderingView.h */,
4EBA6E642860B1E800B31882 /* JitsiMeetRenderingView.m */,
4EBA6E5F286072E300B31882 /* JitsiMeetViewController.h */,
4EBA6E60286072E300B31882 /* JitsiMeetViewController.m */,
DE81A2D72316AC7600AE1940 /* LogBridge.m */,
DE65AAC92317FFCD00290BEC /* LogUtils.h */,
DEAFA777229EAD3B0033A7FA /* RNRootView.h */,
@@ -383,20 +367,18 @@
DEA9F284258A5D9900D4CD74 /* JitsiMeetSDK.h in Headers */,
4E51B76425E5345E0038575A /* ScheenshareEventEmiter.h in Headers */,
DE65AACC2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h in Headers */,
4EBA6E652860B1E800B31882 /* JitsiMeetRenderingView.h in Headers */,
0B412F221EDEF6EA00B1A0A6 /* JitsiMeetViewDelegate.h in Headers */,
4E0EF63528CA317E005D1B03 /* JMCallKitListener.h in Headers */,
4E0EF63028CA2FB3005D1B03 /* JMCallKitEmitter.h in Headers */,
4ED4FFF32721B9B90074E620 /* JitsiAudioSession.h in Headers */,
4E0EF63928CA4069005D1B03 /* JMCallKitProxy.h in Headers */,
4EEC9630286C73A2008705FA /* JitsiMeetView+Private.h in Headers */,
0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */,
DE81A2D42316AC4D00AE1940 /* JitsiMeetLogger.h in Headers */,
DE65AACA2317FFCD00290BEC /* LogUtils.h in Headers */,
4EBA6E61286072E300B31882 /* JitsiMeetViewController.h in Headers */,
DEAD3226220C497000E93636 /* JitsiMeetConferenceOptions.h in Headers */,
C81E9AB925AC5AD800B134D9 /* ExternalAPI.h in Headers */,
C8AFD27F2462C613000293D2 /* InfoPlistUtil.h in Headers */,
4E812F3328F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -411,20 +393,18 @@
DE9A0134289A9A9A00E41CBB /* JitsiMeetSDK.h in Headers */,
DE9A0135289A9A9A00E41CBB /* ScheenshareEventEmiter.h in Headers */,
DE9A0136289A9A9A00E41CBB /* JitsiMeetBaseLogHandler+Private.h in Headers */,
DE9A0137289A9A9A00E41CBB /* JitsiMeetRenderingView.h in Headers */,
DE9A0138289A9A9A00E41CBB /* JitsiMeetViewDelegate.h in Headers */,
4E0EF63628CA317E005D1B03 /* JMCallKitListener.h in Headers */,
4E0EF63128CA2FB3005D1B03 /* JMCallKitEmitter.h in Headers */,
DE9A0139289A9A9A00E41CBB /* JitsiAudioSession.h in Headers */,
4E0EF63A28CA4069005D1B03 /* JMCallKitProxy.h in Headers */,
DE9A013A289A9A9A00E41CBB /* JitsiMeetView+Private.h in Headers */,
DE9A013B289A9A9A00E41CBB /* JitsiMeet.h in Headers */,
DE9A013C289A9A9A00E41CBB /* JitsiMeetLogger.h in Headers */,
DE9A013D289A9A9A00E41CBB /* LogUtils.h in Headers */,
DE9A013E289A9A9A00E41CBB /* JitsiMeetViewController.h in Headers */,
DE9A013F289A9A9A00E41CBB /* JitsiMeetConferenceOptions.h in Headers */,
DE9A0140289A9A9A00E41CBB /* ExternalAPI.h in Headers */,
DE9A0141289A9A9A00E41CBB /* InfoPlistUtil.h in Headers */,
4E812F3428F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -686,8 +666,8 @@
0BB9AD7B1F5EC8F4001C08DB /* CallKit.m in Sources */,
DE81A2DF2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m in Sources */,
4E0EF63B28CA4069005D1B03 /* JMCallKitProxy.m in Sources */,
4EBA6E662860B1E800B31882 /* JitsiMeetRenderingView.m in Sources */,
4ED4FFF42721B9B90074E620 /* JitsiAudioSession.m in Sources */,
4E812F3928F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */,
0BB9AD7D1F60356D001C08DB /* AppInfo.m in Sources */,
DE81A2D92316AC7600AE1940 /* LogBridge.m in Sources */,
DEAFA779229EAD520033A7FA /* RNRootView.m in Sources */,
@@ -703,11 +683,9 @@
0BCA49611EC4B6C600B793EE /* Proximity.m in Sources */,
4E0EF63228CA2FB3005D1B03 /* JMCallKitEmitter.m in Sources */,
DEFE535621FB2E8300011A3A /* ReactUtils.m in Sources */,
4EEC9631286C73A2008705FA /* JitsiMeetView+Private.m in Sources */,
C6A34261204EF76800E062DD /* DragGestureController.swift in Sources */,
4E51B76525E5345E0038575A /* ScheenshareEventEmiter.m in Sources */,
A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */,
4EBA6E62286072E300B31882 /* JitsiMeetViewController.m in Sources */,
DE81A2D52316AC4D00AE1940 /* JitsiMeetLogger.m in Sources */,
0B412F191EDEC65D00B1A0A6 /* JitsiMeetView.m in Sources */,
DEFE535421FB1BF800011A3A /* JitsiMeet.m in Sources */,
@@ -721,7 +699,6 @@
files = (
DE9A0143289A9A9A00E41CBB /* CallKit.m in Sources */,
DE9A0144289A9A9A00E41CBB /* JitsiMeetBaseLogHandler.m in Sources */,
DE9A0145289A9A9A00E41CBB /* JitsiMeetRenderingView.m in Sources */,
DE9A0146289A9A9A00E41CBB /* JitsiAudioSession.m in Sources */,
4E0EF63C28CA4069005D1B03 /* JMCallKitProxy.m in Sources */,
DE9A0147289A9A9A00E41CBB /* AppInfo.m in Sources */,
@@ -737,11 +714,10 @@
DE9A0151289A9A9A00E41CBB /* LocaleDetector.m in Sources */,
DE9A0152289A9A9A00E41CBB /* AudioMode.m in Sources */,
DE9A0153289A9A9A00E41CBB /* Proximity.m in Sources */,
4E812F3A28F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */,
DE9A0155289A9A9A00E41CBB /* ReactUtils.m in Sources */,
DE9A0156289A9A9A00E41CBB /* JitsiMeetView+Private.m in Sources */,
DE9A0157289A9A9A00E41CBB /* DragGestureController.swift in Sources */,
DE9A0158289A9A9A00E41CBB /* ScheenshareEventEmiter.m in Sources */,
DE9A015A289A9A9A00E41CBB /* JitsiMeetViewController.m in Sources */,
DE9A015C289A9A9A00E41CBB /* JitsiMeetLogger.m in Sources */,
4E0EF63328CA2FB3005D1B03 /* JMCallKitEmitter.m in Sources */,
DE9A015E289A9A9A00E41CBB /* JitsiMeetView.m in Sources */,

View File

@@ -1,30 +0,0 @@
/*
* Copyright @ 2022-present 8x8, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
#import "JitsiMeetViewDelegate.h"
NS_ASSUME_NONNULL_BEGIN
@interface JitsiMeetRenderingView : UIView
@property (nonatomic, assign) BOOL isPiPEnabled;
- (void)setProps:(NSDictionary *_Nonnull)newProps;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,83 +0,0 @@
/*
* Copyright @ 2022-present 8x8, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <mach/mach_time.h>
#import "JitsiMeetRenderingView.h"
#import "ReactUtils.h"
#import "RNRootView.h"
#import "JitsiMeet+Private.h"
/**
* Backwards compatibility: turn the boolean prop into a feature flag.
*/
static NSString *const PiPEnabledFeatureFlag = @"pip.enabled";
@interface JitsiMeetRenderingView ()
@end
@implementation JitsiMeetRenderingView {
/**
* React Native view where the entire content will be rendered.
*/
RNRootView *rootView;
}
/**
* Passes the given props to the React Native application. The props which we pass
* are a combination of 3 different sources:
*
* - JitsiMeet.defaultConferenceOptions
* - This function's parameters
* - Some extras which are added by this function
*/
- (void)setProps:(NSDictionary *_Nonnull)newProps {
NSMutableDictionary *props = mergeProps([[JitsiMeet sharedInstance] getDefaultProps], newProps);
// Set the PiP flag if it wasn't manually set.
NSMutableDictionary *featureFlags = props[@"flags"];
// TODO: temporary implementation
if (featureFlags[PiPEnabledFeatureFlag] == nil) {
featureFlags[PiPEnabledFeatureFlag] = @(self.isPiPEnabled);
}
// This method is supposed to be imperative i.e. a second
// invocation with one and the same URL is expected to join the respective
// conference again if the first invocation was followed by leaving the
// conference. However, React and, respectively,
// appProperties/initialProperties are declarative expressions i.e. one and
// the same URL will not trigger an automatic re-render in the JavaScript
// source code. The workaround implemented below introduces imperativeness
// in React Component props by defining a unique value per invocation.
props[@"timestamp"] = @(mach_absolute_time());
if (rootView) {
// Update props with the new URL.
rootView.appProperties = props;
} else {
RCTBridge *bridge = [[JitsiMeet sharedInstance] getReactBridge];
rootView = [[RNRootView alloc] initWithBridge:bridge
moduleName:@"App"
initialProperties:props];
rootView.backgroundColor = self.backgroundColor;
// Add rootView as a subview which completely covers this one.
[rootView setFrame:[self bounds]];
rootView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self addSubview:rootView];
}
}
@end

View File

@@ -20,22 +20,23 @@
#import "ExternalAPI.h"
#import "JitsiMeet+Private.h"
#import "JitsiMeetConferenceOptions+Private.h"
#import "JitsiMeetView.h"
#import "JitsiMeetViewController.h"
#import "JitsiMeetView+Private.h"
#import "ReactUtils.h"
#import "RNRootView.h"
@interface JitsiMeetView ()
@property (nonatomic, strong) JitsiMeetViewController *jitsiMeetViewController;
@property (nonatomic, strong) UINavigationController *navController;
@property (nonatomic, readonly) BOOL isPiPEnabled;
/**
* Backwards compatibility: turn the boolean prop into a feature flag.
*/
static NSString *const PiPEnabledFeatureFlag = @"pip.enabled";
@end
@implementation JitsiMeetView
@dynamic isPiPEnabled;
@implementation JitsiMeetView {
/**
* React Native view where the entire content will be rendered.
*/
RNRootView *rootView;
}
#pragma mark Initializers
@@ -66,10 +67,6 @@
return self;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
/**
* Internal initialization:
*
@@ -77,57 +74,72 @@
* - initializes the external API scope
*/
- (void)initWithXXX {
self.jitsiMeetViewController = [[JitsiMeetViewController alloc] init];
self.jitsiMeetViewController.view.frame = [self bounds];
[self addSubview:self.jitsiMeetViewController.view];
// Set a background color which is in accord with the JavaScript and Android
// parts of the application and causes less perceived visual flicker than
// the default background color.
self.backgroundColor
= [UIColor colorWithRed:.07f green:.07f blue:.07f alpha:1];
[self registerObservers];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark API
- (void)join:(JitsiMeetConferenceOptions *)options {
[self.jitsiMeetViewController join:options withPiP:self.isPiPEnabled];
[self setProps:options == nil ? @{} : [options asProps]];
}
- (void)leave {
[self.jitsiMeetViewController leave];
[self setProps:@{}];
}
- (void)hangUp {
[self.jitsiMeetViewController hangUp];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendHangUp];
}
- (void)setAudioMuted:(BOOL)muted {
[self.jitsiMeetViewController setAudioMuted:muted];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendSetAudioMuted:muted];
}
- (void)sendEndpointTextMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to {
[self.jitsiMeetViewController sendEndpointTextMessage:message :to];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendEndpointTextMessage:message :to];
}
- (void)toggleScreenShare:(BOOL)enabled {
[self.jitsiMeetViewController toggleScreenShare:enabled];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI toggleScreenShare:enabled];
}
- (void)retrieveParticipantsInfo:(void (^ _Nonnull)(NSArray * _Nullable))completionHandler {
[self.jitsiMeetViewController retrieveParticipantsInfo:completionHandler];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI retrieveParticipantsInfo:completionHandler];
}
- (void)openChat:(NSString*)to {
[self.jitsiMeetViewController openChat:to];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI openChat:to];
}
- (void)closeChat {
[self.jitsiMeetViewController closeChat];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI closeChat];
}
- (void)sendChatMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to {
[self.jitsiMeetViewController sendChatMessage:message :to];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendChatMessage:message :to];
}
- (void)setVideoMuted:(BOOL)muted {
[self.jitsiMeetViewController setVideoMuted:muted];
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendSetVideoMuted:muted];
}
- (void)setClosedCaptionsEnabled:(BOOL)enabled {
@@ -135,47 +147,97 @@
[externalAPI sendSetClosedCaptionsEnabled:enabled];
}
#pragma mark Private
- (BOOL)isPiPEnabled {
return self.delegate && [self.delegate respondsToSelector:@selector(enterPictureInPicture:)];
}
#pragma mark Private methods
- (void)registerObservers {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleUpdateViewPropsNotification:) name:updateViewPropsNotificationName object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleSendEventNotification:) name:sendEventNotificationName object:nil];
}
- (void)handleUpdateViewPropsNotification:(NSNotification *)notification {
NSDictionary *props = [notification.userInfo objectForKey:@"props"];
[self setProps:props];
}
- (void)handleSendEventNotification:(NSNotification *)notification {
NSString *eventName = notification.userInfo[@"name"];
NSString *eventData = notification.userInfo[@"data"];
SEL sel = NSSelectorFromString([self methodNameFromEventName:eventName]);
SEL sel = NSSelectorFromString([self methodNameFromEventName:eventName]);
if (sel && [self.delegate respondsToSelector:sel]) {
[self.delegate performSelector:sel withObject:eventData];
}
}
/**
* Converts a specific event name i.e. redux action type description to a
* method name.
* Converts a specific event name i.e. redux action type description to a
* method name.
*
* @param eventName The event name to convert to a method name.
* @return A method name constructed from the specified `eventName`.
*/
- (NSString *)methodNameFromEventName:(NSString *)eventName {
NSMutableString *methodName
= [NSMutableString stringWithCapacity:eventName.length];
for (NSString *c in [eventName componentsSeparatedByString:@"_"]) {
if (c.length) {
[methodName appendString:
methodName.length ? c.capitalizedString : c.lowercaseString];
}
}
[methodName appendString:@":"];
return methodName;
}
/**
* Passes the given props to the React Native application. The props which we pass
* are a combination of 3 different sources:
*
* @param eventName The event name to convert to a method name.
* @return A method name constructed from the specified `eventName`.
* - JitsiMeet.defaultConferenceOptions
* - This function's parameters
* - Some extras which are added by this function
*/
- (NSString *)methodNameFromEventName:(NSString *)eventName {
NSMutableString *methodName
= [NSMutableString stringWithCapacity:eventName.length];
- (void)setProps:(NSDictionary *_Nonnull)newProps {
NSMutableDictionary *props = mergeProps([[JitsiMeet sharedInstance] getDefaultProps], newProps);
for (NSString *c in [eventName componentsSeparatedByString:@"_"]) {
if (c.length) {
[methodName appendString:
methodName.length ? c.capitalizedString : c.lowercaseString];
}
}
[methodName appendString:@":"];
// Set the PiP flag if it wasn't manually set.
NSMutableDictionary *featureFlags = props[@"flags"];
if (featureFlags[PiPEnabledFeatureFlag] == nil) {
featureFlags[PiPEnabledFeatureFlag]
= [NSNumber numberWithBool:
self.delegate && [self.delegate respondsToSelector:@selector(enterPictureInPicture:)]];
}
return methodName;
// This method is supposed to be imperative i.e. a second
// invocation with one and the same URL is expected to join the respective
// conference again if the first invocation was followed by leaving the
// conference. However, React and, respectively,
// appProperties/initialProperties are declarative expressions i.e. one and
// the same URL will not trigger an automatic re-render in the JavaScript
// source code. The workaround implemented below introduces imperativeness
// in React Component props by defining a unique value per invocation.
props[@"timestamp"] = @(mach_absolute_time());
if (rootView) {
// Update props with the new URL.
rootView.appProperties = props;
} else {
RCTBridge *bridge = [[JitsiMeet sharedInstance] getReactBridge];
rootView
= [[RNRootView alloc] initWithBridge:bridge
moduleName:@"App"
initialProperties:props];
rootView.backgroundColor = self.backgroundColor;
// Add rootView as a subview which completely covers this one.
[rootView setFrame:[self bounds]];
rootView.autoresizingMask
= UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight;
[self addSubview:rootView];
}
}
@end

View File

@@ -1,38 +0,0 @@
/*
* Copyright @ 2022-present 8x8, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
#import "JitsiMeetConferenceOptions.h"
NS_ASSUME_NONNULL_BEGIN
@interface JitsiMeetViewController : UIViewController
- (void)join:(JitsiMeetConferenceOptions *)options withPiP:(BOOL)enablePiP;
- (void)leave;
- (void)hangUp;
- (void)setAudioMuted:(BOOL)muted;
- (void)sendEndpointTextMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to;
- (void)toggleScreenShare:(BOOL)enabled;
- (void)retrieveParticipantsInfo:(void (^ _Nonnull)(NSArray * _Nullable))completionHandler;
- (void)openChat:(NSString*)to;
- (void)closeChat;
- (void)sendChatMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to;
- (void)setVideoMuted:(BOOL)muted;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,127 +0,0 @@
/*
* Copyright @ 2022-present 8x8, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "JitsiMeetViewController.h"
#import "JitsiMeet+Private.h"
#import "JitsiMeetConferenceOptions+Private.h"
#import "JitsiMeetRenderingView.h"
#import "JitsiMeetView+Private.h"
@interface JitsiMeetViewController ()
@property (strong, nonatomic) JitsiMeetRenderingView *view;
@end
@implementation JitsiMeetViewController
@dynamic view;
- (instancetype)init {
self = [super init];
if (self) {
[self registerObservers];
}
return self;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)loadView {
[super loadView];
self.view = [[JitsiMeetRenderingView alloc] init];
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Set a background color which is in accord with the JavaScript and Android
// parts of the application and causes less perceived visual flicker than
// the default background color.
self.view.backgroundColor = [UIColor colorWithRed:.07f green:.07f blue:.07f alpha:1];
}
- (void)join:(JitsiMeetConferenceOptions *)options withPiP:(BOOL)enablePiP {
self.view.isPiPEnabled = enablePiP;
[self.view setProps:options == nil ? @{} : [options asProps]];
}
- (void)leave {
[self.view setProps:@{}];
}
- (void)hangUp {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendHangUp];
}
- (void)setAudioMuted:(BOOL)muted {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendSetAudioMuted:muted];
}
- (void)sendEndpointTextMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendEndpointTextMessage:message :to];
}
- (void)toggleScreenShare:(BOOL)enabled {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI toggleScreenShare:enabled];
}
- (void)retrieveParticipantsInfo:(void (^ _Nonnull)(NSArray * _Nullable))completionHandler {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI retrieveParticipantsInfo:completionHandler];
}
- (void)openChat:(NSString*)to {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI openChat:to];
}
- (void)closeChat {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI closeChat];
}
- (void)sendChatMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendChatMessage:message :to];
}
- (void)setVideoMuted:(BOOL)muted {
ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI];
[externalAPI sendSetVideoMuted:muted];
}
#pragma mark Private
- (void)registerObservers {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleUpdateViewPropsNotification:) name:updateViewPropsNotificationName object:nil];
}
- (void)handleUpdateViewPropsNotification:(NSNotification *)notification {
NSDictionary *props = [notification.userInfo objectForKey:@"props"];
[self.view setProps:props];
}
@end

View File

@@ -253,7 +253,7 @@ static CXProviderConfiguration *_providerConfiguration = nil;
// XXX keep track of muted actions to avoid "ping-pong"ing. See
// JMCallKitEmitter for details on the CXSetMutedCallAction handling.
for (CXAction *action in transaction.actions) {
if ([CXAction isKindOfClass:[CXSetMutedCallAction class]]) {
if ([action isKindOfClass:[CXSetMutedCallAction class]]) {
[self.emitter addMuteAction:action.UUID];
}
}

View File

@@ -1,27 +0,0 @@
{
"af": "",
"bg": "Bulgaars",
"cs": "Tsjeggies",
"de": "Duits",
"el": "Grieks",
"en": "Engels",
"eo": "Esperanto",
"es": "Spaans",
"fr": "Frans",
"hy": "Armeens",
"it": "Italiaans",
"ja": "Japannees",
"ko": "Koreaans",
"nb": "Bokmal-Noorweegs",
"oc": "Oksitaans",
"pl": "Pools",
"ptBR": "Portugees (Brasilië)",
"ru": "Russies",
"sk": "Slowaaks",
"sl": "Sloweens",
"sv": "Sweeds",
"tr": "Turks",
"uk": "Oekraïens",
"vi": "Viëtnamees",
"zhCN": "Sjinees (Sjina)"
}

View File

@@ -1,46 +0,0 @@
{
"af": "الأفريكانية",
"ar": "العربية",
"bg": "البلغارية",
"ca": "الكاتالانية",
"cs": "التشيكية",
"da": "الدنماركية",
"de": "الألمانية",
"el": "اليونانية",
"en": "الإنجليزية",
"enGB": "الإنجليزية (المملكة المتحدة)",
"eo": "الإسبرانتو",
"es": "الإسبانية",
"esUS": "الإسبانية (أمريكا اللاتينية)",
"et": "الإستونية",
"eu": "الباسكية",
"fi": "الفنلندية",
"fr": "الفرنسية",
"frCA": "الفرنسية (الكندية)",
"he": "العبرية",
"hr": "الكرواتية",
"hu": "الهنغارية",
"hy": "الأرمنية",
"id": "الإندونيسية",
"it": "الإيطالية",
"ja": "اليابانية",
"kab": "قَبَلي",
"ko": "الكورية",
"lt": "الليتوانية",
"mr": "الماراثى",
"nl": "الهولندية",
"oc": "القسطانية",
"pl": "البولندية",
"ptBR": "البرتغالية (البرازيل)",
"ro": "الرومانية",
"ru": "الروسية",
"sc": "السردينية",
"sk": "السلوفاكية",
"sl": "السلوفينية",
"sv": "السويدية",
"tr": "التركية",
"uk": "الأوكرانية",
"vi": "الفيتنامية",
"zhCN": "الصينية (الصين)",
"zhTW": "الصينية (تايوان)"
}

View File

@@ -1,35 +0,0 @@
{
"af": "Афрыкаанс",
"bg": "Балгарская",
"ca": "Каталанская",
"cs": "Чэшская",
"da": "Дацкая",
"de": "Нямецкая",
"el": "Грэцкая",
"en": "Англійская",
"enGB": "Англійская (Вялікабрытанія)",
"eo": "Эсперанта",
"es": "Іспанская",
"esUS": "Іспанская (Лацінская Амерыка)",
"et": "Эстонская",
"fi": "Фінская",
"fr": "Французская",
"frCA": "Французская (канадская)",
"hr": "Харвацкая",
"hu": "Венгерская",
"hy": "Армянская",
"it": "Італьянская",
"ja": "Японская",
"ko": "Карэйская",
"nl": "Галандская",
"oc": "Аксітанская",
"pl": "Польская",
"ptBR": "Партугальская (Бразілія)",
"ru": "Расійская",
"sv": "Шведская",
"tr": "Турэцкая",
"uk": "Украінская",
"vi": "В'етнамская",
"zhCN": "Кітайская (Кітай)",
"zhTW": "Кітайская (Тайвань)"
}

View File

@@ -1,33 +0,0 @@
{
"af": "Африканс",
"bg": "Български",
"ca": "Каталонски",
"cs": "Чешки",
"de": "Немски",
"el": "Гръцки",
"en": "Английски",
"enGB": "Английски (Великобритания)",
"eo": "Есперанто",
"es": "Испански",
"esUS": "Испански (Латинска Америка)",
"fi": "Фински",
"fr": "Френски",
"frCA": "Френски (Канада)",
"hr": "Хърватски",
"hu": "Унгарски",
"hy": "Арменски",
"it": "Италиански",
"ja": "Японски",
"ko": "Корейски",
"nl": "Нидерландски",
"oc": "Окситански",
"pl": "Полски",
"ptBR": "Португалски (Бразилия)",
"ru": "Руски",
"sv": "Шведски",
"tr": "Турски",
"uk": "Украински",
"vi": "Виетнамски",
"zhCN": "Китайски (Китай)",
"zhTW": "Тайвански"
}

View File

@@ -1,54 +0,0 @@
{
"af": "Afrikaans",
"ar": "Àrab",
"bg": "Búlgar",
"ca": "Català",
"cs": "Txec",
"da": "Danès",
"de": "Alemany",
"el": "Grec",
"en": "Anglès",
"enGB": "Anglès (Regne Unit)",
"eo": "Esperanto",
"es": "Espanyol",
"esUS": "Espanyol (Amèrica llatina)",
"et": "Estonià",
"eu": "Basc",
"fa": "Persa",
"fi": "Finès",
"fr": "Francès",
"frCA": "Francès (Canadà)",
"he": "Hebreu",
"hi": "Hindi",
"hr": "Croat",
"hu": "Hongarès",
"hy": "Armeni",
"id": "Indonesi",
"it": "Italià",
"ja": "Japonès",
"kab": "Cabilenc",
"ko": "Coreà",
"lt": "Lituà",
"lv": "Letó",
"ml": "Malaiàlam",
"mr": "Marathi",
"nl": "Neerlandès",
"oc": "Occità",
"pl": "Polonès",
"pt": "Portuguès",
"ptBR": "Portuguès (Brasil)",
"ro": "Romanès",
"ru": "Rus",
"sc": "Sard",
"sk": "Eslovac",
"sl": "Eslovè",
"sq": "Albanès",
"sr": "Serbi",
"sv": "Suec",
"te": "Telugu",
"tr": "Turc",
"uk": "Ucraïnès",
"vi": "Vietnamita",
"zhCN": "Xinès (Xina)",
"zhTW": "Xinès (Taiwan)"
}

View File

@@ -1,48 +0,0 @@
{
"af": "Afrikánština",
"ar": "Arabština",
"bg": "Bulharština",
"ca": "Katalánština",
"cs": "Čeština",
"da": "Dánština",
"de": "Němčina",
"el": "Řečtina",
"en": "Angličtina",
"enGB": "Angličtina (Spojené království)",
"eo": "Esperanto",
"es": "Španělština",
"esUS": "Španělština (Latinská Amerika)",
"et": "Estonština",
"eu": "Baskičtina",
"fi": "Finština",
"fr": "Francouština",
"frCA": "Francouzština (Kanada)",
"he": "Hebrejština",
"hr": "Chorvatština",
"hu": "Maďarština",
"hy": "Arménština",
"id": "Indonéština",
"it": "Italština",
"ja": "Japonština",
"kab": "Kabylština",
"ko": "Korejština",
"lt": "Litevština",
"mr": "Maráthština",
"nb": "Norština Bokmal",
"nl": "Nizozemština",
"oc": "Okcitánština",
"pl": "Polština",
"ptBR": "Portugalština (Brazílie)",
"ro": "Rumunština",
"ru": "Ruština",
"sc": "Sardinština",
"sk": "Slovenština",
"sl": "Slovinština",
"sr": "Srbština",
"sv": "Švédština",
"tr": "Turečtina",
"uk": "Ukrajinština",
"vi": "Vietnamština",
"zhCN": "Čínština (Čína)",
"zhTW": "Čínština (Taiwan)"
}

View File

@@ -1,34 +0,0 @@
{
"af": "Sydafrikansk",
"bg": "Bulgarsk",
"ca": "Katalansk",
"cs": "Tjekkisk",
"da": "Dansk",
"de": "Tysk",
"el": "Græsk",
"en": "Engelsk",
"enGB": "Engelsk (Storbritannien)",
"eo": "Esperanto",
"es": "Spansk",
"esUS": "Spansk (Latin Amerika)",
"fi": "Finsk",
"fr": "Fransk",
"frCA": "Fransk (Canada)",
"hr": "Kroatisk",
"hu": "Ungarsk",
"hy": "Armensk",
"it": "Italiensk",
"ja": "Japansk",
"ko": "Koreansk",
"nl": "Hollandsk",
"oc": "Occitansk",
"pl": "Polsk",
"ptBR": "Portugisisk (Brazilien)",
"ru": "Russisk",
"sv": "Svensk",
"tr": "Tyrkisk",
"uk": "Ukrainsk",
"vi": "Vietnamesisk",
"zhCN": "Kinesisk (China)",
"zhTW": "Kinesisk (Taiwan)"
}

View File

@@ -1,40 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgarisch",
"ca": "Katalanisch",
"cs": "Tschechisch",
"da": "Dänisch",
"de": "Deutsch",
"el": "Griechisch",
"en": "Englisch",
"enGB": "Englisch (Vereinigtes Königreich)",
"eo": "Esperanto",
"es": "Spanisch",
"esUS": "Spanisch (Lateinamerika)",
"et": "Estnisch",
"fi": "Finnisch",
"fr": "Französisch",
"frCA": "Französisch (Kanada)",
"hr": "Kroatisch",
"hsb": "Obersorbisch",
"hu": "Ungarisch",
"hy": "Armenisch",
"it": "Italienisch",
"ja": "Japanisch",
"ko": "Koreanisch",
"nb": "Norwegisch (Bokmal)",
"nl": "Niederländisch",
"oc": "Okzitanisch",
"pl": "Polnisch",
"ptBR": "Portugiesisch (Brasilien)",
"ru": "Russisch",
"sk": "Slowakisch",
"sl": "Slowenisch",
"sr": "Serbish",
"sv": "Schwedisch",
"tr": "Türkisch",
"uk": "Ukrainisch",
"vi": "Vietnamesisch",
"zhCN": "Chinesisch (China)",
"zhTW": "Chinesisch (Taiwan)"
}

View File

@@ -1,41 +0,0 @@
{
"af": "Αφρικανικά",
"bg": "Βουλγάρικα",
"ca": "Καταλανικά",
"cs": "Τσέχικα",
"da": "Δανέζικα",
"de": "Γερμανικά",
"el": "Ελληνικά",
"en": "Αγγλικά",
"enGB": "Αγγλικά (Ηνωμένου Βασιλείου)",
"eo": "Εσπεράντο",
"es": "Ισπανικά",
"esUS": "Ισπανικά (Λατινικής Αμερικής)",
"et": "Εσθονικά",
"eu": "Βάσκικα",
"fi": "Φινλανδικά",
"fr": "Γαλλικά",
"frCA": "Γαλλικά (Καναδικά)",
"he": "Εβραϊκά",
"hr": "Κροατικά",
"hu": "Ουγγρικά",
"hy": "Αρμένικα",
"id": "Ινδονησιακά",
"it": "Ιταλικά",
"ja": "Ιαπωνικά",
"ko": "Κορεάτικα",
"lt": "Λιθουανικά",
"nl": "Ολλανδικά",
"oc": "Οξιτανικά",
"pl": "Πολωνικά",
"ptBR": "Πορτογαλικά (Βραζιλίας)",
"ru": "Ρωσικά",
"sc": "Σαρδηνικά",
"sk": "Σλοβακικά",
"sv": "Σουηδικά",
"tr": "Τουρκικά",
"uk": "Ουκρανικά",
"vi": "Βιετναμέζικα",
"zhCN": "Κινέζικα (Κίνας)",
"zhTW": "Κινέζικα (Ταϊβάν)"
}

View File

@@ -1,40 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgarian",
"ca": "Catalan",
"cs": "Czech",
"da": "Danish",
"de": "German",
"el": "Greek",
"en": "English",
"enGB": "English (United Kingdom)",
"eo": "Esperanto",
"es": "Spanish",
"esUS": "Spanish (Latin America)",
"et": "Estonian",
"fi": "Finnish",
"fr": "French",
"frCA": "French (Canadian)",
"hr": "Croatian",
"hsb": "Upper Sorbian",
"hu": "Hungarian",
"hy": "Armenian",
"it": "Italian",
"ja": "Japanese",
"ko": "Korean",
"nb": "",
"nl": "Dutch",
"oc": "Occitan",
"pl": "Polish",
"ptBR": "Portuguese (Brazil)",
"ru": "Russian",
"sk": "",
"sl": "Slovenian",
"sr": "Serbian",
"sv": "Swedish",
"tr": "Turkish",
"uk": "Ukrainian",
"vi": "Vietnamese",
"zhCN": "Chinese (China)",
"zhTW": "Chinese (Taiwan)"
}

View File

@@ -1,27 +0,0 @@
{
"af": "Afrikansa",
"bg": "Bulgara",
"cs": "Ĉeĥa",
"de": "Germana",
"el": "Greka",
"en": "Angla",
"eo": "Esperanto",
"es": "Hispana",
"fr": "Franca",
"hy": "Armena",
"it": "Itala",
"ja": "Japana",
"ko": "Korea",
"nb": "Norvega (Bukmola)",
"oc": "Okcitana",
"pl": "Pola",
"ptBR": "Portugala (Brazila)",
"ru": "Rusa",
"sk": "Slovaka",
"sl": "Slovena",
"sv": "Sveda",
"tr": "Turka",
"uk": "Ukraina",
"vi": "Vjetnama",
"zhCN": "Ĉina (Ĉinuja)"
}

View File

@@ -1,37 +0,0 @@
{
"af": "Afrikáans",
"bg": "Búlgaro",
"ca": "Catalán",
"cs": "Checo",
"da": "Danés",
"de": "Alemán",
"el": "Griego",
"en": "Inglés",
"enGB": "Inglés (Reino Unido)",
"eo": "Esperanto",
"es": "Español",
"esUS": "Español (América Latina)",
"et": "Estonio",
"fi": "Finlandés",
"fr": "Francés",
"frCA": "Francés (Canadiense)",
"he": "Hebreo",
"hr": "Croata",
"hu": "Húngaro",
"hy": "Armenio",
"it": "Italiano",
"ja": "Japonés",
"ko": "Coreano",
"nl": "Holandés",
"oc": "Occitano",
"pl": "Polaco",
"ptBR": "Portugués (Brasil)",
"ru": "Ruso",
"sk": "Eslovaco",
"sv": "Sueco",
"tr": "Turco",
"uk": "Ucraniano",
"vi": "Vietnamita",
"zhCN": "Chino (China)",
"zhTW": "Chino (Taiwán)"
}

View File

@@ -1,35 +0,0 @@
{
"af": "Africano",
"bg": "Búlgaro",
"ca": "Catalán",
"cs": "Checo",
"de": "Alemán",
"el": "Griego",
"en": "Inglés",
"enGB": "Inglés",
"eo": "Esperanto",
"es": "Español",
"esUS": "Español (Latinoamérica)",
"fi": "Finlandés",
"fr": "Francés",
"frCA": "Francés (Canadiense)",
"he": "Hebreo",
"hr": "Croata",
"hu": "Húngaro",
"hy": "Armenio",
"it": "Italiano",
"ja": "Japonés",
"ko": "Coreano",
"nl": "Holandés",
"oc": "Occitano",
"pl": "Polaco",
"ptBR": "Portugués (Brasil)",
"ru": "Ruso",
"sk": "Eslovaco",
"sv": "Sueco",
"tr": "Turco",
"uk": "Ucraniano",
"vi": "Vietnamita",
"zhCN": "Chino (China)",
"zhTW": "Chino (Taiwan)"
}

View File

@@ -1,34 +0,0 @@
{
"af": "Afrikaani keel",
"bg": "Bulgaaria keel",
"ca": "Katalaani keel",
"cs": "Tšehhi keel",
"de": "Saksa keel",
"el": "Kreeka keel",
"en": "Inglise keel",
"enGB": "Inglise keel (Ühendkuningriik)",
"eo": "Esperanto keel",
"es": "Hispaania keel",
"esUS": "Hispaania keel (Ladina-Ameerika)",
"et": "Eesti keel",
"fi": "Soome keel",
"fr": "Prantsuse keel",
"frCA": "Prantsuse keel (Kanada)",
"hr": "Horvaadi keel",
"hu": "Ungari keel",
"hy": "Armeenia keel",
"it": "Itaalia keel",
"ja": "Jaapani keel",
"ko": "Korea keel",
"nl": "Hollandi keel",
"oc": "Oksitaani keel",
"pl": "Poola keel",
"ptBR": "Portigali keel (Brasiilia)",
"ru": "Vene keel",
"sv": "Roosi keel",
"tr": "Türgi keel",
"uk": "Ukraina keel",
"vi": "Vietnami keel",
"zhCN": "Hiina keel (Hiina)",
"zhTW": "Hiina keel (Tai)"
}

View File

@@ -1,34 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgariera",
"ca": "Katalana",
"cs": "Txekiera",
"da": "Daniera",
"de": "Alemana",
"el": "Greziera",
"en": "Ingelesa",
"enGB": "Ingelesa (Erresuma Batua)",
"eo": "Esperantoa",
"es": "Gaztelania",
"esUS": "Gaztelania (Latinamerika)",
"et": "Estoniera",
"fi": "Finlandiera",
"fr": "Frantsesa",
"frCA": "Frantsesa (Kanada)",
"hr": "Kroaziera",
"hu": "Hungariera",
"hy": "Armeniera",
"it": "Italiera",
"ja": "Japoniera",
"ko": "Koreera",
"nl": "Nederlandera",
"oc": "Okzitaniera",
"pl": "Poloniera",
"ptBR": "Portugesa (Brasil)",
"ru": "Errusiera",
"sv": "Suediera",
"tr": "Turkiera",
"vi": "Vietnamera",
"zhCN": "Txinera (Txina)",
"zhTW": "Txinera (Taiwan)"
}

View File

@@ -1,50 +0,0 @@
{
"af": "آفریقایی",
"ar": "عربی",
"bg": "بلغاری",
"ca": "کاتالانی",
"cs": "چک",
"da": "دانمارکی",
"de": "آلمانی",
"el": "یونانی",
"en": "انگلیسی",
"enGB": "انگلیسی (انگلستان)",
"eo": "اسپرانتو",
"es": "اسپانیایی",
"esUS": "اسپانیایی (آمریکا لاتین)",
"et": "استونیایی",
"eu": "باسکایی",
"fa": "فارسی",
"fi": "فنلاندی",
"fr": "فرانسوی",
"frCA": "فرانسوی (کانادا)",
"he": "عبری",
"hr": "کرواتی",
"hu": "بلغاری",
"hy": "ارمنی",
"id": "اندونزیایی",
"it": "ایتالیایی",
"ja": "ژاپنی",
"kab": "کابیلی",
"ko": "کره ای",
"lt": "لیتوانیایی",
"lv": "لتونیایی",
"ml": "مالایایی",
"mr": "مراتی",
"nl": "هلندی",
"oc": "اکسیتان(قدیمی)",
"pl": "لهستانی",
"ptBR": "پرتغالی (برزیل)",
"ro": "رومانیایی",
"ru": "روسی",
"sc": "ساردینی",
"sk": "اسلواکیایی",
"sl": "اسلوونیایی",
"sr": "صربی",
"sv": "سوئدی",
"tr": "ترکی",
"uk": "اوکراینی",
"vi": "ویتنامی",
"zhCN": "چینی",
"zhTW": "چینی (تایوان)"
}

View File

@@ -1,38 +0,0 @@
{
"af": "afrikaans",
"bg": "bulgaria",
"ca": "katalaani",
"cs": "tšekki",
"da": "tanska",
"de": "saksa",
"el": "kreikka",
"en": "englanti",
"enGB": "englanti (Yhdistynyt kuningaskunta)",
"eo": "esperanto",
"es": "espanja",
"esUS": "espanja (Latinalainen Amerikka)",
"et": "viro",
"fi": "suomi",
"fr": "ranska",
"frCA": "ranska (Kanada)",
"hr": "kroaatti",
"hu": "unkari",
"hy": "armenia",
"it": "italia",
"ja": "japani",
"ko": "korea",
"nb": "",
"nl": "hollanti",
"oc": "oksitaani",
"pl": "puola",
"ptBR": "portugali (Brasilia)",
"ru": "venäjä",
"sk": "",
"sl": "",
"sv": "ruotsi",
"tr": "turkki",
"uk": "ukraina",
"vi": "vietnam",
"zhCN": "kiina (Kiina)",
"zhTW": "kiina (Taiwan)"
}

View File

@@ -1,36 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgare",
"ca": "Catalan",
"cs": "Tchèque",
"da": "Danois",
"de": "Allemand",
"el": "Grec",
"en": "Anglais",
"enGB": "Anglais (Royaume-Uni)",
"eo": "Espéranto",
"es": "Espagnol",
"esUS": "Espagnol (Amérique latine)",
"et": "Estonien",
"fi": "Finnois",
"fr": "Français",
"frCA": "Français (Canada)",
"hr": "Croate",
"hu": "Hongrois",
"hy": "Arménien",
"it": "Italien",
"ja": "Japonais",
"ko": "Coréen",
"nl": "Néerlandais",
"oc": "Occitan",
"pl": "Polonais",
"ptBR": "Portugais (Brésil)",
"ru": "Russe",
"sk": "Slovaque",
"sv": "Suédois",
"tr": "Turc",
"uk": "Ukrainien",
"vi": "Vietnamien",
"zhCN": "Chinois (Chine)",
"zhTW": "Chinois (Taiwan)"
}

View File

@@ -1,36 +0,0 @@
{
"af": "Africain",
"bg": "Bulgare",
"ca": "Catalan",
"cs": "Tchèque",
"da": "Danois",
"de": "Allemand",
"el": "Grec",
"en": "Anglais",
"enGB": "Anglais (Royaume-Uni)",
"eo": "Espéranto",
"es": "Espagnol",
"esUS": "Espagnol (Amérique latine)",
"et": "Estonien",
"fi": "Finnois",
"fr": "Français",
"frCA": "Français (Canadien)",
"hr": "Croate",
"hu": "Hongrois",
"hy": "Arménien",
"it": "Italien",
"ja": "Japonais",
"ko": "Coréen",
"nl": "Néerlandais",
"oc": "Occitan",
"pl": "Polonais",
"ptBR": "Portugais (Brésil)",
"ru": "Russe",
"sk": "Slovaque",
"sv": "Suédois",
"tr": "Turc",
"uk": "Ukrainien",
"vi": "Vietnamien",
"zhCN": "Chinois (Chine)",
"zhTW": "Chinois (Taiwan)"
}

View File

@@ -1,49 +0,0 @@
{
"af": "Afrikans",
"ar": "Árabe",
"bg": "Búlgaro",
"ca": "Catalán",
"cs": "Checo",
"da": "Dinamarqués",
"de": "Alemán",
"el": "Grego",
"en": "Inglés",
"enGB": "Inglés (Reino Unido)",
"eo": "Esperanto",
"es": "Español",
"esUS": "Español (Hispanoamérica)",
"et": "Estoniano",
"eu": "Éuscaro",
"fi": "Finlandés",
"fr": "Francés",
"frCA": "Francés (Canadá)",
"he": "Hebreo",
"hr": "Croata",
"hu": "Húngaro",
"hy": "Armenio",
"id": "Indonesio",
"it": "Italiano",
"ja": "Xaponés",
"kab": "Cabila",
"ko": "Coreano",
"lt": "Lituano",
"lv": "Letón",
"ml": "Malayalam",
"mr": "Marathi",
"nl": "Holandés",
"oc": "Occitano",
"pl": "Polaco",
"ptBR": "Portugués (Brasil)",
"ro": "Romanés",
"ru": "Ruso",
"sc": "Sardo",
"sk": "Eslovaco",
"sl": "Esloveno",
"sr": "Serbio",
"sv": "Sueco",
"tr": "Turco",
"uk": "Ucraíno",
"vi": "Vietnamita",
"zhCN": "Chinés (China)",
"zhTW": "Chinés (Taiwán)"
}

View File

@@ -1,37 +0,0 @@
{
"af": "אפריקאית",
"bg": "בולגרית",
"ca": "קטלנית",
"cs": "קזחית",
"da": "דנית",
"de": "גרמנית",
"el": "יוונית",
"en": "אנגלית",
"enGB": "אנגלית (בריטניה)",
"eo": "אספרנטו",
"es": "ספרדית",
"esUS": "ספרדית (אמריקה הלטינית)",
"et": "אסטונית",
"fi": "פינית",
"fr": "צרפתית",
"frCA": "צרפתית (קנדה)",
"he": "עברית",
"hr": "קראוטית",
"hu": "הונגרית",
"hy": "ארמנית",
"it": "איטלקית",
"ja": "יפנית",
"ko": "קוראנית",
"nl": "הולנדית",
"oc": "אוקיאנית",
"pl": "פולנית",
"ptBR": "פורטוגזית (ברזיל)",
"ru": "רוסית",
"sc": "סרבית",
"sk": "סלובקית",
"sv": "שוודית",
"tr": "טורקית",
"vi": "ויטנאמית",
"zhCN": "סינית (סין)",
"zhTW": "סינית (טיוואן)"
}

View File

@@ -1,52 +0,0 @@
{
"af": "Afrikaans",
"ar": "Arabic",
"bg": "Bulgarian",
"ca": "Catalan",
"cs": "Czech",
"da": "Danish",
"de": "German",
"el": "Greek",
"en": "अंग्रेज़ी",
"enGB": "अंग्रेज़ी (UK)",
"eo": "Esperanto",
"es": "Spanish",
"esUS": "Spanish (Latin America)",
"et": "Estonian",
"eu": "Basque",
"fa": "Persian",
"fi": "Finnish",
"fr": "French",
"frCA": "French (Canadian)",
"he": "Hebrew",
"hi": "हिन्दी",
"hr": "Croatian",
"hu": "Hungarian",
"hy": "Armenian",
"id": "Indonesian",
"it": "Italian",
"ja": "Japanese",
"kab": "Kabyle",
"ko": "Korean",
"lt": "Lithuanian",
"lv": "Latvian",
"ml": "मलयालम",
"mr": "मराठी",
"nl": "Dutch",
"oc": "Occitan",
"pl": "Polish",
"pt": "Portuguese",
"ptBR": "Portuguese (Brazil)",
"ro": "Romanian",
"ru": "Russian",
"sc": "Sardinian",
"sk": "Slovak",
"sl": "Slovenian",
"sr": "Serbian",
"sv": "Swedish",
"tr": "Turkish",
"uk": "Ukrainian",
"vi": "Vietnamese",
"zhCN": "Chinese (China)",
"zhTW": "Chinese (Taiwan)"
}

View File

@@ -1,55 +0,0 @@
{
"af": "Afrikanski",
"ar": "Arapski",
"bg": "Bugarski",
"ca": "Katalanski",
"cs": "Češki",
"da": "Danski",
"de": "Njemački",
"el": "Grčki",
"en": "Engleski",
"enGB": "Engleski (Ujedinjeno Kraljevstvo)",
"eo": "Esperanto",
"es": "Španjolski",
"esUS": "Španjolski (Latinska Amerika)",
"et": "Estonski",
"eu": "Baskijski",
"fa": "Perzijski",
"fi": "Finski",
"fr": "Francuski",
"frCA": "Francuski (Canada)",
"he": "Hebrejski",
"hi": "Hindski",
"hr": "Hrvatski",
"hsb": "Gornjolužičkosrpski",
"hu": "Mađarski",
"hy": "Armenski",
"id": "Indonezijski",
"it": "Talijanski",
"ja": "Japanski",
"ko": "Korejski",
"lt": "Litvanski",
"lv": "Latvijski",
"ml": "Malayalam",
"mr": "Marathi",
"nb": "Norveški Bokmal",
"nl": "Nizozemski",
"oc": "Okcitanski",
"pl": "Poljski",
"pt": "Portugalski",
"ptBR": "Portugalski (Brazil)",
"ro": "Rumunjski",
"ru": "Ruski",
"sc": "Sardijski",
"sk": "Slovački",
"sl": "Slovenski",
"sq": "Albanski",
"sr": "Srpski",
"sv": "Švedski",
"te": "Teluški",
"tr": "Turski",
"uk": "Ukrajinski",
"vi": "Vijetnamski",
"zhCN": "Kineski (Kina)",
"zhTW": "Kineski (Taiwan)"
}

View File

@@ -1,47 +0,0 @@
{
"ar": "arabšćina",
"bg": "bołharšćina",
"cs": "čěšćina",
"da": "danšćina",
"de": "němčina",
"el": "grjekšćina",
"en": "jendźelšćina",
"enGB": "jendźelšćina (Wulka Britaniska)",
"eo": "esperanto",
"es": "španišćina",
"esUS": "španišćina (Łaćonska)",
"et": "estišćina",
"eu": "baskišćina",
"fa": "persišćina",
"fi": "finšćina",
"fr": "francošćina",
"frCA": "francošćina (Kanada)",
"he": "hebrejšćina",
"hi": "hindišćina",
"hr": "chorwatšćina",
"hsb": "hornjoserbšćina",
"hu": "madźaršćina",
"hy": "armenšćina",
"id": "indonešćina",
"it": "italšćina",
"ja": "japanšćina",
"ko": "korejšćina",
"lt": "litawšćina",
"lv": "letišćina",
"nl": "nižozemšćina",
"pl": "pólšćina",
"pt": "portugalšćina",
"ptBR": "portugalšćina (Brazilska)",
"ro": "rumunšćina",
"ru": "rušćina",
"sk": "słowakšćina",
"sl": "słowjenšćina",
"sq": "albanšćina",
"sr": "serbišćina",
"sv": "šwedšćina",
"tr": "turkowšćina",
"uk": "ukrainšćina",
"vi": "vietnamšćina",
"zhCN": "chinšćina (China)",
"zhTW": "chinšćina (Taiwan)"
}

View File

@@ -1,36 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bolgár",
"ca": "Katalán",
"cs": "Cseh",
"da": "Dán",
"de": "Német",
"el": "Görög",
"en": "Angol",
"enGB": "Angol (Egyesült Királyság)",
"eo": "Eszperantó",
"es": "Spanyol",
"esUS": "Spanyol (Latin-Amerika)",
"et": "Észt",
"fi": "Finn",
"fr": "Francia",
"frCA": "Francia (kanadai)",
"hr": "Horvát",
"hu": "Magyar",
"hy": "Örmény",
"it": "Olasz",
"ja": "Japán",
"ko": "Koreai",
"nl": "Holland",
"oc": "Okszitán",
"pl": "Lengyel",
"ptBR": "Portugál (Brazil)",
"ru": "Orosz",
"sk": "Szlovákul",
"sv": "Svéd",
"tr": "Török",
"uk": "Ukrán",
"vi": "Vietnámi",
"zhCN": "Kínai (Kína)",
"zhTW": "Kínai (Tajvan)"
}

View File

@@ -1,27 +0,0 @@
{
"af": "",
"bg": "Բուլղարերեն",
"cs": "",
"de": "Գերմաներեն ",
"el": "",
"en": "Անգլերեն",
"eo": "Էսպերանտո",
"es": "Իսպաներեն",
"fr": "Ֆրանսերեն",
"hy": "Հայերեն",
"it": "Իտալերեն",
"ja": "",
"ko": "",
"nb": "Նորվեգերեն",
"oc": "Օքսիտաներեն",
"pl": "Լեհերեն",
"ptBR": "Պորտուգալերեն (Բրազիլիա)",
"ru": "Ռուսերեն",
"sk": "Սլովակերեն",
"sl": "Սլովեներեն ",
"sv": "Շվեդերեն ",
"tr": "Թուրքերեն",
"uk": "Ուկրաիներեն",
"vi": "",
"zhCN": "Չիներեն"
}

View File

@@ -1,40 +0,0 @@
{
"af": "Bahasa Afrika",
"bg": "Bahasa Bulgaria",
"ca": "Bahasa Katalan",
"cs": "Bahasa Ceko",
"da": "Bahasa Denmark",
"de": "Bahasa Jerman",
"el": "Bahasa Yunani",
"en": "Bahasa Inggris - US",
"enGB": "Bahasa Inggris - UK",
"eo": "Esperanto",
"es": "Bahasa Spanyol",
"esUS": "Bahasa Spanyol - Latin",
"et": "Bahasa Estonia",
"fi": "Bahasa Finlandia",
"fr": "Bahasa Prancis",
"frCA": "Bahasa Prancis - Kanada",
"he": "Bahasa Hebrew",
"hr": "Bahasa Kroasia",
"hu": "Bahasa Hongaria",
"hy": "Bahasa Armenia",
"id": "Bahasa Indonesia",
"it": "Bahasa Italia",
"ja": "Bahasa Jepang",
"ko": "Bahasa Korea",
"lt": "Bahasa Lituania",
"nl": "Bahasa Belanda",
"oc": "Bahasa Oceania",
"pl": "Bahasa Polandia",
"ptBR": "Bahasa Portugis - Brazil",
"ru": "Bahasa Rusia",
"sc": "Bahasa Sardinia",
"sk": "Bahasa Slovakia",
"sv": "Bahasa Swedia",
"tr": "Bahasa Turki",
"uk": "Bahasa Ukraina",
"vi": "Bahasa Vietnam",
"zhCN": "Bahasa Mandarin",
"zhTW": "Bahasa Mandarin - Taiwan"
}

View File

@@ -1,35 +0,0 @@
{
"af": "Afríkanska",
"bg": "Búlgarska",
"ca": "Katalónska",
"cs": "Tékkneska",
"da": "Danska",
"de": "Þýska",
"el": "Gríska",
"en": "Enska",
"enGB": "Enska (Bretland)",
"eo": "Esperantó",
"es": "Spænska",
"esUS": "Spænska (spænskumælandi Ameríka)",
"et": "Eistneska",
"fi": "Finnska",
"fr": "Franska",
"frCA": "Franska (kanadísk)",
"hr": "Króatíska",
"hu": "Ungverska",
"hy": "Armenska",
"it": "Ítalska",
"ja": "Japanska",
"ko": "Kóreska",
"nl": "Hollenska",
"oc": "Occitanska",
"pl": "Pólska",
"ptBR": "Portúgalska (Brasilía)",
"ru": "Rússneska",
"sv": "Sænska",
"tr": "Tyrkneska",
"uk": "Úkraínska",
"vi": "Víetnamska",
"zhCN": "Kínverska (Kína)",
"zhTW": "Kínverska (Taívan)"
}

View File

@@ -1,48 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgaro",
"ca": "Catalano",
"cs": "Ceco",
"da": "Danese",
"de": "Tedesco",
"el": "Greco",
"en": "Inglese",
"enGB": "Inglese (Regno Unito)",
"eo": "Esperanto",
"es": "Spagnolo",
"esUS": "Spagnolo (America Latina)",
"et": "Estone",
"eu": "Basco",
"fi": "Finlandese",
"fr": "Francese",
"frCA": "Francese (Canada)",
"he": "Ebraico",
"hr": "Croato",
"hu": "Ungaro",
"hy": "Armeno",
"id": "Indonesiano",
"it": "Italiano",
"ja": "Giapponese",
"kab": "Kabyle",
"ko": "Coreano",
"lt": "Lituano",
"lv": "Lettone",
"ml": "Malese",
"mr": "Marathi",
"nl": "Olandese",
"oc": "Occitano",
"pl": "Polacco",
"ptBR": "Portoghese (Brasile)",
"ro": "Rumeno",
"ru": "Russo",
"sc": "Sardo",
"sk": "Slovacco",
"sl": "Sloveno",
"sr": "Serbo",
"sv": "Svedese",
"tr": "Turco",
"uk": "Ucraino",
"vi": "Vietnamita",
"zhCN": "Cinese (Cina)",
"zhTW": "Cinese (Taiwan)"
}

View File

@@ -1,54 +0,0 @@
{
"af": "アフリカーンス語",
"ar": "アラビア語",
"bg": "ブルガリア語",
"ca": "カタルーニャ語",
"cs": "チェコ語",
"da": "デンマーク語",
"de": "ドイツ語",
"el": "ギリシア語",
"en": "英語",
"enGB": "英語 (英国)",
"eo": "エスペラント語",
"es": "スペイン語",
"esUS": "スペイン語 (ラテンアメリカ)",
"et": "エストニア語",
"eu": "バスク語",
"fa": "ペルシア語",
"fi": "フィンランド語",
"fr": "フランス語",
"frCA": "フランス語 (カナダ)",
"he": "ヘブライ語",
"hi": "ヒンディー語",
"hr": "クロアチア語",
"hu": "ハンガリー語",
"hy": "アルメニア語",
"id": "インドネシア語",
"it": "イタリア語",
"ja": "日本語",
"kab": "カビル語",
"ko": "韓国語",
"lt": "リトアニア語",
"lv": "ラトビア語",
"ml": "マラヤーラム語",
"mr": "マラーティー語",
"nl": "オランダ語",
"oc": "オック語",
"pl": "ポーランド語",
"pt": "ポルトガル語",
"ptBR": "ポルトガル語 (ブラジル)",
"ro": "ルーマニア語",
"ru": "ロシア語",
"sc": "サルデーニャ語",
"sk": "スロバキア語",
"sl": "スロベニア語",
"sq": "アルバニア語",
"sr": "セルビア語",
"sv": "スウェーデン語",
"te": "テルグ語",
"tr": "トルコ語",
"uk": "ウクライナ語",
"vi": "ベトナム語",
"zhCN": "中国語 (中国)",
"zhTW": "中国語 (台湾)"
}

View File

@@ -1,55 +0,0 @@
{
"af": "Tafrikant",
"ar": "Taɛrabt",
"bg": "Tabulgarit",
"ca": "Takaṭalant",
"cs": "Taččikit",
"da": "Tadanit",
"de": "Talmanit",
"el": "Tagrigit",
"en": "Taglizit",
"enGB": "Tagnizit (Tagldit i ddukklen)",
"eo": "Taspiṛantit",
"es": "Taspanit",
"esUS": "Taspanit (Temrikt Talatinit)",
"et": "Tastunit",
"eu": "Tabaskit",
"fa": "Tafarisit",
"fi": "Tafinit",
"fr": "Tafransist",
"frCA": "Tafṛansist (Kanada)",
"he": "Taɛbrit",
"hi": "Tahindit",
"hr": "Takrwasit",
"hu": "Tahungrit",
"hy": "Tarminit",
"id": "Tandunizit",
"it": "Taṭalyant",
"ja": "Tajapunit",
"kab": "Taqbaylit",
"ko": "Takurit",
"lt": "Taliṭwanit",
"lv": "Talatviant",
"ml": "Tamalayalamt",
"mr": "Tamratit",
"nb": "Tanurvijit Bukmal",
"nl": "Tahulandit",
"oc": "Tuksitant",
"pl": "Tapulunit",
"pt": "Taportugit",
"ptBR": "Tapurtugit (Brazil)",
"ro": "Tarumanit",
"ru": "Tarusit",
"sc": "Tasardit",
"sk": "Tasluvakit",
"sl": "Tasluvinit",
"sq": "Talbanit",
"sr": "Taserbit",
"sv": "Taswidit",
"te": "Tatelugut",
"tr": "Taṭurkit",
"uk": "Tukranit",
"vi": "Tavyitnamit",
"zhCN": "Tavyitnamit",
"zhTW": "Tacinwat (Taiwan)"
}

View File

@@ -1,50 +0,0 @@
{
"af": "아프리칸스어",
"ar": "아랍어",
"bg": "불가리어",
"ca": "카탈루냐어",
"cs": "체코어",
"da": "덴마크어",
"de": "독일어",
"el": "그리스어",
"en": "영어",
"enGB": "영어(영국)",
"eo": "에스페란토어",
"es": "스페인어",
"esUS": "스페인어(라틴 아메리카)",
"et": "에스토니아어",
"eu": "바스크어",
"fa": "페르시아어",
"fi": "핀란드어",
"fr": "프랑스어",
"frCA": "프랑스어(캐나다)",
"he": "히브리어",
"hr": "크로아티아어",
"hu": "헝가리어",
"hy": "아르메니아어",
"id": "인도네시아어",
"it": "이탈리아어",
"ja": "일본어",
"kab": "커바일어",
"ko": "한국어",
"lt": "리투아니아어",
"lv": "라트비아어",
"ml": "말라얄람어",
"mr": "마라티어",
"nl": "네덜란드어",
"oc": "오크어",
"pl": "폴란드어",
"ptBR": "포르투갈어(브라질)",
"ro": "루마니아어",
"ru": "러시아어",
"sc": "사르데냐어",
"sk": "슬로바키아어",
"sl": "슬로베니아어",
"sr": "세르비아어",
"sv": "스웨덴어",
"tr": "터키어",
"uk": "우크라이나어",
"vi": "베트남어",
"zhCN": "중국어(중국)",
"zhTW": "중국어(대만)"
}

View File

@@ -1,36 +0,0 @@
{
"af": "Afrikanų",
"bg": "Bulgarų",
"ca": "Katalanų",
"cs": "Čekų",
"da": "Danų",
"de": "Vokiečių",
"el": "Graikų",
"en": "Anglų",
"enGB": "Anglų (Britų)",
"eo": "Esperanto",
"es": "Ispanų",
"esUS": "Ispanų (Lotynų Amerika)",
"et": "Estų",
"fi": "Suomių",
"fr": "Prancūzų",
"frCA": "Prancūzų (Kanada)",
"hr": "Kroatų",
"hu": "Vengrų",
"hy": "Armėnų",
"it": "Italų",
"ja": "Japonų",
"ko": "Korėjiečių",
"lt": "Lietuvių",
"nl": "Olandų",
"oc": "Oksitanų",
"pl": "Lenkų",
"ptBR": "Portugalų (Brazilija)",
"ru": "Rusų",
"sv": "Švedų",
"tr": "Turkų",
"uk": "Ukrainiečių",
"vi": "Vietnamiečių",
"zhCN": "Kinų (China)",
"zhTW": "Kinų (Taivanas)"
}

View File

@@ -1,35 +0,0 @@
{
"af": "āfrikāņu",
"bg": "bulgāru",
"ca": "kataloniešu",
"cs": "čehu",
"de": "vācu",
"el": "grieķu",
"en": "angļu",
"enGB": "angļu (Lielbritānija)",
"eo": "esperanto",
"es": "spāņu",
"esUS": "spāņu (Dienvidamerika)",
"et": "igauņu",
"fi": "somu",
"fr": "franču",
"frCA": "franču (Kanāda)",
"hr": "horvātu",
"hu": "ungāru",
"hy": "armēņu",
"it": "itāļu",
"ja": "japānu",
"ko": "korejiešu",
"lv": "laviešu",
"nl": "holandiešu",
"oc": "oksitāņu",
"pl": "poļu",
"ptBR": "portugāļu (Brazīlija)",
"ru": "krievu",
"sv": "zviedru",
"tr": "turku",
"uk": "ukraiņu",
"vi": "vjetnamiešu",
"zhCN": "ķīniešu (Ķīna)",
"zhTW": "ķīniešu (Taivana)"
}

View File

@@ -1,35 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgarian",
"ca": "Catalan",
"cs": "Czech",
"da": "Danish",
"de": "German",
"el": "Greek",
"en": "English",
"enGB": "English (United Kingdom)",
"eo": "Esperanto",
"es": "Spanish",
"esUS": "Spanish (Latin America)",
"et": "Estonian",
"fi": "Finnish",
"fr": "French",
"frCA": "French (Canadian)",
"hr": "Croatian",
"hu": "Hungarian",
"hy": "Armenian",
"it": "Italian",
"ja": "Japanese",
"ko": "Korean",
"mn": "Монгол",
"nl": "Dutch",
"oc": "Occitan",
"pl": "Polish",
"ptBR": "Portuguese (Brazil)",
"ru": "Russian",
"sv": "Swedish",
"tr": "Turkish",
"vi": "Vietnamese",
"zhCN": "Chinese (China)",
"zhTW": "Chinese (Taiwan)"
}

View File

@@ -1,37 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgarian",
"ca": "Catalan",
"cs": "Czech",
"da": "Danish",
"de": "German",
"el": "Greek",
"en": "English",
"enGB": "English (United Kingdom)",
"eo": "Esperanto",
"es": "Spanish",
"esUS": "Spanish (Latin America)",
"et": "Estonian",
"fi": "Finnish",
"fr": "French",
"frCA": "French (Canadian)",
"hr": "Croatian",
"hu": "Hungarian",
"hy": "Armenian",
"it": "Italian",
"ja": "Japanese",
"ko": "Korean",
"nb": "",
"nl": "Dutch",
"oc": "Occitan",
"pl": "Polish",
"ptBR": "Portuguese (Brazil)",
"ru": "Russian",
"sk": "",
"sl": "",
"sv": "Swedish",
"tr": "Turkish",
"vi": "Vietnamese",
"zhCN": "Chinese (China)",
"zhTW": "Chinese (Taiwan)"
}

View File

@@ -1,31 +0,0 @@
{
"af": "",
"bg": "",
"cs": "Tsjekkisk",
"da": "Dansk",
"de": "Tysk",
"el": "Gresk",
"en": "Engelsk",
"eo": "",
"es": "Spansk",
"fi": "Finsk",
"fr": "Fransk",
"hr": "Kroatisk",
"hu": "Ungarsk",
"hy": "",
"it": "Italiensk",
"ja": "Japansk",
"ko": "Koreansk",
"nb": "",
"oc": "",
"pl": "Polsk",
"ptBR": "",
"ru": "Russisk",
"sk": "",
"sl": "",
"sv": "Svensk",
"tr": "Tyrkisk",
"uk": "Ukrainsk",
"vi": "Vietnamesisk",
"zhCN": ""
}

View File

@@ -1,38 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgaars",
"ca": "Catalaans",
"cs": "Tsjechisch",
"da": "Deens",
"de": "Duits",
"el": "Grieks",
"en": "Engels",
"enGB": "Engels (Verenigd Koninkrijk)",
"eo": "Esperanto",
"es": "Spaans",
"esUS": "Spaans (Latijns Amerika)",
"et": "Estlands",
"fi": "Fins",
"fr": "Frans",
"frCA": "Frans (Canadees)",
"hr": "Kroatisch",
"hu": "Hongaars",
"hy": "Armeens",
"it": "Italiaans",
"ja": "Japans",
"ko": "Koreaans",
"nb": "Noors (Bokmal)",
"nl": "Nederlands",
"oc": "Occitaans",
"pl": "Pools",
"ptBR": "Portugees (Brazilië)",
"ru": "Russisch",
"sk": "Slowaaks",
"sl": "Sloveens",
"sv": "Zweeds",
"tr": "Turks",
"uk": "Oekraïens",
"vi": "Vietnamees",
"zhCN": "Chinees (China)",
"zhTW": "Chinees (Taiwan)"
}

View File

@@ -1,54 +0,0 @@
{
"af": "Afrikaans",
"ar": "Arabi",
"bg": "Bulgar",
"ca": "Catalan",
"cs": "Chèc",
"da": "Danés",
"de": "Aleman",
"el": "Grèc",
"en": "Anglés",
"enGB": "Anglés (Reialme Unit)",
"eo": "Esperanto",
"es": "Castelhan",
"esUS": "Espanhòl (America latina)",
"et": "Estonian",
"eu": "Basc",
"fa": "Persa",
"fi": "Finés",
"fr": "Francés",
"frCA": "Francés (Canadian)",
"he": "Ebrèu",
"hi": "Indi",
"hr": "Croat",
"hu": "Ongrés",
"hy": "Armenian",
"id": "Indonesian",
"it": "Italian",
"ja": "Japonés",
"kab": "Cabil",
"ko": "Corean",
"lt": "Lituanian",
"lv": "Leton",
"ml": "Malaialam",
"mr": "Marathi",
"nl": "Neerlandés",
"oc": "Occitan",
"pl": "Polonés",
"pt": "Portugués",
"ptBR": "Portugués (Brasil)",
"ro": "Romanian",
"ru": "Rus",
"sc": "Sarde",
"sk": "Eslovac",
"sl": "Eslovèn",
"sq": "Albanés",
"sr": "Sèrbe",
"sv": "Suedés",
"te": "Telugu",
"tr": "Turc",
"uk": "Ucraïnian",
"vi": "Vietnamian",
"zhCN": "Chinés (China)",
"zhTW": "Chinés (Taiwan)"
}

View File

@@ -1,54 +0,0 @@
{
"af": "Afrikaans",
"ar": "arabski",
"bg": "bułgarski",
"ca": "kataloński",
"cs": "czeski",
"da": "duński",
"de": "niemiecki",
"el": "grecki",
"en": "angielski",
"enGB": "Angielski (Zjednoczone Królestwo)",
"eo": "esperanto",
"es": "hiszpański",
"esUS": "hiszpański (Ameryka Łacińska)",
"et": "estoński",
"eu": "baskijski",
"fa": "perski",
"fi": "fiński",
"fr": "francuski",
"frCA": "francuski (kanadyjski)",
"he": "hebrajski",
"hi": "hindi",
"hr": "chorwacki",
"hu": "węgierski",
"hy": "ormiański",
"id": "indonezyjski",
"it": "włoski",
"ja": "japoński",
"kab": "Kabyle",
"ko": "koreański",
"lt": "litewski",
"lv": "łotewski",
"ml": "malajalam",
"mr": "Marathi",
"nl": "holenderski",
"oc": "prowansalski",
"pl": "polski",
"pt": "portugalski",
"ptBR": "portugalski (Brazylia)",
"ro": "rumuński",
"ru": "rosyjski",
"sc": "sardyński",
"sk": "słowacki",
"sl": "słoweński",
"sq": "albański",
"sr": "serbski",
"sv": "szwedzki",
"te": "telugu",
"tr": "turecki",
"uk": "ukraiński",
"vi": "wietnamski",
"zhCN": "chiński (Chiny)",
"zhTW": "chiński (Tajwan)"
}

View File

@@ -1,54 +0,0 @@
{
"af": "Africânder",
"ar": "Árabe",
"bg": "Búlgaro",
"ca": "Catalão",
"cs": "Checo",
"da": "Dinamarquês",
"de": "Alemão",
"el": "Grego",
"en": "Inglês",
"enGB": "Inglês (Reino Unido)",
"eo": "Esperanto",
"es": "Espanhol",
"esUS": "Espanhol (América Latina)",
"et": "Estónio",
"eu": "Basco",
"fa": "Persa",
"fi": "Finlandês",
"fr": "Francês",
"frCA": "Francês (Canadá)",
"he": "Hebraico",
"hi": "Hindu",
"hr": "Croata",
"hu": "Húngaro",
"hy": "Arménio",
"id": "Indonésio",
"it": "Italiano",
"ja": "Japonês",
"kab": "Cabila",
"ko": "Coreano",
"lt": "Lituano",
"lv": "Letão",
"ml": "Malaio",
"mr": "Marata",
"nl": "Holandês",
"oc": "Occitano",
"pl": "Polaco",
"pt": "Português",
"ptBR": "Português (Brasil)",
"ro": "Romeno",
"ru": "Russo",
"sc": "Sardo",
"sk": "Eslovaco",
"sl": "Esloveno",
"sq": "Albanês",
"sr": "Sérvio",
"sv": "Sueco",
"te": "Telugu",
"tr": "Turco",
"uk": "Ucraniano",
"vi": "Vietnamita",
"zhCN": "Chinês (China)",
"zhTW": "Chinês (Taiwan)"
}

View File

@@ -1,33 +0,0 @@
{
"af": "Africâner",
"bg": "Búlgaro",
"ca": "Catalão",
"cs": "Checo",
"de": "Alemão",
"el": "Grego",
"en": "Inglês",
"enGB": "Inglês (Reino Unido)",
"eo": "Esperanto",
"es": "Espanhol",
"esUS": "Espanhol (América Latina)",
"fi": "Finlandês",
"fr": "Francês",
"frCA": "Francês (Canadá)",
"hr": "Croata",
"hu": "Húngaro",
"hy": "Armênio",
"it": "Italiano",
"ja": "Japonês",
"ko": "Coreano",
"nl": "Holandês",
"oc": "Occitano",
"pl": "Polonês",
"ptBR": "Português (Brasil)",
"ru": "Russo",
"sv": "Sueco",
"tr": "Turco",
"uk": "Ucraniano",
"vi": "Vietnamita",
"zhCN": "Chinês (China)",
"zhTW": "Chinês (Taiwan)"
}

View File

@@ -1,44 +0,0 @@
{
"af": "Afrikaans",
"ar": "Arabă",
"bg": "Bulgară",
"ca": "Catalană",
"cs": "Cehă",
"da": "Daneză",
"de": "Germană",
"el": "Greacă",
"en": "Engleză",
"enGB": "Engleză (Regatul Unit)",
"eo": "Esperanto",
"es": "Spaniolă",
"esUS": "Spaniolă (America Latină)",
"et": "Estonă",
"eu": "Bască",
"fi": "Finlandeză",
"fr": "Franceză",
"frCA": "Franceză (Canada)",
"he": "Ebraică",
"hr": "Croată",
"hu": "Maghiară",
"hy": "Armeană",
"id": "Indoneziană",
"it": "Italiană",
"ja": "Japoneză",
"ko": "Koreană",
"lt": "Lituaniană",
"nl": "Olandeză",
"oc": "Occitană",
"pl": "Poloneză",
"ptBR": "Portugheză (Brazilia)",
"ro": "Română",
"ru": "Rusă",
"sc": "Sardă",
"sk": "Slovacă",
"sl": "Slovenă",
"sv": "Suedeză",
"tr": "Turcă",
"uk": "Ucraineană",
"vi": "Vietnameză",
"zhCN": "Chineză (China)",
"zhTW": "Chineză (Taiwan)"
}

View File

@@ -1,36 +0,0 @@
{
"af": "Африкаанс",
"bg": "Болгарский",
"ca": "Каталонский",
"cs": "Чешский",
"da": "Датский",
"de": "Немецкий",
"el": "Греческий",
"en": "Английский",
"enGB": "Английский (Великобритания)",
"eo": "Эсперанто",
"es": "Испанский",
"esUS": "Испанский (Латинская Америка)",
"et": "Эстонский",
"fi": "Финский",
"fr": "Французский",
"frCA": "Французский (канадский)",
"hr": "Хорватский",
"hu": "Венгерский",
"hy": "Армянский",
"it": "Итальянский",
"ja": "Японский",
"ko": "Корейский",
"nl": "Голландский",
"oc": "Окситанский",
"pl": "Польский",
"ptBR": "Португальский (Бразилия)",
"ru": "Русский",
"sr": "Сербский",
"sv": "Шведский",
"tr": "Турецкий",
"uk": "Украинский",
"vi": "Вьетнамский",
"zhCN": "Китайский (Китай)",
"zhTW": "Китайский (Тайвань)"
}

View File

@@ -1,35 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bùlgaru",
"ca": "Catalanu",
"cs": "Tzecu",
"da": "Danesu",
"de": "Tedescu",
"el": "Gregu",
"en": "Inglesu",
"enGB": "Inglesu (Rennu Unidu)",
"eo": "Esperanto",
"es": "Castillianu",
"esUS": "Castillianu (Amèrica de su Sud)",
"fi": "Finlandesu",
"fr": "Frantzesu",
"frCA": "Frantzesu (Canadesu)",
"hr": "Croatu",
"hu": "Ungheresu",
"hy": "Armenu",
"it": "Italianu",
"ja": "Giaponesu",
"ko": "Coreanu",
"nl": "Olandesu",
"oc": "Otzitanu",
"pl": "Polacu",
"ptBR": "Portughesu (Brasile)",
"ru": "Russu",
"sc": "Sardu",
"sv": "Isvedesu",
"tr": "Turcu",
"uk": "Ucràinu",
"vi": "Vietnamita",
"zhCN": "Tzinesu (Tzina)",
"zhTW": "Tzinesu (Taiwan)"
}

View File

@@ -1,36 +0,0 @@
{
"af": "",
"bg": "Bulharština",
"ca": "Katalánština",
"cs": "Čeština",
"da": "Dánština",
"de": "Nemčina",
"el": "Gréčtina",
"en": "Angličtina",
"enGB": "Angličtina (Spojené kráľovstvo)",
"eo": "Esperanto",
"es": "Španielčina",
"esUS": "Angličtina (Spojené štáty americké)",
"et": "Estónčina",
"fi": "Fínčina",
"fr": "Francúžtina",
"frCA": "Francúžtina (Kanada)",
"hr": "Chorvátčina",
"hu": "Maďarčina",
"hy": "Arménčina",
"it": "Taliančina",
"ja": "Japončina",
"ko": "Kórejčina",
"nl": "Holandčina",
"oc": "Okcitánština",
"pl": "Polština",
"ptBR": "Portugalčina",
"ru": "Ruština",
"sk": "Slovenčina",
"sv": "Švédčina",
"tr": "Turečtina",
"uk": "Ukrajinčina",
"vi": "Vietnamčina",
"zhCN": "Čínština (Čína)",
"zhTW": "Čínština (Taiwan)"
}

View File

@@ -1,27 +0,0 @@
{
"af": "Afrikanščina",
"bg": "Bolgarščina",
"cs": "Češčina",
"de": "Nemščina",
"el": "Grščina",
"en": "Angleščina",
"eo": "Esperanto",
"es": "Španščina",
"fr": "Francoščina",
"hy": "Armenščina",
"it": "Italjanščina",
"ja": "Japonščina",
"ko": "Korejščina",
"nb": "Norveščina (Bokmål)",
"oc": "Okcitanščina",
"pl": "Poljščina",
"ptBR": "Portugalščina (Brazilija)",
"ru": "Ruščina",
"sk": "Slovaščina",
"sl": "Slovenščina",
"sv": "Švedščina",
"tr": "Turščina",
"uk": "Ukrajinščina",
"vi": "Vietnamščina",
"zhCN": "kitajščina (poenostavljena)"
}

View File

@@ -1,54 +0,0 @@
{
"af": "Afrikaans",
"ar": "Arabisht",
"bg": "Bullgarisht",
"ca": "Katalanisht",
"cs": "Çekisht",
"da": "Danisht",
"de": "Gjermanisht",
"el": "Greqisht",
"en": "Anglisht",
"enGB": "Anglisht (Mbretëria e Bashkuar)",
"eo": "Esperanto",
"es": "Spanjisht",
"esUS": "Spanjisht (Amerikë Latine)",
"et": "Estonisht",
"eu": "Baskisht",
"fa": "Persisht",
"fi": "Finlandisht",
"fr": "Frëngjisht",
"frCA": "Frëngjisht (Kebek)",
"he": "Hebraisht",
"hi": "Hindi",
"hr": "Kroatisht",
"hu": "Hungarisht",
"hy": "Armenisht",
"id": "Indonezisht",
"it": "Italisht",
"ja": "Japonisht",
"kab": "Kabilisht",
"ko": "Koreançe",
"lt": "Lituanisht",
"lv": "Letonisht",
"ml": "Malajalamisht",
"mr": "Maratisht",
"nl": "Holandisht",
"oc": "Oçitanisht",
"pl": "Polonisht",
"pt": "Portugalisht",
"ptBR": "Portugalisht (Brazil)",
"ro": "Rumanisht",
"ru": "Rusisht",
"sc": "Sardenjisht",
"sk": "Sllovakisht",
"sl": "Sllovenisht",
"sq": "Shqip",
"sr": "Serbisht",
"sv": "Suedisht",
"te": "Telugu",
"tr": "Turqisht",
"uk": "Ukrainisht",
"vi": "Vietnamisht",
"zhCN": "Kinezçe (Kinë)",
"zhTW": "Kinezçe (Tajvan)"
}

View File

@@ -1,39 +0,0 @@
{
"af": "Африкански",
"bg": "Бугарски",
"ca": "Каталонски",
"cs": "Чешки",
"da": "Дански",
"de": "Њемачки",
"el": "Грчки",
"en": "Енглески",
"enGB": "Енглески (Велика Британија)",
"eo": "Есперанто",
"es": "Шпански",
"esUS": "Шпански (Латинска Америка)",
"et": "Естонски",
"fi": "Фински",
"fr": "Француски",
"frCA": "Француски (Канада)",
"hr": "Хрватски",
"hu": "Мађарски",
"hy": "Јерменски",
"it": "Италијански",
"ja": "Јапански",
"ko": "Корејски",
"nb": "Норвешки Бокал",
"nl": "Холандски",
"oc": "Окцитански",
"pl": "Пољски",
"ptBR": "Португалски (Бразил)",
"ru": "Руски",
"sk": "Словачки",
"sl": "Словенски",
"sr": "Српски",
"sv": "Шведски",
"tr": "Турски",
"uk": "Украјински",
"vi": "Вијетнамски",
"zhCN": "Кинески (Кина)",
"zhTW": "Кинески (Тајван)"
}

View File

@@ -1,38 +0,0 @@
{
"af": "Afrikaans",
"bg": "Bulgariska",
"ca": "Katalanska",
"cs": "Tjeckiska",
"da": "Danska",
"de": "Tyska",
"el": "Grekiska",
"en": "Engelska",
"enGB": "Engelska (Storbritannien)",
"eo": "Esperanto",
"es": "Spanska",
"esUS": "Spanska (Latinamerika)",
"et": "Estniska",
"fi": "Finska",
"fr": "Franska",
"frCA": "Franska (Kanada)",
"hr": "Kroatiska",
"hu": "Ungerska",
"hy": "Armeniska",
"it": "Italienska",
"ja": "Japanska",
"ko": "Koreanska",
"nb": "Norska (Bokmål)",
"nl": "Nederländska",
"oc": "Occitanska",
"pl": "Polska",
"ptBR": "Portugisiska (Brasilien)",
"ru": "Ryska",
"sk": "Slovakiska",
"sl": "Slovenska",
"sv": "Svenska",
"tr": "Turkiska",
"uk": "Ukrainska",
"vi": "Vietnamesiska",
"zhCN": "Kinesiska (Kina)",
"zhTW": "Kinesiska (Taiwan)"
}

View File

@@ -1,53 +0,0 @@
{
"af": "ఆఫ్రికాన్స్",
"ar": "అరబిక్",
"bg": "బల్గేరియన్",
"ca": "కాటలన్",
"cs": "చెక్",
"da": "డేనిష్",
"de": "జెర్మన్",
"el": "గ్రీకు",
"en": "ఆంగ్లం",
"enGB": "ఆంగ్లం (యునైటెడ్ కింగ్‌డమ్)",
"eo": "ఎస్పరాంతో",
"es": "స్పానిష్",
"esUS": "స్పానిష్ (లాటిన్ అమెరిగా)",
"et": "ఎస్టోనియన్",
"eu": "బాస్క్",
"fa": "పెర్షియన్",
"fi": "ఫిన్నిష్",
"fr": "ఫ్రెంచ్",
"frCA": "ఫ్రెంచ్ (కెనడియన్)",
"he": "హీబ్రూ",
"hi": "హిందీ",
"hr": "క్రొయేషియన్",
"hu": "హంగేరియన్",
"hy": "ఆర్మేనియన్",
"id": "ఇండొనేషియన్",
"it": "ఇటాలియన్",
"ja": "జపనీ",
"kab": "కబైల్",
"ko": "కొరియన్",
"lt": "లిథుయేనియన్",
"lv": "లాత్వియన్",
"ml": "మలయాళం",
"mr": "మరాఠీ",
"nl": "డచ్",
"oc": "ఆక్సిటన్",
"pl": "పోలిష్",
"pt": "పోర్చుగీస్",
"ptBR": "పోర్చుగీస్ (బ్రెజిల్)",
"ro": "రొమేనియన్",
"ru": "రష్యన్",
"sc": "సార్డీనియన్",
"sk": "స్లొవాక్",
"sl": "స్లొవేనియన్",
"sr": "సెర్బియన్",
"sv": "స్వీడిష్",
"te": "తెలుగు",
"tr": "టర్కిష్",
"uk": "ఉక్రేనియన్",
"vi": "వియెత్నామీ",
"zhCN": "చైనీ (చైనా)",
"zhTW": "చైనీ (తైవాన్)"
}

View File

@@ -1,38 +0,0 @@
{
"af": "Afrikanca",
"bg": "Bulgarca",
"ca": "Katalanca",
"cs": "Çekçe",
"da": "Danca",
"de": "Almanca",
"el": "Yunanca",
"en": "İngilizce",
"enGB": "İngilizce (Birleşik Krallık)",
"eo": "Esperanto",
"es": "İspanyolca",
"esUS": "İspanyolca (Latin Amerika)",
"et": "Estonca",
"fi": "Fince",
"fr": "Fransızca",
"frCA": "Fransızca (Kanada)",
"hr": "Hırvatça",
"hu": "Macarca",
"hy": "Ermenice",
"it": "İtalyanca",
"ja": "Japonca",
"ko": "Korece",
"nb": "Norveççe Bokmal",
"nl": "Flemenkçe",
"oc": "Oksitan dili",
"pl": "Lehçe",
"ptBR": "Portekizce (Brezilya)",
"ru": "Rusça",
"sk": "Slovakça",
"sl": "Slovence",
"sv": "Isveççe",
"tr": "Türkçe",
"uk": "Ukraynaca",
"vi": "Vietnamca",
"zhCN": "Çince (Çin)",
"zhTW": "Çince (Tayvan)"
}

View File

@@ -1,55 +0,0 @@
{
"af": "Африкаанс",
"ar": "Арабська",
"bg": "Болгарська",
"ca": "Каталонська",
"cs": "Чеська",
"da": "Данська",
"de": "Німецька",
"el": "Грецька",
"en": "Англійська",
"enGB": "Англійська (Сполучене Королівство)",
"eo": "Есперанто",
"es": "Іспанська",
"esUS": "Іспанська (Латинська Америка)",
"et": "Естонська",
"eu": "Баскська",
"fa": "Перська",
"fi": "Фінська",
"fr": "Французька",
"frCA": "Французька (Канада)",
"he": "Іврит",
"hi": "Гінді",
"hr": "Хорватська",
"hsb": "Верхньолужицька",
"hu": "Угорська",
"hy": "Вірменська",
"id": "Індонезійська",
"it": "Італійська",
"ja": "Японська",
"kab": "Кабільська",
"ko": "Корейська",
"lt": "Литовська",
"lv": "Латвійська",
"ml": "Малаялам",
"mr": "Маратхі",
"nl": "Голландська",
"oc": "Окситанська",
"pl": "Польська",
"pt": "Португальська",
"ptBR": "Португальська (Бразилія)",
"ro": "Румунська",
"ru": "Російська",
"sc": "Сардинська",
"sk": "Словацька",
"sl": "Словенська",
"sq": "Албанська",
"sr": "Сербська",
"sv": "Шведська",
"te": "Телуґу",
"tr": "Турецька",
"uk": "Українська",
"vi": "В'єтнамська",
"zhCN": "Китайська (Китай)",
"zhTW": "Китайська (Тайвань)"
}

View File

@@ -1,26 +0,0 @@
{
"af": "Tiếng Afrika",
"bg": "Tiếng Bulgaria",
"cs": "Tiếng Séc",
"de": "Tiếng Đức",
"el": "Tiếng Nhật",
"en": "Tiếng Anh",
"eo": "Tiếng Esperanto",
"es": "Tiếng Tây Ban Nha",
"fr": "Tiếng Pháp",
"hy": "Tiếng Acmenia",
"it": "Tiếng Ý",
"ja": "Tiếng Nhật",
"ko": "Tiếng Hàn",
"nb": "Tiếng Na Uy",
"oc": "Tiếng Occitan",
"pl": "Tiếng Ba Lan",
"ptBR": "Tiếng Bồ Đào Nha (Brazil)",
"ru": "Tiếng Nga",
"sk": "Tiếng Slovak",
"sl": "Tiếng Slovenia",
"sv": "Tiếng Thụy Điển",
"tr": "Tiếng Thổ Nhĩ Kỳ",
"vi": "Tiếng Việt",
"zhCN": "Tiếng Hoa (Trung Quốc)"
}

View File

@@ -1,55 +0,0 @@
{
"af": "南非荷兰语",
"ar": "阿拉伯语",
"bg": "保加利亚语",
"ca": "加泰罗尼亚语",
"cs": "捷克语",
"da": "丹麦语",
"de": "德语",
"el": "希腊语",
"en": "英语",
"enGB": "英语(英国)",
"eo": "世界语",
"es": "西班牙语",
"esUS": "西班牙语(拉丁美洲)",
"et": "爱沙尼亚语",
"eu": "巴斯克语",
"fa": "波斯语",
"fi": "芬兰语",
"fr": "法语",
"frCA": "法语(加拿大)",
"he": "希伯来语",
"hi": "印地语",
"hr": "克罗地亚语",
"hsb": "上索布语",
"hu": "匈牙利语",
"hy": "亚美尼亚语",
"id": "印度尼西亚语",
"it": "意大利语",
"ja": "日语",
"kab": "卡拜尔语",
"ko": "韩语",
"lt": "立陶宛语",
"lv": "拉脱维亚语",
"ml": "马拉雅拉姆语",
"mr": "马拉地语",
"nl": "荷兰语",
"oc": "欧西坦语",
"pl": "波兰语",
"pt": "葡萄牙语",
"ptBR": "葡萄牙语(巴西)",
"ro": "罗马尼亚语",
"ru": "俄语",
"sc": "撒丁语",
"sk": "斯洛伐克语",
"sl": "斯洛文尼亚语",
"sq": "阿尔巴尼亚语",
"sr": "塞尔维亚语",
"sv": "瑞典语",
"te": "泰卢固语",
"tr": "土耳其语",
"uk": "乌克兰语",
"vi": "越南语",
"zhCN": "简体中文(中国)",
"zhTW": "正体中文(台湾)"
}

View File

@@ -1,55 +0,0 @@
{
"af": "南非荷蘭文",
"ar": "阿拉伯文",
"bg": "保加利亞文",
"ca": "卡達隆尼亞文",
"cs": "捷克文",
"da": "丹麥文",
"de": "德文",
"el": "希臘文",
"en": "英文",
"enGB": "英文(英國)",
"eo": "世界語",
"es": "西班牙文",
"esUS": "西班牙文(拉丁美洲)",
"et": "愛沙尼亞文",
"eu": "巴斯克文",
"fa": "波斯文",
"fi": "芬蘭文",
"fr": "法文",
"frCA": "法文(加拿大)",
"he": "希伯來文",
"hi": "印度文",
"hr": "克羅埃西亞文",
"hsb": "上索布文",
"hu": "匈牙利文",
"hy": "亞美尼亞文",
"id": "印尼文",
"it": "義大利文",
"ja": "日文",
"kab": "卡拜爾文",
"ko": "韓文",
"lt": "立陶宛文",
"lv": "拉脫維亞文",
"ml": "馬來亞拉姆文",
"mr": "馬拉提文",
"nl": "荷蘭文",
"oc": "奧克西坦文",
"pl": "波蘭文",
"pt": "葡萄牙文",
"ptBR": "葡萄牙文(巴西)",
"ro": "羅馬尼亞文",
"ru": "俄文",
"sc": "薩丁尼亞文",
"sk": "斯洛伐克文",
"sl": "斯洛維尼亞文",
"sq": "阿爾巴尼亞文",
"sr": "塞爾維亞文",
"sv": "瑞典文",
"te": "特拉古文",
"tr": "土耳其文",
"uk": "烏克蘭文",
"vi": "越南文",
"zhCN": "簡體中文(中國)",
"zhTW": "正體中文(台灣)"
}

View File

@@ -1,55 +1,60 @@
{
"af": "Afrikaans",
"ar": "Arabic",
"bg": "Bulgarian",
"ca": "Catalan",
"cs": "Czech",
"da": "Danish",
"de": "German",
"el": "Greek",
"ar": "العربية",
"be": "Беларуская",
"bg": "Български",
"ca": "Català",
"cs": "Čeština",
"da": "Dansk",
"de": "Deutsch",
"el": "Ελληνικά",
"en": "English",
"enGB": "English (United Kingdom)",
"eo": "Esperanto",
"es": "Spanish",
"esUS": "Spanish (Latin America)",
"et": "Estonian",
"eu": "Basque",
"fa": "Persian",
"fi": "Finnish",
"fr": "French",
"frCA": "French (Canadian)",
"he": "Hebrew",
"hi": "Hindi",
"hr": "Croatian",
"hsb": "Upper Sorbian",
"hu": "Hungarian",
"hy": "Armenian",
"id": "Indonesian",
"it": "Italian",
"ja": "Japanese",
"kab": "Kabyle",
"ko": "Korean",
"lt": "Lithuanian",
"lv": "Latvian",
"ml": "Malayalam",
"mr": "Marathi",
"nl": "Dutch",
"es": "Español",
"esUS": "Español (Latinoamérica)",
"et": "Eesti",
"eu": "Euskara",
"fa": "فارسی",
"fi": "Suomi",
"fr": "Français",
"frCA": "Français (Canada)",
"gl": "Galego",
"he": "עברית",
"hi": "हिन्दी",
"hr": "Hrvatski",
"hsb": "Hornjoserbšćina",
"hu": "Magyar",
"hy": "Հայերեն",
"id": "Bahasa Indonesia",
"is": "Íslenska",
"it": "Italiano",
"ja": "日本語",
"kab": "Taqbaylit",
"ko": "한국어",
"lt": "Lietuvių",
"lv": "Latviešu",
"ml": "മലയാളം",
"mn": "Монгол",
"mr": "मराठी",
"nb": "Norsk Bokmål",
"nl": "Nederlands",
"oc": "Occitan",
"pl": "Polish",
"pt": "Portuguese",
"ptBR": "Portuguese (Brazil)",
"ro": "Romanian",
"ru": "Russian",
"sc": "Sardinian",
"sk": "Slovak",
"sl": "Slovenian",
"sq": "Albanian",
"sr": "Serbian",
"sv": "Swedish",
"te": "Telugu",
"tr": "Turkish",
"uk": "Ukrainian",
"vi": "Vietnamese",
"zhCN": "Chinese (China)",
"zhTW": "Chinese (Taiwan)"
"pl": "Polski",
"pt": "Português",
"ptBR": "Português (Brasil)",
"ro": "Română",
"ru": "Русский",
"sc": "Sardu",
"sk": "Slovenčina",
"sl": "Slovenščina",
"sq": "Shqip",
"sr": "Српски",
"sv": "Svenska",
"te": "తెలుగు",
"tr": "Türkçe",
"uk": "Українська",
"vi": "Tiếng Việt",
"zhCN": "中文(简体)",
"zhTW": "中文(繁體)"
}

View File

@@ -570,7 +570,7 @@
"joinTitle": "Entra a la reunió",
"joinWithPasswordMessage": "S'està intentant unir-s'hi amb contrasenya, espereu...",
"joiningMessage": "Us unireu a la reunió de seguida que algú accepti la sol·licitud",
"joiningTitle": "S'està demanat per a entrar a la reunió...",
"joiningTitle": "S'ha demanat per a entrar a la reunió...",
"joiningWithPasswordTitle": "Afegeix-m'hi amb contrasenya...",
"knockButton": "Demana d'unir-se",
"knockTitle": "Algú vol unir-se a la reunió",

View File

@@ -11,7 +11,6 @@
"defaultEmail": "Tvoja zadana e-mail adresa",
"disabled": "Ne možeš pozvati ljude.",
"failedToAdd": "Neuspjelo dodavanje sudionika",
"footerText": "Biranje je isključeno.",
"googleEmail": "Google e-pošta",
"inviteMoreHeader": "Na sastanku si samo ti",
"inviteMoreMailSubject": "Pridruži se sastanku {{appName}}",
@@ -38,7 +37,7 @@
"speaker": "Zvučnik"
},
"audioOnly": {
"audioOnly": "Samo zvuk"
"audioOnly": "Niska stopa prijenosa podataka"
},
"breakoutRooms": {
"actions": {
@@ -79,7 +78,6 @@
},
"carmode": {
"actions": {
"leaveMeeting": "Napusti sastanak",
"selectSoundDevice": "Odaberi audio uređaj"
},
"labels": {
@@ -98,6 +96,7 @@
"messageAccessibleTitleMe": "ja kažem:",
"messageTo": "Privatna poruka za {{recipient}}",
"messagebox": "Upiši poruku",
"newMessages": "Nove poruke",
"nickname": {
"popover": "Odaberi nadimak",
"title": "Upiši nadimak za chat",
@@ -105,6 +104,7 @@
},
"noMessagesMessage": "Na sastanku još nema poruka. Započni razgovor ovdje!",
"privateNotice": "Privatna poruka za {{recipient}}",
"sendButton": "Pošalji",
"smileysPanel": "Ploča emojija",
"tabs": {
"chat": "Chat",
@@ -137,16 +137,16 @@
"FETCH_SESSION_ID": "Dohvaćanje ID-a sesije …",
"GET_SESSION_ID_ERROR": "Greška prilikom dohvaćanja ID-a sesije: {{code}}",
"GOT_SESSION_ID": "Dohvaćanje ID-a sesije … Gotovo",
"LOW_BANDWIDTH": "Video za {{displayName}} je isključen radi uštede brzine prijenosa"
"LOW_BANDWIDTH": "Video za {{displayName}} je isključen radi uštede stope prijenosa podataka"
},
"connectionindicator": {
"address": "Adresa:",
"audio_ssrc": "Audio SSRC:",
"bandwidth": "Procijenjena brzina prijenosa:",
"bandwidth": "Procijenjena stopa prijenosa podataka:",
"bitrate": "Stopa bitova:",
"bridgeCount": "Broj poslužitelja: ",
"codecs": "Kodeki (A/V): ",
"connectedTo": "Povezan na:",
"connectedTo": "Povezano na:",
"framerate": "Broj sličica u sekundi:",
"less": "Pokaži manje",
"localaddress": "Adresa lokalnog uređaja:",
@@ -340,7 +340,6 @@
"recentlyUsedObjects": "Tvoji nedavno korišteni objekti",
"recording": "Snimanje",
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Nije moguće dok je prijenos uživo aktivan",
"recordingDisabledTooltip": "Pokretanje snimanja isključeno.",
"rejoinNow": "Ponovo se priduži sada",
"remoteControlAllowedMessage": "{{user}} je prihvatio/la tvoj zahtjev za daljinskim upravljanjem!",
"remoteControlDeniedMessage": "{{user}} je odbacio/la tvoj zahtjev za daljinskim upravljanjem!",
@@ -390,6 +389,7 @@
"shareYourScreenDisabled": "Dijeljenje ekrana isključeno.",
"sharedVideoDialogError": "Greška: Neispravan URL",
"sharedVideoLinkPlaceholder": "YouTube poveznica ili izravna poveznica videa",
"show": "Pokaži",
"start": "Pokreni ",
"startLiveStreaming": "Pokreni prijenos uživo",
"startRecording": "Pokreni snimanje",
@@ -475,14 +475,16 @@
"label": "Informacije o pozivnom broju",
"liveStreamURL": "Prijenos uživo:",
"moreNumbers": "Više brojeva",
"noNumbers": "Nema brojeva pozivnog broja.",
"noNumbers": "Nema pozivnih brojeva.",
"noPassword": "Ništa",
"noRoom": "Za nazivanje nije određena niti jedna soba.",
"numbers": "Brojevi pozivnog broja",
"numbers": "Pozivni brojevi",
"password": "$t(lockRoomPasswordUppercase): ",
"reachedLimit": "Dosegnuo/la si granicu tvog plana.",
"sip": "SIP adresa",
"title": "Dijeli",
"tooltip": "Dijeli poveznicu i informacije o pozivnom broju za ovaj sastanak"
"tooltip": "Dijeli poveznicu i informacije o pozivnom broju za ovaj sastanak",
"upgradeOptions": "Uključi opciju za nadogradnju"
},
"inlineDialogFailure": {
"msg": "Spotaknuli smo se.",
@@ -498,11 +500,11 @@
"searchPlaceholder": "Sudionik ili broj telefona",
"send": "Pošalji"
},
"jitsiHome": "{{logo}} Logotip, poveznice na početnu stranicu",
"jitsiHome": "{{logo}} Logotip, poveznice na početnu web stranicu",
"keyboardShortcuts": {
"focusLocal": "Postavi fokus na tvoj video",
"focusRemote": "Postavi fokus na video druge osobe",
"fullScreen": "Pokreni ili izađi iz cjeloekranskog prikaza",
"fullScreen": "Pokreni ili prekini cjeloekranski prikaz",
"giphyMenu": "Uključi/isključi GIPHY izbornik",
"keyboardShortcuts": "Tipkovni prečaci",
"localRecording": "Pokaži ili sakrij kontrole lokalnog snimanja",
@@ -517,6 +519,10 @@
"toggleShortcuts": "Pokaži ili sakrij tipkovne prečace",
"videoMute": "Pokreni ili prekini svoju kameru"
},
"largeVideo": {
"screenIsShared": "Dijeliš svoj ekran",
"showMeWhatImSharing": "Pokaži mi što dijelim"
},
"liveStreaming": {
"busy": "Radimo na oslobađanju resursa za prijenos. Pokušaj ponovno za par minuta.",
"busyTitle": "Svi prijenosi su tranutačno zauzeti",
@@ -550,6 +556,7 @@
"signedInAs": "Trenutačno si prijavljan/a kao:",
"start": "Započni prijenos uživo",
"streamIdHelp": "Što je ovo?",
"title": "Prijenos uživo",
"unavailableTitle": "Prijenos uživo nije dostupan",
"youtubeTerms": "Uvjeti YouTube usluge"
},
@@ -592,6 +599,7 @@
"passwordJoinButton": "Pridruži se",
"reject": "Odbij",
"rejectAll": "Odbij sve",
"title": "Predvorje",
"toggleLabel": "Uključi predvorje"
},
"localRecording": {
@@ -618,6 +626,7 @@
"no": "Ne",
"participant": "Sudionik",
"participantStats": "Statistika sudionika",
"selectTabTitle": "🎥 Odaberi ovu karticu za snimanje",
"sessionToken": "Token sesije",
"start": "Pokreni snimanje",
"stop": "Prekini snimanje",
@@ -821,7 +830,7 @@
"initiated": "Poziv inicijaliziran",
"joinAudioByPhone": "Pridruži se putem telefona",
"joinMeeting": "Pridruži se sastanku",
"joinMeetingInLowBandwidthMode": "Pridruži se sa sporom brzinom prijenosa",
"joinMeetingInLowBandwidthMode": "Pridruži se u modusu niske stope prijenosa podataka",
"joinWithoutAudio": "Pridruži se bez zvuka",
"keyboardShortcuts": "Uključi tipkovne prečace",
"linkCopied": "Poveznica kopirana u međuspremnik",
@@ -922,6 +931,7 @@
"signIn": "Privaji se",
"signOut": "Odjavi se",
"surfaceError": "Odaberi trenutačnu karticu.",
"title": "Snimanje",
"unavailable": "Ups! Usluga {{serviceName}} trenutačno nije dostupna. Radimo na rješavanju problema. Pokušaj kasnije ponovo.",
"unavailableTitle": "Snimanje nije dostupno",
"uploadToCloud": "Prenesi u oblak"
@@ -937,6 +947,7 @@
"insecureRoomNameWarning": "Ime sobe nije sigurno. Neželjeni sudionici mogu se pridružiti tvojoj konferenciji. Osiguraj sastanak pomoću sigurnosne tipke."
},
"settings": {
"buttonLabel": "Postavke",
"calendar": {
"about": "Integracija {{appName}} kalendara koristi se za siguran pristup tvom kalendaru kako bi mogao čitati nadolazeće događaje.",
"disconnect": "Odspoji",
@@ -945,7 +956,7 @@
"title": "Kalendar"
},
"desktopShareFramerate": "Broj sličica u sekundi za dijeljenje radne površine",
"desktopShareHighFpsWarning": "Veći broj sličica u sekundi za dijeljenje radne površine može utjecati na brzinu prijenosa. Kako bi se nove postavke primijenile moraš ponovo pokrenuti dijeljenje ekrana.",
"desktopShareHighFpsWarning": "Veći broj sličica u sekundi za dijeljenje radne površine može utjecati na tvoju stopu prijenosa podataka. Za primjenu novih postavki moraš ponovo pokrenuti dijeljenje ekrana.",
"desktopShareWarning": "Za primjenu novih postavki moraš ponovo pokrenuti dijeljenje ekrana.",
"devices": "Uređaji",
"followMe": "Svatko me prati",
@@ -992,12 +1003,18 @@
"displayName": "Prikazno ime",
"displayNamePlaceholderText": "Npr.: John Doe",
"email": "E-mail adresa",
"goTo": "Idi na",
"header": "Postavke",
"help": "Pomoć",
"links": "Poveznice",
"privacy": "Privatnost",
"profileSection": "Profil",
"serverURL": "URL poslužitelja",
"showAdvanced": "Pokaži napredne postavke",
"startCarModeInLowBandwidthMode": "Pokreni automobilski modus u modusu niske stope prijenosa podataka",
"startWithAudioMuted": "Počni s isključenim zvukom",
"startWithVideoMuted": "Počni s isključenim zvukom videa",
"terms": "Uvjeti",
"version": "Verzija"
},
"share": {
@@ -1054,6 +1071,7 @@
"document": "Uključi/Isključi dijeljeni dokument",
"download": "Preuzmi naše aplikacije",
"embedMeeting": "Ugradi sastanak",
"endConference": "Završi sastanak za sve",
"expand": "Rasklopi",
"feedback": "Napiši povratnu informaciju",
"fullScreen": "Uključi/Isključi cjeloekranski prikaz",
@@ -1063,7 +1081,8 @@
"help": "Pomoć",
"invite": "Pozovi ljude",
"kick": "Izbaci sudionika",
"laugh": "Smij se",
"laugh": "Nasmij se",
"leaveConference": "Napusti sastanak",
"like": "Palac gore",
"linkToSalesforce": "Poveznica na Salesforce",
"lobbyButton": "Uključi/Isključi modus predvorja",
@@ -1104,11 +1123,12 @@
"toggleFilmstrip": "Uključi/Isključi slike videa",
"undock": "Odspoji u zasebni prozor",
"videoblur": "Uključi/Isključi zamućenje videa",
"videomute": "Pokreni/Prekini kameru"
"videomute": "Pokreni/Prekini kameru",
"whiteboard": "Pokaži/Sakrij ploču za prezentacije"
},
"addPeople": "Dodaj ljude tvom pozivu",
"audioOnlyOff": "Isključi opciju „Samo zvuk”",
"audioOnlyOn": "Uključi opciju „Samo zvuk”",
"addPeople": "Dodaj ljude svom pozivu",
"audioOnlyOff": "Isključi modus niske stope prijenosa podataka",
"audioOnlyOn": "Uključi modus niske stope prijenosa podataka",
"audioRoute": "Odaberi audio uređaj",
"audioSettings": "Postavke zvuka",
"authenticate": "Autentificiraj se",
@@ -1126,6 +1146,7 @@
"download": "Preuzmi naše aplikacije",
"e2ee": "Obostrano šifriranje",
"embedMeeting": "Ugradi sastanak",
"endConference": "Završi sastanak za sve",
"enterFullScreen": "Uključi cjeloekranski prikaz",
"enterTileView": "Uključi pločasti prikaz",
"exitFullScreen": "Isključi cjeloekranski prikaz",
@@ -1134,10 +1155,12 @@
"giphy": "Uključi/Isključi GIPHY izbornik",
"hangup": "Napusti sastanak",
"help": "Pomoć",
"hideWhiteboard": "Sakrij ploču za prezentacije",
"invite": "Pozovi ljude",
"joinBreakoutRoom": "Pridruži se sobi podgrupe",
"laugh": "Smij se",
"laugh": "Nasmij se",
"leaveBreakoutRoom": "Napusti sobu predgrupe",
"leaveConference": "Napusti sastanak",
"like": "Palac gore",
"linkToSalesforce": "Poveznica na Salesforce",
"lobbyButtonDisable": "Isključi modus predvorja",
@@ -1147,13 +1170,13 @@
"lowerYourHand": "Spusti ruku",
"moreActions": "Više radnji",
"moreOptions": "Više opcija",
"mute": "Isključi/Uključi",
"mute": "Isključi/Uključi zvuk",
"muteEveryone": "Isključi zvuk svih sudionika",
"muteEveryonesVideo": "Isključi kamere svih sudionika",
"noAudioSignalDesc": "Ako ga nisi namjerno isključio/la u postavkama sustava ili hardvera, razmisli o mijenjanju uređaja.",
"noAudioSignalDescSuggestion": "Ako ga nisi namjerno isključio/la u postavkama sustava ili hardvera, razmisli o prebacivanju na predloženi uređaj.",
"noAudioSignalDialInDesc": "Nazvati možeš i pomoću:",
"noAudioSignalDialInLinkDesc": "Brojevi za nazivanje",
"noAudioSignalDialInLinkDesc": "Pozivni brojevi",
"noAudioSignalTitle": "Tvoj mikrofon ne šalje signale!",
"noiseSuppression": "Suzbijanje šumova",
"noisyAudioInputDesc": "Čini se da tvoj mikrofon stvara šumove. Razmisli o isključivanju zvuka ili promjeni uređaja.",
@@ -1178,6 +1201,7 @@
"shareaudio": "Dijeli zvuk",
"sharedvideo": "Dijeli video",
"shortcuts": "Prikaži prečace",
"showWhiteboard": "Pokaži ploču za prezentacije",
"silence": "Tišina",
"speakerStats": "Statistika govornika",
"startScreenSharing": "Pokreni dijeljenje ekrana",
@@ -1200,10 +1224,14 @@
"expandedLabel": "Transkribiranje je trenutačno uključeno",
"failedToStart": "Neuspjelo pokretanje transkribiranja",
"labelToolTip": "Sastanak se transkribira",
"off": "Transkribiranje prekinuto",
"pending": "Priprema za transkribiranje ssastanka …",
"off": "Transkribiranje je prekinuto",
"pending": "Priprema za transkribiranje sastanka …",
"sourceLanguageDesc": "Trenutačno je jezik sastanka postavljen na <b>{{sourceLanguage}}</b>. <br/> Možeš ga promijeniti ",
"sourceLanguageHere": "ovdje",
"start": "Počni pokazivati titlove",
"stop": "Prekini pokazivati titlove",
"subtitles": "Titlovi",
"subtitlesOff": "Isključeno",
"tr": "TR"
},
"userMedia": {
@@ -1231,7 +1259,7 @@
"videoStatus": {
"adjustFor": "Prilagodi za:",
"audioOnly": "AUD",
"audioOnlyExpanded": "Koristiš modus „Samo zvuk”. U ovom modusu primat ćeš samo zvuk i dijeljenje ekrana.",
"audioOnlyExpanded": "Koristiš modus niske stope prijenosa podataka. U ovom modusu primat ćeš samo zvuk i dijeljenje ekrana.",
"bestPerformance": "Najbolja performanca",
"callQuality": "Kvaliteta videa",
"hd": "HD",
@@ -1239,10 +1267,10 @@
"highDefinition": "Visoka rezolucija",
"highestQuality": "Najviše kvlaiteta",
"labelTooiltipNoVideo": "Bez videa",
"labelTooltipAudioOnly": "Modus „Samo zvuk” uključen",
"labelTooltipAudioOnly": "Modus niske stope prijenosa podataka je uključen",
"ld": "LD",
"ldTooltip": "Prikazivanje videa u niskoj rezoluciji",
"lowDefinition": "Miska rezolucija",
"lowDefinition": "Niska rezolucija",
"performanceSettings": "Postavke performance",
"sd": "SD",
"sdTooltip": "Prikazivanje videa u standardnoj rezoluciji",

View File

@@ -11,7 +11,6 @@
"defaultEmail": "Tua email di default",
"disabled": "Non puoi invitare partecipanti.",
"failedToAdd": "L'aggiunta di nuovi partecipanti è fallita",
"footerText": "La chiamata all'esterno è disabilitata.",
"googleEmail": "Email Google",
"inviteMoreHeader": "Sei l'unico presente nella riunione",
"inviteMoreMailSubject": "Unisciti alla riunione {{appName}}",
@@ -97,6 +96,7 @@
"messageAccessibleTitleMe": "io dico:",
"messageTo": "Messaggio privato a {{recipient}}",
"messagebox": "Digitare un messaggio",
"newMessages": "Nuovi messaggi",
"nickname": {
"popover": "Scegli un nickname",
"title": "Inserire un nickname per utilizzare la conversazione",
@@ -104,6 +104,7 @@
},
"noMessagesMessage": "Non ci sono ancora messaggi nella riunione. Comincia una conversazione, qui!",
"privateNotice": "Messaggio privato a {{recipient}}",
"sendButton": "Invia",
"smileysPanel": "Pannello emoji",
"tabs": {
"chat": "Conversazione",
@@ -111,10 +112,11 @@
},
"title": "Conversazione",
"titleWithPolls": "Conversazione",
"you": "te"
"you": "tu"
},
"chromeExtensionBanner": {
"buttonText": "Installa l'estensione Chrome",
"buttonTextEdge": "Installa l'estensione Edge",
"close": "Chiudi",
"dontShowAgain": "Non mostrare più questo messaggio",
"installExtensionText": "Installa un'estensione per integrare Google Calendar e Office 365"
@@ -174,7 +176,7 @@
"video_ssrc": "Video SSRC:"
},
"dateUtils": {
"earlier": "Prima",
"earlier": "Precedenti",
"today": "Oggi",
"yesterday": "Ieri"
},
@@ -205,6 +207,9 @@
"selectADevice": "Scegli un dispositivo",
"testAudio": "Riproduci un suono di prova"
},
"dialIn": {
"screenTitle": "Riassunto collegamento"
},
"dialOut": {
"statusMessage": "è {{status}}"
},
@@ -266,6 +271,7 @@
"gracefulShutdown": "Il nostro servizio è al momento spento per manutenzione. Si prega di riprovare più tardi.",
"grantModeratorDialog": "Sei sicuro di voler rendere moderatore questo partecipante?",
"grantModeratorTitle": "Autorizza moderatore",
"hide": "Nascondi",
"hideShareAudioHelper": "Non mostrare più questa finestra",
"incorrectPassword": "Nome utente o password errati",
"incorrectRoomLockPassword": "Password errata",
@@ -280,7 +286,6 @@
"linkMeetingTitle": "Link meeting to Salesforce",
"liveStreaming": "Diretta",
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossibile durante la registrazione.",
"liveStreamingDisabledTooltip": "Trasmissioni in diretta disabilitate.",
"localUserControls": "Controlli dell'utente locale",
"lockMessage": "Impossibile bloccare la riunione.",
"lockRoom": "Aggiungi una $t(lockRoomPasswordUppercase) alla riunione",
@@ -305,7 +310,7 @@
"muteEveryoneElseTitle": "Spengo il microfono a tutti, eccetto a {{whom}}?",
"muteEveryoneElsesVideoDialog": "Una volta spente le videocamere non potrai riaccenderle, ma ogni partecipante potrà farlo in ogni momento.",
"muteEveryoneElsesVideoTitle": "Spengo tutte le videocamere, tranne a {{whom}}?",
"muteEveryoneSelf": "te",
"muteEveryoneSelf": "tu",
"muteEveryoneStartMuted": "Tutti cominciano a microfono spento, d'adesso in avanti",
"muteEveryoneTitle": "Spengo i microfoni a tutti?",
"muteEveryonesVideoDialog": "Sei sicuro di voler spegnere le videocamere a tutti? Non potrai riaccenderle, ma ogni partecipante potrà farlo in ogni momento.",
@@ -335,7 +340,6 @@
"recentlyUsedObjects": "Gli oggetti che hai usato di recente",
"recording": "Registrazione",
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossibile durante una diretta.",
"recordingDisabledTooltip": "Registrazione disabilitata.",
"rejoinNow": "Ricollegati ora",
"remoteControlAllowedMessage": "{{user}} ha accettato la tua richiesta di controllo remoto!",
"remoteControlDeniedMessage": "{{user}} ha respinto la tua richiesta di controllo remoto!",
@@ -385,6 +389,7 @@
"shareYourScreenDisabled": "Condivisione schermo disabilitata.",
"sharedVideoDialogError": "Errore: URL non valido",
"sharedVideoLinkPlaceholder": "Link YouTube o link video diretto",
"show": "Mostra",
"start": "Avvia ",
"startLiveStreaming": "Avvia diretta",
"startRecording": "Inizia a registrare",
@@ -475,9 +480,11 @@
"noRoom": "Non è stata specificata nessuna riunione da chiamare.",
"numbers": "Numeri da chiamare",
"password": "$t(lockRoomPasswordUppercase):",
"reachedLimit": "Hai raggiunto il limite dell'offerta.",
"sip": "Indirizzo SIP",
"title": "Condividi",
"tooltip": "Invia il collegamento e i numeri telefonici di questa riunione"
"tooltip": "Invia il collegamento e i numeri telefonici di questa riunione",
"upgradeOptions": "Controlla le possibilità d'estensione dell'offerta"
},
"inlineDialogFailure": {
"msg": "Un piccolo inconveniente.",
@@ -512,6 +519,10 @@
"toggleShortcuts": "Mostra o nascondi le scorciatoie",
"videoMute": "Accendi o spegni la videocamera"
},
"largeVideo": {
"screenIsShared": "Stai condividendo lo schermo",
"showMeWhatImSharing": "Mostrami cosa sto condividendo"
},
"liveStreaming": {
"busy": "Stiamo cercando di liberare risorse per la diretta. Riprova tra qualche minuto.",
"busyTitle": "Tutti gli streamer sono impegnati al momento",
@@ -526,7 +537,7 @@
"expandedOn": "La riunione è attualmente in diretta su YouTube.",
"expandedPending": "La diretta è in fase di avvio...",
"failedToStart": "Avvio trasmissione in diretta fallito",
"getStreamKeyManually": "Non siamo stati in grado di trovare nessuna trasmissione dal vivo. Prova ad ottenere una chiave stream da Youtube",
"getStreamKeyManually": "Non siamo stati in grado di trovare nessuna trasmissione dal vivo. Prova ad ottenere una chiave stream da YouTube",
"googlePrivacyPolicy": "Norme sulla riservatezza di Google",
"inProgress": "Diretta o registrazione in corso",
"invalidStreamKey": "La chiave per le dirette potrebbe non essere corretta.",
@@ -545,6 +556,7 @@
"signedInAs": "Sei attualmente collegato come:",
"start": "Inizia una diretta",
"streamIdHelp": "Cos'è questo?",
"title": "Diretta YouTube",
"unavailableTitle": "La diretta non è disponibile",
"youtubeTerms": "Condizioni di utilizzo di YouTube"
},
@@ -587,6 +599,7 @@
"passwordJoinButton": "Entra",
"reject": "Respingi",
"rejectAll": "Respingi tutti",
"title": "Sala d'attesa",
"toggleLabel": "Attiva sala d'attesa"
},
"localRecording": {
@@ -613,6 +626,7 @@
"no": "No",
"participant": "Partecipante",
"participantStats": "Statistiche partecipanti",
"selectTabTitle": "🎥 Seleziona questa linguetta per registrare",
"sessionToken": "Token della sessione",
"start": "Avvia Registrazione",
"stop": "Ferma registrazione",
@@ -677,6 +691,10 @@
"newDeviceAction": "OK, usala",
"newDeviceAudioTitle": "Trovata nuova origine audio",
"newDeviceCameraTitle": "Trovata nuova videocamera",
"noiseSuppressionDesktopAudioDescription": "La riduzione del rumore non è attivabile insieme alla condivisione dell'audio, disabilitala e riprova.",
"noiseSuppressionFailedTitle": "Riduzione del rumore non avviata",
"noiseSuppressionNoTrackDescription": "Prima, attiva il microfono, per favore.",
"noiseSuppressionStereoDescription": "La riduzione stereo del rumore non è supportata al momento.",
"oldElectronClientDescription1": "Sembri stare usando una versione obsoleta del client Jitsi Meet che ha dei problemi di sicurezza noti. Assicurati di aggiornarla presso il nostro ",
"oldElectronClientDescription2": "ultima build",
"oldElectronClientDescription3": " ora!",
@@ -725,13 +743,13 @@
"videoModeration": "Riavviare videocamera"
},
"close": "Chiudi",
"header": "Partecipanti e sala d'attesa",
"headings": {
"lobby": "Sala d'attesa ({{count}})",
"participantsList": "Partecipanti alla riunione ({{count}})",
"waitingLobby": "In attesa ({{count}})"
},
"search": "Cerca partecipanti"
"search": "Cerca partecipanti",
"title": "Partecipanti"
},
"passwordDigitsOnly": "Fino a {{number}} cifre",
"passwordSetRemotely": "definita da altro utente",
@@ -747,9 +765,9 @@
"answerPlaceholder": "Risposta {{index}}",
"cancel": "Annulla",
"create": "Crea un sondaggio",
"pollOption": "Risposta sondaggio {{index}}",
"pollQuestion": "Domanda Sondaggio",
"questionPlaceholder": "Poni una domanda",
"pollOption": "Risposta {{index}} al sondaggio",
"pollQuestion": "Domanda Sondaggio a risposta multipla",
"questionPlaceholder": "Scrivi una domanda",
"removeOption": "Elimina risposta",
"send": "Invia"
},
@@ -812,6 +830,7 @@
"initiated": "Chiamata avviata",
"joinAudioByPhone": "Collegati usando un telefono, per parlare",
"joinMeeting": "Collegati alla riunione",
"joinMeetingInLowBandwidthMode": "Entra con il solo audio",
"joinWithoutAudio": "Collegati senza poter parlare",
"keyboardShortcuts": "Attiva le scorciatoie da tastiera",
"linkCopied": "Collegamento copiato negli appunti",
@@ -844,7 +863,7 @@
},
"profile": {
"avatar": "avatar",
"setDisplayNameLabel": "Imposta il nome da visualizzare",
"setDisplayNameLabel": "Crea il tuo nome",
"setEmailInput": "Inserisci email",
"setEmailLabel": "Imposta l'email gravatar",
"title": "Profilo"
@@ -887,12 +906,20 @@
"limitNotificationDescriptionWeb": "Data l'alta domanda la tua registrazione sarà limitata a {{limit}} minuti. Per registrazioni illimitate, prova <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
"linkGenerated": "Abbiamo generato un collegamento alla tua registrazione.",
"live": "DIRETTA",
"localRecordingWarning": "Assicurati di aver selezionato la scheda corrente, per regitrare gli audio e video corretti. La registrazione è limitata ad 1GB, cioè circa 100 minuti.",
"localRecordingNoNotificationWarning": "La registrazione non verrà annunciata ai partecipanti. Dovrai dir loro che la registrazione è in corso.",
"localRecordingNoVideo": "La registrazione del video non è in corso",
"localRecordingStartWarning": "Ferma la registrazione prima di uscire dalla riunione, altrimenti la registrazione non verrà salvata.",
"localRecordingStartWarningTitle": "Ferma la registrazione per salvarla",
"localRecordingVideoStop": "Fermare il video fermerà anche la registrazione. Sei sicuro di voler terminare?",
"localRecordingVideoWarning": "Per registrare il video, deve essere già avviato prima dell'inizio della registrazione",
"localRecordingWarning": "Assicurati di aver selezionato la scheda corrente, per registrare gli audio e video corretti. La registrazione è limitata ad 1GB, cioè circa 100 minuti.",
"loggedIn": "Accesso effettuato come {{userName}}",
"noStreams": "Audio e video non trovati.",
"off": "Registrazione interrotta",
"offBy": "{{name}} ha interrotto la registrazione",
"on": "Registrazione",
"onBy": "Registrazione iniziata da {{name}}",
"onlyRecordSelf": "Registra solo il mio audio e video",
"pending": "In preparazione alla registrazione della riunione",
"rec": "REC",
"saveLocalRecording": "Salva localmente il file della registrazione",
@@ -904,6 +931,7 @@
"signIn": "Entra",
"signOut": "Esci",
"surfaceError": "Selezionare la scheda corrente, per favore.",
"title": "Registrazione",
"unavailable": "Ops! Il {{serviceName}} non è al momento disponibile. Stiamo lavorando per risolvere il problema. Riprova più tardi.",
"unavailableTitle": "Registrazione non disponibile",
"uploadToCloud": "Carica in cloud"
@@ -916,9 +944,10 @@
"about": "Puoi aggiungere una $t(lockRoomPassword) alla riunione. I partecipanti dovranno fornire la $t(lockRoomPassword) per essere autorizzati a partecipare alla riunione.",
"aboutReadOnly": "I moderatori della riunione possono aggiungere $t(lockRoomPassword). I partecipanti dovranno fornire la $t(lockRoomPassword) per essere autorizzati a partecipare alla riunione.",
"insecureRoomNameWarning": "Il nome della riunione non è sicuro. Dei partecipanti indesiderati potrebbero unirsi alla riunione. Puoi proteggere l'accesso alla riunione col bottone sicurezza.",
"securityOptions": "Impostazioni di sicurezza"
"title": "Impostazioni di sicurezza"
},
"settings": {
"buttonLabel": "Impostazioni",
"calendar": {
"about": "Lintegrazione del calendario con {{appName}} è usata per accedere in sicurezza al proprio calendario e poter leggere i prossimi appuntamenti ",
"disconnect": "Disconnetti",
@@ -930,7 +959,7 @@
"desktopShareHighFpsWarning": "Una frequenza di aggiornamento più alta può mettere alla prova la tua connessione ad internet, durante la condivisione schermo. Devi riavviare la condivisione schermo, per attivare le modifiche.",
"desktopShareWarning": "Devi riavviare la condivisione schermo, per attivare le modifiche.",
"devices": "Dispositivi",
"followMe": "Tutti mi seguono",
"followMe": "Tutti cominciano seguendo te",
"framesPerSecond": "schermate al secondo",
"incomingMessage": "Messaggio in arrivo",
"language": "Lingua",
@@ -942,6 +971,7 @@
"name": "Nome",
"noDevice": "Nessuno",
"participantJoined": "Partecipante Entrato",
"participantKnocking": "Participante in sala d'attesa",
"participantLeft": "Partecipante Uscito",
"playSounds": "Suoni attivati",
"reactions": "Reazioni riunione",
@@ -971,13 +1001,20 @@
"disableCrashReportingWarning": "Sei sicuro di voler disattivare la diagnostica dei crash? Quest'impostazione verrà eseguita al prossimo avvio dell'app.",
"disableP2P": "Disattiva la modalità punto-punto",
"displayName": "Nome visualizzato",
"displayNamePlaceholderText": "Es: Mario Rossi",
"email": "email",
"goTo": "Vai a",
"header": "Impostazioni",
"help": "Aiuto",
"links": "Collegamenti",
"privacy": "Privacy",
"profileSection": "Profilo",
"serverURL": "URL del server",
"showAdvanced": "Impostazioni avanzate",
"startCarModeInLowBandwidthMode": "Avvia modalità auto con solo audio",
"startWithAudioMuted": "Inizia con audio disattivato",
"startWithVideoMuted": "Inizia con video disattivato",
"terms": "Termini",
"version": "Versione"
},
"share": {
@@ -988,7 +1025,7 @@
"speakerStats": {
"angry": "Arrabbiato",
"disgusted": "Disgustato",
"displayEmotions": "Mostra Emozioni",
"displayEmotions": "Mostra faccine",
"fearful": "Spaventato",
"happy": "Contento",
"hours": "{{count}}h",
@@ -1015,27 +1052,29 @@
"termsView": {
"header": "Termini"
},
"toggleTopPanelLabel": "Scheda superiore",
"toolbar": {
"Settings": "Impostazioni",
"accessibilityLabel": {
"Settings": "Attiva/Disattiva impostazioni",
"audioOnly": "Spegni/Accendi audio",
"Settings": "Impostazioni",
"audioOnly": "Audio",
"audioRoute": "Scegli l'uscita audio",
"boo": "Boo",
"breakoutRoom": "Entra/Lascia sottogruppo",
"breakoutRoom": "Sottogruppo (entra/esci)",
"callQuality": "Imposta qualità della chiamata",
"carmode": "Modalità in auto",
"cc": "Avvia/Ferma sottotitoli",
"chat": "Entra/Esci da conversazione",
"cc": "Sottotitoli",
"chat": "Conversazione",
"clap": "Applaudi",
"collapse": "Riduci",
"dock": "Aggancia alla finestra principale",
"document": "Apri/Chiudi documenti condivisi",
"document": "Documenti condivisi",
"download": "Scarica le nostre app",
"embedMeeting": "Incorpora riunione altrove",
"endConference": "Termina la riunione per tutti",
"expand": "Espandi",
"feedback": "Lascia un feedback",
"fullScreen": "Apri/Chiudi schermo intero",
"fullScreen": "Schermo intero",
"giphy": "Menù GIPHY",
"grantModerator": "Autorizza moderatore",
"hangup": "Lascia la riunione",
@@ -1046,44 +1085,46 @@
"leaveConference": " Lascia riunione",
"like": "Mi piace",
"linkToSalesforce": "Collega a Salesforce",
"lobbyButton": "Attiva/Disattiva sala d'attesa",
"localRecording": "Abilita/Disattiva controlli di registrazione locale",
"lobbyButton": "Sala d'attesa",
"localRecording": "Controlli di registrazione locale",
"lockRoom": "Attiva o disattiva password",
"moreActions": "Attiva o disattiva menu avanzato",
"moreActionsMenu": "Menu avanzato",
"moreOptions": "Altre opzioni",
"mute": "Attiva/Disattiva audio",
"mute": "Audio",
"muteEveryone": "Spegni i microfoni a tutti",
"muteEveryoneElse": "Spegni i microfoni di tutti gli altri",
"muteEveryoneElsesVideo": "Spegni le videocamere di tutti gli altri",
"muteEveryonesVideo": "Spegni le videocamere a tutti",
"muteEveryoneElsesVideoStream": "Spegni la videocamera di tutti gli altri",
"muteEveryonesVideoStream": "Spegni la videocamera a tutti",
"noiseSuppression": "Riduzione del rumore",
"participants": "Partecipanti",
"pip": "Attiva/Disattiva immagine nellimmagine",
"pip": "Immagine nellimmagine",
"privateMessage": "Invia messaggio privato",
"profile": "Modifica profilo",
"raiseHand": "Alza/Abbassa la mano",
"reactionsMenu": "Apri/Chiudi menù delle reaction",
"recording": "Avvia/Ferma registrazione",
"raiseHand": "Alza o abbassa la mano",
"reactionsMenu": "Reazioni",
"recording": "Registrazione",
"remoteMute": "Spegni microfono al partecipante",
"remoteVideoMute": "Spegni videocamera del partecipante",
"security": "Impostazioni di sicurezza",
"selectBackground": "Scegli sfondo",
"selfView": "Mostra tua immagine",
"shareRoom": "Invita qualcuno",
"shareYourScreen": "Attiva/Disattiva condivisione schermo",
"shareYourScreen": "Condivisione schermo",
"shareaudio": "Condividi audio",
"sharedvideo": "Attiva/Disattiva condivisione",
"shortcuts": "Attiva/Disattiva scorciatoie",
"sharedvideo": "Condivisione",
"shortcuts": "Scorciatoie",
"show": "Mostra in primo piano",
"silence": "Silenzio",
"speakerStats": "Attiva/Disattiva statistiche relatore",
"silence": "Senza parole",
"speakerStats": "Statistiche relatore",
"surprised": "Sorpreso",
"tileView": "Vedi tutti i partecipanti, o uno solo",
"toggleCamera": "Cambia videocamera",
"toggleFilmstrip": "Attiva/Disattiva pellicola",
"toggleFilmstrip": "Pellicola",
"undock": "Sgancia in una finestra separata",
"videoblur": "Sfoca video",
"videomute": "Attiva/Disattiva videocamera"
"videomute": "Videocamera",
"whiteboard": "Usa lavagna"
},
"addPeople": "Aggiungi partecipanti alla chiamata",
"audioOnlyOff": "Disabilita modalità per banda limitata",
@@ -1093,10 +1134,11 @@
"authenticate": "Autenticazione",
"boo": "Boo",
"callQuality": "Imposta qualità video",
"chat": "Apri/Chiudi conversazione",
"chat": "Conversazione",
"clap": "Applaudi",
"closeChat": "Chiudi conversazione",
"closeReactionsMenu": "Chiudi il menù reazioni",
"disableNoiseSuppression": "Interrompi riduzione rumore",
"disableReactionSounds": "Puoi disattivare i suoni delle reaction, in questa riunione",
"dock": "Aggancia nella finestra principale",
"documentClose": "Chiudi documento condiviso",
@@ -1104,6 +1146,7 @@
"download": "Scarica le nostre app",
"e2ee": "Crittografia punto-punto",
"embedMeeting": "Incorpora riunione altrove",
"endConference": "Termina la riunione per tutti",
"enterFullScreen": "Schermo intero",
"enterTileView": "Vedi tutti i partecipanti",
"exitFullScreen": "Esci da schermo intero",
@@ -1112,6 +1155,7 @@
"giphy": "Menù GIPHY",
"hangup": "Butta giù",
"help": "Aiuto",
"hideWhiteboard": "Nascondi lavagna",
"invite": "Invita partecipanti",
"joinBreakoutRoom": "Entra in sottogruppo",
"laugh": "Ridi",
@@ -1126,7 +1170,7 @@
"lowerYourHand": "Abbassa la mano",
"moreActions": "Altre azioni",
"moreOptions": "Altre opzioni",
"mute": "Attiva/Disattiva microfono",
"mute": "Microfono",
"muteEveryone": "Spegni audio a tutti",
"muteEveryonesVideo": "Spegni videocamera di tutti",
"noAudioSignalDesc": "Se non l'hai disabilitato intenzionalmente nelle impostazioni, prova a cambiare dispositivo di input.",
@@ -1134,9 +1178,10 @@
"noAudioSignalDialInDesc": "Puoi anche chiamare usando:",
"noAudioSignalDialInLinkDesc": "Numberi di telefono",
"noAudioSignalTitle": "Non arrivano suoni dal tuo microfono!",
"noiseSuppression": "Riduzione del rumore",
"noisyAudioInputDesc": "Sembra che il tuo microfono faccia dei rumori, prova a spegnerlo o cambiarlo per favore.",
"noisyAudioInputTitle": "Il tuo microfono sembra rumoroso!",
"openChat": "Apri una conversazione",
"openChat": "Apri le conversazioni",
"openReactionsMenu": "Apri il menù reazioni",
"participants": "Partecipanti",
"pip": "Abilita visualizzazione immagine nell'immagine",
@@ -1156,6 +1201,7 @@
"shareaudio": "Condividi audio",
"sharedvideo": "Condividi un video",
"shortcuts": "Visualizza scorciatoie",
"showWhiteboard": "Show whiteboard",
"silence": "Silenzio",
"speakerStats": "Statistiche",
"startScreenSharing": "Inizia la condivisione dello schermo",
@@ -1170,18 +1216,22 @@
"toggleCamera": "Cambia videocamera",
"undock": "Sgancia in una finestra separata",
"videoSettings": "Impostazioni video",
"videomute": "Attiva/Disattiva videocamera"
"videomute": "Videocamera"
},
"transcribing": {
"ccButtonTooltip": "Inizia/Ferma i sottotitoli",
"ccButtonTooltip": "Sottotitoli",
"error": "Trascrizione fallita. Prova di nuovo.",
"expandedLabel": "La trascrizione della riunione è attiva",
"failedToStart": "C'è stato un errore nell'avvio del servizio di trascrizione.",
"labelToolTip": "Il servizio di trascrizione è in fase di avvio",
"off": "Trascrizione interrotta",
"pending": "Avvio del servizio di trascrizione della riunione...",
"sourceLanguageDesc": "Al momento la riunione è in <b>{{sourceLanguage}}</b>. <br/> Puoi cambiare lingua da ",
"sourceLanguageHere": "here",
"start": "Avvia visualizzazione sottotitoli",
"stop": "Interrompi la visualizzazione dei sottotitoli",
"subtitles": "Sottotitoli",
"subtitlesOff": "Spento",
"tr": "TR"
},
"userMedia": {
@@ -1207,21 +1257,21 @@
"pending": "{{displayName}} è stato invitato"
},
"videoStatus": {
"adjustFor": "Adjust for:",
"adjustFor": "Ottimizza per:",
"audioOnly": "AUD",
"audioOnlyExpanded": "Hai attivato la modalità per banda limitata. Questa modalità permette di risparmiare banda, ma non vedrai gli altri partecipanti.",
"bestPerformance": "Massime prestazioni",
"bestPerformance": "Prestazioni max.",
"callQuality": "Qualità video",
"hd": "HD",
"hdTooltip": "Stai vedendo in alta definizione",
"highDefinition": "Alta definizione",
"highestQuality": "Massima definizione",
"highestQuality": "Definizione max.",
"labelTooiltipNoVideo": "Nessun video",
"labelTooltipAudioOnly": "Hai attivato la modalità per banda limitata",
"ld": "LD",
"ldTooltip": "Stai vedendo a bassa definizione",
"lowDefinition": "Bassa definizione",
"performanceSettings": "Impostazione prestazioni",
"performanceSettings": "Imposta prestazioni",
"sd": "SD",
"sdTooltip": "Stai vedendo a definizione standard",
"standardDefinition": "Definizione standard"
@@ -1240,7 +1290,7 @@
"mute": "Il partecipante ha il microfono spento",
"muted": "Audio disattivato",
"pinToStage": "Aggiungi agli oratori",
"remoteControl": "Avvia/Ferma il controllo remoto",
"remoteControl": "Controllo remoto",
"screenSharing": "Il partecipante sta condividendo lo schermo",
"show": "Mostra tra gli oratori",
"showSelfView": "Mostra tua immagine",
@@ -1317,6 +1367,7 @@
"roomname": "Inserisci il nome della riunione",
"roomnameHint": "Inserisci il nome o l'URL della alla quale vuoi accedere. Puoi anche inventarti un nome, assicurati solo che le persone che vuoi contattare lo conoscano, così che possano inserire lo stesso nome.",
"sendFeedback": "Invia feedback",
"settings": "Impostazioni",
"startMeeting": "Inizia riunione",
"terms": "Termini di utilizzo",
"title": "Il sistema di videoconferenza sicuro, funzionale e completamente gratuito."

View File

@@ -785,7 +785,7 @@
"about": "U kunt een $t(lockRoomPassword) toevoegen aan uw vergadering. Deelnemers moeten het $t(lockRoomPassword) opgeven voordat zij aan de vergadering mogen deelnemen.",
"aboutReadOnly": "Moderators kunnen een $t(lockRoomPassword) toevoegen aan de vergadering. Deelnemers moeten het $t(lockRoomPassword) opgeven voordat zij aan de vergadering mogen deelnemen.",
"insecureRoomNameWarning": "De naam van de ruimte is onveilig. Ongewenste deelnemers kunnen deelnemen aan uw vergadering. Overweeg uw vergadering te beveiligen via de beveiligingsknop.",
"securityOptions": "Beveiligingsopties"
"title": "Beveiligingsopties"
},
"settings": {
"calendar": {

View File

@@ -81,8 +81,8 @@
"selectSoundDevice": "Seleccionar dispositivo de som"
},
"labels": {
"buttonLabel": "Modo carro",
"title": "Modo de condução segura",
"buttonLabel": "Modo automóvel",
"title": "Modo automóvel",
"videoStopped": "O seu vídeo está parado"
}
},
@@ -96,7 +96,7 @@
"messageAccessibleTitleMe": "Eu disse:",
"messageTo": "Mensagem privada para {{recipient}}",
"messagebox": "Escreva uma mensagem",
"newMessages": "novas mensagens",
"newMessages": "Novas mensagens",
"nickname": {
"popover": "Escolha um apelido",
"title": "Introduza um apelido para usar o chat",
@@ -104,6 +104,7 @@
},
"noMessagesMessage": "Ainda não há mensagens na reunião. Comece aqui uma conversa!",
"privateNotice": "Mensagem privada para {{recipient}}",
"sendButton": "Enviar",
"smileysPanel": "Painel de Emojis",
"tabs": {
"chat": "Chat",
@@ -270,6 +271,7 @@
"gracefulShutdown": "O nosso serviço está atualmente em manutenção. Por favor, tente novamente mais tarde.",
"grantModeratorDialog": "Tem a certeza que quer conceder direitos de moderador a {{participantName}}?",
"grantModeratorTitle": "Conceder direitos de moderador",
"hide": "Esconder",
"hideShareAudioHelper": "Não mostrar esta caixa de diálogo novamente",
"incorrectPassword": "Nome de utilizador ou palavra-passe incorretos",
"incorrectRoomLockPassword": "Palavra-passe incorreta",
@@ -387,6 +389,7 @@
"shareYourScreenDisabled": "Partilha de ecrã desactivada.",
"sharedVideoDialogError": "Erro: URL inválido",
"sharedVideoLinkPlaceholder": "Link do YouTube ou link direto do vídeo",
"show": "Mostrar",
"start": "Iniciar ",
"startLiveStreaming": "Iniciar a transmissão em direto",
"startRecording": "Iniciar gravação",
@@ -435,7 +438,7 @@
"search": "Procurar no GIPHY"
},
"helpView": {
"header": "Centro de ajuda"
"title": "Centro de ajuda"
},
"incomingCall": {
"answer": "Responder",
@@ -477,9 +480,11 @@
"noRoom": "Não foi especificado nenhuma sala para ligar.",
"numbers": "Números para entrar por chamada telefónica",
"password": "$t(lockRoomPasswordUppercase): ",
"reachedLimit": "atingiu o limite do seu plano.",
"sip": "Endereços SIP",
"title": "Partilhar",
"tooltip": "Partilhar link e acesso telefónico para esta reunião"
"tooltip": "Partilhar link e acesso telefónico para esta reunião",
"upgradeOptions": "Por favor, verifique as opções de atualização em"
},
"inlineDialogFailure": {
"msg": "Tivemos um pequeno problema.",
@@ -551,6 +556,7 @@
"signedInAs": "Está conectado como:",
"start": "Iniciar uma transmissão em direto",
"streamIdHelp": "O que é isso?",
"title": "Transmissão em direto",
"unavailableTitle": "Transmissão em direto indisponível",
"youtubeTerms": "Termos de serviços do YouTube"
},
@@ -593,6 +599,7 @@
"passwordJoinButton": "Solicitar",
"reject": "Rejeitar",
"rejectAll": "Rejeitar todos",
"title": "Sala de espera",
"toggleLabel": "Ativar sala de espera"
},
"localRecording": {
@@ -619,6 +626,7 @@
"no": "Não",
"participant": "Participante",
"participantStats": "Estatísticas dos Participantes",
"selectTabTitle": "🎥 Por favor selecione este separador para gravação",
"sessionToken": "Token de Sessão",
"start": "Iniciar gravação",
"stop": "Parar gravação",
@@ -735,13 +743,13 @@
"videoModeration": "Ligar a câmara deles"
},
"close": "Fechar",
"header": "Participantes",
"headings": {
"lobby": "Sala de espera ({{count}})",
"participantsList": "Participantes da reunião ({{count}})",
"waitingLobby": "Aguardam na sala de espera ({{count}})"
},
"search": "Pesquisar participantes"
"search": "Pesquisar participantes",
"title": "Participantes"
},
"passwordDigitsOnly": "Até {{number}} dígitos",
"passwordSetRemotely": "Definido por outro participante",
@@ -851,7 +859,7 @@
"ringing": "Tocando..."
},
"privacyView": {
"header": "Privacidade"
"title": "Privacidade"
},
"profile": {
"avatar": "avatar",
@@ -923,6 +931,7 @@
"signIn": "Entrar",
"signOut": "Sair",
"surfaceError": "Por favor, seleccione o separador actual.",
"title": "Gravação",
"unavailable": "Oops! O {{serviceName}} está indisponível. Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.",
"unavailableTitle": "Gravação indisponível",
"uploadToCloud": "Enviar para a nuvem"
@@ -934,8 +943,8 @@
"security": {
"about": "Pode adicionar uma $t(lockRoomPassword) à sua reunião. Os participantes terão de fornecer a $t(lockRoomPassword) antes de serem autorizados a participar na reunião.",
"aboutReadOnly": "Os participantes moderadores podem acrescentar uma $t(lockRoomPassword) à reunião. Os participantes terão de fornecer a $t(lockRoomPassword) antes de serem autorizados a participar na reunião.",
"header": "Opções de segurança",
"insecureRoomNameWarning": "O nome da sala é inseguro. Participantes indesejados podem juntar-se à sua conferência. Considere proteger a sua reunião utilizando o botão de segurança."
"insecureRoomNameWarning": "O nome da sala é inseguro. Participantes indesejados podem juntar-se à sua conferência. Considere proteger a sua reunião utilizando o botão de segurança.",
"title": "Opções de segurança"
},
"settings": {
"buttonLabel": "Definições",
@@ -1001,7 +1010,8 @@
"privacy": "Privacidade",
"profileSection": "Perfil",
"serverURL": "URL do servidor",
"showAdvanced": "",
"showAdvanced": "Mostrar definições avançadas",
"startCarModeInLowBandwidthMode": "Iniciar o modo automóvel em modo de baixa largura de banda",
"startWithAudioMuted": "Iniciar sem áudio",
"startWithVideoMuted": "Iniciar sem vídeo",
"terms": "Termos",
@@ -1040,7 +1050,7 @@
"title": "Sua chamada de vídeo foi interrompida, porque seu computador foi dormir."
},
"termsView": {
"header": "Termos"
"title": "Termos"
},
"toggleTopPanelLabel": "Mostrar ou ocultar o painel superior",
"toolbar": {
@@ -1052,7 +1062,7 @@
"boo": "Vaia",
"breakoutRoom": "Entrar/Sair salas instantâneas",
"callQuality": "Gerir a qualidade do vídeo",
"carmode": "Modo carro",
"carmode": "Modo automóvel",
"cc": "Mudar legendas",
"chat": "Abrir / Fechar chat",
"clap": "Aplausos",
@@ -1113,7 +1123,8 @@
"toggleFilmstrip": "Mudar a película de filme",
"undock": "Desancorar numa janela separada",
"videoblur": "Mudar o desfoque de vídeo",
"videomute": "Iniciar / Parar câmara"
"videomute": "Iniciar / Parar câmara",
"whiteboard": "Mostrar / Esconder quadro branco"
},
"addPeople": "Adicione pessoas à sua chamada",
"audioOnlyOff": "Desativar modo de largura de banda baixa",
@@ -1144,6 +1155,7 @@
"giphy": "Ativar/Desativar o menu GIPHY",
"hangup": "Sair da reunião",
"help": "Ajuda",
"hideWhiteboard": "Esconder quadro branco",
"invite": "Convidar pessoas",
"joinBreakoutRoom": "Entrar na sala",
"laugh": "Risos",
@@ -1189,6 +1201,7 @@
"shareaudio": "Partilhar áudio",
"sharedvideo": "Partilhar vídeo",
"shortcuts": "Ver atalhos",
"showWhiteboard": "Mostrar quadro branco",
"silence": "Silêncio",
"speakerStats": "Estatísticas dos participantes",
"startScreenSharing": "Iniciar partilha de ecrã",
@@ -1213,6 +1226,8 @@
"labelToolTip": "A reunião esta sendo transcrita",
"off": "Transcrição parada",
"pending": "Preparando a transcrição da reunião...",
"sourceLanguageDesc": "Atualmente a língua da reunião está definida para <b>{{sourceLanguage}}</b>. <br/> Pode alterá-la a partir ",
"sourceLanguageHere": "daqui",
"start": "Exibir legendas",
"stop": "Não exibir legendas",
"subtitles": "Legendas",

Some files were not shown because too many files have changed in this diff Show More