mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-01-06 14:52:28 +00:00
Compare commits
214 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a1eff917c | ||
|
|
6d62e91ff1 | ||
|
|
241dc3b147 | ||
|
|
141acea194 | ||
|
|
80329e8ffe | ||
|
|
9621ba03f3 | ||
|
|
04a1da2cea | ||
|
|
bd24135d76 | ||
|
|
0c08f96755 | ||
|
|
984085ac54 | ||
|
|
9c47a7e972 | ||
|
|
088fe87e31 | ||
|
|
f3783efc48 | ||
|
|
1e84f993b4 | ||
|
|
03b4a32dd7 | ||
|
|
70fc727b92 | ||
|
|
d0476991a6 | ||
|
|
2496b3ec02 | ||
|
|
bf915fe886 | ||
|
|
46ccefdfe9 | ||
|
|
f86f21beb2 | ||
|
|
fe8f383a41 | ||
|
|
72c9933e73 | ||
|
|
4b2795502c | ||
|
|
082fe711f2 | ||
|
|
ba49c7955a | ||
|
|
354fa36f44 | ||
|
|
2a75d67be9 | ||
|
|
5e6cea63fb | ||
|
|
0d3927fed1 | ||
|
|
9049f52402 | ||
|
|
c2ae7999ef | ||
|
|
5a50932174 | ||
|
|
53e1160a1c | ||
|
|
15ab7a292c | ||
|
|
fce0e4c22c | ||
|
|
4dc78ce458 | ||
|
|
67edaac1c9 | ||
|
|
e830b80b6b | ||
|
|
284e4e543e | ||
|
|
1d8ee9d32f | ||
|
|
6982506acc | ||
|
|
d818436645 | ||
|
|
31729d7949 | ||
|
|
ed53f54628 | ||
|
|
9833965a27 | ||
|
|
8cdd73b987 | ||
|
|
a7ee632f43 | ||
|
|
b304ad5808 | ||
|
|
86e4876df2 | ||
|
|
034518a6a0 | ||
|
|
bf523711df | ||
|
|
bfeaf329e1 | ||
|
|
0e234bfd82 | ||
|
|
8fc095039e | ||
|
|
eca04de348 | ||
|
|
18d1572dab | ||
|
|
45a1ae26ca | ||
|
|
6545a7a1bb | ||
|
|
ec9c05e401 | ||
|
|
bf03e73876 | ||
|
|
6682543691 | ||
|
|
8d81f1d69f | ||
|
|
8436f23e05 | ||
|
|
2ae354530e | ||
|
|
4938d1b6de | ||
|
|
cd3dad956b | ||
|
|
328da08b3a | ||
|
|
a94e38e890 | ||
|
|
b9f2ab7692 | ||
|
|
05f8c69fe6 | ||
|
|
7063f144ef | ||
|
|
af92ba5e86 | ||
|
|
5e4f921e1b | ||
|
|
126f8e6d88 | ||
|
|
7f8e8177d0 | ||
|
|
e33030582f | ||
|
|
d669a6c73c | ||
|
|
8eebfcad72 | ||
|
|
ef1b8fdb77 | ||
|
|
c0f648b1ab | ||
|
|
531b638a8a | ||
|
|
4e3d033ff2 | ||
|
|
77e8c75795 | ||
|
|
9559df1b13 | ||
|
|
f93c1b5748 | ||
|
|
f616b0b71b | ||
|
|
70422f4a47 | ||
|
|
735a596afe | ||
|
|
e04129bf4d | ||
|
|
85f0ad2791 | ||
|
|
c54879d605 | ||
|
|
fdee6dc360 | ||
|
|
5f55b3198c | ||
|
|
5b6d7a3040 | ||
|
|
1ca485f1a8 | ||
|
|
6e37fe175d | ||
|
|
24db52ef0f | ||
|
|
0b8c12de0e | ||
|
|
cb5b93fb6e | ||
|
|
7114614697 | ||
|
|
45b8693a3e | ||
|
|
360283aa34 | ||
|
|
fb556edb9d | ||
|
|
28e5230472 | ||
|
|
73ea42f49f | ||
|
|
255ddbd344 | ||
|
|
df1b2c41cf | ||
|
|
8752cc40e2 | ||
|
|
e42d209401 | ||
|
|
cd31aad2fd | ||
|
|
81d7a3147b | ||
|
|
ac909dce4c | ||
|
|
6a040d2e67 | ||
|
|
3ab9765e6b | ||
|
|
1025ce75bd | ||
|
|
2e0faa8715 | ||
|
|
0f6541c07b | ||
|
|
7466a03a7d | ||
|
|
e781f4f02d | ||
|
|
08d9f28cc4 | ||
|
|
a5b94e5534 | ||
|
|
7cea557416 | ||
|
|
52ee8fd473 | ||
|
|
670d575bcb | ||
|
|
16fbf90a00 | ||
|
|
ec22329408 | ||
|
|
26f0f7f89c | ||
|
|
9bca0e3b3d | ||
|
|
3102ea6818 | ||
|
|
ec7c10c99b | ||
|
|
28b4595561 | ||
|
|
e3361e2f3b | ||
|
|
c3a4a38414 | ||
|
|
38e2443ab7 | ||
|
|
2356238887 | ||
|
|
c42f1704ff | ||
|
|
5358f022ff | ||
|
|
5ef914602f | ||
|
|
2818520c8f | ||
|
|
131e5af01e | ||
|
|
90e7804834 | ||
|
|
c0de88ba8c | ||
|
|
99ce46cfa8 | ||
|
|
e0e3e873b8 | ||
|
|
e4f959e400 | ||
|
|
27deb97c5c | ||
|
|
20379da236 | ||
|
|
378a8d014e | ||
|
|
31dd3da2b6 | ||
|
|
ba61876b13 | ||
|
|
f54e87d975 | ||
|
|
c1fbbc4571 | ||
|
|
3d397a28e6 | ||
|
|
6003b560ae | ||
|
|
207393d98e | ||
|
|
571958cf26 | ||
|
|
4a39a630a4 | ||
|
|
3e3577766d | ||
|
|
5e4d3de8fd | ||
|
|
1b7973a28e | ||
|
|
830ec3d097 | ||
|
|
995a25ee15 | ||
|
|
725d39ddcd | ||
|
|
cd910e3074 | ||
|
|
2e3a5b1c35 | ||
|
|
1b0bffe251 | ||
|
|
1782030936 | ||
|
|
382b328262 | ||
|
|
b81dc4e59b | ||
|
|
53f675fbe0 | ||
|
|
f18b42b286 | ||
|
|
91e75bf7b9 | ||
|
|
fe59084979 | ||
|
|
025f7204d5 | ||
|
|
da9e3fb63e | ||
|
|
d7bccd0c93 | ||
|
|
f1f46e0af5 | ||
|
|
19d9b3f023 | ||
|
|
d8cd3e75b4 | ||
|
|
c1fb1a7def | ||
|
|
ca80839094 | ||
|
|
194b3ac9d3 | ||
|
|
cfe7e30550 | ||
|
|
ff442853a2 | ||
|
|
85a168d51b | ||
|
|
d600504d85 | ||
|
|
bd4766648a | ||
|
|
d200abb8db | ||
|
|
002e48b886 | ||
|
|
1c1604bee7 | ||
|
|
99fd325a51 | ||
|
|
4f6ec920cd | ||
|
|
0d33844d51 | ||
|
|
0836f2cefd | ||
|
|
97832e0eef | ||
|
|
00e058d392 | ||
|
|
504646fff0 | ||
|
|
122ebe48c7 | ||
|
|
fe8ac0fff9 | ||
|
|
cd66a7fcb7 | ||
|
|
74ddae4a6a | ||
|
|
1ad8436cb5 | ||
|
|
6b2a93909b | ||
|
|
c259551d9a | ||
|
|
377be4272a | ||
|
|
737419dbe8 | ||
|
|
1748049322 | ||
|
|
caea02a322 | ||
|
|
d778b716be | ||
|
|
4dcbe5c6a0 | ||
|
|
c04ef05058 | ||
|
|
82117a0aef | ||
|
|
9c6afc2062 |
@@ -99,8 +99,8 @@ see our [guidelines for contributing](CONTRIBUTING.md).
|
||||
Jitsi Meet provides a very flexible way of embedding it in external applications by using the [Jitsi Meet API](doc/api.md).
|
||||
|
||||
## Mobile app
|
||||
Jitsi Meet is also available as a React Native application for Android and iOS.
|
||||
Instructions on how to build it can be found [here](doc/mobile.md).
|
||||
Jitsi Meet is also available as a React Native app for Android and iOS.
|
||||
Instructions on how to build it can be found [here](doc/mobile.md).
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
|
||||
12
analytics.js
12
analytics.js
@@ -27,7 +27,13 @@
|
||||
action + '.' + data.browserName, label, value);
|
||||
};
|
||||
|
||||
if(typeof ctx.analyticsHandlers === "undefined")
|
||||
ctx.analyticsHandlers = [];
|
||||
ctx.analyticsHandlers.push(Analytics);
|
||||
if (typeof ctx.JitsiMeetJS === "undefined")
|
||||
ctx.JitsiMeetJS = {};
|
||||
|
||||
if (typeof ctx.JitsiMeetJS.app === "undefined")
|
||||
ctx.JitsiMeetJS.app = {};
|
||||
|
||||
if (typeof ctx.JitsiMeetJS.app.analyticsHandlers === "undefined")
|
||||
ctx.JitsiMeetJS.app.analyticsHandlers = [];
|
||||
ctx.JitsiMeetJS.app.analyticsHandlers.push(Analytics);
|
||||
}(window));
|
||||
|
||||
@@ -1,9 +1,26 @@
|
||||
# Jitsi Meet SDK for Android
|
||||
|
||||
This directory contains the source code of the Jitsi Meet app and the Jitsi Meet
|
||||
SDK for Android.
|
||||
## Build
|
||||
|
||||
## Jitsi Meet SDK
|
||||
1. Install all required [dependencies](https://github.com/jitsi/jitsi-meet/blob/master/doc/mobile.md).
|
||||
|
||||
2. ```bash
|
||||
cd android/
|
||||
./gradlew :sdk:assembleRelease
|
||||
```
|
||||
|
||||
3. ```bash
|
||||
./gradlew :sdk:publish
|
||||
cd ../
|
||||
```
|
||||
|
||||
## Install
|
||||
|
||||
Add the Maven repository
|
||||
`https://github.com/jitsi/jitsi-maven-repository/raw/master/releases` and the
|
||||
dependency `org.jitsi.react:jitsi-meet-sdk:1.9.0` into your `build.gradle`.
|
||||
|
||||
## API
|
||||
|
||||
Jitsi Meet SDK is an Android library which embodies the whole Jitsi Meet
|
||||
experience and makes it reusable by third-party apps.
|
||||
@@ -215,29 +232,37 @@ boilerplate.
|
||||
Called when a joining a conference was unsuccessful or when there was an error
|
||||
while in a conference.
|
||||
|
||||
The `data` HashMap contains an "error" key describing the error and a "url"
|
||||
key with the conference URL.
|
||||
The `data` `Map` contains an "error" key describing the error and a "url" key
|
||||
with the conference URL.
|
||||
|
||||
#### onConferenceJoined
|
||||
|
||||
Called when a conference was joined.
|
||||
|
||||
The `data` HashMap contains a "url" key with the conference URL.
|
||||
The `data` `Map` contains a "url" key with the conference URL.
|
||||
|
||||
#### onConferenceLeft
|
||||
|
||||
Called when a conference was left.
|
||||
|
||||
The `data` HashMap contains a "url" key with the conference URL.
|
||||
The `data` `Map` contains a "url" key with the conference URL.
|
||||
|
||||
#### onConferenceWillJoin
|
||||
|
||||
Called before a conference is joined.
|
||||
|
||||
The `data` HashMap contains a "url" key with the conference URL.
|
||||
The `data` `Map` contains a "url" key with the conference URL.
|
||||
|
||||
#### onConferenceWillLeave
|
||||
|
||||
Called before a conference is left.
|
||||
|
||||
The `data` HashMap contains a "url" key with the conference URL.
|
||||
The `data` `Map` contains a "url" key with the conference URL.
|
||||
|
||||
#### onLoadConfigError
|
||||
|
||||
Called when loading the main configuration file from the Jitsi Meet deployment
|
||||
fails.
|
||||
|
||||
The `data` `Map` contains an "error" key with the error and a "url" key with the
|
||||
conference URL which necessitated the loading of the configuration file.
|
||||
|
||||
@@ -7,7 +7,7 @@ android {
|
||||
defaultConfig {
|
||||
applicationId 'org.jitsi.meet'
|
||||
versionCode Integer.parseInt("${version}")
|
||||
versionName "1.4.${version}"
|
||||
versionName "1.9.${version}"
|
||||
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.jitsi.meet">
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.jitsi.meet">
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:name=".MainActivity"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:name=".MainActivity"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
|
||||
@@ -17,8 +17,13 @@
|
||||
package org.jitsi.meet;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import org.jitsi.meet.sdk.JitsiMeetActivity;
|
||||
import org.jitsi.meet.sdk.JitsiMeetView;
|
||||
import org.jitsi.meet.sdk.JitsiMeetViewListener;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The one and only {@link Activity} that the Jitsi Meet app needs. The
|
||||
@@ -33,6 +38,80 @@ import org.jitsi.meet.sdk.JitsiMeetActivity;
|
||||
* {@code react-native run-android}.
|
||||
*/
|
||||
public class MainActivity extends JitsiMeetActivity {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected JitsiMeetView initializeView() {
|
||||
JitsiMeetView view = super.initializeView();
|
||||
|
||||
// XXX In order to increase (1) awareness of API breakages and (2) API
|
||||
// coverage, utilize JitsiMeetViewListener in the Debug configuration of
|
||||
// the app.
|
||||
if (BuildConfig.DEBUG && view != null) {
|
||||
view.setListener(new JitsiMeetViewListener() {
|
||||
private void on(String name, Map<String, Object> data) {
|
||||
// Log with the tag "ReactNative" in order to have the log
|
||||
// visible in react-native log-android as well.
|
||||
Log.d(
|
||||
"ReactNative",
|
||||
JitsiMeetViewListener.class.getSimpleName() + " "
|
||||
+ name + " "
|
||||
+ data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onConferenceFailed(Map<String, Object> data) {
|
||||
on("CONFERENCE_FAILED", data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onConferenceJoined(Map<String, Object> data) {
|
||||
on("CONFERENCE_JOINED", data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onConferenceLeft(Map<String, Object> data) {
|
||||
on("CONFERENCE_LEFT", data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onConferenceWillJoin(Map<String, Object> data) {
|
||||
on("CONFERENCE_WILL_JOIN", data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onConferenceWillLeave(Map<String, Object> data) {
|
||||
on("CONFERENCE_WILL_LEAVE", data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoadConfigError(Map<String, Object> data) {
|
||||
on("LOAD_CONFIG_ERROR", data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
||||
@@ -7,7 +7,7 @@ buildscript {
|
||||
maven { url 'https://maven.google.com' }
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.0.0-alpha8'
|
||||
classpath 'com.android.tools.build:gradle:3.0.0-beta5'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files.
|
||||
@@ -18,10 +18,111 @@ allprojects {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
jcenter()
|
||||
maven {
|
||||
// All of React Native (JS, Obj-C sources, Android binaries) is
|
||||
// installed from npm.
|
||||
url "$rootDir/../node_modules/react-native/android"
|
||||
maven { url "https://maven.google.com" } // Required for appcompat.
|
||||
// React Native (JS, Obj-C sources, Android binaries) is installed from
|
||||
// npm.
|
||||
maven { url "$rootDir/../node_modules/react-native/android" }
|
||||
}
|
||||
|
||||
// Third-party react-native modules which Jitsi Meet SDK for Android depends
|
||||
// on and which are not available in third-party Maven repositories need to
|
||||
// be deployed in a Maven repository of ours.
|
||||
//
|
||||
|
||||
if (project.name.startsWith('react-native-')) {
|
||||
apply plugin: 'maven-publish'
|
||||
publishing {
|
||||
publications {}
|
||||
repositories {
|
||||
maven { url "file:${rootProject.projectDir}/../../../jitsi/jitsi-maven-repository/releases" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate { project ->
|
||||
if (project.name.startsWith('react-native-')) {
|
||||
def npmManifest = project.file('../package.json')
|
||||
def json = new groovy.json.JsonSlurper().parseText(npmManifest.text)
|
||||
|
||||
// React Native modules have an npm peer dependency on react-native,
|
||||
// they do not have an npm dependency on it. Further below though we
|
||||
// choose a react-native version (range) when we represent them as
|
||||
// Maven artifacts. Effectively, we are forking the projects by not
|
||||
// complying with the full range of their npm peer dependency and,
|
||||
// consequently, we should qualify their version.
|
||||
def versionQualifier = '-jitsi-1'
|
||||
if ('react-native-webrtc'.equals(project.name))
|
||||
versionQualifier = '-jitsi-1'
|
||||
|
||||
project.version = "${json.version}${versionQualifier}"
|
||||
|
||||
project.android {
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
}
|
||||
}
|
||||
|
||||
task androidJavadocs(type: Javadoc) {
|
||||
source = android.sourceSets.main.java.source
|
||||
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
|
||||
failOnError false
|
||||
}
|
||||
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
|
||||
classifier = 'javadoc'
|
||||
from androidJavadocs.destinationDir
|
||||
}
|
||||
task androidSourcesJar(type: Jar) {
|
||||
classifier = 'sources'
|
||||
from android.sourceSets.main.java.source
|
||||
}
|
||||
|
||||
publishing.publications {
|
||||
aarArchive(MavenPublication) {
|
||||
groupId rootProject.ext.moduleGroupId
|
||||
artifactId project.name
|
||||
version project.version
|
||||
|
||||
artifact("${project.buildDir}/outputs/aar/${project.name}-release.aar") {
|
||||
extension "aar"
|
||||
}
|
||||
artifact(androidSourcesJar)
|
||||
artifact(androidJavadocsJar)
|
||||
pom.withXml {
|
||||
def pomXml = asNode()
|
||||
pomXml.appendNode('name', project.name)
|
||||
pomXml.appendNode('description', json.description)
|
||||
pomXml.appendNode('url', json.homepage)
|
||||
if (json.license) {
|
||||
def license = pomXml.appendNode('licenses').appendNode('license')
|
||||
license.appendNode('name', json.license)
|
||||
license.appendNode('distribution', 'repo')
|
||||
}
|
||||
|
||||
def dependencies = pomXml.appendNode('dependencies')
|
||||
configurations.getByName('releaseCompileClasspath').getResolvedConfiguration().getFirstLevelModuleDependencies().each {
|
||||
def artifactId = it.moduleName
|
||||
def version = it.moduleVersion
|
||||
// React Native signals breaking changes by
|
||||
// increasing the minor version number. So the
|
||||
// (third-party) React Native modules we utilize can
|
||||
// depend not on a specific react-native release but
|
||||
// a wider range.
|
||||
if (artifactId.equals('react-native')) {
|
||||
def versionNumber = VersionNumber.parse(version)
|
||||
version = "${versionNumber.major}.${versionNumber.minor}"
|
||||
}
|
||||
|
||||
def dependency = dependencies.appendNode('dependency')
|
||||
dependency.appendNode('groupId', it.moduleGroup)
|
||||
dependency.appendNode('artifactId', artifactId)
|
||||
dependency.appendNode('version', version)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30,7 +131,13 @@ ext {
|
||||
compileSdkVersion = 25
|
||||
buildToolsVersion = "25.0.3"
|
||||
minSdkVersion = 16
|
||||
targetSdkVersion = 23
|
||||
targetSdkVersion = 25
|
||||
|
||||
// The Maven artifact groupdId of the third-party react-native modules which
|
||||
// Jitsi Meet SDK for Android depends on and which are not available in
|
||||
// third-party Maven repositories so we have to deploy to a Maven repository
|
||||
// of ours.
|
||||
moduleGroupId = 'com.facebook.react'
|
||||
}
|
||||
|
||||
// Force the version of the Android build tools we have chosen on all
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#Mon Jul 17 18:25:08 CEST 2017
|
||||
#Fri Sep 08 10:42:14 CEST 2017
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
@@ -7,7 +8,6 @@ android {
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
publishNonDefault true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -22,10 +22,11 @@ android {
|
||||
dependencies {
|
||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
|
||||
compile 'com.android.support:appcompat-v7:23.0.1'
|
||||
compile 'com.android.support:appcompat-v7:25.4.0'
|
||||
compile 'com.facebook.react:react-native:+'
|
||||
|
||||
compile project(':react-native-background-timer')
|
||||
compile project(':react-native-fetch-blob')
|
||||
compile project(':react-native-immersive')
|
||||
compile project(':react-native-keep-awake')
|
||||
compile project(':react-native-vector-icons')
|
||||
@@ -53,7 +54,6 @@ gradle.projectsEvaluated {
|
||||
def currentFontTask = tasks.create(
|
||||
name: "copy${buildNameCapitalized}Fonts",
|
||||
type: Copy) {
|
||||
|
||||
from("${projectDir}/../../fonts/jitsi.ttf")
|
||||
from("${projectDir}/../../node_modules/react-native-vector-icons/Fonts/")
|
||||
into("${bundlePath}/assets/fonts")
|
||||
@@ -82,7 +82,6 @@ gradle.projectsEvaluated {
|
||||
def currentBundleTask = tasks.create(
|
||||
name: bundleJsAndAssetsTaskName,
|
||||
type: Exec) {
|
||||
|
||||
// Set up inputs and outputs so gradle can cache the result.
|
||||
def reactRoot = file("${projectDir}/../../")
|
||||
inputs.files fileTree(dir: reactRoot, excludes: ['android/**', 'ios/**'])
|
||||
@@ -119,3 +118,46 @@ gradle.projectsEvaluated {
|
||||
runBefore("process${buildNameCapitalized}Resources", currentBundleTask)
|
||||
}
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
aarArchive(MavenPublication) {
|
||||
groupId 'org.jitsi.react'
|
||||
artifactId 'jitsi-meet-sdk'
|
||||
version '1.9.0'
|
||||
|
||||
artifact("${project.buildDir}/outputs/aar/${project.name}-release.aar") {
|
||||
extension "aar"
|
||||
}
|
||||
pom.withXml {
|
||||
def pomXml = asNode()
|
||||
pomXml.appendNode('name', 'jitsi-meet-sdk')
|
||||
pomXml.appendNode('description', 'Jitsi Meet SDK for Android')
|
||||
def dependencies = pomXml.appendNode('dependencies')
|
||||
configurations.getByName('releaseCompileClasspath').getResolvedConfiguration().getFirstLevelModuleDependencies().each {
|
||||
// The (third-party) React Native modules that we depend on
|
||||
// are in source code form and do not have groupId. That is
|
||||
// why we have a dedicated groupId for them. But the other
|
||||
// dependencies come through Maven and, consequently, have
|
||||
// groupId.
|
||||
def groupId = it.moduleGroup
|
||||
def artifactId = it.moduleName
|
||||
|
||||
if (artifactId.startsWith('react-native-')
|
||||
&& groupId.equals('jitsi-meet')) {
|
||||
groupId = rootProject.ext.moduleGroupId
|
||||
}
|
||||
|
||||
def dependency = dependencies.appendNode('dependency')
|
||||
dependency.appendNode('groupId', groupId)
|
||||
dependency.appendNode('artifactId', artifactId)
|
||||
dependency.appendNode('version', it.moduleVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
repositories {
|
||||
maven { url "file:${rootProject.projectDir}/../../../jitsi/jitsi-maven-repository/releases" }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,29 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.jitsi.meet.sdk">
|
||||
<!-- XXX: ACCESS_NETWORK_STATE is required by WebRTC. -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.jitsi.meet.sdk">
|
||||
<!-- XXX ACCESS_NETWORK_STATE is required by WebRTC. -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus"/>
|
||||
|
||||
<!-- Tell the system this app requires OpenGL ES 2.0. -->
|
||||
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
|
||||
|
||||
<application android:allowBackup="true"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true">
|
||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
|
||||
</application>
|
||||
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera"
|
||||
android:required="false" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera.autofocus"
|
||||
android:required="false" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true">
|
||||
<activity
|
||||
android:name="com.facebook.react.devsupport.DevSettingsActivity" />
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
* Adapted from
|
||||
* {@link https://github.com/Aleksandern/react-native-android-settings-library}.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
|
||||
class AndroidSettingsModule extends ReactContextBaseJavaModule {
|
||||
/**
|
||||
* React Native module name.
|
||||
*/
|
||||
private static final String MODULE_NAME = "AndroidSettings";
|
||||
|
||||
public AndroidSettingsModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return MODULE_NAME;
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void open() {
|
||||
Context context = getReactApplicationContext();
|
||||
Intent intent = new Intent();
|
||||
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
intent.setData(
|
||||
Uri.fromParts("package", context.getPackageName(), null));
|
||||
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk.audiomode;
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.BroadcastReceiver;
|
||||
@@ -51,7 +51,7 @@ import java.util.Map;
|
||||
* Before a call has started and after it has ended the
|
||||
* <tt>AudioModeModule.DEFAULT</tt> mode should be used.
|
||||
*/
|
||||
public class AudioModeModule extends ReactContextBaseJavaModule {
|
||||
class AudioModeModule extends ReactContextBaseJavaModule {
|
||||
/**
|
||||
* Constants representing the audio mode.
|
||||
* - DEFAULT: Used before and after every call. It represents the default
|
||||
@@ -300,7 +300,6 @@ public class AudioModeModule extends ReactContextBaseJavaModule {
|
||||
audioManager.setMode(AudioManager.MODE_NORMAL);
|
||||
audioManager.abandonAudioFocus(null);
|
||||
audioManager.setSpeakerphoneOn(false);
|
||||
audioManager.setMicrophoneMute(true);
|
||||
setBluetoothAudioRoute(false);
|
||||
|
||||
return true;
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk.audiomode;
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothHeadset;
|
||||
@@ -33,7 +33,7 @@ import android.util.Log;
|
||||
* Bluetooth headsets being connected / disconnected and notifies the module
|
||||
* about device changes when this occurs.
|
||||
*/
|
||||
public class BluetoothHeadsetMonitor {
|
||||
class BluetoothHeadsetMonitor {
|
||||
/**
|
||||
* {@link AudioModeModule} where this monitor reports.
|
||||
*/
|
||||
@@ -0,0 +1,177 @@
|
||||
/*
|
||||
* Copyright @ 2017-present Atlassian Pty Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
||||
|
||||
import org.jitsi.meet.sdk.JitsiMeetView;
|
||||
import org.jitsi.meet.sdk.JitsiMeetViewListener;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Module implementing a simple API to enable a proximity sensor-controlled
|
||||
* wake lock. When the lock is held, if the proximity sensor detects a nearby
|
||||
* object it will dim the screen and disable touch controls. The functionality
|
||||
* is used with the conference audio-only mode.
|
||||
*/
|
||||
class ExternalAPIModule extends ReactContextBaseJavaModule {
|
||||
/**
|
||||
* The {@code Method}s of {@code JitsiMeetViewListener} by event name i.e.
|
||||
* redux action types.
|
||||
*/
|
||||
private static final Map<String, Method> JITSI_MEET_VIEW_LISTENER_METHODS
|
||||
= new HashMap<>();
|
||||
|
||||
/**
|
||||
* The name of this module to be used in the React Native bridge.
|
||||
*/
|
||||
private static final String MODULE_NAME = "ExternalAPI";
|
||||
|
||||
static {
|
||||
// Figure out the mapping between the JitsiMeetViewListener methods
|
||||
// and the events i.e. redux action types.
|
||||
Pattern onPattern = Pattern.compile("^on[A-Z]+");
|
||||
Pattern camelcasePattern = Pattern.compile("([a-z0-9]+)([A-Z0-9]+)");
|
||||
|
||||
for (Method method : JitsiMeetViewListener.class.getDeclaredMethods()) {
|
||||
// * The method must be public (because it is declared by an
|
||||
// interface).
|
||||
// * The method must be/return void.
|
||||
if (!Modifier.isPublic(method.getModifiers())
|
||||
|| !Void.TYPE.equals(method.getReturnType())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// * The method name must start with "on" followed by a
|
||||
// capital/uppercase letter (in agreement with the camelcase
|
||||
// coding style customary to Java in general and the projects of
|
||||
// the Jitsi community in particular).
|
||||
String name = method.getName();
|
||||
|
||||
if (!onPattern.matcher(name).find()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// * The method must accept/have exactly 1 parameter of a type
|
||||
// assignable from HashMap.
|
||||
Class<?>[] parameterTypes = method.getParameterTypes();
|
||||
|
||||
if (parameterTypes.length != 1
|
||||
|| !parameterTypes[0].isAssignableFrom(HashMap.class)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Convert the method name to an event name.
|
||||
name
|
||||
= camelcasePattern.matcher(name.substring(2))
|
||||
.replaceAll("$1_$2")
|
||||
.toUpperCase(Locale.ROOT);
|
||||
JITSI_MEET_VIEW_LISTENER_METHODS.put(name, method);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes a new module instance. There shall be a single instance of
|
||||
* this module throughout the lifetime of the application.
|
||||
*
|
||||
* @param reactContext the {@link ReactApplicationContext} where this module
|
||||
* is created.
|
||||
*/
|
||||
public ExternalAPIModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of this module to be used in the React Native bridge.
|
||||
*
|
||||
* @return The name of this module to be used in the React Native bridge.
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return MODULE_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatches an event that occurred on JavaScript to the view's listener.
|
||||
*
|
||||
* @param name The name of the event.
|
||||
* @param data The details/specifics of the event to send determined
|
||||
* by/associated with the specified {@code name}.
|
||||
* @param scope
|
||||
*/
|
||||
@ReactMethod
|
||||
public void sendEvent(String name, ReadableMap data, String scope) {
|
||||
// The JavaScript App needs to provide uniquely identifying information
|
||||
// to the native ExternalAPI module so that the latter may match the
|
||||
// former to the native JitsiMeetView which hosts it.
|
||||
JitsiMeetView view = JitsiMeetView.findViewByExternalAPIScope(scope);
|
||||
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
JitsiMeetViewListener listener = view.getListener();
|
||||
|
||||
if (listener == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Method method = JITSI_MEET_VIEW_LISTENER_METHODS.get(name);
|
||||
|
||||
if (method != null) {
|
||||
try {
|
||||
method.invoke(listener, toHashMap(data));
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes a new {@code HashMap} instance with the key-value
|
||||
* associations of a specific {@code ReadableMap}.
|
||||
*
|
||||
* @param readableMap the {@code ReadableMap} specifying the key-value
|
||||
* associations with which the new {@code HashMap} instance is to be
|
||||
* initialized.
|
||||
* @return a new {@code HashMap} instance initialized with the key-value
|
||||
* associations of the specified {@code readableMap}.
|
||||
*/
|
||||
private HashMap<String, Object> toHashMap(ReadableMap readableMap) {
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
|
||||
for (ReadableMapKeySetIterator i = readableMap.keySetIterator();
|
||||
i.hasNextKey();) {
|
||||
String key = i.nextKey();
|
||||
|
||||
hashMap.put(key, readableMap.getString(key));
|
||||
}
|
||||
|
||||
return hashMap;
|
||||
}
|
||||
}
|
||||
@@ -76,8 +76,22 @@ public class JitsiMeetActivity extends AppCompatActivity {
|
||||
* Initializes the {@link #view} of this {@code JitsiMeetActivity} with a
|
||||
* new {@link JitsiMeetView} instance.
|
||||
*/
|
||||
private void initializeView() {
|
||||
view = new JitsiMeetView(this);
|
||||
private void initializeContentView() {
|
||||
JitsiMeetView view = initializeView();
|
||||
|
||||
if (view != null) {
|
||||
this.view = view;
|
||||
setContentView(this.view);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes a new {@link JitsiMeetView} instance.
|
||||
*
|
||||
* @return a new {@code JitsiMeetView} instance.
|
||||
*/
|
||||
protected JitsiMeetView initializeView() {
|
||||
JitsiMeetView view = new JitsiMeetView(this);
|
||||
|
||||
// In order to have the desired effect
|
||||
// JitsiMeetView#setWelcomePageEnabled(boolean) must be invoked before
|
||||
@@ -85,7 +99,7 @@ public class JitsiMeetActivity extends AppCompatActivity {
|
||||
view.setWelcomePageEnabled(welcomePageEnabled);
|
||||
view.loadURL(null);
|
||||
|
||||
setContentView(view);
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,7 +123,7 @@ public class JitsiMeetActivity extends AppCompatActivity {
|
||||
if (requestCode == OVERLAY_PERMISSION_REQUEST_CODE
|
||||
&& canRequestOverlayPermission()) {
|
||||
if (Settings.canDrawOverlays(this)) {
|
||||
initializeView();
|
||||
initializeContentView();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -144,7 +158,7 @@ public class JitsiMeetActivity extends AppCompatActivity {
|
||||
return;
|
||||
}
|
||||
|
||||
initializeView();
|
||||
initializeContentView();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.app.Activity;
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
@@ -27,10 +28,14 @@ import android.widget.FrameLayout;
|
||||
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.ReactRootView;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.common.LifecycleState;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.WeakHashMap;
|
||||
@@ -51,11 +56,23 @@ public class JitsiMeetView extends FrameLayout {
|
||||
private static final Set<JitsiMeetView> views
|
||||
= Collections.newSetFromMap(new WeakHashMap<JitsiMeetView, Boolean>());
|
||||
|
||||
private static List<NativeModule> createNativeModules(
|
||||
ReactApplicationContext reactContext) {
|
||||
return Arrays.<NativeModule>asList(
|
||||
new AndroidSettingsModule(reactContext),
|
||||
new AudioModeModule(reactContext),
|
||||
new ExternalAPIModule(reactContext),
|
||||
new ProximityModule(reactContext)
|
||||
);
|
||||
}
|
||||
|
||||
public static JitsiMeetView findViewByExternalAPIScope(
|
||||
String externalAPIScope) {
|
||||
for (JitsiMeetView view : views) {
|
||||
if (view.externalAPIScope.equals(externalAPIScope)) {
|
||||
return view;
|
||||
synchronized (views) {
|
||||
for (JitsiMeetView view : views) {
|
||||
if (view.externalAPIScope.equals(externalAPIScope)) {
|
||||
return view;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,16 +98,44 @@ public class JitsiMeetView extends FrameLayout {
|
||||
.addPackage(new com.oblador.vectoricons.VectorIconsPackage())
|
||||
.addPackage(new com.ocetnik.timer.BackgroundTimerPackage())
|
||||
.addPackage(new com.oney.WebRTCModule.WebRTCModulePackage())
|
||||
.addPackage(new com.RNFetchBlob.RNFetchBlobPackage())
|
||||
.addPackage(new com.rnimmersive.RNImmersivePackage())
|
||||
.addPackage(new org.jitsi.meet.sdk.audiomode.AudioModePackage())
|
||||
.addPackage(
|
||||
new org.jitsi.meet.sdk.externalapi.ExternalAPIPackage())
|
||||
.addPackage(new org.jitsi.meet.sdk.proximity.ProximityPackage())
|
||||
.addPackage(new ReactPackageAdapter() {
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(
|
||||
ReactApplicationContext reactContext) {
|
||||
return JitsiMeetView.createNativeModules(reactContext);
|
||||
}
|
||||
})
|
||||
.setUseDeveloperSupport(BuildConfig.DEBUG)
|
||||
.setInitialLifecycleState(LifecycleState.RESUMED)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a specific URL {@code String} in all existing
|
||||
* {@code JitsiMeetView}s.
|
||||
*
|
||||
* @param urlString - The URL {@code String} to load in all existing
|
||||
* {@code JitsiMeetView}s.
|
||||
* @return If the specified {@code urlString} was submitted for loading in
|
||||
* at least one {@code JitsiMeetView}, then {@code true}; otherwise,
|
||||
* {@code false}.
|
||||
*/
|
||||
private static boolean loadURLStringInViews(String urlString) {
|
||||
synchronized (views) {
|
||||
if (!views.isEmpty()) {
|
||||
for (JitsiMeetView view : views) {
|
||||
view.loadURLString(urlString);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Activity lifecycle method which should be called from
|
||||
* <tt>Activity.onBackPressed</tt> so we can do the required internal
|
||||
@@ -156,6 +201,19 @@ public class JitsiMeetView extends FrameLayout {
|
||||
* @param intent - <tt>Intent</tt> instance which was received.
|
||||
*/
|
||||
public static void onNewIntent(Intent intent) {
|
||||
// XXX At least twice we received bug reports about malfunctioning
|
||||
// loadURL in the Jitsi Meet SDK while the Jitsi Meet app seemed to
|
||||
// functioning as expected in our testing. But that was to be expected
|
||||
// because the app does not exercise loadURL. In order to increase the
|
||||
// test coverage of loadURL, channel deep linking through loadURL.
|
||||
Uri uri;
|
||||
|
||||
if (Intent.ACTION_VIEW.equals(intent.getAction())
|
||||
&& (uri = intent.getData()) != null
|
||||
&& loadURLStringInViews(uri.toString())) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (reactInstanceManager != null) {
|
||||
reactInstanceManager.onNewIntent(intent);
|
||||
}
|
||||
@@ -196,15 +254,17 @@ public class JitsiMeetView extends FrameLayout {
|
||||
|
||||
// Hook this JitsiMeetView into ExternalAPI.
|
||||
externalAPIScope = UUID.randomUUID().toString();
|
||||
views.add(this);
|
||||
synchronized (views) {
|
||||
views.add(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Releases the React resources (specifically the {@link ReactRootView})
|
||||
* associated with this view.
|
||||
*
|
||||
* This method MUST be called when the Activity holding this view is destroyed, typically in the
|
||||
* {@code onDestroy} method.
|
||||
* This method MUST be called when the Activity holding this view is
|
||||
* destroyed, typically in the {@code onDestroy} method.
|
||||
*/
|
||||
public void dispose() {
|
||||
if (reactRootView != null) {
|
||||
|
||||
@@ -57,4 +57,11 @@ public abstract class JitsiMeetViewAdapter implements JitsiMeetViewListener {
|
||||
@Override
|
||||
public void onConferenceWillLeave(Map<String, Object> data) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoadConfigError(Map<String, Object> data) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,4 +58,14 @@ public interface JitsiMeetViewListener {
|
||||
* @param data - Map with a "url" key with the conference URL.
|
||||
*/
|
||||
void onConferenceWillLeave(Map<String, Object> data);
|
||||
|
||||
/**
|
||||
* Called when loading the main configuration file from the Jitsi Meet
|
||||
* deployment fails.
|
||||
*
|
||||
* @param data - Map with an "error" key with the error and a "url" key with
|
||||
* the conference URL which necessitated the loading of the configuration
|
||||
* file.
|
||||
*/
|
||||
void onLoadConfigError(Map<String, Object> data);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk.proximity;
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.PowerManager;
|
||||
@@ -31,7 +31,7 @@ import com.facebook.react.bridge.UiThreadUtil;
|
||||
* object it will dim the screen and disable touch controls. The functionality
|
||||
* is used with the conference audio-only mode.
|
||||
*/
|
||||
public class ProximityModule extends ReactContextBaseJavaModule {
|
||||
class ProximityModule extends ReactContextBaseJavaModule {
|
||||
/**
|
||||
* React Native module name.
|
||||
*/
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk.audiomode;
|
||||
package org.jitsi.meet.sdk;
|
||||
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.bridge.JavaScriptModule;
|
||||
@@ -22,14 +22,10 @@ import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implements {@link ReactPackage} for {@link AudioModeModule}.
|
||||
*/
|
||||
public class AudioModePackage implements ReactPackage {
|
||||
public class ReactPackageAdapter implements ReactPackage {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@@ -40,17 +36,11 @@ public class AudioModePackage implements ReactPackage {
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return List of native modules to be exposed by React Native.
|
||||
*/
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(
|
||||
ReactApplicationContext reactContext) {
|
||||
List<NativeModule> modules = new ArrayList<>();
|
||||
|
||||
modules.add(new AudioModeModule(reactContext));
|
||||
|
||||
return modules;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1,119 +0,0 @@
|
||||
/*
|
||||
* Copyright @ 2017-present Atlassian Pty Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk.externalapi;
|
||||
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
|
||||
import org.jitsi.meet.sdk.JitsiMeetView;
|
||||
import org.jitsi.meet.sdk.JitsiMeetViewListener;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* Module implementing a simple API to enable a proximity sensor-controlled
|
||||
* wake lock. When the lock is held, if the proximity sensor detects a nearby
|
||||
* object it will dim the screen and disable touch controls. The functionality
|
||||
* is used with the conference audio-only mode.
|
||||
*/
|
||||
public class ExternalAPIModule extends ReactContextBaseJavaModule {
|
||||
/**
|
||||
* React Native module name.
|
||||
*/
|
||||
private static final String MODULE_NAME = "ExternalAPI";
|
||||
|
||||
/**
|
||||
* Initializes a new module instance. There shall be a single instance of
|
||||
* this module throughout the lifetime of the application.
|
||||
*
|
||||
* @param reactContext the {@link ReactApplicationContext} where this module
|
||||
* is created.
|
||||
*/
|
||||
public ExternalAPIModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of this module to be used in the React Native bridge.
|
||||
*
|
||||
* @return The name of this module to be used in the React Native bridge.
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return MODULE_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatches an event that occurred on JavaScript to the view's listener.
|
||||
*
|
||||
* @param name The name of the event.
|
||||
* @param data The details/specifics of the event to send determined
|
||||
* by/associated with the specified {@code name}.
|
||||
* @param scope
|
||||
*/
|
||||
@ReactMethod
|
||||
public void sendEvent(String name, ReadableMap data, String scope) {
|
||||
// The JavaScript App needs to provide uniquely identifying information
|
||||
// to the native ExternalAPI module so that the latter may match the
|
||||
// former to the native JitsiMeetView which hosts it.
|
||||
JitsiMeetView view = JitsiMeetView.findViewByExternalAPIScope(scope);
|
||||
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
JitsiMeetViewListener listener = view.getListener();
|
||||
|
||||
if (listener == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO Converting a ReadableMap to a HashMap is not supported until
|
||||
// React Native 0.46.
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
|
||||
switch (name) {
|
||||
case "CONFERENCE_FAILED":
|
||||
dataMap.put("error", data.getString("error"));
|
||||
dataMap.put("url", data.getString("url"));
|
||||
listener.onConferenceFailed(dataMap);
|
||||
break;
|
||||
|
||||
case "CONFERENCE_JOINED":
|
||||
dataMap.put("url", data.getString("url"));
|
||||
listener.onConferenceJoined(dataMap);
|
||||
break;
|
||||
|
||||
case "CONFERENCE_LEFT":
|
||||
dataMap.put("url", data.getString("url"));
|
||||
listener.onConferenceLeft(dataMap);
|
||||
break;
|
||||
|
||||
case "CONFERENCE_WILL_JOIN":
|
||||
dataMap.put("url", data.getString("url"));
|
||||
listener.onConferenceWillJoin(dataMap);
|
||||
break;
|
||||
|
||||
case "CONFERENCE_WILL_LEAVE":
|
||||
dataMap.put("url", data.getString("url"));
|
||||
listener.onConferenceWillLeave(dataMap);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
* Copyright @ 2017-present Atlassian Pty Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk.externalapi;
|
||||
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.bridge.JavaScriptModule;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implements {@link ReactPackage} for {@link ExternalAPIModule}.
|
||||
*/
|
||||
public class ExternalAPIPackage implements ReactPackage {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return List of native modules to be exposed by React Native.
|
||||
*/
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(
|
||||
ReactApplicationContext reactContext) {
|
||||
List<NativeModule> modules = new ArrayList<>();
|
||||
|
||||
modules.add(new ExternalAPIModule(reactContext));
|
||||
|
||||
return modules;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(
|
||||
ReactApplicationContext reactContext) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
* Copyright @ 2017-present Atlassian Pty Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jitsi.meet.sdk.proximity;
|
||||
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.bridge.JavaScriptModule;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implements {@link ReactPackage} for {@link ProximityModule}.
|
||||
*/
|
||||
public class ProximityPackage implements ReactPackage {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public List<Class<? extends JavaScriptModule>> createJSModules() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return List of native modules to be exposed by React Native.
|
||||
*/
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(
|
||||
ReactApplicationContext reactContext) {
|
||||
List<NativeModule> modules = new ArrayList<>();
|
||||
|
||||
modules.add(new ProximityModule(reactContext));
|
||||
|
||||
return modules;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(
|
||||
ReactApplicationContext reactContext) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,8 @@ rootProject.name = 'jitsi-meet'
|
||||
include ':app', ':sdk'
|
||||
include ':react-native-background-timer'
|
||||
project(':react-native-background-timer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-background-timer/android')
|
||||
include ':react-native-fetch-blob'
|
||||
project(':react-native-fetch-blob').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fetch-blob/android')
|
||||
include ':react-native-immersive'
|
||||
project(':react-native-immersive').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-immersive/android')
|
||||
include ':react-native-keep-awake'
|
||||
|
||||
510
conference.js
510
conference.js
File diff suppressed because it is too large
Load Diff
286
config.js
286
config.js
@@ -1,133 +1,275 @@
|
||||
/* jshint maxlen:false */
|
||||
|
||||
var config = { // eslint-disable-line no-unused-vars
|
||||
// configLocation: './config.json', // see ./modules/HttpConfigFetch.js
|
||||
// Configuration
|
||||
//
|
||||
|
||||
// Alternative location for the configuration.
|
||||
//configLocation: './config.json',
|
||||
|
||||
// Custom function which given the URL path should return a room name.
|
||||
//getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
|
||||
|
||||
|
||||
// Connection
|
||||
//
|
||||
|
||||
hosts: {
|
||||
// XMPP domain.
|
||||
domain: 'jitsi-meet.example.com',
|
||||
|
||||
// XMPP MUC domain. FIXME: use XEP-0030 to discover it.
|
||||
muc: 'conference.jitsi-meet.example.com',
|
||||
|
||||
// When using authentication, domain for guest users.
|
||||
//anonymousdomain: 'guest.example.com',
|
||||
//authdomain: 'jitsi-meet.example.com', // defaults to <domain>
|
||||
muc: 'conference.jitsi-meet.example.com', // FIXME: use XEP-0030
|
||||
|
||||
// Domain for authenticated users. Defaults to <domain>.
|
||||
//authdomain: 'jitsi-meet.example.com',
|
||||
|
||||
// Jirecon recording component domain.
|
||||
//jirecon: 'jirecon.jitsi-meet.example.com',
|
||||
|
||||
// Call control component (Jigasi).
|
||||
//call_control: 'callcontrol.jitsi-meet.example.com',
|
||||
//focus: 'focus.jitsi-meet.example.com', // defaults to 'focus.jitsi-meet.example.com'
|
||||
|
||||
// Focus component domain. Defaults to focus.<domain>.
|
||||
//focus: 'focus.jitsi-meet.example.com',
|
||||
},
|
||||
|
||||
// BOSH URL. FIXME: use XEP-0156 to discover it.
|
||||
bosh: '//jitsi-meet.example.com/http-bind',
|
||||
|
||||
// The name of client node advertised in XEP-0115 'c' stanza
|
||||
clientNode: 'http://jitsi.org/jitsimeet',
|
||||
|
||||
// The real JID of focus participant - can be overridden here
|
||||
//focusUserJid: 'focus@auth.jitsi-meet.example.com',
|
||||
|
||||
|
||||
// Testing / experimental features.
|
||||
//
|
||||
|
||||
testing: {
|
||||
/**
|
||||
* Enables experimental simulcast support on Firefox.
|
||||
*/
|
||||
// Enables experimental simulcast support on Firefox.
|
||||
enableFirefoxSimulcast: false,
|
||||
/**
|
||||
* P2P test mode disables automatic switching to P2P when there are 2
|
||||
* participants in the conference.
|
||||
*/
|
||||
// P2P test mode disables automatic switching to P2P when there are 2
|
||||
// participants in the conference.
|
||||
p2pTestMode: false,
|
||||
},
|
||||
// getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
|
||||
// useStunTurn: true, // use XEP-0215 to fetch STUN and TURN server
|
||||
// useIPv6: true, // ipv6 support. use at your own risk
|
||||
useNicks: false,
|
||||
bosh: '//jitsi-meet.example.com/http-bind', // FIXME: use xep-0156 for that
|
||||
clientNode: 'http://jitsi.org/jitsimeet', // The name of client node advertised in XEP-0115 'c' stanza
|
||||
//focusUserJid: 'focus@auth.jitsi-meet.example.com', // The real JID of focus participant - can be overridden here
|
||||
//defaultSipNumber: '', // Default SIP number
|
||||
/**
|
||||
* Disables desktop sharing functionality.
|
||||
*/
|
||||
disableDesktopSharing: false,
|
||||
|
||||
// Disables ICE/UDP by filtering out local and remote UDP candidates in
|
||||
// signalling.
|
||||
//webrtcIceUdpDisable: false,
|
||||
|
||||
// Disables ICE/TCP by filtering out local and remote TCP candidates in
|
||||
// signalling.
|
||||
//webrtcIceTcpDisable: false,
|
||||
|
||||
|
||||
// Media
|
||||
//
|
||||
|
||||
// Audio
|
||||
|
||||
// Disable measuring of audio levels.
|
||||
//disableAudioLevels: false,
|
||||
|
||||
// Start the conference in audio only mode (no video is being received nor
|
||||
// sent).
|
||||
//startAudioOnly: false,
|
||||
|
||||
// Every participant after the Nth will start audio muted.
|
||||
//startAudioMuted: 10,
|
||||
|
||||
// Start calls with audio muted. Unlike the option above, this one is only
|
||||
// applied locally. FIXME: having these 2 options is confusing.
|
||||
//startWithAudioMuted: false,
|
||||
|
||||
// Video
|
||||
|
||||
// Sets the preferred resolution (height) for local video. Defaults to 720.
|
||||
//resolution: 720,
|
||||
|
||||
// Enable / disable simulcast support.
|
||||
//disableSimulcast: false,
|
||||
|
||||
// Suspend sending video if bandwidth estimation is too low. This may cause
|
||||
// problems with audio playback. Disabled until these are fixed.
|
||||
disableSuspendVideo: true,
|
||||
|
||||
// Every participant after the Nth will start video muted.
|
||||
//startVideoMuted: 10,
|
||||
|
||||
// Start calls with video muted. Unlike the option above, this one is only
|
||||
// applied locally. FIXME: having these 2 options is confusing.
|
||||
//startWithVideoMuted: false,
|
||||
|
||||
// If set to true, prefer to use the H.264 video codec (if supported).
|
||||
// Note that it's not recommended to do this because simulcast is not
|
||||
// supported when using H.264. For 1-to-1 calls this setting is enabled by
|
||||
// default and can be toggled in the p2p section.
|
||||
//preferH264: true,
|
||||
|
||||
// Desktop sharing
|
||||
|
||||
// Enable / disable desktop sharing
|
||||
//disableDesktopSharing: false,
|
||||
|
||||
// The ID of the jidesha extension for Chrome.
|
||||
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', 'tab'],
|
||||
|
||||
// Required version of Chrome extension
|
||||
desktopSharingChromeMinExtVersion: '0.1',
|
||||
|
||||
// The ID of the jidesha extension for Firefox. If null, we assume that no
|
||||
// extension is required.
|
||||
desktopSharingFirefoxExtId: null,
|
||||
|
||||
// Whether desktop sharing should be disabled on Firefox.
|
||||
desktopSharingFirefoxDisabled: false,
|
||||
|
||||
// The maximum version of Firefox which requires a jidesha extension.
|
||||
// Example: if set to 41, we will require the extension for Firefox versions
|
||||
// up to and including 41. On Firefox 42 and higher, we will run without the
|
||||
// extension.
|
||||
// If set to -1, an extension will be required for all versions of Firefox.
|
||||
desktopSharingFirefoxMaxVersionExtRequired: 51,
|
||||
|
||||
// The URL to the Firefox extension for desktop sharing.
|
||||
desktopSharingFirefoxExtensionURL: null,
|
||||
|
||||
// Disables ICE/UDP by filtering out local and remote UDP candidates in signalling.
|
||||
webrtcIceUdpDisable: false,
|
||||
// Disables ICE/TCP by filtering out local and remote TCP candidates in signalling.
|
||||
webrtcIceTcpDisable: false,
|
||||
// Try to start calls with screen-sharing instead of camera video.
|
||||
//startScreenSharing: false,
|
||||
|
||||
openSctp: true, // Toggle to enable/disable SCTP channels
|
||||
// Recording
|
||||
|
||||
// Whether to enable recording or not.
|
||||
//enableRecording: false,
|
||||
|
||||
// Type for recording: one of jibri or jirecon.
|
||||
//recordingType: 'jibri',
|
||||
|
||||
// Misc
|
||||
|
||||
// Default value for the channel "last N" attribute. -1 for unlimited.
|
||||
channelLastN: -1,
|
||||
|
||||
// Disables or enables RTX (RFC 4588) (defaults to false).
|
||||
//disableRtx: false,
|
||||
|
||||
// Use XEP-0215 to fetch STUN and TURN servers.
|
||||
//useStunTurn: true,
|
||||
|
||||
// Enable IPv6 support.
|
||||
//useIPv6: true,
|
||||
|
||||
// Enables / disables a data communication channel with the Videobridge.
|
||||
// Values can be 'datachannel', 'websocket', true (treat it as
|
||||
// 'datachannel'), undefined (treat it as 'datachannel') and false (don't
|
||||
// open any channel).
|
||||
//openBridgeChannel: true,
|
||||
|
||||
|
||||
// UI
|
||||
//
|
||||
|
||||
// Use display name as XMPP nickname.
|
||||
//useNicks: false,
|
||||
|
||||
// Require users to always specify a display name.
|
||||
//requireDisplayName: true,
|
||||
|
||||
// Whether to use a welcome page or not. In case it's false a random room
|
||||
// will be joined when no room is specified.
|
||||
enableWelcomePage: true,
|
||||
|
||||
// Enabling the close page will ignore the welcome page redirection when
|
||||
// a call is hangup.
|
||||
//enableClosePage: false,
|
||||
|
||||
// Disable hiding of remote thumbnails when in a 1-on-1 conference call.
|
||||
disable1On1Mode: false,
|
||||
disableStats: false,
|
||||
disableAudioLevels: false,
|
||||
channelLastN: -1, // The default value of the channel attribute last-n.
|
||||
enableRecording: false,
|
||||
enableWelcomePage: true,
|
||||
//enableClosePage: false, // enabling the close page will ignore the welcome
|
||||
// page redirection when call is hangup
|
||||
disableSimulcast: false,
|
||||
// requireDisplayName: true, // Forces the participants that doesn't have display name to enter it when they enter the room.
|
||||
startAudioOnly: false, // Will start the conference in the audio only mode (no video is being received nor sent)
|
||||
startScreenSharing: false, // Will try to start with screensharing instead of camera
|
||||
// startAudioMuted: 10, // every participant after the Nth will start audio muted
|
||||
// startVideoMuted: 10, // every participant after the Nth will start video muted
|
||||
startWithAudioMuted: false, // will start with the microphone muted
|
||||
startWithVideoMuted: false, // will start with the camera turned off
|
||||
// defaultLanguage: "en",
|
||||
// To enable sending statistics to callstats.io you should provide Applicaiton ID and Secret.
|
||||
// callStatsID: "", // Application ID for callstats.io API
|
||||
// callStatsSecret: "", // Secret for callstats.io API
|
||||
/*noticeMessage: 'Service update is scheduled for 16th March 2015. ' +
|
||||
'During that time service will not be available. ' +
|
||||
'Apologise for inconvenience.',*/
|
||||
disableThirdPartyRequests: false,
|
||||
// The minumum value a video's height (or width, whichever is smaller) needs
|
||||
//disable1On1Mode: false,
|
||||
|
||||
// The minimum value a video's height (or width, whichever is smaller) needs
|
||||
// to be in order to be considered high-definition.
|
||||
minHDHeight: 540,
|
||||
// If true - all users without token will be considered guests and all users
|
||||
|
||||
// Default language for the user interface.
|
||||
//defaultLanguage: 'en',
|
||||
|
||||
// If true all users without a 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,
|
||||
// Suspending video might cause problems with audio playback. Disabling until these are fixed.
|
||||
disableSuspendVideo: true,
|
||||
// disables or enables RTX (RFC 4588) (defaults to false).
|
||||
disableRtx: false,
|
||||
// Sets the preferred resolution (height) for local video. Defaults to 720.
|
||||
resolution: 720,
|
||||
|
||||
// Message to show the users. Example: 'The service will be down for
|
||||
// maintenance at 01:00 AM GMT,
|
||||
//noticeMessage: '',
|
||||
|
||||
|
||||
// Stats
|
||||
//
|
||||
|
||||
// Whether to enable stats collection or not.
|
||||
//disableStats: false,
|
||||
|
||||
// To enable sending statistics to callstats.io you must provide the
|
||||
// Application ID and Secret.
|
||||
//callStatsID: '',
|
||||
//callStatsSecret: '',
|
||||
|
||||
|
||||
// Privacy
|
||||
//
|
||||
|
||||
// If third party requests are disabled, no other server will be contacted.
|
||||
// This means avatars will be locally generated and callstats integration
|
||||
// will not function.
|
||||
//disableThirdPartyRequests: false,
|
||||
|
||||
|
||||
// Peer-To-Peer mode: used (if enabled) when there are just 2 participants.
|
||||
//
|
||||
|
||||
p2p: {
|
||||
// Enables peer to peer mode. When enabled system will try to establish
|
||||
// direct connection given that there are exactly 2 participants in
|
||||
// the room. If that succeeds the conference will stop sending data
|
||||
// through the JVB and use the peer to peer connection instead. When 3rd
|
||||
// participant joins the conference will be moved back to the JVB
|
||||
// Enables peer to peer mode. When enabled the system will try to
|
||||
// establish a direct connection when there are exactly 2 participants
|
||||
// in the room. If that succeeds the conference will stop sending data
|
||||
// through the JVB and use the peer to peer connection instead. When a
|
||||
// 3rd participant joins the conference will be moved back to the JVB
|
||||
// connection.
|
||||
enabled: true,
|
||||
|
||||
// Use XEP-0215 to fetch STUN and TURN servers.
|
||||
//useStunTurn: true,
|
||||
|
||||
// The STUN servers that will be used in the peer to peer connections
|
||||
// useStunTurn: true, // use XEP-0215 to fetch STUN and TURN server
|
||||
stunServers: [
|
||||
{ urls: "stun:stun.l.google.com:19302" },
|
||||
{ urls: "stun:stun1.l.google.com:19302" },
|
||||
{ urls: "stun:stun2.l.google.com:19302" }
|
||||
],
|
||||
|
||||
// If set to true, it will prefer to use H.264 for P2P calls (if H.264
|
||||
// is supported).
|
||||
preferH264: true
|
||||
// How long we're going to wait, before going back to P2P after
|
||||
// the 3rd participant has left the conference (to filter out page reload)
|
||||
|
||||
// How long we're going to wait, before going back to P2P after the 3rd
|
||||
// participant has left the conference (to filter out page reload).
|
||||
//backToP2PDelay: 5
|
||||
},
|
||||
// Information about the jitsi-meet instance we are connecting to, including the
|
||||
// user region as seen by the server.
|
||||
|
||||
|
||||
// Information about the jitsi-meet instance we are connecting to, including
|
||||
// the user region as seen by the server.
|
||||
//
|
||||
|
||||
deploymentInfo: {
|
||||
//shard: "shard1",
|
||||
//region: "europe",
|
||||
|
||||
@@ -80,8 +80,8 @@ form {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 15;
|
||||
width: 186px;
|
||||
height: 74px;
|
||||
width: $watermarkWidth;
|
||||
height: $watermarkHeight;
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
z-index: $zindex2;
|
||||
@@ -119,21 +119,6 @@ form {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tooltips
|
||||
**/
|
||||
.tipsy {
|
||||
z-index: $tooltipsZ;
|
||||
&-inner {
|
||||
background-color: $tooltipBg;
|
||||
max-width: 350px;
|
||||
}
|
||||
|
||||
&-arrow {
|
||||
border-color: $tooltipBg;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Dialogs fade
|
||||
*/
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
%connection-info {
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: $popoverFontColor;
|
||||
color: $modalTextColor;
|
||||
|
||||
td {
|
||||
padding: 2px 0;
|
||||
@@ -11,11 +10,14 @@
|
||||
|
||||
.connection-info
|
||||
{
|
||||
float: left;
|
||||
padding: 5px;
|
||||
padding-left: 0;
|
||||
@extend %connection-info;
|
||||
|
||||
/**
|
||||
* Apply negative margin to reduce the appearance of padding in AtlasKit
|
||||
* InlineDialog.
|
||||
*/
|
||||
margin: -15px;
|
||||
|
||||
> table {
|
||||
white-space: nowrap;
|
||||
@extend %connection-info;
|
||||
@@ -40,4 +42,11 @@
|
||||
@extend .connection-info__icon;
|
||||
color: $uploadConnectionIconColor;
|
||||
}
|
||||
|
||||
.showmore {
|
||||
display: block;
|
||||
margin: 10px auto;
|
||||
text-align: center;
|
||||
width: 90px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
#contacts_container {
|
||||
cursor: default;
|
||||
|
||||
> ul#contacts {
|
||||
/**
|
||||
* Override generic side toolbar styles to compensate for AtlasKit Button
|
||||
* being used instead of custom button styling.
|
||||
*/
|
||||
.sideToolbarBlock {
|
||||
.contact-list-panel-invite-button {
|
||||
font-size: $modalButtonFontSize;
|
||||
justify-content: center;
|
||||
margin: 9px 0;
|
||||
}
|
||||
}
|
||||
|
||||
#contacts {
|
||||
font-size: 12px;
|
||||
bottom: 0px;
|
||||
margin: 0;
|
||||
@@ -21,30 +33,33 @@
|
||||
}
|
||||
|
||||
#contacts {
|
||||
|
||||
>li {
|
||||
display: block;
|
||||
.contact-list-item {
|
||||
align-items: center;
|
||||
border-radius: 3px;
|
||||
color: $baseLight;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
height: 36px;
|
||||
list-style-type: none;
|
||||
padding: 0 10%;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
color: $baseLight;
|
||||
font-size: 16px;
|
||||
padding: 0 10%;
|
||||
height: 27px;
|
||||
|
||||
&:hover,
|
||||
&:active {
|
||||
background: $toolbarSelectBackground;
|
||||
}
|
||||
|
||||
> p {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 0px;
|
||||
width: 100%;
|
||||
line-height: 1.5em;
|
||||
text-overflow: ellipsis;
|
||||
.contact-list-item-name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
cursor: pointer;
|
||||
height: 24px;
|
||||
margin: 0 8px 0 4px;
|
||||
width: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -58,4 +73,4 @@
|
||||
border-radius: 20px;
|
||||
max-height: 30px;
|
||||
max-width: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
right: 0;
|
||||
padding: 10px 5px;
|
||||
@extend %align-right;
|
||||
z-index: $filmstripVideosZ;
|
||||
|
||||
&__toolbar {
|
||||
@include flex();
|
||||
flex-direction: column-reverse;
|
||||
flex-wrap: nowrap;
|
||||
position: relative;
|
||||
z-index: $zindex1; // Set z-index to make element visible.
|
||||
width: $filmstripToggleButtonWidth;
|
||||
|
||||
button {
|
||||
@@ -53,7 +53,6 @@
|
||||
/* The filmstrip should not be covered by the left toolbar. */
|
||||
bottom: 0;
|
||||
width:auto;
|
||||
z-index: $filmstripVideosZ;
|
||||
transition: bottom 2s;
|
||||
overflow: visible !important;
|
||||
/*!!! Removes the gap between the local video container and the remote
|
||||
@@ -103,6 +102,24 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
.presence-label {
|
||||
color: $participantNameColor;
|
||||
font-size: 12px;
|
||||
font-weight: 100;
|
||||
left: 0;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
text-overflow: ellipsis;
|
||||
top: calc(50% + 30px);
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
z-index: $zindex3;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hovered video thumbnail.
|
||||
*/
|
||||
@@ -139,8 +156,10 @@
|
||||
|
||||
.remote-videos-container {
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
&.hide-videos {
|
||||
&.hide-videos {
|
||||
.remote-videos-container {
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
.jitsipopover {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: $jitsipopoverZ;
|
||||
display: table;
|
||||
visibility: hidden;
|
||||
max-width: 300px;
|
||||
min-width: 100px;
|
||||
text-align: left;
|
||||
color: $popoverFontColor;
|
||||
background-color: $popoverBg;
|
||||
background-clip: padding-box;
|
||||
border-radius: $borderRadius;
|
||||
/*-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: -$popoverMenuPadding;
|
||||
|
||||
|
||||
&__menu-padding,
|
||||
&__menu-padding-top {
|
||||
position: absolute;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invisible padding is added to the bottom of the popover to extend its
|
||||
* height so it does not close when moving the mouse from the trigger
|
||||
* element towards the popover itself.
|
||||
*/
|
||||
&__menu-padding {
|
||||
bottom: -$popoverMenuPadding;
|
||||
height: $popoverMenuPadding;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invisible padding is added to the top of the popover to extend its height
|
||||
* so it does not close automatically when its height is shrunk from showing
|
||||
* less video statistics.
|
||||
*/
|
||||
&__menu-padding-top {
|
||||
height: 20px;
|
||||
top: -20px;
|
||||
}
|
||||
|
||||
&__showmore {
|
||||
display: block;
|
||||
text-align: center;
|
||||
width: 90px;
|
||||
margin: 10px auto;
|
||||
}
|
||||
|
||||
> .arrow {
|
||||
position: absolute;
|
||||
display: block;
|
||||
left: 50%;
|
||||
bottom: -5px;
|
||||
margin-left: -5px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-color: transparent;
|
||||
border-top-color: $popoverBg;
|
||||
border-style: solid;
|
||||
border-width: 5px;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override default "top" styles to support popovers appearing from the
|
||||
* left of the popover trigger element.
|
||||
*/
|
||||
&.left {
|
||||
margin-left: -$popoverMenuPadding;
|
||||
margin-top: 0;
|
||||
|
||||
.arrow {
|
||||
border-color: transparent transparent transparent $popoverBg;
|
||||
border-width: 5px 0px 5px 5px;
|
||||
margin-left: 0;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.jitsipopover {
|
||||
&__menu-padding {
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
width: $popoverMenuPadding;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,124 +1,33 @@
|
||||
.popover {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: $popoverZ;
|
||||
display: none;
|
||||
max-width: 300px;
|
||||
min-width: 100px;
|
||||
padding: 1px;
|
||||
text-align: left;
|
||||
color: #333333;
|
||||
background-color: #ffffff;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid #cccccc;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-radius: 6px;
|
||||
-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;
|
||||
/**
|
||||
* Mousemove padding styles are used to add invisible elements to the popover
|
||||
* to allow mouse movement from the popover trigger to the popover itself
|
||||
* without triggering a mouseleave event.
|
||||
*/
|
||||
.popover-mousemove-padding-bottom {
|
||||
bottom: -15px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.popover.top {
|
||||
margin-top: -10px;
|
||||
.popover-mousemove-padding-right {
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
right: -20;
|
||||
top: 0;
|
||||
width: 40px;
|
||||
}
|
||||
.popover.right {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.popover.bottom {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.popover.left {
|
||||
margin-left: -10px;
|
||||
}
|
||||
.popover-title {
|
||||
margin: 0;
|
||||
padding: 8px 14px;
|
||||
font-size: 11pt;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
.popover-content {
|
||||
padding: 9px 14px;
|
||||
font-size: 10pt;
|
||||
white-space:pre-wrap;
|
||||
text-align: center;
|
||||
}
|
||||
.popover > .arrow,
|
||||
.popover > .arrow:after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-color: transparent;
|
||||
border-style: solid;
|
||||
}
|
||||
.popover > .arrow {
|
||||
border-width: 11px;
|
||||
}
|
||||
.popover > .arrow:after {
|
||||
border-width: 10px;
|
||||
content: "";
|
||||
}
|
||||
.popover.top > .arrow {
|
||||
left: 50%;
|
||||
margin-left: -11px;
|
||||
border-bottom-width: 0;
|
||||
border-top-color: #999999;
|
||||
border-top-color: rgba(0, 0, 0, 0.25);
|
||||
bottom: -11px;
|
||||
}
|
||||
.popover.top > .arrow:after {
|
||||
content: " ";
|
||||
bottom: 1px;
|
||||
margin-left: -10px;
|
||||
border-bottom-width: 0;
|
||||
border-top-color: #ffffff;
|
||||
}
|
||||
.popover.right > .arrow {
|
||||
top: 50%;
|
||||
left: -11px;
|
||||
margin-top: -11px;
|
||||
border-left-width: 0;
|
||||
border-right-color: #999999;
|
||||
border-right-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.popover.right > .arrow:after {
|
||||
content: " ";
|
||||
left: 1px;
|
||||
bottom: -10px;
|
||||
border-left-width: 0;
|
||||
border-right-color: #ffffff;
|
||||
}
|
||||
.popover.bottom > .arrow {
|
||||
left: 50%;
|
||||
margin-left: -11px;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: #999999;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.25);
|
||||
top: -11px;
|
||||
}
|
||||
.popover.bottom > .arrow:after {
|
||||
content: " ";
|
||||
top: 1px;
|
||||
margin-left: -10px;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: #ffffff;
|
||||
}
|
||||
.popover.left > .arrow {
|
||||
top: 50%;
|
||||
right: -11px;
|
||||
margin-top: -11px;
|
||||
border-right-width: 0;
|
||||
border-left-color: #999999;
|
||||
border-left-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.popover.left > .arrow:after {
|
||||
content: " ";
|
||||
right: 1px;
|
||||
border-right-width: 0;
|
||||
border-left-color: #ffffff;
|
||||
bottom: -10px;
|
||||
|
||||
/**
|
||||
* An invisible element is added to the top of the popover to ensure the mouse
|
||||
* stays over the popover when the popover's height is shrunk, which would then
|
||||
* normally leave the mouse outside of the popover itself and cause a mouseleave
|
||||
* event.
|
||||
*/
|
||||
.popover-mouse-padding-top {
|
||||
height: 30px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -25px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -3,37 +3,31 @@
|
||||
**/
|
||||
|
||||
.popupmenu {
|
||||
text-align: left;
|
||||
padding: 0;
|
||||
margin: 2px 0;
|
||||
bottom: 0;
|
||||
height: auto;
|
||||
|
||||
&:first-child {
|
||||
margin-top: 2px;
|
||||
}
|
||||
white-space: nowrap;
|
||||
|
||||
&__item {
|
||||
list-style-type: none;
|
||||
text-align: left;
|
||||
height: 35px;
|
||||
|
||||
&:hover {
|
||||
background-color: $popupMenuSelectedItemBackground;
|
||||
background-color: rgba(9, 30, 66, 0.04);
|
||||
}
|
||||
}
|
||||
|
||||
// Link Appearance
|
||||
&__link,
|
||||
&__contents {
|
||||
color: $modalTextColor;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
padding: 5px;
|
||||
height: 100%;
|
||||
font-size: 9pt;
|
||||
width: 100%;
|
||||
cursor: hand;
|
||||
cursor: pointer;
|
||||
padding: 0 5px;
|
||||
|
||||
&.disabled {
|
||||
color: gray !important;
|
||||
@@ -46,6 +40,12 @@
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
&__link {
|
||||
i {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
&__contents {
|
||||
display: flex;
|
||||
|
||||
@@ -73,7 +73,6 @@
|
||||
display: inline-block;
|
||||
min-width: 20px;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
|
||||
> * {
|
||||
@include absoluteAligning();
|
||||
@@ -85,6 +84,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Override reset css styling modifying all lists and set negative margin to
|
||||
* reduce the visibility of padding on AtlasKit
|
||||
* InlineDialogs.
|
||||
*/
|
||||
ul.popupmenu {
|
||||
margin: -15px;
|
||||
}
|
||||
|
||||
span.remotevideomenu:hover ul.popupmenu, ul.popupmenu:hover {
|
||||
display:block !important;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
.recordingSpinner {
|
||||
display: none;
|
||||
vertical-align: top;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,29 @@
|
||||
position: relative;
|
||||
z-index: $toolbarZ;
|
||||
|
||||
/**
|
||||
* Ensure nested elements that don't have a button class, maybe because they
|
||||
* are wrapped in a React Element, still display in a line.
|
||||
*/
|
||||
> div {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Always on top overrides.
|
||||
*/
|
||||
&.always-on-top {
|
||||
/**
|
||||
* Toolbar button styles for always on top.
|
||||
*/
|
||||
> .button {
|
||||
font-size: $alwaysOnTopToolbarFontSize;
|
||||
height: $alwaysOnTopToolbarSize;
|
||||
line-height: $alwaysOnTopToolbarSize;
|
||||
width: $alwaysOnTopToolbarSize;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Toolbar button styles.
|
||||
*/
|
||||
@@ -94,10 +117,6 @@
|
||||
&.icon-microphone {
|
||||
@extend .icon-mic-disabled;
|
||||
}
|
||||
|
||||
&.icon-visibility {
|
||||
@extend .icon-visibility-off;
|
||||
}
|
||||
}
|
||||
|
||||
&.unclickable {
|
||||
@@ -124,13 +143,18 @@
|
||||
border-radius: 3px;
|
||||
opacity: 0;
|
||||
|
||||
&.always-on-top {
|
||||
height: $alwaysOnTopToolbarSize;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
@include transform(translateX(-50%));
|
||||
|
||||
.button:first-child {
|
||||
> div:first-child .button {
|
||||
border-bottom-left-radius: 3px;
|
||||
border-top-left-radius: 3px;
|
||||
}
|
||||
.button:last-child {
|
||||
> div:last-child .button {
|
||||
border-bottom-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
@@ -158,7 +182,7 @@
|
||||
height: 100%;
|
||||
justify-content: flex-start;
|
||||
left: 0;
|
||||
padding-top: 10px;
|
||||
padding-top: 24px;
|
||||
top: 0;
|
||||
transform: translateX(-100%);
|
||||
width: $defaultToolbarSize;
|
||||
@@ -190,6 +214,7 @@
|
||||
* Styles the toolbar in filmstrip-only mode.
|
||||
*/
|
||||
&_filmstrip-only {
|
||||
background-color: $toolbarBackground;
|
||||
border-radius: 3px;
|
||||
display: inline-block;
|
||||
height: auto;
|
||||
|
||||
@@ -28,11 +28,12 @@ $defaultColor: #F1F1F1;
|
||||
$defaultSideBarFontColor: #44A5FF;
|
||||
$defaultSemiDarkColor: #ACACAC;
|
||||
$defaultDarkColor: #2b3d5c;
|
||||
$tooltipBg: rgba(0,0,0, 0.7);
|
||||
|
||||
/**
|
||||
* Toolbar
|
||||
*/
|
||||
$alwaysOnTopToolbarFontSize: 1em;
|
||||
$alwaysOnTopToolbarSize: 30px;
|
||||
$defaultToolbarSize: 50px;
|
||||
$defaultFilmStripOnlyToolbarSize: 37px;
|
||||
$secToolbarFontSize: 1.9em;
|
||||
@@ -107,12 +108,11 @@ $reloadZ: 20;
|
||||
$poweredByZ: 100;
|
||||
$ringingZ: 300;
|
||||
$sideToolbarContainerZ: 300;
|
||||
$toolbarZ: 400;
|
||||
$toolbarZ: 350;
|
||||
$tooltipsZ: 401;
|
||||
$dropdownMaskZ: 900;
|
||||
$dropdownZ: 901;
|
||||
$centeredVideoLabelZ: 1010;
|
||||
$jitsipopoverZ: 1012;
|
||||
$popoverZ: 1015;
|
||||
$overlayZ: 1016;
|
||||
|
||||
@@ -145,3 +145,9 @@ $unsupportedBrowserTitleColor: #fff;
|
||||
$unsupportedBrowserTitleFontSize: 24px;
|
||||
$unsupportedDesktopBrowserTextColor: rgba(255, 255, 255, 0.7);
|
||||
$unsupportedDesktopBrowserTextFontSize: 21px;
|
||||
|
||||
/**
|
||||
* The size of the default watermark.
|
||||
*/
|
||||
$watermarkWidth: 186px;
|
||||
$watermarkHeight: 74px;
|
||||
@@ -8,6 +8,25 @@
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
height: 100%;
|
||||
/**
|
||||
* fixed positioning is necessary for remote menus and tooltips to pop
|
||||
* out of the scrolling filmstrip. AtlasKit dialogs and tooltips use
|
||||
* a library called popper which will position its elements fixed if
|
||||
* any parent is also fixed.
|
||||
*/
|
||||
position: fixed;
|
||||
|
||||
/**
|
||||
* z-index adjusting is needed because the video state indicator has to
|
||||
* display over the filmstrip when no videos are displayed but still be
|
||||
* clickable but its inline dialogs must display over the video state
|
||||
* indicator when videos are displayed.
|
||||
*/
|
||||
z-index: #{$tooltipsZ + 1};
|
||||
|
||||
&.hide-videos {
|
||||
z-index: #{$tooltipsZ - 1};
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide videos by making them slight to the right.
|
||||
@@ -20,6 +39,15 @@
|
||||
bottom: auto;
|
||||
right: -196px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove horizontal filmstrip padding used to prevent videos from
|
||||
* overlapping the left-side toolbar. An id selector is used to
|
||||
* match id specificity with filmstrip styles.
|
||||
*/
|
||||
&#remoteVideos {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#filmstripLocalVideo {
|
||||
@@ -60,13 +88,16 @@
|
||||
* Move the remote video menu trigger to the bottom left of the
|
||||
* video thumbnail.
|
||||
*/
|
||||
.remotevideomenu {
|
||||
.remotevideomenu,
|
||||
.remote-video-menu-trigger {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
top: auto;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.remote-video-menu-trigger {
|
||||
margin-bottom: 7px;
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
#remoteVideos {
|
||||
@@ -75,18 +106,13 @@
|
||||
}
|
||||
|
||||
.videocontainer {
|
||||
&__toolbar,
|
||||
&__toptoolbar {
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Move status icons to the bottom right of the thumbnail.
|
||||
*/
|
||||
&__toolbar {
|
||||
text-align: right;
|
||||
|
||||
.toolbar-icon {
|
||||
.right {
|
||||
float: none;
|
||||
margin: auto;
|
||||
}
|
||||
@@ -159,4 +185,36 @@
|
||||
transition-delay: 0.1s;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply hardware acceleration to prevent flickering on scroll. The
|
||||
* selectors are specific to icon wrappers to prevent fixed position dialogs
|
||||
* and tooltips from getting a new location context due to translate3d.
|
||||
*/
|
||||
.connection-indicator,
|
||||
.remote-video-menu-trigger,
|
||||
.indicator-icon-container {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
.indicator-container {
|
||||
float: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* FIXME: disable pointer to allow any elements moved below to still be
|
||||
* clickable. The real fix would to make sure those moved elements are
|
||||
* actually part of the toolbar instead of positioning being faked.
|
||||
*/
|
||||
.videocontainer__toolbar {
|
||||
pointer-events: none;
|
||||
|
||||
> div {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.toolbar-icon {
|
||||
pointer-events: all;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,44 +41,85 @@
|
||||
&__toptoolbar {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
z-index: $zindex3;
|
||||
pointer-events: none;
|
||||
z-index: $zindex10;
|
||||
width: 100%;
|
||||
box-sizing: border-box; // Includes the padding in the 100% width.
|
||||
|
||||
/**
|
||||
* FIXME (lenny): Disabling pointer-events is a pretty big sin that
|
||||
* sidesteps the problems. There are z-index wars occurring within
|
||||
* videocontainer and AtlasKit Tooltips rely on their parent z-indexe
|
||||
* being higher than whatever they need to appear over. So set a higher
|
||||
* z-index for the tooltip containers but make any empty space not block
|
||||
* mouse overs for various mouseover triggers.
|
||||
*/
|
||||
pointer-events: none;
|
||||
|
||||
* {
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.indicator-container {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
pointer-events: all;
|
||||
}
|
||||
}
|
||||
|
||||
&__toolbar {
|
||||
bottom: 0;
|
||||
padding: 0 5px 0 5px;
|
||||
height: $thumbnailToolbarHeight;
|
||||
padding: 0 5px 0 5px;
|
||||
}
|
||||
|
||||
&__toptoolbar {
|
||||
$toolbarPadding: 5px;
|
||||
$toolbarIconMargin: 5px;
|
||||
top: 0;
|
||||
padding: $toolbarPadding;
|
||||
padding-bottom: 0;
|
||||
/**
|
||||
* Override text-align center as icons need to be left justified.
|
||||
*/
|
||||
text-align: left;
|
||||
|
||||
.connection-indicator,
|
||||
span.indicator {
|
||||
margin-right: em(5, 8);
|
||||
/**
|
||||
* Intentionally use margin on the icon itself as AtlasKit InlineDialog
|
||||
* positioning depends on the trigger (indicator icon).
|
||||
*/
|
||||
.indicator {
|
||||
margin-top: $toolbarIconMargin;
|
||||
}
|
||||
|
||||
span.indicator {
|
||||
display: none;
|
||||
.indicator-container:nth-child(1) .indicator {
|
||||
margin-left: $toolbarIconMargin;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
.connection-indicator,
|
||||
div.indicator-container,
|
||||
{
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
div.indicator:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.indicator-container {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
|
||||
.popover-trigger {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.connection-indicator,
|
||||
span.indicator {
|
||||
.indicator {
|
||||
position: relative;
|
||||
font-size: 8px;
|
||||
text-align: center;
|
||||
line-height: $thumbnailIndicatorSize;
|
||||
padding: 0;
|
||||
float: left;
|
||||
@include circle($thumbnailIndicatorSize);
|
||||
box-sizing: border-box;
|
||||
z-index: $zindex3;
|
||||
@@ -124,6 +165,7 @@
|
||||
|
||||
.icon-connection,
|
||||
.icon-connection-lost {
|
||||
cursor: pointer;
|
||||
font-size: 1em;
|
||||
}
|
||||
}
|
||||
@@ -283,7 +325,6 @@
|
||||
padding: 0;
|
||||
border: 0;
|
||||
margin: 0px 5px 0px 0px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -296,9 +337,17 @@
|
||||
/**
|
||||
* Toolbar icons positioned on the right.
|
||||
*/
|
||||
.toolbar-icon.right {
|
||||
float: right;
|
||||
margin: 0px 0px 0px 5px;
|
||||
.moderator-icon {
|
||||
display: inline-block;
|
||||
|
||||
&.right {
|
||||
float: right;
|
||||
margin: 0px 0px 0px 5px;
|
||||
}
|
||||
|
||||
.toolbar-icon {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.raisehandindicator {
|
||||
@@ -309,14 +358,14 @@
|
||||
background: $connectionIndicatorBg;
|
||||
}
|
||||
|
||||
.remote-video-menu-trigger,
|
||||
.remotevideomenu
|
||||
{
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0;
|
||||
margin-top: 7px;
|
||||
z-index: $zindex3;
|
||||
z-index: $zindex2;
|
||||
width: 18px;
|
||||
height: 13px;
|
||||
color: #FFF;
|
||||
@@ -326,6 +375,9 @@
|
||||
cursor: hand;
|
||||
}
|
||||
}
|
||||
.remote-video-menu-trigger {
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Audio indicator on video thumbnails.
|
||||
@@ -487,8 +539,8 @@
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
|
||||
#remotePresenceMessage,
|
||||
#remoteConnectionMessage {
|
||||
display: none;
|
||||
position: absolute;
|
||||
width: auto;
|
||||
z-index: $zindex2;
|
||||
@@ -496,6 +548,11 @@
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
color: #FFF;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
#remotePresenceMessage .presence-label,
|
||||
#remoteConnectionMessage {
|
||||
opacity: .80;
|
||||
text-shadow: 0px 0px 1px rgba(0,0,0,0.3),
|
||||
0px 1px 1px rgba(0,0,0,0.3),
|
||||
@@ -508,6 +565,10 @@
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
#remotePresenceMessage .no-presence,
|
||||
#remoteConnectionMessage {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#localConnectionMessage {
|
||||
display: none;
|
||||
@@ -526,111 +587,3 @@
|
||||
1px 0px 1px rgba(0,0,0,0.3),
|
||||
0px 0px 1px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.filmstrip-only {
|
||||
#videoResolutionLabel {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.video-state-indicator {
|
||||
background: $videoStateIndicatorBackground;
|
||||
color: $videoStateIndicatorColor;
|
||||
cursor: pointer;
|
||||
font-size: 13px;
|
||||
height: 40px;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
min-width: 40px;
|
||||
padding: 10px 5px;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
|
||||
i {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
#videoResolutionLabel,
|
||||
.centeredVideoLabel.moveToCorner {
|
||||
z-index: $tooltipsZ;
|
||||
}
|
||||
|
||||
.centeredVideoLabel {
|
||||
bottom: 45%;
|
||||
border-radius: 2px;
|
||||
display: none;
|
||||
-webkit-transition: all 2s 2s linear;
|
||||
transition: all 2s 2s linear;
|
||||
z-index: $centeredVideoLabelZ;
|
||||
|
||||
&.moveToCorner {
|
||||
bottom: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.moveToCorner {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 30px;
|
||||
}
|
||||
|
||||
.moveToCorner + .moveToCorner {
|
||||
right: 80px;
|
||||
}
|
||||
|
||||
.video-state-indicator-menu {
|
||||
display: none;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
right: -10px;
|
||||
top: 20px;
|
||||
|
||||
.video-state-indicator-menu-options {
|
||||
background: $popoverBg;
|
||||
border-radius: 3px;
|
||||
color: $popoverFontColor;
|
||||
margin-top: 20px;
|
||||
padding: 5px 0;
|
||||
position: relative;
|
||||
|
||||
div {
|
||||
cursor: pointer;
|
||||
padding: 10px;
|
||||
padding-right: 30px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
|
||||
&.active {
|
||||
background: $toolbarToggleBackground;
|
||||
}
|
||||
&:hover:not(.active) {
|
||||
background: $popupMenuSelectedItemBackground;
|
||||
}
|
||||
|
||||
i {
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.video-state-indicator-menu-options::after {
|
||||
content: " ";
|
||||
border-color: transparent transparent $popoverBg transparent;
|
||||
border-style: solid;
|
||||
border-width: 5px;
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
top: -10px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-state-indicator:hover,
|
||||
.video-state-indicator *:hover {
|
||||
background: $toolbarSelectBackground;
|
||||
|
||||
.video-state-indicator-menu {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,13 +43,12 @@
|
||||
@import 'modals/dialog';
|
||||
@import 'modals/feedback/feedback';
|
||||
@import 'modals/speaker_stats/speaker_stats';
|
||||
@import 'modals/video-quality/video-quality';
|
||||
@import 'videolayout_default';
|
||||
@import 'notice';
|
||||
@import 'popup_menu';
|
||||
@import 'recording';
|
||||
@import 'login_menu';
|
||||
@import 'popover';
|
||||
@import 'jitsi_popover';
|
||||
@import 'contact_list';
|
||||
@import 'chat';
|
||||
@import 'ringing/ringing';
|
||||
@@ -70,6 +69,7 @@
|
||||
@import 'aui-components/dropdown';
|
||||
@import '404';
|
||||
@import 'policy';
|
||||
@import 'popover';
|
||||
@import 'filmstrip';
|
||||
@import 'unsupported-browser/main';
|
||||
@import 'modals/invite/add-people';
|
||||
|
||||
@@ -45,83 +45,59 @@
|
||||
animation-timing-function: ease-in-out
|
||||
}
|
||||
|
||||
.feedback.aui-dialog2{
|
||||
.aui-dialog2{
|
||||
&-header {
|
||||
background-color: $feedbackContentBg;
|
||||
border-bottom-color: transparent;
|
||||
padding-top: 30px;
|
||||
h2 {
|
||||
color: $feedbackTextColor;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.feedback-dialog {
|
||||
.details {
|
||||
margin-top: 20px;
|
||||
padding-left: 60px;
|
||||
padding-right: 60px;
|
||||
|
||||
&-content {
|
||||
background-color: $feedbackContentBg;
|
||||
text-align: center;
|
||||
padding: 10px 40px 20px 40px;
|
||||
|
||||
.input-control {
|
||||
background-color: $feedbackInputBg;
|
||||
color: $feedbackInputTextColor;
|
||||
|
||||
&::-webkit-input-placeholder {
|
||||
color: $feedbackInputPlaceholderColor;
|
||||
}
|
||||
&::-moz-placeholder { /* Firefox 19+ */
|
||||
color: $feedbackInputPlaceholderColor;
|
||||
}
|
||||
&:-ms-input-placeholder {
|
||||
color: $feedbackInputPlaceholderColor;
|
||||
}
|
||||
}
|
||||
|
||||
.rating {
|
||||
line-height: 1.2;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
|
||||
.star-label {
|
||||
height: 16px;
|
||||
font-size: 14px;
|
||||
color: $rateStarLabelColor;
|
||||
}
|
||||
.star-btn {
|
||||
display: inline-block;
|
||||
color: $rateStarDefault;
|
||||
font-size: $rateStarSize;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
@include transition(all .2s ease);
|
||||
|
||||
&.starHover,
|
||||
&.active,
|
||||
&:hover {
|
||||
color: $rateStarActivity;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.details {
|
||||
padding-left: 60px;
|
||||
padding-right: 60px;
|
||||
margin-top: 20px;
|
||||
textarea {
|
||||
min-height: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
&-footer {
|
||||
background-color: $feedbackContentBg;
|
||||
border-top-color: transparent;
|
||||
|
||||
.button-control {
|
||||
color: $feedbackCancelFontColor;
|
||||
}
|
||||
textarea {
|
||||
min-height: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.input-control {
|
||||
background-color: $feedbackInputBg;
|
||||
color: $feedbackInputTextColor;
|
||||
|
||||
&::-webkit-input-placeholder {
|
||||
color: $feedbackInputPlaceholderColor;
|
||||
}
|
||||
&::-moz-placeholder { /* Firefox 19+ */
|
||||
color: $feedbackInputPlaceholderColor;
|
||||
}
|
||||
&:-ms-input-placeholder {
|
||||
color: $feedbackInputPlaceholderColor;
|
||||
}
|
||||
}
|
||||
|
||||
.rating {
|
||||
line-height: 1.2;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
|
||||
.star-label {
|
||||
color: $rateStarLabelColor;
|
||||
font-size: 14px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.star-btn {
|
||||
color: $rateStarDefault;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: $rateStarSize;
|
||||
outline: none;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
@include transition(all .2s ease);
|
||||
|
||||
&.active,
|
||||
&:hover,
|
||||
&.starHover {
|
||||
color: $rateStarActivity;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
.dial-in-numbers-trigger-icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
right: 10px;
|
||||
top: 4px;
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,22 @@
|
||||
|
||||
.form-control {
|
||||
padding: 0;
|
||||
|
||||
&__container {
|
||||
/**
|
||||
* Ensure contents display in a line and vertically centered.
|
||||
*/
|
||||
align-items: center;
|
||||
|
||||
button {
|
||||
font-size: $modalButtonFontSize;
|
||||
}
|
||||
}
|
||||
|
||||
&__input-container {
|
||||
flex: 1;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.inviteLink {
|
||||
|
||||
176
css/modals/video-quality/_video-quality.scss
Normal file
176
css/modals/video-quality/_video-quality.scss
Normal file
@@ -0,0 +1,176 @@
|
||||
.video-quality-dialog {
|
||||
color: $modalTextColor;
|
||||
|
||||
.hide-warning {
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.video-quality-dialog-title {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.video-quality-dialog-contents {
|
||||
align-items: center;
|
||||
color: $modalTextColor;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px;
|
||||
min-width: 250px;
|
||||
|
||||
.video-quality-dialog-slider-container {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.video-quality-dialog-slider {
|
||||
width: calc(100% - 5px);
|
||||
|
||||
@mixin sliderTrackStyles() {
|
||||
height: 15px;
|
||||
border-radius: 10px;
|
||||
background: black;
|
||||
}
|
||||
|
||||
&::-ms-track {
|
||||
@include sliderTrackStyles();
|
||||
}
|
||||
|
||||
&::-moz-range-track {
|
||||
@include sliderTrackStyles();
|
||||
}
|
||||
|
||||
&::-webkit-slider-runnable-track {
|
||||
@include sliderTrackStyles();
|
||||
}
|
||||
|
||||
@mixin sliderThumbStyles() {
|
||||
top: 50%;
|
||||
border: none;
|
||||
position: relative;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
&::-ms-thumb {
|
||||
@include sliderThumbStyles();
|
||||
}
|
||||
|
||||
&::-moz-range-thumb {
|
||||
@include sliderThumbStyles();
|
||||
|
||||
}
|
||||
|
||||
&::-webkit-slider-thumb {
|
||||
@include sliderThumbStyles();
|
||||
}
|
||||
}
|
||||
|
||||
.video-quality-dialog-labels {
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
margin-top: 5px;
|
||||
position: relative;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.video-quality-dialog-label-container {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
transform: translate(-50%, 0%);
|
||||
|
||||
&::before {
|
||||
background: rgb(140, 156, 189);
|
||||
content: '';
|
||||
border-radius: 50%;
|
||||
left: 0;
|
||||
height: 6px;
|
||||
margin: 0 auto;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -16px;
|
||||
width: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-quality-dialog-label-container.active {
|
||||
color: $toolbarToggleBackground;
|
||||
|
||||
&::before {
|
||||
background: $toolbarToggleBackground;
|
||||
height: 12px;
|
||||
top: -19px;
|
||||
width: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-quality-dialog-label-container:first-child {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.video-quality-dialog-label {
|
||||
display: table-caption;
|
||||
word-spacing: unset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.video-state-indicator {
|
||||
background: $videoStateIndicatorBackground;
|
||||
color: $videoStateIndicatorColor;
|
||||
cursor: default;
|
||||
font-size: 13px;
|
||||
height: 40px;
|
||||
line-height: 20px;
|
||||
text-align: left;
|
||||
min-width: 40px;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
|
||||
i {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Give the label padding so it has more volume and can be easily clicked.
|
||||
*/
|
||||
.video-quality-label-status {
|
||||
padding: 10px 5px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.centeredVideoLabel.moveToCorner {
|
||||
z-index: $tooltipsZ;
|
||||
}
|
||||
|
||||
#videoResolutionLabel {
|
||||
z-index: #{$tooltipsZ + 1};
|
||||
}
|
||||
|
||||
.centeredVideoLabel {
|
||||
bottom: 45%;
|
||||
border-radius: 2px;
|
||||
display: none;
|
||||
padding: 10px;
|
||||
transform: translate(-50%, 0);
|
||||
z-index: $centeredVideoLabelZ;
|
||||
|
||||
&.moveToCorner {
|
||||
bottom: auto;
|
||||
transform: none;
|
||||
-webkit-transition: all 2s 2s linear;
|
||||
transition: all 2s 2s linear;
|
||||
}
|
||||
}
|
||||
|
||||
.moveToCorner {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 30px;
|
||||
}
|
||||
|
||||
.moveToCorner + .moveToCorner {
|
||||
right: 80px;
|
||||
}
|
||||
5
debian/jitsi-meet-tokens.postinst
vendored
5
debian/jitsi-meet-tokens.postinst
vendored
@@ -64,6 +64,11 @@ case "$1" in
|
||||
echo "Failed to install luajwtjitsi - try installing it manually"
|
||||
fi
|
||||
|
||||
# Install basexx
|
||||
if ! luarocks install basexx; then
|
||||
echo "Failed to install basexx - try installing it manually"
|
||||
fi
|
||||
|
||||
if [ -x "/etc/init.d/prosody" ]; then
|
||||
invoke-rc.d prosody restart
|
||||
fi
|
||||
|
||||
70
doc/api.md
70
doc/api.md
@@ -19,24 +19,24 @@ Its constructor gets a number of options:
|
||||
* **domain**: domain used to build the conference URL, "meet.jit.si" for
|
||||
example.
|
||||
* **options**: object with properties - the optional arguments:
|
||||
* **room**: (optional) name of the room to join.
|
||||
* **roomName**: (optional) name of the room to join.
|
||||
* **width**: (optional) width for the iframe which will be created. If a number is specified it's treated as pixel units. If a string is specified the format is number followed by 'px', 'em', 'pt' or '%'.
|
||||
* **height**: (optional) height for the iframe which will be created. If a number is specified it's treated as pixel units. If a string is specified the format is number followed by 'px', 'em', 'pt' or '%'.
|
||||
* **htmlElement**: (optional) HTL DOM Element where the iframe will be added as a child.
|
||||
* **configOverwite**: (optional) JS object with overrides for options defined in [config.js].
|
||||
* **parentNode**: (optional) HTML DOM Element where the iframe will be added as a child.
|
||||
* **configOverwrite**: (optional) JS object with overrides for options defined in [config.js].
|
||||
* **interfaceConfigOverwrite**: (optional) JS object with overrides for options defined in [interface_config.js].
|
||||
* **noSsl**: (optional, defaults to true) Boolean indicating if the server should be contacted using HTTP or HTTPS.
|
||||
* **noSSL**: (optional, defaults to true) Boolean indicating if the server should be contacted using HTTP or HTTPS.
|
||||
* **jwt**: (optional) [JWT](https://jwt.io/) token.
|
||||
|
||||
Example:
|
||||
|
||||
```javascript
|
||||
var domain = "meet.jit.si";
|
||||
var options = {
|
||||
domain: "meet.jit.si",
|
||||
room: "JitsiMeetAPIExample",
|
||||
roomName: "JitsiMeetAPIExample",
|
||||
width: 700,
|
||||
height: 700,
|
||||
htmlElement: document.querySelector('#meet')
|
||||
parentNode: document.querySelector('#meet')
|
||||
}
|
||||
var api = new JitsiMeetExternalAPI(domain, options);
|
||||
```
|
||||
@@ -141,6 +141,20 @@ The `listener` parameter is a Function object with one argument that will be not
|
||||
|
||||
The following events are currently supported:
|
||||
|
||||
* **audioAvailabilityChanged** - event notifications about audio availability status changes. The listener will receive an object with the following structure:
|
||||
```javascript
|
||||
{
|
||||
"available": available // new available status - boolean
|
||||
}
|
||||
```
|
||||
|
||||
* **audioMuteStatusChanged** - event notifications about audio mute status changes. The listener will receive an object with the following structure:
|
||||
```javascript
|
||||
{
|
||||
"muted": muted // new muted status - boolean
|
||||
}
|
||||
```
|
||||
|
||||
* **incomingMessage** - Event notifications about incoming
|
||||
messages. The listener will receive an object with the following structure:
|
||||
```javascript
|
||||
@@ -196,6 +210,20 @@ changes. The listener will receive an object with the following structure:
|
||||
}
|
||||
```
|
||||
|
||||
* **videoAvailabilityChanged** - event notifications about video availability status changes. The listener will receive an object with the following structure:
|
||||
```javascript
|
||||
{
|
||||
"available": available // new available status - boolean
|
||||
}
|
||||
```
|
||||
|
||||
* **videoMuteStatusChanged** - event notifications about video mute status changes. The listener will receive an object with the following structure:
|
||||
```javascript
|
||||
{
|
||||
"muted": muted // new muted status - boolean
|
||||
}
|
||||
```
|
||||
|
||||
* **readyToClose** - event notification fired when Jitsi Meet is ready to be closed (hangup operations are completed).
|
||||
|
||||
You can also add multiple event listeners by using `addEventListeners`.
|
||||
@@ -241,6 +269,34 @@ You can get the iframe HTML element where Jitsi Meet is loaded with the followin
|
||||
var iframe = api.getIFrame();
|
||||
```
|
||||
|
||||
You can check whether the audio is muted with the following API function:
|
||||
```javascript
|
||||
isAudioMuted().then(function(muted) {
|
||||
...
|
||||
});
|
||||
```
|
||||
|
||||
You can check whether the video is muted with the following API function:
|
||||
```javascript
|
||||
isVideoMuted().then(function(muted) {
|
||||
...
|
||||
});
|
||||
```
|
||||
|
||||
You can check whether the audio is available with the following API function:
|
||||
```javascript
|
||||
isAudioAvailable().then(function(available) {
|
||||
...
|
||||
});
|
||||
```
|
||||
|
||||
You can check whether the video is available with the following API function:
|
||||
```javascript
|
||||
isVideoAvailable().then(function(available) {
|
||||
...
|
||||
});
|
||||
```
|
||||
|
||||
You can remove the embedded Jitsi Meet Conference with the following API function:
|
||||
```javascript
|
||||
api.dispose()
|
||||
|
||||
5
doc/cloud-api.md
Normal file
5
doc/cloud-api.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Jitsi Meet Cloud API
|
||||
|
||||
The Jitsi Meet Cloud API is a specification for services which can support the integration of Jitsi Meet into other applications, for mapping conferences for dial-in support, and for supporting directory search and user invitations to conferences.
|
||||
|
||||
The swagger for these services is provided in [cloud-api.swagger](cloud-api.swagger) in this same repository and directory.
|
||||
147
doc/cloud-api.swagger
Normal file
147
doc/cloud-api.swagger
Normal file
@@ -0,0 +1,147 @@
|
||||
swagger: "2.0"
|
||||
info:
|
||||
description: "Documents the REST calls used by Jitsi Meet to integrate with other services"
|
||||
version: "1.0.0"
|
||||
title: "Swagger Video"
|
||||
termsOfService: "https://jitsi.org/CloudAPITOS/"
|
||||
contact:
|
||||
email: "team@jitsi.org"
|
||||
host: "jitsi-api.jitsi.org"
|
||||
basePath: "/"
|
||||
tags:
|
||||
- name: "conferenceMapper"
|
||||
description: "Conference to ID Mapper"
|
||||
externalDocs:
|
||||
description: "Conference API Details"
|
||||
url: "https://jitsi.org/CloudAPI"
|
||||
- name: "phoneNumberList"
|
||||
description: "List of dial-in numbers"
|
||||
schemes:
|
||||
- "https"
|
||||
paths:
|
||||
/conferenceMapper:
|
||||
get:
|
||||
tags:
|
||||
- "conferenceMapper"
|
||||
summary: "Create or retrieve conference ID mapping"
|
||||
description: "When called with a conference, creates a new ID and both stores and returns the result. When called with an ID, returns the mapping if previously created."
|
||||
operationId: "GETconferenceMapper"
|
||||
consumes:
|
||||
- "application/json"
|
||||
produces:
|
||||
- "application/json"
|
||||
parameters:
|
||||
- in: "query"
|
||||
name: "conference"
|
||||
type: "string"
|
||||
format: "JID"
|
||||
description: "Full JID (room@conference.server.domain) for the conference to create or return existing conference mapping. Used preferentially over all other input parameters (search by conference)"
|
||||
- in: "query"
|
||||
name: "id"
|
||||
type: "number"
|
||||
description: "ID to search for existing conference mapping. Only used when provided alone (search by ID)"
|
||||
responses:
|
||||
200:
|
||||
description: "mapping search performed"
|
||||
schema:
|
||||
$ref: "#/definitions/ConferenceMapperDetails"
|
||||
405:
|
||||
description: "Invalid input"
|
||||
post:
|
||||
tags:
|
||||
- "conferenceMapper"
|
||||
summary: "Create or retrieve conference ID mapping"
|
||||
description: "When called with a conference, creates a new ID and both stores and returns the result. When called with an ID, returns the mapping if previously created."
|
||||
operationId: "POSTconferenceMapper"
|
||||
consumes:
|
||||
- "application/json"
|
||||
produces:
|
||||
- "application/json"
|
||||
parameters:
|
||||
- in: "body"
|
||||
name: "body"
|
||||
description: "Conference Mapper Request"
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/ConferenceMapperRequest"
|
||||
responses:
|
||||
200:
|
||||
description: "mapping search performed"
|
||||
schema:
|
||||
$ref: "#/definitions/ConferenceMapperDetails"
|
||||
405:
|
||||
description: "Invalid input"
|
||||
|
||||
/phoneNumberList:
|
||||
get:
|
||||
tags:
|
||||
- "phoneNumberList"
|
||||
summary: "Returns a list phone numbers by country"
|
||||
description: "Used to populate the Share The Link section of jitsi-meet"
|
||||
operationId: "phoneNumberList"
|
||||
produces:
|
||||
- "application/json"
|
||||
responses:
|
||||
200:
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/PhoneNumberList"
|
||||
securityDefinitions:
|
||||
token:
|
||||
type: "apiKey"
|
||||
name: "token"
|
||||
in: "query"
|
||||
Bearer:
|
||||
type: "apiKey"
|
||||
name: "Authorization"
|
||||
in: "header"
|
||||
definitions:
|
||||
|
||||
ConferenceMapperRequest:
|
||||
description: "Request to create or find a conference mapping"
|
||||
type: "object"
|
||||
properties:
|
||||
id:
|
||||
type: "number"
|
||||
description: "ID to search for existing conference mapping. Only used when provided alone (search by ID)"
|
||||
conference:
|
||||
type: "string"
|
||||
format: "JID"
|
||||
description: "Full JID (room@conference.server.domain) for the conference to create or return existing conference mapping. Used preferentially over all other input parameters (search by conference)"
|
||||
room:
|
||||
type: "string"
|
||||
description: "Room part of the conference. Required if 'conference' is not provided. Used to generate a 'conference' value (search by conference)"
|
||||
domain:
|
||||
type: "string"
|
||||
description: "Domain part of the conference. Used if 'conference' is not provided. Defaults to domain of the API endpoint. Used to generate a 'conference' value (search by conference)"
|
||||
|
||||
ConferenceMapperDetails:
|
||||
description: "Conference mapping between conference JID and numeric ID"
|
||||
type: "object"
|
||||
properties:
|
||||
id:
|
||||
type: "number"
|
||||
description: "Unique ID mapped to conference"
|
||||
conference:
|
||||
type: "string"
|
||||
format: "JID"
|
||||
description: "Full JID for the conference OR boolean false if no conference was found (search by ID)"
|
||||
|
||||
PhoneNumberList:
|
||||
type: "object"
|
||||
properties:
|
||||
numbersEnabled:
|
||||
type: "boolean"
|
||||
description: "Control flag for Jitsi Meet user interface. Must be set to true for Jitsi Meet to display phone-in UI elements"
|
||||
numbers:
|
||||
type: "object"
|
||||
description: "Keys are Country Names, each value is an array of phone numbers"
|
||||
additionalProperties:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
format: "phone"
|
||||
|
||||
externalDocs:
|
||||
description: "Find out more about the Jitsi Cloud API"
|
||||
url: "https://jitsi.org/CloudAPI"
|
||||
@@ -7,16 +7,17 @@
|
||||
<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);
|
||||
var options = {
|
||||
roomName: "JitsiMeetAPIExample",
|
||||
width: 700,
|
||||
height: 180,
|
||||
parent: undefined,
|
||||
configOverwrite: {},
|
||||
interfaceConfigOverwrite: {
|
||||
filmStripOnly: true
|
||||
}
|
||||
}
|
||||
var api = new JitsiMeetExternalAPI(domain, options);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
# Jitsi Meet mobile apps
|
||||
# Jitsi Meet apps for Android and iOS
|
||||
|
||||
Jitsi Meet can also be built as a standalone mobile application for
|
||||
iOS and Android. It uses the [React Native] framework.
|
||||
Jitsi Meet can also be built as a standalone app for Android or iOS. It uses the
|
||||
[React Native] framework.
|
||||
|
||||
First make sure the [React Native dependencies] are installed.
|
||||
|
||||
**NOTE**: This document assumes the app is being built on a macOS system.
|
||||
|
||||
**NOTE**: The app must be built for an actual device since the simulators don't
|
||||
work properly with the native plugins we require.
|
||||
**NOTE**: This document assumes the app is being built on a macOS system.
|
||||
|
||||
**NOTE**: Node 6.X and npm 3.X are recommended for building.
|
||||
|
||||
@@ -26,6 +23,12 @@ work properly with the native plugins we require.
|
||||
|
||||
You may need to add ```--unsafe-perm=true``` if you are running on [Mac OS 10.11 or greater](https://github.com/phonegap/ios-deploy#os-x-1011-el-capitan-or-greater).
|
||||
|
||||
- Install main dependencies:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
- Install the required pods (CocoaPods must be installled first, it can
|
||||
be done with Homebrew: `brew install cocoapods`)
|
||||
|
||||
@@ -89,17 +92,15 @@ build environment. Make sure you follow it closely.
|
||||
|
||||
It will be launched on the connected Android device.
|
||||
|
||||
|
||||
## Debugging
|
||||
|
||||
The official documentation on [debugging] is quite extensive, it is the
|
||||
The official documentation on [debugging] is quite extensive and specifies the
|
||||
preferred method for debugging.
|
||||
|
||||
**NOTE**: When using Chrome Developer Tools for debugging the JavaScript code
|
||||
is being interpreted by Chrome's V8 engine, instead of JSCore which
|
||||
React Native uses. It's important to keep this in mind due to potential
|
||||
differences in supported JavaScript features.
|
||||
|
||||
**NOTE**: When using Chrome Developer Tools for debugging the JavaScript source
|
||||
code is being interpreted by Chrome's V8 engine, instead of JSCore which React
|
||||
Native uses. It's important to keep this in mind due to potential differences in
|
||||
supported JavaScript features.
|
||||
|
||||
[Android Studio]: https://developer.android.com/studio/index.html
|
||||
[debugging]: https://facebook.github.io/react-native/docs/debugging.html
|
||||
|
||||
15
doc/turn.md
Normal file
15
doc/turn.md
Normal file
@@ -0,0 +1,15 @@
|
||||
One-to-one calls should avoid going throught the JVB for optimal performance and for optimal resource usage. This is why we've added the peer-to-peer mode where the two participants connect directly to each other. Unfortunately, a direct connection is not always possible between the participants. In those cases you can use a TURN server to relay the traffic (n.b. the JVB does much more than just relay the traffic, so this is not the same as using the JVB to "relay" the traffic).
|
||||
|
||||
This document describes how to enable TURN server support in one-to-one calls in Jitsi Meet. Even tho it gives some hints how to configure [prosody](prosody.im) and [coTURN](https://github.com/coturn/coturn), it assumes a properly configured TURN server and a proprely configured XMPP server.
|
||||
|
||||
One way to configure TURN support in meet with a static configuration. You can simply fill out the `p2p.stunServers` option with appropriate values, e.g.:
|
||||
|
||||
[
|
||||
{ urls: 'turn:turn.example.com1', credential: 'user', password: 'pass' },
|
||||
]
|
||||
|
||||
This technique doesn't require any special configuration on the XMPP server, but it exposes the credentials to your TURN server and other people can use your bandwidth freely, so while it's simple to implement, it's not recommended.
|
||||
|
||||
This [draft](https://tools.ietf.org/html/draft-uberti-behave-turn-rest-00) escribes a proposed standard REST API for obtaining access to TURN services via ephemeral (i.e. time-limited) credentials. These credentials are vended by a web service over HTTP, and then supplied to and checked by a TURN server using the standard TURN protocol. The usage of ephemeral credentials ensures that access to the TURN server can be controlled even if the credentials can be discovered by the user.
|
||||
|
||||
Jitsi Meet can fetch the TURN credentials from the XMPP server via [XEP-0215](https://xmpp.org/extensions/xep-0215.html). You can enable this functionality by setting `p2p.useStunTurn: true` in config.js. By properly configuring a common shared secret on your TURN server and your XMPP server, the XMPP server can deliver appropriate credentials and TURN urls to Jitsi Meet. coTURN natively supports shared secret authentication (--use-auth-secret-) and in prosody, you can use the [mod_turncredentials](https://modules.prosody.im/mod_turncredentials.html) module.
|
||||
BIN
images/avatar.png
Normal file
BIN
images/avatar.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -35,7 +35,7 @@ var interfaceConfig = { // eslint-disable-line no-unused-vars
|
||||
//main toolbar
|
||||
'microphone', 'camera', 'desktop', 'invite', 'fullscreen', 'fodeviceselection', 'hangup', // jshint ignore:line
|
||||
//extended toolbar
|
||||
'profile', 'addtocall', 'contacts', 'chat', 'recording', 'etherpad', 'sharedvideo', 'dialout', 'settings', 'raisehand', 'filmstrip'], // jshint ignore:line
|
||||
'profile', 'addtocall', 'contacts', 'chat', 'recording', 'etherpad', 'sharedvideo', 'dialout', 'settings', 'raisehand', 'videoquality', 'filmstrip'], // jshint ignore:line
|
||||
/**
|
||||
* Main Toolbar Buttons
|
||||
* All of them should be in TOOLBAR_BUTTONS
|
||||
@@ -47,7 +47,7 @@ var interfaceConfig = { // eslint-disable-line no-unused-vars
|
||||
// screen, 'width' would fit the original video width to the width of the
|
||||
// screen respecting ratio.
|
||||
VIDEO_LAYOUT_FIT: 'both',
|
||||
SHOW_CONTACTLIST_AVATARS: false,
|
||||
SHOW_CONTACTLIST_AVATARS: true,
|
||||
/**
|
||||
* Whether to only show the filmstrip (and hide the toolbar).
|
||||
*/
|
||||
|
||||
@@ -17,8 +17,12 @@ target 'JitsiMeet' do
|
||||
]
|
||||
pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
|
||||
|
||||
pod 'react-native-background-timer', :path => '../node_modules/react-native-background-timer'
|
||||
pod 'react-native-keep-awake', :path => '../node_modules/react-native-keep-awake'
|
||||
pod 'react-native-background-timer',
|
||||
:path => '../node_modules/react-native-background-timer'
|
||||
pod 'react-native-fetch-blob',
|
||||
:path => '../node_modules/react-native-fetch-blob'
|
||||
pod 'react-native-keep-awake',
|
||||
:path => '../node_modules/react-native-keep-awake'
|
||||
pod 'react-native-webrtc', :path => '../node_modules/react-native-webrtc'
|
||||
pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
|
||||
end
|
||||
|
||||
@@ -1,9 +1,19 @@
|
||||
# Jitsi Meet SDK for iOS
|
||||
|
||||
This directory contains the source code of the Jitsi Meet app and the Jitsi Meet
|
||||
SDK for iOS.
|
||||
## Build
|
||||
|
||||
## Jitsi Meet SDK
|
||||
1. Install all required [dependencies](https://github.com/jitsi/jitsi-meet/blob/master/doc/mobile.md).
|
||||
|
||||
2. `xcodebuild -workspace ios/jitsi-meet.xcworkspace -scheme JitsiMeet -destination='generic/platform=iOS' -configuration Release archive`
|
||||
|
||||
## Install
|
||||
|
||||
After successfully building Jitsi Meet SDK for iOS, copy
|
||||
`ios/sdk/JitsiMeet.framework` (if the path points to a symbolic link, follow the
|
||||
symbolic link) and
|
||||
`node_modules/react-native-webrtc/ios/WebRTC.framework` into your project.
|
||||
|
||||
## API
|
||||
|
||||
JitsiMeet is an iOS framework which embodies the whole Jitsi Meet experience and
|
||||
makes it reusable by third-party apps.
|
||||
@@ -150,3 +160,12 @@ The `data` dictionary contains a "url" key with the conference URL.
|
||||
Called before a conference is left.
|
||||
|
||||
The `data` dictionary contains a "url" key with the conference URL.
|
||||
|
||||
#### loadConfigError
|
||||
|
||||
Called when loading the main configuration file from the Jitsi Meet deployment
|
||||
fails.
|
||||
|
||||
The `data` dictionary contains an "error" key with the error and a "url" key
|
||||
with the conference URL which necessitated the loading of the configuration
|
||||
file.
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.4</string>
|
||||
<string>1.9</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
||||
@@ -40,4 +40,38 @@
|
||||
[view loadURL:nil];
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
||||
void _onJitsiMeetViewDelegateEvent(NSString *name, NSDictionary *data) {
|
||||
NSLog(
|
||||
@"[%s:%d] JitsiMeetViewDelegate %@ %@",
|
||||
__FILE__, __LINE__, name, data);
|
||||
}
|
||||
|
||||
- (void)conferenceFailed:(NSDictionary *)data {
|
||||
_onJitsiMeetViewDelegateEvent(@"CONFERENCE_FAILED", data);
|
||||
}
|
||||
|
||||
- (void)conferenceJoined:(NSDictionary *)data {
|
||||
_onJitsiMeetViewDelegateEvent(@"CONFERENCE_JOINED", data);
|
||||
}
|
||||
|
||||
- (void)conferenceLeft:(NSDictionary *)data {
|
||||
_onJitsiMeetViewDelegateEvent(@"CONFERENCE_LEFT", data);
|
||||
}
|
||||
|
||||
- (void)conferenceWillJoin:(NSDictionary *)data {
|
||||
_onJitsiMeetViewDelegateEvent(@"CONFERENCE_WILL_JOIN", data);
|
||||
}
|
||||
|
||||
- (void)conferenceWillLeave:(NSDictionary *)data {
|
||||
_onJitsiMeetViewDelegateEvent(@"CONFERENCE_WILL_LEAVE", data);
|
||||
}
|
||||
|
||||
- (void)loadConfigError:(NSDictionary *)data {
|
||||
_onJitsiMeetViewDelegateEvent(@"LOAD_CONFIG_ERROR", data);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@end
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Script"
|
||||
scriptText = "exec > /tmp/${PROJECT_NAME}_archive.log 2>&1 UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal if [ "true" == ${ALREADYINVOKED:-false} ] then echo "RECURSION: Detected, stopping" else export ALREADYINVOKED="true" # make sure the output directory exists mkdir -p "${UNIVERSAL_OUTPUTFOLDER}" echo "Building for iPhoneSimulator" xcodebuild -workspace "${WORKSPACE_PATH}" -scheme "${TARGET_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6' ONLY_ACTIVE_ARCH=NO ARCHS='i386 x86_64' BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" ENABLE_BITCODE=YES OTHER_CFLAGS="-fembed-bitcode" BITCODE_GENERATION_MODE=bitcode clean build # Step 1. Copy the framework structure (from iphoneos build) to the universal folder echo "Copying to output folder" cp -R "${ARCHIVE_PRODUCTS_PATH}${INSTALL_PATH}/${FULL_PRODUCT_NAME}" "${UNIVERSAL_OUTPUTFOLDER}/" # Step 2. Copy Swift modules from iphonesimulator build (if it exists) to the copied framework directory SIMULATOR_SWIFT_MODULES_DIR="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule/." if [ -d "${SIMULATOR_SWIFT_MODULES_DIR}" ]; then cp -R "${SIMULATOR_SWIFT_MODULES_DIR}" "${UNIVERSAL_OUTPUTFOLDER}/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule" fi # Step 3. Create universal binary file using lipo and place the combined executable in the copied framework directory echo "Combining executables" lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${EXECUTABLE_PATH}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${EXECUTABLE_PATH}" "${ARCHIVE_PRODUCTS_PATH}${INSTALL_PATH}/${EXECUTABLE_PATH}" # Step 4. Create universal binaries for embedded frameworks #for SUB_FRAMEWORK in $( ls "${UNIVERSAL_OUTPUTFOLDER}/${TARGET_NAME}.framework/Frameworks" ); do #BINARY_NAME="${SUB_FRAMEWORK%.*}" #lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${TARGET_NAME}.framework/Frameworks/${SUB_FRAMEWORK}/${BINARY_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${SUB_FRAMEWORK}/${BINARY_NAME}" "${ARCHIVE_PRODUCTS_PATH}${INSTALL_PATH}/${TARGET_NAME}.framework/Frameworks/${SUB_FRAMEWORK}/${BINARY_NAME}" #done # Step 5. Convenience step to copy the framework to the project's directory echo "Copying to project dir" yes | cp -Rf "${UNIVERSAL_OUTPUTFOLDER}/${FULL_PRODUCT_NAME}" "${PROJECT_DIR}" open "${PROJECT_DIR}" fi">
|
||||
scriptText = "exec > /tmp/${PROJECT_NAME}_archive.log 2>&1 UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal if [ "true" == ${ALREADYINVOKED:-false} ] then echo "RECURSION: Detected, stopping" else export ALREADYINVOKED="true" # make sure the output directory exists mkdir -p "${UNIVERSAL_OUTPUTFOLDER}" echo "Building for iPhoneSimulator" xcodebuild -workspace "${WORKSPACE_PATH}" -scheme "${TARGET_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6' ONLY_ACTIVE_ARCH=NO ARCHS='i386 x86_64' BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" ENABLE_BITCODE=YES OTHER_CFLAGS="-fembed-bitcode" BITCODE_GENERATION_MODE=bitcode clean build # Step 1. Copy the framework structure (from iphoneos build) to the universal folder echo "Copying to output folder" cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FULL_PRODUCT_NAME}" "${UNIVERSAL_OUTPUTFOLDER}/" # Step 2. Copy Swift modules from iphonesimulator build (if it exists) to the copied framework directory SIMULATOR_SWIFT_MODULES_DIR="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule/." if [ -d "${SIMULATOR_SWIFT_MODULES_DIR}" ]; then cp -R "${SIMULATOR_SWIFT_MODULES_DIR}" "${UNIVERSAL_OUTPUTFOLDER}/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule" fi # Step 3. Create universal binary file using lipo and place the combined executable in the copied framework directory echo "Combining executables" lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${EXECUTABLE_PATH}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${EXECUTABLE_PATH}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${EXECUTABLE_PATH}" # Step 4. Create universal binaries for embedded frameworks #for SUB_FRAMEWORK in $( ls "${UNIVERSAL_OUTPUTFOLDER}/${TARGET_NAME}.framework/Frameworks" ); do #BINARY_NAME="${SUB_FRAMEWORK%.*}" #lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${TARGET_NAME}.framework/Frameworks/${SUB_FRAMEWORK}/${BINARY_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${SUB_FRAMEWORK}/${BINARY_NAME}" "${ARCHIVE_PRODUCTS_PATH}${INSTALL_PATH}/${TARGET_NAME}.framework/Frameworks/${SUB_FRAMEWORK}/${BINARY_NAME}" #done # Step 5. Convenience step to copy the framework to the project's directory echo "Copying to project dir" yes | cp -Rf "${UNIVERSAL_OUTPUTFOLDER}/${FULL_PRODUCT_NAME}" "${PROJECT_DIR}" fi">
|
||||
<EnvironmentBuildable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
|
||||
@@ -52,26 +52,33 @@ RCT_EXPORT_METHOD(sendEvent:(NSString *)name
|
||||
return;
|
||||
}
|
||||
|
||||
if ([name isEqualToString:@"CONFERENCE_FAILED"]
|
||||
&& [delegate respondsToSelector:@selector(conferenceFailed:)]) {
|
||||
[delegate conferenceFailed:data];
|
||||
SEL sel = NSSelectorFromString([self methodNameFromEventName:name]);
|
||||
|
||||
} else if ([name isEqualToString:@"CONFERENCE_JOINED"]
|
||||
&& [delegate respondsToSelector:@selector(conferenceJoined:)]) {
|
||||
[delegate conferenceJoined:data];
|
||||
|
||||
} else if ([name isEqualToString:@"CONFERENCE_LEFT"]
|
||||
&& [delegate respondsToSelector:@selector(conferenceLeft:)]) {
|
||||
[delegate conferenceLeft:data];
|
||||
|
||||
} else if ([name isEqualToString:@"CONFERENCE_WILL_JOIN"]
|
||||
&& [delegate respondsToSelector:@selector(conferenceWillJoin:)]) {
|
||||
[delegate conferenceWillJoin:data];
|
||||
|
||||
} else if ([name isEqualToString:@"CONFERENCE_WILL_LEAVE"]
|
||||
&& [delegate respondsToSelector:@selector(conferenceWillLeave:)]) {
|
||||
[delegate conferenceWillLeave:data];
|
||||
if (sel && [delegate respondsToSelector:sel]) {
|
||||
[delegate performSelector:sel withObject:data];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a specific event name i.e. redux action type description to a
|
||||
* method name.
|
||||
*
|
||||
* @param eventName The event name to convert to a method name.
|
||||
* @return A method name constructed from the specified {@code eventName}.
|
||||
*/
|
||||
- (NSString *)methodNameFromEventName:(NSString *)eventName {
|
||||
NSMutableString *methodName
|
||||
= [NSMutableString stringWithCapacity:eventName.length];
|
||||
|
||||
for (NSString *c in [eventName componentsSeparatedByString:@"_"]) {
|
||||
if (c.length) {
|
||||
[methodName appendString:
|
||||
methodName.length ? c.capitalizedString : c.lowercaseString];
|
||||
}
|
||||
}
|
||||
[methodName appendString:@":"];
|
||||
|
||||
return methodName;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<string>1.9.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
#import <CoreText/CoreText.h>
|
||||
#include <mach/mach_time.h>
|
||||
|
||||
#import <React/RCTAssert.h>
|
||||
#import <React/RCTLinkingManager.h>
|
||||
@@ -83,10 +84,10 @@ void loadCustomFonts(Class clazz) {
|
||||
*/
|
||||
void registerFatalErrorHandler() {
|
||||
#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.
|
||||
// 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);
|
||||
}
|
||||
@@ -139,6 +140,17 @@ static NSMapTable<NSString *, JitsiMeetView *> *views;
|
||||
continueUserActivity:(NSUserActivity *)userActivity
|
||||
restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler
|
||||
{
|
||||
// XXX At least twice we received bug reports about malfunctioning loadURL
|
||||
// in the Jitsi Meet SDK while the Jitsi Meet app seemed to functioning as
|
||||
// expected in our testing. But that was to be expected because the app does
|
||||
// not exercise loadURL. In order to increase the test coverage of loadURL,
|
||||
// channel Universal linking through loadURL.
|
||||
if ([userActivity.activityType
|
||||
isEqualToString:NSUserActivityTypeBrowsingWeb]
|
||||
&& [JitsiMeetView loadURLInViews:userActivity.webpageURL]) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
return [RCTLinkingManager application:application
|
||||
continueUserActivity:userActivity
|
||||
restorationHandler:restorationHandler];
|
||||
@@ -148,6 +160,15 @@ static NSMapTable<NSString *, JitsiMeetView *> *views;
|
||||
openURL:(NSURL *)url
|
||||
sourceApplication:(NSString *)sourceApplication
|
||||
annotation:(id)annotation {
|
||||
// XXX At least twice we received bug reports about malfunctioning loadURL
|
||||
// in the Jitsi Meet SDK while the Jitsi Meet app seemed to functioning as
|
||||
// expected in our testing. But that was to be expected because the app does
|
||||
// not exercise loadURL. In order to increase the test coverage of loadURL,
|
||||
// channel Universal linking through loadURL.
|
||||
if ([JitsiMeetView loadURLInViews:url]) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
return [RCTLinkingManager application:application
|
||||
openURL:url
|
||||
sourceApplication:sourceApplication
|
||||
@@ -210,28 +231,39 @@ static NSMapTable<NSString *, JitsiMeetView *> *views;
|
||||
- (void)loadURLObject:(NSDictionary *)urlObject {
|
||||
NSMutableDictionary *props = [[NSMutableDictionary alloc] init];
|
||||
|
||||
[props setObject:externalAPIScope forKey:@"externalAPIScope"];
|
||||
[props setObject:@(self.welcomePageEnabled) forKey:@"welcomePageEnabled"];
|
||||
props[@"externalAPIScope"] = externalAPIScope;
|
||||
props[@"welcomePageEnabled"] = @(self.welcomePageEnabled);
|
||||
|
||||
// XXX url must not be set when nil, so it appears as undefined in JS and we
|
||||
// check the launch parameters.
|
||||
// XXX If urlObject is nil, then it must appear as undefined in the
|
||||
// JavaScript source code so that we check the launchOptions there.
|
||||
if (urlObject) {
|
||||
[props setObject:urlObject forKey:@"url"];
|
||||
props[@"url"] = urlObject;
|
||||
}
|
||||
|
||||
if (rootView == nil) {
|
||||
// XXX The method loadURLObject: is supposed to be imperative i.e. a second
|
||||
// invocation with one and the same URL is expected to join the respective
|
||||
// conference again if the first invocation was followed by leaving the
|
||||
// conference. However, React and, respectively,
|
||||
// appProperties/initialProperties are declarative expressions i.e. one and
|
||||
// the same URL will not trigger componentWillReceiveProps in the JavaScript
|
||||
// source code. The workaround implemented bellow introduces imperativeness
|
||||
// in React Component props by defining a unique value per loadURLObject:
|
||||
// invocation.
|
||||
props[@"timestamp"] = @(mach_absolute_time());
|
||||
|
||||
if (rootView) {
|
||||
// Update props with the new URL.
|
||||
rootView.appProperties = props;
|
||||
} else {
|
||||
rootView
|
||||
= [[RCTRootView alloc] initWithBridge:bridgeWrapper.bridge
|
||||
moduleName:@"App"
|
||||
initialProperties:props];
|
||||
rootView.backgroundColor = self.backgroundColor;
|
||||
|
||||
// Add React's root view as a subview which completely covers this one.
|
||||
// Add rootView as a subview which completely covers this one.
|
||||
[rootView setFrame:[self bounds]];
|
||||
[self addSubview:rootView];
|
||||
} else {
|
||||
// Update props with the new URL.
|
||||
rootView.appProperties = props;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,6 +281,32 @@ static NSMapTable<NSString *, JitsiMeetView *> *views;
|
||||
|
||||
#pragma mark Private methods
|
||||
|
||||
/**
|
||||
* Loads a specific {@link NSURL} in all existing {@code JitsiMeetView}s.
|
||||
*
|
||||
* @param url - The {@code NSURL} to load in all existing
|
||||
* {@code JitsiMeetView}s.
|
||||
* @return {@code YES} if the specified {@code url} was submitted for loading in
|
||||
* at least one {@code JitsiMeetView}; otherwise, {@code NO}.
|
||||
*/
|
||||
+ (BOOL)loadURLInViews:(NSURL *)url {
|
||||
BOOL handled = NO;
|
||||
|
||||
if (views) {
|
||||
for (NSString *externalAPIScope in views) {
|
||||
JitsiMeetView *view
|
||||
= [JitsiMeetView viewForExternalAPIScope:externalAPIScope];
|
||||
|
||||
if (view) {
|
||||
[view loadURL:url];
|
||||
handled = YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return handled;
|
||||
}
|
||||
|
||||
+ (instancetype)viewForExternalAPIScope:(NSString *)externalAPIScope {
|
||||
return [views objectForKey:externalAPIScope];
|
||||
}
|
||||
@@ -283,9 +341,9 @@ static NSMapTable<NSString *, JitsiMeetView *> *views;
|
||||
[views setObject:self forKey:externalAPIScope];
|
||||
}
|
||||
|
||||
// Set a background color which is in accord with the JavaScript and
|
||||
// Android parts of the application and causes less perceived visual
|
||||
// flicker than the default background color.
|
||||
// Set a background color which is in accord with the JavaScript and Android
|
||||
// parts of the application and causes less perceived visual flicker than
|
||||
// the default background color.
|
||||
self.backgroundColor
|
||||
= [UIColor colorWithRed:.07f green:.07f blue:.07f alpha:1];
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
* The {@code data} dictionary contains an "error" key describing the error and
|
||||
* a {@code url} key with the conference URL.
|
||||
*/
|
||||
- (void) conferenceFailed:(NSDictionary *)data;
|
||||
- (void)conferenceFailed:(NSDictionary *)data;
|
||||
|
||||
/**
|
||||
* Called when a conference was joined.
|
||||
@@ -33,7 +33,7 @@
|
||||
* The {@code data} dictionary contains a {@code url} key with the conference
|
||||
* URL.
|
||||
*/
|
||||
- (void) conferenceJoined:(NSDictionary *)data;
|
||||
- (void)conferenceJoined:(NSDictionary *)data;
|
||||
|
||||
/**
|
||||
* Called when a conference was left.
|
||||
@@ -41,7 +41,7 @@
|
||||
* The {@code data} dictionary contains a {@code url} key with the conference
|
||||
* URL.
|
||||
*/
|
||||
- (void) conferenceLeft:(NSDictionary *)data;
|
||||
- (void)conferenceLeft:(NSDictionary *)data;
|
||||
|
||||
/**
|
||||
* Called before a conference is joined.
|
||||
@@ -49,7 +49,7 @@
|
||||
* The {@code data} dictionary contains a {@code url} key with the conference
|
||||
* URL.
|
||||
*/
|
||||
- (void) conferenceWillJoin:(NSDictionary *)data;
|
||||
- (void)conferenceWillJoin:(NSDictionary *)data;
|
||||
|
||||
/**
|
||||
* Called before a conference is left.
|
||||
@@ -57,6 +57,16 @@
|
||||
* The {@code data} dictionary contains a {@code url} key with the conference
|
||||
* URL.
|
||||
*/
|
||||
- (void) conferenceWillLeave:(NSDictionary *)data;
|
||||
- (void)conferenceWillLeave:(NSDictionary *)data;
|
||||
|
||||
/**
|
||||
* Called when loading the main configuration file from the Jitsi Meet
|
||||
* deployment file.
|
||||
*
|
||||
* The {@code data} dictionary contains an {@code error} key with the error and
|
||||
* a {@code url} key with the conference URL which necessitated the loading of
|
||||
* the configuration file.
|
||||
*/
|
||||
- (void)loadConfigError:(NSDictionary *)data;
|
||||
|
||||
@end
|
||||
|
||||
@@ -6,12 +6,15 @@
|
||||
"fr": "Френски",
|
||||
"hy": "Арменски",
|
||||
"it": "Италиански",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"oc": "Окситански",
|
||||
"pl": "Полски",
|
||||
"ptBR": "Португалски (Бразилия)",
|
||||
"ru": "Руски",
|
||||
"sk": "Словашки",
|
||||
"sl": "Словенски",
|
||||
"sv": "Шведски",
|
||||
"tr": "Турски"
|
||||
"tr": "Турски",
|
||||
"zhCN": "Китайски (Китай)",
|
||||
"nb": "Норвежки букмол",
|
||||
"eo": "Есперанто"
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"en": "",
|
||||
"bg": "",
|
||||
"en": "Angličtina",
|
||||
"bg": "Bulharština",
|
||||
"de": "",
|
||||
"es": "",
|
||||
"fr": "",
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
{
|
||||
"en": "",
|
||||
"bg": "",
|
||||
"de": "",
|
||||
"es": "",
|
||||
"fr": "",
|
||||
"hy": "",
|
||||
"it": "",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "",
|
||||
"sl": "",
|
||||
"sv": "",
|
||||
"tr": "",
|
||||
"zhCN": "",
|
||||
"nb": ""
|
||||
"en": "Angla",
|
||||
"bg": "Bulgara",
|
||||
"de": "Germana",
|
||||
"es": "Hispana",
|
||||
"fr": "Franca",
|
||||
"hy": "Armena",
|
||||
"it": "Itala",
|
||||
"oc": "Okcitana",
|
||||
"pl": "Pola",
|
||||
"ptBR": "Portugala (Brazilo)",
|
||||
"ru": "Rusa",
|
||||
"sk": "Slovaka",
|
||||
"sl": "Slovena",
|
||||
"sv": "Sveda",
|
||||
"tr": "Turka",
|
||||
"zhCN": "Ĉina (Ĉinujo)",
|
||||
"nb": "Norvega (Bokmål)",
|
||||
"eo": "Esperanto"
|
||||
}
|
||||
@@ -13,5 +13,8 @@
|
||||
"sk": "Eslovaco",
|
||||
"sl": "Esloveno",
|
||||
"sv": "Sueco",
|
||||
"tr": "Turco"
|
||||
"tr": "Turco",
|
||||
"zhCN": "Chino (China)",
|
||||
"nb": "Noruego (bokmal)",
|
||||
"eo": "Esperanto"
|
||||
}
|
||||
@@ -13,5 +13,8 @@
|
||||
"sk": "Սլովակերեն",
|
||||
"sl": "Սլովեներեն ",
|
||||
"sv": "Շվեդերեն ",
|
||||
"tr": "Թուրքերեն"
|
||||
"tr": "Թուրքերեն",
|
||||
"zhCN": "Չիներեն",
|
||||
"nb": "Նորվեգերեն",
|
||||
"eo": "Էսպերանտո"
|
||||
}
|
||||
@@ -2,16 +2,19 @@
|
||||
"en": "Inglese",
|
||||
"bg": "Bulgaro",
|
||||
"de": "Tedesco",
|
||||
"es": "",
|
||||
"es": "Spagnolo",
|
||||
"fr": "Francese",
|
||||
"hy": "",
|
||||
"hy": "Armeno",
|
||||
"it": "Italiano",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"oc": "Occitano",
|
||||
"pl": "Polacco",
|
||||
"ptBR": "Portoghese (Brasile)",
|
||||
"ru": "Russo",
|
||||
"sk": "Slovacco",
|
||||
"sl": "Sloveno",
|
||||
"sv": "",
|
||||
"tr": "Turco"
|
||||
"sv": "Svedese",
|
||||
"tr": "Turco",
|
||||
"zhCN": "Cinese (Cina)",
|
||||
"nb": "",
|
||||
"eo": ""
|
||||
}
|
||||
@@ -14,5 +14,7 @@
|
||||
"sl": "",
|
||||
"sv": "",
|
||||
"tr": "",
|
||||
"zhCN": ""
|
||||
"zhCN": "",
|
||||
"nb": "",
|
||||
"eo": ""
|
||||
}
|
||||
@@ -15,5 +15,6 @@
|
||||
"sv": "Suedés",
|
||||
"tr": "Turc",
|
||||
"zhCN": "Chinés (China)",
|
||||
"nb": "Norvegian Bokmål"
|
||||
"nb": "Norvegian Bokmål",
|
||||
"eo": "Esperanto"
|
||||
}
|
||||
@@ -6,12 +6,15 @@
|
||||
"fr": "Francuski",
|
||||
"hy": "Ormiański",
|
||||
"it": "Włoski",
|
||||
"oc": "Prowansalski",
|
||||
"oc": "Okcytański",
|
||||
"pl": "Polski",
|
||||
"ptBR": "portugalski (brazylijski)",
|
||||
"ru": "Rosyjski",
|
||||
"sk": "Słowacki",
|
||||
"sl": "Słoweński",
|
||||
"sv": "Szwedzki",
|
||||
"tr": "Turecki"
|
||||
"tr": "Turecki",
|
||||
"zhCN": "chiński (Chiny)",
|
||||
"nb": "norweski bokmal",
|
||||
"eo": "Esperanto"
|
||||
}
|
||||
@@ -15,5 +15,6 @@
|
||||
"sv": "Sueco",
|
||||
"tr": "Turco",
|
||||
"zhCN": "Chinês (China)",
|
||||
"nb": "Bokmal norueguês"
|
||||
"nb": "Bokmal norueguês",
|
||||
"eo": "Esperanto"
|
||||
}
|
||||
@@ -14,5 +14,7 @@
|
||||
"sl": "Словенский",
|
||||
"sv": "Шведский",
|
||||
"tr": "Турецкий",
|
||||
"zhCN": "Китайский (Китай)"
|
||||
"zhCN": "Китайский (Китай)",
|
||||
"nb": "",
|
||||
"eo": ""
|
||||
}
|
||||
@@ -13,5 +13,8 @@
|
||||
"sk": "Slovenčina",
|
||||
"sl": "Slovinčina",
|
||||
"sv": "",
|
||||
"tr": "Turečtina"
|
||||
"tr": "Turečtina",
|
||||
"zhCN": "",
|
||||
"nb": "",
|
||||
"eo": ""
|
||||
}
|
||||
@@ -13,5 +13,8 @@
|
||||
"sk": "",
|
||||
"sl": "Slovenščina",
|
||||
"sv": "",
|
||||
"tr": "Turščina"
|
||||
"tr": "Turščina",
|
||||
"zhCN": "",
|
||||
"nb": "",
|
||||
"eo": ""
|
||||
}
|
||||
@@ -2,16 +2,19 @@
|
||||
"en": "Engelska",
|
||||
"bg": "Bulgariska",
|
||||
"de": "Tyska",
|
||||
"es": "",
|
||||
"es": "Spanska",
|
||||
"fr": "Franska",
|
||||
"hy": "",
|
||||
"hy": "Armeniska",
|
||||
"it": "Italienska",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"oc": "Occitanska",
|
||||
"pl": "Polska",
|
||||
"ptBR": "Portugisiska (Brasilien)",
|
||||
"ru": "Ryska",
|
||||
"sk": "Slovakiska",
|
||||
"sl": "Slovenska",
|
||||
"sv": "",
|
||||
"tr": "Turkiska"
|
||||
"sv": "Svenska",
|
||||
"tr": "Turkiska",
|
||||
"zhCN": "Kinesiska (Kina)",
|
||||
"nb": "Norska (Bokmål)",
|
||||
"eo": "Esperanto"
|
||||
}
|
||||
@@ -2,16 +2,19 @@
|
||||
"en": "İngilizce",
|
||||
"bg": "Bulgarca",
|
||||
"de": "Almanca",
|
||||
"es": "",
|
||||
"fr": "",
|
||||
"hy": "",
|
||||
"it": "",
|
||||
"oc": "",
|
||||
"pl": "",
|
||||
"ptBR": "",
|
||||
"ru": "",
|
||||
"sk": "",
|
||||
"sl": "",
|
||||
"sv": "",
|
||||
"tr": ""
|
||||
"es": "İspanyolca",
|
||||
"fr": "Fransızca",
|
||||
"hy": "Ermenice",
|
||||
"it": "İtalyanca",
|
||||
"oc": "Oksitan dili",
|
||||
"pl": "Lehçe",
|
||||
"ptBR": "Portekizce (Brezilya)",
|
||||
"ru": "Rusça",
|
||||
"sk": "Slovakça",
|
||||
"sl": "Slovence",
|
||||
"sv": "Isveççe",
|
||||
"tr": "Türkçe",
|
||||
"zhCN": "Çince (Tayvan)",
|
||||
"nb": "Norveççe Bokmal",
|
||||
"eo": "Esperanto"
|
||||
}
|
||||
@@ -15,6 +15,6 @@
|
||||
"sv": "瑞典语",
|
||||
"tr": "土耳其语",
|
||||
"zhCN": "中文(中国)",
|
||||
"nb": "",
|
||||
"eo": ""
|
||||
"nb": "挪威布克摩尔语",
|
||||
"eo": "世界语"
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"contactlist": "Участници (__pcount__)",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Настройки на връзката",
|
||||
"poweredby": "powered by",
|
||||
"feedback": "Кажете ни как върви",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Конференцията се създава...",
|
||||
"me": "аз",
|
||||
"speaker": "Говорител",
|
||||
@@ -14,6 +21,10 @@
|
||||
"defaultNickname": "Яна Розова",
|
||||
"defaultLink": "например __url__",
|
||||
"callingName": "",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,58 +33,66 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
"keyboardShortcuts": "Клавишни комбинации:",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"pushToTalk": "Push to talk.",
|
||||
"toggleScreensharing": "Смяна между камера и споделен екран.",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"toggleShortcuts": "Показване/скриване на това меню.",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"toggleChat": "Отваряне/скриване на чат панела.",
|
||||
"mute": "Спиране/пускане на микрофона.",
|
||||
"fullScreen": "Влез / Излез от Пълен екран",
|
||||
"videoMute": "",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"\u0005keyboardShortcuts": {},
|
||||
"welcomepage": {
|
||||
"go": "Влез",
|
||||
"roomname": "Въведете име на стаята",
|
||||
"disable": "Не показвай повече тази страница",
|
||||
"feature1": {
|
||||
"title": "Лесен за употреба",
|
||||
"content": "Не е необходимо да сваляте нищо. _app_ работи директно във вашия браузър. Просто споделете адреса на вашата конференция с другите за да започнете."
|
||||
"content": "Не е необходимо да сваляте нищо. __app__ работи директно във вашия браузър. Просто споделете адреса на вашата конференция с другите за да започнете.",
|
||||
"title": "Лесен за употреба"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Нисък дебит",
|
||||
"content": "Видео конференциите могат да работят с по-малко от 128Kbps, а аудио конференциите и конференциите с споделен екран дори с по-малко."
|
||||
"content": "Видео конференциите могат да работят с по-малко от 128Kbps, а аудио конференциите и конференциите с споделен екран дори с по-малко.",
|
||||
"title": "Нисък дебит"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Отворен код",
|
||||
"content": "__app__ се разпространява под лицензе Apache. Свободни сте да го сваляте ползвате, променяте и споделяте спрямо правилата на лиценза."
|
||||
"content": "__app__ се разпространява под лицензе Apache. Свободни сте да го сваляте ползвате, променяте и споделяте спрямо правилата на лиценза.",
|
||||
"title": "Отворен код"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Неограничен брой потребители",
|
||||
"content": "Няма изкуствени ограничения за броя на потребителите или участниците в конференция. Единствените ограничения са мощността на вашия сървър и качеството на интернет връзката му."
|
||||
"content": "Няма изкуствени ограничения за броя на потребителите или участниците в конференция. Единствените ограничения са мощността на вашия сървър и качеството на интернет връзката му.",
|
||||
"title": "Неограничен брой потребители"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Споделяне на екрана",
|
||||
"content": "Лесно е да споделите екрана си с другите. __app__ е идеален за онлайн презентации, лекции и техническа подръжка."
|
||||
"content": "Лесно е да споделите екрана си с другите. __app__ е идеален за онлайн презентации, лекции и техническа подръжка.",
|
||||
"title": "Споделяне на екрана"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Сигурни стаи",
|
||||
"content": "Нуждаете се от уединение? _app__ конферентните стай могат да бъдат защитени от парола за да се препазите от нежелани гости или прекъсвания."
|
||||
"content": "Нуждаете се от уединение? __app__ конферентните стай могат да бъдат защитени от парола за да се препазите от нежелани гости или прекъсвания.",
|
||||
"title": "Сигурни стаи"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Споделени бележки",
|
||||
"content": "__app__ използва Etherpad, с който можете да редактирате текст в реално време заедно."
|
||||
"content": "__app__ използва Etherpad, с който можете да редактирате текст в реално време заедно.",
|
||||
"title": "Споделени бележки"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Статистики за използване",
|
||||
"content": "Научете повече за своите потребители като интегрирате лесно Piwik, Google Analytics и други статистики за изполването."
|
||||
}
|
||||
"content": "Научете повече за своите потребители като интегрирате лесно Piwik, Google Analytics и други статистики за изполването.",
|
||||
"title": "Статистики за използване"
|
||||
},
|
||||
"go": "Влез",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "Въведете име на стаята",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
@@ -81,19 +100,22 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Включи / Изключи микрофона",
|
||||
"videomute": "",
|
||||
"videomute": "Включи / Изключи камерата",
|
||||
"authenticate": "Идентификация",
|
||||
"lock": "",
|
||||
"lock": "Заключи / отключи стаята",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"chat": "Отвори / затвори чат",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "Сподели YouTube видео",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"fullscreen": "Влез / Излез от Пълен екран",
|
||||
"sip": "Обади се на SIP номер",
|
||||
"Settings": "Настройки",
|
||||
"hangup": "",
|
||||
@@ -110,6 +132,14 @@
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"\u0005toolbar": {},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Отвори / затвори чат",
|
||||
"filmstrip": "",
|
||||
@@ -133,12 +163,10 @@
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "Няма",
|
||||
"noPermission": "Не е разрешен достъп до устройството",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"audioVideo": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
@@ -149,18 +177,21 @@
|
||||
"videothumbnail": {
|
||||
"editnickname": "Натиснете за да<br/>промените името",
|
||||
"moderator": "Създателя на<br/>конференцията",
|
||||
"videomute": "",
|
||||
"videomute": "Учасника е спрял<br/>камерата си.",
|
||||
"mute": "Учасника е с изключен микрофон",
|
||||
"kick": "Изгони",
|
||||
"muted": "Изключен микрофон",
|
||||
"domute": "Изключи микрофона",
|
||||
"flip": "Огледално"
|
||||
"flip": "Огледално",
|
||||
"remoteControl": ""
|
||||
},
|
||||
"\u0005videothumbnail": {},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Дебит:",
|
||||
"packetloss": "Загуба на пакети:",
|
||||
"resolution": "Резолюция:",
|
||||
"framerate": "",
|
||||
"less": "Скрий",
|
||||
"more": "Покажи",
|
||||
"address": "Адрес:",
|
||||
@@ -174,7 +205,8 @@
|
||||
"remoteaddress_plural": "Отдалечени адреси:",
|
||||
"transport": "Транспорт:",
|
||||
"bandwidth": "Оценка макс. дебит:",
|
||||
"na": "Върнете се тук за информацията относно вашата връзка, когато започне конференцията"
|
||||
"na": "Върнете се тук за информацията относно вашата връзка, когато започне конференцията",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "връзката е прекъсната",
|
||||
@@ -190,8 +222,10 @@
|
||||
"mutedTitle": "Звукът ви е спрян!",
|
||||
"raisedHand": ""
|
||||
},
|
||||
"\u0005notify": {},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"allow": "",
|
||||
"kickMessage": "Бяхте изгонен от срещата!",
|
||||
"popupError": "Навигаторът ви блокира попъите. Молим ви да премахнете забраната и да опитате отново.",
|
||||
"passwordErrorTitle": "",
|
||||
@@ -203,8 +237,6 @@
|
||||
"connecting": "Свързване",
|
||||
"copy": "",
|
||||
"error": "Грешка",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Възникна грешка при опит да бъде намерено разширението за споделяне на екран.",
|
||||
"failtoinstall": "Неуспешна инсталация на разширението за споделяне на екрана.",
|
||||
@@ -213,8 +245,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "Конференцията е пълна. Моля, опитайте по-късно!",
|
||||
"lockTitle": "Неуспешно заключване",
|
||||
"lockMessage": "Неуспешно заключване на конференцията.",
|
||||
@@ -231,7 +262,7 @@
|
||||
"defaultError": "Възникна грешка",
|
||||
"passwordRequired": "Изисква се парола",
|
||||
"Ok": "ОК",
|
||||
"done": "",
|
||||
"done": "Няма",
|
||||
"Remove": "DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE ",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Сподели видео",
|
||||
@@ -254,31 +285,28 @@
|
||||
"Save": "Запазване",
|
||||
"recording": "Запис",
|
||||
"recordingToken": "Въведете код за достъп за запис на конференцията",
|
||||
"Dial": "Набиране",
|
||||
"sipMsg": "Въведете SIP номер",
|
||||
"passwordCheck": "Сигурни ли сте, че искате да махнете паролата?",
|
||||
"passwordMsg": "Въведете парола, за да заключите стаята",
|
||||
"shareLink": "",
|
||||
"settings1": "Конфигурирай конференцията",
|
||||
"settings2": "Участниците се присъединиха с изключен микрофон.",
|
||||
"settings3": "Изисквай имена<br/><br/>Въведете парола за да заключите стаята:",
|
||||
"yourPassword": "",
|
||||
"yourPassword": "потребителска парола",
|
||||
"Back": "Назад",
|
||||
"serviceUnavailable": "Услугата не е налична",
|
||||
"gracefulShutdown": "Услугата временно не е достъпна поради профилактика. Моля опитайте по-късно.",
|
||||
"Yes": "Да",
|
||||
"reservationError": "Грешка в системата за резервации",
|
||||
"reservationErrorMsg": "Грешка номер: __code__, съобщение: __msg__",
|
||||
"password": "",
|
||||
"password": "потребителска парола",
|
||||
"userPassword": "потребителска парола",
|
||||
"token": "код за достъп",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailedTitle": "Неуспешна идентификация",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Въведете името си:",
|
||||
"extensionRequired": "Изисква се разширение: ",
|
||||
"firefoxExtensionPrompt": "За да споделите екрана си, трябва да инсталирате Firefox разширение. <a href='__url__'>свалете го тук</a> и пробвайте пак!",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "Благодарим, че използвахте __appName__!",
|
||||
@@ -291,7 +319,7 @@
|
||||
"stopLiveStreaming": "Край на прякото предаване",
|
||||
"stopRecording": "Край на записа",
|
||||
"doNotShowWarningAgain": "Занапред не ме предупреждавай пак",
|
||||
"doNotShowMessageAgain": "",
|
||||
"doNotShowMessageAgain": "Не показвай повече тази страница",
|
||||
"permissionDenied": "Достъпът е отказан",
|
||||
"screenSharingPermissionDeniedError": "Не сте дали права за споделяне на екран",
|
||||
"micErrorPresent": "Грешка при достъп до микрофона",
|
||||
@@ -308,12 +336,27 @@
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"externalInstallationTitle": "Изисква се разширение: ",
|
||||
"externalInstallationMsg": "Неуспешна инсталация на разширението за споделяне на екрана.",
|
||||
"inlineInstallationMsg": "Неуспешна инсталация на разширението за споделяне на екрана.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Изключи микрофона"
|
||||
"muteParticipantButton": "Изключи микрофона",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
"Стаята е защитена с парола. Моля използвайте следния пин при влизане:",
|
||||
@@ -356,19 +399,87 @@
|
||||
"on": "Запис",
|
||||
"off": "Записът спрян",
|
||||
"failedToStart": "Неуспешен опит за записване",
|
||||
"buttonTooltip": "",
|
||||
"buttonTooltip": "Пускане / спиране на запис",
|
||||
"error": "Грешка при опит за запис. Моля опитайте отново.",
|
||||
"unavailable": "Записите са временно невъзможни. Моля опитайте по-късно."
|
||||
},
|
||||
"\u0005recording": {},
|
||||
"liveStreaming": {
|
||||
"pending": "Започва пряко предаване...",
|
||||
"on": "Пряко предаване",
|
||||
"off": "Край на прякото предаване",
|
||||
"unavailable": "Услугата за пряко предаване е временно недостъпна. Опитайте по-късно.",
|
||||
"failedToStart": "Неуспешен опит за пряко предаване",
|
||||
"buttonTooltip": "",
|
||||
"buttonTooltip": "Начало / край на пряко предаване",
|
||||
"streamIdRequired": "Моля попълнете името на потока, за да можем да започнем прякото предаване.",
|
||||
"streamIdHelp": "",
|
||||
"error": "Неуспешно пряко предаване. Опитайте пак.",
|
||||
"busy": "Всички записвачки са временно заети. Опитайте отново по-късно."
|
||||
},
|
||||
"\u0005liveStreaming": {},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Име",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Набиране",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"contactlist": "Účastníci (__pcount__)",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "",
|
||||
"poweredby": "",
|
||||
"feedback": "",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "",
|
||||
"me": "",
|
||||
"speaker": "",
|
||||
@@ -16,8 +23,7 @@
|
||||
"callingName": "",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": "",
|
||||
"howToDisable": ""
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
@@ -97,6 +103,7 @@
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "",
|
||||
"videomute": "",
|
||||
@@ -187,16 +194,22 @@
|
||||
"address": "",
|
||||
"remoteport": "",
|
||||
"remoteport_plural_2": "",
|
||||
"remoteport_plural_5": "",
|
||||
"localport": "",
|
||||
"localport_plural_2": "",
|
||||
"localport_plural_5": "",
|
||||
"localaddress": "",
|
||||
"localaddress_plural_2": "",
|
||||
"localaddress_plural_5": "",
|
||||
"remoteaddress": "",
|
||||
"remoteaddress_plural_2": "",
|
||||
"remoteaddress_plural_5": "",
|
||||
"transport": "",
|
||||
"transport_plural_2": "",
|
||||
"transport_plural_5": "",
|
||||
"bandwidth": "",
|
||||
"na": ""
|
||||
"na": "",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "",
|
||||
@@ -274,8 +287,6 @@
|
||||
"Save": "",
|
||||
"recording": "",
|
||||
"recordingToken": "",
|
||||
"Dial": "",
|
||||
"sipMsg": "",
|
||||
"passwordCheck": "",
|
||||
"passwordMsg": "",
|
||||
"shareLink": "",
|
||||
@@ -298,7 +309,6 @@
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
@@ -330,6 +340,8 @@
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"inlineInstallationMsg": "",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "",
|
||||
@@ -339,6 +351,7 @@
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
@@ -401,15 +414,52 @@
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"dialInNumbers": "",
|
||||
"errorFetchingNumbers": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"loadingNumbers": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"noNumbers": "",
|
||||
"numbersDisabled": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "von einem anderen Teilnehmer gesetzt",
|
||||
"connectionsettings": "Verbindungseinstellungen",
|
||||
"poweredby": "Betrieben von",
|
||||
"feedback": "Wir freuen uns auf Ihr Feedback!",
|
||||
"feedback": {
|
||||
"average": "Durschnittlich",
|
||||
"bad": "Schlecht",
|
||||
"good": "Gut",
|
||||
"rateExperience": "Bitte bewerten Sie diese Konferenz.",
|
||||
"veryBad": "Sehr schlecht",
|
||||
"veryGood": "Sehr gut"
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Die Konferenz wird erstellt...",
|
||||
"me": "ich",
|
||||
"speaker": "Sprecher",
|
||||
@@ -19,12 +26,12 @@
|
||||
"featureToggleDisabled": "Umschalten zwischen __feature__ ist im Audio-Modus deaktiviert"
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"react-nativeGrantPermissions": "Wählen Sie <b><i>Erlauben</i></b> wenn der Browser um Berechtigungen bittet.",
|
||||
"chromeGrantPermissions": "Wählen Sie <b><i>Erlauben</i></b> wenn der Browser um Berechtigungen bittet.",
|
||||
"androidGrantPermissions": "Wählen Sie <b><i>Erlauben</i></b> wenn der Browser um Berechtigungen bittet.",
|
||||
"firefoxGrantPermissions": "Wählen Sie <b><i>Markiertes Gerät teilen</i></b> wenn der Browser um Berechtigungen bittet.",
|
||||
"operaGrantPermissions": "Wählen Sie <b><i>Erlauben</i></b> wenn der Browser um Berechtigungen bittet.",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "Wählen Sie <b><i>OK</i></b> wenn der Browser um Berechtigungen bittet.",
|
||||
"safariGrantPermissions": "Wählen Sie <b><i>OK</i></b> wenn der Browser um Berechtigungen bittet.",
|
||||
"nwjsGrantPermissions": "Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen",
|
||||
"edgeGrantPermissions": "Wählen Sie <b><i>Ja</i></b> wenn der Browser um Berechtigungen bittet."
|
||||
@@ -91,11 +98,12 @@
|
||||
"title": "__app__ benötigt Kamera und Mikrofon."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "Die Konferenz wurde unterbrochen weil der Computer den Standbymodus aktivierte.",
|
||||
"text": "Klicken Sie auf die <i>Erneut teilnehmen</i> Schaltfläche um die Verbindung wieder herzustellen.",
|
||||
"title": "Die Konferenz wurde unterbrochen weil der Standbymodus aktiviert wurde.",
|
||||
"text": "<i>Erneut teilnehmen</i> Schaltfläche betätigen um erneut zu verbinden.",
|
||||
"rejoinKeyTitle": "Erneut teilnehmen"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "Nur-Audio-Modus aktivieren/deaktivieren (spart Bandbreite)",
|
||||
"mute": "Stummschaltung aktivieren / deaktivieren",
|
||||
"videomute": "Kamera starten / stoppen",
|
||||
@@ -194,7 +202,8 @@
|
||||
"remoteaddress_plural": "Entfernte Adressen:",
|
||||
"transport": "Protokoll:",
|
||||
"bandwidth": "Geschätzte Bandbreite:",
|
||||
"na": "Verbindungsdaten erneut anzeigen wenn die Konferenz begonnen hat"
|
||||
"na": "Verbindungsdaten erneut anzeigen wenn die Konferenz begonnen hat",
|
||||
"turn": " (TURN)"
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "getrennt",
|
||||
@@ -294,7 +303,6 @@
|
||||
"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.",
|
||||
"feedbackHelp": "Ihr Feedback hilft uns die Qualität der Konferenzen zu verbessern.",
|
||||
"feedbackQuestion": "Anmerkungen zur Konferenz.",
|
||||
"thankYou": "Danke für die Verwendung von __appName__!",
|
||||
@@ -326,6 +334,8 @@
|
||||
"goToStore": "Zum Store",
|
||||
"externalInstallationTitle": "Erweiterung erforderlich",
|
||||
"externalInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden.",
|
||||
"inlineInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden.",
|
||||
"inlineInstallExtension": "Jetzt installieren",
|
||||
"muteParticipantTitle": "Teilnehmer stummschalten?",
|
||||
"muteParticipantBody": "Sie können die Stummschaltung anderer Teilnehmer nicht aufheben, aber ein Teilnehmer kann seine eigene Stummschaltung jederzeit beenden.",
|
||||
"muteParticipantButton": "Stummschalten",
|
||||
@@ -335,6 +345,7 @@
|
||||
"remoteControlDeniedMessage": "__user__ hat die Anfrage zur Fernsteuerung verweigert.",
|
||||
"remoteControlAllowedMessage": "__user__ hat die Anfrage zur Fernsteuerung angenommen.",
|
||||
"remoteControlErrorMessage": "Beim Anfordern der Fernsteuerungsberechtigung von __user__ ist ein Fehler aufgetreten.",
|
||||
"startRemoteControlErrorMessage": "Beim Versuch die Fernsteuerung zu starten ist ein Fehler aufgetreten.",
|
||||
"remoteControlStopMessage": "Die Fernsteuerung wurde beendet.",
|
||||
"close": "Schliessen",
|
||||
"shareYourScreen": "Bildschirm freigeben",
|
||||
@@ -434,10 +445,18 @@
|
||||
"unlocked": "Die Konferenz ist nicht geschützt. Jeder mit dem Link kann der Konferenz beitreten."
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "Konferenzqualität",
|
||||
"changeVideoTip": "Die Videoqualität kann über die linke Werkzeugleiste geändert werden.",
|
||||
"hd": "HD",
|
||||
"hdVideo": "HD video",
|
||||
"highDefinition": "Hohe Auflösung",
|
||||
"ld": "LD",
|
||||
"lowDefinition": "Niedrige Auflösung",
|
||||
"p2pEnabled": "Ende-zu-Ende aktiviert",
|
||||
"p2pVideoQualityDescription": "Im Ende-zu-Ende Modus kann die Konferenzqualität nur zwischen hoch und nur-Audio gewählt werden. Andere Einstellungen werden nicht beachtet.",
|
||||
"recHighDefinitionOnly": "Hohe Qualität wird bevorzugt.",
|
||||
"sd": "SD",
|
||||
"sdVideo": "SD video"
|
||||
"standardDefinition": "Standardauflösung",
|
||||
"qualityButtonTip": "Empfangene Videoqualität ändern"
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Wählen",
|
||||
@@ -445,5 +464,22 @@
|
||||
"statusMessage": "ist jetzt __status__",
|
||||
"enterPhone": "Telefonnummer eingeben",
|
||||
"phoneNotAllowed": "Diese Telefonnummer wird leider noch nicht unterstützt!"
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Hinzufügen",
|
||||
"noResults": "Keine passenden Ergebnisse",
|
||||
"searchPlaceholder": "Nach Teilnehmern und Konferenzen suchen",
|
||||
"title": "Teilnehmer zur Konferenz hinzufügen",
|
||||
"failedToAdd": "Fehler beim Hinzufügen von Teilnehmern"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "Es ist ein Fehler aufgetreten.",
|
||||
"retry": "Erneut versuchen",
|
||||
"support": "Support",
|
||||
"supportMsg": "Wenn der Fehler erneut auftritt, bitte kontaktieren sie"
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "Fehler beim Bezug der Kamera-Zugriffsberechtigungen",
|
||||
"microphonePermission": "Fehler beim Bezug der Mikrofon-Zugriffsberechtigungen"
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,30 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "",
|
||||
"poweredby": "",
|
||||
"feedback": "",
|
||||
"inviteUrlDefaultMsg": "",
|
||||
"me": "",
|
||||
"speaker": "",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "",
|
||||
"callingName": "",
|
||||
"contactlist": "Partoprenantoj (__pcount__)",
|
||||
"addParticipants": "Kunhavi la ligilon",
|
||||
"roomLocked": "Vokantoj devas enigi pasvorton",
|
||||
"roomUnlocked": "Iu ajn povas aliĝi per la ligilo",
|
||||
"passwordSetRemotely": "agordita de alia partoprenanto",
|
||||
"connectionsettings": "Konektaj Agordoj",
|
||||
"poweredby": "povigita de",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Bonvolu priskribi vian sperton.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Via kunveno nun estas kreata...",
|
||||
"me": "mi",
|
||||
"speaker": "Parolanto",
|
||||
"raisedHand": "Volas paroli",
|
||||
"defaultNickname": "ekz. Joĉjo Verda",
|
||||
"defaultLink": "ek. __url__",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,353 +33,449 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "Bonvolu doni la permeson uzi viajn kameraon kaj mikrofonon",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"keyboardShortcuts": "Fulmoklavoj",
|
||||
"raiseHand": "Levi aŭ mallevi manon",
|
||||
"pushToTalk": "Premi por paroli",
|
||||
"toggleScreensharing": "Komuti inter kameraa kaj ekrana vidado",
|
||||
"toggleFilmstrip": "Montri aŭ kaŝi la videojn",
|
||||
"toggleShortcuts": "Montri aŭ kaŝi ĉi tiun helpan menuon",
|
||||
"focusLocal": "Atenti vian videon",
|
||||
"focusRemote": "Atenti videon de alia vokanto",
|
||||
"toggleChat": "Malfermi aŭ fermi la babilon",
|
||||
"mute": "Silentigi aŭ malsilentigi vian mikrofonon",
|
||||
"fullScreen": "Ŝalti aŭ malŝalti tutekranan reĝimon",
|
||||
"videoMute": "Ŝalti aŭ malŝalti vian kameraon",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"disable": "",
|
||||
"disable": "Ne montri ĉi tiun paĝon denove",
|
||||
"feature1": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "Sen elŝutoj. __app__ funkcias tuj en via foliumilo. Simple kunhavu vian kunvenan ligilon kun aliaj por komenci.",
|
||||
"title": "Facile uzebla"
|
||||
},
|
||||
"feature2": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "Multopaj kunvenoj povas funkcii kun nur 128 kbit/s. Ekranvidado kaj nur sonaj kunvenoj povas funkcii kun eĉ malpli.",
|
||||
"title": "Malgranda kapacito"
|
||||
},
|
||||
"feature3": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "__app__ estas sub la permesilo Apache. Vi rajtas ĝin elŝuti, uzi, ŝanĝi kaj kunhavi, kiel diras la permesilo.",
|
||||
"title": "Malfermkoda"
|
||||
},
|
||||
"feature4": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "Ne ekzistas artefaritaj limoj por nombro da partoprenantoj. Servila povo kaj reta bitrapido estas la nuraj limoj.",
|
||||
"title": "Senlime da uzantoj"
|
||||
},
|
||||
"feature5": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "Estas facile kunhavi vian ekranon kun aliaj. __app__ taŭgas por enretaj prezentaĵoj, lecionoj kaj teĥnika subteno.",
|
||||
"title": "Ekranvidado"
|
||||
},
|
||||
"feature6": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "Ĉu vi bezonas privatecon? Kunvenajn ĉambrojn de __app__ eblas sekurigi per pasvorto, por forteni nevolatajn gastojn kaj interrompojn.",
|
||||
"title": "Sekuraj ĉambroj"
|
||||
},
|
||||
"feature7": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "__app__ enhavas Etherpad, realtempan kunlaboran redaktilon de teksto, kiu tre taŭgas por skribi notojn, afiŝojn kaj plu.",
|
||||
"title": "Komunaj notoj"
|
||||
},
|
||||
"feature8": {
|
||||
"content": "",
|
||||
"title": ""
|
||||
"content": "Lernu pri viaj uzantoj per facila integro kun Piwik, Google Analizo, kaj aliaj sistemoj observaj kaj statistikaj pri uzado.",
|
||||
"title": "Uzada statistiko"
|
||||
},
|
||||
"go": "",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"go": "IRI",
|
||||
"join": "ALIĜI",
|
||||
"privacy": "Privateco",
|
||||
"roomname": "Enigu nomon de ĉambro",
|
||||
"roomnamePlaceHolder": "nomo de ĉambro",
|
||||
"sendFeedback": "Sendi rimarkojn",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
"title": "__app__ bezonas viajn mikrofonon kaj kameraon."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Realiĝi"
|
||||
},
|
||||
"toolbar": {
|
||||
"mute": "",
|
||||
"videomute": "",
|
||||
"authenticate": "",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sip": "",
|
||||
"Settings": "",
|
||||
"hangup": "",
|
||||
"login": "",
|
||||
"logout": "",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "",
|
||||
"micMutedPopup": "",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "",
|
||||
"cameraDisabled": "",
|
||||
"micDisabled": "",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Siletnigi / Malsilentigi",
|
||||
"videomute": "Ŝalti / Malŝalti kameraon",
|
||||
"authenticate": "Aŭtentigi",
|
||||
"lock": "Ŝlosi / Malŝlosi ĉambron",
|
||||
"invite": "Kunhavi la ligilon",
|
||||
"chat": "Malfermi / Fermi babilon",
|
||||
"etherpad": "Malfermi / Fermi komunan dokumenton",
|
||||
"sharedvideo": "Kunhavi videon de YouTube",
|
||||
"sharescreen": "Ŝalti / Malŝalti ekranvidadon",
|
||||
"fullscreen": "Ŝalti / Malŝalti tutekranan reĝimon",
|
||||
"sip": "Voki SIP numeron",
|
||||
"Settings": "Agordoj",
|
||||
"hangup": "Foriri",
|
||||
"login": "Saluti",
|
||||
"logout": "Adiaŭi",
|
||||
"dialpad": "Malfermi / Fermi numerumilon",
|
||||
"sharedVideoMutedPopup": "Via kunhavita video estas silentigita por<br/>ke vi povu paroli kun aliaj partoprenantoj.",
|
||||
"micMutedPopup": "Via mikrofono estas silentigita por ke vi<br/>plene ĝuu la kunhavitan videon.",
|
||||
"talkWhileMutedPopup": "Ĉu vi klopodas paroli? Vi estas silentigita.",
|
||||
"unableToUnmutePopup": "Vi ne povas malsilentiĝi dum la video",
|
||||
"cameraDisabled": "Kamerao ne disponeblas.",
|
||||
"micDisabled": "Mikrofono ne estas disponebla",
|
||||
"filmstrip": "Montri / Kaŝi videojn",
|
||||
"profile": "Redakti vian profilon",
|
||||
"raiseHand": "Levi / Mallevi vian manon"
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
"appInstalled": "aŭ se vi jam havas ĝin<br /><strong>tiam</strong>",
|
||||
"appNotInstalled": "Vi bezonas <strong>__app__</strong> por aliĝi al la interparolo per via portebla aparato",
|
||||
"downloadApp": "Elŝuti la Aplikaĵon",
|
||||
"joinConversation": "Aliĝi al la konversacio",
|
||||
"startConference": "Komenci kunvenon"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "",
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
"chat": "Malfermi / fermi babilon",
|
||||
"filmstrip": "Montri / kaŝi videojn",
|
||||
"contactlist": "Montri kaj inviti partoprenantojn"
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
"title": "",
|
||||
"popover": ""
|
||||
"title": "Enigu kaŝnomon en la tekstujon sube",
|
||||
"popover": "Elektu kaŝnomon"
|
||||
},
|
||||
"messagebox": ""
|
||||
"messagebox": "Enigu tekston..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "",
|
||||
"update": "",
|
||||
"name": "",
|
||||
"startAudioMuted": "",
|
||||
"startVideoMuted": "",
|
||||
"selectCamera": "",
|
||||
"selectMic": "",
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"title": "Agordoj",
|
||||
"update": "Ĝisdatigi",
|
||||
"name": "Nomo",
|
||||
"startAudioMuted": "Ĉiuj komenciĝas silentaj",
|
||||
"startVideoMuted": "Ĉiuj komenciĝas kaŝitaj",
|
||||
"selectCamera": "Kamerao",
|
||||
"selectMic": "Mikrofono",
|
||||
"selectAudioOutput": "Sona eligo",
|
||||
"followMe": "Ĉiuj sekvas min",
|
||||
"noDevice": "Neniu",
|
||||
"cameraAndMic": "Kamerao kaj mikrofono",
|
||||
"moderator": "KUNVENESTRO",
|
||||
"password": "AGORDI PASVORTON",
|
||||
"audioVideo": "SONO KAJ VIDO"
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
"title": "Profilo",
|
||||
"setDisplayNameLabel": "Agordi vian videblan nomon",
|
||||
"setEmailLabel": "Retpoŝtadreso ligita al Gravatar",
|
||||
"setEmailInput": "Enigu retpoŝtadreson"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "",
|
||||
"moderator": "",
|
||||
"videomute": "",
|
||||
"mute": "",
|
||||
"kick": "",
|
||||
"muted": "",
|
||||
"domute": "",
|
||||
"flip": "",
|
||||
"remoteControl": ""
|
||||
"editnickname": "Alklaku por redakti vian<br/> videblan nomon",
|
||||
"moderator": "La posedanto de<br/>ĉi tiu kunveno",
|
||||
"videomute": "Partoprenanto<br/>malŝaltis la kameraon",
|
||||
"mute": "Partoprenanto silentigita",
|
||||
"kick": "Forpeli",
|
||||
"muted": "Silentigita",
|
||||
"domute": "Silentigi",
|
||||
"flip": "Renversi",
|
||||
"remoteControl": "Defora rego"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "",
|
||||
"packetloss": "",
|
||||
"resolution": "",
|
||||
"less": "",
|
||||
"more": "",
|
||||
"address": "",
|
||||
"remoteport": "",
|
||||
"remoteport_plural": "",
|
||||
"localport": "",
|
||||
"localport_plural": "",
|
||||
"localaddress": "",
|
||||
"localaddress_plural": "",
|
||||
"remoteaddress": "",
|
||||
"remoteaddress_plural": "",
|
||||
"transport": "",
|
||||
"bandwidth": "",
|
||||
"na": ""
|
||||
"header": "Konektaj datumoj",
|
||||
"bitrate": "Bitrapido:",
|
||||
"packetloss": "Paketperdo:",
|
||||
"resolution": "Distingivo:",
|
||||
"framerate": "",
|
||||
"less": "Montri malpli",
|
||||
"more": "Motri pli",
|
||||
"address": "Adreso:",
|
||||
"remoteport": "Fora pordo:",
|
||||
"remoteport_plural": "Foraj pordoj:",
|
||||
"localport": "Loka pordo:",
|
||||
"localport_plural": "Lokaj pordoj:",
|
||||
"localaddress": "Loka adreso:",
|
||||
"localaddress_plural": "Lokaj adresoj:",
|
||||
"remoteaddress": "Fora adreso:",
|
||||
"remoteaddress_plural": "Foraj adresoj:",
|
||||
"transport": "Transporto:",
|
||||
"bandwidth": "Antaŭkalkulita kapacito:",
|
||||
"na": "Revenu ĉi tien por konektaj informoj post la komenco de la kunveno",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "",
|
||||
"moderator": "",
|
||||
"connected": "",
|
||||
"somebody": "",
|
||||
"me": "",
|
||||
"focus": "",
|
||||
"focusFail": "",
|
||||
"grantedTo": "",
|
||||
"disconnected": "malkonektita",
|
||||
"moderator": "Kunvenestraj rajtoj donitaj!",
|
||||
"connected": "konektita",
|
||||
"somebody": "Iu",
|
||||
"me": "Mi",
|
||||
"focus": "Kunvena atento",
|
||||
"focusFail": "__component__ ne atingelbas - reprovo post __ms__ sekundoj",
|
||||
"grantedTo": "Kunvenestraj rajtoj donitaj al __to__!",
|
||||
"grantedToUnknown": "",
|
||||
"muted": "",
|
||||
"mutedTitle": "",
|
||||
"raisedHand": ""
|
||||
"muted": "Vi komencis la interparolon silente.",
|
||||
"mutedTitle": "Vi estas silentigita!",
|
||||
"raisedHand": "Volas paroli."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"kickMessage": "",
|
||||
"popupError": "",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordError": "",
|
||||
"passwordError2": "",
|
||||
"connectError": "",
|
||||
"connectErrorWithMsg": "",
|
||||
"incorrectPassword": "",
|
||||
"connecting": "",
|
||||
"copy": "",
|
||||
"error": "",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "",
|
||||
"failtoinstall": "",
|
||||
"failedpermissions": "",
|
||||
"add": "Aldoni",
|
||||
"allow": "",
|
||||
"kickMessage": "Oj! Vi estas forpelita de la kunveno!",
|
||||
"popupError": "Via foliumilo baras ŝprucfenestrojn de ĉi tiu retejo. Bonvolu permesi ilin en la agordoj pri sekureco de via foliumilo kaj poste reprovi.",
|
||||
"passwordErrorTitle": "Pasvorta Eraro",
|
||||
"passwordError": "Ĉi tiu kunveno estas protektata per pasvorto. Nur la kunvenestro povas agordi pasvorton.",
|
||||
"passwordError2": "Ĉi tiu kunveno ne estas protektata per pasvorto. Nur la kunvenestro povas agordi pasvorton.",
|
||||
"connectError": "Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno.",
|
||||
"connectErrorWithMsg": "Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno: __msg__",
|
||||
"incorrectPassword": "Malĝusta pasvorto",
|
||||
"connecting": "Konektanta",
|
||||
"copy": "Kopii",
|
||||
"error": "Eraro",
|
||||
"createPassword": "Krei pasvorton",
|
||||
"detectext": "Eraro serĉante la ekranvidadan kromprogramon.",
|
||||
"failtoinstall": "Malsukcesis instalo de ekranvidada kromprogramo",
|
||||
"failedpermissions": "Malsukcesis ekhavi permesojn por uzi la lokajn mikrofonon kaj/aŭ kameraon.",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "",
|
||||
"lockMessage": "",
|
||||
"warning": "",
|
||||
"passwordNotSupported": "",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"unableToSwitch": "",
|
||||
"SLDFailure": "",
|
||||
"SRDFailure": "",
|
||||
"oops": "",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"defaultError": "",
|
||||
"passwordRequired": "",
|
||||
"Ok": "",
|
||||
"done": "",
|
||||
"Remove": "",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"removeSharedVideoTitle": "",
|
||||
"removeSharedVideoMsg": "",
|
||||
"alreadySharedVideoMsg": "",
|
||||
"WaitingForHost": "",
|
||||
"WaitForHostMsg": "",
|
||||
"IamHost": "",
|
||||
"Cancel": "",
|
||||
"Submit": "",
|
||||
"retry": "",
|
||||
"logoutTitle": "",
|
||||
"logoutQuestion": "",
|
||||
"sessTerminated": "",
|
||||
"hungUp": "",
|
||||
"joinAgain": "",
|
||||
"Share": "",
|
||||
"Save": "",
|
||||
"recording": "",
|
||||
"recordingToken": "",
|
||||
"Dial": "",
|
||||
"sipMsg": "",
|
||||
"passwordCheck": "",
|
||||
"passwordMsg": "",
|
||||
"shareLink": "",
|
||||
"settings1": "",
|
||||
"settings2": "",
|
||||
"settings3": "",
|
||||
"yourPassword": "",
|
||||
"Back": "",
|
||||
"serviceUnavailable": "",
|
||||
"gracefulShutdown": "",
|
||||
"Yes": "",
|
||||
"reservationError": "",
|
||||
"reservationErrorMsg": "",
|
||||
"password": "",
|
||||
"userPassword": "",
|
||||
"token": "",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
"sorryFeedback": "",
|
||||
"liveStreaming": "",
|
||||
"streamKey": "",
|
||||
"startLiveStreaming": "",
|
||||
"stopStreamingWarning": "",
|
||||
"stopRecordingWarning": "",
|
||||
"stopLiveStreaming": "",
|
||||
"stopRecording": "",
|
||||
"doNotShowWarningAgain": "",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "",
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"micErrorPresent": "",
|
||||
"cameraErrorPresent": "",
|
||||
"cameraUnsupportedResolutionError": "",
|
||||
"cameraUnknownError": "",
|
||||
"cameraPermissionDeniedError": "",
|
||||
"cameraNotFoundError": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "La nombro da partoprenantoj jam atingis la maksimuman limon. La kunveno estas plena. Bonvolu provi poste!",
|
||||
"lockTitle": "Ŝloso malsukcesis",
|
||||
"lockMessage": "Ŝloso de la kunveno malsukcesis.",
|
||||
"warning": "Averto",
|
||||
"passwordNotSupported": "Ĉambraj pasvortoj ne estas subtenataj nun.",
|
||||
"internalErrorTitle": "Interna eraro",
|
||||
"internalError": "Oj! Io misokazis. Jen la eraro: [setRemoteDescription]",
|
||||
"unableToSwitch": "Ne eblas ŝanĝi video-fluon.",
|
||||
"SLDFailure": "Oj! Io misokazis kaj ni ne povis silentigi! (SLD Failure)",
|
||||
"SRDFailure": "Oj! Io misokazis kaj ni ne povis kaŝi videon! (SRD Failure)",
|
||||
"oops": "Oj!",
|
||||
"currentPassword": "La nuna pasvorto estas",
|
||||
"passwordLabel": "Pasvorto",
|
||||
"defaultError": "Ia eraro okazis",
|
||||
"passwordRequired": "Pasvorto necesas",
|
||||
"Ok": "Bone",
|
||||
"done": "Finita",
|
||||
"Remove": "Forigi",
|
||||
"removePassword": "Forigi pasvorton",
|
||||
"shareVideoTitle": "Kunhavi videon",
|
||||
"shareVideoLinkError": "Bonvolu doni ĝustan ligilon de YouTube",
|
||||
"removeSharedVideoTitle": "Forigi kunhavatan videon",
|
||||
"removeSharedVideoMsg": "Ĉu vi vere volas forigi vian kunhavatan videon?",
|
||||
"alreadySharedVideoMsg": "Alia partoprenanto jam kunhavas videon. Ĉi tiu kunveno permesas kunhavi nur unu videon samtempe.",
|
||||
"WaitingForHost": "Atendanta la gastigan komputilon ...",
|
||||
"WaitForHostMsg": "La kunveno <b>__room__ </b> ankoraŭ ne komenciĝis. Se vi estas la kunvenestro, bonvolu aŭtentiĝi. Alie, bonvolu atendi la kunvenestron.",
|
||||
"IamHost": "Mi estas la gastiganto",
|
||||
"Cancel": "Rezigni",
|
||||
"Submit": "Sendi",
|
||||
"retry": "Reprovi",
|
||||
"logoutTitle": "Adiaŭi",
|
||||
"logoutQuestion": "Ĉu vi certe volas adiaŭi kaj fini la kunvenon?",
|
||||
"sessTerminated": "Seanco Finita",
|
||||
"hungUp": "Vi finis la vokon",
|
||||
"joinAgain": "Realiĝi",
|
||||
"Share": "Kunhavi",
|
||||
"Save": "Konservi",
|
||||
"recording": "Registranta",
|
||||
"recordingToken": "Enigu registran ĵetonon",
|
||||
"passwordCheck": "Ĉu vi certe volas forigi vian pasvorton?",
|
||||
"passwordMsg": "Agordi pasvorton por ŝlosi vian ĉambron",
|
||||
"shareLink": "Kunhavi ligilon al la voko",
|
||||
"settings1": "Agordu vian kunvenon",
|
||||
"settings2": "Partoprenantoj aliĝas silentaj",
|
||||
"settings3": "Postuli kaŝnomojn<br/><br/>Agordi pasvorton por ŝlosi la ĉambron:",
|
||||
"yourPassword": "Enigu novan pasvorton",
|
||||
"Back": "Reen",
|
||||
"serviceUnavailable": "Servo ne disponeblas",
|
||||
"gracefulShutdown": "Nia servo nun estas eksterreta pro prizorgado. Bonvolu reprovi poste.",
|
||||
"Yes": "Jes",
|
||||
"reservationError": "Rezerva sistema eraro",
|
||||
"reservationErrorMsg": "Kodo de eraro: __code__, mesaĝo: __msg__",
|
||||
"password": "Enigu pasvorton",
|
||||
"userPassword": "uzantopasvorto",
|
||||
"token": "ĵetono",
|
||||
"tokenAuthFailedTitle": "Aŭtentiga problemo",
|
||||
"tokenAuthFailed": "Pardonu, vi ne rajtas aliĝi al ĉi tiu voko.",
|
||||
"displayNameRequired": "Videbla nomo estas bezonata",
|
||||
"enterDisplayName": "Bonvolu enigi vian videblan nomon",
|
||||
"extensionRequired": "Kromprogramo bezonata:",
|
||||
"firefoxExtensionPrompt": "Vi devas instali kromprogramon al Firefox por uzi ekranvidadon. Bonvolu reprovi preninte ĝin <a href='__url__'>de ĉi tie</a>!",
|
||||
"feedbackHelp": "Viaj rimarkoj helpos al ni plibonigi la programaron.",
|
||||
"feedbackQuestion": "Diru al ni pri via voko!",
|
||||
"thankYou": "Dankon ĉar vi uzas __appName__!",
|
||||
"sorryFeedback": "Ni bedaŭras pro tio. Ĉu vi volas diri pli al ni?",
|
||||
"liveStreaming": "Tuja Elsendfluo",
|
||||
"streamKey": "Elsendflua nomo/ŝlosilo",
|
||||
"startLiveStreaming": "Komenci tujan elsendfluon.",
|
||||
"stopStreamingWarning": "Ĉu vi certe volas fini la tujan elsendfluon?",
|
||||
"stopRecordingWarning": "Ĉu vi certe volas fini la registradon?",
|
||||
"stopLiveStreaming": "Fini tujan elsendfluon",
|
||||
"stopRecording": "Fini registradon",
|
||||
"doNotShowWarningAgain": "Ne montri ĉi tiun averton denove",
|
||||
"doNotShowMessageAgain": "Ne montri ĉi tiun mesaĝon denove",
|
||||
"permissionDenied": "Malpermesita",
|
||||
"screenSharingPermissionDeniedError": "Vi ne donis la permeson vidigi vian ekranon.",
|
||||
"micErrorPresent": "Okazis eraro konektante al via mikrofono.",
|
||||
"cameraErrorPresent": "Okazis eraro konektante al via kamerao.",
|
||||
"cameraUnsupportedResolutionError": "Via kamerao ne subtenas la bezonatan distingivon.",
|
||||
"cameraUnknownError": "Ne eblas uzi la kameraon, pro kialo nekonata.",
|
||||
"cameraPermissionDeniedError": "Vi ne permesis uzi vian kameraon. Vi povas aliĝi al la kunveno, sed aliaj ne povos vin vidi. Vi povas tion ŝanĝi per la kameraa butono en la adresbreto.",
|
||||
"cameraNotFoundError": "Kamerao ne trovita.",
|
||||
"cameraConstraintFailedError": "",
|
||||
"micUnknownError": "",
|
||||
"micPermissionDeniedError": "",
|
||||
"micNotFoundError": "",
|
||||
"micUnknownError": "Ne eblas uzi mikrofonon pro kialo nekonata.",
|
||||
"micPermissionDeniedError": "Vi ne permesis uzi vian mikrofonon. Vi povas aliĝi al la kunveno, sed aliaj ne povos vin aŭdi. Vi povas tion ŝanĝi per la kameraa butono en la adresbreto.",
|
||||
"micNotFoundError": "Mikrofono ne trovita.",
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "",
|
||||
"micNotSendingData": "Ne eblas aliri vian mikrofonon. Bonvolu elekti alian aparaton de la agorda menuo aŭ relanĉi la aplikaĵon.",
|
||||
"cameraNotSendingData": "Ne eblas aliri vian kameraon. Bonvolu kontroli, ĉu alia aplikaĵo ĝin uzas, aŭ elekti alian aparaton de la agorda menuo, aŭ relanĉi la aplikaĵon.",
|
||||
"goToStore": "Iri al la retvendejo",
|
||||
"externalInstallationTitle": "Kromprogramo bezonata",
|
||||
"externalInstallationMsg": "Vi devas instali nian ekranvidadan kromprogramon.",
|
||||
"inlineInstallationMsg": "Vi devas instali nian ekranvidadan kromprogramon.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "Ĉu silentigi ĉi tiun partoprenanton?",
|
||||
"muteParticipantBody": "Vi ne povos ĝin malsilentigi, sed ĝi povas sin malsilentigi kiam ajn.",
|
||||
"muteParticipantButton": "Silentigi",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": ""
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "__user__ rifuzis vian teleregan peton!",
|
||||
"remoteControlAllowedMessage": "__user__ akceptis vian teleregan peton!",
|
||||
"remoteControlErrorMessage": "Eraro petante teleregajn permesojn de __user__!",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "Telerega seanco finita!",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": "",
|
||||
"subject": "",
|
||||
"body": "",
|
||||
"and": ""
|
||||
"sharedKey": [
|
||||
"Ĉi tiu kunveno estas pasvorte protektita. Bonvolu uzi la jenan PINon aliĝante:",
|
||||
"",
|
||||
"",
|
||||
"__sharedKey__",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"subject": "Invito al __appName__ (__conferenceName__)",
|
||||
"body": [
|
||||
"Saluton! Mi volas vin inviti al __appName__ kunveno, kiun mi ĵus komencis.",
|
||||
"",
|
||||
"",
|
||||
"Bonvolu alklaki al la jena ligilo por aliĝi al la kunveno.",
|
||||
"",
|
||||
"",
|
||||
"__roomUrl__",
|
||||
"",
|
||||
"",
|
||||
"__sharedKeyText__",
|
||||
"Sciu, ke __appName__ nur funkcias bone kun __supportedBrowsers__, do vi bezonos unu el tiuj foliumiloj.",
|
||||
"",
|
||||
"",
|
||||
"Ĝis la kunveno!"
|
||||
],
|
||||
"and": "kaj"
|
||||
},
|
||||
"connection": {
|
||||
"ERROR": "",
|
||||
"CONNECTING": "",
|
||||
"RECONNECTING": "",
|
||||
"CONNFAIL": "",
|
||||
"AUTHENTICATING": "",
|
||||
"AUTHFAIL": "",
|
||||
"CONNECTED": "",
|
||||
"DISCONNECTED": "",
|
||||
"DISCONNECTING": "",
|
||||
"ATTACHED": ""
|
||||
"ERROR": "Eraro",
|
||||
"CONNECTING": "Konektanta",
|
||||
"RECONNECTING": "Reta eraro okazis. Rekonektanta...",
|
||||
"CONNFAIL": "Konekto malsukcesis",
|
||||
"AUTHENTICATING": "Aŭtentiganta",
|
||||
"AUTHFAIL": "Aŭtentigo malsukcesis",
|
||||
"CONNECTED": "Konektita",
|
||||
"DISCONNECTED": "Malkonektita",
|
||||
"DISCONNECTING": "Malkonektanta",
|
||||
"ATTACHED": "Kunligita"
|
||||
},
|
||||
"recording": {
|
||||
"pending": "",
|
||||
"on": "",
|
||||
"off": "",
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"error": "",
|
||||
"unavailable": ""
|
||||
"pending": "Registrado atendas aliĝontan partoprenanton...",
|
||||
"on": "Registranta",
|
||||
"off": "Registrado finita",
|
||||
"failedToStart": "Registrado malsukcesis komenci",
|
||||
"buttonTooltip": "Komenci / Fini registradon",
|
||||
"error": "Registrado malsukcesis. Bonvolu provi denove.",
|
||||
"unavailable": "La registra servo nun estas neatingebla. Bonvolu reprovi poste."
|
||||
},
|
||||
"liveStreaming": {
|
||||
"pending": "",
|
||||
"on": "",
|
||||
"off": "",
|
||||
"unavailable": "",
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "",
|
||||
"streamIdHelp": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
"pending": "Komencanta Tujan Elsendfluon...",
|
||||
"on": "Tuja Elsendfluo",
|
||||
"off": "Tuja Elsendfluo Finita",
|
||||
"unavailable": "La tuja elsendflua servo nun estas neatingebla. Bonvolu reprovi poste.",
|
||||
"failedToStart": "Tuja elsendfluo malsukcesis komenci",
|
||||
"buttonTooltip": "Komenci / Fini tujan elsendfluon",
|
||||
"streamIdRequired": "Bonvolu enigi la elsendfluan identigaĵon por komenci la tujan elsendfluon.",
|
||||
"streamIdHelp": "Kie mi trovou ĉi tion?",
|
||||
"error": "Tuja elsendfluo malsukcesis. Bonvolu provi denove.",
|
||||
"busy": "Ĉiuj registriloj jam okupiĝas. Bonvolu reprovi poste."
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Nomo",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Numerumi",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Aldoni",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"contactlist": "Participantes (__pcount__)",
|
||||
"addParticipants": "Compartir el enlace",
|
||||
"roomLocked": "Quienes llaman deben introducir una contraseña",
|
||||
"roomUnlocked": "Cualquiera con el enlace puede unirse",
|
||||
"passwordSetRemotely": "definido por otro participante",
|
||||
"connectionsettings": "Ajustes de la conexión",
|
||||
"poweredby": "potenciado por",
|
||||
"feedback": "Danos tu opinión",
|
||||
"poweredby": "proporcionado por",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Por favor, califique la experiencia de su reunión.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Tu conferencia está siendo creada...",
|
||||
"me": "yo",
|
||||
"speaker": "Orador",
|
||||
@@ -14,106 +21,127 @@
|
||||
"defaultNickname": "ej. Juana Rosas",
|
||||
"defaultLink": "ej. __url__",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "Solo audio",
|
||||
"featureToggleDisabled": "El cambio de estado de __feature__ se encuentra desactivado mientras está el modo de solo audio"
|
||||
},
|
||||
"userMedia": {
|
||||
"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"
|
||||
"react-nativeGrantPermissions": "Seleccione <b><i>Permitir</i></b> cuando su navegador pida permisos.",
|
||||
"chromeGrantPermissions": "Seleccione <b><i>Permitir</i></b> cuando su navegador pida permisos.",
|
||||
"androidGrantPermissions": "Seleccione <b><i>Permitir</i></b> cuando su navegador pida permisos.",
|
||||
"firefoxGrantPermissions": "Seleccione <b><i>Compartir Dispositivo Seleccionado</i></b> cuando su navegador pida permisos.",
|
||||
"operaGrantPermissions": "Seleccione <b><i>Permitir</i></b> cuando su navegador pida permisos.",
|
||||
"iexplorerGrantPermissions": "Seleccione <b><i>OK</i></b> cuando su navegador pida permisos.",
|
||||
"safariGrantPermissions": "Seleccione <b><i>OK</i></b> cuando su navegador pida permisos.",
|
||||
"nwjsGrantPermissions": "Por favor, conceda permisos para utilizar su cámara y micrófono",
|
||||
"edgeGrantPermissions": "Seleccione <b><i>Sí</i></b> cuando su navegador pida permisos."
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"keyboardShortcuts": "Atajos de teclado",
|
||||
"raiseHand": "Levantar o bajar la mano",
|
||||
"pushToTalk": "Presione para hablar",
|
||||
"toggleScreensharing": "Cambiar entre cámara y compartir pantalla",
|
||||
"toggleFilmstrip": "Mostrar u ocultar videos",
|
||||
"toggleShortcuts": "Muestra u oculta este menú de ayuda",
|
||||
"focusLocal": "Centrarse en tu video",
|
||||
"focusRemote": "Centrarse en el video de otro participante",
|
||||
"toggleChat": "Abrir o cerrar panel de chat",
|
||||
"mute": "Activar o desactivar micrófono",
|
||||
"fullScreen": "Entrar / Salir de Pantalla completa",
|
||||
"videoMute": "Activar o desactivar tu cámara",
|
||||
"showSpeakerStats": "Mostrar estadísticas del locutor"
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "IR",
|
||||
"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 su navegador. Solo comparta el URL de su conferencia con otros para comenzar."
|
||||
"content": "No se requiere ninguna descarga. __app__ funciona directamente con su navegador. Sólo comparta la URL de su conferencia con otros para comenzar.",
|
||||
"title": "Sencillo de usar"
|
||||
},
|
||||
"feature2": {
|
||||
"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."
|
||||
"content": "Las Videoconferencias con múltiples participantes funcionan con tan solo 128 Kbps. Conferencias para compartir pantalla y sólo audio son posibles con mucho menos.",
|
||||
"title": "Bajo consumo de Ancho de Banda"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Código abierto",
|
||||
"content": "__app__ está licenciado bajo la Licencia Apache. Eres libre de descargar, usar, modificar, y compartirlo de acuerdo a esta licencia."
|
||||
"content": "__app__ está licenciado bajo la Licencia Apache. Eres libre de descargar, usar, modificar y compartirlo de acuerdo a esta licencia.",
|
||||
"title": "Código abierto"
|
||||
},
|
||||
"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 del 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.",
|
||||
"title": "Usuarios ilimitados"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Compartir pantalla",
|
||||
"content": "Es fácil compartir su pantalla con otros. __app__ es ideal para presentaciones en línea, conferencias y sesiones de soporte técnico."
|
||||
"content": "Es fácil compartir su pantalla con otros. __app__ es ideal para presentaciones en línea, conferencias y sesiones de soporte técnico.",
|
||||
"title": "Compartir pantalla"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Salas seguras",
|
||||
"content": "¿Necesita un poco de privacidad? Las salas de conferencias __app__ se pueden asegurar con una contraseña con el fin de excluir a los invitados no deseados y evitar interrupciones."
|
||||
"content": "¿Necesita un poco de privacidad? Las salas de conferencias __app__ se pueden asegurar con una contraseña con el fin de excluir a los invitados no deseados y evitar interrupciones.",
|
||||
"title": "Salas seguras"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Notas compartidas",
|
||||
"content": "__app__ incluye Etherpad, un editor de texto colaborativo, en tiempo real, que es genial para minutas de reuniones, redactar artículos, y más."
|
||||
"content": "__app__ incluye Etherpad, un editor de texto colaborativo, en tiempo real, que es genial para minutas de reuniones, redactar artículos, y más.",
|
||||
"title": "Notas compartidas"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Estadísticas de uso",
|
||||
"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."
|
||||
}
|
||||
"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.",
|
||||
"title": "Estadísticas de uso"
|
||||
},
|
||||
"go": "IR",
|
||||
"join": "UNIRSE",
|
||||
"privacy": "Privacidad",
|
||||
"roomname": "Introduzca un nombre de sala",
|
||||
"roomnamePlaceHolder": "Nombre de la sala",
|
||||
"sendFeedback": "Enviar comentarios",
|
||||
"terms": "Términos"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
"title": "__app__ requiere usar tu micrófono y cámara."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Volver"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Activar / Desactivar Silencio",
|
||||
"videomute": "",
|
||||
"videomute": "Iniciar / detener cámara",
|
||||
"authenticate": "Autenticar",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"lock": "Bloquear / desbloquear sala",
|
||||
"invite": "Compartir el enlace",
|
||||
"chat": "Abrir / cerrar sala de charla",
|
||||
"etherpad": "Abrir / Cerrar documento compartido",
|
||||
"sharedvideo": "Compartir un vídeo de YouTube",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sharescreen": "Iniciar / Detener pantalla compartida",
|
||||
"fullscreen": "Entrar / Salir de Pantalla completa",
|
||||
"sip": "Llamar a un número SIP",
|
||||
"Settings": "Ajustes",
|
||||
"hangup": "",
|
||||
"hangup": "Salir",
|
||||
"login": "Inicio de sesión",
|
||||
"logout": "Cerrar sesión",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "Su vídeo compartido ha sido silenciado<br/>para que pueda hablar con otros participantes.",
|
||||
"dialpad": "Abrir / Cerrar teclado de marcación.",
|
||||
"sharedVideoMutedPopup": "Se ha silenciado tu video compartido <br/>para poder hablar con los otros participantes.",
|
||||
"micMutedPopup": "Su micrófono ha sido silenciado para que<br/>pueda disfrutar completamente de su vídeo compartido.",
|
||||
"talkWhileMutedPopup": "",
|
||||
"talkWhileMutedPopup": "Tratas de hablar? Estás silenciado.",
|
||||
"unableToUnmutePopup": "No puede silenciar su micrófono mientras el vídeo compartido está activo.",
|
||||
"cameraDisabled": "Cámara no disponible",
|
||||
"micDisabled": "Micrófono no disponible",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
"filmstrip": "Mostrar / Ocultar videos",
|
||||
"profile": "Editar tu perfil",
|
||||
"raiseHand": "Levantar / Bajar tu mano"
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "o si ya la tiene<br /> <strong>entonces</strong>",
|
||||
"appNotInstalled": "Necesita <strong>__app__</strong> para unirse a la conversación en su móvil",
|
||||
"downloadApp": "Descargar la App",
|
||||
"joinConversation": "Unirse a la conversación",
|
||||
"startConference": "Iniciar una conferencia"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Abrir / cerrar sala de charlas",
|
||||
"filmstrip": "Mostrar / ocultar videos",
|
||||
"contactlist": ""
|
||||
"contactlist": "Ver e invitar participantes"
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -133,18 +161,16 @@
|
||||
"selectAudioOutput": "Salida de audio",
|
||||
"followMe": "Todos me siguen",
|
||||
"noDevice": "Ninguno",
|
||||
"noPermission": "Permiso para usar el dispositivo no permitido",
|
||||
"cameraAndMic": "Cámara y micrófono",
|
||||
"moderator": "MODERADOR",
|
||||
"password": "ESTABLECER CONTRASEÑA",
|
||||
"audioVideo": "AUDIO Y VIDEO",
|
||||
"setPasswordLabel": "Bloquear su cuarto con contraseña"
|
||||
"audioVideo": "AUDIO Y VIDEO"
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"title": "Perfil",
|
||||
"setDisplayNameLabel": "Establecer nombre a mostrar",
|
||||
"setEmailLabel": "Establecer su gravatar",
|
||||
"setEmailInput": ""
|
||||
"setEmailInput": "Introducir e-mail"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Presione para editar tu <br/>nombre",
|
||||
@@ -154,13 +180,15 @@
|
||||
"kick": "Expulsar",
|
||||
"muted": "Silenciado",
|
||||
"domute": "Silenciar",
|
||||
"flip": "Voltear"
|
||||
"flip": "Voltear",
|
||||
"remoteControl": "Control remoto"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"header": "Conexión de datos",
|
||||
"bitrate": "Tasa de bits:",
|
||||
"packetloss": "Pérdida de paquetes:",
|
||||
"resolution": "Resolución:",
|
||||
"framerate": "",
|
||||
"less": "Mostrar menos",
|
||||
"more": "Ver más",
|
||||
"address": "Dirección:",
|
||||
@@ -174,7 +202,8 @@
|
||||
"remoteaddress_plural": "Direcciones remotas:",
|
||||
"transport": "Transporte:",
|
||||
"bandwidth": "Ancho de banda estimado:",
|
||||
"na": "Una vez que se inicia la conferencia, volver aquí para ver información de la conexión"
|
||||
"na": "Una vez que se inicia la conferencia, volver aquí para ver información de la conexión",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "desconectado",
|
||||
@@ -190,31 +219,30 @@
|
||||
"mutedTitle": "¡Estás silenciado!",
|
||||
"raisedHand": "Desearía hablar."
|
||||
},
|
||||
"\u0005notify": {},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"add": "Añadir",
|
||||
"allow": "Permitir",
|
||||
"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": "",
|
||||
"passwordErrorTitle": "Error de contraseña",
|
||||
"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": "¡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": "",
|
||||
"incorrectPassword": "La contraseña es incorrecta",
|
||||
"connecting": "Conectando",
|
||||
"copy": "Copiar",
|
||||
"error": "Error",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"createPassword": "Crear una contraseña",
|
||||
"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": "",
|
||||
"conferenceReloadTitle": "Desafortunadamente, algo salió mal.",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectTitle": "Ha sido desconectado.",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"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.",
|
||||
@@ -226,14 +254,14 @@
|
||||
"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": "",
|
||||
"currentPassword": "La contraseña actual es ",
|
||||
"passwordLabel": "Contraseña",
|
||||
"defaultError": "Hubo algún tipo de error",
|
||||
"passwordRequired": "Se requiere una contraseña",
|
||||
"Ok": "Aceptar",
|
||||
"done": "",
|
||||
"done": "Ninguno",
|
||||
"Remove": "Eliminar",
|
||||
"removePassword": "",
|
||||
"removePassword": "Eliminar contraseña",
|
||||
"shareVideoTitle": "Compartir un vídeo",
|
||||
"shareVideoLinkError": "Por favor introduzca un enlace correcto de Youtube.",
|
||||
"removeSharedVideoTitle": "Eliminar video compartido",
|
||||
@@ -243,7 +271,7 @@
|
||||
"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": "",
|
||||
"Submit": "Enviar",
|
||||
"retry": "Reintentar",
|
||||
"logoutTitle": "Cerrar sesión",
|
||||
"logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?",
|
||||
@@ -254,11 +282,9 @@
|
||||
"Save": "Guardar",
|
||||
"recording": "Grabando",
|
||||
"recordingToken": "Introduzca el token de grabación",
|
||||
"Dial": "Marcar",
|
||||
"sipMsg": "Introduzca número SIP",
|
||||
"passwordCheck": "¿Realmente desea eliminar su contraseña?",
|
||||
"passwordMsg": "Indique una contraseña para bloquear su sala",
|
||||
"shareLink": "",
|
||||
"shareLink": "Compartir el enlace a la llamada",
|
||||
"settings1": "Configure su conferencia",
|
||||
"settings2": "Los participantes se unieron silenciados",
|
||||
"settings3": "Solicitar apodos<br/><br/>Establecer una contraseña para bloquear la sala:",
|
||||
@@ -274,11 +300,10 @@
|
||||
"token": "token",
|
||||
"tokenAuthFailedTitle": "Problema de autenticación",
|
||||
"tokenAuthFailed": "Lo siento, usted no tiene permiso para unirse a este llamada.",
|
||||
"displayNameRequired": "",
|
||||
"displayNameRequired": "Se requiere un nombre a mostrar",
|
||||
"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__!",
|
||||
@@ -291,7 +316,7 @@
|
||||
"stopLiveStreaming": "Parar retransmisión en directo",
|
||||
"stopRecording": "Parar grabación",
|
||||
"doNotShowWarningAgain": "No volver a mostrar esta advertencia",
|
||||
"doNotShowMessageAgain": "",
|
||||
"doNotShowMessageAgain": "No mostrar este mensaje de nuevo",
|
||||
"permissionDenied": "Permiso Denegado",
|
||||
"screenSharingPermissionDeniedError": "No ha otorgado permiso para compartir su pantalla.",
|
||||
"micErrorPresent": "Hubo un error conectando su micrófono.",
|
||||
@@ -310,10 +335,25 @@
|
||||
"goToStore": "Ir al webstore",
|
||||
"externalInstallationTitle": "Extensión requerida",
|
||||
"externalInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Silenciar"
|
||||
"inlineInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "¿Silenciar a este participante?",
|
||||
"muteParticipantBody": "No podrás activarles el sonido, pero ellos pueden activar su sonido en cualquier momento.",
|
||||
"muteParticipantButton": "Silenciar",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "__user__ ha rechazado tu solicitud de control remoto!",
|
||||
"remoteControlAllowedMessage": "__user__ ha aceptado tu solicitud de control remoto!",
|
||||
"remoteControlErrorMessage": "Ha ocurrido un error tratando de solicitar permiso de control remoto de __user__!",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "La sesión de control remoto ha finalizado!",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
"Esta conferencia está protegida con contraseña. Utiliza el siguiente pin cuando te unas:",
|
||||
@@ -359,7 +399,7 @@
|
||||
"on": "Grabando",
|
||||
"off": "Grabación detenida",
|
||||
"failedToStart": "No se pudo iniciar la grabación",
|
||||
"buttonTooltip": "",
|
||||
"buttonTooltip": "Iniciar / parar grabación",
|
||||
"error": "Falla de grabación. Vuelva a intentarlo.",
|
||||
"unavailable": "El servicio de grabación no está disponible. Inténtelo más tarde."
|
||||
},
|
||||
@@ -369,9 +409,76 @@
|
||||
"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": "",
|
||||
"buttonTooltip": "Iniciar / detener emisión en directo",
|
||||
"streamIdRequired": "Por favor introduzca el identificador de emisión para poder iniciar la emisión en directo",
|
||||
"streamIdHelp": "Donde encuentro esto?",
|
||||
"error": "Falló el video en vivo. Por favor, vuelva a intentarlo.",
|
||||
"busy": "Todos los grabadores están ocupados. Por favor intente más tarde."
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Nombre",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "Añadir una contraseña",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "Añadir una contraseña",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"\u0005invite": {},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Marcar",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Añadir",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -3,32 +3,38 @@
|
||||
"addParticipants": "Partager le lien",
|
||||
"roomLocked": "Les appelants doivent saisir un mot de passe",
|
||||
"roomUnlocked": "N'importe qui avec le lien peut rejoindre",
|
||||
"passwordSetRemotely": "défini par un quelqu'un d'autre",
|
||||
"passwordSetRemotely": "défini par un autre participant",
|
||||
"connectionsettings": "Paramètres de connexion",
|
||||
"poweredby": "Produit par",
|
||||
"feedback": "Donnez-nous votre avis",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Veuillez évaluer votre réunion.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Votre conférence est en cours de création...",
|
||||
"me": "moi",
|
||||
"speaker": "Haut-parleur",
|
||||
"raisedHand": "Aimerais prendre la parole",
|
||||
"raisedHand": "Aimerait prendre la parole",
|
||||
"defaultNickname": "ex. Jean Dupont",
|
||||
"defaultLink": "ex. __url__",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "Audio seulement",
|
||||
"featureToggleDisabled": "Le basculement de __feature__ est désactivé en mode audio uniquement",
|
||||
"howToDisable": "Le mode audio uniquement est actuellement activé. Cliquez sur le bouton audio uniquement dans la barre d'outils pour désactiver la fonction."
|
||||
"audioOnly": "Audio uniquement",
|
||||
"featureToggleDisabled": "Le basculement de __feature__ est désactivé en mode audio uniquement"
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"firefoxGrantPermissions": "Sélectionnez<b><i>Partager le périphérique sélectionné</i></b>lorsque votre navigateur demande des autorisations.",
|
||||
"operaGrantPermissions": "Sélectionner <b><i>Autoriser</i></b> Lorsque votre navigateur demande des autorisations.",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "Sélectionner <b><i>OK</i></b> quand le navigateur demande les permissions.",
|
||||
"react-nativeGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
|
||||
"chromeGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
|
||||
"androidGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
|
||||
"firefoxGrantPermissions": "Sélectionnez <b><i>Partager le périphérique sélectionné</i></b> lorsque votre navigateur demande des autorisations.",
|
||||
"operaGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
|
||||
"iexplorerGrantPermissions": "Sélectionnez <b><i>OK</i></b> quand le navigateur demande les permissions.",
|
||||
"safariGrantPermissions": "Sélectionnez <b><i>OK</i></b> quand le navigateur demande les permissions.",
|
||||
"nwjsGrantPermissions": "Merci d'autoriser le partage de votre camera et microphone",
|
||||
"edgeGrantPermissions": "Sélectionner <b><i>Oui</i></b> quand le navigateur demande les permissions."
|
||||
"edgeGrantPermissions": "Sélectionnez <b><i>Oui</i></b> quand le navigateur demande les permissions."
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Raccourcis clavier",
|
||||
@@ -92,11 +98,12 @@
|
||||
"title": " "
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "Votre vidéo-conférence a été arrêté parce que votre ordinateur s'est mis en veille.",
|
||||
"text": "Appuyez sur <i>Rejoindre</i> pour vous reconnecter à la conversation",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Rejoindre"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "Activer / Désactiver le mode audio uniquement (économiser de la bande passante)",
|
||||
"mute": "Muet / Actif",
|
||||
"videomute": "Démarrer / Arrêter la caméra",
|
||||
@@ -172,7 +179,7 @@
|
||||
"mute": "Un participant a coupé son micro",
|
||||
"kick": "Exclure",
|
||||
"muted": "Muet",
|
||||
"domute": "Vous ne pourrez plus réactiver leurs micros, mais ils peuvent l'activer par eux-même à tout moment.",
|
||||
"domute": "Couper le micro",
|
||||
"flip": "Contrôle à distance",
|
||||
"remoteControl": "Contrôle à distance"
|
||||
},
|
||||
@@ -195,7 +202,8 @@
|
||||
"remoteaddress_plural": "Adresses distantes :",
|
||||
"transport": "Transport :",
|
||||
"bandwidth": "Bande passante estimée :",
|
||||
"na": "Revenez ici pour afficher les informations de connexion une fois la conférence démarrée"
|
||||
"na": "Revenez ici pour afficher les informations de connexion une fois la conférence démarrée",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "déconnecté",
|
||||
@@ -273,8 +281,6 @@
|
||||
"Save": "Sauvegarder",
|
||||
"recording": "Enregistrement",
|
||||
"recordingToken": "Saisissez un jeton d'enregistrement",
|
||||
"Dial": "Composer",
|
||||
"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",
|
||||
"shareLink": "Partager le lien de la conférence",
|
||||
@@ -297,7 +303,6 @@
|
||||
"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> !",
|
||||
"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__ !",
|
||||
@@ -329,6 +334,8 @@
|
||||
"goToStore": "Aller sur le webstore",
|
||||
"externalInstallationTitle": "Extension requise : ",
|
||||
"externalInstallationMsg": "Vous devez installer notre extension de partage de bureau.",
|
||||
"inlineInstallationMsg": "Vous devez installer notre extension de partage de bureau.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "Couper le micro de ce participant?",
|
||||
"muteParticipantBody": "Vous ne pourrez plus réactiver leurs micros, mais ils peuvent l'activer par eux-même à tout moment.",
|
||||
"muteParticipantButton": "Couper le micro",
|
||||
@@ -338,6 +345,7 @@
|
||||
"remoteControlDeniedMessage": "__user__ a refusé votre demande de prise en main à distance!",
|
||||
"remoteControlAllowedMessage": "Une erreur s'est produite lors de la demande d’autorisation de prise en main à distance avec __user__!",
|
||||
"remoteControlErrorMessage": "Une erreur s'est produite lors de la demande d’autorisation de prise en main à distance avec __user__!",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "La prise en main à distance est terminée!",
|
||||
"close": "Fermer",
|
||||
"shareYourScreen": "Partagez votre écran",
|
||||
@@ -422,15 +430,52 @@
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "Ajouter un mot de passe",
|
||||
"dialInNumbers": "Numéros de téléphone à composer",
|
||||
"errorFetchingNumbers": "Échec d'obtention des numéros",
|
||||
"callNumber": "Appeler le __number__",
|
||||
"enterID": "Saisissez l'identifiant: __conferenceID__ suivi de # pour rejoindre avec un téléphone",
|
||||
"howToDialIn": "Pour rejoindre avec un téléphone, utilisez un des des numéros suivants et l'identifiant de la conférence",
|
||||
"hidePassword": "Cacher le mot de passe",
|
||||
"inviteTo": "inviter des participants à __conferenceName__",
|
||||
"loadingNumbers": "Chargement…",
|
||||
"invitedYouTo": "__userName__ vous a invité(e) à la conférence __inviteURL__",
|
||||
"locked": "Cet appel est verrouillé. les nouveaux interlocuteurs devraient avoir le lien et saisir le mot de passe pour rejoindre.",
|
||||
"noNumbers": "Aucun numéro disponible",
|
||||
"numbersDisabled": "La numérotation a été désactivée",
|
||||
"showPassword": "Afficher le mot de passe",
|
||||
"unlocked": "Cet appel est verrouillé. Tout nouveau participant avec un lien peut rejoindre l'appel."
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "HD",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "SD",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Composer",
|
||||
"dialOut": "Appeler un numéro de téléphone",
|
||||
"statusMessage": "est maintenant __status__",
|
||||
"enterPhone": "Saisissez un numéro de téléphone",
|
||||
"phoneNotAllowed": "Désolé, nous ne supportons pas encore cette destination!"
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Ajouter",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"contactlist": "Մասնակիցներ (__pcount__)",
|
||||
"addParticipants": "Կիսվել URL -ով",
|
||||
"roomLocked": "Զանգողները պետք է ներմուծեն գաղտնաբառը",
|
||||
"roomUnlocked": "Յուրաքանչյուրը ով ունի URL կարող է միանալ",
|
||||
"passwordSetRemotely": "Սահմանվել է մեկ այլ մասնակցի կողմից",
|
||||
"connectionsettings": "Միացման կարգավորումներ",
|
||||
"poweredby": "Հիմնված է",
|
||||
"feedback": "Հայտնեք ձեր կարծիքը",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Խնդրում ենք ներկայացրեք Ձեր հանդիպման փորձը",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Ձեր կոնֆերանսը այժմ ստեղծվում է...",
|
||||
"me": "ես",
|
||||
"speaker": "Հռետոր",
|
||||
@@ -14,106 +21,127 @@
|
||||
"defaultNickname": "օրինակ՝ Պողոս Պողոսյան",
|
||||
"defaultLink": "օրինակ՝ __url__",
|
||||
"callingName": "__անուն__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"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": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ"
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"firefoxGrantPermissions": "",
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"keyboardShortcuts": "Ստեղնաշարի դյուրանցումներ (shortcuts)",
|
||||
"raiseHand": "Բարձրացնել կամ իջեցնել ձեր ձեռքը",
|
||||
"pushToTalk": "Սեղմեք խոսելու համար",
|
||||
"toggleScreensharing": "Անցնել ֆոտոխցիկի և էկրանի փոխանակման միջև",
|
||||
"toggleFilmstrip": "Ցույց տալ կամ թաքցնել տեսանյութերը",
|
||||
"toggleShortcuts": "Ցույց տալ կամ թաքցնել այս օգնության մենյուն",
|
||||
"focusLocal": "Կենտրոնանալ Ձեր տեսանյութի վրա",
|
||||
"focusRemote": "Կենտրոնանալ մյուս մասնակցի տեսանյութի վրա",
|
||||
"toggleChat": "Բացել կամ փակել չատի պանելը",
|
||||
"mute": "Անջատել կամ միացնել խոսափողը",
|
||||
"fullScreen": "Ամբողջ Էկրանի ռեժիմը միացնել/անջատել",
|
||||
"videoMute": "Անջատել կամ միացնել տեսախցիկը",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "ՄՈՒՏՔ",
|
||||
"roomname": "Մուտքագրեք սենյակի անունը",
|
||||
"disable": "Այլևս ցույց չտալ այս էջը",
|
||||
"feature1": {
|
||||
"title": "Հեշտ է օգտվել",
|
||||
"content": "Ոչ մի լրացուցիչ ներբեռնումներ: __apple__ աշխատում է անմիջապես Ձեր բրաուզերում: Պարզապես հայտնեք ձեր կոնֆերանսի URL հասցեն ուրիշներին և դուք կապի մեջ էք:"
|
||||
"content": "Ոչ մի լրացուցիչ ներբեռնումներ: __apple__ աշխատում է անմիջապես Ձեր բրաուզերում: Պարզապես հայտնեք ձեր կոնֆերանսի URL հասցեն ուրիշներին և դուք կապի մեջ էք:",
|
||||
"title": "Հեշտ է օգտվել"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Պետք չէ արագ կապ",
|
||||
"content": "Բազմամասնակից վիդեո կոնֆերանսները աշխատում են ընդամենը 128 Կբ/վ թողունակությամբ: Իսկ միայն ձայնի կամ էկրանի ցուցադրման դեպքում՝ ավելի քիչ:"
|
||||
"content": "Բազմամասնակից վիդեո կոնֆերանսները աշխատում են ընդամենը 128 Կբ/վ թողունակությամբ: Իսկ միայն ձայնի կամ էկրանի ցուցադրման դեպքում՝ ավելի քիչ:",
|
||||
"title": "Պետք չէ արագ կապ"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Բաց կոդ",
|
||||
"content": "_app_ լիցենզավորված է Apache լիցենզիայով: Կարող էք ազատորեն ներբեռնել, օգտագործել, ձևափոխել և կիսվել դրանով այդ լիցենզիայի համապատասխան:"
|
||||
"content": "_app_ լիցենզավորված է Apache լիցենզիայով: Կարող էք ազատորեն ներբեռնել, օգտագործել, ձևափոխել և կիսվել դրանով այդ լիցենզիայի համապատասխան:",
|
||||
"title": "Բաց կոդ"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Օգտվողների թիվը սահմանափակ չէ",
|
||||
"content": "Չկան արհեստական սահմանափակումներ օգտագործողների կամ կոնֆերանսի մասնակիցների թվի համար: Սահմանափակող գործոնները՝ միայն սերվերի հզորությունն ու թողունակությունն են:"
|
||||
"content": "Չկան արհեստական սահմանափակումներ օգտագործողների կամ կոնֆերանսի մասնակիցների թվի համար: Սահմանափակող գործոնները՝ միայն սերվերի հզորությունն ու թողունակությունն են:",
|
||||
"title": "Օգտվողների թիվը սահմանափակ չէ"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Էկրանի ցուցադրում",
|
||||
"content": "Շատ հեշտ է ցուցադրել Ձեր էկրանը ուրիշներին: __app__ իդեալական է օնլայն ներկայացումների, դասախոսությունների և տեխնիկական սպասարկման համար:"
|
||||
"content": "Շատ հեշտ է ցուցադրել Ձեր էկրանը ուրիշներին: __app__ իդեալական է օնլայն ներկայացումների, դասախոսությունների և տեխնիկական սպասարկման համար:",
|
||||
"title": "Էկրանի ցուցադրում"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Փակ սենյակներ",
|
||||
"content": "Պե՞տք է առանձնանալ: __app__ կոնֆերանսում կարող էք փակվել սենյակը գաղտնաբառով, որպեսզի անսպասելի հյուրեր կամ ընդհատումներ չունենաք:"
|
||||
"content": "Պե՞տք է առանձնանալ: __app__ կոնֆերանսում կարող էք փակվել սենյակը գաղտնաբառով, որպեսզի անսպասելի հյուրեր կամ ընդհատումներ չունենաք:",
|
||||
"title": "Փակ սենյակներ"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Համատեղ նշումներ",
|
||||
"content": "Շնորհիվ __app__ -ում ընդգրկված Etherpad տեքստային խմբագրի, իրական ժամանակում կարող էք համատեղ նշումներ կատարել, ինչը շատ հարմար է հանդիպումն արձանագրելու, հոդվածներ գրելու և այլ նպատակների համար:"
|
||||
"content": "Շնորհիվ __app__ -ում ընդգրկված Etherpad տեքստային խմբագրի, իրական ժամանակում կարող էք համատեղ նշումներ կատարել, ինչը շատ հարմար է հանդիպումն արձանագրելու, հոդվածներ գրելու և այլ նպատակների համար:",
|
||||
"title": "Համատեղ նշումներ"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Օգտագործման վիճակագրություն",
|
||||
"content": "Օգտագործման վիճակագրություն կարելի է ստանալ հեշտ ինտեգրվող Piwik, Google Analytics կամ այլ մոնիտորինգի համակարգերի միջոցով:"
|
||||
}
|
||||
"content": "Օգտագործման վիճակագրություն կարելի է ստանալ հեշտ ինտեգրվող Piwik, Google Analytics կամ այլ մոնիտորինգի համակարգերի միջոցով:",
|
||||
"title": "Օգտագործման վիճակագրություն"
|
||||
},
|
||||
"go": "ՄՈՒՏՔ",
|
||||
"join": "Միանալ",
|
||||
"privacy": "Գաղտնիություն",
|
||||
"roomname": "Մուտքագրեք սենյակի անունը",
|
||||
"roomnamePlaceHolder": "սենյակի անուն",
|
||||
"sendFeedback": "Ուղարկել կարծիք",
|
||||
"terms": "Տերմիններ"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
"title": "__app__ ցանկանում է օգտագործել Ձեր խոսափողը և տեսախցիկը."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Միանալ կրկին"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Ձայնը Միացնել/Անջատել ",
|
||||
"videomute": "",
|
||||
"videomute": "Տեսախցիկը Միացնել/Անջատել",
|
||||
"authenticate": "Վավերացում",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"lock": "Փակել/բացել սենյակը",
|
||||
"invite": "Կիսվել URL -ով",
|
||||
"chat": "Բացել/փակել չատը",
|
||||
"etherpad": "Բացել/փակել տարածված փաստաթուղթը",
|
||||
"sharedvideo": "Կիսվել YouTube-ի նյութով",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"sharescreen": "Միացնել/ անջատել էկրանի տարածումը",
|
||||
"fullscreen": "Ամբողջ Էկրանի ռեժիմը միացնել/անջատել",
|
||||
"sip": "Զանգել SIP համարով",
|
||||
"Settings": "Կարգավորումներ",
|
||||
"hangup": "",
|
||||
"hangup": "Դուրս գալ",
|
||||
"login": "Մուտք",
|
||||
"logout": "Ելք",
|
||||
"dialpad": "",
|
||||
"dialpad": "Բացել/փակել զանգի պատուհանը",
|
||||
"sharedVideoMutedPopup": "Ձեր ցուցադրված տեսանյութի ձայնը անջատված է, այնպես որ <br />, կարող եք խոսել մյուս մասնակիցների հետ:",
|
||||
"micMutedPopup": "Ձեր խոսափողը անջատված է՝<br/> կարող եք լիովին վայելել ձեր ցուցադրված տեսանյութը:",
|
||||
"talkWhileMutedPopup": "",
|
||||
"talkWhileMutedPopup": "Փորձու՞մ եք խոսել: Ձեր ձայնը անջատված է:",
|
||||
"unableToUnmutePopup": "Դուք չեք կարող միացնել ձայնը, քանի դեռ միանցված է ցուցադրվող տեսանյութը:",
|
||||
"cameraDisabled": "Տեսախցիկը հասանելի չէ",
|
||||
"micDisabled": "Խոսափողը հասանելի չէ",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
"filmstrip": "Ցույց տալ/թաքցնել տեսանյութները",
|
||||
"profile": "Փոխել քո Էջը",
|
||||
"raiseHand": "Բարձրացնել կամ իջեցնել քո ձեռքը"
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "կամ եթե դուք արդեն ունեք դա<br /><strong>ապա</strong>",
|
||||
"appNotInstalled": "Ձեզ պետք է <strong>__app__</strong> այս հանդիպմանը Ձեր հեռախոսից միանալու համար:",
|
||||
"downloadApp": "Բեռնել հավելվածը",
|
||||
"joinConversation": "Միանալ հանդիպմանը",
|
||||
"startConference": "Սկսել հանդիպումը"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Բացել/փակել չատը",
|
||||
"filmstrip": "Ցույց տալ/թաքցնել տեսանյութները",
|
||||
"contactlist": ""
|
||||
"contactlist": "Դիտել և հրավիրել մասնակիցների"
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -133,18 +161,16 @@
|
||||
"selectAudioOutput": "Ձայնային ելք",
|
||||
"followMe": "Բոլորը հետևում են ինձ",
|
||||
"noDevice": "Ոչինչ",
|
||||
"noPermission": "Սարքը օգտագործելու թույլտվությունը տրված չէ",
|
||||
"cameraAndMic": "Տեսախցիկ և խոսափող",
|
||||
"moderator": "MODERATOR",
|
||||
"password": "Դնել գաղտնաբառ",
|
||||
"audioVideo": "ձայն և տեսանյութ",
|
||||
"setPasswordLabel": "Փակել սենյակը գաղտնաբառով"
|
||||
"audioVideo": "ձայն և տեսանյութ"
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"title": "Պրոֆայլ",
|
||||
"setDisplayNameLabel": "Դնել Ձեր երևացող անունը",
|
||||
"setEmailLabel": "Սահմանեք Ձեր gravatar էլ.փոստը",
|
||||
"setEmailInput": ""
|
||||
"setEmailInput": "Մուտքագրեք էլ.հասցե"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Սեղմեք Ձեր անունը <br/>փոխելու համար",
|
||||
@@ -154,13 +180,15 @@
|
||||
"kick": "Դուրս հանել",
|
||||
"muted": "Ձայնը անջատված է",
|
||||
"domute": "Անջատել ձայնը",
|
||||
"flip": "Շրջել"
|
||||
"flip": "Շրջել",
|
||||
"remoteControl": "հեռահար կառավարում"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"header": "Կապի տվյալներ",
|
||||
"bitrate": "Բիթրեյթ",
|
||||
"packetloss": "Փաթեթների կորուստ՝",
|
||||
"resolution": "Որակ՝",
|
||||
"framerate": "",
|
||||
"less": "Ցույց տալ ավելի քիչ",
|
||||
"more": "Ցույց տալ ավելի շատ",
|
||||
"address": "Հասցե՝",
|
||||
@@ -170,7 +198,8 @@
|
||||
"remoteaddress": "Հեռակա հասցե՝Հեռակա հասցեներ՝",
|
||||
"transport": "Տրանսպորտ՝",
|
||||
"bandwidth": "Մոտավոր թողունակություն՝",
|
||||
"na": "Միացման տվյալները հասանելի կլինեն այստեղ կոնֆերանսի մեկնարկից հետո:"
|
||||
"na": "Միացման տվյալները հասանելի կլինեն այստեղ կոնֆերանսի մեկնարկից հետո:",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "անջատված է",
|
||||
@@ -181,27 +210,26 @@
|
||||
"focus": "Կոնֆերանսի կենտրոնացումը",
|
||||
"focusFail": "__component__ հասանելի չէ - փորձեք կրկին __ms__ վայրկյանից",
|
||||
"grantedTo": "Կարգավորիչի իրավունքները տրամադրված է __to__-ին",
|
||||
"grantedToUnknown": "Կարգավորիչի իրավունքները տրամադրված է $t(somebody)! -ին",
|
||||
"grantedToUnknown": "",
|
||||
"muted": "Դուք խոսակցությունը սկսեցիք անջատած ձայնով:",
|
||||
"mutedTitle": "Ձեր ձայնը անջատվա'ծ է",
|
||||
"raisedHand": "Ցանկանում է խոսել"
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"add": "Ավելացնել",
|
||||
"allow": "",
|
||||
"kickMessage": "Վա՜յ: Ձեզ դուրս հանեցին հանդիպումից:",
|
||||
"popupError": "Ձեր բրաուզերը արգելափակել է թռուցիկ(popup) պատուհանները այս կայքում: Խնդրում ենք միացրեք թռուցիկները Ձեր բրաուզերի անվտանգության կարգավորումներում և կրկին փորձեք:",
|
||||
"passwordErrorTitle": "",
|
||||
"passwordErrorTitle": "Գաղտնաբառի սխալ",
|
||||
"passwordError": "Այս խոսակցությունը այս պահին պաշտպանված է գաղտնաբառով:Միայն կոնֆերանսի սեփականատերը կարող է սահմանել գաղտնաբառ:",
|
||||
"passwordError2": "Այս խոսակցությունը այս պահին պաշտպանված չէ գաղտնաբառով:Միայն կոնֆերանսի սեփականատերը կարող է սահմանել գաղտնաբառ:",
|
||||
"connectError": "Ու՜պս! Ինչոր բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին:",
|
||||
"connectErrorWithMsg": "Ու՜պս! Ինչոր բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին: __msg__",
|
||||
"incorrectPassword": "",
|
||||
"incorrectPassword": "Գաղտնաբառը սխալ է",
|
||||
"connecting": "Միանում է...",
|
||||
"copy": "Պատճենել",
|
||||
"error": "Սխալ",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"createPassword": "Ստեղծել գաղտնաբառ։",
|
||||
"detectext": "Սխալ, երբ փորձում է հայտնաբերել էկրանի ցուցադրման ընդլայնումը:",
|
||||
"failtoinstall": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը",
|
||||
"failedpermissions": "Չհաջողվեց ստանալ թույլտվություն օգտագործելու տեղի խոսափողը և/ կամ տեսախցիկը:",
|
||||
@@ -209,8 +237,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "Մասնակիցների առավելագույն թիվը արդեն լրացել է: Մասնակիցները արդեն հավաքվել են: Խնդրում ենք փորձեք ավելի ուշ:",
|
||||
"lockTitle": "Փակումը ձախողվեց",
|
||||
"lockMessage": "Ձախողվեց արգելափակել կոնֆերանսը:",
|
||||
@@ -221,15 +248,15 @@
|
||||
"unableToSwitch": "Անհնար է անցնել վիդեո հոսքին:",
|
||||
"SLDFailure": "Ու՜պս: Ինչ-որ բան գնաց սխալ, և մենք չկարողացանք անջատել ձայնը (SLD Failure)",
|
||||
"SRDFailure": "Ու՜պս: Ինչ-որ բան գնաց սխալ, և մենք չկարողացանք անջատել տեսահոսքը (SRD Failure)",
|
||||
"oops": "Ու՜պս:",
|
||||
"currentPassword": "",
|
||||
"passwordLabel": "",
|
||||
"oops": "Գաղտնաբառ",
|
||||
"currentPassword": "Վերջին գաղտնաբառն է",
|
||||
"passwordLabel": "Գաղտնաբառ",
|
||||
"defaultError": "Առկա էր որոշակի սխալ",
|
||||
"passwordRequired": "Պահանջվում է գաղտնաբառ",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"done": "Կատարված է",
|
||||
"Remove": "Հեռացնել",
|
||||
"removePassword": "",
|
||||
"removePassword": "Ջնջել գաղտնաբառը",
|
||||
"shareVideoTitle": "Տարածել տեսանյութը",
|
||||
"shareVideoLinkError": "Խնդրում ենք ներկայացնել ճիշտ Youtube հղում:",
|
||||
"removeSharedVideoTitle": "Հեռացնել տարածված տեսանյութը",
|
||||
@@ -239,7 +266,7 @@
|
||||
"WaitForHostMsg": "Կոնֆերանսը <b> __ root__ </ b> դեռ չի սկսվել. Եթե դուք են հյուրընկալող եք ապա խնդրում ենք հաստատել իսկությունը: Հակառակ դեպքում, խնդրում ենք սպասել հյուրընկալող կժամանի.",
|
||||
"IamHost": "Ես եմ ընդունողը",
|
||||
"Cancel": "Չեղարկել",
|
||||
"Submit": "",
|
||||
"Submit": "Ներմուծել",
|
||||
"retry": "Կրկին փորձել",
|
||||
"logoutTitle": "Ելք",
|
||||
"logoutQuestion": "Համոզված եք, որ ցանկանում եք դուրս գալ, եւ դադարեցնել կոնֆերանսը:",
|
||||
@@ -250,11 +277,9 @@
|
||||
"Save": "Պահպանել",
|
||||
"recording": "Գրանցում",
|
||||
"recordingToken": "Մուտքագրեք ձայնագրման կոդանշանը",
|
||||
"Dial": "Զանգ",
|
||||
"sipMsg": "Նշեք SIP համարը",
|
||||
"passwordCheck": "Դուք վստա՞հ էք որ ցանկանում էք ջնջել Ձեր գաղտնաբառը։",
|
||||
"passwordMsg": "Սահմանել գաղտնաբառ ձեր սենյակը կողպելու համար",
|
||||
"shareLink": "",
|
||||
"shareLink": "Տարածեք URL -ը որպեսզի զանգեք",
|
||||
"settings1": "Կարգավորել Ձեր կոնֆերանսը",
|
||||
"settings2": "Մասնակիցները միացան անջատվախ ձայնով",
|
||||
"settings3": "Պահանջվում է մականունը<br/><br/>Դրեք գաղտնաբառ Ձեր սենյակը արգելափակելու համար",
|
||||
@@ -270,11 +295,10 @@
|
||||
"token": "սիմվոլ",
|
||||
"tokenAuthFailedTitle": "Վավերացումը չի ստացվել",
|
||||
"tokenAuthFailed": "Ներողություն,Դուք ընդունված չեք այս զանգին միանալու համար",
|
||||
"displayNameRequired": "",
|
||||
"displayNameRequired": "Ցուցադրվող անունը պարտադիր է",
|
||||
"enterDisplayName": "Խնդրում ենք մուտքագրել Ձեր ցուցադրման անունը",
|
||||
"extensionRequired": "Ընդլայնում է պահանջվում:",
|
||||
"firefoxExtensionPrompt": "Դուք պետք է տեղադրեք Firefox ընդլայնում, որպեսզի օգտագործել էկրանի փոխանակման ռեժիմը: Խնդրում ենք փորձեք կրկին՝ այն <a href='__url__'> այստեղից ձեռք բերելուց հետո</a>:",
|
||||
"rateExperience": "Խնդրում ենք ներկայացրեք Ձեր հանդիպման փորձը",
|
||||
"feedbackHelp": "Ձեր կարծիքը կօգնի մեզ բարելավել ձեր տեսափորձը",
|
||||
"feedbackQuestion": "Պատմեք մեզ Ձեր զանգի մասին",
|
||||
"thankYou": "Շնորհակալություն __appName__ -ից օգտվելու համար:",
|
||||
@@ -287,7 +311,7 @@
|
||||
"stopLiveStreaming": "Կանգնացնել ուղիղ հեռարձակումը:",
|
||||
"stopRecording": "Կանգնացնել ձայնագրումը",
|
||||
"doNotShowWarningAgain": "Այլևս ցույց չտալ այս նախազգուշական էջը",
|
||||
"doNotShowMessageAgain": "",
|
||||
"doNotShowMessageAgain": "Այլևս ցույց չտալ այս հաղորդագրությունը",
|
||||
"permissionDenied": "Թույլատվությունը արգելված է",
|
||||
"screenSharingPermissionDeniedError": "Դուք չունեք թույլտվություն կիսվել Ձեր էկրանով",
|
||||
"micErrorPresent": "Տեղի է ունեցել սխալ Ձեր խոսափողին միանալիս",
|
||||
@@ -296,19 +320,33 @@
|
||||
"cameraUnknownError": "Չի կարող օգտագործվել տեսախցիկը անհայտ պատճառով",
|
||||
"cameraPermissionDeniedError": "Ձեզ թույլտվրված չէ օգտագործել Ձեր տեսախցիկը: Դուք կարող եք միացած մնալ համաժողովին, սակայն մյուսները չեն տեսնի ձեզ. Օգտագործեք տեսախցիկի կոճակը խնդիրը կարգավորելու համար",
|
||||
"cameraNotFoundError": "Տեսախցիկ չի գտնվել",
|
||||
"cameraConstraintFailedError": "Ձեր տեսախցիկը չի համապատասխանում որոշ խոչընդոտների",
|
||||
"cameraConstraintFailedError": "",
|
||||
"micUnknownError": "Չի կարող օգտագործվել տեսախցիկը անհայտ պատճառով",
|
||||
"micPermissionDeniedError": "Ձեզ թույլտվրված չէ օգտագործել Ձեր խոսափողը: Դուք կարող եք միացած մնալ համաժողովին, սակայն մյուսները չեն լսի ձեզ. Օգտագործեք խոսափողի կոճակը խնդիրը կարգավորելու համար",
|
||||
"micNotFoundError": "Խոսափող չի գտնվել",
|
||||
"micConstraintFailedError": "Ձեր խոսափողը չի բավարարել պահանջվող խոչընդոտներից մի քանիսը ",
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "Մենք չեն կարողանում միանալ Ձեր խոսափողին: Խնդրում ենք ընտրել մեկ այլ սարք կարգավորումների ցանկից կամ փորձեք վերսկսել ծրագիրը",
|
||||
"cameraNotSendingData": "Մենք չեն կարողանում միանալ Ձեր տեսախցիկին: Խնդրում ենք ստուգեք թե արդյոք մեկ ուրիշ սարք չի օգտագործում այն կամ ընտրեք մեկ այլ սարք կարգավորումների ցանկից կամ փորձեք վերսկսել ծրագիրը:",
|
||||
"goToStore": "Գնալ դեպի վեբ խանութ",
|
||||
"externalInstallationTitle": "Ընդլայնում է պահանջվում:",
|
||||
"externalInstallationMsg": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Անջատել ձայնը"
|
||||
"inlineInstallationMsg": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "Անջատե՞լ այս մասնակցի ձայնը:",
|
||||
"muteParticipantBody": "Դուք չեք կարող անջատել նրանց ձայնը, բայց նրանք կարող են անջատել իրենց ձայնը ամեն ժամանակ:",
|
||||
"muteParticipantButton": "Անջատել ձայնը",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "__user__ մերժել է Ձեր հեռահար կառավարման հրավերը",
|
||||
"remoteControlAllowedMessage": "__user__ ընդունել է Ձեր հեռահար կառավարման հրավերը",
|
||||
"remoteControlErrorMessage": "Որոշակի սխալ է տեղի ունեցել հեռահար կառավարման հրավերը ընդունելու ժամանակ __user__ -ից",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "հեռահար կառավարման ընթացքը ավարտվեց",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -351,7 +389,7 @@
|
||||
"on": "Գրանցում",
|
||||
"off": "Ձայնագրությունը կանգնացված է",
|
||||
"failedToStart": "Ձայնագրությունը ստացվեց սկսել",
|
||||
"buttonTooltip": "",
|
||||
"buttonTooltip": "Սկսել / կանգնացնել ձայնագրությունը",
|
||||
"error": "Ձայնագրությյունը չստացվեց: Փորձեք կրկին",
|
||||
"unavailable": "Ձայնագրության ծառայությունը ներկայումս անհասանելի է: Խնդրում եմ փորձեք մի փոքր ուշ:"
|
||||
},
|
||||
@@ -361,9 +399,75 @@
|
||||
"off": "Ուղիղ Հեռարձակումը կանգնեցված է",
|
||||
"unavailable": "Ուղիղ հեռարձակման ծառայությունը ներկայումս հասանելի չէ: Խնդրում եք փորձեք ավելի ուշ:",
|
||||
"failedToStart": "Ուղիղ հեռարձակումը չստացվեց սկսել",
|
||||
"buttonTooltip": "",
|
||||
"buttonTooltip": "Սկսել / կանգնեցնել ուղիղ հեռարձակումը",
|
||||
"streamIdRequired": "Խնդրում ենք լրացնել հոսքի ID-ն, որպեսզի կսկսի հեռարձակումը:",
|
||||
"streamIdHelp": "Ո՞րտեղից կարող եմ գտնել սա:",
|
||||
"error": "Ուղիղ հեռարձակումը չստացվեց: Փորձեք կրկին",
|
||||
"busy": "Բոլոր ձայնագրիչները ներկայումս զբաղված են: Խնդրում ենք փորձեք մի փոքր ուշ:"
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Անուն",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Զանգ",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Ավելացնել",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,14 +6,25 @@
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Impostazioni Connessione",
|
||||
"poweredby": "powered by",
|
||||
"feedback": "",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "La tua conferenza sta per essere creata...",
|
||||
"me": "io",
|
||||
"speaker": "Relatore",
|
||||
"raisedHand": "",
|
||||
"raisedHand": "Vorrei intervenire",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "es. __url__",
|
||||
"callingName": "",
|
||||
"audioOnly": {
|
||||
"audioOnly": "Solo audio",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,7 +33,8 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
@@ -35,45 +47,52 @@
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"fullScreen": "Entra / Esci da schermo intero",
|
||||
"videoMute": "",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"\u0005keyboardShortcuts": {},
|
||||
"welcomepage": {
|
||||
"go": "VAI",
|
||||
"roomname": "Inserisci Nome Stanza",
|
||||
"disable": "",
|
||||
"feature1": {
|
||||
"title": "Semplice da usare",
|
||||
"content": "Nessun download richiesto. __app__ funziona direttamente nel tuo browser. Condividi semplicemente l'URL della tua conferenza con altri per iniziare."
|
||||
"content": "Nessun download richiesto. __app__ funziona direttamente nel tuo browser. Condividi semplicemente l'URL della tua conferenza con altri per iniziare.",
|
||||
"title": "Semplice da usare"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Poca banda",
|
||||
"content": "Conferenze video multi utente funzionano con appena 128Kbps. La condivisione dello schermo ed conferenze solo audio sono possibili con molto meno."
|
||||
"content": "Conferenze video multi utente funzionano con appena 128Kbps. La condivisione dello schermo ed conferenze solo audio sono possibili con molto meno.",
|
||||
"title": "Poca banda"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Open source",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": "Open source"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Utenti illimitati",
|
||||
"content": "Non ci sono restrizioni sul numero di utenti per una conferenza. La potenza del server e la banda a disposizione sono gli unici fattori limitanti."
|
||||
"content": "Non ci sono restrizioni sul numero di utenti per una conferenza. La potenza del server e la banda a disposizione sono gli unici fattori limitanti.",
|
||||
"title": "Utenti illimitati"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Condivisione Schermo",
|
||||
"content": "è facile condividere il tuo schermo con altri. __app__ è l'ideale per presentazioni online, letture, e sessioni di supporto tecnico."
|
||||
"content": "è facile condividere il tuo schermo con altri. __app__ è l'ideale per presentazioni online, letture, e sessioni di supporto tecnico.",
|
||||
"title": "Condivisione Schermo"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Stanze sicure",
|
||||
"content": "Hai bisogno di più privacy? Le conferenze di __app__ possono essere rese sicure con una password per escludere ospiti non desiderati e prevenire interruzioni."
|
||||
"content": "Hai bisogno di più privacy? Le conferenze di __app__ possono essere rese sicure con una password per escludere ospiti non desiderati e prevenire interruzioni.",
|
||||
"title": "Stanze sicure"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Note condivise",
|
||||
"content": "__app__ utilizza Etherpad, un editor di testo real-time e collaborativo che è ottimo per meeting, scrivere articoli e tanto altro."
|
||||
"content": "__app__ utilizza Etherpad, un editor di testo real-time e collaborativo che è ottimo per meeting, scrivere articoli e tanto altro.",
|
||||
"title": "Note condivise"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Statistiche di utilizzo",
|
||||
"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."
|
||||
}
|
||||
"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.",
|
||||
"title": "Statistiche di utilizzo"
|
||||
},
|
||||
"go": "VAI",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "Inserisci Nome Stanza",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
@@ -81,19 +100,22 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Microfono Attiva / Disattiva",
|
||||
"videomute": "",
|
||||
"videomute": "Abilita / Disabilita video",
|
||||
"authenticate": "Autenticazione",
|
||||
"lock": "",
|
||||
"lock": "Blocca / Sblocca Stanza",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"chat": "Apri / Chiudi chat",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"fullscreen": "Entra / Esci da schermo intero",
|
||||
"sip": "Chiama numero SIP",
|
||||
"Settings": "Impostazioni",
|
||||
"hangup": "",
|
||||
@@ -110,6 +132,14 @@
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"\u0005toolbar": {},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Apri / Chiudi chat",
|
||||
"filmstrip": "",
|
||||
@@ -133,12 +163,10 @@
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"audioVideo": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
@@ -149,18 +177,21 @@
|
||||
"videothumbnail": {
|
||||
"editnickname": "Clicca per modificare il tuo<br/>nome visualizzato",
|
||||
"moderator": "Il proprietario<br/>della conferenza",
|
||||
"videomute": "",
|
||||
"videomute": "Il partecipante ha<br/>fermato il video.",
|
||||
"mute": "Il partecipante è in muto",
|
||||
"kick": "Espelli",
|
||||
"muted": "Audio disattivato",
|
||||
"domute": "Disattiva audio",
|
||||
"flip": ""
|
||||
"flip": "",
|
||||
"remoteControl": ""
|
||||
},
|
||||
"\u0005videothumbnail": {},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Bitrate:",
|
||||
"packetloss": "Perdita pacchetti:",
|
||||
"resolution": "Risoluzione:",
|
||||
"framerate": "",
|
||||
"less": "Mostra meno",
|
||||
"more": "Mostra di più",
|
||||
"address": "Indirizzo:",
|
||||
@@ -174,7 +205,8 @@
|
||||
"remoteaddress_plural": "Indirizzi remoti:",
|
||||
"transport": "Trasporto:",
|
||||
"bandwidth": "Banda stimata:",
|
||||
"na": "Ritorna qui per informazioni sulla connessione una volta che la conferenza inizia"
|
||||
"na": "Ritorna qui per informazioni sulla connessione una volta che la conferenza inizia",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "disconnesso",
|
||||
@@ -190,8 +222,10 @@
|
||||
"mutedTitle": "Hai l'audio disattivato!",
|
||||
"raisedHand": ""
|
||||
},
|
||||
"\u0005notify": {},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"allow": "",
|
||||
"kickMessage": "Accidenti! Sei stato espulso dalla conferenza !",
|
||||
"popupError": "",
|
||||
"passwordErrorTitle": "",
|
||||
@@ -203,8 +237,6 @@
|
||||
"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",
|
||||
@@ -213,8 +245,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Blocco fallito",
|
||||
"lockMessage": "Impossibile bloccare la conferenza.",
|
||||
@@ -254,31 +285,28 @@
|
||||
"Save": "Salva",
|
||||
"recording": "",
|
||||
"recordingToken": "Inserire token di registrazione",
|
||||
"Dial": "Componi",
|
||||
"sipMsg": "Inserire numero SIP",
|
||||
"passwordCheck": "Confermi la rimozione della password?",
|
||||
"passwordMsg": "Imposta una password per bloccare la stanza",
|
||||
"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": "",
|
||||
"yourPassword": "password utente",
|
||||
"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 utente",
|
||||
"userPassword": "password utente",
|
||||
"token": "token",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailedTitle": "Autenticazione fallita",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "Per favore, inserisci il tuo nome utente:",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
@@ -309,10 +337,24 @@
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"externalInstallationMsg": "Impossibile installare l'estensione per il desktop sharing",
|
||||
"inlineInstallationMsg": "Impossibile installare l'estensione per il desktop sharing",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Disattiva audio"
|
||||
"muteParticipantButton": "Disattiva audio",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
@@ -365,7 +407,73 @@
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "",
|
||||
"streamIdHelp": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Nome",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Componi",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "",
|
||||
"poweredby": "",
|
||||
"feedback": "",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "",
|
||||
"me": "",
|
||||
"speaker": "",
|
||||
@@ -14,6 +21,10 @@
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "",
|
||||
"callingName": "",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,7 +33,8 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
@@ -36,44 +48,50 @@
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"videoMute": "",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "",
|
||||
"roomname": "",
|
||||
"disable": "",
|
||||
"feature1": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"feature2": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"feature3": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"feature4": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"feature5": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"feature6": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"feature7": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"feature8": {
|
||||
"title": "",
|
||||
"content": ""
|
||||
}
|
||||
"content": "",
|
||||
"title": ""
|
||||
},
|
||||
"go": "",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
@@ -81,9 +99,12 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "",
|
||||
"videomute": "",
|
||||
"authenticate": "",
|
||||
@@ -110,6 +131,13 @@
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "",
|
||||
"filmstrip": "",
|
||||
@@ -133,12 +161,10 @@
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"audioVideo": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
@@ -162,6 +188,7 @@
|
||||
"bitrate": "",
|
||||
"packetloss": "",
|
||||
"resolution": "",
|
||||
"framerate": "",
|
||||
"less": "",
|
||||
"more": "",
|
||||
"address": "",
|
||||
@@ -174,8 +201,10 @@
|
||||
"remoteaddress": "",
|
||||
"remoteaddress_plural": "",
|
||||
"transport": "",
|
||||
"transport_plural": "",
|
||||
"bandwidth": "",
|
||||
"na": ""
|
||||
"na": "",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "",
|
||||
@@ -193,6 +222,7 @@
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"allow": "",
|
||||
"kickMessage": "",
|
||||
"popupError": "",
|
||||
"passwordErrorTitle": "",
|
||||
@@ -204,8 +234,6 @@
|
||||
"connecting": "",
|
||||
"copy": "",
|
||||
"error": "",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "",
|
||||
"failtoinstall": "",
|
||||
@@ -214,8 +242,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "",
|
||||
"lockMessage": "",
|
||||
@@ -255,8 +282,6 @@
|
||||
"Save": "",
|
||||
"recording": "",
|
||||
"recordingToken": "",
|
||||
"Dial": "",
|
||||
"sipMsg": "",
|
||||
"passwordCheck": "",
|
||||
"passwordMsg": "",
|
||||
"shareLink": "",
|
||||
@@ -279,7 +304,6 @@
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
@@ -311,14 +335,23 @@
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"inlineInstallationMsg": "",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": ""
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": "",
|
||||
@@ -358,5 +391,70 @@
|
||||
"streamIdHelp": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "causit per qualqu'un mai",
|
||||
"connectionsettings": "Paramètres de connexion",
|
||||
"poweredby": "produit per",
|
||||
"feedback": "Donatz-nos lo vòstre vejaire",
|
||||
"feedback": {
|
||||
"average": "Mejana",
|
||||
"bad": "Marrida",
|
||||
"good": "Bona",
|
||||
"rateExperience": "Mercés de donar una nòta a vòstra experiéncia.",
|
||||
"veryBad": "Fòrça marrida",
|
||||
"veryGood": "Fòrça bona"
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Vòstra conferéncia es en cors de creacion...",
|
||||
"me": "ieu",
|
||||
"speaker": "Nautparlaire",
|
||||
@@ -14,29 +21,35 @@
|
||||
"defaultNickname": "ex. Joan Delpuèch",
|
||||
"defaultLink": "ex. __url__",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "Àudio solament",
|
||||
"featureToggleDisabled": "Lo cambiament de __feature__ es desactivat en mòde àudio solament"
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton <b><i>Autorizar</i></b>",
|
||||
"chromeGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton <b><i>Autorizar</i></b>",
|
||||
"androidGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton <b><i>Autorizar</i></b>",
|
||||
"firefoxGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton <b><i>Partejar l'aparelh seleccionat</i></b>",
|
||||
"operaGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton <b><i>Autorizar</i></b>",
|
||||
"iexplorerGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton <b><i>OK</i></b>",
|
||||
"safariGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton <b><i>OK</i></b>",
|
||||
"nwjsGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn"
|
||||
"react-nativeGrantPermissions": "Causissètz <b><i>Autorizar</i></b> quand vòstre navigador vos demanda l'autorizacion.",
|
||||
"chromeGrantPermissions": "Causissètz <b><i>Autorizar</i></b> quand vòstre navigador vos demanda l'autorizacion.",
|
||||
"androidGrantPermissions": "Causissètz <b><i>Autorizar</i></b> quand vòstre navigador vos demanda l'autorizacion.",
|
||||
"firefoxGrantPermissions": "Causissètz <b><i>Partejar l'aparelh seleccionat</i></b> quand vòstre navigador vos demanda l'autorizacion.",
|
||||
"operaGrantPermissions": "Causissètz <b><i>Autorizar</i></b> quand vòstre navigador vos demanda l'autorizacion.",
|
||||
"iexplorerGrantPermissions": "Causissètz <b><i>OK</i></b> quand vòstre navigador vos demanda l'autorizacion.",
|
||||
"safariGrantPermissions": "Causissètz <b><i>OK</i></b> quand vòstre navigador vos demanda l'autorizacion.",
|
||||
"nwjsGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn",
|
||||
"edgeGrantPermissions": "Causissètz <b><i>Òc</i></b> quand vòstre navigador vos demanda l'autorizacion."
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Acorchis de clavièr",
|
||||
"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",
|
||||
"toggleFilmstrip": "Mostrar o rescondre la vidèo",
|
||||
"toggleShortcuts": "Afichar o amagar aiceste menú d'ajuda",
|
||||
"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à"
|
||||
"videoMute": "Aviar o arrestar vòstra camerà",
|
||||
"showSpeakerStats": "Mostrar las estadistica del microfòn"
|
||||
},
|
||||
"welcomepage": {
|
||||
"disable": "Afichar pas mai aquesta pagina",
|
||||
@@ -81,14 +94,17 @@
|
||||
"terms": "Tèrmes"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"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.",
|
||||
"title": "Vòstra conferéncia vidèo es estada arrestada perque vòstre ordenador se botèt en velha.",
|
||||
"text": "Quichatz lo boton <i>Tornar participar</i>.",
|
||||
"rejoinKeyTitle": "Tornar participar"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "Activar / Desactivar lo mòde àudio solament (emplega mens de debit)",
|
||||
"mute": "Mut / Actiu",
|
||||
"videomute": "Aviar / Arrestar la camerà",
|
||||
"authenticate": "Autentificatz-vos",
|
||||
@@ -111,12 +127,12 @@
|
||||
"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": "Mostrar / escondre vidèos",
|
||||
"filmstrip": "Mostrar / Rescondre vidèos",
|
||||
"profile": "Modificar vòstre perfil",
|
||||
"raiseHand": "o se l'avètz ja<br /><strong>alara</strong>"
|
||||
"raiseHand": "Demandar / Daissar la paraula"
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "o se ja l'avètz<br /><strong>alara</strong>",
|
||||
"appInstalled": "o se l'avètz ja installat<br /><strong>alara</strong>",
|
||||
"appNotInstalled": "Vos cal <strong>__app__</strong> per participar a la conversacion a partir de vòstre mobil",
|
||||
"downloadApp": "Telecargar l'aplicacion",
|
||||
"joinConversation": "Participar a la conversacion",
|
||||
@@ -124,7 +140,7 @@
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Dobrir / tampar lo chat",
|
||||
"filmstrip": "Mostrar / escondre vidèos",
|
||||
"filmstrip": "Mostrar / rescondre vidèos",
|
||||
"contactlist": "Veire e convidar de participants"
|
||||
},
|
||||
"chat": {
|
||||
@@ -145,12 +161,10 @@
|
||||
"selectAudioOutput": "Sortida àudio",
|
||||
"followMe": "Tot lo mond me sèc",
|
||||
"noDevice": "Pas cap",
|
||||
"noPermission": "La permission d'utilizar l'aparelh es pas estada donada",
|
||||
"cameraAndMic": "Camerà e microfòn",
|
||||
"moderator": "MODERATOR",
|
||||
"password": "DEFINIR UN SENHAL",
|
||||
"audioVideo": "ÀUDIO E VIDÈO",
|
||||
"setPasswordLabel": "Verrolhar vòstra sala amb un senhal"
|
||||
"audioVideo": "ÀUDIO E VIDÈO"
|
||||
},
|
||||
"profile": {
|
||||
"title": "Perfil",
|
||||
@@ -174,6 +188,7 @@
|
||||
"bitrate": "Debit :",
|
||||
"packetloss": "Pèrda de paquets :",
|
||||
"resolution": "Resolucion :",
|
||||
"framerate": "Frequéncia imatge :",
|
||||
"less": "Amagar lo detalh",
|
||||
"more": "Ne veire mai",
|
||||
"address": "Adreça :",
|
||||
@@ -187,7 +202,8 @@
|
||||
"remoteaddress_plural": "Adreças distantas :",
|
||||
"transport": "Transpòrt :",
|
||||
"bandwidth": "Benda passanta estimada :",
|
||||
"na": "Tornatz aicí per afichar las informacions de connexion un còp la conferéncia aviada"
|
||||
"na": "Tornatz aicí per afichar las informacions de connexion un còp la conferéncia aviada",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "desconnectat",
|
||||
@@ -198,13 +214,14 @@
|
||||
"focus": "Focus de conferéncia",
|
||||
"focusFail": "__component__ es pas disponible - ensajatz tornamai dins __ms__ sec",
|
||||
"grantedTo": "Dreits moderator acordats a __to__ !",
|
||||
"grantedToUnknown": "Dreits moderator acordats a $t(somebody) !",
|
||||
"grantedToUnknown": "Drechs moderator acordats a $t(notify.somebody) !",
|
||||
"muted": "Avètz començat la conversacion en mut.",
|
||||
"mutedTitle": "Sètz en mut !",
|
||||
"raisedHand": "Volriá parlar."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "Apondre",
|
||||
"allow": "Autorizar",
|
||||
"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",
|
||||
@@ -216,18 +233,15 @@
|
||||
"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 camerà.",
|
||||
"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.",
|
||||
"conferenceReloadTitle": "Malurosament, quicòm truquèt.",
|
||||
"conferenceReloadMsg": "Sèm a reglar aquò ! Nòva connexion dins __seconds__ segondas...",
|
||||
"conferenceDisconnectTitle": "Sètz estat desconnectat.",
|
||||
"conferenceDisconnectMsg": "Vos cal benlèu verificar vòstra connexion al malhum. Nòva connexion dins __seconds__ segondas...",
|
||||
"rejoinNow": "Participar ara",
|
||||
"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.",
|
||||
@@ -267,8 +281,6 @@
|
||||
"Save": "Salvar",
|
||||
"recording": "Enregistrament",
|
||||
"recordingToken": "Sasissètz un geton d'enregistrament",
|
||||
"Dial": "Compausar",
|
||||
"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": "Partejatz lo ligam de la conversacion",
|
||||
@@ -291,7 +303,6 @@
|
||||
"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.",
|
||||
"feedbackHelp": "Vòstres comentaris nos ajudaràn a milhorar l'experiéncia vidèo",
|
||||
"feedbackQuestion": "Contatz-nos cossí èra vòstre apèl !",
|
||||
"thankYou": "Mercé d'aver utilizat __appName__ !",
|
||||
@@ -323,14 +334,23 @@
|
||||
"goToStore": "Anar sul webstore",
|
||||
"externalInstallationTitle": "Extension requesida :",
|
||||
"externalInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran.",
|
||||
"inlineInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran.",
|
||||
"inlineInstallExtension": "Installar ara",
|
||||
"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",
|
||||
"remoteControlTitle": "Contraròtle alonhat",
|
||||
"remoteControlTitle": "Contraròtle a distància",
|
||||
"remoteControlRequestMessage": "Volètz autorizar __user__ a contrarotlar vòstre ordinador ?",
|
||||
"remoteControlShareScreenWarning": "Remarcatz que se botatz « Autorizar » partejaretz vòstre ecran !",
|
||||
"remoteControlDeniedMessage": "__user__ a refusat vòstra demanda de contraròtle alonhat !",
|
||||
"remoteControlAllowedMessage": "__user__ a acceptat vòstra demanda de contraròtle alonhat !",
|
||||
"remoteControlErrorMessage": "Error al moment de demandar lo contraròtle alonhat a __user__ !",
|
||||
"remoteControlStopMessage": "La session de contraròtle alonhat es acabada !"
|
||||
"startRemoteControlErrorMessage": "Una error s'es produsida en ensajar de començar la session de contraròtle a distància !",
|
||||
"remoteControlStopMessage": "La session de contraròtle alonhat es acabada !",
|
||||
"close": "Tampar",
|
||||
"shareYourScreen": "Partejar vòstre ecran",
|
||||
"yourEntireScreen": "Vòstre ecran complet",
|
||||
"applicationWindow": "Fenèstra de l'aplicacion"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -392,5 +412,70 @@
|
||||
"streamIdHelp": "Ont tròbi aquò ?",
|
||||
"error": "Fracàs de la transmission en dirècte. Mercés de tornar ensajar.",
|
||||
"busy": "Tots los enresgistraires son ocupats. Mercés de tornar ensajar mai tard."
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "__count__ oras",
|
||||
"minutes": "__count__ minutas",
|
||||
"name": "Nom",
|
||||
"seconds": "__count__ segondas",
|
||||
"speakerStats": "Estatisticas parladors",
|
||||
"speakerTime": "Temps de paraula"
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "Paramètres de l'aparelh",
|
||||
"noPermission": "Autorizacion pas acordada",
|
||||
"previewUnavailable": "Apercebut pas disponible",
|
||||
"selectADevice": "Seleccionatz un aparelh",
|
||||
"testAudio": "Ensag son"
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "Ajustar un senhal",
|
||||
"callNumber": "Sonar lo __numerò__",
|
||||
"enterID": "Picatz l’identificant de la conferéncia : __conferenceID__ seguit per # per sonar dempuèi un telefòn",
|
||||
"howToDialIn": "Per sonar, utilizatz un dels numeròs seguents e identificants de conferéncia",
|
||||
"hidePassword": "Rescondre lo senhal",
|
||||
"inviteTo": "Convidar de mond a __conferenceName__",
|
||||
"invitedYouTo": "__userName__ vos a convidat a la conferéncia __inviteURL__",
|
||||
"locked": "Aquesta conversacion es clavada. Los nòu-venguts devon aver lo ligam e picar lo senhal per participar.",
|
||||
"showPassword": "Mostrar lo senhal",
|
||||
"unlocked": "Aquesta conversacion es pas clavada. Tot lo mond amb lo ligam pòdon participar."
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "Qualitat àudio",
|
||||
"changeVideoTip": "Cambiatz la qualitat vidèo amb la barra d'aisina a man esquèrra.",
|
||||
"hd": "HD",
|
||||
"highDefinition": "Nauta definicion",
|
||||
"ld": "Bassa definicion",
|
||||
"lowDefinition": "Bassa definicion",
|
||||
"p2pEnabled": "Connexion par a par activada",
|
||||
"p2pVideoQualityDescription": "Amb lo mòde par a par, la qualitat de las sonadas recebudas pòt pas qu'èsser cambiada entre nauta e son solament. La rèsta dels paramètres seràn ignorats fins que lo mòde par a par s'acabe.",
|
||||
"recHighDefinitionOnly": "Nauta definicion preferida.",
|
||||
"sd": "SD",
|
||||
"standardDefinition": "Definicion estandarda",
|
||||
"qualityButtonTip": "Cambiar la qualitat de la vidèo recebuda"
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Compausar",
|
||||
"dialOut": "Sonar una numerò de telefòn",
|
||||
"statusMessage": "ara es __status__",
|
||||
"enterPhone": "Picatz un numerò de telefòn",
|
||||
"phoneNotAllowed": "Malaürosament suportem pas encara aquela destinacion !"
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Apondre",
|
||||
"noResults": "Pas cap de resultat trobat",
|
||||
"searchPlaceholder": "Cercar de monde e salas a apondre",
|
||||
"title": "Ajustatz de monde a vòstra sonada",
|
||||
"failedToAdd": "Fracàs de l'ajust de participants"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "Avèm un pauc patit a manténer la connexion.",
|
||||
"retry": "Ensajar tornarmai",
|
||||
"support": "Assisténcia",
|
||||
"supportMsg": "Se ten d'arribat, contactatz l'"
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "Error d'obtencion de la permission per la camerà",
|
||||
"microphonePermission": "Error d'obtencion de la permission pel microfòn"
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "ustawienia połączenia",
|
||||
"poweredby": "Uruchomiono",
|
||||
"feedback": "jaka jest twoja opinia ?",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Oceń proszę swoje doświadczenia z konferencji.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "otwarto twoją konferencję",
|
||||
"me": "to ja",
|
||||
"speaker": "głośnik",
|
||||
@@ -14,66 +21,78 @@
|
||||
"defaultNickname": "np. Ziutek Kowalski",
|
||||
"defaultLink": "np. _url_",
|
||||
"callingName": "_nazwa_",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"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": "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"
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"firefoxGrantPermissions": "",
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": "wyraź zgodę na użycie kamery i mikrofonu",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
"keyboardShortcuts": "Skróty klawiaturowe:",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"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": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"toggleChat": "Otwórz lub zamknij panel czat.",
|
||||
"mute": "Wyłącz lub włącz mikrofon.",
|
||||
"fullScreen": "Otwórz / Zamknij pełny ekran",
|
||||
"videoMute": "",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"\u0005keyboardShortcuts": {},
|
||||
"welcomepage": {
|
||||
"go": "IDŹ",
|
||||
"roomname": "Podaj nazwę sali konferencyjnej",
|
||||
"disable": "nie pokazuj ponownie",
|
||||
"feature1": {
|
||||
"title": "użyj",
|
||||
"content": "nie musisz nic pobierać. _app_ jest gotowa do użycia bezpośrednio w przeglądarce. Zaproś innych do udziału w konferencji podając adres URL"
|
||||
"content": "nie musisz nic pobierać. _app_ jest gotowa do użycia bezpośrednio w przeglądarce. Zaproś innych do udziału w konferencji podając adres URL",
|
||||
"title": "użyj"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "za mała przepustowość",
|
||||
"content": "Dla konferencji video potrzeba nie więcej niż 128 kbit/sek. Konferencje dzielenia ekranu lub tylko audio są możliwe przy mniejszej przepustowości. "
|
||||
"content": "Dla konferencji video potrzeba nie więcej niż 128 kbit/sek. Konferencje dzielenia ekranu lub tylko audio są możliwe przy mniejszej przepustowości. ",
|
||||
"title": "za mała przepustowość"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Open source",
|
||||
"content": "_app_ oparta jest na Apache License. Możesz swobodnie pobierać ją, używać, modyfikować i dzielić się nią."
|
||||
"content": "_app_ oparta jest na Apache License. Możesz swobodnie pobierać ją, używać, modyfikować i dzielić się nią.",
|
||||
"title": "Open source"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Nieograniczona liczba użytkowników",
|
||||
"content": "Liczba użytkowników czy uczestników konferencji nie jest ograniczona. Determinuje ją moc serwera i dostępna przepustowość lącza."
|
||||
"content": "Liczba użytkowników czy uczestników konferencji nie jest ograniczona. Determinuje ją moc serwera i dostępna przepustowość lącza.",
|
||||
"title": "Nieograniczona liczba użytkowników"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Współdzielenie ekranu",
|
||||
"content": "Z łatwością podzielisz się ekranem z innymi. _app_ jest idealnym narzędziem do prezentacji, nauczania i udzielania zdalnej pomocy technicznej."
|
||||
"content": "Z łatwością podzielisz się ekranem z innymi. _app_ jest idealnym narzędziem do prezentacji, nauczania i udzielania zdalnej pomocy technicznej.",
|
||||
"title": "Współdzielenie ekranu"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Sale bezpieczne.",
|
||||
"content": "Potrzebujesz prywatności? _app_ sale konferencyjne mogą być zabezpieczone hasłami niedopuszczającymi niezaproszonych uczestników czy też osoby chcące zakłócić konferencję."
|
||||
"content": "Potrzebujesz prywatności? _app_ sale konferencyjne mogą być zabezpieczone hasłami niedopuszczającymi niezaproszonych uczestników czy też osoby chcące zakłócić konferencję.",
|
||||
"title": "Sale bezpieczne."
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Współdzielenie uwag.",
|
||||
"content": "_app_ zawiera Etherpad, współdzielony edytor tekstu doskonały dla redakcji zespołowych artykułów czy komentarzy."
|
||||
"content": "_app_ zawiera Etherpad, współdzielony edytor tekstu doskonały dla redakcji zespołowych artykułów czy komentarzy.",
|
||||
"title": "Współdzielenie uwag."
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Statystyki użycia.",
|
||||
"content": "Analizuj uczestników konferencji z łatwościa integrując dane z Piwik i Google Analitics i innymi systemami monitorującymi."
|
||||
}
|
||||
"content": "Analizuj uczestników konferencji z łatwościa integrując dane z Piwik i Google Analitics i innymi systemami monitorującymi.",
|
||||
"title": "Statystyki użycia."
|
||||
},
|
||||
"go": "IDŹ",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "Podaj nazwę sali konferencyjnej",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
@@ -81,19 +100,22 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Wycisz / Pogłośnij",
|
||||
"videomute": "",
|
||||
"videomute": "Kamera start / stop ",
|
||||
"authenticate": "Uwierzytelnianie",
|
||||
"lock": "",
|
||||
"lock": "Zamknij / Otwórz salę",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"chat": "Otwórz / Zamknij Czat",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "Udostępniaj wideo w Youtube",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"fullscreen": "Otwórz / Zamknij pełny ekran",
|
||||
"sip": "Wykręć numer SIP",
|
||||
"Settings": "Ustawienia",
|
||||
"hangup": "",
|
||||
@@ -106,10 +128,18 @@
|
||||
"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": "",
|
||||
"filmstrip": "Pokaż / Ukryj klipy wideo",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"\u0005toolbar": {},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Otwórz / Zamknij Czat",
|
||||
"filmstrip": "Pokaż / Ukryj klipy wideo",
|
||||
@@ -133,12 +163,10 @@
|
||||
"selectAudioOutput": "Wyjście audio",
|
||||
"followMe": "Wszyscy za mną",
|
||||
"noDevice": "Brak",
|
||||
"noPermission": "Nie ma zgody na użycie urządzenia",
|
||||
"cameraAndMic": "Kamera i Mikrofon",
|
||||
"moderator": "MODERATOR",
|
||||
"password": "USTAW HASŁO",
|
||||
"audioVideo": "AUDIO I WIDEO",
|
||||
"setPasswordLabel": "Zamknij salę konferencyjną z hasłem"
|
||||
"audioVideo": "AUDIO I WIDEO"
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
@@ -154,13 +182,15 @@
|
||||
"kick": "Spadaj!",
|
||||
"muted": "Wyciszony",
|
||||
"domute": "Wyciszenie",
|
||||
"flip": "Odwrócenie"
|
||||
"flip": "Odwrócenie",
|
||||
"remoteControl": ""
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Szybkość transmisji:",
|
||||
"packetloss": "Strata pakietów:",
|
||||
"resolution": "Rozdzielczość:",
|
||||
"framerate": "",
|
||||
"less": "Pokaż mniej",
|
||||
"more": "Pokaż więcej",
|
||||
"address": "Adres:",
|
||||
@@ -178,7 +208,8 @@
|
||||
"remoteaddress_plural_5": "",
|
||||
"transport": "Przekazywanie:",
|
||||
"bandwidth": "Zakładana przepustowość:",
|
||||
"na": "Po informację o połączeniu wróć gdy wystartuje konferencja"
|
||||
"na": "Po informację o połączeniu wróć gdy wystartuje konferencja",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "rozłączone",
|
||||
@@ -194,8 +225,10 @@
|
||||
"mutedTitle": "Jesteś wyciszony!",
|
||||
"raisedHand": "Możesz mówić."
|
||||
},
|
||||
"\u0005notify": {},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"allow": "",
|
||||
"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": "",
|
||||
@@ -207,8 +240,6 @@
|
||||
"connecting": "Nawiązywanie połączenia",
|
||||
"copy": "Kopiuj",
|
||||
"error": "Błąd",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Błąd podczas rozpoznania rozszerzenia wspóldzielenia ekranu.",
|
||||
"failtoinstall": "Instalacja współdzielenia ekranu nie powiodła się.",
|
||||
@@ -217,8 +248,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"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ę.",
|
||||
@@ -235,7 +265,7 @@
|
||||
"defaultError": "Wystąpił jakiś błąd",
|
||||
"passwordRequired": "Wymagane hasło",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"done": "Brak",
|
||||
"Remove": "Usuń",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "Współdziel wideo",
|
||||
@@ -258,8 +288,6 @@
|
||||
"Save": "Zapisz",
|
||||
"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": "",
|
||||
@@ -282,7 +310,6 @@
|
||||
"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.",
|
||||
"feedbackHelp": "Twoja opinia będzie pomocna w usprawnieniu naszego serwisu.",
|
||||
"feedbackQuestion": "Powiedz nam o twoim połączeniu!",
|
||||
"thankYou": "Dziękujemy Ci za używanie _appName_!",
|
||||
@@ -295,7 +322,7 @@
|
||||
"stopLiveStreaming": "Zatrzymaj transmisję live",
|
||||
"stopRecording": "Zatrzymaj nagrywanie",
|
||||
"doNotShowWarningAgain": "Nie pokazuj tego ostrzeżenia ponownie",
|
||||
"doNotShowMessageAgain": "",
|
||||
"doNotShowMessageAgain": "nie pokazuj ponownie",
|
||||
"permissionDenied": "Brak uprawnień",
|
||||
"screenSharingPermissionDeniedError": "Nie posiadasz uprawnień do współdzielenia ekranu.",
|
||||
"micErrorPresent": "Wystąpił błąd w dostępie do mikrofonu.",
|
||||
@@ -314,10 +341,25 @@
|
||||
"goToStore": "Idź do sklepu",
|
||||
"externalInstallationTitle": "Wymagane rozszerzenie",
|
||||
"externalInstallationMsg": "Zainstaluj rozszerzenie naszego współdzielenia ekranu.",
|
||||
"inlineInstallationMsg": "Zainstaluj rozszerzenie naszego współdzielenia ekranu.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Wyciszenie"
|
||||
"muteParticipantButton": "Wyciszenie",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
"Ta konferencja jest zabezpieczona hasłem. Aby się podłączyć proszę zastosuj następujący pin:",
|
||||
@@ -363,19 +405,87 @@
|
||||
"on": "Nagrywanie",
|
||||
"off": "Nagrywanie zatrzymane",
|
||||
"failedToStart": "Nagrywanie nie jest możliwe",
|
||||
"buttonTooltip": "",
|
||||
"buttonTooltip": "Nagrywanie start / stop",
|
||||
"error": "Nagranie się nie powiodło. Proszę, spróbuj ponownie.",
|
||||
"unavailable": "Serwis nagrywania jest aktualnie niedostępny. Proszę, spróbować później."
|
||||
},
|
||||
"\u0005recording": {},
|
||||
"liveStreaming": {
|
||||
"pending": "Start strumieniowania live...",
|
||||
"on": "Strumień live",
|
||||
"off": "Strumieniowanie live zastopowane",
|
||||
"unavailable": "Strumieniowanie live aktualnie jest niedostepne. Proszę spróbować później.",
|
||||
"failedToStart": "Strumieniowanie live nie powiodło się",
|
||||
"buttonTooltip": "",
|
||||
"buttonTooltip": "Strumieniowanie live start / stop",
|
||||
"streamIdRequired": "Proszę podaj id strumieniowania aby uruchomić live.",
|
||||
"streamIdHelp": "",
|
||||
"error": "Strumieniowanie live nie powiodło się. Spróbuj później.",
|
||||
"busy": "Wszystkie nagrywarki są zajęte. Proszę, sprawdź ponownie później."
|
||||
},
|
||||
"\u0005liveStreaming": {},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Nazwa",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Dzwoń",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "Definido por outro participante",
|
||||
"connectionsettings": "Configurações de conexão",
|
||||
"poweredby": "distribuído por",
|
||||
"feedback": "Dê seus comentários",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Por favor, avalie sua experiência na reunião.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Sua conferência está sendo criado...",
|
||||
"me": "eu",
|
||||
"speaker": "Orador",
|
||||
@@ -14,15 +21,20 @@
|
||||
"defaultNickname": "ex. João Pedro",
|
||||
"defaultLink": "i.e. __url__",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "Somente áudio",
|
||||
"featureToggleDisabled": "A alternância de __feature__ é desativada enquanto estiver no modo somente de áudio"
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "Dê as permissões para usar sua câmera e microfone pressionando o botão <b> <i>Permitir</i> </b>",
|
||||
"chromeGrantPermissions": "Dê as permissões para usar sua câmera e microfone pressionando o botão <b> <i>Permitir</i> </b>",
|
||||
"androidGrantPermissions": "Dê as permissões para usar sua câmera e microfone pressionando o botão <b> <i>Permitir</i> </b>",
|
||||
"firefoxGrantPermissions": "Dê as permissões para usar sua câmera e microfone pressionando o botão <b> <i>Compartilhar Dispositivos Selecionados</i> </b>",
|
||||
"operaGrantPermissions": "Dê as permissões para usar sua câmera e microfone pressionando o botão <b> <i>Permitir</i> </b>",
|
||||
"iexplorerGrantPermissions": "Dê as permissões para usar sua câmera e microfone pressionando o botão <b> <i>OK</i> </b>",
|
||||
"safariGrantPermissions": "Dê as permissões para usar sua câmera e microfone pressionando o botão <b> <i>OK</i> </b>",
|
||||
"nwjsGrantPermissions": "Dê as permissões para usar sua câmera e microfone"
|
||||
"react-nativeGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"chromeGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"androidGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"firefoxGrantPermissions": "Selecione <b><i>Compartilhar Dispositivos Selecionados</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"operaGrantPermissions": "Selecione <b><i>Permitir</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"iexplorerGrantPermissions": "Selecione <b><i>OK</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"safariGrantPermissions": "Selecione <b><i>OK</i></b> quando seu navegador perguntar pelas permissões.",
|
||||
"nwjsGrantPermissions": "Dê as permissões para usar sua câmera e microfone",
|
||||
"edgeGrantPermissions": "Selecione <b><i>Sim</i></b> quando seu navegador perguntar pelas permissões."
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Atalhos de teclado",
|
||||
@@ -36,7 +48,8 @@
|
||||
"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"
|
||||
"videoMute": "Iniciar ou parar sua câmera",
|
||||
"showSpeakerStats": "Mostrar estatísticas do alto falante"
|
||||
},
|
||||
"welcomepage": {
|
||||
"disable": "Não mostre esta página novamente",
|
||||
@@ -81,14 +94,17 @@
|
||||
"terms": "Termos"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"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.",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Reentrar"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "Ativar / desativar modo somente áudio (economiza banda)",
|
||||
"mute": "Mudo / Não mudo",
|
||||
"videomute": "Iniciar ou parar a câmera",
|
||||
"authenticate": "Autenticar",
|
||||
@@ -117,9 +133,9 @@
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "ou se você já tenha isso<br /> <strong>então</strong>",
|
||||
"appNotInstalled": "Você precisa do <strong>__app__</strong> para começar um bate-papo no seu celular",
|
||||
"appNotInstalled": "Você precisa do <strong>__app__</strong> para começar uma conversa no seu celular",
|
||||
"downloadApp": "Baixe o Aplicativo",
|
||||
"joinConversation": "Entre no bate-papo",
|
||||
"joinConversation": "Entrar na conversa",
|
||||
"startConference": "Comece uma conferência"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
@@ -145,12 +161,10 @@
|
||||
"selectAudioOutput": "Saída de áudio",
|
||||
"followMe": "Todos me seguem",
|
||||
"noDevice": "Nenhum",
|
||||
"noPermission": "Permissão para usar o dispositivo não concedida",
|
||||
"cameraAndMic": "Câmera e microfone",
|
||||
"moderator": "MODERADOR",
|
||||
"password": "DEFINIR SENHA",
|
||||
"audioVideo": "ÁUDIO E VÍDEO",
|
||||
"setPasswordLabel": "Trancar sua sala com uma senha."
|
||||
"audioVideo": "ÁUDIO E VÍDEO"
|
||||
},
|
||||
"profile": {
|
||||
"title": "Perfil",
|
||||
@@ -174,6 +188,7 @@
|
||||
"bitrate": "Taxa de bits:",
|
||||
"packetloss": "Perda de pacote:",
|
||||
"resolution": "Resolução:",
|
||||
"framerate": "Taxa de quadros:",
|
||||
"less": "Mostrar menos",
|
||||
"more": "Mostrar mais",
|
||||
"address": "Endereço:",
|
||||
@@ -187,7 +202,8 @@
|
||||
"remoteaddress_plural": "Endereços remotos:",
|
||||
"transport": "Transporte:",
|
||||
"bandwidth": "Largura de banda estimada:",
|
||||
"na": "Volte aqui para informações de conexão uma vez que a conferência inicie"
|
||||
"na": "Volte aqui para informações de conexão uma vez que a conferência inicie",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "desconectado",
|
||||
@@ -198,36 +214,34 @@
|
||||
"focus": "Foco da conferência",
|
||||
"focusFail": "__component__ não disponĩvel - tente em __ms__ seg.",
|
||||
"grantedTo": "Direitos de moderador concedido para __to__!",
|
||||
"grantedToUnknown": "Direitos de moderador concedido para $t(somebody)!",
|
||||
"muted": "Você iniciou uma conversa muda.",
|
||||
"grantedToUnknown": "Direitos de moderador concedido para $t(notify.somebody)!",
|
||||
"muted": "Você iniciou uma conversa em mudo.",
|
||||
"mutedTitle": "Você está mudo!",
|
||||
"raisedHand": "Gostaria de falar."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "Adicionar",
|
||||
"allow": "Permitir",
|
||||
"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.",
|
||||
"popupError": "Seu navegador está bloqueando janelas popup deste site. Por favor, ative 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.",
|
||||
"passwordError2": "Esta conversa 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.",
|
||||
"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.",
|
||||
"conferenceReloadTitle": "Infelizmente, algo deu errado.",
|
||||
"conferenceReloadMsg": "Estamos tentando consertar isto. Reconectando em __seconds__ segundos...",
|
||||
"conferenceDisconnectTitle": "Você foi desconectado.",
|
||||
"conferenceDisconnectMsg": "Você pode querer verificar sua conexão de rede. Reconectando em __seconds__ segundos ...",
|
||||
"rejoinNow": "Voltar agora",
|
||||
"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.",
|
||||
@@ -267,8 +281,6 @@
|
||||
"Save": "Salvar",
|
||||
"recording": "Gravando",
|
||||
"recordingToken": "Digite o token de gravação",
|
||||
"Dial": "Discar",
|
||||
"sipMsg": "Digite o número SIP",
|
||||
"passwordCheck": "Você tem certeza que deseja remover sua senha?",
|
||||
"passwordMsg": "Definir uma senha para trancar sua sala",
|
||||
"shareLink": "Compartilhar o link para a chamada",
|
||||
@@ -291,7 +303,6 @@
|
||||
"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.",
|
||||
"feedbackHelp": "Seu retorno nos ajudará a melhorar nossa experiência de vídeo.",
|
||||
"feedbackQuestion": "Nos conte sobre sua chamada!",
|
||||
"thankYou": "Obrigado por usar o __appName__!",
|
||||
@@ -313,24 +324,33 @@
|
||||
"cameraUnknownError": "Não pode usar a câmera por uma razão desconhecida.",
|
||||
"cameraPermissionDeniedError": "Você não tem permissão para usar sua câmera. Você ainda pode entrar na conferência, mas os outros não verão você. Use o botão da câmera na barra de endereço para fixar isto.",
|
||||
"cameraNotFoundError": "A câmera não foi encontrada.",
|
||||
"cameraConstraintFailedError": "Sua câmera não satisfaz algumas condições requeridas.",
|
||||
"cameraConstraintFailedError": "Sua câmera não satisfaz algumas condições necessárias.",
|
||||
"micUnknownError": "Não pode usar o microfone por uma razão desconhecida.",
|
||||
"micPermissionDeniedError": "Você não tem permissão para usar seu microfone. Você ainda pode entrar na conferência, mas os outros não ouvirão você. Use o botão da câmera na barra de endereço para fixar isto.",
|
||||
"micNotFoundError": "O microfone não foi encontrado.",
|
||||
"micConstraintFailedError": "Seu microfone não satisfaz algumas condições requeridas.",
|
||||
"micConstraintFailedError": "Seu microfone não satisfaz algumas condições necessárias.",
|
||||
"micNotSendingData": "Seu microfone está inacessível. Selecione outro dispositivo do menu de configurações ou tente reiniciar a aplicação.",
|
||||
"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.",
|
||||
"inlineInstallationMsg": "Você precisa instalar nossa extensão de compartilhamento de tela.",
|
||||
"inlineInstallExtension": "",
|
||||
"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",
|
||||
"remoteControlTitle": "Controle remoto",
|
||||
"remoteControlTitle": "Conexão de área de trabalho remota",
|
||||
"remoteControlRequestMessage": "Permitirá __user__ controlar remotamente sua área de trabalho?",
|
||||
"remoteControlShareScreenWarning": "Note que se você pressionar \"Permitir\" você vai compartilhar sua tela!",
|
||||
"remoteControlDeniedMessage": "__user__ rejeitou sua requisição de controle remoto!",
|
||||
"remoteControlAllowedMessage": "__user__ aceitou sua requisição de controle remoto!",
|
||||
"remoteControlErrorMessage": "Um erro ocorreu enquanto tentava requerer a permissão de controle remoto de __user__!",
|
||||
"remoteControlStopMessage": "A sessão de controle remoto terminou!"
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "A sessão de controle remoto terminou!",
|
||||
"close": "Fechar",
|
||||
"shareYourScreen": "Compartilhar sua tela",
|
||||
"yourEntireScreen": "Toda sua tela",
|
||||
"applicationWindow": "Janela de aplicativo"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -392,5 +412,70 @@
|
||||
"streamIdHelp": "Aonde eu encontro isto?",
|
||||
"error": "Falha na transmissão ao vivo. Tente novamente",
|
||||
"busy": "Todos os gravadores estão ocupados no momento. Por favor, tente mais tarde."
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "__count__h",
|
||||
"minutes": "__count__m",
|
||||
"name": "Nome",
|
||||
"seconds": "__count__s",
|
||||
"speakerStats": "Estatísticas do Apresentador",
|
||||
"speakerTime": "Tempo do Apresentador"
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "Configurações do dispositivo",
|
||||
"noPermission": "Permissão não concedida",
|
||||
"previewUnavailable": "Visualização indisponível",
|
||||
"selectADevice": "Selecione um dispositivo",
|
||||
"testAudio": "Testar o som"
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "Adicionar uma senha",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "Esconder a senha",
|
||||
"inviteTo": "Convidar pessoas para __conferenceName__",
|
||||
"invitedYouTo": "",
|
||||
"locked": "Esta chamada está travada. Novos participantes precisam ter o link e digitar a senha para entrar.",
|
||||
"showPassword": "Mostrar senha",
|
||||
"unlocked": "Esta chamada está destravada. Qualquer novo participante com o link pode participar."
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Discar",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Adicionar",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
{
|
||||
"contactlist": "Участники (__pcount__)",
|
||||
"addParticipants": "",
|
||||
"addParticipants": "Поделиться ссылкой",
|
||||
"roomLocked": "Вызывающие должны ввести пароль",
|
||||
"roomUnlocked": "Любой, владеющий ссылкой, может присоединиться",
|
||||
"passwordSetRemotely": "установлен другим участником",
|
||||
"connectionsettings": "Настройки подключения",
|
||||
"poweredby": "работает на",
|
||||
"feedback": "Оставьте нам свой отзыв",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Пожалуйста, оцените ваш опыт встречи.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Ваша конференция создается в данный момент...",
|
||||
"me": "Я",
|
||||
"speaker": "Говорящий",
|
||||
@@ -14,15 +21,20 @@
|
||||
"defaultNickname": "напр. Яна Цветочкина",
|
||||
"defaultLink": "напр. __url__",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"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": "Пожалуйста дайте разрешение на доступ к камере и микрофону"
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"firefoxGrantPermissions": "",
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": "Пожалуйста дайте разрешение на доступ к камере и микрофону",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "Комбинации клавиш",
|
||||
@@ -36,54 +48,63 @@
|
||||
"toggleChat": "Открыть или закрыть чат",
|
||||
"mute": "Заглушить или включить микрофон",
|
||||
"fullScreen": "Войти или выйти из полноэкранного режима",
|
||||
"videoMute": "Включить или выключить вашу камеру"
|
||||
"videoMute": "Включить или выключить вашу камеру",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "Вперед!",
|
||||
"roomname": "Введите название комнаты",
|
||||
"disable": "Не показывать эту страницу снова",
|
||||
"feature1": {
|
||||
"title": "Простой в использовании",
|
||||
"content": "Нет нужды что-либо скачивать. __app__ работает прямо из вашего браузера. Просто отправьте URL ссылку на вашу конференцию другим, чтобы начать общение."
|
||||
"content": "Нет нужды что-либо скачивать. __app__ работает прямо из вашего браузера. Просто отправьте URL ссылку на вашу конференцию другим, чтобы начать общение.",
|
||||
"title": "Простой в использовании"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Низкие требования к ширине канала",
|
||||
"content": "Многопользовательским видеоконференциям достаточно скорости передачи данных в 128 Кбит/с. Демонстрация экрана или аудиоконференции требуют и того меньше."
|
||||
"content": "Многопользовательским видеоконференциям достаточно скорости передачи данных в 128 Кбит/с. Демонстрация экрана или аудиоконференции требуют и того меньше.",
|
||||
"title": "Низкие требования к ширине канала"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Исходный код открыт",
|
||||
"content": "__app__ лицензирован под Apache License. Вы можете свободно скачивать, использовать, изменять это ПО в соответствии с условиями лицензии."
|
||||
"content": "__app__ лицензирован под Apache License. Вы можете свободно скачивать, использовать, изменять это ПО в соответствии с условиями лицензии.",
|
||||
"title": "Исходный код открыт"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Количество пользовательниц не ограничено",
|
||||
"content": "Нет никаких искусственных ограничений по количеству пользовательниц или участников конференций. Вас отграничивают только мощность сервера и качество соединения."
|
||||
"content": "Нет никаких искусственных ограничений по количеству пользовательниц или участников конференций. Вас отграничивают только мощность сервера и качество соединения.",
|
||||
"title": "Количество пользовательниц не ограничено"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Общий доступ к экрану",
|
||||
"content": "С лёгкостью можно пользоваться экраном совместно. __app__ идеально для онлайн презентаций, лекций и сеансов техподдержки."
|
||||
"content": "С лёгкостью можно пользоваться экраном совместно. __app__ идеально для онлайн презентаций, лекций и сеансов техподдержки.",
|
||||
"title": "Общий доступ к экрану"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Защищённые комнаты",
|
||||
"content": "Нужно больше приватности? __app__ конференц-комнаты могут быть защищены паролем, чтобы исключить незваных гостей или заминки."
|
||||
"content": "Нужно больше приватности? __app__ конференц-комнаты могут быть защищены паролем, чтобы исключить незваных гостей или заминки.",
|
||||
"title": "Защищённые комнаты"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Поделиться заметками",
|
||||
"content": "__app__ включает Etherpad, текстовый редактор для совместной работы над текстом в реальном времени, который замечательно подходит, чтобы вести протоколы или совместно писать статьи."
|
||||
"content": "__app__ включает Etherpad, текстовый редактор для совместной работы над текстом в реальном времени, который замечательно подходит, чтобы вести протоколы или совместно писать статьи.",
|
||||
"title": "Поделиться заметками"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Статистика использования",
|
||||
"content": "Узнайте больше о пользователях с помощью интеграции с Piwik, Google Analytics и другими системами мониторига и сбора статистики."
|
||||
}
|
||||
"content": "Узнайте больше о пользователях с помощью интеграции с Piwik, Google Analytics и другими системами мониторига и сбора статистики.",
|
||||
"title": "Статистика использования"
|
||||
},
|
||||
"go": "Вперед!",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "Введите название комнаты",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"policyText": "",
|
||||
"title": "__app__ нуждается в использовании вашего микрофона и камеры."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "Ваш видеозвонок был прерван, потому что этот компьютер пошёл спать.",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Присоединиться повторно"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Вкл. / Выкл. звук",
|
||||
"videomute": "Вкл / Выкл камеру",
|
||||
"authenticate": "Аутентифицировать",
|
||||
@@ -110,6 +131,13 @@
|
||||
"profile": "Редактировать ваш профиль",
|
||||
"raiseHand": "Поднять / Опустить вашу руку"
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Открыть / Закрыть чат",
|
||||
"filmstrip": "Показать / Скрыть видео",
|
||||
@@ -133,12 +161,10 @@
|
||||
"selectAudioOutput": "Звуковой выход",
|
||||
"followMe": "Каждый следует за мной",
|
||||
"noDevice": "Нет",
|
||||
"noPermission": "Нет прав пользоваться устройством",
|
||||
"cameraAndMic": "Камера и микрофон",
|
||||
"moderator": "МОДЕРАТОР",
|
||||
"password": "УСТАНОВИТЬ ПАРОЛЬ",
|
||||
"audioVideo": "АУДИО И ВИДЕО",
|
||||
"setPasswordLabel": "Заблокировать вашу комнату с помощью пароля."
|
||||
"audioVideo": "АУДИО И ВИДЕО"
|
||||
},
|
||||
"profile": {
|
||||
"title": "Профиль",
|
||||
@@ -162,6 +188,7 @@
|
||||
"bitrate": "Битрейт",
|
||||
"packetloss": "Потеря пакетов:",
|
||||
"resolution": "Разрешение:",
|
||||
"framerate": "",
|
||||
"less": "Свернуть",
|
||||
"more": "Показать больше",
|
||||
"address": "Адрес:",
|
||||
@@ -179,7 +206,8 @@
|
||||
"remoteaddress_plural_5": "",
|
||||
"transport": "Метод отправки:",
|
||||
"bandwidth": "Средняя скорость соединения:",
|
||||
"na": "Вернитесь сюда за информацией о соединении, когда конференция начнётся"
|
||||
"na": "Вернитесь сюда за информацией о соединении, когда конференция начнётся",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "соединение разорвано",
|
||||
@@ -190,13 +218,14 @@
|
||||
"focus": "Фокусировка конференции",
|
||||
"focusFail": "__component__ недоступен - повторите через __ms__ секунд",
|
||||
"grantedTo": "Теперь модерирует __to__!",
|
||||
"grantedToUnknown": "Права модератора теперь у $t(somebody)!",
|
||||
"grantedToUnknown": "",
|
||||
"muted": "Вы начали конференцию без звука.",
|
||||
"mutedTitle": "Вы без звука!",
|
||||
"raisedHand": "Хочу высказаться."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "Добавить",
|
||||
"allow": "",
|
||||
"kickMessage": "Фигасе! Вас прогнали со встречи!",
|
||||
"popupError": "Ваш браузер блокирует всплывающие окна на этом сайте. Пожалуйста разрешите всплывающие окна в настройках безопасности и попробуйте снова.",
|
||||
"passwordErrorTitle": "Ошибка пароля",
|
||||
@@ -208,18 +237,15 @@
|
||||
"connecting": "Идёт подключение",
|
||||
"copy": "Копировать",
|
||||
"error": "Ошибка",
|
||||
"roomLocked": "Этот звонок блокируется. Новые звонящие должны иметь ссылку и ввести пароль, чтобы присоединиться",
|
||||
"addPassword": "Добавить пароль",
|
||||
"createPassword": "Создать пароль",
|
||||
"detectext": "Ошибка при попытке определить расширение для совместного использования экрана.",
|
||||
"failtoinstall": "Невозможно установить расширение для совместного использования рабочего стола",
|
||||
"failedpermissions": "Невозможно получить права на использование локального микрофона и/или камеры.",
|
||||
"conferenceReloadTitle": "К сожалению, что-то пошло не так",
|
||||
"conferenceReloadMsg": "Мы пытаемся исправить это",
|
||||
"conferenceDisconnectTitle": "Вы были отсоединены. Вы можете проверить подключение к сети.",
|
||||
"conferenceDisconnectMsg": "Переподключение в...",
|
||||
"reconnectNow": "Переподключиться сейчас",
|
||||
"conferenceReloadTimeLeft": "__seconds__ сек.",
|
||||
"conferenceReloadTitle": "",
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "Достигнут максимум количества участников конференции. Конференция заполнена. Пожалуйста попробуйте позже!",
|
||||
"lockTitle": "Блокировка не удалась",
|
||||
"lockMessage": "Не удалось запереть конференцию",
|
||||
@@ -259,8 +285,6 @@
|
||||
"Save": "Сохранить",
|
||||
"recording": "Запись",
|
||||
"recordingToken": "Введите токен для записи",
|
||||
"Dial": "Дозвон",
|
||||
"sipMsg": "Введите SIP-номер",
|
||||
"passwordCheck": "Вы уверены, что хотите удалить ваш пароль?",
|
||||
"passwordMsg": "Введите пароль для вашей комнаты",
|
||||
"shareLink": "Поделитесь ссылкой на звонок",
|
||||
@@ -283,7 +307,6 @@
|
||||
"enterDisplayName": "Пожалуйста, введите Ваше имя экрана",
|
||||
"extensionRequired": "Требуется расширение:",
|
||||
"firefoxExtensionPrompt": "Нужно установить расширение Firefox, чтобы совместно пользоваться экраном. Попробуйте позже, скачав его <a href='__url__'>отсюда</a>!",
|
||||
"rateExperience": "Пожалуйста, оцените ваш опыт встречи.",
|
||||
"feedbackHelp": "Ваша поддержка поможет нам улучшить опыт видео.",
|
||||
"feedbackQuestion": "Расскажите нам о вашем звонке!",
|
||||
"thankYou": "Спасибо за использование __appName__!",
|
||||
@@ -305,24 +328,33 @@
|
||||
"cameraUnknownError": "Не могу использовать камеру по неизвестной причине.",
|
||||
"cameraPermissionDeniedError": "У вас нет прав на использование камеры. Вы можете участвовать в конференции, но другие не будут Вас видеть. Используйте значок с камерой в строке адреса, чтобы устранить проблему.",
|
||||
"cameraNotFoundError": "Камера не была найдена.",
|
||||
"cameraConstraintFailedError": "Ваша камера не отвечает некоторым требованиям.",
|
||||
"cameraConstraintFailedError": "",
|
||||
"micUnknownError": "Не могу пользоваться микрофоном по непонятным причинам.",
|
||||
"micPermissionDeniedError": "Вы не дали прав на использование микрофона. Вы все-равно можете присоединиться к конференции, но никто не будет Вас слышать. Используйте иконку с камерой в адресной строке браузера, чтобы исправить это.",
|
||||
"micNotFoundError": "Микрофон не был найден.",
|
||||
"micConstraintFailedError": "Ваш микрофон не отвечает некоторым необходимым требованиям.",
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "Мы не можем получить доступ к вашему микрофону. Пожалуйста, выберите другое устройство из меню настроек или попробуйте перезапустить приложение.",
|
||||
"cameraNotSendingData": "Мы не можем получить доступ к вашей камере. Пожалуйста, проверьте, используется ли это устройство другим приложением, выберите другое устройство из меню настроек или же перезапустите приложение.",
|
||||
"goToStore": "Перейти к интернет-магазину",
|
||||
"externalInstallationTitle": "Требуется расширение",
|
||||
"externalInstallationMsg": "Вам необходимо установить наше дополнение для совместного использования рабочего стола.",
|
||||
"inlineInstallationMsg": "Вам необходимо установить наше дополнение для совместного использования рабочего стола.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "Приглушить этого участника?",
|
||||
"muteParticipantBody": "Вы не сможете перестать глушить их, но они могут сделать это сами в любое время.",
|
||||
"muteParticipantButton": "Выключить звук",
|
||||
"remoteControlTitle": "Дистанционное управление",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "__user__ отклонил ваш запрос на дистанционное управление!",
|
||||
"remoteControlAllowedMessage": "__user__ принял ваш запрос на дистанционное управление!",
|
||||
"remoteControlErrorMessage": "Произошла ошибка при попытке запросить разрешения удалённого управления от __user__!",
|
||||
"remoteControlStopMessage": "Сессия дистанционного управления завершена!"
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "Сессия дистанционного управления завершена!",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -384,5 +416,70 @@
|
||||
"streamIdHelp": "Где я могу найти это?",
|
||||
"error": "Не удалось начать трансляцию. Попробуйте снова.",
|
||||
"busy": "Все рекордеры сейчас заняты. Попробуйте позже."
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Имя",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Дозвон",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Добавить",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Nastavenie spojenia",
|
||||
"poweredby": "založené na",
|
||||
"feedback": "",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Vaša konferencia bola práve vytvorená...",
|
||||
"me": "ja",
|
||||
"speaker": "Rečník",
|
||||
@@ -14,6 +21,10 @@
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "napr. __url__",
|
||||
"callingName": "",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,7 +33,8 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
@@ -36,44 +48,50 @@
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"videoMute": "",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "Pripojiť",
|
||||
"roomname": "Zadajte názov miestnosti",
|
||||
"disable": "",
|
||||
"feature1": {
|
||||
"title": "Jednoduché na používanie",
|
||||
"content": "Nie je potrebne nič sťahovať. __app_ funguje priamo vo Vašom prehliadači. Jednoducho zdieľajte URL adresu konferenčnej miestnosti a možete začať."
|
||||
"content": "Nie je potrebne nič sťahovať. __app_ funguje priamo vo Vašom prehliadači. Jednoducho zdieľajte URL adresu konferenčnej miestnosti a možete začať.",
|
||||
"title": "Jednoduché na používanie"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Nízka náročnosť na prenos",
|
||||
"content": "Viacuživateľská video konferencia s prenosovou rychlosťou iba 128Kbps. Konferencie iba so zdieľaním plochy alebo audia."
|
||||
"content": "Viacuživateľská video konferencia s prenosovou rychlosťou iba 128Kbps. Konferencie iba so zdieľaním plochy alebo audia.",
|
||||
"title": "Nízka náročnosť na prenos"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Open source",
|
||||
"content": "__app__ je licencované pod Apache licenciou. Možete ho voľne sťahovať, užívať, modifikovať a zdieľat podľa tejto licencie."
|
||||
"content": "__app__ je licencované pod Apache licenciou. Možete ho voľne sťahovať, užívať, modifikovať a zdieľat podľa tejto licencie.",
|
||||
"title": "Open source"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Neobmedzený počet uživateľov",
|
||||
"content": "Nie ste obmedzený počtom pripojených uživateľov. Jediným obmedzením su zdroje servera a internetového pripojenia."
|
||||
"content": "Nie ste obmedzený počtom pripojených uživateľov. Jediným obmedzením su zdroje servera a internetového pripojenia.",
|
||||
"title": "Neobmedzený počet uživateľov"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Zdieľanie prac. plochy",
|
||||
"content": "Je jednoducho možné zdieľať Vašu prac. plochu. __app__ je ideálne pre on-line prezentácie, školenia a technickú podporu."
|
||||
"content": "Je jednoducho možné zdieľať Vašu prac. plochu. __app__ je ideálne pre on-line prezentácie, školenia a technickú podporu.",
|
||||
"title": "Zdieľanie prac. plochy"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Zabezpečené miestnosti",
|
||||
"content": "Potrebujete súkromie? __app_ konferenčné miestosti možu byť zabezpečené heslom, aby ste predišli neželaným hosťom a vyrušovaniu."
|
||||
"content": "Potrebujete súkromie? __app_ konferenčné miestosti možu byť zabezpečené heslom, aby ste predišli neželaným hosťom a vyrušovaniu.",
|
||||
"title": "Zabezpečené miestnosti"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Zdieľané poznámky",
|
||||
"content": "__app_ poskytuje Etherpad, kooperatívny editor v reálnom čase, ideálny pre zapis zo stretnutia, písanie článkov a veľa iného."
|
||||
"content": "__app_ poskytuje Etherpad, kooperatívny editor v reálnom čase, ideálny pre zapis zo stretnutia, písanie článkov a veľa iného.",
|
||||
"title": "Zdieľané poznámky"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Štatistiky používania",
|
||||
"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."
|
||||
}
|
||||
"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.",
|
||||
"title": "Štatistiky používania"
|
||||
},
|
||||
"go": "Pripojiť",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "Zadajte názov miestnosti",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
@@ -81,9 +99,12 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Vypnúť / Zapnúť mikrofón",
|
||||
"videomute": "",
|
||||
"authenticate": "Overiť",
|
||||
@@ -110,6 +131,13 @@
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Otvoriť / zatvoriť chat",
|
||||
"filmstrip": "",
|
||||
@@ -133,12 +161,10 @@
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"audioVideo": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
@@ -154,13 +180,15 @@
|
||||
"kick": "Vyhodiť",
|
||||
"muted": "Vypnutý mikrofón",
|
||||
"domute": "Vypnút mikrofón",
|
||||
"flip": ""
|
||||
"flip": "",
|
||||
"remoteControl": ""
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Prenos. rýchlosť",
|
||||
"packetloss": "Strata packetov:",
|
||||
"resolution": "Rozlíšenie:",
|
||||
"framerate": "",
|
||||
"less": "Zobraz menej",
|
||||
"more": "Zobraz viac",
|
||||
"address": "Adresa:",
|
||||
@@ -178,7 +206,8 @@
|
||||
"remoteaddress_plural_5": "",
|
||||
"transport": "Prenos:",
|
||||
"bandwidth": "Predpokladaný dat. tok:",
|
||||
"na": "Vrať sa sem pre informácie o spojení hňed ked začne konferencia"
|
||||
"na": "Vrať sa sem pre informácie o spojení hňed ked začne konferencia",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "odpojený",
|
||||
@@ -189,13 +218,14 @@
|
||||
"focus": "Konferenčny focus",
|
||||
"focusFail": "__component__ je nedostupný - skúste znova za __ms__ sek",
|
||||
"grantedTo": "Práva moderátora boli udelené __to__!",
|
||||
"grantedToUnknown": "Práva moderátora boli udelené $t(somebody)!",
|
||||
"grantedToUnknown": "",
|
||||
"muted": "Začali ste rozhovor s vypnutým mikrofónom.",
|
||||
"mutedTitle": "Boli ste stíšený!",
|
||||
"raisedHand": ""
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"allow": "",
|
||||
"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": "",
|
||||
@@ -207,8 +237,6 @@
|
||||
"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",
|
||||
@@ -217,8 +245,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Zabezpečenie zlyhalo",
|
||||
"lockMessage": "Zlyhanie pri pokuse o zabezpečenie konferencie.",
|
||||
@@ -258,8 +285,6 @@
|
||||
"Save": "Uložiť",
|
||||
"recording": "",
|
||||
"recordingToken": "Zadajte názov nahrávky",
|
||||
"Dial": "Volať",
|
||||
"sipMsg": "Vložte SIP číslo",
|
||||
"passwordCheck": "Ste si istý, že chcete odstrániť heslo?",
|
||||
"passwordMsg": "Zadajte heslo pre zabezpečenie miestnosti",
|
||||
"shareLink": "",
|
||||
@@ -282,7 +307,6 @@
|
||||
"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": "",
|
||||
@@ -314,9 +338,23 @@
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"inlineInstallationMsg": "",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Vypnút mikrofón"
|
||||
"muteParticipantButton": "Vypnút mikrofón",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -379,7 +417,73 @@
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "",
|
||||
"streamIdHelp": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Meno",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Volať",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "",
|
||||
"connectionsettings": "Nastavitve povezave",
|
||||
"poweredby": "poganja",
|
||||
"feedback": "",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Ustvarjanje vaše konference ...",
|
||||
"me": "jaz",
|
||||
"speaker": "Govornik",
|
||||
@@ -14,6 +21,10 @@
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "npr. __url__",
|
||||
"callingName": "",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,7 +33,8 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
@@ -36,44 +48,50 @@
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"videoMute": "",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "POJDI",
|
||||
"roomname": "Vpišite ime sobe",
|
||||
"disable": "",
|
||||
"feature1": {
|
||||
"title": "Enostavna uporaba",
|
||||
"content": "Nič ni treba namestiti. __app__ deluje direktno v vašem brskalniku. Enostavno sporočite ostalim udeležencem URL svoje konference in začnite."
|
||||
"content": "Nič ni treba namestiti. __app__ deluje direktno v vašem brskalniku. Enostavno sporočite ostalim udeležencem URL svoje konference in začnite.",
|
||||
"title": "Enostavna uporaba"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Ozka pasovna širina",
|
||||
"content": "Video konferenca z več udeleženci s samo 128Kbps. Deljenje zaslona in samo avdio konference so možne že z veliko nižjo pasovno širino."
|
||||
"content": "Video konferenca z več udeleženci s samo 128Kbps. Deljenje zaslona in samo avdio konference so možne že z veliko nižjo pasovno širino.",
|
||||
"title": "Ozka pasovna širina"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Odprta koda",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": "Odprta koda"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Neomejeno število uporabnikov",
|
||||
"content": "Nobene umetne omejitve števila uporabnikov ali udeležencev konference. Zmogljivost strežnika in pasovna širina sta edini omejitvi."
|
||||
"content": "Nobene umetne omejitve števila uporabnikov ali udeležencev konference. Zmogljivost strežnika in pasovna širina sta edini omejitvi.",
|
||||
"title": "Neomejeno število uporabnikov"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Skupna raba zaslona",
|
||||
"content": "Skupna raba zaslona z drugimi je zelo enostavna. __app__ je idealna rešitev za spletne predstavitve, predavanja in tehnično podporo."
|
||||
"content": "Skupna raba zaslona z drugimi je zelo enostavna. __app__ je idealna rešitev za spletne predstavitve, predavanja in tehnično podporo.",
|
||||
"title": "Skupna raba zaslona"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Varne sobe",
|
||||
"content": "Rabite zasebnost? Konferenčne sobe __app__ so lahko zaklenjene z geslom, da preprečite dostop neželenim gostom ter prekinitve."
|
||||
"content": "Rabite zasebnost? Konferenčne sobe __app__ so lahko zaklenjene z geslom, da preprečite dostop neželenim gostom ter prekinitve.",
|
||||
"title": "Varne sobe"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Skupna raba zapiskov",
|
||||
"content": "__app__ vsebuje Etherpad, realnočasovni skupinski urejevalnik besedil, ki je idealen za pisanje zapisnikov sestankov, člankov in še mnogo drugega."
|
||||
"content": "__app__ vsebuje Etherpad, realnočasovni skupinski urejevalnik besedil, ki je idealen za pisanje zapisnikov sestankov, člankov in še mnogo drugega.",
|
||||
"title": "Skupna raba zapiskov"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Statistika uporabe",
|
||||
"content": "Spoznajte svoje uporabnike z enostavno integracijo v Piwik, Google Analytics ter druge sisteme za nadzor uporabe in statistiko."
|
||||
}
|
||||
"content": "Spoznajte svoje uporabnike z enostavno integracijo v Piwik, Google Analytics ter druge sisteme za nadzor uporabe in statistiko.",
|
||||
"title": "Statistika uporabe"
|
||||
},
|
||||
"go": "POJDI",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "Vpišite ime sobe",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
@@ -81,9 +99,12 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Utišaj / Povrni glasnost",
|
||||
"videomute": "",
|
||||
"authenticate": "Overi",
|
||||
@@ -110,6 +131,13 @@
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Odpri / zapri klepetalnico",
|
||||
"filmstrip": "",
|
||||
@@ -133,12 +161,10 @@
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"audioVideo": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
@@ -154,13 +180,15 @@
|
||||
"kick": "Izženi",
|
||||
"muted": "Utišan",
|
||||
"domute": "Utišaj",
|
||||
"flip": ""
|
||||
"flip": "",
|
||||
"remoteControl": ""
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Bitna hitrost:",
|
||||
"packetloss": "Izgubljeni paketi:",
|
||||
"resolution": "Ločljivost:",
|
||||
"framerate": "",
|
||||
"less": "Pokaži manj",
|
||||
"more": "Pokaži več",
|
||||
"address": "Naslov:",
|
||||
@@ -182,7 +210,8 @@
|
||||
"remoteaddress_plural_3": "Oddaljeni naslovi:",
|
||||
"transport": "Prenos:",
|
||||
"bandwidth": "Ocenjena pasovna širina:",
|
||||
"na": "Ko se konferenca začne se vrnite sem za informacije o povezavi"
|
||||
"na": "Ko se konferenca začne se vrnite sem za informacije o povezavi",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "odklopjeno",
|
||||
@@ -193,13 +222,14 @@
|
||||
"focus": "Fokus na konferenco",
|
||||
"focusFail": "__component__ ni na razpolago - ponovni poskus čez __ms__ sec",
|
||||
"grantedTo": "Moderatorske pravice dodeljene uporabniku __to__!",
|
||||
"grantedToUnknown": "Moderatorske pravice dodeljene uporabniku $t(somebody)!",
|
||||
"grantedToUnknown": "",
|
||||
"muted": "Pogovor ste začeli utišano.",
|
||||
"mutedTitle": "Utišani ste!",
|
||||
"raisedHand": ""
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"allow": "",
|
||||
"kickMessage": "Ojej! Izgnali so vas iz srečanja!",
|
||||
"popupError": "",
|
||||
"passwordErrorTitle": "",
|
||||
@@ -211,8 +241,6 @@
|
||||
"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",
|
||||
@@ -221,8 +249,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Zaklepanje ni uspelo",
|
||||
"lockMessage": "",
|
||||
@@ -262,8 +289,6 @@
|
||||
"Save": "Shrani",
|
||||
"recording": "",
|
||||
"recordingToken": "Vnesite žeton za registracijo",
|
||||
"Dial": "Pokliči",
|
||||
"sipMsg": "Vnesite številko SIP",
|
||||
"passwordCheck": "Ali res želite odstraniti geslo?",
|
||||
"passwordMsg": "Nastavite geslo za zaklepanje sobe",
|
||||
"shareLink": "",
|
||||
@@ -286,7 +311,6 @@
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
@@ -318,9 +342,23 @@
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"inlineInstallationMsg": "",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Utišaj"
|
||||
"muteParticipantButton": "Utišaj",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": "",
|
||||
@@ -373,7 +411,73 @@
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "",
|
||||
"streamIdHelp": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Ime",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Pokliči",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,30 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"contactlist": "Deltagare (__pcount__)",
|
||||
"addParticipants": "Dela URL:en",
|
||||
"roomLocked": "Inringande måste ange lösenord",
|
||||
"roomUnlocked": "Alla med URL:en kan ansluta",
|
||||
"passwordSetRemotely": "satt av en annan deltagare",
|
||||
"connectionsettings": "Anslutningsinställningar",
|
||||
"poweredby": "drivs av",
|
||||
"feedback": "Ge oss din feedback",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Skatta mötesupplevelsen.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Din konferens håller på att skapas...",
|
||||
"me": "jag",
|
||||
"speaker": "Talare",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"raisedHand": "Vill göra ett inlägg",
|
||||
"defaultNickname": "t ex. Emma Röd",
|
||||
"defaultLink": "t ex. __url__",
|
||||
"callingName": "",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,98 +33,115 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "Tillåt användning av din kamera och mikrofon",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
"raiseHand": "",
|
||||
"pushToTalk": "",
|
||||
"toggleScreensharing": "",
|
||||
"toggleFilmstrip": "",
|
||||
"toggleShortcuts": "",
|
||||
"focusLocal": "",
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"keyboardShortcuts": "Tangentbordsgenvägar",
|
||||
"raiseHand": "Räck upp eller ta ner din jag vill ha ordet-hand",
|
||||
"pushToTalk": "Tryck-för-att-prata",
|
||||
"toggleScreensharing": "Växla mellan kamera och skärmdelning",
|
||||
"toggleFilmstrip": "Visa eller dölj videorna ",
|
||||
"toggleShortcuts": "Visa eller dölj hjälpmenyn",
|
||||
"focusLocal": "Sätt fokus på din videobild",
|
||||
"focusRemote": "Sätt fokus på annan deltagares videobild",
|
||||
"toggleChat": "Öppna eller stäng chatten",
|
||||
"mute": "Tysta eller aktivera din mikrofon",
|
||||
"fullScreen": "Aktivera / avaktivera helskärm",
|
||||
"videoMute": "Aktivera / avaktivera din kamera",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"welcomepage": {
|
||||
"go": "KÖR",
|
||||
"roomname": "Skriv in rumsnamn",
|
||||
"disable": "",
|
||||
"disable": "Visa inte denna sida igen",
|
||||
"feature1": {
|
||||
"title": "Enkelt att använda",
|
||||
"content": "Ingen nedladdning behövs. __app__ fungerar direkt inuti din webbläsare. Dela bara din konferens-URL med andra för att börja."
|
||||
"content": "Ingen nedladdning behövs. __app__ fungerar direkt inuti din webbläsare. Dela bara din konferens-URL med andra för att börja.",
|
||||
"title": "Enkelt att använda"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Låg bandbredd",
|
||||
"content": "Flerpartsvideokonferens fungerar med så lite som 128kbps. Skärmdelning och konferens med endast ljud är möjliga med betydligt mindre."
|
||||
"content": "Flerpartsvideokonferens fungerar med så lite som 128kbps. Skärmdelning och konferens med endast ljud är möjliga med betydligt mindre.",
|
||||
"title": "Låg bandbredd"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Öppen källkod",
|
||||
"content": "__app__ är licensierad under Apache-licens. Du är fri att ladda ner, använda, ändra och dela programvaran utifrån den här licensen."
|
||||
"content": "__app__ är licensierad under Apache-licens. Du är fri att ladda ner, använda, ändra och dela programvaran utifrån den här licensen.",
|
||||
"title": "Öppen källkod"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Obegränsade användare",
|
||||
"content": "Det finns inga artificiella restriktioner på antalet användare eller konferensdeltagare. Serverkraft och bandbredd är den enda begränsande faktorn."
|
||||
"content": "Det finns inga artificiella restriktioner på antalet användare eller konferensdeltagare. Serverkraft och bandbredd är den enda begränsande faktorn.",
|
||||
"title": "Obegränsade användare"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Skärmdelning",
|
||||
"content": "Det är enkelt att dela din skärm med andra. __app__ är idealiskt för online-presentationer, föreläsningar och teknikstödssessioner."
|
||||
"content": "Det är enkelt att dela din skärm med andra. __app__ är idealiskt för online-presentationer, föreläsningar och teknikstödssessioner.",
|
||||
"title": "Skärmdelning"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Säkra rum",
|
||||
"content": "Behöver du vara privat? Konferensrummen i __app__ kan säkras med lösenord för att exkludera oönskade gäster och förhindra störningsmoment."
|
||||
"content": "Behöver du vara privat? Konferensrummen i __app__ kan säkras med lösenord för att exkludera oönskade gäster och förhindra störningsmoment.",
|
||||
"title": "Säkra rum"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Delade anteckningar",
|
||||
"content": "__app__ använder sig av Etherpad, en kollaborativ textredigerare där du och konferensdeltagarna gemensamt kan skriva mötesanteckningar, artiklar eller annat."
|
||||
"content": "__app__ använder sig av Etherpad, en kollaborativ textredigerare där du och konferensdeltagarna gemensamt kan skriva mötesanteckningar, artiklar eller annat.",
|
||||
"title": "Delade anteckningar"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Användningsstatistik",
|
||||
"content": "Studera användningsmönster genom enkel integration med Piwik, Google Analytics och andra monitorerings- och statistiksystem."
|
||||
}
|
||||
"content": "Studera användningsmönster genom enkel integration med Piwik, Google Analytics och andra monitorerings- och statistiksystem.",
|
||||
"title": "Användningsstatistik"
|
||||
},
|
||||
"go": "KÖR",
|
||||
"join": "Gå med",
|
||||
"privacy": "Integritet",
|
||||
"roomname": "Skriv in rumsnamn",
|
||||
"roomnamePlaceHolder": "rumsnamn",
|
||||
"sendFeedback": "Ge återkoppling",
|
||||
"terms": "Termer"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
"title": ""
|
||||
"title": "__app__ vill använda din kamera och mikrofon."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"rejoinKeyTitle": ""
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Gå med igen"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Slå av/på ljud",
|
||||
"videomute": "",
|
||||
"videomute": "Aktivera / avaktivera kameran",
|
||||
"authenticate": "Autentisera",
|
||||
"lock": "",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"lock": "Lås / lås upp rummet",
|
||||
"invite": "Dela URL:en",
|
||||
"chat": "Öppna / stäng chatten",
|
||||
"etherpad": "Öppna / stäng delade dokument",
|
||||
"sharedvideo": "Dela en Youtube-video",
|
||||
"sharescreen": "Aktivera / avaktivera skärmdelning",
|
||||
"fullscreen": "Aktivera / avaktivera helskärm",
|
||||
"sip": "Ring SIP-nummer",
|
||||
"Settings": "Inställningar",
|
||||
"hangup": "",
|
||||
"hangup": "Lämna",
|
||||
"login": "Logga in",
|
||||
"logout": "Logga ut",
|
||||
"dialpad": "",
|
||||
"sharedVideoMutedPopup": "",
|
||||
"micMutedPopup": "",
|
||||
"talkWhileMutedPopup": "",
|
||||
"unableToUnmutePopup": "",
|
||||
"cameraDisabled": "",
|
||||
"micDisabled": "",
|
||||
"filmstrip": "",
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
"dialpad": "Visa / dölj knappsatsen",
|
||||
"sharedVideoMutedPopup": "Din delade video har stängts av så<br/>att du kan prata med de andra deltagarna.",
|
||||
"micMutedPopup": "Din mikrofon har tystats så<br/>att du kan njuta av din delade video.",
|
||||
"talkWhileMutedPopup": "Försöker du tala? Din mikrofon är tystad.",
|
||||
"unableToUnmutePopup": "Du kan inte slå på mikrofonen när delad video är på.",
|
||||
"cameraDisabled": "Kameran är inte tillgänglig",
|
||||
"micDisabled": "Mikrofonen är inte tillgänglig",
|
||||
"filmstrip": "Visa / dölj videor",
|
||||
"profile": "Redigera din profil",
|
||||
"raiseHand": "Räck upp / ta ner din hand"
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "eller om du redan har den<br /><strong>då</strong>",
|
||||
"appNotInstalled": "Du behöver <strong>__app__</strong> för att gå med i mötet på din mobil",
|
||||
"downloadApp": "Hämta appen",
|
||||
"joinConversation": "Gå med i samtalet",
|
||||
"startConference": "Påbörja ett möte"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Öppna / stäng chat",
|
||||
"filmstrip": "",
|
||||
"contactlist": ""
|
||||
"filmstrip": "Visa eller dölj videor",
|
||||
"contactlist": "Bjud in deltagare"
|
||||
},
|
||||
"chat": {
|
||||
"nickname": {
|
||||
@@ -126,41 +154,41 @@
|
||||
"title": "Inställningar",
|
||||
"update": "Uppdatera",
|
||||
"name": "Namn",
|
||||
"startAudioMuted": "",
|
||||
"startVideoMuted": "",
|
||||
"selectCamera": "",
|
||||
"selectMic": "",
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"startAudioMuted": "Alla börjar tystade",
|
||||
"startVideoMuted": "Alla börjar osynliga",
|
||||
"selectCamera": "Kamera",
|
||||
"selectMic": "Mikrofon",
|
||||
"selectAudioOutput": "Ljudutmatning",
|
||||
"followMe": "Alla följer mej",
|
||||
"noDevice": "Inga enheter",
|
||||
"cameraAndMic": "Kamera och mikrofon",
|
||||
"moderator": "MODERATOR",
|
||||
"password": "Ställ in lösenord",
|
||||
"audioVideo": "Audio och video"
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
"setDisplayNameLabel": "",
|
||||
"setEmailLabel": "",
|
||||
"setEmailInput": ""
|
||||
"title": "Profil",
|
||||
"setDisplayNameLabel": "Ange ditt visningsnamn",
|
||||
"setEmailLabel": "Ange din gravatar-e-postadress",
|
||||
"setEmailInput": "Skriv e-postadress"
|
||||
},
|
||||
"videothumbnail": {
|
||||
"editnickname": "Klicka här för att <br/>redigera namn",
|
||||
"moderator": "Ägaren av den<br/>här konferensen",
|
||||
"videomute": "",
|
||||
"videomute": "Deltagaren har<br/>stängt av kameran.",
|
||||
"mute": "Deltagaren har avstängd mikrofon",
|
||||
"kick": "Sparka ut",
|
||||
"muted": "Tystad",
|
||||
"domute": "Tysta",
|
||||
"flip": ""
|
||||
"flip": "Vänd",
|
||||
"remoteControl": "Fjärrkontroll"
|
||||
},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"header": "Anslutningsinformation",
|
||||
"bitrate": "Bithastighet:",
|
||||
"packetloss": "Paketförluster:",
|
||||
"resolution": "Upplösning:",
|
||||
"framerate": "",
|
||||
"less": "Visa mindre",
|
||||
"more": "Visa mer",
|
||||
"address": "Adress:",
|
||||
@@ -174,7 +202,8 @@
|
||||
"remoteaddress_plural": "Fjärradresser:",
|
||||
"transport": "Transport:",
|
||||
"bandwidth": "Beräknad bandbredd:",
|
||||
"na": "Återkom hit för uppkopplingsinformation när konferensen startat"
|
||||
"na": "Återkom hit för uppkopplingsinformation när konferensen startat",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "frånkopplad",
|
||||
@@ -185,27 +214,26 @@
|
||||
"focus": "Konferensfokus",
|
||||
"focusFail": "__componen__ inte tillgänglig - försöker igen om __ms__ sek",
|
||||
"grantedTo": "Moderatorsrättigheter tilldelat till __to__!",
|
||||
"grantedToUnknown": "Moderatorsrättigheter tilldelat till $t(somebody)!",
|
||||
"grantedToUnknown": "",
|
||||
"muted": "Du har startat konversationen utan mikrofon.",
|
||||
"mutedTitle": "Du har mikrofonen avstängd!",
|
||||
"raisedHand": ""
|
||||
"raisedHand": "Begär ordet."
|
||||
},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"add": "Lägg till",
|
||||
"allow": "",
|
||||
"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": "",
|
||||
"passwordErrorTitle": "Lösenordsfel",
|
||||
"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": "",
|
||||
"incorrectPassword": "Lösenordet är felaktigt",
|
||||
"connecting": "Ansluter",
|
||||
"copy": "",
|
||||
"copy": "Kopiera",
|
||||
"error": "Fel",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"createPassword": "Ange ett lösenord",
|
||||
"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.",
|
||||
@@ -213,37 +241,36 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "Gränsen för antal deltagare är nådd. Konferensrummet är full. Försök igen senare!",
|
||||
"lockTitle": "Låsning misslyckades",
|
||||
"lockMessage": "Misslyckades att låsa konferensen.",
|
||||
"warning": "Varning",
|
||||
"passwordNotSupported": "Rumslösenord stöds inte för tillfället.",
|
||||
"internalErrorTitle": "",
|
||||
"internalError": "",
|
||||
"internalErrorTitle": "Internt fel",
|
||||
"internalError": "Hoppsan! Något gick fel: [setRemoteDescription]",
|
||||
"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": "",
|
||||
"currentPassword": "Nuvarande lösenord är",
|
||||
"passwordLabel": "Lösenord",
|
||||
"defaultError": "Det uppstod någon typ av fel",
|
||||
"passwordRequired": "Lösenord krävs",
|
||||
"Ok": "Ok",
|
||||
"done": "",
|
||||
"done": "Klar",
|
||||
"Remove": "Ta bort",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"removeSharedVideoTitle": "",
|
||||
"removeSharedVideoMsg": "",
|
||||
"alreadySharedVideoMsg": "",
|
||||
"removePassword": "Ta bort lösenordet",
|
||||
"shareVideoTitle": "Ta bort en delad video",
|
||||
"shareVideoLinkError": "Skriv in en fungerande Youtube-länk.",
|
||||
"removeSharedVideoTitle": "Ta bort den delade videon",
|
||||
"removeSharedVideoMsg": "Är du säker på att du vill ta bort din delade video?",
|
||||
"alreadySharedVideoMsg": "En annan deltagare delar redan en video. Mötesrummet tillåter endast en delad video åt gången.",
|
||||
"WaitingForHost": "Väntar på värden ...",
|
||||
"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": "",
|
||||
"Submit": "Skicka",
|
||||
"retry": "Försök igen",
|
||||
"logoutTitle": "Logga ut",
|
||||
"logoutQuestion": "Är du säker på att du vill logga ut och stoppa konferensen?",
|
||||
@@ -252,69 +279,79 @@
|
||||
"joinAgain": "Anslut igen",
|
||||
"Share": "Dela",
|
||||
"Save": "Spara",
|
||||
"recording": "",
|
||||
"recording": "Inspelning",
|
||||
"recordingToken": "Skriv in inspelnings-token",
|
||||
"Dial": "Ring upp",
|
||||
"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",
|
||||
"shareLink": "",
|
||||
"shareLink": "Dela URL:en till mötesrummet",
|
||||
"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": "",
|
||||
"yourPassword": "Ange nytt lösenord",
|
||||
"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": "",
|
||||
"password": "Ange lösenord",
|
||||
"userPassword": "användarlösenord",
|
||||
"token": "token",
|
||||
"tokenAuthFailedTitle": "",
|
||||
"tokenAuthFailed": "",
|
||||
"displayNameRequired": "",
|
||||
"enterDisplayName": "",
|
||||
"tokenAuthFailedTitle": "Autentisering misslyckades",
|
||||
"tokenAuthFailed": "Du är inte behörig att delta i det här samtalet.",
|
||||
"displayNameRequired": "Visningsnamn krävs",
|
||||
"enterDisplayName": "Skriv ditt visningsnamn",
|
||||
"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>!",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"feedbackHelp": "Din återkoppling gör att vi kan förbättra videoupplevelsen.",
|
||||
"feedbackQuestion": "Berätta om ditt samtal!",
|
||||
"thankYou": "Tack för att du använder __appName__!",
|
||||
"sorryFeedback": "Tråkigt att du känner så. Vill du berätta mer?",
|
||||
"liveStreaming": "",
|
||||
"streamKey": "",
|
||||
"startLiveStreaming": "",
|
||||
"stopStreamingWarning": "",
|
||||
"stopRecordingWarning": "",
|
||||
"stopLiveStreaming": "",
|
||||
"stopRecording": "",
|
||||
"doNotShowWarningAgain": "",
|
||||
"doNotShowMessageAgain": "",
|
||||
"permissionDenied": "",
|
||||
"screenSharingPermissionDeniedError": "",
|
||||
"micErrorPresent": "",
|
||||
"cameraErrorPresent": "",
|
||||
"cameraUnsupportedResolutionError": "",
|
||||
"cameraUnknownError": "",
|
||||
"cameraPermissionDeniedError": "",
|
||||
"cameraNotFoundError": "",
|
||||
"liveStreaming": "Strömma",
|
||||
"streamKey": "Strömnamn/nyckel",
|
||||
"startLiveStreaming": "Strömma",
|
||||
"stopStreamingWarning": "Vill du avsluta den pågående strömningen?",
|
||||
"stopRecordingWarning": "Vill du avsluta den pågående inspelningen?",
|
||||
"stopLiveStreaming": "Avsluta strömningen",
|
||||
"stopRecording": "Avsluta inspelningen",
|
||||
"doNotShowWarningAgain": "Visa inte denna varning igen",
|
||||
"doNotShowMessageAgain": "Visa inte detta meddelande igen",
|
||||
"permissionDenied": "Åtkomst nekad",
|
||||
"screenSharingPermissionDeniedError": "Du har inte gett tillåtelse att dela din skärm.",
|
||||
"micErrorPresent": "Kunde inte ansluta din mikrofon.",
|
||||
"cameraErrorPresent": "Det gick inte att ansluta din kamera.",
|
||||
"cameraUnsupportedResolutionError": "Din kamera stöder inte den krävda videoupplösningen.",
|
||||
"cameraUnknownError": "Av okänd anledning kan din kamera inte användas.",
|
||||
"cameraPermissionDeniedError": "Du har inte tillåtit användning av din kamera. Du kan gå med i mötet men de andra kan då inte se dej. Om du vill tillåta användning av din kamera gör du det via kameraknappen i URL-fältet.",
|
||||
"cameraNotFoundError": "Hittar ingen kamera.",
|
||||
"cameraConstraintFailedError": "",
|
||||
"micUnknownError": "",
|
||||
"micPermissionDeniedError": "",
|
||||
"micNotFoundError": "",
|
||||
"micUnknownError": "Av okänd anledning kan inte din mikrofon användas.",
|
||||
"micPermissionDeniedError": "Du har inte tillåtit användning av din mikrofon. Du kan gå med i mötet men de andra kan då inte höra dej. Om du vill tillåta användning av din mikrofon gör du det via mikrofonknappen i URL-fältet.",
|
||||
"micNotFoundError": "Hittar ingen mikrofon.",
|
||||
"micConstraintFailedError": "",
|
||||
"micNotSendingData": "",
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Tysta"
|
||||
"micNotSendingData": "Kan inte ansluta din mikrofon. Välj en annan mikrofonenhet från inställningsmenyn eller försök starta/ladda om.",
|
||||
"cameraNotSendingData": "Kan inte ansluta din kamera. Välj en annan kameraenhet från inställningsmenyn eller försök starta/ladda om.",
|
||||
"goToStore": "Gå till appbutiken",
|
||||
"externalInstallationTitle": "Tillägg krävs",
|
||||
"externalInstallationMsg": "Misslyckades att installera skrivbordsdelnings-tillägget.",
|
||||
"inlineInstallationMsg": "Misslyckades att installera skrivbordsdelnings-tillägget.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "Tysta deltagaren?",
|
||||
"muteParticipantBody": "Du kan inte aktivera deras mikrofoner, men de kan göra det själva.",
|
||||
"muteParticipantButton": "Tysta",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "__user__ avböjde din begäran om fjärrstyrning.",
|
||||
"remoteControlAllowedMessage": "__user__ godkände din begäran om fjärrstyrning.",
|
||||
"remoteControlErrorMessage": "Ett fel uppstod när fjärrstyrningsrättigheter begärdes från __user__.",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "Fjärrstyrningssessionen avslutades.",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
"Den här konferensen är lösenordsskyddad. Vänligen använd följande kod när du kopplar upp dig:",
|
||||
@@ -356,23 +393,89 @@
|
||||
"ATTACHED": "Ansluten"
|
||||
},
|
||||
"recording": {
|
||||
"pending": "",
|
||||
"on": "",
|
||||
"off": "",
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"error": "",
|
||||
"unavailable": ""
|
||||
"pending": "Inspelningen väntar på att deltagare ska gå med ...",
|
||||
"on": "Inspelning",
|
||||
"off": "Inspelningen avslutades",
|
||||
"failedToStart": "Inspelningen kunde inte påbörjas",
|
||||
"buttonTooltip": "Börja / sluta spela in",
|
||||
"error": "Inspelningen misslyckades. Försök igen.",
|
||||
"unavailable": "Inspelningstjänsten är tillfälligt inte tillgänglig. Försök igen senare."
|
||||
},
|
||||
"liveStreaming": {
|
||||
"pending": "",
|
||||
"on": "",
|
||||
"off": "",
|
||||
"unavailable": "",
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
"pending": "Börja strömma ...",
|
||||
"on": "Strömma",
|
||||
"off": "Strömning avslutad",
|
||||
"unavailable": "Strömningstjänsten är tillfälligt inte tillgänglig. Försök igen senare.",
|
||||
"failedToStart": "Strömningen kunde inte påbörjas",
|
||||
"buttonTooltip": "Börja / sluta strömma",
|
||||
"streamIdRequired": "Fyll i strömnings-id:t för att för att börja strömma.",
|
||||
"streamIdHelp": "Var hittar jag det?",
|
||||
"error": "Strömning misslyckades. Försök igen.",
|
||||
"busy": "Alla inspelare är upptagna. Försök igen senare."
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Namn",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Ring upp",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Lägg till",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,30 @@
|
||||
{
|
||||
"contactlist": "",
|
||||
"contactlist": "Katılımcılar (__pcount__)",
|
||||
"addParticipants": "",
|
||||
"roomLocked": "",
|
||||
"roomUnlocked": "",
|
||||
"passwordSetRemotely": "",
|
||||
"roomLocked": "Katılımcı şifresi zorunludur",
|
||||
"roomUnlocked": "Bağlantı ile herkes katılabilir.",
|
||||
"passwordSetRemotely": "Diğer katılımcı tarafından ayarlandı",
|
||||
"connectionsettings": "Bağlantı Ayarları",
|
||||
"poweredby": "Gücünün kaynağı",
|
||||
"feedback": "",
|
||||
"inviteUrlDefaultMsg": "",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Konferans başlatılıyor...",
|
||||
"me": "",
|
||||
"speaker": "",
|
||||
"raisedHand": "",
|
||||
"defaultNickname": "",
|
||||
"defaultLink": "",
|
||||
"callingName": "",
|
||||
"audioOnly": {
|
||||
"audioOnly": "",
|
||||
"featureToggleDisabled": ""
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
@@ -22,7 +33,8 @@
|
||||
"operaGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"safariGrantPermissions": "",
|
||||
"nwjsGrantPermissions": ""
|
||||
"nwjsGrantPermissions": "",
|
||||
"edgeGrantPermissions": ""
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "",
|
||||
@@ -35,45 +47,52 @@
|
||||
"focusRemote": "",
|
||||
"toggleChat": "",
|
||||
"mute": "",
|
||||
"fullScreen": "",
|
||||
"videoMute": ""
|
||||
"fullScreen": "Tam Ekrana Gir / Çık",
|
||||
"videoMute": "",
|
||||
"showSpeakerStats": ""
|
||||
},
|
||||
"\u0005keyboardShortcuts": {},
|
||||
"welcomepage": {
|
||||
"go": "GİT",
|
||||
"roomname": "Oda adı girin",
|
||||
"disable": "",
|
||||
"feature1": {
|
||||
"title": "Kullanımı kolay",
|
||||
"content": "İndirmeye gerek yok. __app__ tarayıcınızda doğrudan çalışır. Başlamak için görüşme bağlantısını URL diğerleri ile paylaşın."
|
||||
"content": "İndirmeye gerek yok. __app__ tarayıcınızda doğrudan çalışır. Başlamak için görüşme bağlantısını URL diğerleri ile paylaşın.",
|
||||
"title": "Kullanımı kolay"
|
||||
},
|
||||
"feature2": {
|
||||
"title": "Düşük bant genişliği ihtiyacı",
|
||||
"content": "Ekran paylaşımı ve sadece ses ile çok katılımcılı video görüşmeleri, 128Kbps bağlantı ile mümkündür."
|
||||
"content": "Ekran paylaşımı ve sadece ses ile çok katılımcılı video görüşmeleri, 128Kbps bağlantı ile mümkündür.",
|
||||
"title": "Düşük bant genişliği ihtiyacı"
|
||||
},
|
||||
"feature3": {
|
||||
"title": "Açık kaynak kodlu",
|
||||
"content": ""
|
||||
"content": "",
|
||||
"title": "Açık kaynak kodlu"
|
||||
},
|
||||
"feature4": {
|
||||
"title": "Sınırsız sayıda kullanıcı",
|
||||
"content": "Kullanıcılar veya konferans katılımcılarının sayısında hiçbir yapay kısıtlama yoktur. Sadece sunucun güç ve bant genişliği, sınırlayıcı unsurdur."
|
||||
"content": "Kullanıcılar veya konferans katılımcılarının sayısında hiçbir yapay kısıtlama yoktur. Sadece sunucun güç ve bant genişliği, sınırlayıcı unsurdur.",
|
||||
"title": "Sınırsız sayıda kullanıcı"
|
||||
},
|
||||
"feature5": {
|
||||
"title": "Ekran paylaşımı",
|
||||
"content": "Diğerlerinle ekranınızı kolayca paylaşın. __app__ çevrimiçi sunumlar, dersler ve teknik destek oturumları için idealdir."
|
||||
"content": "Diğerlerinle ekranınızı kolayca paylaşın. __app__ çevrimiçi sunumlar, dersler ve teknik destek oturumları için idealdir.",
|
||||
"title": "Ekran paylaşımı"
|
||||
},
|
||||
"feature6": {
|
||||
"title": "Güvenli odalar",
|
||||
"content": "Biraz gizliliğe ihtiyacınız var? __app__ görüşme odaları, istemeyen misafirleri uzak tutmak ve kesinleri önlemek için bir parola ile güvence altına alınabilir."
|
||||
"content": "Biraz gizliliğe ihtiyacınız var? __app__ görüşme odaları, istemeyen misafirleri uzak tutmak ve kesinleri önlemek için bir parola ile güvence altına alınabilir.",
|
||||
"title": "Güvenli odalar"
|
||||
},
|
||||
"feature7": {
|
||||
"title": "Paylaşımlı notlar",
|
||||
"content": "__app__ Etherpad içerir, gerçek zamanlı bir ortak çalışma metin düzenleyicisidir. Görüşme tutanakları, makale yazımı ve daha fazlası için biçilmiş kaftandır."
|
||||
"content": "__app__ Etherpad içerir, gerçek zamanlı bir ortak çalışma metin düzenleyicisidir. Görüşme tutanakları, makale yazımı ve daha fazlası için biçilmiş kaftandır.",
|
||||
"title": "Paylaşımlı notlar"
|
||||
},
|
||||
"feature8": {
|
||||
"title": "Kullanım istatistikleri",
|
||||
"content": "Piwik, Google Analytics ve diğer kullanım izleme ve istatistik sistemleri ile kolay tümleştirmeyle kullanıcılar hakkında bilgi edinin."
|
||||
}
|
||||
"content": "Piwik, Google Analytics ve diğer kullanım izleme ve istatistik sistemleri ile kolay tümleştirmeyle kullanıcılar hakkında bilgi edinin.",
|
||||
"title": "Kullanım istatistikleri"
|
||||
},
|
||||
"go": "GİT",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"roomname": "Oda adı girin",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": "",
|
||||
@@ -81,19 +100,22 @@
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": ""
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "",
|
||||
"mute": "Sessiz / Sesli",
|
||||
"videomute": "",
|
||||
"videomute": "Kamera başlat / durdur",
|
||||
"authenticate": "Kimlik doğrula",
|
||||
"lock": "",
|
||||
"lock": "Odayı kilitle / kilit aç",
|
||||
"invite": "",
|
||||
"chat": "",
|
||||
"chat": "Sohbeti aç / kapa",
|
||||
"etherpad": "",
|
||||
"sharedvideo": "",
|
||||
"sharescreen": "",
|
||||
"fullscreen": "",
|
||||
"fullscreen": "Tam Ekrana Gir / Çık",
|
||||
"sip": "SIP numara ara",
|
||||
"Settings": "Ayarlar",
|
||||
"hangup": "",
|
||||
@@ -110,6 +132,14 @@
|
||||
"profile": "",
|
||||
"raiseHand": ""
|
||||
},
|
||||
"\u0005toolbar": {},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "Sohbeti aç / kapa",
|
||||
"filmstrip": "",
|
||||
@@ -133,12 +163,10 @@
|
||||
"selectAudioOutput": "",
|
||||
"followMe": "",
|
||||
"noDevice": "",
|
||||
"noPermission": "",
|
||||
"cameraAndMic": "",
|
||||
"moderator": "",
|
||||
"password": "",
|
||||
"audioVideo": "",
|
||||
"setPasswordLabel": ""
|
||||
"audioVideo": ""
|
||||
},
|
||||
"profile": {
|
||||
"title": "",
|
||||
@@ -149,18 +177,21 @@
|
||||
"videothumbnail": {
|
||||
"editnickname": "Görünür adınızı değiştirmek<br/>için tıkla",
|
||||
"moderator": "Bu görüşmenin<br/>sahibi",
|
||||
"videomute": "",
|
||||
"videomute": "Katılımcı<br/>kamera durdurdu.",
|
||||
"mute": "Katılımcı sessiz",
|
||||
"kick": "Kovuldu",
|
||||
"muted": "Sessiz",
|
||||
"domute": "Sustur",
|
||||
"flip": ""
|
||||
"flip": "",
|
||||
"remoteControl": ""
|
||||
},
|
||||
"\u0005videothumbnail": {},
|
||||
"connectionindicator": {
|
||||
"header": "",
|
||||
"bitrate": "Bit hızı:",
|
||||
"packetloss": "Paket kaybı:",
|
||||
"resolution": "Çözünürlük:",
|
||||
"framerate": "",
|
||||
"less": "Daha az göster",
|
||||
"more": "Daha fazla göster",
|
||||
"address": "Adres:",
|
||||
@@ -170,7 +201,8 @@
|
||||
"remoteaddress": "Uzak adres:Uzak adresler:",
|
||||
"transport": "Transport:",
|
||||
"bandwidth": "Tahmini bant genişliği:",
|
||||
"na": "Görüşme başladıktan sonra bağlantı bilgileri için buraya gel"
|
||||
"na": "Görüşme başladıktan sonra bağlantı bilgileri için buraya gel",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "bağlantı kesildi",
|
||||
@@ -186,8 +218,10 @@
|
||||
"mutedTitle": "",
|
||||
"raisedHand": ""
|
||||
},
|
||||
"\u0005notify": {},
|
||||
"dialog": {
|
||||
"add": "",
|
||||
"allow": "",
|
||||
"kickMessage": "Ahhh! Görüşmeden, kavuldun!",
|
||||
"popupError": "",
|
||||
"passwordErrorTitle": "",
|
||||
@@ -199,8 +233,6 @@
|
||||
"connecting": "",
|
||||
"copy": "",
|
||||
"error": "Hata",
|
||||
"roomLocked": "",
|
||||
"addPassword": "",
|
||||
"createPassword": "",
|
||||
"detectext": "Ekran paylaşımı eklentisi tespit edilirken hata.",
|
||||
"failtoinstall": "Masaüstü paylaşım eklentisi yüklenemedi",
|
||||
@@ -209,8 +241,7 @@
|
||||
"conferenceReloadMsg": "",
|
||||
"conferenceDisconnectTitle": "",
|
||||
"conferenceDisconnectMsg": "",
|
||||
"reconnectNow": "",
|
||||
"conferenceReloadTimeLeft": "",
|
||||
"rejoinNow": "",
|
||||
"maxUsersLimitReached": "",
|
||||
"lockTitle": "Kilitlenemedi",
|
||||
"lockMessage": "Görüşme kilitlenemedi.",
|
||||
@@ -231,9 +262,9 @@
|
||||
"Remove": "Kaldır",
|
||||
"removePassword": "",
|
||||
"shareVideoTitle": "",
|
||||
"shareVideoLinkError": "",
|
||||
"shareVideoLinkError": "Lütfen doğru prezi bağlantısı verin.",
|
||||
"removeSharedVideoTitle": "",
|
||||
"removeSharedVideoMsg": "",
|
||||
"removeSharedVideoMsg": "Prezi kaldırmak istediğinizden emin misiniz?",
|
||||
"alreadySharedVideoMsg": "",
|
||||
"WaitingForHost": "",
|
||||
"WaitForHostMsg": "",
|
||||
@@ -250,22 +281,20 @@
|
||||
"Save": "Kaydet",
|
||||
"recording": "",
|
||||
"recordingToken": "Kayıt jetonu girin",
|
||||
"Dial": "Ara",
|
||||
"sipMsg": "SIP numarası gir",
|
||||
"passwordCheck": "Parolanızı kaldırmak istediğinizden emin misiniz?",
|
||||
"passwordMsg": "Odanızı kilitlemek için bir parola koyun",
|
||||
"shareLink": "",
|
||||
"settings1": "Görüşmenizi yapılandır",
|
||||
"settings2": "Katılımcılar sessiz katılsın",
|
||||
"settings3": "Takma adlar gerekli<br/><br/>Odanızı kitlemek için bir parola ayarlayın:",
|
||||
"yourPassword": "",
|
||||
"yourPassword": "parolanız",
|
||||
"Back": "Geri",
|
||||
"serviceUnavailable": "Hizmet kullanım dışı",
|
||||
"gracefulShutdown": "Hizmetimiz bakıp için durduruldu. Daha sonra tekrar deneyiniz.",
|
||||
"Yes": "Evet",
|
||||
"reservationError": "Rezervasyon sistemi hatası",
|
||||
"reservationErrorMsg": "Hata kodu: __code__, mesaj: __msg__",
|
||||
"password": "",
|
||||
"password": "parolanız",
|
||||
"userPassword": "parolanız",
|
||||
"token": "",
|
||||
"tokenAuthFailedTitle": "",
|
||||
@@ -274,7 +303,6 @@
|
||||
"enterDisplayName": "",
|
||||
"extensionRequired": "",
|
||||
"firefoxExtensionPrompt": "",
|
||||
"rateExperience": "",
|
||||
"feedbackHelp": "",
|
||||
"feedbackQuestion": "",
|
||||
"thankYou": "",
|
||||
@@ -305,10 +333,24 @@
|
||||
"cameraNotSendingData": "",
|
||||
"goToStore": "",
|
||||
"externalInstallationTitle": "",
|
||||
"externalInstallationMsg": "",
|
||||
"externalInstallationMsg": "Masaüstü paylaşım eklentisi yüklenemedi",
|
||||
"inlineInstallationMsg": "Masaüstü paylaşım eklentisi yüklenemedi",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "",
|
||||
"muteParticipantBody": "",
|
||||
"muteParticipantButton": "Sustur"
|
||||
"muteParticipantButton": "Sustur",
|
||||
"remoteControlTitle": "",
|
||||
"remoteControlRequestMessage": "",
|
||||
"remoteControlShareScreenWarning": "",
|
||||
"remoteControlDeniedMessage": "",
|
||||
"remoteControlAllowedMessage": "",
|
||||
"remoteControlErrorMessage": "",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "",
|
||||
"close": "",
|
||||
"shareYourScreen": "",
|
||||
"yourEntireScreen": "",
|
||||
"applicationWindow": ""
|
||||
},
|
||||
"\u0005dialog": {},
|
||||
"email": {
|
||||
@@ -347,7 +389,73 @@
|
||||
"failedToStart": "",
|
||||
"buttonTooltip": "",
|
||||
"streamIdRequired": "",
|
||||
"streamIdHelp": "",
|
||||
"error": "",
|
||||
"busy": ""
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "",
|
||||
"minutes": "",
|
||||
"name": "Ad",
|
||||
"seconds": "",
|
||||
"speakerStats": "",
|
||||
"speakerTime": ""
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "",
|
||||
"noPermission": "",
|
||||
"previewUnavailable": "",
|
||||
"selectADevice": "",
|
||||
"testAudio": ""
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "",
|
||||
"inviteTo": "",
|
||||
"invitedYouTo": "",
|
||||
"locked": "",
|
||||
"showPassword": "",
|
||||
"unlocked": ""
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Ara",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,19 @@
|
||||
{
|
||||
"contactlist": "Người tham gia (__pcount__)",
|
||||
"addParticipants": "",
|
||||
"addParticipants": "Chia sẻ đường dẫn",
|
||||
"roomLocked": "Người gọi phải nhập mật khẩu",
|
||||
"roomUnlocked": "Bất kỳ ai có đường dẫn có thể tham gia",
|
||||
"passwordSetRemotely": "được thiết lập bởi một người khác",
|
||||
"connectionsettings": "Cài đặt kết nối",
|
||||
"poweredby": "Được hỗ trợ bởi",
|
||||
"feedback": "Góp ý cho chúng tôi",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "Vui lòng đánh giá trải nghiệm cuộc họp của bạn.",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "Hội nghị của bạn hiện đang được tạo...",
|
||||
"me": "Tôi",
|
||||
"speaker": "Diễn giả",
|
||||
@@ -16,16 +23,15 @@
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "Chỉ âm thanh",
|
||||
"featureToggleDisabled": "Việc chuyển đổi __feature__ bị vô hiệu hóa khi đang ở chế độ chỉ âm thanh",
|
||||
"howToDisable": "Chế độ chỉ âm thanh đang được kích hoạt. Nhấp vào nút chỉ âm thanh ở thanh công cụ để vô hiệu hóa tính năng này"
|
||||
"featureToggleDisabled": "Việc chuyển đổi __feature__ bị vô hiệu hóa khi đang ở chế độ chỉ âm thanh"
|
||||
},
|
||||
"userMedia": {
|
||||
"react-nativeGrantPermissions": "",
|
||||
"chromeGrantPermissions": "",
|
||||
"androidGrantPermissions": "",
|
||||
"react-nativeGrantPermissions": "Chọn <b><i>Cho phép</i></b> khi trình duyệt của bạn yêu cầu cấp phép.",
|
||||
"chromeGrantPermissions": "Chọn <b><i>Cho phép</i></b> khi trình duyệt của bạn yêu cầu cấp phép.",
|
||||
"androidGrantPermissions": "Chọn <b><i>Cho phép</i></b> khi trình duyệt của bạn yêu cầu cấp phép.",
|
||||
"firefoxGrantPermissions": "Chọn <b><i>Chia sẻ thiết bị đã chọn</i></b> khi trình duyệt của bạn yêu cầu cấp phép.",
|
||||
"operaGrantPermissions": "Chọn <b><i>Cho phép</i></b> khi trình duyệt của bạn yêu cầu cấp phép.",
|
||||
"iexplorerGrantPermissions": "",
|
||||
"iexplorerGrantPermissions": "Chọn <b><i>Có</i></b> khi trình duyệt của bạn yêu cầu cấp phép.",
|
||||
"safariGrantPermissions": "Chọn <b><i>Có</i></b> khi trình duyệt của bạn yêu cầu cấp phép.",
|
||||
"nwjsGrantPermissions": "Vui lòng cấp quyền sử dụng camera và microphone của bạn",
|
||||
"edgeGrantPermissions": "Chọn <b><i>Có</i></b> khi trình duyệt của bạn yêu cầu cấp phép."
|
||||
@@ -92,11 +98,12 @@
|
||||
"title": "__app__ cần sử dụng microphone và camera của bạn."
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "Cuộc gọi video của bạn đã bị gián đoạn vì máy tính này đã chuyển sang trạng thái ngủ.",
|
||||
"text": "Bấm nút <i>Tham gia lại</i> để kết nối trở lại cuộc trò chuyện của bạn.",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "Tham gia lại"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "Bật / Tắt chế độ chỉ âm thanh (tiết kiệm băng thông)",
|
||||
"mute": "Tắt tiếng / Bật tiếng",
|
||||
"videomute": "Bật / Tắt camera",
|
||||
@@ -109,10 +116,10 @@
|
||||
"sharescreen": "Bắt đầu / Kết thúc chia sẻ màn hình",
|
||||
"fullscreen": "Bật / Tắt chế độ toàn màn hình",
|
||||
"sip": "Gọi số SIP",
|
||||
"Settings": "",
|
||||
"Settings": "Cài đặt",
|
||||
"hangup": "Thoát",
|
||||
"login": "Đăng nhập",
|
||||
"logout": "",
|
||||
"logout": "Đăng xuất",
|
||||
"dialpad": "Mở / Đóng bàn phím số",
|
||||
"sharedVideoMutedPopup": "Video chia sẻ của bạn đã bị tắt tiếng <br/> để bạn có thể nói chuyện với những người tham gia khác.",
|
||||
"micMutedPopup": "Microphone của bạn đã bị tắt tiếng để bạn <br/> có thể thưởng thức video đã chia sẻ của bạn.",
|
||||
@@ -146,7 +153,7 @@
|
||||
"settings": {
|
||||
"title": "Cài đặt",
|
||||
"update": "Cập nhật",
|
||||
"name": "",
|
||||
"name": "Tên",
|
||||
"startAudioMuted": "Mọi người bắt đầu đều bị tắt tiếng",
|
||||
"startVideoMuted": "Mọi người bắt đầu đều bị ẩn",
|
||||
"selectCamera": "Camera",
|
||||
@@ -172,7 +179,7 @@
|
||||
"mute": "Người tham gia bị tắt tiếng",
|
||||
"kick": "Đẩy ra",
|
||||
"muted": "Đã tắt tiếng",
|
||||
"domute": "",
|
||||
"domute": "Tắt tiếng",
|
||||
"flip": "Lật",
|
||||
"remoteControl": "Điều khiển từ xa"
|
||||
},
|
||||
@@ -196,7 +203,8 @@
|
||||
"transport": "Vận chuyển:",
|
||||
"transport_plural_undefined": "Các vận chuyển:",
|
||||
"bandwidth": "Băng thông ước tính:",
|
||||
"na": "Hãy quay trở lại đây để biết thông tin kết nối khi hội nghị bắt đầu"
|
||||
"na": "Hãy quay trở lại đây để biết thông tin kết nối khi hội nghị bắt đầu",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "đã ngắt kết nối",
|
||||
@@ -223,9 +231,9 @@
|
||||
"connectError": "Rất tiếc! Đã xảy ra sự cố và chúng tôi không thể kết nối với hội nghị.",
|
||||
"connectErrorWithMsg": "Rất tiếc! Đã xảy ra sự cố và chúng tôi không thể kết nối với hội nghị: __msg__",
|
||||
"incorrectPassword": "Sai mật khẩu",
|
||||
"connecting": "",
|
||||
"connecting": "Đang kết nối",
|
||||
"copy": "Sao chép",
|
||||
"error": "",
|
||||
"error": "Lỗi",
|
||||
"createPassword": "Tạo mật khẩu",
|
||||
"detectext": "Lỗi khi cố gắng phát hiện tiện ích mở rộng chia sẻ máy tính.",
|
||||
"failtoinstall": "Không thể cài đặt tiện ích mở rộng chia sẻ máy tính",
|
||||
@@ -272,10 +280,8 @@
|
||||
"joinAgain": "Tham gia lại",
|
||||
"Share": "Chia sẻ",
|
||||
"Save": "Lưu",
|
||||
"recording": "",
|
||||
"recording": "Đang ghi âm",
|
||||
"recordingToken": "Nhập mã thông báo ghi âm",
|
||||
"Dial": "Quay số",
|
||||
"sipMsg": "Nhập số SIP",
|
||||
"passwordCheck": "Bạn có chắc chắn muốn xóa mật khẩu của mình không?",
|
||||
"passwordMsg": "Đặt mật khẩu để khóa phòng của bạn",
|
||||
"shareLink": "Chia sẻ liên kết đến cuộc gọi",
|
||||
@@ -298,12 +304,11 @@
|
||||
"enterDisplayName": "Vui lòng nhập tên hiển thị của bạn",
|
||||
"extensionRequired": "Yêu cầu tiện ích mở rộng:",
|
||||
"firefoxExtensionPrompt": "Bạn cần phải cài đặt một tiện ích mở rộng của Firefox để chia sẻ màn hình. Vui lòng thử lại sau khi bạn <a href='__url__'>tải nó từ đây</a>!",
|
||||
"rateExperience": "Vui lòng đánh giá trải nghiệm cuộc họp của bạn.",
|
||||
"feedbackHelp": "Phản hồi của bạn sẽ giúp chúng tôi cải thiện trải nghiệm video.",
|
||||
"feedbackQuestion": "Hãy cho chúng tôi biết về cuộc gọi của bạn!",
|
||||
"thankYou": "Cám ơn bạn đã sử dụng __appName__!",
|
||||
"sorryFeedback": "Chúng tôi rất tiếc khi nghe điều đó. Bạn có thể nói với chúng tôi thêm nữa không?",
|
||||
"liveStreaming": "",
|
||||
"liveStreaming": "Phát trực tuyến",
|
||||
"streamKey": "Tên/khóa phát trực tuyến",
|
||||
"startLiveStreaming": "Bắt đầu phát trực tuyến",
|
||||
"stopStreamingWarning": "Bạn có chắc chắn muốn dừng phát trực tuyến?",
|
||||
@@ -330,6 +335,8 @@
|
||||
"goToStore": "Đi tới cửa hàng trên mạng",
|
||||
"externalInstallationTitle": "Yêu cầu tiện ích mở rộng",
|
||||
"externalInstallationMsg": "Bạn cần cài đặt tiện ích mở rộng chia sẻ máy tính của chúng tôi.",
|
||||
"inlineInstallationMsg": "Bạn cần cài đặt tiện ích mở rộng chia sẻ máy tính của chúng tôi.",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "Tắt tiếng của người tham dự này?",
|
||||
"muteParticipantBody": "Bạn không thể tắt tiếng của họ, nhưng họ có thể tự tắt tiếng bất cứ lúc nào.",
|
||||
"muteParticipantButton": "Tắt tiếng",
|
||||
@@ -339,6 +346,7 @@
|
||||
"remoteControlDeniedMessage": "__user__ đã từ chối yêu cầu điều khiển từ xa của bạn!",
|
||||
"remoteControlAllowedMessage": "__user__ đã chấp nhận yêu cầu điều khiển từ xa của bạn!",
|
||||
"remoteControlErrorMessage": "Đã xảy ra lỗi khi cố gắng yêu cầu quyền điều khiển từ xa từ __user__!",
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "Phiên điều khiển từ xa đã kết thúc!",
|
||||
"close": "Đóng",
|
||||
"shareYourScreen": "Chia sẻ màn hình của bạn",
|
||||
@@ -423,15 +431,52 @@
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "Thêm mật khẩu",
|
||||
"dialInNumbers": "Số điện thoại quay số",
|
||||
"errorFetchingNumbers": "Lấy số quay số thất bại",
|
||||
"callNumber": "",
|
||||
"enterID": "",
|
||||
"howToDialIn": "",
|
||||
"hidePassword": "Ẩn mật khẩu",
|
||||
"inviteTo": "Mời mọi người tới __conferenceName__",
|
||||
"loadingNumbers": "Đang tải...",
|
||||
"invitedYouTo": "",
|
||||
"locked": "Cuộc gọi này đã bị khóa. Bất kỳ người gọi mới nào đều phải có đường dẫn và nhập mật khẩu mới có thể tham gia.",
|
||||
"noNumbers": "Không có số khả dụng",
|
||||
"numbersDisabled": "Quay số đang bị vô hiệu hóa",
|
||||
"showPassword": "Hiện mật khẩu",
|
||||
"unlocked": "Cuộc gọi này đã được mở khóa. Bất kỳ người gọi mới nào có đường dẫn đều có thể tham gia."
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Quay số",
|
||||
"dialOut": "",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "",
|
||||
"phoneNotAllowed": ""
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "Thêm mới",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,14 @@
|
||||
"passwordSetRemotely": "由其他与会者设置",
|
||||
"connectionsettings": "连接设置",
|
||||
"poweredby": "技术支持",
|
||||
"feedback": "请给我们您的反馈",
|
||||
"feedback": {
|
||||
"average": "",
|
||||
"bad": "",
|
||||
"good": "",
|
||||
"rateExperience": "请评价您的会议体验。",
|
||||
"veryBad": "",
|
||||
"veryGood": ""
|
||||
},
|
||||
"inviteUrlDefaultMsg": "您的会议正在被创建。。。",
|
||||
"me": "我",
|
||||
"speaker": "发言人",
|
||||
@@ -14,15 +21,20 @@
|
||||
"defaultNickname": "例如 星视通",
|
||||
"defaultLink": "例如 __url__",
|
||||
"callingName": "__name__",
|
||||
"audioOnly": {
|
||||
"audioOnly": "只有音频",
|
||||
"featureToggleDisabled": "在仅使用音频模式下切换功能无效"
|
||||
},
|
||||
"userMedia": {
|
||||
"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": "请授权使用您的摄像头和麦克风"
|
||||
"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": "请授权使用您的摄像头和麦克风",
|
||||
"edgeGrantPermissions": "当浏览器要求权限许可时选择 <b><i>是</i></b>"
|
||||
},
|
||||
"keyboardShortcuts": {
|
||||
"keyboardShortcuts": "快捷键",
|
||||
@@ -36,7 +48,8 @@
|
||||
"toggleChat": "打开或关闭聊天",
|
||||
"mute": "静音或取消静音",
|
||||
"fullScreen": "全屏或退出全屏",
|
||||
"videoMute": "开启或关闭视频"
|
||||
"videoMute": "开启或关闭视频",
|
||||
"showSpeakerStats": "查看扬声器状态"
|
||||
},
|
||||
"welcomepage": {
|
||||
"disable": "不再显示该页",
|
||||
@@ -73,22 +86,25 @@
|
||||
"title": "使用统计"
|
||||
},
|
||||
"go": "开始",
|
||||
"join": "",
|
||||
"privacy": "",
|
||||
"join": "加入",
|
||||
"privacy": "隐私",
|
||||
"roomname": "请输入房间名",
|
||||
"roomnamePlaceHolder": "",
|
||||
"sendFeedback": "",
|
||||
"terms": ""
|
||||
"roomnamePlaceHolder": "房间名",
|
||||
"sendFeedback": "发送反馈",
|
||||
"terms": "条款"
|
||||
},
|
||||
"startupoverlay": {
|
||||
"policyText": " ",
|
||||
"policyText": "~",
|
||||
"title": "__app__ 需要使用您的麦克风和摄像头。"
|
||||
},
|
||||
"suspendedoverlay": {
|
||||
"title": "由于您的电脑休眠,视频通话已经中断。",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"rejoinKeyTitle": "重新加入"
|
||||
},
|
||||
"toolbar": {
|
||||
"addPeople": "",
|
||||
"audioonly": "启用/禁用仅音频模式(节省带宽)",
|
||||
"mute": "静音 / 解除静音",
|
||||
"videomute": "开启 / 关闭 摄像头",
|
||||
"authenticate": "认证",
|
||||
@@ -116,11 +132,11 @@
|
||||
"raiseHand": "请求 / 取消 发言"
|
||||
},
|
||||
"unsupportedBrowser": {
|
||||
"appInstalled": "",
|
||||
"appNotInstalled": "",
|
||||
"downloadApp": "",
|
||||
"joinConversation": "",
|
||||
"startConference": ""
|
||||
"appInstalled": "或者如果您已经安装了<br /><strong>那么</strong>",
|
||||
"appNotInstalled": "您需要在您的移动设备上安装 <strong>__app__</strong> 来参与会议",
|
||||
"downloadApp": "下载应用",
|
||||
"joinConversation": "加入会议",
|
||||
"startConference": "发起会议"
|
||||
},
|
||||
"bottomtoolbar": {
|
||||
"chat": "开启 / 关闭 聊天",
|
||||
@@ -145,12 +161,10 @@
|
||||
"selectAudioOutput": "音频输出",
|
||||
"followMe": "所有人跟随我",
|
||||
"noDevice": "未发现设备",
|
||||
"noPermission": "未授权使用设备",
|
||||
"cameraAndMic": "摄像头和麦克风",
|
||||
"moderator": "主持人",
|
||||
"password": "设定密码",
|
||||
"audioVideo": "音频和视频",
|
||||
"setPasswordLabel": "用密码锁定房间"
|
||||
"audioVideo": "音频和视频"
|
||||
},
|
||||
"profile": {
|
||||
"title": "简介",
|
||||
@@ -174,6 +188,7 @@
|
||||
"bitrate": "比特率",
|
||||
"packetloss": "丢包",
|
||||
"resolution": "分辨率",
|
||||
"framerate": "帧率:",
|
||||
"less": "显示更少",
|
||||
"more": "显示更多",
|
||||
"address": "地址",
|
||||
@@ -187,7 +202,8 @@
|
||||
"remoteaddress": "远程地址:",
|
||||
"transport": "传输:",
|
||||
"bandwidth": "估计带宽:",
|
||||
"na": "会议开始可回到此处查看连接信息"
|
||||
"na": "会议开始可回到此处查看连接信息",
|
||||
"turn": ""
|
||||
},
|
||||
"notify": {
|
||||
"disconnected": "已断开连接",
|
||||
@@ -205,6 +221,7 @@
|
||||
},
|
||||
"dialog": {
|
||||
"add": "添加",
|
||||
"allow": "允许",
|
||||
"kickMessage": "您已被踢出会议!",
|
||||
"popupError": "您的浏览器禁止弹窗,请到浏览器安全设置里设定允许弹窗后重试。",
|
||||
"passwordErrorTitle": "密码错误",
|
||||
@@ -216,18 +233,15 @@
|
||||
"connecting": "连接中",
|
||||
"copy": "复制",
|
||||
"error": "错误",
|
||||
"roomLocked": "此会话已被锁定,新与会者必须有链接地址和密码才能加入",
|
||||
"addPassword": "添加密码",
|
||||
"createPassword": "创建密码",
|
||||
"detectext": "尝试检测桌面共享扩展时发生错误",
|
||||
"failtoinstall": "安装桌面共享扩展失败",
|
||||
"failedpermissions": "未能获取使用本地麦克风或摄像头的权限。",
|
||||
"conferenceReloadTitle": "不好意思,出错了",
|
||||
"conferenceReloadMsg": "正在尝试修复",
|
||||
"conferenceDisconnectTitle": "您已断开连接,请检查您的网络连接。",
|
||||
"conferenceDisconnectMsg": "重新连接中。。。",
|
||||
"reconnectNow": "现在开始重新连接",
|
||||
"conferenceReloadTimeLeft": "__seconds__秒。",
|
||||
"conferenceReloadTitle": "不好意思,出错了。",
|
||||
"conferenceReloadMsg": "我们试着修复它。重连中__秒",
|
||||
"conferenceDisconnectTitle": "你已经断开。",
|
||||
"conferenceDisconnectMsg": "需要检查你的网络连接。重新连接中 __秒",
|
||||
"rejoinNow": "马上重新加入",
|
||||
"maxUsersLimitReached": "已达到会议的最大人数限制,请稍后尝试!",
|
||||
"lockTitle": "锁定失败",
|
||||
"lockMessage": "锁定会议失败。",
|
||||
@@ -267,8 +281,6 @@
|
||||
"Save": "保存",
|
||||
"recording": "录制中",
|
||||
"recordingToken": "输入记录标识",
|
||||
"Dial": "拨号",
|
||||
"sipMsg": "输入SIP号码",
|
||||
"passwordCheck": "确定要移除密码吗?",
|
||||
"passwordMsg": "设定密码来锁定房间",
|
||||
"shareLink": "分享此会议的链接",
|
||||
@@ -291,7 +303,6 @@
|
||||
"enterDisplayName": "请输入您的显示名称",
|
||||
"extensionRequired": "需要扩展程序",
|
||||
"firefoxExtensionPrompt": "您需要安装Firefox的扩展才能使用屏幕共享功能。请从<a href='__url__'>这里获取后</a>!重试。",
|
||||
"rateExperience": "请评价您的会议体验。",
|
||||
"feedbackHelp": "您的反馈将帮助我们提高我们的视频体验。",
|
||||
"feedbackQuestion": "告诉我们您的联系方式。",
|
||||
"thankYou": "感谢使用__appName__!",
|
||||
@@ -313,24 +324,33 @@
|
||||
"cameraUnknownError": "由于不可预知的错误,无法使用摄像头。",
|
||||
"cameraPermissionDeniedError": "您未授权使用您的摄像头。您仍可参加会议但是其他人无法看到,使用地址栏里的摄像头按钮来启动摄像头。",
|
||||
"cameraNotFoundError": "未发现摄像头",
|
||||
"cameraConstraintFailedError": "摄像头不可用",
|
||||
"cameraConstraintFailedError": "你的摄像头不满足要求。",
|
||||
"micUnknownError": "未知错误,麦克风不可用",
|
||||
"micPermissionDeniedError": "您未授权使用麦克风,您仍可参加会议但是其他人无法听到,使用地址栏里的摄像头按钮来启动麦克风",
|
||||
"micNotFoundError": "未发现麦克风",
|
||||
"micConstraintFailedError": "麦克风不满足所要求的限制",
|
||||
"micConstraintFailedError": "你的麦克风不满足要求。",
|
||||
"micNotSendingData": "麦克风无法使用,请从设置菜单选择其他设备或者重启应用",
|
||||
"cameraNotSendingData": "摄像头无法使用,请检查摄像头是否被占用,从设置菜单选择其他设备或者重启应用。",
|
||||
"goToStore": "跳转至应用商店",
|
||||
"externalInstallationTitle": "需要扩展程序",
|
||||
"externalInstallationMsg": "您需要安装桌面共享扩展",
|
||||
"inlineInstallationMsg": "您需要安装桌面共享扩展",
|
||||
"inlineInstallExtension": "",
|
||||
"muteParticipantTitle": "静音该与会者吗?",
|
||||
"muteParticipantBody": "您无法对他们解除静音,但是他们自己可以随时解除静音。",
|
||||
"muteParticipantButton": "静音",
|
||||
"remoteControlTitle": "远程控制",
|
||||
"remoteControlTitle": "远程桌面控制",
|
||||
"remoteControlRequestMessage": "你允许 __用户__ 远程控制你的桌面吗?",
|
||||
"remoteControlShareScreenWarning": "注意:如果按下“允许”你将共享你的屏幕!",
|
||||
"remoteControlDeniedMessage": "__user__ 拒绝了您的远程控制请求",
|
||||
"remoteControlAllowedMessage": "__user__ 接受了您的远程控制请求",
|
||||
"remoteControlErrorMessage": "在尝试向__user__请求远程控制权限时发生了一个错误",
|
||||
"remoteControlStopMessage": "远程控制结束!"
|
||||
"startRemoteControlErrorMessage": "",
|
||||
"remoteControlStopMessage": "远程控制结束!",
|
||||
"close": "关闭",
|
||||
"shareYourScreen": "共享你的屏幕",
|
||||
"yourEntireScreen": "你的整个屏幕",
|
||||
"applicationWindow": "应用窗口"
|
||||
},
|
||||
"email": {
|
||||
"sharedKey": [
|
||||
@@ -392,5 +412,70 @@
|
||||
"streamIdHelp": "在哪里找到这个",
|
||||
"error": "流媒体直播失败。请重试。",
|
||||
"busy": "所有的录制器都在忙。请稍后重试。"
|
||||
},
|
||||
"speakerStats": {
|
||||
"hours": "__count__h",
|
||||
"minutes": "__count__m",
|
||||
"name": "名称",
|
||||
"seconds": "__count__s",
|
||||
"speakerStats": "发言者状态",
|
||||
"speakerTime": "发言者时间"
|
||||
},
|
||||
"deviceSelection": {
|
||||
"deviceSettings": "设备设置",
|
||||
"noPermission": "未授权限 ",
|
||||
"previewUnavailable": "预览不可用",
|
||||
"selectADevice": "选择设备",
|
||||
"testAudio": "测试声音"
|
||||
},
|
||||
"invite": {
|
||||
"addPassword": "添加密码",
|
||||
"callNumber": "呼叫__号码__",
|
||||
"enterID": "在电话终端输入会议ID:__conferenceID__和#号拨打会议电话",
|
||||
"howToDialIn": "用以下号码和会议编号拨号。",
|
||||
"hidePassword": "隐藏密码",
|
||||
"inviteTo": "邀请人到 __会议名称__",
|
||||
"invitedYouTo": "",
|
||||
"locked": "本次呼叫被锁定,新的呼叫必须有链接并输入口令后加入。",
|
||||
"showPassword": "查看口令",
|
||||
"unlocked": "本次呼叫已被锁定,用这个链接可以加入。"
|
||||
},
|
||||
"videoStatus": {
|
||||
"callQuality": "",
|
||||
"changeVideoTip": "",
|
||||
"hd": "高清",
|
||||
"highDefinition": "",
|
||||
"ld": "",
|
||||
"lowDefinition": "",
|
||||
"p2pEnabled": "",
|
||||
"p2pVideoQualityDescription": "",
|
||||
"recHighDefinitionOnly": "",
|
||||
"sd": "标清",
|
||||
"standardDefinition": "",
|
||||
"qualityButtonTip": ""
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "拨号",
|
||||
"dialOut": "呼叫电话号码",
|
||||
"statusMessage": "",
|
||||
"enterPhone": "输入电话号码",
|
||||
"phoneNotAllowed": "还不支持这个目标!抱歉!"
|
||||
},
|
||||
"addPeople": {
|
||||
"add": "添加",
|
||||
"noResults": "",
|
||||
"searchPlaceholder": "",
|
||||
"title": "",
|
||||
"failedToAdd": ""
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "",
|
||||
"retry": "",
|
||||
"support": "",
|
||||
"supportMsg": ""
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "",
|
||||
"microphonePermission": ""
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"contactlist": "Participants (__pcount__)",
|
||||
"contactlist": "__pcount__ Members",
|
||||
"addParticipants": "Share the link",
|
||||
"roomLocked": "Callers must enter a password",
|
||||
"roomUnlocked": "Anyone with the link can join",
|
||||
"passwordSetRemotely": "set by another participant",
|
||||
"passwordSetRemotely": "set by another member",
|
||||
"connectionsettings": "Connection Settings",
|
||||
"poweredby": "powered by",
|
||||
"feedback": "Give us your feedback",
|
||||
@@ -59,7 +59,7 @@
|
||||
"title": "Open source"
|
||||
},
|
||||
"feature4": {
|
||||
"content": "There are no artificial restrictions on the number of users or conference participants. Server power and bandwidth are the only limiting factors.",
|
||||
"content": "There are no artificial restrictions on the number of users or conference members. Server power and bandwidth are the only limiting factors.",
|
||||
"title": "Unlimited users"
|
||||
},
|
||||
"feature5": {
|
||||
@@ -114,8 +114,8 @@
|
||||
"login": "Login",
|
||||
"logout": "Logout",
|
||||
"dialpad": "Open / Close dialpad",
|
||||
"sharedVideoMutedPopup": "Your shared video has been muted so<br/>that you can talk to the other participants.",
|
||||
"micMutedPopup": "Your microphone has been muted so that you<br/>would fully enjoy your shared video.",
|
||||
"sharedVideoMutedPopup": "Your shared video has been muted so that you can talk to the other members.",
|
||||
"micMutedPopup": "Your microphone has been muted so that you would fully enjoy your shared video.",
|
||||
"talkWhileMutedPopup": "Trying to speak? You are muted.",
|
||||
"unableToUnmutePopup": "You cannot un-mute while the shared video is on.",
|
||||
"cameraDisabled": "Camera is not available",
|
||||
@@ -134,7 +134,7 @@
|
||||
"bottomtoolbar": {
|
||||
"chat": "Open / close chat",
|
||||
"filmstrip": "Show / hide videos",
|
||||
"contactlist": "View and invite participants"
|
||||
"contactlist": "View and invite members"
|
||||
},
|
||||
"chat":{
|
||||
"nickname": {
|
||||
@@ -168,10 +168,9 @@
|
||||
},
|
||||
"videothumbnail":
|
||||
{
|
||||
"editnickname": "Click to edit your<br/>display name",
|
||||
"moderator": "The owner of<br/>this conference",
|
||||
"videomute": "Participant has<br/>stopped the camera",
|
||||
"mute": "Participant is muted",
|
||||
"moderator": "Moderator",
|
||||
"videomute": "Member has stopped the camera",
|
||||
"mute": "Member is muted",
|
||||
"kick": "Kick out",
|
||||
"muted": "Muted",
|
||||
"domute": "Mute",
|
||||
@@ -240,7 +239,7 @@
|
||||
"conferenceDisconnectTitle": "You have been disconnected.",
|
||||
"conferenceDisconnectMsg": "You may want to check your network connection. Reconnecting in __seconds__ sec...",
|
||||
"rejoinNow": "Rejoin now",
|
||||
"maxUsersLimitReached": "The limit for maximum number of participants in the conference has been reached. The conference is full. Please try again later!",
|
||||
"maxUsersLimitReached": "The limit for maximum number of members in the conference has been reached. The conference is full. Please try again later!",
|
||||
"lockTitle": "Lock failed",
|
||||
"lockMessage": "Failed to lock the conference.",
|
||||
"warning": "Warning",
|
||||
@@ -263,7 +262,7 @@
|
||||
"shareVideoLinkError": "Please provide a correct youtube link.",
|
||||
"removeSharedVideoTitle": "Remove shared video",
|
||||
"removeSharedVideoMsg": "Are you sure you would like to remove your shared video?",
|
||||
"alreadySharedVideoMsg": "Another participant is already sharing video. This conference allows only one shared video at a time.",
|
||||
"alreadySharedVideoMsg": "Another member is already sharing video. This conference allows only one shared video at a time.",
|
||||
"WaitingForHost": "Waiting for the host ...",
|
||||
"WaitForHostMsg": "The conference <b>__room__ </b> has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.",
|
||||
"IamHost": "I am the host",
|
||||
@@ -282,9 +281,6 @@
|
||||
"passwordCheck": "Are you sure you would like to remove your password?",
|
||||
"passwordMsg": "Set a password to lock your room",
|
||||
"shareLink": "Share the link to the call",
|
||||
"settings1": "Configure your conference",
|
||||
"settings2": "Participants join muted",
|
||||
"settings3": "Require nicknames<br/><br/>Set a password to lock your room:",
|
||||
"yourPassword": "Enter new password",
|
||||
"Back": "Back",
|
||||
"serviceUnavailable": "Service unavailable",
|
||||
@@ -301,7 +297,6 @@
|
||||
"enterDisplayName": "Please enter your display name",
|
||||
"extensionRequired": "Extension required:",
|
||||
"firefoxExtensionPrompt": "You need to install a Firefox extension in order to use screen sharing. Please try again after you <a href='__url__'>get it from here</a>!",
|
||||
"rateExperience": "Please rate your meeting experience.",
|
||||
"feedbackHelp": "Your feedback will help us to improve our video experience.",
|
||||
"feedbackQuestion": "Tell us about your call!",
|
||||
"thankYou": "Thank you for using __appName__!",
|
||||
@@ -335,7 +330,7 @@
|
||||
"externalInstallationMsg": "You need to install our desktop sharing extension.",
|
||||
"inlineInstallationMsg": "You need to install our desktop sharing extension.",
|
||||
"inlineInstallExtension": "Install now",
|
||||
"muteParticipantTitle": "Mute this participant?",
|
||||
"muteParticipantTitle": "Mute this member?",
|
||||
"muteParticipantBody": "You won't be able to unmute them, but they can unmute themselves at any time.",
|
||||
"muteParticipantButton": "Mute",
|
||||
"remoteControlTitle": "Remote desktop control",
|
||||
@@ -400,7 +395,7 @@
|
||||
},
|
||||
"recording":
|
||||
{
|
||||
"pending": "Recording waiting for a participant to join...",
|
||||
"pending": "Recording waiting for a member to join...",
|
||||
"on": "Recording",
|
||||
"off": "Recording stopped",
|
||||
"failedToStart": "Recording failed to start",
|
||||
@@ -450,10 +445,18 @@
|
||||
"unlocked": "This call is unlocked. Any new caller with the link may join the call."
|
||||
},
|
||||
"videoStatus": {
|
||||
"hd": "HD",
|
||||
"hdVideo": "HD video",
|
||||
"sd": "SD",
|
||||
"sdVideo": "SD video"
|
||||
"callQuality": "Call Quality",
|
||||
"hd": "HD",
|
||||
"highDefinition": "High definition",
|
||||
"labelTooltip": "Current video quality",
|
||||
"ld": "LD",
|
||||
"lowDefinition": "Low definition",
|
||||
"p2pEnabled": "Peer to Peer Enabled",
|
||||
"p2pVideoQualityDescription": "In peer to peer mode, received call quality can only be toggled between high and audio only. Other settings will not be honored until peer to peer is exited.",
|
||||
"recHighDefinitionOnly": "Will prefer high definition.",
|
||||
"sd": "SD",
|
||||
"standardDefinition": "Standard definition",
|
||||
"qualityButtonTip": "Change received video quality"
|
||||
},
|
||||
"dialOut": {
|
||||
"dial": "Dial",
|
||||
@@ -467,12 +470,24 @@
|
||||
"noResults": "No matching search results",
|
||||
"searchPlaceholder": "Search for people and rooms to add",
|
||||
"title": "Add people to your call",
|
||||
"failedToAdd": "Failed to add participants"
|
||||
"failedToAdd": "Failed to add members"
|
||||
},
|
||||
"inlineDialogFailure": {
|
||||
"msg": "We stumbled a bit.",
|
||||
"retry": "Try again",
|
||||
"support": "Support",
|
||||
"supportMsg": "If this keeps happening, reach out to"
|
||||
},
|
||||
"deviceError": {
|
||||
"cameraPermission": "Error obtaining camera permission",
|
||||
"microphonePermission": "Error obtaining microphone permission"
|
||||
},
|
||||
"feedback": {
|
||||
"average": "Average",
|
||||
"bad": "Bad",
|
||||
"good": "Good",
|
||||
"rateExperience": "Please rate your meeting experience.",
|
||||
"veryBad": "Very Bad",
|
||||
"veryGood": "Very Good"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,20 @@ let initialScreenSharingState = false;
|
||||
*/
|
||||
const transport = getJitsiMeetTransport();
|
||||
|
||||
/**
|
||||
* The current audio availability.
|
||||
*
|
||||
* @type {boolean}
|
||||
*/
|
||||
let audioAvailable = true;
|
||||
|
||||
/**
|
||||
* The current video availability.
|
||||
*
|
||||
* @type {boolean}
|
||||
*/
|
||||
let videoAvailable = true;
|
||||
|
||||
/**
|
||||
* Initializes supported commands.
|
||||
*
|
||||
@@ -58,6 +72,26 @@ function initCommands() {
|
||||
|
||||
return false;
|
||||
});
|
||||
transport.on('request', ({ data, name }, callback) => {
|
||||
switch (name) {
|
||||
case 'is-audio-muted':
|
||||
callback(APP.conference.isLocalAudioMuted());
|
||||
break;
|
||||
case 'is-video-muted':
|
||||
callback(APP.conference.isLocalVideoMuted());
|
||||
break;
|
||||
case 'is-audio-available':
|
||||
callback(audioAvailable);
|
||||
break;
|
||||
case 'is-video-available':
|
||||
callback(videoAvailable);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,7 +131,9 @@ function shouldBeEnabled() {
|
||||
*/
|
||||
function toggleScreenSharing() {
|
||||
if (APP.conference.isDesktopSharingEnabled) {
|
||||
APP.conference.toggleScreenSharing();
|
||||
|
||||
// eslint-disable-next-line no-empty-function
|
||||
APP.conference.toggleScreenSharing().catch(() => {});
|
||||
} else {
|
||||
initialScreenSharingState = !initialScreenSharingState;
|
||||
}
|
||||
@@ -265,6 +301,65 @@ class API {
|
||||
this._sendEvent({ name: 'video-ready-to-close' });
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) for audio muted status
|
||||
* changed.
|
||||
*
|
||||
* @param {boolean} muted - The new muted status.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyAudioMutedStatusChanged(muted) {
|
||||
this._sendEvent({
|
||||
name: 'audio-mute-status-changed',
|
||||
muted
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) for video muted status
|
||||
* changed.
|
||||
*
|
||||
* @param {boolean} muted - The new muted status.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyVideoMutedStatusChanged(muted) {
|
||||
this._sendEvent({
|
||||
name: 'video-mute-status-changed',
|
||||
muted
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) for audio availability
|
||||
* changed.
|
||||
*
|
||||
* @param {boolean} available - True if available and false otherwise.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyAudioAvailabilityChanged(available) {
|
||||
audioAvailable = available;
|
||||
this._sendEvent({
|
||||
name: 'audio-availability-changed',
|
||||
available
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify external application (if API is enabled) for video available
|
||||
* status changed.
|
||||
*
|
||||
* @param {boolean} available - True if available and false otherwise.
|
||||
* @returns {void}
|
||||
*/
|
||||
notifyVideoAvailabilityChanged(available) {
|
||||
videoAvailable = available;
|
||||
this._sendEvent({
|
||||
name: 'video-availability-changed',
|
||||
available
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Disposes the allocated resources.
|
||||
*
|
||||
|
||||
73
modules/API/external/external_api.js
vendored
73
modules/API/external/external_api.js
vendored
@@ -1,6 +1,6 @@
|
||||
import EventEmitter from 'events';
|
||||
|
||||
import { urlObjectToString } from '../../../react/features/base/util';
|
||||
import { urlObjectToString } from '../../../react/features/base/util/uri';
|
||||
import {
|
||||
PostMessageTransportBackend,
|
||||
Transport
|
||||
@@ -8,6 +8,10 @@ import {
|
||||
|
||||
const logger = require('jitsi-meet-logger').getLogger(__filename);
|
||||
|
||||
const ALWAYS_ON_TOP_FILENAMES = [
|
||||
'css/all.css', 'libs/alwaysontop.min.js'
|
||||
];
|
||||
|
||||
/**
|
||||
* Maps the names of the commands expected by the API with the name of the
|
||||
* commands expected by jitsi-meet
|
||||
@@ -30,6 +34,8 @@ const commands = {
|
||||
* events expected by jitsi-meet
|
||||
*/
|
||||
const events = {
|
||||
'audio-availability-changed': 'audioAvailabilityChanged',
|
||||
'audio-mute-status-changed': 'audioMuteStatusChanged',
|
||||
'display-name-change': 'displayNameChange',
|
||||
'incoming-message': 'incomingMessage',
|
||||
'outgoing-message': 'outgoingMessage',
|
||||
@@ -37,7 +43,9 @@ const events = {
|
||||
'participant-left': 'participantLeft',
|
||||
'video-ready-to-close': 'readyToClose',
|
||||
'video-conference-joined': 'videoConferenceJoined',
|
||||
'video-conference-left': 'videoConferenceLeft'
|
||||
'video-conference-left': 'videoConferenceLeft',
|
||||
'video-availability-changed': 'videoAvailabilityChanged',
|
||||
'video-mute-status-changed': 'videoMuteStatusChanged'
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -207,6 +215,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
noSSL,
|
||||
roomName
|
||||
});
|
||||
this._baseUrl = `${noSSL ? 'http' : 'https'}://${domain}/`;
|
||||
this._createIFrame(height, width);
|
||||
this._transport = new Transport({
|
||||
backend: new PostMessageTransportBackend({
|
||||
@@ -236,6 +245,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
const frameName = `jitsiConferenceFrame${id}`;
|
||||
|
||||
this._frame = document.createElement('iframe');
|
||||
this._frame.allow = 'camera; microphone';
|
||||
this._frame.src = this._url;
|
||||
this._frame.name = frameName;
|
||||
this._frame.id = frameName;
|
||||
@@ -245,6 +255,17 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
this._frame = this._parentNode.appendChild(this._frame);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns arrays with the all resources for the always on top feature.
|
||||
*
|
||||
* @returns {Array<string>}
|
||||
*/
|
||||
_getAlwaysOnTopResources() {
|
||||
return ALWAYS_ON_TOP_FILENAMES.map(
|
||||
filename => this._baseUrl + filename
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the size of the iframe element.
|
||||
*
|
||||
@@ -430,6 +451,30 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the audio is available.
|
||||
*
|
||||
* @returns {Promise} - Resolves with true if the audio available, with
|
||||
* false if not and rejects on failure.
|
||||
*/
|
||||
isAudioAvailable() {
|
||||
return this._transport.sendRequest({
|
||||
name: 'is-audio-available'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the audio mute status.
|
||||
*
|
||||
* @returns {Promise} - Resolves with the audio mute status and rejects on
|
||||
* failure.
|
||||
*/
|
||||
isAudioMuted() {
|
||||
return this._transport.sendRequest({
|
||||
name: 'is-audio-muted'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the iframe that loads Jitsi Meet.
|
||||
*
|
||||
@@ -449,6 +494,30 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
|
||||
return this._numberOfParticipants;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the video is available.
|
||||
*
|
||||
* @returns {Promise} - Resolves with true if the video available, with
|
||||
* false if not and rejects on failure.
|
||||
*/
|
||||
isVideoAvailable() {
|
||||
return this._transport.sendRequest({
|
||||
name: 'is-video-available'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the audio mute status.
|
||||
*
|
||||
* @returns {Promise} - Resolves with the audio mute status and rejects on
|
||||
* failure.
|
||||
*/
|
||||
isVideoMuted() {
|
||||
return this._transport.sendRequest({
|
||||
name: 'is-video-muted'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes event listener.
|
||||
*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user