diff --git a/.github/workflows/ci-lua.yml b/.github/workflows/ci-lua.yml index 9d5d7b5e55c2..bdd15aac5c00 100644 --- a/.github/workflows/ci-lua.yml +++ b/.github/workflows/ci-lua.yml @@ -7,7 +7,7 @@ jobs: name: Luacheck runs-on: ubuntu-latest steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2 - name: Install luarocks run: sudo apt-get --install-recommends -y install luarocks diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 5005546381c9..5ad99983a53f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -7,7 +7,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 #v10.1.0 + - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f #v10.2.0 with: stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' stale-pr-message: 'This PR has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' diff --git a/.nvmrc b/.nvmrc index 2bd5a0a98a36..a45fd52cc589 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22 +24 diff --git a/Gemfile.lock b/Gemfile.lock index 5ca628723471..76d3ebe22435 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -26,8 +26,8 @@ GEM artifactory (3.0.17) atomos (0.1.3) aws-eventstream (1.4.0) - aws-partitions (1.1196.0) - aws-sdk-core (3.240.0) + aws-partitions (1.1220.0) + aws-sdk-core (3.242.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) @@ -35,8 +35,8 @@ GEM bigdecimal jmespath (~> 1, >= 1.6.1) logger - aws-sdk-kms (1.118.0) - aws-sdk-core (~> 3, >= 3.239.1) + aws-sdk-kms (1.122.0) + aws-sdk-core (~> 3, >= 3.241.4) aws-sigv4 (~> 1.5) aws-sdk-s3 (1.208.0) aws-sdk-core (~> 3, >= 3.234.0) diff --git a/Makefile b/Makefile index 96ed9f3a9578..20f547a9550f 100644 --- a/Makefile +++ b/Makefile @@ -3,11 +3,11 @@ CLEANCSS = ./node_modules/.bin/cleancss DEPLOY_DIR = libs DIST_DIR = dist ONNX_DIR= node_modules/onnxruntime-web -LIBJITSIMEET_DIR = node_modules/lib-jitsi-meet +LIBJITSIMEET_DIR = node_modules/lib-meet TF_WASM_DIR = node_modules/@tensorflow/tfjs-backend-wasm/dist/ RNNOISE_WASM_DIR = node_modules/@jitsi/rnnoise-wasm/dist -EXCALIDRAW_DIR = node_modules/@jitsi/excalidraw/dist/excalidraw-assets -EXCALIDRAW_DIR_DEV = node_modules/@jitsi/excalidraw/dist/excalidraw-assets-dev +EXCALIDRAW_DIR = node_modules/@jitsi/excalidraw/dist/prod +EXCALIDRAW_DIR_DEV = node_modules/@jitsi/excalidraw/dist/dev TFLITE_WASM = react/features/stream-effects/virtual-background/vendor/tflite MEET_MODELS_DIR = react/features/stream-effects/virtual-background/vendor/models FACE_MODELS_DIR = node_modules/@vladmandic/human-models/models @@ -35,7 +35,7 @@ clean: rm -fr $(BUILD_DIR) .NOTPARALLEL: -deploy: deploy-init deploy-appbundle deploy-rnnoise-binary deploy-excalidraw deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-tf-wasm deploy-css deploy-local deploy-face-landmarks +deploy: deploy-init deploy-appbundle deploy-rnnoise-binary deploy-excalidraw deploy-tflite deploy-meet-models deploy-lib-meet deploy-tf-wasm deploy-css deploy-local deploy-face-landmarks deploy-init: rm -fr $(DEPLOY_DIR) @@ -50,9 +50,9 @@ deploy-appbundle: cp $(BUILD_DIR)/*.min.js $(DEPLOY_DIR) -cp $(BUILD_DIR)/*.min.js.map $(DEPLOY_DIR) -deploy-lib-jitsi-meet: +deploy-lib-meet: cp \ - $(LIBJITSIMEET_DIR)/dist/umd/lib-jitsi-meet.* \ + $(LIBJITSIMEET_DIR)/dist/umd/lib-meet.* \ $(LIBJITSIMEET_DIR)/dist/umd/vodozemac.wasm \ $(DEPLOY_DIR) @@ -72,14 +72,12 @@ deploy-tflite: $(DEPLOY_DIR) deploy-excalidraw: - cp -R \ - $(EXCALIDRAW_DIR) \ - $(DEPLOY_DIR)/ + mkdir -p $(DEPLOY_DIR)/excalidraw + cp -R $(EXCALIDRAW_DIR)/fonts $(DEPLOY_DIR)/excalidraw/ deploy-excalidraw-dev: - cp -R \ - $(EXCALIDRAW_DIR_DEV) \ - $(DEPLOY_DIR)/ + mkdir -p $(DEPLOY_DIR)/excalidraw + cp -R $(EXCALIDRAW_DIR_DEV)/fonts $(DEPLOY_DIR)/excalidraw/ deploy-meet-models: cp \ @@ -103,7 +101,7 @@ deploy-local: ([ ! -x deploy-local.sh ] || ./deploy-local.sh) .NOTPARALLEL: -dev: deploy-init deploy-css deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-jitsi-meet deploy-tf-wasm deploy-excalidraw-dev deploy-face-landmarks +dev: deploy-init deploy-css deploy-rnnoise-binary deploy-tflite deploy-meet-models deploy-lib-meet deploy-tf-wasm deploy-excalidraw-dev deploy-face-landmarks $(WEBPACK_DEV_SERVER) source-package: diff --git a/android/app/proguard-rules-release.pro b/android/app/proguard-rules-release.pro index ceedaaf2c9dc..ac86b7139b2e 100644 --- a/android/app/proguard-rules-release.pro +++ b/android/app/proguard-rules-release.pro @@ -5,6 +5,5 @@ -keepattributes SourceFile,LineNumberTable -keep public class * extends java.lang.Exception -# R8 missing classes - suppress warnings --dontwarn com.facebook.memory.config.MemorySpikeConfig +# Giphy SDK using Kotlin Parcelize -dontwarn kotlinx.parcelize.Parcelize diff --git a/android/build.gradle b/android/build.gradle index 5bce937c19b6..abab72b8502c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -32,7 +32,7 @@ buildscript { googleServicesEnabled = project.file('app/google-services.json').exists() && !libreBuild //React Native and Hermes Version - rnVersion = "0.77.2" + rnVersion = "0.79.7" // Java dependencies javaVersion = JavaVersion.VERSION_17 @@ -46,6 +46,7 @@ buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$rootProject.ext.kotlinVersion" classpath "com.android.tools.build:gradle:$rootProject.ext.gradlePluginVersion" + classpath "com.facebook.react:react-native-gradle-plugin:$rootProject.ext.rnVersion" classpath 'com.google.gms:google-services:4.4.0' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' } @@ -71,6 +72,11 @@ allprojects { details.useVersion rootProject.ext.rnVersion } } + // Redirect the old com.facebook.hermes group (used by some third-party modules) + // to the canonical com.facebook.react:hermes-android artifact. + if (details.requested.group == 'com.facebook.hermes' && details.requested.name == 'hermes-android') { + details.useTarget "com.facebook.react:hermes-android:$rnVersion" + } } } } @@ -79,7 +85,7 @@ allprojects { // 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-')) { + if (project.name.contains('react-native')) { apply plugin: 'maven-publish' publishing { publications {} @@ -110,7 +116,7 @@ allprojects { } } - if (project.name.startsWith('react-native-')) { + if (project.name.contains('react-native')) { def npmManifest = project.file('../package.json') def json = new JsonSlurper().parseText(npmManifest.text) diff --git a/android/gradle.properties b/android/gradle.properties index 0858cd759be2..ea168a142d5c 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -12,6 +12,9 @@ # Default value: -Xmx1024m -XX:MaxPermSize=256m org.gradle.jvmargs=-Xmx4048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# -Xmx4048m: Set max heap size to 4GB to prevent out-of-memory errors during builds. +# -XX:+HeapDumpOnOutOfMemoryError: Save heap dump file when memory errors occur (for debugging). +# -Dfile.encoding=UTF-8: Use UTF-8 encoding for file operations (handles international characters). # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle index e17903d60b6b..f1e7d4448607 100644 --- a/android/sdk/build.gradle +++ b/android/sdk/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.library' +apply plugin: 'com.facebook.react' apply plugin: 'maven-publish' android { @@ -52,19 +53,19 @@ dependencies { // Only add these packages if we are NOT doing a LIBRE_BUILD if (!rootProject.ext.libreBuild) { - implementation project(':react-native-amplitude') - implementation project(':react-native-giphy') - implementation(project(':react-native-google-signin')) { + implementation project(':amplitude-analytics-react-native') + implementation project(':giphy-react-native-sdk') + implementation(project(':react-native-google-signin-google-signin')) { exclude group: 'com.google.android.gms' exclude group: 'androidx' } } - implementation project(':react-native-async-storage') + implementation project(':react-native-async-storage-async-storage') implementation project(':react-native-background-timer') implementation project(':react-native-calendar-events') - implementation project(':react-native-community_clipboard') - implementation project(':react-native-community_netinfo') + implementation project(':react-native-clipboard-clipboard') + implementation project(':react-native-community-netinfo') implementation project(':react-native-default-preference') implementation(project(':react-native-device-info')) { exclude group: 'com.google.firebase' @@ -73,13 +74,13 @@ dependencies { } implementation project(':react-native-gesture-handler') implementation project(':react-native-get-random-values') - implementation project(':react-native-keep-awake') + implementation project(':sayem314-react-native-keep-awake') implementation project(':react-native-orientation-locker') implementation project(':react-native-pager-view') implementation project(':react-native-performance') implementation project(':react-native-safe-area-context') implementation project(':react-native-screens') - implementation project(':react-native-slider') + implementation project(':react-native-community-slider') implementation project(':react-native-sound') implementation project(':react-native-splash-view') implementation project(':react-native-svg') @@ -135,17 +136,8 @@ android.libraryVariants.all { def variant -> // Set up dev mode def devEnabled = !targetName.toLowerCase().contains("release") - // Run the bundler - // Use full path to node to avoid PATH issues in Gradle - def nodePath = System.getenv('NVM_BIN') ? "${System.getenv('NVM_BIN')}/node" : "node" - - // Debug: Print the node path and environment - println "Using node path: ${nodePath}" - println "NVM_BIN: ${System.getenv('NVM_BIN')}" - println "Working directory: ${reactRoot}" - commandLine( - nodePath, + "node", "node_modules/react-native/scripts/bundle.js", "--platform", "android", "--dev", "${devEnabled}", @@ -158,70 +150,22 @@ android.libraryVariants.all { def variant -> enabled !devEnabled } - // GRADLE REQUIREMENTS (Gradle 8.7+ / AGP 8.5.0+): - - // This task requires explicit dependencies on resource tasks from all React Native modules - // due to Gradle's strict validation of task dependencies. - - // Without these dependencies, - // builds will fail with errors like: - // "Task ':sdk:bundleReleaseJsAndAssets' uses the output of task ':react-native-amplitude:packageReleaseResources' - // without declaring a dependency on it." - - // The automatic dependency resolution below ensures all required resource tasks are properly - // declared as dependencies before this task executes. - - if (variant.name.toLowerCase().contains("release")) { - rootProject.subprojects.each { subproject -> - if ( - subproject.name.startsWith("react-native-") || - subproject.name.startsWith("@react-native-") || - subproject.name.startsWith("@giphy/") - ) { - [ - "packageReleaseResources", - "generateReleaseResValues", - "generateReleaseResources", - "generateReleaseBuildConfig", - "processReleaseManifest", - "writeReleaseAarMetadata", - "generateReleaseRFile", - "compileReleaseLibraryResources", - "compileReleaseJavaWithJavac", - "javaPreCompileRelease", - "bundleLibCompileToJarRelease", - "exportReleaseConsumerProguardFiles", - "mergeReleaseGeneratedProguardFiles", - "mergeReleaseJniLibFolders", - "mergeReleaseShaders", - "packageReleaseAssets", - "processReleaseJavaRes", - "prepareReleaseArtProfile", - "copyReleaseJniLibsProjectOnly", - "extractDeepLinksRelease", - "createFullJarRelease", - "generateReleaseLintModel", - "writeReleaseLintModelMetadata", - "generateReleaseLintVitalModel", - "lintVitalAnalyzeRelease", - "lintReportRelease", - "lintAnalyzeRelease", - "lintReportDebug", - "lintAnalyzeDebug" - ].each { taskName -> - if (subproject.tasks.findByName(taskName)) { - currentBundleTask.dependsOn(subproject.tasks.named(taskName)) - } + // Ensure proper task ordering for Gradle 8.14+ strict dependency validation + currentBundleTask.configure { + mustRunAfter { + def config = project.configurations.findByName("${targetPath}CompileClasspath") + + // Fallback to an empty list(mustRunAfter expects a list, not "null" which is the og fallback), + // means no config, means no constraints + (config?.allDependencies ?: []) + .findAll { it.hasProperty('dependencyProject') } + .collectMany { dependency -> + project.project(dependency.dependencyProject.path) + .tasks.matching { it.name.contains(targetName) } } - - // Also depend on the main build task to ensure all sub-tasks are completed - if (subproject.tasks.findByName("build")) { - currentBundleTask.dependsOn(subproject.tasks.named("build")) - } - } } } - + currentBundleTask.ext.generatedResFolders = files(resourcesDir).builtBy(currentBundleTask) currentBundleTask.ext.generatedAssetsFolders = files(jsBundleDir).builtBy(currentBundleTask) variant.registerGeneratedResFolders(currentBundleTask.generatedResFolders) @@ -291,7 +235,7 @@ publishing { def groupId = it.moduleGroup def artifactId = it.moduleName - if (artifactId.startsWith('react-native-')) { + if (artifactId.contains('react-native')) { groupId = rootProject.ext.moduleGroupId } diff --git a/android/sdk/src/main/AndroidManifest.xml b/android/sdk/src/main/AndroidManifest.xml index d869c4e6e9b0..937f4aff0fe4 100644 --- a/android/sdk/src/main/AndroidManifest.xml +++ b/android/sdk/src/main/AndroidManifest.xml @@ -27,6 +27,11 @@ android:name="android.hardware.camera.autofocus" android:required="false" /> + + + + + { - WindowInsetsCompat insets = ViewCompat.getRootWindowInsets(decorView); - if (insets != null) { - ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v.getLayoutParams(); - params.topMargin = insets.getInsets(WindowInsetsCompat.Type.systemBars()).top; - params.bottomMargin = insets.getInsets(WindowInsetsCompat.Type.systemBars()).bottom; - v.setLayoutParams(params); + // Get display metrics for calculating density-independent caps + final android.util.DisplayMetrics metrics = v.getContext().getResources().getDisplayMetrics(); + final int screenHeight = metrics.heightPixels; + final float density = metrics.density; + + // Listen for window inset changes + // when system bars visibility is toggled or when the device rotates + ViewCompat.setOnApplyWindowInsetsListener(decorView, (view, windowInsets) -> { + + // Get the actual inset values reported by the system + int statusBarInset = windowInsets.getInsets(WindowInsetsCompat.Type.statusBars()).top; + int navBarInset = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()).bottom; + + // Calculate maximum allowed inset values to prevent device-specific bugs + final int maxTopInset = Math.min((int)(60 * density), (int)(screenHeight * 0.10)); + final int maxBottomInset = Math.min((int)(120 * density), (int)(screenHeight * 0.10)); + + int topInset = Math.min(statusBarInset, maxTopInset); + int bottomInset = Math.min(navBarInset, maxBottomInset); - decorView.setOnApplyWindowInsetsListener((view, windowInsets) -> { - view.setBackgroundColor(JitsiMeetView.BACKGROUND_COLOR); + // Apply calculated insets + ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v.getLayoutParams(); - return windowInsets; - }); + // Update margins only if they've changed + if (params.topMargin != topInset || params.bottomMargin != bottomInset) { + params.topMargin = topInset; + params.bottomMargin = bottomInset; + v.setLayoutParams(params); } + + view.setBackgroundColor(JitsiMeetView.BACKGROUND_COLOR); + + // Return CONSUMED to prevent double-application of margins + return WindowInsetsCompat.CONSUMED; }); + + // Manually trigger the inset listener to apply margins immediately + ViewCompat.requestApplyInsets(decorView); } // Overrides @@ -136,10 +166,11 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_jitsi_meet); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM - && getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { - addTopBottomInsets(getWindow(), findViewById(android.R.id.content)); - } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM + && getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { + addTopBottomInsets(getWindow(), findViewById(android.R.id.content)); + } this.jitsiView = findViewById(R.id.jitsiView); diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java index 1b4e71af06f1..f844582f8868 100644 --- a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java @@ -17,7 +17,6 @@ package org.jitsi.meet.sdk; import android.app.Activity; -import android.app.Application; import android.content.Context; import android.os.Bundle; import android.util.AttributeSet; @@ -27,6 +26,7 @@ import androidx.annotation.Nullable; import com.facebook.react.ReactRootView; +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags; import org.jitsi.meet.sdk.log.JitsiMeetLogger; @@ -185,6 +185,10 @@ private void createReactRootView(String appName, @Nullable Bundle props) { if (reactRootView == null) { reactRootView = new ReactRootView(getContext()); + + boolean isFabricEnabled = ReactNativeFeatureFlags.enableFabricRenderer(); + reactRootView.setIsFabric(isFabricEnabled); + reactRootView.startReactApplication( ReactInstanceManagerHolder.getReactInstanceManager(), appName, diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/RNNewArchitectureFeatureFlags.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/RNNewArchitectureFeatureFlags.java new file mode 100644 index 000000000000..cc90178ffec2 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/RNNewArchitectureFeatureFlags.java @@ -0,0 +1,54 @@ +/* + * Copyright @ 2021-present 8x8, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jitsi.meet.sdk; + +import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlagsDefaults; + +/** + * Custom React Native New Architecture feature flags for Jitsi. + */ +public class RNNewArchitectureFeatureFlags extends ReactNativeNewArchitectureFeatureFlagsDefaults { + + @Override + public boolean enableBridgelessArchitecture() { + return false; + } + + @Override + public boolean enableFabricRenderer() { + return false; + } + + @Override + public boolean useFabricInterop() { + return false; + } + + @Override + public boolean useNativeViewConfigsInBridgelessMode() { + return false; + } + + @Override + public boolean useTurboModuleInterop() { + return false; + } + + @Override + public boolean useTurboModules() { + return false; + } +} \ No newline at end of file diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java index cac5e7832a74..4fb93068f048 100644 --- a/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java @@ -23,11 +23,15 @@ import com.facebook.hermes.reactexecutor.HermesExecutorFactory; import com.facebook.react.ReactInstanceManager; +import com.facebook.react.ReactInstanceManagerBuilder; import com.facebook.react.ReactPackage; +import com.facebook.react.ReactPackageTurboModuleManagerDelegate; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; import com.facebook.react.common.LifecycleState; +import com.facebook.react.defaults.DefaultTurboModuleManagerDelegate; +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags; import com.facebook.react.modules.core.DeviceEventManagerModule; import com.facebook.react.uimanager.ViewManager; import com.oney.WebRTCModule.EglUtils; @@ -228,7 +232,7 @@ static void initReactInstanceManager(Application app) { JitsiMeetLogger.d(TAG, "initializing RN"); - reactInstanceManager + ReactInstanceManagerBuilder builder = ReactInstanceManager.builder() .setApplication(app) .setCurrentActivity(null) @@ -237,7 +241,20 @@ static void initReactInstanceManager(Application app) { .setJavaScriptExecutorFactory(new HermesExecutorFactory()) .addPackages(getReactNativePackages()) .setUseDeveloperSupport(BuildConfig.DEBUG) - .setInitialLifecycleState(LifecycleState.BEFORE_CREATE) - .build(); + .setInitialLifecycleState(LifecycleState.BEFORE_CREATE); + + if (ReactNativeFeatureFlags.enableFabricRenderer() && ReactNativeFeatureFlags.useTurboModules()) { + List packages = getReactNativePackages(); + + JitsiMeetLogger.d(TAG, "New Architecture enabled - configuring TurboModule delegate"); + + ReactPackageTurboModuleManagerDelegate.Builder tmDelegate = + new DefaultTurboModuleManagerDelegate.Builder() + .setPackages(packages); + + builder.setReactPackageTurboModuleManagerDelegateBuilder(tmDelegate); + } + + reactInstanceManager = builder.build(); } } diff --git a/android/sdk/src/main/res/values/strings.xml b/android/sdk/src/main/res/values/strings.xml index 8bc4c5b40493..f87ed33852da 100644 --- a/android/sdk/src/main/res/values/strings.xml +++ b/android/sdk/src/main/res/values/strings.xml @@ -9,4 +9,8 @@ Mute Unmute Ongoing Conference Notifications + Camera for video calls + Microphone for audio calls + Screen sharing + Bluetooth audio routing diff --git a/android/settings.gradle b/android/settings.gradle index da189dff7419..c58b6df3db28 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,54 +1,18 @@ include ':app', ':sdk' -include ':react-native-amplitude' -project(':react-native-amplitude').projectDir = new File(rootProject.projectDir, '../node_modules/@amplitude/analytics-react-native/android') -include ':react-native-async-storage' -project(':react-native-async-storage').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-async-storage/async-storage/android') -include ':react-native-background-timer' -project(':react-native-background-timer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-background-timer/android') -include ':react-native-calendar-events' -project(':react-native-calendar-events').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-calendar-events/android') -include ':react-native-community_clipboard' -project(':react-native-community_clipboard').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-clipboard/clipboard/android') -include ':react-native-community_netinfo' -project(':react-native-community_netinfo').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/netinfo/android') -include ':react-native-default-preference' -project(':react-native-default-preference').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-default-preference/android') -include ':react-native-device-info' -project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android') -include ':react-native-gesture-handler' -project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android') -include ':react-native-get-random-values' -project(':react-native-get-random-values').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-get-random-values/android') -include ':react-native-giphy' -project(':react-native-giphy').projectDir = new File(rootProject.projectDir, '../node_modules/@giphy/react-native-sdk/android') -include ':react-native-google-signin' -project(':react-native-google-signin').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-google-signin/google-signin/android') -include ':react-native-keep-awake' -project(':react-native-keep-awake').projectDir = new File(rootProject.projectDir, '../node_modules/@sayem314/react-native-keep-awake/android') -include ':react-native-orientation-locker' -project(':react-native-orientation-locker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-orientation-locker/android') -include ':react-native-pager-view' -project(':react-native-pager-view').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-pager-view/android') -include ':react-native-performance' -project(':react-native-performance').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-performance/android') -include ':react-native-safe-area-context' -project(':react-native-safe-area-context').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-safe-area-context/android') -include ':react-native-screens' -project(':react-native-screens').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screens/android') -include ':react-native-slider' -project(':react-native-slider').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/slider/android') -include ':react-native-sound' -project(':react-native-sound').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sound/android') -include ':react-native-splash-view' -project(':react-native-splash-view').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-view/android') -include ':react-native-svg' -project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android') -include ':react-native-video' -project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android') -include ':react-native-webrtc' -project(':react-native-webrtc').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webrtc/android') -include ':react-native-webview' -project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android') -include ':react-native-worklets-core' -project(':react-native-worklets-core').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-worklets-core/android') +includeBuild('../node_modules/@react-native/gradle-plugin') + +def autolinkingJson = file('build/generated/autolinking/autolinking.json') +if (autolinkingJson.exists()) { + def json = new groovy.json.JsonSlurper().parseText(autolinkingJson.text) + json.dependencies.each { name, config -> + if (config.platforms?.android?.sourceDir) { + + def projectName = name.replace('@', '').replace('/', '-') + def sourceDir = config.platforms.android.sourceDir + + include ":$projectName" + project(":$projectName").projectDir = new File(sourceDir) + } + } +} diff --git a/conference.js b/conference.js index 92085b160199..876713f065ca 100644 --- a/conference.js +++ b/conference.js @@ -404,6 +404,7 @@ export default { * Returns an object containing a promise which resolves with the created tracks & * the errors resulting from that process. * @param {object} options + * @param {boolean} option.isBreakoutRoom - true if we are creating the initial local tracks in breakout room. * @param {boolean} options.startAudioOnly=false - if true then * only audio track will be created and the audio only mode will be turned * on. @@ -418,17 +419,19 @@ export default { */ createInitialLocalTracks(options = {}, recordTimeMetrics = false) { const errors = {}; + const { isBreakoutRoom = false } = options; // Always get a handle on the audio input device so that we have statistics (such as "No audio input" or // "Are you trying to speak?" ) even if the user joins the conference muted. - const initialDevices = config.startSilent || config.disableInitialGUM ? [] : [MEDIA_TYPE.AUDIO]; - const requestedAudio = !config.disableInitialGUM; + const initialDevices + = config.startSilent || (config.disableInitialGUM && !isBreakoutRoom) ? [] : [ MEDIA_TYPE.AUDIO ]; + const requestedAudio = !config.disableInitialGUM || isBreakoutRoom; let requestedVideo = false; - if (!config.disableInitialGUM - && !options.startWithVideoMuted - && !options.startAudioOnly - && !options.startScreenSharing) { + if ((!config.disableInitialGUM || isBreakoutRoom) + && !options.startWithVideoMuted + && !options.startAudioOnly + && !options.startScreenSharing) { initialDevices.push(MEDIA_TYPE.VIDEO); requestedVideo = true; } @@ -1657,12 +1660,6 @@ export default { JitsiE2ePingEvents.E2E_RTT_CHANGED, (...args) => APP.store.dispatch(e2eRttChanged(...args))); - room.addCommandListener(this.commands.defaults.ETHERPAD, - ({ value }) => { - APP.UI.initEtherpad(value); - } - ); - room.addCommandListener(this.commands.defaults.EMAIL, (data, from) => { APP.store.dispatch(participantUpdated({ conference: room, @@ -1736,15 +1733,7 @@ export default { } ); - room.on(JitsiConferenceEvents.PERMISSIONS_RECEIVED, p => { - const localParticipant = getLocalParticipant(APP.store.getState()); - APP.store.dispatch(participantUpdated({ - id: localParticipant.id, - local: true, - features: p - })); - }); }, /** diff --git a/config.js b/config.js index 41f1ab78feb8..8100b17831e1 100644 --- a/config.js +++ b/config.js @@ -511,6 +511,15 @@ var config = { // // ./src/react/features/transcribing/transcriber-langs.json. // preferredLanguage: 'en-US', + // Allows extending the list of supported transcription languages. + // Useful for custom transcription backends (e.g. Vosk). + // + // Example: + // customLanguages: { + // 'hsb-DE': 'Upper Sorbian (Germany)', + // 'dsb-DE': 'Lower Sorbian (Germany)' + // }, + // // Enables automatic turning on transcribing when recording is started // autoTranscribeOnRecord: false, @@ -637,21 +646,6 @@ var config = { // sticky: 0, // }, - // // Options for the recording limit notification. - // recordingLimit: { - // - // // The recording limit in minutes. Note: This number appears in the notification text - // // but doesn't enforce the actual recording time limit. This should be configured in - // // jibri! - // limit: 60, - // - // // The name of the app with unlimited recordings. - // appName: 'Unlimited recordings APP', - // - // // The URL of the app with unlimited recordings. - // appURL: 'https://unlimited.recordings.app.com/', - // }, - // Disables or enables RTX (RFC 4588) (defaults to false). // disableRtx: false, @@ -1585,14 +1579,13 @@ var config = { // - electron=true (when web is loaded in electron app) // If there is a logout service you can specify its URL with: // tokenLogoutUrl: 'https://myservice.com/logout' - // You can enable tokenAuthUrlAutoRedirect which will detect that you have logged in successfully before - // and will automatically redirect to the token service to get the token for the meeting. - // tokenAuthUrlAutoRedirect: false // An option to respect the context.tenant jwt field compared to the current tenant from the url // tokenRespectTenant: false, // An option to get for user info (name, picture, email) in the token outside the user context. // Can be used with Firebase tokens. // tokenGetUserInfoOutOfContext: false, + // An option to pass the token in the iframe API directly instead of using the redirect flow. + // tokenAuthInline: false, // You can put an array of values to target different entity types in the invite dialog. // Valid values are "phone", "room", "sip", "user", "videosipgw" and "email" @@ -1862,6 +1855,10 @@ var config = { // userLimit: 25, // // The url for more info about the whiteboard and its usage limitations. // limitUrl: 'https://example.com/blog/whiteboard-limits', + + // //Backend URL for storing whiteboard scenes and images + // //This backend service handles scene persistence and file uploads + // storageBackendUrl: 'https://excalidraw-s3-storage-backend.example.com', // }, // The watchRTC initialize config params as described : diff --git a/css/_base.scss b/css/_base.scss index 058413b31f30..3e099b9b4880 100644 --- a/css/_base.scss +++ b/css/_base.scss @@ -22,6 +22,7 @@ html { height: 100%; width: 100%; overflow: hidden; + overflow: clip; } body { @@ -30,7 +31,14 @@ body { height: 100%; font-size: 0.75rem; font-weight: 400; + // `clip` (vs. `hidden`) makes the element a non-scroll container so the + // engine cannot programmatically scroll it. Prevents Chrome's smooth + // cross-frame `scrollIntoView` from sliding `body` up by the off-screen + // toolbar's height when content inside an iframe (e.g. the custom panel) + // requests an auto-scroll. The `hidden` line is the fallback for browsers + // that do not understand `clip` (Chrome <90, Safari <16). overflow: hidden; + overflow: clip; color: #f1f1f1; // background: #040404; // should match DEFAULT_BACKGROUND from interface_config } @@ -45,7 +53,7 @@ body { .jitsi-icon { &-default svg { - fill: var(--icon-default-color, white); + fill: var(--icon-svg-fill, white); } } diff --git a/css/_reactions-menu.scss b/css/_reactions-menu.scss index 3406c25e5d06..dc3d5055f426 100644 --- a/css/_reactions-menu.scss +++ b/css/_reactions-menu.scss @@ -2,8 +2,8 @@ .reactions-menu { width: 330px; - background: #242528; - box-shadow: 0px 3px 16px rgba(0, 0, 0, 0.6), 0px 0px 4px 1px rgba(0, 0, 0, 0.25); + background: var(--reactions-menu-background, #242528); + box-shadow: 0px 3px 16px var(--reactions-menu-box-shadow-1, rgba(0, 0, 0, 0.6)), 0px 0px 4px 1px var(--reactions-menu-box-shadow-2, rgba(0, 0, 0, 0.25)); border-radius: 6px; padding: 16px; @@ -14,7 +14,7 @@ top: 3px; & .toolbox-icon.toggled { - background-color: #000000; + background-color: var(--reactions-menu-button-toggled, #000000); } } } diff --git a/css/_recording.scss b/css/_recording.scss index 681c40770e1b..83c1fa2d2e28 100644 --- a/css/_recording.scss +++ b/css/_recording.scss @@ -196,4 +196,14 @@ color:#FFD740; font-size: 0.75rem; } + + .youtube-go-live-warning { + margin-bottom: 16px; + padding: 8px 12px; + background-color: rgba(248, 174, 26, 0.1); + border-left: 3px solid #FFD740; + font-size: 0.875rem; + line-height: 1.25rem; + color: #FFD740; + } } diff --git a/css/premeeting/_premeeting-screens.scss b/css/premeeting/_premeeting-screens.scss index dad3e60b2fa7..d43225360c2e 100644 --- a/css/premeeting/_premeeting-screens.scss +++ b/css/premeeting/_premeeting-screens.scss @@ -106,7 +106,7 @@ } #preview { - background: #040404; + background: var(--prejoin-preview-background, #040404); display: flex; align-items: center; justify-content: center; diff --git a/custom.d.ts b/custom.d.ts index 69f38596d441..16c3b0745959 100644 --- a/custom.d.ts +++ b/custom.d.ts @@ -1,3 +1,8 @@ +declare module '*.css' { + const content: Record; + export default content; +} + declare module '*.svg' { const content: any; export default content; diff --git a/debian/control b/debian/control index b4569a4fe710..80e6e4f720c7 100644 --- a/debian/control +++ b/debian/control @@ -34,7 +34,7 @@ Description: Configuration for web serving of Jitsi Meet Package: jitsi-meet-prosody Architecture: all -Depends: openssl, prosody (>= 0.12.0) | prosody-trunk | prosody-0.12 | prosody-13.0, lua-sec, lua-basexx, lua-luaossl, lua-cjson, lua-inspect +Depends: openssl, prosody (>= 0.12.0) | prosody-trunk | prosody-0.12 | prosody-13.0, ca-certificates-java, lua-sec, lua-basexx, lua-luaossl, lua-cjson, lua-inspect Replaces: jitsi-meet-tokens Description: Prosody configuration for Jitsi Meet Jitsi Meet is a WebRTC JavaScript application that uses Jitsi diff --git a/debian/jitsi-meet-prosody.postinst b/debian/jitsi-meet-prosody.postinst index 536281bcb599..1a5a1a425591 100644 --- a/debian/jitsi-meet-prosody.postinst +++ b/debian/jitsi-meet-prosody.postinst @@ -284,13 +284,17 @@ case "$1" in # and drop the wait and the prosody restart sleep 1 invoke-rc.d prosody restart || true - - # In case we had updated the certificates and restarted prosody, let's restart and the bridge and jicofo if possible - if [ -d /run/systemd/system ] && [ "$CERT_ADDED_TO_TRUST" = "true" ]; then + fi + ;; + triggered) + for trigger in $2; do + if [ "$trigger" = "update-ca-certificates-java" ]; then + echo "Java certificates updated, restarting Jitsi components..." systemctl restart jitsi-videobridge2.service >/dev/null || true systemctl restart jicofo.service >/dev/null || true fi - fi + done + exit 0 ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/jitsi-meet-prosody.triggers b/debian/jitsi-meet-prosody.triggers new file mode 100644 index 000000000000..6988d45724c5 --- /dev/null +++ b/debian/jitsi-meet-prosody.triggers @@ -0,0 +1 @@ +interest-noawait update-ca-certificates-java diff --git a/doc/debian/jitsi-meet/jitsi-meet.example b/doc/debian/jitsi-meet/jitsi-meet.example index 0ea213dbad1d..1c9881eeb5ff 100644 --- a/doc/debian/jitsi-meet/jitsi-meet.example +++ b/doc/debian/jitsi-meet/jitsi-meet.example @@ -26,6 +26,22 @@ map $arg_vnode $prosody_node { v7 v7; v8 v8; } +# Matches any URI or Referer with some matches and redacts the whole +# query string. log_format and map must be at the http context level. +map $request_uri $loggable_uri { + ~^(?P[^?]*)\?.*(?:jwt|token)= "${path}?[params_redacted]"; + default $request_uri; +} + +map $http_referer $loggable_referer { + ~^(?P[^?]*)\?.*(?:jwt|token)= "${url}?[params_redacted]"; + default $http_referer; +} + +log_format jitsi_log '$remote_addr - $remote_user [$time_local] ' + '"$request_method $loggable_uri $server_protocol" ' + '$status $body_bytes_sent "$loggable_referer" "$http_user_agent"'; + server { listen 80; listen [::]:80; @@ -66,6 +82,8 @@ server { root /usr/share/jitsi-meet; + access_log /var/log/nginx/access.log jitsi_log; + # ssi on with javascript for multidomain variables in config.js ssi on; ssi_types application/x-javascript application/javascript; diff --git a/globals.native.d.ts b/globals.native.d.ts index 8e7d1bcff2fa..5d63e4b263ec 100644 --- a/globals.native.d.ts +++ b/globals.native.d.ts @@ -2,11 +2,42 @@ import { IConfig } from "./react/features/base/config/configType"; export {}; +declare global { + interface URL { + hash: string; + host: string; + hostname: string; + href: string; + readonly origin: string; + password: string; + pathname: string; + port: string; + protocol: string; + search: string; + readonly searchParams: URLSearchParams; + username: string; + toJSON(): string; + toString(): string; + } + + interface URLSearchParams { + append(name: string, value: string): void; + delete(name: string): void; + get(name: string): string | null; + getAll(name: string): string[]; + has(name: string): boolean; + set(name: string, value: string): void; + sort(): void; + toString(): string; + forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void; + } +} + interface ILocation extends URL { - assign(url: string); - replace(url: string); - reload(); -}; + assign(url: string): void; + replace(url: string): void; + reload(): void; +} interface IWindow { JITSI_MEET_LITE_SDK: boolean; @@ -49,4 +80,4 @@ declare global { const interfaceConfig: any; const navigator: INavigator; const window: IWindow; -} +} \ No newline at end of file diff --git a/index.html b/index.html index 9c718ec1fb2c..b4fb9d33ceef 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,7 @@ : pathname.substring(0, contextRootEndIndex + 1) ); } - window.EXCALIDRAW_ASSET_PATH = 'libs/'; + window.EXCALIDRAW_ASSET_PATH = 'libs/excalidraw/'; // Dynamically generate the manifest location URL. It must be served from the document origin, and we may have // the base pointing to the CDN. This way we can generate a full URL which will bypass the base. document.querySelector('#manifest-placeholder').setAttribute('href', window.location.origin + contextRoot(window.location.pathname) + 'manifest.json'); @@ -82,7 +82,7 @@ "utils.js", "do_external_connect.js", "interface_config.js", - "lib-jitsi-meet.min.js", + "lib-meet.min.js", "app.bundle.min.js", "all.css" ]; @@ -197,7 +197,7 @@ - + diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 290f5ff229dd..5345827f5696 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -13,7 +13,7 @@ PODS: - CocoaLumberjack/Core (3.7.4) - DoubleConversion (1.1.6) - fast_float (6.1.4) - - FBLazyVector (0.77.2) + - FBLazyVector (0.79.7) - Firebase/Analytics (8.15.0): - Firebase/Core - Firebase/Core (8.15.0): @@ -66,7 +66,7 @@ PODS: - fmt (11.0.2) - Giphy (2.2.16): - libwebp - - giphy-react-native-sdk (4.1.0): + - giphy-react-native-sdk (5.0.1): - DoubleConversion - Giphy (= 2.2.16) - glog @@ -79,9 +79,12 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -149,9 +152,9 @@ PODS: - AppAuth/Core (~> 1.7) - GTMSessionFetcher/Core (< 4.0, >= 3.3) - GTMSessionFetcher/Core (3.5.0) - - hermes-engine (0.77.2): - - hermes-engine/Pre-built (= 0.77.2) - - hermes-engine/Pre-built (0.77.2) + - hermes-engine (0.79.7): + - hermes-engine/Pre-built (= 0.79.7) + - hermes-engine/Pre-built (0.79.7) - JitsiWebRTC (124.0.2) - libwebp (1.5.0): - libwebp/demux (= 1.5.0) @@ -191,44 +194,45 @@ PODS: - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog - - RCTDeprecation (0.77.2) - - RCTRequired (0.77.2) - - RCTTypeSafety (0.77.2): - - FBLazyVector (= 0.77.2) - - RCTRequired (= 0.77.2) - - React-Core (= 0.77.2) - - React (0.77.2): - - React-Core (= 0.77.2) - - React-Core/DevSupport (= 0.77.2) - - React-Core/RCTWebSocket (= 0.77.2) - - React-RCTActionSheet (= 0.77.2) - - React-RCTAnimation (= 0.77.2) - - React-RCTBlob (= 0.77.2) - - React-RCTImage (= 0.77.2) - - React-RCTLinking (= 0.77.2) - - React-RCTNetwork (= 0.77.2) - - React-RCTSettings (= 0.77.2) - - React-RCTText (= 0.77.2) - - React-RCTVibration (= 0.77.2) - - React-callinvoker (0.77.2) - - React-Core (0.77.2): + - RCTDeprecation (0.79.7) + - RCTRequired (0.79.7) + - RCTTypeSafety (0.79.7): + - FBLazyVector (= 0.79.7) + - RCTRequired (= 0.79.7) + - React-Core (= 0.79.7) + - React (0.79.7): + - React-Core (= 0.79.7) + - React-Core/DevSupport (= 0.79.7) + - React-Core/RCTWebSocket (= 0.79.7) + - React-RCTActionSheet (= 0.79.7) + - React-RCTAnimation (= 0.79.7) + - React-RCTBlob (= 0.79.7) + - React-RCTImage (= 0.79.7) + - React-RCTLinking (= 0.79.7) + - React-RCTNetwork (= 0.79.7) + - React-RCTSettings (= 0.79.7) + - React-RCTText (= 0.79.7) + - React-RCTVibration (= 0.79.7) + - React-callinvoker (0.79.7) + - React-Core (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - RCTDeprecation - - React-Core/Default (= 0.77.2) + - React-Core/Default (= 0.79.7) - React-cxxreact - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/CoreModulesHeaders (0.77.2): + - React-Core/CoreModulesHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -240,12 +244,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/Default (0.77.2): + - React-Core/Default (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -256,30 +261,32 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/DevSupport (0.77.2): + - React-Core/DevSupport (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - RCTDeprecation - - React-Core/Default (= 0.77.2) - - React-Core/RCTWebSocket (= 0.77.2) + - React-Core/Default (= 0.79.7) + - React-Core/RCTWebSocket (= 0.79.7) - React-cxxreact - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.77.2): + - React-Core/RCTActionSheetHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -291,12 +298,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTAnimationHeaders (0.77.2): + - React-Core/RCTAnimationHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -308,12 +316,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTBlobHeaders (0.77.2): + - React-Core/RCTBlobHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -325,12 +334,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTImageHeaders (0.77.2): + - React-Core/RCTImageHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -342,12 +352,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTLinkingHeaders (0.77.2): + - React-Core/RCTLinkingHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -359,12 +370,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTNetworkHeaders (0.77.2): + - React-Core/RCTNetworkHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -376,12 +388,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTSettingsHeaders (0.77.2): + - React-Core/RCTSettingsHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -393,12 +406,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTTextHeaders (0.77.2): + - React-Core/RCTTextHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -410,12 +424,13 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTVibrationHeaders (0.77.2): + - React-Core/RCTVibrationHeaders (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -427,44 +442,47 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTWebSocket (0.77.2): + - React-Core/RCTWebSocket (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - RCTDeprecation - - React-Core/Default (= 0.77.2) + - React-Core/Default (= 0.79.7) - React-cxxreact - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-perflogger - React-runtimescheduler - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-CoreModules (0.77.2): + - React-CoreModules (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - RCT-Folly (= 2024.11.18.00) - - RCTTypeSafety (= 0.77.2) - - React-Core/CoreModulesHeaders (= 0.77.2) - - React-jsi (= 0.77.2) + - RCTTypeSafety (= 0.79.7) + - React-Core/CoreModulesHeaders (= 0.79.7) + - React-jsi (= 0.79.7) - React-jsinspector + - React-jsinspectortracing - React-NativeModulesApple - React-RCTBlob - React-RCTFBReactNativeSpec - - React-RCTImage (= 0.77.2) + - React-RCTImage (= 0.79.7) - ReactCommon - SocketRocket (= 0.7.1) - - React-cxxreact (0.77.2): + - React-cxxreact (0.79.7): - boost - DoubleConversion - fast_float (= 6.1.4) @@ -472,37 +490,40 @@ PODS: - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.77.2) - - React-debug (= 0.77.2) - - React-jsi (= 0.77.2) + - React-callinvoker (= 0.79.7) + - React-debug (= 0.79.7) + - React-jsi (= 0.79.7) - React-jsinspector - - React-logger (= 0.77.2) - - React-perflogger (= 0.77.2) - - React-runtimeexecutor (= 0.77.2) - - React-timing (= 0.77.2) - - React-debug (0.77.2) - - React-defaultsnativemodule (0.77.2): + - React-jsinspectortracing + - React-logger (= 0.79.7) + - React-perflogger (= 0.79.7) + - React-runtimeexecutor (= 0.79.7) + - React-timing (= 0.79.7) + - React-debug (0.79.7) + - React-defaultsnativemodule (0.79.7): - hermes-engine - RCT-Folly - React-domnativemodule - React-featureflagsnativemodule + - React-hermes - React-idlecallbacksnativemodule - React-jsi - React-jsiexecutor - React-microtasksnativemodule - React-RCTFBReactNativeSpec - - React-domnativemodule (0.77.2): + - React-domnativemodule (0.79.7): - hermes-engine - RCT-Folly - React-Fabric - React-FabricComponents - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core - Yoga - - React-Fabric (0.77.2): + - React-Fabric (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -514,23 +535,25 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.77.2) - - React-Fabric/attributedstring (= 0.77.2) - - React-Fabric/componentregistry (= 0.77.2) - - React-Fabric/componentregistrynative (= 0.77.2) - - React-Fabric/components (= 0.77.2) - - React-Fabric/core (= 0.77.2) - - React-Fabric/dom (= 0.77.2) - - React-Fabric/imagemanager (= 0.77.2) - - React-Fabric/leakchecker (= 0.77.2) - - React-Fabric/mounting (= 0.77.2) - - React-Fabric/observers (= 0.77.2) - - React-Fabric/scheduler (= 0.77.2) - - React-Fabric/telemetry (= 0.77.2) - - React-Fabric/templateprocessor (= 0.77.2) - - React-Fabric/uimanager (= 0.77.2) + - React-Fabric/animations (= 0.79.7) + - React-Fabric/attributedstring (= 0.79.7) + - React-Fabric/componentregistry (= 0.79.7) + - React-Fabric/componentregistrynative (= 0.79.7) + - React-Fabric/components (= 0.79.7) + - React-Fabric/consistency (= 0.79.7) + - React-Fabric/core (= 0.79.7) + - React-Fabric/dom (= 0.79.7) + - React-Fabric/imagemanager (= 0.79.7) + - React-Fabric/leakchecker (= 0.79.7) + - React-Fabric/mounting (= 0.79.7) + - React-Fabric/observers (= 0.79.7) + - React-Fabric/scheduler (= 0.79.7) + - React-Fabric/telemetry (= 0.79.7) + - React-Fabric/templateprocessor (= 0.79.7) + - React-Fabric/uimanager (= 0.79.7) - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -538,7 +561,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.77.2): + - React-Fabric/animations (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -552,6 +575,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -559,7 +583,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.77.2): + - React-Fabric/attributedstring (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -573,6 +597,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -580,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.77.2): + - React-Fabric/componentregistry (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -594,6 +619,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -601,7 +627,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.77.2): + - React-Fabric/componentregistrynative (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -615,6 +641,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -622,7 +649,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.77.2): + - React-Fabric/components (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -634,11 +661,13 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.77.2) - - React-Fabric/components/root (= 0.77.2) - - React-Fabric/components/view (= 0.77.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.79.7) + - React-Fabric/components/root (= 0.79.7) + - React-Fabric/components/scrollview (= 0.79.7) + - React-Fabric/components/view (= 0.79.7) - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -646,7 +675,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.77.2): + - React-Fabric/components/legacyviewmanagerinterop (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -660,6 +689,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -667,7 +697,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.77.2): + - React-Fabric/components/root (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -681,6 +711,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -688,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.77.2): + - React-Fabric/components/scrollview (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -702,6 +733,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -709,8 +741,31 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.79.7): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-hermes + - React-jsi + - React-jsiexecutor + - React-logger + - React-renderercss + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.77.2): + - React-Fabric/consistency (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -724,6 +779,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -731,7 +787,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/dom (0.77.2): + - React-Fabric/core (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -745,6 +801,29 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/dom (0.79.7): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -752,7 +831,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.77.2): + - React-Fabric/imagemanager (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -766,6 +845,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -773,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.77.2): + - React-Fabric/leakchecker (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -787,6 +867,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -794,7 +875,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.77.2): + - React-Fabric/mounting (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -808,6 +889,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -815,7 +897,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers (0.77.2): + - React-Fabric/observers (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -827,9 +909,10 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/observers/events (= 0.77.2) + - React-Fabric/observers/events (= 0.79.7) - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -837,7 +920,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers/events (0.77.2): + - React-Fabric/observers/events (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -851,6 +934,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -858,7 +942,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.77.2): + - React-Fabric/scheduler (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -873,6 +957,7 @@ PODS: - React-Fabric/observers/events - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -881,7 +966,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.77.2): + - React-Fabric/telemetry (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -895,6 +980,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -902,7 +988,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.77.2): + - React-Fabric/templateprocessor (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -916,6 +1002,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -923,7 +1010,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.77.2): + - React-Fabric/uimanager (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -935,9 +1022,10 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/uimanager/consistency (= 0.77.2) + - React-Fabric/uimanager/consistency (= 0.79.7) - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -946,7 +1034,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager/consistency (0.77.2): + - React-Fabric/uimanager/consistency (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -960,6 +1048,7 @@ PODS: - React-debug - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -968,7 +1057,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricComponents (0.77.2): + - React-FabricComponents (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -981,10 +1070,11 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components (= 0.77.2) - - React-FabricComponents/textlayoutmanager (= 0.77.2) + - React-FabricComponents/components (= 0.79.7) + - React-FabricComponents/textlayoutmanager (= 0.79.7) - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -993,7 +1083,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components (0.77.2): + - React-FabricComponents/components (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1006,17 +1096,18 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.77.2) - - React-FabricComponents/components/iostextinput (= 0.77.2) - - React-FabricComponents/components/modal (= 0.77.2) - - React-FabricComponents/components/rncore (= 0.77.2) - - React-FabricComponents/components/safeareaview (= 0.77.2) - - React-FabricComponents/components/scrollview (= 0.77.2) - - React-FabricComponents/components/text (= 0.77.2) - - React-FabricComponents/components/textinput (= 0.77.2) - - React-FabricComponents/components/unimplementedview (= 0.77.2) + - React-FabricComponents/components/inputaccessory (= 0.79.7) + - React-FabricComponents/components/iostextinput (= 0.79.7) + - React-FabricComponents/components/modal (= 0.79.7) + - React-FabricComponents/components/rncore (= 0.79.7) + - React-FabricComponents/components/safeareaview (= 0.79.7) + - React-FabricComponents/components/scrollview (= 0.79.7) + - React-FabricComponents/components/text (= 0.79.7) + - React-FabricComponents/components/textinput (= 0.79.7) + - React-FabricComponents/components/unimplementedview (= 0.79.7) - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1025,7 +1116,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/inputaccessory (0.77.2): + - React-FabricComponents/components/inputaccessory (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1040,6 +1131,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1048,7 +1140,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/iostextinput (0.77.2): + - React-FabricComponents/components/iostextinput (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1063,6 +1155,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1071,7 +1164,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/modal (0.77.2): + - React-FabricComponents/components/modal (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1086,6 +1179,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1094,7 +1188,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/rncore (0.77.2): + - React-FabricComponents/components/rncore (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1109,6 +1203,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1117,7 +1212,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/safeareaview (0.77.2): + - React-FabricComponents/components/safeareaview (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1132,6 +1227,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1140,7 +1236,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/scrollview (0.77.2): + - React-FabricComponents/components/scrollview (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1155,6 +1251,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1163,7 +1260,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/text (0.77.2): + - React-FabricComponents/components/text (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1178,6 +1275,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1186,7 +1284,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/textinput (0.77.2): + - React-FabricComponents/components/textinput (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1201,6 +1299,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1209,7 +1308,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/unimplementedview (0.77.2): + - React-FabricComponents/components/unimplementedview (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1224,6 +1323,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1232,7 +1332,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/textlayoutmanager (0.77.2): + - React-FabricComponents/textlayoutmanager (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1247,6 +1347,7 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-logger @@ -1255,66 +1356,74 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-FabricImage (0.77.2): + - React-FabricImage (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.11.18.00) - - RCTRequired (= 0.77.2) - - RCTTypeSafety (= 0.77.2) + - RCTRequired (= 0.79.7) + - RCTTypeSafety (= 0.79.7) - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.77.2) + - React-jsiexecutor (= 0.79.7) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.77.2) - - React-featureflagsnativemodule (0.77.2): + - React-featureflags (0.79.7): + - RCT-Folly (= 2024.11.18.00) + - React-featureflagsnativemodule (0.79.7): - hermes-engine - RCT-Folly - React-featureflags + - React-hermes - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core - - React-graphics (0.77.2): + - React-graphics (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog + - hermes-engine - RCT-Folly/Fabric (= 2024.11.18.00) + - React-hermes - React-jsi - React-jsiexecutor - React-utils - - React-hermes (0.77.2): + - React-hermes (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - - React-cxxreact (= 0.77.2) + - React-cxxreact (= 0.79.7) - React-jsi - - React-jsiexecutor (= 0.77.2) + - React-jsiexecutor (= 0.79.7) - React-jsinspector - - React-perflogger (= 0.77.2) + - React-jsinspectortracing + - React-perflogger (= 0.79.7) - React-runtimeexecutor - - React-idlecallbacksnativemodule (0.77.2): + - React-idlecallbacksnativemodule (0.79.7): + - glog - hermes-engine - RCT-Folly + - React-hermes - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec - React-runtimescheduler - ReactCommon/turbomodule/core - - React-ImageManager (0.77.2): + - React-ImageManager (0.79.7): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1323,7 +1432,7 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.77.2): + - React-jserrorhandler (0.79.7): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.11.18.00) @@ -1332,7 +1441,7 @@ PODS: - React-featureflags - React-jsi - ReactCommon/turbomodule/bridging - - React-jsi (0.77.2): + - React-jsi (0.79.7): - boost - DoubleConversion - fast_float (= 6.1.4) @@ -1340,36 +1449,52 @@ PODS: - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - - React-jsiexecutor (0.77.2): + - React-jsiexecutor (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - - React-cxxreact (= 0.77.2) - - React-jsi (= 0.77.2) + - React-cxxreact (= 0.79.7) + - React-jsi (= 0.79.7) - React-jsinspector - - React-perflogger (= 0.77.2) - - React-jsinspector (0.77.2): + - React-jsinspectortracing + - React-perflogger (= 0.79.7) + - React-jsinspector (0.79.7): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.11.18.00) + - RCT-Folly - React-featureflags - React-jsi - - React-perflogger (= 0.77.2) - - React-runtimeexecutor (= 0.77.2) - - React-jsitracing (0.77.2): + - React-jsinspectortracing + - React-perflogger (= 0.79.7) + - React-runtimeexecutor (= 0.79.7) + - React-jsinspectortracing (0.79.7): + - RCT-Folly + - React-oscompat + - React-jsitooling (0.79.7): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - glog + - RCT-Folly (= 2024.11.18.00) + - React-cxxreact (= 0.79.7) + - React-jsi (= 0.79.7) + - React-jsinspector + - React-jsinspectortracing + - React-jsitracing (0.79.7): - React-jsi - - React-logger (0.77.2): + - React-logger (0.79.7): - glog - - React-Mapbuffer (0.77.2): + - React-Mapbuffer (0.79.7): - glog - React-debug - - React-microtasksnativemodule (0.77.2): + - React-microtasksnativemodule (0.79.7): - hermes-engine - RCT-Folly + - React-hermes - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec @@ -1396,9 +1521,12 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1421,9 +1549,12 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1442,10 +1573,13 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - react-native-video/Video (= 6.13.0) - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1464,9 +1598,12 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1488,9 +1625,12 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1509,38 +1649,45 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-nativeconfig (0.77.2) - - React-NativeModulesApple (0.77.2): + - React-NativeModulesApple (0.79.7): - glog - hermes-engine - React-callinvoker - React-Core - React-cxxreact + - React-featureflags + - React-hermes - React-jsi - React-jsinspector - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.77.2): + - React-oscompat (0.79.7) + - React-perflogger (0.79.7): - DoubleConversion - RCT-Folly (= 2024.11.18.00) - - React-performancetimeline (0.77.2): + - React-performancetimeline (0.79.7): - RCT-Folly (= 2024.11.18.00) - React-cxxreact - React-featureflags + - React-jsinspectortracing + - React-perflogger - React-timing - - React-RCTActionSheet (0.77.2): - - React-Core/RCTActionSheetHeaders (= 0.77.2) - - React-RCTAnimation (0.77.2): + - React-RCTActionSheet (0.79.7): + - React-Core/RCTActionSheetHeaders (= 0.79.7) + - React-RCTAnimation (0.79.7): - RCT-Folly (= 2024.11.18.00) - RCTTypeSafety - React-Core/RCTAnimationHeaders @@ -1548,7 +1695,8 @@ PODS: - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-RCTAppDelegate (0.77.2): + - React-RCTAppDelegate (0.79.7): + - hermes-engine - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety @@ -1560,20 +1708,20 @@ PODS: - React-featureflags - React-graphics - React-hermes - - React-nativeconfig + - React-jsitooling - React-NativeModulesApple - React-RCTFabric - React-RCTFBReactNativeSpec - React-RCTImage - React-RCTNetwork + - React-RCTRuntime - React-rendererdebug - React-RuntimeApple - React-RuntimeCore - - React-RuntimeHermes - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.77.2): + - React-RCTBlob (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) @@ -1587,7 +1735,7 @@ PODS: - React-RCTFBReactNativeSpec - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.77.2): + - React-RCTFabric (0.79.7): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.11.18.00) @@ -1598,29 +1746,33 @@ PODS: - React-FabricImage - React-featureflags - React-graphics + - React-hermes - React-ImageManager - React-jsi - React-jsinspector - - React-nativeconfig + - React-jsinspectortracing - React-performancetimeline + - React-RCTAnimation - React-RCTImage - React-RCTText - React-rendererconsistency + - React-renderercss - React-rendererdebug - React-runtimescheduler - React-utils - Yoga - - React-RCTFBReactNativeSpec (0.77.2): + - React-RCTFBReactNativeSpec (0.79.7): - hermes-engine - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core + - React-hermes - React-jsi - React-jsiexecutor - React-NativeModulesApple - ReactCommon - - React-RCTImage (0.77.2): + - React-RCTImage (0.79.7): - RCT-Folly (= 2024.11.18.00) - RCTTypeSafety - React-Core/RCTImageHeaders @@ -1629,14 +1781,14 @@ PODS: - React-RCTFBReactNativeSpec - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.77.2): - - React-Core/RCTLinkingHeaders (= 0.77.2) - - React-jsi (= 0.77.2) + - React-RCTLinking (0.79.7): + - React-Core/RCTLinkingHeaders (= 0.79.7) + - React-jsi (= 0.79.7) - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - ReactCommon/turbomodule/core (= 0.77.2) - - React-RCTNetwork (0.77.2): + - ReactCommon/turbomodule/core (= 0.79.7) + - React-RCTNetwork (0.79.7): - RCT-Folly (= 2024.11.18.00) - RCTTypeSafety - React-Core/RCTNetworkHeaders @@ -1644,7 +1796,20 @@ PODS: - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-RCTSettings (0.77.2): + - React-RCTRuntime (0.79.7): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-Core + - React-hermes + - React-jsi + - React-jsinspector + - React-jsinspectortracing + - React-jsitooling + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-RCTSettings (0.79.7): - RCT-Folly (= 2024.11.18.00) - RCTTypeSafety - React-Core/RCTSettingsHeaders @@ -1652,25 +1817,28 @@ PODS: - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-RCTText (0.77.2): - - React-Core/RCTTextHeaders (= 0.77.2) + - React-RCTText (0.79.7): + - React-Core/RCTTextHeaders (= 0.79.7) - Yoga - - React-RCTVibration (0.77.2): + - React-RCTVibration (0.79.7): - RCT-Folly (= 2024.11.18.00) - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-rendererconsistency (0.77.2) - - React-rendererdebug (0.77.2): + - React-rendererconsistency (0.79.7) + - React-renderercss (0.79.7): + - React-debug + - React-utils + - React-rendererdebug (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - RCT-Folly (= 2024.11.18.00) - React-debug - - React-rncore (0.77.2) - - React-RuntimeApple (0.77.2): + - React-rncore (0.79.7) + - React-RuntimeApple (0.79.7): - hermes-engine - RCT-Folly/Fabric (= 2024.11.18.00) - React-callinvoker @@ -1682,6 +1850,7 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-Mapbuffer - React-NativeModulesApple - React-RCTFabric @@ -1691,35 +1860,38 @@ PODS: - React-RuntimeHermes - React-runtimescheduler - React-utils - - React-RuntimeCore (0.77.2): + - React-RuntimeCore (0.79.7): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.11.18.00) - React-cxxreact - React-Fabric - React-featureflags + - React-hermes - React-jserrorhandler - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsitooling - React-performancetimeline - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.77.2): - - React-jsi (= 0.77.2) - - React-RuntimeHermes (0.77.2): + - React-runtimeexecutor (0.79.7): + - React-jsi (= 0.79.7) + - React-RuntimeHermes (0.79.7): - hermes-engine - RCT-Folly/Fabric (= 2024.11.18.00) - React-featureflags - React-hermes - React-jsi - React-jsinspector + - React-jsinspectortracing + - React-jsitooling - React-jsitracing - - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.77.2): + - React-runtimescheduler (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) @@ -1727,23 +1899,26 @@ PODS: - React-cxxreact - React-debug - React-featureflags + - React-hermes - React-jsi + - React-jsinspectortracing - React-performancetimeline - React-rendererconsistency - React-rendererdebug - React-runtimeexecutor - React-timing - React-utils - - React-timing (0.77.2) - - React-utils (0.77.2): + - React-timing (0.79.7) + - React-utils (0.79.7): - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - React-debug - - React-jsi (= 0.77.2) - - ReactAppDependencyProvider (0.77.2): + - React-hermes + - React-jsi (= 0.79.7) + - ReactAppDependencyProvider (0.79.7): - ReactCodegen - - ReactCodegen (0.77.2): + - ReactCodegen (0.79.7): - DoubleConversion - glog - hermes-engine @@ -1756,6 +1931,7 @@ PODS: - React-FabricImage - React-featureflags - React-graphics + - React-hermes - React-jsi - React-jsiexecutor - React-NativeModulesApple @@ -1764,49 +1940,49 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - ReactCommon (0.77.2): - - ReactCommon/turbomodule (= 0.77.2) - - ReactCommon/turbomodule (0.77.2): + - ReactCommon (0.79.7): + - ReactCommon/turbomodule (= 0.79.7) + - ReactCommon/turbomodule (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.77.2) - - React-cxxreact (= 0.77.2) - - React-jsi (= 0.77.2) - - React-logger (= 0.77.2) - - React-perflogger (= 0.77.2) - - ReactCommon/turbomodule/bridging (= 0.77.2) - - ReactCommon/turbomodule/core (= 0.77.2) - - ReactCommon/turbomodule/bridging (0.77.2): + - React-callinvoker (= 0.79.7) + - React-cxxreact (= 0.79.7) + - React-jsi (= 0.79.7) + - React-logger (= 0.79.7) + - React-perflogger (= 0.79.7) + - ReactCommon/turbomodule/bridging (= 0.79.7) + - ReactCommon/turbomodule/core (= 0.79.7) + - ReactCommon/turbomodule/bridging (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.77.2) - - React-cxxreact (= 0.77.2) - - React-jsi (= 0.77.2) - - React-logger (= 0.77.2) - - React-perflogger (= 0.77.2) - - ReactCommon/turbomodule/core (0.77.2): + - React-callinvoker (= 0.79.7) + - React-cxxreact (= 0.79.7) + - React-jsi (= 0.79.7) + - React-logger (= 0.79.7) + - React-perflogger (= 0.79.7) + - ReactCommon/turbomodule/core (0.79.7): - DoubleConversion - fast_float (= 6.1.4) - fmt (= 11.0.2) - glog - hermes-engine - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.77.2) - - React-cxxreact (= 0.77.2) - - React-debug (= 0.77.2) - - React-featureflags (= 0.77.2) - - React-jsi (= 0.77.2) - - React-logger (= 0.77.2) - - React-perflogger (= 0.77.2) - - React-utils (= 0.77.2) + - React-callinvoker (= 0.79.7) + - React-cxxreact (= 0.79.7) + - React-debug (= 0.79.7) + - React-featureflags (= 0.79.7) + - React-jsi (= 0.79.7) + - React-logger (= 0.79.7) + - React-perflogger (= 0.79.7) + - React-utils (= 0.79.7) - RNCalendarEvents (2.2.0): - React-Core - RNCAsyncStorage (1.23.1): @@ -1829,9 +2005,12 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1853,10 +2032,13 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric - React-RCTImage + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1883,9 +2065,12 @@ PODS: - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager + - React-jsi - React-NativeModulesApple - React-RCTFabric + - React-renderercss - React-rendererdebug - React-utils - ReactCodegen @@ -1935,6 +2120,8 @@ DEPENDENCIES: - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsinspectortracing (from `../node_modules/react-native/ReactCommon/jsinspector-modern/tracing`) + - React-jsitooling (from `../node_modules/react-native/ReactCommon/jsitooling`) - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) @@ -1952,8 +2139,8 @@ DEPENDENCIES: - react-native-webrtc (from `../node_modules/react-native-webrtc`) - react-native-webview (from `../node_modules/react-native-webview`) - react-native-worklets-core (from `../node_modules/react-native-worklets-core`) - - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - React-oscompat (from `../node_modules/react-native/ReactCommon/oscompat`) - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) @@ -1965,10 +2152,12 @@ DEPENDENCIES: - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTRuntime (from `../node_modules/react-native/React/Runtime`) - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) + - React-renderercss (from `../node_modules/react-native/ReactCommon/react/renderer/css`) - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - React-rncore (from `../node_modules/react-native/ReactCommon`) - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) @@ -2037,7 +2226,7 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2024-11-25-RNv0.77.0-d4f25d534ab744866448b36ca3bf3d97c08e638c + :tag: hermes-2025-06-04-RNv0.79.3-7f9a871eefeb2c3852365ee80f0b6733ec12ac3b RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTDeprecation: @@ -2088,6 +2277,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsinspectortracing: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/tracing" + React-jsitooling: + :path: "../node_modules/react-native/ReactCommon/jsitooling" React-jsitracing: :path: "../node_modules/react-native/ReactCommon/hermes/executor/" React-logger: @@ -2122,10 +2315,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-webview" react-native-worklets-core: :path: "../node_modules/react-native-worklets-core" - React-nativeconfig: - :path: "../node_modules/react-native/ReactCommon" React-NativeModulesApple: :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + React-oscompat: + :path: "../node_modules/react-native/ReactCommon/oscompat" React-perflogger: :path: "../node_modules/react-native/ReactCommon/reactperflogger" React-performancetimeline: @@ -2148,6 +2341,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/LinkingIOS" React-RCTNetwork: :path: "../node_modules/react-native/Libraries/Network" + React-RCTRuntime: + :path: "../node_modules/react-native/React/Runtime" React-RCTSettings: :path: "../node_modules/react-native/Libraries/Settings" React-RCTText: @@ -2156,6 +2351,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/Vibration" React-rendererconsistency: :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" + React-renderercss: + :path: "../node_modules/react-native/ReactCommon/react/renderer/css" React-rendererdebug: :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" React-rncore: @@ -2212,7 +2409,7 @@ SPEC CHECKSUMS: CocoaLumberjack: 543c79c114dadc3b1aba95641d8738b06b05b646 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 - FBLazyVector: 4c16dde959a9d6b24f2aa32cb87cb919a1ace3f3 + FBLazyVector: b60fe06f0f15b7d7408f169442176e69e8eeacde Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d FirebaseAnalytics: 7761cbadb00a717d8d0939363eb46041526474fa FirebaseCore: 5743c5785c074a794d35f2fff7ecc254a91e08b1 @@ -2221,104 +2418,108 @@ SPEC CHECKSUMS: FirebaseInstallations: 40bd9054049b2eae9a2c38ef1c3dd213df3605cd fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd Giphy: 55914215541027873875757f350530e6d8986fba - giphy-react-native-sdk: 733177b2537b527cfa55979c396cc1f2046eb457 - glog: eb93e2f488219332457c3c4eafd2738ddc7e80b8 + giphy-react-native-sdk: 96979a55db8fa26e03f8c5208e3cfa8f62193770 + glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 GoogleAppMeasurement: 4c19f031220c72464d460c9daa1fb5d1acce958e GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 - hermes-engine: 8eb265241fa1d7095d3a40d51fd90f7dce68217c + hermes-engine: 13c84524b3b6e884b2cf3b3b1e002ffd147d88a3 JitsiWebRTC: b47805ab5668be38e7ee60e2258f49badfe8e1d0 libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 ObjectiveDropboxOfficial: fe206ce8c0bc49976c249d472db7fdbc53ebbd53 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82 - RCTDeprecation: 85b72250b63cfb54f29ca96ceb108cb9ef3c2079 - RCTRequired: 567cb8f5d42b990331bfd93faad1d8999b1c1736 - RCTTypeSafety: 5e57924492a5e0a762654f814dd018953274eca9 - React: 53c9bd6f974c5dd019ee466e46477eb679149c38 - React-callinvoker: d6484472c1c742917b51338525336d6a74ab8a9f - React-Core: 4ddb741e08144902ce4e0e66b7c67c6f2dc5bfc7 - React-CoreModules: 0a31ca662ac169edd0c210efd324e19b3012d7ed - React-cxxreact: f8ecc64ebf8b795c550ae8b65ba4908ffe7350d0 - React-debug: bcb3ad3ac30170b3dad4a35b4b85db17ff9553b2 - React-defaultsnativemodule: 6f82446e1c372d904fd06f7c405fcb04f76e3d24 - React-domnativemodule: 6af75363e305253251475a82df996cde8a53e066 - React-Fabric: 0a8ef32ba4f8516c89d89126434ead8c0c564da1 - React-FabricComponents: 7c69a91400e6c1766ad9d44b7fa73871559ead30 - React-FabricImage: dc71846e7a8b0825890faacf88a2a1cf771c7108 - React-featureflags: 1d15b368330ec96edc02e68cdae0f266efad5ebe - React-featureflagsnativemodule: 45f51f78d54579087e1233dc8bae31e2536c4208 - React-graphics: 235f82ac0ca6b4533049e10baf202f521804baef - React-hermes: 104bc85f9903f1caa91db6b09a5f97ceda6c50af - React-idlecallbacksnativemodule: 47f766f119cccd4486081f88ebc30e3046130ce0 - React-ImageManager: 0190f64acb02be89d57764f608989297409eba30 - React-jserrorhandler: 30f3a3a2e54ac2528bf93b59f764a8ae1bcd88eb - React-jsi: 0a6dd1eafe243a6c19c5207103aa0fba3c45a46d - React-jsiexecutor: 9aba4e775cc17d9c4311caf1bf2158a570380a9a - React-jsinspector: 6982d464d92181217de063cebc4a992d99d85b7f - React-jsitracing: a6569c6c0dadecdce4821f87a420b409a19e42d3 - React-logger: 592d84bed2e04db64c0b3725f9970b437473f3d3 - React-Mapbuffer: 595c88852c1dcb1c4faafad88148de8690a70aae - React-microtasksnativemodule: b56986b155ae82e9bcb1d1c0ca8726bac52dbb6e + RCTDeprecation: b9b1716eec53aaeaa859aa45e27de7b615cff732 + RCTRequired: 862acb469086f601f81aab298e00c2a13d572099 + RCTTypeSafety: 45120b9028ec6819266f3ef7a6b8e8a9f0a083d4 + React: 49e89943d7b1bc95c5895a05c6cf106ba112d037 + React-callinvoker: 9baafac613e363728c47ceaf65b9597bd1b96df0 + React-Core: 2f642fff28911adf30dd5169a7d9d2b95dc59bc9 + React-CoreModules: a499af0e4a8dfa78cbc04c131b59fa3286210148 + React-cxxreact: 1a485bb66f4bdde62f89eb0e5db1262182fc40e0 + React-debug: 40119ee63d9fb04f8b11d460c3c30b5997d9d737 + React-defaultsnativemodule: d578aae775984b79f126a0ffd8481b70c0f145fc + React-domnativemodule: 2351486bd32ead37c242b00a71cbdff8dabb274c + React-Fabric: 3e4c67dd7918274fe00fdc34a56696095e4d83f0 + React-FabricComponents: c82dfc3d8e1faf5cd87b08f5f9e2be0fe9b775f3 + React-FabricImage: a296eafd939fb33e0acf09d33239408fe4624582 + React-featureflags: 3fdf55dee69c3e165411fbde4f9f3acb9e428dfd + React-featureflagsnativemodule: 1139ddc9fc4c703ef9165a50c83cdca710baa674 + React-graphics: 4d1c605d894e9c9a887bb6934d9cca89d2ff36f5 + React-hermes: 59edcac48ec38831b40cf28ed34b6d4d735cbdd3 + React-idlecallbacksnativemodule: 23c6b73801992033086c2e8b9519bbf6aaf84165 + React-ImageManager: 2b2c8c39cc29e55a59dc1a0a9427ec7f89aae02b + React-jserrorhandler: 7d2f6eb3821818dc914a278f06586f047d623d72 + React-jsi: f6fee849355b8819936b02d5c5b23a55a3d69540 + React-jsiexecutor: cd6fd873482d7183206eb612ce362d02c6fb8556 + React-jsinspector: d2b58ae4a2fa080b3fcc4a5a81dfbd7727654a6d + React-jsinspectortracing: d3c7d7ec87d24f4c3832ecf141afcbf8844eee80 + React-jsitooling: bfde104a6ea4540830a246c6ffd9f1d07bf677b0 + React-jsitracing: 826dc37b6d98de03e0e64d8d6017b40af766dbf0 + React-logger: fbdc0814b62fefa412a90af7cacc666387f1bc9a + React-Mapbuffer: cfe4726ba1929b9dab4645c78376a9165375d62f + React-microtasksnativemodule: c99b8f1240609566de105b73f2569c0f22880ee1 react-native-background-timer: 4638ae3bee00320753647900b21260b10587b6f7 react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba react-native-keep-awake: 03b74eebe4f2bb5e8478fc8f420651a92463b6f8 react-native-netinfo: 5364263f903da576bdef9c84a76fe243ab06812c react-native-orientation-locker: dbd3f6ddbe9e62389cb0807dc2af63f6c36dec36 - react-native-pager-view: 11662c698c8f11d39e05891316d2a144fa00adc4 + react-native-pager-view: 4a60c3b694a1cf20d0b2c94be89a713e7954a39a react-native-performance: 125a96c145e29918b55b45ce25cbba54f1e24dcd react-native-safe-area-context: 2243039f43d10cb1ea30ec5ac57fc6d1448413f4 - react-native-slider: 1205801a8d29b28cacc14eef08cb120015cdafcb - react-native-video: eb861d67a71dfef1bbf6086a811af5f338b13781 + react-native-slider: 6d03bbb4451b244b1ba954b67de12a1d8698f892 + react-native-video: 44253ad8f35d5f1ff1f69e15da07701b9437d2d4 react-native-webrtc: e8f0ce746353adc2744a2b933645e1aeb41eaa74 - react-native-webview: 079eca50edf657503318b66687dadfb903731aa8 - react-native-worklets-core: b59cf88762c8fb6132d8796babd4cec15217d6f0 - React-nativeconfig: ecf4dc92c40b97e2b3f0c619938f78bfd6507b08 - React-NativeModulesApple: f457bbfb30fb3bc41979b1a87b99d292d7340d39 - React-perflogger: 1111b5feb064c4cc83df88fb403efda54b387951 - React-performancetimeline: f04d09d6c0da5c31c9c3a10afe6fcfdaddbb8624 - React-RCTActionSheet: 150cfe1df4275db2251a2a4a1b22be3294e94ef7 - React-RCTAnimation: 1de976f7a660429c39e20a81a728eb0102226f9b - React-RCTAppDelegate: 4d0243b352cd6c12744ffaa1b7e6aa90eaa3c291 - React-RCTBlob: 27c8f8fa6cb47cd4cb422d74d015722f01835493 - React-RCTFabric: fd2345f7a3c1415f988df0640d0e525d62fa4932 - React-RCTFBReactNativeSpec: e7554dd3838a0d17e2e361e737ede98dfe2ebc9c - React-RCTImage: 148afd89e4de0c36b87df0d1e8c0007fa89fb055 - React-RCTLinking: 389458d08b891fa0a03e4c2cee545ebff341d06f - React-RCTNetwork: a78572948341ef0f9438b2d1cd685be564256518 - React-RCTSettings: 484e4ec805ff8ab6c0af21fe90f415a8fae89f43 - React-RCTText: 0d6fbf6ebe6eaa749bc7d672ba01a3e96553e941 - React-RCTVibration: 4baa58b79be7062096e0f0b7575d4f0507952449 - React-rendererconsistency: 5f7773101a5d744d37967faabdb1b259c8f0b481 - React-rendererdebug: d6da0f1dd47e4a087396ec7e7c37d2f0a469d2bd - React-rncore: 679835b31b637897cfd0b2ede7f9c206b9a688ff - React-RuntimeApple: 532438b9b2a0438639ebfae26117a23615b89d09 - React-RuntimeCore: 8cb8fa729bf409730fc38a019556afc02e45989b - React-runtimeexecutor: e6e7af01f9989f931289250ee9060604bc0f0144 - React-RuntimeHermes: 825d11cbef3dac839016830bdb93d815492bbe94 - React-runtimescheduler: a3560dd66614edaf2f2fb90697474802f8bdd358 - React-timing: d9adb125887c734222f455da146e2ff1a7b2b9c1 - React-utils: 5642285f8379e4d024f1f158ffcc77d9c52c877c - ReactAppDependencyProvider: f334cebc0beed0a72490492e978007082c03d533 - ReactCodegen: 6f764a42662ad6379fd3fbb9c09baff6e4797b20 - ReactCommon: 7763e59534d58e15f8f22121cdfe319040e08888 + react-native-webview: 1b5778b306d4ed09d13829a6e7a6550e3c1a644a + react-native-worklets-core: d87885e4cd1424b1b1eb187aa77d407ea01f9c4c + React-NativeModulesApple: 74051ff264ce0b89ac799b56314f8f440a95ee4d + React-oscompat: 0047f0ce53a328ce225777a6c617970556602c7c + React-perflogger: bf00d816c3c3ad91658b44f93ce9ee343b4c70df + React-performancetimeline: 75139687f2db7ca68fd0377466949af0b3408995 + React-RCTActionSheet: 9b3b04bbe75241c964d59a3ec18716d0bec22b2c + React-RCTAnimation: 2ffefa3b11df9aa1248182fac5b74e6a9b5ebd21 + React-RCTAppDelegate: f3833bcbd47518336c5692d602e01ce2fe6f2c7c + React-RCTBlob: 3cf08a694a3f7b082e23717c7587b8d914685582 + React-RCTFabric: 052e2b93a5ae99762dad801c130b07599c43a3f8 + React-RCTFBReactNativeSpec: 12f74eedb007b094b8f05928853fca36a2b9786c + React-RCTImage: 4eaca67175ed2a33d39eeb8bad0e724c849bdc11 + React-RCTLinking: 5133d7bf648707bc3fb65fb7ab3cfa7f445e9893 + React-RCTNetwork: 708cf70b59721a23cc362cde08dd204375c9d0ac + React-RCTRuntime: 2d3ba93b9758077e730e4a0c304c629365b47acd + React-RCTSettings: 6d413683ae5a36e80c7965f1ff8efa893b211a17 + React-RCTText: 0bd1e63583ba3dab0358f62ade056732b76463f8 + React-RCTVibration: bab25bb8bc2f017e4729deb59d26bb32240b16db + React-rendererconsistency: 32ded9b29e3dc4c2607b2c2f774bc16320fbf7ed + React-renderercss: a1e299ffd55c69fbc57e4a77a0e4dbf4a8069ada + React-rendererdebug: b640acffa5b80be66f7c5e463ffef60fa74fbbce + React-rncore: 6faaf52d39dca54cb3e63fd45cd4bd2004bceba7 + React-RuntimeApple: c734fb41922e0d6afbcbf6326b04c41c44d4e166 + React-RuntimeCore: b84b58450e647cb1e912857b81b9761317e29af0 + React-runtimeexecutor: e6aceac245c2e4f0dca15c2c57182d1dabc90e11 + React-RuntimeHermes: 9ae57e883b94d3da384b52ab3e4b22a7ac49d639 + React-runtimescheduler: e7a8619f43121a426f1ea44a6a76b22259bc56cc + React-timing: 10c2421a49f1c2906d6bb95027248a4543ac113f + React-utils: 9ec29e69f3e6347a4c93745f84c2a214b5b1ce64 + ReactAppDependencyProvider: b203bace11326361b7f0513b3f5854cd340aa929 + ReactCodegen: 6a29ad4365aeeceecb951cfd6546a99ce617cc50 + ReactCommon: 4e460daed3ccb6af9e3de3176920362d8b888a17 RNCalendarEvents: 62e1ac89d3afbfa77cf2dafa8727af93fa70825f RNCAsyncStorage: aa75595c1aefa18f868452091fa0c411a516ce11 RNCClipboard: 7c3e3b5f71d84ef61690ad377b6c50cf27864ff5 RNDefaultPreference: ee13d69e6693d193cd223d10e15e5b3c012d31ba RNDeviceInfo: 723e97dd98af9b7913477e7a40252c15517c258c - RNGestureHandler: 9f3109e11ed88fe5bed280bf7762b25e4c52f396 + RNGestureHandler: ce4a87dba81030b374d7f1993c4376f5c230da2e RNGoogleSignin: 30e1aee80140dc0706cd78a4951c411376c88329 - RNScreens: 9ef996b6041d0960a4794a845f7d0808b171b4ef + RNScreens: 62fdbbc4c984150b34c36f095c6ba2510ca9b6a5 RNSound: 314cc5226453ef4a3314a196c65e8a65e5106a7b - RNSVG: 67de7abef81f367387b708ba6d2acefe7d4f5895 + RNSVG: ab84f2de7dd4f2c86d01825b8a65e0ef712fc36b SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - SplashView: ed71a114c3ffe60dc3a9e5aa2cefb352c3794a70 - Yoga: 31a098f74c16780569aebd614a0f37a907de0189 + SplashView: 1f70e5be12f45df018a7236c23aa6919ee509c2f + Yoga: 9663a18d096f7f7e17a535cf00849db756709955 PODFILE CHECKSUM: 7c37a89916893e11159576c8b308b7b5c25246c9 diff --git a/ios/sdk/sdk.xcodeproj/project.pbxproj b/ios/sdk/sdk.xcodeproj/project.pbxproj index e14b5a8aa925..1eb2610d68c3 100644 --- a/ios/sdk/sdk.xcodeproj/project.pbxproj +++ b/ios/sdk/sdk.xcodeproj/project.pbxproj @@ -10,8 +10,6 @@ 0B412F181EDEC65D00B1A0A6 /* JitsiMeetView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0B412F191EDEC65D00B1A0A6 /* JitsiMeetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */; }; 0B412F221EDEF6EA00B1A0A6 /* JitsiMeetViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B93EF7E1EC9DDCD0030D24D /* RCTBridgeWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */; }; - 0B93EF7F1EC9DDCD0030D24D /* RCTBridgeWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B93EF7D1EC9DDCD0030D24D /* RCTBridgeWrapper.m */; }; 0BA13D311EE83FF8007BEF7F /* ExternalAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA13D301EE83FF8007BEF7F /* ExternalAPI.m */; }; 0BB9AD771F5EC6CE001C08DB /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB9AD761F5EC6CE001C08DB /* CallKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 0BB9AD791F5EC6D7001C08DB /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB9AD781F5EC6D7001C08DB /* Intents.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; @@ -62,7 +60,6 @@ DE81A2DF2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2DD2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m */; }; DE9A0130289A9A9A00E41CBB /* JitsiMeetUserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = DE762DB322AFDE76000DEBD6 /* JitsiMeetUserInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; DE9A0131289A9A9A00E41CBB /* JitsiMeetView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE9A0132289A9A9A00E41CBB /* RCTBridgeWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */; }; DE9A0133289A9A9A00E41CBB /* JitsiMeetBaseLogHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = DE81A2DC2317ED5400AE1940 /* JitsiMeetBaseLogHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; DE9A0134289A9A9A00E41CBB /* JitsiMeetSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = DEA9F283258A5D9900D4CD74 /* JitsiMeetSDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; DE9A0135289A9A9A00E41CBB /* ScheenshareEventEmiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */; }; @@ -80,10 +77,8 @@ DE9A0146289A9A9A00E41CBB /* JitsiAudioSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */; }; DE9A0147289A9A9A00E41CBB /* AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BB9AD7C1F60356D001C08DB /* AppInfo.m */; }; DE9A0148289A9A9A00E41CBB /* LogBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2D72316AC7600AE1940 /* LogBridge.m */; }; - DE9A0149289A9A9A00E41CBB /* RNRootView.m in Sources */ = {isa = PBXBuildFile; fileRef = DEAFA778229EAD520033A7FA /* RNRootView.m */; }; DE9A014A289A9A9A00E41CBB /* JitsiMeetUserInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = DE762DB522AFDE8D000DEBD6 /* JitsiMeetUserInfo.m */; }; DE9A014B289A9A9A00E41CBB /* JitsiMeetConferenceOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DEAD3225220C497000E93636 /* JitsiMeetConferenceOptions.m */; }; - DE9A014C289A9A9A00E41CBB /* RCTBridgeWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B93EF7D1EC9DDCD0030D24D /* RCTBridgeWrapper.m */; }; DE9A014D289A9A9A00E41CBB /* ExternalAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA13D301EE83FF8007BEF7F /* ExternalAPI.m */; }; DE9A014E289A9A9A00E41CBB /* POSIX.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495D1EC4B6C600B793EE /* POSIX.m */; }; DE9A014F289A9A9A00E41CBB /* InfoPlistUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = C8AFD27E2462C613000293D2 /* InfoPlistUtil.m */; }; @@ -105,10 +100,11 @@ DEA9F284258A5D9900D4CD74 /* JitsiMeetSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = DEA9F283258A5D9900D4CD74 /* JitsiMeetSDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; DEAD3226220C497000E93636 /* JitsiMeetConferenceOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DEAD3224220C497000E93636 /* JitsiMeetConferenceOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; DEAD3227220C497000E93636 /* JitsiMeetConferenceOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DEAD3225220C497000E93636 /* JitsiMeetConferenceOptions.m */; }; - DEAFA779229EAD520033A7FA /* RNRootView.m in Sources */ = {isa = PBXBuildFile; fileRef = DEAFA778229EAD520033A7FA /* RNRootView.m */; }; DEFC743F21B178FA00E4DD96 /* LocaleDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFC743D21B178FA00E4DD96 /* LocaleDetector.m */; }; DEFE535421FB1BF800011A3A /* JitsiMeet.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFE535321FB1BF800011A3A /* JitsiMeet.m */; }; DEFE535621FB2E8300011A3A /* ReactUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFE535521FB2E8300011A3A /* ReactUtils.m */; }; + DF4E6A012233445566778801 /* JitsiReactFactoryDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DF4E6A012233445566778804 /* JitsiReactFactoryDelegate.m */; }; + DF4E6A012233445566778802 /* JitsiReactFactoryDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DF4E6A012233445566778804 /* JitsiReactFactoryDelegate.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -117,8 +113,6 @@ 0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetView.m; sourceTree = ""; }; 0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetViewDelegate.h; sourceTree = ""; }; 0B93EF7A1EC608550030D24D /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; - 0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBridgeWrapper.h; sourceTree = ""; }; - 0B93EF7D1EC9DDCD0030D24D /* RCTBridgeWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBridgeWrapper.m; sourceTree = ""; }; 0BA13D301EE83FF8007BEF7F /* ExternalAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExternalAPI.m; sourceTree = ""; }; 0BB9AD761F5EC6CE001C08DB /* CallKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; }; 0BB9AD781F5EC6D7001C08DB /* Intents.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Intents.framework; path = System/Library/Frameworks/Intents.framework; sourceTree = SDKROOT; }; @@ -175,13 +169,13 @@ DEAD3224220C497000E93636 /* JitsiMeetConferenceOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetConferenceOptions.h; sourceTree = ""; }; DEAD3225220C497000E93636 /* JitsiMeetConferenceOptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetConferenceOptions.m; sourceTree = ""; }; DEAD3228220C734300E93636 /* JitsiMeetConferenceOptions+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiMeetConferenceOptions+Private.h"; sourceTree = ""; }; - DEAFA777229EAD3B0033A7FA /* RNRootView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNRootView.h; sourceTree = ""; }; - DEAFA778229EAD520033A7FA /* RNRootView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNRootView.m; sourceTree = ""; }; DEFC743D21B178FA00E4DD96 /* LocaleDetector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LocaleDetector.m; sourceTree = ""; }; DEFE535321FB1BF800011A3A /* JitsiMeet.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiMeet.m; sourceTree = ""; }; DEFE535521FB2E8300011A3A /* ReactUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReactUtils.m; sourceTree = ""; }; DEFE535721FB2E9E00011A3A /* ReactUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReactUtils.h; sourceTree = ""; }; DEFE535821FB311F00011A3A /* JitsiMeet+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiMeet+Private.h"; sourceTree = ""; }; + DF4E6A012233445566778803 /* JitsiReactFactoryDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiReactFactoryDelegate.h; sourceTree = ""; }; + DF4E6A012233445566778804 /* JitsiReactFactoryDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiReactFactoryDelegate.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -251,6 +245,8 @@ DEFE535821FB311F00011A3A /* JitsiMeet+Private.h */, DEA9F283258A5D9900D4CD74 /* JitsiMeetSDK.h */, DEFE535321FB1BF800011A3A /* JitsiMeet.m */, + DF4E6A012233445566778803 /* JitsiReactFactoryDelegate.h */, + DF4E6A012233445566778804 /* JitsiReactFactoryDelegate.m */, 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */, 4ED4FFF52721BAE10074E620 /* JitsiAudioSession+Private.h */, 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */, @@ -271,8 +267,6 @@ 0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */, DE81A2D72316AC7600AE1940 /* LogBridge.m */, DE65AAC92317FFCD00290BEC /* LogUtils.h */, - DEAFA777229EAD3B0033A7FA /* RNRootView.h */, - DEAFA778229EAD520033A7FA /* RNRootView.m */, 0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */, DEFC743D21B178FA00E4DD96 /* LocaleDetector.m */, C6A3426B204F127900E062DD /* picture-in-picture */, @@ -280,8 +274,6 @@ 0BCA495E1EC4B6C600B793EE /* Proximity.m */, DEFE535721FB2E9E00011A3A /* ReactUtils.h */, DEFE535521FB2E8300011A3A /* ReactUtils.m */, - 0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */, - 0B93EF7D1EC9DDCD0030D24D /* RCTBridgeWrapper.m */, C8AFD27D2462C613000293D2 /* InfoPlistUtil.h */, C8AFD27E2462C613000293D2 /* InfoPlistUtil.m */, C81E9AB825AC5AD800B134D9 /* ExternalAPI.h */, @@ -358,7 +350,6 @@ files = ( DE762DB422AFDE76000DEBD6 /* JitsiMeetUserInfo.h in Headers */, 0B412F181EDEC65D00B1A0A6 /* JitsiMeetView.h in Headers */, - 0B93EF7E1EC9DDCD0030D24D /* RCTBridgeWrapper.h in Headers */, DE81A2DE2317ED5400AE1940 /* JitsiMeetBaseLogHandler.h in Headers */, DEA9F284258A5D9900D4CD74 /* JitsiMeetSDK.h in Headers */, 4E51B76425E5345E0038575A /* ScheenshareEventEmiter.h in Headers */, @@ -384,7 +375,6 @@ files = ( DE9A0130289A9A9A00E41CBB /* JitsiMeetUserInfo.h in Headers */, DE9A0131289A9A9A00E41CBB /* JitsiMeetView.h in Headers */, - DE9A0132289A9A9A00E41CBB /* RCTBridgeWrapper.h in Headers */, DE9A0133289A9A9A00E41CBB /* JitsiMeetBaseLogHandler.h in Headers */, DE9A0134289A9A9A00E41CBB /* JitsiMeetSDK.h in Headers */, DE9A0135289A9A9A00E41CBB /* ScheenshareEventEmiter.h in Headers */, @@ -658,10 +648,8 @@ 4E812F3928F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */, 0BB9AD7D1F60356D001C08DB /* AppInfo.m in Sources */, DE81A2D92316AC7600AE1940 /* LogBridge.m in Sources */, - DEAFA779229EAD520033A7FA /* RNRootView.m in Sources */, DE762DB622AFDE8D000DEBD6 /* JitsiMeetUserInfo.m in Sources */, DEAD3227220C497000E93636 /* JitsiMeetConferenceOptions.m in Sources */, - 0B93EF7F1EC9DDCD0030D24D /* RCTBridgeWrapper.m in Sources */, 0BA13D311EE83FF8007BEF7F /* ExternalAPI.m in Sources */, 0BCA49601EC4B6C600B793EE /* POSIX.m in Sources */, C8AFD2802462C613000293D2 /* InfoPlistUtil.m in Sources */, @@ -676,6 +664,7 @@ A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */, DE81A2D52316AC4D00AE1940 /* JitsiMeetLogger.m in Sources */, 0B412F191EDEC65D00B1A0A6 /* JitsiMeetView.m in Sources */, + DF4E6A012233445566778801 /* JitsiReactFactoryDelegate.m in Sources */, DEFE535421FB1BF800011A3A /* JitsiMeet.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -690,10 +679,8 @@ 4E0EF63C28CA4069005D1B03 /* JMCallKitProxy.m in Sources */, DE9A0147289A9A9A00E41CBB /* AppInfo.m in Sources */, DE9A0148289A9A9A00E41CBB /* LogBridge.m in Sources */, - DE9A0149289A9A9A00E41CBB /* RNRootView.m in Sources */, DE9A014A289A9A9A00E41CBB /* JitsiMeetUserInfo.m in Sources */, DE9A014B289A9A9A00E41CBB /* JitsiMeetConferenceOptions.m in Sources */, - DE9A014C289A9A9A00E41CBB /* RCTBridgeWrapper.m in Sources */, DE9A014D289A9A9A00E41CBB /* ExternalAPI.m in Sources */, DE9A014E289A9A9A00E41CBB /* POSIX.m in Sources */, DE9A014F289A9A9A00E41CBB /* InfoPlistUtil.m in Sources */, @@ -708,6 +695,7 @@ DE9A015C289A9A9A00E41CBB /* JitsiMeetLogger.m in Sources */, 4E0EF63328CA2FB3005D1B03 /* JMCallKitEmitter.m in Sources */, DE9A015E289A9A9A00E41CBB /* JitsiMeetView.m in Sources */, + DF4E6A012233445566778802 /* JitsiReactFactoryDelegate.m in Sources */, DE9A015F289A9A9A00E41CBB /* JitsiMeet.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ios/sdk/src/JitsiMeet+Private.h b/ios/sdk/src/JitsiMeet+Private.h index 3ba7ee0b2a9f..b61c437564a2 100644 --- a/ios/sdk/src/JitsiMeet+Private.h +++ b/ios/sdk/src/JitsiMeet+Private.h @@ -15,6 +15,7 @@ */ #import +#import #import "ExternalAPI.h" #import "JitsiMeet.h" @@ -22,7 +23,7 @@ @interface JitsiMeet () - (NSDictionary *)getDefaultProps; -- (RCTBridge *)getReactBridge; +- (RCTReactNativeFactory *)getReactNativeFactory; - (ExternalAPI *)getExternalAPI; @end diff --git a/ios/sdk/src/JitsiMeet.m b/ios/sdk/src/JitsiMeet.m index bc7f5f3f13e9..5be0ae9160d9 100644 --- a/ios/sdk/src/JitsiMeet.m +++ b/ios/sdk/src/JitsiMeet.m @@ -21,11 +21,15 @@ #import "JitsiMeet+Private.h" #import "JitsiMeetConferenceOptions+Private.h" #import "JitsiMeetView+Private.h" -#import "RCTBridgeWrapper.h" #import "ReactUtils.h" #import "ScheenshareEventEmiter.h" #import +#import +#import +#import +#import +#import "JitsiReactFactoryDelegate.h" #if !defined(JITSI_MEET_SDK_LITE) #import @@ -33,9 +37,10 @@ #endif @implementation JitsiMeet { - RCTBridgeWrapper *_bridgeWrapper; NSDictionary *_launchOptions; ScheenshareEventEmiter *_screenshareEventEmiter; + RCTReactNativeFactory *_reactNativeFactory; + JitsiReactFactoryDelegate *_reactFactoryDelegate; } #pragma mak - This class is a singleton @@ -53,6 +58,7 @@ + (instancetype)sharedInstance { - (instancetype)init { if (self = [super init]) { + // Initialize WebRTC options. self.rtcAudioDevice = nil; self.webRtcLoggingSeverity = WebRTCLoggingSeverityNone; @@ -76,7 +82,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { _launchOptions = [launchOptions copy]; - + #if !defined(JITSI_MEET_SDK_LITE) [Dropbox setAppKey]; #endif @@ -131,23 +137,39 @@ - (UIInterfaceOrientationMask)application:(UIApplication *)application supported #pragma mark - Utility methods -- (void)instantiateReactNativeBridge { - if (_bridgeWrapper != nil) { - return; - }; +- (void)createReactNativeFactory { + NSLog(@"Creating JitsiReactFactoryDelegate"); + _reactFactoryDelegate = [[JitsiReactFactoryDelegate alloc] init]; + + NSLog(@"Creating RCTAppDependencyProvider"); + id provider = [[RCTAppDependencyProvider alloc] init]; + NSLog(@"RCTAppDependencyProvider created: %@", provider); + NSLog(@"Setting dependencyProvider on delegate"); + _reactFactoryDelegate.dependencyProvider = provider; + + NSLog(@"Creating RCTReactNativeFactory with delegate"); + _reactNativeFactory = [[RCTReactNativeFactory alloc] initWithDelegate:_reactFactoryDelegate]; + NSLog(@"RCTReactNativeFactory created: %@", _reactNativeFactory); +} + +- (void)instantiateReactNativeBridge { + if (_reactNativeFactory == nil) { + [self createReactNativeFactory]; + } + // Initialize WebRTC options. WebRTCModuleOptions *options = [WebRTCModuleOptions sharedInstance]; options.audioDevice = _rtcAudioDevice; options.loggingSeverity = (RTCLoggingSeverity)_webRtcLoggingSeverity; - // Initialize the one and only bridge for interfacing with React Native. - _bridgeWrapper = [[RCTBridgeWrapper alloc] init]; + // Accessing bridge forces lazy initialization. + [_reactNativeFactory bridge]; } - (void)destroyReactNativeBridge { - [_bridgeWrapper invalidate]; - _bridgeWrapper = nil; + [_reactNativeFactory.bridge invalidate]; + _reactNativeFactory.bridge = nil; } - (JitsiMeetConferenceOptions *)getInitialConferenceOptions { @@ -226,10 +248,10 @@ - (void)showSplashScreen { id splashInstance = [splashClass performSelector:@selector(sharedInstance)]; if (splashInstance && [splashInstance respondsToSelector:@selector(showSplash)]) { [splashInstance performSelector:@selector(showSplash)]; - NSLog(@"✅ Splash Screen Shown Successfully"); + NSLog(@"Splash Screen Shown Successfully"); } } else { - NSLog(@"⚠️ SplashView module not found"); + NSLog(@"SplashView module not found"); } } @@ -260,11 +282,22 @@ - (NSDictionary *)getDefaultProps { - (RCTBridge *)getReactBridge { // Initialize bridge lazily. [self instantiateReactNativeBridge]; - return _bridgeWrapper.bridge; + + // Get bridge directly from factory + return _reactNativeFactory.bridge; +} + +- (RCTReactNativeFactory *)getReactNativeFactory { + if (_reactNativeFactory == nil) { + [self createReactNativeFactory]; + } + + return _reactNativeFactory; } - (ExternalAPI *)getExternalAPI { - return [_bridgeWrapper.bridge moduleForClass:ExternalAPI.class]; + RCTBridge *bridge = [self getReactBridge]; + return [bridge moduleForClass:ExternalAPI.class]; } @end diff --git a/ios/sdk/src/JitsiMeetView.m b/ios/sdk/src/JitsiMeetView.m index ba3ba0577c75..55da90fd6f69 100644 --- a/ios/sdk/src/JitsiMeetView.m +++ b/ios/sdk/src/JitsiMeetView.m @@ -24,7 +24,7 @@ #import "JitsiMeetConferenceOptions+Private.h" #import "JitsiMeetView+Private.h" #import "ReactUtils.h" -#import "RNRootView.h" +#import #pragma mark UIColor helpers @@ -69,7 +69,7 @@ @implementation JitsiMeetView { /** * React Native view where the entire content will be rendered. */ - RNRootView *rootView; + RCTRootView *rootView; } #pragma mark Initializers @@ -281,11 +281,13 @@ - (void)setProps:(NSDictionary *_Nonnull)newProps { // Update props with the new URL. rootView.appProperties = props; } else { - RCTBridge *bridge = [[JitsiMeet sharedInstance] getReactBridge]; - rootView - = [[RNRootView alloc] initWithBridge:bridge - moduleName:@"App" - initialProperties:props]; + // Get the factory and use its rootViewFactory to create the view. + RCTReactNativeFactory *factory = [[JitsiMeet sharedInstance] getReactNativeFactory]; + rootView = (RCTRootView *)[factory.rootViewFactory viewWithModuleName:@"App" + initialProperties:props]; + + factory.bridge = rootView.bridge; + rootView.backgroundColor = self.backgroundColor; // Add rootView as a subview which completely covers this one. diff --git a/ios/sdk/src/JitsiReactFactoryDelegate.h b/ios/sdk/src/JitsiReactFactoryDelegate.h new file mode 100644 index 000000000000..3fee007bfc05 --- /dev/null +++ b/ios/sdk/src/JitsiReactFactoryDelegate.h @@ -0,0 +1,10 @@ +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface JitsiReactFactoryDelegate : RCTDefaultReactNativeFactoryDelegate +@end + +NS_ASSUME_NONNULL_END + diff --git a/ios/sdk/src/JitsiReactFactoryDelegate.m b/ios/sdk/src/JitsiReactFactoryDelegate.m new file mode 100644 index 000000000000..9a1bda5b1403 --- /dev/null +++ b/ios/sdk/src/JitsiReactFactoryDelegate.m @@ -0,0 +1,79 @@ +#import "JitsiReactFactoryDelegate.h" + +#import "JitsiMeet.h" + +#import +#import + +static NSString *RCTReadMetroHostFromBundle(NSBundle *bundle) { + NSString *ipPath = [bundle pathForResource:@"ip" ofType:@"txt"]; + if (ipPath.length == 0) { + return nil; + } + + NSError *error = nil; + NSString *host = [NSString stringWithContentsOfFile:ipPath encoding:NSUTF8StringEncoding error:&error]; + if (error) { + NSLog(@"Failed to read ip.txt: %@", error); + return nil; + } + + return [host stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; +} + +@implementation JitsiReactFactoryDelegate + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { + return [self bundleURL]; +} + +- (NSURL *_Nullable)bundleURL { +#if DEBUG + RCTBundleURLProvider *provider = [RCTBundleURLProvider sharedSettings]; + NSURL *bundleURL = [provider jsBundleURLForBundleRoot:@"index"]; + + if (!bundleURL) { + // In the SDK the ip.txt used by RN's auto-detection lives inside the framework, + // not the host app bundle, so copy the value into jsLocation manually. + NSBundle *sdkBundle = [NSBundle bundleForClass:[self class]]; + NSString *host = RCTReadMetroHostFromBundle(sdkBundle); + if (host.length > 0) { + NSString *port = [[[NSProcessInfo processInfo] environment] objectForKey:@"RCT_METRO_PORT"] + ?: [NSString stringWithFormat:@"%lu", (unsigned long)kRCTBundleURLProviderDefaultPort]; + + NSString *hostPort = [host containsString:@":"] ? host : [NSString stringWithFormat:@"%@:%@", host, port]; + provider.jsLocation = hostPort; + + bundleURL = [provider jsBundleURLForBundleRoot:@"index"]; + } + } else { + return bundleURL; + } +#endif + + NSBundle *sdkBundle = [NSBundle bundleForClass:[self class]]; + return [sdkBundle URLForResource:@"main" withExtension:@"jsbundle"]; +} + +- (BOOL)fabricEnabled { + NSLog(@"fabricEnabled called, returning NO"); + return NO; +} + +- (BOOL)newArchEnabled { + NSLog(@"newArchEnabled called, returning NO"); + return NO; +} + +- (BOOL)turboModuleEnabled { + NSLog(@"turboModuleEnabled called, returning NO"); + return NO; +} + +- (BOOL)bridgelessEnabled { + NSLog(@"bridgelessEnabled called, returning NO"); + return NO; +} + +@end + diff --git a/ios/sdk/src/RCTBridgeWrapper.h b/ios/sdk/src/RCTBridgeWrapper.h deleted file mode 100644 index 0b0bcb0ee0a1..000000000000 --- a/ios/sdk/src/RCTBridgeWrapper.h +++ /dev/null @@ -1,39 +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. - */ - -#import - -#import -#import - -/** - * A wrapper around the `RCTBridge` which implements the delegate methods - * that allow us to serve the JS bundle from within the framework's resources - * directory. This is the recommended way for those cases where the builtin API - * doesn't cut it, as is the case. - * - * In addition, we will create a single bridge and then create all root views - * off it, thus only loading the JS bundle a single time. This class is not a - * singleton, however, so it's possible for us to create multiple instances of - * it, though that's not currently used. - */ -@interface RCTBridgeWrapper : NSObject - -@property (nonatomic, readonly, strong) RCTBridge *bridge; - -- (void)invalidate; - -@end diff --git a/ios/sdk/src/RCTBridgeWrapper.m b/ios/sdk/src/RCTBridgeWrapper.m deleted file mode 100644 index 28a645d3d56a..000000000000 --- a/ios/sdk/src/RCTBridgeWrapper.m +++ /dev/null @@ -1,130 +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. - */ - -#include "RCTBridgeWrapper.h" - -/** - * Wrapper around RCTBridge which also implements the RCTBridgeDelegate methods, - * allowing us to specify where the bundles are loaded from. - */ -@implementation RCTBridgeWrapper - -- (instancetype)init { - self = [super init]; - if (self) { - _bridge - = [[RCTBridge alloc] initWithDelegate:self - launchOptions:nil]; - } - - return self; -} - -- (void)invalidate { - [_bridge invalidate]; -} - -#pragma mark helper methods for getting the packager URL - -#if DEBUG -static NSURL *serverRootWithHost(NSString *host) { - return - [NSURL URLWithString: - [NSString stringWithFormat:@"http://%@:8081/", host]]; -} - -- (BOOL)isPackagerRunning:(NSString *)host { - NSURL *url = [serverRootWithHost(host) URLByAppendingPathComponent:@"status"]; - - NSURLSession *session = [NSURLSession sharedSession]; - NSURLRequest *request = [NSURLRequest requestWithURL:url]; - __block NSURLResponse *response; - __block NSData *data; - - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - [[session dataTaskWithRequest:request - completionHandler:^(NSData *d, - NSURLResponse *res, - __unused NSError *err) { - data = d; - response = res; - dispatch_semaphore_signal(semaphore); - }] resume]; - dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); - - NSString *status = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - return [status isEqualToString:@"packager-status:running"]; -} - -- (NSString *)guessPackagerHost { - static NSString *ipGuess; - static dispatch_once_t dispatchOncePredicate; - - dispatch_once(&dispatchOncePredicate, ^{ - NSString *ipPath - = [[NSBundle bundleForClass:self.class] pathForResource:@"ip" - ofType:@"txt"]; - - ipGuess - = [[NSString stringWithContentsOfFile:ipPath - encoding:NSUTF8StringEncoding - error:nil] - stringByTrimmingCharactersInSet: - [NSCharacterSet newlineCharacterSet]]; - }); - - NSString *host = ipGuess ?: @"localhost"; - - if ([self isPackagerRunning:host]) { - return host; - } - - return nil; -} -#endif - -#pragma mark RCTBridgeDelegate methods - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { -#if DEBUG - // In debug mode, try to fetch the bundle from the packager, or fallback to - // the one inside the framework. The IP address for the packager host is - // fetched from the ip.txt file inside the framework. - // - // This duplicates some functionality present in RCTBundleURLProvider, but - // that mode is not designed to work inside a framework, because all - // resources are loaded from the main bundle. - NSString *host = [self guessPackagerHost]; - - if (host != nil) { - NSString *path = @"/index.bundle"; - NSString *query = @"platform=ios&dev=true&minify=false"; - NSURLComponents *components - = [NSURLComponents componentsWithURL:serverRootWithHost(host) - resolvingAgainstBaseURL:NO]; - - components.path = path; - components.query = query; - - return components.URL; - } -#endif - - return [[NSBundle bundleForClass:self.class] URLForResource:@"main" - withExtension:@"jsbundle"]; -} - -@end diff --git a/ios/sdk/src/RNRootView.h b/ios/sdk/src/RNRootView.h deleted file mode 100644 index 808ffd5b1d00..000000000000 --- a/ios/sdk/src/RNRootView.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright @ 2019-present 8x8, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -@interface RNRootView : RCTRootView -@end diff --git a/ios/sdk/src/RNRootView.m b/ios/sdk/src/RNRootView.m deleted file mode 100644 index 2264ac0326f2..000000000000 --- a/ios/sdk/src/RNRootView.m +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright @ 2019-present 8x8, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import -#import - -#import "RNRootView.h" - -@implementation RNRootView - -// Monkey-patch RCTRootView.runApplication to avoid logging initial props. -- (void)runApplication:(RCTBridge *)bridge -{ - NSString *moduleName = [self valueForKey:@"_moduleName"] ?: @""; - RCTRootContentView *_contentView = [self valueForKey:@"_contentView"]; - NSNumber *reactTag = [_contentView valueForKey:@"reactTag"]; - - NSDictionary *appParameters = @{ - @"rootTag": reactTag, - @"initialProps": self.appProperties ?: @{}, - }; -#if DEBUG - RCTLogInfo(@"Running application %@ (%@)", moduleName, appParameters); -#endif - - [bridge enqueueJSCall:@"AppRegistry" - method:@"runApplication" - args:@[moduleName, appParameters] - completion:NULL]; -} - -@end diff --git a/ios/sdk/src/ReactUtils.m b/ios/sdk/src/ReactUtils.m index 27c397b8b7f7..6211d1da379e 100644 --- a/ios/sdk/src/ReactUtils.m +++ b/ios/sdk/src/ReactUtils.m @@ -99,6 +99,13 @@ void registerReactFatalErrorHandler() { RCTLogFunction _RCTLog = ^(RCTLogLevel level, __unused RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + #if !DEBUG + // Suppress logging of sensitive data in production + if ([message containsString:@"Running application"] && [message containsString:@"initialProps"]) { + return; + } + #endif + // Convert RN log levels into Lumberjack's log flags. // DDLogFlag logFlag; diff --git a/lang/main-ar.json b/lang/main-ar.json index bbb34dacd45f..bf687ab1134e 100644 --- a/lang/main-ar.json +++ b/lang/main-ar.json @@ -370,6 +370,7 @@ "sendPrivateMessageTitle": "أترسل ردًا خاصًا؟", "serviceUnavailable": "الخدمة غير متاحة", "sessTerminated": "أُنهيَت المكالمة", + "sessTerminatedReason": "تم إنهاء الإجتماع", "sessionRestarted": "إعادة الاتصال من الجسر", "shareAudio": "استمر", "shareAudioTitle": "كيفية مشاركة الصوت", @@ -537,8 +538,6 @@ "googlePrivacyPolicy": "سياسية خصوصية غوغل", "inProgress": "البث المباشر غير ممكّن على {{email}}. يرجى تمكين البث المباشر أو تسجيل الدخول إلى حساب مع تمكين البث المباشر.", "invalidStreamKey": "يحتمل كون مفتاح البث الحي غير صحيح.", - "limitNotificationDescriptionNative": "سيقيَّد البث إلى {{limit}} د، ولكن إن أردت إجراء عملية بث غير محدودة، جرِّب {{app}}.", - "limitNotificationDescriptionWeb": "نظرًا للضغط الكبير، سيقيَّد البث إلى {{limit}} د، ولكن إن أردت إجراء عملية بث غير محدودة، جرِّب {{app}}.", "off": "أُوقِف البث الحي", "offBy": "أوقف {{name}} البث الحي", "on": "بث حي", @@ -898,8 +897,6 @@ "highlightMomentSuccess": "تم تمييز اللحظة", "highlightMomentSucessDescription": "ستتم إضافة اللحظة المميزة إلى ملخص المُلتقى.", "inProgress": "التسجيل أو البث المباشر قيد التقدم", - "limitNotificationDescriptionNative": "نظرًا للضغط الكبير، سيقيَّد التسجيل إلى {{limit}} د، ولكن إن أردت التسجيل لمدة مفتوحة، جرِّب <3>{{app}}.", - "limitNotificationDescriptionWeb": "نظرًا للضغط الكبير، سيقيَّد التسجيل إلى {{limit}} د، ولكن إن أردت التسجيل لمدة مفتوحة، جرِّب {{app}}.", "linkGenerated": "لقد أنشأنا رابطًا لتسجيلك.", "live": "مباشر", "localRecordingNoNotificationWarning": "لن يتم الإعلان عن التسجيل للمشاركين الآخرين. ستحتاج إلى إخبارهم بأنه تم تسجيل الاجتماع.", diff --git a/lang/main-bg.json b/lang/main-bg.json index 119f75ee444f..b2bcc04a2e62 100644 --- a/lang/main-bg.json +++ b/lang/main-bg.json @@ -359,7 +359,7 @@ "kickParticipantTitle": "Изгонване на този участник?", "kickSystemTitle": "Ауч! Бяхте изгонени от срещата", "kickTitle": "Ауч! {{participantDisplayName}} Ви изгони от тази среща", - "learnMore": "научи повече", + "learnMore": "Научи повече", "linkMeeting": "Свързване на среща", "linkMeetingTitle": "Свързване на среща със Salesforce", "liveStreaming": "Излъчване на живо", @@ -429,9 +429,7 @@ "recentlyUsedObjects": "Вашите наскоро използвани обекти", "recording": "Запис", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Невъзможно докато е активно излъчване на живо", - "recordingInProgressDescription": "Тази среща се записва и анализира от AI{{learnMore}}. Звукът и видеото ви са изключени. Ако решите да ги включите, давате съгласие да бъдете записани.", - "recordingInProgressDescriptionFirstHalf": "Тази среща се записва и анализира от AI", - "recordingInProgressDescriptionSecondHalf": ". Звукът и видеото ви са изключени. Ако решите да ги включите, давате съгласие да бъдете записани.", + "recordingInProgressDescription": "Тази среща се записва и анализира от AI. Звукът и видеото ви са изключени. Ако решите да ги включите, давате съгласие да бъдете записани.", "recordingInProgressTitle": "В момента се записва", "rejoinNow": "Повторно присъединяване сега", "remoteControlAllowedMessage": "{{user}} прие заявката Ви за отдалечено управление!", @@ -692,8 +690,6 @@ "googlePrivacyPolicy": "Политика за поверителност на Google", "inProgress": "В ход е запис или излъчване на живо", "invalidStreamKey": "Ключът за предаване на живо е грешен.", - "limitNotificationDescriptionNative": "Излъчването ви ще бъде ограничено до {{limit}} мин. За неограничено излъчване опитайте {{app}}.", - "limitNotificationDescriptionWeb": "Поради голямото търсене, излъчването ви ще бъде ограничено до {{limit}} мин. За неограничено излъчване опитайте {{app}}.", "off": "Край на излъчването на живо", "offBy": "{{name}} спря излъчването на живо", "on": "Излъчване на живо", @@ -1111,8 +1107,6 @@ "highlightMomentSuccess": "Моментът е отбелязан", "highlightMomentSucessDescription": "Отбелязаният момент ще бъде добавен към резюмето на срещата.", "inProgress": "В ход е запис или излъчване на живо", - "limitNotificationDescriptionNative": "Поради голямото търсене записът ви ще бъде ограничен до {{limit}} мин. За неограничени записи опитайте <3>{{app}}.", - "limitNotificationDescriptionWeb": "Поради голямото търсене записът ви ще бъде ограничен до {{limit}} мин. За неограничени записи опитайте {{app}}.", "linkGenerated": "Генерирахме линк към вашия запис.", "localRecordingNoNotificationWarning": "Записът няма да бъде обявен на другите участници. Ще трябва да ги уведомите, че срещата се записва.", "localRecordingNoVideo": "Видеото не се записва", diff --git a/lang/main-ca.json b/lang/main-ca.json index 8f6a7087528f..a6cdb3530450 100644 --- a/lang/main-ca.json +++ b/lang/main-ca.json @@ -541,8 +541,6 @@ "googlePrivacyPolicy": "Polítiques de privadesa de Google", "inProgress": "L'enregistrament o la transmissió en directe és en progrés", "invalidStreamKey": "La clau de transmissió en directe pot ser incorrecta.", - "limitNotificationDescriptionNative": "L'emissió es limitarà a {{limit}} min. Per a emissions sense límit proveu {{app}}.", - "limitNotificationDescriptionWeb": "Atesa l'alta demanda, la vostra emissió es limitarà a {{limit}} minuts. Per a emissions il·limitades, proveu {{app}}", "off": "S'ha aturat la transmissió en directe", "offBy": "{{name}} ha aturat la transmissió en directe", "on": "Ha començat la transmissió en directe", @@ -905,8 +903,6 @@ "highlightMomentSuccess": "Moment destacat", "highlightMomentSucessDescription": "S'ha afegit el moment destacat al resum de la reunió.", "inProgress": "L'enregistrament o la transmissió en directe és en progrés", - "limitNotificationDescriptionNative": "A causa de la gran demanda, el vostre enregistrament es limitarà a {{limit}} min. Per a enregistraments il·limitats, proveu <3>{{app}}.", - "limitNotificationDescriptionWeb": "A causa de la gran demanda, l'enregistrament es limitarà a {{limit}} min. Per a enregistraments il·limitats, proveu {{app}}.", "linkGenerated": "S'ha generat un enllaç a l'enregistrament.", "live": "EN DIRECTE", "localRecordingNoNotificationWarning": "L'enregistrament no s'anunciarà als altres participants. Els haureu d'informar que la reunió s'està enregistrant.", diff --git a/lang/main-cs.json b/lang/main-cs.json index dab577725f65..31ad7fb0afc6 100644 --- a/lang/main-cs.json +++ b/lang/main-cs.json @@ -635,8 +635,6 @@ "googlePrivacyPolicy": "Zásady soukromí Google", "inProgress": "Probíhá nahrávání nebo živé visílání", "invalidStreamKey": "Klíč k živému přenosu může být chybný.", - "limitNotificationDescriptionNative": "Váš živý přenos může trvat nejvýše {{limit}} min. Pro neomezený přenos vyzkoušejte {{app}}.", - "limitNotificationDescriptionWeb": "Kvůli vysokému zájmu může váš přenos trvat nejvýše {{limit}} min. Pro neomezený přenos vyzkoušejte {{app}}.", "off": "Živý přenos skončil", "offBy": "{{name}} zastavil/a živý přenos", "on": "Živý přenos", @@ -1037,8 +1035,6 @@ "highlightMomentSuccess": "Zvýrazněný okamžik", "highlightMomentSucessDescription": "Váš zvýrazněný okamžik bude přidán do shrnutí setkání.", "inProgress": "Probíhá nahrávání nebo živé vysílání", - "limitNotificationDescriptionNative": "Kvůli vysokému zájmu bude vaše nahrávka omezena na nejvýše {{limit}} min. Pro neomezené nahrávání zkuste <3>{{app}}.", - "limitNotificationDescriptionWeb": "Kvůli vysokému zájmu bude vaše nahrávka omezena na nejvýše {{limit}} min. Pro neomezené nahrávání zkuste {{app}}.", "linkGenerated": "Vygenerovali jsme odkaz na vaši nahrávku.", "localRecordingNoNotificationWarning": "Nahrávka nebude oznámena ostatním účastníkům. Budete jim muset dát vědět, že schůzka je nahrána.", "localRecordingNoVideo": "Video se nenahrává", diff --git a/lang/main-da.json b/lang/main-da.json index 0c2dc4626c89..79713f9a129a 100644 --- a/lang/main-da.json +++ b/lang/main-da.json @@ -440,9 +440,7 @@ "recentlyUsedObjects": "Dine nyligt anvendte objekter", "recording": "Optagelse", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ikke mulig, mens en livestream er igang", - "recordingInProgressDescription": "Dette møde bliver optaget og bearbejdet af AI{{learnMore}}. Din video og lyd er blevet deaktiveret. Hvis du vælger at unmute din video og lyd, giver du samtykke til at blive optaget.", - "recordingInProgressDescriptionFirstHalf": "Dette møde bliver optaget og bearbejdet af AI", - "recordingInProgressDescriptionSecondHalf": ". Din video og lyd er blevet deaktiveret. Hvis du vælger at unmute din video og lyd, giver du samtykke til at blive optaget.", + "recordingInProgressDescription": "Dette møde bliver optaget og bearbejdet af AI. Din video og lyd er blevet deaktiveret. Hvis du vælger at unmute din video og lyd, giver du samtykke til at blive optaget.", "recordingInProgressTitle": "Optagelse er igang", "rejoinNow": "Genforbind nu", "remoteControlAllowedMessage": "{{user}} accepterede din anmodning om fjernbetjening!", @@ -706,8 +704,6 @@ "googlePrivacyPolicy": "Google Privatlivspolitik", "inProgress": "Optagelse eller livestreaming i gang", "invalidStreamKey": "Vilkår og privatlivspolitik gælder KUN hvis der streames til Youtube", - "limitNotificationDescriptionNative": "Din streaming vil være begrænset til {{limit}} min. For ubegrænset streaming prøv {{app}}.", - "limitNotificationDescriptionWeb": "På grund af stor efterspørgsel vil din streaming være begrænset til {{limit}} min. For ubegrænset streaming prøv {{app}} .", "off": "Livestreaming stoppede", "offBy": "{{name}} stoppede livestreaming", "on": "Livestreaming startede", @@ -1127,8 +1123,6 @@ "highlightMomentSuccess": "Øjeblik fremhævet", "highlightMomentSucessDescription": "Dit fremhævede øjeblik vil blive føjet til mødesammendrag.", "inProgress": "Optagelse eller livestreaming i gang", - "limitNotificationDescriptionNative": "På grund af stor efterspørgsel vil din optagelse være begrænset til {{limit}} min. For ubegrænsede optagelser prøv <3> {{app}} .", - "limitNotificationDescriptionWeb": "På grund af stor efterspørgsel vil din optagelse være begrænset til {{limit}} min. For ubegrænsede optagelser kan du prøve {{app}} .", "linkGenerated": "Vi har genereret et link til din optagelse.", "localRecordingNoNotificationWarning": "Optagelsen vil ikke blive annonceret til andre deltagere. Du bliver nødt til at fortælle dem, at mødet er optaget.", "localRecordingNoVideo": "Video optages ikke", diff --git a/lang/main-de.json b/lang/main-de.json index ab9d9c396cc5..559b97120e59 100644 --- a/lang/main-de.json +++ b/lang/main-de.json @@ -10,7 +10,7 @@ "copyLink": "Konferenzlink kopieren", "copyStream": "Livestreaminglink kopieren", "countryNotSupported": "Wir unterstützen dieses Land noch nicht.", - "countryReminder": "Telefonnummer nicht in den USA? Bitte sicherstellen, dass die Telefonnummer mit dem Ländercode beginnt.", + "countryReminder": "Telefonnummer nicht in den USA? Bitte sicherstellen, dass die Telefonnummer mit dem Ländercode beginnt!", "defaultEmail": "Ihre Standard-E-Mail", "disabled": "Sie können keine Personen einladen.", "failedToAdd": "Fehler beim Hinzufügen von Personen", @@ -227,6 +227,9 @@ "video_ssrc": "Video-SSRC:", "yes": "Ja" }, + "customPanel": { + "close": "Schließen" + }, "dateUtils": { "earlier": "Früher", "today": "Heute", @@ -356,7 +359,7 @@ "error": "Fehler", "errorRoomCreationRestriction": "Sie haben versucht, zu schnell beizutreten, bitte versuchen Sie es gleich noch einmal.", "gracefulShutdown": "Der Dienst steht momentan wegen Wartungsarbeiten nicht zur Verfügung. Bitte versuchen Sie es später noch einmal.", - "grantModeratorDialog": "Möchten Sie wirklich Moderationsrechte an diese Person vergeben?", + "grantModeratorDialog": "Möchten Sie wirklich Moderationsrechte an {{participantName}} vergeben?", "grantModeratorTitle": "Moderationsrechte vergeben", "hide": "Ausblenden", "hideShareAudioHelper": "Diese Meldung nicht mehr anzeigen", @@ -380,6 +383,9 @@ "lockRoom": "Konferenz$t(lockRoomPassword) hinzufügen", "lockTitle": "Sperren fehlgeschlagen", "login": "Anmelden", + "loginFailed": "Anmeldung fehlgeschlagen.", + "loginOnResume": "Ihre Anmeldung ist abgelaufen. Sie müssen sich neu anmelden um weiter an der Konferenz teilzunehmen.", + "loginPopupBlocked": "Das Popup für die Anmeldung wurde von Ihrem Browser blockiert.", "loginQuestion": "Sind Sie sicher, dass sie sich anmelden und die Konferenz verlassen möchten?", "logoutQuestion": "Sind Sie sicher, dass Sie sich abmelden und die Konferenz verlassen möchten?", "logoutTitle": "Abmelden", @@ -390,7 +396,7 @@ "micNotSendingData": "Gehen Sie zu den Einstellungen Ihres Computers, um die Stummschaltung Ihres Mikrofons aufzuheben und seinen Pegel einzustellen", "micNotSendingDataTitle": "Ihr Mikrofon ist durch Ihre Systemeinstellungen stumm geschaltet", "micPermissionDeniedError": "Die Berechtigung zur Verwendung des Mikrofons wurde nicht erteilt. Sie können trotzdem an der Konferenz teilnehmen, aber die anderen Personen können Sie nicht hören. Verwenden Sie die Kamera-Schaltfläche in der Adressleiste, um die Berechtigungen zu erteilen.", - "micTimeoutError": "Audioquelle konnte nicht gestartet werden. Zeitüberschreitung", + "micTimeoutError": "Audioquelle konnte nicht gestartet werden. Zeitüberschreitung!", "micUnknownError": "Das Mikrofon kann aus einem unbekannten Grund nicht verwendet werden.", "moderationAudioLabel": "Erlaube Anwesenden die Stummschaltung für sich aufzuheben", "moderationDesktopLabel": "Erlaube Anwesenden ihren Bildschirm freizugeben", @@ -429,8 +435,8 @@ "muteParticipantsVideoTitle": "Die Kamera von dieser Person ausschalten?", "noDropboxToken": "Kein gültiges Dropbox-Token", "password": "Passwort", - "passwordLabel": "Diese Konferenz wurde gesichert. Bitte geben Sie das $t(lockRoomPasswordUppercase) ein, um der Konferenz beizutreten.", - "passwordNotSupported": "Das Festlegen eines Konferenzpassworts wird nicht unterstützt.", + "passwordLabel": "Diese Konferenz wurde gesichert. Bitte geben Sie das $t(lockRoomPassword) ein, um der Konferenz beizutreten.", + "passwordNotSupported": "Das Festlegen eines $t(lockRoomPassword) wird nicht unterstützt.", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nicht unterstützt", "passwordRequired": "$t(lockRoomPasswordUppercase) erforderlich", "permissionCameraRequiredError": "Der Zugriff auf die Kamera wird benötigt, um in Videokonferenzen teilzunehmen. Bitte in den Einstellungen zulassen", @@ -440,9 +446,7 @@ "recentlyUsedObjects": "Ihre zuletzt verwendeten Objekte", "recording": "Aufnahme", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Während eines Livestreams nicht möglich", - "recordingInProgressDescription": "Diese Konferenz wird aufgezeichnet und von KI analysiert {{learnMore}}. Ihr Ton und Video ist deaktiviert, wenn Sie es aktivieren, stimmen Sie der Aufzeichnung zu.", - "recordingInProgressDescriptionFirstHalf": "Diese Konferenz wird aufgezeichnet und von KI analysiert", - "recordingInProgressDescriptionSecondHalf": ". Ihr Ton und Video ist deaktiviert, wenn Sie es aktivieren, stimmen Sie der Aufzeichnung zu.", + "recordingInProgressDescription": "Diese Konferenz wird aufgezeichnet und von KI analysiert. Ihr Ton und Video ist deaktiviert, wenn Sie es aktivieren, stimmen Sie der Aufzeichnung zu.", "recordingInProgressTitle": "Aufnahme läuft", "rejoinNow": "Jetzt erneut beitreten", "remoteControlAllowedMessage": "{{user}} hat die Anfrage zur Fernsteuerung angenommen!", @@ -453,7 +457,7 @@ "remoteControlStopMessage": "Die Fernsteuerung wurde beendet!", "remoteControlTitle": "Fernsteuerung", "remoteUserControls": "Remote Benutzersteuerung von {{username}}", - "removePassword": "$t(lockRoomPasswordUppercase) entfernen", + "removePassword": "$t(lockRoomPassword) entfernen", "removeSharedVideoMsg": "Sind Sie sicher, dass Sie das geteilte Video entfernen möchten?", "removeSharedVideoTitle": "Freigegebenes Video entfernen", "renameBreakoutRoomLabel": "Raumname", @@ -465,6 +469,8 @@ "screenSharingFailed": "Ups! Beim Teilen des Bildschirms ist etwas schiefgegangen!", "screenSharingFailedTitle": "Bildschirmfreigabe fehlgeschlagen!", "screenSharingPermissionDeniedError": "Ups! Etwas stimmt nicht mit Ihren Berechtigungen zur Bildschirmfreigabe. Bitte neu laden und erneut versuchen.", + "screenshareStoppedDiskSpace": "Dies passiert, wenn Sie die Bildschirmfreigabe über die macOS-Menüleiste gestoppt haben. Die Bildschirmfreigabe kann auch bei geringem freien Speicherplatz gestoppt werden.", + "screenshareStoppedTitle": "Bildschirmfreigabe vom Betriebssystem gestoppt", "searchInSalesforce": "In Salesforce suchen", "searchResults": "Suchergebnisse({{count}})", "searchResultsDetailsError": "Beim Abrufen der Daten des Besitzers ist ein Fehler aufgetreten.", @@ -478,7 +484,7 @@ "serviceUnavailable": "Dienst nicht verfügbar", "sessTerminated": "Konferenz beendet", "sessTerminatedReason": "Die Konferenz wurde beendet", - "sessionRestarted": "Konferenz neugestartet", + "sessionRestarted": "Konferenz neugestartet.", "shareAudio": "Fortfahren", "shareAudioAltText": "Um den gewünschten Inhalt zu teilen: Navigiere zu \"Browser tab\", wähle den Inhalt, aktiviere \"Audio teilen\" Kästchen Und klicke den “Teilen” schaltfläche", "shareAudioTitle": "Wie kann Audio geteilt werden", @@ -589,6 +595,7 @@ "newFileNotification": "{{ participantName }} hat Datei '{{ fileName }}' hochgeladen", "removeFile": "Entfernen", "removeFileSuccess": "Datei erfolgreich entfernt", + "uploadDisabled": "Keine Berechtigung, Dateien hochzuladen. Bitte bei der Moderation anfragen.", "uploadFailedDescription": "Bitte versuchen Sie es erneut.", "uploadFailedTitle": "Dateiupload fehlgeschlagen", "uploadFile": "Datei hochladen" @@ -611,8 +618,8 @@ }, "info": { "accessibilityLabel": "Informationen anzeigen", - "addPassword": "$t(lockRoomPasswordUppercase) hinzufügen", - "cancelPassword": "$t(lockRoomPasswordUppercase) löschen", + "addPassword": "$t(lockRoomPassword) hinzufügen", + "cancelPassword": "$t(lockRoomPassword) löschen", "conferenceURL": "Link:", "copyNumber": "Nummer kopieren", "country": "Land", @@ -642,7 +649,7 @@ "noRoom": "Keine Konferenz für die Einwahlinformationen angegeben.", "noWhiteboard": "Whiteboard konnte nicht geladen werden.", "numbers": "Einwahlnummern", - "password": "$t(lockRoomPasswordUppercase):", + "password": "$t(lockRoomPasswordUppercase): ", "reachedLimit": "Sie haben die Grenzen Ihres Tarifs erreicht.", "sip": "SIP-Adresse", "sipAudioOnly": "SIP-Adresse (nur Ton)", @@ -694,20 +701,19 @@ "changeSignIn": "Konten wechseln.", "choose": "Livestream auswählen", "chooseCTA": "Streaming-Option auswählen. Sie sind aktuell als {{email}} angemeldet.", + "chooseCTAWithChangeSignIn": "Streaming-Option auswählen. Sie sind aktuell als {{email}} angemeldet. <0>Account wechseln.", "enterStreamKey": "Streamschlüssel für den YouTube-Livestream hier eingeben.", "error": "Das Livestreaming ist fehlgeschlagen. Bitte versuchen Sie es erneut.", "errorAPI": "Beim Abrufen der YouTube-Livestreams ist ein Fehler aufgetreten. Bitte versuchen Sie, sich erneut anzumelden.", "errorLiveStreamNotEnabled": "Livestreaming ist für {{email}} nicht aktiviert. Aktivieren Sie das Livestreaming oder melden Sie sich bei einem Konto mit aktiviertem Livestreaming an.", "expandedOff": "Livestream wurde angehalten", - "expandedOn": "Die Konferenz wird momentan an YouTube gestreamt.", + "expandedOn": "Die Konferenz wird momentan an YouTube gestreamt", "expandedPending": "Livestream wird gestartet …", "failedToStart": "Livestream konnte nicht gestartet werden", "getStreamKeyManually": "Wir waren nicht in der Lage, Livestreams abzurufen. Versuchen Sie, Ihren Livestream-Schlüssel von YouTube zu erhalten.", "googlePrivacyPolicy": "Google-Datenschutzerklärung", "inProgress": "Livestreaming gestartet", "invalidStreamKey": "Der Livestream-Schlüssel ist u. U. falsch.", - "limitNotificationDescriptionNative": "Ihr Stream ist begrenzt auf {{limit}} Min. Für unlimitiertes Streaming, nutzen Sie bitte {{app}}.", - "limitNotificationDescriptionWeb": "Wegen hoher Nachfrage ist Ihr Stream auf {{limit}} Min. begrenzt. Für unlimitiertes Streaming nutzen Sie bitte {{app}}.", "off": "Livestream gestoppt", "offBy": "{{name}} stoppte den Livestream", "on": "Livestream", @@ -724,6 +730,7 @@ "streamIdHelp": "Was ist das?", "title": "Livestream", "unavailableTitle": "Livestreaming nicht verfügbar", + "youTubeGoLiveWarning": "Denken Sie daran 'Go Live' im YouTube Studio auszuwählen, wenn Auto-Start/Auto-Stop deaktiviert ist. Ansonsten wird die Aufnahme nicht gestartet.", "youtubeTerms": "YouTube-Nutzungsbedingungen" }, "lobby": { @@ -744,7 +751,7 @@ "joinRejectedTitle": "Beitrittsanfrage abgelehnt.", "joinTitle": "Konferenz beitreten", "joinWithPasswordMessage": "Beitrittsversuch mit Passwort, bitte warten …", - "joiningMessage": "Sie treten der Konferenz bei, sobald jemand Ihre Anfrage annimmt.", + "joiningMessage": "Sie treten der Konferenz bei, sobald jemand Ihre Anfrage annimmt", "joiningTitle": "Beitritt anfragen …", "joiningWithPasswordTitle": "Mit Passwort beitreten …", "knockButton": "Beitritt anfragen", @@ -814,7 +821,7 @@ "audioUnmuteBlockedTitle": "Stummschaltung kann nicht aufgehoben werden!", "chatMessages": "Chatnachrichten", "connectedOneMember": "{{name}} nimmt an der Konferenz teil", - "connectedThreePlusMembers": "{{name}} und {{count}} andere Personen nehmen an der Konferenz teil", + "connectedThreePlusMembers": "{{name}} und viele andere Personen nehmen an der Konferenz teil", "connectedTwoMembers": "{{first}} und {{second}} nehmen an der Konferenz teil", "connectionFailed": "Verbindung fehlgeschlagen. Bitte versuchen Sie es später noch einmal!", "dataChannelClosed": "Schlechte Videoqualität", @@ -832,7 +839,7 @@ "focusFail": "{{component}} ist im Moment nicht verfügbar – wiederholen in {{ms}} Sekunden", "gifsMenu": "GIPHY", "groupTitle": "Benachrichtigungen", - "hostAskedUnmute": "Die Moderation bittet Sie, das Mikrofon zu aktivieren", + "hostAskedUnmute": "Die Moderation bittet Sie, das Mikrofon zu aktivieren.", "invalidTenant": "Ungültiger Mandant", "invalidTenantHyphenDescription": "Der gewählte Mandantenname ist ungültig (beginnt oder endet mit '-').", "invalidTenantLengthDescription": "Der gewählte Mandantenname ist zu lang.", @@ -853,21 +860,21 @@ "localRecordingStarted": "{{name}} hat eine lokale Aufzeichnung gestartet.", "localRecordingStopped": "{{name}} hat eine lokale Aufzeichnung gestoppt.", "me": "Ich", - "moderationInEffectCSDescription": "Bitte melden um ein Video zu teilen", + "moderationInEffectCSDescription": "Bitte melden um ein Video zu teilen.", "moderationInEffectCSTitle": "Die Videofreigabe ist von der Moderation gesperrt", - "moderationInEffectDescription": "Bitte melden um zu sprechen", + "moderationInEffectDescription": "Bitte melden um zu sprechen.", "moderationInEffectTitle": "Das Mikrofon ist von der Moderation gesperrt", - "moderationInEffectVideoDescription": "Bitte melden um die Kamera zu starten", + "moderationInEffectVideoDescription": "Bitte melden um die Kamera zu starten.", "moderationInEffectVideoTitle": "Die Kamera ist von der Moderation gesperrt", "moderationRequestFromModerator": "Die Moderation bittet Sie, das Mikrofon zu aktivieren", "moderationRequestFromParticipant": "möchte sprechen", "moderationStartedTitle": "Moderation gestartet", "moderationStoppedTitle": "Moderation gestoppt", "moderationToggleDescription": "von {{participantDisplayName}}", - "moderator": "Moderationsrechte vergeben!", + "moderator": "Sie sind jetzt Teil der Moderation", "muted": "Der Konferenz wurde stumm beigetreten.", "mutedRemotelyDescription": "Sie können jederzeit die Stummschaltung aufheben, wenn Sie bereit sind zu sprechen. Wenn Sie fertig sind, können Sie sich wieder stummschalten, um Geräusche von der Konferenz fernzuhalten.", - "mutedRemotelyTitle": "Sie wurden von {{participantDisplayName}} stummgeschaltet!", + "mutedRemotelyTitle": "Sie wurden von {{participantDisplayName}} stummgeschaltet", "mutedTitle": "Stummschaltung aktiv!", "newDeviceAction": "Verwenden", "newDeviceAudioTitle": "Neues Audiogerät erkannt", @@ -878,26 +885,26 @@ "noiseSuppressionStereoDescription": "Rauschunterdrückung unterstützt aktuell keinen Stereoton.", "oldElectronClientDescription1": "Sie scheinen eine alte Version des Jitsi-Meet-Clients zu nutzen. Diese hat bekannte Schwachstellen. Bitte aktualisieren Sie auf unsere ", "oldElectronClientDescription2": "aktuelle Version", - "oldElectronClientDescription3": "!", + "oldElectronClientDescription3": " jetzt!", "openChat": "Chat öffnen", "participantWantsToJoin": "Möchte an der Konferenz teilnehmen", "participantsWantToJoin": "Möchten an der Konferenz teilnehmen", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) von einer anderen Person entfernt", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) von einer anderen Person gesetzt", "raiseHandAction": "Melden", - "raisedHand": "{{name}} möchte sprechen.", + "raisedHand": "möchte sprechen.", "raisedHands": "{{participantName}} und {{raisedHands}} weitere möchten sprechen", "reactionSounds": "Interaktionstöne deaktivieren", "reactionSoundsForAll": "Interaktionstöne für alle deaktivieren", "screenShareNoAudio": "Die Option \"Audio freigeben\" wurde bei der Auswahl des Fensters nicht ausgewählt.", - "screenShareNoAudioTitle": "Share audio was not checked", + "screenShareNoAudioTitle": "Systemton konnte nicht geteilt werden!", "screenSharingAudioOnlyDescription": "Durch die Bildschirmfreigabe wird der Modus \"Beste Leistung\" beeinflusst und daher mehr Datenrate benötigt.", "screenSharingAudioOnlyTitle": "Modus \"Beste Leistung\"", "selfViewTitle": "Sie können die eigene Ansicht immer in den Einstellungen reaktivieren", "somebody": "Jemand", "startSilentDescription": "Treten Sie der Konferenz noch einmal bei, um Ihr Audio zu aktivieren", "startSilentTitle": "Sie sind ohne Audioausgabe beigetreten!", - "suboptimalBrowserWarning": "Tut uns leid, aber die Konferenz wird mit {{appName}} kein großartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der vollständig unterstützen Browser.", + "suboptimalBrowserWarning": "Tut uns leid, aber die Konferenz wird kein großartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der vollständig unterstützen Browser.", "suboptimalExperienceTitle": "Browserwarnung", "suggestRecordingAction": "Starten", "suggestRecordingDescription": "Möchten Sie eine Aufzeichnung starten?", @@ -906,7 +913,7 @@ "unmuteScreen": "Bildschirmfreigabe starten", "unmuteVideo": "Kamera einschalten", "videoMutedRemotelyDescription": "Sie können sie jederzeit wieder einschalten.", - "videoMutedRemotelyTitle": "Ihre Kamera wurde von {{participantDisplayName}} ausgeschaltet!", + "videoMutedRemotelyTitle": "Ihre Kamera wurde von {{participantDisplayName}} ausgeschaltet", "videoUnmuteBlockedDescription": "Die Kamera und Bildschirmfreigabe kann aus Überlastungsschutzgründen temporär nicht eingeschaltet werden.", "videoUnmuteBlockedTitle": "Kamera und Bildschirmfreigabe kann nicht aktiviert werden!", "viewLobby": "Lobby ansehen", @@ -1000,7 +1007,7 @@ }, "results": { "changeVote": "Antwort ändern", - "empty": "Es gibt bisher keine Umfragen in dieser Konferenz. Sie können hier eine Umfrage starten!", + "empty": "Es gibt bisher keine Umfragen in dieser Konferenz.", "hideDetailedResults": "Details verbergen", "showDetailedResults": "Details anzeigen", "vote": "Vote" @@ -1009,7 +1016,7 @@ "poweredby": "Betrieben von", "prejoin": { "audioAndVideoError": "Audio- und Videofehler:", - "audioDeviceProblem": "Es gibt ein Problem mit Ihrem Audiogerät.", + "audioDeviceProblem": "Es gibt ein Problem mit Ihrem Audiogerät", "audioOnlyError": "Audiofehler:", "audioTrackError": "Audiotrack konnte nicht erstellt werden.", "callMe": "Mich anrufen", @@ -1020,8 +1027,8 @@ "connection": { "failed": "Verbindungstest fehlgeschlagen!", "good": "Ihre Internetverbindung sieht gut aus!", - "nonOptimal": "Ihre Internetverbindung ist nicht optimal.", - "poor": "Sie haben eine schlechte Internetverbindung.", + "nonOptimal": "Ihre Internetverbindung ist nicht optimal", + "poor": "Sie haben eine schlechte Internetverbindung", "running": "Verbindung wird getestet…" }, "connectionDetails": { @@ -1048,7 +1055,7 @@ "errorDialOutDisconnected": "Anruf fehlgeschlagen. Verbindungsabbruch", "errorDialOutFailed": "Anruf fehlgeschlagen. Anruf fehlgeschlagen", "errorDialOutStatus": "Fehler beim Abrufen des Anrufstatus", - "errorMissingName": "Bitte geben Sie Ihren Namen ein, um der Konferenz beizutreten.", + "errorMissingName": "Bitte geben Sie Ihren Namen ein, um der Konferenz beizutreten", "errorNoPermissions": "Sie müssen den Zugriff auf Mikrofon und Kamera erlauben", "errorStatusCode": "Anruf fehlgeschlagen. Statuscode: {{status}}", "errorValidation": "Nummerverifikation fehlgeschlagen", @@ -1060,7 +1067,7 @@ "joinWithoutAudio": "Ohne Ton beitreten", "keyboardShortcuts": "Tastaturkurzbefehle aktivieren", "linkCopied": "Link in die Zwischenablage kopiert", - "lookGood": "Alles scheint zu funktionieren.", + "lookGood": "Alles scheint zu funktionieren", "or": "oder", "premeeting": "Vorschau", "proceedAnyway": "Trotzdem fortsetzen", @@ -1117,7 +1124,7 @@ "error": "Die Aufzeichnung ist fehlgeschlagen. Bitte versuchen Sie es erneut.", "errorFetchingLink": "Der Link zur Aufzeichnung konnte nicht geladen werden.", "expandedOff": "Aufzeichnung wurde gestoppt", - "expandedOn": "Die Konferenz wird momentan aufgezeichnet.", + "expandedOn": "Die Konferenz wird momentan aufgezeichnet", "expandedPending": "Aufzeichnung wird gestartet…", "failedToStart": "Die Aufnahme konnte nicht gestartet werden", "fileSharingdescription": "Aufzeichnung mit den Personen der Konferenz teilen", @@ -1127,8 +1134,6 @@ "highlightMomentSuccess": "Highlight festgehalten", "highlightMomentSucessDescription": "Ihr festgehaltener Moment wird zur Zusammenfassung der Konferenz hinzugefügt.", "inProgress": "Aufzeichnung gestartet", - "limitNotificationDescriptionNative": "Wegen hoher Nachfrage ist Ihre Aufnahme auf {{limit}} Min. begrenzt. Für unlimitierte Aufnahmen nutzen Sie bitte <3>{{app}}.", - "limitNotificationDescriptionWeb": "Wegen hoher Nachfrage ist Ihre Aufnahme auf {{limit}} Min. begrenzt. Für unlimitierte Aufnahmen nutzen Sie bitte {{app}}.", "linkGenerated": "Link zur Aufzeichnung wurde generiert.", "localRecordingNoNotificationWarning": "Die Aufzeichnung wird anderen Anwesenden nicht mitgeteilt. Sie müssen diese selbst darauf hinweisen, dass die Konferenz aufgezeichnet wird.", "localRecordingNoVideo": "Videos werden nicht aufgenommen", @@ -1142,11 +1147,15 @@ "noStreams": "Kein Ton oder Video erkannt.", "off": "Aufnahme gestoppt", "offBy": "{{name}} stoppte die Aufnahme", + "offByWithTranscription": "{{name}} hat die Aufnahme und Transkription gestoppt", + "offWithTranscription": "Aufnahme und Transkription gestoppt", "on": "Aufnahme", "onBy": "{{name}} startete die Aufnahme", + "onByWithTranscription": "{{name}} startete die Aufnahme. Ein Transkript wird nach der Konferenz verfügbar sein.", + "onWithTranscription": "Aufnahme gestartet. Ein Transkript wird nach der Konferenz verfügbar sein.", "onlyRecordSelf": "Nur eigenes Kamerabild und Ton aufzeichnen", "pending": "Aufzeichnung der Konferenz wird vorbereitet…", - "policyError": "Sie haben die Aufzeichnung zu schnell gestartet. Bitte versuchen Sie es später noch einmal.", + "policyError": "Sie haben die Aufzeichnung zu schnell gestartet. Bitte versuchen Sie es später noch einmal!", "recordAudioAndVideo": "Kamera und Ton aufzeichnen", "recordTranscription": "Transkription aufzeichnen", "saveLocalRecording": "Aufzeichnung lokal abspeichern", @@ -1169,8 +1178,8 @@ "pullToRefresh": "Ziehen, um zu aktualisieren" }, "security": { - "about": "Sie können Ihre Konferenz mit einem Passwort sichern. Personen müssen dieses eingeben, bevor sie an der Sitzung teilnehmen dürfen.", - "aboutReadOnly": "Mit Moderationsrechten kann die Konferenz mit einem Passwort gesichert werden. Personen müssen dieses eingeben, bevor sie an der Sitzung teilnehmen dürfen.", + "about": "Sie können Ihre Konferenz mit einem $t(lockRoomPassword) sichern. Personen müssen das $t(lockRoomPassword) eingeben, bevor sie an der Konferenz teilnehmen dürfen.", + "aboutReadOnly": "Mit Moderationsrechten kann die Konferenz mit einem $t(lockRoomPassword) gesichert werden. Personen müssen das $t(lockRoomPassword) eingeben, bevor sie an der Konferenz teilnehmen dürfen.", "insecureRoomNameWarningNative": "Der Raumname ist unsicher. Unerwünschte Personen könnten Ihrer Konferenz beitreten. {{recommendAction}} Lernen Sie mehr über die Absicherung Ihrer Konferenz ", "insecureRoomNameWarningWeb": "Der Raumname ist unsicher. Unerwünschte Personen könnten Ihrer Konferenz beitreten {{recommendAction}} Lernen Sie hier mehr über die Absicherung Ihrer Konferenz.", "title": "Sicherheitsoptionen", @@ -1273,9 +1282,9 @@ "displayEmotions": "Emotionen anzeigen", "fearful": "Ängstlich", "happy": "Fröhlich", - "hours": "{{count}} Std. ", + "hours": "{{count}} Std.", "labelTooltip": "Anzahl der Personen: {{count}}", - "minutes": "{{count}} Min. ", + "minutes": "{{count}} Min.", "name": "Name", "neutral": "Neutral", "sad": "Traurig", @@ -1315,6 +1324,7 @@ "chat": "Chatfenster öffnen / schließen", "clap": "Klatschen", "closeChat": "Chat schließen", + "closeCustomPanel": "Schließen", "closeMoreActions": "„Weitere Einstellungen“ schließen", "closeParticipantsPane": "Anwesendenliste schließen", "closedCaptions": "Untertitel", @@ -1357,7 +1367,7 @@ "muteEveryoneElse": "Alle anderen stummschalten", "muteEveryoneElsesVideoStream": "Alle anderen Kameras ausschalten", "muteEveryonesVideoStream": "Alle Kameras ausschalten", - "muteGUMPending": "Verbinde Ihr Mikrofon", + "muteGUMPending": "Mikrofon verbinden", "noiseSuppression": "Rauschunterdrückung", "openChat": "Chat öffnen", "participants": "Anwesenheitsliste öffnen. {{participantsCount}} anwesend", @@ -1392,7 +1402,7 @@ "unmute": "Stummschaltung aufheben", "videoblur": "Unscharfer Hintergrund ein-/ausschalten", "videomute": "Kamera stoppen", - "videomuteGUMPending": "Verbinde Ihre Kamera", + "videomuteGUMPending": "Kamera verbinden", "videounmute": "Kamera einschalten" }, "addPeople": "Personen zur Konferenz hinzufügen", @@ -1420,9 +1430,11 @@ "chat": "Chat öffnen / schließen", "clap": "Klatschen", "closeChat": "Chat schließen", + "closeCustomPanel": "Schließen", "closeParticipantsPane": "Anwesenheitsliste schließen", "closeReactionsMenu": "Interaktionsmenü schließen", "closedCaptions": "Untertitel", + "copilot": "Copilot", "disableNoiseSuppression": "Rauschunterdrückung deaktivieren", "disableReactionSounds": "Sie können die Interaktionstöne für diese Konferenz deaktivieren", "documentClose": "Geteiltes Dokument schließen", @@ -1460,7 +1472,7 @@ "mute": "Audio stummschalten", "muteEveryone": "Alle stummschalten", "muteEveryonesVideo": "Alle Kameras ausschalten", - "muteGUMPending": "Verbinde Ihre Kamera", + "muteGUMPending": "Mikrofon verbinden", "noAudioSignalDesc": "Wenn Sie das Gerät nicht absichtlich über die Systemeinstellungen oder die Hardware stumm geschaltet haben, sollten Sie einen Wechsel des Geräts in Erwägung ziehen.", "noAudioSignalDescSuggestion": "Wenn Sie das Gerät nicht absichtlich über die Systemeinstellungen oder die Hardware stummgeschaltet haben, sollten Sie einen Wechsel auf das vorgeschlagene Gerät in Erwägung ziehen.", "noAudioSignalDialInDesc": "Sie können sich auch über die Einwahlnummer einwählen:", @@ -1497,7 +1509,7 @@ "silence": "Stille", "speakerStats": "Sprechstatistik", "startScreenSharing": "Bildschirmfreigabe starten", - "startSubtitles": "Untertitel einschalten", + "startSubtitles": "Untertitel • {{language}}", "stopAudioSharing": "Audiofreigabe stoppen", "stopScreenSharing": "Bildschirmfreigabe stoppen", "stopSharedVideo": "Video stoppen", @@ -1509,15 +1521,19 @@ "unmute": "Stummschaltung aufheben", "videoSettings": "Kamera-Einstellungen", "videomute": "Kamera stoppen", - "videomuteGUMPending": "Verbinde Ihre Kamera", + "videomuteGUMPending": "Kamera verbinden", "videounmute": "Kamera einschalten" }, "transcribing": { "ccButtonTooltip": "Untertitel ein-/ausschalten", "expandedLabel": "Transkribieren ist derzeit eingeschaltet", "failed": "Transkribieren fehlgeschlagen", - "labelTooltip": "Die Konferenz wird transkribiert", + "labelTooltip": "Die Konferenz wird transkribiert.", "labelTooltipExtra": "Zusätzlich wird das Transkript später verfügbar sein.", + "off": "Transkription gestoppt", + "on": "Transkription gestartet", + "onBy": "{{name}} startete die Transkription", + "onWithRecording": "Ein Transkript wird nach der Konferenz verfügbar sein.", "openClosedCaptions": "Untertitel öffnen", "original": "Original", "sourceLanguageDesc": "Aktuell ist die Sprache der Konferenz auf {{sourceLanguage}} eingestellt.
Sie könne dies hier ", @@ -1559,7 +1575,7 @@ "ldTooltip": "Video wird in niedriger Auflösung angezeigt", "lowDefinition": "Niedrige Auflösung", "performanceSettings": "Qualitätseinstellungen", - "recording": "Aufnahme läuft", + "recording": "Aufnahme läuft.", "sd": "SD", "sdTooltip": "Video wird in Standardauflösung angezeigt", "standardDefinition": "Standardauflösung", @@ -1600,6 +1616,7 @@ "addBackground": "Hintergrund hinzufügen", "apply": "Anwenden", "backgroundEffectError": "Hintergrund konnte nicht aktiviert werden.", + "backgroundLimitReached": "Maximale Zahl an Hintergründen erreicht", "blur": "Hintergrund unscharf", "deleteImage": "Bild löschen", "desktopShare": "Desktopfreigabe", @@ -1609,9 +1626,10 @@ "image3": "Weißer leerer Raum", "image4": "Schwarze Stehlampe", "image5": "Berg", - "image6": "Wald", + "image6": "Wald ", "image7": "Sonnenaufgang", "none": "keiner", + "oldestBackgroundRemoved": "Der älteste Hintergrund wurde gelöscht, um den Neuesten hinzuzufügen.", "pleaseWait": "Bitte warten…", "removeBackground": "Hintergrund entfernen", "slightBlur": "Hintergrund leicht unscharf", @@ -1626,7 +1644,7 @@ "description": "Sie beobachten derzeit diese Konferenz.", "raiseHand": "Hand heben", "title": "Konferenz wird beigetreten", - "wishToSpeak": "Wenn Sie sprechen möchten, heben Sie bitte unten Ihre Hand und warten Sie auf die Zustimmung der Moderation" + "wishToSpeak": "Wenn Sie sprechen möchten, heben Sie bitte unten Ihre Hand und warten Sie auf die Zustimmung der Moderation." }, "labelTooltip": "Anzahl Gäste: {{count}}", "notification": { @@ -1636,7 +1654,7 @@ "noVisitorLobby": "Sie können nicht teilnehmen, solange die Lobby für diese Konferenz aktiviert ist.", "notAllowedPromotion": "Eine Person muss Ihre Anfrage erst erlauben.", "requestToJoin": "Hand gehoben", - "requestToJoinDescription": "Ihre Anfrage wurde an die Moderation gesendet, bitte warten Sie.", + "requestToJoinDescription": "Ihre Anfrage wurde an die Moderation gesendet, bitte warten Sie!", "title": "Sie sind Gast in der Konferenz" }, "waitingMessage": "Sie werden der Konferenz beitreten, sobald sie gestartet ist!" diff --git a/lang/main-dsb.json b/lang/main-dsb.json index 1aa61f8e81de..e63bdef8a9c6 100644 --- a/lang/main-dsb.json +++ b/lang/main-dsb.json @@ -543,8 +543,6 @@ "googlePrivacyPolicy": "regule k woplěwanju datow pla Google", "inProgress": "Livestreaming jo se zachopił", "invalidStreamKey": "Kluc za livestream jo ewentuelnje wopacny.", - "limitNotificationDescriptionNative": "Waš stream jo na {{limit}} minutow wobgranicowany. Za njelimitěrowany streaming, wužywajśo aplikaciju {{app}}.", - "limitNotificationDescriptionWeb": "Dla intensiwnego wužywanja jo Waš stream na {{limit}} minutow wobgranicowany. Za njelimitěrowany streaming wužywajśo aplikaciju {{app}}.", "off": "Livestream jo zastajony", "offBy": "{{name}} jo livestream zastajił", "on": "livestream", @@ -905,8 +903,6 @@ "highlightMomentSuccess": "highlight jo se markěrował", "highlightMomentSucessDescription": "Waš markěrowany moment pśidajo se k wopowěsći wót zmakanja.", "inProgress": "Nagrawanje abo livestream jo we źěle", - "limitNotificationDescriptionNative": "Dla intensiwnego wužywanja jo Wašo nagrawanje na {{limit}} minutow wobgranicowane. Za njelimitěrowane nagrawanje wužyj aplikaciju <3>{{app}}.", - "limitNotificationDescriptionWeb": "Dla intensiwnego wužywanja jo Wašo nagrawanje na {{limit}} minutow wobgranicowane. Za njelimitěrowane nagrawanje wužyjśo aplikaciju {{app}}.", "linkGenerated": "Link k nagrawanju jo se generěrował.", "live": "LIVE", "localRecordingNoNotificationWarning": "Druge wobźělniki njedostanu powěsći wót nagrawanja. Wy musyśo jich sami informěrowaś, až konferenca se nagrawa.", diff --git a/lang/main-el.json b/lang/main-el.json index 5bd717450d5b..22918faddc08 100644 --- a/lang/main-el.json +++ b/lang/main-el.json @@ -560,8 +560,6 @@ "googlePrivacyPolicy": "Πολιτική Απορρήτου της Google", "inProgress": "Εγγραφή ή ζωντανή ροή σε εξέλιξη", "invalidStreamKey": "Το κλειδί ζωντανής ροής μπορεί να είναι εσφαλμένο.", - "limitNotificationDescriptionNative": "Η ροή σας θα περιοριστεί σε {{limit}} λεπτά. Για ροή χωρίς όρια δοκιμάστε το {{app}}.", - "limitNotificationDescriptionWeb": "Λόγω υψηλής ζήτησης η ροή θα περιοριστεί σε {{limit}} λεπτά. Για απεριόριστες ροές δοκιμάστε το {{app}}.", "off": "Η Ζωντανή Ροή σταμάτησε", "offBy": "{{name}} σταμάτησε τη ζωντανή ροή", "on": "Η Ζωντανή Ροή ξεκίνησε", @@ -919,8 +917,6 @@ "highlightMomentSuccess": "Η στιγμή επισημάνθηκε", "highlightMomentSucessDescription": "Οι επισημασμένη στιγμή θα προστεθεί στη περίληψη της σύσκεψης.", "inProgress": "Σε εξέλιξη καταγραφή ή ζωντανή ροή", - "limitNotificationDescriptionNative": "Λόγω υψηλής ζήτησης η εγγραφή σας θα περιοριστεί σε {{limit}} λεπτά. Για απεριόριστες εγγραφές, δοκιμάστε το <3>{{app}}.", - "limitNotificationDescriptionWeb": "Λόγω υψηλής ζήτησης η εγγραφή σας θα περιοριστεί σε {{limit}} λεπτά. Για απεριόριστες εγγραφές, δοκιμάστε το {{app}}.", "linkGenerated": "Δημιουργήσαμε ένα σύνδεσμο για τη καταγραφή σας.", "live": "ΖΩΝΤΑΝΑ", "localRecordingNoNotificationWarning": "Η καταγραφή δεν θα κοινοποιηθεί στους άλλους συμμετέχοντες. Θα πρέπει εσείς να τους ενημερώσετε ότι η σύσκεψη καταγράφεται.", diff --git a/lang/main-eo.json b/lang/main-eo.json index cd7b2093ad51..5ba074a644c1 100644 --- a/lang/main-eo.json +++ b/lang/main-eo.json @@ -621,8 +621,6 @@ "googlePrivacyPolicy": "Privatecpolitiko de Google", "inProgress": "Registrado aŭ vivelsendo farata", "invalidStreamKey": "La ŝlosilo de tuja elsendfluo povas esti malĝusta.", - "limitNotificationDescriptionNative": "Via vivelsendo estos limigita al {{limit}} minutoj. Por senlima vivelsendo provu {{ app}}.", - "limitNotificationDescriptionWeb": "Pro alta postulo, via vivelsendo estos limigita al {{limit}} minutoj. Por senlima vivelsendo provu {{app}}.", "off": "Tuja elsendfluo finiĝis", "offBy": "{{name}} ĉesigis la tujan elsendfluon", "on": "Tuja elsendfluo", @@ -996,8 +994,6 @@ "highlightMomentSuccess": "Momento emfazita", "highlightMomentSucessDescription": "Via emfazita momento estos aldonita al la kunveno priskribo", "inProgress": "Registrado aŭ vivelsendo farata", - "limitNotificationDescriptionNative": "Pro alta postulo via registrado estos limigita al {{ limo }} minutoj. Pro senlima registrado, provu <3>{{app}}.", - "limitNotificationDescriptionWeb": "Pro alta postulo via registrado estos limigita al {{ limo }} minutoj. Pro senlima registrado, provu {{app}}.", "linkGenerated": "Ni generis ligilon al via registrado.", "live": "LIVE", "localRecordingNoNotificationWarning": "La registrado ne estos anoncita al aliaj partoprenantoj. Vi devos sciigi al ili, ke la renkontiĝo estas registrita.", diff --git a/lang/main-es-US.json b/lang/main-es-US.json index fc53519b1e94..e0bba22b0b6f 100644 --- a/lang/main-es-US.json +++ b/lang/main-es-US.json @@ -502,8 +502,6 @@ "getStreamKeyManually": "No pudimos encontrar tu clave de transmisión. Por favor, obtenla de la página de YouTube y pégala.", "googlePrivacyPolicy": "Política de Privacidad de Google", "invalidStreamKey": "Es posible que la clave de transmisión sea incorrecta, o no es de YouTube.", - "limitNotificationDescriptionNative": "Su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en {{app}}.", - "limitNotificationDescriptionWeb": "Debido a la alta demanda su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en {{app}}.", "off": "Se detuvo la transmisión", "offBy": "{{name}} detuvo la transmisión", "on": "Transmitiendo en vivo", @@ -800,8 +798,6 @@ "expandedPending": "La grabación se está iniciando…", "failedToStart": "No se pudo iniciar la grabación", "fileSharingdescription": "Compartir la grabación con los participantes de la reunión", - "limitNotificationDescriptionNative": "Su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en <3>{{app}}.", - "limitNotificationDescriptionWeb": "Debido a la alta demanda su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en {{app}}.", "linkGenerated": "Hemos generado un enlace a su grabación.", "live": "EN VIVO", "loggedIn": "Sesión iniciada como {{userName}}", diff --git a/lang/main-es.json b/lang/main-es.json index 0d18119da8a1..0d232107973d 100644 --- a/lang/main-es.json +++ b/lang/main-es.json @@ -600,8 +600,6 @@ "googlePrivacyPolicy": "Política de Privacidad de Google", "inProgress": "Grabación o transmisión en vivo en curso", "invalidStreamKey": "Es posible que la clave de transmisión sea incorrecta, o no es de YouTube.", - "limitNotificationDescriptionNative": "Su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en {{app}}.", - "limitNotificationDescriptionWeb": "Debido a la alta demanda su transmisión estará limitada a {{limit}} minutos. Puede obtener transmisiones ilimitadas en {{app}}.", "off": "Se detuvo la transmisión", "offBy": "{{name}} detuvo la transmisión", "on": "Transmitiendo en vivo", @@ -1085,6 +1083,7 @@ "or": "o", "premeeting": "Pre-reunión", "proceedAnyway": "Continuar de todos modos", + "recordingWarning": "Otros participantes pueden estar grabando esta llamada", "screenSharingError": "Error al compartir pantalla:", "startWithPhone": "Iniciar con audio de llamada telefónica", "unsafeRoomConsent": "Comprendo los riesgos, quiero unirme a la reunión", @@ -1147,8 +1146,6 @@ "highlightMomentSuccess": "Momento destacado", "highlightMomentSucessDescription": "Su momento destacado será agregado al resumen de la reunión.", "inProgress": "Grabación o transmisión en vivo en curso", - "limitNotificationDescriptionNative": "Su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en <3>{{app}}.", - "limitNotificationDescriptionWeb": "Debido a la alta demanda su grabación estará limitada a {{limit}} minutos. Puede obtener grabaciones ilimitadas en {{app}}.", "linkGenerated": "Hemos generado un enlace a su grabación.", "live": "EN VIVO", "localRecordingNoNotificationWarning": "La grabación no será anunciada al resto de participantes. Necesitarás hacerles saber que la reunión está siendo grabada.", diff --git a/lang/main-eu.json b/lang/main-eu.json index 05e3d78ba414..1801ba03eb7a 100644 --- a/lang/main-eu.json +++ b/lang/main-eu.json @@ -444,8 +444,6 @@ "getStreamKeyManually": "Ezin izan dugu zure transmisio-gakoa bilatu. Lortu ezazu YouTuberen webgunetik.", "googlePrivacyPolicy": "Google-en pribatutasun-politika", "invalidStreamKey": "Zuzeneko transmisioaren gakoa okerra izan daiteke.", - "limitNotificationDescriptionNative": "Zure emanaldia {{limit}} minutura mugatuta dago. Mugarik gabekoa nahi baduzu probatu {{app}}.", - "limitNotificationDescriptionWeb": "Zuzeneko emanaldien arrakasta dela eta {{limit}} minutura mugatuta daude. Mugarik gabekoa nahi baduzu probatu {{app}}.", "off": "Zuzeneko transmisioa gelditu da", "offBy": "{{name}} erabiltzaileak zuzeneko emanaldia gelditu du", "on": "Zuzeneko transmisioa", @@ -685,8 +683,6 @@ "expandedPending": "Grabaketa abian da…", "failedToStart": "Grabazioa hasteak huts egin du", "fileSharingdescription": "Partekatu grabazioa bileraren parte-hartzaileekin", - "limitNotificationDescriptionNative": "Zure grabazioa {{limit}} minutura mugatuta dago. Mugarik gabeko grabazioak izateko probatu <3>{{app}}.", - "limitNotificationDescriptionWeb": "Zure grabazioa {{limit}} minutura mugatuta dago. Mugarik gabeko grabazioak izateko probatu {{app}}.", "live": "ZUZENEAN", "loggedIn": "{{userName}} gisa saioa hasita", "off": "Grabazioa gelditu da", diff --git a/lang/main-fa.json b/lang/main-fa.json index 4d142c0f7993..bf9d3653d1a5 100644 --- a/lang/main-fa.json +++ b/lang/main-fa.json @@ -1,31 +1,33 @@ { "addPeople": { "accessibilityLabel": { - "meetingLink": "پیوند جلسه: {{url}}" + "meetingLink": "لینک جلسه: {{url}}" }, "add": "دعوت‌کردن", "addContacts": "دعوت از مخاطبین شما", "contacts": "مخاطبین", - "copyInvite": "رونوشت دعوت‌نامه جلسه", - "copyLink": "رونوشت پیوند جلسه", - "copyStream": "رونوشت پیوند پخش زنده", + "copyInvite": "کپی دعوت‌نامه جلسه", + "copyLink": "کپی لینک جلسه", + "copyStream": "کپی لینک پخش زنده", "countryNotSupported": "این مقصد را هنوز پشتیبانی نمی‌کنیم.", "countryReminder": "می‌خواهید با خارج از کشور تماس بگیرید؟ لطفاً مطمئن شوید که ابتدا پیش‌شماره را وارد می‌کنید!", - "defaultEmail": "رایانامهٔ پیش‌فرض شما", + "defaultEmail": "رایانامهٔ دیفالت شما", "disabled": "شما نمی‌توانید کسی را دعوت کنید.", - "failedToAdd": "افزودن شرکت‌کنندگان با خطا مواجه شد", + "failedToAdd": "اضافه کردن شرکت‌کنندگان با خطا مواجه شد", "googleEmail": "رایانامهٔ گوگل", "inviteMoreHeader": "شما تنها فرد حاضر در این جلسه هستید", - "inviteMoreMailSubject": "به جلسهٔ {{appName}} بپیوندید", - "inviteMorePrompt": "دعوت افراد بیش‌تر", - "linkCopied": "پیوند در بریده‌دان رونوشت شد", + "inviteMoreMailSubject": "به جلسهٔ {{appName}} بپیوندد", + "inviteMorePrompt": "دعوت افراد جدید", + "inviteToMeet": "دعوت به جلسه", + "linkCopied": "لینک در کلیپ بورد کپی شد", "noResults": "هیچ نتیجه‌ای مطابق با جستجو یافت نشد", "outlookEmail": "رایانامهٔ اوت‌لوک", + "peopleAddedToMeet": "افراد دعوت شده به جلسه", "phoneNumbers": "شماره تلفن‌ها", - "searching": "درحال جستجو…", - "shareInvite": "هم‌رسانی دعوت‌نامهٔ جلسه", - "shareLink": "هم‌رسانی پیوند جلسه برای دعوت دیگران", - "shareStream": "هم‌رسانی پیوند پخش زنده", + "searching": "در حال جستجو...", + "shareInvite": "اشتراک‌گذاری دعوت‌نامهٔ جلسه", + "shareLink": "اشتراک‌گذاری لینک جلسه برای دعوت دیگران", + "shareStream": "اشتراک‌گذاری لینک پخش زنده", "sipAddresses": "نشانی‌های sip", "telephone": "تلفن: {{number}}", "title": "دعوت افراد به این جلسه", @@ -56,30 +58,37 @@ }, "breakoutRooms": { "actions": { - "add": "افزودن اتاق جانبی", + "add": "اضافه کردن اتاق جانبی", "autoAssign": "اختصاص خودکار به اتاق‌های جانبی", - "close": "بستن", + "close": "ببند", "join": "پیوستن", "leaveBreakoutRoom": "اتاق جانبی را ترک کنید", "more": "بیش‌تر", "remove": "حذف‌کردن", + "rename": "تغییر نام", + "renameBreakoutRoom": "تغییر نام اتاق جانبی", "sendToBreakoutRoom": "ارسال شرکت‌کننده به:" }, + "breakoutList": "فهرست اتاق‌های جانبی", + "buttonLabel": "اتاق‌های جانبی", "defaultName": "اتاق جانبی #{{index}}", + "hideParticipantList": "پنهان‌کردن فهرست شرکت‌کنندگان", "mainRoom": "اتاق اصلی", "notifications": { "joined": "درحال پیوستن به اتاق جانبی «{{name}}»", "joinedMainRoom": "درحال پیوستن به اتاق اصلی", "joinedTitle": "اتاق‌های جانبی" - } + }, + "showParticipantList": "نمایش فهرست شرکت‌کنندگان", + "title": "اتاق‌های جانبی" }, "calendarSync": { - "addMeetingURL": "افزودن یک پیوند جلسه", - "confirmAddLink": "آیا می‌خواهید پیوند جلسه به این رویداد اضافه شود؟", + "addMeetingURL": "اضافه کردن یک لینک جلسه", + "confirmAddLink": "آیا می‌خواهید لینک جلسه به این رویداد اضافه شود؟", "error": { "appConfiguration": "اتصال تقویم به‌درستی پیکربندی نشده‌است.", "generic": "خطایی رخ‌داده‌است. لطفاً تنظیمات تقویم خود را بررسی کنید یا تازه‌سازی تقویم را امتحان کنید.", - "notSignedIn": "هنگام احراز هویت برای دیدن رویدادهای تقویم خطایی رخ‌داده‌است. لطفاً تنظیمات تقویم خود را بررسی کنید و دوباره وارد شوید." + "notSignedIn": "هنگام احراز هویت برای دیدن رویدادهای تقویم خطایی رخ‌داده‌است. لطفاً تنظیمات تقویم خود را بررسی کنید و دوباره لاگین کنید." }, "join": "پیوستن", "joinTooltip": "پیوستن به جلسه", @@ -87,7 +96,7 @@ "noEvents": "هیچ رویدادی برای آینده برنامه‌ریزی نشده است.", "ongoingMeeting": "جلسهٔ درحال برگزاری", "permissionButton": "بازکردن تنظیمات", - "permissionMessage": "دسترسی تقویم برای دیدن جلسات شما در برنامه لازم است.", + "permissionMessage": "اجازه تقویم برای دیدن جلسات شما در برنامه لازم است.", "refresh": "بازخوانی تقویم", "today": "امروز" }, @@ -102,9 +111,15 @@ } }, "chat": { + "disabled": "ارسال پیام غیرفعال است.", "enter": "ورود به اتاق", "error": "خطا: پیام شما ارسال نشد. دلیل: {{error}}", + "everyone": "همه", "fieldPlaceHolder": "پیام خود را بنویسید", + "fileAccessibleTitle": "{{user}} یک فایل بارگذاری کرد", + "fileAccessibleTitleMe": "من یک فایل بارگذاری کردم", + "fileDeleted": "یک فایل حذف شد", + "guestsChatIndicator": "(مهمان)", "lobbyChatMessageTo": "پیام گپِ اتاق انتظار به {{recipient}}", "message": "پیام", "messageAccessibleTitle": "{{user}} می‌گوید:", @@ -113,31 +128,52 @@ "messagebox": "یک پیام بنویسید", "newMessages": "پیام‌های جدید", "nickname": { + "featureChat": "گپ", + "featureClosedCaptions": "زیرنویس", + "featureFileSharing": "اشتراک‌گذاری فایل", + "featurePolls": "نظرسنجی", "popover": "نام نمایشی خود را وارد نمایید", "title": "برای استفاده از گپ، نام نمایشی خود را وارد کنید", - "titleWithPolls": "برای استفاده از گپ و نظرسنجی، نام نماشی خود را وارد کنید" + "titleWith1Features": "برای استفاده از {{feature1}}، نام نمایشی خود را وارد کنید", + "titleWith2Features": "برای استفاده از {{feature1}} و {{feature2}}، نام نمایشی خود را وارد کنید", + "titleWith3Features": "برای استفاده از {{feature1}}، {{feature2}} و {{feature3}}، نام نمایشی خود را وارد کنید", + "titleWith4Features": "برای استفاده از {{feature1}}، {{feature2}}، {{feature3}} و {{feature4}}، نام نمایشی خود را وارد کنید", + "titleWithCC": "برای استفاده از گپ و زیرنویس، نام نمایشی خود را وارد کنید", + "titleWithPolls": "برای استفاده از گپ و نظرسنجی، نام نماشی خود را وارد کنید", + "titleWithPollsAndCC": "برای استفاده از گپ، نظرسنجی و زیرنویس، نام نمایشی خود را وارد کنید", + "titleWithPollsAndCCAndFileSharing": "برای استفاده از گپ، نظرسنجی، زیرنویس و فایل‌ها، نام نمایشی خود را وارد کنید" }, "noMessagesMessage": "هنوز هیچ پیامی در این جلسه وجود ندارد. از این‌جا یک گفتگو را آغاز کنید!", "privateNotice": "پیام خصوصی به {{recipient}}", "sendButton": "ارسال", "smileysPanel": "تابلوی شکلک", + "systemDisplayName": "سیستم", "tabs": { "chat": "گپ", + "closedCaptions": "زیرنویس", + "fileSharing": "فایل‌ها", "polls": "نظرسنجی‌ها" }, "title": "گپ", - "titleWithPolls": "گپ و نظرسنجی‌ها", + "titleWithCC": "زیرنویس", + "titleWithFeatures": "گپ و", + "titleWithFileSharing": "فایل‌ها", + "titleWithPolls": "نظرسنجی‌ها", "you": "شما" }, "chromeExtensionBanner": { "buttonText": "نصب افزونهٔ مرورگر Chrome", "buttonTextEdge": "نصب افزونهٔ مرورگر Edge", - "close": "بستن", + "close": "ببند", "dontShowAgain": "دیگر این را به من نمایش نده", "installExtensionText": "برای اتصال به تقویم گوگل و برنامه آفیس 365 افزونه را نصب کنید" }, + "closedCaptionsTab": { + "emptyState": "محتوای زیرنویس پس از شروع آن توسط مدیر در دسترس خواهد بود", + "startClosedCaptionsButton": "شروع زیرنویس" + }, "connectingOverlay": { - "joiningRoom": "درحال اتصال شما به جلسه…" + "joiningRoom": "درحال اتصال شما به جلسه..." }, "connection": { "ATTACHED": "پیوست‌شده", @@ -149,9 +185,9 @@ "DISCONNECTED": "قطع شد", "DISCONNECTING": "درحال قطع اتصال", "ERROR": "خطا", - "FETCH_SESSION_ID": "دریافت شناسهٔ جلسه…", + "FETCH_SESSION_ID": "دریافت شناسهٔ جلسه...", "GET_SESSION_ID_ERROR": "خطا در دریافت شناسهٔ جلسه: {{code}}", - "GOT_SESSION_ID": "دریافت شناسهٔ جلسه… انجام شد", + "GOT_SESSION_ID": "دریافت شناسهٔ جلسه... انجام شد", "LOW_BANDWIDTH": "برای صرفه‌جویی در پهنای باند، ویدیو برای {{displayName}} غیرفعال شد" }, "connectionindicator": { @@ -170,7 +206,7 @@ "localport": "درگاه داخلی:", "localport_plural": "درگاه‌های داخلی:", "maxEnabledResolution": "ارسال بیشینه", - "more": "نمایش بیش‌تر", + "more": "مشاهده بیشتر", "no": "خیر", "packetloss": "بسته‌های گمشده:", "participant_id": "شناسهٔ شرکت‌کننده:", @@ -203,28 +239,30 @@ "description": "هیچ اتفاقی نیفتاد؟ تلاش کردیم جلسه را در نرم‌افزار میزکار {{app}} اجرا کنیم. دوباره تلاش کنید یا جلسه را در نسخهٔ وب {{app}} اجرا کنید.", "descriptionNew": "هیچ اتفاقی نیفتاد؟ تلاش کردیم جلسه را در نرم‌افزار میزکار {{app}} اجرا کنیم.

می‌توانید دوباره تلاش کنید یا جلسه را در نسخهٔ وب اجرا کنید.", "descriptionWithoutWeb": "هیچ اتفاقی نیفتاد؟ تلاش کردیم جلسه را در نرم‌افزار میزکار {{app}} اجرا کنیم.", - "downloadApp": "بارگیری برنامه", - "downloadMobileApp": "بارگیری از فروشگاه برنامه‌ها", + "downloadApp": "دانلود برنامه", + "downloadMobileApp": "دانلود از فروشگاه برنامه‌ها", "ifDoNotHaveApp": "اگر هنوز برنامه را نصب نکرده‌اید:", "ifHaveApp": "اگر قبلا برنامه را نصب کرده‌اید:", - "joinInApp": "با استفاده از برنامه به جلسه بپیوندید", - "joinInAppNew": "با استفاده از برنامه بپیوندید", - "joinInBrowser": "با استفاده از مرورگر بپیوندید", - "launchMeetingLabel": "چگونه می‌خواهید به این جلسه بپیوندید؟", + "joinInApp": "با استفاده از برنامه به جلسه بپیوندد", + "joinInAppNew": "با استفاده از برنامه بپیوندد", + "joinInBrowser": "با استفاده از مرورگر بپیوندد", + "launchMeetingLabel": "چگونه می‌خواهید به این جلسه بپیوندد؟", "launchWebButton": "استفاده از نسخه‌ٔ وب", + "noDesktopApp": "برنامه را نصب نکرده‌اید؟", "noMobileApp": "برنامه را نصب نکرده‌اید؟", + "or": "یا", "termsAndConditions": "با ادامه‌دادن، با شرایط و ضوابط ما موافقت می‌کنید.", - "title": "درحال اجرای جلسهٔ شما در {{app}}…", - "titleNew": "درحال اجرای جلسهٔ شما…", + "title": "درحال اجرای جلسهٔ شما در {{app}}...", + "titleNew": "درحال اجرای جلسهٔ شما...", "tryAgainButton": "با نسخه‌ٔ میزکار دوباره تلاش کنید", "unsupportedBrowser": "به نظر می‌رسد در حال استفاده از یک مرورگر پشتیبانی‌نشده هستید." }, "defaultLink": "برای مثال {{url}}", "defaultNickname": "برای مثال: آناهیتا", "deviceError": { - "cameraError": "خطا در دسترسی به دوربین", + "cameraError": "خطا در اجازه به دوربین", "cameraPermission": "خطا در گرفتن اجازهٔ دوربین", - "microphoneError": "خطا در دسترسی به میکروفن", + "microphoneError": "خطا در اجازه به میکروفن", "microphonePermission": "خطا در گرفتن اجازهٔ میکروفن" }, "deviceSelection": { @@ -234,7 +272,7 @@ "deleteDevice": "حذف دستگاه", "pairDevice": "جفت‌کردن دستگاه" }, - "noPermission": "اجازه داده نشد", + "noPermission": "دسترسی رد شد", "previewUnavailable": "پیش‌نمایش در دسترس نیست", "selectADevice": "یک دستگاه را انتخاب کنید", "testAudio": "آزمایش" @@ -251,65 +289,80 @@ "IamHost": "من میزبان هستم", "Ok": "تأیید", "Remove": "حذف‌کردن", - "Share": "هم‌رسانی", + "Share": "اشتراک‌گذاری", "Submit": "ارسال", - "WaitForHostMsg": "کنفرانس هنوز شروع نشده است، اگر میزبان هستید وارد شوید، در غیراین صورت تا رسیدن میزبان و شروع جلسه منتظر بمانید.", - "WaitingForHostTitle": "در انتظار میزبان…", + "Understand": "متوجه شدم، فعلا صدایم قطع باشد", + "UnderstandAndUnmute": "متوجه شدم، لطفا صدایم را وصل کن", + "WaitForHostNoAuthMsg": "جلسه هنوز شروع نشده است زیرا هنوز هیچ مدیری نیامده است. لطفا منتظر بمانید.", + "WaitingForHostButton": "انتظار برای مدیر", + "WaitingForHostTitle": "در انتظار مدیر...", "Yes": "بله", "accessibilityLabel": { "Cancel": "لغو (ترک‌کردن پنجرهٔ گفتگو)", "Ok": "باشه (ذخیره و ترک‌کردن پنجرهٔ گفتگو)", - "close": "بستن پیام", + "close": "ببند پیام", "liveStreaming": "پخش زنده", - "sharingTabs": "گزینه‌های هم‌رسانی" + "sharingTabs": "انتخاب‌های اشتراک‌گذاری" }, - "add": "افزودن", + "add": "اضافه کردن", "addMeetingNote": "یک یادداشت دربارهٔ این جلسه بیافزایید", - "addOptionalNote": "افزودن یک یادداشت (اختیاری):", + "addOptionalNote": "اضافه کردن یک یادداشت (اختیاری):", "allow": "اجازه‌دادن", - "alreadySharedVideoMsg": "یک شرکت‌کنندهٔ دیگر درحال هم‌رسانی ویدیو است. این کنفرانس در هر زمان فقط اجازهٔ هم‌رسانی یک ویدیو را می‌دهد.", - "alreadySharedVideoTitle": "فقط یک ویدیو را می‌توان در هر زمان هم‌رسانی کرد", + "allowToggleCameraDialog": "آیا به {{initiatorName}} اجازه می‌دهید حالت رو به جلو دوربین شما را تغییر دهد؟", + "allowToggleCameraTitle": "اجازه تغییر دوربین؟", + "alreadySharedVideoMsg": "یک شرکت‌کنندهٔ دیگر درحال اشتراک‌گذاری ویدیو است. این کنفرانس در هر زمان فقط اجازهٔ اشتراک‌گذاری یک ویدیو را می‌دهد.", + "alreadySharedVideoTitle": "فقط یک ویدیو را می‌توان در هر زمان اشتراک‌گذاری کرد", "applicationWindow": "پنجرهٔ برنامه", "authenticationRequired": "احراز هویت مورد نیاز است", + "cameraCaptureDialog": { + "description": "عکس بگیرید و با دوربین موبایل خود ارسال کنید", + "ok": "باز کردن دوربین", + "reject": "نه الان", + "title": "عکس بگیرید" + }, "cameraConstraintFailedError": "دوربین شما برخی از قابلیت‌های مورد نیاز را ندارد.", "cameraNotFoundError": "دوربین پیدا نشد.", - "cameraNotSendingData": "به دوربین شما دسترسی نداریم. بررسی کنید که برنامهٔ دیگری در حال استفاده از دوربین نباشد، اگر می‌توانید دوربین دیگری را از فهرست تنظیمات انتخاب کنید یا تلاش کنید برنامه را دوباره بارگذاری کنید.", - "cameraNotSendingDataTitle": "دسترسی به دوربین امکان‌پذیر نیست", - "cameraPermissionDeniedError": "شما اجازهٔ استفاده از دوربین خود را نداده‌اید. همچنان می‌توانید به کنفرانس بپیوندید، اما دیگران شما را نخواهند دید. برای رفع این مشکل از دکمهٔ دوربین در نوارِ نشانی استفاده کنید.", + "cameraNotSendingData": "به دوربین شما اجازه نداریم. بررسی کنید که برنامهٔ دیگری در حال استفاده از دوربین نباشد، اگر می‌توانید دوربین دیگری را از فهرست تنظیمات انتخاب کنید یا تلاش کنید برنامه را دوباره بارگذاری کنید.", + "cameraNotSendingDataTitle": "اجازه به دوربین امکان‌پذیر نیست", + "cameraPermissionDeniedError": "شما اجازهٔ استفاده از دوربین خود را نداده‌اید. همچنان می‌توانید به کنفرانس بپیوندد، اما دیگران شما را نخواهند دید. برای رفع این مشکل از دکمهٔ دوربین در نوارِ نشانی استفاده کنید.", "cameraTimeoutError": "منبع ویدیو شروع نشد. بیش‌ازحد طول کشید!", "cameraUnknownError": "به دلایلی نامشخص نمی‌توان از دوربین استفاده کرد.", "cameraUnsupportedResolutionError": "دوربین شما از وضوح تصویر مورد نیاز پشتیبانی نمی‌کند.", - "close": "بستن", - "conferenceDisconnectMsg": "شاید بخواهید اتصال شبکه خود را بررسی کنید. تلاش برای اتصال دوباره در {{seconds}} ثانیه دیگر…", - "conferenceDisconnectTitle": "اتصال شما قطع شده‌است.", - "conferenceReloadMsg": "ما در حال تلاش برای حل این مشکل هستیم. تلاش برای اتصال دوباره در {{seconds}} ثانیه دیگر…", + "close": "ببند", + "conferenceDisconnectMsg": "شاید بخواهید اتصال شبکه خود را بررسی کنید. تلاش برای اتصال دوباره در {{seconds}} ثانیه دیگر...", + "conferenceDisconnectTitle": "ارتباط شما قطع شد.", + "conferenceReloadMsg": "ما در حال تلاش برای حل این مشکل هستیم. تلاش برای اتصال دوباره در {{seconds}} ثانیه دیگر...", "conferenceReloadTitle": "متأسفانه مشکلی پیش آمد.", "confirm": "تأیید", + "confirmBack": "بازگشت", "confirmNo": "خیر", "confirmYes": "بله", "connectError": "اوه! مشکلی پیش آمد و نتوانستیم به کنفرانس وصل شویم.", "connectErrorWithMsg": "اوه! مشکلی پیش آمد و نتوانستیم به کنفرانس وصل شویم: {{msg}}", "connecting": "درحال اتصال", "contactSupport": "تماس با پشتیبانی", - "copied": "رونوشت‌شد", - "copy": "رونوشت", + "copied": "کپی‌شد", + "copy": "کپی", + "demoteParticipantDialog": "آیا مطمئن هستید که می‌خواهید این شرکت‌کننده را به بیننده تبدیل کنید؟", + "demoteParticipantTitle": "تبدیل به بیننده", "dismiss": "ردکردن", "displayNameRequired": "سلام! نام شما چیست؟", "done": "انجام شد", - "e2eeDescription": "رمزگذاری سرتاسر در حال حاضر آزمایشی است. لطفاً در نظر داشته باشید که فعال‌کردن رمزگذاری سرتاسری خدمات ارائه‌شده در سمت سرور را غیرفعال خواهد کرد؛ مانند: مشارکت تلفنی در جلسات. همچنین در نظر داشته باشید که جلسه تنها برای افرادی که از طریق مرورگرهایی با پشتیبانی این قابلیت می‌پیوندند، کار می‌کند.", + "e2eeDescription": "رمزگذاری سرتاسر در حال حاضر است. لطفاً در نظر داشته باشید که فعال‌کردن رمزگذاری سرتاسری خدمات ارائه‌شده در سمت سرور را غیرفعال خواهد کرد؛ مانند: مشارکت تلفنی در جلسات. همچنین در نظر داشته باشید که جلسه تنها برای افرادی که از طریق مرورگرهایی با پشتیبانی این قابلیت می‌لینکند، کار می‌کند.", "e2eeDisabledDueToMaxModeDescription": "به دلیل تعداد زیاد شرکت‌کنندگان در کنفرانس، رمزگذاری سرتاسری نمی‌تواند فعال شود.", "e2eeLabel": "رمزگذاری سرتاسری را فعال کن", "e2eeWarning": "هشدار:به نظر می‌رسد همهٔ شرکت‌کنندگان در این جلسه از رمزگذاری سرتاسری پشتیبانی نمی‌کنند. اگر این قابلیت را فعال کنید، آن‌ها صدای جلسه را نمی‌شنوند و تصویر را مشاهده نخواهند کرد.", - "e2eeWillDisableDueToMaxModeDescription": "هشدار:: اگر شرکت‌کنندگان بیشتری به کنفرانس بپیوندند، رمزگذاری سرتاسری به طور خودکار غیرفعال می‌شود.", + "e2eeWillDisableDueToMaxModeDescription": "هشدار:: اگر شرکت‌کنندگان بیشتری به کنفرانس بلینکند، رمزگذاری سرتاسری به طور خودکار غیرفعال می‌شود.", "embedMeeting": "جاسازی جلسه", "enterDisplayName": "نام خود را وارد کنید", "error": "خطا", + "errorRoomCreationRestriction": "شما خیلی سریع سعی کردید به جلسه بپیوندید، لطفا کمی صبر کنید و دوباره تلاش کنید.", "gracefulShutdown": "سرویس ما درحال به‌روزرسانی است و هم‌اکنون در دسترس نمی‌باشد. لطفاً بعداً دوباره امتحان کنید.", - "grantModeratorDialog": "آیا مطمئن هستید که می‌خواهید دسترسی مدیر را به {{participantName}} اعطا کنید؟", - "grantModeratorTitle": "اعطای دسترسی مدیر", + "grantModeratorDialog": "آیا مطمئن هستید که می‌خواهید اجازه مدیر را به {{participantName}} اعطا کنید؟", + "grantModeratorTitle": "اعطای اجازه مدیر", "hide": "مخفی‌کردن", "hideShareAudioHelper": "این پیام را دوباره نشان نده", - "incorrectPassword": "نام کاربری یا گذرواژه اشتباه است", + "incorrectPassword": "نام شخصی یا گذرواژه اشتباه است", "incorrectRoomLockPassword": "گذرواژه اشتباه است", "internalError": "اوه! مشکلی پیش آمد. خطای مقابل رخ داد: {{error}}", "internalErrorTitle": "خطای داخلی", @@ -317,16 +370,19 @@ "kickParticipantButton": "بیرون‌کردن", "kickParticipantDialog": "آیا مطمئن هستید که می‌خواهید این شرکت‌کننده را بیرون کنید؟", "kickParticipantTitle": "بیرون‌کردن این شرکت‌کننده؟", + "kickSystemTitle": "آخ! شما از جلسه اخراج شدید", "kickTitle": "آخ! {{participantDisplayName}} شما را از جلسه بیرون کرد", - "linkMeeting": "پیوند جلسه", - "linkMeetingTitle": "پیوند جلسه به Salesforce", + "learnMore": "بیشتر بدانید", + "linkMeeting": "لینک جلسه", + "linkMeetingTitle": "لینک جلسه به Salesforce", "liveStreaming": "پخش زنده", "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "هنگامی که ضبط فعال است امکان‌پذیر نیست", - "localUserControls": "کنترل‌های کاربر محلی", + "localUserControls": "کنترل‌های شخص محلی", "lockMessage": "قفل‌کردن کنفرانس با خطا مواجه شد.", - "lockRoom": "افزودن $t(lockRoomPassword) به جلسه", + "lockRoom": "اضافه کردن $t(lockRoomPassword) به جلسه", "lockTitle": "قفل‌کردن با خطا مواجه شد", "login": "ورود", + "loginQuestion": "آیا مطمئن هستید که می‌خواهید وارد شوید و کنفرانس را ترک کنید؟", "logoutQuestion": "آیا مطمئن هستید که می‌خواهید خارج شوید و کنفرانس را ترک کنید؟", "logoutTitle": "خروج", "maxUsersLimitReached": "تعداد شرکت‌کنندگان به بیشینه میزان مجاز رسیده است. کنفرانس پُر است. لطفاً با صاحب جلسه تماس بگیرید یا بعداً دوباره تلاش کنید!", @@ -335,26 +391,38 @@ "micNotFoundError": "میکروفن پیدا نشد.", "micNotSendingData": "برای روشن‌کردن میکروفون خود و تنظیم سطح صدای آن، به تنظیمات رایانهٔ خود بروید", "micNotSendingDataTitle": "میکروفن شما توسط تنظیمات رایانهٔ شما بی‌صدا شده است", - "micPermissionDeniedError": "شما مجوز استفاده از میکروفن را نداده‌اید. همچنان می‌توانید به کنفرانس بپیوندید، اما دیگران صدای شما را نمی‌شنوند. برای رفع این مشکل از دکمهٔ دوربین در نوارِ نشانی استفاده کنید.", + "micPermissionDeniedError": "شما مجوز استفاده از میکروفن را نداده‌اید. همچنان می‌توانید به کنفرانس بپیوندد، اما دیگران صدای شما را نمی‌شنوند. برای رفع این مشکل از دکمهٔ دوربین در نوارِ نشانی استفاده کنید.", "micTimeoutError": "منبع صوتی شروع نشد. بیش‌ازحد طول کشید!", "micUnknownError": "به دلیل نامشخصی نمی‌توان از میکروفون استفاده کرد.", "moderationAudioLabel": "به شرکت‌کنندگان اجازه دهید صدای میکروفون خود را وصل کنند", + "moderationDesktopLabel": "به شرکت‌کنندگان غیر مدیر اجازه دهید صفحه خود را به اشتراک بگذارند", "moderationVideoLabel": "به شرکت‌کنندگان اجازه دهید ویدیوی خود را شروع کنند", "muteEveryoneDialog": "شرکت‌کنندگان می‌توانند هر زمان که بخواهند صدای خود را وصل کنند.", "muteEveryoneDialogModerationOn": "شرکت‌کنندگان می‌توانند هر زمان که بخواهند درخواستی برای صحبت ارسال کنند.", "muteEveryoneElseDialog": "وقتی که میکروفون آن‌ها بی‌صدا شود، شما نمی‌توانید آن را وصل کنید، اما خودشان هر زمان که بخواهند می‌توانند.", "muteEveryoneElseTitle": "میکروفون همه به‌جز {{whom}} بی‌صدا شود؟", + "muteEveryoneElsesDesktopDialog": "پس از توقف اشتراک‌گذاری، نمی‌توانید دوباره آن را راه‌اندازی کنید، اما آن‌ها می‌توانند در هر زمانی این کار را انجام دهند.", + "muteEveryoneElsesDesktopTitle": "توقف اشتراک‌گذاری صفحه همه به‌جز {{whom}}؟", "muteEveryoneElsesVideoDialog": "پس از غیرفعال‌شدن دوربین، نمی‌توانید دوباره آن را روشن کنید، اما آن‌ها می‌توانند در هر زمانی آن را دوباره روشن کنند.", "muteEveryoneElsesVideoTitle": "ویدیوی همه به‌جز {{whom}} متوقف شود؟", "muteEveryoneSelf": "خودتان", "muteEveryoneStartMuted": "همه شرکت‌کنندگان از این به بعد بی‌صدا وارد می‌شوند", "muteEveryoneTitle": "صدای همه قطع شود؟", + "muteEveryonesDesktopDialog": "شرکت‌کنندگان می‌توانند صفحه خود را در هر زمانی به اشتراک بگذارند.", + "muteEveryonesDesktopDialogModerationOn": "شرکت‌کنندگان می‌توانند هر زمان که بخواهند درخواستی برای اشتراک‌گذاری صفحه خود ارسال کنند.", + "muteEveryonesDesktopTitle": "توقف اشتراک‌گذاری صفحه همه؟", "muteEveryonesVideoDialog": "شرکت‌کنندگان می‌توانند در هر زمانی ویدیوی خود را روشن کنند.", "muteEveryonesVideoDialogModerationOn": "شرکت‌کنندگان می‌توانند هر زمان که بخواهند درخواستی برای روشن شدن ویدیوی خود ارسال کنند.", "muteEveryonesVideoDialogOk": "غیرفعال‌کردن", "muteEveryonesVideoTitle": "ویدیوی همه متوقف شود؟", "muteParticipantBody": "شما نمی‌توانید صدای آن‌ها را وصل کنید، اما خودشان هر زمان که بخواهند، می‌توانند صدای خود را وصل کنند.", - "muteParticipantButton": "بی‌صداکردن", + "muteParticipantButton": "قطع صدا", + "muteParticipantsDesktopBody": "نمی‌توانید اشتراک‌گذاری صفحه آن‌ها را شروع کنید، اما آن‌ها می‌توانند در هر زمانی این کار را انجام دهند.", + "muteParticipantsDesktopBodyModerationOn": "نمی‌توانید اشتراک‌گذاری صفحه آن‌ها را شروع کنید و آن‌ها هم نمی‌توانند.", + "muteParticipantsDesktopButton": "توقف اشتراک‌گذاری صفحه", + "muteParticipantsDesktopDialog": "آیا مطمئنید که می‌خواهید اشتراک‌گذاری صفحه این شرکت‌کننده را خاموش کنید؟ نمی‌توانید آن را دوباره راه‌اندازی کنید، اما آن‌ها می‌توانند در هر زمانی این کار را انجام دهند.", + "muteParticipantsDesktopDialogModerationOn": "آیا مطمئنید که می‌خواهید اشتراک‌گذاری صفحه این شرکت‌کننده را خاموش کنید؟ نه شما می‌توانید صفحه را دوباره روشن کنید و نه آن‌ها.", + "muteParticipantsDesktopTitle": "غیرفعال‌کردن اشتراک‌گذاری صفحه این شرکت‌کننده؟", "muteParticipantsVideoBody": "نمی‌توانید دوربین آن‌ها را دوباره روشن کنید، اما آن‌ها می‌توانند هر زمان که بخواهند دوباره آن را روشن کنند.", "muteParticipantsVideoBodyModerationOn": "شما نمی‌توانید دوربین را دوباره روشن کنید و آن‌ها هم نخواهند توانست.", "muteParticipantsVideoButton": "توقف ویدیو", @@ -370,65 +438,72 @@ "permissionCameraRequiredError": "اجازهٔ دوربین برای شرکت در کنفرانس‌های ویدیویی مورد نیاز است. لطفاً آن را در تنظیمات اعطا کنید", "permissionErrorTitle": "اجازه لازم است", "permissionMicRequiredError": "اجازهٔ میکروفون برای شرکت در کنفرانس های صوتی مورد نیاز است. لطفاً آن را در تنظیمات اعطا کنید", - "popupError": "مرورگر شما پنجره‌های بازشونده را برای این سایت مسدود کرده است. در تنظیمات امنیتی مرورگر خود، پنجره‌های بازشونده را برای این سایت فعال کرده و دوباره امتحان کنید.", - "popupErrorTitle": "پنجره‌های بازشونده مسدود شده‌است", "readMore": "بیش‌تر", "recentlyUsedObjects": "اشیائی که به‌تازگی استفاده کرده‌اید", "recording": "درحال ضبط", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "هنگامی که پخش زنده در جریان است ممکن نیست", + "recordingInProgressDescription": "این جلسه در حال ضبط و تحلیل توسط هوش مصنوعی است. صدا و تصویر شما بی‌صدا شده‌اند. اگر صدا یا تصویر خود را روشن کنید، به ضبط شدن رضایت می‌دهید.", + "recordingInProgressTitle": "ضبط در حال انجام است", "rejoinNow": "پیوستن مجدد", "remoteControlAllowedMessage": "{{user}} درخواست کنترل از راه دور را پذیرفت!", "remoteControlDeniedMessage": "{{user}} درخواست کنترل از راه دور را رد کرد!", "remoteControlErrorMessage": "در هنگام درخواست اجازهٔ کنترل از راه دور از {{user}} خطایی رخ داد!", "remoteControlRequestMessage": "آیا به {{user}} اجازه می‌دهید که میزکار شما را از راه دور کنترل کند؟", - "remoteControlShareScreenWarning": "با انتخاب گزینه‌ی «اجازه‌دادن» میزکار شما هم‌رسانی خواهد شد!", + "remoteControlShareScreenWarning": "با انتخاب گزینه‌ی «اجازه‌دادن» میزکار شما اشتراک‌گذاری خواهد شد!", "remoteControlStopMessage": "جلسهٔ کنترل از راه دور به پایان رسید!", "remoteControlTitle": "کنترل میزکار از راه دور", - "remoteUserControls": "کنترل‌های کاربر از راه دور برای {{username}}", + "remoteUserControls": "کنترل‌های شخص از راه دور برای {{username}}", "removePassword": "حذف‌کردن $t(lockRoomPassword)", - "removeSharedVideoMsg": "آیا مطمئن هستید که می‌خواهید ویدیوی هم‌رسانی‌شده را حذف کنید؟", - "removeSharedVideoTitle": "حذف ویدیوی هم‌رسانی‌شده", + "removeSharedVideoMsg": "آیا مطمئن هستید که می‌خواهید ویدیوی اشتراک‌گذاری‌شده را حذف کنید؟", + "removeSharedVideoTitle": "حذف ویدیوی اشتراک‌گذاری‌شده", + "renameBreakoutRoomLabel": "نام اتاق", + "renameBreakoutRoomTitle": "تغییر نام اتاق جانبی", "reservationError": "خطای سیستم رزرو", "reservationErrorMsg": "کد خطا: {{code}}، پیام: {{msg}}", "retry": "تلاش دوباره", - "screenSharingAudio": "هم‌رسانی صدا", - "screenSharingFailed": "اوه! مشکلی پیش آمد؛ نتوانستیم هم‌رسانی صفحه را شروع کنیم!", - "screenSharingFailedTitle": "هم‌رسانی صفحه با خطا مواجه شد!", - "screenSharingPermissionDeniedError": "اوه! مشکلی با اجازه‌های هم‌رسانی صفحهٔ شما پیش آمد. لطفاً صفحه را دوباره بارگیری کنید و سپس دوباره تلاش کنید.", + "screenSharingAudio": "اشتراک‌گذاری صدا", + "screenSharingFailed": "اوه! مشکلی پیش آمد؛ نتوانستیم اشتراک‌گذاری صفحه را شروع کنیم!", + "screenSharingFailedTitle": "اشتراک‌گذاری صفحه با خطا مواجه شد!", + "screenSharingPermissionDeniedError": "اوه! مشکلی با اجازه‌های اشتراک‌گذاری صفحهٔ شما پیش آمد. لطفاً صفحه را دوباره دانلود کنید و سپس دوباره تلاش کنید.", "searchInSalesforce": "جستجو در Salesforce", "searchResults": "نتایج جستجو({{count}})", "searchResultsDetailsError": "هنگام بازیابی داده‌های صاحب جلسه مشکلی پیش آمد.", "searchResultsError": "هنگام بازیابی داده‌ها مشکلی پیش آمد.", "searchResultsNotFound": "هیچ نتیجه‌ای برای این جستجو یافت نشد.", "searchResultsTryAgain": "سعی کنید از کلمات کلیدی جایگزین استفاده کنید.", - "sendPrivateMessage": "شما یک پیام خصوصی دریافت کرده‌اید. می‌خواهید به صورت خصوصی به آن پاسخ دهید یا پیام خود را به گروه بفرستید؟", + "sendPrivateMessage": "شما یک پیام خصوصی دریافت کرده‌اید. می‌خواهید به صورت خصوصی به آن پاسخ دهید یا پیام خود را به گروه ارسالید؟", "sendPrivateMessageCancel": "ارسال به گروه", "sendPrivateMessageOk": "ارسال به‌صورت خصوصی", "sendPrivateMessageTitle": "به‌صورت خصوصی ارسال شود؟", "serviceUnavailable": "سرویس در دسترس نیست", - "sessTerminated": "تماس پایان یافت", + "sessTerminated": "تماس تمام شد", + "sessTerminatedReason": "جلسه خاتمه یافته است", "sessionRestarted": "به دلیل مشکل اتصال، تماس دوباره برقرار شد.", "shareAudio": "‏‏ادامه", - "shareAudioTitle": "نحوهٔ هم‌رسانی صدا", - "shareAudioWarningD1": "قبل از هم‌رسانی صدا، باید هم‌رسانی صفحه را متوقف کنید.", - "shareAudioWarningD2": "شما باید هم‌رسانی صفحهٔ خود را دوباره راه‌اندازی کنید و گزینه «هم‌رسانی صدا» را علامت بزنید.", - "shareAudioWarningH1": "اگر می‌خواهید فقط صدا را هم‌رسانی کنید:", - "shareAudioWarningTitle": "قبل از هم‌رسانی صدا، باید هم‌رسانی صفحه را متوقف کنید", - "shareMediaWarningGenericH2": "اگر می‌خواهید صفحه و صدای خود را هم‌رسانی کنید", - "shareScreenWarningD1": "پیش از هم‌رسانی صفحه، باید هم‌رسانی صدا را متوقف کنید.", - "shareScreenWarningD2": "باید هم‌رسانی صدا را متوقف کنید، سپس هم‌رسانی صفحه را شروع کنید و گزینه «هم‌رسانی صدا» را فعال کنید.", - "shareScreenWarningH1": "اگر می‌خواهید فقط صفحهٔ خود را هم‌رسانی کنید:", - "shareScreenWarningTitle": "پیش از هم‌رسانی صفحه باید هم‌رسانی صدا را متوقف کنید", - "shareVideoLinkError": "لطفاً یک پیوند ویدیوی معتبر وارد کنید.", - "shareVideoTitle": "هم‌رسانی ویدیو", - "shareYourScreen": "هم‌رسانی صفحهٔ شما", - "shareYourScreenDisabled": "هم‌رسانی صفحه غیرفعال شد.", + "shareAudioAltText": "برای اشتراک‌گذاری محتوای مورد نظر، به \"زبانه مرورگر\" بروید، محتوا را انتخاب کنید، علامت \"اشتراک‌گذاری صدا\" را فعال کنید و سپس دکمه \"اشتراک‌گذاری\" را کلیک کنید", + "shareAudioTitle": "نحوهٔ اشتراک‌گذاری صدا", + "shareAudioWarningD1": "قبل از اشتراک‌گذاری صدا، باید اشتراک‌گذاری صفحه را متوقف کنید.", + "shareAudioWarningD2": "شما باید اشتراک‌گذاری صفحهٔ خود را دوباره راه‌اندازی کنید و گزینه «اشتراک‌گذاری صدا» را علامت بزنید.", + "shareAudioWarningH1": "اگر می‌خواهید فقط صدا را اشتراک‌گذاری کنید:", + "shareAudioWarningTitle": "قبل از اشتراک‌گذاری صدا، باید اشتراک‌گذاری صفحه را متوقف کنید", + "shareMediaWarningGenericH2": "اگر می‌خواهید صفحه و صدای خود را اشتراک‌گذاری کنید", + "shareScreenWarningD1": "پیش از اشتراک‌گذاری صفحه، باید اشتراک‌گذاری صدا را متوقف کنید.", + "shareScreenWarningD2": "باید اشتراک‌گذاری صدا را متوقف کنید، سپس اشتراک‌گذاری صفحه را شروع کنید و گزینه «اشتراک‌گذاری صدا» را فعال کنید.", + "shareScreenWarningH1": "اگر می‌خواهید فقط صفحهٔ خود را اشتراک‌گذاری کنید:", + "shareScreenWarningTitle": "پیش از اشتراک‌گذاری صفحه باید اشتراک‌گذاری صدا را متوقف کنید", + "shareVideoConfirmPlay": "شما در شرف باز کردن یک وب‌سایت خارجی هستید. آیا می‌خواهید ادامه دهید؟", + "shareVideoConfirmPlayTitle": "{{name}} یک ویدیو با شما به اشتراک گذاشته است.", + "shareVideoLinkError": "اوه، این ویدیو قابل پخش نیست.", + "shareVideoLinkStopped": "ویدیوی {{name}} متوقف شد.", + "shareVideoTitle": "اشتراک‌گذاری ویدیو", + "shareYourScreen": "اشتراک‌گذاری صفحهٔ شما", + "shareYourScreenDisabled": "اشتراک‌گذاری صفحه غیرفعال شد.", "sharedVideoDialogError": "خطا: نشانی اینترنتی نامعتبر", - "sharedVideoLinkPlaceholder": "پیوند یوتیوب یا پیوند مستقیم ویدیو", + "sharedVideoLinkPlaceholder": "لینک یوتیوب یا لینک مستقیم ویدیو", "show": "نمایش", "start": "شروع ", "startLiveStreaming": "شروع پخش زنده", - "startRecording": "شروع ضبط", + "startRecording": "ضبط را شروع کن", "startRemoteControlErrorMessage": "هنگام تلاش برای شروع نشستِ کنترل‌ازراه‌دور خطایی رخ داد!", "stopLiveStreaming": "توقف پخش زنده", "stopRecording": "توقف ضبط", @@ -438,24 +513,47 @@ "thankYou": "از این‌که از {{appName}} استفاده کردید سپاس‌گزاریم!", "token": "ژتون", "tokenAuthFailed": "با عرض پوزش، شما اجازهٔ پیوستن به این تماس را ندارید.", + "tokenAuthFailedReason": { + "audInvalid": "مقدار `aud` نامعتبر است. باید `jitsi` باشد.", + "contextNotFound": "شیء `context` از payload گم شده است.", + "expInvalid": "مقدار `exp` نامعتبر است.", + "featureInvalid": "ویژگی نامعتبر: {{feature}}، احتمالا هنوز پیاده‌سازی نشده است.", + "featureValueInvalid": "مقدار نامعتبر برای ویژگی: {{feature}}.", + "featuresNotFound": "شیء `features` از payload گم شده است.", + "headerNotFound": "هدر گم شده است.", + "issInvalid": "مقدار `iss` نامعتبر است. باید `chat` باشد.", + "kidMismatch": "شناسه کلید (kid) با sub مطابقت ندارد.", + "kidNotFound": "شناسه کلید (kid) گم شده است.", + "nbfFuture": "مقدار `nbf` در آینده است.", + "nbfInvalid": "مقدار `nbf` نامعتبر است.", + "payloadNotFound": "payload گم شده است.", + "tokenExpired": "توکن منقضی شده است." + }, "tokenAuthFailedTitle": "احراز هویت ناموفق بود", - "transcribing": "ترانویسی", + "tokenAuthFailedWithReasons": "با عرض پوزش، شما اجازهٔ پیوستن به این تماس را ندارید. دلایل احتمالی: {{reason}}", + "tokenAuthUnsupported": "نشانی اینترنتی توکن پشتیبانی نمی‌شود.", + "transcribing": "رونویسی", + "unauthenticatedAccessDisabled": "این تماس نیاز به احراز هویت دارد. لطفا برای ادامه وارد شوید.", "unlockRoom": "حذف جلسه $t(lockRoomPassword)", - "user": "کاربر", - "userIdentifier": "شناساگر کاربر", - "userPassword": "گذرواژهٔ کاربر", + "user": "شخص", + "userIdentifier": "شناساگر شخص", + "userPassword": "گذرواژهٔ شخص", "verifyParticipantConfirm": "آن‌ها مطابقت دارند", "verifyParticipantDismiss": "آن‌ها مطابقت ندارند", - "verifyParticipantQuestion": "آزمایشی: از شرکت‌کننده {{participantName}} بپرسید که آیا محتوای یکسانی را با ترتیب یکسان می‌بیند.", - "verifyParticipantTitle": "تأیید کاربر", - "videoLink": "پیوند ویدیو", - "viewUpgradeOptions": "گزینه‌های ارتقا را مشاهده کنید", - "viewUpgradeOptionsContent": "برای دسترسی نامحدود به ویژگی‌های ممتاز مانند ضبط، ترانویسی، پخش RTMP و بیش‌تر، باید طرح خود را ارتقا دهید.", + "verifyParticipantQuestion": ": از شرکت‌کننده {{participantName}} بپرسید که آیا محتوای یکسانی را با ترتیب یکسان می‌بیند.", + "verifyParticipantTitle": "تأیید شخص", + "videoLink": "لینک ویدیو", + "viewUpgradeOptions": "انتخاب‌های ارتقا را مشاهده کنید", + "viewUpgradeOptionsContent": "برای اجازه نامحدود به ویژگی‌های ممتاز مانند ضبط، رونویسی، پخش RTMP و بیش‌تر، باید طرح خود را ارتقا دهید.", "viewUpgradeOptionsTitle": "شما یک ویژگی ممتاز را کشف کردید!", + "whiteboardLimitContent": "متاسفانه، محدودیت کاربران همزمان تخته‌سفید به حد خود رسیده است.", + "whiteboardLimitReference": "برای اطلاعات بیشتر لطفا مراجعه کنید به", + "whiteboardLimitReferenceUrl": "وب‌سایت ما", + "whiteboardLimitTitle": "استفاده از تخته‌سفید محدود شده است", "yourEntireScreen": "تمامِ صفحه‌نمایش شما" }, "documentSharing": { - "title": "سندِ هم‌رسانی‌شده" + "title": "سندِ اشتراک‌گذاری‌شده" }, "e2ee": { "labelToolTip": "ارتباط صوتی و تصویری در این تماس به صورت سرتاسری رمزگذاری شده است" @@ -476,6 +574,25 @@ "veryBad": "خیلی بد", "veryGood": "خیلی خوب" }, + "fileSharing": { + "downloadFailedDescription": "لطفا دوباره تلاش کنید.", + "downloadFailedTitle": "دانلود ناموفق بود", + "downloadFile": "دانلود", + "downloadStarted": "دانلود فایل شروع شد", + "dragAndDrop": "فایل‌ها را اینجا یا هرجای صفحه بکشید و رها کنید", + "fileAlreadyUploaded": "این فایل قبلا در این جلسه بارگذاری شده است.", + "fileRemovedByOther": "فایل '{{ fileName }}' شما حذف شد", + "fileTooLargeDescription": "لطفا مطمئن شوید فایل از {{ maxFileSize }} بیشتر نباشد.", + "fileTooLargeTitle": "فایل انتخابی خیلی بزرگ است", + "fileUploadProgress": "پیشرفت بارگذاری فایل", + "fileUploadedSuccessfully": "فایل با موفقیت بارگذاری شد", + "newFileNotification": "{{ participantName }} فایل '{{ fileName }}' را به اشتراک گذاشت", + "removeFile": "حذف", + "removeFileSuccess": "فایل با موفقیت حذف شد", + "uploadFailedDescription": "لطفا دوباره تلاش کنید.", + "uploadFailedTitle": "بارگذاری ناموفق بود", + "uploadFile": "اشتراک‌گذاری فایل" + }, "filmstrip": { "accessibilityLabel": { "heading": "تصاویر بندانگشتی ویدیو" @@ -494,10 +611,10 @@ }, "info": { "accessibilityLabel": "نمایش اطلاعات", - "addPassword": "افزودن $t(lockRoomPassword)", + "addPassword": "اضافه کردن $t(lockRoomPassword)", "cancelPassword": "لغو $t(lockRoomPassword)", - "conferenceURL": "پیوند:", - "copyNumber": "رونوشت شماره", + "conferenceURL": "لینک:", + "copyNumber": "کپی شماره", "country": "کشور", "dialANumber": "برای پیوستن به جلسه، یکی از این شماره‌ها را شماره‌گیری کرده، سپس پین را وارد نمایید.", "dialInConferenceID": "پین:", @@ -506,30 +623,33 @@ "dialInSummaryError": "در واکِشی اطلاعاتِ شماره‌گیری خطایی رخ داده است. لطفاً بعدا دوباره تلاش کنید.", "dialInTollFree": "بدون هزینه", "genericError": "آخ، مشکلی پیش آمد.", - "inviteLiveStream": "برای مشاهدهٔ پخش زندهٔ این جلسه، روی این پیوند کلیک کنید: {{url}}", + "inviteLiveStream": "برای مشاهدهٔ پخش زندهٔ این جلسه، روی این لینک کلیک کنید: {{url}}", "invitePhone": "برای پیوستن از طریق تلفن، روی این ضربه بزنید: {{number}},,{{conferenceID}}#\n", - "invitePhoneAlternatives": "به‌دنبال شمارهٔ تماس دیگری هستید؟\nشماره‌های تماس جلسه را ببینید: {{url}}\n\n\nاگر از طریق تلفن اتاق شماره گیری می‌کنید، بدون اتصال به صدا بپیوندید: {{silentUrl}}", + "invitePhoneAlternatives": "به‌دنبال شمارهٔ تماس دیگری هستید؟\nشماره‌های تماس جلسه را ببینید: {{url}}\n\n\nاگر از طریق تلفن اتاق شماره گیری می‌کنید، بدون اتصال به صدا بپیوندد: {{silentUrl}}", "inviteSipEndpoint": "برای عضویت با استفاده از نشانی SIP، این را وارد کنید: {{sipUri}}", - "inviteTextiOSInviteUrl": "برای پیوستن روی این پیوند کلیک کنید: {{inviteUrl}}.", - "inviteTextiOSJoinSilent": "اگر از طریق تلفن اتاق شماره‌گیری می‌کنید، از این پیوند برای پیوستن بدون اتصال به صدا استفاده کنید: {{silentUrl}}.", + "inviteTextiOSInviteUrl": "برای پیوستن روی این لینک کلیک کنید: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "اگر از طریق تلفن اتاق شماره‌گیری می‌کنید، از این لینک برای پیوستن بدون اتصال به صدا استفاده کنید: {{silentUrl}}.", "inviteTextiOSPersonal": "{{name}} شما را به یک جلسه دعوت می‌کند.", "inviteTextiOSPhone": "برای پیوستن از طریق تلفن، از این شماره استفاده کنید: {{number}},,{{conferenceID}}#. اگر به دنبال شمارهٔ دیگری هستید، این فهرستِ کامل است: {{didUrl}}.", "inviteURLFirstPartGeneral": "شما برای پیوستن به یک جلسه دعوت شده‌اید.", "inviteURLFirstPartPersonal": "{{name}} شما را به یک جلسه دعوت می‌کند.\n", - "inviteURLSecondPart": "\nبه جلسه بپیوندید:\n{{url}}\n", + "inviteURLSecondPart": "\nبه جلسه بپیوندد:\n{{url}}\n", "label": "اطلاعات شماره‌گیری", "liveStreamURL": "پخش زنده:", "moreNumbers": "شماره‌های بیش‌تر", "noNumbers": "شمارهٔ تماسی برای پیوستن با شماره‌گیری وجود ندارد.", "noPassword": "هیچ‌یک", "noRoom": "هیچ جلسه‌ای برای پیوستن با شماره‌گیری مشخص نشده است.", + "noWhiteboard": "بارگذاری تخته‌سفید ممکن نبود.", "numbers": "شماره‌های تماس برای پیوستن", "password": "$t(lockRoomPasswordUppercase): ", "reachedLimit": "به سقف طرح خود رسیده‌اید.", "sip": "نشانی SIP", - "title": "هم‌رسانی", - "tooltip": "پیوند و شمارهٔ تماس این جلسه را هم‌رسانی کنید", - "upgradeOptions": "لطفاً بررسی کنید گزینه‌های ارتقا انتخاب شده باشد" + "sipAudioOnly": "نشانی SIP فقط صدا", + "title": "اشتراک‌گذاری", + "tooltip": "لینک و شمارهٔ تماس این جلسه را اشتراک‌گذاری کنید", + "upgradeOptions": "لطفاً بررسی کنید انتخاب‌های ارتقا انتخاب شده باشد", + "whiteboardError": "خطا در بارگذاری تخته‌سفید. لطفا بعدا دوباره تلاش کنید." }, "inlineDialogFailure": { "msg": "کمی دچار لغزش شدیم.", @@ -545,7 +665,7 @@ "searchPlaceholder": "شرکت‌کننده یا شمارهٔ تلفن", "send": "ارسال" }, - "jitsiHome": "{{logo}} نشان‌واره، پیوندها به صفحهٔ اصلی", + "jitsiHome": "{{logo}} نشان‌واره، لینکها به صفحهٔ اصلی", "keyboardShortcuts": { "focusLocal": "تمرکز روی ویدیوی شما", "focusRemote": "تمرکز روی ویدیوی شخصی دیگر", @@ -557,16 +677,16 @@ "pushToTalk": "برای صحبت‌کردن فشار دهید", "raiseHand": "بالابردن یا پایین‌آوردن دست", "showSpeakerStats": "نمایش آمار شرکت‌کنندگان", - "toggleChat": "بازکردن یا بستن گپ", + "toggleChat": "بازکردن یا ببند گپ", "toggleFilmstrip": "نمایش یا مخفی‌کردن تصاویر بندانگشتی ویدیو", "toggleParticipantsPane": "نمایش یا پنهان‌کردن تابلوی شرکت‌کنندگان", - "toggleScreensharing": "جابه‌جایی بین دوربین و هم‌رسانی صفحه‌نمایش", + "toggleScreensharing": "جابه‌جایی بین دوربین و اشتراک‌گذاری صفحه‌نمایش", "toggleShortcuts": "نمایش یا مخفی‌کردن میان‌برهای صفحه‌کلید", "videoMute": "شروع یا توقف دوربین شما" }, "largeVideo": { - "screenIsShared": "شما درحال هم‌رسانی صفحهٔ نمایشتان هستید", - "showMeWhatImSharing": "آن‌چه را که هم‌رسانی می‌کنم به من نشان بده" + "screenIsShared": "شما درحال اشتراک‌گذاری صفحهٔ نمایشتان هستید", + "showMeWhatImSharing": "آن‌چه را که اشتراک‌گذاری می‌کنم به من نشان بده" }, "liveStreaming": { "busy": "ما درحال آزادسازی منابع پخش هستیم. لطفاً دقایقی دیگر دوباره تلاش کنید.", @@ -576,27 +696,26 @@ "chooseCTA": "یک گزینهٔ پخش را انتخاب کنید. شما درحال حاضر به‌عنوان {{email}} وارد شده‌اید.", "enterStreamKey": "کلید پخش زندهٔ یوتیوب خود را این‌جا وارد کنید.", "error": "پخش زنده ناموفق بود. لطفاً دوباره تلاش کنید.", - "errorAPI": "در دسترسی به پخش‌کننده‌های یوتیوب شما خطایی رخ داد. لطفاً دوباره تلاش کنید که وارد شوید.", - "errorLiveStreamNotEnabled": "پخش زنده برای {{email}} فعال نیست. لطفاً پخش زنده را فعال کنید یا وارد یک حساب کاربری با پخش زندهٔ فعال شوید.", - "expandedOff": "پخش زنده متوقف شده است", + "errorAPI": "در اجازه به پخش‌کننده‌های یوتیوب شما خطایی رخ داد. لطفاً دوباره تلاش کنید که لاگین کنید.", + "errorLiveStreamNotEnabled": "پخش زنده برای {{email}} فعال نیست. لطفاً پخش زنده را فعال کنید یا وارد یک حساب شخصی با پخش زندهٔ فعال شوید.", + "expandedOff": "پخش زنده قطع شده است", "expandedOn": "این جلسه درحال حاضر در یوتیوب درحال پخش است.", - "expandedPending": "پخش زنده در حال شروع است…", + "expandedPending": "پخش زنده در حال شروع است...", "failedToStart": "شروع پخش زنده ناموفق بود", "getStreamKeyManually": "ما نتوانستیم هیچ پخش زنده‌ای را دریافت کنیم. کلید پخش زنده خود را به‌صورت دستی از یوتیوب دریافت کنید.", "googlePrivacyPolicy": "سیاست محرمانگی گوگل", "inProgress": "ضبط یا پخش زنده درحال انجام است", "invalidStreamKey": "کلید پخش زنده ممکن است اشتباه باشد.", - "limitNotificationDescriptionNative": "پخش زنده شما به {{limit}} دقیقه محدود خواهد شد. برای پخش نامحدود از {{app}} استفاده کنید.", - "limitNotificationDescriptionWeb": "به دلیل درخواست‌های زیاد، پخش زندهٔ شما به {{limit}} دقیقه محدود خواهد شد. برای پخش نامحدود از {{app}} استفاده کنید.", - "off": "پخش زنده متوقف شد", + "off": "پخش زنده قطع شد", "offBy": "{{name}} پخش زنده را متوقف کرد", "on": "پخش زنده شروع شد", "onBy": "{{name}} پخش زنده را شروع کرد", - "pending": "درحال شروع پخش زنده…", + "pending": "درحال شروع پخش زنده...", + "policyError": "شما خیلی سریع سعی کردید پخش زنده را شروع کنید. لطفا بعدا دوباره تلاش کنید!", "serviceName": "خدمت پخش زنده", "sessionAlreadyActive": "این جلسه از قبل درحال ضبط یا پخش زنده است.", "signIn": "ورود با حساب گوگل", - "signInCTA": "وارد حساب کاربری شوید یا کلید پخش زنده خود را از یوتیوب وارد کنید.", + "signInCTA": "وارد حساب شخصی شوید یا کلید پخش زنده خود را از یوتیوب وارد کنید.", "signOut": "خروج از حساب", "signedInAs": "شما به این عنوان وارد حساب شده‌اید:", "start": "شروع یک پخش زنده", @@ -609,7 +728,7 @@ "backToKnockModeButton": "درخواست برای پیوستن", "chat": "گپ", "dialogTitle": "حالت اتاق انتظار", - "disableDialogContent": "حالت اتاق انتظار فعال شد، این قابلیت تضمین می‌کند که شرکت‌کنندگان ناخواسته نمی‌توانند به جلسه بپیوندند. آیا می‌خواهید آن را غیرفعال کنید؟", + "disableDialogContent": "حالت اتاق انتظار فعال شد، این قابلیت تضمین می‌کند که شرکت‌کنندگان ناخواسته نمی‌توانند به جلسه بلینکند. آیا می‌خواهید آن را غیرفعال کنید؟", "disableDialogSubmit": "غیرفعال‌کردن", "emailField": "نشانی رایانامهٔ خود را وارد نمایید", "enableDialogPasswordField": "تنظیم گذرواژه (اختیاری)", @@ -622,25 +741,26 @@ "joinRejectedMessage": "درخواست پیوستن شما توسط مدیر جلسه رد شد.", "joinRejectedTitle": "درخواست شما رد شد.", "joinTitle": "پیوستن به جلسه", - "joinWithPasswordMessage": "تلاش برای پیوستن به جلسه با گذرواژه؛ شکیبا باشید…", + "joinWithPasswordMessage": "تلاش برای پیوستن به جلسه با گذرواژه؛ شکیبا باشید...", "joiningMessage": "به محض پذیرش درخواست شما، به جلسه خواهید پیوست", - "joiningTitle": "درخواست برای پیوستن به جلسه…", - "joiningWithPasswordTitle": "درحال پیوستن با گذرواژه…", + "joiningTitle": "درخواست برای پیوستن به جلسه...", + "joiningWithPasswordTitle": "درحال پیوستن با گذرواژه...", "knockButton": "درخواست برای پیوستن", "knockTitle": "یک نفر می‌خواهد به جلسه بپیوندد", "knockingParticipantList": "فهرست شرکت‌کنندگان درانتظار", "lobbyChatStartedNotification": "{{moderator}} شروع به یک گپِ اتاق انتظار با {{attendee}} کرد", "lobbyChatStartedTitle": "{{moderator}} شروع به یک گپِ اتاق انتظار با شما کرد.", + "lobbyClosed": "اتاق انتظار بسته شده است.", "nameField": "نام خود را وارد کنید", "notificationLobbyAccessDenied": "درخواست پیوستن {{targetParticipantName}} توسط {{originParticipantName}} رد شد", "notificationLobbyAccessGranted": "درخواست پیوستن {{targetParticipantName}} توسط {{originParticipantName}} تأیید شد", "notificationLobbyDisabled": "اتاق انتظار توسط {{originParticipantName}} غیرفعال شده است", "notificationLobbyEnabled": "اتاق انتظار توسط {{originParticipantName}} فعال شده است", "notificationTitle": "اتاق انتظار", - "passwordField": "گذرواژهٔ جلسه را وارد کنید", "passwordJoinButton": "پیوستن", "title": "اتاق انتظار", - "toggleLabel": "فعال‌کردن اتاق انتظار" + "toggleLabel": "فعال‌کردن اتاق انتظار", + "waitForModerator": "کنفرانس هنوز شروع نشده است زیرا هنوز هیچ مدیری نیامده است. اگر می‌خواهید مدیر شوید لطفا وارد شوید. در غیر این صورت، لطفا منتظر بمانید." }, "localRecording": { "clientState": { @@ -668,8 +788,10 @@ "participantStats": "آمار شرکت‌کننده", "selectTabTitle": "🎥 لطفاً این زبانه را برای ضبط انتخاب کنید", "sessionToken": "ژتون نشست", - "start": "شروع ضبط", + "start": "ضبط را شروع کن", "stop": "توقف ضبط", + "stopping": "در حال توقف ضبط", + "wait": "لطفا صبر کنید تا ضبط شما ذخیره شود", "yes": "بله" }, "lockRoomPassword": "گذرواژه", @@ -682,16 +804,26 @@ "notify": { "OldElectronAPPTitle": "آسیب‌پذیری امنیتی!", "allowAction": "اجازه‌دادن", - "allowedUnmute": "می‌توانید میکروفون خود را روشن کنید، دوربین خود را روشن کنید یا صفحهٔ خود را هم‌رسانی کنید.", + "allowAll": "اجازه به همه", + "allowAudio": "اجازه صدا", + "allowDesktop": "اجازه اشتراک‌گذاری صفحه", + "allowVideo": "اجازه ویدیو", + "allowedUnmute": "می‌توانید میکروفون خود را روشن کنید، دوربین خود را روشن کنید یا صفحهٔ خود را اشتراک‌گذاری کنید.", "audioUnmuteBlockedDescription": "عملیات روشن‌کردن میکروفون به دلیل محدودیت‌های سامانه موقتاً مسدود شده است.", "audioUnmuteBlockedTitle": "روشن‌کردن میکروفون مسدود شد!", "chatMessages": "پیام‌های گپ", "connectedOneMember": "{{name}} به جلسه پیوست", "connectedThreePlusMembers": "{{name}} و بسیاری دیگر به جلسه پیوستند", "connectedTwoMembers": "{{first}} و {{second}} به جلسه پیوستند", + "connectionFailed": "اتصال ناموفق بود. لطفا بعدا دوباره تلاش کنید!", "dataChannelClosed": "کیفیت ویدیو دچال اختلال است", "dataChannelClosedDescription": "کانال پل قطع شده است و بنابراین کیفیت ویدیو به پایین‌ترین حالت آن محدود شده است.", + "dataChannelClosedDescriptionWithAudio": "کانال پل قطع شده است و بنابراین ممکن است اختلالاتی در صدا و تصویر ایجاد شود.", + "dataChannelClosedWithAudio": "کیفیت صدا و تصویر دچار اختلال است", + "desktopMutedRemotelyTitle": "اشتراک‌گذاری صفحه شما توسط {{participantDisplayName}} متوقف شد", "disabledIframe": "جاسازی فقط برای اهداف نمایشی در نظر گرفته شده است؛ بنابراین این تماس در {{timeout}} دقیقهٔ دیگر قطع می‌شود.", + "disabledIframeSecondaryNative": "جاسازی {{domain}} فقط برای اهداف نمایشی در نظر گرفته شده است؛ بنابراین این تماس در {{timeout}} دقیقهٔ دیگر قطع می‌شود.", + "disabledIframeSecondaryWeb": "جاسازی {{domain}} فقط برای اهداف نمایشی در نظر گرفته شده است، بنابراین این تماس در {{timeout}} دقیقه قطع می‌شود. لطفا از Jitsi as a Service برای جاسازی در محصول استفاده کنید!", "disconnected": "قطع‌شده", "displayNotifications": "نمایش آگهی‌ها برای", "dontRemindMe": "به من یادآوری نکن", @@ -700,6 +832,9 @@ "gifsMenu": "GIPHY", "groupTitle": "آگهی‌ها", "hostAskedUnmute": "مدیر جلسه از شما می‌خواهد که صحبت کنید", + "invalidTenant": "tenant نامعتبر", + "invalidTenantHyphenDescription": "tenant مورد استفاده شما نامعتبر است (با '-' شروع یا پایان می‌یابد).", + "invalidTenantLengthDescription": "tenant مورد استفاده شما خیلی طولانی است.", "invitedOneMember": "{{name}} دعوت شده است", "invitedThreePlusMembers": "{{name}} و {{count}} نفر دیگر دعوت شده‌اند", "invitedTwoMembers": "{{first}} و {{second}} دعوت شده‌اند", @@ -708,17 +843,17 @@ "leftOneMember": "{{name}} جلسه را ترک کرد", "leftThreePlusMembers": "{{name}} و بسیاری دیگر جلسه را ترک کردند", "leftTwoMembers": "{{first}} و {{second}} جلسه را ترک کردند", - "linkToSalesforce": "پیوند به Salesforce", - "linkToSalesforceDescription": "شما می‌توانید خلاصهٔ جلسه را به یک شیء Salesforce پیوند دهید.", - "linkToSalesforceError": "خطا در پیوند جلسه به Salesforce", - "linkToSalesforceKey": "پیونددادن این جلسه", - "linkToSalesforceProgress": "درحال پیونددادن این جلسه به Salesforce…", - "linkToSalesforceSuccess": "این جلسه به Salesforce پیوند داده شد", + "linkToSalesforce": "لینک به Salesforce", + "linkToSalesforceDescription": "شما می‌توانید خلاصهٔ جلسه را به یک شیء Salesforce لینک دهید.", + "linkToSalesforceError": "خطا در لینک جلسه به Salesforce", + "linkToSalesforceKey": "لینکدادن این جلسه", + "linkToSalesforceProgress": "درحال لینکدادن این جلسه به Salesforce...", + "linkToSalesforceSuccess": "این جلسه به Salesforce لینک داده شد", "localRecordingStarted": "{{name}} یک ضبط محلی را شروع کرده است.", "localRecordingStopped": "{{name}} یک ضبط محلی را متوقف کرده است.", "me": "من", - "moderationInEffectCSDescription": "لطفاً اگر می‌خواهید صفحهٔ نمایش خود را هم‌رسانی کنید، دست خود را بالا ببرید.", - "moderationInEffectCSTitle": "هم‌رسانی صفحهٔ نمایش توسط مدیر جلسه مسدود شده است", + "moderationInEffectCSDescription": "لطفاً اگر می‌خواهید صفحهٔ نمایش خود را اشتراک‌گذاری کنید، دست خود را بالا ببرید.", + "moderationInEffectCSTitle": "اشتراک‌گذاری صفحهٔ نمایش توسط مدیر جلسه مسدود شده است", "moderationInEffectDescription": "لطفاً اگر می‌خواهید صحبت کنید، دست را بالا ببرید.", "moderationInEffectTitle": "میکروفون شما توسط مدیر بی‌صدا شده است", "moderationInEffectVideoDescription": "لطفاً اگر می‌خواهید دوربین خود را روشن کنید، دست خود را بالا ببرید.", @@ -736,13 +871,14 @@ "newDeviceAction": "استفاده", "newDeviceAudioTitle": "دستگاه صوتی جدید شناسایی شد", "newDeviceCameraTitle": "دوربین جدید شناسایی شد", - "noiseSuppressionDesktopAudioDescription": "هنگام هم‌رسانی صدای میزکار، امکان نوفه‌زدایی را نمی‌توان فعال کرد. لطفاً آن را غیرفعال کنید و دوباره تلاش کنید.", - "noiseSuppressionFailedTitle": "شروع نوفه‌زدایی ناموفق بود", - "noiseSuppressionNoTrackDescription": "لطفاً ابتدا صدای میکروفون خود را وصل کنید.", - "noiseSuppressionStereoDescription": "درحال حاضر نوفه‌زدایی برای صدای چندآوا پشتیبانی نمی‌شود.", + "nextToSpeak": "شما نفر بعدی در صف صحبت هستید", + "noiseSuppressionDesktopAudioDescription": "هنگام اشتراک‌گذاری صدای میزکار، امکان نویز‌زدایی را نمی‌توان فعال کرد. لطفاً آن را غیرفعال کنید و دوباره تلاش کنید.", + "noiseSuppressionFailedTitle": "شروع نویز‌زدایی ناموفق بود", + "noiseSuppressionStereoDescription": "درحال حاضر نویز‌زدایی برای صدای چندآوا پشتیبانی نمی‌شود.", "oldElectronClientDescription1": "به‌نظر می‌رسد شما از یک نگارش قدیمی کارخواه برنامه استفاده می‌کنید که آسیب‌پذیری‌های امنیتی شناخته‌شده‌ای دارد. لطفاً مطمئن شوید که به‌روزرسانی می‌کنید ", "oldElectronClientDescription2": "آخرین ساخت", "oldElectronClientDescription3": " الان!", + "openChat": "باز کردن گپ", "participantWantsToJoin": "می‌خواهد به جلسه بپیوندد", "participantsWantToJoin": "می‌خواهد به جلسه بپیوندد", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) توسط شرکت‌کنندهٔ دیگری حذف شد", @@ -752,54 +888,81 @@ "raisedHands": "{{participantName}} و {{raisedHands}} نفر بیش‌تر", "reactionSounds": "غیرفعال‌کردن صداها", "reactionSoundsForAll": "غیرفعال‌کردن صداها برای همه", - "screenShareNoAudio": "جعبهٔ هم‌رسانی صدا در صفحهٔ انتخابِ پنجره علامت‌گذاری نشده بود.", - "screenShareNoAudioTitle": "صدای سیستم هم‌رسانی نشد!", - "screenSharingAudioOnlyDescription": "لطفاً توجه داشته باشید که با هم‌رسانی صفحهٔ نمایش، حالت «بهترین کارایی» را تحت تأثیر قرار می‌دهید و از پهنای‌باند بیشتری استفاده خواهید کرد.", + "screenShareNoAudio": "جعبهٔ اشتراک‌گذاری صدا در صفحهٔ انتخابِ پنجره علامت‌گذاری نشده بود.", + "screenShareNoAudioTitle": "صدای سیستم اشتراک‌گذاری نشد!", + "screenSharingAudioOnlyDescription": "لطفاً توجه داشته باشید که با اشتراک‌گذاری صفحهٔ نمایش، حالت «بهترین کارایی» را تحت تأثیر قرار می‌دهید و از پهنای‌باند بیشتری استفاده خواهید کرد.", "screenSharingAudioOnlyTitle": "حالت «بهترین کارایی»", "selfViewTitle": "همیشه می‌توانید نمای خود را از تنظیمات آشکارسازی کنید", "somebody": "یک‌نفر", - "startSilentDescription": "برای فعال‌سازی صدا دوباره به جلسه بپیوندید", + "startSilentDescription": "برای فعال‌سازی صدا دوباره به جلسه بپیوندد", "startSilentTitle": "شما بدون هیچ خروجی برای پخش صدا به جلسه پیوسته‌اید!", "suboptimalBrowserWarning": "ما نگرانیم که تجربهٔ جلسه شما در این‌جا عالی نباشد. ما به‌دنبال راه‌هایی برای بهبود این موضوع هستیم؛ اما تا آن زمان لطفاً از یکی از مرورگرهای کاملاً پشتیبانی‌شده استفاده کنید.", "suboptimalExperienceTitle": "هشدار مرورگر", + "suggestRecordingAction": "شروع", + "suggestRecordingDescription": "آیا می‌خواهید ضبط را شروع کنید؟", + "suggestRecordingTitle": "ضبط این جلسه", "unmute": "وصل‌کردن صدا", + "unmuteScreen": "شروع اشتراک‌گذاری صفحه", + "unmuteVideo": "روشن کردن ویدیو", "videoMutedRemotelyDescription": "همیشه می‌توانید دوباره آن را روشن کنید.", "videoMutedRemotelyTitle": "ویدیوی شما توسط {{participantDisplayName}} غیرفعال شده است", - "videoUnmuteBlockedDescription": "عملیات‌های روشن‌کردن دوربین و هم‌رسانی میزکار به دلیل محدودیت‌های سیستم موقتاً مسدود شده‌اند.", - "videoUnmuteBlockedTitle": "روشن‌کردن دوربین و هم‌رسانی میزکار مسدود شد!", + "videoUnmuteBlockedDescription": "عملیات‌های روشن‌کردن دوربین و اشتراک‌گذاری میزکار به دلیل محدودیت‌های سیستم موقتاً مسدود شده‌اند.", + "videoUnmuteBlockedTitle": "روشن‌کردن دوربین و اشتراک‌گذاری میزکار مسدود شد!", "viewLobby": "مشاهدهٔ اتاق انتظار", - "waitingParticipants": "{{waitingParticipants}} نفر" + "viewParticipants": "مشاهده شرکت‌کنندگان", + "viewVisitors": "مشاهده بینندگان", + "waitingParticipants": "{{waitingParticipants}} نفر", + "waitingVisitors": "بینندگان در انتظار در صف: {{waitingVisitors}}", + "waitingVisitorsTitle": "جلسه هنوز شروع نشده است!", + "whiteboardLimitDescription": "لطفا پیشرفت خود را ذخیره کنید، زیرا به زودی به حد کاربر می‌رسیم و تخته‌سفید بسته می‌شود.", + "whiteboardLimitTitle": "استفاده از تخته‌سفید" }, "participantsPane": { + "absentPeople": "افراد غایب", "actions": { "admit": "پذیرفتن", "admitAll": "پذیرفتن همه", "allow": "به حاضران اجازه دهید:", + "allowDesktop": "اجازه اشتراک‌گذاری صفحه", "allowVideo": "اجازهٔ ویدیو", - "askUnmute": "درخواست وصل‌کردن صدا", + "askDesktop": "درخواست اشتراک‌گذاری صفحه", + "askUnmute": "وصل‌کردن صدا", "audioModeration": "صدای خودشان را وصل کنند", "blockEveryoneMicCamera": "مسدودکردن میکروفون و دوربین همه", + "breakoutRooms": "اتاق‌های جانبی", + "desktopModeration": "شروع اشتراک‌گذاری صفحه", + "goLive": "شروع پخش زنده", "invite": "دعوت از یک‌نفر", - "moreModerationActions": "گزینه‌های مدیریت بیش‌تر", + "lowerAllHands": "پایین آوردن دست همه", + "lowerHand": "پایین آوردن دست", + "moreModerationActions": "انتخاب‌های مدیریت بیش‌تر", "moreModerationControls": "بازرسی‌های مدیریت بیش‌تر", - "moreParticipantOptions": "گزینه‌های شرکت‌کنندهٔ بیش‌تر", - "mute": "بی‌صداکردن", - "muteAll": "بی‌صداکردن همه", - "muteEveryoneElse": "بی‌صداکردن بقیه افراد", + "moreParticipantOptions": "انتخاب‌های شرکت‌کنندهٔ بیش‌تر", + "mute": "قطع صدا", + "muteAll": "قطع صدا همه", + "muteEveryoneElse": "قطع صدا بقیه افراد", "reject": "ردکردن", + "stopDesktop": "توقف اشتراک‌گذاری صفحه", + "stopEveryonesDesktop": "توقف اشتراک‌گذاری صفحه همه", "stopEveryonesVideo": "توقف ویدیوی همه", "stopVideo": "توقف ویدیو", "unblockEveryoneMicCamera": "رفع مسدودی میکروفون و دوربین همه", "videoModeration": "ویدیوی خودشان را شروع کنند" }, - "close": "بستن", + "close": "ببند", "headings": { "lobby": "اتاق انتظار ({{count}})", + "participants": "شركت‌كنندگان", "participantsList": "شرکت‌کنندگان در جلسه ({{count}})", - "visitors": "بینندگان ({{count}})", + "viewerRequests": "درخواست‌های بینندگان {{count}}", + "visitorInQueue": " (در انتظار {{count}})", + "visitorRequests": " (درخواست‌ها {{count}})", + "visitors": "بینندگان {{count}}", + "visitorsList": "بینندگان ({{count}})", "waitingLobby": "در اتاق انتظار ({{count}})" }, "search": "جستجوی شرکت‌کنندگان", + "searchDescription": "شروع به تایپ کنید تا شرکت‌کنندگان را فیلتر کنید", "title": "شركت‌كنندگان" }, "passwordDigitsOnly": "تا {{number}} رقم", @@ -808,12 +971,18 @@ "pinnedParticipant": "شرکت‌کننده سنجاق شده‌است", "polls": { "answer": { + "edit": "ویرایش", + "send": "ارسال", "skip": "ردکردن", "submit": "ارسال" }, "by": "توسط {{ name }}", + "closeButton": "بستن نظرسنجی", "create": { - "addOption": "افزودن گزینه", + "accessibilityLabel": { + "send": "ارسال نظرسنجی" + }, + "addOption": "اضافه کردن گزینه", "answerPlaceholder": "گزینه {{index}}", "cancel": "لغو", "create": "یک نظرسنجی ایجاد کنید", @@ -821,7 +990,7 @@ "pollQuestion": "پرسش نظرسنجی", "questionPlaceholder": "یک سوال بپرسید", "removeOption": "حذف گزینه", - "send": "ارسال" + "save": "ذخیره" }, "errors": { "notUniqueOption": "گزینه ها باید منحصر به فرد باشند" @@ -832,7 +1001,7 @@ }, "results": { "changeVote": "تغییر رأی", - "empty": "هنوز هیچ نظرسنجی‌ای در این جلسه وجود ندارد. یک نظرسنجی از این‌جا شروع کنید!", + "empty": "هنوز هیچ نظرسنجی‌ای در این جلسه وجود ندارد.", "hideDetailedResults": "پنهان‌سازی جزئیات", "showDetailedResults": "نمایش جزئیات", "vote": "رأی" @@ -847,12 +1016,14 @@ "callMe": "با من تماس بگیرید", "callMeAtNumber": "با این شماره با من تماس بگیرید:", "calling": "درحال تماس", - "configuringDevices": "پیکربندی دستگاه‌ها…", + "configuringDevices": "پیکربندی دستگاه‌ها...", "connectedWithAudioQ": "از طریق صدا متصل هستید؟", "connection": { + "failed": "تست اتصال ناموفق بود!", "good": "اتصال اینترنت شما خوب به‌نظر می‌رسد!", "nonOptimal": "اتصال اینترنت شما مناسب نیست", - "poor": "اتصال اینترنت شما ضعیف است" + "poor": "اتصال اینترنت شما ضعیف است", + "running": "در حال اجرای تست اتصال..." }, "connectionDetails": { "audioClipping": "انتظار می‌رود صدای شما بریده‌بریده شود.", @@ -861,14 +1032,15 @@ "goodQuality": "فوق‌العاده! کیفیت صدا و تصویر شما عالی خواهد بود.", "noMediaConnectivity": "نتوانستیم راهی برای ایجاد اتصال صدا و تصویر برای این آزمایش پیدا کنیم. این موضوع معمولاً توسط دیوارهٔ آتش یا NAT ایجاد می‌شود.", "noVideo": "انتظار می‌رود ویدیوی شما به‌شدت بد باشد.", - "undetectable": "اگر همچنان در برقراری ارتباط از طریق مرورگر مشکل دارید، توصیه می‌کنیم مطمئن شوید بلندگو، میکروفن و دوربین شما به دسترسی تنظیم شده‌اند، اجازهٔ دسترسی به میکروفون و دوربین خود را به مرورگرتان داده باشید و همچنین از به‌روز بودن نگارش مرورگر خود مطمئن شوید. اگر با این حال در صورت ادامه مشکل در برقراری تماس، با توسعه‌دهنده یا پشتیبانی برنامه تماس بگیرید.", + "testFailed": "تست اتصال با مشکلات غیرمنتظره‌ای مواجه شد، اما این ممکن است بر تجربه شما تاثیر نگذارد.", + "undetectable": "اگر همچنان در برقراری ارتباط از طریق مرورگر مشکل دارید، توصیه می‌کنیم مطمئن شوید بلندگو، میکروفن و دوربین شما به اجازه تنظیم شده‌اند، اجازهٔ اجازه به میکروفون و دوربین خود را به مرورگرتان داده باشید و همچنین از به‌روز بودن نگارش مرورگر خود مطمئن شوید. اگر با این حال در صورت ادامه مشکل در برقراری تماس، با توسعه‌دهنده یا پشتیبانی برنامه تماس بگیرید.", "veryPoorConnection": "انتظار می‌رود کیفیت تماس شما به‌شدت بد باشد.", "videoFreezing": "انتظار می‌رود تصویر ویدیوی شما ثابت شده و تار شود یا قطع شود.", "videoHighQuality": "انتظار می‌رود ویدیوی شما کیفیت خوبی داشته باشد.", "videoLowQuality": "انتظار می‌رود ویدیوی شما از نظر نرخ بازسازی تصویر و وضوح کیفیت پایینی داشته باشد.", "videoTearing": "انتظار می‌رود ویدیوی شما تار شود یا نواقص دیداری داشته باشد." }, - "copyAndShare": "رونوشت و هم‌رسانی پیوند جلسه", + "copyAndShare": "کپی و اشتراک‌گذاری لینک جلسه", "dialInMeeting": "شماره‌گیری برای پیوستن به جلسه", "dialInPin": "شماره‌های جلسه را شماره‌گیری کرده و این رمز شخصی را وارد نمایید:", "dialing": "شماره‌گیری", @@ -878,7 +1050,7 @@ "errorDialOutFailed": "نمی‌توان شماره‌گیری کرد. تماس ناموفق بود", "errorDialOutStatus": "خطا در دریافت وضعیت شماره‌گیری", "errorMissingName": "لطفاً نام خود را برای پیوستن به جلسه وارد کنید", - "errorNoPermissions": "باید دسترسی میکروفون و دوربین را فعال کنید", + "errorNoPermissions": "باید اجازه میکروفون و دوربین را فعال کنید", "errorStatusCode": "خطا در شماره‌گیری، کد وضعیت: {{status}}", "errorValidation": "اعتبارسنجی شماره ناموفق بود", "iWantToDialIn": "می‌خواهم تماس بگیرم", @@ -888,31 +1060,33 @@ "joinMeetingInLowBandwidthMode": "پیوستن در حالت پهنای باند کم", "joinWithoutAudio": "پیوستن بدون صدا", "keyboardShortcuts": "فعال‌سازی میان‌برهای صفحه‌کلید", - "linkCopied": "پیوند در بریده‌دان رونوشت شد", + "linkCopied": "لینک در کلیپ بورد کپی شد", "lookGood": "میکروفون شما به‌درستی کار می‌کند", "or": "یا", "premeeting": "پیش‌جلسه", "proceedAnyway": "در هر صورت انجام شود", - "screenSharingError": "خطا در هم‌رسانی صفحه:", + "recordingWarning": "شرکت‌کنندگان دیگر ممکن است این تماس را ضبط کنند", + "screenSharingError": "خطا در اشتراک‌گذاری صفحه:", + "showScreen": "فعال‌سازی صفحهٔ پیش‌جلسه", "startWithPhone": "شروع با صدای گوشی", - "unsafeRoomConsent": "من خطر احتمالی را درک می‌کنم؛ می‌خواهم به جلسه بپیوندم", + "unsafeRoomConsent": "من خطر احتمالی را درک می‌کنم؛ می‌خواهم به جلسه بلینکم", "videoOnlyError": "خطای ویدیو:", "videoTrackError": "قطعهٔ ویدیویی ایجاد نشد.", "viewAllNumbers": "مشاهدهٔ همهٔ شماره‌ها" }, "presenceStatus": { "busy": "مشغول", - "calling": "درحال تماس‌گرفتن…", + "calling": "درحال تماس‌گرفتن...", "connected": "متصل‌شده", - "connecting": "درحال اتصال…", - "connecting2": "درحال اتصال*…", + "connecting": "درحال اتصال...", + "connecting2": "درحال اتصال*...", "disconnected": "قطع‌شده", "expired": "منقضی‌شده", "ignored": "نادیده‌گرفته", - "initializingCall": "درحال آغاز تماس…", + "initializingCall": "درحال آغاز تماس...", "invited": "دعوت‌شده", "rejected": "ردشده", - "ringing": "درحال زنگ‌زدن…" + "ringing": "درحال زنگ‌زدن..." }, "profile": { "avatar": "چِهرَک", @@ -941,31 +1115,29 @@ "beta": "نسخهٔ آزمایشی", "busy": "ما درحال آزادسازی منابع ضبط هستیم. لطفاً دقایقی دیگر دوباره تلاش کنید.", "busyTitle": "همهٔ ضبط‌کننده‌ها هم‌اکنون مشغول هستند", - "copyLink": "رونوشت پیوند", + "copyLink": "کپی لینک", "error": "ضبط ناموفق بود. دوباره تلاش کنید.", - "errorFetchingLink": "خطا در واکِشی پیوند ضبط.", + "errorFetchingLink": "خطا در واکِشی لینک ضبط.", "expandedOff": "ضبط متوقف شده است", "expandedOn": "این جلسه هم‌اکنون درحال ضبط‌شدن است.", - "expandedPending": "ضبط درحال شروع است…", - "failedToStart": "شروع ضبط ناموفق بود", - "fileSharingdescription": "هم‌رسانی پیوند ضبط با شرکت‌کنندگان جلسه", + "expandedPending": "ضبط درحال شروع است...", + "failedToStart": "ضبط را شروع کن ناموفق بود", + "fileSharingdescription": "اشتراک‌گذاری لینک ضبط با شرکت‌کنندگان جلسه", "highlight": "علامت‌گذاری", "highlightMoment": "علامت‌گذاری لحظه", "highlightMomentDisabled": "وقتی ضبط شروع می‌شود می‌توانید لحظه‌ها را علامت‌گذاری کنید", "highlightMomentSuccess": "لحظه علامت‌گذاری شد", "highlightMomentSucessDescription": "لحظه‌های علامت‌گذاری‌شدهٔ شما به خلاصهٔ جلسه افزوده خواهند شد.", "inProgress": "ضبط یا پخش زنده درحال انجام است", - "limitNotificationDescriptionNative": "به دلیل درخواست‌های زیاد، ضبط شما به {{limit}} دقیقه محدود خواهد شد. برای ضبط نامحدود از <3>{{app}} استفاده کنید.", - "limitNotificationDescriptionWeb": "به دلیل درخواست‌های زیاد، ضبط شما به {{limit}} دقیقه محدود خواهد شد. برای ضبط نامحدود از {{app}} استفاده کنید.", - "linkGenerated": "ما پیوندی برای ضبط شما ایجاد کرده‌ایم.", + "linkGenerated": "ما لینکی برای ضبط شما ایجاد کرده‌ایم.", "live": "زنده", "localRecordingNoNotificationWarning": "این ضبط به آگاهی دیگر شرکت‌کنندگان نخواهد رسید. لازم است که به آن‌ها بگویید که جلسه ضبط شده است.", "localRecordingNoVideo": "ویدیو ضبط نمی‌شود", "localRecordingStartWarning": "لطفاً پیش از پایان جلسه، ضبط را متوقف کنید تا آن را ذخیره کنید.", "localRecordingStartWarningTitle": "ضبط را متوقف کنید تا ذخیره شود", "localRecordingVideoStop": "توقف ویدیوی شما باعث توقف ضبط محلی نیز خواهد شد. آیا مطمئن هستید که می‌خواهید ادامه دهید؟", - "localRecordingVideoWarning": "برای ضبط ویدیوی خود، باید هنگام شروع ضبط آن را روشن کنید", - "localRecordingWarning": "مطمئن شوید که زبانه کنونی را انتخاب کرده‌اید تا از ویدیو و صدای مناسب استفاده کنید. ضبط درحال حاضر محدود به ۱ گیگابایت است که تقریبا ۱۰۰ دقیقه است.", + "localRecordingVideoWarning": "برای ضبط ویدیوی خود، باید هنگام ضبط را شروع کن آن را روشن کنید", + "localRecordingWarning": "مطمئن شوید که زبانه کنونی را انتخاب کرده‌اید تا از ویدیو و صدای مناسب استفاده کنید.", "loggedIn": "واردشده به عنوان {{userName}}", "noMicPermission": "قطعهٔ میکروفون نمی‌تواند ایجاد شود. لطفاً اجازه استفاده از میکروفون را بدهید.", "noStreams": "هیچ جریان صوتی یا تصویری شناسایی نشد.", @@ -974,14 +1146,18 @@ "on": "ضبط جلسه شروع شد", "onBy": "{{name}} ضبط جلسه را شروع کرد", "onlyRecordSelf": "فقط جریان‌های صدا و تصویر من را ضبط کن", - "pending": "درحال آماده‌شدن برای ضبط جلسه…", + "pending": "درحال آماده‌شدن برای ضبط جلسه...", + "policyError": "شما خیلی سریع سعی کردید ضبط را شروع کنید. لطفا بعدا دوباره تلاش کنید!", "rec": "ضبط", - "saveLocalRecording": "ذخیرهٔ پروندهٔ ضبط به صورت محلی (آزمایشی)", + "recordAudioAndVideo": "ضبط صدا و تصویر", + "recordTranscription": "ضبط رونویسی", + "saveLocalRecording": "ذخیرهٔ پروندهٔ ضبط به صورت محلی (بتا)", "serviceDescription": "ضبط شما توسط خدمتِ ضبط ذخیره خواهد شد", "serviceDescriptionCloud": "ضبط ابری", "serviceDescriptionCloudInfo": "جلسات ضبط‌شده ۲۴ ساعت پس از زمان ضبط به‌طور خودکار پاک می‌شوند.", "serviceName": "خدمتِ ضبط", "sessionAlreadyActive": "این جلسه از قبل درحال ضبط یا پخش زنده است.", + "showAdvancedOptions": "گزینه‌های پیشرفته", "signIn": "ورود", "signOut": "خروج", "surfaceError": "لطفاً زبانه کنونی را انتخاب کنید.", @@ -995,11 +1171,11 @@ "pullToRefresh": "برای تازه‌سازی بکِشید" }, "security": { - "about": "می‌توانید به جلسه خود یک $t(lockRoomPassword) بیافزایید.شرکت‌کنندگان باید پیش از این‌که بتوانند به جلسه بپیوندند، $t(lockRoomPassword) را ارائه کنند.", - "aboutReadOnly": "مدیر جلسه می‌تواند به جلسه یک $t(lockRoomPassword) بیافزاید. شرکت‌کنندگان باید پیش از این‌که بتوانند به جلسه بپیوندند، $t(lockRoomPassword) را ارائه کنند.", - "insecureRoomNameWarningNative": "نام اتاق ناامن است. شرکت‌کنندگان ناخواسته ممکن است به جلسه شما بپیوندند. {{recommendAction}} دربارهٔ تأمین جلسهٔ خود بیش‌تر بیاموزید ", - "insecureRoomNameWarningWeb": "نام اتاق ناامن است. شرکت‌کنندگان ناخواسته ممکن است به جلسه شما بپیوندند. {{recommendAction}} از این‌جا دربارهٔ تأمین جلسهٔ خود بیش‌تر بیاموزید.", - "title": "گزینه‌های امنیت", + "about": "می‌توانید به جلسه خود یک $t(lockRoomPassword) بیافزایید.شرکت‌کنندگان باید پیش از این‌که بتوانند به جلسه بلینکند، $t(lockRoomPassword) را ارائه کنند.", + "aboutReadOnly": "مدیر جلسه می‌تواند به جلسه یک $t(lockRoomPassword) بیافزاید. شرکت‌کنندگان باید پیش از این‌که بتوانند به جلسه بلینکند، $t(lockRoomPassword) را ارائه کنند.", + "insecureRoomNameWarningNative": "نام اتاق ناامن است. شرکت‌کنندگان ناخواسته ممکن است به جلسه شما بلینکند. {{recommendAction}} دربارهٔ تأمین جلسهٔ خود بیش‌تر بیاموزید ", + "insecureRoomNameWarningWeb": "نام اتاق ناامن است. شرکت‌کنندگان ناخواسته ممکن است به جلسه شما بلینکند. {{recommendAction}} از این‌جا دربارهٔ تأمین جلسهٔ خود بیش‌تر بیاموزید.", + "title": "انتخاب‌های امنیت", "unsafeRoomActions": { "meeting": "با استفاده از دکمهٔ امنیت جلسه خود را ایمن کنید.", "prejoin": "استفاده از نامِ جلسهٔ منحصربه‌فردتری را در نظر بگیرید.", @@ -1010,25 +1186,27 @@ "audio": "صدا", "buttonLabel": "تنظیمات", "calendar": { - "about": "امکان اتصال تقویم {{appName}} برای دسترسی ایمن به تقویمتان استفاده می‌شود تا بتواند رویدادهای آینده را بخواند.", + "about": "امکان اتصال تقویم {{appName}} برای اجازه ایمن به تقویمتان استفاده می‌شود تا بتواند رویدادهای آینده را بخواند.", "disconnect": "قطع‌کردن", - "microsoftSignIn": "ورود با حساب کاربری مایکروسافت", - "signedIn": "هم‌اکنون درحال دسترسی به رویدادهای تقویم برای {{email}}. برای توقف دسترسی به رویدادهای تقویم، روی دکمه قطع‌کردن در زیر کلیک کنید.", + "microsoftSignIn": "ورود با حساب شخصی مایکروسافت", + "signedIn": "هم‌اکنون درحال اجازه به رویدادهای تقویم برای {{email}}. برای توقف اجازه به رویدادهای تقویم، روی دکمه قطع‌کردن در زیر کلیک کنید.", "title": "تقویم" }, - "desktopShareFramerate": "نرخ بازسازی تصویر هم‌رسانی میزکار", - "desktopShareHighFpsWarning": "نرخ بازسازی تصویر بالاتر برای هم‌رسانی میزکار ممکن است بر پهنای باند شما تأثیر بگذارد. برای اعمال تنظیمات جدید، باید هم‌رسانی صفحه را راه‌اندازی دوباره کنید.", - "desktopShareWarning": "برای اعمال تنظیمات جدید، باید هم‌رسانی صفحه را راه‌اندازی دوباره کنید.", + "chatWithPermissions": "گپ نیاز به مجوز دارد", + "desktopShareFramerate": "نرخ بازسازی تصویر اشتراک‌گذاری میزکار", + "desktopShareHighFpsWarning": "نرخ بازسازی تصویر بالاتر برای اشتراک‌گذاری میزکار ممکن است بر پهنای باند شما تأثیر بگذارد. برای اعمال تنظیمات جدید، باید اشتراک‌گذاری صفحه را راه‌اندازی دوباره کنید.", + "desktopShareWarning": "برای اعمال تنظیمات جدید، باید اشتراک‌گذاری صفحه را راه‌اندازی دوباره کنید.", "devices": "دستگاه‌ها", "followMe": "هرکسی من را دنبال می‌کند", + "followMeRecorder": "ضبط‌کننده من را دنبال می‌کند", "framesPerSecond": "نرخ بازسازی تصویر در ثانیه", "incomingMessage": "پیام ورودی", "language": "زبان", "loggedIn": "واردشده به عنوان {{name}}", - "maxStageParticipants": "بیشینه تعداد شرکت‌کنندگانی که می‌توانند به صحنه اصلی سنجاق شوند", + "maxStageParticipants": "بیشینه تعداد شرکت‌کنندگانی که می‌توانند به نمای اصلی سنجاق شوند", "microphones": "میکروفون‌ها", "moderator": "مدیر", - "moderatorOptions": "گزینه‌های مدیر", + "moderatorOptions": "انتخاب‌های مدیر", "more": "عمومی", "name": "نام", "noDevice": "هیچ‌یک", @@ -1044,9 +1222,10 @@ "selectMic": "میکروفن", "selfView": "نمای خود", "shortcuts": "میان‌برها", + "showSubtitlesOnStage": "نمایش زیرنویس روی صحنه", "speakers": "بلندگوها", "startAudioMuted": "همه بی‌صدا شروع می‌کنند", - "startReactionsMuted": "بی‌صداکردن صداهای واکنش‌ها برای همه", + "startReactionsMuted": "قطع صدا صداهای واکنش‌ها برای همه", "startVideoMuted": "همه به‌صورت مخفی شروع می‌کنند", "talkWhileMuted": "صحبت‌کردن در حالت بی‌صدا", "title": "تنظیمات", @@ -1058,6 +1237,7 @@ "alertOk": "تأیید", "alertTitle": "هشدار", "alertURLText": "نشانی اینترنتی واردشدهٔ سرور نامعتبر است", + "apply": "اعمال", "buildInfoSection": "اطلاعات ساخت", "conferenceSection": "کنفرانس", "disableCallIntegration": "غیرفعال‌کردن یکپارچگی با تماس", @@ -1068,23 +1248,25 @@ "displayNamePlaceholderText": "برای مثال فلانی", "email": "رایانامه", "emailPlaceholderText": "email@example.com", + "gavatarMessage": "اگر ایمیل شما با حساب Gravatar مرتبط است، از آن برای نمایش تصویر پروفایل شما استفاده خواهیم کرد.", "goTo": "برو به", "header": "تنظیمات", "help": "راهنما", - "links": "پیوندها", + "links": "لینکها", "privacy": "حریم خصوصی", "profileSection": "نمایه", + "sdkVersion": "نسخه SDK", "serverURL": "نشانی اینترنتی سرور", "showAdvanced": "نمایش تنظیمات پیشرفته", "startCarModeInLowBandwidthMode": "شروع حالت خودرو در حالت پهنای باند کم", "startWithAudioMuted": "شروع با حالت بی‌صدا", "startWithVideoMuted": "شروع با حالت بدون تصویر", "terms": "شرایط", - "version": "نگارش" + "version": "نسخه برنامه" }, "share": { - "dialInfoText": "\n\n=====\n\nبه اینترنت دسترسی ندارید و می‌خواهید با تماس تلفنی در جلسه شرکت نمایید؟\n\n{{defaultDialInNumber}}برای شماره‌های تماس برای پیوستن به این جلسه روی این پیوند کلیک کنید\n{{dialInfoPageUrl}}", - "mainText": "برای پیوستن به جلسه روی پیوند زیر کلیک کنید:\n{{roomUrl}}" + "dialInfoText": "\n\n=====\n\nبه اینترنت اجازه ندارید و می‌خواهید با تماس تلفنی در جلسه شرکت نمایید؟\n\n{{defaultDialInNumber}}برای شماره‌های تماس برای پیوستن به این جلسه روی این لینک کلیک کنید\n{{dialInfoPageUrl}}", + "mainText": "برای پیوستن به جلسه روی لینک زیر کلیک کنید:\n{{roomUrl}}" }, "speaker": "بلندگو", "speakerStats": { @@ -1094,11 +1276,13 @@ "fearful": "ترسان", "happy": "خوش‌حال", "hours": "{{count}} ساعت", + "labelTooltip": "تعداد شرکت‌کنندگان: {{count}}", "minutes": "{{count}} دقیقه", "name": "نام", "neutral": "خنثی", "sad": "غمگین", "search": "جستجو", + "searchDescription": "شروع به تایپ کنید تا شرکت‌کنندگان را فیلتر کنید", "searchHint": "جستجوی شرکت‌کنندگان", "seconds": "{{count}} ثانیه", "speakerStats": "آمار شرکت‌کنندگان", @@ -1122,24 +1306,25 @@ "toolbar": { "Settings": "تنظیمات", "accessibilityLabel": { - "Settings": "تغییر وضعیت تنظیمات", + "Settings": "باز کردن تنظیمات", "audioOnly": "تغییر وضعیت حالتِ فقط صدا", "audioRoute": "دستگاه صوتی را انتخاب کنید", "boo": "هُوکردن", - "breakoutRoom": "پیوستن/ترک‌کردن اتاق جانبی", + "breakoutRooms": "اتاق‌های جانبی", "callQuality": "مدیریت کیفیت ویدیو", "carmode": "حالت خودرو", "cc": "تغییر وضعیت زیرنویس‌ها", - "chat": "بازکردن / بستن گپ", + "chat": "بازکردن / ببند گپ", "clap": "کف‌زدن", - "closeChat": "بستن گپ", - "closeMoreActions": "بستن فهرست اقدامات بیش‌تر", - "closeParticipantsPane": "بستن تابلوی شرکت‌کنندگان", + "closeChat": "ببند گپ", + "closeMoreActions": "ببند فهرست اقدامات بیش‌تر", + "closeParticipantsPane": "ببند تابلوی شرکت‌کنندگان", + "closedCaptions": "زیرنویس", "collapse": "فروپاشی", - "document": "تغییر وضعیت سند هم‌رسانی‌شده", - "documentClose": "بستن سند هم‌رسانی‌شده", - "documentOpen": "بازکردن سند هم‌رسانی‌شده", - "download": "بارگیری برنامه", + "document": "تغییر وضعیت سند اشتراک‌گذاری‌شده", + "documentClose": "ببند سند اشتراک‌گذاری‌شده", + "documentOpen": "بازکردن سند اشتراک‌گذاری‌شده", + "download": "دانلود برنامه", "embedMeeting": "جاسازی جلسه", "endConference": "پایان‌دادن جلسه برای همه", "enterFullScreen": "نمای تمام صفحه", @@ -1150,7 +1335,7 @@ "feedback": "گذاشتن بازخورد", "fullScreen": "تغییر وضعیت تمام صفحه", "giphy": "تغییر وضعیت فهرست GIPHY", - "grantModerator": "اعطای دسترسی‌های مدیر", + "grantModerator": "اعطای اجازه‌های مدیر", "hangup": "ترک‌کردن جلسه", "heading": "نوارابزار", "help": "کمک", @@ -1160,45 +1345,47 @@ "laugh": "خنده", "leaveConference": "ترک‌کردن جلسه", "like": "موافق‌بودن", - "linkToSalesforce": "پیوند به Salesforce", + "linkToSalesforce": "لینک به Salesforce", "lobbyButton": "فعال‌کردن/غیرفعال‌کردن حالت اتاق انتظار", "localRecording": "تغییر وضعیت کنترل‌های ضبط محلی", "lockRoom": "تغییر وضعیت گذرواژهٔ جلسه", + "love": "قلب", "lowerHand": "پایین‌آوردن دستتان", "moreActions": "اقدامات بیش‌تر", "moreActionsMenu": "فهرست اقدامات بیش‌تر", - "moreOptions": "نمایش گزینه‌های بیش‌تر", - "mute": "بی‌صداکردن", - "muteEveryone": "بی‌صداکردن همه", - "muteEveryoneElse": "بی‌صداکردن بقیه افراد", + "moreOptions": "نمایش انتخاب‌های بیش‌تر", + "mute": "قطع صدا", + "muteEveryone": "قطع صدا همه", + "muteEveryoneElse": "قطع صدا بقیه افراد", "muteEveryoneElsesVideoStream": "ویدیوی دیگران را متوقف کنید", "muteEveryonesVideoStream": "ویدیوی همه را متوقف کنید", "muteGUMPending": "درحال اتصال میکروفون شما", - "noiseSuppression": "نوفه‌زدایی", + "noiseSuppression": "نویز‌زدایی", "openChat": "بازکردن گپ", - "participants": "بازکردن تابلوی شرکت‌کنندگان", + "participants": "باز کردن پانل شرکت‌کنندگان. {{participantsCount}} شرکت‌کننده", "pip": "تغییر وضعیت حالتِ تصویر در تصویر", "privateMessage": "ارسال پیام خصوصی", "profile": "ویرایش نمایهٔ شما", "raiseHand": "بالابردن دستتان", + "react": "واکنش‌های پیام", "reactions": "واکنش‌ها", "reactionsMenu": "فهرست واکنش‌ها", "recording": "تغییر وضعیت ضبط", "remoteMute": "بی‌صدا کردن شرکت‌کننده", "remoteVideoMute": "غیرفعال‌کردن دوربین شرکت‌کننده", - "security": "گزینه‌های امنیتی", + "security": "انتخاب‌های امنیتی", "selectBackground": "انتخاب پس‌زمینه", "selfView": "تغییر وضعیت نمای مشاهدهٔ خود", "shareRoom": "دعوت از یک‌نفر", - "shareYourScreen": "شروع هم‌رسانی صفحهٔ شما", - "shareaudio": "هم‌رسانی صدا", - "sharedvideo": "هم‌رسانی ویدیو", + "shareYourScreen": "شروع اشتراک‌گذاری صفحهٔ شما", + "shareaudio": "اشتراک‌گذاری صدا", + "sharedvideo": "اشتراک‌گذاری ویدیو", "shortcuts": "تغییر وضعیت میان‌برها", - "show": "نمایش روی صحنه", + "show": "نمایش روی صفحه", "showWhiteboard": "نمایش تخته‌سفید", "silence": "سکوت", "speakerStats": "تغییر وضعیت آمار شرکت‌کنندگان", - "stopScreenSharing": "توقف هم‌رسانی صفحهٔ شما", + "stopScreenSharing": "توقف اشتراک‌گذاری صفحهٔ شما", "stopSharedVideo": "توقف ویدیو", "surprised": "شگفت‌زده", "tileView": "تغییر وضعیت نمای کاشی", @@ -1210,7 +1397,21 @@ "videomuteGUMPending": "درحال اتصال دوربین شما", "videounmute": "شروع دوربین" }, - "addPeople": "افزودن افراد به تماس شما", + "addPeople": "اضافه کردن افراد به تماس شما", + "advancedAudioSettings": { + "aec": { + "label": "حذف اکوی صوتی" + }, + "agc": { + "label": "کنترل خودکار گین" + }, + "ns": { + "label": "حذف نویز" + }, + "stereo": { + "label": "استریو" + } + }, "audioOnlyOff": "غیرفعال‌کردن حالت پهنای باند کم", "audioOnlyOn": "فعال‌کردن حالت پهنای باند کم", "audioRoute": "انتخاب دستگاه صوتی", @@ -1218,25 +1419,27 @@ "authenticate": "احراز هویت", "boo": "هُوکردن", "callQuality": "مدیریت کیفیت ویدیو", - "chat": "بازکردن / بستن گپ", + "chat": "بازکردن / ببند گپ", "clap": "کف‌زدن", - "closeChat": "بستن گپ", - "closeParticipantsPane": "بستن تابلوی شرکت‌کنندگان", - "closeReactionsMenu": "بستن فهرست واکنش‌ها", - "disableNoiseSuppression": "غیرفعال‌کردن نوفه‌زدایی", + "closeChat": "ببند گپ", + "closeParticipantsPane": "ببند تابلوی شرکت‌کنندگان", + "closeReactionsMenu": "ببند فهرست واکنش‌ها", + "closedCaptions": "زیرنویس", + "disableNoiseSuppression": "غیرفعال‌کردن نویز‌زدایی", "disableReactionSounds": "می‌توانید صداهای واکنش را برای این جلسه غیرفعال کنید", - "documentClose": "بستن سند هم‌رسانی‌شده", - "documentOpen": "بازکردن سند هم‌رسانی‌شده", - "download": "بارگیری برنامه", + "documentClose": "ببند سند اشتراک‌گذاری‌شده", + "documentOpen": "بازکردن سند اشتراک‌گذاری‌شده", + "download": "دانلود برنامه", "e2ee": "رمزنگاری سرتاسر", "embedMeeting": "جاسازی جلسه", - "enableNoiseSuppression": "فعال‌کردن نوفه‌زدایی", + "enableNoiseSuppression": "فعال‌کردن نویز‌زدایی", "endConference": "پایان‌دادن جلسه برای همه", "enterFullScreen": "نمای تمام صفحه", "enterTileView": "ورود به نمای کاشی", "exitFullScreen": "خروج از تمام صفحه", "exitTileView": "خروج از نمای کاشی", "feedback": "گذاشتن بازخورد", + "fileSharing": "اشتراک‌گذاری فایل", "giphy": "تغییر وضعیت فهرست GIPHY", "hangup": "ترک‌کردن جلسه", "help": "کمک", @@ -1247,16 +1450,17 @@ "leaveBreakoutRoom": "ترک‌کردن اتاق جانبی", "leaveConference": "ترک‌کردن جلسه", "like": "موافق‌بودن", - "linkToSalesforce": "پیوند به Salesforce", + "linkToSalesforce": "لینک به Salesforce", "lobbyButtonDisable": "غیرفعال‌کردن حالت اتاق انتظار", "lobbyButtonEnable": "فعال‌کردن حالت اتاق انتظار", "login": "ورود", "logout": "خروج", + "love": "قلب", "lowerYourHand": "پایین‌آوردن دستتان", "moreActions": "اقدامات بیش‌تر", - "moreOptions": "گزینه‌های بیش‌تر", - "mute": "بی‌صداکردن", - "muteEveryone": "بی‌صداکردن همه", + "moreOptions": "انتخاب‌های بیش‌تر", + "mute": "قطع صدا", + "muteEveryone": "قطع صدا همه", "muteEveryonesVideo": "غیرفعال‌کردن دوربین همه", "muteGUMPending": "درحال اتصال میکروفون شما", "noAudioSignalDesc": "اگر از روی عمد آن را از تنظیمات سامانه یا سخت‌افزار بی‌صدا نکرده‌اید، دستگاه را تغییر دهید.", @@ -1264,37 +1468,40 @@ "noAudioSignalDialInDesc": "همچنین می‌توانید با این شماره‌ها تماس بگیرید:", "noAudioSignalDialInLinkDesc": "شماره‌های تماس برای پیوستن", "noAudioSignalTitle": "هیچ ورودی از میکروفون شما وجود ندارد!", - "noiseSuppression": "نوفه‌زدایی", - "noisyAudioInputDesc": "به نظر می‌رصد که میکروفون شما نوفه ایجاد می‌کند. لطفا آن را بی‌صدا کنید یا دستگاه را تغییر دهید.", - "noisyAudioInputTitle": "به‌نظر می‌رسد میکروفون شما نوفهٔ زیادی دارد!", + "noiseSuppression": "نویز‌زدایی", + "noisyAudioInputDesc": "به نظر می‌رصد که میکروفون شما نویز ایجاد می‌کند. لطفا آن را بی‌صدا کنید یا دستگاه را تغییر دهید.", + "noisyAudioInputTitle": "به‌نظر می‌رسد میکروفون شما نویزٔ زیادی دارد!", "openChat": "بازکردن گپ", "openReactionsMenu": "بازکردن فهرست واکنش‌ها", "participants": "شركت‌كنندگان", "pip": "ورود به حالتِ تصویر در تصویر", + "polls": "نظرسنجی‌ها", "privateMessage": "ارسال پیام خصوصی", "profile": "ویرایش نمایهٔ شما", "raiseHand": "بالابردن دستتان", "raiseYourHand": "بالابردن دستتان", "reactionBoo": "ارسال واکنش هُوکردن", "reactionClap": "ارسال واکنش کف‌زدن", + "reactionHeart": "ارسال واکنش قلب", "reactionLaugh": "ارسال واکنش خنده", "reactionLike": "ارسال واکنش موافق‌بودن", + "reactionLove": "ارسال واکنش عشق", "reactionSilence": "ارسال واکنش سکوت", "reactionSurprised": "ارسال واکنش شگفت‌زده", "reactions": "واکنش‌ها", - "security": "گزینه‌های امنیتی", + "security": "انتخاب‌های امنیتی", "selectBackground": "انتخاب پس‌زمینه", "shareRoom": "دعوت از یک‌نفر", - "shareaudio": "هم‌رسانی صدا", - "sharedvideo": "هم‌رسانی ویدیو", + "shareaudio": "اشتراک‌گذاری صدا", + "sharedvideo": "اشتراک‌گذاری ویدیو", "shortcuts": "کلیدهای میان‌بر", "showWhiteboard": "نمایش تخته‌سفید", "silence": "سکوت", "speakerStats": "آمار شرکت‌کنندگان", - "startScreenSharing": "شروع هم‌رسانی صفحه", + "startScreenSharing": "شروع اشتراک‌گذاری صفحه", "startSubtitles": "زیرنویس‌ها • {{language}}", - "stopAudioSharing": "توقف هم‌رسانی صدا", - "stopScreenSharing": "توقف هم‌رسانی صفحه", + "stopAudioSharing": "توقف اشتراک‌گذاری صدا", + "stopScreenSharing": "توقف اشتراک‌گذاری صفحه", "stopSharedVideo": "توقف ویدیو", "stopSubtitles": "توقف زیرنویس‌ها", "surprised": "شگفت‌زده", @@ -1309,23 +1516,24 @@ }, "transcribing": { "ccButtonTooltip": "شروع / توقف زیرنویس‌ها", - "error": "ترانویسی انجام نشد. لطفاً دوباره تلاش کنید.", - "expandedLabel": "ترانویسی درحال حاضر روشن است", - "failedToStart": "شروع ترانویسی ناموفق بود", - "labelToolTip": "جلسه درحال ترانویسی است", - "off": "توقف ترانویسی", - "pending": "درحال آماده‌شدن برای ترانویسی جلسه…", - "sourceLanguageDesc": "هم‌اکنون زمان جلسه روی {{sourceLanguage}} تنظیم شده است.
می‌توانید آن را از این‌جا تغییر دهید ", + "expandedLabel": "رونویسی درحال حاضر روشن است", + "failed": "رونویسی ناموفق بود", + "labelToolTip": "جلسه درحال رونویسی است.", + "labelTooltipExtra": "علاوه بر این، یک رونوشت بعدا در دسترس خواهد بود.", + "openClosedCaptions": "باز کردن زیرنویس", + "original": "اصلی", + "sourceLanguageDesc": "هم‌اکنون زمان جلسه روی {{sourceLanguage}} تنظیم شده است.
می‌توانید آن را از این‌جا تغییر دهید ", "sourceLanguageHere": "این‌جا", "start": "شروع نمایش زیرنویس‌ها", "stop": "توقف نمایش زیرنویس‌ها", "subtitles": "زیرنویس‌ها", "subtitlesOff": "خاموش", - "tr": "TR" + "tr": "TR", + "translateTo": "ترجمه به" }, "unpinParticipant": "{{participantName}} - برداشتن سنجاق", "userMedia": { - "grantPermissions": "لطفاً اجازهٔ استفاده از دوربین و میکروفون خود را بدهید." + "grantPermissions": "لطفا برای استفاده از دوربین و میکروفون خود اجازه دهید." }, "videoSIPGW": { "busy": "ما درحال آزادسازی منابع هستیم؛ لطفاً دقایقی دیگر دوباره تلاش کنید.", @@ -1340,7 +1548,7 @@ "videoStatus": { "adjustFor": "تنظیم‌کردن برای:", "audioOnly": "فقط صدا", - "audioOnlyExpanded": "شما در حالت پهنای باند کم هستید. در این حالت فقط صدا و هم‌رسانی صفحهٔ نمایش را دریافت خواهید کرد.", + "audioOnlyExpanded": "شما در حالت پهنای باند کم هستید. در این حالت فقط صدا و اشتراک‌گذاری صفحهٔ نمایش را دریافت خواهید کرد.", "bestPerformance": "بهترین کارایی", "callQuality": "کیفیت ویدیو (۰ برای بهترین کارایی، ۳ برای بالاترین کیفیت)", "hd": "کیفیت بالا", @@ -1353,7 +1561,7 @@ "ldTooltip": "مشاهدهٔ ویدیوی کیفیت پایین", "lowDefinition": "کیفیت پایین", "performanceSettings": "تنظیمات کارایی", - "recording": "ضبط درحال انجام", + "recording": "این جلسه در حال ضبط است.", "sd": "کیفیت متوسط", "sdTooltip": "مشاهدهٔ ویدیوی کیفیت متوسط", "standardDefinition": "کیفیت متوسط", @@ -1361,22 +1569,25 @@ }, "videothumbnail": { "connectionInfo": "اطلاعات اتصال", - "domute": "بی‌صداکردن", - "domuteOthers": "بی‌صداکردن بقیه افراد", + "demote": "تبدیل به بیننده", + "domute": "قطع صدا", + "domuteDesktop": "توقف اشتراک‌گذاری صفحه", + "domuteDesktopOfOthers": "توقف اشتراک‌گذاری صفحه برای همه به‌جز خودتان", + "domuteOthers": "قطع صدا بقیه افراد", "domuteVideo": "غیرفعال‌کردن دوربین", "domuteVideoOfOthers": "غیرفعال‌کردن دوربین بقیه افراد", - "flip": "وارونه‌کردن", - "grantModerator": "اعطای دسترسی‌های مدیر", + "flip": "برگرداندن تصویر", + "grantModerator": "اعطای اجازه‌های مدیر", "hideSelfView": "مخفی‌کردن نمای خود", "kick": "بیرون انداختن", "mirrorVideo": "آینه‌کردن ویدیوی من", "moderator": "مدیر", "mute": "شرکت‌کننده بی‌صدا است", "muted": "بی‌صدا", - "pinToStage": "سنجاق‌کردن روی صحنه", + "pinToStage": "سنجاق‌کردن روی صفحه نمایش", "remoteControl": "شروع / توقف کنترل از راه دور", - "screenSharing": "شرکت‌کننده درحال هم‌رسانی صفحهٔ نمایش خود است", - "show": "نمایش روی صحنه", + "screenSharing": "شرکت‌کننده درحال اشتراک‌گذاری صفحه نمایش خود است", + "show": "نمایش روی صفحه", "showSelfView": "نمایش نمای خود", "unpinFromStage": "برداشتن سنجاق", "verify": "تأییدکردن شرکت‌کننده", @@ -1388,13 +1599,13 @@ "currentBackground": "پس‌زمینه کنونی: {{background}}", "selectBackground": "یک پس‌زمینه را انتخاب کنید" }, - "addBackground": "افزودن پس زمینه", + "addBackground": "اضافه کردن پس زمینه", "apply": "اعمال‌کردن", "backgroundEffectError": "جلوهٔ پس‌زمینه اعمال نشد.", "blur": "تارکردن", "deleteImage": "حذف تصویر", - "desktopShare": "هم‌رسانی میزکار", - "desktopShareError": "هم‌رسانی میزکار ایجاد نشد", + "desktopShare": "اشتراک‌گذاری میزکار", + "desktopShareError": "اشتراک‌گذاری میزکار ایجاد نشد", "image1": "ساحل دریا", "image2": "دیوار سفید خنثی", "image3": "اتاق سفید خالی", @@ -1403,7 +1614,7 @@ "image6": "جنگل ", "image7": "طلوع خورشید", "none": "هیچ‌یک", - "pleaseWait": "لطفاً شکیبا باشید…", + "pleaseWait": "لطفاً شکیبا باشید...", "removeBackground": "حذف پس‌زمینه", "slightBlur": "نیمه‌تار", "title": "پس‌زمینه‌های مجازی", @@ -1413,11 +1624,24 @@ }, "visitors": { "chatIndicator": "(بازدیدکننده)", + "joinMeeting": { + "description": "شما در حال حاضر یک بیننده در این کنفرانس هستید.", + "raiseHand": "دست خود را بالا ببرید", + "title": "پیوستن به جلسه", + "wishToSpeak": "اگر می‌خواهید صحبت کنید، لطفا دست خود را بالا ببرید و منتظر تایید مدیر باشید." + }, "labelTooltip": "تعداد بازدیدکنندگان: {{count}}", "notification": { - "description": "برای شرکت‌کردن دست خود را بالا ببرید", - "title": "شما در این جلسه یک بازدیدکننده هستید" - } + "demoteDescription": "توسط {{actor}} به اینجا فرستاده شده، دست خود را بالا ببرید تا شرکت کنید", + "noMainParticipantsDescription": "یک شرکت‌کننده باید جلسه را شروع کند. لطفا کمی بعد دوباره تلاش کنید.", + "noMainParticipantsTitle": "این جلسه هنوز شروع نشده است.", + "noVisitorLobby": "نمی‌توانید بپیوندید در حالی که لابی برای جلسه فعال است.", + "notAllowedPromotion": "یک شرکت‌کننده باید ابتدا درخواست شما را تایید کند.", + "requestToJoin": "دست بالا رفت", + "requestToJoinDescription": "درخواست شما به مدیران ارسال شد. صبور باشید!", + "title": "شما یک بیننده در جلسه هستید" + }, + "waitingMessage": "به محض زنده شدن جلسه به آن خواهید پیوست!" }, "volumeSlider": "نوار لغزندهٔ صدا", "welcomepage": { @@ -1425,8 +1649,8 @@ "join": "برای پیوستن ضربه بزنید", "roomname": "نام اتاق را وارد کنید" }, - "addMeetingName": "افزودن نام جلسه", - "appDescription": "دست‌به‌کار شوید؛ با کل تیم تماس ویدیویی داشته باشید. در حقیقت، هر کسی که می‌شناسید را دعوت کنید. {{app}} یک راهکار تماس ویدیویی کاملاً رمزگذاری‌شده و ۱۰۰٪ متن‌باز است که می‌توانید در تمام طول روز و هرروز، به صورت رایگان، بدون نیاز به حساب کاربری، از آن استفاده کنید.", + "addMeetingName": "اضافه کردن نام جلسه", + "appDescription": "دست‌به‌کار شوید؛ با کل تیم تماس ویدیویی داشته باشید. در حقیقت، هر کسی که می‌شناسید را دعوت کنید. {{app}} یک راهکار تماس ویدیویی کاملاً رمزگذاری‌شده و ۱۰۰٪ متن‌باز است که می‌توانید در تمام طول روز و هرروز، به صورت رایگان، بدون نیاز به حساب شخصی، از آن استفاده کنید.", "audioVideoSwitch": { "audio": "صدا", "video": "ویدیو" @@ -1441,7 +1665,7 @@ "headerSubtitle": "جلسات امن و با کیفیت بالا", "headerTitle": "Internxt Meet", "info": "اطلاعات شماره‌گیری", - "jitsiOnMobile": "Jitsi روی تلفن همراه - برنامه ما را بارگیری کنید و جلسه‌ای را از هرکجا آغاز کنید", + "jitsiOnMobile": "Jitsi روی تلفن همراه - برنامه ما را دانلود کنید و جلسه‌ای را از هرکجا آغاز کنید", "join": "ایجاد / پیوستن", "logo": { "calendar": "نشان‌وارهٔ تقویم", @@ -1464,7 +1688,7 @@ "reducedUIText": "به {{app}} خوش‌آمدید!", "roomNameAllowedChars": "نام جلسه نباید شامل هیچ‌یک از این نویسه‌ها باشد: ?, &, :, ', \", %, #.", "roomname": "نام اتاق را وارد کنید", - "roomnameHint": "نام یا نشانی اینترنتی اتاقی که می‌خواهید به آن بپیوندید را وارد کند. ممکن است یک نام از خودتان بسازید؛ فقط به افرادی که می‌خواهید با آن‌ها جلسه بگذارید آن را بگویید تا همان نام را وارد کنند.", + "roomnameHint": "نام یا نشانی اینترنتی اتاقی که می‌خواهید به آن بپیوندد را وارد کند. ممکن است یک نام از خودتان بسازید؛ فقط به افرادی که می‌خواهید با آن‌ها جلسه بگذارید آن را بگویید تا همان نام را وارد کنند.", "sendFeedback": "ارسال بازخورد", "settings": "تنظیمات", "startMeeting": "شروع جلسه", @@ -1475,6 +1699,7 @@ "whiteboard": { "accessibilityLabel": { "heading": "تخته‌سفید" - } + }, + "screenTitle": "تخته‌سفید" } } diff --git a/lang/main-fi.json b/lang/main-fi.json index 43411baf4c4f..f5e6b53eeee1 100644 --- a/lang/main-fi.json +++ b/lang/main-fi.json @@ -1,31 +1,85 @@ { "addPeople": { + "accessibilityLabel": { + "meetingLink": "Kokouslinkki: {{url}}" + }, "add": "Kutsu", + "addContacts": "Kutsu yhteystietojasi", + "contacts": "yhteystiedot", + "copyInvite": "Kopioi kokouskutsu", + "copyLink": "Kopioi kokouslinkki", + "copyStream": "Kopioi suoratoiston linkki", "countryNotSupported": "Tätä maata ei vielä tueta.", "countryReminder": "Soitatko ulkomaille? Muista lisätä alkuun maakoodi!", + "defaultEmail": "Oletussähköpostiosoitteesi", "disabled": "Et voi lähettää kutsuja.", - "failedToAdd": "", - "footerText": "Soittaminen on estetty.", - "loading": "Etsitään henkilöitä ja puhelinnumeroita", - "loadingNumber": "Tarkistetaan puhelinnumeroa", - "loadingPeople": "Etsitään kutsuttavia henkilöitä", + "failedToAdd": "Osallistujien lisääminen epäonnistui", + "googleEmail": "Google-sähköposti", + "inviteMoreHeader": "Olet ainoa kokouksessa", + "inviteMoreMailSubject": "Liity {{appName}}-kokoukseen", + "inviteMorePrompt": "Kutsu lisää ihmisiä", + "linkCopied": "Linkki kopioitu leikepöydälle", "noResults": "Ei hakua vastaavia tuloksia", - "noValidNumbers": "Anna puhelinnumero", - "searchNumbers": "Lisää puhelinnumeroita", - "searchPeople": "Etsi henkilöitä", - "searchPeopleAndNumbers": "Etsi henkilöitä tai lisää heidän puhelinnumeronsa", + "outlookEmail": "Outlook-sähköposti", + "phoneNumbers": "puhelinnumerot", + "searching": "Haetaan…", + "shareInvite": "Jaa kokouskutsu", + "shareLink": "Jaa kokouslinkki kutsuaksesi muita", + "shareStream": "Jaa suoratoiston linkki", + "sipAddresses": "sip-osoitteet", "telephone": "Puhelin: {{number}}", - "title": "Kutsu henkilöitä tähän kokoukseen" + "title": "Kutsu henkilöitä tähän kokoukseen", + "yahooEmail": "Yahoo-sähköposti" }, "audioDevices": { "bluetooth": "Bluetooth", + "car": "Auton ääni", "headphones": "Kuulokkeet", + "none": "Ei äänilaitteita saatavilla", "phone": "Puhelin", "speaker": "Puhuja" }, "audioOnly": { "audioOnly": "Vain ääni" }, + "bandwidthSettings": { + "assumedBandwidthBps": "esim. 10000000 tarkoittaa 10 Mbps", + "assumedBandwidthBpsWarning": "Korkeammat arvot voivat aiheuttaa verkko-ongelmia.", + "customValue": "mukautettu arvo", + "customValueEffect": "asettaaksesi todellisen bps-arvon", + "leaveEmpty": "jätä tyhjäksi", + "leaveEmptyEffect": "salliaksesi arvioinnin", + "possibleValues": "Mahdolliset arvot", + "setAssumedBandwidthBps": "Oletettu kaistanleveys (bps)", + "title": "Kaistanleveyden asetukset", + "zeroEffect": "poistaaksesi videon käytöstä" + }, + "breakoutRooms": { + "actions": { + "add": "Lisää pienryhmähuone", + "autoAssign": "Jaa automaattisesti pienryhmiin", + "close": "Sulje", + "join": "Liity", + "leaveBreakoutRoom": "Poistu pienryhmähuoneesta", + "more": "Lisää", + "remove": "Poista", + "rename": "Nimeä uudelleen", + "renameBreakoutRoom": "Nimeä pienryhmähuone uudelleen", + "sendToBreakoutRoom": "Siirrä osallistuja:" + }, + "breakoutList": "Pienryhmälista", + "buttonLabel": "Pienryhmähuoneet", + "defaultName": "Pienryhmähuone #{{index}}", + "hideParticipantList": "Piilota osallistujalista", + "mainRoom": "Päähuone", + "notifications": { + "joined": "Liitytään pienryhmähuoneeseen \"{{name}}\"", + "joinedMainRoom": "Liitytään päähuoneeseen", + "joinedTitle": "Pienryhmähuoneet" + }, + "showParticipantList": "Näytä osallistujalista", + "title": "Pienryhmähuoneet" + }, "calendarSync": { "addMeetingURL": "Lisää kokouslinkki", "confirmAddLink": "Haluatko lisätä tapahtumaan Jitsi-linkin?", @@ -36,25 +90,85 @@ }, "join": "Liity", "joinTooltip": "Liity kokoukseen", - "nextMeeting": "seuraava kokous", + "nextMeeting": "Seuraava kokous", "noEvents": "Aikataulussa ei ole tulevia tapahtumia.", - "ongoingMeeting": "meneillään oleva kokous", + "ongoingMeeting": "Meneillään oleva kokous", "permissionButton": "Avaa asetukset", "permissionMessage": "Kalenterin käyttöoikeus vaaditaan, jotta kokouksesi näkyvät sovelluksessa.", "refresh": "Päivitä kalenteri", "today": "Tänään" }, + "carmode": { + "actions": { + "selectSoundDevice": "Valitse äänilaite" + }, + "labels": { + "buttonLabel": "Autotila", + "title": "Autotila", + "videoStopped": "Videosi on pysäytetty" + } + }, "chat": { + "disabled": "Chatti on poistettu käytöstä.", + "enter": "Liity huoneeseen", "error": "Virhe: viestiä \"{{originalText}}\" ei lähetetty. Syy: {{error}}", + "everyone": "Kaikki", + "fieldPlaceHolder": "Aa", + "fileAccessibleTitle": "{{user}} latasi tiedoston", + "fileAccessibleTitleMe": "minä latasin tiedoston", + "fileDeleted": "Tiedosto poistettiin", + "guestsChatIndicator": "(vieras)", + "lobbyChatMessageTo": "Aulan chat-viesti kohteelle {{recipient}}", + "message": "Viesti", + "messageAccessibleTitle": "{{user}} sanoo:", + "messageAccessibleTitleMe": "minä sanon:", + "messageTo": "Yksityinen viesti kohteelle {{recipient}}", "messagebox": "Kirjoita viesti", + "newMessages": "Uusia viestejä", "nickname": { + "featureChat": "chatti", + "featureClosedCaptions": "tekstitys", + "featureFileSharing": "tiedostojen jako", + "featurePolls": "äänestykset", "popover": "Valitse lempinimi", "title": "Anna chatissä käytettävä lempinimi", - "titleWithPolls": "Anna chatissä käytettävä lempinimi" + "titleWith1Features": "Anna lempinimi käyttääksesi {{feature1}}", + "titleWith2Features": "Anna lempinimi käyttääksesi {{feature1}} ja {{feature2}}", + "titleWith3Features": "Anna lempinimi käyttääksesi {{feature1}}, {{feature2}} ja {{feature3}}", + "titleWith4Features": "Anna lempinimi käyttääksesi {{feature1}}, {{feature2}}, {{feature3}} ja {{feature4}}", + "titleWithCC": "Anna lempinimi käyttääksesi chattiä ja tekstitystä", + "titleWithPolls": "Anna chatissä käytettävä lempinimi", + "titleWithPollsAndCC": "Anna lempinimi käyttääksesi chattiä, äänestyksiä ja tekstitystä", + "titleWithPollsAndCCAndFileSharing": "Anna lempinimi käyttääksesi chattiä, äänestyksiä, tekstitystä ja tiedostoja" }, + "noMessagesMessage": "Kokouksessa ei ole vielä viestejä. Aloita keskustelu täällä!", + "privateNotice": "Yksityinen viesti kohteelle {{recipient}}", "sendButton": "Lähetä", + "smileysPanel": "Emoji-paneeli", + "systemDisplayName": "Järjestelmä", + "tabs": { + "chat": "Chatti", + "closedCaptions": "Tekstitys", + "fileSharing": "Tiedostot", + "polls": "Äänestykset" + }, "title": "Chatti", - "titleWithPolls": "Chatti" + "titleWithCC": "Tekstitys", + "titleWithFeatures": "Chatti ja", + "titleWithFileSharing": "Tied ostot", + "titleWithPolls": "Äänestykset", + "you": "sinä" + }, + "chromeExtensionBanner": { + "buttonText": "Asenna Chrome-laajennus", + "buttonTextEdge": "Asenna Edge-laajennus", + "close": "Sulje", + "dontShowAgain": "Älä näytä tätä uudelleen", + "installExtensionText": "Asenna laajennus Google Calendar- ja Office 365 -integrointia varten" + }, + "closedCaptionsTab": { + "emptyState": "Tekstityksen sisältö tulee saataville, kun valvoja käynnistää sen", + "startClosedCaptionsButton": "Käynnistä tekstitys" }, "connectingOverlay": { "joiningRoom": "Yhdistetään kokoukseen…" @@ -69,22 +183,31 @@ "DISCONNECTED": "Ei yhteyttä", "DISCONNECTING": "Yhteyttä katkaistaan", "ERROR": "Virhe", - "RECONNECTING": "Tapahtui verkkovirhe. Yhdistetään uudelleen…" + "FETCH_SESSION_ID": "Haetaan istuntotunnusta…", + "GET_SESSION_ID_ERROR": "Virhe istuntotunnuksen haussa: {{code}}", + "GOT_SESSION_ID": "Istuntotunnuksen haku… Valmis", + "LOW_BANDWIDTH": "Video kohteelle {{displayName}} on sammutettu kaistanleveyden säästämiseksi" }, "connectionindicator": { "address": "Osoite:", + "audio_ssrc": "Audio SSRC:", "bandwidth": "Arvioitu kaistanleveys:", "bitrate": "Bittinopeus:", "bridgeCount": "Palvelimien määrä: ", + "codecs": "Codecs (A/V): ", "connectedTo": "Yhdistetty kohteeseen:", + "e2eeVerified": "E2EE varmennettu:", "framerate": "Kuvataajuus:", "less": "Näytä vähemmän", "localaddress": "Paikallinen osoite:", "localaddress_plural": "Paikalliset osoitteet:", "localport": "Paikallinen portti:", "localport_plural": "Paikalliset portit:", + "maxEnabledResolution": "lähetä max", "more": "Näytä lisää", + "no": "ei", "packetloss": "Pakettien menetys:", + "participant_id": "Osallistujan tunnus:", "quality": { "good": "Hyvä", "inactive": "Epäaktiivinen", @@ -97,10 +220,15 @@ "remoteport": "Etäportti:", "remoteport_plural": "Etäportit:", "resolution": "Resoluutio:", + "savelogs": "Tallenna lokit", "status": "Yhteys:", "transport": "Kuljetus:", "transport_plural": "Kuljetukset:", - "turn": " (vuoro)" + "video_ssrc": "Video SSRC:", + "yes": "kyllä" + }, + "customPanel": { + "close": "Sulje" }, "dateUtils": { "earlier": "Aikaisemmin", @@ -110,14 +238,28 @@ "deepLinking": { "appNotInstalled": "Tarvitset mobiilisovelluksen {{app}}, jotta voit liittyä tähän kokoukseen puhelimellasi.", "description": "Eikö mitään tapahtunut? Yritimme käynnistää kokouksen työpöytäsovelluksessa {{app}}. Yritä uudelleen tai käynnistä se verkkosovelluksessa {{app}}.", - "descriptionWithoutWeb": "", + "descriptionNew": "Eikö mitään tapahtunut? Yritimme käynnistää kokouksesi {{app}}-työpöytäsovelluksessa.

Voit yrittää uudelleen tai käynnistää kokouksen verkossa.", + "descriptionWithoutWeb": "Eikö mitään tapahtunut? Yritimme käynnistää kokouksesi {{app}}-työpöytäsovelluksessa.", "downloadApp": "Lataa sovellus", + "downloadMobileApp": "Lataa App Storesta", + "ifDoNotHaveApp": "Jos sinulla ei vielä ole sovellusta:", + "ifHaveApp": "Jos sinulla on jo sovellus:", + "joinInApp": "Liity tähän kokoukseen sovelluksella", + "joinInAppNew": "Liity sovelluksessa", + "joinInBrowser": "Liity selaimessa", + "launchMeetingLabel": "Miten haluat liittyä tähän kokoukseen?", "launchWebButton": "Käynnistä verkossa", - "openApp": "Jatka sovellukseen", + "noDesktopApp": "Eikö sinulla ole sovellusta?", + "noMobileApp": "Eikö sinulla ole sovellusta?", + "or": "TAI", + "termsAndConditions": "Jatkamalla hyväksyt käyttöehtomme.", "title": "Käynnistetään kokousta sovelluksessa {{app}}…", - "tryAgainButton": "Yritä uudelleen työpöytäsovelluksella" + "titleNew": "Käynnistetään kokousta…", + "tryAgainButton": "Yritä uudelleen työpöytäsovelluksella", + "unsupportedBrowser": "Näyttää siltä, että käytät selainta, jota emme tue." }, "defaultLink": "esim. {{url}}", + "defaultNickname": "esim. Maija Virtanen", "deviceError": { "cameraError": "Kameran käyttö ei onnistunut", "cameraPermission": "Virhe kameran käyttöoikeuksien hankkimisessa", @@ -125,11 +267,20 @@ "microphonePermission": "Virhe mikrofonin käyttöoikeuksien hankkimisessa" }, "deviceSelection": { + "hid": { + "callControl": "Puhelun hallinta", + "connectedDevices": "Yhdistetyt laitteet:", + "deleteDevice": "Poista laite", + "pairDevice": "Yhdistä laite" + }, "noPermission": "Käyttöoikeuksia ei myönnetty", "previewUnavailable": "Esikatselu ei käytettävissä", "selectADevice": "Valitse laite", "testAudio": "Soita testiääni" }, + "dialIn": { + "screenTitle": "Sisäänsoittotiivistelmä" + }, "dialOut": { "statusMessage": "on nyt tilassa {{status}}" }, @@ -141,21 +292,41 @@ "Remove": "Poista", "Share": "Jaa", "Submit": "Lähetä", - "WaitForHostMsg": "Kokous ei ole vielä alkanut. Jos olet vetäjä, todenna henkilöllisyytesi. Muussa tapauksessa odota vetäjän saapumista.", - "WaitingForHost": "Odotetaan vetäjää…", + "Understand": "Ymmärrän, pidä minut mykistettynä toistaiseksi", + "UnderstandAndUnmute": "Ymmärrän, poista mykistys", + "WaitForHostNoAuthMsg": "Kokous ei ole vielä alkanut, koska vetäjiä ei ole vielä saapunut. Odota hetki.", + "WaitingForHostButton": "Odota vetäjää", + "WaitingForHostTitle": "Odotetaan vetäjää…", "Yes": "Kyllä", "accessibilityLabel": { - "liveStreaming": "Suoratoisto" + "Cancel": "Peruuta (sulje valintaikkuna)", + "Ok": "OK (tallenna ja sulje valintaikkuna)", + "close": "Sulje valintaikkuna", + "liveStreaming": "Suoratoisto", + "sharingTabs": "Jakamisasetukset" }, + "add": "Lisää", + "addMeetingNote": "Lisää huomautus tästä kokouksesta", + "addOptionalNote": "Lisää huomautus (valinnainen):", "allow": "Salli", - "alreadySharedVideoMsg": "", + "allowToggleCameraDialog": "Sallitkokäyttäjän {{initiatorName}} vaihtaa kamerasi suuntaa?", + "allowToggleCameraTitle": "Sallitaanko kameran vaihtaminen?", + "alreadySharedVideoMsg": "Toinen osallistuja jakaa jo videota. Tässä kokouksessa voidaan jakaa vain yksi video kerrallaan.", "alreadySharedVideoTitle": "Vain yksi jaettu video kerrallaan", "applicationWindow": "Sovellusikkuna", + "authenticationRequired": "Todennus vaaditaan", + "cameraCaptureDialog": { + "description": "Ota ja lähetä kuva mobiililaitteesi kameralla", + "ok": "Avaa kamera", + "reject": "Ei nyt", + "title": "Ota kuva" + }, "cameraConstraintFailedError": "Kamerasi ei täytä joitain pakollisia vaatimuksia.", "cameraNotFoundError": "Kameraa ei löydy.", "cameraNotSendingData": "Kameran käyttö ei onnistu. Tarkista, käyttääkö jokin toinen sovellus tätä laitetta, valitse toinen laite asetusvalikosta tai yritä käynnistää sovellus uudelleen.", "cameraNotSendingDataTitle": "Kameran käyttö ei onnistu", "cameraPermissionDeniedError": "Et ole myöntänyt lupaa kamerasi käyttöön. Voit liittyä kokoukseen, mutta muut eivät näe sinua. Korjaa tilanne osoitekentän kamerapainikkeella.", + "cameraTimeoutError": "Videolähteen käynnistäminen epäonnistui. Aikakatkaisu!", "cameraUnknownError": "Kameran käyttö ei onnistu tuntemattomasta syystä.", "cameraUnsupportedResolutionError": "Kamerasi ei tue vaadittua videoresoluutiota.", "close": "Sulje", @@ -164,62 +335,116 @@ "conferenceReloadMsg": "Yritämme korjata tilannetta. Yhdistetään uudelleen {{seconds}} sekunnin kuluttua…", "conferenceReloadTitle": "Valitettavasti jokin meni vikaan.", "confirm": "Vahvista", + "confirmBack": "Takaisin", "confirmNo": "Ei", "confirmYes": "Kyllä", "connectError": "Hups! Jokin meni vikaan, ja kokoukseen yhdistäminen ei onnistunut.", "connectErrorWithMsg": "Hups! Jokin meni pieleen ja kokoukseen yhdistäminen ei onnistunut: {{msg}}", "connecting": "Yhdistetään", "contactSupport": "Ota yhteyttä tukeen", + "copied": "Kopioitu", "copy": "Kopioi", + "demoteParticipantDialog": "Haluatko varmasti siirtää tämän osallistujan katsojaksi?", + "demoteParticipantTitle": "Siirrä katsojaksi", "dismiss": "Hylkää", - "displayNameRequired": "", + "displayNameRequired": "Hei! Mikä on nimesi?", "done": "Valmis", - "enterDisplayName": "", + "e2eeDescription": "Päästä päähän -salaus on tällä hetkellä KOKEELLINEN. Huomaa, että päästä päähän -salauksen käyttöönotto poistaa käytöstä palvelinpuolen palvelut, kuten puhelinosallistumisen. Huomaa myös, että kokous toimii vain ihmisille, jotka liittyvät selaimista, jotka tukevat lisättäviä virtoja.", + "e2eeDisabledDueToMaxModeDescription": "Päästä päähän -salausta ei voi ottaa käyttöön, koska kokouksessa on paljon osallistujia.", + "e2eeLabel": "Ota käyttöön päästä päähän -salaus", + "e2eeWarning": "VAROITUS: Kaikilla tämän kokouksen osallistujilla ei vaikuta olevan tukea päästä päähän -salaukselle. Jos otat sen käyttöön, he eivät voi nähdä eivätkä kuulla sinua.", + "e2eeWillDisableDueToMaxModeDescription": "VAROITUS: Päästä päähän -salaus poistetaan automaattisesti käytöstä, jos kokoukseen liittyy lisää osallistujia.", + "embedMeeting": "Upota kokous", + "enterDisplayName": "Anna nimesi", "error": "Virhe", - "externalInstallationMsg": "Asenna työpöydän jakolaajennuksemme.", - "externalInstallationTitle": "Laajennus vaaditaan", - "goToStore": "Siirry verkkokauppaan", + "errorRoomCreationRestriction": "Yritit liittyä liian nopeasti, palaa hetken kuluttua takaisin.", "gracefulShutdown": "Palvelu on keskeytetty huoltoa varten. Yritä myöhemmin uudelleen.", + "grantModeratorDialog": "Haluatko varmasti myöntää vetäjäoikeudet käyttäjälle {{participantName}}?", + "grantModeratorTitle": "Myönnä vetäjäoikeudet", + "hide": "Piilota", + "hideShareAudioHelper": "Älä näytä tätä valintaikkunaa uudelleen", "incorrectPassword": "Virheellinen käyttäjätunnus tai salasana", - "incorrectRoomLockPassword": "", - "inlineInstallExtension": "Asenna nyt", - "inlineInstallationMsg": "Asenna työpöydän jakolaajennuksemme.", + "incorrectRoomLockPassword": "Virheellinen salasana", "internalError": "Hups! Jokin meni vikaan. Tapahtui seuraava virhe: {{error}}", "internalErrorTitle": "Sisäinen virhe", - "kickMessage": "", + "kickMessage": "Voit ottaa yhteyttä käyttäjään {{participantDisplayName}} saadaksesi lisätietoja.", "kickParticipantButton": "Poista", "kickParticipantDialog": "Haluatko varmasti poistaa tämän osanottajan kokouksesta?", - "kickParticipantTitle": "", - "kickTitle": "", + "kickParticipantTitle": "Poista tämä osallistuja?", + "kickSystemTitle": "Hups! Sinut poistettiin kokouksesta", + "kickTitle": "Hups! {{participantDisplayName}} poisti sinut kokouksesta", + "learnMore": "Lue lisää", + "linkMeeting": "Linkitä kokous", + "linkMeetingTitle": "Linkitä kokous Salesforceen", "liveStreaming": "Suoratoisto", - "liveStreamingDisabledForGuestTooltip": "Vieraat eivät voi aloittaa suoratoistolähetystä.", - "liveStreamingDisabledTooltip": "Suoratoiston aloitus ei ole käytössä.", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ei mahdollista nauhoituksen ollessa käynnissä", + "localUserControls": "Paikallisen käyttäjän hallinta", "lockMessage": "Kokouksen lukitseminen ei onnistunut.", - "lockRoom": "", + "lockRoom": "Lisää kokouksen $t(lockRoomPassword)", "lockTitle": "Lukitus epäonnistui", + "login": "Kirjaudu", + "loginQuestion": "Haluatko varmasti kirjautua sisään ja poistua kokouksesta?", "logoutQuestion": "Haluatko varmasti kirjautua ulos ja lopettaa kokouksen?", "logoutTitle": "Kirjaudu ulos", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", + "maxUsersLimitReached": "Osallistujien enimmäismäärä on saavutettu. Kokous on täynnä. Ota yhteyttä kokouksen omistajaan tai yritä myöhemmin uudelleen!", + "maxUsersLimitReachedTitle": "Osallistujien enimmäismäärä saavutettu", "micConstraintFailedError": "Mikrofonisi ei täytä joitain pakollisia vaatimuksia.", "micNotFoundError": "Mikrofonia ei löytynyt.", - "micNotSendingData": "", - "micNotSendingDataTitle": "", + "micNotSendingData": "Mene tietokoneesi asetuksiin poistaaksesi mikrofonin mykistys ja säätääksesi sen tasoa", + "micNotSendingDataTitle": "Mikrofonisi on mykistetty järjestelmäasetuksista", "micPermissionDeniedError": "Et ole myöntänyt lupaa mikrofonisi käyttöön. Voit liittyä kokoukseen, mutta muut eivät kuule sinua. Korjaa tilanne osoitekentän kamerapainikkeella.", + "micTimeoutError": "Äänilähteen käynnistäminen epäonnistui. Aikakatkaisu!", "micUnknownError": "Mikrofonin käyttö ei onnistu tuntemattomasta syystä.", - "muteParticipantBody": "Et voi poistaa muiden mykistystä, mutta he voivat poistaa oman mykistyksensä milloin tahansa.", + "moderationAudioLabel": "Salli muiden kuin vetäjien poistaa oma mykistyksensä", + "moderationDesktopLabel": "Salli muiden kuin vetäjien jakaa näyttönsä", + "moderationVideoLabel": "Salli muiden kuin vetäjien käynnistää videokameransä", + "muteEveryoneDialog": "Osallistujat voivat poistaa mykistyksensä milloin tahansa.", + "muteEveryoneDialogModerationOn": "Osallistujat voivat lähettää pyynnön puhua milloin tahansa.", + "muteEveryoneElseDialog": "Kun olet mykistänyt heidät, et voi poistaa mykistystä, mutta he voivat poistaa sen itse milloin tahansa.", + "muteEveryoneElseTitle": "Mykistä kaikki paitsi {{whom}}?", + "muteEveryoneElsesDesktopDialog": "Kun jako on pysäytetty, et voi käynnistää sitä uudelleen, mutta he voivat tehdä sen milloin tahansa.", + "muteEveryoneElsesDesktopTitle": "Pysäytä kaikkien näytönjako paitsi käyttäjän {{whom}}?", + "muteEveryoneElsesVideoDialog": "Kun kamera on poistettu käytöstä, et voi käynnistää sitä uudelleen, mutta he voivat käynnistää sen milloin tahansa.", + "muteEveryoneElsesVideoTitle": "Pysäytä kaikkien video paitsi käyttäjän {{whom}}?", + "muteEveryoneSelf": "itsesi", + "muteEveryoneStartMuted": "Kaikki aloittavat tästä lähtien mykistettyinä", + "muteEveryoneTitle": "Mykistä kaikki?", + "muteEveryonesDesktopDialog": "Osallistujat voivat jakaa näyttönsä milloin tahansa.", + "muteEveryonesDesktopDialogModerationOn": "Osallistujat voivat lähettää pyynnön jakaa näyttönsä milloin tahansa.", + "muteEveryonesDesktopTitle": "Pysäytä kaikkien näytönjako?", + "muteEveryonesVideoDialog": "Osallistujat voivat käynnistää videokameran milloin tahansa.", + "muteEveryonesVideoDialogModerationOn": "Osallistujat voivat lähettää pyynnön käynnistää videokameran milloin tahansa.", + "muteEveryonesVideoDialogOk": "Poista käytöstä", + "muteEveryonesVideoTitle": "Pysäytä kaikkien video?", + "muteParticipantBody": "Et voi poistaa heidän mykistystään, mutta he voivat poistaa sen itse milloin tahansa.", "muteParticipantButton": "Mykistä", - "muteParticipantDialog": "Haluatko varmasti mykistää tämän osanottajan? Et voi sen jälkeen poistaa mykistystä, mutta hän voi poistaa sen itse milloin tahansa.", - "muteParticipantTitle": "", - "passwordLabel": "", - "passwordNotSupported": "", - "passwordNotSupportedTitle": "", - "passwordRequired": "", - "popupError": "Selaimesi estää tämä sivuston ponnahdusikkunat. Salli ponnahdusikkunat selaimen suojausasetuksista ja yritä uudelleen.", - "popupErrorTitle": "Ponnahdusikkuna estetty", + "muteParticipantsDesktopBody": "Et voi poistaa muiden mykistystä, mutta he voivat poistaa oman mykistyksensä milloin tahansa.", + "muteParticipantsDesktopBodyModerationOn": "Et voi käynnistää heidän näytönjakoaan, eivätkä he itsekään voi.", + "muteParticipantsDesktopButton": "Pysäytä näytönjako", + "muteParticipantsDesktopDialog": "Haluatko varmasti poistaa tämän osallistujan näytönjaon käytöstä? Et voi käynnistää sitä uudelleen, mutta he voivat tehdä sen milloin tahansa.", + "muteParticipantsDesktopDialogModerationOn": "Haluatko varmasti poistaa tämän osallistujan näytönjaon käytöstä? Et voi käynnistää näyttöä uudelleen, eivätkä he itsekään voi.", + "muteParticipantsDesktopTitle": "Poista tämän osallistujan näytönjako käytöstä?", + "muteParticipantsVideoBody": "Et voi käynnistää kameraa uudelleen, mutta he voivat käynnistää sen milloin tahansa.", + "muteParticipantsVideoBodyModerationOn": "Et voi käynnistää kameraa uudelleen, eivätkä he itsekään voi.", + "muteParticipantsVideoButton": "Pysäytä video", + "muteParticipantsVideoDialog": "Haluatko varmasti sammuttaa tämän osallistujan kameran? Et voi käynnistää kameraa uudelleen, mutta he voivat käynnistää sen milloin tahansa.", + "muteParticipantsVideoDialogModerationOn": "Haluatko varmasti sammuttaa tämän osallistujan kameran? Et voi käynnistää kameraa uudelleen, eivätkä he itsekään voi.", + "muteParticipantsVideoTitle": "Poista tämän osallistujan kamera käytöstä?", + "noDropboxToken": "Ei kelvollista Dropbox-tunnusta", + "password": "Salasana", + "passwordLabel": "Osallistuja on lukinnut kokouksen. Anna $t(lockRoomPassword) liittyäksesi.", + "passwordNotSupported": "Kokouksen $t(lockRoomPassword) asettamista ei tueta.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) ei tuettu", + "passwordRequired": "$t(lockRoomPasswordUppercase) vaaditaan", + "permissionCameraRequiredError": "Kamera-oikeus vaaditaan osallistumiseen videokokouksiin. Myönnä se asetuksista", + "permissionErrorTitle": "Oikeus vaaditaan", + "permissionMicRequiredError": "Mikrofoni-oikeus vaaditaan osallistumiseen äänikokouksiin. Myönnä se asetuksista", + "readMore": "lisää", + "recentlyUsedObjects": "Viimeksi käyttämäsi objektit", "recording": "Nauhoitetaan", - "recordingDisabledForGuestTooltip": "Vieraat eivät voi nauhoittaa.", - "recordingDisabledTooltip": "Nauhoitus ei ole käytössä.", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ei mahdollista suoratoiston ollessa käynnissä", + "recordingInProgressDescription": "Tämä kokous nauhoitetaan ja analysoidaan tekolyn avulla. Äänesi ja videosi on mykistetty. Jos poistat mykistyksen, suostut nauhoitukseen.", + "recordingInProgressTitle": "Nauhoitus käynnissä", "rejoinNow": "Liity nyt uudelleen", "remoteControlAllowedMessage": "{{user}} hyväksyi etäkäyttöpyyntösi!", "remoteControlDeniedMessage": "{{user}} hylkäsi etäkäyttöpyyntösi!", @@ -228,24 +453,56 @@ "remoteControlShareScreenWarning": "Huomaa, että Salli-vaihtoehdon valitsemalla jaat näyttösi!", "remoteControlStopMessage": "Etäkäyttöistunto päättyi!", "remoteControlTitle": "Tietokoneen etäkäyttö", - "removePassword": "", + "remoteUserControls": "Käyttäjän {{username}} etähallinnat", + "removePassword": "Poista $t(lockRoomPassword)", "removeSharedVideoMsg": "Haluatko varmasti poistaa jaetun videon?", "removeSharedVideoTitle": "Poista jaettu video", + "renameBreakoutRoomLabel": "Huoneen nimi", + "renameBreakoutRoomTitle": "Nimeä pienryhmähuone uudelleen", "reservationError": "Varausjärjestelmän virhe", "reservationErrorMsg": "Virhekoodi: {{code}}, viesti: {{msg}}", "retry": "Yritä uudelleen", - "screenSharingFailedToInstall": "Hups! Näytönjakolaajennuksen asennus epäonnistui.", - "screenSharingFailedToInstallTitle": "Näytönjakolaajennuksen asennus epäonnistui", - "screenSharingFirefoxPermissionDeniedError": "Jokin meni vikaan, kun yritimme jakaa näyttösi. Tarkista, että annoit meille siihen luvan. ", - "screenSharingFirefoxPermissionDeniedTitle": "Hups! Näytönjakoa ei voitu aloittaa!", - "screenSharingPermissionDeniedError": "Hups!Jokin meni vikaan näytönjakolaajennuksen käyttöoikeuksissa. Käynnistä uudelleen ja yritä sitten uudelleen.", + "screenSharingAudio": "Jaa ääni", + "screenSharingFailed": "Hups! Jokin meni vikaan, emme onnistuneet aloittamaan näytönjakoa!", + "screenSharingFailedTitle": "Näytönjako epäonnistui!", + "screenSharingPermissionDeniedError": "Hups! Jokin meni vikaan näytönjakooikeuksiesi kanssa. Lataa sivu uudelleen ja yritä uudelleen.", + "searchInSalesforce": "Hae Salesforcesta", + "searchResults": "Hakutulokset ({{count}})", + "searchResultsDetailsError": "Jokin meni vikaan haettaessa omistajan tietoja.", + "searchResultsError": "Jokin meni vikaan haettaessa tietoja.", + "searchResultsNotFound": "Hakutuloksia ei löytynyt.", + "searchResultsTryAgain": "Kokeile vaihtoehtoisia hakusanoja.", + "sendPrivateMessage": "Vastaanotit äskettäin yksityisviestin. Aikoitko vastata yksityisesti vai haluat lähettää viestisi ryhmälle?", + "sendPrivateMessageCancel": "Lähetä ryhmälle", + "sendPrivateMessageOk": "Lähetä yksityisesti", + "sendPrivateMessageTitle": "Lähetetäänkö yksityisesti?", "serviceUnavailable": "Palvelu ei käytettävissä", "sessTerminated": "Puhelu lopetettu", + "sessTerminatedReason": "Kokous on päätetty", + "sessionRestarted": "Puhelu käynnistetty uudelleen yhteysongelman vuoksi.", + "shareAudio": "Jatka", + "shareAudioAltText": "jakaaksesi halutun sisällön, siirry \"Selaimen välilehti\", valitse sisältö, aktivoi \"jaa ääni\" -valintaruutu ja napsauta sitten \"jaa\"-painiketta", + "shareAudioTitle": "Miten jakaa ääni", + "shareAudioWarningD1": "sinun täytyy lopettaa näytönjako ennen äänesi jakamista.", + "shareAudioWarningD2": "sinun täytyy käynnistää näytönjako uudelleen ja valita \"jaa ääni\" -vaihtoehto.", + "shareAudioWarningH1": "Jos haluat jakaa vain äänen:", + "shareAudioWarningTitle": "Sinun täytyy lopettaa näytönjako ennen äänen jakamista", + "shareMediaWarningGenericH2": "Jos haluat jakaa näyttösi ja äänesi", + "shareScreenWarningD1": "sinun täytyy lopettaa äänen jakaminen ennen näyttösi jakamista.", + "shareScreenWarningD2": "sinun täytyy lopettaa äänen jakaminen, aloittaa näytönjako ja valita \"jaa ääni\" -vaihtoehto.", + "shareScreenWarningH1": "Jos haluat jakaa vain näyttösi:", + "shareScreenWarningTitle": "Sinun täytyy lopettaa äänen jakaminen ennen näytön jakamista", + "shareVideoConfirmPlay": "Olet avaamassa ulkoista verkkosivustoa. Haluatko jatkaa?", + "shareVideoConfirmPlayTitle": "{{name}} on jakanut videon kanssasi.", "shareVideoLinkError": "Anna oikea linkki.", + "shareVideoLinkStopped": "Käyttäjän {{name}} video pysäytettiin.", "shareVideoTitle": "Jaa video", "shareYourScreen": "Jaa näyttö", "shareYourScreenDisabled": "Näytönjako ei ole käytössä.", - "shareYourScreenDisabledForGuest": "Vieraat eivät voi jakaa näyttöä.", + "sharedVideoDialogError": "Virhe: Virheellinen tai kielletty URL", + "sharedVideoLinkPlaceholder": "YouTube-linkki tai suora videolinkki", + "show": "Näytä", + "start": "Aloita ", "startLiveStreaming": "Aloita suoratoisto", "startRecording": "Aloita nauhoitus", "startRemoteControlErrorMessage": "Etäkäyttöistunnon aloittamisessa tapahtui virhe!", @@ -257,21 +514,96 @@ "thankYou": "Kiitos sovelluksen {{appName}} käytöstä!", "token": "koodi", "tokenAuthFailed": "Valitettavasti et saa osallistua tähän puheluun.", + "tokenAuthFailedReason": { + "audInvalid": "Virheellinen `aud`-arvo. Sen pitäisi olla `jitsi`.", + "contextNotFound": "`context`-objekti puuttuu hyötykuormasta.", + "expInvalid": "Virheellinen `exp`-arvo.", + "featureInvalid": "Virheellinen ominaisuus: {{feature}}, todennäköisesti ei vielä toteutettu.", + "featureValueInvalid": "Virheellinen arvo ominaisuudelle: {{feature}}.", + "featuresNotFound": "`features`-objekti puuttuu hyötykuormasta.", + "headerNotFound": "Otsikko puuttuu.", + "issInvalid": "Virheellinen `iss`-arvo. Sen pitäisi olla `chat`.", + "kidMismatch": "Avaintunnus (kid) ei täsmää sub:iin.", + "kidNotFound": "Avaintunnus (kid) puuttuu.", + "nbfFuture": "`nbf`-arvo on tulevaisuudessa.", + "nbfInvalid": "Virheellinen `nbf`-arvo.", + "payloadNotFound": "Hyötykuorma puuttuu.", + "tokenExpired": "Tunnus on vanhentunut." + }, "tokenAuthFailedTitle": "Todennus epäonnistui", + "tokenAuthFailedWithReasons": "Valitettavasti et saa osallistua tähän puheluun. Mahdolliset syyt: {{reason}}", + "tokenAuthUnsupported": "Tunnus-URL:ia ei tueta.", "transcribing": "Puhtaaksikirjoitus", - "unlockRoom": "", + "unauthenticatedAccessDisabled": "Tämä puhelu vaatii todennuksen. Kirjaudu sisään jatkaaksesi.", + "unlockRoom": "Poista kokouksen $t(lockRoomPassword)", + "user": "Käyttäjä", + "userIdentifier": "Käyttäjätunnus", "userPassword": "käyttäjän salasana", + "verifyParticipantConfirm": "Ne täsmäävät", + "verifyParticipantDismiss": "Ne eivät täsmää", + "verifyParticipantQuestion": "KOKEELLINEN: Kysy osallistujalta {{participantName}}, näkeekö hän saman sisällön samassa järjestyksessä.", + "verifyParticipantTitle": "Käyttäjän varmennus", + "videoLink": "Videolinkki", + "viewUpgradeOptions": "Näytä päivitysvaihtoehdot", + "viewUpgradeOptionsContent": "Saadaksesi rajattoman pääsyn premium-ominaisuuksiin, kuten nauhoitukseen, tekstityksiin, RTMP-suoratoistoon ja muihin, sinun on päivitettävä tilauksesi.", + "viewUpgradeOptionsTitle": "Löysit premium-ominaisuuden!", + "whiteboardLimitContent": "Valitettavasti samanaikaisten valkotaulun käyttäjien raja on saavutettu.", + "whiteboardLimitReference": "Lisätietoja varten vieraile", + "whiteboardLimitReferenceUrl": "verkkosivuillamme", + "whiteboardLimitTitle": "Valkotaulun käyttö rajoitettu", "yourEntireScreen": "Koko näyttö" }, + "documentSharing": { + "title": "Jaettu asiakirja" + }, + "e2ee": { + "labelToolTip": "Tämän puhelun ääni- ja videoviestintä on päästä päähän salattu" + }, + "embedMeeting": { + "title": "Upota tämä kokous" + }, "feedback": { + "accessibilityLabel": { + "yourChoice": "Valintasi: {{rating}}" + }, "average": "Keskiverto", "bad": "Huono", "detailsLabel": "Kerro lisää.", "good": "Hyvä", "rateExperience": "Arvioi kokouskokemus", + "star": "Star", "veryBad": "Erittäin huono", "veryGood": "Erittäin hyvä" }, + "fileSharing": { + "downloadFailedDescription": "Yritä uudelleen.", + "downloadFailedTitle": "Lataus epäonnistui", + "downloadFile": "Lataa", + "downloadStarted": "Tiedoston lataus aloitettu", + "dragAndDrop": "Vedä ja pudota tiedostot tähän tai mihin tahansa näytöllä", + "fileAlreadyUploaded": "Tiedosto on jo ladattu tähän kokoukseen.", + "fileRemovedByOther": "Tiedostosi '{{ fileName }}' poistettiin", + "fileTooLargeDescription": "Varmista, että tiedosto ei ylitä {{ maxFileSize }}.", + "fileTooLargeTitle": "Valittu tiedosto on liian suuri", + "fileUploadProgress": "Tiedoston lähetyksen edistyminen", + "fileUploadedSuccessfully": "Tiedosto lähetetty onnistuneesti", + "newFileNotification": "{{ participantName }} jakoi tiedoston '{{ fileName }}'", + "removeFile": "Poista", + "removeFileSuccess": "Tiedosto poistettu onnistuneesti", + "uploadDisabled": "Tiedostojen lähettäminen ei ole sallittua. Kysy vetäjältä oikeuksia tähän toimintoon.", + "uploadFailedDescription": "Yritä uudelleen.", + "uploadFailedTitle": "Lähetys epäonnistui", + "uploadFile": "Jaa tiedosto" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Videon pikkukuvat" + } + }, + "giphy": { + "noResults": "Ei tuloksia :(", + "search": "Hae GIPHYä" + }, "incomingCall": { "answer": "Vastaus", "audioCallTitle": "Saapuva puhelu", @@ -281,9 +613,10 @@ }, "info": { "accessibilityLabel": "Näytä tiedot", - "addPassword": "", - "cancelPassword": "", + "addPassword": "Lisää $t(lockRoomPassword)", + "cancelPassword": "Peruuta $t(lockRoomPassword)", "conferenceURL": "Linkki:", + "copyNumber": "Kopioi numero", "country": "Maa", "dialANumber": "Liity kokoukseen soittamalla yhteen näistä numeroista ja antamalla PIN-koodi.", "dialInConferenceID": "PIN:", @@ -293,21 +626,32 @@ "dialInTollFree": "Maksuton", "genericError": "Hupsista, jokin meni vikaan.", "inviteLiveStream": "Katso suora kokouslähetys seuraavasta linkistä: {{url}}", - "invitePhone": "", - "invitePhoneAlternatives": "", + "invitePhone": "Liittyäksesi puhelimella, napauta tätä: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Etsiä eri sisäänsoittonumeroa?\nKatso kokouksen sisäänsoittonumerot: {{url}}\n\n\nJos soitat myös huoneen puhelimella, liity yhdistämättä ääntä: {{silentUrl}}", + "inviteSipEndpoint": "Liittyäksesi SIP-osoitteella, anna tämä: {{sipUri}}", + "inviteTextiOSInviteUrl": "Napsauta seuraavaa linkkiä liittyäksesi: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Jos soitat huoneen puhelimella, käytä tätä linkkiä liittyäksesi yhdistämättä ääntä: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} kutsuu sinut kokoukseen.", + "inviteTextiOSPhone": "Liittyäksesi puhelimella, käytä tätä numeroa: {{number}},,{{conferenceID}}#. Jos etsit eri numeroa, tässä on koko lista: {{didUrl}}.", "inviteURLFirstPartGeneral": "Olet saanut kokouskutsun.", - "inviteURLFirstPartPersonal": "", - "inviteURLSecondPart": "", + "inviteURLFirstPartPersonal": "{{name}} kutsuu sinut kokoukseen.\n", + "inviteURLSecondPart": "\nLiity kokoukseen:\n{{url}}\n", "label": "Kokoustiedot", "liveStreamURL": "Suoratoisto:", "moreNumbers": "Lisää numeroita", "noNumbers": "Ei liittymispuhelinnumeroita.", "noPassword": "Ei yhtään", "noRoom": "Liityttävää huonetta ei valittu.", + "noWhiteboard": "Valkotaulun lataaminen epäonnistui.", "numbers": "Liittymispuhelinnumerot", - "password": "", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Olet saavuttanut tilauksesi rajan.", + "sip": "SIP-osoite", + "sipAudioOnly": "SIP vain ääni -osoite", "title": "Jaa", - "tooltip": "Jaa kokouksen linkki ja liittymissoittotiedot" + "tooltip": "Jaa kokouksen linkki ja liittymissoittotiedot", + "upgradeOptions": "Tarkista päivitysvaihtoehdot osoitteesta", + "whiteboardError": "Virhe valkotaulun lataamisessa. Yritä myöhemmin uudelleen." }, "inlineDialogFailure": { "msg": "Kömmähdimme.", @@ -323,10 +667,12 @@ "searchPlaceholder": "Osanottaja tai puhelinnumero", "send": "Lähetä" }, + "jitsiHome": "{{logo}} Logo, linkki etusivulle", "keyboardShortcuts": { "focusLocal": "Keskity omaan videoon", "focusRemote": "Keskity jonkun muun videoon", "fullScreen": "Näytä tai poista koko näyttö", + "giphyMenu": "Vaihda GIPHY-valikko", "keyboardShortcuts": "Pikanäppäimet", "localRecording": "Näytä tai piilota paikalliset nauhoitusohjaimet", "mute": "Säädä mikrofonin mykistystä", @@ -335,10 +681,15 @@ "showSpeakerStats": "Näytä puhujatilastot", "toggleChat": "Avaa tai sulje chatti", "toggleFilmstrip": "Näytä tai piilota videon pikkukuvat", + "toggleParticipantsPane": "Näytä tai piilota osallistujapaneeli", "toggleScreensharing": "Siirry kameran ja näytön jakamisen välillä", "toggleShortcuts": "Näytä tai piilota pikanäppäimet", "videoMute": "Käynnistä tai pysäytä kamera" }, + "largeVideo": { + "screenIsShared": "Jaat näyttöäsi", + "showMeWhatImSharing": "Näytä minulle, mitä jaan" + }, "liveStreaming": { "busy": "Yritämme vapauttaa suoratoistoresursseja. Yritä uudelleen muutaman minuutin kuluttua.", "busyTitle": "Kaikki suoratoistokanavat ovat juuri nyt varattuja", @@ -354,11 +705,17 @@ "expandedPending": "Suoratoistolähetys on alkamassa…", "failedToStart": "Suoratoiston aloitus ei onnistunut", "getStreamKeyManually": "Suoratoistolähetysten nouto epäonnistui. Hanki suoratoistokoodi YouTubesta.", + "googlePrivacyPolicy": "Googlen tietosuojakäytäntö", + "inProgress": "Nauhoitus tai suoratoisto käynnissä", "invalidStreamKey": "Suoratoistokoodi voi olla virheellinen.", "off": "Suoratoisto päättyi", + "offBy": "{{name}} pysäytti suoratoiston", "on": "Suoratoisto", + "onBy": "{{name}} aloitti suoratoiston", "pending": "Suoratoisto alkamassa…", + "policyError": "Yritit aloittaa suoratoiston liian nopeasti. Yritä myöhemmin uudelleen!", "serviceName": "Suoratoistopalvelu", + "sessionAlreadyActive": "Tämä istunto nauhoitetaan tai suoratoistetaan jo.", "signIn": "Kirjaudu Googlella", "signInCTA": "Kirjaudu sisään tai anna YouTube-suoratoistokoodi.", "signOut": "Kirjaudu ulos", @@ -366,7 +723,46 @@ "start": "Aloita suoratoisto", "streamIdHelp": "Mikä tämä on?", "title": "Suoratoisto", - "unavailableTitle": "Suoratoisto ei käytettävissä" + "unavailableTitle": "Suoratoisto ei käytettävissä", + "youtubeTerms": "YouTuben käyttöehdot" + }, + "lobby": { + "backToKnockModeButton": "Pyydä liittyä", + "chat": "Chatti", + "dialogTitle": "Aulatila", + "disableDialogContent": "Aulatila on tällä hetkellä käytössä. Tämä ominaisuus varmistaa, että ei-toivotut osallistujat eivät voi liittyä kokoukseen. Haluatko poistaa sen käytöstä?", + "disableDialogSubmit": "Poista käytöstä", + "emailField": "Anna sähköpostiosoitteesi", + "enableDialogPasswordField": "Aseta salasana (valinnainen)", + "enableDialogSubmit": "Ota käyttöön", + "enableDialogText": "Aulatila mahdollistaa kokouksesi suojaamisen sallimalla ihmisten liittyvän vasta vetäjän muodollisen hyväksynnän jälkeen.", + "enterPasswordButton": "Anna kokouksen salasana", + "enterPasswordTitle": "Anna salasana liittyäksesi kokoukseen", + "errorMissingPassword": "Anna kokouksen salasana", + "invalidPassword": "Virheellinen salasana", + "joinRejectedMessage": "Liittymispyyntösi hylättiin vetäjän toimesta.", + "joinRejectedTitle": "Liittymispyyntö hylättiin.", + "joinTitle": "Liity kokoukseen", + "joinWithPasswordMessage": "Yritetään liittyä salasanalla, odota hetki…", + "joiningMessage": "Liityt kokoukseen heti, kun joku hyväksyy pyyntösi", + "joiningTitle": "Pyydetään liittyä kokoukseen…", + "joiningWithPasswordTitle": "Liitytään salasanalla…", + "knockButton": "Pyydä liittyä", + "knockTitle": "Joku haluaa liittyä kokoukseen", + "knockingParticipantList": "Kolkuttavien osallistujien lista", + "lobbyChatStartedNotification": "{{moderator}} aloitti aulan chatin käyttäjän {{attendee}} kanssa", + "lobbyChatStartedTitle": "{{moderator}} on aloittanut aulan chatin kanssasi.", + "lobbyClosed": "Aulahuone on suljettu.", + "nameField": "Anna nimesi", + "notificationLobbyAccessDenied": "{{originParticipantName}} on hylännyt käyttäjän {{targetParticipantName}} liittymisen", + "notificationLobbyAccessGranted": "{{originParticipantName}} on sallinut käyttäjän {{targetParticipantName}} liittymisen", + "notificationLobbyDisabled": "{{originParticipantName}} on poistanut aulan käytöstä", + "notificationLobbyEnabled": "{{originParticipantName}} on ottanut aulan käyttöön", + "notificationTitle": "Aula", + "passwordJoinButton": "Liity", + "title": "Aula", + "toggleLabel": "Ota aula käyttöön", + "waitForModerator": "Kokous ei ole vielä alkanut, koska vetäjiä ei ole vielä saapunut. Jos haluat tulla vetäjäksi, kirjaudu sisään. Muussa tapauksessa odota." }, "localRecording": { "clientState": { @@ -392,58 +788,290 @@ "no": "Ei", "participant": "Osanottaja", "participantStats": "Osanottajatilastot", + "selectTabTitle": "🎥 Valitse tämä välilehti nauhoitusta varten", "sessionToken": "Istuntokoodi", "start": "Aloita nauhoitus", "stop": "Lopeta nauhoitus", + "stopping": "Pysäytetään nauhoitus", + "wait": "Odota, kun tallennamme nauhoitustasi", "yes": "Kyllä" }, - "lockRoomPassword": "", - "lockRoomPasswordUppercase": "", + "lockRoomPassword": "salasana", + "lockRoomPasswordUppercase": "Salasana", + "lonelyMeetingExperience": { + "button": "Kutsu muita", + "youAreAlone": "Olet ainoa kokouksessa" + }, "me": "minä", "notify": { + "OldElectronAPPTitle": "Tietoturvahaavoittuvuus!", + "allowAll": "Salli kaikki", + "allowAudio": "Salli ääni", + "allowDesktop": "Salli näytönjako", + "allowVideo": "Salli video", + "allowedUnmute": "Voit poistaa mikrofonisi mykistyksen, käynnistää kameran tai jakaa näyttösi.", + "audioUnmuteBlockedDescription": "Mikrofonin mykistyksen poisto on estetty väliaikaisesti järjestelmärajoitusten vuoksi.", + "audioUnmuteBlockedTitle": "Mikrofonin mykistyksen poisto estetty!", + "chatMessages": "Chattiviestit", "connectedOneMember": "{{name}} liittyi kokoukseen", "connectedThreePlusMembers": "{{name}} ja {{count}} muuta liittyivät kokoukseen", "connectedTwoMembers": "{{first}} ja {{second}} liittyivät kokoukseen", + "connectionFailed": "Yhteys epäonnistui. Yritä uudelleen myöhemmin!", + "dataChannelClosed": "Videon laatu saattaa heikentyä", + "dataChannelClosedDescription": "Silta-kanava on poissa käytöstä, joten videon laatu saattaa rajoittua alimpaan asetukseen.", + "dataChannelClosedDescriptionWithAudio": "Silta-kanava on poissa käytöstä, joten äänen ja videon häiriöitä saattaa esiintyä.", + "dataChannelClosedWithAudio": "Äänen ja videon laatu saattaa heikentyä", + "desktopMutedRemotelyTitle": "Näytönjako on pysäytetty käyttäjän {{participantDisplayName}} toimesta", + "disabledIframe": "Upottaminen on tarkoitettu vain demo-käyttöön, joten tämä puhelu katkeaa {{timeout}} minuutin kuluttua.", + "disabledIframeSecondaryNative": "Domeenin {{domain}} upottaminen on tarkoitettu vain demo-käyttöön, joten tämä puhelu katkeaa {{timeout}} minuutin kuluttua.", + "disabledIframeSecondaryWeb": "Domeenin {{domain}} upottaminen on tarkoitettu vain demo-käyttöön, joten tämä puhelu katkeaa {{timeout}} minuutin kuluttua. Käytä Jitsi as a Service -palvelua tuotantokäyttöön!", "disconnected": "ei yhteyttä", + "displayNotifications": "Näytä ilmoitukset", + "dontRemindMe": "Älä muistuta minua", "focus": "Kokouksen painopiste", "focusFail": "{{component}} ei käytettävissä. Yritä uudelleen {{ms}} sekunnin kuluttua", - "grantedTo": "Valvojan oikeudet myönnetty käyttäjälle {{to}}!", + "gifsMenu": "GIPHY", + "groupTitle": "Ilmoitukset", + "hostAskedUnmute": "Vetäjä haluaisi sinun osallistuvan.", + "invalidTenant": "Virheellinen vuokraaja", + "invalidTenantHyphenDescription": "Käyttämäsi vuokraaja on virheellinen (alkaa tai päättyy merkillä '-').", + "invalidTenantLengthDescription": "Käyttämäsi vuokraaja on liian pitkä.", "invitedOneMember": "{{name}} on kutsuttu", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", + "invitedThreePlusMembers": "{{name}} ja {{count}} muuta on kutsuttu", + "invitedTwoMembers": "{{first}} ja {{second}} on kutsuttu", + "joinMeeting": "Liity", + "kickParticipant": "{{kicked}} poistettiin käyttäjän {{kicker}} toimesta", + "leftOneMember": "{{name}} poistui kokouksesta", + "leftThreePlusMembers": "{{name}} ja moni muu poistuivat kokouksesta", + "leftTwoMembers": "{{first}} ja {{second}} poistuivat kokouksesta", + "linkToSalesforce": "Linkki Salesforceen", + "linkToSalesforceDescription": "Voit linkittää kokousyhteenvedon Salesforce-objektiin.", + "linkToSalesforceError": "Kokouksen linkittäminen Salesforceen epäonnistui", + "linkToSalesforceKey": "Linkitä tämä kokous", + "linkToSalesforceProgress": "Linkitetään kokousta Salesforceen…", + "linkToSalesforceSuccess": "Kokous linkitettiin Salesforceen", + "localRecordingStarted": "{{name}} on aloittanut paikallisen nauhoituksen.", + "localRecordingStopped": "{{name}} on lopettanut paikallisen nauhoituksen.", "me": "Minä", + "moderationInEffectCSDescription": "Nosta käsi, jos haluat jakaa näyttösi.", + "moderationInEffectCSTitle": "Näytönjako on estetty vetäjän toimesta", + "moderationInEffectDescription": "Nosta käsi, jos haluat puhua.", + "moderationInEffectTitle": "Mikrofonisi on mykistetty vetäjän toimesta", + "moderationInEffectVideoDescription": "Nosta käsi, jos haluat käynnistää kamerasi.", + "moderationInEffectVideoTitle": "Kamerasi on estetty vetäjän toimesta", + "moderationRequestFromModerator": "Isäntä haluaisi sinun poistavan mykistyksen", + "moderationRequestFromParticipant": "Haluaa puhua", + "moderationStartedTitle": "Moderointi aloitettu", + "moderationStoppedTitle": "Moderointi pysäytetty", + "moderationToggleDescription": "käyttäjän {{participantDisplayName}} toimesta", "moderator": "Valvojan oikeudet myönnetty!", "muted": "Aloitit keskustelun mykistettynä.", - "mutedRemotelyDescription": "", - "mutedRemotelyTitle": "", + "mutedRemotelyDescription": "Voit aina poistaa mykistyksen, kun olet valmis puhumaan. Mykistä itsesi uudelleen, kun olet valmis, jotta melua ei kuulu kokoukseen.", + "mutedRemotelyTitle": "Sinut mykisti {{participantDisplayName}}", "mutedTitle": "Olet mykistetty!", "newDeviceAction": "Käytä", "newDeviceAudioTitle": "Uusi äänilaite havaittu", "newDeviceCameraTitle": "Uusi kamera havaittu", - "passwordRemovedRemotely": "", - "passwordSetRemotely": "", + "nextToSpeak": "Olet seuraavana jonossa puhumaan", + "noiseSuppressionDesktopAudioDescription": "Lisäkohinanvaimennusta ei voi ottaa käyttöön, kun jaat työpöydän ääntä. Poista se käytöstä ja yritä uudelleen.", + "noiseSuppressionFailedTitle": "Lisäkohinanvaimennuksen käynnistäminen epäonnistui", + "noiseSuppressionStereoDescription": "Lisäkohinanvaimennusta ei tällä hetkellä tueta stereoäänen kanssa.", + "oldElectronClientDescription1": "Näyttää siltä, että käytät vanhaa versiota Jitsi Meet -asiakkaasta, jossa on tunnettuja tietoturvaongelmia. Varmista, että päivität ", + "oldElectronClientDescription2": "uusimpaan versioon", + "oldElectronClientDescription3": " nyt!", + "openChat": "Avaa chatti", + "participantWantsToJoin": "Haluaa liittyä kokoukseen", + "participantsWantToJoin": "Haluavat liittyä kokoukseen", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) poisti toinen osallistuja", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) asetti toinen osallistuja", + "raiseHandAction": "Nosta käsi", "raisedHand": "{{name}} pyytää puheenvuoroa.", + "raisedHands": "{{participantName}} ja {{raisedHands}} muuta henkilöä", + "reactionSounds": "Poista äänet käytöstä", + "reactionSoundsForAll": "Poista äänet käytöstä kaikilta", + "screenShareNoAudio": "Äänen jakamisen valintaruutua ei ollut valittu ikkunan valintaikkunassa.", + "screenShareNoAudioTitle": "Järjestelmän äänen jakaminen ei onnistunut!", + "screenSharingAudioOnlyDescription": "Huomaa, että jakamalla näyttösi vaikutat \"Paras suorituskyky\"-tilaan ja käytät enemmän kaistanleveyttä.", + "screenSharingAudioOnlyTitle": "\"Paras suorituskyky\"-tila", + "selfViewTitle": "Voit aina näyttää itse-näkymän asetuksista", "somebody": "Joku", - "startSilentDescription": "", - "startSilentTitle": "", - "suboptimalExperienceDescription": "Valitettavasti {{appName}} ei taida toimia kovin hyvin täällä. Yritämme löytää parannuskeinoja, mutta sillä välin kannattaa käyttää jotain täysin tuettua selainta.", + "startSilentDescription": "Liity uudelleen kokoukseen ottaaksesi äänen käyttöön", + "startSilentTitle": "Liityit ilman äänilähtöä!", + "suboptimalBrowserWarning": "Valitettavasti kokouskokemuksesi ei tule olemaan kovin hyvä täällä. Etsimme tapoja parantaa tätä, mutta siihen asti yritä käyttää jotakin täysin tuetuista selaimista.", "suboptimalExperienceTitle": "Selainvaroitus", - "unmute": "Poista mykistys" + "suggestRecordingAction": "Aloita", + "suggestRecordingDescription": "Haluatko aloittaa nauhoituksen?", + "suggestRecordingTitle": "Nauhoita tämä kokous", + "unmute": "Poista mykistys", + "unmuteScreen": "Aloita näytönjako", + "unmuteVideo": "Poista videon mykistys", + "videoMutedRemotelyDescription": "Voit aina ottaa sen käyttöön uudelleen.", + "videoMutedRemotelyTitle": "Videosi on sammutettu käyttäjän {{participantDisplayName}} toimesta", + "videoUnmuteBlockedDescription": "Kameran mykistyksen poisto ja työpöydän jako on estetty väliaikaisesti järjestelmärajoitusten vuoksi.", + "videoUnmuteBlockedTitle": "Kameran mykistyksen poisto ja työpöydän jako estetty!", + "viewLobby": "Näytä aula", + "viewParticipants": "Näytä osallistujat", + "viewVisitors": "Näytä katsojat", + "waitingParticipants": "{{waitingParticipants}} henkilöä", + "waitingVisitors": "Jonossa odottavat katsojat: {{waitingVisitors}}", + "waitingVisitorsTitle": "Kokous ei ole vielä käynnissä!", + "whiteboardLimitDescription": "Tallenna työsi, sillä käyttäjäraja saavutetaan pian ja valkotaulu sulkeutuu.", + "whiteboardLimitTitle": "Valkotaulun käyttö" }, "participantsPane": { "actions": { - "muteEveryoneElse": "Mykistä kaikki muut" - } + "admit": "Päästä", + "admitAll": "Päästä kaikki", + "allow": "Salli muille kuin vetäjille:", + "allowDesktop": "Salli näytönjako", + "allowVideo": "Salli video", + "askDesktop": "Pyydä jakamaan näyttöä", + "askUnmute": "Pyydä poistamaan mykistys", + "audioModeration": "Poistaa oman mykistyksensä", + "blockEveryoneMicCamera": "Estä kaikkien mikrofoni ja kamera", + "breakoutRooms": "Pienryhmähuoneet", + "desktopModeration": "Aloittaa näytönjaon", + "goLive": "Aloita suoratoisto", + "invite": "Kutsu joku", + "lowerAllHands": "Laske kaikki kädet", + "lowerHand": "Laske käsi", + "moreModerationActions": "Lisää moderointivaihtoehtoja", + "moreModerationControls": "Lisää moderointihallintoja", + "moreParticipantOptions": "Lisää osallistujavaihtoehtoja", + "mute": "Mykistä", + "muteAll": "Mykistä kaikki", + "muteEveryoneElse": "Mykistä kaikki muut", + "reject": "Hylkää", + "stopDesktop": "Pysäytä näytönjako", + "stopEveryonesDesktop": "Pysäytä kaikkien näytönjako", + "stopEveryonesVideo": "Pysäytä kaikkien video", + "stopVideo": "Pysäytä video", + "unblockEveryoneMicCamera": "Poista kaikkien mikrofoni- ja kameraesto", + "videoModeration": "Käynnistä heidän videokamera" + }, + "close": "Sulje", + "headings": { + "lobby": "Aula ({{count}})", + "participantsList": "Kokouksen osallistujat ({{count}})", + "viewerRequests": "Katsojapyynnöt {{count}}", + "visitorInQueue": " (odottaa {{count}})", + "visitorRequests": " (pyynnöt {{count}})", + "visitors": "Katsojat {{count}}", + "visitorsList": "Katsojat ({{count}})", + "waitingLobby": "Odottaa aulassa ({{count}})" + }, + "search": "Hae osallistujia", + "searchDescription": "Aloita kirjoittaminen suodattaaksesi osallistujia", + "title": "Osallistujat" }, - "passwordDigitsOnly": "", - "passwordSetRemotely": "", + "passwordDigitsOnly": "Enintään {{number}} numeroa", + "passwordSetRemotely": "Asettanut toinen osallistuja", + "pinParticipant": "{{participantName}} - Pin", + "pinnedParticipant": "Osallistuja on kiinnitetty", "polls": { + "answer": { + "edit": "Muokkaa", + "send": "Lähetä", + "skip": "Ohita", + "submit": "Lähetä" + }, + "by": "Tehnyt {{ name }}", + "closeButton": "Sulje äänestys", + "create": { + "accessibilityLabel": { + "send": "Lähetä äänestys" + }, + "addOption": "Lisää vaihtoehto", + "answerPlaceholder": "Vaihtoehto {{index}}", + "cancel": "Peruuta", + "create": "Luo äänestys", + "pollOption": "Äänestysvaihtoehto {{index}}", + "pollQuestion": "Äänestyskysymys", + "questionPlaceholder": "Kysy kysymys", + "removeOption": "Poista vaihtoehto", + "save": "Tallenna" + }, "errors": { "notUniqueOption": "Vaihtoehtojen on oltava ainutlaatuisia" + }, + "notification": { + "description": "Avaa äänestysvälilehti äänestääksesi", + "title": "Uusi äänestys lisättiin tähän kokoukseen" + }, + "results": { + "changeVote": "Vaihda ääntä", + "empty": "Kokouksessa ei ole vielä äänestyksiä.", + "hideDetailedResults": "Piilota tiedot", + "showDetailedResults": "Näytä tiedot", + "vote": "Äänestä" } }, "poweredby": "tukija:", + "prejoin": { + "audioAndVideoError": "Ääni- ja videovirhe:", + "audioDeviceProblem": "Äänilaitteessasi on ongelma", + "audioOnlyError": "Äänivirhe:", + "audioTrackError": "Ääniraidan luominen epäonnistui.", + "callMe": "Soita minulle", + "callMeAtNumber": "Soita minulle tähän numeroon:", + "calling": "Soitetaan", + "configuringDevices": "Määritetään laitteita…", + "connectedWithAudioQ": "Olet yhdistetty äänellä?", + "connection": { + "failed": "Yhteystesti epäonnistui!", + "good": "Internetyhteytesi näyttää hyvältä!", + "nonOptimal": "Internetyhteytesi ei ole optimaalinen", + "poor": "Internetyhteytesi on huono", + "running": "Suoritetaan yhteystestiä…" + }, + "connectionDetails": { + "audioClipping": "Äänesi saattaa pätkiä.", + "audioHighQuality": "Äänesi laatu on erinomainen.", + "audioLowNoVideo": "Äänesi laatu on heikko eikä videota ole.", + "goodQuality": "Mahtavaa! Median laatu tulee olemaan erinomainen.", + "noMediaConnectivity": "Emme löytäneet tapaa muodostaa mediayhteyttä tätä testiä varten. Tämä johtuu yleensä palomuurista tai NAT:sta.", + "noVideo": "Videolaatusi tulee olemaan huono.", + "testFailed": "Yhteytestissä ilmeni odottamattomia ongelmia, mutta tämä ei välttämättä vaikuta kokemukseesi.", + "undetectable": "Jos et vieläkään pysty soittamaan selaimessa, suosittelemme varmistamaan, että kaiuttimet, mikrofoni ja kamera on määritetty oikein, että olet myöntänyt selaimelle oikeudet käyttää mikrofonia ja kameraa ja että selaimesi versio on ajan tasalla. Jos sinulla on edelleen ongelmia, ota yhteyttä sovelluksen kehittäjään.", + "veryPoorConnection": "Puhelun laatu tulee olemaan erittäin huono.", + "videoFreezing": "Videosi saattaa jäätyä, muuttua mustaksi ja pikselöityä.", + "videoHighQuality": "Videon laatu tulee olemaan hyvä.", + "videoLowQuality": "Videon laatu tulee olemaan heikko kuvataajuuden ja resoluution osalta.", + "videoTearing": "Videossasi saattaa olla pikselöitymistä tai visuaalisia artefakteja." + }, + "copyAndShare": "Kopioi ja jaa kokouslinkki", + "dialInMeeting": "Soita kokoukseen", + "dialInPin": "Soita kokoukseen ja syötä PIN-koodi:", + "dialing": "Soitetaan", + "doNotShow": "Älä näytä tätä näyttöä uudelleen", + "errorDialOut": "Ulossoitto epäonnistui", + "errorDialOutDisconnected": "Ulossoitto epäonnistui. Yhteys katkaistu", + "errorDialOutFailed": "Ulossoitto epäonnistui. Puhelu epäonnistui", + "errorDialOutStatus": "Virhe haettaessa ulossoiton tilaa", + "errorMissingName": "Anna nimesi liittyäksesi kokoukseen", + "errorNoPermissions": "Sinun on sallittava mikrofonin ja kameran käyttö", + "errorStatusCode": "Virhe ulossoitossa, tilakoodi: {{status}}", + "errorValidation": "Numeron validointi epäonnistui", + "iWantToDialIn": "Haluan soittaa kokoukseen", + "initiated": "Puhelu aloitettu", + "joinAudioByPhone": "Liity puhelinäänellä", + "joinMeeting": "Liity kokoukseen", + "joinMeetingInLowBandwidthMode": "Liity vähäkaistaisessa tilassa", + "joinWithoutAudio": "Liity ilman ääntä", + "keyboardShortcuts": "Ota pikanäppäimet käyttöön", + "linkCopied": "Linkki kopioitu leikepöydälle", + "lookGood": "Laitteesi toimivat oikein", + "or": "tai", + "premeeting": "Esikokous", + "proceedAnyway": "Jatka joka tapauksessa", + "recordingWarning": "Muut osallistujat saattavat nauhoittaa tätä puhelua", + "screenSharingError": "Näytön jakovirhe:", + "startWithPhone": "Aloita puhelinäänellä", + "unsafeRoomConsent": "Ymmärrän riskit ja haluan liittyä kokoukseen", + "videoOnlyError": "Videovirhe:", + "videoTrackError": "Videoraitaa ei voitu luoda.", + "viewAllNumbers": "katso kaikki numerot" + }, "presenceStatus": { "busy": "Varattu", "calling": "Soitetaan…", @@ -459,41 +1087,100 @@ "ringing": "Soi…" }, "profile": { + "avatar": "avatar", "setDisplayNameLabel": "Määritä näyttönimi", "setEmailInput": "Anna sähköpostiosoite", "setEmailLabel": "Määritä Gravatar-sähköposti", "title": "Profiili" }, + "raisedHand": "Haluaa puhua", + "raisedHandsLabel": "Nostettujen käsien määrä", + "record": { + "already": { + "linked": "Kokous on jo linkitetty tähän Salesforce-objektiin." + }, + "type": { + "account": "Tili", + "contact": "Yhteystieto", + "lead": "Liidi", + "opportunity": "Mahdollisuus", + "owner": "Omistaja" + } + }, "recording": { "authDropboxText": "Lataa Dropboxiin", "availableSpace": "Tilaa jäljellä: {{spaceLeft}} Mt (noin {{duration}} minuuttia nauhoitetta)", "beta": "BEETA", "busy": "Yritämme vapauttaa nauhoitusresursseja. Yritä uudelleen muutaman minuutin kuluttua.", "busyTitle": "Kaikki nauhoittimet ovat juuri nyt varattuja", + "copyLink": "Kopioi linkki", "error": "Nauhoitus epäonnistui. Yritä uudelleen.", + "errorFetchingLink": "Virhe nauhoituslinkin hakemisessa.", "expandedOff": "Nauhoitus päättyi", "expandedOn": "Tätä kokousta nauhoitetaan.", "expandedPending": "Nauhoitus on alkamassa…", "failedToStart": "Nauhoituksen aloitus epäonnistui", "fileSharingdescription": "Jaa nauhoitus kokouksen osanottajille", - "live": "SUORA LÄHETYS", + "highlight": "Korosta", + "highlightMoment": "Korosta hetki", + "highlightMomentDisabled": "Voit korostaa hetkiä kun nauhoitus alkaa", + "highlightMomentSuccess": "Hetki korostettu", + "highlightMomentSucessDescription": "Korostamasi hetki lisätään kokouksen yhteenvetoon.", + "inProgress": "Nauhoitus tai suoratoisto käynnissä", + "linkGenerated": "Olemme luoneet linkin nauhoitukseesi.", + "localRecordingNoNotificationWarning": "Nauhoituksesta ei ilmoiteta muille osallistujille. Sinun täytyy kertoa heille, että kokousta nauhoitetaan.", + "localRecordingNoVideo": "Videota ei nauhoiteta", + "localRecordingStartWarning": "Varmista, että pysäytät nauhoituksen ennen kokouksesta poistumista, jotta se tallennetaan.", + "localRecordingStartWarningTitle": "Pysäytä nauhoitus tallentaaksesi sen", + "localRecordingVideoStop": "Videosi pysäyttäminen pysäyttää myös paikallisen nauhoituksen. Haluatko varmasti jatkaa?", + "localRecordingVideoWarning": "Videosi nauhoittamiseksi sen on oltava päällä nauhoituksen alkaessa", + "localRecordingWarning": "Varmista, että valitset nykyisen välilehden käyttääksesi oikeaa videota ja ääntä.", "loggedIn": "Kirjautunut käyttäjänä {{userName}}", + "noMicPermission": "Mikrofoniraitaa ei voitu luoda. Myönnä lupa mikrofonin käyttöön.", + "noStreams": "Ääni- tai videovirtaa ei havaittu.", "off": "Nauhoitus päättyi", + "offBy": "{{name}} pysäytti nauhoituksen", "on": "Nauhoitetaan", + "onBy": "{{name}} aloitti nauhoituksen", + "onlyRecordSelf": "Nauhoita vain omat ääni- ja videovirtani", "pending": "Kokouksen nauhoitusta valmistellaan…", - "rec": "REC", + "policyError": "Yritit aloittaa nauhoituksen liian nopeasti. Yritä myöhemmin uudelleen!", + "recordAudioAndVideo": "Nauhoita ääni ja video", + "recordTranscription": "Nauhoita transkriptio", + "saveLocalRecording": "Tallenna nauhoitustiedosto paikallisesti (Beta)", "serviceDescription": "Nauhoituspalvelu tallentaa nauhoituksen", + "serviceDescriptionCloud": "Pilvitallenne", + "serviceDescriptionCloudInfo": "Nauhoitetut kokoukset poistetaan automaattisesti 24 tunnin kuluttua nauhoitusajasta.", "serviceName": "Nauhoituspalvelu", + "sessionAlreadyActive": "Tätä istuntoa nauhoitetaan tai suoratoistoon jo.", + "showAdvancedOptions": "Lisäasetukset", "signIn": "Kirjaudu sisään", "signOut": "Kirjaudu ulos", + "surfaceError": "Valitse nykyinen välilehti.", "title": "Nauhoitetaan", "unavailable": "Hups! {{serviceName}} ei ole käytettävissä. Yritämme ratkaista ongelman. Yritä myöhemmin uudelleen.", - "unavailableTitle": "Nauhoitus ei käytettävissä" + "unavailableTitle": "Nauhoitus ei käytettävissä", + "uploadToCloud": "Lataa pilveen" }, + "screenshareDisplayName": "Käyttäjän {{name}} näyttö", "sectionList": { "pullToRefresh": "Päivitä vetämällä" }, + "security": { + "about": "Voit lisätä $t(lockRoomPassword) kokaukseesi. Osallistujien on annettava $t(lockRoomPassword) ennen kuin he voivat liittyä kokoukseen.", + "aboutReadOnly": "Moderaattoriosallistujat voivat lisätä $t(lockRoomPassword) kokoukseen. Osallistujien on annettava $t(lockRoomPassword) ennen kuin he voivat liittyä kokoukseen.", + "insecureRoomNameWarningNative": "Huoneen nimi ei ole turvallinen. Ei-toivotut osallistujat saattavat liittyä kokaukseesi. {{recommendAction}} Lue lisää kokouksesi turvaamisesta ", + "insecureRoomNameWarningWeb": "Huoneen nimi ei ole turvallinen. Ei-toivotut osallistujat saattavat liittyä kokaukseesi. {{recommendAction}} Lue lisää kokouksesi turvaamisesta täältä.", + "title": "Turvallisuusasetukset", + "unsafeRoomActions": { + "meeting": "Harkitse kokouksesi turvaamista käyttämällä turvallisuuspainiketta.", + "prejoin": "Harkitse ainutlaatuisemman kokouksen nimen käyttöä.", + "welcome": "Harkitse ainutlaatuisemman kokouksen nimen käyttöä tai valitse jokin ehdotuksista." + } + }, "settings": { + "audio": "Ääni", + "buttonLabel": "Asetukset", "calendar": { "about": "{{appName}} tarkistaa tulevat tapahtumat kalenteristasi turvallisesti kalenteri-integrointitoimintonsa avulla.", "disconnect": "Katkaise yhteys", @@ -501,52 +1188,105 @@ "signedIn": "Tarkastellaan käyttäjän {{email}} kalenteritapahtumia. Estä tarkastelu napsauttamalla Katkaise yhteys -painiketta.", "title": "Kalenteri" }, + "chatWithPermissions": "Poista chatti käytöstä ei-moderaattoreilta", + "desktopShareFramerate": "Työpöydän jakamisen ruututaajuus", + "desktopShareHighFpsWarning": "Korkeampi työpöydän jakamisen ruututaajuus saattaa vaikuttaa kaistanleveyteesi. Sinun on käynnistettävä näytön jakaminen uudelleen, jotta uudet asetukset tulevat voimaan.", + "desktopShareWarning": "Sinun on käynnistettävä näytön jakaminen uudelleen, jotta uudet asetukset tulevat voimaan.", "devices": "Laitteet", "followMe": "Kaikki seuraavat minua", + "followMeRecorder": "Nauhoitin seuraa minua", + "framesPerSecond": "kuvia sekunnissa", + "incomingMessage": "Tuleva viesti", "language": "Kieli", "loggedIn": "Kirjautunut käyttäjänä {{name}}", + "maxStageParticipants": "Osallistujien enimmäismäärä, jotka voidaan kiinnittää päälavalle", + "microphones": "Mikrofonit", "moderator": "Valvoja", + "moderatorOptions": "Moderaattoriasetukset", "more": "Lisää", "name": "Nimi", "noDevice": "Ei yhtään", + "notifications": "Ilmoitukset", + "participantJoined": "Osallistuja liittyi", + "participantKnocking": "Osallistuja tuli aulaan", + "participantLeft": "Osallistuja poistui", + "playSounds": "Toista ääni", + "reactions": "Kokouksen reaktiot", + "sameAsSystem": "Sama kuin järjestelmä ({{label}})", "selectAudioOutput": "Ääniulostulo", "selectCamera": "Kamera", "selectMic": "Mikrofoni", + "selfView": "Omanäkymä", + "shortcuts": "Pikanäppäimet", + "showSubtitlesOnStage": "Näytä tekstitykset lavalla", + "speakers": "Kaiuttimet", "startAudioMuted": "Kaikki aluksi mykistettyinä", + "startReactionsMuted": "Mykistä reaktioäänet kaikille", "startVideoMuted": "Kaikki aluksi piilotettuina", - "title": "Asetukset" + "talkWhileMuted": "Puhu mykistettynä", + "title": "Asetukset", + "video": "Video" }, "settingsView": { + "advanced": "Lisäasetukset", + "alertCancel": "Peruuta", "alertOk": "OK", "alertTitle": "Varoitus", "alertURLText": "Annettu palvelimen URL on virheellinen", + "apply": "Käytä", "buildInfoSection": "Koontiversion tiedot", "conferenceSection": "Kokous", + "disableCallIntegration": "Poista natiivi puheluintegrointi käytöstä", + "disableCrashReporting": "Poista kaatumisraportointi käytöstä", + "disableCrashReportingWarning": "Haluatko varmasti poistaa kaatumisraportoinnin käytöstä? Asetus tulee voimaan, kun käynnistät sovelluksen uudelleen.", + "disableP2P": "Poista vertaisverkkomoodi käytöstä", "displayName": "Näyttönimi", + "displayNamePlaceholderText": "Esim: Matti Meikäläinen", "email": "Sähköposti", + "emailPlaceholderText": "email@esimerkki.fi", + "gavatarMessage": "Jos sähköpostiosoitteesi on yhdistetty Gravatar-tiliin, käytämme sitä profiilikuvasi näyttämiseen.", + "goTo": "Siirry", "header": "Asetukset", + "help": "Ohje", + "links": "Linkit", + "privacy": "Yksityisyys", "profileSection": "Profiili", + "sdkVersion": "SDK-versio", "serverURL": "Palvelimen URL", + "showAdvanced": "Näytä lisäasetukset", + "startCarModeInLowBandwidthMode": "Aloita autotila matalakaistaisessa tilassa", "startWithAudioMuted": "Aloita ääni mykistettynä", "startWithVideoMuted": "Aloita video mykistettynä", + "terms": "Ehdot", "version": "Versio" }, "share": { - "dialInfoText": "", + "dialInfoText": "\n\n=====\n\nHaluatko vain soittaa puhelimellasi?\n\n{{defaultDialInNumber}}Napsauta tätä linkkiä nähdäksesi tämän kokouksen puhelinnumerot\n{{dialInfoPageUrl}}", "mainText": "Liity kokoukseen seuraavasta linkistä:\n{{roomUrl}}" }, "speaker": "Puhuja", "speakerStats": { + "angry": "Vihainen", + "disgusted": "Inhonnut", + "displayEmotions": "Näytä tunteet", + "fearful": "Pelokas", + "happy": "Onnellinen", "hours": "{{count}} t", + "labelTooltip": "Osallistujien määrä: {{count}}", "minutes": "{{count}} min", "name": "Nimi", + "neutral": "Neutraali", + "sad": "Surullinen", "search": "Etsi", + "searchDescription": "Aloita kirjoittaminen suodattaaksesi osallistujat", "searchHint": "Etsi osallistujia", "seconds": "{{count}} s", "speakerStats": "Puhujatilastot", - "speakerTime": "Puhujan aika" + "speakerTime": "Puhujan aika", + "surprised": "Yllättynyt" }, "startupoverlay": { + "genericTitle": "Kokouksen täytyy käyttää mikrofoniasi ja kameraasi.", "policyText": " ", "title": "{{app}} tarvitsee mikrofoniasi ja kameraasi." }, @@ -555,99 +1295,241 @@ "text": "Yhdistä uudelleen napsauttamalla Liity uudelleen -painiketta.", "title": "Videopuhelu keskeytyi, koska tietokone siirtyi lepotilaan." }, + "termsView": { + "title": "Ehdot" + }, + "toggleTopPanelLabel": "Vaihda yläpaneeli", "toolbar": { "Settings": "Asetukset", "accessibilityLabel": { "Settings": "Säädä asetuksia", "audioOnly": "Säädä Vain ääni -tilaa", "audioRoute": "Valitse äänilaite", - "callQuality": "", + "boo": "Buu", + "breakoutRooms": "Pienryhmähuoneet", + "callQuality": "Hallitse videolaatua", + "carmode": "Autotila", "cc": "Säädä tekstitystä", "chat": "Säädä chatti-ikkunaa", + "clap": "Taputus", + "closeChat": "Sulje chatti", + "closeCustomPanel": "Sulje", + "closeMoreActions": "Sulje lisätoiminnot-valikko", + "closeParticipantsPane": "Sulje osallistujapaneeli", + "closedCaptions": "Tekstitys", + "collapse": "Tiivistä", "document": "Säädä jaettua asiakirjaa", + "documentClose": "Sulje jaettu dokumentti", + "documentOpen": "Avaa jaettu dokumentti", + "download": "Lataa sovelluksemme", + "embedMeeting": "Upota kokous", + "endConference": "Lopeta kokous kaikilta", + "enterFullScreen": "Näytä koko näyttö", + "enterTileView": "Siirry ruutunäkymään", + "exitFullScreen": "Poistu koko näytöstä", + "exitTileView": "Poistu ruutunäkymästä", + "expand": "Laajenna", "feedback": "Anna palautetta", "fullScreen": "Säädä koko näyttöä", + "giphy": "Vaihda GIPHY-valikko", + "grantModerator": "Myönnä moderaattorin oikeudet", "hangup": "Poistu puhelusta", + "heading": "Työkalupalkki", + "help": "Ohje", + "hideWhiteboard": "Piilota valkotaulu", "invite": "Lähetä kutsuja", "kick": "Poista osanottaja kokouksesta", + "laugh": "Naura", + "leaveConference": "Poistu kokouksesta", + "like": "Peukku ylös", + "linkToSalesforce": "Linkitä Salesforceen", + "lobbyButton": "Ota/poista aulatilamoodi käyttöön/käytöstä", "localRecording": "Säädä paikallisia nauhoitusohjaimia", "lockRoom": "Säädä kokouksen salasanaa", + "love": "Sydän", + "lowerHand": "Laske kätesi", "moreActions": "Säädä Lisää toimintoja -valikkoa", "moreActionsMenu": "Lisää toimintoja -valikko", + "moreOptions": "Näytä lisää vaihtoehtoja", "mute": "Säädä äänen mykistystä", + "muteEveryone": "Mykistä kaikki", "muteEveryoneElse": "Mykistä kaikki muut", + "muteEveryoneElsesVideoStream": "Pysäytä kaikkien muiden video", + "muteEveryonesVideoStream": "Pysäytä kaikkien video", + "muteGUMPending": "Yhdistetään mikrofoniasi", + "noiseSuppression": "Ylimääräinen kohinanpoisto", + "openChat": "Avaa chatti", + "participants": "Avaa osallistujapaneeli. {{participantsCount}} osallistujaa", "pip": "Säädä Kuva kuvassa (PiP) -tilaa", + "privateMessage": "Lähetä yksityisviesti", "profile": "Muokkaa profiilia", "raiseHand": "Säädä käden nostoa", + "react": "Viestin reaktiot", + "reactions": "Reaktiot", + "reactionsMenu": "Reaktiot-valikko", "recording": "Säädä nauhoitusta", "remoteMute": "Mykistä osanottaja", + "remoteVideoMute": "Poista osallistujan kamera käytöstä", + "security": "Turvallisuusasetukset", "selectBackground": "Valitse tausta", + "selfView": "Vaihda omanäkymä", "shareRoom": "Kutsu joku", "shareYourScreen": "Säädä näytön jakoa", "sharedvideo": "Säädä videon jakoa", "shortcuts": "Säädä pikanäppäimiä", - "show": "", + "show": "Näytä lavalla", + "showWhiteboard": "Näytä valkotaulu", + "silence": "Hiljaisuus", "speakerStats": "Säädä puhujatilastoja", + "stopScreenSharing": "Lopeta näytön jakaminen", + "stopSharedVideo": "Pysäytä video", + "surprised": "Yllättynyt", "tileView": "Säädä ruudukkonäkymää", "toggleCamera": "Säädä kameraa", - "videoblur": "", - "videomute": "Säädä videon mykistystä" + "toggleFilmstrip": "Vaihda filmiliuska", + "unmute": "Poista mikrofonin mykistys", + "videoblur": "Vaihda videon sumennus", + "videomute": "Säädä videon mykistystä", + "videomuteGUMPending": "Yhdistetään kameraasi", + "videounmute": "Käynnistä kamera" }, "addPeople": "Lisää osanottajia puheluun", + "advancedAudioSettings": { + "aec": { + "label": "Akustisen kaiun poisto" + }, + "agc": { + "label": "Automaattinen vahvistuksen säätö" + }, + "ns": { + "label": "Kohinanpoisto" + }, + "stereo": { + "label": "Stereo" + } + }, "audioOnlyOff": "Poista Vain ääni -tila käytöstä", "audioOnlyOn": "Ota Vain ääni -tila käyttöön", "audioRoute": "Valitse äänilaite", + "audioSettings": "Ääniasetukset", "authenticate": "Todenna", - "callQuality": "", + "boo": "Buu", + "callQuality": "Hallitse videolaatua", "chat": "Avaa/sulje chatti", + "clap": "Taputus", "closeChat": "Sulje chatti", + "closeCustomPanel": "Sulje", + "closeParticipantsPane": "Sulje osallistujapaneeli", + "closeReactionsMenu": "Sulje reaktiot-valikko", + "closedCaptions": "Tekstitys", + "copilot": "Copilot", + "disableNoiseSuppression": "Poista ylimääräinen kohinanpoisto käytöstä", + "disableReactionSounds": "Voit poistaa reaktioäänet käytöstä tässä kokouksessa", "documentClose": "Sulje jaettu asiakirja", "documentOpen": "Avaa jaettu asiakirja", + "download": "Lataa sovelluksemme", + "e2ee": "Päästä päähän -salaus", + "embedMeeting": "Upota kokous", + "enableNoiseSuppression": "Ota ylimääräinen kohinanpoisto käyttöön", + "endConference": "Lopeta kokous kaikilta", "enterFullScreen": "Näytä koko näytössä", "enterTileView": "Siirry ruudukkonäkymään", "exitFullScreen": "Poisti koko näytöstä", "exitTileView": "Poistu ruudukkonäkymästä", "feedback": "Anna palautetta", + "fileSharing": "Tiedostojen jakaminen", + "giphy": "Vaihda GIPHY-valikko", "hangup": "Poistu", + "help": "Ohje", + "hideWhiteboard": "Piilota valkotaulu", "invite": "Lähetä kutsuja", + "joinBreakoutRoom": "Liity pienryhmähuoneeseen", + "laugh": "Naura", + "leaveBreakoutRoom": "Poistu pienryhmähuoneesta", + "leaveConference": "Poistu kokouksesta", + "like": "Peukku ylös", + "linkToSalesforce": "Linkity Salesforceen", + "lobbyButtonDisable": "Poista aulatilamoodi käytöstä", + "lobbyButtonEnable": "Ota aulatilamoodi käyttöön", "login": "Kirjaudu sisään", "logout": "Kirjaudu ulos", + "love": "Sydän", "lowerYourHand": "Laske käsi", "moreActions": "Lisää toimintoja", + "moreOptions": "Lisää vaihtoehtoja", "mute": "Mykistys päällä/pois", + "muteEveryone": "Mykistä kaikki", + "muteEveryonesVideo": "Poista kaikkien kamera käytöstä", + "muteGUMPending": "Yhdistetään mikrofoniasi", + "noAudioSignalDesc": "Jos et tarkoituksella mykistänyt sitä järjestelmäasetuksista tai laitteistosta, harkitse laitteen vaihtamista.", + "noAudioSignalDescSuggestion": "Jos et tarkoituksella mykistänyt sitä järjestelmäasetuksista tai laitteistosta, harkitse ehdotettuun laitteeseen vaihtamista.", + "noAudioSignalDialInDesc": "Voit myös soittaa sisään käyttäen:", + "noAudioSignalDialInLinkDesc": "Sisäänsoittonumerot", + "noAudioSignalTitle": "Mikrofonistasi ei tule signaalia!", + "noiseSuppression": "Ylimääräinen kohinanpoisto", + "noisyAudioInputDesc": "Vaikuttaa siltä, että mikrofonisi tekee ääntä, harkitse mykistämistä tai laitteen vaihtamista.", + "noisyAudioInputTitle": "Mikrofonisi vaikuttaa meluisalta!", "openChat": "Avaa chatti", + "openReactionsMenu": "Avaa reaktiot-valikko", + "participants": "Osallistujat", "pip": "Siirry Kuva kuvassa (PiP) -tilaan", + "polls": "Kyselyt", + "privateMessage": "Lähetä yksityisviesti", "profile": "Muokkaa profiilia", "raiseHand": "Nosta/laske käsi", "raiseYourHand": "Nosta käsi", + "reactionBoo": "Lähetä buu-reaktio", + "reactionClap": "Lähetä taputusreaktio", + "reactionHeart": "Lähetä sydänreaktio", + "reactionLaugh": "Lähetä naurureaktio", + "reactionLike": "Lähetä peukku ylös -reaktio", + "reactionLove": "Lähetä rakkautta-reaktio", + "reactionSilence": "Lähetä hiljaisuusreaktio", + "reactionSurprised": "Lähetä yllättynyttä-reaktio", + "reactions": "Reaktiot", + "security": "Turvallisuusasetukset", + "selectBackground": "Valitse tausta", "shareRoom": "Kutsu joku", + "shareaudio": "Jaa ääni", "sharedvideo": "Jaa video", "shortcuts": "Näytä pikanäppäimet", + "showWhiteboard": "Näytä valkotaulu", + "silence": "Hiljaisuus", "speakerStats": "Puhujatilastot", "startScreenSharing": "Aloita näytön jako", "startSubtitles": "Käynnistä tekstitys", - "startvideoblur": "", + "stopAudioSharing": "Lopeta äänen jakaminen", "stopScreenSharing": "Lopeta näytön jako", "stopSharedVideo": "Pysäytä video", "stopSubtitles": "Lopeta tekstitys", - "stopvideoblur": "", + "surprised": "Yllättynyt", "talkWhileMutedPopup": "Yritätkö puhua? Olet mykistettynä.", "tileViewToggle": "Säädä ruudukkonäkymää", "toggleCamera": "Säädä kameraa", - "videomute": "Käynnistä/pysäytä kamera" + "unmute": "Poista mikrofonin mykistys", + "videoSettings": "Videoasetukset", + "videomute": "Käynnistä/pysäytä kamera", + "videomuteGUMPending": "Yhdistetään kameraasi", + "videounmute": "Käynnistä kamera" }, "transcribing": { "ccButtonTooltip": "Tekstitys päälle/pois", - "error": "Puhtaaksikirjoitus epäonnistui. Yritä uudelleen.", "expandedLabel": "Puhtaaksikirjoitus on käytössä", - "failedToStart": "Puhtaaksikirjoituksen aloitus epäonnistui", + "failed": "Litterointi epäonnistui", "labelToolTip": "Kokousta kirjoitetaan puhtaaksi", - "off": "Puhtaaksikirjoitus päättyi", - "pending": "Kokouksen puhtaaksikirjoitusta valmistellaan…", + "labelTooltipExtra": "Lisäksi litterointi on saatavilla myöhemmin.", + "openClosedCaptions": "Avaa tekstitykset", + "original": "Alkuperäinen", + "sourceLanguageDesc": "Tällä hetkellä kokouksen kieleksi on asetettu {{sourceLanguage}}.
Voit muuttaa sen ", + "sourceLanguageHere": "täältä", "start": "Aloita tekstitys", "stop": "Lopeta tekstitys", - "tr": "TR" + "subtitles": "Tekstitykset", + "subtitlesOff": "Pois", + "tr": "TR", + "translateTo": "Käännä kielelle" }, + "unpinParticipant": "{{participantName}} - Poista kiinnitys", "userMedia": { "grantPermissions": "Myönnä käyttöoikeudet laitteesi kameran ja mikrofonin käyttöön." }, @@ -668,38 +1550,104 @@ "bestPerformance": "Paras suorituskyky", "callQuality": "Videon laatu", "hd": "HD", + "hdTooltip": "Katselee teraväpiirtovideota", "highDefinition": "Teräväpiirto", "highestQuality": "Korkein laatu", "labelTooiltipNoVideo": "Ei videota", "labelTooltipAudioOnly": "Vain ääni -tila käytössä", "ld": "LD", + "ldTooltip": "Katselee matalatarkkuuksista videota", "lowDefinition": "Alhainen kuvanlaatu", - "onlyAudioAvailable": "Vain ääni -tila on käytettävissä", - "onlyAudioSupported": "Tässä selaimessa tuemme vain ääntä.", "performanceSettings": "Suorituskykyasetukset", + "recording": "Tätä kokousta nauhoitetaan.", "sd": "SD", - "standardDefinition": "Vakiopiirto" + "sdTooltip": "Katselee vakiotarkkuuksista videota", + "standardDefinition": "Vakiopiirto", + "streaming": "Suoratoisto käynnissä" }, "videothumbnail": { + "connectionInfo": "Yhteystiedot", + "demote": "Siirrä katsojaksi", "domute": "Mykistä", + "domuteDesktop": "Pysäytä näytön jakaminen", + "domuteDesktopOfOthers": "Pysäytä näytön jakaminen kaikilta muilta", "domuteOthers": "Mykistä kaikki muut", + "domuteVideo": "Poista kamera käytöstä", "domuteVideoOfOthers": "Estä muiden kamera", "flip": "Käännä", + "grantModerator": "Myönnä moderaattorin oikeudet", + "hideSelfView": "Piilota omanäkymä", "kick": "Poista", + "mirrorVideo": "Peilaa videoni", "moderator": "Valvoja", "mute": "Osallistuja on mykistetty", "muted": "Mykistetty", "pinToStage": "Kiinnitä ruutuun", "remoteControl": "Etäkäyttö", + "screenSharing": "Osallistuja jakaa näyttöään", "show": "Näytä ruudulla", + "showSelfView": "Näytä omanäkymä", "unpinFromStage": "Irroita kiinnitys", - "videomute": "" + "verify": "Vahvista osallistuja", + "videoMuted": "Kamera poistettu käytöstä", + "videomute": "Osallistuja on pysäyttänyt kameran" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Nykyinen tausta: {{background}}", + "selectBackground": "Valitse tausta" + }, + "addBackground": "Lisää tausta", + "apply": "Käytä", + "backgroundEffectError": "Taustaefektin käyttö epäonnistui.", + "blur": "Sumennus", + "deleteImage": "Poista kuva", + "desktopShare": "Työpöydän jakaminen", + "desktopShareError": "Työpöydän jakoa ei voitu luoda", + "image1": "Ranta", + "image2": "Valkoinen neutraali seinä", + "image3": "Valkoinen tyhjä huone", + "image4": "Musta lattiavalaisin", + "image5": "Vuori", + "image6": "Metsä ", + "image7": "Auringonnousu", + "none": "Ei mitään", + "pleaseWait": "Odota hetki…", + "removeBackground": "Poista tausta", + "slightBlur": "Puoliksi sumennettu", + "title": "Virtuaalitaustat", + "uploadedImage": "Ladattu kuva {{index}}", + "webAssemblyWarning": "WebAssembly ei tuettu", + "webAssemblyWarningDescription": "WebAssembly poistettu käytöstä tai sitä ei tueta tässä selaimessa" + }, + "visitors": { + "chatIndicator": "(katsoja)", + "joinMeeting": { + "description": "Olet tällä hetkellä katsoja tässä konferenssissa.", + "raiseHand": "Nosta kätesi", + "title": "Liitytään kokoukseen", + "wishToSpeak": "Jos haluat puhua, nosta kätesi alla ja odota moderaattorin hyväksyntää." + }, + "labelTooltip": "Katsojien määrä: {{count}}", + "notification": { + "demoteDescription": "Lähetetty tänne käyttäjän {{actor}} toimesta, nosta kätesi osallistuaksesi", + "noMainParticipantsDescription": "Osallistujan täytyy aloittaa kokous. Yritä hetken kuluttua uudelleen.", + "noMainParticipantsTitle": "Tämä kokous ei ole vielä alkanut.", + "noVisitorLobby": "Et voi liittyä, kun kokouksessa on aula käytössä.", + "notAllowedPromotion": "Osallistujan täytyy ensin hyväksyä pyyntösi.", + "requestToJoin": "Käsi nostettu", + "requestToJoinDescription": "Pyyntösi lähetettiin moderaattoreille. Odota rauhassa!", + "title": "Olet katsoja kokouksessa" + }, + "waitingMessage": "Liityt kokoukseen heti kun se alkaa!" }, + "volumeSlider": "Äänenvoimakkuusliukusäädin", "welcomepage": { "accessibilityLabel": { "join": "Liity napauttamalla", "roomname": "Anna huoneen nimi" }, + "addMeetingName": "Lisää kokouksen nimi", "appDescription": "Anna mennä! Keskustele videochatissä koko tiimin kanssa tai kutsu vaikka kaikki tutut. {{app}} on täysin salattu, avoimen lähdekoodin videokokousratkaisu kokopäiväiseen käyttöön joka päivä. Se on maksuton, eikä vaadi tiliä.", "audioVideoSwitch": { "audio": "Ääni", @@ -707,20 +1655,49 @@ }, "calendar": "Kalenteri", "connectCalendarButton": "Yhdistä oma kalenteri", - "connectCalendarText": "", + "connectCalendarText": "Yhdistä kalenterisi nähdäksesi kaikki kokouksesi sovelluksessa {{app}}. Lisäksi lisää {{provider}}-kokoukset kalenteriisi ja aloita ne yhdellä napsautuksella.", "enterRoomTitle": "Aloita uusi kokous", + "getHelp": "Hanki apua", "go": "ALOITA", + "goSmall": "ALOITA", + "headerSubtitle": "Turvalliset ja laadukkaat kokoukset", + "headerTitle": "Jitsi Meet", "info": "Tiedot", + "jitsiOnMobile": "Jitsi mobiilissa – lataa sovelluksemme ja aloita kokous missä tahansa", "join": "LIITY", + "logo": { + "calendar": "Kalenterin logo", + "desktopPreviewThumbnail": "Työpöydän esikatselun pikkukuva", + "googleLogo": "Googlen logo", + "logoDeepLinking": "Jitsi meet -logo", + "microsoftLogo": "Microsoftin logo", + "policyLogo": "Käytännön logo" + }, + "meetingsAccessibilityLabel": "Kokoukset", + "mobileDownLoadLinkAndroid": "Lataa mobiilisovellus Androidille", + "mobileDownLoadLinkFDroid": "Lataa mobiilisovellus F-Droidille", + "mobileDownLoadLinkIos": "Lataa mobiilisovellus iOS:lle", + "moderatedMessage": "Tai varaa kokous-URL etukäteen, jossa olet ainoa moderaattori.", "privacy": "Tietosuoja", "recentList": "Viimeisimmät", "recentListDelete": "Poista", "recentListEmpty": "Viimeisimpien kokousten luettelo on tyhjä. Kun pidät kokouksia tiimisi kanssa, niistä viimeisimmät näkyvät täällä.", - "reducedUIText": "", + "recentMeetings": "Viimeaikaiset kokoukset", + "reducedUIText": "Tervetuloa sovellukseen {{app}}!", + "roomNameAllowedChars": "Kokouksen nimi ei saa sisältää mitään näistä merkeistä: ?, &, :, ', \", %, #.", "roomname": "Anna huoneen nimi", "roomnameHint": "Kirjoita sen huoneen nimi tai URL-osoite, johon haluat liittyä. Voit myös nimetä huoneen itse ja kertoa nimen muille, jotta he voivat löytää sen.", "sendFeedback": "Lähetä palautetta", + "settings": "Asetukset", + "startMeeting": "Aloita kokous", "terms": "Ehdot", - "title": "Turvallinen, täysin varustettu ja maksuton videoneuvottelu" + "title": "Turvallinen, täysin varustettu ja maksuton videoneuvottelu", + "upcomingMeetings": "Tulevat kokoukset" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Valkotaulu" + }, + "screenTitle": "Valkotaulu" } } diff --git a/lang/main-fr-CA.json b/lang/main-fr-CA.json index 1137e187db70..48809568d7a1 100644 --- a/lang/main-fr-CA.json +++ b/lang/main-fr-CA.json @@ -359,7 +359,7 @@ "kickParticipantTitle": "Expulser ce membre?", "kickSystemTitle": "Oups ! Vous avez été expulsé de la réunion", "kickTitle": "Expulsé de la réunion", - "learnMore": "en savoir plus", + "learnMore": "En savoir plus", "linkMeeting": "Relier la réunion", "linkMeetingTitle": "Relier la réunion à Salesforce", "liveStreaming": "Diffusion en direct", @@ -429,9 +429,7 @@ "recentlyUsedObjects": "Vos objets récemment utilisés", "recording": "Enregistrement", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossible durant le direct", - "recordingInProgressDescription": "Cette réunion est en cours d'enregistrement et d'analyse par IA{{learnMore}}. Votre audio et vidéo ont été coupés. Si vous choisissez de vous réactiver, vous consentez à être enregistré.", - "recordingInProgressDescriptionFirstHalf": "Cette réunion est en cours d'enregistrement et d'analyse par IA", - "recordingInProgressDescriptionSecondHalf": ". Votre audio et vidéo ont été coupés. Si vous choisissez de vous réactiver, vous consentez à être enregistré.", + "recordingInProgressDescription": "Cette réunion est en cours d'enregistrement et d'analyse par IA. Votre audio et vidéo ont été coupés. Si vous choisissez de vous réactiver, vous consentez à être enregistré.", "recordingInProgressTitle": "Enregistrement en cours", "rejoinNow": "Rejoindre maintenant", "remoteControlAllowedMessage": "{{user}} a accepté votre demande de contrôle à distance!", @@ -692,8 +690,6 @@ "googlePrivacyPolicy": "Politique de confidentialité de Google", "inProgress": "Enregisrtement ou diffusion en cours", "invalidStreamKey": "La clé de diffusion en direct peut être erronée.", - "limitNotificationDescriptionNative": "Votre diffusion sera limitée à {{limit}} min. Pour une diffusion illimitée, essayez {{app}}.", - "limitNotificationDescriptionWeb": "En raison d'une forte demande, votre diffusion sera limitée à {{limit}} min. Pour une diffusion illimitée, essayez {{app}} .", "off": "La diffusion en direct s'est arrêtée", "offBy": "{{name}} a arrêté la diffusion en continu", "on": "Diffusion en direct", @@ -1111,8 +1107,6 @@ "highlightMomentSuccess": "Moment souligné", "highlightMomentSucessDescription": "Votre moment souligné sera ajouté au résumé de la réunion.", "inProgress": "Enregistrement ou diffusion en cours", - "limitNotificationDescriptionNative": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez <3> {{app}} .", - "limitNotificationDescriptionWeb": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez {{app}} .", "linkGenerated": "Nous avons généré un lien à votre enregistrement.", "localRecordingNoNotificationWarning": "Le démarrage de l’enregistrement ne sera pas annoncé aux autres participants. Vous devrez les informer par vous-même que la réunion sera enregistrée.", "localRecordingNoVideo": "La vidéo n'est pas en cours d’enregistrement", @@ -1126,6 +1120,8 @@ "noStreams": "Aucun flux audio ou vidéo détectés.", "off": "L'enregistrement est arrêté", "offBy": "{{name}} a arrêté l'enregistrement", + "offByWithTranscription": "{{name}} a arrêté l'enregistrement et la transcription", + "offWithTranscription": "L'enregistrement et la transcription sont arrêtés", "on": "Enregistrement", "onBy": "{{name}} a démarré l'enregistrement", "onlyRecordSelf": "Enregistrer seulement mon audio et ma vidéo.", @@ -1500,6 +1496,10 @@ "failed": "La transcription a échoué", "labelTooltip": "La transcription de la réunion est en cours", "labelTooltipExtra": "De plus, une transcription sera disponible plus tard.", + "off": "Transcription arrêtée", + "on": "Transcription démarrée", + "onBy": "{{name}} a démarré la transcription", + "onWithRecording": "Une transcription sera également disponible après la réunion.", "openClosedCaptions": "Ouvrir les sous-titres", "original": "Original", "sourceLanguageDesc": "Actuellement, la langue de la réunion est sélectionnée à {{sourceLanguage}}.
Vous pouvez la changer à partir de ", diff --git a/lang/main-fr.json b/lang/main-fr.json index a7ae558cb152..af7e35ca89e6 100644 --- a/lang/main-fr.json +++ b/lang/main-fr.json @@ -373,7 +373,7 @@ "kickParticipantTitle": "Expulser ce participant ?", "kickSystemTitle": "Oups ! Vous avez été expulsé de la réunion", "kickTitle": "Oups ! vous avez été expulsé(e) par {{participantDisplayName}}", - "learnMore": "en savoir plus", + "learnMore": "En savoir plus", "linkMeeting": "Relier la conférence", "linkMeetingTitle": "Relier la conférence à Salesforce", "liveStreaming": "Direct", @@ -443,9 +443,7 @@ "recentlyUsedObjects": "Vos objets récemment utilisés", "recording": "Enregistrement", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossible durant le direct", - "recordingInProgressDescription": "Cette réunion est en cours d'enregistrement et d'analyse par IA{{learnMore}}. Votre audio et vidéo ont été coupés. Si vous choisissez de vous réactiver, vous consentez à être enregistré.", - "recordingInProgressDescriptionFirstHalf": "Cette réunion est en cours d'enregistrement et d'analyse par IA", - "recordingInProgressDescriptionSecondHalf": ". Votre audio et vidéo ont été coupés. Si vous choisissez de vous réactiver, vous consentez à être enregistré.", + "recordingInProgressDescription": "Cette réunion est en cours d'enregistrement et d'analyse par IA. Votre audio et vidéo ont été coupés. Si vous choisissez de vous réactiver, vous consentez à être enregistré.", "recordingInProgressTitle": "Enregistrement en cours", "rejoinNow": "Rejoindre maintenant", "remoteControlAllowedMessage": "{{user}} a accepté votre demande de prise en main à distance !", @@ -709,8 +707,6 @@ "googlePrivacyPolicy": "Politique de confidentialité de Google", "inProgress": "Enregisrtement ou diffusion en cours", "invalidStreamKey": "La clé de diffusion en direct n'est peut-être pas correcte.", - "limitNotificationDescriptionNative": "Votre diffusion sera limitée à {{limit}} min. Pour une diffusion illimitée, essayez {{app}}.", - "limitNotificationDescriptionWeb": "En raison d'une forte demande, votre diffusion sera limitée à {{limit}} min. Pour une diffusion illimitée, essayez {{app}} .", "off": "La diffusion en direct (streaming) a été arrêté", "offBy": "{{name}} a arrêté la diffusion en direct", "on": "En direct", @@ -1130,8 +1126,6 @@ "highlightMomentSuccess": "Moment souligné", "highlightMomentSucessDescription": "Votre moment souligné sera ajouté au résumé de la réunion.", "inProgress": "Enregistrement ou diffusion en cours", - "limitNotificationDescriptionNative": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez <3> {{app}} .", - "limitNotificationDescriptionWeb": "En raison d'une forte demande, votre enregistrement sera limité à {{limit}} min. Pour des enregistrements illimités, essayez {{app}} .", "linkGenerated": "Nous avons généré un lien à votre enregistrement.", "localRecordingNoNotificationWarning": "Le démarrage de l’enregistrement ne sera pas annoncé aux autres participants. Vous devrez les informer par vous-même que la réunion sera enregistrée.", "localRecordingNoVideo": "La vidéo n'est pas en cours d’enregistrement", @@ -1145,6 +1139,8 @@ "noStreams": "Aucun flux audio ou vidéo détectés.", "off": "Enregistrement arrêté", "offBy": "{{name}} a arrêté l'enregistrement", + "offByWithTranscription": "{{name}} a arrêté l'enregistrement et la transcription", + "offWithTranscription": "L'enregistrement et la transcription sont arrêtés", "on": "Enregistrement", "onBy": "{{name}} a démarré l'enregistrement", "onlyRecordSelf": "Enregistrer seulement mon audio et ma vidéo.", @@ -1524,6 +1520,10 @@ "failed": "La transcription a échoué", "labelTooltip": "La transcription de la réunion est en cours", "labelTooltipExtra": "Une transcription sera disponible plus tard.", + "off": "Transcription arrêtée", + "on": "Transcription démarrée", + "onBy": "{{name}} a démarré la transcription", + "onWithRecording": "Une transcription sera également disponible après la réunion.", "openClosedCaptions": "Ouvrir les sous-titres", "original": "Original", "sourceLanguageDesc": "Actuellement, la langue de la réunion est sélectionnée à {{sourceLanguage}}.
Vous pouvez la changer à partir de ", diff --git a/lang/main-hi.json b/lang/main-hi.json index 23138a032618..77bb96144b12 100644 --- a/lang/main-hi.json +++ b/lang/main-hi.json @@ -1,40 +1,48 @@ { "addPeople": { + "accessibilityLabel": { + "meetingLink": "मीटिंग लिंक: {{url}}" + }, "add": "आमंत्रित करें", "addContacts": "संपर्क सूची से आमंत्रित करे", + "contacts": "संपर्क", "copyInvite": "मीटिंग के आमंत्रण कि प्रतिलिपि बनाये", "copyLink": "मीटिंग कि लिंक कि प्रतिलिपि बनाये", - "copyStream": "सीधे प्रसारण कि लिंक कि प्रीतिलिपि बनाये", + "copyStream": "सीधे प्रसारण कि लिंक कि प्रतिलिपि बनाये", "countryNotSupported": "अभी हम इस गतव्य के लिये सक्षम न‍ही है ।", - "countryReminder": "यू.एस. के बाहर से काल कर रहे है तो कृपया सुनिश्चित करे कि अपने देश के कोड़ से प्रारंभ कर रहे है !", + "countryReminder": "यू.एस. के बाहर से काल कर रहे है तो कृपया सुनिश्चित करे कि अपने देश के कोड़ से प्रारंभ कर रहे है !", "defaultEmail": "अपना ई-मेल पता लिखें", "disabled": "आप अन्‍य लोगों को आमंत्रित नही कर सकते", "failedToAdd": "प्रतिभागियों को जोड़ने में विफल", "footerText": "बाहर डालय करना प्रतिबंधित है", "googleEmail": "गूगल ई-मेल", "inviteMoreHeader": "मीटिंग मे केवल आप ही हैं", - "inviteMoreMailSubject": "मीटिंग में शामिल हो {{appName}} ", + "inviteMoreMailSubject": "मीटिंग में शामिल हो {{appName}}", "inviteMorePrompt": "और लोगों को आमंत्रित करें", "linkCopied": "लिंक कि प्रतिलिपि बनायी गयी", - "loading": "लोगों को उनके मोबाइल नंबर से खोजा जा रहा हैं ", - "loadingNumber": "मोबाइल नम्बर कि जांच हो रही है ", - "loadingPeople": "लोगों को आमंत्रित करने के लिए खोजा जा रहा हैं ", + "loading": "लोगों को उनके मोबाइल नंबर से खोजा जा रहा हैं", + "loadingNumber": "मोबाइल नम्बर कि जांच हो रही है", + "loadingPeople": "लोगों को आमंत्रित करने के लिए खोजा जा रहा हैं", "noResults": "कोई मिलान खोज परिणाम नहीं", "noValidNumbers": "कृपया एक फ़ोन नंबर दर्ज करें", "outlookEmail": "आउटलुक ईमेल", + "phoneNumbers": "फ़ोन नंबर", "searchNumbers": "फ़ोन नंबर जोड़ें", "searchPeople": "लोगों को खोजें", "searchPeopleAndNumbers": "लोगों को खोजें या उनके फ़ोन नंबर जोड़ें", - "shareInvite": "मीटिंग आमंत्रण साझा करे ", + "searching": "खोजा जा रहा है…", + "shareInvite": "मीटिंग आमंत्रण साझा करे", "shareLink": "दूसरों को आमंत्रित करने के लिए मीटिंग लिंक साझा करें", "shareStream": "सीधे प्रसारण लिंक साझा करें", "sip": "SIP: {{address}}", + "sipAddresses": "SIP पते", "telephone": "टेलीफोन: {{number}}", "title": "लोगों को इस बैठक में आमंत्रित करें", "yahooEmail": "याहू ईमेल" }, "audioDevices": { "bluetooth": "ब्लूटूथ", + "car": "कार ऑडियो", "headphones": "हेडफ़ोन", "none": "कोई ऑडियो डिवाइस उपलब्ध नहीं", "phone": "फ़ोन", @@ -43,46 +51,129 @@ "audioOnly": { "audioOnly": "लो बैंडविड्थ" }, + "bandwidthSettings": { + "assumedBandwidthBps": "उदाहरण: 10 Mbps के लिए 10000000", + "assumedBandwidthBpsWarning": "अधिक मान नेटवर्क समस्याएँ पैदा कर सकते हैं।", + "customValue": "कस्टम मान", + "customValueEffect": "वास्तविक bps मान सेट करने के लिए", + "leaveEmpty": "खाली छोड़ें", + "leaveEmptyEffect": "अनुमान लगाने की अनुमति देने के लिए", + "possibleValues": "संभावित मान", + "setAssumedBandwidthBps": "अनुमानित बैंडविड्थ (bps)", + "title": "बैंडविड्थ सेटिंग्स", + "zeroEffect": "वीडियो अक्षम करने के लिए" + }, + "breakoutRooms": { + "actions": { + "add": "ब्रेकआउट रूम जोड़ें", + "autoAssign": "ब्रेकआउट रूम में स्वतः असाइन करें", + "close": "बंद करें", + "join": "जॉइन करें", + "leaveBreakoutRoom": "ब्रेकआउट रूम छोड़ें", + "more": "और", + "remove": "हटाएँ", + "rename": "नाम बदलें", + "renameBreakoutRoom": "ब्रेकआउट रूम का नाम बदलें", + "sendToBreakoutRoom": "प्रतिभागी को भेजें:" + }, + "breakoutList": "ब्रेकआउट सूची", + "buttonLabel": "ब्रेकआउट रूम", + "defaultName": "ब्रेकआउट रूम #{{index}}", + "hideParticipantList": "प्रतिभागी सूची छिपाएँ", + "mainRoom": "मुख्य रूम", + "notifications": { + "joined": "\"{{name}}\" ब्रेकआउट रूम में शामिल हो रहे हैं", + "joinedMainRoom": "मुख्य रूम में शामिल हो रहे हैं", + "joinedTitle": "ब्रेकआउट रूम" + }, + "showParticipantList": "प्रतिभागी सूची दिखाएँ", + "title": "ब्रेकआउट रूम" + }, "calendarSync": { "addMeetingURL": "एक मीटिंग लिंक जोड़ें", - "confirmAddLink": "क्या आप इस इवेंट में एक Jitsi लिंक जोड़ना चाहते हैं?", + "confirmAddLink": "क्या आप इस इवेंट में एक जित्सी लिंक जोड़ना चाहते हैं?", "error": { "appConfiguration": "कैलेंडर एकीकरण ठीक से कॉन्फ़िगर नहीं किया गया है।", - "generic": "एक त्रुटि हुई है। कृपया अपनी कैलेंडर सेटिंग जांचें या कैलेंडर को रीफ़्रेश करने का प्रयास करें।", + "generic": "एक त्रुटि हुई है। कृपया अपनी कैलेंडर सेटिंग जांचें या कैलेंडर को रीफ़्रेश करने का प्रयास करें।", "notSignedIn": "कैलेंडर ईवेंट देखने के लिए प्रमाणित करते समय एक त्रुटि हुई। कृपया अपनी कैलेंडर सेटिंग जांचें और फिर से लॉग इन करने का प्रयास करें।" }, - "join": "जुड़े", + "join": "जुड़े", "joinTooltip": "मीटिंग में शामिल हों", "nextMeeting": "अगली मीटिंग", "noEvents": "कोई आगामी कार्यक्रम निर्धारित नहीं हैं।", "ongoingMeeting": "चल रही बैठक", - "permissionButton": "सेटिंग्स खोले ", + "permissionButton": "सेटिंग्स खोले", "permissionMessage": "ऐप में आपकी मीटिंग देखने के लिए कैलेंडर की अनुमति आवश्यक है।", - "refresh": "कैलेंडर रीफ़्रेश करें", + "refresh": "कैलेंडर रीफ़्रेश करें", "today": "आज" }, + "carmode": { + "actions": { + "selectSoundDevice": "साउंड डिवाइस चुनें" + }, + "labels": { + "buttonLabel": "कार मोड", + "title": "कार मोड", + "videoStopped": "आपका वीडियो बंद है" + } + }, "chat": { + "disabled": "चैट संदेश भेजना अक्षम है।", "enter": "चैट रूम में प्रवेश करें", "error": "त्रुटि: आपका संदेश नहीं भेजा गया । कारण: {{error}}", + "everyone": "सभी", "fieldPlaceHolder": "अपना संदेश यहां लिखें", + "fileAccessibleTitle": "{{user}} ने एक फ़ाइल अपलोड की", + "fileAccessibleTitleMe": "मैंने एक फ़ाइल अपलोड की", + "fileDeleted": "एक फ़ाइल हटा दी गई", + "guestsChatIndicator": "(अतिथि)", "messageTo": "{{recipient}} के लिए निजी संदेश", "messagebox": "एक संदेश टाइप करें", + "newMessages": "नए संदेश", "nickname": { + "featureChat": "चैट", + "featureClosedCaptions": "बंद कैप्शन", + "featureFileSharing": "फ़ाइल साझा करना", + "featurePolls": "पोल", "popover": "एक उपनाम चुनें", "title": "चैट का उपयोग करने के लिए एक उपनाम दर्ज करें", - "titleWithPolls": "चैट का उपयोग करने के लिए एक उपनाम दर्ज करें" + "titleWith1Features": "{{feature1}} का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWith2Features": "{{feature1}} और {{feature2}} का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWith3Features": "{{feature1}}, {{feature2}} और {{feature3}} का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWith4Features": "{{feature1}}, {{feature2}}, {{feature3}} और {{feature4}} का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWithCC": "चैट और बंद कैप्शन का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWithPolls": "चैट और पोल का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWithPollsAndCC": "चैट, पोल और बंद कैप्शन का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWithPollsAndCCAndFileSharing": "चैट, पोल, बंद कैप्शन और फ़ाइलों का उपयोग करने के लिए एक उपनाम दर्ज करें" }, "noMessagesMessage": "अभी तक मीटिंग में कोई संदेश नहीं आया है। वार्तालाप प्रारंभ करें!", "privateNotice": "{{recipient}} के लिए निजी संदेश", "sendButton": "भेजें", + "smileysPanel": "इमोजी पैनल", + "systemDisplayName": "सिस्टम", + "tabs": { + "chat": "चैट", + "closedCaptions": "CC", + "fileSharing": "फ़ाइलें", + "polls": "सर्वेक्षण" + }, "title": "चैट", - "titleWithPolls": "चैट", + "titleWithCC": "CC", + "titleWithFeatures": "चैट और", + "titleWithFileSharing": "फ़ाइलें", + "titleWithPolls": "सर्वेक्षण", "you": "आप" }, "chromeExtensionBanner": { "buttonText": "क्रोम एक्सटेंशन इंस्टॉल करें", + "buttonTextEdge": "Edge एक्सटेंशन इंस्टॉल करें", + "close": "बंद करें", "dontShowAgain": "मुझे यह फिर से न दिखाएं", - "installExtensionText": ",गूगल कैलेंडर और ऑफिस 365 एकीकरण के लिए एक्सटेंशन इंस्टॉल करें" + "installExtensionText": "गूगल कैलेंडर और ऑफिस 365 एकीकरण के लिए एक्सटेंशन इंस्टॉल करें" + }, + "closedCaptionsTab": { + "emptyState": "बंद कैप्शन सामग्री उपलब्ध होगी जब कोई संचालक इसे शुरू करेगा", + "startClosedCaptionsButton": "बंद कैप्शन शुरू करें" }, "connectingOverlay": { "joiningRoom": "आपको आपकी मीटिंग से कनेक्ट किया जा रहा है…" @@ -92,12 +183,12 @@ "AUTHENTICATING": "प्रमाणीकरण", "AUTHFAIL": "प्रमाणीकरण विफल", "CONNECTED": "जुड़े हुए हैं", - "CONNECTING": "जोड़ा जा रहा हैं ", - "CONNFAIL": "नहीं जोड़ा जा सका ", - "DISCONNECTED": "संपर्क विफ़ल ", - "DISCONNECTING": "संपर्क हटाया जा रहा ", + "CONNECTING": "जोड़ा जा रहा हैं", + "CONNFAIL": "नहीं जोड़ा जा सका", + "DISCONNECTED": "संपर्क विफ़ल", + "DISCONNECTING": "संपर्क हटाया जा रहा", "ERROR": "त्रुटि", - "FETCH_SESSION_ID": "सत्र-आईडी प्राप्त की जा रही हैं …", + "FETCH_SESSION_ID": "सत्र-आईडी प्राप्त की जा रही हैं…", "GET_SESSION_ID_ERROR": "सत्र-आईडी त्रुटि प्राप्त करें: {{code}}", "GOT_SESSION_ID": "सत्र-आईडी प्राप्त की जा रही हैं… पूर्ण", "LOW_BANDWIDTH": "बैंडविड्थ को बचाने के लिए {{displayName}} का वीडियो बंद कर दिया गया है" @@ -109,15 +200,17 @@ "bitrate": "बिटरेट:", "bridgeCount": "सर्वर गणना: ", "codecs": "कोडेक (ए/वी): ", - "connectedTo": "से जुड़ा हुआ है :", + "connectedTo": "से जुड़ा हुआ है:", + "e2eeVerified": "E2EE सत्यापित:", "framerate": "फ्रेम दर:", "less": "कम दिखाएं", "localaddress": "स्थानीय पता:", "localaddress_plural": "स्थानीय पते:", - "localport": "local port:", - "localport_plural": "Local ports:", + "localport": "स्थानीय पोर्ट:", + "localport_plural": "स्थानीय पोर्ट्स:", "maxEnabledResolution": "send max", "more": "और दिखाएं", + "no": "नहीं", "packetloss": "पैकेट लॉस:", "participant_id": "प्रतिभागी आईडी:", "quality": { @@ -129,31 +222,43 @@ }, "remoteaddress": "रिमोट एड्रेस:", "remoteaddress_plural": "रिमोट एड्रेसेस:", - "remoteport": "रिमोट port:", - "remoteport_plural": "रिमोट ports:", + "remoteport": "रिमोट पोर्ट:", + "remoteport_plural": "रिमोट पोर्ट्स:", "resolution": "रेसोलुशन:", "savelogs": "लॉग सहेजे", "status": "सम्पर्क:", - "transport": "ट्रांसपोर्ट :", + "transport": "ट्रांसपोर्ट:", "transport_plural": "ट्रांसपोर्ट्स:", - "video_ssrc": "वीडियो एस.आर.सी.सी.:" + "video_ssrc": "वीडियो एस.आर.सी.सी.:", + "yes": "हाँ" }, "dateUtils": { - "earlier": "पिछला कल", + "earlier": "पहले", "today": "आज", - "yesterday": "अगला कल" + "yesterday": "कल" }, "deepLinking": { - "appNotInstalled": "आपको अपने फ़ोन पर इस मीटिंग में शामिल होने के लिए {{app}} मोबाइल ऐप की आवश्यकता है। ", - "description": "हमने आपकी मीटिंग {{app}} डेस्कटॉप ऐप में लॉन्च करने की कोशिश की। कुछ नहीं हुआ? फिर से कोशिश करें या {{app}} वेब ऐप में लॉन्च करें।", - "descriptionWithoutWeb": "हमने आपकी मीटिंग {{app}} डेस्कटॉप ऐप में लॉन्च करने की कोशिश की। कुछ नहीं हुआ?", + "appNotInstalled": "आपको अपने फ़ोन पर इस मीटिंग में शामिल होने के लिए {{app}} मोबाइल ऐप की आवश्यकता है।", + "description": "कुछ नहीं हुआ? हमने आपकी मीटिंग {{app}} डेस्कटॉप ऐप में लॉन्च करने की कोशिश की। फिर से कोशिश करें या {{app}} वेब ऐप में लॉन्च करें।", + "descriptionNew": "कुछ नहीं हुआ? हमने आपकी मीटिंग {{app}} डेस्कटॉप ऐप में लॉन्च करने की कोशिश की।

आप फिर से कोशिश कर सकते हैं या वेब पर लॉन्च कर सकते हैं।", + "descriptionWithoutWeb": "कुछ नहीं हुआ? हमने आपकी मीटिंग {{app}} डेस्कटॉप ऐप में लॉन्च करने की कोशिश की।", "downloadApp": "एप्लिकेशन डाउनलोड करें", + "downloadMobileApp": "App Store से डाउनलोड करें", "ifDoNotHaveApp": "यदि आपके पास अभी तक ऐप नहीं है:", "ifHaveApp": "यदि आपके पास पहले से ही ऐप है:", "joinInApp": "ऐप का उपयोग करके इस मीटिंग में शामिल हों", + "joinInAppNew": "ऐप में शामिल हों", + "joinInBrowser": "ब्राउज़र में शामिल हों", + "launchMeetingLabel": "आप इस मीटिंग में कैसे शामिल होना चाहते हैं?", "launchWebButton": "वेब में लॉन्च करे", + "noDesktopApp": "क्या आपके पास ऐप नहीं है?", + "noMobileApp": "क्या आपके पास ऐप नहीं है?", + "or": "या", + "termsAndConditions": "जारी रखने पर आप हमारी नियम एवं शर्तों से सहमत होते हैं।", "title": "{{app}} में आपकी मीटिंग शुरू की जा रही हैं…", - "tryAgainButton": "डेस्कटॉप में फिर से प्रयास करें" + "titleNew": "आपकी मीटिंग शुरू की जा रही है…", + "tryAgainButton": "डेस्कटॉप में फिर से प्रयास करें", + "unsupportedBrowser": "लगता है आप एक असमर्थित ब्राउज़र का उपयोग कर रहे हैं।" }, "defaultLink": "उदाहरण {{url}}", "defaultNickname": "उदा. सतीष कुमार", @@ -164,10 +269,19 @@ "microphonePermission": "माइक्रोफ़ोन अनुमति प्राप्त करने में त्रुटि" }, "deviceSelection": { + "hid": { + "callControl": "कॉल नियंत्रण", + "connectedDevices": "कनेक्टेड डिवाइस:", + "deleteDevice": "डिवाइस हटाएँ", + "pairDevice": "डिवाइस जोड़ें" + }, "noPermission": "अनुमति नहीं दी गई", "previewUnavailable": "पूर्वदर्शन अनुपलब्ध", "selectADevice": "डिवाइस का चयन करें", - "testAudio": "टेस्ट साउंड प्ले करें" + "testAudio": "परीक्षण" + }, + "dialIn": { + "screenTitle": "डायल-इन सारांश" }, "dialOut": { "statusMessage": "अब {{status}} है" @@ -175,23 +289,40 @@ "dialog": { "Back": "पीछे जाए", "Cancel": "रद्द करें", - "IamHost": "मैं मेजबान हूँ", + "IamHost": "लॉग-इन", "Ok": "ठीक है", "Remove": "निकालें", - "Share": "Share", + "Share": "साझा करें", "Submit": "सबमिट करें", + "Understand": "मैं समझता/समझती हूँ, अभी मुझे म्यूट रखें", + "UnderstandAndUnmute": "मैं समझता/समझती हूँ, कृपया मुझे अनम्यूट करें", "WaitForHostMsg": "सम्मेलन अभी तक शुरू नहीं हुआ है। यदि आप मेजबान हैं तो कृपया प्रमाणित करें। अन्यथा, कृपया मेजबान के आने की प्रतीक्षा करें।", + "WaitingForHostButton": "मॉडरेटर की प्रतीक्षा करें", "WaitingForHostTitle": "होस्ट की प्रतीक्षा कर रहा है…", "Yes": "हाँ", "accessibilityLabel": { - "liveStreaming": "सीधा प्रसारण" + "Cancel": "रद्द करें (डायलॉग से बाहर जाएं)", + "Ok": "ठीक है (सहेजें और डायलॉग से बाहर जाएं)", + "close": "डायलॉग बंद करें", + "liveStreaming": "सीधा प्रसारण", + "sharingTabs": "साझाकरण विकल्प" }, "add": "जोड़ें", + "addMeetingNote": "इस मीटिंग के बारे में एक नोट जोड़ें", + "addOptionalNote": "एक नोट जोड़ें (वैकल्पिक):", "allow": "अनुमति दें", + "allowToggleCameraDialog": "क्या आप {{initiatorName}} को आपके कैमरे का फ़ेसिंग मोड बदलने की अनुमति देते हैं?", + "allowToggleCameraTitle": "कैमरा बदलने की अनुमति दें?", "alreadySharedVideoMsg": "एक अन्य प्रतिभागी पहले से ही वीडियो साझा कर रहा है। यह सम्मेलन एक समय में केवल एक साझा की अनुमति देता है।", "alreadySharedVideoTitle": "एक समय में केवल एक साझा वीडियो की अनुमति है", "applicationWindow": "एप्लिकेशन विंडो", "authenticationRequired": "प्रमाणीकरण आवश्यक है", + "cameraCaptureDialog": { + "description": "अपने मोबाइल कैमरे से एक तस्वीर लें और भेजें", + "ok": "कैमरा खोलें", + "reject": "अभी नहीं", + "title": "एक तस्वीर लें" + }, "cameraConstraintFailedError": "आपका कैमरा आवश्यक बाधाओं में से कुछ को पूरा नहीं करता है।", "cameraNotFoundError": "कैमरा नहीं मिला।", "cameraNotSendingData": "हम आपके कैमरे का उपयोग करने में असमर्थ हैं। कृपया जांचें कि क्या कोई अन्य एप्लिकेशन इस डिवाइस का उपयोग तो नहीं कर रहा है, सेटिंग मेनू से किसी अन्य डिवाइस का चयन करें या एप्लिकेशन को फिर से लोड करने का प्रयास करें।", @@ -201,30 +332,39 @@ "cameraUnknownError": "अज्ञात कारण की वजह से कैमरे का उपयोग नहीं किया जा सकता है।", "cameraUnsupportedResolutionError": "आपका कैमरा आवश्यक वीडियो रिज़ॉल्यूशन का समर्थन नहीं करता है।", "close": "बंद करें", - "conferenceDisconnectMsg": "आप अपने नेटवर्क कनेक्शन की जांच कर सकते है। . {{seconds}} सेकंड में पुनः कनेक्ट किया जायेंगा…", + "conferenceDisconnectMsg": "आप अपने नेटवर्क कनेक्शन की जांच कर सकते हैं। {{seconds}} सेकंड में पुनः कनेक्ट किया जायेंगा…", "conferenceDisconnectTitle": "आपको डिस्कनेक्ट कर दिया गया है।", "conferenceReloadMsg": "हम इसे ठीक करने का प्रयास कर रहे हैं। {{seconds}} सेकंड में पुनः कनेक्ट कर रहे हैं…", "conferenceReloadTitle": "दुर्भाग्य से, कुछ गलत हो गया।", "confirm": "पुष्टि करें", + "confirmBack": "पीछे", "confirmNo": "नहीं", "confirmYes": "हाँ", "connectError": "उफ़! कुछ गड़बड़ हो गई और हम सम्मेलन से जुड़ नहीं सके।", "connectErrorWithMsg": "उफ़! कुछ गड़बड़ हो गई और हम सम्मेलन से नहीं जुड़ सके: {{msg}}", "connecting": "संपर्क जोड़ा जा रहा है ", "contactSupport": "सहयोग के लिए संपर्क करें", - "copied": "प्रतिलिपि बनाई गयी ", + "copied": "प्रतिलिपि बनाई गयी", "copy": "प्रतिलिपि बनाये", + "demoteParticipantDialog": "क्या आप वाकई इस प्रतिभागी को दर्शक के रूप में स्थानांतरित करना चाहते हैं?", + "demoteParticipantTitle": "दर्शक के रूप में स्थानांतरित करें", "dismiss": "खारिज करें", "displayNameRequired": "नमस्ते! आपका नाम क्या है?", - "done": "हो गया ", - "e2eeDescription": "एंड-टू-एंड एन्क्रिप्शन वर्तमान में प्रयोगात्मक है। कृपया ध्यान रखें कि एंड-टू-एंड एन्क्रिप्शन को चालू करने से सर्वर-साइड सेवाएं जैसे: रिकॉर्डिंग, लाइव स्ट्रीमिंग और फोन भागीदारी निष्क्रिय । Also keep in mind that the meeting will only work for people joining from browsers with support for insertable streams.", + "done": "हो गया", + "e2eeDescription": "एंड-टू-एंड एन्क्रिप्शन वर्तमान में प्रयोगात्मक है। कृपया ध्यान रखें कि एंड-टू-एंड एन्क्रिप्शन को चालू करने से सर्वर-साइड सेवाएं जैसे: फोन भागीदारी निष्क्रिय हो जाएंगी। यह भी ध्यान रखें कि मीटिंग केवल उन लोगों के लिए काम करेगी जो insertable streams के समर्थन वाले ब्राउज़र से जुड़ रहे हैं।", + "e2eeDisabledDueToMaxModeDescription": "सम्मेलन में अधिक प्रतिभागियों की वजह से एंड-टू-एंड एन्क्रिप्शन सक्षम नहीं किया जा सकता।", "e2eeLabel": "एंड-टू-एंड एन्क्रिप्शन सक्षम करें", - "e2eeWarning": "चेतावनी: इस मीटिंग में सभी प्रतिभागियों के पास एंड-टू-एंड एन्क्रिप्शन के लिए समक्षता नहीं है। यदि आप इसे सक्षम करते हैं तो वे आपको देखने और सुनने में सक्षम नहीं होंगे।", + "e2eeWarning": "चेतावनी: इस मीटिंग में सभी प्रतिभागियों के पास एंड-टू-एंड एन्क्रिप्शन के लिए समर्थन नहीं है। यदि आप इसे सक्षम करते हैं तो वे आपको देखने और सुनने में सक्षम नहीं होंगे।", + "e2eeWillDisableDueToMaxModeDescription": "चेतावनी: यदि अधिक प्रतिभागी सम्मेलन में शामिल होते हैं तो एंड-टू-एंड एन्क्रिप्शन स्वतः अक्षम हो जाएगा।", + "embedMeeting": "मीटिंग एम्बेड करें", "enterDisplayName": "कृपया यहाँ अपना नाम लिखें", "error": "त्रुटि", + "errorRoomCreationRestriction": "आपने बहुत जल्दी शामिल होने का प्रयास किया, कृपया थोड़ी देर बाद वापस आएं।", "gracefulShutdown": "हमारी सेवा वर्तमान में रखरखाव के लिए बंद है। कृपया बाद में पुनः प्रयास करें।", - "grantModeratorDialog": "क्या आप वाकई इस प्रतिभागी को एक मध्यस्थ बनाना चाहते हैं?", - "grantModeratorTitle": "मध्यस्थ स्वीकृती दे ", + "grantModeratorDialog": "क्या आप वाकई {{participantName}} को संचालक अधिकार देना चाहते हैं?", + "grantModeratorTitle": "संचालक अधिकार दें", + "hide": "छुपाएं", + "hideShareAudioHelper": "यह डायलॉग दोबारा न दिखाएं", "incorrectPassword": "गलत उपयोगकर्ता नाम या पासवर्ड", "incorrectRoomLockPassword": "गलत पासवर्ड", "internalError": "उफ़! कुछ गड़बड़ हो गई। निम्नलिखित त्रुटि हुई: {{error}}", @@ -233,17 +373,22 @@ "kickParticipantButton": "निकालें", "kickParticipantDialog": "क्या आप वाकई इस प्रतिभागी को निकलना चाहते हैं?", "kickParticipantTitle": "इस प्रतिभागी को निकाले?", + "kickSystemTitle": "अरे! आपको मीटिंग से बाहर कर दिया गया", "kickTitle": "अरे! {{participantDisplayName}} ने आपको मीटिंग से बाहर कर दिया", + "learnMore": "अधिक जानें", + "linkMeeting": "मीटिंग लिंक करें", + "linkMeetingTitle": "Salesforce से मीटिंग लिंक करें", "liveStreaming": "सीधा प्रसारण", "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "रिकॉर्डिंग सक्रिय होने के दौरान संभव नहीं है", - "liveStreamingDisabledTooltip": "सीधा प्रसारण करना निष्क्रिय है ", + "localUserControls": "स्थानीय उपयोगकर्ता नियंत्रण", "lockMessage": "सम्मेलन को लॉक करने में विफल।", - "lockRoom": "मीटिंग जोड़ें $t(lockRoomPasswordUppercase)", + "lockRoom": "मीटिंग $t(lockRoomPassword) जोड़ें", "lockTitle": "लॉक फेल", "login": "लॉग इन", + "loginQuestion": "क्या आप वाकई लॉगिन करके सम्मेलन छोड़ना चाहते हैं?", "logoutQuestion": "क्या आप वाकई लॉगआउट और कॉन्फ्रेंस को रोकना चाहते हैं?", - "logoutTitle": "लॉग आउट ", - "maxUsersLimitReached": "अधिकतम प्रतिभागियों की सीमा पूरी हो चुकी है. कृपया बैठक के मालिक से संपर्क करें या बाद में पुनः प्रयास करें!!", + "logoutTitle": "लॉग आउट", + "maxUsersLimitReached": "अधिकतम प्रतिभागियों की सीमा पूरी हो चुकी है। कृपया बैठक के मालिक से संपर्क करें या बाद में पुनः प्रयास करें!", "maxUsersLimitReachedTitle": "अधिकतम प्रतिभागियों सीमा पार हो गई", "micConstraintFailedError": "आपका माइक्रोफ़ोन आवश्यक प्रतिबंधों को पूरा नहीं करता।", "micNotFoundError": "माइक्रोफोन नहीं मिला।", @@ -252,63 +397,116 @@ "micPermissionDeniedError": "आपने अपने माइक्रोफ़ोन का उपयोग करने की अनुमति नहीं दी है। आप अभी भी सम्मेलन में शामिल हो सकते हैं, लेकिन अन्य लोग आपको नहीं सुनेंगे। इसे ठीक करने के लिए पता बार में कैमरा बटन का उपयोग करें।", "micTimeoutError": "ऑडियो स्रोत प्रारंभ नहीं किया जा सका। समय समाप्त हो गया!", "micUnknownError": "अज्ञात कारण से माइक्रोफोन का उपयोग नहीं किया जा सकता है।", - "muteEveryoneDialog": "क्या आप वाकई सभी को म्यूट करना चाहते हैं? आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय खुद को अनम्यूट कर सकते हैं।", + "moderationAudioLabel": "गैर-संचालकों को खुद को अनम्यूट करने की अनुमति दें", + "moderationDesktopLabel": "गैर-संचालकों को अपनी स्क्रीन साझा करने की अनुमति दें", + "moderationVideoLabel": "गैर-संचालकों को अपना वीडियो शुरू करने की अनुमति दें", + "muteEveryoneDialog": "प्रतिभागी किसी भी समय खुद को अनम्यूट कर सकते हैं।", + "muteEveryoneDialogModerationOn": "प्रतिभागी किसी भी समय बोलने का अनुरोध भेज सकते हैं।", "muteEveryoneElseDialog": "एक बार म्यूट होने के बाद, आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय खुद को अनम्यूट कर सकते हैं।", "muteEveryoneElseTitle": "{{whom}} को छोड़कर सभी को म्यूट करें?", + "muteEveryoneElsesDesktopDialog": "एक बार साझाकरण बंद होने के बाद, आप इसे पुनः आरंभ नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय कर सकते हैं।", + "muteEveryoneElsesDesktopTitle": "{{whom}} को छोड़कर सभी की स्क्रीन-शेयर बंद करें?", "muteEveryoneElsesVideoDialog": "एक बार कैमरा अक्षम हो जाने पर, आप इसे वापस चालू नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय वापस चालू कर सकते हैं।", "muteEveryoneElsesVideoTitle": "{{whom}} को छोड़कर सभी का कैमरा अक्षम करें?", "muteEveryoneSelf": "अपने आप", - "muteEveryoneStartMuted": "Everyone starts muted from now on", + "muteEveryoneStartMuted": "अब से सभी म्यूट होकर शुरू करेंगे", "muteEveryoneTitle": "सभी को म्यूट करें?", - "muteEveryonesVideoDialog": "क्या आप वाकई सभी के कैमरे को अक्षम करना चाहते हैं? आप इसे वापस चालू नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय वापस चालू कर सकते हैं।", + "muteEveryonesDesktopDialog": "प्रतिभागी किसी भी समय अपनी स्क्रीन साझा कर सकते हैं।", + "muteEveryonesDesktopDialogModerationOn": "प्रतिभागी किसी भी समय अपनी स्क्रीन साझा करने का अनुरोध भेज सकते हैं।", + "muteEveryonesDesktopTitle": "सभी की स्क्रीन शेयर बंद करें?", + "muteEveryonesVideoDialog": "प्रतिभागी किसी भी समय अपना वीडियो चालू कर सकते हैं।", + "muteEveryonesVideoDialogModerationOn": "प्रतिभागी किसी भी समय अपना वीडियो चालू करने का अनुरोध भेज सकते हैं।", "muteEveryonesVideoDialogOk": "अक्षम करें", "muteEveryonesVideoTitle": "सभी का कैमरा अक्षम करें?", "muteParticipantBody": "आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय अनम्यूट कर सकते हैं।", "muteParticipantButton": "म्यूट", - "muteParticipantDialog": "क्या आप वाकई इस प्रतिभागी को म्यूट करना चाहते हैं? आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय खुद को अनम्यूट कर सकते हैं।", - "muteParticipantTitle": "इस प्रतिभागी को म्यूट करें?", + "muteParticipantsDesktopBody": "आप उनकी स्क्रीन-शेयर शुरू नहीं कर पाएंगे, लेकिन वे किसी भी समय कर सकते हैं।", + "muteParticipantsDesktopBodyModerationOn": "आप उनकी स्क्रीन-शेयर शुरू नहीं कर पाएंगे और न ही वे कर पाएंगे।", + "muteParticipantsDesktopButton": "स्क्रीन शेयरिंग बंद करें", + "muteParticipantsDesktopDialog": "क्या आप वाकई इस प्रतिभागी की स्क्रीन-शेयर बंद करना चाहते हैं? आप इसे पुनः आरंभ नहीं कर पाएंगे, लेकिन वे किसी भी समय कर सकते हैं।", + "muteParticipantsDesktopDialogModerationOn": "क्या आप वाकई इस प्रतिभागी की स्क्रीन-शेयर बंद करना चाहते हैं? आप स्क्रीन वापस चालू नहीं कर पाएंगे और न ही वे कर पाएंगे।", + "muteParticipantsDesktopTitle": "इस प्रतिभागी की स्क्रीन-शेयर अक्षम करें?", "muteParticipantsVideoBody": "आप कैमरे को वापस चालू नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय वापस चालू कर सकते हैं।", - "muteParticipantsVideoButton": "कैमरा अक्षम करें", + "muteParticipantsVideoBodyModerationOn": "आप कैमरे को वापस चालू नहीं कर पाएंगे और न ही वे कर पाएंगे।", + "muteParticipantsVideoButton": "वीडियो बंद करें", + "muteParticipantsVideoDialog": "क्या आप वाकई इस प्रतिभागी का कैमरा बंद करना चाहते हैं? आप कैमरे को वापस चालू नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय वापस चालू कर सकते हैं।", + "muteParticipantsVideoDialogModerationOn": "क्या आप वाकई इस प्रतिभागी का कैमरा बंद करना चाहते हैं? आप कैमरे को वापस चालू नहीं कर पाएंगे और न ही वे कर पाएंगे।", "muteParticipantsVideoTitle": "इस प्रतिभागी का कैमरा अक्षम करें?", + "noDropboxToken": "कोई मान्य Dropbox टोकन नहीं", + "password": "पासवर्ड", "passwordLabel": "बैठक में एक प्रतिभागी द्वारा ताला लगा दिया गया है। कृपया शामिल होने के लिए $t(lockRoomPassword) दर्ज करें।", "passwordNotSupported": "मीटिंग $t(lockRoomPassword) सेट करना समर्थित नहीं है।", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) समर्थित नहीं है", "passwordRequired": "$t(lockRoomPasswordUppercase) की आवश्यकता है", - "popupError": "आपका ब्राउज़र इस साइट से पॉप-अप विंडो को रोक रहा है। कृपया अपने ब्राउज़र की सुरक्षा सेटिंग्स में पॉप-अप को सक्षम करें और पुनः प्रयास करें।", - "popupErrorTitle": "पॉप-अप अवरुद्ध", + "permissionCameraRequiredError": "वीडियो के साथ सम्मेलन में भाग लेने के लिए कैमरा अनुमति आवश्यक है। कृपया सेटिंग में इसे दें", + "permissionErrorTitle": "अनुमति आवश्यक है", + "permissionMicRequiredError": "ऑडियो के साथ सम्मेलन में भाग लेने के लिए माइक्रोफ़ोन अनुमति आवश्यक है। कृपया सेटिंग में इसे दें", "readMore": "अधिक", + "recentlyUsedObjects": "आपके हाल ही में उपयोग किए गए ऑब्जेक्ट", "recording": "रिकॉर्डिंग", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "संभव नहीं है जब एक लाइव स्ट्रीम सक्रिय है", - "recordingDisabledTooltip": "रिकॉर्डिंग शुरू करना अक्षम करें.", - "rejoinNow": "पुनः जुड़े", + "recordingInProgressDescription": "यह मीटिंग रिकॉर्ड की जा रही है और AI द्वारा विश्लेषण किया जा रहा है{{learnMore}}। आपका ऑडियो और वीडियो म्यूट कर दिया गया है। यदि आप अनम्यूट करना चुनते हैं, तो आप रिकॉर्ड किए जाने की सहमति देते हैं।", + "recordingInProgressDescriptionFirstHalf": "यह मीटिंग रिकॉर्ड की जा रही है और AI द्वारा विश्लेषण किया जा रहा है", + "recordingInProgressDescriptionSecondHalf": "। आपका ऑडियो और वीडियो म्यूट कर दिया गया है। यदि आप अनम्यूट करना चुनते हैं, तो आप रिकॉर्ड किए जाने की सहमति देते हैं।", + "recordingInProgressTitle": "रिकॉर्डिंग जारी है", + "rejoinNow": "पुनः जुड़े", "remoteControlAllowedMessage": "{{user}} ने आपका रिमोट कंट्रोल अनुरोध स्वीकार कर लिया!", "remoteControlDeniedMessage": "{{user}} ने आपका रिमोट कंट्रोल अनुरोध अस्वीकार कर दिया!", - "remoteControlErrorMessage": "{{user}}से रिमोट कंट्रोल की अनुमति का अनुरोध करते समय एक त्रुटि हुई!", + "remoteControlErrorMessage": "{{user}} से रिमोट कंट्रोल की अनुमति का अनुरोध करते समय एक त्रुटि हुई!", "remoteControlRequestMessage": "क्या आप {{user}} को दूर से अपने डेस्कटॉप को नियंत्रित करने की अनुमति देंगे?", "remoteControlShareScreenWarning": "ध्यान दें कि यदि आप \"अनुमति दें\" दबाते हैं, तो आप अपनी स्क्रीन साझा करेंगे!", "remoteControlStopMessage": "रिमोट कंट्रोल सत्र समाप्त हो गया!", "remoteControlTitle": "रिमोट डेस्कटॉप कंट्रोल", + "remoteUserControls": "{{username}} के दूरस्थ उपयोगकर्ता नियंत्रण", "removePassword": "निकालें $t(lockRoomPassword)", "removeSharedVideoMsg": "क्या आप वाकई अपने साझा किए गए वीडियो को निकालना चाहते हैं?", "removeSharedVideoTitle": "साझा किया गया वीडियो निकालें", + "renameBreakoutRoomLabel": "कक्ष का नाम", + "renameBreakoutRoomTitle": "ब्रेकआउट रूम का नाम बदलें", "reservationError": "आरक्षण प्रणाली में त्रुटि", "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}", "retry": "पुनः प्रयास करें", "screenSharingAudio": "ऑडियो साझा करें", - "screenSharingFailed": "उफ़! कुछ गड़बड़ हो गई, हम स्क्रीन शेयरिंग शुरू करने में सक्षम नहीं थे!", + "screenSharingFailed": "स्क्रीन शेयरिंग शुरू नहीं हो पाई।", "screenSharingFailedTitle": "स्क्रीन साझा करना विफल हुआ!", "screenSharingPermissionDeniedError": "उफ़! आपकी स्क्रीन शेयरिंग अनुमतियों में कुछ गड़बड़ हो गई है। कृपया पुनः लोड करें और पुनः प्रयास करें।", + "searchInSalesforce": "Salesforce में खोजें", + "searchResults": "खोज परिणाम ({{count}})", + "searchResultsDetailsError": "स्वामी डेटा प्राप्त करते समय कुछ गलत हो गया।", + "searchResultsError": "डेटा प्राप्त करते समय कुछ गलत हो गया।", + "searchResultsNotFound": "कोई खोज परिणाम नहीं मिला।", + "searchResultsTryAgain": "वैकल्पिक कीवर्ड उपयोग करने का प्रयास करें।", "sendPrivateMessage": "आपने हाल ही में एक निजी संदेश प्राप्त किया है। क्या आप उसका निजी रूप से जवाब देने का इरादा रखते हैं? या आप अपना संदेश समूह को भेजना चाहते हैं?", "sendPrivateMessageCancel": "समूह को भेजें", "sendPrivateMessageOk": "निजी तौर पर भेजें", "sendPrivateMessageTitle": "निजी तौर पर भेजें?", "serviceUnavailable": "सेवा अनुपलब्ध", "sessTerminated": "कॉल समाप्त", - "sessionRestarted": "कनेक्शन समस्या के कारण कॉल पुनः प्रारंभ की गई", - "shareVideoLinkError": "कृपया एक सही यूट्यूब लिंक प्रदान करें।.", + "sessTerminatedReason": "मीटिंग समाप्त कर दी गई है", + "sessionRestarted": "कनेक्शन समस्या के कारण कॉल पुनः प्रारंभ की गई।", + "shareAudio": "जारी रखें", + "shareAudioAltText": "वांछित सामग्री साझा करने के लिए, \"Browser Tab\" पर जाएं, सामग्री चुनें, \"share audio\" चेकमार्क सक्रिय करें और फिर \"share\" बटन क्लिक करें", + "shareAudioTitle": "ऑडियो कैसे साझा करें", + "shareAudioWarningD1": "ऑडियो साझा करने से पहले आपको स्क्रीन शेयरिंग बंद करनी होगी।", + "shareAudioWarningD2": "आपको अपनी स्क्रीन शेयरिंग पुनः आरंभ करनी होगी और \"share audio\" विकल्प चेक करना होगा।", + "shareAudioWarningH1": "यदि आप केवल ऑडियो साझा करना चाहते हैं:", + "shareAudioWarningTitle": "ऑडियो साझा करने से पहले स्क्रीन शेयरिंग बंद करें", + "shareMediaWarningGenericH2": "यदि आप अपनी स्क्रीन और ऑडियो साझा करना चाहते हैं", + "shareScreenWarningD1": "स्क्रीन साझा करने से पहले आपको ऑडियो शेयरिंग बंद करनी होगी।", + "shareScreenWarningD2": "आपको ऑडियो शेयरिंग बंद करनी होगी, स्क्रीन शेयरिंग शुरू करनी होगी और \"share audio\" विकल्प चेक करना होगा।", + "shareScreenWarningH1": "यदि आप केवल अपनी स्क्रीन साझा करना चाहते हैं:", + "shareScreenWarningTitle": "स्क्रीन साझा करने से पहले ऑडियो शेयरिंग बंद करें", + "shareVideoConfirmPlay": "आप एक बाहरी वेबसाइट खोलने वाले हैं। क्या आप जारी रखना चाहते हैं?", + "shareVideoConfirmPlayTitle": "{{name}} ने आपके साथ एक वीडियो साझा किया है।", + "shareVideoLinkError": "उफ़, यह वीडियो नहीं चलाया जा सकता।", + "shareVideoLinkStopped": "{{name}} का वीडियो रोक दिया गया।", "shareVideoTitle": "एक वीडियो साझा करें", "shareYourScreen": "अपनी स्क्रीन साझा करें", "shareYourScreenDisabled": "स्क्रीन साझाकरण अक्षम।", + "sharedVideoDialogError": "त्रुटि: अमान्य या प्रतिबंधित URL", + "sharedVideoLinkPlaceholder": "YouTube लिंक या सीधा वीडियो लिंक", + "show": "दिखाएं", + "start": "शुरू करें", "startLiveStreaming": "लाइव स्ट्रीम प्रारंभ करें", "startRecording": "रिकॉर्डिंग प्रारंभ करें", "startRemoteControlErrorMessage": "रिमोट कंट्रोल सत्र शुरू करने की कोशिश करते समय एक त्रुटि हुई!", @@ -317,16 +515,46 @@ "stopRecordingWarning": "क्या आप वाकई रिकॉर्डिंग को रोकना चाहते हैं?", "stopStreamingWarning": "क्या आप वाकई लाइव स्ट्रीमिंग को रोकना चाहते हैं?", "streamKey": "लाइव स्ट्रीम कुंजी", - "thankYou": " {{appName}} का उपयोग करने के लिए धन्यवाद!", + "thankYou": "{{appName}} का उपयोग करने के लिए धन्यवाद!", "token": "टोकन", "tokenAuthFailed": "क्षमा करें, आपको इस कॉल में शामिल होने की अनुमति नहीं है।", + "tokenAuthFailedReason": { + "audInvalid": "अमान्य `aud` मान। यह `jitsi` होना चाहिए।", + "contextNotFound": "payload में `context` ऑब्जेक्ट नहीं मिला।", + "expInvalid": "अमान्य `exp` मान।", + "featureInvalid": "अमान्य फ़ीचर: {{feature}}, संभवतः अभी तक लागू नहीं किया गया।", + "featureValueInvalid": "फ़ीचर के लिए अमान्य मान: {{feature}}।", + "featuresNotFound": "payload में `features` ऑब्जेक्ट नहीं मिला।", + "headerNotFound": "हेडर नहीं मिला।", + "issInvalid": "अमान्य `iss` मान। यह `chat` होना चाहिए।", + "kidMismatch": "Key ID (kid) sub से मेल नहीं खाता।", + "kidNotFound": "Key ID (kid) नहीं मिली।", + "nbfFuture": "`nbf` मान भविष्य में है।", + "nbfInvalid": "अमान्य `nbf` मान।", + "payloadNotFound": "payload नहीं मिला।", + "tokenExpired": "टोकन समाप्त हो गया है।" + }, "tokenAuthFailedTitle": "प्रमाणीकरण विफल", + "tokenAuthFailedWithReasons": "क्षमा करें, आपको इस कॉल में शामिल होने की अनुमति नहीं है। संभावित कारण: {{reason}}", + "tokenAuthUnsupported": "Token URL समर्थित नहीं है।", "transcribing": "प्रतिलेखन", - "unlockRoom": "मीटिंग को $t(lockRoomPassword) निकालें", + "unauthenticatedAccessDisabled": "इस कॉल के लिए प्रमाणीकरण आवश्यक है। कृपया आगे बढ़ने के लिए लॉगिन करें।", + "unlockRoom": "मीटिंग $t(lockRoomPassword) निकालें", "user": "उपयोगकर्ता", "userIdentifier": "उपयोगकर्ता पहचानकर्ता", "userPassword": "उपयोगकर्ता पासवर्ड", + "verifyParticipantConfirm": "वे मेल खाते हैं", + "verifyParticipantDismiss": "वे मेल नहीं खाते", + "verifyParticipantQuestion": "प्रयोगात्मक: प्रतिभागी {{participantName}} से पूछें कि क्या वे उसी क्रम में समान सामग्री देख रहे हैं।", + "verifyParticipantTitle": "उपयोगकर्ता सत्यापन", "videoLink": "वीडियो लिंक", + "viewUpgradeOptions": "अपग्रेड विकल्प देखें", + "viewUpgradeOptionsContent": "रिकॉर्डिंग, ट्रांसक्रिप्शन, RTMP स्ट्रीमिंग और अधिक जैसी प्रीमियम सुविधाओं तक असीमित पहुंच के लिए, आपको अपनी योजना अपग्रेड करनी होगी।", + "viewUpgradeOptionsTitle": "आपने एक प्रीमियम सुविधा खोजी!", + "whiteboardLimitContent": "क्षमा करें, एक साथ whiteboard उपयोगकर्ताओं की सीमा पहुंच गई है।", + "whiteboardLimitReference": "अधिक जानकारी के लिए कृपया देखें", + "whiteboardLimitReferenceUrl": "हमारी वेबसाइट", + "whiteboardLimitTitle": "Whiteboard उपयोग प्रतिबंधित", "yourEntireScreen": "आपकी पूरी स्क्रीन" }, "documentSharing": { @@ -339,14 +567,46 @@ "title": "इस बैठक को एम्बेड करें" }, "feedback": { + "accessibilityLabel": { + "yourChoice": "आपकी पसंद: {{rating}}" + }, "average": "औसत", "bad": "बुरा", "detailsLabel": "इसके बारे में अधिक बताएं।", "good": "अच्छा", "rateExperience": "अपने बैठक के अनुभव को रेट करें", + "star": "स्टार", "veryBad": "बहुत बुरा", "veryGood": "बहुत अच्छा" }, + "fileSharing": { + "downloadFailedDescription": "कृपया पुनः प्रयास करें।", + "downloadFailedTitle": "डाउनलोड विफल", + "downloadFile": "डाउनलोड", + "downloadStarted": "फ़ाइल डाउनलोड शुरू हुई", + "dragAndDrop": "फ़ाइलें यहाँ या स्क्रीन पर कहीं भी खींचें और छोड़ें", + "fileAlreadyUploaded": "फ़ाइल पहले से इस मीटिंग में अपलोड की जा चुकी है।", + "fileRemovedByOther": "आपकी फ़ाइल '{{ fileName }}' हटा दी गई", + "fileTooLargeDescription": "कृपया सुनिश्चित करें कि फ़ाइल {{ maxFileSize }} से अधिक न हो।", + "fileTooLargeTitle": "चुनी गई फ़ाइल बहुत बड़ी है", + "fileUploadProgress": "फ़ाइल अपलोड प्रगति", + "fileUploadedSuccessfully": "फ़ाइल सफलतापूर्वक अपलोड की गई", + "newFileNotification": "{{ participantName }} ने '{{ fileName }}' साझा किया", + "removeFile": "हटाएं", + "removeFileSuccess": "फ़ाइल सफलतापूर्वक हटाई गई", + "uploadFailedDescription": "कृपया पुनः प्रयास करें।", + "uploadFailedTitle": "अपलोड विफल", + "uploadFile": "फ़ाइल साझा करें" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "वीडियो थंबनेल" + } + }, + "giphy": { + "noResults": "कोई परिणाम नहीं मिला :(", + "search": "GIPHY खोजें" + }, "helpView": { "title": "सहायता केंद्र" }, @@ -359,39 +619,51 @@ }, "info": { "accessibilityLabel": "जानकारी दिखाएं", - "addPassword": "$t(lockRoomPassword)जोड़ें", - "cancelPassword": "$t(lockRoomPassword)रद्द करें", + "addPassword": "$t(lockRoomPassword) जोड़ें", + "cancelPassword": "$t(lockRoomPassword) रद्द करें", "conferenceURL": "लिंक:", + "copyNumber": "नंबर कॉपी करें", "country": "देश", "dialANumber": "अपनी मीटिंग में शामिल होने के लिए, इनमें से किसी एक नंबर को डायल करें और फिर पिन डालें।", "dialInConferenceID": "पिन:", "dialInNotSupported": "क्षमा करें, वर्तमान में डायल करना समर्थित नहीं है।", "dialInNumber": "डायल-इन:", - "dialInSummaryError": "डायल-इन जानकारी लाने में त्रुटि कृपया बाद में पुनः प्रयास करें।", + "dialInSummaryError": "डायल-इन जानकारी लाने में त्रुटि। कृपया बाद में पुनः प्रयास करें।", "dialInTollFree": "टोल फ्री", "genericError": "वूप्स, कुछ गलत हो गया।", "inviteLiveStream": "इस बैठक की लाइव स्ट्रीम देखने के लिए, इस लिंक पर क्लिक करें: {{url}}", - "invitePhone": "इसके बजाय फोन से जुड़ने के लिए, इस पर टैप करें:: {{number}},,{{conferenceID}}#\n", - "invitePhoneAlternatives": "Looking for a different dial-in number?\nSee meeting dial-in numbers: {{url}}\n\n\nIf also dialing-in through a room phone, join without connecting to audio: {{silentUrl}}", + "invitePhone": "इसके बजाय फोन से जुड़ने के लिए, इस पर टैप करें: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "कोई अलग डायल-इन नंबर खोज रहे हैं?\nमीटिंग डायल-इन नंबर देखें: {{url}}\n\n\nयदि रूम फोन से भी डायल-इन कर रहे हैं, तो ऑडियो से कनेक्ट किए बिना शामिल हों: {{silentUrl}}", + "inviteSipEndpoint": "SIP पते का उपयोग करके शामिल होने के लिए, यह दर्ज करें: {{sipUri}}", + "inviteTextiOSInviteUrl": "शामिल होने के लिए निम्नलिखित लिंक पर क्लिक करें: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "यदि आप रूम फोन से डायल-इन कर रहे हैं, तो ऑडियो से कनेक्ट किए बिना शामिल होने के लिए यह लिंक उपयोग करें: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} आपको एक मीटिंग में आमंत्रित कर रहा/रही है।", + "inviteTextiOSPhone": "फोन से शामिल होने के लिए, यह नंबर उपयोग करें: {{number}},,{{conferenceID}}#. यदि आप कोई अलग नंबर खोज रहे हैं, तो यहाँ पूरी सूची है: {{didUrl}}.", "inviteURLFirstPartGeneral": "आपको एक बैठक में शामिल होने के लिए आमंत्रित किया गया है।", - "inviteURLFirstPartPersonal": "{{name}} आपको मीटिंग के लिए आमंत्रित कर रहा है।\n", + "inviteURLFirstPartPersonal": "{{name}} आपको मीटिंग के लिए आमंत्रित कर रहा/रही है।\n", "inviteURLSecondPart": "\nबैठक में शामिल हों:\n{{url}}\n", "label": "डायल-इन जानकारी", "liveStreamURL": "लाइव स्ट्रीम:", - "moreNumbers": "अधिक संख्या", + "moreNumbers": "अधिक नंबर", "noNumbers": "कोई डायल-इन नंबर नहीं।", "noPassword": "कोई नहीं", "noRoom": "डायल-इन करने के लिए कोई कक्ष निर्दिष्ट नहीं किया गया।", + "noWhiteboard": "व्हाइटबोर्ड लोड नहीं हो सका।", "numbers": "डायल-इन नंबर", - "password": "$t(lockRoomPasswordUppercase):", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "आप अपनी योजना की सीमा तक पहुंच गए हैं।", + "sip": "SIP पता", + "sipAudioOnly": "SIP केवल ऑडियो पता", "title": "साझा करें", - "tooltip": "इस मीटिंग के लिए लिंक और डायल-इन जानकारी साझा करें" + "tooltip": "इस मीटिंग के लिए लिंक और डायल-इन जानकारी साझा करें", + "upgradeOptions": "कृपया अपग्रेड विकल्प देखें", + "whiteboardError": "व्हाइटबोर्ड लोड करने में त्रुटि। कृपया बाद में पुनः प्रयास करें।" }, "inlineDialogFailure": { - "msg": "We stumbled a bit.", + "msg": "कुछ गड़बड़ हो गई।", "retry": "पुनः प्रयास करें", "support": "सहायता", - "supportMsg": "ऐसा बार बार हो रहा हो, तो सम्पर्क करे " + "supportMsg": "यदि यह बार-बार हो रहा है, तो संपर्क करें" }, "inviteDialog": { "alertText": "कुछ प्रतिभागियों को आमंत्रित करने में विफल।", @@ -401,22 +673,29 @@ "searchPlaceholder": "प्रतिभागी या फ़ोन नंबर", "send": "भेजें" }, + "jitsiHome": "{{logo}} लोगो, होमपेज से लिंक", "keyboardShortcuts": { "focusLocal": "अपने वीडियो पर केंद्रित करें", "focusRemote": "किसी अन्य व्यक्ति के वीडियो पर केंद्रित करें", "fullScreen": "पूर्ण स्क्रीन देखें या बाहर निकलें", + "giphyMenu": "GIPHY मेनू टॉगल करें", "keyboardShortcuts": "कीबोर्ड शॉर्टकट्स", "localRecording": "स्थानीय रिकॉर्डिंग नियंत्रण दिखाएं या छिपाएँ", "mute": "अपने माइक्रोफ़ोन को म्यूट या अनम्यूट करें", "pushToTalk": "बोलने के लिए दबाएं", "raiseHand": "अपना हाथ उठाएँ या नीचे करें", - "showSpeakerStats": "स्पीकर आंकड़े दिखाएं", + "showSpeakerStats": "प्रतिभागी आंकड़े दिखाएं", "toggleChat": "चैट खोलें या बंद करें", "toggleFilmstrip": "वीडियो थंबनेल दिखाएं या छिपाएँ", + "toggleParticipantsPane": "प्रतिभागी पैनल दिखाएं या छिपाएं", "toggleScreensharing": "कैमरा और स्क्रीन शेयरिंग के बीच स्विच करें", "toggleShortcuts": "कीबोर्ड शॉर्टकट दिखाएं या छिपाएं", "videoMute": "अपना कैमरा प्रारंभ या बंद करें" }, + "largeVideo": { + "screenIsShared": "आप अपनी स्क्रीन साझा कर रहे हैं", + "showMeWhatImSharing": "मुझे दिखाएं मैं क्या साझा कर रहा/रही हूं" + }, "liveStreaming": { "busy": "हम स्ट्रीमिंग संसाधनों को मुक्त करने पर काम कर रहे हैं। कृपया कुछ मिनटों में पुनः प्रयास करें।", "busyTitle": "सभी स्ट्रीमर वर्तमान में व्यस्त हैं", @@ -428,20 +707,21 @@ "errorAPI": "आपके YouTube प्रसारण तक पहुँचने में त्रुटि हुई। कृपया पुनः लॉगिन करें।", "errorLiveStreamNotEnabled": "{{email}} पर लाइव स्ट्रीमिंग सक्षम नहीं है। कृपया लाइव स्ट्रीमिंग सक्षम करें या ऐसे खाते में लॉग इन करें जिसमें लाइव स्ट्रीमिंग सक्षम हो।", "expandedOff": "लाइव स्ट्रीमिंग बंद हो गई है", - "expandedOn": "बैठक वर्तमान में YouTube पर स्ट्रीम की जा रही है।", + "expandedOn": "मीटिंग वर्तमान में लाइव स्ट्रीम की जा रही है", "expandedPending": "लाइव स्ट्रीमिंग शुरू की जा रही है…", "failedToStart": "लाइव स्ट्रीमिंग शुरू करने में विफल रहा", "getStreamKeyManually": "हम कोई लाइव स्ट्रीम प्राप्त नहीं कर सके। कृपया YouTube से अपनी लाइव स्ट्रीम कुंजी प्राप्त करने का प्रयास करें।", "googlePrivacyPolicy": "Google गोपनीयता नीति", + "inProgress": "रिकॉर्डिंग या लाइव स्ट्रीमिंग जारी है", "invalidStreamKey": "लाइव स्ट्रीम कुंजी गलत हो सकती है।", - "limitNotificationDescriptionNative": "आपकी स्ट्रीमिंग {{limit}} मिनट तक सीमित होगी। असीमित स्ट्रीमिंग के लिए {{app}} आज़माएँ।", - "limitNotificationDescriptionWeb": "अधिक मांग के कारण आपकी स्ट्रीमिंग {{limit}} मिनट तक सीमित होगी। असीमित स्ट्रीमिंग के लिए {{app}} आज़माएँ।", "off": "लाइव स्ट्रीमिंग बंद हो गई", "offBy": "{{name}} ने लाइव स्ट्रीमिंग बंद कर दी", "on": "लाइव स्ट्रीमिंग शुरू हो गई", "onBy": "{{name}} ने लाइव स्ट्रीमिंग शुरू की", "pending": "लाइव स्ट्रीम शुरू हो रही है…", + "policyError": "आपने बहुत जल्दी लाइव स्ट्रीम शुरू करने का प्रयास किया। कृपया बाद में पुनः प्रयास करें!", "serviceName": "लाइव स्ट्रीमिंग सेवा", + "sessionAlreadyActive": "यह सत्र पहले से रिकॉर्ड या लाइव स्ट्रीम किया जा रहा है।", "signIn": "Google से साइन इन करें", "signInCTA": "साइन इन करें या YouTube से अपनी लाइव स्ट्रीम कुंजी दर्ज करें।", "signOut": "साइन आउट करें", @@ -454,36 +734,43 @@ }, "lobby": { "allow": "अनुमति दें", - "backToKnockModeButton": "कोई पासवर्ड नहीं, इसके बजाय जुड़ने के लिए कहें", + "backToKnockModeButton": "जुड़ने के लिए कहें", + "chat": "चैट", "dialogTitle": "लॉबी मोड", "disableDialogContent": "लॉबी मोड वर्तमान में सक्षम है। यह सुविधा सुनिश्चित करती है कि अवांछित प्रतिभागी आपकी मीटिंग में शामिल नहीं हो सकते। क्या आप इसे अक्षम करना चाहते हैं?", "disableDialogSubmit": "अक्षम करें", "emailField": "अपना ईमेल पता दर्ज करें", "enableDialogPasswordField": "पासवर्ड सेट करें (वैकल्पिक)", "enableDialogSubmit": "सक्षम करें", - "enableDialogText": "Lobby mode lets you protect your meeting by only allowing people to enter after a formal approval by a moderator.", + "enableDialogText": "लॉबी मोड आपकी मीटिंग को सुरक्षित रखता है — लोग केवल मॉडरेटर की औपचारिक स्वीकृति के बाद ही प्रवेश कर सकते हैं।", "enterPasswordButton": "मीटिंग पासवर्ड दर्ज करें", "enterPasswordTitle": "मीटिंग में शामिल होने के लिए पासवर्ड दर्ज करें", + "errorMissingPassword": "कृपया मीटिंग का पासवर्ड दर्ज करें", "invalidPassword": "अमान्य पासवर्ड", - "joinRejectedMessage": "आपका अनुरोध एक मॉडरेटर द्वारा अस्वीकार कर दिया गया.", + "joinRejectedMessage": "आपका अनुरोध एक मॉडरेटर द्वारा अस्वीकार कर दिया गया।", + "joinRejectedTitle": "जुड़ने का अनुरोध अस्वीकार कर दिया गया।", "joinTitle": "मीटिंग में शामिल हों", "joinWithPasswordMessage": "पासवर्ड के साथ जुड़ने की कोशिश कर रहा है, कृपया प्रतीक्षा करें…", - "joiningMessage": "जैसे ही कोई आपके अनुरोध को स्वीकार करता है आप बैठक में शामिल हो जाएंगे", + "joiningMessage": "जैसे ही कोई आपके अनुरोध को स्वीकार करता है, आप बैठक में शामिल हो जाएंगे", "joiningTitle": "मीटिंग में शामिल होने के लिए कह रहा है…", - "joiningWithPasswordTitle": "पासवर्ड के साथ जुड़े…", - "knockButton": "जुड़ने के लिए कहें ", + "joiningWithPasswordTitle": "पासवर्ड के साथ जुड़ रहे हैं…", + "knockButton": "जुड़ने के लिए कहें", "knockTitle": "कोई व्यक्ति बैठक में शामिल होना चाहता है", "knockingParticipantList": "प्रतिभागी सूची दस्तक", + "lobbyChatStartedNotification": "{{moderator}} ने {{attendee}} के साथ लॉबी चैट शुरू की", + "lobbyChatStartedTitle": "{{moderator}} ने आपके साथ लॉबी चैट शुरू की है।", + "lobbyClosed": "लॉबी रूम बंद कर दिया गया है।", "nameField": "अपना नाम दर्ज करें", - "notificationLobbyAccessDenied": "{{targetParticipantName}} has been rejected to join by {{originParticipantName}}", - "notificationLobbyAccessGranted": "{{targetParticipantName}} has been allowed to join by {{originParticipantName}}", - "notificationLobbyDisabled": "लॉबी को {{originParticipantName}}द्वारा अक्षम कर दिया गया", - "notificationLobbyEnabled": "लॉबी को {{originParticipantName}}द्वारा सक्षम किया गया", + "notificationLobbyAccessDenied": "{{targetParticipantName}} को {{originParticipantName}} द्वारा शामिल होने से अस्वीकार किया गया", + "notificationLobbyAccessGranted": "{{targetParticipantName}} को {{originParticipantName}} द्वारा शामिल होने की अनुमति दी गई", + "notificationLobbyDisabled": "लॉबी को {{originParticipantName}} द्वारा अक्षम कर दिया गया", + "notificationLobbyEnabled": "लॉबी को {{originParticipantName}} द्वारा सक्षम किया गया", "notificationTitle": "लॉबी", "passwordField": "मीटिंग पासवर्ड दर्ज करें", "passwordJoinButton": "शामिल हों", "title": "लॉबी", - "toggleLabel": "लॉबी सक्षम करें" + "toggleLabel": "लॉबी सक्षम करें", + "waitForModerator": "कोई मॉडरेटर अभी तक नहीं आया है इसलिए सम्मेलन अभी शुरू नहीं हुआ है। यदि आप मॉडरेटर बनना चाहते हैं तो कृपया लॉग-इन करें। अन्यथा, कृपया प्रतीक्षा करें।" }, "localRecording": { "clientState": { @@ -495,7 +782,7 @@ "duration": "अवधि", "durationNA": "उपलब्ध नहीं", "encoding": "एन्कोडिंग", - "label": "स्थानीय रिकॉर्डिंग", + "label": "LOR", "labelToolTip": "स्थानीय रिकॉर्डिंग सक्रिय है", "localRecording": "स्थानीय रिकॉर्डिंग", "me": "मैं", @@ -509,9 +796,12 @@ "no": "नहीं", "participant": "प्रतिभागी", "participantStats": "प्रतिभागी आँकड़े", + "selectTabTitle": "🎥 रिकॉर्डिंग के लिए कृपया इस टैब को चुनें", "sessionToken": "सत्र टोकन", "start": "रिकॉर्डिंग प्रारंभ करें", "stop": "रिकॉर्डिंग बंद करें", + "stopping": "रिकॉर्डिंग बंद की जा रही है", + "wait": "कृपया प्रतीक्षा करें जब तक हम आपकी रिकॉर्डिंग सहेज रहे हैं", "yes": "हाँ" }, "lockRoomPassword": "पासवर्ड", @@ -522,52 +812,207 @@ }, "me": "मैं", "notify": { - "OldElectronAPPTitle": "Security vulnerability!", + "OldElectronAPPTitle": "सुरक्षा कमजोरी!", + "allowAll": "सभी को अनुमति दें", + "allowAudio": "ऑडियो की अनुमति दें", + "allowDesktop": "स्क्रीन शेयरिंग की अनुमति दें", + "allowVideo": "वीडियो की अनुमति दें", + "allowedUnmute": "आप अपना माइक्रोफ़ोन अनम्यूट कर सकते हैं, कैमरा शुरू कर सकते हैं या स्क्रीन साझा कर सकते हैं।", + "audioUnmuteBlockedDescription": "सिस्टम सीमाओं के कारण माइक अनम्यूट ऑपरेशन अस्थायी रूप से अवरुद्ध है।", + "audioUnmuteBlockedTitle": "माइक अनम्यूट अवरुद्ध!", + "chatMessages": "चैट संदेश", "connectedOneMember": "{{name}} मीटिंग में शामिल हुए", "connectedThreePlusMembers": "{{name}} और {{count}} अन्य लोग मीटिंग में शामिल हुए", - "connectedTwoMembers": "{{first}} और {{second}} मीटिंग में शामिल हुआ", + "connectedTwoMembers": "{{first}} और {{second}} मीटिंग में शामिल हुए", + "connectionFailed": "कनेक्शन विफल। कृपया बाद में पुनः प्रयास करें!", + "dataChannelClosed": "वीडियो गुणवत्ता प्रभावित हो सकती है", + "dataChannelClosedDescription": "ब्रिज चैनल बंद है और इसलिए वीडियो गुणवत्ता न्यूनतम सेटिंग तक सीमित हो सकती है।", + "dataChannelClosedDescriptionWithAudio": "ब्रिज चैनल बंद है और इसलिए ऑडियो और वीडियो में व्यवधान हो सकता है।", + "dataChannelClosedWithAudio": "ऑडियो और वीडियो गुणवत्ता प्रभावित हो सकती है", + "desktopMutedRemotelyTitle": "आपकी स्क्रीन शेयरिंग {{participantDisplayName}} द्वारा बंद कर दी गई है", + "disabledIframe": "एम्बेडिंग केवल डेमो उद्देश्यों के लिए है, इसलिए यह कॉल {{timeout}} मिनट में डिस्कनेक्ट हो जाएगी।", + "disabledIframeSecondaryNative": "{{domain}} एम्बेड करना केवल डेमो उद्देश्यों के लिए है, इसलिए यह कॉल {{timeout}} मिनट में डिस्कनेक्ट हो जाएगी।", + "disabledIframeSecondaryWeb": "{{domain}} एम्बेड करना केवल डेमो उद्देश्यों के लिए है, इसलिए यह कॉल {{timeout}} मिनट में डिस्कनेक्ट हो जाएगी। उत्पादन एम्बेडिंग के लिए कृपया Jitsi as a Service का उपयोग करें!", "disconnected": "डिस्कनेक्ट", + "displayNotifications": "इसके लिए सूचनाएँ दिखाएँ", + "dontRemindMe": "मुझे याद न दिलाएं", "focus": "Conference focus", "focusFail": "{{component}} उपलब्ध नहीं - {{ms}} सेकंड में पुनः प्रयास करें", - "grantedTo": "Moderator rights granted to {{to}}!", + "gifsMenu": "GIPHY", + "grantedTo": "{{to}} को मॉडरेटर अधिकार प्रदान किए गए!", + "groupTitle": "सूचनाएँ", + "hostAskedUnmute": "मॉडरेटर चाहते हैं कि आप भाग लें।", + "invalidTenant": "अमान्य टेनेंट", + "invalidTenantHyphenDescription": "आप जिस टेनेंट का उपयोग कर रहे हैं वह अमान्य है (हाइफन से शुरू या समाप्त होता है)।", + "invalidTenantLengthDescription": "आप जिस टेनेंट का उपयोग कर रहे हैं वह बहुत लंबा है।", "invitedOneMember": "{{name}} को आमंत्रित किया गया", "invitedThreePlusMembers": "{{name}} और {{count}} अन्य लोगों को आमंत्रित किया गया", "invitedTwoMembers": "{{first}} और {{second}} को आमंत्रित किया गया", + "joinMeeting": "शामिल हों", "kickParticipant": "{{kicked}} को {{kicker}} द्वारा किक किया गया", + "leftOneMember": "{{name}} मीटिंग से चले गए", + "leftThreePlusMembers": "{{name}} और कई अन्य लोग मीटिंग से चले गए", + "leftTwoMembers": "{{first}} और {{second}} मीटिंग से चले गए", + "linkToSalesforce": "Salesforce से लिंक करें", + "linkToSalesforceDescription": "आप मीटिंग सारांश को Salesforce ऑब्जेक्ट से लिंक कर सकते हैं।", + "linkToSalesforceError": "मीटिंग को Salesforce से लिंक करने में विफल", + "linkToSalesforceKey": "इस मीटिंग को लिंक करें", + "linkToSalesforceProgress": "मीटिंग को Salesforce से लिंक किया जा रहा है…", + "linkToSalesforceSuccess": "मीटिंग Salesforce से लिंक कर दी गई", + "localRecordingStarted": "{{name}} ने स्थानीय रिकॉर्डिंग शुरू की है।", + "localRecordingStopped": "{{name}} ने स्थानीय रिकॉर्डिंग बंद की है।", "me": "मैं", + "moderationInEffectCSDescription": "यदि आप स्क्रीन साझा करना चाहते हैं तो कृपया हाथ उठाएं।", + "moderationInEffectCSTitle": "स्क्रीन शेयरिंग मॉडरेटर द्वारा अवरुद्ध है", + "moderationInEffectDescription": "यदि आप बोलना चाहते हैं तो कृपया हाथ उठाएं।", + "moderationInEffectTitle": "आपका माइक्रोफ़ोन मॉडरेटर द्वारा म्यूट किया गया है", + "moderationInEffectVideoDescription": "यदि आप अपना कैमरा शुरू करना चाहते हैं तो कृपया हाथ उठाएं।", + "moderationInEffectVideoTitle": "आपका कैमरा मॉडरेटर द्वारा अवरुद्ध है", + "moderationRequestFromModerator": "होस्ट चाहते हैं कि आप अनम्यूट करें", + "moderationRequestFromParticipant": "बोलना चाहते हैं", + "moderationStartedTitle": "मॉडरेशन शुरू हुआ", + "moderationStoppedTitle": "मॉडरेशन बंद हुआ", + "moderationToggleDescription": "{{participantDisplayName}} द्वारा", "moderator": "मॉडरेटर के अधिकार दिए गए!", "muted": "आपने वार्तालाप को म्यूट करके शुरू किया है।", "mutedRemotelyDescription": "जब आप बोलने के लिए तैयार हों, तो आप हमेशा अनम्यूट कर सकते हैं। बैठक में शोर कम रखने के लिए बोलने के बाद म्यूट कर दें।", - "mutedRemotelyTitle": "आपको {{participantDisplayName}} द्वारा म्यूट कर दिया गया है!", + "mutedRemotelyTitle": "आपको {{participantDisplayName}} द्वारा म्यूट कर दिया गया है", "mutedTitle": "आप मौन हैं!", "newDeviceAction": "उपयोग करें", "newDeviceAudioTitle": "नए ऑडियो डिवाइस का पता चला", "newDeviceCameraTitle": "नए कैमरे का पता चला", - "oldElectronClientDescription1": "आप जित्सी मीट क्लाइंट के एक पुराने संस्करण का उपयोग करते हुए दिखाई देते हैं, जिसमे सुरक्षा कमजोरियां ज्ञात हैं।", + "nextToSpeak": "बोलने की बारी में आप अगले हैं", + "noiseSuppressionDesktopAudioDescription": "डेस्कटॉप ऑडियो साझा करते समय अतिरिक्त शोर दमन सक्षम नहीं किया जा सकता, कृपया इसे बंद करें और पुनः प्रयास करें।", + "noiseSuppressionFailedTitle": "अतिरिक्त शोर दमन शुरू करने में विफल", + "noiseSuppressionStereoDescription": "अतिरिक्त शोर दमन वर्तमान में स्टीरियो ऑडियो के साथ समर्थित नहीं है।", + "oldElectronClientDescription1": "आप जित्सी मीट क्लाइंट के एक पुराने संस्करण का उपयोग करते हुए दिखाई देते हैं, जिसमे सुरक्षा कमजोरियां ज्ञात हैं। कृपया हमारे ", "oldElectronClientDescription2": "नवीनतम बिल्ड", - "oldElectronClientDescription3": " अब!", + "oldElectronClientDescription3": " पर अभी अपडेट करें!", + "openChat": "चैट खोलें", + "participantWantsToJoin": "मीटिंग में शामिल होना चाहते हैं", + "participantsWantToJoin": "मीटिंग में शामिल होना चाहते हैं", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) किसी अन्य प्रतिभागी द्वारा हटा दिया गया", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) दूसरे प्रतिभागी द्वारा निर्धारित", - "raisedHand": "{{name}} बोलना चाहेंगे।", - "somebody": "Somebody", + "raiseHandAction": "हाथ उठाएं", + "raisedHand": "भाग लेना चाहेंगे।", + "raisedHands": "{{participantName}} और {{raisedHands}} अन्य लोग", + "reactionSounds": "ध्वनि बंद करें", + "reactionSoundsForAll": "सभी के लिए ध्वनि बंद करें", + "screenShareNoAudio": "विंडो चयन स्क्रीन में ऑडियो साझा करें बॉक्स चेक नहीं किया गया था।", + "screenShareNoAudioTitle": "सिस्टम ऑडियो साझा नहीं हो सका!", + "screenSharingAudioOnlyDescription": "कृपया ध्यान दें कि स्क्रीन साझा करने से \"सर्वश्रेष्ठ प्रदर्शन\" मोड प्रभावित होगा और आप अधिक बैंडविड्थ का उपयोग करेंगे।", + "screenSharingAudioOnlyTitle": "\"सर्वश्रेष्ठ प्रदर्शन\" मोड", + "selfViewTitle": "आप सेटिंग से सेल्फ-व्यू को हमेशा दिखा सकते हैं", + "somebody": "कोई", "startSilentDescription": "ऑडियो सक्षम करने के लिए मीटिंग को फिर से करें", "startSilentTitle": "आप बिना ऑडियो आउटपुट के साथ शामिल हुए!", - "suboptimalBrowserWarning": "हमें डर है कि आपकी मीटिंग अनुभव यहाँ बहुत अच्छा नहीं होने वाला है। हम इसे सुधारने के तरीके ढूंढ़ रहे हैं, लेकिन उस समय तक कृपया पूरी तरह से समर्थित ब्राउज़र में से एक का प्रयास करें", + "suboptimalBrowserWarning": "हमें डर है कि आपकी मीटिंग अनुभव यहाँ बहुत अच्छा नहीं होने वाला है। हम इसे सुधारने के तरीके ढूंढ़ रहे हैं, लेकिन उस समय तक कृपया पूरी तरह से समर्थित ब्राउज़र में से एक का प्रयास करें।", "suboptimalExperienceTitle": "ब्राउज़र चेतावनी", + "suggestRecordingAction": "शुरू करें", + "suggestRecordingDescription": "क्या आप रिकॉर्डिंग शुरू करना चाहते हैं?", + "suggestRecordingTitle": "इस मीटिंग को रिकॉर्ड करें", "unmute": "अनम्यूट", + "unmuteScreen": "स्क्रीन शेयरिंग शुरू करें", + "unmuteVideo": "वीडियो अनम्यूट करें", "videoMutedRemotelyDescription": "आप इसे हमेशा फिर से चालू कर सकते हैं।", - "videoMutedRemotelyTitle": "आपका कैमरा {{participantDisplayName}}द्वारा अक्षम कर दिया गया है!" + "videoMutedRemotelyTitle": "आपका वीडियो {{participantDisplayName}} द्वारा बंद कर दिया गया है", + "videoUnmuteBlockedDescription": "सिस्टम सीमाओं के कारण कैमरा अनम्यूट और डेस्कटॉप शेयरिंग ऑपरेशन अस्थायी रूप से अवरुद्ध हैं।", + "videoUnmuteBlockedTitle": "कैमरा अनम्यूट और डेस्कटॉप शेयरिंग अवरुद्ध!", + "viewLobby": "लॉबी देखें", + "viewParticipants": "प्रतिभागी देखें", + "viewVisitors": "दर्शक देखें", + "waitingParticipants": "{{waitingParticipants}} लोग", + "waitingVisitors": "कतार में दर्शक: {{waitingVisitors}}", + "waitingVisitorsTitle": "मीटिंग अभी लाइव नहीं है!", + "whiteboardLimitDescription": "कृपया अपनी प्रगति सहेजें, क्योंकि उपयोगकर्ता सीमा जल्द पहुंच जाएगी और व्हाइटबोर्ड बंद हो जाएगा।", + "whiteboardLimitTitle": "व्हाइटबोर्ड उपयोग" }, "participantsPane": { "actions": { - "reject": "अस्वीकार" - } + "admit": "प्रवेश दें", + "admitAll": "सभी को प्रवेश दें", + "allow": "गैर-मॉडरेटर को अनुमति दें:", + "allowDesktop": "स्क्रीन शेयरिंग की अनुमति दें", + "allowVideo": "वीडियो की अनुमति दें", + "askDesktop": "स्क्रीन साझा करने के लिए कहें", + "askUnmute": "अनम्यूट करने के लिए कहें", + "audioModeration": "खुद को अनम्यूट करें", + "blockEveryoneMicCamera": "सभी का माइक और कैमरा अवरुद्ध करें", + "breakoutRooms": "ब्रेकआउट रूम", + "desktopModeration": "स्क्रीन शेयरिंग शुरू करें", + "goLive": "लाइव जाएं", + "invite": "किसी को आमंत्रित करें", + "lowerAllHands": "सभी के हाथ नीचे करें", + "lowerHand": "हाथ नीचे करें", + "moreModerationActions": "अधिक मॉडरेशन विकल्प", + "moreModerationControls": "अधिक मॉडरेशन नियंत्रण", + "moreParticipantOptions": "अधिक प्रतिभागी विकल्प", + "mute": "म्यूट करें", + "muteAll": "सभी को म्यूट करें", + "muteEveryoneElse": "बाकी सभी को म्यूट करें", + "reject": "अस्वीकार", + "stopDesktop": "स्क्रीन शेयरिंग बंद करें", + "stopEveryonesDesktop": "सभी की स्क्रीन-शेयर बंद करें", + "stopEveryonesVideo": "सभी का वीडियो बंद करें", + "stopVideo": "वीडियो बंद करें", + "unblockEveryoneMicCamera": "सभी का माइक और कैमरा अनब्लॉक करें", + "videoModeration": "उनका वीडियो शुरू करें" + }, + "close": "बंद करें", + "headings": { + "lobby": "लॉबी ({{count}})", + "participantsList": "मीटिंग प्रतिभागी ({{count}})", + "viewerRequests": "दर्शकों के अनुरोध {{count}}", + "visitorInQueue": " (प्रतीक्षारत {{count}})", + "visitorRequests": " (अनुरोध {{count}})", + "visitors": "दर्शक {{count}}", + "visitorsList": "दर्शक ({{count}})", + "waitingLobby": "लॉबी में प्रतीक्षारत ({{count}})" + }, + "search": "प्रतिभागी खोजें", + "searchDescription": "प्रतिभागियों को फ़िल्टर करने के लिए टाइप करना शुरू करें", + "title": "प्रतिभागी" }, "passwordDigitsOnly": "अधिकतम {{number}} अंक", "passwordSetRemotely": "दूसरे प्रतिभागी द्वारा निर्धारित", + "pinParticipant": "{{participantName}} - पिन करें", + "pinnedParticipant": "प्रतिभागी पिन किया गया है", "polls": { + "answer": { + "edit": "संपादित करें", + "send": "भेजें", + "skip": "छोड़ें", + "submit": "जमा करें" + }, + "by": "{{ name }} द्वारा", + "closeButton": "पोल बंद करें", + "create": { + "accessibilityLabel": { + "send": "पोल भेजें" + }, + "addOption": "विकल्प जोड़ें", + "answerPlaceholder": "विकल्प {{index}}", + "cancel": "रद्द करें", + "create": "पोल बनाएं", + "pollOption": "पोल विकल्प {{index}}", + "pollQuestion": "पोल प्रश्न", + "questionPlaceholder": "प्रश्न पूछें", + "removeOption": "विकल्प हटाएं", + "save": "सहेजें" + }, "errors": { "notUniqueOption": "विकल्प अद्वितीय होना चाहिए" + }, + "notification": { + "description": "वोट करने के लिए पोल टैब खोलें", + "title": "इस मीटिंग में एक नया पोल जोड़ा गया" + }, + "results": { + "changeVote": "वोट बदलें", + "empty": "मीटिंग में अभी तक कोई पोल नहीं है।", + "hideDetailedResults": "विवरण छुपाएं", + "showDetailedResults": "विवरण दिखाएं", + "vote": "वोट करें" } }, "poweredby": "powered by", @@ -575,16 +1020,18 @@ "audioAndVideoError": "ऑडियो और वीडियो त्रुटि:", "audioDeviceProblem": "आपके ऑडियो डिवाइस में कोई समस्या है", "audioOnlyError": "ऑडियो त्रुटि:", - "audioTrackError": "ऑडियो ट्रैक नहीं बना सका", + "audioTrackError": "ऑडियो ट्रैक नहीं बना सका।", "callMe": "मुझे कॉल करें", "callMeAtNumber": "मुझे इस नंबर पर कॉल करें:", "calling": "कॉलिंग", "configuringDevices": "डिवाइस कॉन्फ़िगर कर रहा है…", "connectedWithAudioQ": "क्या आप ऑडियो से जुड़े हैं?", "connection": { + "failed": "कनेक्शन परीक्षण विफल!", "good": "आपका इंटरनेट कनेक्शन अच्छा है!", "nonOptimal": "आपका इंटरनेट कनेक्शन आदर्श नहीं है", - "poor": "आपका इंटरनेट कनेक्शन खराब है" + "poor": "आपका इंटरनेट कनेक्शन खराब है", + "running": "कनेक्शन परीक्षण चल रहा है…" }, "connectionDetails": { "audioClipping": "हमें उम्मीद है कि आपका ऑडियो कट सकता है।", @@ -593,6 +1040,7 @@ "goodQuality": "बहुत बढ़िया! आपकी मीडिया गुणवत्ता शानदार होगी।", "noMediaConnectivity": "हम इस परीक्षण के लिए मीडिया कनेक्टिविटी स्थापित करने में असमर्थ हैं। यह आमतौर पर फ़ायरवॉल या NAT के कारण होता है।", "noVideo": "हमें उम्मीद है कि आपका वीडियो बहुत खराब होगा।", + "testFailed": "कनेक्शन परीक्षण में अप्रत्याशित समस्याएं आईं, लेकिन इससे आपका अनुभव प्रभावित नहीं हो सकता।", "undetectable": "यदि आप अभी भी ब्राउज़र में कॉल नहीं कर पा रहे हैं, तो हम अनुशंसा करते हैं कि आप सुनिश्चित करें कि आपके स्पीकर, माइक्रोफ़ोन और कैमरा सही तरीके से सेट किए गए हैं, कि आपने अपने ब्राउज़र को माइक्रोफ़ोन और कैमरा उपयोग की अनुमति दी है, और आपका ब्राउज़र संस्करण अपडेट है। यदि समस्या बनी रहती है, तो आपको वेब एप्लिकेशन डेवलपर से संपर्क करना चाहिए।", "veryPoorConnection": "हमें उम्मीद है कि आपकी कॉल गुणवत्ता बहुत खराब होगी।", "videoFreezing": "हमें उम्मीद है कि आपका वीडियो फ्रीज़ होगा, काला हो जाएगा और धुंधला दिखेगा।", @@ -600,7 +1048,7 @@ "videoLowQuality": "हमें उम्मीद है कि आपका वीडियो फ्रेम दर और रिज़ॉल्यूशन के मामले में निम्न गुणवत्ता का होगा।", "videoTearing": "हमें उम्मीद है कि आपका वीडियो धुंधला होगा या इसमें दृश्य गड़बड़ियां हो सकती हैं।" }, - "copyAndShare": "मीटिंग लिंक कॉपी और साझा करे ", + "copyAndShare": "मीटिंग लिंक कॉपी और साझा करें", "dialInMeeting": "मीटिंग में डायल करें", "dialInPin": "मीटिंग में डायल करें और पिन कोड डालें:", "dialing": "डायलिंग", @@ -610,21 +1058,27 @@ "errorDialOutFailed": "डायल नहीं कर सका। कॉल विफल", "errorDialOutStatus": "डायल आउट स्थिति प्राप्त करने में त्रुटि", "errorMissingName": "कृपया बैठक में शामिल होने के लिए अपना नाम दर्ज करें", + "errorNoPermissions": "आपको माइक्रोफ़ोन और कैमरा एक्सेस सक्षम करना होगा", "errorStatusCode": "त्रुटि डायलिंग आउट, स्थिति कोड: {{status}}", "errorValidation": "संख्या सत्यापन विफल", "iWantToDialIn": "मैं डायल करना चाहता हूं", "initiated": "कॉल आरंभ", "joinAudioByPhone": "फोन ऑडियो के साथ जुड़ें", "joinMeeting": "मीटिंग में शामिल हों", + "joinMeetingInLowBandwidthMode": "कम बैंडविड्थ मोड में शामिल हों", "joinWithoutAudio": "ऑडियो के बिना जुड़ें", + "keyboardShortcuts": "कीबोर्ड शॉर्टकट सक्षम करें", "linkCopied": "लिंक क्लिपबोर्ड पर कॉपी किया गया", - "lookGood": "ऐसा लगता है कि आपका माइक्रोफ़ोन ठीक से काम कर रहा है", + "lookGood": "आपके डिवाइस ठीक से काम कर रहे हैं", "or": "या", "premeeting": "प्री मीटिंग", + "proceedAnyway": "फिर भी आगे बढ़ें", + "recordingWarning": "अन्य प्रतिभागी इस कॉल को रिकॉर्ड कर सकते हैं", "screenSharingError": "स्क्रीन शेयरिंग त्रुटि:", "startWithPhone": "फोन ऑडियो से शुरू करें", + "unsafeRoomConsent": "मैं जोखिम समझता हूं, मैं मीटिंग में शामिल होना चाहता हूं", "videoOnlyError": "वीडियो त्रुटि:", - "videoTrackError": "वीडियो ट्रैक नहीं बना सका", + "videoTrackError": "वीडियो ट्रैक नहीं बना सका।", "viewAllNumbers": "सभी नंबर देखें" }, "presenceStatus": { @@ -635,60 +1089,113 @@ "connecting2": "कनेक्टिंग*…", "disconnected": "डिस्कनेक्ट किया गया", "expired": "एक्सपायर्ड", - "ignored": "Ignored", + "ignored": "अनदेखा किया गया", "initializingCall": "कॉल प्रारंभ की जा रही है…", "invited": "आमंत्रित", "rejected": "अस्वीकृत", - "ringing": "Ringing…" + "ringing": "घंटी बज रही है…" }, "profile": { - "setDisplayNameLabel": "अपना नाम सेट करें", + "avatar": "अवतार", + "setDisplayNameLabel": "नाम", "setEmailInput": "ई-मेल दर्ज करें", - "setEmailLabel": "Set अपना ग्रेवार्ट ईमेल सेट करें", + "setEmailLabel": "Gravatar ईमेल", "title": "प्रोफ़ाइल" }, "raisedHand": "बोलना चाहेंगे", + "raisedHandsLabel": "उठे हुए हाथों की संख्या", + "record": { + "already": { + "linked": "मीटिंग पहले से इस Salesforce ऑब्जेक्ट से लिंक है।" + }, + "type": { + "account": "खाता", + "contact": "संपर्क", + "lead": "लीड", + "opportunity": "अवसर", + "owner": "स्वामी" + } + }, "recording": { "authDropboxText": "ड्रॉपबॉक्स पर अपलोड करें", "availableSpace": "उपलब्ध स्थान: {{spaceLeft}} MB (लगभग {{duration}} मिनट की रिकॉर्डिंग)", "beta": "बीटा", "busy": "हम रिकॉर्डिंग संसाधनों को मुक्त करने पर काम कर रहे हैं। कृपया कुछ मिनटों में पुनः प्रयास करें।", "busyTitle": "सभी रिकॉर्डर अभी व्यस्त हैं", + "copyLink": "लिंक कॉपी करें", "error": "रिकॉर्डिंग विफल हुई। कृपया पुनः प्रयास करें।", + "errorFetchingLink": "रिकॉर्डिंग लिंक प्राप्त करने में त्रुटि।", "expandedOff": "रिकॉर्डिंग बंद हो गई है", "expandedOn": "बैठक की रिकॉर्डिंग की जा रही है।", "expandedPending": "रिकॉर्डिंग शुरू की जा रही है…", "failedToStart": "रिकॉर्डिंग शुरू करने में विफलता हुई।", "fileSharingdescription": "रिकॉर्डिंग को बैठक प्रतिभागियों के साथ साझा करें", + "highlight": "हाइलाइट", + "highlightMoment": "महत्वपूर्ण क्षण", + "highlightMomentDisabled": "रिकॉर्डिंग शुरू होने पर आप क्षणों को हाइलाइट कर सकते हैं", + "highlightMomentSuccess": "क्षण हाइलाइट किया गया", + "highlightMomentSucessDescription": "आपका हाइलाइट किया गया क्षण मीटिंग सारांश में जोड़ा जाएगा।", + "inProgress": "रिकॉर्डिंग या लाइव स्ट्रीमिंग प्रगति में है", "limitNotificationDescriptionNative": "उच्च मांग के कारण आपकी रिकॉर्डिंग {{limit}} मिनट तक सीमित रहेगी। असीमित रिकॉर्डिंग के लिए <3>{{app}} आज़माएँ।", "limitNotificationDescriptionWeb": "उच्च मांग के कारण आपकी रिकॉर्डिंग {{limit}} मिनट तक सीमित रहेगी। असीमित रिकॉर्डिंग के लिए {{app}} आज़माएँ।", + "linkGenerated": "हमने आपकी रिकॉर्डिंग का एक लिंक तैयार किया है।", "live": "लाइव", + "localRecordingNoNotificationWarning": "रिकॉर्डिंग की सूचना अन्य प्रतिभागियों को नहीं दी जाएगी। आपको उन्हें स्वयं बताना होगा कि बैठक रिकॉर्ड हो रही है।", + "localRecordingNoVideo": "वीडियो रिकॉर्ड नहीं हो रहा है", + "localRecordingStartWarning": "बैठक से बाहर निकलने से पहले कृपया रिकॉर्डिंग बंद करना सुनिश्चित करें ताकि वह सहेजी जा सके।", + "localRecordingStartWarningTitle": "रिकॉर्डिंग सहेजने के लिए उसे बंद करें", + "localRecordingVideoStop": "आपका वीडियो बंद करने से स्थानीय रिकॉर्डिंग भी बंद हो जाएगी। क्या आप जारी रखना चाहते हैं?", + "localRecordingVideoWarning": "वीडियो रिकॉर्ड करने के लिए रिकॉर्डिंग शुरू करते समय वीडियो चालू होना आवश्यक है", + "localRecordingWarning": "सही वीडियो और ऑडियो के लिए कृपया वर्तमान टैब का चयन करना सुनिश्चित करें।", "loggedIn": "{{userName}} के रूप में लॉग इन किया गया", + "noMicPermission": "माइक्रोफ़ोन ट्रैक नहीं बनाया जा सका। कृपया माइक्रोफ़ोन उपयोग की अनुमति दें।", + "noStreams": "कोई ऑडियो या वीडियो स्ट्रीम नहीं मिला।", "off": "रिकॉर्डिंग बंद हो गई", "offBy": "{{name}} ने रिकॉर्डिंग बंद की", "on": "रिकॉर्डिंग शुरू हो गई", "onBy": "{{name}} ने रिकॉर्डिंग शुरू की", + "onlyRecordSelf": "केवल मेरी ऑडियो और वीडियो स्ट्रीम रिकॉर्ड करें", "pending": "बैठक की रिकॉर्डिंग की तैयारी हो रही है…", + "policyError": "आपने बहुत जल्दी रिकॉर्डिंग शुरू करने का प्रयास किया। कृपया बाद में पुनः प्रयास करें!", "rec": "रिकॉर्डिंग", + "recordAudioAndVideo": "ऑडियो और वीडियो रिकॉर्ड करें", + "recordTranscription": "ट्रांसक्रिप्शन रिकॉर्ड करें", + "saveLocalRecording": "रिकॉर्डिंग फ़ाइल स्थानीय रूप से सहेजें (बीटा)", "serviceDescription": "आपकी रिकॉर्डिंग को रिकॉर्डिंग सेवा द्वारा सहेजा जाएगा", "serviceDescriptionCloud": "क्लाउड रिकॉर्डिंग", + "serviceDescriptionCloudInfo": "रिकॉर्ड की गई बैठकें रिकॉर्डिंग के 24 घंटे बाद स्वचालित रूप से हटा दी जाती हैं।", "serviceName": "रिकॉर्डिंग सेवा", + "sessionAlreadyActive": "यह सत्र पहले से रिकॉर्ड या लाइव स्ट्रीम हो रहा है।", + "showAdvancedOptions": "उन्नत विकल्प", "signIn": "साइन इन करें", "signOut": "साइन आउट करें", + "surfaceError": "कृपया वर्तमान टैब चुनें।", "title": "रिकॉर्डिंग", "unavailable": "ओह! {{serviceName}} वर्तमान में अनुपलब्ध है। हम इस समस्या को हल करने पर काम कर रहे हैं। कृपया बाद में पुनः प्रयास करें।", - "unavailableTitle": "रिकॉर्डिंग उपलब्ध नहीं है" + "unavailableTitle": "रिकॉर्डिंग उपलब्ध नहीं है", + "uploadToCloud": "क्लाउड पर अपलोड करें" }, + "screenshareDisplayName": "{{name}} की स्क्रीन", "sectionList": { "pullToRefresh": "रीफ़्रेश करने के लिए नीचे खींचें" }, "security": { "about": "आप अपनी मीटिंग में $t(lockRoomPassword) जोड़ सकते हैं। सहभागियों को मीटिंग में शामिल होने से पहले $t(lockRoomPassword) प्रदान करना होगा।", - "aboutReadOnly": "Moderator participants can add a $t(lockRoomPassword) to the meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.", + "aboutReadOnly": "मॉडरेटर मीटिंग में $t(lockRoomPassword) जोड़ सकते हैं। प्रतिभागियों को मीटिंग में शामिल होने से पहले यह $t(lockRoomPassword) प्रदान करना होगा।", "insecureRoomNameWarning": "कमरे का नाम असुरक्षित है। अनचाहे सहभागियों की कॉन्फ्रेंस में शामिल हो सकते हैं। सुरक्षा बटन का उपयोग करके अपनी मीटिंग को सुरक्षित बनाने का विचार करें। ", - "securityOptions": "Security options" + "insecureRoomNameWarningNative": "कमरे का नाम असुरक्षित है। अनचाहे प्रतिभागी आपकी मीटिंग में शामिल हो सकते हैं। {{recommendAction}} अपनी मीटिंग सुरक्षित करने के बारे में अधिक जानें", + "insecureRoomNameWarningWeb": "कमरे का नाम असुरक्षित है। अनचाहे प्रतिभागी आपकी मीटिंग में शामिल हो सकते हैं। {{recommendAction}} अपनी मीटिंग सुरक्षित करने के बारे में यहाँ अधिक जानें।", + "securityOptions": "Security options", + "title": "सुरक्षा विकल्प", + "unsafeRoomActions": { + "meeting": "सुरक्षा बटन का उपयोग करके अपनी मीटिंग सुरक्षित करने पर विचार करें।", + "prejoin": "अधिक अद्वितीय मीटिंग नाम उपयोग करने पर विचार करें।", + "welcome": "अधिक अद्वितीय मीटिंग नाम उपयोग करने पर विचार करें, या सुझावों में से एक चुनें।" + } }, "settings": { + "audio": "ऑडियो", + "buttonLabel": "सेटिंग्स", "calendar": { "about": "{{appName}} कैलेंडर एकीकरण आपके कैलेंडर तक सुरक्षित रूप से पहुंचने के लिए उपयोग किया जाता है ताकि यह आगामी कार्यक्रम पढ़ सके।", "disconnect": "डिस्कनेक्ट करें", @@ -696,29 +1203,52 @@ "signedIn": "वर्तमान में {{email}} के कैलेंडर कार्यक्रमों तक पहुंच रही है। कैलेंडर कार्यक्रमों की पहुंच बंद करने के लिए नीचे दिए गए डिस्कनेक्ट बटन पर क्लिक करें।", "title": "कैलेंडर" }, + "chatWithPermissions": "गैर-मॉडरेटर के लिए चैट अक्षम करें", + "desktopShareFramerate": "डेस्कटॉप शेयरिंग फ्रेम दर", + "desktopShareHighFpsWarning": "डेस्कटॉप शेयरिंग के लिए अधिक फ्रेम दर आपकी बैंडविड्थ को प्रभावित कर सकती है। नई सेटिंग्स लागू करने के लिए स्क्रीन शेयर पुनः आरंभ करें।", + "desktopShareWarning": "नई सेटिंग्स लागू करने के लिए आपको स्क्रीन शेयर पुनः आरंभ करना होगा।", "devices": "डिवाइस", "followMe": "हर कोई मेरा अनुसरण करेगा", + "followMeRecorder": "रिकॉर्डर मेरा अनुसरण करेगा", + "framesPerSecond": "फ्रेम-प्रति-सेकंड", + "incomingMessage": "आने वाला संदेश", "language": "भाषा", "loggedIn": "{{name}} के रूप में लॉग इन किया", + "maxStageParticipants": "मुख्य स्टेज पर पिन किए जा सकने वाले प्रतिभागियों की अधिकतम संख्या", "microphones": "माइक्रोफोन", - "moderator": "Moderator", - "more": "More", + "moderator": "होस्ट", + "moderatorOptions": "मॉडरेटर विकल्प", + "more": "अधिक", "name": "नाम", "noDevice": "कोई नहीं", + "notifications": "सूचना", + "participantJoined": "प्रतिभागी जुड़े", + "participantKnocking": "प्रतिभागी लॉबी में आए", + "participantLeft": "प्रतिभागी बाहर गए", + "playSounds": "ध्वनि चलाएँ", + "reactions": "मीटिंग प्रतिक्रियाएँ", + "sameAsSystem": "सिस्टम के समान ({{label}})", "selectAudioOutput": "ऑडियो आउटपुट", "selectCamera": "कैमरा", "selectMic": "माइक्रोफोन", - "speakers": "Speakers", + "selfView": "स्व-दृश्य", + "shortcuts": "शॉर्टकट्स", + "showSubtitlesOnStage": "स्टेज पर सबटाइटल दिखाएं", + "speakers": "वक्ता", "startAudioMuted": "सभी लोग म्यूट से शुरू करेंगे", + "startReactionsMuted": "सभी के लिए प्रतिक्रिया ध्वनियाँ म्यूट करें", "startVideoMuted": "सभी लोग छिपे हुए शुरू करेंगे", - "title": "सेटिंग" + "talkWhileMuted": "म्यूट रहते हुए बात करें", + "title": "सेटिंग", + "video": "वीडियो" }, "settingsView": { - "advanced": "Advanced", + "advanced": "उन्नत", "alertCancel": "रद्द करें", "alertOk": "ओके", "alertTitle": "चेतावनी", "alertURLText": "दर्ज किया गया सर्वर URL अमान्य है", + "apply": "लागू करें", "buildInfoSection": "बिल्ड जानकारी", "conferenceSection": "सम्मेलन", "disableCallIntegration": "मूल कॉल एकीकरण अक्षम करें", @@ -726,13 +1256,23 @@ "disableCrashReportingWarning": "क्या आप वाकई क्रैश रिपोर्टिंग को अक्षम करना चाहते हैं? एप्लिकेशन को पुनरारंभ करने के बाद सेटिंग लागू की जाएगी", "disableP2P": "पीयर-टू-पीयर मोड को अक्षम करें", "displayName": "नाम", + "displayNamePlaceholderText": "उदा: रामेश कुमार", "email": "ईमेल", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "यदि आपका ईमेल किसी Gravatar खाते से जुड़ा है, तो हम उसे आपकी प्रोफ़ाइल तस्वीर दिखाने के लिए उपयोग करेंगे।", + "goTo": "यहाँ जाएं", "header": "सेटिंग", + "help": "सहायता", + "links": "लिंक", + "privacy": "गोपनीयता", "profileSection": "प्रोफाइल", + "sdkVersion": "SDK संस्करण", "serverURL": "सर्वर URL", "showAdvanced": "उन्नत सेटिंग्स दिखाएं", + "startCarModeInLowBandwidthMode": "कम बैंडविड्थ मोड में कार मोड शुरू करें", "startWithAudioMuted": "ऑडियो म्यूट के साथ शुरू करें", "startWithVideoMuted": "वीडियो म्यूट के साथ शुरू करें", + "terms": "शर्तें", "version": "संस्करण" }, "share": { @@ -741,14 +1281,24 @@ }, "speaker": "स्पीकर", "speakerStats": { + "angry": "क्रोधित", + "disgusted": "घृणित", + "displayEmotions": "भावनाएं दिखाएं", + "fearful": "भयभीत", + "happy": "प्रसन्न", "hours": "{{count}}h", + "labelTooltip": "प्रतिभागियों की संख्या: {{count}}", "minutes": "{{count}}m", "name": "नाम", + "neutral": "तटस्थ", + "sad": "दुखी", "search": "खोजें", + "searchDescription": "प्रतिभागियों को फ़िल्टर करने के लिए टाइप करें", "searchHint": "प्रतिभागियों को खोजें", "seconds": "{{count}}s", "speakerStats": "स्पीकर आंकड़े", - "speakerTime": "स्पीकर समय" + "speakerTime": "स्पीकर समय", + "surprised": "हैरान" }, "startupoverlay": { "genericTitle": "मीटिंग को आपके माइक्रोफ़ोन और कैमरे का उपयोग करने की आवश्यकता है।", @@ -756,32 +1306,62 @@ "title": "{{app}} को आपके माइक्रोफ़ोन और कैमरे का उपयोग करने की आवश्यकता है।" }, "suspendedoverlay": { - "rejoinKeyTitle": "पुनः जुड़े", + "rejoinKeyTitle": "पुनः जुड़े", "text": "फिर से कनेक्ट करने के लिए Rejoin बटन दबाएं।", "title": "आपका वीडियो कॉल बाधित हो गया था क्योंकि यह कंप्यूटर स्लीप मोड में चला गया था " }, + "termsView": { + "title": "शर्तें" + }, + "toggleTopPanelLabel": "शीर्ष पैनल टॉगल करें", "toolbar": { "Settings": "सेटिंग", "accessibilityLabel": { "Settings": "सेटिंग टॉगल करें", "audioOnly": "केवल ऑडियो टॉगल करें", "audioRoute": "साउंड डिवाइस का चयन करें", + "boo": "बू", + "breakoutRooms": "ब्रेकआउट रूम", "callQuality": "वीडियो गुणवत्ता प्रबंधित करें", + "carmode": "कार मोड", "cc": "टॉगल उपशीर्षक", "chat": "चैट विंडो टॉगल करें", + "clap": "ताली", + "closeChat": "चैट बंद करें", + "closeMoreActions": "अधिक क्रियाएं मेनू बंद करें", + "closeParticipantsPane": "प्रतिभागी पैनल बंद करें", + "closedCaptions": "क्लोज्ड कैप्शन", + "collapse": "संकुचित करें", "document": "साझा दस्तावेज़ टॉगल करें", + "documentClose": "साझा दस्तावेज़ बंद करें", + "documentOpen": "साझा दस्तावेज़ खोलें", "download": "हमारे एप्लिकेशन डाउनलोड करें", "embedMeeting": "एंबेड मीटिंग", + "endConference": "सभी के लिए मीटिंग समाप्त करें", + "enterFullScreen": "फुल स्क्रीन देखें", + "enterTileView": "टाइल दृश्य में प्रवेश करें", + "exitFullScreen": "फुल स्क्रीन से बाहर निकलें", + "exitTileView": "टाइल दृश्य से बाहर निकलें", + "expand": "विस्तार करें", "feedback": "प्रतिक्रिया छोड़ें", "fullScreen": "फुल स्क्रीन को टॉगल करें", + "giphy": "GIPHY मेनू टॉगल करें", "grantModerator": "Grant Moderator", "hangup": "कॉल छोड़ें", + "heading": "टूलबार", "help": "सहायता", + "hideWhiteboard": "व्हाइटबोर्ड छुपाएं", "invite": "लोगों को आमंत्रित करें", "kick": "Kick participant", + "laugh": "हँसी", + "leaveConference": "मीटिंग छोड़ें", + "like": "अंगूठा ऊपर", + "linkToSalesforce": "Salesforce से लिंक करें", "lobbyButton": "लॉबी मोड को सक्षम / अक्षम करें", "localRecording": "स्थानीय रिकॉर्डिंग नियंत्रणों को टॉगल करें", "lockRoom": "मीटिंग पासवर्ड टॉगल करें", + "love": "दिल", + "lowerHand": "हाथ नीचे करें", "moreActions": "अधिक क्रिया मेनू को टॉगल करें", "moreActionsMenu": "अधिक क्रिया मेनू", "moreOptions": "अधिक विकल्प दिखाएं", @@ -789,101 +1369,187 @@ "muteEveryone": "सभी को म्यूट करें", "muteEveryoneElse": "सभी को म्यूट करें", "muteEveryoneElsesVideo": "सभी का कैमरा अक्षम करें", + "muteEveryoneElsesVideoStream": "सभी अन्य का वीडियो बंद करें", "muteEveryonesVideo": "सभी का कैमरा अक्षम करें", + "muteEveryonesVideoStream": "सभी का वीडियो बंद करें", + "muteGUMPending": "माइक्रोफ़ोन कनेक्ट हो रहा है", + "noiseSuppression": "अतिरिक्त शोर दमन", + "openChat": "चैट खोलें", + "participants": "प्रतिभागी पैनल खोलें। {{participantsCount}} प्रतिभागी", "pip": "टॉगल पिक्चर-इन-पिक्चर मोड", "privateMessage": "निजी संदेश भेजें", "profile": "अपना प्रोफ़ाइल संपादित करें", "raiseHand": "Toggle raise hand", + "react": "संदेश प्रतिक्रियाएं", + "reactions": "प्रतिक्रियाएं", + "reactionsMenu": "प्रतिक्रियाएं मेनू", "recording": "टॉगल रिकॉर्डिंग", "remoteMute": "प्रतिभागी को म्यूट करें", "remoteVideoMute": "प्रतिभागी का कैमरा अक्षम करें", "security": "सुरक्षा विकल्प", "selectBackground": "पृष्ठभूमि का चयन करें", + "selfView": "स्व-दृश्य टॉगल करें", "shareRoom": "किसी को आमंत्रित करें", "shareYourScreen": "टॉगल स्क्रीनशेयर", + "shareaudio": "ऑडियो साझा करें", "sharedvideo": "YouTube वीडियो साझाकरण टॉगल करें", "shortcuts": "शॉर्टकट टॉगल करें", "show": "स्टेज पर दिखाएं", + "showWhiteboard": "व्हाइटबोर्ड दिखाएं", + "silence": "मौन", "speakerStats": "स्पीकर के आंकड़ों को टॉगल करें", + "stopScreenSharing": "स्क्रीन शेयरिंग बंद करें", + "stopSharedVideo": "वीडियो बंद करें", + "surprised": "हैरान", "tileView": "टॉगल टाइल दृश्य", "toggleCamera": "कैमरा टॉगल करें", "toggleFilmstrip": "टॉगल फिल्मस्ट्रिप", - "videomute": "टॉगल म्यूट वीडियो" + "unmute": "माइक्रोफ़ोन अनम्यूट करें", + "videoblur": "वीडियो ब्लर टॉगल करें", + "videomute": "टॉगल म्यूट वीडियो", + "videomuteGUMPending": "कैमरा कनेक्ट हो रहा है", + "videounmute": "कैमरा शुरू करें" }, "addPeople": "अपने कॉल में लोगों को जोड़ें", + "advancedAudioSettings": { + "aec": { + "label": "ध्वनि प्रतिध्वनि रद्दीकरण" + }, + "agc": { + "label": "स्वचालित गेन नियंत्रण" + }, + "ns": { + "label": "शोर दमन" + }, + "stereo": { + "label": "स्टीरियो" + } + }, "audioOnlyOff": "कम बैंडविड्थ मोड अक्षम करें", "audioOnlyOn": "कम बैंडविड्थ मोड सक्षम करें", "audioRoute": "साउंड डिवाइस का चयन करें", "audioSettings": "ऑडियो सेटिंग्स", "authenticate": "Authenticate", + "boo": "बू", "callQuality": "वीडियो गुणवत्ता प्रबंधित करें", "chat": "ओपन / क्लोज चैट", + "clap": "ताली", "closeChat": "क्लोज़ चैट", + "closeParticipantsPane": "प्रतिभागी पैनल बंद करें", + "closeReactionsMenu": "प्रतिक्रियाएं मेनू बंद करें", + "closedCaptions": "क्लोज्ड कैप्शन", + "disableNoiseSuppression": "अतिरिक्त शोर दमन अक्षम करें", + "disableReactionSounds": "आप इस मीटिंग के लिए प्रतिक्रिया ध्वनियाँ अक्षम कर सकते हैं", "documentClose": "साझा किए गए दस्तावेज़ को बंद करें", "documentOpen": "साझा दस्तावेज़ खोलें", "download": "हमारे एप्लिकेशन डाउनलोड करें", "e2ee": "एंड-टू-एंड एन्क्रिप्शन", "embedMeeting": "Embed meeting", + "enableNoiseSuppression": "अतिरिक्त शोर दमन सक्षम करें", + "endConference": "सभी के लिए मीटिंग समाप्त करें", "enterFullScreen": "पूर्ण स्क्रीन में देखें", "enterTileView": "टाइल दृश्य में प्रवेश करें", "exitFullScreen": "पूर्ण स्क्रीन से बाहर निकलें", "exitTileView": "टाइल दृश्य से बाहर निकलें", "feedback": "प्रतिक्रिया छोड़ें", + "fileSharing": "फ़ाइल साझाकरण", + "giphy": "GIPHY मेनू टॉगल करें", "hangup": "छोड़ें", - "help": "Help", + "help": "सहायता", + "hideWhiteboard": "व्हाइटबोर्ड छुपाएं", "invite": "लोगों को आमंत्रित करें", + "joinBreakoutRoom": "ब्रेकआउट रूम में शामिल हों", + "laugh": "हँसी", + "leaveBreakoutRoom": "ब्रेकआउट रूम छोड़ें", + "leaveConference": "मीटिंग छोड़ें", + "like": "अंगूठा ऊपर", + "linkToSalesforce": "Salesforce से लिंक करें", "lobbyButtonDisable": "लॉबी मोड को अक्षम करें", "lobbyButtonEnable": "लॉबी मोड सक्षम करें", "login": "लॉग इन", "logout": "लॉगआउट", + "love": "दिल", "lowerYourHand": "अपना हाथ नीचे करें", - "moreActions": "More actions", + "moreActions": "अधिक कार्रवाइयाँ", "moreOptions": "अधिक विकल्प", "mute": "म्यूट / अनम्यूट", "muteEveryone": "सभी को म्यूट करें", "muteEveryonesVideo": "सभी का कैमरा अक्षम करें", + "muteGUMPending": "माइक्रोफ़ोन कनेक्ट हो रहा है", "noAudioSignalDesc": "यदि आपने सिस्टम सेटिंग्स या हार्डवेयर से जानबूझकर इसे म्यूट नहीं किया है, तो डिवाइस को स्विच करने पर विचार करें", "noAudioSignalDescSuggestion": "यदि आपने सिस्टम सेटिंग्स या हार्डवेयर से जानबूझकर इसे म्यूट नहीं किया है, तो सुझाए गए डिवाइस पर स्विच करने पर विचार करें", "noAudioSignalDialInDesc": "आप डायल-इन का भी उपयोग कर सकते हैं:", "noAudioSignalDialInLinkDesc": "डायल-इन नंबर", "noAudioSignalTitle": "आपके माइक से कोई इनपुट नहीं आ रहा है!", + "noiseSuppression": "अतिरिक्त शोर दमन", "noisyAudioInputDesc": "ऐसा लगता है कि आपका माइक्रोफ़ोन शोर कर रहा है, कृपया डिवाइस को म्यूट करने या बदलने पर विचार करें", "noisyAudioInputTitle": "आपका माइक्रोफ़ोन शोर कर रहा है!", "openChat": "ओपन चैट", + "openReactionsMenu": "प्रतिक्रियाएं मेनू खोलें", + "participants": "प्रतिभागी", "pip": "पिक्चर-इन-पिक्चर मोड", + "polls": "पोल", "privateMessage": "निजी संदेश भेजें", "profile": "अपना प्रोफ़ाइल संपादित करें", "raiseHand": "अपना हाथ उठाएँ / नीचे करें", "raiseYourHand": "अपना हाथ उठाएं", + "reactionBoo": "बू प्रतिक्रिया भेजें", + "reactionClap": "ताली प्रतिक्रिया भेजें", + "reactionHeart": "दिल प्रतिक्रिया भेजें", + "reactionLaugh": "हँसी प्रतिक्रिया भेजें", + "reactionLike": "अंगूठा ऊपर प्रतिक्रिया भेजें", + "reactionLove": "प्रेम प्रतिक्रिया भेजें", + "reactionSilence": "मौन प्रतिक्रिया भेजें", + "reactionSurprised": "हैरानी प्रतिक्रिया भेजें", + "reactions": "प्रतिक्रियाएं", "security": "सुरक्षा विकल्प", "selectBackground": "पृष्ठभूमि का चयन करें", "shareRoom": "किसी को आमंत्रित करें", - "sharedvideo": "एक YouTube वीडियो साझा करें", + "shareaudio": "ऑडियो साझा करें", + "sharedvideo": "एक वीडियो साझा करें", "shortcuts": "शॉर्टकट देखें", + "showWhiteboard": "व्हाइटबोर्ड दिखाएं", + "silence": "मौन", "speakerStats": "स्पीकर आँकड़े", "startScreenSharing": "स्क्रीन साझाकरण प्रारंभ करें", - "startSubtitles": "Start subtitles", + "startSubtitles": "सबटाइटल शुरू करें", + "stopAudioSharing": "ऑडियो शेयरिंग बंद करें", "stopScreenSharing": "स्क्रीन शेयरिंग बंद करो", - "stopSharedVideo": "YouTube वीडियो बंद करें", + "stopSharedVideo": "वीडियो बंद करें", "stopSubtitles": "उपशीर्षक बंद करें", + "surprised": "हैरान", "talkWhileMutedPopup": "बोलने की कोशिश कर रहा है? आप मौन हैं", "tileViewToggle": "टॉगल टाइल दृश्य", "toggleCamera": "कैमरा टॉगल करें", + "unmute": "माइक्रोफ़ोन अनम्यूट करें", "videoSettings": "वीडियो सेटिंग्स", - "videomute": "स्टार्ट / स्टॉप कैमरा" + "videomute": "स्टार्ट / स्टॉप कैमरा", + "videomuteGUMPending": "कैमरा कनेक्ट हो रहा है", + "videounmute": "कैमरा शुरू करें" }, "transcribing": { "ccButtonTooltip": "सबटाइटल शुरू / बंद करें", "error": "ट्रांसक्रिप्शनिंग विफल रही। कृपया पुन: प्रयास करें", "expandedLabel": "वर्तमान में ट्रांसक्रिप्शनिंग चालू है", + "failed": "ट्रांसक्रिप्शन विफल हुआ", "failedToStart": "ट्रांसक्रिप्शनिंग प्रारंभ करने में विफल", "labelToolTip": "बैठक का लिप्यंतरण किया जा रहा है", + "labelTooltip": "इस बैठक का लिप्यंतरण किया जा रहा है।", + "labelTooltipExtra": "इसके अलावा, ट्रांसक्रिप्ट बाद में उपलब्ध होगा।", "off": "ट्रांसक्रिप्शनिंग बंद कर दिया", + "openClosedCaptions": "क्लोज्ड कैप्शन खोलें", + "original": "मूल", "pending": "बैठक के ट्रांसक्रिप्शन की तैयारी हो रही है…", + "sourceLanguageDesc": "वर्तमान में बैठक की भाषा {{sourceLanguage}} पर सेट है।
आप इसे यहाँ से बदल सकते हैं ", + "sourceLanguageHere": "यहाँ", "start": "उपशीर्षक दिखाना शुरू करें", "stop": "उपशीर्षक दिखाना बंद करें", - "tr": "TR" + "subtitles": "सबटाइटल", + "subtitlesOff": "बंद", + "tr": "TR", + "translateTo": "अनुवाद करें" }, + "unpinParticipant": "{{participantName}} - अनपिन करें", "userMedia": { "grantPermissions": "कृपया अपने कैमरा और माइक्रोफोन का उपयोग करने के लिए अनुमतियाँ प्रदान करें." }, @@ -898,51 +1564,112 @@ "pending": "{{displayName}} को आमंत्रित किया गया है" }, "videoStatus": { + "adjustFor": "के लिए समायोजित करें:", "audioOnly": "केवल ऑडियो", "audioOnlyExpanded": "आप कम बैंडविड्थ मोड में हैं। इस मोड में आपको केवल ऑडियो और स्क्रीन शेयरिंग प्राप्त होगी।", + "bestPerformance": "सर्वोत्तम प्रदर्शन", "callQuality": "वीडियो गुणवत्ता", "hd": "एचडी", "hdTooltip": "हाई डेफिनिशन वीडियो देख रहे हैं", "highDefinition": "हाई डेफिनिशन", + "highestQuality": "उच्चतम गुणवत्ता", "labelTooiltipNoVideo": "कोई वीडियो नहीं", "labelTooltipAudioOnly": "कम बैंडविड्थ मोड सक्षम", "ld": "एलडी", "ldTooltip": "लो डेफिनिशन वीडियो देख रहे हैं", "lowDefinition": "लो डेफिनिशन", + "performanceSettings": "प्रदर्शन सेटिंग्स", + "recording": "इस बैठक की रिकॉर्डिंग हो रही है।", "sd": "एसडी", "sdTooltip": "स्टैंडर्ड डेफिनिशन वीडियो देख रहे हैं", - "standardDefinition": "स्टैंडर्ड डेफिनिशन" + "standardDefinition": "स्टैंडर्ड डेफिनिशन", + "streaming": "स्ट्रीमिंग जारी है" }, "videothumbnail": { "connectionInfo": "कनेक्शन जानकारी", + "demote": "दर्शक के रूप में ले जाएं", "domute": "म्यूट", + "domuteDesktop": "स्क्रीन-शेयरिंग बंद करें", + "domuteDesktopOfOthers": "सभी अन्य की स्क्रीन-शेयरिंग बंद करें", "domuteOthers": "सभी को म्यूट करें", "domuteVideo": "कैमरा अक्षम करें", "domuteVideoOfOthers": "अन्य सभी के लिए कैमरा बंद करें", - "flip": "Flip", - "grantModerator": "Grant Moderator", + "flip": "उलटना", + "grantModerator": "संचालक बनाएं", + "hideSelfView": "स्वयं का दृश्य छिपाएँ", "kick": "निकालें", - "moderator": "Moderator", + "mirrorVideo": "मेरा वीडियो मिरर करें", + "moderator": "संचालक", "mute": "प्रतिभागी मौन है", "muted": "म्यूटेड", + "pinToStage": "स्टेज पर पिन करें", "remoteControl": "स्टार्ट / स्टॉप रिमोट कंट्रोल", + "screenSharing": "प्रतिभागी स्क्रीन साझा कर रहे हैं", "show": "स्टेज पर दिखाएं", + "showSelfView": "स्व-दृश्य दिखाएं", + "unpinFromStage": "अनपिन करें", + "verify": "प्रतिभागी को सत्यापित करें", "videoMuted": "कैमरा अक्षम", "videomute": "प्रतिभागी ने कैमरा बंद कर दिया है" }, "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "वर्तमान पृष्ठभूमि: {{background}}", + "selectBackground": "एक पृष्ठभूमि चुनें" + }, + "addBackground": "पृष्ठभूमि जोड़ें", + "apply": "लागू करें", + "backgroundEffectError": "पृष्ठभूमि प्रभाव लागू करने में विफल।", + "blur": "धुंधला", + "deleteImage": "छवि हटाएं", + "desktopShare": "डेस्कटॉप शेयर", + "desktopShareError": "डेस्कटॉप शेयर नहीं बनाया जा सका", "enableBlur": "ब्लर सक्षम करें", + "image1": "समुद्र तट", + "image2": "सफेद सादी दीवार", + "image3": "सफेद खाली कमरा", + "image4": "काला फर्श लैंप", + "image5": "पहाड़", + "image6": "जंगल", + "image7": "सूर्योदय", "none": "कोई नहीं", "pleaseWait": "कृपया प्रतीक्षा करें…", "removeBackground": "पृष्ठभूमि निकालें", + "slightBlur": "हल्का धुंधला", "title": "पृष्ठभूमि", - "uploadImage": "छवि अपलोड करें" + "uploadImage": "छवि अपलोड करें", + "uploadedImage": "अपलोड की गई छवि {{index}}", + "webAssemblyWarning": "WebAssembly समर्थित नहीं है", + "webAssemblyWarningDescription": "WebAssembly इस ब्राउज़र में अक्षम या असमर्थित है" }, + "visitors": { + "chatIndicator": "(दर्शक)", + "joinMeeting": { + "description": "आप वर्तमान में इस कॉन्फ्रेंस में एक दर्शक हैं।", + "raiseHand": "हाथ उठाएं", + "title": "मीटिंग में शामिल हो रहे हैं", + "wishToSpeak": "यदि आप बोलना चाहते हैं, तो कृपया नीचे हाथ उठाएं और मॉडरेटर की अनुमति की प्रतीक्षा करें।" + }, + "labelTooltip": "दर्शकों की संख्या: {{count}}", + "notification": { + "demoteDescription": "{{actor}} द्वारा यहाँ भेजा गया, भाग लेने के लिए हाथ उठाएं", + "noMainParticipantsDescription": "मीटिंग शुरू करने के लिए एक प्रतिभागी की आवश्यकता है। कृपया थोड़ी देर में पुनः प्रयास करें।", + "noMainParticipantsTitle": "यह मीटिंग अभी शुरू नहीं हुई है।", + "noVisitorLobby": "आप मीटिंग के लिए लॉबी सक्षम होने पर शामिल नहीं हो सकते।", + "notAllowedPromotion": "पहले एक प्रतिभागी को आपके अनुरोध को अनुमति देनी होगी।", + "requestToJoin": "हाथ उठाया", + "requestToJoinDescription": "आपका अनुरोध मॉडरेटर को भेज दिया गया है। थोड़ा रुकें!", + "title": "आप मीटिंग में एक दर्शक हैं" + }, + "waitingMessage": "मीटिंग लाइव होते ही आप शामिल हो जाएंगे!" + }, + "volumeSlider": "वॉल्यूम स्लाइडर", "welcomepage": { "accessibilityLabel": { "join": "शामिल होने के लिए टैप करें", "roomname": "कमरे का नाम लिखे" }, + "addMeetingName": "मीटिंग का नाम जोड़ें", "appDescription": "आगे बढ़ो, पूरी टीम के साथ वीडियो चैट करें। वास्तव में, हर किसी को जिसे आप जानते हैं, आमंत्रित करें। { {{app}} एक पूरी तरह से एन्क्रिप्टेड, 100% ओपन सोर्स वीडियो कॉन्फ्रेंसिंग समाधान है जिसका आप मुफ्त में - बिना किसी खाते की आवश्यकता के पूरे दिन, हर दिन, उपयोग कर सकते हैं।", "audioVideoSwitch": { "audio": "आवाज", @@ -959,19 +1686,40 @@ "headerTitle": "जित्सी मीट", "info": "डायल-इन जानकारी", "jitsiOnMobile": "मोबाइल पर Jitsi – हमारे एप्लिकेशन डाउनलोड करें और कहीं से भी एक बैठक शुरू करें", - "join": "बनाये / जुड़े ", + "join": "बनाये / जुड़े ", + "logo": { + "calendar": "कैलेंडर लोगो", + "desktopPreviewThumbnail": "डेस्कटॉप पूर्वावलोकन थंबनेल", + "googleLogo": "Google लोगो", + "logoDeepLinking": "Jitsi meet लोगो", + "microsoftLogo": "Microsoft लोगो", + "policyLogo": "नीति लोगो" + }, + "meetingsAccessibilityLabel": "बैठकें", + "mobileDownLoadLinkAndroid": "Android के लिए मोबाइल ऐप डाउनलोड करें", + "mobileDownLoadLinkFDroid": "F-Droid के लिए मोबाइल ऐप डाउनलोड करें", + "mobileDownLoadLinkIos": "iOS के लिए मोबाइल ऐप डाउनलोड करें", "moderatedMessage": "Or book a meeting URL in advance where you are the only moderator.", "privacy": "गोपनीयता", "recentList": "हाल का", "recentListDelete": "प्रविष्टि हटाएं", "recentListEmpty": "आपकी हाल की सूची वर्तमान में खाली है। अपनी टीम के साथ चैट करें और आपको अपनी सभी हालिया बैठकें मिलेंगी", + "recentMeetings": "आपकी हालिया बैठकें", "reducedUIText": "{{app}} में आपका स्वागत है!", "roomNameAllowedChars": " मीटिंग नाम में इनमें से कोई भी वर्ण नहीं होना चाहिए: ?, &, :, ', \", %, #.", "roomname": "कक्ष का नाम दर्ज करें", "roomnameHint": "जिस कक्ष में आप शामिल होना चाहते हैं उसका नाम या URL दर्ज करें। आप एक नाम बना सकते हैं, बस जिन लोगों से आप मिल रहे हैं, उन्हें यह बताएं ताकि वे उसी नाम को दर्ज करें", "sendFeedback": "फ़ीडबैक भेजें", + "settings": "सेटिंग", "startMeeting": "मीटिंग प्रारंभ करें", "terms": "शर्तें", - "title": "सुरक्षित, पूरी तरह से चित्रित, और पूरी तरह से मुक्त वीडियो कॉन्फ्रेंसिंग" + "title": "सुरक्षित, पूरी तरह से चित्रित, और पूरी तरह से मुक्त वीडियो कॉन्फ्रेंसिंग", + "upcomingMeetings": "आपकी आगामी बैठकें" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "व्हाइटबोर्ड" + }, + "screenTitle": "व्हाइटबोर्ड" } } diff --git a/lang/main-hr.json b/lang/main-hr.json index 7eb4989f4c08..5c2fabd1e0a0 100644 --- a/lang/main-hr.json +++ b/lang/main-hr.json @@ -541,8 +541,6 @@ "googlePrivacyPolicy": "Google politika privatnosti", "inProgress": "U tijeku je snimanje ili prijenos uživo", "invalidStreamKey": "Ključ prijenosa uživo možda nije ispravan.", - "limitNotificationDescriptionNative": "Tvoj prijenos će biti ograničen na {{limit}} min. Za neograničeni prijenos isprobaj {{app}}.", - "limitNotificationDescriptionWeb": "Zbog velike potražnje će tvoj prijenos biti ograničen na {{limit}} min. Za neograničeni prijenos isprobaj {{app}}.", "off": "Prijenos uživo prekinut", "offBy": "{{name}} je prekinuo/la prijenos uživo", "on": "Prijenos uživo pokrenut", @@ -903,8 +901,6 @@ "highlightMomentSuccess": "Trenutak istaknut", "highlightMomentSucessDescription": "Tvoj istaknuti trenutak će se dodati u sažetak sastanka.", "inProgress": "Snimanje ili prijenos uživo u tijeku", - "limitNotificationDescriptionNative": "Zbog velike potražnje, tvoje će snimanje biti ograničeno na {{limit}} min. Za neograničeno snimanje isprobaj <3>{{app}}.", - "limitNotificationDescriptionWeb": "Zbog velike potražnje, tvoje će snimanje biti ograničeno na {{limit}} min. Za neograničeno snimanje isprobaj {{app}}.", "linkGenerated": "Generirali smo poveznicu za tvoje snimanje.", "live": "UŽIVO", "localRecordingNoNotificationWarning": "Snimanje se neće najaviti ostalim sudionicima. Morat ćeš ih obavijestiti da se sastanak snima.", diff --git a/lang/main-hsb.json b/lang/main-hsb.json index 104d299bff51..b6dc7388fbf6 100644 --- a/lang/main-hsb.json +++ b/lang/main-hsb.json @@ -531,8 +531,6 @@ "googlePrivacyPolicy": "regule za datowy škit pola Google", "inProgress": "live-stream startowany", "invalidStreamKey": "Kluč za live-stream njeje najskerje prawy.", - "limitNotificationDescriptionNative": "Waš stream je na {{limit}} mjeń. wobmjezowany. Za njewobmjezowany streaming wužiwajće prošu {{app}}.", - "limitNotificationDescriptionWeb": "Wysokeje potrjeby dla je Waš stream na {{limit}} mjeń. wobmjezowany. Za njewobmjezowany streaming dźiće prošu na {{app}}.", "off": "live-stream stopowany", "offBy": "{{name}} zadźerža live-stream", "on": "live-stream", @@ -887,8 +885,6 @@ "highlightMomentSuccess": "markěrowane", "highlightMomentSucessDescription": "Waš markěrowany wokomik so k zjeću konferency přida.", "inProgress": "nahrawanje startowane", - "limitNotificationDescriptionNative": " Wulkeje potrjeby dla je Waše nahraće na {{limit}} mjeń. wobmjezowane. Za njewobmjezowane nahraće wužiwajće prošu <3>{{app}}.", - "limitNotificationDescriptionWeb": "Wulkeje potrjeby dla je Waše nahrawanje na {{limit}} mjeń. wobmjezowane. Za njewobmjezowane nahrawanje wužiwajće prošu {{app}}.", "linkGenerated": "link na nahrawanje bu kreěrowany", "live": "LIVE", "localRecordingWarning": "Kedźbujće na to, aktualny tab za prawe widejo a awdijo wužiwać.", diff --git a/lang/main-id.json b/lang/main-id.json index 9a49c36f383e..50b6d600d9f6 100644 --- a/lang/main-id.json +++ b/lang/main-id.json @@ -631,8 +631,6 @@ "googlePrivacyPolicy": "Kebijakan Privasi Google", "inProgress": "Perekaman atau siaran langsung sedang berlangsung", "invalidStreamKey": "Kunci siaran langsung mungkin salah.", - "limitNotificationDescriptionNative": "Pemutaran streaming Anda akan dibatasi menjadi {{limit}} menit. Untuk streaming tanpa batas, coba {{app}}.", - "limitNotificationDescriptionWeb": "Karena permintaan yang tinggi, streaming Anda akan dibatasi menjadi {{limit}} menit. Untuk streaming tanpa batas, coba {{app}}.", "off": "Siaran Langsung berhenti", "offBy": "{{name}} menghentikan siaran langsung", "on": "Siaran Langsung dimulai", @@ -1016,8 +1014,6 @@ "highlightMomentSuccess": "Momen disorot", "highlightMomentSucessDescription": "Momen yang Anda sorot akan ditambahkan ke ringkasan pertemuan.", "inProgress": "Rekaman atau siaran langsung sedang berlangsung", - "limitNotificationDescriptionNative": "Karena permintaan tinggi, rekaman Anda akan dibatasi menjadi {{limit}} menit. Untuk rekaman tanpa batas, coba <3>{{app}}.", - "limitNotificationDescriptionWeb": "Karena permintaan tinggi, rekaman Anda akan dibatasi menjadi {{limit}} menit. Untuk rekaman tanpa batas, coba {{app}}.", "linkGenerated": "Kami telah menghasilkan tautan untuk rekaman Anda.", "localRecordingNoNotificationWarning": "Rekaman tidak akan diumumkan kepada peserta lain. Anda perlu memberi tahu mereka bahwa pertemuan direkam.", "localRecordingNoVideo": "Video tidak direkam", diff --git a/lang/main-is.json b/lang/main-is.json index f93108007aee..c7ce98620fb5 100644 --- a/lang/main-is.json +++ b/lang/main-is.json @@ -622,8 +622,6 @@ "googlePrivacyPolicy": "Meðferð persónuupplýsinga hjá Google", "inProgress": "Upptaka eða beint streymi í gangi", "invalidStreamKey": "Lykill fyrir beint streymi gæti verið rangur.", - "limitNotificationDescriptionNative": "Streymið þitt verður takmarkað við {{limit}} mínútur. Fyrir ótakmarkað streymi ættirðu að prófa {{app}}.", - "limitNotificationDescriptionWeb": "Vegna mikils álags verður streymið þitt takmarkað við {{limit}} mínútur. Fyrir ótakmarkað streymi ættirðu að prófa {{app}}.", "off": "Beint streymi stöðvað", "offBy": "{{name}} stöðvaði beina streymið", "on": "Beint streymi er hafið", @@ -997,8 +995,6 @@ "highlightMomentSuccess": "Áherslulitað augnablik", "highlightMomentSucessDescription": "Áherslulituðum augnablikum mun verða bætt við yfirlit fundarins.", "inProgress": "Upptaka eða beint streymi í gangi", - "limitNotificationDescriptionNative": "Vegna mikils álags verður upptakan þín takmörkuð við {{limit}} mínútur. Fyrir ótakmarkaðar upptökur ættirðu að prófa <3>{{app}}.", - "limitNotificationDescriptionWeb": "Vegna mikils álags verður upptakan þín takmörkuð við {{limit}} mínútur. Fyrir ótakmarkaðar upptökur ættirðu að prófa {{app}}.", "linkGenerated": "Við höfum útbúið tengil á upptökuna þína.", "localRecordingNoNotificationWarning": "Upptakan verður ekki tilkynnt öðrum þátttakendum. Þú þarft að láta aðra vita að fundurinn sé tekinn upp.", "localRecordingNoVideo": "Ekki er verið að taka upp myndmerki", diff --git a/lang/main-it.json b/lang/main-it.json index 8e36f8608bf6..4abef55e3847 100644 --- a/lang/main-it.json +++ b/lang/main-it.json @@ -227,6 +227,9 @@ "video_ssrc": "Video SSRC:", "yes": "sì" }, + "customPanel": { + "close": "Chiudi" + }, "dateUtils": { "earlier": "Precedenti", "today": "Oggi", @@ -370,7 +373,7 @@ "kickParticipantTitle": "Espellere questo partecipante?", "kickSystemTitle": "Oh! Sei stato espulso dalla riunione", "kickTitle": "Oh! {{participantDisplayName}} ti ha espulso dalla riunione.", - "learnMore": "ulteriori informazioni", + "learnMore": "Ulteriori informazioni", "linkMeeting": "Collega la riunione", "linkMeetingTitle": "Collega la riunione a Salesforce", "liveStreaming": "Diretta", @@ -379,8 +382,11 @@ "lockMessage": "Impossibile bloccare la riunione.", "lockRoom": "Aggiungi una $t(lockRoomPassword) alla riunione", "lockTitle": "Blocco fallito", - "login": "Accesso", - "loginQuestion": "Vuoi fare l'accesso e abbandonare la riunione?", + "login": "Accedi", + "loginFailed": "Accesso non riuscito.", + "loginOnResume": "La sessione è scaduta. Accedi di nuovo per continuare la riunione.", + "loginPopupBlocked": "Il popup di accesso è stato bloccato dal tuo browser", + "loginQuestion": "Vuoi eseguire l'accesso e abbandonare la riunione?", "logoutQuestion": "Vuoi disconnetterti e abbandonare la riunione?", "logoutTitle": "Disconnessione", "maxUsersLimitReached": "È stato raggiunto il numero massimo di partecipanti. La riunione è al completo. Contatta l'organizzatore o riprova più tardi!", @@ -440,9 +446,7 @@ "recentlyUsedObjects": "Oggetti usati di recente", "recording": "Registrazione", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossibile durante una diretta.", - "recordingInProgressDescription": "Questa riunione sta venendo registrata e analizzata dall'IA. I tuoi audio e video sono stati disattivati. Riattivandoli, acconsenti ad essere registrato.", - "recordingInProgressDescriptionFirstHalf": "Questa riunione sta venendo registrata e analizzata dall'IA", - "recordingInProgressDescriptionSecondHalf": ". I tuoi audio e video sono stati disattivati. Riattivandoli, acconsenti ad essere registrato.", + "recordingInProgressDescription": "Questa riunione sta venendo registrata e analizzata dall'IA. I tuoi audio e video sono stati disattivati. Riattivandoli, acconsentirai ad essere registrato.", "recordingInProgressTitle": "Registrazione in corso", "rejoinNow": "Ricollegati ora", "remoteControlAllowedMessage": "{{user}} ha accettato la tua richiesta di controllo remoto!", @@ -465,6 +469,8 @@ "screenSharingFailed": "Ops! Qualcosa è andato storto, non è stato possibile avviare la condivisione dello schermo!", "screenSharingFailedTitle": "Condivisione dello schermo fallita!", "screenSharingPermissionDeniedError": "Ops! Qualcosa è andato storto con l'autorizzazione di condivisione dello schermo. Ricarica e riprova.", + "screenshareStoppedDiskSpace": "Questo accade se hai utilizzato la barra degli strumenti mobile di macOS per interrompere la condivisione dello schermo. Potrebbe anche essere dovuto a spazio su disco insufficiente.", + "screenshareStoppedTitle": "Condivisione dello schermo fermata dal sistema", "searchInSalesforce": "Cerca in Salesforce", "searchResults": "Risultati ricerca({{count}})", "searchResultsDetailsError": "Qualcosa è andato storto nella ricezione dei dati del proprietario.", @@ -494,7 +500,7 @@ "shareVideoConfirmPlay": "Stai per aprire un sito esterno. Vuoi continuare?", "shareVideoConfirmPlayTitle": "{{name}} ha condiviso un video con te.", "shareVideoLinkError": "Ops, il video non può essere riprodotto.", - "shareVideoLinkStopped": "Il video da {{name}} è stato interrotto.", + "shareVideoLinkStopped": "Il video è stato interrotto da {{name}}.", "shareVideoTitle": "Condividi un video", "shareYourScreen": "Condividi schermo", "shareYourScreenDisabled": "Condivisione schermo disabilitata.", @@ -544,7 +550,7 @@ "verifyParticipantTitle": "Verifica utente", "videoLink": "Collegamento video", "viewUpgradeOptions": "Vedi le opzioni premium", - "viewUpgradeOptionsContent": "Per aver accesso illimitato alle funzionalità premium come registrazione, trascrizione, Streaming RTMP e altri, è necessario cambiare piano di abbonamento.", + "viewUpgradeOptionsContent": "Per aver accesso illimitato alle funzionalità premium come registrazione, trascrizione, trasmissione RTMP e altri, è necessario cambiare piano di abbonamento.", "viewUpgradeOptionsTitle": "Hai scoperto una funzione premium!", "whiteboardLimitContent": "Il limite di utenti contemporanei della lavagna è stato raggiunto.", "whiteboardLimitReference": "Per maggiori informazioni visita", @@ -589,6 +595,7 @@ "newFileNotification": "{{ participantName }} ha condiviso '{{ fileName }}'", "removeFile": "Rimuovi", "removeFileSuccess": "File rimosso con successo", + "uploadDisabled": "Non è consentito caricare file. Chiedi ad un moderatore l'autorizzazione ad eseguire l'operazione.", "uploadFailedDescription": "Si prega di riprovare.", "uploadFailedTitle": "Caricamento non riuscito", "uploadFile": "Condividi file" @@ -693,7 +700,8 @@ "busyTitle": "Tutti gli streamer sono impegnati al momento", "changeSignIn": "Cambia account", "choose": "Scegli una diretta", - "chooseCTA": "Scegli un'opzione di trasmissione. Attualmente hai effettuato l'accesso come {{email}}.", + "chooseCTA": "Scegli un'opzione di trasmissione. Hai eseguito l'accesso come {{email}}.", + "chooseCTAWithChangeSignIn": "Scegli un'opzione di trasmissione. Hai eseguito l'accesso come {{email}}. <0>Cambia account.", "enterStreamKey": "Inserisci qui la tua chiave della diretta su YouTube.", "error": "Diretta fallita. Prova di nuovo.", "errorAPI": "Si è verificato un errore durante l'accesso alle tue trasmissioni su YouTube. Prova a effettuare nuovamente l'accesso.", @@ -706,14 +714,12 @@ "googlePrivacyPolicy": "Politiche sulla privacy di Google", "inProgress": "Registrazione o diretta in corso", "invalidStreamKey": "La chiave della diretta potrebbe non essere corretta.", - "limitNotificationDescriptionNative": "La tua diretta sarà limitata a {{limit}} minuti. Per dirette illimitate prova {{app}}.", - "limitNotificationDescriptionWeb": "Data la grossa domanda la tua diretta sarà limitata a {{limit}} minuti. Per dirette illimitate, prova {{app}}.", "off": "La diretta si è interrotta", "offBy": "{{name}} ha fermato la diretta", "on": "Diretta avviata", "onBy": "{{name}} ha iniziato la diretta", "pending": "Avvio diretta…", - "policyError": "Hai provato ad avviare una diretta streaming troppo velocemente. Si prega di riprovare più tardi!", + "policyError": "Hai provato ad avviare una diretta troppo velocemente. Si prega di riprovare più tardi!", "serviceName": "Servizio dirette", "sessionAlreadyActive": "Questa sessione è in già in fase di registrazione o trasmissione in diretta.", "signIn": "Accedi con Google", @@ -724,6 +730,7 @@ "streamIdHelp": "Cos'è questo?", "title": "Diretta", "unavailableTitle": "La diretta non è disponibile", + "youTubeGoLiveWarning": "Ricordati di cliccare su 'Vai in diretta' in YouTube Studio se le opzioni Avvio/Arresto automatico sono disattivate. In caso contrario, la registrazione della trasmissione non inizierà.", "youtubeTerms": "Termini di servizio di YouTube" }, "lobby": { @@ -1127,8 +1134,6 @@ "highlightMomentSuccess": "Momento evidenziato", "highlightMomentSucessDescription": "Il tuo momento evidenziato sarà aggiunto al riepilogo della riunione.", "inProgress": "Registrazione o diretta in corso", - "limitNotificationDescriptionNative": "La tua registrazione sarà limitata a {{limit}} minuti. Per registrazioni illimitate, prova <3>{{app}}.", - "limitNotificationDescriptionWeb": "Per la grossa domanda la tua registrazione sarà limitata a {{limit}} minuti. Per registrazioni illimitate, prova {{app}}.", "linkGenerated": "È stato generato un collegamento alla tua registrazione.", "localRecordingNoNotificationWarning": "La registrazione non verrà annunciata ai partecipanti. Dovrai dir loro che la riunione viene registrata.", "localRecordingNoVideo": "Il video non sta venendo registrato", @@ -1142,8 +1147,12 @@ "noStreams": "Audio e video non rilevati.", "off": "Registrazione interrotta", "offBy": "{{name}} ha interrotto la registrazione", + "offByWithTranscription": "{{name}} ha interrotto la registrazione e la trascrizione", + "offWithTranscription": "La registrazione e la trascrizione sono state interrotte", "on": "Registrazione avviata", "onBy": "Registrazione avviata da {{name}}", + "onByWithTranscription": "{{name}} ha avviato la registrazione. La trascrizione sarà disponibile dopo la riunione.", + "onWithTranscription": "Registrazione avviata. La trascrizione sarà disponibile dopo la riunione.", "onlyRecordSelf": "Registra solo i miei audio e video", "pending": "Preparazione alla registrazione della riunione in corso...", "policyError": "Hai provato a iniziare la registrazione troppo velocemente. Si prega di riprovare più tardi!", @@ -1315,6 +1324,7 @@ "chat": "Apri chat", "clap": "Applaudi", "closeChat": "Chiudi chat", + "closeCustomPanel": "Chiudi", "closeMoreActions": "Chiudi menu avanzato", "closeParticipantsPane": "Chiudi pannello partecipanti", "closedCaptions": "Sottotitoli", @@ -1341,7 +1351,7 @@ "invite": "Invita partecipanti", "kick": "Espelli partecipante", "laugh": "Ridi", - "leaveConference": " Lascia riunione", + "leaveConference": "Lascia riunione", "like": "Mi piace", "linkToSalesforce": "Collega a Salesforce", "lobbyButton": "Attiva/disattiva sala d'attesa", @@ -1420,9 +1430,11 @@ "chat": "Apri chat", "clap": "Applaudi", "closeChat": "Chiudi chat", + "closeCustomPanel": "Chiudi", "closeParticipantsPane": "Chiudi pannello partecipanti", "closeReactionsMenu": "Chiudi menu reazioni", "closedCaptions": "Sottotitoli", + "copilot": "Copilot", "disableNoiseSuppression": "Disattiva cancellazione del rumore", "disableReactionSounds": "Puoi disattivare i suoni delle reazioni in questa riunione", "documentClose": "Chiudi documento condiviso", @@ -1518,6 +1530,10 @@ "failed": "Trascrizione non riuscita", "labelTooltip": "La trascrizione della riunione è in corso.", "labelTooltipExtra": "Inoltre, una trascrizione sarà disponibile in seguito.", + "off": "Trascrizione interrotta", + "on": "Trascrizione avviata", + "onBy": "{{name}} ha avviato la registrazione", + "onWithRecording": "La trascrizione sarà disponibile dopo la riunione.", "openClosedCaptions": "Apri sottotitoli", "original": "Originale", "sourceLanguageDesc": "Al momento la riunione è in {{sourceLanguage}}.
Puoi cambiare lingua da ", @@ -1600,6 +1616,7 @@ "addBackground": "Aggiungi sfondo", "apply": "Applica", "backgroundEffectError": "L'applicazione dell'effetto allo sfondo non riuscita.", + "backgroundLimitReached": "Limite di sfondi personalizzati raggiunto", "blur": "Sfocatura", "deleteImage": "Cancella immagine", "desktopShare": "Condivisione desktop", @@ -1612,6 +1629,7 @@ "image6": "Foresta", "image7": "Alba", "none": "Nessuno", + "oldestBackgroundRemoved": "Lo sfondo personalizzato più vecchio è stato rimosso per aggiungere quello nuovo.", "pleaseWait": "Si prega di attendere…", "removeBackground": "Rimuovi sfondo", "slightBlur": "Sfocatura leggera", diff --git a/lang/main-ja.json b/lang/main-ja.json index 63a7e2582061..20f1cd0cd4a9 100644 --- a/lang/main-ja.json +++ b/lang/main-ja.json @@ -505,8 +505,6 @@ "googlePrivacyPolicy": "Google プライバシーポリシー", "inProgress": "録画またはライブ配信中です", "invalidStreamKey": "ストリームキーが正しくないようです。", - "limitNotificationDescriptionNative": "利用者が多いため、あなたの録画は {{limit}} 分に制限されます。無制限に録画するには<3>{{app}}をお試しください。", - "limitNotificationDescriptionWeb": "利用者が多いため、あなたの録画は {{limit}} 分に制限されます。 無制限に録画するには{{app}}をお試しください。", "off": "ライブ配信を停止しました", "offBy": "{{name}} がライブ配信を停止しました", "on": "ライブ配信を開始しました", @@ -835,8 +833,6 @@ "highlightMomentSuccess": "ハイライトされました", "highlightMomentSucessDescription": "ハイライトされた瞬間は議事録に追加されます。", "inProgress": "録画またはライブ配信中です", - "limitNotificationDescriptionNative": "利用者が多いため、あなたの録画は {{limit}} 分に制限されます。無制限に録画するには<3>{{app}}をお試しください。", - "limitNotificationDescriptionWeb": "利用者が多いため、あなたの録画は {{limit}} 分に制限されます。 無制限に録画するには{{app}}をお試しください。", "linkGenerated": "あなたの録画へのリンクを生成しました。", "live": "LIVE", "localRecordingNoNotificationWarning": "この録画は他の参加者に通知されません。このミーティングが録画されていることを他の参加者に伝えてください。", diff --git a/lang/main-kab.json b/lang/main-kab.json index aef29d7b5216..a7790db401f9 100644 --- a/lang/main-kab.json +++ b/lang/main-kab.json @@ -480,8 +480,6 @@ "getStreamKeyManually": "Ur nessaweḍ ara ad d-nerr ula d yiwen n usuddem usrid. Ɛreḍ ad d-tawiḍ tasarut-ik·im n usuddem usrid seg Youtube.", "googlePrivacyPolicy": "Tasertit tabaḍnit n Google", "invalidStreamKey": "Tasarut n usuddem usrid yezmer mačči d tameɣtut.", - "limitNotificationDescriptionNative": "Asuddem-inek·inem ad yesɛu kan {{limit}} tesdidin. I usuddem war talast ɛreḍ {{app}}.", - "limitNotificationDescriptionWeb": "Seg wakken yegget usuter, asuddem-inek·inem ad yesɛu talast n {{limit}} tesdidin. I usuddem n war tilas, ɛreḍ {{app}}.", "off": "Asuddem usrid yettuḥbes", "offBy": "{{name}} iseḥbes asuddem usrid", "on": "Yebda usuddem usrid", @@ -777,8 +775,6 @@ "expandedPending": "Asekles ha-t-an yebda….", "failedToStart": "Beddu n usekles ur yeddi ara", "fileSharingdescription": "Bḍu asekles d yimttekkiyen n temlilit", - "limitNotificationDescriptionNative": "Seg tuget n usuter, asekles-inek·inem ad yesɛu kan {{limit}} tesdidin. I yiseklas war tilas, ɛreḍ <3>{{app}}.", - "limitNotificationDescriptionWeb": "Seg tuget n usuter, asekles-inek·inem ad yesɛu kan {{limit}} tesdidin. I yiseklas war tilas, ɛreḍ {{app}}.", "linkGenerated": "Nsirew-d aseɣwen i usekles-inek·inem.", "live": "SRID", "loggedIn": "Yekcem s {{userName}}", diff --git a/lang/main-kk.json b/lang/main-kk.json index 0f64d0f33fa5..a56e82d46796 100644 --- a/lang/main-kk.json +++ b/lang/main-kk.json @@ -440,9 +440,7 @@ "recentlyUsedObjects": "Жақында пайдаланылған объектілеріңіз", "recording": "Жазу", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Тікелей эфир белсенді болған кезде мүмкін емес", - "recordingInProgressDescription": "Бұл жиналыс жазылуда және AI{{learnMore}} арқылы талдануда. Сіздің аудио және бейнеңіз өшірілді. Егер дыбысты қосуды таңдасаңыз, жазылуға келісім бересіз.", - "recordingInProgressDescriptionFirstHalf": "Бұл жиналыс жазылуда және AI арқылы талдануда", - "recordingInProgressDescriptionSecondHalf": ". Сіздің аудио және бейнеңіз өшірілді. Егер дыбысты қосуды таңдасаңыз, жазылуға келісім бересіз.", + "recordingInProgressDescription": "Бұл жиналыс жазылуда және AI арқылы талдануда. Сіздің аудио және бейнеңіз өшірілді. Егер дыбысты қосуды таңдасаңыз, жазылуға келісім бересіз.", "recordingInProgressTitle": "Жазу орындалуда", "rejoinNow": "Қазір қайта қосылу", "remoteControlAllowedMessage": "{{user}} қашықтан басқару сұрауыңызды қабылдады!", @@ -706,8 +704,6 @@ "googlePrivacyPolicy": "Google құпиялылық саясаты", "inProgress": "Жазу немесе тікелей эфир орындалуда", "invalidStreamKey": "Тікелей эфир кілті қате болуы мүмкін.", - "limitNotificationDescriptionNative": "Ағыныңыз {{limit}} минутпен шектеледі. Шексіз ағын үшін {{app}} қолданып көріңіз.", - "limitNotificationDescriptionWeb": "Жоғары сұранысқа байланысты ағыныңыз {{limit}} минутпен шектеледі. Шексіз ағын үшін {{app}} қолданып көріңіз.", "off": "Тікелей эфир тоқтатылды", "offBy": "{{name}} тікелей эфирді тоқтатты", "on": "Тікелей эфир басталды", @@ -1127,8 +1123,6 @@ "highlightMomentSuccess": "Сәт бөлектенді", "highlightMomentSucessDescription": "Бөлектенген сәтіңіз жиналыс қорытындысына қосылады.", "inProgress": "Жазу немесе тікелей эфир орындалуда", - "limitNotificationDescriptionNative": "Жоғары сұранысқа байланысты жазбаңыз {{limit}} минутпен шектеледі. Шексіз жазбалар үшін <3>{{app}} қолданып көріңіз.", - "limitNotificationDescriptionWeb": "Жоғары сұранысқа байланысты жазбаңыз {{limit}} минутпен шектеледі. Шексіз жазбалар үшін {{app}} қолданып көріңіз.", "linkGenerated": "Біз жазбаңызға сілтеме жасадық.", "localRecordingNoNotificationWarning": "Жазба басқа қатысушыларға хабарланбайды. Жиналыс жазылып жатқанын оларға хабарлауыңыз керек.", "localRecordingNoVideo": "Бейне жазылып жатқан жоқ", diff --git a/lang/main-ko.json b/lang/main-ko.json index ef7a7286e704..2cc0a557f108 100644 --- a/lang/main-ko.json +++ b/lang/main-ko.json @@ -634,8 +634,6 @@ "googlePrivacyPolicy": "Google 개인 정보 보호 정책", "inProgress": "녹화 또는 실시간 스트리밍 진행 중", "invalidStreamKey": "라이브 스트림 키가 잘못되었을 수 있습니다.", - "limitNotificationDescriptionNative": "스트리밍이 {{limit}}분으로 제한됩니다. 무제한 스트리밍을 사용하려면 {{app}}을 시도해 보세요.", - "limitNotificationDescriptionWeb": "수요가 많아 스트리밍이 {{limit}}분으로 제한됩니다. 무제한 스트리밍을 사용하려면 {{app}}을 시도해 보세요.", "off": "실시간 스트리밍이 중지됨", "offBy": "{{name}}님이 실시간 스트리밍을 중지했습니다", "on": "실시간 스트리밍", @@ -1036,8 +1034,6 @@ "highlightMomentSuccess": "순간 강조 표시됨", "highlightMomentSucessDescription": "강조 표시된 순간이 회의 요약에 추가됩니다.", "inProgress": "녹화 또는 실시간 스트리밍 진행 중", - "limitNotificationDescriptionNative": "수요가 많아 녹화가 {{limit}}분으로 제한됩니다. 무제한 녹화를 사용하려면 {{app}}을 시도해 보세요.", - "limitNotificationDescriptionWeb": "수요가 많아 녹화가 {{limit}}분으로 제한됩니다. 무제한 녹화를 사용하려면 {{app}}을 시도해 보세요.", "linkGenerated": "녹화에 대한 링크를 생성했습니다.", "localRecordingNoNotificationWarning": "녹화가 다른 참가자에게 알리지 않습니다. 회의가 녹화되고 있음을 알려야 합니다.", "localRecordingNoVideo": "비디오는 녹화되지 않습니다", diff --git a/lang/main-lv.json b/lang/main-lv.json index f0721c563cf1..8f0ecf5f5b32 100644 --- a/lang/main-lv.json +++ b/lang/main-lv.json @@ -227,6 +227,9 @@ "video_ssrc": "Video SSRC:", "yes": "jā" }, + "customPanel": { + "close": "Aizvērt" + }, "dateUtils": { "earlier": "Agrāk", "today": "Šodien", @@ -370,7 +373,7 @@ "kickParticipantTitle": "Izraidīt šo dalībnieku?", "kickSystemTitle": "Ak! Jūs izraidīja no sapulces", "kickTitle": "Ak! {{participantDisplayName}} izraidīja jūs no sapulces", - "learnMore": "uzzināt vairāk", + "learnMore": "Uzzināt vairāk", "linkMeeting": "Sasaistīt sapulci", "linkMeetingTitle": "Sasaistīt sapulci ar Salesforce", "liveStreaming": "Tiešraides straumēšana", @@ -379,9 +382,12 @@ "lockMessage": "Neizdevās aizslēgt sapulci.", "lockRoom": "Iestatīt sapulces $t(lockRoomPasswordUppercase)", "lockTitle": "Aizslēgšāna neizdevās", - "login": "Pierakstīties", - "loginQuestion": "Vai tiešām vēlaties pierakstīties un pamest sapulci?", - "logoutQuestion": "Vai tiešām vēlaties izrakstīties un pamest sapulci?", + "login": "Pieteikties", + "loginFailed": "Pieteikšanās kļūda.", + "loginOnResume": "Jūsu autentifikācijas sesija ir beigusies. Lai turpinātu sapulci, jums ir jāpiesakās vēlreiz.", + "loginPopupBlocked": "Jūsu pārlūkprogramma bloķēja pieteikšanās uznirstošo logu.", + "loginQuestion": "Vai tiešām vēlaties pieteikties un iziet no sapulces?", + "logoutQuestion": "Vai tiešām vēlaties atteikties un pamest konferenci?", "logoutTitle": "Izrakstīties", "maxUsersLimitReached": "Ir sasniegts maksimālais dalībnieku skaita ierobežojums. Sapulce ir pilna. Lūdzu, sazinieties ar sapulces īpašnieku vai vēlāk mēģiniet vēlreiz!", "maxUsersLimitReachedTitle": "Sasniegts maksimālais dalībnieku skaits", @@ -441,8 +447,6 @@ "recording": "Ieraksts", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Nav iespējams, kamēr ir aktīva tiešraides straume", "recordingInProgressDescription": "Šī sapulce tiek ierakstīta. Jūsu audio un video ir izslēgti. Ja izvēlaties ieslēgt skaņu vai video, jūs piekrītat ierakstīšanai.", - "recordingInProgressDescriptionFirstHalf": "Šo sanāksmi ieraksta un analizē mākslīgais intelekts", - "recordingInProgressDescriptionSecondHalf": ". Jūsu audio un video skaņa ir izslēgta. Ja izvēlaties ieslēgt skaņu, jūs piekrītat ierakstīšanai.", "recordingInProgressTitle": "Notiek ierakstīšana", "rejoinNow": "Pieslēgties no jauna", "remoteControlAllowedMessage": "{{user}} apstiprināja jūsu attālās pārvaldības pieprasījumu!", @@ -465,6 +469,8 @@ "screenSharingFailed": "Hmm! Radās problēma, mēs nevarējām sākt ekrāna kopīgošanu.", "screenSharingFailedTitle": "Ekrāna kopīgošana neizdevās!", "screenSharingPermissionDeniedError": "Hmm! Radās problēma ar jūsu ekrāna kopīgošanas atļaujām. Lūdzu, atkārtoti ielādējiet un mēģiniet vēlreiz.", + "screenshareStoppedDiskSpace": "Tas notiek, ja ekrāna kopīgošanu apturējāt, izmantojot macOS peldošo rīkjoslu. Tas var būt arī saistīts ar nepietiekamu diska vietu.", + "screenshareStoppedTitle": "Ekrāna kopīgošana apturēta caur sistēmu", "searchInSalesforce": "Meklēt pakalpojumā Salesforce", "searchResults": "Meklēšanas rezultāti ({{count}})", "searchResultsDetailsError": "Radās problēma, izgūstot īpašnieka datus.", @@ -589,6 +595,7 @@ "newFileNotification": "{{ participantName }} kopīgoja '{{ fileName }}'", "removeFile": "Noņemt", "removeFileSuccess": "Fails veiksmīgi noņemts", + "uploadDisabled": "Failu augšupielāde nav atļauta. Palūdziet moderatoram piešķirt atļauju šai darbībai.", "uploadFailedDescription": "Lūdzu, mēģiniet vēlreiz.", "uploadFailedTitle": "Augšuplādes kļūda", "uploadFile": "Kopīgot failu" @@ -694,6 +701,7 @@ "changeSignIn": "Pārslēgt kontus.", "choose": "Izvēlēties tiešraidi", "chooseCTA": "Izvēlieties tiešraides opciju. Jūs šobrīd esat ierakstījies kā {{email}}.", + "chooseCTAWithChangeSignIn": "Izvēlieties straumēšanas opciju. Pašlaik esat pieteicies kā {{email}}. <0>Mainīt kontu.", "enterStreamKey": "Ievadiet jūsu YouTube tiešraides atslēgu.", "error": "Tiešraides kļūda. Lūdzu, mēģiniet vēlreiz.", "errorAPI": "Piekļūstot jūsu YouTube tiešraidēm, atgadījās kļūda. Lūdzu, mēģiniet ierakstīties vēlreiz.", @@ -706,8 +714,6 @@ "googlePrivacyPolicy": "Google konfidencialitātes politika", "inProgress": "Notiek ierakstīšana vai tiešraides straumēšana", "invalidStreamKey": "Izskatās, ka tiešraides atslēga nav pareiza.", - "limitNotificationDescriptionNative": "ūsu straumēšana būs ierobežota līdz {{limit}} min. Lai iegūtu neierobežotu straumēšanu, izmēģiniet {{app}}.", - "limitNotificationDescriptionWeb": "Lielā pieprasījuma dēļ jūsu straumēšana tiks ierobežota līdz {{limit}} min. Lai iegūtu neierobežotu straumēšanu, izmēģiniet {{app}}.", "off": "Tiešraide izslēgta", "offBy": "{{name}} izslēdza tiešraidi", "on": "Tiešraide ieslēgta", @@ -724,6 +730,7 @@ "streamIdHelp": "Kas tas?", "title": "Tiešraide", "unavailableTitle": "Tiešraide nav pieejama", + "youTubeGoLiveWarning": "Atcerieties nospiest “Sākt tiešraidi” YouTube Studio, ja automātiskā sākšana/apturēšana ir atspējota. Pretējā gadījumā straume netiks ierakstīta.", "youtubeTerms": "YouTube pakalpojumu sniegšanas noteikumi" }, "lobby": { @@ -821,7 +828,7 @@ "dataChannelClosedDescription": "Savienojuma kanāls nedarbojas, tāpēc video kvalitāte var būt ierobežota līdz zemākajam iestatījumam.", "dataChannelClosedDescriptionWithAudio": "Savienojuma kanāls nedarbojas, tāpēc var rasties audio un video traucējumi.", "dataChannelClosedWithAudio": "Audio un video kvalitāte var būt traucēta", - "desktopMutedRemotelyTitle": "", + "desktopMutedRemotelyTitle": "Jūsu ekrāna kopīgošanu apturēja {{participantDisplayName}}", "disabledIframe": "Iegulšana ir paredzēta tikai demonstrācijas nolūkiem, tāpēc šis zvans tiks atvienots pēc {{timeout}} minūtēm.", "disabledIframeSecondaryNative": "Domēna {{domain}} iegulšana ir paredzēta tikai demonstrācijas nolūkiem, tāpēc šis zvans tiks pārtraukts pēc {{timeout}} minūtēm.", "disabledIframeSecondaryWeb": "Domēna {{domain}} iegulšana ir paredzēta tikai demonstrācijas nolūkiem, tāpēc šis zvans tiks pārtraukts pēc {{timeout}} minūtēm. Lūdzu, produkcijas videi izmantojiet Jitsi as a Service!", @@ -903,7 +910,7 @@ "suggestRecordingDescription": "Vai vēlaties sākt ierakstīšanu?", "suggestRecordingTitle": "Ierakstīt sanāksmi", "unmute": "Ieslēgt mikrofonu", - "unmuteScreen": "", + "unmuteScreen": "Sākt ekrāna kopīgošanu", "unmuteVideo": "Ieslēgt video", "videoMutedRemotelyDescription": "Jūs vienmēr varat to atkal ieslēgt.", "videoMutedRemotelyTitle": "{{participantDisplayName}} izslēdza jūsu video", @@ -1127,8 +1134,6 @@ "highlightMomentSuccess": "Brīdis izcelts", "highlightMomentSucessDescription": "Jūsu izceltais brīdis tiks pievienots sapulces kopsavilkumam.", "inProgress": "Notiek ierakstīšana vai tiešraides straumēšana", - "limitNotificationDescriptionNative": "Lielā pieprasījuma dēļ jūsu ieraksts tiks ierobežots līdz {{limit}} min. Lai iegūtu neierobežotu ierakstu skaitu, izmēģiniet <3>{{app}}.", - "limitNotificationDescriptionWeb": "Lielā pieprasījuma dēļ jūsu ieraksts tiks ierobežots līdz {{limit}} min. Lai iegūtu neierobežotu ierakstu skaitu, izmēģiniet {{app}}.", "linkGenerated": "Mēs esam izveidojuši saiti uz jūsu ierakstu.", "localRecordingNoNotificationWarning": "Ieraksts netiks izziņots citiem dalībniekiem. Jums būs jāpaziņo viņiem, ka sapulce tiek ierakstīta.", "localRecordingNoVideo": "Video netiek ierakstīts", @@ -1140,10 +1145,14 @@ "loggedIn": "Pierakstījies kā {{userName}}", "noMicPermission": "Mikrofona ierakstu nevarēja izveidot. Lūdzu, piešķiriet atļauju lietot mikrofonu.", "noStreams": "Nav konstatēta audio vai video straume.", - "off": "Ieraksts izslēgts", - "offBy": "{{name}} izslēdza ierakstu", - "on": "Notiek ieraksts", - "onBy": "{{name}} ieslēdza ierakstu", + "off": "Ieraksts apturēts", + "offBy": "{{name}} apturēja ierakstu", + "offByWithTranscription": "{{name}} apturēja ierakstu un transkripciju", + "offWithTranscription": "Ieraksts un transkripcija apturēti", + "on": "Ieraksts sākts", + "onBy": "{{name}} sāka ierakstu", + "onByWithTranscription": "{{name}} sāka ierakstu. Transkripcija būs pieejama pēc sapulces.", + "onWithTranscription": "Ieraksts sākts. Transkripcija būs pieejama pēc sapulces.", "onlyRecordSelf": "Ierakstīt tikai manas audio un video straumes", "pending": "Gatavojas ierakstīt sapulci…", "policyError": "Jūs mēģinājāt pārāk ātri sākt ierakstīšanu. Lūdzu, vēlāk mēģiniet vēlreiz!", @@ -1315,6 +1324,7 @@ "chat": "Tērzēšanas logs (rādīt/nerādīt)", "clap": "Aplaudēt", "closeChat": "Aizvērt tērzēšanu", + "closeCustomPanel": "Aizvērt", "closeMoreActions": "Aizvērt vairāk darbību izvēlni", "closeParticipantsPane": "Aizvērt dalībnieku paneli", "closedCaptions": "Slēgtie subtitri", @@ -1420,9 +1430,11 @@ "chat": "Tērzētava (atvērt/aizvērt)", "clap": "Aplaudēt", "closeChat": "Aizvērt tērzētavu", + "closeCustomPanel": "Aizvērt", "closeParticipantsPane": "Aizvērt dalībnieku paneli", "closeReactionsMenu": "Aizvērt reakciju izvēlni", "closedCaptions": "Slēgtie subtitri", + "copilot": "Copilot", "disableNoiseSuppression": "Atspējot trokšņu slāpēšanu", "disableReactionSounds": "Šai sapulcei varat atspējot reakcijas skaņas", "documentClose": "Aizvērt kopīgoto dokumentu", @@ -1518,6 +1530,10 @@ "failed": "Atšifrējuma izveide neizdevās", "labelTooltip": "Šajā sapulcē notiek atšifrējuma izveide.", "labelTooltipExtra": "Turklāt vēlāk būs pieejams atšifrējums.", + "off": "Transkripcija apturēta", + "on": "Transkripcija sākta", + "onBy": "{{name}} sāka transkripciju", + "onWithRecording": "Transkripcija būs pieejama arī pēc sapulces.", "openClosedCaptions": "Atvērt slēgtos subtitrus", "original": "Oriģināls", "sourceLanguageDesc": "Pašlaik sapulces valoda ir iestatīta uz {{sourceLanguage}}.
Varat to mainīt no ", @@ -1600,6 +1616,7 @@ "addBackground": "Pievienot fonu", "apply": "Apstiprināt", "backgroundEffectError": "Neizdevās pielietot fona efektu.", + "backgroundLimitReached": "Sasniegts pielāgoto fonu limits", "blur": "Izplūdis", "deleteImage": "Dzēst attēlu", "desktopShare": "Darbvirsmas kopīgošana", @@ -1612,6 +1629,7 @@ "image6": "Mežs", "image7": "Saullēkts", "none": "Nav", + "oldestBackgroundRemoved": "Vecākais pielāgotais fons tika noņemts, lai pievienotu jauno.", "pleaseWait": "Lūdzu uzgaidiet…", "removeBackground": "Noņemt fonu", "slightBlur": "Viegli izplūdis", diff --git a/lang/main-ml.json b/lang/main-ml.json index 2e3102612837..e011e4fdddbc 100644 --- a/lang/main-ml.json +++ b/lang/main-ml.json @@ -416,8 +416,6 @@ "getStreamKeyManually": "ഞങ്ങൾക്ക് തത്സമയ സ്ട്രീമുകളൊന്നും നേടാനായില്ല. യൂട്യൂബിൽ നിന്ന് നിങ്ങളുടെ തത്സമയ സ്ട്രീം കീ നേടാൻ ശ്രമിക്കുക.", "googlePrivacyPolicy": "ഗൂഗിൾ സ്വകാര്യതാ നയം", "invalidStreamKey": "തത്സമയ സ്ട്രീം കീ തെറ്റായിരിക്കാം.", - "limitNotificationDescriptionNative": "നിങ്ങളുടെ സ്ട്രീമിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും.പരിധിയില്ലാത്ത സ്ട്രീമിംഗിനായി ശ്രമിക്കുക {{app}}.", - "limitNotificationDescriptionWeb": "ഉയർന്ന ഡിമാൻഡ് കാരണം നിങ്ങളുടെ സ്ട്രീമിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും. പരിധിയില്ലാത്ത സ്ട്രീമിംഗിനായി ശ്രമിക്കുക {{app}}.", "off": "തത്സമയ സ്ട്രീമിംഗ് അവസാനിച്ചു", "offBy": "{{name}} തത്സമയ സ്ട്രീമിംഗ് നിർത്തി", "on": "തത്സമയ സംപ്രേക്ഷണം", @@ -640,8 +638,6 @@ "expandedPending": "റെക്കോർഡിംഗ് ആരംഭിച്ചു…", "failedToStart": "റെക്കോർഡിംഗ് ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു", "fileSharingdescription": "മീറ്റിംഗ് പങ്കാളികളുമായി റെക്കോർഡിംഗ് പങ്കിടുക", - "limitNotificationDescriptionNative": "ഉയർന്ന ഡിമാൻഡ് കാരണം നിങ്ങളുടെ റെക്കോർഡിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും. പരിധിയില്ലാത്ത റെക്കോർഡിംഗുകൾക്കായി <3>{{app}}.", - "limitNotificationDescriptionWeb": "ഉയർന്ന ഡിമാൻഡ് കാരണം നിങ്ങളുടെ റെക്കോർഡിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും. പരിധിയില്ലാത്ത റെക്കോർഡിംഗുകൾക്കായി {{app}}.", "live": "തത്സമയം", "loggedIn": "{{userName}} എന്നയാളായി ലോഗിൻ ചെയ്‌തു", "off": "െക്കോർഡിംഗ് അവസാനിച്ചു", diff --git a/lang/main-mn.json b/lang/main-mn.json index 5606a86583f6..5f2d67db32f3 100644 --- a/lang/main-mn.json +++ b/lang/main-mn.json @@ -566,8 +566,6 @@ "googlePrivacyPolicy": "Google хувийн мэдээлэл хамгаалах дүрэм", "inProgress": "Шууд дамжуулалтыг бичиж байна", "invalidStreamKey": "Шууд дамжуулалтын түлхүүрээ шалгана уу.", - "limitNotificationDescriptionNative": "Таны шууд дамжуулалтын хугацаа {{limit}}-аар минутын хязгаарлагдана. Хязгааргүй болгохын тулд {{app}} аппыг ажиллуулж үзнэ үү.", - "limitNotificationDescriptionWeb": "Таны шууд дамжуулалт чанараас хамааран хугацаа Due to high demand your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.", "off": "Шууд дамжуулалт зогссон", "offBy": "{{name}} шууд дамжуулалтыг зогсоосон", "on": "Шууд дамжуулалт", @@ -932,8 +930,6 @@ "highlightMomentSuccess": "Энэ мөчийг онцолсон", "highlightMomentSucessDescription": "Таны онцолсон мөч уулзалтын хураангуй хэсэгт нэмэгдэнэ.", "inProgress": "Бичлэг хийх эсвэл шууд дамжуулалт идэвхитэй", - "limitNotificationDescriptionNative": "Бичлэгийн чанараас хамааран таны минут {{limit}}-р хязгаарлагдаж байна. Хязгаарлалтгүй бичлэг хийхийн тулд <3>{{app}} үзээрэй.", - "limitNotificationDescriptionWeb": "Бичлэгийн чанараас хамааран таны минут {{limit}}-р хязгаарлагдаж байна. Хязгаарлалтгүй бичлэг хийхийн тулд {{app}} ашиглана уу.", "linkGenerated": "Таны бичлэгийн холбоосыг үүсгэсэн.", "live": "ШУУД", "localRecordingNoNotificationWarning": "Бусад оролцогчид бичлэгийн хийх талаар мэдэгдэнэ. Та энэ бичлэгийн талаарх мэдэгдлийг зөвшөөрөх шаардлагатай.", diff --git a/lang/main-nb.json b/lang/main-nb.json index 4aa731e2c685..cfa886687a81 100644 --- a/lang/main-nb.json +++ b/lang/main-nb.json @@ -635,8 +635,6 @@ "googlePrivacyPolicy": "Googles personvernpolicy", "inProgress": "Opptak eller direktesending pågår", "invalidStreamKey": "Strømmenøkkelen kan være feil.", - "limitNotificationDescriptionNative": "Direktesendingen din vil være begrenset til {{limit}} min. For ubegrenset strømming, prøv {{app}}.", - "limitNotificationDescriptionWeb": "På grunn av høy etterspørsel vil direktesendingen din være begrenset til {{limit}} min. For ubegrenset strømming, prøv {{app}}.", "off": "Direktesending stoppet", "offBy": "{{name}} stoppet direktesendingen", "on": "Direktesending startet", @@ -1037,8 +1035,6 @@ "highlightMomentSuccess": "Øyeblikk markert", "highlightMomentSucessDescription": "Det markerte øyeblikket vil bli lagt til møtereferatet.", "inProgress": "Opptak eller direktesending pågår", - "limitNotificationDescriptionNative": "På grunn av høy etterspørsel vil opptaket være begrenset til {{limit}} min. For ubegrensede opptak, prøv <3>{{app}}.", - "limitNotificationDescriptionWeb": "På grunn av høy etterspørsel vil opptaket være begrenset til {{limit}} min. For ubegrensede opptak, prøv {{app}}.", "linkGenerated": "Vi har generert en lenke til opptaket ditt.", "localRecordingNoNotificationWarning": "Opptaket vil ikke bli annonsert til de andre deltakerne. Du må informere dem om at møtet blir tatt opp.", "localRecordingNoVideo": "Video blir ikke tatt opp", diff --git a/lang/main-nl.json b/lang/main-nl.json index 253c8a6bf84f..fa6d45d282b0 100644 --- a/lang/main-nl.json +++ b/lang/main-nl.json @@ -1,7 +1,7 @@ { "addPeople": { "accessibilityLabel": { - "meetingLink": "Meeting link: {{url}}" + "meetingLink": "Meeting-link: {{url}}" }, "add": "Uitnodigen", "addContacts": "Nodig uw contacten uit", @@ -126,7 +126,7 @@ "messagebox": "Typ een bericht", "newMessages": "Nieuwe berichten", "nickname": { - "featureChat": "chat", + "featureChat": "gesprek", "featureClosedCaptions": "ondertiteling", "featureFileSharing": "bestandsdeling", "featurePolls": "peilingen", @@ -373,9 +373,9 @@ "kickParticipantTitle": "Deze deelnemer verwijderen?", "kickSystemTitle": "Oei! U bent uit de vergadering verwijderd", "kickTitle": "Oei! {{participantDisplayName}} heeft u uit de vergadering verwijderd", - "learnMore": "meer informatie", + "learnMore": "Meer informatie", "linkMeeting": "Vergadering koppelen", - "linkMeetingTitle": "Vergadering koppelen aan Verkoop", + "linkMeetingTitle": "Vergadering koppelen aan Salesforce", "liveStreaming": "Livestreamen", "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Niet mogelijk tijdens opnemen", "localUserControls": "Lokale gebruikerscontrole", @@ -383,6 +383,9 @@ "lockRoom": "$t(lockRoomPassword) voor vergadering toevoegen", "lockTitle": "Vergrendelen is mislukt", "login": "Inloggen", + "loginFailed": "Inloggen is mislukt.", + "loginOnResume": "Uw authenticatiesessie is verlopen. U moet opnieuw inloggen om de vergadering voort te zetten.", + "loginPopupBlocked": "Inloggen-popup werd geblokkeerd door uw browser.", "loginQuestion": "Weet u zeker dat u wilt inloggen en de conferentie verlaten?", "logoutQuestion": "Weet u zeker dat u zich wilt afmelden en de conferentie wilt stoppen?", "logoutTitle": "Afmelden", @@ -443,9 +446,7 @@ "recentlyUsedObjects": "Uw recent gebruikte objecten", "recording": "Opname", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Niet mogelijk tijdens een livestream", - "recordingInProgressDescription": "Deze bijeenkomst wordt opgenomen en geanalyseerd door AI{{learnMore}}. Uw audio en video zijn gedempt. Als u ervoor kiest om de demping op te heffen, stemt u ermee in dat u wordt opgenomen.", - "recordingInProgressDescriptionFirstHalf": "Deze bijeenkomst wordt opgenomen en geanalyseerd door AI", - "recordingInProgressDescriptionSecondHalf": ". Uw audio en video zijn gedempt. Als u ervoor kiest om de demping op te heffen, stemt u ermee in dat u wordt opgenomen.", + "recordingInProgressDescription": "Deze bijeenkomst wordt opgenomen en geanalyseerd door AI. Uw audio en video zijn gedempt. Als u ervoor kiest om de demping op te heffen, stemt u ermee in dat u wordt opgenomen.", "recordingInProgressTitle": "Opname loopt", "rejoinNow": "Nu opnieuw deelnemen", "remoteControlAllowedMessage": "{{user}} heeft uw verzoek om extern beheer geaccepteerd.", @@ -468,7 +469,9 @@ "screenSharingFailed": "Oeps! Er is iets misgegaan, de schermdeling kon niet worden gestart!", "screenSharingFailedTitle": "Schermdeling mislukt!", "screenSharingPermissionDeniedError": "Oeps! Er is iets misgegaan met uw toegangsrechten voor schermdeling. Herlaad en probeer opnieuw.", - "searchInSalesforce": "Zoeken bij Verkoop", + "screenshareStoppedDiskSpace": "Dit gebeurt als u de zwevende werkbalk van macOS hebt gebruikt om het delen van schermen te stoppen. Het kan ook te wijten zijn aan een lage schijfruimte.", + "screenshareStoppedTitle": "Scherm delen gestopt via systeem", + "searchInSalesforce": "Zoeken in Salesforce", "searchResults": "Zoekresultaten({{count}})", "searchResultsDetailsError": "Er ging iets mis bij het ophalen van eigenaargegevens.", "searchResultsError": "Er ging iets mis bij het ophalen van gegevens", @@ -504,7 +507,7 @@ "sharedVideoDialogError": "Fout: Ongeldige of verboden URL", "sharedVideoLinkPlaceholder": "YouTube-link of directe video-link", "show": "Weergeven", - "start": "Start ", + "start": "Starten ", "startLiveStreaming": "Livestream starten", "startRecording": "Opname starten", "startRemoteControlErrorMessage": "Er is een fout opgetreden tijdens het starten van de sessie van extern beheer.", @@ -592,6 +595,7 @@ "newFileNotification": "{{ participantName }} deelde '{{ fileName }}'", "removeFile": "Verwijderen", "removeFileSuccess": "Bestand met succes verwijderd", + "uploadDisabled": "Bestanden uploaden is niet toegestaan. Vraag een moderator om toestemming voor die handeling.", "uploadFailedDescription": "Probeer het nog eens.", "uploadFailedTitle": "Upload is mislukt", "uploadFile": "Bestand delen" @@ -697,6 +701,7 @@ "changeSignIn": "Wissel van account.", "choose": "Kies een livestream", "chooseCTA": "Kies een streamingoptie. U bent momenteel aangemeld als {{email}}.", + "chooseCTAWithChangeSignIn": "Kies een streamingoptie. U bent momenteel aangemeld als {{email}}. <0>Accounts schakelen.", "enterStreamKey": "Voer hier uw livestream-sleutel van YouTube in.", "error": "Livestreamen is mislukt. Probeer het opnieuw.", "errorAPI": "Er is een fout opgetreden tijdens het openen van uw YouTube-uitzendingen. Meld u opnieuw aan.", @@ -709,8 +714,6 @@ "googlePrivacyPolicy": "Privacybeleid Google", "inProgress": "Opname of livestreaming gaande", "invalidStreamKey": "Livestream-sleutel is mogelijk onjuist.", - "limitNotificationDescriptionNative": "Uw stream zal beperkt worden tot {{limit}} min. Voor ongelimiteerd streamen, probeer {{app}}.", - "limitNotificationDescriptionWeb": "Vanwege een grote vraag zal uw stream beperkt worden tot {{limit}} min. Voor ongelimiteerd streamen, probeer {{app}}.", "off": "Livestream gestopt", "offBy": "{{name}} heeft de livestream gestopt.", "on": "Livestream", @@ -727,11 +730,12 @@ "streamIdHelp": "Wat is dit?", "title": "Livestream", "unavailableTitle": "Livestreamen niet beschikbaar", + "youTubeGoLiveWarning": "Vergeet niet om op 'Go Live' te klikken in YouTube Studio als Auto-Start/Auto-Stop is uitgeschakeld. Anders begint de stream niet met opnemen.", "youtubeTerms": "Servicevoorwaarden YouTube" }, "lobby": { "backToKnockModeButton": "Vraag om deel te mogen nemen", - "chat": "Chat", + "chat": "Gesprek", "dialogTitle": "Wachtruimte-modus", "disableDialogContent": "Wachtruimte-modus is momenteel ingeschakeld. Deze functie zorgt ervoor dat ongewenste deelnemers niet aan uw vergadering kunnen deelnemen. Wilt u het uitschakelen?", "disableDialogSubmit": "Uitschakelen", @@ -847,12 +851,12 @@ "leftOneMember": "{{name}} heeft de vergadering verlaten", "leftThreePlusMembers": "{{name}} en vele anderen hebben de vergadering verlaten", "leftTwoMembers": "{{first}} en {{second}} hebben de vergadering verlaten", - "linkToSalesforce": "Koppelen aan Verkoop", - "linkToSalesforceDescription": "U kunt de samenvatting van de vergadering koppelen aan een Verkoop-object.", - "linkToSalesforceError": "Koppelen aan Verkoop is mislukt", + "linkToSalesforce": "Koppelen aan Salesforce", + "linkToSalesforceDescription": "U kunt de samenvatting van de vergadering koppelen aan een Salesforce-object.", + "linkToSalesforceError": "Koppelen aan Salesforce is mislukt", "linkToSalesforceKey": "Deze vergadering koppelen", - "linkToSalesforceProgress": "Vergadering koppelen aan Verkoop…", - "linkToSalesforceSuccess": "De vergadering is gekoppeld aan Verkoop", + "linkToSalesforceProgress": "Vergadering koppelen aan Salesforce…", + "linkToSalesforceSuccess": "De vergadering is gekoppeld aan Salesforce", "localRecordingStarted": "{{name}} heeft een lokale opname gestart.", "localRecordingStopped": "{{name}} heeft een lokale opname gestopt.", "me": "Ik", @@ -888,7 +892,7 @@ "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) verwijderd door een andere deelnemer", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) ingesteld door een ander deelnemer", "raiseHandAction": "Hand opsteken", - "raisedHand": "Wilgraag deelnemen.", + "raisedHand": "Wil graag deelnemen.", "raisedHands": "{{participantName}} en {{raisedHands}} meer mensen", "reactionSounds": "Geluiden uitschakelen", "reactionSoundsForAll": "Geluiden uitschakelen voor iedereen", @@ -992,7 +996,7 @@ "pollQuestion": "Peiling vraag", "questionPlaceholder": "Stel een vraag", "removeOption": "Optie verwijderen", - "send": "Opslaan" + "save": "Opslaan" }, "errors": { "notUniqueOption": "Opties moeten uniek zijn" @@ -1096,15 +1100,15 @@ "setEmailLabel": "Gravatar e-mailadres", "title": "Profiel" }, - "raisedHand": "Zou graag willen spreken", + "raisedHand": "Wil graag spreken", "raisedHandsLabel": "Aantal handen omhoog", "record": { "already": { - "linked": "De vergadering is al gekoppeld aan dit Verkoop-object." + "linked": "De vergadering is al gekoppeld aan dit Salesforce-object." }, "type": { "account": "Account", - "contact": "Contact", + "contact": "Contactpersoon", "lead": "Potentiële klant", "opportunity": "Kans", "owner": "Eigenaar" @@ -1130,8 +1134,6 @@ "highlightMomentSuccess": "Moment gemarkeerd", "highlightMomentSucessDescription": "Uw gemarkeerde moment wordt toegevoegd aan de samenvatting van de vergadering.", "inProgress": "Opname of live streaming in uitvoering", - "limitNotificationDescriptionNative": "Vanwege een grote vraag wordt uw opname beperkt tot {{limit}} min. Voor ongelimiteerde opnamen, probeer <3>{{app}}.", - "limitNotificationDescriptionWeb": "Vanwege een grote vraag wordt uw opname beperkt tot {{limit}} min. Voor ongelimiteerde opnamen, probeer {{app}}.", "linkGenerated": "Wij hebben een link naar uw opname gegenereerd.", "localRecordingNoNotificationWarning": "De opname wordt niet aan andere deelnemers bekendgemaakt. U moet hen laten weten dat de vergadering is opgenomen.", "localRecordingNoVideo": "Video wordt niet opgenomen", @@ -1147,6 +1149,8 @@ "offBy": "{{name}} heeft de opname gestopt", "on": "Opnemen", "onBy": "{{name}} heeft de opname gestart", + "onByWithTranscription": "{{name}} heeft de opname gestart. Na de bijeenkomst zal er ook een transcriptie beschikbaar zijn.", + "onWithTranscription": "Opname gestart. Na de bijeenkomst zal er ook een transcriptie beschikbaar zijn.", "onlyRecordSelf": "Neem alleen mijn audio - en videostreams op", "pending": "Voorbereiden op opnemen van de vergadering…", "policyError": "U probeerde te snel een opname te starten. Probeer het later nog eens!", @@ -1276,7 +1280,7 @@ "displayEmotions": "Emoties weergeven", "fearful": "Angstig", "happy": "Blij", - "hours": "{{count}}h", + "hours": "{{count}}u", "labelTooltip": "Aantal deelnemers: {{count}}", "minutes": "{{count}}m", "name": "Naam", @@ -1347,7 +1351,7 @@ "laugh": "Lachen", "leaveConference": "Vergadering verlaten", "like": "Duim omhoog", - "linkToSalesforce": "Koppelen met Verkoop", + "linkToSalesforce": "Koppelen aan Salesforce", "lobbyButton": "Wachtruimte in- of uitschakelen", "localRecording": "Besturingselementen voor lokale opname in- of uitschakelen", "lockRoom": "Wachtwoord voor vergadering in- of uitschakelen", @@ -1454,7 +1458,7 @@ "leaveBreakoutRoom": "Aparte vergaderruimte verlaten", "leaveConference": "Vergadering verlaten", "like": "Duim omhoog", - "linkToSalesforce": "Koppelen aan Verkoop", + "linkToSalesforce": "Koppelen aan Salesforce", "lobbyButtonDisable": "Wachtruimte uitschakelen", "lobbyButtonEnable": "Wachtruimte inschakelen", "login": "Aanmelden", @@ -1524,6 +1528,10 @@ "failed": "Transcriberen is mislukt", "labelTooltip": "Deze bijeenkomst wordt getranscribeerd.", "labelTooltipExtra": "Daarnaast zal er later een transcript beschikbaar zijn.", + "off": "Transcribering is gestopt", + "on": "Transcribering is gestart", + "onBy": "{{name}} heeft de transcriptie gestart", + "onWithRecording": "Na de bijeenkomst zal er ook een transcriptie beschikbaar zijn.", "openClosedCaptions": "Ondertiteling openen", "original": "Origineel", "sourceLanguageDesc": "Momenteel is de vergadertaal ingesteld op {{sourceLanguage}}.
U kunt het vanaf hier ", @@ -1606,6 +1614,7 @@ "addBackground": "Achtergrond toevoegen", "apply": "Toepassen", "backgroundEffectError": "Toepassen van achtergrondeffect niet gelukt.", + "backgroundLimitReached": "Aangepaste achtergrondlimiet bereikt", "blur": "Vervagen", "deleteImage": "Afbeelding verwijderen", "desktopShare": "Bureaublad delen", @@ -1618,6 +1627,7 @@ "image6": "Bos ", "image7": "Zonsopkomst", "none": "Geen", + "oldestBackgroundRemoved": "De oudste aangepaste achtergrond is verwijderd om de nieuwe toe te voegen.", "pleaseWait": "Even geduld a.u.b…", "removeBackground": "Verwijder achtergrond", "slightBlur": "Licht vervagen", @@ -1630,30 +1640,30 @@ "chatIndicator": "(toeschouwer)", "joinMeeting": { "description": "U bent momenteel een toeschouwer bij deze conferentie.", - "raiseHand": "Raise your hand", - "title": "Joining meeting", - "wishToSpeak": "If you wish to speak, please raise your hand below and wait for the moderator's approval." + "raiseHand": "Hand opsteken", + "title": "Deelnemen aan vergadering", + "wishToSpeak": "Als u wilt spreken, steek dan hieronder uw hand op en wacht op goedkeuring van de moderator." }, - "labelTooltip": "Number of viewers: {{count}}", + "labelTooltip": "Aantal toeschouwers: {{count}}", "notification": { - "demoteDescription": "Sent here by {{actor}}, raise your hand to participate", - "noMainParticipantsDescription": "A participant needs to start the meeting. Please try again in a bit.", - "noMainParticipantsTitle": "This meeting hasn't started yet.", - "noVisitorLobby": "You cannot join while there is a lobby enabled for the meeting.", - "notAllowedPromotion": "A participant needs to allow your request first.", - "requestToJoin": "Hand Raised", - "requestToJoinDescription": "Your request was sent to the moderators. Hang tight!", - "title": "You are a viewer in the meeting" + "demoteDescription": "Hierheen gestuurd door {{actor}}, steek uw hand op om deel te nemen", + "noMainParticipantsDescription": "Een deelnemer moet de vergadering starten. Probeer het over een tijdje opnieuw.", + "noMainParticipantsTitle": "Deze vergadering is nog niet begonnen.", + "noVisitorLobby": "U kunt niet deelnemen terwijl er een wachtruimte is ingeschakeld voor de vergadering.", + "notAllowedPromotion": "Een deelnemer moet eerst uw verzoek toestaan.", + "requestToJoin": "Hand opgestoken", + "requestToJoinDescription": "Uw verzoek is naar de moderators gestuurd. Even geduld!", + "title": "U bent een toeschouwer in de vergadering" }, - "waitingMessage": "You'll join the meeting as soon as it is live!" + "waitingMessage": "U zult deelnemen aan de vergadering zodra deze live is!" }, - "volumeSlider": "Volume slider", + "volumeSlider": "Volume-schuifknop", "welcomepage": { "accessibilityLabel": { "join": "Tik om deel te nemen", "roomname": "Voer naam van ruimte in" }, - "addMeetingName": "Add Meeting name", + "addMeetingName": "Geef de vergadering een naam", "appDescription": "U kunt nu videochatten met het gehele team. Nodig uit wie u maar wilt. {{app}} is een volledig versleutelde, 100% open-source oplossing voor videovergaderingen, die u wanneer u maar wilt gratis kunt gebruiken — zonder dat u een account nodig hebt.", "audioVideoSwitch": { "audio": "Spraak", @@ -1673,16 +1683,16 @@ "join": "AANMAKEN / DEELNEMEN", "logo": { "calendar": "Agenda logo", - "desktopPreviewThumbnail": "Desktop preview thumbnail", + "desktopPreviewThumbnail": "Bureaubladvoorbeeld miniatuur", "googleLogo": "Google logo", "logoDeepLinking": "Jitsi meet logo", "microsoftLogo": "Microsoft logo", "policyLogo": "Policy logo" }, - "meetingsAccessibilityLabel": "Meetings", - "mobileDownLoadLinkAndroid": "Download mobile app for Android", - "mobileDownLoadLinkFDroid": "Download mobile app for F-Droid", - "mobileDownLoadLinkIos": "Download mobile app for iOS", + "meetingsAccessibilityLabel": "Vergaderingen", + "mobileDownLoadLinkAndroid": "Download mobiele app voor Android", + "mobileDownLoadLinkFDroid": "Download mobiele app voor F-Droid", + "mobileDownLoadLinkIos": "Download mobiele app voor iOS", "moderatedMessage": "Of boek een vergadering URL van tevoren waar u de enige moderator bent.", "privacy": "Privacy", "recentList": "Recent", diff --git a/lang/main-no.json b/lang/main-no.json index 4aa731e2c685..cfa886687a81 100644 --- a/lang/main-no.json +++ b/lang/main-no.json @@ -635,8 +635,6 @@ "googlePrivacyPolicy": "Googles personvernpolicy", "inProgress": "Opptak eller direktesending pågår", "invalidStreamKey": "Strømmenøkkelen kan være feil.", - "limitNotificationDescriptionNative": "Direktesendingen din vil være begrenset til {{limit}} min. For ubegrenset strømming, prøv {{app}}.", - "limitNotificationDescriptionWeb": "På grunn av høy etterspørsel vil direktesendingen din være begrenset til {{limit}} min. For ubegrenset strømming, prøv {{app}}.", "off": "Direktesending stoppet", "offBy": "{{name}} stoppet direktesendingen", "on": "Direktesending startet", @@ -1037,8 +1035,6 @@ "highlightMomentSuccess": "Øyeblikk markert", "highlightMomentSucessDescription": "Det markerte øyeblikket vil bli lagt til møtereferatet.", "inProgress": "Opptak eller direktesending pågår", - "limitNotificationDescriptionNative": "På grunn av høy etterspørsel vil opptaket være begrenset til {{limit}} min. For ubegrensede opptak, prøv <3>{{app}}.", - "limitNotificationDescriptionWeb": "På grunn av høy etterspørsel vil opptaket være begrenset til {{limit}} min. For ubegrensede opptak, prøv {{app}}.", "linkGenerated": "Vi har generert en lenke til opptaket ditt.", "localRecordingNoNotificationWarning": "Opptaket vil ikke bli annonsert til de andre deltakerne. Du må informere dem om at møtet blir tatt opp.", "localRecordingNoVideo": "Video blir ikke tatt opp", diff --git a/lang/main-oc.json b/lang/main-oc.json index 1d4f3b8fe046..1d7199ced943 100644 --- a/lang/main-oc.json +++ b/lang/main-oc.json @@ -635,8 +635,6 @@ "googlePrivacyPolicy": "Politica de confidencialitat de Google", "inProgress": "Enregistrament o difusion en dirècte en cors", "invalidStreamKey": "La clau de difusion en dirècte es benlèu pas corrècta.", - "limitNotificationDescriptionNative": "Vòstra difusion serà limitada a {{limit}} min. Per de difusions illimitada ensajatz {{app}}.", - "limitNotificationDescriptionWeb": "A causa d'una brava demanda vòstra difusion serà limitada a {{limit}} min. Per de difusion illimitada ensajatz {{app}}.", "off": "La difusion en dirècte es estada arrestada", "offBy": "{{name}} a arrestat la difusion en dirècte", "on": "Difusion en dirècte", @@ -1037,8 +1035,6 @@ "highlightMomentSuccess": "Moments destacats", "highlightMomentSucessDescription": "Vòstre moment suslinhat serà apondut al resumit de la reünion.", "inProgress": "Enregistrament o difusion en dirècte en cors", - "limitNotificationDescriptionNative": "A causa d’una demanda fòrta vòstre enregistrament serà limitat a {{limit}} min. Per d’enregistraments sens limit ensajatz <3>{{app}}.", - "limitNotificationDescriptionWeb": "A causa d’una demanda fòrta vòstre enregistrament serà limitat a {{limit}} min. Per d’enregistraments sens limit ensajatz {{app}}.", "linkGenerated": "Avèm generat un ligam pel vòstre enregistrament.", "localRecordingNoNotificationWarning": "L'enregistrament s'anonciarà pas als autres participants. Los deuretz informar que la reünion serà enregistrada.", "localRecordingNoVideo": "La vidèo es pas enregistrada actualament", diff --git a/lang/main-pl.json b/lang/main-pl.json index 1dedce37f3a4..bb53dc8e77bf 100644 --- a/lang/main-pl.json +++ b/lang/main-pl.json @@ -566,8 +566,6 @@ "googlePrivacyPolicy": "Polityka prywatności Google", "inProgress": "Trwa nagrywanie lub transmisja na żywo", "invalidStreamKey": "Klucz transmisji na żywo może być nieprawidłowy.", - "limitNotificationDescriptionNative": "Twoje strumieniowanie będzie ograniczone do {{limit}} minut. Aby strumieniować bez ograniczeń wybróbuj {{app}}.", - "limitNotificationDescriptionWeb": "Ze względu na duże zapotrzebowanie twoje strumieniowanie będzie ograniczone do {{limit}} minut. Aby strumieniować bez ograniczeń wybróbuj {{app}}.", "off": "Transmitowanie na żywo zostało zatrzymane", "offBy": "{{name}} zatrzymał transmisję na żywo", "on": "Strumień live", @@ -873,6 +871,7 @@ "or": "lub", "premeeting": "Przed spotkaniem", "proceedAnyway": "Kontynuuj mimo to", + "recordingWarning": "Inni uczestnicy mogą nagrywać tę rozmowę", "screenSharingError": "Błąd udostępniania ekranu:", "startWithPhone": "Uruchom przez telefon", "unsafeRoomConsent": "Rozumiem ryzyko, chcę dołączyć do spotkania", @@ -935,8 +934,6 @@ "highlightMomentSuccess": "Zaznaczony moment", "highlightMomentSucessDescription": "Zaznaczony moment zostanie dodany do podsumowania spotkania.", "inProgress": "Trwa nagrywanie lub transmisja na żywo", - "limitNotificationDescriptionNative": "Ze względu na duże zapotrzebowanie twoje nagrywanie będzie ograniczone do {{limit}} minut. Aby strumieniować bez ograniczeń wybróbuj <3>{{app}}.", - "limitNotificationDescriptionWeb": "Ze względu na duże zapotrzebowanie twoje nagrywanie będzie ograniczone do {{limit}} minut. Aby strumieniować bez ograniczeń wybróbuj {{app}}.", "linkGenerated": "Wygenerowano link do nagrania.", "live": "NA ŻYWO", "localRecordingNoNotificationWarning": "Nagranie nie zostanie ogłoszone innym uczestnikom. Musisz poinformować ich, że spotkanie jest nagrywane.", diff --git a/lang/main-pt-BR.json b/lang/main-pt-BR.json index 388ebbf6e1a7..1fd10b316a42 100644 --- a/lang/main-pt-BR.json +++ b/lang/main-pt-BR.json @@ -622,8 +622,6 @@ "googlePrivacyPolicy": "Política de Privacidade do Google", "inProgress": "Gravação ou live streaming em andamento", "invalidStreamKey": "A senha para transmissão ao vivo pode estar incorreta.", - "limitNotificationDescriptionNative": "Sua transmissão será limitada a {{limit}} minutos. Para transmissão ilimitada tente {{app}}.", - "limitNotificationDescriptionWeb": "Devido a alta demanda sua transmissão será limitada a {{limit}} minutos. Para transmissão ilimitada tente {{app}}.", "off": "Transmissão ao vivo encerrada", "offBy": "{{name}} parou a transmissão ao vivo", "on": "Transmissão ao Vivo", @@ -996,8 +994,6 @@ "highlightMomentSuccess": "Momento destacado", "highlightMomentSucessDescription": "Seu momento destacado será adicionado ao sumário da reunião.", "inProgress": "Gravação ou live streaming em andamento", - "limitNotificationDescriptionNative": "Devido a demanda, sua gravação ficará limitada a {{limit}} minutos. Para gravação ilimitada tente <3>{{app}}.", - "limitNotificationDescriptionWeb": "Devido a demanda, sua gravação ficará limitada a {{limit}} minutos. Para gravação ilimitada tente {{app}}.", "linkGenerated": "Geramos um link para sua gravação.", "live": "AO VIVO", "localRecordingNoNotificationWarning": "A gravação não será anunciada aos outros participantes. Você precisará avisá-los que a reunião está sendo gravada.", diff --git a/lang/main-pt.json b/lang/main-pt.json index a30f407d098f..f46b3896bb6f 100644 --- a/lang/main-pt.json +++ b/lang/main-pt.json @@ -370,7 +370,7 @@ "kickParticipantTitle": "Expulsar este participante?", "kickSystemTitle": "Ai! Foste expulso da reunião.", "kickTitle": "Ai! {{participantDisplayName}} expulsou-o da reunião", - "learnMore": "saiba mais", + "learnMore": "Saiba mais", "linkMeeting": "Link da reunião", "linkMeetingTitle": "Link da reunião à Força de Vendas", "liveStreaming": "Transmissão em direto", @@ -440,9 +440,7 @@ "recentlyUsedObjects": "Os seus objetos recentemente utilizados", "recording": "A gravar", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Não possível enquanto a transmissão em direto estiver activa", - "recordingInProgressDescription": "Esta reunião está a ser gravada e analisada pela IA{{learnMore}}. O seu áudio e vídeo foram silenciados. Se optar por ativar o som, concorda em ser gravado.", - "recordingInProgressDescriptionFirstHalf": "Esta reunião está a ser gravada e analisada por IA.", - "recordingInProgressDescriptionSecondHalf": ". Your audio and video have been muted. If you choose to unmute, you consent to being recorded.", + "recordingInProgressDescription": "Esta reunião está a ser gravada e analisada pela IA. O seu áudio e vídeo foram silenciados. Se optar por ativar o som, concorda em ser gravado.", "recordingInProgressTitle": "Gravação em andamento", "rejoinNow": "Reingressar agora", "remoteControlAllowedMessage": "{{user}} aceitou o seu pedido de controlo remoto!", @@ -706,8 +704,6 @@ "googlePrivacyPolicy": "Política de Privacidade do Google", "inProgress": "Gravação ou transmissão em direto em curso", "invalidStreamKey": "A senha para transmissão em direto pode estar incorreta.", - "limitNotificationDescriptionNative": "A sua transmissão será limitada a {{limit}} min. Para uma tentativa de streaming ilimitada tente {{app}}.", - "limitNotificationDescriptionWeb": "Devido à grande procura, a sua transmissão será limitada a {{limit}} min. Para uma tentativa de streaming ilimitada tente {{app}}.", "off": "Transmissão em direto encerrada", "offBy": "{{name}} parou a transmissão em direto", "on": "Iniciada a transmissão em direto", @@ -1127,8 +1123,6 @@ "highlightMomentSuccess": "Momento destacado", "highlightMomentSucessDescription": "O seu momento destacado será acrescentado ao resumo da reunião.", "inProgress": "Gravação ou transmissão em direto em curso", - "limitNotificationDescriptionNative": "Due to high demand your recording will be limited to {{limit}} min. Para gravações ilimitadas tente <3>{{app}}.", - "limitNotificationDescriptionWeb": "Devido à grande procura, a sua gravação será limitada a {{limit}} min. For unlimited recordings try {{app}}.", "linkGenerated": "Gerámos um link para a sua gravação.", "localRecordingNoNotificationWarning": "A gravação não será anunciada aos outros participantes. Será necessário avisá-los de que a reunião está gravada.", "localRecordingNoVideo": "O vídeo não está a ser gravado", diff --git a/lang/main-ru.json b/lang/main-ru.json index ee43590305be..b692ffc19909 100644 --- a/lang/main-ru.json +++ b/lang/main-ru.json @@ -628,8 +628,6 @@ "googlePrivacyPolicy": "Политика конфиденциальности Google", "inProgress": "Идет запись или прямая трансляция", "invalidStreamKey": "Похоже ключ прямой трансляции неверен.", - "limitNotificationDescriptionNative": "Ваша трансляция будет ограничена {{limit}} мин. Для неограниченного просмотра попробуйте {{app}}.", - "limitNotificationDescriptionWeb": "Из-за высокой нагрузки ваша потоковая передача будет ограничена {{limit}} мин. Для неограниченной потоковой передачи попробуйте {{app}} .", "off": "Трансляция остановлена", "offBy": "{{name}} остановил прямую трансляцию", "on": "Трансляция", @@ -1011,8 +1009,6 @@ "highlightMomentSuccess": "Моменты выделены", "highlightMomentSucessDescription": "Ваши выделенные моменты будут добавлены в итоги встречи.", "inProgress": "Идет запись или прямая трансляция", - "limitNotificationDescriptionNative": "Из-за высокой нагрузки ваша запись будет ограничена {{limit}} мин. Для неограниченного количества записей попробуйте <3> {{app}} .", - "limitNotificationDescriptionWeb": "Из-за высокой нагрузки ваша запись будет ограничена {{limit}} мин. Для неограниченного количества записей попробуйте {{app}}.", "linkGenerated": "Мы создали ссылку на вашу запись.", "localRecordingNoNotificationWarning": "Запись не будет объявлена другим участникам. Вам необходимо самостоятельно уведомить их о том, что встреча записывается.", "localRecordingNoVideo": "Видео не записывается", diff --git a/lang/main-sc.json b/lang/main-sc.json index fff02a1c984f..4ca12752f1a5 100644 --- a/lang/main-sc.json +++ b/lang/main-sc.json @@ -360,7 +360,7 @@ "kickParticipantTitle": "Cheres bogare custa persone?", "kickSystemTitle": "Ohia, t'ant bogadu dae s'addòbiu", "kickTitle": "Ohi! {{participantDisplayName}} t'at bogadu de sa riunione", - "learnMore": "àteras informatziones", + "learnMore": "Àteras informatziones", "linkMeeting": "Acàpia sa riunione", "linkMeetingTitle": "Acàpia sa riunione a Salesforce", "liveStreaming": "Trasmissione in direta", @@ -430,9 +430,7 @@ "recentlyUsedObjects": "Ogetos impreados de reghente", "recording": "Registrende", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossìbile in su mentras chi sa trasmissione in direta est ativa", - "recordingInProgressDescription": "Est in cursu sa registratzione e s'anàlisi de custu addòbiu cun IA{{learnMore}}. S'àudio e su vìdeu tuos sunt disativados. Si ddos ativas, atzetas chi siant registrados.", - "recordingInProgressDescriptionFirstHalf": "Est in cursu sa registratzione e s'anàlisi de custu addòbiu cun IA", - "recordingInProgressDescriptionSecondHalf": ". S'àudio e su vìdeu tuos sunt disativados. Si ddos ativas, atzetas chi siant registrados.", + "recordingInProgressDescription": "Est in cursu sa registratzione e s'anàlisi de custu addòbiu cun IA. S'àudio e su vìdeu tuos sunt disativados. Si ddos ativas, atzetas chi siant registrados.", "recordingInProgressTitle": "Registratzione in cursu", "rejoinNow": "Torra a intrare", "remoteControlAllowedMessage": "{{user}} at atzetadu sa rechesta tua de controllu remotu.", @@ -693,8 +691,6 @@ "googlePrivacyPolicy": "Polìtica de riservadesa de Google", "inProgress": "Registratzione o trasmissione in direta in cursu", "invalidStreamKey": "Sa crae pro is trasmissiones in direta podet èssere iscurreta.", - "limitNotificationDescriptionNative": "Sa trasmissione in direta tua at a èssere limitada a {{limit}} minutos. Pro una trasmissione sena lìmites, imprea {{app}}.", - "limitNotificationDescriptionWeb": "A càusa de s'arta dimanda, sa trasmissione in direta tua at a èssere limitada a {{limit}} minutos. Pro una trasmissione sena lìmites, imprea {{app}}.", "off": "Trasmissione in direta firmada", "offBy": "{{name}} at firmadu sa trasmissione in direta", "on": "Trasmissione in direta aviada", @@ -1111,8 +1107,6 @@ "highlightMomentSuccess": "Momentu in evidèntzia", "highlightMomentSucessDescription": "Su momentu chi as postu in evidèntzia at a èssere agiuntu a su resumu de sa riunione.", "inProgress": "Registratzione o trasmissione in direta in cursu", - "limitNotificationDescriptionNative": "A càusa de s'arta dimanda, sa registratzione tua at a èssere limitada a {{limit}} minutos. Pro una registratzione sena lìmites, imprea <3>{{app}}.", - "limitNotificationDescriptionWeb": "A càusa de s'arta dimanda, sa registratzione tua at a èssere limitada a {{limit}} minutos. Pro registrare sena lìmites, imprea {{app}}.", "linkGenerated": "Amus generadu unu ligòngiu a sa registratzione tua.", "localRecordingNoNotificationWarning": "Sa registratzione no at a èssere annuntziada a is partetzipantes. Si dd'as a dèpere fàghere iscire tue.", "localRecordingNoVideo": "Su vìdeu no s'est registrende.", diff --git a/lang/main-sk.json b/lang/main-sk.json index 6e9b306a939d..d5d5cce9a424 100644 --- a/lang/main-sk.json +++ b/lang/main-sk.json @@ -418,8 +418,6 @@ "getStreamKeyManually": "Nepodarilo sa získať žiadne živé vysielania. Skúste získať kľúč pre živé vysielanie z YouTube.", "googlePrivacyPolicy": "Pravidlá ochrany súkromia Google", "invalidStreamKey": "Kľúč pre živé vysielanie je nesprávny.", - "limitNotificationDescriptionNative": "Živé vysielanie je obmedzené na {{limit}} minút. Pre neobmedzené vysielanie skúste {{app}}.", - "limitNotificationDescriptionWeb": "Živé vysielanie je obmedzené na {{limit}} minút. Pre neobmedzené vysielanie skúste {{app}}.", "off": "Živé vysielanie ukončené", "offBy": "{{name}} ukončil živé vysielanie", "on": "Živé vysielanie", @@ -620,8 +618,6 @@ "expandedPending": "Začína sa nahrávanie…", "failedToStart": "Nepodarilo sa začať nahrávanie", "fileSharingdescription": "Nahrávku zdielať s účastníkmi stretnutia", - "limitNotificationDescriptionNative": "Nahrávanie je obmedzené na {{limit}} minút. Pre neobmedzené nahrávanie skúste <3>{{app}}.", - "limitNotificationDescriptionWeb": "Nahrávanie je obmedzené na {{limit}} minút. Pre neobmedzené nahrávanie skúste {{app}}.", "live": "LIVE", "loggedIn": "Prihlásený ako {{userName}}", "off": "Nahrávanie zastavené", diff --git a/lang/main-sl.json b/lang/main-sl.json index b795d17f3724..f04f7565d3fb 100644 --- a/lang/main-sl.json +++ b/lang/main-sl.json @@ -480,8 +480,6 @@ "getStreamKeyManually": "Ni bilo mogoče najti prenosov v živo. Poskusite pridobiti ključ za prenos v živo iz YouTuba.", "googlePrivacyPolicy": "Politika zasebnosti Google", "invalidStreamKey": "Ključ prenosa v živo je morda napačen.", - "limitNotificationDescriptionNative": "Vaš prenos v živo bo omejen na {{limit}} min. Za neomejen prenos preizkusite {{app}}.", - "limitNotificationDescriptionWeb": "Zaradi velikega povpraševanja bo vaš prenos omejen na {{limit}} min. Za neomejen prenos preizkusite {{app}}.", "off": "Prenos v živo zaustavljen", "offBy": "Uporabnik {{name}} je prekinil prenos v živo", "on": "Prenos v živo", @@ -778,8 +776,6 @@ "expandedPending": "Snemanje se začenja…", "failedToStart": "Snemanja ni bilo mogoče začeti", "fileSharingdescription": "Delite snemanje z udeleženci srečanja", - "limitNotificationDescriptionNative": "Zaradi velikega povpraševanja bo snemanje omejeno na {{limit}} min. Za neomejeno snemanje preizkusite <3>{{app}}.", - "limitNotificationDescriptionWeb": "Zaradi velikega povpraševanja bo snemanje omejeno na {limit}} min. Za neomejeno snemanje preizkusite {{app}}.", "linkGenerated": "Ustvarili smo povezava do posnetka.", "live": "V ŽIVO", "loggedIn": "Vpisan kot {{userName}}", diff --git a/lang/main-sq.json b/lang/main-sq.json index f239d27a3e67..5dbb3ab5b7bf 100644 --- a/lang/main-sq.json +++ b/lang/main-sq.json @@ -73,7 +73,7 @@ "hideParticipantList": "Fshihe listën e pjesëmarrësve", "mainRoom": "Dhoma kryesore", "notifications": { - "joined": "Po hyhet te dhomë aneks konsultimesh \"{{name}}\"", + "joined": "Po hyhet te dhomë aneks konsultimesh “{{name}}”", "joinedMainRoom": "Po hyhet te dhoma kryesore", "joinedTitle": "Dhoma Aneks Konsultimesh" }, @@ -109,9 +109,15 @@ } }, "chat": { - "enter": "Hyni në fjalosje", + "disabled": "Dërgimi i mesazheve të fjalosjes është çaktivizuar.", + "enter": "Hyni në dhomë", "error": "Gabim: mesazhi juaj s’u dërgua. Arsye: {{error}}", - "fieldPlaceHolder": "Shtypni këtu mesazhin tuaj", + "everyone": "Gjithkush", + "fieldPlaceHolder": "Aa", + "fileAccessibleTitle": "{{user}} ngarkoi një kartelë", + "fileAccessibleTitleMe": "me ngarkoi një kartelë", + "fileDeleted": "U fshi një kartelë", + "guestsChatIndicator": "(guest)", "lobbyChatMessageTo": "Mesazh fjalosjeje në holl për {{recipient}}", "message": "Mesazh", "messageAccessibleTitle": "{{user}} thotë:", @@ -120,9 +126,20 @@ "messagebox": "Shtypni një mesazh", "newMessages": "Mesazhe të rinj", "nickname": { + "featureChat": "fjalosje", + "featureClosedCaptions": "titra të mbyllur", + "featureFileSharing": "dhënie kartelash", + "featurePolls": "pyetësorë", "popover": "Zgjidhni një nofkë", "title": "Që të përdorni fjalosjen, jepni një nofkë", - "titleWithPolls": "Që të përdorni fjalosjen dhe pyetësorë, jepni një nofkë" + "titleWith1Features": "Që të përdorni {{feature1}}, jepni një nofkë", + "titleWith2Features": "Që të përdorni {{feature1}} dhe {{feature2}}, jepni një nofkë", + "titleWith3Features": "Që të përdorni {{feature1}}, {{feature2}} dhe {{feature3}}, jepni një nofkë", + "titleWith4Features": "Që të përdorni {{feature1}}, {{feature2}}, {{feature3}} dhe {{feature4}}, jepni një nofkë", + "titleWithCC": "Që të përdorni fjalosje dhe titra të mbyllur, jepni një nofkë", + "titleWithPolls": "Që të përdorni fjalosjen dhe pyetësorë, jepni një nofkë", + "titleWithPollsAndCC": "Që të përdorni fjalosje, pyetësorë dhe titra të mbyllur, jepni një nofkë", + "titleWithPollsAndCCAndFileSharing": "Që të përdorni fjalosje, pyetësorë, titra të mbyllur dhe kartela, jepni një nofkë" }, "noMessagesMessage": "Te takimi s’ka ende mesazhe. Nisni një bisedë këtu!", "privateNotice": "Mesazh privat për {{recipient}}", @@ -131,18 +148,27 @@ "systemDisplayName": "Sistem", "tabs": { "chat": "Fjalosje", + "closedCaptions": "CC", + "fileSharing": "Kartela", "polls": "Pyetësorë" }, "title": "Fjalosje", - "titleWithPolls": "Fjalosje dhe Pyetësorë", + "titleWithCC": "CC", + "titleWithFeatures": "Bisedoni dhe", + "titleWithFileSharing": "Kartela", + "titleWithPolls": "Pyetësorë", "you": "ju" }, "chromeExtensionBanner": { "buttonText": "Instaloni Zgjerimin për Chrome", - "buttonTextEdge": "Instaloni Zgjerimin Edge", + "buttonTextEdge": "Instaloni Zgjerimin për Edge", "close": "Mbylle", "dontShowAgain": "Mos ma shfaq sërish këtë", - "installExtensionText": "Instaloni zgjerimin për integrim të Google Calendar-it dhe Office 365-s" + "installExtensionText": "Instaloni zgjerimin për integrim me Google Calendar dhe Office 365" + }, + "closedCaptionsTab": { + "emptyState": "Lënda e titrave të mbyllur do të jetë e përdorshme sapo një moderator t’i fillojë ato", + "startClosedCaptionsButton": "Nis titra të mbyllur" }, "connectingOverlay": { "joiningRoom": "Po ju lidhim me takimin tuaj…" @@ -201,6 +227,9 @@ "video_ssrc": "Video SSRC:", "yes": "po" }, + "customPanel": { + "close": "Mbylle" + }, "dateUtils": { "earlier": "Më herët", "today": "Sot", @@ -223,7 +252,7 @@ "noDesktopApp": "S’e keni aplikacionin?", "noMobileApp": "S’e keni aplikacionin?", "or": "OR", - "termsAndConditions": "Duke vazhduar, pajtoheni me terms & conditions. tona", + "termsAndConditions": "Duke vazhduar, pajtoheni me terma & kushte.", "title": "Po niset takimi juaj në {{app}}…", "titleNew": "Po niset takimi juaj…", "tryAgainButton": "Riprovoni në desktop", @@ -263,7 +292,8 @@ "Remove": "Hiqe", "Share": "Ndaje", "Submit": "Parashtroje", - "WaitForHostMsg": "Konferenca s’ka nisur, ngaqë s’ka mbërritur ende ndonjë moderator. Nëse dëshironi të bëheni një moderator, ju lutemi, bëni hyrjen. Përndryshe, ju lutemi, pritni.", + "Understand": "E kuptoj, mbamëni të heshtuar për tani", + "UnderstandAndUnmute": "E kuptoj, ju lutem, hiqmani heshtimin", "WaitForHostNoAuthMsg": "Konferenca s’ka nisur, ngaqë s’ka mbërritur ende ndonjë moderator. Përndryshe, ju lutemi, pritni.", "WaitingForHostButton": "Prit për moderator", "WaitingForHostTitle": "Po pritet për një moderator…", @@ -285,6 +315,12 @@ "alreadySharedVideoTitle": "Lejohet vetëm një ndarje videoje me të tjerët në herë", "applicationWindow": "Dritare aplikacioni", "authenticationRequired": "Lypset mirëfilltësim", + "cameraCaptureDialog": { + "description": "Bëni dhe dërgoni një foto duke përdorur kamerën e celularit tuaj", + "ok": "Hape kamerën", + "reject": "Jo tani", + "title": "Bëni një foto" + }, "cameraConstraintFailedError": "Kamera juaj s’plotëson disa nga kufizimet e domosdoshme.", "cameraNotFoundError": "S’u gjet kamera.", "cameraNotSendingData": "S’qemë në gjendje të përdornim kamerën tuaj. Ju lutemi, kontrolloni se mos pajisjen po e përdor një tjetër aplikacion, përzgjidhni pajisje tjetër që nga menuja e rregullimeve, ose provoni të ringarkoni aplikacionin.", @@ -299,6 +335,7 @@ "conferenceReloadMsg": "Po provojmë ta ndreqim këtë gjë. Rilidhje pas {{seconds}} sekondash…", "conferenceReloadTitle": "Mjerisht, diç shkoi ters.", "confirm": "Ripohojeni", + "confirmBack": "Mbrapsht", "confirmNo": "Jo", "confirmYes": "Po", "connectError": "Hëm! Diç shkoi ters dhe s’mundëm të lidhemi dot me konferencën.", @@ -308,7 +345,7 @@ "copied": "U kopjua", "copy": "Kopjoje", "demoteParticipantDialog": "Jeni i sigurt se doni ta kaloni këtë pjesëmarrës si vizitor?", - "demoteParticipantTitle": "Kaloje si vizitor", + "demoteParticipantTitle": "Kaloje si parës", "dismiss": "Hidhe tej", "displayNameRequired": "Njatjeta! Cili është emri juaj?", "done": "U bë", @@ -334,16 +371,20 @@ "kickParticipantButton": "Përzëre", "kickParticipantDialog": "Jeni i sigurt se doni të përzihet ky pjesëmarrës?", "kickParticipantTitle": "Të përzihet ky pjesëmarrës?", + "kickSystemTitle": "Ooh! U përzutë nga takimi", "kickTitle": "Ooh! {{participantDisplayName}} ju përzuri nga takimi", + "learnMore": "Mësoni më tepër", "linkMeeting": "Lidheni takimin", "linkMeetingTitle": "Lidheni takimin me Salesforce", "liveStreaming": "Transmetim i Drejtpërdrejtë", "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Jo e mundshme, kur është aktiv regjistrimi", "localUserControls": "Kontrolle vendore përdoruesi", "lockMessage": "S’u arrit të kyçej konferenca.", - "lockRoom": "Shtoni takim $t(lockRoomPasswordUppercase)", + "lockRoom": "Shtoni takim $t(lockRoomPassword)", "lockTitle": "Kyçja dështoi", "login": "Hyrje", + "loginFailed": "Hyrja dështoi.", + "loginOnResume": "Sesioni juaj me mirëfilltësim ka skaduar. Lypset të bëni sërish hyrjen, që të vazhdoni takimin.", "loginQuestion": "Jeni i sigurt se doni të hyhet dhe të braktiset konferenca?", "logoutQuestion": "Jeni i sigurt se doni të dilet dhe të braktiset konferenca?", "logoutTitle": "Dalje", @@ -356,23 +397,35 @@ "micPermissionDeniedError": "S’keni akorduar leje për t’u përdorur mikrofoni juaj. Mundeni prapëseprapë të merrni pjesë te konferenca, por të tjerët s’do t’ju dëgjojnë. Përdorni butonin e kamerës, te shtylla e adresave, për ta ndrequr këtë gjë.", "micTimeoutError": "S’u nis dot burim audio. Ndodhi mbarim kohe!", "micUnknownError": "S’përdoret dot mikrofoni, për një arsye të panjohur.", - "moderationAudioLabel": "Lejoji pjesëmarrësit të heqin heshtimin e vetes", - "moderationVideoLabel": "Lejoji pjesëmarrësit të nisin videon e tyre", + "moderationAudioLabel": "Lejoji jo-moderatorët të heqin heshtimin e vetes", + "moderationDesktopLabel": "Lejoji jo-moderatorët të ndajnë me të tjerët ekranin e tyre", + "moderationVideoLabel": "Lejoji jo-moderatorët të nisin videon e tyre", "muteEveryoneDialog": "Pjesëmarrësit mund të heqin kurdo heshtimin e veten.", "muteEveryoneDialogModerationOn": "Pjesëmarrësit mund të dërgojnë kurdo kërkesë për të folur.", "muteEveryoneElseDialog": "Po i heshtuat, s’do të jeni në gjendje t’u hiqni heshtimin, por ata munden të heqin kurdo heshtimin për veten.", "muteEveryoneElseTitle": "Të heshtohet gjithkush, hiq {{whom}}?", + "muteEveryoneElsesDesktopDialog": "Pasi ndarja me të tjerë të jetë ndalur, s’do të jeni në gjendje ta rinisni, por ata mund ta bëjnë në çfarëdo kohe.", + "muteEveryoneElsesDesktopTitle": "Të ndalet për gjithkënd ndarja e ekranit, hiq {{whom}}?", "muteEveryoneElsesVideoDialog": "Pasi të jetë çaktivizuar kamera, s’do të jeni në gjendje ta riaktivizoni, por ata munden ta riaktivizojnë kurdo.", "muteEveryoneElsesVideoTitle": "Të ndalet videoja e gjithkujt, hiq {{whom}}?", "muteEveryoneSelf": "ju", "muteEveryoneStartMuted": "Tani e tutje, gjithkush fillon i heshtuar", "muteEveryoneTitle": "Të heshtohet gjithkush?", + "muteEveryonesDesktopDialog": "Pjesëmarrësit mund të ndajnë me të tjerët ekranin e tyre kurdo.", + "muteEveryonesDesktopDialogModerationOn": "Pjesëmarrësit mund të dërgojnë kurdo një kërkesë për ndarjen e ekranit të tyre.", + "muteEveryonesDesktopTitle": "Të ndalet ndarja e ekranit për gjithkënd?", "muteEveryonesVideoDialog": "Pjesëmarrësit mund të aktivizojnë videon e tyre kurdo.", - "muteEveryonesVideoDialogModerationOn": "Pjesëmarrësit mund të dërgojnë kurdo kërkesë për aktivizimin e videos së tyre.", + "muteEveryonesVideoDialogModerationOn": "Pjesëmarrësit mund të dërgojnë kurdo një kërkesë për të aktivizuar videon e tyre.", "muteEveryonesVideoDialogOk": "Çaktivizoje", "muteEveryonesVideoTitle": "Të ndalet videoja e gjithkujt?", "muteParticipantBody": "S’do jeni në gjendje të hiqni heshtimin për ta, por ata munden kurdo ta heqin për veten.", "muteParticipantButton": "Heshtoje", + "muteParticipantsDesktopBody": "S’do të jeni në gjendje të nisni ndarjen e ekranit të tyre me të tjerë, por ata munden kurdo t ta bëjnë.", + "muteParticipantsDesktopBodyModerationOn": "S’do të jeni në gjendje të nisni tregimin e ekrani t të tyre dhe as ata s’do të jenë në gjendje.", + "muteParticipantsDesktopButton": "Ndale tregimin e ekranit", + "muteParticipantsDesktopDialog": "Jeni i sigurt se doni të çaktivizoni tregimin e ekranit të këtij pjesëmarrësi? S’do të jeni në gjendje ta rinisni, por ai mund të bëjë kurdo.", + "muteParticipantsDesktopDialogModerationOn": "Jeni i sigurt se doni të çaktivizoni tregimin e ekranit të këtij pjesëmarrësi? S’do të jeni në gjendje ta rinisni dhe as ata s’do të jenë në gjendje.", + "muteParticipantsDesktopTitle": "Të çaktivizohet tregim ekrani i këtij pjesëmarrësit?", "muteParticipantsVideoBody": "S’do të jeni në gjendje të riaktivizoni kamerën e tyre, por ata munden kurdo ta riaktivizojnë për veten.", "muteParticipantsVideoBodyModerationOn": "S’do të jeni në gjendje të riaktivizoni kamerën e tyre dhe as ata s’do të munden.", "muteParticipantsVideoButton": "Ndale videon", @@ -391,7 +444,9 @@ "readMore": "më tepër", "recentlyUsedObjects": "Së fundi përdorët objekte", "recording": "Regjistrim", - "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Jo i mundshëm kur ka aktiv një transmetim të drejtpërdrejtë", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Jo i mundshëm, kur ka aktiv një transmetim të drejtpërdrejtë", + "recordingInProgressDescription": "Ky takim po regjistrohet dhe analizohet nga IA. Audioja dhe videoja juaj janë heshtuar. Nëse zgjidhni të hiqet heshtimi, pranimi juaj po regjistrohet.", + "recordingInProgressTitle": "Regjistrim në kryerje e sipër", "rejoinNow": "Rihyni tani", "remoteControlAllowedMessage": "{{user}} pranoi kërkesën tuaj për kontroll së largëti!", "remoteControlDeniedMessage": "{{user}} hodhi poshtë kërkesën tuaj për kontroll së largëti!", @@ -428,7 +483,7 @@ "sessTerminatedReason": "Takimi u përfundua", "sessionRestarted": "Thirrja rinisi për shkak të një problemi lidhjeje.", "shareAudio": "Vazhdoni", - "shareAudioAltText": "që të ndani me të tjerë lëndën e dëshiruar, kaloni te \"Skedë Shfletuesi\", përzgjidhni lëndën, aktivizoni shenjën për \"ndani audio me të tjerë\" dhe mandej klikoni butonin \"ndaje me të tjerë\"", + "shareAudioAltText": "që të ndani me të tjerë lëndën e dëshiruar, kaloni te “Skedë Shfletuesi”, përzgjidhni lëndën, aktivizoni shenjën për “ndani audio me të tjerë” dhe mandej klikoni butonin “ndaje me të tjerë”", "shareAudioTitle": "Si të ndahet audio me të tjerë", "shareAudioWarningD1": "lypset të ndalni tregim ekrani, para se të ndani audion tuaj me të tjerë.", "shareAudioWarningD2": "lypset të rinisni tregimin e ekranit tuaj dhe t’i vini shenjë mundësisë “ndani audio me të tjerë”.", @@ -481,6 +536,7 @@ "tokenAuthFailedWithReasons": "Na ndjeni, nuk keni leje të merrni pjesë në këtë thirrje. Arsye e mundshme: {{reason}}", "tokenAuthUnsupported": "Nuk mbulohet URL token-i.", "transcribing": "Transkriptim", + "unauthenticatedAccessDisabled": "Kjo thirrje lyp mirëfilltësim. Ju lutemi, bëni hyrjen, që të mund të vazhdoni.", "unlockRoom": "Hiq $t(lockRoomPassword) takimi", "user": "Përdorues", "userIdentifier": "Identifikues përdoruesi", @@ -493,10 +549,10 @@ "viewUpgradeOptions": "Shihni mundësi përmirësimi", "viewUpgradeOptionsContent": "Që të përfitoni përdorim të pakufizuar veçorish me pagesë, të tilla si regjistrimi, transkriptime, RTMP Streaming & etj, duhet të përmirësoni planin tuaj.", "viewUpgradeOptionsTitle": "Zbuluat një veçori me pagesë!", - "whiteboardLimitContent": "Na ndjeni, është mbërritur te kufiri i tabelave të njëkohshme.", + "whiteboardLimitContent": "Na ndjeni, është mbërritur në kufi përdorues të njëkohshëm tabele.", "whiteboardLimitReference": "Për më tepër hollësi, ju lutemi, vizitoni", "whiteboardLimitReferenceUrl": "sajtin tonë", - "whiteboardLimitTitle": "Kufizim përdorimi tabele", + "whiteboardLimitTitle": "Përdorim tabele i kufizuar", "yourEntireScreen": "Krejt ekranin tuaj" }, "documentSharing": { @@ -521,6 +577,26 @@ "veryBad": "Shumë i Dobët", "veryGood": "Shumë i Mirë" }, + "fileSharing": { + "downloadFailedDescription": "Ju lutemi, riprovoni.", + "downloadFailedTitle": "Shkarkimi dështoi", + "downloadFile": "Shkarkoje", + "downloadStarted": "Filloi shkarkimi i kartelës", + "dragAndDrop": "Tërhiqni dhe lini kartela këtu, ose kudo në ekran", + "fileAlreadyUploaded": "Kartela është ngarkuar tashmë te ky takim.", + "fileRemovedByOther": "Kartela juaj '{{ fileName }}' u hoq", + "fileTooLargeDescription": "Ju lutemi, siguroni që kartela të mos tejkalojë {{ maxFileSize }}.", + "fileTooLargeTitle": "Kartela e përzgjedhur është shumë e madhe", + "fileUploadProgress": "Ecuri ngarkimi kartele", + "fileUploadedSuccessfully": "Kartela u ngarkua me sukses", + "newFileNotification": "{{ participantName }} ndau '{{ fileName }}' me të tjerë", + "removeFile": "Hiqe", + "removeFileSuccess": "Kartela u hoq me sukses", + "uploadDisabled": "S’lejoheni të ngarkoni kartela. Kërkojini një moderatori të drejta lejimi të këtij veprimi.", + "uploadFailedDescription": "Ju lutemi, riprovoni.", + "uploadFailedTitle": "Ngarkimi dështoi", + "uploadFile": "Ndani kartelë" + }, "filmstrip": { "accessibilityLabel": { "heading": "Miniatura videosh" @@ -627,15 +703,13 @@ "errorAPI": "Ndodhi një gabim teksa hyhej te transmetimet tuaja YouTube. Ju lutemi, provoni të ribëni hyrjen.", "errorLiveStreamNotEnabled": "Transmetimi i Drejtpërdrejtë s’është i aktivizuar për {{email}}. Ju lutemi, aktivizoni transmetim të drejtpërdrejtë, ose hyni në një llogari me transmetim të drejtpërdrejtë të aktivizuar.", "expandedOff": "Transmetimi i drejtpërdrejtë u ndal", - "expandedOn": "Takimi po transmetohet aktualisht në YouTube.", + "expandedOn": "Takimi aktualisht po transmetohet drejtpërdrejt", "expandedPending": "Po fillohet transmetim i drejtpërdrejtë…", "failedToStart": "S’u arrit të fillohej Transmetim i Drejtpërdrejtë", "getStreamKeyManually": "S’qemë në gjendje të sillnim ndonjë transmetim të drejtpërdrejtë. Provoni të merrni kyçin tuaj për transmetim të drejtpërdrejtë nga YouTube-i.", "googlePrivacyPolicy": "Rregulla Privatësie Google", "inProgress": "Regjistrim ose transmetim i drejtpërdrejtë në punë e sipër", "invalidStreamKey": "Kyçi për transmetim të drejtpërdrejtë mund të jetë i pasaktë.", - "limitNotificationDescriptionNative": "Transmetimi juaj do të kufizohet në {{limit}} min. Për transmetim të pakufizuar, provoni {{app}}.", - "limitNotificationDescriptionWeb": "Për shkak kërkesash të shumta, transmetimi juaj do të kufizohet në {{limit}} min. Për transmetim të pakufizuar, provoni {{app}}.", "off": "Transmetimi i Drejtpërdrejtë u ndal", "offBy": "{{name}} ndali transmetimin e drejtpërdrejtë", "on": "Filloi Transmetimi i Drejtpërdrejtë", @@ -689,7 +763,8 @@ "notificationTitle": "Holl", "passwordJoinButton": "Hyni", "title": "Holl", - "toggleLabel": "Aktivizoni hollin" + "toggleLabel": "Aktivizoni hollin", + "waitForModerator": "Konferenca s’ka nisur ende, ngaqë s’ka mbërritur ndonjë moderator. Nëse do të donit të bëheni një moderator, ju lutemi, bëni hyrjen në llogari. Përndryshe, ju lutemi, prisni." }, "localRecording": { "clientState": { @@ -732,21 +807,26 @@ "me": "unë", "notify": { "OldElectronAPPTitle": "Cenueshmëri sigurie!", - "allowAction": "Lejoje", + "allowAll": "Lejo Gjithçka", + "allowAudio": "Lejo Audio", + "allowDesktop": "Lejo tregim ekrani", + "allowVideo": "Lejo Video", "allowedUnmute": "Mund të hiqni heshtimin e mikrofonit tuaj, të nisni kamerën tuaj ose të tregoni ekranin tuaj.", "audioUnmuteBlockedDescription": "Veprimi i heqjes së heshtimit të mikrofonit është bllokuar përkohësisht për shkak kufizimesh të sistemit.", "audioUnmuteBlockedTitle": "Heqje heshtimi mikrofoni e bllokuar!", "chatMessages": "Mesazhe fjalosjeje", "connectedOneMember": "{{name}} nisi takimin", - "connectedThreePlusMembers": "{{name}} dhe mjaft të tjerë tjerë hynë në takim", + "connectedThreePlusMembers": "{{name}} dhe mjaft të tjerë hynë në takim", "connectedTwoMembers": "{{first}} dhe {{second}} tjetër hynë në takim", "connectionFailed": "Lidhja dështoi. Ju lutemi, riprovoni më vonë!", "dataChannelClosed": "Cilësia e videos mund të jetë dëmtuar", "dataChannelClosedDescription": "Kanali urë u shkëput, kështu që cilësia e videos është kufizuar te vlera më e ulët.", "dataChannelClosedDescriptionWithAudio": "Kanali urë është jashtë funksionimi, prandaj mund të ndodhin shkëputje te audioja dhe videoja.", "dataChannelClosedWithAudio": "Cilësia e audios dhe videos mund të jetë dëmtuar", + "desktopMutedRemotelyTitle": "Tregimi i ekranit tuaj është ndalur nga {{participantDisplayName}}", "disabledIframe": "Trupëzimi është menduar vetëm për qëllime demonstrimi, ndaj kjo thirrje do të ndërpritet pas {{timeout}} minutash.", - "disabledIframeSecondary": "Trupëzimi i {{domain}} është menduar vetëm për qëllime demonstrimi, ndaj kjo thirrje do të ndërpritet pas {{timeout}} minutash. Ju lutemi, për trupëzime të njëmendta përdorni Jitsi as a Service!", + "disabledIframeSecondaryNative": "Trupëzimi i {{domain}} është menduar vetëm për qëllime demonstrimi, ndaj kjo thirrje do të ndërpritet pas {{timeout}} minutash.", + "disabledIframeSecondaryWeb": "Trupëzimi i {{domain}} është menduar vetëm për qëllime demonstrimi, ndaj kjo thirrje do të ndërpritet pas {{timeout}} minutash. Ju lutemi, për trupëzime të njëmendta përdorni Jitsi si një Shërbim!", "disconnected": "u shkëput", "displayNotifications": "Shfaq njoftime për", "dontRemindMe": "Mos ma kujto", @@ -754,7 +834,7 @@ "focusFail": "{{component}} jo i passhëm - riprovoni pas {{ms}} sekondash", "gifsMenu": "GIPHY", "groupTitle": "Njoftime", - "hostAskedUnmute": "Moderatori do të donte të flisnit", + "hostAskedUnmute": "Moderatori do të donte të merrnit pjesë.", "invalidTenant": "Qiramarrës i pavlefshëm", "invalidTenantHyphenDescription": "Qiramarrësi që po përdorni është i pavlefshëm (fillon, ose përfundon me '-').", "invalidTenantLengthDescription": "Qiramarrësi që po përdorni është shumë i gjatë.", @@ -789,30 +869,31 @@ "moderator": "Tani jeni moderator", "muted": "E keni filluar bisedën të heshtur.", "mutedRemotelyDescription": "Mundeni përherë të hiqni heshtimin, kur të jeni gati për të folur. Ribëni heshtimin, kur të mbaroni, për të mbajtur zhurmat jashtë takimit.", - "mutedRemotelyTitle": "Jeni heshtuar nga {{moderator}}", + "mutedRemotelyTitle": "Jeni heshtuar nga {{participantDisplayName}}", "mutedTitle": "U heshtuat!", "newDeviceAction": "Përdore", "newDeviceAudioTitle": "U pikas pajisje audio e re", "newDeviceCameraTitle": "U pikas kamerë e re", "nextToSpeak": "Jeni pasuesi në radhë për folje", - "noiseSuppressionDesktopAudioDescription": "Mbytja e zhurmave s’mund të aktivizohet teksa ndahet me të tjerët audioja e desktopit, ju lutemi, çaktivizojeni dhe riprovoni.", - "noiseSuppressionFailedTitle": "S’u arrit të nisej mbytja e zhurmave", - "noiseSuppressionStereoDescription": "Aktualisht nuk mbulohet mbytje zhurmash audioje stereo.", + "noiseSuppressionDesktopAudioDescription": "Mbytja e zhurmave ekstra s’mund të aktivizohet teksa ndahet me të tjerët audioja e desktopit, ju lutemi, çaktivizojeni dhe riprovoni.", + "noiseSuppressionFailedTitle": "S’u arrit të nisej mbytja e zhurmave ekstra", + "noiseSuppressionStereoDescription": "Aktualisht nuk mbulohet mbytje zhurmash ekstra me audio stereo.", "oldElectronClientDescription1": "Duket se përdorni një version të vjetër të klientit Jitsi Meet, i cili ka cenueshmëri të ditura sigurie. Ju lutemi, siguroni përditësimin me ", "oldElectronClientDescription2": "montimin tonë më të ri", "oldElectronClientDescription3": " që tani!", + "openChat": "Hapni fjalosjen", "participantWantsToJoin": "Dëshiron të hyjë në takim", "participantsWantToJoin": "Dëshirojnë të hyjnë në takim", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) u hoq nga një tjetër pjesëmarrës", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) u caktua nga një tjetër pjesëmarrës", "raiseHandAction": "Ngrini dorën", - "raisedHand": "Do të donte të fliste.", + "raisedHand": "Do të donte të merrte pjesë.", "raisedHands": "{{participantName}} dhe {{raisedHands}} persona të tjerë", "reactionSounds": "Çaktivizo tingujt", "reactionSoundsForAll": "Çaktivizoji tingujt për të tërë", "screenShareNoAudio": "Kutizës për ndarje audioje me të tjerë s’i është vënë shenjë te skena e përzgjedhjes së dritares.", "screenShareNoAudioTitle": "S’u nda dot me të tjerë audioja e sistemit!", - "screenSharingAudioOnlyDescription": "Ju lutemi, kini parasysh se duke dhënë ekranin tuaj, ndikoni te mënyra “Punimi më i mirë” dhe do të përdorni më tepër gjerësi bande", + "screenSharingAudioOnlyDescription": "Ju lutemi, kini parasysh se duke dhënë ekranin tuaj, ndikoni te mënyra “Punimi më i mirë” dhe do të përdorni më tepër gjerësi bande.", "screenSharingAudioOnlyTitle": "Mënyra “”Punimi më i mirë", "selfViewTitle": "Mundeni përherë të hiqni fshehjen e pamjes së vetes, që nga rregullimet", "somebody": "Dikush", @@ -823,16 +904,18 @@ "suggestRecordingAction": "Niseni", "suggestRecordingDescription": "Do të donit të nisej një regjistrim?", "suggestRecordingTitle": "Regjistroje këtë takim", - "unmute": "Çheshtoje", + "unmute": "Çheshtoje Audion", + "unmuteScreen": "Fillo tregim ekrani", + "unmuteVideo": "Hiqe Heshtimin e Videos", "videoMutedRemotelyDescription": "Mundeni përherë ta rihapni.", - "videoMutedRemotelyTitle": "Videoja juaj u mbyll nga {{moderator}}", + "videoMutedRemotelyTitle": "Videoja juaj u mbyll nga {{participantDisplayName}}", "videoUnmuteBlockedDescription": "Heqja e heshtimit të kamerës dhe veprimi i tregimit të desktopit janë bllokuar përkohësisht për shkak kufizimesh të sistemit.", "videoUnmuteBlockedTitle": "Heqja e heshtimit të kamerës dhe tregimi i desktopit janë bllokuar!", "viewLobby": "Shihni hollin", "viewParticipants": "Shihni pjesëmarrësit", "viewVisitors": "Shihni vizitorët", "waitingParticipants": "{{waitingParticipants}} vetë", - "waitingVisitors": "Vizitorë që presin në radhë: {{waitingVisitors}}", + "waitingVisitors": "Parës që presin në radhë: {{waitingVisitors}}", "waitingVisitorsTitle": "Takimi s’ka filluar endeThe meeting is not live yet!", "whiteboardLimitDescription": "Ju lutemi, ruani ç’keni bërë, ngaqë së shpejti do të mbërrihet në kufi përdoruesi dhe tabela do të mbyllet.", "whiteboardLimitTitle": "Përdorim tabele" @@ -840,39 +923,47 @@ "participantsPane": { "actions": { "admit": "Pranoje", - "admitAll": "Pranoji të tërë", - "allow": "Lejoju pjesëmarrësve të:", - "allowVideo": "Çaktivizoni videon", - "askUnmute": "Kërkoni heqje heshtimi", - "audioModeration": "Heqin heshtim të vetes", - "blockEveryoneMicCamera": "Bllokoni mikrofonin dhe kamerën e gjithkujt", + "admitAll": "Admit all", + "allow": "Lejoju jo-moderatorëve:", + "allowDesktop": "Të lejojnë tregim ekranesh", + "allowVideo": "Të lejojnë video", + "askDesktop": "Të lejojnë tregim ekrani", + "askUnmute": "Të kërkojnë çheshtim", + "audioModeration": "Të heqin heshtim të vetes", + "blockEveryoneMicCamera": "Të bllokojnë mikrofonin dhe kamerën e kujtdo", "breakoutRooms": "Dhoma anekse konsultimesh", + "desktopModeration": "Të nisin tregim ekrani", "goLive": "Go live", - "invite": "Ftoni Dikë", - "lowerAllHands": "Uli krejt duart", - "lowerHand": "Uleni dorën", + "invite": "Të ftojnë dikë", + "lowerAllHands": "Të ulin krejt duart", + "lowerHand": "Të ulin dorën", "moreModerationActions": "Më tepër mundësi moderimi", "moreModerationControls": "Më tepër kontrolle moderimi", "moreParticipantOptions": "Më tepër mundësi pjesëmarrësi", - "mute": "Heshtoje", - "muteAll": "Heshtoji të tërë", - "muteEveryoneElse": "Heshto gjithkënd tjetër", - "reject": "Hidhe poshtë", - "stopEveryonesVideo": "Ndal videon e gjithkujt", - "stopVideo": "Ndale videon", - "unblockEveryoneMicCamera": "Zhblloko mikrofonin dhe kamerën e gjithkujt", - "videoModeration": "Nisin videon e vetes" + "mute": "Të heshtojnë", + "muteAll": "Të heshtojnë të tërë", + "muteEveryoneElse": "Të heshtojnë gjithkënd tjetër", + "reject": "Të hedhin poshtë", + "stopDesktop": "Të ndalin tregim ekrani", + "stopEveryonesDesktop": "Të ndalin tregim ekrani të kujtdo", + "stopEveryonesVideo": "Të ndalin videon e gjithkujt", + "stopVideo": "Të ndalin video", + "unblockEveryoneMicCamera": "Të zhbllokojnë mikrofonin dhe kamerën e gjithkujt", + "videoModeration": "Të nisin videon e tyre" }, "close": "Mbylle", "headings": { - "lobby": "Holli ({{count}})", - "participantsList": "Pjesëmarrës në takim ({{count}})", - "visitorInQueue": " (në pritje {{count}})", - "visitorRequests": " (requests {{count}})", - "visitors": "Vizitorë {{count}}", + "lobby": "Holl ({{count}})", + "participantsList": "Pjesëmarrës takimi ({{count}})", + "viewerRequests": "Kërkesa parësish {{count}}", + "visitorInQueue": " (në radhë {{count}})", + "visitorRequests": " (kërkesa {{count}})", + "visitors": "Parës {{count}}", + "visitorsList": "Parës ({{count}})", "waitingLobby": "Duke pritur në holl ({{count}})" }, "search": "Kërkoni te pjesëmarrësit", + "searchDescription": "Që të filtrohen pjesëmarrës, filloni të shtypni në tastierë", "title": "Pjesëmarrës" }, "passwordDigitsOnly": "Deri në {{number}} shifra", @@ -889,6 +980,9 @@ "by": "Nga {{ name }}", "closeButton": "Mbylle pyetësorin", "create": { + "accessibilityLabel": { + "send": "Dërgo pyetësor" + }, "addOption": "Shtoni mundësi", "answerPlaceholder": "Mundësia {{index}}", "cancel": "Anuloje", @@ -897,11 +991,10 @@ "pollQuestion": "Pyetje Pyetësori", "questionPlaceholder": "Bëni një pyetje", "removeOption": "Hiqe mundësinë", - "save": "Ruaje", - "send": "Dërgoje" + "save": "Ruaje" }, "errors": { - "notUniqueOption": "Opsionet duhet të jenë unike" + "notUniqueOption": "Mundësitë duhet të jenë unike" }, "notification": { "description": "Që të votoni, hapni skedën e pyetësorëve", @@ -909,7 +1002,7 @@ }, "results": { "changeVote": "Ndryshoni votën", - "empty": "Te takimi s’ka ende pyetësorë. Nisni një pyetësor këtu!", + "empty": "Te takimi s’ka ende pyetësorë.", "hideDetailedResults": "Fshihi hollësitë", "showDetailedResults": "Shfaqi hollësitë", "vote": "Votoni" @@ -938,11 +1031,11 @@ "audioHighQuality": "Presim që audioja juaj të jetë në cilësi të shkëlqyer.", "audioLowNoVideo": "Presim që audioja juaj të jetë në cilësi të ulët dhe s’do të ketë video.", "goodQuality": "Shkëlqyeshëm! Cilësia e medias tuaj do të jetë shumë e mirë.", - "noMediaConnectivity": "S’gjetëm dot rrugë për të vendosur lidhje media për këtë provë. Zakonisht kjo shkaktohet nga një firewall ose NAT.", + "noMediaConnectivity": "S’gjetëm dot rrugë për të vendosur lidhje media për këtë provë. Zakonisht kjo shkaktohet nga një “firewall”, ose NAT.", "noVideo": "Presim që cilësia e videos për ju të jetë për të vënë kujën.", "testFailed": "Prova e lidhjes hasi në probleme të papritura, por kjo mund të mos prekë funksionimin për ju.", "undetectable": "Nëse s’bëni dot ende thirrje në shfletues, rekomandojmë të siguroheni se altoparlantët, mikrofoni dhe kamera juaj janë ujdisur si duhet, se i keni akorduar shfletuesit tuaja të drejta të përdorë mikrofonin dhe kamerën tuaj, dhe se versioni i shfletuesit tuaj është i përditësuar. Nëse keni ende probleme me thirrje, duhet të lidheni me zhvilluesin e aplikacionit web.", - "veryPoorConnection": "Presim që cilësia e thirrjes te ju të jetë për të vënë kujën", + "veryPoorConnection": "Presim që cilësia e thirrjes te ju të jetë për të vënë kujën.", "videoFreezing": "Presim që videoja te ju të ngrijë, të bëhet e zezë dhe të shfaqet tërë piksela.", "videoHighQuality": "Presim që videoja te ju të ketë cilësi të mirë.", "videoLowQuality": "Presim që videoja te ju të ketë cilësi të ulët, për sa i takon shpejtësisë së kuadrove dhe qartësisë.", @@ -969,7 +1062,7 @@ "joinWithoutAudio": "Merrni pjesë pa audio", "keyboardShortcuts": "Aktivizo shkurtore tastiere", "linkCopied": "Lidhja u kopjua në të papastër", - "lookGood": "Gjithçka po punon si duhet", + "lookGood": "Pajisjet tuaja po punojnë si duhet", "or": "ose", "premeeting": "Para takimit", "proceedAnyway": "Vazhdo, sido qoftë", @@ -1011,7 +1104,7 @@ "type": { "account": "Llogari", "contact": "Kontakt", - "lead": "Lead", + "lead": "", "opportunity": "Mundësi", "owner": "Zotërues" } @@ -1026,7 +1119,7 @@ "error": "Regjistrimi dështoi. Ju lutemi, riprovoni.", "errorFetchingLink": "Gabim në sjellje lidhje regjistrimi.", "expandedOff": "Regjistrimi u ndal", - "expandedOn": "Takimi është aktualisht duke u regjistruar.", + "expandedOn": "Takimi është aktualisht duke u regjistruar", "expandedPending": "Po niset regjistrimi…", "failedToStart": "S’u arrit të niset regjistrimi", "fileSharingdescription": "Ndajeni regjistrimin me pjesëmarrësit në takim", @@ -1036,8 +1129,6 @@ "highlightMomentSuccess": "Çasti u nxor në pah", "highlightMomentSucessDescription": "Çasti i nxjerrë në pah nga ju do të shtohet te përmbledhja e takimit.", "inProgress": "Regjistrim ose transmetim drejtpërsëdrejti në ecuri e sipër", - "limitNotificationDescriptionNative": "Për shkak kërkesash të shumta, regjistrimi juaj do të kufizohet në {{limit}} min. Për regjistrime të pakufizuara provoni <3>{{app}}.", - "limitNotificationDescriptionWeb": "Për shkak kërkesash të shumta, regjistrimi juaj do të kufizohet në {{limit}} min. Për regjistrime të pakufizuara provoni {{app}}.", "linkGenerated": "Kemi prodhuar një lidhje për te regjistrimi juaj.", "localRecordingNoNotificationWarning": "Regjistrimi s’do t’u njoftohet pjesëmarrësve të tjerë. Do t’ju duhet t’i vini në dijeni se takimi po regjistrohet.", "localRecordingNoVideo": "Videoja s’po regjistrohet", @@ -1099,6 +1190,7 @@ "signedIn": "Aktualisht po shihen veprimtari kalendari për {{email}}. Klikoni mbi butonin Shkëputu më poshtë që të ndalni parjen e veprimtarive të kalendarit.", "title": "Kalendar" }, + "chatWithPermissions": "Çaktivizo fjalosje për jo-moderatorë", "desktopShareFramerate": "Shpejtësi kuadrosh për tregim desktopi", "desktopShareHighFpsWarning": "Një shpejtësi më e madhe për tregimin e ekranit mund të ketë ndikim në konsumin e gjerësisë së bandës. Që të hyjnë në fuqi rregullimet e reja, lypset të rinisni tregimin e ekranit.", "desktopShareWarning": "Që të hyjnë në fuqi rregullimet e reja, duhet të rinisni tregimin e ekranit.", @@ -1113,7 +1205,7 @@ "microphones": "Mikrofona", "moderator": "Moderator", "moderatorOptions": "Mundësi moderatori", - "more": "Të përgjitshme", + "more": "Të përgjithshme", "name": "Emër", "noDevice": "Asnjë", "notifications": "Njoftime", @@ -1128,6 +1220,7 @@ "selectMic": "Mikrofon", "selfView": "Parje e vetes", "shortcuts": "Shkurtore", + "showSubtitlesOnStage": "Shfaq titra në skenë", "speakers": "Altoparlantë", "startAudioMuted": "Gjithkush fillon i heshtuar", "startReactionsMuted": "Heshto tinguj reagimesh për këdo", @@ -1181,11 +1274,13 @@ "fearful": "I frikësuar", "happy": "I gëzuar", "hours": "{{count}}h", + "labelTooltip": "Numër pjesëmarrësish: {{count}}", "minutes": "{{count}}m", "name": "Emër", "neutral": "Asnjanës", "sad": "I trishtuar", "search": "Kërko", + "searchDescription": "Që të filtrohen pjesëmarrësh, filloni të shtypni", "searchHint": "Kërkoni për pjesëmarrës", "seconds": "{{count}}s", "speakerStats": "Statistika Folësi", @@ -1220,23 +1315,25 @@ "chat": "Hapni / Mbyllni fjalosje", "clap": "Duartrokitje", "closeChat": "Mbylle fjalosjen", + "closeCustomPanel": "Mbylle", "closeMoreActions": "Mbyll menunë Më Tepër Veprime", "closeParticipantsPane": "Mbyll kuadratin pjesëmarrës", + "closedCaptions": "Titra të mbyllur", "collapse": "Tkurre", "document": "Shfaq/Fshih dokument të ndarë", - "documentClose": "Mbyll dokument të ndarë", + "documentClose": "Mbylle dokumentin e ndarë", "documentOpen": "Hap dokument të ndarë", "download": "Shkarkoni aplikacionet tona", "embedMeeting": "Trupëzoni takimin", - "endConference": "Përfundoje takimin për të tërë", + "endConference": "Përfundoje takimin për gjithkënd", "enterFullScreen": "Shiheni sa krejt ekrani", - "enterTileView": "Kaloni nën mënyrën me kuadrate", - "exitFullScreen": "Dil nga mënyra “Sa krejt ekrani”", - "exitTileView": "Dil nga mënyra me kuadrate", + "enterTileView": "Kaloni në pamje me kuadrate", + "exitFullScreen": "Dilni nga mënyra “Sa krejt ekrani”", + "exitTileView": "Dilni nga pamje me kuadrate", "expand": "Zgjeroje", "feedback": "Lini përshtypje", - "fullScreen": "Kalo nën/Dil nga mënyra “Sa krejt ekrani”", - "giphy": "Shfaq/fshih menunë GIPHY", + "fullScreen": "Kaloni në/Dilni nga mënyra “Sa krejt ekrani”", + "giphy": "Shfaqni/Fshihni menunë GIPHY", "grantModerator": "Akordoji të Drejta Moderatori", "hangup": "Braktiseni takimin", "heading": "Panel", @@ -1246,7 +1343,7 @@ "kick": "Përzëre pjesëmarrësin", "laugh": "E qeshur", "leaveConference": "Dilni nga takimi", - "like": "Thumbs Up", + "like": "", "linkToSalesforce": "Lidhje për te Salesforce", "lobbyButton": "Aktivizo/Çaktivizoni mënyrën holl", "localRecording": "Shfaq/Fshih kontrolle regjistrimi vendor", @@ -1262,9 +1359,9 @@ "muteEveryoneElsesVideoStream": "Ndal videon e gjithkujt tjetër", "muteEveryonesVideoStream": "Ndal videon e gjithkujt", "muteGUMPending": "Po lidhet mikrofoni juaj", - "noiseSuppression": "Mbytje zhurmash", + "noiseSuppression": "Mbytje zhurmash ekstra", "openChat": "Hapni fjalosje", - "participants": "Hapni kuadrat pjesëmarrësish", + "participants": "Hapni kuadrat pjesëmarrësish. {{participantsCount}} pjesëmarrës", "pip": "Aktivizo/Çaktivizo mënyrën “Picture-in-Picture”", "privateMessage": "Dërgoni mesazh privat", "profile": "Përpunoni profilin tuaj", @@ -1300,68 +1397,87 @@ "videounmute": "Nis kamerën" }, "addPeople": "Shtoni persona te thirrja juaj", - "audioOnlyOff": "Çaktivizo mënyrën “Sasi e ulët të dhënash trafiku”", - "audioOnlyOn": "Aktivizo mënyrën “Sasi e ulët të dhënash trafiku”", + "advancedAudioSettings": { + "aec": { + "label": "Asgjësim jehone akustike" + }, + "agc": { + "label": "Kontroll i automatizuar gain-i" + }, + "ns": { + "label": "Mbytje zhurmash" + }, + "stereo": { + "label": "Stereo" + } + }, + "audioOnlyOff": "Aktivizo mënyrën gjerësi e ulët bande", + "audioOnlyOn": "Çaktivizo mënyrën gjerësi e ulët bande", "audioRoute": "Përzgjidhni pajisje zëri", - "audioSettings": "Rregullime për audion", - "authenticate": "Bëni mirëfilltësimin", - "boo": "Ya", - "callQuality": "Administroni cilësi video", - "chat": "Hap / Mbyll fjalosje", - "clap": "Duartrokitje", - "closeChat": "Mbyll fjalosjen", - "closeParticipantsPane": "Mbylle kuadratin e pjesëmarrësve", - "closeReactionsMenu": "Mbyll menu reagimesh", - "disableNoiseSuppression": "Çaktivizo mbytje zhurmash", + "audioSettings": "Rregullime audio", + "authenticate": "Bëni mirëfilltësimiin", + "boo": "Buuu", + "callQuality": "Administroni cilësi videosh", + "chat": "Hapni / Mbyllni fjalosjen", + "clap": "Duartrokitni", + "closeChat": "Mbylleni fjalosjen", + "closeCustomPanel": "Mbylle", + "closeParticipantsPane": "Mbyllni kuadrat pjesëmarrësish", + "closeReactionsMenu": "Mbyllni menu reagimesh", + "closedCaptions": "Titra të mbyllur", + "copilot": "Copilot", + "disableNoiseSuppression": "Çaktivizoni asgjësim ekstra zhurmash", "disableReactionSounds": "Mund të çaktivizoni tinguj reagimesh për këtë takim", - "documentClose": "Mbylle dokumentin e ndarë", - "documentOpen": "Hape dokumentin e ndarë", - "download": "Shkarkoni aplikacione tonat", - "e2ee": "Fshehtëzim Skaj-Më-Skaj", + "documentClose": "Mbyll dokument të ndarë", + "documentOpen": "Hap dokument të ndarë", + "download": "Shkarkoni aplikacionet tona", + "e2ee": "Fshehtëzim Skaj-më-Skaj", "embedMeeting": "Trupëzoni takim", - "enableNoiseSuppression": "Aktivizoni mbytje zhurmash", + "enableNoiseSuppression": "Aktivizoni asgjësim ekstra zhurmash", "endConference": "Përfundoje takimin për të tërë", "enterFullScreen": "Shiheni sa krejt ekrani", - "enterTileView": "Kalo te pamja me kuadrate", - "exitFullScreen": "Dil nga mënyra sa krejt ekrani", - "exitTileView": "Dil nga pamja me kuadrate", + "enterTileView": "Kaloni nën mënyrën me kuadrate", + "exitFullScreen": "Dil nga mënyra “Sa krejt ekrani”", + "exitTileView": "Dil nga mënyra me kuadrate", "feedback": "Lini përshtypje", - "giphy": "Shfaq/Fshih menunë GIPHY", - "hangup": "Braktisni takimin", + "fileSharing": "Dhënie kartelash", + "giphy": "Shfaq/fshih menunë GIPHY", + "hangup": "Braktiseni takimin", "help": "Ndihmë", "hideWhiteboard": "Fshihe tabelën", - "invite": "Ftoni persona", + "invite": "Ftoni njerëz", "joinBreakoutRoom": "Hyni në dhomë aneks konsultimesh", - "laugh": "Qeshje", + "laugh": "E qeshur", "leaveBreakoutRoom": "Dilni nga dhomë aneks konsultimesh", "leaveConference": "Dilni nga takimi", - "like": "Thumbs Up", - "linkToSalesforce": "Lidhje për te Salesforce", - "lobbyButtonDisable": "Çaktivizo mënyrën holl", - "lobbyButtonEnable": "Aktivizo mënyrën holl", - "login": "Hyrje", - "logout": "Dalje", + "like": "", + "linkToSalesforce": "Lidhje për te", + "lobbyButtonDisable": "Çaktivizoni mënyrën holl", + "lobbyButtonEnable": "Aktivizoni mënyrën holl", + "login": "Hyni", + "logout": "Dilni", "love": "Zemër", "lowerYourHand": "Ulni dorën", "moreActions": "Më tepër veprime", "moreOptions": "Më tepër veprime", "mute": "Heshto mikrofonin", "muteEveryone": "Heshto gjithkënd", - "muteEveryonesVideo": "Çaktivizo videon e gjithkujt", + "muteEveryonesVideo": "Çaktivizo kamerën e gjithkujt", "muteGUMPending": "Po lidhet mikrofoni juaj", - "noAudioSignalDesc": "Nëse s’e keni heshtuar që nga rregullimet e sistemit, ose nga hardware-i, shihni mundësinë e ndërrimit të pajisjes.", - "noAudioSignalDescSuggestion": "Nëse s’e keni heshtuar që nga rregullimet e sistemit, ose nga hardware-i, shihni mundësinë e kalimit te pajisja e sugjeruar.", + "noAudioSignalDesc": "Nëse s’e keni heshtuar qëllimisht që nga rregullimet e sistemit, ose nga hardware-i, shihni mundësinë e ndërrimit të pajisjes.", + "noAudioSignalDescSuggestion": "Nëse s’e keni heshtuar qëllimisht që nga rregullimet e sistemit, ose nga hardware-i, shihni mundësinë e kalimit te pajisja e sugjeruar.", "noAudioSignalDialInDesc": "Mund t’i bini numrit edhe duke përdorur:", "noAudioSignalDialInLinkDesc": "Numra thirrjeje", "noAudioSignalTitle": "S’ka sinjal që vjen nga mikrofoni juaj!", - "noiseSuppression": "Mbytje zhurmash", + "noiseSuppression": "Mbytje zhurmash ekstra", "noisyAudioInputDesc": "Dëgjohet sikur mikrofoni juaj prodhon zhurmë, ju lutemi, shihni mundësinë e heshtimit të tij, ose të ndërrimit të pajisjes.", "noisyAudioInputTitle": "Mikrofoni juaj duket të jetë i zhurmshëm!", "openChat": "Hapni fjalosje", "openReactionsMenu": "Hap menu reagimesh", "participants": "Pjesëmarrës", "pip": "Kalo nën mënyrën “Picture-in-Picture”", - "privateMessage": "Dërgo mesazh privat", + "polls": "Pyetësorë", + "privateMessage": "Dërgoni mesazh privat", "profile": "Përpunoni profilin tuaj", "raiseHand": "Ngrini dorën", "raiseYourHand": "Ngrini dorën", @@ -1370,6 +1486,7 @@ "reactionHeart": "Dërgoni reagim me zemër", "reactionLaugh": "Dërgoni reagim me qeshje", "reactionLike": "Dërgoni reagim me “thumbs up”", + "reactionLove": "Dërgoni reagim me dashuri", "reactionSilence": "Dërgoni reagim me heshtje", "reactionSurprised": "Dërgoni reagim të befasuari", "reactions": "Reagime", @@ -1381,9 +1498,9 @@ "shortcuts": "Shihni shkurtore", "showWhiteboard": "Shfaq tabelë", "silence": "Heshtje", - "speakerStats": "Statistika folësi", + "speakerStats": "Statistika pjesëmarrësish", "startScreenSharing": "Nise tregimin e ekranit", - "startSubtitles": "Nis titra", + "startSubtitles": "Titra • {{language}}", "stopAudioSharing": "Ndal ndarje audioje me të tjerë", "stopScreenSharing": "Ndale tregimin e ekranit", "stopSharedVideo": "Ndale videon", @@ -1401,15 +1518,19 @@ "transcribing": { "ccButtonTooltip": "Ndali / Nisi titrat", "expandedLabel": "Transkriptimi aktualisht është aktiv", - "failedToStart": "S’u arrit të nisej transkriptim", - "labelToolTip": "Takimit po i bëhet transkriptim", - "sourceLanguageDesc": "Aktualisht si gjuhë takimi është caktuar {{sourceLanguage}}.
Mund ta ndryshoni që nga ", + "failed": "Transkriptimi dështoi", + "labelTooltip": "Ky takim po transkriptohet.", + "labelTooltipExtra": "Përveç kësaj, më vonë do të ketë një transkriptim të gatshëm.", + "openClosedCaptions": "Hap titra të mbyllur", + "original": "Origjinali", + "sourceLanguageDesc": "Aktualisht si gjuhë e mbledhjes është vënë {{sourceLanguage}}.
Mundeni ta ndryshoni që nga ", "sourceLanguageHere": "këtu", "start": "Fillo shfaqje titrash", "stop": "Ndal shfaqje titrash", "subtitles": "Titra", "subtitlesOff": "Off", - "tr": "TR" + "tr": "TR", + "translateTo": "Përktheje në" }, "unpinParticipant": "{{participantName}} - Hiqja fiksimin", "userMedia": { @@ -1441,7 +1562,7 @@ "ldTooltip": "Po shihet video në cilësi të ulët", "lowDefinition": "Cilësi e ulët", "performanceSettings": "Rregullime funksionimi", - "recording": "Regjistrim në kryerje e sipër", + "recording": "Ky takim po regjistrohet.", "sd": "CS", "sdTooltip": "Po shihet video në cilësi standarde", "standardDefinition": "Cilësi standarde", @@ -1451,6 +1572,8 @@ "connectionInfo": "Hollësi Lidhjeje", "demote": "Kaloje te vizitorët", "domute": "Heshtoje", + "domuteDesktop": "Ndaleni tregimin e ekranit", + "domuteDesktopOfOthers": "Ndaleni tregimin e ekranit për këdo tjetër", "domuteOthers": "Heshto gjithkënd tjetër", "domuteVideo": "Çaktivizoje kamerën", "domuteVideoOfOthers": "Çaktivizo kamerën e gjithkujt tjetër", @@ -1501,21 +1624,23 @@ "webAssemblyWarningDescription": "WebAssembly e çaktivizuar ose e pambuluar nga ky shfletues" }, "visitors": { - "chatIndicator": "(vizitor)", + "chatIndicator": "(parës)", "joinMeeting": { "description": "Aktualisht jeni vëzhgues në këtë konferencë.", "raiseHand": "Ngrini dorën", "title": "Hyrje në takim", "wishToSpeak": "Nëse dëshironi të flisni, ju lutemi, ngrini dorën më poshtë dhe prisni miratimin e moderatorit." }, - "labelTooltip": "Numër vizitorësh: {{count}}", + "labelTooltip": "Numër parësish: {{count}}", "notification": { "demoteDescription": "Dërguar këtu nga {{actor}}, që të merrni pjesë, ngrini dorën", - "noMainParticipantsDescription": "Duhet që një pjesëmarrëstë nisë takimin. Ju lutemi, riprovoni pas pak.", + "noMainParticipantsDescription": "Duhet që një pjesëmarrës të nisë takimin. Ju lutemi, riprovoni pas pak.", "noMainParticipantsTitle": "Ky takim s’ka filluar ende.", - "noVisitorLobby": "S’mund të hyni, teksa ka një holll të hapur për takimin.", + "noVisitorLobby": "S’mund të hyni, teksa ka një holl të hapur për takimin.", "notAllowedPromotion": "Lypset që së pari një pjesëmarrës të lejojë kërkesën tuaj.", - "title": "Jeni vizitor në takim" + "requestToJoin": "U ngrit Dorë", + "requestToJoinDescription": "Kërkesa juaj iu dërgua moderatorëve. Mos u largoni!", + "title": "Jeni një parës te takimi" }, "waitingMessage": "Do të merrni pjesë në këta takim sapo të fillojë!" }, diff --git a/lang/main-sv.json b/lang/main-sv.json index 9f4026c62563..b383bfafd0f6 100644 --- a/lang/main-sv.json +++ b/lang/main-sv.json @@ -114,6 +114,9 @@ "error": "Fel: ditt meddelande skickades inte. Orsak: {{error}}", "everyone": "Alla", "fieldPlaceHolder": "Skriv ditt meddelande här", + "fileAccessibleTitle": "{{user}} laddade upp en fil", + "fileAccessibleTitleMe": "jag laddade upp en fil", + "fileDeleted": "En fil raderades", "guestsChatIndicator": "(gäst)", "lobbyChatMessageTo": "Skicka meddelande", "message": "Meddelande", @@ -123,8 +126,16 @@ "messagebox": "Skriv ett meddelande", "newMessages": "Nytt meddelande", "nickname": { + "featureChat": "chatt", + "featureClosedCaptions": "textning", + "featureFileSharing": "fildelning", + "featurePolls": "omröstningar", "popover": "Välj ett namn", "title": "Skriv in ett namn för att börja använda chatten", + "titleWith1Features": "Ange ett smeknamn för att använda {{feature1}}", + "titleWith2Features": "Ange ett smeknamn för att använda {{feature1}} och {{feature2}}", + "titleWith3Features": "Ange ett smeknamn för att använda {{feature1}}, {{feature2}} och {{feature3}}", + "titleWith4Features": "Ange ett smeknamn för att använda {{feature1}}, {{feature2}}, {{feature3}} och {{feature4}}", "titleWithCC": "Skriv in ett namn för att börja använda chatten och för undertexter", "titleWithPolls": "Skriv in ett namn för att börja använda chatten och omröstningar", "titleWithPollsAndCC": "Skriv in ett namn för att börja använda chatten, omröstningar och undertexter", @@ -216,6 +227,9 @@ "video_ssrc": "Video SSRC:", "yes": "Ja" }, + "customPanel": { + "close": "Stäng" + }, "dateUtils": { "earlier": "Tidigare", "today": "Idag", @@ -230,10 +244,10 @@ "downloadMobileApp": "Ladda ner mobilappen", "ifDoNotHaveApp": "Om du inte har appen än:", "ifHaveApp": "Om du redan har appen:", - "joinInApp": "Delta i detta möte med din app", + "joinInApp": "Delta i det här mötet med din app", "joinInAppNew": "Delta i appen", "joinInBrowser": "Delta på webben", - "launchMeetingLabel": "Hur vill du delta i detta möte?", + "launchMeetingLabel": "Hur vill du delta i det här mötet?", "launchWebButton": "Starta på webben", "noDesktopApp": "", "noMobileApp": "Har du inte appen?", @@ -280,7 +294,7 @@ "Submit": "Skicka", "Understand": "Jag förstår, låt min mikrofon vara avstängd tillsvidare", "UnderstandAndUnmute": "Jag förstår, starta min mikrofon", - "WaitForHostNoAuthMsg": "Konferensen har ännu inte startat eftersom ingen värd har anlänt ännu. Vänligen vänta.", + "WaitForHostNoAuthMsg": "Konferensen har ännu inte startat eftersom ingen värd har anlänt ännu. Var god vänta.", "WaitingForHostButton": "Vänta på värd", "WaitingForHostTitle": "Väntar på värden…", "Yes": "Ja", @@ -330,7 +344,7 @@ "contactSupport": "Kontakta kundtjänst", "copied": "Kopierad", "copy": "Kopiera", - "demoteParticipantDialog": "Are you sure you want to move this participant to viewer? Är du säker på att du vill flytta denna deltagaren till tittare", + "demoteParticipantDialog": "Är du säker på att du vill flytta den här deltagaren till tittare?", "demoteParticipantTitle": "Flytta till tittare", "dismiss": "Förkasta", "displayNameRequired": "Hej, vad heter du?", @@ -344,18 +358,18 @@ "enterDisplayName": "Ange namn", "error": "Fel", "errorRoomCreationRestriction": "Du försökte gå med för snabbt, kom tillbaka om en stund.", - "gracefulShutdown": "Vår tjänst är för tillfället nedstängd för underhåll. Vänligen försök senare.", - "grantModeratorDialog": "Är du säker du vill göra denna deltagare till en moderator?", + "gracefulShutdown": "Vår tjänst är för tillfället nedstängd för underhåll. Försök senare.", + "grantModeratorDialog": "Är du säker på att du vill göra den här deltagaren till moderator?", "grantModeratorTitle": "Godkänn moderator", "hide": "Dölj", - "hideShareAudioHelper": "Visa inte denna dialog igen ", + "hideShareAudioHelper": "Visa inte den här dialogen igen ", "incorrectPassword": "Fel användarnamn eller lösenord", "incorrectRoomLockPassword": "Felaktigt lösenord", "internalError": "Ett fel uppstod. Fel: {{error}}", "internalErrorTitle": "Internt fel", "kickMessage": "Du kan kontakta {{participantDisplayName}} för mer information.", "kickParticipantButton": "Ta bort deltagaren från mötet", - "kickParticipantDialog": "Vill du ta bort denna deltagaren från mötet?", + "kickParticipantDialog": "Vill du ta bort den här deltagaren från mötet?", "kickParticipantTitle": "Tysta deltagaren?", "kickSystemTitle": "Du har blivit borttagen från mötet", "kickTitle": "{{participantDisplayName}} tog bort dig från mötet", @@ -369,6 +383,9 @@ "lockRoom": "Lägg till möte $t(lockRoomPasswordUppercase)", "lockTitle": "Låsning misslyckades", "login": "Logga in", + "loginFailed": "Inloggningen misslyckades.", + "loginOnResume": "Din autentiseringssession har gått ut. Du måste logga in igen för att fortsätta mötet.", + "loginPopupBlocked": "Inloggningsfönstret blockerades av din webbläsare.", "loginQuestion": "Är du säker på att du vill logga in och lämna mötet", "logoutQuestion": "Är du säker på att du vill logga ut och lämna konferensen?", "logoutTitle": "Logga ut", @@ -413,25 +430,23 @@ "muteParticipantsVideoBody": "Du kommer inte att kunna aktivera kameran igen. Däremot kan deltagaren kunna aktivera sin egen kamera när som.", "muteParticipantsVideoBodyModerationOn": "Du och deltagarna kommer inte att kunna aktivera kameran igen.", "muteParticipantsVideoButton": "Inaktivera kamera", - "muteParticipantsVideoDialog": "Är du säker du vill inaktivera denna deltagares kamera. Du kommer inte att kunna aktivera den igen. Däremot kan deltagaren kunna aktivera sin egen kamera när som.", + "muteParticipantsVideoDialog": "Är du säker du vill inaktivera den här deltagarens kamera. Du kommer inte att kunna aktivera den igen. Däremot kan deltagaren kunna aktivera sin egen kamera när som.", "muteParticipantsVideoDialogModerationOn": "Är du säker på att du vill inaktivera den här deltagarens kamera? Du kommer inte att kunna aktivera kameran igen och inte de heller.", - "muteParticipantsVideoTitle": "Inaktivera denna deltagares kamera?", + "muteParticipantsVideoTitle": "Inaktivera den här deltagarens kamera?", "noDropboxToken": "Ingen giltig dropbox tecken", "password": "Lösenord", "passwordLabel": "Mötet har låsts av en deltagare. Ange $t(lockRoomPassword) för att gå med.", "passwordNotSupported": "Att sätta ett $t(lockRoomPassword) för mötesrummet stöds ej.", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) stöds inte", "passwordRequired": "$t(lockRoomPasswordUppercase) krävs", - "permissionCameraRequiredError": "Tillåtelse krävs för att delta med kamera i denna möte. Var god skaffa detta i \"inställningar\".", + "permissionCameraRequiredError": "Behörighet krävs för att delta med kamera i det här mötet. Ändra detta i \"Inställningar\".", "permissionErrorTitle": "Tillåtelse krävs", - "permissionMicRequiredError": "Tillåtelse krävs för att delta med mikrofon i denna möte. Var god skaffa detta i \"inställningar\".", + "permissionMicRequiredError": "Behörighet krävs för att delta med mikrofon i det här mötet. Ändra detta i \"Inställningar\".", "readMore": "Mer", "recentlyUsedObjects": "Dina senaste använda objekt", "recording": "Inspelning", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ej möjligt medan livestreaming pågår.", - "recordingInProgressDescription": "Mötet spelas in och analyseras av AI{{learnMore}}. Ditt ljud och din bild har stängts av, om du väljer att starta kamera eller mikrofon så accepterar du att bli inspelad.", - "recordingInProgressDescriptionFirstHalf": "Mötet spelas in och analyseras av AI", - "recordingInProgressDescriptionSecondHalf": "Ditt ljud och din bild har stängts av, om du väljer att starta kamera eller mikrofon så accepterar du att bli inspelad.", + "recordingInProgressDescription": "Mötet spelas in och analyseras av AI. Ditt ljud och din bild har stängts av, om du väljer att starta kamera eller mikrofon så accepterar du att bli inspelad.", "recordingInProgressTitle": "Inspelning pågår", "rejoinNow": "Återanslut nu", "remoteControlAllowedMessage": "{{user}} godkände din begäran om fjärrstyrning.", @@ -454,12 +469,14 @@ "screenSharingFailed": "Oops! Något gick fel, skärmdelning kunde ej startas.", "screenSharingFailedTitle": "Skärmdelning misslyckades!", "screenSharingPermissionDeniedError": "Något är fel med åtkomstinställningarna för skärmdelningen. Ladda om sidan och försök igen.", + "screenshareStoppedDiskSpace": "Det här händer om du använde macOS flytande verktygsfält för att stoppa skärmdelningen. Det har inte stöd för att starta den igen.", + "screenshareStoppedTitle": "Skärmdelningen stoppades via systemet", "searchInSalesforce": "Sök i Salesforce", "searchResults": "Sökresultat ({{count}})", "searchResultsDetailsError": "Något gick fel när ägardata hämtades.", "searchResultsError": "Något gick fel när data hämtades.", "searchResultsNotFound": "Inga sökresultat hittades.", - "searchResultsTryAgain": "Try using alternative keywords.", + "searchResultsTryAgain": "Försök med andra sökord.", "sendPrivateMessage": "Du har fått ett privat meddelande. Tänkte du svara på det privat, eller vill du skicka ditt meddelande till alla deltagare?", "sendPrivateMessageCancel": "Skicka till alla deltagare", "sendPrivateMessageOk": "Skicka privat", @@ -522,7 +539,7 @@ "tokenAuthFailedWithReasons": "Förlåt, du har inte tillåtelse att gå med i det här samtalet. Troliga anledingar: {{reason}}", "tokenAuthUnsupported": "Token URL är inte tillåten", "transcribing": "Transkriberar", - "unauthenticatedAccessDisabled": "Detta samtalet kräver identifiering. Logga in för att fortsätta.", + "unauthenticatedAccessDisabled": "Det här samtalet kräver identifiering. Logga in för att fortsätta.", "unlockRoom": "Ta bort möte $t(lockRoomPassword)", "user": "Användare", "userIdentifier": "Användar-ID", @@ -545,7 +562,7 @@ "title": "Delade dokument" }, "e2ee": { - "labelToolTip": "Ljud- och videokommunikation för detta samtal är krypterad från dator till dator" + "labelToolTip": "Ljud- och videokommunikation för det här samtalet är krypterad från dator till dator" }, "embedMeeting": { "title": "Bädda in möte" @@ -578,6 +595,7 @@ "newFileNotification": "{{ participantName }} delade '{{ fileName }}'", "removeFile": "Ta bort", "removeFileSuccess": "Filen togs bort", + "uploadDisabled": "Inte tillåtet att ladda upp filer. Be en moderator om behörighet för den åtgärden.", "uploadFailedDescription": "Snälla försök igen.", "uploadFailedTitle": "Överföring misslyckades", "uploadFile": "Dela fil" @@ -605,7 +623,7 @@ "conferenceURL": "Länk:", "copyNumber": "Kopiera nummer", "country": "Land", - "dialANumber": "Om du vill gå med i mötet ringer du något av dessa nummer och fyller sedan i PIN-koden.", + "dialANumber": "Om du vill gå med i mötet ringer du något av de här numren och fyller sedan i PIN-koden.", "dialInConferenceID": "PIN-kod:", "dialInNotSupported": "Tyvärr stöds inte inringning just nu.", "dialInNumber": "Inringning:", @@ -637,14 +655,14 @@ "sipAudioOnly": "SIP endast ljud address", "title": "Dela", "tooltip": "Dela länk och information om inringning för mötet", - "upgradeOptions": "Vänligen kontrollera om uppgraderingsalternativen är på", + "upgradeOptions": "Kontrollera om uppgraderingsalternativen är på", "whiteboardError": "Problem att ladda whiteboard, var god försök senare." }, "inlineDialogFailure": { "msg": "Vi slirade lite.", "retry": "Försök igen", "support": "Support", - "supportMsg": "Om detta fortsätter hända kontakta" + "supportMsg": "Om det här fortsätter att hända, kontakta" }, "inviteDialog": { "alertText": "Det gick inte att bjuda in alla deltagare.", @@ -695,8 +713,6 @@ "googlePrivacyPolicy": "Googles sekretesspolicy", "inProgress": "Inspelning eller livestreaming pågår", "invalidStreamKey": "Livesändningslösenordet kan vara felaktigt.", - "limitNotificationDescriptionNative": "Din strömning är begränsad till {{limit}} min. För obegränsad strömning, prova {{app}}.", - "limitNotificationDescriptionWeb": "På grund av stor efterfrågan kommer din strömning att begränsas till {{limit}} min. För obegränsad strömning, prova {{app}}.", "off": "Strömning avslutad", "offBy": "{{name}} stoppade direktströmningen", "on": "Strömma", @@ -713,13 +729,14 @@ "streamIdHelp": "Vad är det här?", "title": "Direktsändning", "unavailableTitle": "Livesändning otillgänglig", + "youTubeGoLiveWarning": "Kom ihåg att klicka på \"Gå live\" i YouTube Studio om autostart/autostopp är inaktiverade.", "youtubeTerms": "Tjänstevillkor för YouTube" }, "lobby": { "backToKnockModeButton": "Tillbaka till väntrum", "chat": "Chatt", "dialogTitle": "Väntrum", - "disableDialogContent": "Väntrumsläge är för närvarande aktiverat. Denna funktion säkerställer att oönskade deltagare inte kan gå med i ditt möte. Vill du inaktivera det?", + "disableDialogContent": "Väntrumsläge är för närvarande aktiverat. Den här funktionen säkerställer att oönskade deltagare inte kan gå med i ditt möte. Vill du inaktivera det?", "disableDialogSubmit": "Inaktivera", "emailField": "Skriv in din mailadress", "enableDialogPasswordField": "Ange lösenord (valfritt)", @@ -813,7 +830,7 @@ "desktopMutedRemotelyTitle": "Din skärmdelning har avslutats av {{participantDisplayName}}", "disabledIframe": "Inbäddning är endast avsedd för demonstrationsändamål, så det här samtalet kommer att kopplas ner om {{timeout}} minuter.", "disabledIframeSecondaryNative": "Inbäddning {{domain}} är endast avsedd för demonstrationsändamål, så det här samtalet kommer att kopplas ner om {{timeout}} minuter.", - "disabledIframeSecondaryWeb": "Bädda in {{domain}} är bara till för demo, så detta samtal kommer att kopplas bort inom {{timeout}} minuter. Var god använd Jitsi som tjänst för att bädda in i produktion.", + "disabledIframeSecondaryWeb": "Bädda in {{domain}} är bara till för demo, så det här samtalet kommer att kopplas bort inom {{timeout}} minuter. Var god använd Jitsi som tjänst för att bädda in i produktion.", "disconnected": "frånkopplad", "displayNotifications": "Visa aviseringar för", "dontRemindMe": "Påminn mig inte", @@ -821,7 +838,7 @@ "focusFail": "{{component}} inte tillgänglig – försöker igen om {{ms}} sek", "gifsMenu": "GIPHY", "groupTitle": "Notifieringar", - "hostAskedUnmute": "Värden vill att du ska stänga av ljudet", + "hostAskedUnmute": "Värden vill att du ska starta din mikrofon", "invalidTenant": "Ogiltig tenant", "invalidTenantHyphenDescription": "Tenant du använder har ogiltiga tecken (startar eller slutar med '-').", "invalidTenantLengthDescription": "Tenant du använder är för lång", @@ -836,7 +853,7 @@ "linkToSalesforce": "Länk till Salesforce", "linkToSalesforceDescription": "Du kan länka mötessammanfattningen till ett Salesforce-objekt.", "linkToSalesforceError": "Det gick inte att länka mötet till Salesforce", - "linkToSalesforceKey": "Länka detta möte", + "linkToSalesforceKey": "Länka det här mötet", "linkToSalesforceProgress": "Länkar möte till Salesforce…", "linkToSalesforceSuccess": "Mötet länkades till Salesforce", "localRecordingStarted": "{{name}} har påbörjat en lokal inspelning.", @@ -862,7 +879,7 @@ "newDeviceAudioTitle": "Ny ljudenhet hittad", "newDeviceCameraTitle": "Ny kamera hittad", "nextToSpeak": "Du är näst i kö för att prata", - "noiseSuppressionDesktopAudioDescription": "Brusreducering kan inte aktiveras när du delar skrivbordsljud, vänligen inaktivera det och försök igen.", + "noiseSuppressionDesktopAudioDescription": "Brusreducering kan inte aktiveras när du delar skrivbordsljud, inaktivera det och försök igen.", "noiseSuppressionFailedTitle": "Det gick inte att starta brusreducering", "noiseSuppressionStereoDescription": "Brusreducering i stereoljud stöds för närvarande inte.", "oldElectronClientDescription1": "Den version av Jitsi meet som används är gammal och har säkerhetsluckor. Var god uppdatera till den senaste versionen.", @@ -890,7 +907,7 @@ "suboptimalExperienceTitle": "Webbläsarvarning", "suggestRecordingAction": "Starta", "suggestRecordingDescription": "Vill du starta en inspelning?", - "suggestRecordingTitle": "Spela in detta mötet", + "suggestRecordingTitle": "Spela in det här mötett", "unmute": "Slå på mikrofonen", "unmuteScreen": "Starta skärmdelning", "unmuteVideo": "Starta kamera", @@ -985,7 +1002,7 @@ }, "notification": { "description": "Öppna fliken omröstningar för att rösta", - "title": "En ny omröstning har blivit tillagd till detta möte" + "title": "En ny omröstning har blivit tillagd till det här mötet" }, "results": { "changeVote": "Ändra din röst", @@ -1018,7 +1035,7 @@ "audioHighQuality": "Vi förväntar oss att ditt ljud har utmärkt kvalitet.", "audioLowNoVideo": "Vi förväntar oss att din ljudkvalitet är låg och ingen video.", "goodQuality": "Grymt bra! Din mediekvalitet kommer att bli bra.", - "noMediaConnectivity": "Vi kunde inte hitta ett sätt att upprätta mediaanslutning för detta test. Detta orsakas vanligtvis av en brandvägg eller NAT.", + "noMediaConnectivity": "Vi kunde inte upprätta mediaanslutning för det här testet. Det orsakas vanligtvis av en brandvägg eller NAT.", "noVideo": "Vi förväntar oss att din video kommer ha låg kvalitet eller inte fungera.", "testFailed": "Anslutningstestet stötte på oväntade problem, men det behöver inte påverka din upplevelse.", "undetectable": "Om du fortfarande inte kan ringa i webbläsaren rekommenderar vi att du ser till att dina högtalare, mikrofon och kamera är korrekt inställda, att du har beviljat din webbläsare rättigheter att använda din mikrofon och kamera och att din webbläsarversion är uppdaterad.", @@ -1032,7 +1049,7 @@ "dialInMeeting": "Ring in till mötet", "dialInPin": "Ring in till mötet och ange PIN-kod:", "dialing": "Ringer", - "doNotShow": "Visa inte denna ruta igen", + "doNotShow": "Visa inte den här rutan igen", "errorDialOut": "Kunde inte ringa ut", "errorDialOutDisconnected": "Kunde inte ringa ut. Kopplar ner", "errorDialOutFailed": "Kunde inte ringa ut. Samtal misslyckades", @@ -1086,7 +1103,7 @@ "raisedHandsLabel": "Antal uppräckta händer", "record": { "already": { - "linked": "Mötet är redan länkat till detta Salesforce-objekt." + "linked": "Mötet är redan länkat till det här Salesforce-objekt." }, "type": { "account": "Konto", @@ -1116,8 +1133,6 @@ "highlightMomentSuccess": "Moment framhävt", "highlightMomentSucessDescription": "Ditt framhävda ögonblick läggs till i mötessammanfattningen.", "inProgress": "Inspelning eller livestreaming pågår", - "limitNotificationDescriptionNative": "På grund av stor efterfrågan är din inspelning begränsad till {{limit}} min. För obegränsade inspelningar, försök <3>{{app}}.", - "limitNotificationDescriptionWeb": "På grund av stor efterfrågan är din inspelning begränsad till {{limit}} min. För obegränsade inspelningar, prova {{app}}.", "linkGenerated": "Vi har genererat en länk till din inspelning.", "localRecordingNoNotificationWarning": "Inspelningen kommer inte att meddelas till andra deltagare. Du måste meddela dem att mötet inspelas.", "localRecordingNoVideo": "Video spelas inte in", @@ -1127,7 +1142,7 @@ "localRecordingVideoWarning": "För att spela in din video måste du ha den på när du startar inspelningen", "localRecordingWarning": "Se till att du väljer den aktuella fliken för att kunna använda rätt video och ljud.", "loggedIn": "Inloggad som {{userName}}", - "noMicPermission": "Mikrofonspåret kunde inte skapas. Vänligen ge tillstånd att använda mikrofonen.", + "noMicPermission": "Mikrofonspåret kunde inte skapas. Ge tillstånd att använda mikrofonen.", "noStreams": "Ingen ljud- eller videoström upptäcktes.", "off": "Inspelningen avslutades", "offBy": "{{name}} avslutade inspelningen", @@ -1252,7 +1267,7 @@ "version": "Version" }, "share": { - "dialInfoText": "\n\n=====\n\nVill du istället ringa in via telefon?\n\n{{defaultDialInNumber}} Klicka på den här länken för att se telefonnumret för detta möte\n{{dialInfoPageUrl}}", + "dialInfoText": "\n\n=====\n\nVill du istället ringa in via telefon?\n\n{{defaultDialInNumber}} Klicka på den här länken för att se telefonnumret för det här mötet\n{{dialInfoPageUrl}}", "mainText": "Klicka på länken för att delta i mötet:\n{{roomUrl}}" }, "speaker": "Talare", @@ -1304,6 +1319,7 @@ "chat": "Öppna eller stäng chattfönster", "clap": "Applådera", "closeChat": "Stäng chatten", + "closeCustomPanel": "Stäng", "closeMoreActions": "Stäng menyn för fler åtgärder", "closeParticipantsPane": "Stäng deltagarfönstret", "closedCaptions": "Undertexter", @@ -1409,9 +1425,11 @@ "chat": "Öppna / stäng chatten", "clap": "Klappa", "closeChat": "Stäng chatt", + "closeCustomPanel": "Stäng", "closeParticipantsPane": "Stäng deltagarrutan", "closeReactionsMenu": "Stäng meny för reaktioner", "closedCaptions": "Undertexter", + "copilot": "Copilot", "disableNoiseSuppression": "Inaktivera brusreducering", "disableReactionSounds": "Du kan inaktivera reaktionsljud för det här mötet", "documentClose": "Stäng delat dokument", @@ -1426,6 +1444,7 @@ "exitFullScreen": "Stäng fullskärm", "exitTileView": "Stäng panelvy", "feedback": "Lämna återkoppling", + "fileSharing": "Fildelning", "giphy": "Växla GIPHY-menyn", "hangup": "Lämna", "help": "Hjälp", @@ -1461,6 +1480,7 @@ "openReactionsMenu": "Öppna meny för reaktioner", "participants": "Deltagare", "pip": "Öppna bild-i-bild-läge", + "polls": "Omröstningar", "privateMessage": "Skicka privat meddelande", "profile": "Redigera din profil", "raiseHand": "Räck upp / ta ner din hand", @@ -1587,6 +1607,7 @@ "addBackground": "Lägg till bakgrund", "apply": "Tillämpa", "backgroundEffectError": "Det gick inte att tillämpa bakgrundseffekt.", + "backgroundLimitReached": "Gränsen för anpassade bakgrunder har nåtts", "blur": "Oskärpa", "deleteImage": "Ta bort bild", "desktopShare": "Dela skrivbord", @@ -1599,7 +1620,8 @@ "image6": "Skog", "image7": "Soluppgång", "none": "Ingen", - "pleaseWait": "Vänligen vänta…", + "oldestBackgroundRemoved": "Den äldsta anpassade bakgrunden har tagits bort för att lägga till den nya.", + "pleaseWait": "Var god vänta…", "removeBackground": "Ta bort bakgrunden", "slightBlur": "Lätt oskärpa", "title": "Virtuella bakgrunder", @@ -1671,7 +1693,7 @@ "recentListEmpty": "Inga tidigare möten. Chatta med ditt team och hitta alla tidigare möten där.", "recentMeetings": "Dina senaste möten", "reducedUIText": "Välkommen till {{app}}!", - "roomNameAllowedChars": "Mötesnamn kan inte innehålla dessa tecken: ?, &,:, ', \",%, #.", + "roomNameAllowedChars": "Mötesnamn kan inte innehålla de här tecknen: ?, &,:, ', \",%, #.", "roomname": "Skriv in rumsnamn", "roomnameHint": "Ange namnet eller URL:en till mötesrummet du vill ansluta till. Du kan hitta på ett nytt namn, berätta då för de andra du tänker möta så de anger samma namn.", "sendFeedback": "Ge återkoppling", diff --git a/lang/main-te.json b/lang/main-te.json index d6bc18bb0ec3..cf6818807e62 100644 --- a/lang/main-te.json +++ b/lang/main-te.json @@ -436,8 +436,6 @@ "getStreamKeyManually": "We weren’t able to fetch any live streams. Try getting your live stream key from YouTube.", "googlePrivacyPolicy": "గూగుల్ గోప్యతా విధానం", "invalidStreamKey": "Live stream key may be incorrect.", - "limitNotificationDescriptionNative": "Your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.", - "limitNotificationDescriptionWeb": "Due to high demand your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.", "off": "Live Streaming stopped", "offBy": "{{name}} stopped the live streaming", "on": "Live Streaming started", @@ -672,8 +670,6 @@ "expandedPending": "రికార్డింగు మొదలవుతూన్నది…", "failedToStart": "రికార్డింగు మొదలవడం విఫలమైంది", "fileSharingdescription": "రికార్డింగును సదస్యులతో పంచుకోండి", - "limitNotificationDescriptionNative": "Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try <3>{{app}}.", - "limitNotificationDescriptionWeb": "Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try {{app}}.", "live": "LIVE", "loggedIn": "{{userName}}‌గా ప్రవేశించారు", "off": "రికార్డింగు ఆగిపోయింది", diff --git a/lang/main-tr.json b/lang/main-tr.json index 595f555ab269..08aa9c67b47d 100644 --- a/lang/main-tr.json +++ b/lang/main-tr.json @@ -634,8 +634,6 @@ "googlePrivacyPolicy": "Google Gizlilik Politikası", "inProgress": "Kaydetme veya canlı akış işlemde", "invalidStreamKey": "Canlı akış anahtarı yanlış olabilir.", - "limitNotificationDescriptionNative": "Akışınız {{limit}} dk ile sınırlı olacak. Sınırsız akış için {{app}} deneyin.", - "limitNotificationDescriptionWeb": "Yüksek talep nedeniyle akışınız {{limit}} dk ile sınırlı olacaktır. Sınırsız akış için {{app}} deneyin.", "off": "Canlı Akış durduruldu", "offBy": "{{name}} canlı akışı durdurdu", "on": "Canlı Akış başlatıldı", @@ -1031,8 +1029,6 @@ "highlightMomentSuccess": "An vurgulandı", "highlightMomentSucessDescription": "Vurgulanan anınız toplantı özetine eklenecektir.", "inProgress": "Kayıt veya canlı akış devam ediyor", - "limitNotificationDescriptionNative": "Yüksek talep nedeniyle kaydınız {{limit}} dakika ile sınırlı olacaktır. Sınırsız kayıt için deneyin <3>{{app}}.", - "limitNotificationDescriptionWeb": "Yüksek talep nedeniyle kaydınız {{limit}} dakika ile sınırlı olacaktır. Sınırsız kayıt için deneyin {{app}}.", "linkGenerated": "Kaydınızla ilgili link oluşturduk.", "localRecordingNoNotificationWarning": "Kayıt diğer katılımcılara duyurulmayacaktır. Onlara toplantının kaydedildiğini bildirmeniz gerekecek.", "localRecordingNoVideo": "Video kaydedilmiyor", diff --git a/lang/main-uk.json b/lang/main-uk.json index 0ea48fa972c5..ecebf03dd14d 100644 --- a/lang/main-uk.json +++ b/lang/main-uk.json @@ -564,8 +564,6 @@ "googlePrivacyPolicy": "Політика конфіденційності Google", "inProgress": "Триває запис або трансляція наживо", "invalidStreamKey": "Ключ до трансляції наживо неправильний.", - "limitNotificationDescriptionNative": "Ваша трансляція наживо буде обмежена {{limit}} хв. Для необмеженої трансляції, спробуйте {{app}}", - "limitNotificationDescriptionWeb": "Через високе навантаження, трансляція наживо буде обмежена {{limit}} хв. Для необмеженої трансляції, спробуйте {{app}}.", "off": "Трансляцію наживо зупинено", "offBy": "{{name}} зупинив трансляцію наживо", "on": "Трансляція наживо", @@ -930,8 +928,6 @@ "highlightMomentSuccess": "Подію виділено", "highlightMomentSucessDescription": "Виділену подію буде додано до підсумку зустрічі.", "inProgress": "Триває запис або трансляція наживо", - "limitNotificationDescriptionNative": "Через велике навантаження сервера ваш запис буде обмежено {{limit}}хв. Для можливості безлімітних записів, спробуйте <3>{{app}}.", - "limitNotificationDescriptionWeb": "Через велике навантаження сервера ваш запис буде обмежено {{limit}} хв. Для можливості безлімітних записів, спробуйте {{app}}.", "linkGenerated": "Готово посилання на ваш запис.", "live": "НАЖИВО", "localRecordingNoNotificationWarning": "Наявність посилання на запис зустрічі не анонсується іншим учасникам. Повідомте їм про це окремо.", diff --git a/lang/main-vi.json b/lang/main-vi.json index 7a517cf6edb7..4394199242b3 100644 --- a/lang/main-vi.json +++ b/lang/main-vi.json @@ -629,8 +629,6 @@ "googlePrivacyPolicy": "Chính sách bảo mật của Google", "inProgress": "Đang ghi hoặc phát trực tiếp", "invalidStreamKey": "Mã phát trực tuyến có thể sai.", - "limitNotificationDescriptionNative": "Việc phát trực tuyến của bạn sẽ bị giới hạn ở {{limit}} phút. Để phát trực tuyến không giới hạn, hãy thử {{app}}.", - "limitNotificationDescriptionWeb": "Do nhu cầu cao, việc phát trực tuyến của bạn sẽ bị giới hạn ở {{limit}} phút. Để phát trực tuyến không giới hạn, hãy thử {{app}.", "off": "Phát trực tuyến đã dừng", "offBy": "{{name}} đã dừng ghi", "on": "Phát trực tuyến", @@ -1009,8 +1007,6 @@ "highlightMomentSuccess": "Khoảnh khắc được đánh dấu", "highlightMomentSucessDescription": "Khoảnh khắc bạn đã đánh dấu sẽ được thêm vào tóm tắt cuộc họp.", "inProgress": "Đang ghi âm hoặc phát trực tiếp", - "limitNotificationDescriptionNative": "Do nhu cầu cao, ghi âm của bạn sẽ bị giới hạn trong {{limit}} phút. Để có ghi âm không giới hạn, hãy thử <3>{{app}}.", - "limitNotificationDescriptionWeb": "Do nhu cầu cao, ghi âm của bạn sẽ bị giới hạn trong {{limit}} phút. Để có ghi âm không giới hạn, hãy thử {{app}}.", "linkGenerated": "Chúng tôi đã tạo một liên kết đến ghi âm của bạn.", "localRecordingNoNotificationWarning": "Cuộc họp sẽ không được thông báo cho các thành viên khác. Bạn sẽ cần thông báo cho họ biết cuộc họp đang được ghi âm.", "localRecordingNoVideo": "Video không được ghi lại", diff --git a/lang/main-zh-CN.json b/lang/main-zh-CN.json index 916bf4b3493f..7e8196397916 100644 --- a/lang/main-zh-CN.json +++ b/lang/main-zh-CN.json @@ -433,9 +433,7 @@ "recentlyUsedObjects": "你最近使用的对象", "recording": "录制中", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "直播时无法使用", - "recordingInProgressDescription": "本会议正由AI录制并分析{{learnMore}},你已被静音。如需发言,视为同意录制。", - "recordingInProgressDescriptionFirstHalf": "本会议正由AI录制并分析", - "recordingInProgressDescriptionSecondHalf": ",你已被静音。如需发言,视为同意录制。", + "recordingInProgressDescription": "本会议正由AI录制并分析,你已被静音。如需发言,视为同意录制。", "recordingInProgressTitle": "录制中", "rejoinNow": "马上重新加入", "remoteControlAllowedMessage": "{{user}}接受了你的远程控制请求!", @@ -699,8 +697,6 @@ "googlePrivacyPolicy": "Google 隐私权政策", "inProgress": "录制或直播正在进行中", "invalidStreamKey": "直播码可能不正确。", - "limitNotificationDescriptionNative": "你的直播将被限制在{{limit}}分钟之内,如需不受限的直播,请使用{{app}}。", - "limitNotificationDescriptionWeb": "由于需求量大,你的直播将被限制在{{limit}}分钟之内。如需不受限的直播,请使用{{app}}。", "off": "直播已停止", "offBy": "{{name}}已停止直播", "on": "直播已开始", @@ -1122,8 +1118,6 @@ "highlightMomentSuccess": "时刻已突出显示", "highlightMomentSucessDescription": "你突出显示的时刻将会添加到会议摘要中。", "inProgress": "正在进行录制或直播流", - "limitNotificationDescriptionNative": "由于高需求,您的录制将限制在{{limit}}分钟内。若要无限制录制,请尝试<3>{{app}}。", - "limitNotificationDescriptionWeb": "由于高需求,您的录制将限制在{{limit}}分钟内。若要无限制录制,请尝试{{app}}。", "linkGenerated": "我们已生成录制链接。", "localRecordingNoNotificationWarning": "系统不会主动通知参会者录制已开启,主持人需另行提醒。", "localRecordingNoVideo": "视频未被录制", diff --git a/lang/main-zh-TW.json b/lang/main-zh-TW.json index 127bb21d0032..a8c115800dfd 100644 --- a/lang/main-zh-TW.json +++ b/lang/main-zh-TW.json @@ -163,17 +163,17 @@ "startClosedCaptionsButton": "啟動即時字幕" }, "connectingOverlay": { - "joiningRoom": "正在將您連接至您的會議…" + "joiningRoom": "正在將您連線至您的會議…" }, "connection": { "ATTACHED": "已經附加", "AUTHENTICATING": "認證中", "AUTHFAIL": "認證失敗", - "CONNECTED": "已經連接", - "CONNECTING": "連接中", - "CONNFAIL": "連接失敗", + "CONNECTED": "已經連線", + "CONNECTING": "連線中", + "CONNFAIL": "連線失敗", "DISCONNECTED": "已斷線", - "DISCONNECTING": "中斷連接中", + "DISCONNECTING": "中斷連線中", "ERROR": "錯誤", "FETCH_SESSION_ID": "正在取得工作階段 ID…", "GET_SESSION_ID_ERROR": "取得工作階段 ID 時發生錯誤:{{code}}", @@ -187,7 +187,7 @@ "bitrate": "連線速率:", "bridgeCount": "伺服器數量:", "codecs": "編解碼器:", - "connectedTo": "已連接至:", + "connectedTo": "已連線至:", "e2eeVerified": "端對端加密驗證:", "framerate": "影格率:", "less": "顯示較少", @@ -209,8 +209,8 @@ }, "remoteaddress": "遠端位址:", "remoteaddress_plural": "遠端位址:", - "remoteport": "遠端連線埠:", - "remoteport_plural": "遠端連線埠:", + "remoteport": "遠端連接埠:", + "remoteport_plural": "遠端連接埠:", "resolution": "解析度:", "savelogs": "儲存日誌", "status": "連線狀態:", @@ -258,7 +258,7 @@ "deviceSelection": { "hid": { "callControl": "通話控制", - "connectedDevices": "已連接的裝置:", + "connectedDevices": "已連線的裝置:", "deleteDevice": "刪除裝置", "pairDevice": "配對裝置" }, @@ -315,22 +315,22 @@ "cameraNotFoundError": "找不到網路攝影機。", "cameraNotSendingData": "我們無法存取您的網路攝影機,請檢查是否有其他應用程式正在使用這個裝置,並從裝置選單裡選擇其他設備或者重新載入。", "cameraNotSendingDataTitle": "無法存取網路攝影機", - "cameraPermissionDeniedError": "未取得網路攝影機的存取權,您仍可參加會議,但其他人無法看到您。按一下網址列中的「攝影機」圖示 ,然後選取「一律允許」選項。", + "cameraPermissionDeniedError": "未取得網路攝影機的存取權,您仍可參加會議,但其他人無法看到您。按一下網址列中的「攝影機」圖示,然後選取「一律允許」選項。", "cameraTimeoutError": "無法啟動視訊裝置,連線逾時!", "cameraUnknownError": "由於不明原因,無法存取網路攝影機。", "cameraUnsupportedResolutionError": "您的網路攝影機不支援所需的影像解析度。", "close": "關閉", - "conferenceDisconnectMsg": "請檢查一下網路連線,將在 {{seconds}} 秒後重新連接…", - "conferenceDisconnectTitle": "您已經被中斷連接。", - "conferenceReloadMsg": "我們正試著修復狀況,將在 {{seconds}} 秒後重新連接…", + "conferenceDisconnectMsg": "請檢查一下網路連線,將在 {{seconds}} 秒後重新連線…", + "conferenceDisconnectTitle": "您已經被中斷連線。", + "conferenceReloadMsg": "我們正試著修復狀況,將在 {{seconds}} 秒後重新連線…", "conferenceReloadTitle": "喔哦!好像有東西壞掉囉。", "confirm": "確認", "confirmBack": "返回", "confirmNo": "否", "confirmYes": "是", - "connectError": "喔哦!發生錯誤,無法連接至會議。", - "connectErrorWithMsg": "喔哦!發生錯誤,無法連接至會議:{{msg}}", - "connecting": "連接中", + "connectError": "喔哦!發生錯誤,無法連線至會議。", + "connectErrorWithMsg": "喔哦!發生錯誤,無法連線至會議:{{msg}}", + "connecting": "連線中", "contactSupport": "聯絡支援", "copied": "已複製", "copy": "複製", @@ -363,7 +363,7 @@ "kickParticipantTitle": "移除這位與會者?", "kickSystemTitle": "您已被移出會議", "kickTitle": "噢!{{participantDisplayName}} 將您從會議中移除", - "learnMore": "了解詳情", + "learnMore": "了解更多", "linkMeeting": "連結會議", "linkMeetingTitle": "將會議連結至 Salesforce", "liveStreaming": "直播串流中", @@ -433,9 +433,7 @@ "recentlyUsedObjects": "您最近使用過的物件", "recording": "錄製中", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "正在直播時無法使用", - "recordingInProgressDescription": "本會議正在錄製並由 AI 分析{{learnMore}},您的音訊與影像已靜音。如果您選擇取消靜音,即表示您同意被錄製。", - "recordingInProgressDescriptionFirstHalf": "本會議正在錄製並由 AI 分析", - "recordingInProgressDescriptionSecondHalf": ",您的音訊與影像已靜音。如果您選擇取消靜音,即表示您同意被錄製。", + "recordingInProgressDescription": "本會議正在錄製並由 AI 分析,您的音訊與影像已靜音。如果您選擇取消靜音,即表示您同意被錄製。", "recordingInProgressTitle": "正在錄製", "rejoinNow": "立即重新加入", "remoteControlAllowedMessage": "{{user}} 接受您進行遠端控制的請求!", @@ -540,7 +538,7 @@ "viewUpgradeOptionsContent": "若要不受限制地使用錄製、逐字稿、RTMP 串流等進階版功能,您需要升級您的方案。", "viewUpgradeOptionsTitle": "您找到了進階版功能!", "whiteboardLimitContent": "抱歉,已達到白板使用者限制。", - "whiteboardLimitReference": "若要了解詳情,請前往", + "whiteboardLimitReference": "若要了解更多,請前往", "whiteboardLimitReferenceUrl": "我們的網站", "whiteboardLimitTitle": "白板使用受限", "yourEntireScreen": "您的整個螢幕" @@ -619,11 +617,11 @@ "inviteLiveStream": "要查看這場會議的直播串流,點按此連結:{{url}}", "invitePhone": "要用電話參加會議,請使用:{{number}},,{{conferenceID}}#\n", "invitePhoneAlternatives": "要找另一組撥入號碼?\n請見會議撥入號碼:{{url}}\n\n\n如果使用電話撥入,請選擇無需音訊加入:{{silentUrl}}", - "inviteSipEndpoint": "如果要透過SIP地址加入,請輸入:{{sipUri}}", - "inviteTextiOSInviteUrl": "點擊此連結以加入:{{inviteUrl}}。", + "inviteSipEndpoint": "如果要透過 SIP 地址加入,請輸入:{{sipUri}}", + "inviteTextiOSInviteUrl": "點選此連結以加入:{{inviteUrl}}。", "inviteTextiOSJoinSilent": "如果您使用電話撥入,請使用此連結來停用音訊:{{silentUrl}}。", "inviteTextiOSPersonal": "{{name}}邀請您加入會議。", - "inviteTextiOSPhone": "若要透過電話加入,請使用此號碼:{{number}},,{{conferenceID}}#。如果您需要其他號碼,點擊此連結以檢視完整列表:{{didUrl}}。", + "inviteTextiOSPhone": "若要透過電話加入,請使用此號碼:{{number}},,{{conferenceID}}#。如果您需要其他號碼,點選此連結以檢視完整列表:{{didUrl}}。", "inviteURLFirstPartGeneral": "您受邀參加會議。", "inviteURLFirstPartPersonal": "{{name}} 正在邀請您加入會議。\n", "inviteURLSecondPart": "\n加入會議:\n{{url}}\n", @@ -699,8 +697,6 @@ "googlePrivacyPolicy": "Google 隱私權政策", "inProgress": "正在錄製或直播", "invalidStreamKey": "直播串流金鑰可能不正確。", - "limitNotificationDescriptionNative": "您的最大直播長度將被限制在 {{limit}} 分鐘,若要不受限的直播,請使用 {{app}}。", - "limitNotificationDescriptionWeb": "由於目前流量過大,您的最大直播長度將被限制在 {{limit}} 分鐘。若要不受限的直播,請使用 {{app}}。", "off": "直播串流已停用", "offBy": "{{name}} 停用了直播串流", "on": "直播串流已啟動", @@ -819,7 +815,7 @@ "disabledIframe": "嵌入僅供示範使用,此通話將於 {{timeout}} 分鐘後中斷連線。", "disabledIframeSecondaryNative": "嵌入 {{domain}} 僅供示範,此通話將於 {{timeout}} 分鐘後中斷。", "disabledIframeSecondaryWeb": "嵌入 {{domain}} 僅供示範,此通話將於 {{timeout}} 分鐘後中斷,請使用 Jitsi 服務 來進行正式嵌入!", - "disconnected": "已經中斷連接", + "disconnected": "已經中斷連線", "displayNotifications": "顯示通知給", "dontRemindMe": "不要再提醒我", "focus": "會議焦點", @@ -1011,7 +1007,7 @@ "callMeAtNumber": "撥打這支號碼:", "calling": "撥打中", "configuringDevices": "設定裝置中…", - "connectedWithAudioQ": "您有連接音訊設備嗎?", + "connectedWithAudioQ": "您已接通會議音訊了嗎?", "connection": { "failed": "連線測試失敗!", "good": "您的連線品質良好!", @@ -1023,7 +1019,7 @@ "audioClipping": "您的音訊將會斷斷續續。", "audioHighQuality": "您的音訊品質極佳。", "audioLowNoVideo": "您的音訊品質較差,且無視訊功能。", - "goodQuality": "太好了!您的媒體品質良好。", + "goodQuality": "太好了!您的媒體品質良好。", "noMediaConnectivity": "我們無法為此測試建立媒體連線,通常是防火牆或 NAT 的問題。", "noVideo": "您的視訊畫質將會很糟糕。", "testFailed": "連線測試遇到異常,但不一定會影響會議。", @@ -1040,7 +1036,7 @@ "dialing": "撥號中", "doNotShow": "不再顯示", "errorDialOut": "無法撥出", - "errorDialOutDisconnected": "無法撥出,已斷開連接", + "errorDialOutDisconnected": "無法撥出,已斷開連線", "errorDialOutFailed": "無法撥出,通話失敗", "errorDialOutStatus": "取得撥出狀態時發生錯誤", "errorMissingName": "請輸入您的名字以加入會議", @@ -1073,7 +1069,7 @@ "connected": "已連線", "connecting": "連線中…", "connecting2": "連線中*…", - "disconnected": "已經中斷連接", + "disconnected": "已經中斷連線", "expired": "逾時未接", "ignored": "忽略不接", "initializingCall": "通話初始化中…", @@ -1122,8 +1118,6 @@ "highlightMomentSuccess": "已精選的時刻", "highlightMomentSucessDescription": "您的精選時刻將新增至會議摘要。", "inProgress": "正在錄製或直播", - "limitNotificationDescriptionNative": "由於目前流量過大,您的錄製時間被限制在 {{limit}} 分鐘。若要無限制的錄製,請試試 <3>{{app}}。", - "limitNotificationDescriptionWeb": "由於目前流量過大,您的錄製時間被限制在 {{limit}} 分鐘。若要無限制的錄製,請試試 {{app}}。", "linkGenerated": "我們建立了您的錄製檔案的連結。", "localRecordingNoNotificationWarning": "系統不會主動知會與會者錄製已開啟,主持人需另行通知。", "localRecordingNoVideo": "沒有錄製的視訊", @@ -1180,9 +1174,9 @@ "buttonLabel": "設定", "calendar": { "about": "{{appName}} 行事曆整合功能可安全地存取您行事曆中即將舉行的活動。", - "disconnect": "中斷連接", + "disconnect": "解除連結", "microsoftSignIn": "使用 Microsoft 帳號登入", - "signedIn": "目前正在存取 {{email}} 的行事曆事件,點按下方中斷連接可以停用存取行事曆事件。", + "signedIn": "目前正在存取 {{email}} 的行事曆事件,點按下方解除連結可以停用存取行事曆事件。", "title": "行事曆" }, "chatWithPermissions": "聊天功能需取得權限", @@ -1289,7 +1283,7 @@ }, "suspendedoverlay": { "rejoinKeyTitle": "重新加入", - "text": "按下 重新加入 按鈕以重新連接。", + "text": "按下 重新加入 按鈕以重新連線。", "title": "由於電腦進入休眠,您的視訊通話已經中斷。" }, "termsView": { @@ -1352,7 +1346,7 @@ "muteEveryoneElse": "其他人全部靜音", "muteEveryoneElsesVideoStream": "停止其他人的視訊", "muteEveryonesVideoStream": "停止所有人的視訊", - "muteGUMPending": "正在連接您的麥克風", + "muteGUMPending": "正在準備您的麥克風", "noiseSuppression": "雜訊抑制(BETA)", "openChat": "打開聊天", "participants": "打開與會者窗格", @@ -1387,7 +1381,7 @@ "unmute": "取消靜音", "videoblur": "切換視訊模糊", "videomute": "停用網路攝影機", - "videomuteGUMPending": "正在連接您的網路攝影機", + "videomuteGUMPending": "正在準備您的網路攝影機", "videounmute": "啟用網路攝影機" }, "addPeople": "新增人員到您的通話中", @@ -1454,7 +1448,7 @@ "mute": "靜音/解除靜音", "muteEveryone": "靜音所有人", "muteEveryonesVideo": "停用所有人的網路攝影機", - "muteGUMPending": "正在連接您的麥克風", + "muteGUMPending": "正在準備您的麥克風", "noAudioSignalDesc": "如果您沒有特別從系統設定或硬體靜音,請考慮更換裝置。", "noAudioSignalDescSuggestion": "如果您沒有特別從系統設定或硬體靜音,請考慮切換至建議裝置。", "noAudioSignalDialInDesc": "您亦可使用下述方式撥入:", @@ -1502,7 +1496,7 @@ "unmute": "取消靜音", "videoSettings": "視訊設定", "videomute": "切換網路攝影機", - "videomuteGUMPending": "正在連接您的網路攝影機", + "videomuteGUMPending": "正在準備您的網路攝影機", "videounmute": "啟用網路攝影機" }, "transcribing": { @@ -1524,7 +1518,7 @@ }, "unpinParticipant": "{{participantName}} - 取消釘選", "userMedia": { - "grantPermissions": "請允許使用您的網路攝影機和麥克風的權限." + "grantPermissions": "請允許使用您的網路攝影機和麥克風的權限。" }, "videoSIPGW": { "busy": "我們正在釋放資源,請過幾分鐘後再試。", @@ -1637,7 +1631,7 @@ "volumeSlider": "音量滑桿", "welcomepage": { "accessibilityLabel": { - "join": "點擊加入", + "join": "輕觸以加入", "roomname": "輸入會議室名稱" }, "addMeetingName": "新增會議名稱", @@ -1647,8 +1641,8 @@ "video": "視訊" }, "calendar": "行事曆", - "connectCalendarButton": "連接您的行事曆", - "connectCalendarText": "連接您的行事曆來查看在 {{app}} 中的會議。此外,增加 {{provider}} 的會議至自己的行事曆,只要點按一下即可啟動。", + "connectCalendarButton": "連結您的行事曆", + "connectCalendarText": "連結您的行事曆來查看在 {{app}} 中的會議。此外,增加 {{provider}} 的會議至自己的行事曆,只要點按一下即可啟動。", "enterRoomTitle": "啟動新的會議", "getHelp": "取得協助", "go": "開始", diff --git a/lang/main.json b/lang/main.json index 5b7ccc2672a4..b9ce97430f15 100644 --- a/lang/main.json +++ b/lang/main.json @@ -382,7 +382,7 @@ "kickParticipantTitle": "Kick this participant?", "kickSystemTitle": "Ouch! You were kicked out of the meeting", "kickTitle": "Ouch! {{participantDisplayName}} kicked you out of the meeting", - "learnMore": "learn more", + "learnMore": "Learn more", "linkMeeting": "Link meeting", "linkMeetingTitle": "Link meeting to Salesforce", "liveStreaming": "Live Streaming", @@ -392,6 +392,9 @@ "lockRoom": "Add meeting $t(lockRoomPassword)", "lockTitle": "Lock failed", "login": "Login", + "loginFailed": "Login failed.", + "loginOnResume": "Your authentication session has expired. You need to login again to continue the meeting.", + "loginPopupBlocked": "Login popup was blocked by your browser.", "loginQuestion": "Are you sure you want to login and leave the conference?", "logoutQuestion": "Are you sure you want to logout and leave the conference?", "logoutTitle": "Logout", @@ -452,9 +455,7 @@ "recentlyUsedObjects": "Your recently used objects", "recording": "Recording", "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Not possible while a live stream is active", - "recordingInProgressDescription": "This meeting is being recorded and analyzed by AI{{learnMore}}. Your audio and video have been muted. If you choose to unmute, you consent to being recorded.", - "recordingInProgressDescriptionFirstHalf": "This meeting is being recorded and analyzed by AI", - "recordingInProgressDescriptionSecondHalf": ". Your audio and video have been muted. If you choose to unmute, you consent to being recorded.", + "recordingInProgressDescription": "This meeting is being recorded and analyzed by AI. Your audio and video have been muted. If you choose to unmute, you consent to being recorded.", "recordingInProgressTitle": "Recording in progress", "rejoinNow": "Rejoin now", "remoteControlAllowedMessage": "{{user}} accepted your remote control request!", @@ -477,6 +478,8 @@ "screenSharingFailed": "Oops! Something went wrong, we weren't able to start screen sharing!", "screenSharingFailedTitle": "Screen sharing failed!", "screenSharingPermissionDeniedError": "Oops! Something went wrong with your screen sharing permissions. Please reload and try again.", + "screenshareStoppedDiskSpace": "This happens if you used the macOS's floating toolbar to stop screen sharing. It may also be due to low disk space.", + "screenshareStoppedTitle": "Screen sharing stopped via system", "searchInSalesforce": "Search in Salesforce", "searchResults": "Search results({{count}})", "searchResultsDetailsError": "Something went wrong while retrieving owner data.", @@ -707,6 +710,7 @@ "changeSignIn": "Switch accounts.", "choose": "Choose a live stream", "chooseCTA": "Choose a streaming option. You're currently logged in as {{email}}.", + "chooseCTAWithChangeSignIn": "Choose a streaming option. You're currently logged in as {{email}}. <0>Switch accounts.", "enterStreamKey": "Enter your YouTube live stream key here.", "error": "Live Streaming failed. Please try again.", "errorAPI": "An error occurred while accessing your YouTube broadcasts. Please try logging in again.", @@ -719,8 +723,6 @@ "googlePrivacyPolicy": "Google Privacy Policy", "inProgress": "Recording or live streaming in progress", "invalidStreamKey": "Live stream key may be incorrect.", - "limitNotificationDescriptionNative": "Your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.", - "limitNotificationDescriptionWeb": "Due to high demand your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.", "off": "Live Streaming stopped", "offBy": "{{name}} stopped the live streaming", "on": "Live Streaming started", @@ -737,6 +739,7 @@ "streamIdHelp": "What's this?", "title": "Live Stream", "unavailableTitle": "Live Streaming unavailable", + "youTubeGoLiveWarning": "Remember to click 'Go Live' in YouTube Studio if Auto-Start/Auto-Stop are disabled. Otherwise the stream will not begin recording.", "youtubeTerms": "YouTube terms of services" }, "lobby": { @@ -1317,8 +1320,6 @@ "highlightMomentSuccess": "Moment highlighted", "highlightMomentSucessDescription": "Your highlighted moment will be added to the meeting summary.", "inProgress": "Recording or live streaming in progress", - "limitNotificationDescriptionNative": "Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try <3>{{app}}.", - "limitNotificationDescriptionWeb": "Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try {{app}}.", "linkGenerated": "We have generated a link to your recording.", "localRecordingNoNotificationWarning": "The recording will not be announced to other participants. You will need to let them know that the meeting is recorded.", "localRecordingNoVideo": "Video is not being recorded", @@ -1332,8 +1333,12 @@ "noStreams": "No audio or video stream detected.", "off": "Recording stopped", "offBy": "{{name}} stopped the recording", + "offByWithTranscription": "{{name}} stopped the recording and transcription", + "offWithTranscription": "Recording and transcription stopped", "on": "Recording started", "onBy": "{{name}} started the recording", + "onByWithTranscription": "{{name}} started the recording. A transcript will also be available after the meeting.", + "onWithTranscription": "Recording started. A transcript will also be available after the meeting.", "onlyRecordSelf": "Record only my audio and video streams", "pending": "Preparing to record the meeting…", "policyError": "You tried to start a recording too quickly. Please try again later!", @@ -1716,6 +1721,10 @@ "failed": "Transcribing failed", "labelTooltip": "This meeting is being transcribed.", "labelTooltipExtra": "In addition, a transcript will be available later.", + "off": "Transcription stopped", + "on": "Transcription started", + "onBy": "{{name}} started the transcription", + "onWithRecording": "A transcript will also be available after the meeting.", "openClosedCaptions": "Open closed captions", "original": "Original", "sourceLanguageDesc": "Currently the meeting language is set to {{sourceLanguage}}.
You can change it from ", @@ -1798,6 +1807,7 @@ "addBackground": "Upload background", "apply": "Apply", "backgroundEffectError": "Failed to apply background effect.", + "backgroundLimitReached": "Custom background limit reached", "blur": "Blur", "deleteImage": "Delete image", "desktopShare": "Desktop share", @@ -1810,6 +1820,7 @@ "image6": "Forest ", "image7": "Sunrise", "none": "None", + "oldestBackgroundRemoved": "The oldest custom background has been removed to add the new one.", "pleaseWait": "Please wait…", "removeBackground": "Remove background", "slightBlur": "Half Blur", diff --git a/modules/API/API.js b/modules/API/API.js index 7c87172a96e1..5b75033d0b53 100755 --- a/modules/API/API.js +++ b/modules/API/API.js @@ -108,9 +108,14 @@ import { } from '../../react/features/participants-pane/actions'; import { getParticipantsPaneOpen } from '../../react/features/participants-pane/functions'; import { hidePiP, showPiP } from '../../react/features/pip/actions'; -import { startLocalVideoRecording, stopLocalVideoRecording } from '../../react/features/recording/actions.any'; +import { + setStartRecordingIntent, + setStopRecordingIntent, + startLocalVideoRecording, + stopLocalVideoRecording +} from '../../react/features/recording/actions.any'; import { grantRecordingConsent, grantRecordingConsentAndUnmute } from '../../react/features/recording/actions.web'; -import { RECORDING_TYPES } from '../../react/features/recording/constants'; +import { RECORDING_METADATA_ID, RECORDING_TYPES } from '../../react/features/recording/constants'; import { getActiveSession, supportsLocalRecording } from '../../react/features/recording/functions'; import { startAudioScreenShareFlow, startScreenShareFlow } from '../../react/features/screen-share/actions'; import { isScreenAudioSupported } from '../../react/features/screen-share/functions'; @@ -798,13 +803,37 @@ function initCommands() { APP.store.dispatch(toggleScreenshotCaptureSummary(true)); } + const wantsRecording = mode === JitsiRecordingConstants.mode.FILE; + const wantsTranscription = Boolean(transcription); + + // Seed startRecordingIntent so maybeNotifyRecordingStart can coordinate + // the start sound/notification once recording (and transcription, if + // requested) resolve. Without this, notifyRecordingLinkAvailable is + // never emitted for iFrame-initiated recordings. + if (wantsRecording || wantsTranscription) { + APP.store.dispatch(setStartRecordingIntent({ + recording: wantsRecording, + transcription: wantsTranscription + })); + } + // Start audio / video recording, if requested. if (typeof recordingConfig !== 'undefined') { conference.startRecording(recordingConfig); } - if (transcription) { - APP.store.dispatch(setRequestingSubtitles(true, false, null, true)); + // Update room metadata so remote participants see the combined + // recording/transcription intent. When transcription is requested, + // setRequestingSubtitles routes through the subtitles middleware + // which writes both metadata fields atomically; otherwise we write + // the recording-only metadata directly, mirroring the start dialog. + if (wantsTranscription) { + APP.store.dispatch(setRequestingSubtitles(true, false, null, true, wantsRecording)); + } else if (wantsRecording) { + conference.getMetadataHandler().setMetadata(RECORDING_METADATA_ID, { + isRecordingRequested: true, + isTranscribingEnabled: false + }); } }, @@ -825,11 +854,10 @@ function initCommands() { return; } - if (transcription) { - APP.store.dispatch(setRequestingSubtitles(false, false, null, true)); - } - if (mode === 'local') { + if (transcription) { + APP.store.dispatch(setRequestingSubtitles(false, false, null, true)); + } APP.store.dispatch(stopLocalVideoRecording()); return; @@ -842,13 +870,34 @@ function initCommands() { } const activeSession = getActiveSession(state, mode); + const wantsStopRecording = mode === JitsiRecordingConstants.mode.FILE && Boolean(activeSession); + const wantsStopTranscription = Boolean(transcription); + + // Seed stopRecordingIntent so maybeNotifyRecordingStop can coordinate + // the off sound/notification across recording and transcription stops. + if (wantsStopRecording || wantsStopTranscription) { + APP.store.dispatch(setStopRecordingIntent({ + recording: wantsStopRecording, + transcription: wantsStopTranscription + })); + } - if (activeSession && activeSession.id) { - APP.store.dispatch(toggleScreenshotCaptureSummary(false)); - conference.stopRecording(activeSession.id); - } else { - logger.error('No recording or streaming session found'); + if (wantsStopTranscription) { + APP.store.dispatch(setRequestingSubtitles(false, false, null, true)); + } + + // Mirror AbstractStopRecordingDialog — clear both fields atomically so + // remote clients see the end of the recording/transcription intent. + // Covers recording-only, transcription-only, and combined stops. + if (wantsStopRecording || wantsStopTranscription) { + conference.getMetadataHandler().setMetadata(RECORDING_METADATA_ID, { + isRecordingRequested: false, + isTranscribingEnabled: false + }); } + + APP.store.dispatch(toggleScreenshotCaptureSummary(false)); + conference.stopRecording(activeSession?.id); }, 'initiate-private-chat': participantId => { const state = APP.store.getState(); @@ -1493,19 +1542,29 @@ class API { * @returns {void} */ notifyReceivedChatMessage( - { body, from, nick, privateMessage, ts } = {}) { + { body, from, nick, privateMessage, ts, messageId, replyToMessageId } = {}) { if (APP.conference.isLocalId(from)) { return; } - this._sendEvent({ + const event = { name: 'incoming-message', from, message: body, nick, privateMessage, stamp: ts - }); + }; + + if (typeof messageId === 'string' && messageId !== '') { + event.messageId = messageId; + } + + if (typeof replyToMessageId === 'string' && replyToMessageId !== '') { + event.replyToMessageId = replyToMessageId; + } + + this._sendEvent(event); } /** @@ -2325,6 +2384,7 @@ class API { * @returns {void} */ notifyPictureInPictureRequested() { + logger.debug('Sending _pip-requested event to External API'); this._sendEvent({ name: '_pip-requested' }); @@ -2336,6 +2396,7 @@ class API { * @returns {void} */ notifyPictureInPictureEntered() { + logger.debug('Sending pip-entered event to External API'); this._sendEvent({ name: 'pip-entered' }); @@ -2347,6 +2408,7 @@ class API { * @returns {void} */ notifyPictureInPictureLeft() { + logger.debug('Sending pip-left event to External API'); this._sendEvent({ name: 'pip-left' }); diff --git a/modules/API/external/external_api.js b/modules/API/external/external_api.js index 04ca95ead351..9ca7bf973346 100644 --- a/modules/API/external/external_api.js +++ b/modules/API/external/external_api.js @@ -775,7 +775,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter { * @returns {void} * * @deprecated - * NOTE: This method is not removed for backward comatability purposes. + * NOTE: This method is not removed for backward compatibility purposes. */ addEventListener(event, listener) { this.on(event, listener); @@ -806,7 +806,11 @@ export default class JitsiMeetExternalAPI extends EventEmitter { * {{ * 'from': from,//JID of the user that sent the message * 'nick': nick,//the nickname of the user that sent the message - * 'message': txt//the text of the message + * 'message': txt,//the text of the message + * 'privateMessage': privateMessage,//whether the message is private + * 'stamp': stamp,//optional timestamp when available + * 'messageId': messageId,//optional XMPP message id when available + * 'replyToMessageId': replyToMessageId//optional XEP-0461 reply target message id when available * }} * {@code outgoingMessage} - receives event notifications about outgoing * messages. The listener will receive object with the following structure: @@ -862,7 +866,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter { * @returns {void} * * @deprecated - * NOTE: This method is not removed for backward comatability purposes. + * NOTE: This method is not removed for backward compatibility purposes. */ addEventListeners(listeners) { for (const event in listeners) { // eslint-disable-line guard-for-in @@ -1413,7 +1417,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter { * @returns {void} * * @deprecated - * NOTE: This method is not removed for backward comatability purposes. + * NOTE: This method is not removed for backward compatibility purposes. */ removeEventListener(event) { this.removeAllListeners(event); @@ -1426,7 +1430,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter { * @returns {void} * * @deprecated - * NOTE: This method is not removed for backward comatability purposes. + * NOTE: This method is not removed for backward compatibility purposes. */ removeEventListeners(eventList) { eventList.forEach(event => this.removeEventListener(event)); diff --git a/modules/UI/UI.js b/modules/UI/UI.js index eaa26b8b6d47..140682b9a628 100644 --- a/modules/UI/UI.js +++ b/modules/UI/UI.js @@ -3,15 +3,11 @@ const UI = {}; -import Logger from '@jitsi/logger'; - import { conferenceWillInit } from '../../react/features/base/conference/actions'; import { isMobileBrowser } from '../../react/features/base/environment/utils'; import { setColorAlpha } from '../../react/features/base/util/helpers'; -import { sanitizeUrl } from '../../react/features/base/util/uri'; -import { setDocumentUrl } from '../../react/features/etherpad/actions'; import { setNotificationsEnabled, showNotification @@ -28,8 +24,6 @@ import EtherpadManager from './etherpad/Etherpad'; import UIUtil from './util/UIUtil'; import VideoLayout from './videolayout/VideoLayout'; -const logger = Logger.getLogger('ui:core'); - let etherpadManager; /** @@ -117,24 +111,17 @@ UI.unbindEvents = () => { /** * Setup and show Etherpad. - * @param {string} name etherpad id */ -UI.initEtherpad = name => { - const { getState, dispatch } = APP.store; +UI.initEtherpad = () => { + const { getState } = APP.store; const configState = getState()['features/base/config']; - const etherpadBaseUrl = sanitizeUrl(configState.etherpad_base); - if (etherpadManager || !etherpadBaseUrl || !name) { + if (etherpadManager) { return; } - logger.log('Etherpad is enabled'); etherpadManager = new EtherpadManager(); - const url = new URL(name, etherpadBaseUrl); - - dispatch(setDocumentUrl(url.toString())); - if (configState.openSharedDocumentOnJoin) { etherpadManager.toggleEtherpad(); } diff --git a/modules/UI/videolayout/LargeVideoManager.js b/modules/UI/videolayout/LargeVideoManager.js index 7c10c40f911c..6804a4a10de7 100644 --- a/modules/UI/videolayout/LargeVideoManager.js +++ b/modules/UI/videolayout/LargeVideoManager.js @@ -3,7 +3,7 @@ import Logger from '@jitsi/logger'; import $ from 'jquery'; import React from 'react'; -import ReactDOM from 'react-dom'; +import { createRoot } from 'react-dom/client'; import { I18nextProvider } from 'react-i18next'; import { Provider } from 'react-redux'; @@ -111,6 +111,18 @@ export default class LargeVideoManager { */ this.height = 0; + /** + * The React root for the dominant speaker avatar. + * @type {import('react-dom/client').Root|null} + */ + this._avatarRoot = null; + + /** + * The React root for the presence label. + * @type {import('react-dom/client').Root|null} + */ + this._presenceLabelRoot = null; + /** * Cache the aspect ratio of the video displayed to detect changes to * the aspect ratio on video resize events. @@ -176,8 +188,9 @@ export default class LargeVideoManager { this.removePresenceLabel(); - if (this._dominantSpeakerAvatarContainer) { - ReactDOM.unmountComponentAtNode(this._dominantSpeakerAvatarContainer); + if (this._avatarRoot) { + this._avatarRoot.unmount(); + this._avatarRoot = null; } if (this.container) { @@ -530,13 +543,16 @@ export default class LargeVideoManager { * Updates the src of the dominant speaker avatar */ updateAvatar() { - ReactDOM.render( - React.createElement( - Provider, - { store: APP.store }, - React.createElement(Avatar, { id: "dominantSpeakerAvatar", participantId: this.id, size: 200 }) - ), - this._dominantSpeakerAvatarContainer + if (!this._avatarRoot) { + this._avatarRoot = createRoot(this._dominantSpeakerAvatarContainer); + } + this._avatarRoot.render( + + + ); } @@ -570,20 +586,17 @@ export default class LargeVideoManager { const presenceLabelContainer = document.getElementById('remotePresenceMessage'); if (presenceLabelContainer) { - ReactDOM.render( - React.createElement( - Provider, - { store: APP.store }, - React.createElement( - I18nextProvider, - { i18n: i18next }, - React.createElement(PresenceLabel, { - participantID: id, - className: "presence-label" - }) - ) - ), - presenceLabelContainer + if (!this._presenceLabelRoot) { + this._presenceLabelRoot = createRoot(presenceLabelContainer); + } + this._presenceLabelRoot.render( + + + + + ); } } @@ -594,10 +607,9 @@ export default class LargeVideoManager { * @returns {void} */ removePresenceLabel() { - const presenceLabelContainer = document.getElementById('remotePresenceMessage'); - - if (presenceLabelContainer) { - ReactDOM.unmountComponentAtNode(presenceLabelContainer); + if (this._presenceLabelRoot) { + this._presenceLabelRoot.unmount(); + this._presenceLabelRoot = null; } } diff --git a/modules/UI/videolayout/VideoContainer.js b/modules/UI/videolayout/VideoContainer.js index ad251b044939..e13f3ef04445 100644 --- a/modules/UI/videolayout/VideoContainer.js +++ b/modules/UI/videolayout/VideoContainer.js @@ -4,7 +4,7 @@ import Logger from '@jitsi/logger'; import $ from 'jquery'; import React from 'react'; -import ReactDOM from 'react-dom'; +import { createRoot } from 'react-dom/client'; import { browser } from '../../../react/features/base/lib-jitsi-meet'; import { FILMSTRIP_BREAKPOINT } from '../../../react/features/filmstrip/constants'; @@ -226,6 +226,13 @@ export class VideoContainer extends LargeContainer { */ this._backgroundOrientation = null; + /** + * The React root for the large video background component. + * @private + * @type {import('react-dom/client').Root|null} + */ + this._backgroundRoot = null; + /** * Flag indicates whether or not the background should be rendered. * If the background will not be visible then it is hidden to save @@ -711,15 +718,20 @@ export class VideoContainer extends LargeContainer { return; } - ReactDOM.render( - React.createElement(LargeVideoBackground, { - hidden: this._hideBackground || this._isHidden, - mirror: this.stream && this.stream.isLocal() && this.localFlipX, - orientationFit: this._backgroundOrientation, - videoElement: this.video, - videoTrack: this.stream - }), - document.getElementById('largeVideoBackgroundContainer') + if (!this._backgroundRoot) { + this._backgroundRoot = createRoot(document.getElementById('largeVideoBackgroundContainer')); + } + this._backgroundRoot.render( +