mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-05-22 07:17:48 +00:00
Compare commits
255 Commits
1506
...
jitsi-meet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b22f1965aa | ||
|
|
df6f920b44 | ||
|
|
f13b2462c8 | ||
|
|
c0e80c14f8 | ||
|
|
2b1176df53 | ||
|
|
05bfbf5620 | ||
|
|
4af706bd83 | ||
|
|
b62e4d5ee9 | ||
|
|
bd98d661d3 | ||
|
|
1f7c5529e9 | ||
|
|
0453346cf4 | ||
|
|
15090243d0 | ||
|
|
b22e3ee253 | ||
|
|
e693554961 | ||
|
|
0efca9a9a8 | ||
|
|
5d22061c0a | ||
|
|
84be7fd739 | ||
|
|
5d269ad0aa | ||
|
|
a4d5c41b3a | ||
|
|
846fb9abb0 | ||
|
|
0f33e59e4d | ||
|
|
896650d005 | ||
|
|
6d6b5a7917 | ||
|
|
db5010be9d | ||
|
|
be8860080c | ||
|
|
42f124b0f6 | ||
|
|
7249ababb7 | ||
|
|
079be92468 | ||
|
|
dda2a2feba | ||
|
|
ae726cfdc0 | ||
|
|
1a04e5a9af | ||
|
|
cac68dbaba | ||
|
|
3c04634609 | ||
|
|
6c12681b9c | ||
|
|
b1b5f3e6f0 | ||
|
|
5baa167a08 | ||
|
|
343d17d19a | ||
|
|
0370cc47fc | ||
|
|
083fc955dc | ||
|
|
a6e268f784 | ||
|
|
7e0a9bc37c | ||
|
|
f25bc818d7 | ||
|
|
9beae22803 | ||
|
|
920b0af269 | ||
|
|
6c674bef2a | ||
|
|
e74fbbb38b | ||
|
|
fb3f916802 | ||
|
|
c80d47d3dd | ||
|
|
693ee1dcf8 | ||
|
|
640c0faff1 | ||
|
|
207ac47aa7 | ||
|
|
8844f83a59 | ||
|
|
4a5a1cd5f4 | ||
|
|
09d63d38ab | ||
|
|
6bf0f9b2ec | ||
|
|
f6fdd3ce70 | ||
|
|
d1f6679f2d | ||
|
|
b8a6eb4768 | ||
|
|
6efad1348a | ||
|
|
eaed9db1e7 | ||
|
|
4f8b7a934c | ||
|
|
71c04936af | ||
|
|
41da758946 | ||
|
|
acbfe5cb09 | ||
|
|
ba3d65c01f | ||
|
|
856732abab | ||
|
|
5f21e4c5b6 | ||
|
|
28b44cf67c | ||
|
|
674b0e706c | ||
|
|
b96ca538e4 | ||
|
|
3266ace916 | ||
|
|
f7ce8d028d | ||
|
|
85e5b0fc31 | ||
|
|
61f4b52a15 | ||
|
|
d17cc9fa86 | ||
|
|
1f995cffe9 | ||
|
|
0936d54114 | ||
|
|
0912dbf130 | ||
|
|
7dd566a591 | ||
|
|
0f9bc766db | ||
|
|
e71e6c5b79 | ||
|
|
4d5f82633b | ||
|
|
2f01746c55 | ||
|
|
7ec5b34548 | ||
|
|
1604fa6584 | ||
|
|
b67994235e | ||
|
|
ee1358fae3 | ||
|
|
9fae5aa02f | ||
|
|
a887beed3a | ||
|
|
8a30d44042 | ||
|
|
4fef8a3b79 | ||
|
|
ad9bdf4dd2 | ||
|
|
29001c3ab0 | ||
|
|
a5387b054a | ||
|
|
c2757469a5 | ||
|
|
ed1aa700d0 | ||
|
|
58b5e1748f | ||
|
|
a99bbe67ab | ||
|
|
f53fb3d814 | ||
|
|
e716c1738c | ||
|
|
3190bfa058 | ||
|
|
c570b80d7b | ||
|
|
2f9887245a | ||
|
|
6006333ccf | ||
|
|
fd6c91715f | ||
|
|
a40b6a9df8 | ||
|
|
d67b7c7f49 | ||
|
|
616ab0f635 | ||
|
|
930e65da66 | ||
|
|
414a978b10 | ||
|
|
4ebefb17e9 | ||
|
|
c46772015b | ||
|
|
677eef12dd | ||
|
|
cd03b29ece | ||
|
|
63aa60f2d6 | ||
|
|
282defc54c | ||
|
|
593de63d49 | ||
|
|
5bb53ba036 | ||
|
|
3c369a4c67 | ||
|
|
83aeb99b95 | ||
|
|
188d53ef94 | ||
|
|
961cf7edbb | ||
|
|
2c5a5816c4 | ||
|
|
96a6f2dfd6 | ||
|
|
35be17cfc9 | ||
|
|
8d90a7d091 | ||
|
|
4a71c2655a | ||
|
|
043fd6e259 | ||
|
|
7722e14117 | ||
|
|
5e377d3694 | ||
|
|
f512583973 | ||
|
|
5fce7f6ba2 | ||
|
|
dfe1666530 | ||
|
|
41f0069a22 | ||
|
|
9f332ffcec | ||
|
|
891bd7f346 | ||
|
|
4810249301 | ||
|
|
984a6519fc | ||
|
|
986f13ef1a | ||
|
|
83dd56d34c | ||
|
|
b646e8d213 | ||
|
|
2785e76e23 | ||
|
|
c5cacd7955 | ||
|
|
62532b5879 | ||
|
|
7e22f9c57b | ||
|
|
d9017b2665 | ||
|
|
4571a4c048 | ||
|
|
80685395ed | ||
|
|
38b9819b68 | ||
|
|
a4dcf5f8df | ||
|
|
9a49a01713 | ||
|
|
8c3fb54d3d | ||
|
|
7707e384c5 | ||
|
|
a09b8ce56e | ||
|
|
7ecafb1e69 | ||
|
|
9f93ce86be | ||
|
|
a5773f1d0b | ||
|
|
d72813340e | ||
|
|
daf56455a5 | ||
|
|
f58d7fc3cc | ||
|
|
4584d89c43 | ||
|
|
1cc2b388a2 | ||
|
|
51a1a7ed22 | ||
|
|
99c2b60a1d | ||
|
|
de5cd53f85 | ||
|
|
f027a8f74f | ||
|
|
7d81ec4d86 | ||
|
|
a6fed4da65 | ||
|
|
ce42d3ab5d | ||
|
|
d939ae5fb2 | ||
|
|
642fa8d6f8 | ||
|
|
8f02b9249e | ||
|
|
7487684301 | ||
|
|
02e3f6b3a2 | ||
|
|
727df551e6 | ||
|
|
e5dc7058c1 | ||
|
|
c9488d5ee9 | ||
|
|
4720088039 | ||
|
|
96a18ab2d5 | ||
|
|
137aace970 | ||
|
|
4a8eca2020 | ||
|
|
23efa7827c | ||
|
|
fd24595baf | ||
|
|
2331982e33 | ||
|
|
683fc84a28 | ||
|
|
a0f5e5c8f8 | ||
|
|
c9af2b956c | ||
|
|
75b3bc6190 | ||
|
|
6c716bcbb1 | ||
|
|
44beed6216 | ||
|
|
2352811c20 | ||
|
|
c1df375af4 | ||
|
|
e8c631de01 | ||
|
|
bdc67201e2 | ||
|
|
0db33bb45c | ||
|
|
9f26270a98 | ||
|
|
df721cbd2e | ||
|
|
8745efb81f | ||
|
|
e56f1a9ded | ||
|
|
52fbb8f02c | ||
|
|
a1639b67a5 | ||
|
|
3475ad4674 | ||
|
|
685d117a91 | ||
|
|
e51f791ab0 | ||
|
|
0f2ba1cefe | ||
|
|
1f457dfca5 | ||
|
|
841050953f | ||
|
|
c6296821c0 | ||
|
|
7c8ca45d9a | ||
|
|
142f6e4518 | ||
|
|
f72e7ffbc2 | ||
|
|
111b6e1c27 | ||
|
|
4add2d0590 | ||
|
|
cb0f7417b6 | ||
|
|
06eb7c6109 | ||
|
|
4d0701cfda | ||
|
|
86bce1e5f6 | ||
|
|
8da0d3a1f1 | ||
|
|
f32438b219 | ||
|
|
0238a10a4b | ||
|
|
6669a96fd8 | ||
|
|
09406bfbfc | ||
|
|
51da40e90c | ||
|
|
52847bd28d | ||
|
|
835d3c6a25 | ||
|
|
00e6e98a61 | ||
|
|
6d90adcdf6 | ||
|
|
06d2fb0aca | ||
|
|
c3428e8213 | ||
|
|
57b0736ebb | ||
|
|
6211566c0c | ||
|
|
48bb427f71 | ||
|
|
56f15356c7 | ||
|
|
8e6fd0ca95 | ||
|
|
b5dfc2a520 | ||
|
|
4900fe020d | ||
|
|
94bd6bc330 | ||
|
|
36bcc6831b | ||
|
|
76c89845a8 | ||
|
|
b58f1cdd16 | ||
|
|
141c64cd00 | ||
|
|
51b802da84 | ||
|
|
71c27f308c | ||
|
|
75b9adf01b | ||
|
|
a079914603 | ||
|
|
4d3ca4a85a | ||
|
|
afa1d5423c | ||
|
|
766eb94c7d | ||
|
|
ad6e793615 | ||
|
|
d900d3c3fd | ||
|
|
7f315ef105 | ||
|
|
dc0a7e7628 | ||
|
|
6d1f42bf30 | ||
|
|
b24a54aab2 | ||
|
|
c41c219206 |
@@ -8,3 +8,6 @@ indent_size = 4
|
||||
indent_style = space
|
||||
max_line_length = 80
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1,2 +1,3 @@
|
||||
*.bundle.js -text -diff
|
||||
*.pbxproj -text
|
||||
lib-jitsi-meet.js -text -diff
|
||||
|
||||
18
.gitignore
vendored
18
.gitignore
vendored
@@ -36,12 +36,13 @@ DerivedData
|
||||
*.xcuserstate
|
||||
project.xcworkspace
|
||||
|
||||
# Android/IJ
|
||||
# Android/IntelliJ
|
||||
#
|
||||
*.iml
|
||||
build/
|
||||
.idea
|
||||
.gradle
|
||||
local.properties
|
||||
*.iml
|
||||
|
||||
# node.js
|
||||
#
|
||||
@@ -53,4 +54,15 @@ npm-debug.log
|
||||
buck-out/
|
||||
\.buckd/
|
||||
android/app/libs
|
||||
android/keystores/debug.keystore
|
||||
*.keystore
|
||||
|
||||
# fastlane
|
||||
#
|
||||
# It is recommended to not store the screenshots in the git repo. Instead, use
|
||||
# fastlane to re-generate the screenshots whenever they are needed. For more
|
||||
# information about the recommended setup visit:
|
||||
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
|
||||
#
|
||||
fastlane/report.xml
|
||||
fastlane/Preview.html
|
||||
fastlane/screenshots
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
build/
|
||||
debian/
|
||||
libs/
|
||||
node_modules/
|
||||
|
||||
4
ConferenceEvents.js
Normal file
4
ConferenceEvents.js
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* Notifies interested parties that hangup procedure will start.
|
||||
*/
|
||||
export const BEFORE_HANGUP = "conference.before_hangup";
|
||||
@@ -12,6 +12,12 @@ Installing Jitsi Meet is quite a simple experience. For Debian-based systems, we
|
||||
|
||||
For other systems, or if you wish to install all components manually, see the [detailed manual installation instructions](https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md).
|
||||
|
||||
## Download
|
||||
|
||||
You can download Debian/Ubuntu binaries:
|
||||
* [stable](https://download.jitsi.org/stable/) ([instructions](https://jitsi.org/Main/InstallJitsiMeetDebianStableRepository))
|
||||
* [nightly](https://download.jitsi.org/unstable/) ([instructions](https://jitsi.org/Main/InstallJitsiMeetDebianNightlyRepository))
|
||||
|
||||
## Building the sources
|
||||
|
||||
Jitsi Meet uses [Browserify](http://browserify.org). If you want to make changes in the code you need to [install Browserify](http://browserify.org/#install). Browserify requires [nodejs](http://nodejs.org).
|
||||
|
||||
@@ -27,5 +27,7 @@
|
||||
action + '.' + data.browserName, label, value);
|
||||
};
|
||||
|
||||
ctx.Analytics = Analytics;
|
||||
if(typeof ctx.analyticsHandlers === "undefined")
|
||||
ctx.analyticsHandlers = [];
|
||||
ctx.analyticsHandlers.push(Analytics);
|
||||
}(window));
|
||||
|
||||
@@ -46,13 +46,13 @@ android_library(
|
||||
|
||||
android_build_config(
|
||||
name = 'build_config',
|
||||
package = 'org.jitsi.jitsi_meet_react',
|
||||
package = 'org.jitsi.meet',
|
||||
)
|
||||
|
||||
android_resource(
|
||||
name = 'res',
|
||||
res = 'src/main/res',
|
||||
package = 'org.jitsi.jitsi_meet_react',
|
||||
package = 'org.jitsi.meet',
|
||||
)
|
||||
|
||||
android_binary(
|
||||
|
||||
@@ -1,15 +1,4 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
maven { url 'https://maven.fabric.io/public' }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'io.fabric.tools:gradle:1.+'
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'io.fabric'
|
||||
|
||||
import com.android.build.OutputFile
|
||||
|
||||
@@ -98,11 +87,11 @@ android {
|
||||
buildToolsVersion '23.0.1'
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'org.jitsi.jitsi_meet_react'
|
||||
applicationId 'org.jitsi.meet'
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 22
|
||||
versionCode 1
|
||||
versionName '1.0'
|
||||
versionCode Integer.parseInt("${version}")
|
||||
versionName "1.2.${version}"
|
||||
ndk {
|
||||
abiFilters 'armeabi-v7a', 'x86'
|
||||
}
|
||||
@@ -149,18 +138,13 @@ if (project.hasProperty('JITSI_SIGNING')
|
||||
apply from: project.property('JITSI_SIGNING');
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven { url 'https://maven.fabric.io/public' }
|
||||
}
|
||||
dependencies {
|
||||
compile project(':react-native-keep-awake')
|
||||
compile project(':react-native-vector-icons')
|
||||
compile project(':react-native-webrtc')
|
||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
compile 'com.android.support:appcompat-v7:23.0.1'
|
||||
compile 'com.facebook.react:react-native:+'
|
||||
compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
|
||||
transitive = true
|
||||
}
|
||||
compile 'com.facebook.react:react-native:+' // From node_modules
|
||||
}
|
||||
|
||||
apply from: '../../node_modules/react-native-vector-icons/fonts.gradle'
|
||||
@@ -168,6 +152,6 @@ apply from: '../../node_modules/react-native-vector-icons/fonts.gradle'
|
||||
// Run this once to be able to run the application with BUCK
|
||||
// puts all compile dependencies into folder libs for BUCK to use
|
||||
task copyDownloadableDepsToLibs(type: Copy) {
|
||||
from configurations.compile
|
||||
into 'libs'
|
||||
from configurations.compile
|
||||
into 'libs'
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.jitsi.jitsi_meet_react"
|
||||
package="org.jitsi.meet"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
|
||||
@@ -43,8 +43,5 @@
|
||||
</activity>
|
||||
<activity
|
||||
android:name="com.facebook.react.devsupport.DevSettingsActivity" />
|
||||
<meta-data
|
||||
android:name="io.fabric.ApiKey"
|
||||
android:value="a8ae24a58302ba79da1d312138e941f6b86e3242" />
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
Binary file not shown.
@@ -1,39 +0,0 @@
|
||||
package org.jitsi.jitsi_meet_react;
|
||||
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.shell.MainReactPackage;
|
||||
import com.oblador.vectoricons.VectorIconsPackage;
|
||||
import com.oney.WebRTCModule.WebRTCModulePackage;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
@Override
|
||||
protected boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.<ReactPackage>asList(
|
||||
new MainReactPackage(),
|
||||
new VectorIconsPackage(),
|
||||
new WebRTCModulePackage()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public ReactNativeHost getReactNativeHost() {
|
||||
return mReactNativeHost;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,8 @@
|
||||
package org.jitsi.jitsi_meet_react;
|
||||
package org.jitsi.meet;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.crashlytics.android.Crashlytics;
|
||||
import com.facebook.react.ReactActivity;
|
||||
import com.facebook.react.ReactActivityDelegate;
|
||||
import com.facebook.react.ReactRootView;
|
||||
import io.fabric.sdk.android.Fabric;
|
||||
|
||||
public class MainActivity extends ReactActivity {
|
||||
/**
|
||||
@@ -46,11 +43,4 @@ public class MainActivity extends ReactActivity {
|
||||
protected String getMainComponentName() {
|
||||
return "App";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Fabric.with(this, new Crashlytics());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package org.jitsi.meet;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.<ReactPackage>asList(
|
||||
new com.corbt.keepawake.KCKeepAwakePackage(),
|
||||
new com.facebook.react.shell.MainReactPackage(),
|
||||
new com.oblador.vectoricons.VectorIconsPackage(),
|
||||
new com.oney.WebRTCModule.WebRTCModulePackage()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public ReactNativeHost getReactNativeHost() {
|
||||
return mReactNativeHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
|
||||
if (!getReactNativeHost()
|
||||
.getReactInstanceManager()
|
||||
.getDevSupportManager()
|
||||
.getDevSupportEnabled()) {
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="android:windowTranslucentStatus">true</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -18,3 +18,4 @@
|
||||
# org.gradle.parallel=true
|
||||
|
||||
android.useDeprecatedNdk=true
|
||||
version=1
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
rootProject.name = 'jitsi-meet-react'
|
||||
|
||||
include ':app'
|
||||
include ':react-native-keep-awake'
|
||||
project(':react-native-keep-awake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keep-awake/android')
|
||||
include ':react-native-vector-icons'
|
||||
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
|
||||
include ':react-native-webrtc'
|
||||
|
||||
171
app.js
171
app.js
@@ -1,4 +1,3 @@
|
||||
/* global $, config, getRoomName */
|
||||
/* application specific logic */
|
||||
|
||||
import "babel-polyfill";
|
||||
@@ -7,7 +6,6 @@ import "jquery-contextmenu";
|
||||
import "jquery-ui";
|
||||
import "strophe";
|
||||
import "strophe-disco";
|
||||
import "strophe-caps";
|
||||
import "jQuery-Impromptu";
|
||||
import "autosize";
|
||||
|
||||
@@ -18,65 +16,13 @@ import 'aui-experimental-css';
|
||||
|
||||
window.toastr = require("toastr");
|
||||
|
||||
import URLProcessor from "./modules/config/URLProcessor";
|
||||
import RoomnameGenerator from './modules/util/RoomnameGenerator';
|
||||
|
||||
import UI from "./modules/UI/UI";
|
||||
import settings from "./modules/settings/Settings";
|
||||
import conference from './conference';
|
||||
import ConferenceUrl from './modules/URL/ConferenceUrl';
|
||||
import API from './modules/API/API';
|
||||
|
||||
import UIEvents from './service/UI/UIEvents';
|
||||
import getTokenData from "./modules/tokendata/TokenData";
|
||||
import translation from "./modules/translation/translation";
|
||||
|
||||
/**
|
||||
* Tries to push history state with the following parameters:
|
||||
* 'VideoChat', `Room: ${roomName}`, URL. If fail, prints the error and returns
|
||||
* it.
|
||||
*/
|
||||
function pushHistoryState(roomName, URL) {
|
||||
try {
|
||||
window.history.pushState(
|
||||
'VideoChat', `Room: ${roomName}`, URL
|
||||
);
|
||||
} catch (e) {
|
||||
console.warn("Push history state failed with parameters:",
|
||||
'VideoChat', `Room: ${roomName}`, URL, e);
|
||||
return e;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces current history state(replaces the URL displayed by the browser).
|
||||
* @param {string} newUrl the URL string which is to be displayed by the browser
|
||||
* to the user.
|
||||
*/
|
||||
function replaceHistoryState (newUrl) {
|
||||
if (window.history
|
||||
&& typeof window.history.replaceState === 'function') {
|
||||
window.history.replaceState({}, document.title, newUrl);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds and returns the room name.
|
||||
*/
|
||||
function buildRoomName () {
|
||||
let roomName = getRoomName();
|
||||
|
||||
if(!roomName) {
|
||||
let word = RoomnameGenerator.generateRoomWithoutSeparator();
|
||||
roomName = word.toLowerCase();
|
||||
let historyURL = window.location.href + word;
|
||||
//Trying to push state with current URL + roomName
|
||||
pushHistoryState(word, historyURL);
|
||||
}
|
||||
|
||||
return roomName;
|
||||
}
|
||||
import remoteControl from "./modules/remotecontrol/RemoteControl";
|
||||
|
||||
const APP = {
|
||||
// Used by do_external_connect.js if we receive the attach data after
|
||||
@@ -97,6 +43,16 @@ const APP = {
|
||||
settings,
|
||||
conference,
|
||||
translation,
|
||||
/**
|
||||
* The log collector which captures JS console logs for this app.
|
||||
* @type {LogCollector}
|
||||
*/
|
||||
logCollector: null,
|
||||
/**
|
||||
* Indicates if the log collector has been started (it will not be started
|
||||
* if the welcome page is displayed).
|
||||
*/
|
||||
logCollectorStarted : false,
|
||||
/**
|
||||
* After the APP has been initialized provides utility methods for dealing
|
||||
* with the conference room URL(address).
|
||||
@@ -105,104 +61,15 @@ const APP = {
|
||||
ConferenceUrl : null,
|
||||
connection: null,
|
||||
API,
|
||||
init () {
|
||||
this.keyboardshortcut =
|
||||
require("./modules/keyboardshortcut/keyboardshortcut");
|
||||
this.configFetch = require("./modules/config/HttpConfigFetch");
|
||||
this.tokenData = getTokenData();
|
||||
}
|
||||
remoteControl
|
||||
};
|
||||
|
||||
/**
|
||||
* If JWT token data it will be used for local user settings
|
||||
*/
|
||||
function setTokenData() {
|
||||
let localUser = APP.tokenData.caller;
|
||||
if(localUser) {
|
||||
APP.settings.setEmail((localUser.getEmail() || "").trim(), true);
|
||||
APP.settings.setAvatarUrl((localUser.getAvatarUrl() || "").trim());
|
||||
APP.settings.setDisplayName((localUser.getName() || "").trim(), true);
|
||||
}
|
||||
}
|
||||
|
||||
function init() {
|
||||
setTokenData();
|
||||
// Initialize the conference URL handler
|
||||
APP.ConferenceUrl = new ConferenceUrl(window.location);
|
||||
// Clean up the URL displayed by the browser
|
||||
replaceHistoryState(APP.ConferenceUrl.getInviteUrl());
|
||||
var isUIReady = APP.UI.start();
|
||||
if (isUIReady) {
|
||||
APP.conference.init({roomName: buildRoomName()}).then(function () {
|
||||
APP.UI.initConference();
|
||||
|
||||
APP.UI.addListener(UIEvents.LANG_CHANGED, function (language) {
|
||||
APP.translation.setLanguage(language);
|
||||
APP.settings.setLanguage(language);
|
||||
});
|
||||
|
||||
APP.keyboardshortcut.init();
|
||||
}).catch(function (err) {
|
||||
APP.UI.hideRingOverLay();
|
||||
APP.API.notifyConferenceLeft(APP.conference.roomName);
|
||||
console.error(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* If we have an HTTP endpoint for getting config.json configured we're going to
|
||||
* read it and override properties from config.js and interfaceConfig.js.
|
||||
* If there is no endpoint we'll just continue with initialization.
|
||||
* Keep in mind that if the endpoint has been configured and we fail to obtain
|
||||
* the config for any reason then the conference won't start and error message
|
||||
* will be displayed to the user.
|
||||
*/
|
||||
function obtainConfigAndInit() {
|
||||
let roomName = APP.conference.roomName;
|
||||
|
||||
if (config.configLocation) {
|
||||
APP.configFetch.obtainConfig(
|
||||
config.configLocation, roomName,
|
||||
// Get config result callback
|
||||
function(success, error) {
|
||||
if (success) {
|
||||
var now = APP.connectionTimes["configuration.fetched"] =
|
||||
window.performance.now();
|
||||
console.log("(TIME) configuration fetched:\t", now);
|
||||
init();
|
||||
} else {
|
||||
// Show obtain config error,
|
||||
// pass the error object for report
|
||||
APP.UI.messageHandler.openReportDialog(
|
||||
null, "dialog.connectError", error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
require("./modules/config/BoshAddressChoice").chooseAddress(
|
||||
config, roomName);
|
||||
|
||||
init();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
var now = APP.connectionTimes["document.ready"] = window.performance.now();
|
||||
console.log("(TIME) document ready:\t", now);
|
||||
|
||||
URLProcessor.setConfigParametersFromUrl();
|
||||
APP.init();
|
||||
|
||||
APP.translation.init(settings.getLanguage());
|
||||
|
||||
APP.API.init(APP.tokenData.externalAPISettings);
|
||||
|
||||
obtainConfigAndInit();
|
||||
});
|
||||
|
||||
$(window).bind('beforeunload', function () {
|
||||
APP.API.dispose();
|
||||
});
|
||||
// TODO The execution of the mobile app starts from react/index.native.js.
|
||||
// Similarly, the execution of the Web app should start from react/index.web.js
|
||||
// for the sake of consistency and ease of understanding. Temporarily though
|
||||
// because we are at the beginning of introducing React into the Web app, allow
|
||||
// the execution of the Web app to start from app.js in order to reduce the
|
||||
// complexity of the beginning step.
|
||||
require('./react');
|
||||
|
||||
module.exports = APP;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</div>
|
||||
<div class="hint-msg">
|
||||
<p>
|
||||
<span>Did you know?</span>
|
||||
<span id="hintQuestion">Did you know?</span>
|
||||
<span class="hint-msg__holder" id="hintMessage"></span>
|
||||
</p>
|
||||
<div class="happy-software"></div>
|
||||
|
||||
13
close.js
13
close.js
@@ -32,7 +32,7 @@ function insertTextMsg(id, msg){
|
||||
var el = document.getElementById(id);
|
||||
|
||||
if (el)
|
||||
el.innerText = msg;
|
||||
el.innerHTML = msg;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,6 +42,17 @@ function onLoad() {
|
||||
//Works only for close2.html because close.html doesn't have this element.
|
||||
insertTextMsg('thanksMessage',
|
||||
'Thank you for using ' + interfaceConfig.APP_NAME);
|
||||
|
||||
// If there is a setting show a special message only for the guests
|
||||
if (interfaceConfig.CLOSE_PAGE_GUEST_HINT) {
|
||||
if ( window.sessionStorage.getItem('guest') === 'true' ) {
|
||||
var element = document.getElementById('hintQuestion');
|
||||
element.classList.add('hide');
|
||||
insertTextMsg('hintMessage', interfaceConfig.CLOSE_PAGE_GUEST_HINT);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
insertTextMsg('hintMessage', getHint());
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</div>
|
||||
<div class="hint-msg">
|
||||
<p>
|
||||
<span>Did you know?</span>
|
||||
<span id="hintQuestion">Did you know?</span>
|
||||
<span class="hint-msg__holder" id="hintMessage"></span>
|
||||
</p>
|
||||
<div class="happy-software"></div>
|
||||
|
||||
492
conference.js
492
conference.js
@@ -1,4 +1,6 @@
|
||||
/* global $, APP, JitsiMeetJS, config, interfaceConfig */
|
||||
const logger = require("jitsi-meet-logger").getLogger(__filename);
|
||||
|
||||
import {openConnection} from './connection';
|
||||
import Invite from './modules/UI/invite/Invite';
|
||||
import ContactList from './modules/UI/side_pannels/contactlist/ContactList';
|
||||
@@ -12,6 +14,11 @@ import {reportError} from './modules/util/helpers';
|
||||
|
||||
import UIEvents from './service/UI/UIEvents';
|
||||
import UIUtil from './modules/UI/util/UIUtil';
|
||||
import * as JitsiMeetConferenceEvents from './ConferenceEvents';
|
||||
|
||||
import analytics from './modules/analytics/analytics';
|
||||
|
||||
import EventEmitter from "events";
|
||||
|
||||
const ConnectionEvents = JitsiMeetJS.events.connection;
|
||||
const ConnectionErrors = JitsiMeetJS.errors.connection;
|
||||
@@ -24,6 +31,8 @@ const TrackErrors = JitsiMeetJS.errors.track;
|
||||
|
||||
const ConnectionQualityEvents = JitsiMeetJS.events.connectionQuality;
|
||||
|
||||
const eventEmitter = new EventEmitter();
|
||||
|
||||
let room, connection, localAudio, localVideo;
|
||||
|
||||
/**
|
||||
@@ -164,7 +173,7 @@ function muteLocalMedia(localMedia, muted, localMediaTypeString) {
|
||||
const method = muted ? 'mute' : 'unmute';
|
||||
|
||||
localMedia[method]().catch(reason => {
|
||||
console.warn(`${localMediaTypeString} ${method} was rejected:`, reason);
|
||||
logger.warn(`${localMediaTypeString} ${method} was rejected:`, reason);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -191,6 +200,9 @@ function muteLocalVideo (muted) {
|
||||
function maybeRedirectToWelcomePage(options) {
|
||||
// if close page is enabled redirect to it, without further action
|
||||
if (config.enableClosePage) {
|
||||
// save whether current user is guest or not, before navigating
|
||||
// to close page
|
||||
window.sessionStorage.setItem('guest', APP.tokenData.isGuest);
|
||||
if (options.feedbackSubmitted)
|
||||
window.location.pathname = "close.html";
|
||||
else
|
||||
@@ -252,26 +264,10 @@ function createLocalTracks (options, checkForPermissionPrompt) {
|
||||
});
|
||||
return tracks;
|
||||
}).catch(function (err) {
|
||||
console.error(
|
||||
logger.error(
|
||||
'failed to create local tracks', options.devices, err);
|
||||
return Promise.reject(err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the email for the local user
|
||||
* @param email {string} the new email
|
||||
*/
|
||||
function changeLocalEmail(email = '') {
|
||||
email = email.trim();
|
||||
|
||||
if (email === APP.settings.getEmail()) {
|
||||
return;
|
||||
}
|
||||
|
||||
APP.settings.setEmail(email);
|
||||
APP.UI.setUserEmail(room.myUserId(), email);
|
||||
sendData(commands.EMAIL, email);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -292,9 +288,10 @@ function changeLocalDisplayName(nickname = '') {
|
||||
}
|
||||
|
||||
class ConferenceConnector {
|
||||
constructor(resolve, reject) {
|
||||
constructor(resolve, reject, invite) {
|
||||
this._resolve = resolve;
|
||||
this._reject = reject;
|
||||
this._invite = invite;
|
||||
this.reconnectTimeout = null;
|
||||
room.on(ConferenceEvents.CONFERENCE_JOINED,
|
||||
this._handleConferenceJoined.bind(this));
|
||||
@@ -308,7 +305,7 @@ class ConferenceConnector {
|
||||
this._reject(err);
|
||||
}
|
||||
_onConferenceFailed(err, ...params) {
|
||||
console.error('CONFERENCE FAILED:', err, ...params);
|
||||
logger.error('CONFERENCE FAILED:', err, ...params);
|
||||
APP.UI.hideRingOverLay();
|
||||
switch (err) {
|
||||
// room is locked by the password
|
||||
@@ -338,7 +335,8 @@ class ConferenceConnector {
|
||||
}, 5000);
|
||||
|
||||
// notify user that auth is required
|
||||
AuthHandler.requireAuth(room, this.invite.getRoomLocker().password);
|
||||
AuthHandler.requireAuth(
|
||||
room, this._invite.getRoomLocker().password);
|
||||
break;
|
||||
|
||||
case ConferenceErrors.RESERVATION_ERROR:
|
||||
@@ -381,7 +379,8 @@ class ConferenceConnector {
|
||||
// the app. Both the errors above are unrecoverable from the library
|
||||
// perspective.
|
||||
room.leave().then(() => connection.disconnect());
|
||||
APP.UI.showPageReloadOverlay();
|
||||
APP.UI.showPageReloadOverlay(
|
||||
false /* not a network type of failure */, err);
|
||||
break;
|
||||
|
||||
case ConferenceErrors.CONFERENCE_MAX_USERS:
|
||||
@@ -396,7 +395,7 @@ class ConferenceConnector {
|
||||
}
|
||||
}
|
||||
_onConferenceError(err, ...params) {
|
||||
console.error('CONFERENCE Error:', err, params);
|
||||
logger.error('CONFERENCE Error:', err, params);
|
||||
switch (err) {
|
||||
case ConferenceErrors.CHAT_ERROR:
|
||||
{
|
||||
@@ -405,7 +404,7 @@ class ConferenceConnector {
|
||||
}
|
||||
break;
|
||||
default:
|
||||
console.error("Unknown error.");
|
||||
logger.error("Unknown error.", err);
|
||||
}
|
||||
}
|
||||
_unsubscribe() {
|
||||
@@ -438,26 +437,6 @@ function disconnect() {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set permanent properties to analytics.
|
||||
* NOTE: Has to be used after JitsiMeetJS.init. Otherwise analytics will be
|
||||
* null.
|
||||
*/
|
||||
function setAnalyticsPermanentProperties() {
|
||||
let permanentProperties = {
|
||||
userAgent: navigator.userAgent,
|
||||
roomName: APP.conference.roomName
|
||||
};
|
||||
let {server, group} = APP.tokenData;
|
||||
if(server) {
|
||||
permanentProperties.server = server;
|
||||
}
|
||||
if(group) {
|
||||
permanentProperties.group = group;
|
||||
}
|
||||
JitsiMeetJS.analytics.addPermanentProperties(permanentProperties);
|
||||
}
|
||||
|
||||
export default {
|
||||
isModerator: false,
|
||||
audioMuted: false,
|
||||
@@ -480,8 +459,6 @@ export default {
|
||||
*/
|
||||
init(options) {
|
||||
this.roomName = options.roomName;
|
||||
JitsiMeetJS.setLogLevel(JitsiMeetJS.logLevels.TRACE);
|
||||
|
||||
// attaches global error handler, if there is already one, respect it
|
||||
if(JitsiMeetJS.getGlobalOnErrorHandler){
|
||||
var oldOnErrorHandler = window.onerror;
|
||||
@@ -504,20 +481,25 @@ export default {
|
||||
};
|
||||
}
|
||||
|
||||
return JitsiMeetJS.init(config)
|
||||
.then(() => {
|
||||
setAnalyticsPermanentProperties();
|
||||
return JitsiMeetJS.init(
|
||||
Object.assign(
|
||||
{enableAnalyticsLogging: analytics.isEnabled()}, config)
|
||||
).then(() => {
|
||||
analytics.init();
|
||||
return createInitialLocalTracksAndConnect(options.roomName);
|
||||
}).then(([tracks, con]) => {
|
||||
console.log('initialized with %s local tracks', tracks.length);
|
||||
logger.log('initialized with %s local tracks', tracks.length);
|
||||
APP.connection = connection = con;
|
||||
this._bindConnectionFailedHandler(con);
|
||||
this._createRoom(tracks);
|
||||
this.isDesktopSharingEnabled =
|
||||
JitsiMeetJS.isDesktopSharingEnabled();
|
||||
APP.remoteControl.init();
|
||||
this._bindConnectionFailedHandler(con);
|
||||
this._createRoom(tracks);
|
||||
|
||||
if (UIUtil.isButtonEnabled('contacts'))
|
||||
if (UIUtil.isButtonEnabled('contacts')
|
||||
&& !interfaceConfig.filmStripOnly) {
|
||||
APP.UI.ContactList = new ContactList(room);
|
||||
}
|
||||
|
||||
// if user didn't give access to mic or camera or doesn't have
|
||||
// them at all, we disable corresponding toolbar buttons
|
||||
@@ -537,7 +519,8 @@ export default {
|
||||
// XXX The API will take care of disconnecting from the XMPP
|
||||
// server (and, thus, leaving the room) on unload.
|
||||
return new Promise((resolve, reject) => {
|
||||
(new ConferenceConnector(resolve, reject)).connect();
|
||||
(new ConferenceConnector(
|
||||
resolve, reject, this.invite)).connect();
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -558,19 +541,34 @@ export default {
|
||||
*/
|
||||
_bindConnectionFailedHandler (connection) {
|
||||
const handler = function (error, errMsg) {
|
||||
if (ConnectionErrors.OTHER_ERROR === error) {
|
||||
// - item-not-found
|
||||
// - connection dropped(closed by Strophe unexpectedly
|
||||
// possible due too many transport errors)
|
||||
console.error("XMPP connection error: " + errMsg);
|
||||
APP.UI.showPageReloadOverlay();
|
||||
connection.removeEventListener(
|
||||
ConnectionEvents.CONNECTION_FAILED, handler);
|
||||
// FIXME it feels like the conference should be stopped
|
||||
// by lib-jitsi-meet
|
||||
if (room)
|
||||
room.leave();
|
||||
/* eslint-disable no-case-declarations */
|
||||
switch (error) {
|
||||
case ConnectionErrors.CONNECTION_DROPPED_ERROR:
|
||||
case ConnectionErrors.OTHER_ERROR:
|
||||
case ConnectionErrors.SERVER_ERROR:
|
||||
|
||||
logger.error("XMPP connection error: " + errMsg);
|
||||
|
||||
// From all of the cases above only CONNECTION_DROPPED_ERROR
|
||||
// is considered a network type of failure
|
||||
const isNetworkFailure
|
||||
= error === ConnectionErrors.CONNECTION_DROPPED_ERROR;
|
||||
|
||||
APP.UI.showPageReloadOverlay(
|
||||
isNetworkFailure,
|
||||
"xmpp-conn-dropped:" + errMsg);
|
||||
|
||||
connection.removeEventListener(
|
||||
ConnectionEvents.CONNECTION_FAILED, handler);
|
||||
|
||||
// FIXME it feels like the conference should be stopped
|
||||
// by lib-jitsi-meet
|
||||
if (room)
|
||||
room.leave();
|
||||
|
||||
break;
|
||||
}
|
||||
/* eslint-enable no-case-declarations */
|
||||
};
|
||||
connection.addEventListener(
|
||||
ConnectionEvents.CONNECTION_FAILED, handler);
|
||||
@@ -892,7 +890,7 @@ export default {
|
||||
} else if (track.isVideoTrack()) {
|
||||
return this.useVideoStream(track);
|
||||
} else {
|
||||
console.error(
|
||||
logger.error(
|
||||
"Ignored not an audio nor a video track: ", track);
|
||||
return Promise.resolve();
|
||||
}
|
||||
@@ -909,43 +907,40 @@ export default {
|
||||
return options;
|
||||
},
|
||||
|
||||
/**
|
||||
* Start using provided video stream.
|
||||
* Stops previous video stream.
|
||||
* @param {JitsiLocalTrack} [stream] new stream to use or null
|
||||
* @returns {Promise}
|
||||
*/
|
||||
useVideoStream (stream) {
|
||||
let promise = Promise.resolve();
|
||||
if (localVideo) {
|
||||
// this calls room.removeTrack internally
|
||||
// so we don't need to remove it manually
|
||||
promise = localVideo.dispose();
|
||||
}
|
||||
localVideo = stream;
|
||||
|
||||
return promise.then(function () {
|
||||
if (stream) {
|
||||
return room.addTrack(stream);
|
||||
}
|
||||
}).then(() => {
|
||||
if (stream) {
|
||||
this.videoMuted = stream.isMuted();
|
||||
this.isSharingScreen = stream.videoType === 'desktop';
|
||||
/**
|
||||
* Start using provided video stream.
|
||||
* Stops previous video stream.
|
||||
* @param {JitsiLocalTrack} [stream] new stream to use or null
|
||||
* @returns {Promise}
|
||||
*/
|
||||
useVideoStream (newStream) {
|
||||
return room.replaceTrack(localVideo, newStream)
|
||||
.then(() => {
|
||||
// We call dispose after doing the replace because
|
||||
// dispose will try and do a new o/a after the
|
||||
// track removes itself. Doing it after means
|
||||
// the JitsiLocalTrack::conference member is already
|
||||
// cleared, so it won't try and do the o/a
|
||||
if (localVideo) {
|
||||
localVideo.dispose();
|
||||
}
|
||||
localVideo = newStream;
|
||||
if (newStream) {
|
||||
this.videoMuted = newStream.isMuted();
|
||||
this.isSharingScreen = newStream.videoType === 'desktop';
|
||||
|
||||
APP.UI.addLocalStream(stream);
|
||||
APP.UI.addLocalStream(newStream);
|
||||
|
||||
stream.videoType === 'camera'
|
||||
&& APP.UI.setCameraButtonEnabled(true);
|
||||
} else {
|
||||
this.videoMuted = false;
|
||||
this.isSharingScreen = false;
|
||||
}
|
||||
|
||||
APP.UI.setVideoMuted(this.getMyUserId(), this.videoMuted);
|
||||
|
||||
APP.UI.updateDesktopSharingButtons();
|
||||
});
|
||||
newStream.videoType === 'camera'
|
||||
&& APP.UI.setCameraButtonEnabled(true);
|
||||
} else {
|
||||
this.videoMuted = false;
|
||||
this.isSharingScreen = false;
|
||||
}
|
||||
APP.UI.setVideoMuted(this.getMyUserId(), this.videoMuted);
|
||||
APP.UI.updateDesktopSharingButtons();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -954,41 +949,37 @@ export default {
|
||||
* @param {JitsiLocalTrack} [stream] new stream to use or null
|
||||
* @returns {Promise}
|
||||
*/
|
||||
useAudioStream (stream) {
|
||||
let promise = Promise.resolve();
|
||||
if (localAudio) {
|
||||
// this calls room.removeTrack internally
|
||||
// so we don't need to remove it manually
|
||||
promise = localAudio.dispose();
|
||||
}
|
||||
localAudio = stream;
|
||||
|
||||
return promise.then(function () {
|
||||
if (stream) {
|
||||
return room.addTrack(stream);
|
||||
}
|
||||
}).then(() => {
|
||||
if (stream) {
|
||||
this.audioMuted = stream.isMuted();
|
||||
|
||||
APP.UI.addLocalStream(stream);
|
||||
} else {
|
||||
this.audioMuted = false;
|
||||
}
|
||||
|
||||
APP.UI.setMicrophoneButtonEnabled(true);
|
||||
APP.UI.setAudioMuted(this.getMyUserId(), this.audioMuted);
|
||||
});
|
||||
useAudioStream (newStream) {
|
||||
return room.replaceTrack(localAudio, newStream)
|
||||
.then(() => {
|
||||
// We call dispose after doing the replace because
|
||||
// dispose will try and do a new o/a after the
|
||||
// track removes itself. Doing it after means
|
||||
// the JitsiLocalTrack::conference member is already
|
||||
// cleared, so it won't try and do the o/a
|
||||
if (localAudio) {
|
||||
localAudio.dispose();
|
||||
}
|
||||
localAudio = newStream;
|
||||
if (newStream) {
|
||||
this.audioMuted = newStream.isMuted();
|
||||
APP.UI.addLocalStream(newStream);
|
||||
} else {
|
||||
this.audioMuted = false;
|
||||
}
|
||||
APP.UI.setMicrophoneButtonEnabled(true);
|
||||
APP.UI.setAudioMuted(this.getMyUserId(), this.audioMuted);
|
||||
});
|
||||
},
|
||||
|
||||
videoSwitchInProgress: false,
|
||||
toggleScreenSharing (shareScreen = !this.isSharingScreen) {
|
||||
if (this.videoSwitchInProgress) {
|
||||
console.warn("Switch in progress.");
|
||||
logger.warn("Switch in progress.");
|
||||
return;
|
||||
}
|
||||
if (!this.isDesktopSharingEnabled) {
|
||||
console.warn("Cannot toggle screen sharing: not supported.");
|
||||
logger.warn("Cannot toggle screen sharing: not supported.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -996,7 +987,7 @@ export default {
|
||||
let externalInstallation = false;
|
||||
|
||||
if (shareScreen) {
|
||||
createLocalTracks({
|
||||
this.screenSharingPromise = createLocalTracks({
|
||||
devices: ['desktop'],
|
||||
desktopSharingExtensionExternalInstallation: {
|
||||
interval: 500,
|
||||
@@ -1042,7 +1033,7 @@ export default {
|
||||
this.videoSwitchInProgress = false;
|
||||
JitsiMeetJS.analytics.sendEvent(
|
||||
'conference.sharingDesktop.start');
|
||||
console.log('sharing local desktop');
|
||||
logger.log('sharing local desktop');
|
||||
}).catch((err) => {
|
||||
// close external installation dialog to show the error.
|
||||
if(externalInstallation)
|
||||
@@ -1054,7 +1045,7 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
console.error('failed to share local desktop', err);
|
||||
logger.error('failed to share local desktop', err);
|
||||
|
||||
if (err.name === TrackErrors.FIREFOX_EXTENSION_NEEDED) {
|
||||
APP.UI.showExtensionRequiredDialog(
|
||||
@@ -1085,17 +1076,20 @@ export default {
|
||||
dialogTitleKey, dialogTxt, false);
|
||||
});
|
||||
} else {
|
||||
createLocalTracks({ devices: ['video'] }).then(
|
||||
APP.remoteControl.receiver.stop();
|
||||
this.screenSharingPromise = createLocalTracks(
|
||||
{ devices: ['video'] })
|
||||
.then(
|
||||
([stream]) => this.useVideoStream(stream)
|
||||
).then(() => {
|
||||
this.videoSwitchInProgress = false;
|
||||
JitsiMeetJS.analytics.sendEvent(
|
||||
'conference.sharingDesktop.stop');
|
||||
console.log('sharing local video');
|
||||
logger.log('sharing local video');
|
||||
}).catch((err) => {
|
||||
this.useVideoStream(null);
|
||||
this.videoSwitchInProgress = false;
|
||||
console.error('failed to share local video', err);
|
||||
logger.error('failed to share local video', err);
|
||||
});
|
||||
}
|
||||
},
|
||||
@@ -1117,11 +1111,13 @@ export default {
|
||||
}
|
||||
);
|
||||
|
||||
room.on(ConferenceEvents.PARTCIPANT_FEATURES_CHANGED,
|
||||
user => APP.UI.onUserFeaturesChanged(user));
|
||||
room.on(ConferenceEvents.USER_JOINED, (id, user) => {
|
||||
if (user.isHidden())
|
||||
return;
|
||||
|
||||
console.log('USER %s connnected', id, user);
|
||||
logger.log('USER %s connnected', id, user);
|
||||
APP.API.notifyUserJoined(id);
|
||||
APP.UI.addUser(user);
|
||||
|
||||
@@ -1129,7 +1125,7 @@ export default {
|
||||
APP.UI.updateUserRole(user);
|
||||
});
|
||||
room.on(ConferenceEvents.USER_LEFT, (id, user) => {
|
||||
console.log('USER %s LEFT', id, user);
|
||||
logger.log('USER %s LEFT', id, user);
|
||||
APP.API.notifyUserLeft(id);
|
||||
APP.UI.removeUser(id, user.getDisplayName());
|
||||
APP.UI.onSharedVideoStop(id);
|
||||
@@ -1138,7 +1134,7 @@ export default {
|
||||
|
||||
room.on(ConferenceEvents.USER_ROLE_CHANGED, (id, role) => {
|
||||
if (this.isLocalId(id)) {
|
||||
console.info(`My role changed, new role: ${role}`);
|
||||
logger.info(`My role changed, new role: ${role}`);
|
||||
if (this.isModerator !== room.isModerator()) {
|
||||
this.isModerator = room.isModerator();
|
||||
APP.UI.updateLocalRole(room.isModerator());
|
||||
@@ -1196,7 +1192,7 @@ export default {
|
||||
{
|
||||
this.audioLevelsMap[id] = lvl;
|
||||
if(config.debugAudioLevels)
|
||||
console.log("AudioLevel:" + id + "/" + lvl);
|
||||
logger.log("AudioLevel:" + id + "/" + lvl);
|
||||
}
|
||||
|
||||
APP.UI.setAudioLevel(id, lvl);
|
||||
@@ -1252,6 +1248,57 @@ export default {
|
||||
APP.API.notifyReceivedChatMessage(id, nick, text, ts);
|
||||
APP.UI.addMessage(id, nick, text, ts);
|
||||
});
|
||||
APP.UI.addListener(UIEvents.MESSAGE_CREATED, (message) => {
|
||||
APP.API.notifySendingChatMessage(message);
|
||||
room.sendTextMessage(message);
|
||||
});
|
||||
|
||||
APP.UI.addListener(UIEvents.SELECTED_ENDPOINT, (id) => {
|
||||
try {
|
||||
// do not try to select participant if there is none (we
|
||||
// are alone in the room), otherwise an error will be
|
||||
// thrown cause reporting mechanism is not available
|
||||
// (datachannels currently)
|
||||
if (room.getParticipants().length === 0)
|
||||
return;
|
||||
|
||||
room.selectParticipant(id);
|
||||
} catch (e) {
|
||||
JitsiMeetJS.analytics.sendEvent(
|
||||
'selectParticipant.failed');
|
||||
reportError(e);
|
||||
}
|
||||
});
|
||||
|
||||
APP.UI.addListener(UIEvents.PINNED_ENDPOINT,
|
||||
(smallVideo, isPinned) => {
|
||||
let smallVideoId = smallVideo.getId();
|
||||
let isLocal = APP.conference.isLocalId(smallVideoId);
|
||||
|
||||
let eventName
|
||||
= (isPinned ? "pinned" : "unpinned") + "." +
|
||||
(isLocal ? "local" : "remote");
|
||||
let participantCount = room.getParticipantCount();
|
||||
JitsiMeetJS.analytics.sendEvent(
|
||||
eventName,
|
||||
{ value: participantCount });
|
||||
|
||||
// FIXME why VIDEO_CONTAINER_TYPE instead of checking if
|
||||
// the participant is on the large video ?
|
||||
if (smallVideo.getVideoType() === VIDEO_CONTAINER_TYPE
|
||||
&& !isLocal) {
|
||||
|
||||
// When the library starts supporting multiple pins we
|
||||
// would pass the isPinned parameter together with the
|
||||
// identifier, but currently we send null to indicate that
|
||||
// we unpin the last pinned.
|
||||
try {
|
||||
room.pinParticipant(isPinned ? smallVideoId : null);
|
||||
} catch (e) {
|
||||
reportError(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
room.on(ConferenceEvents.CONNECTION_INTERRUPTED, () => {
|
||||
@@ -1277,7 +1324,7 @@ export default {
|
||||
});
|
||||
|
||||
room.on(ConferenceEvents.RECORDER_STATE_CHANGED, (status, error) => {
|
||||
console.log("Received recorder status change: ", status, error);
|
||||
logger.log("Received recorder status change: ", status, error);
|
||||
APP.UI.updateRecordingState(status);
|
||||
});
|
||||
|
||||
@@ -1301,11 +1348,13 @@ export default {
|
||||
this.deviceChangeListener);
|
||||
|
||||
// stop local video
|
||||
if (localVideo)
|
||||
if (localVideo) {
|
||||
localVideo.dispose();
|
||||
}
|
||||
// stop local audio
|
||||
if (localAudio)
|
||||
if (localAudio) {
|
||||
localAudio.dispose();
|
||||
}
|
||||
|
||||
// show overlay
|
||||
APP.UI.showSuspendedOverlay();
|
||||
@@ -1329,13 +1378,6 @@ export default {
|
||||
APP.UI.addListener(UIEvents.AUDIO_MUTED, muteLocalAudio);
|
||||
APP.UI.addListener(UIEvents.VIDEO_MUTED, muteLocalVideo);
|
||||
|
||||
if (!interfaceConfig.filmStripOnly) {
|
||||
APP.UI.addListener(UIEvents.MESSAGE_CREATED, (message) => {
|
||||
APP.API.notifySendingChatMessage(message);
|
||||
room.sendTextMessage(message);
|
||||
});
|
||||
}
|
||||
|
||||
room.on(ConnectionQualityEvents.LOCAL_STATS_UPDATED,
|
||||
(stats) => {
|
||||
APP.UI.updateLocalStats(stats.connectionQuality, stats);
|
||||
@@ -1351,7 +1393,7 @@ export default {
|
||||
APP.UI.initEtherpad(value);
|
||||
});
|
||||
|
||||
APP.UI.addListener(UIEvents.EMAIL_CHANGED, changeLocalEmail);
|
||||
APP.UI.addListener(UIEvents.EMAIL_CHANGED, this.changeLocalEmail);
|
||||
room.addCommandListener(this.commands.defaults.EMAIL, (data, from) => {
|
||||
APP.UI.setUserEmail(from, data.value);
|
||||
});
|
||||
@@ -1458,50 +1500,6 @@ export default {
|
||||
AuthHandler.authenticate(room);
|
||||
});
|
||||
|
||||
APP.UI.addListener(UIEvents.SELECTED_ENDPOINT, (id) => {
|
||||
try {
|
||||
// do not try to select participant if there is none (we are
|
||||
// alone in the room), otherwise an error will be thrown cause
|
||||
// reporting mechanism is not available (datachannels currently)
|
||||
if (room.getParticipants().length === 0)
|
||||
return;
|
||||
|
||||
room.selectParticipant(id);
|
||||
} catch (e) {
|
||||
JitsiMeetJS.analytics.sendEvent('selectParticipant.failed');
|
||||
reportError(e);
|
||||
}
|
||||
});
|
||||
|
||||
APP.UI.addListener(UIEvents.PINNED_ENDPOINT, (smallVideo, isPinned) => {
|
||||
let smallVideoId = smallVideo.getId();
|
||||
let isLocal = APP.conference.isLocalId(smallVideoId);
|
||||
|
||||
let eventName
|
||||
= (isPinned ? "pinned" : "unpinned") + "." +
|
||||
(isLocal ? "local" : "remote");
|
||||
let participantCount = room.getParticipantCount();
|
||||
JitsiMeetJS.analytics.sendEvent(
|
||||
eventName,
|
||||
{ value: participantCount });
|
||||
|
||||
// FIXME why VIDEO_CONTAINER_TYPE instead of checking if
|
||||
// the participant is on the large video ?
|
||||
if (smallVideo.getVideoType() === VIDEO_CONTAINER_TYPE
|
||||
&& !isLocal) {
|
||||
|
||||
// When the library starts supporting multiple pins we would
|
||||
// pass the isPinned parameter together with the identifier,
|
||||
// but currently we send null to indicate that we unpin the
|
||||
// last pinned.
|
||||
try {
|
||||
room.pinParticipant(isPinned ? smallVideoId : null);
|
||||
} catch (e) {
|
||||
reportError(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
APP.UI.addListener(
|
||||
UIEvents.VIDEO_DEVICE_CHANGED,
|
||||
(cameraDeviceId) => {
|
||||
@@ -1513,7 +1511,7 @@ export default {
|
||||
})
|
||||
.then(([stream]) => {
|
||||
this.useVideoStream(stream);
|
||||
console.log('switched local video device');
|
||||
logger.log('switched local video device');
|
||||
APP.settings.setCameraDeviceId(cameraDeviceId, true);
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -1535,7 +1533,7 @@ export default {
|
||||
})
|
||||
.then(([stream]) => {
|
||||
this.useAudioStream(stream);
|
||||
console.log('switched local audio device');
|
||||
logger.log('switched local audio device');
|
||||
APP.settings.setMicDeviceId(micDeviceId, true);
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -1551,9 +1549,9 @@ export default {
|
||||
JitsiMeetJS.analytics.sendEvent(
|
||||
'settings.changeDevice.audioOut');
|
||||
APP.settings.setAudioOutputDeviceId(audioOutputDeviceId)
|
||||
.then(() => console.log('changed audio output device'))
|
||||
.then(() => logger.log('changed audio output device'))
|
||||
.catch((err) => {
|
||||
console.warn('Failed to change audio output device. ' +
|
||||
logger.warn('Failed to change audio output device. ' +
|
||||
'Default or previously set audio output device ' +
|
||||
'will be used instead.', err);
|
||||
APP.UI.setSelectedAudioOutputFromSettings();
|
||||
@@ -1613,12 +1611,23 @@ export default {
|
||||
},
|
||||
/**
|
||||
* Adds any room listener.
|
||||
* @param eventName one of the ConferenceEvents
|
||||
* @param callBack the function to be called when the event occurs
|
||||
* @param {string} eventName one of the ConferenceEvents
|
||||
* @param {Function} listener the function to be called when the event
|
||||
* occurs
|
||||
*/
|
||||
addConferenceListener(eventName, callBack) {
|
||||
room.on(eventName, callBack);
|
||||
addConferenceListener(eventName, listener) {
|
||||
room.on(eventName, listener);
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes any room listener.
|
||||
* @param {string} eventName one of the ConferenceEvents
|
||||
* @param {Function} listener the listener to be removed.
|
||||
*/
|
||||
removeConferenceListener(eventName, listener) {
|
||||
room.off(eventName, listener);
|
||||
},
|
||||
|
||||
/**
|
||||
* Inits list of current devices and event listener for device change.
|
||||
* @private
|
||||
@@ -1749,14 +1758,25 @@ export default {
|
||||
* @param {string} name the event name
|
||||
* @param {int} value the value (it's int because google analytics supports
|
||||
* only int).
|
||||
* @param {string} label short text which provides more info about the event
|
||||
* which allows to distinguish between few event cases of the same name
|
||||
* NOTE: Should be used after conference.init
|
||||
*/
|
||||
logEvent(name, value) {
|
||||
logEvent(name, value, label) {
|
||||
if(JitsiMeetJS.analytics) {
|
||||
JitsiMeetJS.analytics.sendEvent(name, {value});
|
||||
JitsiMeetJS.analytics.sendEvent(name, {value, label});
|
||||
}
|
||||
if(room) {
|
||||
room.sendApplicationLog(JSON.stringify({name, value}));
|
||||
room.sendApplicationLog(JSON.stringify({name, value, label}));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Methods logs an application event given in the JSON format.
|
||||
* @param {string} logJSON an event to be logged in JSON format
|
||||
*/
|
||||
logJSON(logJSON) {
|
||||
if (room) {
|
||||
room.sendApplicationLog(logJSON);
|
||||
}
|
||||
},
|
||||
/**
|
||||
@@ -1765,6 +1785,7 @@ export default {
|
||||
* requested
|
||||
*/
|
||||
hangup (requestFeedback = false) {
|
||||
eventEmitter.emit(JitsiMeetConferenceEvents.BEFORE_HANGUP);
|
||||
APP.UI.hideRingOverLay();
|
||||
let requestFeedbackPromise = requestFeedback
|
||||
? APP.UI.requestFeedbackOnHangup()
|
||||
@@ -1783,5 +1804,68 @@ export default {
|
||||
APP.API.notifyReadyToClose();
|
||||
maybeRedirectToWelcomePage(values[0]);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Changes the email for the local user
|
||||
* @param email {string} the new email
|
||||
*/
|
||||
changeLocalEmail(email = '') {
|
||||
email = email.trim();
|
||||
|
||||
if (email === APP.settings.getEmail()) {
|
||||
return;
|
||||
}
|
||||
|
||||
APP.settings.setEmail(email);
|
||||
APP.UI.setUserEmail(room.myUserId(), email);
|
||||
sendData(commands.EMAIL, email);
|
||||
},
|
||||
|
||||
/**
|
||||
* Changes the avatar url for the local user
|
||||
* @param url {string} the new url
|
||||
*/
|
||||
changeLocalAvatarUrl(url = '') {
|
||||
url = url.trim();
|
||||
|
||||
if (url === APP.settings.getAvatarUrl()) {
|
||||
return;
|
||||
}
|
||||
|
||||
APP.settings.setAvatarUrl(url);
|
||||
APP.UI.setUserAvatarUrl(room.myUserId(), url);
|
||||
sendData(commands.AVATAR_URL, url);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a message via the data channel.
|
||||
* @param {string} to the id of the endpoint that should receive the
|
||||
* message. If "" - the message will be sent to all participants.
|
||||
* @param {object} payload the payload of the message.
|
||||
* @throws NetworkError or InvalidStateError or Error if the operation
|
||||
* fails.
|
||||
*/
|
||||
sendEndpointMessage (to, payload) {
|
||||
room.sendEndpointMessage(to, payload);
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds new listener.
|
||||
* @param {String} eventName the name of the event
|
||||
* @param {Function} listener the listener.
|
||||
*/
|
||||
addListener (eventName, listener) {
|
||||
eventEmitter.addListener(eventName, listener);
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes listener.
|
||||
* @param {String} eventName the name of the event that triggers the
|
||||
* listener
|
||||
* @param {Function} listener the listener.
|
||||
*/
|
||||
removeListener (eventName, listener) {
|
||||
eventEmitter.removeListener(eventName, listener);
|
||||
}
|
||||
};
|
||||
|
||||
12
config.js
12
config.js
@@ -20,13 +20,13 @@ var config = { // eslint-disable-line no-unused-vars
|
||||
//focusUserJid: 'focus@auth.jitsi-meet.example.com', // The real JID of focus participant - can be overridden here
|
||||
//defaultSipNumber: '', // Default SIP number
|
||||
|
||||
// Desktop sharing method. Can be set to 'ext', 'webrtc' or false to disable.
|
||||
desktopSharingChromeMethod: 'ext',
|
||||
// The ID of the jidesha extension for Chrome.
|
||||
desktopSharingChromeExtId: 'diibjkoicjeejcmhdnailmkgecihlobk',
|
||||
desktopSharingChromeExtId: null,
|
||||
// Whether desktop sharing should be disabled on Chrome.
|
||||
desktopSharingChromeDisabled: true,
|
||||
// The media sources to use when using screen sharing with the Chrome
|
||||
// extension.
|
||||
desktopSharingChromeSources: ['screen', 'window'],
|
||||
desktopSharingChromeSources: ['screen', 'window', 'tab'],
|
||||
// Required version of Chrome extension
|
||||
desktopSharingChromeMinExtVersion: '0.1',
|
||||
|
||||
@@ -76,5 +76,7 @@ var config = { // eslint-disable-line no-unused-vars
|
||||
// If true - all users without token will be considered guests and all users
|
||||
// with token will be considered non-guests. Only guests will be allowed to
|
||||
// edit their profile.
|
||||
enableUserRolesBasedOnToken: false
|
||||
enableUserRolesBasedOnToken: false,
|
||||
// Suspending video might cause problems with audio playback. Disabling until these are fixed.
|
||||
disableSuspendVideo: true
|
||||
};
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* global APP, JitsiMeetJS, config */
|
||||
const logger = require("jitsi-meet-logger").getLogger(__filename);
|
||||
|
||||
import AuthHandler from './modules/UI/authentication/AuthHandler';
|
||||
import jitsiLocalStorage from './modules/util/JitsiLocalStorage';
|
||||
|
||||
@@ -84,7 +86,7 @@ function connect(id, password, roomName) {
|
||||
|
||||
function handleConnectionFailed(err) {
|
||||
unsubscribe();
|
||||
console.error("CONNECTION FAILED:", err);
|
||||
logger.error("CONNECTION FAILED:", err);
|
||||
reject(err);
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,6 @@ form {
|
||||
}
|
||||
|
||||
.leftwatermark {
|
||||
display: none;
|
||||
left: $defaultToolbarSize;
|
||||
margin-left: 10px;
|
||||
background-image: url($defaultWatermarkLink);
|
||||
@@ -92,13 +91,11 @@ form {
|
||||
}
|
||||
|
||||
.rightwatermark {
|
||||
display: none;
|
||||
right: 15;
|
||||
background-position: center right;
|
||||
}
|
||||
|
||||
.poweredby {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 25;
|
||||
bottom: 7;
|
||||
@@ -142,4 +139,4 @@ form {
|
||||
#inviteLinkRef {
|
||||
-webkit-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,14 +50,17 @@
|
||||
position:relative;
|
||||
height:196px;
|
||||
padding: 0;
|
||||
padding-left: 17px;
|
||||
/*The filmstrip should not be covered by the left toolbar*/
|
||||
padding-left: $defaultToolbarSize + 5;
|
||||
bottom: 0;
|
||||
width:auto;
|
||||
border: $thumbnailsBorder solid transparent;
|
||||
z-index: 5;
|
||||
transition: bottom 2s;
|
||||
overflow: visible !important;
|
||||
font-size: 0pt; /*!!!Removes the gap between the local video container and the remote videos.*/
|
||||
/*!!!Removes the gap between the local video container and the remote
|
||||
videos.*/
|
||||
font-size: 0pt;
|
||||
|
||||
&.hidden {
|
||||
bottom: -196px;
|
||||
@@ -67,8 +70,8 @@
|
||||
display: none;
|
||||
position: relative;
|
||||
background-size: contain;
|
||||
border: $thumbnailVideoBorder solid transparent;
|
||||
border-radius:1px;
|
||||
border: $thumbnailVideoBorder solid $thumbnailBorderColor;
|
||||
border-radius: $borderRadius;
|
||||
margin: 0 $thumbnailVideoMargin;
|
||||
|
||||
&.videoContainerFocused, &:hover {
|
||||
@@ -89,7 +92,7 @@
|
||||
0 0 3px $videoThumbnailSelected !important;
|
||||
}
|
||||
|
||||
.remotevideomenu {
|
||||
.remotevideomenu > .icon-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -102,7 +105,7 @@
|
||||
box-shadow: inset 0 0 3px $videoThumbnailHovered,
|
||||
0 0 3px $videoThumbnailHovered;
|
||||
|
||||
.remotevideomenu {
|
||||
.remotevideomenu > .icon-menu {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
@@ -112,10 +115,10 @@
|
||||
& > video,
|
||||
& > object {
|
||||
cursor: hand;
|
||||
border-radius:1px;
|
||||
border-radius: $borderRadius;
|
||||
object-fit: cover;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,15 +34,15 @@
|
||||
.icon-avatar:before {
|
||||
content: "\e901";
|
||||
}
|
||||
.icon-autorenew:before {
|
||||
content: "\e903";
|
||||
}
|
||||
.icon-hangup:before {
|
||||
content: "\e905";
|
||||
}
|
||||
.icon-chat:before {
|
||||
content: "\e906";
|
||||
}
|
||||
.icon-download:before {
|
||||
content: "\e902";
|
||||
}
|
||||
.icon-edit:before {
|
||||
content: "\e907";
|
||||
}
|
||||
@@ -55,9 +55,6 @@
|
||||
.icon-kick:before {
|
||||
content: "\e904";
|
||||
}
|
||||
.icon-menu:before {
|
||||
content: "\e91f";
|
||||
}
|
||||
.icon-menu-up:before {
|
||||
content: "\e91f";
|
||||
}
|
||||
@@ -70,9 +67,6 @@
|
||||
.icon-exit-full-screen:before {
|
||||
content: "\e90c";
|
||||
}
|
||||
.icon-star:before {
|
||||
content: "\e916";
|
||||
}
|
||||
.icon-star-full:before {
|
||||
content: "\e90a";
|
||||
}
|
||||
@@ -109,6 +103,12 @@
|
||||
.icon-settings:before {
|
||||
content: "\e915";
|
||||
}
|
||||
.icon-star:before {
|
||||
content: "\e916";
|
||||
}
|
||||
.icon-switch-camera:before {
|
||||
content: "\e921";
|
||||
}
|
||||
.icon-share-desktop:before {
|
||||
content: "\e917";
|
||||
}
|
||||
@@ -133,7 +133,6 @@
|
||||
.icon-recEnable:before {
|
||||
content: "\e614";
|
||||
}
|
||||
// FIXME not used anymore - consider removing in the next font update
|
||||
.icon-presentation:before {
|
||||
content: "\e603";
|
||||
}
|
||||
}
|
||||
@@ -14,13 +14,13 @@
|
||||
/*-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);*/
|
||||
/*box-shadow: 0 5px 10px rgba(0, 0, 0, 0.4);*/
|
||||
white-space: normal;
|
||||
margin-top: -13px;
|
||||
margin-top: -$popoverMenuPadding;
|
||||
|
||||
&__menu-padding {
|
||||
height: 10px;
|
||||
height: $popoverMenuPadding;
|
||||
width: 100px;
|
||||
position: absolute;
|
||||
bottom: -13px;
|
||||
bottom: -$popoverMenuPadding;
|
||||
}
|
||||
|
||||
&__showmore {
|
||||
|
||||
@@ -150,4 +150,12 @@
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a semi-transparent background with the given color and alpha
|
||||
* (opacity) value.
|
||||
*/
|
||||
@mixin transparentBg($color, $alpha) {
|
||||
background-color: rgba(red($color), green($color), blue($color), $alpha);
|
||||
}
|
||||
@@ -6,7 +6,6 @@
|
||||
padding: 0;
|
||||
margin: 2px 0;
|
||||
bottom: 0;
|
||||
width: 100px;
|
||||
height: auto;
|
||||
|
||||
&:first-child {
|
||||
@@ -66,4 +65,9 @@
|
||||
|
||||
span.remotevideomenu:hover ul.popupmenu, ul.popupmenu:hover {
|
||||
display:block !important;
|
||||
}
|
||||
}
|
||||
|
||||
.remote-control-spinner {
|
||||
top: 6px;
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
@@ -14,9 +14,9 @@ $defaultToolbarSize: 50px;
|
||||
|
||||
// Video layout.
|
||||
$thumbnailToolbarHeight: 22px;
|
||||
$thumbnailIndicatorBorder: 0;
|
||||
$thumbnailIndicatorSize: 3em;
|
||||
$thumbnailVideoMargin: 2px;
|
||||
$thumbnailIndicatorBorder: 2px;
|
||||
$thumbnailIndicatorSize: $thumbnailToolbarHeight;
|
||||
$thumbnailVideoMargin: 5px;
|
||||
$thumbnailsBorder: 2px;
|
||||
$thumbnailVideoBorder: 2px;
|
||||
$hideFilmstripButtonWidth: 17px;
|
||||
@@ -43,14 +43,14 @@ $toolbarBadgeColor: #FFFFFF;
|
||||
$toolbarToggleBackground: #12499C;
|
||||
$splitterToolbarButtonMargin: 18px;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Main controls
|
||||
* TODO: looks like we don't use it
|
||||
*/
|
||||
$inputSemiBackground: rgba(132, 132, 132, .8);
|
||||
$inputLightBackground: #EBEBEB;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Video layout
|
||||
*/
|
||||
$videoThumbnailHovered: rgba(22, 94, 204, .4);
|
||||
@@ -95,10 +95,10 @@ $notificationWidth: 215px;
|
||||
/**
|
||||
* Misc.
|
||||
*/
|
||||
$borderRadius: 3px;
|
||||
$borderRadius: 4px;
|
||||
$defaultWatermarkLink: '../images/watermark.png';
|
||||
$sidebarWidth: 220px;
|
||||
|
||||
$popoverMenuPadding: 13px;
|
||||
$happySoftwareBackground: transparent;
|
||||
|
||||
/**
|
||||
@@ -126,4 +126,4 @@ $defaultDarkFontColor: #000;
|
||||
$inputControlEmColor: #f29424;
|
||||
//buttons
|
||||
$linkFontColor: #489afe;
|
||||
$linkHoverFontColor: #287ade;
|
||||
$linkHoverFontColor: #287ade;
|
||||
|
||||
@@ -18,9 +18,10 @@
|
||||
|
||||
&__background {
|
||||
@include topLeft();
|
||||
background-color: black;
|
||||
border-radius: $borderRadius - 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -106,11 +107,12 @@
|
||||
}
|
||||
|
||||
&__hoverOverlay {
|
||||
background: rgba(0,0,0,.6);
|
||||
border-radius: $borderRadius;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
visibility: hidden;
|
||||
background: rgba(0,0,0,.6);
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
@@ -128,8 +130,8 @@
|
||||
|
||||
#localVideoWrapper>video,
|
||||
#localVideoWrapper>object {
|
||||
border-radius: $borderRadius !important;
|
||||
cursor: hand;
|
||||
border-radius:1px !important;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
@@ -211,6 +213,7 @@
|
||||
|
||||
.videocontainer .displayname {
|
||||
pointer-events: none;
|
||||
padding: 0 3px 0 3px;
|
||||
}
|
||||
|
||||
.videocontainer .editdisplayname {
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
float: left;
|
||||
}
|
||||
|
||||
#domain_name
|
||||
.domain-name
|
||||
{
|
||||
float: left;
|
||||
height: 55px;
|
||||
@@ -61,37 +61,51 @@
|
||||
color: $defaultDarkColor;
|
||||
}
|
||||
|
||||
#enter_room_field {
|
||||
font-size: 15px;
|
||||
border: none;
|
||||
-webkit-appearance: none;
|
||||
width: 228px;
|
||||
height: 55px;
|
||||
line-height: 55px;
|
||||
font-weight: 500;
|
||||
box-shadow: none;
|
||||
float: left;
|
||||
background-color: #FFFFFF;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
.enter-room {
|
||||
&__field {
|
||||
font-size: 15px;
|
||||
border: none;
|
||||
-webkit-appearance: none;
|
||||
width: 228px;
|
||||
height: 55px;
|
||||
line-height: 55px;
|
||||
font-weight: 500;
|
||||
box-shadow: none;
|
||||
float: left;
|
||||
background-color: #FFFFFF;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#enter_room_button {
|
||||
width: 73px;
|
||||
height: 45px;
|
||||
background-color: #21B9FC;
|
||||
moz-border-radius: 1px;
|
||||
-webkit-border-radius: 1px;
|
||||
color: #ffffff;
|
||||
font-weight: 600;
|
||||
border: none;
|
||||
margin-top: 5px;
|
||||
font-size: 19px;
|
||||
padding-top: 6px;
|
||||
outline: none;
|
||||
float:left;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
&__reload {
|
||||
display: block;
|
||||
width: 30px;
|
||||
color: #acacac;
|
||||
font-size: 1.9em;
|
||||
line-height: 55px;
|
||||
z-index: 3;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&__button {
|
||||
width: 73px;
|
||||
height: 45px;
|
||||
background-color: #21B9FC;
|
||||
moz-border-radius: 1px;
|
||||
-webkit-border-radius: 1px;
|
||||
color: #ffffff;
|
||||
font-weight: 600;
|
||||
border: none;
|
||||
margin-top: 5px;
|
||||
font-size: 19px;
|
||||
padding-top: 6px;
|
||||
outline: none;
|
||||
float:left;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
|
||||
#enter_room_container {
|
||||
@@ -184,16 +198,3 @@
|
||||
line-height: 22px;
|
||||
font-weight: 200;
|
||||
}
|
||||
|
||||
#reload_roomname
|
||||
{
|
||||
width: 30px;
|
||||
color: #acacac;
|
||||
font-size: 1.9em;
|
||||
line-height: 55px;
|
||||
z-index: 3;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -82,4 +82,8 @@
|
||||
color: $linkHoverFontColor;
|
||||
}
|
||||
}
|
||||
|
||||
&_center {
|
||||
float: none !important;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
.overlay {
|
||||
&__container {
|
||||
&__container,
|
||||
&__container-light {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
@@ -9,6 +10,10 @@
|
||||
background: $defaultBackground;
|
||||
}
|
||||
|
||||
&__container-light {
|
||||
@include transparentBg($defaultBackground, 0.7);
|
||||
}
|
||||
|
||||
&__content {
|
||||
position: absolute;
|
||||
margin: 0 auto;
|
||||
|
||||
@@ -13,5 +13,4 @@
|
||||
#reloadProgressBar {
|
||||
width: 180px;
|
||||
margin: 5px auto;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -85,6 +85,9 @@ $popupMenuSelectedItemBackground: rgba(256, 256, 256, .2);
|
||||
// Toolbar
|
||||
$splitterColor: #ccc;
|
||||
|
||||
// Thumbnail
|
||||
$thumbnailBorderColor: rgba(71, 71, 71, .7);
|
||||
|
||||
/**
|
||||
* Forms
|
||||
*/
|
||||
|
||||
2
debian/changelog
vendored
2
debian/changelog
vendored
@@ -1,4 +1,4 @@
|
||||
jitsi-meet (1.0.1-1) unstable; urgency=low
|
||||
jitsi-meet-web (1.0.1-1) unstable; urgency=low
|
||||
|
||||
* Initial release. (Closes: #760485)
|
||||
|
||||
|
||||
25
debian/control
vendored
25
debian/control
vendored
@@ -1,4 +1,4 @@
|
||||
Source: jitsi-meet
|
||||
Source: jitsi-meet-web
|
||||
Section: net
|
||||
Priority: extra
|
||||
Maintainer: Jitsi Team <dev@jitsi.org>
|
||||
@@ -7,10 +7,10 @@ Build-Depends: debhelper (>= 8.0.0)
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: https://jitsi.org/meet
|
||||
|
||||
Package: jitsi-meet
|
||||
Package: jitsi-meet-web
|
||||
Replaces: jitsi-meet (<= 1.0.1525-1)
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, jitsi-videobridge, jitsi-meet-prosody,
|
||||
openjdk-8-jre-headless | nginx
|
||||
Depends: ${misc:Depends}
|
||||
Description: WebRTC JavaScript video conferences
|
||||
Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
|
||||
Videobridge to provide high quality, scalable video conferences.
|
||||
@@ -19,9 +19,24 @@ Description: WebRTC JavaScript video conferences
|
||||
forwarding and relaying, configured to work with jetty instance
|
||||
running embedded into Jitsi Videobridge
|
||||
|
||||
Package: jitsi-meet-web-config
|
||||
Architecture: all
|
||||
Depends: openssl, openjdk-8-jre-headless | nginx | apache2
|
||||
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.
|
||||
.
|
||||
It is a web interface to Jitsi Videobridge for audio and video
|
||||
forwarding and relaying, configured to work with jetty instance
|
||||
running embedded into Jitsi Videobridge or using a webserver Nginx or
|
||||
Apache2.
|
||||
.
|
||||
This package contains configuration for Nginx to be used with
|
||||
Jitsi Meet.
|
||||
|
||||
Package: jitsi-meet-prosody
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, openssl, prosody | prosody-trunk, jitsi-videobridge, jicofo
|
||||
Depends: openssl, prosody | prosody-trunk
|
||||
Description: Prosody configuration for Jitsi Meet
|
||||
Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
|
||||
Videobridge to provide high quality, scalable video conferences.
|
||||
|
||||
4
debian/jitsi-meet-prosody.config
vendored
4
debian/jitsi-meet-prosody.config
vendored
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# Source debconf library.
|
||||
. /usr/share/debconf/confmodule
|
||||
62
debian/jitsi-meet-prosody.postinst
vendored
62
debian/jitsi-meet-prosody.postinst
vendored
@@ -21,13 +21,49 @@ set -e
|
||||
case "$1" in
|
||||
configure)
|
||||
|
||||
. /etc/jitsi/videobridge/config
|
||||
|
||||
. /etc/jitsi/jicofo/config
|
||||
|
||||
# loading debconf
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
# try to get host from jitsi-videobridge
|
||||
db_get jitsi-videobridge/jvb-hostname
|
||||
if [ -z "$RET" ] ; then
|
||||
# server hostname
|
||||
db_set jitsi-videobridge/jvb-hostname "localhost"
|
||||
db_input critical jitsi-videobridge/jvb-hostname || true
|
||||
db_go
|
||||
fi
|
||||
JVB_HOSTNAME="$RET"
|
||||
|
||||
db_get jitsi-videobridge/jvbsecret
|
||||
if [ -z "$RET" ] ; then
|
||||
db_input critical jitsi-videobridge/jvbsecret || true
|
||||
db_go
|
||||
fi
|
||||
JVB_SECRET="$RET"
|
||||
|
||||
db_get jicofo/jicofo-authuser
|
||||
if [ -z "$RET" ] ; then
|
||||
db_input critical jicofo/jicofo-authuser || true
|
||||
db_go
|
||||
fi
|
||||
JICOFO_AUTH_USER="$RET"
|
||||
|
||||
db_get jicofo/jicofo-authpassword
|
||||
if [ -z "$RET" ] ; then
|
||||
db_input critical jicofo/jicofo-authpassword || true
|
||||
db_go
|
||||
fi
|
||||
JICOFO_AUTH_PASSWORD="$RET"
|
||||
|
||||
db_get jicofo/jicofosecret
|
||||
if [ -z "$RET" ] ; then
|
||||
db_input critical jicofo/jicofosecret || true
|
||||
db_go
|
||||
fi
|
||||
JICOFO_SECRET="$RET"
|
||||
|
||||
JICOFO_AUTH_DOMAIN="auth.$JVB_HOSTNAME"
|
||||
|
||||
# detect dpkg-reconfigure, just delete old links
|
||||
db_get jitsi-meet-prosody/jvb-hostname
|
||||
JVB_HOSTNAME_OLD=$RET
|
||||
@@ -38,7 +74,7 @@ case "$1" in
|
||||
fi
|
||||
|
||||
# stores the hostname so we will reuse it later, like in purge
|
||||
db_set jitsi-meet-prosody/jvb-hostname $JVB_HOSTNAME
|
||||
db_set jitsi-meet-prosody/jvb-hostname "$JVB_HOSTNAME"
|
||||
|
||||
# and we're done with debconf
|
||||
db_stop
|
||||
@@ -68,21 +104,21 @@ case "$1" in
|
||||
fi
|
||||
fi
|
||||
# UPGRADE to server side focus check if focus is configured
|
||||
if [ -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"auth.$JVB_HOSTNAME\"" $PROSODY_HOST_CONFIG; then
|
||||
echo -e "\nVirtualHost \"auth.$JVB_HOSTNAME\"" >> $PROSODY_HOST_CONFIG
|
||||
if [ -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"$JICOFO_AUTH_DOMAIN\"" $PROSODY_HOST_CONFIG; then
|
||||
echo -e "\nVirtualHost \"$JICOFO_AUTH_DOMAIN\"" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " authentication = \"internal_plain\"\n" >> $PROSODY_HOST_CONFIG
|
||||
sed -i "s/Component \"conference.$JVB_HOSTNAME\" \"muc\"/Component \"conference.$JVB_HOSTNAME\" \"muc\"\nadmins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\" }\n/g" $PROSODY_HOST_CONFIG
|
||||
sed -i "s/Component \"conference.$JVB_HOSTNAME\" \"muc\"/Component \"conference.$JVB_HOSTNAME\" \"muc\"\nadmins = { \"$JICOFO_AUTH_USER@$JICOFO_AUTH_DOMAIN\" }\n/g" $PROSODY_HOST_CONFIG
|
||||
echo -e "Component \"focus.$JVB_HOSTNAME\"" >> $PROSODY_HOST_CONFIG
|
||||
echo -e " component_secret=\"$JICOFO_SECRET\"\n" >> $PROSODY_HOST_CONFIG
|
||||
PROSODY_CREATE_JICOFO_USER="true"
|
||||
# UPGRADE to server side focus on old config(/etc/prosody/prosody.cfg.lua)
|
||||
elif [ ! -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"auth.$JVB_HOSTNAME\"" $PROSODY_CONFIG_OLD; then
|
||||
echo -e "\nVirtualHost \"auth.$JVB_HOSTNAME\"" >> $PROSODY_CONFIG_OLD
|
||||
elif [ ! -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"$JICOFO_AUTH_DOMAIN\"" $PROSODY_CONFIG_OLD; then
|
||||
echo -e "\nVirtualHost \"$JICOFO_AUTH_DOMAIN\"" >> $PROSODY_CONFIG_OLD
|
||||
echo -e " authentication = \"internal_plain\"\n" >> $PROSODY_CONFIG_OLD
|
||||
if ! grep -q "admins = { }" $PROSODY_CONFIG_OLD; then
|
||||
echo -e "admins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\" }\n" >> $PROSODY_CONFIG_OLD
|
||||
echo -e "admins = { \"$JICOFO_AUTH_USER@$JICOFO_AUTH_DOMAIN\" }\n" >> $PROSODY_CONFIG_OLD
|
||||
else
|
||||
sed -i "s/admins = { }/admins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\" }\n/g" $PROSODY_CONFIG_OLD
|
||||
sed -i "s/admins = { }/admins = { \"$JICOFO_AUTH_USER@$JICOFO_AUTH_DOMAIN\" }\n/g" $PROSODY_CONFIG_OLD
|
||||
fi
|
||||
echo -e "Component \"focus.$JVB_HOSTNAME\"" >> $PROSODY_CONFIG_OLD
|
||||
echo -e " component_secret=\"$JICOFO_SECRET\"\n" >> $PROSODY_CONFIG_OLD
|
||||
@@ -109,8 +145,6 @@ case "$1" in
|
||||
|
||||
if [ "$PROSODY_CONFIG_PRESENT" = "false" ]; then
|
||||
invoke-rc.d prosody restart
|
||||
invoke-rc.d jitsi-videobridge restart
|
||||
invoke-rc.d jicofo restart
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
3
debian/jitsi-meet-prosody.postrm
vendored
3
debian/jitsi-meet-prosody.postrm
vendored
@@ -36,6 +36,9 @@ case "$1" in
|
||||
rm -f /etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua
|
||||
rm -f /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua
|
||||
fi
|
||||
|
||||
# Clear the debconf variable
|
||||
db_purge
|
||||
;;
|
||||
|
||||
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
|
||||
26
debian/jitsi-meet-prosody.templates
vendored
26
debian/jitsi-meet-prosody.templates
vendored
@@ -2,3 +2,29 @@ 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.
|
||||
|
||||
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.
|
||||
|
||||
Template: jitsi-videobridge/jvbsecret
|
||||
Type: password
|
||||
_Description: Jitsi Videobridge Component secret:
|
||||
The secret used by Jitsi Videobridge to connect to xmpp server as component.
|
||||
|
||||
Template: jicofo/jicofo-authuser
|
||||
Type: string
|
||||
Default: focus
|
||||
_Description: Jicofo username:
|
||||
The jicofo needs an authenticated admin user to connect to xmpp server.
|
||||
|
||||
Template: jicofo/jicofo-authpassword
|
||||
Type: password
|
||||
_Description: Jicofo user password:
|
||||
The secret used to connect to xmpp server as jicofo user.
|
||||
|
||||
Template: jicofo/jicofosecret
|
||||
Type: password
|
||||
_Description: Jicofo Component secret:
|
||||
The secret used to connect to xmpp server as component
|
||||
|
||||
17
debian/jitsi-meet-tokens.postinst
vendored
17
debian/jitsi-meet-tokens.postinst
vendored
@@ -21,17 +21,12 @@ set -e
|
||||
case "$1" in
|
||||
configure)
|
||||
|
||||
if [ -f "/etc/jitsi/videobridge/config" ] ; then
|
||||
. /etc/jitsi/videobridge/config
|
||||
fi
|
||||
|
||||
if [ -f "/etc/jitsi/jicofo/config" ] ; then
|
||||
. /etc/jitsi/jicofo/config
|
||||
fi
|
||||
|
||||
# loading debconf
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
db_get jitsi-meet-prosody/jvb-hostname
|
||||
JVB_HOSTNAME="$RET"
|
||||
|
||||
db_get jitsi-meet-tokens/appid
|
||||
if [ "$RET" = "false" ] ; then
|
||||
echo "Application ID is mandatory"
|
||||
@@ -45,14 +40,10 @@ case "$1" in
|
||||
fi
|
||||
APP_SECRET=$RET
|
||||
|
||||
# We can adjust Prosody config only if there is Jvb or Jicofo domain configured
|
||||
PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua"
|
||||
if [ ! -f "$PROSODY_HOST_CONFIG" ] ; then
|
||||
PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JICOFO_HOSTNAME.cfg.lua"
|
||||
fi
|
||||
|
||||
# Store config filename for purge
|
||||
db_set jitsi-meet-prosody/prosody_config $PROSODY_HOST_CONFIG
|
||||
db_set jitsi-meet-prosody/prosody_config "$PROSODY_HOST_CONFIG"
|
||||
|
||||
db_stop
|
||||
|
||||
|
||||
2
debian/jitsi-meet-tokens.postrm
vendored
2
debian/jitsi-meet-tokens.postrm
vendored
@@ -52,6 +52,8 @@ case "$1" in
|
||||
;;
|
||||
|
||||
purge)
|
||||
# Clear the debconf variable
|
||||
db_purge
|
||||
;;
|
||||
|
||||
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
README.md
|
||||
doc/debian/jitsi-meet/jitsi-meet.example
|
||||
doc/debian/jitsi-meet/jitsi-meet.example-apache
|
||||
doc/debian/jitsi-meet/README
|
||||
config.js
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# postinst script for jitsi-meet
|
||||
# postinst script for jitsi-meet-web-config
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
@@ -20,13 +20,19 @@ set -e
|
||||
case "$1" in
|
||||
configure)
|
||||
|
||||
JVB_ETC_CONFIG="/etc/jitsi/videobridge/config"
|
||||
|
||||
. $JVB_ETC_CONFIG
|
||||
|
||||
# loading debconf
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
# try to get host from jitsi-videobridge
|
||||
db_get jitsi-videobridge/jvb-hostname
|
||||
if [ -z "$RET" ] ; then
|
||||
# server hostname
|
||||
db_set jitsi-videobridge/jvb-hostname "localhost"
|
||||
db_input critical jitsi-videobridge/jvb-hostname || true
|
||||
db_go
|
||||
fi
|
||||
JVB_HOSTNAME="$RET"
|
||||
|
||||
# detect dpkg-reconfigure
|
||||
RECONFIGURING="false"
|
||||
db_get jitsi-meet/jvb-hostname
|
||||
@@ -49,22 +55,54 @@ case "$1" in
|
||||
if [ "$NGINX_INSTALL_CHECK" = "installed" ] || [ "$NGINX_INSTALL_CHECK" = "unpacked" ] ; then
|
||||
FORCE_NGINX="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"
|
||||
fi
|
||||
|
||||
# SSL for nginx
|
||||
db_get jitsi-meet/cert-choice
|
||||
CERT_CHOICE="$RET"
|
||||
UPLOADED_CERT_CHOICE="A certificate is available and the files are uploaded on the server"
|
||||
# if first time config ask for certs, or if we are reconfiguring
|
||||
if [ -z "$JVB_HOSTNAME_OLD" ] || [ "$RECONFIGURING" = "true" ] ; then
|
||||
# SSL for nginx
|
||||
db_get jitsi-meet/cert-choice
|
||||
CERT_CHOICE="$RET"
|
||||
UPLOADED_CERT_CHOICE="A certificate is available and the files are uploaded on the server"
|
||||
|
||||
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
|
||||
db_set jitsi-meet/cert-path-key "/etc/ssl/$JVB_HOSTNAME.key"
|
||||
db_input critical jitsi-meet/cert-path-key || true
|
||||
db_go
|
||||
db_get jitsi-meet/cert-path-key
|
||||
CERT_KEY="$RET"
|
||||
db_set jitsi-meet/cert-path-crt "/etc/ssl/$JVB_HOSTNAME.crt"
|
||||
db_input critical jitsi-meet/cert-path-crt || true
|
||||
db_go
|
||||
db_get jitsi-meet/cert-path-crt
|
||||
CERT_CRT="$RET"
|
||||
else
|
||||
# create self-signed certs
|
||||
CERT_KEY="/etc/jitsi/meet/$JVB_HOSTNAME.key"
|
||||
CERT_CRT="/etc/jitsi/meet/$JVB_HOSTNAME.crt"
|
||||
HOST="$( (hostname -s; echo localhost) | head -n 1)"
|
||||
DOMAIN="$( (hostname -d; echo localdomain) | head -n 1)"
|
||||
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \
|
||||
"/O=$DOMAIN/OU=$HOST/CN=$JVB_HOSTNAME/emailAddress=webmaster@$HOST.$DOMAIN" \
|
||||
-keyout $CERT_KEY \
|
||||
-out $CERT_CRT
|
||||
fi
|
||||
fi
|
||||
|
||||
# jitsi meet
|
||||
JITSI_MEET_CONFIG="/etc/jitsi/meet/$JVB_HOSTNAME-config.js"
|
||||
if [ ! -f $JITSI_MEET_CONFIG ] ; then
|
||||
cp /usr/share/doc/jitsi-meet/config.js $JITSI_MEET_CONFIG
|
||||
cp /usr/share/doc/jitsi-meet-web-config/config.js $JITSI_MEET_CONFIG
|
||||
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" $JITSI_MEET_CONFIG
|
||||
fi
|
||||
|
||||
# this is new install let's configure jvb to serve meet
|
||||
if [[ -z $FORCE_NGINX && ( -z $JVB_HOSTNAME_OLD || "$JVB_SERVE" = "true" ) ]] ; then
|
||||
# no-nginx, no-apache installed on machine, this is new install or reconfiguring old one which have jvb_serve set
|
||||
if [[ -z "$FORCE_NGINX" && -z "$FORCE_APACHE" && ( -z "$JVB_HOSTNAME_OLD" || ( "$JVB_SERVE" = "true" && "$RECONFIGURING" = "true" )) ]] ; then
|
||||
|
||||
JVB_ETC_CONFIG="/etc/jitsi/videobridge/config"
|
||||
JVB_CONFIG="/etc/jitsi/videobridge/sip-communicator.properties"
|
||||
|
||||
# this is a reconfigure, lets just delete old links
|
||||
@@ -89,6 +127,7 @@ case "$1" in
|
||||
echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.resourceBase=/usr/share/jitsi-meet" >> $JVB_CONFIG
|
||||
echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.alias./config.js=/etc/jitsi/meet/$JVB_HOSTNAME-config.js" >> $JVB_CONFIG
|
||||
echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.alias./interface_config.js=/usr/share/jitsi-meet/interface_config.js" >> $JVB_CONFIG
|
||||
echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.alias./logging_config.js=/usr/share/jitsi-meet/logging_config.js" >> $JVB_CONFIG
|
||||
echo "org.jitsi.videobridge.rest.jetty.RewriteHandler.regex=^/([a-zA-Z0-9]+)$" >> $JVB_CONFIG
|
||||
echo "org.jitsi.videobridge.rest.jetty.RewriteHandler.replacement=/" >> $JVB_CONFIG
|
||||
echo "org.jitsi.videobridge.rest.jetty.SSIResourceHandler.paths=/" >> $JVB_CONFIG
|
||||
@@ -112,34 +151,19 @@ case "$1" in
|
||||
chmod 755 /etc/authbind/byport/443
|
||||
fi
|
||||
|
||||
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
|
||||
# create jks from uploaded certs
|
||||
openssl pkcs12 -export \
|
||||
-in /etc/ssl/$JVB_HOSTNAME.crt \
|
||||
-inkey /etc/ssl/$JVB_HOSTNAME.key \
|
||||
-passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
|
||||
keytool -importkeystore \
|
||||
-srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
|
||||
-destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
|
||||
-srcstoretype pkcs12 \
|
||||
-noprompt -storepass changeit -srcstorepass changeit
|
||||
else
|
||||
# create jks from self-signed certs
|
||||
openssl pkcs12 -export \
|
||||
-in /var/lib/prosody/$JVB_HOSTNAME.crt \
|
||||
-inkey /var/lib/prosody/$JVB_HOSTNAME.key \
|
||||
-passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
|
||||
keytool -importkeystore \
|
||||
-srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
|
||||
-destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
|
||||
-srcstoretype pkcs12 \
|
||||
-noprompt -storepass changeit -srcstorepass changeit
|
||||
fi
|
||||
CERT_P12="/etc/jitsi/videobridge/$JVB_HOSTNAME.p12"
|
||||
CERT_JKS="/etc/jitsi/videobridge/$JVB_HOSTNAME.jks"
|
||||
# create jks from certs
|
||||
openssl pkcs12 -export \
|
||||
-in $CERT_CRT -inkey $CERT_KEY -passout pass:changeit > $CERT_P12
|
||||
keytool -importkeystore -destkeystore $CERT_JKS \
|
||||
-srckeystore $CERT_P12 -srcstoretype pkcs12 \
|
||||
-noprompt -storepass changeit -srcstorepass changeit
|
||||
|
||||
db_set jitsi-meet/jvb-serve "true"
|
||||
|
||||
invoke-rc.d jitsi-videobridge restart
|
||||
elif [[ "$FORCE_NGINX" = "true" || ( -n $JVB_HOSTNAME_OLD && "$JVB_SERVE" = "false" ) ]] ; then
|
||||
elif [[ "$FORCE_NGINX" = "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
|
||||
@@ -148,7 +172,7 @@ case "$1" in
|
||||
|
||||
# nginx conf
|
||||
if [ ! -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf ] ; then
|
||||
cp /usr/share/doc/jitsi-meet/jitsi-meet.example /etc/nginx/sites-available/$JVB_HOSTNAME.conf
|
||||
cp /usr/share/doc/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
|
||||
fi
|
||||
@@ -156,28 +180,47 @@ case "$1" in
|
||||
fi
|
||||
|
||||
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
|
||||
db_set jitsi-meet/cert-path-key "/etc/ssl/$JVB_HOSTNAME.key"
|
||||
db_input critical jitsi-meet/cert-path-key || true
|
||||
db_go
|
||||
db_get jitsi-meet/cert-path-key
|
||||
CERT_KEY="$RET"
|
||||
db_set jitsi-meet/cert-path-crt "/etc/ssl/$JVB_HOSTNAME.crt"
|
||||
db_input critical jitsi-meet/cert-path-crt || true
|
||||
db_go
|
||||
db_get jitsi-meet/cert-path-crt
|
||||
CERT_CRT="$RET"
|
||||
# replace self-signed certificate paths with user provided ones
|
||||
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\ \/var\/lib\/prosody\/.*key/ssl_certificate_key\ $CERT_KEY_ESC/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
|
||||
CERT_CRT_ESC=$(echo $CERT_CRT | sed 's/\./\\\./g')
|
||||
CERT_CRT_ESC=$(echo $CERT_CRT_ESC | sed 's/\//\\\//g')
|
||||
sed -i "s/ssl_certificate\ \/var\/lib\/prosody\/.*crt/ssl_certificate\ $CERT_CRT_ESC/g" \
|
||||
sed -i "s/ssl_certificate\ \/etc\/jitsi\/meet\/.*crt/ssl_certificate\ $CERT_CRT_ESC/g" \
|
||||
/etc/nginx/sites-available/$JVB_HOSTNAME.conf
|
||||
fi
|
||||
|
||||
invoke-rc.d nginx reload
|
||||
elif [[ "$FORCE_APACHE" = "true" && ( -z "$JVB_HOSTNAME_OLD" || "$RECONFIGURING" = "true" ) ]] ; then
|
||||
# this is a reconfigure, lets just delete old links
|
||||
if [ "$RECONFIGURING" = "true" ] ; then
|
||||
a2dissite $JVB_HOSTNAME_OLD.conf
|
||||
rm -f /etc/jitsi/meet/$JVB_HOSTNAME_OLD-config.js
|
||||
fi
|
||||
|
||||
# apache2 config
|
||||
if [ ! -f /etc/apache2/sites-available/$JVB_HOSTNAME.conf ] ; then
|
||||
# when creating new config, make sure all needed modules are enabled
|
||||
a2enmod rewrite ssl headers proxy_http include
|
||||
cp /usr/share/doc/jitsi-meet-web-config/jitsi-meet.example-apache /etc/apache2/sites-available/$JVB_HOSTNAME.conf
|
||||
a2ensite $JVB_HOSTNAME.conf
|
||||
sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" /etc/apache2/sites-available/$JVB_HOSTNAME.conf
|
||||
fi
|
||||
|
||||
if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
|
||||
# replace self-signed certificate paths with user provided ones
|
||||
CERT_KEY_ESC=$(echo $CERT_KEY | sed 's/\./\\\./g')
|
||||
CERT_KEY_ESC=$(echo $CERT_KEY_ESC | sed 's/\//\\\//g')
|
||||
sed -i "s/SSLCertificateKeyFile\ \/etc\/jitsi\/meet\/.*key/SSLCertificateKeyFile\ $CERT_KEY_ESC/g" \
|
||||
/etc/apache2/sites-available/$JVB_HOSTNAME.conf
|
||||
CERT_CRT_ESC=$(echo $CERT_CRT | sed 's/\./\\\./g')
|
||||
CERT_CRT_ESC=$(echo $CERT_CRT_ESC | sed 's/\//\\\//g')
|
||||
sed -i "s/SSLCertificateFile\ \/etc\/jitsi\/meet\/.*crt/SSLCertificateFile\ $CERT_CRT_ESC/g" \
|
||||
/etc/apache2/sites-available/$JVB_HOSTNAME.conf
|
||||
fi
|
||||
|
||||
invoke-rc.d apache2 reload
|
||||
fi
|
||||
|
||||
# and we're done with debconf
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# postrm script for jitsi-meet
|
||||
# postrm script for jitsi-meet-web-config
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
@@ -27,6 +27,9 @@ case "$1" in
|
||||
if [ -x "/etc/init.d/nginx" ]; then
|
||||
invoke-rc.d nginx reload
|
||||
fi
|
||||
if [ -x "/etc/init.d/apache2" ]; then
|
||||
invoke-rc.d apache2 reload
|
||||
fi
|
||||
;;
|
||||
purge)
|
||||
db_get jitsi-meet/jvb-hostname
|
||||
@@ -35,9 +38,15 @@ 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 /etc/apache2/sites-available/$JVB_HOSTNAME.conf
|
||||
rm -f /etc/apache2/sites-enabled/$JVB_HOSTNAME.conf
|
||||
rm -f /etc/jitsi/videobridge/$JVB_HOSTNAME.jks
|
||||
rm -f /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
|
||||
rm -f /etc/jitsi/meet/$JVB_HOSTNAME.key
|
||||
rm -f /etc/jitsi/meet/$JVB_HOSTNAME.crt
|
||||
fi
|
||||
# Clear the debconf variable
|
||||
db_purge
|
||||
;;
|
||||
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
@@ -30,3 +30,8 @@ Type: boolean
|
||||
Default: false
|
||||
_Description: for internal use
|
||||
for internal use.
|
||||
|
||||
Template: jitsi-videobridge/jvb-hostname
|
||||
Type: string
|
||||
_Description: Hostname:
|
||||
The Jitsi Meet web config package needs the DNS hostname of your instance.
|
||||
1
debian/jitsi-meet-web.docs
vendored
Normal file
1
debian/jitsi-meet-web.docs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
README.md
|
||||
2
debian/po/POTFILES.in
vendored
2
debian/po/POTFILES.in
vendored
@@ -1 +1 @@
|
||||
[type: gettext/rfc822deb] jitsi-meet.templates
|
||||
[type: gettext/rfc822deb] jitsi-meet-web-config.templates
|
||||
|
||||
53
debian/po/templates.pot
vendored
53
debian/po/templates.pot
vendored
@@ -1,10 +1,14 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the jitsi-meet-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: jitsi-meet\n"
|
||||
"Report-Msgid-Bugs-To: jitsi-meet@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2014-09-03 17:26+0200\n"
|
||||
"Project-Id-Version: jitsi-meet-web\n"
|
||||
"Report-Msgid-Bugs-To: jitsi-meet-web@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2016-11-15 22:39+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -15,25 +19,25 @@ msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Choices
|
||||
#: ../jitsi-meet.templates:1001
|
||||
#: ../jitsi-meet-web-config.templates:1001
|
||||
msgid "Self-signed certificate will be generated"
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Choices
|
||||
#: ../jitsi-meet.templates:1001
|
||||
#: ../jitsi-meet-web-config.templates:1001
|
||||
msgid "A certificate is available and the files are uploaded on the server"
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:1002
|
||||
#: ../jitsi-meet-web-config.templates:1002
|
||||
msgid "SSL certificate for the Jitsi Meet instance"
|
||||
msgstr ""
|
||||
|
||||
#. Type: select
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:1002
|
||||
#: ../jitsi-meet-web-config.templates:1002
|
||||
msgid ""
|
||||
"Jitsi Meet is best to be set up with an SSL certificate. Having no "
|
||||
"certificate, a self-signed one will be generated. Having a certificate "
|
||||
@@ -44,13 +48,13 @@ msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:2001
|
||||
#: ../jitsi-meet-web-config.templates:2001
|
||||
msgid "Full local server path to the SSL key file:"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:2001
|
||||
#: ../jitsi-meet-web-config.templates:2001
|
||||
msgid ""
|
||||
"The full path to the SSL key file on the server. If it has not been "
|
||||
"uploaded, now is a good time to do so."
|
||||
@@ -58,13 +62,13 @@ msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:3001
|
||||
#: ../jitsi-meet-web-config.templates:3001
|
||||
msgid "Full local server path to the SSL certificate file:"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:3001
|
||||
#: ../jitsi-meet-web-config.templates:3001
|
||||
msgid ""
|
||||
"The full path to the SSL certificate file on the server. If you haven't "
|
||||
"uploaded it, now is a good time to upload it in another console."
|
||||
@@ -72,27 +76,38 @@ msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:4001
|
||||
#: ../jitsi-meet-web-config.templates:4001
|
||||
msgid "The hostname of the current installation:"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:4001
|
||||
#: ../jitsi-meet-web-config.templates:4001
|
||||
msgid ""
|
||||
"The value for the hostname that is set in Jitsi Videobridge installation."
|
||||
msgstr ""
|
||||
|
||||
|
||||
#. Type: string
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:5001
|
||||
#: ../jitsi-meet-web-config.templates:5001
|
||||
msgid "for internal use"
|
||||
msgstr ""
|
||||
|
||||
#. Type: boolean
|
||||
#. Description
|
||||
#: ../jitsi-meet-web-config.templates:5001
|
||||
msgid "for internal use."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet.templates:5001
|
||||
msgid ""
|
||||
"Jitsi Videobridge installation can use its internal jetty to serve static meet pages."
|
||||
#: ../jitsi-meet-web-config.templates:6001
|
||||
msgid "Hostname:"
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../jitsi-meet-web-config.templates:6001
|
||||
msgid ""
|
||||
"The Jitsi Meet web config package needs the DNS hostname of your instance."
|
||||
msgstr ""
|
||||
|
||||
22
doc/api/api.html
Normal file
22
doc/api/api.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<html itemscope itemtype="http://schema.org/Product" prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/html">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<script src="https://meet.jit.si/external_api.js"></script>
|
||||
<script>
|
||||
var domain = "meet.jit.si";
|
||||
var room = "JitsiMeetAPIExample";
|
||||
var width = 700;
|
||||
var height = 180;
|
||||
var htmlElement = undefined;
|
||||
var configOverwrite = {};
|
||||
var interfaceConfigOverwrite = {
|
||||
filmStripOnly: true
|
||||
};
|
||||
var api = new JitsiMeetExternalAPI(domain, room, width, height,
|
||||
htmlElement, configOverwrite, interfaceConfigOverwrite);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -33,7 +33,7 @@ You can overwrite options set in config.js and interface_config.js. For example,
|
||||
```javascript
|
||||
var configOverwrite = {enableSimulcast: false};
|
||||
var interfaceConfigOverwrite = {filmStripOnly: true};
|
||||
var api = new JitsiMeetExternalAPI(domain, room, width, height, htmlElement, true, configOverwrite, interfaceConfigOverwrite);
|
||||
var api = new JitsiMeetExternalAPI(domain, room, width, height, htmlElement, configOverwrite, interfaceConfigOverwrite);
|
||||
```
|
||||
|
||||
Controlling embedded Jitsi Meet Conference
|
||||
@@ -43,48 +43,56 @@ You can control the embedded Jitsi Meet conference using the JitsiMeetExternalAP
|
||||
|
||||
You can send command to Jitsi Meet conference using ```executeCommand```.
|
||||
```
|
||||
api.executeCommand(command, arguments)
|
||||
api.executeCommand(command, ...arguments)
|
||||
```
|
||||
The ```command``` parameter is String object with the name of the command.
|
||||
The ```arguments``` parameter is array with the arguments required by the command.
|
||||
If no arguments are required by the command this parameter can be omitted or you can pass empty array.
|
||||
Currently we support the following commands:
|
||||
|
||||
|
||||
* **displayName** - sets the display name of the local participant. This command requires one argument -
|
||||
the new display name to be set
|
||||
```
|
||||
api.executeCommand('displayName', ['New Nickname']);
|
||||
api.executeCommand('displayName', 'New Nickname');
|
||||
```
|
||||
* **toggleAudio** - mutes / unmutes the audio for the local participant. No arguments are required.
|
||||
```
|
||||
api.executeCommand('toggleAudio', [])
|
||||
api.executeCommand('toggleAudio')
|
||||
```
|
||||
* **toggleVideo** - mutes / unmutes the video for the local participant. No arguments are required.
|
||||
```
|
||||
api.executeCommand('toggleVideo', [])
|
||||
api.executeCommand('toggleVideo')
|
||||
```
|
||||
* **toggleFilmStrip** - hides / shows the film strip. No arguments are required.
|
||||
```
|
||||
api.executeCommand('filmStrip', [])
|
||||
api.executeCommand('filmStrip')
|
||||
```
|
||||
* **toggleChat** - hides / shows the chat. No arguments are required.
|
||||
```
|
||||
api.executeCommand('toggleChat', [])
|
||||
api.executeCommand('toggleChat')
|
||||
```
|
||||
* **toggleContactList** - hides / shows the contact list. No arguments are required.
|
||||
```
|
||||
api.executeCommand('toggleContactList', [])
|
||||
api.executeCommand('toggleContactList')
|
||||
```
|
||||
|
||||
* **toggleShareScreen** - starts / stops the screen sharing. No arguments are required.
|
||||
```
|
||||
api.executeCommand('toggleShareScreen', [])
|
||||
api.executeCommand('toggleShareScreen')
|
||||
```
|
||||
|
||||
* **hangup** - Hangups the call. No arguments are required.
|
||||
```
|
||||
api.executeCommand('hangup', [])
|
||||
api.executeCommand('hangup')
|
||||
```
|
||||
|
||||
* **email** - Hangups the call. No arguments are required.
|
||||
```
|
||||
api.executeCommand('email', 'example@example.com')
|
||||
```
|
||||
|
||||
* **avatarUrl** - Hangups the call. No arguments are required.
|
||||
```
|
||||
api.executeCommand('avatarUrl', 'avatarUrl')
|
||||
```
|
||||
|
||||
You can also execute multiple commands using the method ```executeCommands```.
|
||||
@@ -146,14 +154,14 @@ The listener will receive object with the following structure:
|
||||
jid: jid //the jid of the participant
|
||||
}
|
||||
```
|
||||
* **video-conference-joined** - event notifications fired when the local user has joined the video conference.
|
||||
* **videoConferenceJoined** - event notifications fired when the local user has joined the video conference.
|
||||
The listener will receive object with the following structure:
|
||||
```
|
||||
{
|
||||
roomName: room //the room name of the conference
|
||||
}
|
||||
```
|
||||
* **video-conference-left** - event notifications fired when the local user has left the video conference.
|
||||
* **videoConferenceLeft** - event notifications fired when the local user has left the video conference.
|
||||
The listener will receive object with the following structure:
|
||||
```
|
||||
{
|
||||
@@ -194,6 +202,11 @@ If you want to remove more than one event you can use ```removeEventListeners```
|
||||
api.removeEventListeners(["incomingMessage", "outgoingMessageListener"]);
|
||||
```
|
||||
|
||||
You can get the number of participants in the conference with the following code:
|
||||
```
|
||||
var numberOfParticipants = api.getNumberOfParticipants();
|
||||
```
|
||||
|
||||
You can remove the embedded Jitsi Meet Conference with the following code:
|
||||
```
|
||||
api.dispose()
|
||||
@@ -15,8 +15,8 @@ server {
|
||||
|
||||
add_header Strict-Transport-Security "max-age=31536000";
|
||||
|
||||
ssl_certificate /var/lib/prosody/jitsi-meet.example.com.crt;
|
||||
ssl_certificate_key /var/lib/prosody/jitsi-meet.example.com.key;
|
||||
ssl_certificate /etc/jitsi/meet/jitsi-meet.example.com.crt;
|
||||
ssl_certificate_key /etc/jitsi/meet/jitsi-meet.example.com.key;
|
||||
|
||||
root /usr/share/jitsi-meet;
|
||||
index index.html index.htm;
|
||||
|
||||
43
doc/debian/jitsi-meet/jitsi-meet.example-apache
Normal file
43
doc/debian/jitsi-meet/jitsi-meet.example-apache
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName jitsi-meet.example.com
|
||||
Redirect permanent / https://jitsi-meet.example.com/
|
||||
RewriteEngine On
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
|
||||
ServerName jitsi-meet.example.com
|
||||
|
||||
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
|
||||
SSLEngine on
|
||||
SSLProxyEngine on
|
||||
SSLCertificateFile /etc/jitsi/meet/jitsi-meet.example.com.crt
|
||||
SSLCertificateKeyFile /etc/jitsi/meet/jitsi-meet.example.com.key
|
||||
SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"
|
||||
SSLHonorCipherOrder on
|
||||
Header set Strict-Transport-Security "max-age=31536000"
|
||||
|
||||
DocumentRoot "/usr/share/jitsi-meet"
|
||||
<Directory "/usr/share/jitsi-meet">
|
||||
Options Indexes MultiViews Includes FollowSymLinks
|
||||
AddOutputFilter Includes html
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
Alias "/config.js" "/etc/jitsi/meet/jitsi-meet.example.com-config.js"
|
||||
<Location /config.js>
|
||||
Require all granted
|
||||
</Location>
|
||||
|
||||
ProxyPreserveHost on
|
||||
ProxyPass /http-bind http://localhost:5280/http-bind/
|
||||
ProxyPassReverse /http-bind http://localhost:5280/http-bind/
|
||||
|
||||
RewriteEngine on
|
||||
RewriteRule ^/([a-zA-Z0-9]+)$ /index.html
|
||||
</VirtualHost>
|
||||
@@ -131,9 +131,9 @@ Or autostart it by adding the line in `/etc/rc.local`:
|
||||
|
||||
## Install Jitsi Conference Focus (jicofo)
|
||||
|
||||
Install JDK and Ant if missing:
|
||||
Install JDK and Maven if missing:
|
||||
```
|
||||
apt-get install default-jdk ant
|
||||
apt-get install default-jdk maven
|
||||
```
|
||||
|
||||
_NOTE: When installing on older Debian releases keep in mind that you need JDK >= 1.7._
|
||||
@@ -145,12 +145,14 @@ git clone https://github.com/jitsi/jicofo.git
|
||||
Build distribution package. Replace {os-name} with one of: 'lin', 'lin64', 'macosx', 'win', 'win64'.
|
||||
```sh
|
||||
cd jicofo
|
||||
ant dist.{os-name}
|
||||
mvn package -DskipTests -Dassembly.skipAssembly=false
|
||||
```
|
||||
Run jicofo:
|
||||
```sh
|
||||
cd dist/{os-name}'
|
||||
./jicofo.sh --domain=jitsi.example.com --secret=YOURSECRET2 --user_domain=auth.jitsi.example.com --user_name=focus --user_password=YOURSECRET3
|
||||
=======
|
||||
unzip target/jicofo-{os-name}-1.0-SNAPSHOT.zip
|
||||
cd jicofo-{os-name}-1.0-SNAPSHOT'
|
||||
./jicofo.sh --host=localhost --domain=jitsi.example.com --secret=YOURSECRET2 --user_domain=auth.jitsi.example.com --user_name=focus --user_password=YOURSECRET3
|
||||
```
|
||||
|
||||
## Deploy Jitsi Meet
|
||||
@@ -159,6 +161,8 @@ Checkout and configure Jitsi Meet:
|
||||
cd /srv
|
||||
git clone https://github.com/jitsi/jitsi-meet.git
|
||||
mv jitsi-meet/ jitsi.example.com
|
||||
npm install
|
||||
make
|
||||
```
|
||||
|
||||
Edit host names in `/srv/jitsi.example.com/config.js` (see also the example config file):
|
||||
@@ -167,11 +171,11 @@ var config = {
|
||||
hosts: {
|
||||
domain: 'jitsi.example.com',
|
||||
muc: 'conference.jitsi.example.com',
|
||||
bridge: 'jitsi-videobridge.jitsi.example.com'
|
||||
bridge: 'jitsi-videobridge.jitsi.example.com',
|
||||
focus: 'focus.jitsi.example.com'
|
||||
},
|
||||
useNicks: false,
|
||||
bosh: '//jitsi.example.com/http-bind', // FIXME: use xep-0156 for that
|
||||
desktopSharing: 'false' // Desktop sharing method. Can be set to 'ext', 'webrtc' or false to disable.
|
||||
//chromeExtensionId: 'diibjkoicjeejcmhdnailmkgecihlobk', // Id of desktop streamer Chrome extension
|
||||
//minChromeExtVersion: '0.1' // Required version of Chrome extension
|
||||
};
|
||||
|
||||
BIN
fonts/jitsi.eot
BIN
fonts/jitsi.eot
Binary file not shown.
@@ -14,7 +14,6 @@
|
||||
<glyph unicode="" glyph-name="connection-lost" horiz-adv-x="1414" d="M0 299.153h196.337v-187.951h-196.337v187.951zM271.842 480.372h196.337v-369.169h-196.337v369.169zM543.656 661.562h196.337v-550.36h-196.337v550.36zM815.47 842.766v-731.564h119.56c-14.589 33.025-23.125 71.503-23.232 111.943 0.132 86.42 38.697 163.851 99.656 216.468l0.348 403.153h-196.332zM1087.292 1024v-533.672c28.874 10.572 62.222 16.73 97.009 16.825 35.717-0.129 69.823-6.614 101.322-18.371l-1.999 535.218h-196.332zM1192.868 439.852c-0.009 0-0.020 0-0.031 0-122.247 0-221.351-98.447-221.372-219.896 0-0.007 0-0.014 0-0.021 0-121.467 99.111-219.935 221.372-219.935 0.011 0 0.021 0 0.032 0 122.248 0.014 221.345 98.477 221.345 219.935 0 0.007 0 0.013 0 0.020-0.021 121.441-99.11 219.883-221.345 219.897zM1194.706 372.607c87.601-0.006 158.614-69.787 158.614-155.866 0-0.006 0-0.012 0-0.019-0.022-86.062-71.026-155.822-158.614-155.828-87.588 0.006-158.593 69.766-158.615 155.826 0 0.007 0 0.014 0 0.020 0 86.079 71.013 155.86 158.613 155.866zM1286.795 355.682l48.348-52.528-236.375-217.567-48.348 52.528 236.375 217.567z" />
|
||||
<glyph unicode="" glyph-name="avatar" d="M512 204c106 0 200 56 256 138-2 84-172 132-256 132-86 0-254-48-256-132 56-82 150-138 256-138zM512 810c-70 0-128-58-128-128s58-128 128-128 128 58 128 128-58 128-128 128zM512 938c236 0 426-190 426-426s-190-426-426-426-426 190-426 426 190 426 426 426z" />
|
||||
<glyph unicode="" glyph-name="download" d="M726 470h-128v170h-172v-170h-128l214-214zM826 596c110-8 198-100 198-212 0-118-96-214-214-214h-554c-142 0-256 114-256 256 0 132 100 240 228 254 54 102 160 174 284 174 156 0 284-110 314-258z" />
|
||||
<glyph unicode="" glyph-name="autorenew" d="M800 694c34-52 54-116 54-182 0-188-154-342-342-342v-128l-170 172 170 170v-128c142 0 256 114 256 256 0 44-12 84-30 120zM512 768c-142 0-256-114-256-256 0-44 10-84 30-120l-62-62c-34 52-54 116-54 182 0 188 154 342 342 342v128l170-172-170-170v128z" />
|
||||
<glyph unicode="" glyph-name="kick" d="M512 810l284-426h-568zM214 298h596v-84h-596v84z" />
|
||||
<glyph unicode="" glyph-name="hangup" d="M512 640c-68 0-134-10-196-30v-132c0-16-10-34-24-40-42-20-80-46-114-78-8-8-18-12-30-12s-22 4-30 12l-106 106c-8 8-12 18-12 30s4 22 12 30c130 124 306 200 500 200s370-76 500-200c8-8 12-18 12-30s-4-22-12-30l-106-106c-8-8-18-12-30-12s-22 4-30 12c-34 32-72 58-114 78-14 6-24 20-24 38v132c-62 20-128 32-196 32z" />
|
||||
<glyph unicode="" glyph-name="chat" d="M854 342v512h-684v-598l86 86h598zM854 938c46 0 84-38 84-84v-512c0-46-38-86-84-86h-598l-170-170v768c0 46 38 84 84 84h684z" />
|
||||
@@ -44,4 +43,5 @@
|
||||
<glyph unicode="" glyph-name="raised-hand" d="M982 790v-620c0-94-78-170-172-170h-310c-46 0-90 18-122 50l-336 342s54 52 56 52c10 8 22 12 34 12 10 0 18-2 26-6 2 0 184-104 184-104v508c0 36 28 64 64 64s64-28 64-64v-300h42v406c0 36 28 64 64 64s64-28 64-64v-406h42v364c0 36 28 64 64 64s64-28 64-64v-364h44v236c0 36 28 64 64 64s64-28 64-64z" />
|
||||
<glyph unicode="" glyph-name="menu-up" d="M512 682l256-256-60-60-196 196-196-196-60 60z" />
|
||||
<glyph unicode="" glyph-name="menu-down" d="M708 658l60-60-256-256-256 256 60 60 196-196z" />
|
||||
<glyph unicode="" glyph-name="switch-camera" d="M640 362l150 150-150 150v-108h-256v108l-150-150 150-150v108h256v-108zM854 854c46 0 84-40 84-86v-512c0-46-38-86-84-86h-684c-46 0-84 40-84 86v512c0 46 38 86 84 86h136l78 84h256l78-84h136z" />
|
||||
</font></defs></svg>
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 14 KiB |
BIN
fonts/jitsi.ttf
BIN
fonts/jitsi.ttf
Binary file not shown.
BIN
fonts/jitsi.woff
BIN
fonts/jitsi.woff
Binary file not shown.
@@ -85,32 +85,6 @@
|
||||
"setId": 2,
|
||||
"iconIdx": 12
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M800 330c34 52 54 116 54 182 0 188-154 342-342 342v128l-170-172 170-170v128c142 0 256-114 256-256 0-44-12-84-30-120zM512 256c-142 0-256 114-256 256 0 44 10 84 30 120l-62 62c-34-52-54-116-54-182 0-188 154-342 342-342v-128l170 172-170 170v-128z"
|
||||
],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"autorenew"
|
||||
],
|
||||
"grid": 0,
|
||||
"attrs": []
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"id": 68,
|
||||
"order": 84,
|
||||
"ligatures": "autorenew",
|
||||
"prevSize": 32,
|
||||
"code": 59651,
|
||||
"name": "autorenew"
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 2,
|
||||
"iconIdx": 69
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
@@ -735,6 +709,32 @@
|
||||
"setId": 2,
|
||||
"iconIdx": 718
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M640 662l150-150-150-150v108h-256v-108l-150 150 150 150v-108h256v108zM854 170c46 0 84 40 84 86v512c0 46-38 86-84 86h-684c-46 0-84-40-84-86v-512c0-46 38-86 84-86h136l78-84h256l78 84h136z"
|
||||
],
|
||||
"isMulticolor": false,
|
||||
"isMulticolor2": false,
|
||||
"tags": [
|
||||
"switch_camera"
|
||||
],
|
||||
"grid": 0,
|
||||
"attrs": []
|
||||
},
|
||||
"attrs": [],
|
||||
"properties": {
|
||||
"id": 741,
|
||||
"order": 108,
|
||||
"ligatures": "switch_camera",
|
||||
"prevSize": 32,
|
||||
"code": 59681,
|
||||
"name": "switch-camera"
|
||||
},
|
||||
"setIdx": 0,
|
||||
"setId": 2,
|
||||
"iconIdx": 742
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
|
||||
229
index.html
229
index.html
@@ -1,6 +1,6 @@
|
||||
<html itemscope itemtype="http://schema.org/Product" prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/html">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
||||
<!--#include virtual="base.html" -->
|
||||
<script>
|
||||
@@ -14,6 +14,7 @@
|
||||
"utils.js",
|
||||
"do_external_connect.js",
|
||||
"interface_config.js",
|
||||
"logging_config.js",
|
||||
"lib-jitsi-meet.min.js",
|
||||
"app.bundle.min.js",
|
||||
"all.css"
|
||||
@@ -27,14 +28,95 @@
|
||||
&& criticalFiles.some(
|
||||
function(file) { return fileRef.indexOf(file) !== -1 })) {
|
||||
window.onload = function() {
|
||||
// The whole complex part below implements page reloads with
|
||||
// "exponential backoff". The retry attempt is passes as
|
||||
// "rCounter" query parameter
|
||||
var href = window.location.href;
|
||||
|
||||
var retryMatch = href.match(/.+(\?|&)rCounter=(\d+)/);
|
||||
var retryCountStr = retryMatch ? retryMatch[2] : "0";
|
||||
var retryCount = Number.parseInt(retryCountStr);
|
||||
|
||||
if (retryMatch == null) {
|
||||
var separator = href.indexOf("?") === -1 ? "?" : "&";
|
||||
var hashIdx = href.indexOf("#");
|
||||
|
||||
if (hashIdx === -1) {
|
||||
href += separator + "rCounter=1";
|
||||
} else {
|
||||
var hashPart = href.substr(hashIdx);
|
||||
|
||||
href = href.substr(0, hashIdx)
|
||||
+ separator + "rCounter=1" + hashPart;
|
||||
}
|
||||
} else {
|
||||
var separator = retryMatch[1];
|
||||
|
||||
href = href.replace(
|
||||
/(\?|&)rCounter=(\d+)/,
|
||||
separator + "rCounter=" + (retryCount + 1));
|
||||
}
|
||||
|
||||
var delay = Math.pow(2, retryCount) * 2000;
|
||||
if (isNaN(delay) || delay < 2000 || delay > 60000)
|
||||
delay = 10000;
|
||||
|
||||
var showMoreText = "show more";
|
||||
var showLessText = "show less";
|
||||
|
||||
document.body.innerHTML
|
||||
= "The application failed to load, missing file: "
|
||||
+ fileRef;
|
||||
= "<div style='"
|
||||
+ "position: absolute;top: 50%;left: 50%;"
|
||||
+ "text-align: center;"
|
||||
+ "font-size: medium;"
|
||||
+ "font-weight: 400;"
|
||||
+ "transform: translate(-50%, -50%)'>"
|
||||
+ "Uh oh! We couldn't fully download everything we needed :(" // jshint ignore:line
|
||||
+ "<br/> "
|
||||
+ "We will try again shortly. In the mean time, check for problems with your Internet connection!" // jshint ignore:line
|
||||
+ "<br/><br/> "
|
||||
+ "<div id='moreInfo' style='"
|
||||
+ "display: none;'>" + "Missing " + fileRef
|
||||
+ "<br/><br/></div>"
|
||||
+ "<a id='showMore' style='"
|
||||
+ "text-decoration: underline;"
|
||||
+ "font-size:small;"
|
||||
+ "cursor: pointer'>" + showMoreText + "</a>"
|
||||
+ " "
|
||||
+ "<a href='" + href + "' style='"
|
||||
+ "text-decoration: underline;"
|
||||
+ "font-size:small;"
|
||||
+ "'>reload now</a>"
|
||||
+ "</div>";
|
||||
|
||||
var showMoreElem = document.getElementById("showMore");
|
||||
showMoreElem.addEventListener('click', function () {
|
||||
var moreInfoElem
|
||||
= document.getElementById("moreInfo");
|
||||
|
||||
if (showMoreElem.innerHTML === showMoreText) {
|
||||
moreInfoElem.setAttribute(
|
||||
"style",
|
||||
"display: block;"
|
||||
+ "color:#FF991F;"
|
||||
+ "font-size:small;"
|
||||
+ "user-select:text;");
|
||||
showMoreElem.innerHTML = showLessText;
|
||||
}
|
||||
else {
|
||||
moreInfoElem.setAttribute(
|
||||
"style", "display: none;");
|
||||
showMoreElem.innerHTML = showMoreText;
|
||||
}
|
||||
});
|
||||
|
||||
window.setTimeout(
|
||||
function () { window.location.replace(href); }, delay);
|
||||
};
|
||||
window.removeEventListener(
|
||||
'error', loadErrHandler, true /* capture phase */);
|
||||
}
|
||||
}
|
||||
};
|
||||
window.addEventListener(
|
||||
'error', loadErrHandler, true /* capture phase type of listener */);
|
||||
</script>
|
||||
@@ -43,148 +125,15 @@
|
||||
<!--#include virtual="connection_optimization/connection_optimization.html" -->
|
||||
<script src="connection_optimization/do_external_connect.js?v=1"></script>
|
||||
<script><!--#include virtual="/interface_config.js" --></script>
|
||||
<script><!--#include virtual="/logging_config.js" --></script>
|
||||
<script src="libs/lib-jitsi-meet.min.js?v=139"></script>
|
||||
<script src="libs/app.bundle.min.js?v=139"></script>
|
||||
<!--#include virtual="title.html" -->
|
||||
<link rel="stylesheet" href="css/all.css"/>
|
||||
<link rel="stylesheet" href="css/all.css">
|
||||
<!--#include virtual="plugin.head.html" -->
|
||||
</head>
|
||||
<body>
|
||||
<div id="welcome_page">
|
||||
<div id="welcome_page_header">
|
||||
<a target="_new">
|
||||
<div class="watermark leftwatermark"></div>
|
||||
</a>
|
||||
<a target="_new">
|
||||
<div class="watermark rightwatermark"></div>
|
||||
</a>
|
||||
<a class="poweredby" href="http://jitsi.org" target="_new" ><span data-i18n="poweredby"></span> jitsi.org</a>
|
||||
|
||||
<div id="enter_room_container">
|
||||
<div id="enter_room_form" >
|
||||
<div id="domain_name"></div>
|
||||
<div id="enter_room">
|
||||
<input id="enter_room_field" type="text" autofocus/>
|
||||
<div class="icon-reload" id="reload_roomname"></div>
|
||||
<input id="enter_room_button" type="button" data-i18n="[value]welcomepage.go" value="GO" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="brand_header"></div>
|
||||
<input type='checkbox' name='checkbox' id="disable_welcome"/>
|
||||
<label for="disable_welcome" class="disable_welcome_position" data-i18n="welcomepage.disable"></label>
|
||||
<div id="header_text">
|
||||
<!--#include virtual="plugin.header.text.html" -->
|
||||
</div>
|
||||
</div>
|
||||
<div id="welcome_page_main">
|
||||
<div id="features">
|
||||
<div class="feature_row">
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature1.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature1.content" data-i18n-options='{ "postProcess": "resolveAppName" }'>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature2.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature2.content">
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature3.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature3.content" data-i18n-options='{ "postProcess": "resolveAppName" }'>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature4.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature4.content">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature_row">
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature5.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature5.content" data-i18n-options='{ "postProcess": "resolveAppName" }'>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature6.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature6.content" data-i18n-options='{ "postProcess": "resolveAppName" }'>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature7.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature7.content" data-i18n-options='{ "postProcess": "resolveAppName" }'></div>
|
||||
</div>
|
||||
<div class="feature_holder">
|
||||
<div class="feature_icon" data-i18n="welcomepage.feature8.title" ></div>
|
||||
<div class="feature_description" data-i18n="welcomepage.feature8.content"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--#include virtual="plugin.welcomepage.footer.html" -->
|
||||
</div>
|
||||
<div id="videoconference_page">
|
||||
<div id="mainToolbarContainer">
|
||||
<div id="notice" class="notice" style="display: none">
|
||||
<span id="noticeText" class="noticeText"></span>
|
||||
</div>
|
||||
<div id="mainToolbar" class="toolbar"></div>
|
||||
</div>
|
||||
<div id="subject" class="hide"></div>
|
||||
|
||||
<div id="extendedToolbar" class="toolbar">
|
||||
<div id="extendedToolbarButtons"></div>
|
||||
|
||||
<a class="button icon-feedback" id="feedbackButton"></a>
|
||||
|
||||
<div id="sideToolbarContainer"></div>
|
||||
</div>
|
||||
<div id="videospace">
|
||||
<div id="largeVideoContainer" class="videocontainer">
|
||||
<div id="sharedVideo"><div id="sharedVideoIFrame"></div></div>
|
||||
<div id="etherpad"></div>
|
||||
<a target="_new"><div class="watermark leftwatermark"></div></a>
|
||||
<a target="_new"><div class="watermark rightwatermark"></div></a>
|
||||
<a class="poweredby" href="http://jitsi.org" target="_new">
|
||||
<span data-i18n="poweredby"></span> jitsi.org
|
||||
</a>
|
||||
<div id="dominantSpeaker">
|
||||
<div class="dynamic-shadow"></div>
|
||||
<img id="dominantSpeakerAvatar" src=""/>
|
||||
</div>
|
||||
<span id="remoteConnectionMessage"></span>
|
||||
<div id="largeVideoWrapper">
|
||||
<video id="largeVideo" muted="true" autoplay></video>
|
||||
</div>
|
||||
<span id="localConnectionMessage"></span>
|
||||
<span id="videoResolutionLabel" class="video-state-indicator moveToCorner">HD</span>
|
||||
<span id="recordingLabel" class="video-state-indicator centeredVideoLabel">
|
||||
<span id="recordingLabelText"></span>
|
||||
<img id="recordingSpinner" class="recordingSpinner" src="images/spin.svg"></img>
|
||||
</span>
|
||||
</div>
|
||||
<div class="filmstrip">
|
||||
<div class="filmstrip__videos" id="remoteVideos">
|
||||
<span id="localVideoContainer" class="videocontainer videocontainer_small">
|
||||
<div class="videocontainer__background"></div>
|
||||
<span id="localVideoWrapper">
|
||||
<!--<video id="localVideo" autoplay muted></video> - is now per stream generated -->
|
||||
</span>
|
||||
<audio id="localAudio" autoplay muted></audio>
|
||||
<div class="videocontainer__toolbar"></div>
|
||||
<div class="videocontainer__toptoolbar"></div>
|
||||
<div class="videocontainer__hoverOverlay"></div>
|
||||
</span>
|
||||
<audio id="userJoined" src="sounds/joined.wav" preload="auto"></audio>
|
||||
<audio id="userLeft" src="sounds/left.wav" preload="auto"></audio>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="react"></div>
|
||||
<div id="keyboard-shortcuts" class="keyboard-shortcuts" style="display:none;">
|
||||
<div class="content">
|
||||
<ul id="keyboard-shortcuts-list" class="shortcuts-list">
|
||||
|
||||
@@ -11,6 +11,8 @@ var interfaceConfig = { // eslint-disable-line no-unused-vars
|
||||
DEFAULT_LOCAL_DISPLAY_NAME: "me",
|
||||
SHOW_JITSI_WATERMARK: true,
|
||||
JITSI_WATERMARK_LINK: "https://jitsi.org",
|
||||
// if watermark is disabled by default, it can be shown only for guests
|
||||
SHOW_WATERMARK_FOR_GUESTS: true,
|
||||
SHOW_BRAND_WATERMARK: false,
|
||||
BRAND_WATERMARK_LINK: "",
|
||||
SHOW_POWERED_BY: false,
|
||||
@@ -53,6 +55,8 @@ var interfaceConfig = { // eslint-disable-line no-unused-vars
|
||||
* Whether to only show the filmstrip (and hide the toolbar).
|
||||
*/
|
||||
filmStripOnly: false,
|
||||
//A html text to be shown to guests on the close page, false disables it
|
||||
CLOSE_PAGE_GUEST_HINT: false,
|
||||
RANDOM_AVATAR_URL_PREFIX: false,
|
||||
RANDOM_AVATAR_URL_SUFFIX: false,
|
||||
FILM_STRIP_MAX_HEIGHT: 120,
|
||||
|
||||
12
ios/Podfile
12
ios/Podfile
@@ -1,12 +0,0 @@
|
||||
# Uncomment the next line to define a global platform for your project
|
||||
# platform :ios, '9.0'
|
||||
|
||||
target 'jitsi-meet-react' do
|
||||
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
|
||||
# use_frameworks!
|
||||
|
||||
# Pods for jitsi-meet-react
|
||||
pod 'Crashlytics'
|
||||
pod 'Fabric'
|
||||
|
||||
end
|
||||
@@ -1,16 +0,0 @@
|
||||
PODS:
|
||||
- Crashlytics (3.8.3):
|
||||
- Fabric (~> 1.6.3)
|
||||
- Fabric (1.6.11)
|
||||
|
||||
DEPENDENCIES:
|
||||
- Crashlytics
|
||||
- Fabric
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Crashlytics: 2b6dbe138a42395577cfa73dfa1aa7248cadf39e
|
||||
Fabric: 5911403591946b8228ab1c51d98f1d7137e863c6
|
||||
|
||||
PODFILE CHECKSUM: 672d557f679f28c07b3364884b4580e605000f01
|
||||
|
||||
COCOAPODS: 1.1.1
|
||||
@@ -8,12 +8,35 @@
|
||||
*/
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import <Crashlytics/Crashlytics.h>
|
||||
#import <Fabric/Fabric.h>
|
||||
#import "RCTAssert.h"
|
||||
#import "RCTBundleURLProvider.h"
|
||||
#import "RCTLinkingManager.h"
|
||||
#import "RCTRootView.h"
|
||||
|
||||
/**
|
||||
* A <tt>RCTFatalHandler</tt> implementation which swallows JavaScript errors.
|
||||
* In the Release configuration, React Native will (intentionally) raise an
|
||||
* unhandled NSException for an unhandled JavaScript error. This will
|
||||
* effectively kill the application. <tt>_RCTFatal</tt> is suitable to be in
|
||||
* accord with the Web i.e. not kill the application.
|
||||
*/
|
||||
RCTFatalHandler _RCTFatal = ^(NSError *error) {
|
||||
id jsStackTrace = error.userInfo[RCTJSStackTraceKey];
|
||||
@try {
|
||||
NSString *name
|
||||
= [NSString stringWithFormat:@"%@: %@",
|
||||
RCTFatalExceptionName,
|
||||
error.localizedDescription];
|
||||
NSString *message
|
||||
= RCTFormatError(error.localizedDescription, jsStackTrace, 75);
|
||||
[NSException raise:name format:@"%@", message];
|
||||
} @catch (NSException *e) {
|
||||
if (!jsStackTrace) {
|
||||
@throw;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
// https://facebook.github.io/react-native/docs/linking.html
|
||||
@@ -29,7 +52,15 @@ continueUserActivity:(NSUserActivity *)userActivity
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
[Fabric with:@[[Crashlytics class]]];
|
||||
#if !DEBUG
|
||||
// In the Release configuration, React Native will (intentionally) raise an
|
||||
// unhandled NSException for an unhandled JavaScript error. This will
|
||||
// effectively kill the application. In accord with the Web, do not kill the
|
||||
// application.
|
||||
if (!RCTGetFatalHandler()) {
|
||||
RCTSetFatalHandler(_RCTFatal);
|
||||
}
|
||||
#endif
|
||||
|
||||
NSURL *jsCodeLocation
|
||||
= [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios"
|
||||
|
||||
134
ios/app/AudioMode.m
Normal file
134
ios/app/AudioMode.m
Normal file
@@ -0,0 +1,134 @@
|
||||
#import "RCTBridgeModule.h"
|
||||
#import "RCTLog.h"
|
||||
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
@interface AudioMode : NSObject<RCTBridgeModule>
|
||||
@end
|
||||
|
||||
@implementation AudioMode {
|
||||
NSString *_category;
|
||||
NSString *_mode;
|
||||
}
|
||||
|
||||
RCT_EXPORT_MODULE();
|
||||
|
||||
typedef enum {
|
||||
kAudioModeDefault,
|
||||
kAudioModeAudioCall,
|
||||
kAudioModeVideoCall
|
||||
} JitsiMeetAudioMode;
|
||||
|
||||
- (NSDictionary *)constantsToExport {
|
||||
return @{
|
||||
@"AUDIO_CALL" : [NSNumber numberWithInt: kAudioModeAudioCall],
|
||||
@"DEFAULT" : [NSNumber numberWithInt: kAudioModeDefault],
|
||||
@"VIDEO_CALL" : [NSNumber numberWithInt: kAudioModeVideoCall]
|
||||
};
|
||||
};
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
_category = nil;
|
||||
_mode = nil;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (dispatch_queue_t)methodQueue {
|
||||
// Make sure all our methods run in the main thread. The route change
|
||||
// notification runs there so this will make sure it will only be fired
|
||||
// after our changes have been applied (when we cause them, that is).
|
||||
return dispatch_get_main_queue();
|
||||
}
|
||||
|
||||
- (void)routeChanged:(NSNotification*)notification {
|
||||
NSInteger reason
|
||||
= [[notification.userInfo
|
||||
valueForKey:AVAudioSessionRouteChangeReasonKey]
|
||||
integerValue];
|
||||
|
||||
switch (reason) {
|
||||
case AVAudioSessionRouteChangeReasonCategoryChange:
|
||||
// The category has changed. Check if it's the one we want and adjust as
|
||||
// needed.
|
||||
[self setCategory:_category mode:_mode error:nil];
|
||||
break;
|
||||
|
||||
default:
|
||||
// Do nothing.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)setCategory:(NSString *)category
|
||||
mode:(NSString *)mode
|
||||
error:(NSError * _Nullable *)outError {
|
||||
AVAudioSession *session = [AVAudioSession sharedInstance];
|
||||
|
||||
if (session.category != category
|
||||
&& ![session setCategory:category error:outError]) {
|
||||
RCTLogError(@"Failed to (re)apply specified AVAudioSession category!");
|
||||
return NO;
|
||||
}
|
||||
|
||||
if (session.mode != mode && ![session setMode:mode error:outError]) {
|
||||
RCTLogError(@"Failed to (re)apply specified AVAudioSession mode!");
|
||||
return NO;
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(setMode:(int)mode
|
||||
resolve:(RCTPromiseResolveBlock)resolve
|
||||
reject:(RCTPromiseRejectBlock)reject) {
|
||||
NSString *avCategory;
|
||||
NSString *avMode;
|
||||
NSError *error;
|
||||
|
||||
switch (mode) {
|
||||
case kAudioModeAudioCall:
|
||||
avCategory = AVAudioSessionCategoryPlayAndRecord;
|
||||
avMode = AVAudioSessionModeVoiceChat;
|
||||
break;
|
||||
case kAudioModeDefault:
|
||||
avCategory = AVAudioSessionCategorySoloAmbient;
|
||||
avMode = AVAudioSessionModeDefault;
|
||||
break;
|
||||
case kAudioModeVideoCall:
|
||||
avCategory = AVAudioSessionCategoryPlayAndRecord;
|
||||
avMode = AVAudioSessionModeVideoChat;
|
||||
break;
|
||||
default:
|
||||
reject(@"setMode", @"Invalid mode", nil);
|
||||
return;
|
||||
}
|
||||
|
||||
if (![self setCategory:avCategory mode:avMode error:&error] || error) {
|
||||
reject(@"setMode", error.localizedDescription, error);
|
||||
return;
|
||||
}
|
||||
|
||||
// Even though the specified category and mode were successfully set, the
|
||||
// AVAudioSession is a singleton and other parts of the application such as
|
||||
// WebRTC may undo the settings. Make sure that the settings are reapplied
|
||||
// upon undoes.
|
||||
if (!_category || !_mode) {
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(routeChanged:)
|
||||
name:AVAudioSessionRouteChangeNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
// Save the desired/specified category and mode so that they may be
|
||||
// reapplied (upon undoes as described above).
|
||||
_category = avCategory;
|
||||
_mode = avMode;
|
||||
|
||||
resolve(nil);
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -17,25 +17,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<string>1.2</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>Fabric</key>
|
||||
<dict>
|
||||
<key>APIKey</key>
|
||||
<string>a8ae24a58302ba79da1d312138e941f6b86e3242</string>
|
||||
<key>Kits</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>KitInfo</key>
|
||||
<dict/>
|
||||
<key>KitName</key>
|
||||
<string>Crashlytics</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
@@ -57,11 +43,11 @@
|
||||
</dict>
|
||||
</dict>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string></string>
|
||||
<string>Participate in conferences with video.</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string></string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string></string>
|
||||
<string>Participate in conferences with audio.</string>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>jitsi.ttf</string>
|
||||
|
||||
66
ios/app/POSIX.m
Normal file
66
ios/app/POSIX.m
Normal file
@@ -0,0 +1,66 @@
|
||||
#import "RCTBridgeModule.h"
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
@interface POSIX : NSObject<RCTBridgeModule>
|
||||
@end
|
||||
|
||||
@implementation POSIX
|
||||
|
||||
RCT_EXPORT_MODULE();
|
||||
|
||||
RCT_EXPORT_METHOD(getaddrinfo:(NSString *)hostname
|
||||
resolve:(RCTPromiseResolveBlock)resolve
|
||||
reject:(RCTPromiseRejectBlock)reject) {
|
||||
int err;
|
||||
struct addrinfo *res;
|
||||
NSString *rejectCode;
|
||||
|
||||
if (0 == (err = getaddrinfo(hostname.UTF8String, NULL, NULL, &res))) {
|
||||
int af = res->ai_family;
|
||||
struct sockaddr *sa = res->ai_addr;
|
||||
void *addr;
|
||||
|
||||
switch (af) {
|
||||
case AF_INET:
|
||||
addr = &(((struct sockaddr_in *) sa)->sin_addr);
|
||||
break;
|
||||
case AF_INET6:
|
||||
addr = &(((struct sockaddr_in6 *) sa)->sin6_addr);
|
||||
break;
|
||||
default:
|
||||
addr = NULL;
|
||||
break;
|
||||
}
|
||||
if (addr) {
|
||||
char v[MAX(INET_ADDRSTRLEN, INET6_ADDRSTRLEN)];
|
||||
|
||||
if (inet_ntop(af, addr, v, sizeof(v))) {
|
||||
resolve([NSString stringWithUTF8String:v]);
|
||||
} else {
|
||||
err = errno;
|
||||
rejectCode = @"inet_ntop";
|
||||
}
|
||||
} else {
|
||||
err = EAFNOSUPPORT;
|
||||
rejectCode = @"EAFNOSUPPORT";
|
||||
}
|
||||
|
||||
freeaddrinfo(res);
|
||||
} else {
|
||||
rejectCode = @"getaddrinfo";
|
||||
}
|
||||
if (0 != err) {
|
||||
NSError *error
|
||||
= [NSError errorWithDomain:NSPOSIXErrorDomain
|
||||
code:err
|
||||
userInfo:nil];
|
||||
|
||||
reject(rejectCode, error.localizedDescription, error);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -13,6 +13,7 @@
|
||||
00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; };
|
||||
00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
|
||||
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
|
||||
0B42DFAE1E2FD90700111B12 /* AudioMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B42DFAD1E2FD90700111B12 /* AudioMode.m */; };
|
||||
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
|
||||
139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
|
||||
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; };
|
||||
@@ -23,9 +24,12 @@
|
||||
146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
|
||||
2602576C1D0A7703001E3363 /* jitsi.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2602576B1D0A7703001E3363 /* jitsi.ttf */; };
|
||||
3847F11906B4479A9162628F /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 821D8ABD506944B4BDBB069B /* libRNVectorIcons.a */; };
|
||||
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
||||
901FE90FA5744B5B94DCDC41 /* libKCKeepAwake.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EA8C046B2BF46279796F07D /* libKCKeepAwake.a */; };
|
||||
B30EF2311DC0ED7C00690F45 /* WebRTC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B30EF2301DC0ED7C00690F45 /* WebRTC.framework */; };
|
||||
B30EF2331DC0EEA500690F45 /* WebRTC.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B30EF2301DC0ED7C00690F45 /* WebRTC.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
B3A9D0251E0481E10009343D /* POSIX.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9D0241E0481E10009343D /* POSIX.m */; };
|
||||
BF9643821C34FBB300B0BBDF /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF9643811C34FBB300B0BBDF /* AVFoundation.framework */; };
|
||||
BF9643841C34FBBB00B0BBDF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF9643831C34FBBB00B0BBDF /* AudioToolbox.framework */; };
|
||||
BF9643861C34FBC100B0BBDF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF9643851C34FBC100B0BBDF /* CoreGraphics.framework */; };
|
||||
@@ -75,6 +79,13 @@
|
||||
remoteGlobalIDString = 832C81801AAF6DEF007FA2F7;
|
||||
remoteInfo = RCTVibration;
|
||||
};
|
||||
0B8752851E26E54A004C5CAB /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 5B09C20C78C74A548AAAC1FA /* KCKeepAwake.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||
remoteInfo = KCKeepAwake;
|
||||
};
|
||||
139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
|
||||
@@ -103,6 +114,62 @@
|
||||
remoteGlobalIDString = 5DBEB1501B18CEA900B34395;
|
||||
remoteInfo = RNVectorIcons;
|
||||
};
|
||||
3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3C059A1DE3340900C268FA;
|
||||
remoteInfo = yoga;
|
||||
};
|
||||
3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3C06751DE3340C00C268FA;
|
||||
remoteInfo = "yoga-tvOS";
|
||||
};
|
||||
3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4;
|
||||
remoteInfo = cxxreact;
|
||||
};
|
||||
3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4;
|
||||
remoteInfo = "cxxreact-tvOS";
|
||||
};
|
||||
3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4;
|
||||
remoteInfo = jschelpers;
|
||||
};
|
||||
3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4;
|
||||
remoteInfo = "jschelpers-tvOS";
|
||||
};
|
||||
5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||
remoteInfo = RCTAnimation;
|
||||
};
|
||||
5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
|
||||
remoteInfo = "RCTAnimation-tvOS";
|
||||
};
|
||||
78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
|
||||
@@ -196,6 +263,8 @@
|
||||
00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; };
|
||||
00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = "<group>"; };
|
||||
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = "<group>"; };
|
||||
0B42DFAD1E2FD90700111B12 /* AudioMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AudioMode.m; path = app/AudioMode.m; sourceTree = "<group>"; };
|
||||
0EA8C046B2BF46279796F07D /* libKCKeepAwake.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libKCKeepAwake.a; sourceTree = "<group>"; };
|
||||
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
|
||||
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
|
||||
13B07F961A680F5B00A75B9A /* jitsi-meet-react.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "jitsi-meet-react.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@@ -208,10 +277,13 @@
|
||||
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
|
||||
22418656B14845609F953A42 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; };
|
||||
2602576B1D0A7703001E3363 /* jitsi.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = jitsi.ttf; path = ../android/app/src/main/assets/fonts/jitsi.ttf; sourceTree = "<group>"; };
|
||||
5B09C20C78C74A548AAAC1FA /* KCKeepAwake.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = KCKeepAwake.xcodeproj; path = "../node_modules/react-native-keep-awake/ios/KCKeepAwake.xcodeproj"; sourceTree = "<group>"; };
|
||||
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
|
||||
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
|
||||
821D8ABD506944B4BDBB069B /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
|
||||
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
|
||||
B30EF2301DC0ED7C00690F45 /* WebRTC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebRTC.framework; path = "../node_modules/react-native-webrtc/ios/WebRTC.framework"; sourceTree = "<group>"; };
|
||||
B3A9D0241E0481E10009343D /* POSIX.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = POSIX.m; path = app/POSIX.m; sourceTree = "<group>"; };
|
||||
B3B083EB1D4955FF0069CEE7 /* jitsi-meet-react.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "jitsi-meet-react.entitlements"; sourceTree = "<group>"; };
|
||||
B96AF9B6FBC0453798399985 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
|
||||
BF9643811C34FBB300B0BBDF /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||
@@ -245,6 +317,7 @@
|
||||
BF96438E1C34FBE100B0BBDF /* VideoToolbox.framework in Frameworks */,
|
||||
146834051AC3E58100842450 /* libReact.a in Frameworks */,
|
||||
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
|
||||
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */,
|
||||
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
|
||||
00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */,
|
||||
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */,
|
||||
@@ -255,6 +328,7 @@
|
||||
BFC745141CB829B300673F38 /* libRCTWebRTC.a in Frameworks */,
|
||||
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
|
||||
3847F11906B4479A9162628F /* libRNVectorIcons.a in Frameworks */,
|
||||
901FE90FA5744B5B94DCDC41 /* libKCKeepAwake.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -303,6 +377,14 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
0B8752821E26E54A004C5CAB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0B8752861E26E54A004C5CAB /* libKCKeepAwake.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
139105B71AF99BAD00B5F7CC /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -326,11 +408,13 @@
|
||||
children = (
|
||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
|
||||
13B07FB01A68108700A75B9A /* AppDelegate.m */,
|
||||
0B42DFAD1E2FD90700111B12 /* AudioMode.m */,
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */,
|
||||
13B07FB61A68108700A75B9A /* Info.plist */,
|
||||
13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
|
||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */,
|
||||
13B07FB71A68108700A75B9A /* main.m */,
|
||||
B3A9D0241E0481E10009343D /* POSIX.m */,
|
||||
);
|
||||
name = app;
|
||||
sourceTree = "<group>";
|
||||
@@ -339,7 +423,13 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
146834041AC3E56700842450 /* libReact.a */,
|
||||
B3BA19EF1DC6B37B00BCD481 /* libReact-tvOS.a */,
|
||||
B3BA19EF1DC6B37B00BCD481 /* libReact.a */,
|
||||
3DAD3EA51DF850E9000B6D8A /* libyoga.a */,
|
||||
3DAD3EA71DF850E9000B6D8A /* libyoga.a */,
|
||||
3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */,
|
||||
3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */,
|
||||
3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */,
|
||||
3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
@@ -352,6 +442,15 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5E91572E1DD0AC6500FF2AA8 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */,
|
||||
5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6956B374CC3C453DB7B8E82D /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -373,10 +472,12 @@
|
||||
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5B09C20C78C74A548AAAC1FA /* KCKeepAwake.xcodeproj */,
|
||||
BF96438F1C34FBEB00B0BBDF /* libc.tbd */,
|
||||
BF9643911C34FBF100B0BBDF /* libsqlite3.tbd */,
|
||||
BF9643931C34FBF900B0BBDF /* libstdc++.tbd */,
|
||||
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
|
||||
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */,
|
||||
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */,
|
||||
00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */,
|
||||
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */,
|
||||
@@ -458,7 +559,6 @@
|
||||
13B07F8E1A680F5B00A75B9A /* Resources */,
|
||||
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
|
||||
B30EF2341DC0EEA500690F45 /* Embed Frameworks */,
|
||||
B3DBBAC41DC6A3BE001DA4DD /* ShellScript */,
|
||||
B35383AD1DDA0083008F406A /* ShellScript */,
|
||||
);
|
||||
buildRules = (
|
||||
@@ -476,7 +576,7 @@
|
||||
83CBB9F71A601CBA00E9B192 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0800;
|
||||
LastUpgradeCheck = 0820;
|
||||
ORGANIZATIONNAME = Facebook;
|
||||
TargetAttributes = {
|
||||
13B07F861A680F5B00A75B9A = {
|
||||
@@ -501,10 +601,18 @@
|
||||
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectReferences = (
|
||||
{
|
||||
ProductGroup = 0B8752821E26E54A004C5CAB /* Products */;
|
||||
ProjectRef = 5B09C20C78C74A548AAAC1FA /* KCKeepAwake.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */;
|
||||
ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */;
|
||||
ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */;
|
||||
ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
|
||||
@@ -593,6 +701,13 @@
|
||||
remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
0B8752861E26E54A004C5CAB /* libKCKeepAwake.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libKCKeepAwake.a;
|
||||
remoteRef = 0B8752851E26E54A004C5CAB /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
@@ -621,6 +736,62 @@
|
||||
remoteRef = 26D58A061D0B42EE00FC396B /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libyoga.a;
|
||||
remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libyoga.a;
|
||||
remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libcxxreact.a;
|
||||
remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libcxxreact.a;
|
||||
remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjschelpers.a;
|
||||
remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjschelpers.a;
|
||||
remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRCTAnimation.a;
|
||||
remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libRCTAnimation-tvOS.a";
|
||||
remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
@@ -677,10 +848,10 @@
|
||||
remoteRef = B3BA19EA1DC6B37B00BCD481 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B3BA19EF1DC6B37B00BCD481 /* libReact-tvOS.a */ = {
|
||||
B3BA19EF1DC6B37B00BCD481 /* libReact.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libReact-tvOS.a";
|
||||
path = libReact.a;
|
||||
remoteRef = B3BA19EE1DC6B37B00BCD481 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
@@ -735,19 +906,6 @@
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "APP_PATH=\"${TARGET_BUILD_DIR}/${WRAPPER_NAME}\"\n\n# This script loops through the frameworks embedded in the application and\n# removes unused architectures.\nfind \"$APP_PATH\" -name '*.framework' -type d | while read -r FRAMEWORK\ndo\nFRAMEWORK_EXECUTABLE_NAME=$(defaults read \"$FRAMEWORK/Info.plist\" CFBundleExecutable)\nFRAMEWORK_EXECUTABLE_PATH=\"$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME\"\necho \"Executable is $FRAMEWORK_EXECUTABLE_PATH\"\n\nEXTRACTED_ARCHS=()\n\nfor ARCH in $ARCHS\ndo\necho \"Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME\"\nlipo -extract \"$ARCH\" \"$FRAMEWORK_EXECUTABLE_PATH\" -o \"$FRAMEWORK_EXECUTABLE_PATH-$ARCH\"\nEXTRACTED_ARCHS+=(\"$FRAMEWORK_EXECUTABLE_PATH-$ARCH\")\ndone\n\necho \"Merging extracted architectures: ${ARCHS}\"\nlipo -o \"$FRAMEWORK_EXECUTABLE_PATH-merged\" -create \"${EXTRACTED_ARCHS[@]}\"\nrm \"${EXTRACTED_ARCHS[@]}\"\n\necho \"Replacing original executable with thinned version\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_EXECUTABLE_PATH-merged\" \"$FRAMEWORK_EXECUTABLE_PATH\"\n\ndone";
|
||||
};
|
||||
B3DBBAC41DC6A3BE001DA4DD /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Fabric/run\" a8ae24a58302ba79da1d312138e941f6b86e3242 256ed316263eb534e26a1ad5dcc42ca9c179af5937dd864c3e44cfefa2e8b54c";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
@@ -755,6 +913,8 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B3A9D0251E0481E10009343D /* POSIX.m in Sources */,
|
||||
0B42DFAE1E2FD90700111B12 /* AudioMode.m in Sources */,
|
||||
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */,
|
||||
);
|
||||
@@ -792,10 +952,11 @@
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||
"$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-keep-awake/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
);
|
||||
INFOPLIST_FILE = app/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -827,10 +988,11 @@
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||
"$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-keep-awake/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
);
|
||||
INFOPLIST_FILE = app/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@@ -859,15 +1021,19 @@
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
@@ -884,6 +1050,7 @@
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-keep-awake/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
);
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
@@ -906,8 +1073,10 @@
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
@@ -915,6 +1084,7 @@
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
@@ -925,6 +1095,7 @@
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-keep-awake/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
);
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
|
||||
@@ -1,11 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0800"
|
||||
LastUpgradeVersion = "0820"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
parallelizeBuildables = "NO"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192"
|
||||
BuildableName = "libReact.a"
|
||||
BlueprintName = "React"
|
||||
ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
|
||||
@@ -4,7 +4,4 @@
|
||||
<FileRef
|
||||
location = "group:jitsi-meet-react.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Pods/Pods.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
"en": "Английски",
|
||||
"bg": "Български",
|
||||
"de": "Немски",
|
||||
"es": "",
|
||||
"es": "Испански",
|
||||
"fr": "Френски",
|
||||
"hy": "",
|
||||
"hy": "Арменски",
|
||||
"it": "Италиански",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "Словашки",
|
||||
"sl": "Словенски",
|
||||
"sv": "Шведски",
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
"en": "Inglés",
|
||||
"bg": "Búlgaro",
|
||||
"de": "Alemán",
|
||||
"es": "",
|
||||
"es": "Español",
|
||||
"fr": "Francés",
|
||||
"hy": "",
|
||||
"hy": "Armenio",
|
||||
"it": "Italiano",
|
||||
"oc": "",
|
||||
"ptBR": "",
|
||||
"oc": "Occitano",
|
||||
"pl": "Polaco",
|
||||
"ptBR": "Portugués (Brasil)",
|
||||
"ru": "Ruso",
|
||||
"sk": "Eslovaco",
|
||||
"sl": "Esloveno",
|
||||
"sv": "Sueco",
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
"hy": "Arménien",
|
||||
"it": "Italien",
|
||||
"oc": "Occitan",
|
||||
"pl": "Polonais",
|
||||
"ptBR": "Portugais (Brésil)",
|
||||
"ru": "Russe",
|
||||
"sk": "Slovaque",
|
||||
"sl": "Slovène",
|
||||
"sv": "Suédois",
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
"hy": "",
|
||||
"it": "Italiano",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "Slovacco",
|
||||
"sl": "Sloveno",
|
||||
"sv": "",
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
"hy": "Ormiański",
|
||||
"it": "Włoski",
|
||||
"oc": "Prowansalski",
|
||||
"pl": "Polski",
|
||||
"ptBR": "portugalski (brazylijski)",
|
||||
"ru": "Rosyjski",
|
||||
"sk": "Słowacki",
|
||||
"sl": "Słoweński",
|
||||
"sv": "Szwedzki",
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
{
|
||||
"en": "",
|
||||
"bg": "",
|
||||
"de": "",
|
||||
"es": "",
|
||||
"fr": "",
|
||||
"hy": "",
|
||||
"it": "",
|
||||
"oc": "",
|
||||
"ptBR": "",
|
||||
"sk": "",
|
||||
"sl": "",
|
||||
"sv": "",
|
||||
"tr": ""
|
||||
"en": "English (английский)",
|
||||
"bg": "Болгарский",
|
||||
"de": "Немецкий",
|
||||
"es": "Испанский",
|
||||
"fr": "Французский",
|
||||
"hy": "Армянский",
|
||||
"it": "Итальянский",
|
||||
"oc": "Окситанский",
|
||||
"pl": "",
|
||||
"ptBR": "Португальский (Бразилия)",
|
||||
"ru": "",
|
||||
"sk": "Словацкий",
|
||||
"sl": "Словенский",
|
||||
"sv": "Шведский",
|
||||
"tr": "Турецкий"
|
||||
}
|
||||
@@ -7,7 +7,9 @@
|
||||
"hy": "",
|
||||
"it": "Taliančina",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "Slovenčina",
|
||||
"sl": "Slovinčina",
|
||||
"sv": "",
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
"hy": "",
|
||||
"it": "Italjanščina",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "",
|
||||
"sl": "Slovenščina",
|
||||
"sv": "",
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
"hy": "",
|
||||
"it": "Italienska",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "Slovakiska",
|
||||
"sl": "Slovenska",
|
||||
"sv": "",
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
"hy": "",
|
||||
"it": "",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "",
|
||||
"sl": "",
|
||||
"sv": "",
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
{
|
||||
"contactlist": "СПИСЪК С КОНТАКТИ",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Настройки на връзката",
|
||||
"poweredby": "powered by",
|
||||
"downloadlogs": "Изтегли логовете",
|
||||
"feedback": "Кажете ни как върви",
|
||||
"roomUrlDefaultMsg": "Конференцията се създава...",
|
||||
"participant": "Участник",
|
||||
"inviteUrlDefaultMsg": "Конференцията се създава...",
|
||||
"me": "аз",
|
||||
"speaker": "Говорител",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "Яна Розова",
|
||||
"defaultLink": "например __url__",
|
||||
"calling": "Обаждане към __name__ ...",
|
||||
"callingName": "",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -23,17 +25,18 @@
|
||||
"nwjsGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Клавишни комбинации:",
|
||||
"raiseHand": "Вдигни ръка.",
|
||||
"pushToTalk": "Push to talk.",
|
||||
"toggleScreensharing": "Смяна между камера и споделен екран.",
|
||||
"toggleFilmstrip": "Показване/скриване на лентата с видеата.",
|
||||
"toggleShortcuts": "Показване/скриване на това меню.",
|
||||
"focusLocal": "Фокусиране върху нашето видео.",
|
||||
"focusRemote": "Фокусиране върху видео на участник.",
|
||||
"toggleChat": "Отваряне/скриване на чат панела.",
|
||||
"mute": "Спиране/пускане на микрофона.",
|
||||
"videoMute": "Спиране/пускане на нашето видео."
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "Влез",
|
||||
@@ -72,33 +75,45 @@
|
||||
"content": "Научете повече за своите потребители като интегрирате лесно Piwik, Google Analytics и други статистики за изполването."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Включи / Изключи микрофона",
|
||||
"videomute": "Включи / Изключи камерата",
|
||||
"videomute": "",
|
||||
"authenticate": "Идентификация",
|
||||
"lock": "Заключи / отключи стаята",
|
||||
"invite": "Покани други",
|
||||
"chat": "Отвори / затвори чат",
|
||||
"etherpad": "Покажи споделения документ",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "Сподели YouTube видео",
|
||||
"sharescreen": "Сподели екрана",
|
||||
"fullscreen": "Влез / Излез от Пълен екран",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Обади се на SIP номер",
|
||||
"Settings": "Настройки",
|
||||
"hangup": "Затвори",
|
||||
"hangup": "",
|
||||
"login": "Влез",
|
||||
"logout": "Изход",
|
||||
"dialpad": "Цифров панел",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "Споделеното видео е заглуено,<br/>, за да можете да говорите.",
|
||||
"micMutedPopup": "Микрофонът е заглушен, за да<br/>не пречи на YouTube видеото.",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "Не се говори по време на филм!",
|
||||
"cameraDisabled": "Не е налична камера",
|
||||
"micDisabled": "Не е наличен микрофон"
|
||||
"micDisabled": "Не е наличен микрофон",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Отвори / затвори чат",
|
||||
"filmstrip": "Покажи / скрий лентата с видеа",
|
||||
"contactlist": "Отвори / затвори контакт листа"
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -108,23 +123,33 @@
|
||||
"messagebox": "Въведете текст..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "НАСТРОЙКИ",
|
||||
"title": "Настройки",
|
||||
"update": "Актуализиране",
|
||||
"name": "Име",
|
||||
"startAudioMuted": "Започни без аудио",
|
||||
"startVideoMuted": "Започни без видео",
|
||||
"selectCamera": "Избери камера",
|
||||
"selectMic": "Избери микрофон",
|
||||
"selectAudioOutput": "Избери аудио изход",
|
||||
"followMe": "Включи \"следвай ме\"",
|
||||
"startAudioMuted": "",
|
||||
"startVideoMuted": "",
|
||||
"selectCamera": "",
|
||||
"selectMic": "",
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "Няма",
|
||||
"noPermission": "Не е разрешен достъп до устройството",
|
||||
"avatarUrl": "Адрес на аватар"
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Натиснете за да<br/>промените името",
|
||||
"moderator": "Създателя на<br/>конференцията",
|
||||
"videomute": "Учасника е спрял<br/>камерата си.",
|
||||
"videomute": "",
|
||||
"mute": "Учасника е с изключен микрофон",
|
||||
"kick": "Изгони",
|
||||
"muted": "Изключен микрофон",
|
||||
@@ -132,6 +157,7 @@
|
||||
"flip": "Огледално"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Дебит:",
|
||||
"packetloss": "Загуба на пакети:",
|
||||
"resolution": "Резолюция:",
|
||||
@@ -165,34 +191,49 @@
|
||||
"raisedHand": ""
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Бяхте изгонен от срещата!",
|
||||
"popupError": "Навигаторът ви блокира попъите. Молим ви да премахнете забраната и да опитате отново.",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Стаята е защитена с парола. Само собственикът може да я променя или премахва.",
|
||||
"passwordError2": "Стаята ви не е защитена с парола. Собственикът би могъл да добави парола.",
|
||||
"connectError": "Опа! Нещо се обърка и не успяхме да се свържем с конференцията.",
|
||||
"connectErrorWithMsg": "Опа! Нещо се обърка и не успяхме да се свържем с конференцията: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Свързване",
|
||||
"copy": "",
|
||||
"error": "Грешка",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Възникна грешка при опит да бъде намерено разширението за споделяне на екран.",
|
||||
"failtoinstall": "Неуспешна инсталация на разширението за споделяне на екрана.",
|
||||
"failedpermissions": "Неуспешен опит за получаване на права за използване на микрофон и/или камера.",
|
||||
"bridgeUnavailable": "Jitsi Videobridge не е наличен. Моля опитайте пак!",
|
||||
"jicofoUnavailable": "Jitsi Videobridge не е наличен. Моля опитайте пак!",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "Конференцията е пълна. Моля, опитайте по-късно!",
|
||||
"lockTitle": "Неуспешно заключване",
|
||||
"lockMessage": "Неуспешно заключване на конференцията.",
|
||||
"warning": "Внимание",
|
||||
"passwordNotSupported": "В момента не поддържаме стаи с пароли.",
|
||||
"sorry": "Съжаляваме",
|
||||
"internalError": "Вътрешна грешка [setRemoteDescription]",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"unableToSwitch": "Неуспешен опит за смяна на видеото.",
|
||||
"SLDFailure": "Опа! Нещо се обърка и не успяхме да спрем микрофона! (SLD Failure)",
|
||||
"SRDFailure": "Опа! Нещо се обърка и не успяхме да спрем камерата! (SRD Failure)",
|
||||
"oops": "Опа!",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Възникна грешка",
|
||||
"passwordRequired": "Изисква се парола",
|
||||
"Ok": "ОК",
|
||||
"done": "",
|
||||
"Remove": "DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE ",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Сподели видео",
|
||||
"shareVideoLinkError": "Моля въведете правилен Prezi линк.",
|
||||
"removeSharedVideoTitle": "Край на споделянето на видео",
|
||||
@@ -202,6 +243,7 @@
|
||||
"WaitForHostMsg": "<b>__room__ </b> още не е започнал. Ако вие сте домакина моля идентифицирайте се. В противен случай ще изчакаме домакина.",
|
||||
"IamHost": "Аз съм домакина",
|
||||
"Cancel": "Отказ",
|
||||
"Submit": "",
|
||||
"retry": "Повторен опит",
|
||||
"logoutTitle": "Изход",
|
||||
"logoutQuestion": "Сигурни ли сте, че искате да излезете и да прекъснете конференцията?",
|
||||
@@ -216,26 +258,29 @@
|
||||
"sipMsg": "Въведете SIP номер",
|
||||
"passwordCheck": "Сигурни ли сте, че искате да махнете паролата?",
|
||||
"passwordMsg": "Въведете парола, за да заключите стаята",
|
||||
"Invite": "Покани",
|
||||
"shareLink": "Сподели този линк с всеки, който искаш да поканиш",
|
||||
"shareLink": "",
|
||||
"settings1": "Конфигурирай конференцията",
|
||||
"settings2": "Участниците се присъединиха с изключен микрофон.",
|
||||
"settings3": "Изисквай имена<br/><br/>Въведете парола за да заключите стаята:",
|
||||
"yourPassword": "вашата парола",
|
||||
"yourPassword": "",
|
||||
"Back": "Назад",
|
||||
"serviceUnavailable": "Услугата не е налична",
|
||||
"gracefulShutdown": "Услугата временно не е достъпна поради профилактика. Моля опитайте по-късно.",
|
||||
"Yes": "Да",
|
||||
"reservationError": "Грешка в системата за резервации",
|
||||
"reservationErrorMsg": "Грешка номер: __code__, съобщение: __msg__",
|
||||
"password": "парола",
|
||||
"password": "",
|
||||
"userPassword": "потребителска парола",
|
||||
"token": "код за достъп",
|
||||
"tokenAuthFailed": "Неуспешна XMPP автентикация: невалиден тоукън",
|
||||
"displayNameRequired": "Въведете името си:",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Въведете името си:",
|
||||
"extensionRequired": "Изисква се разширение: ",
|
||||
"firefoxExtensionPrompt": "За да споделите екрана си, трябва да инсталирате Firefox разширение. <a href='__url__'>свалете го тук</a> и пробвайте пак!",
|
||||
"feedbackQuestion": "Как мина разговора?",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "Благодарим, че използвахте __appName__!",
|
||||
"sorryFeedback": "Много съжаляваме! Бихте ли ни казали повече?",
|
||||
"liveStreaming": "Пряко предаване",
|
||||
@@ -246,6 +291,7 @@
|
||||
"stopLiveStreaming": "Край на прякото предаване",
|
||||
"stopRecording": "Край на записа",
|
||||
"doNotShowWarningAgain": "Занапред не ме предупреждавай пак",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "Достъпът е отказан",
|
||||
"screenSharingPermissionDeniedError": "Не сте дали права за споделяне на екран",
|
||||
"micErrorPresent": "Грешка при достъп до микрофона",
|
||||
@@ -253,12 +299,20 @@
|
||||
"cameraUnsupportedResolutionError": "Камерата ви не поддържа тази резолюция",
|
||||
"cameraUnknownError": "Невъзможен достъп до камерата по неясна причина.",
|
||||
"cameraPermissionDeniedError": "",
|
||||
"cameraNotFoundError": "Указаната камера не е намерена.",
|
||||
"cameraNotFoundError": "",
|
||||
"cameraConstraintFailedError": "Камерата ви не задоволява зададените условия.",
|
||||
"micUnknownError": "Не възможен достъп до микрофона по неясна причина.",
|
||||
"micPermissionDeniedError": "",
|
||||
"micNotFoundError": "Микрофонът не задоволява зададените условия.",
|
||||
"micConstraintFailedError": "Микрофонът не задоволява зададените условия."
|
||||
"micNotFoundError": "",
|
||||
"micConstraintFailedError": "Микрофонът не задоволява зададените условия.",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Изключи микрофона"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -302,7 +356,7 @@
|
||||
"on": "Запис",
|
||||
"off": "Записът спрян",
|
||||
"failedToStart": "Неуспешен опит за записване",
|
||||
"buttonTooltip": "Пускане / спиране на запис",
|
||||
"buttonTooltip": "",
|
||||
"error": "Грешка при опит за запис. Моля опитайте отново.",
|
||||
"unavailable": "Записите са временно невъзможни. Моля опитайте по-късно."
|
||||
},
|
||||
@@ -312,7 +366,7 @@
|
||||
"off": "Край на прякото предаване",
|
||||
"unavailable": "Услугата за пряко предаване е временно недостъпна. Опитайте по-късно.",
|
||||
"failedToStart": "Неуспешен опит за пряко предаване",
|
||||
"buttonTooltip": "Начало / край на пряко предаване",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "Моля попълнете името на потока, за да можем да започнем прякото предаване.",
|
||||
"error": "Неуспешно пряко предаване. Опитайте пак.",
|
||||
"busy": "Всички записвачки са временно заети. Опитайте отново по-късно."
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"contactlist": "Im Gespräch",
|
||||
"contactlist": "Teilnehmer (__pcount__)",
|
||||
"addParticipants": "Link teilen",
|
||||
"roomLocked": "Teilnehmer müssen ein Passwort eingeben",
|
||||
"roomUnlocked": "Jeder mit Zugriff auf den Link kann beitreten",
|
||||
"passwordSetRemotely": "von einem anderen Teilnehmer gesetzt",
|
||||
"connectionsettings": "Verbindungseinstellungen",
|
||||
"poweredby": "Betrieben von",
|
||||
"feedback": "Wir freuen uns auf Ihr Feedback!",
|
||||
"roomUrlDefaultMsg": "Die Konferenz wird erstellt...",
|
||||
"inviteUrlDefaultMsg": "Die Konferenz wird erstellt...",
|
||||
"me": "ich",
|
||||
"speaker": "Sprecher",
|
||||
"raisedHand": "Möchte sprechen",
|
||||
@@ -21,17 +25,18 @@
|
||||
"nwjsGrantPermissions": "Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Tastaturkürzel:",
|
||||
"raiseHand": "Heben Sie Ihre Hand.",
|
||||
"pushToTalk": "Drücken um zu sprechen.",
|
||||
"toggleScreensharing": "Zwischen Kamera und Bildschirmfreigabe wechseln.",
|
||||
"toggleFilmstrip": "Videos anzeigen oder verbergen.",
|
||||
"toggleShortcuts": "Hilfe-Menu anzeigen oder verdecken.",
|
||||
"focusLocal": "Lokales Video fokussieren.",
|
||||
"focusRemote": "Andere Videos fokussieren.",
|
||||
"toggleChat": "Chat öffnen oder schliessen.",
|
||||
"mute": "Stummschaltung aktivieren oder deaktivieren.",
|
||||
"videoMute": "Eigenes Video starten oder stoppen."
|
||||
"keyboardShortcuts": "Tastenkürzel",
|
||||
"raiseHand": "Hand erheben",
|
||||
"pushToTalk": "Drücken um zu sprechen",
|
||||
"toggleScreensharing": "Zwischen Kamera und Bildschirmfreigabe wechseln",
|
||||
"toggleFilmstrip": "Videos anzeigen oder verbergen",
|
||||
"toggleShortcuts": "Hilfe-Menu anzeigen oder verdecken",
|
||||
"focusLocal": "Lokales Video fokussieren",
|
||||
"focusRemote": "Auf das Video eines anderen Teilnehmers fokussieren",
|
||||
"toggleChat": "Chat öffnen oder schliessen",
|
||||
"mute": "Stummschaltung aktivieren oder deaktivieren",
|
||||
"fullScreen": "Vollbildmodus aktivieren / deaktivieren",
|
||||
"videoMute": "Kamera starten oder stoppen"
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "Los",
|
||||
@@ -70,35 +75,45 @@
|
||||
"content": "Die Verwendung kann durch die Integration mit Piwik, Google Analytics und anderen Überwachungs- und Statistikprogrammen protokolliert werden."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"title": "__app__ benötigt Kamera und Mikrofon."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "Die Konferenz wurde unterbrochen weil der Computer den Standbymodus aktivierte.",
|
||||
"rejoinKeyTitle": "Erneut teilnehmen"
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Stummschaltung aktivieren / deaktivieren",
|
||||
"videomute": "Kamera starten / stoppen",
|
||||
"authenticate": "Anmelden",
|
||||
"lock": "Konferenz schützen / Schutz aufheben",
|
||||
"invite": "Andere einladen",
|
||||
"invite": "Link teilen",
|
||||
"chat": "Chat öffnen / schliessen",
|
||||
"etherpad": "Dokument teilen",
|
||||
"etherpad": "Geteiltes Dokument öffnen / schliessen",
|
||||
"sharedvideo": "YouTube-Video teilen",
|
||||
"sharescreen": "Bildschirm freigeben",
|
||||
"sharescreen": "Bildschirmfreigabe starten / stoppen",
|
||||
"fullscreen": "Vollbildmodus aktivieren / deaktivieren",
|
||||
"sip": "SIP Nummer anrufen",
|
||||
"Settings": "Einstellungen",
|
||||
"hangup": "Konferenz verlassen",
|
||||
"hangup": "Verlassen",
|
||||
"login": "Anmelden",
|
||||
"logout": "Abmelden",
|
||||
"dialpad": "Tastenblock anzeigen",
|
||||
"dialpad": "Wähltastatur öffnen / schliessen",
|
||||
"sharedVideoMutedPopup": "Das geteilte Video wurde stumm geschaltet damit mit <br/>den anderen Teilnehmern gesprochen werden kann.",
|
||||
"micMutedPopup": "Ihr Mikrofon wurde stumm geschaltet damit das<br/>geteilte Video genossen werden kann.",
|
||||
"talkWhileMutedPopup": "Versuchen sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.",
|
||||
"unableToUnmutePopup": "Die Stummschaltung kann nicht aufgehoben werden während das geteilte Video abgespielt wird.",
|
||||
"cameraDisabled": "Keine Kamera verfügbar",
|
||||
"micDisabled": "Kein Mikrofon verfügbar",
|
||||
"filmstrip": "Videos anzeigen / verbergen",
|
||||
"raiseHand": "Hand erheben um zu sprechen"
|
||||
"profile": "Profil bearbeiten",
|
||||
"raiseHand": "Hand erheben"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Chat öffnen / schliessen",
|
||||
"filmstrip": "Videos anzeigen / verbergen",
|
||||
"contactlist": "Kontaktliste öffnen / schliessen"
|
||||
"contactlist": "Teilnehmer anzeigen und einladen"
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -126,9 +141,10 @@
|
||||
"setPasswordLabel": "Konferenz mit einem Passwort schützen."
|
||||
},
|
||||
"profile": {
|
||||
"title": "PROFIL",
|
||||
"title": "Profil",
|
||||
"setDisplayNameLabel": "Anzeigename festlegen",
|
||||
"setEmailLabel": "E-Mail Adresse für Gravatar"
|
||||
"setEmailLabel": "E-Mail Adresse für Gravatar",
|
||||
"setEmailInput": "E-Mail eingeben"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Klicken, um den Anzeigenamen zu bearbeiten",
|
||||
@@ -141,6 +157,7 @@
|
||||
"flip": "Spiegeln"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "Verbindungsdaten",
|
||||
"bitrate": "Bitrate:",
|
||||
"packetloss": "Paketverlust:",
|
||||
"resolution": "Auflösung:",
|
||||
@@ -174,20 +191,30 @@
|
||||
"raisedHand": "Möchte sprechen."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "Hinzufügen",
|
||||
"kickMessage": "Oh! Sie wurden aus der Konferenz ausgeschlossen.",
|
||||
"popupError": "Ihr Browser blockiert Popup-Fenster von dieser Webseite. Bitte erlauben Sie dieser Seite Popups in den Sicherheitseinstellungen Ihres Browsers und versuchen Sie es erneut.",
|
||||
"passwordErrorTitle": "Passwort-Fehler",
|
||||
"passwordError": "Diese Konferenz ist mit einem Paswort geschützt. Nur der Besitzer der Konferenz kann ein Passwort vergeben.",
|
||||
"passwordError2": "Diese Konferenzt ist nicht mit einem Passwort geschützt. Nur der Besitzer der Konferenz kann ein Passwort vergeben.",
|
||||
"connectError": "Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden.",
|
||||
"connectErrorWithMsg": "Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden: __msg__",
|
||||
"incorrectPassword": "Das Passwort ist ungültig",
|
||||
"connecting": "Verbindung wird hergestellt",
|
||||
"copy": "Kopieren",
|
||||
"error": "Fehler",
|
||||
"roomLocked": "Diese Konferenz ist gesperrt. Neue Teilnehmer müssen über den Link beitreten das Passwort eingeben",
|
||||
"addPassword": "Passwort hinzufügen",
|
||||
"createPassword": "Passwort erstellen",
|
||||
"detectext": "Fehler bei der Erkennung der Bildschirmfreigabeerweiterung.",
|
||||
"failtoinstall": "Die Bildschirmfreigabeerweiterung konnte nicht installiert werden.",
|
||||
"failedpermissions": "Die Zugriffsberechtigungen auf das Mikrofon und/oder die Kamera konnten nicht eingeholt werden.",
|
||||
"bridgeUnavailable": "Die Jitsi Videobridge ist momentan nicht erreichbar. Bitte versuchen Sie es später noch einmal.",
|
||||
"jicofoUnavailable": "Jicofo ist momentan nicht erreichbar. Bitte versuchen Sie es später noch einmal.",
|
||||
"conferenceReloadTitle": "Leider ist etwas schiefgegangen",
|
||||
"conferenceReloadMsg": "Wir versuchen das zu beheben",
|
||||
"conferenceDisconnectTitle": "Sie wurden getrennt. Prüfen Sie Ihre Netzwerkverbindung.",
|
||||
"conferenceDisconnectMsg": "Verbinde erneut in...",
|
||||
"reconnectNow": "Jetzt erneut verbinden",
|
||||
"conferenceReloadTimeLeft": "__seconds__ sek.",
|
||||
"maxUsersLimitReached": "Die maximale Teilnehmerzahl dieser Konferenz ist erreicht. Die Konferenz ist voll. Bitte versuchen Sie es später noch einmal.",
|
||||
"lockTitle": "Sperren fehlgeschlagen",
|
||||
"lockMessage": "Die Konferenz konnte nicht gesperrt werden.",
|
||||
@@ -199,10 +226,14 @@
|
||||
"SLDFailure": "Oh! Die Stummschaltung konnte nicht aktiviert werden. (SLD Fehler)",
|
||||
"SRDFailure": "Oh! Das Video konnte nicht gestoppt werden. (SRD Fehler)",
|
||||
"oops": "Oh!",
|
||||
"currentPassword": "Das aktuelle Passwort ist",
|
||||
"passwordLabel": "Passwort",
|
||||
"defaultError": "Es ist ein Fehler aufgetreten",
|
||||
"passwordRequired": "Passwort erforderlich",
|
||||
"Ok": "OK",
|
||||
"done": "Fertig",
|
||||
"Remove": "Entfernen",
|
||||
"removePassword": "Passwort entfernen",
|
||||
"shareVideoTitle": "Video teilen",
|
||||
"shareVideoLinkError": "Bitte einen gültigen YouTube-Link angeben.",
|
||||
"removeSharedVideoTitle": "Freigegebenes Video entfernen",
|
||||
@@ -212,6 +243,7 @@
|
||||
"WaitForHostMsg": "Die Konferenz <b>__room__</b> hat noch nicht begonnen. Wenn Sie der Organisator sind, melden Sie sich bitte an. Anderenfalls warten Sie bitte, bis der Organisator beigetreten ist.",
|
||||
"IamHost": "Ich bin der Organisator",
|
||||
"Cancel": "Abbrechen",
|
||||
"Submit": "OK",
|
||||
"retry": "Wiederholen",
|
||||
"logoutTitle": "Abmelden",
|
||||
"logoutQuestion": "Sind Sie sicher, dass Sie sich abmelden und die Konferenz verlassen möchten?",
|
||||
@@ -226,7 +258,7 @@
|
||||
"sipMsg": "Geben Sie eine SIP Nummer ein",
|
||||
"passwordCheck": "Sind Sie sicher, dass Sie das Passwort entfernen möchten?",
|
||||
"passwordMsg": "Passwort setzen um die Konferenz zu schützen",
|
||||
"shareLink": "Diesen Link kopieren und teilen",
|
||||
"shareLink": "Link zu dieser Konferenz teilen",
|
||||
"settings1": "Konferenz einrichten",
|
||||
"settings2": "Teilnehmer treten stummgeschaltet bei",
|
||||
"settings3": "Name erforderlich<br/><br/>Setzen Sie ein Passwort, um die Konferenz zu schützen:",
|
||||
@@ -242,7 +274,8 @@
|
||||
"token": "Token",
|
||||
"tokenAuthFailedTitle": "Authentifizierungsfehler",
|
||||
"tokenAuthFailed": "Sie sind nicht berechtigt dieser Konferenz beizutreten.",
|
||||
"displayNameRequired": "Geben Sie Ihren Anzeigenamen ein",
|
||||
"displayNameRequired": "Anzeigename ist erforderlich",
|
||||
"enterDisplayName": "Geben Sie Ihren Anzeigenamen ein",
|
||||
"extensionRequired": "Erweiterung erforderlich:",
|
||||
"firefoxExtensionPrompt": "Um die Bildschirmfreigabe nutzen zu können, muss eine Firefox-Erweiterung installiert werden. Bitte versuchen Sie es erneut nachdem die <a href='__url__'>Erweiterung installiert</a> wurde.",
|
||||
"rateExperience": "Bitte bewerten Sie diese Konferenz.",
|
||||
@@ -258,6 +291,7 @@
|
||||
"stopLiveStreaming": "Live-Streaming stoppen",
|
||||
"stopRecording": "Aufnahme stoppen",
|
||||
"doNotShowWarningAgain": "Diesen Hinweis nicht mehr anzeigen",
|
||||
"doNotShowMessageAgain": "Diesen Hinweis nicht mehr anzeigen",
|
||||
"permissionDenied": "Zugriff verweigert",
|
||||
"screenSharingPermissionDeniedError": "Sie haben die Berechtigung für die Bildschirmfreigabe nicht erteilt.",
|
||||
"micErrorPresent": "Fehler beim Verbinden zum Mikrofon.",
|
||||
@@ -275,7 +309,10 @@
|
||||
"cameraNotSendingData": "Die Kamera kann nicht verwendet werden. Bitte wählen Sie eine andere Kamera in den Einstellungen oder laden Sie die Konferenz neu.",
|
||||
"goToStore": "Zum Store",
|
||||
"externalInstallationTitle": "Erweiterung erforderlich",
|
||||
"externalInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden."
|
||||
"externalInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden.",
|
||||
"muteParticipantTitle": "Teilnehmer stummschalten?",
|
||||
"muteParticipantBody": "Sie können die Stummschaltung anderer Teilnehmer nicht aufheben, aber ein Teilnehmer kann seine eigene Stummschaltung jederzeit beenden.",
|
||||
"muteParticipantButton": "Stummschalten"
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
|
||||
@@ -1,59 +1,62 @@
|
||||
{
|
||||
"contactlist": "LISTA DE CONTACTOS",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Ajustes de la conexión",
|
||||
"poweredby": "impulsado por",
|
||||
"downloadlogs": "Descargar logs",
|
||||
"poweredby": "potenciado por",
|
||||
"feedback": "Danos tu opinión",
|
||||
"roomUrlDefaultMsg": "Tu conferencia está siendo creada...",
|
||||
"participant": "Participante",
|
||||
"inviteUrlDefaultMsg": "Tu conferencia está siendo creada...",
|
||||
"me": "yo",
|
||||
"speaker": "Orador",
|
||||
"raisedHand": "",
|
||||
"raisedHand": "Desea hablar",
|
||||
"defaultNickname": "ej. Juana Rosas",
|
||||
"defaultLink": "ej. __url__",
|
||||
"calling": "Llamando __nombre__ ...",
|
||||
"callingName": "__name__",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"firefoxGrantPermissions": "",
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"react-nativeGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono presionando el botón <b><i> Permitir </i></b>",
|
||||
"chromeGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono presionando el botón <b><i> Permitir </i></b>",
|
||||
"androidGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono presionando el botón <b><i> Permitir </i></b>",
|
||||
"firefoxGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono presionando el botón <b><i>Compartir Dispositivo seleccionado</i></b>",
|
||||
"operaGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono presionando el botón <b><i> Permitir </i></b>",
|
||||
"iexplorerGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono presionando el botón <b><i>OK</i></b>",
|
||||
"safariGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono presionando el botón <b><i>OK</i></b>",
|
||||
"nwjsGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Atajos de teclado:",
|
||||
"raiseHand": "Levantar la mano.",
|
||||
"pushToTalk": "Presione para hablar.",
|
||||
"toggleScreensharing": "Cambiar entre cámara y compartir pantalla.",
|
||||
"toggleFilmstrip": "Mostrar u ocultar película.",
|
||||
"toggleShortcuts": "Muestra u oculta este menú de ayuda.",
|
||||
"focusLocal": "Enfocar el video local.",
|
||||
"focusRemote": "Enfocarse en uno de los videos remotos.",
|
||||
"toggleChat": "Abrir o cerrar panel de charlas.",
|
||||
"mute": "Activar o desactivar micrófono.",
|
||||
"videoMute": "Detener o iniciar el video local."
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "IR",
|
||||
"roomname": "Introduzca un nombre de sala:",
|
||||
"roomname": "Introduzca un nombre de sala",
|
||||
"disable": "No mostrar esta página otra vez",
|
||||
"feature1": {
|
||||
"title": "Sencillo de usar",
|
||||
"content": "No se requiere descargar nada. __app__ funciona directamente con tu navegador. Solo comparte el URL de tu conferencia con otros para comenzar."
|
||||
"content": "No se requiere descargar nada. __app__ funciona directamente con su navegador. Solo comparta el URL de su conferencia con otros para comenzar."
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Bajo Ancho de Banda",
|
||||
"content": "Las Videoconferencias con múltiples participantes funcionan con tan solo 128 Kbps. Conferencias para compartir pantalla y audio son posibles con mucho menos."
|
||||
"title": "Bajo consumo de Ancho de Banda",
|
||||
"content": "Las Videoconferencias con múltiples participantes funcionan con tan solo 128 Kbps. Conferencias para compartir pantalla y solo audio son posibles con mucho menos."
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Código abierto",
|
||||
"content": "__app__ está licenciado bajo la licencia Apache. Eres libre de descargar, usar, modificar, y compartirlo conforme a esta licencia libre."
|
||||
"content": "__app__ está licenciado bajo la Licencia Apache. Eres libre de descargar, usar, modificar, y compartirlo de acuerdo a esta licencia."
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Usuarios ilimitados",
|
||||
"content": "No hay restricciones artificiales en el número de usuarios o participantes de la conferencia. La capacidad del servidor y ancho de banda son los únicos factores limitantes."
|
||||
"content": "No hay restricciones artificiales en el número de usuarios o participantes de la conferencia. La capacidad del servidor y del ancho de banda son los únicos factores limitantes."
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Compartir pantalla",
|
||||
@@ -72,59 +75,81 @@
|
||||
"content": "Aprenda de sus usuarios a través de una fácil integración con Piwik, Google Analytics, y otros sistemas de seguimiento y análisis de uso."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Activar / Desactivar Silencio",
|
||||
"videomute": "Iniciar / detener cámara",
|
||||
"videomute": "",
|
||||
"authenticate": "Autenticar",
|
||||
"lock": "Bloquear / desbloquear sala",
|
||||
"invite": "Invitar a otros",
|
||||
"chat": "Abrir / cerrar chat",
|
||||
"etherpad": "Compartir documento",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "Compartir un vídeo de YouTube",
|
||||
"sharescreen": "Compartir pantalla",
|
||||
"fullscreen": "Entrar / Salir de Pantalla completa",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Llamar a un número SIP",
|
||||
"Settings": "Ajustes",
|
||||
"hangup": "Colgar",
|
||||
"hangup": "",
|
||||
"login": "Inicio de sesión",
|
||||
"logout": "Cerrar sesión",
|
||||
"dialpad": "Mostrar teclado de llamada",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "Su vídeo compartido ha sido silenciado<br/>para que pueda hablar con otros participantes.",
|
||||
"micMutedPopup": "Su micrófono ha sido silenciado para que<br/>pueda disfrutar completamente de compartir su vídeo.",
|
||||
"micMutedPopup": "Su micrófono ha sido silenciado para que<br/>pueda disfrutar completamente de su vídeo compartido.",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "No puede silenciar su micrófono mientras el vídeo compartido está activo.",
|
||||
"cameraDisabled": "Cámara no disponible",
|
||||
"micDisabled": "Micrófono no disponible"
|
||||
"micDisabled": "Micrófono no disponible",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Abrir / cerrar chat",
|
||||
"filmstrip": "Mostrar / ocultar film",
|
||||
"contactlist": "Abrir / cerrar lista de contactos"
|
||||
"chat": "Abrir / cerrar sala de charlas",
|
||||
"filmstrip": "Mostrar / ocultar videos",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
"title": "Indique un nombre en la caja inferior",
|
||||
"popover": "Seleccione un nombre"
|
||||
"title": "Introduzca un apodo en la caja inferior",
|
||||
"popover": "Seleccione un apodo"
|
||||
},
|
||||
"messagebox": "Introduzca texto..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "CONFIGURAR",
|
||||
"title": "Ajustes",
|
||||
"update": "Actualizar",
|
||||
"name": "Nombre",
|
||||
"startAudioMuted": "Iniciar sin audio",
|
||||
"startVideoMuted": "Iniciar sin vídeo",
|
||||
"selectCamera": "Seleccionar cámara",
|
||||
"selectMic": "Seleccionar micrófono",
|
||||
"selectAudioOutput": "Selecciona salida de audio",
|
||||
"followMe": "Habilitar sígueme",
|
||||
"startAudioMuted": "Todos inician en silencio",
|
||||
"startVideoMuted": "Todos inician ocultos",
|
||||
"selectCamera": "Cámara",
|
||||
"selectMic": "Micrófono",
|
||||
"selectAudioOutput": "Salida de audio",
|
||||
"followMe": "Todos me siguen",
|
||||
"noDevice": "Ninguno",
|
||||
"noPermission": "Permiso para usar el dispositivo no permitido",
|
||||
"avatarUrl": "URL del Avatar"
|
||||
"cameraAndMic": "Cámara y micrófono",
|
||||
"moderator": "MODERADOR",
|
||||
"password": "ESTABLECER CONTRASEÑA",
|
||||
"audioVideo": "AUDIO Y VIDEO",
|
||||
"setPasswordLabel": "Bloquear su cuarto con contraseña"
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "Establecer nombre a mostrar",
|
||||
"setEmailLabel": "Establecer su gravatar",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Click para editar tu <br/>nombre",
|
||||
"editnickname": "Presione para editar tu <br/>nombre",
|
||||
"moderator": "El propietario de<br/>esta conferencia",
|
||||
"videomute": "Participante ha<br/>detenido la cámara.",
|
||||
"videomute": "Participante a<br/>detenido la cámara",
|
||||
"mute": "Participante está silenciado",
|
||||
"kick": "Expulsar",
|
||||
"muted": "Silenciado",
|
||||
@@ -132,6 +157,7 @@
|
||||
"flip": "Voltear"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Tasa de bits:",
|
||||
"packetloss": "Pérdida de paquetes:",
|
||||
"resolution": "Resolución:",
|
||||
@@ -148,63 +174,79 @@
|
||||
"remoteaddress_plural": "Direcciones remotas:",
|
||||
"transport": "Transporte:",
|
||||
"bandwidth": "Ancho de banda estimado:",
|
||||
"na": "Volver aquí para ver información de la conexión, una vez que se inicia la conferencia"
|
||||
"na": "Una vez que se inicia la conferencia, volver aquí para ver información de la conexión"
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "desconectado",
|
||||
"moderator": "¡Otorgados derechos de moderador! ",
|
||||
"moderator": "¡Se otorgaron privilegios de moderador!",
|
||||
"connected": "conectado",
|
||||
"somebody": "Alguien",
|
||||
"me": "Yo",
|
||||
"focus": "Foco de conferencia",
|
||||
"focus": "Enfocar conferencia",
|
||||
"focusFail": "__component__ no disponible - reintentar en __ms__ seg",
|
||||
"grantedTo": "¡Derechos de moderador otorgados a __to__!",
|
||||
"grantedToUnknown": "¡Derechos de moderador otorgados a $t(somebody)!",
|
||||
"grantedTo": "¡Se otorgaron privilegios de moderador a __to__!",
|
||||
"grantedToUnknown": "¡Se otorgaron privilegios de moderador a $t(somebody)!",
|
||||
"muted": "Has iniciado la conversación silenciado.",
|
||||
"mutedTitle": "¡Estás silenciado!",
|
||||
"raisedHand": ""
|
||||
"raisedHand": "Desearía hablar."
|
||||
},
|
||||
"dialog": {
|
||||
"kickMessage": "¡Auch! ¡Haz sido expulsado de la reunión!",
|
||||
"add": "",
|
||||
"kickMessage": "¡Ouch! ¡Has sido expulsado de la reunión!",
|
||||
"popupError": "Su navegador está bloqueando las ventanas emergentes de este sitio. Por favor, activa las ventanas emergentes en la configuración de seguridad del navegador y vuelva a intentarlo.",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Esta conversación está protegida con una contraseña. Sólo el propietario de la conferencia puede establecer una contraseña.",
|
||||
"passwordError2": "Esta conversación no está protegida con una contraseña. Sólo el propietario de la conferencia puede establecer una contraseña.",
|
||||
"connectError": "¡Uups! Algo salió mal y no pudimos conectarnos a la conferencia.",
|
||||
"connectErrorWithMsg": "¡Uups! Algo salió mal y no pudimos conectarnos a la conferencia: __msg__",
|
||||
"connectError": "¡Oops! Algo salio mal y no fue posible conectarnos a la conferencia.",
|
||||
"connectErrorWithMsg": "¡Oops! Algo salio mal y no fue posible conectarnos a la conferencia: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Conectando",
|
||||
"copy": "Copiar",
|
||||
"error": "Error",
|
||||
"detectext": "Error al tratar de detectar la extensión de compartir escritorio.",
|
||||
"failtoinstall": "Fallo al instalar la extensión de compartir escritorio",
|
||||
"failedpermissions": "Fallo al obtener permisos para utilizar el micrófono y/o cámara de tu equipo.",
|
||||
"bridgeUnavailable": "Videobridge Jitsi no está actualmente disponible. ¡Por favor inténtelo más tarde!",
|
||||
"jicofoUnavailable": "Jicofo no está disponible actualmente. ¡Por favor inténtelo más tarde!",
|
||||
"maxUsersLimitReached": "El número máximo de participantes en la conferencia ha sido alcanzado. La conferencia está llena. ¡Por favor intente nuevamente más tarde!",
|
||||
"lockTitle": "El número máximo de participantes en la conferencia ha sido alcanzado. La conferencia está llena. ¡Por favor intente nuevamente más tarde!",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Error al tratar de detectar la extensión para compartir escritorio.",
|
||||
"failtoinstall": "Falla al instalar la extensión para compartir escritorio",
|
||||
"failedpermissions": "Falla al obtener permisos para utilizar el micrófono y/o cámara de su equipo.",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "La conferencia está llena. El número máximo de participantes de la conferencia se ha alcanzado. ¡Por favor intente más tarde!",
|
||||
"lockTitle": "El bloqueo falló",
|
||||
"lockMessage": "No se pudo bloquear la conferencia.",
|
||||
"warning": "Advertencia",
|
||||
"passwordNotSupported": "No se soportan contraseñas para la sala. ",
|
||||
"sorry": "¡Perdón!",
|
||||
"internalError": "Error interno de la aplicación [setRemoteDescription]",
|
||||
"unableToSwitch": "No se puede activar transmisión de video",
|
||||
"SLDFailure": "¡Ups! Algo salió mal y no se logró silenciar! (Falla de SLD)",
|
||||
"SRDFailure": "¡Ups! ¡Algo salió mal y no se logró detener el video! (Falla SRD)",
|
||||
"oops": "¡Ups!",
|
||||
"warning": "Aviso",
|
||||
"passwordNotSupported": "No se soportan contraseñas para la sala.",
|
||||
"internalErrorTitle": "Error interno",
|
||||
"internalError": "¡Uups! Ocurrió algo incorrecto. Ocurrió el siguiente error: [setRemoteDescription]",
|
||||
"unableToSwitch": "No se puede cambiar secuencia de video.",
|
||||
"SLDFailure": "¡Oops! Algo salio mal y no se logró silenciar! (Falla de SLD)",
|
||||
"SRDFailure": "¡Oops! ¡Algo salio mal y no se logró detener el video! (Falla de SRD)",
|
||||
"oops": "¡Oops!",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Hubo algún tipo de error",
|
||||
"passwordRequired": "Se necesita contraseña",
|
||||
"passwordRequired": "Se requiere una contraseña",
|
||||
"Ok": "Aceptar",
|
||||
"done": "",
|
||||
"Remove": "Eliminar",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Compartir un vídeo",
|
||||
"shareVideoLinkError": "Por favor introduzca un enlace correcto de Youtube.",
|
||||
"removeSharedVideoTitle": "Eliminar video compartido",
|
||||
"removeSharedVideoMsg": "¿Estas seguro que deseas eliminar tu vídeo compartido?",
|
||||
"alreadySharedVideoMsg": "Otro participante esta ahora mismo compartiendo el vídeo. Esta conferencia permite sólo compartir un único vídeo a la vez.",
|
||||
"WaitingForHost": "Esperando al anfitrión...",
|
||||
"removeSharedVideoMsg": "¿Está seguro que desea eliminar su vídeo compartido?",
|
||||
"alreadySharedVideoMsg": "Otro participante está compartiendo el vídeo en este momento. Esta conferencia permite sólo compartir un vídeo a la vez.",
|
||||
"WaitingForHost": "Esperando al anfitrión ...",
|
||||
"WaitForHostMsg": "La conferencia <b>__room__ </b> aún no inicia. Si usted es el anfitrión, por favor autentíquese. De lo contrario, por favor espere a que el anfitrión llegue.",
|
||||
"IamHost": "Yo soy el anfitrión",
|
||||
"Cancel": "Cancelar",
|
||||
"Submit": "",
|
||||
"retry": "Reintentar",
|
||||
"logoutTitle": "Cerrar sesión",
|
||||
"logoutQuestion": "¿Está seguro que quiere salir y detener la conferencia?",
|
||||
"logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?",
|
||||
"sessTerminated": "Sesión finalizada",
|
||||
"hungUp": "Colgaste",
|
||||
"joinAgain": "Unirse de nuevo",
|
||||
@@ -214,30 +256,33 @@
|
||||
"recordingToken": "Introduzca el token de grabación",
|
||||
"Dial": "Marcar",
|
||||
"sipMsg": "Introduzca número SIP",
|
||||
"passwordCheck": "¿Realmente quieres eliminar tu contraseña?",
|
||||
"passwordMsg": "Indica una contraseña para bloquear tu sala",
|
||||
"Invite": "Invitar",
|
||||
"shareLink": "Comparte este enlace con las personas que deseas invitar",
|
||||
"passwordCheck": "¿Realmente desea eliminar su contraseña?",
|
||||
"passwordMsg": "Indique una contraseña para bloquear su sala",
|
||||
"shareLink": "",
|
||||
"settings1": "Configure su conferencia",
|
||||
"settings2": "Los participantes se unieron silenciados",
|
||||
"settings3": "Solicita nombres <br/> <br/>Establecer una contraseña para bloquear la sala:",
|
||||
"yourPassword": "tu contraseña",
|
||||
"Back": "Atrás",
|
||||
"settings3": "Solicitar apodos<br/><br/>Establecer una contraseña para bloquear la sala:",
|
||||
"yourPassword": "Introducir la nueva contraseña",
|
||||
"Back": "Anterior",
|
||||
"serviceUnavailable": "Servicio no disponible",
|
||||
"gracefulShutdown": "Nuestro servicio está detenido por mantenimiento. Por favor, inténtelo de nuevo más tarde.",
|
||||
"gracefulShutdown": "Nuestro servicio se encuentra en mantenimiento. Por favor, intente más tarde.",
|
||||
"Yes": "Sí",
|
||||
"reservationError": "Error de sistema de reservación",
|
||||
"reservationError": "Error del sistema de reservación",
|
||||
"reservationErrorMsg": "Código de error: __code__, message: __msg__",
|
||||
"password": "contraseña",
|
||||
"userPassword": "contraseña de usuario",
|
||||
"password": "Introducir contraseña",
|
||||
"userPassword": "contraseña del usuario",
|
||||
"token": "token",
|
||||
"tokenAuthFailed": "Error al autenticar con el servidor XMPP: token inválido",
|
||||
"displayNameRequired": "Por favor escriba su nombre",
|
||||
"extensionRequired": "Extensión requerida",
|
||||
"firefoxExtensionPrompt": "Es necesario instalar una extensión para Firefox con el fin de utilizar la pantalla compartida. Por favor, inténtelo de nuevo después de que lo obtenga de aquí <a href='__url__'> </a>!",
|
||||
"feedbackQuestion": "¿Como fue su llamada?",
|
||||
"thankYou": "Gracias por usar __appName__!",
|
||||
"sorryFeedback": " Sentimos escuchar eso. ¿Quieres decirnos algo más?",
|
||||
"tokenAuthFailedTitle": "Problema de autenticación",
|
||||
"tokenAuthFailed": "Lo siento, usted no tiene permiso para unirse a este llamada.",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Por favor escriba su nombre",
|
||||
"extensionRequired": "Extensión requerida:",
|
||||
"firefoxExtensionPrompt": "Necesita instalar una extensión para Firefox para poder utilizar la pantalla compartida. Por favor intente de nuevo, después de <a href='__url__'>obtenerla de aquí</a>!",
|
||||
"rateExperience": "Por favor, califique la experiencia de su reunión.",
|
||||
"feedbackHelp": "Su retroalimentación nos ayuda a mejorar nuestra experiencia de video.",
|
||||
"feedbackQuestion": "¡Comente sobre su llamada!",
|
||||
"thankYou": "¡Gracias por usar __appName__!",
|
||||
"sorryFeedback": "Lamentamos escuchar eso. ¿Quiere decirnos algo más?",
|
||||
"liveStreaming": "Emisión en Directo",
|
||||
"streamKey": "Nombre/clave de emisión",
|
||||
"startLiveStreaming": "Comenzar streaming en tiempo real",
|
||||
@@ -246,52 +291,61 @@
|
||||
"stopLiveStreaming": "Parar retransmisión en directo",
|
||||
"stopRecording": "Parar grabación",
|
||||
"doNotShowWarningAgain": "No volver a mostrar esta advertencia",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "Permiso Denegado",
|
||||
"screenSharingPermissionDeniedError": "No ha otorgado permiso para compartir su pantalla.",
|
||||
"micErrorPresent": "Hubo un error conectando su micrófono.",
|
||||
"cameraErrorPresent": "Hubo un error conectando su cámara.",
|
||||
"cameraUnsupportedResolutionError": "Su cámara no soporta la resolución de video.",
|
||||
"cameraUnknownError": "No se puede usar su cámara por motivos desconocidos.",
|
||||
"cameraPermissionDeniedError": "",
|
||||
"cameraPermissionDeniedError": "No ha otorgado permisos para usar su cámara. Puede unirse a la conferencia, pero no lo podrán ver. Utilice el botón en la barra de dirección para solucionar esto.",
|
||||
"cameraNotFoundError": "No se encontró la cámara.",
|
||||
"cameraConstraintFailedError": "Su cámara no cumple los requerimientos.",
|
||||
"micUnknownError": "No se puede usar su micrófono por motivos desconocidos.",
|
||||
"micPermissionDeniedError": "",
|
||||
"micPermissionDeniedError": "No ha otorgado permisos para usar su micrófono. Puede unirse a la conferencia, pero no lo podrán escuchar. Utilice el botón en la barra de dirección para solucionar esto.",
|
||||
"micNotFoundError": "No se encontró el micrófono.",
|
||||
"micConstraintFailedError": "Su micrófono no cumple los requerimientos."
|
||||
"micConstraintFailedError": "Su micrófono no cumple los requerimientos.",
|
||||
"micNotSendingData": "No fué posible acceder a su micrófono. Por favor, seleccione otro dispositivo del menú de configuración o intente reiniciando la aplicación.",
|
||||
"cameraNotSendingData": "No fué posible acceder a su cámara. Por favor, revise si otra aplicación está usando el dispositivo, seleccione otro dispositivo del menú de configuración o intente reiniciando la aplicación.",
|
||||
"goToStore": "Ir al webstore",
|
||||
"externalInstallationTitle": "Extensión requerida",
|
||||
"externalInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Silenciar"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
"Esta conferencia está protegida con contraseña. Utiliza el siguiente pin cuando te unas: ",
|
||||
"Esta conferencia está protegida con contraseña. Utiliza el siguiente pin cuando te unas:",
|
||||
"",
|
||||
"",
|
||||
"__sharedKey__",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"subject": "Invitación a a __appName__ (__conferenceName__)",
|
||||
"subject": "Invitación a __appName__ (__conferenceName__)",
|
||||
"body": [
|
||||
"Ey allí, quiero invitarte a una a conferencia __appName__ que acabo de crear.",
|
||||
"Hola, quiero invitarte a una a conferencia __appName__ que acabo de crear.",
|
||||
"",
|
||||
"",
|
||||
"Por favor pica en la liga siguiente para unirte a la conferencia.",
|
||||
"Por favor presiona el siguiente enlace para unirte a la conferencia.",
|
||||
"",
|
||||
"",
|
||||
"__roomUrl__",
|
||||
"",
|
||||
"",
|
||||
"__sharedKeyText__",
|
||||
"Nota que __appName__ es soportada solo por __supportedBrowsers__, por lo que debes usar uno de esos navegadores.",
|
||||
" Nota que __appName__ es soportada solo por __supportedBrowsers__, por lo que debes usar uno de esos navegadores.",
|
||||
"",
|
||||
"",
|
||||
"Talk to you in a sec!"
|
||||
"¡Hablamos en un segundo!"
|
||||
],
|
||||
"and": "y"
|
||||
},
|
||||
"connection": {
|
||||
"ERROR": "Error",
|
||||
"CONNECTING": "Conectando",
|
||||
"RECONNECTING": "Ocurrió un problema en la red. Reconectando ...",
|
||||
"RECONNECTING": "Ocurrió un problema en la red. Reconectando...",
|
||||
"CONNFAIL": "Conexión fallida",
|
||||
"AUTHENTICATING": "Autenticando",
|
||||
"AUTHFAIL": "Falló la autenticación",
|
||||
@@ -303,20 +357,20 @@
|
||||
"recording": {
|
||||
"pending": "La grabación esta esperando la entrada de un participante...",
|
||||
"on": "Grabando",
|
||||
"off": "Grabación parada",
|
||||
"off": "Grabación detenida",
|
||||
"failedToStart": "No se pudo iniciar la grabación",
|
||||
"buttonTooltip": "Iniciar / parar grabación",
|
||||
"buttonTooltip": "",
|
||||
"error": "Falla de grabación. Vuelva a intentarlo.",
|
||||
"unavailable": "El servicio de grabación no está disponible. Inténtelo más tarde."
|
||||
},
|
||||
"liveStreaming": {
|
||||
"pending": "Iniciando Emisión en Directo",
|
||||
"pending": "Iniciando Emisión en Directo...",
|
||||
"on": "Emisión en Directo",
|
||||
"off": "Emisión en Directo Detenida",
|
||||
"unavailable": "El servicio de emisión en directo no está disponible actualmente. Por favor inténtelo de nuevo más tarde.",
|
||||
"failedToStart": "La emisión en Directo falló al iniciar",
|
||||
"buttonTooltip": "Iniciar / parar emisión en directo",
|
||||
"streamIdRequired": "Por favor introduzca el id de emisión para poder lanzar la emisión en directo",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "Por favor introduzca el identificador de emisión para poder iniciar la emisión en directo",
|
||||
"error": "Falló el video en vivo. Por favor, vuelva a intentarlo.",
|
||||
"busy": "Todos los grabadores están ocupados. Por favor intente más tarde."
|
||||
}
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
{
|
||||
"contactlist": "Liste de contacts",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Paramètres de connexion",
|
||||
"poweredby": "Produit par",
|
||||
"downloadlogs": "Téléchargement des logs",
|
||||
"feedback": "Donnez-nous votre avis",
|
||||
"roomUrlDefaultMsg": "Votre conférence est en cours de création...",
|
||||
"participant": "Participant",
|
||||
"inviteUrlDefaultMsg": "Votre conférence est en cours de création...",
|
||||
"me": "moi",
|
||||
"speaker": "Haut-parleur",
|
||||
"raisedHand": "Aimerais prendre la parole",
|
||||
"defaultNickname": "ex. Jean Dupont",
|
||||
"defaultLink": "ex. __url__",
|
||||
"calling": "Appel __nom__ ...",
|
||||
"callingName": "__name__",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "Merci d'autoriser le partage de votre camera et microphone en appuyant sur le bouton <b><i>Autoriser</i></b>",
|
||||
"chromeGrantPermissions": "Merci d'autoriser le partage de votre camera et microphone en appuyant sur le bouton <b><i>Autoriser</i></b>",
|
||||
@@ -23,17 +25,18 @@
|
||||
"nwjsGrantPermissions": "Merci d'autoriser le partage de votre camera et microphone"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Raccourcis clavier :",
|
||||
"raiseHand": "Demander la parole.",
|
||||
"pushToTalk": "Appuyer pour parler.",
|
||||
"toggleScreensharing": "Basculer entre la caméra et le partage d'écran.",
|
||||
"toggleFilmstrip": "Afficher ou masquer les vidéos miniatures.",
|
||||
"toggleShortcuts": "Afficher ou masquer ce menu d'aide.",
|
||||
"focusLocal": "Focus sur la vidéo locale.",
|
||||
"focusRemote": "Focus sur l'une des vidéos distantes.",
|
||||
"toggleChat": "Ouvrir ou fermer le panneau de conversation.",
|
||||
"mute": "Activer ou désactiver le microphone.",
|
||||
"videoMute": "Arrêter ou démarrer la vidéo locale."
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "Créer",
|
||||
@@ -72,33 +75,45 @@
|
||||
"content": "Apprenez plus au sujet de vos utilisateurs avec une intégration facile de Piwik, Google Analytics et d'autres systèmes de statistiques et supervision d'utilisation."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Muet / Actif",
|
||||
"videomute": "Démarrer / Arrêter la caméra",
|
||||
"videomute": "",
|
||||
"authenticate": "Authentifiez-vous",
|
||||
"lock": "Verrouiller / déverrouiller la salle",
|
||||
"invite": "Inviter des participants",
|
||||
"chat": "Ouvrir / fermer le chat",
|
||||
"etherpad": "Document partagé",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "Partager une vidéo Youtube",
|
||||
"sharescreen": "Partager mon écran",
|
||||
"fullscreen": "Activer / Désactiver le plein écran",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Appeler un numéro SIP",
|
||||
"Settings": "Paramètres",
|
||||
"hangup": "Raccrocher",
|
||||
"hangup": "",
|
||||
"login": "Connexion",
|
||||
"logout": "Déconnexion",
|
||||
"dialpad": "Afficher le clavier de numérotation",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "Votre vidéo a été mise en muet<br/>pour que vous puissiez parler aux autres participants.",
|
||||
"micMutedPopup": "Votre microphone a été désactivé afin que vous<br/>puissiez profiter pleinement de votre vidéo partagée.",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "Vous ne pouvez pas réactiver votre microphone pendant que la vidéo partagée est activée.",
|
||||
"cameraDisabled": "La camera n'est pas disponible",
|
||||
"micDisabled": "Le microphone n'est pas disponible"
|
||||
"micDisabled": "Le microphone n'est pas disponible",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Ouvrir / fermer le chat",
|
||||
"filmstrip": "Montrer / cacher ma vidéo miniature",
|
||||
"contactlist": "Ouvrir / fermer ma liste de contacts"
|
||||
"filmstrip": "Afficher / cacher les vidéos",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -108,23 +123,33 @@
|
||||
"messagebox": "Saisissez votre texte..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "PARAMÈTRES",
|
||||
"title": "Paramètres",
|
||||
"update": "Mise à jour",
|
||||
"name": "Nom",
|
||||
"startAudioMuted": "Démarrer sans son",
|
||||
"startVideoMuted": "Démarrer sans vidéo",
|
||||
"selectCamera": "Sélectionnez une caméra",
|
||||
"selectMic": "Sélectionnez un microphone",
|
||||
"selectAudioOutput": "Sélectionner la sortie audio",
|
||||
"followMe": "Activer \"me suivre\"",
|
||||
"startAudioMuted": "Tout le monde commence en muet",
|
||||
"startVideoMuted": "Tout le monde commence masqué",
|
||||
"selectCamera": "Caméra",
|
||||
"selectMic": "Microphone",
|
||||
"selectAudioOutput": "Sortie audio",
|
||||
"followMe": "Tout le monde me suit",
|
||||
"noDevice": "Aucun",
|
||||
"noPermission": "L'autorisation d'utiliser l'appareil n'a pas été accordé",
|
||||
"avatarUrl": "URL de l'avatar"
|
||||
"cameraAndMic": "Caméra et microphone",
|
||||
"moderator": "MODÉRATEUR",
|
||||
"password": "DÉFINIR UN MOT DE PASSE",
|
||||
"audioVideo": "AUDIO ET VIDÉO",
|
||||
"setPasswordLabel": "Verrouiller votre salle avec un mot de passe."
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "Choisissez un pseudo",
|
||||
"setEmailLabel": "Définir votre courriel Gravatar",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Cliquez pour modifier<br/>votre nom",
|
||||
"moderator": "Le propriétaire de<br/>cette conférence",
|
||||
"videomute": "Un participant a<br/>arrêté sa caméra.",
|
||||
"videomute": "Un participant a<br/>arrêté sa caméra",
|
||||
"mute": "Un participant a coupé son micro",
|
||||
"kick": "Exclure",
|
||||
"muted": "Muet",
|
||||
@@ -132,6 +157,7 @@
|
||||
"flip": "Retourner"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Débit :",
|
||||
"packetloss": "Perte de paquets :",
|
||||
"resolution": "Résolution :",
|
||||
@@ -165,34 +191,49 @@
|
||||
"raisedHand": "Aimerais prendre la parole."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Oups! Vous avez été renvoyé de la réunion !",
|
||||
"popupError": "Votre navigateur bloque les fenêtres popup de ce site. Merci d'activer les popups dans les paramètres de sécurité de votre navigateur et d'essayer à nouveau.",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Cette conversation est actuellement protégée par un mot de passe. Seul le propriétaire de la conférence peut définir un mot de passe.",
|
||||
"passwordError2": "Cette conversation n'est actuellement pas protégé par un mot de passe. Seul le propriétaire de la conférence peut définir un mot de passe.",
|
||||
"connectError": "Oups! Un problème est survenu et la connexion à la conférence est impossible.",
|
||||
"connectErrorWithMsg": "Oups! Un problème est survenu et la connexion à la conférence est impossible: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Connexion en cours",
|
||||
"copy": "Copier",
|
||||
"error": "Erreur",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Une erreur est survenue pendant la détection de l'extension de partage d'écran.",
|
||||
"failtoinstall": "Échec de l'installation de l'extension de partage d'écran",
|
||||
"failedpermissions": "Échec d'obtention des permissions pour utiliser le micro et/ou la caméra.",
|
||||
"bridgeUnavailable": "Le pont de visioconférence Jitsi est indisponible pour le moment. Réessayez plus tard !",
|
||||
"jicofoUnavailable": "Le pont de visioconférence Jitsi est indisponible pour le moment. Réessayez plus tard !",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "La limite pour le nombre maximum de participants à la conférence a été atteinte. La conférence est pleine. Veuillez réessayer plus tard !",
|
||||
"lockTitle": "Échec du verrouillage",
|
||||
"lockMessage": "Impossible de verrouiller la conférence.",
|
||||
"warning": "Avertissement",
|
||||
"passwordNotSupported": "Les mots de passe de conférence ne sont pas supportés.",
|
||||
"sorry": "Désolé",
|
||||
"internalError": "Une erreur interne de l'application est survenue [setRemoteDescription]",
|
||||
"internalErrorTitle": "Erreur interne",
|
||||
"internalError": "Oups ! Quelque chose s'est mal passé. L'erreur suivante est apparue : [setRemoteDescription]",
|
||||
"unableToSwitch": "Impossible de changer le flux vidéo.",
|
||||
"SLDFailure": "Oups! Un problème est survenu et le micro n'a pas été coupé! (Échec SLD)",
|
||||
"SRDFailure": "Oups! Un problème est survenu et la caméra n'a pas été coupée! (Échec SRD)",
|
||||
"oops": "Oups !",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Une erreur est survenue",
|
||||
"passwordRequired": "Mot de passe requis",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"Remove": "Supprimer",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Partager une vidéo",
|
||||
"shareVideoLinkError": "Fournissez s'il vous plaît un lien Youtube fonctionnel.",
|
||||
"removeSharedVideoTitle": "Supprimer la vidéo partagée",
|
||||
@@ -202,6 +243,7 @@
|
||||
"WaitForHostMsg": "La conférence <b>__room__</b> n'a pas encore commencé. Si vous êtes l'hôte, merci de vous authentifier. Sinon, merci d'attendre que l'hôte arrive.",
|
||||
"IamHost": "Je suis l’hôte",
|
||||
"Cancel": "Annuler",
|
||||
"Submit": "",
|
||||
"retry": "Réessayer",
|
||||
"logoutTitle": "Déconnexion",
|
||||
"logoutQuestion": "Voulez-vous vraiment vous déconnecter et arrêter la conférence ?",
|
||||
@@ -216,26 +258,29 @@
|
||||
"sipMsg": "Saisissez un numéro SIP",
|
||||
"passwordCheck": "Voulez-vous vraiment supprimer votre mot de passe ?",
|
||||
"passwordMsg": "Saisissez un mot de passe pour verrouiller la conférence",
|
||||
"Invite": "Inviter",
|
||||
"shareLink": "Partagez ce lien avec toutes les personnes que vous voulez inviter",
|
||||
"shareLink": "",
|
||||
"settings1": "Configurez votre conférence",
|
||||
"settings2": "Les participants rejoignent la conférence en étant muets",
|
||||
"settings3": "Pseudonymes requis<br/><br/>Saisissez un mot de passe pour verrouiller la conférence :",
|
||||
"yourPassword": "votre mot de passe",
|
||||
"yourPassword": "Saisissez un nouveau mot de passe",
|
||||
"Back": "Retour",
|
||||
"serviceUnavailable": "Service indisponible",
|
||||
"gracefulShutdown": "Le service est actuellement en maintenance. Réessayez plus tard.",
|
||||
"Yes": "Oui",
|
||||
"reservationError": "Erreur du système de réservation",
|
||||
"reservationErrorMsg": "Code d'erreur: __code__, message: __msg__",
|
||||
"password": "mot de passe",
|
||||
"password": "Saisir le mot de passe",
|
||||
"userPassword": "mot de passe utilisateur",
|
||||
"token": "jeton",
|
||||
"tokenAuthFailed": "Échec de l'authentification avec le serveur XMPP : jeton non valide",
|
||||
"displayNameRequired": "Veuillez saisir votre nom",
|
||||
"tokenAuthFailedTitle": "Échec de l'authentification",
|
||||
"tokenAuthFailed": "Désolé, vous n'êtes pas autorisé à rejoindre cette conversation.",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Veuillez saisir votre nom",
|
||||
"extensionRequired": "Extension requise :",
|
||||
"firefoxExtensionPrompt": "Vous devez installer une extension Firefox pour utiliser le partage d'écran. Merci d'essayer de nouveau après l'installation <a href='__url__'>depuis ce lien</a> !",
|
||||
"feedbackQuestion": "Comment était votre conférence ?",
|
||||
"rateExperience": "Veuillez évaluer votre réunion.",
|
||||
"feedbackHelp": "Vos retours nous permettrons d'améliorer notre expérience vidéo.",
|
||||
"feedbackQuestion": "Informez-nous à propos de votre appel !",
|
||||
"thankYou": "Merci d'avoir utilisé __appName__ !",
|
||||
"sorryFeedback": "Nous sommes désolés d'apprendre cela. Voulez-vous nous en dire plus ?",
|
||||
"liveStreaming": "Direct",
|
||||
@@ -246,6 +291,7 @@
|
||||
"stopLiveStreaming": "Arrêter le direct",
|
||||
"stopRecording": "Arrêter l'enregistrement",
|
||||
"doNotShowWarningAgain": "Ne plus afficher cet avertissement",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "Permission refusée",
|
||||
"screenSharingPermissionDeniedError": "Vous n'avez pas autorisé le partage de votre écran.",
|
||||
"micErrorPresent": "Une erreur est survenue lors de la connexion à votre microphone.",
|
||||
@@ -253,12 +299,20 @@
|
||||
"cameraUnsupportedResolutionError": "Votre appareil ne prend pas en charge la résolution vidéo requise.",
|
||||
"cameraUnknownError": "Vous ne pouvez pas utiliser la caméra pour une raison inconnue.",
|
||||
"cameraPermissionDeniedError": "Vous n'avez pas autorisé l'utilisation de votre caméra. Vous pouvez toujours participer à la conférence, mais les autres ne vont pas vous voir. Utilisez le bouton de la caméra dans la barre d'adresse pour résoudre ce problème.",
|
||||
"cameraNotFoundError": "La caméra demandée n'a pas été trouvée.",
|
||||
"cameraNotFoundError": "La caméra n'a pas été trouvée",
|
||||
"cameraConstraintFailedError": "Votre caméra ne satisfait pas certaines des contraintes nécessaires.",
|
||||
"micUnknownError": "Vous ne pouvez pas utiliser le microphone pour une raison inconnue.",
|
||||
"micPermissionDeniedError": "Vous n'avez pas autorisé l'utilisation de votre microphone. Vous pouvez toujours participer à la conférence, mais les autres ne vont pas vous entendre. Utilisez le bouton du microphone dans la barre d'adresse pour résoudre ce problème.",
|
||||
"micNotFoundError": "Le microphone demandé n'a pas été trouvé.",
|
||||
"micConstraintFailedError": "Votre microphone ne satisfait pas certaines des contraintes nécessaires."
|
||||
"micNotFoundError": "Le microphone n'a pas été détecté.",
|
||||
"micConstraintFailedError": "Votre microphone ne satisfait pas certaines des contraintes nécessaires.",
|
||||
"micNotSendingData": "Nous ne pouvons pas accéder à votre microphone. Veuillez sélectionner un autre périphérique dans le menu des paramètres ou essayez de redémarrer l'application.",
|
||||
"cameraNotSendingData": "Nous ne pouvons pas accéder à votre caméra. Vérifiez si une autre application utilise ce périphérique, sélectionnez un autre périphérique dans le menu des paramètres ou essayez de redémarrer l'application.",
|
||||
"goToStore": "Aller sur le webstore",
|
||||
"externalInstallationTitle": "Extension requise : ",
|
||||
"externalInstallationMsg": "Vous devez installer notre extension de partage de bureau.",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Couper le son"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -305,7 +359,7 @@
|
||||
"on": "Enregistrement",
|
||||
"off": "Enregistrement arrêter",
|
||||
"failedToStart": "L'enregistrement n'as pas réussi à démarrer",
|
||||
"buttonTooltip": "Démarrer / arrêter l'enregistrement",
|
||||
"buttonTooltip": "",
|
||||
"error": "Échec de l'enregistrement. Veuillez réessayer.",
|
||||
"unavailable": "Le service d'enregistrement est actuellement indisponible. Veuillez réessayer plus tard."
|
||||
},
|
||||
@@ -315,7 +369,7 @@
|
||||
"off": "Le direct a été arrêter",
|
||||
"unavailable": "Le direct est temporairement indisponible. Veuillez réessayer plus tard.",
|
||||
"failedToStart": "Le direct n'as pas réussi à démarrer",
|
||||
"buttonTooltip": "Démarrer / arrêter le direct",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "Merci de renseigner le stream id pour lancer le direct.",
|
||||
"error": "La retransmission en direct a échoué. Veuillez réessayer.",
|
||||
"busy": "Tous les enregistreurs sont actuellement occupés. Veuillez réessayer plus tard."
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"contactlist": "Զանգ",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Միացման կարգավորումներ",
|
||||
"poweredby": "Հիմնված է",
|
||||
"feedback": "Հայտնեք ձեր կարծիքը",
|
||||
"roomUrlDefaultMsg": "Ձեր կոնֆերանսը այժմ ստեղծվում է...",
|
||||
"inviteUrlDefaultMsg": "Ձեր կոնֆերանսը այժմ ստեղծվում է...",
|
||||
"me": "ես",
|
||||
"speaker": "Հռետոր",
|
||||
"raisedHand": "Ցանկանում է խոսել",
|
||||
@@ -11,27 +15,28 @@
|
||||
"defaultLink": "օրինակ՝ __url__",
|
||||
"callingName": "__անուն__",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"react-nativeGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ <b> <i>ընդունել</ i> </ b> կոճակը",
|
||||
"chromeGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ <b> <i>ընդունել</ i> </ b> կոճակը",
|
||||
"androidGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ <b> <i>ընդունել</ i> </ b> կոճակը",
|
||||
"firefoxGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ <b> <i> տարածել նշված սարքը </ i> </ b> կոճակը",
|
||||
"operaGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ <b> <i>ընդունել</ i> </ b> կոճակը",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ <b> <i>Այո</ i> </ b> կոճակը",
|
||||
"safariGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ <b> <i>Այո</ i> </ b> կոճակը",
|
||||
"nwjsGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Ստեղնաշարի դյուրանցումներ (shortcuts)",
|
||||
"raiseHand": "Բարձրացրեք Ձեր ձեռքը",
|
||||
"pushToTalk": "Սեղմեք խոսելու համար",
|
||||
"toggleScreensharing": "Անցնել ֆոտոխցիկի և էկրանի փոխանակման միջև",
|
||||
"toggleFilmstrip": "Ցույց տալ կամ թաքցնել տեսանյութերը",
|
||||
"toggleShortcuts": "Ցույց տալ կամ թաքցնել այս օգնության մենյուն",
|
||||
"focusLocal": "Կենտրոնանալ տեղական տեսանյութի վրա",
|
||||
"focusRemote": "Կենտրոնանալ տեղական տեսանյութի վրա",
|
||||
"toggleChat": "Բացել կամ փակել չատի պանելը",
|
||||
"mute": "Անջատել կամ միացնել խոսափողը",
|
||||
"videoMute": "Կանգնեցնել կամ սկսել տեղական տեսանյութը"
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "ՄՈՒՏՔ",
|
||||
@@ -70,35 +75,45 @@
|
||||
"content": "Օգտագործման վիճակագրություն կարելի է ստանալ հեշտ ինտեգրվող Piwik, Google Analytics կամ այլ մոնիտորինգի համակարգերի միջոցով:"
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Ձայնը Միացնել/Անջատել ",
|
||||
"videomute": "Տեսախցիկը Միացնել/Անջատել ",
|
||||
"videomute": "",
|
||||
"authenticate": "Վավերացում",
|
||||
"lock": "Փակել/բացել սենյակը",
|
||||
"invite": "Հրավիրել ուրիշներին",
|
||||
"chat": "Բացել/փակել չատը",
|
||||
"etherpad": "Համատեղ փաստաթուղթ",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "Կիսվել YouTube-ի նյութով",
|
||||
"sharescreen": "Ցուցադրել էկրանը",
|
||||
"fullscreen": "Ամբողջ Էկրանի ռեժիմը միացնել/անջատել",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Զանգել SIP համարով",
|
||||
"Settings": "Կարգավորումներ",
|
||||
"hangup": "Անջատել",
|
||||
"hangup": "",
|
||||
"login": "Մուտք",
|
||||
"logout": "Ելք",
|
||||
"dialpad": "Ցույց տալ թվաշարը",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "Ձեր ցուցադրված տեսանյութի ձայնը անջատված է, այնպես որ <br />, կարող եք խոսել մյուս մասնակիցների հետ:",
|
||||
"micMutedPopup": "Ձեր խոսափողը անջատված է՝<br/> կարող եք լիովին վայելել ձեր ցուցադրված տեսանյութը:",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "Դուք չեք կարող միացնել ձայնը, քանի դեռ միանցված է ցուցադրվող տեսանյութը:",
|
||||
"cameraDisabled": "Տեսախցիկը հասանելի չէ",
|
||||
"micDisabled": "Խոսափողը հասանելի չէ",
|
||||
"filmstrip": "",
|
||||
"raiseHand": "Բարձրացրեք ձեռքը խոսելու համար"
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Բացել/փակել չատը",
|
||||
"filmstrip": "Ցույց տալ/թաքցնել տեսանյութները",
|
||||
"contactlist": "Բացել/փակել կոնտակտների ցուցակը"
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -126,9 +141,10 @@
|
||||
"setPasswordLabel": "Փակել սենյակը գաղտնաբառով"
|
||||
},
|
||||
"profile": {
|
||||
"title": "Էջ",
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "Դնել Ձեր երևացող անունը",
|
||||
"setEmailLabel": "Սահմանեք Ձեր gravatar էլ.փոստը"
|
||||
"setEmailLabel": "Սահմանեք Ձեր gravatar էլ.փոստը",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Սեղմեք Ձեր անունը <br/>փոխելու համար",
|
||||
@@ -141,6 +157,7 @@
|
||||
"flip": "Շրջել"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Բիթրեյթ",
|
||||
"packetloss": "Փաթեթների կորուստ՝",
|
||||
"resolution": "Որակ՝",
|
||||
@@ -170,20 +187,30 @@
|
||||
"raisedHand": "Ցանկանում է խոսել"
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Վա՜յ: Ձեզ դուրս հանեցին հանդիպումից:",
|
||||
"popupError": "Ձեր բրաուզերը արգելափակել է թռուցիկ(popup) պատուհանները այս կայքում: Խնդրում ենք միացրեք թռուցիկները Ձեր բրաուզերի անվտանգության կարգավորումներում և կրկին փորձեք:",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Այս խոսակցությունը այս պահին պաշտպանված է գաղտնաբառով:Միայն կոնֆերանսի սեփականատերը կարող է սահմանել գաղտնաբառ:",
|
||||
"passwordError2": "Այս խոսակցությունը այս պահին պաշտպանված չէ գաղտնաբառով:Միայն կոնֆերանսի սեփականատերը կարող է սահմանել գաղտնաբառ:",
|
||||
"connectError": "Ու՜պս! Ինչոր բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին:",
|
||||
"connectErrorWithMsg": "Ու՜պս! Ինչոր բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Միանում է...",
|
||||
"copy": "Պատճենել",
|
||||
"error": "Սխալ",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Սխալ, երբ փորձում է հայտնաբերել էկրանի ցուցադրման ընդլայնումը:",
|
||||
"failtoinstall": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը",
|
||||
"failedpermissions": "Չհաջողվեց ստանալ թույլտվություն օգտագործելու տեղի խոսափողը և/ կամ տեսախցիկը:",
|
||||
"bridgeUnavailable": "Jitsi Videobridge-ը ներկայումս անհասանելի է: Խնդրում ենք փորձեք մի փոքր ուշ!",
|
||||
"jicofoUnavailable": "Jicofo ներկայումս անհասանելի է: Խնդրում ենք փորձեք ավելի ուշ:",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "Մասնակիցների առավելագույն թիվը արդեն լրացել է: Մասնակիցները արդեն հավաքվել են: Խնդրում ենք փորձեք ավելի ուշ:",
|
||||
"lockTitle": "Փակումը ձախողվեց",
|
||||
"lockMessage": "Ձախողվեց արգելափակել կոնֆերանսը:",
|
||||
@@ -195,10 +222,14 @@
|
||||
"SLDFailure": "Ու՜պս: Ինչ-որ բան գնաց սխալ, և մենք չկարողացանք անջատել ձայնը (SLD Failure)",
|
||||
"SRDFailure": "Ու՜պս: Ինչ-որ բան գնաց սխալ, և մենք չկարողացանք անջատել տեսահոսքը (SRD Failure)",
|
||||
"oops": "Ու՜պս:",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Առկա էր որոշակի սխալ",
|
||||
"passwordRequired": "Պահանջվում է գաղտնաբառ",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"Remove": "Հեռացնել",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Տարածել տեսանյութը",
|
||||
"shareVideoLinkError": "Խնդրում ենք ներկայացնել ճիշտ Youtube հղում:",
|
||||
"removeSharedVideoTitle": "Հեռացնել տարածված տեսանյութը",
|
||||
@@ -208,6 +239,7 @@
|
||||
"WaitForHostMsg": "Կոնֆերանսը <b> __ root__ </ b> դեռ չի սկսվել. Եթե դուք են հյուրընկալող եք ապա խնդրում ենք հաստատել իսկությունը: Հակառակ դեպքում, խնդրում ենք սպասել հյուրընկալող կժամանի.",
|
||||
"IamHost": "Ես եմ ընդունողը",
|
||||
"Cancel": "Չեղարկել",
|
||||
"Submit": "",
|
||||
"retry": "Կրկին փորձել",
|
||||
"logoutTitle": "Ելք",
|
||||
"logoutQuestion": "Համոզված եք, որ ցանկանում եք դուրս գալ, եւ դադարեցնել կոնֆերանսը:",
|
||||
@@ -222,7 +254,7 @@
|
||||
"sipMsg": "Նշեք SIP համարը",
|
||||
"passwordCheck": "Դուք վստա՞հ էք որ ցանկանում էք ջնջել Ձեր գաղտնաբառը։",
|
||||
"passwordMsg": "Սահմանել գաղտնաբառ ձեր սենյակը կողպելու համար",
|
||||
"shareLink": "Պատճենել և կիսվել այս հղումով",
|
||||
"shareLink": "",
|
||||
"settings1": "Կարգավորել Ձեր կոնֆերանսը",
|
||||
"settings2": "Մասնակիցները միացան անջատվախ ձայնով",
|
||||
"settings3": "Պահանջվում է մականունը<br/><br/>Դրեք գաղտնաբառ Ձեր սենյակը արգելափակելու համար",
|
||||
@@ -238,7 +270,8 @@
|
||||
"token": "սիմվոլ",
|
||||
"tokenAuthFailedTitle": "Վավերացումը չի ստացվել",
|
||||
"tokenAuthFailed": "Ներողություն,Դուք ընդունված չեք այս զանգին միանալու համար",
|
||||
"displayNameRequired": "Խնդրում ենք մուտքագրել Ձեր ցուցադրման անունը",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Խնդրում ենք մուտքագրել Ձեր ցուցադրման անունը",
|
||||
"extensionRequired": "Ընդլայնում է պահանջվում:",
|
||||
"firefoxExtensionPrompt": "Դուք պետք է տեղադրեք Firefox ընդլայնում, որպեսզի օգտագործել էկրանի փոխանակման ռեժիմը: Խնդրում ենք փորձեք կրկին՝ այն <a href='__url__'> այստեղից ձեռք բերելուց հետո</a>:",
|
||||
"rateExperience": "Խնդրում ենք ներկայացրեք Ձեր հանդիպման փորձը",
|
||||
@@ -254,6 +287,7 @@
|
||||
"stopLiveStreaming": "Կանգնացնել ուղիղ հեռարձակումը:",
|
||||
"stopRecording": "Կանգնացնել ձայնագրումը",
|
||||
"doNotShowWarningAgain": "Այլևս ցույց չտալ այս նախազգուշական էջը",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "Թույլատվությունը արգելված է",
|
||||
"screenSharingPermissionDeniedError": "Դուք չունեք թույլտվություն կիսվել Ձեր էկրանով",
|
||||
"micErrorPresent": "Տեղի է ունեցել սխալ Ձեր խոսափողին միանալիս",
|
||||
@@ -271,7 +305,10 @@
|
||||
"cameraNotSendingData": "Մենք չեն կարողանում միանալ Ձեր տեսախցիկին: Խնդրում ենք ստուգեք թե արդյոք մեկ ուրիշ սարք չի օգտագործում այն կամ ընտրեք մեկ այլ սարք կարգավորումների ցանկից կամ փորձեք վերսկսել ծրագիրը:",
|
||||
"goToStore": "Գնալ դեպի վեբ խանութ",
|
||||
"externalInstallationTitle": "Ընդլայնում է պահանջվում:",
|
||||
"externalInstallationMsg": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը"
|
||||
"externalInstallationMsg": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Անջատել ձայնը"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -314,7 +351,7 @@
|
||||
"on": "Գրանցում",
|
||||
"off": "Ձայնագրությունը կանգնացված է",
|
||||
"failedToStart": "Ձայնագրությունը ստացվեց սկսել",
|
||||
"buttonTooltip": "Սկսել / կանգնացնել ձայնագրությունը",
|
||||
"buttonTooltip": "",
|
||||
"error": "Ձայնագրությյունը չստացվեց: Փորձեք կրկին",
|
||||
"unavailable": "Ձայնագրության ծառայությունը ներկայումս անհասանելի է: Խնդրում եմ փորձեք մի փոքր ուշ:"
|
||||
},
|
||||
@@ -324,7 +361,7 @@
|
||||
"off": "Ուղիղ Հեռարձակումը կանգնեցված է",
|
||||
"unavailable": "Ուղիղ հեռարձակման ծառայությունը ներկայումս հասանելի չէ: Խնդրում եք փորձեք ավելի ուշ:",
|
||||
"failedToStart": "Ուղիղ հեռարձակումը չստացվեց սկսել",
|
||||
"buttonTooltip": "Սկսել / կանգնեցնել ուղիղ հեռարձակումը",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "Խնդրում ենք լրացնել հոսքի ID-ն, որպեսզի կսկսի հեռարձակումը:",
|
||||
"error": "Ուղիղ հեռարձակումը չստացվեց: Փորձեք կրկին",
|
||||
"busy": "Բոլոր ձայնագրիչները ներկայումս զբաղված են: Խնդրում ենք փորձեք մի փոքր ուշ:"
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
{
|
||||
"contactlist": "LISTA CONTATTI",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Impostazioni Connessione",
|
||||
"poweredby": "powered by",
|
||||
"downloadlogs": "Scarica logs",
|
||||
"feedback": "",
|
||||
"roomUrlDefaultMsg": "La tua conferenza sta per essere creata...",
|
||||
"participant": "Partecipante",
|
||||
"inviteUrlDefaultMsg": "La tua conferenza sta per essere creata...",
|
||||
"me": "io",
|
||||
"speaker": "Relatore",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "es. __url__",
|
||||
"calling": "",
|
||||
"callingName": "",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -33,6 +35,7 @@
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
@@ -72,33 +75,45 @@
|
||||
"content": "Impara come i tuoi utenti lo utilizzano con la facile integrazione con PiWik, Google Analytics, e altri sistemi di statistica e monitor dell'utilizzo."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Microfono Attiva / Disattiva",
|
||||
"videomute": "Abilita / Disabilita video",
|
||||
"videomute": "",
|
||||
"authenticate": "Autenticazione",
|
||||
"lock": "Blocca / Sblocca Stanza",
|
||||
"invite": "Invita altri",
|
||||
"chat": "Apri / Chiudi chat",
|
||||
"etherpad": "Documento condiviso",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "Condividi schermo",
|
||||
"fullscreen": "Entra / Esci da schermo intero",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Chiama numero SIP",
|
||||
"Settings": "Impostazioni",
|
||||
"hangup": "Termina",
|
||||
"hangup": "",
|
||||
"login": "Login",
|
||||
"logout": "Logout",
|
||||
"dialpad": "Mostra il tastierino",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "",
|
||||
"micMutedPopup": "",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "",
|
||||
"cameraDisabled": "",
|
||||
"micDisabled": ""
|
||||
"micDisabled": "",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Apri / Chiudi chat",
|
||||
"filmstrip": "Mostra / Nascondi miniature",
|
||||
"contactlist": "Apri / Chiudi la lista contatti"
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -108,7 +123,7 @@
|
||||
"messagebox": "Inserisci testo..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "IMPOSTAZIONI",
|
||||
"title": "Impostazioni",
|
||||
"update": "Aggiorna",
|
||||
"name": "Nome",
|
||||
"startAudioMuted": "",
|
||||
@@ -119,12 +134,22 @@
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"avatarUrl": ""
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Clicca per modificare il tuo<br/>nome visualizzato",
|
||||
"moderator": "Il proprietario<br/>della conferenza",
|
||||
"videomute": "Il partecipante ha<br/>fermato il video.",
|
||||
"videomute": "",
|
||||
"mute": "Il partecipante è in muto",
|
||||
"kick": "Espelli",
|
||||
"muted": "Audio disattivato",
|
||||
@@ -132,6 +157,7 @@
|
||||
"flip": ""
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Bitrate:",
|
||||
"packetloss": "Perdita pacchetti:",
|
||||
"resolution": "Risoluzione:",
|
||||
@@ -165,43 +191,59 @@
|
||||
"raisedHand": ""
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Accidenti! Sei stato espulso dalla conferenza !",
|
||||
"popupError": "",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "",
|
||||
"passwordError2": "",
|
||||
"connectError": "Oops! Qualcosa è andato storto e non ti puoi collegare alla conferenza.",
|
||||
"connectErrorWithMsg": "Oops! Qualcosa è andato storto e non ti puoi collegare alla conferenza: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Connessione",
|
||||
"copy": "",
|
||||
"error": "Errore",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Errore durante il rilevamento dell'estensione per il desktopsharing.",
|
||||
"failtoinstall": "Impossibile installare l'estensione per il desktop sharing",
|
||||
"failedpermissions": "Impossibile ottenere i permessi per usare il microfono e/o il video locale.",
|
||||
"bridgeUnavailable": "Il Videobridge non è al momento disponibile. Si prega di riprovare più tardi!",
|
||||
"jicofoUnavailable": "",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Blocco fallito",
|
||||
"lockMessage": "",
|
||||
"lockMessage": "Impossibile bloccare la conferenza.",
|
||||
"warning": "Attenzione",
|
||||
"passwordNotSupported": "Le password sulla stanza non sono al momento supportate.",
|
||||
"sorry": "Spiacente",
|
||||
"internalError": "Errore interno dell'applicazione [setRemoteDescription]",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"unableToSwitch": "Impossibile cambiare lo stream video.",
|
||||
"SLDFailure": "Oops! Qualcosa è andato storto e non è possibile silenziare il microfono! (Errore SLD)",
|
||||
"SRDFailure": "Oops! Qualcosa è andato storto e non è possibile fermare il video! (Errore SRD)",
|
||||
"oops": "Oops!",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "C'è stato qualche tipo di errore",
|
||||
"passwordRequired": "Richiesta password ",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"Remove": "Rimuovi",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"shareVideoLinkError": "Fornire un link Prezi esatto.",
|
||||
"removeSharedVideoTitle": "",
|
||||
"removeSharedVideoMsg": "",
|
||||
"removeSharedVideoMsg": "Sei sicuro di voler rimuovere il tuo Prezi?",
|
||||
"alreadySharedVideoMsg": "",
|
||||
"WaitingForHost": "In attesa dell'organizzatore ...",
|
||||
"WaitForHostMsg": "La conferenza <b>__room__ </b> non è ancora iniziata. Se sei l'organizzatore sei pregato di autenticarti, altrimenti ti preghiamo di attendere l'arrivo dell'organizzatore.",
|
||||
"IamHost": "Sono l'organizzatore",
|
||||
"Cancel": "Annulla",
|
||||
"Submit": "",
|
||||
"retry": "Riprova",
|
||||
"logoutTitle": "Logout",
|
||||
"logoutQuestion": "Vuoi disconnetterti e interrompere la conferenza ?",
|
||||
@@ -216,25 +258,28 @@
|
||||
"sipMsg": "Inserire numero SIP",
|
||||
"passwordCheck": "Confermi la rimozione della password?",
|
||||
"passwordMsg": "Imposta una password per bloccare la stanza",
|
||||
"Invite": "Invita",
|
||||
"shareLink": "Condividi questo link con tutte le persone che vuoi invitare",
|
||||
"shareLink": "",
|
||||
"settings1": "Configura la tua conferenza",
|
||||
"settings2": "Partecipanti connessi in muto",
|
||||
"settings3": "Richiedi nicknames<br/><br/>Imposta una password per bloccare la tua stanza:",
|
||||
"yourPassword": "la tua password",
|
||||
"yourPassword": "",
|
||||
"Back": "Indietro",
|
||||
"serviceUnavailable": "Servizio non disponibile",
|
||||
"gracefulShutdown": "Il nostro servizio è al momento spento per manutenzione. Si prega di riprovare più tardi.",
|
||||
"Yes": "Sì",
|
||||
"reservationError": "Errore di sistema in prenotazione",
|
||||
"reservationErrorMsg": "Codice di errore: __code__, messaggio: __msg__",
|
||||
"password": "password",
|
||||
"password": "",
|
||||
"userPassword": "password utente",
|
||||
"token": "token",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Per favore, inserisci il tuo nome utente:",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
"sorryFeedback": "",
|
||||
@@ -246,6 +291,7 @@
|
||||
"stopLiveStreaming": "",
|
||||
"stopRecording": "",
|
||||
"doNotShowWarningAgain": "",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "",
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"micErrorPresent": "",
|
||||
@@ -258,8 +304,17 @@
|
||||
"micUnknownError": "",
|
||||
"micPermissionDeniedError": "",
|
||||
"micNotFoundError": "",
|
||||
"micConstraintFailedError": ""
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Disattiva audio"
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
"sharedKey": "",
|
||||
"subject": "Invito su __appName__ (__conferenceName__)",
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"contactlist": "Al telefòn",
|
||||
"contactlist": "Participants (__pcount__)",
|
||||
"addParticipants": "Partejatz lo ligam",
|
||||
"roomLocked": "Los qu'apèlan devon picar un senhal",
|
||||
"roomUnlocked": "Qual que siá amb lo ligam pòt participar",
|
||||
"passwordSetRemotely": "causit per qualqu'un mai",
|
||||
"connectionsettings": "Paramètres de connexion",
|
||||
"poweredby": "Produit per",
|
||||
"feedback": "Donatz-nos vòstre vejaire",
|
||||
"roomUrlDefaultMsg": "Vòstra conferéncia es en cors de creacion...",
|
||||
"inviteUrlDefaultMsg": "Vòstra conferéncia es en cors de creacion...",
|
||||
"me": "ieu",
|
||||
"speaker": "Nautparlaire",
|
||||
"raisedHand": "Volriatz charrar",
|
||||
@@ -22,16 +26,17 @@
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Acorchis de clavièr",
|
||||
"raiseHand": "Demandar a parlar.",
|
||||
"raiseHand": "Demandar o pas la paraula",
|
||||
"pushToTalk": "Butar per parlar",
|
||||
"toggleScreensharing": "Caplevar entre camerà e partatge d'ecran",
|
||||
"toggleFilmstrip": "Mostrar o escondre la vidèo",
|
||||
"toggleShortcuts": "Afichar o amagar aiceste menú d'ajuda",
|
||||
"focusLocal": "Focus sus la vidèo locala.",
|
||||
"focusRemote": "Focus sus una de las vidèas aluènhadas.",
|
||||
"toggleChat": "Dubrir o tampar lo panèl de conversacion.",
|
||||
"mute": "Activar o desactivar lo microfòn.",
|
||||
"videoMute": "Arrestar o lançar la vidèo locala."
|
||||
"focusLocal": "Centrar sus vòstra vidèo",
|
||||
"focusRemote": "Centrar sus la vidèo de qualqu'un mai",
|
||||
"toggleChat": "Dubrir o tampar lo panèl de conversacion",
|
||||
"mute": "Activar o desactivar lo microfòn",
|
||||
"fullScreen": "Activar / Desactivar l'ecran complet",
|
||||
"videoMute": "Aviar o arrestar vòstra camerà"
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "Crear",
|
||||
@@ -70,35 +75,45 @@
|
||||
"content": "Aprenètz mai a prepaus de vòstres utilizaires amb una integracion aisida de Piwik, Google Analytics e d'autres sistèmas d'estatisticas e supervision d'utilizacion."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"title": "__app__ a besonh d'utilizar vòstre microfòn e camerà."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "Vòstra conferéncia vidèo es estada arrestada perque vòstre ordinador se botèt en velha.",
|
||||
"rejoinKeyTitle": "Tornar participar"
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Mut / Actiu",
|
||||
"videomute": "Aviar / Arrestar la camèra",
|
||||
"videomute": "Aviar / Arrestar la camerà",
|
||||
"authenticate": "Autentificatz-vos",
|
||||
"lock": "Verrolhar / desverrolhar la sala",
|
||||
"invite": "Convidar de participants",
|
||||
"chat": "Dobrir / tampar lo chat",
|
||||
"etherpad": "Document partejat",
|
||||
"invite": "Partejatz lo ligam",
|
||||
"chat": "Dobrir / tampar la conversacion",
|
||||
"etherpad": "Dobrir / Tampar los documents partejats",
|
||||
"sharedvideo": "Partejar una vidèo Youtube",
|
||||
"sharescreen": "Partejar mon ecran",
|
||||
"fullscreen": "Activar / Désactivar l'ecran complet",
|
||||
"sharescreen": "Aviar / Arrestar lo partatge d'ecran",
|
||||
"fullscreen": "Activar / Desactivar l'ecran complet",
|
||||
"sip": "Sonar un numèro SIP",
|
||||
"Settings": "Paramètres",
|
||||
"hangup": "Tornar penjar",
|
||||
"hangup": "Quitar",
|
||||
"login": "Connexion",
|
||||
"logout": "Desconnexion",
|
||||
"dialpad": "Afichar lo clavièr de numerotacion",
|
||||
"dialpad": "Dubrir / Tampar lo clavièr",
|
||||
"sharedVideoMutedPopup": "Vòstra vidèo es estada mesa en mut<br/>per que poscatz parlar als autres participants.",
|
||||
"micMutedPopup": "Vòstre microfòn es estat desactivat per fin que <br/>poscatz profeitar plenament de vòstra vidèo partejada.",
|
||||
"talkWhileMutedPopup": "Ensajatz de parlar ? Vòstre microfòn es copat.",
|
||||
"unableToUnmutePopup": "Podètz pas reactivar vòstre microfòn pendent que la vidèo partejada es activada.",
|
||||
"cameraDisabled": "La camerà es pas disponibla",
|
||||
"micDisabled": "Lo microfòn es pas disponible",
|
||||
"filmstrip": "",
|
||||
"raiseHand": "Demandar la paraula"
|
||||
"filmstrip": "Mostrar / escondre vidèos",
|
||||
"profile": "Modificar vòstre perfil",
|
||||
"raiseHand": "Demandar / Demandar pas mai la paraula"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Dobrir / tampar lo chat",
|
||||
"filmstrip": "Mostrar / escondre vidèos",
|
||||
"contactlist": "Dobrir / tampar ma lista de contactes"
|
||||
"contactlist": "Veire e convidar de participants"
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -126,9 +141,10 @@
|
||||
"setPasswordLabel": "Verrolhar vòstra sala amb un senhal"
|
||||
},
|
||||
"profile": {
|
||||
"title": "PERFIL",
|
||||
"title": "Perfil",
|
||||
"setDisplayNameLabel": "Causissètz vòstra nom",
|
||||
"setEmailLabel": "Definir vòstre corrièl per gravatar"
|
||||
"setEmailLabel": "Definir vòstre corrièl per gravatar",
|
||||
"setEmailInput": "Picatz lo corrièl"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Clicatz per modificar<br/>vòstre nom",
|
||||
@@ -141,6 +157,7 @@
|
||||
"flip": "Revirar"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "Donadas de connexion",
|
||||
"bitrate": "Debit :",
|
||||
"packetloss": "Pèrda de paquets :",
|
||||
"resolution": "Resolucion :",
|
||||
@@ -174,20 +191,30 @@
|
||||
"raisedHand": "Volriá parlar."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "Apondre",
|
||||
"kickMessage": "Ops! Sètz estat bandit de la reünion !",
|
||||
"popupError": "Vòstre navigador blòca las fenèstras popup d'aqueste site. Mercé d'activar las popups dins los paramètres de seguretat de vòstre navigador e d'ensajar tornamai.",
|
||||
"passwordErrorTitle": "Error de senhal",
|
||||
"passwordError": "Aquesta conversacion es actualament protegida per un senhal. Sol lo proprietari de la conferéncia pòt definir un senhal.",
|
||||
"passwordError2": "Actualament, aquesta conversacion es pas protegida per un senhal. Sol lo proprietari de la conferéncia pòt definir un senhal.",
|
||||
"connectError": "Ops! Quicòm a trucat e la connexion a la conferéncia es impossibla.",
|
||||
"connectErrorWithMsg": "Ops! Quicòm a trucat e la connexion a la conferéncia es impossibla: __msg__",
|
||||
"incorrectPassword": "Lo senhal es incorrècte",
|
||||
"connecting": "Connexion en cors",
|
||||
"copy": "Copiar",
|
||||
"error": "Error",
|
||||
"roomLocked": "Aquesta conversacion es verrolhada. Lo nòu-venguts devon aver lo ligam e lo senhal per participar.",
|
||||
"addPassword": "Apondre un senhal",
|
||||
"createPassword": "Crear un senhal",
|
||||
"detectext": "Una error s'es produita pendent la deteccion de l'extension de partiment d'ecran.",
|
||||
"failtoinstall": "Fracàs de l'installacion de l'extension de partiment d'ecran",
|
||||
"failedpermissions": "Fracàs d'obtencion de las permissions per utilizar lo micro e/o la camèra.",
|
||||
"bridgeUnavailable": "Lo pont de visioconferéncia Jitsi es indisponible pel moment. Ensajatz tornamai pus tard !",
|
||||
"jicofoUnavailable": "Lo pont de visioconferéncia Jitsi es indisponible pel moment. Ensajatz tornamai pus tard !",
|
||||
"conferenceReloadTitle": "Malurosament, quicòm truquèt",
|
||||
"conferenceReloadMsg": "Sèm a trobar una solucion per aquò",
|
||||
"conferenceDisconnectTitle": "Sètz estat desconnectat. Vos cal benlèu verificar vòstra connexion.",
|
||||
"conferenceDisconnectMsg": "Se tòrna connectar dins...",
|
||||
"reconnectNow": "Es a se tornar connectar ara",
|
||||
"conferenceReloadTimeLeft": "__seconds__ segondas.",
|
||||
"maxUsersLimitReached": "Lo limit pel nombre maximum de participants a la conferéncia es estat atent. La conferéncia es plena. Ensajatz tornamai pus tard !",
|
||||
"lockTitle": "Fracàs del verrolhatge",
|
||||
"lockMessage": "Impossible de verrolhar la conferéncia.",
|
||||
@@ -199,10 +226,14 @@
|
||||
"SLDFailure": "Ops! Quicòm a trucat e lo micro es pas estat copat! (Fracàs SLD)",
|
||||
"SRDFailure": "Ops! Quicòm a trucat e la camèra es pas estada copada! (Fracàs SRD)",
|
||||
"oops": "Ops !",
|
||||
"currentPassword": "L'actual senhal es",
|
||||
"passwordLabel": "Senhal",
|
||||
"defaultError": "Una error s'es produita",
|
||||
"passwordRequired": "Senhal requesit",
|
||||
"Ok": "D'acòrdi",
|
||||
"done": "Acabat",
|
||||
"Remove": "Suprimir",
|
||||
"removePassword": "Levar lo senhal",
|
||||
"shareVideoTitle": "Partejar una vidèo",
|
||||
"shareVideoLinkError": "Se vos plai, provesissètz un ligam Youtube foncional.",
|
||||
"removeSharedVideoTitle": "Suprimir la vidèo partejada",
|
||||
@@ -212,6 +243,7 @@
|
||||
"WaitForHostMsg": "La conferéncia <b> __ room__ </b> es pas encara començat. Se sètz l'òste, mercé de vos autentificar. Siquenon, mercé d'esperar que l'òste arribe.",
|
||||
"IamHost": "Soi l’òste",
|
||||
"Cancel": "Anullar",
|
||||
"Submit": "Validar",
|
||||
"retry": "Ensajar tornamai",
|
||||
"logoutTitle": "Desconnexion",
|
||||
"logoutQuestion": "Sètz segur que vos volètz desconnectar e arrestar la conferéncia ?",
|
||||
@@ -226,7 +258,7 @@
|
||||
"sipMsg": "Sasissètz un numèro SIP",
|
||||
"passwordCheck": "Sètz segur que volètz suprimir vòstre senhal ?",
|
||||
"passwordMsg": "Sasissètz un senhal per verrolhar la conferéncia",
|
||||
"shareLink": "Copiatz e partejatz aqueste ligam",
|
||||
"shareLink": "Partejatz lo ligam de la conversacion",
|
||||
"settings1": "Configuratz vòstra conferéncia",
|
||||
"settings2": "Los participants rejonhon la conferéncia en essent muts",
|
||||
"settings3": "Escaisses requesits<br/><br/>Sasissètz un senhal per verrolhar la conferéncia :",
|
||||
@@ -242,7 +274,8 @@
|
||||
"token": "geton",
|
||||
"tokenAuthFailedTitle": "Fracàs de l'autentificacion",
|
||||
"tokenAuthFailed": "O planhèm, sètz pas autorizat a rejónher l'apèl.",
|
||||
"displayNameRequired": "Sasissètz vòstre nom",
|
||||
"displayNameRequired": "Un nom d'afichatge es necessari",
|
||||
"enterDisplayName": "Sasissètz vòstre nom",
|
||||
"extensionRequired": "Extension requesida :",
|
||||
"firefoxExtensionPrompt": "Vos cal installar una extension Firefox per utilizar lo partiment d'ecran. Mercé ensajar tornamai aprèp l'installacion <a href='__url__'>dempuèi aqueste ligam</a> !",
|
||||
"rateExperience": "Mercés de donar una nota à vòstra experiéncia.",
|
||||
@@ -258,6 +291,7 @@
|
||||
"stopLiveStreaming": "Arrestar lo dirècte",
|
||||
"stopRecording": "Arrestar l'enregistrament",
|
||||
"doNotShowWarningAgain": "Afichar pas mai aqueste avertiment",
|
||||
"doNotShowMessageAgain": "Afichar pas mai aqueste messatge",
|
||||
"permissionDenied": "Permission Refusada",
|
||||
"screenSharingPermissionDeniedError": "Vos cal autorizar lo partatge de vòstre ecran.",
|
||||
"micErrorPresent": "I a agut una error pendent la connexion al microfòn.",
|
||||
@@ -273,9 +307,12 @@
|
||||
"micConstraintFailedError": "Vòstre microfòn satisfà pas totas las constrentas necessàrias.",
|
||||
"micNotSendingData": "Podèm pas aver l'accès a vòstre microfòn. Mercés de ne causir un autre dins lo menú de paramètres o ensajatz de tornar dubrir l'aplicacion.",
|
||||
"cameraNotSendingData": "Podèm pas aver l'accès a vòstra camèra. Mercés de verificar se una autra aplicacion es pas a l'utilizar, causissètz una autra camèra dins lo menú de paramètres o ensajatz de tornar dubrir l'aplicacion.",
|
||||
"goToStore": "Anatz sul webstore",
|
||||
"goToStore": "Anar sul webstore",
|
||||
"externalInstallationTitle": "Extension requesida :",
|
||||
"externalInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran."
|
||||
"externalInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran.",
|
||||
"muteParticipantTitle": "Copar lo micro als participants ?",
|
||||
"muteParticipantBody": "Poiretz pas lo tornar activar lo microfòn, mai eles pòdon o far quand vòlon.",
|
||||
"muteParticipantButton": "Copar lo son"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"contactlist": "w trakcie rozmowy",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "ustawienia połączenia",
|
||||
"poweredby": "Uruchomiono",
|
||||
"feedback": "jaka jest twoja opinia ?",
|
||||
"roomUrlDefaultMsg": "otwarto twoją konferencję",
|
||||
"inviteUrlDefaultMsg": "otwarto twoją konferencję",
|
||||
"me": "to ja",
|
||||
"speaker": "głośnik",
|
||||
"raisedHand": "Chcesz się odezwać ?",
|
||||
@@ -11,27 +15,28 @@
|
||||
"defaultLink": "np. _url_",
|
||||
"callingName": "_nazwa_",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"react-nativeGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu naciskając <b><i>Allow</i></b> przycisk",
|
||||
"chromeGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu naciskając <b><i>Allow</i></b> przycisk",
|
||||
"androidGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu naciskając <b><i>Allow</i></b> przycisk",
|
||||
"firefoxGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu naciskając <b><i>Share Selected Device</i></b> przycisk",
|
||||
"operaGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu naciskając <b><i>Allow</i></b> przycisk",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu naciskając <b><i>OK</i></b> przycisk",
|
||||
"safariGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu naciskając <b><i>OK</i></b> przycisk",
|
||||
"nwjsGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Skróty klawiaturowe:",
|
||||
"raiseHand": "Unieś rękę.",
|
||||
"pushToTalk": "naciśnij i mów",
|
||||
"toggleScreensharing": "Przełączanie pomiędzy kamerą i wspóldzieleniem ekranu",
|
||||
"toggleFilmstrip": "Pokaż lub ukryj klipy wideo",
|
||||
"toggleShortcuts": "Pokaż lub ukryj pasek pomocy.",
|
||||
"focusLocal": "Przełącz na lokalne wideo.",
|
||||
"focusRemote": "Przełącz na któreś ze zdalnych wideo.",
|
||||
"toggleChat": "Otwórz lub zamknij panel czat.",
|
||||
"mute": "Wyłącz lub włącz mikrofon.",
|
||||
"videoMute": "Start lub stop lokalne wideo."
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "IDŹ",
|
||||
@@ -70,35 +75,45 @@
|
||||
"content": "Analizuj uczestników konferencji z łatwościa integrując dane z Piwik i Google Analitics i innymi systemami monitorującymi."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Wycisz / Pogłośnij",
|
||||
"videomute": "Kamera start / stop ",
|
||||
"videomute": "",
|
||||
"authenticate": "Uwierzytelnianie",
|
||||
"lock": "Zamknij / Otwórz salę",
|
||||
"invite": "Zaproś innych",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "Udostępniaj dokument",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "Udostępniaj wideo w Youtube",
|
||||
"sharescreen": "Udostępnij ekran",
|
||||
"fullscreen": "Otwórz / Zamknij pełny ekran",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Wykręć numer SIP",
|
||||
"Settings": "",
|
||||
"hangup": "Rozłącz",
|
||||
"Settings": "Ustawienia",
|
||||
"hangup": "",
|
||||
"login": "Zaloguj",
|
||||
"logout": "",
|
||||
"dialpad": "Wyświetl panel wybierania",
|
||||
"logout": "Wyloguj",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "Współdzielone wideo zostało wyciszone i <br/> możesz zacząć rozmawiać z innymi.",
|
||||
"micMutedPopup": "Mikrofon został wyłączony i <br/> możesz spokojnie konsumować współdzielone wideo",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "Nie możesz pogłośnić audio podczas współużytkowania wideo",
|
||||
"cameraDisabled": "Kamera nie jest dostępna",
|
||||
"micDisabled": "Mikrofon nie jest dostępny",
|
||||
"filmstrip": "",
|
||||
"raiseHand": "Podnieś rękę chcąc zabrać głos"
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Otwórz / Zamknij Czat",
|
||||
"filmstrip": "Pokaż / Ukryj klipy wideo",
|
||||
"contactlist": "Otwórz / Zamknij spis kontaktów"
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -126,21 +141,23 @@
|
||||
"setPasswordLabel": "Zamknij salę konferencyjną z hasłem"
|
||||
},
|
||||
"profile": {
|
||||
"title": "PROFIL",
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "Podaj swoją wyświetlaną nazwę",
|
||||
"setEmailLabel": "Ustaw email swojego gravatara"
|
||||
"setEmailLabel": "Ustaw email swojego gravatara",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Kliknij <br/>celem edycji swojej nazwy",
|
||||
"moderator": "Gospodarz <br/>tej konferencji",
|
||||
"videomute": "Uczestnik <br/>wyłączyl kamerę",
|
||||
"mute": "Uczestnik ma wyciszone audio",
|
||||
"kick": "Kick out",
|
||||
"kick": "Spadaj!",
|
||||
"muted": "Wyciszony",
|
||||
"domute": "Wyciszenie",
|
||||
"flip": "Odwrócenie"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Szybkość transmisji:",
|
||||
"packetloss": "Strata pakietów:",
|
||||
"resolution": "Rozdzielczość:",
|
||||
@@ -178,20 +195,30 @@
|
||||
"raisedHand": "Możesz mówić."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Ocho! Zostałeś wyproszony z konferencji!",
|
||||
"popupError": "Twoja przeglądarka blokuje wyskakujące okienka z tej witryny. Proszę, zmień w ustawieniach przeglądarki.",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Ta konwersacja aktualnie jest zabezpieczona hasłem. Tylko gospodarz konferencji może zakładać hasło.",
|
||||
"passwordError2": "Ta rozmowa nie jest zabezpieczona hasłem. Tylko gospodarz konferencji może ustanowić hasło zabezpieczające.",
|
||||
"connectError": "Ocho! Cos poszło nie tak, nie można podłaczyć się do tej konferencji.",
|
||||
"connectErrorWithMsg": "Ocho! Coś poszło nie tak i nie można podłączyć się do tej konferencji:_msg_",
|
||||
"connecting": "",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Nawiązywanie połączenia",
|
||||
"copy": "Kopiuj",
|
||||
"error": "",
|
||||
"error": "Błąd",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Błąd podczas rozpoznania rozszerzenia wspóldzielenia ekranu.",
|
||||
"failtoinstall": "Instalacja współdzielenia ekranu nie powiodła się.",
|
||||
"failedpermissions": "Brak akceptacji dla użycia kamery i mikrofonu",
|
||||
"bridgeUnavailable": "Jitsi Videobridge aktualnie jest niedostępne. Proszę, spróbuj później!",
|
||||
"jicofoUnavailable": "Jicofo jest aktualnie niedostępne. Proszę, spróbuj później!",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "Osiągnięto max liczbę uczestników konferencji. Proszę spróbuj później! ",
|
||||
"lockTitle": "Nie powiodło się zabezpieczenie konferencji",
|
||||
"lockMessage": "Zabezpieczenie konferencji nie powiodło się.",
|
||||
@@ -203,10 +230,14 @@
|
||||
"SLDFailure": "Ocho! Coś poszło nie tak i nie można wyciszyć! (SLD Failure)",
|
||||
"SRDFailure": "Ocho! Coś poszło nie tak i nie można zatrzymać wideo! (SRD Failure)",
|
||||
"oops": "Ups",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Wystąpił jakiś błąd",
|
||||
"passwordRequired": "Wymagane hasło",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"Remove": "Usuń",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Współdziel wideo",
|
||||
"shareVideoLinkError": "Podaj proszę prawidłowy link youtube.",
|
||||
"removeSharedVideoTitle": "Usuń wideo współdzielone",
|
||||
@@ -216,6 +247,7 @@
|
||||
"WaitForHostMsg": "Konferencja <b>_room_</b> jeszcze nie wystartowała. Jeśli jesteś gospodarzem podaj dane autentykacji. Jeśli nie czekaj na gospodarza.",
|
||||
"IamHost": "Jestem gospodarzem",
|
||||
"Cancel": "Anuluj",
|
||||
"Submit": "",
|
||||
"retry": "Ponów",
|
||||
"logoutTitle": "Wyloguj",
|
||||
"logoutQuestion": "Na pewno chcesz się wylogować i zakończyć konferencję?",
|
||||
@@ -224,13 +256,13 @@
|
||||
"joinAgain": "Ponownie przystąp",
|
||||
"Share": "Współdziel",
|
||||
"Save": "Zapisz",
|
||||
"recording": "",
|
||||
"recording": "Nagrywanie",
|
||||
"recordingToken": "Proszę podać token nagrywania",
|
||||
"Dial": "Dzwoń",
|
||||
"sipMsg": "Podaj numer SIP",
|
||||
"passwordCheck": "Czy na pewno chcesz usunąć swoje hasło ?",
|
||||
"passwordMsg": "Podaj hasło aby zabezpieczyć salę konferencyjną",
|
||||
"shareLink": "Skopiuj i udostępnij ten link",
|
||||
"shareLink": "",
|
||||
"settings1": "Skonfiguruj swoją konferencję",
|
||||
"settings2": "Wyciszenie współuczestników",
|
||||
"settings3": "Wymagane nicki <br/><br/>Wprowadź hasło dla zabezpieczenia sali konferencyjnej:",
|
||||
@@ -246,7 +278,8 @@
|
||||
"token": "token",
|
||||
"tokenAuthFailedTitle": "Problem uwierzytelnienia",
|
||||
"tokenAuthFailed": "Przepraszam, ale nie jesteś upoważniony do uczestnictwa w tym połączeniu",
|
||||
"displayNameRequired": "Wprowadź swoją nazwę użytkownika",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Wprowadź swoją nazwę użytkownika",
|
||||
"extensionRequired": "Wymagane jest rozszerzenie:",
|
||||
"firefoxExtensionPrompt": "Potrzebujesz zainstalować rozszerzenie firefox aby móc współdzielić ekran. Spróbuj ponownie później <a href='__url__'>weź z</a>!",
|
||||
"rateExperience": "Oceń proszę swoje doświadczenia z konferencji.",
|
||||
@@ -254,7 +287,7 @@
|
||||
"feedbackQuestion": "Powiedz nam o twoim połączeniu!",
|
||||
"thankYou": "Dziękujemy Ci za używanie _appName_!",
|
||||
"sorryFeedback": "Przykro nam to słyszeć. Czy możesz powiedzieć więcej na ten temat?",
|
||||
"liveStreaming": "",
|
||||
"liveStreaming": "Strumień live",
|
||||
"streamKey": "Nazwa strumienia/klucz",
|
||||
"startLiveStreaming": "Uruchom strumień live",
|
||||
"stopStreamingWarning": "Czy jesteś pewny, że chcesz zatrzymać ten strumień live?",
|
||||
@@ -262,6 +295,7 @@
|
||||
"stopLiveStreaming": "Zatrzymaj transmisję live",
|
||||
"stopRecording": "Zatrzymaj nagrywanie",
|
||||
"doNotShowWarningAgain": "Nie pokazuj tego ostrzeżenia ponownie",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "Brak uprawnień",
|
||||
"screenSharingPermissionDeniedError": "Nie posiadasz uprawnień do współdzielenia ekranu.",
|
||||
"micErrorPresent": "Wystąpił błąd w dostępie do mikrofonu.",
|
||||
@@ -279,7 +313,10 @@
|
||||
"cameraNotSendingData": "Nie możemy mieć dostępu do twojej kamery. Sprawdź czy inna aplikacja nie używa twojej kamery, wybierz inne urządzenie lub ponownie uruchom aplikację.",
|
||||
"goToStore": "Idź do sklepu",
|
||||
"externalInstallationTitle": "Wymagane rozszerzenie",
|
||||
"externalInstallationMsg": "Zainstaluj rozszerzenie naszego współdzielenia ekranu."
|
||||
"externalInstallationMsg": "Zainstaluj rozszerzenie naszego współdzielenia ekranu.",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Wyciszenie"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -326,7 +363,7 @@
|
||||
"on": "Nagrywanie",
|
||||
"off": "Nagrywanie zatrzymane",
|
||||
"failedToStart": "Nagrywanie nie jest możliwe",
|
||||
"buttonTooltip": "Nagrywanie start / stop",
|
||||
"buttonTooltip": "",
|
||||
"error": "Nagranie się nie powiodło. Proszę, spróbuj ponownie.",
|
||||
"unavailable": "Serwis nagrywania jest aktualnie niedostępny. Proszę, spróbować później."
|
||||
},
|
||||
@@ -336,7 +373,7 @@
|
||||
"off": "Strumieniowanie live zastopowane",
|
||||
"unavailable": "Strumieniowanie live aktualnie jest niedostepne. Proszę spróbować później.",
|
||||
"failedToStart": "Strumieniowanie live nie powiodło się",
|
||||
"buttonTooltip": "Strumieniowanie live start / stop",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "Proszę podaj id strumieniowania aby uruchomić live.",
|
||||
"error": "Strumieniowanie live nie powiodło się. Spróbuj później.",
|
||||
"busy": "Wszystkie nagrywarki są zajęte. Proszę, sprawdź ponownie później."
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"contactlist": "Na chamada",
|
||||
"contactlist": "Participantes (__pcount__)",
|
||||
"addParticipants": "Compartilhar o link",
|
||||
"roomLocked": "Visitantes precisam digitar uma senha",
|
||||
"roomUnlocked": "Qualquer um com o link pode entrar",
|
||||
"passwordSetRemotely": "Definido por outro participante",
|
||||
"connectionsettings": "Configurações de conexão",
|
||||
"poweredby": "distribuído por",
|
||||
"feedback": "Dê seus comentários",
|
||||
"roomUrlDefaultMsg": "Sua conferência está sendo criado...",
|
||||
"inviteUrlDefaultMsg": "Sua conferência está sendo criado...",
|
||||
"me": "eu",
|
||||
"speaker": "Orador",
|
||||
"raisedHand": "Gostaria de falar",
|
||||
@@ -21,17 +25,18 @@
|
||||
"nwjsGrantPermissions": "Dê as permissões para usar sua câmera e microfone"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Atalhos de teclado:",
|
||||
"raiseHand": "Erguer sua mão.",
|
||||
"pushToTalk": "Pressione para falar.",
|
||||
"toggleScreensharing": "Trocar entre câmera e compartilhamento de tela.",
|
||||
"toggleFilmstrip": "Mostrar ou ocultar os vídeos.",
|
||||
"toggleShortcuts": "Mostrar ou ocultar este menu de ajuda.",
|
||||
"focusLocal": "Foco no vídeo local.",
|
||||
"focusRemote": "Foco em um dos vídeos remotos.",
|
||||
"toggleChat": "Abrir ou fechar o painel de bate-papo.",
|
||||
"mute": "Deixar mudo ou não o microfone.",
|
||||
"videoMute": "Parar ou iniciar o vídeo local."
|
||||
"keyboardShortcuts": "Atalhos de teclado",
|
||||
"raiseHand": "Erga ou baixe sua mão",
|
||||
"pushToTalk": "Pressione para falar",
|
||||
"toggleScreensharing": "Trocar entre câmera e compartilhamento de tela",
|
||||
"toggleFilmstrip": "Mostrar ou ocultar a barra lateral",
|
||||
"toggleShortcuts": "Mostrar ou ocultar este menu de ajuda",
|
||||
"focusLocal": "Foco em seu vídeo",
|
||||
"focusRemote": "Foco no vídeo de outro visitante",
|
||||
"toggleChat": "Abrir ou fechar o painel de bate-papo",
|
||||
"mute": "Deixar mudo ou não o microfone",
|
||||
"fullScreen": "Entrar ou sair da tela cheia",
|
||||
"videoMute": "Iniciar ou parar sua câmera"
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "IR",
|
||||
@@ -70,35 +75,45 @@
|
||||
"content": "Aprenda sobre seus usuários através de integração fácil com o Piwik, Google Analytics, e outros sistemas de monitoramento e estatísticas."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"title": "O __app__ precisa usar seu microfone e câmera."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "Sua chamada de vídeo foi interrompida, porque seu computador foi dormir.",
|
||||
"rejoinKeyTitle": "Reentrar"
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Mudo / Não mudo",
|
||||
"videomute": "Iniciar / parar a câmera",
|
||||
"videomute": "Iniciar ou parar a câmera",
|
||||
"authenticate": "Autenticar",
|
||||
"lock": "Travar / destravar a sala",
|
||||
"invite": "Convidar outros",
|
||||
"chat": "Abrir / fechar bate-papo",
|
||||
"etherpad": "Documento compartilhado",
|
||||
"lock": "Travar ou destravar a sala",
|
||||
"invite": "Compartilhar o link",
|
||||
"chat": "Abrir ou fechar o bate-papo",
|
||||
"etherpad": "Abrir ou fechar o documento compartilhado",
|
||||
"sharedvideo": "Compartilhar um vídeo do YouTube",
|
||||
"sharescreen": "Compartilhar tela",
|
||||
"fullscreen": "Entrar / Sair de Tela Cheia",
|
||||
"sharescreen": "Iniciar ou parar o compartilhamento de tela",
|
||||
"fullscreen": "Entrar ou sair da tela cheia",
|
||||
"sip": "Chamar número SIP",
|
||||
"Settings": "Configurações",
|
||||
"hangup": "Desligar",
|
||||
"hangup": "Sair",
|
||||
"login": "Iniciar sessão",
|
||||
"logout": "Encerrar sessão",
|
||||
"dialpad": "Mostrar teclas de discagem",
|
||||
"dialpad": "Abrir ou fechar teclado de discagem",
|
||||
"sharedVideoMutedPopup": "Seu vídeo compartilhado está mudo assim<br/>você pode falar com os outros participantes.",
|
||||
"micMutedPopup": "Seu microfone está mudo assim que você<br/>pode curtir plenamente seu vídeo compartilhado.",
|
||||
"talkWhileMutedPopup": "Tentando falar? Você está em mudo.",
|
||||
"unableToUnmutePopup": "Você não pode sair do mudo enquanto seu vídeo compartilhado está ativo.",
|
||||
"cameraDisabled": "A câmera não está disponível",
|
||||
"micDisabled": "O microfone não está disponível",
|
||||
"filmstrip": "",
|
||||
"raiseHand": "Levantar a mão para falar"
|
||||
"filmstrip": "Mostrar / ocultar vídeos",
|
||||
"profile": "Editar seu perfil",
|
||||
"raiseHand": "Erguer o baixar sua mão"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Abrir / fechar bate-papo",
|
||||
"filmstrip": "Mostrar/ocultar vídeos",
|
||||
"contactlist": "Abrir / fechar a lista de contatos"
|
||||
"contactlist": "Ver e convidar participantes"
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -126,9 +141,10 @@
|
||||
"setPasswordLabel": "Trancar sua sala com uma senha."
|
||||
},
|
||||
"profile": {
|
||||
"title": "PERFIL",
|
||||
"title": "Perfil",
|
||||
"setDisplayNameLabel": "Definir seu nome de exibição",
|
||||
"setEmailLabel": "Definir seu email de gravatar"
|
||||
"setEmailLabel": "Definir seu email de gravatar",
|
||||
"setEmailInput": "Digite e-mail"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Clique para editar o seu <br/>nome de exibição",
|
||||
@@ -141,6 +157,7 @@
|
||||
"flip": "Inverter"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "Dados da conexão",
|
||||
"bitrate": "Taxa de bits:",
|
||||
"packetloss": "Perda de pacote:",
|
||||
"resolution": "Resolução:",
|
||||
@@ -174,20 +191,30 @@
|
||||
"raisedHand": "Gostaria de falar."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "Adicionar",
|
||||
"kickMessage": "Ouch! Você o chutou para fora da reunião!",
|
||||
"popupError": "Seu navegador está bloqueando janelas popup deste site. Por favor, habilite popups nas configurações de segurança do seu navegador e tente novamente.",
|
||||
"passwordErrorTitle": "Erro na senha",
|
||||
"passwordError": "Esta conversa está protegida atualmente por uma senha. Somente o dono da conferência pode definir a senha.",
|
||||
"passwordError2": "Esta reunião não está protegida por senha atualmente. Somente o dono da conferência pode definir a senha.",
|
||||
"connectError": "Oops! Alguma coisa está errada e nós não pudemos conectar à conferência.",
|
||||
"connectErrorWithMsg": "Oops! Alguma coisa está errada e não podemos conectar à conferência: __msg__",
|
||||
"incorrectPassword": "A senha está incorreta",
|
||||
"connecting": "Conectando",
|
||||
"copy": "Copiar",
|
||||
"error": "Erro",
|
||||
"roomLocked": "Esta chamada está fechada. Novos visitantes precisam ter o link e digitar a senha para entrar",
|
||||
"addPassword": "Adicionar uma senha",
|
||||
"createPassword": "Criar uma senha",
|
||||
"detectext": "Erro enquanto tenta detectar a extensão de compartilhamento de tela.",
|
||||
"failtoinstall": "Falhou a instalação da extensão de compartilhamento de tela",
|
||||
"failedpermissions": "Falha ao obter permissões para usar o microfone e/ou câmera local.",
|
||||
"bridgeUnavailable": "Jitsi Videobridge está atualmente indisponível. Por favor, tente mais tarde!",
|
||||
"jicofoUnavailable": "Jicofo está atualmente indisponível. Por favor, tente mais tarde!",
|
||||
"conferenceReloadTitle": "Infelizmente, algo deu errado",
|
||||
"conferenceReloadMsg": "Estamos tentando concertar isso",
|
||||
"conferenceDisconnectTitle": "Você foi desconectado. Verifique sua conexão de rede.",
|
||||
"conferenceDisconnectMsg": "Reconectando em...",
|
||||
"reconnectNow": "Reconecte agora",
|
||||
"conferenceReloadTimeLeft": "__seconds__ s.",
|
||||
"maxUsersLimitReached": "O limite para o número máximo de participantes na conferência foi atingida. A conferência está cheia. Por favor, tente mais tarde!",
|
||||
"lockTitle": "Bloqueio falhou",
|
||||
"lockMessage": "Falha ao travar a conferência.",
|
||||
@@ -199,10 +226,14 @@
|
||||
"SLDFailure": "Oops! Alguma coisa está errada e nós falhamos em silenciar! (Falha do SLD)",
|
||||
"SRDFailure": "Oops! Alguma coisa está errada e nós falhamos em parar o vídeo! (Falha do SRD)",
|
||||
"oops": "Oops!",
|
||||
"currentPassword": "A senha atual é",
|
||||
"passwordLabel": "Senha",
|
||||
"defaultError": "Aqui teve algum tipo de erro",
|
||||
"passwordRequired": "Senha requerida",
|
||||
"Ok": "Ok",
|
||||
"done": "Feito",
|
||||
"Remove": "Remover",
|
||||
"removePassword": "Remover senha",
|
||||
"shareVideoTitle": "Compartilhar um vídeo",
|
||||
"shareVideoLinkError": "Por favor, forneça um link do youtube correto.",
|
||||
"removeSharedVideoTitle": "Remover vídeo compartilhado",
|
||||
@@ -212,12 +243,13 @@
|
||||
"WaitForHostMsg": "A conferência <b>__room__</b> não foi iniciada. Se você é o hospedeiro, então autentique-se. Caso contrário, aguarde o hospedeiro chegar.",
|
||||
"IamHost": "Eu sou o hospedeiro",
|
||||
"Cancel": "Cancelar",
|
||||
"Submit": "Enviar",
|
||||
"retry": "Tentar novamente",
|
||||
"logoutTitle": "Encerrar sessão",
|
||||
"logoutQuestion": "Está certo em encerrar a sessão e terminar a conferência?",
|
||||
"sessTerminated": "Sessão Terminada",
|
||||
"hungUp": "Você desconectou",
|
||||
"joinAgain": "Conectar novamente",
|
||||
"joinAgain": "Entrar novamente",
|
||||
"Share": "Compartilhar",
|
||||
"Save": "Salvar",
|
||||
"recording": "Gravando",
|
||||
@@ -226,7 +258,7 @@
|
||||
"sipMsg": "Digite o número SIP",
|
||||
"passwordCheck": "Você tem certeza que deseja remover sua senha?",
|
||||
"passwordMsg": "Definir uma senha para trancar sua sala",
|
||||
"shareLink": "Copiar e compartilhar este link",
|
||||
"shareLink": "Compartilhar o link para a chamada",
|
||||
"settings1": "Configure sua conferência",
|
||||
"settings2": "Participantes entram mudos",
|
||||
"settings3": "Requer apelidos<br/><br/>Defina uma senha para trancar sua sala:",
|
||||
@@ -242,7 +274,8 @@
|
||||
"token": "token",
|
||||
"tokenAuthFailedTitle": "Problema na autenticação",
|
||||
"tokenAuthFailed": "Desculpe, você não está autorizado a entrar nesta chamada.",
|
||||
"displayNameRequired": "Digite seu nome de exibição",
|
||||
"displayNameRequired": "Mostrar o nome é requerido",
|
||||
"enterDisplayName": "Digite seu nome de exibição",
|
||||
"extensionRequired": "Extensão requerida:",
|
||||
"firefoxExtensionPrompt": "Você precisa instalar uma extensão do Firefox para compartilhar a tela. Tente novamente depois que você <a href='__url__'>pegá-lo aqui</a>!",
|
||||
"rateExperience": "Por favor, avalie sua experiência na reunião.",
|
||||
@@ -258,6 +291,7 @@
|
||||
"stopLiveStreaming": "Parar o live streaming",
|
||||
"stopRecording": "Parar a gravação",
|
||||
"doNotShowWarningAgain": "Não exibir este aviso novamente",
|
||||
"doNotShowMessageAgain": "Não mostre esta mensagem novamente",
|
||||
"permissionDenied": "Permissão Negada",
|
||||
"screenSharingPermissionDeniedError": "Você não tem permissão concedida para compartilhar sua tela.",
|
||||
"micErrorPresent": "Ocorreu um erro conectando seu microfone.",
|
||||
@@ -275,7 +309,10 @@
|
||||
"cameraNotSendingData": "Sua câmera está inacessível. Verifique se outra aplicação está usando este dispositivo, selecione outro dispositivo do menu de configurações ou tente reiniciar a aplicação.",
|
||||
"goToStore": "Vá para a loja virtual",
|
||||
"externalInstallationTitle": "Extensão requerida",
|
||||
"externalInstallationMsg": "Você precisa instalar nossa extensão de compartilhamento de tela."
|
||||
"externalInstallationMsg": "Você precisa instalar nossa extensão de compartilhamento de tela.",
|
||||
"muteParticipantTitle": "Deixar mudo este participante?",
|
||||
"muteParticipantBody": "Você não está habilitado para tirar o mudo deles, mas eles podem tirar o mudo deles mesmos a qualquer tempo.",
|
||||
"muteParticipantButton": "Mudo"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -290,14 +327,18 @@
|
||||
"body": [
|
||||
"Olá, gostaria de convidá-lo para uma conferência do __appName__ na qual eu estou participando.",
|
||||
"",
|
||||
"Por favor clique no endereço a seguir para participar:",
|
||||
"",
|
||||
"Por favor clique no link a seguir para entrar na conferência.",
|
||||
"",
|
||||
"",
|
||||
"__roomUrl__",
|
||||
"",
|
||||
"__sharedKeyText__",
|
||||
" Note que o __appName__ atualmente só funciona nos navegadores __supportedBrowsers__, assim é preciso abrir o link com um deles para poder participar.",
|
||||
"",
|
||||
"Aguardo sua presença!"
|
||||
"__sharedKeyText__",
|
||||
" Note que o __appName__ atualmente só funciona nos navegadores __supportedBrowsers__, assim é necessário usar um destes navegadores.",
|
||||
"",
|
||||
"",
|
||||
"Falo com com você em um segundo!"
|
||||
],
|
||||
"and": "e"
|
||||
},
|
||||
|
||||
@@ -1,26 +1,28 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"connectionsettings": "",
|
||||
"poweredby": "",
|
||||
"downloadlogs": "",
|
||||
"feedback": "",
|
||||
"roomUrlDefaultMsg": "",
|
||||
"participant": "",
|
||||
"me": "",
|
||||
"speaker": "",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "",
|
||||
"calling": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Настройки подключения",
|
||||
"poweredby": "работает на",
|
||||
"feedback": "Оставьте нам свой отзыв",
|
||||
"inviteUrlDefaultMsg": "Ваша конференция создается в данный момент...",
|
||||
"me": "Я",
|
||||
"speaker": "Говорящий",
|
||||
"raisedHand": "Хочет говорить",
|
||||
"defaultNickname": "напр. Яна Цветочкина",
|
||||
"defaultLink": "напр. __url__",
|
||||
"callingName": "",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"firefoxGrantPermissions": "",
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"react-nativeGrantPermissions": "Пожалуйста, дайте разрешение на доступ к камере и микрофону нажатием на кнопку <b><i>Разрешить</i></b>",
|
||||
"chromeGrantPermissions": "Пожалуйста, дайте разрешение на доступ к камере и микрофону нажатием на кнопку <b><i>Разрешить</i></b>",
|
||||
"androidGrantPermissions": "Пожалуйста, дайте разрешение на доступ к камере и микрофону нажатием на кнопку <b><i>Разрешить</i></b>",
|
||||
"firefoxGrantPermissions": "Пожалуйста дайте разрешение на доступ к камере и микрофону нажатием на кнопку <b><i>Разрешить доступ к выбранному устройству</i></b>",
|
||||
"operaGrantPermissions": "Пожалуйста, дайте разрешение на доступ к камере и микрофону нажатием на кнопку <b><i>Разрешить</i></b>",
|
||||
"iexplorerGrantPermissions": "Пожалуйста дайте разрешение на доступ к камере и микрофону нажатием на кнопку <b><i>ОК</i></b>",
|
||||
"safariGrantPermissions": "Пожалуйста дайте разрешение на доступ к камере и микрофону нажатием на кнопку <b><i>ОК</i></b>",
|
||||
"nwjsGrantPermissions": "Пожалуйста дайте разрешение на доступ к камере и микрофону"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
@@ -33,269 +35,347 @@
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "",
|
||||
"roomname": "",
|
||||
"disable": "",
|
||||
"go": "Вперед!",
|
||||
"roomname": "Введите название комнаты",
|
||||
"disable": "Не показывать эту страницу снова",
|
||||
"feature1": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Простой в использовании",
|
||||
"content": "Нет нужды что-либо скачивать. __app__ работает прямо из вашего браузера. Просто отправьте URL ссылку на вашу конференцию другим, чтобы начать общение."
|
||||
},
|
||||
"feature2": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Низкие требования к ширине канала",
|
||||
"content": "Многопользовательским видеоконференциям достаточно скорости передачи данных в 128 Кбит/с. Демонстрация экрана или аудиоконференции требуют и того меньше."
|
||||
},
|
||||
"feature3": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Открытый исходный код",
|
||||
"content": "__app__ лицензирован под Apache License. Вы можете свободно скачивать, использовать, изменять это ПО в соответствии с условиями лицензии."
|
||||
},
|
||||
"feature4": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Неограниченное количество пользовательниц",
|
||||
"content": "Нет никаких искусственных ограничений по количеству пользовательниц или участников конференций. Вас отграничивают только мощность сервера и качество соединения."
|
||||
},
|
||||
"feature5": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Общий доступ к экрану",
|
||||
"content": "С лёгкостью можно пользоваться экраном совместно. __app__ идеально для онлайн презентаций, лекций и сеансов техподдержки."
|
||||
},
|
||||
"feature6": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Защищённые комнаты",
|
||||
"content": "Нужно больше приватности? __app__ конференц-комнаты могут быть защищены паролем, чтобы исключить незваных гостей или заминки."
|
||||
},
|
||||
"feature7": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Поделиться заметками",
|
||||
"content": "__app__ включает Etherpad, текстовый редактор для совместной работы над текстом в реальном времени, который замечательно подходит, чтобы вести протоколы или совместно писать статьи."
|
||||
},
|
||||
"feature8": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"title": "Статистика использования",
|
||||
"content": "Узнайте больше о пользователях с помощью интеграции с Piwik, Google Analytics и другими системами мониторига и сбора статистики."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "",
|
||||
"mute": "Вкл. / Выкл. звук",
|
||||
"videomute": "",
|
||||
"authenticate": "",
|
||||
"authenticate": "Аутентифицировать",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharedvideo": "Поделиться YouTube видео",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "",
|
||||
"Settings": "",
|
||||
"sip": "Набрать SIP номер",
|
||||
"Settings": "Настройки",
|
||||
"hangup": "",
|
||||
"login": "",
|
||||
"logout": "",
|
||||
"login": "Войти",
|
||||
"logout": "Завершить сеанс",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "",
|
||||
"micMutedPopup": "",
|
||||
"unableToUnmutePopup": "",
|
||||
"cameraDisabled": "",
|
||||
"micDisabled": ""
|
||||
"sharedVideoMutedPopup": "У видео, которым Вы поделились, отключён звук, чтобы вы могли говорить с остальными.",
|
||||
"micMutedPopup": "Ваш микрофон отключён, чтобы вы могли сосредоточиться на видео, которым поделились.",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "Вы не можете включить звук, потому что включено видео.",
|
||||
"cameraDisabled": "Камера недоступна",
|
||||
"micDisabled": "Микрофон недоступен",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "",
|
||||
"chat": "Открыть / Закрыть чат",
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
"title": "",
|
||||
"popover": ""
|
||||
"title": "Введите имя в поле ниже",
|
||||
"popover": "Выберите имя"
|
||||
},
|
||||
"messagebox": ""
|
||||
"messagebox": "Введите текст.."
|
||||
},
|
||||
"settings": {
|
||||
"title": "",
|
||||
"update": "",
|
||||
"name": "",
|
||||
"title": "Настройки",
|
||||
"update": "Обновить",
|
||||
"name": "Имя",
|
||||
"startAudioMuted": "",
|
||||
"startVideoMuted": "",
|
||||
"selectCamera": "",
|
||||
"selectMic": "",
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"avatarUrl": ""
|
||||
"noDevice": "Нет",
|
||||
"noPermission": "Нет прав пользоваться устройством",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "",
|
||||
"moderator": "",
|
||||
"editnickname": "Нажми, чтобы<br/>поменять имя экрана",
|
||||
"moderator": "Хозяйка конференции.",
|
||||
"videomute": "",
|
||||
"mute": "",
|
||||
"kick": "",
|
||||
"muted": "",
|
||||
"domute": "",
|
||||
"flip": ""
|
||||
"mute": "Без звука",
|
||||
"kick": "Прогнать",
|
||||
"muted": "Звук выключен",
|
||||
"domute": "Выключить звук",
|
||||
"flip": "Отразить"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"bitrate": "",
|
||||
"packetloss": "",
|
||||
"resolution": "",
|
||||
"less": "",
|
||||
"more": "",
|
||||
"address": "",
|
||||
"remoteport": "",
|
||||
"header": "",
|
||||
"bitrate": "Битрейт",
|
||||
"packetloss": "Потеря пакетов:",
|
||||
"resolution": "Разрешение:",
|
||||
"less": "Свернуть",
|
||||
"more": "Показать больше",
|
||||
"address": "Адрес:",
|
||||
"remoteport": "Удалённый порт:",
|
||||
"remoteport_plural_2": "",
|
||||
"localport": "",
|
||||
"localport_plural_2": "",
|
||||
"localaddress": "",
|
||||
"localaddress_plural_2": "",
|
||||
"remoteaddress": "",
|
||||
"remoteport_plural_5": "",
|
||||
"localport": "Локальный порт:",
|
||||
"localport_plural_2": "Локальные порты:",
|
||||
"localport_plural_5": "",
|
||||
"localaddress": "Локальный адрес:",
|
||||
"localaddress_plural_2": "Локальные адреса:",
|
||||
"localaddress_plural_5": "",
|
||||
"remoteaddress": "Удалённый адрес:",
|
||||
"remoteaddress_plural_2": "",
|
||||
"transport": "",
|
||||
"bandwidth": "",
|
||||
"na": ""
|
||||
"remoteaddress_plural_5": "",
|
||||
"transport": "Метод отправки:",
|
||||
"bandwidth": "Средняя скорость соединения:",
|
||||
"na": "Вернитесь сюда за информацией о соединении, когда конференция начнётся"
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "",
|
||||
"moderator": "",
|
||||
"connected": "",
|
||||
"somebody": "",
|
||||
"me": "",
|
||||
"focus": "",
|
||||
"focusFail": "",
|
||||
"grantedTo": "",
|
||||
"grantedToUnknown": "",
|
||||
"muted": "",
|
||||
"mutedTitle": "",
|
||||
"raisedHand": ""
|
||||
"disconnected": "соединение разорвано",
|
||||
"moderator": "Получены права для модерации!",
|
||||
"connected": "подключено",
|
||||
"somebody": "Кто-то",
|
||||
"me": "Я",
|
||||
"focus": "Фокусировка конференции",
|
||||
"focusFail": "__component__ недоступен - повторите через __ms__ секунд",
|
||||
"grantedTo": "Теперь модерирует __to__!",
|
||||
"grantedToUnknown": "Права модератора теперь у $t(somebody)!",
|
||||
"muted": "Вы начали конференцию без звука.",
|
||||
"mutedTitle": "Вы без звука!",
|
||||
"raisedHand": "Хочу высказаться."
|
||||
},
|
||||
"dialog": {
|
||||
"kickMessage": "",
|
||||
"popupError": "",
|
||||
"passwordError": "",
|
||||
"passwordError2": "",
|
||||
"connectError": "",
|
||||
"connectErrorWithMsg": "",
|
||||
"connecting": "",
|
||||
"error": "",
|
||||
"detectext": "",
|
||||
"failtoinstall": "",
|
||||
"failedpermissions": "",
|
||||
"bridgeUnavailable": "",
|
||||
"jicofoUnavailable": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "",
|
||||
"lockMessage": "",
|
||||
"warning": "",
|
||||
"passwordNotSupported": "",
|
||||
"sorry": "",
|
||||
"add": "",
|
||||
"kickMessage": "Фигасе! Вас прогнали со встречи!",
|
||||
"popupError": "Ваш браузер блокирует всплывающие окна на этом сайте. Пожалуйста разрешите всплывающие окна в настройках безопасности и попробуйте снова.",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Этот разговор сейчас защищён паролем. Только хозяйка конференции может устанавливать пароль.",
|
||||
"passwordError2": "Эта конференция защищена паролем. Только хозяйка конференции может устанавливать пароль.",
|
||||
"connectError": "Ёпрст! Что-то пошло не так и мы не можем связаться с конференцией.",
|
||||
"connectErrorWithMsg": "Ёпрст! Что-то пошло не так и мы не можем связаться с конференцией: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Идёт подключение",
|
||||
"copy": "",
|
||||
"error": "Ошибка",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Ошибка при попытке определить расширение для совместного использования экрана.",
|
||||
"failtoinstall": "Невозможно установить расширение для совместного использования рабочего стола",
|
||||
"failedpermissions": "Невозможно получить права на использование локального микрофона и/или камеры.",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "Достигнут максимум количества участников конференции. Конференция заполнена. Пожалуйста попробуйте позже!",
|
||||
"lockTitle": "Блокировка не удалась",
|
||||
"lockMessage": "Не удалось запереть конференцию",
|
||||
"warning": "Внимание",
|
||||
"passwordNotSupported": "Пароли для комнат сейчас не поддерживаются.",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"unableToSwitch": "",
|
||||
"SLDFailure": "",
|
||||
"SRDFailure": "",
|
||||
"oops": "",
|
||||
"defaultError": "",
|
||||
"passwordRequired": "",
|
||||
"Ok": "",
|
||||
"Remove": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"removeSharedVideoTitle": "",
|
||||
"removeSharedVideoMsg": "",
|
||||
"alreadySharedVideoMsg": "",
|
||||
"WaitingForHost": "",
|
||||
"WaitForHostMsg": "",
|
||||
"IamHost": "",
|
||||
"Cancel": "",
|
||||
"retry": "",
|
||||
"logoutTitle": "",
|
||||
"logoutQuestion": "",
|
||||
"sessTerminated": "",
|
||||
"hungUp": "",
|
||||
"joinAgain": "",
|
||||
"Share": "",
|
||||
"Save": "",
|
||||
"recording": "",
|
||||
"recordingToken": "",
|
||||
"Dial": "",
|
||||
"sipMsg": "",
|
||||
"passwordCheck": "",
|
||||
"passwordMsg": "",
|
||||
"Invite": "",
|
||||
"unableToSwitch": "Невозможно сменить видео трансляцию.",
|
||||
"SLDFailure": "Ёпрст! Что-то пошло не так и мы не можем отключить звук! (ошибка SLD)",
|
||||
"SRDFailure": "Ёпрст! Что-то пошло не так и мы не можем остановить видео! (ошибка SRD)",
|
||||
"oops": "Ёпрст!",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Какая-то ошибка",
|
||||
"passwordRequired": "Требуется пароль",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"Remove": "Удалить",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Поделиться видео",
|
||||
"shareVideoLinkError": "Пожалуйста введите корректную youtube ссылку.",
|
||||
"removeSharedVideoTitle": "Удалить общее видео",
|
||||
"removeSharedVideoMsg": "Вы уверрены, что хотите удалить ваше расшаренное видео?",
|
||||
"alreadySharedVideoMsg": "Другая участница сейчас делится видео. В этой конференции можно делиться только одним видео одновременно.",
|
||||
"WaitingForHost": "Ожидание хоста...",
|
||||
"WaitForHostMsg": "Конференция <b>__room__ </b> ещё не началась. Если вы её хост - аутентифицируйтесь. Или сидите ждите хоста.",
|
||||
"IamHost": "Я хост",
|
||||
"Cancel": "Отменить",
|
||||
"Submit": "",
|
||||
"retry": "Повторить",
|
||||
"logoutTitle": "Завершить сеанс",
|
||||
"logoutQuestion": "Вы уверены, что хотите выйти и остановить конференцию?",
|
||||
"sessTerminated": "Сеанс закрыт",
|
||||
"hungUp": "Вы повесили трубку",
|
||||
"joinAgain": "Войдите заново",
|
||||
"Share": "Поделиться",
|
||||
"Save": "Сохранить",
|
||||
"recording": "Запись",
|
||||
"recordingToken": "Введите токен для записи",
|
||||
"Dial": "Дозвон",
|
||||
"sipMsg": "Введите SIP-номер",
|
||||
"passwordCheck": "Вы уверены, что хотите удалить ваш пароль?",
|
||||
"passwordMsg": "Введите пароль для вашей комнаты",
|
||||
"shareLink": "",
|
||||
"settings1": "",
|
||||
"settings2": "",
|
||||
"settings3": "",
|
||||
"settings1": "Настройка Вашей конференции",
|
||||
"settings2": "Участница подключилась без звука",
|
||||
"settings3": "Нужны имена<br/><br/>Установите пароль, чтобы запереть Вашу комнату:",
|
||||
"yourPassword": "",
|
||||
"Back": "",
|
||||
"serviceUnavailable": "",
|
||||
"gracefulShutdown": "",
|
||||
"Yes": "",
|
||||
"reservationError": "",
|
||||
"reservationErrorMsg": "",
|
||||
"Back": "Назад",
|
||||
"serviceUnavailable": "Служба недоступна",
|
||||
"gracefulShutdown": "Сервис закрыт на переучёт. Пожалуйста попробуйте позже.",
|
||||
"Yes": "Да",
|
||||
"reservationError": "Ошибка системы резервации",
|
||||
"reservationErrorMsg": "Код ошибки: __code__, сообщение: __msg__",
|
||||
"password": "",
|
||||
"userPassword": "",
|
||||
"token": "",
|
||||
"userPassword": "пароль пользователя",
|
||||
"token": "токен",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"enterDisplayName": "Пожалуйста, введите Ваше имя экрана",
|
||||
"extensionRequired": "Требуется расширение:",
|
||||
"firefoxExtensionPrompt": "Нужно установить расширение Firefox, чтобы совместно пользоваться экраном. Попробуйте позже, скачав его <a href='__url__'>отсюда</a>!",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
"sorryFeedback": "",
|
||||
"liveStreaming": "",
|
||||
"streamKey": "",
|
||||
"startLiveStreaming": "",
|
||||
"stopStreamingWarning": "",
|
||||
"stopRecordingWarning": "",
|
||||
"stopLiveStreaming": "",
|
||||
"stopRecording": "",
|
||||
"doNotShowWarningAgain": "",
|
||||
"permissionDenied": "",
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"micErrorPresent": "",
|
||||
"cameraErrorPresent": "",
|
||||
"cameraUnsupportedResolutionError": "",
|
||||
"cameraUnknownError": "",
|
||||
"cameraPermissionDeniedError": "",
|
||||
"thankYou": "Спасибо за использование __appName__!",
|
||||
"sorryFeedback": "Мы удручены услышанным. Может расскажете поподробнее?",
|
||||
"liveStreaming": "Трансляция",
|
||||
"streamKey": "Имя/ключ трансляции",
|
||||
"startLiveStreaming": "Начать трансляцию",
|
||||
"stopStreamingWarning": "Вы уверены, что хотите остановить трансляцию?",
|
||||
"stopRecordingWarning": "Вы уверены, что хотите остановить запись?",
|
||||
"stopLiveStreaming": "Остановить трансляцию",
|
||||
"stopRecording": "Остановить запись",
|
||||
"doNotShowWarningAgain": "Больше не показывать это предупреждение",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "Доступ запрещён",
|
||||
"screenSharingPermissionDeniedError": "У Вас нет прав совместно использовать Ваш экран",
|
||||
"micErrorPresent": "Произошла ошибка при подключении к Вашему микрофону",
|
||||
"cameraErrorPresent": "Произошла ошибка при подключении к Вашей камере",
|
||||
"cameraUnsupportedResolutionError": "Ваша камера не поддерживает необходимое разрешение.",
|
||||
"cameraUnknownError": "Не могу использовать камеру по неизвестной причине.",
|
||||
"cameraPermissionDeniedError": "У вас нет прав на использование камеры. Вы можете участвовать в конференции, но другие не будут Вас видеть. Используйте значок с камерой в строке адреса, чтобы устранить проблему.",
|
||||
"cameraNotFoundError": "",
|
||||
"cameraConstraintFailedError": "",
|
||||
"micUnknownError": "",
|
||||
"micPermissionDeniedError": "",
|
||||
"cameraConstraintFailedError": "Ваша камера не отвечает некоторым требованиям.",
|
||||
"micUnknownError": "Не могу пользоваться микрофоном по непонятным причинам.",
|
||||
"micPermissionDeniedError": "Вы не дали прав на использование микрофона. Вы все-равно можете присоединиться к конференции, но никто не будет Вас слышать. Используйте иконку с камерой в адресной строке браузера, чтобы исправить это.",
|
||||
"micNotFoundError": "",
|
||||
"micConstraintFailedError": ""
|
||||
"micConstraintFailedError": "Ваш микрофон не отвечает некоторым необходимым требованиям.",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Выключить звук"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": "",
|
||||
"subject": "",
|
||||
"body": "",
|
||||
"and": ""
|
||||
"sharedKey": [
|
||||
"Эта конференция защищена паролем. Пожалуйста, используйте это пин для входа:",
|
||||
"",
|
||||
"",
|
||||
"__sharedKey__",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"subject": "Приглашение для __appName__ (__conferenceName__)",
|
||||
"body": [
|
||||
"Привет! я бы хотел пригласить тебя на __appName__ конференцию, которую мы как раз начали.",
|
||||
"",
|
||||
"",
|
||||
"Пожелуста, следуй по ссылке, чтобы подключиться к конференции.",
|
||||
"",
|
||||
"",
|
||||
"__roomUrl__",
|
||||
"",
|
||||
"",
|
||||
"__sharedKeyText__",
|
||||
"Имей в виду, что __appName__ сейчас поддерживается только __supportedBrowsers__, так что полюзуйся одним из этих браузеров.",
|
||||
"",
|
||||
"",
|
||||
"Услышимся через секунду!"
|
||||
],
|
||||
"and": "и"
|
||||
},
|
||||
"connection": {
|
||||
"ERROR": "",
|
||||
"CONNECTING": "",
|
||||
"RECONNECTING": "",
|
||||
"CONNFAIL": "",
|
||||
"AUTHENTICATING": "",
|
||||
"AUTHFAIL": "",
|
||||
"CONNECTED": "",
|
||||
"DISCONNECTED": "",
|
||||
"DISCONNECTING": "",
|
||||
"ATTACHED": ""
|
||||
"ERROR": "Ошибка",
|
||||
"CONNECTING": "Идёт подключение",
|
||||
"RECONNECTING": "Проблема с сетью. Переподключение...",
|
||||
"CONNFAIL": "Сбой подключения",
|
||||
"AUTHENTICATING": "Аутентификация",
|
||||
"AUTHFAIL": "Ошибка аутентификации",
|
||||
"CONNECTED": "Подключено",
|
||||
"DISCONNECTED": "Отключено",
|
||||
"DISCONNECTING": "Отключение",
|
||||
"ATTACHED": "Прикреплено"
|
||||
},
|
||||
"recording": {
|
||||
"pending": "",
|
||||
"on": "",
|
||||
"off": "",
|
||||
"failedToStart": "",
|
||||
"pending": "Записываем ожидаем подключение участницы...",
|
||||
"on": "Запись",
|
||||
"off": "Запись остановлена",
|
||||
"failedToStart": "Ошибка при начале записи",
|
||||
"buttonTooltip": "",
|
||||
"error": "",
|
||||
"unavailable": ""
|
||||
"error": "Ошибка записи. Попробуйте позже.",
|
||||
"unavailable": "Сервис записи сейчас недоступен. Попробуйте позже."
|
||||
},
|
||||
"liveStreaming": {
|
||||
"pending": "",
|
||||
"on": "",
|
||||
"off": "",
|
||||
"unavailable": "",
|
||||
"failedToStart": "",
|
||||
"pending": "Начинаю трансляцию...",
|
||||
"on": "Трансляция",
|
||||
"off": "Трансляция остановлена",
|
||||
"unavailable": "Служба трансляций сейчас недоступна. Попробуйте позже.",
|
||||
"failedToStart": "Трансляция видео не может быть начата",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
"streamIdRequired": "Пожалуйста введите идентификатор трансляции, чтобы запустить её.",
|
||||
"error": "Не удалось начать трансляцию. Попробуйте снова.",
|
||||
"busy": "Все рекордеры сейчас заняты. Попробуйте позже."
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,19 @@
|
||||
{
|
||||
"contactlist": "ZOZNAM KONTAKTOV",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Nastavenie spojenia",
|
||||
"poweredby": "založené na",
|
||||
"downloadlogs": "Stiahnúť logy",
|
||||
"feedback": "",
|
||||
"roomUrlDefaultMsg": "Vaša konferencia bola práve vytvorená...",
|
||||
"participant": "Účastník",
|
||||
"inviteUrlDefaultMsg": "Vaša konferencia bola práve vytvorená...",
|
||||
"me": "ja",
|
||||
"speaker": "Rečník",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "napr. __url__",
|
||||
"calling": "",
|
||||
"callingName": "",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -33,6 +35,7 @@
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
@@ -72,33 +75,45 @@
|
||||
"content": "Zistite o Vašich uživateľoch viac ľahko cez integráciu s Piwik, Google Analytics a inych monitorovacích a štatistických nástrojov."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Vypnúť / Zapnúť mikrofón",
|
||||
"videomute": "Vypnúť / Zapnúť kameru",
|
||||
"videomute": "",
|
||||
"authenticate": "Overiť",
|
||||
"lock": "Zamknúť / Odomknúť miestnosť",
|
||||
"invite": "Pozvať ďalšich",
|
||||
"chat": "Otvoriť / zatvoriť chat",
|
||||
"etherpad": "Zdieľať dokument",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "Zdieľať prac. plochu",
|
||||
"fullscreen": "Zapnúť / Vypnúť plnú obrazovku",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Zavolať SIP číslo",
|
||||
"Settings": "Nastavenia",
|
||||
"hangup": "Zložiť",
|
||||
"hangup": "",
|
||||
"login": "Prihlásiť",
|
||||
"logout": "Odhlásiť",
|
||||
"dialpad": "Zobraziť číselník",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "",
|
||||
"micMutedPopup": "",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "",
|
||||
"cameraDisabled": "",
|
||||
"micDisabled": ""
|
||||
"micDisabled": "",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Otvoriť / zatvoriť chat",
|
||||
"filmstrip": "Zobraziť / skryť účastníkov",
|
||||
"contactlist": "Otvoriť / zatvoriť zoznam kontaktov"
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -108,7 +123,7 @@
|
||||
"messagebox": "Napíšte text..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "NASTAVENIA",
|
||||
"title": "Nastavenia",
|
||||
"update": "Nastaviť",
|
||||
"name": "Meno",
|
||||
"startAudioMuted": "",
|
||||
@@ -119,12 +134,22 @@
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"avatarUrl": ""
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Kliknite pre zmenu<br/>Vášho mena",
|
||||
"moderator": "Majiteľ tejto<br/>konferencie",
|
||||
"videomute": "Učastník s<br/>vypnutou kamerou",
|
||||
"videomute": "",
|
||||
"mute": "Učastník s<br/>vypnutým mikrofónom",
|
||||
"kick": "Vyhodiť",
|
||||
"muted": "Vypnutý mikrofón",
|
||||
@@ -132,6 +157,7 @@
|
||||
"flip": ""
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Prenos. rýchlosť",
|
||||
"packetloss": "Strata packetov:",
|
||||
"resolution": "Rozlíšenie:",
|
||||
@@ -169,34 +195,49 @@
|
||||
"raisedHand": ""
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Boli ste vyhodený z konferencie!",
|
||||
"popupError": "Váš prehliadač blokuje vyskakovacie okná pre túto stránku. Prosím, povoľte si vyskakovacie okná a skúste to znova.",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Táto diskusia je momentálne zabezpečená heslom. Iba majiteľ tejto konferencie može nastaviť heslo.",
|
||||
"passwordError2": "Táto diskusia nie je momentálne zabezpečená heslom. Iba majiteľ tejto konferencie može nastaviť heslo.",
|
||||
"connectError": "Oops! Niečo je zle a nemožem sa pripojiť do konferencie.",
|
||||
"connectErrorWithMsg": "Oops! Niečo je zle a nemožem sa pripojiť do konferencie. Správa: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Pripájam",
|
||||
"copy": "",
|
||||
"error": "Chyba",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Chyba pri pokuse najsť rozšírenie pre zdieľanie prac. plochy",
|
||||
"failtoinstall": "Zlyhanie pri inštalácií rozšírenia pre zdieľanie prac. plochy",
|
||||
"failedpermissions": "Zlyhanie pri pokuse získať prístup k lokálnemu mikrofonu alebo kamere.",
|
||||
"bridgeUnavailable": "Jitsi Videobridge je momentálne nedostupné. Prosím, skúste neskor!",
|
||||
"jicofoUnavailable": "",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Zabezpečenie zlyhalo",
|
||||
"lockMessage": "Zlyhanie pri pokuse o zabezpečenie konferencie.",
|
||||
"warning": "Upozornenie",
|
||||
"passwordNotSupported": "Heslá pre miestnosti nie sú momentálne podporované.",
|
||||
"sorry": "Prepáčte",
|
||||
"internalError": "Vnútorná aplikačná chyba [setRemoteDescription]",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"unableToSwitch": "Nie je možne prepnúť video stream.",
|
||||
"SLDFailure": "Oops! Niečo sa stalo a nie je možne vypnúť mikrofón! (Chyba SLD)",
|
||||
"SRDFailure": "Oops! Niečo sa stalo a nie je možne vypnúť kameru! (Chyba SLD)",
|
||||
"oops": "Oops!",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Nastala neznáma chyba",
|
||||
"passwordRequired": "Je potrebné heslo",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"Remove": "Odstrániť",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"removeSharedVideoTitle": "",
|
||||
@@ -206,6 +247,7 @@
|
||||
"WaitForHostMsg": "Konferencia <b>__room__ </b> ešte nezačala. Ak ste hostiteľ Vy, overte sa. Inak čakajte kým sa prihlási hostiteľ.",
|
||||
"IamHost": "Ja som hostiteľ",
|
||||
"Cancel": "Zrušiť",
|
||||
"Submit": "",
|
||||
"retry": "Skúsiť znova",
|
||||
"logoutTitle": "Odhlásiť",
|
||||
"logoutQuestion": "Ste si istý, že sa chcete odhlásiť a skončit konferenciu?",
|
||||
@@ -220,25 +262,28 @@
|
||||
"sipMsg": "Vložte SIP číslo",
|
||||
"passwordCheck": "Ste si istý, že chcete odstrániť heslo?",
|
||||
"passwordMsg": "Zadajte heslo pre zabezpečenie miestnosti",
|
||||
"Invite": "Pozvať",
|
||||
"shareLink": "Zdieľajte tento odkaz s každým koho chcete pozvať",
|
||||
"shareLink": "",
|
||||
"settings1": "Nastavte Vašu konferenciu",
|
||||
"settings2": "Učastníkov pripájať stíšených",
|
||||
"settings3": "Vyžaduj meno<br/><br/>Zadaj heslo pre zabezpečenie miestnosti:",
|
||||
"yourPassword": "Vaše heslo",
|
||||
"yourPassword": "",
|
||||
"Back": "Späť",
|
||||
"serviceUnavailable": "Služba nedostupná",
|
||||
"gracefulShutdown": "Naša služba je momentálne vypnutá pre údržbu. Skúste to neskor.",
|
||||
"Yes": "Áno",
|
||||
"reservationError": "Systemová chyba rezervácie",
|
||||
"reservationErrorMsg": "Chyba: __code__, správa: __msg__",
|
||||
"password": "heslo",
|
||||
"password": "",
|
||||
"userPassword": "uživateľské heslo",
|
||||
"token": "token",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "Potrebné rozšírenie:",
|
||||
"firefoxExtensionPrompt": "Potrebujete nainštalovať rozšírenie do Firefoxu pre možnosť zdieľať prac. plochu. Prosím, skúste znovu po nainštalovaní z: <a href='__url__'>",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
"sorryFeedback": "",
|
||||
@@ -250,6 +295,7 @@
|
||||
"stopLiveStreaming": "",
|
||||
"stopRecording": "",
|
||||
"doNotShowWarningAgain": "",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "",
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"micErrorPresent": "",
|
||||
@@ -262,7 +308,15 @@
|
||||
"micUnknownError": "",
|
||||
"micPermissionDeniedError": "",
|
||||
"micNotFoundError": "",
|
||||
"micConstraintFailedError": ""
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Vypnút mikrofón"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
{
|
||||
"contactlist": "STIKI",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Nastavitve povezave",
|
||||
"poweredby": "poganja",
|
||||
"downloadlogs": "Shrani zapis",
|
||||
"feedback": "",
|
||||
"roomUrlDefaultMsg": "Ustvarjanje vaše konference ...",
|
||||
"participant": "Udeleženec",
|
||||
"inviteUrlDefaultMsg": "Ustvarjanje vaše konference ...",
|
||||
"me": "jaz",
|
||||
"speaker": "Govornik",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "npr. __url__",
|
||||
"calling": "",
|
||||
"callingName": "",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -33,6 +35,7 @@
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
@@ -72,33 +75,45 @@
|
||||
"content": "Spoznajte svoje uporabnike z enostavno integracijo v Piwik, Google Analytics ter druge sisteme za nadzor uporabe in statistiko."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Utišaj / Povrni glasnost",
|
||||
"videomute": "Zaženi / Ustavi kamero",
|
||||
"videomute": "",
|
||||
"authenticate": "Overi",
|
||||
"lock": "Zakleni / Odkleni sobo",
|
||||
"invite": "Povabite ostale",
|
||||
"chat": "Odpri / zapri klepetalnico",
|
||||
"etherpad": "Dokument v skupni rabi",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "Zaslon v souporabi",
|
||||
"fullscreen": "Vklopi / Izklopi celozaslonski način",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Pokliči številko SIP",
|
||||
"Settings": "Nastavitve",
|
||||
"hangup": "Odloži",
|
||||
"hangup": "",
|
||||
"login": "Prijava",
|
||||
"logout": "Odjava",
|
||||
"dialpad": "Pokaži številčnico",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "",
|
||||
"micMutedPopup": "",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "",
|
||||
"cameraDisabled": "",
|
||||
"micDisabled": ""
|
||||
"micDisabled": "",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Odpri / zapri klepetalnico",
|
||||
"filmstrip": "Pokaži / Skrij filmski trak",
|
||||
"contactlist": "Odpri / Zapri stike"
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -108,7 +123,7 @@
|
||||
"messagebox": "Vnesite besedilo ..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "NASTAVITVE",
|
||||
"title": "Nastavitve",
|
||||
"update": "Posodobi",
|
||||
"name": "Ime",
|
||||
"startAudioMuted": "",
|
||||
@@ -119,12 +134,22 @@
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"avatarUrl": ""
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Kliknite, da spremenite<br/>svoje ime",
|
||||
"moderator": "Lastnik<br/>konference",
|
||||
"videomute": "Udeleženec je<br/>izključil kamero.",
|
||||
"videomute": "",
|
||||
"mute": "Udeleženec je utišan",
|
||||
"kick": "Izženi",
|
||||
"muted": "Utišan",
|
||||
@@ -132,6 +157,7 @@
|
||||
"flip": ""
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Bitna hitrost:",
|
||||
"packetloss": "Izgubljeni paketi:",
|
||||
"resolution": "Ločljivost:",
|
||||
@@ -173,34 +199,49 @@
|
||||
"raisedHand": ""
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Ojej! Izgnali so vas iz srečanja!",
|
||||
"popupError": "",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "",
|
||||
"passwordError2": "",
|
||||
"connectError": "Ups! Nekaj je narobe in se ni bilo mogoče povezati s konferenco.",
|
||||
"connectErrorWithMsg": "Ups! Nekaj je narobe in se ni bilo mogoče povezati s konferenco: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Povezovanje",
|
||||
"copy": "",
|
||||
"error": "Napaka",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Napaka pri zaznavanju razširitve za skupno uporabo namizja.",
|
||||
"failtoinstall": "Razširitve za skupno uporabo namizja ni bilo mogoče namestiti",
|
||||
"failedpermissions": "Ni bilo mogoče pridobiti dovoljenja za uporabo lokalnega mikrofona ali kamere.",
|
||||
"bridgeUnavailable": "Jitsi Videobridge trenutno ni na razpolago. Prosim poskusite kasneje!",
|
||||
"jicofoUnavailable": "",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Zaklepanje ni uspelo",
|
||||
"lockMessage": "",
|
||||
"warning": "Opozorilo",
|
||||
"passwordNotSupported": "Trenutno ni mogoče zakleniti sobe z geslom.",
|
||||
"sorry": "Oprostite",
|
||||
"internalError": "Notranja napaka [setRemoteDescription]",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"unableToSwitch": "Ni mogoče preklopiti video pretoka.",
|
||||
"SLDFailure": "Ups! Nekaj je narobe in zvoka se ne da utišati! (Napaka SLD)",
|
||||
"SRDFailure": "Ups! Nekaj je narobe in slike ni mogoče ustaviti! (Napaka SRD)",
|
||||
"oops": "Ups!",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Prišlo je do neke napake",
|
||||
"passwordRequired": "Potrebno je geslo",
|
||||
"Ok": "V redu",
|
||||
"done": "",
|
||||
"Remove": "Odstrani",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"removeSharedVideoTitle": "",
|
||||
@@ -210,6 +251,7 @@
|
||||
"WaitForHostMsg": "Ta konferenca <b>__room__ </b> se še ni začela. V primeru, da ste vi gostitelj se prosim overite. Drugače počakajte prosim na prihod gostitelja.",
|
||||
"IamHost": "Jaz sem gostitelj",
|
||||
"Cancel": "Prekliči",
|
||||
"Submit": "",
|
||||
"retry": "Poskusi ponovno",
|
||||
"logoutTitle": "Odjava",
|
||||
"logoutQuestion": "Ali se res želite odjaviti in prekiniti konferenco?",
|
||||
@@ -224,25 +266,28 @@
|
||||
"sipMsg": "Vnesite številko SIP",
|
||||
"passwordCheck": "Ali res želite odstraniti geslo?",
|
||||
"passwordMsg": "Nastavite geslo za zaklepanje sobe",
|
||||
"Invite": "Povabi",
|
||||
"shareLink": "To povezavo pošljite vsem, ki jih želite povabiti",
|
||||
"shareLink": "",
|
||||
"settings1": "Nastavite svojo konferenco",
|
||||
"settings2": "Utišaj udeležence ob pristopu",
|
||||
"settings3": "Zahtevaj vzdevke<br/><br/>Nastavi geslo za zaklep sobe:",
|
||||
"yourPassword": "vaše geslo",
|
||||
"yourPassword": "",
|
||||
"Back": "Nazaj",
|
||||
"serviceUnavailable": "Storitev ni na voljo",
|
||||
"gracefulShutdown": "Storitev trenutno ni na voljo zaradi vzdrževanja. Poskusite ponovno kasneje.",
|
||||
"Yes": "Da",
|
||||
"reservationError": "Napaka v sistemu rezervacije",
|
||||
"reservationErrorMsg": "Koda napake: __code__, sporočilo: __msg__",
|
||||
"password": "geslo",
|
||||
"password": "",
|
||||
"userPassword": "uporabniško geslo",
|
||||
"token": "žeton",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
"sorryFeedback": "",
|
||||
@@ -254,6 +299,7 @@
|
||||
"stopLiveStreaming": "",
|
||||
"stopRecording": "",
|
||||
"doNotShowWarningAgain": "",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "",
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"micErrorPresent": "",
|
||||
@@ -266,7 +312,15 @@
|
||||
"micUnknownError": "",
|
||||
"micPermissionDeniedError": "",
|
||||
"micNotFoundError": "",
|
||||
"micConstraintFailedError": ""
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Utišaj"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": "",
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
{
|
||||
"contactlist": "KONTAKTLISTA",
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Anslutningsinställningar",
|
||||
"poweredby": "drivs av",
|
||||
"downloadlogs": "Hämta loggar",
|
||||
"feedback": "Ge oss din feedback",
|
||||
"roomUrlDefaultMsg": "Din konferens håller på att skapas...",
|
||||
"participant": "Deltagare",
|
||||
"inviteUrlDefaultMsg": "Din konferens håller på att skapas...",
|
||||
"me": "jag",
|
||||
"speaker": "Talare",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "t ex. __url__",
|
||||
"calling": "",
|
||||
"callingName": "",
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -33,6 +35,7 @@
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
@@ -72,33 +75,45 @@
|
||||
"content": "Studera användningsmönster genom enkel integration med Piwik, Google Analytics och andra monitorerings- och statistiksystem."
|
||||
}
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "Slå av/på ljud",
|
||||
"videomute": "Starta / stoppa kamera",
|
||||
"videomute": "",
|
||||
"authenticate": "Autentisera",
|
||||
"lock": "Lås / lås upp rum",
|
||||
"invite": "Bjud in andra",
|
||||
"chat": "Öppna / stäng chat",
|
||||
"etherpad": "Delat dokument",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "Dela skärm",
|
||||
"fullscreen": "Aktivera / avaktivera helskärm",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "Ring SIP-nummer",
|
||||
"Settings": "Inställningar",
|
||||
"hangup": "Lägg på",
|
||||
"hangup": "",
|
||||
"login": "Logga in",
|
||||
"logout": "Logga ut",
|
||||
"dialpad": "Visa knappsats",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "",
|
||||
"micMutedPopup": "",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "",
|
||||
"cameraDisabled": "",
|
||||
"micDisabled": ""
|
||||
"micDisabled": "",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Öppna / stäng chat",
|
||||
"filmstrip": "Visa / dölj filmremsa",
|
||||
"contactlist": "Öppna / stäng kontaktlista"
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -108,7 +123,7 @@
|
||||
"messagebox": "Skriv text..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "INSTÄLLNINGAR",
|
||||
"title": "Inställningar",
|
||||
"update": "Uppdatera",
|
||||
"name": "Namn",
|
||||
"startAudioMuted": "",
|
||||
@@ -119,12 +134,22 @@
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"avatarUrl": ""
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Klicka här för att <br/>redigera namn",
|
||||
"moderator": "Ägaren av den<br/>här konferensen",
|
||||
"videomute": "Deltagaren har<br/>stoppat kameran.",
|
||||
"videomute": "",
|
||||
"mute": "Deltagaren har avstängd mikrofon",
|
||||
"kick": "Sparka ut",
|
||||
"muted": "Tystad",
|
||||
@@ -132,6 +157,7 @@
|
||||
"flip": ""
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Bithastighet:",
|
||||
"packetloss": "Paketförluster:",
|
||||
"resolution": "Upplösning:",
|
||||
@@ -165,34 +191,49 @@
|
||||
"raisedHand": ""
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "Aj! Du har sparkats ur mötet!",
|
||||
"popupError": "Din webbläsare blockerar popup-fönster från den här webbplatsen. Vänligen aktivera popups i din webbläsares säkerhetsinställningar och försök igen.",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "Den här konversationen är för närvarande skyddad av lösenord. Bara ägaren till konferensen kan sätta ett lösenord.",
|
||||
"passwordError2": "Den här konversationen är för närvarande inte skyddad av ett lösenord. Bara ägaren till konferensen kan sätta ett lösenord.",
|
||||
"connectError": "Ojdå! Något gick fel och vi kunde inte ansluta till konferensen.",
|
||||
"connectErrorWithMsg": "Ojdå! Något gick fel och vi kunde inte ansluta till konferensen: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "Ansluter",
|
||||
"copy": "",
|
||||
"error": "Fel",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Fel när skrivbordsdelnings-tillägget försökte hittas.",
|
||||
"failtoinstall": "Misslyckades att installera skrivbordsdelnings-tillägget",
|
||||
"failedpermissions": "Misslyckades med att få tillåtelse att använda lokal mikrofon och/eller kamera.",
|
||||
"bridgeUnavailable": "Jitsi Videobridge är för tillfället inte tillgänglig. Vänligen försök senare!",
|
||||
"jicofoUnavailable": "",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Låsning misslyckades",
|
||||
"lockMessage": "Misslyckades att låsa konferensen.",
|
||||
"warning": "Varning",
|
||||
"passwordNotSupported": "Rumslösenord stöds inte för tillfället.",
|
||||
"sorry": "Tyvärr",
|
||||
"internalError": "Internt applikationsfel [setRemoteDescription]",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"unableToSwitch": "Kunde inte byta videoström.",
|
||||
"SLDFailure": "Ojdå! Något gick fel och vi kunde inte stänga av mikrofonen! (SLD Failure)",
|
||||
"SRDFailure": "Ojdå! Något gick fel och vi kunde inte stänga av videokameran! (SRD Failure)",
|
||||
"oops": "Ojdå!",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "Det uppstod någon typ av fel",
|
||||
"passwordRequired": "Lösenord krävs",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"Remove": "Ta bort",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"removeSharedVideoTitle": "",
|
||||
@@ -202,6 +243,7 @@
|
||||
"WaitForHostMsg": "Konferensen <b>__room__</b> har inte startat än. Om du är värd för konferensen, vänligen logga in. Annars, vänta kvar på att konferensvärden kommer.",
|
||||
"IamHost": "Jag är värd",
|
||||
"Cancel": "Avbryt",
|
||||
"Submit": "",
|
||||
"retry": "Försök igen",
|
||||
"logoutTitle": "Logga ut",
|
||||
"logoutQuestion": "Är du säker på att du vill logga ut och stoppa konferensen?",
|
||||
@@ -216,26 +258,29 @@
|
||||
"sipMsg": "Skriv in SIP-nummer",
|
||||
"passwordCheck": "Är du säker på att du vill ta bort ditt lösenord?",
|
||||
"passwordMsg": "Sätt ett lösenord för att låsa ditt rum",
|
||||
"Invite": "Bjud in",
|
||||
"shareLink": "Dela den här länken med alla du vill bjuda in",
|
||||
"shareLink": "",
|
||||
"settings1": "Anpassa din konferens",
|
||||
"settings2": "Deltagare går med med mikrofonen avstängd",
|
||||
"settings3": "Kräver användarnamn<br/><br/>Sätt ett lösenord för att låsa ditt rum:",
|
||||
"yourPassword": "ditt lösenord",
|
||||
"yourPassword": "",
|
||||
"Back": "Tillbaka",
|
||||
"serviceUnavailable": "Tjänsten otillgänglig",
|
||||
"gracefulShutdown": "Vår tjänst är för tillfället nedstängd för underhåll. Vänligen försök senare.",
|
||||
"Yes": "Ja",
|
||||
"reservationError": "Fel i reservationssystemet",
|
||||
"reservationErrorMsg": "Felkod: __code__, meddelande: __msg__",
|
||||
"password": "lösenord",
|
||||
"password": "",
|
||||
"userPassword": "användarlösenord",
|
||||
"token": "token",
|
||||
"tokenAuthFailed": "Misslyckades att autentisera mot XMPP-server: ogiltig token",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "Tillägg krävs:",
|
||||
"firefoxExtensionPrompt": "Du behöver installera ett Firefox-tillägg för att kunna använda skärmdelning. Vänligen försök igen efter att du <a href='__url__'>hämtat det här</a>!",
|
||||
"feedbackQuestion": "Hur upplevde du samtalet?",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "Tack för att du använder __appName__!",
|
||||
"sorryFeedback": "Tråkigt att du känner så. Vill du berätta mer?",
|
||||
"liveStreaming": "",
|
||||
@@ -246,6 +291,7 @@
|
||||
"stopLiveStreaming": "",
|
||||
"stopRecording": "",
|
||||
"doNotShowWarningAgain": "",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "",
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"micErrorPresent": "",
|
||||
@@ -258,7 +304,15 @@
|
||||
"micUnknownError": "",
|
||||
"micPermissionDeniedError": "",
|
||||
"micNotFoundError": "",
|
||||
"micConstraintFailedError": ""
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Tysta"
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user