commit 38ba66346612e2605c197d33867726b280f7e8b3 Author: theluyuan <1162963624@qq.com> Date: Tue Sep 2 14:49:16 2025 +0800 init diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..5224197 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Jitsi Meet Dev Container", + "image": "mcr.microsoft.com/devcontainers/universal:2", + "features": { + "ghcr.io/devcontainers/features/node:1": { + "version": "20" + } + }, + "hostRequirements": { + "cpus": 4, + "memory": "8gb", + "storage": "32gb" + }, + "postCreateCommand": "bash -i -c 'nvm use && npm install && cp tsconfig.web.json tsconfig.json'" +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..bb22bbb --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# http://editorconfig.org +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +max_line_length = 120 +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[Makefile] +indent_style = tab diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e37ebe8 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,24 @@ +# The build artifacts of the jitsi-meet project. +build/* + +doc/* + +# Third-party source code which we (1) do not want to modify or (2) try to +# modify as little as possible. +libs/* +resources/* +react/features/stream-effects/virtual-background/vendor/* +react/features/face-landmarks/resources/* + +# ESLint will by default ignore its own configuration file. However, there does +# not seem to be a reason why we will want to risk being inconsistent with our +# remaining JavaScript source code. +!.eslintrc.js + +# Not worth it. +actionTypes.ts + +# It's not complete until all files are copied at build time. +react-native-sdk/ + +*.d.ts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..9401eb3 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + extends: [ + '@jitsi/eslint-config' + ] +}; diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c52c733 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.bundle.js -text -diff +*.pbxproj -text +lib-jitsi-meet.js -text -diff diff --git a/.github/ISSUE_TEMPLATE/1-bug.yml b/.github/ISSUE_TEMPLATE/1-bug.yml new file mode 100644 index 0000000..f1591f3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-bug.yml @@ -0,0 +1,53 @@ +name: Bug report +description: File a bug report and help us improve +body: + - type: markdown + attributes: + value: | + This issue tracker is only for reporting bugs and tracking issues related to the source code. + + **Before posting, please make sure to check if the same or similar bugs have already been reported.** + + ⚠️ General questions regarding usage, installation, etc. should be posted in our [community forum](https://community.jitsi.org). + - type: textarea + attributes: + label: What happened? + description: Please describe the problem. Be as detailed as possible. + validations: + required: true + - type: checkboxes + attributes: + label: Platform + description: On what platforms can you reproduce the problem? + options: + - label: Chrome (or Chromium based) + - label: Firefox + - label: Safari + - label: Other desktop browser + - label: Android browser + - label: iOS browser + - label: Electron app + - label: Android mobile app + - label: iOS mobile app + - label: Custom app using a mobile SDK + - type: input + attributes: + label: Browser / app / sdk version + description: Please provide the version of the browser / app / sdk where the problem manifests. + validations: + required: true + - type: textarea + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. The browser console JS logs (if applicable) is a good start. This will be automatically formatted into code, so no need for backticks. + render: shell + - type: checkboxes + attributes: + label: Reproducibility + description: Does the problem reproduce on meet.jit.si using Chrome, Firefox or the official mobile apps? + options: + - label: The problem is reproducible on meet.jit.si + - type: textarea + attributes: + label: More details? + description: Please provide more details in case they apply (such as the Jitsi Meet version you are running, if you are hosting your own server). diff --git a/.github/ISSUE_TEMPLATE/2-feature.yml b/.github/ISSUE_TEMPLATE/2-feature.yml new file mode 100644 index 0000000..ec67ba1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-feature.yml @@ -0,0 +1,22 @@ +name: Feature request +description: Suggest an idea for Jitsi Meet +labels: ["feature-request"] +body: + - type: markdown + attributes: + value: | + Thank you for suggesting an idea to make Jitsi Meet better. + + **Note**: the ultimate decision for implementing features lies on the Jitsi team, not all feature requests shall be accepted. + - type: textarea + attributes: + label: What problem are you trying to solve? + description: Tell us what problem your feature request would solve. + - type: textarea + attributes: + label: What solution would you like to see? + description: Please describe the desired behavior or feature. + - type: textarea + attributes: + label: Is there an alternative? + description: Please describe alternative solutions or features you have considered. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..35d5e69 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Need help with your Jitsi Meet installation? + url: https://community.jitsi.org + about: Please ask it in our community forum. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..6ef3510 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ + diff --git a/.github/workflows/ci-lua.yml b/.github/workflows/ci-lua.yml new file mode 100644 index 0000000..25972cc --- /dev/null +++ b/.github/workflows/ci-lua.yml @@ -0,0 +1,26 @@ +name: Lua CI + +on: [pull_request] + +jobs: + luacheck: + name: Luacheck + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install luarocks + run: sudo apt-get --install-recommends -y install luarocks + + - name: Install luacheck + run: sudo luarocks install luacheck + + - name: Check lua codes + run: | + set -o pipefail && luacheck . \ + --exclude-files=resources/prosody-plugins/mod_firewall/mod_firewall.lua | awk -F: ' + { + print $0 + printf "::warning file=%s,line=%s,col=%s::%s\n", $1, $2, $3, $4 + } + ' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0404143 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,185 @@ +name: Simple CI + +on: [pull_request] + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - name: Check Node / npm versions + run: | + node -v + npm -v + - name: Get changed files + id: changed-files + uses: jitsi/changed-files@main + - name: Get changed lang files + id: lang-files + run: echo "all=$(echo "${{ steps.changed-files.outputs.all_changed_files }}" | grep -oE 'lang\/\S+' | tr '\n' ' ')" >> "$GITHUB_OUTPUT" + - run: npm install + - name: Check git status + run: git status + - name: Normalize lang files to ensure sorted + if: steps.lang-files.outputs.all + run: npm run lang-sort + - name: Check lang files are formatted correctly + if: steps.lang-files.outputs.all + run: npm run lint:lang + - name: Check if the git repository is clean + run: $(exit $(git status --porcelain --untracked-files=no | head -255 | wc -l)) || (echo "Dirty git tree"; git diff; exit 1) + - run: npm run lint:ci && npm run tsc:ci + frontend: + name: Build Frontend + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, ubuntu-latest] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - name: Check Node / npm versions + run: | + node -v + npm -v + - run: npm install + - run: make + - name: Check config.js syntax + run: node config.js + android-rn-bundle-build: + name: Build mobile bundle (Android) + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - name: Check Node / npm versions + run: | + node -v + npm -v + - run: npm install + - run: npx react-native bundle --entry-file react/index.native.js --platform android --bundle-output /tmp/android.bundle --reset-cache + ios-rn-bundle-build: + name: Build mobile bundle (iOS) + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - name: Check Node / npm versions + run: | + node -v + npm -v + - run: npm install + - name: setup Xcode + run: | + uname -a + xcode-select -p + sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + xcodebuild -version + - name: setup-cocoapods + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.4' + bundler-cache: true + - run: npx react-native info + - name: Install Pods + working-directory: ./ios + run: bundle exec pod install --repo-update --deployment + - run: npx react-native bundle --entry-file react/index.native.js --platform ios --bundle-output /tmp/ios.bundle --reset-cache + android-sdk-build: + name: Build mobile SDK (Android) + runs-on: ubuntu-latest + container: reactnativecommunity/react-native-android:v18.0 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - name: Check Node / npm versions + run: | + node -v + npm -v + - run: npm install + - run: | + cd android + ./gradlew :sdk:clean + ./gradlew :sdk:assembleRelease + ios-sdk-build: + name: Build mobile SDK (iOS) + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - name: Check Node / npm versions + run: | + node -v + npm -v + - run: npm install + - name: setup Xcode + run: | + uname -a + xcode-select -p + sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + xcodebuild -version + - name: setup-cocoapods + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.4' + bundler-cache: true + - run: npx react-native info + - name: Install Pods + working-directory: ./ios + run: bundle exec pod install --repo-update --deployment + - run: | + xcodebuild clean \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDK + xcodebuild archive \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDK \ + -configuration Release \ + -sdk iphoneos \ + -destination='generic/platform=iOS' \ + -archivePath ios/sdk/out/ios-device \ + SKIP_INSTALL=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES + xcodebuild -create-xcframework \ + -framework ios/sdk/out/ios-device.xcarchive/Products/Library/Frameworks/JitsiMeetSDK.framework \ + -output ios/sdk/out/JitsiMeetSDK.xcframework + - run: ls -lR ios/sdk/out + debian-build: + name: Test Debian packages build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - name: Check Node / npm versions + run: | + node -v + npm -v + - run: npm install + - run: make + - run: sudo apt-get install -y debhelper + - run: dpkg-buildpackage -A -rfakeroot -us -uc -d + - run: make source-package diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..037a37b --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,21 @@ +name: 'Close stale issues and PRs' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v8 + 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.' + stale-issue-label: 'stale' + stale-pr-label: 'stale' + exempt-issue-labels: 'confirmed,help-needed' + exempt-pr-labels: 'confirmed' + days-before-issue-stale: 60 + days-before-pr-stale: 90 + days-before-issue-close: 10 + days-before-pr-close: 10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0628149 --- /dev/null +++ b/.gitignore @@ -0,0 +1,120 @@ +*.swp +.*.tmp +deploy-local.sh +libs/ +all.css +*css.map +.remote-sync.json +.sync-config.cson + +# CocoaPods +Pods/ + +# The following are automatically generated by the react-native command line +# utility (either with the init or upgrade option which pull in the latest +# template files recommended by Facebook for React Native). + +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.dSYM.zip +*.xcuserstate +project.xcworkspace +**/.xcode.env.local + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# BUCK +# +buck-out/ +\.buckd/ +*.keystore + +# fastlane +# +.bundle/ +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/test_output + +# Build artifacts +*.jsbundle +*.framework +android/app/debug +android/app/release +ios/sdk/out + +# precommit-hook +.jshintignore +.jshintrc + +# VSCode files +android/.project +android/.settings/org.eclipse.buildship.core.prefs + +# Secrets +android/app/dropbox.key +android/app/google-services.json +ios/app/dropbox.key +ios/app/GoogleService-Info.plist + +.vscode + +# TWA +twa/*.apk +twa/*.aab +twa/assetlinks.json + +tsconfig.json + +# React Native SDK +# +react-native-sdk/*.tgz +react-native-sdk/android/src +!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/JitsiMeetReactNativePackage.java +!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java +!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/JMOngoingConferenceModule.java +!react-native-sdk/android/src/main/java/org/jitsi/meet/sdk/RNOngoingNotification.java +react-native-sdk/images +react-native-sdk/ios +react-native-sdk/lang +react-native-sdk/modules +react-native-sdk/node_modules +react-native-sdk/react +react-native-sdk/service +react-native-sdk/sounds + +# tests +tests/.env +test-results + diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 0000000..148df09 --- /dev/null +++ b/.luacheckrc @@ -0,0 +1,8 @@ +global = false +unused = false +redefined = false +ignore = { "581" } +max_line_length = false +color = false +formatter = "plain" +quiet = 1 diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..6bc0e13 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +package-lock=true +; FIXME Set legacy-peer-deps=false when we upgrade RN. +legacy-peer-deps=true diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..2bd5a0a --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22 diff --git a/.watchmanconfig b/.watchmanconfig new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.watchmanconfig @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..db57433 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,20 @@ +# Follow Our Updated Guide to See How You Can Contribute + +**Hello there! 👋** + +We're thrilled that you're eager to contribute to **Jitsi Meet! ❤️** + +Your interest in improving our platform means a lot to us. To ensure your contributions align seamlessly with our goals and processes, we've recently updated our guide. This guide will provide you with clear instructions on how to get involved effectively. + +### 📖 Get Started + +Ready to get started? Head over to our [Jitsi Meet Handbook](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-contributing/) and let's make **Jitsi Meet** even better together! + +### 💬 Join the Discussion + +Have questions or need help? Join our community discussions on the [Jitsi Forum](https://community.jitsi.org/) where contributors and maintainers can assist you. + +### ❗️Additional Note +Before sending us your code, double-check that it meets our coding standards. You can do this by running a command: `npm run lint`. If there are any issues, don't worry! You can fix them by running: `npm run lint-fix`. Once your code passes these checks, feel free to submit your pull request. + +**Happy coding!** diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..3fc60dc --- /dev/null +++ b/Gemfile @@ -0,0 +1,16 @@ +source "https://rubygems.org" + +ruby ">= 3.4.0" + +gem "cocoapods", "~> 1.16" + +# (Optional) Fastlane for automation +gem "fastlane" +gem "abbrev" +gem "logger" +gem "mutex_m" +gem "csv" +gem "bigdecimal" + +# (Optional) Bundler itself to ensure consistency +gem "bundler" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..edf2a4e --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,331 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.7) + base64 + nkf + rexml + abbrev (0.1.2) + activesupport (7.2.2.1) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) + artifactory (3.0.17) + atomos (0.1.3) + aws-eventstream (1.3.1) + aws-partitions (1.1050.0) + aws-sdk-core (3.218.1) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.992.0) + aws-sigv4 (~> 1.9) + base64 + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.98.0) + aws-sdk-core (~> 3, >= 3.216.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.181.0) + aws-sdk-core (~> 3, >= 3.216.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.11.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + base64 (0.2.0) + benchmark (0.4.0) + bigdecimal (3.1.9) + claide (1.1.0) + cocoapods (1.16.2) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.16.2) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 2.1, < 3.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.27.0, < 2.0) + cocoapods-core (1.16.2) + activesupport (>= 5.0, < 8) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (2.1) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + concurrent-ruby (1.3.5) + connection_pool (2.5.0) + csv (3.3.2) + declarative (0.0.20) + digest-crc (0.7.0) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.6.20240107) + dotenv (2.8.1) + drb (2.2.1) + emoji_regex (3.2.3) + escape (0.0.4) + ethon (0.16.0) + ffi (>= 1.15.0) + excon (0.112.0) + faraday (1.10.4) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.1.0) + multipart-post (~> 2.0) + faraday-net_http (1.0.2) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.1) + faraday (~> 1.0) + fastimage (2.4.0) + fastlane (2.226.0) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored (~> 1.2) + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + fastlane-sirp (>= 1.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-env (>= 1.6.0, < 2.0.0) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + http-cookie (~> 1.0.5) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (>= 2.0.0, < 3.0.0) + naturally (~> 2.2) + optparse (>= 0.1.1, < 1.0.0) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.5) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (~> 3) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.4.0) + xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) + fastlane-sirp (1.0.0) + sysrandom (~> 1.0) + ffi (1.17.1) + ffi (1.17.1-aarch64-linux-gnu) + ffi (1.17.1-aarch64-linux-musl) + ffi (1.17.1-arm-linux-gnu) + ffi (1.17.1-arm-linux-musl) + ffi (1.17.1-arm64-darwin) + ffi (1.17.1-x86-linux-gnu) + ffi (1.17.1-x86-linux-musl) + ffi (1.17.1-x86_64-darwin) + ffi (1.17.1-x86_64-linux-gnu) + ffi (1.17.1-x86_64-linux-musl) + fourflusher (2.3.1) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.54.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-core (0.11.3) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + google-apis-iamcredentials_v1 (0.17.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-playcustomapp_v1 (0.13.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-storage_v1 (0.31.0) + google-apis-core (>= 0.11.0, < 2.a) + google-cloud-core (1.7.1) + google-cloud-env (>= 1.0, < 3.a) + google-cloud-errors (~> 1.0) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.4.0) + google-cloud-storage (1.47.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.31.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.8) + domain_name (~> 0.5) + httpclient (2.8.3) + i18n (1.14.7) + concurrent-ruby (~> 1.0) + jmespath (1.6.2) + json (2.10.1) + jwt (2.10.1) + base64 + logger (1.6.6) + mini_magick (4.13.2) + mini_mime (1.1.5) + minitest (5.25.4) + molinillo (0.8.0) + multi_json (1.15.0) + multipart-post (2.4.1) + mutex_m (0.3.0) + nanaimo (0.4.0) + nap (1.1.0) + naturally (2.2.1) + netrc (0.11.0) + nkf (0.2.0) + optparse (0.6.0) + os (1.1.4) + plist (3.7.2) + public_suffix (4.0.7) + rake (13.2.1) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.4.1) + rouge (3.28.0) + ruby-macho (2.5.1) + ruby2_keywords (0.0.5) + rubyzip (2.4.1) + securerandom (0.4.1) + security (0.1.5) + signet (0.19.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.10) + CFPropertyList + naturally + sysrandom (1.0.5) + terminal-notifier (2.0.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.2) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uber (0.1.0) + unicode-display_width (2.6.0) + word_wrap (1.0.0) + xcodeproj (1.27.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.4.0) + rexml (>= 3.3.6, < 4.0) + xcpretty (0.4.0) + rouge (~> 3.28.0) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-musl + arm64-darwin + ruby + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + abbrev + bigdecimal + bundler + cocoapods (~> 1.16) + csv + fastlane + logger + mutex_m + +RUBY VERSION + ruby 3.4.2p28 + +BUNDLED WITH + 2.6.3 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..da61429 --- /dev/null +++ b/LICENSE @@ -0,0 +1,219 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + + + +Note: + +This project was originally contributed to the community under the MIT license and with the following notice: + +The MIT License (MIT) + +Copyright (c) 2013 ESTOS GmbH +Copyright (c) 2013 BlueJimp SARL + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..456821e --- /dev/null +++ b/Makefile @@ -0,0 +1,128 @@ +BUILD_DIR = build +CLEANCSS = ./node_modules/.bin/cleancss +DEPLOY_DIR = libs +LIBJITSIMEET_DIR = node_modules/lib-jitsi-meet +OLM_DIR = node_modules/@matrix-org/olm +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 +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 +NODE_SASS = ./node_modules/.bin/sass +NPM = npm +OUTPUT_DIR = . +STYLES_BUNDLE = css/all.bundle.css +STYLES_DESTINATION = css/all.css +STYLES_MAIN = css/main.scss +ifeq ($(OS),Windows_NT) + WEBPACK = .\node_modules\.bin\webpack --progress + WEBPACK_DEV_SERVER = .\node_modules\.bin\webpack serve --mode development --progress +else + WEBPACK = ./node_modules/.bin/webpack --progress + WEBPACK_DEV_SERVER = ./node_modules/.bin/webpack serve --mode development --progress +endif + +all: compile deploy + +compile: clean + NODE_OPTIONS=--max-old-space-size=8192 \ + $(WEBPACK) + +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-olm deploy-tf-wasm deploy-css deploy-local deploy-face-landmarks + +deploy-init: + rm -fr $(DEPLOY_DIR) + mkdir -p $(DEPLOY_DIR) + +deploy-appbundle: + cp \ + $(BUILD_DIR)/app.bundle.min.js \ + $(BUILD_DIR)/app.bundle.min.js.map \ + $(BUILD_DIR)/external_api.min.js \ + $(BUILD_DIR)/external_api.min.js.map \ + $(BUILD_DIR)/alwaysontop.min.js \ + $(BUILD_DIR)/alwaysontop.min.js.map \ + $(BUILD_DIR)/face-landmarks-worker.min.js \ + $(BUILD_DIR)/face-landmarks-worker.min.js.map \ + $(BUILD_DIR)/noise-suppressor-worklet.min.js \ + $(BUILD_DIR)/noise-suppressor-worklet.min.js.map \ + $(BUILD_DIR)/screenshot-capture-worker.min.js \ + $(BUILD_DIR)/screenshot-capture-worker.min.js.map \ + $(DEPLOY_DIR) + cp \ + $(BUILD_DIR)/close3.min.js \ + $(BUILD_DIR)/close3.min.js.map \ + $(DEPLOY_DIR) || true + +deploy-lib-jitsi-meet: + cp \ + $(LIBJITSIMEET_DIR)/dist/umd/lib-jitsi-meet.* \ + $(DEPLOY_DIR) + +deploy-olm: + cp \ + $(OLM_DIR)/olm.wasm \ + $(DEPLOY_DIR) + +deploy-tf-wasm: + cp \ + $(TF_WASM_DIR)/*.wasm \ + $(DEPLOY_DIR) + +deploy-rnnoise-binary: + cp \ + $(RNNOISE_WASM_DIR)/rnnoise.wasm \ + $(DEPLOY_DIR) + +deploy-tflite: + cp \ + $(TFLITE_WASM)/*.wasm \ + $(DEPLOY_DIR) + +deploy-excalidraw: + cp -R \ + $(EXCALIDRAW_DIR) \ + $(DEPLOY_DIR)/ + +deploy-excalidraw-dev: + cp -R \ + $(EXCALIDRAW_DIR_DEV) \ + $(DEPLOY_DIR)/ + +deploy-meet-models: + cp \ + $(MEET_MODELS_DIR)/*.tflite \ + $(DEPLOY_DIR) + +deploy-face-landmarks: + cp \ + $(FACE_MODELS_DIR)/blazeface-front.bin \ + $(FACE_MODELS_DIR)/blazeface-front.json \ + $(FACE_MODELS_DIR)/emotion.bin \ + $(FACE_MODELS_DIR)/emotion.json \ + $(DEPLOY_DIR) + +deploy-css: + $(NODE_SASS) $(STYLES_MAIN) $(STYLES_BUNDLE) && \ + $(CLEANCSS) --skip-rebase $(STYLES_BUNDLE) > $(STYLES_DESTINATION) && \ + rm $(STYLES_BUNDLE) + +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-olm deploy-tf-wasm deploy-excalidraw-dev deploy-face-landmarks + $(WEBPACK_DEV_SERVER) + +source-package: compile deploy + mkdir -p source_package/jitsi-meet/css && \ + cp -r *.js *.html resources/*.txt fonts images libs static sounds LICENSE lang source_package/jitsi-meet && \ + cp css/all.css source_package/jitsi-meet/css && \ + (cd source_package ; tar cjf ../jitsi-meet.tar.bz2 jitsi-meet) && \ + rm -rf source_package diff --git a/README.md b/README.md new file mode 100644 index 0000000..d181cc5 --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +#

Jitsi Meet

+ +Jitsi Meet is a set of Open Source projects which empower users to use and deploy +video conferencing platforms with state-of-the-art video quality and features. + +
+ +

+ +

+ +
+ +Amongst others here are the main features Jitsi Meet offers: + +* Support for all current browsers +* Mobile applications +* Web and native SDKs for integration +* HD audio and video +* Content sharing +* Raise hand and reactions +* Chat with private conversations +* Polls +* Virtual backgrounds + +And many more! + +## Using Jitsi Meet + +Using Jitsi Meet is straightforward, as it's browser based. Head over to [meet.jit.si](https://meet.jit.si) and give it a try. It's scalable and free to use. All you need is a Google, Facebook or GitHub account in order to start a meeting. All browsers are supported! + +Using mobile? No problem, you can either use your mobile web browser or our fully-featured +mobile apps: + +| Android | Android (F-Droid) | iOS | +|:-:|:-:|:-:| +| [](https://play.google.com/store/apps/details?id=org.jitsi.meet) | [](https://f-droid.org/packages/org.jitsi.meet/) | [](https://itunes.apple.com/us/app/jitsi-meet/id1165103905) | + +If you are feeling adventurous and want to get an early scoop of the features as they are being +developed you can also sign up for our open beta testing here: + +* [Android](https://play.google.com/apps/testing/org.jitsi.meet) +* [iOS](https://testflight.apple.com/join/isy6ja7S) + +## Running your own instance + +If you'd like to run your own Jitsi Meet installation head over to the [handbook](https://jitsi.github.io/handbook/docs/devops-guide/) to get started. + +We provide Debian packages and a comprehensive Docker setup to make deployments as simple as possible. +Advanced users also have the possibility of building all the components from source. + +You can check the latest releases [here](https://jitsi.github.io/handbook/docs/releases). + +## Jitsi as a Service + +If you like the branding capabilities of running your own instance but you'd like +to avoid dealing with the complexity of monitoring, scaling and updates, JaaS might be +for you. + +[8x8 Jitsi as a Service (JaaS)](https://jaas.8x8.vc) is an enterprise-ready video meeting platform that allows developers, organizations and businesses to easily build and deploy video solutions. With Jitsi as a Service we now give you all the power of Jitsi running on our global platform so you can focus on building secure and branded video experiences. + +## Documentation + +All the Jitsi Meet documentation is available in [the handbook](https://jitsi.github.io/handbook/). + +## Security + +For a comprehensive description of all Jitsi Meet's security aspects, please check [this link](https://jitsi.org/security). + +For a detailed description of Jitsi Meet's End-to-End Encryption (E2EE) implementation, +please check [this link](https://jitsi.org/e2ee-whitepaper/). + +For information on reporting security vulnerabilities in Jitsi Meet, see [SECURITY.md](./SECURITY.md). + +## Contributing + +If you are looking to contribute to Jitsi Meet, first of all, thank you! Please +see our [guidelines for contributing](CONTRIBUTING.md). + +
+
+ + diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..a9f668a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,9 @@ +# Security + +## Reporting security issues + +We take security very seriously and develop all Jitsi projects to be secure and safe. + +If you find (or simply suspect) a security issue in any of the Jitsi projects, please report it to us via [HackerOne](https://hackerone.com/8x8-bounty) or send us an email to security@jitsi.org. + +**We encourage responsible disclosure for the sake of our users, so please reach out before posting in a public space.** diff --git a/_unlock b/_unlock new file mode 100644 index 0000000..d86bac9 --- /dev/null +++ b/_unlock @@ -0,0 +1 @@ +OK diff --git a/android/README.md b/android/README.md new file mode 100644 index 0000000..b69457e --- /dev/null +++ b/android/README.md @@ -0,0 +1,3 @@ +# Jitsi Meet SDK for Android + +This document has been moved to [The Handbook](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk). diff --git a/android/app/.classpath b/android/app/.classpath new file mode 100644 index 0000000..eb19361 --- /dev/null +++ b/android/app/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/android/app/.project b/android/app/.project new file mode 100644 index 0000000..ac485d7 --- /dev/null +++ b/android/app/.project @@ -0,0 +1,23 @@ + + + app + Project app created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/android/app/.settings/org.eclipse.buildship.core.prefs b/android/app/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000..b1886ad --- /dev/null +++ b/android/app/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,2 @@ +connection.project.dir=.. +eclipse.preferences.version=1 diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..a83ba38 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,187 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +// Crashlytics integration is done as part of Firebase now, so it gets +// automagically activated with google-services.json +if (googleServicesEnabled) { + apply plugin: 'com.google.firebase.crashlytics' +} + +// Use the number of seconds/10 since Jan 1 2019 as the versionCode. +// This lets us upload a new build at most every 10 seconds for the +// next ~680 years. +// https://stackoverflow.com/a/38643838 +def vcode = (int) (((new Date().getTime() / 1000) - 1546297200) / 10) + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + + defaultConfig { + applicationId 'org.jitsi.meet' + versionCode vcode + versionName project.appVersion + + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + + ndk { + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' + } + + externalNativeBuild { + cmake { + arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON", "-DANDROID_STL=c++_shared" + cppFlags "-std=c++17" + cFlags "-DANDROID_PLATFORM=android-26" + } + } + } + + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + + buildTypes { + debug { + buildConfigField "boolean", "GOOGLE_SERVICES_ENABLED", "${googleServicesEnabled}" + buildConfigField "boolean", "LIBRE_BUILD", "${rootProject.ext.libreBuild}" + applicationIdSuffix ".debug" + } + release { + // Uncomment the following line for signing a test release build. + // signingConfig signingConfigs.debug + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-release.pro' + buildConfigField "boolean", "GOOGLE_SERVICES_ENABLED", "${googleServicesEnabled}" + buildConfigField "boolean", "LIBRE_BUILD", "${rootProject.ext.libreBuild}" + } + } + + sourceSets { + main { + java { + if (rootProject.ext.libreBuild) { + srcDir "src" + exclude "**/GoogleServicesHelper.java" + } + } + } + } + + compileOptions { + sourceCompatibility rootProject.ext.javaVersion + targetCompatibility rootProject.ext.javaVersion + } + + kotlinOptions { + jvmTarget = rootProject.ext.jvmTargetVersion + } + + kotlin { + jvmToolchain(rootProject.ext.jvmToolchainVersion) + } + + namespace 'org.jitsi.meet' +} + +dependencies { + implementation 'androidx.appcompat:appcompat:1.5.1' + + debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.13' + + if (!rootProject.ext.libreBuild) { + // Sync with react-native-google-signin + implementation 'com.google.android.gms:play-services-auth:20.5.0' + + // Firebase + // - Crashlytics + implementation 'com.google.firebase:firebase-analytics:21.3.0' + implementation 'com.google.firebase:firebase-crashlytics:18.4.3' + } + + implementation project(':sdk') +} + +gradle.projectsEvaluated { + // Dropbox integration + def dropboxAppKey + if (project.file('dropbox.key').exists()) { + dropboxAppKey = project.file('dropbox.key').text.trim() - 'db-' + } + + if (dropboxAppKey) { + android.defaultConfig.resValue('string', 'dropbox_app_key', "${dropboxAppKey}") + + def dropboxActivity = """ + + + + + + + + """ + + android.applicationVariants.all { variant -> + variant.outputs.each { output -> + output.getProcessManifestProvider().get().doLast { + def outputDir = multiApkManifestOutputDirectory.get().asFile + def manifestPath = new File(outputDir, 'AndroidManifest.xml') + def charset = 'UTF-8' + def text + text = manifestPath.getText(charset) + text = text.replace('', "${dropboxActivity}") + manifestPath.write(text, charset) + } + } + } + } + + // Run React packager + android.applicationVariants.all { variant -> + def targetName = variant.name.capitalize() + + def currentRunPackagerTask = tasks.create( + name: "run${targetName}ReactPackager", + type: Exec) { + group = "react" + description = "Run the React packager." + + doFirst { + println "Starting the React packager..." + + def androidRoot = file("${projectDir}/../") + + // Set up the call to the script + workingDir androidRoot + + // Run the packager + commandLine("scripts/run-packager.sh") + } + + // Set up dev mode + def devEnabled = !targetName.toLowerCase().contains("release") + + // Only enable for dev builds + enabled devEnabled + } + + def packageTask = variant.packageApplicationProvider.get() + + packageTask.dependsOn(currentRunPackagerTask) + } +} + +if (googleServicesEnabled) { + apply plugin: 'com.google.gms.google-services' +} diff --git a/android/app/proguard-rules-release.pro b/android/app/proguard-rules-release.pro new file mode 100644 index 0000000..ceedaaf --- /dev/null +++ b/android/app/proguard-rules-release.pro @@ -0,0 +1,10 @@ +-include proguard-rules.pro + +# Crashlytics +-keepattributes *Annotation* +-keepattributes SourceFile,LineNumberTable +-keep public class * extends java.lang.Exception + +# R8 missing classes - suppress warnings +-dontwarn com.facebook.memory.config.MemorySpikeConfig +-dontwarn kotlinx.parcelize.Parcelize diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..8d3cc19 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,98 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# Disabling obfuscation is useful if you collect stack traces from production crashes +# (unless you are using a system that supports de-obfuscate the stack traces). +# -dontobfuscate + +# React Native + +# Keep our interfaces so they can be used by other ProGuard rules. +# See http://sourceforge.net/p/proguard/bugs/466/ +-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip +-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters + +# Do not strip any method/class that is annotated with @DoNotStrip +-keep @com.facebook.proguard.annotations.DoNotStrip class * +-keepclassmembers class * { + @com.facebook.proguard.annotations.DoNotStrip *; +} + +-keep @com.facebook.proguard.annotations.DoNotStripAny class * { + *; +} + +-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { + void set*(***); + *** get*(); +} + +-keep class * implements com.facebook.react.bridge.JavaScriptModule { *; } +-keep class * implements com.facebook.react.bridge.NativeModule { *; } +-keepclassmembers,includedescriptorclasses class * { native ; } +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } + +-dontwarn com.facebook.react.** +-keep,includedescriptorclasses class com.facebook.react.bridge.** { *; } +-keep,includedescriptorclasses class com.facebook.react.turbomodule.core.** { *; } + +# hermes +-keep class com.facebook.jni.** { *; } + +# okio +-keep class sun.misc.Unsafe { *; } +-dontwarn java.nio.file.* +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement +-dontwarn okio.** + +# yoga +-keep,allowobfuscation @interface com.facebook.yoga.annotations.DoNotStrip +-keep @com.facebook.yoga.annotations.DoNotStrip class * +-keepclassmembers class * { + @com.facebook.yoga.annotations.DoNotStrip *; +} + +# WebRTC + +-keep class org.webrtc.** { *; } +-dontwarn org.chromium.build.BuildHooksAndroid + +# Jisti Meet SDK + +-keep class org.jitsi.meet.** { *; } +-keep class org.jitsi.meet.sdk.** { *; } + +# We added the following when we switched minifyEnabled on. Probably because we +# ran the app and hit problems... + +-keep class com.facebook.react.bridge.CatalystInstanceImpl { *; } +-keep class com.facebook.react.bridge.ExecutorToken { *; } +-keep class com.facebook.react.bridge.JavaScriptExecutor { *; } +-keep class com.facebook.react.bridge.ModuleRegistryHolder { *; } +-keep class com.facebook.react.bridge.ReadableType { *; } +-keep class com.facebook.react.bridge.queue.NativeRunnable { *; } +-keep class com.facebook.react.devsupport.** { *; } + +-dontwarn com.facebook.react.devsupport.** +-dontwarn com.google.appengine.** +-dontwarn com.squareup.okhttp.** +-dontwarn javax.servlet.** + +# ^^^ We added the above when we switched minifyEnabled on. + +# Rule to avoid build errors related to SVGs. +-keep public class com.horcrux.svg.** {*;} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..04114e6 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/java/org/jitsi/meet/GoogleServicesHelper.java b/android/app/src/main/java/org/jitsi/meet/GoogleServicesHelper.java new file mode 100644 index 0000000..4f80ce1 --- /dev/null +++ b/android/app/src/main/java/org/jitsi/meet/GoogleServicesHelper.java @@ -0,0 +1,26 @@ +package org.jitsi.meet; + +import android.net.Uri; +import android.util.Log; + +import com.google.firebase.crashlytics.FirebaseCrashlytics; + +import org.jitsi.meet.sdk.JitsiMeet; +import org.jitsi.meet.sdk.JitsiMeetActivity; + +/** + * Helper class to initialize Google related services and functionality. + * This functionality is compiled conditionally and called via reflection, that's why it was + * extracted here. + * + * "Libre builds" (builds with the LIBRE_BUILD flag set) will not include this file. + */ +final class GoogleServicesHelper { + public static void initialize(JitsiMeetActivity activity) { + if (BuildConfig.GOOGLE_SERVICES_ENABLED) { + Log.d(activity.getClass().getSimpleName(), "Initializing Google Services"); + + FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!JitsiMeet.isCrashReportingDisabled(activity)); + } + } +} diff --git a/android/app/src/main/java/org/jitsi/meet/MainActivity.java b/android/app/src/main/java/org/jitsi/meet/MainActivity.java new file mode 100644 index 0000000..3b18fca --- /dev/null +++ b/android/app/src/main/java/org/jitsi/meet/MainActivity.java @@ -0,0 +1,233 @@ +/* + * Copyright @ 2017-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; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.RestrictionEntry; +import android.content.RestrictionsManager; +import android.net.Uri; +import android.os.Bundle; +import android.provider.Settings; +import android.util.Log; +import android.view.KeyEvent; + +import androidx.annotation.Nullable; + +import com.oney.WebRTCModule.WebRTCModuleOptions; + +import org.jitsi.meet.sdk.JitsiMeet; +import org.jitsi.meet.sdk.JitsiMeetActivity; +import org.jitsi.meet.sdk.JitsiMeetConferenceOptions; +import org.webrtc.Logging; + +import java.lang.reflect.Method; +import java.net.URL; +import java.util.Collection; + +/** + * The one and only Activity that the Jitsi Meet app needs. The + * {@code Activity} is launched in {@code singleTask} mode, so it will be + * created upon application initialization and there will be a single instance + * of it. Further attempts at launching the application once it was already + * launched will result in {@link MainActivity#onNewIntent(Intent)} being called. + */ +public class MainActivity extends JitsiMeetActivity { + /** + * The request code identifying requests for the permission to draw on top + * of other apps. The value must be 16-bit and is arbitrarily chosen here. + */ + private static final int OVERLAY_PERMISSION_REQUEST_CODE + = (int) (Math.random() * Short.MAX_VALUE); + + /** + * ServerURL configuration key for restriction configuration using {@link android.content.RestrictionsManager} + */ + public static final String RESTRICTION_SERVER_URL = "SERVER_URL"; + + /** + * Broadcast receiver for restrictions handling + */ + private BroadcastReceiver broadcastReceiver; + + /** + * Flag if configuration is provided by RestrictionManager + */ + private boolean configurationByRestrictions = false; + + /** + * Default URL as could be obtained from RestrictionManager + */ + private String defaultURL; + + // JitsiMeetActivity overrides + // + + @Override + protected void onCreate(Bundle savedInstanceState) { + JitsiMeet.showSplashScreen(this); + + WebRTCModuleOptions options = WebRTCModuleOptions.getInstance(); + options.loggingSeverity = Logging.Severity.LS_ERROR; + + super.onCreate(null); + } + + @Override + protected boolean extraInitialize() { + Log.d(this.getClass().getSimpleName(), "LIBRE_BUILD="+BuildConfig.LIBRE_BUILD); + + // Setup Crashlytics and Firebase Dynamic Links + // Here we are using reflection since it may have been disabled at compile time. + try { + Class cls = Class.forName("org.jitsi.meet.GoogleServicesHelper"); + Method m = cls.getMethod("initialize", JitsiMeetActivity.class); + m.invoke(null, this); + } catch (Exception e) { + // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled. + } + + // In Debug builds React needs permission to write over other apps in + // order to display the warning and error overlays. + if (BuildConfig.DEBUG) { + if (!Settings.canDrawOverlays(this)) { + Intent intent + = new Intent( + Settings.ACTION_MANAGE_OVERLAY_PERMISSION, + Uri.parse("package:" + getPackageName())); + + startActivityForResult(intent, OVERLAY_PERMISSION_REQUEST_CODE); + + return true; + } + } + + return false; + } + + @Override + protected void initialize() { + broadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + // As new restrictions including server URL are received, + // conference should be restarted with new configuration. + leave(); + recreate(); + } + }; + registerReceiver(broadcastReceiver, + new IntentFilter(Intent.ACTION_APPLICATION_RESTRICTIONS_CHANGED)); + + resolveRestrictions(); + setJitsiMeetConferenceDefaultOptions(); + super.initialize(); + } + + @Override + public void onDestroy() { + if (broadcastReceiver != null) { + unregisterReceiver(broadcastReceiver); + broadcastReceiver = null; + } + + super.onDestroy(); + } + + private void setJitsiMeetConferenceDefaultOptions() { + + // Set default options + JitsiMeetConferenceOptions defaultOptions + = new JitsiMeetConferenceOptions.Builder() + .setServerURL(buildURL(defaultURL)) + .setFeatureFlag("welcomepage.enabled", true) + .setFeatureFlag("server-url-change.enabled", !configurationByRestrictions) + .build(); + JitsiMeet.setDefaultConferenceOptions(defaultOptions); + } + + private void resolveRestrictions() { + RestrictionsManager manager = + (RestrictionsManager) getSystemService(Context.RESTRICTIONS_SERVICE); + Bundle restrictions = manager.getApplicationRestrictions(); + Collection entries = manager.getManifestRestrictions( + getApplicationContext().getPackageName()); + for (RestrictionEntry restrictionEntry : entries) { + String key = restrictionEntry.getKey(); + if (RESTRICTION_SERVER_URL.equals(key)) { + // If restrictions are passed to the application. + if (restrictions != null && + restrictions.containsKey(RESTRICTION_SERVER_URL)) { + defaultURL = restrictions.getString(RESTRICTION_SERVER_URL); + configurationByRestrictions = true; + // Otherwise use default URL from app-restrictions.xml. + } else { + defaultURL = restrictionEntry.getSelectedString(); + configurationByRestrictions = false; + } + } + } + } + + // Activity lifecycle method overrides + // + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == OVERLAY_PERMISSION_REQUEST_CODE) { + if (Settings.canDrawOverlays(this)) { + initialize(); + return; + } + + throw new RuntimeException("Overlay permission is required when running in Debug mode."); + } + + super.onActivityResult(requestCode, resultCode, data); + } + + // ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (BuildConfig.DEBUG && keyCode == KeyEvent.KEYCODE_MENU) { + JitsiMeet.showDevOptions(); + return true; + } + + return super.onKeyUp(keyCode, event); + } + + @Override + public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { + super.onPictureInPictureModeChanged(isInPictureInPictureMode); + + Log.d(TAG, "Is in picture-in-picture mode: " + isInPictureInPictureMode); + } + + // Helper methods + // + + private @Nullable URL buildURL(String urlStr) { + try { + return new URL(urlStr); + } catch (Exception e) { + return null; + } + } +} diff --git a/android/app/src/main/res/drawable/ic_jitsi_logosvg.xml b/android/app/src/main/res/drawable/ic_jitsi_logosvg.xml new file mode 100644 index 0000000..cc63663 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_jitsi_logosvg.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_launcher_monochrome.xml b/android/app/src/main/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 0000000..29a1a81 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/rn_edit_text_material.xml b/android/app/src/main/res/drawable/rn_edit_text_material.xml new file mode 100644 index 0000000..f35d996 --- /dev/null +++ b/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + diff --git a/android/app/src/main/res/layout/launch_screen.xml b/android/app/src/main/res/layout/launch_screen.xml new file mode 100644 index 0000000..f61656a --- /dev/null +++ b/android/app/src/main/res/layout/launch_screen.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..081998b --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..081998b --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..b738ac7 Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..5575431 Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..733f88e Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..d8d1a59 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..d9c88d3 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..bb5f602 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..50eb5b1 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..ab3898a Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..5f9eed6 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..4c0eea3 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..e4c57dc Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..0183c2a Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..e91898a Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..7d3e730 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..2f3c6f9 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..b78bbe6 --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #17A0DB + #161618 + \ No newline at end of file diff --git a/android/app/src/main/res/values/ic_launcher_background.xml b/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..55c2377 --- /dev/null +++ b/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #66A8DD + \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..bd12652 --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ + + Jitsi Meet + URL of Jitsi Meet server instance to connect to + Server URL + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..f269518 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + diff --git a/android/app/src/main/res/xml/app_restrictions.xml b/android/app/src/main/res/xml/app_restrictions.xml new file mode 100644 index 0000000..d501b94 --- /dev/null +++ b/android/app/src/main/res/xml/app_restrictions.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/android/app/src/main/res/xml/network_security_config.xml b/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..cfdf6a5 --- /dev/null +++ b/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,12 @@ + + + + + + + + + localhost + 10.0.2.2 + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..5bce937 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,217 @@ +import groovy.json.JsonSlurper +import org.gradle.util.VersionNumber + +// Top-level build file where you can add configuration options common to all +// sub-projects/modules. + +buildscript { + ext { + kotlinVersion = "2.0.21" + gradlePluginVersion = "8.6.0" + buildToolsVersion = "35.0.0" + compileSdkVersion = 35 + minSdkVersion = 26 + targetSdkVersion = 35 + supportLibVersion = "28.0.0" + ndkVersion = "27.1.12297006" + + // The Maven artifact groupId of the third-party react-native modules which + // Jitsi Meet SDK for Android depends on and which are not available in + // third-party Maven repositories so we have to deploy to a Maven repository + // of ours. + moduleGroupId = 'com.facebook.react' + + // Maven repo where artifacts will be published + mavenRepo = System.env.MVN_REPO ?: "" + mavenUser = System.env.MVN_USER ?: "" + mavenPassword = System.env.MVN_PASSWORD ?: "" + + // Libre build + libreBuild = (System.env.LIBRE_BUILD ?: "false").toBoolean() + + googleServicesEnabled = project.file('app/google-services.json').exists() && !libreBuild + + //React Native and Hermes Version + rnVersion = "0.77.2" + + // Java dependencies + javaVersion = JavaVersion.VERSION_17 + jvmToolchainVersion = 17 + jvmTargetVersion = '17' + } + repositories { + google() + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$rootProject.ext.kotlinVersion" + classpath "com.android.tools.build:gradle:$rootProject.ext.gradlePluginVersion" + classpath 'com.google.gms:google-services:4.4.0' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' + } +} + +allprojects { + repositories { + mavenCentral() + google() + maven { url 'https://www.jitpack.io' } + } + + // Make sure we use the react-native version in node_modules and not the one + // published in jcenter / elsewhere. + configurations.all { + resolutionStrategy { + eachDependency { DependencyResolveDetails details -> + if (details.requested.group == 'com.facebook.react') { + if (details.requested.name == 'react-native') { + details.useTarget "com.facebook.react:react-android:$rnVersion" + } + if (details.requested.name == 'react-android') { + details.useVersion rootProject.ext.rnVersion + } + } + } + } + } + + // Third-party react-native modules which Jitsi Meet SDK for Android depends + // on and which are not available in third-party Maven repositories need to + // be deployed in a Maven repository of ours. + + if (project.name.startsWith('react-native-')) { + apply plugin: 'maven-publish' + publishing { + publications {} + repositories { + maven { + url rootProject.ext.mavenRepo + if (!rootProject.ext.mavenRepo.startsWith("file")) { + credentials { + username rootProject.ext.mavenUser + password rootProject.ext.mavenPassword + } + } + } + } + } + } + + // Use the number of seconds/10 since Jan 1 2019 as the version qualifier number. + // This will last for the next ~680 years. + // https://stackoverflow.com/a/38643838 + def versionQualifierNumber = (int)(((new Date().getTime()/1000) - 1546297200) / 10) + + afterEvaluate { project -> + if (project.plugins.hasPlugin('android') || project.plugins.hasPlugin('android-library')) { + project.android { + compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + } + } + + if (project.name.startsWith('react-native-')) { + def npmManifest = project.file('../package.json') + def json = new JsonSlurper().parseText(npmManifest.text) + + // Release every dependency the SDK has with a -jitsi-XXX qualified version. This allows + // us to pin the dependencies and make sure they are always updated, no matter what. + + project.version = "${json.version}-jitsi-${versionQualifierNumber}" + + task jitsiAndroidSourcesJar(type: Jar) { + archiveClassifier = 'sources' + from android.sourceSets.main.java.source + } + + publishing.publications { + aarArchive(MavenPublication) { + groupId rootProject.ext.moduleGroupId + artifactId project.name + version project.version + + artifact("${project.buildDir}/outputs/aar/${project.name}-release.aar") { + extension "aar" + } + artifact(jitsiAndroidSourcesJar) + pom.withXml { + def pomXml = asNode() + pomXml.appendNode('name', project.name) + pomXml.appendNode('description', json.description) + pomXml.appendNode('url', json.homepage) + if (json.license) { + def license = pomXml.appendNode('licenses').appendNode('license') + license.appendNode('name', json.license) + license.appendNode('distribution', 'repo') + } + + def dependencies = pomXml.appendNode('dependencies') + configurations.getByName('releaseCompileClasspath').getResolvedConfiguration().getFirstLevelModuleDependencies().each { + def artifactId = it.moduleName + def version = it.moduleVersion + // React Native signals breaking changes by + // increasing the minor version number. So the + // (third-party) React Native modules we utilize can + // depend not on a specific react-native release but + // a wider range. + if (artifactId == 'react-native') { + def versionNumber = VersionNumber.parse(version) + version = "${versionNumber.major}.${versionNumber.minor}" + } + + def dependency = dependencies.appendNode('dependency') + dependency.appendNode('groupId', it.moduleGroup) + dependency.appendNode('artifactId', artifactId) + dependency.appendNode('version', version) + } + } + } + } + } + } +} + +// Force the version of the Android build tools we have chosen on all subprojects. +subprojects { subproject -> + afterEvaluate{ + if ((subproject.plugins.hasPlugin('android') + || subproject.plugins.hasPlugin('android-library')) + && rootProject.ext.has('buildToolsVersion')) { + + android { + buildToolsVersion rootProject.ext.buildToolsVersion + + buildFeatures { + buildConfig true + } + + // Set JVM target across all subprojects + compileOptions { + sourceCompatibility rootProject.ext.javaVersion + targetCompatibility rootProject.ext.javaVersion + } + + // Disable lint errors for problematic third-party modules + // react-native-background-timer + // react-native-calendar-events + lint { + abortOnError = false + } + } + } + + // Add Kotlin configuration for subprojects that use Kotlin + if (subproject.plugins.hasPlugin('kotlin-android')) { + subproject.kotlin { + jvmToolchain(rootProject.ext.jvmToolchainVersion) + } + + // Set Kotlin JVM target + subproject.android { + kotlinOptions { + jvmTarget = rootProject.ext.jvmTargetVersion + } + } + } + } +} diff --git a/android/fastlane/Appfile b/android/fastlane/Appfile new file mode 100644 index 0000000..f4690bf --- /dev/null +++ b/android/fastlane/Appfile @@ -0,0 +1,2 @@ +json_key_file("") +package_name("org.jitsi.meet") diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile new file mode 100644 index 0000000..82c5de7 --- /dev/null +++ b/android/fastlane/Fastfile @@ -0,0 +1,34 @@ +ENV["FASTLANE_SKIP_UPDATE_CHECK"] = "1" +opt_out_usage + +default_platform(:android) + +platform :android do + desc "Deploy a new version to Goolge Play (Closed Beta)" + lane :deploy do + # Cleanup + gradle(task: "clean") + + # Build and sign the app + gradle( + task: "assemble", + build_type: "Release", + print_command: false, + properties: { + "android.injected.signing.store.file" => ENV["JITSI_KEYSTORE"], + "android.injected.signing.store.password" => ENV["JITSI_KEYSTORE_PASSWORD"], + "android.injected.signing.key.alias" => ENV["JITSI_KEY_ALIAS"], + "android.injected.signing.key.password" => ENV["JITSI_KEY_PASSWORD"], + } + ) + + # Upload built artifact to the Closed Beta track + upload_to_play_store( + track: "beta", + json_key: ENV["JITSI_JSON_KEY_FILE"], + skip_upload_metadata: true, + skip_upload_images: true, + skip_upload_screenshots: true + ) + end +end diff --git a/android/fastlane/README.md b/android/fastlane/README.md new file mode 100644 index 0000000..e2b1828 --- /dev/null +++ b/android/fastlane/README.md @@ -0,0 +1,29 @@ +fastlane documentation +================ +# Installation + +Make sure you have the latest version of the Xcode command line tools installed: + +``` +xcode-select --install +``` + +Install _fastlane_ using +``` +[sudo] gem install fastlane -NV +``` +or alternatively using `brew cask install fastlane` + +# Available Actions +## Android +### android deploy +``` +fastlane android deploy +``` +Deploy a new version to Goolge Play (Closed Beta) + +---- + +This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. +More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). +The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/android/fastlane/screenshots/Feature-Graphic-1024x500-1-1.png b/android/fastlane/screenshots/Feature-Graphic-1024x500-1-1.png new file mode 100644 index 0000000..02fc9a3 Binary files /dev/null and b/android/fastlane/screenshots/Feature-Graphic-1024x500-1-1.png differ diff --git a/android/fastlane/screenshots/Feature-Graphic-1024x500-1.png b/android/fastlane/screenshots/Feature-Graphic-1024x500-1.png new file mode 100644 index 0000000..26655db Binary files /dev/null and b/android/fastlane/screenshots/Feature-Graphic-1024x500-1.png differ diff --git a/android/fastlane/screenshots/Feature-Graphic-1024x500-2.png b/android/fastlane/screenshots/Feature-Graphic-1024x500-2.png new file mode 100644 index 0000000..b3459a5 Binary files /dev/null and b/android/fastlane/screenshots/Feature-Graphic-1024x500-2.png differ diff --git a/android/fastlane/screenshots/Feature-Graphic-1024x500-3.png b/android/fastlane/screenshots/Feature-Graphic-1024x500-3.png new file mode 100644 index 0000000..36de496 Binary files /dev/null and b/android/fastlane/screenshots/Feature-Graphic-1024x500-3.png differ diff --git a/android/fastlane/screenshots/GroupCall.png b/android/fastlane/screenshots/GroupCall.png new file mode 100644 index 0000000..b591b2a Binary files /dev/null and b/android/fastlane/screenshots/GroupCall.png differ diff --git a/android/fastlane/screenshots/GroupCall_framed.png b/android/fastlane/screenshots/GroupCall_framed.png new file mode 100644 index 0000000..fe293a3 Binary files /dev/null and b/android/fastlane/screenshots/GroupCall_framed.png differ diff --git a/android/fastlane/screenshots/More Menu.png b/android/fastlane/screenshots/More Menu.png new file mode 100644 index 0000000..52b95cb Binary files /dev/null and b/android/fastlane/screenshots/More Menu.png differ diff --git a/android/fastlane/screenshots/More Menu_framed.png b/android/fastlane/screenshots/More Menu_framed.png new file mode 100644 index 0000000..ff6062d Binary files /dev/null and b/android/fastlane/screenshots/More Menu_framed.png differ diff --git a/android/fastlane/screenshots/Nexus 9 Body.png b/android/fastlane/screenshots/Nexus 9 Body.png new file mode 100644 index 0000000..02feb81 Binary files /dev/null and b/android/fastlane/screenshots/Nexus 9 Body.png differ diff --git a/android/fastlane/screenshots/Nexus-9-Landscape.png b/android/fastlane/screenshots/Nexus-9-Landscape.png new file mode 100644 index 0000000..433e8ea Binary files /dev/null and b/android/fastlane/screenshots/Nexus-9-Landscape.png differ diff --git a/android/fastlane/screenshots/Nexus-9-Portrait.png b/android/fastlane/screenshots/Nexus-9-Portrait.png new file mode 100644 index 0000000..52eb230 Binary files /dev/null and b/android/fastlane/screenshots/Nexus-9-Portrait.png differ diff --git a/android/fastlane/screenshots/Video-Call-1-1024x768.png b/android/fastlane/screenshots/Video-Call-1-1024x768.png new file mode 100644 index 0000000..3cea201 Binary files /dev/null and b/android/fastlane/screenshots/Video-Call-1-1024x768.png differ diff --git a/android/fastlane/screenshots/Video-Call-1-1280x720.png b/android/fastlane/screenshots/Video-Call-1-1280x720.png new file mode 100644 index 0000000..e067a90 Binary files /dev/null and b/android/fastlane/screenshots/Video-Call-1-1280x720.png differ diff --git a/android/fastlane/screenshots/Video-Call-2-1024x768.png b/android/fastlane/screenshots/Video-Call-2-1024x768.png new file mode 100644 index 0000000..e9d7cc5 Binary files /dev/null and b/android/fastlane/screenshots/Video-Call-2-1024x768.png differ diff --git a/android/fastlane/screenshots/Video-Call-2-1280x720.png b/android/fastlane/screenshots/Video-Call-2-1280x720.png new file mode 100644 index 0000000..6d6b635 Binary files /dev/null and b/android/fastlane/screenshots/Video-Call-2-1280x720.png differ diff --git a/android/fastlane/screenshots/WelcomePage-Calendar.png b/android/fastlane/screenshots/WelcomePage-Calendar.png new file mode 100644 index 0000000..d37e107 Binary files /dev/null and b/android/fastlane/screenshots/WelcomePage-Calendar.png differ diff --git a/android/fastlane/screenshots/WelcomePage-Calendar_framed.png b/android/fastlane/screenshots/WelcomePage-Calendar_framed.png new file mode 100644 index 0000000..b924e50 Binary files /dev/null and b/android/fastlane/screenshots/WelcomePage-Calendar_framed.png differ diff --git a/android/fastlane/screenshots/WelcomeScreen-1024x768.png b/android/fastlane/screenshots/WelcomeScreen-1024x768.png new file mode 100644 index 0000000..98404e9 Binary files /dev/null and b/android/fastlane/screenshots/WelcomeScreen-1024x768.png differ diff --git a/android/fastlane/screenshots/WelcomeScreen-1280x720.png b/android/fastlane/screenshots/WelcomeScreen-1280x720.png new file mode 100644 index 0000000..a1c6612 Binary files /dev/null and b/android/fastlane/screenshots/WelcomeScreen-1280x720.png differ diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..0858cd7 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,36 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx1024m -XX:MaxPermSize=256m + +org.gradle.jvmargs=-Xmx4048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +android.useAndroidX=true + +android.enableJetifier=true + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=false + +# Use this property to enable or disable the Hermes JS engine. +hermesEnabled=true + +appVersion=99.0.0 +sdkVersion=0.0.0 diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..01b8bf6 Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..5c82cb0 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew new file mode 100755 index 0000000..1b6c787 --- /dev/null +++ b/android/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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 +# +# https://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. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/keystores/BUCK b/android/keystores/BUCK new file mode 100644 index 0000000..88e4c31 --- /dev/null +++ b/android/keystores/BUCK @@ -0,0 +1,8 @@ +keystore( + name = "debug", + properties = "debug.keystore.properties", + store = "debug.keystore", + visibility = [ + "PUBLIC", + ], +) diff --git a/android/keystores/debug.keystore.properties b/android/keystores/debug.keystore.properties new file mode 100644 index 0000000..121bfb4 --- /dev/null +++ b/android/keystores/debug.keystore.properties @@ -0,0 +1,4 @@ +key.store=debug.keystore +key.alias=androiddebugkey +key.store.password=android +key.alias.password=android diff --git a/android/scripts/check_elf_alignment.sh b/android/scripts/check_elf_alignment.sh new file mode 100755 index 0000000..0cd8f92 --- /dev/null +++ b/android/scripts/check_elf_alignment.sh @@ -0,0 +1,113 @@ +#!/bin/bash +progname="${0##*/}" +progname="${progname%.sh}" + +# usage: check_elf_alignment.sh [path to *.so files|path to *.apk] + +cleanup_trap() { + if [ -n "${tmp}" -a -d "${tmp}" ]; then + rm -rf ${tmp} + fi + exit $1 +} + +usage() { + echo "Host side script to check the ELF alignment of shared libraries." + echo "Shared libraries are reported ALIGNED when their ELF regions are" + echo "16 KB or 64 KB aligned. Otherwise they are reported as UNALIGNED." + echo + echo "Usage: ${progname} [input-path|input-APK|input-APEX]" +} + +if [ ${#} -ne 1 ]; then + usage + exit +fi + +case ${1} in + --help | -h | -\?) + usage + exit + ;; + + *) + dir="${1}" + ;; +esac + +if ! [ -f "${dir}" -o -d "${dir}" ]; then + echo "Invalid file: ${dir}" >&2 + exit 1 +fi + +if [[ "${dir}" == *.apk ]]; then + trap 'cleanup_trap' EXIT + + echo + echo "Recursively analyzing $dir" + echo + + if { zipalign --help 2>&1 | grep -q "\-P "; }; then + echo "=== APK zip-alignment ===" + zipalign -v -c -P 16 4 "${dir}" | egrep 'lib/arm64-v8a|lib/x86_64|Verification' + echo "=========================" + else + echo "NOTICE: Zip alignment check requires build-tools version 35.0.0-rc3 or higher." + echo " You can install the latest build-tools by running the below command" + echo " and updating your \$PATH:" + echo + echo " sdkmanager \"build-tools;35.0.0-rc3\"" + fi + + dir_filename=$(basename "${dir}") + tmp=$(mktemp -d -t "${dir_filename%.apk}_out_XXXXX") + unzip "${dir}" lib/* -d "${tmp}" >/dev/null 2>&1 + dir="${tmp}" +fi + +if [[ "${dir}" == *.apex ]]; then + trap 'cleanup_trap' EXIT + + echo + echo "Recursively analyzing $dir" + echo + + dir_filename=$(basename "${dir}") + tmp=$(mktemp -d -t "${dir_filename%.apex}_out_XXXXX") + deapexer extract "${dir}" "${tmp}" || { echo "Failed to deapex." && exit 1; } + dir="${tmp}" +fi + +RED="\e[31m" +GREEN="\e[32m" +ENDCOLOR="\e[0m" + +unaligned_libs=() + +echo +echo "=== ELF alignment ===" + +matches="$(find "${dir}" -type f)" +IFS=$'\n' +for match in $matches; do + # We could recursively call this script or rewrite it to though. + [[ "${match}" == *".apk" ]] && echo "WARNING: doesn't recursively inspect .apk file: ${match}" + [[ "${match}" == *".apex" ]] && echo "WARNING: doesn't recursively inspect .apex file: ${match}" + + [[ $(file "${match}") == *"ELF"* ]] || continue + + res="$(objdump -p "${match}" | grep LOAD | awk '{ print $NF }' | head -1)" + if [[ $res =~ 2\*\*(1[4-9]|[2-9][0-9]|[1-9][0-9]{2,}) ]]; then + echo -e "${match}: ${GREEN}ALIGNED${ENDCOLOR} ($res)" + else + echo -e "${match}: ${RED}UNALIGNED${ENDCOLOR} ($res)" + unaligned_libs+=("${match}") + fi +done + +if [ ${#unaligned_libs[@]} -gt 0 ]; then + echo -e "${RED}Found ${#unaligned_libs[@]} unaligned libs (only arm64-v8a/x86_64 libs need to be aligned).${ENDCOLOR}" +elif [ -n "${dir_filename}" ]; then + echo -e "ELF Verification Successful" +fi +echo "=====================" \ No newline at end of file diff --git a/android/scripts/logcat.sh b/android/scripts/logcat.sh new file mode 100755 index 0000000..c7e9ab2 --- /dev/null +++ b/android/scripts/logcat.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +PKG_NAME=${1:-org.jitsi.meet} +APP_PID=$(adb shell ps | grep $PKG_NAME | awk '{print $2}') + +if [[ -z "$APP_PID" ]]; then + echo "App is not running" + exit 1 +fi + +exec adb logcat --pid=$APP_PID diff --git a/android/scripts/release-sdk.sh b/android/scripts/release-sdk.sh new file mode 100755 index 0000000..63536a9 --- /dev/null +++ b/android/scripts/release-sdk.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +set -e -u + + +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) +DEFAULT_MVN_REPO="${THIS_DIR}/../../../jitsi-maven-repository/releases" +THE_MVN_REPO=${MVN_REPO:-${1:-$DEFAULT_MVN_REPO}} +MVN_HTTP=0 +DEFAULT_SDK_VERSION=$(grep sdkVersion ${THIS_DIR}/../gradle.properties | cut -d"=" -f2) +SDK_VERSION=${OVERRIDE_SDK_VERSION:-${DEFAULT_SDK_VERSION}} + +if [[ $THE_MVN_REPO == http* ]]; then + MVN_HTTP=1 +else + MVN_REPO_PATH=$(realpath $THE_MVN_REPO) + THE_MVN_REPO="file:${MVN_REPO_PATH}" +fi + +export MVN_REPO=$THE_MVN_REPO + +echo "Releasing Jitsi Meet SDK ${SDK_VERSION}" +echo "Using ${MVN_REPO} as the Maven repo" + + if [[ $MVN_HTTP == 0 ]]; then + # Check if an SDK with that same version has already been released + if [[ -d ${MVN_REPO}/org/jitsi/react/jitsi-meet-sdk/${SDK_VERSION} ]]; then + echo "There is already a release with that version in the Maven repo!" + exit 1 + fi +fi + +# Now build and publish the Jitsi Meet SDK and its dependencies +echo "Building and publishing the Jitsi Meet SDK" +pushd ${THIS_DIR}/../ +./gradlew clean +./gradlew assembleRelease +./gradlew publish +popd + +# The artifacts are now on the Maven repo, commit them +if [[ $MVN_HTTP == 0 ]]; then + pushd ${MVN_REPO_PATH} + git add -A . + git commit -m "Jitsi Meet SDK + dependencies: ${SDK_VERSION}" + popd +fi + +# Done! +echo "Finished! Don't forget to push the tag and the Maven repo artifacts." diff --git a/android/scripts/run-packager-helper.command b/android/scripts/run-packager-helper.command new file mode 100755 index 0000000..cf9ebe0 --- /dev/null +++ b/android/scripts/run-packager-helper.command @@ -0,0 +1,5 @@ +#!/bin/bash + +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) + +exec ${THIS_DIR}/../../node_modules/react-native/scripts/packager.sh --reset-cache diff --git a/android/scripts/run-packager.sh b/android/scripts/run-packager.sh new file mode 100755 index 0000000..f7a5bce --- /dev/null +++ b/android/scripts/run-packager.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# This script is executed bt Gradle to start the React packager for Debug +# targets. + +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) + +export RCT_METRO_PORT="${RCT_METRO_PORT:=8081}" +echo "export RCT_METRO_PORT=${RCT_METRO_PORT}" > "${THIS_DIR}/../../node_modules/react-native/scripts/.packager.env" + +adb reverse tcp:$RCT_METRO_PORT tcp:$RCT_METRO_PORT + +if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then + if ! curl -s "http://localhost:${RCT_METRO_PORT}/status" | grep -q "packager-status:running" ; then + echo "Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly" + exit 2 + fi +else + CMD="$THIS_DIR/run-packager-helper.command" + if [[ `uname` == "Darwin" ]]; then + open -g "${CMD}" || echo "Can't start packager automatically" + else + xdg-open "${CMD}" || echo "Can't start packager automatically" + fi +fi diff --git a/android/sdk/.classpath b/android/sdk/.classpath new file mode 100644 index 0000000..eb19361 --- /dev/null +++ b/android/sdk/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/android/sdk/.project b/android/sdk/.project new file mode 100644 index 0000000..4736e19 --- /dev/null +++ b/android/sdk/.project @@ -0,0 +1,23 @@ + + + sdk + Project sdk created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/android/sdk/.settings/org.eclipse.buildship.core.prefs b/android/sdk/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000..b1886ad --- /dev/null +++ b/android/sdk/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,2 @@ +connection.project.dir=.. +eclipse.preferences.version=1 diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle new file mode 100644 index 0000000..b6aa563 --- /dev/null +++ b/android/sdk/build.gradle @@ -0,0 +1,319 @@ +apply plugin: 'com.android.library' +apply plugin: 'maven-publish' + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + ndkVersion rootProject.ext.ndkVersion + + defaultConfig { + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + buildConfigField "String", "SDK_VERSION", "\"$sdkVersion\"" + } + + buildTypes { + debug { + buildConfigField "boolean", "LIBRE_BUILD", "${rootProject.ext.libreBuild}" + buildConfigField "boolean", "GOOGLE_SERVICES_ENABLED", "${rootProject.ext.googleServicesEnabled}" + } + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + buildConfigField "boolean", "LIBRE_BUILD", "${rootProject.ext.libreBuild}" + buildConfigField "boolean", "GOOGLE_SERVICES_ENABLED", "${rootProject.ext.googleServicesEnabled}" + } + } + + sourceSets { + main { + java { + exclude "test/" + } + } + } + namespace 'org.jitsi.meet.sdk' +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'androidx.fragment:fragment:1.4.1' + implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' + + api "com.facebook.react:react-android:$rootProject.ext.rnVersion" + api "com.facebook.react:hermes-android:$rootProject.ext.rnVersion" + + implementation 'com.dropbox.core:dropbox-core-sdk:4.0.1' + implementation 'com.jakewharton.timber:timber:5.0.1' + implementation 'com.squareup.duktape:duktape-android:1.3.0' + implementation 'com.google.code.gson:gson:2.8.6' + implementation 'androidx.startup:startup-runtime:1.1.0' + implementation 'com.google.j2objc:j2objc-annotations:3.0.0' + + // 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')) { + exclude group: 'com.google.android.gms' + exclude group: 'androidx' + } + } + + implementation project(':react-native-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-default-preference') + implementation(project(':react-native-device-info')) { + exclude group: 'com.google.firebase' + exclude group: 'com.google.android.gms' + exclude group: 'com.android.installreferrer' + } + implementation project(':react-native-gesture-handler') + implementation project(':react-native-get-random-values') + implementation project(':react-native-immersive-mode') + implementation project(':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-sound') + implementation project(':react-native-splash-view') + implementation project(':react-native-svg') + implementation project(':react-native-video') + implementation project(':react-native-webview') + + // Use `api` here so consumers can use WebRTCModuleOptions. + api project(':react-native-webrtc') + + testImplementation 'junit:junit:4.12' +} + + +// Here we bundle all assets, resources and React files. We cannot use the +// react.gradle file provided by react-native because it's designed to be used +// in an application (it taps into applicationVariants, but the SDK is a library +// so we need libraryVariants instead). +android.libraryVariants.all { def variant -> + // Create variant and target names + def targetName = variant.name.capitalize() + def targetPath = variant.dirName + + // React js bundle directories + def jsBundleDir = file("$buildDir/generated/assets/react/${targetPath}") + def resourcesDir = file("$buildDir/generated/res/react/${targetPath}") + + def jsBundleFile = file("$jsBundleDir/index.android.bundle") + + def currentBundleTask = tasks.create( + name: "bundle${targetName}JsAndAssets", + type: Exec) { + group = "react" + description = "bundle JS and assets for ${targetName}." + + // Create dirs if they are not there (e.g. the "clean" task just ran) + doFirst { + jsBundleDir.deleteDir() + jsBundleDir.mkdirs() + resourcesDir.deleteDir() + resourcesDir.mkdirs() + } + + // Set up inputs and outputs so gradle can cache the result + def reactRoot = file("${projectDir}/../../") + inputs.files fileTree(dir: reactRoot, excludes: ["android/**", "ios/**"]) + outputs.dir jsBundleDir + outputs.dir resourcesDir + + // Set up the call to the react-native cli + workingDir reactRoot + + // 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_modules/react-native/scripts/bundle.js", + "--platform", "android", + "--dev", "${devEnabled}", + "--reset-cache", + "--entry-file", "index.android.js", + "--bundle-output", jsBundleFile, + "--assets-dest", resourcesDir) + + // Disable bundling on dev builds + 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)) + } + } + + // 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) + + def mergeAssetsTask = variant.mergeAssetsProvider.get() + def mergeResourcesTask = variant.mergeResourcesProvider.get() + + mergeAssetsTask.dependsOn(currentBundleTask) + mergeResourcesTask.dependsOn(currentBundleTask) + + mergeAssetsTask.doLast { + def assetsDir = mergeAssetsTask.outputDir.get() + + // Bundle sounds + // + copy { + from("${projectDir}/../../sounds") + include("*.wav") + include("*.mp3") + into("${assetsDir}/sounds") + } + + // Copy React assets + // + if (currentBundleTask.enabled) { + copy { + from(jsBundleFile) + into(assetsDir) + } + } + } + + mergeResourcesTask.doLast { + // Copy React resources + // + if (currentBundleTask.enabled) { + copy { + from(resourcesDir) + into(mergeResourcesTask.outputDir.get()) + } + } + } +} + + +publishing { + publications { + aarArchive(MavenPublication) { + groupId 'org.jitsi.react' + artifactId 'jitsi-meet-sdk' + version System.env.OVERRIDE_SDK_VERSION ?: project.sdkVersion + + artifact("${project.buildDir}/outputs/aar/${project.name}-release.aar") { + extension "aar" + } + pom.withXml { + def pomXml = asNode() + pomXml.appendNode('name', 'jitsi-meet-sdk') + pomXml.appendNode('description', 'Jitsi Meet SDK for Android') + def dependencies = pomXml.appendNode('dependencies') + configurations.getByName('releaseCompileClasspath').getResolvedConfiguration().getFirstLevelModuleDependencies().each { + // The (third-party) React Native modules that we depend on + // are in source code form and do not have groupId. That is + // why we have a dedicated groupId for them. But the other + // dependencies come through Maven and, consequently, have + // groupId. + def groupId = it.moduleGroup + def artifactId = it.moduleName + + if (artifactId.startsWith('react-native-')) { + groupId = rootProject.ext.moduleGroupId + } + + def dependency = dependencies.appendNode('dependency') + dependency.appendNode('groupId', groupId) + dependency.appendNode('artifactId', artifactId) + dependency.appendNode('version', it.moduleVersion) + } + } + } + + } + repositories { + maven { + url rootProject.ext.mavenRepo + if (!rootProject.ext.mavenRepo.startsWith("file")) { + credentials { + username rootProject.ext.mavenUser + password rootProject.ext.mavenPassword + } + } + } + } +} diff --git a/android/sdk/src/debug/AndroidManifest.xml b/android/sdk/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..b239f19 --- /dev/null +++ b/android/sdk/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/android/sdk/src/main/AndroidManifest.xml b/android/sdk/src/main/AndroidManifest.xml new file mode 100644 index 0000000..68cd34b --- /dev/null +++ b/android/sdk/src/main/AndroidManifest.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/AndroidSettingsModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/AndroidSettingsModule.java new file mode 100644 index 0000000..5d67388 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/AndroidSettingsModule.java @@ -0,0 +1,56 @@ +/** + * Adapted from + * {@link https://github.com/Aleksandern/react-native-android-settings-library}. + */ + +package org.jitsi.meet.sdk; + +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.provider.Settings; + +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; + +@ReactModule(name = AndroidSettingsModule.NAME) +class AndroidSettingsModule + extends ReactContextBaseJavaModule { + + public static final String NAME = "AndroidSettings"; + + public AndroidSettingsModule(ReactApplicationContext reactContext) { + super(reactContext); + } + + @Override + public String getName() { + return NAME; + } + + @ReactMethod + public void open(Promise promise) { + Context context = getReactApplicationContext(); + Intent intent = new Intent(); + + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.setData( + Uri.fromParts("package", context.getPackageName(), null)); + + try { + context.startActivity(intent); + } catch (ActivityNotFoundException e) { + // Some devices may give an error here. + // https://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DETAILS_SETTINGS + promise.reject(e); + return; + } + + promise.resolve(null); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/AppInfoModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/AppInfoModule.java new file mode 100644 index 0000000..7377fc1 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/AppInfoModule.java @@ -0,0 +1,150 @@ +/* + * Copyright @ 2017-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 android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.module.annotations.ReactModule; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +@ReactModule(name = AppInfoModule.NAME) +class AppInfoModule + extends ReactContextBaseJavaModule { + + private static final String BUILD_CONFIG = "org.jitsi.meet.sdk.BuildConfig"; + public static final String NAME = "AppInfo"; + public static final boolean GOOGLE_SERVICES_ENABLED = getGoogleServicesEnabled(); + public static final boolean LIBRE_BUILD = getLibreBuild(); + public static final String SDK_VERSION = getSdkVersion(); + + public AppInfoModule(ReactApplicationContext reactContext) { + super(reactContext); + } + + /** + * Gets a {@code Map} of constants this module exports to JS. Supports JSON + * types. + * + * @return a {@link Map} of constants this module exports to JS + */ + @Override + public Map getConstants() { + Context context = getReactApplicationContext(); + PackageManager packageManager = context.getPackageManager(); + ApplicationInfo applicationInfo; + PackageInfo packageInfo; + + try { + String packageName = context.getPackageName(); + + applicationInfo + = packageManager.getApplicationInfo(packageName, 0); + packageInfo = packageManager.getPackageInfo(packageName, 0); + } catch (PackageManager.NameNotFoundException e) { + applicationInfo = null; + packageInfo = null; + } + + Map constants = new HashMap<>(); + + constants.put( + "buildNumber", + packageInfo == null ? "" : String.valueOf(packageInfo.versionCode)); + constants.put( + "name", + applicationInfo == null + ? "" + : packageManager.getApplicationLabel(applicationInfo)); + constants.put( + "version", + packageInfo == null ? "" : packageInfo.versionName); + constants.put("sdkVersion", SDK_VERSION); + constants.put("LIBRE_BUILD", LIBRE_BUILD); + constants.put("GOOGLE_SERVICES_ENABLED", GOOGLE_SERVICES_ENABLED); + + return constants; + } + + @Override + public String getName() { + return NAME; + } + + /** + * Checks if libre google services object is null based on build configuration. + */ + private static boolean getGoogleServicesEnabled() { + Object googleServicesEnabled = getBuildConfigValue("GOOGLE_SERVICES_ENABLED"); + + if (googleServicesEnabled !=null) { + return (Boolean) googleServicesEnabled; + } + + return false; + } + + /** + * Checks if libre build field is null based on build configuration. + */ + private static boolean getLibreBuild() { + Object libreBuild = getBuildConfigValue("LIBRE_BUILD"); + + if (libreBuild !=null) { + return (Boolean) libreBuild; + } + + return false; + } + + /** + * Gets the SDK version. + */ + private static String getSdkVersion() { + Object sdkVersion = getBuildConfigValue("SDK_VERSION"); + + if (sdkVersion !=null) { + return (String) sdkVersion; + } + + return ""; + } + + /** + * Gets build config value of a certain field. + * + * @param fieldName Field from build config. + */ + private static Object getBuildConfigValue(String fieldName) { + try { + Class c = Class.forName(BUILD_CONFIG); + Field f = c.getDeclaredField(fieldName); + f.setAccessible(true); + return f.get(null); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioDeviceHandlerConnectionService.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioDeviceHandlerConnectionService.java new file mode 100644 index 0000000..9b5bb1f --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioDeviceHandlerConnectionService.java @@ -0,0 +1,185 @@ +/* + * Copyright @ 2017-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 android.content.Context; +import android.media.AudioManager; +import android.telecom.CallAudioState; +import androidx.annotation.RequiresApi; + +import com.facebook.react.bridge.ReactContext; + +import java.util.HashSet; +import java.util.Set; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + + +/** + * {@link AudioModeModule.AudioDeviceHandlerInterface} module implementing device handling for + * Android versions >= O when ConnectionService is enabled. + */ +class AudioDeviceHandlerConnectionService implements + AudioModeModule.AudioDeviceHandlerInterface, + RNConnectionService.CallAudioStateListener { + + private final static String TAG = AudioDeviceHandlerConnectionService.class.getSimpleName(); + + /** + * {@link AudioManager} instance used to interact with the Android audio subsystem. + */ + private AudioManager audioManager; + + /** + * Reference to the main {@code AudioModeModule}. + */ + private AudioModeModule module; + + private RNConnectionService rcs; + + /** + * Converts any of the "DEVICE_" constants into the corresponding + * {@link android.telecom.CallAudioState} "ROUTE_" number. + * + * @param audioDevice one of the "DEVICE_" constants. + * @return a route number {@link android.telecom.CallAudioState#ROUTE_EARPIECE} if + * no match is found. + */ + private static int audioDeviceToRouteInt(String audioDevice) { + if (audioDevice == null) { + return CallAudioState.ROUTE_SPEAKER; + } + switch (audioDevice) { + case AudioModeModule.DEVICE_BLUETOOTH: + return CallAudioState.ROUTE_BLUETOOTH; + case AudioModeModule.DEVICE_EARPIECE: + return CallAudioState.ROUTE_EARPIECE; + case AudioModeModule.DEVICE_HEADPHONES: + return CallAudioState.ROUTE_WIRED_HEADSET; + case AudioModeModule.DEVICE_SPEAKER: + return CallAudioState.ROUTE_SPEAKER; + default: + JitsiMeetLogger.e(TAG + " Unsupported device name: " + audioDevice); + return CallAudioState.ROUTE_SPEAKER; + } + } + + /** + * Populates given route mask into the "DEVICE_" list. + * + * @param supportedRouteMask an integer coming from + * {@link android.telecom.CallAudioState#getSupportedRouteMask()}. + * @return a list of device names. + */ + private static Set routesToDeviceNames(int supportedRouteMask) { + Set devices = new HashSet<>(); + if ((supportedRouteMask & CallAudioState.ROUTE_EARPIECE) == CallAudioState.ROUTE_EARPIECE) { + devices.add(AudioModeModule.DEVICE_EARPIECE); + } + if ((supportedRouteMask & CallAudioState.ROUTE_BLUETOOTH) == CallAudioState.ROUTE_BLUETOOTH) { + devices.add(AudioModeModule.DEVICE_BLUETOOTH); + } + if ((supportedRouteMask & CallAudioState.ROUTE_SPEAKER) == CallAudioState.ROUTE_SPEAKER) { + devices.add(AudioModeModule.DEVICE_SPEAKER); + } + if ((supportedRouteMask & CallAudioState.ROUTE_WIRED_HEADSET) == CallAudioState.ROUTE_WIRED_HEADSET) { + devices.add(AudioModeModule.DEVICE_HEADPHONES); + } + return devices; + } + + /** + * Used to store the most recently reported audio devices. + * Makes it easier to compare for a change, because the devices are stored + * as a mask in the {@link android.telecom.CallAudioState}. The mask is populated into + * the {@code availableDevices} on each update. + */ + private int supportedRouteMask = -1; + + public AudioDeviceHandlerConnectionService(AudioManager audioManager) { + this.audioManager = audioManager; + } + + @Override + public void onCallAudioStateChange(final CallAudioState state) { + module.runInAudioThread(new Runnable() { + @Override + public void run() { + boolean audioRouteChanged + = audioDeviceToRouteInt(module.getSelectedDevice()) != state.getRoute(); + int newSupportedRoutes = state.getSupportedRouteMask(); + boolean audioDevicesChanged = supportedRouteMask != newSupportedRoutes; + if (audioDevicesChanged) { + supportedRouteMask = newSupportedRoutes; + Set devices = routesToDeviceNames(supportedRouteMask); + module.replaceDevices(devices); + JitsiMeetLogger.i(TAG + " Available audio devices: " + devices.toString()); + } + + if (audioRouteChanged || audioDevicesChanged) { + module.resetSelectedDevice(); + module.updateAudioRoute(); + } + } + }); + } + + @Override + public void start(AudioModeModule audioModeModule) { + JitsiMeetLogger.i("Using " + TAG + " as the audio device handler"); + + module = audioModeModule; + rcs = module.getContext().getNativeModule(RNConnectionService.class); + + if (rcs != null) { + rcs.setCallAudioStateListener(this); + } else { + JitsiMeetLogger.w(TAG + " Couldn't set call audio state listener, module is null"); + } + } + + @Override + public void stop() { + if (rcs != null) { + rcs.setCallAudioStateListener(null); + rcs = null; + } else { + JitsiMeetLogger.w(TAG + " Couldn't set call audio state listener, module is null"); + } + } + + public void setAudioRoute(String audioDevice) { + int newAudioRoute = audioDeviceToRouteInt(audioDevice); + + RNConnectionService.setAudioRoute(newAudioRoute); + } + + @Override + public boolean setMode(int mode) { + if (mode != AudioModeModule.DEFAULT) { + // This shouldn't be needed when using ConnectionService, but some devices have been + // observed not doing it. + try { + audioManager.setMicrophoneMute(false); + } catch (Throwable tr) { + JitsiMeetLogger.w(tr, TAG + " Failed to unmute the microphone"); + } + } + + return true; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioDeviceHandlerGeneric.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioDeviceHandlerGeneric.java new file mode 100644 index 0000000..000cf92 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioDeviceHandlerGeneric.java @@ -0,0 +1,248 @@ +/* + * Copyright @ 2017-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 android.media.AudioAttributes; +import android.media.AudioDeviceInfo; +import android.media.AudioFocusRequest; +import android.media.AudioManager; + +import java.util.HashSet; +import java.util.Set; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + + +/** + * {@link AudioModeModule.AudioDeviceHandlerInterface} module implementing device handling for + * all post-M Android versions. This handler can be used on any Android versions >= M, but by + * default it's only used on versions < O, since versions >= O use ConnectionService, but it + * can be disabled. + */ +class AudioDeviceHandlerGeneric implements + AudioModeModule.AudioDeviceHandlerInterface, + AudioManager.OnAudioFocusChangeListener { + + private final static String TAG = AudioDeviceHandlerGeneric.class.getSimpleName(); + + /** + * Reference to the main {@code AudioModeModule}. + */ + private AudioModeModule module; + + /** + * Constant defining a Hearing Aid. Only available on API level >= 28. + * The value of: AudioDeviceInfo.TYPE_HEARING_AID + */ + private static final int TYPE_HEARING_AID = 23; + + /** + * Constant defining a USB headset. Only available on API level >= 26. + * The value of: AudioDeviceInfo.TYPE_USB_HEADSET + */ + private static final int TYPE_USB_HEADSET = 22; + + /** + * Indicator that we have lost audio focus. + */ + private boolean audioFocusLost = false; + + /** + * {@link AudioManager} instance used to interact with the Android audio + * subsystem. + */ + private AudioManager audioManager; + + /** + * {@link Runnable} for running audio device detection in the audio thread. + * This is only used on Android >= M. + */ + private final Runnable onAudioDeviceChangeRunner = new Runnable() { + @Override + public void run() { + Set devices = new HashSet<>(); + AudioDeviceInfo[] deviceInfos = audioManager.getDevices(AudioManager.GET_DEVICES_ALL); + + for (AudioDeviceInfo info: deviceInfos) { + switch (info.getType()) { + case AudioDeviceInfo.TYPE_BLUETOOTH_SCO: + devices.add(AudioModeModule.DEVICE_BLUETOOTH); + break; + case AudioDeviceInfo.TYPE_BUILTIN_EARPIECE: + devices.add(AudioModeModule.DEVICE_EARPIECE); + break; + case AudioDeviceInfo.TYPE_BUILTIN_SPEAKER: + case AudioDeviceInfo.TYPE_HDMI: + devices.add(AudioModeModule.DEVICE_SPEAKER); + break; + case AudioDeviceInfo.TYPE_WIRED_HEADPHONES: + case AudioDeviceInfo.TYPE_WIRED_HEADSET: + case TYPE_HEARING_AID: + case TYPE_USB_HEADSET: + devices.add(AudioModeModule.DEVICE_HEADPHONES); + break; + } + } + + module.replaceDevices(devices); + + JitsiMeetLogger.i(TAG + " Available audio devices: " + devices.toString()); + + module.updateAudioRoute(); + } + }; + + private final android.media.AudioDeviceCallback audioDeviceCallback = + new android.media.AudioDeviceCallback() { + @Override + public void onAudioDevicesAdded( + AudioDeviceInfo[] addedDevices) { + JitsiMeetLogger.d(TAG + " Audio devices added"); + onAudioDeviceChange(); + } + + @Override + public void onAudioDevicesRemoved( + AudioDeviceInfo[] removedDevices) { + JitsiMeetLogger.d(TAG + " Audio devices removed"); + onAudioDeviceChange(); + } + }; + + public AudioDeviceHandlerGeneric(AudioManager audioManager) { + this.audioManager = audioManager; + } + + /** + * Helper method to trigger an audio route update when devices change. It + * makes sure the operation is performed on the audio thread. + */ + private void onAudioDeviceChange() { + module.runInAudioThread(onAudioDeviceChangeRunner); + } + + /** + * {@link AudioManager.OnAudioFocusChangeListener} interface method. Called + * when the audio focus of the system is updated. + * + * @param focusChange - The type of focus change. + */ + @Override + public void onAudioFocusChange(final int focusChange) { + module.runInAudioThread(new Runnable() { + @Override + public void run() { + switch (focusChange) { + case AudioManager.AUDIOFOCUS_GAIN: { + JitsiMeetLogger.d(TAG + " Audio focus gained"); + // Some other application potentially stole our audio focus + // temporarily. Restore our mode. + if (audioFocusLost) { + module.resetAudioRoute(); + } + audioFocusLost = false; + break; + } + case AudioManager.AUDIOFOCUS_LOSS: + case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: + case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: { + JitsiMeetLogger.d(TAG + " Audio focus lost"); + audioFocusLost = true; + break; + } + } + } + }); + } + + /** + * Helper method to set the output route to a Bluetooth device. + * + * @param enabled true if Bluetooth should use used, false otherwise. + */ + private void setBluetoothAudioRoute(boolean enabled) { + if (enabled) { + audioManager.startBluetoothSco(); + audioManager.setBluetoothScoOn(true); + } else { + audioManager.setBluetoothScoOn(false); + audioManager.stopBluetoothSco(); + } + } + + @Override + public void start(AudioModeModule audioModeModule) { + JitsiMeetLogger.i("Using " + TAG + " as the audio device handler"); + + module = audioModeModule; + + // Setup runtime device change detection. + audioManager.registerAudioDeviceCallback(audioDeviceCallback, null); + + // Do an initial detection. + onAudioDeviceChange(); + } + + @Override + public void stop() { + audioManager.unregisterAudioDeviceCallback(audioDeviceCallback); + } + + @Override + public void setAudioRoute(String device) { + // Turn speaker on / off + audioManager.setSpeakerphoneOn(device.equals(AudioModeModule.DEVICE_SPEAKER)); + + // Turn bluetooth on / off + setBluetoothAudioRoute(device.equals(AudioModeModule.DEVICE_BLUETOOTH)); + } + + @Override + public boolean setMode(int mode) { + if (mode == AudioModeModule.DEFAULT) { + audioFocusLost = false; + audioManager.setMode(AudioManager.MODE_NORMAL); + audioManager.abandonAudioFocus(this); + audioManager.setSpeakerphoneOn(false); + setBluetoothAudioRoute(false); + + return true; + } + + audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION); + audioManager.setMicrophoneMute(false); + + int gotFocus = audioManager.requestAudioFocus(new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN) + .setAudioAttributes( + new AudioAttributes.Builder() + .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION) + .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH) + .build() + ) + .setAcceptsDelayedFocusGain(true) + .setOnAudioFocusChangeListener(this) + .build() + ); + + if (gotFocus == AudioManager.AUDIOFOCUS_REQUEST_FAILED) { + JitsiMeetLogger.w(TAG + " Audio focus request failed"); + return false; + } + + return true; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioModeModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioModeModule.java new file mode 100644 index 0000000..95c1241 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/AudioModeModule.java @@ -0,0 +1,529 @@ +/* + * Copyright @ 2017-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 android.annotation.SuppressLint; +import android.app.Activity; +import android.content.Context; +import android.media.AudioManager; + +import com.facebook.react.bridge.Arguments; +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactContext; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.WritableArray; +import com.facebook.react.bridge.WritableMap; +import com.facebook.react.module.annotations.ReactModule; +import com.facebook.react.modules.core.DeviceEventManagerModule; + + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * Module implementing a simple API to select the appropriate audio device for a + * conference call. + * + * Audio calls should use {@code AudioModeModule.AUDIO_CALL}, which uses the + * builtin earpiece, wired headset or bluetooth headset. The builtin earpiece is + * the default audio device. + * + * Video calls should should use {@code AudioModeModule.VIDEO_CALL}, which uses + * the builtin speaker, earpiece, wired headset or bluetooth headset. The + * builtin speaker is the default audio device. + * + * Before a call has started and after it has ended the + * {@code AudioModeModule.DEFAULT} mode should be used. + */ +@ReactModule(name = AudioModeModule.NAME) +class AudioModeModule extends ReactContextBaseJavaModule { + public static final String NAME = "AudioMode"; + + /** + * Constants representing the audio mode. + * - DEFAULT: Used before and after every call. It represents the default + * audio routing scheme. + * - AUDIO_CALL: Used for audio only calls. It will use the earpiece by + * default, unless a wired or Bluetooth headset is connected. + * - VIDEO_CALL: Used for video calls. It will use the speaker by default, + * unless a wired or Bluetooth headset is connected. + */ + static final int DEFAULT = 0; + static final int AUDIO_CALL = 1; + static final int VIDEO_CALL = 2; + + /** + * The {@code Log} tag {@code AudioModeModule} is to log messages with. + */ + static final String TAG = NAME; + + /** + * Whether or not the ConnectionService is used for selecting audio devices. + */ + private static boolean useConnectionService_ = true; + + static boolean useConnectionService() { + return useConnectionService_; + } + + /** + * {@link AudioManager} instance used to interact with the Android audio + * subsystem. + */ + private AudioManager audioManager; + + private AudioDeviceHandlerInterface audioDeviceHandler; + + /** + * {@link ExecutorService} for running all audio operations on a dedicated + * thread. + */ + private static final ExecutorService executor = Executors.newSingleThreadExecutor(); + + /** + * Audio mode currently in use. + */ + private int mode = -1; + + /** + * Audio device types. + */ + static final String DEVICE_BLUETOOTH = "BLUETOOTH"; + static final String DEVICE_EARPIECE = "EARPIECE"; + static final String DEVICE_HEADPHONES = "HEADPHONES"; + static final String DEVICE_SPEAKER = "SPEAKER"; + + /** + * Device change event. + */ + private static final String DEVICE_CHANGE_EVENT = "org.jitsi.meet:features/audio-mode#devices-update"; + + /** + * List of currently available audio devices. + */ + private Set availableDevices = new HashSet<>(); + + /** + * Currently selected device. + */ + private String selectedDevice; + + /** + * User selected device. When null the default is used depending on the + * mode. + */ + private String userSelectedDevice; + + /** + * Whether or not audio is disabled. + */ + private boolean audioDisabled; + + /** + * Initializes a new module instance. There shall be a single instance of + * this module throughout the lifetime of the application. + * + * @param reactContext the {@link ReactApplicationContext} where this module + * is created. + */ + public AudioModeModule(ReactApplicationContext reactContext) { + super(reactContext); + + audioManager = (AudioManager)reactContext.getSystemService(Context.AUDIO_SERVICE); + } + + @ReactMethod + public void addListener(String eventName) { + // Keep: Required for RN built in Event Emitter Calls. + } + + @ReactMethod + public void removeListeners(Integer count) { + // Keep: Required for RN built in Event Emitter Calls. + } + + /** + * Gets a mapping with the constants this module is exporting. + * + * @return a {@link Map} mapping the constants to be exported with their + * values. + */ + @Override + public Map getConstants() { + Map constants = new HashMap<>(); + + constants.put("DEVICE_CHANGE_EVENT", DEVICE_CHANGE_EVENT); + constants.put("AUDIO_CALL", AUDIO_CALL); + constants.put("DEFAULT", DEFAULT); + constants.put("VIDEO_CALL", VIDEO_CALL); + + return constants; + } + + /** + * Notifies JS land that the devices list has changed. + */ + private void notifyDevicesChanged() { + runInAudioThread(new Runnable() { + @Override + public void run() { + WritableArray data = Arguments.createArray(); + final boolean hasHeadphones = availableDevices.contains(DEVICE_HEADPHONES); + for (String device : availableDevices) { + if (hasHeadphones && device.equals(DEVICE_EARPIECE)) { + // Skip earpiece when headphones are plugged in. + continue; + } + WritableMap deviceInfo = Arguments.createMap(); + deviceInfo.putString("type", device); + deviceInfo.putBoolean("selected", device.equals(selectedDevice)); + data.pushMap(deviceInfo); + } + getContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(DEVICE_CHANGE_EVENT, data); + JitsiMeetLogger.i(TAG + " Updating audio device list"); + } + }); + } + + /** + * Gets the name for this module to be used in the React Native bridge. + * + * @return a string with the module name. + */ + @Override + public String getName() { + return NAME; + } + + public ReactContext getContext(){ + return this.getReactApplicationContext(); + } + + /** + * Initializes the audio device handler module. This function is called *after* all Catalyst + * modules have been created, and that's why we use it, because {@link AudioDeviceHandlerConnectionService} + * needs access to another Catalyst module, so doing this in the constructor would be too early. + */ + @Override + public void initialize() { + runInAudioThread(new Runnable() { + @Override + public void run() { + setAudioDeviceHandler(); + } + }); + } + + private void setAudioDeviceHandler() { + if (audioDeviceHandler != null) { + audioDeviceHandler.stop(); + } + + audioDeviceHandler = null; + + if (audioDisabled) { + return; + } + + if (useConnectionService()) { + audioDeviceHandler = new AudioDeviceHandlerConnectionService(audioManager); + } else { + audioDeviceHandler = new AudioDeviceHandlerGeneric(audioManager); + } + + audioDeviceHandler.start(this); + } + + /** + * Helper function to run operations on a dedicated thread. + * @param runnable + */ + void runInAudioThread(Runnable runnable) { + executor.execute(runnable); + } + + /** + * Sets the user selected audio device as the active audio device. + * + * @param device the desired device which will become active. + */ + @ReactMethod + public void setAudioDevice(final String device) { + runInAudioThread(new Runnable() { + @Override + public void run() { + if (!availableDevices.contains(device)) { + JitsiMeetLogger.w(TAG + " Audio device not available: " + device); + userSelectedDevice = null; + return; + } + + if (mode != -1) { + JitsiMeetLogger.i(TAG + " User selected device set to: " + device); + userSelectedDevice = device; + updateAudioRoute(mode, false); + } + } + }); + } + + @ReactMethod + public void setDisabled(final boolean disabled, final Promise promise) { + if (audioDisabled == disabled) { + promise.resolve(null); + return; + } + + JitsiMeetLogger.i(TAG + " audio disabled: " + disabled); + + audioDisabled = disabled; + setAudioDeviceHandler(); + + if (disabled) { + mode = -1; + availableDevices.clear(); + resetSelectedDevice(); + } + + promise.resolve(null); + } + + /** + * Public method to set the current audio mode. + * + * @param mode the desired audio mode. + * @param promise a {@link Promise} which will be resolved if the audio mode + * could be updated successfully, and it will be rejected otherwise. + */ + @ReactMethod + public void setMode(final int mode, final Promise promise) { + if (audioDisabled) { + promise.resolve(null); + return; + } + + if (mode < DEFAULT || mode > VIDEO_CALL) { + promise.reject("setMode", "Invalid audio mode " + mode); + return; + } + + Activity currentActivity = getCurrentActivity(); + if (currentActivity != null) { + if (mode == DEFAULT) { + currentActivity.setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE); + } else { + currentActivity.setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); + } + } + + runInAudioThread(new Runnable() { + @Override + public void run() { + boolean success; + + try { + success = updateAudioRoute(mode, false); + } catch (Throwable e) { + success = false; + JitsiMeetLogger.e(e, TAG + " Failed to update audio route for mode: " + mode); + } + if (success) { + AudioModeModule.this.mode = mode; + promise.resolve(null); + } else { + promise.reject("setMode", "Failed to set audio mode to " + mode); + } + } + }); + } + + /** + * Sets whether ConnectionService should be used (if available) for setting the audio mode + * or not. + * + * @param use Boolean indicator of where it should be used or not. + */ + @ReactMethod + public void setUseConnectionService(final boolean use) { + runInAudioThread(new Runnable() { + @Override + public void run() { + useConnectionService_ = use; + setAudioDeviceHandler(); + } + }); + } + + /** + * Updates the audio route for the given mode. + * + * @param mode the audio mode to be used when computing the audio route. + * @return {@code true} if the audio route was updated successfully; + * {@code false}, otherwise. + */ + private boolean updateAudioRoute(int mode, boolean force) { + JitsiMeetLogger.i(TAG + " Update audio route for mode: " + mode); + + if (!audioDeviceHandler.setMode(mode)) { + return false; + } + + if (mode == DEFAULT) { + selectedDevice = null; + userSelectedDevice = null; + + notifyDevicesChanged(); + return true; + } + + boolean bluetoothAvailable = availableDevices.contains(DEVICE_BLUETOOTH); + boolean headsetAvailable = availableDevices.contains(DEVICE_HEADPHONES); + + // Pick the desired device based on what's available and the mode. + String audioDevice; + if (bluetoothAvailable) { + audioDevice = DEVICE_BLUETOOTH; + } else if (headsetAvailable) { + audioDevice = DEVICE_HEADPHONES; + } else { + audioDevice = DEVICE_SPEAKER; + } + + // Consider the user's selection + if (userSelectedDevice != null && availableDevices.contains(userSelectedDevice)) { + audioDevice = userSelectedDevice; + } + + // If the previously selected device and the current default one + // match, do nothing. + if (!force && selectedDevice != null && selectedDevice.equals(audioDevice)) { + return true; + } + + selectedDevice = audioDevice; + JitsiMeetLogger.i(TAG + " Selected audio device: " + audioDevice); + + audioDeviceHandler.setAudioRoute(audioDevice); + + notifyDevicesChanged(); + return true; + } + + /** + * Gets the currently selected audio device. + * + * @return The selected audio device. + */ + String getSelectedDevice() { + return selectedDevice; + } + + /** + * Resets the current device selection. + */ + void resetSelectedDevice() { + selectedDevice = null; + userSelectedDevice = null; + } + + /** + * Adds a new device to the list of available devices. + * + * @param device The new device. + */ + void addDevice(String device) { + availableDevices.add(device); + resetSelectedDevice(); + } + + /** + * Removes a device from the list of available devices. + * + * @param device The old device to the removed. + */ + void removeDevice(String device) { + availableDevices.remove(device); + resetSelectedDevice(); + } + + /** + * Replaces the current list of available devices with a new one. + * + * @param devices The new devices list. + */ + void replaceDevices(Set devices) { + availableDevices = devices; + resetSelectedDevice(); + } + + /** + * Re-sets the current audio route. Needed when devices changes have happened. + */ + void updateAudioRoute() { + if (mode != -1) { + updateAudioRoute(mode, false); + } + } + + /** + * Re-sets the current audio route. Needed when focus is lost and regained. + */ + void resetAudioRoute() { + if (mode != -1) { + updateAudioRoute(mode, true); + } + } + + /** + * Interface for the modules implementing the actual audio device management. + */ + interface AudioDeviceHandlerInterface { + /** + * Start detecting audio device changes. + * @param audioModeModule Reference to the main {@link AudioModeModule}. + */ + void start(AudioModeModule audioModeModule); + + /** + * Stop audio device detection. + */ + void stop(); + + /** + * Set the appropriate route for the given audio device. + * + * @param device Audio device for which the route must be set. + */ + void setAudioRoute(String device); + + /** + * Set the given audio mode. + * + * @param mode The new audio mode to be used. + * @return Whether the operation was successful or not. + */ + boolean setMode(int mode); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastAction.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastAction.java new file mode 100644 index 0000000..81af3cd --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastAction.java @@ -0,0 +1,66 @@ +package org.jitsi.meet.sdk; + +import android.content.Intent; +import android.os.Bundle; + +/** + * Wraps the name and extra data for events that were broadcasted locally. + */ +public class BroadcastAction { + private static final String TAG = BroadcastAction.class.getSimpleName(); + + private final Type type; + private final Bundle data; + + public BroadcastAction(Intent intent) { + this.type = Type.buildTypeFromAction(intent.getAction()); + this.data = intent.getExtras(); + } + + public Type getType() { + return this.type; + } + + public Bundle getData() { + return this.data; + } + + enum Type { + SET_AUDIO_MUTED("org.jitsi.meet.SET_AUDIO_MUTED"), + HANG_UP("org.jitsi.meet.HANG_UP"), + SEND_ENDPOINT_TEXT_MESSAGE("org.jitsi.meet.SEND_ENDPOINT_TEXT_MESSAGE"), + TOGGLE_SCREEN_SHARE("org.jitsi.meet.TOGGLE_SCREEN_SHARE"), + RETRIEVE_PARTICIPANTS_INFO("org.jitsi.meet.RETRIEVE_PARTICIPANTS_INFO"), + OPEN_CHAT("org.jitsi.meet.OPEN_CHAT"), + CLOSE_CHAT("org.jitsi.meet.CLOSE_CHAT"), + SEND_CHAT_MESSAGE("org.jitsi.meet.SEND_CHAT_MESSAGE"), + SET_VIDEO_MUTED("org.jitsi.meet.SET_VIDEO_MUTED"), + SET_CLOSED_CAPTIONS_ENABLED("org.jitsi.meet.SET_CLOSED_CAPTIONS_ENABLED"), + TOGGLE_CAMERA("org.jitsi.meet.TOGGLE_CAMERA"), + SHOW_NOTIFICATION("org.jitsi.meet.SHOW_NOTIFICATION"), + HIDE_NOTIFICATION("org.jitsi.meet.HIDE_NOTIFICATION"), + START_RECORDING("org.jitsi.meet.START_RECORDING"), + STOP_RECORDING("org.jitsi.meet.STOP_RECORDING"), + OVERWRITE_CONFIG("org.jitsi.meet.OVERWRITE_CONFIG"), + SEND_CAMERA_FACING_MODE_MESSAGE("org.jitsi.meet.SEND_CAMERA_FACING_MODE_MESSAGE"); + + private final String action; + + Type(String action) { + this.action = action; + } + + public String getAction() { + return action; + } + + private static Type buildTypeFromAction(String action) { + for (Type type : Type.values()) { + if (type.action.equalsIgnoreCase(action)) { + return type; + } + } + return null; + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEmitter.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEmitter.java new file mode 100644 index 0000000..bc6ed18 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEmitter.java @@ -0,0 +1,30 @@ +package org.jitsi.meet.sdk; + +import android.content.Context; +import android.content.Intent; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.facebook.react.bridge.ReadableMap; + +/** + * Class used to emit events through the LocalBroadcastManager, called when events + * from JS occurred. Takes an action name from JS, builds and broadcasts the {@link BroadcastEvent} + */ +public class BroadcastEmitter { + private final LocalBroadcastManager localBroadcastManager; + + public BroadcastEmitter(Context context) { + localBroadcastManager = LocalBroadcastManager.getInstance(context); + } + + public void sendBroadcast(String name, ReadableMap data) { + BroadcastEvent event = new BroadcastEvent(name, data); + + Intent intent = event.buildIntent(); + + if (intent != null) { + localBroadcastManager.sendBroadcast(intent); + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEvent.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEvent.java new file mode 100644 index 0000000..6a97671 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEvent.java @@ -0,0 +1,182 @@ +package org.jitsi.meet.sdk; + +import android.content.Intent; +import android.os.Bundle; + +import com.facebook.react.bridge.ReadableMap; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.util.HashMap; + +/** + * Wraps the name and extra data for the events that occur on the JS side and are + * to be broadcasted. + */ +public class BroadcastEvent { + + private static final String TAG = BroadcastEvent.class.getSimpleName(); + + private final Type type; + private final HashMap data; + + public BroadcastEvent(String name, ReadableMap data) { + this.type = Type.buildTypeFromName(name); + this.data = data.toHashMap(); + } + + public BroadcastEvent(Intent intent) { + this.type = Type.buildTypeFromAction(intent.getAction()); + this.data = buildDataFromBundle(intent.getExtras()); + } + + public Type getType() { + return this.type; + } + + public HashMap getData() { + return this.data; + } + + public Intent buildIntent() { + if (type != null && type.action != null) { + Intent intent = new Intent(type.action); + + for (String key : this.data.keySet()) { + try { + intent.putExtra(key, this.data.get(key).toString()); + } catch (Exception e) { + JitsiMeetLogger.w(TAG + " invalid extra data in event", e); + } + } + + return intent; + } + + return null; + } + + private static HashMap buildDataFromBundle(Bundle bundle) { + if (bundle != null) { + try { + HashMap map = new HashMap<>(); + + for (String key : bundle.keySet()) { + map.put(key, bundle.get(key)); + } + + return map; + } catch (Exception e) { + JitsiMeetLogger.w(TAG + " invalid extra data", e); + } + } + + return null; + } + + public enum Type { + CONFERENCE_BLURRED("org.jitsi.meet.CONFERENCE_BLURRED"), + CONFERENCE_FOCUSED("org.jitsi.meet.CONFERENCE_FOCUSED"), + CONFERENCE_JOINED("org.jitsi.meet.CONFERENCE_JOINED"), + CONFERENCE_TERMINATED("org.jitsi.meet.CONFERENCE_TERMINATED"), + CONFERENCE_WILL_JOIN("org.jitsi.meet.CONFERENCE_WILL_JOIN"), + AUDIO_MUTED_CHANGED("org.jitsi.meet.AUDIO_MUTED_CHANGED"), + PARTICIPANT_JOINED("org.jitsi.meet.PARTICIPANT_JOINED"), + PARTICIPANT_LEFT("org.jitsi.meet.PARTICIPANT_LEFT"), + ENDPOINT_TEXT_MESSAGE_RECEIVED("org.jitsi.meet.ENDPOINT_TEXT_MESSAGE_RECEIVED"), + SCREEN_SHARE_TOGGLED("org.jitsi.meet.SCREEN_SHARE_TOGGLED"), + PARTICIPANTS_INFO_RETRIEVED("org.jitsi.meet.PARTICIPANTS_INFO_RETRIEVED"), + CHAT_MESSAGE_RECEIVED("org.jitsi.meet.CHAT_MESSAGE_RECEIVED"), + CHAT_TOGGLED("org.jitsi.meet.CHAT_TOGGLED"), + VIDEO_MUTED_CHANGED("org.jitsi.meet.VIDEO_MUTED_CHANGED"), + READY_TO_CLOSE("org.jitsi.meet.READY_TO_CLOSE"), + TRANSCRIPTION_CHUNK_RECEIVED("org.jitsi.meet.TRANSCRIPTION_CHUNK_RECEIVED"), + CUSTOM_BUTTON_PRESSED("org.jitsi.meet.CUSTOM_BUTTON_PRESSED"), + CONFERENCE_UNIQUE_ID_SET("org.jitsi.meet.CONFERENCE_UNIQUE_ID_SET"), + RECORDING_STATUS_CHANGED("org.jitsi.meet.RECORDING_STATUS_CHANGED"); + + private static final String CONFERENCE_BLURRED_NAME = "CONFERENCE_BLURRED"; + private static final String CONFERENCE_FOCUSED_NAME = "CONFERENCE_FOCUSED"; + private static final String CONFERENCE_WILL_JOIN_NAME = "CONFERENCE_WILL_JOIN"; + private static final String CONFERENCE_JOINED_NAME = "CONFERENCE_JOINED"; + private static final String CONFERENCE_TERMINATED_NAME = "CONFERENCE_TERMINATED"; + private static final String AUDIO_MUTED_CHANGED_NAME = "AUDIO_MUTED_CHANGED"; + private static final String PARTICIPANT_JOINED_NAME = "PARTICIPANT_JOINED"; + private static final String PARTICIPANT_LEFT_NAME = "PARTICIPANT_LEFT"; + private static final String ENDPOINT_TEXT_MESSAGE_RECEIVED_NAME = "ENDPOINT_TEXT_MESSAGE_RECEIVED"; + private static final String SCREEN_SHARE_TOGGLED_NAME = "SCREEN_SHARE_TOGGLED"; + private static final String PARTICIPANTS_INFO_RETRIEVED_NAME = "PARTICIPANTS_INFO_RETRIEVED"; + private static final String CHAT_MESSAGE_RECEIVED_NAME = "CHAT_MESSAGE_RECEIVED"; + private static final String CHAT_TOGGLED_NAME = "CHAT_TOGGLED"; + private static final String VIDEO_MUTED_CHANGED_NAME = "VIDEO_MUTED_CHANGED"; + private static final String READY_TO_CLOSE_NAME = "READY_TO_CLOSE"; + private static final String TRANSCRIPTION_CHUNK_RECEIVED_NAME = "TRANSCRIPTION_CHUNK_RECEIVED"; + private static final String CUSTOM_BUTTON_PRESSED_NAME = "CUSTOM_BUTTON_PRESSED"; + private static final String CONFERENCE_UNIQUE_ID_SET_NAME = "CONFERENCE_UNIQUE_ID_SET"; + private static final String RECORDING_STATUS_CHANGED_NAME = "RECORDING_STATUS_CHANGED"; + + private final String action; + + Type(String action) { + this.action = action; + } + + public String getAction() { + return action; + } + + private static Type buildTypeFromAction(String action) { + for (Type type : Type.values()) { + if (type.action.equalsIgnoreCase(action)) { + return type; + } + } + return null; + } + + private static Type buildTypeFromName(String name) { + switch (name) { + case CONFERENCE_BLURRED_NAME: + return CONFERENCE_BLURRED; + case CONFERENCE_FOCUSED_NAME: + return CONFERENCE_FOCUSED; + case CONFERENCE_WILL_JOIN_NAME: + return CONFERENCE_WILL_JOIN; + case CONFERENCE_JOINED_NAME: + return CONFERENCE_JOINED; + case CONFERENCE_TERMINATED_NAME: + return CONFERENCE_TERMINATED; + case AUDIO_MUTED_CHANGED_NAME: + return AUDIO_MUTED_CHANGED; + case PARTICIPANT_JOINED_NAME: + return PARTICIPANT_JOINED; + case PARTICIPANT_LEFT_NAME: + return PARTICIPANT_LEFT; + case ENDPOINT_TEXT_MESSAGE_RECEIVED_NAME: + return ENDPOINT_TEXT_MESSAGE_RECEIVED; + case SCREEN_SHARE_TOGGLED_NAME: + return SCREEN_SHARE_TOGGLED; + case PARTICIPANTS_INFO_RETRIEVED_NAME: + return PARTICIPANTS_INFO_RETRIEVED; + case CHAT_MESSAGE_RECEIVED_NAME: + return CHAT_MESSAGE_RECEIVED; + case CHAT_TOGGLED_NAME: + return CHAT_TOGGLED; + case VIDEO_MUTED_CHANGED_NAME: + return VIDEO_MUTED_CHANGED; + case READY_TO_CLOSE_NAME: + return READY_TO_CLOSE; + case TRANSCRIPTION_CHUNK_RECEIVED_NAME: + return TRANSCRIPTION_CHUNK_RECEIVED; + case CUSTOM_BUTTON_PRESSED_NAME: + return CUSTOM_BUTTON_PRESSED; + case CONFERENCE_UNIQUE_ID_SET_NAME: + return CONFERENCE_UNIQUE_ID_SET; + case RECORDING_STATUS_CHANGED_NAME: + return RECORDING_STATUS_CHANGED; + } + + return null; + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastIntentHelper.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastIntentHelper.java new file mode 100644 index 0000000..f912712 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastIntentHelper.java @@ -0,0 +1,157 @@ +package org.jitsi.meet.sdk; + +import android.content.Intent; +import android.os.Bundle; + +public class BroadcastIntentHelper { + public static Intent buildSetAudioMutedIntent(boolean muted) { + Intent intent = new Intent(BroadcastAction.Type.SET_AUDIO_MUTED.getAction()); + intent.putExtra("muted", muted); + + return intent; + } + + public static Intent buildHangUpIntent() { + return new Intent(BroadcastAction.Type.HANG_UP.getAction()); + } + + public static Intent buildSendEndpointTextMessageIntent(String to, String message) { + Intent intent = new Intent(BroadcastAction.Type.SEND_ENDPOINT_TEXT_MESSAGE.getAction()); + intent.putExtra("to", to); + intent.putExtra("message", message); + + return intent; + } + + public static Intent buildToggleScreenShareIntent(boolean enabled) { + Intent intent = new Intent(BroadcastAction.Type.TOGGLE_SCREEN_SHARE.getAction()); + intent.putExtra("enabled", enabled); + + return intent; + } + + public static Intent buildOpenChatIntent(String participantId) { + Intent intent = new Intent(BroadcastAction.Type.OPEN_CHAT.getAction()); + intent.putExtra("to", participantId); + + return intent; + } + + public static Intent buildCloseChatIntent() { + return new Intent(BroadcastAction.Type.CLOSE_CHAT.getAction()); + } + + public static Intent buildSendChatMessageIntent(String participantId, String message) { + Intent intent = new Intent(BroadcastAction.Type.SEND_CHAT_MESSAGE.getAction()); + intent.putExtra("to", participantId); + intent.putExtra("message", message); + + return intent; + } + + public static Intent buildSetVideoMutedIntent(boolean muted) { + Intent intent = new Intent(BroadcastAction.Type.SET_VIDEO_MUTED.getAction()); + intent.putExtra("muted", muted); + + return intent; + } + + public static Intent buildSetClosedCaptionsEnabledIntent(boolean enabled) { + Intent intent = new Intent(BroadcastAction.Type.SET_CLOSED_CAPTIONS_ENABLED.getAction()); + intent.putExtra("enabled", enabled); + + return intent; + } + + public static Intent buildRetrieveParticipantsInfo(String requestId) { + Intent intent = new Intent(BroadcastAction.Type.RETRIEVE_PARTICIPANTS_INFO.getAction()); + intent.putExtra("requestId", requestId); + + return intent; + } + + public static Intent buildToggleCameraIntent() { + return new Intent(BroadcastAction.Type.TOGGLE_CAMERA.getAction()); + } + + public static Intent buildShowNotificationIntent( + String appearance, String description, String timeout, String title, String uid) { + Intent intent = new Intent(BroadcastAction.Type.SHOW_NOTIFICATION.getAction()); + intent.putExtra("appearance", appearance); + intent.putExtra("description", description); + intent.putExtra("timeout", timeout); + intent.putExtra("title", title); + intent.putExtra("uid", uid); + + return intent; + } + + public static Intent buildHideNotificationIntent(String uid) { + Intent intent = new Intent(BroadcastAction.Type.HIDE_NOTIFICATION.getAction()); + intent.putExtra("uid", uid); + + return intent; + } + + public enum RecordingMode { + FILE("file"), + STREAM("stream"); + + private final String mode; + + RecordingMode(String mode) { + this.mode = mode; + } + + public String getMode() { + return mode; + } + } + + public static Intent buildStartRecordingIntent( + RecordingMode mode, + String dropboxToken, + boolean shouldShare, + String rtmpStreamKey, + String rtmpBroadcastID, + String youtubeStreamKey, + String youtubeBroadcastID, + Bundle extraMetadata, + boolean transcription) { + Intent intent = new Intent(BroadcastAction.Type.START_RECORDING.getAction()); + intent.putExtra("mode", mode.getMode()); + intent.putExtra("dropboxToken", dropboxToken); + intent.putExtra("shouldShare", shouldShare); + intent.putExtra("rtmpStreamKey", rtmpStreamKey); + intent.putExtra("rtmpBroadcastID", rtmpBroadcastID); + intent.putExtra("youtubeStreamKey", youtubeStreamKey); + intent.putExtra("youtubeBroadcastID", youtubeBroadcastID); + intent.putExtra("extraMetadata", extraMetadata); + intent.putExtra("transcription", transcription); + + return intent; + } + + public static Intent buildStopRecordingIntent(RecordingMode mode, boolean transcription) { + Intent intent = new Intent(BroadcastAction.Type.STOP_RECORDING.getAction()); + intent.putExtra("mode", mode.getMode()); + intent.putExtra("transcription", transcription); + + return intent; + } + + public static Intent buildOverwriteConfigIntent(Bundle config) { + Intent intent = new Intent(BroadcastAction.Type.OVERWRITE_CONFIG.getAction()); + intent.putExtra("config", config); + + return intent; + } + + public static Intent buildSendCameraFacingModeMessageIntent(String to, String facingMode) { + Intent intent = new Intent(BroadcastAction.Type.SEND_CAMERA_FACING_MODE_MESSAGE.getAction()); + intent.putExtra("to", to); + intent.putExtra("facingMode", facingMode); + + return intent; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastReceiver.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastReceiver.java new file mode 100644 index 0000000..64cec20 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastReceiver.java @@ -0,0 +1,44 @@ +package org.jitsi.meet.sdk; + +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; + +import com.facebook.react.bridge.Arguments; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +/** + * Listens for {@link BroadcastAction}s on LocalBroadcastManager. When one occurs, + * it emits it to JS. + */ +public class BroadcastReceiver extends android.content.BroadcastReceiver { + + public BroadcastReceiver(Context context) { + LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context); + + IntentFilter intentFilter = new IntentFilter(); + + for (BroadcastAction.Type type : BroadcastAction.Type.values()) { + intentFilter.addAction(type.getAction()); + } + + localBroadcastManager.registerReceiver(this, intentFilter); + } + + @Override + public void onReceive(Context context, Intent intent) { + BroadcastAction action = new BroadcastAction(intent); + String actionName = action.getType().getAction(); + Bundle data = action.getData(); + + // For actions without data bundle (like hangup), we create an empty map + // instead of attempting to convert a null bundle to avoid crashes. + if (data != null) { + ReactInstanceManagerHolder.emitEvent(actionName, Arguments.fromBundle(data)); + } else { + ReactInstanceManagerHolder.emitEvent(actionName, Arguments.createMap()); + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ConnectionService.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ConnectionService.java new file mode 100644 index 0000000..d66e1d8 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ConnectionService.java @@ -0,0 +1,452 @@ +package org.jitsi.meet.sdk; + +import android.content.ComponentName; +import android.content.Context; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.telecom.CallAudioState; +import android.telecom.Connection; +import android.telecom.ConnectionRequest; +import android.telecom.DisconnectCause; +import android.telecom.PhoneAccount; +import android.telecom.PhoneAccountHandle; +import android.telecom.TelecomManager; +import android.telecom.VideoProfile; + +import androidx.annotation.RequiresApi; + +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.bridge.WritableNativeMap; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Jitsi Meet implementation of {@link ConnectionService}. At the time of this + * writing it implements only the outgoing call scenario. + * + * NOTE the class needs to be public, but is not part of the SDK API and should + * never be used directly. + * + * @author Pawel Domas + */ +public class ConnectionService extends android.telecom.ConnectionService { + + /** + * Tag used for logging. + */ + static final String TAG = "JitsiConnectionService"; + + /** + * The extra added to the {@link ConnectionImpl} and + * {@link ConnectionRequest} which stores the {@link PhoneAccountHandle} + * created for the call. + */ + static final String EXTRA_PHONE_ACCOUNT_HANDLE + = "org.jitsi.meet.sdk.connection_service.PHONE_ACCOUNT_HANDLE"; + + /** + * Connections mapped by call UUID. + */ + static private final Map connections + = new HashMap<>(); + + /** + * The start call Promises mapped by call UUID. + */ + static private final HashMap startCallPromises + = new HashMap<>(); + + /** + * Aborts all ongoing connections. This is a last resort mechanism which forces all resources to + * be freed on the system in case of fatal error. + */ + static void abortConnections() { + for (ConnectionImpl connection: getConnections()) { + connection.onAbort(); + } + } + + /** + * Adds {@link ConnectionImpl} to the list. + * + * @param connection - {@link ConnectionImpl} + */ + static void addConnection(ConnectionImpl connection) { + connections.put(connection.getCallUUID(), connection); + } + + /** + * Returns all {@link ConnectionImpl} instances held in this list. + * + * @return a list of {@link ConnectionImpl}. + */ + static List getConnections() { + return new ArrayList<>(connections.values()); + } + + /** + * @return {@code true} if running a Samsung device. + */ + static boolean isSamsungDevice() { + return android.os.Build.MANUFACTURER.toLowerCase().contains("samsung"); + } + + /** + * Registers a start call promise. + * + * @param uuid - the call UUID to which the start call promise belongs to. + * @param promise - the Promise instance to be stored for later use. + */ + static void registerStartCallPromise(String uuid, Promise promise) { + startCallPromises.put(uuid, promise); + } + + /** + * Removes {@link ConnectionImpl} from the list. + * + * @param connection - {@link ConnectionImpl} + */ + static void removeConnection(ConnectionImpl connection) { + connections.remove(connection.getCallUUID()); + } + + /** + * Used to adjusts the connection's state to + * {@link android.telecom.Connection#STATE_ACTIVE}. + * + * @param callUUID the call UUID which identifies the connection. + * @return Whether the connection was set as active or not. + */ + static boolean setConnectionActive(String callUUID) { + ConnectionImpl connection = connections.get(callUUID); + + if (connection != null) { + connection.setActive(); + return true; + } else { + JitsiMeetLogger.w("%s setConnectionActive - no connection for UUID: %s", TAG, callUUID); + return false; + } + } + + /** + * Used to adjusts the connection's state to + * {@link android.telecom.Connection#STATE_DISCONNECTED}. + * + * @param callUUID the call UUID which identifies the connection. + * @param cause disconnection reason. + */ + static void setConnectionDisconnected(String callUUID, DisconnectCause cause) { + ConnectionImpl connection = connections.get(callUUID); + + if (connection != null) { + if (isSamsungDevice()) { + // Required to release the audio focus correctly. + connection.setOnHold(); + // Prevents from including in the native phone calls history + connection.setConnectionProperties( + Connection.PROPERTY_SELF_MANAGED + | Connection.PROPERTY_IS_EXTERNAL_CALL); + } + // Note that the connection is not removed from the list here, but + // in ConnectionImpl's state changed callback. It's a safer + // approach, because in case the app would crash on the JavaScript + // side the calls would be cleaned up by the system they would still + // be removed from the ConnectionList. + connection.setDisconnected(cause); + connection.destroy(); + } else { + JitsiMeetLogger.e(TAG + " endCall no connection for UUID: " + callUUID); + } + } + + /** + * Unregisters a start call promise. Must be called after the Promise is + * rejected or resolved. + * + * @param uuid the call UUID which identifies the call to which the promise + * belongs to. + * @return the unregistered Promise instance or null if there + * wasn't any for the given call UUID. + */ + static Promise unregisterStartCallPromise(String uuid) { + return startCallPromises.remove(uuid); + } + + /** + * Used to adjusts the call's state. + * + * @param callUUID the call UUID which identifies the connection. + * @param callState a map which carries the properties to be modified. See + * "KEY_*" constants in {@link ConnectionImpl} for the list of keys. + */ + static void updateCall(String callUUID, ReadableMap callState) { + ConnectionImpl connection = connections.get(callUUID); + + if (connection != null) { + if (callState.hasKey(ConnectionImpl.KEY_HAS_VIDEO)) { + boolean hasVideo + = callState.getBoolean(ConnectionImpl.KEY_HAS_VIDEO); + + JitsiMeetLogger.i(" %s updateCall: %s hasVideo: %s", TAG, callUUID, hasVideo); + connection.setVideoState( + hasVideo + ? VideoProfile.STATE_BIDIRECTIONAL + : VideoProfile.STATE_AUDIO_ONLY); + } + } else { + JitsiMeetLogger.e(TAG + " updateCall no connection for UUID: " + callUUID); + } + } + + @Override + public Connection onCreateOutgoingConnection( + PhoneAccountHandle accountHandle, ConnectionRequest request) { + ConnectionImpl connection = new ConnectionImpl(); + + connection.setConnectionProperties(Connection.PROPERTY_SELF_MANAGED); + connection.setAddress( + request.getAddress(), + TelecomManager.PRESENTATION_UNKNOWN); + connection.setExtras(request.getExtras()); + + connection.setAudioModeIsVoip(true); + + // NOTE there's a time gap between the placeCall and this callback when + // things could get out of sync, but they are put back in sync once + // the startCall Promise is resolved below. That's because on + // the JavaScript side there's a logic to sync up in .then() callback. + connection.setVideoState(request.getVideoState()); + + Bundle moreExtras = new Bundle(); + + moreExtras.putParcelable( + EXTRA_PHONE_ACCOUNT_HANDLE, + Objects.requireNonNull(request.getAccountHandle(), "accountHandle")); + connection.putExtras(moreExtras); + + addConnection(connection); + + Promise startCallPromise + = unregisterStartCallPromise(connection.getCallUUID()); + + if (startCallPromise != null) { + JitsiMeetLogger.d(TAG + " onCreateOutgoingConnection " + connection.getCallUUID()); + startCallPromise.resolve(null); + } else { + JitsiMeetLogger.e( + TAG + " onCreateOutgoingConnection: no start call Promise for " + connection.getCallUUID()); + } + + return connection; + } + + @Override + public Connection onCreateIncomingConnection( + PhoneAccountHandle accountHandle, ConnectionRequest request) { + throw new RuntimeException("Not implemented"); + } + + @Override + public void onCreateIncomingConnectionFailed( + PhoneAccountHandle accountHandle, ConnectionRequest request) { + throw new RuntimeException("Not implemented"); + } + + @Override + public void onCreateOutgoingConnectionFailed( + PhoneAccountHandle accountHandle, ConnectionRequest request) { + PhoneAccountHandle theAccountHandle = request.getAccountHandle(); + String callUUID = theAccountHandle.getId(); + + JitsiMeetLogger.e(TAG + " onCreateOutgoingConnectionFailed " + callUUID); + + if (callUUID != null) { + Promise startCallPromise = unregisterStartCallPromise(callUUID); + + if (startCallPromise != null) { + startCallPromise.reject( + "CREATE_OUTGOING_CALL_FAILED", + "The request has been denied by the system"); + } else { + JitsiMeetLogger.e(TAG + " startCallFailed - no start call Promise for UUID: " + callUUID); + } + } else { + JitsiMeetLogger.e(TAG + " onCreateOutgoingConnectionFailed - no call UUID"); + } + + unregisterPhoneAccount(theAccountHandle); + } + + private void unregisterPhoneAccount(PhoneAccountHandle phoneAccountHandle) { + TelecomManager telecom = getSystemService(TelecomManager.class); + if (telecom != null) { + if (phoneAccountHandle != null) { + telecom.unregisterPhoneAccount(phoneAccountHandle); + } else { + JitsiMeetLogger.e(TAG + " unregisterPhoneAccount - account handle is null"); + } + } else { + JitsiMeetLogger.e(TAG + " unregisterPhoneAccount - telecom is null"); + } + } + + /** + * Registers new {@link PhoneAccountHandle}. + * + * @param context the current Android context. + * @param address the phone account's address. At the time of this writing + * it's the call handle passed from the Java Script side. + * @param callUUID the call's UUID for which the account is to be created. + * It will be used as the account's id. + * @return {@link PhoneAccountHandle} described by the given arguments. + */ + static PhoneAccountHandle registerPhoneAccount( + Context context, Uri address, String callUUID) { + PhoneAccountHandle phoneAccountHandle + = new PhoneAccountHandle( + new ComponentName(context, ConnectionService.class), + callUUID); + + PhoneAccount.Builder builder + = PhoneAccount.builder(phoneAccountHandle, address.toString()) + .setAddress(address) + .setCapabilities(PhoneAccount.CAPABILITY_SELF_MANAGED | + PhoneAccount.CAPABILITY_VIDEO_CALLING | + PhoneAccount.CAPABILITY_SUPPORTS_VIDEO_CALLING) + .addSupportedUriScheme(PhoneAccount.SCHEME_SIP); + + PhoneAccount account = builder.build(); + + TelecomManager telecomManager + = context.getSystemService(TelecomManager.class); + telecomManager.registerPhoneAccount(account); + + return phoneAccountHandle; + } + + /** + * Connection implementation for Jitsi Meet's {@link ConnectionService}. + * + * @author Pawel Domas + */ + class ConnectionImpl extends Connection { + + /** + * The constant which defines the key for the "has video" property. + * The key is used in the map which carries the call's state passed as + * the argument of the {@link RNConnectionService#updateCall} method. + */ + static final String KEY_HAS_VIDEO = "hasVideo"; + + /** + * Called when system wants to disconnect the call. + * + * {@inheritDoc} + */ + @Override + public void onDisconnect() { + JitsiMeetLogger.i(TAG + " onDisconnect " + getCallUUID()); + WritableNativeMap data = new WritableNativeMap(); + data.putString("callUUID", getCallUUID()); + RNConnectionService.getInstance().emitEvent( + "org.jitsi.meet:features/connection_service#disconnect", + data); + // The JavaScript side will not go back to the native with + // 'endCall', so the Connection must be removed immediately. + setConnectionDisconnected( + getCallUUID(), + new DisconnectCause(DisconnectCause.LOCAL)); + } + + /** + * Called when system wants to abort the call. + * + * {@inheritDoc} + */ + @Override + public void onAbort() { + JitsiMeetLogger.i(TAG + " onAbort " + getCallUUID()); + WritableNativeMap data = new WritableNativeMap(); + data.putString("callUUID", getCallUUID()); + RNConnectionService.getInstance().emitEvent( + "org.jitsi.meet:features/connection_service#abort", + data); + // The JavaScript side will not go back to the native with + // 'endCall', so the Connection must be removed immediately. + setConnectionDisconnected( + getCallUUID(), + new DisconnectCause(DisconnectCause.CANCELED)); + } + + @Override + public void onHold() { + // What ?! Android will still call this method even if we do not add + // the HOLD capability, so do the same thing as on abort. + // TODO implement HOLD + JitsiMeetLogger.w(TAG + " onHold %s - HOLD is not supported, aborting the call...", getCallUUID()); + this.onAbort(); + } + + /** + * Called when there's change to the call audio state. Either by + * the system after the connection is initialized or in response to + * {@link #setAudioRoute(int)}. + * + * @param state the new {@link CallAudioState} + */ + @Override + public void onCallAudioStateChanged(CallAudioState state) { + JitsiMeetLogger.d(TAG + " onCallAudioStateChanged: " + state); + RNConnectionService module = RNConnectionService.getInstance(); + if (module != null) { + module.onCallAudioStateChange(state); + } + } + + /** + * Unregisters the account when the call is disconnected. + * + * @param state - the new connection's state. + */ + @Override + public void onStateChanged(int state) { + JitsiMeetLogger.d( + "%s onStateChanged: %s %s", TAG, Connection.stateToString(state), getCallUUID()); + + if (state == STATE_DISCONNECTED) { + removeConnection(this); + unregisterPhoneAccount(getPhoneAccountHandle()); + } + } + + /** + * Retrieves the UUID of the call associated with this connection. + * + * @return call UUID + */ + String getCallUUID() { + return getPhoneAccountHandle().getId(); + } + + private PhoneAccountHandle getPhoneAccountHandle() { + return getExtras().getParcelable( + ConnectionService.EXTRA_PHONE_ACCOUNT_HANDLE); + } + + @Override + public String toString() { + return String.format( + "ConnectionImpl[address=%s, uuid=%s]@%d", + getAddress(), getCallUUID(), hashCode()); + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/DefaultHardwareBackBtnHandlerImpl.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/DefaultHardwareBackBtnHandlerImpl.java new file mode 100644 index 0000000..e31a72f --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/DefaultHardwareBackBtnHandlerImpl.java @@ -0,0 +1,65 @@ +/* + * Copyright @ 2019-present 8x8, Inc. + * Copyright @ 2017-2018 Atlassian Pty Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jitsi.meet.sdk; + +import android.app.Activity; + +import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; + +/** + * Defines the default behavior of {@code JitsiMeetFragment} and + * {@code JitsiMeetView} upon invoking the back button if no + * {@code JitsiMeetView} handles the invocation. For example, a + * {@code JitsiMeetView} may (1) handle the invocation of the back button + * during a conference by leaving the conference and (2) not handle the + * invocation when not in a conference. + */ +class DefaultHardwareBackBtnHandlerImpl implements DefaultHardwareBackBtnHandler { + + /** + * The {@code Activity} to which the default handling of the back button + * is being provided by this instance. + */ + private final Activity activity; + + /** + * Initializes a new {@code DefaultHardwareBackBtnHandlerImpl} instance to + * provide the default handling of the back button to a specific + * {@code Activity}. + * + * @param activity the {@code Activity} to which the new instance is to + * provide the default behavior of the back button + */ + public DefaultHardwareBackBtnHandlerImpl(Activity activity) { + this.activity = activity; + } + + /** + * {@inheritDoc} + * + * Finishes the associated {@code Activity}. + */ + @Override + public void invokeDefaultOnBackPressed() { + // Technically, we'd like to invoke Activity#onBackPressed(). + // Practically, it's not possible. Fortunately, the documentation of + // Activity#onBackPressed() specifies that "[t]he default implementation + // simply finishes the current activity," + activity.finish(); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/DropboxModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/DropboxModule.java new file mode 100644 index 0000000..ce137bb --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/DropboxModule.java @@ -0,0 +1,204 @@ +package org.jitsi.meet.sdk; + +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.text.TextUtils; + +import com.dropbox.core.DbxException; +import com.dropbox.core.DbxRequestConfig; +import com.dropbox.core.android.Auth; +import com.dropbox.core.oauth.DbxCredential; +import com.dropbox.core.v2.DbxClientV2; +import com.dropbox.core.v2.users.FullAccount; +import com.dropbox.core.v2.users.SpaceAllocation; +import com.dropbox.core.v2.users.SpaceUsage; +import com.facebook.react.bridge.Arguments; +import com.facebook.react.bridge.LifecycleEventListener; +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.WritableMap; +import com.facebook.react.module.annotations.ReactModule; + +import java.util.HashMap; +import java.util.Map; + +/** + * Implements the react-native module for the dropbox integration. + */ +@ReactModule(name = DropboxModule.NAME) +class DropboxModule + extends ReactContextBaseJavaModule + implements LifecycleEventListener { + + public static final String NAME = "Dropbox"; + + private String appKey; + + private String clientId; + + private final boolean isEnabled; + + private Promise promise; + + public DropboxModule(ReactApplicationContext reactContext) { + super(reactContext); + + String pkg = reactContext.getApplicationContext().getPackageName(); + int resId = reactContext.getResources() + .getIdentifier("dropbox_app_key", "string", pkg); + appKey + = reactContext.getString(resId); + isEnabled = !TextUtils.isEmpty(appKey); + + clientId = generateClientId(); + + reactContext.addLifecycleEventListener(this); + } + + /** + * Executes the dropbox auth flow. + * + * @param promise The promise used to return the result of the auth flow. + */ + @ReactMethod + public void authorize(final Promise promise) { + if (isEnabled) { + Auth.startOAuth2PKCE(this.getCurrentActivity(), appKey, DbxRequestConfig.newBuilder(clientId).build()); + this.promise = promise; + } else { + promise.reject( + new Exception("Dropbox integration isn't configured.")); + } + } + + /** + * Generate a client identifier for the dropbox sdk. + * + * @returns a client identifier for the dropbox sdk. + * @see {https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.0.x/com/dropbox/core/DbxRequestConfig.html#getClientIdentifier--} + */ + private String generateClientId() { + Context context = getReactApplicationContext(); + PackageManager packageManager = context.getPackageManager(); + ApplicationInfo applicationInfo = null; + PackageInfo packageInfo = null; + + try { + String packageName = context.getPackageName(); + + applicationInfo = packageManager.getApplicationInfo(packageName, 0); + packageInfo = packageManager.getPackageInfo(packageName, 0); + } catch (PackageManager.NameNotFoundException e) { + } + + String applicationLabel + = applicationInfo == null + ? "JitsiMeet" + : packageManager.getApplicationLabel(applicationInfo).toString() + .replaceAll("\\s", ""); + String version = packageInfo == null ? "dev" : packageInfo.versionName; + + return applicationLabel + "/" + version; + } + + @Override + public Map getConstants() { + Map constants = new HashMap<>(); + + constants.put("ENABLED", isEnabled); + + return constants; + } + + /** + * Resolves the current user dropbox display name. + * + * @param token A dropbox access token. + * @param promise The promise used to return the result of the auth flow. + */ + @ReactMethod + public void getDisplayName(final String token, final Promise promise) { + DbxRequestConfig config = DbxRequestConfig.newBuilder(clientId).build(); + DbxClientV2 client = new DbxClientV2(config, token); + + // Get current account info + try { + FullAccount account = client.users().getCurrentAccount(); + + promise.resolve(account.getName().getDisplayName()); + } catch (DbxException e) { + promise.reject(e); + } + } + + @Override + public String getName() { + return NAME; + } + + /** + * Resolves the current user space usage. + * + * @param token A dropbox access token. + * @param promise The promise used to return the result of the auth flow. + */ + @ReactMethod + public void getSpaceUsage(final String token, final Promise promise) { + DbxRequestConfig config = DbxRequestConfig.newBuilder(clientId).build(); + DbxClientV2 client = new DbxClientV2(config, token); + + try { + SpaceUsage spaceUsage = client.users().getSpaceUsage(); + WritableMap map = Arguments.createMap(); + + map.putString("used", String.valueOf(spaceUsage.getUsed())); + + SpaceAllocation allocation = spaceUsage.getAllocation(); + long allocated = 0; + + if (allocation.isIndividual()) { + allocated += allocation.getIndividualValue().getAllocated(); + } + if (allocation.isTeam()) { + allocated += allocation.getTeamValue().getAllocated(); + } + map.putString("allocated", String.valueOf(allocated)); + + promise.resolve(map); + } catch (DbxException e) { + promise.reject(e); + } + } + + @Override + public void onHostDestroy() {} + + @Override + public void onHostPause() {} + + @Override + public void onHostResume() { + DbxCredential credential = Auth.getDbxCredential(); + + if (this.promise != null ) { + if (credential != null) { + WritableMap result = Arguments.createMap(); + result.putString("token", credential.getAccessToken()); + result.putString("rToken", credential.getRefreshToken()); + result.putDouble("expireDate", credential.getExpiresAt()); + + this.promise.resolve(result); + this.promise = null; + } else { + this.promise.reject("Invalid dropbox credentials"); + } + + this.promise = null; + } + + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ExternalAPIModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ExternalAPIModule.java new file mode 100644 index 0000000..5b24140 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ExternalAPIModule.java @@ -0,0 +1,126 @@ +/* + * Copyright @ 2017-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.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.module.annotations.ReactModule; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.util.HashMap; +import java.util.Map; + +/** + * Module implementing an API for sending events from JavaScript to native code. + */ +@ReactModule(name = ExternalAPIModule.NAME) +class ExternalAPIModule extends ReactContextBaseJavaModule { + + public static final String NAME = "ExternalAPI"; + + private static final String TAG = NAME; + + private final BroadcastEmitter broadcastEmitter; + private final BroadcastReceiver broadcastReceiver; + + /** + * Initializes a new module instance. There shall be a single instance of + * this module throughout the lifetime of the app. + * + * @param reactContext the {@link ReactApplicationContext} where this module + * is created. + */ + public ExternalAPIModule(ReactApplicationContext reactContext) { + super(reactContext); + + broadcastEmitter = new BroadcastEmitter(reactContext); + broadcastReceiver = new BroadcastReceiver(reactContext); + + ParticipantsService.init(reactContext); + } + + @ReactMethod + public void addListener(String eventName) { + // Keep: Required for RN built in Event Emitter Calls. + } + + @ReactMethod + public void removeListeners(Integer count) { + // Keep: Required for RN built in Event Emitter Calls. + } + + /** + * Gets the name of this module to be used in the React Native bridge. + * + * @return The name of this module to be used in the React Native bridge. + */ + @Override + public String getName() { + return NAME; + } + + /** + * Gets a mapping with the constants this module is exporting. + * + * @return a {@link Map} mapping the constants to be exported with their + * values. + */ + @Override + public Map getConstants() { + Map constants = new HashMap<>(); + + constants.put("SET_AUDIO_MUTED", BroadcastAction.Type.SET_AUDIO_MUTED.getAction()); + constants.put("HANG_UP", BroadcastAction.Type.HANG_UP.getAction()); + constants.put("SEND_ENDPOINT_TEXT_MESSAGE", BroadcastAction.Type.SEND_ENDPOINT_TEXT_MESSAGE.getAction()); + constants.put("TOGGLE_SCREEN_SHARE", BroadcastAction.Type.TOGGLE_SCREEN_SHARE.getAction()); + constants.put("RETRIEVE_PARTICIPANTS_INFO", BroadcastAction.Type.RETRIEVE_PARTICIPANTS_INFO.getAction()); + constants.put("OPEN_CHAT", BroadcastAction.Type.OPEN_CHAT.getAction()); + constants.put("CLOSE_CHAT", BroadcastAction.Type.CLOSE_CHAT.getAction()); + constants.put("SEND_CHAT_MESSAGE", BroadcastAction.Type.SEND_CHAT_MESSAGE.getAction()); + constants.put("SET_VIDEO_MUTED", BroadcastAction.Type.SET_VIDEO_MUTED.getAction()); + constants.put("SET_CLOSED_CAPTIONS_ENABLED", BroadcastAction.Type.SET_CLOSED_CAPTIONS_ENABLED.getAction()); + constants.put("TOGGLE_CAMERA", BroadcastAction.Type.TOGGLE_CAMERA.getAction()); + constants.put("SHOW_NOTIFICATION", BroadcastAction.Type.SHOW_NOTIFICATION.getAction()); + constants.put("HIDE_NOTIFICATION", BroadcastAction.Type.HIDE_NOTIFICATION.getAction()); + constants.put("START_RECORDING", BroadcastAction.Type.START_RECORDING.getAction()); + constants.put("STOP_RECORDING", BroadcastAction.Type.STOP_RECORDING.getAction()); + constants.put("OVERWRITE_CONFIG", BroadcastAction.Type.OVERWRITE_CONFIG.getAction()); + constants.put("SEND_CAMERA_FACING_MODE_MESSAGE", BroadcastAction.Type.SEND_CAMERA_FACING_MODE_MESSAGE.getAction()); + + return constants; + } + + /** + * Dispatches an event that occurred on the JavaScript side of the SDK to + * the native side. + * + * @param name The name of the event. + * @param data The details/specifics of the event to send determined + * by/associated with the specified {@code name}. + */ + @ReactMethod + public void sendEvent(String name, ReadableMap data) { + // Keep track of the current ongoing conference. + OngoingConferenceTracker.getInstance().onExternalAPIEvent(name, data); + + JitsiMeetLogger.d(TAG + " Sending event: " + name + " with data: " + data); + broadcastEmitter.sendBroadcast(name, data); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JavaScriptSandboxModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JavaScriptSandboxModule.java new file mode 100644 index 0000000..38d8d94 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JavaScriptSandboxModule.java @@ -0,0 +1,57 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; +import com.squareup.duktape.Duktape; + +@ReactModule(name = JavaScriptSandboxModule.NAME) +class JavaScriptSandboxModule extends ReactContextBaseJavaModule { + public static final String NAME = "JavaScriptSandbox"; + + public JavaScriptSandboxModule(ReactApplicationContext reactContext) { + super(reactContext); + } + + /** + * Evaluates the given code in a Duktape VM. + * @param code - The code that needs to evaluated. + * @param promise - Resolved with the output in case of success or rejected with an exception + * in case of failure. + */ + @ReactMethod + public void evaluate(String code, Promise promise) { + Duktape vm = Duktape.create(); + try { + Object res = vm.evaluate(code); + promise.resolve(res.toString()); + } catch (Throwable tr) { + promise.reject(tr); + } finally { + vm.close(); + } + } + + @Override + public String getName() { + return NAME; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiInitializer.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiInitializer.java new file mode 100644 index 0000000..48544a5 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiInitializer.java @@ -0,0 +1,64 @@ +/* + * 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 android.app.Application; +import android.content.Context; +import android.util.Log; + +import androidx.annotation.NonNull; +import androidx.startup.Initializer; + +import com.facebook.soloader.SoLoader; +import com.facebook.react.soloader.OpenSourceMergedSoMapping; +import org.wonday.orientation.OrientationActivityLifecycle; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; + +public class JitsiInitializer implements Initializer { + + @NonNull + @Override + public Boolean create(@NonNull Context context) { + Log.d(this.getClass().getCanonicalName(), "create"); + + try { + SoLoader.init(context, OpenSourceMergedSoMapping.INSTANCE); + } catch (IOException e) { + throw new RuntimeException(e); + } + + // Register our uncaught exception handler. + JitsiMeetUncaughtExceptionHandler.register(); + + // Register activity lifecycle handler for the orientation locker module. + ((Application) context).registerActivityLifecycleCallbacks(OrientationActivityLifecycle.getInstance()); + + // Initialize ReactInstanceManager during application startup + // This ensures it's ready before any Activity onCreate is called + ReactInstanceManagerHolder.initReactInstanceManager((Application) context); + + return true; + } + + @NonNull + @Override + public List>> dependencies() { + return Collections.emptyList(); + } +} \ No newline at end of file diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeet.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeet.java new file mode 100644 index 0000000..b8873e9 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeet.java @@ -0,0 +1,100 @@ +/* + * Copyright @ 2017-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 android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; + +import com.facebook.react.ReactInstanceManager; + +import com.splashview.SplashView; +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +public class JitsiMeet { + + /** + * Default {@link JitsiMeetConferenceOptions} which will be used for all conferences. When + * joining a conference these options will be merged with the ones passed to + * {@link JitsiMeetView} join(). + */ + private static JitsiMeetConferenceOptions defaultConferenceOptions; + + public static JitsiMeetConferenceOptions getDefaultConferenceOptions() { + return defaultConferenceOptions; + } + + public static void setDefaultConferenceOptions(JitsiMeetConferenceOptions options) { + if (options != null && options.getRoom() != null) { + throw new RuntimeException("'room' must be null in the default conference options"); + } + defaultConferenceOptions = options; + } + + /** + * Returns the current conference URL as a string. + * + * @return the current conference URL. + */ + public static String getCurrentConference() { + return OngoingConferenceTracker.getInstance().getCurrentConference(); + } + + /** + * Helper to get the default conference options as a {@link Bundle}. + * + * @return a {@link Bundle} with the default conference options. + */ + static Bundle getDefaultProps() { + if (defaultConferenceOptions != null) { + return defaultConferenceOptions.asProps(); + } + + return new Bundle(); + } + + /** + * Used in development mode. It displays the React Native development menu. + */ + public static void showDevOptions() { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + reactInstanceManager.showDevOptionsDialog(); + } + } + + public static boolean isCrashReportingDisabled(Context context) { + SharedPreferences preferences = context.getSharedPreferences("jitsi-default-preferences", Context.MODE_PRIVATE); + String value = preferences.getString("isCrashReportingDisabled", ""); + return Boolean.parseBoolean(value); + } + + /** + * Helper method to show the SplashScreen. + * + * @param activity - The activity on which to show the SplashScreen {@link Activity}. + */ + public static void showSplashScreen(Activity activity) { + try { + SplashView.INSTANCE.showSplashView(activity); + } catch (Exception e) { + JitsiMeetLogger.e(e, "Failed to show splash screen"); + } + } +} \ No newline at end of file diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java new file mode 100644 index 0000000..d8eadc0 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivity.java @@ -0,0 +1,417 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.res.Configuration; +import android.net.Uri; +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.facebook.react.modules.core.PermissionListener; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.util.HashMap; + +/** + * A base activity for SDK users to embed. It contains all the required wiring + * between the {@code JitsiMeetView} and the Activity lifecycle methods. + * + * In this activity we use a single {@code JitsiMeetView} instance. This + * instance gives us access to a view which displays the welcome page and the + * conference itself. All lifecycle methods associated with this Activity are + * hooked to the React Native subsystem via proxy calls through the + * {@code JitsiMeetActivityDelegate} static methods. + */ +public class JitsiMeetActivity extends AppCompatActivity + implements JitsiMeetActivityInterface { + + protected static final String TAG = JitsiMeetActivity.class.getSimpleName(); + + private static final String ACTION_JITSI_MEET_CONFERENCE = "org.jitsi.meet.CONFERENCE"; + private static final String JITSI_MEET_CONFERENCE_OPTIONS = "JitsiMeetConferenceOptions"; + + private boolean isReadyToClose; + + private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + onBroadcastReceived(intent); + } + }; + + /** + * Instance of the {@link JitsiMeetView} which this activity will display. + */ + private JitsiMeetView jitsiView; + + // Helpers for starting the activity + // + + public static void launch(Context context, JitsiMeetConferenceOptions options) { + Intent intent = new Intent(context, JitsiMeetActivity.class); + intent.setAction(ACTION_JITSI_MEET_CONFERENCE); + intent.putExtra(JITSI_MEET_CONFERENCE_OPTIONS, options); + if (!(context instanceof Activity)) { + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + } + context.startActivity(intent); + } + + public static void launch(Context context, String url) { + JitsiMeetConferenceOptions options + = new JitsiMeetConferenceOptions.Builder().setRoom(url).build(); + launch(context, options); + } + + public static void addTopBottomInsets(@NonNull Window w, @NonNull View v) { + if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.VANILLA_ICE_CREAM) return; + + View decorView = w.getDecorView(); + + decorView.post(() -> { + 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); + + decorView.setOnApplyWindowInsetsListener((view, windowInsets) -> { + view.setBackgroundColor(JitsiMeetView.BACKGROUND_COLOR); + + return windowInsets; + }); + } + }); + } + + // Overrides + // + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + Intent intent = new Intent("onConfigurationChanged"); + intent.putExtra("newConfig", newConfig); + this.sendBroadcast(intent); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // ReactInstanceManager is now initialized by JitsiInitializer during application startup + // Just call onHostResume since the manager is already ready + JitsiMeetActivityDelegate.onHostResume(this); + + setContentView(R.layout.activity_jitsi_meet); + addTopBottomInsets(getWindow(),findViewById(android.R.id.content)); + this.jitsiView = findViewById(R.id.jitsiView); + + registerForBroadcastMessages(); + + if (!extraInitialize()) { + initialize(); + } + } + + @Override + public void onResume() { + super.onResume(); + JitsiMeetActivityDelegate.onHostResume(this); + } + + @Override + public void onStop() { + JitsiMeetActivityDelegate.onHostPause(this); + super.onStop(); + } + + @Override + public void onDestroy() { + JitsiMeetLogger.i("onDestroy()"); + + // Here we are trying to handle the following corner case: an application using the SDK + // is using this Activity for displaying meetings, but there is another "main" Activity + // with other content. If this Activity is "swiped out" from the recent list we will get + // Activity#onDestroy() called without warning. At this point we can try to leave the + // current meeting, but when our view is detached from React the JS <-> Native bridge won't + // be operational so the external API won't be able to notify the native side that the + // conference terminated. Thus, try our best to clean up. + if (!isReadyToClose) { + JitsiMeetLogger.i("onDestroy(): leaving..."); + leave(); + } + + this.jitsiView = null; + + if (AudioModeModule.useConnectionService()) { + ConnectionService.abortConnections(); + } + JitsiMeetOngoingConferenceService.abort(this); + + LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver); + + JitsiMeetActivityDelegate.onHostDestroy(this); + + super.onDestroy(); + } + + @Override + public void finish() { + if (!isReadyToClose) { + JitsiMeetLogger.i("finish(): leaving..."); + leave(); + } + + JitsiMeetLogger.i("finish(): finishing..."); + super.finish(); + } + + // Helper methods + // + + protected JitsiMeetView getJitsiView() { + return jitsiView; + } + + public void join(@Nullable String url) { + JitsiMeetConferenceOptions options + = new JitsiMeetConferenceOptions.Builder() + .setRoom(url) + .build(); + join(options); + } + + public void join(JitsiMeetConferenceOptions options) { + if (this.jitsiView != null) { + this.jitsiView.join(options); + } else { + JitsiMeetLogger.w("Cannot join, view is null"); + } + } + + protected void leave() { + if (this.jitsiView != null) { + this.jitsiView.abort(); + } else { + JitsiMeetLogger.w("Cannot leave, view is null"); + } + } + + private @Nullable + JitsiMeetConferenceOptions getConferenceOptions(Intent intent) { + String action = intent.getAction(); + + if (Intent.ACTION_VIEW.equals(action)) { + Uri uri = intent.getData(); + if (uri != null) { + return new JitsiMeetConferenceOptions.Builder().setRoom(uri.toString()).build(); + } + } else if (ACTION_JITSI_MEET_CONFERENCE.equals(action)) { + return intent.getParcelableExtra(JITSI_MEET_CONFERENCE_OPTIONS); + } + + return null; + } + + /** + * Helper function called during activity initialization. If {@code true} is returned, the + * initialization is delayed and the {@link JitsiMeetActivity#initialize()} method is not + * called. In this case, it's up to the subclass to call the initialize method when ready. + *

+ * This is mainly required so we do some extra initialization in the Jitsi Meet app. + * + * @return {@code true} if the initialization will be delayed, {@code false} otherwise. + */ + protected boolean extraInitialize() { + return false; + } + + protected void initialize() { + // Join the room specified by the URL the app was launched with. + // Joining without the room option displays the welcome page. + join(getConferenceOptions(getIntent())); + } + + protected void onConferenceJoined(HashMap extraData) { + JitsiMeetLogger.i("Conference joined: " + extraData); + // Launch the service for the ongoing notification. + JitsiMeetOngoingConferenceService.launch(this, extraData); + } + + protected void onConferenceTerminated(HashMap extraData) { + JitsiMeetLogger.i("Conference terminated: " + extraData); + } + + protected void onConferenceWillJoin(HashMap extraData) { + JitsiMeetLogger.i("Conference will join: " + extraData); + } + + protected void onParticipantJoined(HashMap extraData) { + try { + JitsiMeetLogger.i("Participant joined: ", extraData); + } catch (Exception e) { + JitsiMeetLogger.w("Invalid participant joined extraData", e); + } + } + + protected void onParticipantLeft(HashMap extraData) { + try { + JitsiMeetLogger.i("Participant left: ", extraData); + } catch (Exception e) { + JitsiMeetLogger.w("Invalid participant left extraData", e); + } + } + + protected void onReadyToClose() { + JitsiMeetLogger.i("SDK is ready to close"); + isReadyToClose = true; + finish(); + } + +// protected void onTranscriptionChunkReceived(HashMap extraData) { +// JitsiMeetLogger.i("Transcription chunk received: " + extraData); +// } + +// protected void onCustomButtonPressed(HashMap extraData) { +// JitsiMeetLogger.i("Custom button pressed: " + extraData); +// } + +// protected void onConferenceUniqueIdSet(HashMap extraData) { +// JitsiMeetLogger.i("Conference unique id set: " + extraData); +// } + +// protected void onRecordingStatusChanged(HashMap extraData) { +// JitsiMeetLogger.i("Recording status changed: " + extraData); +// } + + // Activity lifecycle methods + // + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + JitsiMeetActivityDelegate.onActivityResult(this, requestCode, resultCode, data); + } + + @Override + public void onBackPressed() { + JitsiMeetActivityDelegate.onBackPressed(); + } + + @Override + public void onNewIntent(Intent intent) { + super.onNewIntent(intent); + + JitsiMeetConferenceOptions options; + + if ((options = getConferenceOptions(intent)) != null) { + join(options); + return; + } + + JitsiMeetActivityDelegate.onNewIntent(intent); + } + + @Override + protected void onUserLeaveHint() { + if (this.jitsiView != null) { + this.jitsiView.enterPictureInPicture(); + } + } + + // JitsiMeetActivityInterface + // + + @Override + public void requestPermissions(String[] permissions, int requestCode, PermissionListener listener) { + JitsiMeetActivityDelegate.requestPermissions(this, permissions, requestCode, listener); + } + + @SuppressLint("MissingSuperCall") + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + JitsiMeetActivityDelegate.onRequestPermissionsResult(requestCode, permissions, grantResults); + } + + private void registerForBroadcastMessages() { + IntentFilter intentFilter = new IntentFilter(); + + for (BroadcastEvent.Type type : BroadcastEvent.Type.values()) { + intentFilter.addAction(type.getAction()); + } + + LocalBroadcastManager.getInstance(this).registerReceiver(broadcastReceiver, intentFilter); + } + + private void onBroadcastReceived(Intent intent) { + if (intent != null) { + BroadcastEvent event = new BroadcastEvent(intent); + + switch (event.getType()) { + case CONFERENCE_JOINED: + onConferenceJoined(event.getData()); + break; + case CONFERENCE_WILL_JOIN: + onConferenceWillJoin(event.getData()); + break; + case CONFERENCE_TERMINATED: + onConferenceTerminated(event.getData()); + break; + case PARTICIPANT_JOINED: + onParticipantJoined(event.getData()); + break; + case PARTICIPANT_LEFT: + onParticipantLeft(event.getData()); + break; + case READY_TO_CLOSE: + onReadyToClose(); + break; + // case TRANSCRIPTION_CHUNK_RECEIVED: + // onTranscriptionChunkReceived(event.getData()); + // break; + // case CUSTOM_BUTTON_PRESSED: + // onCustomButtonPressed(event.getData()); + // break; + // case CONFERENCE_UNIQUE_ID_SET: + // onConferenceUniqueIdSet(event.getData()); + // break; + // case RECORDING_STATUS_CHANGED: + // onRecordingStatusChanged(event.getData()); + // break; + } + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityDelegate.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityDelegate.java new file mode 100644 index 0000000..4145eeb --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityDelegate.java @@ -0,0 +1,197 @@ +/* + * Copyright @ 2018-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 android.app.Activity; +import android.content.Intent; + +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.bridge.Callback; +import com.facebook.react.bridge.ReactContext; +import com.facebook.react.modules.core.PermissionListener; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +/** + * Helper class to encapsulate the work which needs to be done on + * {@link Activity} lifecycle methods in order for the React side to be aware of + * it. + */ +public class JitsiMeetActivityDelegate { + /** + * Needed for making sure this class working with the "PermissionsAndroid" + * React Native module. + */ + private static PermissionListener permissionListener; + private static Callback permissionsCallback; + + /** + * Tells whether or not the permissions request is currently in progress. + * + * @return {@code true} if the permissions are being requested or {@code false} otherwise. + */ + static boolean arePermissionsBeingRequested() { + return permissionListener != null; + } + + /** + * {@link Activity} lifecycle method which should be called from + * {@code Activity#onActivityResult} so we are notified about results of external intents + * started/finished. + * + * @param activity {@code Activity} activity from where the result comes from. + * @param requestCode {@code int} code of the request. + * @param resultCode {@code int} code of the result. + * @param data {@code Intent} the intent of the activity. + */ + public static void onActivityResult( + Activity activity, + int requestCode, + int resultCode, + Intent data) { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + reactInstanceManager.onActivityResult(activity, requestCode, resultCode, data); + } + } + + /** + * {@link Activity} lifecycle method which should be called from + * {@link Activity#onBackPressed} so we can do the required internal + * processing. + * + * @return {@code true} if the back-press was processed; {@code false}, + * otherwise. If {@code false}, the application should call the + * {@code super}'s implementation. + */ + public static void onBackPressed() { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + reactInstanceManager.onBackPressed(); + } + } + + /** + * {@link Activity} lifecycle method which should be called from + * {@code Activity#onDestroy} so we can do the required internal + * processing. + * + * @param activity {@code Activity} being destroyed. + */ + public static void onHostDestroy(Activity activity) { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + reactInstanceManager.onHostDestroy(activity); + } + } + + /** + * {@link Activity} lifecycle method which should be called from + * {@code Activity#onPause} so we can do the required internal processing. + * + * @param activity {@code Activity} being paused. + */ + public static void onHostPause(Activity activity) { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + try { + reactInstanceManager.onHostPause(activity); + } catch (AssertionError e) { + // There seems to be a problem in RN when resuming an Activity when + // rotation is involved and the planets align. There doesn't seem to + // be a proper solution, but since the activity is going away anyway, + // we'll YOLO-ignore the exception and hope fo the best. + // Ref: https://github.com/facebook/react-native/search?q=Pausing+an+activity+that+is+not+the+current+activity%2C+this+is+incorrect%21&type=issues + JitsiMeetLogger.e(e, "Error running onHostPause, ignoring"); + } + } + } + + /** + * {@link Activity} lifecycle method which should be called from + * {@code Activity#onResume} so we can do the required internal processing. + * + * @param activity {@code Activity} being resumed. + */ + public static void onHostResume(Activity activity) { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + reactInstanceManager.onHostResume(activity, new DefaultHardwareBackBtnHandlerImpl(activity)); + } + + if (permissionsCallback != null) { + permissionsCallback.invoke(); + permissionsCallback = null; + } + } + + /** + * {@link Activity} lifecycle method which should be called from + * {@code Activity#onNewIntent} so we can do the required internal + * processing. Note that this is only needed if the activity's "launchMode" + * was set to "singleTask". This is required for deep linking to work once + * the application is already running. + * + * @param intent {@code Intent} instance which was received. + */ + public static void onNewIntent(Intent intent) { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + reactInstanceManager.onNewIntent(intent); + } + } + + public static void onRequestPermissionsResult( + final int requestCode, final String[] permissions, final int[] grantResults) { + permissionsCallback = new Callback() { + @Override + public void invoke(Object... args) { + if (permissionListener != null + && permissionListener.onRequestPermissionsResult(requestCode, permissions, grantResults)) { + permissionListener = null; + } + } + }; + } + + public static void requestPermissions(Activity activity, String[] permissions, int requestCode, PermissionListener listener) { + permissionListener = listener; + + // The RN Permissions module calls this in a non-UI thread. What we observe is a crash in ViewGroup.dispatchCancelPendingInputEvents, + // which is called on the calling (ie, non-UI) thread. This doesn't look very safe, so try to avoid a crash by pretending the permission + // was denied. + + try { + activity.requestPermissions(permissions, requestCode); + } catch (Exception e) { + JitsiMeetLogger.e(e, "Error requesting permissions"); + onRequestPermissionsResult(requestCode, permissions, new int[0]); + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityInterface.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityInterface.java new file mode 100644 index 0000000..2616594 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetActivityInterface.java @@ -0,0 +1,15 @@ +package org.jitsi.meet.sdk; + +import androidx.core.app.ActivityCompat; + +import com.facebook.react.modules.core.PermissionAwareActivity; + +/** + * This interface serves as the umbrella interface that applications not using + * {@code JitsiMeetFragment} must implement in order to ensure full + * functionality. + */ +public interface JitsiMeetActivityInterface + extends ActivityCompat.OnRequestPermissionsResultCallback, + PermissionAwareActivity { +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetConferenceOptions.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetConferenceOptions.java new file mode 100644 index 0000000..22406d3 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetConferenceOptions.java @@ -0,0 +1,332 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; + +import java.net.URL; +import java.util.ArrayList; + + +/** + * This class represents the options when joining a Jitsi Meet conference. The user can create an + * instance by using {@link JitsiMeetConferenceOptions.Builder} and setting the desired options + * there. + * + * The resulting {@link JitsiMeetConferenceOptions} object is immutable and represents how the + * conference will be joined. + */ +public class JitsiMeetConferenceOptions implements Parcelable { + /** + * Server where the conference should take place. + */ + private URL serverURL; + /** + * Room name. + */ + private String room; + /** + * JWT token used for authentication. + */ + private String token; + + /** + * Config. See: https://github.com/jitsi/jitsi-meet/blob/master/config.js + */ + private Bundle config; + + /** + * Feature flags. See: https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/flags/constants.js + */ + private Bundle featureFlags; + + /** + * USer information, to be used when no token is specified. + */ + private JitsiMeetUserInfo userInfo; + + public URL getServerURL() { + return serverURL; + } + + public String getRoom() { + return room; + } + + public String getToken() { + return token; + } + + public Bundle getFeatureFlags() { + return featureFlags; + } + + public JitsiMeetUserInfo getUserInfo() { + return userInfo; + } + + /** + * Class used to build the immutable {@link JitsiMeetConferenceOptions} object. + */ + public static class Builder { + private URL serverURL; + private String room; + private String token; + + private Bundle config; + private Bundle featureFlags; + + private JitsiMeetUserInfo userInfo; + + public Builder() { + config = new Bundle(); + featureFlags = new Bundle(); + } + + /**\ + * Sets the server URL. + * @param url - {@link URL} of the server where the conference should take place. + * @return - The {@link Builder} object itself so the method calls can be chained. + */ + public Builder setServerURL(URL url) { + this.serverURL = url; + + return this; + } + + /** + * Sets the room where the conference will take place. + * @param room - Name of the room. + * @return - The {@link Builder} object itself so the method calls can be chained. + */ + public Builder setRoom(String room) { + this.room = room; + + return this; + } + + /** + * Sets the conference subject. + * @param subject - Subject for the conference. + * @return - The {@link Builder} object itself so the method calls can be chained. + */ + public Builder setSubject(String subject) { + setConfigOverride("subject", subject); + + return this; + } + + /** + * Sets the JWT token to be used for authentication when joining a conference. + * @param token - The JWT token to be used for authentication. + * @return - The {@link Builder} object itself so the method calls can be chained. + */ + public Builder setToken(String token) { + this.token = token; + + return this; + } + + /** + * Indicates the conference will be joined with the microphone muted. + * @param audioMuted - Muted indication. + * @return - The {@link Builder} object itself so the method calls can be chained. + */ + public Builder setAudioMuted(boolean audioMuted) { + setConfigOverride("startWithAudioMuted", audioMuted); + + return this; + } + + /** + * Indicates the conference will be joined in audio-only mode. In this mode no video is + * sent or received. + * @param audioOnly - Audio-mode indicator. + * @return - The {@link Builder} object itself so the method calls can be chained. + */ + public Builder setAudioOnly(boolean audioOnly) { + setConfigOverride("startAudioOnly", audioOnly); + + return this; + } + /** + * Indicates the conference will be joined with the camera muted. + * @param videoMuted - Muted indication. + * @return - The {@link Builder} object itself so the method calls can be chained. + */ + public Builder setVideoMuted(boolean videoMuted) { + setConfigOverride("startWithVideoMuted", videoMuted); + + return this; + } + + public Builder setFeatureFlag(String flag, boolean value) { + this.featureFlags.putBoolean(flag, value); + + return this; + } + + public Builder setFeatureFlag(String flag, String value) { + this.featureFlags.putString(flag, value); + + return this; + } + + public Builder setFeatureFlag(String flag, int value) { + this.featureFlags.putInt(flag, value); + + return this; + } + + public Builder setUserInfo(JitsiMeetUserInfo userInfo) { + this.userInfo = userInfo; + + return this; + } + + public Builder setConfigOverride(String config, String value) { + this.config.putString(config, value); + + return this; + } + + public Builder setConfigOverride(String config, int value) { + this.config.putInt(config, value); + + return this; + } + + public Builder setConfigOverride(String config, boolean value) { + this.config.putBoolean(config, value); + + return this; + } + + public Builder setConfigOverride(String config, Bundle bundle) { + this.config.putBundle(config, bundle); + + return this; + } + + public Builder setConfigOverride(String config, String[] list) { + this.config.putStringArray(config, list); + + return this; + } + + public Builder setConfigOverride(String config, ArrayList arrayList) { + this.config.putParcelableArrayList(config, arrayList); + + return this; + } + + /** + * Builds the immutable {@link JitsiMeetConferenceOptions} object with the configuration + * that this {@link Builder} instance specified. + * @return - The built {@link JitsiMeetConferenceOptions} object. + */ + public JitsiMeetConferenceOptions build() { + JitsiMeetConferenceOptions options = new JitsiMeetConferenceOptions(); + + options.serverURL = this.serverURL; + options.room = this.room; + options.token = this.token; + options.config = this.config; + options.featureFlags = this.featureFlags; + options.userInfo = this.userInfo; + + return options; + } + } + + private JitsiMeetConferenceOptions() { + } + + private JitsiMeetConferenceOptions(Parcel in) { + serverURL = (URL) in.readSerializable(); + room = in.readString(); + token = in.readString(); + config = in.readBundle(); + featureFlags = in.readBundle(); + userInfo = new JitsiMeetUserInfo(in.readBundle()); + } + + Bundle asProps() { + Bundle props = new Bundle(); + + props.putBundle("flags", featureFlags); + + Bundle urlProps = new Bundle(); + + // The room is fully qualified + if (room != null && room.contains("://")) { + urlProps.putString("url", room); + } else { + if (serverURL != null) { + urlProps.putString("serverURL", serverURL.toString()); + } + if (room != null) { + urlProps.putString("room", room); + } + } + + if (token != null) { + urlProps.putString("jwt", token); + } + + if (userInfo != null) { + props.putBundle("userInfo", userInfo.asBundle()); + } + + urlProps.putBundle("config", config); + props.putBundle("url", urlProps); + + return props; + } + + // Parcelable interface + // + + public static final Creator CREATOR = new Creator() { + @Override + public JitsiMeetConferenceOptions createFromParcel(Parcel in) { + return new JitsiMeetConferenceOptions(in); + } + + @Override + public JitsiMeetConferenceOptions[] newArray(int size) { + return new JitsiMeetConferenceOptions[size]; + } + }; + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeSerializable(serverURL); + dest.writeString(room); + dest.writeString(token); + dest.writeBundle(config); + dest.writeBundle(featureFlags); + dest.writeBundle(userInfo != null ? userInfo.asBundle() : new Bundle()); + } + + @Override + public int describeContents() { + return 0; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java new file mode 100644 index 0000000..f2ed6c6 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java @@ -0,0 +1,310 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import static android.Manifest.permission.POST_NOTIFICATIONS; +import static android.Manifest.permission.RECORD_AUDIO; + +import android.app.Activity; +import android.app.Notification; +import android.app.NotificationManager; +import android.app.Service; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.PackageManager; +import android.content.pm.ServiceInfo; +import android.os.Build; +import android.os.Bundle; +import android.os.IBinder; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.facebook.react.modules.core.PermissionListener; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Random; + +/** + * This class implements an Android {@link Service}, a foreground one specifically, and it's + * responsible for presenting an ongoing notification when a conference is in progress. + * The service will help keep the app running while in the background. + * + * See: https://developer.android.com/guide/components/services + */ +public class JitsiMeetOngoingConferenceService extends Service implements OngoingConferenceTracker.OngoingConferenceListener { + private static final String TAG = JitsiMeetOngoingConferenceService.class.getSimpleName(); + private static final String ACTIVITY_DATA_KEY = "activityDataKey"; + private static final String EXTRA_DATA_KEY = "extraDataKey"; + private static final String EXTRA_DATA_BUNDLE_KEY = "extraDataBundleKey"; + private static final String IS_AUDIO_MUTED_KEY = "isAudioMuted"; + + private static final int PERMISSIONS_REQUEST_CODE = (int) (Math.random() * Short.MAX_VALUE); + + private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver(); + + private boolean isAudioMuted; + private Class tapBackActivity; + + static final int NOTIFICATION_ID = new Random().nextInt(99999) + 10000; + + private static void doLaunch(Context context, HashMap extraData) { + Activity activity = (Activity) context; + + OngoingNotification.createNotificationChannel(activity); + + Intent intent = new Intent(context, JitsiMeetOngoingConferenceService.class); + + Bundle extraDataBundle = new Bundle(); + extraDataBundle.putSerializable(EXTRA_DATA_KEY, extraData); + + intent.putExtra(EXTRA_DATA_BUNDLE_KEY, extraDataBundle); + intent.putExtra(ACTIVITY_DATA_KEY, activity.getClass().getCanonicalName()); + + ComponentName componentName; + + try { + componentName = context.startForegroundService(intent); + } catch (RuntimeException e) { + // Avoid crashing due to ForegroundServiceStartNotAllowedException (API level 31). + // See: https://developer.android.com/guide/components/foreground-services#background-start-restrictions + JitsiMeetLogger.w(TAG + " Ongoing conference service not started", e); + return; + } + + if (componentName == null) { + JitsiMeetLogger.w(TAG + " Ongoing conference service not started"); + } + } + + + public static void launch(Context context, HashMap extraData) { + List permissionsList = new ArrayList<>(); + + PermissionListener listener = new PermissionListener() { + @Override + public boolean onRequestPermissionsResult(int i, String[] strings, int[] results) { + int counter = 0; + + if (results.length > 0) { + for (int result : results) { + if (result == PackageManager.PERMISSION_GRANTED) { + counter++; + } + } + + if (counter == results.length){ + doLaunch(context, extraData); + JitsiMeetLogger.w(TAG + " Service launched, permissions were granted"); + } else { + JitsiMeetLogger.w(TAG + " Couldn't launch service, permissions were not granted"); + } + } + + return true; + } + }; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + permissionsList.add(POST_NOTIFICATIONS); + permissionsList.add(RECORD_AUDIO); + } + + String[] permissionsArray = new String[ permissionsList.size() ]; + permissionsArray = permissionsList.toArray( permissionsArray ); + + if (permissionsArray.length > 0) { + JitsiMeetActivityDelegate.requestPermissions( + (Activity) context, + permissionsArray, + PERMISSIONS_REQUEST_CODE, + listener + ); + } else { + doLaunch(context, extraData); + JitsiMeetLogger.w(TAG + " Service launched"); + } + } + + public static void abort(Context context) { + Intent intent = new Intent(context, JitsiMeetOngoingConferenceService.class); + context.stopService(intent); + } + + @Override + public void onCreate() { + super.onCreate(); + + Notification notification = OngoingNotification.buildOngoingConferenceNotification(isAudioMuted, this, tapBackActivity); + if (notification == null) { + stopSelf(); + JitsiMeetLogger.w(TAG + " Couldn't start service, notification is null"); + } else { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + startForeground(NOTIFICATION_ID, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK | ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE); + } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) { + startForeground(NOTIFICATION_ID, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK); + } else { + startForeground(NOTIFICATION_ID, notification); + } + } + + OngoingConferenceTracker.getInstance().addListener(this); + + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(BroadcastEvent.Type.AUDIO_MUTED_CHANGED.getAction()); + LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(broadcastReceiver, intentFilter); + } + + @Override + public void onDestroy() { + OngoingConferenceTracker.getInstance().removeListener(this); + LocalBroadcastManager.getInstance(getApplicationContext()).unregisterReceiver(broadcastReceiver); + + super.onDestroy(); + } + + @Override + public IBinder onBind(Intent intent) { + return null; + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + final String actionName = intent.getAction(); + final Action action = Action.fromName(actionName); + + if (action != Action.HANGUP) { + Boolean isAudioMuted = tryParseIsAudioMuted(intent); + + if (isAudioMuted != null) { + this.isAudioMuted = Boolean.parseBoolean(intent.getStringExtra("muted")); + } + + if (tapBackActivity == null) { + String targetActivityName = intent.getExtras().getString(ACTIVITY_DATA_KEY); + Class targetActivity = null; + try { + targetActivity = Class.forName(targetActivityName).asSubclass(Activity.class); + tapBackActivity = targetActivity; + } catch (ClassNotFoundException e) { + JitsiMeetLogger.w(TAG + " Could not find target Activity: " + targetActivityName); + } + } + + Notification notification = OngoingNotification.buildOngoingConferenceNotification(this.isAudioMuted, this, tapBackActivity); + if (notification == null) { + stopSelf(); + JitsiMeetLogger.w(TAG + " Couldn't start service, notification is null"); + } else { + NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + notificationManager.notify(NOTIFICATION_ID, notification); + } + } + + // When starting the service, there is no action passed in the intent + if (action != null) { + switch (action) { + case UNMUTE: + case MUTE: + Intent muteBroadcastIntent = BroadcastIntentHelper.buildSetAudioMutedIntent(action == Action.MUTE); + LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(muteBroadcastIntent); + break; + case HANGUP: + JitsiMeetLogger.i(TAG + " Hangup requested"); + + Intent hangupBroadcastIntent = BroadcastIntentHelper.buildHangUpIntent(); + LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(hangupBroadcastIntent); + + stopSelf(); + break; + default: + JitsiMeetLogger.w(TAG + " Unknown action received: " + action); + break; + } + } + + return START_NOT_STICKY; + } + + @Override + public void onCurrentConferenceChanged(String conferenceUrl) { + if (conferenceUrl == null) { + stopSelf(); + OngoingNotification.resetStartingtime(); + JitsiMeetLogger.i(TAG + "Service stopped"); + } + } + + public enum Action { + HANGUP(TAG + ":HANGUP"), + MUTE(TAG + ":MUTE"), + UNMUTE(TAG + ":UNMUTE"); + + private final String name; + + Action(String name) { + this.name = name; + } + + public static Action fromName(String name) { + for (Action action : Action.values()) { + if (action.name.equalsIgnoreCase(name)) { + return action; + } + } + return null; + } + + public String getName() { + return name; + } + } + + private Boolean tryParseIsAudioMuted(Intent intent) { + try { + HashMap extraData = (HashMap) intent.getBundleExtra(EXTRA_DATA_BUNDLE_KEY).getSerializable(EXTRA_DATA_KEY); + return Boolean.parseBoolean((String) extraData.get(IS_AUDIO_MUTED_KEY)); + } catch (Exception ignored) { + } + return null; + } + + private class BroadcastReceiver extends android.content.BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + Class tapBackActivity = JitsiMeetOngoingConferenceService.this.tapBackActivity; + isAudioMuted = Boolean.parseBoolean(intent.getStringExtra("muted")); + Notification notification = OngoingNotification.buildOngoingConferenceNotification(isAudioMuted, context, tapBackActivity); + if (notification == null) { + stopSelf(); + JitsiMeetLogger.w(TAG + " Couldn't update service, notification is null"); + } else { + NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + notificationManager.notify(NOTIFICATION_ID, notification); + + JitsiMeetLogger.i(TAG + " audio muted changed"); + } + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetUncaughtExceptionHandler.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetUncaughtExceptionHandler.java new file mode 100644 index 0000000..bafc02e --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetUncaughtExceptionHandler.java @@ -0,0 +1,51 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 Atlassian Pty Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jitsi.meet.sdk; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +class JitsiMeetUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler { + private final Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler; + + public static void register() { + Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler(); + + JitsiMeetUncaughtExceptionHandler uncaughtExceptionHandler + = new JitsiMeetUncaughtExceptionHandler(defaultUncaughtExceptionHandler); + + Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler); + } + + private JitsiMeetUncaughtExceptionHandler(Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler) { + this.defaultUncaughtExceptionHandler = defaultUncaughtExceptionHandler; + } + + @Override + public void uncaughtException(Thread t, Throwable e) { + JitsiMeetLogger.e(e, this.getClass().getSimpleName() + " FATAL ERROR"); + + // Abort all ConnectionService ongoing calls + if (AudioModeModule.useConnectionService()) { + ConnectionService.abortConnections(); + } + + if (defaultUncaughtExceptionHandler != null) { + defaultUncaughtExceptionHandler.uncaughtException(t, e); + } + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetUserInfo.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetUserInfo.java new file mode 100644 index 0000000..7d59909 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetUserInfo.java @@ -0,0 +1,107 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import android.os.Bundle; + +import java.net.MalformedURLException; +import java.net.URL; + +/** + * This class represents user information to be passed to {@link JitsiMeetConferenceOptions} for + * identifying a user. + */ +public class JitsiMeetUserInfo { + /** + * User's display name. + */ + private String displayName; + + /** + * User's email address. + */ + private String email; + + /** + * User's avatar URL. + */ + private URL avatar; + + public JitsiMeetUserInfo() {} + + public JitsiMeetUserInfo(Bundle b) { + super(); + + if (b.containsKey("displayName")) { + displayName = b.getString("displayName"); + } + + if (b.containsKey("email")) { + email = b.getString("email"); + } + + if (b.containsKey("avatarURL")) { + String avatarURL = b.getString("avatarURL"); + try { + avatar = new URL(avatarURL); + } catch (MalformedURLException e) { + } + } + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public URL getAvatar() { + return avatar; + } + + public void setAvatar(URL avatar) { + this.avatar = avatar; + } + + Bundle asBundle() { + Bundle b = new Bundle(); + + if (displayName != null) { + b.putString("displayName", displayName); + } + + if (email != null) { + b.putString("email", email); + } + + if (avatar != null) { + b.putString("avatarURL", avatar.toString()); + } + + return b; + } +} 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 new file mode 100644 index 0000000..d107d17 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetView.java @@ -0,0 +1,229 @@ +/* + * Copyright @ 2017-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 android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.os.Bundle; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.facebook.react.ReactRootView; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + + +public class JitsiMeetView extends FrameLayout { + + /** + * Background color. Should match the background color set in JS. + */ + public static final int BACKGROUND_COLOR = 0xFF040404; + + /** + * React Native root view. + */ + private ReactRootView reactRootView; + + /** + * Helper method to recursively merge 2 {@link Bundle} objects representing React Native props. + * + * @param a - The first {@link Bundle}. + * @param b - The second {@link Bundle}. + * @return The merged {@link Bundle} object. + */ + private static Bundle mergeProps(@Nullable Bundle a, @Nullable Bundle b) { + Bundle result = new Bundle(); + + if (a == null) { + if (b != null) { + result.putAll(b); + } + + return result; + } + + if (b == null) { + result.putAll(a); + + return result; + } + + // Start by putting all of a in the result. + result.putAll(a); + + // Iterate over each key in b and override if appropriate. + for (String key : b.keySet()) { + Object bValue = b.get(key); + Object aValue = a.get(key); + String valueType = bValue.getClass().getSimpleName(); + + if (valueType.contentEquals("Boolean")) { + result.putBoolean(key, (Boolean)bValue); + } else if (valueType.contentEquals("String")) { + result.putString(key, (String)bValue); + } else if (valueType.contentEquals("Integer")) { + result.putInt(key, (int)bValue); + } else if (valueType.contentEquals("Bundle")) { + result.putBundle(key, mergeProps((Bundle)aValue, (Bundle)bValue)); + } else { + throw new RuntimeException("Unsupported type: " + valueType); + } + } + + return result; + } + + public JitsiMeetView(@NonNull Context context) { + super(context); + initialize(context); + } + + public JitsiMeetView(Context context, AttributeSet attrs) { + super(context, attrs); + initialize(context); + } + + public JitsiMeetView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + initialize(context); + } + + /** + * Releases the React resources (specifically the {@link ReactRootView}) + * associated with this view. + * + * MUST be called when the {@link Activity} holding this view is destroyed, + * typically in the {@code onDestroy} method. + */ + public void dispose() { + if (reactRootView != null) { + removeView(reactRootView); + reactRootView.unmountReactApplication(); + reactRootView = null; + } + } + + /** + * Enters Picture-In-Picture mode, if possible. This method is designed to + * be called from the {@code Activity.onUserLeaveHint} method. + * + * This is currently not mandatory, but if used will provide automatic + * handling of the picture in picture mode when user minimizes the app. It + * will be probably the most useful in case the app is using the welcome + * page. + */ + public void enterPictureInPicture() { + PictureInPictureModule pipModule + = ReactInstanceManagerHolder.getNativeModule( + PictureInPictureModule.class); + if (pipModule != null + && pipModule.isPictureInPictureSupported() + && !JitsiMeetActivityDelegate.arePermissionsBeingRequested()) { + try { + pipModule.enterPictureInPicture(); + } catch (RuntimeException re) { + JitsiMeetLogger.e(re, "Failed to enter PiP mode"); + } + } + } + + /** + * Joins the conference specified by the given {@link JitsiMeetConferenceOptions}. If there is + * already an active conference, it will be left and the new one will be joined. + * @param options - Description of what conference must be joined and what options will be used + * when doing so. + */ + public void join(@Nullable JitsiMeetConferenceOptions options) { + setProps(options != null ? options.asProps() : new Bundle()); + } + + /** + * Internal method which aborts running RN by passing empty props. + * This is only meant to be used from the enclosing Activity's onDestroy. + */ + public void abort() { + setProps(new Bundle()); + } + + /** + * Creates the {@code ReactRootView} for the given app name with the given + * props. Once created it's set as the view of this {@code FrameLayout}. + * + * @param appName - The name of the "app" (in React Native terms) to load. + * @param props - The React Component props to pass to the app. + */ + private void createReactRootView(String appName, @Nullable Bundle props) { + if (props == null) { + props = new Bundle(); + } + + if (reactRootView == null) { + reactRootView = new ReactRootView(getContext()); + reactRootView.startReactApplication( + ReactInstanceManagerHolder.getReactInstanceManager(), + appName, + props); + reactRootView.setBackgroundColor(BACKGROUND_COLOR); + addView(reactRootView); + } else { + reactRootView.setAppProperties(props); + } + } + + private void initialize(@NonNull Context context) { + // Check if the parent Activity implements JitsiMeetActivityInterface, + // otherwise things may go wrong. + if (!(context instanceof JitsiMeetActivityInterface)) { + throw new RuntimeException("Enclosing Activity must implement JitsiMeetActivityInterface"); + } + + setBackgroundColor(BACKGROUND_COLOR); + } + + /** + * Helper method to set the React Native props. + * @param newProps - New props to be set on the React Native view. + */ + private void setProps(@NonNull Bundle newProps) { + // Merge the default options with the newly provided ones. + Bundle props = mergeProps(JitsiMeet.getDefaultProps(), newProps); + + // XXX The setProps() method is supposed to be imperative i.e. + // a second invocation with one and the same URL is expected to join + // the respective conference again if the first invocation was followed + // by leaving the conference. However, React and, respectively, + // appProperties/initialProperties are declarative expressions i.e. one + // and the same URL will not trigger an automatic re-render in the + // JavaScript source code. The workaround implemented below introduces + // "imperativeness" in React Component props by defining a unique value + // per setProps() invocation. + props.putLong("timestamp", System.currentTimeMillis()); + + createReactRootView("App", props); + } + + @Override + protected void onDetachedFromWindow() { + dispose(); + super.onDetachedFromWindow(); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiVideoDecoderFactory.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiVideoDecoderFactory.java new file mode 100644 index 0000000..1beaf4c --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiVideoDecoderFactory.java @@ -0,0 +1,84 @@ +package org.jitsi.meet.sdk; + +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +import android.media.MediaCodecInfo; +import androidx.annotation.Nullable; + +import com.oney.WebRTCModule.webrtcutils.SoftwareVideoDecoderFactoryProxy; + +import org.webrtc.EglBase; +import org.webrtc.HardwareVideoDecoderFactory; +import org.webrtc.JitsiPlatformVideoDecoderFactory; +import org.webrtc.Predicate; +import org.webrtc.VideoCodecInfo; +import org.webrtc.VideoDecoder; +import org.webrtc.VideoDecoderFactory; +import org.webrtc.VideoDecoderFallback; + +import java.util.Arrays; +import java.util.LinkedHashSet; + +/** + * Custom decoder factory which uses HW decoders and falls back to SW. + */ +public class JitsiVideoDecoderFactory implements VideoDecoderFactory { + private final VideoDecoderFactory hardwareVideoDecoderFactory; + private final VideoDecoderFactory softwareVideoDecoderFactory = new SoftwareVideoDecoderFactoryProxy(); + private final VideoDecoderFactory platformSoftwareVideoDecoderFactory; + + /** + * Predicate to filter out the AV1 hardware decoder, as we've seen decoding issues with it. + */ + private static final String GOOGLE_AV1_DECODER = "c2.google.av1"; + private static final Predicate hwCodecPredicate = arg -> { + // Filter out the Google AV1 codec. + return !arg.getName().startsWith(GOOGLE_AV1_DECODER); + }; + private static final Predicate swCodecPredicate = arg -> { + // Noop, just making sure we can customize it easily if needed. + return true; + }; + + /** + * Create decoder factory using default hardware decoder factory. + */ + public JitsiVideoDecoderFactory(@Nullable EglBase.Context eglContext) { + this.hardwareVideoDecoderFactory = new HardwareVideoDecoderFactory(eglContext, hwCodecPredicate); + this.platformSoftwareVideoDecoderFactory = new JitsiPlatformVideoDecoderFactory(eglContext, swCodecPredicate); + } + + @Override + public @Nullable VideoDecoder createDecoder(VideoCodecInfo codecType) { + VideoDecoder softwareDecoder = softwareVideoDecoderFactory.createDecoder(codecType); + final VideoDecoder hardwareDecoder = hardwareVideoDecoderFactory.createDecoder(codecType); + if (softwareDecoder == null) { + softwareDecoder = platformSoftwareVideoDecoderFactory.createDecoder(codecType); + } + if (hardwareDecoder != null && softwareDecoder != null) { + // Both hardware and software supported, wrap it in a software fallback + return new VideoDecoderFallback( + /* fallback= */ softwareDecoder, /* primary= */ hardwareDecoder); + } + return hardwareDecoder != null ? hardwareDecoder : softwareDecoder; + } + + @Override + public VideoCodecInfo[] getSupportedCodecs() { + LinkedHashSet supportedCodecInfos = new LinkedHashSet<>(); + + supportedCodecInfos.addAll(Arrays.asList(softwareVideoDecoderFactory.getSupportedCodecs())); + supportedCodecInfos.addAll(Arrays.asList(hardwareVideoDecoderFactory.getSupportedCodecs())); + supportedCodecInfos.addAll(Arrays.asList(platformSoftwareVideoDecoderFactory.getSupportedCodecs())); + + return supportedCodecInfos.toArray(new VideoCodecInfo[supportedCodecInfos.size()]); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiVideoEncoderFactory.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiVideoEncoderFactory.java new file mode 100644 index 0000000..5d075ab --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiVideoEncoderFactory.java @@ -0,0 +1,16 @@ +package org.jitsi.meet.sdk; + +import androidx.annotation.Nullable; + +import com.oney.WebRTCModule.webrtcutils.H264AndSoftwareVideoEncoderFactory; + +import org.webrtc.EglBase; + +/** + * Custom encoder factory which uses HW for H.264 and SW for everything else. + */ +public class JitsiVideoEncoderFactory extends H264AndSoftwareVideoEncoderFactory { + public JitsiVideoEncoderFactory(@Nullable EglBase.Context eglContext) { + super(eglContext); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/LocaleDetector.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/LocaleDetector.java new file mode 100644 index 0000000..73b5a86 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/LocaleDetector.java @@ -0,0 +1,58 @@ +/* + * Copyright @ 2018-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. + */ + +/* + * Based on https://github.com/DylanVann/react-native-locale-detector + */ + +package org.jitsi.meet.sdk; + +import android.content.Context; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; + +import java.util.HashMap; +import java.util.Map; + +/** + * Module which provides information about the system locale. + */ +class LocaleDetector extends ReactContextBaseJavaModule { + + public LocaleDetector(ReactApplicationContext reactContext) { + super(reactContext); + } + + /** + * Gets a {@code Map} of constants this module exports to JS. Supports JSON + * types. + * + * @return a {@link Map} of constants this module exports to JS + */ + @Override + public Map getConstants() { + Context context = getReactApplicationContext(); + HashMap constants = new HashMap<>(); + constants.put("locale", context.getResources().getConfiguration().locale.toLanguageTag()); + return constants; + } + + @Override + public String getName() { + return "LocaleDetector"; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/LogBridgeModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/LogBridgeModule.java new file mode 100644 index 0000000..2b7d349 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/LogBridgeModule.java @@ -0,0 +1,73 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import javax.annotation.Nonnull; + +/** + * Module implementing a "bridge" between the JS loggers and the native one. + */ +@ReactModule(name = LogBridgeModule.NAME) +class LogBridgeModule extends ReactContextBaseJavaModule { + public static final String NAME = "LogBridge"; + + public LogBridgeModule(@Nonnull ReactApplicationContext reactContext) { + super(reactContext); + } + + @Override + public String getName() { + return NAME; + } + + @ReactMethod + public void trace(final String message) { + JitsiMeetLogger.v(message); + } + + @ReactMethod + public void debug(final String message) { + JitsiMeetLogger.d(message); + } + + @ReactMethod + public void info(final String message) { + JitsiMeetLogger.i(message); + } + + @ReactMethod + public void log(final String message) { + JitsiMeetLogger.i(message); + } + + @ReactMethod + public void warn(final String message) { + JitsiMeetLogger.w(message); + } + + @ReactMethod + public void error(final String message) { + JitsiMeetLogger.e(message); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingConferenceTracker.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingConferenceTracker.java new file mode 100644 index 0000000..f603d67 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingConferenceTracker.java @@ -0,0 +1,99 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import com.facebook.react.bridge.ReadableMap; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; + + +/** + * Helper class to keep track of what the current conference is. + */ +class OngoingConferenceTracker { + private static final OngoingConferenceTracker instance = new OngoingConferenceTracker(); + + private static final String CONFERENCE_WILL_JOIN = "CONFERENCE_WILL_JOIN"; + private static final String CONFERENCE_TERMINATED = "CONFERENCE_TERMINATED"; + + private final Collection listeners = + Collections.synchronizedSet(new HashSet()); + private String currentConference; + + public OngoingConferenceTracker() { + } + + public static OngoingConferenceTracker getInstance() { + return instance; + } + + /** + * Gets the current active conference URL. + * + * @return - The current conference URL as a String. + */ + synchronized String getCurrentConference() { + return currentConference; + } + + synchronized void onExternalAPIEvent(String name, ReadableMap data) { + if (!data.hasKey("url")) { + return; + } + + String url = data.getString("url"); + if (url == null) { + return; + } + + switch(name) { + case CONFERENCE_WILL_JOIN: + currentConference = url; + updateListeners(); + break; + + case CONFERENCE_TERMINATED: + if (url.equals(currentConference)) { + currentConference = null; + updateListeners(); + } + break; + } + } + + void addListener(OngoingConferenceListener listener) { + listeners.add(listener); + } + + void removeListener(OngoingConferenceListener listener) { + listeners.remove(listener); + } + + private void updateListeners() { + synchronized (listeners) { + for (OngoingConferenceListener listener : listeners) { + listener.onCurrentConferenceChanged(currentConference); + } + } + } + + public interface OngoingConferenceListener { + void onCurrentConferenceChanged(String conferenceUrl); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingNotification.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingNotification.java new file mode 100644 index 0000000..63484f9 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingNotification.java @@ -0,0 +1,124 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import android.app.Activity; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.Notification; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; + +import androidx.annotation.StringRes; +import androidx.core.app.NotificationCompat; + + +/** + * Helper class for creating the ongoing notification which is used with + * {@link JitsiMeetOngoingConferenceService}. It allows the user to easily get back to the app + * and to hangup from within the notification itself. + */ +class OngoingNotification { + private static final String TAG = OngoingNotification.class.getSimpleName(); + + private static long startingTime = 0; + + static final String ONGOING_CONFERENCE_CHANNEL_ID = "JitsiOngoingConferenceChannel"; + + static void createNotificationChannel(Activity context) { + if (context == null) { + JitsiMeetLogger.w(TAG + " Cannot create notification channel: no current context"); + return; + } + + NotificationManager notificationManager + = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + + NotificationChannel channel + = notificationManager.getNotificationChannel(ONGOING_CONFERENCE_CHANNEL_ID); + + if (channel != null) { + // The channel was already created, no need to do it again. + return; + } + + channel = new NotificationChannel(ONGOING_CONFERENCE_CHANNEL_ID, context.getString(R.string.ongoing_notification_channel_name), NotificationManager.IMPORTANCE_DEFAULT); + channel.enableLights(false); + channel.enableVibration(false); + channel.setShowBadge(false); + + notificationManager.createNotificationChannel(channel); + } + + static Notification buildOngoingConferenceNotification(Boolean isMuted, Context context, Class tapBackActivity) { + if (context == null) { + JitsiMeetLogger.w(TAG + " Cannot create notification: no current context"); + return null; + } + + Intent notificationIntent = new Intent(context, tapBackActivity == null ? context.getClass() : tapBackActivity); + PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE); + + NotificationCompat.Builder builder = new NotificationCompat.Builder(context, ONGOING_CONFERENCE_CHANNEL_ID); + + if (startingTime == 0) { + startingTime = System.currentTimeMillis(); + } + + builder + .setCategory(NotificationCompat.CATEGORY_CALL) + .setContentTitle(context.getString(R.string.ongoing_notification_title)) + .setContentText(context.getString(R.string.ongoing_notification_text)) + .setPriority(NotificationCompat.PRIORITY_DEFAULT) + .setContentIntent(pendingIntent) + .setOngoing(true) + .setWhen(startingTime) + .setUsesChronometer(true) + .setAutoCancel(false) + .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) + .setOnlyAlertOnce(true) + .setSmallIcon(context.getResources().getIdentifier("ic_notification", "drawable", context.getPackageName())); + + NotificationCompat.Action hangupAction = createAction(context, JitsiMeetOngoingConferenceService.Action.HANGUP, R.string.ongoing_notification_action_hang_up); + + JitsiMeetOngoingConferenceService.Action toggleAudioAction = isMuted + ? JitsiMeetOngoingConferenceService.Action.UNMUTE : JitsiMeetOngoingConferenceService.Action.MUTE; + int toggleAudioTitle = isMuted ? R.string.ongoing_notification_action_unmute : R.string.ongoing_notification_action_mute; + NotificationCompat.Action audioAction = createAction(context, toggleAudioAction, toggleAudioTitle); + + builder.addAction(hangupAction); + builder.addAction(audioAction); + + return builder.build(); + } + + static void resetStartingtime() { + startingTime = 0; + } + + private static NotificationCompat.Action createAction(Context context, JitsiMeetOngoingConferenceService.Action action, @StringRes int titleId) { + Intent intent = new Intent(context, JitsiMeetOngoingConferenceService.class); + intent.setAction(action.getName()); + PendingIntent pendingIntent + = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); + String title = context.getString(titleId); + return new NotificationCompat.Action(0, title, pendingIntent); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ParticipantInfo.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ParticipantInfo.java new file mode 100644 index 0000000..ad95159 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ParticipantInfo.java @@ -0,0 +1,27 @@ +package org.jitsi.meet.sdk; + +import com.google.gson.annotations.SerializedName; + +public class ParticipantInfo { + + @SerializedName("participantId") + public String id; + + @SerializedName("displayName") + public String displayName; + + @SerializedName("avatarUrl") + public String avatarUrl; + + @SerializedName("email") + public String email; + + @SerializedName("name") + public String name; + + @SerializedName("isLocal") + public boolean isLocal; + + @SerializedName("role") + public String role; +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ParticipantsService.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ParticipantsService.java new file mode 100644 index 0000000..667f538 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ParticipantsService.java @@ -0,0 +1,90 @@ +package org.jitsi.meet.sdk; + +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.facebook.react.bridge.Arguments; +import com.facebook.react.bridge.WritableMap; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import javax.annotation.Nullable; + +public class ParticipantsService extends android.content.BroadcastReceiver { + + private static final String TAG = ParticipantsService.class.getSimpleName(); + private static final String REQUEST_ID = "requestId"; + + private final Map> participantsInfoCallbackMap = new HashMap<>(); + + private static ParticipantsService instance; + + @Nullable + public static ParticipantsService getInstance() { + return instance; + } + + private ParticipantsService(Context context) { + LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context); + + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(BroadcastEvent.Type.PARTICIPANTS_INFO_RETRIEVED.getAction()); + localBroadcastManager.registerReceiver(this, intentFilter); + } + + static void init(Context context) { + instance = new ParticipantsService(context); + } + + public void retrieveParticipantsInfo(ParticipantsInfoCallback participantsInfoCallback) { + String callbackKey = UUID.randomUUID().toString(); + this.participantsInfoCallbackMap.put(callbackKey, new WeakReference<>(participantsInfoCallback)); + + String actionName = BroadcastAction.Type.RETRIEVE_PARTICIPANTS_INFO.getAction(); + WritableMap data = Arguments.createMap(); + data.putString(REQUEST_ID, callbackKey); + ReactInstanceManagerHolder.emitEvent(actionName, data); + } + + @Override + public void onReceive(Context context, Intent intent) { + BroadcastEvent event = new BroadcastEvent(intent); + + switch (event.getType()) { + case PARTICIPANTS_INFO_RETRIEVED: + try { + List participantInfoList = new Gson().fromJson( + event.getData().get("participantsInfo").toString(), + new TypeToken>() { + }.getType()); + + ParticipantsInfoCallback participantsInfoCallback = this.participantsInfoCallbackMap.get(event.getData().get(REQUEST_ID).toString()).get(); + + if (participantsInfoCallback != null) { + participantsInfoCallback.onReceived(participantInfoList); + this.participantsInfoCallbackMap.remove(participantsInfoCallback); + } + } catch (Exception e) { + JitsiMeetLogger.w(TAG + "error parsing participantsList", e); + } + + break; + } + } + + public interface ParticipantsInfoCallback { + void onReceived(List participantInfoList); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/PictureInPictureModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/PictureInPictureModule.java new file mode 100644 index 0000000..4a95846 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/PictureInPictureModule.java @@ -0,0 +1,145 @@ +/* + * Copyright @ 2017-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 android.annotation.TargetApi; +import android.app.Activity; +import android.app.ActivityManager; +import android.app.PictureInPictureParams; +import android.util.Rational; + +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.util.HashMap; +import java.util.Map; + +import static android.content.Context.ACTIVITY_SERVICE; + +@ReactModule(name = PictureInPictureModule.NAME) +class PictureInPictureModule extends ReactContextBaseJavaModule { + + public static final String NAME = "PictureInPicture"; + private static final String TAG = NAME; + + private static boolean isSupported; + private boolean isEnabled; + + public PictureInPictureModule(ReactApplicationContext reactContext) { + super(reactContext); + + ActivityManager am = (ActivityManager) reactContext.getSystemService(ACTIVITY_SERVICE); + + // Android Go devices don't support PiP. There doesn't seem to be a better way to detect it than + // to use ActivityManager.isLowRamDevice(). + // https://stackoverflow.com/questions/58340558/how-to-detect-android-go + isSupported = !am.isLowRamDevice(); + } + + /** + * Gets a {@code Map} of constants this module exports to JS. Supports JSON + * types. + * + * @return a {@link Map} of constants this module exports to JS + */ + @Override + public Map getConstants() { + Map constants = new HashMap<>(); + constants.put("SUPPORTED", isSupported); + return constants; + } + + /** + * Enters Picture-in-Picture (mode) for the current {@link Activity}. + * Supported on Android API >= 26 (Oreo) only. + * + * @throws IllegalStateException if {@link #isPictureInPictureSupported()} + * returns {@code false} or if {@link #getCurrentActivity()} returns + * {@code null}. + * @throws RuntimeException if + * {@link Activity#enterPictureInPictureMode(PictureInPictureParams)} fails. + * That method can also throw a {@link RuntimeException} in various cases, + * including when the activity is not visible (paused or stopped), if the + * screen is locked or if the user has an activity pinned. + */ + public void enterPictureInPicture() { + if (!isEnabled) { + return; + } + + if (!isSupported) { + throw new IllegalStateException("Picture-in-Picture not supported"); + } + + Activity currentActivity = getCurrentActivity(); + + if (currentActivity == null) { + throw new IllegalStateException("No current Activity!"); + } + + JitsiMeetLogger.i(TAG + " Entering Picture-in-Picture"); + + PictureInPictureParams.Builder builder + = new PictureInPictureParams.Builder() + .setAspectRatio(new Rational(1, 1)); + + // https://developer.android.com/reference/android/app/Activity.html#enterPictureInPictureMode(android.app.PictureInPictureParams) + // + // The system may disallow entering picture-in-picture in various cases, + // including when the activity is not visible, if the screen is locked + // or if the user has an activity pinned. + if (!currentActivity.enterPictureInPictureMode(builder.build())) { + throw new RuntimeException("Failed to enter Picture-in-Picture"); + } + } + + /** + * Enters Picture-in-Picture (mode) for the current {@link Activity}. + * Supported on Android API >= 26 (Oreo) only. + * + * @param promise a {@code Promise} which will resolve with a {@code null} + * value upon success, and an {@link Exception} otherwise. + */ + @ReactMethod + public void enterPictureInPicture(Promise promise) { + try { + enterPictureInPicture(); + promise.resolve(null); + } catch (RuntimeException re) { + promise.reject(re); + } + } + + @ReactMethod + public void setPictureInPictureEnabled(Boolean enabled) { + this.isEnabled = enabled; + } + + public boolean isPictureInPictureSupported() { + return isSupported; + } + + @Override + public String getName() { + return NAME; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ProximityModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ProximityModule.java new file mode 100644 index 0000000..68e4354 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ProximityModule.java @@ -0,0 +1,107 @@ +/* + * Copyright @ 2017-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 android.content.Context; +import android.os.PowerManager; +import android.os.PowerManager.WakeLock; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.UiThreadUtil; +import com.facebook.react.module.annotations.ReactModule; + +/** + * Module implementing a simple API to enable a proximity sensor-controlled + * wake lock. When the lock is held, if the proximity sensor detects a nearby + * object it will dim the screen and disable touch controls. The functionality + * is used with the conference audio-only mode. + */ +@ReactModule(name = ProximityModule.NAME) +class ProximityModule extends ReactContextBaseJavaModule { + + public static final String NAME = "Proximity"; + + /** + * {@link WakeLock} instance. + */ + private final WakeLock wakeLock; + + /** + * Initializes a new module instance. There shall be a single instance of + * this module throughout the lifetime of the application. + * + * @param reactContext The {@link ReactApplicationContext} where this module + * is created. + */ + public ProximityModule(ReactApplicationContext reactContext) { + super(reactContext); + + WakeLock wakeLock; + PowerManager powerManager + = (PowerManager) + reactContext.getSystemService(Context.POWER_SERVICE); + + try { + wakeLock + = powerManager.newWakeLock( + PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, + "jitsi:"+NAME); + } catch (Throwable ignored) { + wakeLock = null; + } + + this.wakeLock = wakeLock; + } + + /** + * Gets the name of this module to be used in the React Native bridge. + * + * @return The name of this module to be used in the React Native bridge. + */ + @Override + public String getName() { + return NAME; + } + + /** + * Acquires / releases the proximity sensor wake lock. + * + * @param enabled {@code true} to enable the proximity sensor; otherwise, + * {@code false}. + */ + @ReactMethod + public void setEnabled(final boolean enabled) { + if (wakeLock == null) { + return; + } + + UiThreadUtil.runOnUiThread(new Runnable() { + @Override + public void run() { + if (enabled) { + if (!wakeLock.isHeld()) { + wakeLock.acquire(); + } + } else if (wakeLock.isHeld()) { + wakeLock.release(); + } + } + }); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/RNConnectionService.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/RNConnectionService.java new file mode 100644 index 0000000..24451e7 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/RNConnectionService.java @@ -0,0 +1,255 @@ +package org.jitsi.meet.sdk; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.telecom.DisconnectCause; +import android.telecom.PhoneAccount; +import android.telecom.PhoneAccountHandle; +import android.telecom.TelecomManager; +import android.telecom.VideoProfile; + +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; + +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.module.annotations.ReactModule; +import com.facebook.react.modules.core.DeviceEventManagerModule; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +/** + * The react-native side of Jitsi Meet's {@link ConnectionService}. Exposes + * the Java Script API. + * + * @author Pawel Domas + */ +@ReactModule(name = RNConnectionService.NAME) +class RNConnectionService extends ReactContextBaseJavaModule { + + public static final String NAME = "ConnectionService"; + + private static final String TAG = ConnectionService.TAG; + + private static RNConnectionService sRNConnectionServiceInstance; + /** + * Handler for dealing with call state changes. We are acting as a proxy between ConnectionService + * and other modules such as {@link AudioModeModule}. + */ + private CallAudioStateListener callAudioStateListener; + + /** + * Sets the audio route on all existing {@link android.telecom.Connection}s + * + * @param audioRoute the new audio route to be set. See + * {@link android.telecom.CallAudioState} constants prefixed with "ROUTE_". + */ + static void setAudioRoute(int audioRoute) { + for (ConnectionService.ConnectionImpl c + : ConnectionService.getConnections()) { + c.setAudioRoute(audioRoute); + } + } + + RNConnectionService(ReactApplicationContext reactContext) { + super(reactContext); + sRNConnectionServiceInstance = this; + } + + static RNConnectionService getInstance() { + return sRNConnectionServiceInstance; + } + + @ReactMethod + public void addListener(String eventName) { + // Keep: Required for RN built in Event Emitter Calls. + } + + @ReactMethod + public void removeListeners(Integer count) { + // Keep: Required for RN built in Event Emitter Calls. + } + + /** + * Starts a new outgoing call. + * + * @param callUUID - unique call identifier assigned by Jitsi Meet to + * a conference call. + * @param handle - a call handle which by default is Jitsi Meet room's URL. + * @param hasVideo - whether or not user starts with the video turned on. + * @param promise - the Promise instance passed by the React-native bridge, + * so that this method returns a Promise on the JS side. + * + * NOTE regarding the "missingPermission" suppress - SecurityException will + * be handled as part of the Exception try catch block and the Promise will + * be rejected. + */ + @SuppressLint("MissingPermission") + @ReactMethod + public void startCall( + String callUUID, + String handle, + boolean hasVideo, + Promise promise) { + JitsiMeetLogger.d("%s startCall UUID=%s, h=%s, v=%s", + TAG, + callUUID, + handle, + hasVideo); + + ReactApplicationContext ctx = getReactApplicationContext(); + + Uri address = Uri.fromParts(PhoneAccount.SCHEME_SIP, handle, null); + PhoneAccountHandle accountHandle; + + try { + accountHandle + = ConnectionService.registerPhoneAccount(getReactApplicationContext(), address, callUUID); + } catch (Throwable tr) { + JitsiMeetLogger.e(tr, TAG + " error in startCall"); + + promise.reject(tr); + return; + } + + Bundle extras = new Bundle(); + extras.putParcelable( + TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, + accountHandle); + extras.putInt( + TelecomManager.EXTRA_START_CALL_WITH_VIDEO_STATE, + hasVideo + ? VideoProfile.STATE_BIDIRECTIONAL + : VideoProfile.STATE_AUDIO_ONLY); + + ConnectionService.registerStartCallPromise(callUUID, promise); + + TelecomManager tm = null; + + try { + tm = (TelecomManager) ctx.getSystemService(Context.TELECOM_SERVICE); + tm.placeCall(address, extras); + } catch (Throwable tr) { + JitsiMeetLogger.e(tr, TAG + " error in startCall"); + if (tm != null) { + try { + tm.unregisterPhoneAccount(accountHandle); + } catch (Throwable tr1) { + // UnsupportedOperationException: System does not support feature android.software.connectionservice + // was observed here. Ignore. + } + } + ConnectionService.unregisterStartCallPromise(callUUID); + promise.reject(tr); + } + } + + /** + * Called by the JS side of things to mark the call as failed. + * + * @param callUUID - the call's UUID. + */ + @ReactMethod + public void reportCallFailed(String callUUID) { + JitsiMeetLogger.d(TAG + " reportCallFailed " + callUUID); + ConnectionService.setConnectionDisconnected( + callUUID, + new DisconnectCause(DisconnectCause.ERROR)); + } + + /** + * Called by the JS side of things to mark the call as disconnected. + * + * @param callUUID - the call's UUID. + */ + @ReactMethod + public void endCall(String callUUID) { + JitsiMeetLogger.d(TAG + " endCall " + callUUID); + ConnectionService.setConnectionDisconnected( + callUUID, + new DisconnectCause(DisconnectCause.LOCAL)); + } + + /** + * Called by the JS side of things to mark the call as active. + * + * @param callUUID - the call's UUID. + */ + @ReactMethod + public void reportConnectedOutgoingCall(String callUUID, Promise promise) { + JitsiMeetLogger.d(TAG + " reportConnectedOutgoingCall " + callUUID); + if (ConnectionService.setConnectionActive(callUUID)) { + promise.resolve(null); + } else { + promise.reject("CONNECTION_NOT_FOUND_ERROR", "Connection wasn't found."); + } + } + + @Override + public String getName() { + return NAME; + } + + /** + * Called by the JS side to update the call's state. + * + * @param callUUID - the call's UUID. + * @param callState - the map which carries info about the current call's + * state. See static fields in {@link ConnectionService.ConnectionImpl} + * prefixed with "KEY_" for the values supported by the Android + * implementation. + */ + @ReactMethod + public void updateCall(String callUUID, ReadableMap callState) { + ConnectionService.updateCall(callUUID, callState); + } + + public CallAudioStateListener getCallAudioStateListener() { + return callAudioStateListener; + } + + public void setCallAudioStateListener(CallAudioStateListener callAudioStateListener) { + this.callAudioStateListener = callAudioStateListener; + } + + /** + * Handler for call state changes. {@code ConnectionServiceImpl} will call this handler when the + * call audio state changes. + * + * @param callAudioState The current call's audio state. + */ + void onCallAudioStateChange(android.telecom.CallAudioState callAudioState) { + if (callAudioStateListener != null) { + callAudioStateListener.onCallAudioStateChange(callAudioState); + } + } + + interface CallAudioStateListener { + void onCallAudioStateChange(android.telecom.CallAudioState callAudioState); + } + + /** + * Helper function to send an event to JavaScript. + * + * @param eventName {@code String} containing the event name. + * @param data {@code Object} optional ancillary data for the event. + */ + void emitEvent( + String eventName, + @Nullable Object data) { + ReactContext reactContext = getReactApplicationContext(); + + if (reactContext != null) { + reactContext + .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) + .emit(eventName, data); + } + } +} 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 new file mode 100644 index 0000000..ee730ed --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java @@ -0,0 +1,245 @@ +/* + * Copyright @ 2017-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 android.annotation.SuppressLint; +import android.app.Activity; +import android.app.Application; + +import androidx.annotation.Nullable; + +import com.facebook.hermes.reactexecutor.HermesExecutorFactory; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.ReactPackage; +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.modules.core.DeviceEventManagerModule; +import com.facebook.react.uimanager.ViewManager; +import com.oney.WebRTCModule.EglUtils; +import com.oney.WebRTCModule.WebRTCModuleOptions; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; +import org.webrtc.EglBase; + +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +class ReactInstanceManagerHolder { + private static final String TAG = ReactInstanceManagerHolder.class.getSimpleName(); + + /** + * FIXME (from linter): Do not place Android context classes in static + * fields (static reference to ReactInstanceManager which has field + * mApplicationContext pointing to Context); this is a memory leak (and + * also breaks Instant Run). + * + * React Native bridge. The instance manager allows embedding applications + * to create multiple root views off the same JavaScript bundle. + */ + private static ReactInstanceManager reactInstanceManager; + + private static List createNativeModules(ReactApplicationContext reactContext) { + List nativeModules + = new ArrayList<>(Arrays.asList( + new AndroidSettingsModule(reactContext), + new AppInfoModule(reactContext), + new AudioModeModule(reactContext), + new DropboxModule(reactContext), + new ExternalAPIModule(reactContext), + new JavaScriptSandboxModule(reactContext), + new LocaleDetector(reactContext), + new LogBridgeModule(reactContext), + new PictureInPictureModule(reactContext), + new ProximityModule(reactContext), + new org.jitsi.meet.sdk.net.NAT64AddrInfoModule(reactContext))); + + if (AudioModeModule.useConnectionService()) { + nativeModules.add(new RNConnectionService(reactContext)); + } + + return nativeModules; + } + + private static List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } + + static List getReactNativePackages() { + List packages + = new ArrayList<>(Arrays.asList( + new com.reactnativecommunity.asyncstorage.AsyncStoragePackage(), + new com.ocetnik.timer.BackgroundTimerPackage(), + new com.calendarevents.RNCalendarEventsPackage(), + new com.sayem.keepawake.KCKeepAwakePackage(), + new com.facebook.react.shell.MainReactPackage(), + new com.reactnativecommunity.clipboard.ClipboardPackage(), + new com.reactnativecommunity.netinfo.NetInfoPackage(), + new com.reactnativepagerview.PagerViewPackage(), + new com.oblador.performance.PerformancePackage(), + new com.reactnativecommunity.slider.ReactSliderPackage(), + new com.brentvatne.react.ReactVideoPackage(), + new com.reactnativecommunity.webview.RNCWebViewPackage(), + new com.kevinresol.react_native_default_preference.RNDefaultPreferencePackage(), + new com.learnium.RNDeviceInfo.RNDeviceInfo(), + new com.oney.WebRTCModule.WebRTCModulePackage(), + new com.swmansion.gesturehandler.RNGestureHandlerPackage(), + new org.linusu.RNGetRandomValuesPackage(), + new com.rnimmersivemode.RNImmersiveModePackage(), + new com.swmansion.rnscreens.RNScreensPackage(), + new com.zmxv.RNSound.RNSoundPackage(), + new com.th3rdwave.safeareacontext.SafeAreaContextPackage(), + new com.horcrux.svg.SvgPackage(), + new org.wonday.orientation.OrientationPackage(), + new com.splashview.SplashViewPackage(), + new ReactPackageAdapter() { + @Override + public List createNativeModules(ReactApplicationContext reactContext) { + return ReactInstanceManagerHolder.createNativeModules(reactContext); + } + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return ReactInstanceManagerHolder.createViewManagers(reactContext); + } + })); + + // AmplitudeReactNativePackage + try { + Class amplitudePackageClass = Class.forName("com.amplitude.reactnative.AmplitudeReactNativePackage"); + Constructor constructor = amplitudePackageClass.getConstructor(); + packages.add((ReactPackage)constructor.newInstance()); + } catch (Exception e) { + // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled. + JitsiMeetLogger.d(TAG, "Not loading AmplitudeReactNativePackage"); + } + + // GiphyReactNativeSdkPackage + try { + Class giphyPackageClass = Class.forName("com.giphyreactnativesdk.RTNGiphySdkPackage"); + Constructor constructor = giphyPackageClass.getConstructor(); + packages.add((ReactPackage)constructor.newInstance()); + } catch (Exception e) { + // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled. + JitsiMeetLogger.d(TAG, "Not loading GiphyReactNativeSdkPackage"); + } + + // RNGoogleSignInPackage + try { + Class googlePackageClass = Class.forName("com.reactnativegooglesignin.RNGoogleSigninPackage"); + Constructor constructor = googlePackageClass.getConstructor(); + packages.add((ReactPackage)constructor.newInstance()); + } catch (Exception e) { + // Ignore any error, the module is not compiled when LIBRE_BUILD is enabled. + JitsiMeetLogger.d(TAG, "Not loading RNGoogleSignInPackage"); + } + + return packages; + } + + /** + * Helper function to send an event to JavaScript. + * + * @param eventName {@code String} containing the event name. + * @param data {@code Object} optional ancillary data for the event. + */ + static void emitEvent( + String eventName, + @Nullable Object data) { + ReactInstanceManager reactInstanceManager + = ReactInstanceManagerHolder.getReactInstanceManager(); + + if (reactInstanceManager != null) { + @SuppressLint("VisibleForTests") ReactContext reactContext + = reactInstanceManager.getCurrentReactContext(); + + if (reactContext != null) { + reactContext + .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) + .emit(eventName, data); + } + } + } + + /** + * Finds a native React module for given class. + * + * @param nativeModuleClass the native module's class for which an instance + * is to be retrieved from the {@link #reactInstanceManager}. + * @param the module's type. + * @return {@link NativeModule} instance for given interface type or + * {@code null} if no instance for this interface is available, or if + * {@link #reactInstanceManager} has not been initialized yet. + */ + static T getNativeModule( + Class nativeModuleClass) { + @SuppressLint("VisibleForTests") ReactContext reactContext + = reactInstanceManager != null + ? reactInstanceManager.getCurrentReactContext() : null; + + return reactContext != null + ? reactContext.getNativeModule(nativeModuleClass) : null; + } + + static ReactInstanceManager getReactInstanceManager() { + return reactInstanceManager; + } + + /** + * Internal method to initialize the React Native instance manager. We + * create a single instance in order to load the JavaScript bundle a single + * time. All {@code ReactRootView} instances will be tied to the one and + * only {@code ReactInstanceManager}. + * + * @param app {@code Application} + */ + static void initReactInstanceManager(Application app) { + if (reactInstanceManager != null) { + return; + } + + // Initialize the WebRTC module options. + WebRTCModuleOptions options = WebRTCModuleOptions.getInstance(); + options.enableMediaProjectionService = true; + if (options.videoDecoderFactory == null || options.videoEncoderFactory == null) { + EglBase.Context eglContext = EglUtils.getRootEglBaseContext(); + if (options.videoDecoderFactory == null) { + options.videoDecoderFactory = new JitsiVideoDecoderFactory(eglContext); + } + if (options.videoEncoderFactory == null) { + options.videoEncoderFactory = new JitsiVideoEncoderFactory(eglContext); + } + } + + JitsiMeetLogger.d(TAG, "initializing RN"); + + reactInstanceManager + = ReactInstanceManager.builder() + .setApplication(app) + .setCurrentActivity(null) + .setBundleAssetName("index.android.bundle") + .setJSMainModulePath("index.android") + .setJavaScriptExecutorFactory(new HermesExecutorFactory()) + .addPackages(getReactNativePackages()) + .setUseDeveloperSupport(BuildConfig.DEBUG) + .setInitialLifecycleState(LifecycleState.BEFORE_CREATE) + .build(); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactPackageAdapter.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactPackageAdapter.java new file mode 100644 index 0000000..fe9c4b8 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactPackageAdapter.java @@ -0,0 +1,41 @@ +/* + * Copyright @ 2017-present Atlassian Pty Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jitsi.meet.sdk; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; + +import java.util.Collections; +import java.util.List; + +class ReactPackageAdapter + implements ReactPackage { + + @Override + public List createNativeModules( + ReactApplicationContext reactContext) { + return Collections.emptyList(); + } + + @Override + public List createViewManagers( + ReactApplicationContext reactContext) { + return Collections.emptyList(); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetBaseLogHandler.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetBaseLogHandler.java new file mode 100644 index 0000000..0a8b288 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetBaseLogHandler.java @@ -0,0 +1,49 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk.log; + +import android.util.Log; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.text.MessageFormat; + +import timber.log.Timber; + +/** + * Base class for all custom log handlers. Implementations must inherit from this class and + * implement a `doLog` method which does the actual logging, in addition with a `getTag` method + * with which to tag all logs coming into this logger. + * + * See {@link JitsiMeetDefaultLogHandler} for an example. + */ +public abstract class JitsiMeetBaseLogHandler extends Timber.Tree { + @Override + protected void log(int priority, @Nullable String tag, @NotNull String msg, @Nullable Throwable t) { + String errmsg = Log.getStackTraceString(t); + if (errmsg.isEmpty()) { + doLog(priority, getDefaultTag(), msg); + } else { + doLog(priority, getDefaultTag(), MessageFormat.format("{0}\n{1}", msg, errmsg)); + } + } + + protected abstract void doLog(int priority, @NotNull String tag, @NotNull String msg); + + protected abstract String getDefaultTag(); +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetDefaultLogHandler.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetDefaultLogHandler.java new file mode 100644 index 0000000..09fb63c --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetDefaultLogHandler.java @@ -0,0 +1,39 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk.log; + +import android.util.Log; + +import org.jetbrains.annotations.NotNull; + +/** + * Default implementation of a {@link JitsiMeetBaseLogHandler}. This is the main SDK logger, which + * logs using the Android util.Log module. + */ +public class JitsiMeetDefaultLogHandler extends JitsiMeetBaseLogHandler { + private static final String TAG = "JitsiMeetSDK"; + + @Override + protected void doLog(int priority, @NotNull String tag, @NotNull String msg) { + Log.println(priority, tag, msg); + } + + @Override + protected String getDefaultTag() { + return TAG; + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetLogger.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetLogger.java new file mode 100644 index 0000000..b0765a9 --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/log/JitsiMeetLogger.java @@ -0,0 +1,107 @@ +/* + * 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. + */ + +package org.jitsi.meet.sdk.log; + +import timber.log.Timber; + +public class JitsiMeetLogger { + static { + addHandler(new JitsiMeetDefaultLogHandler()); + } + + public static void addHandler(JitsiMeetBaseLogHandler handler) { + if (!Timber.forest().contains(handler)) { + try { + Timber.plant(handler); + } catch (Throwable t) { + Timber.w(t, "Couldn't add log handler"); + } + + } + } + + public static void removeHandler(JitsiMeetBaseLogHandler handler) { + if (Timber.forest().contains(handler)) { + try { + Timber.uproot(handler); + } catch (Throwable t) { + Timber.w(t, "Couldn't remove log handler"); + } + } + } + + public static void v(String message, Object... args) { + Timber.v(message, args); + } + + public static void v(Throwable t, String message, Object... args) { + Timber.v(t, message, args); + } + + public static void v(Throwable t) { + Timber.v(t); + } + + public static void d(String message, Object... args) { + Timber.d(message, args); + } + + public static void d(Throwable t, String message, Object... args) { + Timber.d(t, message, args); + } + + public static void d(Throwable t) { + Timber.d(t); + } + + public static void i(String message, Object... args) { + Timber.i(message, args); + } + + public static void i(Throwable t, String message, Object... args) { + Timber.i(t, message, args); + } + + public static void i(Throwable t) { + Timber.i(t); + } + + public static void w(String message, Object... args) { + Timber.w(message, args); + } + + public static void w(Throwable t, String message, Object... args) { + Timber.w(t, message, args); + } + + public static void w(Throwable t) { + Timber.w(t); + } + + public static void e(String message, Object... args) { + Timber.e(message, args); + } + + public static void e(Throwable t, String message, Object... args) { + Timber.e(t, message, args); + } + + public static void e(Throwable t) { + Timber.e(t); + } + +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/net/NAT64AddrInfo.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/net/NAT64AddrInfo.java new file mode 100644 index 0000000..389ab9d --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/net/NAT64AddrInfo.java @@ -0,0 +1,238 @@ +/* + * Copyright @ 2018-present Atlassian Pty Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jitsi.meet.sdk.net; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * Constructs IPv6 addresses for IPv4 addresses in the NAT64 environment. + * + * NAT64 translates IPv4 to IPv6 addresses by adding "well known" prefix and + * suffix configured by the administrator. Those are figured out by discovering + * both IPv6 and IPv4 addresses of a host and then trying to find a place where + * the IPv4 address fits into the format described here: + * https://tools.ietf.org/html/rfc6052#section-2.2 + */ +public class NAT64AddrInfo { + /** + * Coverts bytes array to upper case HEX string. + * + * @param bytes an array of bytes to be converted + * @return ex. "010AFF" for an array of {1, 10, 255}. + */ + static String bytesToHexString(byte[] bytes) { + StringBuilder hexStr = new StringBuilder(); + + for (byte b : bytes) { + hexStr.append(String.format("%02X", b)); + } + + return hexStr.toString(); + } + + /** + * Tries to discover the NAT64 prefix/suffix based on the IPv4 and IPv6 + * addresses resolved for given {@code host}. + * + * @param host the host for which the code will try to discover IPv4 and + * IPv6 addresses which then will be used to figure out the NAT64 prefix. + * @return {@link NAT64AddrInfo} instance if the NAT64 prefix/suffix was + * successfully discovered or {@code null} if it failed for any reason. + * @throws UnknownHostException thrown by {@link InetAddress#getAllByName}. + */ + public static NAT64AddrInfo discover(String host) + throws UnknownHostException { + InetAddress ipv4 = null; + InetAddress ipv6 = null; + + for(InetAddress addr : InetAddress.getAllByName(host)) { + byte[] bytes = addr.getAddress(); + + if (bytes.length == 4) { + ipv4 = addr; + } else if (bytes.length == 16) { + ipv6 = addr; + } + } + + if (ipv4 != null && ipv6 != null) { + return figureOutNAT64AddrInfo(ipv4.getAddress(), ipv6.getAddress()); + } + + return null; + } + + /** + * Based on IPv4 and IPv6 addresses of the same host, the method will make + * an attempt to figure out what are the NAT64 prefix and suffix. + * + * @param ipv4AddrBytes the IPv4 address of the same host in NAT64 network, + * as returned by {@link InetAddress#getAddress()}. + * @param ipv6AddrBytes the IPv6 address of the same host in NAT64 network, + * as returned by {@link InetAddress#getAddress()}. + * @return {@link NAT64AddrInfo} instance which contains the prefix/suffix + * of the current NAT64 network or {@code null} if the prefix could not be + * found. + */ + static NAT64AddrInfo figureOutNAT64AddrInfo( + byte[] ipv4AddrBytes, + byte[] ipv6AddrBytes) { + String ipv6Str = bytesToHexString(ipv6AddrBytes); + String ipv4Str = bytesToHexString(ipv4AddrBytes); + + // NAT64 address format: + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + // |PL| 0-------------32--40--48--56--64--72--80--88--96--104---------| + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + // |32| prefix |v4(32) | u | suffix | + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + // |40| prefix |v4(24) | u |(8)| suffix | + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + // |48| prefix |v4(16) | u | (16) | suffix | + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + // |56| prefix |(8)| u | v4(24) | suffix | + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + // |64| prefix | u | v4(32) | suffix | + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + // |96| prefix | v4(32) | + // +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + int prefixLength = 96; + int suffixLength = 0; + String prefix = null; + String suffix = null; + + if (ipv4Str.equalsIgnoreCase(ipv6Str.substring(prefixLength / 4))) { + prefix = ipv6Str.substring(0, prefixLength / 4); + } else { + // Cut out the 'u' octet + ipv6Str = ipv6Str.substring(0, 16) + ipv6Str.substring(18); + + for (prefixLength = 64, suffixLength = 6; prefixLength >= 32; ) { + if (ipv4Str.equalsIgnoreCase( + ipv6Str.substring( + prefixLength / 4, prefixLength / 4 + 8))) { + prefix = ipv6Str.substring(0, prefixLength / 4); + suffix = ipv6Str.substring(ipv6Str.length() - suffixLength); + break; + } + + prefixLength -= 8; + suffixLength += 2; + } + } + + return prefix != null ? new NAT64AddrInfo(prefix, suffix) : null; + } + + /** + * An overload for {@link #hexStringToIPv6String(StringBuilder)}. + * + * @param hexStr a hex representation of IPv6 address bytes. + * @return an IPv6 address string. + */ + static String hexStringToIPv6String(String hexStr) { + return hexStringToIPv6String(new StringBuilder(hexStr)); + } + + /** + * Converts from HEX representation of IPv6 address bytes into IPv6 address + * string which includes the ':' signs. + * + * @param str a hex representation of IPv6 address bytes. + * @return eg. FE80:CD00:0000:0CDA:1357:0000:212F:749C + */ + static String hexStringToIPv6String(StringBuilder str) { + for (int i = 32 - 4; i > 0; i -= 4) { + str.insert(i, ":"); + } + + return str.toString().toUpperCase(); + } + + /** + * Parses an IPv4 address string and returns it's byte array representation. + * + * @param ipv4Address eg. '192.168.3.23' + * @return byte representation of given IPv4 address string. + * @throws IllegalArgumentException if the address is not in valid format. + */ + static byte[] ipv4AddressStringToBytes(String ipv4Address) { + InetAddress address; + + try { + address = InetAddress.getByName(ipv4Address); + } catch (UnknownHostException e) { + throw new IllegalArgumentException( + "Invalid IP address: " + ipv4Address, e); + } + + byte[] bytes = address.getAddress(); + + if (bytes.length != 4) { + throw new IllegalArgumentException( + "Not an IPv4 address: " + ipv4Address); + } + + return bytes; + } + + /** + * The NAT64 prefix added to construct IPv6 from an IPv4 address. + */ + private final String prefix; + + /** + * The NAT64 suffix (if any) used to construct IPv6 from an IPv4 address. + */ + private final String suffix; + + /** + * Creates new instance of {@link NAT64AddrInfo}. + * + * @param prefix the NAT64 prefix. + * @param suffix the NAT64 suffix. + */ + private NAT64AddrInfo(String prefix, String suffix) { + this.prefix = prefix; + this.suffix = suffix; + } + + /** + * Based on the NAT64 prefix and suffix will create an IPv6 representation + * of the given IPv4 address. + * + * @param ipv4Address eg. '192.34.2.3' + * @return IPv6 address string eg. FE80:CD00:0000:0CDA:1357:0000:212F:749C + * @throws IllegalArgumentException if given string is not a valid IPv4 + * address. + */ + public String getIPv6Address(String ipv4Address) { + byte[] ipv4AddressBytes = ipv4AddressStringToBytes(ipv4Address); + StringBuilder newIPv6Str = new StringBuilder(); + + newIPv6Str.append(prefix); + newIPv6Str.append(bytesToHexString(ipv4AddressBytes)); + + if (suffix != null) { + // Insert the 'u' octet. + newIPv6Str.insert(16, "00"); + newIPv6Str.append(suffix); + } + + return hexStringToIPv6String(newIPv6Str); + } +} diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/net/NAT64AddrInfoModule.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/net/NAT64AddrInfoModule.java new file mode 100644 index 0000000..d88872f --- /dev/null +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/net/NAT64AddrInfoModule.java @@ -0,0 +1,123 @@ +/* + * Copyright @ 2018-present Atlassian Pty Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jitsi.meet.sdk.net; + +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; + +import org.jitsi.meet.sdk.log.JitsiMeetLogger; + +import java.net.UnknownHostException; + +/** + * This module exposes the functionality of creating an IPv6 representation + * of IPv4 addresses in NAT64 environment. + * + * See[1] and [2] for more info on what NAT64 is. + * [1]: https://tools.ietf.org/html/rfc6146 + * [2]: https://tools.ietf.org/html/rfc6052 + */ +@ReactModule(name = NAT64AddrInfoModule.NAME) +public class NAT64AddrInfoModule + extends ReactContextBaseJavaModule { + + public final static String NAME = "NAT64AddrInfo"; + + /** + * The host for which the module wil try to resolve both IPv4 and IPv6 + * addresses in order to figure out the NAT64 prefix. + */ + private final static String HOST = "ipv4only.arpa"; + + /** + * How long is the {@link NAT64AddrInfo} instance valid. + */ + private final static long INFO_LIFETIME = 60 * 1000; + + /** + * The {@code Log} tag {@code NAT64AddrInfoModule} is to log messages with. + */ + private final static String TAG = NAME; + + /** + * The {@link NAT64AddrInfo} instance which holds NAT64 prefix/suffix. + */ + private NAT64AddrInfo info; + + /** + * When {@link #info} was created. + */ + private long infoTimestamp; + + /** + * Creates new {@link NAT64AddrInfoModule}. + * + * @param reactContext the react context to be used by the new module + * instance. + */ + public NAT64AddrInfoModule(ReactApplicationContext reactContext) { + super(reactContext); + } + + /** + * Tries to obtain IPv6 address for given IPv4 address in NAT64 environment. + * + * @param ipv4Address IPv4 address string. + * @param promise a {@link Promise} which will be resolved either with IPv6 + * address for given IPv4 address or with {@code null} if no + * {@link NAT64AddrInfo} was resolved for the current network. Will be + * rejected if given {@code ipv4Address} is not a valid IPv4 address. + */ + @ReactMethod + public void getIPv6Address(String ipv4Address, final Promise promise) { + // Reset if cached for too long. + if (System.currentTimeMillis() - infoTimestamp > INFO_LIFETIME) { + info = null; + } + + if (info == null) { + String host = HOST; + + try { + info = NAT64AddrInfo.discover(host); + } catch (UnknownHostException e) { + JitsiMeetLogger.e(e, TAG + " NAT64AddrInfo.discover: " + host); + } + infoTimestamp = System.currentTimeMillis(); + } + + String result; + + try { + result = info == null ? null : info.getIPv6Address(ipv4Address); + } catch (IllegalArgumentException exc) { + JitsiMeetLogger.e(exc, TAG + " Failed to get IPv6 address for: " + ipv4Address); + + // We don't want to reject. It's not a big deal if there's no IPv6 + // address resolved. + result = null; + } + promise.resolve(result); + } + + @Override + public String getName() { + return NAME; + } +} diff --git a/android/sdk/src/main/java/org/webrtc/JitsiPlatformVideoDecoderFactory.java b/android/sdk/src/main/java/org/webrtc/JitsiPlatformVideoDecoderFactory.java new file mode 100644 index 0000000..97522a3 --- /dev/null +++ b/android/sdk/src/main/java/org/webrtc/JitsiPlatformVideoDecoderFactory.java @@ -0,0 +1,40 @@ +/* + * Copyright 2018 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +package org.webrtc; + +import android.media.MediaCodecInfo; +import androidx.annotation.Nullable; + +/** Factory for Android platform software VideoDecoders. */ +public class JitsiPlatformVideoDecoderFactory extends MediaCodecVideoDecoderFactory { + /** + * Default allowed predicate. + */ + private static final Predicate defaultAllowedPredicate = + codecInfo -> { + // We only want to use the platform software codecs. + return MediaCodecUtils.isSoftwareOnly(codecInfo); + }; + + /** + * Creates a PlatformSoftwareVideoDecoderFactory that supports surface texture rendering. + * + * @param sharedContext The textures generated will be accessible from this context. May be null, + * this disables texture support. + */ + public JitsiPlatformVideoDecoderFactory(@Nullable EglBase.Context sharedContext) { + super(sharedContext, defaultAllowedPredicate); + } + + public JitsiPlatformVideoDecoderFactory(@Nullable EglBase.Context sharedContext, @Nullable Predicate codecAllowedPredicate) { + super(sharedContext, codecAllowedPredicate == null ? defaultAllowedPredicate : codecAllowedPredicate.and(defaultAllowedPredicate)); + } +} diff --git a/android/sdk/src/main/res/drawable-hdpi/ic_notification.png b/android/sdk/src/main/res/drawable-hdpi/ic_notification.png new file mode 100644 index 0000000..da701e5 Binary files /dev/null and b/android/sdk/src/main/res/drawable-hdpi/ic_notification.png differ diff --git a/android/sdk/src/main/res/drawable-mdpi/ic_notification.png b/android/sdk/src/main/res/drawable-mdpi/ic_notification.png new file mode 100644 index 0000000..7540f39 Binary files /dev/null and b/android/sdk/src/main/res/drawable-mdpi/ic_notification.png differ diff --git a/android/sdk/src/main/res/drawable-xhdpi/ic_notification.png b/android/sdk/src/main/res/drawable-xhdpi/ic_notification.png new file mode 100644 index 0000000..bed1734 Binary files /dev/null and b/android/sdk/src/main/res/drawable-xhdpi/ic_notification.png differ diff --git a/android/sdk/src/main/res/drawable-xxhdpi/ic_notification.png b/android/sdk/src/main/res/drawable-xxhdpi/ic_notification.png new file mode 100644 index 0000000..88bf389 Binary files /dev/null and b/android/sdk/src/main/res/drawable-xxhdpi/ic_notification.png differ diff --git a/android/sdk/src/main/res/drawable-xxxhdpi/ic_notification.png b/android/sdk/src/main/res/drawable-xxxhdpi/ic_notification.png new file mode 100644 index 0000000..f071fac Binary files /dev/null and b/android/sdk/src/main/res/drawable-xxxhdpi/ic_notification.png differ diff --git a/android/sdk/src/main/res/layout/activity_jitsi_meet.xml b/android/sdk/src/main/res/layout/activity_jitsi_meet.xml new file mode 100644 index 0000000..e2213b0 --- /dev/null +++ b/android/sdk/src/main/res/layout/activity_jitsi_meet.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/android/sdk/src/main/res/values-ru/strings.xml b/android/sdk/src/main/res/values-ru/strings.xml new file mode 100644 index 0000000..48573ce --- /dev/null +++ b/android/sdk/src/main/res/values-ru/strings.xml @@ -0,0 +1,9 @@ + + + Текущая встреча + Нажмите, чтобы вернуться к встрече. + Отключиться + Отключить звук + Включить звук + Ongoing Conference Notifications + \ No newline at end of file diff --git a/android/sdk/src/main/res/values/strings.xml b/android/sdk/src/main/res/values/strings.xml new file mode 100644 index 0000000..8bc4c5b --- /dev/null +++ b/android/sdk/src/main/res/values/strings.xml @@ -0,0 +1,12 @@ + + Jitsi Meet SDK + + Media projection + You are currently sharing your screen. + Ongoing meeting + You are currently in a meeting. Tap to return to it. + Hang up + Mute + Unmute + Ongoing Conference Notifications + diff --git a/android/sdk/src/main/res/values/styles.xml b/android/sdk/src/main/res/values/styles.xml new file mode 100644 index 0000000..83cac6b --- /dev/null +++ b/android/sdk/src/main/res/values/styles.xml @@ -0,0 +1,3 @@ + + + + + +

+ + diff --git a/doc/jaas/move-to-jaas.sh b/doc/jaas/move-to-jaas.sh new file mode 100755 index 0000000..a7ba43c --- /dev/null +++ b/doc/jaas/move-to-jaas.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +set -e + +PRIVATE_KEY=$1 +JAAS_KEY_ID=$2 + +if [ ! -f "${PRIVATE_KEY}" ] ; then + echo "You need to specify a correct path for the private key as a first argument." + exit 1; +fi + +if [[ ! "${JAAS_KEY_ID}" =~ ^vpaas-magic-cookie-[0-9a-z]+/[0-9a-z]+$ ]]; then + echo "Invalid key id passed as a second argument." + exit 2; +fi + +command -v node >/dev/null 2>&1 || { echo >&2 "You must install node first, go to https://nodejs.org. Aborting."; exit 4; } + +NODE_VER=$(node -v); +NODE_MAJOR_VER=$(echo ${NODE_VER:1} | cut -d. -f1); + +if [ "$NODE_MAJOR_VER" -lt "18" ]; then + echo "Please install latest LTS version of node (18+)"; + exit 3; +fi + +# we need this util for debconf-set-selections +sudo apt install debconf-utils + +# Let's pre-set some settings for token-generator +cat << EOF | sudo debconf-set-selections +token-generator token-generator/private-key string ${PRIVATE_KEY} +token-generator token-generator/kid string ${JAAS_KEY_ID} +EOF + +apt install token-generator + +mkdir -p /etc/jitsi/meet/jaas + +VPAAS_COOKIE=$(echo -n ${JAAS_KEY_ID}| cut -d/ -f1) +cp /usr/share/jitsi-meet-web-config/nginx-jaas.conf /etc/jitsi/meet/jaas +sed -i "s/jaas_magic_cookie/${VPAAS_COOKIE}/g" /etc/jitsi/meet/jaas/nginx-jaas.conf + +cp /usr/share/jitsi-meet-web-config/8x8.vc-config.js /etc/jitsi/meet/jaas/ +echo "set \$config_js_location /etc/jitsi/meet/jaas/8x8.vc-config.js;" >> /etc/jitsi/meet/jaas/jaas-vars +echo "set \$custom_index index-jaas.html;" >> /etc/jitsi/meet/jaas/jaas-vars + +ln -s /usr/share/jitsi-meet-web-config/index-jaas.html /usr/share/jitsi-meet/index-jaas.html + +# let's create the daily key now +/usr/share/jitsi-meet/scripts/update-asap-daily.sh + +# let's add to cron daily the update of the asap key +if [ -d /etc/cron.daily ]; then + ln -s /usr/share/jitsi-meet/scripts/update-asap-daily.sh /etc/cron.daily/update-jaas-asap.sh +else + echo "No /etc/cron.daily. Please add to your cron jobs to execute as root daily the script: /usr/share/jitsi-meet/scripts/update-asap-daily.sh" +fi diff --git a/doc/jaas/nginx-jaas.conf b/doc/jaas/nginx-jaas.conf new file mode 100644 index 0000000..94d0df4 --- /dev/null +++ b/doc/jaas/nginx-jaas.conf @@ -0,0 +1,23 @@ +include /etc/jitsi/meet/jaas/jaas-vars; +location = /jaas-jwt { + include /etc/jitsi/token-generator/daily-key; + ssi on; + proxy_method POST; + proxy_set_header content-type "application/json"; + proxy_set_header Accept-Encoding ""; + proxy_set_header Authorization "Bearer $jaas_asap_key"; + proxy_pass_request_body off; + proxy_set_body '{"sub":"jaas_magic_cookie","context":{"features":{"livestreaming":false,"outbound-call":false,"sip-outbound-call":false,"transcription":false,"recording":false},"user":{"moderator":true}},"room": "$roomname"}'; + proxy_pass http://127.0.0.1:8017/generate/client?e2eeKey=true&confId=true; +} + +location @magic_root_path { + rewrite ^/(.*)$ /index.html break; +} + +# Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to / +location ~ ^/jaas_magic_cookie/(.*)$ { + set $subdomain "jaas_magic_cookie."; + set $subdir "jaas_magic_cookie/"; + try_files $1 @magic_root_path; +} diff --git a/doc/jaas/update-asap-daily.sh b/doc/jaas/update-asap-daily.sh new file mode 100755 index 0000000..f7c3e1d --- /dev/null +++ b/doc/jaas/update-asap-daily.sh @@ -0,0 +1,9 @@ +JWT_KID=$(cat /etc/jitsi/token-generator/config | grep SYSTEM_ASAP_BASE_URL_MAPPINGS | cut -d= -f2- | jq -r .[].kid) +JWT_DATE=$(echo -n $JWT_KID | cut -d/ -f2-) +JWT_DATE=${JWT_DATE#jwt-} +KEY_FILE=/etc/jitsi/token-generator/daily-key +echo -n "set \$jaas_asap_key " > ${KEY_FILE} +ASAP_KEY=$(ASAP_SIGNING_KEY_FILE=/etc/jitsi/token-generator/asap-${JWT_DATE}.key ASAP_JWT_KID="${JWT_KID}" ASAP_EXPIRES_IN="1 day" node /usr/share/token-generator/jwt.js| tail -n1) +echo -n "${ASAP_KEY};" >> ${KEY_FILE} + +service nginx reload diff --git a/doc/quick-install.md b/doc/quick-install.md new file mode 100644 index 0000000..0d97ee9 --- /dev/null +++ b/doc/quick-install.md @@ -0,0 +1,3 @@ +# Jitsi Meet quick install + +This document has been moved [here](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart). diff --git a/fonts.html b/fonts.html new file mode 100644 index 0000000..e69de29 diff --git a/fonts/.placeholder b/fonts/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/giphy-analytics-stub.js b/giphy-analytics-stub.js new file mode 100644 index 0000000..f9f2936 --- /dev/null +++ b/giphy-analytics-stub.js @@ -0,0 +1,16 @@ +// Stub replacement for @giphy/js-analytics to prevent beforeunload handlers +// This completely disables all Giphy analytics functionality + +export const pingback = () => { + // Completely disabled - do nothing + +}; + +export const mergeAttributes = (attributes, newAttributes) => { + // Return merged attributes without any analytics calls + return { ...attributes, + ...newAttributes }; +}; + +// Ensure no beforeunload handlers are ever registered +export default pingback; diff --git a/globals.d.ts b/globals.d.ts new file mode 100644 index 0000000..aec042b --- /dev/null +++ b/globals.d.ts @@ -0,0 +1,42 @@ +import { IStore } from "./react/features/app/types"; +import { IConfig } from "./react/features/base/config/configType"; + +export {}; + +declare global { + const APP: { + store: IStore; + UI: any; + API: any; + conference: any; + debugLogs: any; + }; + const interfaceConfig: any; + + interface Window { + config: IConfig; + JITSI_MEET_LITE_SDK?: boolean; + interfaceConfig?: any; + JitsiMeetJS?: any; + PressureObserver?: any; + PressureRecord?: any; + ReactNativeWebView?: any; + // selenium tests handler + _sharedVideoPlayer: any; + alwaysOnTop: { api: any }; + } + + interface Document { + mozCancelFullScreen?: Function; + webkitExitFullscreen?: Function; + } + + const config: IConfig; + + const JitsiMeetJS: any; + + interface HTMLMediaElement { + setSinkId: (id: string) => Promise; + stop: () => void; + } +} diff --git a/globals.native.d.ts b/globals.native.d.ts new file mode 100644 index 0000000..8e7d1bc --- /dev/null +++ b/globals.native.d.ts @@ -0,0 +1,52 @@ +import { IConfig } from "./react/features/base/config/configType"; + +export {}; + +interface ILocation extends URL { + assign(url: string); + replace(url: string); + reload(); +}; + +interface IWindow { + JITSI_MEET_LITE_SDK: boolean; + JitsiMeetJS: any; + config: IConfig; + document: any; + innerHeight: number; + innerWidth: number; + interfaceConfig: any; + location: ILocation; + PressureObserver?: any; + PressureRecord?: any; + ReactNativeWebView?: any; + TextDecoder?: any; + TextEncoder?: any; + self: any; + top: any; + + onerror: (event: string, source: any, lineno: any, colno: any, e: Error) => void; + onunhandledrejection: (event: any) => void; + + setInterval: typeof setInterval; + clearInterval: typeof clearInterval; + setTimeout: typeof setTimeout; + clearTimeout: typeof clearTimeout; + setImmediate: typeof setImmediate; + clearImmediate: typeof clearImmediate; + addEventListener: Function; + removeEventListener: Function; +} + +interface INavigator { + product: string; + userAgent: string; +} + +declare global { + const APP: any; + const document: any; + const interfaceConfig: any; + const navigator: INavigator; + const window: IWindow; +} diff --git a/head.html b/head.html new file mode 100644 index 0000000..e69de29 diff --git a/images/GIPHY_icon.png b/images/GIPHY_icon.png new file mode 100644 index 0000000..575628c Binary files /dev/null and b/images/GIPHY_icon.png differ diff --git a/images/GIPHY_logo.png b/images/GIPHY_logo.png new file mode 100644 index 0000000..0441134 Binary files /dev/null and b/images/GIPHY_logo.png differ diff --git a/images/app-store-badge.png b/images/app-store-badge.png new file mode 100644 index 0000000..c774c29 Binary files /dev/null and b/images/app-store-badge.png differ diff --git a/images/apple-touch-icon.png b/images/apple-touch-icon.png new file mode 100644 index 0000000..ab94faf Binary files /dev/null and b/images/apple-touch-icon.png differ diff --git a/images/avatar.png b/images/avatar.png new file mode 100644 index 0000000..eaaffcd Binary files /dev/null and b/images/avatar.png differ diff --git a/images/btn_google_signin_dark_normal.png b/images/btn_google_signin_dark_normal.png new file mode 100644 index 0000000..f27bb24 Binary files /dev/null and b/images/btn_google_signin_dark_normal.png differ diff --git a/images/calendar.svg b/images/calendar.svg new file mode 100644 index 0000000..133f2dd --- /dev/null +++ b/images/calendar.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/images/chromeLogo.svg b/images/chromeLogo.svg new file mode 100644 index 0000000..9753e82 --- /dev/null +++ b/images/chromeLogo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/images/downloadLocalRecording.png b/images/downloadLocalRecording.png new file mode 100644 index 0000000..3e499cd Binary files /dev/null and b/images/downloadLocalRecording.png differ diff --git a/images/dropboxLogo_square.png b/images/dropboxLogo_square.png new file mode 100644 index 0000000..2ea9093 Binary files /dev/null and b/images/dropboxLogo_square.png differ diff --git a/images/f-droid-badge.png b/images/f-droid-badge.png new file mode 100644 index 0000000..6efa1c2 Binary files /dev/null and b/images/f-droid-badge.png differ diff --git a/images/favicon.svg b/images/favicon.svg new file mode 100644 index 0000000..2a42fab --- /dev/null +++ b/images/favicon.svg @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/images/flags.png b/images/flags.png new file mode 100644 index 0000000..c5df72d Binary files /dev/null and b/images/flags.png differ diff --git a/images/flags@2x.png b/images/flags@2x.png new file mode 100644 index 0000000..f56257a Binary files /dev/null and b/images/flags@2x.png differ diff --git a/images/google-play-badge.png b/images/google-play-badge.png new file mode 100644 index 0000000..c778da6 Binary files /dev/null and b/images/google-play-badge.png differ diff --git a/images/googleLogo.svg b/images/googleLogo.svg new file mode 100644 index 0000000..1e74ba4 --- /dev/null +++ b/images/googleLogo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/icon-cloud.png b/images/icon-cloud.png new file mode 100644 index 0000000..6ea1b95 Binary files /dev/null and b/images/icon-cloud.png differ diff --git a/images/icon-info.png b/images/icon-info.png new file mode 100644 index 0000000..a3be45a Binary files /dev/null and b/images/icon-info.png differ diff --git a/images/icon-users.png b/images/icon-users.png new file mode 100644 index 0000000..0944953 Binary files /dev/null and b/images/icon-users.png differ diff --git a/images/jitsilogo.png b/images/jitsilogo.png new file mode 100644 index 0000000..51a3854 Binary files /dev/null and b/images/jitsilogo.png differ diff --git a/images/logo-deep-linking-mobile.png b/images/logo-deep-linking-mobile.png new file mode 100644 index 0000000..4225c83 Binary files /dev/null and b/images/logo-deep-linking-mobile.png differ diff --git a/images/logo-deep-linking.png b/images/logo-deep-linking.png new file mode 100644 index 0000000..69ca9c5 Binary files /dev/null and b/images/logo-deep-linking.png differ diff --git a/images/microsoftLogo.svg b/images/microsoftLogo.svg new file mode 100644 index 0000000..1f73976 --- /dev/null +++ b/images/microsoftLogo.svg @@ -0,0 +1 @@ +MS-SymbolLockup \ No newline at end of file diff --git a/images/share-audio.gif b/images/share-audio.gif new file mode 100644 index 0000000..756493d Binary files /dev/null and b/images/share-audio.gif differ diff --git a/images/virtual-background/background-1.jpg b/images/virtual-background/background-1.jpg new file mode 100644 index 0000000..03461c1 Binary files /dev/null and b/images/virtual-background/background-1.jpg differ diff --git a/images/virtual-background/background-2.jpg b/images/virtual-background/background-2.jpg new file mode 100644 index 0000000..a7716df Binary files /dev/null and b/images/virtual-background/background-2.jpg differ diff --git a/images/virtual-background/background-3.jpg b/images/virtual-background/background-3.jpg new file mode 100644 index 0000000..d56ed0c Binary files /dev/null and b/images/virtual-background/background-3.jpg differ diff --git a/images/virtual-background/background-4.jpg b/images/virtual-background/background-4.jpg new file mode 100644 index 0000000..e43c0e0 Binary files /dev/null and b/images/virtual-background/background-4.jpg differ diff --git a/images/virtual-background/background-5.jpg b/images/virtual-background/background-5.jpg new file mode 100644 index 0000000..bdb2e00 Binary files /dev/null and b/images/virtual-background/background-5.jpg differ diff --git a/images/virtual-background/background-6.jpg b/images/virtual-background/background-6.jpg new file mode 100644 index 0000000..849e30c Binary files /dev/null and b/images/virtual-background/background-6.jpg differ diff --git a/images/virtual-background/background-7.jpg b/images/virtual-background/background-7.jpg new file mode 100644 index 0000000..b781c15 Binary files /dev/null and b/images/virtual-background/background-7.jpg differ diff --git a/images/watermark.svg b/images/watermark.svg new file mode 100644 index 0000000..7286107 --- /dev/null +++ b/images/watermark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/images/welcome-background.png b/images/welcome-background.png new file mode 100644 index 0000000..e948826 Binary files /dev/null and b/images/welcome-background.png differ diff --git a/index.android.js b/index.android.js new file mode 100644 index 0000000..5640833 --- /dev/null +++ b/index.android.js @@ -0,0 +1,2 @@ +import './react/index.native'; + diff --git a/index.html b/index.html new file mode 100644 index 0000000..c624ca3 --- /dev/null +++ b/index.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/index.ios.js b/index.ios.js new file mode 100644 index 0000000..5640833 --- /dev/null +++ b/index.ios.js @@ -0,0 +1,2 @@ +import './react/index.native'; + diff --git a/inlang.config.js b/inlang.config.js new file mode 100644 index 0000000..bbc5cd6 --- /dev/null +++ b/inlang.config.js @@ -0,0 +1,23 @@ +/** + * @type { import("@inlang/core/config").DefineConfig } + */ +export async function defineConfig(env) { + const { default: i18nextPlugin } = await env.$import( + 'https://cdn.jsdelivr.net/npm/@inlang/plugin-i18next@2/dist/index.js' + ); + + const { default: standardLintRules } = await env.$import( + 'https://cdn.jsdelivr.net/npm/@inlang/plugin-standard-lint-rules@3/dist/index.js' + ); + + return { + referenceLanguage: 'main', + plugins: [ + i18nextPlugin({ + pathPattern: 'lang/{language}.json', + ignore: [ 'languages.json', 'translation-languages.json' ] + }), + standardLintRules() + ] + }; +} diff --git a/interface_config.js b/interface_config.js new file mode 100644 index 0000000..1e774b3 --- /dev/null +++ b/interface_config.js @@ -0,0 +1,251 @@ +/* eslint-disable no-unused-vars, no-var, max-len */ +/* eslint sort-keys: ["error", "asc", {"caseSensitive": false}] */ + +/** + * !!!IMPORTANT!!! + * + * This file is considered deprecated. All options will eventually be moved to + * config.js, and no new options should be added here. + */ + +var interfaceConfig = { + APP_NAME: 'Jitsi Meet', + AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)', + AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)', + + /** + * A UX mode where the last screen share participant is automatically + * pinned. Valid values are the string "remote-only" so remote participants + * get pinned but not local, otherwise any truthy value for all participants, + * and any falsy value to disable the feature. + * + * Note: this mode is experimental and subject to breakage. + */ + AUTO_PIN_LATEST_SCREEN_SHARE: 'remote-only', + BRAND_WATERMARK_LINK: '', + + CLOSE_PAGE_GUEST_HINT: false, // A html text to be shown to guests on the close page, false disables it + + DEFAULT_BACKGROUND: '#040404', + DEFAULT_WELCOME_PAGE_LOGO_URL: 'images/watermark.svg', + + DISABLE_DOMINANT_SPEAKER_INDICATOR: false, + + /** + * If true, notifications regarding joining/leaving are no longer displayed. + */ + DISABLE_JOIN_LEAVE_NOTIFICATIONS: false, + + /** + * If true, presence status: busy, calling, connected etc. is not displayed. + */ + DISABLE_PRESENCE_STATUS: false, + + /** + * Whether the speech to text transcription subtitles panel is disabled. + * If {@code undefined}, defaults to {@code false}. + * + * @type {boolean} + */ + DISABLE_TRANSCRIPTION_SUBTITLES: false, + + /** + * Whether or not the blurred video background for large video should be + * displayed on browsers that can support it. + */ + DISABLE_VIDEO_BACKGROUND: false, + + DISPLAY_WELCOME_FOOTER: true, + DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD: false, + DISPLAY_WELCOME_PAGE_CONTENT: false, + DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false, + + ENABLE_DIAL_OUT: true, + + FILM_STRIP_MAX_HEIGHT: 120, + + GENERATE_ROOMNAMES_ON_WELCOME_PAGE: true, + + /** + * Hide the invite prompt in the header when alone in the meeting. + */ + HIDE_INVITE_MORE_HEADER: false, + + JITSI_WATERMARK_LINK: 'https://jitsi.org', + + LANG_DETECTION: true, // Allow i18n to detect the system language + LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9 + + /** + * Maximum coefficient of the ratio of the large video to the visible area + * after the large video is scaled to fit the window. + * + * @type {number} + */ + MAXIMUM_ZOOMING_COEFFICIENT: 1.3, + + /** + * Whether the mobile app Jitsi Meet is to be promoted to participants + * attempting to join a conference in a mobile Web browser. If + * {@code undefined}, defaults to {@code true}. + * + * @type {boolean} + */ + MOBILE_APP_PROMO: true, + + // Names of browsers which should show a warning stating the current browser + // has a suboptimal experience. Browsers which are not listed as optimal or + // unsupported are considered suboptimal. Valid values are: + // chrome, chromium, electron, firefox , safari, webkit + OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'electron', 'safari', 'webkit' ], + + POLICY_LOGO: null, + PROVIDER_NAME: 'Jitsi', + + /** + * If true, will display recent list + * + * @type {boolean} + */ + RECENT_LIST_ENABLED: true, + REMOTE_THUMBNAIL_RATIO: 1, // 1:1 + + SETTINGS_SECTIONS: [ 'devices', 'language', 'moderator', 'profile', 'calendar', 'sounds', 'more' ], + + /** + * Specify which sharing features should be displayed. If the value is not set + * all sharing features will be shown. You can set [] to disable all. + */ + // SHARING_FEATURES: ['email', 'url', 'dial-in', 'embed'], + + SHOW_BRAND_WATERMARK: false, + + /** + * Decides whether the chrome extension banner should be rendered on the landing page and during the meeting. + * If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s) + * being already installed is done before rendering. + */ + SHOW_CHROME_EXTENSION_BANNER: false, + + SHOW_JITSI_WATERMARK: true, + SHOW_POWERED_BY: false, + SHOW_PROMOTIONAL_CLOSE_PAGE: false, + + /* + * If indicated some of the error dialogs may point to the support URL for + * help. + */ + SUPPORT_URL: 'https://community.jitsi.org/', + + // Browsers, in addition to those which do not fully support WebRTC, that + // are not supported and should show the unsupported browser page. + UNSUPPORTED_BROWSERS: [], + + /** + * Whether to show thumbnails in filmstrip as a column instead of as a row. + */ + VERTICAL_FILMSTRIP: true, + + // Determines how the video would fit the screen. 'both' would fit the whole + // screen, 'height' would fit the original video height to the height of the + // screen, 'width' would fit the original video width to the width of the + // screen respecting ratio, 'nocrop' would make the video as large as + // possible and preserve aspect ratio without cropping. + VIDEO_LAYOUT_FIT: 'both', + + /** + * If true, hides the video quality label indicating the resolution status + * of the current large video. + * + * @type {boolean} + */ + VIDEO_QUALITY_LABEL_DISABLED: false, + + /** + * How many columns the tile view can expand to. The respected range is + * between 1 and 5. + */ + // TILE_VIEW_MAX_COLUMNS: 5, + + // List of undocumented settings + /** + INDICATOR_FONT_SIZES + PHONE_NUMBER_REGEX + */ + + // -----------------DEPRECATED CONFIGS BELOW THIS LINE----------------------------- + + /** + * Specify URL for downloading ios mobile app. + */ + // MOBILE_DOWNLOAD_LINK_IOS: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905', + + /** + * Specify custom URL for downloading android mobile app. + */ + // MOBILE_DOWNLOAD_LINK_ANDROID: 'https://play.google.com/store/apps/details?id=org.jitsi.meet', + + /** + * Specify mobile app scheme for opening the app from the mobile browser. + */ + // APP_SCHEME: 'org.jitsi.meet', + + // NATIVE_APP_NAME: 'Jitsi Meet', + + /** + * Hide the logo on the deep linking pages. + */ + // HIDE_DEEP_LINKING_LOGO: false, + + /** + * Specify the Android app package name. + */ + // ANDROID_APP_PACKAGE: 'org.jitsi.meet', + + /** + * Specify custom URL for downloading f droid app. + */ + // MOBILE_DOWNLOAD_LINK_F_DROID: 'https://f-droid.org/packages/org.jitsi.meet/', + + // Connection indicators ( + // CONNECTION_INDICATOR_AUTO_HIDE_ENABLED, + // CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT, + // CONNECTION_INDICATOR_DISABLED) got moved to config.js. + + // Please use disableModeratorIndicator from config.js + // DISABLE_FOCUS_INDICATOR: false, + + // Please use defaultLocalDisplayName from config.js + // DEFAULT_LOCAL_DISPLAY_NAME: 'me', + + // Please use defaultLogoUrl from config.js + // DEFAULT_LOGO_URL: 'images/watermark.svg', + + // Please use defaultRemoteDisplayName from config.js + // DEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster', + + // Moved to config.js as `toolbarConfig.initialTimeout`. + // INITIAL_TOOLBAR_TIMEOUT: 20000, + + // Please use `liveStreaming.helpLink` from config.js + // Documentation reference for the live streaming feature. + // LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live', + + // Moved to config.js as `toolbarConfig.alwaysVisible`. + // TOOLBAR_ALWAYS_VISIBLE: false, + + // This config was moved to config.js as `toolbarButtons`. + // TOOLBAR_BUTTONS: [], + + // Moved to config.js as `toolbarConfig.timeout`. + // TOOLBAR_TIMEOUT: 4000, + + // Allow all above example options to include a trailing comma and + // prevent fear when commenting out the last value. + // eslint-disable-next-line sort-keys + makeJsonParserHappy: 'even if last key had a trailing comma' + + // No configuration value should follow this line. +}; + +/* eslint-enable no-unused-vars, no-var, max-len */ diff --git a/ios/.xcode.env b/ios/.xcode.env new file mode 100644 index 0000000..94f5fa4 --- /dev/null +++ b/ios/.xcode.env @@ -0,0 +1,6 @@ +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) + +. ${THIS_DIR}/../node_modules/react-native/scripts/find-node-for-xcode.sh + +export NODE_BINARY=$(command -v node) +export ENTRY_FILE="${PROJECT_DIR}/../../index.ios.js" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..ff29fff --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,107 @@ +# Resolve react_native_pods.rb with node to allow for hoisting. +require Pod::Executable.execute_command('node', ['-p', + 'require.resolve( + "react-native/scripts/react_native_pods.rb", + {paths: [process.argv[1]]}, + )', __dir__]).strip + +platform :ios, '15.1' +workspace 'jitsi-meet' + +install! 'cocoapods', :deterministic_uuids => false + +def cocoa_utilities + pod 'CocoaLumberjack', '3.7.4' +end + +target 'JitsiMeet' do + project 'app/app.xcodeproj' + + pod 'Firebase/Analytics', '~> 8.0' + pod 'Firebase/Crashlytics', '~> 8.0' +end + +target 'JitsiMeetSDK' do + project 'sdk/sdk.xcodeproj' + + # React Native and its dependencies + # + + config = use_native_modules! + flags = get_default_flags() + use_react_native!( + :path => config[:reactNativePath], + :hermes_enabled => true, + :fabric_enabled => false, + :new_arch_enabled => false, + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." + ) + + # We use auto linking, but some dependencies are excluded from the lite build + # (see react-native.config.js) so we add them here. + + pod 'giphy-react-native-sdk', :path => '../node_modules/@giphy/react-native-sdk' + pod 'RNCalendarEvents', :path => '../node_modules/react-native-calendar-events' + pod 'RNGoogleSignin', :path => '../node_modules/@react-native-google-signin/google-signin' + pod 'RNWatch', :path => '../node_modules/react-native-watch-connectivity' + + # Native pod dependencies + # + + cocoa_utilities + pod 'ObjectiveDropboxOfficial', '6.2.3' +end + +target 'JitsiMeetSDKLite' do + project 'sdk/sdk.xcodeproj' + + # This is a more lightweight target, which removes some functionality. + # Check the react-native.config.js for the list of excluded packages. + + # React Native and its dependencies + # + + config = use_native_modules! + use_react_native!( + :path => config[:reactNativePath], + :hermes_enabled => true, + :fabric_enabled => false, + :new_arch_enabled => false, + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." + ) + + # Native pod dependencies + # + + cocoa_utilities +end + +post_install do |installer| + + react_native_post_install( + installer, + use_native_modules![:reactNativePath], + :mac_catalyst_enabled => false, + # :ccache_enabled => true + ) + installer.pods_project.targets.each do |target| + # https://github.com/CocoaPods/CocoaPods/issues/11402 + if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle" + target.build_configurations.each do |config| + config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' + end + end + + target.build_configurations.each do |config| + config.build_settings['SUPPORTS_MACCATALYST'] = 'NO' + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.1' + config.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -no-verify-emitted-module-interface' + end + end + + # Patch SocketRocket to support TLS 1.3 + %x(patch Pods/SocketRocket/SocketRocket/SRSecurityPolicy.m -N < patches/ws-tls13.diff) + +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..1404223 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,2306 @@ +PODS: + - amplitude-react-native (1.4.13): + - React-Core + - AppAuth (1.7.6): + - AppAuth/Core (= 1.7.6) + - AppAuth/ExternalUserAgent (= 1.7.6) + - AppAuth/Core (1.7.6) + - AppAuth/ExternalUserAgent (1.7.6): + - AppAuth/Core + - boost (1.84.0) + - CocoaLumberjack (3.7.4): + - CocoaLumberjack/Core (= 3.7.4) + - CocoaLumberjack/Core (3.7.4) + - DoubleConversion (1.1.6) + - fast_float (6.1.4) + - FBLazyVector (0.77.2) + - Firebase/Analytics (8.15.0): + - Firebase/Core + - Firebase/Core (8.15.0): + - Firebase/CoreOnly + - FirebaseAnalytics (~> 8.15.0) + - Firebase/CoreOnly (8.15.0): + - FirebaseCore (= 8.15.0) + - Firebase/Crashlytics (8.15.0): + - Firebase/CoreOnly + - FirebaseCrashlytics (~> 8.15.0) + - FirebaseAnalytics (8.15.0): + - FirebaseAnalytics/AdIdSupport (= 8.15.0) + - FirebaseCore (~> 8.0) + - FirebaseInstallations (~> 8.0) + - GoogleUtilities/AppDelegateSwizzler (~> 7.7) + - GoogleUtilities/MethodSwizzler (~> 7.7) + - GoogleUtilities/Network (~> 7.7) + - "GoogleUtilities/NSData+zlib (~> 7.7)" + - nanopb (~> 2.30908.0) + - FirebaseAnalytics/AdIdSupport (8.15.0): + - FirebaseCore (~> 8.0) + - FirebaseInstallations (~> 8.0) + - GoogleAppMeasurement (= 8.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 7.7) + - GoogleUtilities/MethodSwizzler (~> 7.7) + - GoogleUtilities/Network (~> 7.7) + - "GoogleUtilities/NSData+zlib (~> 7.7)" + - nanopb (~> 2.30908.0) + - FirebaseCore (8.15.0): + - FirebaseCoreDiagnostics (~> 8.0) + - GoogleUtilities/Environment (~> 7.7) + - GoogleUtilities/Logger (~> 7.7) + - FirebaseCoreDiagnostics (8.15.0): + - GoogleDataTransport (~> 9.1) + - GoogleUtilities/Environment (~> 7.7) + - GoogleUtilities/Logger (~> 7.7) + - nanopb (~> 2.30908.0) + - FirebaseCrashlytics (8.15.0): + - FirebaseCore (~> 8.0) + - FirebaseInstallations (~> 8.0) + - GoogleDataTransport (~> 9.1) + - GoogleUtilities/Environment (~> 7.7) + - nanopb (~> 2.30908.0) + - PromisesObjC (< 3.0, >= 1.2) + - FirebaseInstallations (8.15.0): + - FirebaseCore (~> 8.0) + - GoogleUtilities/Environment (~> 7.7) + - GoogleUtilities/UserDefaults (~> 7.7) + - PromisesObjC (< 3.0, >= 1.2) + - fmt (11.0.2) + - Giphy (2.2.16): + - libwebp + - giphy-react-native-sdk (4.1.0): + - DoubleConversion + - Giphy (= 2.2.16) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - glog (0.3.5) + - GoogleAppMeasurement (8.15.0): + - GoogleAppMeasurement/AdIdSupport (= 8.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 7.7) + - GoogleUtilities/MethodSwizzler (~> 7.7) + - GoogleUtilities/Network (~> 7.7) + - "GoogleUtilities/NSData+zlib (~> 7.7)" + - nanopb (~> 2.30908.0) + - GoogleAppMeasurement/AdIdSupport (8.15.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 8.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 7.7) + - GoogleUtilities/MethodSwizzler (~> 7.7) + - GoogleUtilities/Network (~> 7.7) + - "GoogleUtilities/NSData+zlib (~> 7.7)" + - nanopb (~> 2.30908.0) + - GoogleAppMeasurement/WithoutAdIdSupport (8.15.0): + - GoogleUtilities/AppDelegateSwizzler (~> 7.7) + - GoogleUtilities/MethodSwizzler (~> 7.7) + - GoogleUtilities/Network (~> 7.7) + - "GoogleUtilities/NSData+zlib (~> 7.7)" + - nanopb (~> 2.30908.0) + - GoogleDataTransport (9.4.1): + - GoogleUtilities/Environment (~> 7.7) + - nanopb (< 2.30911.0, >= 2.30908.0) + - PromisesObjC (< 3.0, >= 1.2) + - GoogleSignIn (7.1.0): + - AppAuth (< 2.0, >= 1.7.3) + - GTMAppAuth (< 5.0, >= 4.1.1) + - GTMSessionFetcher/Core (~> 3.3) + - GoogleUtilities/AppDelegateSwizzler (7.13.3): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (7.13.3): + - GoogleUtilities/Privacy + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/Logger (7.13.3): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/MethodSwizzler (7.13.3): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GoogleUtilities/Network (7.13.3): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (7.13.3)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (7.13.3) + - GoogleUtilities/Reachability (7.13.3): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (7.13.3): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GTMAppAuth (4.1.1): + - 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) + - JitsiWebRTC (124.0.2) + - libwebp (1.5.0): + - libwebp/demux (= 1.5.0) + - libwebp/mux (= 1.5.0) + - libwebp/sharpyuv (= 1.5.0) + - libwebp/webp (= 1.5.0) + - libwebp/demux (1.5.0): + - libwebp/webp + - libwebp/mux (1.5.0): + - libwebp/demux + - libwebp/sharpyuv (1.5.0) + - libwebp/webp (1.5.0): + - libwebp/sharpyuv + - nanopb (2.30908.0): + - nanopb/decode (= 2.30908.0) + - nanopb/encode (= 2.30908.0) + - nanopb/decode (2.30908.0) + - nanopb/encode (2.30908.0) + - ObjectiveDropboxOfficial (6.2.3) + - PromisesObjC (2.4.0) + - RCT-Folly (2024.11.18.00): + - boost + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - glog + - RCT-Folly/Default (= 2024.11.18.00) + - RCT-Folly/Default (2024.11.18.00): + - boost + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - glog + - RCT-Folly/Fabric (2024.11.18.00): + - boost + - DoubleConversion + - 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): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default (= 0.77.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/CoreModulesHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/Default (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/DevSupport (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default (= 0.77.2) + - React-Core/RCTWebSocket (= 0.77.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTActionSheetHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTAnimationHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTBlobHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTImageHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTLinkingHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTNetworkHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTSettingsHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTTextHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTVibrationHeaders (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-Core/RCTWebSocket (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTDeprecation + - React-Core/Default (= 0.77.2) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.1) + - Yoga + - React-CoreModules (0.77.2): + - 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) + - React-jsinspector + - React-NativeModulesApple + - React-RCTBlob + - React-RCTFBReactNativeSpec + - React-RCTImage (= 0.77.2) + - ReactCommon + - SocketRocket (= 0.7.1) + - React-cxxreact (0.77.2): + - boost + - 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-debug (= 0.77.2) + - React-jsi (= 0.77.2) + - 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): + - hermes-engine + - RCT-Folly + - React-domnativemodule + - React-featureflagsnativemodule + - React-idlecallbacksnativemodule + - React-jsi + - React-jsiexecutor + - React-microtasksnativemodule + - React-RCTFBReactNativeSpec + - React-domnativemodule (0.77.2): + - hermes-engine + - RCT-Folly + - React-Fabric + - React-FabricComponents + - React-graphics + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric (0.77.2): + - 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-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-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.77.2): + - 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-Fabric/components/legacyviewmanagerinterop (= 0.77.2) + - React-Fabric/components/root (= 0.77.2) + - React-Fabric/components/view (= 0.77.2) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric/core (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/dom (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/imagemanager (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/leakchecker (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/mounting (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers (0.77.2): + - 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-Fabric/observers/events (= 0.77.2) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/observers/events (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/scheduler (0.77.2): + - 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-Fabric/observers/events + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-performancetimeline + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/telemetry (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/templateprocessor (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager (0.77.2): + - 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-Fabric/uimanager/consistency (= 0.77.2) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager/consistency (0.77.2): + - 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-jsi + - React-jsiexecutor + - React-logger + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-FabricComponents (0.77.2): + - 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-Fabric + - React-FabricComponents/components (= 0.77.2) + - React-FabricComponents/textlayoutmanager (= 0.77.2) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components (0.77.2): + - 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-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-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/inputaccessory (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/iostextinput (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/modal (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/rncore (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/safeareaview (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/scrollview (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/text (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/textinput (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/components/unimplementedview (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricComponents/textlayoutmanager (0.77.2): + - 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-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-FabricImage (0.77.2): + - 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) + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsiexecutor (= 0.77.2) + - React-logger + - React-rendererdebug + - React-utils + - ReactCommon + - Yoga + - React-featureflags (0.77.2) + - React-featureflagsnativemodule (0.77.2): + - hermes-engine + - RCT-Folly + - React-featureflags + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - ReactCommon/turbomodule/core + - React-graphics (0.77.2): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - glog + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-jsi + - React-jsiexecutor + - React-utils + - React-hermes (0.77.2): + - 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 + - React-jsiexecutor (= 0.77.2) + - React-jsinspector + - React-perflogger (= 0.77.2) + - React-runtimeexecutor + - React-idlecallbacksnativemodule (0.77.2): + - hermes-engine + - RCT-Folly + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - React-runtimescheduler + - ReactCommon/turbomodule/core + - React-ImageManager (0.77.2): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-graphics + - React-rendererdebug + - React-utils + - React-jserrorhandler (0.77.2): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - ReactCommon/turbomodule/bridging + - React-jsi (0.77.2): + - boost + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-jsiexecutor (0.77.2): + - 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-jsinspector + - React-perflogger (= 0.77.2) + - React-jsinspector (0.77.2): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-featureflags + - React-jsi + - React-perflogger (= 0.77.2) + - React-runtimeexecutor (= 0.77.2) + - React-jsitracing (0.77.2): + - React-jsi + - React-logger (0.77.2): + - glog + - React-Mapbuffer (0.77.2): + - glog + - React-debug + - React-microtasksnativemodule (0.77.2): + - hermes-engine + - RCT-Folly + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - ReactCommon/turbomodule/core + - react-native-background-timer (2.4.1): + - React-Core + - react-native-get-random-values (1.11.0): + - React-Core + - react-native-keep-awake (1.3.1): + - React-Core + - react-native-netinfo (11.1.0): + - React-Core + - react-native-orientation-locker (1.5.0): + - React-Core + - react-native-pager-view (6.8.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-performance (5.1.2): + - React-Core + - react-native-safe-area-context (5.5.2): + - React-Core + - react-native-slider (4.5.6): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-video (6.13.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - react-native-video/Video (= 6.13.0) + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-video/Video (6.13.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-webrtc (124.0.4): + - JitsiWebRTC (~> 124.0.0) + - React-Core + - react-native-webview (13.13.5): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-nativeconfig (0.77.2) + - React-NativeModulesApple (0.77.2): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-jsinspector + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.77.2): + - DoubleConversion + - RCT-Folly (= 2024.11.18.00) + - React-performancetimeline (0.77.2): + - RCT-Folly (= 2024.11.18.00) + - React-cxxreact + - React-featureflags + - React-timing + - React-RCTActionSheet (0.77.2): + - React-Core/RCTActionSheetHeaders (= 0.77.2) + - React-RCTAnimation (0.77.2): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - React-RCTAppDelegate (0.77.2): + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-CoreModules + - React-debug + - React-defaultsnativemodule + - React-Fabric + - React-featureflags + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTFBReactNativeSpec + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCommon + - React-RCTBlob (0.77.2): + - DoubleConversion + - fast_float (= 6.1.4) + - fmt (= 11.0.2) + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-jsinspector + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - React-RCTNetwork + - ReactCommon + - React-RCTFabric (0.77.2): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricComponents + - React-FabricImage + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsinspector + - React-nativeconfig + - React-performancetimeline + - React-RCTImage + - React-RCTText + - React-rendererconsistency + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTFBReactNativeSpec (0.77.2): + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - ReactCommon + - React-RCTImage (0.77.2): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - React-RCTNetwork + - ReactCommon + - React-RCTLinking (0.77.2): + - React-Core/RCTLinkingHeaders (= 0.77.2) + - React-jsi (= 0.77.2) + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - ReactCommon/turbomodule/core (= 0.77.2) + - React-RCTNetwork (0.77.2): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - React-RCTSettings (0.77.2): + - RCT-Folly (= 2024.11.18.00) + - RCTTypeSafety + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTFBReactNativeSpec + - ReactCommon + - React-RCTText (0.77.2): + - React-Core/RCTTextHeaders (= 0.77.2) + - Yoga + - React-RCTVibration (0.77.2): + - 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): + - 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): + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RCTFBReactNativeSpec + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - React-RuntimeCore (0.77.2): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-cxxreact + - React-Fabric + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-performancetimeline + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - React-runtimeexecutor (0.77.2): + - React-jsi (= 0.77.2) + - React-RuntimeHermes (0.77.2): + - hermes-engine + - RCT-Folly/Fabric (= 2024.11.18.00) + - React-featureflags + - React-hermes + - React-jsi + - React-jsinspector + - React-jsitracing + - React-nativeconfig + - React-RuntimeCore + - React-utils + - React-runtimescheduler (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - React-performancetimeline + - React-rendererconsistency + - React-rendererdebug + - React-runtimeexecutor + - React-timing + - React-utils + - React-timing (0.77.2) + - React-utils (0.77.2): + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - React-debug + - React-jsi (= 0.77.2) + - ReactAppDependencyProvider (0.77.2): + - ReactCodegen + - ReactCodegen (0.77.2): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-RCTAppDelegate + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactCommon (0.77.2): + - ReactCommon/turbomodule (= 0.77.2) + - ReactCommon/turbomodule (0.77.2): + - 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): + - 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): + - 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) + - RNCalendarEvents (2.2.0): + - React-Core + - RNCAsyncStorage (1.23.1): + - React-Core + - RNCClipboard (1.14.3): + - React-Core + - RNDefaultPreference (1.4.4): + - React-Core + - RNDeviceInfo (12.1.0): + - React-Core + - RNGestureHandler (2.24.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNGoogleSignin (10.1.0): + - GoogleSignIn (~> 7.0) + - React-Core + - RNScreens (4.11.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNSound (0.11.2): + - React-Core + - RNSound/Core (= 0.11.2) + - RNSound/Core (0.11.2): + - React-Core + - RNSVG (15.11.2): + - React-Core + - RNWatch (1.1.0): + - React + - SocketRocket (0.7.1) + - SplashView (0.0.18): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.11.18.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - Yoga (0.0.0) + +DEPENDENCIES: + - "amplitude-react-native (from `../node_modules/@amplitude/analytics-react-native`)" + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - CocoaLumberjack (= 3.7.4) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - Firebase/Analytics (~> 8.0) + - Firebase/Crashlytics (~> 8.0) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) + - "giphy-react-native-sdk (from `../node_modules/@giphy/react-native-sdk`)" + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - ObjectiveDropboxOfficial (= 6.2.3) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) + - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) + - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) + - 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-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`) + - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - react-native-background-timer (from `../node_modules/react-native-background-timer`) + - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) + - "react-native-keep-awake (from `../node_modules/@sayem314/react-native-keep-awake`)" + - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" + - react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`) + - react-native-pager-view (from `../node_modules/react-native-pager-view`) + - react-native-performance (from `../node_modules/react-native-performance`) + - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - "react-native-slider (from `../node_modules/@react-native-community/slider`)" + - react-native-video (from `../node_modules/react-native-video`) + - react-native-webrtc (from `../node_modules/react-native-webrtc`) + - react-native-webview (from `../node_modules/react-native-webview`) + - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - 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`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTFBReactNativeSpec (from `../node_modules/react-native/React`) + - 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-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-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`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - ReactAppDependencyProvider (from `build/generated/ios`) + - ReactCodegen (from `build/generated/ios`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - RNCalendarEvents (from `../node_modules/react-native-calendar-events`) + - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" + - "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" + - RNDefaultPreference (from `../node_modules/react-native-default-preference`) + - RNDeviceInfo (from `../node_modules/react-native-device-info`) + - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) + - "RNGoogleSignin (from `../node_modules/@react-native-google-signin/google-signin`)" + - RNScreens (from `../node_modules/react-native-screens`) + - RNSound (from `../node_modules/react-native-sound`) + - RNSVG (from `../node_modules/react-native-svg`) + - RNWatch (from `../node_modules/react-native-watch-connectivity`) + - SplashView (from `../node_modules/react-native-splash-view`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - AppAuth + - CocoaLumberjack + - Firebase + - FirebaseAnalytics + - FirebaseCore + - FirebaseCoreDiagnostics + - FirebaseCrashlytics + - FirebaseInstallations + - Giphy + - GoogleAppMeasurement + - GoogleDataTransport + - GoogleSignIn + - GoogleUtilities + - GTMAppAuth + - GTMSessionFetcher + - JitsiWebRTC + - libwebp + - nanopb + - ObjectiveDropboxOfficial + - PromisesObjC + - SocketRocket + +EXTERNAL SOURCES: + amplitude-react-native: + :path: "../node_modules/@amplitude/analytics-react-native" + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + fast_float: + :podspec: "../node_modules/react-native/third-party-podspecs/fast_float.podspec" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" + giphy-react-native-sdk: + :path: "../node_modules/@giphy/react-native-sdk" + glog: + :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 + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" + RCTRequired: + :path: "../node_modules/react-native/Libraries/Required" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-callinvoker: + :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-debug: + :path: "../node_modules/react-native/ReactCommon/react/debug" + React-defaultsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" + React-domnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-FabricComponents: + :path: "../node_modules/react-native/ReactCommon" + React-FabricImage: + :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" + React-featureflagsnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" + React-idlecallbacksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jserrorhandler: + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../node_modules/react-native/ReactCommon" + React-microtasksnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + react-native-background-timer: + :path: "../node_modules/react-native-background-timer" + react-native-get-random-values: + :path: "../node_modules/react-native-get-random-values" + react-native-keep-awake: + :path: "../node_modules/@sayem314/react-native-keep-awake" + react-native-netinfo: + :path: "../node_modules/@react-native-community/netinfo" + react-native-orientation-locker: + :path: "../node_modules/react-native-orientation-locker" + react-native-pager-view: + :path: "../node_modules/react-native-pager-view" + react-native-performance: + :path: "../node_modules/react-native-performance" + react-native-safe-area-context: + :path: "../node_modules/react-native-safe-area-context" + react-native-slider: + :path: "../node_modules/@react-native-community/slider" + react-native-video: + :path: "../node_modules/react-native-video" + react-native-webrtc: + :path: "../node_modules/react-native-webrtc" + react-native-webview: + :path: "../node_modules/react-native-webview" + React-nativeconfig: + :path: "../node_modules/react-native/ReactCommon" + React-NativeModulesApple: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" + React-performancetimeline: + :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTAppDelegate: + :path: "../node_modules/react-native/Libraries/AppDelegate" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTFabric: + :path: "../node_modules/react-native/React" + React-RCTFBReactNativeSpec: + :path: "../node_modules/react-native/React" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + React-rendererconsistency: + :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" + React-rendererdebug: + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-rncore: + :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimescheduler: + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-timing: + :path: "../node_modules/react-native/ReactCommon/react/timing" + React-utils: + :path: "../node_modules/react-native/ReactCommon/react/utils" + ReactAppDependencyProvider: + :path: build/generated/ios + ReactCodegen: + :path: build/generated/ios + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + RNCalendarEvents: + :path: "../node_modules/react-native-calendar-events" + RNCAsyncStorage: + :path: "../node_modules/@react-native-async-storage/async-storage" + RNCClipboard: + :path: "../node_modules/@react-native-clipboard/clipboard" + RNDefaultPreference: + :path: "../node_modules/react-native-default-preference" + RNDeviceInfo: + :path: "../node_modules/react-native-device-info" + RNGestureHandler: + :path: "../node_modules/react-native-gesture-handler" + RNGoogleSignin: + :path: "../node_modules/@react-native-google-signin/google-signin" + RNScreens: + :path: "../node_modules/react-native-screens" + RNSound: + :path: "../node_modules/react-native-sound" + RNSVG: + :path: "../node_modules/react-native-svg" + RNWatch: + :path: "../node_modules/react-native-watch-connectivity" + SplashView: + :path: "../node_modules/react-native-splash-view" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + amplitude-react-native: d0039a3ce502eb441ba818af1b8c8ba710ef16e7 + AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 + boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 + CocoaLumberjack: 543c79c114dadc3b1aba95641d8738b06b05b646 + DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb + fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 + FBLazyVector: 4c16dde959a9d6b24f2aa32cb87cb919a1ace3f3 + Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d + FirebaseAnalytics: 7761cbadb00a717d8d0939363eb46041526474fa + FirebaseCore: 5743c5785c074a794d35f2fff7ecc254a91e08b1 + FirebaseCoreDiagnostics: 92e07a649aeb66352b319d43bdd2ee3942af84cb + FirebaseCrashlytics: feb07e4e9187be3c23c6a846cce4824e5ce2dd0b + FirebaseInstallations: 40bd9054049b2eae9a2c38ef1c3dd213df3605cd + fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd + Giphy: 55914215541027873875757f350530e6d8986fba + giphy-react-native-sdk: 733177b2537b527cfa55979c396cc1f2046eb457 + glog: eb93e2f488219332457c3c4eafd2738ddc7e80b8 + GoogleAppMeasurement: 4c19f031220c72464d460c9daa1fb5d1acce958e + GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a + GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db + GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 + GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de + GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 + hermes-engine: 8eb265241fa1d7095d3a40d51fd90f7dce68217c + 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 + 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-performance: 125a96c145e29918b55b45ce25cbba54f1e24dcd + react-native-safe-area-context: 0f7bf11598f9a61b7ceac8dc3f59ef98697e99e1 + react-native-slider: 1205801a8d29b28cacc14eef08cb120015cdafcb + react-native-video: eb861d67a71dfef1bbf6086a811af5f338b13781 + react-native-webrtc: 2261a482150195092246fe70b3aff976f2e11ec5 + react-native-webview: 079eca50edf657503318b66687dadfb903731aa8 + 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 + RNCalendarEvents: 62e1ac89d3afbfa77cf2dafa8727af93fa70825f + RNCAsyncStorage: aa75595c1aefa18f868452091fa0c411a516ce11 + RNCClipboard: 7c3e3b5f71d84ef61690ad377b6c50cf27864ff5 + RNDefaultPreference: ee13d69e6693d193cd223d10e15e5b3c012d31ba + RNDeviceInfo: 723e97dd98af9b7913477e7a40252c15517c258c + RNGestureHandler: 9f3109e11ed88fe5bed280bf7762b25e4c52f396 + RNGoogleSignin: 30e1aee80140dc0706cd78a4951c411376c88329 + RNScreens: 9ef996b6041d0960a4794a845f7d0808b171b4ef + RNSound: 314cc5226453ef4a3314a196c65e8a65e5106a7b + RNSVG: 67de7abef81f367387b708ba6d2acefe7d4f5895 + RNWatch: 28fe1f5e0c6410d45fd20925f4796fce05522e3f + SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 + SplashView: ed71a114c3ffe60dc3a9e5aa2cefb352c3794a70 + Yoga: 31a098f74c16780569aebd614a0f37a907de0189 + +PODFILE CHECKSUM: eac4bba07b2f30174fc20bccbaf64f86676d9b1f + +COCOAPODS: 1.16.2 diff --git a/ios/README.md b/ios/README.md new file mode 100644 index 0000000..b01171d --- /dev/null +++ b/ios/README.md @@ -0,0 +1,3 @@ +# Jitsi Meet SDK for iOS + +This document has been moved to [The Handbook](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-ios-sdk). diff --git a/ios/app/PrivacyInfo.xcprivacy b/ios/app/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..f5d4160 --- /dev/null +++ b/ios/app/PrivacyInfo.xcprivacy @@ -0,0 +1,47 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + 1C8F.1 + C56D.1 + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + 85F4.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/ios/app/app.entitlements b/ios/app/app.entitlements new file mode 100644 index 0000000..953aafd --- /dev/null +++ b/ios/app/app.entitlements @@ -0,0 +1,18 @@ + + + + + com.apple.developer.associated-domains + + applinks:alpha.jitsi.net + applinks:beta.meet.jit.si + applinks:meet.jit.si + + com.apple.developer.siri + + com.apple.security.application-groups + + group.org.jitsi.meet.appgroup + + + diff --git a/ios/app/app.xcodeproj/project.pbxproj b/ios/app/app.xcodeproj/project.pbxproj new file mode 100644 index 0000000..871fe54 --- /dev/null +++ b/ios/app/app.xcodeproj/project.pbxproj @@ -0,0 +1,1182 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 60; + objects = { + +/* Begin PBXBuildFile section */ + 0B5418471F7C5D8C00A2DD86 /* MeetingRowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5418461F7C5D8C00A2DD86 /* MeetingRowController.swift */; }; + 0B7001701F7C51CC005944F4 /* InCallController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B70016F1F7C51CC005944F4 /* InCallController.swift */; }; + 0BEA5C291F7B8F73000D0AB4 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C271F7B8F73000D0AB4 /* Interface.storyboard */; }; + 0BEA5C2B1F7B8F73000D0AB4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C2A1F7B8F73000D0AB4 /* Assets.xcassets */; }; + 0BEA5C321F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0BEA5C311F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 0BEA5C371F7B8F73000D0AB4 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BEA5C361F7B8F73000D0AB4 /* InterfaceController.swift */; }; + 0BEA5C391F7B8F73000D0AB4 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BEA5C381F7B8F73000D0AB4 /* ExtensionDelegate.swift */; }; + 0BEA5C3B1F7B8F73000D0AB4 /* ComplicationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BEA5C3A1F7B8F73000D0AB4 /* ComplicationController.swift */; }; + 0BEA5C3D1F7B8F73000D0AB4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0BEA5C3C1F7B8F73000D0AB4 /* Assets.xcassets */; }; + 0BEA5C411F7B8F73000D0AB4 /* JitsiMeetCompanion.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 0BEA5C251F7B8F73000D0AB4 /* JitsiMeetCompanion.app */; }; + 13B07FBD1A68108700A75B9A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.storyboard */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 2681BB562C7A0B42CFBA6719 /* libPods-JitsiMeet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D6152FF9E9F7B0E86F70A21D /* libPods-JitsiMeet.a */; }; + 361974E2A13624D7735D619D /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 5C1BE20ECD5DEEB48FED90B5 /* PrivacyInfo.xcprivacy */; }; + 4341A9062CF0D63200940D93 /* hermes.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4341A9052CF0D63200940D93 /* hermes.xcframework */; }; + 4341A9072CF0D63200940D93 /* hermes.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4341A9052CF0D63200940D93 /* hermes.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4E90F9402632D1AB001102D4 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E90F93F2632D1AB001102D4 /* Atomic.swift */; }; + 4EB06024260E026600F524C5 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EC49B8625BED71300E76218 /* ReplayKit.framework */; }; + 4EB06027260E026600F524C5 /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB06026260E026600F524C5 /* SampleHandler.swift */; }; + 4EB0602B260E026600F524C5 /* JitsiMeetBroadcastExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 4EB06023260E026600F524C5 /* JitsiMeetBroadcastExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 4EB0603C260E09D000F524C5 /* SocketConnection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB06039260E09D000F524C5 /* SocketConnection.swift */; }; + 4EB0603D260E09D000F524C5 /* DarwinNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0603A260E09D000F524C5 /* DarwinNotificationCenter.swift */; }; + 4EB0603E260E09D000F524C5 /* SampleUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0603B260E09D000F524C5 /* SampleUploader.swift */; }; + DEA0B7122D7EF16E0062A9F6 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEA0B7112D7EF16E0062A9F6 /* ViewController.swift */; }; + DEA0B7142D7EF7590062A9F6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEA0B7132D7EF7590062A9F6 /* AppDelegate.swift */; }; + DEA9F289258A6EA800D4CD74 /* JitsiMeetSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEA9F288258A6EA800D4CD74 /* JitsiMeetSDK.framework */; }; + DEA9F28A258A6EA800D4CD74 /* JitsiMeetSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DEA9F288258A6EA800D4CD74 /* JitsiMeetSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + DED016F128ECBC9D009D5E8D /* WebRTC.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DED016F028ECBC9D009D5E8D /* WebRTC.xcframework */; }; + DED016F228ECBC9D009D5E8D /* WebRTC.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DED016F028ECBC9D009D5E8D /* WebRTC.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + E588011722789D43008B0561 /* JitsiMeetContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = E58801132278944E008B0561 /* JitsiMeetContext.swift */; }; + E5C97B63227A1EB400199214 /* JitsiMeetCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */; }; + FD572B9827EDF32300A800FB /* GiphyUISDK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD572B9727EDF32300A800FB /* GiphyUISDK.xcframework */; }; + FD572B9927EDF32300A800FB /* GiphyUISDK.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FD572B9727EDF32300A800FB /* GiphyUISDK.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0BEA5C331F7B8F73000D0AB4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0BEA5C301F7B8F73000D0AB4; + remoteInfo = "JitsiMeetCompanion Extension"; + }; + 0BEA5C3F1F7B8F73000D0AB4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0BEA5C241F7B8F73000D0AB4; + remoteInfo = JitsiMeetCompanion; + }; + 4EB06029260E026600F524C5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4EB06022260E026600F524C5; + remoteInfo = "JitsiMeetBroadcast Extension"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 0B26BE701EC5BC3C00EEFB41 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + DEA9F28A258A6EA800D4CD74 /* JitsiMeetSDK.framework in Embed Frameworks */, + 4341A9072CF0D63200940D93 /* hermes.xcframework in Embed Frameworks */, + FD572B9927EDF32300A800FB /* GiphyUISDK.xcframework in Embed Frameworks */, + DED016F228ECBC9D009D5E8D /* WebRTC.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0BEA5C471F7B8F73000D0AB4 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 0BEA5C321F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0BEA5C491F7B8F73000D0AB4 /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + 0BEA5C411F7B8F73000D0AB4 /* JitsiMeetCompanion.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; + 4EC49B9025BED71300E76218 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 4EB0602B260E026600F524C5 /* JitsiMeetBroadcastExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0B26BE6D1EC5BC3C00EEFB41 /* JitsiMeet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = JitsiMeet.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0B5418461F7C5D8C00A2DD86 /* MeetingRowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeetingRowController.swift; sourceTree = ""; }; + 0B70016F1F7C51CC005944F4 /* InCallController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InCallController.swift; sourceTree = ""; }; + 0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebRTC.framework; path = "../../node_modules/react-native-webrtc/ios/WebRTC.framework"; sourceTree = ""; }; + 0BEA5C251F7B8F73000D0AB4 /* JitsiMeetCompanion.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JitsiMeetCompanion.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0BEA5C281F7B8F73000D0AB4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; + 0BEA5C2A1F7B8F73000D0AB4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0BEA5C2C1F7B8F73000D0AB4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0BEA5C311F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "JitsiMeetCompanion Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0BEA5C361F7B8F73000D0AB4 /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; + 0BEA5C381F7B8F73000D0AB4 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; + 0BEA5C3A1F7B8F73000D0AB4 /* ComplicationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComplicationController.swift; sourceTree = ""; }; + 0BEA5C3C1F7B8F73000D0AB4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0BEA5C3E1F7B8F73000D0AB4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* jitsi-meet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "jitsi-meet.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = src/Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3E0F4ED943C0B12BE77F6B45 /* Pods-JitsiMeet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.release.xcconfig"; path = "Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.release.xcconfig"; sourceTree = ""; }; + 4341A9052CF0D63200940D93 /* hermes.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = hermes.xcframework; path = "../Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework"; sourceTree = ""; }; + 4E90F93F2632D1AB001102D4 /* Atomic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Atomic.swift; sourceTree = ""; }; + 4EB06023260E026600F524C5 /* JitsiMeetBroadcastExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = JitsiMeetBroadcastExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 4EB06026260E026600F524C5 /* SampleHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleHandler.swift; sourceTree = ""; }; + 4EB06028260E026600F524C5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4EB06032260E08CC00F524C5 /* extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = extension.entitlements; sourceTree = ""; }; + 4EB06039260E09D000F524C5 /* SocketConnection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketConnection.swift; sourceTree = ""; }; + 4EB0603A260E09D000F524C5 /* DarwinNotificationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DarwinNotificationCenter.swift; sourceTree = ""; }; + 4EB0603B260E09D000F524C5 /* SampleUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SampleUploader.swift; sourceTree = ""; }; + 4EC49B8625BED71300E76218 /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; + 5C1BE20ECD5DEEB48FED90B5 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 756FCE06C08D9B947653C98A /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = ""; }; + B3B083EB1D4955FF0069CEE7 /* app.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = app.entitlements; sourceTree = ""; }; + D6152FF9E9F7B0E86F70A21D /* libPods-JitsiMeet.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-JitsiMeet.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + DE050388256E904600DEE3A5 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/apple/WebRTC.xcframework"; sourceTree = ""; }; + DEA0B7112D7EF16E0062A9F6 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + DEA0B7132D7EF7590062A9F6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + DEA9F288258A6EA800D4CD74 /* JitsiMeetSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = JitsiMeetSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DED016F028ECBC9D009D5E8D /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = ../Pods/JitsiWebRTC/WebRTC.xcframework; sourceTree = ""; }; + DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = WebRTC.xcframework; path = "../../node_modules/react-native-webrtc/ios/WebRTC.xcframework"; sourceTree = ""; }; + E58801132278944E008B0561 /* JitsiMeetContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetContext.swift; sourceTree = ""; }; + E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiMeetCommands.swift; sourceTree = ""; }; + FD572B9727EDF32300A800FB /* GiphyUISDK.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:925PGC4MV7:Giphy, Inc."; lastKnownFileType = wrapper.xcframework; name = GiphyUISDK.xcframework; path = ../Pods/Giphy/GiphySDK/GiphyUISDK.xcframework; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0BEA5C2E1F7B8F73000D0AB4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DED016F128ECBC9D009D5E8D /* WebRTC.xcframework in Frameworks */, + DEA9F289258A6EA800D4CD74 /* JitsiMeetSDK.framework in Frameworks */, + FD572B9827EDF32300A800FB /* GiphyUISDK.xcframework in Frameworks */, + 2681BB562C7A0B42CFBA6719 /* libPods-JitsiMeet.a in Frameworks */, + 4341A9062CF0D63200940D93 /* hermes.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1F021A8A5B056078665DE530 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4EB06020260E026600F524C5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4EB06024260E026600F524C5 /* ReplayKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0B26BE711EC5BC4D00EEFB41 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4341A9052CF0D63200940D93 /* hermes.xcframework */, + DED016F028ECBC9D009D5E8D /* WebRTC.xcframework */, + FD572B9727EDF32300A800FB /* GiphyUISDK.xcframework */, + DEA9F288258A6EA800D4CD74 /* JitsiMeetSDK.framework */, + DE050388256E904600DEE3A5 /* WebRTC.xcframework */, + 0B26BE6D1EC5BC3C00EEFB41 /* JitsiMeet.framework */, + DEFDBBDB25656E3B00344B23 /* WebRTC.xcframework */, + 0BD6B4361EF82A6B00D1F4CD /* WebRTC.framework */, + 4EC49B8625BED71300E76218 /* ReplayKit.framework */, + D6152FF9E9F7B0E86F70A21D /* libPods-JitsiMeet.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 0BEA5C261F7B8F73000D0AB4 /* Watch app */ = { + isa = PBXGroup; + children = ( + 0BEA5C271F7B8F73000D0AB4 /* Interface.storyboard */, + 0BEA5C2A1F7B8F73000D0AB4 /* Assets.xcassets */, + 0BEA5C2C1F7B8F73000D0AB4 /* Info.plist */, + ); + name = "Watch app"; + path = watchos/app; + sourceTree = ""; + }; + 0BEA5C351F7B8F73000D0AB4 /* WatchKit extension */ = { + isa = PBXGroup; + children = ( + 0BEA5C361F7B8F73000D0AB4 /* InterfaceController.swift */, + 0BEA5C381F7B8F73000D0AB4 /* ExtensionDelegate.swift */, + 0BEA5C3A1F7B8F73000D0AB4 /* ComplicationController.swift */, + 0BEA5C3C1F7B8F73000D0AB4 /* Assets.xcassets */, + 0BEA5C3E1F7B8F73000D0AB4 /* Info.plist */, + 0B70016F1F7C51CC005944F4 /* InCallController.swift */, + 0B5418461F7C5D8C00A2DD86 /* MeetingRowController.swift */, + E58801132278944E008B0561 /* JitsiMeetContext.swift */, + E5C97B62227A1EB400199214 /* JitsiMeetCommands.swift */, + ); + name = "WatchKit extension"; + path = watchos/extension; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* src */ = { + isa = PBXGroup; + children = ( + DEA0B7132D7EF7590062A9F6 /* AppDelegate.swift */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + DEA0B7112D7EF16E0062A9F6 /* ViewController.swift */, + ); + path = src; + sourceTree = ""; + }; + 4EB06025260E026600F524C5 /* JitsiMeetBroadcast Extension */ = { + isa = PBXGroup; + children = ( + 4EB06032260E08CC00F524C5 /* extension.entitlements */, + 4EB06026260E026600F524C5 /* SampleHandler.swift */, + 4EB0603B260E09D000F524C5 /* SampleUploader.swift */, + 4EB06039260E09D000F524C5 /* SocketConnection.swift */, + 4EB0603A260E09D000F524C5 /* DarwinNotificationCenter.swift */, + 4E90F93F2632D1AB001102D4 /* Atomic.swift */, + 4EB06028260E026600F524C5 /* Info.plist */, + ); + indentWidth = 4; + name = "JitsiMeetBroadcast Extension"; + path = "broadcast-extension"; + sourceTree = ""; + tabWidth = 4; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + B3B083EB1D4955FF0069CEE7 /* app.entitlements */, + 0B26BE711EC5BC4D00EEFB41 /* Frameworks */, + 83CBBA001A601CBA00E9B192 /* Products */, + 13B07FAE1A68108700A75B9A /* src */, + 0BEA5C261F7B8F73000D0AB4 /* Watch app */, + 0BEA5C351F7B8F73000D0AB4 /* WatchKit extension */, + 4EB06025260E026600F524C5 /* JitsiMeetBroadcast Extension */, + CDD71F5E1157E9F283DF92A8 /* Pods */, + 5C1BE20ECD5DEEB48FED90B5 /* PrivacyInfo.xcprivacy */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* jitsi-meet.app */, + 0BEA5C251F7B8F73000D0AB4 /* JitsiMeetCompanion.app */, + 0BEA5C311F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex */, + 4EB06023260E026600F524C5 /* JitsiMeetBroadcastExtension.appex */, + ); + name = Products; + sourceTree = ""; + }; + CDD71F5E1157E9F283DF92A8 /* Pods */ = { + isa = PBXGroup; + children = ( + 756FCE06C08D9B947653C98A /* Pods-JitsiMeet.debug.xcconfig */, + 3E0F4ED943C0B12BE77F6B45 /* Pods-JitsiMeet.release.xcconfig */, + ); + name = Pods; + path = ../Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0BEA5C241F7B8F73000D0AB4 /* JitsiMeetCompanion */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0BEA5C481F7B8F73000D0AB4 /* Build configuration list for PBXNativeTarget "JitsiMeetCompanion" */; + buildPhases = ( + 0BEA5C231F7B8F73000D0AB4 /* Resources */, + 0BEA5C471F7B8F73000D0AB4 /* Embed App Extensions */, + 1F021A8A5B056078665DE530 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0BEA5C341F7B8F73000D0AB4 /* PBXTargetDependency */, + ); + name = JitsiMeetCompanion; + productName = JitsiMeetCompanion; + productReference = 0BEA5C251F7B8F73000D0AB4 /* JitsiMeetCompanion.app */; + productType = "com.apple.product-type.application.watchapp2"; + }; + 0BEA5C301F7B8F73000D0AB4 /* JitsiMeetCompanion Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0BEA5C461F7B8F73000D0AB4 /* Build configuration list for PBXNativeTarget "JitsiMeetCompanion Extension" */; + buildPhases = ( + 0BEA5C2D1F7B8F73000D0AB4 /* Sources */, + 0BEA5C2E1F7B8F73000D0AB4 /* Frameworks */, + 0BEA5C2F1F7B8F73000D0AB4 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "JitsiMeetCompanion Extension"; + productName = "JitsiMeetCompanion Extension"; + productReference = 0BEA5C311F7B8F73000D0AB4 /* JitsiMeetCompanion Extension.appex */; + productType = "com.apple.product-type.watchkit2-extension"; + }; + 13B07F861A680F5B00A75B9A /* JitsiMeet */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "JitsiMeet" */; + buildPhases = ( + 69BC5020DBE393B56BD76636 /* [CP] Check Pods Manifest.lock */, + 0BBA83C41EC9F7600075A103 /* Run React packager */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 0B26BE701EC5BC3C00EEFB41 /* Embed Frameworks */, + 0BEA5C491F7B8F73000D0AB4 /* Embed Watch Content */, + 4EC49B9025BED71300E76218 /* Embed App Extensions */, + 4E81688528A408E600F8FA9E /* Update App Entitlements */, + DE11877A21EE09640078D059 /* Setup Google reverse URL handler */, + 0BB7DA181EC9E695007AAE98 /* Adjust ATS */, + DE4F6D6E22005C0400DE699E /* Setup Dropbox */, + E9D850368D253EFA8AB3B8D1 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 0BEA5C401F7B8F73000D0AB4 /* PBXTargetDependency */, + 4EB0602A260E026600F524C5 /* PBXTargetDependency */, + ); + name = JitsiMeet; + productName = "Jitsi Meet"; + productReference = 13B07F961A680F5B00A75B9A /* jitsi-meet.app */; + productType = "com.apple.product-type.application"; + }; + 4EB06022260E026600F524C5 /* JitsiMeetBroadcastExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4EB0602C260E026700F524C5 /* Build configuration list for PBXNativeTarget "JitsiMeetBroadcastExtension" */; + buildPhases = ( + 4EB0601F260E026600F524C5 /* Sources */, + 4EB06020260E026600F524C5 /* Frameworks */, + 4EB06021260E026600F524C5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = JitsiMeetBroadcastExtension; + productName = "JitsiMeetBroadcast Extension"; + productReference = 4EB06023260E026600F524C5 /* JitsiMeetBroadcastExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1240; + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = Jitsi; + TargetAttributes = { + 0BEA5C241F7B8F73000D0AB4 = { + CreatedOnToolsVersion = 9.0; + DevelopmentTeam = FC967L3QRG; + ProvisioningStyle = Automatic; + }; + 0BEA5C301F7B8F73000D0AB4 = { + CreatedOnToolsVersion = 9.0; + DevelopmentTeam = FC967L3QRG; + ProvisioningStyle = Automatic; + }; + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1620; + SystemCapabilities = { + com.apple.SafariKeychain = { + enabled = 1; + }; + com.apple.Siri = { + enabled = 1; + }; + }; + }; + 4EB06022260E026600F524C5 = { + CreatedOnToolsVersion = 12.4; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "app" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* JitsiMeet */, + 0BEA5C241F7B8F73000D0AB4 /* JitsiMeetCompanion */, + 0BEA5C301F7B8F73000D0AB4 /* JitsiMeetCompanion Extension */, + 4EB06022260E026600F524C5 /* JitsiMeetBroadcastExtension */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0BEA5C231F7B8F73000D0AB4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0BEA5C2B1F7B8F73000D0AB4 /* Assets.xcassets in Resources */, + 0BEA5C291F7B8F73000D0AB4 /* Interface.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0BEA5C2F1F7B8F73000D0AB4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0BEA5C3D1F7B8F73000D0AB4 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 13B07FBD1A68108700A75B9A /* LaunchScreen.storyboard in Resources */, + 361974E2A13624D7735D619D /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4EB06021260E026600F524C5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 0BB7DA181EC9E695007AAE98 /* Adjust ATS */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH, + ); + name = "Adjust ATS"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "../scripts/fixup-ats.sh\n"; + }; + 0BBA83C41EC9F7600075A103 /* Run React packager */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run React packager"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "../scripts/run-packager.sh\n"; + }; + 4E81688528A408E600F8FA9E /* Update App Entitlements */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + $PROJECT_DIR/app.entitlements, + ); + name = "Update App Entitlements"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#if test \"$PRODUCT_BUNDLE_IDENTIFIER\" = \"com.atlassian.JitsiMeet.ios\"; then\n# ENTITLEMENTS_PLIST=\"$PROJECT_DIR/app.entitlements\"\n# \n# /usr/libexec/PlistBuddy -c \"Add :com.apple.developer.avfoundation.multitasking-camera-access bool 1\" $ENTITLEMENTS_PLIST\n#fi\n"; + }; + 69BC5020DBE393B56BD76636 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-JitsiMeet-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + DE11877A21EE09640078D059 /* Setup Google reverse URL handler */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH, + ); + name = "Setup Google reverse URL handler"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "GOOGLE_PLIST_NAME=\"GoogleService-Info.plist\"\nGOOGLE_PLIST=\"$PROJECT_DIR/$GOOGLE_PLIST_NAME\"\nBUILD_APP_DIR=\"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app\"\nINFO_PLIST=\"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH\"\n\nif [[ -f $GOOGLE_PLIST ]]; then\n cp $GOOGLE_PLIST \"$BUILD_APP_DIR/$GOOGLE_PLIST_NAME\"\n REVERSED_CLIENT_ID=$(/usr/libexec/PlistBuddy -c \"Print :REVERSED_CLIENT_ID:\" $GOOGLE_PLIST)\n /usr/libexec/PlistBuddy -c \"Set :CFBundleURLTypes:1:CFBundleURLSchemes:0 $REVERSED_CLIENT_ID\" $INFO_PLIST\nfi\n"; + }; + DE4F6D6E22005C0400DE699E /* Setup Dropbox */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH, + ); + name = "Setup Dropbox"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "INFO_PLIST=\"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH\"\nDROPBOX_KEY_FILE=\"$PROJECT_DIR/dropbox.key\"\n\nif [[ -f $DROPBOX_KEY_FILE ]]; then\n /usr/libexec/PlistBuddy -c \"Delete :LSApplicationQueriesSchemes\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes array\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes:0 string 'dbapi-2'\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes:1 string 'dbapi-8-emm'\" $INFO_PLIST\n\n DROPBOX_KEY=$(head -n 1 $DROPBOX_KEY_FILE)\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLName string dropbox\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLSchemes array\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLSchemes:0 string $DROPBOX_KEY\" $INFO_PLIST\nfi\n"; + }; + E9D850368D253EFA8AB3B8D1 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0BEA5C2D1F7B8F73000D0AB4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0B7001701F7C51CC005944F4 /* InCallController.swift in Sources */, + E5C97B63227A1EB400199214 /* JitsiMeetCommands.swift in Sources */, + 0B5418471F7C5D8C00A2DD86 /* MeetingRowController.swift in Sources */, + E588011722789D43008B0561 /* JitsiMeetContext.swift in Sources */, + 0BEA5C391F7B8F73000D0AB4 /* ExtensionDelegate.swift in Sources */, + 0BEA5C371F7B8F73000D0AB4 /* InterfaceController.swift in Sources */, + 0BEA5C3B1F7B8F73000D0AB4 /* ComplicationController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DEA0B7122D7EF16E0062A9F6 /* ViewController.swift in Sources */, + DEA0B7142D7EF7590062A9F6 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4EB0601F260E026600F524C5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4EB0603C260E09D000F524C5 /* SocketConnection.swift in Sources */, + 4EB0603E260E09D000F524C5 /* SampleUploader.swift in Sources */, + 4EB0603D260E09D000F524C5 /* DarwinNotificationCenter.swift in Sources */, + 4EB06027260E026600F524C5 /* SampleHandler.swift in Sources */, + 4E90F9402632D1AB001102D4 /* Atomic.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0BEA5C341F7B8F73000D0AB4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0BEA5C301F7B8F73000D0AB4 /* JitsiMeetCompanion Extension */; + targetProxy = 0BEA5C331F7B8F73000D0AB4 /* PBXContainerItemProxy */; + }; + 0BEA5C401F7B8F73000D0AB4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0BEA5C241F7B8F73000D0AB4 /* JitsiMeetCompanion */; + targetProxy = 0BEA5C3F1F7B8F73000D0AB4 /* PBXContainerItemProxy */; + }; + 4EB0602A260E026600F524C5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4EB06022260E026600F524C5 /* JitsiMeetBroadcastExtension */; + targetProxy = 4EB06029260E026600F524C5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 0BEA5C271F7B8F73000D0AB4 /* Interface.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0BEA5C281F7B8F73000D0AB4 /* Base */, + ); + name = Interface.storyboard; + sourceTree = ""; + }; + 13B07FB11A68108700A75B9A /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 13B07FB21A68108700A75B9A /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 0BEA5C421F7B8F73000D0AB4 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = FC967L3QRG; + GCC_C_LANGUAGE_STANDARD = gnu11; + IBSC_MODULE = JitsiMeetCompanion_Extension; + INFOPLIST_FILE = watchos/app/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = Debug; + }; + 0BEA5C431F7B8F73000D0AB4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = FC967L3QRG; + GCC_C_LANGUAGE_STANDARD = gnu11; + IBSC_MODULE = JitsiMeetCompanion_Extension; + INFOPLIST_FILE = watchos/app/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = Release; + }; + 0BEA5C441F7B8F73000D0AB4 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = FC967L3QRG; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = watchos/extension/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension; + PRODUCT_NAME = "${TARGET_NAME}"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = Debug; + }; + 0BEA5C451F7B8F73000D0AB4 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = FC967L3QRG; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = watchos/extension/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.watchkit.extension; + PRODUCT_NAME = "${TARGET_NAME}"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 4.0; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 756FCE06C08D9B947653C98A /* Pods-JitsiMeet.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIconDebug; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = app.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = FC967L3QRG; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + INFOPLIST_FILE = src/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet; + PRODUCT_NAME = "jitsi-meet"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3E0F4ED943C0B12BE77F6B45 /* Pods-JitsiMeet.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIconRelease; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = app.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = FC967L3QRG; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + INFOPLIST_FILE = src/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet; + PRODUCT_NAME = "jitsi-meet"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_VERSION = 6.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 4EB0602D260E026700F524C5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "broadcast-extension/extension.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = FC967L3QRG; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "broadcast-extension/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.broadcast.extension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4EB0602E260E026700F524C5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "broadcast-extension/extension.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = FC967L3QRG; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "broadcast-extension/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.meet.broadcast.extension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CXX = ""; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + ); + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD = ""; + LDPLUSPLUS = ""; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + TARGETED_DEVICE_FAMILY = "1,2"; + USE_HERMES = true; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + CXX = ""; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + ); + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD = ""; + LDPLUSPLUS = ""; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + TARGETED_DEVICE_FAMILY = "1,2"; + USE_HERMES = true; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0BEA5C461F7B8F73000D0AB4 /* Build configuration list for PBXNativeTarget "JitsiMeetCompanion Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0BEA5C441F7B8F73000D0AB4 /* Debug */, + 0BEA5C451F7B8F73000D0AB4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0BEA5C481F7B8F73000D0AB4 /* Build configuration list for PBXNativeTarget "JitsiMeetCompanion" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0BEA5C421F7B8F73000D0AB4 /* Debug */, + 0BEA5C431F7B8F73000D0AB4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "JitsiMeet" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4EB0602C260E026700F524C5 /* Build configuration list for PBXNativeTarget "JitsiMeetBroadcastExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4EB0602D260E026700F524C5 /* Debug */, + 4EB0602E260E026700F524C5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "app" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/ios/app/app.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme b/ios/app/app.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme new file mode 100644 index 0000000..811a144 --- /dev/null +++ b/ios/app/app.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/app/broadcast-extension/Atomic.swift b/ios/app/broadcast-extension/Atomic.swift new file mode 100644 index 0000000..159dd95 --- /dev/null +++ b/ios/app/broadcast-extension/Atomic.swift @@ -0,0 +1,30 @@ + +import Foundation + +@propertyWrapper +struct Atomic { + + private var value: Value + private let lock = NSLock() + + init(wrappedValue value: Value) { + self.value = value + } + + var wrappedValue: Value { + get { return load() } + set { store(newValue: newValue) } + } + + func load() -> Value { + lock.lock() + defer { lock.unlock() } + return value + } + + mutating func store(newValue: Value) { + lock.lock() + defer { lock.unlock() } + value = newValue + } +} diff --git a/ios/app/broadcast-extension/DarwinNotificationCenter.swift b/ios/app/broadcast-extension/DarwinNotificationCenter.swift new file mode 100644 index 0000000..eb97ec1 --- /dev/null +++ b/ios/app/broadcast-extension/DarwinNotificationCenter.swift @@ -0,0 +1,37 @@ +/* + * 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. + */ + +import Foundation + +enum DarwinNotification: String { + case broadcastStarted = "iOS_BroadcastStarted" + case broadcastStopped = "iOS_BroadcastStopped" +} + +class DarwinNotificationCenter { + + static var shared = DarwinNotificationCenter() + + private var notificationCenter: CFNotificationCenter + + init() { + notificationCenter = CFNotificationCenterGetDarwinNotifyCenter() + } + + func postNotification(_ name: DarwinNotification) { + CFNotificationCenterPostNotification(notificationCenter, CFNotificationName(rawValue: name.rawValue as CFString), nil, nil, true) + } +} diff --git a/ios/app/broadcast-extension/Info.plist b/ios/app/broadcast-extension/Info.plist new file mode 100644 index 0000000..6222dd8 --- /dev/null +++ b/ios/app/broadcast-extension/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Jitsi Meet Broadcast Extension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 99.0.0 + CFBundleVersion + 1 + NSExtension + + NSExtensionPointIdentifier + com.apple.broadcast-services-upload + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).SampleHandler + RPBroadcastProcessMode + RPBroadcastProcessModeSampleBuffer + + + diff --git a/ios/app/broadcast-extension/SampleHandler.swift b/ios/app/broadcast-extension/SampleHandler.swift new file mode 100644 index 0000000..5e96a9c --- /dev/null +++ b/ios/app/broadcast-extension/SampleHandler.swift @@ -0,0 +1,116 @@ +/* + * 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. + */ + +import ReplayKit + +private enum Constants { + // the App Group ID value that the app and the broadcast extension targets are setup with. It differs for each app. + static let appGroupIdentifier = "group.org.jitsi.meet.appgroup" +} + +class SampleHandler: RPBroadcastSampleHandler { + + private var clientConnection: SocketConnection? + private var uploader: SampleUploader? + + private var frameCount: Int = 0 + + var socketFilePath: String { + let sharedContainer = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: Constants.appGroupIdentifier) + + return sharedContainer?.appendingPathComponent("rtc_SSFD").path ?? "" + } + + override init() { + super.init() + if let connection = SocketConnection(filePath: socketFilePath) { + clientConnection = connection + setupConnection() + + uploader = SampleUploader(connection: connection) + } + } + + override func broadcastStarted(withSetupInfo setupInfo: [String: NSObject]?) { + // User has requested to start the broadcast. Setup info from the UI extension can be supplied but optional. + print("broadcast started") + + frameCount = 0 + + DarwinNotificationCenter.shared.postNotification(.broadcastStarted) + openConnection() + } + + override func broadcastPaused() { + // User has requested to pause the broadcast. Samples will stop being delivered. + } + + override func broadcastResumed() { + // User has requested to resume the broadcast. Samples delivery will resume. + } + + override func broadcastFinished() { + // User has requested to finish the broadcast. + DarwinNotificationCenter.shared.postNotification(.broadcastStopped) + clientConnection?.close() + } + + override func processSampleBuffer(_ sampleBuffer: CMSampleBuffer, with sampleBufferType: RPSampleBufferType) { + switch sampleBufferType { + case RPSampleBufferType.video: + // very simple mechanism for adjusting frame rate by using every third frame + frameCount += 1 + if frameCount % 3 == 0 { + uploader?.send(sample: sampleBuffer) + } + default: + break + } + } +} + +private extension SampleHandler { + + func setupConnection() { + clientConnection?.didClose = { [weak self] error in + print("client connection did close \(String(describing: error))") + + if let error = error { + self?.finishBroadcastWithError(error) + } else { + // the displayed failure message is more user friendly when using NSError instead of Error + let JMScreenSharingStopped = 10001 + let customError = NSError(domain: RPRecordingErrorDomain, code: JMScreenSharingStopped, userInfo: [NSLocalizedDescriptionKey: "Screen sharing stopped"]) + self?.finishBroadcastWithError(customError) + } + } + } + + func openConnection() { + let queue = DispatchQueue(label: "broadcast.connectTimer") + let timer = DispatchSource.makeTimerSource(queue: queue) + timer.schedule(deadline: .now(), repeating: .milliseconds(100), leeway: .milliseconds(500)) + timer.setEventHandler { [weak self] in + guard self?.clientConnection?.open() == true else { + return + } + + timer.cancel() + } + + timer.resume() + } +} diff --git a/ios/app/broadcast-extension/SampleUploader.swift b/ios/app/broadcast-extension/SampleUploader.swift new file mode 100644 index 0000000..8c545b9 --- /dev/null +++ b/ios/app/broadcast-extension/SampleUploader.swift @@ -0,0 +1,154 @@ +/* + * 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. + */ + +import Foundation +import ReplayKit + +private enum Constants { + static let bufferMaxLength = 10240 +} + +class SampleUploader { + + private static var imageContext = CIContext(options: nil) + + @Atomic private var isReady: Bool = false + private var connection: SocketConnection + + private var dataToSend: Data? + private var byteIndex = 0 + + private let serialQueue: DispatchQueue + + init(connection: SocketConnection) { + self.connection = connection + self.serialQueue = DispatchQueue(label: "org.jitsi.meet.broadcast.sampleUploader") + + setupConnection() + } + + @discardableResult func send(sample buffer: CMSampleBuffer) -> Bool { + guard isReady == true else { + return false + } + + isReady = false + + dataToSend = prepare(sample: buffer) + byteIndex = 0 + + serialQueue.async { [weak self] in + self?.sendDataChunk() + } + + return true + } +} + +private extension SampleUploader { + + func setupConnection() { + connection.didOpen = { [weak self] in + self?.isReady = true + } + connection.streamHasSpaceAvailable = { [weak self] in + self?.serialQueue.async { + self?.isReady = !(self?.sendDataChunk() ?? true) + } + } + } + + @discardableResult func sendDataChunk() -> Bool { + guard let dataToSend = dataToSend else { + return false + } + + var bytesLeft = dataToSend.count - byteIndex + var length = bytesLeft > Constants.bufferMaxLength ? Constants.bufferMaxLength : bytesLeft + + length = dataToSend[byteIndex..<(byteIndex + length)].withUnsafeBytes { + guard let ptr = $0.bindMemory(to: UInt8.self).baseAddress else { + return 0 + } + + return connection.writeToStream(buffer: ptr, maxLength: length) + } + + if length > 0 { + byteIndex += length + bytesLeft -= length + + if bytesLeft == 0 { + self.dataToSend = nil + byteIndex = 0 + } + } else { + print("writeBufferToStream failure") + } + + return true + } + + func prepare(sample buffer: CMSampleBuffer) -> Data? { + guard let imageBuffer = CMSampleBufferGetImageBuffer(buffer) else { + print("image buffer not available") + return nil + } + + CVPixelBufferLockBaseAddress(imageBuffer, .readOnly) + + let scaleFactor = 2.0 + let width = CVPixelBufferGetWidth(imageBuffer)/Int(scaleFactor) + let height = CVPixelBufferGetHeight(imageBuffer)/Int(scaleFactor) + let orientation = CMGetAttachment(buffer, key: RPVideoSampleOrientationKey as CFString, attachmentModeOut: nil)?.uintValue ?? 0 + + let scaleTransform = CGAffineTransform(scaleX: CGFloat(1.0/scaleFactor), y: CGFloat(1.0/scaleFactor)) + let bufferData = self.jpegData(from: imageBuffer, scale: scaleTransform) + + CVPixelBufferUnlockBaseAddress(imageBuffer, .readOnly) + + guard let messageData = bufferData else { + print("corrupted image buffer") + return nil + } + + let httpResponse = CFHTTPMessageCreateResponse(nil, 200, nil, kCFHTTPVersion1_1).takeRetainedValue() + CFHTTPMessageSetHeaderFieldValue(httpResponse, "Content-Length" as CFString, String(messageData.count) as CFString) + CFHTTPMessageSetHeaderFieldValue(httpResponse, "Buffer-Width" as CFString, String(width) as CFString) + CFHTTPMessageSetHeaderFieldValue(httpResponse, "Buffer-Height" as CFString, String(height) as CFString) + CFHTTPMessageSetHeaderFieldValue(httpResponse, "Buffer-Orientation" as CFString, String(orientation) as CFString) + + CFHTTPMessageSetBody(httpResponse, messageData as CFData) + + let serializedMessage = CFHTTPMessageCopySerializedMessage(httpResponse)?.takeRetainedValue() as Data? + + return serializedMessage + } + + func jpegData(from buffer: CVPixelBuffer, scale scaleTransform: CGAffineTransform) -> Data? { + var image = CIImage(cvPixelBuffer: buffer) + image = image.transformed(by: scaleTransform) + + guard let colorSpace = image.colorSpace else { + return nil + } + + let options: [CIImageRepresentationOption: Float] = [kCGImageDestinationLossyCompressionQuality as CIImageRepresentationOption: 1.0] + let imageData = SampleUploader.imageContext.jpegRepresentation(of: image, colorSpace: colorSpace, options: options) + + return imageData + } +} diff --git a/ios/app/broadcast-extension/SocketConnection.swift b/ios/app/broadcast-extension/SocketConnection.swift new file mode 100644 index 0000000..bb5746d --- /dev/null +++ b/ios/app/broadcast-extension/SocketConnection.swift @@ -0,0 +1,205 @@ +/* + * 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. + */ + +import Foundation + +class SocketConnection: NSObject { + var didOpen: (() -> Void)? + var didClose: ((Error?) -> Void)? + var streamHasSpaceAvailable: (() -> Void)? + + private let filePath: String + private var socketHandle: Int32 = -1 + private var address: sockaddr_un? + + private var inputStream: InputStream? + private var outputStream: OutputStream? + + private var networkQueue: DispatchQueue? + private var shouldKeepRunning = false + + init?(filePath path: String) { + filePath = path + socketHandle = Darwin.socket(AF_UNIX, SOCK_STREAM, 0) + + guard socketHandle != -1 else { + print("failure: create socket") + return nil + } + } + + func open() -> Bool { + print("open socket connection") + + guard FileManager.default.fileExists(atPath: filePath) else { + print("failure: socket file missing") + return false + } + + guard setupAddress() == true else { + return false + } + + guard connectSocket() == true else { + return false + } + + setupStreams() + + inputStream?.open() + outputStream?.open() + + return true + } + + func close() { + unscheduleStreams() + + inputStream?.delegate = nil + outputStream?.delegate = nil + + inputStream?.close() + outputStream?.close() + + inputStream = nil + outputStream = nil + } + + func writeToStream(buffer: UnsafePointer, maxLength length: Int) -> Int { + return outputStream?.write(buffer, maxLength: length) ?? 0 + } +} + +extension SocketConnection: StreamDelegate { + + func stream(_ aStream: Stream, handle eventCode: Stream.Event) { + switch eventCode { + case .openCompleted: + print("client stream open completed") + if aStream == outputStream { + didOpen?() + } + case .hasBytesAvailable: + if aStream == inputStream { + var buffer: UInt8 = 0 + let numberOfBytesRead = inputStream?.read(&buffer, maxLength: 1) + if numberOfBytesRead == 0 && aStream.streamStatus == .atEnd { + print("server socket closed") + close() + notifyDidClose(error: nil) + } + } + case .hasSpaceAvailable: + if aStream == outputStream { + streamHasSpaceAvailable?() + } + case .errorOccurred: + print("client stream error occurred: \(String(describing: aStream.streamError))") + close() + notifyDidClose(error: aStream.streamError) + + default: + break + } + } +} + +private extension SocketConnection { + + func setupAddress() -> Bool { + var addr = sockaddr_un() + guard filePath.count < MemoryLayout.size(ofValue: addr.sun_path) else { + print("failure: fd path is too long") + return false + } + + _ = withUnsafeMutablePointer(to: &addr.sun_path.0) { ptr in + filePath.withCString { + strncpy(ptr, $0, filePath.count) + } + } + + address = addr + return true + } + + func connectSocket() -> Bool { + guard var addr = address else { + return false + } + + let status = withUnsafePointer(to: &addr) { ptr in + ptr.withMemoryRebound(to: sockaddr.self, capacity: 1) { + Darwin.connect(socketHandle, $0, socklen_t(MemoryLayout.size)) + } + } + + guard status == noErr else { + print("failure: \(status)") + return false + } + + return true + } + + func setupStreams() { + var readStream: Unmanaged? + var writeStream: Unmanaged? + + CFStreamCreatePairWithSocket(kCFAllocatorDefault, socketHandle, &readStream, &writeStream) + + inputStream = readStream?.takeRetainedValue() + inputStream?.delegate = self + inputStream?.setProperty(kCFBooleanTrue, forKey: Stream.PropertyKey(kCFStreamPropertyShouldCloseNativeSocket as String)) + + outputStream = writeStream?.takeRetainedValue() + outputStream?.delegate = self + outputStream?.setProperty(kCFBooleanTrue, forKey: Stream.PropertyKey(kCFStreamPropertyShouldCloseNativeSocket as String)) + + scheduleStreams() + } + + func scheduleStreams() { + shouldKeepRunning = true + + networkQueue = DispatchQueue.global(qos: .userInitiated) + networkQueue?.async { [weak self] in + self?.inputStream?.schedule(in: .current, forMode: .common) + self?.outputStream?.schedule(in: .current, forMode: .common) + + var isRunning = false + + repeat { + isRunning = self?.shouldKeepRunning ?? false && RunLoop.current.run(mode: .default, before: .distantFuture) + } while (isRunning) + } + } + + func unscheduleStreams() { + networkQueue?.sync { [weak self] in + self?.inputStream?.remove(from: .current, forMode: .common) + self?.outputStream?.remove(from: .current, forMode: .common) + } + + shouldKeepRunning = false + } + + func notifyDidClose(error: Error?) { + if didClose != nil { + didClose?(error) + } + } +} diff --git a/ios/app/broadcast-extension/extension.entitlements b/ios/app/broadcast-extension/extension.entitlements new file mode 100644 index 0000000..2bebc0b --- /dev/null +++ b/ios/app/broadcast-extension/extension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.org.jitsi.meet.appgroup + + + diff --git a/ios/app/src/AppDelegate.swift b/ios/app/src/AppDelegate.swift new file mode 100644 index 0000000..e9fe234 --- /dev/null +++ b/ios/app/src/AppDelegate.swift @@ -0,0 +1,78 @@ +import UIKit +import Firebase +import JitsiMeetSDK + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + self.window = UIWindow(frame: UIScreen.main.bounds) + + let jitsiMeet = JitsiMeet.sharedInstance() + + // jitsiMeet.webRtcLoggingSeverity = .verbose + + jitsiMeet.conferenceActivityType = "org.jitsi.JitsiMeet.ios.conference" // Must match the one defined in Info.plist{} + jitsiMeet.customUrlScheme = "org.jitsi.meet" + jitsiMeet.universalLinkDomains = ["meet.jit.si", "alpha.jitsi.net", "beta.meet.jit.si"] + + jitsiMeet.defaultConferenceOptions = JitsiMeetConferenceOptions.fromBuilder { builder in + // For testing configOverrides a room needs to be set + // builder.room = "https://meet.jit.si/test0988test" + + builder.setFeatureFlag("welcomepage.enabled", withBoolean: true) + builder.setFeatureFlag("ios.screensharing.enabled", withBoolean: true) + builder.setFeatureFlag("ios.recording.enabled", withBoolean: true) + } + + jitsiMeet.application(application, didFinishLaunchingWithOptions: launchOptions ?? [:]) + + if self.appContainsRealServiceInfoPlist() { + print("Enabling Firebase") + FirebaseApp.configure() + Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(!jitsiMeet.isCrashReportingDisabled()) + } + + let vc = ViewController() + self.window?.rootViewController = vc + jitsiMeet.showSplashScreen() + + self.window?.makeKeyAndVisible() + + return true + } + + func applicationWillTerminate(_ application: UIApplication) { + print("Application will terminate!") + if let rootController = self.window?.rootViewController as? ViewController { + rootController.terminate() + } + } + + // MARK: Linking delegate methods + + func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { + return JitsiMeet.sharedInstance().application(application, continue: userActivity, restorationHandler: restorationHandler) + } + + func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { + if url.absoluteString.contains("google/link/?dismiss=1&is_weak_match=1") { + return false + } + + return JitsiMeet.sharedInstance().application(app, open: url, options: options) + } + + func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { + return JitsiMeet.sharedInstance().application(application, supportedInterfaceOrientationsFor: window) + } +} + +// Firebase utilities +extension AppDelegate { + func appContainsRealServiceInfoPlist() -> Bool { + return InfoPlistUtil.containsRealServiceInfoPlist(in: Bundle.main) + } +} diff --git a/ios/app/src/Base.lproj/LaunchScreen.storyboard b/ios/app/src/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..b0ff42f --- /dev/null +++ b/ios/app/src/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-1024@1x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-1024@1x.png new file mode 100644 index 0000000..c4aa223 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-1024@1x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-29@2x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-29@2x.png new file mode 100644 index 0000000..6f2feef Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-29@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-29@3x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-29@3x.png new file mode 100644 index 0000000..df0b0b1 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-29@3x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-40@2x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-40@2x.png new file mode 100644 index 0000000..1cd4e64 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-40@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-60@2x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-60@2x.png new file mode 100644 index 0000000..11fe05a Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-60@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-60@3x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-60@3x.png new file mode 100644 index 0000000..07a9fcc Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-60@3x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-76@1x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-76@1x.png new file mode 100644 index 0000000..85b7578 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-76@1x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-76@2x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-76@2x.png new file mode 100644 index 0000000..7f26813 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-76@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-83.5@2x.png b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-83.5@2x.png new file mode 100644 index 0000000..c885af6 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/AppIcon-83.5@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconDebug.appiconset/Contents.json b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/Contents.json new file mode 100644 index 0000000..6ea7d6c --- /dev/null +++ b/ios/app/src/Images.xcassets/AppIconDebug.appiconset/Contents.json @@ -0,0 +1,110 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "AppIcon-29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "AppIcon-29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "AppIcon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "AppIcon-60@2x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "AppIcon-60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "AppIcon-60@3x.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "AppIcon-29@2x.png", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "AppIcon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "AppIcon-76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "AppIcon-76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "AppIcon-83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "AppIcon-1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-1024@1x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-1024@1x.png new file mode 100644 index 0000000..5f5f64a Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-1024@1x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-29@2x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-29@2x.png new file mode 100644 index 0000000..b708df1 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-29@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-29@3x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-29@3x.png new file mode 100644 index 0000000..3b568f7 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-29@3x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-40@2x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-40@2x.png new file mode 100644 index 0000000..60440ca Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-40@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-60@2x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-60@2x.png new file mode 100644 index 0000000..1f2c834 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-60@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-60@3x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-60@3x.png new file mode 100644 index 0000000..ab94faf Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-60@3x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-76@1x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-76@1x.png new file mode 100644 index 0000000..9ef135e Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-76@1x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-76@2x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-76@2x.png new file mode 100644 index 0000000..b593142 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-76@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-83.5@2x.png b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-83.5@2x.png new file mode 100644 index 0000000..df93e50 Binary files /dev/null and b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/AppIcon-83.5@2x.png differ diff --git a/ios/app/src/Images.xcassets/AppIconRelease.appiconset/Contents.json b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/Contents.json new file mode 100644 index 0000000..6ea7d6c --- /dev/null +++ b/ios/app/src/Images.xcassets/AppIconRelease.appiconset/Contents.json @@ -0,0 +1,110 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "AppIcon-29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "AppIcon-29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "AppIcon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "AppIcon-60@2x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "AppIcon-60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "AppIcon-60@3x.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "AppIcon-29@2x.png", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "AppIcon-40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "AppIcon-76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "AppIcon-76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "AppIcon-83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "AppIcon-1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@1x.png b/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@1x.png new file mode 100644 index 0000000..9a64f10 Binary files /dev/null and b/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@1x.png differ diff --git a/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@2x.png b/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@2x.png new file mode 100644 index 0000000..06d3757 Binary files /dev/null and b/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@2x.png differ diff --git a/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@3x.png b/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@3x.png new file mode 100644 index 0000000..9c7a72b Binary files /dev/null and b/ios/app/src/Images.xcassets/CallKitIcon.imageset/CallKit@3x.png differ diff --git a/ios/app/src/Images.xcassets/CallKitIcon.imageset/Contents.json b/ios/app/src/Images.xcassets/CallKitIcon.imageset/Contents.json new file mode 100644 index 0000000..a2a8391 --- /dev/null +++ b/ios/app/src/Images.xcassets/CallKitIcon.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "CallKit@1x.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "CallKit@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "CallKit@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/src/Images.xcassets/Contents.json b/ios/app/src/Images.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/ios/app/src/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/src/Images.xcassets/LaunchScreen.imageset/Contents.json b/ios/app/src/Images.xcassets/LaunchScreen.imageset/Contents.json new file mode 100644 index 0000000..56b6f90 --- /dev/null +++ b/ios/app/src/Images.xcassets/LaunchScreen.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "LaunchScreen-480@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchScreen-480@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchScreen-480@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@1x.png b/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@1x.png new file mode 100644 index 0000000..294440d Binary files /dev/null and b/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@1x.png differ diff --git a/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@2x.png b/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@2x.png new file mode 100644 index 0000000..e4eb4e7 Binary files /dev/null and b/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@2x.png differ diff --git a/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@3x.png b/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@3x.png new file mode 100644 index 0000000..6b67740 Binary files /dev/null and b/ios/app/src/Images.xcassets/LaunchScreen.imageset/LaunchScreen-480@3x.png differ diff --git a/ios/app/src/Info.plist b/ios/app/src/Info.plist new file mode 100644 index 0000000..18ac649 --- /dev/null +++ b/ios/app/src/Info.plist @@ -0,0 +1,107 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Jitsi Meet + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 99.0.0 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleTypeRole + Viewer + CFBundleURLName + org.jitsi.meet + CFBundleURLSchemes + + org.jitsi.meet + + + + CFBundleTypeRole + Editor + CFBundleURLName + com.googleusercontent.apps + CFBundleURLSchemes + + com.googleusercontent.apps.your-id-here + + + + CFBundleVersion + 1 + FirebaseCrashlyticsCollectionEnabled + false + FirebaseScreenReportingEnabled + + ITSAppUsesNonExemptEncryption + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSTemporaryExceptionAllowsInsecureHTTPLoads + + + + + NSCalendarsUsageDescription + See your scheduled meetings in the app. + NSCameraUsageDescription + Participate in meetings with video. + NSLocalNetworkUsageDescription + Local network is used for establishing Peer-to-Peer connections. + NSMicrophoneUsageDescription + Participate in meetings with voice. + NSUserActivityTypes + + org.jitsi.JitsiMeet.ios.conference + + RTCAppGroupIdentifier + group.org.jitsi.meet.appgroup + RTCScreenSharingExtension + org.jitsi.meet.broadcast.extension + UIBackgroundModes + + audio + fetch + voip + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UIStatusBarStyle + UIStatusBarStyleLightContent + UISupportedInterfaceOrientations + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/app/src/ViewController.swift b/ios/app/src/ViewController.swift new file mode 100644 index 0000000..7cda625 --- /dev/null +++ b/ios/app/src/ViewController.swift @@ -0,0 +1,94 @@ +/* + * Copyright @ 2025-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 CoreSpotlight +import Intents +import MobileCoreServices +import UIKit + +import JitsiMeetSDK + +@objcMembers +class ViewController: UIViewController { + + override func loadView() { + let jitsiView = JitsiMeetView(frame: UIScreen.main.bounds) + self.view = jitsiView + } + + override func viewDidLoad() { + super.viewDidLoad() + + guard let view = self.view as? JitsiMeetView else { return } + view.delegate = self + view.join(JitsiMeet.sharedInstance().getInitialConferenceOptions()) + } + + // MARK: - Helper Methods + + func terminate() { + guard let view = self.view as? JitsiMeetView else { return } + view.leave() + } +} + + +extension ViewController: @preconcurrency JitsiMeetViewDelegate { + + // MARK: - Private Helper Methods + + private func onJitsiMeetViewDelegateEvent(_ name: String, withData data: [AnyHashable: Any]?) { + NSLog("[%@:%d] JitsiMeetViewDelegate %@ %@", #file, #line, name, data ?? [:]) + + #if DEBUG + assert(Thread.isMainThread, "JitsiMeetViewDelegate \(name) method invoked on a non-main thread") + #endif + } + + // MARK: - JitsiMeetViewDelegate + + func conferenceJoined(_ data: [AnyHashable: Any]) { + onJitsiMeetViewDelegateEvent("CONFERENCE_JOINED", withData: data) + + // Register a NSUserActivity for this conference so it can be invoked as a Siri shortcut. + // Must match the one defined in Info.plist + let userActivity = NSUserActivity(activityType: "org.jitsi.JitsiMeet.ios.conference") + + if let urlStr = data["url"] as? String, + let url = URL(string: urlStr), + let conference = url.pathComponents.last { + + userActivity.title = "Join \(conference)" + userActivity.suggestedInvocationPhrase = "Join my Jitsi meeting" + userActivity.userInfo = ["url": urlStr] + userActivity.isEligibleForSearch = true + userActivity.isEligibleForPrediction = true + userActivity.persistentIdentifier = urlStr + + // Subtitle + let attributes = CSSearchableItemAttributeSet(contentType: UTType.item) + attributes.contentDescription = urlStr + userActivity.contentAttributeSet = attributes + + self.userActivity = userActivity + userActivity.becomeCurrent() + } + } + + func ready(toClose data: [AnyHashable: Any]) { + onJitsiMeetViewDelegateEvent("READY_TO_CLOSE", withData: data) + } +} diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..be87442 --- /dev/null +++ b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,92 @@ +{ + "images" : [ + { + "size" : "24x24", + "idiom" : "watch", + "filename" : "Icon-24@2x.png", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "38mm" + }, + { + "size" : "27.5x27.5", + "idiom" : "watch", + "filename" : "Icon-27.5@2x.png", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "42mm" + }, + { + "size" : "29x29", + "idiom" : "watch", + "filename" : "Icon-29@2x.png", + "role" : "companionSettings", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "filename" : "Icon-29@3x.png", + "role" : "companionSettings", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "watch", + "filename" : "Icon-40@2x.png", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "38mm" + }, + { + "size" : "44x44", + "idiom" : "watch", + "filename" : "Icon-88@2x.png", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "40mm" + }, + { + "size" : "50x50", + "idiom" : "watch", + "filename" : "Icon-100@2x.png", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "44mm" + }, + { + "size" : "86x86", + "idiom" : "watch", + "filename" : "Icon-86@2x.png", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "38mm" + }, + { + "size" : "98x98", + "idiom" : "watch", + "filename" : "Icon-98@2x.png", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "42mm" + }, + { + "size" : "108x108", + "idiom" : "watch", + "filename" : "Icon-216@2x.png", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "44mm" + }, + { + "size" : "1024x1024", + "idiom" : "watch-marketing", + "filename" : "Icon-1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-100@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-100@2x.png new file mode 100644 index 0000000..862d33b Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-100@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png new file mode 100644 index 0000000..5f5f64a Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-216@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-216@2x.png new file mode 100644 index 0000000..58f83c6 Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-216@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-24@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-24@2x.png new file mode 100644 index 0000000..b1d4b0e Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-24@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-27.5@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-27.5@2x.png new file mode 100644 index 0000000..d911a3c Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-27.5@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png new file mode 100644 index 0000000..ea457cd Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png new file mode 100644 index 0000000..4024e4a Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png new file mode 100644 index 0000000..f35c538 Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-86@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-86@2x.png new file mode 100644 index 0000000..ee7b4ea Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-86@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-88@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-88@2x.png new file mode 100644 index 0000000..6022c35 Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-88@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-98@2x.png b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-98@2x.png new file mode 100644 index 0000000..ca29e92 Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/AppIcon.appiconset/Icon-98@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/Contents.json b/ios/app/watchos/app/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/ios/app/watchos/app/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/watchos/app/Assets.xcassets/hangup.imageset/Contents.json b/ios/app/watchos/app/Assets.xcassets/hangup.imageset/Contents.json new file mode 100644 index 0000000..e79f535 --- /dev/null +++ b/ios/app/watchos/app/Assets.xcassets/hangup.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "hangup@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/watchos/app/Assets.xcassets/hangup.imageset/hangup@2x.png b/ios/app/watchos/app/Assets.xcassets/hangup.imageset/hangup@2x.png new file mode 100644 index 0000000..0d89cee Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/hangup.imageset/hangup@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/mute-off.imageset/Contents.json b/ios/app/watchos/app/Assets.xcassets/mute-off.imageset/Contents.json new file mode 100644 index 0000000..8a90fdc --- /dev/null +++ b/ios/app/watchos/app/Assets.xcassets/mute-off.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mute-off@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/watchos/app/Assets.xcassets/mute-off.imageset/mute-off@2x.png b/ios/app/watchos/app/Assets.xcassets/mute-off.imageset/mute-off@2x.png new file mode 100644 index 0000000..fc1f1a7 Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/mute-off.imageset/mute-off@2x.png differ diff --git a/ios/app/watchos/app/Assets.xcassets/mute-on.imageset/Contents.json b/ios/app/watchos/app/Assets.xcassets/mute-on.imageset/Contents.json new file mode 100644 index 0000000..ace7f01 --- /dev/null +++ b/ios/app/watchos/app/Assets.xcassets/mute-on.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mute-on@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/watchos/app/Assets.xcassets/mute-on.imageset/mute-on@2x.png b/ios/app/watchos/app/Assets.xcassets/mute-on.imageset/mute-on@2x.png new file mode 100644 index 0000000..46c1f21 Binary files /dev/null and b/ios/app/watchos/app/Assets.xcassets/mute-on.imageset/mute-on@2x.png differ diff --git a/ios/app/watchos/app/Base.lproj/Interface.storyboard b/ios/app/watchos/app/Base.lproj/Interface.storyboard new file mode 100644 index 0000000..3cdac94 --- /dev/null +++ b/ios/app/watchos/app/Base.lproj/Interface.storyboard @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/app/watchos/app/Info.plist b/ios/app/watchos/app/Info.plist new file mode 100644 index 0000000..0bdc067 --- /dev/null +++ b/ios/app/watchos/app/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Jitsi Meet + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 99.0.0 + CFBundleVersion + 1 + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + WKCompanionAppBundleIdentifier + org.jitsi.meet + WKWatchKitApp + + + diff --git a/ios/app/watchos/extension/Assets.xcassets/Contents.json b/ios/app/watchos/extension/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/ios/app/watchos/extension/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/watchos/extension/Assets.xcassets/jitsi.imageset/Contents.json b/ios/app/watchos/extension/Assets.xcassets/jitsi.imageset/Contents.json new file mode 100644 index 0000000..4a1fb76 --- /dev/null +++ b/ios/app/watchos/extension/Assets.xcassets/jitsi.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "jitsi@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/app/watchos/extension/Assets.xcassets/jitsi.imageset/jitsi@2x.png b/ios/app/watchos/extension/Assets.xcassets/jitsi.imageset/jitsi@2x.png new file mode 100644 index 0000000..059fb5c Binary files /dev/null and b/ios/app/watchos/extension/Assets.xcassets/jitsi.imageset/jitsi@2x.png differ diff --git a/ios/app/watchos/extension/ComplicationController.swift b/ios/app/watchos/extension/ComplicationController.swift new file mode 100644 index 0000000..d5f2b46 --- /dev/null +++ b/ios/app/watchos/extension/ComplicationController.swift @@ -0,0 +1,81 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 ClockKit + + +class ComplicationController: NSObject, CLKComplicationDataSource { + + // MARK: - Timeline Configuration + + func getSupportedTimeTravelDirections(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimeTravelDirections) -> Void) { + handler([]) + } + + func getPrivacyBehavior(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationPrivacyBehavior) -> Void) { + handler(.showOnLockScreen) + } + + // MARK: - Timeline Population + + func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) { + // Call the handler with the current timeline entry + getLocalizableSampleTemplate(for: complication) {template in + guard let template = template else { + handler(nil) + return + } + handler(CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)) + } + } + + func getTimelineEntries(for complication: CLKComplication, before date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) { + // Call the handler with the timeline entries prior to the given date + handler(nil) + } + + func getTimelineEntries(for complication: CLKComplication, after date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) { + // Call the handler with the timeline entries after to the given date + handler(nil) + } + + // MARK: - Placeholder Templates + + func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) { + // This method will be called once per supported complication, and the results will be cached + + let imageProvider = CLKImageProvider(onePieceImage: UIImage(named: "jitsi")!) + if complication.family == .circularSmall { + let small = CLKComplicationTemplateCircularSmallRingImage() + small.imageProvider = imageProvider + small.ringStyle = .closed + small.fillFraction = 0 + handler(small) + } else if complication.family == .utilitarianSmall { + let utilitarian = CLKComplicationTemplateUtilitarianSmallSquare() + utilitarian.imageProvider = imageProvider + handler(utilitarian) + } else if complication.family == .modularSmall { + let modular = CLKComplicationTemplateModularSmallRingImage() + modular.imageProvider = imageProvider + modular.ringStyle = .closed + modular.fillFraction = 0 + handler(modular) + } + } + +} diff --git a/ios/app/watchos/extension/ExtensionDelegate.swift b/ios/app/watchos/extension/ExtensionDelegate.swift new file mode 100644 index 0000000..bb7a5fd --- /dev/null +++ b/ios/app/watchos/extension/ExtensionDelegate.swift @@ -0,0 +1,103 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 WatchConnectivity +import WatchKit + +class ExtensionDelegate: NSObject, WCSessionDelegate, WKExtensionDelegate { + + var currentContext : JitsiMeetContext = JitsiMeetContext() + + static var currentJitsiMeetContext: JitsiMeetContext { + get { + return (WKExtension.shared().delegate as! ExtensionDelegate).currentContext + } + } + + func applicationDidFinishLaunching() { + // Start Watch Connectivity + if WCSession.isSupported() { + let session = WCSession.default + session.delegate = self + session.activate() + } + } + + func handle(_ backgroundTasks: Set) { + // Sent when the system needs to launch the application in the background to process tasks. Tasks arrive in a set, so loop through and process each one. + for task in backgroundTasks { + // Use a switch statement to check the task type + switch task { + case let backgroundTask as WKApplicationRefreshBackgroundTask: + // Be sure to complete the background task once you’re done. + backgroundTask.setTaskCompletedWithSnapshot(false) + case let snapshotTask as WKSnapshotRefreshBackgroundTask: + // Snapshot tasks have a unique completion call, make sure to set your expiration date + snapshotTask.setTaskCompleted(restoredDefaultState: true, estimatedSnapshotExpiration: Date.distantFuture, userInfo: nil) + case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask: + // Be sure to complete the connectivity task once you’re done. + connectivityTask.setTaskCompletedWithSnapshot(false) + case let urlSessionTask as WKURLSessionRefreshBackgroundTask: + // Be sure to complete the URL session task once you’re done. + urlSessionTask.setTaskCompletedWithSnapshot(false) + default: + // make sure to complete unhandled task types + task.setTaskCompletedWithSnapshot(false) + } + } + } + + func session(_ session: WCSession, activationDidCompleteWith + activationState: WCSessionActivationState, error: Error?) { + if let error = error { + print("WATCH Session activation failed with error: \(error.localizedDescription)") + return + } + print("WATCH Session activated with state: \(activationState.rawValue)") + } + + func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) { + DispatchQueue.main.async { + let newContext = JitsiMeetContext(context: applicationContext) + + print("WATCH got new context: \(newContext.description)"); + + // Update context on the root controller which displays the recent list + let controller = WKExtension.shared().rootInterfaceController as! InterfaceController + controller.updateUI(newContext) + + // If the current controller is not the in-call controller and we have a + // conference URL, show the in-call controller + if let currentController = WKExtension.shared().visibleInterfaceController as? InterfaceController { + // Go to the in-call controller only if the conference URL has changed, because the user may have + // clicked the back button + if newContext.conferenceURL != nil + && self.currentContext.conferenceURL != newContext.conferenceURL { + currentController.pushController(withName: "InCallController", context: newContext) + } + } else if let inCallController = WKExtension.shared().visibleInterfaceController as? InCallController { + if newContext.conferenceURL == nil { + inCallController.popToRootController() + } else { + inCallController.updateUI(newContext) + } + } + + self.currentContext = newContext; + } + } +} diff --git a/ios/app/watchos/extension/InCallController.swift b/ios/app/watchos/extension/InCallController.swift new file mode 100644 index 0000000..57c3d3b --- /dev/null +++ b/ios/app/watchos/extension/InCallController.swift @@ -0,0 +1,109 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 WatchConnectivity +import WatchKit +import Foundation + + +class InCallController: WKInterfaceController { + @IBOutlet var mutedButton: WKInterfaceButton! + @IBOutlet var roomLabel: WKInterfaceLabel! + @IBOutlet var timer: WKInterfaceTimer! + + @IBAction func hangupClicked() { + sendCommand(JitsiMeetCommands.CMD_HANG_UP, message: nil) + } + + @IBAction func muteClicked() { + if var micMuted = ExtensionDelegate.currentJitsiMeetContext.micMuted { + micMuted = !micMuted; + sendCommand( + JitsiMeetCommands.CMD_SET_MUTED, + message: [ + "muted": micMuted ? "true" : "false" + ]) + updateMutedButton(withMuted: micMuted) + } + } + + func sendCommand(_ command: JitsiMeetCommands, message: [String : Any]?) { + if WCSession.isSupported() { + let session = WCSession.default + var data = [String: Any]() + + if let sessionID = ExtensionDelegate.currentJitsiMeetContext.sessionID { + if message != nil { + message!.forEach { data[$0] = $1 } + } + + data["command"] = command.rawValue; + data["sessionID"] = sessionID; + + session.sendMessage(data, replyHandler: nil, errorHandler: nil) + } + } + } + + func updateUI(_ newContext: JitsiMeetContext) { + var conferenceURL = newContext.conferenceURL + + if let joinConferenceURL = newContext.joinConferenceURL { + sendCommand(JitsiMeetCommands.CMD_JOIN_CONFERENCE, message: [ "data" : joinConferenceURL ]) + conferenceURL = joinConferenceURL + } + + let newRoomName = conferenceURL != nil ? conferenceURL!.components(separatedBy: "/").last : "" + + roomLabel.setText(newRoomName) + + if let newTimestamp = newContext.conferenceTimestamp { + restartTimer(newTimestamp) + } + if let newMuted = newContext.micMuted { + updateMutedButton(withMuted: newMuted) + } + } + + func restartTimer(_ conferenceTimestamp: Int64) { + if (conferenceTimestamp != 0) { + let newDate = Date(timeIntervalSince1970: TimeInterval(conferenceTimestamp / 1000)) + timer.setDate(newDate) + timer.start(); + print("WATCH timer set date to: \(newDate) and start") + } else { + print("WATCH timer stop") + timer.stop(); + } + } + + func updateMutedButton(withMuted isMuted: Bool) { + if isMuted { + mutedButton.setBackgroundImageNamed("mute-on.png") + } else { + mutedButton.setBackgroundImageNamed("mute-off.png") + } + } + + override func awake(withContext context: Any?) { + super.awake(withContext: context) + + if let data = context as? JitsiMeetContext { + updateUI(data) + } + } +} diff --git a/ios/app/watchos/extension/Info.plist b/ios/app/watchos/extension/Info.plist new file mode 100644 index 0000000..3f172dc --- /dev/null +++ b/ios/app/watchos/extension/Info.plist @@ -0,0 +1,44 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Jitsi Meet Companion Extension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + XPC! + CFBundleShortVersionString + 99.0.0 + CFBundleVersion + 1 + CLKComplicationPrincipalClass + $(PRODUCT_MODULE_NAME).ComplicationController + CLKComplicationSupportedFamilies + + CLKComplicationFamilyModularSmall + CLKComplicationFamilyUtilitarianSmall + CLKComplicationFamilyCircularSmall + + NSExtension + + NSExtensionAttributes + + WKAppBundleIdentifier + org.jitsi.meet.watchkit + + NSExtensionPointIdentifier + com.apple.watchkit + + WKExtensionDelegateClassName + $(PRODUCT_MODULE_NAME).ExtensionDelegate + + diff --git a/ios/app/watchos/extension/InterfaceController.swift b/ios/app/watchos/extension/InterfaceController.swift new file mode 100644 index 0000000..b57219c --- /dev/null +++ b/ios/app/watchos/extension/InterfaceController.swift @@ -0,0 +1,94 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 WatchKit +import WatchConnectivity +import Foundation + + +class InterfaceController: WKInterfaceController { + + @IBOutlet var infoLabel: WKInterfaceLabel! + @IBOutlet var table: WKInterfaceTable! + + override func didAppear(){ + self.updateUI(ExtensionDelegate.currentJitsiMeetContext) + } + + func updateUI(_ newContext:JitsiMeetContext) { + if (newContext.recentURLs == nil || newContext.recentURLs!.count == 0) { + infoLabel.setText("There are no recent meetings. Please use the app on the phone to start a new call.") + + table.setHidden(true) + infoLabel.setHidden(false) + } else { + updateRecents(withRecents: newContext.recentURLs!, currentContext: newContext) + + table.setHidden(false) + infoLabel.setHidden(true) + } + } + + private func updateRecents(withRecents recents: NSArray, currentContext: JitsiMeetContext) { + // Updating the # of rows only if it actually changed prevents from blinking the UI + if (table.numberOfRows != recents.count) { + table.setNumberOfRows(recents.count, withRowType: "MeetingRowType") + } + + for (index, entry) in recents.enumerated() { + let entryDict = entry as! NSDictionary + let roomURL = entryDict["conference"] as! NSString + let timestamp = entryDict["date"] as! NSNumber + + // Prepare values + let room = roomURL.components(separatedBy: "/").last + let date = Date(timeIntervalSince1970: timestamp.doubleValue / 1000) // timestamp is taken with Date.now() in JS, which uses milliseconds + let dateFormatter = DateFormatter() + dateFormatter.timeZone = TimeZone.current + dateFormatter.locale = NSLocale.current + dateFormatter.dateFormat = "HH:mm yyyy-MM-dd" + let strDate = dateFormatter.string(from: date) + + // Update row controller + let controller = table.rowController(at: index) as! MeetingRowController + controller.room = room + controller.roomUrl = roomURL as String + controller.roomLabel.setText(room) + controller.timeLabel.setText(strDate) + + // Change the background for the active meeting + if (controller.roomUrl == currentContext.conferenceURL) { + controller.rowGroup.setBackgroundColor(UIColor(red: 0.125, green: 0.58, blue: 0.98, alpha: 1)) + } else { + controller.rowGroup.setBackgroundColor(UIColor(red: 0.949, green: 0.956, blue: 1, alpha: 0.14)) + } + } + } + + override func contextForSegue(withIdentifier segueIdentifier: String, in table: WKInterfaceTable, rowIndex: Int) -> Any? { + let controller = table.rowController(at: rowIndex) as! MeetingRowController + let currentContext = ExtensionDelegate.currentJitsiMeetContext + + // Copy the current context and add the joinConferenceURL to trigger the command when the in-call screen is displayed + let actionContext = JitsiMeetContext(jmContext: currentContext) + actionContext.joinConferenceURL = controller.roomUrl + + print("WATCH contextForSegue: \(actionContext.description)"); + + return actionContext; + } +} diff --git a/ios/app/watchos/extension/JitsiMeetCommands.swift b/ios/app/watchos/extension/JitsiMeetCommands.swift new file mode 100644 index 0000000..f5d3971 --- /dev/null +++ b/ios/app/watchos/extension/JitsiMeetCommands.swift @@ -0,0 +1,27 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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. + */ + +// This needs to be in sync with features/mobile/watchos/constants.js +enum JitsiMeetCommands : String { + typealias RawValue = String + + case CMD_HANG_UP = "hangup"; + + case CMD_JOIN_CONFERENCE = "joinConference"; + + case CMD_SET_MUTED = "setMuted"; +} diff --git a/ios/app/watchos/extension/JitsiMeetContext.swift b/ios/app/watchos/extension/JitsiMeetContext.swift new file mode 100644 index 0000000..bfdbfdf --- /dev/null +++ b/ios/app/watchos/extension/JitsiMeetContext.swift @@ -0,0 +1,71 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 Foundation + +class JitsiMeetContext { + private var dictionary : [String : Any] + + var joinConferenceURL : String? = nil; + + init() { + dictionary = [:] + } + + init(context: [String : Any]) { + dictionary = context + } + + init(jmContext: JitsiMeetContext) { + dictionary = jmContext.dictionary + joinConferenceURL = jmContext.joinConferenceURL + } + + var conferenceURL : String? { + get { + return dictionary["conferenceURL"] as? String + } + } + + var conferenceTimestamp : Int64? { + get { + return dictionary["conferenceTimestamp"] as? Int64; + } + } + + var sessionID : Int64? { + get { + return dictionary["sessionID"] as? Int64; + } + } + + var recentURLs : NSArray? { + get { + return dictionary["recentURLs"] as? NSArray + } + } + + var micMuted : Bool? { + get { + return (dictionary["micMuted"] as? NSNumber)?.boolValue ?? nil; + } + } + + public var description: String { + return "JitsiMeetContext[conferenceURL: \(String(describing: conferenceURL)), conferenceTimestamp: \(String(describing:conferenceTimestamp)), sessionID: \(String(describing:sessionID)), recentURLs: \(String(describing:recentURLs)), joinConferenceURL: \(String(describing:joinConferenceURL)) " + } +} diff --git a/ios/app/watchos/extension/MeetingRowController.swift b/ios/app/watchos/extension/MeetingRowController.swift new file mode 100644 index 0000000..cf1a8ad --- /dev/null +++ b/ios/app/watchos/extension/MeetingRowController.swift @@ -0,0 +1,27 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 WatchKit + +class MeetingRowController: NSObject { + @IBOutlet var roomLabel: WKInterfaceLabel! + @IBOutlet var timeLabel: WKInterfaceLabel! + @IBOutlet var rowGroup: WKInterfaceGroup! + + var room: String! + var roomUrl: String! +} diff --git a/ios/apple-app-site-association b/ios/apple-app-site-association new file mode 100644 index 0000000..db7bb55 --- /dev/null +++ b/ios/apple-app-site-association @@ -0,0 +1,15 @@ +{ + "applinks": { + "apps": [], + "details": [ + { + "appID": "BQNXB4G3KQ.org.jitsi.JitsiMeet.ios", + "paths": [ "*" ] + }, + { + "appID": "UPXU4CQZ5P.com.atlassian.JitsiMeet.ios", + "paths": [ "*" ] + } + ] + } +} diff --git a/ios/fastlane/Appfile b/ios/fastlane/Appfile new file mode 100644 index 0000000..5366593 --- /dev/null +++ b/ios/fastlane/Appfile @@ -0,0 +1,4 @@ +app_identifier("com.atlassian.JitsiMeet.ios") # The bundle identifier of your app +itc_team_id("304592") # App Store Connect Team ID +team_id("FC967L3QRG") # Developer Portal Team ID + diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile new file mode 100644 index 0000000..2d4b9c2 --- /dev/null +++ b/ios/fastlane/Fastfile @@ -0,0 +1,111 @@ +ENV["FASTLANE_SKIP_UPDATE_CHECK"] = "1" +opt_out_usage + +default_platform(:ios) + +platform :ios do + desc "Push a new beta build to TestFlight" + lane :deploy do + # Make sure we are on a clean tree + ensure_git_status_clean + + # Connect to Apple Store Connect + app_store_connect_api_key( + key_id: ENV["ASC_KEY_ID"], + issuer_id: ENV["ASC_ISSUER_ID"], + key_content: ENV["ASC_KEY_CONTENT"], + duration: 1200, + in_house: false + ) + + # Set the app identifier + update_app_identifier( + xcodeproj: "app/app.xcodeproj", + plist_path: "src/Info.plist", + app_identifier: "com.atlassian.JitsiMeet.ios" + ) + + # Set the broadcast extension identifier + update_app_identifier( + xcodeproj: "app/app.xcodeproj", + plist_path: "broadcast-extension/Info.plist", + app_identifier: "com.atlassian.JitsiMeet.ios.broadcast" + ) + update_info_plist( + xcodeproj: "app/app.xcodeproj", + plist_path: "src/Info.plist", + block: proc do |plist| + plist["RTCScreenSharingExtension"] = "com.atlassian.JitsiMeet.ios.broadcast" + end + ) + + # Set the (watch) app identifier + update_app_identifier( + xcodeproj: "app/app.xcodeproj", + plist_path: "watchos/app/Info.plist", + app_identifier: "com.atlassian.JitsiMeet.ios.watchkit" + ) + + # Set the (watch) extension identifier + update_app_identifier( + xcodeproj: "app/app.xcodeproj", + plist_path: "watchos/extension/Info.plist", + app_identifier: "com.atlassian.JitsiMeet.ios.watchkit.extension" + ) + + update_info_plist( + xcodeproj: "app/app.xcodeproj", + plist_path: "watchos/app/Info.plist", + block: proc do |plist| + plist["WKCompanionAppBundleIdentifier"] = "com.atlassian.JitsiMeet.ios" + end + ) + + update_info_plist( + xcodeproj: "app/app.xcodeproj", + plist_path: "watchos/extension/Info.plist", + block: proc do |plist| + plist["NSExtension"]["NSExtensionAttributes"]["WKAppBundleIdentifier"] = "com.atlassian.JitsiMeet.ios.watchkit" + end + ) + + # Increment the build number by 1 + increment_build_number( + build_number: Time.now.to_i, + xcodeproj: "app/app.xcodeproj" + ) + + # Actually build the app + build_app( + scheme: "JitsiMeet", + include_symbols: true, + export_xcargs: "-allowProvisioningUpdates", + xcodebuild_formatter: "" + ) + + # Upload the build to TestFlight + upload_to_testflight( + beta_app_description: ENV["JITSI_CHANGELOG"], + beta_app_feedback_email: ENV["JITSI_REVIEW_EMAIL"], + beta_app_review_info: { + contact_email: ENV["JITSI_REVIEW_EMAIL"], + contact_first_name: ENV["JITSI_REVIEW_NAME"], + contact_last_name: ENV["JITSI_REVIEW_SURNAME"], + contact_phone: ENV["JITSI_REVIEW_PHONE"], + demo_account_name: ENV["JITSI_DEMO_ACCOUNT"], + demo_account_password: ENV["JITSI_DEMO_PASSWORD"], + }, + changelog: ENV["JITSI_CHANGELOG"], + demo_account_required: false, + distribute_external: true, + groups: ENV["JITSI_BETA_TESTING_GROUPS"], + uses_non_exempt_encryption: false + ) + + upload_symbols_to_crashlytics + + # Cleanup + clean_build_artifacts + reset_git_repo(skip_clean: true) + end +end diff --git a/ios/fastlane/README.md b/ios/fastlane/README.md new file mode 100644 index 0000000..ed34c15 --- /dev/null +++ b/ios/fastlane/README.md @@ -0,0 +1,29 @@ +fastlane documentation +================ +# Installation + +Make sure you have the latest version of the Xcode command line tools installed: + +``` +xcode-select --install +``` + +Install _fastlane_ using +``` +[sudo] gem install fastlane -NV +``` +or alternatively using `brew cask install fastlane` + +# Available Actions +## iOS +### ios deploy +``` +fastlane ios deploy +``` +Push a new beta build to TestFlight + +---- + +This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. +More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). +The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/ios/fastlane/screenshots/Feature-Graphic-1024x500-1-1.png b/ios/fastlane/screenshots/Feature-Graphic-1024x500-1-1.png new file mode 100644 index 0000000..ca0b042 Binary files /dev/null and b/ios/fastlane/screenshots/Feature-Graphic-1024x500-1-1.png differ diff --git a/ios/fastlane/screenshots/Feature-Graphic-1024x500-1.png b/ios/fastlane/screenshots/Feature-Graphic-1024x500-1.png new file mode 100644 index 0000000..d1daf0e Binary files /dev/null and b/ios/fastlane/screenshots/Feature-Graphic-1024x500-1.png differ diff --git a/ios/fastlane/screenshots/Feature-Graphic-1024x500-2.png b/ios/fastlane/screenshots/Feature-Graphic-1024x500-2.png new file mode 100644 index 0000000..ec9d6d1 Binary files /dev/null and b/ios/fastlane/screenshots/Feature-Graphic-1024x500-2.png differ diff --git a/ios/fastlane/screenshots/Feature-Graphic-1024x500-3.png b/ios/fastlane/screenshots/Feature-Graphic-1024x500-3.png new file mode 100644 index 0000000..e3a7ca5 Binary files /dev/null and b/ios/fastlane/screenshots/Feature-Graphic-1024x500-3.png differ diff --git a/ios/fastlane/screenshots/GroupCallIphone8Plus.png b/ios/fastlane/screenshots/GroupCallIphone8Plus.png new file mode 100644 index 0000000..7f6544e Binary files /dev/null and b/ios/fastlane/screenshots/GroupCallIphone8Plus.png differ diff --git a/ios/fastlane/screenshots/GroupCallIphone8PlusDevice.png b/ios/fastlane/screenshots/GroupCallIphone8PlusDevice.png new file mode 100644 index 0000000..99ecb9e Binary files /dev/null and b/ios/fastlane/screenshots/GroupCallIphone8PlusDevice.png differ diff --git a/ios/fastlane/screenshots/MoreMenu8Plus.png b/ios/fastlane/screenshots/MoreMenu8Plus.png new file mode 100644 index 0000000..f4e673d Binary files /dev/null and b/ios/fastlane/screenshots/MoreMenu8Plus.png differ diff --git a/ios/fastlane/screenshots/MoreMenu8PlusDevice.png b/ios/fastlane/screenshots/MoreMenu8PlusDevice.png new file mode 100644 index 0000000..33a2e50 Binary files /dev/null and b/ios/fastlane/screenshots/MoreMenu8PlusDevice.png differ diff --git a/ios/fastlane/screenshots/WelcomePage8Plus.png b/ios/fastlane/screenshots/WelcomePage8Plus.png new file mode 100644 index 0000000..bbd38f0 Binary files /dev/null and b/ios/fastlane/screenshots/WelcomePage8Plus.png differ diff --git a/ios/fastlane/screenshots/WelcomePage8PlusDevice.png b/ios/fastlane/screenshots/WelcomePage8PlusDevice.png new file mode 100644 index 0000000..35829ba Binary files /dev/null and b/ios/fastlane/screenshots/WelcomePage8PlusDevice.png differ diff --git a/ios/fastlane/screenshots/iPad-9.7-inch-In-Call-1.png b/ios/fastlane/screenshots/iPad-9.7-inch-In-Call-1.png new file mode 100644 index 0000000..a0ea791 Binary files /dev/null and b/ios/fastlane/screenshots/iPad-9.7-inch-In-Call-1.png differ diff --git a/ios/fastlane/screenshots/iPad-9.7-inch-In-Call-2.png b/ios/fastlane/screenshots/iPad-9.7-inch-In-Call-2.png new file mode 100644 index 0000000..bc06106 Binary files /dev/null and b/ios/fastlane/screenshots/iPad-9.7-inch-In-Call-2.png differ diff --git a/ios/fastlane/screenshots/iPad-9.7-inch-Welcome.png b/ios/fastlane/screenshots/iPad-9.7-inch-Welcome.png new file mode 100644 index 0000000..8e06f9c Binary files /dev/null and b/ios/fastlane/screenshots/iPad-9.7-inch-Welcome.png differ diff --git a/ios/fastlane/screenshots/iPadCall.png b/ios/fastlane/screenshots/iPadCall.png new file mode 100644 index 0000000..cc98c01 Binary files /dev/null and b/ios/fastlane/screenshots/iPadCall.png differ diff --git a/ios/fastlane/screenshots/iPadCallDevice.png b/ios/fastlane/screenshots/iPadCallDevice.png new file mode 100644 index 0000000..33fdac5 Binary files /dev/null and b/ios/fastlane/screenshots/iPadCallDevice.png differ diff --git a/ios/fastlane/screenshots/iPhone 8 Plus Calendar.png b/ios/fastlane/screenshots/iPhone 8 Plus Calendar.png new file mode 100644 index 0000000..cdf550a Binary files /dev/null and b/ios/fastlane/screenshots/iPhone 8 Plus Calendar.png differ diff --git a/ios/fastlane/screenshots/iPhone 8 Plus Group Call.png b/ios/fastlane/screenshots/iPhone 8 Plus Group Call.png new file mode 100644 index 0000000..ec43876 Binary files /dev/null and b/ios/fastlane/screenshots/iPhone 8 Plus Group Call.png differ diff --git a/ios/fastlane/screenshots/iPhone 8 Plus More.png b/ios/fastlane/screenshots/iPhone 8 Plus More.png new file mode 100644 index 0000000..b70e14d Binary files /dev/null and b/ios/fastlane/screenshots/iPhone 8 Plus More.png differ diff --git a/ios/fastlane/screenshots/iPhone-5.5-inch-In-Call-2.png b/ios/fastlane/screenshots/iPhone-5.5-inch-In-Call-2.png new file mode 100644 index 0000000..1b99365 Binary files /dev/null and b/ios/fastlane/screenshots/iPhone-5.5-inch-In-Call-2.png differ diff --git a/ios/fastlane/screenshots/iPhone-5.5-inch-In-Call.png b/ios/fastlane/screenshots/iPhone-5.5-inch-In-Call.png new file mode 100644 index 0000000..15814de Binary files /dev/null and b/ios/fastlane/screenshots/iPhone-5.5-inch-In-Call.png differ diff --git a/ios/fastlane/screenshots/iPhone-5.5-inch-Welcome.png b/ios/fastlane/screenshots/iPhone-5.5-inch-Welcome.png new file mode 100644 index 0000000..440466a Binary files /dev/null and b/ios/fastlane/screenshots/iPhone-5.5-inch-Welcome.png differ diff --git a/ios/jitsi-meet.xcworkspace/contents.xcworkspacedata b/ios/jitsi-meet.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..8145e61 --- /dev/null +++ b/ios/jitsi-meet.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/ios/jitsi-meet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/jitsi-meet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/jitsi-meet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/jitsi-meet.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/jitsi-meet.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/jitsi-meet.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/patches/ws-tls13.diff b/ios/patches/ws-tls13.diff new file mode 100644 index 0000000..1f04e2e --- /dev/null +++ b/ios/patches/ws-tls13.diff @@ -0,0 +1,15 @@ +diff --git a/SocketRocket/SRSecurityPolicy.m b/SocketRocket/SRSecurityPolicy.m +index 3759d26e..271477e8 100644 +--- a/SocketRocket/SRSecurityPolicy.m ++++ b/SocketRocket/SRSecurityPolicy.m +@@ -56,8 +56,8 @@ - (instancetype)init + + - (void)updateSecurityOptionsInStream:(NSStream *)stream + { +- // Enforce TLS 1.2 +- [stream setProperty:(__bridge id)CFSTR("kCFStreamSocketSecurityLevelTLSv1_2") forKey:(__bridge id)kCFStreamPropertySocketSecurityLevel]; ++ // Enforce TLS >= 1.2 ++ [stream setProperty:(__bridge id)kCFStreamSocketSecurityLevelNegotiatedSSL forKey:(__bridge id)kCFStreamPropertySocketSecurityLevel]; + + // Validate certificate chain for this stream if enabled. + NSDictionary *sslOptions = @{ (__bridge NSString *)kCFStreamSSLValidatesCertificateChain : @(self.certificateChainValidationEnabled) }; diff --git a/ios/scripts/fixup-ats.sh b/ios/scripts/fixup-ats.sh new file mode 100755 index 0000000..0816188 --- /dev/null +++ b/ios/scripts/fixup-ats.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# This script gets executed from Xcode to disable ATS (App Transport Security) +# on Debug builds. Doing this allows loading resources over HTTP, such as the +# JS bundle. + + +set -x + +case "$CONFIGURATION" in + Debug) + # Speed up build times by skipping the creation of the offline package for debug + # builds on the simulator since the packager is supposed to be running anyways. + if [[ "$PLATFORM_NAME" == *simulator ]]; then + echo "Skipping bundling for Simulator platform" + exit 0; + fi + + DEV=true + ;; + "") + echo "$0 must be invoked by Xcode" + exit 1 + ;; + *) + DEV=false + ;; +esac + +DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH + +if [[ "$CONFIGURATION" = "Debug" && ! "$PLATFORM_NAME" == *simulator ]]; then + PLISTBUDDY='/usr/libexec/PlistBuddy' + PLIST=$TARGET_BUILD_DIR/$INFOPLIST_PATH + `$PLISTBUDDY -c "Add NSAppTransportSecurity:NSAllowsArbitraryLoads bool true" "$PLIST"` || true +fi diff --git a/ios/scripts/release-sdk-lite.sh b/ios/scripts/release-sdk-lite.sh new file mode 100755 index 0000000..13f39c5 --- /dev/null +++ b/ios/scripts/release-sdk-lite.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +set -e -u -x + +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) +PROJECT_REPO=$(realpath ${THIS_DIR}/../..) +RELEASE_REPO=$(realpath ${THIS_DIR}/../../../jitsi-meet-ios-sdk-releases) +DEFAULT_SDK_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" ${THIS_DIR}/../sdk/src/Lite-Info.plist) +SDK_VERSION=${OVERRIDE_SDK_VERSION:-${DEFAULT_SDK_VERSION}} + +echo "Releasing Jitsi Meet SDK Lite ${SDK_VERSION}" + +pushd ${RELEASE_REPO} + +# Generate podspec file +cat JitsiMeetSDKLite.podspec.tpl | sed -e s/VERSION/${SDK_VERSION}-lite/g > JitsiMeetSDKLite.podspec + +# Cleanup +rm -rf lite/Frameworks/* + +popd + +# Build the SDK +pushd ${PROJECT_REPO} +rm -rf ios/sdk/out +xcodebuild clean \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDKLite +xcodebuild archive \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDKLite \ + -configuration Release \ + -sdk iphonesimulator \ + -destination='generic/platform=iOS Simulator' \ + -archivePath ios/sdk/out/ios-simulator \ + SKIP_INSTALL=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES +xcodebuild archive \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDKLite \ + -configuration Release \ + -sdk iphoneos \ + -destination='generic/platform=iOS' \ + -archivePath ios/sdk/out/ios-device \ + SKIP_INSTALL=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES +xcodebuild -create-xcframework \ + -framework ios/sdk/out/ios-device.xcarchive/Products/Library/Frameworks/JitsiMeetSDK.framework \ + -framework ios/sdk/out/ios-simulator.xcarchive/Products/Library/Frameworks/JitsiMeetSDK.framework \ + -output ios/sdk/out/JitsiMeetSDK.xcframework +popd + +pushd ${RELEASE_REPO} + +# Put the new files in the repo +cp -a ${PROJECT_REPO}/ios/sdk/out/JitsiMeetSDK.xcframework lite/Frameworks/ +cp -a ${PROJECT_REPO}/ios/Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework lite/Frameworks/ + +# Add all files to git +git add -A . +git commit --allow-empty -m "${SDK_VERSION} lite" +git tag "${SDK_VERSION}-lite" + +popd + +echo "Finished! Don't forget to push the tags and releases repo artifacts." +echo "The new pod can be pushed to CocoaPods by doing: pod trunk push JitsiMeetSDKLite.podspec" diff --git a/ios/scripts/release-sdk.sh b/ios/scripts/release-sdk.sh new file mode 100755 index 0000000..5ff5227 --- /dev/null +++ b/ios/scripts/release-sdk.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +set -e -u -x + +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) +PROJECT_REPO=$(realpath ${THIS_DIR}/../..) +RELEASE_REPO=$(realpath ${THIS_DIR}/../../../jitsi-meet-ios-sdk-releases) +DEFAULT_SDK_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" ${THIS_DIR}/../sdk/src/Info.plist) +SDK_VERSION=${OVERRIDE_SDK_VERSION:-${DEFAULT_SDK_VERSION}} + +echo "Releasing Jitsi Meet SDK ${SDK_VERSION}" + +pushd ${RELEASE_REPO} + +# Generate podspec file +cat JitsiMeetSDK.podspec.tpl | sed -e s/VERSION/${SDK_VERSION}/g > JitsiMeetSDK.podspec + +# Cleanup +rm -rf Frameworks/* + +popd + +# Build the SDK +pushd ${PROJECT_REPO} +rm -rf ios/sdk/out +xcodebuild clean \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDK +xcodebuild archive \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDK \ + -configuration Release \ + -sdk iphonesimulator \ + -destination='generic/platform=iOS Simulator' \ + -archivePath ios/sdk/out/ios-simulator \ + SKIP_INSTALL=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES +xcodebuild archive \ + -workspace ios/jitsi-meet.xcworkspace \ + -scheme JitsiMeetSDK \ + -configuration Release \ + -sdk iphoneos \ + -destination='generic/platform=iOS' \ + -archivePath ios/sdk/out/ios-device \ + SKIP_INSTALL=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES +xcodebuild -create-xcframework \ + -framework ios/sdk/out/ios-device.xcarchive/Products/Library/Frameworks/JitsiMeetSDK.framework \ + -framework ios/sdk/out/ios-simulator.xcarchive/Products/Library/Frameworks/JitsiMeetSDK.framework \ + -output ios/sdk/out/JitsiMeetSDK.xcframework +popd + +pushd ${RELEASE_REPO} + +# Put the new files in the repo +cp -a ${PROJECT_REPO}/ios/sdk/out/JitsiMeetSDK.xcframework Frameworks/ +cp -a ${PROJECT_REPO}/ios/Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework Frameworks/ + +# Add all files to git +git add -A . +git commit --allow-empty -m "${SDK_VERSION}" +git tag "${SDK_VERSION}" + +popd + +echo "Finished! Don't forget to push the tags and releases repo artifacts." +echo "The new pod can be pushed to CocoaPods by doing: pod trunk push JitsiMeetSDK.podspec" diff --git a/ios/scripts/run-packager-helper.command b/ios/scripts/run-packager-helper.command new file mode 100755 index 0000000..cf9ebe0 --- /dev/null +++ b/ios/scripts/run-packager-helper.command @@ -0,0 +1,5 @@ +#!/bin/bash + +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) + +exec ${THIS_DIR}/../../node_modules/react-native/scripts/packager.sh --reset-cache diff --git a/ios/scripts/run-packager.sh b/ios/scripts/run-packager.sh new file mode 100755 index 0000000..70405bc --- /dev/null +++ b/ios/scripts/run-packager.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# This script is executed from Xcode to start the React packager for Debug +# targets. + +THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd) + +export RCT_METRO_PORT="${RCT_METRO_PORT:=8081}" +echo "export RCT_METRO_PORT=${RCT_METRO_PORT}" > "${SRCROOT}/../../node_modules/react-native/scripts/.packager.env" + +if [[ "$CONFIGURATION" = "Debug" ]]; then + if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then + if ! curl -s "http://localhost:${RCT_METRO_PORT}/status" | grep -q "packager-status:running" ; then + echo "Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly" + exit 2 + fi + else + open -g "$THIS_DIR/run-packager-helper.command" || echo "Can't start packager automatically" + fi +fi diff --git a/ios/sdk/sdk.xcodeproj/project.pbxproj b/ios/sdk/sdk.xcodeproj/project.pbxproj new file mode 100644 index 0000000..17d6580 --- /dev/null +++ b/ios/sdk/sdk.xcodeproj/project.pbxproj @@ -0,0 +1,1048 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 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, ); }; }; + 0BB9AD7B1F5EC8F4001C08DB /* CallKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BB9AD7A1F5EC8F4001C08DB /* CallKit.m */; }; + 0BB9AD7D1F60356D001C08DB /* AppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BB9AD7C1F60356D001C08DB /* AppInfo.m */; }; + 0BC4B8691F8C03A700CE8B21 /* CallKitIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 0BC4B8681F8C01E100CE8B21 /* CallKitIcon.png */; }; + 0BCA495F1EC4B6C600B793EE /* AudioMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495C1EC4B6C600B793EE /* AudioMode.m */; }; + 0BCA49601EC4B6C600B793EE /* POSIX.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495D1EC4B6C600B793EE /* POSIX.m */; }; + 0BCA49611EC4B6C600B793EE /* Proximity.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495E1EC4B6C600B793EE /* Proximity.m */; }; + 0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3453F4A32680898C4A40E821 /* libPods-JitsiMeetSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 927ED7DF018DE5E12C4C3404 /* libPods-JitsiMeetSDK.a */; }; + 4E0EF63028CA2FB3005D1B03 /* JMCallKitEmitter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E0EF62E28CA2FB3005D1B03 /* JMCallKitEmitter.h */; }; + 4E0EF63128CA2FB3005D1B03 /* JMCallKitEmitter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E0EF62E28CA2FB3005D1B03 /* JMCallKitEmitter.h */; }; + 4E0EF63228CA2FB3005D1B03 /* JMCallKitEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0EF62F28CA2FB3005D1B03 /* JMCallKitEmitter.m */; }; + 4E0EF63328CA2FB3005D1B03 /* JMCallKitEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0EF62F28CA2FB3005D1B03 /* JMCallKitEmitter.m */; }; + 4E0EF63528CA317E005D1B03 /* JMCallKitListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E0EF63428CA317E005D1B03 /* JMCallKitListener.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E0EF63628CA317E005D1B03 /* JMCallKitListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E0EF63428CA317E005D1B03 /* JMCallKitListener.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E0EF63928CA4069005D1B03 /* JMCallKitProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E0EF63728CA4069005D1B03 /* JMCallKitProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E0EF63A28CA4069005D1B03 /* JMCallKitProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E0EF63728CA4069005D1B03 /* JMCallKitProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E0EF63B28CA4069005D1B03 /* JMCallKitProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0EF63828CA4069005D1B03 /* JMCallKitProxy.m */; }; + 4E0EF63C28CA4069005D1B03 /* JMCallKitProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0EF63828CA4069005D1B03 /* JMCallKitProxy.m */; }; + 4E51B76425E5345E0038575A /* ScheenshareEventEmiter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */; }; + 4E51B76525E5345E0038575A /* ScheenshareEventEmiter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */; }; + 4E812F3328F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */; }; + 4E812F3428F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */; }; + 4E812F3928F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */; }; + 4E812F3A28F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */; }; + 4ED4FFF32721B9B90074E620 /* JitsiAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4ED4FFF42721B9B90074E620 /* JitsiAudioSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */; }; + 6F08DF7D4458EE3CF3F36F6D /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; + 9A8EE79C77C17743BB66E8BD /* libPods-JitsiMeetSDKLite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B46497DE9A95BDF5E312AF48 /* libPods-JitsiMeetSDKLite.a */; }; + A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */ = {isa = PBXBuildFile; fileRef = A4A934E8212F3ADB001E9388 /* Dropbox.m */; }; + C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5B2053091D0040BE68 /* image-resize@2x.png */; }; + C6245F5E2053091D0040BE68 /* image-resize@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5C2053091D0040BE68 /* image-resize@3x.png */; }; + C6A34261204EF76800E062DD /* DragGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6A3425E204EF76800E062DD /* DragGestureController.swift */; }; + C6CC49AF207412CF000DFA42 /* PiPViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6CC49AE207412CF000DFA42 /* PiPViewCoordinator.swift */; }; + C81E9AB925AC5AD800B134D9 /* ExternalAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = C81E9AB825AC5AD800B134D9 /* ExternalAPI.h */; }; + C8AFD27F2462C613000293D2 /* InfoPlistUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = C8AFD27D2462C613000293D2 /* InfoPlistUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8AFD2802462C613000293D2 /* InfoPlistUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = C8AFD27E2462C613000293D2 /* InfoPlistUtil.m */; }; + DE438CDA2350934700DD541D /* JavaScriptSandbox.m in Sources */ = {isa = PBXBuildFile; fileRef = DE438CD82350934700DD541D /* JavaScriptSandbox.m */; }; + DE65AACA2317FFCD00290BEC /* LogUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = DE65AAC92317FFCD00290BEC /* LogUtils.h */; }; + DE65AACC2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DE65AACB2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h */; }; + DE762DB422AFDE76000DEBD6 /* JitsiMeetUserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = DE762DB322AFDE76000DEBD6 /* JitsiMeetUserInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE762DB622AFDE8D000DEBD6 /* JitsiMeetUserInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = DE762DB522AFDE8D000DEBD6 /* JitsiMeetUserInfo.m */; }; + DE81A2D42316AC4D00AE1940 /* JitsiMeetLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DE81A2D22316AC4D00AE1940 /* JitsiMeetLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE81A2D52316AC4D00AE1940 /* JitsiMeetLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2D32316AC4D00AE1940 /* JitsiMeetLogger.m */; }; + DE81A2D92316AC7600AE1940 /* LogBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2D72316AC7600AE1940 /* LogBridge.m */; }; + DE81A2DE2317ED5400AE1940 /* JitsiMeetBaseLogHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = DE81A2DC2317ED5400AE1940 /* JitsiMeetBaseLogHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 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 */; }; + DE9A0136289A9A9A00E41CBB /* JitsiMeetBaseLogHandler+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DE65AACB2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h */; }; + DE9A0138289A9A9A00E41CBB /* JitsiMeetViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9A0139289A9A9A00E41CBB /* JitsiAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9A013B289A9A9A00E41CBB /* JitsiMeet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9A013C289A9A9A00E41CBB /* JitsiMeetLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DE81A2D22316AC4D00AE1940 /* JitsiMeetLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9A013D289A9A9A00E41CBB /* LogUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = DE65AAC92317FFCD00290BEC /* LogUtils.h */; }; + DE9A013F289A9A9A00E41CBB /* JitsiMeetConferenceOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DEAD3224220C497000E93636 /* JitsiMeetConferenceOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9A0140289A9A9A00E41CBB /* ExternalAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = C81E9AB825AC5AD800B134D9 /* ExternalAPI.h */; }; + DE9A0141289A9A9A00E41CBB /* InfoPlistUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = C8AFD27D2462C613000293D2 /* InfoPlistUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9A0143289A9A9A00E41CBB /* CallKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BB9AD7A1F5EC8F4001C08DB /* CallKit.m */; }; + DE9A0144289A9A9A00E41CBB /* JitsiMeetBaseLogHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2DD2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m */; }; + 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 */; }; + DE9A0150289A9A9A00E41CBB /* PiPViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6CC49AE207412CF000DFA42 /* PiPViewCoordinator.swift */; }; + DE9A0151289A9A9A00E41CBB /* LocaleDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFC743D21B178FA00E4DD96 /* LocaleDetector.m */; }; + DE9A0152289A9A9A00E41CBB /* AudioMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495C1EC4B6C600B793EE /* AudioMode.m */; }; + DE9A0153289A9A9A00E41CBB /* Proximity.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BCA495E1EC4B6C600B793EE /* Proximity.m */; }; + DE9A0155289A9A9A00E41CBB /* ReactUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFE535521FB2E8300011A3A /* ReactUtils.m */; }; + DE9A0157289A9A9A00E41CBB /* DragGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6A3425E204EF76800E062DD /* DragGestureController.swift */; }; + DE9A0158289A9A9A00E41CBB /* ScheenshareEventEmiter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */; }; + DE9A015C289A9A9A00E41CBB /* JitsiMeetLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DE81A2D32316AC4D00AE1940 /* JitsiMeetLogger.m */; }; + DE9A015E289A9A9A00E41CBB /* JitsiMeetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */; }; + DE9A015F289A9A9A00E41CBB /* JitsiMeet.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFE535321FB1BF800011A3A /* JitsiMeet.m */; }; + DE9A0160289A9A9A00E41CBB /* JavaScriptSandbox.m in Sources */ = {isa = PBXBuildFile; fileRef = DE438CD82350934700DD541D /* JavaScriptSandbox.m */; }; + DE9A0162289A9A9A00E41CBB /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB9AD781F5EC6D7001C08DB /* Intents.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + DE9A0163289A9A9A00E41CBB /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB9AD761F5EC6CE001C08DB /* CallKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + DE9A0166289A9A9A00E41CBB /* CallKitIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 0BC4B8681F8C01E100CE8B21 /* CallKitIcon.png */; }; + DE9A0167289A9A9A00E41CBB /* image-resize@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5B2053091D0040BE68 /* image-resize@2x.png */; }; + DE9A0168289A9A9A00E41CBB /* image-resize@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6245F5C2053091D0040BE68 /* image-resize@3x.png */; }; + 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 */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 09A78016288AF50ACD28A10D /* Pods-JitsiMeetSDK.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDK.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK.debug.xcconfig"; sourceTree = ""; }; + 0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JitsiMeetView.h; sourceTree = ""; }; + 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; }; + 0BB9AD7A1F5EC8F4001C08DB /* CallKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallKit.m; sourceTree = ""; }; + 0BB9AD7C1F60356D001C08DB /* AppInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppInfo.m; sourceTree = ""; }; + 0BC4B8681F8C01E100CE8B21 /* CallKitIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = CallKitIcon.png; path = "../../react/features/mobile/call-integration/CallKitIcon.png"; sourceTree = ""; }; + 0BCA495C1EC4B6C600B793EE /* AudioMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioMode.m; sourceTree = ""; }; + 0BCA495D1EC4B6C600B793EE /* POSIX.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = POSIX.m; sourceTree = ""; }; + 0BCA495E1EC4B6C600B793EE /* Proximity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Proximity.m; sourceTree = ""; }; + 0BD906E51EC0C00300C8C18E /* JitsiMeetSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JitsiMeetSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeet.h; sourceTree = ""; }; + 0BD906E91EC0C00300C8C18E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4E0EF62E28CA2FB3005D1B03 /* JMCallKitEmitter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JMCallKitEmitter.h; sourceTree = ""; }; + 4E0EF62F28CA2FB3005D1B03 /* JMCallKitEmitter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JMCallKitEmitter.m; sourceTree = ""; }; + 4E0EF63428CA317E005D1B03 /* JMCallKitListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JMCallKitListener.h; sourceTree = ""; }; + 4E0EF63728CA4069005D1B03 /* JMCallKitProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JMCallKitProxy.h; sourceTree = ""; }; + 4E0EF63828CA4069005D1B03 /* JMCallKitProxy.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JMCallKitProxy.m; sourceTree = ""; }; + 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScheenshareEventEmiter.h; sourceTree = ""; }; + 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScheenshareEventEmiter.m; sourceTree = ""; }; + 4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JitsiMeetView+Private.h"; sourceTree = ""; }; + 4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "JitsiMeetView+Private.m"; sourceTree = ""; }; + 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiAudioSession.h; sourceTree = ""; }; + 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiAudioSession.m; sourceTree = ""; }; + 4ED4FFF52721BAE10074E620 /* JitsiAudioSession+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiAudioSession+Private.h"; sourceTree = ""; }; + 86389F55993FAAF6AEB3FA3E /* Pods-JitsiMeetSDKLite.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDKLite.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDKLite/Pods-JitsiMeetSDKLite.release.xcconfig"; sourceTree = ""; }; + 891FE43DAD30BC8976683100 /* Pods-JitsiMeetSDK.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDK.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK.release.xcconfig"; sourceTree = ""; }; + 8F48C340DE0D91D1012976C5 /* Pods-JitsiMeetSDKLite.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeetSDKLite.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeetSDKLite/Pods-JitsiMeetSDKLite.debug.xcconfig"; sourceTree = ""; }; + 927ED7DF018DE5E12C4C3404 /* libPods-JitsiMeetSDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-JitsiMeetSDK.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = ""; }; + 9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.release.xcconfig"; sourceTree = ""; }; + A4A934E8212F3ADB001E9388 /* Dropbox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Dropbox.m; sourceTree = ""; }; + A4A934EB21349A06001E9388 /* Dropbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dropbox.h; sourceTree = ""; }; + B46497DE9A95BDF5E312AF48 /* libPods-JitsiMeetSDKLite.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-JitsiMeetSDKLite.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + C6245F5B2053091D0040BE68 /* image-resize@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "image-resize@2x.png"; path = "src/picture-in-picture/image-resize@2x.png"; sourceTree = ""; }; + C6245F5C2053091D0040BE68 /* image-resize@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "image-resize@3x.png"; path = "src/picture-in-picture/image-resize@3x.png"; sourceTree = ""; }; + C6A3425E204EF76800E062DD /* DragGestureController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DragGestureController.swift; sourceTree = ""; }; + C6CC49AE207412CF000DFA42 /* PiPViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PiPViewCoordinator.swift; sourceTree = ""; }; + C81E9AB825AC5AD800B134D9 /* ExternalAPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExternalAPI.h; sourceTree = ""; }; + C8AFD27D2462C613000293D2 /* InfoPlistUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InfoPlistUtil.h; sourceTree = ""; }; + C8AFD27E2462C613000293D2 /* InfoPlistUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InfoPlistUtil.m; sourceTree = ""; }; + DE438CD82350934700DD541D /* JavaScriptSandbox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JavaScriptSandbox.m; sourceTree = ""; }; + DE65AAC92317FFCD00290BEC /* LogUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LogUtils.h; sourceTree = ""; }; + DE65AACB2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiMeetBaseLogHandler+Private.h"; sourceTree = ""; }; + DE762DB322AFDE76000DEBD6 /* JitsiMeetUserInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetUserInfo.h; sourceTree = ""; }; + DE762DB522AFDE8D000DEBD6 /* JitsiMeetUserInfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetUserInfo.m; sourceTree = ""; }; + DE762DB722AFE166000DEBD6 /* JitsiMeetUserInfo+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JitsiMeetUserInfo+Private.h"; sourceTree = ""; }; + DE81A2D22316AC4D00AE1940 /* JitsiMeetLogger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetLogger.h; sourceTree = ""; }; + DE81A2D32316AC4D00AE1940 /* JitsiMeetLogger.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetLogger.m; sourceTree = ""; }; + DE81A2D72316AC7600AE1940 /* LogBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LogBridge.m; sourceTree = ""; }; + DE81A2DC2317ED5400AE1940 /* JitsiMeetBaseLogHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetBaseLogHandler.h; sourceTree = ""; }; + DE81A2DD2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JitsiMeetBaseLogHandler.m; sourceTree = ""; }; + DE9A016F289A9A9A00E41CBB /* JitsiMeetSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JitsiMeetSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DE9A0170289A9A9A00E41CBB /* Lite-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Lite-Info.plist"; path = "/Users/saghul/work/jitsi/jitsi-meet-prs/ios/sdk/src/Lite-Info.plist"; sourceTree = ""; }; + DEA9F283258A5D9900D4CD74 /* JitsiMeetSDK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeetSDK.h; sourceTree = ""; }; + 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 = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0BD906E11EC0C00300C8C18E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0BB9AD791F5EC6D7001C08DB /* Intents.framework in Frameworks */, + 0BB9AD771F5EC6CE001C08DB /* CallKit.framework in Frameworks */, + 6F08DF7D4458EE3CF3F36F6D /* BuildFile in Frameworks */, + 3453F4A32680898C4A40E821 /* libPods-JitsiMeetSDK.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE9A0161289A9A9A00E41CBB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DE9A0162289A9A9A00E41CBB /* Intents.framework in Frameworks */, + DE9A0163289A9A9A00E41CBB /* CallKit.framework in Frameworks */, + 9A8EE79C77C17743BB66E8BD /* libPods-JitsiMeetSDKLite.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0BCA49681EC4BBE500B793EE /* Resources */ = { + isa = PBXGroup; + children = ( + 0BC4B8681F8C01E100CE8B21 /* CallKitIcon.png */, + C6245F5B2053091D0040BE68 /* image-resize@2x.png */, + C6245F5C2053091D0040BE68 /* image-resize@3x.png */, + ); + name = Resources; + sourceTree = ""; + }; + 0BD906DB1EC0C00300C8C18E = { + isa = PBXGroup; + children = ( + 9C3C6FA2341729836589B856 /* Frameworks */, + C5E72ADFC30ED96F9B35F076 /* Pods */, + 0BD906E61EC0C00300C8C18E /* Products */, + 0BCA49681EC4BBE500B793EE /* Resources */, + 0BD906E71EC0C00300C8C18E /* src */, + ); + sourceTree = ""; + }; + 0BD906E61EC0C00300C8C18E /* Products */ = { + isa = PBXGroup; + children = ( + 0BD906E51EC0C00300C8C18E /* JitsiMeetSDK.framework */, + DE9A016F289A9A9A00E41CBB /* JitsiMeetSDK.framework */, + ); + name = Products; + sourceTree = ""; + }; + 0BD906E71EC0C00300C8C18E /* src */ = { + isa = PBXGroup; + children = ( + 0BB9AD7C1F60356D001C08DB /* AppInfo.m */, + 0BCA495C1EC4B6C600B793EE /* AudioMode.m */, + C69EFA02209A0EFD0027712B /* callkit */, + A4A934E7212F3AB8001E9388 /* dropbox */, + 0BD906E91EC0C00300C8C18E /* Info.plist */, + DE438CD82350934700DD541D /* JavaScriptSandbox.m */, + 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */, + DEFE535821FB311F00011A3A /* JitsiMeet+Private.h */, + DEA9F283258A5D9900D4CD74 /* JitsiMeetSDK.h */, + DEFE535321FB1BF800011A3A /* JitsiMeet.m */, + 4ED4FFF12721B9B90074E620 /* JitsiAudioSession.h */, + 4ED4FFF52721BAE10074E620 /* JitsiAudioSession+Private.h */, + 4ED4FFF22721B9B90074E620 /* JitsiAudioSession.m */, + DEAD3224220C497000E93636 /* JitsiMeetConferenceOptions.h */, + DEAD3228220C734300E93636 /* JitsiMeetConferenceOptions+Private.h */, + DEAD3225220C497000E93636 /* JitsiMeetConferenceOptions.m */, + DE762DB322AFDE76000DEBD6 /* JitsiMeetUserInfo.h */, + DE762DB722AFE166000DEBD6 /* JitsiMeetUserInfo+Private.h */, + DE762DB522AFDE8D000DEBD6 /* JitsiMeetUserInfo.m */, + DE81A2D22316AC4D00AE1940 /* JitsiMeetLogger.h */, + DE81A2D32316AC4D00AE1940 /* JitsiMeetLogger.m */, + DE81A2DC2317ED5400AE1940 /* JitsiMeetBaseLogHandler.h */, + DE65AACB2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h */, + DE81A2DD2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m */, + 4E812F3228F9A4290087ACC9 /* JitsiMeetView+Private.h */, + 4E812F3628F9A4ED0087ACC9 /* JitsiMeetView+Private.m */, + 0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */, + 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 */, + 0BCA495D1EC4B6C600B793EE /* POSIX.m */, + 0BCA495E1EC4B6C600B793EE /* Proximity.m */, + DEFE535721FB2E9E00011A3A /* ReactUtils.h */, + DEFE535521FB2E8300011A3A /* ReactUtils.m */, + 0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */, + 0B93EF7D1EC9DDCD0030D24D /* RCTBridgeWrapper.m */, + C8AFD27D2462C613000293D2 /* InfoPlistUtil.h */, + C8AFD27E2462C613000293D2 /* InfoPlistUtil.m */, + C81E9AB825AC5AD800B134D9 /* ExternalAPI.h */, + 0BA13D301EE83FF8007BEF7F /* ExternalAPI.m */, + 4E51B76225E5345E0038575A /* ScheenshareEventEmiter.h */, + 4E51B76325E5345E0038575A /* ScheenshareEventEmiter.m */, + DE9A0170289A9A9A00E41CBB /* Lite-Info.plist */, + ); + path = src; + sourceTree = ""; + }; + 9C3C6FA2341729836589B856 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0BB9AD761F5EC6CE001C08DB /* CallKit.framework */, + 0B93EF7A1EC608550030D24D /* CoreText.framework */, + 0BB9AD781F5EC6D7001C08DB /* Intents.framework */, + B46497DE9A95BDF5E312AF48 /* libPods-JitsiMeetSDKLite.a */, + 927ED7DF018DE5E12C4C3404 /* libPods-JitsiMeetSDK.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + A4A934E7212F3AB8001E9388 /* dropbox */ = { + isa = PBXGroup; + children = ( + A4A934EB21349A06001E9388 /* Dropbox.h */, + A4A934E8212F3ADB001E9388 /* Dropbox.m */, + ); + path = dropbox; + sourceTree = ""; + }; + C5E72ADFC30ED96F9B35F076 /* Pods */ = { + isa = PBXGroup; + children = ( + 98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */, + 9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */, + 09A78016288AF50ACD28A10D /* Pods-JitsiMeetSDK.debug.xcconfig */, + 891FE43DAD30BC8976683100 /* Pods-JitsiMeetSDK.release.xcconfig */, + 8F48C340DE0D91D1012976C5 /* Pods-JitsiMeetSDKLite.debug.xcconfig */, + 86389F55993FAAF6AEB3FA3E /* Pods-JitsiMeetSDKLite.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + C69EFA02209A0EFD0027712B /* callkit */ = { + isa = PBXGroup; + children = ( + 0BB9AD7A1F5EC8F4001C08DB /* CallKit.m */, + 4E0EF62E28CA2FB3005D1B03 /* JMCallKitEmitter.h */, + 4E0EF62F28CA2FB3005D1B03 /* JMCallKitEmitter.m */, + 4E0EF63428CA317E005D1B03 /* JMCallKitListener.h */, + 4E0EF63728CA4069005D1B03 /* JMCallKitProxy.h */, + 4E0EF63828CA4069005D1B03 /* JMCallKitProxy.m */, + ); + path = callkit; + sourceTree = ""; + }; + C6A3426B204F127900E062DD /* picture-in-picture */ = { + isa = PBXGroup; + children = ( + C6A3425E204EF76800E062DD /* DragGestureController.swift */, + C6CC49AE207412CF000DFA42 /* PiPViewCoordinator.swift */, + ); + path = "picture-in-picture"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0BD906E21EC0C00300C8C18E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + 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 */, + DE65AACC2318028300290BEC /* JitsiMeetBaseLogHandler+Private.h in Headers */, + 0B412F221EDEF6EA00B1A0A6 /* JitsiMeetViewDelegate.h in Headers */, + 4E0EF63528CA317E005D1B03 /* JMCallKitListener.h in Headers */, + 4E0EF63028CA2FB3005D1B03 /* JMCallKitEmitter.h in Headers */, + 4ED4FFF32721B9B90074E620 /* JitsiAudioSession.h in Headers */, + 4E0EF63928CA4069005D1B03 /* JMCallKitProxy.h in Headers */, + 0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */, + DE81A2D42316AC4D00AE1940 /* JitsiMeetLogger.h in Headers */, + DE65AACA2317FFCD00290BEC /* LogUtils.h in Headers */, + DEAD3226220C497000E93636 /* JitsiMeetConferenceOptions.h in Headers */, + C81E9AB925AC5AD800B134D9 /* ExternalAPI.h in Headers */, + C8AFD27F2462C613000293D2 /* InfoPlistUtil.h in Headers */, + 4E812F3328F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE9A012F289A9A9A00E41CBB /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + 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 */, + DE9A0136289A9A9A00E41CBB /* JitsiMeetBaseLogHandler+Private.h in Headers */, + DE9A0138289A9A9A00E41CBB /* JitsiMeetViewDelegate.h in Headers */, + 4E0EF63628CA317E005D1B03 /* JMCallKitListener.h in Headers */, + 4E0EF63128CA2FB3005D1B03 /* JMCallKitEmitter.h in Headers */, + DE9A0139289A9A9A00E41CBB /* JitsiAudioSession.h in Headers */, + 4E0EF63A28CA4069005D1B03 /* JMCallKitProxy.h in Headers */, + DE9A013B289A9A9A00E41CBB /* JitsiMeet.h in Headers */, + DE9A013C289A9A9A00E41CBB /* JitsiMeetLogger.h in Headers */, + DE9A013D289A9A9A00E41CBB /* LogUtils.h in Headers */, + DE9A013F289A9A9A00E41CBB /* JitsiMeetConferenceOptions.h in Headers */, + DE9A0140289A9A9A00E41CBB /* ExternalAPI.h in Headers */, + DE9A0141289A9A9A00E41CBB /* InfoPlistUtil.h in Headers */, + 4E812F3428F9A4290087ACC9 /* JitsiMeetView+Private.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0BD906E41EC0C00300C8C18E /* JitsiMeetSDK */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0BD906ED1EC0C00300C8C18E /* Build configuration list for PBXNativeTarget "JitsiMeetSDK" */; + buildPhases = ( + 26796D8589142D80C8AFDA51 /* [CP] Check Pods Manifest.lock */, + 0BD906E21EC0C00300C8C18E /* Headers */, + 0BD906E01EC0C00300C8C18E /* Sources */, + 0BD906E11EC0C00300C8C18E /* Frameworks */, + 0BD906E31EC0C00300C8C18E /* Resources */, + DE17D0D426E0B86300F77E2E /* Copy sounds */, + 0BCA49651EC4B77500B793EE /* Package React bundle */, + C7BC10B338C94EEB98048E64 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = JitsiMeetSDK; + productName = "Jitsi Meet SDK"; + productReference = 0BD906E51EC0C00300C8C18E /* JitsiMeetSDK.framework */; + productType = "com.apple.product-type.framework"; + }; + DE9A012D289A9A9A00E41CBB /* JitsiMeetSDKLite */ = { + isa = PBXNativeTarget; + buildConfigurationList = DE9A016C289A9A9A00E41CBB /* Build configuration list for PBXNativeTarget "JitsiMeetSDKLite" */; + buildPhases = ( + DE9A012E289A9A9A00E41CBB /* [CP] Check Pods Manifest.lock */, + DE9A012F289A9A9A00E41CBB /* Headers */, + DE9A0142289A9A9A00E41CBB /* Sources */, + DE9A0161289A9A9A00E41CBB /* Frameworks */, + DE9A0165289A9A9A00E41CBB /* Resources */, + DE9A0169289A9A9A00E41CBB /* Copy sounds */, + DE9A016A289A9A9A00E41CBB /* Package React bundle */, + DE9A016B289A9A9A00E41CBB /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = JitsiMeetSDKLite; + productName = "Jitsi Meet SDK"; + productReference = DE9A016F289A9A9A00E41CBB /* JitsiMeetSDK.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0BD906DC1EC0C00300C8C18E /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = Jitsi; + TargetAttributes = { + 0BD906E41EC0C00300C8C18E = { + CreatedOnToolsVersion = 8.3.2; + LastSwiftMigration = 1010; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 0BD906DF1EC0C00300C8C18E /* Build configuration list for PBXProject "sdk" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 0BD906DB1EC0C00300C8C18E; + productRefGroup = 0BD906E61EC0C00300C8C18E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0BD906E41EC0C00300C8C18E /* JitsiMeetSDK */, + DE9A012D289A9A9A00E41CBB /* JitsiMeetSDKLite */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0BD906E31EC0C00300C8C18E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0BC4B8691F8C03A700CE8B21 /* CallKitIcon.png in Resources */, + C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */, + C6245F5E2053091D0040BE68 /* image-resize@3x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE9A0165289A9A9A00E41CBB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE9A0166289A9A9A00E41CBB /* CallKitIcon.png in Resources */, + DE9A0167289A9A9A00E41CBB /* image-resize@2x.png in Resources */, + DE9A0168289A9A9A00E41CBB /* image-resize@3x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 0BCA49651EC4B77500B793EE /* Package React bundle */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Package React bundle"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "WITH_ENVIRONMENT=\"../../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; + 26796D8589142D80C8AFDA51 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-JitsiMeetSDK-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C7BC10B338C94EEB98048E64 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JitsiMeetSDK/Pods-JitsiMeetSDK-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + DE17D0D426E0B86300F77E2E /* Copy sounds */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy sounds"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "SOUNDS_DIR=\"${PROJECT_DIR}/../../sounds\"\n\ncp $SOUNDS_DIR/* ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\n"; + }; + DE9A012E289A9A9A00E41CBB /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-JitsiMeetSDKLite-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + DE9A0169289A9A9A00E41CBB /* Copy sounds */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy sounds"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "SOUNDS_DIR=\"${PROJECT_DIR}/../../sounds\"\n\ncp $SOUNDS_DIR/* ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/\n"; + }; + DE9A016A289A9A9A00E41CBB /* Package React bundle */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Package React bundle"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "WITH_ENVIRONMENT=\"../../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; + DE9A016B289A9A9A00E41CBB /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-JitsiMeetSDKLite/Pods-JitsiMeetSDKLite-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-JitsiMeetSDKLite/Pods-JitsiMeetSDKLite-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-JitsiMeetSDKLite/Pods-JitsiMeetSDKLite-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0BD906E01EC0C00300C8C18E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0BB9AD7B1F5EC8F4001C08DB /* CallKit.m in Sources */, + DE81A2DF2317ED5400AE1940 /* JitsiMeetBaseLogHandler.m in Sources */, + 4E0EF63B28CA4069005D1B03 /* JMCallKitProxy.m in Sources */, + 4ED4FFF42721B9B90074E620 /* JitsiAudioSession.m in Sources */, + 4E812F3928F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */, + 0BB9AD7D1F60356D001C08DB /* AppInfo.m in Sources */, + DE81A2D92316AC7600AE1940 /* LogBridge.m in Sources */, + DEAFA779229EAD520033A7FA /* RNRootView.m in Sources */, + 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 */, + C6CC49AF207412CF000DFA42 /* PiPViewCoordinator.swift in Sources */, + DEFC743F21B178FA00E4DD96 /* LocaleDetector.m in Sources */, + 0BCA495F1EC4B6C600B793EE /* AudioMode.m in Sources */, + 0BCA49611EC4B6C600B793EE /* Proximity.m in Sources */, + 4E0EF63228CA2FB3005D1B03 /* JMCallKitEmitter.m in Sources */, + DEFE535621FB2E8300011A3A /* ReactUtils.m in Sources */, + C6A34261204EF76800E062DD /* DragGestureController.swift in Sources */, + 4E51B76525E5345E0038575A /* ScheenshareEventEmiter.m in Sources */, + A4A934E9212F3ADB001E9388 /* Dropbox.m in Sources */, + DE81A2D52316AC4D00AE1940 /* JitsiMeetLogger.m in Sources */, + 0B412F191EDEC65D00B1A0A6 /* JitsiMeetView.m in Sources */, + DEFE535421FB1BF800011A3A /* JitsiMeet.m in Sources */, + DE438CDA2350934700DD541D /* JavaScriptSandbox.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE9A0142289A9A9A00E41CBB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE9A0143289A9A9A00E41CBB /* CallKit.m in Sources */, + DE9A0144289A9A9A00E41CBB /* JitsiMeetBaseLogHandler.m in Sources */, + DE9A0146289A9A9A00E41CBB /* JitsiAudioSession.m in Sources */, + 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 */, + DE9A0150289A9A9A00E41CBB /* PiPViewCoordinator.swift in Sources */, + DE9A0151289A9A9A00E41CBB /* LocaleDetector.m in Sources */, + DE9A0152289A9A9A00E41CBB /* AudioMode.m in Sources */, + DE9A0153289A9A9A00E41CBB /* Proximity.m in Sources */, + 4E812F3A28F9A4ED0087ACC9 /* JitsiMeetView+Private.m in Sources */, + DE9A0155289A9A9A00E41CBB /* ReactUtils.m in Sources */, + DE9A0157289A9A9A00E41CBB /* DragGestureController.swift in Sources */, + DE9A0158289A9A9A00E41CBB /* ScheenshareEventEmiter.m in Sources */, + DE9A015C289A9A9A00E41CBB /* JitsiMeetLogger.m in Sources */, + 4E0EF63328CA2FB3005D1B03 /* JMCallKitEmitter.m in Sources */, + DE9A015E289A9A9A00E41CBB /* JitsiMeetView.m in Sources */, + DE9A015F289A9A9A00E41CBB /* JitsiMeet.m in Sources */, + DE9A0160289A9A9A00E41CBB /* JavaScriptSandbox.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 0BD906EB1EC0C00300C8C18E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + CXX = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD = ""; + LDPLUSPLUS = ""; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + TARGETED_DEVICE_FAMILY = "1,2"; + USE_HERMES = true; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 0BD906EC1EC0C00300C8C18E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + CXX = ""; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD = ""; + LDPLUSPLUS = ""; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + TARGETED_DEVICE_FAMILY = "1,2"; + USE_HERMES = true; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 0BD906EE1EC0C00300C8C18E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 09A78016288AF50ACD28A10D /* Pods-JitsiMeetSDK.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + INFOPLIST_FILE = src/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 0BD906EF1EC0C00300C8C18E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 891FE43DAD30BC8976683100 /* Pods-JitsiMeetSDK.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + INFOPLIST_FILE = src/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + DE9A016D289A9A9A00E41CBB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8F48C340DE0D91D1012976C5 /* Pods-JitsiMeetSDKLite.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "JITSI_MEET_SDK_LITE=1", + ); + INFOPLIST_FILE = "src/Lite-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios; + PRODUCT_NAME = JitsiMeetSDK; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + DE9A016E289A9A9A00E41CBB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 86389F55993FAAF6AEB3FA3E /* Pods-JitsiMeetSDKLite.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + JITSI_MEET_SDK_LITE, + ); + INFOPLIST_FILE = "src/Lite-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.jitsi.JitsiMeetSDK.ios; + PRODUCT_NAME = JitsiMeetSDK; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0BD906DF1EC0C00300C8C18E /* Build configuration list for PBXProject "sdk" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0BD906EB1EC0C00300C8C18E /* Debug */, + 0BD906EC1EC0C00300C8C18E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0BD906ED1EC0C00300C8C18E /* Build configuration list for PBXNativeTarget "JitsiMeetSDK" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0BD906EE1EC0C00300C8C18E /* Debug */, + 0BD906EF1EC0C00300C8C18E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DE9A016C289A9A9A00E41CBB /* Build configuration list for PBXNativeTarget "JitsiMeetSDKLite" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DE9A016D289A9A9A00E41CBB /* Debug */, + DE9A016E289A9A9A00E41CBB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0BD906DC1EC0C00300C8C18E /* Project object */; +} diff --git a/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeetSDK.xcscheme b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeetSDK.xcscheme new file mode 100644 index 0000000..779a942 --- /dev/null +++ b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeetSDK.xcscheme @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeetSDKLite.xcscheme b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeetSDKLite.xcscheme new file mode 100644 index 0000000..6388fa7 --- /dev/null +++ b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeetSDKLite.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/sdk/src/AppInfo.m b/ios/sdk/src/AppInfo.m new file mode 100644 index 0000000..6a3fcc5 --- /dev/null +++ b/ios/sdk/src/AppInfo.m @@ -0,0 +1,102 @@ +/* + * Copyright @ 2017-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 + +#import "InfoPlistUtil.h" + +@interface AppInfo : NSObject +@end + +@implementation AppInfo + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +- (NSDictionary *)constantsToExport { + NSDictionary *infoDictionary + = [[NSBundle mainBundle] infoDictionary]; + + // calendarEnabled + BOOL calendarEnabled = NO; +#if !defined(JITSI_MEET_SDK_LITE) + calendarEnabled = infoDictionary[@"NSCalendarsUsageDescription"] != nil; +#endif + + // name + NSString *name = infoDictionary[@"CFBundleDisplayName"]; + + if (name == nil) { + name = infoDictionary[@"CFBundleName"]; + if (name == nil) { + name = @""; + } + } + + // sdkBundlePath + NSString *sdkBundlePath = [[NSBundle bundleForClass:self.class] bundlePath]; + + // version + NSString *version = infoDictionary[@"CFBundleShortVersionString"]; + + if (version == nil) { + version = infoDictionary[@"CFBundleVersion"]; + if (version == nil) { + version = @""; + } + } + + // SDK version + NSDictionary *sdkInfoDictionary + = [[NSBundle bundleForClass:self.class] infoDictionary]; + NSString *sdkVersion = sdkInfoDictionary[@"CFBundleShortVersionString"]; + if (sdkVersion == nil) { + sdkVersion = @""; + } + + // build number + NSString *buildNumber = infoDictionary[@"CFBundleVersion"]; + if (buildNumber == nil) { + buildNumber = @""; + } + + // google services (sign in) + BOOL isGoogleServiceEnabled = [InfoPlistUtil containsRealServiceInfoPlistInBundle:[NSBundle mainBundle]]; + + // lite SDK + BOOL isLiteSDK = NO; +#if defined(JITSI_MEET_SDK_LITE) + isLiteSDK = YES; +#endif + + return @{ + @"calendarEnabled": [NSNumber numberWithBool:calendarEnabled], + @"buildNumber": buildNumber, + @"isLiteSDK": [NSNumber numberWithBool:isLiteSDK], + @"name": name, + @"sdkBundlePath": sdkBundlePath, + @"sdkVersion": sdkVersion, + @"version": version, + @"GOOGLE_SERVICES_ENABLED": [NSNumber numberWithBool:isGoogleServiceEnabled] + }; +}; +@end diff --git a/ios/sdk/src/AudioMode.m b/ios/sdk/src/AudioMode.m new file mode 100644 index 0000000..f5fc71d --- /dev/null +++ b/ios/sdk/src/AudioMode.m @@ -0,0 +1,430 @@ +/* + * Copyright @ 2017-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 +#import + +#import "JitsiAudioSession+Private.h" +#import "callkit/JMCallKitProxy.h" + + +// Audio mode +typedef enum { + kAudioModeDefault, + kAudioModeAudioCall, + kAudioModeVideoCall +} JitsiMeetAudioMode; + +// Events +static NSString * const kDevicesChanged = @"org.jitsi.meet:features/audio-mode#devices-update"; + +// Device types (must match JS and Java) +static NSString * const kDeviceTypeBluetooth = @"BLUETOOTH"; +static NSString * const kDeviceTypeCar = @"CAR"; +static NSString * const kDeviceTypeEarpiece = @"EARPIECE"; +static NSString * const kDeviceTypeHeadphones = @"HEADPHONES"; +static NSString * const kDeviceTypeSpeaker = @"SPEAKER"; +static NSString * const kDeviceTypeUnknown = @"UNKNOWN"; + + +@interface AudioMode : RCTEventEmitter + +@property(nonatomic, strong) dispatch_queue_t workerQueue; + +@end + +@implementation AudioMode { + JitsiMeetAudioMode activeMode; + RTCAudioSessionConfiguration *defaultConfig; + RTCAudioSessionConfiguration *audioCallConfig; + RTCAudioSessionConfiguration *videoCallConfig; + RTCAudioSessionConfiguration *earpieceConfig; + BOOL audioDisabled; + BOOL forceSpeaker; + BOOL forceEarpiece; + BOOL isSpeakerOn; + BOOL isEarpieceOn; +} + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +- (NSArray *)supportedEvents { + return @[ kDevicesChanged ]; +} + +- (NSDictionary *)constantsToExport { + return @{ + @"DEVICE_CHANGE_EVENT": kDevicesChanged, + @"AUDIO_CALL" : [NSNumber numberWithInt: kAudioModeAudioCall], + @"DEFAULT" : [NSNumber numberWithInt: kAudioModeDefault], + @"VIDEO_CALL" : [NSNumber numberWithInt: kAudioModeVideoCall] + }; +}; + +- (instancetype)init { + self = [super init]; + if (self) { + dispatch_queue_attr_t attributes = + dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_USER_INITIATED, -1); + _workerQueue = dispatch_queue_create("AudioMode.queue", attributes); + + activeMode = kAudioModeDefault; + + defaultConfig = [[RTCAudioSessionConfiguration alloc] init]; + defaultConfig.category = AVAudioSessionCategoryAmbient; + defaultConfig.categoryOptions = 0; + defaultConfig.mode = AVAudioSessionModeDefault; + + audioCallConfig = [[RTCAudioSessionConfiguration alloc] init]; + audioCallConfig.category = AVAudioSessionCategoryPlayAndRecord; + audioCallConfig.categoryOptions = AVAudioSessionCategoryOptionAllowBluetooth | AVAudioSessionCategoryOptionDefaultToSpeaker; + audioCallConfig.mode = AVAudioSessionModeVoiceChat; + + videoCallConfig = [[RTCAudioSessionConfiguration alloc] init]; + videoCallConfig.category = AVAudioSessionCategoryPlayAndRecord; + videoCallConfig.categoryOptions = AVAudioSessionCategoryOptionAllowBluetooth; + videoCallConfig.mode = AVAudioSessionModeVideoChat; + + // Manually routing audio to the earpiece doesn't quite work unless one disables BT (weird, I know). + earpieceConfig = [[RTCAudioSessionConfiguration alloc] init]; + earpieceConfig.category = AVAudioSessionCategoryPlayAndRecord; + earpieceConfig.categoryOptions = 0; + earpieceConfig.mode = AVAudioSessionModeVoiceChat; + + forceSpeaker = NO; + forceEarpiece = NO; + isSpeakerOn = NO; + isEarpieceOn = NO; + + RTCAudioSession *session = JitsiAudioSession.rtcAudioSession; + [session addDelegate:self]; + } + + return self; +} + +- (dispatch_queue_t)methodQueue { + // Use a dedicated queue for audio mode operations. + return _workerQueue; +} + +- (BOOL)setConfigWithoutLock:(RTCAudioSessionConfiguration *)config + error:(NSError * _Nullable *)outError { + RTCAudioSession *session = JitsiAudioSession.rtcAudioSession; + + return [session setConfiguration:config error:outError]; +} + +- (BOOL)setConfig:(RTCAudioSessionConfiguration *)config + error:(NSError * _Nullable *)outError { + + RTCAudioSession *session = JitsiAudioSession.rtcAudioSession; + [session lockForConfiguration]; + BOOL success = [self setConfigWithoutLock:config error:outError]; + [session unlockForConfiguration]; + + return success; +} + +#pragma mark - Exported methods + +RCT_EXPORT_METHOD(setDisabled:(BOOL)disabled + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + if (audioDisabled == disabled) { + resolve(nil); + return; + } + + RCTLogInfo(@"[AudioMode] audio disabled: %d", disabled); + + audioDisabled = disabled; + JMCallKitProxy.enabled = !disabled; + + RTCAudioSession *session = JitsiAudioSession.rtcAudioSession; + if (disabled) { + [session removeDelegate:self]; + } else { + [session addDelegate:self]; + } + session.useManualAudio = disabled; +} + +RCT_EXPORT_METHOD(setMode:(int)mode + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + if (audioDisabled) { + resolve(nil); + return; + } + + RTCAudioSessionConfiguration *config = [self configForMode:mode]; + NSError *error; + + if (config == nil) { + reject(@"setMode", @"Invalid mode", nil); + return; + } + + // Reset. + if (mode == kAudioModeDefault) { + forceSpeaker = NO; + forceEarpiece = NO; + } + + activeMode = mode; + + if ([self setConfig:config error:&error]) { + resolve(nil); + } else { + reject(@"setMode", error.localizedDescription, error); + } + + [self notifyDevicesChanged]; +} + +RCT_EXPORT_METHOD(setAudioDevice:(NSString *)device + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + if (audioDisabled) { + resolve(nil); + return; + } + + RCTLogInfo(@"[AudioMode] Selected device: %@", device); + + RTCAudioSession *session = JitsiAudioSession.rtcAudioSession; + [session lockForConfiguration]; + BOOL success; + NSError *error = nil; + + // Reset these, as we are about to compute them. + forceSpeaker = NO; + forceEarpiece = NO; + + // The speaker is special, so test for it first. + if ([device isEqualToString:kDeviceTypeSpeaker]) { + forceSpeaker = YES; + success = [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error]; + } else { + // Here we use AVAudioSession because RTCAudioSession doesn't expose availableInputs. + AVAudioSession *_session = [AVAudioSession sharedInstance]; + AVAudioSessionPortDescription *port = nil; + + // Find the matching input device. + for (AVAudioSessionPortDescription *portDesc in _session.availableInputs) { + if ([portDesc.UID isEqualToString:device]) { + port = portDesc; + break; + } + } + + if (port != nil) { + // First remove the override if we are going to select a different device. + if (isSpeakerOn) { + [session overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil]; + } + + // Special case for the earpiece. + if ([port.portType isEqualToString:AVAudioSessionPortBuiltInMic]) { + forceEarpiece = YES; + [self setConfigWithoutLock:earpieceConfig error:nil]; + } else if (isEarpieceOn) { + // Reset the config. + RTCAudioSessionConfiguration *config = [self configForMode:activeMode]; + [self setConfigWithoutLock:config error:nil]; + } + + // Select our preferred input. + success = [session setPreferredInput:port error:&error]; + } else { + success = NO; + error = RCTErrorWithMessage(@"Could not find audio device"); + } + } + + [session unlockForConfiguration]; + + if (success) { + resolve(nil); + } else { + reject(@"setAudioDevice", error != nil ? error.localizedDescription : @"", error); + } +} + +RCT_EXPORT_METHOD(updateDeviceList) { + if (audioDisabled) { + return; + } + + [self notifyDevicesChanged]; +} + +#pragma mark - RTCAudioSessionDelegate + +- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session + reason:(AVAudioSessionRouteChangeReason)reason + previousRoute:(AVAudioSessionRouteDescription *)previousRoute { + RCTLogInfo(@"[AudioMode] Route changed, reason: %lu", (unsigned long)reason); + + // Update JS about the changes. + [self notifyDevicesChanged]; + + dispatch_async(_workerQueue, ^{ + switch (reason) { + case AVAudioSessionRouteChangeReasonNewDeviceAvailable: + case AVAudioSessionRouteChangeReasonOldDeviceUnavailable: + // If the device list changed, reset our overrides. + self->forceSpeaker = NO; + self->forceEarpiece = NO; + break; + case AVAudioSessionRouteChangeReasonCategoryChange: + // The category has changed, re-apply our config. + // NB: It's tempting to doa category check here and skip the processing, + // but that won't work. If the config changes but the category remains + // the same we'll still find ourselves here. + break; + default: + return; + } + + // We don't want to touch the category when in default mode. + // This is to play well with other components which could be integrated + // into the final application. + if (self->activeMode != kAudioModeDefault) { + RCTLogInfo(@"[AudioMode] Route changed, reapplying RTCAudioSession config"); + RTCAudioSessionConfiguration *config = [self configForMode:self->activeMode]; + [self setConfig:config error:nil]; + if (self->forceSpeaker && !self->isSpeakerOn) { + [session lockForConfiguration]; + [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil]; + [session unlockForConfiguration]; + } + } + }); +} + +- (void)audioSession:(RTCAudioSession *)audioSession didSetActive:(BOOL)active { + RCTLogInfo(@"[AudioMode] Audio session didSetActive:%d", active); +} + +#pragma mark - Helper methods + +- (RTCAudioSessionConfiguration *)configForMode:(int) mode { + if (mode != kAudioModeDefault && forceEarpiece) { + return earpieceConfig; + } + + switch (mode) { + case kAudioModeAudioCall: + return audioCallConfig; + case kAudioModeDefault: + return defaultConfig; + case kAudioModeVideoCall: + return videoCallConfig; + default: + return nil; + } +} + +// Here we convert input and output port types into a single type. +- (NSString *)portTypeToString:(AVAudioSessionPort) portType { + if ([portType isEqualToString:AVAudioSessionPortHeadphones] + || [portType isEqualToString:AVAudioSessionPortHeadsetMic]) { + return kDeviceTypeHeadphones; + } else if ([portType isEqualToString:AVAudioSessionPortBuiltInMic] + || [portType isEqualToString:AVAudioSessionPortBuiltInReceiver]) { + return kDeviceTypeEarpiece; + } else if ([portType isEqualToString:AVAudioSessionPortBuiltInSpeaker]) { + return kDeviceTypeSpeaker; + } else if ([portType isEqualToString:AVAudioSessionPortBluetoothHFP] + || [portType isEqualToString:AVAudioSessionPortBluetoothLE] + || [portType isEqualToString:AVAudioSessionPortBluetoothA2DP]) { + return kDeviceTypeBluetooth; + } else if ([portType isEqualToString:AVAudioSessionPortCarAudio]) { + return kDeviceTypeCar; + } else { + return kDeviceTypeUnknown; + } +} + +- (void)notifyDevicesChanged { + dispatch_async(_workerQueue, ^{ + NSMutableArray *data = [[NSMutableArray alloc] init]; + // Here we use AVAudioSession because RTCAudioSession doesn't expose availableInputs. + AVAudioSession *session = [AVAudioSession sharedInstance]; + NSString *currentPort = @""; + AVAudioSessionRouteDescription *currentRoute = session.currentRoute; + + // Check what the current device is. Because the speaker is somewhat special, we need to + // check for it first. + if (currentRoute != nil) { + AVAudioSessionPortDescription *output = currentRoute.outputs.firstObject; + AVAudioSessionPortDescription *input = currentRoute.inputs.firstObject; + if (output != nil && [output.portType isEqualToString:AVAudioSessionPortBuiltInSpeaker]) { + currentPort = kDeviceTypeSpeaker; + self->isSpeakerOn = YES; + } else if (input != nil) { + currentPort = input.UID; + self->isSpeakerOn = NO; + self->isEarpieceOn = [input.portType isEqualToString:AVAudioSessionPortBuiltInMic]; + } + } + + BOOL headphonesAvailable = NO; + for (AVAudioSessionPortDescription *portDesc in session.availableInputs) { + if ([portDesc.portType isEqualToString:AVAudioSessionPortHeadsetMic] || [portDesc.portType isEqualToString:AVAudioSessionPortHeadphones]) { + headphonesAvailable = YES; + break; + } + } + + for (AVAudioSessionPortDescription *portDesc in session.availableInputs) { + // Skip "Phone" if headphones are present. + if (headphonesAvailable && [portDesc.portType isEqualToString:AVAudioSessionPortBuiltInMic]) { + continue; + } + id deviceData + = @{ + @"type": [self portTypeToString:portDesc.portType], + @"name": portDesc.portName, + @"uid": portDesc.UID, + @"selected": [NSNumber numberWithBool:[portDesc.UID isEqualToString:currentPort]] + }; + [data addObject:deviceData]; + } + + // We need to manually add the speaker because it will never show up in the + // previous list, as it's not an input. + [data addObject: + @{ @"type": kDeviceTypeSpeaker, + @"name": @"Speaker", + @"uid": kDeviceTypeSpeaker, + @"selected": [NSNumber numberWithBool:[kDeviceTypeSpeaker isEqualToString:currentPort]] + }]; + + [self sendEventWithName:kDevicesChanged body:data]; + }); +} + +@end diff --git a/ios/sdk/src/ExternalAPI.h b/ios/sdk/src/ExternalAPI.h new file mode 100644 index 0000000..2e29db0 --- /dev/null +++ b/ios/sdk/src/ExternalAPI.h @@ -0,0 +1,41 @@ +/* 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. +*/ + +#import +#import + +static NSString * const sendEventNotificationName = @"org.jitsi.meet.SendEvent"; + +@interface ExternalAPI : RCTEventEmitter + +- (void)sendHangUp; +- (void)sendSetAudioMuted:(BOOL)muted; +- (void)sendEndpointTextMessage:(NSString*)message :(NSString*)to; +- (void)toggleScreenShare:(BOOL)enabled; +- (void)retrieveParticipantsInfo:(void (^)(NSArray*))completion; +- (void)openChat:(NSString*)to; +- (void)closeChat; +- (void)sendChatMessage:(NSString*)message :(NSString*)to; +- (void)sendSetVideoMuted:(BOOL)muted; +- (void)sendSetClosedCaptionsEnabled:(BOOL)enabled; +- (void)toggleCamera; +- (void)showNotification:(NSString*)appearance :(NSString*)description :(NSString*)timeout :(NSString*)title :(NSString*)uid; +- (void)hideNotification:(NSString*)uid; +- (void)startRecording:(NSString*)mode :(NSString*)dropboxToken :(BOOL)shouldShare :(NSString*)rtmpStreamKey :(NSString*)rtmpBroadcastID :(NSString*)youtubeStreamKey :(NSString*)youtubeBroadcastID :(NSDictionary*)extraMetadata :(BOOL)transcription; +- (void)stopRecording:(NSString*)mode :(BOOL)transcription; +- (void)overwriteConfig:(NSDictionary*)config; +- (void)sendCameraFacingModeMessage:(NSString*)to :(NSString*)facingMode; + +@end diff --git a/ios/sdk/src/ExternalAPI.m b/ios/sdk/src/ExternalAPI.m new file mode 100644 index 0000000..b818f71 --- /dev/null +++ b/ios/sdk/src/ExternalAPI.m @@ -0,0 +1,260 @@ +/* + * Copyright @ 2017-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 "ExternalAPI.h" + +// Events +static NSString * const hangUpAction = @"org.jitsi.meet.HANG_UP"; +static NSString * const setAudioMutedAction = @"org.jitsi.meet.SET_AUDIO_MUTED"; +static NSString * const sendEndpointTextMessageAction = @"org.jitsi.meet.SEND_ENDPOINT_TEXT_MESSAGE"; +static NSString * const toggleScreenShareAction = @"org.jitsi.meet.TOGGLE_SCREEN_SHARE"; +static NSString * const retrieveParticipantsInfoAction = @"org.jitsi.meet.RETRIEVE_PARTICIPANTS_INFO"; +static NSString * const openChatAction = @"org.jitsi.meet.OPEN_CHAT"; +static NSString * const closeChatAction = @"org.jitsi.meet.CLOSE_CHAT"; +static NSString * const sendChatMessageAction = @"org.jitsi.meet.SEND_CHAT_MESSAGE"; +static NSString * const setVideoMutedAction = @"org.jitsi.meet.SET_VIDEO_MUTED"; +static NSString * const setClosedCaptionsEnabledAction = @"org.jitsi.meet.SET_CLOSED_CAPTIONS_ENABLED"; +static NSString * const toggleCameraAction = @"org.jitsi.meet.TOGGLE_CAMERA"; +static NSString * const showNotificationAction = @"org.jitsi.meet.SHOW_NOTIFICATION"; +static NSString * const hideNotificationAction = @"org.jitsi.meet.HIDE_NOTIFICATION"; +static NSString * const startRecordingAction = @"org.jitsi.meet.START_RECORDING"; +static NSString * const stopRecordingAction = @"org.jitsi.meet.STOP_RECORDING"; +static NSString * const overwriteConfigAction = @"org.jitsi.meet.OVERWRITE_CONFIG"; +static NSString * const sendCameraFacingModeMessageAction = @"org.jitsi.meet.SEND_CAMERA_FACING_MODE_MESSAGE"; + +@implementation ExternalAPI + +static NSMapTable *participantInfoCompletionHandlers; + +__attribute__((constructor)) +static void initializeViewsMap(void) { + participantInfoCompletionHandlers = [NSMapTable strongToStrongObjectsMapTable]; +} + +RCT_EXPORT_MODULE(); + +- (NSDictionary *)constantsToExport { + return @{ + @"HANG_UP": hangUpAction, + @"SET_AUDIO_MUTED" : setAudioMutedAction, + @"SEND_ENDPOINT_TEXT_MESSAGE": sendEndpointTextMessageAction, + @"TOGGLE_SCREEN_SHARE": toggleScreenShareAction, + @"RETRIEVE_PARTICIPANTS_INFO": retrieveParticipantsInfoAction, + @"OPEN_CHAT": openChatAction, + @"CLOSE_CHAT": closeChatAction, + @"SEND_CHAT_MESSAGE": sendChatMessageAction, + @"SET_VIDEO_MUTED" : setVideoMutedAction, + @"SET_CLOSED_CAPTIONS_ENABLED": setClosedCaptionsEnabledAction, + @"TOGGLE_CAMERA": toggleCameraAction, + @"SHOW_NOTIFICATION": showNotificationAction, + @"HIDE_NOTIFICATION": hideNotificationAction, + @"START_RECORDING": startRecordingAction, + @"STOP_RECORDING": stopRecordingAction, + @"OVERWRITE_CONFIG": overwriteConfigAction, + @"SEND_CAMERA_FACING_MODE_MESSAGE": sendCameraFacingModeMessageAction + }; +}; + +/** + * Make sure all methods in this module are invoked on the main/UI thread. + */ +- (dispatch_queue_t)methodQueue { + return dispatch_get_main_queue(); +} + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +- (NSArray *)supportedEvents { + return @[ hangUpAction, + setAudioMutedAction, + sendEndpointTextMessageAction, + toggleScreenShareAction, + retrieveParticipantsInfoAction, + openChatAction, + closeChatAction, + sendChatMessageAction, + setVideoMutedAction, + setClosedCaptionsEnabledAction, + toggleCameraAction, + showNotificationAction, + hideNotificationAction, + startRecordingAction, + stopRecordingAction, + overwriteConfigAction, + sendCameraFacingModeMessageAction + ]; +} + +/** + * Dispatches an event that occurred on JavaScript to the view's delegate. + * + * @param name The name of the event. + * @param data The details/specifics of the event to send determined + * by/associated with the specified `name`. + * @param scope + */ +RCT_EXPORT_METHOD(sendEvent:(NSString *)name + data:(NSDictionary *)data) { + if ([name isEqual: @"PARTICIPANTS_INFO_RETRIEVED"]) { + [self onParticipantsInfoRetrieved: data]; + return; + } + + [[NSNotificationCenter defaultCenter] postNotificationName:sendEventNotificationName + object:nil + userInfo:@{@"name": name, @"data": data}]; +} + +- (void) onParticipantsInfoRetrieved:(NSDictionary *)data { + NSArray *participantsInfoArray = [data objectForKey:@"participantsInfo"]; + NSString *completionHandlerId = [data objectForKey:@"requestId"]; + + void (^completionHandler)(NSArray*) = [participantInfoCompletionHandlers objectForKey:completionHandlerId]; + completionHandler(participantsInfoArray); + [participantInfoCompletionHandlers removeObjectForKey:completionHandlerId]; +} + +- (void)sendHangUp { + [self sendEventWithName:hangUpAction body:nil]; +} + +- (void)sendSetAudioMuted:(BOOL)muted { + NSDictionary *data = @{ @"muted": [NSNumber numberWithBool:muted]}; + + [self sendEventWithName:setAudioMutedAction body:data]; +} + +- (void)sendEndpointTextMessage:(NSString*)message :(NSString*)to { + NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; + data[@"to"] = to; + data[@"message"] = message; + + [self sendEventWithName:sendEndpointTextMessageAction body:data]; +} + +- (void)toggleScreenShare:(BOOL)enabled { + NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; + data[@"enabled"] = [NSNumber numberWithBool:enabled]; + + [self sendEventWithName:toggleScreenShareAction body:data]; +} + +- (void)retrieveParticipantsInfo:(void (^)(NSArray*))completionHandler { + NSString *completionHandlerId = [[NSUUID UUID] UUIDString]; + NSDictionary *data = @{ @"requestId": completionHandlerId}; + + [participantInfoCompletionHandlers setObject:[completionHandler copy] forKey:completionHandlerId]; + + [self sendEventWithName:retrieveParticipantsInfoAction body:data]; +} + +- (void)openChat:(NSString*)to { + NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; + data[@"to"] = to; + + [self sendEventWithName:openChatAction body:data]; +} + +- (void)closeChat { + [self sendEventWithName:closeChatAction body:nil]; +} + +- (void)sendChatMessage:(NSString*)message :(NSString*)to { + NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; + data[@"to"] = to; + data[@"message"] = message; + + [self sendEventWithName:sendChatMessageAction body:data]; +} + +- (void)sendSetVideoMuted:(BOOL)muted { + NSDictionary *data = @{ @"muted": [NSNumber numberWithBool:muted]}; + + [self sendEventWithName:setVideoMutedAction body:data]; +} + +- (void)sendSetClosedCaptionsEnabled:(BOOL)enabled { + NSDictionary *data = @{ @"enabled": [NSNumber numberWithBool:enabled]}; + + [self sendEventWithName:setClosedCaptionsEnabledAction body:data]; +} + +- (void)toggleCamera { + [self sendEventWithName:toggleCameraAction body:nil]; +} + +- (void)showNotification:(NSString*)appearance :(NSString*)description :(NSString*)timeout :(NSString*)title :(NSString*)uid { + NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; + data[@"appearance"] = appearance; + data[@"description"] = description; + data[@"timeout"] = timeout; + data[@"title"] = title; + data[@"uid"] = uid; + + [self sendEventWithName:showNotificationAction body:data]; +} + +- (void)hideNotification:(NSString*)uid { + NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; + data[@"uid"] = uid; + + [self sendEventWithName:hideNotificationAction body:data]; +} + +- (void)startRecording:(NSString*)mode :(NSString*)dropboxToken :(BOOL)shouldShare :(NSString*)rtmpStreamKey :(NSString*)rtmpBroadcastID :(NSString*)youtubeStreamKey :(NSString*)youtubeBroadcastID :(NSDictionary*)extraMetadata :(BOOL)transcription { + NSDictionary *data = @{ + @"mode": mode, + @"dropboxToken": dropboxToken, + @"shouldShare": @(shouldShare), + @"rtmpStreamKey": rtmpStreamKey, + @"rtmpBroadcastID": rtmpBroadcastID, + @"youtubeStreamKey": youtubeStreamKey, + @"youtubeBroadcastID": youtubeBroadcastID, + @"extraMetadata": extraMetadata, + @"transcription": @(transcription) + }; + + [self sendEventWithName:startRecordingAction body:data]; +} + +- (void)stopRecording:(NSString*)mode :(BOOL)transcription { + NSDictionary *data = @{ + @"mode": mode, + @"transcription": @(transcription) + }; + + [self sendEventWithName:stopRecordingAction body:data]; +} + +- (void)overwriteConfig:(NSDictionary*)config { + NSDictionary *data = @{ + @"config": config + }; + + [self sendEventWithName:overwriteConfigAction body:data]; +} + +- (void)sendCameraFacingModeMessage:(NSString*)to :(NSString*)facingMode { + NSDictionary *data = @{ + @"to": to, + @"facingMode": facingMode + }; + + [self sendEventWithName:sendCameraFacingModeMessageAction body:data]; +} +@end diff --git a/ios/sdk/src/Info.plist b/ios/sdk/src/Info.plist new file mode 100644 index 0000000..0e197ec --- /dev/null +++ b/ios/sdk/src/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 99.0.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/ios/sdk/src/InfoPlistUtil.h b/ios/sdk/src/InfoPlistUtil.h new file mode 100644 index 0000000..f7d5bb8 --- /dev/null +++ b/ios/sdk/src/InfoPlistUtil.h @@ -0,0 +1,23 @@ +/* +* 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 InfoPlistUtil : NSObject + ++ (BOOL)containsRealServiceInfoPlistInBundle:(NSBundle *)bundle; + +@end diff --git a/ios/sdk/src/InfoPlistUtil.m b/ios/sdk/src/InfoPlistUtil.m new file mode 100644 index 0000000..1c98522 --- /dev/null +++ b/ios/sdk/src/InfoPlistUtil.m @@ -0,0 +1,52 @@ +/* +* 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 "InfoPlistUtil.h" + +// Plist file name. +NSString *const kGoogleServiceInfoFileName = @"GoogleService-Info"; +// Plist file type. +NSString *const kGoogleServiceInfoFileType = @"plist"; +NSString *const kGoogleAppIDPlistKey = @"GOOGLE_APP_ID"; + +@implementation InfoPlistUtil + ++ (BOOL)containsRealServiceInfoPlistInBundle:(NSBundle *)bundle { + NSString *bundlePath = bundle.bundlePath; + if (!bundlePath.length) { + return NO; + } + + NSString *plistFilePath = [bundle pathForResource:kGoogleServiceInfoFileName + ofType:kGoogleServiceInfoFileType]; + if (!plistFilePath.length) { + return NO; + } + + NSDictionary *plist = [NSDictionary dictionaryWithContentsOfFile:plistFilePath]; + if (!plist) { + return NO; + } + + // Perform a very naive validation by checking to see if the plist has the dummy google app id + NSString *googleAppID = plist[kGoogleAppIDPlistKey]; + if (!googleAppID.length) { + return NO; + } + + return YES; +} +@end diff --git a/ios/sdk/src/JavaScriptSandbox.m b/ios/sdk/src/JavaScriptSandbox.m new file mode 100644 index 0000000..66a9d74 --- /dev/null +++ b/ios/sdk/src/JavaScriptSandbox.m @@ -0,0 +1,55 @@ +/* + * 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 JavaScriptCore; + +#import + + +@interface JavaScriptSandbox : NSObject +@end + +@implementation JavaScriptSandbox + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +#pragma mark - Exported methods + +RCT_EXPORT_METHOD(evaluate:(NSString *)code + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + __block BOOL hasError = NO; + JSContext *ctx = [[JSContext alloc] init]; + ctx.exceptionHandler = ^(JSContext *context, JSValue *exception) { + hasError = YES; + reject(@"evaluate", [exception toString], nil); + }; + JSValue *ret = [ctx evaluateScript:code]; + if (!hasError) { + NSString *result = [ret toString]; + if (result == nil) { + reject(@"evaluate", @"Error in string coercion", nil); + } else { + resolve(result); + } + } +} + +@end diff --git a/ios/sdk/src/JitsiAudioSession+Private.h b/ios/sdk/src/JitsiAudioSession+Private.h new file mode 100644 index 0000000..b6f7d15 --- /dev/null +++ b/ios/sdk/src/JitsiAudioSession+Private.h @@ -0,0 +1,24 @@ +/* + * Copyright @ 2017-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 "JitsiAudioSession.h" +#import + +@interface JitsiAudioSession (Private) + ++ (RTCAudioSession *)rtcAudioSession; + +@end diff --git a/ios/sdk/src/JitsiAudioSession.h b/ios/sdk/src/JitsiAudioSession.h new file mode 100644 index 0000000..b271a98 --- /dev/null +++ b/ios/sdk/src/JitsiAudioSession.h @@ -0,0 +1,26 @@ +/* + * Copyright @ 2017-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 + +@class AVAudioSession; + +@interface JitsiAudioSession : NSObject + ++ (void)activateWithAudioSession:(AVAudioSession *)session; ++ (void)deactivateWithAudioSession:(AVAudioSession *)session; + +@end diff --git a/ios/sdk/src/JitsiAudioSession.m b/ios/sdk/src/JitsiAudioSession.m new file mode 100644 index 0000000..049f13d --- /dev/null +++ b/ios/sdk/src/JitsiAudioSession.m @@ -0,0 +1,34 @@ +/* + * Copyright @ 2017-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 "JitsiAudioSession.h" +#import "JitsiAudioSession+Private.h" + +@implementation JitsiAudioSession + ++ (RTCAudioSession *)rtcAudioSession { + return [RTCAudioSession sharedInstance]; +} + ++ (void)activateWithAudioSession:(AVAudioSession *)session { + [self.rtcAudioSession audioSessionDidActivate:session]; +} + ++ (void)deactivateWithAudioSession:(AVAudioSession *)session { + [self.rtcAudioSession audioSessionDidDeactivate:session]; +} + +@end diff --git a/ios/sdk/src/JitsiMeet+Private.h b/ios/sdk/src/JitsiMeet+Private.h new file mode 100644 index 0000000..3ba7ee0 --- /dev/null +++ b/ios/sdk/src/JitsiMeet+Private.h @@ -0,0 +1,28 @@ +/* + * 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 "ExternalAPI.h" +#import "JitsiMeet.h" + +@interface JitsiMeet () + +- (NSDictionary *)getDefaultProps; +- (RCTBridge *)getReactBridge; +- (ExternalAPI *)getExternalAPI; + +@end diff --git a/ios/sdk/src/JitsiMeet.h b/ios/sdk/src/JitsiMeet.h new file mode 100644 index 0000000..30e338d --- /dev/null +++ b/ios/sdk/src/JitsiMeet.h @@ -0,0 +1,108 @@ +/* + * Copyright @ 2017-present 8x8, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; +@import Foundation; + +#import + +// Matches RTCLoggingSeverity from RTCLogging.h +typedef NS_ENUM(NSInteger, WebRTCLoggingSeverity) { + WebRTCLoggingSeverityVerbose, + WebRTCLoggingSeverityInfo, + WebRTCLoggingSeverityWarning, + WebRTCLoggingSeverityError, + WebRTCLoggingSeverityNone, +}; + +@interface JitsiMeet : NSObject + +/** + * Name for the conference NSUserActivity type. This is used when integrating with + * SiriKit or Handoff, for example. + */ +@property (copy, nonatomic, nullable) NSString *conferenceActivityType; + +/** + * Custom URL scheme used for deep-linking. + */ +@property (copy, nonatomic, nullable) NSString *customUrlScheme; + +/** + * List of domains used for universal linking. + */ +@property (copy, nonatomic, nullable) NSArray *universalLinkDomains; + +/** + * Default conference options used for all conferences. These options will be merged + * with those passed to JitsiMeetView.join when joining a conference. + */ +@property (nonatomic, nullable) JitsiMeetConferenceOptions *defaultConferenceOptions; + +/** + * Custom RTCAudioDevice implementation. + * https://github.com/jitsi/webrtc/blob/M124/sdk/objc/components/audio/RTCAudioDevice.h + * https://github.com/mstyura/RTCAudioDevice + */ +@property (nonatomic, strong, nullable) id rtcAudioDevice; + +/** + * Specify WebRTC logging severity. + */ +@property (nonatomic, assign) WebRTCLoggingSeverity webRtcLoggingSeverity; + +#pragma mark - This class is a singleton + ++ (instancetype _Nonnull)sharedInstance; + +#pragma mark - Methods that the App delegate must call + +- (BOOL)application:(UIApplication *_Nonnull)application + didFinishLaunchingWithOptions:(NSDictionary *_Nonnull)launchOptions; + +- (BOOL)application:(UIApplication *_Nonnull)application + continueUserActivity:(NSUserActivity *_Nonnull)userActivity + restorationHandler:(void (^_Nullable)(NSArray> *_Nonnull))restorationHandler; + +- (BOOL)application:(UIApplication *_Nonnull)app + openURL:(NSURL *_Nonnull)url + options:(NSDictionary *_Nonnull)options; + +- (UIInterfaceOrientationMask)application:(UIApplication *_Nonnull)application + supportedInterfaceOrientationsForWindow:(UIWindow *_Nullable)window; + +#pragma mark - Utility methods + +/** + * Once the react native bridge is destroyed you are responsible for reinstantiating it back. Use this method to do so. + */ +- (void)instantiateReactNativeBridge; + +/** + * Helper method to destroy the react native bridge, cleaning up resources in the process. Once the react native bridge is destroyed you are responsible for reinstantiating it back using `instantiateReactNativeBridge` method. + */ +- (void)destroyReactNativeBridge; + +- (JitsiMeetConferenceOptions *_Nonnull)getInitialConferenceOptions; + +- (BOOL)isCrashReportingDisabled; + +/** + * Shows the splash screen. + */ +- (void)showSplashScreen; + +@end diff --git a/ios/sdk/src/JitsiMeet.m b/ios/sdk/src/JitsiMeet.m new file mode 100644 index 0000000..bc7f5f3 --- /dev/null +++ b/ios/sdk/src/JitsiMeet.m @@ -0,0 +1,270 @@ +/* + * 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 "Orientation.h" + +#import "JitsiMeet+Private.h" +#import "JitsiMeetConferenceOptions+Private.h" +#import "JitsiMeetView+Private.h" +#import "RCTBridgeWrapper.h" +#import "ReactUtils.h" +#import "ScheenshareEventEmiter.h" + +#import + +#if !defined(JITSI_MEET_SDK_LITE) +#import +#import "Dropbox.h" +#endif + +@implementation JitsiMeet { + RCTBridgeWrapper *_bridgeWrapper; + NSDictionary *_launchOptions; + ScheenshareEventEmiter *_screenshareEventEmiter; +} + +#pragma mak - This class is a singleton + ++ (instancetype)sharedInstance { + static JitsiMeet *sharedInstance = nil; + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + sharedInstance = [[self alloc] init]; + }); + + return sharedInstance; +} + +- (instancetype)init { + if (self = [super init]) { + // Initialize WebRTC options. + self.rtcAudioDevice = nil; + self.webRtcLoggingSeverity = WebRTCLoggingSeverityNone; + + // Initialize the listener for handling start/stop screensharing notifications. + _screenshareEventEmiter = [[ScheenshareEventEmiter alloc] init]; + + // Register a fatal error handler for React. + registerReactFatalErrorHandler(); + + // Register a log handler for React. + registerReactLogHandler(); + } + + return self; +} + +#pragma mark - Methods that the App delegate must call + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + _launchOptions = [launchOptions copy]; + +#if !defined(JITSI_MEET_SDK_LITE) + [Dropbox setAppKey]; +#endif + + return YES; +} + +- (BOOL)application:(UIApplication *)application + continueUserActivity:(NSUserActivity *)userActivity + restorationHandler:(void (^)(NSArray> *))restorationHandler { + + JitsiMeetConferenceOptions *options = [self optionsFromUserActivity:userActivity]; + if (options) { + [JitsiMeetView updateProps:[options asProps]]; + return true; + } + + return false; +} + +- (BOOL)application:(UIApplication *)app + openURL:(NSURL *)url + options:(NSDictionary *)options { + +#if !defined(JITSI_MEET_SDK_LITE) + if ([Dropbox application:app openURL:url options:options]) { + return YES; + } + + if ([RNGoogleSignin application:app + openURL:url + options:options]) { + return YES; + } +#endif + + if (_customUrlScheme == nil || ![_customUrlScheme isEqualToString:url.scheme]) { + return NO; + } + + JitsiMeetConferenceOptions *conferenceOptions = [JitsiMeetConferenceOptions fromBuilder:^(JitsiMeetConferenceOptionsBuilder *builder) { + builder.room = [url absoluteString]; + }]; + [JitsiMeetView updateProps:[conferenceOptions asProps]]; + + return true; +} + +- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { + return [Orientation getOrientation]; +} + +#pragma mark - Utility methods + +- (void)instantiateReactNativeBridge { + if (_bridgeWrapper != nil) { + return; + }; + + // 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]; +} + +- (void)destroyReactNativeBridge { + [_bridgeWrapper invalidate]; + _bridgeWrapper = nil; +} + +- (JitsiMeetConferenceOptions *)getInitialConferenceOptions { + if (_launchOptions[UIApplicationLaunchOptionsURLKey]) { + NSURL *url = _launchOptions[UIApplicationLaunchOptionsURLKey]; + return [JitsiMeetConferenceOptions fromBuilder:^(JitsiMeetConferenceOptionsBuilder *builder) { + builder.room = [url absoluteString]; + }]; + } else { + NSDictionary *userActivityDictionary + = _launchOptions[UIApplicationLaunchOptionsUserActivityDictionaryKey]; + NSUserActivity *userActivity + = [userActivityDictionary objectForKey:@"UIApplicationLaunchOptionsUserActivityKey"]; + if (userActivity != nil) { + return [self optionsFromUserActivity:userActivity]; + } + } + + return nil; +} + +- (BOOL)isCrashReportingDisabled { + NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"jitsi-default-preferences"]; + return [userDefaults stringForKey:@"isCrashReportingDisabled"]; +} + +- (JitsiMeetConferenceOptions *)optionsFromUserActivity:(NSUserActivity *)userActivity { + NSString *activityType = userActivity.activityType; + + if ([activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) { + // App was started by opening a URL in the browser + NSURL *url = userActivity.webpageURL; + if ([_universalLinkDomains containsObject:url.host]) { + return [JitsiMeetConferenceOptions fromBuilder:^(JitsiMeetConferenceOptionsBuilder *builder) { + builder.room = [url absoluteString]; + }]; + } + } else if ([activityType isEqualToString:@"INStartAudioCallIntent"] + || [activityType isEqualToString:@"INStartVideoCallIntent"]) { + // App was started by a CallKit Intent + INIntent *intent = userActivity.interaction.intent; + NSArray *contacts; + NSString *url; + BOOL audioOnly = NO; + + if ([intent isKindOfClass:[INStartAudioCallIntent class]]) { + contacts = ((INStartAudioCallIntent *) intent).contacts; + audioOnly = YES; + } else if ([intent isKindOfClass:[INStartVideoCallIntent class]]) { + contacts = ((INStartVideoCallIntent *) intent).contacts; + } + + if (contacts && (url = contacts.firstObject.personHandle.value)) { + return [JitsiMeetConferenceOptions fromBuilder:^(JitsiMeetConferenceOptionsBuilder *builder) { + builder.audioOnly = audioOnly; + builder.room = url; + }]; + } + } else if (self.conferenceActivityType && [activityType isEqualToString:self.conferenceActivityType]) { + // App was started by continuing a registered NSUserActivity (SiriKit, Handoff, ...) + NSString *url; + + if ((url = userActivity.userInfo[@"url"])) { + return [JitsiMeetConferenceOptions fromBuilder:^(JitsiMeetConferenceOptionsBuilder *builder) { + builder.room = url; + }]; + } + } + + return nil; +} + +- (void)showSplashScreen { + Class splashClass = NSClassFromString(@"SplashView"); + if (splashClass && [splashClass respondsToSelector:@selector(sharedInstance)]) { + id splashInstance = [splashClass performSelector:@selector(sharedInstance)]; + if (splashInstance && [splashInstance respondsToSelector:@selector(showSplash)]) { + [splashInstance performSelector:@selector(showSplash)]; + NSLog(@"✅ Splash Screen Shown Successfully"); + } + } else { + NSLog(@"⚠️ SplashView module not found"); + } +} + +#pragma mark - Property getter / setters + +- (NSArray *)universalLinkDomains { + return _universalLinkDomains ? _universalLinkDomains : @[]; +} + +- (void)setDefaultConferenceOptions:(JitsiMeetConferenceOptions *)defaultConferenceOptions { + + // For testing configOverrides a room needs to be set, + // thus the following check needs to be commented out + if (defaultConferenceOptions != nil && defaultConferenceOptions.room != nil) { + @throw [NSException exceptionWithName:@"RuntimeError" + reason:@"'room' must be null in the default conference options" + userInfo:nil]; + } + _defaultConferenceOptions = defaultConferenceOptions; +} + +#pragma mark - Private API methods + +- (NSDictionary *)getDefaultProps { + return _defaultConferenceOptions == nil ? @{} : [_defaultConferenceOptions asProps]; +} + +- (RCTBridge *)getReactBridge { + // Initialize bridge lazily. + [self instantiateReactNativeBridge]; + return _bridgeWrapper.bridge; +} + +- (ExternalAPI *)getExternalAPI { + return [_bridgeWrapper.bridge moduleForClass:ExternalAPI.class]; +} + +@end diff --git a/ios/sdk/src/JitsiMeetBaseLogHandler+Private.h b/ios/sdk/src/JitsiMeetBaseLogHandler+Private.h new file mode 100644 index 0000000..e16edaf --- /dev/null +++ b/ios/sdk/src/JitsiMeetBaseLogHandler+Private.h @@ -0,0 +1,24 @@ +/* + * 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 "LogUtils.h" +#import "JitsiMeetBaseLogHandler.h" + +@interface JitsiMeetBaseLogHandler () + +@property (nonatomic, retain) id logger; + +@end diff --git a/ios/sdk/src/JitsiMeetBaseLogHandler.h b/ios/sdk/src/JitsiMeetBaseLogHandler.h new file mode 100644 index 0000000..09ac8bf --- /dev/null +++ b/ios/sdk/src/JitsiMeetBaseLogHandler.h @@ -0,0 +1,28 @@ +/* + * 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 JitsiMeetBaseLogHandler : NSObject + +// These are "abstract". +- (void)logVerbose:(NSString *)msg; +- (void)logDebug:(NSString *)msg; +- (void)logInfo:(NSString *)msg; +- (void)logWarn:(NSString *)msg; +- (void)logError:(NSString *)msg; + +@end diff --git a/ios/sdk/src/JitsiMeetBaseLogHandler.m b/ios/sdk/src/JitsiMeetBaseLogHandler.m new file mode 100644 index 0000000..526672b --- /dev/null +++ b/ios/sdk/src/JitsiMeetBaseLogHandler.m @@ -0,0 +1,105 @@ +/* + * 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 "JitsiMeetBaseLogHandler+Private.h" + +@interface PrivateLogger : DDAbstractLogger +@end + +@implementation PrivateLogger { + JitsiMeetBaseLogHandler *_delegate; +} + +- (instancetype)initWithDelegate:(JitsiMeetBaseLogHandler *)delegate { + if (self = [super init]) { + _delegate = delegate; + } + + return self; +} + +#pragma mark - DDAbstractLogger interface + +- (void)logMessage:(DDLogMessage *)logMessage { + NSString *logMsg = logMessage.message; + + if (_logFormatter) + logMsg = [_logFormatter formatLogMessage:logMessage]; + + if (logMsg && _delegate) { + switch (logMessage.flag) { + case DDLogFlagError: + [_delegate logError:logMsg]; + break; + case DDLogFlagWarning: + [_delegate logWarn:logMsg]; + break; + case DDLogFlagInfo: + [_delegate logInfo:logMsg]; + break; + case DDLogFlagDebug: + [_delegate logDebug:logMsg]; + break; + case DDLogFlagVerbose: + [_delegate logVerbose:logMsg]; + break; + } + } +} + +@end + + +@implementation JitsiMeetBaseLogHandler + +#pragma mark - Proxy logger not to expose the CocoaLumberjack headers + +- (instancetype)init { + if (self = [super init]) { + self.logger = [[PrivateLogger alloc] initWithDelegate:self]; + } + + return self; +} + +#pragma mark - Public API + +- (void)logVerbose:(NSString *)msg { + // Override me! + [self doesNotRecognizeSelector:_cmd]; +} + +- (void)logDebug:(NSString *)msg { + // Override me! + [self doesNotRecognizeSelector:_cmd]; +} + +- (void)logInfo:(NSString *)msg { + // Override me! + [self doesNotRecognizeSelector:_cmd]; +} + +- (void)logWarn:(NSString *)msg { + // Override me! + [self doesNotRecognizeSelector:_cmd]; +} + +- (void)logError:(NSString *)msg { + // Override me! + [self doesNotRecognizeSelector:_cmd]; +} + +@end diff --git a/ios/sdk/src/JitsiMeetConferenceOptions+Private.h b/ios/sdk/src/JitsiMeetConferenceOptions+Private.h new file mode 100644 index 0000000..905569a --- /dev/null +++ b/ios/sdk/src/JitsiMeetConferenceOptions+Private.h @@ -0,0 +1,23 @@ +/* + * 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 "JitsiMeetConferenceOptions.h" + +@interface JitsiMeetConferenceOptions () + +- (NSMutableDictionary *)asProps; + +@end diff --git a/ios/sdk/src/JitsiMeetConferenceOptions.h b/ios/sdk/src/JitsiMeetConferenceOptions.h new file mode 100644 index 0000000..222dad0 --- /dev/null +++ b/ios/sdk/src/JitsiMeetConferenceOptions.h @@ -0,0 +1,80 @@ +/* + * 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 "JitsiMeetUserInfo.h" + + +@interface JitsiMeetConferenceOptionsBuilder : NSObject + +/** + * Server where the conference should take place. + */ +@property (nonatomic, copy, nullable) NSURL *serverURL; +/** + * Room name. + */ +@property (nonatomic, copy, nullable) NSString *room; +/** + * JWT token used for authentication. + */ +@property (nonatomic, copy, nullable) NSString *token; + +/** + * Feature flags. See: https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/flags/constants.js + */ +@property (nonatomic, readonly, nonnull) NSDictionary *featureFlags; + +@property (nonatomic, readonly, nonnull) NSDictionary *config; + +/** + * Information about the local user. It will be used in absence of a token. + */ +@property (nonatomic, nullable) JitsiMeetUserInfo *userInfo; + +- (void)setFeatureFlag:(NSString *_Nonnull)flag withBoolean:(BOOL)value; +- (void)setFeatureFlag:(NSString *_Nonnull)flag withValue:(id _Nonnull)value; + +- (void)setConfigOverride:(NSString *_Nonnull)config withBoolean:(BOOL)value; +- (void)setConfigOverride:(NSString *_Nonnull)config withValue:(id _Nonnull)value; +- (void)setConfigOverride:(NSString *_Nonnull)config withDictionary:(NSDictionary * _Nonnull)dictionary; +- (void)setConfigOverride:(NSString *_Nonnull)config withArray:( NSArray * _Nonnull)array; + +- (void)setAudioOnly:(BOOL)audioOnly; +- (void)setAudioMuted:(BOOL)audioMuted; +- (void)setVideoMuted:(BOOL)videoMuted; +- (void)setCallHandle:(NSString *_Nonnull)callHandle; +- (void)setCallUUID:(NSUUID *_Nonnull)callUUID; +- (void)setSubject:(NSString *_Nonnull)subject; + +@end + +@interface JitsiMeetConferenceOptions : NSObject + +@property (nonatomic, copy, nullable, readonly) NSURL *serverURL; + +@property (nonatomic, copy, nullable, readonly) NSString *room; +@property (nonatomic, copy, nullable, readonly) NSString *token; + +@property (nonatomic, readonly, nonnull) NSDictionary *featureFlags; + +@property (nonatomic, nullable) JitsiMeetUserInfo *userInfo; + ++ (instancetype _Nonnull)fromBuilder:(void (^_Nonnull)(JitsiMeetConferenceOptionsBuilder *_Nonnull))initBlock; +- (instancetype _Nonnull)init NS_UNAVAILABLE; + +@end diff --git a/ios/sdk/src/JitsiMeetConferenceOptions.m b/ios/sdk/src/JitsiMeetConferenceOptions.m new file mode 100644 index 0000000..2872d83 --- /dev/null +++ b/ios/sdk/src/JitsiMeetConferenceOptions.m @@ -0,0 +1,159 @@ +/* + * 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 "JitsiMeetConferenceOptions+Private.h" +#import "JitsiMeetUserInfo+Private.h" + +@implementation JitsiMeetConferenceOptionsBuilder { + NSMutableDictionary *_featureFlags; + NSMutableDictionary *_config; +} + +- (instancetype)init { + if (self = [super init]) { + _serverURL = nil; + _room = nil; + _token = nil; + + _config = [[NSMutableDictionary alloc] init]; + _featureFlags = [[NSMutableDictionary alloc] init]; + + _userInfo = nil; + } + + return self; +} + +- (void)setFeatureFlag:(NSString *)flag withBoolean:(BOOL)value { + [self setFeatureFlag:flag withValue:[NSNumber numberWithBool:value]]; +} + +- (void)setFeatureFlag:(NSString *)flag withValue:(id)value { + _featureFlags[flag] = value; +} + +- (void)setAudioOnly:(BOOL)audioOnly { + [self setConfigOverride:@"startAudioOnly" withBoolean:audioOnly]; +} + +- (void)setAudioMuted:(BOOL)audioMuted { + [self setConfigOverride:@"startWithAudioMuted" withBoolean:audioMuted]; +} + +- (void)setVideoMuted:(BOOL)videoMuted { + [self setConfigOverride:@"startWithVideoMuted" withBoolean:videoMuted]; +} + +- (void)setCallHandle:(NSString *_Nonnull)callHandle { + [self setConfigOverride:@"callHandle" withValue:callHandle]; +} + +- (void)setCallUUID:(NSUUID *_Nonnull)callUUID { + [self setConfigOverride:@"callUUID" withValue:[callUUID UUIDString]]; +} + +- (void)setSubject:(NSString *_Nonnull)subject { + [self setConfigOverride:@"subject" withValue:subject]; +} + +- (void)setConfigOverride:(NSString *_Nonnull)config withBoolean:(BOOL)value { + [self setConfigOverride:config withValue:[NSNumber numberWithBool:value]]; +} + +- (void)setConfigOverride:(NSString *_Nonnull)config withDictionary:(NSDictionary*)dictionary { + _config[config] = dictionary; +} + +- (void)setConfigOverride:(NSString *_Nonnull)config withArray:( NSArray * _Nonnull)array { + _config[config] = array; +} + +- (void)setConfigOverride:(NSString *_Nonnull)config withValue:(id _Nonnull)value { + _config[config] = value; +} + +@end + +@implementation JitsiMeetConferenceOptions { + NSDictionary *_featureFlags; + NSDictionary *_config; +} + +#pragma mark - Internal initializer + +- (instancetype)initWithBuilder:(JitsiMeetConferenceOptionsBuilder *)builder { + if (self = [super init]) { + _serverURL = builder.serverURL; + _room = builder.room; + _token = builder.token; + + _config = builder.config; + + _featureFlags = [NSDictionary dictionaryWithDictionary:builder.featureFlags]; + + _userInfo = builder.userInfo; + } + + return self; +} + +#pragma mark - API + ++ (instancetype)fromBuilder:(void (^)(JitsiMeetConferenceOptionsBuilder *))initBlock { + JitsiMeetConferenceOptionsBuilder *builder = [[JitsiMeetConferenceOptionsBuilder alloc] init]; + initBlock(builder); + return [[JitsiMeetConferenceOptions alloc] initWithBuilder:builder]; +} + +#pragma mark - Private API + +- (NSDictionary *)asProps { + NSMutableDictionary *props = [[NSMutableDictionary alloc] init]; + + props[@"flags"] = [NSMutableDictionary dictionaryWithDictionary:_featureFlags]; + + NSMutableDictionary *urlProps = [[NSMutableDictionary alloc] init]; + + // The room is fully qualified. + if (_room != nil && [_room containsString:@"://"]) { + urlProps[@"url"] = _room; + } else { + if (_serverURL != nil) { + urlProps[@"serverURL"] = [_serverURL absoluteString]; + } + + if (_room != nil) { + urlProps[@"room"] = _room; + } + } + + if (_token != nil) { + urlProps[@"jwt"] = _token; + } + + if (_userInfo != nil) { + props[@"userInfo"] = [self.userInfo asDict]; + } + + urlProps[@"config"] = _config; + props[@"url"] = urlProps; + + return props; +} + +@end diff --git a/ios/sdk/src/JitsiMeetLogger.h b/ios/sdk/src/JitsiMeetLogger.h new file mode 100644 index 0000000..4b604e2 --- /dev/null +++ b/ios/sdk/src/JitsiMeetLogger.h @@ -0,0 +1,27 @@ +/* + * 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 "JitsiMeetBaseLogHandler.h" + + +@interface JitsiMeetLogger : NSObject + ++ (void)addHandler:(JitsiMeetBaseLogHandler *)handler; ++ (void)removeHandler:(JitsiMeetBaseLogHandler *)handler; + +@end diff --git a/ios/sdk/src/JitsiMeetLogger.m b/ios/sdk/src/JitsiMeetLogger.m new file mode 100644 index 0000000..03a2a38 --- /dev/null +++ b/ios/sdk/src/JitsiMeetLogger.m @@ -0,0 +1,42 @@ +/* + * 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 "LogUtils.h" +#import "JitsiMeetLogger.h" +#import "JitsiMeetBaseLogHandler+Private.h" + + +@implementation JitsiMeetLogger + +/** +* This gets called automagically when the program starts. +*/ +__attribute__((constructor)) +static void initializeLogger() { + NSString *mainBundleId = [NSBundle mainBundle].bundleIdentifier; + DDOSLogger *osLogger = [[DDOSLogger alloc] initWithSubsystem:mainBundleId category:@"JitsiMeetSDK"]; + [DDLog addLogger:osLogger]; +} + ++ (void)addHandler:(JitsiMeetBaseLogHandler *)handler { + [DDLog addLogger:handler.logger]; +} + ++ (void)removeHandler:(JitsiMeetBaseLogHandler *)handler { + [DDLog removeLogger:handler.logger]; +} + +@end diff --git a/ios/sdk/src/JitsiMeetSDK.h b/ios/sdk/src/JitsiMeetSDK.h new file mode 100644 index 0000000..2283532 --- /dev/null +++ b/ios/sdk/src/JitsiMeetSDK.h @@ -0,0 +1,26 @@ +/* + * Copyright @ 2020-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 +#import +#import +#import +#import +#import +#import +#import diff --git a/ios/sdk/src/JitsiMeetUserInfo+Private.h b/ios/sdk/src/JitsiMeetUserInfo+Private.h new file mode 100644 index 0000000..9a46f73 --- /dev/null +++ b/ios/sdk/src/JitsiMeetUserInfo+Private.h @@ -0,0 +1,23 @@ +/* + * 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 "JitsiMeetUserInfo.h" + +@interface JitsiMeetUserInfo () + +- (NSMutableDictionary *)asDict; + +@end diff --git a/ios/sdk/src/JitsiMeetUserInfo.h b/ios/sdk/src/JitsiMeetUserInfo.h new file mode 100644 index 0000000..d9ab837 --- /dev/null +++ b/ios/sdk/src/JitsiMeetUserInfo.h @@ -0,0 +1,38 @@ +/* + * 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 JitsiMeetUserInfo : NSObject + +/** + * User display name. + */ +@property (nonatomic, copy, nullable) NSString *displayName; +/** + * User email. + */ +@property (nonatomic, copy, nullable) NSString *email; +/** + * URL for the user avatar. + */ +@property (nonatomic, copy, nullable) NSURL *avatar; + +- (instancetype _Nullable)initWithDisplayName:(NSString *_Nullable)displayName + andEmail:(NSString *_Nullable)email + andAvatar:(NSURL *_Nullable) avatar; + +@end diff --git a/ios/sdk/src/JitsiMeetUserInfo.m b/ios/sdk/src/JitsiMeetUserInfo.m new file mode 100644 index 0000000..3811890 --- /dev/null +++ b/ios/sdk/src/JitsiMeetUserInfo.m @@ -0,0 +1,55 @@ +/* + * 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 "JitsiMeetUserInfo+Private.h" + +@implementation JitsiMeetUserInfo + +- (instancetype)initWithDisplayName:(NSString *)displayName + andEmail:(NSString *)email + andAvatar:(NSURL *_Nullable) avatar { + self = [super init]; + if (self) { + self.displayName = displayName; + self.email = email; + self.avatar = avatar; + } + + return self; +} + +- (NSDictionary *)asDict { + NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; + + if (self.displayName != nil) { + dict[@"displayName"] = self.displayName; + } + + if (self.email != nil) { + dict[@"email"] = self.email; + } + + if (self.avatar != nil) { + NSString *avatarURL = [self.avatar absoluteString]; + if (avatarURL != nil) { + dict[@"avatarURL"] = avatarURL; + } + } + + return dict; +} + +@end diff --git a/ios/sdk/src/JitsiMeetView+Private.h b/ios/sdk/src/JitsiMeetView+Private.h new file mode 100644 index 0000000..83e2b8d --- /dev/null +++ b/ios/sdk/src/JitsiMeetView+Private.h @@ -0,0 +1,29 @@ +/* + * Copyright @ 2022-present 8x8, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +static NSString * const updateViewPropsNotificationName = @"org.jitsi.meet.UpdateViewProps"; + +@interface JitsiMeetView (Private) + ++ (void)updateProps:(NSDictionary *_Nonnull)newProps; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/sdk/src/JitsiMeetView+Private.m b/ios/sdk/src/JitsiMeetView+Private.m new file mode 100644 index 0000000..bec01f4 --- /dev/null +++ b/ios/sdk/src/JitsiMeetView+Private.m @@ -0,0 +1,25 @@ +/* + * Copyright @ 2022-present 8x8, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "JitsiMeetView+Private.h" + +@implementation JitsiMeetView (Private) + ++ (void)updateProps:(NSDictionary *_Nonnull)newProps { + [[NSNotificationCenter defaultCenter] postNotificationName:updateViewPropsNotificationName object:nil userInfo:@{@"props": newProps}]; +} + +@end diff --git a/ios/sdk/src/JitsiMeetView.h b/ios/sdk/src/JitsiMeetView.h new file mode 100644 index 0000000..4983145 --- /dev/null +++ b/ios/sdk/src/JitsiMeetView.h @@ -0,0 +1,61 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 "JitsiMeetConferenceOptions.h" +#import "JitsiMeetViewDelegate.h" + +typedef NS_ENUM(NSInteger, RecordingMode) { + RecordingModeFile, + RecordingModeStream +}; + +@interface JitsiMeetView : UIView + +@property (nonatomic, nullable, weak) id delegate; + +/** + * Joins the conference specified by the given options. The given options will + * be merged with the defaultConferenceOptions (if set) in JitsiMeet. If there + * is an already active conference it will be automatically left prior to + * joining the new one. + */ +- (void)join:(JitsiMeetConferenceOptions *_Nullable)options; +/** + * Leaves the currently active conference. + */ +- (void)leave; +- (void)hangUp; +- (void)setAudioMuted:(BOOL)muted; +- (void)sendEndpointTextMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to; +- (void)toggleScreenShare:(BOOL)enabled; +- (void)retrieveParticipantsInfo:(void (^ _Nonnull)(NSArray * _Nullable))completionHandler; +- (void)openChat:(NSString * _Nullable)to; +- (void)closeChat; +- (void)sendChatMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to; +- (void)setVideoMuted:(BOOL)muted; +- (void)setClosedCaptionsEnabled:(BOOL)enabled; +- (void)toggleCamera; +- (void)showNotification:(NSString * _Nonnull)appearance :(NSString * _Nullable)description :(NSString * _Nullable)timeout :(NSString * _Nullable)title :(NSString * _Nullable)uid; +- (void)hideNotification:(NSString * _Nullable)uid; +- (void)startRecording:(RecordingMode)mode :(NSString * _Nullable)dropboxToken :(BOOL)shouldShare :(NSString * _Nullable)rtmpStreamKey :(NSString * _Nullable)rtmpBroadcastID :(NSString * _Nullable)youtubeStreamKey :(NSString * _Nullable)youtubeBroadcastID :(NSDictionary * _Nullable)extraMetadata :(BOOL)transcription; +- (void)stopRecording:(RecordingMode)mode :(BOOL)transcription; +- (void)overwriteConfig:(NSDictionary * _Nonnull)config; +- (void)sendCameraFacingModeMessage:(NSString * _Nonnull)to :(NSString * _Nullable)facingMode; +@end diff --git a/ios/sdk/src/JitsiMeetView.m b/ios/sdk/src/JitsiMeetView.m new file mode 100644 index 0000000..ba3ba05 --- /dev/null +++ b/ios/sdk/src/JitsiMeetView.m @@ -0,0 +1,311 @@ +/* + * Copyright @ 2018-present 8x8, Inc. + * Copyright @ 2017-2018 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 + +#import + +#import "ExternalAPI.h" +#import "JitsiMeet+Private.h" +#import "JitsiMeetConferenceOptions+Private.h" +#import "JitsiMeetView+Private.h" +#import "ReactUtils.h" +#import "RNRootView.h" + + +#pragma mark UIColor helpers + +@interface UIColor (Hex) + ++ (UIColor *)colorWithHex:(uint32_t)hex; ++ (UIColor *)colorWithHex:(uint32_t)hex alpha:(CGFloat)alpha; + +@end + +@implementation UIColor (Hex) + ++ (UIColor *)colorWithHex:(uint32_t)hex { + return [self colorWithHex:hex alpha:1.0]; +} + ++ (UIColor *)colorWithHex:(uint32_t)hex alpha:(CGFloat)alpha { + CGFloat red = ((hex >> 16) & 0xFF) / 255.0; + CGFloat green = ((hex >> 8) & 0xFF) / 255.0; + CGFloat blue = (hex & 0xFF) / 255.0; + + return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; +} + +@end + +#pragma mark UIColor helpers end + +/** + * Backwards compatibility: turn the boolean prop into a feature flag. + */ +static NSString *const PiPEnabledFeatureFlag = @"pip.enabled"; + +/** + * Forward declarations. + */ +static NSString *recordingModeToString(RecordingMode mode); + + +@implementation JitsiMeetView { + /** + * React Native view where the entire content will be rendered. + */ + RNRootView *rootView; +} + +#pragma mark Initializers + +- (instancetype)initWithCoder:(NSCoder *)coder { + self = [super initWithCoder:coder]; + if (self) { + [self doInitialize]; + } + + return self; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self doInitialize]; + } + + return self; +} + +/** + * Internal initialization: + * + * - sets the background color + * - registers necessary observers + */ +- (void)doInitialize { + // Set a background color which matches the one used in JS. + self.backgroundColor = [UIColor colorWithHex:0x040404 alpha:1]; + + [self registerObservers]; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +#pragma mark API + +- (void)join:(JitsiMeetConferenceOptions *)options { + [self setProps:options == nil ? @{} : [options asProps]]; +} + +- (void)leave { + [self setProps:@{}]; +} + +- (void)hangUp { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI sendHangUp]; +} + +- (void)setAudioMuted:(BOOL)muted { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI sendSetAudioMuted:muted]; +} + +- (void)sendEndpointTextMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI sendEndpointTextMessage:message :to]; +} + +- (void)toggleScreenShare:(BOOL)enabled { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI toggleScreenShare:enabled]; +} + +- (void)retrieveParticipantsInfo:(void (^ _Nonnull)(NSArray * _Nullable))completionHandler { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI retrieveParticipantsInfo:completionHandler]; +} + +- (void)openChat:(NSString*)to { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI openChat:to]; +} + +- (void)closeChat { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI closeChat]; +} + +- (void)sendChatMessage:(NSString * _Nonnull)message :(NSString * _Nullable)to { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI sendChatMessage:message :to]; +} + +- (void)setVideoMuted:(BOOL)muted { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI sendSetVideoMuted:muted]; +} + +- (void)setClosedCaptionsEnabled:(BOOL)enabled { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI sendSetClosedCaptionsEnabled:enabled]; +} + +- (void)toggleCamera { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI toggleCamera]; +} + +- (void)showNotification:(NSString *)appearance :(NSString *)description :(NSString *)timeout :(NSString *)title :(NSString *)uid { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI showNotification:appearance :description :timeout :title :uid]; +} + +-(void)hideNotification:(NSString *)uid { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI hideNotification:uid]; +} + +- (void)startRecording:(RecordingMode)mode :(NSString * _Nullable)dropboxToken :(BOOL)shouldShare :(NSString * _Nullable)rtmpStreamKey :(NSString * _Nullable)rtmpBroadcastID :(NSString * _Nullable)youtubeStreamKey :(NSString * _Nullable)youtubeBroadcastID :(NSDictionary * _Nullable)extraMetadata :(BOOL)transcription { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI startRecording:recordingModeToString(mode) :dropboxToken :shouldShare :rtmpStreamKey :rtmpBroadcastID :youtubeStreamKey :youtubeBroadcastID :extraMetadata :transcription]; +} + +- (void)stopRecording:(RecordingMode)mode :(BOOL)transcription { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI stopRecording:recordingModeToString(mode) :transcription]; +} + +- (void)overwriteConfig:(NSDictionary * _Nonnull)config { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI overwriteConfig:config]; +} + +- (void)sendCameraFacingModeMessage:(NSString * _Nonnull)to :(NSString * _Nullable)facingMode { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI sendCameraFacingModeMessage:to :facingMode]; +} + +#pragma mark Private methods + +- (void)registerObservers { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleUpdateViewPropsNotification:) name:updateViewPropsNotificationName object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleSendEventNotification:) name:sendEventNotificationName object:nil]; + } + +- (void)handleUpdateViewPropsNotification:(NSNotification *)notification { + NSDictionary *props = [notification.userInfo objectForKey:@"props"]; + [self setProps:props]; +} + +- (void)handleSendEventNotification:(NSNotification *)notification { + NSString *eventName = notification.userInfo[@"name"]; + NSString *eventData = notification.userInfo[@"data"]; + + SEL sel = NSSelectorFromString([self methodNameFromEventName:eventName]); + if (sel && [self.delegate respondsToSelector:sel]) { + [self.delegate performSelector:sel withObject:eventData]; + } +} + +/** + * Converts a specific event name i.e. redux action type description to a + * method name. + * + * @param eventName The event name to convert to a method name. + * @return A method name constructed from the specified `eventName`. + */ + - (NSString *)methodNameFromEventName:(NSString *)eventName { + NSMutableString *methodName + = [NSMutableString stringWithCapacity:eventName.length]; + + for (NSString *c in [eventName componentsSeparatedByString:@"_"]) { + if (c.length) { + [methodName appendString: + methodName.length ? c.capitalizedString : c.lowercaseString]; + } + } + [methodName appendString:@":"]; + + return methodName; + } + +/** + * Passes the given props to the React Native application. The props which we pass + * are a combination of 3 different sources: + * + * - JitsiMeet.defaultConferenceOptions + * - This function's parameters + * - Some extras which are added by this function + */ +- (void)setProps:(NSDictionary *_Nonnull)newProps { + NSMutableDictionary *props = mergeProps([[JitsiMeet sharedInstance] getDefaultProps], newProps); + + // Set the PiP flag if it wasn't manually set. + NSMutableDictionary *featureFlags = props[@"flags"]; + if (featureFlags[PiPEnabledFeatureFlag] == nil) { + featureFlags[PiPEnabledFeatureFlag] + = [NSNumber numberWithBool: + self.delegate && [self.delegate respondsToSelector:@selector(enterPictureInPicture:)]]; + } + + // This method is supposed to be imperative i.e. a second + // invocation with one and the same URL is expected to join the respective + // conference again if the first invocation was followed by leaving the + // conference. However, React and, respectively, + // appProperties/initialProperties are declarative expressions i.e. one and + // the same URL will not trigger an automatic re-render in the JavaScript + // source code. The workaround implemented below introduces imperativeness + // in React Component props by defining a unique value per invocation. + props[@"timestamp"] = @(mach_absolute_time()); + + if (rootView) { + // Update props with the new URL. + rootView.appProperties = props; + } else { + RCTBridge *bridge = [[JitsiMeet sharedInstance] getReactBridge]; + rootView + = [[RNRootView alloc] initWithBridge:bridge + moduleName:@"App" + initialProperties:props]; + rootView.backgroundColor = self.backgroundColor; + + // Add rootView as a subview which completely covers this one. + [rootView setFrame:[self bounds]]; + rootView.autoresizingMask + = UIViewAutoresizingFlexibleWidth + | UIViewAutoresizingFlexibleHeight; + [self addSubview:rootView]; + } +} + +@end + +static NSString *recordingModeToString(RecordingMode mode) { + switch (mode) { + case RecordingModeFile: + return @"file"; + case RecordingModeStream: + return @"stream"; + default: + return nil; + } +} diff --git a/ios/sdk/src/JitsiMeetViewDelegate.h b/ios/sdk/src/JitsiMeetViewDelegate.h new file mode 100644 index 0000000..0e3e925 --- /dev/null +++ b/ios/sdk/src/JitsiMeetViewDelegate.h @@ -0,0 +1,147 @@ +/* + * Copyright @ 2017-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. + */ + +@protocol JitsiMeetViewDelegate + +@optional + +/** + * Called when a conference was joined. + * + * The `data` dictionary contains a `url` key with the conference URL. + */ +- (void)conferenceJoined:(NSDictionary *)data; + +/** + * Called when the active conference ends, be it because of user choice or + * because of a failure. + * + * The `data` dictionary contains an `error` key with the error and a `url` key + * with the conference URL. If the conference finished gracefully no `error` + * key will be present. The possible values for "error" are described here: + * https://github.com/jitsi/lib-jitsi-meet/blob/master/JitsiConnectionErrors.js + * https://github.com/jitsi/lib-jitsi-meet/blob/master/JitsiConferenceErrors.js + */ +- (void)conferenceTerminated:(NSDictionary *)data; + +/** + * Called before a conference is joined. + * + * The `data` dictionary contains a `url` key with the conference URL. + */ +- (void)conferenceWillJoin:(NSDictionary *)data; + +/** + * Called when entering Picture-in-Picture is requested by the user. The app + * should now activate its Picture-in-Picture implementation (and resize the + * associated `JitsiMeetView`. The latter will automatically detect its new size + * and adjust its user interface to a variant appropriate for the small size + * ordinarily associated with Picture-in-Picture.) + * + * The `data` dictionary is empty. + */ +- (void)enterPictureInPicture:(NSDictionary *)data; + +/** + * Called when a participant has joined the conference. + * + * The `data` dictionary contains a `participantId` key with the id of the participant that has joined. + */ +- (void)participantJoined:(NSDictionary *)data; + +/** + * Called when a participant has left the conference. + * + * The `data` dictionary contains a `participantId` key with the id of the participant that has left. + */ +- (void)participantLeft:(NSDictionary *)data; + +/** + * Called when audioMuted state changed. + * + * The `data` dictionary contains a `muted` key with state of the audioMuted for the localParticipant. + */ +- (void)audioMutedChanged:(NSDictionary *)data; + +/** + * Called when an endpoint text message is received. + * + * The `data` dictionary contains a `senderId` key with the participantId of the sender and a 'message' key with the content. + */ +- (void)endpointTextMessageReceived:(NSDictionary *)data; + +/** + * Called when a participant toggled shared screen. + * + * The `data` dictionary contains a `participantId` key with the id of the participant and a 'sharing' key with boolean value. + */ +- (void)screenShareToggled:(NSDictionary *)data; + +/** + * Called when a chat message is received. + * + * The `data` dictionary contains `message`, `senderId` and `isPrivate` keys. + */ +- (void)chatMessageReceived:(NSDictionary *)data; + +/** + * Called when the chat dialog is displayed/hidden. + * + * The `data` dictionary contains a `isOpen` key. + */ +- (void)chatToggled:(NSDictionary *)data; + +/** + * Called when videoMuted state changed. + * + * The `data` dictionary contains a `muted` key with state of the videoMuted for the localParticipant. + */ +- (void)videoMutedChanged:(NSDictionary *)data; + +/** + * Called when the SDK is ready to be closed. No meeting is happening at this point. + */ +- (void)readyToClose:(NSDictionary *)data; + +/** + * Called when the transcription chunk was received. + * + * The `data` dictionary contains a `messageID`, `language`, `participant` key. + */ +- (void)transcriptionChunkReceived:(NSDictionary *)data; + +/** + * Called when the custom overflow menu button is pressed. + * + * The `data` dictionary contains a `id`, `text` key. + */ +- (void)customButtonPressed:(NSDictionary *)data; + +/** + * Called when the unique identifier for conference has been set. + * + * The `data` dictionary contains a `sessionId` key. + */ +- (void)conferenceUniqueIdSet:(NSDictionary *)data; + +/** + * Called when the recording status has changed. + * + * The `data` dictionary contains a `sessionData` key. + */ +- (void)recordingStatusChanged:(NSDictionary *)data; + +@end diff --git a/ios/sdk/src/Lite-Info.plist b/ios/sdk/src/Lite-Info.plist new file mode 100644 index 0000000..0e197ec --- /dev/null +++ b/ios/sdk/src/Lite-Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 99.0.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/ios/sdk/src/LocaleDetector.m b/ios/sdk/src/LocaleDetector.m new file mode 100644 index 0000000..a1a1619 --- /dev/null +++ b/ios/sdk/src/LocaleDetector.m @@ -0,0 +1,40 @@ +/* + * Copyright @ 2018-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. + */ + +/* + * Based on https://github.com/DylanVann/react-native-locale-detector + */ + +#import + +#import + +@interface LocaleDetector : NSObject +@end + +@implementation LocaleDetector + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +- (NSDictionary *)constantsToExport { + return @{ @"locale": [[NSLocale preferredLanguages] objectAtIndex:0] }; +} + +@end diff --git a/ios/sdk/src/LogBridge.m b/ios/sdk/src/LogBridge.m new file mode 100644 index 0000000..42d13f7 --- /dev/null +++ b/ios/sdk/src/LogBridge.m @@ -0,0 +1,57 @@ +/* + * 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 "LogUtils.h" + + +@interface LogBridge : NSObject +@end + +@implementation LogBridge + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +RCT_EXPORT_METHOD(trace:(NSString *)msg) { + DDLogDebug(@"%@", msg); +} + +RCT_EXPORT_METHOD(debug:(NSString *)msg) { + DDLogDebug(@"%@", msg); +} + +RCT_EXPORT_METHOD(info:(NSString *)msg) { + DDLogInfo(@"%@", msg); +} + +RCT_EXPORT_METHOD(log:(NSString *)msg) { + DDLogInfo(@"%@", msg); +} + +RCT_EXPORT_METHOD(warn:(NSString *)msg) { + DDLogWarn(@"%@", msg); +} + +RCT_EXPORT_METHOD(error:(NSString *)msg) { + DDLogError(@"%@", msg); +} + +@end diff --git a/ios/sdk/src/LogUtils.h b/ios/sdk/src/LogUtils.h new file mode 100644 index 0000000..d47b226 --- /dev/null +++ b/ios/sdk/src/LogUtils.h @@ -0,0 +1,23 @@ +/* + * 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. + */ + +#ifndef JM_LOG_UTILS_H +#define JM_LOG_UTILS_H + +#import +static const DDLogLevel ddLogLevel = DDLogLevelVerbose; + +#endif diff --git a/ios/sdk/src/POSIX.m b/ios/sdk/src/POSIX.m new file mode 100644 index 0000000..0780866 --- /dev/null +++ b/ios/sdk/src/POSIX.m @@ -0,0 +1,110 @@ +/* + * 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 + +#include +#include +#include +#include +#include + +@interface POSIX : NSObject +@end + +@implementation POSIX + +RCT_EXPORT_MODULE(); + +RCT_EXPORT_METHOD(getaddrinfo:(NSString *)hostname + servname:(NSString *)servname + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + int err; + const char *hostname_ = hostname ? hostname.UTF8String : NULL; + const char *servname_ = servname ? servname.UTF8String : NULL; + struct addrinfo hints; + struct addrinfo *res; + NSString *rejectCode; + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = PF_UNSPEC; + hints.ai_flags = AI_DEFAULT; + if (0 == (err = getaddrinfo(hostname_, servname_, &hints, &res))) { + char addr_[MAX(INET_ADDRSTRLEN, INET6_ADDRSTRLEN)]; + NSMutableArray *res_ = [[NSMutableArray alloc] init]; + + for (struct addrinfo *ai = res; ai; ai = ai->ai_next) { + int af = ai->ai_family; + struct sockaddr *sa = ai->ai_addr; + void *addr; + + switch (af) { + case AF_INET: + addr = &(((struct sockaddr_in *) sa)->sin_addr); + break; + case AF_INET6: + addr = &(((struct sockaddr_in6 *) sa)->sin6_addr); + break; + default: + addr = NULL; + break; + } + if (addr) { + if (inet_ntop(af, addr, addr_, sizeof(addr_))) { + [res_ addObject:@{ + @"ai_addr": [NSString stringWithUTF8String:addr_], + @"ai_family": [NSNumber numberWithInt:af], + @"ai_protocol": + [NSNumber numberWithInt:ai->ai_protocol], + @"ai_socktype": [NSNumber numberWithInt:ai->ai_socktype] + }]; + } else { + err = errno; + rejectCode = @"inet_ntop"; + } + } else { + err = EAFNOSUPPORT; + rejectCode = @"EAFNOSUPPORT"; + } + } + + freeaddrinfo(res); + + // resolve + if (res_.count) { + resolve(res_); + return; + } + + if (!err) { + err = ERANGE; + rejectCode = @"ERANGE"; + } + } else { + rejectCode = @"getaddrinfo"; + } + + // reject + NSError *error + = [NSError errorWithDomain:NSPOSIXErrorDomain + code:err + userInfo:nil]; + + reject(rejectCode, error.localizedDescription, error); +} + +@end diff --git a/ios/sdk/src/Proximity.m b/ios/sdk/src/Proximity.m new file mode 100644 index 0000000..6288fb7 --- /dev/null +++ b/ios/sdk/src/Proximity.m @@ -0,0 +1,44 @@ +/* + * 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 + +@interface Proximity : NSObject +@end + +@implementation Proximity + +RCT_EXPORT_MODULE(); + +- (dispatch_queue_t)methodQueue { + return dispatch_get_main_queue(); +} + +/** + * Enables / disables the proximity sensor monitoring. On iOS enabling the + * proximity sensor automatically dims the screen and disables touch controls, + * so there is nothing else to do (unlike on Android)! + * + * @param enabled `YES` to enable proximity (sensor) monitoring; `NO`, + * otherwise. + */ +RCT_EXPORT_METHOD(setEnabled:(BOOL)enabled) { + [[UIDevice currentDevice] setProximityMonitoringEnabled:enabled]; +} + +@end diff --git a/ios/sdk/src/RCTBridgeWrapper.h b/ios/sdk/src/RCTBridgeWrapper.h new file mode 100644 index 0000000..0b0bcb0 --- /dev/null +++ b/ios/sdk/src/RCTBridgeWrapper.h @@ -0,0 +1,39 @@ +/* + * 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 new file mode 100644 index 0000000..28a645d --- /dev/null +++ b/ios/sdk/src/RCTBridgeWrapper.m @@ -0,0 +1,130 @@ +/* + * 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 new file mode 100644 index 0000000..808ffd5 --- /dev/null +++ b/ios/sdk/src/RNRootView.h @@ -0,0 +1,20 @@ +/* + * 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 new file mode 100644 index 0000000..2264ac0 --- /dev/null +++ b/ios/sdk/src/RNRootView.m @@ -0,0 +1,45 @@ +/* + * 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.h b/ios/sdk/src/ReactUtils.h new file mode 100644 index 0000000..327e6ea --- /dev/null +++ b/ios/sdk/src/ReactUtils.h @@ -0,0 +1,24 @@ +/* + * 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. + */ + +#ifndef JM_REACTUTILS_H +#define JM_REACTUTILS_H + +NSMutableDictionary* mergeProps(NSDictionary *a, NSDictionary *b); +void registerReactFatalErrorHandler(void); +void registerReactLogHandler(void); + +#endif /* JM_REACTUTILS_H */ diff --git a/ios/sdk/src/ReactUtils.m b/ios/sdk/src/ReactUtils.m new file mode 100644 index 0000000..27c397b --- /dev/null +++ b/ios/sdk/src/ReactUtils.m @@ -0,0 +1,153 @@ +/* + * 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 "LogUtils.h" +#import "ReactUtils.h" + +#pragma mark - Utility functions + +/** + * Merges 2 sets of props into a single one. + */ +NSMutableDictionary* mergeProps(NSDictionary *a, NSDictionary *b) { + if (a == nil) { + return [NSMutableDictionary dictionaryWithDictionary:b == nil ? @{} : b]; + } + + if (b == nil) { + return [NSMutableDictionary dictionaryWithDictionary:a]; + } + + // Both have values, let's merge them, the strategy is to take the value from a first, + // then override it with the one from b. If the value is a dictionary, merge them + // recursively. Same goes for arrays. + NSMutableDictionary *result = [NSMutableDictionary dictionaryWithDictionary:a]; + + for (NSString *key in b) { + id value = b[key]; + id aValue = result[key]; + + if (aValue == nil) { + result[key] = value; + continue; + } + + if ([value isKindOfClass:NSArray.class]) { + result[key] = [aValue arrayByAddingObjectsFromArray:value]; + } else if ([value isKindOfClass:NSDictionary.class]) { + result[key] = mergeProps(aValue, value); + } else { + result[key] = value; + } + } + + return result; +} + +/** + * A `RCTFatalHandler` implementation which swallows JavaScript errors. In the + * Release configuration, React Native will (intentionally) raise an unhandled + * `NSException` for an unhandled JavaScript error. This will effectively kill + * the application. `_RCTFatal` is suitable to be in accord with the Web i.e. + * not kill the application. + */ +RCTFatalHandler _RCTFatal = ^(NSError *error) { + id jsStackTrace = error.userInfo[RCTJSStackTraceKey]; + NSString *name + = [NSString stringWithFormat:@"%@: %@", RCTFatalExceptionName, error.localizedDescription]; + NSString *message + = RCTFormatError(error.localizedDescription, jsStackTrace, -1); + DDLogError(@"FATAL ERROR: %@\n%@", name, message); +}; + +/** + * Helper function to register a fatal error handler for React. Our handler + * won't kill the process, it will swallow JS errors and print stack traces + * instead. + */ +void registerReactFatalErrorHandler() { +#if !DEBUG + // In the Release configuration, React Native will (intentionally) raise an + // unhandled `NSException` for an unhandled JavaScript error. This will + // effectively kill the application. In accord with the Web, do not kill the + // application. + if (!RCTGetFatalHandler()) { + RCTSetFatalHandler(_RCTFatal); + } +#endif +} + +/** + * A `RTCLogFunction` implementation which uses CocoaLumberjack. + */ +RCTLogFunction _RCTLog + = ^(RCTLogLevel level, __unused RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) +{ + // Convert RN log levels into Lumberjack's log flags. + // + DDLogFlag logFlag; + switch (level) { + case RCTLogLevelTrace: + logFlag = DDLogFlagDebug; + break; + case RCTLogLevelInfo: + logFlag = DDLogFlagInfo; + break; + case RCTLogLevelWarning: + logFlag = DDLogFlagWarning; + break; + case RCTLogLevelError: + logFlag = DDLogFlagError; + break; + case RCTLogLevelFatal: + logFlag = DDLogFlagError; + break; + default: + // Just in case more are added in the future. + logFlag = DDLogFlagInfo; + break; + } + + // Build the message object we want to log. + // + DDLogMessage *logMessage + = [[DDLogMessage alloc] initWithMessage:message + level:LOG_LEVEL_DEF + flag:logFlag + context:0 + file:fileName + function:nil + line:[lineNumber integerValue] + tag:nil + options:0 + timestamp:nil]; + + // Log the message. Errors are logged synchronously, and other async, as the Lumberjack defaults. + // + [DDLog log:logFlag != DDLogFlagError + message:logMessage]; +}; + +/** + * Helper function which registers a React Native log handler. + */ +void registerReactLogHandler() { + RCTSetLogFunction(_RCTLog); + RCTSetLogThreshold(RCTLogLevelInfo); +} diff --git a/ios/sdk/src/ScheenshareEventEmiter.h b/ios/sdk/src/ScheenshareEventEmiter.h new file mode 100644 index 0000000..aa998ef --- /dev/null +++ b/ios/sdk/src/ScheenshareEventEmiter.h @@ -0,0 +1,25 @@ +/* + * 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. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ScheenshareEventEmiter : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/sdk/src/ScheenshareEventEmiter.m b/ios/sdk/src/ScheenshareEventEmiter.m new file mode 100644 index 0000000..137bb3e --- /dev/null +++ b/ios/sdk/src/ScheenshareEventEmiter.m @@ -0,0 +1,72 @@ +/* + * 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. + */ + +#import "ScheenshareEventEmiter.h" +#import "JitsiMeet+Private.h" +#import "ExternalAPI.h" + +NSNotificationName const kBroadcastStartedNotification = @"iOS_BroadcastStarted"; +NSNotificationName const kBroadcastStoppedNotification = @"iOS_BroadcastStopped"; + +@implementation ScheenshareEventEmiter { + CFNotificationCenterRef _notificationCenter; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _notificationCenter = CFNotificationCenterGetDarwinNotifyCenter(); + [self setupObserver]; + } + + return self; +} + +- (void)dealloc { + [self clearObserver]; +} + +// MARK: Private Methods + +- (void)setupObserver { + CFNotificationCenterAddObserver(_notificationCenter, (__bridge const void *)(self), broadcastStartedNotificationCallback, (__bridge CFStringRef)kBroadcastStartedNotification, NULL, CFNotificationSuspensionBehaviorDeliverImmediately); + CFNotificationCenterAddObserver(_notificationCenter, (__bridge const void *)(self), broadcastStoppedNotificationCallback, (__bridge CFStringRef)kBroadcastStoppedNotification, NULL, CFNotificationSuspensionBehaviorDeliverImmediately); +} + +- (void)clearObserver { + CFNotificationCenterRemoveObserver(_notificationCenter, (__bridge const void *)(self), (__bridge CFStringRef)kBroadcastStartedNotification, NULL); + CFNotificationCenterRemoveObserver(_notificationCenter, (__bridge const void *)(self), (__bridge CFStringRef)kBroadcastStoppedNotification, NULL); +} + +void broadcastStartedNotificationCallback(CFNotificationCenterRef center, + void *observer, + CFStringRef name, + const void *object, + CFDictionaryRef userInfo) { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI toggleScreenShare:true]; +} + +void broadcastStoppedNotificationCallback(CFNotificationCenterRef center, + void *observer, + CFStringRef name, + const void *object, + CFDictionaryRef userInfo) { + ExternalAPI *externalAPI = [[JitsiMeet sharedInstance] getExternalAPI]; + [externalAPI toggleScreenShare:false]; +} + +@end diff --git a/ios/sdk/src/callkit/CallKit.m b/ios/sdk/src/callkit/CallKit.m new file mode 100644 index 0000000..9fa88f0 --- /dev/null +++ b/ios/sdk/src/callkit/CallKit.m @@ -0,0 +1,347 @@ +// +// Based on RNCallKit +// +// Original license: +// +// Copyright (c) 2016, Ian Yu-Hsun Lin +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +#import +#import +#import +#import + +#import +#import +#import +#import +#import + +#import "../JitsiAudioSession.h" +#import "JMCallKitProxy.h" + + +// The events emitted/supported by RNCallKit: +static NSString * const RNCallKitPerformAnswerCallAction + = @"performAnswerCallAction"; +static NSString * const RNCallKitPerformEndCallAction + = @"performEndCallAction"; +static NSString * const RNCallKitPerformSetMutedCallAction + = @"performSetMutedCallAction"; +static NSString * const RNCallKitProviderDidReset + = @"providerDidReset"; + +@interface RNCallKit : RCTEventEmitter +@end + +@implementation RNCallKit + +RCT_EXPORT_MODULE(); + +- (NSArray *)supportedEvents { + return @[ + RNCallKitPerformAnswerCallAction, + RNCallKitPerformEndCallAction, + RNCallKitPerformSetMutedCallAction, + RNCallKitProviderDidReset + ]; +} + +- (void)dealloc { + [JMCallKitProxy removeListener:self]; +} + +- (dispatch_queue_t)methodQueue { + // Make sure all our methods run in the main thread. + return dispatch_get_main_queue(); +} + +// End call +RCT_EXPORT_METHOD(endCall:(NSString *)callUUID + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + RCTLogInfo(@"[RNCallKit][endCall] callUUID = %@", callUUID); + + NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID]; + + if (!callUUID_) { + reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil); + return; + } + + CXEndCallAction *action + = [[CXEndCallAction alloc] initWithCallUUID:callUUID_]; + [self requestTransaction:[[CXTransaction alloc] initWithAction:action] + resolve:resolve + reject:reject]; +} + +// Mute / unmute (audio) +RCT_EXPORT_METHOD(setMuted:(NSString *)callUUID + muted:(BOOL)muted + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + RCTLogInfo(@"[RNCallKit][setMuted] callUUID = %@", callUUID); + + NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID]; + + if (!callUUID_) { + reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil); + return; + } + + CXSetMutedCallAction *action + = [[CXSetMutedCallAction alloc] initWithCallUUID:callUUID_ muted:muted]; + [self requestTransaction:[[CXTransaction alloc] initWithAction:action] + resolve:resolve + reject:reject]; +} + +RCT_EXPORT_METHOD(setProviderConfiguration:(NSDictionary *)dictionary) { + RCTLogInfo(@"[RNCallKit][setProviderConfiguration:] dictionary = %@", dictionary); + + if (![JMCallKitProxy isProviderConfigured]) { + JMCallKitProxy.enabled = true; + [self configureProviderFromDictionary:dictionary]; + } + + // register to receive CallKit proxy events + [JMCallKitProxy addListener:self]; +} + +// Start outgoing call +RCT_EXPORT_METHOD(startCall:(NSString *)callUUID + handle:(NSString *)handle + video:(BOOL)video + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + RCTLogInfo(@"[RNCallKit][startCall] callUUID = %@", callUUID); + + NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID]; + + if (!callUUID_) { + reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil); + return; + } + + // Don't start a new call if there's an active call for the specified + // callUUID. JitsiMeetView was configured for an incoming call. + if ([JMCallKitProxy hasActiveCallForUUID:callUUID]) { + resolve(nil); + return; + } + + CXHandle *handle_ + = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle]; + CXStartCallAction *action + = [[CXStartCallAction alloc] initWithCallUUID:callUUID_ + handle:handle_]; + action.video = video; + CXTransaction *transaction = [[CXTransaction alloc] initWithAction:action]; + [self requestTransaction:transaction resolve:resolve reject:reject]; +} + +// Indicate call failed +RCT_EXPORT_METHOD(reportCallFailed:(NSString *)callUUID + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID]; + + if (!callUUID_) { + reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil); + return; + } + + [JMCallKitProxy reportCallWith:callUUID_ + endedAt:nil + reason:CXCallEndedReasonFailed]; + resolve(nil); +} + +// Indicate outgoing call connected. +RCT_EXPORT_METHOD(reportConnectedOutgoingCall:(NSString *)callUUID + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID]; + + if (!callUUID_) { + reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil); + return; + } + + [JMCallKitProxy reportOutgoingCallWith:callUUID_ + connectedAt:nil]; + resolve(nil); +} + +// Update call in case we have a display name or video capability changes. +RCT_EXPORT_METHOD(updateCall:(NSString *)callUUID + options:(NSDictionary *)options + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + RCTLogInfo(@"[RNCallKit][updateCall] callUUID = %@ options = %@", callUUID, options); + + NSUUID *callUUID_ = [[NSUUID alloc] initWithUUIDString:callUUID]; + + if (!callUUID_) { + reject(nil, [NSString stringWithFormat:@"Invalid UUID: %@", callUUID], nil); + return; + } + + NSString *displayName = options[@"displayName"]; + BOOL hasVideo = [(NSNumber*)options[@"hasVideo"] boolValue]; + + [JMCallKitProxy reportCallUpdateWith:callUUID_ + handle:nil + displayName:displayName + hasVideo:hasVideo]; + + resolve(nil); +} + +#pragma mark - Helper methods + +- (void)configureProviderFromDictionary:(NSDictionary* )dictionary { + RCTLogInfo(@"[RNCallKit][providerConfigurationFromDictionary: %@]", dictionary); + + if (!dictionary) { + dictionary = @{}; + } + + // localizedName + NSString *localizedName = dictionary[@"localizedName"]; + if (!localizedName) { + localizedName + = [[NSBundle mainBundle] infoDictionary][@"CFBundleDisplayName"]; + } + + // iconTemplateImageData + NSString *iconTemplateImageName = dictionary[@"iconTemplateImageName"]; + NSData *iconTemplateImageData; + UIImage *iconTemplateImage; + if (iconTemplateImageName) { + // First try to load the resource from the main bundle. + iconTemplateImage = [UIImage imageNamed:iconTemplateImageName]; + + // If that didn't work, use the one built-in. + if (!iconTemplateImage) { + iconTemplateImage = [UIImage imageNamed:iconTemplateImageName + inBundle:[NSBundle bundleForClass:self.class] + compatibleWithTraitCollection:nil]; + } + + if (iconTemplateImage) { + iconTemplateImageData = UIImagePNGRepresentation(iconTemplateImage); + } + } + + NSString *ringtoneSound = dictionary[@"ringtoneSound"]; + + [JMCallKitProxy + configureProviderWithLocalizedName:localizedName + ringtoneSound:ringtoneSound + iconTemplateImageData:iconTemplateImageData]; +} + +- (void)requestTransaction:(CXTransaction *)transaction + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject { + RCTLogInfo(@"[RNCallKit][requestTransaction] transaction = %@", transaction); + + [JMCallKitProxy request:transaction + completion:^(NSError * _Nullable error) { + if (error) { + RCTLogError(@"[RNCallKit][requestTransaction] Error requesting transaction (%@): (%@)", transaction.actions, error); + reject(nil, @"Error processing CallKit transaction", error); + } else { + resolve(nil); + } + }]; +} + +#pragma mark - JMCallKitListener + +// Called when the provider has been reset. We should terminate all calls. +- (void)providerDidReset { + RCTLogInfo(@"[RNCallKit][CXProviderDelegate][providerDidReset:]"); + + [self sendEventWithName:RNCallKitProviderDidReset body:nil]; +} + +// Answering incoming call +- (void) performAnswerCallWithUUID:(NSUUID *)UUID { + RCTLogInfo(@"[RNCallKit][CXProviderDelegate][provider:performAnswerCallAction:]"); + + [self sendEventWithName:RNCallKitPerformAnswerCallAction + body:@{ @"callUUID": UUID.UUIDString }]; +} + +// Call ended, user request +- (void) performEndCallWithUUID:(NSUUID *)UUID { + RCTLogInfo(@"[RNCallKit][CXProviderDelegate][provider:performEndCallAction:]"); + + [self sendEventWithName:RNCallKitPerformEndCallAction + body:@{ @"callUUID": UUID.UUIDString }]; +} + +// Handle audio mute from CallKit view +- (void) performSetMutedCallWithUUID:(NSUUID *)UUID + isMuted:(BOOL)isMuted { + RCTLogInfo(@"[RNCallKit][CXProviderDelegate][provider:performSetMutedCallAction:]"); + + [self sendEventWithName:RNCallKitPerformSetMutedCallAction + body:@{ + @"callUUID": UUID.UUIDString, + @"muted": @(isMuted) + }]; +} + +// Starting outgoing call +- (void) performStartCallWithUUID:(NSUUID *)UUID + isVideo:(BOOL)isVideo { + RCTLogInfo(@"[RNCallKit][CXProviderDelegate][provider:performStartCallAction:]"); + + [JMCallKitProxy reportOutgoingCallWith:UUID + startedConnectingAt:nil]; +} + +- (void) providerDidActivateAudioSessionWithSession:(AVAudioSession *)session { + RCTLogInfo(@"[RNCallKit][CXProviderDelegate][provider:didActivateAudioSession:]"); + + [JitsiAudioSession activateWithAudioSession:session]; +} + +- (void) providerDidDeactivateAudioSessionWithSession:(AVAudioSession *)session { + RCTLogInfo(@"[RNCallKit][CXProviderDelegate][provider:didDeactivateAudioSession:]"); + + [JitsiAudioSession deactivateWithAudioSession:session]; +} + +- (void) providerTimedOutPerformingActionWithAction:(CXAction *)action { + RCTLogWarn(@"[RNCallKit][CXProviderDelegate][provider:timedOutPerformingAction:]"); +} + + +// The bridge might already be invalidated by the time a CallKit event is processed, +// just ignore it and don't emit it. +- (void)sendEventWithName:(NSString *)name body:(id)body { + if (!self.bridge) { + return; + } + + [super sendEventWithName:name body:body]; +} + +@end diff --git a/ios/sdk/src/callkit/JMCallKitEmitter.h b/ios/sdk/src/callkit/JMCallKitEmitter.h new file mode 100644 index 0000000..fdd908e --- /dev/null +++ b/ios/sdk/src/callkit/JMCallKitEmitter.h @@ -0,0 +1,35 @@ +/* + * Copyright @ 2022-present 8x8, Inc. + * Copyright @ 2018-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 "JMCallKitListener.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface JMCallKitEmitter : NSObject + +#pragma mark Add/Remove listeners +- (void)addListener:(id)listener; +- (void)removeListener:(id)listener; + +#pragma mark Add mute action +- (void)addMuteAction:(NSUUID *)actionUUID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/sdk/src/callkit/JMCallKitEmitter.m b/ios/sdk/src/callkit/JMCallKitEmitter.m new file mode 100644 index 0000000..12a4b22 --- /dev/null +++ b/ios/sdk/src/callkit/JMCallKitEmitter.m @@ -0,0 +1,117 @@ +/* + * Copyright @ 2022-present 8x8, Inc. + * Copyright @ 2018-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 "JMCallKitEmitter.h" + +@interface JMCallKitEmitter() + +@property(nonatomic, strong) NSMutableArray> *listeners; +@property(nonatomic, strong) NSMutableSet *pendingMuteActions; + +@end + +@implementation JMCallKitEmitter + +- (instancetype)init { + self = [super init]; + if (self) { + self.listeners = [[NSMutableArray alloc] init]; + self.pendingMuteActions = [[NSMutableSet alloc] init]; + } + return self; +} + +#pragma mark Add/Remove listeners + +- (void)addListener:(id)listener { + if (![self.listeners containsObject:listener]) { + [self.listeners addObject:listener]; + } +} + +- (void)removeListener:(id)listener { + [self.listeners removeObject:listener]; +} + +#pragma mark Add mute action + +- (void)addMuteAction:(NSUUID *)actionUUID { + [self.pendingMuteActions addObject:actionUUID]; +} + +#pragma mark CXProviderDelegate + +- (void)providerDidReset:(CXProvider *)provider { + for (id listener in self.listeners) { + [listener providerDidReset]; + } + [self.pendingMuteActions removeAllObjects]; +} + +- (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action { + for (id listener in self.listeners) { + [listener performAnswerCallWithUUID:action.callUUID]; + } + [action fulfill]; +} + +- (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action { + for (id listener in self.listeners) { + [listener performEndCallWithUUID:action.callUUID]; + } + [action fulfill]; +} + +- (void)provider:(CXProvider *)provider performSetMutedCallAction:(CXSetMutedCallAction *)action { + NSUUID *uuid = ([self.pendingMuteActions containsObject:action.UUID]) ? action.UUID : nil; + [self.pendingMuteActions removeObject:action.UUID]; + + // Avoid mute actions ping-pong: if the mute action was caused by + // the JS side (we requested a transaction) don't call the delegate + // method. If it was called by the provider itself (when the user presses + // the mute button in the CallKit view) then call the delegate method. + // + // NOTE: don't try to be clever and remove this. Been there, done that. + // Won't work. + if (uuid == nil) { + for (id listener in self.listeners) { + [listener performSetMutedCallWithUUID:action.callUUID isMuted:action.isMuted]; + } + } + [action fulfill]; +} + +- (void)provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action { + for (id listener in self.listeners) { + [listener performStartCallWithUUID:action.callUUID isVideo:action.isVideo]; + } + [action fulfill]; +} + +- (void)provider:(CXProvider *)provider didActivateAudioSession:(AVAudioSession *)audioSession { + for (id listener in self.listeners) { + [listener providerDidActivateAudioSessionWithSession:audioSession]; + } +} + +- (void)provider:(CXProvider *)provider didDeactivateAudioSession:(AVAudioSession *)audioSession { + for (id listener in self.listeners) { + [listener providerDidDeactivateAudioSessionWithSession:audioSession]; + } +} + +@end diff --git a/ios/sdk/src/callkit/JMCallKitListener.h b/ios/sdk/src/callkit/JMCallKitListener.h new file mode 100644 index 0000000..fcc5916 --- /dev/null +++ b/ios/sdk/src/callkit/JMCallKitListener.h @@ -0,0 +1,34 @@ +/* + * Copyright @ 2022-present 8x8, Inc. + * Copyright @ 2018-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 + +@protocol JMCallKitListener + +@optional +- (void)providerDidReset; +- (void)performAnswerCallWithUUID:(nonnull NSUUID *)UUID; +- (void)performEndCallWithUUID:(nonnull NSUUID *)UUID; +- (void)performSetMutedCallWithUUID:(nonnull NSUUID *)UUID isMuted:(BOOL)isMuted; +- (void)performStartCallWithUUID:(nonnull NSUUID *)UUID isVideo:(BOOL)isVideo; +- (void)providerDidActivateAudioSessionWithSession:(nonnull AVAudioSession *)session; +- (void)providerDidDeactivateAudioSessionWithSession:(nonnull AVAudioSession *)session; +- (void)providerTimedOutPerformingActionWithAction:(nonnull CXAction *)action; + +@end diff --git a/ios/sdk/src/callkit/JMCallKitProxy.h b/ios/sdk/src/callkit/JMCallKitProxy.h new file mode 100644 index 0000000..82cd72c --- /dev/null +++ b/ios/sdk/src/callkit/JMCallKitProxy.h @@ -0,0 +1,87 @@ +/* + * Copyright @ 2022-present 8x8, Inc. + * Copyright @ 2018-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 "JMCallKitListener.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol CXProviderProtocol + +@property (nonatomic, readwrite, copy) CXProviderConfiguration* configuration; + +- (void)setDelegate:(nullable id)delegate queue:(nullable dispatch_queue_t)queue; +- (void)reportNewIncomingCallWithUUID:(NSUUID *)uuid update:(CXCallUpdate *)update completion:(void (^)(NSError *))completion; +- (void)reportCallWithUUID:(NSUUID *)uuid updated:(CXCallUpdate *)update; +- (void)reportCallWithUUID:(NSUUID *)uuid endedAtDate:(NSDate *)dateEnded reason:(CXCallEndedReason)endedReason; +- (void)reportOutgoingCallWithUUID:(NSUUID *)uuid startedConnectingAtDate:(NSDate *)dateStartedConnecting; +- (void)reportOutgoingCallWithUUID:(NSUUID *)uuid connectedAtDate:(NSDate *)dateConnected; +- (void)invalidate; + +@end + +#pragma mark - +@protocol CXCallControllerProtocol + +@property (nonatomic, readonly) NSArray *calls; + +- (void)requestTransaction:(CXTransaction *)transaction completion:(void (^)(NSError *_Nullable))completion; + +@end + +#pragma mark - + +/// JitsiMeet CallKit proxy +// NOTE: The methods this class exposes are meant to be called in the UI thread. +// All delegate methods called by JMCallKitEmitter will be called in the UI thread. +@interface JMCallKitProxy : NSObject + +/// Enables the proxy in between CallKit and the consumers of the SDK. +/// Defaults to disabled. Set to true when you want to use CallKit. +@property (class) BOOL enabled; +@property (class) id callKitProvider; +@property (class) id callKitCallController; + ++ (void)configureProviderWithLocalizedName:(nonnull NSString *)localizedName + ringtoneSound:(nullable NSString *)ringtoneSound + iconTemplateImageData:(nullable NSData*)imageData +NS_SWIFT_NAME(configureProvider(localizedName:ringtoneSound:iconTemplateImageData:)); ++ (BOOL)isProviderConfigured; ++ (void)addListener:(nonnull id)listener NS_SWIFT_NAME(addListener(_:)); ++ (void)removeListener:(nonnull id)listener NS_SWIFT_NAME(removeListener(_:)); ++ (BOOL)hasActiveCallForUUID:(nonnull NSString *)callUUID NS_SWIFT_NAME(hasActiveCallForUUID(_:)); ++ (void)reportNewIncomingCallWithUUID:(nonnull NSUUID *)uuid + handle:(nullable NSString*)handle + displayName:(nullable NSString*)displayName + hasVideo:(BOOL)hasVideo + completion:(nonnull void (^)(NSError *_Nullable))completion +NS_SWIFT_NAME(reportNewIncomingCall(UUID:handle:displayName:hasVideo:completion:)); ++ (void)reportCallUpdateWith:(nonnull NSUUID *)uuid + handle:(nullable NSString *)handle + displayName:(nullable NSString *)displayName + hasVideo:(BOOL)hasVideo; ++ (void)reportCallWith:(nonnull NSUUID *)uuid + endedAt:(nullable NSDate *)dateEnded + reason:(CXCallEndedReason)endedReason; ++ (void)reportOutgoingCallWith:(nonnull NSUUID *)uuid startedConnectingAt:(nullable NSDate *)dateStartedConnecting; ++ (void)reportOutgoingCallWith:(nonnull NSUUID *)uuid connectedAt:(nullable NSDate *)dateConnected; ++ (void)request:(nonnull CXTransaction *)transaction completion:(nonnull void (^)(NSError *_Nullable))completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/sdk/src/callkit/JMCallKitProxy.m b/ios/sdk/src/callkit/JMCallKitProxy.m new file mode 100644 index 0000000..c18f9c8 --- /dev/null +++ b/ios/sdk/src/callkit/JMCallKitProxy.m @@ -0,0 +1,284 @@ +/* + * Copyright @ 2022-present 8x8, Inc. + * Copyright @ 2018-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 "JMCallKitProxy.h" +#import "JMCallKitEmitter.h" + +#pragma mark - +@interface CXProvider(CXProviderProtocol) +@end + +@implementation CXProvider(CXProviderProtocol) +@end + +#pragma mark - +@interface CXCallController(CXCallControllerProtocol) + +@property (nonatomic, readonly) NSArray *calls; + +@end + +@implementation CXCallController(CXCallControllerProtocol) + +@dynamic calls; + +- (NSArray *)calls { + return self.callObserver.calls; +} + +@end + +#pragma mark - +@interface JMCallKitProxy () + +@property (class) CXProvider *defaultProvider; +@property (class) CXProviderConfiguration *providerConfiguration; + +@end + +@interface JMCallKitProxy (Helpers) + ++ (CXCallUpdate *)makeCXUpdateWithHandle:(nullable NSString *)handle displayName:(nullable NSString *)displayName hasVideo:(BOOL)hasVideo; + +@end + +@implementation JMCallKitProxy + +@dynamic callKitProvider, callKitCallController, enabled; +@dynamic defaultProvider, providerConfiguration; + +static id _callKitProvider = nil; +static id _callKitCallController = nil; +static BOOL _enabled = false; +static CXProvider *_defaultProvider = nil; +static CXProviderConfiguration *_providerConfiguration = nil; + +#pragma mark CallJit proxy + ++ (id)callKitProvider { + return _callKitProvider; +} + ++ (void)setCallKitProvider:(id)callKitProvider { + if (_callKitProvider != callKitProvider) { + _callKitProvider = callKitProvider; + } +} + ++ (id)callKitCallController { + return _callKitCallController; +} + ++ (void)setCallKitCallController:(id)callKitCallController { + if (_callKitCallController != callKitCallController) { + _callKitCallController = callKitCallController; + } +} + ++ (BOOL)enabled { + return _enabled; +} + ++ (void)setEnabled:(BOOL)enabled { + _enabled = enabled ; + + if (!self.callKitProvider) { + [self.provider invalidate]; + } + + if (enabled) { + CXProviderConfiguration *configuration = self.providerConfiguration? self.providerConfiguration : [[CXProviderConfiguration alloc] initWithLocalizedName:@""]; + if (!self.callKitProvider) { + self.defaultProvider = [[CXProvider alloc] initWithConfiguration: configuration]; + } + + [self.provider setDelegate:self.emitter queue:nil]; + } else { + [self.provider setDelegate:nil queue:nil]; + } +} + ++ (CXProvider *)defaultProvider { + return _defaultProvider; +} + ++ (void)setDefaultProvider:(CXProvider *)defaultProvider { + if (_defaultProvider != defaultProvider) { + _defaultProvider = defaultProvider; + } +} + ++ (id)provider { + return self.callKitProvider != nil ? self.callKitProvider : self.defaultProvider; +} + ++ (id)callController { + return self.callKitCallController != nil ? self.callKitCallController : self.defaultCallController; +} + ++ (CXProviderConfiguration *)providerConfiguration { + return _providerConfiguration; +} + ++ (void)setProviderConfiguration:(CXProviderConfiguration *)providerConfiguration { + if (_providerConfiguration != providerConfiguration) { + _providerConfiguration = providerConfiguration; + + if (providerConfiguration) { + self.provider.configuration = providerConfiguration; + [self.provider setDelegate:self.emitter queue:nil]; + } + } +} + ++ (CXCallController *)defaultCallController { + static dispatch_once_t once; + static CXCallController *defaultCallController; + dispatch_once(&once, ^{ + defaultCallController = [[CXCallController alloc] init]; + }); + + return defaultCallController; +} + ++ (JMCallKitEmitter *)emitter { + static dispatch_once_t once; + static JMCallKitEmitter *emitter; + dispatch_once(&once, ^{ + emitter = [[JMCallKitEmitter alloc] init]; + }); + + return emitter; +} + ++ (void)configureProviderWithLocalizedName:(nonnull NSString *)localizedName + ringtoneSound:(nullable NSString *)ringtoneSound + iconTemplateImageData:(nullable NSData*)imageData { + if (!self.enabled) { + return; + } + + CXProviderConfiguration *configuration = [[CXProviderConfiguration alloc] initWithLocalizedName:localizedName]; + configuration.iconTemplateImageData = imageData; + configuration.maximumCallGroups = 1; + configuration.maximumCallsPerCallGroup = 1; + configuration.ringtoneSound = ringtoneSound; + configuration.supportedHandleTypes = [NSSet setWithArray:@[@(CXHandleTypeGeneric)]]; + configuration.supportsVideo = true; + + self.providerConfiguration = configuration; +} + ++ (BOOL)isProviderConfigured { + return self.providerConfiguration != nil; +} + ++ (void)addListener:(nonnull id)listener { + [self.emitter addListener:listener]; +} + ++ (void)removeListener:(nonnull id)listener { + [self.emitter removeListener:listener]; +} + ++ (BOOL)hasActiveCallForUUID:(nonnull NSString *)callUUID { + CXCall *activeCallForUUID = [[self.callController calls] filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(CXCall *evaluatedObject, NSDictionary *bindings) { + return [evaluatedObject.UUID.UUIDString isEqualToString:callUUID]; + }]].firstObject; + + if (!activeCallForUUID) { + return false; + } + return true; +} + ++ (void)reportNewIncomingCallWithUUID:(nonnull NSUUID *)uuid + handle:(nullable NSString*)handle + displayName:(nullable NSString*)displayName + hasVideo:(BOOL)hasVideo + completion:(nonnull void (^)(NSError *_Nullable))completion { + if (!self.enabled) { + return; + } + + CXCallUpdate *callUpdate = [self makeCXUpdateWithHandle:handle displayName:displayName hasVideo:hasVideo]; + [self.provider reportNewIncomingCallWithUUID:uuid update:callUpdate completion:completion]; +} + ++ (void)reportCallUpdateWith:(nonnull NSUUID *)uuid + handle:(nullable NSString *)handle + displayName:(nullable NSString *)displayName + hasVideo:(BOOL)hasVideo { + if (!self.enabled) { + return; + } + + CXCallUpdate *callUpdate = [self makeCXUpdateWithHandle:handle displayName:displayName hasVideo:hasVideo]; + [self.provider reportCallWithUUID:uuid updated:callUpdate]; +} + ++ (void)reportCallWith:(nonnull NSUUID *)uuid + endedAt:(nullable NSDate *)dateEnded + reason:(CXCallEndedReason)endedReason { + [self.provider reportCallWithUUID:uuid endedAtDate:dateEnded reason:endedReason]; +} + ++ (void)reportOutgoingCallWith:(nonnull NSUUID *)uuid startedConnectingAt:(nullable NSDate *)dateStartedConnecting { + [self.provider reportOutgoingCallWithUUID:uuid startedConnectingAtDate:dateStartedConnecting]; +} + ++ (void)reportOutgoingCallWith:(nonnull NSUUID *)uuid connectedAt:(nullable NSDate *)dateConnected { + [self.provider reportOutgoingCallWithUUID:uuid connectedAtDate:dateConnected]; +} + ++ (void)request:(nonnull CXTransaction *)transaction completion:(nonnull void (^)(NSError *_Nullable))completion { + if (!self.enabled) { + return; + } + + // XXX keep track of muted actions to avoid "ping-pong"ing. See + // JMCallKitEmitter for details on the CXSetMutedCallAction handling. + for (CXAction *action in transaction.actions) { + if ([action isKindOfClass:[CXSetMutedCallAction class]]) { + [self.emitter addMuteAction:action.UUID]; + } + } + + [self.callController requestTransaction:transaction completion:completion]; +} + +@end + +@implementation JMCallKitProxy (Helpers) + ++ (CXCallUpdate *)makeCXUpdateWithHandle:(nullable NSString *)handle displayName:(nullable NSString *)displayName hasVideo:(BOOL)hasVideo { + CXCallUpdate *update = [[CXCallUpdate alloc] init]; + update.supportsDTMF = false; + update.supportsHolding = false; + update.supportsGrouping = false; + update.supportsUngrouping = false; + update.hasVideo = hasVideo; + update.localizedCallerName = displayName; + + if (handle) { + update.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle]; + } + + return update; +} + +@end diff --git a/ios/sdk/src/dropbox/Dropbox.h b/ios/sdk/src/dropbox/Dropbox.h new file mode 100644 index 0000000..5a53b5f --- /dev/null +++ b/ios/sdk/src/dropbox/Dropbox.h @@ -0,0 +1,27 @@ +/* + * Copyright @ 2018-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 + +@interface Dropbox : NSObject + ++ (BOOL)application:(UIApplication *)app + openURL:(NSURL *)url + options:(NSDictionary *)options; + ++ (void)setAppKey; + +@end diff --git a/ios/sdk/src/dropbox/Dropbox.m b/ios/sdk/src/dropbox/Dropbox.m new file mode 100644 index 0000000..87b6eb8 --- /dev/null +++ b/ios/sdk/src/dropbox/Dropbox.m @@ -0,0 +1,180 @@ +/* + * 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 "Dropbox.h" + +RCTPromiseResolveBlock currentResolve = nil; +RCTPromiseRejectBlock currentReject = nil; + +@implementation Dropbox + ++ (NSString *)getAppKey{ + NSArray *urlTypes + = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"]; + + for (NSDictionary *urlType in urlTypes) { + NSArray *urlSchemes = urlType[@"CFBundleURLSchemes"]; + + if (urlSchemes) { + for (NSString *urlScheme in urlSchemes) { + if (urlScheme && [urlScheme hasPrefix:@"db-"]) { + return [urlScheme substringFromIndex:3]; + } + } + } + } + + return nil; +} + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +- (NSDictionary *)constantsToExport { + BOOL enabled = [Dropbox getAppKey] != nil; + + return @{ + @"ENABLED": [NSNumber numberWithBool:enabled] + }; +}; + +RCT_EXPORT_METHOD(authorize:(RCTPromiseResolveBlock)resolve + reject:(__unused RCTPromiseRejectBlock)reject) { + currentResolve = resolve; + currentReject = reject; + + dispatch_async(dispatch_get_main_queue(), ^{ + DBScopeRequest *scopeRequest = [[DBScopeRequest alloc] initWithScopeType:DBScopeTypeUser + scopes:@[] + includeGrantedScopes:NO]; + [DBClientsManager authorizeFromControllerV2:[UIApplication sharedApplication] + controller:[[self class] topMostController] + loadingStatusDelegate:nil + openURL:^(NSURL *url) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; } + scopeRequest:scopeRequest]; + }); +} + +RCT_EXPORT_METHOD(getDisplayName: (NSString *)token + resolve: (RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + DBUserClient *client = [[DBUserClient alloc] initWithAccessToken:token]; + [[client.usersRoutes getCurrentAccount] setResponseBlock:^(DBUSERSFullAccount *result, DBNilObject *routeError, DBRequestError *networkError) { + if (result) { + resolve(result.name.displayName); + } else { + NSString *msg = @"Failed!"; + if (networkError) { + msg = [NSString stringWithFormat:@"Failed! Error: %@", networkError]; + } + reject(@"getDisplayName", @"Failed", nil); + } + }]; + +} + +RCT_EXPORT_METHOD(getSpaceUsage: (NSString *)token + resolve: (RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + DBUserClient *client = [[DBUserClient alloc] initWithAccessToken:token]; + [[client.usersRoutes getSpaceUsage] setResponseBlock:^(DBUSERSSpaceUsage *result, DBNilObject *routeError, DBRequestError *networkError) { + if (result) { + DBUSERSSpaceAllocation *allocation = result.allocation; + NSNumber *allocated = 0; + NSNumber *used = 0; + if ([allocation isIndividual]) { + allocated = allocation.individual.allocated; + used = result.used; + } else if ([allocation isTeam]) { + allocated = allocation.team.allocated; + used = allocation.team.used; + } + id objects[] = { used, allocated }; + id keys[] = { @"used", @"allocated" }; + NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects + forKeys:keys + count:2]; + resolve(dictionary); + } else { + NSString *msg = @"Failed!"; + if (networkError) { + msg = [NSString stringWithFormat:@"Failed! Error: %@", networkError]; + } + reject(@"getSpaceUsage", msg, nil); + } + }]; + +} + ++ (BOOL)application:(UIApplication *)app + openURL:(NSURL *)url + options:(NSDictionary *)options { + if (currentReject == nil || currentResolve == nil) { + return NO; + } + + BOOL canHandle = [DBClientsManager handleRedirectURL:url completion:^(DBOAuthResult *authResult) { + if (authResult) { + if ([authResult isSuccess]) { + NSInteger msTimestamp = authResult.accessToken.tokenExpirationTimestamp * 1000; + NSDictionary *authInfo = @{@"token": authResult.accessToken.accessToken, + @"rToken": authResult.accessToken.refreshToken, + @"expireDate": @(msTimestamp) + }; + currentResolve(authInfo); + } else { + NSString *msg; + if ([authResult isError]) { + msg = [NSString stringWithFormat:@"%@, error type: %zd", [authResult errorDescription], [authResult errorType]]; + } else { + msg = @"OAuth canceled!"; + } + currentReject(@"authorize", msg, nil); + } + currentResolve = nil; + currentReject = nil; + } + }]; + + return canHandle; +} + ++ (UIViewController *)topMostController { + UIViewController *topController + = [UIApplication sharedApplication].keyWindow.rootViewController; + + while (topController.presentedViewController) { + topController = topController.presentedViewController; + } + + return topController; +} + ++ (void)setAppKey { + NSString *appKey = [self getAppKey]; + + if (appKey) { + [DBClientsManager setupWithAppKey:appKey]; + } +} + +@end diff --git a/ios/sdk/src/picture-in-picture/DragGestureController.swift b/ios/sdk/src/picture-in-picture/DragGestureController.swift new file mode 100644 index 0000000..ea59f6e --- /dev/null +++ b/ios/sdk/src/picture-in-picture/DragGestureController.swift @@ -0,0 +1,135 @@ +/* + * 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 UIKit + +final class DragGestureController { + var insets: UIEdgeInsets = UIEdgeInsets.zero + var currentPosition: PiPViewCoordinator.Position? = nil + + private var frameBeforeDragging: CGRect = CGRect.zero + private weak var view: UIView? + private lazy var panGesture: UIPanGestureRecognizer = { + UIPanGestureRecognizer(target: self, + action: #selector(handlePan(gesture:))) + }() + + func startDragListener(inView view: UIView) { + self.view = view + view.addGestureRecognizer(panGesture) + panGesture.isEnabled = true + } + + func stopDragListener() { + panGesture.isEnabled = false + view?.removeGestureRecognizer(panGesture) + view = nil + } + + @objc private func handlePan(gesture: UIPanGestureRecognizer) { + guard let view = view else { return } + + let translation = gesture.translation(in: view.superview) + let velocity = gesture.velocity(in: view.superview) + var frame = frameBeforeDragging + + switch gesture.state { + case .began: + frameBeforeDragging = view.frame + + case .changed: + frame.origin.x = floor(frame.origin.x + translation.x) + frame.origin.y = floor(frame.origin.y + translation.y) + view.frame = frame + + case .ended: + let currentPos = view.frame.origin + let finalPos = calculateFinalPosition() + + let distance = CGPoint(x: currentPos.x - finalPos.x, + y: currentPos.y - finalPos.y) + let distanceMagnitude = magnitude(vector: distance) + let velocityMagnitude = magnitude(vector: velocity) + let animationDuration = 0.5 + let initialSpringVelocity = + velocityMagnitude / distanceMagnitude / CGFloat(animationDuration) + + frame.origin = CGPoint(x: finalPos.x, y: finalPos.y) + + UIView.animate(withDuration: animationDuration, + delay: 0, + usingSpringWithDamping: 0.9, + initialSpringVelocity: initialSpringVelocity, + options: .curveLinear, + animations: { + view.frame = frame }) + + default: + break + } + } + + private func calculateFinalPosition() -> CGPoint { + guard + let view = view, + let bounds = view.superview?.frame + else { + return CGPoint.zero + } + + let currentSize = view.frame.size + let adjustedBounds = bounds.inset(by: insets) + let threshold: CGFloat = 20.0 + let velocity = panGesture.velocity(in: view.superview) + let location = panGesture.location(in: view.superview) + + let goLeft: Bool + if abs(velocity.x) > threshold { + goLeft = velocity.x < -threshold + } else { + goLeft = location.x < bounds.midX + } + + let goUp: Bool + if abs(velocity.y) > threshold { + goUp = velocity.y < -threshold + } else { + goUp = location.y < bounds.midY + } + + if (goLeft && goUp) { + currentPosition = .upperLeftCorner + } + + if (!goLeft && goUp) { + currentPosition = .upperRightCorner + } + + if (!goLeft && !goUp) { + currentPosition = .lowerRightCorner + } + + if (goLeft && !goUp) { + currentPosition = .lowerLeftCorner + } + + return currentPosition!.getOriginIn(bounds: adjustedBounds, size: currentSize) + } + + private func magnitude(vector: CGPoint) -> CGFloat { + sqrt(pow(vector.x, 2) + pow(vector.y, 2)) + } +} diff --git a/ios/sdk/src/picture-in-picture/PiPViewCoordinator.swift b/ios/sdk/src/picture-in-picture/PiPViewCoordinator.swift new file mode 100644 index 0000000..cea9a21 --- /dev/null +++ b/ios/sdk/src/picture-in-picture/PiPViewCoordinator.swift @@ -0,0 +1,255 @@ +/* + * Copyright @ 2017-present 8x8, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import UIKit + +public typealias AnimationCompletion = (Bool) -> Void + +public protocol PiPViewCoordinatorDelegate: class { + + func exitPictureInPicture() +} + +/// Coordinates the view state of a specified view to allow +/// to be presented in full screen or in a custom Picture in Picture mode. +/// This object will also provide the drag and tap interactions of the view +/// when is presented in Picture in Picture mode. +public class PiPViewCoordinator { + + public enum Position { + case lowerRightCorner + case upperRightCorner + case lowerLeftCorner + case upperLeftCorner + } + + /// Limits the boundaries of view position on screen when minimized + public var dragBoundInsets: UIEdgeInsets = UIEdgeInsets(top: 25, + left: 5, + bottom: 5, + right: 5) { + didSet { + dragController.insets = dragBoundInsets + } + } + + public var initialPositionInSuperView: Position = .lowerRightCorner + + // Unused. Remove on the next major release. + @available(*, deprecated, message: "The PiP window size is now fixed to 150px.") + public var c: CGFloat = 0.0 + + public weak var delegate: PiPViewCoordinatorDelegate? + + private(set) var isInPiP: Bool = false // true if view is in PiP mode + private(set) var view: UIView + private var currentBounds: CGRect = CGRect.zero + + private var tapGestureRecognizer: UITapGestureRecognizer? + private var exitPiPButton: UIButton? + + private let dragController: DragGestureController = DragGestureController() + + public init(withView view: UIView) { + self.view = view + // Required because otherwise the view will not rotate correctly. + view.autoresizingMask = [.flexibleWidth, .flexibleHeight] + + // Otherwise the enter/exit pip animation looks odd + // when pip window is bottom left, top left or top right, + // because the jitsi view content does not animate, but jumps to the new size immediately. + view.clipsToBounds = true + } + + /// Configure the view to be always on top of all the contents + /// of the provided parent view. + /// If a parentView is not provided it will try to use the main window + public func configureAsStickyView(withParentView parentView: UIView? = nil) { + guard + let parentView = parentView ?? UIApplication.shared.keyWindow + else { + return + } + + parentView.addSubview(view) + currentBounds = parentView.bounds + view.frame = currentBounds + view.layer.zPosition = CGFloat(Float.greatestFiniteMagnitude) + } + + /// Show view with fade in animation + public func show(completion: AnimationCompletion? = nil) { + if view.isHidden || view.alpha < 1 { + view.isHidden = false + view.alpha = 0 + + animateTransition(animations: { [weak self] in + self?.view.alpha = 1 + }, completion: completion) + } + } + + /// Hide view with fade out animation + public func hide(completion: AnimationCompletion? = nil) { + if view.isHidden || view.alpha > 0 { + animateTransition(animations: { [weak self] in + self?.view.alpha = 0 + self?.view.isHidden = true + }, completion: completion) + } + } + + /// Resize view to and change state to custom PictureInPicture mode + /// This will resize view, add a gesture to enable user to "drag" view + /// around screen, and add a button of top of the view to be able to exit mode + public func enterPictureInPicture() { + isInPiP = true + // Resizing is done by hand when in pip. + view.autoresizingMask = [] + + animateViewChange() + dragController.startDragListener(inView: view) + dragController.insets = dragBoundInsets + + // add single tap gesture recognition for displaying exit PiP UI + let exitSelector = #selector(toggleExitPiP) + let tapGestureRecognizer = UITapGestureRecognizer(target: self, + action: exitSelector) + self.tapGestureRecognizer = tapGestureRecognizer + view.addGestureRecognizer(tapGestureRecognizer) + } + + /// Exit Picture in picture mode, this will resize view, remove + /// exit pip button, and disable the drag gesture + @objc public func exitPictureInPicture() { + isInPiP = false + // Enable autoresizing again, which got disabled for pip. + view.autoresizingMask = [.flexibleWidth, .flexibleHeight] + + animateViewChange() + dragController.stopDragListener() + + // hide PiP UI + exitPiPButton?.removeFromSuperview() + exitPiPButton = nil + + // remove gesture + let exitSelector = #selector(toggleExitPiP) + tapGestureRecognizer?.removeTarget(self, action: exitSelector) + tapGestureRecognizer = nil + + delegate?.exitPictureInPicture() + } + + /// Reset view to provide bounds, use this method on rotation or + /// screen size changes + public func resetBounds(bounds: CGRect) { + currentBounds = bounds + + // Is required because otherwise the pip window is buggy when rotating the device. + // When not in pip then autoresize will do the job. + if (isInPiP) { + view.frame = changeViewRect() + } + } + + /// Stop the dragging gesture of the root view + public func stopDragGesture() { + dragController.stopDragListener() + } + + /// Customize the presentation of exit pip button + open func configureExitPiPButton(target: Any, + action: Selector) -> UIButton { + let buttonImage = UIImage.init(named: "image-resize", + in: Bundle(for: type(of: self)), + compatibleWith: nil) + let button = UIButton(type: .custom) + let size: CGSize = CGSize(width: 44, height: 44) + button.setImage(buttonImage, for: .normal) + button.backgroundColor = .gray + button.layer.cornerRadius = size.width / 2 + button.frame = CGRect(origin: CGPoint.zero, size: size) + button.center = view.convert(view.center, from: view.superview) + button.addTarget(target, action: action, for: .touchUpInside) + return button + } + + // MARK: - Interactions + @objc private func toggleExitPiP() { + if exitPiPButton == nil { + // show button + let exitSelector = #selector(exitPictureInPicture) + let button = configureExitPiPButton(target: self, + action: exitSelector) + view.addSubview(button) + exitPiPButton = button + + } else { + // hide button + exitPiPButton?.removeFromSuperview() + exitPiPButton = nil + } + } + + func animateViewChange() { + UIView.animate(withDuration: 0.25) { + self.view.frame = self.changeViewRect() + } + } + + private func changeViewRect() -> CGRect { + let bounds = currentBounds + + if !isInPiP { + return bounds + } + + // resize to suggested ratio and position to the bottom right + let adjustedBounds = bounds.inset(by: dragBoundInsets) + let size = CGSize(width: 150, height: 150) + let origin = (dragController.currentPosition ?? initialPositionInSuperView).getOriginIn(bounds: adjustedBounds, size: size) + + return CGRect(x: origin.x, y: origin.y, width: size.width, height: size.height) + } + + // MARK: - Animation helpers + private func animateTransition(animations: @escaping () -> Void, + completion: AnimationCompletion?) { + UIView.animate(withDuration: 0.1, + delay: 0, + options: .beginFromCurrentState, + animations: animations, + completion: completion) + } + +} + +// MARK: - +extension PiPViewCoordinator.Position { + func getOriginIn(bounds: CGRect, size: CGSize) -> CGPoint { + switch self { + case .lowerLeftCorner: + return CGPoint(x: bounds.minX, y: bounds.maxY - size.height) + case .lowerRightCorner: + return CGPoint(x: bounds.maxX - size.width, y: bounds.maxY - size.height) + case .upperLeftCorner: + return CGPoint(x: bounds.minX, y: bounds.minY) + case .upperRightCorner: + return CGPoint(x: bounds.maxX - size.width, y: bounds.minY) + } + } +} diff --git a/ios/sdk/src/picture-in-picture/image-resize@2x.png b/ios/sdk/src/picture-in-picture/image-resize@2x.png new file mode 100644 index 0000000..d66dd8a Binary files /dev/null and b/ios/sdk/src/picture-in-picture/image-resize@2x.png differ diff --git a/ios/sdk/src/picture-in-picture/image-resize@3x.png b/ios/sdk/src/picture-in-picture/image-resize@3x.png new file mode 100644 index 0000000..7a4244f Binary files /dev/null and b/ios/sdk/src/picture-in-picture/image-resize@3x.png differ diff --git a/ios/travis-ci/build-ipa.sh b/ios/travis-ci/build-ipa.sh new file mode 100755 index 0000000..eccca23 --- /dev/null +++ b/ios/travis-ci/build-ipa.sh @@ -0,0 +1,127 @@ +#!/bin/bash +set -e + +# The script is based on tutorial written by Antonis Tsakiridis published at: +# https://medium.com/@atsakiridis/continuous-deployment-for-ios-using-travis-ci-55dcea342d9 +# +# It is intended to be executed through the Travis CI REST API call, as it +# requires few arguments which are mandatory with no default values provided: +# PR_REPO_SLUG - the Github name of the repo to be merged into the origin/master +# PR_BRANCH - the branch to be merged, if set to "master" no merge will happen +# IPA_DEPLOY_LOCATION - the location understandable by the "scp" command +# executed at the end of the script to deploy the output .ipa file +# LIB_JITSI_MEET_PKG (optional) - the npm package for lib-jitsi-meet which will +# be put in place of the current version in the package.json file. +# +# Other than that the script requires the following env variables to be set +# (reading the tutorial mentioned above will help in understanding the +# variables): +# +# APPLE_CERT_URL - the URL pointing to Apple certificate (set to +# http://developer.apple.com/certificationauthority/AppleWWDRCA.cer by default) +# DEPLOY_SSH_CERT_URL - the SSH private key used by the 'scp' command to deploy +# the .ipa. It is expected to be encrypted with the $ENCRYPTION_PASSWORD. +# ENCRYPTION_PASSWORD - the password used to decrypt certificate/key files used +# in the script. +# IOS_DEV_CERT_KEY_URL - URL pointing to provisioning profile certificate key +# file (development-key.p12.enc from the tutorial) encrypted with the +# $ENCRYPTION_PASSWORD. +# IOS_DEV_CERT_URL - URL pointing to provisioning profile certificate file +# (development-cert.cer.enc from the tutorial) encrypted with the +# $ENCRYPTION_PASSWORD. +# IOS_DEV_PROV_PROFILE_URL - URL pointing to provisioning profile file +# (profile-development-olympus.mobileprovision.enc from the tutorial) encrypted +# with the $ENCRYPTION_PASSWORD. +# IOS_SIGNING_CERT_PASSWORD - the password to the provisioning profile +# certificate key (used to open development-key.p12 from the tutorial). +# IOS_TEAM_ID - the team ID inserted into build-ipa-.plist.template file in +# place of "YOUR_TEAM_ID". + + +# Travis will not print the last echo if there's no sleep 1 +function echoSleepAndExit1() { + echo $1 + sleep 1 + exit 1 +} + +echo "TRAVIS_BRANCH=${TRAVIS_BRANCH}" +echo "TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG}" + +if [ -z $PR_REPO_SLUG ]; then + echoSleepAndExit1 "No PR_REPO_SLUG defined" +fi +if [ -z $PR_BRANCH ]; then + echoSleepAndExit1 "No PR_BRANCH defined" +fi +if [ -z $IPA_DEPLOY_LOCATION ]; then + echoSleepAndExit1 "No IPA_DEPLOY_LOCATION defined" +fi + +echo "PR_REPO_SLUG=${PR_REPO_SLUG} PR_BRANCH=${PR_BRANCH}" + +# do the merge and git log + +if [ $PR_BRANCH != "master" ]; then + echo "Will merge ${PR_REPO_SLUG}/${PR_BRANCH} into master" + git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" + git fetch origin master + git checkout master + git pull https://github.com/${PR_REPO_SLUG}.git $PR_BRANCH --no-edit +fi + +# Link this lib-jitsi-meet checkout in jitsi-meet through the package.json +if [ ! -z ${LIB_JITSI_MEET_PKG} ]; +then + echo "Adjusting lib-jitsi-meet package in package.json to ${LIB_JITSI_MEET_PKG}" + # escape for the sed + LIB_JITSI_MEET_PKG=$(echo $LIB_JITSI_MEET_PKG | sed -e 's/\\/\\\\/g; s/\//\\\//g; s/&/\\\&/g') + sed -i.bak -e "s/\"lib-jitsi-meet.*/\"lib-jitsi-meet\"\: \"${LIB_JITSI_MEET_PKG}\",/g" package.json + echo "Package.json lib-jitsi-meet line:" + grep lib-jitsi-meet package.json +else + echo "LIB_JITSI_MEET_PKG var not set - will not modify the package.json" +fi + +git log -20 --graph --pretty=format':%C(yellow)%h%Cblue%d%Creset %s %C(white) %an, %ar%Creset' + +#certificates +CERT_DIR="ios/travis-ci/certs" + +mkdir -p $CERT_DIR + +./ios/ci/setup-certificates.sh $CERT_DIR + +curl -L -o ${CERT_DIR}/id_rsa.enc ${DEPLOY_SSH_CERT_URL} +openssl aes-256-cbc -k "$ENCRYPTION_PASSWORD" -in ${CERT_DIR}/id_rsa.enc -d -a -out ${CERT_DIR}/id_rsa +chmod 0600 ${CERT_DIR}/id_rsa +ssh-add ${CERT_DIR}/id_rsa + +npm install + +# Ever since the Apple Watch app has been added the bitcode for WebRTC needs to be downloaded in order to build successfully +./node_modules/react-native-webrtc/tools/downloadBitcode.sh + +cd ios +pod install --repo-update --no-ansi +cd .. + +mkdir -p /tmp/jitsi-meet/ + +xcodebuild archive -quiet -workspace ios/jitsi-meet.xcworkspace -scheme jitsi-meet -configuration Release -archivePath /tmp/jitsi-meet/jitsi-meet.xcarchive + +sed -e "s/YOUR_TEAM_ID/${IOS_TEAM_ID}/g" ios/ci/build-ipa.plist.template > ios/ci/build-ipa.plist + +IPA_EXPORT_DIR=/tmp/jitsi-meet/jitsi-meet-ipa + +xcodebuild -quiet -exportArchive -archivePath /tmp/jitsi-meet/jitsi-meet.xcarchive -exportPath $IPA_EXPORT_DIR -exportOptionsPlist ios/ci/build-ipa.plist + +echo "Will try deploy the .ipa to: ${IPA_DEPLOY_LOCATION}" + +if [ ! -z ${SCP_PROXY_HOST} ]; +then + scp -o ProxyCommand="ssh -t -A -l %r ${SCP_PROXY_HOST} -o \"StrictHostKeyChecking no\" -o \"BatchMode yes\" -W %h:%p" -o StrictHostKeyChecking=no -o LogLevel=DEBUG "${IPA_EXPORT_DIR}/jitsi-meet.ipa" "${IPA_DEPLOY_LOCATION}" +else + scp -o StrictHostKeyChecking=no -o LogLevel=DEBUG "${IPA_EXPORT_DIR}/jitsi-meet.ipa" "${IPA_DEPLOY_LOCATION}" +fi + diff --git a/lang/languages.json b/lang/languages.json new file mode 100644 index 0000000..7315939 --- /dev/null +++ b/lang/languages.json @@ -0,0 +1,61 @@ +{ + "af": "Afrikaans", + "ar": "العربية", + "be": "Беларуская", + "bg": "Български", + "ca": "Català", + "cs": "Čeština", + "da": "Dansk", + "de": "Deutsch", + "dsb": "Dolnoserbšćina", + "el": "Ελληνικά", + "en": "English", + "eo": "Esperanto", + "es": "Español", + "esUS": "Español (Latinoamérica)", + "et": "Eesti", + "eu": "Euskara", + "fa": "فارسی", + "fi": "Suomi", + "fr": "Français", + "frCA": "Français (Canada)", + "gl": "Galego", + "he": "עברית", + "hi": "हिन्दी", + "hr": "Hrvatski", + "hsb": "Hornjoserbšćina", + "hu": "Magyar", + "hy": "Հայերեն", + "id": "Bahasa", + "is": "Íslenska", + "it": "Italiano", + "ja": "日本語", + "kab": "Taqbaylit", + "ko": "한국어", + "lt": "Lietuvių", + "lv": "Latviešu", + "ml": "മലയാളം", + "mn": "Монгол", + "mr": "मराठी", + "nb": "Norsk bokmål", + "nl": "Nederlands", + "no": "Norsk", + "oc": "Occitan", + "pl": "Polski", + "pt": "Português", + "ptBR": "Português (Brasil)", + "ro": "Română", + "ru": "Русский", + "sc": "Sardu", + "sk": "Slovenčina", + "sl": "Slovenščina", + "sq": "Shqip", + "sr": "Српски", + "sv": "Svenska", + "te": "తెలుగు", + "tr": "Türkçe", + "uk": "Українська", + "vi": "Tiếng Việt", + "zhCN": "中文(简体)", + "zhTW": "中文(繁體)" +} diff --git a/lang/main-af.json b/lang/main-af.json new file mode 100644 index 0000000..b902b62 --- /dev/null +++ b/lang/main-af.json @@ -0,0 +1,710 @@ +{ + "addPeople": { + "add": "Nooi uit", + "countryNotSupported": "Ons ondersteun nog nie dié bestemming nie.", + "countryReminder": "", + "disabled": "U kan nie mense nooi nie.", + "failedToAdd": "", + "footerText": "", + "loading": "", + "loadingNumber": "Valideer tans foonnommer", + "loadingPeople": "", + "noResults": "Geen soekresultate wat pas nie", + "noValidNumbers": "Gee asseblief ’n foonnommer", + "searchNumbers": "Voeg foonnommers by", + "searchPeople": "Soek mense", + "searchPeopleAndNumbers": "Soek mense of voeg hulle foonnommers by", + "telephone": "Telefoon: {{number}}", + "title": "Nooi mense na dié vergadering" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Oorfone", + "phone": "Foon", + "speaker": "Luidspreker" + }, + "audioOnly": { + "audioOnly": "Net klank" + }, + "calendarSync": { + "addMeetingURL": "Voeg ’n vergaderingskakel by", + "confirmAddLink": "Wil u ’n Jitsi-skakel by dié geleentheid voeg?", + "error": { + "appConfiguration": "", + "generic": "", + "notSignedIn": "" + }, + "join": "Sluit aan", + "joinTooltip": "Sluit aan by die vergadering", + "nextMeeting": "volgende vergadering", + "noEvents": "Geen komende geleenthede is geskeduleer nie.", + "ongoingMeeting": "vergadering onderweg", + "permissionButton": "Open instellings", + "permissionMessage": "", + "refresh": "Verfris kalender", + "today": "Vandag" + }, + "chat": { + "error": "", + "messagebox": "", + "nickname": { + "popover": "Kies ’n bynaam", + "title": "", + "titleWithPolls": "" + }, + "title": "", + "titleWithPolls": "" + }, + "connectingOverlay": { + "joiningRoom": "" + }, + "connection": { + "ATTACHED": "", + "AUTHENTICATING": "Verifieer", + "AUTHFAIL": "", + "CONNECTED": "Gekoppel", + "CONNECTING": "Koppel tans", + "CONNFAIL": "Koppeling het misluk", + "DISCONNECTED": "Ontkoppeld", + "DISCONNECTING": "Ontkoppel tans", + "ERROR": "Fout", + "RECONNECTING": "’n Netwerkprobleem het voorgekom. Herkoppel tans…" + }, + "connectionindicator": { + "address": "Adres:", + "bandwidth": "Geraamde bandwydte:", + "bitrate": "Bistempo:", + "bridgeCount": "Aantal bedieners: ", + "connectedTo": "Gekoppel aan:", + "framerate": "Raampietempo:", + "less": "Wys minder", + "localaddress": "Plaaslike adres:", + "localaddress_plural": "Plaaslike adresse:", + "localport": "Plaaslike poort:", + "localport_plural": "Plaaslike poorte:", + "more": "Wys meer", + "packetloss": "Pakkies verloor:", + "quality": { + "good": "Goed", + "inactive": "Onaktief", + "lost": "", + "nonoptimal": "", + "poor": "Swak" + }, + "remoteaddress": "Afgeleë adres:", + "remoteaddress_plural": "Afgeleë adresse:", + "remoteport": "Afgeleë poort:", + "remoteport_plural": "Afgeleë poorte:", + "resolution": "Resolusie:", + "status": "Verbinding:", + "transport": "", + "transport_plural": "", + "turn": "" + }, + "dateUtils": { + "earlier": "Vroeër", + "today": "Vandag", + "yesterday": "Gister" + }, + "deepLinking": { + "appNotInstalled": "", + "description": "", + "descriptionWithoutWeb": "", + "downloadApp": "", + "launchWebButton": "", + "openApp": "", + "title": "", + "tryAgainButton": "" + }, + "defaultLink": "bv. {{url}}", + "deviceError": { + "cameraError": "Toegang na u kamera het misluk", + "cameraPermission": "Fout met verkryging van kameratoestemming", + "microphoneError": "Toegang na u mikrofoon het misluk", + "microphonePermission": "Fout met verkryging van mikrofoontoestemming" + }, + "deviceSelection": { + "noPermission": "Toestemming nie gegee nie", + "previewUnavailable": "Voorskou nie beskikbaar nie", + "selectADevice": "Kies 'n toestel", + "testAudio": "Speel ’n toetsklank" + }, + "dialOut": { + "statusMessage": "is nou {{status}}" + }, + "dialog": { + "Back": "Terug", + "Cancel": "Kanselleer", + "IamHost": "Ek is die gasheer", + "Ok": "Regso", + "Remove": "Verwyder", + "Share": "Deel", + "Submit": "Dien in", + "WaitForHostMsg": "", + "WaitingForHost": "Wag tans vir die gasheer …", + "Yes": "Ja", + "accessibilityLabel": { + "liveStreaming": "Regstreekse stroom" + }, + "allow": "Laat toe", + "alreadySharedVideoMsg": "", + "alreadySharedVideoTitle": "Slegs een gedeelde video op ’n slag word toegelaat", + "applicationWindow": "Toepassingsvenster", + "cameraConstraintFailedError": "Die kamera voldoen nie aan sekere van die vereistes nie.", + "cameraNotFoundError": "Kamera is nie gevind nie.", + "cameraNotSendingData": "Ons kry nie toegang tot u kamera nie. Kontroleer of ’n ander toepassing dié toestel gebruik, kies asb. ’n ander toestel by die instellingskieslys of probeer om die toepassing op nuut te laai.", + "cameraNotSendingDataTitle": "Kan nie toegang tot kamera kry nie", + "cameraPermissionDeniedError": "U het nie toestemming gegee om u kamera te gebruik nie. U kan steeds by die konferensie aansluit, maar ander sal u nie kan sien nie. Gebruik die kameraknoppie in die adresbalk om dit reg te stel.", + "cameraUnknownError": "Kan weens onbekende rede nie die kamera gebruik nie.", + "cameraUnsupportedResolutionError": "Die kamera ondersteun nie die nodige videoresolusie nie.", + "close": "Sluit", + "conferenceDisconnectMsg": "Kontroleer dalk die netwerkverbinding. Gaan oor {{seconds}} sekondes weer koppel…", + "conferenceDisconnectTitle": "Die verbinding is verbreek.", + "conferenceReloadMsg": "Ons probeer om dit reg te stel. Gaan herkoppel oor {{seconds}} sekondes…", + "conferenceReloadTitle": "Iets het ongelukkig skeefgeloop.", + "confirm": "Bevestig", + "confirmNo": "Nee", + "confirmYes": "Ja", + "connectError": "Oeps! Iets het skeefgeloop en ons kon nie aan die konferensie koppel nie.", + "connectErrorWithMsg": "Oeps! Iets het skeefgeloop en ons kon nie aan die konferensie koppel nie: {{msg}}", + "connecting": "Koppel tans", + "contactSupport": "Kontak ondersteuning", + "copy": "Kopieer", + "dismiss": "Weier", + "displayNameRequired": "", + "done": "Klaar", + "enterDisplayName": "", + "error": "Fout", + "externalInstallationMsg": "U moet ons uitbreiding vir werkskermdeling installeer.", + "externalInstallationTitle": "Uitbreiding is nodig", + "goToStore": "Gaan na die webwinkel", + "gracefulShutdown": "Ons diens is tans buite werking t.w.v. onderhoud. Probeer gerus weer later.", + "incorrectPassword": "Verkeerde gebruikernaam of wagwoord", + "incorrectRoomLockPassword": "", + "inlineInstallExtension": "Installeer nou", + "inlineInstallationMsg": "U moet ons uitbreiding vir werkskermdeling installeer.", + "internalError": "Oeps! Iets het skeefgeloop. Die volgende fout het voorgekom: {{error}}", + "internalErrorTitle": "Interne fout", + "kickMessage": "", + "kickParticipantButton": "", + "kickParticipantDialog": "", + "kickParticipantTitle": "", + "kickTitle": "", + "liveStreaming": "Regstreekse stroom", + "liveStreamingDisabledForGuestTooltip": "Gaste kan nie regstreekse strome begin nie.", + "liveStreamingDisabledTooltip": "Begin van regstreekse stroom gedeaktiveer.", + "lockMessage": "Kon nie die konferensie sluit nie.", + "lockRoom": "", + "lockTitle": "Sluit het misluk", + "logoutQuestion": "Wil u definitief afmeld en die konferensie stop?", + "logoutTitle": "Meld af", + "maxUsersLimitReached": "", + "maxUsersLimitReachedTitle": "", + "micConstraintFailedError": "Die mikrofoon voldoen nie aan sekere van die vereistes nie.", + "micNotFoundError": "Mikrofoon is nie gevind nie.", + "micNotSendingData": "", + "micNotSendingDataTitle": "", + "micPermissionDeniedError": "U het nie toestemming gegee om u mikrofoon te gebruik nie. U kan steeds by die konferensie aansluit, maar ander sal u nie kan hoor nie. Gebruik die kameraknoppie in die adresbalk om dit reg te stel.", + "micUnknownError": "Kan weens onbekende rede nie die mikrofoon gebruik nie.", + "muteParticipantBody": "U sal hulle nie kan ontdemp nie, maar hulle sal hulself enige tyd kan ontdemp.", + "muteParticipantButton": "Demp", + "muteParticipantDialog": "", + "muteParticipantTitle": "", + "passwordLabel": "", + "passwordNotSupported": "Die instel van ’n vergaderingwagwoord word nie ondersteun nie.", + "passwordNotSupportedTitle": "", + "passwordRequired": "", + "popupError": "U blaaier blokkeer opspringers vanaf hierdie werf. Aktiveer opspringers in die blaaier se sekuriteitopsies en probeer weer.", + "popupErrorTitle": "Opspringer geblok", + "recording": "Neem tans op", + "recordingDisabledForGuestTooltip": "Gaste kan nie opnames begin nie.", + "recordingDisabledTooltip": "Begin van opname gedeaktiveer.", + "rejoinNow": "Sluit nou weer aan", + "remoteControlAllowedMessage": "", + "remoteControlDeniedMessage": "", + "remoteControlErrorMessage": "", + "remoteControlRequestMessage": "", + "remoteControlShareScreenWarning": "", + "remoteControlStopMessage": "", + "remoteControlTitle": "", + "removePassword": "", + "removeSharedVideoMsg": "Wil u definitief u gedeelde video verwyder?", + "removeSharedVideoTitle": "Verwyder gedeelde video", + "reservationError": "", + "reservationErrorMsg": "Foutkode: {{code}}, boodskap: {{msg}}", + "retry": "Herprobeer", + "screenSharingFailedToInstall": "Oeps! Die uitbreiding vir skermdeling kon nie installeer nie.", + "screenSharingFailedToInstallTitle": "Uitbreiding vir skermdeling kon nie installeer nie", + "screenSharingFirefoxPermissionDeniedError": "Iets het skeefgeloop toe ons die skerm probeer deel het. Maak seker dat ons dei toestemming gegee word om dit te doen. ", + "screenSharingFirefoxPermissionDeniedTitle": "Oeps! Ons kon nie skermdeling begin nie!", + "screenSharingPermissionDeniedError": "", + "serviceUnavailable": "Diens nie beskikbaar nie", + "sessTerminated": "Oproep gestaak", + "shareVideoLinkError": "Gee asb. ’n korrekte skakel.", + "shareVideoTitle": "Deel ’n video", + "shareYourScreen": "Deel u skerm", + "shareYourScreenDisabled": "Skermdeling gedeaktiveer.", + "shareYourScreenDisabledForGuest": "Gaste kan nie skerms deel nie.", + "startLiveStreaming": "Begin regstreekse stroom", + "startRecording": "Begin opname", + "startRemoteControlErrorMessage": "", + "stopLiveStreaming": "Stop regstreekse stroom", + "stopRecording": "Stop opname", + "stopRecordingWarning": "Wil u definitief die opname stop?", + "stopStreamingWarning": "Wil u definitief die regstreekse stroom stop?", + "streamKey": "Sleutel vir regstreekse stroom", + "thankYou": "Dankie dat u {{appName}} gebruik!", + "token": "", + "tokenAuthFailed": "Jammer! U mag nie by dié oproep aansluit nie.", + "tokenAuthFailedTitle": "", + "transcribing": "Transkribering", + "unlockRoom": "", + "userPassword": "gebruikerwagwoord", + "yourEntireScreen": "U hele skerm" + }, + "feedback": { + "average": "Gemiddeld", + "bad": "Sleg", + "detailsLabel": "Vertel ons meer.", + "good": "Goed", + "rateExperience": "", + "veryBad": "Baie sleg", + "veryGood": "Baie goed" + }, + "incomingCall": { + "answer": "Antwoord", + "audioCallTitle": "Inkomende oproep", + "decline": "Weier", + "productLabel": "vanaf Jitsi Meet", + "videoCallTitle": "Inkomende video-oproep" + }, + "info": { + "accessibilityLabel": "Wys inligting", + "addPassword": "", + "cancelPassword": "", + "conferenceURL": "Skakel:", + "country": "Land", + "dialANumber": "", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Jammer. Inbel word nie tans ondersteun nie.", + "dialInNumber": "Inbel:", + "dialInSummaryError": "", + "dialInTollFree": "", + "genericError": "Oeps! Iets het skeefgeloop.", + "inviteLiveStream": "Om die regstreekse stroom van dié vergadering te sien, klik dié skakel: {{url}}", + "invitePhone": "", + "invitePhoneAlternatives": "", + "inviteURLFirstPartGeneral": "", + "inviteURLFirstPartPersonal": "", + "inviteURLSecondPart": "", + "label": "", + "liveStreamURL": "Regstreekse stroom:", + "moreNumbers": "Meer nommers", + "noNumbers": "Geen inbelnommers.", + "noPassword": "Geen", + "noRoom": "Geen kamer is gegee om na in te bel nie.", + "numbers": "Inbelnommers", + "password": "", + "title": "Deel", + "tooltip": "Deelskakel en inbelinligting vir dié vergadering" + }, + "inlineDialogFailure": { + "msg": "Ons het gestruikel.", + "retry": "Probeer weer", + "support": "Ondersteuning", + "supportMsg": "Indien dit aanhou, maak kontak met" + }, + "inviteDialog": { + "alertText": "", + "header": "Nooi uit", + "searchCallOnlyPlaceholder": "", + "searchPeopleOnlyPlaceholder": "", + "searchPlaceholder": "", + "send": "" + }, + "keyboardShortcuts": { + "focusLocal": "Fokus op u video", + "focusRemote": "Fokus op ’n ander persoon se video", + "fullScreen": "Bekyk of verlaat volskerm", + "keyboardShortcuts": "Sleutelbordkortpaaie", + "localRecording": "Wys of versteek kontroles vir plaaslike opname", + "mute": "Demp of ontdemp jou mikrofoon", + "pushToTalk": "Druk om te praat", + "raiseHand": "Steek hand op of laat sak hom", + "showSpeakerStats": "Wys sprekerstatistiek", + "toggleChat": "Maak gesels oop of toe", + "toggleFilmstrip": "Wys of versteek duimnaels vir video’s", + "toggleScreensharing": "Wissel tussen kamera- en skermdeling", + "toggleShortcuts": "Wys of versteek sleutelbordkortpaaie", + "videoMute": "Begin of stop u kamera" + }, + "liveStreaming": { + "busy": "", + "busyTitle": "Alle opnemers is tans besig", + "changeSignIn": "Wissel rekeninge.", + "choose": "Kies ’n regstreekse stroom", + "chooseCTA": "Kies ’n stroomopsie. U is tans aangemeld as {{email}}.", + "enterStreamKey": "Gee u sleutel vir regstreekse stroom by YouTube hier.", + "error": "Kon nie regstreeks stroom nie. Probeer gerus weer.", + "errorAPI": "’n Fout het voorgekom tydens toegang tot u YouTube-uitsendings. Probeer om weer aan te meld.", + "errorLiveStreamNotEnabled": "Regstreekse stroom is nie geaktiveer op {{email}} nie. Aktiveer asb. regstreekse strome of meld aan met ’n rekening met regstreekse strome geaktiveer.", + "expandedOff": "Die regstreekse stroom het gestop", + "expandedOn": "Die vergadering word tans gestroom na YouTube.", + "expandedPending": "Die regstreekse stroom begin tans…", + "failedToStart": "Regstreekse stroom kon nie begin nie", + "getStreamKeyManually": "", + "invalidStreamKey": "", + "off": "Regstreekse stroom het gestop", + "on": "Regstreekse stroom", + "pending": "Begin tans regstreekse stroom…", + "serviceName": "Regstreekse stroomdiens", + "signIn": "Meld aan met Google", + "signInCTA": "Meld aan of gee u sleutel vir regstreekse stroom vanaf YouTube.", + "signOut": "Meld af", + "signedInAs": "U is tans aangemeld as:", + "start": "Begin ’n regstreekse stroom", + "streamIdHelp": "Wat’s dié?", + "title": "Regstreekse stroom", + "unavailableTitle": "Regstreekse strome nie beskikbaar nie" + }, + "localRecording": { + "clientState": { + "off": "Af", + "on": "Aan", + "unknown": "Onbekend" + }, + "dialogTitle": "Kontroles vir plaaslike opname", + "duration": "Duur", + "durationNA": "", + "encoding": "Enkodering", + "label": "", + "labelToolTip": "", + "localRecording": "Plaaslike opname", + "me": "Ek", + "messages": { + "engaged": "", + "finished": "", + "finishedModerator": "", + "notModerator": "U is nie die moderator nie. U kan nie ’n plaaslike opname begin of stop nie." + }, + "moderator": "Moderator", + "no": "Nee", + "participant": "Deelnemer", + "participantStats": "Deelnemerstatistiek", + "sessionToken": "", + "start": "Begin opname", + "stop": "Stop opname", + "yes": "Ja" + }, + "lockRoomPassword": "Wagwoord", + "lockRoomPasswordUppercase": "Wagwoord", + "me": "ek", + "notify": { + "connectedOneMember": "", + "connectedThreePlusMembers": "", + "connectedTwoMembers": "", + "disconnected": "ontkoppel", + "focus": "", + "focusFail": "", + "grantedTo": "{{to}} is nou moderator!", + "invitedOneMember": "", + "invitedThreePlusMembers": "", + "invitedTwoMembers": "", + "kickParticipant": "", + "me": "Ek", + "moderator": "U is ou moderator!", + "muted": "U het die gesprek gedemp begin.", + "mutedRemotelyDescription": "", + "mutedRemotelyTitle": "", + "mutedTitle": "U is gedemp!", + "newDeviceAction": "", + "newDeviceAudioTitle": "", + "newDeviceCameraTitle": "", + "passwordRemovedRemotely": "", + "passwordSetRemotely": "", + "raisedHand": "", + "somebody": "Iemand", + "startSilentDescription": "", + "startSilentTitle": "", + "suboptimalExperienceDescription": "Gits… ons is bevrees u ervaring met {{appName}} gaan nie so goed wees hier nie. Ons soek maniere om dit die hoof te bied, maar probeer intussen een van die volledig ondersteunde blaaiers.", + "suboptimalExperienceTitle": "Blaaierwaarskuwing", + "unmute": "" + }, + "passwordDigitsOnly": "", + "passwordSetRemotely": "", + "polls": { + "errors": { + "notUniqueOption": "Opsies moet uniek wees" + } + }, + "poweredby": "aangedryf deur", + "presenceStatus": { + "busy": "Besig", + "calling": "Bel tans…", + "connected": "Gekoppel", + "connecting": "Koppel tans…", + "connecting2": "Koppel tans*…", + "disconnected": "Ontkoppeld", + "expired": "Verval", + "ignored": "Geïgnoreer", + "initializingCall": "Inisialiseer tans oproep…", + "invited": "Uitgenooi", + "rejected": "Geweier", + "ringing": "Lui tans…" + }, + "profile": { + "setDisplayNameLabel": "Stel u vertoonnaam", + "setEmailInput": "Gee e-posadres", + "setEmailLabel": "Stel u Gravatar-e-posadres", + "title": "Profiel" + }, + "recording": { + "authDropboxText": "Laai op na Dropbox", + "availableSpace": "Beskikbare spasie: {{spaceLeft}} MB (ongeveer {{duration}} minute se opname)", + "beta": "", + "busy": "", + "busyTitle": "Alle opnemers is tans besig", + "error": "Opname het misluk. Probeer gerus weer.", + "expandedOff": "Opname het gestop", + "expandedOn": "Die vergadering word tans opgeneem.", + "expandedPending": "Opname word begin…", + "failedToStart": "Kon nie begin opneem nie", + "fileSharingdescription": "", + "live": "", + "loggedIn": "Aangemeld as {{name}}", + "off": "Opname gestop", + "on": "Neem tans op", + "pending": "Berei voor om vergadering op te neem…", + "rec": "", + "serviceDescription": "", + "serviceName": "Opneemdiens", + "signIn": "meld aan", + "signOut": "Meld af", + "title": "Neem tans op", + "unavailable": "", + "unavailableTitle": "" + }, + "sectionList": { + "pullToRefresh": "" + }, + "settings": { + "calendar": { + "about": "", + "disconnect": "Ontkoppel", + "microsoftSignIn": "Meld aan met Microsoft", + "signedIn": "", + "title": "Kalender" + }, + "devices": "Toestelle", + "followMe": "Almal volg my", + "language": "Taal", + "loggedIn": "Aangemeld as {{name}}", + "moderator": "Moderator", + "more": "Meer", + "name": "Naam", + "noDevice": "Geen", + "selectAudioOutput": "Klankafvoer", + "selectCamera": "Kamera", + "selectMic": "Mikrofoon", + "startAudioMuted": "Almal begin gedemp", + "startVideoMuted": "Almal begin versteek", + "title": "Instellings" + }, + "settingsView": { + "alertOk": "Regso", + "alertTitle": "Waarskuwing", + "alertURLText": "Die gegewe bediener-URL is ongeldig", + "buildInfoSection": "", + "conferenceSection": "Konferensie", + "displayName": "Vertoonnaam", + "email": "E-pos", + "header": "Instellings", + "profileSection": "Profiel", + "serverURL": "Bediener-URL", + "startWithAudioMuted": "Begin met klank gedemp", + "startWithVideoMuted": "Begin met video gedemp", + "version": "" + }, + "share": { + "dialInfoText": "", + "mainText": "Klik die volgende skakel om by die vergadering aan te sluit:\n{{roomUrl}}" + }, + "speaker": "Luidspreker", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Naam", + "search": "Soek", + "searchHint": "Soek deelnemers", + "seconds": "{{count}}s", + "speakerStats": "Sprekerstatistiek", + "speakerTime": "Sprekertyd" + }, + "startupoverlay": { + "policyText": "", + "title": "{{app}} benodig u mikrofoon en kamera." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Sluit weer aan", + "text": "Druk die Sluit weer aan-knoppie om te herkoppel.", + "title": "U video-oproep is onderbreek omdat die rekenaar gaan slaap het." + }, + "toolbar": { + "Settings": "Instellings", + "accessibilityLabel": { + "Settings": "Wissel instellings", + "audioOnly": "Wissel Net klank", + "audioRoute": "Kies die klanktoestel", + "callQuality": "", + "cc": "Wissel onderskrifte", + "chat": "Wissel geselsvenster", + "document": "Wissel gedeelde dokument", + "feedback": "Laat terugvoer", + "fullScreen": "Wissel volskerm", + "hangup": "Verlaat die oproep", + "invite": "Nooi mense", + "kick": "", + "localRecording": "Wissel kontroles vir plaaslike opname", + "lockRoom": "", + "moreActions": "Wissel kieslys vir meer aksies", + "moreActionsMenu": "Kieslys vir meer aksies", + "mute": "", + "pip": "Wissel Prent-in-Prent-modus", + "profile": "Redigeer u profiel", + "raiseHand": "Wissel handopsteek", + "recording": "Wissel opname", + "remoteMute": "", + "shareRoom": "Nooi iemand", + "shareYourScreen": "Wissel skermdeling", + "sharedvideo": "Wissel videodeling", + "shortcuts": "Wissel kortpaaie", + "show": "", + "speakerStats": "Wissel sprekerstatistiek", + "tileView": "Wissel teëlaansig", + "toggleCamera": "Wissel kamera", + "videoblur": "", + "videomute": "" + }, + "addPeople": "Voeg mense by die oproep", + "audioOnlyOff": "Deaktiveer Net klank-modus", + "audioOnlyOn": "Deaktiveer Net klank-modus", + "audioRoute": "Kies die klanktoestel", + "authenticate": "Verifieer", + "callQuality": "Bestuur oproepkwaliteit", + "chat": "Open / sluit gesels", + "closeChat": "", + "documentClose": "Sluit gedeelde dokument", + "documentOpen": "Open gedeelde dokument", + "enterFullScreen": "Volskermaansig", + "enterTileView": "", + "exitFullScreen": "Verlaat volskerm", + "exitTileView": "", + "feedback": "Laat terugvoer", + "hangup": "Verlaat", + "invite": "Nooi mense", + "login": "Meld aan", + "logout": "Meld af", + "lowerYourHand": "", + "moreActions": "Meer aksies", + "mute": "Demp / ontdemp", + "openChat": "", + "pip": "Betree Prent-in-Prent-modus", + "profile": "Redigeer u profiel", + "raiseHand": "Lig / laat sak u hand", + "raiseYourHand": "", + "shareRoom": "Nooi iemand", + "sharedvideo": "Deel ’n video", + "shortcuts": "Sien kortpaaie", + "speakerStats": "Sprekerstatistiek", + "startScreenSharing": "", + "startSubtitles": "", + "startvideoblur": "", + "stopScreenSharing": "", + "stopSharedVideo": "Stop video", + "stopSubtitles": "", + "stopvideoblur": "", + "talkWhileMutedPopup": "Besig om te praat? U is gedemp.", + "tileViewToggle": "Wissel teëlaansig", + "toggleCamera": "Wissel kamera", + "videomute": "Begin / stop kamera" + }, + "transcribing": { + "ccButtonTooltip": "", + "error": "Opname het misluk. Probeer gerus weer.", + "expandedLabel": "", + "failedToStart": "", + "labelToolTip": "Die vergadering word getranskribeer", + "off": "", + "pending": "Berei tans voor om die vergadering te transkribeer…", + "start": "", + "stop": "", + "tr": "" + }, + "userMedia": { + "grantPermissions": "Gee asb. toestemming vir die gebruik van u kamera en mikrofoon." + }, + "videoSIPGW": { + "busy": "Ons probeer tans hulpbronne vry te stel. Probeer gerus weer oor ’n paar minute.", + "busyTitle": "Die Kamerdiens is tans besig", + "errorAlreadyInvited": "{{displayName}} is reeds genooi", + "errorInvite": "Konferensie is nog nie gestig nie. Probeer gerus weer later.", + "errorInviteFailed": "Ons werk aan ’n oplossing vir die probleem. Probeer gerus weer later.", + "errorInviteFailedTitle": "Kon nie {{displayName}} nooi nie", + "errorInviteTitle": "", + "pending": "{{displayName}} is genooi" + }, + "videoStatus": { + "audioOnly": "", + "audioOnlyExpanded": "U is in Net klank-modus. Dié modus spaar bandwydte maar u sal nie video’s van ander sien nie.", + "callQuality": "", + "hd": "HD", + "highDefinition": "Hoëdefinisie", + "labelTooiltipNoVideo": "Geen video", + "labelTooltipAudioOnly": "Net klank-modus geaktiveer", + "ld": "LD", + "lowDefinition": "Laedefinisie", + "onlyAudioAvailable": "Net klank is beskikbaar", + "onlyAudioSupported": "Op dié blaaier ondersteun ons slegs klank.", + "sd": "SD", + "standardDefinition": "Standaarddefinisie" + }, + "videothumbnail": { + "domute": "Demp", + "flip": "Swaai om", + "kick": "Skop uit", + "moderator": "Moderator", + "mute": "", + "muted": "Gedemp", + "remoteControl": "", + "show": "", + "videomute": "" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Raak om aan te sluit", + "roomname": "Gee kamernaam" + }, + "appDescription": "Hou gerus ’n videogesprek met die hele span. Om die waarheid te sê, nooi sommer almal. {{app}} is ’n 100% oopbronoplossing vir geënkripteerde videokonferensies wat mens heeldag, elke dag gratis kan geniet — geen rekening nodig nie.", + "audioVideoSwitch": { + "audio": "Stem", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Koppel u kalender", + "connectCalendarText": "", + "enterRoomTitle": "Begin ’n nuwe vergadering", + "go": "GAAN", + "info": "", + "join": "SLUIT AAN", + "privacy": "Privaatheid", + "recentList": "Onlangs", + "recentListDelete": "Skrap", + "recentListEmpty": "Die lys van onlangse gesprekke is leeg. Gesels met u span en al u onlangse gesprekke sal hier wys.", + "reducedUIText": "", + "roomname": "Gee kamernaam", + "roomnameHint": "Gee die naam of URL van die kamer waar u wil aansluit. Dink gerus enige naam uit. Laat weet net die mense wat u ontmoet wat dit is sodat hulle die selfde naam gee.", + "sendFeedback": "Stuur terugvoer", + "terms": "Voorwaardes", + "title": "Veilige en volledig gratis videokonferensies propvol funksionaliteit" + } +} diff --git a/lang/main-ar.json b/lang/main-ar.json new file mode 100644 index 0000000..bbb34da --- /dev/null +++ b/lang/main-ar.json @@ -0,0 +1,1357 @@ +{ + "addPeople": { + "add": "ادع", + "addContacts": "ادع كل جهات الاتصال لدي", + "contacts": "جهات اتصال", + "copyInvite": "انسخ دعوةً للمُلتقى", + "copyLink": "انسخ رابط المُلتقى", + "copyStream": "انسخ رابط البث المباشر", + "countryNotSupported": "لا ندعم هذه الوجهة حاليًا.", + "countryReminder": "أتريد الاتصال بمن هو خارج الولايات المتحدة؟ تأكد من الابتداء برمز الدولة أولًا!", + "defaultEmail": "بريدك الافتراضي", + "disabled": "لا يمكنك دعوة أحد.", + "failedToAdd": "فشل إضافة مشاركين", + "googleEmail": "بريد غوغل", + "inviteMoreHeader": "أنت بمفردك في هذا المُلتقى", + "inviteMoreMailSubject": "ضم {{appName}} للمُلتقى", + "inviteMorePrompt": "ادعُ أشخاصًا آخرين", + "linkCopied": "نُسِخ الرابط", + "noResults": "لم يُعثَر على أي نتيجة بحث متطابقة", + "outlookEmail": "بريد مايكروسوفت", + "phoneNumbers": "أضف ارقام هواتف", + "searching": "يبحث", + "shareInvite": "شارك دعوةً للمُلتقى", + "shareLink": "شارك رابط المُلتقى لدعوة الأخرين", + "shareStream": "شارك رابط البث المباشر للمُلتقى", + "sipAddresses": "sip عنوان", + "telephone": "رقم الهاتف: {{number}}", + "title": "ادعُ أحدًا لهذا المُلتقى", + "yahooEmail": "بريد ياهوو" + }, + "audioDevices": { + "bluetooth": "بلوتوث", + "car": "مسجل السيارة", + "headphones": "سماعات رأس", + "none": "لا يوجد أي أجهزة صوت", + "phone": "هاتف", + "speaker": "مكبر الصوت" + }, + "audioOnly": { + "audioOnly": "معدل تبادل البيانات منخفض" + }, + "breakoutRooms": { + "actions": { + "add": "أضف غرفة جانبية", + "autoAssign": "التخصيص التلقائي للغرف الجانبية", + "close": "أغلق", + "join": "انضم", + "leaveBreakoutRoom": "اترك الغرفة الجانبية", + "more": "أكثر", + "remove": "إزالة", + "sendToBreakoutRoom": "أرسل المشارك إلى:" + }, + "defaultName": "غرفة المُلتقيات الفرعية رقم {{index}}", + "mainRoom": "الغرفة الرئيسية", + "notifications": { + "joined": " الغرفة الجانبيةالانضمام إلى {{index}}", + "joinedMainRoom": "الانضمام للغرفة الرئيسية", + "joinedTitle": "غرف جانبية" + } + }, + "calendarSync": { + "addMeetingURL": "أضف رابطًا لمُلتقى", + "confirmAddLink": "هل تريد إضافة رابط جيستسي لهذا الحدث؟", + "error": { + "appConfiguration": "لم تُضبَط عملية إضافة الرزنامة ضبطًا صحيحًا.", + "generic": "حصل خطأُ. تحقق من إعدادات رزنامتك أو جرب تحديثها، رجاءً.", + "notSignedIn": "حدث خطأ أثناء إجراء عملية الاستيثاق للوصول إلى تفاصيل الأحداث المسجلة في الرزنامة. تحقق رجاءً من إعدادات رزنامتك وجرب التسجيل مرة أخرى." + }, + "join": "انضم", + "joinTooltip": "انضم إلى المُلتقى", + "nextMeeting": "المُلتقى التالي", + "noEvents": "لا يوجد أي أحدات آتية مجدولة.", + "ongoingMeeting": "مُلتقى قائم", + "permissionButton": "افتح الإعدادات", + "permissionMessage": "يطلب إذن الوصول إلى الرزنامة لرؤية مواعيد مُلتقياتك.", + "refresh": "حدِّث الرزنامة", + "today": "اليوم" + }, + "carmode": { + "actions": { + "selectSoundDevice": "حدد جهاز الصوت" + }, + "labels": { + "buttonLabel": "وضع السيارة", + "title": "وضع السيارة", + "videoStopped": "تم إيقاف الفيديو الخاص بك" + } + }, + "chat": { + "enter": "أدخل الغرفة", + "error": "خطأ: لم تُرسَل رسالتك. السبب: {{error}}", + "fieldPlaceHolder": "اكتب رسالتك هنا", + "lobbyChatMessageTo": "رسالة دردشة لوبي إلى {{recipient}}", + "message": "رسالة", + "messageAccessibleTitle": "{{user}} مقولة:", + "messageAccessibleTitleMe": "أنا أقول:", + "messageTo": "أرسل رسالة خاصة إلى {{recipient}}", + "messagebox": "اكتب رسالة", + "newMessages": "رسائل جديدة", + "nickname": { + "popover": "اختر لقبًا", + "title": "اكتب لقبًا لاعتماده في المحادثة", + "titleWithPolls": "اكتب لقبًا لاعتماده في المحادثة" + }, + "noMessagesMessage": "لا يوجد أي رسالة في المُلتقى بعد. ابدأ محادثة هنا.", + "privateNotice": "أرسل رسالة خاصة إلى {{recipient}}", + "sendButton": "أرسل", + "smileysPanel": "واجهة الإيموجي", + "tabs": { + "chat": "دردشة", + "polls": "تصويت" + }, + "title": "محادثة", + "titleWithPolls": "محادثة", + "you": "أنت" + }, + "chromeExtensionBanner": { + "buttonText": "نزِّل إضافة متصفح كروم", + "buttonTextEdge": "قم بتثبيت ملحق Edge", + "close": "إغلق", + "dontShowAgain": "لا ترني هذه مرة أخرى", + "installExtensionText": "نزِّل الإضافة للدمج مع رزنامة غوغل ورزنامة أوفيس 365" + }, + "connectingOverlay": { + "joiningRoom": "قيد وصلك بالإجتماع…" + }, + "connection": { + "ATTACHED": "رُبِط", + "AUTHENTICATING": "قيد إجراء الاستيثاق", + "AUTHFAIL": "فشل عملية الاستيثاق", + "CONNECTED": "وُصِل", + "CONNECTING": "قيد الوصل", + "CONNFAIL": "فشل عملية الوصل", + "DISCONNECTED": "فُصِل", + "DISCONNECTING": "قيد الفصل", + "ERROR": "خطأ", + "FETCH_SESSION_ID": "قيد الحصول على مُعرِّف الجلسة…", + "GET_SESSION_ID_ERROR": "خطأ في الحصول على مُعرِّف الجلسة: {{code}}", + "GOT_SESSION_ID": "جرى الحصول على مُعرِّف الجلسة", + "LOW_BANDWIDTH": "أوقف فيديو {{displayName}} لتوفير كمية البيانات المتبادلة" + }, + "connectionindicator": { + "address": "العنوان:", + "audio_ssrc": "مصدر الصوت:", + "bandwidth": "مُعدَّل البيانات المتبادلة:", + "bitrate": "مُعدَّل البث:", + "bridgeCount": "عدد المخدِّمات: ", + "codecs": "المرماز (A/V): ", + "connectedTo": "وصل إلى:", + "framerate": "مُعدَّل الإطارات:", + "less": "اخف", + "localaddress": "العنوان المحلي:", + "localaddress_plural": "العناوين المحلية::", + "localport": "المنفذ المحلي:", + "localport_plural": "المنافذ المحلية:", + "maxEnabledResolution": "أرسل أقصى دقة", + "more": "اظهر المزيد", + "packetloss": "مُعدَّل الفقد:", + "participant_id": "معرّف المشترك:", + "quality": { + "good": "جيد", + "inactive": "خامل", + "lost": "مفقود", + "nonoptimal": "غير مثالي", + "poor": "رديء" + }, + "remoteaddress": "العنوان البعيد:", + "remoteaddress_plural": "العناوين البعيدة:", + "remoteport": "المنفذ البعيد:", + "remoteport_plural": "المنافذ البعيدة:", + "resolution": "الدقة:", + "savelogs": "خزن الوقوعات", + "status": "الاتصال:", + "transport": "النقل:", + "transport_plural": "النواقل:", + "video_ssrc": "مصدر الصورة:" + }, + "dateUtils": { + "earlier": "سابقًا", + "today": "اليوم", + "yesterday": "البارحة" + }, + "deepLinking": { + "appNotInstalled": "تحتاج إلى تطبيق الجوال {{app}} للانضمام إلى إلى هذا المُلتقى على هاتفك.", + "description": "ألم يحدث شيء؟ جربنا عقد مُلتقىك على تطبيق الحاسوب {{app}}. جرب مرة أخرى أو اعقد المُلتقى على تطبيق الويب {{app}}.", + "descriptionWithoutWeb": "ألم يحدث شيء؟ جربنا عقد مُلتقىك على تطبيق الحاسوب {{app}}.", + "downloadApp": "نزِّل التطبيق", + "ifDoNotHaveApp": "إن لم تملك التطبيق بعد:", + "ifHaveApp": "إن كان لديك التطبيق:", + "joinInApp": "انضم للمُلتقى عبر تطبيق الجوال", + "launchWebButton": "افتح تطبيق الويب", + "title": "قيد عقد مُلتقىك في {{app}}…", + "tryAgainButton": "جرب مرة أخرى في تطبيق الحاسوب", + "unsupportedBrowser": "يبدو أنك تستخدم متصفحًا لا ندعمه." + }, + "defaultLink": "{{url}} مثلًا", + "defaultNickname": "محمد علي مثلًا", + "deviceError": { + "cameraError": "فشل الوصول إلى كاميرتك", + "cameraPermission": "خطأ في تحصيل إذن استخدام كاميرتك", + "microphoneError": "فشل الوصول إلى المايكروفون", + "microphonePermission": "خطأ في تحصيل إذن استخدام المايكروفون" + }, + "deviceSelection": { + "noPermission": "لم يُمنَح الإذن", + "previewUnavailable": "المعاينة غير متاحة", + "selectADevice": "اختر جهازًا", + "testAudio": "اختبر الصوت" + }, + "dialIn": { + "screenTitle": "ملخص الطلب" + }, + "dialOut": { + "statusMessage": "{{status}} الآن" + }, + "dialog": { + "Back": "عد للخلف", + "Cancel": "ِألغ", + "IamHost": "أنا المضيف", + "Ok": "تمام", + "Remove": "أزل", + "Share": "شارك", + "Submit": "أرسل", + "WaitForHostMsg": "لم يبدأ المؤتمر بعد. إن كنت المضيف والراعي، فنرجو تأكيد ذلك عبر الاستيثاق أو انتظر وصول المضيف رجاءً. ", + "WaitingForHostTitle": "في انتظار المضيف…", + "Yes": "نعم", + "accessibilityLabel": { + "liveStreaming": "بث حي مباشر" + }, + "add": "أضف", + "addMeetingNote": "أضف ملاحظة حول هذا المُلتقى", + "addOptionalNote": "أضف ملاحظة (اختياري)", + "allow": "اسمح", + "alreadySharedVideoMsg": "يشارك أحد الحضور الفيديو حاليًا، ولا يسمح هذا الإجتماع سوى بمشاركة فيديو واحد في آن واحد", + "alreadySharedVideoTitle": "لا يُسمَح سوى بفيديو مشارك واحد على الأكثر في آن واحد.", + "applicationWindow": "نافذة التطبيق", + "authenticationRequired": "يستلزم التوثيق", + "cameraConstraintFailedError": "لا تتوافق كاميرتك مع بعض الشروط المطلوبة.", + "cameraNotFoundError": "لم يُعثَر على اي كاميرا", + "cameraNotSendingData": "لا نتمكن من الوصول إلى كاميرتك. تحقَّق رجاءً إن كان أي تطبيق آخر يستعملها، أو اختر جهازًا آخر من القائمة أو جرب تحميل التطبيق مجدَّدًا.", + "cameraNotSendingDataTitle": "يصعب الوصول الوصول إلى كاميرتك", + "cameraPermissionDeniedError": "لم تُمنَح إذن استعمال الكاميرا. لا يزال بإمكانك حضور المؤتمر ولكن لن يراك الآخرون. استعمال زر الكاميرا في شريط العنوان لمحاول إصلاح المشكلة.", + "cameraTimeoutError": "تعذر بدء مصدر الفيديو. انتهت المهلة!", + "cameraUnknownError": "يصعب استعمال الكاميرا لأسباب مجهولة.", + "cameraUnsupportedResolutionError": "لا تدعم كاميرتك دقة الفيديو المطلوبة.", + "close": "أغلق", + "conferenceDisconnectMsg": "قد تضطر للتحقق من اتصال الشبكة لديك. سيعاد الاتصال خلال {{seconds}} ثانية…", + "conferenceDisconnectTitle": "فُصِل الاتصال لديك.", + "conferenceReloadMsg": "نحاول إصلاح الأمر. سيعاد الاتصال خلال {{seconds}} ثانية…", + "conferenceReloadTitle": "لم تسر الأمور على ما يرام، نأسف لذلك!", + "confirm": "أكِّد", + "confirmNo": "لا", + "confirmYes": "نعم", + "connectError": "عجبًا! لم بسر الأمر على ما يرام فلم نتصل بالمؤتمر.", + "connectErrorWithMsg": "عجبًا! لم تسر الأمر على ما يرام فلم نتصل بالمؤتمر: {{msg}}", + "connecting": "قيد الاتصال", + "contactSupport": "اتصل بالدعم", + "copied": "نُسِخ!", + "copy": "انسخ", + "dismiss": "تجاهل", + "displayNameRequired": "السلام عليكم! ما اسمك؟", + "done": "اُنجِز", + "e2eeDescription": "

عملية التعمية من طرف لطرف قيد التجريب حاليًا. زر رجاءً هذا المنشور لمزيد من التفاصيل.


ضع في ذهنك أن تشغيل عملية التعمية من طرف لطرف ستعطل عمل بعض الخدمات التي يقدمها المُخدِّم مثل: التسجيل، والبث الحي، الاشتراك عبر الهاتف. أضف إلى ذلك أن المُلتقى سيعمل مع الأشخاص المنضمين من المتصفح التي تدعم قابلية الدخول إلى البث.

", + "e2eeDisabledDueToMaxModeDescription": "لا يمكن تمكين التشفير من طرف إلى طرف بسبب العدد الكبير من المشاركين في المؤتمر.", + "e2eeLabel": "المفتاح", + "e2eeWarning": "تحذير: لا يبدو أن جميع المشاركين في هذا المُلتقى لديهم دعم للتشفير من طرف إلى طرف. إذا قمت بتمكينه فلن يتمكنوا من رؤيتك أو سماعك.", + "e2eeWillDisableDueToMaxModeDescription": "تحذير: سيتم تعطيل التشفير من طرف إلى طرف تلقائيًا إذا انضم المزيد من المشاركين إلى المؤتمر.", + "embedMeeting": "تضمين المُلتقى", + "enterDisplayName": "أدخل اسمك هنا، رجاءً", + "error": "خطأ", + "gracefulShutdown": "خدمتنا متوقفة حاليًا لعمليات الصيانة. جرب مرة أخرى في وقت لاحق.", + "grantModeratorDialog": "أما زلت راغب بجعل هذا المشارك رئيس الجلسة؟", + "grantModeratorTitle": "اجعله رئيس الجلسة", + "hideShareAudioHelper": "لا تظهر هذا الحوار مرة أخرى", + "incorrectPassword": "اسم المستخدم أو كلمة المرور خطأ", + "incorrectRoomLockPassword": "كلمة مرور خطأ", + "internalError": "عجبًا! لم تسر الأمور على ما يرام. حصل الخطأ التالي: {{error}}", + "internalErrorTitle": "خطأ داخلي", + "kickMessage": "يمكنك التواصل مع {{participantDisplayName}} لمزيد من التفاصيل.", + "kickParticipantButton": "اطرد", + "kickParticipantDialog": "أمتأكد من طرد هذا المشارك؟", + "kickParticipantTitle": "أتريد طرد هذا المشارك؟", + "kickTitle": "عذرًا! تم طردك {{participantDisplayName}} من المُلتقى", + "linkMeeting": "ربط المُلتقى", + "linkMeetingTitle": "ربط المُلتقى بـ Salesforce", + "liveStreaming": "البث المباشر الحي", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "غير ممكن أثناء التسجيل", + "localUserControls": "ضوابط المستخدم المحلي", + "lockMessage": "فشل جعل المؤتمر مغلقًا.", + "lockRoom": "أضف المُلتقى $t(lockRoomPasswordUppercase)", + "lockTitle": "فشلت عملية القفل والإغلاق", + "login": "تسجيل الدخول", + "logoutQuestion": "أمتأكد من رغبتك في الخروج وإيقاف المؤتمر؟", + "logoutTitle": "الخروج", + "maxUsersLimitReached": "وصل عدد المشاركين إلى الحد الأقصى. المؤتمر مكتمل الحضور. اتصل رجاءً براعي المؤتمر أو جرب مرة أخرى لاحقًا.", + "maxUsersLimitReachedTitle": "وصل عدد المشاركين إلى الحد الأقصى", + "micConstraintFailedError": "لا يوافق المايكروفون لديك بعض القيود المطلوبة.", + "micNotFoundError": "لم يُعثَر على أي مايكروفون", + "micNotSendingData": "اذهب إلى إعدادات حاسوبك لإلغاء كتم المايكروفون وضبط مستواه", + "micNotSendingDataTitle": "كتم ضبط الإعدادات لديك المايكروفون", + "micPermissionDeniedError": "لم تعط إذن استعمال المايكروفون الخاص بك. ما يزال بإمكانك الإنضمام إلى المؤتمر ولكن دون أن يسمعك الآخرون. جرب استعمال زر الكاميرا في شريط العنوان لإصلاح هذه المشكلة.", + "micTimeoutError": "تعذر بدء مصدر الصوت. انقضت المهلة!", + "micUnknownError": "لا يمكن استخدام الميكروفون لسبب غير معروف.", + "moderationAudioLabel": "السماح للحاضرين بإعادة الصوت بأنفسهم", + "moderationVideoLabel": "السماح للحاضرين ببدء الفيديو الخاص بهم", + "muteEveryoneDialog": "أمتأكد من رغبتك بكتم الجميع؟ لن تتمكن من إلغاء الكتم ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.", + "muteEveryoneDialogModerationOn": "يمكن للمشاركين إرسال طلب للتحدث في أي وقت.", + "muteEveryoneElseDialog": "بمجرد أن تكتمهم، لن تتمكن نم إلغاء الكتم هذا، ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.", + "muteEveryoneElseTitle": "أتريد كتم الجميع باستثناء {{whom}}?", + "muteEveryoneElsesVideoDialog": "بمجرد تعطيل الكاميرا ، لن تتمكن من إعادة تشغيلها ، ولكن يمكنهم إعادة تشغيلها في أي وقت.", + "muteEveryoneElsesVideoTitle": "وقف فيديو الجميع باستثناء {{whom}}?", + "muteEveryoneSelf": "اكتم نفسك أيضًا", + "muteEveryoneStartMuted": "البدء مع كتم الجميع من الآن فصاعدًا", + "muteEveryoneTitle": "أتريد كتم الجميع؟", + "muteEveryonesVideoDialog": "يمكن للمشاركين تشغيل الفيديو الخاص بهم في أي وقت.", + "muteEveryonesVideoDialogModerationOn": "يمكن للمشاركين إرسال طلب لتشغيل الفيديو الخاص بهم في أي وقت.", + "muteEveryonesVideoDialogOk": "إبطال", + "muteEveryonesVideoTitle": "وقف فيديو الجميع؟", + "muteParticipantBody": "لن تتكمن من إلغاء كتمهم، ولكن يمكنهم إلغاء كتم أنفسهم في أي وقت.", + "muteParticipantButton": "كتم", + "muteParticipantsVideoBody": "لن تتمكن من إعادة تشغيل الكاميرا ، ولكن يمكنهم إعادة تشغيلها في أي وقت.", + "muteParticipantsVideoBodyModerationOn": "لن تكون قادرًا على إعادة تشغيل الكاميرا ولن يفعلوا ذلك أيضًا.", + "muteParticipantsVideoButton": "وقف الكاميرا", + "muteParticipantsVideoDialog": "هل أنت متأكد أنك تريد إيقاف تشغيل كاميرا هذا المشارك؟ لن تتمكن من إعادة تشغيل الكاميرا ، ولكن يمكنهم إعادة تشغيلها في أي وقت.", + "muteParticipantsVideoDialogModerationOn": "هل أنت متأكد أنك تريد إيقاف تشغيل كاميرا هذا المشارك؟ لن تكون قادرًا على إعادة تشغيل الكاميرا ولن يفعلوا ذلك أيضًا.", + "muteParticipantsVideoTitle": "تعطيل الكاميرا لهذا المشارك؟", + "noDropboxToken": "لا يوجد رمز مميز صالح لـ Dropbox", + "password": "كلمه السر", + "passwordLabel": "جعل عضو ما هذا المُلتقى مغلقًا. أدخل رجاءً $t(lockRoomPassword) للإنضمام.", + "passwordNotSupported": "ضبط مُلتقى $t(lockRoomPassword) غير مدعوم.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) غير مدعوم", + "passwordRequired": "يُطلَب $t(lockRoomPasswordUppercase)", + "permissionCameraRequiredError": "مطلوب إذن الكاميرا للمشاركة في المؤتمرات بالفيديو. يرجى منحه في الإعدادات", + "permissionErrorTitle": "الإذن مطلوب", + "permissionMicRequiredError": "مطلوب إذن الميكروفون للمشاركة في المؤتمرات مع الصوت. يرجى منحه في الإعدادات", + "popupError": "يمنع متصفحك النوافذ المنبثقة من هذا الموقع. فعِّل رجاءً النوافذ المنبثقة في المتصفح من إعدادات الحماية وحاول مرة أخرى.", + "popupErrorTitle": "النوافذ المنبثقة محجوبة.", + "readMore": "أكثر", + "recentlyUsedObjects": "الأشياء المستخدمة مؤخرًا", + "recording": "قيد التسجيل", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "ليس بالإمكان ما دمت قيد البث المباشر", + "rejoinNow": "انضم مجدَّدًا الآن", + "remoteControlAllowedMessage": "قبل {{user}} طلب إمكانية التحكم البعيد!", + "remoteControlDeniedMessage": "رفض {{user}} طلب إمكانية التحكم البعيد!", + "remoteControlErrorMessage": "حصل خطأ أثناء محاولة طلب إذن التحكم البعيد من {{user}}", + "remoteControlRequestMessage": "أتسمح بأن يتحكم {{user}} بحاسوبك عن بعد؟", + "remoteControlShareScreenWarning": "انتبه إلى أنَّ شاشتك ستُشارَك بمجرد ضغطك على \"اسمح\"!", + "remoteControlStopMessage": "انتهت جلسة التحكم البعيدة!", + "remoteControlTitle": "التحكم البعيد بالحاسوب", + "remoteUserControls": "ضوابط المستخدم عن بعد لـ {{username}}", + "removePassword": "أزل $t(lockRoomPassword)", + "removeSharedVideoMsg": "أمتأكد من رغبتك بإزالة الفيديو المشارك الخاص بك؟", + "removeSharedVideoTitle": "أزل الفيديو المشارك", + "reservationError": "خطأ في نظام الحجز", + "reservationErrorMsg": "رمز الخطأ: {{code}}، الرسالة: {{msg}}", + "retry": "أعد", + "screenSharingAudio": "شارك الصوت", + "screenSharingFailed": "عجبًا! حصل خطأ ما، فلن نتمكن من مشاركة الشاشة للأسف!", + "screenSharingFailedTitle": "فشلت عملية مشاركة الشاشة!", + "screenSharingPermissionDeniedError": "عجبًا! حصل خطأ ما متعلق بأذونات إضافة مشاركة الشاشة. أعد التحميل وجرِّب مرة أخرى، رجاءً.", + "searchInSalesforce": "ابحث في Salesforce", + "searchResults": "نتائج البحث ({{count}})", + "searchResultsDetailsError": "حدث خطأ ما أثناء استرداد بيانات المالك.", + "searchResultsError": "حدث خطأ ما أثناء استرداد البيانات.", + "searchResultsNotFound": "لم يتم العثور على نتائج عن البحث.", + "searchResultsTryAgain": "حاول استخدام كلمات رئيسية بديلة.", + "sendPrivateMessage": "وصلتك رسالة خاصة للتو، أتنوي الرد عليها ردًا خاصًا أم تريد إرسال رسالتك على المجموعة؟", + "sendPrivateMessageCancel": "أرسل إلى المجموعة", + "sendPrivateMessageOk": "أرسل ردًا خاصًا", + "sendPrivateMessageTitle": "أترسل ردًا خاصًا؟", + "serviceUnavailable": "الخدمة غير متاحة", + "sessTerminated": "أُنهيَت المكالمة", + "sessionRestarted": "إعادة الاتصال من الجسر", + "shareAudio": "استمر", + "shareAudioTitle": "كيفية مشاركة الصوت", + "shareAudioWarningD1": "تحتاج إلى إيقاف مشاركة الشاشة قبل مشاركة الصوت الخاص بك.", + "shareAudioWarningD2": "تحتاج إلى إعادة تشغيل مشاركة الشاشة والتحقق من خيار مشاركة الصوت .", + "shareAudioWarningH1": "إذا كنت تريد مشاركة الصوت فقط:", + "shareAudioWarningTitle": "تحتاج إلى إيقاف مشاركة الشاشة قبل مشاركة الصوت", + "shareMediaWarningGenericH2": "إذا كنت ترغب في مشاركة شاشتك والصوت", + "shareScreenWarningD1": "تحتاج إلى إيقاف مشاركة الصوت قبل مشاركة شاشتك.", + "shareScreenWarningD2": "تحتاج إلى إيقاف مشاركة الصوت وبدء مشاركة الشاشة وتحديد خيار مشاركة الصوت .", + "shareScreenWarningH1": "إذا كنت تريد مشاركة شاشتك فقط:", + "shareScreenWarningTitle": "تحتاج إلى إيقاف مشاركة الصوت قبل مشاركة شاشتك", + "shareVideoLinkError": "زودنا برابط يوتيوب صحيح", + "shareVideoTitle": "شارك فيديو", + "shareYourScreen": "شارك شاشتك", + "shareYourScreenDisabled": "مشاركة الشاشة مُعطَّلة", + "sharedVideoDialogError": "خطأ: رابط غير صالح", + "sharedVideoLinkPlaceholder": "رابط اليوتيوب او رابط الفيديو المباشر", + "start": "إبدأ", + "startLiveStreaming": "ابدأ بثًا حيًا", + "startRecording": "ابدأ التسجيل", + "startRemoteControlErrorMessage": "حصل خطأٌ أثناء محاولة بدء جلسة تحكم بعيد!", + "stopLiveStreaming": "أوقف البث الحي", + "stopRecording": "أوقف التسجيل", + "stopRecordingWarning": "أمتأكد من رغبتك بإيقاف التسجيل؟", + "stopStreamingWarning": "أمتأكد من رغبتك بإيقاف البث الحي؟", + "streamKey": "مفتاح البث الحي", + "thankYou": "نشكرك لاستعمال {{appName}}!", + "token": "مفتاح الأمان المساعد", + "tokenAuthFailed": "عذرًا، لا يسمح لك بالإنضام إلى هذه المكالمة.", + "tokenAuthFailedTitle": "فشلت عملية الاستيثاق", + "transcribing": "يذاع", + "unlockRoom": "إزل المُلتقى $t(lockRoomPassword)", + "user": "مستخدم", + "userIdentifier": "معرف المستخدم", + "userPassword": "كلمة مرور المستخدم", + "videoLink": "رابط الفيديو", + "viewUpgradeOptions": "عرض خيارات الترقية", + "viewUpgradeOptionsContent": "للحصول على وصول غير محدود إلى الميزات المتميزة مثل التسجيل والنسخ وتدفق RTMP والمزيد ، ستحتاج إلى ترقية خطتك.", + "viewUpgradeOptionsTitle": "لقد اكتشفت ميزة مميزة!", + "yourEntireScreen": "شاشتك كاملةً" + }, + "documentSharing": { + "title": "الملف المشارك" + }, + "e2ee": { + "labelToolTip": "فعَّل كل المشاركين في هذا الإجتماع عملية التعمية طرف لطرف" + }, + "embedMeeting": { + "title": "ضمِّن هذا المُلتقى" + }, + "feedback": { + "average": "المتوسط", + "bad": "سيئة", + "detailsLabel": "أخبرنا المزيد عن تجربتك.", + "good": "جيدة", + "rateExperience": "قيِّم تجربتك مع هذا الإجتماع", + "star": "نجمة", + "veryBad": "سيئة للغاية", + "veryGood": "ممتازة" + }, + "giphy": { + "noResults": "لم يتم العثور على نتائج :(", + "search": "ابحث في GIPHY" + }, + "helpView": { + "title": "مركز المساعدة" + }, + "incomingCall": { + "answer": "أجب", + "audioCallTitle": "مكالمة صوتية واردة", + "decline": "ارفض", + "productLabel": "مُلتقى جيتسي", + "videoCallTitle": "مكالمة مرئية واردة" + }, + "info": { + "accessibilityLabel": "أظهر المعلومات", + "addPassword": "أضف $t(lockRoomPassword)", + "cancelPassword": "ألغ $t(lockRoomPassword)", + "conferenceURL": "رابط:", + "copyNumber": "إنسخ الرقم", + "country": "البلد", + "dialANumber": "إن أردت الإنضمام إلى المُلتقى، اتصل بأحد الأرقام التالية ثم أدخل رمز المرور", + "dialInConferenceID": "رمز المرور (PIN):", + "dialInNotSupported": "عذرًا، الاتصال غير مدعوم حاليًا.", + "dialInNumber": "اتصل:", + "dialInSummaryError": "خطأ في تحصيل معلومات الاتصال. جرب مرة أخرى لاحقًا.", + "dialInTollFree": "رقم هاتف مجاني", + "genericError": "عفوًا، شيء ما لم يسر على ما يرام.", + "inviteLiveStream": "لمشاهدة البث الحي لهذا المُلتقى، اضط على هذا الرابط: {{url}}", + "invitePhone": "للإنضمام من الهاتف، استعمل: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "أتبحث عن رقم اتصال مختلف؟\nأنظر أرقام الوصول إلى هذا الإجتماع: {{url}}\n\n\nإن كنت أيضًا تتصل عبر غرفة اتصال (room phone)، انضم دون الاتصال بالصوت: {{silentUrl}}", + "inviteSipEndpoint": "للانضمام باستخدام عنوان SIP ، أدخل هذا: {{sipUri}}", + "inviteTextiOSInviteUrl": "انقر فوق الرابط التالي للانضمام: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "إذا كنت تقوم بالاتصال من خلال هاتف الغرفة ، فاستخدم هذا الارتباط للانضمام دون الاتصال بالصوت: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} يدعوك إلى مُلتقى.", + "inviteTextiOSPhone": "للانضمام عبر الهاتف ، استخدم هذا الرقم: {{number}},,{{conferenceID}}#. إذا كنت تبحث عن رقم مختلف ، فهذه هي القائمة الكاملة: {{didUrl}}.", + "inviteURLFirstPartGeneral": "دُعيِت للإنضمام إلى مُلتقى", + "inviteURLFirstPartPersonal": "دعاك {{name}} لمُلتقى.\n", + "inviteURLSecondPart": "\nانضم للمُلتقى:\n{{url}}\n", + "label": "تفاصيل المُلتقى", + "liveStreamURL": "بث حي:", + "moreNumbers": "أرقام إضافية", + "noNumbers": "لا يوجد أرقام اتصال.", + "noPassword": "لا يوجد", + "noRoom": "لم تُخصَّص غرفة للاتصال إليها", + "numbers": "أرقام الاتصال", + "password": "$t(lockRoomPasswordUppercase):", + "sip": "SIP عنوان", + "title": "شارك", + "tooltip": "شارك رابط وتفاصيل الاتصال لهذا المُلتقى" + }, + "inlineDialogFailure": { + "msg": "تعثرث معنا بعض الأمور :(", + "retry": "حاول مرة أخرى", + "support": "الدعم", + "supportMsg": "إن تكرَّر حصول هذا، تواصل مع" + }, + "inviteDialog": { + "alertText": "فشلت عملية دعوة بعض المشاركين", + "header": "ادعُ", + "searchCallOnlyPlaceholder": "أدخل رقم هاتف", + "searchPeopleOnlyPlaceholder": "ابحث عن مشاركين", + "searchPlaceholder": "مشارك أو رقم هاتف", + "send": "أرسل" + }, + "jitsiHome": "{{logo}} الشعار ، رابط إلى الصفحة الرئيسية", + "keyboardShortcuts": { + "focusLocal": "ركز على الفيديو الخاص بك", + "focusRemote": "ركز على فيديو مشارك آخر", + "fullScreen": "استعمل/اخرج من وضع الشاشة الكاملة", + "giphyMenu": "تبديل قائمة GIPHY", + "keyboardShortcuts": "اختصارات لوحة المفاتيح", + "localRecording": "اظهِر أو اخفِ التحكم بالتسجيل المحلي", + "mute": "اكتم أو ألغ كتم المايكروفون الخاص بك", + "pushToTalk": "اضغط للتحدث", + "raiseHand": "ارفع/اخفض يدك", + "showSpeakerStats": "اظهر حالة مكبر الصوت", + "toggleChat": "افتح/أغلق المحادثة", + "toggleFilmstrip": "أظهِر/اخفِ إطار الفيديو المُصغَّر", + "toggleParticipantsPane": "إظهار أو إخفاء قائمة المشاركين", + "toggleScreensharing": "بدِّل بين الكاميرا ومشاركة الشاشة", + "toggleShortcuts": "أظهِر/اخفِ اختصارات لوحة المفاتيح", + "videoMute": "ابدأ/أوقف كاميرتك" + }, + "largeVideo": { + "screenIsShared": "أنت تشارك شاشتك", + "showMeWhatImSharing": "أرني ما أشاركه" + }, + "liveStreaming": { + "busy": "نعمل على تحرير موارد البث. حاول مرة أخرى رجاءً بعض بضعة دقائق.", + "busyTitle": "جميع من يبث الفيديو مشغولون حاليًا", + "changeSignIn": "بدِّل الحسابات.", + "choose": "اختر بثًا حيًا", + "chooseCTA": "حدد خيار البث. أنت مسجل حاليًا بصفتك {{email}}.", + "enterStreamKey": "أدخل مفتاح البث الحي الخاص باليوتيوب هنا", + "error": "فشلت عملية البث الحي. حاول مرَّة أخرى لاحقًا.", + "errorAPI": "حصل خطأ أثناء الوصول إلى البث الخاص بك على يوتيوب. حاول تسجيل الدخول مرَّة أخرى.", + "errorLiveStreamNotEnabled": "البث الحي غير مفعَّل على على {{email}}. فعَّل البث الحي رجاءً، أو سجِّل الدخل إلى حسابٍ مُفعَّل فيه البث الحي", + "expandedOff": "أُوقِف البث الحي", + "expandedOn": "يجري بث المُلتقى على يوتيوب", + "expandedPending": "تبدأ عملية البث الحي…", + "failedToStart": "فشلت عملية بدء البث الحي", + "getStreamKeyManually": "لم نتمكن من الوصول إلى أي بث حي. جرب جلب مفتاح بث حي خاص بك من يوتيوب.", + "googlePrivacyPolicy": "سياسية خصوصية غوغل", + "inProgress": "البث المباشر غير ممكّن على {{email}}. يرجى تمكين البث المباشر أو تسجيل الدخول إلى حساب مع تمكين البث المباشر.", + "invalidStreamKey": "يحتمل كون مفتاح البث الحي غير صحيح.", + "limitNotificationDescriptionNative": "سيقيَّد البث إلى {{limit}} د، ولكن إن أردت إجراء عملية بث غير محدودة، جرِّب {{app}}.", + "limitNotificationDescriptionWeb": "نظرًا للضغط الكبير، سيقيَّد البث إلى {{limit}} د، ولكن إن أردت إجراء عملية بث غير محدودة، جرِّب {{app}}.", + "off": "أُوقِف البث الحي", + "offBy": "أوقف {{name}} البث الحي", + "on": "بث حي", + "onBy": "بدأ {{name}} بثًّا حيًّا", + "pending": "بدء بثٍّ حيٍّ", + "serviceName": "خدمة البث الحي", + "sessionAlreadyActive": "هذه الجلسة قيد التسجيل أو البث المباشر.", + "signIn": "سجل الدخول عبر حساب غوغل", + "signInCTA": "سجل الدخول أو أدخل مفتاح البث الحي الخاص بك من يوتيوب", + "signOut": "سجِّل الخروج", + "signedInAs": "أنت مسجل حاليًا بصفة:", + "start": "ابدأبثًّا حيًّا", + "streamIdHelp": "ما هذا؟", + "title": "البث المباشر الحي", + "unavailableTitle": "خدمة البث الحي غير متوفرة", + "youtubeTerms": "شروط خدمة يوتيوب" + }, + "lobby": { + "allow": "اسمح", + "backToKnockModeButton": "لا يوجد كلمة مرور، اطلب الإذن بالدخول بدلًا من ذلك.", + "chat": "دردشة", + "dialogTitle": "ونضع غرفة الانتظار", + "disableDialogContent": "وضع غرفة الانتظار مفعَّل. تسمح هذه الميزة بعدم السماح للغرباء بالانضمام إلى المُلتقى، فهل تريد حقًا تعطيلها؟", + "disableDialogSubmit": "عطِّل", + "emailField": "أدخل بريدك الإلكتروني", + "enableDialogPasswordField": "حدِّد كلمة مرور (اختياري)", + "enableDialogSubmit": "فعِّل", + "enableDialogText": "يحمي وضع الانتظار غرفة المُلتقى عبر منح رئيس الجلسة إمكانية الموافقة على انضمام المشاركين.", + "enterPasswordButton": "أدخل كلمة المرور لهذا المُلتقى", + "enterPasswordTitle": "أدخل كلمة المرور للدخول للمُلتقى", + "errorMissingPassword": "الرجاء إدخال كلمة مرور المُلتقى", + "invalidPassword": "كلمة مرور غير صحيحة", + "joinRejectedMessage": "رفض رئيس الجلسة منحك الإذن بالدخول إلى المُلتقى", + "joinRejectedTitle": "تم رفض طلب الانضمام.", + "joinTitle": "انضم للمُلتقى", + "joinWithPasswordMessage": "الرجاء الانتظار أثناء محاولة الدخول دون كلمة مرور…", + "joiningMessage": "ستتمكن من الانضمام للمُلتقى بعد الموافقة على طلبك", + "joiningTitle": "يجري طلب إذنٍ للدخول…", + "joiningWithPasswordTitle": "الدخول مع كلمة مرور…", + "knockButton": "اطلب إذن الدخول", + "knockTitle": "يريد أحدٌ الدخول إلى المُلتقى", + "knockingParticipantList": "تنبيه قائمة المشاركين", + "lobbyChatStartedNotification": "بدأ {{moderator}} دردشة في الردهة مع {{attendee}}", + "lobbyChatStartedTitle": "بدأ {{moderator}} محادثة في الردهة معك.", + "nameField": "أدخل اسمك", + "notificationLobbyAccessDenied": "رفض {{originParticipantName}} مشاركة {{targetParticipantName}} للمُلتقى", + "notificationLobbyAccessGranted": "سمح {{originParticipantName}} بمشاركة {{targetParticipantName}} للمُلتقى", + "notificationLobbyDisabled": "عطَّل {{originParticipantName}} وضع غرفة الانتظار", + "notificationLobbyEnabled": "فعَّل {{originParticipantName}} وضع غرفة الانتظار", + "notificationTitle": "غرفة الانتظار", + "passwordField": "أدخل كلمة الدخول إلى المُلتقى", + "passwordJoinButton": "انضم", + "title": "غرفة الانتظار", + "toggleLabel": "فعِّل غرفة الانتظار" + }, + "localRecording": { + "clientState": { + "off": "مُطفَأ", + "on": "مُشغَّل", + "unknown": "غير معروف" + }, + "dialogTitle": "التحكم بالتسجيل المحلي", + "duration": "المدة", + "durationNA": "غير متوفر", + "encoding": "الترميز", + "label": "تسجيل محلي", + "labelToolTip": "التسجيل المحلي مُشغَّل", + "localRecording": "تسجيل محلي", + "me": "أنا", + "messages": { + "engaged": "بدء تسجيل محلي", + "finished": "انتهت جلسة التسجيل {{token}}. أرسل الملف المُسجَّل إلى رئيس الجلسة رجاءً.", + "finishedModerator": "انتهت جلسة التسجيل {{token}}. حُفِظ التسجيل للمسار المحلي. اطلب رجاءً من المشاركين بإرسال تسجيلاتهم.", + "notModerator": "لست رئيس الجلسة. لا تستطيع بدء أو إيقاف عملية تسجيل محلي." + }, + "moderator": "رئيس الجلسة", + "no": "لا", + "participant": "مشارك", + "participantStats": "حالة مشارك", + "sessionToken": "مفتاح المرور المساعد للجلسة", + "start": "ابدأ التسجيل", + "stop": "أوقف التسجيل", + "yes": "نعم" + }, + "lockRoomPassword": "كلمة المرور", + "lockRoomPasswordUppercase": "كلمة المرور", + "lonelyMeetingExperience": { + "button": "ادعُ آخرين", + "youAreAlone": "أنت بمفردك في المُلتقى" + }, + "me": "أنا", + "notify": { + "OldElectronAPPTitle": "ثغرة أمنية!", + "allowAction": "يسمح", + "allowedUnmute": "يمكنك إعادة صوت الميكروفون و بدء تشغيل الكاميرا أو مشاركة شاشتك.", + "audioUnmuteBlockedDescription": "تم حظر عملية إلغاء كتم صوت الميكروفون مؤقتًا بسبب قيود النظام.", + "audioUnmuteBlockedTitle": "تم حظر إعادة صوت الميكروفون!", + "chatMessages": "رسائل الدردشة", + "connectedOneMember": "انضم {{name}} للمُلتقى", + "connectedThreePlusMembers": "انضم {{name}} وعدد {{count}} غيره إلى المُلتقى", + "connectedTwoMembers": "انضم {{first}} و {{second}} إلى المُلتقى", + "disconnected": "انقطع الاتصال", + "displayNotifications": "عرض الإخطارات لـ", + "focus": "التركيز على المؤتمر", + "focusFail": "إنَّ {{component}} غير متاح. ستعاد المحاولة مرة أخرى خلال {{ms}} ثانية.", + "gifsMenu": "GIPHY", + "groupTitle": "إشعارات", + "hostAskedUnmute": "يريدك مدير اللقاء أن تتحدث.", + "invitedOneMember": "دُعِي {{name}}", + "invitedThreePlusMembers": "دُعِي {{name}} وعدد {{count}} آخرين", + "invitedTwoMembers": "دُعِي {{first}} و {{second}}", + "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}} الصوت لديك!", + "mutedTitle": "مكتوم!", + "newDeviceAction": "استعمل", + "newDeviceAudioTitle": "اكتُشفَ جهاز صوت جديد", + "newDeviceCameraTitle": "اكتُشفَت كاميرا جديدة", + "noiseSuppressionDesktopAudioDescription": "لا يمكن تمكين منع الضوضاء أثناء مشاركة صوت سطح المكتب ، يرجى تعطيله والمحاولة مرة أخرى.", + "noiseSuppressionFailedTitle": "فشل في بدء قمع الضوضاء", + "noiseSuppressionNoTrackDescription": "يرجى إعادة صوت الميكروفون أولاً.", + "noiseSuppressionStereoDescription": "قمع ضوضاء صوت الاستريو غير مدعوم حاليًا.", + "oldElectronClientDescription1": "يبدو أنَّك تستعمل إصدارًا قديمًا من جيتسي يحوي ثغرة أمنية. تأكد رجاءً من أنَّك حدَّثته إلى ", + "oldElectronClientDescription2": "أحدث إصدار", + "oldElectronClientDescription3": " الآن!", + "participantWantsToJoin": "يريد الانضمام إلى المُلتقى", + "participantsWantToJoin": "يريد الانضمام إلى المُلتقى", + "passwordRemovedRemotely": "أزال أحد المشاركين {{participantDisplayName}}", + "passwordSetRemotely": "ضبط أحد المشاركين $t(lockRoomPasswordUppercase)", + "raiseHandAction": "رفع اليد", + "raisedHand": "يريد {{name}} التحدث", + "raisedHands": "{{participantName}} و {{raisedHands}}المزيد من الناس", + "reactionSounds": "تعطيل الأصوات", + "reactionSoundsForAll": "تعطيل الأصوات للجميع", + "screenShareNoAudio": "لم يتم تحديد مربع مشاركة الصوت في شاشة تحديد النافذة.", + "screenShareNoAudioTitle": "تعذرت مشاركة صوت النظام!", + "selfViewTitle": "يمكنك دائمًا إلغاء إخفاء العرض الذاتي من الإعدادات", + "somebody": "شخص ما", + "startSilentDescription": "أنضم مجدَّدًا للمُلتقى لتفعيل الصوت", + "startSilentTitle": "انضممت دون مخرج للصوت!", + "suboptimalBrowserWarning": "نخشى أن لا تكون تجربة المُلتقى جيدة. نعمل على تحسين الكثير من الأمور، لكن ننصحك حتى ذلك الحين باستعمال باستعمال أحد المتصفحات المدعومة.", + "suboptimalExperienceTitle": "تحذير من المتصفح", + "unmute": "إلغاء الكتم", + "videoMutedRemotelyDescription": "يمكنك دائمًا تشغيله مرة أخرى.", + "videoMutedRemotelyTitle": "تم إيقاف الفيديو الخاص بك بواسطة {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "تم حظر عملية إلغاء كتم الكاميرا مؤقتًا بسبب قيود النظام.", + "videoUnmuteBlockedTitle": "تم حظر إعادة الكاميرا!", + "viewLobby": "مشاهدة اللوبي", + "waitingParticipants": "{{waitingParticipants}} اشخاص" + }, + "participantsPane": { + "actions": { + "admit": "سمح بالدخول", + "admitAll": "سمح للجميع بالدخول", + "allow": "السماح للحاضرين بـ:", + "allowVideo": "السماح بالفيديو", + "askUnmute": "اطلب إعادة الصوت", + "audioModeration": "إعادة صوت أنفسهم", + "blockEveryoneMicCamera": "حظر ميكروفون وكاميرا الجميع", + "invite": "قم بدعوة شخص ما", + "moreModerationActions": "المزيد من خيارات الاشراف", + "moreModerationControls": "المزيد من ضوابط الاشراف", + "moreParticipantOptions": "المزيد من خيارات المشاركين", + "mute": "كتم الصوت", + "muteAll": "كتم الكل", + "muteEveryoneElse": "كتم صوت الآخرين", + "reject": "رفض", + "stopEveryonesVideo": "أوقف فيديو الجميع", + "stopVideo": "أوقف الفيديو", + "unblockEveryoneMicCamera": "قم بإلغاء حظر ميكروفون وكاميرا الجميع", + "videoModeration": "ابدأ الفيديو الخاص بهم" + }, + "close": "غلق", + "headings": { + "lobby": "الردهة ({{count}})", + "participantsList": "المشاركون في المُلتقى({{count}})", + "waitingLobby": "منتظرون في الردهة ({{count}})" + }, + "search": "بحث", + "title": "مشاركون" + }, + "passwordDigitsOnly": "حتى {{number}} عدد", + "passwordSetRemotely": "ضبطها مشارك آخر", + "pinnedParticipant": "تم تثبيت المشارك", + "polls": { + "answer": { + "skip": "تخطى", + "submit": "يقدم" + }, + "by": "من", + "create": { + "addOption": "إضافة خيار", + "answerPlaceholder": "خيار {{index}}", + "cancel": "إلغاء", + "create": "إنشاء استطلاع", + "pollOption": "خيار الاستطلاع {{index}}", + "pollQuestion": "سؤال الاستطلاع", + "questionPlaceholder": "طرح سؤال", + "removeOption": "إزالة خيار", + "send": "أرسل" + }, + "errors": { + "notUniqueOption": "يجب أن تكون الخيارات فريدة" + }, + "notification": { + "description": "افتح علامة تبويب الاقتراع للتصويت", + "title": "تمت إضافة اقتراع جديد إلى هذا المُلتقى" + }, + "results": { + "changeVote": "تغيير التصويت", + "empty": "لا توجد استطلاعات للرأي في المُلتقى حتى الآن. ابدأ الاستطلاع هنا!", + "hideDetailedResults": "أخفِ التفاصيل", + "showDetailedResults": "اظهر التفاصيل", + "vote": "تصويت" + } + }, + "poweredby": "مُشغَّل بوساطة", + "prejoin": { + "audioAndVideoError": "خطأ في الصوت أو الفيديو:", + "audioDeviceProblem": "هنالك خطأ في جهاز الصوت لديك.", + "audioOnlyError": "خطأ في الصوت:", + "audioTrackError": "لم نتمكن من إنشاء ملف الصوت", + "callMe": "اتصل بي", + "callMeAtNumber": "اتصل بي على هذا الرقم:", + "calling": "قيد الاتصال", + "configuringDevices": "يجري ضبط الأجهزة…", + "connectedWithAudioQ": "هل متصل بجهاز صوت؟", + "connection": { + "good": "اتصال الإنترنت لديك جيد!", + "nonOptimal": "اتصال الإنترنت لديك ليس كما هو مطلوب", + "poor": "اتصال الإنترنت لديك ضعيف" + }, + "connectionDetails": { + "audioClipping": "نتوقع أن يُقتطع ملف الصوت", + "audioHighQuality": "نتوقع أن تكون جودة ملف الصوت ممتازة!", + "audioLowNoVideo": "نتوقع أن تكون جودة الصوت منخفضة وبدون فيديو", + "goodQuality": "رائع! الجودة في تحسن للأفضل!", + "noMediaConnectivity": "لم نتمكن من إيجاد وسيلة لإنشاء اتصال لهذه التجربة، وسبب هذا عائد إلى الجدار الناري أو مترجم عناوين الشبكة NAT في أغلب الأحيان.", + "noVideo": "نتوقع أن تكون جودة الفيديو تعيسة.", + "undetectable": "إن مازلت غير قادر على إجراء اتصالات من المتصفح، ننصح بالتأكد من حالة مكبرات الصوت والمايكروفون والكاميرا، وأنَّك منحت المتصفح إذن الوصول إليها وأن المتصفح محدَّث إلى أحدث إصدار. إن ما زلت تواجه مشاكل في الاتصال بعد ذلك، حاول التواصل مع مطوري تطبيق الويب.", + "veryPoorConnection": "نتوقع أن تكون جودة الاتصال تعيسة.", + "videoFreezing": "نتوقع حصول جمود في الفيديو أو تحول الصورة للسواد", + "videoHighQuality": "نتوقع أن تكون جودة الفيديو جيدة", + "videoLowQuality": "نتوقع أن تكون جودة الفيديو منخفضة من ناحية معدِّل الإطارات والدقة", + "videoTearing": "نتوقع أن تكون دقة الفيديو تعيسة" + }, + "copyAndShare": "انسخ رابط المُلتقى وشاركه", + "dialInMeeting": "يجري الاتصال بالمُلتقى", + "dialInPin": "يجري الاتصال، أدخل الرمز PIN:", + "dialing": "يجري الاتصال", + "doNotShow": "لا تظهر لي هذه مرة أخرى", + "errorDialOut": "لم نتمكن من الاتصال", + "errorDialOutDisconnected": "قطع الاتصال لفشل العملية.", + "errorDialOutFailed": "فشلت عملية الاتصال، للأسف.", + "errorDialOutStatus": "خطأ في معرفة حالة الاتصال", + "errorMissingName": "أدخل اسمك للدخول للمُلتقى", + "errorNoPermissions": "تحتاج إلى تمكين الوصول إلى الميكروفون والكاميرا", + "errorStatusCode": "فشل الاتصال برمز خطأ: {{status}}", + "errorValidation": "فشل التحقق من الرقم", + "iWantToDialIn": "أريد الاتصال", + "initiated": "بدأ الاتصال", + "joinAudioByPhone": "انضم مع صوت من الجوال", + "joinMeeting": "انضم للمُلتقى", + "joinMeetingInLowBandwidthMode": "الانضمام في وضع النطاق الترددي المنخفض", + "joinWithoutAudio": "انضم دون صوت", + "keyboardShortcuts": "تفعيل اختصارات لوحة المفاتيح", + "linkCopied": "نُسِخ الرابط", + "lookGood": "يبدو أن الميكروفون لديك سيء", + "or": "أو", + "premeeting": "ما قبل المُلتقى", + "screenSharingError": "خطأ في مشاركة الشاشة:", + "startWithPhone": "البدء مع جهاز الصوت من الجوال", + "videoOnlyError": "خطأ في الفيديو:", + "videoTrackError": "لم نتمكن من إنشاء ملف الفيديو", + "viewAllNumbers": "عرض جميع الأرقام" + }, + "presenceStatus": { + "busy": "مشغول", + "calling": "يتحدث…", + "connected": "متصل", + "connecting": "يتصل…", + "connecting2": "يتصل…", + "disconnected": "غير الاتصال", + "expired": "منتهي الصلاحية", + "ignored": "مهمل", + "initializingCall": "تهيئة مكالمة…", + "invited": "مدعو", + "rejected": "مرفوض", + "ringing": "يرن…" + }, + "privacyView": { + "title": "خصوصية" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "حدد اسمك المراد عرضه", + "setEmailInput": "أدخل بريدك الإلكتروني", + "setEmailLabel": "حدد الصورة الرمزية (gravatar) لبريدك الإلكتروني", + "title": "الملف الشخصي" + }, + "raisedHand": "يرد التحدث", + "raisedHandsLabel": "عدد الأيدي المرفوعة", + "record": { + "already": { + "linked": "السجل مرتبط بالفعل بهذه الجلسة." + }, + "type": { + "account": "الحساب", + "contact": "جهات الاتصال", + "lead": "البدء", + "opportunity": "الفرصة", + "owner": "المالك" + } + }, + "recording": { + "authDropboxText": "رفع إلى Dropbox", + "availableSpace": "المساحة المتاحة: {{spaceLeft}} ميغابايت (ما يقارب {{duration}} دقيقة تسجيل).", + "beta": "تجريبي", + "busy": "نعمل على تحرير موارد التسجيل. حاول مرة أخرى بعد بضعة دقائق.", + "busyTitle": "جميع المسجلين مشغولون حاليًا", + "copyLink": "Copy Link", + "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": "تأكد من تحديد علامة التبويب الحالية لاستخدام الفيديو والصوت الصحيحين. التسجيل محدود حاليًا بـ 1 كيغابايت ، أي حوالي 100 دقيقة.", + "loggedIn": "مُسجَّل باسم {{userName}}", + "noStreams": "لم يتم الكشف عن دفق الصوت أو الفيديو.", + "off": "أوقِف التسجيل", + "offBy": "أوقَف {{name}} التسجيل", + "on": "تسجيل", + "onBy": "بدأ {{name}} التسجيل", + "onlyRecordSelf": "تسجيل فقط دفق الصوت والفيديو الخاصة بي", + "pending": "التحضير لتسجيل المُلتقى…", + "rec": "تسجيل", + "saveLocalRecording": "حفظ ملف التسجيل محليا", + "serviceDescription": "ستحفظ خدمة التسجيل الفيديو المستجل", + "serviceDescriptionCloud": "تسجيل سحابي", + "serviceDescriptionCloudInfo": "يتم مسح المُلتقيات المسجلة تلقائيًا بعد 24 ساعة من وقت التسجيل.", + "serviceName": "خدمة التسجيل", + "sessionAlreadyActive": "هذه الجلسة قيد التسجيل أو البث المباشر.", + "signIn": "دخول", + "signOut": "خروج", + "surfaceError": "الرجاء تحديد علامة التبويب الحالية.", + "title": "قيد التسجيل", + "unavailable": "عجبًا! {{serviceName}} غير متاحة حاليًا. نعمل على حل المشكلة. حاول مرة أخرى لاحقًا.", + "unavailableTitle": "التسجيل غير متاح", + "uploadToCloud": "تحميل إلى السحابة" + }, + "screenshareDisplayName": "شاشة {{name}}", + "sectionList": { + "pullToRefresh": "اسحب للتحديث" + }, + "security": { + "about": "يمكنك إضافة $t(lockRoomPassword) إلى المُلتقى. سيتوجب على المشاركين إدخال $t(lockRoomPassword) قبل السماح لهم بالانضمام إلى المُلتقى.", + "aboutReadOnly": "المشاركون بصفة رئيس الجلسة يمكنهم إضافة $t(lockRoomPassword) إلى المُلتقى. سيتوجب على المشاركين إدخال $t(lockRoomPassword) قبل السماح لهم بالانضمام إلى المُلتقى.", + "insecureRoomNameWarning": "اسم الغرفة غير آمن، فقد ينضم عبره مشاركون غرباء إلى المُلتقى. ننصحك بتأمين المُلتقى عبر وسائل الحماية التي يوفرها زر الحماية.", + "title": "خيارات الأمان" + }, + "settings": { + "audio": "الصوت", + "buttonLabel": "إعدادات", + "calendar": { + "about": "تُستعمَل الرزنامة {{appName}} المدمجة للوصل بأمان إلى رزنامتك، لذا بالإمكان معرفة الأحداث القادمة.", + "disconnect": "قطع الاتصال", + "microsoftSignIn": "سجل الدخول باستعمال حساب مايكروسوفت", + "signedIn": "يجري الوصول إلى أحداث الرزنامة حاليًا التي تخص {{email}}. اضغط على زر قطع الاتصال بالأسفل لإيقاف الوصول إلى أحداث المسجلة في الرزنامة.", + "title": "الرزنامة" + }, + "desktopShareFramerate": "معدل إطارات مشاركة سطح المكتب", + "desktopShareHighFpsWarning": "قد يؤثر معدل الإطارات الأعلى لمشاركة سطح المكتب على النطاق الترددي الخاص بك. تحتاج إلى إعادة تشغيل مشاركة الشاشة حتى تدخل الإعدادات الجديدة حيز التنفيذ.", + "desktopShareWarning": "تحتاج إلى إعادة تشغيل مشاركة الشاشة حتى تدخل الإعدادات الجديدة حيز التنفيذ. تحتاج إلى إعادة تشغيل مشاركة الشاشة حتى يتم تفعيل الإعدادات الجديدة.", + "devices": "الأجهزة", + "followMe": "كل من يتابعني", + "framesPerSecond": "إطار في الثانية", + "incomingMessage": "رسالة واردة", + "language": "اللغة", + "loggedIn": "الدخول باسم {{name}}", + "maxStageParticipants": "الحد الأقصى لعدد المشاركين الذين يمكن تثبيتهم في المرحلة الرئيسية", + "microphones": "المايكروفون", + "moderator": "رئيس الجلسة", + "more": "المزيد", + "name": "الاسم", + "noDevice": "لا يوجد", + "notifications": "الإشعارات", + "participantJoined": "انضم مشارك", + "participantKnocking": "دخل المشارك في الردهة", + "participantLeft": "غادر المشارك", + "playSounds": "تشغيل الصوت عند:", + "reactions": "ردود فعل المُلتقى", + "sameAsSystem": "مثل النظام ({{label}})", + "selectAudioOutput": "خرج الصوت", + "selectCamera": "الكاميرا", + "selectMic": "المايكروفون", + "selfView": "عرض ذاتي", + "shortcuts": "اختصارات لوحة المفاتيح", + "sounds": "اصوات", + "speakers": "المذياع (مكبر الصوت)", + "startAudioMuted": "بدء الجميع مكتومي الصوت", + "startReactionsMuted": "كتم رد فعل الصوت للجميع", + "startVideoMuted": "بدء الجميع دون فيديو", + "talkWhileMuted": "تحدث أثناء كتم الصوت", + "title": "الإعدادات", + "video": "الفيديو" + }, + "settingsView": { + "advanced": "إعدادات متقدمة", + "alertCancel": "ألغِ", + "alertOk": "تمام", + "alertTitle": "تحذير", + "alertURLText": "رابط المُخدِّم المدخل غير صالح", + "buildInfoSection": "معلومات الإصدار", + "conferenceSection": "مؤتمر", + "disableCallIntegration": "تعطيل دمج الاتصال الأساسي", + "disableCrashReporting": "عطِّل تقارير الأعطال التقنية", + "disableCrashReportingWarning": "أمتأكد من تعطيل تقارير الأعطال التقنية؟ ستسري الإعدادات الجديدة بعد إعادة تشغيل التطبيق", + "disableP2P": "تعطيل وضع واحد شخص-لشخص", + "displayName": "عرض الاسم", + "displayNamePlaceholderText": "على سبيل المثال: علي الحيدري", + "email": "البريد الإلكتروني", + "goTo": "اذهب إلى", + "header": "الإعدادات", + "help": "مساعدة", + "links": "روابط", + "privacy": "خصوصية", + "profileSection": "الملف الشخصي", + "serverURL": "رابط المُخدِّم", + "showAdvanced": "أظهِر الإعدادات المتقدمة", + "startWithAudioMuted": "بدء الجميع مكتومي الصوت", + "startWithVideoMuted": "بدء الجميع دون فيديو", + "terms": "شروط", + "version": "الإصدار" + }, + "share": { + "dialInfoText": "\n\n=====\n\nأتريد الاتصال فقط من هاتفك؟\n\n{{defaultDialInNumber}}اضغط على هذا الرابط لرؤية أرقام الهواتف الخاصة بهذا المُلتقى\n{{dialInfoPageUrl}}", + "mainText": "اضغط على الرابط التالي للانضمام إلى المُلتقى:\n{{roomUrl}}" + }, + "speaker": "المتحدث", + "speakerStats": { + "angry": "غاضب", + "disgusted": "مشمئز", + "displayEmotions": "إظهار المشاعر", + "fearful": "خائف", + "happy": "سعيد", + "hours": "{{count}}س", + "minutes": "{{count}}د", + "name": "الاسم", + "neutral": "حيادي", + "sad": "حزين", + "search": "بحث", + "searchHint": "البحث عن المشاركين", + "seconds": "{{count}}ثا", + "speakerStats": "حالة المتحدث", + "speakerTime": "وقت المتحدث", + "surprised": "مندهش" + }, + "startupoverlay": { + "genericTitle": "يحتاج المُلتقى إلى استخدام الميكروفون والكاميرا.", + "policyText": " ", + "title": "يريد {{app}} استعمال الميكروفون والكاميرا خاصَّتك." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "المنطقة", + "text": "اضغط على زر المنطقة لإعادة الاتصال.", + "title": "قُطِع اتصال الفيديو لدخول هذا الحاسوب في وضع النوم." + }, + "termsView": { + "title": "مصطلحات" + }, + "toggleTopPanelLabel": "تبديل اللوحة العلوية", + "toolbar": { + "Settings": "الإعدادات", + "accessibilityLabel": { + "Settings": "اظهِر/اخفِ الإعدادات", + "audioOnly": "بدل الصوت فقط", + "audioRoute": "اختر جهاز الصوت", + "boo": "Boo", + "breakoutRoom": "الانضمام / مغادرة غرفة فرعية", + "callQuality": "اضبط دقة الفيديو", + "carmode": "وضع السيارة", + "cc": "اظهِر/اخفِ الترجمة", + "chat": "اظهِر/اخفِ نافذة الدردشة", + "clap": "تصفيق", + "collapse": "قلّص", + "document": "اظهِر/اخفِ الملف المشارك", + "download": "نزِّل التطبيق", + "embedMeeting": "ضمِّن المُلتقى", + "endConference": "End meeting for all", + "expand": "وسّع", + "feedback": "أبدِ رأيك", + "fullScreen": "استعمل/اخرج من وضع الشاشة الكاملة", + "giphy": "تبديل قائمة GIPHY", + "grantModerator": "امنح صلاحيات رئيس الجلسة", + "hangup": "أغلق المكالمة", + "help": "مساعدة", + "invite": "ادعُ آخرين", + "kick": "اطرد مشاركًا", + "laugh": "يضحك", + "leaveConference": "اترك الاجتماع", + "like": "رفع الإبهام متمنيا النجاح", + "linkToSalesforce": "ارتباط إلى Salesforce", + "lobbyButton": "فعِّل/عطِّل وضع غرفة الانتظار", + "localRecording": "اظهِر/اخفِ التحكم بالتسجيل المحلي", + "lockRoom": "اظهِر/اخفِ كلمة مرور المُلتقى", + "moreActions": "اظهِر/اخفِ قائمة المزيد من الإجراءات", + "moreActionsMenu": "قائمة المزيد من الإجراءات", + "moreOptions": "اظهر المزيد من الخيارت", + "mute": "اظهِر/اخفِ كتم الصوت", + "muteEveryone": "كتم الجميع", + "muteEveryoneElse": "كتم صوت الآخرين", + "muteEveryoneElsesVideoStream": "وقّف فيديو أي شخص آخر", + "muteEveryonesVideoStream": "وقّف فيديو الجميع", + "noiseSuppression": "قمع الضوضاء", + "participants": "مشاركون", + "pip": "استعمل/اخرج من وضع صورة-في-صورة", + "privateMessage": "أرسل رسالة خاصة", + "profile": "عدِّل ملفك الشخصي", + "raiseHand": "اظهِر/اخفِ رفع اليد", + "reactionsMenu": "فتح / إغلاق قائمة التفاعلات", + "recording": "اظهِر/اخفِ التسجيل", + "remoteMute": "اكتم مشاركًا", + "remoteVideoMute": "تعطيل كاميرا المشارك", + "security": "خيارات الحماية", + "selectBackground": "اختر الخلفية", + "selfView": "تبديل الواجهة الذاتية", + "shareRoom": "ادعُ أحدًا", + "shareYourScreen": "بدِّل وضع مشاركة الشاشة", + "shareaudio": "مشاركة الصوت", + "sharedvideo": "اظهِر/اخفِ مشاركة فيديو يوتيوب", + "shortcuts": "اظهِر/اخفِ الاختصارات", + "show": "اظهر على المنصة", + "silence": "Silence", + "speakerStats": "اظهِر/اخفِ حالة المتحدث", + "surprised": "مندهش", + "tileView": "اظهِر/اخفِ عرض العنوان", + "toggleCamera": "بدِّل الكاميرا", + "toggleFilmstrip": "بدِّل وضع الشريط السينمائي (filmstrip)", + "videoblur": "استعمل/اخرج من وضع تغبيش خلفية الفيديو", + "videomute": "بدِّل وضع اخفاء الفيديو" + }, + "addPeople": "اضف أحدًا إلى المكالمة", + "audioOnlyOff": "عطِّل وضع معدَّل نقل البيانات المنخفص", + "audioOnlyOn": "فعِّل وضع نقل البيانات المنخفض", + "audioRoute": "اختر جهاز الصوت", + "audioSettings": "إعدادات الصوت", + "authenticate": "اَجرِ عملية الاستيثاق", + "boo": "Boo", + "callQuality": "اضبط دقة الفيديو", + "chat": "افتح / أغلق الشاشة", + "clap": "تصفيق", + "closeChat": "أغلق الدردشة", + "closeReactionsMenu": "إغلاق قائمة ردود الفعل", + "disableNoiseSuppression": "قم بتعطيل خاصية منع الضوضاء", + "disableReactionSounds": "يمكنك تعطيل أصوات ردود الفعل لهذا المُلتقى", + "documentClose": "أغلق الملف المشارك", + "documentOpen": "افتح الملف المشارك", + "download": "نزِّل التطبيق", + "e2ee": "تعمية طرف-لطرف", + "embedMeeting": "ضمِّن المُلتقى", + "endConference": "إنهاء الاجتماع للجميع", + "enterFullScreen": "تعمية طرف-لطرف", + "enterTileView": "عرض بشاشة كاملة", + "exitFullScreen": "أدخل عنوان العرض", + "exitTileView": "اخرج من وضع الشاشة الكاملة", + "feedback": "أبدِ رأيك", + "giphy": "تبديل قائمة GIPHY", + "hangup": "غادر", + "help": "مساعدة", + "invite": "ادعُ أحدًا", + "joinBreakoutRoom": "انضم إلى غرفة الجانبية", + "laugh": "يضحك", + "leaveBreakoutRoom": "اترك إلى غرفة الجانبية", + "leaveConference": "اترك الاجتماع", + "like": "رفع الإبهام متمنيا النجاح", + "linkToSalesforce": "ارتباط إلى Salesforce", + "lobbyButtonDisable": "عطِّل وضع غرفة الانتظار", + "lobbyButtonEnable": "فعِّل وضع غرفة الانتظار", + "login": "ادخل", + "logout": "اخرج", + "lowerYourHand": "اخفض يدك", + "moreActions": "المزيد من الإجراءات", + "moreOptions": "المزيد من الخيارات", + "mute": "اكتم / ألغ الكتم", + "muteEveryone": "اكتم الجميع", + "muteEveryonesVideo": "تعطيل كاميرا الجميع", + "noAudioSignalDesc": "إن لم تكتمه عمدًا من إعدادات النظام لديك أو من الجهاز نفسه، بدِّله إلى جهاز آخر.", + "noAudioSignalDescSuggestion": "إن لم تكتمه عمدًا من إعدادات النظام لديك أو من الجهاز نفسه، بدِّله إلى الجهاز الموصى به.", + "noAudioSignalDialInDesc": "يمكن أيضًا الاتصال باستعمال:", + "noAudioSignalDialInLinkDesc": "أرقام الاتصال", + "noAudioSignalTitle": "لا يصلنا شيئًا من المايكروفون الخاص بك", + "noiseSuppression": "قمع الضوضاء", + "noisyAudioInputDesc": "يبدو أنَّ المايكروفون لديك يلتقط الكثير من الضجة، اكتمه رجاءً أو استعمل ميكروفونًا آخر.", + "noisyAudioInputTitle": "يبدو أنَّ المايكروفون لديك يلتقط الكثير من الضجة!", + "openChat": "فتح الدرشة", + "openReactionsMenu": "افتح قائمة التفاعلات", + "participants": "مشاركون", + "pip": "استعمل وضع صورة-في-صورة", + "privateMessage": "أرسل رسالة خاصة", + "profile": "عدِّل ملفك الشخصي", + "raiseHand": "ارفع / اخفض يدك", + "raiseYourHand": "ارفع يدك", + "reactionBoo": "أرسل رد فعل بوو", + "reactionClap": "أرسل رد فعل التصفيق", + "reactionLaugh": "أرسل رد فعل يضحك", + "reactionLike": "إرسال رد فعل ممتاز", + "reactionSilence": "أرسل رد فعل الصمت", + "reactionSurprised": "أرسل رد فعل متفاجئًا", + "security": "خيارات الحماية", + "selectBackground": "اختر الخلفية", + "shareRoom": "ادعُ أحدًا", + "shareaudio": "مشاركة الصوت", + "sharedvideo": "شارك فيديو يوتيوب", + "shortcuts": "اعرض الاختصارات", + "silence": "سكوت", + "speakerStats": "حالة المتحدث", + "startScreenSharing": "ابدأ بمشاركة الشاشة", + "startSubtitles": "أظهر الترجمة", + "stopAudioSharing": "وقف مشاركة الصوت", + "stopScreenSharing": "أوقف مشاركة الشاشة", + "stopSharedVideo": "أوقف فيديو يوتيوب المشارك", + "stopSubtitles": "أخفِ الترجمة", + "surprised": "مندهش", + "talkWhileMutedPopup": "أتحاول التحدث؟ الميكروفون لديك مكتوم.", + "tileViewToggle": "بدِّل عنوان العرض", + "toggleCamera": "بدِّل الكاميرا", + "videoSettings": "اعدادات الفيديو", + "videomute": "استعمل / أوقف الكاميرا" + }, + "transcribing": { + "ccButtonTooltip": "أظهر / أخف الترجمة", + "error": "فشلت عملية الإذاعة. حاول مرة أخرى، رجاءً.", + "expandedLabel": "عملية الإذاعة تعمل", + "failedToStart": "فشلت عملية بدء الإذاعة", + "labelToolTip": "يجري إذاعة المُلتقى", + "off": "أوقفت الإذاعة", + "pending": "التحضير لإذاعة المُلتقى…", + "start": "بدء إظهار الترجمة", + "stop": "إيقاف عرض الترجمة", + "subtitles": "ترجمات", + "subtitlesOff": "إيقاف", + "tr": "يذاع" + }, + "userMedia": { + "grantPermissions": "امنح إذنًا باستعمال الكاميرا والمايكروفون." + }, + "videoSIPGW": { + "busy": "نعمل على تحرير الموارد. حاول مرة أخرى لاحقًا بعد بضعة دقائق.", + "busyTitle": "خدمة الغرفة مشغولة حاليًا", + "errorAlreadyInvited": "دعي {{displayName}} مسبقًا", + "errorInvite": "لم يقام المؤتمر بعد. حاول مرة أخرى لاحقًا", + "errorInviteFailed": "نعمل على حل المشكلة. حاول مرة أخرى لاحقًا.", + "errorInviteFailedTitle": "فشل إرسال دعوة إلى {{displayName}}", + "errorInviteTitle": "خطأ في إرسال الدعوة", + "pending": "دعي {{displayName}} مسبقًا" + }, + "videoStatus": { + "adjustFor": "ضبط ل:", + "audioOnly": "صوت", + "audioOnlyExpanded": "أنت في وضع معدَّل البيانات المتبادلة المنخفض. الصوت ومشاركة الشاشة هو المتاح فقط في هذا الوضع.", + "bestPerformance": "أفضل أداء", + "callQuality": "جودة الفيديو", + "hd": "دقة عالية", + "hdTooltip": "عرض فيديو بدقة عالية", + "highDefinition": "دقة عالية", + "highestQuality": "اعلى جودة", + "labelTooiltipNoVideo": "بلا فيديو", + "labelTooltipAudioOnly": "فعِّل وضع معدَّل البيانات المتبادلة المنخفض", + "ld": "دقة منخفضة", + "ldTooltip": "عرض فيديو بدقة منخفضة", + "lowDefinition": "دقة منخفضة", + "performanceSettings": "إعدادات الأداء", + "sd": "دقة قياسية", + "sdTooltip": "عرض فيديو بدقة قياسية", + "standardDefinition": "دقة قياسية" + }, + "videothumbnail": { + "connectionInfo": "معلومات الاتصال", + "domute": "كتم", + "domuteOthers": "كتم الجميع", + "domuteVideo": "تعطيل الكاميرا", + "domuteVideoOfOthers": "تعطيل الكاميرا للآخرين", + "flip": "قلب", + "grantModerator": "امنح صلاحيات رئيس الجلسة", + "hideSelfView": "إخفاء المنظر الذاتي", + "kick": "طرد خارجًا", + "moderator": "رئيس الجلسة", + "mute": "المشارك مكتوم الصوت", + "muted": "مكتوم", + "pinToStage": "تثبيت في المرحلة", + "remoteControl": "بدء / إيقاف التحكم البعيد", + "screenSharing": "المشارك يشارك شاشته", + "show": "أظهر على المنصة", + "showSelfView": "إظهار الواجهة الذاتية", + "unpinFromStage": "فك", + "videoMuted": "الكاميرا معطلة", + "videomute": "أوقف المشارك الكاميرا" + }, + "virtualBackground": { + "addBackground": "أضف خلفية", + "apply": "تطبيق", + "backgroundEffectError": "فشل تطبيق تأثير الخلفية.", + "blur": "ضبابية", + "deleteImage": "حذف صورة", + "desktopShare": "مشاركة سطح المكتب", + "desktopShareError": "تعذر إنشاء مشاركة سطح المكتب", + "image1": "شاطئ", + "image2": "جدار أبيض محايد", + "image3": "غرفة بيضاء فارغة", + "image4": "مصباح أرضي أسود", + "image5": "جبل", + "image6": "غابة", + "image7": "شروق الشمس", + "none": "بدون", + "pleaseWait": "يرجى الانتظار…", + "removeBackground": "إزالة خلفية", + "slightBlur": "طمس طفيف", + "title": "خلفيات افتراضية", + "uploadedImage": "تحميل الصورة {{index}}", + "webAssemblyWarning": "WebAssembly غير مدعوم", + "webAssemblyWarningDescription": "تم تعطيل WebAssembly أو عدم دعمه بواسطة هذا المستعرض" + }, + "volumeSlider": "مستوى الصوت", + "welcomepage": { + "accessibilityLabel": { + "join": "انقر للمشاركة", + "roomname": "أدخل اسم الغرفة" + }, + "addMeetingName": "أضف اسم المُلتقى", + "appDescription": "انطلق وأجر محادثة مرئية مع كامل الفريق. يمكنك أيضًا أن تدعو من تريد. {{app}} مُعمَّى بالكامل، ومفتوح المصدر بالكامل ويعد حلًا لإجراء المؤتمرات المرئية يمكنك استعماله متى تريد، مجانًا، حتى دون حساب.", + "audioVideoSwitch": { + "audio": "صوت", + "video": "فيديو" + }, + "calendar": "رزنامة", + "connectCalendarButton": "أوصل رزنامتك", + "connectCalendarText": "أوصل رزنامتك لعرض كل مُلتقياتك في {{app}}. أضف إلى ذلك أنَّه يمكنك إضافة مُلتقيات {{provider}} إلى رزنامتك وبدئها بضغطة واحدة.", + "enterRoomTitle": "بدء مُلتقى جديد", + "getHelp": "أريد مساعدة", + "go": "ابدأ", + "goSmall": "ابدأ", + "headerSubtitle": "آمــن وبنـوعيـة فـائقـة الجـودة", + "headerTitle": "مُلتقى جيتسي", + "info": "معلومات", + "jitsiOnMobile": "جيتسي على الهاتف المحمول - حمّل تطبيقاتنا وابدأ مُلتقىًا من أي مكان", + "join": "أنشئ / انضم", + "logo": { + "calendar": "شعار التقويم", + "desktopPreviewThumbnail": "صورة مصغرة لمعاينة سطح المكتب", + "googleLogo": "شعار كوكل", + "logoDeepLinking": "شعار جيتسي", + "microsoftLogo": "شعار مايكروسوفت", + "policyLogo": "شعار السياسة" + }, + "mobileDownLoadLinkAndroid": "قم بتنزيل تطبيق الهاتف لنظام أندرويد", + "mobileDownLoadLinkFDroid": "قم بتنزيل تطبيق الجوال لـ F-Droid", + "mobileDownLoadLinkIos": "قم بتنزيل تطبيق الهاتف لنظام iOS", + "moderatedMessage": "أو a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">احجز رابط لمُلتقى إن كنت رئيس الجلسة الوحيد فقط.", + "privacy": "الخصوصية", + "recentList": "الجديد", + "recentListDelete": "حذف", + "recentListEmpty": "قائمتك الأخيرة فارغة حاليًا. ابدأ التحدث مع الفريق وستجد كل مُلتقياتك الأخيرة هنا.", + "reducedUIText": "يا مرحبًا بك في {{app}}!", + "roomNameAllowedChars": "لا يجب أن يحوي اسم المُلتقى على: ?، &، :، '، \"، %، #.", + "roomname": "أدخل اسم الغرفة", + "roomnameHint": "أدخل اسم أو رابط الغرفة التي تريد الانضمام إليها. يمكنك إنشاء اسم جديد لترسله إلى من تريد أن تجتمع معهم.", + "sendFeedback": "أبدِ رأيك", + "settings": "إعدادات", + "startMeeting": "إبدأ المُلتقى", + "terms": "الشروط", + "title": "منصة عقد مؤتمرات ومُلتقيات آمنة وكاملة المزايا ومجانية بالمطلق" + } +} diff --git a/lang/main-be.json b/lang/main-be.json new file mode 100644 index 0000000..8866b44 --- /dev/null +++ b/lang/main-be.json @@ -0,0 +1,790 @@ +{ + "addPeople": { + "add": "Запрасіць", + "countryNotSupported": "Гэтая краіна пакуль не падтрымліваецца.", + "countryReminder": "Выклік не ў ЗША? Калі ласка, пераканайцеся, што паказалі код краіны!", + "disabled": "Пошук не даў выніку.", + "failedToAdd": "Не атрымалася дадаць удзельнікаў", + "footerText": "Выклік нумара адключаны.", + "loading": "Пошук людзей і нумароў тэлефонаў", + "loadingNumber": "Праверка нумара тэлефона", + "loadingPeople": "Пошук людзей для запрашэння", + "noResults": "Пошук не даў выніку", + "noValidNumbers": "Калі ласка, увядзіце нумар тэлефона", + "searchNumbers": "Дадаць нумары тэлефонаў", + "searchPeople": "Пошук людзей", + "searchPeopleAndNumbers": "Пошук людзей або даданне іх тэлефонаў", + "telephone": "Нумар: {{number}}", + "title": "Запрасіць людзей на гэтую сустрэчу" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Навушнікі", + "none": "Не выяўленыя гукавыя прылады", + "phone": "Тэлефон", + "speaker": "Калонка" + }, + "audioOnly": { + "audioOnly": "Не нагружае канал" + }, + "calendarSync": { + "addMeetingURL": "Дадаць спасылку канферэнцыі", + "confirmAddLink": "Вы хочаце дадаць спасылку Jitsi да гэтай каляндарнай падзеі?", + "error": { + "appConfiguration": "Няправільна настроена інтэграцыя календара.", + "generic": "Адбылася памылка. Праверце налады календара або паспрабуйце абнавіць яго.", + "notSignedIn": "У працэсе аўтэнтыфікацыі для прагляду падзей календара адбылася памылка. Калі ласка, праверце налады календара і паспрабуйце зноў увайсці ў сістэму." + }, + "join": "Далучыцца", + "joinTooltip": "Далучыцца да канферэнцыі", + "nextMeeting": "наступная канферэнцыя", + "noEvents": "Няма запланаваных падзей.", + "ongoingMeeting": "бягучая канферэнцыя", + "permissionButton": "Адкрыць налады", + "permissionMessage": "Для паказу вашых сустрэч у дадатку неабходна атрымаць доступ да календара.", + "refresh": "Аднавіць увесь каляндар", + "today": "Сёння" + }, + "chat": { + "error": "Памылка: Ваша паведамленне не было адпраўлена. Прычына: {{error}}", + "fieldPlaceHolder": "Калі ласка, увядзіце тут ваша паведамленне", + "messageTo": "Асабістае паведамленне карыстальнiку {{recipient}}", + "messagebox": "Калі ласка, увядзіце паведамленне", + "nickname": { + "popover": "Калі ласка, пазначце імя", + "title": "Калі ласка, увядзіце імя для выкарыстання чата", + "titleWithPolls": "Калі ласка, увядзіце імя для выкарыстання чата" + }, + "noMessagesMessage": "У канферэнцыі пакуль няма ніякіх паведамленняў. Пачніце размову!", + "privateNotice": "Асабістае паведамленне карыстальнiку {{recipient}}", + "sendButton": "Даслаць", + "title": "Чат", + "titleWithPolls": "Чат", + "you": "Вы" + }, + "chromeExtensionBanner": { + "buttonText": "Усталюйце пашырэнне Chrome", + "dontShowAgain": "Не паказваць зноў", + "installExtensionText": "Усталюйце пашырэнне для інтэграцыі календара Google і Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Спрабуем далучыцца да вашай канферэнцыі …" + }, + "connection": { + "ATTACHED": "прымацаваны", + "AUTHENTICATING": "Ідэнтыфікацыя", + "AUTHFAIL": "Памылка аўтарызацыі", + "CONNECTED": "Падключана", + "CONNECTING": "Падлучэнне", + "CONNFAIL": "Збой падключэння", + "DISCONNECTED": "Адлучыць", + "DISCONNECTING": "Адлучэнне", + "ERROR": "Памылка", + "FETCH_SESSION_ID": "Атрыманне ID сесіі…", + "GET_SESSION_ID_ERROR": "Атрымана памылка session-id: {{code}}", + "GOT_SESSION_ID": "Атрыманне ID сесіі… Зроблена", + "LOW_BANDWIDTH": "Для захавання прапускной здольнасці відэа для {{displayName}} адключана" + }, + "connectionindicator": { + "address": "Адрас:", + "bandwidth": "Сярэдняя хуткасць:", + "bitrate": "Бітрэйт:", + "bridgeCount": "Колькасць сервераў: ", + "connectedTo": "Падключаны да:", + "framerate": "Частата кадраў:", + "less": "Кароткая інфармацыя", + "localaddress_0": "Мясцовы адрас:", + "localaddress_1": "Мясцовыя адраса:", + "localaddress_2": "Мясцовыя адраса:", + "localport_0": "Мясцовы порт:", + "localport_1": "Мясцовыя парты:", + "localport_2": "Мясцовыя парты:", + "more": "Падрабязная інфармацыя", + "packetloss": "Страты пакетаў:", + "quality": { + "good": "Добра", + "inactive": "неактыўна", + "lost": "страчана", + "nonoptimal": "неаптымальна", + "poor": "дрэнна" + }, + "remoteaddress_0": "Аддалёны адрас:", + "remoteaddress_1": "Аддалёныя адраса:", + "remoteaddress_2": "Аддалёныя адраса:", + "remoteport_0": "Адлеглы порт:", + "remoteport_1": "Адлеглыя парты:", + "remoteport_2": "Адлеглыя парты:", + "resolution": "Дазвол:", + "status": "Сувязь:", + "transport_0": "Метад адпраўкі:", + "transport_1": "Метады адпраўкі:", + "transport_2": "Метады адпраўкі:" + }, + "dateUtils": { + "earlier": "Раней", + "today": "Сёння", + "yesterday": "Учора" + }, + "deepLinking": { + "appNotInstalled": "Каб далучыцца да гэтай сустрэчы на тэлефоне, трэба мабільнае прыкладанне {{app}}.", + "description": "Нічога не здарылася? Мы паспрабавалі запусціць вашу сустрэчу ў настольным дадатку {{app}}. Паспрабуйце яшчэ раз або запусціце яе ў вэб-дадатку {{app}}.", + "descriptionWithoutWeb": "Нічога не адбылося? Мы паспрабавалі запусціць вашу канферэнцыю ў настольным дадатку {{app}}.", + "downloadApp": "Спампаваць дадатак", + "launchWebButton": "Запусціць у браўзеры", + "openApp": "Перайсці да дадатку", + "title": "Запуск вашай сустрэчы ў {{app}} …", + "tryAgainButton": "Паўтарыце ў настольным дадатку" + }, + "defaultLink": "напр. {{url}}", + "defaultNickname": "напр. Яна Цвяткова", + "deviceError": { + "cameraError": "Памылка доступу да камеры", + "cameraPermission": "Памылка доступу да мікрафона", + "microphoneError": "Памылка доступу да мікрафона", + "microphonePermission": "Няма дазволу на доступ да мікрафона" + }, + "deviceSelection": { + "noPermission": "Няма доступу", + "previewUnavailable": "прадпаказу", + "selectADevice": "Выбар прылады", + "testAudio": "Пратэсціраваць гук" + }, + "dialOut": { + "statusMessage": "цяпер {{status}}" + }, + "dialog": { + "Back": "Назад", + "Cancel": "Адмена", + "IamHost": "Я гаспадар", + "Ok": "Добра", + "Remove": "Выдаліць", + "Share": "Падзяліцца", + "Submit": "Адправіць", + "WaitForHostMsg": "Канферэнцыя яшчэ не пачалася. Калі вы з'яўляецеся гаспадаром, калі ласка, падтвердіце сапраўднасць. У адваротным выпадку, калі ласка, пачакайце з'яўлення гаспадара.", + "WaitingForHost": "Чакаем арганізатара …", + "Yes": "Так", + "accessibilityLabel": { + "liveStreaming": "Трансляцыя" + }, + "allow": "Дазволіць", + "alreadySharedVideoMsg": "Іншы ўдзельнік ужо падзяліўся спасылкай на відэа. Дадзеная канферэнцыя дазваляе адначасова дзяліцца толькі адным відэа.", + "alreadySharedVideoTitle": "Дапушчаецца паказ толькі аднаго відэа", + "applicationWindow": "Акно прыкладання", + "cameraConstraintFailedError": "Камера не адказвае вызначаным патрабаванням.", + "cameraNotFoundError": "Камера не выяўлена.", + "cameraNotSendingData": "Памылка доступу да камеры. Калі ласка, праверце, ці не выкарыстоўвае камеру якая-небудзь іншая праграма. Вы можаце таксама выбраць іншую прыладу з меню налад або паспрабаваць перазапусціць праграму.", + "cameraNotSendingDataTitle": "Няма доступу да камеры", + "cameraPermissionDeniedError": "Няма доступу да камеры. Вы можаце ўдзельнічаць у сустрэчы, але іншыя не будуць вас бачыць. Выкарыстоўвайце значок камеры ў адрасным радку браўзера, каб ліквідаваць праблему.", + "cameraUnknownError": "Невядомая памылка выкарыстання камеры.", + "cameraUnsupportedResolutionError": "Ваша камера не падтрымлівае неабходны дазвол відэа.", + "close": "Зачыніць", + "conferenceDisconnectMsg": "Варта праверыць інтэрнэт-злучэнне. Спроба аднаўлення сувязі праз {{seconds}} с.", + "conferenceDisconnectTitle": "Вы адключаныя.", + "conferenceReloadMsg": "Мы спрабуем гэта выправіць. Аднаўленне сувязі праз {{seconds}} с.", + "conferenceReloadTitle": "На жаль, нешта пайшло не так.", + "confirm": "Падцвердзіць", + "confirmNo": "Не", + "confirmYes": "Так", + "connectError": "Памылка. Немагчыма ўсталяваць сувязь для вашай сустрэчы.", + "connectErrorWithMsg": "Памылка. Немагчыма ўсталяваць сувязь для вашай сустрэчы: {{msg}}", + "connecting": "Падлучэнне", + "contactSupport": "Сувязь з падтрымкай", + "copy": "Капіраваць", + "dismiss": "Адхіліць", + "displayNameRequired": "Прывітанне! Як цябе клічуць?", + "done": "Зроблена", + "enterDisplayName": "Калі ласка, увядзіце сваё імя", + "error": "Памылка", + "externalInstallationMsg": "Вам неабходна ўсталяваць наш дадатак для сумеснага скарыстання працоўнага стала.", + "externalInstallationTitle": "Патрабуецца пашырэнне", + "goToStore": "Перайсці да інтэрнэт-крамы", + "gracefulShutdown": "тэхнічныя работы. Калі ласка, паспрабуйце пазней.", + "incorrectPassword": "Памылка імя карыстальніка або пароля", + "incorrectRoomLockPassword": "Няправільны пароль", + "inlineInstallExtension": "Усталяваць", + "inlineInstallationMsg": "Вам неабходна ўсталяваць нашу праграму для сумеснага выкарыстання працоўнага стала.", + "internalError": "Што-та пайшло не так. Памылка: {{error}}", + "internalErrorTitle": "Унутраная памылка", + "kickMessage": "Вы можаце звязацца з {{participantDisplayName}} для атрымання больш падрабязнай інфармацыі.", + "kickParticipantButton": "Выдалiць", + "kickParticipantDialog": "Вы ўпэўненыя, што жадаеце выдаліць гэтага ўдзельніка?", + "kickParticipantTitle": "Выдалiць гэтага ўдзельніка?", + "kickTitle": "Ой! {{participantDisplayName}} выдалiў вас з канферэнцыі", + "liveStreaming": "Трансляцыя", + "liveStreamingDisabledForGuestTooltip": "Госці не могуць пачаць трансляцыю.", + "liveStreamingDisabledTooltip": "Магчымасць трансляцыі адключаная.", + "lockMessage": "Не атрымалася зачыніць канферэнцыю.", + "lockRoom": "Дадаць канферэнцыю $t(lockRoomPasswordUppercase)", + "lockTitle": "Блакаванне не атрымалася", + "logoutQuestion": "Ці ўпэўнены, што жадаеце выйсці і спыніць сустрэчу?", + "logoutTitle": "Завяршыць сеанс", + "maxUsersLimitReached": "Дасягнуты ліміт на максімальную колькасць удзельнікаў. Канферэнцыя перапоўненая. Калі ласка, звяжыцеся з арганізатарам канферэнцыі або паспрабуйце пазней!", + "maxUsersLimitReachedTitle": "Дасягнуты максімальны ліміт удзельнікаў", + "micConstraintFailedError": "Ваш мікрафон не адказвае вызначаным патрабаванням.", + "micNotFoundError": "Мікрафон не выяўлены.", + "micNotSendingData": "Перайдзіце ў налады кампутара, каб уключыць мікрафон і наладзіць ўзровень адчувальнасці", + "micNotSendingDataTitle": "Ваш мікрафон адключаны сістэмнымі наладамі", + "micPermissionDeniedError": "Няма доступу да мікрафону. Вы можаце ўдзельнічаць у сустрэчы, але іншыя не будуць вас чуць. Выкарыстоўвайце значок камеры ў адрасным радку браўзера, каб ліквідаваць праблему.", + "micUnknownError": "Невядомая памылка выкарыстання мікрафона.", + "muteEveryoneDialog": "Вы ўпэўненыя, што жадаеце адключыць гук ва ўсіх? Вы не зможаце ўключыць яго, але яны змогуць уключыць гук у сябе ў любы час.", + "muteEveryoneElseDialog": "Адключыўшы гук, Вы не зможаце ўключыць яго, але яны змогуць уключыць гук у сябе ў любы час.", + "muteEveryoneElseTitle": "Адключыць усіх, акрамя {{whom}}?", + "muteEveryoneSelf": "сябе", + "muteEveryoneStartMuted": "Усе будуць заглушаныя з гэтага моманту", + "muteEveryoneTitle": "Заглушыць ўсіх?", + "muteParticipantBody": "Вы не можаце ўключыць ім гук, але яны могуць зрабіць гэта самі ў любы момант.", + "muteParticipantButton": "Выключыць гук", + "muteParticipantDialog": "Вы ўпэўненыя, што жадаеце адключыць мікрафон у дадзенага карыстальніка? Вы не зможаце адмяніць гэтае дзеянне, аднак ён зможа сам зноў уключыць мікрафон у любы момант.", + "muteParticipantTitle": "прыглушыць гэтага ўдзельніка?", + "passwordLabel": "Сустрэча была заблакаваная ўдзельнікам. Калі ласка, увядзіце $t(lockRoomPassword), каб далучыцца.", + "passwordNotSupported": "Усталяванне $t(lockRoomPassword) для канферэнцыі не падтрымліваецца.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) не падтрымліваецца", + "passwordRequired": "Патрабуецца $t(lockRoomPasswordUppercase)", + "popupError": "Ваш браўзер блакуе ўсплывальныя вокны гэтага сайта. Калі ласка, дазвольце ўсплывальныя вокны ў перавагах бясьпекі браўзэра і паспрабуйце зноў.", + "popupErrorTitle": "Заблакавана ўсплывальнае акно", + "recording": "Запіс", + "recordingDisabledForGuestTooltip": "Госці не могуць запісваць.", + "recordingDisabledTooltip": "Немагчыма пачаць запіс.", + "rejoinNow": "Падключыцца зноў", + "remoteControlAllowedMessage": "{{user}} прыняў ваш запыт на выдаленае кіраванне!", + "remoteControlDeniedMessage": "{{user}} адхіліў ваш запыт на выдаленае кіраванне!", + "remoteControlErrorMessage": "Адбылася памылка пры спробе запытаць дазвол аддаленага кіравання ад {{user}}!", + "remoteControlRequestMessage": "Дазволіць {{user}} выдаленае кіраванне вашым працоўным сталом?", + "remoteControlShareScreenWarning": "Калі націснеце \" Дазволіць \", то падзяліцеся сваім экранам!", + "remoteControlStopMessage": "Сесія аддаленага кіравання завершана!", + "remoteControlTitle": "Выдаленае кіраванне працоўным сталом", + "removePassword": "Прыбраць $t(lockRoomPassword)", + "removeSharedVideoMsg": "Ці ўпэўнены, што хочаце прыбраць відэа, якім падзяліліся?", + "removeSharedVideoTitle": "Прыбраць відэа", + "reservationError": "Памылка сістэмы рэзервавання", + "reservationErrorMsg": "Код памылкі: {{code}}, паведамленне: {{msg}}", + "retry": "Паўтарыць", + "screenSharingAudio": "Падзяліцца аўдыё", + "screenSharingFailedToInstall": "Усталяваць не пашырэння для паказу экрана.", + "screenSharingFailedToInstallTitle": "Пашырэнне для паказу экрана не ўстаноўлена", + "screenSharingFirefoxPermissionDeniedError": "Што-та пайшло не так, калі мы спрабавалі падзяліцца вашым экранам. Калі ласка, пераканайцеся, што вы далі нам дазвол на гэта. ", + "screenSharingFirefoxPermissionDeniedTitle": "Памылка паказу экрана!", + "screenSharingPermissionDeniedError": "Памылка доступу да вашага пашырэння для паказу экрана. Калі ласка, перазапусціце браўзэр і паспрабуйце зноў.", + "sendPrivateMessage": "Вы нядаўна атрымалі асабістае паведамленне. Вы хацелі адказаць на яго, або адправіць сваё паведамленне групе?", + "sendPrivateMessageCancel": "Апублікаваць у агульны чат", + "sendPrivateMessageOk": "Даслаць прыватнае паведамленьне", + "sendPrivateMessageTitle": "Адаслаць асабістае паведамленне?", + "serviceUnavailable": "Служба недаступная", + "sessTerminated": "Сувязь перарвана", + "shareVideoLinkError": "Калі ласка, падайце дакладную спасылку.", + "shareVideoTitle": "Падзяліцца відэа", + "shareYourScreen": "Паказаць экран", + "shareYourScreenDisabled": "Дэманстрацыя экрана адключаная.", + "shareYourScreenDisabledForGuest": "Госці не могуць дэманстраваць экран.", + "startLiveStreaming": "Пачаць трансляцыю", + "startRecording": "Пачаць запіс", + "startRemoteControlErrorMessage": "Памылка пачатку сесіі аддаленага кіравання!", + "stopLiveStreaming": "Спыніць трансляцыю", + "stopRecording": "Спыніць запіс", + "stopRecordingWarning": "Ці ўпэўнены, што хочаце спыніць запіс?", + "stopStreamingWarning": "Ці ўпэўнены, што хочаце спыніць трансляцыю?", + "streamKey": "Ключ трансляцыі", + "thankYou": "Дзякуй, што карыстаецеся {{appName}}!", + "token": "токен", + "tokenAuthFailed": "Выбачайце, вам не дазволена далучыцца да гэтага сеансу сувязі.", + "tokenAuthFailedTitle": "Памылка аўтарызацыі", + "transcribing": "Расшыфроўка", + "unlockRoom": "Прыбраць $t(lockRoomPassword)", + "userPassword": "пароль карыстальніка", + "yourEntireScreen": "Увесь экран" + }, + "documentSharing": { + "title": "Агульны Дакумент" + }, + "feedback": { + "average": "Сярэдне", + "bad": "Дрэнна", + "detailsLabel": "Раскажыце больш падрабязна.", + "good": "Добра", + "rateExperience": "Ацэнка якасці сувязі", + "veryBad": "Вельмі дрэнна", + "veryGood": "Вельмі добра" + }, + "helpView": { + "title": "Цэнтар дапамогi" + }, + "incomingCall": { + "answer": "Адказ", + "audioCallTitle": "Уваходны званок", + "decline": "Адхіліць", + "productLabel": "з Jitsi Meet", + "videoCallTitle": "Уваходны відэазванок" + }, + "info": { + "accessibilityLabel": "Паказаць інфармацыю", + "addPassword": "Усталяваць $t(lockRoomPassword)", + "cancelPassword": "Адмяніць $t(lockRoomPassword)", + "conferenceURL": "Спасылка:", + "country": "Краіна", + "dialANumber": "Каб далучыцца да канферэнцыі, набярыце адзін з гэтых нумароў і ўвядзіце pin-код.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "На жаль, набор нумара ў цяперашні час не падтрымліваецца.", + "dialInNumber": "Нумар:", + "dialInSummaryError": "Памылка атрымання інфармацыі аб наборы нумара. Калі ласка, паспрабуйце яшчэ раз пазней.", + "dialInTollFree": "Званок бясплатны", + "genericError": "Што-та пайшло не так.", + "inviteLiveStream": "Трансляцыя гэтай сустрэчы: {{url}}", + "invitePhone": "Для таго, каб далучыцца па тэлефоне, націсніце {{number}} ,, {{conferenceID}} # \n", + "invitePhoneAlternatives": "Шукайце iншы нумар для набору? \nПаглядзець нумары для набору для канферэнцыі: {{url}} \n \n \nЕсли таксама выконваецца набор нумара праз тэлефон у пакоі, падключыцеся ў рэжыме слухача: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Вас запрашаюць далучыцца да канферэнцыі.", + "inviteURLFirstPartPersonal": "{{name}} запрашае Вас далучыцца да канферэнцыі. \n", + "inviteURLSecondPart": "\nДалучыцца да канферэнцыі: \n {{url}} \n", + "label": "Інфармацыя пра канферэнцыю", + "liveStreamURL": "Трансляцыя:", + "moreNumbers": "Больш нумароў", + "noNumbers": "Няма нумароў для набору.", + "noPassword": "не", + "noRoom": "Для набору нумара не было паказана ніводнага пакоя.", + "numbers": "Нумары для набору", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Падзяліцца", + "tooltip": "Падзяліцеся спасылкай і нумарам для падлучэння да гэтай канферэнцыі" + }, + "inlineDialogFailure": { + "msg": "Невялікая замінка.", + "retry": "Паспрабаваць зноў", + "support": "Падтрымка", + "supportMsg": "Калі гэта працягнецца, звяжыцеся з" + }, + "inviteDialog": { + "alertText": "Не ўдалося запрасіць некаторых удзельнікаў.", + "header": "Запрасіць", + "searchCallOnlyPlaceholder": "Пакажыце нумар тэлефона", + "searchPeopleOnlyPlaceholder": "Пошук удзельнікаў", + "searchPlaceholder": "Удзельнік або нумар тэлефона", + "send": "Даслаць" + }, + "keyboardShortcuts": { + "focusLocal": "Фокус на ваша відэа", + "focusRemote": "Фокус на відэа іншага ўдзельніка", + "fullScreen": "Укл/Выкл поўнаэкранны рэжым", + "keyboardShortcuts": "Камбінацыі клавіш", + "localRecording": "Адлюстраваць ці схаваць элементы кіравання лакальным запісам", + "mute": "Мікрафон (Ўкл./Выкл.)", + "pushToTalk": "Націсніце, каб гаварыць", + "raiseHand": "Падняць або апусціць руку", + "showSpeakerStats": "Паказаць статыстыку выступоўцы", + "toggleChat": "Чат (адкрыць/зачыніць)", + "toggleFilmstrip": "Паказаць / не паказваць кароткае апісанне", + "toggleScreensharing": "Пераключыцца паміж камерай і паказам экрана", + "toggleShortcuts": "Схаваць / Паказаць клавішы хуткага доступу", + "videoMute": "Камера (вкл./Выкл.)", + "videoQuality": "Якасць сувязі" + }, + "liveStreaming": { + "busy": "Вызваляем новыя рэсурсы для трансляцыі. Калі ласка, паспрабуйце зноў праз некалькі хвілін.", + "busyTitle": "Усе рэсурсы для трансляцыі ўжо задзейнічаны", + "changeSignIn": "Пераключыць акаўнты.", + "choose": "Выбраць трансляцыю", + "chooseCTA": "Калі ласка, пазначце трансляцыю. Вы ўвайшлі ў сістэму як {{email}}.", + "enterStreamKey": "Калі ласка, увядзіце ваш ключ трансляцыі YouTube.", + "error": "Памылка трансляцыі. Калі ласка, паспрабуйце зноў.", + "errorAPI": "Адбылася памылка пры доступе да вашых трансляцый на YouTube. Паўтарыце спробу ўваходу ў сістэму.", + "errorLiveStreamNotEnabled": "Трансляцыя не падключана на {{email}}. Калі ласка падключыце трансляцыю або ўвайдзіце ў рахунак з падключанай трансляцыяй.", + "expandedOff": "Прамая трансляцыя спыненая", + "expandedOn": "У сапраўдны момант канферэнцыя транслюецца на YouTube.", + "expandedPending": "Пачынаецца прамая трансляцыя ..", + "failedToStart": "Памылка трансляцыі відэа", + "getStreamKeyManually": "Прамыя трансляцыi не знойдзены. Паспрабуйце атрымаць ключ прамой трансляцыі ад YouTube.", + "googlePrivacyPolicy": "Палітыка прыватнасці Google", + "invalidStreamKey": "Падобнs ключ прамой трансляцыі з'яўляецца памылковым.", + "off": "Трансляцыя спынена", + "offBy": "{{name}} спыніў прамую трансляцыю", + "on": "Трансляцыя", + "onBy": "{{name}} пачаў прамую трансляцыю", + "pending": "Пачынаем трансляцыю …", + "serviceName": "Служба трансляцыі", + "signIn": "Увайсці праз Google", + "signInCTA": "Увайдзiце або ўвядзіце свой ключ трансляцыі YouTube.", + "signOut": "Выхад", + "signedInAs": "У цяперашні час вы ўвайшлі ў сістэму як:", + "start": "Пачаць трансляцыю", + "streamIdHelp": "Што гэта?", + "title": "Трансляцыя", + "unavailableTitle": "Трансляцыя недаступная", + "youtubeTerms": "YouTube ўмовы паслуг" + }, + "localRecording": { + "clientState": { + "off": "Адключаны", + "on": "Падключаны", + "unknown": "Невядомы" + }, + "dialogTitle": "Кнопкі лакальнага запісу", + "duration": "Працягласць", + "durationNA": "невядома", + "encoding": "Кадзiроўка", + "label": "Левы / Правы", + "labelToolTip": "Лакальны запіс актыўны", + "localRecording": "Лакальны запіс", + "me": "Я", + "messages": { + "engaged": "Лакальны запіс пачаўся.", + "finished": "Запіс сесіі {{token}} завершана. Калі ласка адпраўце запісаны файл мадэратару.", + "finishedModerator": "Запіс сесіі {{token}} завершаны. Запіс лакальнага трэка захаваны. Калі ласка, папытаеце іншых удзельнікаў прадставіць іх запіс.", + "notModerator": "Вы не мадэратар і не можаце пачынаць або спыняць лакальны запіс." + }, + "moderator": "Мадэратар", + "no": "Не", + "participant": "Удзельнік", + "participantStats": "Статыстыка удзельнікаў", + "sessionToken": "токенаў сесіі", + "start": "Пачаць запіс", + "stop": "Спыніць запіс", + "yes": "Так" + }, + "lockRoomPassword": "пароль", + "lockRoomPasswordUppercase": "Пароль", + "lonelyMeetingExperience": { + "button": "Запрашайце іншых", + "youAreAlone": "Вы адзіны ў гэтай канферэнцыі" + }, + "me": "я", + "notify": { + "connectedOneMember": "{{name}} далучыўся да канферэнцыі", + "connectedThreePlusMembers": "{{name}} і {{count}} іншых карыстальнікаў далучыліся да канферэнцыі", + "connectedTwoMembers": "{{first}} і {{second}} далучыліся да канферэнцыі", + "disconnected": "злучэнне разарвана", + "focus": "Фокус сустрэчы", + "focusFail": "{{component}} недаступны, паўторыце праз {{ms}} з", + "grantedTo": "{{to}} атрымаў правы мадэратара!", + "invitedOneMember": "{{name}} быў запрошаны", + "invitedThreePlusMembers": "Запрошаны {{name}} і {{count}} іншых карыстальнікаў (ля)", + "invitedTwoMembers": "{{first}} і {{second}} далучыліся да канферэнцыі", + "kickParticipant": "{{kicker}} выгнаў {{kicked}}", + "me": "Я", + "moderator": "Атрыманыя правы мадэратара!", + "muted": "Вы пачалі размову без гуку.", + "mutedRemotelyDescription": "Вы заўсёды можаце ўключыць мікрафон, калі будзеце гатовыя гаварыць. Адключыце яго, калі скончыце, каб не трансляваць шумы ў канферэнцыю.", + "mutedRemotelyTitle": "{{participantDisplayName}} адключыў Вам мікрафон!", + "mutedTitle": "Вы без гуку!", + "newDeviceAction": "Выкарыстоўваць", + "newDeviceAudioTitle": "Выяўлена новае аўдыёпрылада", + "newDeviceCameraTitle": "Выяўлена новая камера", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) выдалены іншым удзельнікам", + "passwordSetRemotely": "Іншы ўдзельнік ўсталяваў $t(lockRoomPasswordUppercase)", + "raisedHand": "{{name}} хацеў бы выступіць.", + "somebody": "Хтосьці", + "startSilentDescription": "Перазайдзiце ў канферэнцыю, каб уключыць гук", + "startSilentTitle": "У вас адсутнічае гук!", + "suboptimalBrowserWarning": "На жаль, ваш браўзэр не цалкам падтрымлівае дадзеную сістэму вэб-канференцый. Мы працуем над праблемай, аднак, пакуль рэкамендуем вам скарыстацца наступнымі браўзэрамі.", + "suboptimalExperienceTitle": "Папярэджанне браўзэра", + "unmute": "Уключыць мікрафон" + }, + "passwordDigitsOnly": "Да {{number}} лічбаў", + "passwordSetRemotely": "устаноўлены іншым удзельнікам", + "polls": { + "errors": { + "notUniqueOption": "Варыянты павінны быць унікальнымі" + } + }, + "poweredby": "працуе на", + "presenceStatus": { + "busy": "Заняты", + "calling": "Выклікаю…", + "connected": "Падключана", + "connecting": "Падлучэнне…", + "connecting2": "Падлучэнне *…", + "disconnected": "Адключана", + "expired": "Скончыўся", + "ignored": "праігнаравалі", + "initializingCall": "Ініцыялізацыя званка…", + "invited": "Запрошаны", + "rejected": "Адхілены", + "ringing": "Тэлефаную…" + }, + "profile": { + "setDisplayNameLabel": "Якое адлюстроўваецца імя", + "setEmailInput": "Калі ласка, увядзіце email", + "setEmailLabel": "Email для Gravatar", + "title": "Профіль" + }, + "raisedHand": "Хоча гаварыць", + "recording": { + "authDropboxText": "Загрузіць у Dropbox", + "availableSpace": "Даступна месца: {{spaceLeft}} MB (прыкладна {{duration}} хвілін запісу)", + "beta": "бэта", + "busy": "Мы стараемся забяспечыць больш рэсурсаў для запісу. Калі ласка, паспрабуйце праз некалькі хвілін.", + "busyTitle": "Усе запісваючыя прылады занятыя", + "error": "Памылка запісу. Калі ласка, паспрабуйце пазней.", + "expandedOff": "Запіс спынены", + "expandedOn": "Гэта канферэнцыя запісваецца.", + "expandedPending": "Пачынаем запіс канферэнцыі …", + "failedToStart": "Памылка пачатку запісу", + "fileSharingdescription": "Падзяліцца запісам з удзельнікамі канферэнцыі", + "live": "Прамая трансляцыя", + "loggedIn": "Увайшоў як {{userName}}", + "off": "Запіс спынены", + "offBy": "{{name}} спыніў запіс", + "on": "Запіс", + "onBy": "{{name}} ўключыў запіс", + "pending": "Падрыхтоўка запісу канферэнцыі…", + "rec": "Ідзе запіс", + "serviceDescription": "Ваш запіс будзе захаваны адпаведнай службай", + "serviceName": "Служба запісу", + "signIn": "Уваход", + "signOut": "Выхад", + "title": "Запіс", + "unavailable": "Служба {{serviceName}} зараз недаступная. Мы працуем над выпраўленнем гэтай памылкі. Калі ласка, паспрабуйце пазней.", + "unavailableTitle": "Запіс немагчымы" + }, + "sectionList": { + "pullToRefresh": "Пацягніце для абнаўлення" + }, + "settings": { + "calendar": { + "about": "Інтэграцыя з календаром {{appName}} выкарыстоўваецца для бяспечнага доступу да вашага календара і сінхранізацыі запланаваных мерапрыемстваў.", + "disconnect": "Адлучыцца", + "microsoftSignIn": "Увайсці з дапамогай ўліковага запісу Microsoft", + "signedIn": "Доступ да падзей календара уключаны для email - адрасы {{email}}. Націсніце кнопку Адключыць для адключэння доступу да падзей календара.", + "title": "Каляндар" + }, + "devices": "Прылады", + "followMe": "Усе ідуць за мной", + "language": "Мова", + "loggedIn": "Увайшоў як {{name}}", + "microphones": "Мікрафоны", + "moderator": "Мадэратар", + "more": "Больш опцый", + "name": "Імя", + "noDevice": "не", + "selectAudioOutput": "Гукавы выхад", + "selectCamera": "Камера", + "selectMic": "Мікрафон", + "speakers": "Дынамікі", + "startAudioMuted": "Усе пачынаюць з выключаным гукам", + "startVideoMuted": "Усе пачынаюць ў схаваным рэжыме", + "title": "Налады" + }, + "settingsView": { + "advanced": "Дадатковыя", + "alertOk": "Добра", + "alertTitle": "Увага", + "alertURLText": "Памылка адрасу сервера", + "buildInfoSection": "Інфармацыя пра зборку", + "conferenceSection": "Нумары для набору", + "disableCallIntegration": "Адключыць убудаваную інтэграцыю выклікаў", + "disableP2P": "Адключыць рэжым Peer-To-Peer", + "displayName": "Якое адлюстроўваецца імя", + "email": "Email", + "header": "Налады", + "profileSection": "Профіль", + "serverURL": "Адрас сервера", + "showAdvanced": "Паказаць дадатковыя налады", + "startWithAudioMuted": "Пачаць з адключаным гукам", + "startWithVideoMuted": "Пачаць з адключаным відэа", + "version": "Версія" + }, + "share": { + "dialInfoText": "\n\n===== \n \nПроста жадаеце набраць нумар на Вашым тэлефоне? \n \n {{defaultDialInNumber}} Нацiснiце на гэтую спасылку, каб прагледзець тэлефонныя нумары для гэтай канферэнцыі \n {{dialInfoPageUrl}}", + "mainText": "Націсніце на спасылку каб далучыцца да канферэнцыі: \n {{roomUrl}}" + }, + "speaker": "Калонка", + "speakerStats": { + "hours": "{{count}}г", + "minutes": "{{count}}хв", + "name": "Імя", + "search": "Пошук", + "searchHint": "Пошук удзельнікаў", + "seconds": "{{count}} с", + "speakerStats": "Статыстыка выступаў", + "speakerTime": "Час выступленняў" + }, + "startupoverlay": { + "policyText": "", + "title": "{{app}} патрабуецца доступ да мікрафону і камеры." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Падключыцца зноў", + "text": "Для аднаўлення сувязі націсніце кнопку Падключыцца зноў .", + "title": "Відэасувязь перапынена. Прычына: гэты кампутар перайшоў у рэжым сну." + }, + "toolbar": { + "Settings": "Налады", + "accessibilityLabel": { + "Settings": "", + "audioOnly": "Укл/Выкл толькі гук", + "audioRoute": "Выбраць аўдыёпрылады", + "callQuality": "Якасць сувязі", + "cc": "Укл/Выкл субтытры", + "chat": "Паказаць/схаваць акно чата", + "document": "Зачыніць агульны дакумент", + "download": "Спампаваць дадатак", + "feedback": "Пакінуць водгук", + "fullScreen": "Поўнаэкранны / аконны рэжым", + "hangup": "Завяршыць званок", + "help": "Даведка", + "invite": "Запрасіць", + "kick": "Выкінуць ўдзельніка", + "localRecording": "Укл/Выкл кнопкі запісу", + "lockRoom": "Усталяваць пароль", + "moreActions": "Паказаць / схаваць меню доп. Настроек", + "moreActionsMenu": "Меню дад. Настроек", + "moreOptions": "Паказаць больш варыянтаў", + "mute": "Укл/Выкл гук", + "muteEveryone": "Заглушыць усіх", + "pip": "Укл/Выкл рэжым Малюначак-у-малюначку", + "privateMessage": "Адаслаць асабістае паведамленне", + "profile": "Рэдагаваць профіль", + "raiseHand": "Падняць руку", + "recording": "Укл/Выкл запіс", + "remoteMute": "Адключыць ўдзельніку мікрафон", + "shareRoom": "Адправіць запрашэнне", + "shareYourScreen": "Укл/Выкл дэманстрацыю экрана", + "sharedvideo": "Укл/Выкл YouTube - трансляцыю", + "shortcuts": "Укл/Выкл значкі", + "show": "Паказаць буйным планам", + "speakerStats": "Укл/Выкл статыстыку", + "tileView": "Укл/Выкл плітку", + "toggleCamera": "Укл/Выкл камеру", + "toggleFilmstrip": "", + "videoblur": "Укл. / Выкл. Размыццё фону", + "videomute": "Укл/Выкл відэа" + }, + "addPeople": "Дадаць людзей да вашага сеансу сувязі", + "audioOnlyOff": "Адключыць рэжым эканоміі пропускной здольнасці", + "audioOnlyOn": "Уключыць рэжым эканоміі прапускной здольнасці", + "audioRoute": "Выбраць аўдыёпрылады", + "authenticate": "аўтэнтыфікаваных", + "callQuality": "Якасць сувязі", + "chat": "Чат", + "closeChat": "Зачыніць чат", + "documentClose": "Зачыніць агульны дакумент", + "documentOpen": "Адкрыць агульны дакумент", + "download": "Спампаваць дадатак", + "enterFullScreen": "Поўны экран", + "enterTileView": "Агульны план", + "exitFullScreen": "Поўны экран", + "exitTileView": "Буйны план", + "feedback": "Пакінуць водгук", + "hangup": "Выхад", + "help": "Даведка", + "invite": "Запрасіць", + "login": "Увайсці", + "logout": "Выйсці", + "lowerYourHand": "Апусціць руку", + "moreActions": "Больш", + "moreOptions": "Больш варыянтаў", + "mute": "Мікрафон (Ўкл./Выкл.)", + "muteEveryone": "Заглушыць усіх", + "noAudioSignalDesc": "Калі вы адмыслова не адключалі мікрафон у сістэмных наладах, падумайце аб тым, каб памяняць яго.", + "noAudioSignalDescSuggestion": "Калі вы адмыслова не адключалі мікрафон у сістэмных наладах, вы можаце паспрабаваць выкарыстоўваць наступную прыладу.", + "noAudioSignalDialInDesc": "Вы таксама можаце набраць з дапамогай:", + "noAudioSignalDialInLinkDesc": "Нумары для набору", + "noAudioSignalTitle": "Ад вашага мікрафона не ідзе гукавы сігнал!", + "noisyAudioInputDesc": "Здаецца, ваш мікрафон выдае шум, калі ласка, падумайце аб выключэнні гуку або змене прылады.", + "noisyAudioInputTitle": "Здаецца, ваш мікрафон шумеў!", + "openChat": "Адкрыць чат", + "pip": "Укл рэжым Малюначак-у-малюначку", + "privateMessage": "Адаслаць асабістае паведамленне", + "profile": "Рэдагаваць профіль", + "raiseHand": "Хачу гаварыць", + "raiseYourHand": "Падняць руку", + "shareRoom": "Адправіць запрашэнне", + "sharedvideo": "Відэа YouTube", + "shortcuts": "Камбінацыі клавіш", + "speakerStats": "Статыстыка", + "startScreenSharing": "Пачаць трансляцыю з экрана", + "startSubtitles": "Уключыць субтытры", + "startvideoblur": "размыць фон на відэа", + "stopScreenSharing": "Спыніць трансляцыю з экрана", + "stopSharedVideo": "Спыніць відэа на YouTube", + "stopSubtitles": "Адключыць субтытры", + "stopvideoblur": "Адключыць размыццё фону", + "talkWhileMutedPopup": "Спрабуеце казаць? У вас адключаны гук.", + "tileViewToggle": "Укл/Выкл плітку", + "toggleCamera": "Укл/Выкл камеру", + "videomute": "Камера" + }, + "transcribing": { + "ccButtonTooltip": "Укл. / Выкл. Субтытры", + "error": "Памылка запісу. Калі ласка, паспрабуйце пазней.", + "expandedLabel": "Транскрыпцыя ўключана", + "failedToStart": "няўдалага пачаць расшыфроўку", + "labelToolTip": "Ствараецца транскрыпцыя канферэнцыі", + "off": "Расшыфроўка спыненая", + "pending": "Падрыхтоўка расшыфроўкі канферэнцыі…", + "start": "Укл/Выкл паказ субтытраў", + "stop": "Укл/Выкл паказ субтытраў", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Калі ласка, дайце дазвол на доступ да камеры і мікрафону." + }, + "videoSIPGW": { + "busy": "Мы працуем над вызваленнем рэсурсаў. Калі ласка, паспрабуйце праз некалькі хвілін.", + "busyTitle": "Служба цяпер занятая", + "errorAlreadyInvited": "{{displayName}} ужо запрошаны", + "errorInvite": "Сустрэча яшчэ не пачалася. Калі ласка, паспрабуйце пазней.", + "errorInviteFailed": "Мы працуем над вырашэннем праблемы. Калі ласка, паспрабуйце пазней.", + "errorInviteFailedTitle": "Памылка запрашэння {{displayName}}", + "errorInviteTitle": "Памылка запрашэння ў пакой", + "pending": "{{displayName}} быў запрошаны" + }, + "videoStatus": { + "audioOnly": "Толькі гук", + "audioOnlyExpanded": "Актыўны рэжым эканоміі прапускной здольнасці. У гэтым рэжыме даступныя толькі гук і трансляцыя з экрана.", + "callQuality": "Якасць відэа", + "hd": "HD", + "hdTooltip": "Відэа высокай якасці", + "highDefinition": "Высокая якасць", + "labelTooiltipNoVideo": "Няма відэа", + "labelTooltipAudioOnly": "Уключаны рэжым эканоміі прапускной здольнасці", + "ld": "LD", + "ldTooltip": "Відэа нізкай якасці", + "lowDefinition": "Нізкая якасць", + "onlyAudioAvailable": "Толькі гук", + "onlyAudioSupported": "У гэтым браўзэры дазволены толькі гук.", + "sd": "SD", + "sdTooltip": "Відэа стандартнага якасці", + "standardDefinition": "Стандартнае якасць (SD)" + }, + "videothumbnail": { + "domute": "Выключыць гук", + "domuteOthers": "Заглушіць астатніх", + "flip": "Адлюстраваць", + "kick": "Выкінуць", + "moderator": "Мадэратар", + "mute": "Без гуку", + "muted": "Гук выключаны", + "remoteControl": "Укл./Вкл. дыстанцыйнае кіраванне", + "show": "Паказаць буйным планам", + "videomute": "Удзельнік адключыў камеру" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Націсніце каб далучыцца", + "roomname": "Пакажыце назву пакоя" + }, + "appDescription": "Паспрабуйце відэачат з усёй камандай. Запрашай знаёмых! {{app}} - цалкам зашыфраванае рашэнне для відэаканферэнцый з адкрытым зыходным кодам. Карыстайцеся кожны дзень, бясплатна і без рэгістрацыі.", + "audioVideoSwitch": { + "audio": "Каляндар", + "video": "Відэа" + }, + "calendar": "Каляндар", + "connectCalendarButton": "Прывязаць каляндар", + "connectCalendarText": "Падлучыце каляндар, каб убачыць усе вашыя канферэнцыі ў {{app}}. Акрамя таго, дадаўшы {{provider}} канферэнцыi ў каляндар, вы зможаце запускаць іх адным пстрычкай мышкі.", + "enterRoomTitle": "Пачаць новую відэаканферэнцыю", + "getHelp": "Атрымаць дапамогу", + "go": "ОК", + "goSmall": "ОК", + "info": "Інфа", + "join": "СТВАРЫЦЬ/далучыць", + "privacy": "Прыватнасць", + "recentList": "Нядаўнія", + "recentListDelete": "Выдаліць", + "recentListEmpty": "Зараз ваш спіс нядаўна праведзеных канферэнцый пусты. Па меры вашага карыстання сэрвісам ён будзе папаўняцца.", + "reducedUIText": "Сардэчна запрашаем у {{app}}!", + "roomNameAllowedChars": "Назва канферэнцыі не павінна ўтрымліваць наступныя сімвалы:?, &,:, ', \",%, #.", + "roomname": "Пакажыце назву пакоя", + "roomnameHint": "Пакажыце назву пакоя ці яго адрас. Можаце самі стварыць назву і перадаць яе будучым удзельнікам сустрэчы, каб яны выкарыстоўвалі менавіта яго.", + "sendFeedback": "Зваротная сувязь", + "terms": "Умовы", + "title": "Абароненая, поўнафункцыянальная і цалкам бясплатная сістэма відэаканферэнцый" + } +} diff --git a/lang/main-bg.json b/lang/main-bg.json new file mode 100644 index 0000000..28a83b0 --- /dev/null +++ b/lang/main-bg.json @@ -0,0 +1,846 @@ +{ + "addPeople": { + "add": "Покани", + "addContacts": "Покани участници", + "copyInvite": "Копирай покана в срещата", + "copyLink": "Копирай линк към срещата", + "copyStream": "Копирай линк за излъчване на живо", + "countryNotSupported": "Желаната дестинация не се поддържа все още.", + "countryReminder": "Международно обаждане? Започнете номера с международен код!", + "defaultEmail": "Покана по имейл", + "disabled": "Не можете да каните хора.", + "failedToAdd": "Неуспешно добавяне на участници", + "footerText": "Изходящите разговори не са разрешени.", + "inviteMoreHeader": "Вие сте единственият участник в срещата", + "inviteMoreMailSubject": "Включи се в {{appName}} среща", + "inviteMorePrompt": "Покани още участници", + "linkCopied": "Линкът е копиран", + "loading": "Търсене на хора и телефонни номера", + "loadingNumber": "Валидиране на номер", + "loadingPeople": "Търсене на хора", + "noResults": "Няма резултати", + "noValidNumbers": "Въведете телефонен номер", + "searchNumbers": "Добави номер", + "searchPeople": "Търсене на хора", + "searchPeopleAndNumbers": "Търсене на участници или добавяне по телефонен номер", + "shareInvite": "Сподели покана за среща", + "shareLink": "Сподели линк към срещата, за да поканиш някого", + "shareStream": "Сподели линк за излъчване на живо", + "telephone": "Телефон: {{number}}", + "title": "Добавяне на участници в срещата" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Слушалки", + "none": "Няма налични устройства за звук", + "phone": "Телефон", + "speaker": "Високоговорител" + }, + "audioOnly": { + "audioOnly": "Само звук" + }, + "calendarSync": { + "addMeetingURL": "Добавяне на връзка за среща", + "confirmAddLink": "Искате ли да добавите връзка към това събитие?", + "error": { + "appConfiguration": "Интеграцията с календара не е настроена.", + "generic": "Грешка! Моля, проверете настройката за календара или го обновете.", + "notSignedIn": "Грешка при идентификация за изтегляне на събития. Моля, проверете настройките на календара и опитайте отново." + }, + "join": "Влизане", + "joinTooltip": "Влизане в срещата", + "nextMeeting": "следваща среща", + "noEvents": "Няма насрочени бъдещи събития.", + "ongoingMeeting": "настояща среща", + "permissionButton": "Отваряне на настройки", + "permissionMessage": "За показване на срещите ви е нужно позволение за ползване на календара.", + "refresh": "Обновяване на календара", + "today": "Днес" + }, + "chat": { + "error": "Грешка: вашето съобщение не бе изпратено, поради: {{error}}", + "fieldPlaceHolder": "Въведете съобщението", + "messageTo": "Лично съобщение до {{recipient}}", + "messagebox": "Въведете съобщение", + "nickname": { + "popover": "Избор на име", + "title": "Въведете име, за да обменяте съобщения", + "titleWithPolls": "Въведете име, за да обменяте съобщения" + }, + "noMessagesMessage": "Все още няма съобщения в срещата. Започнете разговор тук!", + "privateNotice": "Лично съобщение до {{recipient}}", + "sendButton": "Изпрати", + "title": "Текстови съобщения", + "titleWithPolls": "Текстови съобщения", + "you": "вие" + }, + "chromeExtensionBanner": { + "buttonText": "Инсталирайте разширението за Chrome", + "dontShowAgain": "Не показвай повече", + "installExtensionText": "Инсталирайте разширенията за Google Calendar и Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Свързване с вашата среща…" + }, + "connection": { + "ATTACHED": "Прикрепен", + "AUTHENTICATING": "Идентификация", + "AUTHFAIL": "Неуспешна идентификация", + "CONNECTED": "Свързан", + "CONNECTING": "Свързване", + "CONNFAIL": "Връзката е неуспешна", + "DISCONNECTED": "Изключен", + "DISCONNECTING": "Прекъсване на връзката", + "ERROR": "Грешка", + "FETCH_SESSION_ID": "Отваряне на сесия…", + "GET_SESSION_ID_ERROR": "Грешка при отваряне на сесията: {{code}}", + "GOT_SESSION_ID": "Отваряне на сесията… Готово", + "LOW_BANDWIDTH": "Видеото на {{displayName}} беше изключено, поради слаба Интернет връзка", + "RECONNECTING": "Появи се проблем с мрежата. Връзваме се наново…" + }, + "connectionindicator": { + "address": "Адрес:", + "bandwidth": "Предполагаема скорост:", + "bitrate": "Скорост:", + "bridgeCount": "Брой сървъри: ", + "connectedTo": "Свързан към:", + "framerate": "Кадри в секунда:", + "less": "Скриване", + "localaddress": "Локален адрес:", + "localaddress_plural": "Локални адреси:", + "localport": "Локален порт:", + "localport_plural": "Локални портове:", + "more": "Показване", + "packetloss": "Загуба на пакети:", + "quality": { + "good": "Добра", + "inactive": "Няма", + "lost": "Разкачена", + "nonoptimal": "Неоптимална", + "poor": "Лоша" + }, + "remoteaddress": "Отдалечен адрес:", + "remoteaddress_plural": "Отдалечени адреси:", + "remoteport": "Отдалечен порт:", + "remoteport_plural": "Отдалечени портове:", + "resolution": "Резолюция:", + "status": "Връзка:", + "transport": "Транспорт:", + "transport_plural": "Транспорти:" + }, + "dateUtils": { + "earlier": "По-рано", + "today": "Днес", + "yesterday": "Вчера" + }, + "deepLinking": { + "appNotInstalled": "Имате нужда от мобилното приложение {{app}} за влизане в тази среща от телефона.", + "description": "Нищо не се случва? Опитахме се да заредим срещата в приложението {{app}}. Пробвайте отново или влезте чрез уеб приложението {{app}}.", + "descriptionWithoutWeb": "Нищо не се случва? Опитахме се да заредим срещата в приложението {{app}}.", + "downloadApp": "Свалете приложението", + "launchWebButton": "Заредете уеб страницата", + "openApp": "Продължете към приложението", + "title": "Зареждане на срещата в {{app}}…", + "tryAgainButton": "Пробвайте отново" + }, + "defaultLink": "напр. {{url}}", + "defaultNickname": "напр. Иван Иванов", + "deviceError": { + "cameraError": "Камерата е недостъпна", + "cameraPermission": "Грешка при получаване на разрешение за достъп до камерата", + "microphoneError": "Микрофонът е недостъпен", + "microphonePermission": "Грешка при получаване на разрешение за достъп до микрофона" + }, + "deviceSelection": { + "noPermission": "Не е получено разрешение", + "previewUnavailable": "Няма възможност за преглед", + "selectADevice": "Изберете устройство", + "testAudio": "Пусни пробен звук" + }, + "dialOut": { + "statusMessage": "в момента е {{status}}" + }, + "dialog": { + "Back": "Назад", + "Cancel": "Отказ", + "IamHost": "Аз съм домакинът", + "Ok": "Готово", + "Remove": "Премахване", + "Share": "Споделяне", + "Submit": "Изпращане", + "WaitForHostMsg": "Конференцията все още не е започнала. Ако сте домакинът, тогава се идентифицирайте. В противен случай изчакайте докато домакинът пристигне.", + "WaitingForHost": "Чакаме домакина…", + "Yes": "Да", + "accessibilityLabel": { + "liveStreaming": "Излъчване на живо" + }, + "add": "Добави", + "allow": "Разреши", + "alreadySharedVideoMsg": "Друг участник вече е споделил видео. Тази среща позволява само едно споделено видео.", + "alreadySharedVideoTitle": "Разрешено е споделянето само на едно видео в даден момент", + "applicationWindow": "Прозорец на програмата", + "cameraConstraintFailedError": "Камерата Ви не покрива някои от изискванията.", + "cameraNotFoundError": "Не е открита камера.", + "cameraNotSendingData": "Камерата е недостъпна. Моля, проверете дали друго приложение не използва това устройство, изберете друго устройство от менюто с настройките, или презаредете приложението.", + "cameraNotSendingDataTitle": "Камерата е недостъпна", + "cameraPermissionDeniedError": "Не сте дали разрешение за използване на камерата. Ще можете да се присъедините в срещата, но другите няма да Ви виждат. Използвайте бутона с камерата в адресната лента, за да оправите това.", + "cameraUnknownError": "Невъзможен достъп до камерата по неясна причина.", + "cameraUnsupportedResolutionError": "Камерата Ви не поддържа нужната резолюция.", + "close": "Затваряне", + "conferenceDisconnectMsg": "Може би трябва да проверите мрежовата си връзка. Повторно свързване след {{seconds}} сек…", + "conferenceDisconnectTitle": "Връзката се разпадна.", + "conferenceReloadMsg": "Опитваме се да оправим нещата. Повторно свързване след {{seconds}} сек…", + "conferenceReloadTitle": "За съжаление, нещо се обърка.", + "confirm": "Потвърждение", + "confirmNo": "Не", + "confirmYes": "Да", + "connectError": "Опа! Нещо се обърка и не успяхме да се свържем с конференцията.", + "connectErrorWithMsg": "Опа! Нещо се обърка и не успяхме да се свържем с конференцията: {{msg}}", + "connecting": "Свързване", + "contactSupport": "Връзка с отдела по поддръжка", + "copy": "Копиране", + "dismiss": "Отхвърляне", + "displayNameRequired": "Здравей! Как се казваш?", + "done": "Готово", + "enterDisplayName": "Моля, въведете Вашето име", + "error": "Грешка", + "externalInstallationMsg": "Трябва да инсталирате разширението за споделяне на екрана.", + "externalInstallationTitle": "Нужно е разширение", + "goToStore": "Към магазина в Интернет", + "gracefulShutdown": "Услугата временно не е достъпна поради профилактика. Моля, опитайте по-късно.", + "incorrectPassword": "Неправилно потребителско име или парола", + "incorrectRoomLockPassword": "Грешна парола", + "inlineInstallExtension": "Инсталиране сега", + "inlineInstallationMsg": "Трябва да инсталирате разширението за споделяне на екрана.", + "internalError": "Опа! Нещо се обърка. Възникна следната грешка: {{error}}", + "internalErrorTitle": "Вътрешна грешка", + "kickMessage": "Може да се свържете с {{participantDisplayName}} за повече подробности.", + "kickParticipantButton": "Изгони", + "kickParticipantDialog": "Сигурни ли сте, че искате да изгоните участника?", + "kickParticipantTitle": "Изгонване на този участник?", + "kickTitle": "Ауч! {{participantDisplayName}} Ви изгони от тази среща", + "liveStreaming": "Излъчване на живо", + "liveStreamingDisabledForGuestTooltip": "Гостите не могат да стартират излъчване на живо.", + "liveStreamingDisabledTooltip": "Излъчването на живо е деактивирано.", + "lockMessage": "Неуспешно заключване на конференцията.", + "lockRoom": "Добавяне $t(lockRoomPasswordUppercase) за срещата", + "lockTitle": "Неуспешно заключване", + "logoutQuestion": "Сигурни ли сте, че искате да излезете и да прекъснете конференцията?", + "logoutTitle": "Изход", + "maxUsersLimitReached": "Лимитът за максимален брой участници бе достигнат. Капацитетът на срещата е запълнен. Моля, свържете се с организатора или опитайте по-късно!", + "maxUsersLimitReachedTitle": "Достигнат е лимитът за максимален брой участници", + "micConstraintFailedError": "Микрофонът Ви не покрива някои от изискванията.", + "micNotFoundError": "Не е открит микрофон.", + "micNotSendingData": "Пуснете микрофона си от системните настройки на компютъра", + "micNotSendingDataTitle": "Микрофонът Ви е спрян от системните настройки", + "micPermissionDeniedError": "Не сте дали разрешение за използване на микрофона. Ще можете да се присъедините в срещата, но другите няма да Ви чуват. Използвайте бутона с микрофон в адресната лента, за да оправите това.", + "micUnknownError": "Невъзможен достъп до микрофона по неясна причина.", + "muteEveryoneDialog": "Сигурни ли сте, че искате да заглушите всички? Няма да можете да пуснете звука им отново, но участниците ще могат да направят това сами.", + "muteEveryoneElseDialog": "След като заглушите някого, няма да можете да пуснете обратно звука му, но участникът ще може да направи това сам.", + "muteEveryoneElseTitle": "Заглушете всички, освен {{whom}}?", + "muteEveryoneSelf": "себе си", + "muteEveryoneStartMuted": "Всички да влизат без звук", + "muteEveryoneTitle": "Заглуши всички?", + "muteParticipantBody": "Вие няма да можете да спрете заглушаването на участника, но той ще може да го направи по всяко време.", + "muteParticipantButton": "Изключи микрофона", + "muteParticipantDialog": "Сигурни ли сте, че искате да заглушите този участник? Няма да можете да пуснете обратно звука му, но участникът ще може да направи това сам.", + "muteParticipantTitle": "Спиране звука на участник?", + "passwordLabel": "Тази среща е заключена. Моля, въведете $t(lockRoomPassword), за да влезете.", + "passwordNotSupported": "Задаването на $t(lockRoomPassword) за срещата не се поддържа.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) не се поддържа", + "passwordRequired": "Изисква се $t(lockRoomPassword)", + "popupError": "Браузърът Ви блокира изскачащите прозорци от този уеб сайт. Моля, разрешете изскачащите прозорци от настройките за сигурност на браузъра си и след това опитайте отново.", + "popupErrorTitle": "Блокиран изскачащ прозорец", + "recording": "Запис", + "recordingDisabledForGuestTooltip": "Гостите не могат да стартират запис.", + "recordingDisabledTooltip": "Стартирането на запис е спряно.", + "rejoinNow": "Повторно присъединяване сега", + "remoteControlAllowedMessage": "{{user}} прие заявката Ви за отдалечено управление!", + "remoteControlDeniedMessage": "{{user}} отказа заявката Ви за отдалечено управление!", + "remoteControlErrorMessage": "Възникна грешка при опита за искане на разрешение за отдалечено управление от {{user}}!", + "remoteControlRequestMessage": "Ще позволите ли на {{user}} да управлява отдалечено компютъра Ви?", + "remoteControlShareScreenWarning": "Ако натиснете „Разрешаване“, ще споделите екрана си!", + "remoteControlStopMessage": "Сесията за отдалечено управление приключи!", + "remoteControlTitle": "Отдалечено управление на компютъра", + "removePassword": "Премахване на $t(lockRoomPassword)", + "removeSharedVideoMsg": "Наистина ли искате да премахнете споделеното си видео?", + "removeSharedVideoTitle": "Край на споделянето на видео", + "reservationError": "Грешка в системата за резервации", + "reservationErrorMsg": "Грешка номер: {{code}}, съобщение: {{msg}}", + "retry": "Повторен опит", + "screenSharingAudio": "Сподели и звука", + "screenSharingFailedToInstall": "Опа! Разширението за споделяне на екрана не успя да се инсталира.", + "screenSharingFailedToInstallTitle": "Разширението за споделяне на екрана не успя да се инсталира", + "screenSharingFirefoxPermissionDeniedError": "Нещо се обърка докато се опитвахме да споделим екрана. Моля, уверете се, че сте дали права за това. ", + "screenSharingFirefoxPermissionDeniedTitle": "Упс! Не успяхме да стартираме споделянето на екрана!", + "screenSharingPermissionDeniedError": "Опа! Нещо се обърка с разрешенията на разширението за споделяне на екрана. Моля, презаредете и опитайте отново.", + "sendPrivateMessage": "Наскоро получихте лично съобщение. Искате да отговорите на това съобшение или да изпратите до всички?", + "sendPrivateMessageCancel": "Изпрати до всички", + "sendPrivateMessageOk": "Изпрати лично", + "sendPrivateMessageTitle": "Да се изпрати лично?", + "serviceUnavailable": "Услугата не е налична", + "sessTerminated": "Разговорът приключи", + "shareVideoLinkError": "Моля, въведете правилна връзка.", + "shareVideoTitle": "Сподели видео", + "shareYourScreen": "Споделяне на екрана", + "shareYourScreenDisabled": "Споделянето на екрана не се поддържа.", + "shareYourScreenDisabledForGuest": "Гостите не могат да споделят екрана.", + "startLiveStreaming": "Започване на излъчване на живо", + "startRecording": "Стартиране на запис", + "startRemoteControlErrorMessage": "Възникна грешка при опита за започване на сесията за отдалечено управление!", + "stopLiveStreaming": "Спиране на излъчването на живо", + "stopRecording": "Край на записа", + "stopRecordingWarning": "Наистина ли искате да спрем записа?", + "stopStreamingWarning": "Наистина ли искате да спрете излъчването на живо?", + "streamKey": "Ключ за излъчване на живо", + "thankYou": "Благодарим, че използвахте {{appName}}!", + "token": "код за достъп", + "tokenAuthFailed": "Съжаляваме, но не можете да се присъедините към този разговор.", + "tokenAuthFailedTitle": "Неуспешна идентификация", + "transcribing": "Транскрипция", + "unlockRoom": "Премахване $t(lockRoomPassword) от срещата", + "userPassword": "потребителска парола", + "videoLink": "Линк към видео", + "yourEntireScreen": "Целият екран" + }, + "documentSharing": { + "title": "Споделен документ" + }, + "feedback": { + "average": "Средно", + "bad": "Лошо", + "detailsLabel": "Разкажете ни повече.", + "good": "Добро", + "rateExperience": "Моля, оценете качеството на срещата", + "veryBad": "Много лошо", + "veryGood": "Много добро" + }, + "helpView": { + "title": "Място за помощ" + }, + "incomingCall": { + "answer": "Вдигни", + "audioCallTitle": "Входящ разговор", + "decline": "Отхвърляне", + "productLabel": "от Jitsi Meet", + "videoCallTitle": "Входящ видео разговор" + }, + "info": { + "accessibilityLabel": "Покажи информация", + "addPassword": "Добави $t(lockRoomPassword)", + "cancelPassword": "Премахни $t(lockRoomPassword)", + "conferenceURL": "Връзка:", + "country": "Страна", + "dialANumber": "За влизане в срещата, наберете един от изброените номера и въведете кода.", + "dialInConferenceID": "Код:", + "dialInNotSupported": "Съжаляваме, обаждането в момента не се поддържа.", + "dialInNumber": "Тел:", + "dialInSummaryError": "Проблем при достъпа на информация за опциите за влизане през телефон. Моля, опитайте отново по-късно.", + "dialInTollFree": "Безплатен", + "genericError": "Упс, нещо се обърка.", + "inviteLiveStream": "За да видите предаването на живо на срещата, използвйте тази връзка: {{url}}", + "invitePhone": "За влизане през телефон, използвайте: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Вижте още номера: {{url}}\n\n\nАко вече сте набрали от телефон в стаята, влезте без да е пуснат звукът: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Поканени сте да се присъедините към среща.", + "inviteURLFirstPartPersonal": "{{name}} ви кани за среща.\n", + "inviteURLSecondPart": "\nВлезте в срещата:\n{{url}}\n", + "label": "Информация за срещата", + "liveStreamURL": "Излъчване на живо:", + "moreNumbers": "Повече номера", + "noNumbers": "Няма номера за набиране.", + "noPassword": "Няма", + "noRoom": "Няма посочена стая за информация за номера за набиране.", + "numbers": "Номера", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Споделяне", + "tooltip": "Споделете връзката и информацията за номера свързани със срещата" + }, + "inlineDialogFailure": { + "msg": "Имаше грешка.", + "retry": "Опитайте отново", + "support": "Поддръжка", + "supportMsg": "Ако това се случва често, свържете се с" + }, + "inviteDialog": { + "alertText": "Не успях да поканя участниците.", + "header": "Покани", + "searchCallOnlyPlaceholder": "Въведете телефонен номер", + "searchPeopleOnlyPlaceholder": "Търсене на участници", + "searchPlaceholder": "Участник или телефонен номер", + "send": "Изпрати" + }, + "keyboardShortcuts": { + "focusLocal": "Фокусиране върху Вашето видео", + "focusRemote": "Фокусирай видеото на друг участник", + "fullScreen": "Влизане/излизане от режим на цял екран", + "keyboardShortcuts": "Клавишни комбинации", + "localRecording": "Показване или скриване на контролите за локален запис", + "mute": "Спиране/пускане на микрофона", + "pushToTalk": "Натиснете, за да говорите", + "raiseHand": "Вдигнете или свалете ръка", + "showSpeakerStats": "Показване на статистика за говорителя", + "toggleChat": "Отваряне/скриване на текстовите съобщения", + "toggleFilmstrip": "Показване или скриване на видео миниатюрите", + "toggleScreensharing": "Смяна между камера и споделен екран", + "toggleShortcuts": "Показване или скриване на клавишните комбинации", + "videoMute": "Пускане/спиране на камерата", + "videoQuality": "Управление на качество на обаждането" + }, + "liveStreaming": { + "busy": "Работим върху това да освободим ресурси за излъчване. Моля, опитайте отново след няколко минути.", + "busyTitle": "Всички излъчватели в момента са заети", + "changeSignIn": "Смяна на акаунти.", + "choose": "Изберете предаване на живо", + "chooseCTA": "Изберете опция за предаване. Влезли сте като {{email}}.", + "enterStreamKey": "Въведете ключа от YouTube за предаване на живо.", + "error": "Излъчването на живо беше неуспешно. Моля, опитайте отново.", + "errorAPI": "Изникна проблем с връзката към YouTube. Моля, опитайте отново.", + "errorLiveStreamNotEnabled": "Предаването на живо не е пуснато за {{email}}. Моля, активирайте го или сменете акаунта.", + "expandedOff": "Предаването на живо бе спряно", + "expandedOn": "Срещата се излъчва на живо в YouTube.", + "expandedPending": "Излъчването на живо се стартира…", + "failedToStart": "Излъчването на живо не успя да започне", + "getStreamKeyManually": "Не успяхме да открием никакво предаване на живо. Опитайте да вземете ключа за такова от YouTube.", + "googlePrivacyPolicy": "Политика за поверителност на Google", + "invalidStreamKey": "Ключът за предаване на живо е грешен.", + "off": "Край на излъчването на живо", + "offBy": "{{name}} спря излъчването на живо", + "on": "Излъчване на живо", + "onBy": "{{name}} пусна излъчване на живо", + "pending": "Започване на излъчването на живо…", + "serviceName": "Предаване на живо", + "signIn": "Влезте с Гугъл", + "signInCTA": "Влезте или въведете ключа за излъчване на живо от YouTube.", + "signOut": "Излизане", + "signedInAs": "В момента сте влезли като:", + "start": "Започни излъчване на живо", + "streamIdHelp": "Какво е това?", + "title": "Излъчване на живо", + "unavailableTitle": "Излъчването на живо е недостъпно", + "youtubeTerms": "Условия за ползване на YouTube" + }, + "lobby": { + "backToKnockModeButton": "Заявка за включване без парола", + "dialogTitle": "Режим лоби", + "disableDialogContent": "Режим Лоби е включен. Този решим защитава срещите Ви от случайни посетители. Искате ли да го изключите?", + "disableDialogSubmit": "Изключи", + "emailField": "Въведи имейл адрес", + "enableDialogPasswordField": "Задай парола (не е задължително)", + "enableDialogSubmit": "Включи", + "enableDialogText": "Режимът Лоби защитава срещите Ви от случайни посетители, чрез изрично одобрение на участниците от модератор.", + "enterPasswordButton": "Въведи парола за срещата", + "enterPasswordTitle": "Въведи парола за влезеш в срещата", + "invalidPassword": "Невалидна парола", + "joinRejectedMessage": "Вашето желание за включване беше отхвърлено от модератор.", + "joinTitle": "Включи се в срещата", + "joinWithPasswordMessage": "Опит за включване с парола, моля изчакайте…", + "joiningMessage": "Ще влезете в срещата, когато някой ви приеме", + "joiningTitle": "Изчаква одобрение…", + "joiningWithPasswordTitle": "Включване с парола…", + "knockButton": "Поискай достъп", + "knockTitle": "Някой желае да се включи в срещата", + "knockingParticipantList": "Списък с чакащи участници", + "nameField": "Въведи име", + "notificationLobbyAccessDenied": "{{targetParticipantName}} не беше допуснат от {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} беше допуснат от {{originParticipantName}}", + "notificationLobbyDisabled": "Лобито беше изключено от {{originParticipantName}}", + "notificationLobbyEnabled": "Лобито беше включено от {{originParticipantName}}", + "notificationTitle": "Лоби", + "passwordField": "Въведи парола за срещата", + "passwordJoinButton": "Влез", + "title": "Лоби", + "toggleLabel": "Включи лоби" + }, + "localRecording": { + "clientState": { + "off": "Изключено", + "on": "Включено", + "unknown": "Непознат" + }, + "dialogTitle": "Управление на локален запис", + "duration": "Продължителност", + "durationNA": "Няма", + "encoding": "Кодек", + "label": "Етикет", + "labelToolTip": "Локалният запис е включен", + "localRecording": "Локален запис", + "me": "Аз", + "messages": { + "engaged": "Локалният запис е включен.", + "finished": "Записа на сесията {{token}} приключи. Моля, изпратете записа на вашият домакин.", + "finishedModerator": "Сесията {{token}} за запис приключи. Локалният запис беше запазен. Моля, поканете останалите участници да ви изпратят техните записи.", + "notModerator": "Нямате права да пускате спирате локален запис." + }, + "moderator": "Модератор", + "no": "Не", + "participant": "Участник", + "participantStats": "Статистика на участник", + "sessionToken": "Тоукън за сесията", + "start": "Започни запис", + "stop": "Спри записа", + "yes": "Да" + }, + "lockRoomPassword": "парола", + "lockRoomPasswordUppercase": "Парола", + "lonelyMeetingExperience": { + "button": "Поканете участници", + "youAreAlone": "Вие сте сами в срещата" + }, + "me": "аз", + "notify": { + "connectedOneMember": "{{name}} влезе в срещата", + "connectedThreePlusMembers": "{{name}} и още {{count}} влязоха в срещата", + "connectedTwoMembers": "{{first}} и {{second}} влязоха в срещата", + "disconnected": "Напусна срещата", + "focus": "Фокус на срещата", + "focusFail": "{{component}} не е на раположение - следващ опит след {{ms}} секунди", + "grantedTo": "Даване на роля модератор на {{to}}!", + "invitedOneMember": "{{name}} бе поканен", + "invitedThreePlusMembers": "{{name}} и още {{count}} бяха поканени", + "invitedTwoMembers": "{{first}} и {{second}} бяха поканени", + "kickParticipant": "{{kicked}} беше изгонен от {{kicker}}", + "me": "Аз", + "moderator": "Придобихте права на модератор!", + "muted": "Започвате разговора без звук.", + "mutedRemotelyDescription": "Винаги можете да пуснете микрофона си, когато сте готови да говорите. Заглушете го отново, за да не изпращате шум в срещата.", + "mutedRemotelyTitle": "Микрофонът Ви бе спрян от {{participantDisplayName}}!", + "mutedTitle": "Звукът Ви е спрян!", + "newDeviceAction": "Използвай", + "newDeviceAudioTitle": "Засечено е ново аудио устройство", + "newDeviceCameraTitle": "Засечена е нова камера", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) е премахната от друг потребител", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) създадена от друг потребител", + "raisedHand": "{{name}} иска думата.", + "somebody": "Някой", + "startSilentDescription": "Влезте повторно, за да пуснете звука", + "startSilentTitle": "Влязохте с опция да не чувате аудио!", + "suboptimalBrowserWarning": "Опасяваме се, че няма да можете да се насладите на срещата. Работим по въпроса, междувременно използвайте някой от напълно поддържаните браузъри.", + "suboptimalExperienceTitle": "Внимание", + "unmute": "Пускане на микрофона" + }, + "participantsPane": { + "actions": { + "admit": "Допусни", + "allow": "Разреши", + "reject": "Откажи" + } + }, + "passwordDigitsOnly": "До {{number}} цифри", + "passwordSetRemotely": "зададена от друг участник", + "polls": { + "errors": { + "notUniqueOption": "Опциите трябва да са уникални" + } + }, + "poweredby": "с подкрепата на", + "presenceStatus": { + "busy": "Зает", + "calling": "Обаждане…", + "connected": "Свързан", + "connecting": "Свързване…", + "connecting2": "Свързване*…", + "disconnected": "Изключен", + "expired": "Изтекъл", + "ignored": "Пренебрегнат", + "initializingCall": "Започване на обаждането…", + "invited": "Поканен", + "rejected": "Отхвърлен", + "ringing": "Звъни…" + }, + "profile": { + "setDisplayNameLabel": "Задайте екранното си име", + "setEmailInput": "Въведете е-поща", + "setEmailLabel": "Задайте е-пощата си в „Gravatar“", + "title": "Профил" + }, + "raisedHand": "Иска думата", + "recording": { + "authDropboxText": "Качете в Dropbox", + "availableSpace": "Налично място: {{spaceLeft}} MB (приблизително {{duration}} минути запис)", + "beta": "БЕТА", + "busy": "Работим върху това да освободим ресурси за запис. Моля, опитайте отново след няколко минути.", + "busyTitle": "Всички възможности за запис в момента са заети", + "error": "Грешка при опит за запис. Моля, опитайте отново.", + "expandedOff": "Записът спря", + "expandedOn": "Срещата се записва в момента.", + "expandedPending": "Записът започва…", + "failedToStart": "Неуспешен опит за записване", + "fileSharingdescription": "Споделете записа с участниците в срещата", + "live": "На Живо", + "loggedIn": "Влезли сте като {{userName}}", + "off": "Записът е спрян", + "offBy": "{{name}} спря записа", + "on": "Запис", + "onBy": "{{name}} пусна запис", + "pending": "Стартира запис на срещата…", + "rec": "ЗАПИС", + "serviceDescription": "Записът Ви ще се запише от специална записваща услуга", + "serviceName": "Записваща услуга", + "signIn": "Влизане", + "signOut": "Излизане", + "title": "Запис", + "unavailable": "Упс! В момента {{serviceName}} е недостъпна. В момента се опитваме да решим проблема. Моля, опитайте отново малко по-късно.", + "unavailableTitle": "Записът е невъзможен" + }, + "sectionList": { + "pullToRefresh": "Издърпай, за да се обнови" + }, + "security": { + "about": "Може да добавите парола към вашите срещи. Участниците ще трябва да въведат паролата преди да бъдат допуснати до срещата.", + "aboutReadOnly": "Модераторите могат да добавят парола към срещата. Участниците ще трябва да въведат паролата преди да бъдат допуснати до срещата.", + "insecureRoomNameWarning": "Вашата среща не е обезопасена и нежелани участници могат да се включат. Можете да подсигурите срещата с помощта на бутона сигурност.", + "securityOptions": "Сигурност" + }, + "settings": { + "calendar": { + "about": "Календарната интеграция на {{appName}} сигурно достъпва Вашия календар, за да покаже настъпващите събития.", + "disconnect": "Разкачи", + "microsoftSignIn": "Влез с Microsoft акаунт", + "signedIn": "В момента достъпва календара с {{email}}. Натиснете бутона Разкачи, за да спрете достъпа.", + "title": "Календар" + }, + "devices": "Устройства", + "followMe": "Всички ме следват", + "language": "Език", + "loggedIn": "Влезли сте като {{name}}", + "microphones": "Микрофони", + "moderator": "Модератор", + "more": "Повече", + "name": "Име", + "noDevice": "Няма", + "selectAudioOutput": "Звуков изход", + "selectCamera": "Камера", + "selectMic": "Микрофон", + "speakers": "Говорители", + "startAudioMuted": "Всички започват заглушени", + "startVideoMuted": "Всички започват скрити", + "title": "Настройки" + }, + "settingsView": { + "advanced": "Разширени", + "alertOk": "Потвърди", + "alertTitle": "Внимание", + "alertURLText": "Въведената връзка за сървър е невалидна", + "buildInfoSection": "Информация за програмата", + "conferenceSection": "Конференция", + "disableCallIntegration": "Деактивиране на интеграция с обажданията", + "disableP2P": "Деактивиране на опцията за пряка връзка (p2p)", + "displayName": "Име", + "email": "Поща", + "header": "Настройки", + "profileSection": "Профил", + "serverURL": "Линк на сървъра", + "showAdvanced": "Показване на разширени настройки", + "startWithAudioMuted": "Започни със спрян звук", + "startWithVideoMuted": "Започни със спряно видео", + "version": "Версия" + }, + "share": { + "dialInfoText": "\n\n=====\n\nИскате да наберете от телефона?\n\n{{defaultDialInNumber}}Използвайте този линк за повече номера\n{{dialInfoPageUrl}}", + "mainText": "Използвайте линка, за да влезете в срещата:\n{{roomUrl}}" + }, + "speaker": "Говорещ", + "speakerStats": { + "hours": "{{count}}ч", + "minutes": "{{count}}мин", + "name": "Име", + "search": "Търсене", + "searchHint": "Търсене участници", + "seconds": "{{count}}сек", + "speakerStats": "Статистика на говорителя", + "speakerTime": "Време на говорене" + }, + "startupoverlay": { + "genericTitle": "Срещата се нуждае от достъп до микрофона и камерата Ви.", + "policyText": " ", + "title": "„{{app}}“ се нуждае от достъп до микрофона и камерата Ви." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Повторно присъединяване", + "text": "Натиснете бутона Повторно присъединяване, за да се свържете отново.", + "title": "Вашият видео разговор беше прекъснат, тъй като компютърът Ви заспа." + }, + "toolbar": { + "Settings": "Настройки", + "accessibilityLabel": { + "Settings": "Промяна на настройки", + "audioOnly": "Пускане на режим само със звук", + "audioRoute": "Изберете устройство за звук", + "callQuality": "Промяна качеството на видеото", + "cc": "Пускане на субтитри", + "chat": "Активиране на прозорец за съобщения", + "document": "Показване на споделен документ", + "download": "Свалете приложението", + "feedback": "Отзиви", + "fullScreen": "Пускане/спиране на изглед в цял екран", + "hangup": "Напускане на срещата", + "help": "Помощ", + "invite": "Поканете участници", + "kick": "Изгони участник", + "localRecording": "Показване на контроли за локален запис", + "lockRoom": "Смяна парола на среща", + "moreActions": "Показване на меню с повече опции", + "moreActionsMenu": "Меню с повече опции", + "moreOptions": "Покажи повече опции", + "mute": "Пускане/спиране на видеото", + "muteEveryone": "Заглуши всички", + "pip": "Пускане на Картина-в-Картина", + "privateMessage": "Изпрати лично съобщение", + "profile": "Редактиране на профила", + "raiseHand": "Смяна искане на думата", + "recording": "Пускане/спиране на запис", + "remoteMute": "Заглуши участник", + "shareRoom": "Добавете някого", + "shareYourScreen": "Споделяне на екрана", + "sharedvideo": "Пускане/спиране на споделеното видео", + "shortcuts": "Бързи клавиши", + "show": "Покажи на главния екран", + "speakerStats": "Показване на статистики за участниците", + "tileView": "Превключване на изглед галерия", + "toggleCamera": "Пускане/спиране на камера", + "toggleFilmstrip": "Превключи видео миниатюрите", + "videoblur": "Пускане/спиране на замъгляване на видеото", + "videomute": "Пускане/спиране на видеото" + }, + "addPeople": "Добавяне на участници в разговора", + "audioOnlyOff": "Спиране режима с нисък трафик", + "audioOnlyOn": "Пускане режима с нисък трафик", + "audioRoute": "Изберете устройство за звук", + "authenticate": "Идентификация", + "callQuality": "Промяна качеството на видеото", + "chat": "Отваряне/затваряне на текстовите съобщения", + "closeChat": "Затваряне на съобщенията", + "documentClose": "Затваряне на споделения документ", + "documentOpen": "Отваряне на споделен документ", + "download": "Свалете приложението", + "enterFullScreen": "Вижте на цял екран", + "enterTileView": "Влизане в изглед галерия", + "exitFullScreen": "Изход от цял екран", + "exitTileView": "Спиране на изглед галерия", + "feedback": "Отзиви", + "hangup": "Напускане", + "help": "Помощ", + "invite": "Поканете участници", + "login": "Влез", + "logout": "Изход", + "lowerYourHand": "Махни искането на думата", + "moreActions": "Още опции", + "moreOptions": "Повече опции", + "mute": "Спиране/пускане на микрофона", + "muteEveryone": "Заглуши всички", + "noAudioSignalDesc": "Ако не сте спрели звука на устройството от системните настройки, сменете с друго устройство.", + "noAudioSignalDescSuggestion": "Ако не сте спрели звука на устройството от системните настройки, използвайте някое от предложените устройства.", + "noAudioSignalDialInDesc": "Може да влезнете чрез обаждане на:", + "noAudioSignalDialInLinkDesc": "Номера за обаждане", + "noAudioSignalTitle": "Няма сигнал, идващ от микрофона!", + "noisyAudioInputDesc": "Изглежда доста шум идва от микрофона Ви, заглушете го или сменете устройството.", + "noisyAudioInputTitle": "Изглежда е шумно около Вас!", + "openChat": "Отвори съобщенията", + "pip": "Пусни Картина-в-Картина", + "privateMessage": "Изпрати лично съобщение", + "profile": "Редактиране на профила", + "raiseHand": "Вдигане/сваляне на ръка", + "raiseYourHand": "Поискай думата", + "shareRoom": "Добавете някого", + "sharedvideo": "Споделяне на видео", + "shortcuts": "Виж бързите клавиши", + "speakerStats": "Статистика за говорителите", + "startScreenSharing": "Започни споделяне на екрана", + "startSubtitles": "Пускане на субтитри", + "startvideoblur": "Замъгли фона ми", + "stopScreenSharing": "Спиране споделяне на екрана", + "stopSharedVideo": "Спиране на видео", + "stopSubtitles": "Спиране на субтитри", + "stopvideoblur": "Спиране замъгляването на фона", + "talkWhileMutedPopup": "Опитвате се да говорите? В момента микрофонът Ви е заглушен.", + "tileViewToggle": "Превключване на изглед галерия", + "toggleCamera": "Пускане/спиране на камера", + "videomute": "Пускане/спиране на камерата" + }, + "transcribing": { + "ccButtonTooltip": "Пускане/спиране на субтитри", + "error": "Грешка при опит за транскрибиране. Моля, опитайте отново.", + "expandedLabel": "Транскрибирането е пуснато", + "failedToStart": "Транскрибирането не успя при пускане", + "labelToolTip": "Тази среща се транскрибира", + "off": "Транскрибирането спря", + "pending": "Стартира се транскрибиране на срещата…", + "start": "Започва показване на субтитри", + "stop": "Спира показване на субтитри", + "tr": "СУБ" + }, + "userMedia": { + "grantPermissions": "Моля, разрешете използването на камерата и микрофона." + }, + "videoSIPGW": { + "busy": "Работим по освобождаване на ресурси. Моля, опитайте след няколко минути.", + "busyTitle": "Услугата за стаи в момента е заета", + "errorAlreadyInvited": "{{displayName}} вече е поканен", + "errorInvite": "Конференцията не е стартирана. Моля, опитайте по-късно.", + "errorInviteFailed": "Работим по разрешаването на проблем. Моля, опитайте по-късно.", + "errorInviteFailedTitle": "Добавянето на {{displayName}} не успя", + "errorInviteTitle": "Грешка при добавяне на стая", + "pending": "{{displayName}} бе поканен" + }, + "videoStatus": { + "audioOnly": "АУДИО", + "audioOnlyExpanded": "Вие сте в режим на нисък трафик. В този режим ще получавате само аудио или споделени екрани.", + "callQuality": "Качество на видеото", + "hd": "HD", + "hdTooltip": "Гледате високо качество на видеото", + "highDefinition": "Високо качество", + "labelTooiltipNoVideo": "Няма видео", + "labelTooltipAudioOnly": "Пуснат режим на нисък трафик", + "ld": "LD", + "ldTooltip": "Виждате ниско качество на видеото", + "lowDefinition": "Ниско качество", + "onlyAudioAvailable": "Само аудио е налично", + "onlyAudioSupported": "Този браузър поддържа само аудио.", + "sd": "SD", + "sdTooltip": "Гледате стандартно качество на видеото", + "standardDefinition": "Стандартно качество" + }, + "videothumbnail": { + "domute": "Изключи микрофона", + "domuteOthers": "Заглушете всички останали", + "flip": "Огледално", + "kick": "Изгони", + "moderator": "Модератор", + "mute": "Участникът е с изключен микрофон", + "muted": "Изключен микрофон", + "remoteControl": "Отдалечено управление", + "show": "Покажи на главния екран", + "videomute": "Участникът е спрял камерата си" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Натиснете, за да влезете", + "roomname": "Въведете име на стаята" + }, + "appDescription": "Хайде на видео разговор с целия екип! Всъщност, поканете всички свои познати! {{app}} е напълно защитено решение за видеоконференции със 100% отворен код, което може да ползвате по цял ден, всеки ден, безплатно - без да ви е нужна регистрация.", + "audioVideoSwitch": { + "audio": "Глас", + "video": "Видео" + }, + "calendar": "Календар", + "connectCalendarButton": "Свържете своя календар", + "connectCalendarText": "Свържете своя календар, за да видите срещите си в {{app}}. Добавяйки {{provider}} срещите в календара си, ще можете да ги старирате с едно докосване.", + "enterRoomTitle": "Започни нова среща", + "getHelp": "Търсене на помощ", + "go": "НАПРЕД", + "goSmall": "НАПРЕД", + "info": "Информация", + "join": "Създай / Влез", + "privacy": "Поверителност", + "recentList": "Скорошни срещи", + "recentListDelete": "Изтрий", + "recentListEmpty": "Списъкът със скорошни срещи е празен. След като участвате в някоя среща, ще я намерите тук.", + "reducedUIText": "Добре дошли в {{app}}!", + "roomNameAllowedChars": "Името на срещата не трябва да съдържа никой от символите: ?, &, :, ', \", %, #.", + "roomname": "Въведете име на стаята", + "roomnameHint": "Въведете името или връзката на стаята, в която искате да влезете. Също така може да си измислите име. Само го споделете с някого, за да може и той да въведе същото име и да се срещнете.", + "sendFeedback": "Изпращане на отзиви", + "terms": "Условия", + "title": "Сигурна, с много възможности, и напълно безплатна платформа за видео конференции" + } +} diff --git a/lang/main-ca.json b/lang/main-ca.json new file mode 100644 index 0000000..e152bf9 --- /dev/null +++ b/lang/main-ca.json @@ -0,0 +1,1367 @@ +{ + "addPeople": { + "add": "Convida", + "addContacts": "Convideu els contactes", + "contacts": "contactes", + "copyInvite": "Copia la invitació a la reunió", + "copyLink": "Copia l'enllaç de la reunió", + "copyStream": "Copia l'enllaç a la transmissió en directe", + "countryNotSupported": "Encara no és possible usar aquesta destinació.", + "countryReminder": "Truqueu des de fora dels EUA? Assegureu-vos que comenceu amb el codi de país!", + "defaultEmail": "La vostra adreça de correu electrònic predeterminada", + "disabled": "No podeu convidar-hi persones.", + "failedToAdd": "No s'han pogut afegir-hi participants", + "googleEmail": "Correu de Google", + "inviteMoreHeader": "Sou l'única persona en la reunió", + "inviteMoreMailSubject": "Entra a la reunió {{appName}}", + "inviteMorePrompt": "Convida a més persones", + "linkCopied": "L'enllaç s'ha copiat al porta-retalls", + "noResults": "No s'ha trobat cap resultat coincident", + "outlookEmail": "Correu d'Outlook", + "phoneNumbers": "números de telèfon", + "searching": "S'està cercant…", + "shareInvite": "Comparteix la invitació a la reunió", + "shareLink": "Compartiu l'enllaç de la reunió per a convidar altres persones", + "shareStream": "Comparteix l'enllaç de la transmissió en directe", + "sipAddresses": "adreces sip", + "telephone": "Telèfon: {{number}}", + "title": "Convida persones a aquesta reunió", + "yahooEmail": "Correu de Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Àudio del cotxe", + "headphones": "Auriculars", + "none": "No hi ha disponible cap aparell d'àudio", + "phone": "Telèfon", + "speaker": "Altaveu" + }, + "audioOnly": { + "audioOnly": "Poca amplada de banda" + }, + "breakoutRooms": { + "actions": { + "add": "Afegeix una sala de descans", + "autoAssign": "Assigna automàticament a les sala de descans", + "close": "Tanca", + "join": "Entra", + "leaveBreakoutRoom": "Surt de la sala de descans", + "more": "Més", + "remove": "Elimina", + "sendToBreakoutRoom": "Envia el participant a:" + }, + "defaultName": "Sala de descans #{{index}}", + "mainRoom": "Sala principal", + "notifications": { + "joined": "Entra a la sala de descans «{{name}}»", + "joinedMainRoom": "Entra a la sala principal", + "joinedTitle": "Sales de descans" + } + }, + "calendarSync": { + "addMeetingURL": "Afegeix un enllaç de reunió", + "confirmAddLink": "Voleu afegir un enllaç al Jitsi en aquest esdeveniment?", + "error": { + "appConfiguration": "La integració de l'agenda no està configurada correctament.", + "generic": "S'ha produït un error. Comproveu la configuració de l'agenda o intenteu d'actualitzar-la.", + "notSignedIn": "S'ha produït un error en l'autenticació per a visualitzar els esdeveniments de l'agenda. Reviseu la configuració de l'agenda i intenteu iniciar la sessió més endavant." + }, + "join": "Entra", + "joinTooltip": "Entra a la reunió", + "nextMeeting": "reunió següent", + "noEvents": "No hi ha cap esdeveniment previst a l'agenda.", + "ongoingMeeting": "reunió en curs", + "permissionButton": "Obre la configuració", + "permissionMessage": "Es requereix el permís d'agenda per a veure les reunions en l'aplicació.", + "refresh": "Actualitza l'agenda", + "today": "Avui" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Seleccioneu l'aparell d'àudio" + }, + "labels": { + "buttonLabel": "Mode cotxe", + "title": "Mode cotxe", + "videoStopped": "El vídeo està aturat" + } + }, + "chat": { + "enter": "Entra a la sala", + "error": "Error: no s'ha enviat el missatge. Raó: {{error}}", + "fieldPlaceHolder": "Escriviu aquí el missatge", + "lobbyChatMessageTo": "Envia un missatge en la sala d'espera a {{recipient}}", + "message": "Missatge", + "messageAccessibleTitle": "{{user}} diu:", + "messageAccessibleTitleMe": "jo dic:", + "messageTo": "Missatge privat per a {{recipient}}", + "messagebox": "Escriviu un missatge", + "newMessages": "Missatges nous", + "nickname": { + "popover": "Trieu un sobrenom", + "title": "Introduïu un sobrenom per a usar el xat", + "titleWithPolls": "Introduïu un àlies per a usar al xat i les enquestes" + }, + "noMessagesMessage": "Encara no hi ha cap missatge en aquesta reunió. Comenceu una conversa aquí!", + "privateNotice": "Missatge privat per a {{recipient}}", + "sendButton": "Envia", + "smileysPanel": "Tauler d'emojis", + "tabs": { + "chat": "Xat", + "polls": "Enquestes" + }, + "title": "Xat", + "titleWithPolls": "Xat i enquestes", + "you": "vós" + }, + "chromeExtensionBanner": { + "buttonText": "Instal·la l'extensió de Chrome", + "buttonTextEdge": "Instal·la l'extensió d'Edge", + "close": "Tanca", + "dontShowAgain": "No m'ho mostris més", + "installExtensionText": "Instal·la l'extensió per a la integració amb Google Calendar i Office 365" + }, + "connectingOverlay": { + "joiningRoom": "S'està connectat a la reunió…" + }, + "connection": { + "ATTACHED": "Adjunt", + "AUTHENTICATING": "S'està autenticant", + "AUTHFAIL": "L'autenticació ha fallat", + "CONNECTED": "Connectat", + "CONNECTING": "S'està connectant", + "CONNFAIL": "La connexió ha fallat", + "DISCONNECTED": "Desconnectat", + "DISCONNECTING": "S'està desconnectant", + "ERROR": "Error", + "FETCH_SESSION_ID": "S'està obtenint un identificador de sessió…", + "GET_SESSION_ID_ERROR": "S'ha produït un error en obtenir l'identificador de la sessió: {{code}}", + "GOT_SESSION_ID": "Obtenció d'identificador de sessió…. Fet", + "LOW_BANDWIDTH": "S'ha apagat el vídeo de {{displayName}} per a estalviar amplada de banda" + }, + "connectionindicator": { + "address": "Adreça:", + "audio_ssrc": "Àudio SSRC:", + "bandwidth": "Amplada de banda estimada:", + "bitrate": "Taxa de bits:", + "bridgeCount": "Nombre de servidors: ", + "codecs": "Còdecs (A/V):", + "connectedTo": "Connectat a:", + "framerate": "Taxa de fotogrames:", + "less": "Menys informació", + "localaddress": "Adreça local:", + "localaddress_plural": "Adreces locals:", + "localport": "Port local:", + "localport_plural": "Ports locals:", + "maxEnabledResolution": "màx. enviament", + "more": "Més informació", + "packetloss": "Pèrdua de paquets:", + "participant_id": "Id del participant:", + "quality": { + "good": "Bona", + "inactive": "Inactiva", + "lost": "Perduda", + "nonoptimal": "No òptima", + "poor": "Pobra" + }, + "remoteaddress": "Adreça remota:", + "remoteaddress_plural": "Adreces remotes:", + "remoteport": "Port remot:", + "remoteport_plural": "Ports remots:", + "resolution": "Resolució:", + "savelogs": "Desa els registre", + "status": "Connexió:", + "transport": "Transport:", + "transport_plural": "Transports:", + "video_ssrc": "Vídeo SSRC:" + }, + "dateUtils": { + "earlier": "Abans", + "today": "Avui", + "yesterday": "Ahir" + }, + "deepLinking": { + "appNotInstalled": "Cal l'app {{app}} per a entrar a aquesta reunió des del telèfon.", + "description": "No ha passat res? Hem intentat iniciar la reunió en l'aplicació d'escriptori {{app}}. Torna a intentar-ho en l'aplicació web {{app}}.", + "descriptionWithoutWeb": "No ha passat res? Hem intentat iniciar la reunió en l'aplicació d'escriptori {{app}}.", + "downloadApp": "Baixa l'aplicació", + "ifDoNotHaveApp": "Si encara no teniu l'aplicació:", + "ifHaveApp": "Si ja teniu l'aplicació:", + "joinInApp": "Uniu-vos a aquesta reunió amb l'aplicació", + "launchWebButton": "Inicia al web", + "title": "S'està iniciant la reunió en {{app}}….", + "tryAgainButton": "Torna-ho a intentar en l'escriptori", + "unsupportedBrowser": "Sembla que useu un navegador que no suportem." + }, + "defaultLink": "p. ex. {{url}}", + "defaultNickname": "p. ex. Pere Cullera", + "deviceError": { + "cameraError": "No s'ha pogut accedir a la càmera", + "cameraPermission": "S'ha produït un error en obtenir el permís de la càmera", + "microphoneError": "No s'ha pogut accedir al micròfon", + "microphonePermission": "S'ha produït un error en obtenir el permís del micròfon" + }, + "deviceSelection": { + "noPermission": "No s'ha concedit el permís", + "previewUnavailable": "La previsualització no és disponible", + "selectADevice": "Seleccioneu un aparell", + "testAudio": "Reprodueix un so de prova" + }, + "dialIn": { + "screenTitle": "Resum de la trucada" + }, + "dialOut": { + "statusMessage": "ara és {{status}}" + }, + "dialog": { + "Back": "Enrere", + "Cancel": "Cancel·la", + "IamHost": "Sóc l'amfitrió", + "Ok": "D'acord", + "Remove": "Elimina", + "Share": "Comparteix", + "Submit": "Tramet", + "WaitForHostMsg": "La conferència encara no ha començat. Si en sou l'amfitrió, autentiqueu-vos. Altrament, espereu que arribi l'amfitrió.", + "WaitingForHostTitle": "S'està esperant l'amfitrió…", + "Yes": "Sí", + "accessibilityLabel": { + "liveStreaming": "Transmissió en directe" + }, + "add": "Afegeix", + "addMeetingNote": "Afegiu una nota sobre aquesta reunió", + "addOptionalNote": "Afegeix una nota (opcional):", + "allow": "Permet", + "alreadySharedVideoMsg": "Un altre participant està compartint un vídeo. Aquesta conferència només permet compartir un vídeo a la vegada.", + "alreadySharedVideoTitle": "Només es permet un vídeo compartit a la vegada", + "applicationWindow": "Finestra de l'aplicació", + "authenticationRequired": "Cal autenticació", + "cameraConstraintFailedError": "La càmera no satisfà algun dels requeriments.", + "cameraNotFoundError": "No s'ha trobat cap càmera.", + "cameraNotSendingData": "No podem accedir a la càmera. Comproveu si alguna una aplicació l'està usant, seleccioneu un altre aparell en el menú de configuració o intenteu de recarregar l'aplicació.", + "cameraNotSendingDataTitle": "No s'ha pogut accedir a la càmera", + "cameraPermissionDeniedError": "No heu concedit permís per a usar la càmera. Encara podeu unir-vos a la conferència però els altres participants no us veuran. Useu el botó de la càmera en la barra d'adreces per a corregir això.", + "cameraTimeoutError": "No s'ha pogut iniciar la font de vídeo. S'ha excedit el temps d'espera!", + "cameraUnknownError": "Per algun motiu desconegut, no es pot usar la càmera.", + "cameraUnsupportedResolutionError": "La vostra càmera no permet la resolució de vídeo requerida.", + "close": "Tanca", + "conferenceDisconnectMsg": "Potser voleu comprovar la connexió a la xarxa. Es tornarà a connectar en {{seconds}} segons…", + "conferenceDisconnectTitle": "Esteu desconnectat.", + "conferenceReloadMsg": "Intentem de corregir-ho. Tornem a connectar en {{seconds}} segons…", + "conferenceReloadTitle": "Malauradament, alguna cosa no ha anat bé.", + "confirm": "Confirmo", + "confirmNo": "No", + "confirmYes": "Sí", + "connectError": "Vaja! Alguna cosa no ha anat bé i no podem connectar a la conferència.", + "connectErrorWithMsg": "Vaja! Alguna cosa no ha anat bé i no podem connectar a la conferència: {{msg}}", + "connecting": "S'està connectant", + "contactSupport": "Contacte amb l'assistència", + "copied": "S'ha copiat", + "copy": "Copia", + "dismiss": "Descarta", + "displayNameRequired": "Hola! Com us dieu?", + "done": "Fet", + "e2eeDescription": "El xifratge d'extrem a extrem és EXPERIMENTAL. Tingueu present que l'activació del xifratge d'extrem a extrem desactivarà serveis proporcionats en la banda del servidor, com ara: enregistrament, transmissió en directe i participació telefònica. A més, la reunió només funcionarà per a les persones que usin navegadors que compatibles amb fluxos inseribles.", + "e2eeDisabledDueToMaxModeDescription": "No es pot activar el xifratge d'extrem a extrem a causa del gran nombre de participants en la conferència.", + "e2eeLabel": "Activa el xifratge d'extrem a extrem", + "e2eeWarning": "ATENCIÓ: sembla que no tots els participants d'aquesta reunió tenen suport per a xifratge d'extrem a extrem. Si l'activeu no podran veure-us ni escoltar-vos.", + "e2eeWillDisableDueToMaxModeDescription": "ATENCIÓ: el xifratge d'extrem a extrem es desactivarà automàticament si s'uneixen més participants a la conferència.", + "embedMeeting": "Reunió inserida", + "enterDisplayName": "Introduïu el vostre nom aquí", + "error": "Error", + "gracefulShutdown": "El nostre servei ara mateix és en manteniment. Torneu-ho a intentar més tard.", + "grantModeratorDialog": "Esteu segur que voleu concedir drets de moderador a {{participantName}}?", + "grantModeratorTitle": "Concedeix drets de moderador", + "hide": "Amaga", + "hideShareAudioHelper": "No tornis a mostrar aquest diàleg", + "incorrectPassword": "El nom o la contrasenya no són correctes", + "incorrectRoomLockPassword": "La contrasenya no és correcta", + "internalError": "Vaja! Alguna cosa no ha anat bé. S'ha produït l'error següent: {{error}}", + "internalErrorTitle": "Error intern", + "kickMessage": "Per a més detalls, podeu contactar amb {{participantDisplayName}}.", + "kickParticipantButton": "Expulsa", + "kickParticipantDialog": "Esteu segur que voleu expulsar aquest participant?", + "kickParticipantTitle": "Voleu expulsar aquest participant?", + "kickTitle": "Ep! {{participantDisplayName}} us ha expulsat de la reunió", + "linkMeeting": "Enllaça la reunió", + "linkMeetingTitle": "Enllaça la reunió a Salesforce", + "liveStreaming": "Transmissió en directe", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "No és possible mentre l'enregistrament estigui actiu", + "localUserControls": "Controls locals d'usuari", + "lockMessage": "No s'ha pogut blocar la conferència.", + "lockRoom": "Afegeix una $t(lockRoomPassword) de reunió", + "lockTitle": "El blocatge ha fallat", + "login": "Inicia sessió", + "logoutQuestion": "Esteu segur de voler tancar la sessió i aturar la conferència?", + "logoutTitle": "Tanca la sessió", + "maxUsersLimitReached": "S'ha assolit el nombre màxim de participants. La conferència és plena. Contacteu amb el propietari de la reunió o torneu-ho a intentar més tard!", + "maxUsersLimitReachedTitle": "S'ha assolit el límit màxim de participants", + "micConstraintFailedError": "La càmera no satisfà algun dels requeriments.", + "micNotFoundError": "No s'ha trobat cap micròfon.", + "micNotSendingData": "Aneu a la configuració de l'ordinador per a desactivar el silenci del micròfon i ajusteu-ne el nivell", + "micNotSendingDataTitle": "El micròfon està silenciat en la configuració del sistema", + "micPermissionDeniedError": "No heu concedit permís per a usar el micròfon. Encara podeu unir-vos a la conferència, però els altres participants no us sentiran. Useu el botó de micròfon en la barra d'adreces per a corregir això.", + "micTimeoutError": "No s'ha pogut iniciar la font d'àudio. S'ha excedit el temps d'espera!", + "micUnknownError": "No es pot usar el micròfon per alguna raó desconeguda.", + "moderationAudioLabel": "Permet als assistents d'activar el seu micròfon", + "moderationVideoLabel": "Permet als assistents d'activar el seu vídeo", + "muteEveryoneDialog": "Els participants poden activar el micròfon en qualsevol moment.", + "muteEveryoneDialogModerationOn": "Els participants poden enviar una sol·licitud per a parlar en qualsevol moment.", + "muteEveryoneElseDialog": "Una vegada silenciats, no podreu activar-ne els micròfons, però podran activar-lo ells mateixos en qualsevol moment.", + "muteEveryoneElseTitle": "Voleu silenciar tothom excepte {{whom}}?", + "muteEveryoneElsesVideoDialog": "Una vegada s'ha desactivat la càmera, no la podreu tornar a activar, però els participants la poden tornar a activar en qualsevol moment.", + "muteEveryoneElsesVideoTitle": "Voleu aturar el vídeo de tothom excepte {{whom}}?", + "muteEveryoneSelf": "vós mateix", + "muteEveryoneStartMuted": "Tothom comença en silenci a partir d'ara", + "muteEveryoneTitle": "Voleu silenciar tothom?", + "muteEveryonesVideoDialog": "Els participants poden activar el seu vídeo en qualsevol moment.", + "muteEveryonesVideoDialogModerationOn": "Els participants poden enviar una sol·licitud per a activar el seu vídeo en qualsevol moment.", + "muteEveryonesVideoDialogOk": "Desactiva", + "muteEveryonesVideoTitle": "Voleu aturar el vídeo de tothom?", + "muteParticipantBody": "No podreu activar-ne els micròfons, però ells podran activar el micròfon propi en qualsevol moment.", + "muteParticipantButton": "Silencia", + "muteParticipantsVideoBody": "No podreu reactivar la càmera, però l'usuari sí que podrà reactivar-la en qualsevol moment.", + "muteParticipantsVideoBodyModerationOn": "No podreu tornar a activar la càmera i ell tampoc podrà fer-ho.", + "muteParticipantsVideoButton": "Atura el vídeo", + "muteParticipantsVideoDialog": "Confirmeu que voleu apagar la càmera d'aquest participant? No podreu tornar a activar-la, però podrà tornar a activar-la en qualsevol moment.", + "muteParticipantsVideoDialogModerationOn": "Esteu segur que voleu apagar la càmera d'aquest participant? No podreu tornar-la a activar, i ell tampoc podrà fer-ho.", + "muteParticipantsVideoTitle": "Voleu desactivar la càmera d'aquest participant?", + "noDropboxToken": "No hi ha cap testimoni de Dropbox vàlid", + "password": "Contrasenya", + "passwordLabel": "Algun participant ha blocat la reunió. Introduïu la $t(lockRoomPassword) per a unir-vos-hi.", + "passwordNotSupported": "No és possible definir una $t(lockRoomPassword).", + "passwordNotSupportedTitle": "No se suporta la $t(lockRoomPassword)", + "passwordRequired": "Es requereix una $t(lockRoomPassword)", + "permissionCameraRequiredError": "Es requereix el permís de la càmera per a participar en conferències amb vídeo. Concediu-lo a Configuració", + "permissionErrorTitle": "Cal permís", + "permissionMicRequiredError": "Es requereix el permís del micròfon per a participar en conferències amb àudio. Concediu-lo a Configuració", + "popupError": "El vostre navegador bloca les finestres emergents d'aquest lloc. Habiliteu les finestres emergents a la configuració de seguretat del navegador i torneu-ho a intentar.", + "popupErrorTitle": "Finestres emergents blocades", + "readMore": "més", + "recentlyUsedObjects": "Els objectes que heu usat recentment", + "recording": "Enregistrament", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "No és possible mentre hi ha una transmissió en directe activa", + "rejoinNow": "Torna a entrar ara", + "remoteControlAllowedMessage": "{{user}} ha acceptat la petició de control remot!", + "remoteControlDeniedMessage": "{{user}} ha rebutjat la petició de control remot!", + "remoteControlErrorMessage": "S'ha produït un error en intentar sol·licitar a {{user}} permisos de control remot!", + "remoteControlRequestMessage": "Voleu permetre a {{user}} de controlar remotament el vostre escriptori?", + "remoteControlShareScreenWarning": "Tingueu present que si pitgeu «Permet» compartireu la vostra pantalla!", + "remoteControlStopMessage": "La sessió de control remot ha finalitzat!", + "remoteControlTitle": "Control d'escriptori remot", + "remoteUserControls": "Controls remots d'usuari de {{username}}", + "removePassword": "Elimina la $t(lockRoomPassword)", + "removeSharedVideoMsg": "Esteu segur que voleu eliminar el vídeo compartit?", + "removeSharedVideoTitle": "Elimina aquest vídeo compartit", + "reservationError": "S'ha produït un error de reserva de sistema", + "reservationErrorMsg": "Codi d'error: {{code}}, missatge: {{msg}}", + "retry": "Torna a intentar-ho", + "screenSharingAudio": "Comparteix l'àudio", + "screenSharingFailed": "Ep! Alguna cosa ha anat malament, no hem pogut iniciar la compartició de pantalla!", + "screenSharingFailedTitle": "La compartició de pantalla ha fallat!", + "screenSharingPermissionDeniedError": "Ep! Alguna cosa ha anat malament amb els permisos de compartició de pantalla. Torna a carregar-la i prova-ho una altra vegada.", + "searchInSalesforce": "Cerca a Salesforce", + "searchResults": "Resultats de la cerca({{count}})", + "searchResultsDetailsError": "Alguna cosa ha anat malament en recuperar les dades del propietari.", + "searchResultsError": "Alguna cosa ha anat malament en recuperar les dades.", + "searchResultsNotFound": "No s'ha trobat cap resultat.", + "searchResultsTryAgain": "Proveu usant paraules clau alternatives.", + "sendPrivateMessage": "Fa poc que heu rebut un missatge privat. Voleu respondre'l de forma privada, o voleu enviar el missatge al grup?", + "sendPrivateMessageCancel": "Envia'l al grup", + "sendPrivateMessageOk": "Envia'l en privat", + "sendPrivateMessageTitle": "Voleu enviar-lo en privat?", + "serviceUnavailable": "El servei no és disponible", + "sessTerminated": "La trucada ha finalitzat", + "sessionRestarted": "La trucada s'ha reiniciat a causa d'un problema de connexió.", + "shareAudio": "Continua", + "shareAudioTitle": "Com compartir l'àudio", + "shareAudioWarningD1": "cal que atureu la compartició de pantalla abans de compartir l'àudio.", + "shareAudioWarningD2": "cal que reinicieu la compartició de pantalla i marqueu l'opció «Comparteix l'àudio».", + "shareAudioWarningH1": "Si voleu compartir només l'àudio:", + "shareAudioWarningTitle": "Cal que atureu la compartició de pantalla abans de compartir l'àudio", + "shareMediaWarningGenericH2": "Si voleu compartir la pantalla i l'àudio", + "shareScreenWarningD1": "heu d'aturar l'ús compartit d'àudio abans de compartir la pantalla.", + "shareScreenWarningD2": "heu d'aturar l'ús compartit d'àudio, iniciar l'ús compartit de la pantalla i marcar l'opció «Comparteix l'àudio».", + "shareScreenWarningH1": "Si només voleu compartir la pantalla:", + "shareScreenWarningTitle": "Cal que atureu l'ús compartit d'àudio abans de compartir la pantalla", + "shareVideoLinkError": "Proporcioneu un enllaç de vídeo correcte.", + "shareVideoTitle": "Comparteix el vídeo", + "shareYourScreen": "Comparteix la pantalla", + "shareYourScreenDisabled": "S'ha inhabilitat la compartició de pantalla.", + "sharedVideoDialogError": "Error: URL no vàlid", + "sharedVideoLinkPlaceholder": "Enllaç de YouTube o enllaç directe del vídeo", + "show": "Mostra", + "start": "Inicia", + "startLiveStreaming": "Inicia la transmissió en directe", + "startRecording": "Inicia l'enregistrament", + "startRemoteControlErrorMessage": "S'ha produït un error en intentar iniciar la sessió de control remot!", + "stopLiveStreaming": "Atura la transmissió en directe", + "stopRecording": "Atura l'enregistrament", + "stopRecordingWarning": "Esteu segur de voler aturar l'enregistrament?", + "stopStreamingWarning": "Esteu segur de voler aturar la transmissió en directe?", + "streamKey": "Clau de transmissió en directe", + "thankYou": "Gràcies per usar {{appName}}!", + "token": "identificador", + "tokenAuthFailed": "No esteu autoritzat a unir-vos a aquesta trucada.", + "tokenAuthFailedTitle": "L'autenticació ha fallat", + "transcribing": "Transcripció", + "unlockRoom": "Elimina la $t(lockRoomPassword) de la reunió", + "user": "Usuari", + "userIdentifier": "Identificador d'usuari", + "userPassword": "Contrasenya d'usuari", + "videoLink": "Enllaç del vídeo", + "viewUpgradeOptions": "Mostra les opcions d'actualització", + "viewUpgradeOptionsContent": "Per a obtenir accés il·limitat a funcions prèmium com ara enregistrament, transcripcions, reproducció en temps real RTMP i més, cal que actualitzeu el pla.", + "viewUpgradeOptionsTitle": "Heu descobert una funció premium!", + "yourEntireScreen": "La pantalla sencera" + }, + "documentSharing": { + "title": "Document compartit" + }, + "e2ee": { + "labelToolTip": "La comunicació d'àudio i vídeo en aquesta trucada és xifrada d'extrem a extrem" + }, + "embedMeeting": { + "title": "Insereix aquesta reunió" + }, + "feedback": { + "average": "Mitjana", + "bad": "Dolenta", + "detailsLabel": "Expliqueu-nos més sobre això.", + "good": "Bona", + "rateExperience": "Valoreu l'experiència de reunió", + "star": "Estrella", + "veryBad": "Molt dolenta", + "veryGood": "Molt bona" + }, + "giphy": { + "noResults": "No s'ha trobat cap resultat :(", + "search": "Cerca a GIPHY" + }, + "helpView": { + "title": "Centre d'ajuda" + }, + "incomingCall": { + "answer": "Resposta", + "audioCallTitle": "Trucada entrant", + "decline": "Rebutja", + "productLabel": "de Jitsi Meet", + "videoCallTitle": "Videotrucada entrant" + }, + "info": { + "accessibilityLabel": "Mostra la informació", + "addPassword": "Afegeix una $t(lockRoomPassword)", + "cancelPassword": "Cancel·la $t(lockRoomPassword)", + "conferenceURL": "Enllaç:", + "copyNumber": "Copia el número", + "country": "País", + "dialANumber": "Per a unir-vos a la reunió, marqueu un d'aquests números i aleshores introduïu el PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "El marcatge ara mateix no és permès.", + "dialInNumber": "Marcatge:", + "dialInSummaryError": "S'ha produït un error en obtenir la informació de marcatge. Torneu-ho a intentar més tard.", + "dialInTollFree": "Sense peatges", + "genericError": "Vaja, alguna cosa no ha anat bé.", + "inviteLiveStream": "Per a veure la transmissió en directe d'aquesta reunió, feu clic en aquest enllaç: {{url}}", + "invitePhone": "Per a unir-vos per telèfon, toqueu això: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Cerqueu un número de marcatge diferent?\nVegeu els números de marcatge de la reunió: {{url}}\n\n\nSi també truqueu via un telèfon de reunió, uniu-vos-hi sense connectar l'àudio: {{silentUrl}}", + "inviteSipEndpoint": "Per a unir-vos amb l'adreça SIP, introduïu: {{sipUri}}", + "inviteTextiOSInviteUrl": "Feu clic a l'enllaç següent per a unir-vos: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Si esteu marcant a través d'un telèfon de reunió, feu servir aquest enllaç per a unir-vos sense connectar-vos a l'àudio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} us convida a una reunió.", + "inviteTextiOSPhone": "Per a unir-vos per telèfon, feu servir aquest número: {{number}},,{{conferenceID}}#. Si cerqueu un número diferent, aquesta és la llista completa: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Us han convidat a unir-vos a una reunió.", + "inviteURLFirstPartPersonal": "{{name}} us convida a una reunió.\n", + "inviteURLSecondPart": "\nUniu-vos a la reunió:\n{{url}}\n", + "label": "Informació de marcatge", + "liveStreamURL": "Transmissió en directe:", + "moreNumbers": "Més números", + "noNumbers": "Sense números de marcatge.", + "noPassword": "Cap", + "noRoom": "No s'ha indicat cap sala a què marcar.", + "numbers": "Números de marcatge", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Heu arribat al límit del vostre pla.", + "sip": "Adreça SIP", + "title": "Comparteix", + "tooltip": "Comparteix l'enllaç i la informació de marcatge d'aquesta reunió", + "upgradeOptions": "Vegeu les opcions d'actualització" + }, + "inlineDialogFailure": { + "msg": "Vam ensopegar una mica.", + "retry": "Torneu-ho a intentar", + "support": "Assistència", + "supportMsg": "Si continua passant, feu-nos-ho saber" + }, + "inviteDialog": { + "alertText": "No s'ha pogut convidar alguns participants.", + "header": "Convida", + "searchCallOnlyPlaceholder": "Introduïu el número de telèfon", + "searchPeopleOnlyPlaceholder": "Cerca participants", + "searchPlaceholder": "Participant o número de telèfon", + "send": "Envia" + }, + "jitsiHome": "Logotip de {{logo}}, enllaça a la pàgina d'inici", + "keyboardShortcuts": { + "focusLocal": "Focus al vostre vídeo", + "focusRemote": "Focus en el vídeo d'una altra persona", + "fullScreen": "Entra o surt de la pantalla completa", + "giphyMenu": "Mostra o amaga el menú GIPHY", + "keyboardShortcuts": "Dreceres de teclat", + "localRecording": "Mostra o amaga els controls d'enregistrament local", + "mute": "Silencia o activa el so", + "pushToTalk": "Premeu per a parlar", + "raiseHand": "Aixeca o abaixa la mà", + "showSpeakerStats": "Mostra les estadístiques de l'interlocutor", + "toggleChat": "Obre o tanca el xat", + "toggleFilmstrip": "Mostra o amaga les miniatures de vídeo", + "toggleParticipantsPane": "Mostra o amaga el panell dels participants", + "toggleScreensharing": "Canvia entre la càmera i la compartició de pantalla", + "toggleShortcuts": "Mostra o amaga les dreceres de teclat", + "videoMute": "Inicia o atura la càmera" + }, + "largeVideo": { + "screenIsShared": "Esteu compartint la pantalla", + "showMeWhatImSharing": "Mostra'm què estic compartint" + }, + "liveStreaming": { + "busy": "Treballem per a alliberar recursos de transmissió. Torneu-ho a intentar en uns minuts.", + "busyTitle": "Ara mateix, tots els reproductors són ocupats", + "changeSignIn": "Canvia entre comptes.", + "choose": "Trieu una transmissió en directe", + "chooseCTA": "Trieu una opció de transmissió. Ara mateix teniu sessió iniciada com a {{email}}.", + "enterStreamKey": "Introduïu la clau YouTube de transmissió en directe aquí.", + "error": "La transmissió en directe ha fallat. Torneu-ho a intentar més tard.", + "errorAPI": "S'ha produït un error en accedir a les vostres emissions de Youtube. Torneu a iniciar sessió una altra vegada.", + "errorLiveStreamNotEnabled": "La transmissió en directe no està activada a ̣{{email}}. Activeu-la o inicieu sessió en un compte que tingui la transmissió en directe activada.", + "expandedOff": "S'ha aturat la transmissió en directe", + "expandedOn": "Ara mateix, la reunió s'està transmetent a Youtube.", + "expandedPending": "S'ha iniciat la transmissió en directe…", + "failedToStart": "No s'ha pogut iniciar la transmissió en directe", + "getStreamKeyManually": "No hem pogut obtenir cap transmissió en directe. Intenteu d'aconseguir la clau de transmissió en directe del YouTube.", + "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", + "onBy": "{{name}} ha iniciat la transmissió en directe", + "pending": "S'està iniciant la transmissió en directe…", + "serviceName": "Servei de transmissió en directe", + "sessionAlreadyActive": "Aquesta sessió ja s'està enregistrant o s'està emetent en directe.", + "signIn": "Inicia sessió amb Google", + "signInCTA": "Inicieu sessió o introduïu la clau de transmissió en directe de YouTube.", + "signOut": "Tanca la sessió", + "signedInAs": "Teniu sessió iniciada com a:", + "start": "Inicia la transmissió en directe", + "streamIdHelp": "Què és això?", + "title": "Transmissió en directe", + "unavailableTitle": "La transmissió en directe no és disponible", + "youtubeTerms": "Condicions de servei de YouTube" + }, + "lobby": { + "allow": "Permet", + "backToKnockModeButton": "Demaneu per a unir-vos", + "chat": "Xat", + "dialogTitle": "Mode de sala d'espera", + "disableDialogContent": "El mode de sala d'espera es troba activat. Aquesta funcionalitat evita que els participants no desitjats puguin unir-se a la reunió. Voleu desactivar-ho?", + "disableDialogSubmit": "Desactiva", + "emailField": "Introduïu la vostra adreça electrònica", + "enableDialogPasswordField": "Defineix una contrasenya (opcional)", + "enableDialogSubmit": "Activa", + "enableDialogText": "El mode de sala d'espera us permet protegir la reunió autoritzant-ne l'entrada només a les persones mitjançant una aprovació formal d'un moderador.", + "enterPasswordButton": "Introduïu la contrasenya de la reunió", + "enterPasswordTitle": "Introduïu la contrasenya per a unir-vos a la reunió", + "errorMissingPassword": "Introduïu la contrasenya de la reunió", + "invalidPassword": "La contrasenya no és vàlida", + "joinRejectedMessage": "La vostra sol·licitud ha estat rebutjada per un moderador.", + "joinRejectedTitle": "S'ha rebutjat la petició d'unir-s'hi.", + "joinTitle": "Entra a la reunió", + "joinWithPasswordMessage": "S'està intentant unir-s'hi amb contrasenya, espereu…", + "joiningMessage": "Us unireu a la reunió de seguida que algú accepti la sol·licitud", + "joiningTitle": "S'ha demanat per a entrar a la reunió…", + "joiningWithPasswordTitle": "Afegeix-m'hi amb contrasenya…", + "knockButton": "Demana d'unir-se", + "knockTitle": "Algú vol unir-se a la reunió", + "knockingParticipantList": "Llista de participants que piquen per a entrar", + "lobbyChatStartedNotification": "{{moderator}} ha començat un xat en la sala d'espera amb {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} ha començat un xat en la sala d'espera amb vós.", + "nameField": "Introduïu el vostre nom", + "notificationLobbyAccessDenied": "{{originParticipantName}} ha rebutjat l'entrada de {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} ha acceptat l'entrada de {{targetParticipantName}}", + "notificationLobbyDisabled": "{{originParticipantName}} ha desactivat la sala d'espera", + "notificationLobbyEnabled": "{{originParticipantName}} ha desactivat la sala d'espera", + "notificationTitle": "Sala d'espera", + "passwordField": "Introduïu la contrasenya de la reunió", + "passwordJoinButton": "Entra", + "title": "Sala d'espera", + "toggleLabel": "Activa la sala d'espera" + }, + "localRecording": { + "clientState": { + "off": "Inactiu", + "on": "Actiu", + "unknown": "Desconegut" + }, + "dialogTitle": "Controls d'enregistrament local", + "duration": "Durada", + "durationNA": "N/D", + "encoding": "Codificació", + "label": "ENREG LOC", + "labelToolTip": "L'enregistrament local està funcionant", + "localRecording": "Enregistrament local", + "me": "Jo", + "messages": { + "engaged": "L'enregistrament local funciona.", + "finished": "La sessió d'enregistrament {{token}} ha finalitzat. Envieu el fitxer enregistrat al moderador.", + "finishedModerator": "La sessió d'enregistrament {{token}} ha finalitzat. L'enregistrament de la part local s'ha desat. Demaneu als altres participants que enviïn els seus enregistraments.", + "notModerator": "No sou el moderador. No podeu iniciar ni aturar un enregistrament local." + }, + "moderator": "Moderador", + "no": "No", + "participant": "Participant", + "participantStats": "Estadístiques del participant", + "selectTabTitle": "🎥 Trieu aquesta pestanya per a enregistrar", + "sessionToken": "Identificador de la sessió", + "start": "Inicia l'enregistrament", + "stop": "Atura l'enregistrament", + "yes": "Sí" + }, + "lockRoomPassword": "contrasenya", + "lockRoomPasswordUppercase": "Contrasenya", + "lonelyMeetingExperience": { + "button": "Convideu altres persones", + "youAreAlone": "Sou l'únic participant de la reunió" + }, + "me": "jo", + "notify": { + "OldElectronAPPTitle": "Vulnerabilitat de seguretat!", + "allowAction": "Permet", + "allowedUnmute": "Podeu activar el micròfon, iniciar la càmera o compartir la pantalla.", + "audioUnmuteBlockedDescription": "L'activació del micròfon s'ha blocat temporalment per limitacions del sistema.", + "audioUnmuteBlockedTitle": "L'activació del so del micròfon està blocada!", + "chatMessages": "Missatges de xat", + "connectedOneMember": "{{name}} s'ha unit a la reunió", + "connectedThreePlusMembers": "{{name}} i molts altres s'han unit a la reunió", + "connectedTwoMembers": "{{first}} i {{second}} s'han unit a la reunió", + "dataChannelClosed": "Qualitat del vídeo deteriorada", + "dataChannelClosedDescription": "El canal pont s'ha desconnectat i per la qualitat de vídeo està limitada al valor inferior.", + "disconnected": "desconnectat", + "displayNotifications": "Mostra les notificacions sobre", + "focus": "Focus de la conferència", + "focusFail": "{{component}} no és disponible, torneu a intentar en {{ms}} segons", + "gifsMenu": "GIPHY", + "groupTitle": "Notificacions", + "hostAskedUnmute": "El moderador vol que parleu", + "invitedOneMember": "S'ha convidat {{name}}", + "invitedThreePlusMembers": "S'han convidat {{name}} i {{count}} participants més", + "invitedTwoMembers": "S'han convidat {{first}} i {{second}}", + "kickParticipant": "{{kicker}} ha expulsat {{kicked}}", + "leftOneMember": "{{name}} ha sortit de la reunió", + "leftThreePlusMembers": "{{name}} i molts d'altres han sortit de la reunió", + "leftTwoMembers": "{{first}} i {{second}} han sortit de la reunió", + "linkToSalesforce": "Enllaç a Salesforce", + "linkToSalesforceDescription": "Podeu enllaçar el resum de la reunió a un objecte Salesforce.", + "linkToSalesforceError": "No s'ha pogut enllaçar la reunió a Salesforce", + "linkToSalesforceKey": "Enllaça aquesta reunió", + "linkToSalesforceProgress": "S'està enllaçant la reunió a Salesforce…", + "linkToSalesforceSuccess": "La reunió s'ha enllaçat a Salesforce", + "localRecordingStarted": "{{name}} ha iniciat un enregistrament local.", + "localRecordingStopped": "{{name}} ha aturat has stopped a local recording.", + "me": "Jo", + "moderationInEffectCSDescription": "Aixequeu la mà si voleu compartir la pantalla.", + "moderationInEffectCSTitle": "El moderador ha blocat la compartició de pantalla", + "moderationInEffectDescription": "Aixequeu la mà si voleu parlar.", + "moderationInEffectTitle": "El moderador us ha silenciat el micròfon", + "moderationInEffectVideoDescription": "Aixequeu la mà si voleu iniciar la càmera.", + "moderationInEffectVideoTitle": "El moderador us ha blocat la càmera", + "moderationRequestFromModerator": "L'amfitrió vol que activeu el so", + "moderationRequestFromParticipant": "Vol parlar", + "moderationStartedTitle": "Ha començat la moderació", + "moderationStoppedTitle": "S'ha aturat la moderació", + "moderationToggleDescription": "per {{participantDisplayName}}", + "moderator": "Ara sou el moderador", + "muted": "Heu iniciat una conversa silenciada.", + "mutedRemotelyDescription": "Sempre podeu activar el micròfon quan hàgiu de parlar. Torneu a silenciar-lo quan hàgiu acabat per a mantenir el soroll lluny de la reunió.", + "mutedRemotelyTitle": "{{participantDisplayName}} us ha silenciat!", + "mutedTitle": "Esteu silenciat!", + "newDeviceAction": "Usa", + "newDeviceAudioTitle": "S'ha detectat un aparell d'àudio nou", + "newDeviceCameraTitle": "S'ha detectat una càmera nova", + "noiseSuppressionDesktopAudioDescription": "La supressió de soroll no es pot activar mentre es comparteix l'àudio de l'escriptori. Desactiveu-lo i proveu una altra vegada.", + "noiseSuppressionFailedTitle": "No s'ha pogut iniciar la supressió de soroll", + "noiseSuppressionNoTrackDescription": "Abans, activeu el vostre micròfon.", + "noiseSuppressionStereoDescription": "Ara per ara, no és possible la supressió de soroll d'àudio en estèreo", + "oldElectronClientDescription1": "Sembla que useu una versió antiga del client Jitsi Meet, que té vulnerabilitats de seguretat conegudes. Assegureu-vos d'actualitzar-lo", + "oldElectronClientDescription2": "última construcció", + "oldElectronClientDescription3": "ara!", + "participantWantsToJoin": "Vol unir-se a la reunió", + "participantsWantToJoin": "Volen unir-se a la reunió", + "passwordRemovedRemotely": "Un altre participant ha eliminat $t(lockRoomPasswordUppercase)", + "passwordSetRemotely": "Un altre participant ha establert la $t(lockRoomPassword)", + "raiseHandAction": "Aixeca la mà", + "raisedHand": "Vol parlar.", + "raisedHands": "{{participantName}} i {{raisedHands}} persones més", + "reactionSounds": "Desactiva el so", + "reactionSoundsForAll": "Desactiva el so per a tothom", + "screenShareNoAudio": "No s'ha marcat la compartició d'àudio en la pantalla de selecció de la finestra.", + "screenShareNoAudioTitle": "No s'ha pogut compartir l'àudio del sistema!", + "selfViewTitle": "Sempre podeu activar la vista pròpia des de la configuració", + "somebody": "Algú", + "startSilentDescription": "Torneu a entrar per a activar l'àudio", + "startSilentTitle": "Us hi heu unit sense cap sortida d'àudio!", + "suboptimalBrowserWarning": "Ens sap greu que l'experiència de reunió no serà gaire bona. Cerquem maneres de millorar-ho, però fins aleshores, proveu algun dels navegadors completament compatibles.", + "suboptimalExperienceTitle": "Avís del navegador", + "unmute": "Activa el so", + "videoMutedRemotelyDescription": "Sempre la podeu activar de nou.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} us ha apagat el vídeo", + "videoUnmuteBlockedDescription": "L'activació de la càmera i la compartició d'escriptori s'han blocat temporalment per limitacions del sistema.", + "videoUnmuteBlockedTitle": "L'activació de la càmera i la compartició d'escriptori estan blocades!", + "viewLobby": "Mostra la sala d'espera", + "waitingParticipants": "{{waitingParticipants}} persones" + }, + "participantsPane": { + "actions": { + "admit": "Admet", + "admitAll": "Admet tothom", + "allow": "Permet als assistents:", + "allowVideo": "Permet el vídeo", + "askUnmute": "Demanar l'activació el micròfon", + "audioModeration": "Activar el micròfon ells mateixos", + "blockEveryoneMicCamera": "Blocar el micròfon i la càmera de qualsevol", + "invite": "Convidar algú", + "moreModerationActions": "Més opcions de moderació", + "moreModerationControls": "Més controls de moderació", + "moreParticipantOptions": "Més opcions dels participants", + "mute": "Silenciar", + "muteAll": "Silencia tothom", + "muteEveryoneElse": "Silenciar tothom", + "reject": "Rebuja", + "stopEveryonesVideo": "Atura el vídeo a tothom", + "stopVideo": "Atura el vídeo", + "unblockEveryoneMicCamera": "Desbloquejar el micròfon i la càmera de tothom", + "videoModeration": "Activa'n el vídeo" + }, + "close": "Tanca", + "headings": { + "lobby": "Sala d'espera ({{count}})", + "participantsList": "Participants de la reunió: ({{count}})", + "waitingLobby": "A la sala d'espera ({{count}})" + }, + "search": "Cerca participants", + "title": "Participants" + }, + "passwordDigitsOnly": "Fins a {{number}} dígits", + "passwordSetRemotely": "Establerta per un altre participant", + "pinnedParticipant": "El participant està fixat", + "polls": { + "answer": { + "skip": "Omet", + "submit": "Tramet" + }, + "by": "Per {{ name }}", + "create": { + "addOption": "Afegeix una opció", + "answerPlaceholder": "Opció {{index}}", + "cancel": "Cancel·la", + "create": "Crea una enquesta", + "pollOption": "Opció d'enquesta {{index}}", + "pollQuestion": "Pregunta de l'enquesta", + "questionPlaceholder": "Feu una pregunta", + "removeOption": "Elimina l'opció", + "send": "Envia" + }, + "errors": { + "notUniqueOption": "Les opcions han de ser úniques" + }, + "notification": { + "description": "Obre la pestanya de les enquestes per a votar", + "title": "S'ha afegit una nova enquesta en aquesta reunió" + }, + "results": { + "changeVote": "Canvia el vot", + "empty": "Encara no hi ha cap enquesta en la reunió. Comenceu una enquesta aquí!", + "hideDetailedResults": "Amaga els detalls", + "showDetailedResults": "Mostra els detalls", + "vote": "Vota" + } + }, + "poweredby": "funciona amb", + "prejoin": { + "audioAndVideoError": "Error d'àudio i vídeo:", + "audioDeviceProblem": "Hi ha un problema amb el vostre aparell d'àudio", + "audioOnlyError": "Error d'àudio:", + "audioTrackError": "No s'ha pogut crear la pista d'àudio.", + "callMe": "Truca'm", + "callMeAtNumber": "Truca'm a aquest número:", + "calling": "S'està trucant", + "configuringDevices": "S'estan configurant els aparells…", + "connectedWithAudioQ": "Heu connectat amb àudio?", + "connection": { + "good": "La vostra connexió a internet sembla bona!", + "nonOptimal": "La vostra connexió a internet no és òptima", + "poor": "Teniu una connexió a internet de poca qualitat" + }, + "connectionDetails": { + "audioClipping": "És esperable que es talli l'àudio.", + "audioHighQuality": "És esperable que l'àudio tingui una qualitat excel·lent.", + "audioLowNoVideo": "Es esperable que la qualitat de l'àudio sigui baixa i no hi hagi vídeo.", + "goodQuality": "Increïble! Teniu una qualitat multimèdia fantàstica.", + "noMediaConnectivity": "No hem pogut trobar un camí per a establir la connectivitat multimèdia per a aquesta prova. Això, habitualment, és a causa d'un tallafoc o NAT.", + "noVideo": "És esperable que el vídeo sigui terrible.", + "undetectable": "Si encara no podeu fer trucades al navegador, us recomanem que verifiqueu que els auriculars, el micròfon i la càmera estan connectats i configurats correctament, que heu garantit permisos al navegador per a usar el micròfon i la càmera, i que el navegador està actualitzat a l'última versió. Si encara teniu problemes per a trucar, podeu contactar amb el desenvolupador de l'aplicació web.", + "veryPoorConnection": "És esperable que la qualitat de la trucada sigui realment terrible.", + "videoFreezing": "És esperable que el vídeo es congeli, passi a negre i aparegui pixelat.", + "videoHighQuality": "És esperable que el vídeo tingui una bona qualitat.", + "videoLowQuality": "És esperable que el vídeo sigui de poca qualitat en termes de fotogrames per segon i resolució.", + "videoTearing": "És esperable que el vídeo aparegui pixelat o amb defectes visuals." + }, + "copyAndShare": "Copia i comparteix l'enllaç de la reunió", + "dialInMeeting": "Marca la reunió", + "dialInPin": "Marqueu la trucada i introduïu el codi PIN:", + "dialing": "Marcatge", + "doNotShow": "No mostris més aquesta pantalla", + "errorDialOut": "No s'ha pogut marcar", + "errorDialOutDisconnected": "No s'ha pogut marcar. S'ha desconnectat", + "errorDialOutFailed": "No s'ha pogut trucar. La trucada ha fallat", + "errorDialOutStatus": "S'ha produït un error en obtenir l'estat del marcatge", + "errorMissingName": "Introduïu el vostre nom per a unir-vos a la reunió", + "errorNoPermissions": "Heu d'activar l'accés al micròfon i a la càmera", + "errorStatusCode": "S'ha produït un error en marcar, codi d'estat: {{status}}", + "errorValidation": "La validació del número ha fallat", + "iWantToDialIn": "Vull marcar-lo", + "initiated": "S'ha iniciat la trucada", + "joinAudioByPhone": "Entra amb àudio de telèfon", + "joinMeeting": "Entra a la reunió", + "joinMeetingInLowBandwidthMode": "Uneix-t'hi en mode de poca amplada de banda", + "joinWithoutAudio": "Entra sense àudio", + "keyboardShortcuts": "Activa les dreceres del teclat", + "linkCopied": "L'enllaç s'ha copiat al porta-retalls", + "lookGood": "El micròfon funciona correctament", + "or": "o", + "premeeting": "Prereunió", + "screenSharingError": "Error en compartir la pantalla:", + "startWithPhone": "Comença amb àudio de telèfon", + "videoOnlyError": "Error del vídeo:", + "videoTrackError": "No s'ha pogut crear la pista de vídeo.", + "viewAllNumbers": "mostra tots els números" + }, + "presenceStatus": { + "busy": "Ocupat", + "calling": "S'està trucant…", + "connected": "Connectat", + "connecting": "Està connectant…", + "connecting2": "Està connectant*…", + "disconnected": "Desconnectat", + "expired": "Ha expirat", + "ignored": "Ignorat", + "initializingCall": "S'està inicialitzant la trucada…", + "invited": "Convidat", + "rejected": "Rebutjat", + "ringing": "Està sonat…" + }, + "privacyView": { + "title": "Privadesa" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Indiqueu el nom visible", + "setEmailInput": "Introduïu una adreça electrònica", + "setEmailLabel": "Indiqueu l'adreça electrònica de Gravatar", + "title": "Perfil" + }, + "raisedHand": "Vull parlar", + "raisedHandsLabel": "Nombre de mans aixecades", + "record": { + "already": { + "linked": "La reunió ja està enllaçada amb aquest objecte de Salesforce." + }, + "type": { + "account": "Compte", + "contact": "Contacte", + "lead": "Principal", + "opportunity": "Oportunitat", + "owner": "Propietari" + } + }, + "recording": { + "authDropboxText": "Puja a Dropbox", + "availableSpace": "Espai disponible: {{spaceLeft}} MB (aproximadament {{duration}} minuts d'enregistrament)", + "beta": "BETA", + "busy": "Treballem per a alliberar recursos d'enregistrament. Torneu-ho a intentar en uns minuts.", + "busyTitle": "Tots els enregistradors estan ocupats", + "copyLink": "Copia l'enllaç", + "error": "L'enregistrament ha fallat. Torneu-ho a intentar més tard.", + "errorFetchingLink": "S'ha produït un error en obtenir l'enllaç de l'enregistrament.", + "expandedOff": "S'ha aturat l'enregistrament", + "expandedOn": "S'està enregistrant la reunió.", + "expandedPending": "S'ha iniciat l'enregistrament…", + "failedToStart": "No s'ha pogut iniciar l'enregistrament", + "fileSharingdescription": "Compartiu l'enllaç de l'enregistrament de la reunió amb els participants", + "highlight": "Destaca", + "highlightMoment": "Destaca el moment", + "highlightMomentDisabled": "Podeu destacar moment en iniciar-se l'enregistrament", + "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.", + "localRecordingNoVideo": "El vídeo no s'està enregistrant", + "localRecordingStartWarning": "Assegureu-vos que atureu l'enregistrament abans de sortir de la reunió per a poder-lo desar.", + "localRecordingStartWarningTitle": "Atura l'enregistrament per a desar-lo", + "localRecordingVideoStop": "Aturar el vídeo també aturarà l'enregistrament local. Segur que voleu continuar?", + "localRecordingVideoWarning": "Per a enregistrar el vostre vídeo, cal que ho feu en començar l'enregistrament", + "localRecordingWarning": "Assegureu-vos de triar la pestanya actual per a poder usar el vídeo i àudios correctes.", + "loggedIn": "Sessió iniciada com a {{userName}}", + "noStreams": "No s'ha detectat flux d'àudio ni vídeo.", + "off": "S'ha aturat l'enregistrament", + "offBy": "{{name}} ha aturat l'enregistrament", + "on": "L'enregistrament ha començat", + "onBy": "{{name}} ha iniciat l'enregistrament", + "onlyRecordSelf": "Enregistra només el meu àudio i vídeo", + "pending": "S'està preparant per a enregistrar la reunió…", + "rec": "ENREG", + "saveLocalRecording": "Desa el fitxer de l'enregistrament en local (beta)", + "serviceDescription": "El servei d'enregistrament desarà el vostre enregistrament", + "serviceDescriptionCloud": "Enregistrament al núvol", + "serviceDescriptionCloudInfo": "Les reunions enregistrades s'esborren automàticament 24 hores després de l'enregistrament.", + "serviceName": "Servei d'enregistrament", + "sessionAlreadyActive": "Aquesta sessió ja s'està enregistrant o emetent en directe.", + "signIn": "Inicia la sessió", + "signOut": "Tanca la sessió", + "surfaceError": "Trieu la pestanya actual.", + "title": "Enregistrament", + "unavailable": "Vaja! El servei {{serviceName}} ara mateix no és disponible. Treballem per a resoldre el problema. Torneu-ho a intentar més tard.", + "unavailableTitle": "L'enregistrament no és disponible", + "uploadToCloud": "Puja al núvol" + }, + "screenshareDisplayName": "Pantalla de: {{name}}", + "sectionList": { + "pullToRefresh": "Estireu per a actualitzar" + }, + "security": { + "about": "Podeu afegir un $t(lockRoomPassword) a la reunió. Els participants hauran de proporcionar la $t(lockRoomPassword) abans de poder unir-s'hi.", + "aboutReadOnly": "Els moderadors poden afegir una $t(lockRoomPassword) a la reunió. Caldrà que els participants proporcionin la $t(lockRoomPassword) abans per a ser autoritzats a entrar en la reunió.", + "insecureRoomNameWarning": "El nom de la sala no és segur. Podrien unir-s'hi participants no desitjats. Considereu d'augmentar la seguretat de la reunió usant el botó dev seguretat.", + "title": "Opcions de seguretat" + }, + "settings": { + "buttonLabel": "Paràmetres", + "calendar": { + "about": "La integració de l'agenda {{appName}} s'usa per a accedir de forma segura a la vostra agenda perquè pugui llegir els esdeveniments pròxims.", + "disconnect": "Desconnectat", + "microsoftSignIn": "Inicia sessió amb Microsoft", + "signedIn": "Ara mateix s'està accedint els esdeveniments de l'agenda de {{email}}. Feu clic al botó «Desconnecta» per a deixar d'accedir als esdeveniments de l'agenda.", + "title": "Agenda" + }, + "desktopShareFramerate": "Velocitat de fotogrames en la compartició d'escriptori", + "desktopShareHighFpsWarning": "Una velocitat de fotogrames més alta per a compartir escriptori pot afectar l'amplada de banda. Heu de reiniciar la compartició de pantalla perquè la nova configuració tingui efecte.", + "desktopShareWarning": "Cal que reinicieu la compartició de pantalla perquè la nova configuració tingui efecte.", + "devices": "Aparells", + "followMe": "Tothom que em segueix", + "framesPerSecond": "fotogrames per segon", + "incomingMessage": "Missatge entrant", + "language": "Llengua", + "loggedIn": "Sessió iniciada com a {{name}}", + "maxStageParticipants": "El nombre màxim de participants que es poden fixar en la escena principal", + "microphones": "Micròfons", + "moderator": "Moderador", + "more": "Més", + "name": "Nom", + "noDevice": "Cap", + "participantJoined": "S'ha unit un participant", + "participantKnocking": "El participant ha entrat a la sala d'espera", + "participantLeft": "Un participant ha sortit de la reunió", + "playSounds": "Reprodueix el so", + "reactions": "Reaccions de la reunió", + "sameAsSystem": "Igual que del sistema ({{label}}) ", + "selectAudioOutput": "Sortida d'àudio", + "selectCamera": "Càmera", + "selectMic": "Micròfon", + "selfView": "Vista pròpia", + "sounds": "Sons", + "speakers": "Altaveus", + "startAudioMuted": "Tothom comença silenciat", + "startReactionsMuted": "Silencia els sons de reaccions per a tothom", + "startVideoMuted": "Tothom comença amagat", + "talkWhileMuted": "Parla mentre està silenciat", + "title": "Configuració" + }, + "settingsView": { + "advanced": "Avançat", + "alertCancel": "Cancel·la", + "alertOk": "D'acord", + "alertTitle": "Avís", + "alertURLText": "L'URL introduït no és vàlid", + "buildInfoSection": "Informació de la construcció", + "conferenceSection": "Conferència", + "disableCallIntegration": "Desactiva la integració de trucades nativa", + "disableCrashReporting": "Desactiva l'informe de fallada", + "disableCrashReportingWarning": "Esteu segur que voleu desactivar l'informe de fallades? La configuració s'aplicarà després de reiniciar l'aplicació.", + "disableP2P": "Desactiva el mode d'igual a igual", + "displayName": "Nom visible", + "displayNamePlaceholderText": "P. ex.: Pere Cullera", + "email": "Adreça electrònica", + "emailPlaceholderText": "email@example.com", + "goTo": "Ves a", + "header": "Configuració", + "help": "Ajuda", + "links": "Enllaços", + "privacy": "Privadesa", + "profileSection": "Perfil", + "serverURL": "URL del servidor", + "showAdvanced": "Mostra la configuració avançada", + "startCarModeInLowBandwidthMode": "Inicia el mode cotxe en el mode d'amplada de banda baixa", + "startWithAudioMuted": "Comença amb l'àudio silenciat", + "startWithVideoMuted": "Comença amb el vídeo desactivat", + "terms": "Condicions", + "version": "Versió" + }, + "share": { + "dialInfoText": "\n\n=====\n\nNomés voleu marcar en el telèfon?\n\n{{defaultDialInNumber}}Feu clic en aquest enllaç per a veure el marcatge de números de telèfon per a aquesta reunió{{dialInfoPageUrl}}", + "mainText": "Feu clic a l'enllaç següent per a unir-vos a la reunió:\n{{roomUrl}}" + }, + "speaker": "Altaveu", + "speakerStats": { + "angry": "Enuig", + "disgusted": "Disgust", + "displayEmotions": "Mostra les emocions", + "fearful": "Temor", + "happy": "Felicitat", + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Nom", + "neutral": "Neutral", + "sad": "Tristesa", + "search": "Cerca", + "searchHint": "Cerca participants", + "seconds": "{{count}}s", + "speakerStats": "Estadístiques de l'interlocutor", + "speakerTime": "Temps de l'interlocutor", + "surprised": "Sorpresa" + }, + "startupoverlay": { + "genericTitle": "La reunió requereix usar el micròfon i la càmera.", + "policyText": "", + "title": "{{app}} requereix usar el micròfon i la càmera." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Torna a entrar", + "text": "Premeu el botó Torna a entrar per a tornar a connectar.", + "title": "La videotrucada s'ha interromput perquè l'ordinador ha entrat en mode repòs." + }, + "termsView": { + "title": "Condicions" + }, + "toggleTopPanelLabel": "Mostra o amaga el panell superior", + "toolbar": { + "Settings": "Configuració", + "accessibilityLabel": { + "Settings": "Activa o desactiva la configuració", + "audioOnly": "Activa o desactiva només l'àudio", + "audioRoute": "Seleccioneu l'aparell de so", + "boo": "Esbroncada", + "breakoutRoom": "Entra o surt de la sala de descans", + "callQuality": "Gestiona la qualitat de la trucada", + "carmode": "Mode cotxe", + "cc": "Activa o desactiva els subtítols", + "chat": "Obre o tanca el xat", + "clap": "Picament de mans", + "collapse": "Col·lapsa", + "document": "Activa o desactiva el document compartit", + "download": "Baixeu les nostres aplicacions", + "embedMeeting": "Insereix la reunió", + "endConference": "Finalitza la reunió per a tothom", + "expand": "Expandeix", + "feedback": "Deixa comentaris", + "fullScreen": "Activa o desactiva la pantalla completa", + "giphy": "Mostra o amaga el menú GIPHY", + "grantModerator": "Concedir drets de moderador", + "hangup": "Surt de la reunió", + "help": "Ajuda", + "invite": "Convida-hi persones", + "kick": "Expulsa el participant", + "laugh": "Riure", + "leaveConference": "Abandona la reunió", + "like": "Polzes amunt", + "linkToSalesforce": "Enllaç a Salesforce", + "lobbyButton": "Activa o desactiva la sala d'espera", + "localRecording": "Activa o desactiva els controls d'enregistrament local", + "lockRoom": "Activa o desactiva la contrasenya de la reunió", + "moreActions": "Més accions", + "moreActionsMenu": "Menú d'accions addicionals", + "moreOptions": "Mostra més opcions", + "mute": "Silencia o activa el so", + "muteEveryone": "Silencia tothom", + "muteEveryoneElse": "Silencia tots els altres participants", + "muteEveryoneElsesVideoStream": "Atura el vídeo a tots els altres", + "muteEveryonesVideoStream": "Atura el vídeo a tothom", + "noiseSuppression": "Supressió de soroll", + "participants": "Participants", + "pip": "Activa o desactiva el mode imatge en imatge", + "privateMessage": "Envia un missatge privat", + "profile": "Edita el perfil", + "raiseHand": "Aixeca o abaixa la mà", + "reactionsMenu": "Obre o tanca el menú de reaccions", + "recording": "Activa o desactiva l'enregistrament", + "remoteMute": "Silencia el participant", + "remoteVideoMute": "Desactiva la càmera del participant", + "security": "Opcions de seguretat", + "selectBackground": "Trieu un fons", + "selfView": "Mostra o amaga la visualització d'un mateix", + "shareRoom": "Convida-hi algú", + "shareYourScreen": "Inicia o atura la compartició de pantalla", + "shareaudio": "Comparteix l'àudio", + "sharedvideo": "Mostra o amaga la compartició de vídeo", + "shortcuts": "Activa o desactiva les dreceres", + "show": "Mostra-ho en l'escena", + "silence": "Silenci", + "speakerStats": "Activa o desactiva les estadístiques de l'interlocutor", + "surprised": "Sorpresa", + "tileView": "Activa o desactiva el mode mosaic", + "toggleCamera": "Activa o desactiva la càmera", + "toggleFilmstrip": "Mostra o amaga la cinta", + "videoblur": "Activa o desactiva el desenfocament del vídeo", + "videomute": "Activa o desactiva la càmera", + "whiteboard": "Mostra o amaga la pissarra" + }, + "addPeople": "Afegeix persones a la trucada", + "audioOnlyOff": "Desactiva el mode de poca amplada de banda", + "audioOnlyOn": "Activa el mode de poc ampleda de banda", + "audioRoute": "Seleccioneu l'aparell de so", + "audioSettings": "Paràmetres d'àudio", + "authenticate": "Autentica", + "boo": "Esbroncada", + "callQuality": "Gestiona la qualitat de la trucada", + "chat": "Obre o tanca el xat", + "clap": "Picament de mans", + "closeChat": "Tanca el xat", + "closeReactionsMenu": "Tanca el menú de reaccions", + "disableNoiseSuppression": "Desactiva la supressió de soroll", + "disableReactionSounds": "Podeu desactivar els sons de reacció per a aquesta reunió", + "documentClose": "Tanca el document compartit", + "documentOpen": "Obre el document compartit", + "download": "Baixeu les nostres aplicacions", + "e2ee": "Xifratge d'extrem a extrem", + "embedMeeting": "Insereix la reunió", + "endConference": "Finalitza la reunió per a tothom", + "enterFullScreen": "Mostra en pantalla completa", + "enterTileView": "Mostra en mode mosaic", + "exitFullScreen": "Surt de la pantalla completa", + "exitTileView": "Surt del mode mosaic", + "feedback": "Deixa comentaris", + "giphy": "Mostra o amaga el menú GIPHY", + "hangup": "Surt la reunió", + "help": "Ajuda", + "hideWhiteboard": "Amaga la pissarra", + "invite": "Convida-hi persones", + "joinBreakoutRoom": "Entra a la sala de descans", + "laugh": "Riure", + "leaveBreakoutRoom": "Surt de la sala de descans", + "leaveConference": "Abandona la reunió", + "like": "Polzes amunt", + "linkToSalesforce": "Enllaç a Salesforce", + "lobbyButtonDisable": "Desactiva el mode de sala d'espera", + "lobbyButtonEnable": "Activa el mode de sala d'espera", + "login": "Inicia sessió", + "logout": "Tanca la sessió", + "lowerYourHand": "Abaixa la mà", + "moreActions": "Més accions", + "moreOptions": "Més opcions", + "mute": "Silencia o activa el so", + "muteEveryone": "Silencia tothom", + "muteEveryonesVideo": "Desactiva la càmera de tothom", + "noAudioSignalDesc": "Si no l'heu silenciat intencionadament en la configuració del sistema o per maquinari, considereu canviar l'aparell.", + "noAudioSignalDescSuggestion": "Si no l'heu silenciat intencionadament en la configuració del sistema o per maquinari, considereu canviar a l'aparell suggerit.", + "noAudioSignalDialInDesc": "També podeu marcar usant:", + "noAudioSignalDialInLinkDesc": "Números de marcatge", + "noAudioSignalTitle": "No entra cap so pel vostre micròfon!", + "noiseSuppression": "Supressió de soroll", + "noisyAudioInputDesc": "Sembla que el vostre micròfon fa soroll, considereu de silenciar-lo o canviar l'aparell.", + "noisyAudioInputTitle": "Sembla que el micròfon fa soroll!", + "openChat": "Obre el xat", + "openReactionsMenu": "Obre el menú de reaccions", + "participants": "Participants", + "pip": "Entra en el mode imatge en imatge", + "privateMessage": "Envia un missatge privat", + "profile": "Edita el perfil", + "raiseHand": "Aixeca o abaixa la mà", + "raiseYourHand": "Aixeca la mà", + "reactionBoo": "Envia una reacció d'esbroncada", + "reactionClap": "Envia una reacció de picar de mans", + "reactionLaugh": "Envia un reacció de riure", + "reactionLike": "Envia una reacció de polze amunt", + "reactionSilence": "Envia una reacció de silenci", + "reactionSurprised": "Envia una reacció de sorpresa", + "security": "Opcions de seguretat", + "selectBackground": "Trieu un fons", + "shareRoom": "Convida-hi algú", + "shareaudio": "Comparteix l'àudio", + "sharedvideo": "Comparteix el vídeo", + "shortcuts": "Mostra les dreceres", + "showWhiteboard": "Mostra la pissarra", + "silence": "Silenci", + "speakerStats": "Estadístiques de l'interlocutor", + "startScreenSharing": "Atura la compartició de la pantalla", + "startSubtitles": "Inicia els subtítols", + "stopAudioSharing": "Atura la compartició d'àudio", + "stopScreenSharing": "Atura la compartició de la pantalla", + "stopSharedVideo": "Atura el vídeo", + "stopSubtitles": "Atura els subtítols", + "surprised": "Sorpresa", + "talkWhileMutedPopup": "Intenteu parlar? Esteu silenciat.", + "tileViewToggle": "Activa o desactiva el mode mosaic", + "toggleCamera": "Activa o desactiva la càmera", + "videoSettings": "Paràmetres de vídeo", + "videomute": "Inicia o atura la càmera" + }, + "transcribing": { + "ccButtonTooltip": "Inicia o atura els subtítols", + "error": "La transcripció ha fallat. Torneu-ho a intentar més tard.", + "expandedLabel": "La transcripció està activada", + "failedToStart": "No s'ha pogut iniciar la transcripció", + "labelToolTip": "La reunió s'està transcrivint", + "off": "La transcripció s'ha aturat", + "pending": "S'està preparant per a enregistrar la reunió…", + "sourceLanguageDesc": "La llengua actual de la reunió és {{sourceLanguage}}.
Podeu canviar-la", + "sourceLanguageHere": "aquí", + "start": "Activa els subtítols", + "stop": "Desactiva els subtítols", + "subtitles": "Subtítols", + "subtitlesOff": "Inactiu", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Concediu permisos per a usar la càmera i el micròfon." + }, + "videoSIPGW": { + "busy": "Treballem per a alliberar recursos. Torneu-ho a intentar en uns minuts.", + "busyTitle": "Ara mateix, el servei de sala està ocupat", + "errorAlreadyInvited": "Ja s'ha convidat {{displayName}}", + "errorInvite": "Encara no s'ha establert la connexió. Torneu-ho a intentar més tard.", + "errorInviteFailed": "Treballem per a resoldre el problema. Torneu-ho a intentar més tard.", + "errorInviteFailedTitle": "No s'ha pogut convidar {{displayName}}", + "errorInviteTitle": "S'ha produït un error en la sala d'invitació", + "pending": "{{displayName}} us ha convidat" + }, + "videoStatus": { + "adjustFor": "Ajusta per a:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Ara sou en el mode de poca amplada de banda. En aquest mode només rebreu àudio i compartició de pantalla.", + "bestPerformance": "Millor rendiment", + "callQuality": "Qualitat de vídeo", + "hd": "HD", + "hdTooltip": "Vídeo en alta definició", + "highDefinition": "Alta definició", + "highestQuality": "Qualitat més alta", + "labelTooiltipNoVideo": "Sense vídeo", + "labelTooltipAudioOnly": "S'ha activat el mode de poca amplada de banda", + "ld": "LD", + "ldTooltip": "Vídeo en baixa definició", + "lowDefinition": "Baixa definició", + "performanceSettings": "Paràmetres de rendiment", + "sd": "SD", + "sdTooltip": "Vídeo en definició estàndard", + "standardDefinition": "Definició estàndard" + }, + "videothumbnail": { + "connectionInfo": "Informació de la connexió", + "domute": "Silencia", + "domuteOthers": "Silencia tots els altres participants", + "domuteVideo": "Desactiva la càmera", + "domuteVideoOfOthers": "Desactiva la càmera de tots els altres participants", + "flip": "Capgira", + "grantModerator": "Concedir drets de moderador", + "hideSelfView": "Amaga la vista pròpia", + "kick": "Expulsa", + "moderator": "Moderador", + "mute": "El participant està silenciat", + "muted": "Silenciat", + "pinToStage": "Fixa a l'escena", + "remoteControl": "Inicia o atura el control remot", + "screenSharing": "El participant està compartint la pantalla", + "show": "Mostra-ho en l'escena", + "showSelfView": "Mostra la visualització d'un mateix", + "unpinFromStage": "Deixa de fixar", + "videoMuted": "La càmera està desactivada", + "videomute": "El participant ha aturat la càmera" + }, + "virtualBackground": { + "addBackground": "Afegeix un fons", + "apply": "Aplica", + "backgroundEffectError": "No s'ha pogut aplicar l'efecte de fons.", + "blur": "Desenfocament", + "deleteImage": "Suprimeix la imatge", + "desktopShare": "Compartició d'escriptori", + "desktopShareError": "No s'ha pogut crear l'escriptori compartit", + "image1": "Platja", + "image2": "Mur blanc neutre", + "image3": "Sala blanca buida", + "image4": "Llum de peu negre", + "image5": "Muntanya", + "image6": "Bosc", + "image7": "Sortida de sol", + "none": "Cap", + "pleaseWait": "Espereu…", + "removeBackground": "Elimina el fons", + "slightBlur": "Desenfocament lleu", + "title": "Fons virtuals", + "uploadedImage": "Imatge pujada {{index}}", + "webAssemblyWarning": "WebAssembly no compatible", + "webAssemblyWarningDescription": "WebAssembly està desactivat o no està suportat per aquest navegador" + }, + "volumeSlider": "Control lliscant de volum", + "welcomepage": { + "accessibilityLabel": { + "join": "Toqueu per a entrar-hi", + "roomname": "Introduïu el nom de la sala" + }, + "addMeetingName": "Afegeix un nom de reunió", + "appDescription": "Endavant, xat de vídeo amb tot l'equip. De fet, convideu tothom que conegueu. {{app}} és una solució de videoconferència de codi obert 100% completament xifrada que podeu utilitzar durant tot el dia, cada dia, gratuïtament, sense necessitat de cap compte.", + "audioVideoSwitch": { + "audio": "Veu", + "video": "Vídeo" + }, + "calendar": "Agenda", + "connectCalendarButton": "Connecteu la vostra agenda", + "connectCalendarText": "Connecteu l'agenda per a veure totes les reunions en {{app}}. Més, afegiu les reunions {{provider}} a la vostra agenda i inicieu-les amb un clic.", + "enterRoomTitle": "Inicia una reunió nova", + "getHelp": "Obteniu ajuda", + "go": "SOM-HI", + "goSmall": "SOM-HI", + "headerSubtitle": "Reunions d'alta qualitat i segures", + "headerTitle": "Jitsi Meet", + "info": "Informació de marcatge", + "jitsiOnMobile": "Jitsi al mòbil – baixeu les nostres aplicacions i comenceu una reunió des de qualsevol lloc", + "join": "CREA / ENTRA", + "logo": { + "calendar": "Logotip del Calendari", + "desktopPreviewThumbnail": "Miniatura de visualització prèvia de l'escriptori", + "googleLogo": "Logotip de Google", + "logoDeepLinking": "Logotip de Jitsi Meet", + "microsoftLogo": "Logotip de Microsoft", + "policyLogo": "Logotip de la política" + }, + "mobileDownLoadLinkAndroid": "Baixa l'aplicació per a Android", + "mobileDownLoadLinkFDroid": "Baixa l'aplicació per a F-Droid", + "mobileDownLoadLinkIos": "Baixa l'aplicació per a iOS", + "moderatedMessage": "O reserveu un URL per a la reunióamb antelació si sou l'únic moderador.", + "privacy": "Privadesa", + "recentList": "Recents", + "recentListDelete": "Suprimeix l'entrada", + "recentListEmpty": "La llista de reunions recents ara mateix és buida. Feu xats amb el vostre equip i trobareu totes les reunions recents aquí.", + "reducedUIText": "Us donem la benvinguda a {{app}}!", + "roomNameAllowedChars": "El nom de la reunió no hauria de contenir cap d'aquests caràcters: ?, &, :, ', \", % ni #.", + "roomname": "Introduïu el nom de la sala", + "roomnameHint": "Introduïu el nom o l'URL de la sala on voleu entrar. Podeu crear un nom, només cal que les persones amb qui us reuniu el coneguin i introdueixin el mateix nom.", + "sendFeedback": "Envia comentaris", + "settings": "Paràmetres", + "startMeeting": "Inicia la reunió", + "terms": "Condicions", + "title": "Videoconferència segura, plena de funcionalitats i completament gratuïta i lliure" + } +} diff --git a/lang/main-cs.json b/lang/main-cs.json new file mode 100644 index 0000000..7a12fe8 --- /dev/null +++ b/lang/main-cs.json @@ -0,0 +1,1582 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Odkaz na setkání: {{url}}" + }, + "add": "Pozvat", + "addContacts": "Pozvat vaše kontakty", + "contacts": "kontakty", + "copyInvite": "Zkopírovat pozvánku na toto setkání", + "copyLink": "Zkopírovat odkaz na setkání", + "copyStream": "Zkopírovat odkaz na živý přenos", + "countryNotSupported": "Toto místo zatím nepodporujeme.", + "countryReminder": "Voláte mimo USA? Nezapomeňte začít kódem své země!", + "defaultEmail": "Vás výchozí email", + "disabled": "Nemůžete pozvat lidi.", + "failedToAdd": "Nepodařilo se přidat účastníky", + "googleEmail": "Email Google", + "inviteMoreHeader": "Jste v setkání sám/sama", + "inviteMoreMailSubject": "Přidejte se k setkání {{appName}}", + "inviteMorePrompt": "Pozvat další lidi", + "linkCopied": "Odkaz se zkopíroval do schránky", + "noResults": "Žádné odpovídající výsledky vyhledávání", + "outlookEmail": "Email Outlook", + "phoneNumbers": "telefonní čísla", + "searching": "Hledám…", + "shareInvite": "Sdílet pozvánku na setkání", + "shareLink": "Pozvěte ostatní tak, že jim pošlete odkaz na setkání", + "shareStream": "Sdílet odkaz na živý přenos", + "sipAddresses": "Adresy SIP", + "telephone": "Telefonní číslo: {{number}}", + "title": "Pozvěte lidi na toto setkání", + "yahooEmail": "Email Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Autorádio", + "headphones": "Sluchátka", + "none": "Nejsou k dispozici žádná zvuková zařízení", + "phone": "Telefon", + "speaker": "Reproduktor" + }, + "audioOnly": { + "audioOnly": "Nízká přenosová rychlost" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "např. 10000000 pro 10 Mbps", + "assumedBandwidthBpsWarning": "Vyšší hodnoty mohou způsobit problémy se sítí.", + "customValue": "vlastní hodnota", + "customValueEffect": "pro nastavení skutečné hodnoty bps", + "leaveEmpty": "ponechat prázdné", + "leaveEmptyEffect": "aby bylo možné provést odhady", + "possibleValues": "Možné hodnoty", + "setAssumedBandwidthBps": "Předpokládaná šířka pásma (bps)", + "title": "Nastavení šířky pásma", + "zeroEffect": "pro zakázání videa" + }, + "breakoutRooms": { + "actions": { + "add": "Přidat podmístnost", + "autoAssign": "Automaticky přiřadit do podmístností", + "close": "Zavřít", + "join": "Připojit se", + "leaveBreakoutRoom": "Opustit podmístnost", + "more": "Další", + "remove": "Odstranit", + "rename": "Přejmenovat", + "renameBreakoutRoom": "Přejmenovat podmístnost", + "sendToBreakoutRoom": "Odeslat účastníka do:" + }, + "breakoutList": "Seznam podmnístností", + "buttonLabel": "Podmístnosti", + "defaultName": "Podmístnost #{{index}}", + "hideParticipantList": "Skrýt seznam účastníků", + "mainRoom": "Hlavní místnost", + "notifications": { + "joined": "Připojit se k podmístnosti \"{{name}}\"", + "joinedMainRoom": "Připojit se k hlavní místnosti", + "joinedTitle": "Podmístnosti" + }, + "showParticipantList": "Zobrazit seznam účastníků", + "title": "Podmístnosti" + }, + "calendarSync": { + "addMeetingURL": "Přidejte odkaz na setkání", + "confirmAddLink": "Chcete k této události přidat odkaz Jitsi?", + "error": { + "appConfiguration": "Integrace kalendáře není správně nastavena.", + "generic": "Došlo k chybě. Zkontrolujte nastavení kalendáře nebo zkuste obnovit kalendář.", + "notSignedIn": "Při přihlašování do kalendářových událostí došlo k chybě. Zkontrolujte prosím nastavení kalendáře a zkuste se znovu přihlásit." + }, + "join": "Připojit se", + "joinTooltip": "Připojit se k setkání", + "nextMeeting": "další setkání", + "noEvents": "Nejsou naplánovány žádné události.", + "ongoingMeeting": "současné setkání", + "permissionButton": "Otevřít nastavení", + "permissionMessage": "K zobrazení setkání v aplikaci je potřeba oprávnění Kalendář.", + "refresh": "Obnovit kalendář", + "today": "Dnes" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Vybrat zvuková zařízení" + }, + "labels": { + "buttonLabel": "Autorežim", + "title": "Autorežim", + "videoStopped": "Vaše video bylo zastaveno" + } + }, + "chat": { + "enter": "Vstoupit", + "error": "Chyba: vaše zpráva se neodeslala. Důvod: {{error}}", + "fieldPlaceHolder": "Sem napište zprávu", + "lobbyChatMessageTo": "Chatová zpráva v lobby pro {{recipient}}", + "message": "Zpráva", + "messageAccessibleTitle": "{{user}} píše:", + "messageAccessibleTitleMe": "já píši:", + "messageTo": "Soukromá zpráva pro {{recipient}}", + "messagebox": "Napište zprávu", + "newMessages": "Nové zprávy", + "nickname": { + "popover": "Zvolte si přezdívku", + "title": "Vložte přezdívku, abyste mohl/a používat zprávy", + "titleWithPolls": "Vložte přezdívku, abyste mohl/a používat zprávy" + }, + "noMessagesMessage": "V setkání zatím nejsou žádné zprávy. Tady můžete začít konverzaci!", + "privateNotice": "Soukromá zpráva pro {{recipient}}", + "sendButton": "Odeslat", + "smileysPanel": "Panel emoji", + "systemDisplayName": "Systém", + "tabs": { + "chat": "Chat", + "polls": "Hlasování" + }, + "title": "Zprávy", + "titleWithPolls": "Zprávy", + "you": "vy" + }, + "chromeExtensionBanner": { + "buttonText": "Nainstalovat rozšíření Chrome", + "buttonTextEdge": "Nainstalovat rozšíření Edge", + "close": "Zavřít", + "dontShowAgain": "Toto už znovu neukazovat", + "installExtensionText": "Nainstalovat rozšíření pro integraci Kalendáře Google a Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Připojujete se k setkání…" + }, + "connection": { + "ATTACHED": "Přiložený", + "AUTHENTICATING": "Ověřování", + "AUTHFAIL": "Ověřování selhalo", + "CONNECTED": "Připojeno", + "CONNECTING": "Připojování", + "CONNFAIL": "Připojení selhalo", + "DISCONNECTED": "Odpojeno", + "DISCONNECTING": "Odpojování", + "ERROR": "Chyba", + "FETCH_SESSION_ID": "Získává se session-id…", + "GET_SESSION_ID_ERROR": "Chyba při získávání session-id: {{code}}", + "GOT_SESSION_ID": "Získává se session-id… Hotovo", + "LOW_BANDWIDTH": "Video pro {{displayName}} se vypnulo, aby se ušetřila přenosová rychlost" + }, + "connectionindicator": { + "address": "Adresa:", + "audio_ssrc": "SSRC audia:", + "bandwidth": "Odhad šířky pásma:", + "bitrate": "Přenosová rychlost:", + "bridgeCount": "Počet serverů: ", + "codecs": "Kodeky (A/V): ", + "connectedTo": "Připojeno k:", + "e2eeVerified": "E2EE ověřeno:", + "framerate": "Rychlost snímkování:", + "less": "Zobrazit méně", + "localaddress": "Místní adresa:", + "localaddress_plural": "Místní adresy:", + "localport": "Místní port:", + "localport_plural": "Místní porty:", + "maxEnabledResolution": "posílat maximální", + "more": "Zobrazit více", + "no": "ne", + "packetloss": "Ztracené pakety:", + "participant_id": "Účastníkovo ID:", + "quality": { + "good": "Dobré", + "inactive": "Neaktivní", + "lost": "Ztraceno", + "nonoptimal": "Neoptimální", + "poor": "Slabé" + }, + "remoteaddress": "Vzdálená adresa:", + "remoteaddress_plural": "Vzdálené adresy:", + "remoteport": "Vzdálený port:", + "remoteport_plural": "Vzdálené porty:", + "resolution": "Rozlišení:", + "savelogs": "Uložit záznam", + "status": "Připojení:", + "transport": "Přenos:", + "transport_plural": "Přenosy:", + "video_ssrc": "SSRC videa:", + "yes": "ano" + }, + "dateUtils": { + "earlier": "Dříve", + "today": "Dnes", + "yesterday": "Včera" + }, + "deepLinking": { + "appNotInstalled": "Abyste se mohl/a připojit k setkání, potřebujete mít na telefonu aplikaci {{app}}.", + "description": "Nic se nestalo? Zkusili jsme spustit setkání v desktopové aplikaci {{app}}. Zkuste to znovu nebo spusťte webovou aplikaci {{app}}.", + "descriptionNew": "Nic se nestalo? Pokusili jsme se spustit vaši schůzku v aplikaci {{app}} pro počítače.

Můžete to zkusit znovu nebo to spustit na webu.", + "descriptionWithoutWeb": "Nic se nestalo? Zkusili jsme spustit setkání v desktopové aplikaci {{app}}.", + "downloadApp": "Stáhněte si aplikaci", + "downloadMobileApp": "Stáhnout z App Store", + "ifDoNotHaveApp": "Pokud ještě aplikaci nemáte:", + "ifHaveApp": "Pokud už aplikaci máte:", + "joinInApp": "Připojte se k setkání pomocí aplikace", + "joinInAppNew": "Připojte se v aplikaci", + "joinInBrowser": "Připojte se v prohlížeči", + "launchMeetingLabel": "Jak se chcete k tomuto setkání připojit?", + "launchWebButton": "Spustit na webu", + "noDesktopApp": "Nemáte aplikaci?", + "noMobileApp": "Nemáte aplikaci?", + "or": "NEBO", + "termsAndConditions": "Pokračováním vyjadřujete souhlas s našimi smluvními podmínkami.", + "title": "Setkání se spouští v {{app}}…", + "titleNew": "Zahajování schůzky…", + "tryAgainButton": "Zkusit znovu na desktopu", + "unsupportedBrowser": "Zdá se, že používáte prohlížeč, který nepodporujeme." + }, + "defaultLink": "např. {{url}}", + "defaultNickname": "např. Jana Růžová", + "deviceError": { + "cameraError": "Chyba při přístupu ke kameře", + "cameraPermission": "Aplikace nemá oprávnění přistupovat ke kameře", + "microphoneError": "Chyba při přístupu k mikrofonu", + "microphonePermission": "Aplikace nemá oprávnění přistupovat k mikrofonu" + }, + "deviceSelection": { + "hid": { + "callControl": "Ovládání hovorů", + "connectedDevices": "Připojená zařízení:", + "deleteDevice": "Smazat zařízení", + "pairDevice": "Spárovat zařízení" + }, + "noPermission": "Oprávnění není uděleno", + "previewUnavailable": "Náhled není dostupný", + "selectADevice": "Zvolte zařízení", + "testAudio": "Vyzkoušet zvuk" + }, + "dialIn": { + "screenTitle": "Shrnutí telefonického připojení" + }, + "dialOut": { + "statusMessage": "je nyní {{status}}" + }, + "dialog": { + "Back": "Zpět", + "Cancel": "Zrušit", + "IamHost": "Jsem hostitel", + "Ok": "OK", + "Remove": "Odstranit", + "Share": "Sdílet", + "Submit": "Potvrdit", + "WaitForHostMsg": "Konference ještě nezačala. Pokud jste hostitel, přihlaste se. Jinak prosím počkejte, až hostitel dorazí.", + "WaitForHostNoAuthMsg": "Konference ještě nezačala, protože ještě nedorazili žádní moderátoři. Čekejte prosím.", + "WaitingForHostButton": "Počkejte na moderátora", + "WaitingForHostTitle": "Čeká se na hostitele…", + "Yes": "Ano", + "accessibilityLabel": { + "Cancel": "Zrušit (opustit dialog)", + "Ok": "OK (uložit a opustit dialog)", + "close": "Zavřít dialog", + "liveStreaming": "Živý přenos", + "sharingTabs": "Možnosti sdílení" + }, + "add": "Přidat", + "addMeetingNote": "Přidat poznámku o tomto setkání", + "addOptionalNote": "Přidat poznámku (nepovinné):", + "allow": "Povolit", + "allowToggleCameraDialog": "Povolujete {{initiatorName}} přepínat režim otočení kamery?", + "allowToggleCameraTitle": "Povolit přepínání kamery?", + "alreadySharedVideoMsg": "Video už sdílí jiný účastník. Tato konference umožňuje sdílet jen jedno video současně.", + "alreadySharedVideoTitle": "Je povoleno jen jedno sdílené video", + "applicationWindow": "Okno aplikace", + "authenticationRequired": "Vyžaduje se ověření", + "cameraConstraintFailedError": "Vaše kamera nesplňuje některé požadované parametry.", + "cameraNotFoundError": "Kamera nebyla nalezena.", + "cameraNotSendingData": "Nelze přistupovat ke kameře. Zkontrolujte prosím, zda ji už nepoužívá jiná aplikace, vyberte jiné zařízení v nabídce nastavení nebo zkuste aplikaci znovu načíst.", + "cameraNotSendingDataTitle": "Nelze přistupovat ke kameře", + "cameraPermissionDeniedError": "Neudělili jste oprávnění k použití kamery. Můžete se sice připojit ke konferenci, ale ostatní vás neuvidí. Opravíte to stiskem tlačítka kamery v adresním řádku.", + "cameraTimeoutError": "Nelze spustit zdroj videa. Vypršel časový limit!", + "cameraUnknownError": "Z neznámého důvodu nelze používat kameru.", + "cameraUnsupportedResolutionError": "Vaše kamera nepodporuje požadované rozlišení obrazu.", + "close": "Zavřít", + "conferenceDisconnectMsg": "Možná byste měli zkontrolovat připojení k síti. Znovu se připojíte za {{seconds}} s…", + "conferenceDisconnectTitle": "Byl/a jste odhlášen/a.", + "conferenceReloadMsg": "Pokoušíme se to opravit. Znovu se připojíte za {{seconds}} s…", + "conferenceReloadTitle": "Bohužel, něco se pokazilo.", + "confirm": "Potvrdit", + "confirmNo": "Ne", + "confirmYes": "Ano", + "connectError": "Jejda! Něco se pokazilo a do konference se nepodařilo připojit.", + "connectErrorWithMsg": "Jejda! Něco se pokazilo a do konference se nepodařilo připojit: {{msg}}", + "connecting": "Připojení", + "contactSupport": "Kontaktovat podporu", + "copied": "Zkopírováno", + "copy": "Kopírovat", + "demoteParticipantDialog": "Opravdu chcete tohoto účastníka přesunout na návštěvníka?", + "demoteParticipantTitle": "Přesunout na návštěvníka", + "dismiss": "Skrýt", + "displayNameRequired": "Ahoj! Jak se jmenuješ?", + "done": "Hotovo", + "e2eeDescription": "Šifrování end-to-end Je zatím EXPERIMENTÁLNÍ. Berte prosím v úvahu, že když zapnete šifrování end-to-end, vypnou se serverové služby jako: nahrávání, živý přenos a připojení po telefonu. Také mějte na paměti, že setkání bude fungovat jen lidem, kteří se připojí z prohlížečů s podporou vložitelných proudů.", + "e2eeDisabledDueToMaxModeDescription": "Nelze povolit šifrování End-to-End kvůli velkému počtu účastníků konference.", + "e2eeLabel": "Povolit šifrování end-to-end", + "e2eeWarning": "VAROVÁNÍ: Zdá se, že některým účastníkům setkání chybí podpora pro šifrování end-to-end. Pokud jej povolíte, nebudou vás vidět ani slyšet.", + "e2eeWillDisableDueToMaxModeDescription": "VAROVÁNÍ: Pokud se ke konferenci připojí více účastníků, bude šifrování End-to-End automaticky deaktivováno.", + "embedMeeting": "Vložit setkání", + "enterDisplayName": "Vložte prosím své jméno", + "error": "Chyba", + "errorRoomCreationRestriction": "Pokusili jste se připojit příliš rychle, vraťte se prosím za chvíli.", + "gracefulShutdown": "Naše služba je nyní mimo provoz kvůli údržbě. Zkuste to prosím znovu později.", + "grantModeratorDialog": "Určitě chcete tohoto účastníka učinit moderátorem?", + "grantModeratorTitle": "Pověřit moderátora", + "hide": "Skrýt", + "hideShareAudioHelper": "Tento dialog již nezobrazovat", + "incorrectPassword": "Uživatelské jméno nebo heslo není správně", + "incorrectRoomLockPassword": "Chybné heslo", + "internalError": "Jejda! Něco se pokazilo. Objevila se následující chyba: {{error}}", + "internalErrorTitle": "Vnitřní chyba", + "kickMessage": "Pro více informací můžete kontaktovat {{participantDisplayName}}.", + "kickParticipantButton": "Vyhodit", + "kickParticipantDialog": "Opravdu chcete vyhodit tohoto účastníka?", + "kickParticipantTitle": "Vyhodit tohoto účastníka?", + "kickSystemTitle": "Au! Byl jsi vyloučen ze schůzky", + "kickTitle": "Au! {{participantDisplayName}} vás vyhodil z videohovoru", + "linkMeeting": "Link setkání", + "linkMeetingTitle": "Propojit schůzku se Salesforce", + "liveStreaming": "Živý přenos", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Není možné, pokud je aktivní nahrávání", + "localUserControls": "Místní uživatelské ovládací prvky", + "lockMessage": "Konferenci se nepodařilo uzamknout.", + "lockRoom": "Nastavit $t(lockRoomPassword) setkání", + "lockTitle": "Zamknutí selhalo", + "login": "Přihlášení", + "loginQuestion": "Opravdu se chcete přihlásit a opustit konferenci?", + "logoutQuestion": "Jste si jistí, že se chcete odhlásit a ukončit konferenci?", + "logoutTitle": "Odhlásit", + "maxUsersLimitReached": "Byl dosažen limit počtu účastníků. Konference je plná. Kontaktujte prosím vlastníka videohovoru nebo to zkuste znovu později!", + "maxUsersLimitReachedTitle": "Dosažen limit počtu účastníků", + "micConstraintFailedError": "Váš mikrofon nesplňuje některé požadované parametry.", + "micNotFoundError": "Mikrofon nebyl nalezen.", + "micNotSendingData": "Jít do nastavení počítače, zapnout mikrofon a nastavit jeho citlivost", + "micNotSendingDataTitle": "Váš mikrofon je vypnutý v nastavení systému", + "micPermissionDeniedError": "Neudělili jste oprávnění pro použití mikrofonu. Můžete se sice připojit ke konferenci, ale ostatní vás neuslyší. Opravíte to stiskem tlačítka kamery v adresním řádku.", + "micTimeoutError": "Nelze spustit zdroj zvuku. Vypršel časový limit!", + "micUnknownError": "Z neznámého důvodu nelze použít mikrofon.", + "moderationAudioLabel": "Umožněte účastníkům zapnout zvuk", + "moderationVideoLabel": "Umožněte účastníkům spustit video", + "muteEveryoneDialog": "Určitě chcete všechny ztišit? Po ztišení jim nebudete moct zvuk znovu zapnout, ale oni sami si můžou zvuk zapnout kdykoliv.", + "muteEveryoneDialogModerationOn": "Účastníci mohou kdykoli poslat žádost o slovo.", + "muteEveryoneElseDialog": "Po ztišení jim nebudete moct zvuk znovu zapnout, ale oni sami si můžou zvuk zapnout kdykoliv.", + "muteEveryoneElseTitle": "Umlčet všechny kromě {{whom}}?", + "muteEveryoneElsesVideoDialog": "Jakmile je kamera deaktivována, nebudete ji moci znovu zapnout, ale mohou ji kdykoli znovu zapnout.", + "muteEveryoneElsesVideoTitle": "Zastavit video všem kromě {{whom}}?", + "muteEveryoneSelf": "sebe", + "muteEveryoneStartMuted": "Nyní jsou všichni umlčeni", + "muteEveryoneTitle": "Umlčet všechny?", + "muteEveryonesVideoDialog": "Účastníci mohou své video kdykoli zapnout.", + "muteEveryonesVideoDialogModerationOn": "Účastníci mohou kdykoli poslat žádost o zapnutí svého videa.", + "muteEveryonesVideoDialogOk": "Zakázat", + "muteEveryonesVideoTitle": "Zastavit video všem?", + "muteParticipantBody": "Po ztišení jim nebudete moct zvuk znovu zapnout, ale oni sami si můžou zvuk zapnout kdykoliv.", + "muteParticipantButton": "Ztišit", + "muteParticipantsVideoBody": "Kameru nebudete moci znovu zapnout, ale mohou ji kdykoli znovu zapnout.", + "muteParticipantsVideoBodyModerationOn": "Kameru nebudete moci znovu zapnout a oni také ne.", + "muteParticipantsVideoButton": "Zastavit video", + "muteParticipantsVideoDialog": "Opravdu chcete vypnout kameru tohoto účastníka? Kameru nebudete moci znovu zapnout, ale mohou ji kdykoli znovu zapnout.", + "muteParticipantsVideoDialogModerationOn": "Opravdu chcete vypnout kameru tohoto účastníka? Kameru nebudete moci znovu zapnout a on také ne.", + "muteParticipantsVideoTitle": "Zakázat kameru tohoto účastníka?", + "noDropboxToken": "Nenalezen platný token Dropboxu", + "password": "Heslo", + "passwordLabel": "Některý z účastníků toto setkání uzamkl. Pro připojení prosím zadejte $t(lockRoomPassword).", + "passwordNotSupported": "Setkání nepodporuje nastavit $t(lockRoomPassword).", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) není podporováno", + "passwordRequired": "Požadováno $t(lockRoomPassword)", + "permissionCameraRequiredError": "Pro účast na konferencích s videem je vyžadováno povolení kamery. Udělte to prosím v Nastavení", + "permissionErrorTitle": "Vyžaduje se povolení", + "permissionMicRequiredError": "Pro účast na konferencích se zvukem je vyžadováno povolení mikrofonu. Udělte to prosím v Nastavení", + "readMore": "více", + "recentlyUsedObjects": "Vaše nedávno použité předměty", + "recording": "Nahrávání", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Není možné, pokud je aktivní živý přenos", + "rejoinNow": "Znovu se připojit", + "remoteControlAllowedMessage": "{{user}} přijal(a) vaši žádost o dálkové ovládání!", + "remoteControlDeniedMessage": "{{user}} odmítl(a) vaši žádost o dálkové ovládání!", + "remoteControlErrorMessage": "Při požadavku na oprávnění k dálkového ovládání od {{user}} došlo k chybě!", + "remoteControlRequestMessage": "Umožníte {{user}} dálkově ovládat váš počítač?", + "remoteControlShareScreenWarning": "Nezapomeňte, že stiskem \"Povolit\" budete sdílet svou obrazovku!", + "remoteControlStopMessage": "Relace dálkového ovládání skončila!", + "remoteControlTitle": "Dálkové ovládání počítače", + "remoteUserControls": "Vzdálené ovládání uživatele {{username}}", + "removePassword": "Odstranit $t(lockRoomPassword)", + "removeSharedVideoMsg": "Opravdu chcete odstranit sdílené video?", + "removeSharedVideoTitle": "Odstranit sdílené video", + "renameBreakoutRoomLabel": "Nazev místnosti", + "renameBreakoutRoomTitle": "Přejmenovat podmístnost", + "reservationError": "Systémová chyba rezervace", + "reservationErrorMsg": "Chyba: {{code}}, zpráva: {{msg}}", + "retry": "Opakovat", + "screenSharingAudio": "Sdílet zvuk", + "screenSharingFailed": "Jejda! Něco se pokazilo. Nedovedlo se spustit sdílení obrazovky!", + "screenSharingFailedTitle": "Sdílení obrazovky selhalo!", + "screenSharingPermissionDeniedError": "Jejda! Něco se pokazilo s vaším oprávněním sdílet obrazovku. Obnovte prosím stránku a zkuste to znovu.", + "searchInSalesforce": "Hledat v Salesforce", + "searchResults": "Výsledky vyhledávání ({{count}})", + "searchResultsDetailsError": "Při načítání dat vlastníka se něco pokazilo.", + "searchResultsError": "Při načítání dat se něco pokazilo.", + "searchResultsNotFound": "Nebyly nalezeny žádné výsledky vyhledávání.", + "searchResultsTryAgain": "Zkuste použít alternativní klíčová slova.", + "sendPrivateMessage": "Nedávno vám přišla soukromá zpráva. Chcete na ni odpovědět soukromě, nebo chcete poslat zprávu do skupiny?", + "sendPrivateMessageCancel": "Poslat do skupiny", + "sendPrivateMessageOk": "Poslat soukromě", + "sendPrivateMessageTitle": "Poslat soukromě?", + "serviceUnavailable": "Služba není dostupná", + "sessTerminated": "Volání ukončeno", + "sessTerminatedReason": "Setkání byla ukončena", + "sessionRestarted": "Hovor byl restartován kvůli problému s připojením.", + "shareAudio": "Pokračovat", + "shareAudioAltText": "chcete-li sdílet požadovaný obsah, přejděte na \"Karta prohlížeče\", vyberte obsah, zaškrtněte políčko \"sdílet zvuk\" a poté klikněte na tlačítko \"sdílet\"", + "shareAudioTitle": "Jak sdílet zvuk", + "shareAudioWarningD1": "před sdílením zvuku musíte zastavit sdílení obrazovky.", + "shareAudioWarningD2": "musíte restartovat sdílení obrazovky a zaškrtnout možnost \"sdílet zvuk\".", + "shareAudioWarningH1": "Pokud chcete sdílet pouze zvuk:", + "shareAudioWarningTitle": "Před sdílením zvuku musíte zastavit sdílení obrazovky", + "shareMediaWarningGenericH2": "Pokud chcete sdílet obrazovku a zvuk", + "shareScreenWarningD1": "před sdílením obrazovky musíte ukončit sdílení zvuku.", + "shareScreenWarningD2": "musíte ukončit sdílení zvuku, spustit sdílení obrazovky a zaškrtnout možnost \"sdílet zvuk\".", + "shareScreenWarningH1": "Pokud chcete sdílet pouze svou obrazovku:", + "shareScreenWarningTitle": "Před sdílením obrazovky musíte ukončit sdílení zvuku", + "shareVideoConfirmPlay": "Chystáte se otevřít externí web. Chcete pokračovat?", + "shareVideoConfirmPlayTitle": "{{name}} s vámi sdílí video.", + "shareVideoLinkError": "Zadejte prosím správný odkaz videa.", + "shareVideoLinkStopped": "Video od uživatele {{name}} bylo zastaveno.", + "shareVideoTitle": "Sdílet obraz", + "shareYourScreen": "Sdílet obrazovku", + "shareYourScreenDisabled": "Sdílení obrazovky vypnuto.", + "sharedVideoDialogError": "Chyba: Neplatná nebo zakázaná adresa URL", + "sharedVideoLinkPlaceholder": "Odkaz na YouTube nebo přímý odkaz na video", + "show": "Zobrazit", + "start": "Spustit ", + "startLiveStreaming": "Spustit živý přenos", + "startRecording": "Spustit záznam", + "startRemoteControlErrorMessage": "Při pokusu o spuštění relace vzdáleného ovládání došlo k chybě!", + "stopLiveStreaming": "Zastavit živý přenos", + "stopRecording": "Zastavit nahrávání", + "stopRecordingWarning": "Určitě chcete zastavit nahrávání?", + "stopStreamingWarning": "Určitě chcete zastavit živý přenos?", + "streamKey": "Klíč k živému přenosu", + "thankYou": "Děkujeme, že používáte {{appName}}!", + "token": "token", + "tokenAuthFailed": "Bohužel nemáte povoleno se k tomuto volání připojit.", + "tokenAuthFailedReason": { + "audInvalid": "", + "contextNotFound": "", + "expInvalid": "", + "featureInvalid": "", + "featureValueInvalid": "", + "featuresNotFound": "", + "headerNotFound": "", + "issInvalid": "", + "kidMismatch": "", + "kidNotFound": "", + "nbfFuture": "", + "nbfInvalid": "", + "payloadNotFound": "", + "tokenExpired": "" + }, + "tokenAuthFailedTitle": "Ověření selhalo", + "tokenAuthFailedWithReasons": "Litujeme, k tomuto hovoru se nemůžete připojit. Možné důvody: {{reason}}", + "tokenAuthUnsupported": "Adresa URL tokenu není podporována.", + "transcribing": "Přepisování", + "unlockRoom": "Odstranit $t(lockRoomPassword) setkání", + "user": "Uživatel", + "userIdentifier": "Identifikátor uživatele", + "userPassword": "uživatelské heslo", + "verifyParticipantConfirm": "Shodují se", + "verifyParticipantDismiss": "Neshodují se", + "verifyParticipantQuestion": "EXPERIMENTÁLNÍ: Zeptejte se účastníka {{participantName}}, zda vidí stejný obsah ve stejném pořadí.", + "verifyParticipantTitle": "Ověření uživatele", + "videoLink": "Odkaz na video", + "viewUpgradeOptions": "Zobrazit možnosti upgradu", + "viewUpgradeOptionsContent": "Chcete-li získat neomezený přístup k prémiovým funkcím, jako je nahrávání, přepisy, streamování RTMP a další, budete muset svůj tarif upgradovat.", + "viewUpgradeOptionsTitle": "Objevili jste prémiovou funkci!", + "whiteboardLimitContent": "Litujeme, byl dosažen limit souběžných uživatelů tabule.", + "whiteboardLimitReference": "Pro více informací navštivte", + "whiteboardLimitReferenceUrl": "naše webové stránky", + "whiteboardLimitTitle": "Použití tabule je omezeno", + "yourEntireScreen": "Celá vaše obrazovka" + }, + "documentSharing": { + "title": "Sdílený dokument" + }, + "e2ee": { + "labelToolTip": "Zvuková i obrazová komunikace se v tomto setkání šifruje end-to-end" + }, + "embedMeeting": { + "title": "Vložit toto setkání" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Vaše volba: {{rating}}" + }, + "average": "Průměrná", + "bad": "Špatná", + "detailsLabel": "Řekněte nám o tom víc.", + "good": "Dobrá", + "rateExperience": "Ohodnoťte svoji zkušenost s videohovorem", + "star": "Hvězdička", + "veryBad": "Velmi špatná", + "veryGood": "Velmi dobrá" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniatury videí" + } + }, + "giphy": { + "noResults": "Nic nenalezeno :(", + "search": "Prohledat GIPHY" + }, + "incomingCall": { + "answer": "Odpovědět", + "audioCallTitle": "Příchozí hovor", + "decline": "OK", + "productLabel": "od Jitsi Meet", + "videoCallTitle": "Příchozí videohovor" + }, + "info": { + "accessibilityLabel": "Více info", + "addPassword": "Přidat $t(lockRoomPassword)", + "cancelPassword": "Zrušit $t(lockRoomPassword)", + "conferenceURL": "Odkaz:", + "copyNumber": "Zkopírovat číslo", + "country": "Země", + "dialANumber": "Pro připojení k videohovoru vytočte tato čísla a vložte PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Omlouváme se, ale vytáčení není nyní podporováno.", + "dialInNumber": "Telefonní číslo", + "dialInSummaryError": "Chyba při načítání informací o telefonickém připojení. Zkuste to znovu později.", + "dialInTollFree": "Zdarma", + "genericError": "Ups, něco se pokazilo.", + "inviteLiveStream": "K zobrazení živého vysílání tohoto meetingu, klikněte na tento odkaz: {{url}}", + "invitePhone": "Pro připojení telefonicky použijte: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Hledáte jiné číslo pro připojení po telefonu?\nZobrazit čísla pro připojení po telefonu: {{url}}\n\n\nPokud se také připojujete po telefonu přes pokojový telefon, připojte se bez připojení ke zvuku: {{silentUrl}}", + "inviteSipEndpoint": "Chcete-li se připojit pomocí adresy SIP, zadejte toto: {{sipUri}}", + "inviteTextiOSInviteUrl": "Chcete-li se připojit, klikněte na následující odkaz: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Pokud se připojujete přes pokojový telefon, použijte tento odkaz pro připojení bez připojení ke zvuku: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} vás zve na schůzku.", + "inviteTextiOSPhone": "Chcete-li se připojit telefonicky, použijte toto číslo: {{number}},,{{conferenceID}#. Pokud hledáte jiné číslo, toto je úplný seznam: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Dostali jste pozvánku připojit se k setkání.", + "inviteURLFirstPartPersonal": "{{name}} vás zve do setkání.", + "inviteURLSecondPart": "\nPřidejte se k setkání:\n{{url}}\n", + "label": "Informace k připojení po telefonu", + "liveStreamURL": "Živé vysílání:", + "moreNumbers": "Více čísel", + "noNumbers": "Žádná čísla pro připojení po telefonu.", + "noPassword": "Bez hesla", + "noRoom": "Nebyla vybrána místnost pro připojení po telefonu.", + "noWhiteboard": "Tabuli se nepodařilo načíst.", + "numbers": "Čísla pro připojení telefonicky", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Dosáhli jste limitu svého plánu.", + "sip": "SIP adresa", + "sipAudioOnly": "Adresa pouze pro zvuk SIP", + "title": "Sdílet", + "tooltip": "Sdílet odkaz k tomuto meetingu", + "upgradeOptions": "Zkontrolujte prosím možnosti upgradu na", + "whiteboardError": "Při načítání tabule došlo k chybě. Zkuste to znovu později." + }, + "inlineDialogFailure": { + "msg": "Trochu jsme klopýtli.", + "retry": "Zkusit znovu", + "support": "Podpora", + "supportMsg": "Pokud se toto bude opakovat, kontaktujte" + }, + "inviteDialog": { + "alertText": "Pozvání některých účastníků selhalo.", + "header": "Pozvat", + "searchCallOnlyPlaceholder": "Vložte telefonní číslo", + "searchPeopleOnlyPlaceholder": "Hledat účastníky", + "searchPlaceholder": "Účastník nebo telefonní číslo", + "send": "Odeslat" + }, + "jitsiHome": "{{logo} Logo, vede na Homepage", + "keyboardShortcuts": { + "focusLocal": "Vybrat váš obraz", + "focusRemote": "Vybrat obraz jiného volajícího", + "fullScreen": "Zobrazení / Opuštění režimu celé obrazovky", + "giphyMenu": "Přepnout nabídku GIPHY", + "keyboardShortcuts": "Klávesové zkratky", + "localRecording": "Spravovat kvalitu hovoru", + "mute": "Ztlumení nebo zesílení vašeho mikrofonu", + "pushToTalk": "Zmáčknout a mluvit", + "raiseHand": "Přihlásit nebo odhlásit se o slovo", + "showSpeakerStats": "Zobrazení statistiky řečníka", + "toggleChat": "Otevřít nebo zavřít chat", + "toggleFilmstrip": "Zobrazit / Skrýt video náhledy účastníků", + "toggleParticipantsPane": "Zobrazit nebo skrýt panel účastníků", + "toggleScreensharing": "Přepnutí mezi kamerou a sdílením obrazovky", + "toggleShortcuts": "Zobrazení / Skrytí klávesových zkratek", + "videoMute": "Spuštění / Vypnutí vaší kamery" + }, + "largeVideo": { + "screenIsShared": "Sdílíte svou obrazovku", + "showMeWhatImSharing": "Ukaž mi co sdílím" + }, + "liveStreaming": { + "busy": "Snažíme se uvolnit zdroje pro živý přenos. Zkuste to prosím znovu za pár minut.", + "busyTitle": "Zdroje pro přenos jsou zaneprázdněné", + "changeSignIn": "Přepnout účet.", + "choose": "Vyberte živý přenos", + "chooseCTA": "Vyberte možnost přenosu. Právě jste přihlášen/a jako {{email}}.", + "enterStreamKey": "Zde zadejte svůj klíč k živému přenosu na YouTube.", + "error": "Živý přenos selhal. Zkuste to prosím znovu.", + "errorAPI": "Nastala chyba při přístupu k vašemu vysílání na YouTube. Zkuste se prosím znovu přihlásit.", + "errorLiveStreamNotEnabled": "Živé přenosy nejsou pro {{email}} povoleny. Povolte prosím živé přenosy, nebo se přihlašte s účtem, kde povoleny jsou.", + "expandedOff": "Živý přenos právě skončil.", + "expandedOn": "Setkání se právě přenáší na YouTube.", + "expandedPending": "Živý přenos se spouští…", + "failedToStart": "Živý přenos se nepovedlo spustit.", + "getStreamKeyManually": "Nepovedlo se nám stáhnout žádné živé přenosy. Zkuste prosím od YouTube získat svůj klíč k živému přenosu.", + "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", + "onBy": "{{name}} spustil/a živý přenos", + "pending": "Živý přenos se spouští…", + "policyError": "Pokusili jste se spustit přímý přenos příliš rychle. Zkuste to znovu později!", + "serviceName": "Služba pro živý přenos", + "sessionAlreadyActive": "Tato relace se již nahrává nebo se vysílá živě.", + "signIn": "Přihlásit se účtem Google", + "signInCTA": "Přihlaste se nebo vložte svůj klíč ze služby YouTube.", + "signOut": "Odhlásit se", + "signedInAs": "Nyní jste přihlášen(a) jako:", + "start": "Spustit živý přenos", + "streamIdHelp": "Co je tohle?", + "title": "Živý přenos", + "unavailableTitle": "Živý přenos není dostupný", + "youtubeTerms": "Podmínky používání YouTube" + }, + "lobby": { + "backToKnockModeButton": "Žádné heslo, místo toho požádat o přijetí", + "chat": "Chat", + "dialogTitle": "Mód lobby", + "disableDialogContent": "Je zapnutý mód lobby. Zajišťuje, aby do setkání nemohli vstoupit nežádoucí účastníci. Chcete jej vypnout?", + "disableDialogSubmit": "Vypnout", + "emailField": "Zadejte svoje emailovou adresu", + "enableDialogPasswordField": "Nastavte heslo (volitelně)", + "enableDialogSubmit": "Zapnout", + "enableDialogText": "Mód lobby vám umožňuje zabezpečit setkání tím, že se lidé mohou připojit až po formálním schválení moderátorem.", + "enterPasswordButton": "Zadat heslo setkání", + "enterPasswordTitle": "Zadejte heslo pro připojení se k setkání", + "errorMissingPassword": "Prosíme zadejte heslo setkání", + "invalidPassword": "Chybné heslo", + "joinRejectedMessage": "Moderátor zamítl vaši žádost o připojení.", + "joinRejectedTitle": "Žádost o připojení zamítnuta.", + "joinTitle": "Vstoupit do setkání", + "joinWithPasswordMessage": "Pokus o připojení pomocí hesla, prosím čekejte…", + "joiningMessage": "K setkání se připojíte, až někdo přijme vaši žádost", + "joiningTitle": "Žádá se o vstup do setkání…", + "joiningWithPasswordTitle": "Připojování pomocí hesla…", + "knockButton": "Požádat o vstup", + "knockTitle": "Někdo chce vstoupit do setkání", + "knockingParticipantList": "Seznam zájemců", + "lobbyChatStartedNotification": "{{moderator}} zahájil chat v lobby s {{attendee}}", + "lobbyChatStartedTitle": "{{moderátor}} s vámi zahájil chat v lobby.", + "lobbyClosed": "Lobby bylo uzavřeno.", + "nameField": "Zadejte své jméno", + "notificationLobbyAccessDenied": "{{originParticipantName}} zamítl/a žádost o vstup od {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} schválil/a žádost o vstup od {{targetParticipantName}}", + "notificationLobbyDisabled": "{{originParticipantName}} vypnul/a lobby", + "notificationLobbyEnabled": "{{originParticipantName}} zapnul/a lobby", + "notificationTitle": "Lobby", + "passwordJoinButton": "Vstoupit", + "title": "Lobby", + "toggleLabel": "Zapnout lobby" + }, + "localRecording": { + "clientState": { + "off": "Vyp", + "on": "Zap", + "unknown": "Neznámý" + }, + "dialogTitle": "Ovládání místních záznamů", + "duration": "Doba trvání", + "durationNA": "N/A", + "encoding": "Kódování", + "label": "LOR", + "labelToolTip": "Místní nahrávání je spuštěno", + "localRecording": "Místní nahrávání", + "me": "Já", + "messages": { + "engaged": "Zapojeno místní nahrávání.", + "finished": "Relace nahrávání {{token}} dokončena. Zašlete prosím nahraný soubor moderátorovi.", + "finishedModerator": "Relace nahrávání {{token}} dokončena. Záznam místní trasy byl uložen. Požádejte ostatní účastníky, aby zaslali své nahrávky.", + "notModerator": "Nejste moderátor. Nelze spustit ani zastavit místní nahrávání." + }, + "moderator": "Moderátor", + "no": "Ne", + "participant": "Účastník", + "participantStats": "Zobrazit statistiku účastníků", + "selectTabTitle": "🎥 Vyberte tuto kartu pro nahrávání", + "sessionToken": "Token relace", + "start": "Spustit záznam", + "stop": "Zastavit záznam", + "stopping": "Zastavení nahrávání", + "wait": "Počkejte prosím, než váš záznam uložíme", + "yes": "Ano" + }, + "lockRoomPassword": "heslo", + "lockRoomPasswordUppercase": "Heslo", + "lonelyMeetingExperience": { + "button": "Pozvat další", + "youAreAlone": "Jste v tomto setkání jediný/á" + }, + "me": "já", + "notify": { + "OldElectronAPPTitle": "Bezpečnostní zranitelnost!", + "allowAction": "Povolit", + "allowedUnmute": "Můžete zapnout mikrofon, spustit kameru nebo sdílet obrazovku.", + "audioUnmuteBlockedDescription": "Operace zapnutí mikrofonu byla dočasně zablokována z důvodu omezení systému.", + "audioUnmuteBlockedTitle": "Odtlumení mikrofonu bylo zablokováno!", + "chatMessages": "Chatové zprávy", + "connectedOneMember": "{{name}} se připojil/a", + "connectedThreePlusMembers": "{{name}} a {{count}} dalších se připojili", + "connectedTwoMembers": "{{first}} a {{second}} se připojili", + "connectionFailed": "Připojení se nezdařilo. Zkuste to znovu později!", + "dataChannelClosed": "Kvalita videa může být snížena", + "dataChannelClosedDescription": "Přemosťovací kanál je vypnutý, a proto může být kvalita videa omezena na nejnižší nastavení.", + "dataChannelClosedDescriptionWithAudio": "Přemosťovací kanál je vypnutý, a proto může dojít k přerušení zvuku a obrazu.", + "dataChannelClosedWithAudio": "Kvalita zvuku a videa může být snížena", + "disabledIframe": "Vkládání je určeno pouze pro demo účely, takže tento hovor bude za {{timeout}} minut odpojen.", + "disabledIframeSecondary": "Vložení domény {{domain}} je určeno pouze pro demo účely, takže tento hovor bude za {{timeout}} minut odpojen. Pro produkční vkládání použijte prosím Jitsi as a service!", + "disconnected": "odpojeno", + "displayNotifications": "Zobrazit upozornění pro", + "dontRemindMe": "Nepřipomínej mi to", + "focus": "Vybrat konferenci", + "focusFail": "{{component}} není k dispozici - další pokus za {{ms}} s", + "gifsMenu": "GIPHY", + "groupTitle": "Oznámení", + "hostAskedUnmute": "Moderátor by chtěl, abyste promluvil", + "invalidTenant": "Neplatný tenant", + "invalidTenantHyphenDescription": "Tenant, kterého používáte, je neplatný (začíná nebo končí na '-').", + "invalidTenantLengthDescription": "Tenant, kterého používáte, je příliš dlouhý.", + "invitedOneMember": "{{name}} je pozván/a", + "invitedThreePlusMembers": "{{name}} a {{count}} dalších jsou pozváni", + "invitedTwoMembers": "{{first}} a {{second}} jsou pozváni", + "joinMeeting": "Připojte se", + "kickParticipant": "{{kicker}} vyhodil/a účastníka {{kicked}}", + "leftOneMember": "{{name}} opustil schůzku", + "leftThreePlusMembers": "{{name}} a mnoho dalších opustilo schůzku", + "leftTwoMembers": "{{first}} a {{second}} opustili schůzku", + "linkToSalesforce": "Odkaz do Salesforce", + "linkToSalesforceDescription": "Souhrn schůzky můžete propojit s objektem Salesforce.", + "linkToSalesforceError": "Propojení schůzky se Salesforce se nezdařilo", + "linkToSalesforceKey": "Propojit tuto schůzku", + "linkToSalesforceProgress": "Propojování schůzky se Salesforce…", + "linkToSalesforceSuccess": "Schůzka byla propojena se Salesforce", + "localRecordingStarted": "{{name}} zahájil místní nahrávání.", + "localRecordingStopped": "{{name}} zastavil místní nahrávání.", + "me": "Já", + "moderationInEffectCSDescription": "Pokud chcete sdílet svou obrazovku, zvedněte prosím ruku.", + "moderationInEffectCSTitle": "Sdílení obrazovky je blokováno moderátorem", + "moderationInEffectDescription": "Pokud chcete mluvit, zvedněte prosím ruku.", + "moderationInEffectTitle": "Váš mikrofon je ztlumen moderátorem", + "moderationInEffectVideoDescription": "Chcete-li spustit fotoaparát, zvedněte prosím ruku.", + "moderationInEffectVideoTitle": "Vaše kamera je blokována moderátorem", + "moderationRequestFromModerator": "Hostitel by chtěl, abyste zapnuli zvuk", + "moderationRequestFromParticipant": "Chce mluvit", + "moderationStartedTitle": "Moderování začalo", + "moderationStoppedTitle": "Moderování skončilo", + "moderationToggleDescription": "od {{participantDisplayName}}", + "moderator": "Moderátorská práva udělena!", + "muted": "Konverzaci jste zahájili se ztlumeným zvukem.", + "mutedRemotelyDescription": "Až budete chtít mluvit, můžete si mikrofon zapnout. Pak se zase ztište, aby se v setkání omezil hluk.", + "mutedRemotelyTitle": "{{participantDisplayName}} vás ztišil/a!", + "mutedTitle": "Máte ztlumený zvuk!", + "newDeviceAction": "Použít", + "newDeviceAudioTitle": "Detekováno nové zvukové zařízení", + "newDeviceCameraTitle": "Detekována nová kamera", + "nextToSpeak": "Jste další v řadě, kdo promluví", + "noiseSuppressionDesktopAudioDescription": "Extra potlačení šumu nelze povolit při sdílení zvuku na ploše. Vypněte jej a zkuste to znovu.", + "noiseSuppressionFailedTitle": "Nepodařilo se spustit dodatečné potlačení hluku", + "noiseSuppressionStereoDescription": "Extra potlačení šumu není aktuálně podporováno u stereo zvuku.", + "oldElectronClientDescription1": "Zdá se, že používáte zastaralou verzi klienta Jitsi Meet, který má známé bezpečnostní zranitelnosti. Aktualizujte prosím na ", + "oldElectronClientDescription2": "nejnovější sestavení", + "oldElectronClientDescription3": " ihned!", + "participantWantsToJoin": "Chce se připojit k setkání", + "participantsWantToJoin": "Chce se připojit k setkání", + "passwordRemovedRemotely": "Jiný účastník odebral $t(lockRoomPassword)", + "passwordSetRemotely": "Jiný účastník nastavil $t(lockRoomPassword)", + "raiseHandAction": "Zvednout ruku", + "raisedHand": "{{name}} by chtěl/a mluvit", + "raisedHands": "{{participantName}} a {{raisedHands}} dalších lidí", + "reactionSounds": "Zakázat zvuky", + "reactionSoundsForAll": "Zakázat zvuky pro všechny", + "screenShareNoAudio": "Na obrazovce výběru okna nebylo zaškrtnuto políčko Sdílet zvuk.", + "screenShareNoAudioTitle": "Systémový zvuk nelze sdílet!", + "screenSharingAudioOnlyDescription": "Upozorňujeme, že sdílením obrazovky ovlivňujete režim \"Nejlepší výkon\" a využijete větší šířku pásma.", + "screenSharingAudioOnlyTitle": "Režim \"Nejlepší výkon\".", + "selfViewTitle": "Vlastní zobrazení můžete kdykoli zrušit v nastavení", + "somebody": "Někdo", + "startSilentDescription": "Připojte se znovu, aby se zvuk zapnul", + "startSilentTitle": "Připojil/a jste se bez zvukového výstupu!", + "suboptimalBrowserWarning": "Obáváme se, že vás nečeká právě nejlepší zážitek. Snažíme se to zlepšit, ale prozatím prosím zkuste použít některý z plně podporovaných prohlížečů.", + "suboptimalExperienceTitle": "Varování o prohlížeči", + "suggestRecordingAction": "Spustit", + "suggestRecordingDescription": "Chcete spustit nahrávání?", + "suggestRecordingTitle": "Nahrajte toto setkání", + "unmute": "Zrušit ztišení", + "videoMutedRemotelyDescription": "Vždy jej můžete znovu zapnout.", + "videoMutedRemotelyTitle": "Vaše video bylo vypnuto uživatelem {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Zapnutí zvuku kamery a sdílení plochy byly dočasně zablokovány kvůli systémovým limitům.", + "videoUnmuteBlockedTitle": "Zapnutí zvuku kamery a sdílení plochy je zablokováno!", + "viewLobby": "Zobrazit lobby", + "viewParticipants": "Zobrazit účastníky", + "viewVisitors": "Zobrazit návštěvníky", + "waitingParticipants": "{{waitingParticipants}} osoby", + "waitingVisitors": "Návštěvníci čekající ve frontě: {{waitingVisitors}}", + "waitingVisitorsTitle": "Setkání zatím není živé!", + "whiteboardLimitDescription": "Uložte si svůj postup, protože brzy bude dosažen limit uživatelů a tabule se zavře.", + "whiteboardLimitTitle": "Použití tabule" + }, + "participantsPane": { + "actions": { + "admit": "Připustit", + "admitAll": "Připustit všechny", + "allow": "Povolit účastníkům:", + "allowVideo": "Povolit video", + "askUnmute": "Požádat o zapnutí zvuku", + "audioModeration": "Zapnout zvuk sami sobě", + "blockEveryoneMicCamera": "Zablokovat všem mikrofon a kameru", + "breakoutRooms": "Podmístnosti", + "goLive": "Spustit živé vysílání", + "invite": "Pozvat někoho", + "lowerAllHands": "Spustit všechny ruce", + "lowerHand": "Spusit ruce", + "moreModerationActions": "Více možností moderování", + "moreModerationControls": "Více možností moderování", + "moreParticipantOptions": "Více možností pro účastníky", + "mute": "Ztlumit", + "muteAll": "Ztlumit všechny", + "muteEveryoneElse": "Ztlumit všechny ostatní", + "reject": "Odmítnout", + "stopEveryonesVideo": "Zastavit všem video", + "stopVideo": "Zastavit video", + "unblockEveryoneMicCamera": "Odblokovat všem mikrofon a kameru", + "videoModeration": "Spustit jejich video" + }, + "close": "Zavřít", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Účastníci setkání ({{count}})", + "visitorInQueue": " (čeká {{count}})", + "visitorRequests": " (požřadavky {{count}})", + "visitors": "Visitors {{count}}", + "waitingLobby": "Čekání v lobby ({{count}})" + }, + "search": "Hledat účastníky", + "title": "Účastníci" + }, + "passwordDigitsOnly": "Až {{number}} číslic", + "passwordSetRemotely": "nastaveno jiným účastníkem", + "pinParticipant": "{{participantName}} - Připnout", + "pinnedParticipant": "Účastník je připnut", + "polls": { + "answer": { + "edit": "Upravit", + "send": "Odeslat", + "skip": "Přeskočit", + "submit": "Odeslat" + }, + "by": "Od {{name}}", + "closeButton": "Zavřít anketu", + "create": { + "addOption": "Přidat možnost", + "answerPlaceholder": "Možnost {{index}}", + "cancel": "Zrušit", + "create": "Vytvořit anketu", + "pollOption": "Možnost ankety {{index}}", + "pollQuestion": "Anketní otázka", + "questionPlaceholder": "Položit otázku", + "removeOption": "Vyjmout možnost", + "save": "Uložit", + "send": "Odeslat" + }, + "errors": { + "notUniqueOption": "Možnosti musí být jedinečné" + }, + "notification": { + "description": "Chcete-li hlasovat, otevřete kartu ankety", + "title": "K tomuto setkání byla přidána nová anketa" + }, + "results": { + "changeVote": "Změnit hlasování", + "empty": "Na setkání zatím nejsou žádné ankety. Spusťte anketu zde!", + "hideDetailedResults": "Skrýt detaily", + "showDetailedResults": "Zobrazit detaily", + "vote": "Hlasovat" + } + }, + "poweredby": "provozováno", + "prejoin": { + "audioAndVideoError": "Chyba zvuku a videa:", + "audioDeviceProblem": "Nastal problém s vaším zvukovým zařízením", + "audioOnlyError": "Chyba zvuku:", + "audioTrackError": "Nepovedlo se vytvořit stopu zvuku.", + "callMe": "Zavolej mi", + "callMeAtNumber": "Zavolej mi na toto číslo:", + "calling": "Volá se", + "configuringDevices": "Nastavují se zařízení…", + "connectedWithAudioQ": "Jste připojen/a se zvukem?", + "connection": { + "failed": "Test připojení se nezdařil!", + "good": "Vaše internetové připojení vypadá dobře!", + "nonOptimal": "Vaše internetové připojení není optimální", + "poor": "Máte slabé internetové připojení", + "running": "Probíhá test připojení…" + }, + "connectionDetails": { + "audioClipping": "Váš zvuk bude pravděpodobně osekaný.", + "audioHighQuality": "Váš zvuk bude pravděpodobně mít výbornou kvalitu.", + "audioLowNoVideo": "Váš zvuk bude pravděpodobně mít nízkou kvalitu a bez videa.", + "goodQuality": "Bezva! Budete mít skvělou kvalitu médií.", + "noMediaConnectivity": "Pro tento test se nám nepovedlo navázat mediální připojení. Většinou za to může firewall nebo NAT.", + "noVideo": "Vaše video bude pravděpodobně hrozné.", + "testFailed": "Při testu připojení došlo k neočekávaným problémům, ale to nemusí mít vliv na vaše spojení.", + "undetectable": "Pokud v prohlížeči stále nemůžete volat, ujistěte se, že máte správně nastavené reproduktory, mikrofon a kameru, že jste v prohlížeči povolil/a přístup k mikrofonu a kameře a že máte aktuální verzi prohlížeče. Pokud stále narážíte na potíže, kontaktujte vývojáře této webové aplikace.", + "veryPoorConnection": "Kvalita vašeho hovoru pravděpodobně bude opravdu hrozná.", + "videoFreezing": "Video vám pravděpodobně bude zamrzávat, přepínat se do černé a bude kostkované.", + "videoHighQuality": "Vaše video pravděpodobně bude mít dobrou kvalitu.", + "videoLowQuality": "Vaše video pravděpodobně bude mít nízkou kvalitu po stránce snímkové rychlosti a rozlišení.", + "videoTearing": "Vaše video pravděpodobně bude kostkované nebo s obrazovými artefakty." + }, + "copyAndShare": "Kopírovat a sdílet odkaz na setkání", + "dialInMeeting": "Vytočit setkání po telefonu", + "dialInPin": "Vytočte setkání na telefonu a zadejte kód PIN:", + "dialing": "Vytáčí se", + "doNotShow": "Tuto obrazovku už neukazovat", + "errorDialOut": "Nepovedlo se vytočit", + "errorDialOutDisconnected": "Nepovedlo se vytočit. Odpojeno", + "errorDialOutFailed": "Nepovedlo se vytočit. Hovor selhal", + "errorDialOutStatus": "Nepovedlo se zjistit stav vytáčení", + "errorMissingName": "Před vstupem do setkání prosím zadejte své jméno", + "errorNoPermissions": "Musíte povolit přístup k mikrofonu a kameře", + "errorStatusCode": "Vytáčení selhalo, chybový kód: {{status}}", + "errorValidation": "Selhalo ověření čísla", + "iWantToDialIn": "Chci se připojit po telefonu", + "initiated": "Hovor zahájen", + "joinAudioByPhone": "Vstoupit se zvukem přes telefon", + "joinMeeting": "Vstoupit do setkání", + "joinMeetingInLowBandwidthMode": "Připojte se v režimu nízké šířky pásma", + "joinWithoutAudio": "Vstoupit bez zvuku", + "keyboardShortcuts": "Povolit klávesové zkratky", + "linkCopied": "Odkaz se zkopíroval do schránky", + "lookGood": "Váš mikrofon zní, jako že funguje správně", + "or": "nebo", + "premeeting": "Před setkáním", + "proceedAnyway": "Přesto pokračujte", + "recordingWarning": "Ostatní účastníci mohou tento hovor nahrávat", + "screenSharingError": "Chyba sdílení obrazovky:", + "startWithPhone": "Začít se zvukem přes telefon", + "unsafeRoomConsent": "Chápu rizika, chci se připojit k setkání", + "videoOnlyError": "Chyba videa:", + "videoTrackError": "Nepovedlo se vytvořit stopu videa.", + "viewAllNumbers": "zobrazit všechna čísla" + }, + "presenceStatus": { + "busy": "Obsazeno", + "calling": "Vytáčím…", + "connected": "Spojování", + "connecting": "Spojování…", + "connecting2": "Spojování*…", + "disconnected": "Odpojeno", + "expired": "Spojení vypršelo", + "ignored": "Spojení ignorováno", + "initializingCall": "Nastavuji hovor…", + "invited": "Pozván", + "rejected": "Odmítnuto", + "ringing": "Zvoní…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Nastavte si jméno", + "setEmailInput": "Zadejte email", + "setEmailLabel": "Nastavte si email vašeho Gravataru", + "title": "Profil" + }, + "raisedHand": "Chtěl(a) bych mluvit", + "raisedHandsLabel": "Počet zvednutých rukou", + "record": { + "already": { + "linked": "Schůzka je již propojena s tímto objektem Salesforce." + }, + "type": { + "account": "Účet", + "contact": "Kontakt", + "lead": "Zájemce", + "opportunity": "Příležitost", + "owner": "Vlastník" + } + }, + "recording": { + "authDropboxText": "Nahrát na Dropbox", + "availableSpace": "Dostupný prostor: {{spaceLeft}} MB (přibližně {{duration}} minut záznamu)", + "beta": "BETA", + "busy": "Snažíme se uvolnit zdroje pro nahrávání. Zkuste to prosím znovu za pár minut.", + "busyTitle": "Nahrávací zdroje jsou zaneprázdněné", + "copyLink": "Zkopírovat odkaz", + "error": "Nahrávání selhalo. Zkuste to prosím znovu.", + "errorFetchingLink": "Chyba při načítání odkazu na záznam.", + "expandedOff": "Nahrávání skončilo.", + "expandedOn": "Setkání se právě nahrává.", + "expandedPending": "Spouští se nahrávání…", + "failedToStart": "Nahrávání se nespustilo", + "fileSharingdescription": "Sdílejte nahrávku s účastníky setkání", + "highlight": "Zvýraznit", + "highlightMoment": "Zvýraznit moment", + "highlightMomentDisabled": "Můžete zvýraznit okamžiky zahájení nahrávání", + "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á", + "localRecordingStartWarning": "Před opuštěním schůzky se ujistěte, že jste nahrávání zastavili, abyste jej mohli uložit.", + "localRecordingStartWarningTitle": "Zastavte záznam, abyste jej uložili", + "localRecordingVideoStop": "Zastavením videa se zastaví také místní nahrávání. Opravdu chcete pokračovat?", + "localRecordingVideoWarning": "Chcete-li nahrát video, musíte jej mít zapnutý při zahájení nahrávání", + "localRecordingWarning": "Ujistěte se, že jste vybrali aktuální kartu, abyste mohli použít správné video a zvuk.", + "loggedIn": "Přihlášen/a jako {{userName}}", + "noMicPermission": "Kanál mikrofonu nelze vytvořit. Udělte prosím povolení k použití mikrofonu.", + "noStreams": "Nebyl zjištěn žádný audio nebo video stream.", + "off": "Nahrávání skončilo", + "offBy": "{{name}} zastavil/a nahrávání", + "on": "Nahrává se", + "onBy": "{{name}} spustil/a nahrávání", + "onlyRecordSelf": "Nahrávat pouze moje audio a video streamy", + "pending": "Připravuje se nahrávání setkání…", + "policyError": "Pokusili jste se spustit nahrávání příliš rychle. Zkuste to znovu později!", + "recordAudioAndVideo": "Záznam zvuku a videa", + "recordTranscription": "Přepis záznamu", + "saveLocalRecording": "Uložit záznamový soubor lokálně (Beta)", + "serviceDescription": "Nahrávací služba uloží vaši nahrávku", + "serviceDescriptionCloud": "Cloudové nahrávání", + "serviceDescriptionCloudInfo": "Nahrané schůzky jsou automaticky vymazány 24 hodin po jejich době záznamu.", + "serviceName": "Nahrávací služba", + "sessionAlreadyActive": "Tato relace se již nahrává nebo se vysílá živě.", + "showAdvancedOptions": "Pokročilé možnosti", + "signIn": "Přihlásit se", + "signOut": "Odhlásit se", + "surfaceError": "Vyberte prosím aktuální kartu.", + "title": "Nahrávání", + "unavailable": "Jejda! Služba {{serviceName}} není dostupná. Problém se snažíme vyřešit. Zkuste to prosím později.", + "unavailableTitle": "Nahrávání nedostupné", + "uploadToCloud": "Nahrát do cloudu" + }, + "screenshareDisplayName": "Obrazovka uživatele {{name}}", + "sectionList": { + "pullToRefresh": "Zatáhnutím obnovíte" + }, + "security": { + "about": "Můžete pro setkání nastavit $t(lockRoomPassword). Účastníci budou muset $t(lockRoomPassword) zadat, než se budou moct do setkání připojit.", + "aboutReadOnly": "Moderující účastníci můžou pro setkání nastavit $t(lockRoomPassword). Účastníci budou muset $t(lockRoomPassword) zadat, než se budou moct do setkání připojit.", + "insecureRoomNameWarningNative": "Název místnosti není bezpečný. K vaší schůzce se mohou připojit nežádoucí účastníci. {{recommendAction}} Další informace o zabezpečení schůzky ", + "insecureRoomNameWarningWeb": "Název místnosti není bezpečný. K vaší schůzce se mohou připojit nežádoucí účastníci. {{recommendAction}} Další informace o zabezpečení schůzky naleznete zde.", + "title": "Možnosti zabezpečení", + "unsafeRoomActions": { + "meeting": "Zvažte zabezpečení schůzky pomocí bezpečnostního tlačítka.", + "prejoin": "Zvažte použití jedinečnějšího názvu schůzky.", + "welcome": "Zvažte použití jedinečnějšího názvu schůzky nebo vyberte jeden z návrhů." + } + }, + "settings": { + "audio": "Zvuk", + "buttonLabel": "Nastavení", + "calendar": { + "about": "Integrace kalendáře {{appName}} slouží k bezpečnému přístupu k vašemu kalendáři, takže dovede zjistit nadcházející události.", + "disconnect": "Odpojit", + "microsoftSignIn": "Přihlásit se účtem Microsoft", + "signedIn": "Právě se přistupuje ke kalendářním událostem pro {{email}}. Abyste zastavili přístup k událostem, klikněte na tlačítko Odpojit", + "title": "Kalendář" + }, + "desktopShareFramerate": "Snímková frekvence sdílení plochy", + "desktopShareHighFpsWarning": "Vyšší snímková frekvence pro sdílení plochy může ovlivnit vaši šířku pásma. Aby se nové nastavení projevilo, musíte restartovat sdílení obrazovky.", + "desktopShareWarning": "Aby se nové nastavení projevilo, musíte restartovat sdílení obrazovky.", + "devices": "Zařízení", + "followMe": "Všichni sledují mě", + "followMeRecorder": "Rekordér mě následuje", + "framesPerSecond": "snímků za sekundu", + "incomingMessage": "Příchozí zpráva", + "language": "Jazyk", + "loggedIn": "Přihlášen/a jako {{name}}", + "maxStageParticipants": "Maximální počet účastníků, které lze připnout na hlavní pódium", + "microphones": "Mikrofony", + "moderator": "Moderátor", + "moderatorOptions": "Možnosti moderátora", + "more": "Více", + "name": "Jméno", + "noDevice": "Žádné zařízení", + "notifications": "Oznámení", + "participantJoined": "Účastník se připojil", + "participantKnocking": "Účastník vstoupil do lobby", + "participantLeft": "Účastník odešel", + "playSounds": "Přehrávání zvuku na", + "reactions": "Reakce na setkání", + "sameAsSystem": "Stejné jako systém ({{label}})", + "selectAudioOutput": "Zvukový výstup", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Vlastní pohled", + "shortcuts": "Zkratky", + "speakers": "Reproduktory", + "startAudioMuted": "Při připojení všem ztlumit zvuk", + "startReactionsMuted": "Ztlumit zvuky reakcí pro všechny", + "startVideoMuted": "Při připojení všem vypnout kameru", + "talkWhileMuted": "Mluvte při ztlumení", + "title": "Nastavení", + "video": "Video" + }, + "settingsView": { + "advanced": "Pokročilé", + "alertCancel": "Zrušit", + "alertOk": "OK", + "alertTitle": "Varování", + "alertURLText": "Adresa URL k serveru je neplatná", + "apply": "Použít", + "buildInfoSection": "Informace o sestavení", + "conferenceSection": "Konference", + "disableCallIntegration": "Vypnout integraci nativních hovorů", + "disableCrashReporting": "Vypnout hlášení o pádu", + "disableCrashReportingWarning": "Určitě chcete vypnout hlášení o pádu? Nastavení se uplatní, až restartujete aplikaci.", + "disableP2P": "Vypnout mód Peer-To-Peer", + "displayName": "Zobrazované jméno", + "displayNamePlaceholderText": "Např.: John Doe", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "Pokud je váš e-mail spojen s účtem Gravatar, použijeme jej k zobrazení vašeho profilového obrázku.", + "goTo": "Přejít na", + "header": "Nastavení", + "help": "Pomoc", + "links": "Odkazy", + "privacy": "Soukromí", + "profileSection": "Profil", + "sdkVersion": "SDK verze", + "serverURL": "URL serveru", + "showAdvanced": "Zobrazit pokročilá nastavení", + "startCarModeInLowBandwidthMode": "Spusťte režim auta v režimu nízké šířky pásma", + "startWithAudioMuted": "Začít se ztišeným zvukem", + "startWithVideoMuted": "Začít s vypnutým videem", + "terms": "Podmínky", + "version": "Verze" + }, + "share": { + "dialInfoText": "\n\n=====\n\nChcete se připojit jen vytočením po telefonu?\n\n{{defaultDialInNumber}}Klikněte na tento odkaz pro telefonní čísla k tomuto setkání\n{{dialInfoPageUrl}}", + "mainText": "Pro vstup do setkání klikněte na tento odkaz:\n{{roomUrl}}" + }, + "speaker": "Řečník", + "speakerStats": { + "angry": "Rozzlobený", + "disgusted": "Znechucený", + "displayEmotions": "Zobrazit emoce", + "fearful": "Bojácný", + "happy": "Šťastný", + "hours": "{{count}} h", + "minutes": "{{count}} min", + "name": "Jméno", + "neutral": "Neutrální", + "sad": "Smutný", + "search": "Prohledat", + "searchHint": "Hledat účastníky", + "seconds": "{{count}} s", + "speakerStats": "Statistika řečníků", + "speakerTime": "Mluvil/a již", + "surprised": "Překvapený" + }, + "startupoverlay": { + "genericTitle": "Setkání vyžaduje přístup k vašemu mikrofonu a kameře.", + "policyText": " ", + "title": "{{app}} potřebuje používat mikrofon a kameru." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Znovu připojit", + "text": "Zmáčknutím tlačítka Znovu připojit se vrátíte do konference.", + "title": "Váš videohovor se přerušil, protože počítač přešel do režimu spánku." + }, + "termsView": { + "title": "Podmínky" + }, + "toggleTopPanelLabel": "Přepnout horní panel", + "toolbar": { + "Settings": "Nastavení", + "accessibilityLabel": { + "Settings": "Přepnout nastavení", + "audioOnly": "Přepnout režim pouze zvuku", + "audioRoute": "Vybrat zvukové zařízení", + "boo": "Bú", + "breakoutRooms": "Podmístnosti", + "callQuality": "Spravovat kvalitu hovoru", + "carmode": "Autorežim", + "cc": "Přepnout titulky", + "chat": "Přepnout okno zpráv", + "clap": "Tleskat", + "closeChat": "Zavřít chat", + "closeMoreActions": "Zavřít nabídku dalších akcí", + "closeParticipantsPane": "Zavřít panel účastníků", + "collapse": "Zabalit", + "document": "Přepnout sdílený dokument", + "documentClose": "Zavřít sdílený dokument", + "documentOpen": "Otevřít sdílený dokument", + "download": "Stáhnout naše aplikace", + "embedMeeting": "Vložit setkání", + "endConference": "Ukončit konferenci pro všechny", + "enterFullScreen": "Zobrazit přes celou obrazovku", + "enterTileView": "Dlaždicové zobrazení", + "exitFullScreen": "Ukončit zobrazení přes celou obrazovku", + "exitTileView": "Ukončit dlaždicové zobrazení", + "expand": "Rozbalit", + "feedback": "Poslat zpětnou vazbu", + "fullScreen": "Přepnout na celou obrazovku", + "giphy": "Zobrazit menu GIPHY", + "grantModerator": "Pověřit moderátora", + "hangup": "Opustit hovor", + "heading": "Panel nástrojů", + "help": "Nápověda", + "hideWhiteboard": "Skrýt tabuli", + "invite": "Pozvat lidi", + "kick": "Vyhodit účastníka", + "laugh": "Smích", + "leaveConference": "Opustit konferenci", + "like": "Palec nahoru", + "linkToSalesforce": "Odkaz na Salesforce", + "lobbyButton": "Zapnout/vypnout mód lobby", + "localRecording": "Přepnout ovládání místního nahrávání", + "lockRoom": "Přepnout heslo setkání", + "love": "Srdce", + "lowerHand": "Spustit ruku dolů", + "moreActions": "Přepnout nabídku více činností", + "moreActionsMenu": "Nabídka více činností", + "moreOptions": "Ukázat více možností", + "mute": "Přepnout ztišení zvuku", + "muteEveryone": "Ztišit všechny", + "muteEveryoneElse": "Ztišit všechny ostatní", + "muteEveryoneElsesVideoStream": "Zastavit video všech ostatních", + "muteEveryonesVideoStream": "Ztišit video všech", + "muteGUMPending": "Připojování mikrofonu", + "noiseSuppression": "Potlačení šumu", + "openChat": "Otevřít chat", + "participants": "Účastníci", + "pip": "Přepnout režim obrazu v obraze", + "privateMessage": "Poslat soukromou zprávu", + "profile": "Upravit váš profil", + "raiseHand": "Přepnout zvednutí ruky", + "react": "Reakce na zprávy", + "reactions": "Reakce", + "reactionsMenu": "Zobrazí / skryje menu reakcí", + "recording": "Přepnout nahrávání", + "remoteMute": "Ztišit účastníka", + "remoteVideoMute": "Vypnout kameru účastníka", + "security": "Možnosti zabezpečení", + "selectBackground": "Vybrat pozadí", + "selfView": "Přepnout zobrazení sebe", + "shareRoom": "Pozvat někoho", + "shareYourScreen": "Sdílet obrazovku", + "shareaudio": "Sdílet zvuk", + "sharedvideo": "Přepnout sdílení videa", + "shortcuts": "Zobrazit zkratky", + "show": "Zobrazit na stage", + "showWhiteboard": "Zobrazit tabuli", + "silence": "Ticho", + "speakerStats": "Statistika řečníků", + "stopScreenSharing": "Přestat sdílet vlastní obrazovku", + "stopSharedVideo": "Zastavit video", + "surprised": "Překvapen", + "tileView": "Přepnout dlaždicové zobrazení", + "toggleCamera": "Přepnout kameru", + "toggleFilmstrip": "Přepnout video náhledy", + "unmute": "Zapnout mikrofon", + "videoblur": "Přepnout rozmazání videa", + "videomute": "Přepnout ztišení videa", + "videomuteGUMPending": "Připojování kamery", + "videounmute": "Zapnpout kameru" + }, + "addPeople": "Přidat do hovoru účastníky", + "audioOnlyOff": "Vypnout mód slabého připojení", + "audioOnlyOn": "Zapnout mód slabého připojení", + "audioRoute": "Vybrat zvukové zařízení", + "audioSettings": "Nastavení zvuku", + "authenticate": "Ověřit", + "boo": "Bú", + "callQuality": "Spravovat kvalitu hovoru", + "chat": "Otevřít / Zavřít zprávy", + "clap": "Tleskat", + "closeChat": "Zavřít zprávy", + "closeParticipantsPane": "Zavřít panel účastníků", + "closeReactionsMenu": "Zavřít menu reakcí", + "disableNoiseSuppression": "Vypnout potlačení šumu", + "disableReactionSounds": "Vypnout zvuky reakcí", + "documentClose": "Zavřít sdílený dokument", + "documentOpen": "Otevřít sdílený dokument", + "download": "Stáhnout naše aplikace", + "e2ee": "Šifrování end-to-end", + "embedMeeting": "Vložit setkání", + "enableNoiseSuppression": "Povolit dodatečné potlačení hluku (BETA)", + "endConference": "Ukončit konferenci pro všechny", + "enterFullScreen": "Zvětšit na celou obrazovku", + "enterTileView": "Zobrazit v dlaždicích", + "exitFullScreen": "Zmenšit z celé obrazovky", + "exitTileView": "Zavřít dlaždice", + "feedback": "Zanechat zpětnou vazbu", + "giphy": "Zobrazit menu GIPHY", + "hangup": "Odejít", + "help": "Nápověda", + "hideWhiteboard": "Skrýt tabuli", + "invite": "Pozvat lidi", + "joinBreakoutRoom": "Připojit se k podmístnosti", + "laugh": "Smích", + "leaveBreakoutRoom": "Opustit podmístnost", + "leaveConference": "Opustit setkání", + "like": "Palec nahoru", + "linkToSalesforce": "Odkaz na Salesforce", + "lobbyButtonDisable": "Vypnout mód lobby", + "lobbyButtonEnable": "Zapnout mód lobby", + "login": "Přihlásit se", + "logout": "Odhlásit se", + "love": "Srdce", + "lowerYourHand": "Přestat se hlásit", + "moreActions": "Více činností", + "moreOptions": "Více možností", + "mute": "Ztlumit / Zrušit ztlumení", + "muteEveryone": "Ztišit všechny", + "muteEveryonesVideo": "Ztišit video všech", + "muteGUMPending": "Připojování mikrofonu", + "noAudioSignalDesc": "Pokud jste jej záměrně neztišili v nastavení systému nebo hardwaru, zvažte přepnout na jiné zařízení.", + "noAudioSignalDescSuggestion": "Pokud jste jej záměrně neztišili v nastavení systému nebo hardwaru, zvažte přepnout na navrhované zařízení.", + "noAudioSignalDialInDesc": "Můžete také zavolat po telefonu pomocí:", + "noAudioSignalDialInLinkDesc": "Telefonní čísla", + "noAudioSignalTitle": "Z vašeho mikrofonu nepřichází žádný signál!", + "noiseSuppression": "Potlačení šumu", + "noisyAudioInputDesc": "Zdá se, že váš mikrofon vydává hluk. Prosím zvažte ztlumit se nebo vyměnit zařízení.", + "noisyAudioInputTitle": "Zdá se, že máte hlučný mikrofon!", + "openChat": "Otevřít zprávy", + "openReactionsMenu": "Otevřít nabídku reakcí", + "participants": "Účastníci", + "pip": "Přejít do módu obraz v obraze", + "privateMessage": "Poslat soukromou zprávu", + "profile": "Upravte si profil", + "raiseHand": "Přihlásit se o slovo / Odhlásit", + "raiseYourHand": "Přihlásit se o slovo", + "reactionBoo": "Odeslat reakci bú", + "reactionClap": "Odeslat reakci potlesk", + "reactionHeart": "Odeslat reakci srdce", + "reactionLaugh": "Odeslat reakci smích", + "reactionLike": "Odeslat reakci palec nahoru", + "reactionSilence": "Odeslat reakci ticho", + "reactionSurprised": "Odeslat reakci překvapení", + "reactions": "Reactions", + "security": "Možnosti zabezpečení", + "selectBackground": "Vyberte pozadí", + "shareRoom": "Pozvat někoho", + "shareaudio": "Sdílet zvuk", + "sharedvideo": "Sdílet video", + "shortcuts": "Klávesové zkratky", + "showWhiteboard": "Zobrazit tabuli", + "silence": "Umlčet", + "speakerStats": "Statistiky řečníků", + "startScreenSharing": "Začít sdílet obrazovku", + "startSubtitles": "Zapnout titulky", + "stopAudioSharing": "Zastavit sdílení zvuku", + "stopScreenSharing": "Zastavit sdílení obrazovky", + "stopSharedVideo": "Zastavit video", + "stopSubtitles": "Vypnout titulky", + "surprised": "Překvapení", + "talkWhileMutedPopup": "Snažíte se mluvit? Máte ztišený mikrofon.", + "tileViewToggle": "Přepnout dlaždicové zobrazení", + "toggleCamera": "Přepnout kameru", + "unmute": "Zapnout mikrofon", + "videoSettings": "Nastavení videa", + "videomute": "Zapnout / Vypnout kameru", + "videomuteGUMPending": "Připojování kamery", + "videounmute": "Spustit kameru" + }, + "transcribing": { + "ccButtonTooltip": "Spustit / zastavit titulky", + "expandedLabel": "Přepis je momentálně zapnutý", + "failed": "Přepis se nezdařil", + "labelToolTip": "Schůzka se přepisuje", + "sourceLanguageDesc": "Momentálně je jazyk schůzky nastaven na {{sourceLanguage}}.
Můžete jej změnit z ", + "sourceLanguageHere": "zde", + "start": "Začít zobrazovat titulky", + "stop": "Přestat zobrazovat titulky", + "subtitles": "Titulky", + "subtitlesOff": "Vypnuto", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Odepnout", + "userMedia": { + "grantPermissions": "Povolte prosím používání kamery a mikrofonu." + }, + "videoSIPGW": { + "busy": "Pracujeme na uvolnění prostředků. Zkuste to prosím znovu za několik minut.", + "busyTitle": "Služba Místnost je nyní zaneprázdněna", + "errorAlreadyInvited": "{{displayName}} byl(a) již pozván(a)", + "errorInvite": "Konference ještě nebyla založena. Zkuste to prosím později.", + "errorInviteFailed": "Na vyřešení problému pracujeme. Zkuste to prosím znovu později.", + "errorInviteFailedTitle": "Pozvání {{displayName}} selhalo", + "errorInviteTitle": "Chyba při pozvání do místnosti", + "pending": "{{displayName}} byl(a) pozván(a)" + }, + "videoStatus": { + "adjustFor": "Přizpůsobit pro", + "audioOnly": "AU", + "audioOnlyExpanded": "Jste v režimu slabého připojení. V tomto režimu je k dispozici jen zvuk a sdílení obrazovky.", + "bestPerformance": "Nejlepší výkon", + "callQuality": "Kvalita hovoru", + "hd": "HD", + "hdTooltip": "Sledujete obraz ve vysoké kvalitě", + "highDefinition": "Vysoká kvalita", + "highestQuality": "Nejvyšší kvalita", + "labelTooiltipNoVideo": "Žádné video", + "labelTooltipAudioOnly": "Zapnut režim slabého připojení", + "ld": "LD", + "ldTooltip": "Sledujete obraz v nízké kvalitě", + "lowDefinition": "Nízká kvalita", + "performanceSettings": "Nastavení výkonu", + "recording": "Probíhá nahrávání", + "sd": "SD", + "sdTooltip": "Sledujete obraz v běžné kvalitě", + "standardDefinition": "Běžná kvalita", + "streaming": "Probíhá streamování" + }, + "videothumbnail": { + "connectionInfo": "Informace o spojení", + "demote": "Přesunout na návštěvníka", + "domute": "Ztišit", + "domuteOthers": "Ztišit všechny ostatní", + "domuteVideo": "Vypnout kameru", + "domuteVideoOfOthers": "Vypnout kameru ostatních", + "flip": "Převrátit", + "grantModerator": "Pověřit moderátora", + "hideSelfView": "Skrýt vlastní obraz", + "kick": "Vyhodit", + "mirrorVideo": "Zrcadlit moje video", + "moderator": "Moderátor", + "mute": "Účastník je ztišen", + "muted": "Ztišen/a", + "pinToStage": "Zobrazit na stage", + "remoteControl": "Zapnout / Vypnout vzdálené ovládání", + "screenSharing": "Účastník sdílí svou obrazovku", + "show": "Zobrazit na stage", + "showSelfView": "Zobrazit vlastní obraz", + "unpinFromStage": "Odepnout", + "verify": "Ověřit účastníka", + "videoMuted": "Kamera vypnuta", + "videomute": "Účastník si vypnul kameru" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Aktuální pozadí: {{background}}", + "selectBackground": "Vyberte pozadí" + }, + "addBackground": "Přidat pozadí", + "apply": "Aplikovat", + "backgroundEffectError": "Nepodařilo se použít efekt pozadí.", + "blur": "Rozmazat", + "deleteImage": "Smazat obrázek", + "desktopShare": "Sdílení obrazovky", + "desktopShareError": "Nelze zapnout sdílení obrazovky", + "image1": "Pláž", + "image2": "Bílá neutrální zěď", + "image3": "Bíla prázdná místo", + "image4": "Černá podlahová lampa", + "image5": "Hora", + "image6": "Les", + "image7": "Východ slunce", + "none": "Žádné", + "pleaseWait": "Čekejte prosím…", + "removeBackground": "Smazat pozadí", + "slightBlur": "Lehké rozmazání", + "title": "Virtuální pozadí", + "uploadedImage": "Nahraný obrázek {{index}}", + "webAssemblyWarning": "WebAssembly není podporované", + "webAssemblyWarningDescription": "WebAssembly vypnuto nebo není podporované na tomto prohlížeči" + }, + "visitors": { + "chatIndicator": "(návštěvník)", + "joinMeeting": { + "description": "V současné době jste pozorovatelem této konference.", + "raiseHand": "Zvednout ruku", + "title": "Připojování ke schůzce", + "wishToSpeak": "Pokud chcete mluvit, zvedněte prosím níže ruku a počkejte na souhlas moderátora." + }, + "labelTooltip": "Počet návštěvníků: {{count}}", + "notification": { + "demoteDescription": "by poslán {{actor}}, zvedněte ruku pro účast", + "noMainParticipantsDescription": "Účastník musí zahájit schůzku. Zkuste to prosím znovu za chvíli.", + "noMainParticipantsTitle": "Toto setkání ještě nezačalo.", + "noVisitorLobby": "Nemůžete se připojit, pokud je pro schůzku zvolena lobby.", + "notAllowedPromotion": "Účastník musí váš požadavek nejprve povolit.", + "title": "Jste návštěvníkem schůzky" + }, + "waitingMessage": "Ke schůzce se připojíte, jakmile bude živě!" + }, + "volumeSlider": "Posuvník hlasitosti", + "welcomepage": { + "accessibilityLabel": { + "join": "Dotykem se připojíte", + "roomname": "Zadejte jméno místnosti" + }, + "addMeetingName": "Přidat název setkání", + "appDescription": "Zavolejte si s celým týmem. A klidně pozvěte každého, koho znáte. {{app}} je plně šifrované řešení video konferencí se 100% otevřeným kódem, které můžete používat zdarma celý a každý den — aniž byste potřebovali účet.", + "audioVideoSwitch": { + "audio": "Zvuk", + "video": "Obraz" + }, + "calendar": "Kalendář", + "connectCalendarButton": "Připojit váš kalendář", + "connectCalendarText": "Připojte si kalendář a uvidíte všechny videohovory v {{app}}. Můžete si také přidat videohovory {{provider}} do kalendáře a spouštět je jedním klikem.", + "enterRoomTitle": "Začít nový videohovor", + "getHelp": "Získat pomoc", + "go": "ZAČÍT", + "goSmall": "ZAČÍT", + "headerSubtitle": "Bezpečné a kvalitní setkávání", + "headerTitle": "Jitsi Meet", + "info": "Informace o vytáčení", + "jitsiOnMobile": "Jitsi na mobilu – stáhněte si naše aplikace a spusťte hovor odkudkoliv", + "join": "VYTVOŘIT / PŘIPOJIT", + "logo": { + "calendar": "Logo kalendáře", + "desktopPreviewThumbnail": "Náhled zobrazení plochy", + "googleLogo": "Google Logo", + "logoDeepLinking": "Jitsi meet logo", + "microsoftLogo": "Microsoft logo", + "policyLogo": "Policy logo" + }, + "meetingsAccessibilityLabel": "Setkání", + "mobileDownLoadLinkAndroid": "Stáhněte si mobilní aplikaci pro Android", + "mobileDownLoadLinkFDroid": "Stáhněte si mobilní aplikaci pro F-Droid", + "mobileDownLoadLinkIos": "Stáhněte si mobilní aplikaci pro iOS", + "moderatedMessage": "Nebo si předem rezervujte adresu setkání, kde budete jediný moderátor.", + "privacy": "Soukromí", + "recentList": "Nedávné", + "recentListDelete": "Smazat", + "recentListEmpty": "Váš seznam nedávných hovorů je prázdný. Spojte se s kolegy z Vašeho týmu, poté zde naleznete seznam nedávných hovorů.", + "recentMeetings": "Vaše nedávné setkání", + "reducedUIText": "Vítejte v {{app}}!", + "roomNameAllowedChars": "Název setkání nesmí obsahovat žádný z těchto znaků: ?, &, :, ', \", %, #.", + "roomname": "Zadejte název místnosti", + "roomnameHint": "Zadejte název nebo adresu místnosti, ke které se chcete připojit. Pokud jste místnost vytvořili, ujistěte se, že ostatní účastníci schůzky zadají stejný název jako vy.", + "sendFeedback": "Poslat zpětnou vazbu", + "settings": "Nastavení", + "startMeeting": "Zahájit setkání", + "terms": "Podmínky používání", + "title": "Bezpečná, plnohodnotná a zdarma dostupná videokonference", + "upcomingMeetings": "Vaše nadcházející setkání" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Tabule" + }, + "screenTitle": "Tabule" + } +} diff --git a/lang/main-da.json b/lang/main-da.json new file mode 100644 index 0000000..e37af71 --- /dev/null +++ b/lang/main-da.json @@ -0,0 +1,770 @@ +{ + "addPeople": { + "add": "Invitér", + "countryNotSupported": "Vi supporterer ikke dette land endnu.", + "countryReminder": "Ringer du til uden for USA? Benyt venligst landekode!", + "disabled": "Du kan ikke invitere deltagere.", + "failedToAdd": "Kunne ikke tilføje deltagere.", + "footerText": "Udgående opkald er slået fra.", + "loading": "Søger efter personer og telefonnumre.", + "loadingNumber": "Validerer telefonnummer", + "loadingPeople": "Søger efter folk der kan inviteres", + "noResults": "Der blev ikke fundet noget", + "noValidNumbers": "Indtast venligst er telefonnummer", + "searchNumbers": "Tilføj telefonnummer", + "searchPeople": "Søg efter personer", + "searchPeopleAndNumbers": "Søg efter personer eller tilføj deres telefonnummer", + "telephone": "Telefon: {{number}}", + "title": "Invitér personer til dette møde" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Høretelefoner", + "none": "Der er ikke nogen lydenheder tilgængelige", + "phone": "Telefon", + "speaker": "Højtaler" + }, + "audioOnly": { + "audioOnly": "Kun lyd" + }, + "calendarSync": { + "addMeetingURL": "Tilføj et mødelink", + "confirmAddLink": "Ønsker du at tilføje et Jitsi link til denne aftale?", + "error": { + "appConfiguration": "Kalenderintegration er ikke sat korrekt op.", + "generic": "Der er sket en fejl. Verificér venligst dine kalenderindstillinger eller prøv at genopfriske din kalender.", + "notSignedIn": "Der er sket en fejl under login for at hente kalenderaftalerne. Kontroller venligst dine kalenderindstillinger og forsøg at logge ind igen." + }, + "join": "Deltag", + "joinTooltip": "Deltag i mødet", + "nextMeeting": "Næste møde", + "noEvents": "Der er ikke nogen kommende aftaler i kalenderen.", + "ongoingMeeting": "Igangværende møde", + "permissionButton": "Åbn indstillinger", + "permissionMessage": "Kalendertilladelsen er nødvendig for at kunne se dine aftaler i appen.", + "refresh": "Genopfrisk aftaler", + "today": "I dag" + }, + "chat": { + "error": "Fejl: din besked \"{{originalText}}\" blev ikke sendt. Årsag: {{error}}", + "fieldPlaceHolder": "Skriv din besked her", + "messageTo": "Privat besked til {{recipient}}", + "messagebox": "Indtast en besked", + "nickname": { + "popover": "Vælg dit navn/alias", + "title": "Indtast et navn/alias for at deltage i chatten", + "titleWithPolls": "Indtast et navn/alias for at deltage i chatten" + }, + "noMessagesMessage": "Der er ikke nogen beskeder i mødet endnu. Skriv noget!", + "privateNotice": "Privat besked til {{recipient}}", + "sendButton": "Send", + "title": "Chat", + "titleWithPolls": "Chat", + "you": "Dig" + }, + "chromeExtensionBanner": { + "buttonText": "Installér Chrome plugin", + "dontShowAgain": "Vis ikke dette igen", + "installExtensionText": "Installér plugin for Google Kalender og Office 365 integration" + }, + "connectingOverlay": { + "joiningRoom": "Forbinder dig til mødet…" + }, + "connection": { + "ATTACHED": "Forbundet", + "AUTHENTICATING": "Godkender", + "AUTHFAIL": "Godkendelse lykkedes ikke", + "CONNECTED": "Forbundet", + "CONNECTING": "Forbinder", + "CONNFAIL": "Forbindelse kunne ikke oprettes", + "DISCONNECTED": "Frakoblet", + "DISCONNECTING": "Frakobler", + "ERROR": "Fejl", + "GET_SESSION_ID_ERROR": "Hent session-id fejl: {{code}}", + "GOT_SESSION_ID": "Henter session-ID… Udført", + "LOW_BANDWIDTH": "Video for {{displayName}} er slået fra for at spare båndbredde", + "RECONNECTING": "Et netværksproblem opstod. Forbinder igen…" + }, + "connectionindicator": { + "address": "Adresse:", + "bandwidth": "Estimeret båndbredde:", + "bitrate": "Bitrate:", + "bridgeCount": "Server antal: ", + "connectedTo": "Forbundet til:", + "framerate": "Frame rate:", + "less": "Vis mindre", + "localaddress": "Lokal adresse:", + "localaddress_plural": "Lokale adresser:", + "localport": "Lokal port:", + "localport_plural": "Lokale porte:", + "more": "Vis mere", + "packetloss": "Pakketab:", + "quality": { + "good": "God", + "inactive": "Inaktiv", + "lost": "Tabt", + "nonoptimal": "Ikke optimal", + "poor": "Dårlig" + }, + "remoteaddress": "Fjernadresse:", + "remoteaddress_plural": "Fjernadresser:", + "remoteport": "Fjern port:", + "remoteport_plural": "Fjern porte:", + "resolution": "Opløsning:", + "status": "Forbindelse:", + "transport": "Transport:", + "transport_plural": "Transporter:", + "turn": " (turn)" + }, + "dateUtils": { + "earlier": "Tidligere", + "today": "I dag", + "yesterday": "I går" + }, + "deepLinking": { + "appNotInstalled": "Du skal bruge {{app}} mobil appen for at forbinde til dette møde med din mobiltelefon.", + "description": "Skete der ikke noget? Vi forsøgte at åbne dit videomøde i {{app}} desktop appen. Prøv igen eller start mødet på {{app}} web app.", + "descriptionWithoutWeb": "", + "downloadApp": "Download appen", + "launchWebButton": "Start på web", + "openApp": "Fortsæt til appen", + "title": "Start dit møde i {{app}}…", + "tryAgainButton": "Prøv igen" + }, + "defaultLink": "e.g. {{url}}", + "defaultNickname": "ex. Jane Pink", + "deviceError": { + "cameraError": "Kunne ikke forbinde til dit kamera", + "cameraPermission": "Kameratilladelse mangler", + "microphoneError": "Kunne ikke forbinde til din mikrofon", + "microphonePermission": "Mikrofontilladelse mangler" + }, + "deviceSelection": { + "noPermission": "Tilladelse ikke givet", + "previewUnavailable": "Forhåndsvisning mangler", + "selectADevice": "Vælg en enhed", + "testAudio": "Afspil testlyd" + }, + "dialOut": { + "statusMessage": "er nu {{status}}" + }, + "dialog": { + "Back": "Tilbage", + "Cancel": "Annullér", + "IamHost": "Jeg er vært", + "Ok": "OK", + "Remove": "Fjern", + "Share": "Del", + "Submit": "Gem", + "WaitForHostMsg": "Mødet er ikke startet endnu. Hvis du er værten, log venligst ind. Ellers vent på at værten kommer", + "WaitingForHost": "Venter på vært …", + "Yes": "Ja", + "accessibilityLabel": { + "liveStreaming": "Livestream" + }, + "allow": "Tillad", + "alreadySharedVideoMsg": "En anden deltager deler allerede en video. Denne konference tillader kun en delt video af gangen.", + "alreadySharedVideoTitle": "Det er kun muligt at dele én video ad gangen", + "applicationWindow": "Applikationsvindue", + "cameraConstraintFailedError": "Dit kamera lever ikke op til de nødvendige krav..", + "cameraNotFoundError": "Kamera kunne ikke findes.", + "cameraNotSendingData": "Vi kan ikke tilgå dit kamera. Kontrollér venligst om der er en anden applikation der gør brug af dit kamera, eller vælg et andet kamera og genindlæs siden.", + "cameraNotSendingDataTitle": "Kan ikke tilgå kamera", + "cameraPermissionDeniedError": "Du har ikke givet tilladelse til at bruge dit kamera. Du kan stadig deltage i mødet, men de andre deltagere vil ikke kunne se dig. Gør brug af kameraknappen i adressebaren for at give tilladelse.", + "cameraUnknownError": "Kan ikke gøre brug af dit kamera, årsag ukendt.", + "cameraUnsupportedResolutionError": "Dit kamera understøtter ikke den nødvendige opløsning.", + "close": "Luk", + "conferenceDisconnectMsg": "Kontroller venligst din netværksforbindelse. Forbinder igen om {{seconds}} sekunder…", + "conferenceDisconnectTitle": "Din forbindelse er blevet afbrudt.", + "conferenceReloadMsg": "Forsøger at genoprette forbindelsen. Forbinder igen om {{seconds}} sekunder…", + "conferenceReloadTitle": "Der er desværre gået noget galt.", + "confirm": "Bekræft", + "confirmNo": "Nej", + "confirmYes": "Ja", + "connectError": "Det var ikke muligt at forbinde til mødet.", + "connectErrorWithMsg": "Det var ikke muligt at forbinde til mødet: {{msg}}", + "connecting": "Forbinder", + "contactSupport": "Kontakt support", + "copy": "Kopiér invitation", + "dismiss": "Afvis", + "displayNameRequired": "Navn/alias er påkrævet", + "done": "Gem", + "enterDisplayName": "Indtast venligst dit navn/alias", + "error": "Fejl", + "externalInstallationMsg": "Du skal installere vores skærmdelingsplugin.", + "externalInstallationTitle": "Plugin skal bruges", + "goToStore": "Gå til webstore", + "gracefulShutdown": "Vores service er pt. under vedligeholdelse. Prøv igen senere.", + "incorrectPassword": "Forkert brugernavn eller adgangskode", + "incorrectRoomLockPassword": "", + "inlineInstallExtension": "Installér nu", + "inlineInstallationMsg": "Du skal installere vores skærmdelingsplugin.", + "internalError": "Der er opstået en fejl: {{error}}", + "internalErrorTitle": "Intern fejl", + "kickMessage": "Du er blevet afbrudt fra mødet!", + "kickParticipantButton": "Smid ud", + "kickParticipantDialog": "Er du sikker på at du vil smide denne deltager ud?", + "kickParticipantTitle": "Smid denne deltager ud?", + "kickTitle": "Smidt ud af mødet", + "liveStreaming": "Livestreaming", + "liveStreamingDisabledForGuestTooltip": "Gæster kan ikke starte en livestream.", + "liveStreamingDisabledTooltip": "Livestreaming er slået fra.", + "lockMessage": "Kunne ikke sikre mødet.", + "lockRoom": "Tilføj adgangskode", + "lockTitle": "Sikring fejlet", + "logoutQuestion": "Er du sikker på at du vil logge ud og stoppe mødet?", + "logoutTitle": "Log ud", + "maxUsersLimitReached": "Grænsen for antal deltagere er nået. Mødet er fuldt. Kontakt ejeren af mødet eller prøv igen senere!", + "maxUsersLimitReachedTitle": "Maksimum antal deltagere nået", + "micConstraintFailedError": "Din mikrofon supporterer ikke de nødvendige specifikationer.", + "micNotFoundError": "Mikrofon ikke fundet.", + "micNotSendingData": "Vi kunne ikke tilgå din mikrofon. Vælg en anden mikrofon under indstillinger eller genindlæs applikationen.", + "micNotSendingDataTitle": "Kunne ikke tilgå din mikrofon", + "micPermissionDeniedError": "Du har ikke givet tilladelse til at bruge din mikrofon. Du kan stadig deltage i mødet men de andre deltagere kan ikke høre dig. Benyt kameraknappen i adressebaren for at give tilladelse.", + "micUnknownError": "Kan ikke tilgå mikrofon af ukendt årsag.", + "muteEveryoneDialog": "Er du sikker på at du vil slå lyden fra for alle? Du kan ikke tænde lyden igen, men de kan selv tænde til enhver tid.", + "muteEveryoneElseDialog": "Er du sikker på at du vil slå lyden fra for alle andre end denne deltager? Du kan ikke tænde lyden igen, men de kan selv tænde til enhver tid.", + "muteEveryoneElseTitle": "Slå lyd fra for alle undtagen {{whom}}?", + "muteEveryoneSelf": "Dig selv", + "muteEveryoneStartMuted": "Lyden er slået fra for alle fra nu af", + "muteEveryoneTitle": "Slå lyd fra for alle?", + "muteParticipantBody": "Du kan ikke tænde for deres mikrofon, men de kan selv tænde for deres mikrofon til enhver tid.", + "muteParticipantButton": "Slå lyd fra", + "muteParticipantDialog": "Er du sikker på at du vil slå lyden fra for denne deltager? Du kan ikke tænde igen, men de kan selv tænde til enhver tid.", + "muteParticipantTitle": "Slå lyden fra for denne deltager?", + "passwordLabel": "Adgangskode", + "passwordNotSupported": "Det er ikke understøttet at sætte en adgangskode for mødet", + "passwordNotSupportedTitle": "Adgangskode er ikke understøttet", + "passwordRequired": "Adgangskode påkrævet", + "popupError": "Din browser blokerer for pop op-vinduer fra denne hjemmeside. Slå venligst pop op-vinduer til i din browsers indstillinger og forsøg igen.", + "popupErrorTitle": "Pop op-vinduer er blokeret", + "recording": "Optager", + "recordingDisabledForGuestTooltip": "Gæster kan ikke starte en optagelse", + "recordingDisabledTooltip": "Optagefunktionalitet er slået fra", + "rejoinNow": "Deltag igen", + "remoteControlAllowedMessage": "{{user}} accepterede din anmodning om fjernstyring!", + "remoteControlDeniedMessage": "{{user}} afviste din anmodning om fjernstyring!", + "remoteControlErrorMessage": "En fejl er opstået ved anmodning om fjernstyring for {{user}}!", + "remoteControlRequestMessage": "Vil du tillade at {{user}} fjerstyrer din computer?", + "remoteControlShareScreenWarning": "Bemærk at hvis du vælger \"Tillad\" så vil du tillade fjernstyring!", + "remoteControlStopMessage": "Fjernstyringssessionen er afsluttet!", + "remoteControlTitle": "Fjernstyring", + "removePassword": "Fjern adgangskode", + "removeSharedVideoMsg": "Er du sikker på at du vil fjerne din delte video?", + "removeSharedVideoTitle": "Fjern delt video", + "reservationError": "Reservation - system fejl", + "reservationErrorMsg": "Fejlkode: {{code}}, fejl: {{msg}}", + "retry": "Forsøg igen", + "screenSharingFailedToInstall": "Skærmdelings-plugin kunne ikke installeres.", + "screenSharingFailedToInstallTitle": "Skærmdelings-plugin kunne ikke installeres.", + "screenSharingFirefoxPermissionDeniedError": "Noget gik galt under skærmdeling. Kontrollér venligst at du har givet tilladelse til skærmdeling. ", + "screenSharingFirefoxPermissionDeniedTitle": "Skærmdeling kunne ikke startes!", + "screenSharingPermissionDeniedError": "Noget gik galt under skærmdeling. Kontrollér venligst at du har givet tilladelse til skærmdeling. Genindlæs siden og forsøg igen.", + "sendPrivateMessage": "Du har modtaget en privat besked. Ønsker du at svare privat eller til gruppen?", + "sendPrivateMessageCancel": "Send til gruppen", + "sendPrivateMessageOk": "Send privat", + "sendPrivateMessageTitle": "Send privat?", + "serviceUnavailable": "Service er ikke tilgængelig", + "sessTerminated": "Møde afsluttet", + "shareVideoLinkError": "Angiv venligst et gyldigt link.", + "shareVideoTitle": "Del en video", + "shareYourScreen": "Del din skærm", + "shareYourScreenDisabled": "Skærmdeling er ikke slået til.", + "shareYourScreenDisabledForGuest": "Gæster kan ikke dele deres skærm.", + "startLiveStreaming": "Start livestream", + "startRecording": "Start optagelse", + "startRemoteControlErrorMessage": "Der er sket en fejl under opstart af fjernstyringssessionen!", + "stopLiveStreaming": "Stop livestream", + "stopRecording": "Stop optagelse", + "stopRecordingWarning": "Er du sikker på at du ønsker at stoppe optagelsen?", + "stopStreamingWarning": "Er du sikker på at du ønsker at stoppe livestreaming?", + "streamKey": "Livestream-nøgle", + "thankYou": "Tak for at du har benyttet {{appName}}!", + "token": "token", + "tokenAuthFailed": "Beklager, du kan ikke deltage i dette møde.", + "tokenAuthFailedTitle": "Login fejlede", + "transcribing": "Transskribering", + "unlockRoom": "Fjern mødeadgangskode", + "userPassword": "Brugeradgangskode", + "yourEntireScreen": "Hele din skærm" + }, + "documentSharing": { + "title": "Delt dokument" + }, + "feedback": { + "average": "Normal", + "bad": "Dårlig", + "detailsLabel": "Uddyb.", + "good": "God", + "rateExperience": "Vurdér din oplevelse", + "veryBad": "Meget dårlig", + "veryGood": "Meget god" + }, + "incomingCall": { + "answer": "Besvar", + "audioCallTitle": "Indgående opkald", + "decline": "Afvis", + "productLabel": "Fra Appinux skærmbesøg", + "videoCallTitle": "Indgående videoopkald" + }, + "info": { + "accessibilityLabel": "Vis info", + "addPassword": "Tilføj adgangskode", + "cancelPassword": "Annullér adgangskode", + "conferenceURL": "Link:", + "country": "Land", + "dialANumber": "For at deltage i mødet ring til et af følgende telefonnumre og indtast pinkode.", + "dialInConferenceID": "Pinkode:", + "dialInNotSupported": "Deltagelse via telefonopkald er pt. ikke understøttet.", + "dialInNumber": "Ring ind:", + "dialInSummaryError": "Der er opstået en fejl under indhenting af telefonopkaldsdetaljer. Forsøg venligst igen senere.", + "dialInTollFree": "Gratis", + "genericError": "Der er opstået en fejl", + "inviteLiveStream": "For at se en livestream i dette møde klik på dette link: {{url}}", + "invitePhone": "Ring-ind: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "", + "inviteURLFirstPartGeneral": "Der er blevet inviteret til at deltage i et møde.", + "inviteURLFirstPartPersonal": "{{name}} inviterer dig til at deltage i et møde.\n", + "inviteURLSecondPart": "\nDeltag i mødet:\n{{url}}\n", + "label": "Mødeinformation", + "liveStreamURL": "Livestream:", + "moreNumbers": "Flere telefonnumre", + "noNumbers": "Ring-ind nummer findes ikke.", + "noPassword": "Ingen", + "noRoom": "Ring-ind møde information blev ikke angivet.", + "numbers": "Ring-ind numre", + "password": "Adgangskode:", + "title": "Del", + "tooltip": "Del link og ring-ind information for dette møde" + }, + "inlineDialogFailure": { + "msg": "Der er opstået en fejl.", + "retry": "Forsøg igen", + "support": "Support", + "supportMsg": "Hvis denne fejl bliver ved, kontakt da support" + }, + "inviteDialog": { + "alertText": "Kunne ikke invitere nogle af deltagerne.", + "header": "Invitér", + "searchCallOnlyPlaceholder": "Indtast telefonnummer", + "searchPeopleOnlyPlaceholder": "Søg efter deltagere", + "searchPlaceholder": "Deltager eller telefonnummer", + "send": "Send" + }, + "keyboardShortcuts": { + "focusLocal": "Sæt fokus din video", + "focusRemote": "Sæt fokus på en anden persons billede", + "fullScreen": "Vis eller annullér fuld skærm", + "keyboardShortcuts": "Tastaturgenveje", + "localRecording": "Vis eller skjul optagelseskontrolknapper", + "mute": "Slå din mikrofon til eller fra", + "pushToTalk": "Tryk for at tale", + "raiseHand": "Løft eller sænk din hånd", + "showSpeakerStats": "Vis højtalerstatistik", + "toggleChat": "Åbn eller luk chat", + "toggleFilmstrip": "Vis eller skjul små videobilleder", + "toggleScreensharing": "Skift mellem video- og skærmdeling", + "toggleShortcuts": "Vis eller skjul tastaturgenveje", + "videoMute": "Tænd eller sluk dit kamera", + "videoQuality": "Indstil videokvalitet" + }, + "liveStreaming": { + "busy": "Der arbejdes på at frigive streamingressourcer, forsøg venligst igen om et par minutter.", + "busyTitle": "Alle streams er optaget", + "changeSignIn": "Skift konto.", + "choose": "Vælg en livestream", + "chooseCTA": "Vælg en stream-mulighed. Du er pt. logget ind som {{email}}.", + "enterStreamKey": "Indtast din livestream-nøgle til Youtube her.", + "error": "Fejl under livestreaming. Forsøg venligst igen.", + "errorAPI": "En fejl opstod ved forsøg på at tilgå din YouTube-broadcast. Forsøg venligst at logge ind igen.", + "errorLiveStreamNotEnabled": "Livestreaming er ikke slået til for {{email}}. Slå venligst livestreaming til eller log ind på en konto der har livestreaming slået til.", + "expandedOff": "Livestream er stoppet", + "expandedOn": "Mødet bliver pt. streamet til Youtube.", + "expandedPending": "Livestreaming starter…", + "failedToStart": "Kunne ikke starte livestreaming", + "getStreamKeyManually": "Vi kunne ikke hente nogle livestreams. Forsøg at hente din livestream-nøgle fra YouTube.", + "invalidStreamKey": "Livestream-nøgle er muligvis forkert.", + "off": "Livestreaming er stoppet", + "offBy": "{{name}} stoppede livestreaming", + "on": "Livestreaming", + "onBy": "{{name}} startede livestreaming", + "pending": "Starter livestream…", + "serviceName": "Livestreaming-service", + "signIn": "Log ind med Google", + "signInCTA": "Log ind eller indtast din livestream-nøgle fra YouTube.", + "signOut": "Log ud", + "signedInAs": "Du er pt. logget ind som:", + "start": "Start en livestream", + "streamIdHelp": "Hvad er dette?", + "title": "Livestream", + "unavailableTitle": "Livestreaming er ikke tilgængelig" + }, + "localRecording": { + "clientState": { + "off": "Slået fra", + "on": "Slået til", + "unknown": "Ukendt" + }, + "dialogTitle": "Optagelseskontrolknapper", + "duration": "Varighed", + "durationNA": "Ikke tilgængelig", + "encoding": "Encoding", + "label": "Optager", + "labelToolTip": "Optagelse er slået til", + "localRecording": "Lokal optagelse", + "me": "Mig", + "messages": { + "engaged": "Optagelse er slået til.", + "finished": "Optagelse {{token}} afsluttet. Send venligst den optagne fil til moderator.", + "finishedModerator": "Optagelse {{token}} afsluttet. Optagelsen er gemt. Bed deltageren om at sende deres optagelser.", + "notModerator": "Du er ikke moderator. Du kan ikke starte eller stoppe optagelser." + }, + "moderator": "Moderator", + "no": "Nej", + "participant": "Deltager", + "participantStats": "Deltagerstatistik", + "sessionToken": "Sessionsnøgle", + "start": "Start optagelse", + "stop": "Stop optagelse", + "yes": "Ja" + }, + "lockRoomPassword": "adgangskode", + "lockRoomPasswordUppercase": "Adgangskode", + "me": "mig", + "notify": { + "connectedOneMember": "{{name}} deltager nu i mødet", + "connectedThreePlusMembers": "{{name}} og {{count}} andre deltager nu i mødet", + "connectedTwoMembers": "{{first}} og {{second}} deltager nu i mødet", + "disconnected": "Afbrudt", + "focus": "Konferencefokus", + "focusFail": "{{component}} ikke tilgængelig - forsøg igen om {{ms}} sekunder", + "grantedTo": "Moderatorrettigheder er givet til {{to}}!", + "invitedOneMember": "{{name}} er blevet inviteret", + "invitedThreePlusMembers": "{{name}} og {{count}} andre er blevet inviteret", + "invitedTwoMembers": "{{first}} og {{second}} er blevet inviteret", + "kickParticipant": "{{kicked}} blev afbrudt fra mødet af {{kicker}}", + "me": "Mig", + "moderator": "Moderatorrettigheder givet", + "muted": "Du har startet samtalen med lyden slået fra.", + "mutedRemotelyDescription": "", + "mutedRemotelyTitle": "Din lyd er slået fra af {{participantDisplayName}}", + "mutedTitle": "Din lyd er slået fra", + "newDeviceAction": "Benyt", + "newDeviceAudioTitle": "Ny lydenhed fundet", + "newDeviceCameraTitle": "Nyt kamera fundet", + "passwordRemovedRemotely": "", + "passwordSetRemotely": "", + "raisedHand": "{{name}} ønsker at få ordet.", + "somebody": "Nogen", + "startSilentDescription": "", + "startSilentTitle": "", + "suboptimalExperienceDescription": "Hmmm… vi er bange for at din oplevelse med {{appName}} ikke vil være optimal. Vi arbejder på at forbedre dette, men indtil da forsøg venligst at bruge en af følgende fuldt understøttede internet browsere.", + "suboptimalExperienceTitle": "Browser-advarsel", + "unmute": "" + }, + "passwordDigitsOnly": "Op til {{number}} tal", + "passwordSetRemotely": "Sat af et andet medlem", + "polls": { + "errors": { + "notUniqueOption": "Valgmulighederne skal være unikke" + } + }, + "poweredby": "Powered by", + "presenceStatus": { + "busy": "Optaget", + "calling": "Ringer op…", + "connected": "Forbundet", + "connecting": "Forbinder…", + "connecting2": "Forbinder*…", + "disconnected": "Forbindelse afbrudt", + "expired": "Udløbet", + "ignored": "Ignoreret", + "initializingCall": "Starter opkald…", + "invited": "Inviteret", + "rejected": "Afvist", + "ringing": "Ringer…" + }, + "profile": { + "setDisplayNameLabel": "Vælg navn/alias", + "setEmailInput": "Indtast email-adresse", + "setEmailLabel": "Indtast Gravatar-email-adresse", + "title": "Profil" + }, + "raisedHand": "Ønsker at tale", + "recording": { + "authDropboxText": "Upload til Dropbox", + "availableSpace": "Tilgængelig plads: {{spaceLeft}} MB (plads til ca. {{duration}} minutters optagelse)", + "beta": "BETA", + "busy": "Der arbejdes på at frigive optagelsesressourcer. Prøv venligst igen om nogle få minutter.", + "busyTitle": "Alle optagere er pt. optaget", + "error": "Fejl under optagelse, forsøg venligst igen om lidt.", + "expandedOff": "Optagelse er stoppet", + "expandedOn": "Mødet bliver pt. optaget", + "expandedPending": "Optagelse starter…", + "failedToStart": "Kunne ikke starte optagelse", + "fileSharingdescription": "Del optagelse med deltagere", + "live": "LIVE", + "loggedIn": "Logget ind som {{userName}}", + "off": "Optagelse stoppet", + "offBy": "{{name}} stoppede optagelsen", + "on": "Optager", + "onBy": "{{name}} startede optagelsen", + "pending": "Gør klar til at optage mødet…", + "rec": "REC", + "serviceDescription": "Din optagelse bliver gemt af optagelsesservicen", + "serviceName": "Optagelsesservice", + "signIn": "Log ind", + "signOut": "Log ud", + "title": "Optager", + "unavailable": "Optagelsesservice {{serviceName}} er ikke tilgængelig. Der arbejdes på at løse problemet, forsøg igen senere.", + "unavailableTitle": "Optagelse ikke tilgængelig" + }, + "sectionList": { + "pullToRefresh": "Træk ned for at opdatere" + }, + "settings": { + "calendar": { + "about": "{{appName}}s kalenderintegration benyttes til sikkert at tilgå din kalender så den kan læse fremtidige aftaler.", + "disconnect": "Afbryd", + "microsoftSignIn": "Log ind med Microsoft", + "signedIn": "Henter kalenderaftaler for {{email}}. Tryk på Afbryd for at afbryde forbindelsen.", + "title": "Kalender" + }, + "devices": "Enheder", + "followMe": "Alle følger mig", + "language": "Sprog", + "loggedIn": "Logget ind som {{name}}", + "moderator": "Moderator", + "more": "Mere", + "name": "Navn", + "noDevice": "Ingen", + "selectAudioOutput": "Lydudgang", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "startAudioMuted": "Alle starter med lyden slået fra", + "startVideoMuted": "Alle starter med video slået fra", + "title": "Indstillinger" + }, + "settingsView": { + "advanced": "Avanceret", + "alertOk": "OK", + "alertTitle": "Advarsel", + "alertURLText": "Den indtastede server-URL er ikke korrekt", + "buildInfoSection": "Build Information", + "conferenceSection": "Konference", + "disableCallIntegration": "Slå indbygget opkaldsintegration fra", + "disableP2P": "Slå Peer-To-Peer fra", + "displayName": "Navn/alias", + "email": "Email", + "header": "Indstillinger", + "profileSection": "Profil", + "serverURL": "Server-URL", + "showAdvanced": "Vis avancerede indstillinger", + "startWithAudioMuted": "Start med lyden slået fra", + "startWithVideoMuted": "Start med video slået fra", + "version": "Version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nØnsker du at ringe ind fra din telefon?\n\n{{defaultDialInNumber}}Klik på dette link for at se telefonnummeret for dette møde\n{{dialInfoPageUrl}}", + "mainText": "Klik på det følgende link for at deltage i mødet:\n{{roomUrl}}" + }, + "speaker": "Deltager", + "speakerStats": { + "hours": "{{count}}t", + "minutes": "{{count}}m", + "name": "Navn", + "search": "Søg", + "searchHint": "Søg deltagere", + "seconds": "{{count}}s", + "speakerStats": "Deltagerstatistik", + "speakerTime": "Taletid" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} har brug for tilladelse til din mikrofon og dit kamera." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Forbind igen", + "text": "Tryk på Forbind igen knappen for at deltage igen.", + "title": "Dit møde blev afbrudt da din computer gik i dvale." + }, + "toolbar": { + "Settings": "Indstillinger", + "accessibilityLabel": { + "Settings": "Slå indstillinger fra/til", + "audioOnly": "Tænd/sluk lyd", + "audioRoute": "Vælg lydenhed", + "callQuality": "Indstil opkaldskvalitet", + "cc": "Slå undertekster fra/til", + "chat": "Slå chat fra/til", + "document": "Slå delte dokumenter fra/til", + "download": "Hent vores apps", + "feedback": "Giv feedback", + "fullScreen": "Slå fuld skærm fra/til", + "hangup": "Forlad mødet", + "help": "Hjælp", + "invite": "Invitér deltagere", + "kick": "Smid deltager ud", + "localRecording": "Slå optagelseskontrol fra/til", + "lockRoom": "Slå mødeadgangskode fra/til", + "moreActions": "Slå \"Flere indstillinger\" menu fra/til", + "moreActionsMenu": "Flere indstillinger", + "moreOptions": "Vis flere indstillinger", + "mute": "Slå lyd til/fra", + "muteEveryone": "Slå lyd fra for alle", + "pip": "Slå Billede-i-billede fra/til", + "privateMessage": "Send privatbesked", + "profile": "Redigér profil", + "raiseHand": "Slå løft hånden fra/til", + "recording": "Slå optagelse til/fra", + "remoteMute": "Slå lyd fra for deltager", + "shareRoom": "Invitér nogen", + "shareYourScreen": "Slå skærmdeling fra/til", + "sharedvideo": "Slå videodeling fra/til", + "shortcuts": "Slå genveje fra/til", + "show": "Vis", + "speakerStats": "Slå højtalerinfo fra/til", + "tileView": "Slå gittervisning fra/til", + "toggleCamera": "Slå kamera fra/til", + "videoblur": "Slå baggrundssløring fra/til", + "videomute": "Slå video fra/til" + }, + "addPeople": "Tilføj deltager til mødet", + "audioOnlyOff": "Slå kun-lyd møder fra", + "audioOnlyOn": "Slå kun-lyd møder til", + "audioRoute": "Vælg lydenhed", + "authenticate": "Log ind", + "callQuality": "Indstil opkaldskvalitet", + "chat": "Åbn/luk chat", + "closeChat": "Luk chat", + "documentClose": "Luk delt dokument", + "documentOpen": "Åben delt dokument", + "download": "Hent vores apps", + "enterFullScreen": "Vis fuld skærm", + "enterTileView": "Gittervisning", + "exitFullScreen": "Luk fuld skærm", + "exitTileView": "Luk gittervisning", + "feedback": "Giv feedback", + "hangup": "Forlad", + "help": "Hjælp", + "invite": "Invitér deltagere", + "login": "Log ind", + "logout": "Log ud", + "lowerYourHand": "Tag hånden ned", + "moreActions": "Flere handlinger", + "moreOptions": "Flere indstillinger", + "mute": "Slå lyd fra/til", + "muteEveryone": "Slå lyd fra for alle", + "noAudioSignalDesc": "Hvis du ikke med vilje har slået den fra under systemindstillinger eller hardware, kan du overveje at skifte enhed.", + "noAudioSignalDescSuggestion": "Hvis du ikke med vilje har slået den fra under systemindstillinger eller hardware, skal du overveje at skifte til den foreslåede enhed.", + "noAudioSignalDialInDesc": "Du kan også ringe op ved hjælp af:", + "noAudioSignalDialInLinkDesc": "Opkaldsnumre", + "noAudioSignalTitle": "Der kommer ingen input fra din mikrofon", + "noisyAudioInputDesc": "Det lyder som om din mikrofon laver støj. Overvej venligst at slå lyden fra eller skifte enhed.", + "noisyAudioInputTitle": "Det lyder som om din mikrofon laver støj", + "openChat": "Åbn chat", + "pip": "Benyt Billede-i-billede", + "privateMessage": "Send privat besked", + "profile": "Rediger profil", + "raiseHand": "Ræk hånden op / Tag hånden ned", + "raiseYourHand": "Ræk hånden op", + "shareRoom": "Invitér deltagere", + "sharedvideo": "Del en video", + "shortcuts": "Vis genveje", + "speakerStats": "Deltagerstatistik", + "startScreenSharing": "Start skærmdeling", + "startSubtitles": "Vis undertekster", + "startvideoblur": "Slå baggrundssløring til", + "stopScreenSharing": "Stop skærmdeling", + "stopSharedVideo": "Stop video", + "stopSubtitles": "Skjul undertekster", + "stopvideoblur": "Slå baggrundssløring fra", + "talkWhileMutedPopup": "Forsøger du at sige noget? Din lyd er slået fra.", + "tileViewToggle": "Slå gittervisning fra/til", + "toggleCamera": "Slå kamera fra/til", + "videomute": "Start/stop kamera" + }, + "transcribing": { + "ccButtonTooltip": "Start/stop undertekster", + "error": "Transskription mislykkedes. Prøv venligst igen.", + "expandLabel": "Transskription er slået til", + "failedToStart": "Transskription kunne ikke starte", + "labelToolTip": "Mødet transkriberes", + "off": "Transkription stoppet", + "pending": "Forbereder sig til at transskribere mødet…", + "start": "Begynd at vise undertekster", + "stop": "Stop med at vise undertekster", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Giv tilladelse til at dit kamera og din mikrofon benyttes." + }, + "videoSIPGW": { + "busy": "Vi arbejder på at frigøre ressourcer. Prøv igen om et par minutter", + "busyTitle": "Mødeservice er i øjeblikket optaget", + "errorAlreadyInvited": "{{displayName}} allerede inviteret", + "errorInvite": "Mødet er endnu ikke etableret. Prøv igen senere", + "errorInviteFailed": "Vi arbejder på at løse problemet. Prøv igen senere", + "errorInviteFailedTitle": "Invitationen af {{displayName}} mislykkedes", + "errorInviteTitle": "Fejl ved invitation til møde", + "pending": "{{displayName}} er blevet inviteret" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Du er i kun-lyd-tilstand. Denne tilstand sparer båndbredde, men du kan ikke se andres video", + "callQuality": "Opkaldskvalitet", + "hd": "HD", + "hdTooltip": "Viser høj opløsning", + "highDefinition": "Høj opløsning", + "labelTooiltipNoVideo": "Ingen video", + "labelTooltipAudioOnly": "Kun-lyd er slået til", + "ld": "LD", + "ldTooltip": "Viser lav opløsning", + "lowDefinition": "Lav opløsning", + "onlyAudioAvailable": "Kun-lyd er tilgængelig", + "onlyAudioSupported": "Vi understøtter kun-lyd i denne browser.", + "sd": "SD", + "sdTooltip": "Viser standard opløsning", + "standardDefinition": "Standard opløsning" + }, + "videothumbnail": { + "domute": "Slå lyd fra", + "domuteOthers": "Slå lyd fra for alle andre", + "flip": "Flip", + "kick": "Smid ud", + "moderator": "Moderator", + "mute": "Deltagerens lyd er slået fra", + "muted": "Lyd slået fra", + "remoteControl": "Fjernbetjening", + "show": "", + "videomute": "Deltageren har stoppet kameraet" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Tryk for at deltage", + "roomname": "Skriv mødenavn" + }, + "appDescription": "Chat med hele dit team eller invitér alle du kender. {{app}} er en fuldt krypteret, 100% open source videokonference løsning som du kan bruge hele dagen, hver dag, gratis - uden at du behøver en konto. ", + "audioVideoSwitch": { + "audio": "Lyd", + "video": "Video" + }, + "betingelser": "Betingelser", + "calendar": "Kalender", + "connectCalendarButton": "Forbind til din kalender", + "connectCalendarText": "", + "enterRoomTitle": "Start et nyt møde", + "go": "Start", + "info": "Info", + "join": "Deltag", + "privacy": "Privacy", + "recentList": "Seneste", + "recentListDelete": "Slet", + "recentListEmpty": "Din seneste liste er i øjeblikket tom. Chat med dit team, og du finder alle dine seneste møder her.", + "reducedUIText": "", + "roomname": "Indtast mødenavn", + "roomnameHint": "Indtast mødenavnet på det møde, du vil deltage i.", + "sendFeedback": "Giv tilbagemelding", + "title": "Skærmbesøg & videomøder" + } +} diff --git a/lang/main-de.json b/lang/main-de.json new file mode 100644 index 0000000..dc4dfff --- /dev/null +++ b/lang/main-de.json @@ -0,0 +1,1614 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Konferenzlink: {{url}}" + }, + "add": "Einladen", + "addContacts": "Laden Sie Ihre Kontakte ein", + "contacts": "Kontakte", + "copyInvite": "Sitzungseinladung kopieren", + "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.", + "defaultEmail": "Ihre Standard-E-Mail", + "disabled": "Sie können keine Personen einladen.", + "failedToAdd": "Fehler beim Hinzufügen von Personen", + "googleEmail": "Google-E-Mail", + "inviteMoreHeader": "Sie sind alleine in der Sitzung", + "inviteMoreMailSubject": "An {{appName}} Konferenz teilnehmen", + "inviteMorePrompt": "Mehr Leute einladen", + "linkCopied": "Link in die Zwischenablage kopiert", + "noResults": "Keine passenden Ergebnisse", + "outlookEmail": "Outlook-E-Mail", + "phoneNumbers": "Telefonnummern", + "searching": "Suche…", + "shareInvite": "Einladung zur Versammlung teilen", + "shareLink": "Teilen Sie den Konferenzlink, um andere einzuladen", + "shareStream": "Den Livestreaminglink freigeben", + "sipAddresses": "SIP-Adressen", + "telephone": "Telefon: {{number}}", + "title": "Personen zu dieser Konferenz einladen", + "yahooEmail": "Yahoo-E-Mail" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Auto", + "headphones": "Kopfhörer", + "none": "Keine Audiogeräte verfügbar", + "phone": "Hörer", + "speaker": "Lautsprecher" + }, + "audioOnly": { + "audioOnly": "Geringe Bandbreite" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "z.B. 10000000 für 10 Mbps", + "assumedBandwidthBpsWarning": "Höhere Werte können zu Netzwerk-Problemen führen.", + "customValue": "spezifischer Wert", + "customValueEffect": "setzt den Wert in bps", + "leaveEmpty": "leer lassen", + "leaveEmptyEffect": "aktiviert die automatische Abschätzung", + "possibleValues": "Mögliche Werte", + "setAssumedBandwidthBps": "Angenommene Bandbreite (bps)", + "title": "Einstellungen Bandbreite", + "zeroEffect": "schaltet Video aus" + }, + "breakoutRooms": { + "actions": { + "add": "Breakout-Raum hinzufügen", + "autoAssign": "Automatisch auf Breakout-Räume verteilen", + "close": "Schließen", + "join": "Teilnehmen", + "leaveBreakoutRoom": "Breakout-Raum verlassen", + "more": "Mehr", + "remove": "Entfernen", + "rename": "Umbenennen", + "renameBreakoutRoom": "Breakout-Raum umbenennen", + "sendToBreakoutRoom": "Anwesende in Breakout-Raum verschieben:" + }, + "breakoutList": "Breakout-Liste", + "buttonLabel": "Breakout-Räume", + "defaultName": "Breakout-Raum #{{index}}", + "hideParticipantList": "Personenliste ausblenden", + "mainRoom": "Hauptraum", + "notifications": { + "joined": "Breakout-Raum \"{{name}}\" betreten", + "joinedMainRoom": "Hauptraum betreten", + "joinedTitle": "Breakout-Räume" + }, + "showParticipantList": "Personenliste anzeigen", + "title": "Breakout-Räume" + }, + "calendarSync": { + "addMeetingURL": "Konferenzlink hinzufügen", + "confirmAddLink": "Möchten Sie einen Jitsi-Link zu diesem Termin hinzufügen?", + "error": { + "appConfiguration": "Kalenderintegration ist nicht richtig konfiguriert.", + "generic": "Ein Fehler ist aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, den Kalender zu aktualisieren.", + "notSignedIn": "Ein Fehler ist während der Authentifizierung zur Anzeige von Kalenderterminen aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden." + }, + "join": "Teilnehmen", + "joinTooltip": "An Konferenz teilnehmen", + "nextMeeting": "Nächste Konferenz", + "noEvents": "Es gibt keine bevorstehenden Termine.", + "ongoingMeeting": "Laufende Konferenz", + "permissionButton": "Einstellungen öffnen", + "permissionMessage": "Die App benötigt Zugriff auf den Kalender, um Termine und Konferenzen anzuzeigen.", + "refresh": "Kalender aktualisieren", + "today": "Heute" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Audiogerät auswählen" + }, + "labels": { + "buttonLabel": "Automodus", + "title": "Automodus", + "videoStopped": "Ihre Kamera ist deaktiviert" + } + }, + "chat": { + "enter": "Chat-Raum betreten", + "error": "Fehler: Ihre Nachricht wurde nicht versendet. Grund: {{error}}", + "fieldPlaceHolder": "Geben Sie Ihre Nachricht hier ein", + "lobbyChatMessageTo": "Lobby-Nachricht an {{recipient}}", + "message": "Nachricht", + "messageAccessibleTitle": "{{user}} sagt:", + "messageAccessibleTitleMe": "Ich sage:", + "messageTo": "Private Nachricht an {{recipient}}", + "messagebox": "Nachricht eingeben", + "newMessages": "Neue Nachrichten", + "nickname": { + "popover": "Wähle einen Alias", + "title": "Geben Sie einen Alias zum Chatten ein", + "titleWithCC": "Geben Sie einen Alias zum Chatten und für Untertitel ein", + "titleWithPolls": "Geben Sie einen Alias zum Chatten und für Umfragen ein", + "titleWithPollsAndCC": "Geben Sie einen Alias zum Chatten, für Umfragen und Untertitel ein" + }, + "noMessagesMessage": "Es gibt noch keine Nachricht in dieser Konferenz. Starten Sie hier eine Unterhaltung!", + "privateNotice": "Private Nachricht an {{recipient}}", + "sendButton": "Senden", + "smileysPanel": "Emoji-Auswahl", + "systemDisplayName": "System", + "tabs": { + "chat": "Chatten", + "closedCaptions": "Untertitel", + "polls": "Umfragen" + }, + "title": "Chatten", + "titleWithCC": "Chatten und Untertitel", + "titleWithPolls": "Chatten und Umfragen", + "titleWithPollsAndCC": "Chatten, Umfragen und Untertitel", + "you": "Sie" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome-Erweiterung installieren", + "buttonTextEdge": "Edge-Erweiterung installieren", + "close": "Schließen", + "dontShowAgain": "Hinweis nicht mehr anzeigen", + "installExtensionText": "Installieren Sie die Erweiterung für die Integration von Google Calendar und Office 365" + }, + "closedCaptionsTab": { + "emptyState": "Die Untertitel sind verfügbar, sobald sie von der Moderation gestartet wurden", + "startClosedCaptionsButton": "Untertitel starten" + }, + "connectingOverlay": { + "joiningRoom": "Eine Verbindung zu Ihrer Konferenz wird hergestellt…" + }, + "connection": { + "ATTACHED": "Angehängt", + "AUTHENTICATING": "Authentifizierung läuft", + "AUTHFAIL": "Authentifizierung fehlgeschlagen", + "CONNECTED": "Verbunden", + "CONNECTING": "Verbindung wird hergestellt", + "CONNFAIL": "Verbindungsaufbau gescheitert", + "DISCONNECTED": "Getrennt", + "DISCONNECTING": "Verbindung wird getrennt", + "ERROR": "Fehler", + "FETCH_SESSION_ID": "Sitzungs-ID abrufen …", + "GET_SESSION_ID_ERROR": "Sitzungs-ID-Fehler erhalten: {{code}}", + "GOT_SESSION_ID": "Sitzungs-ID abrufen … beendet", + "LOW_BANDWIDTH": "Video für {{displayName}} wurde ausgeschaltet, um Bandbreite einzusparen" + }, + "connectionindicator": { + "address": "Adresse:", + "audio_ssrc": "Audio-SSRC:", + "bandwidth": "Geschätzte Bandbreite:", + "bitrate": "Bitrate:", + "bridgeCount": "Serverzahl: ", + "codecs": "Codecs (A/V): ", + "connectedTo": "Verbunden mit:", + "e2eeVerified": "E2EE verifiziert:", + "framerate": "Bildwiederholrate:", + "less": "Weniger anzeigen", + "localaddress": "Lokale Adresse:", + "localaddress_plural": "Lokale Adressen:", + "localport": "Lokaler Port:", + "localport_plural": "Lokale Ports:", + "maxEnabledResolution": "max. senden", + "more": "Mehr anzeigen", + "no": "Nein", + "packetloss": "Paketverlust:", + "participant_id": "Personen-ID:", + "quality": { + "good": "Gut", + "inactive": "Inaktiv", + "lost": "Verloren", + "nonoptimal": "Nicht optimal", + "poor": "Schlecht" + }, + "remoteaddress": "Entfernte Adresse:", + "remoteaddress_plural": "Entfernte Adressen:", + "remoteport": "Entfernter Port:", + "remoteport_plural": "Entfernte Ports:", + "resolution": "Auflösung:", + "savelogs": "Logs speichern", + "status": "Verbindung:", + "transport": "Protokoll:", + "transport_plural": "Protokolle:", + "video_ssrc": "Video-SSRC:", + "yes": "Ja" + }, + "dateUtils": { + "earlier": "Früher", + "today": "Heute", + "yesterday": "Gestern" + }, + "deepLinking": { + "appNotInstalled": "Sie benötigen die „{{app}}“-App, um der Konferenz auf dem Smartphone beizutreten.", + "description": "Nichts passiert? Wir haben versucht, die Konferenz in {{app}} zu öffnen. Versuchen Sie es erneut oder treten Sie der Konferenz in {{app}} im Web bei.", + "descriptionNew": "Nichts passiert? Wir haben versucht, die Konferenz in {{app}} zu öffnen.

Versuchen Sie es erneut oder treten Sie der Konferenz im Web bei.", + "descriptionWithoutWeb": "Ist nichts passiert? Wir haben versucht, Ihre Konferenz in der „{{app}}“-Desktop-App zu starten.", + "downloadApp": "App herunterladen", + "downloadMobileApp": "Aus dem App Store herunterladen", + "ifDoNotHaveApp": "Wenn Sie die App noch nicht haben:", + "ifHaveApp": "Wenn Sie die App bereits haben:", + "joinInApp": "Mit der App an der Konferenz teilnehmen", + "joinInAppNew": "Mit der App", + "joinInBrowser": "Im Browser", + "launchMeetingLabel": "Wie möchten Sie an der Konferenz teilnehmen?", + "launchWebButton": "Im Web öffnen", + "noDesktopApp": "Sie haben die App noch nicht installiert?", + "noMobileApp": "Sie haben die App noch nicht installiert?", + "or": "oder", + "termsAndConditions": "Indem Sie fortfahren, stimmen Sie unseren Nutzungsbedingungen zu.", + "title": "Die Konferenz wird in {{app}} geöffnet …", + "titleNew": "Konferenz starten…", + "tryAgainButton": "Erneut versuchen", + "unsupportedBrowser": "Sie verwenden einen Browser, der noch nicht unterstützt wird." + }, + "defaultLink": "Bsp.: {{url}}", + "defaultNickname": "Z. B. Jane Pink", + "deviceError": { + "cameraError": "Fehler beim Zugriff auf die Kamera", + "cameraPermission": "Fehler beim Bezug der Kamera-Zugriffsberechtigungen", + "microphoneError": "Fehler beim Zugriff auf das Mikrofon", + "microphonePermission": "Fehler beim Bezug der Mikrofon-Zugriffsberechtigungen" + }, + "deviceSelection": { + "hid": { + "callControl": "Anrufsteuerung", + "connectedDevices": "Verbundene Geräte:", + "deleteDevice": "Gerät löschen", + "pairDevice": "Gerät verbinden" + }, + "noPermission": "Berechtigungen nicht erteilt", + "previewUnavailable": "Keine Vorschau verfügbar", + "selectADevice": "Ein Gerät wählen", + "testAudio": "Prüfton wiedergeben" + }, + "dialIn": { + "screenTitle": "Einwahldaten" + }, + "dialOut": { + "statusMessage": "ist jetzt {{status}}" + }, + "dialog": { + "Back": "Zurück", + "Cancel": "Abbrechen", + "IamHost": "Ich leite die Konferenz", + "Ok": "OK", + "Remove": "Entfernen", + "Share": "Teilen", + "Submit": "OK", + "Understand": "Verstanden, Stummschaltung beibehalten", + "UnderstandAndUnmute": "Verstanden, bitte Stummschaltung aufheben", + "WaitForHostMsg": "Die Konferenz wurde noch nicht gestartet. Falls Sie die Konferenz leiten, authentifizieren Sie sich bitte. Warten Sie andernfalls, bis die Konferenz gestartet wird.", + "WaitForHostNoAuthMsg": "Die Konferenz wurde noch nicht gestartet. Bitte warten Sie, bis die Konferenz gestartet wird.", + "WaitingForHostButton": "Auf Moderation warten", + "WaitingForHostTitle": "Warten auf den Beginn der Konferenz …", + "Yes": "Ja", + "accessibilityLabel": { + "Cancel": "Abbrechen (Popup schließen)", + "Ok": "OK (Speichern und Popup schließen)", + "close": "Popup schließen", + "liveStreaming": "Livestream", + "sharingTabs": "Optionen zum Teilen" + }, + "add": "Hinzufügen", + "addMeetingNote": "Notiz zu dieser Konferenz hinzufügen", + "addOptionalNote": "Notiz hinzufügen (optional):", + "allow": "Erlauben", + "allowToggleCameraDialog": "Wollen Sie {{initiatorName}} erlauben, Ihre Kameraauswahl zu ändern?", + "allowToggleCameraTitle": "Änderung der Kamera zulassen?", + "alreadySharedVideoMsg": "Eine andere Person gibt bereits ein Video weiter. Bei dieser Konferenz ist jeweils nur ein geteiltes Video möglich.", + "alreadySharedVideoTitle": "Nur ein geteiltes Video gleichzeitig", + "applicationWindow": "Anwendungsfenster", + "authenticationRequired": "Authentifizierung benötigt", + "cameraConstraintFailedError": "Ihre Kamera erfüllt die notwendigen Anforderungen nicht.", + "cameraNotFoundError": "Kamera nicht gefunden.", + "cameraNotSendingData": "Die Kamera ist nicht verfügbar. Bitte prüfen, ob eine andere Applikation die Kamera verwendet, eine andere Kamera vom Einstellungs-Menü auswählen oder die Applikation neu laden.", + "cameraNotSendingDataTitle": "Zugriff auf Kamera nicht möglich", + "cameraPermissionDeniedError": "Die Berechtigung zur Verwendung der Kamera wurde nicht erteilt. Sie können trotzdem an der Konferenz teilnehmen, aber die anderen Personen können Sie nicht sehen. Verwenden Sie die Kamera-Schaltfläche in der Adressleiste, um die Berechtigungen zu erteilen.", + "cameraTimeoutError": "Die Videoquelle konnte nicht gestartet werden. Es ist eine Zeitüberschreitung aufgetreten!", + "cameraUnknownError": "Die Kamera kann aus einem unbekannten Grund nicht verwendet werden.", + "cameraUnsupportedResolutionError": "Die Kamera unterstützt die erforderliche Auflösung nicht.", + "close": "Schließen", + "conferenceDisconnectMsg": "Prüfen Sie allenfalls Ihre Netzwerkverbindung. Verbinde in {{seconds}} Sekunden …", + "conferenceDisconnectTitle": "Ihre Verbindung ist getrennt worden.", + "conferenceReloadMsg": "Wir versuchen das zu beheben. Verbinde in {{seconds}} Sekunden …", + "conferenceReloadTitle": "Leider ist etwas schiefgegangen.", + "confirm": "Bestätigen", + "confirmBack": "Zurück", + "confirmNo": "Nein", + "confirmYes": "Ja", + "connectError": "Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden.", + "connectErrorWithMsg": "Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden: {{msg}}", + "connecting": "Verbindung wird hergestellt", + "contactSupport": "Support kontaktieren", + "copied": "Kopiert", + "copy": "Kopieren", + "demoteParticipantDialog": "Sind Sie sicher, dass Sie diese Person zu den Gästen verschieben möchten?", + "demoteParticipantTitle": "Zu Gästen verschieben", + "dismiss": "OK", + "displayNameRequired": "Hallo! Wie ist Ihr Name?", + "done": "Fertig", + "e2eeDescription": "Ende-zu-Ende-Verschlüsselung ist derzeit noch EXPERIMENTELL. Bitte beachten Sie, dass das Aktivieren der Ende-zu-Ende-Verschlüsselung diverse serverseitige Funktionen deaktiviert: Aufnahmen, Livestreaming und Telefoneinwahl. Bitte beachten Sie außerdem, dass der Konferenz dann nur noch mit Browsern beigetreten werden kann, die Insertable Streams unterstützen.", + "e2eeDisabledDueToMaxModeDescription": "Ende-zu-Ende-Verschlüsselung kann aufgrund der großen Zahl an Anwesenden nicht aktiviert werden.", + "e2eeLabel": "Ende-zu-Ende-Verschlüsselung aktivieren", + "e2eeWarning": "WARNUNG: Nicht alle Personen dieser Konferenz scheinen Ende-zu-Ende-Verschlüsselung zu unterstützen. Wenn Sie diese aktivieren, können die entsprechenden Personen nichts mehr sehen oder hören.", + "e2eeWillDisableDueToMaxModeDescription": "WARNUNG: Ende-zu-Ende-Verschlüsselung wird automatisch deaktiviert, wenn weitere Anwesende an der Konferenz teilnehmen.", + "embedMeeting": "Konferenz einbetten", + "enterDisplayName": "Bitte geben Sie hier Ihren Namen ein", + "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?", + "grantModeratorTitle": "Moderationsrechte vergeben", + "hide": "Ausblenden", + "hideShareAudioHelper": "Diese Meldung nicht mehr anzeigen", + "incorrectPassword": "Name oder Passwort ungültig", + "incorrectRoomLockPassword": "Falsches Passwort", + "internalError": "Oh! Es hat etwas nicht funktioniert. Der folgende Fehler ist aufgetreten: {{error}}", + "internalErrorTitle": "Interner Fehler", + "kickMessage": "Sie können sich für mehr Details an {{participantDisplayName}} wenden.", + "kickParticipantButton": "Entfernen", + "kickParticipantDialog": "Wollen Sie diese Person wirklich entfernen?", + "kickParticipantTitle": "Person entfernen?", + "kickSystemTitle": "Autsch! Sie wurden aus der Konferenz geworfen", + "kickTitle": "Autsch! {{participantDisplayName}} hat Sie aus der Konferenz geworfen", + "learnMore": "Mehr erfahren", + "linkMeeting": "Konferenz verlinken", + "linkMeetingTitle": "Konferenz mit Salesforce verlinken", + "liveStreaming": "Livestreaming", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Während einer Aufnahme nicht möglich", + "localUserControls": "Lokale Benutzersteuerung", + "lockMessage": "Die Konferenz konnte nicht gesperrt werden.", + "lockRoom": "Konferenz$t(lockRoomPassword) hinzufügen", + "lockTitle": "Sperren fehlgeschlagen", + "login": "Anmelden", + "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", + "maxUsersLimitReached": "Das Limit für die maximale Personenzahl ist erreicht. Die Konferenz ist voll. Bitte wenden Sie sich an die Konferenzleitung oder versuchen Sie es später noch einmal!", + "maxUsersLimitReachedTitle": "Maximale Personenzahl erreicht", + "micConstraintFailedError": "Ihr Mikrofon erfüllt die notwendigen Anforderungen nicht.", + "micNotFoundError": "Mikrofon nicht gefunden.", + "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", + "micUnknownError": "Das Mikrofon kann aus einem unbekannten Grund nicht verwendet werden.", + "moderationAudioLabel": "Erlaube Anwesenden die Stummschaltung für sich aufzuheben", + "moderationVideoLabel": "Erlaube Anwesenden ihre Kamera einzuschalten", + "muteEveryoneDialog": "Wollen Sie wirklich alle stummschalten? Sie können deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.", + "muteEveryoneDialogModerationOn": "Die Anwesenden können eine Anfrage zum Sprechen jederzeit senden.", + "muteEveryoneElseDialog": "Einmal stummgeschaltet, können Sie deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.", + "muteEveryoneElseTitle": "Alle außer {{whom}} stummschalten?", + "muteEveryoneElsesVideoDialog": "Sobald die Kamera für alle anderen Personen deaktiviert ist, können Sie diese nicht wieder für alle einschalten, die anderen Personen können ihre Kamera aber jederzeit wieder einschalten.", + "muteEveryoneElsesVideoTitle": "Die Kamera von allen außer {{whom}} ausschalten?", + "muteEveryoneSelf": "sich selbst", + "muteEveryoneStartMuted": "Alle beginnen von jetzt an stummgeschaltet", + "muteEveryoneTitle": "Alle stummschalten?", + "muteEveryonesVideoDialog": "Sind Sie sicher, dass Sie die Kamera von allen Personen deaktivieren möchten? Sie können dies nicht wieder rückgängig machen, jede Personen kann ihre Kamera aber jederzeit wieder einschalten.", + "muteEveryonesVideoDialogModerationOn": "Die Anwesenden können jederzeit eine Anfrage senden, um ihre Kamera einzuschalten.", + "muteEveryonesVideoDialogOk": "deaktivieren", + "muteEveryonesVideoTitle": "Die Kamera von allen anderen ausschalten?", + "muteParticipantBody": "Sie können die Stummschaltung anderer Personen nicht aufheben, aber eine Person kann ihre eigene Stummschaltung jederzeit beenden.", + "muteParticipantButton": "Stummschalten", + "muteParticipantsVideoBody": "Sie können die Kamera nicht wieder einschalten, die Person kann ihre Kamera aber jederzeit wieder einschalten.", + "muteParticipantsVideoBodyModerationOn": "Sie können die Kamera nicht wieder aktivieren und die Person selbst auch nicht.", + "muteParticipantsVideoButton": "Kamera ausschalten", + "muteParticipantsVideoDialog": "Wollen Sie die Kamera dieser Person wirklich deaktivieren? Sie können die Kamera nicht wieder aktivieren, die Person kann dies aber jederzeit selbst tun.", + "muteParticipantsVideoDialogModerationOn": "Wollen Sie die Kamera dieser Person wirklich deaktivieren? Sie können die Kamea nicht wieder aktivieren und die Person selbst auch nicht.", + "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.", + "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", + "permissionErrorTitle": "Berechtigung benötigt", + "permissionMicRequiredError": "Der Zugriff auf das Mikrofon wird benötigt, um an Konferenzen mit Ton teilzunehmen. Bitte in den Einstellungen zulassen", + "readMore": "mehr", + "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.", + "recordingInProgressTitle": "Aufnahme läuft", + "rejoinNow": "Jetzt erneut beitreten", + "remoteControlAllowedMessage": "{{user}} hat die Anfrage zur Fernsteuerung angenommen!", + "remoteControlDeniedMessage": "{{user}} hat die Anfrage zur Fernsteuerung verweigert!", + "remoteControlErrorMessage": "Beim Anfordern der Fernsteuerungsberechtigung von {{user}} ist ein Fehler aufgetreten!", + "remoteControlRequestMessage": "Möchten Sie {{user}} erlauben, den Computer fernzusteuern?", + "remoteControlShareScreenWarning": "Achtung, wenn Sie die Anfrage genehmigen, starten Sie die Bildschirmfreigabe!", + "remoteControlStopMessage": "Die Fernsteuerung wurde beendet!", + "remoteControlTitle": "Fernsteuerung", + "remoteUserControls": "Remote Benutzersteuerung von {{username}}", + "removePassword": "$t(lockRoomPasswordUppercase) entfernen", + "removeSharedVideoMsg": "Sind Sie sicher, dass Sie das geteilte Video entfernen möchten?", + "removeSharedVideoTitle": "Freigegebenes Video entfernen", + "renameBreakoutRoomLabel": "Raumname", + "renameBreakoutRoomTitle": "Breakout-Raum umbenennen", + "reservationError": "Fehler im Reservierungssystem", + "reservationErrorMsg": "Fehler, Nummer: {{code}}, Nachricht: {{msg}}", + "retry": "Wiederholen", + "screenSharingAudio": "Audio teilen", + "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.", + "searchInSalesforce": "In Salesforce suchen", + "searchResults": "Suchergebnisse({{count}})", + "searchResultsDetailsError": "Beim Abrufen der Daten des Besitzers ist ein Fehler aufgetreten.", + "searchResultsError": "Beim Abrufen der Daten ist ein Fehler aufgetreten.", + "searchResultsNotFound": "Keine Suchergebnisse.", + "searchResultsTryAgain": "Versuchen Sie es mit anderen Stichwörtern.", + "sendPrivateMessage": "Sie haben kürzlich eine private Nachricht erhalten. Hatten Sie die Absicht, darauf privat zu antworten, oder wollen Sie Ihre Nachricht an die Gruppe senden?", + "sendPrivateMessageCancel": "An die Gruppe senden", + "sendPrivateMessageOk": "Privat antworten", + "sendPrivateMessageTitle": "Privat antworten?", + "serviceUnavailable": "Dienst nicht verfügbar", + "sessTerminated": "Konferenz beendet", + "sessTerminatedReason": "Die Konferenz wurde beendet", + "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", + "shareAudioWarningD1": "müssen Sie Ihre Bildschirmfreigabe stoppen, bevor Sie Audio teilen können.", + "shareAudioWarningD2": "müssen Sie Ihre Bildschirmfreigabe neustarten und die Option \"Audio freigeben\" auswählen.", + "shareAudioWarningH1": "Wenn Sie Ihr Audio teilen wollen:", + "shareAudioWarningTitle": "Sie müssen die Bildschirmfreigabe ausschalten, bevor Sie Audio teilen können", + "shareMediaWarningGenericH2": "Wenn Sie Ihren Bildschirm und Audio teilen wollen", + "shareScreenWarningD1": "müssen Sie Ihre Audiofreigabe stoppen, bevor Sie ihren Bildschirm freigeben.", + "shareScreenWarningD2": "müssen Sie Ihre Audiofreigabe stoppen und dann die Bildschirmfreigabe mit der Option \"Audio freigeben\" starten.", + "shareScreenWarningH1": "Wenn Sie Ihren Bildschirm freigeben wollen:", + "shareScreenWarningTitle": "Sie müssen die Audiofreigabe beenden, bevor Sie den Bildschirm freigeben können", + "shareVideoConfirmPlay": "Sie öffnen dazu eine externe Seite. Möchten Sie fortfahren?", + "shareVideoConfirmPlayTitle": "{{name}} hat mit Ihnen ein Video geteilt.", + "shareVideoLinkError": "Bitte einen gültigen Link angeben.", + "shareVideoLinkStopped": "Das Video von {{name}} wurde gestoppt.", + "shareVideoTitle": "Video teilen", + "shareYourScreen": "Bildschirmfreigabe ein-/ausschalten", + "shareYourScreenDisabled": "Bildschirmfreigabe deaktiviert.", + "sharedVideoDialogError": "Fehler: Ungültige URL", + "sharedVideoLinkPlaceholder": "YouTube-URL oder direkte Video-URL", + "show": "Anzeigen", + "start": "Starte ", + "startLiveStreaming": "Livestream starten", + "startRecording": "Aufnahme starten", + "startRemoteControlErrorMessage": "Beim Versuch, die Fernsteuerung zu starten, ist ein Fehler aufgetreten!", + "stopLiveStreaming": "Livestream stoppen", + "stopRecording": "Aufnahme stoppen", + "stopRecordingWarning": "Sind Sie sicher, dass Sie die Aufnahme stoppen möchten?", + "stopStreamingWarning": "Sind Sie sicher, dass Sie den Livestream stoppen möchten?", + "streamKey": "Streamschlüssel", + "thankYou": "Danke für die Verwendung von {{appName}}!", + "token": "Token", + "tokenAuthFailed": "Sie sind nicht berechtigt, dieser Konferenz beizutreten.", + "tokenAuthFailedReason": { + "audInvalid": "Ungültiger `aud`-Wert. Erwartet wird `jitsi`.", + "contextNotFound": "Das `context`-Objekt fehlt.", + "expInvalid": "Ungültiger `exp`-Wert.", + "featureInvalid": "Ungültiges Feature: {{feature}}, noch nicht implementiert.", + "featureValueInvalid": "Ungültiger Wert für Feature: {{feature}}.", + "featuresNotFound": "Das `features`-Objekt fehlt.", + "headerNotFound": "Header fehlt.", + "issInvalid": "Ungültiger `iss`-Wert. Erwartet wird `chat`.", + "kidMismatch": "Die Key-ID (kid) passt nicht zum sub.", + "kidNotFound": "Fehlende Key-ID (kid).", + "nbfFuture": "Der `nbf`-Wert liegt in der Zukunft.", + "nbfInvalid": "Ungültiger `nbf`-Wert.", + "payloadNotFound": "Fehlende Payload.", + "tokenExpired": "Das Token ist abgelaufen." + }, + "tokenAuthFailedTitle": "Authentifizierung fehlgeschlagen", + "tokenAuthFailedWithReasons": "Teilnahme an der Konferenz fehlgeschlagen. Möglicher Grund: {{reason}}", + "tokenAuthUnsupported": "Token-Authentifizierung wird nicht unterstützt.", + "transcribing": "Wird transkribiert", + "unlockRoom": "Konferenz$t(lockRoomPassword) entfernen", + "user": "Anmeldename", + "userIdentifier": "Benutzername", + "userPassword": "Passwort", + "verifyParticipantConfirm": "Sie stimmen überein", + "verifyParticipantDismiss": "Sie stimmen nicht überein", + "verifyParticipantQuestion": "EXPERIMENTELL: Frage Person {{participantName}} ob sie den selben Inhalt in der selben Reihenfolge sieht.", + "verifyParticipantTitle": "Personsverifikation", + "videoLink": "Video-Link", + "viewUpgradeOptions": "Upgradeoptionen anzeigen", + "viewUpgradeOptionsContent": "Sie müssen Ihren Tarif erweitern, um Premium-Features wie Aufnahme, Transkription, RTMP-Streaming und mehr zu nutzen.", + "viewUpgradeOptionsTitle": "Sie haben ein Premium-Feature entdeckt!", + "whiteboardLimitContent": "Die maximale Zahl an Nutzenden für das Whiteboard ist erreicht.", + "whiteboardLimitReference": "Für weitere Informationen besuchen Sie bitte", + "whiteboardLimitReferenceUrl": "unsere Webseite", + "whiteboardLimitTitle": "Whiteboard-Nutzung beschränkt", + "yourEntireScreen": "Ganzer Bildschirm" + }, + "documentSharing": { + "title": "Freigegebenes Dokument" + }, + "e2ee": { + "labelToolTip": "Audio- und Videodaten dieser Unterhaltung sind jetzt zwischen den Personen verschlüsselt" + }, + "embedMeeting": { + "title": "Diese Konferenz einbetten" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Ihre Auswahl: {{rating}}" + }, + "average": "Durchschnittlich", + "bad": "Schlecht", + "detailsLabel": "Sagen Sie uns mehr dazu.", + "good": "Gut", + "rateExperience": "Bitte bewerten Sie diese Konferenz", + "star": "Sterne", + "veryBad": "Sehr schlecht", + "veryGood": "Sehr gut" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Videominiaturen" + } + }, + "giphy": { + "noResults": "Keine Ergebnisse :(", + "search": "GIPHY durchsuchen" + }, + "incomingCall": { + "answer": "Antworten", + "audioCallTitle": "Eingehender Anruf", + "decline": "OK", + "productLabel": "von Jitsi Meet", + "videoCallTitle": "Eingehender Videoanruf" + }, + "info": { + "accessibilityLabel": "Informationen anzeigen", + "addPassword": "$t(lockRoomPasswordUppercase) hinzufügen", + "cancelPassword": "$t(lockRoomPasswordUppercase) löschen", + "conferenceURL": "Link:", + "copyNumber": "Nummer kopieren", + "country": "Land", + "dialANumber": "Um an der Konferenz teilzunehmen, müssen Sie eine dieser Nummern wählen und dann die PIN eingeben.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Entschuldigung, leider wird das Einwählen derzeit nicht unterstützt.", + "dialInNumber": "Einwählen:", + "dialInSummaryError": "Fehler beim Abrufen der Einwahlinformationen. Versuchen Sie es später erneut.", + "dialInTollFree": "Gebührenfrei", + "genericError": "Es ist leider etwas schiefgegangen.", + "inviteLiveStream": "Klicken Sie auf {{url}}, um den Livestream dieser Konferenz zu öffnen", + "invitePhone": "Wenn Sie stattdessen per Telefon beitreten möchten, wählen sie: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Suchen Sie nach einer anderen Einwahlnummer ?\nEinwahlnummern der Konferenz anzeigen: {{url}}\n\n\nWenn Sie sich auch über ein Raumtelefon einwählen, nehmen Sie teil, ohne sich mit dem Ton zu verbinden: {{silentUrl}}", + "inviteSipEndpoint": "Um mit SIP teilzunehmen, folgende Adresse nutzen: {{sipUri}}", + "inviteTextiOSInviteUrl": "An Konferenz teilnehmen: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Wenn Sie über ein Konferenztelefon teilnehmen, können Sie diesen Link nutzen um ohne Ton an der Konferenz teilzunehmen: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} lädt Sie zu einer Konferenz ein.", + "inviteTextiOSPhone": "Nutzen Sie folgende Nummer um via Telefon teilzunehmen: {{number}},,{{conferenceID}}#. Wenn Sie nach einer anderen Einwahlnummer suchen, finden Sie die vollständige Liste hier: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Sie wurden zur Teilnahme an einer Konferenz eingeladen.", + "inviteURLFirstPartPersonal": "{{name}} lädt Sie zu einer Konferenz ein.\n", + "inviteURLSecondPart": "\nAn Konferenz teilnehmen:\n{{url}}\n", + "label": "Einwahlinformationen", + "liveStreamURL": "Livestream:", + "moreNumbers": "Weitere Telefonnummern", + "noNumbers": "Keine Telefonnummern verfügbar.", + "noPassword": "Kein Passwort benötigt", + "noRoom": "Keine Konferenz für die Einwahlinformationen angegeben.", + "noWhiteboard": "Whiteboard konnte nicht geladen werden.", + "numbers": "Einwahlnummern", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Sie haben die Grenzen Ihres Tarifs erreicht.", + "sip": "SIP-Adresse", + "sipAudioOnly": "SIP-Adresse (nur Ton)", + "title": "Teilen", + "tooltip": "Freigabe-Link und Einwahlinformationen für diese Konferenz", + "upgradeOptions": "Bitte prüfen Sie Ihre Upgrade-Optionen auf", + "whiteboardError": "Whiteboard konnte nicht geladen werden. Bitte versuchen Sie es später erneut." + }, + "inlineDialogFailure": { + "msg": "Es ist ein Fehler aufgetreten.", + "retry": "Erneut versuchen", + "support": "Support", + "supportMsg": "Wenn der Fehler erneut auftritt, bitte kontaktieren Sie" + }, + "inviteDialog": { + "alertText": "Die Einladung einiger Personen ist fehlgeschlagen.", + "header": "Einladen", + "searchCallOnlyPlaceholder": "Telefonnummer eingeben", + "searchPeopleOnlyPlaceholder": "Nach Personen suchen", + "searchPlaceholder": "Personen oder Telefonnummer", + "send": "Senden" + }, + "jitsiHome": "{{logo}} Logo, verlinkt zur Homepage", + "keyboardShortcuts": { + "focusLocal": "Lokales Video fokussieren", + "focusRemote": "Auf das Video einer anderen Person fokussieren", + "fullScreen": "Vollbildmodus aktivieren oder deaktivieren", + "giphyMenu": "GIPHY ein- oder ausblenden", + "keyboardShortcuts": "Tastenkürzel", + "localRecording": "Lokale Aufzeichnungssteuerelemente ein- oder ausblenden", + "mute": "Stummschaltung aktivieren oder deaktivieren", + "pushToTalk": "Push-to-Talk (Sprechtaste)", + "raiseHand": "Hand heben", + "showSpeakerStats": "Sprechstatistik anzeigen", + "toggleChat": "Chat öffnen oder schließen", + "toggleFilmstrip": "Video-Miniaturansichten ein- oder ausblenden", + "toggleParticipantsPane": "Liste der Anwesenden ein- und ausblenden", + "toggleScreensharing": "Zwischen Kamera und Bildschirmfreigabe wechseln", + "toggleShortcuts": "Tastenkombinationen ein- oder ausblenden", + "videoMute": "Kamera starten oder stoppen" + }, + "largeVideo": { + "screenIsShared": "Ihr Bildschirm wird freigegeben", + "showMeWhatImSharing": "Anzeigen, was freigegeben wird" + }, + "liveStreaming": { + "busy": "Es werden Ressourcen zum Streamen bereitgestellt. Bitte in ein paar Minuten erneut versuchen.", + "busyTitle": "Alle Streaming-Instanzen sind in Gebrauch", + "changeSignIn": "Konten wechseln.", + "choose": "Livestream auswählen", + "chooseCTA": "Streaming-Option auswählen. Sie sind aktuell als {{email}} angemeldet.", + "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.", + "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", + "onBy": "{{name}} startete den Livestream", + "pending": "Livestream wird gestartet …", + "policyError": "Sie haben den Livestream zu schnell gestartet. Bitte versuchen Sie es später noch einmal!", + "serviceName": "Livestreaming-Dienst", + "sessionAlreadyActive": "Diese Konferenz wird bereits als Livestream übertragen.", + "signIn": "Mit Google anmelden", + "signInCTA": "Anmelden oder den Streamschlüssel des YouTube-Livestreams eingeben.", + "signOut": "Abmelden", + "signedInAs": "Sie sind derzeit angemeldet als:", + "start": "Einen Livestream starten", + "streamIdHelp": "Was ist das?", + "title": "Livestream", + "unavailableTitle": "Livestreaming nicht verfügbar", + "youtubeTerms": "YouTube-Nutzungsbedingungen" + }, + "lobby": { + "backToKnockModeButton": "Kein Passwort, stattdessen Beitritt anfragen", + "chat": "Chat", + "dialogTitle": "Lobbymodus", + "disableDialogContent": "Der Lobbymodus ist derzeit aktiviert. Diese Funktion stellt sicher, dass unerwünschte Personen Ihrer Konferenz nicht beitreten können. Funktion deaktivieren?", + "disableDialogSubmit": "Deaktivieren", + "emailField": "E-Mail-Adresse eingeben", + "enableDialogPasswordField": "Passwort setzen (optional)", + "enableDialogSubmit": "Aktivieren", + "enableDialogText": "Mit dem Lobbymodus schützen Sie Ihre Konferenz, damit der Beitritt von Ihnen moderiert werden kann.", + "enterPasswordButton": "Konferenzpasswort eingeben", + "enterPasswordTitle": "Passwort zum Beitreten benutzen", + "errorMissingPassword": "Bitte das Konferenzpasswort eingeben", + "invalidPassword": "Ungültiges Passwort", + "joinRejectedMessage": "Ihre Beitrittsanfrage wurde von der Moderation abgelehnt.", + "joinRejectedTitle": "Beitrittsanfrage abgelehnt.", + "joinTitle": "Konferenz beitreten", + "joinWithPasswordMessage": "Beitrittsversuch mit Passwort, bitte warten …", + "joiningMessage": "Sie treten der Konferenz bei, sobald jemand Ihre Anfrage annimmt.", + "joiningTitle": "Beitritt anfragen …", + "joiningWithPasswordTitle": "Mit Passwort beitreten …", + "knockButton": "Beitritt anfragen", + "knockTitle": "Jemand möchte der Konferenz beitreten", + "knockingParticipantList": "Liste anklopfender Personen", + "lobbyChatStartedNotification": "{{moderator}} hat einen Lobby-Chat mit {{attendee}} gestartet", + "lobbyChatStartedTitle": "{{moderator}} hat einen Lobby-Chat mit Ihnen gestartet.", + "lobbyClosed": "Die Lobby wurde geschlossen.", + "nameField": "Geben Sie Ihren Namen ein", + "notificationLobbyAccessDenied": "{{targetParticipantName}} wurde von {{originParticipantName}} der Zutritt verwehrt", + "notificationLobbyAccessGranted": "{{targetParticipantName}} wurde von {{originParticipantName}} der Zutritt gestattet", + "notificationLobbyDisabled": "{{originParticipantName}} hat die Lobby deaktiviert", + "notificationLobbyEnabled": "{{originParticipantName}} hat die Lobby aktiviert", + "notificationTitle": "Lobby", + "passwordJoinButton": "Beitreten", + "title": "Lobby", + "toggleLabel": "Lobby aktivieren" + }, + "localRecording": { + "clientState": { + "off": "Aus", + "on": "Ein", + "unknown": "Unbekannt" + }, + "dialogTitle": "Lokale Aufzeichnungssteuerelemente", + "duration": "Dauer", + "durationNA": "N. v.", + "encoding": "Kodierung", + "label": "LOR", + "labelToolTip": "Lokale Aufzeichnung ist aktiviert", + "localRecording": "Lokale Aufzeichnung", + "me": "Ich", + "messages": { + "engaged": "Lokale Aufzeichnung ist aktiviert.", + "finished": "Aufzeichnung der Sitzung {{token}} ist beendet. Senden Sie die aufgezeichnete Datei an die Moderation.", + "finishedModerator": "Aufzeichnung der Sitzung {{token}} ist beendet. Die Aufzeichnung des lokalen Verlaufs wurde gespeichert. Bitten Sie die anderen Personen, ihre Aufzeichnungen zu übermitteln.", + "notModerator": "Sie moderieren nicht. Sie können die lokale Aufzeichnung nicht starten oder stoppen." + }, + "moderator": "Moderation", + "no": "Nein", + "participant": "Person", + "participantStats": "Personenstatistik", + "selectTabTitle": "🎥 Bitte dieses Tab zur Aufzeichnung auswählen", + "sessionToken": "Sitzungs-Token", + "start": "Aufnahme starten", + "stop": "Aufnahme stoppen", + "stopping": "Aufnahme wird gestoppt", + "wait": "Bitte warten Sie während wir Ihre Aufnahme speichern", + "yes": "Ja" + }, + "lockRoomPassword": "Passwort", + "lockRoomPasswordUppercase": "Passwort", + "lonelyMeetingExperience": { + "button": "Andere einladen", + "youAreAlone": "Nur Sie sind in dieser Konferenz" + }, + "me": "ich", + "notify": { + "OldElectronAPPTitle": "Sicherheitslücke!", + "allowAudio": "Mikrofon einschalten", + "allowBoth": "Beides", + "allowVideo": "Kamera einschalten", + "allowedUnmute": "Sie können die Stummschaltung aufheben, Ihre Kamera einschalten oder Ihren Bildschirm teilen.", + "audioUnmuteBlockedDescription": "Díe Stummschaltung kann aus Überlastungsschutzgründen temporär nicht aufgehoben werden.", + "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", + "connectedTwoMembers": "{{first}} und {{second}} nehmen an der Konferenz teil", + "connectionFailed": "Verbindung fehlgeschlagen. Bitte versuchen Sie es später noch einmal!", + "dataChannelClosed": "Schlechte Videoqualität", + "dataChannelClosedDescription": "Die Steuerungsverbindung (Bridge Channel) wurde unterbrochen, daher ist die Videoqulität auf die schlechteste Stufe limitiert.", + "dataChannelClosedDescriptionWithAudio": "Die Steuerungsverbindung (Bridge Channel) wurde unterbrochen, daher können Video- und Tonprobleme auftreten.", + "dataChannelClosedWithAudio": "Ton- und Videoqualität können beeinträchtigt sein", + "disabledIframe": "Die Einbettung ist nur für Demo-Zwecke vorgesehen. Diese Konferenz wird in {{timeout}} Minuten beendet.", + "disabledIframeSecondaryNative": "Die Einbettung von {{domain}} ist nur für Demo-Zwecke vorgesehen. Diese Konferenz wird in {{timeout}} Minuten beendet.", + "disabledIframeSecondaryWeb": "Die Einbettung von {{domain}} ist nur für Demo-Zwecke vorgesehen. Diese Konferenz wird in {{timeout}} Minuten beendet. Bitte nutzen Sie Jitsi as a Service für produktive Zwecke!", + "disconnected": "getrennt", + "displayNotifications": "Benachrichtigungen anzeigen für", + "dontRemindMe": "Nicht erinnern", + "focus": "Konferenzleitung", + "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", + "invalidTenant": "Ungültiger Mandant", + "invalidTenantHyphenDescription": "Der gewählte Mandantenname ist ungültig (beginnt oder endet mit '-').", + "invalidTenantLengthDescription": "Der gewählte Mandantenname ist zu lang.", + "invitedOneMember": "{{name}} wurde eingeladen", + "invitedThreePlusMembers": "{{name}} und {{count}} andere wurden eingeladen", + "invitedTwoMembers": "{{first}} und {{second}} wurden eingeladen", + "joinMeeting": "Beitreten", + "kickParticipant": "{{kicked}} wurde von {{kicker}} ausgewiesen", + "leftOneMember": "{{name}} hat die Konferenz verlassen", + "leftThreePlusMembers": "{{name}} und Weitere haben die Konferenz verlassen", + "leftTwoMembers": "{{first}} und {{second}} haben die Konferenz verlassen", + "linkToSalesforce": "Mit Salesforce verlinken", + "linkToSalesforceDescription": "Sie können die Zusammenfassung der Konferenz mit einem Objekt bei Salesforce verlinken.", + "linkToSalesforceError": "Konferenz konnte nicht mit Salesforce verlinkt werden", + "linkToSalesforceKey": "Konferenz verlinken", + "linkToSalesforceProgress": "Konferenz wird mit Salesforce verlinkt…", + "linkToSalesforceSuccess": "Die Konferenz wurde mit Salesforce verlinkt", + "localRecordingStarted": "{{name}} hat eine lokale Aufzeichnung gestartet.", + "localRecordingStopped": "{{name}} hat eine lokale Aufzeichnung gestoppt.", + "me": "Ich", + "moderationInEffectCSDescription": "Bitte melden um ein Video zu teilen", + "moderationInEffectCSTitle": "Die Videofreigabe ist von der Moderation gesperrt", + "moderationInEffectDescription": "Bitte melden um zu sprechen", + "moderationInEffectTitle": "Das Mikrofon ist von der Moderation gesperrt", + "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!", + "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!", + "mutedTitle": "Stummschaltung aktiv!", + "newDeviceAction": "Verwenden", + "newDeviceAudioTitle": "Neues Audiogerät erkannt", + "newDeviceCameraTitle": "Neue Kamera erkannt", + "nextToSpeak": "Sie sind als Nächstes an der Reihe zu sprechen", + "noiseSuppressionDesktopAudioDescription": "Die Rauschunterdrückung kann nicht genutzt werden, wenn der Computersound geteilt wird, bitte zuerst deaktivieren und dann nochmals versuchen.", + "noiseSuppressionFailedTitle": "Rauschunterdrückung konnte nicht gestartet werden", + "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": "!", + "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.", + "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", + "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.", + "suboptimalExperienceTitle": "Browserwarnung", + "suggestRecordingAction": "Starten", + "suggestRecordingDescription": "Möchten Sie eine Aufzeichnung starten?", + "suggestRecordingTitle": "Konferenz aufzeichnen", + "unmute": "Stummschaltung aufheben", + "unmuteVideo": "Kamera einschalten", + "videoMutedRemotelyDescription": "Sie können sie jederzeit wieder einschalten.", + "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", + "viewParticipants": "Personen anzeigen", + "viewVisitors": "Gäste anzeigen", + "waitingParticipants": "{{waitingParticipants}} Personen", + "waitingVisitors": "In der Lobby wartende Gäste: {{waitingVisitors}}", + "waitingVisitorsTitle": "Die Konferenz wurde noch nicht gestartet!", + "whiteboardLimitDescription": "Bitte speichern Sie Ihre Inhalte, da das Nutzungslimit bald erreicht wird und dann Ihr Whiteboard geschlossen wird.", + "whiteboardLimitTitle": "Whiteboard-Nutzung" + }, + "participantsPane": { + "actions": { + "admit": "Zulassen", + "admitAll": "Alle zulassen", + "allow": "Anwesenden erlauben:", + "allowVideo": "Kamera einschalten", + "askUnmute": "Anfragen, Stummschaltung aufzuheben", + "audioModeration": "Für sich selbst die Stummschaltung aufzuheben", + "blockEveryoneMicCamera": "Kamera und Mikrofon von allen sperren", + "breakoutRooms": "Breakout-Räume", + "goLive": "Live gehen", + "invite": "Person einladen", + "lowerAllHands": "Alle Hände senken", + "lowerHand": "Hand senken", + "moreModerationActions": "Weitere Moderationsoptionen", + "moreModerationControls": "Weitere Moderationsoptionen", + "moreParticipantOptions": "Mehr Optionen für Anwesende", + "mute": "Stummschalten", + "muteAll": "Alle stummschalten", + "muteEveryoneElse": "Alle anderen stummschalten", + "reject": "Ablehnen", + "stopEveryonesVideo": "Alle Kameras ausschalten", + "stopVideo": "Kamera ausschalten", + "unblockEveryoneMicCamera": "Kamera und Mikrofon von allen entsperren", + "videoModeration": "Kamera einschalten" + }, + "close": "Schließen", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Anwesende ({{count}})", + "visitorInQueue": " (Wartende Gäste {{count}})", + "visitorRequests": " (Anfragen {{count}})", + "visitors": "Gäste ({{count}})", + "waitingLobby": "In der Lobby ({{count}})" + }, + "search": "Suche Anwesende", + "searchDescription": "Tippen Sie um die Anwesendenliste zu filtern", + "title": "Anwesende" + }, + "passwordDigitsOnly": "Bis zu {{number}} Ziffern", + "passwordSetRemotely": "von einer anderen Person gesetzt", + "pinParticipant": "{{participantName}} - anheften", + "pinnedParticipant": "Die Person ist angeheftet", + "polls": { + "answer": { + "edit": "Bearbeiten", + "send": "Senden", + "skip": "Überspringen", + "submit": "Speichern" + }, + "by": "Von {{ name }}", + "closeButton": "Umfrage schließen", + "create": { + "addOption": "Antwort hinzufügen", + "answerPlaceholder": "Antwort {{index}}", + "cancel": "Abbrechen", + "create": "Umfrage erstellen", + "pollOption": "Antwort {{index}}", + "pollQuestion": "Frage", + "questionPlaceholder": "Eine Frage stellen", + "removeOption": "Antwort entfernen", + "save": "Erstellen", + "send": "Senden" + }, + "errors": { + "notUniqueOption": "Optionen müssen einzigartig sein" + }, + "notification": { + "description": "Öffnen Sie das Umfragen-Tab um abzustimmen", + "title": "Dieser Konferenz wurde eine Umfrage hinzugefügt" + }, + "results": { + "changeVote": "Antwort ändern", + "empty": "Es gibt bisher keine Umfragen in dieser Konferenz. Sie können hier eine Umfrage starten!", + "hideDetailedResults": "Details verbergen", + "showDetailedResults": "Details anzeigen", + "vote": "Vote" + } + }, + "poweredby": "Betrieben von", + "prejoin": { + "audioAndVideoError": "Audio- und Videofehler:", + "audioDeviceProblem": "Es gibt ein Problem mit Ihrem Audiogerät.", + "audioOnlyError": "Audiofehler:", + "audioTrackError": "Audiotrack konnte nicht erstellt werden.", + "callMe": "Mich anrufen", + "callMeAtNumber": "Mich unter dieser Nummer anrufen:", + "calling": "Rufaufbau", + "configuringDevices": "Geräte werden eingerichtet …", + "connectedWithAudioQ": "Sie sind mit Audio verbunden?", + "connection": { + "failed": "Verbindungstest fehlgeschlagen!", + "good": "Ihre Internetverbindung sieht gut aus!", + "nonOptimal": "Ihre Internetverbindung ist nicht optimal.", + "poor": "Sie haben eine schlechte Internetverbindung.", + "running": "Verbindung wird getestet…" + }, + "connectionDetails": { + "audioClipping": "Ihr Ton wird wahrscheinlich abgehackt sein.", + "audioHighQuality": "Ihr Ton sollte exzellent klingen.", + "audioLowNoVideo": "Ihr Ton wird wahrscheinlich schlecht klingen und es wird kein Video geben.", + "goodQuality": "Großartig! Ihre Bild- und Tonqualität sollte super sein.", + "noMediaConnectivity": "Es konnte für diesen Test keine Medienverbindung hergestellt werden. Das wird gewöhnlich durch eine Firewall oder ein NAT ausgelöst.", + "noVideo": "Ihr Bild wird wahrscheinlich eine schlechte Qualität haben.", + "testFailed": "Der Verbindungstest ist fehlgeschlagen, dies beeinträchtigt evtl. Ihre Qualität.", + "undetectable": "Wenn Sie mit Ihrem Browser weiterhin Probleme in Konferenzen haben, sollten Sie die Verbindung und Funktion Ihrer Lautsprecher, Ihres Mikrofons und Ihrer Kamera überprüfen. Stellen Sie außerdem sicher, dass Ihr Browser die erforderlichen Rechte hat, auf das Mikrofon und die Kamera zuzugreifen, und dass Sie die neuste Browserversion installiert haben. Sollten Sie immer noch Probleme haben, kontaktieren Sie bitte den Support der Webanwendung.", + "veryPoorConnection": "Ihre Konferenzqualität wird wahrscheinlich sehr schlecht sein.", + "videoFreezing": "Ihr Bild wird wahrscheinlich einfrieren, schwarz werden und eine geringe Auflösung haben.", + "videoHighQuality": "Ihr Bild sollte sehr gut aussehen.", + "videoLowQuality": "Ihr Bild wird wahrscheinlich eine geringe Auflösung und Bildrate haben.", + "videoTearing": "Ihr Bild wird wahrscheinlich eine geringe Auflösung haben oder Artefakte aufweisen." + }, + "copyAndShare": "Konferenzlink kopieren & teilen", + "dialInMeeting": "Telefoneinwahl", + "dialInPin": "In die Konferenz einwählen und PIN eingeben:", + "dialing": "Wählen", + "doNotShow": "Diesen Bildschirm nicht mehr anzeigen", + "errorDialOut": "Anruf fehlgeschlagen", + "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.", + "errorNoPermissions": "Sie müssen den Zugriff auf Mikrofon und Kamera erlauben", + "errorStatusCode": "Anruf fehlgeschlagen. Statuscode: {{status}}", + "errorValidation": "Nummerverifikation fehlgeschlagen", + "iWantToDialIn": "Ich möchte mich einwählen", + "initiated": "Anruf gestartet", + "joinAudioByPhone": "Per Telefon teilnehmen", + "joinMeeting": "Konferenz beitreten", + "joinMeetingInLowBandwidthMode": "Konferenz im Datensparmodus beitreten", + "joinWithoutAudio": "Ohne Ton beitreten", + "keyboardShortcuts": "Tastaturkurzbefehle aktivieren", + "linkCopied": "Link in die Zwischenablage kopiert", + "lookGood": "Alles scheint zu funktionieren.", + "or": "oder", + "premeeting": "Vorschau", + "proceedAnyway": "Trotzdem fortsetzen", + "recordingWarning": "Diese Konferenz wird möglicherweise von anderen Personen aufgezeichnet", + "screenSharingError": "Fehler bei Bildschirmfreigabe:", + "startWithPhone": "Mit Telefonaudio starten", + "unsafeRoomConsent": "Ich verstehe das Risiko und möchte der Konferenz beitreten", + "videoOnlyError": "Videofehler:", + "videoTrackError": "Videotrack konnte nicht erstellt werden.", + "viewAllNumbers": "alle Nummern anzeigen" + }, + "presenceStatus": { + "busy": "Beschäftigt", + "calling": "Wird angerufen …", + "connected": "Verbunden", + "connecting": "Verbindung wird hergestellt…", + "connecting2": "Wird verbunden*…", + "disconnected": "Getrennt", + "expired": "Abgelaufen", + "ignored": "Ignoriert", + "initializingCall": "Anruf wird initialisiert…", + "invited": "Einladen", + "rejected": "Abgelehnt", + "ringing": "Es klingelt …" + }, + "profile": { + "avatar": "Benutzerbild", + "setDisplayNameLabel": "Anzeigename festlegen", + "setEmailInput": "E-Mail eingeben", + "setEmailLabel": "E-Mail-Adresse für Gravatar", + "title": "Profil" + }, + "raisedHand": "Ich möchte sprechen", + "raisedHandsLabel": "Anzahl gehobener Hände", + "record": { + "already": { + "linked": "Diese Konferenz ist bereits mit einem Objekt bei Salesforce verlinkt." + }, + "type": { + "account": "Account", + "contact": "Contact", + "lead": "Lead", + "opportunity": "Opportunity", + "owner": "Owner" + } + }, + "recording": { + "authDropboxText": "In Dropbox hochladen", + "availableSpace": "Verfügbarer Speicherplatz: {{spaceLeft}} MB (ca. {{duration}} Minuten Aufzeichnung)", + "beta": "BETA", + "busy": "Es werden Ressourcen für eine Aufnahme bereitgestellt. Bitte in ein paar Minuten erneut versuchen.", + "busyTitle": "Alle Aufnahme-Instanzen sind in Gebrauch", + "copyLink": "Link kopieren", + "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.", + "expandedPending": "Aufzeichnung wird gestartet…", + "failedToStart": "Die Aufnahme konnte nicht gestartet werden", + "fileSharingdescription": "Aufzeichnung mit den Personen der Konferenz teilen", + "highlight": "Highlight", + "highlightMoment": "Moment als Highlight festhalten", + "highlightMomentDisabled": "Sie können Momente als Highlights festhalten, sobald die Aufnahme startet", + "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", + "localRecordingStartWarning": "Bitte beenden Sie die Aufzeichnung vor dem Verlassen der Konferenz, um die Aufzeichnung zu speichern.", + "localRecordingStartWarningTitle": "Aufzeichnung zum Speichern beenden", + "localRecordingVideoStop": "Wenn Sie ihre Kamera abschalten wird auch die Aufnahme beendet. Sind Sie sicher, dass Sie fortfahren möchten?", + "localRecordingVideoWarning": "Um Ihr eigenes Kamerabild aufzuzeichnen, müssen Sie Ihre Kamera beim Start der Aufnahme einschalten", + "localRecordingWarning": "Bitte prüfen Sie, dass das aktuelle Tab auswählen, um Bild und Ton aufzuzeichnen.", + "loggedIn": "Als {{userName}} angemeldet", + "noMicPermission": "Zugriff auf Mikrofon fehlgeschlagen. Bitte erlauben Sie den Zugriff auf das Mikrofon.", + "noStreams": "Kein Ton oder Video erkannt.", + "off": "Aufnahme gestoppt", + "offBy": "{{name}} stoppte die Aufnahme", + "on": "Aufnahme", + "onBy": "{{name}} startete die Aufnahme", + "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.", + "recordAudioAndVideo": "Kamera und Ton aufzeichnen", + "recordTranscription": "Transkription aufzeichnen", + "saveLocalRecording": "Aufzeichnung lokal abspeichern", + "serviceDescription": "Ihre Aufzeichnung wird vom Aufzeichnungsdienst gespeichert", + "serviceDescriptionCloud": "Cloud-Aufzeichnung", + "serviceDescriptionCloudInfo": "Aufzeichnungen werden 24 Stunden nach Aufzeichnungsende automatisch gelöscht.", + "serviceName": "Aufnahmedienst", + "sessionAlreadyActive": "Diese Konferenz wird bereits aufgezeichnet.", + "showAdvancedOptions": "Weitere Optionen", + "signIn": "Anmelden", + "signOut": "Abmelden", + "surfaceError": "Bitte das aktuelle Tab auswählen.", + "title": "Aufnahme", + "unavailable": "Oh! Der {{serviceName}} ist aktuell nicht verfügbar. Wir arbeiten an der Behebung des Problems. Bitte versuchen Sie es später noch einmal.", + "unavailableTitle": "Aufnahme nicht verfügbar", + "uploadToCloud": "In die Cloud hochladen" + }, + "screenshareDisplayName": "{{name}}s Bildschirmfreigabe", + "sectionList": { + "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.", + "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", + "unsafeRoomActions": { + "meeting": "Erwägen Sie die Absicherung Ihrer Konferenz über den Sicherheits-Button.", + "prejoin": "Erwägen Sie einen einzigartigeren Raumnamen zu wählen.", + "welcome": "Erwägen Sie einen einzigartigeren Raumnamen zu wählen oder wählen Sie einen der Vorschläge." + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Einstellungen", + "calendar": { + "about": "Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Termine zu ermöglichen.", + "disconnect": "Getrennt", + "microsoftSignIn": "Mit Microsoft anmelden", + "signedIn": "Momentan wird auf Kalendertermine von {{email}} zugegriffen. Klicken Sie auf die folgende Schaltfläche „Trennen“, um den Zugriff auf die Kalendertermine zu stoppen.", + "title": "Kalender" + }, + "chatWithPermissions": "Chat mit Freigaben", + "desktopShareFramerate": "Framerate für Bildschirmfreigabe", + "desktopShareHighFpsWarning": "Eine höhere Framerate könnte sich auf Ihre Datenrate auswirken. Sie müssen die Bildschirmfreigabe neustarten, damit die Einstellung übernommen wird.", + "desktopShareWarning": "Sie müssen die Bildschirmfreigabe neustarten, damit die Einstellung übernommen wird.", + "devices": "Geräte", + "followMe": "Follow-me für alle Personen", + "followMeRecorder": "Aufnahme folgt mir", + "framesPerSecond": "FPS", + "incomingMessage": "Eingehende Nachricht", + "language": "Sprache", + "loggedIn": "Als {{name}} angemeldet", + "maxStageParticipants": "Maximale Anzahl an Personen, die zur Hauptansicht angeheftet werden können", + "microphones": "Mikrofon", + "moderator": "Moderation", + "moderatorOptions": "Moderationseinstellungen", + "more": "Mehr", + "name": "Name", + "noDevice": "Kein", + "notifications": "Benachrichtigungen", + "participantJoined": "Neue Person nimmt teil", + "participantKnocking": "Person hat Lobby betreten", + "participantLeft": "Person verlässt die Konferenz", + "playSounds": "Hinweistöne aktiviert", + "reactions": "Interaktionen", + "sameAsSystem": "Wie System ({{label}})", + "selectAudioOutput": "Audioausgabe", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Eigene Ansicht", + "shortcuts": "Tastaturkürzel", + "showSubtitlesOnStage": "Untertitel in Hauptansicht anzeigen", + "speakers": "Lautsprecher", + "startAudioMuted": "Alle Personen treten stummgeschaltet bei", + "startReactionsMuted": "Interaktionstöne für alle deaktivieren", + "startVideoMuted": "Alle Personen treten ohne Video bei", + "talkWhileMuted": "Wenn bei Stummschaltung gesprochen wird", + "title": "Einstellungen", + "video": "Kamera" + }, + "settingsView": { + "advanced": "Erweitert", + "alertCancel": "Abbrechen", + "alertOk": "OK", + "alertTitle": "Warnung", + "alertURLText": "Die angegebene Server-URL ist ungültig", + "apply": "Übernehmen", + "buildInfoSection": "Build-Informationen", + "conferenceSection": "Konferenz", + "disableCallIntegration": "Native Anrufintegration deaktivieren", + "disableCrashReporting": "Absturzberichte deaktivieren", + "disableCrashReportingWarning": "Möchten Sie die Absturzberichte wirklich deaktivieren? Diese Einstellung wird nach einem Neustart der App wirksam.", + "disableP2P": "Ende-zu-Ende-Modus deaktivieren", + "displayName": "Anzeigename", + "displayNamePlaceholderText": "z.B. Erika Musterfrau", + "email": "E-Mail", + "emailPlaceholderText": "email@beispiel.de", + "gavatarMessage": "Wenn Sie ein Gravatar-Konto mit Ihrer Emailadresse haben, wird dieses als Ihr Profilfoto verwendet.", + "goTo": "Gehe zu", + "header": "Einstellungen", + "help": "Hilfe", + "links": "Links", + "privacy": "Datenschutz", + "profileSection": "Profil", + "sdkVersion": "SDK-Version", + "serverURL": "Server-URL", + "showAdvanced": "Erweiterte Einstellungen anzeigen", + "startCarModeInLowBandwidthMode": "Automodus mit Datensparmodus starten", + "startWithAudioMuted": "Stumm beitreten", + "startWithVideoMuted": "Ohne Video beitreten", + "terms": "Nutzungsbedingungen", + "version": "Version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nWollen Sie sich nur auf Ihrem Telefon einwählen?\n\n{{defaultDialInNumber}}Klicken Sie auf diesen Link, um die eingewählten Telefonnummern für diese Konferenz zu sehen\n{{dialInfoPageUrl}}", + "mainText": "Klicken Sie auf den folgenden Link, um der Konferenz beizutreten:\n{{roomUrl}}" + }, + "speaker": "Sprecher/-in", + "speakerStats": { + "angry": "Sauer", + "disgusted": "Angeekelt", + "displayEmotions": "Emotionen anzeigen", + "fearful": "Ängstlich", + "happy": "Fröhlich", + "hours": "{{count}} Std. ", + "labelTooltip": "Anzahl der Personen: {{count}}", + "minutes": "{{count}} Min. ", + "name": "Name", + "neutral": "Neutral", + "sad": "Traurig", + "search": "Suche", + "searchDescription": "Tippen Sie um die Anwesendenliste zu filtern", + "searchHint": "Suche Anwesende", + "seconds": "{{count}} Sek.", + "speakerStats": "Sprechstatistik", + "speakerTime": "Sprechzeit", + "surprised": "Überrascht" + }, + "startupoverlay": { + "genericTitle": "Die Konferenz muss Ihr Mikrofon und Ihre Kamera verwenden.", + "policyText": " ", + "title": "{{app}} benötigt Kamera und Mikrofon." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Erneut teilnehmen", + "text": "„Erneut teilnehmen“-Schaltfläche betätigen, um erneut zu verbinden.", + "title": "Die Konferenz wurde unterbrochen, weil der Standby-Modus aktiviert wurde." + }, + "termsView": { + "title": "Nutzungsbedingungen" + }, + "toggleTopPanelLabel": "Obere Leiste ein-/ausschalten", + "toolbar": { + "Settings": "Einstellungen", + "accessibilityLabel": { + "Settings": "Einstellungen einschalten", + "audioOnly": "„Nur Audio“ ein-/ausschalten", + "audioRoute": "Audiogerät auswählen", + "boo": "Buhen", + "breakoutRooms": "Breakout-Räume", + "callQuality": "Qualitätseinstellungen", + "carmode": "Automodus", + "cc": "Untertitel ein-/ausschalten", + "chat": "Chatfenster öffnen / schließen", + "clap": "Klatschen", + "closeChat": "Chat schließen", + "closeMoreActions": "„Weitere Einstellungen“ schließen", + "closeParticipantsPane": "Anwesendenliste schließen", + "closedCaptions": "Untertitel", + "collapse": "Einklappen", + "document": "Geteiltes Dokument schließen", + "documentClose": "Geteiltes Dokument schließen", + "documentOpen": "Geteiltes Dokument öffnen", + "download": "Unsere Apps herunterladen", + "embedMeeting": "Konferenz einbetten", + "endConference": "Konferenz für alle beenden", + "enterFullScreen": "Vollbildmodus einschalten", + "enterTileView": "Kachelansicht einschalten", + "exitFullScreen": "Vollbildansicht ausschalten", + "exitTileView": "Kachelansicht ausschalten", + "expand": "Ausklappen", + "feedback": "Feedback hinterlassen", + "fullScreen": "Vollbildmodus ein-/ausschalten", + "giphy": "GIPHY ein-/ausschalten", + "grantModerator": "Moderationsrechte vergeben", + "hangup": "Konferenz verlassen", + "heading": "Toolbar", + "help": "Hilfe", + "hideWhiteboard": "Whiteboard ausblenden", + "invite": "Person einladen", + "kick": "Person entfernen", + "laugh": "Lachen", + "leaveConference": "Konferenz verlassen", + "like": "Daumen nach oben", + "linkToSalesforce": "Mit Salesforce verlinken", + "lobbyButton": "Lobbymodus ein-/ausschalten", + "localRecording": "Lokale Aufzeichnungssteuerelemente ein-/ausschalten", + "lockRoom": "Konferenzpasswort ein-/ausschalten", + "love": "Herz", + "lowerHand": "Hand senken", + "moreActions": "Menü „Weitere Einstellungen“ ein-/ausschalten", + "moreActionsMenu": "Menü „Weitere Einstellungen“", + "moreOptions": "Menü „Weitere Optionen“", + "mute": "Mikrofon deaktivieren", + "muteEveryone": "Alle stummschalten", + "muteEveryoneElse": "Alle anderen stummschalten", + "muteEveryoneElsesVideoStream": "Alle anderen Kameras ausschalten", + "muteEveryonesVideoStream": "Alle Kameras ausschalten", + "muteGUMPending": "Verbinde Ihr Mikrofon", + "noiseSuppression": "Rauschunterdrückung", + "openChat": "Chat öffnen", + "participants": "Anwesenheitsliste öffnen. {{participantsCount}} anwesend", + "pip": "Bild-in-Bild-Modus ein-/ausschalten", + "privateMessage": "Private Nachricht senden", + "profile": "Profil bearbeiten", + "raiseHand": "Hand heben", + "react": "Chat-Interaktionen", + "reactions": "Interaktionen", + "reactionsMenu": "Interaktionsmenü öffnen / schließen", + "recording": "Aufzeichnung ein-/ausschalten", + "remoteMute": "Personen stummschalten", + "remoteVideoMute": "Kamera von dieser Person ausschalten", + "security": "Sicherheitsoptionen", + "selectBackground": "Hintergrund auswählen", + "selfView": "Eigene Ansicht ein-/ausschalten", + "shareRoom": "Person einladen", + "shareYourScreen": "Bildschirmfreigabe ein-/ausschalten", + "shareaudio": "Audio teilen", + "sharedvideo": "Videofreigabe ein-/ausschalten", + "shortcuts": "Tastenkombinationen ein-/ausblenden", + "show": "Im Vordergrund anzeigen", + "showWhiteboard": "Whiteboard anzeigen", + "silence": "Stille", + "speakerStats": "Sprechstatistik ein-/ausblenden", + "stopScreenSharing": "Bildschirmfreigabe beenden", + "stopSharedVideo": "Videofreigabe beenden", + "surprised": "Überrascht", + "tileView": "Kachelansicht ein-/ausschalten", + "toggleCamera": "Kamera wechseln", + "toggleFilmstrip": "Miniaturansichten ein-/ausschalten", + "unmute": "Stummschaltung aufheben", + "videoblur": "Unscharfer Hintergrund ein-/ausschalten", + "videomute": "Kamera stoppen", + "videomuteGUMPending": "Verbinde Ihre Kamera", + "videounmute": "Kamera einschalten" + }, + "addPeople": "Personen zur Konferenz hinzufügen", + "audioOnlyOff": "Modus „Nur Audio“ deaktivieren", + "audioOnlyOn": "Modus „Nur Audio“ aktivieren", + "audioRoute": "Audiogerät auswählen", + "audioSettings": "Ton-Einstellungen", + "authenticate": "Anmelden", + "boo": "Buhen", + "callQuality": "Qualitätseinstellungen", + "chat": "Chat öffnen / schließen", + "clap": "Klatschen", + "closeChat": "Chat schließen", + "closeParticipantsPane": "Anwesenheitsliste schließen", + "closeReactionsMenu": "Interaktionsmenü schließen", + "closedCaptions": "Untertitel", + "disableNoiseSuppression": "Rauschunterdrückung deaktivieren", + "disableReactionSounds": "Sie können die Interaktionstöne für diese Konferenz deaktivieren", + "documentClose": "Geteiltes Dokument schließen", + "documentOpen": "Geteiltes Dokument öffnen", + "download": "Unsere Apps herunterladen", + "e2ee": "Ende-zu-Ende-Verschlüsselung", + "embedMeeting": "Konferenz einbetten", + "enableNoiseSuppression": "Rauschunterdrückung einschalten", + "endConference": "Konferenz für alle beenden", + "enterFullScreen": "Vollbildmodus", + "enterTileView": "Kachelansicht einschalten", + "exitFullScreen": "Vollbildmodus verlassen", + "exitTileView": "Kachelansicht ausschalten", + "feedback": "Feedback hinterlassen", + "giphy": "GIPHY ein-/ausschalten", + "hangup": "Konferenz verlassen", + "help": "Hilfe", + "hideWhiteboard": "Whiteboard ausblenden", + "invite": "Personen einladen", + "joinBreakoutRoom": "In Breakout-Raum wechseln", + "laugh": "Lachen", + "leaveBreakoutRoom": "Breakout-Raum verlassen", + "leaveConference": "Konferenz verlassen", + "like": "Daumen hoch", + "linkToSalesforce": "Mit Salesforce verknüpfen", + "lobbyButtonDisable": "Lobbymodus deaktivieren", + "lobbyButtonEnable": "Lobbymodus aktivieren", + "login": "Anmelden", + "logout": "Abmelden", + "love": "Herz", + "lowerYourHand": "Hand senken", + "moreActions": "Weitere Einstellungen", + "moreOptions": "Weitere Optionen", + "mute": "Audio stummschalten", + "muteEveryone": "Alle stummschalten", + "muteEveryonesVideo": "Alle Kameras ausschalten", + "muteGUMPending": "Verbinde Ihre Kamera", + "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:", + "noAudioSignalDialInLinkDesc": "Einwahlnummern", + "noAudioSignalTitle": "Es kommt kein Input von Ihrem Mikrofon!", + "noiseSuppression": "Rauschunterdrückung", + "noisyAudioInputDesc": "Es klingt, als ob Ihr Mikrofon Störgeräusche verursacht. Bitte überlegen Sie, ob Sie das Gerät stummschalten oder austauschen wollen.", + "noisyAudioInputTitle": "Ihr Mikrofon scheint lärmintensiv zu sein!", + "openChat": "Chat öffnen", + "openReactionsMenu": "Interaktionsmenü öffnen", + "participants": "Anwesende", + "pip": "Bild-in-Bild-Modus einschalten", + "privateMessage": "Private Nachricht senden", + "profile": "Profil bearbeiten", + "raiseHand": "Hand heben", + "raiseYourHand": "Melden", + "reactionBoo": "Buhen senden", + "reactionClap": "Klatschen senden", + "reactionHeart": "Herz senden", + "reactionLaugh": "Lachen senden", + "reactionLike": "Daumen hoch senden", + "reactionSilence": "Stille senden", + "reactionSurprised": "Überrascht senden", + "reactions": "Interaktionen", + "security": "Sicherheitsoptionen", + "selectBackground": "Hintergrund auswählen", + "shareRoom": "Person einladen", + "shareaudio": "Audio teilen", + "sharedvideo": "Video teilen", + "shortcuts": "Tastenkürzel anzeigen", + "showWhiteboard": "Whiteboard anzeigen", + "silence": "Stille", + "speakerStats": "Sprechstatistik", + "startScreenSharing": "Bildschirmfreigabe starten", + "startSubtitles": "Untertitel einschalten", + "stopAudioSharing": "Audiofreigabe stoppen", + "stopScreenSharing": "Bildschirmfreigabe stoppen", + "stopSharedVideo": "Video stoppen", + "stopSubtitles": "Untertitel ausschalten", + "surprised": "Überrascht", + "talkWhileMutedPopup": "Versuchen Sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.", + "tileViewToggle": "Kachelansicht ein-/ausschalten", + "toggleCamera": "Kamera wechseln", + "unmute": "Stummschaltung aufheben", + "videoSettings": "Kamera-Einstellungen", + "videomute": "Kamera stoppen", + "videomuteGUMPending": "Verbinde Ihre Kamera", + "videounmute": "Kamera einschalten" + }, + "transcribing": { + "ccButtonTooltip": "Untertitel ein-/ausschalten", + "expandedLabel": "Transkribieren ist derzeit eingeschaltet", + "failed": "Transkribieren fehlgeschlagen", + "labelTooltip": "Die Konferenz wird transkribiert", + "labelTooltipExtra": "Zusätzlich wird das Transkript später verfügbar sein.", + "openClosedCaptions": "Untertitel öffnen", + "original": "Original", + "sourceLanguageDesc": "Aktuell ist die Sprache der Konferenz auf {{sourceLanguage}} eingestellt.
Sie könne dies hier ", + "sourceLanguageHere": "ändern", + "start": "Anzeige der Untertitel starten", + "stop": "Anzeige der Untertitel stoppen", + "subtitles": "Untertitel", + "subtitlesOff": "Ausschalten", + "tr": "TR", + "translateTo": "Übersetzen in" + }, + "unpinParticipant": "{{participantName}} - Nicht mehr anheften", + "userMedia": { + "grantPermissions": "Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen." + }, + "videoSIPGW": { + "busy": "Es stehen keine freien Ressourcen zur Verfügung. Bitte versuchen Sie es später noch einmal.", + "busyTitle": "Keine freien Ressourcen", + "errorAlreadyInvited": "{{displayName}} ist bereits eingeladen", + "errorInvite": "Die Konferenz konnte nicht gestartet werden. Bitte versuchen Sie es später noch einmal.", + "errorInviteFailed": "Wir arbeiten an der Behebung des Problems. Bitte versuchen Sie es später noch einmal.", + "errorInviteFailedTitle": "{{displayName}} konnte nicht eingeladen werden", + "errorInviteTitle": "Fehler beim Erstellen der Konferenz", + "pending": "{{displayName}} wurde eingeladen" + }, + "videoStatus": { + "adjustFor": "Einstellen für:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Sie befinden sich im Modus „Nur Audio“. Dieser Modus benötigt weniger Bandbreite, Sie sehen jedoch nicht die Videos der anderen.", + "bestPerformance": "Beste Leistung", + "callQuality": "Videoqualität", + "hd": "HD", + "hdTooltip": "Video wird in hoher Auflösung angezeigt", + "highDefinition": "Hohe Auflösung", + "highestQuality": "Höchste Qualität", + "labelTooiltipNoVideo": "Kein Video", + "labelTooltipAudioOnly": "„Nur Audio“-Modus aktiv", + "ld": "LD", + "ldTooltip": "Video wird in niedriger Auflösung angezeigt", + "lowDefinition": "Niedrige Auflösung", + "performanceSettings": "Qualitätseinstellungen", + "recording": "Aufnahme läuft", + "sd": "SD", + "sdTooltip": "Video wird in Standardauflösung angezeigt", + "standardDefinition": "Standardauflösung", + "streaming": "Streaming läuft" + }, + "videothumbnail": { + "connectionInfo": "Verbindungsinformationen", + "demote": "Zu Gästen verschieben", + "domute": "Stummschalten", + "domuteOthers": "Alle anderen stummschalten", + "domuteVideo": "Kamera ausschalten", + "domuteVideoOfOthers": "Alle anderen Kameras auschalten", + "flip": "Spiegeln", + "grantModerator": "Moderationsrechte vergeben", + "hideSelfView": "Eigene Ansicht ausblenden", + "kick": "Hinauswerfen", + "mirrorVideo": "Mein Video spiegeln", + "moderator": "Moderation", + "mute": "Person ist stumm geschaltet", + "muted": "Stummgeschaltet", + "pinToStage": "Anheften", + "remoteControl": "Fernsteuerung", + "screenSharing": "Person teilt den Bildschirm", + "show": "Im Vordergrund anzeigen", + "showSelfView": "Eigene Ansicht anzeigen", + "unpinFromStage": "Lösen", + "verify": "Person verifizieren", + "videoMuted": "Kamera ausgeschaltet", + "videomute": "Person hat die Kamera angehalten" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Aktueller Hintergrund: {{background}}", + "selectBackground": "Hintergrund auswählen" + }, + "addBackground": "Hintergrund hinzufügen", + "apply": "Anwenden", + "backgroundEffectError": "Hintergrund konnte nicht aktiviert werden.", + "blur": "Hintergrund unscharf", + "deleteImage": "Bild löschen", + "desktopShare": "Desktopfreigabe", + "desktopShareError": "Desktop konnte nicht freigegeben werden", + "image1": "Strand", + "image2": "Weiße neutrale Wand", + "image3": "Weißer leerer Raum", + "image4": "Schwarze Stehlampe", + "image5": "Berg", + "image6": "Wald", + "image7": "Sonnenaufgang", + "none": "keiner", + "pleaseWait": "Bitte warten…", + "removeBackground": "Hintergrund entfernen", + "slightBlur": "Hintergrund leicht unscharf", + "title": "Hintergründe", + "uploadedImage": "Hochgeladenes Bild {{index}}", + "webAssemblyWarning": "WebAssembly wird nicht unterstützt", + "webAssemblyWarningDescription": "WebAssembly ist deaktiviert oder wird in diesem Browser nicht unterstützt" + }, + "visitors": { + "chatIndicator": "(Gast)", + "joinMeeting": { + "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" + }, + "labelTooltip": "Anzahl Gäste: {{count}}", + "notification": { + "demoteDescription": "Hierhin verschoben von {{actor}}, bitte melden Sie sich um teilzunehmen", + "noMainParticipantsDescription": "Eine Person muss die Konferenz starten. Bitte versuchen Sie es gleich noch einmal.", + "noMainParticipantsTitle": "Diese Konferenz wurde noch nicht gestartet.", + "noVisitorLobby": "Sie können nicht teilnehmen, solange die Lobby für diese Konferenz aktiviert ist.", + "notAllowedPromotion": "Eine Person muss Ihre Anfrage erst erlauben.", + "title": "Sie sind Gast in der Konferenz" + }, + "waitingMessage": "Sie werden der Konferenz beitreten, sobald sie gestartet ist!" + }, + "volumeSlider": "Lautstärkeregler", + "welcomepage": { + "accessibilityLabel": { + "join": "Zum Teilnehmen tippen", + "roomname": "Konferenzname eingeben" + }, + "addMeetingName": "Besprechungsnamen hinzufügen", + "appDescription": "Auf geht's! Starten Sie eine Videokonferenz mit Ihrem Team oder besser noch: Laden Sie alle ein, die Sie kennen. {{app}} ist eine vollständig verschlüsselte und 100 % quelloffene Videokonferenzlösung, die Sie immer und überall kostenlos verwenden können – ohne Registrierung.", + "audioVideoSwitch": { + "audio": "Audio", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Kalender verbinden", + "connectCalendarText": "Verbinden Sie Ihren Kalender, um all Ihre Konferenzen in {{app}} anzuzeigen. Fügen Sie zudem {{provider}}-Konferenzen in Ihren Kalender ein und starten Sie sie mit nur einem Klick.", + "enterRoomTitle": "Neue Konferenz starten", + "getHelp": "Hilfe", + "go": "Los", + "goSmall": "Los", + "headerSubtitle": "Sichere und hochqualitative Konferenzen", + "headerTitle": "Jitsi Meet", + "info": "Einwahlinformationen", + "jitsiOnMobile": "Jitsi unterwegs – einfach unsere Apps herunterladen und Konferenzen von überall starten", + "join": "ERSTELLEN / BEITRETEN", + "logo": { + "calendar": "Kalender Logo", + "desktopPreviewThumbnail": "Desktop-Vorschau Thumbnail", + "googleLogo": "Google Logo", + "logoDeepLinking": "Jitsi Meet Logo", + "microsoftLogo": "Microsoft Logo", + "policyLogo": "Richtlinienlogo" + }, + "meetingsAccessibilityLabel": "Konferenzen", + "mobileDownLoadLinkAndroid": "Android App Download", + "mobileDownLoadLinkFDroid": "F-Droid App Download", + "mobileDownLoadLinkIos": "iOS App Download", + "moderatedMessage": "Oder reservieren Sie sich eine Konferenz-URL, die nur Sie moderieren.", + "privacy": "Datenschutz", + "recentList": "Verlauf", + "recentListDelete": "Eintrag löschen", + "recentListEmpty": "Ihr Konferenzverlauf ist derzeit leer. Reden Sie mit Ihrem Team und Ihre vergangenen Konferenzen landen hier.", + "recentMeetings": "Ihre letzten Konferenzen", + "reducedUIText": "Willkommen bei {{app}}!", + "roomNameAllowedChars": "Der Konferenzname sollte keines der folgenden Zeichen enthalten: ?, &, :, ', \", %, #.", + "roomname": "Konferenzname eingeben", + "roomnameHint": "Name oder URL der Konferenz, der Sie beitreten möchten. Sie können einen Namen erfinden, er muss nur den anderen Personen übermittelt werden, damit diese der gleichen Konferenz beitreten.", + "sendFeedback": "Feedback senden", + "settings": "Einstellungen", + "startMeeting": "Konferenz starten", + "terms": "AGB", + "title": "Sichere, voll funktionale und komplett kostenlose Videokonferenzen", + "upcomingMeetings": "Ihre zukünftigen Konferenzen" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Whiteboard" + }, + "screenTitle": "Whiteboard" + } +} diff --git a/lang/main-dsb.json b/lang/main-dsb.json new file mode 100644 index 0000000..f262257 --- /dev/null +++ b/lang/main-dsb.json @@ -0,0 +1,1372 @@ +{ + "addPeople": { + "add": "pśepšosyś", + "addContacts": "pśepšosćo kontakty", + "contacts": "kontakty", + "copyInvite": "pśepšosenje na to zmakanje kopěrowaś", + "copyLink": "link za konferencu kopěrowaś", + "copyStream": "link za livestreaming kopěrowaś", + "countryNotSupported": "Ten kraj hyšći njewobsłužujomy.", + "countryReminder": "Telefonowy numer njejo z USA? Ga njezabyńśo, až numer dej se zachopiś z kodom Wašogo kraja.", + "defaultEmail": "Waš standardowy e-mail", + "disabled": "Wy njamóžośo luźi pśepšosyś.", + "failedToAdd": "zmólenje pśi pśidaśu wobźělnikow", + "googleEmail": "Google-e-mail", + "inviteMoreHeader": "Wy sćo ten samski wobźělnik / ta samska wobźělnica togo zmakanja", + "inviteMoreMailSubject": "se wobźěliś na zmakanju {{appName}}", + "inviteMorePrompt": "wěcej luźi pśepšosyś", + "linkCopied": "Link jo do mjazyskłada kopěrowany", + "noResults": "Žedne se góźece rezulaty pytanja njedajo", + "outlookEmail": "Outlook-e-mail", + "phoneNumbers": "telefonowe numery", + "searching": "Pytanje trajo…", + "shareInvite": "pśepšosenje na zgromaźinu spśistupniś", + "shareLink": "Spśistupniśo link za konferencu, aby drugich pśepšosyli.", + "shareStream": "link za livestream spśistupniś", + "sipAddresses": "adrese SIP", + "telephone": "telefon: {{number}}", + "title": "luźi na toś tu konferencu pśepšosyś", + "yahooEmail": "Yahoo-e-mail" + }, + "audioDevices": { + "bluetooth": "bluetooth", + "car": "awto", + "headphones": "słuchałka", + "none": "audio-rěd felujo", + "phone": "telefon", + "speaker": "boksa" + }, + "audioOnly": { + "audioOnly": "małka šyrokosć banta" + }, + "breakoutRooms": { + "actions": { + "add": "breakout-śpu pśidaś", + "autoAssign": "awtomatiski na breakout-śpy rozdźěliś", + "close": "zacyniś", + "join": "se wobźěliś", + "leaveBreakoutRoom": "breakout-śpu spušćiś", + "more": "wěcej", + "remove": "wótpóraś", + "sendToBreakoutRoom": "wobźělniki do breakout-śpy pśesajźiś:" + }, + "defaultName": "breakout-śpa #{{index}}", + "mainRoom": "głowna śpa", + "notifications": { + "joined": "do breakout-śpy \"{{name}}\" stupiś", + "joinedMainRoom": "do głowneje śpy stupiś", + "joinedTitle": "breakout-śpy" + } + }, + "calendarSync": { + "addMeetingURL": "link za konferencu pśidaś", + "confirmAddLink": "Cośo jitsi-link k tomu terminoju pśidaś?", + "error": { + "appConfiguration": "Integracija kalendarja njejo pšawje konfigurěrowana.", + "generic": "Zmólenje. Pśespytujśo nastajenje kalendarja a wopytajśo se wótnowotki pśizjawiś", + "notSignedIn": "Zmólenje pśi awtentificěrowanju pśistupa ku kalendarju. Pśespytujśo nastajenje kalendarja a wopytajśo se wótnowotki pśizjawiś." + }, + "join": "se wobźěliś", + "joinTooltip": "se na zmakanju wobźěliś", + "nextMeeting": "pśiduca konferenca", + "noEvents": "Žednych pśiducych terminow njedajo.", + "ongoingMeeting": "rowno trajuce zmakanje", + "permissionButton": "nastajenja wótcyniś", + "permissionMessage": "Aplikacija pótrjeba pśistup ku kalendarju, aby terminy a konference se pokazali.", + "refresh": "kalendaŕ aktualizěrowaś", + "today": "źinsa" + }, + "carmode": { + "actions": { + "selectSoundDevice": "audio-rěd wuzwóliś" + }, + "labels": { + "buttonLabel": "awtowy modus", + "title": "modus za jězdźenje z awtom", + "videoStopped": "Waša kamera jo deaktiwěrowana" + } + }, + "chat": { + "enter": "do chat-śpy stupiś", + "error": "Zmólenje: Waša powěsć njejo se wótpósłała. Wina: {{error}}", + "fieldPlaceHolder": "Napišćo how powěsć", + "lobbyChatMessageTo": "powěsć we cakaŕni za {{recipient}}", + "message": "powěsć", + "messageAccessibleTitle": "{{user}} groni:", + "messageAccessibleTitleMe": "ja gronim:", + "messageTo": "priwatna powěsć za {{recipient}}", + "messagebox": "powěsć napisaś", + "newMessages": "", + "nickname": { + "popover": "wuzwólśo mě (alias)", + "title": "zapódajśo alias za chat", + "titleWithPolls": "Zapódajśo alias za chat" + }, + "noMessagesMessage": "Na tej konferency njejsu hyšći žedne powěsći. Zachopśo rozgrono how!", + "privateNotice": "priwatna powěsć za {{recipient}}", + "sendButton": "", + "smileysPanel": "emojije k wuzwólenju", + "tabs": { + "chat": "chatowanje", + "polls": "wopšašowanja" + }, + "title": "chat", + "titleWithPolls": "chatowanje a wopšašowanja", + "you": "Wy" + }, + "chromeExtensionBanner": { + "buttonText": "rozšyrjenje za Chrome instalěrowaś", + "buttonTextEdge": "rozšyrjenje za Edge instalěrowaś", + "close": "zacyniś", + "dontShowAgain": "pokazk wěcej njepokazaś", + "installExtensionText": "Instalěrujśo rozšyrjenje za integraciju kalendarja Google a Office 365" + }, + "connectingOverlay": { + "joiningRoom": "zwězanje ze zmakanim…" + }, + "connection": { + "ATTACHED": "pśiscynjona dataja", + "AUTHENTICATING": "awtentificěrowanje", + "AUTHFAIL": "awtentificěrowanje njejo se raźiło", + "CONNECTED": "zwězanje jo natwarjone", + "CONNECTING": "zwězanje se twari", + "CONNFAIL": "zwězanje njejo se raźiło", + "DISCONNECTED": "zwězanje jo pśetergnjone", + "DISCONNECTING": "zwězanje se pśetergnjo", + "ERROR": "zmólenje", + "FETCH_SESSION_ID": "ID zmakanja wótwołaś…", + "GET_SESSION_ID_ERROR": "zmólenje pśi wótwołanju ID zmakanja: {{code}}", + "GOT_SESSION_ID": "Wótwołanje ID zmakanja… jo dokóńcowane", + "LOW_BANDWIDTH": "Wideo za {{displayName}} jo pśetergnjone dla žarjenja šyrokosći banta" + }, + "connectionindicator": { + "address": "adresa:", + "audio_ssrc": "audio-SSRC:", + "bandwidth": "šacowana šyrokosć banta:", + "bitrate": "bitowa rata:", + "bridgeCount": "licba serwerow: ", + "codecs": "kody (A/V): ", + "connectedTo": "zwězanje z:", + "e2eeVerified": "", + "framerate": "wobrazowa frekwenca:", + "less": "mjenjej pokazaś", + "localaddress": "lokalna adresa:", + "localaddress_plural": "lokalne adrese:", + "localport": "lokalny port:", + "localport_plural": "lokalne porty:", + "maxEnabledResolution": "maksimalnje pósłaś", + "more": "wěcej pokazaś", + "packetloss": "zgubjone pakśiki:", + "participant_id": "ID wósoby:", + "quality": { + "good": "dobre", + "inactive": "inaktiwne", + "lost": "zgubjone", + "nonoptimal": "njeoptimalne", + "poor": "ryjne" + }, + "remoteaddress": "wótpórana adresa:", + "remoteaddress_plural": "wótpórane adrese:", + "remoteport": "wótpórany port:", + "remoteport_plural": "wótpórane porty:", + "resolution": "rozpušćenje:", + "savelogs": "logs zachowaś", + "status": "zwězanje:", + "transport": "protokol:", + "transport_plural": "protokole:", + "video_ssrc": "video-SSRC:" + }, + "dateUtils": { + "earlier": "pjerwjej", + "today": "źinsa", + "yesterday": "cora" + }, + "deepLinking": { + "appNotInstalled": "Wy pótrjebaśo aplikaciju „{{app}}“ za pśistup ku konferency pśez handy.", + "description": "Nic njejo se stało? My smy wopytali konferencu z pomocu aplikacije {{app}} wótcyniś. Wopytajśo wótnowotki abo pśistupśo pśez aplikaciju {{app}} we seśi.", + "descriptionWithoutWeb": "Nic njejo se stało? My smy wopytali konferencu z pomocu desktopoweje aplikacije „{{app}}“ wótcyniś.", + "downloadApp": "aplikaciju wólodowaś", + "ifDoNotHaveApp": "Njamaśo-li tu aplikaciju hyšći:", + "ifHaveApp": "Maśo-li tu aplikaciju južo:", + "joinInApp": "pśez aplikaciju se na zmakanju wobźěliś", + "launchWebButton": "we seśi wótcyniś", + "title": "Konferenca wótcynijo se we aplikaciji {{app}} …", + "tryAgainButton": "hyšći wótnowotki z natiwneju aplikaciju wopytaś", + "unsupportedBrowser": "Wy wužywaśo browser, kótaryž my njepódpěramy." + }, + "defaultLink": "na pśikład: {{url}}", + "defaultNickname": "na pśikład Jane Pink", + "deviceError": { + "cameraError": "zmólenje pśi pśistupje ku kamerje", + "cameraPermission": "zmólenje pśi dostaśu pšawow na pśistup ku kamerje", + "microphoneError": "zmólenje pśi pśistupje k mikrofonoju", + "microphonePermission": "zmólenje pśi dostaśu pšawow na pśistup k mikrofonoju" + }, + "deviceSelection": { + "noPermission": "Pšawo njejo wordowało zwólone.", + "previewUnavailable": "Naglěd njejo móžny.", + "selectADevice": "rěd wuzwóliś", + "testAudio": "zuk testowaś" + }, + "dialIn": { + "screenTitle": "daty telefonowych zwězanjow" + }, + "dialOut": { + "statusMessage": "jo něnto {{status}}" + }, + "dialog": { + "Back": "slědk", + "Cancel": "pśetergnuś", + "IamHost": "Ja som organizator zmakanja", + "Ok": "OK", + "Remove": "wótpóraś", + "Share": "spśistupniś", + "Submit": "OK", + "WaitForHostMsg": "Konferenca {{room}} njejo se hyšći zachopiła. Sćo-li Wy organizator, ga awtentificěrujśo se. Howacej cakajśo, až organizator se zjawijo.", + "WaitingForHostTitle": "cakajucy na zachopjeńk konference…", + "Yes": "jo", + "accessibilityLabel": { + "liveStreaming": "livestream" + }, + "add": "pśidaś", + "addMeetingNote": "noticku k tej koferency pśipisaś", + "addOptionalNote": "noticku pśipisaś (opcionalne):", + "allow": "zwóliś", + "alreadySharedVideoMsg": "Jadna druga wósoba jo južo wideo spśistupniła. Na tej konferency jo móžno we tom samem casu jano jaden wideo wiźeś.", + "alreadySharedVideoTitle": "jano jaden wideo we tom samem casu", + "applicationWindow": "woknyško aplikacije", + "authenticationRequired": "awtentificěrowaje se pomina", + "cameraConstraintFailedError": "Waša kamera njedopołnijo pominane kriterije.", + "cameraNotFoundError": "Kamera se njenamakajo.", + "cameraNotSendingData": "Kamera njestoj k dispoziciji. Pśespytujśo, lěc jadna druga aplikacija njewužywa južo kameru. Abo wuzwólśo drugu kameru z menija nastajenjow abo startujśo aplikaciju wótnowotki.", + "cameraNotSendingDataTitle": "pśistup ku kamerje njejo móžny", + "cameraPermissionDeniedError": "Pšawo na wužywanje kamery njejo wordowało zwólone. Wy móžośo weto se na konferency wobźěliś, ale druge wobźělniki njebudu móc Was wiźeś. Nałožćo bublin z kameru we adresowej lejstwje, aby wobźělnikam pšawa wuźělili.", + "cameraTimeoutError": "Wideo njejo mógło se startowaś - wustajony cas jo pśejšeł!", + "cameraUnknownError": "Kamera njedajo se wužywaś dla njeznateje winy.", + "cameraUnsupportedResolutionError": "Kamera njepśemóžo pominane rozpušćenje wobsłužyś.", + "close": "zacyniś", + "conferenceDisconnectMsg": "Pśespytujśo ewentuelnje zwězanje ze seśu. Zwězanje naspjet za {{seconds}} sekundow …", + "conferenceDisconnectTitle": "Wašo zwězanje jo se pśetergnuło.", + "conferenceReloadMsg": "My wopytujomy jo pórěźiś. Zwězanje naspjet za {{seconds}} sekundow…", + "conferenceReloadTitle": "Něco njejo funkcioněrowało, bóžko.", + "confirm": "wobtwarźiś", + "confirmNo": "ně", + "confirmYes": "jo", + "connectError": "O! Něco jo kamsy šło, pśistup ku konferency njejo był móžny.", + "connectErrorWithMsg": "O! Něco jo kamsy šło, pśistup ku konferency njejo był móžny: {{msg}}", + "connecting": "zwězanje se twari", + "contactSupport": "support kontaktěrowaś", + "copied": "pśekopěrowane", + "copy": "kopěrowaś", + "dismiss": "OK", + "displayNameRequired": "Witajśo! Kak se Wam groni?", + "done": "gótowe", + "e2eeDescription": "Šyfrěrowanje end-to-end jo tuchylu hyšći we ekspermentelnej fazy. Wobmysliśo, až zrownju z aktiwěrowanim teje metody deaktiwěruju se wšake serwerowe funkcije: nagrawanje, livestreaming a zwězanje z telefonom. Glědajśo wušej togo na to, až pótom móžośo pśistupiś ku konferency jano pśez browsery, kótarež pódpěraju Insertable Streams.", + "e2eeDisabledDueToMaxModeDescription": "Šyfrěrowanje pó metoźe end-to-end njamóžo se aktiwěrowaś dla wusokeje licby wobźělnikow.", + "e2eeLabel": "šyfrěrowanje end-to-end aktiwěrowaś", + "e2eeWarning": "WARNOWANJE: Zazdaśim jo tak, až njamógu wšykne wobźělniki teje konference šyfrěrowanje end-to-end wužywaś. Gaž jo weto aktiwěrujośo, ga njebudu wóni móc nic słyšaś daniž wiźeś.", + "e2eeWillDisableDueToMaxModeDescription": "WARNOWANJE: Šyfrěrowanje end-to-end deaktiwěrujo se awtomatiski, gaž hyšći wěcej wobźělnikow pśistupijo.", + "embedMeeting": "konferencu integrěrowaś", + "enterDisplayName": "Zapódajśo how swójo mě", + "error": "zmólenje", + "gracefulShutdown": "Ta słužba njestoj tuchylu k dispoziciji dla wótwardowaŕskich źěłow. Wopytajśo pózdźej hyšći raz.", + "grantModeratorDialog": "Cośo-li napšawdu tomu wobźělnikoju abo wobźělnicy moderatorske pšawa daś?", + "grantModeratorTitle": "moderatorske pšawa daś", + "hide": "chowaś", + "hideShareAudioHelper": "Tu informaciju njepokazaś wěcej", + "incorrectPassword": "mě a kodowe słowo njejstej płaśecej", + "incorrectRoomLockPassword": "wopacne kodowe słowo", + "internalError": "O! Něco njejo pšawje funkcioněrowało. Zmólenje: {{error}}", + "internalErrorTitle": "interne zmólenje", + "kickMessage": "Aby zgónili nadrobnjejše informacije, wobrośćo se na {{participantDisplayName}}.", + "kickParticipantButton": "wuzamknuś", + "kickParticipantDialog": "Cośo-li tu wósobu napšawdu wuzamknuś?", + "kickParticipantTitle": "tu wósobu wuzamknuś?", + "kickTitle": "Awč! {{participantDisplayName}} jo Was z konference wuchyśił", + "linkMeeting": "konferencu zalinkowaś?", + "linkMeetingTitle": "konferencu ze Salesforce zalinkowaś", + "liveStreaming": "livestreaming", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "za cas nagrawanja blokěrowane", + "localUserControls": "lokalna kontrola", + "lockMessage": "Konferenca njejo dała se zamknuś.", + "lockRoom": "konferenzu$t(lockRoomPassword) pśidaś", + "lockTitle": "zamknjenje njejo se raźiło", + "login": "logowanje", + "logoutQuestion": "Sćo wěste, až cośo se wulogowaś a konferencu spušćiś?", + "logoutTitle": "wulogowaś", + "maxUsersLimitReached": "Limit za maksimalnu licbu wobźělnikow jo dosegnjony. Konferenca jo połna nabita. Wobrośćo se na organizatorow konference abo wopytajśo pózdźej hyšći raz!", + "maxUsersLimitReachedTitle": "Maksimalna licba wobźělnikow jo dosegnjona", + "micConstraintFailedError": "Waš mikrofon njedopołnijo wustajone kriterije.", + "micNotFoundError": "Mikrofon njejo se namakał.", + "micNotSendingData": "Wótcyńśo nastajenja Wašogo computera a aktiwěrujśo naspjet wuśichnjony mikrofon a pśiměŕśo jomu niwow głosnosći", + "micNotSendingDataTitle": "Waš mikrofon jo pśez systemowe nastajenja wuśichnuł.", + "micPermissionDeniedError": "Pšawo na wužywanje mikrofona njejo wordowało zwólone. Wy móžośo se pśeto na konferency wobźěliś, ale druge wobźělniki njebudu móc Was słyšaś. Nałožćo bublin z kameru we adresowej lejstwje, aby wobźělnikam pšawa wuźělili.", + "micTimeoutError": "Wustajony cas jo pśejšeł. Žrědło zuka njejo mógło se aktiwěrowaś.", + "micUnknownError": "Mikrofon njedajo se dla njeznateje winy wužywaś.", + "moderationAudioLabel": "Pśiwdajśo wobźělnikam pšawo, aby sami swój wuśišony mikrofon zasej aktiwěrowali", + "moderationVideoLabel": "Pśiwdajśo wobźělnikam swóju kameru aktiwěrowaś", + "muteEveryoneDialog": "Wobźělniki mógu swój wuśišony mikrofon kuždy cas aktiwěrowaś.", + "muteEveryoneDialogModerationOn": "Wobźělniki mógu kuždy cas wótpósłaś póžedanje, až kśě powědaś.", + "muteEveryoneElseDialog": "Gaž wšyknych wobźělnikow wuśišyjośo, ga njebuźośo móc wěcej to wuśišenje dokóncowaś, ale wóni budu móc sami kuždy cas swóje mikrofony aktiwěrowaś.", + "muteEveryoneElseTitle": "Wšykne mimo {{whom}} wuśišyś?", + "muteEveryoneElsesVideoDialog": "Gaž kamera jo wordowała deaktiwěrowana, ga njamóžośo Wy ju zasej aktiwěrowaś, ale wobźělniki sami mógu to kuždy cas pśeměniś.", + "muteEveryoneElsesVideoTitle": "Kameru wšyknych mimo {{whom}} wušaltowaś?", + "muteEveryoneSelf": "sam se", + "muteEveryoneStartMuted": "Wótněnta su wšykne wobźělniki wuśišone", + "muteEveryoneTitle": "Wšyknych wuśišyś?", + "muteEveryonesVideoDialog": "Sćo wěste, až cośo kamery wšyknych wobźělnikow deaktiwěrowaś? Wy njebuźośo móc je zasej aktiwěrowaś, ale wobźělniki budu móc sami to cyniś.", + "muteEveryonesVideoDialogModerationOn": "Wobźělniki mógu kuždy cas wótpósłaś pšosbu, aby jich kamera se aktiwěrowała.", + "muteEveryonesVideoDialogOk": "deaktiwěrowaś", + "muteEveryonesVideoTitle": "Kameru wšyknych druich wobźělnikow wušaltowaś?", + "muteParticipantBody": "Wy njebuźośo móc to wuśišenje drugich wobźělnikow dokóńcowaś, ale wobźělniki mógu kuždy cas swójo samske wuśišenje dokóńcowaś.", + "muteParticipantButton": "wuśišyś", + "muteParticipantsVideoBody": "Wy njebuźośo móc kameru zasej aktiwěrowaś, ale wobźělniki mógu to kuždy cas sami cyniś.", + "muteParticipantsVideoBodyModerationOn": "Wy njebuźośo móc kameru zasej aktiwěrowaś, a wóni teke nic.", + "muteParticipantsVideoButton": "kameru wušaltowaś?", + "muteParticipantsVideoDialog": "Cośo kameru togo wobźělnika napšawdu deaktiwěrowaś? Wy njebuźośo móc ju zasej aktiwěrowaś, ale ten wobźělnik buźo móc to kuždy cas sam cyniś.", + "muteParticipantsVideoDialogModerationOn": "Cośo kameru togo wobźělnika napšawdu deaktiwěrowaś? Wy njebuźośo móc ju zasej aktiwěrowaś, a ten wobźělnik teke nic.", + "muteParticipantsVideoTitle": "Kameru togo wobźělnika wušaltowaś?", + "noDropboxToken": "žeden płaśecy dropbox-token how njejo", + "password": "kodowe słowo", + "passwordLabel": "To zmakanje jo wordowało zawěsćone. Zapódajśo $t(lockRoomPasswordUppercase), aby se na njom wobźělili.", + "passwordNotSupported": "Wustajenje kodowego słowa za konferencu se njepódpěra.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) se njepódpěra", + "passwordRequired": "$t(lockRoomPasswordUppercase) se pomina", + "permissionCameraRequiredError": "Pśistup ku kamerje musy se aktiwěrowaś, aby se na wideokonferency wobźělili. Nastajśo jen we nastajenjach", + "permissionErrorTitle": "Wy musyśo měś to pšawo", + "permissionMicRequiredError": "Pśistup k mikrofonoju jo trjebny, aby se wobźělili na konferency ze zukom. Nastajśo to we natajenjach.", + "popupError": "Waš browser blokěrujo woknyška pop-up z togo internetowego boka. Aktiwěrujśo woknyška pop-up we wěstosćowych nastajenjach browsera a wopytajśo hyšći raz.", + "popupErrorTitle": "Woknyško pop-up jo blokěrowane", + "readMore": "wěcej", + "recentlyUsedObjects": "slědne wužyte objekty", + "recording": "nagrawanje", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "za cas livestreama njejo možne", + "rejoinNow": "něnto wótnowotki pśistupiś", + "remoteControlAllowedMessage": "{{user}} jo Wašu pšosbu wó wótnazdalne šturowanje akceptěrował!", + "remoteControlDeniedMessage": "{{user}} jo Wašu pšosbu wó wótnazdalne šturowanje wótchylił!", + "remoteControlErrorMessage": "Pśi skazanju pšawa na wótnazdalne šturowanje {{user}} jo se zmólenje stało!", + "remoteControlRequestMessage": "Pśiwdajaśo wobźělnikoju {{user}}, aby computer wótnazdala šturował?", + "remoteControlShareScreenWarning": "Warnujśo se, jolic až tu pšosbu akceptěrujośo, ga buźo Waš monitor sobu źělony!", + "remoteControlStopMessage": "Wótnazdalne šturowanje jo dokóńcowane!", + "remoteControlTitle": "wótnazdalne šturowanje computera", + "remoteUserControls": "wótnazdalne šturowanje pśez wobźělnika {{username}}", + "removePassword": "$t(lockRoomPasswordUppercase) entfernen", + "removeSharedVideoMsg": "Sćo Wy wěste, až cośo spśistupnjone wideo wulašowaś?", + "removeSharedVideoTitle": "spśistupnjone wideo wulašowaś", + "reservationError": "Zmólenje we systemje rezerwěrowanja", + "reservationErrorMsg": "zmólenje, numer: {{code}}, powěsć: {{msg}}", + "retry": "hyšći raz", + "screenSharingAudio": "zuk drugim spśistupniś", + "screenSharingFailed": "Mójejko! Pśi sobuźělenju monitora něco njejo funkcioněrowało!", + "screenSharingFailedTitle": "Sobuźělenje monitora njejo se raźiło!", + "screenSharingPermissionDeniedError": "Ach mójej! Něco njefunkcioněrujo z Wašymi pšawami na sobuźělenje monitora. Wótwołajśo hyšći raz a wopytajśo wótnowotki.", + "searchInSalesforce": "we Salesforce pytaś", + "searchResults": "rezultaty pytanja({{count}})", + "searchResultsDetailsError": "Pśi wótwołanju datow wobsejźarja něco njejo funkcioněrowało.", + "searchResultsError": "Pśi wótwołanju datow jo se zmólenje stało.", + "searchResultsNotFound": "Žedne rezultaty njejsu namakane.", + "searchResultsTryAgain": "Wopytajśo hyšći raz z drugimi klucowymi słowami.", + "sendPrivateMessage": "Wy sćo pśed krotkim dostali priwatnu powěsć. Cośo na nju priwatnje wótegroniś abo cośo Wašu powěsć cełej grupje zjawiś?", + "sendPrivateMessageCancel": "cełej grupje zjawiś", + "sendPrivateMessageOk": "priwatnje wótegroniś", + "sendPrivateMessageTitle": "priwatnje wótegroniś?", + "serviceUnavailable": "słužba njestoj k dispoziciji", + "sessTerminated": "Konferenca jo dokóńcowana.", + "sessionRestarted": "Konferenca jo se wótnowotki startowała.", + "shareAudio": "dalej", + "shareAudioTitle": "Kak se audio drugim sobu źěli?", + "shareAudioWarningD1": "Wy dejśo sobuźělenje monitora pjerwjej dokóńcowaś, nježli spśistupnijośo drugim audio.", + "shareAudioWarningD2": "Wy dejśo sobuźělenje monitora wótnowotki startowaś a pśi tom wuzwóliś opciju \"audio drugim spśistupniś\".", + "shareAudioWarningH1": "Gaž cośo audio a monitor drugim sobu źěliś:", + "shareAudioWarningTitle": "Wy musyśo sobuźělenje monitora wušaltowaś, akle pótom móžośo audio sobu źěliś.", + "shareMediaWarningGenericH2": "Gaž cośo monitor a audio drugim sobu źěliś:", + "shareScreenWarningD1": "Wy musyśo sobuźělenje audio wušaltowaś, akle pótom móžośo monitor sobu źěliś.", + "shareScreenWarningD2": "Wy dejśo sobuźělenje audio dokóńcowaś a pótom sobuźělenje monitora \"Audio z drugimi sobu źěliś\" startowaś.", + "shareScreenWarningH1": "Gaž cośo Waš monitor drugim spśistupniś (sobu źěliś):", + "shareScreenWarningTitle": "Wy musyśo sobuźělenje audio wušaltowaś, akle pótom móžośo monitor sobu źěliś.", + "shareVideoLinkError": "Zapódajśo płaśecy link.", + "shareVideoTitle": "wideo sobu źěliś", + "shareYourScreen": "sobuźělenje monitora zašaltowaś/ wušaltowaś", + "shareYourScreenDisabled": "Sobuźělenje monitora jo wušaltowane.", + "sharedVideoDialogError": "zmólka: njepłaśeca adresa URL", + "sharedVideoLinkPlaceholder": "Link na YouTube abo direktny link k wideo", + "show": "pokazaś", + "start": "startuj: ", + "startLiveStreaming": "livestream startowaś", + "startRecording": "nagrawanje startowaś", + "startRemoteControlErrorMessage": "Pśi wopytanju wótnazdalnego šturowanja jo se zmólenje stało!", + "stopLiveStreaming": "livestream pśetergnuś", + "stopRecording": "nagrawanje pśetergnuś", + "stopRecordingWarning": "Sćo Wy wěste, až cośo nagrawanje dokóńcowaś?", + "stopStreamingWarning": "Sćo Wy wěstre, až cośo livestream dokóńcowaś?", + "streamKey": "kluc za stream", + "thankYou": "Wjeliki źěk za wužywanje aplikacije {{appName}}!", + "token": "token", + "tokenAuthFailed": "Wy njamaśo pšawo tej konferenciji pśistupiś.", + "tokenAuthFailedTitle": "Awtentificěrowanje njejo se raźiło.", + "transcribing": "se transkriběrujo", + "unlockRoom": "konferencu $t(lockRoomPassword) wótpóraś", + "user": "wobźělnik", + "userIdentifier": "wužywaŕske mě", + "userPassword": "kodowe słowo", + "verifyParticipantConfirm": "", + "verifyParticipantDismiss": "", + "verifyParticipantQuestion": "", + "verifyParticipantTitle": "", + "videoLink": "wideo-link", + "viewUpgradeOptions": "opcije za aktualizěrowanje (upgrade) pokazaś", + "viewUpgradeOptionsContent": "Wy musyśo swój tarif rozšyriś, aby mógli wužywaś premium-funkcije kaž nagrawanje, transkripciju, RTMP-streaming a dalšne", + "viewUpgradeOptionsTitle": "premium-funkcija", + "yourEntireScreen": "ceły monitor" + }, + "documentSharing": { + "title": "sobuźělony dokument" + }, + "e2ee": { + "labelToolTip": "Daty audio a wideo togo rozgrona su něnto na droze mjazy wobźělnikami šyfrěrowane." + }, + "embedMeeting": { + "title": "toś tu konferencu integrěrowaś" + }, + "feedback": { + "average": "pśerěznje derje", + "bad": "zlě", + "detailsLabel": "Grońśo nam wěcej k tomu.", + "good": "derje", + "rateExperience": "Dajśo tej konferency swóju censuru", + "star": "gwězdki", + "veryBad": "wjelgin zlě", + "veryGood": "wjelgin derje" + }, + "giphy": { + "noResults": "Žedne rezultaty njejsu namakane :(", + "search": "GIPHY pśepytaś" + }, + "incomingCall": { + "answer": "wótegroniś", + "audioCallTitle": "pśiźecy telefonat", + "decline": "OK", + "productLabel": "wót Jitsi Meet", + "videoCallTitle": "pśiźecy wideo-tefonat" + }, + "info": { + "accessibilityLabel": "informacije pokazaś", + "addPassword": "$t(lockRoomPasswordUppercase) pśidaś", + "cancelPassword": "$t(lockRoomPasswordUppercase) wulašowaś", + "conferenceURL": "Link:", + "copyNumber": "numer kopěrowaś", + "country": "kraj", + "dialANumber": "Aby se wobźělili na zmakanju, musyśo jaden tych numerow wuzwóliś a PIN zapódaś.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Wódajśo, ale wuzwólowanje numerow se tuchylu njepódpěra, bóžko.", + "dialInNumber": "Zwězanje z konferencu:", + "dialInSummaryError": "Zmólenje pśi wótwołanju informacijow, wopytajśo pózdźej hyšći raz.", + "dialInTollFree": "dermo (mimo płaśonka)", + "genericError": "Bóžko, něco njejo se raźiło.", + "inviteLiveStream": "Klikniśo na {{url}}, aby livestream teke konference wótwórili", + "invitePhone": "Gaž město togo cośo lubjej pśez telefon pśistupiś, ga wuzwólśo: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Pytaśo za drugim numerom ?\nPokazaś numery za konferencu: {{url}}\n\n\nJolic až se zwěžośo z konferencu pśez śpiny telefon, ga wobźělijośo se na njej mimo zuka: {{silentUrl}}", + "inviteSipEndpoint": "Aby se wobźělili ze SIP, wužyjśo tu adresu: {{sipUri}}", + "inviteTextiOSInviteUrl": "na konferency se wobźěliś: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Gaž se wobźělijośo pśez konferencowy telefon, ga wužyjśo ten link, aby mimo zuka se na konferency wobźělili: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} pšosy Was na konferencu.", + "inviteTextiOSPhone": "Wužyjśo slědujucy link, aby se na konferency pśez telefon wobźělili: {{number}},,{{conferenceID}}#. Gaž pytaśo telefonowy numer za konferencu, ga połnu lisćinu namakajśo how: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Wy sćo wordowali na konferencu pśepšosone.", + "inviteURLFirstPartPersonal": "{{name}} pšosy Was na zmakanje.\n", + "inviteURLSecondPart": "\nna zmakanju su wobźěliś:\n{{url}}\n", + "label": "informacije k zwězanju", + "liveStreamURL": "livestream:", + "moreNumbers": "dalšne telefonowe numery", + "noNumbers": "Žedne telefonowe numery njestoje k dispoziciji.", + "noPassword": "Žedno kodowe słowo se njepótrjeba.", + "noRoom": "Žedna konferenca njejo pódana, z kótarejuž by se mógli zwězaś.", + "numbers": "numery za konferencu", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "", + "sip": "adresa SIP", + "title": "drugim sobu źěliś", + "tooltip": "Spśistupni drugim link a informacije za zwězanje z tym zmakanim.", + "upgradeOptions": "" + }, + "inlineDialogFailure": { + "msg": "Zmólenje jo se stało.", + "retry": "wótnowotki wopytaś", + "support": "support", + "supportMsg": "Gaž to zmólenje se hyšći raz stanjo, ga kontaktěrujśo" + }, + "inviteDialog": { + "alertText": "Njejo se raźiło žedne wobźělniki pśepšosyś.", + "header": "pśepšosyś", + "searchCallOnlyPlaceholder": "telefonowy numer zapódaś", + "searchPeopleOnlyPlaceholder": "pytaś za wobźělnikami", + "searchPlaceholder": "wobźělnik abo telefonowy numer", + "send": "wótpósłaś" + }, + "jitsiHome": "{{logo}} logo z linkom k homepage", + "keyboardShortcuts": { + "focusLocal": "lokalny wideo fokusěrowaś", + "focusRemote": "na wideo drugego wobźělnika fokusěrowaś", + "fullScreen": "połnu bildu aktiwěrowaś abo deaktiwěrowaś", + "giphyMenu": "GIPHY pokazaś abo schowaś", + "keyboardShortcuts": "tastaturowe skrotconki", + "localRecording": "šturujuce elementy za lokalne nagrawanje pokazaś abo schowaś", + "mute": "wuśišenje aktiwěrowaś oder deaktiwěrowaś", + "pushToTalk": "Push-to-Talk (tasta za powědanje)", + "raiseHand": "ruku zwignuś", + "showSpeakerStats": "statistiku powědarja pokazaś", + "toggleChat": "chat wótcyniś abo zacyniś", + "toggleFilmstrip": "miniatury wideo pokazaś abo schowaś", + "toggleParticipantsPane": "lisćinu wobźělnikow pokazaś abo schowaś", + "toggleScreensharing": "mjazy kameru a sobuźělenim monitora pśešaltowaś", + "toggleShortcuts": "tastowe kombinacije pokazaś abo schowaś", + "videoMute": "kameru startowaś abo zastajiś" + }, + "largeVideo": { + "screenIsShared": "", + "showMeWhatImSharing": "" + }, + "liveStreaming": { + "busy": "Źěłamy na tom, aby resurse za streaming se k dispoziciji stajili. Wopytajśo za pór minutow hyšći raz.", + "busyTitle": "Wšykne instance za streaming se južo wužywaju.", + "changeSignIn": "konto pśešaltowaś", + "choose": "livestream wuzwóliś", + "chooseCTA": "Opcije za streaming wuzwóliś. Wy sćo dotychměst ako {{email}} zalogowane.", + "enterStreamKey": "Kluc za livestream na youtube how zapódaś.", + "error": "Livestreaming njejo funkcioněrował. Wopytajśo pózdźej hyšći raz.", + "errorAPI": "Pśi wótwołanju livestreama na youtube jo se zmólenje stało. Wopytajśo se wótnowotki zalogowaś.", + "errorLiveStreamNotEnabled": "Livestreaming njejo za {{email}} aktiwěrowany. Aktiwěrujśo livestreaming abo zalogujśo se na kontu z aktiwěrowanym livestreamingom.", + "expandedOff": "Livestream jo wordował zastajony.", + "expandedOn": "Konferenca streamujo se rowno na youtube.", + "expandedPending": "Livestream se startujo…", + "failedToStart": "Livestream njejo mógł se startowaś.", + "getStreamKeyManually": "Njejsmy pśemógli livestreamy wótwołaś. Wopytajśo Waš kluc za livestream wót youtube dostaś.", + "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", + "onBy": "{{name}} jo livestream startował", + "pending": "Livestream se startujo …", + "serviceName": "słužba za livestreaming", + "sessionAlreadyActive": "Toś ta konferenca wusćeła se južo ako livestream.", + "signIn": "se z Google zalogowaś", + "signInCTA": "se zalogowaś abo kluc za livestream na youtube zapódaś", + "signOut": "se wulogowaś", + "signedInAs": "Wy sćo něnto zalogowane ako:", + "start": "livestream zachopiś", + "streamIdHelp": "Co to jo?", + "title": "", + "unavailableTitle": "livestreaming njestoj k dispoziciji", + "youtubeTerms": "wužywaŕske wustawki za youtube" + }, + "lobby": { + "backToKnockModeButton": "mimo kodowego słowa, město togo wó pśistup pšosyś", + "chat": "chat", + "dialogTitle": "lobbyjowy modus", + "disableDialogContent": "Lobbyjowy modus jo tuchylu aktiwěrowany. Ta funkcija garantěrujo, až njepóžedane wósoby njamógu Wašej konferency pśistupiś. Tu funkciju deaktiwěrowaś?", + "disableDialogSubmit": "deaktiwěrowaś", + "emailField": "e-mailowu adresu zapódaś", + "enableDialogPasswordField": "kodowe słowo wustajiś (opcionalna móžnosć)", + "enableDialogSubmit": "aktiwěrowanje", + "enableDialogText": "Z lobbyjowym modusom woplěwaśo Wašu konferencu, dokulaž jej mógu pótom pśistupiś jano wobźělniki, kótarymž sćo ako moderator pśistup dowólili.", + "enterPasswordButton": "kodowe słowo za konferencu zapódaś", + "enterPasswordTitle": "kodowe słowo za pśistup", + "errorMissingPassword": "kodowe słowo za konferencu zapódaś", + "invalidPassword": "njepłaśece kodowe słowo", + "joinRejectedMessage": "Wašo póžedanje wó pśistupjenje jo moderator/ka wótbił/a.", + "joinRejectedTitle": "Póžedanje wó pśistupjenje jo wótbite.", + "joinTitle": "konferency pśistupiś", + "joinWithPasswordMessage": "Pśistupjenje z kodowym słowom, cakajśo…", + "joiningMessage": "Wy pśistupijośo ku konferency ned, gaž něcht do Wašogo póžedanja zwólijo.", + "joiningTitle": "pšosba wó pśistupjenje…", + "joiningWithPasswordTitle": "z kodowym słowom pśistupiś…", + "knockButton": "wó pśistupjenje pšosyś", + "knockTitle": "Něcht pšosy wó pśistupjenje ku konferency.", + "knockingParticipantList": "lisćina wósobow, kótarež pšose wó pśistupjenje", + "lobbyChatStartedNotification": "{{moderator}} jo lobby-chat z {{attendee}} zachopił", + "lobbyChatStartedTitle": "{{moderator}} jo lobby-chat z Wam zachopił.", + "nameField": "zapódajśo swójo mě", + "notificationLobbyAccessDenied": "{{targetParticipantName}} jo wordował(a) wót {{originParticipantName}} wótpokazany/-a", + "notificationLobbyAccessGranted": "{{targetParticipantName}} jo wordował(a) wót {{originParticipantName}} na konferencu pušćony/-a", + "notificationLobbyDisabled": "{{originParticipantName}} jo lobby deaktiwěrował/-a", + "notificationLobbyEnabled": "{{originParticipantName}} jo lobby aktiwěrował/-a", + "notificationTitle": "lobby", + "passwordField": "kodowe słowo za konferencu zapódaś", + "passwordJoinButton": "pśistupiś", + "title": "", + "toggleLabel": "lobby aktiwěrowaś / deaktiwěrowaś" + }, + "localRecording": { + "clientState": { + "off": "deaktiwěrowane", + "on": "aktiwne", + "unknown": "njeznate" + }, + "dialogTitle": "šturujuce elementy za lokalne nagrawanje", + "duration": "cas traśa", + "durationNA": "N/A", + "encoding": "koděrowanje", + "label": "LOR", + "labelToolTip": "lokalne nagrawanje jo aktiwěrowane", + "localRecording": "lokalne nagrawanje", + "me": "ja", + "messages": { + "engaged": "Lokalne nagrawanje jo aktiwěrowane.", + "finished": "Nagrawanje pósejźenja {{token}} jo dokóńcowane. Pósćelśo dataju z nagraśim moderatoroju.", + "finishedModerator": "Nagrawanje pósejźenja {{token}} jo dokóńcowane. Nagrawanje lokalnego wótběga jo wótkłaźone a zachowane. Pšosćo druge wobźělniki, aby Wam swóje nagrawanja pśepósłali.", + "notModerator": "Wy njejsćo moderator/ka. Njamóžośo lokalne nagrawanje daniž zachopiś daniž zastajiś." + }, + "moderator": "moderacija", + "no": "ně", + "participant": "wobźělnik/-ica", + "participantStats": "statistika wobźělnikow", + "selectTabTitle": "", + "sessionToken": "token pósejźenja", + "start": "nagrawanje zachopiś", + "stop": "nagrawanje zastajiś", + "yes": "jp" + }, + "lockRoomPassword": "kodowe słowo", + "lockRoomPasswordUppercase": "kodowe słowo", + "lonelyMeetingExperience": { + "button": "druge pśepšosyś", + "youAreAlone": "Wy sćo ta jadna samska wósoba na tej konferency" + }, + "me": "ja", + "notify": { + "OldElectronAPPTitle": "problem z wěstosću!", + "allowAction": "dowóliś", + "allowedUnmute": "Wy móžośo wuśišenje anulěrowaś, kameru zašaltowaś abo Waš monitor drugim sobu źěliś.", + "audioUnmuteBlockedDescription": "Wuśišenje njamóžo se anulěrowaś dla tšachoty pśeśěženja.", + "audioUnmuteBlockedTitle": "Wuśišenje njamóžo se anulěrowaś!", + "chatMessages": "chat", + "connectedOneMember": "{{name}} jo na zmakanju wobźělony", + "connectedThreePlusMembers": "{{name}} a {{count}} dalšnych wobźělnikow su na konferency wobźělone", + "connectedTwoMembers": "{{first}} a {{second}} stej na konferency wobźělonej", + "dataChannelClosed": "", + "dataChannelClosedDescription": "", + "disconnected": "zwězanje jo pśetergnjone", + "displayNotifications": "powěźeńki pokazaś za", + "focus": "wjednistwo konference", + "focusFail": "{{component}} njestoj tuchylu k dispoziciji – wóspjetowaś za {{ms}} sekundow", + "gifsMenu": "GIPHY", + "groupTitle": "powěźenki", + "hostAskedUnmute": "Moderator/ka pšosy Was, aby mikrofon aktiwěrowali", + "invitedOneMember": "{{name}} jo wordował/a pśepšosony/-a", + "invitedThreePlusMembers": "{{name}} a {{count}} drugich su wordowali pśepšosone", + "invitedTwoMembers": "{{first}} a {{second}} stej wordowałej pśepšosonej", + "kickParticipant": "{{kicked}} jo wordował/a wót {{kicker}} wuchyśony/-a", + "leftOneMember": "{{name}} jo konferencu spušćił/-a", + "leftThreePlusMembers": "{{name}} a dalšne su konferencu spušćili", + "leftTwoMembers": "{{first}} a {{second}} stej konferencu spušćiłej", + "linkToSalesforce": "ze Salesforce zwězaś", + "linkToSalesforceDescription": "Wy móžośo wopowěsć wót konference pśez link z objektom pla Saleforce zwězaś.", + "linkToSalesforceError": "Konferenz njejo mógła se ze Saleforce zwězaś.", + "linkToSalesforceKey": "konferencu zalinkowaś", + "linkToSalesforceProgress": "Zwězanje konference ze Salesforce se twari…", + "linkToSalesforceSuccess": "Konferenca jo se ze Salesforce zwězała.", + "localRecordingStarted": "{{name}} jo lokalne nagrawanje zachopił/-a.", + "localRecordingStopped": "{{name}} jo lokalne nagrawanje dokóńcował/-a.", + "me": "ja", + "moderationInEffectCSDescription": "Pśipowěźćo se, gaž cośo powědaś", + "moderationInEffectCSTitle": "Wideo jo wót moderatora/moderatorki blokěrowany", + "moderationInEffectDescription": "Pśipowěźćo se, gaž cośo powědaś", + "moderationInEffectTitle": "Mikrofon jo wót moderatora/moderatorki blokěrowany", + "moderationInEffectVideoDescription": "Pśipowěźćo se, gaž cośo kameru startowaś", + "moderationInEffectVideoTitle": "Kamera jo wót moderatora/moderatorki blokěrowana", + "moderationRequestFromModerator": "Moderator/ka pšosy Was, aby mikrofon aktiwěrowali", + "moderationRequestFromParticipant": "co powědaś", + "moderationStartedTitle": "moderacija jo se zachopiła", + "moderationStoppedTitle": "moderacija jo zastajona", + "moderationToggleDescription": "wót {{participantDisplayName}}", + "moderator": "Moderatorske pšawa su wuźělone!", + "muted": "Pśistup ku konferency z wuśišonym mikrofonom.", + "mutedRemotelyDescription": "Wy móžośo to wuśišenje kuždy cas anulěrowaś, gaž cośo powědaś. Gaž sćo swójo grono dokóńcowali, ga móžośo se zasej wuśišyś, aby konferencu pśed mólecymi zukami wobzwarnowali.", + "mutedRemotelyTitle": "Wy sćo wordowali wót {{participantDisplayName}} wuśišone!", + "mutedTitle": "Wuśišenje jo aktiwne!", + "newDeviceAction": "nałožyś", + "newDeviceAudioTitle": "Nowy audio-rěd jo wuznaty", + "newDeviceCameraTitle": "Nowa kamera jo wuznata", + "noiseSuppressionDesktopAudioDescription": "Pódušenje šumjenja njamóžo se nałožowaś, gaž computerowy sound se drugim sobu źěli. Nejpjerwjej to deaktiwěrujśo a wopytajśo hyšći raz.", + "noiseSuppressionFailedTitle": "Pódušenje šumjenja njejo mógło se startowaś.", + "noiseSuppressionNoTrackDescription": "Aktiwěrujśo nejpjerwjej mikrofon.", + "noiseSuppressionStereoDescription": "Funkcija pódušenja šumjenja njepódpěra tuchylu žeden stereo-zuk.", + "oldElectronClientDescription1": "Zda se, až wužywaśo staru wersiju jitsi-meet-clienta. Wóna ga ma znate słabosći. Togodla aktualizěrujśo ju na našu ", + "oldElectronClientDescription2": "aktuelnu wersiju", + "oldElectronClientDescription3": "!", + "participantWantsToJoin": "co se wobźěliś na konferency", + "participantsWantToJoin": "kśě se wobźěliś na konferency", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) jo wót drugego wobźělnika wótpórane", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) jo wót drugego wobźělnika wustajone", + "raiseHandAction": "se pśipowěźeś", + "raisedHand": "{{name}} co powědaś.", + "raisedHands": "{{participantName}} a dalšne {{raisedHands}} kśě powědaś", + "reactionSounds": "zuki interakcije deaktiwěrowaś", + "reactionSoundsForAll": "zuki interakcije za wšykne deaktiwěrowaś", + "screenShareNoAudio": "Opcija \"audio sobuźěliś\" njejo wordowała wuzwólona pśi wuzwólenju wokna.", + "screenShareNoAudioTitle": "Audio se njeźěli sobu", + "screenSharingAudioOnlyDescription": "", + "screenSharingAudioOnlyTitle": "", + "selfViewTitle": "Wy móžośo swój sam-se-naglěd pśecej we nastajenjach reaktiwěrowaś", + "somebody": "něcht", + "startSilentDescription": "Pśistupśo zmakanju hyšći raz, aby audio aktiwěrowali.", + "startSilentTitle": "Wy sćo pśistupili mimo zuka!", + "suboptimalBrowserWarning": "Wódajśo nam, ale Wy njezmějośo z aplikaciju {{appName}} dobrego spódobanja na konferency. Wy wopytujomy stawnje situaciju pólěpšyś, ale pjerwjej nježli se nam to raźijo, pśirucyjomy Wam, aby wužywali jaden wót połnje pódpěranych browserow.", + "suboptimalExperienceTitle": "warnowanje dla browsera", + "unmute": "wuśišenje wušaltowaś", + "videoMutedRemotelyDescription": "Wy možośo jo kuždy cas zasej zašaltowaś.", + "videoMutedRemotelyTitle": "Waša kamera jo wordowała wót {{participantDisplayName}} wušaltowana!", + "videoUnmuteBlockedDescription": "Kamera a sobuźělenje monitora njamóžo se tuchylu dla pśeśěženja aktiwěrowaś.", + "videoUnmuteBlockedTitle": "Kamera a sobuźělenje monitora njamóžo se aktiwěrowaś!", + "viewLobby": "do lobbyja póglědaś", + "waitingParticipants": "{{waitingParticipants}} wobźělnikow" + }, + "participantsPane": { + "actions": { + "admit": "pśizwóliś", + "admitAll": "wšyknym pśizwólenje daś", + "allow": "wobźělnikam pšawo daś:", + "allowVideo": "kameru aktiwěrowaś", + "askUnmute": "pšosbu wó anulěrowanje wuśišenja stajiś", + "audioModeration": "wuśišenje anulěrowaś pla se", + "blockEveryoneMicCamera": "kameru a mikrofon wšyknych blokěrowaś", + "invite": "wobźělniki pśepšosyś", + "moreModerationActions": "dalšne opcije za moderaciju", + "moreModerationControls": "dalšne opcije za moderaciju", + "moreParticipantOptions": "dalšne opcije za wobźělniki", + "mute": "wuśišyś", + "muteAll": "wšyknych wuśišyś", + "muteEveryoneElse": "wšykne druge wuśišyś", + "reject": "wótpokazaś", + "stopEveryonesVideo": "wšykne kamery wušaltowaś", + "stopVideo": "kameru wušaltowaś", + "unblockEveryoneMicCamera": "blokěrowane kamery a mikrofon wšyknych zasej aktiwěrowaś", + "videoModeration": "kameru zašaltowaś" + }, + "close": "zacyniś", + "headings": { + "lobby": "lobby ({{count}})", + "participantsList": "wobźělniki ({{count}})", + "waitingLobby": "cakajuce we lobbyju ({{count}})" + }, + "search": "wobźělniki pytaś", + "title": "wobźělniki" + }, + "passwordDigitsOnly": "až do {{number}} cyfrow", + "passwordSetRemotely": "wustajone wót drugego wobźělnika", + "pinnedParticipant": "Wobźělnik jo pśipěty", + "polls": { + "answer": { + "skip": "wobejś", + "submit": "zachowaś" + }, + "by": "wót {{ name }}", + "create": { + "addOption": "wótegrono pśipisaś", + "answerPlaceholder": "wótegrono {{index}}", + "cancel": "anulěrowaś", + "create": "wopšašowanje pśigótowaś", + "pollOption": "wótegrono {{index}}", + "pollQuestion": "pšašanje", + "questionPlaceholder": "pšašanje stajiś", + "removeOption": "wótegrono wulašowaś", + "send": "wótpósłaś" + }, + "errors": { + "notUniqueOption": "Opcije musy byś jedynsće" + }, + "notification": { + "description": "Wótcyńśo kórtu wopšašowanjow, aby zgłosowali", + "title": "Za tu konferencu jo nowe wopšašowanje pśigótowane" + }, + "results": { + "changeVote": "hynacej zgłosowaś", + "empty": "Doněnta njedajo žednych wopšašowanjow we tej konferency. Wy móžośo how wopšašowanje iniciěrowaś!", + "hideDetailedResults": "nadrobnosći schowaś", + "showDetailedResults": "nadrobnosći pokazaś", + "vote": "zgłosowaś" + } + }, + "poweredby": "Wobstarane wót", + "prejoin": { + "audioAndVideoError": "zmólenje audio a wideo:", + "audioDeviceProblem": "Dajo problem z Wašym audio-rědom.", + "audioOnlyError": "zmólenje audio:", + "audioTrackError": "audio-sćažka njejo mógła se stwóriś.", + "callMe": "mě pózwóniś", + "callMeAtNumber": "mě pód tym numerom pózwóniś:", + "calling": "zwónjenje", + "configuringDevices": "rědy se konfigurěruju…", + "connectedWithAudioQ": "Sćo Wy z audio zwězane?", + "connection": { + "good": "Wašo zwězanje z internetom zda se dobre byś!", + "nonOptimal": "Wašo zwězanje z internetom njejo optimalne.", + "poor": "Wy maśo wjelgin ryjne zwězanje z internetom." + }, + "connectionDetails": { + "audioClipping": "Waš zuk buźo se nejskerjej pśetergowaś.", + "audioHighQuality": "Waš zuk změjo nejskerjej wjelgin dobru kwalitu .", + "audioLowNoVideo": "Waš zuk buźo nejskerjej wót ryjneje kwality a žeden wideo njebuźo.", + "goodQuality": "Prima! Kwalita Wašogo wideo a zuka buźo super.", + "noMediaConnectivity": "Za ten test njejo se dało žedno medijowe zwězanje natwariś. Wina na tom jo zwětšego firewall abo NAT.", + "noVideo": "Waš wideo změjo nejskerjej ryjnu kwalitu.", + "undetectable": "Gaž změjośo nadalej problemy na konferencach ze swójim browserom, ga dejśo pśizamknjenje a funkciju głosnikow, mikrofona a kamery pśekontrolěrowaś. Wušej togo wobwěsććo se, až Waš browser ma wšykne pšawa, ako su trjebne za pśistup k mikrofononoju a kamerje, a až maśo pśecej nejnowšu wersiju browsera instalěrowanu. Gaž pak problemy budu pśeto dalej wobstojaś, ga wobrośćo se na support aplikacije, kótaruž wužywaśo.", + "veryPoorConnection": "Kwalita Wašeje konference buźo nejskerjej wjelgin ryjna.", + "videoFreezing": "Waš wideo buźo nejskerjej zatykaś, carny wordowaś a rozpušćenje buźo niske.", + "videoHighQuality": "Waš wideo buźo wjelgin derje wuglědaś.", + "videoLowQuality": "Waš wideo změjo nejskerjej ryjne rozpušćenje a frekwencu.", + "videoTearing": "Waš wideo změjo nejskerjej ryjne rozpušćenje a frekwencu abo artefakty." + }, + "copyAndShare": "Link ku konferency kopěrowaś & a drugim sobu źěliś", + "dialInMeeting": "se zwězaś pśez telefon", + "dialInPin": "se pśez telefon z konferencu zwězaś a PIN zapódaś:", + "dialing": "numer wuzwóliś", + "doNotShow": "ten monitor wěcej njepokazaś", + "errorDialOut": "zmólenje pśi telefonowanju", + "errorDialOutDisconnected": "telefonat njejo se raźił, zwězanje jo pśetergnjone", + "errorDialOutFailed": "numer wuzwóliś njejo se raźiło, telefonat njejo se raźił", + "errorDialOutStatus": "zmólenje pśi wótwołanju statusa zwězanja", + "errorMissingName": "Zapódajśo swójo mě, aby ku konferency pśistupili.", + "errorNoPermissions": "Wy musyśo pśistup k mikrofonoju a kamerje dowóliś.", + "errorStatusCode": "Telefonat njejo se raźił. Kod statusa: {{status}}", + "errorValidation": "werifikacija numera njejo se raźiła", + "iWantToDialIn": "ja cu se zwězaś z konferencu", + "initiated": "zwězanje jo se zachopiło twariś", + "joinAudioByPhone": "pśez telefon se wobźěliś", + "joinMeeting": "konferency pśistupiś", + "joinMeetingInLowBandwidthMode": "pśistupiś konferency we modusu žarjenja datow", + "joinWithoutAudio": "mimo zuka pśistupiś", + "keyboardShortcuts": "tastaturowe skrotconki aktiwěrowaś", + "linkCopied": "Link jo do mjazyskłada kopěrowany.", + "lookGood": "Waš mikrofon za wšym zdaśim funkcioněrujo.", + "or": "abo", + "premeeting": "naglěd", + "screenSharingError": "zmólenje pśi sobuźělenju monitora:", + "startWithPhone": "zachopiś z telefonowym audio", + "videoOnlyError": "zmólenje wideo:", + "videoTrackError": "Sćažka wideo njejo mógła se załožyś.", + "viewAllNumbers": "wšykne numery pokazaś" + }, + "presenceStatus": { + "busy": "zabrany", + "calling": "zwónjenje…", + "connected": "Zwězanje jo natwarjone.", + "connecting": "Zwězanje se twari…", + "connecting2": "Zwězanje se twari*…", + "disconnected": "Zwězanje jo pśetergnjone", + "expired": "jo wugasnuł", + "ignored": "ignorěrowany", + "initializingCall": "Telefonat se inicializěrujo…", + "invited": "pśepšosony", + "rejected": "wótpokazany", + "ringing": "se zwóni …" + }, + "profile": { + "avatar": "bildka wužywarja", + "setDisplayNameLabel": "zjawne mě wustajiś", + "setEmailInput": "e-mail zapódaś", + "setEmailLabel": "e-mailowa adresa za grawatar", + "title": "profil" + }, + "raisedHand": "Ja cu powědaś", + "raisedHandsLabel": "licba zwignjonych rukow", + "record": { + "already": { + "linked": "Ta konferenca jo južo z objektom pla Salesforce zwězana." + }, + "type": { + "account": "konto", + "contact": "kontakt", + "lead": "lead", + "opportunity": "góźba", + "owner": "wobsejźaŕ" + } + }, + "recording": { + "authDropboxText": "do dropbokse uploadowaś", + "availableSpace": "wjelikosć składa, ako stoj k dispoziciji: {{spaceLeft}} MB (jadnab {{duration}} minutow nagrawanja)", + "beta": "BETA", + "busy": "Źěłamy na tom, aby resurse za nagrawanje se k dispoziciji stajili. Wopytajśo za pór minutow hyšći raz.", + "busyTitle": "Wšykne instance za nagrawanje se južo trjebaju", + "copyLink": "link kopěrowaś", + "error": "Nagrawanje njejo se raźiło. Wopytajśo hyšći raz.", + "errorFetchingLink": "Link za nagrawanje njejo se ześěgnuł.", + "expandedOff": "Nagrawanje jo se pśetergnuło.", + "expandedOn": "Zmakanje se rowno nagrawa.", + "expandedPending": "Nagrawanje se rowno zachopina…", + "failedToStart": "Nagrawanje njejo se mógło zachopiś.", + "fileSharingdescription": "nagrawanje wobźělnikam konference spśistupniś", + "highlight": "highlight", + "highlightMoment": "to wokazmyrknjenje ako highlight markěrowaś", + "highlightMomentDisabled": "Wy móžośo wokazmyrknjenja ako highlight markěrowaś, ned gaž nagrawanje se zachopijo", + "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.", + "localRecordingNoVideo": "Žeden wideo se njenagrawa", + "localRecordingStartWarning": "Dokóńcujśo nagrawanje pśed spušćenim konference, aby ten nagraty wideo zachowali.", + "localRecordingStartWarningTitle": "nagrawanje dokóńcowaś a zachowaś", + "localRecordingVideoStop": "Gaž kameru wušaltujośo, ga teke lokalne nagrawanje se dokóńcujo. Sćo-li napšawdu wěste, až to cośo?", + "localRecordingVideoWarning": "Aby bildu ze swójeje samskeje kamery nagrawali, musyśo swóju kameru na zachopjeńku nagrawanja zašaltowaś.", + "localRecordingWarning": "Pśespytujśo, lěc sćo aktuelnu kórtu wuzwólili, aby wideo a zuk nagrawali.", + "loggedIn": "ako {{userName}} zalogowany/-a", + "noMicPermission": "", + "noStreams": "Žeden zuk a žeden wideo njejo namakany.", + "off": "Nagrawanje jo zastajone.", + "offBy": "{{name}} jo zastajił nagrawanje.", + "on": "nagrawanje", + "onBy": "{{name}} jo zachopił nagrawaś", + "onlyRecordSelf": "jano wideo a zuk ze swójeje kamery nagrawaś", + "pending": "Nagrawanje zmakanja se pśigótujo…", + "rec": "AUFZ", + "saveLocalRecording": "nagraty material lokalnje zachowaś", + "serviceDescription": "Waš nagraty material se zachowajo wót nagrawajuceje słužby", + "serviceDescriptionCloud": "nagrawanje do mrokawy (cloud)", + "serviceDescriptionCloudInfo": "Nagraty material wulašujo se awtomatiski za 24 štundow pó dokóńcowanju nagrawanja.", + "serviceName": "nagrawajuca słužba", + "sessionAlreadyActive": "Ta konferenca se južo nagrawa.", + "signIn": "zalogowaś", + "signOut": "wulogowaś", + "surfaceError": "Wuzwólśo aktuelnu kórtu (tab).", + "title": "", + "unavailable": "Ojej! {{serviceName}} njestoj aktuelnje k dispoziciji. My źěłamy na pórěźenju problema. Wopytajśo pózdźej hyšći raz.", + "unavailableTitle": "Nagrawanje njestoj k dispoziciji", + "uploadToCloud": "do mrokawy (cloud) kopěrowaś" + }, + "screenshareDisplayName": "spśistupnjony monitor wót {{name}}", + "sectionList": { + "pullToRefresh": "śěgnuś, aby se aktualizěrowało" + }, + "security": { + "about": "Wy móžośo swóju konferencu z kodowym słowom zawěsćiś. Wobźělniki budu musaś jo zapódaś, aby se na njej wobźělili.", + "aboutReadOnly": "Chtož ma moderatorske pšawa, móžo konferencu z kodowym słowom zawěsćiś. Wobźělniki budu musaś jo zapódaś, aby se na zmakanju wobźělili.", + "insecureRoomNameWarning": "Mě śpy njejo wěste dosć. Njepśepšosone wobźělniki mógu ku konferency pśistupiś. Wobmysliśo, lěc njocośo kodowe słowo wustajiś (klikniśo na bublin \"wěstosćowe opcije\")", + "title": "wěstosćowe opcije" + }, + "settings": { + "buttonLabel": "", + "calendar": { + "about": "Aplikacija {{appName}} wužywa se za integraciju kalendarja, aby se zmóžnił wěsty pśistup k Wašomu kalendarju a k pśiducym terminam.", + "disconnect": "zwězanje jo pśetergnjone", + "microsoftSignIn": "se zalogowaś pśez Microsoft", + "signedIn": "Něnto jo pśistup ku kalendarjowym terminam wót {{email}} nastajony. Klikniśo na pśiducy bublin „zwězanje pśetergnuś“, aby pśistup ku kalendarju dokóńcowali.", + "title": "kalendaŕ" + }, + "desktopShareFramerate": "frekwenca za sobuźělenje monitora", + "desktopShareHighFpsWarning": "Wuša frekwenca móžo datowu ratu pówušyś. Wy musyśo sobuźělenje monitora wótnowotki startowaś, aby to nastajenje se nałožyło.", + "desktopShareWarning": "Wy musyśo sobuźělenje monitora wótnowotki startowaś, aby to nastajenje se nałožyło.", + "devices": "rědy", + "followMe": "follow-me za wšykne wobźělniki", + "framesPerSecond": "FPS", + "incomingMessage": "pśiźeca powěsć", + "language": "rěc", + "loggedIn": "ako {{name}} zalogowany/-a", + "maxStageParticipants": "maksimalna licba wobźělnikow, kótarež mógu byś pśipěte ku głownemu naglědoju", + "microphones": "mikrofon", + "moderator": "moderator/ka", + "more": "wěcej", + "name": "mě", + "noDevice": "žeden", + "participantJoined": "nowy wobźělnik jo pśistupił", + "participantKnocking": "wobźělnik jo stupił do lobbyja", + "participantLeft": "wobźělnik jo spušćił konferencu", + "playSounds": "zuki za pokazki aktiwěrowaś", + "reactions": "interakcije", + "sameAsSystem": "kaž system ({{label}})", + "selectAudioOutput": "wuchadajucy audio", + "selectCamera": "kamera", + "selectMic": "mikrofon", + "selfView": "sam-se-naglěd", + "sounds": "zuki za pokazki", + "speakers": "głosniki", + "startAudioMuted": "wšykne wobźělniki pśistupiju wuśišone", + "startReactionsMuted": "zuki za interakciju pla wšyknych deaktiwěrowaś", + "startVideoMuted": "wšykne wobźělniki pśistupiju mimo wideo", + "talkWhileMuted": "gaž se pśi wuśišenju powěda", + "title": "nastajenja" + }, + "settingsView": { + "advanced": "rozšyrjone", + "alertCancel": "pśetergnuś", + "alertOk": "OK", + "alertTitle": "warnowanje", + "alertURLText": "Pódana URL-adresa serwera njejo płaśeca", + "buildInfoSection": "build-informacije", + "conferenceSection": "konferenca", + "disableCallIntegration": "natiwnu integraciju telefonatow deaktiwěrowaś", + "disableCrashReporting": "wopowěsći wót wowalenjow aplikacije deaktiwěrowaś", + "disableCrashReportingWarning": "Cośo-li wopowěsći wót wowalenjow aplikacije napšawdu deaktiwěrowaś? To nastajenje nałožyjo se akle, gaž aplikacija se wótnowotki startujo.", + "disableP2P": "modus end-to-end deaktiwěrowaś", + "displayName": "mě na displayju", + "displayNamePlaceholderText": "na pśikład Heksempelojc Liza", + "email": "e-mail", + "emailPlaceholderText": "", + "goTo": "k", + "header": "nastajenja", + "help": "pomoc", + "links": "linki", + "privacy": "priwatnosć", + "profileSection": "profil", + "serverURL": "adresa URL serwera", + "showAdvanced": "rozšyrjone nastajenja pokazaś", + "startCarModeInLowBandwidthMode": "", + "startWithAudioMuted": "pśistupiś z wuśišenim", + "startWithVideoMuted": "pśistupiś mimo wideo", + "terms": "wustawki", + "version": "wersija" + }, + "share": { + "dialInfoText": "\n\n=====\n\nCośo pśez swój telefon se z konferencu zwězaś?\n\n{{defaultDialInNumber}}Klikniśo na ten link, aby wiźeli wšykne pśipowěźone numery za tu konferencu.\n{{dialInfoPageUrl}}", + "mainText": "Klikniśo na slědujucy link, aby konferency pśistupili:\n{{roomUrl}}" + }, + "speaker": "powědaŕ/-ka", + "speakerStats": { + "angry": "rozgórjony/rozgórjona", + "disgusted": "gramny/gramna", + "displayEmotions": "emocije pokazaś", + "fearful": "bójazny/bójazna", + "happy": "wjasoły/wjasoła", + "hours": "{{count}} št. ", + "minutes": "{{count}} min. ", + "name": "mě", + "neutral": "neutralny/neutralna", + "sad": "tužny/tužna", + "search": "pytaś", + "searchHint": "wobźělniki pytaś", + "seconds": "{{count}} sek.", + "speakerStats": "statistika powědarja", + "speakerTime": "cas powědanja", + "surprised": "pśechwatany/pśechwatana" + }, + "startupoverlay": { + "genericTitle": "Konferenca musy Waš mikrofon a kameru wužywaś.", + "policyText": " ", + "title": "{{app}} pótrjeba kameru a mikrofon." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "wótnowotki pśistupiś", + "text": "na bublin „wótnowotki pśistupiś“ kliknuś, aby se wótnowotki z konferencu zwězali.", + "title": "Konferenca jo se pśetergnuła, dokulaž spicy modus jo se aktiwěrował (standby)." + }, + "termsView": { + "title": "wužywaŕske wustawki" + }, + "toggleTopPanelLabel": "górjejcnu lejstwu zašaltowaś/ wušaltowaś", + "toolbar": { + "Settings": "nastajenja", + "accessibilityLabel": { + "Settings": "nastajenja zašaltowaś/wušaltowaś", + "audioOnly": "opciju „jano audio“ zašaltowaś/wušaltowaś", + "audioRoute": "rěd za audio wuzwóliś", + "boo": "wušwicaś", + "breakoutRoom": "do breakout-śpow stupiś / je spušćiś", + "callQuality": "nastajenja kwality", + "carmode": "awtowy modus", + "cc": "pódtitele zašaltowaś / wušaltowaś", + "chat": "woknyško za chat pokazaś / schowaś", + "clap": "pśiklasnuś", + "collapse": "miniměrowaś", + "document": "sobuźělony dokument zacyniś", + "download": "našu aplikaciju ześěgnuś", + "embedMeeting": "konferencu integrowaś", + "endConference": "", + "expand": "rozpśestrěś", + "feedback": "feedback zawóstajiś", + "fullScreen": "połnu bildu aktiwěrowaś/deaktiwěrowaś", + "giphy": "GIPHY pokazaś / schowaś", + "grantModerator": "moderatorske pšawa wuźěliś", + "hangup": "konferencu spušćiś", + "help": "pomoc", + "invite": "wobźělnika pśepšosyś", + "kick": "wobźělnika wuchyśiś", + "laugh": "se smjaś", + "leaveConference": "konferencu spušćiś", + "like": "palc górjej", + "linkToSalesforce": "ze Salesforce zwězaś", + "lobbyButton": "lobbyjowy modus aktiwěrowaś/deaktiwěrowaś", + "localRecording": "šturujuce elementy za lokalne nagrawanje aktiwěrowaś/deaktiwěrowaś", + "lockRoom": "kodowe słowo za konferencu aktiwěrowaś/deaktiwěrowaś", + "moreActions": "meni „dalšne nastajenja“ aktiwěrowaś/deaktiwěrowaś", + "moreActionsMenu": "meni „dalšne nastajenja“", + "moreOptions": "meni „dalšne opcije“", + "mute": "mikrofon aktiwěrowaś/deaktiwěrowaś", + "muteEveryone": "wšyknych wuśišyś", + "muteEveryoneElse": "wšyknych drugich wuśišyś", + "muteEveryoneElsesVideoStream": "wšykne druge kamery wušaltowaś", + "muteEveryonesVideoStream": "wšykne kamery wušaltowaś", + "noiseSuppression": "pódušenje šumjenja", + "participants": "wobźělniki", + "pip": "modus bilda-we-bilźe aktiwěrowaś/deaktiwěrowaś", + "privateMessage": "priwatnu powěsć pósłaś", + "profile": "profil wobźěłaś", + "raiseHand": "ruku zwignuś", + "reactionsMenu": "meni za interakcije wótcyniś/zacyniś", + "recording": "nagrawanje aktiwěrowaś/deaktiwěrowaś", + "remoteMute": "wobźělniki wuśišyś", + "remoteVideoMute": "kameru togo wobźělnika wušaltowaś", + "security": "opcije za wěstosć", + "selectBackground": "slězynu wuzwóliś", + "selfView": "sam-se-naglěd aktiwěrowaś/deaktiwěrowaś", + "shareRoom": "wobźělnika pśepšosyś", + "shareYourScreen": "sobuźělenje monitora aktiwěrowaś/deaktiwěrowaś", + "shareaudio": "audio sobuźěliś", + "sharedvideo": "sobuźělenje wideo aktiwěrowaś/deaktiwěrowaś", + "shortcuts": "tastowe kombinacije pokazaś/schowaś", + "show": "prězy pokazaś", + "silence": "śišyna", + "speakerStats": "statistiku powědarja pokazaś/schowaś", + "surprised": "pśechwatany/pśechwatana", + "tileView": "kachlickowy naglěd aktiwěrowaś/deaktiwěrowaś", + "toggleCamera": "kameru pśešaltowaś", + "toggleFilmstrip": "miniaturowy naglěd aktiwěrowaś/deaktiwěrowaś", + "videoblur": "rozmytu slězynu aktiwěrowaś/deaktiwěrowaś", + "videomute": "opciju „wideo wuśišyś“ aktiwěrowaś/deaktiwěrowaś", + "whiteboard": "" + }, + "addPeople": "wobźělniki ku konferency pśidaś", + "audioOnlyOff": "modus „jano audio“ deaktiwěrowaś", + "audioOnlyOn": "modus „jano audio“ aktiwěrowaś", + "audioRoute": "rěd za audio wuzwóliś", + "audioSettings": "zukowe nastajenja", + "authenticate": "se awtentificěrowaś", + "boo": "wušwicaś", + "callQuality": "nastajenja kwality", + "chat": "chat wótcyniś / zacyniś", + "clap": "pśiklasnuś", + "closeChat": "chat zacyniś", + "closeReactionsMenu": "meni za interakcije zacyniś", + "disableNoiseSuppression": "pódušenje šumjenja deaktiwěrowaś", + "disableReactionSounds": "Wy móžośo zuki za interakcije we toś tej konferency deaktiwěrowaś", + "documentClose": "sobuźělony dokument zacyniś", + "documentOpen": "sobuźělony dokument wótcyniś", + "download": "naše aplikacije za downloadowanje", + "e2ee": "šyfrěrowanje end-to-end", + "embedMeeting": "konferencu integrěrowaś", + "endConference": "", + "enterFullScreen": "połna bilda", + "enterTileView": "kachlickowy naglěd aktiwěrowaś", + "exitFullScreen": "modus połneje bildy spušćiś", + "exitTileView": "kachlickowy naglěd deaktiwěrowaś", + "feedback": "feedback zawóstajiś", + "giphy": "GIPHY pokazaś/schowaś", + "hangup": "konferencu spušćiś", + "help": "pomoc", + "hideWhiteboard": "", + "invite": "wobźělniki pśepšosyś", + "joinBreakoutRoom": "do breakout-śpy stupiś", + "laugh": "se smjaś", + "leaveBreakoutRoom": "breakout-śpu spušćiś", + "leaveConference": "konferencu spušćiś", + "like": "palc górjej", + "linkToSalesforce": "ze Salesforce zwězaś", + "lobbyButtonDisable": "lobbyjowy modus deaktiwěrowaś", + "lobbyButtonEnable": "lobbyjowy modus aktiwěrowaś", + "login": "se zalogowaś", + "logout": "se wulogowaś", + "lowerYourHand": "ruku dołoj weześ", + "moreActions": "dalšne nastajenja", + "moreOptions": "dalšne opcije", + "mute": "mikrofon aktiwěrowaś / deaktiwěrowaś", + "muteEveryone": "wšykne wuśišyś", + "muteEveryonesVideo": "wšykne kamery wušaltowaś", + "noAudioSignalDesc": "Njejsćo-li ten rěd pśez systemowe nastajenja abo hardware z wótglědanim wuśišyli, ga snaź dejali sebje lubjej nowy rěd wobstaraś.", + "noAudioSignalDescSuggestion": "Njejsćo-li ten rěd pśez systemowe nastajenja abo hardware z wótglědanim wuśišyli, ga wopytajśo lubjej z rědom, ako jo Wam pśirucony.", + "noAudioSignalDialInDesc": "Wy móžośo se teke pśez numer zwězaś:", + "noAudioSignalDialInLinkDesc": "numery za zwězanje", + "noAudioSignalTitle": "Wót Wašogo mikrofona njepśiźo žeden zuk!", + "noiseSuppression": "pódušenje šumjenja", + "noisyAudioInputDesc": "Waš mikrofon zawinujo za wšym zdaśim mólece zuki. Snaź dejali jen wuśišyś abo z nowym mikrofonom zaměniś.", + "noisyAudioInputTitle": "Waš mikrofon producěrujo za Wšym zdaśim zogolece zuki!", + "openChat": "chat wótcyniś", + "openReactionsMenu": "meni za interakcije wótcyniś", + "participants": "wobźělniki", + "pip": "modus bildy we bilźe aktiwěrowaś", + "privateMessage": "priwatnu powěsć pósłaś", + "profile": "profil wobźěłaś", + "raiseHand": "ruku zwignuś", + "raiseYourHand": "ruku zwignuś", + "reactionBoo": "wušwicanje wótpósłaś", + "reactionClap": "pśiklasnjenje wótpósłaś", + "reactionLaugh": "smjaśe wótpósłaś", + "reactionLike": "palc górjej wótpósłaś", + "reactionSilence": "śišynu wótpósłaś", + "reactionSurprised": "pśechwatanje wótpósłaś", + "security": "opcije za wěstosć", + "selectBackground": "slězynu wuzwóliś", + "shareRoom": "wobźělnika pśepšosyś", + "shareaudio": "audio sobuźěliś", + "sharedvideo": "wideo sobuźěliś", + "shortcuts": "tastowe skrotconki pokazaś", + "showWhiteboard": "", + "silence": "śišyna", + "speakerStats": "statistika powědarjow", + "startScreenSharing": "sobuźělenje monitora startowaś", + "startSubtitles": "pódtitele aktiwěrowaś", + "stopAudioSharing": "sobuźělenje audio dokóńcowaś", + "stopScreenSharing": "sobuźělenje monitora dokóńcowaś", + "stopSharedVideo": "wideo dokóńcowaś", + "stopSubtitles": "pódtitele wušaltowaś", + "surprised": "pśechwatany/pśechwatana", + "talkWhileMutedPopup": "Wopytajośo rowno něco groniś? Waš mikrofon jo wusišony.", + "tileViewToggle": "kachelowy naglěd aktiwěrowaś/deaktiwěrowaś", + "toggleCamera": "kameru pśešaltowaś", + "videoSettings": "nastajenja kamery", + "videomute": "kameru startowaś / zastajiś" + }, + "transcribing": { + "ccButtonTooltip": "pódtitele aktiwěrowaś/deaktiwěrowaś", + "error": "Nagrawanje njejo se raźiło. Wopytajśo hyšći raz.", + "expandedLabel": "Transkriběrowanje jo tuchylu aktiwěrowane", + "failedToStart": "Transkriběrowanje njejo mógło se zachopiś", + "labelToolTip": "Konferenca se transkriběrujo", + "off": "Transkriběrowanje jo pśetergnjone", + "pending": "Transkriběrowanje konferency se pśigótujo…", + "sourceLanguageDesc": "", + "sourceLanguageHere": "", + "start": "pokazowanje pódtitelow startowaś", + "stop": "pokazowanje pódtitelow dokóńcowaś", + "subtitles": "", + "subtitlesOff": "", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "pšawa k wužywanju Wašeje kamery a mikrofona wuźěliś." + }, + "videoSIPGW": { + "busy": "Źěłamy na tom, aby resurse se k dispoziciji stajili. Wopytajśo za pór minutow hyšći raz.", + "busyTitle": "Žedne resurse njejsu wěcej liche.", + "errorAlreadyInvited": "{{displayName}} jo wordował južo pśepšosony/-a", + "errorInvite": "Konferenca njejo mógła se zachopiś. Wopytajśo pózdźej hyšći raz.", + "errorInviteFailed": "Źěłamy na tom, aby problem pórěźili. Wopytajśo pózdźej hyšći raz.", + "errorInviteFailedTitle": "{{displayName}} njejo mógł/-a wordowaś pśepšosony/-a", + "errorInviteTitle": "zmólenje pśi załoženju noweje konference", + "pending": "{{displayName}} jo wordował/-a pśepšosony/-a" + }, + "videoStatus": { + "adjustFor": "nastajiś za:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Wy źěłaśo něnto we modusu „jano audio“. Ten modus njepótrjeba teliko šyrokosći banta.", + "bestPerformance": "nejlěpše wugbanje", + "callQuality": "kwalita wideo", + "hd": "HD", + "hdTooltip": "Wideo pokažo se we tom rozpušćenju", + "highDefinition": "wusoke rozpušćenje", + "highestQuality": "nejwuša kwalita", + "labelTooiltipNoVideo": "žeden wideo", + "labelTooltipAudioOnly": "Modus „jano audio“ jo aktiwny", + "ld": "LD", + "ldTooltip": "Wideo pokažo se w niskem rozpušćenju", + "lowDefinition": "niske rozpušćenje", + "performanceSettings": "nastajenja kwality", + "sd": "SD", + "sdTooltip": "Wideo pokažo se we standardowem rozpušćenju", + "standardDefinition": "standardowe rozpušćenje" + }, + "videothumbnail": { + "connectionInfo": "informacije dla zwězanja", + "domute": "wuśišyś", + "domuteOthers": "wšykne druge wuśišyś", + "domuteVideo": "kameru wušaltowaś", + "domuteVideoOfOthers": "wšykne druge kamery wušaltowaś", + "flip": "wobrośiś kaž w glědałku", + "grantModerator": "moderatorske pšawa wuźěliś", + "hideSelfView": "swój sam-se-naglěd schowaś", + "kick": "wuchyśiś", + "mirrorVideo": "", + "moderator": "moderator/ka", + "mute": "wobźělnik jo wuśišony", + "muted": "wuśišony", + "pinToStage": "pśipěś", + "remoteControl": "wótnazdalne šturowanje", + "screenSharing": "wobźělnik sobu źěli monitor", + "show": "pokazaś prězy", + "showSelfView": "swój sam-se-naglěd pokazaś", + "unpinFromStage": "wótpěś", + "verify": "", + "videoMuted": "kamera jo wušaltowana", + "videomute": "wobźělnik jo kameru zastajił" + }, + "virtualBackground": { + "addBackground": "slězynu pśidaś", + "apply": "nałožyś", + "backgroundEffectError": "slězyna njejo mógła se pśidaś", + "blur": "slězyna jo njewótša", + "deleteImage": "bildu wulašowaś", + "desktopShare": "sobuźělenje desktopa", + "desktopShareError": "desktop njejo se dał sobu źěliś", + "image1": "brjog", + "image2": "běła neutralna sćěna", + "image3": "běły prozny rum", + "image4": "carna stojeca lampa", + "image5": "góra", + "image6": "góla", + "image7": "górjejhyśe słyńcka", + "none": "žeden motiw", + "pleaseWait": "Cakajśo…", + "removeBackground": "slězynu wótpóraś", + "slightBlur": "slězyna pitśku njewótša", + "title": "slězyny", + "uploadedImage": "uploadowana bilda {{index}}", + "webAssemblyWarning": "WebAssembly njewordujo pódpěrany", + "webAssemblyWarningDescription": "WebAssembly jo deaktiwěrowany abo ten browser jen njepódpěra" + }, + "volumeSlider": "reglowac głosnosći", + "welcomepage": { + "accessibilityLabel": { + "join": "pótusnuś, aby se wobźělili", + "roomname": "mě śpy zapódaś" + }, + "addMeetingName": "mě konference pśipisaś", + "appDescription": "Zachopmy ga! Startujśo wideokonferencu z Wašym teamom abo hyšći lěpjej: Pśepšosćo wšyknych, ak znajośo. {{app}} jo kompletnje šyfrěrowana aplikacija za wideokonference, kótarejež žrědłowy kod jo 100% zjawny. Wy móžośo ju pśecej a wšuźi dermo wužywaś - mimo registrěrowanja.", + "audioVideoSwitch": { + "audio": "audio", + "video": "wideo" + }, + "calendar": "kalendaŕ", + "connectCalendarButton": "kalendaŕ pśiwězaś", + "connectCalendarText": "Pśiwěžćo swój kalendaŕ, aby wiźeli wšykne Waše konference we {{app}}. Zapišćo teke konference {{provider}} do swójogo kalendarja a startujśo je jano z jadnym kliknjenim.", + "enterRoomTitle": "nowu konferencu startowaś", + "getHelp": "pomoc", + "go": "dalej", + "goSmall": "dalej", + "headerSubtitle": "Wěste a wusokokwalitatiwne konference", + "headerTitle": "Jitsi Meet", + "info": "informacije", + "jitsiOnMobile": "Jitsi pśecej pódla – ześěńśo sebje našu aplikaciju a startujśo konference wšuźi, źož rowno sćo", + "join": "ŽAŁOŽYŚ / PŚISTUPIŚ", + "logo": { + "calendar": "logo kalendarja", + "desktopPreviewThumbnail": "naglěd desktopa ako miniatura", + "googleLogo": "logo Google", + "logoDeepLinking": "logo Jitsi Meet", + "microsoftLogo": "logo Microsoft", + "policyLogo": "logo za směrnice" + }, + "mobileDownLoadLinkAndroid": "Android app k ześěgnjenju", + "mobileDownLoadLinkFDroid": "F-Droid app k ześěgnjenju", + "mobileDownLoadLinkIos": "iOS App k ześěgnjenju", + "moderatedMessage": "Oder rezerěrujśo sebje adresu URL za konference, kótaruž jano Wy buźośo moderěrowaś.", + "privacy": "woplěwanje datow", + "recentList": "pśeglěd", + "recentListDelete": "zapisk wulašowaś", + "recentListEmpty": "Pśeglěd Wašych konferencow jo tuchylu prozny. Gaž buźośo se z Wašym teamom rozgranjaś, ga wšykne Waše konference budu se how zjawiś.", + "recentMeetings": "", + "reducedUIText": "Witajśo do {{app}}!", + "roomNameAllowedChars": "Mě konference njedej žednje wopśimjeś žednogo wót slědujucych znamješkow: ?, &, :, ', \", %, #.", + "roomname": "mě konference zapódaś", + "roomnameHint": "Mě a adresa URL konference, kótarejž cośo pśistupiś. Wy móžośo sebje jadno mě wumysliś, Wy musyśo jo jano drugim wobźělnikam zjawiś, aby k tej samej konferency pśistupili.", + "sendFeedback": "měnjenje pósłaś", + "settings": "", + "startMeeting": "zmakanje zachopiś", + "terms": "wužywaŕske wustawki (AGB)", + "title": "wěste, połnje funkcionalne wideokonference, kompletnje zadermo", + "upcomingMeetings": "" + } +} diff --git a/lang/main-el.json b/lang/main-el.json new file mode 100644 index 0000000..4286ba1 --- /dev/null +++ b/lang/main-el.json @@ -0,0 +1,1421 @@ +{ + "addPeople": { + "add": "Πρόσκληση", + "addContacts": "Προσκάλεσε τις επαφές σου", + "contacts": "επαφές", + "copyInvite": "Αντιγραφή της πρόσκλησης", + "copyLink": "Αντιγραφή του συνδέσμου συνάντησης", + "copyStream": "Αντιγραφή του συνδέσμου ζωντανής μετάδοσης", + "countryNotSupported": "Αυτός ο προορισμός δεν υποστηρίζεται ακόμα.", + "countryReminder": "Καλείτε εκτός ΗΠΑ; Παρακαλώ βεβαιωθείτε ότι ξεκινάτε με τον κωδικό της χώρας!", + "defaultEmail": "Προεπιλεγμένο Email", + "disabled": "Δεν μπορείτε να προσκαλέσετε άτομα.", + "failedToAdd": "Αποτυχία προσθήκης συμμετεχόντων", + "googleEmail": "Google Email", + "inviteMoreHeader": "Είστε ο μόνος στη συνάντηση", + "inviteMoreMailSubject": "Συμμετοχή στη συνάντηση {{appName}}", + "inviteMorePrompt": "Πρόσκληση ατόμων", + "linkCopied": "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο", + "noResults": "Δε βρέθηκαν αποτελέσματα αναζήτησης", + "outlookEmail": "Outlook Email", + "phoneNumbers": "τηλεφωνικοί αριθμοί", + "searching": "Αναζήτηση…", + "shareInvite": "Μοίρασε την πρόσκληση στη συνάντηση", + "shareLink": "Μοίρασε αυτό το σύνδεσμο της συνάντησης για να προσκαλέσεις και άλλα άτομα", + "shareStream": "Διαμοιρασμός του συνδέσμου ζωντανής μετάδοσης", + "sipAddresses": "διευθύνσεις sip", + "telephone": "Τηλέφωνο: {{number}}", + "title": "Προσκαλέστε άτομα σε αυτή τη συνάντηση", + "yahooEmail": "Yahoo Email" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Ηχοσύστημα Αυτοκινήτου", + "headphones": "Ακουστικά", + "none": "Δεν υπάρχουν διαθέσιμες συσκευές ήχου", + "phone": "Τηλέφωνο", + "speaker": "Ηχείο" + }, + "audioOnly": { + "audioOnly": "Χαμηλή ταχύτητα μετάδοσης" + }, + "breakoutRooms": { + "actions": { + "add": "Προσθήκη αποσπασμένου δωματίου", + "autoAssign": "Αυτόματη ανάθεση στα αποσπασμένα δωμάτια", + "close": "Κλείσιμο", + "join": "Συμμετοχή", + "leaveBreakoutRoom": "Αποχώρηση από το αποσπασμένο δωμάτιο", + "more": "Περισσότερα", + "remove": "Αφαίρεση", + "sendToBreakoutRoom": "Αποστολή συμμετέχοντα στο:" + }, + "defaultName": "Αποσπασμένο δωμάτιο #{{index}}", + "mainRoom": "Κυρίως δωμάτιο", + "notifications": { + "joined": "Σύνδεση στο αποσπασμένο δωμάτιο \"{{name}}\"", + "joinedMainRoom": "Σύνδεση στο κυρίως δωμάτιο", + "joinedTitle": "Αποσπασμένα Δωμάτια" + } + }, + "calendarSync": { + "addMeetingURL": "Προσθήκη ενός συνδέσμου συνάντησης", + "confirmAddLink": "Θέλετε να προσθέσετε έναν σύνδεσμο του Jitsi σε αυτή την εκδήλωση;", + "error": { + "appConfiguration": "Η ενσωμάτωση ημερολογίου δεν έχει ρυθμιστεί σωστά.", + "generic": "Παρουσιάστηκε ένα σφάλμα. Παρακαλείστε να ελέγξετε τις ρυθμίσεις ημερολογίου σας ή να δοκιμάσετε να ανανεώσετε το ημερολόγιο.", + "notSignedIn": "Παρουσιάστηκε ένα σφάλμα κατά την ταυτοποίηση για τη προβολή των εκδηλώσεων στο ημερολόγιο. Παρακαλώ να ελέγξετε τις ρυθμίσεις ημερολογίου και να δοκιμάσετε να συνδεθείτε ξανά." + }, + "join": "Συμμετοχή", + "joinTooltip": "Συμμετοχή στη σύσκεψη", + "nextMeeting": "Επόμενη σύσκεψη", + "noEvents": "Δεν υπάρχουν προγραμματισμένες εκδηλώσεις προσεχώς.", + "ongoingMeeting": "Σύσκεψη σε εξέλιξη", + "permissionButton": "Άνοιγμα ρυθμίσεων", + "permissionMessage": "Απαιτείται να δοθεί άδεια για το Ημερολόγιο για να βλέπετε τις συναντήσεις σας στην εφαρμογή.", + "refresh": "Ανανέωση ημερολογίου", + "today": "Σήμερα" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Επιλογή συσκευής ήχου" + }, + "labels": { + "buttonLabel": "Λειτουργία αυτοκινήτου", + "title": "Λειτουργία αυτοκινήτου", + "videoStopped": "Η εικόνα σας σταμάτησε" + } + }, + "chat": { + "enter": "Είσοδος στο δωμάτιο", + "error": "Σφάλμα: το μήνυμα δεν στάλθηκε. Αιτία: {{error}}", + "fieldPlaceHolder": "Αα", + "lobbyChatMessageTo": "Μήνυμα στην υποδοχή στο παραλήπτη {{recipient}}", + "message": "Μήνυμα", + "messageAccessibleTitle": "{{user}} λέει:", + "messageAccessibleTitleMe": "εγώ λέω:", + "messageTo": "Ιδιωτικό μήνυμα σε {{recipient}}", + "messagebox": "Εισάγετε ένα μήνυμα", + "newMessages": "Νέα μηνύματα", + "nickname": { + "popover": "Επιλέξτε ένα ψευδώνυμο", + "title": "Εισάγετε ένα ψευδώνυμο για να συμμετέχετε στη συνομιλία", + "titleWithPolls": "Εισάγετε ένα ψευδώνυμο για να συμμετέχετε στη συνομιλία και στις ψηφοφορίες" + }, + "noMessagesMessage": "Δεν υπάρχουν ακόμα μηνύματα στη συνάντηση. Ξεκινήστε εδώ μια συζήτηση!", + "privateNotice": "Ιδιωτικό μήνυμα σε {{recipient}}", + "sendButton": "Αποστολή", + "smileysPanel": "Πίνακας Emoji", + "tabs": { + "chat": "Συνομιλία", + "polls": "Ψηφοφορίες" + }, + "title": "Συνομιλία", + "titleWithPolls": "Συνομιλία και Ψηφοφορίες", + "you": "εσείς" + }, + "chromeExtensionBanner": { + "buttonText": "Εγκαταστήστε την Επέκταση του Chrome", + "buttonTextEdge": "Εγκαταστήστε την Επέκταση του Edge", + "close": "Κλείσιμο", + "dontShowAgain": "Να μην εμφανιστεί ξανά", + "installExtensionText": "Εγκατάσταση της επέκτασης για ενσωμάτωση του Google Calendar και του Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Σύνδεση στη σύσκεψη σας…" + }, + "connection": { + "ATTACHED": "Συνημμένο", + "AUTHENTICATING": "Ταυτοποίηση", + "AUTHFAIL": "Απέτυχε η ταυτοποίηση", + "CONNECTED": "Συνδεδεμένο", + "CONNECTING": "Γίνεται σύνδεση", + "CONNFAIL": "Η σύνδεση απέτυχε", + "DISCONNECTED": "Αποσυνδέθηκε", + "DISCONNECTING": "Γίνεται αποσύνδεση", + "ERROR": "Σφάλμα", + "FETCH_SESSION_ID": "Απόκτηση session-id…", + "GET_SESSION_ID_ERROR": "Λήψη σφάλματος session-id: {{code}}", + "GOT_SESSION_ID": "Απόκτηση session-id… Έγινε", + "LOW_BANDWIDTH": "Η εικόνα για {{displayName}} απενεργοποιήθηκε για εξοικονόμηση ταχύτητας" + }, + "connectionindicator": { + "address": "Διεύθυνση:", + "audio_ssrc": "Ήχος SSRC:", + "bandwidth": "Εκτιμώμενη ταχύτητα:", + "bitrate": "Ρυθμός μετάδοσης:", + "bridgeCount": "Αριθμός διακομιστή: ", + "codecs": "Κωδικοποιητές (A/V): ", + "connectedTo": "Συνδέθηκε με:", + "e2eeVerified": "Πιστοποιήθηκε E2EE:", + "framerate": "Ρυθμός εικόνας:", + "less": "Λιγότερα", + "localaddress": "Τοπική διεύθυνση:", + "localaddress_plural": "Τοπικές διευθύνσεις:", + "localport": "Τοπική θύρα:", + "localport_plural": "Τοπικές θύρες:", + "maxEnabledResolution": "αποστολή μέγιστης", + "more": "Περισσότερα", + "packetloss": "Απώλειες πακέτων:", + "participant_id": "Id συμμετέχοντα:", + "quality": { + "good": "Καλή", + "inactive": "Ανενεργό", + "lost": "Χαμένα", + "nonoptimal": "Μηβέλτιστη", + "poor": "Κακή" + }, + "remoteaddress": "Απομακρυσμένη διεύθυνση:", + "remoteaddress_plural": "Απομακρυσμένες διευθύνσεις:", + "remoteport": "Απομακρυσμένη θύρα:", + "remoteport_plural": "Απομακρυσμένες θύρες:", + "resolution": "Ανάλυση:", + "savelogs": "Αποθήκευση logs", + "status": "Σύνδεση:", + "transport": "Μεταφορέας:", + "transport_plural": "Μεταφορείς:", + "video_ssrc": "Εικόνα SSRC:" + }, + "dateUtils": { + "earlier": "Νωρίτερα", + "today": "Σήμερα", + "yesterday": "Χθες" + }, + "deepLinking": { + "appNotInstalled": "Χρειάζεστε την εφαρμογή {{app}} για το κινητό σας για συμμετοχή σε αυτή τη σύσκεψη μέσα από το τηλέφωνό σας.", + "description": "Δεν έγινε τίποτα; Έγινε προσπάθεια να ξεκινήσει η σύσκεψη με την εφαρμογή desktop {{app}}. Προσπαθήστε ξανά ή μπείτε από το web το {{app}}.", + "descriptionNew": "Δεν έγινε τίποτα; Έγινε προσπάθεια να ξεκινήσει η σύσκεψη με την εφαρμογή desktop {{app}}.

Προσπαθήστε ξανά ή μπείτε από το web.", + "descriptionWithoutWeb": "Δεν έγινε τίποτα; Έγινε προσπάθεια να ξεκινήσει η σύσκεψη στην εφαρμογή desktop {{app}}.", + "downloadApp": "Κατεβάστε την εφαρμογή", + "downloadMobileApp": "Κατεβάστε από το App Store", + "ifDoNotHaveApp": "Αν δεν έχετε ακόμα την εφαρμογή:", + "ifHaveApp": "Αν έχετε ήδη την εφαρμογή:", + "joinInApp": "Συμμετοχή στη σύσκεψη με την εφαρμογή", + "joinInAppNew": "Συμμετοχή στην εφαρμογή", + "joinInBrowser": "Συμμετοχή στο browser", + "launchMeetingLabel": "Πως θέλετε να συμμετέχετε στη σύσκεψη;", + "launchWebButton": "Εκκίνηση στο web", + "noMobileApp": "Δεν έχετε την εφαρμογή;", + "termsAndConditions": "Με το να συνεχίσετε συμφωνείτε με τους
όρους και συνθήκες.", + "title": "Έναρξη της σύσκεψης σας στο {{app}}…", + "titleNew": "Δημιουργία της σύσκεψης σας…", + "tryAgainButton": "Προσπαθήστε ξανά στο desktop", + "unsupportedBrowser": "Φαίνεται ότι χρησιμοποιείτε ένα browser που δεν υποστηρίζουμε." + }, + "defaultLink": "π.χ. {{url}}", + "defaultNickname": "π.χ. Μαρία Τάδε", + "deviceError": { + "cameraError": "Αποτυχία πρόσβασης στη κάμερα", + "cameraPermission": "Σφάλμα κατά τη λήψη άδειας για χρήση της κάμερας", + "microphoneError": "Αποτυχία πρόσβασης στο μικρόφωνο", + "microphonePermission": "Σφάλμα κατά τη λήψη άδειας για χρήση του μικρόφωνου" + }, + "deviceSelection": { + "hid": { + "callControl": "Έλεγχος κλήσης", + "connectedDevices": "Συνδεδεμένες συσκευές:", + "deleteDevice": "Αφαίρεση συσκευής", + "pairDevice": "Ζεύγος με συσκευή" + }, + "noPermission": "Δεν χορηγήθηκε άδεια", + "previewUnavailable": "Μη διαθέσιμη προεπισκόπηση", + "selectADevice": "Επιλέξτε μια συσκευή", + "testAudio": "Δοκιμή" + }, + "dialIn": { + "screenTitle": "Τηλεφωνική περίληψη" + }, + "dialOut": { + "statusMessage": "είναι τώρα {{status}}" + }, + "dialog": { + "Back": "Πίσω", + "Cancel": "Ακύρωση", + "IamHost": "Είμαι διοργανωτής", + "Ok": "ΟΚ", + "Remove": "Αφαίρεση", + "Share": "Μοιραστείτε", + "Submit": "Υποβολή", + "WaitForHostMsg": "Η σύσκεψη δεν έχει αρχίσει ακόμη. Αν είστε διοργανωτής, τότε παρακαλούμε να ταυτοποιήσετε τον εαυτό σας. Διαφορετικά, παρακαλώ αναμείνετε να συνδεθεί κάποιος διοργανωτής.", + "WaitingForHostTitle": "Αναμονή για διοργανωτή…", + "Yes": "Ναι", + "accessibilityLabel": { + "close": "Κλείσιμο", + "liveStreaming": "Ζωντανή Ροή", + "sharingTabs": "Επιλογές διαμοιρασμού" + }, + "add": "Προσθήκη", + "addMeetingNote": "Προσθήκη σημειώσεων για αυτή τη σύσκεψη", + "addOptionalNote": "Προσθήκη ενός σημειώματος (προαιρετικό):", + "allow": "Επέτρεψε", + "alreadySharedVideoMsg": "Ένας άλλος συμμετέχων μοιράζει ήδη το βίντεο του. Αυτή η σύσκεψη επιτρέπει το διαμοιρασμό μόνο ενός βίντεο τη φορά.", + "alreadySharedVideoTitle": "Μόνο μια κοινόχρηστη εικόνα επιτρέπεται τη φορά", + "applicationWindow": "Παράθυρο εφαρμογής", + "authenticationRequired": "Απαιτείτε ταυτοποίηση", + "cameraConstraintFailedError": "Η κάμερα σας δεν πληρεί ορισμένους από τους απαιτούμενους περιορισμούς.", + "cameraNotFoundError": "Δε βρέθηκε κάμερα.", + "cameraNotSendingData": "Αδυναμία πρόσβασης στην κάμερα σας. Παρακαλώ ελέγξτε αν κάποια άλλη εφαρμογή τη χρησιμοποιεί, επιλέξτε μια άλλη συσκευή από το μενού ρυθμίσεων ή δοκιμάστε να φορτώσετε ξανά την εφαρμογή.", + "cameraNotSendingDataTitle": "Αδυναμία πρόσβασης στην κάμερα", + "cameraPermissionDeniedError": "Δεν έχετε δώσει άδεια για χρήση της κάμερας σας. Μπορείτε ακόμα να συμμετέχετε στη σύσκεψη, αλλά οι άλλοι δεν θα σας βλέπουν. Χρησιμοποιήστε το κουμπί με την κάμερα στη γραμμή διεύθυνσης για το διορθώσετε..", + "cameraTimeoutError": "Αδυναμία εκκίνησης της πηγής εικόνας. Λήξη του χρονικού ορίου!", + "cameraUnknownError": "Αδυναμία χρήσης της κάμερας για κάποιο άγνωστο λόγο.", + "cameraUnsupportedResolutionError": "Η κάμερα σας δεν υποστηρίζει την απαιτούμενη ανάλυση εικόνας.", + "close": "Κλείσιμο", + "conferenceDisconnectMsg": "Παρακαλώ ελέγξτε τη δικτυακή σύνδεση σας. Επανασύνδεση σε {{seconds}} δευτερόλεπτα…", + "conferenceDisconnectTitle": "Έχετε αποσυνδεθεί.", + "conferenceReloadMsg": "Προσπαθούμε να το διορθώσουμε. Επανασύνδεση σε {{seconds}} δευτερόλεπτα…", + "conferenceReloadTitle": "Δυστυχώς, κάτι πήγε στραβά.", + "confirm": "Επιβεβαίωση", + "confirmNo": "Όχι", + "confirmYes": "Ναι", + "connectError": "Ωχ! Κάτι πήγε στραβά και δεν μπορούσαμε να συνδεθούμε με τη σύσκεψη.", + "connectErrorWithMsg": "Ωχ! Κάτι πήγε στραβά και δεν μπορούσαμε να συνδεθούμε με τη σύσκεψη: {{msg}}", + "connecting": "Γίνεται σύνδεση", + "contactSupport": "Επικοινωνία με την υποστήριξη", + "copied": "Αντιγράφηκε", + "copy": "Αντιγραφή", + "dismiss": "Απόρριψη", + "displayNameRequired": "Γεια! Ποιο είναι το όνομα σου;", + "done": "Έγινε", + "e2eeDescription": "Η κρυπτογράφηση Άκρη-προς-Άκρη είναι σε ΠΕΙΡΑΜΑΤΙΚΟ στάδιο αυτή τη στιγμή. Παρακαλώ να έχετε κατά νου ότι η ενεργοποίηση της κρυπτογράφησης άκρη-προς-άκρη θα απενεργοποιήσει από την πλευρά του διακομιστή υπηρεσίες όπως: καταγραφή, live streaming και συμμετοχή μέσω τηλεφώνου. Επίσης, να έχετε κατά νου ότι η σύσκεψη θα λειτουργήσει μόνο για τα άτομα που συνδέονται από browsers με υποστήριξη για insertable streams.", + "e2eeDisabledDueToMaxModeDescription": "Αδυναμία ενεργοποίησης της κρυπτογράφησης Άκρη-προς-Άκρη λόγω του μεγάλου αριθμού συμμετεχόντων στην σύσκεψη.", + "e2eeLabel": "Ενεργοποίηση Κρυπτογράφησης Άκρη-προς-Άκρη", + "e2eeWarning": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Δε φαίνεται να έχουν όλοι οι συμμετέχοντες στη σύσκεψη υποστήριξη για κρυπτογράφηση άκρη-προς-άκρη. Αν την ενεργοποιήσετε, δεν θα μπορέσουν να σας δουν ούτε να σας ακούσουν.", + "e2eeWillDisableDueToMaxModeDescription": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η Κρυπτογράφηση Άκρη-προς-Άκρη θα απενεργοποιηθεί αυτόματα εάν μπουν στην σύσκεψη περισσότεροι συμμετέχοντες.", + "embedMeeting": "Ενσωμάτωση σύσκεψης", + "enterDisplayName": "Εισάγετε το όνομά σας", + "error": "Σφάλμα", + "gracefulShutdown": "Αυτή τη στιγμή η υπηρεσία είναι εκτός λειτουργίας για συντήρηση. Προσπαθήστε ξανά αργότερα.", + "grantModeratorDialog": "Θέλετε σίγουρα να δοθούν δικαιώματα συντονιστή στο/στη {{participantName}};", + "grantModeratorTitle": "Απόδοση δικαιωμάτων συντονιστή", + "hide": "Κρύψιμο", + "hideShareAudioHelper": "Να μην εμφανιστής ξανά αυτός ο διάλογος", + "incorrectPassword": "Λάθος όνομα χρήστη ή κωδικός πρόσβασης", + "incorrectRoomLockPassword": "Λάθος κωδικός πρόσβασης", + "internalError": "Ωχ! Κάτι πήγε στραβά. Παρουσιάστηκε το παρακάτω σφάλμα: {{error}}", + "internalErrorTitle": "Εσωτερικό σφάλμα", + "kickMessage": "Μπορείτε να επικοινωνήσετε με το {{participantDisplayName}} για περισσότερες λεπτομέρειες.", + "kickParticipantButton": "Αποβολή", + "kickParticipantDialog": "Σίγουρα θέλετε να αποβάλλετε αυτόν το συμμετέχοντα;", + "kickParticipantTitle": "Αποβολή αυτού του συμμετέχοντα;", + "kickTitle": "Ωχ! Ο/Η {{participantDisplayName}} σας απέβαλε από τη σύσκεψη", + "linkMeeting": "Σύνδεση σύσκεψης", + "linkMeetingTitle": "Σύνδεση σύσκεψης στο Salesforce", + "liveStreaming": "Ζωντανή Ροή", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Αδύνατο όταν η εγγραφή είναι σε λειτουργία", + "localUserControls": "Τοπικός έλεγχος χρήστη", + "lockMessage": "Αποτυχία κλειδώματος της σύσκεψης.", + "lockRoom": "Προσθήκη $t(lockRoomPassword) στη σύσκεψη", + "lockTitle": "Το κλείδωμα απέτυχε", + "login": "Είσοδος", + "logoutQuestion": "Σίγουρα θέλετε να αποσυνδεθείτε και να αποχωρήσετε από τη σύσκεψη;", + "logoutTitle": "Αποσύνδεση", + "maxUsersLimitReached": "Το όριο για το μέγιστο αριθμό συμμετεχόντων έχει επιτευχθεί. Η σύσκεψη είναι πλήρης. Επικοινωνήσετε με τον ιδιοκτήτη της ή δοκιμάστε ξανά αργότερα!", + "maxUsersLimitReachedTitle": "Ο αριθμός συμμετεχόντων έφτασε στο μέγιστο όριο", + "micConstraintFailedError": "Το μικρόφωνο σας δεν πληρεί ορισμένους από τους απαιτούμενους περιορισμούς.", + "micNotFoundError": "Το μικρόφωνο δεν βρέθηκε.", + "micNotSendingData": "Πηγαίνετε στις ρυθμίσεις του υπολογιστή σας για να βγάλετε τη σίγηση από το μικρόφωνο και να ρυθμίσετε το επίπεδό του", + "micNotSendingDataTitle": "Το μικρόφωνο είναι σε σίγηση στις ρυθμίσεις του συστήματός σας", + "micPermissionDeniedError": "Δεν έχετε δώσει την άδεια για χρήση του μικροφώνου. Μπορείτε ακόμα να συμμετάσχετε στη σύσκεψη, αλλά οι άλλοι δεν θα μπορούν να σας ακούσουν. Χρησιμοποιήστε το κουμπί της κάμερας στη γραμμή διεύθυνσης για να το διορθώσετε.", + "micTimeoutError": "Αδυναμία εκκίνησης της πηγής ήχου. Λήξη του χρονικού ορίου!", + "micUnknownError": "Αδυναμία χρήσης του μικροφώνου για ένα άγνωστο λόγο.", + "moderationAudioLabel": "Επιτρέψτε στους συμμετέχοντες να καταργούν τη σίγηση τους", + "moderationVideoLabel": "Επιτρέψτε στους συμμετέχοντες να ξεκινούν το βίντεο τους", + "muteEveryoneDialog": "Οι συμμετέχοντες μπορούν να καταργούν την σίγηση τους.", + "muteEveryoneDialogModerationOn": "Οι συμμετέχοντες μπορούν να στέλνουν αιτήματα για ομιλία.", + "muteEveryoneElseDialog": "Όταν οι συμμετέχοντες είναι σε σίγηση, δε θα μπορείτε να την καταργήσετε, αλλά ανά πάσα στιγμή θα μπορούν να το κάνουν μόνοι τους.", + "muteEveryoneElseTitle": "Σίγηση όλων εκτός από {{whom}};", + "muteEveryoneElsesVideoDialog": "Όταν η κάμερα των συμμετεχόντων απενεργοποιηθεί, δε θα μπορείτε να την ενεργοποιείτε, αλλά αυτοί θα μπορούν ανά πάσα στιγμή.", + "muteEveryoneElsesVideoTitle": "Διακοπή όλων των βίντεο εκτός από {{whom}};", + "muteEveryoneSelf": "τον εαυτό σας", + "muteEveryoneStartMuted": "Όλοι ξεκινούν σε σίγηση από τώρα και στο εξής", + "muteEveryoneTitle": "Σίγηση όλων;", + "muteEveryonesVideoDialog": "Οι συμμετέχοντες μπορούν να ενεργοποιούν το βίντεο τους.", + "muteEveryonesVideoDialogModerationOn": "Οι συμμετέχοντες μπορούν να στέλνουν αιτήματα ενεργοποίησης του βίντεο τους.", + "muteEveryonesVideoDialogOk": "Απενεργοποίηση", + "muteEveryonesVideoTitle": "Διακοπή του βίντεο όλων;", + "muteParticipantBody": "Δεν θα είστε σε θέση να καταργήσετε τη σίγηση, αλλά ανά πάσα στιγμή θα μπορούν να το κάνουν μόνοι τους.", + "muteParticipantButton": "Σίγηση", + "muteParticipantsVideoBody": "Δε θα μπορείτε εσείς να ενεργοποιήσετε ξανά τη κάμερα, αλλά αυτοί θα μπορούν οποιαδήποτε στιγμή.", + "muteParticipantsVideoBodyModerationOn": "Δε θα μπορείτε εσείς να ενεργοποιήσετε ξανά τη κάμερα, αλλά ούτε και αυτοί.", + "muteParticipantsVideoButton": "Διακοπή του βίντεο", + "muteParticipantsVideoDialog": "Θέλετε σίγουρα να κλείσετε τη κάμερα του συμμετέχοντα; Δε θα μπορείτε να την ενεργοποιήσετε ξανά, μόνο αυτοί θα μπορούν να την ανοίξουν.", + "muteParticipantsVideoDialogModerationOn": "Θέλετε σίγουρα να κλείσετε τη κάμερα του συμμετέχοντα; Δε θα μπορείτε να την ενεργοποιήσετε ξανά, ούτε αυτοί θα μπορούν.", + "muteParticipantsVideoTitle": "Απενεργοποίηση της κάμερας αυτού του συμμετέχοντα;", + "noDropboxToken": "Μη έγκυρο διακριτικό Dropbox", + "password": "Κωδικός πρόσβασης", + "passwordLabel": "Η συνάντηση έχει κλειδωθεί από κάποιον συμμετέχοντα. Παρακαλώ εισάγετε το $t(lockRoomPassword) για να συμμετέχετε.", + "passwordNotSupported": "Ο ορισμός ενός $t(lockRoomPassword) στη συνάντηση δεν υποστηρίζεται.", + "passwordNotSupportedTitle": "Δεν υποστηρίζεται $t(lockRoomPasswordUppercase)", + "passwordRequired": "Απαιτείται $t(lockRoomPasswordUppercase)", + "permissionCameraRequiredError": "Απαιτείται άδεια χρήσης της κάμερας για συμμετοχή σε συσκέψεις με βίντεο. Παρακαλώ αναθέστε τη στις Ρυθμίσεις", + "permissionErrorTitle": "Απαιτείται άδεια χρήσης", + "permissionMicRequiredError": "Απαιτείται άδεια για χρήση του μικροφώνου για συμμετοχή σε συσκέψεις με ήχο. Παρακαλώ αναθέστε τη στις Ρυθμίσεις", + "popupError": "Ο browser σας μπλοκάρει τα αναδυόμενα παράθυρα από αυτή τη τοποθεσία. Παρακαλούμε ενεργοποιήστε τα αναδυόμενα στις ρυθμίσεις ασφαλείας του browser σας και προσπαθήστε ξανά.", + "popupErrorTitle": "Φραγή αναδυόμενου παραθύρου", + "readMore": "περισσότερα", + "recentlyUsedObjects": "Τα πρόσφατα αντικείμενα σας", + "recording": "Γίνεται Καταγραφή", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Δεν είναι δυνατή όταν η ζωντανή ροή είναι σε εξέλιξη", + "rejoinNow": "Επανασύνδεση τώρα", + "remoteControlAllowedMessage": "O/H {{user}} έκανε αποδεκτό το αίτημα απομακρυσμένου ελέγχου!", + "remoteControlDeniedMessage": "O/H {{user}} απέρριψε το αίτημα απομακρυσμένου ελέγχου!", + "remoteControlErrorMessage": "Σφάλμα κατά την αίτηση για δικαιώματα απομακρυσμένου ελέγχου από το {{user}}!", + "remoteControlRequestMessage": "Θέλετε να επιτρέψετε στο χρήστη {{user}} να ελέγχει από μακριά τον υπολογιστή σας;", + "remoteControlShareScreenWarning": "Σημειώνεται ότι εάν πατήσετε το πλήκτρο \"Αποδοχή\" θα μοιραστείτε την οθόνη σας!", + "remoteControlStopMessage": "Η συνεδρία απομακρυσμένου ελέγχου έληξε!", + "remoteControlTitle": "Απομακρυσμένος έλεγχος υπολογιστή", + "remoteUserControls": "Χειριστήρια απομακρυσμένου ελέγχου του {{username}}", + "removePassword": "Αφαίρεση $t(lockRoomPassword)", + "removeSharedVideoMsg": "Σίγουρα θέλετε να καταργήσετε το κοινόχρηστο βίντεο σας;", + "removeSharedVideoTitle": "Αφαίρεση κοινόχρηστου βίντεο", + "reservationError": "Σφάλμα συστήματος κρατήσεων", + "reservationErrorMsg": "Κωδικός σφάλματος: {{code}}, μήνυμα: {{msg}}", + "retry": "Επανάληψη", + "screenSharingAudio": "Διαμοιρασμός ήχου", + "screenSharingFailed": "Ωχ! Κάτι πήγε στραβά, δεν ήταν δυνατός ο διαμοιρασμός της οθόνης!", + "screenSharingFailedTitle": "Αποτυχία διαμοιρασμού της οθόνης!", + "screenSharingPermissionDeniedError": "Ωχ! Κάτι πήγε στραβά με τα δικαιώματα διαμοιρασμού της οθόνης. Παρακαλώ επαναφορτώστε και προσπαθήστε ξανά.", + "searchInSalesforce": "Αναζήτηση στο Salesforce", + "searchResults": "Αποτελέσματα αναζήτησης ({{count}})", + "searchResultsDetailsError": "Κάτι πήγε στραβά κατά την ανάκτηση των δεδομένων ιδιοκτήτη.", + "searchResultsError": "Κάτι πήγε στραβά κατά την ανάκτηση δεδομένων.", + "searchResultsNotFound": "Κανένα αποτέλεσμα αναζήτησης.", + "searchResultsTryAgain": "Δοκιμάστε εναλλακτικές λέξεις κλειδιά.", + "sendPrivateMessage": "Πρόσφατα λάβατε ένα προσωπικό μήνυμα. Σκοπεύετε να απαντήσετε σε αυτό ιδιωτικά ή θέλετε να στείλετε το μήνυμα στην ομάδα;", + "sendPrivateMessageCancel": "Στείλτε το στην ομάδα", + "sendPrivateMessageOk": "Στείλτε το ιδιωτικά", + "sendPrivateMessageTitle": "Θέλετε να το στείλετε ιδιωτικά;", + "serviceUnavailable": "Η υπηρεσία δεν είναι διαθέσιμη", + "sessTerminated": "Η κλήση τερματίστηκε", + "sessionRestarted": "Η κλήση ξεκίνησε ξανά λόγω ενός προβλήματος στη σύνδεση.", + "shareAudio": "Συνέχεια", + "shareAudioTitle": "Πως να μοιράσω τον ήχο", + "shareAudioWarningD1": "πρέπει να διακόψετε το διαμοιρασμού της οθόνης πριν να μοιράσετε τον ήχο σας.", + "shareAudioWarningD2": "πρέπει να ξεκινήσετε ξανά το διαμοιρασμό οθόνης και να επιλέξετε το \"διαμοιρασμό ήχου\".", + "shareAudioWarningH1": "Αν θέλετε μόνο να μοιράσετε τον ήχο:", + "shareAudioWarningTitle": "Πρέπει να διακόψετε το διαμοιρασμό της οθόνης πριν να μοιράσετε τον ήχο σας", + "shareMediaWarningGenericH2": "Αν θέλετε να μοιράσετε την οθόνη και τον ήχο σας", + "shareScreenWarningD1": "πρέπει να διακόψετε το διαμοιρασμό ήχου πριν να μοιράσετε τον οθόνη σας.", + "shareScreenWarningD2": "πρέπει να διακόψετε το διαμοιρασμό ήχου, να ξεκινήσετε το διαμοιρασμό οθόνης και να επιλέξετε \"διαμοιρασμό ήχου\".", + "shareScreenWarningH1": "Αν θέλετε μόνο να μοιράσετε την οθόνη σας:", + "shareScreenWarningTitle": "Πρέπει να διακόψετε το διαμοιρασμό ήχου πριν να μοιράσετε την οθόνη σας", + "shareVideoLinkError": "Παρακαλώ δώστε έναν σωστό σύνδεσμο βίντεο.", + "shareVideoTitle": "Μοιραστείτε ένα βίντεο", + "shareYourScreen": "Μοιραστείτε την οθόνη σας", + "shareYourScreenDisabled": "Δεν είναι ενεργός ο διαμοιρασμός οθόνης.", + "sharedVideoDialogError": "Σφάλμα: Μη έγκυρο URL", + "sharedVideoLinkPlaceholder": "Σύνδεσμός στο YouTube ή απευθείας σε βίντεο", + "show": "Εμφάνιση", + "start": "Έναρξη ", + "startLiveStreaming": "Έναρξη ζωντανής ροής", + "startRecording": "Έναρξη καταγραφής", + "startRemoteControlErrorMessage": "Σφάλμα κατά την προσπάθεια εκκίνησης της συνεδρίας απομακρυσμένου ελέγχου!", + "stopLiveStreaming": "Τερματισμός ζωντανής ροής", + "stopRecording": "Λήξη καταγραφής", + "stopRecordingWarning": "Σίγουρα θέλετε να διακόψετε την καταγραφή;", + "stopStreamingWarning": "Σίγουρα θέλετε να διακόψετε τη ζωντανή ροή;", + "streamKey": "Κλειδί ζωντανής ροής", + "thankYou": "Σας ευχαριστούμε που χρησιμοποιήσατε το {{appName}}!", + "token": "διακριτικό", + "tokenAuthFailed": "Συγνώμη, δεν επιτρέπεται να συμμετέχετε σε αυτήν την κλήση.", + "tokenAuthFailedTitle": "Αποτυχία ταυτοποίησης", + "transcribing": "Γίνεται μεταγραφή", + "unlockRoom": "Αφαιρέστε το $t(lockRoomPassword) της σύσκεψης", + "user": "Χρήστης", + "userIdentifier": "Αναγνωριστικό χρήστη", + "userPassword": "Κωδικός πρόσβασης χρήστη", + "verifyParticipantConfirm": "Ταιριάζουν", + "verifyParticipantDismiss": "Δεν ταιριάζουν", + "verifyParticipantQuestion": "ΠΕΙΡΑΜΑΤΙΚΟ: Ρωτήστε τον συμμετέχοντα {{participantName}} αν βλέπουν το ίδιο περιεχόμενο, με την ίδια σειρά.", + "verifyParticipantTitle": "Πιστοποίηση χρήστη", + "videoLink": "Σύνδεσμο βίντεο", + "viewUpgradeOptions": "Εμφάνιση επιλογών αναβάθμισης", + "yourEntireScreen": "Ολόκληρη την οθόνη σας" + }, + "documentSharing": { + "title": "Κοινόχρηστο Έγγραφο" + }, + "e2ee": { + "labelToolTip": "Η Επικοινωνία με Ήχο και Εικόνα σε αυτή τη κλήση είναι από άκρη σε άκρη κρυπτογραφημένη" + }, + "embedMeeting": { + "title": "Ενσωμάτωση αυτής της σύσκεψης" + }, + "feedback": { + "average": "Μέτρια", + "bad": "Κακή", + "detailsLabel": "Πείτε μας περισσότερα γι ' αυτή.", + "good": "Καλή", + "rateExperience": "Αξιολογήστε πως σας φάνηκε η σύσκεψη σας", + "star": "Αστέρι", + "veryBad": "Πολύ Κακή", + "veryGood": "Πολύ Καλή" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Εικονίδια Βίντεο" + } + }, + "giphy": { + "noResults": "Δε βρέθηκαν αποτελέσματα :(", + "search": "Αναζήτηση GIPHY" + }, + "incomingCall": { + "answer": "Απάντηση", + "audioCallTitle": "Εισερχόμενη κλήση", + "decline": "Απόρριψη", + "productLabel": "από το Jitsi Meet", + "videoCallTitle": "Εισερχόμενη βιντεοκλήση" + }, + "info": { + "accessibilityLabel": "Πληροφορίες", + "addPassword": "Προσθήκη $t(lockRoomPassword)", + "cancelPassword": "Ακύρωση $t(lockRoomPassword)", + "conferenceURL": "Σύνδεσμος:", + "copyNumber": "Αντιγραφή αριθμού", + "country": "Χώρα", + "dialANumber": "Για να συνδεθείτε στη σύσκεψη σας, καλέστε έναν από αυτούς τους αριθμούς και στη συνέχεια πληκτρολογήστε το pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Συγγνώμη, προς το παρόν δεν υποστηρίζονται εισερχόμενες κλήσεις.", + "dialInNumber": "Αριθμός Κλήσης:", + "dialInSummaryError": "Σφάλμα ανάκτησης πληροφοριών αριθμού κλήσης. Παρακαλώ προσπαθήστε ξανά αργότερα.", + "dialInTollFree": "Χωρίς Χρέωση", + "genericError": "Ωχ, κάτι πήγε στραβά.", + "inviteLiveStream": "Για να δείτε τη ζωντανά αυτή τη σύσκεψη, πατήστε αυτό το σύνδεσμο: {{url}}", + "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", + "inviteURLSecondPart": "\nΣυμμετοχή στη σύσκεψη:\n{{url}}\n", + "label": "Πληροφορίες κλήσης", + "liveStreamURL": "Ζωντανή ροή:", + "moreNumbers": "Περισσότεροι αριθμοί", + "noNumbers": "Κανένας αριθμός κλήσης.", + "noPassword": "Κανένα", + "noRoom": "Δεν ορίστηκε δωμάτιο για να κληθεί.", + "numbers": "Αριθμοί Κλήσεις", + "password": "$t(lockRoomPasswordUppercase): ", + "sip": "Διεύθυνση SIP", + "title": "Διαμοιρασμός", + "tooltip": "Μοιραστείτε το σύνδεσμο και τις πληροφορίες κλήσης για αυτή τη σύσκεψη" + }, + "inlineDialogFailure": { + "msg": "Σκοντάψαμε λίγο.", + "retry": "Προσπαθήστε ξανά", + "support": "Υποστήριξη", + "supportMsg": "Εάν αυτό συνεχίζει να συμβαίνει, επικοινωνήστε με" + }, + "inviteDialog": { + "alertText": "Αποτυχία πρόσκλησης μερικών συμμετεχόντων.", + "header": "Πρόσκληση", + "searchCallOnlyPlaceholder": "Εισάγετε τον τηλεφωνικό αριθμό", + "searchPeopleOnlyPlaceholder": "Αναζήτηση συμμετεχόντων", + "searchPlaceholder": "Συμμετέχων ή αριθμός τηλεφώνου", + "send": "Αποστολή" + }, + "jitsiHome": "Το λογότυπο {{logo}} συνδέει στην Ιστοσελίδα", + "keyboardShortcuts": { + "focusLocal": "Εστίαση στο βίντεο σας", + "focusRemote": "Εστίαση στο βίντεο ενός άλλου", + "fullScreen": "Εναλλαγή πλήρους οθόνης", + "giphyMenu": "Εναλλαγή μενού GIPHY", + "keyboardShortcuts": "Συντομεύσεις πληκτρολογίου", + "localRecording": "Εμφάνιση ή απόκρυψη χειριστηρίων καταγραφής", + "mute": "Εναλλαγή της σίγησης του μικροφώνου σας", + "pushToTalk": "Πίεση για ομιλία", + "raiseHand": "Σηκώστε ή χαμηλώστε το χέρι σας", + "showSpeakerStats": "Στατιστικά ομιλητών", + "toggleChat": "Ανοίξτε ή κλείστε τη συνομιλία", + "toggleFilmstrip": "Εμφάνιση ή όχι των μικρογραφιών βίντεο", + "toggleParticipantsPane": "Εμφάνιση ή όχι των πάνελ των συμμετεχόντων", + "toggleScreensharing": "Εναλλαγή μεταξύ κάμερας και κοινής χρήσης οθόνης", + "toggleShortcuts": "Εμφάνιση ή όχι των συντομεύσεων πληκτρολογίου", + "videoMute": "Άνοιγμα ή κλείσιμο κάμερας" + }, + "largeVideo": { + "screenIsShared": "Μοιράζεστε την οθόνη σας", + "showMeWhatImSharing": "Δείξε μου τι μοιράζω" + }, + "liveStreaming": { + "busy": "Εργαζόμαστε να απελευθερώσουμε πόρους για streaming. Παρακαλώ δοκιμάστε ξανά σε λίγα λεπτά.", + "busyTitle": "Όλοι οι streamers είναι απασχολημένοι", + "changeSignIn": "Εναλλαγή λογαριασμών.", + "choose": "Επιλέξτε μία ζωντανή ροή", + "chooseCTA": "Επιλέξτε μία επιλογή ροής. Αυτή την στιγμή είστε συνδεδεμένοι ως {{email}}.", + "enterStreamKey": "Εισάγετε εδώ το κλειδί ζωντανής ροής του YouTube.", + "error": "Η ζωντανή ροή απέτυχε. Παρακαλώ δοκιμάστε ξανά.", + "errorAPI": "Σφάλμα κατά την πρόσβαση στις μεταδόσεις του YouTube. Παρακαλώ δοκιμάστε να συνδεθείτε ξανά.", + "errorLiveStreamNotEnabled": "Η ζωντανή ροή δεν είναι ενεργοποιημένη για το {{email}}. Ενεργοποιήστε τη ζωντανή ροή ή συνδεθείτε σε ένα λογαριασμό με ενεργοποιημένη τη ζωντανή ροή.", + "expandedOff": "Η ζωντανή ροή σταμάτησε", + "expandedOn": "Η σύσκεψη μεταδίδεται τώρα στο YouTube.", + "expandedPending": "Η ζωντανή ροή πρόκειται να ξεκινήσει…", + "failedToStart": "Η ζωντανή ροή απέτυχε να ξεκινήσει", + "getStreamKeyManually": "Αδυναμία λήψης κάποιας ζωντανής ροής. Προσπαθήστε να πάρετε το κλειδί ζωντανής ροής από το YouTube.", + "googlePrivacyPolicy": "Πολιτική Απορρήτου της Google", + "inProgress": "Εγγραφή ή ζωντανή ροή σε εξέλιξη", + "invalidStreamKey": "Το κλειδί ζωντανής ροής μπορεί να είναι εσφαλμένο.", + "limitNotificationDescriptionNative": "Η ροή σας θα περιοριστεί σε {{limit}} λεπτά. Για ροή χωρίς όρια δοκιμάστε το {{app}}.", + "limitNotificationDescriptionWeb": "Λόγω υψηλής ζήτησης η ροή θα περιοριστεί σε {{limit}} λεπτά. Για απεριόριστες ροές δοκιμάστε το {{app}}.", + "off": "Η Ζωντανή Ροή σταμάτησε", + "offBy": "{{name}} σταμάτησε τη ζωντανή ροή", + "on": "Η Ζωντανή Ροή ξεκίνησε", + "onBy": "{{name}} ξεκίνησε τη ζωντανή ροή", + "pending": "Η Ζωντανή Ροή Ξεκινάει…", + "serviceName": "Υπηρεσία Ζωντανής Ροής", + "sessionAlreadyActive": "Η συνεδρία ήδη γράφεται ή είναι σε ζωντανή ροή.", + "signIn": "Συνδεθείτε μέσω του Google", + "signInCTA": "Συνδεθείτε ή εισάγετε το κλειδί ζωντανής ροής από το YouTube.", + "signOut": "Έξοδος", + "signedInAs": "Είστε συνδεδεμένοι ως:", + "start": "Ξεκινήστε μια ζωντανή ροή", + "streamIdHelp": "Τι είναι αυτό;", + "title": "Ζωντανή Ροή", + "unavailableTitle": "Ζωντανή Ροή δεν είναι διαθέσιμη", + "youtubeTerms": "Όροι υπηρεσιών YouTube" + }, + "lobby": { + "backToKnockModeButton": "Αίτημα εισόδου", + "chat": "Συνομιλία", + "dialogTitle": "Λειτουργία υποδοχής", + "disableDialogContent": "Η λειτουργία υποδοχής είναι ενεργοποιημένη. Αυτή η λειτουργία εξασφαλίζει ότι ανεπιθύμητοι συμμετέχοντες δεν θα μπορούν να προστεθούν στη σύσκεψη. Θέλετε να την απενεργοποιήσετε;", + "disableDialogSubmit": "Απενεργοποίηση", + "emailField": "Εισάγετε τη διεύθυνση email σας", + "enableDialogPasswordField": "Ορίστε κωδικό πρόσβασης (προαιρετικά)", + "enableDialogSubmit": "Ενεργοποίηση", + "enableDialogText": "Η λειτουργία υποδοχής σας επιτρέπει να προστατεύσετε τη σύσκεψη σας, επιτρέποντας την είσοδο μόνο μετά από έγκριση από έναν συντονιστή.", + "enterPasswordButton": "Εισαγωγή κωδικού πρόσβασης σύσκεψης", + "enterPasswordTitle": "Εισάγετε κωδικό πρόσβασης για να μπείτε στην σύσκεψη", + "errorMissingPassword": "Εισάγετε το κωδικό πρόσβασης της σύσκεψης", + "invalidPassword": "Εσφαλμένος κωδικός", + "joinRejectedMessage": "Το αίτημα εισόδου σας απορρίφθηκε από έναν συντονιστή.", + "joinRejectedTitle": "Το αίτημα σύνδεσης απορρίφθηκε.", + "joinTitle": "Συμμετοχή στη Σύσκεψη", + "joinWithPasswordMessage": "Γίνεται είσοδος με κωδικό, παρακαλώ περιμένετε…", + "joiningMessage": "Θα προστεθείτε στη σύσκεψη μόλις κάποιος αποδεχτεί το αίτημά σας", + "joiningTitle": "Αίτηση εισόδου στη σύσκεψη…", + "joiningWithPasswordTitle": "Είσοδος με κωδικό πρόσβασης…", + "knockButton": "Αίτηση Συμμετοχής", + "knockTitle": "Κάποιος θέλει να συμμετέχει στη σύσκεψη", + "knockingParticipantList": "Ειδοποίηση λίστας συμμετεχόντων", + "lobbyChatStartedNotification": "{{moderator}} ξεκίνησε μια συνομιλία στην υποδοχή με το {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} ξεκίνησε μαζί σας μια συνομιλία στην υποδοχή.", + "nameField": "Εισάγετε το όνομά σας", + "notificationLobbyAccessDenied": "Απόρριψη συμμετοχής του {{targetParticipantName}} από το {{originParticipantName}}", + "notificationLobbyAccessGranted": "Αποδοχή συμμετοχής του {{targetParticipantName}} από το {{originParticipantName}}", + "notificationLobbyDisabled": "Η υποδοχή απενεργοποιήθηκε από το {{originParticipantName}}", + "notificationLobbyEnabled": "Η υποδοχή ενεργοποιήθηκε από το {{originParticipantName}}", + "notificationTitle": "Υποδοχή", + "passwordField": "Εισάγετε τον κωδικό σύσκεψης", + "passwordJoinButton": "Συμμετοχή", + "title": "Υποδοχή", + "toggleLabel": "Ενεργοποίηση υποδοχής" + }, + "localRecording": { + "clientState": { + "off": "Κλειστό", + "on": "Ανοικτό", + "unknown": "Άγνωστο" + }, + "dialogTitle": "Έλεγχος Τοπικής Καταγραφής", + "duration": "Διάρκεια", + "durationNA": "Δ/Υ", + "encoding": "Κωδικοποίηση", + "label": "LOR", + "labelToolTip": "Η τοπική καταγραφή είναι δεσμευμένη", + "localRecording": "Τοπική Καταγραφή", + "me": "Εγώ", + "messages": { + "engaged": "Η τοπική καταγραφή είναι δεσμευμένη.", + "finished": "Η καταγραφή της συνεδρίας {{token}} τελείωσε. Παρακαλούμε στείλτε το αρχείο καταγραφής στο συντονιστή.", + "finishedModerator": "Η καταγραφή της συνεδρίας {{token}} τελείωσε. Η καταγραφή της τοπικής ροής αποθηκεύτηκε. Παρακαλώ ζητήστε από τους άλλους συμμετέχοντες να υποβάλουν τις καταγραφές τους.", + "notModerator": "Δεν είστε ο συντονιστής. Δεν μπορείτε να ξεκινήσετε ή να σταματήσετε την τοπική καταγραφή." + }, + "moderator": "Συντονιστής", + "no": "Όχι", + "participant": "Συμμετέχων", + "participantStats": "Στατιστικά Συμμετεχόντων", + "selectTabTitle": "🎥 Επιλέξτε αυτή τη σελίδα για καταγραφή", + "sessionToken": "Διακριτικό Συνεδρίας", + "start": "Έναρξη Καταγραφής", + "stop": "Διακοπή Καταγραφής", + "yes": "Ναι" + }, + "lockRoomPassword": "κωδικός πρόσβασης", + "lockRoomPasswordUppercase": "Κωδικός Πρόσβασης", + "lonelyMeetingExperience": { + "button": "Προσκαλέστε κι άλλους", + "youAreAlone": "Είστε ο μόνος στη σύσκεψη" + }, + "me": "Εγώ", + "notify": { + "OldElectronAPPTitle": "Πρόβλημα ασφαλείας!", + "allowAction": "Επέτρεψε", + "allowedUnmute": "Μπορείτε να καταργήσετε την σίγηση στο μικρόφωνο, να ξεκινήστε τη κάμερα σας ή να μοιραστείτε την οθόνη σας.", + "audioUnmuteBlockedDescription": "Οι λειτουργίες κατάργησης της σίγησης μικροφώνου έχουν προσωρινά αποκλειστεί λόγων ορίων του συστήματος.", + "audioUnmuteBlockedTitle": "Αποκλεισμός κατάργησης σίγησης!", + "chatMessages": "Μηνύματα συνομιλίας", + "connectedOneMember": "{{name}} μπήκε στην σύσκεψη", + "connectedThreePlusMembers": "Ο/Η {{name}} και πολλοί άλλοι μπήκαν στη σύσκεψη", + "connectedTwoMembers": "Ο {{first}} και ο {{second}} μπήκαν στην σύσκεψη", + "dataChannelClosed": "Ασθενής ποιότητα βίντεο", + "dataChannelClosedDescription": "Η γέφυρα αποσυνδέθηκε και για αυτό η ποιότητα περιορίζεται στις χαμηλότερες ρυθμίσεις.", + "disconnected": "αποσυνδέθηκε", + "displayNotifications": "Εμφάνιση ειδοποιήσεων για", + "dontRemindMe": "Να μην ειδοποιηθώ", + "focus": "Εστίαση σύσκεψης", + "focusFail": "Το {{component}} δεν είναι διαθέσιμο - δοκιμή ξανά σε {{ms}} δευτ", + "gifsMenu": "GIPHY", + "groupTitle": "Ειδοποιήσεις", + "hostAskedUnmute": "Ο συντονιστής θέλει να μιλήσετε", + "invitedOneMember": "Ο/Η {{name}} προσκλήθηκε", + "invitedThreePlusMembers": "Ο/Η {{name}} και {{count}} άλλοι προσκλήθηκαν", + "invitedTwoMembers": "Ο/Η {{first}} και {{second}} προσκλήθηκαν", + "joinMeeting": "Συμμετοχή", + "kickParticipant": "Ο/Η {{kicked}} αποβλήθηκε από {{kicker}}", + "leftOneMember": "Ο/Η {{name}} αποχώρησε από τη σύσκεψη", + "leftThreePlusMembers": "Ο/Η {{name}} και πολλοί άλλοι αποχώρησαν από τη σύσκεψη", + "leftTwoMembers": "Ο/Η {{first}} και {{second}} αποχώρησαν από τη σύσκεψη", + "linkToSalesforce": "Σύνδεση στο Salesforce", + "linkToSalesforceKey": "Σύνδεση αυτής τη σύσκεψης", + "localRecordingStarted": "Ο/Η {{name}} ξεκίνησε μια τοπική καταγραφή.", + "localRecordingStopped": "Ο/Η {{name}} σταμάτησε μια τοπική καταγραφή.", + "me": "Εγώ", + "moderationInEffectCSDescription": "Παρακαλώ σηκώστε το χέρι, αν θέλετε να μοιράσετε την οθόνη σας.", + "moderationInEffectCSTitle": "Ο διαμοιρασμός οθόνης έχει απαγορευθεί από το συντονιστή", + "moderationInEffectDescription": "Παρακαλώ σηκώστε το χέρι αν θέλετε να μιλήσετε.", + "moderationInEffectTitle": "Το μικρόφωνο σας έχει σιγηθεί από το συντονιστή", + "moderationInEffectVideoDescription": "Παρακαλώ σηκώστε το χέρι αν θέλετε να ξεκινήσετε την κάμερα σας.", + "moderationInEffectVideoTitle": "Η κάμερα σας έχει φραγή από το συντονιστή", + "moderationRequestFromModerator": "Ο διοργανωτής θα ήθελε να βγάλετε την σίγηση", + "moderationRequestFromParticipant": "Θέλει να μιλήσει", + "moderationStartedTitle": "Ξεκίνησε ο συντονισμός", + "moderationStoppedTitle": "Διακόπηκε ο συντονισμός", + "moderationToggleDescription": "από το/τη {{participantDisplayName}}", + "moderator": "Είστε τώρα συντονιστής", + "muted": "Έχετε ξεκινήσει τη σύσκεψη ενώ είστε σε σίγηση.", + "mutedRemotelyDescription": "Μπορείτε πάντα να καταργήσετε τη σίγηση, όταν θέλετε να μιλήσετε. Ενεργοποιήστε την ξανά όταν τελειώσετε, για να ελαχιστοποιήσετε τον θόρυβο από τη σύσκεψη.", + "mutedRemotelyTitle": "Έχει μπει σίγηση σε εσάς από τον/ην {{participantDisplayName}}", + "mutedTitle": "Είσαι σε σίγηση!", + "newDeviceAction": "Χρήση", + "newDeviceAudioTitle": "Εντοπίστηκε νέα συσκευή ήχου", + "newDeviceCameraTitle": "Εντοπίστηκε νέα κάμερα", + "noiseSuppressionDesktopAudioDescription": "Η εξάλειψη του θορύβου δε μπορεί να ενεργοποιηθεί ενώ μοιράζεστε τον ήχο του συστήματος, παρακαλώ απενεργοποιήστε το και δοκιμάστε ξανά.", + "noiseSuppressionFailedTitle": "Αποτυχία στην ενεργοποίηση της εξάλειψης θορύβου", + "noiseSuppressionNoTrackDescription": "Παρακαλώ βγάλτε πρώτα την σίγηση.", + "noiseSuppressionStereoDescription": "Δεν υποστηρίζεται ακόμα η καταστολή θορύβου για στερεοφωνικό ήχο.", + "oldElectronClientDescription1": "Φαίνεται να χρησιμοποιείτε μια παλιά έκδοση του Jitsi Meet με γνωστά θέματα ευπάθειας ασφαλείας. Παρακαλώ βεβαιωθείτε ότι έχετε την ενημερωμένη έκδοση για ", + "oldElectronClientDescription2": "τελευταία έκδοση", + "oldElectronClientDescription3": " τώρα!", + "participantWantsToJoin": "Θέλει να συμμετέχει στη σύσκεψη", + "participantsWantToJoin": "Θέλουν να συμμετέχουν στη σύσκεψη", + "passwordRemovedRemotely": "Το $t(lockRoomPasswordUppercase) αφαιρέθηκε από έναν άλλον συμμετέχοντα", + "passwordSetRemotely": "Το $t(lockRoomPasswordUppercase) ορίστηκε από άλλον συμμετέχοντα", + "raiseHandAction": "Σήκωσε χέρι", + "raisedHand": "Θέλει να μιλήσει.", + "raisedHands": "ο/η {{participantName}} και {{raisedHands}} άλλοι", + "reactionSounds": "Απενεργοποίηση ήχων", + "reactionSoundsForAll": "Απενεργοποίηση ήχων για όλους", + "screenShareNoAudio": "Η επιλογή Διαμοιρασμός ήχου δεν έχει ενεργοποιηθεί στο μενού επιλογής παραθύρου.", + "screenShareNoAudioTitle": "Δεν ήταν δυνατός ο διαμοιρασμός του ήχου του συστήματος!", + "screenSharingAudioOnlyDescription": "Σας επισημαίνουμε ότι με το να μοιράζεστε την οθόνη επηρεάζεται η λειτουργία \"Καλύτερη απόδοση\" και θα χρησιμοποιείτε περισσότερη ταχύτητα μετάδοσης.", + "screenSharingAudioOnlyTitle": "Λειτουργία \"Καλύτερης απόδοσης\"", + "selfViewTitle": "Μπορείτε πάντα να ξε-κρύψετε την προβολή σας από τις ρυθμίσεις", + "somebody": "Κάποιος", + "startSilentDescription": "Μπείτε ξανά στη σύσκεψη για να ενεργοποιήσετε τον ήχο", + "startSilentTitle": "Μπήκατε χωρίς συσκευή για έξοδο ήχου!", + "suboptimalBrowserWarning": "Δυστυχώς η εμπειρία σας σε αυτή τη σύσκεψη δεν θα είναι καλή. Ψάχνουμε για τρόπους για να το βελτιώσουμε, αλλά μέχρι τότε παρακαλώ δοκιμάστε να χρησιμοποιήσετε ένα από τα πλήρως υποστηριζόμενα προγράμματα περιήγησης.", + "suboptimalExperienceTitle": "Προειδοποίηση Browser", + "unmute": "Κατάργηση σίγησης", + "videoMutedRemotelyDescription": "Μπορείτε πάντα να την ενεργοποιήσετε ξανά.", + "videoMutedRemotelyTitle": "Το βίντεο σας απενεργοποιήθηκε από το/τη {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Οι λειτουργίες κάμερας, κατάργησης σίγησης και διαμοιρασμού οθόνης έχουν προσωρινή φραγή λόγω ορίων του συστήματος.", + "videoUnmuteBlockedTitle": "Φραγή στη κάμερα, κατάργηση σίγησης και διαμοιρασμού οθόνης!", + "viewLobby": "Εμφάνιση υποδοχής", + "waitingParticipants": "{{waitingParticipants}} άτομα" + }, + "participantsPane": { + "actions": { + "admit": "Αποδοχή", + "admitAll": "Αποδοχή όλων", + "allow": "Επιτρέψτε στους συμμετέχοντες να:", + "allowVideo": "Επιτρέψτε το βίντεο", + "askUnmute": "Αίτηση για κατάργηση σίγησης", + "audioModeration": "Μπορούν να καταργούν τη σίγηση", + "blockEveryoneMicCamera": "Φραγή σε όλα τα μικρόφωνα και κάμερες", + "invite": "Προσκαλέστε Κάποιον", + "moreModerationActions": "Περισσότερες επιλογές συντονισμού", + "moreModerationControls": "Περισσότερα χειριστήρια συντονισμού", + "moreParticipantOptions": "Περισσότερες ρυθμίσεις συμμετεχόντων", + "mute": "Σίγηση", + "muteAll": "Σίγηση όλων", + "muteEveryoneElse": "Σίγηση όλων των άλλων", + "reject": "Απόρριψη", + "stopEveryonesVideo": "Διακοπή όλων των βίντεο", + "stopVideo": "Διακοπή του βίντεο", + "unblockEveryoneMicCamera": "Επιτρέψτε τα μικρόφωνα και τις κάμερες όλων", + "videoModeration": "Ξεκινούν το βίντεο τους" + }, + "close": "Κλείσιμο", + "headings": { + "lobby": "Υποδοχή {{count}}", + "participantsList": "Συμμετέχοντες σύσκεψης {{count}}", + "visitors": "Επισκέπτες {{count}}", + "waitingLobby": "Σε αναμονή στην υποδοχή {{count}}" + }, + "search": "Αναζήτηση συμμετεχόντων", + "title": "Συμμετέχοντες" + }, + "passwordDigitsOnly": "Έως {{number}} ψηφία", + "passwordSetRemotely": "Ορίστηκε από ένα άλλον συμμετέχοντα", + "pinParticipant": "{{participantName}} - Διατήρηση", + "pinnedParticipant": "Ο συμμετέχων έχει διατηρηθεί", + "polls": { + "answer": { + "skip": "Παράλειψη", + "submit": "Υποβολή" + }, + "by": "Από {{ name }}", + "create": { + "addOption": "Προσθήκη επιλογής", + "answerPlaceholder": "Επιλογή {{index}}", + "cancel": "Ακύρωση", + "create": "Δημιουργία ψηφοφορίας", + "pollOption": "Επιλογή ψηφοφορίας {{index}}", + "pollQuestion": "Ερώτηση Ψηφοφορίας", + "questionPlaceholder": "Ρωτήστε", + "removeOption": "Αφαιρέστε την επιλογή", + "send": "Αποστολή" + }, + "errors": { + "notUniqueOption": "Οι επιλογές πρέπει να είναι μοναδικές" + }, + "notification": { + "description": "Ανοίξτε τη σελίδα ψηφοφοριών για να ψηφίσετε", + "title": "Μια νέα ψηφοφορία προστέθηκε στη σύσκεψη" + }, + "results": { + "changeVote": "Αλλαγή ψήφου", + "empty": "Δεν υπάρχουν ακόμα ψηφοφορίες στη σύσκεψη. Ξεκινήστε μία εδώ!", + "hideDetailedResults": "Απόκρυψη λεπτομεριών", + "showDetailedResults": "Εμφάνιση λεπτομεριών", + "vote": "Ψήφος" + } + }, + "poweredby": "με τη δύναμη του", + "prejoin": { + "audioAndVideoError": "Σφάλμα ήχου και βίντεο:", + "audioDeviceProblem": "Υπάρχει πρόβλημα με τη συσκευή ήχου σας", + "audioOnlyError": "Σφάλμα ήχου:", + "audioTrackError": "Δεν ήταν δυνατή η δημιουργία κομματιού ήχου.", + "callMe": "Καλέστε με", + "callMeAtNumber": "Καλέστε με σε αυτό το νούμερο:", + "calling": "Γίνεται κλήση", + "configuringDevices": "Ρύθμιση συσκευών…", + "connectedWithAudioQ": "Είστε συνδεδεμένοι με ήχο;", + "connection": { + "good": "Η σύνδεση σας στο Διαδίκτυο φαίνεται καλή!", + "nonOptimal": "Η σύνδεση σας στο Διαδίκτυο δεν είναι βέλτιστη", + "poor": "Έχετε κακή σύνδεση στο Διαδίκτυο" + }, + "connectionDetails": { + "audioClipping": "Αναμένεται να κόβεται ο ήχος.", + "audioHighQuality": "Αναμένεται εξαιρετική ποιότητα στο ήχος σας.", + "audioLowNoVideo": "Αναμένεται η ποιότητα του ήχου να είναι χαμηλή και καθόλου βίντεο.", + "goodQuality": "Τέλεια! Η ποιότητα των μέσων θα είναι εξαιρετική.", + "noMediaConnectivity": "Αδυναμία εύρεσης ενός τρόπου διασύνδεσης μέσων για αυτή τη δοκιμή. Συνήθως αυτό προκαλείτε λόγω φραγής στο firewall ή λόγω NAT.", + "noVideo": "Αναμένεται το βίντεο σας να είναι κάκιστο.", + "undetectable": "Αν συνεχίζετε να μη μπορείτε να καλέσετε στο browser, προτείνουμε να σιγουρευτείτε για τη σωστή ρύθμιση των ηχείων, μικροφώνου και κάμερας, ότι αποδώσατε τα δικαιώματα για χρήση τους στο browser και ότι ο αυτός είναι ενημερωμένος. Αν ακόμη έχετε πρόβλημα να καλέσετε, επικοινωνήστε με τους προγραμματιστές της εφαρμογής.", + "veryPoorConnection": "Αναμένεται η ποιότητας της κλήσης να είναι κάκιστη.", + "videoFreezing": "Αναμένεται το βίντεο σας να κολλάει, να σβήνει και ναι είναι πιξελιασμένο.", + "videoHighQuality": "Αναμένεται καλή ποιότητα στο βίντεο σας.", + "videoLowQuality": "Αναμένεται το βίντεο σας να έχει χαμηλή ποιότητα στην ανάλυση και στο ρυθμό ανανέωσης.", + "videoTearing": "Αναμένεται το βίντεο σας να έχει πιξέλιασμα και τεχνουργήματα." + }, + "copyAndShare": "Αντιγραφή & διαμοιρασμός συνδέσμου σύσκεψης", + "dialInMeeting": "Κλήση στη σύσκεψη", + "dialInPin": "Καλέστε στη σύσκεψη και εισάγετε το κωδικό PIN:", + "dialing": "Γίνεται κλήση", + "doNotShow": "Να μην εμφανιστεί αυτό ξανά", + "errorDialOut": "Η εξερχόμενη κλήση δεν ήταν δυνατή", + "errorDialOutDisconnected": "Η εξερχόμενη κλήση δεν ήταν δυνατή. Αποσυνδέθηκε", + "errorDialOutFailed": "Η εξερχόμενη κλήση δεν ήταν δυνατή. Η κλήση απέτυχε", + "errorDialOutStatus": "Σφάλμα στη λήψη της κατάστασης εξερχόμενης κλήσης", + "errorMissingName": "Παρακαλώ δώστε το όνομα σας για να συμμετέχετε στη σύσκεψη", + "errorNoPermissions": "Πρέπει να ενεργοποιήσετε τη πρόσβαση σε μικρόφωνο και κάμερα", + "errorStatusCode": "Σφάλμα εξερχόμενης κλήσης, κωδικός κατάστασης: {{status}}", + "errorValidation": "Η επικύρωση του αριθμού απέτυχε", + "iWantToDialIn": "Θέλω να καλέσω", + "initiated": "Η κλήση ξεκίνησε", + "joinAudioByPhone": "Συμμετοχή με ήχο τηλεφώνου", + "joinMeeting": "Συμμετοχή στη σύσκεψη", + "joinMeetingInLowBandwidthMode": "Συμμετοχή σε λειτουργία χαμηλής ταχύτητας", + "joinWithoutAudio": "Συμμετοχή χωρίς ήχο", + "keyboardShortcuts": "Ενεργοποίηση Συντομεύσεων", + "linkCopied": "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο", + "lookGood": "Το μικρόφωνο σας λειτουργεί άψογα", + "or": "ή", + "premeeting": "Προ σύσκεψη", + "screenSharingError": "Σφάλμα διαμοιρασμού οθόνης:", + "startWithPhone": "Ξεκινήστε με ήχο τηλεφώνου", + "videoOnlyError": "Σφάλμα βίντεο:", + "videoTrackError": "Δεν ήταν δυνατή η δημιουργία κομματιού βίντεο.", + "viewAllNumbers": "προβολή όλων των αριθμών" + }, + "presenceStatus": { + "busy": "Κατειλημμένο", + "calling": "Καλεί…", + "connected": "Συνδέθηκε", + "connecting": "Γίνεται σύνδεση…", + "connecting2": "Γίνεται σύνδεση*…", + "disconnected": "Αποσυνδέθηκε", + "expired": "Έληξε", + "ignored": "Αγνοήθηκε", + "initializingCall": "Αρχικοποίηση Κλήσης…", + "invited": "Προσκλήθηκε", + "rejected": "Απορρίφθηκε", + "ringing": "Καλεί…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Όνομα", + "setEmailInput": "Εισάγετε το email", + "setEmailLabel": "Email στο Gravatar", + "title": "Προφίλ" + }, + "raisedHand": "Θα ήθελα να μιλήσω", + "raisedHandsLabel": "Πλήθος χεριών", + "record": { + "type": { + "account": "Λογαριασμός", + "contact": "Επαφή", + "lead": "Αρχηγός", + "opportunity": "Ευκαιρία", + "owner": "Ιδιοκτήτης" + } + }, + "recording": { + "authDropboxText": "Ανέβασμα στο Dropbox", + "availableSpace": "Διαθέσιμος χώρος: {{spaceLeft}} MB (κατά προσέγγιση {{duration}} λεπτά εγγραφής)", + "beta": "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": "Προετοιμασία για την καταγραφή της σύσκεψης…", + "rec": "ΕΓΓΡΑΦΗ", + "saveLocalRecording": "Αποθήκευση καταγραφής τοπικά (Beta)", + "serviceDescription": "Η καταγραφή σας θα αποθηκευτεί από την υπηρεσία καταγραφής", + "serviceDescriptionCloud": "Καταγραφή στο σύννεφο", + "serviceDescriptionCloudInfo": "Οι καταγεγραμμένες συσκέψεις σβήνονται αυτόματα 24 ώρες μετά.", + "serviceName": "Υπηρεσία καταγραφής", + "sessionAlreadyActive": "Η συνεδρία ήδη γράφεται ή είναι σε ζωντανή ροή.", + "signIn": "Σύνδεση", + "signOut": "Αποσύνδεση", + "surfaceError": "Παρακαλώ επιλέξτε τη τρέχουσα σελίδα.", + "title": "Γίνεται Καταγραφή", + "unavailable": "Ωχ! Το {{serviceName}} δεν είναι διαθέσιμο προς το παρόν. Δουλεύουμε για την επίλυση του ζητήματος. Παρακαλώ προσπαθήστε ξανά αργότερα.", + "unavailableTitle": "Η καταγραφή δεν είναι διαθέσιμη", + "uploadToCloud": "Ανέβασμα στο σύννεφο" + }, + "screenshareDisplayName": "{{name}} - Οθόνη", + "sectionList": { + "pullToRefresh": "Τραβήξτε για ανανέωση" + }, + "security": { + "about": "Έχετε τη δυνατότητα να προσθέσετε $t(lockRoomPassword) στη σύσκεψη σας. Οι συμμετέχοντες θα πρέπει να παρέχουν το $t(lockRoomPassword) πριν να τους δοθεί πρόσβαση στη συνάντηση.", + "aboutReadOnly": "Οι συντονιστές μπορούν να προσθέτουν ένα $t(lockRoomPassword) στη σύσκεψη. Οι συμμετέχοντες θα πρέπει να παρέχουν το $t(lockRoomPassword) πριν να τους δοθεί πρόσβαση στη συνάντηση.", + "insecureRoomNameWarning": "Το όνομα του δωματίου δεν είναι ασφαλές. Ανεπιθύμητοι συμμετέχοντες μπορεί να συμμετέχουν στη σύσκεψη σας. Σκεφτείτε να ασφαλίσετε τη συνάντηση σας χρησιμοποιώντας το κουμπί ασφάλεια.", + "title": "Επιλογές Ασφάλειας" + }, + "settings": { + "audio": "Ήχος", + "buttonLabel": "Ρυθμίσεις", + "calendar": { + "about": "Η ενσωμάτωση ημερολογίου του {{appName}} χρησιμοποιείται για την ασφαλή πρόσβαση στο ημερολόγιο σας, ώστε να μπορεί να διαβάσει τις επερχόμενες εκδηλώσεις.", + "disconnect": "Αποσύνδεση", + "microsoftSignIn": "Σύνδεση με τη Microsoft", + "signedIn": "Γίνεται πρόσβαση στο ημερολόγιο εκδηλώσεων για το {{email}}. Πατήστε το κουμπί Αποσύνδεση παρακάτω, για να σταματήσει η πρόσβαση στις εκδηλώσεις ημερολογίου.", + "title": "Ημερολόγιο" + }, + "desktopShareFramerate": "Ανανέωση καρέ για το διαμοιρασμό οθόνης", + "desktopShareHighFpsWarning": "Ένας υψηλός ρυθμός ανανέωσης καρέ για το διαμοιρασμό οθόνης θα επηρεάσει τη ταχύτητα σας. Πρέπει να επανεκκινήσετε το διαμοιρασμό οθόνης για να ενεργοποιηθούν οι νέες ρυθμίσεις.", + "desktopShareWarning": "Πρέπει να επανεκκινήσετε το διαμοιρασμό οθόνης για να ενεργοποιηθούν οι νέες ρυθμίσεις.", + "devices": "Συσκευές", + "followMe": "Όλοι να με ακολουθούν", + "framesPerSecond": "καρέ-ανά-δευτερόλεπτο", + "incomingMessage": "Εισερχόμενο μήνυμα", + "language": "Γλώσσα", + "loggedIn": "Συνδέθηκε ως {{name}}", + "maxStageParticipants": "Μέγιστος αριθμός συμμετεχόντων που μπορούν να διατηρηθούν στην κύρια σκηνή", + "microphones": "Μικρόφωνα", + "moderator": "Συντονιστής", + "moderatorOptions": "Επιλογές συντονιστή", + "more": "Γενικά", + "name": "Όνομα", + "noDevice": "Κανένα", + "notifications": "Ειδοποιήσεις", + "participantJoined": "Συνδέεται Ένας Συμμετέχων", + "participantKnocking": "Μπήκε στην υποδοχή ένας / μία συμμετέχων", + "participantLeft": "Έφυγε Συμμετέχων", + "playSounds": "Παίξε ήχο όταν", + "reactions": "Αντιδράσεις σύσκεψης", + "sameAsSystem": "Ίδιο όπως το σύστημα {{label}}", + "selectAudioOutput": "Έξοδος ήχου", + "selectCamera": "Κάμερα", + "selectMic": "Μικρόφωνο", + "selfView": "Αυτοπροβολή", + "shortcuts": "Συντομεύσεις", + "speakers": "Ηχεία", + "startAudioMuted": "Όλοι ξεκινούν σε σίγηση", + "startReactionsMuted": "Σίγηση ήχων αντιδράσεων για όλους", + "startVideoMuted": "Όλοι ξεκινούν σε απόκρυψη", + "talkWhileMuted": "Μιλάτε ενώ είστε σε σίγηση", + "title": "Ρυθμίσεις", + "video": "Βίντεο" + }, + "settingsView": { + "advanced": "Για προχωρημένους", + "alertCancel": "Ακύρωση", + "alertOk": "OK", + "alertTitle": "Προειδοποίηση", + "alertURLText": "Το URL του διακομιστή που εισάγατε δεν είναι έγκυρο", + "buildInfoSection": "Πληροφορίες έκδοσης", + "conferenceSection": "Συνέδριο", + "disableCallIntegration": "Απενεργοποίηση ενσωμάτωσης εγγενούς κλήσης", + "disableCrashReporting": "Απενεργοποίηση αναφοράς σφαλμάτων", + "disableCrashReportingWarning": "Σίγουρα να απενεργοποιηθεί η αναφορά σφαλμάτων; Η ρύθμιση θα εφαρμοστεί μετά την επανεκκίνηση της εφαρμογής.", + "disableP2P": "Απενεργοποίηση λειτουργίας Peer-to-Peer", + "displayName": "Εμφανιζόμενο όνομα", + "displayNamePlaceholderText": "Π.χ Γιάννης Παπαδόπουλος", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "goTo": "Πήγαινε", + "header": "Ρυθμίσεις", + "help": "Βοήθεια", + "links": "Σύνδεσμοι", + "privacy": "Απόρρητο", + "profileSection": "Προφίλ", + "serverURL": "URL Διακομιστή", + "showAdvanced": "Εμφάνιση ρυθμίσεων για προχωρημένους", + "startCarModeInLowBandwidthMode": "Λειτουργία αυτοκινήτου σε χαμηλή κατάσταση ταχύτητας", + "startWithAudioMuted": "Ξεκινήστε με τον ήχο σε σίγηση", + "startWithVideoMuted": "Ξεκινήστε με το βίντεο σε σίγηση", + "terms": "Όροι", + "version": "Έκδοση" + }, + "share": { + "dialInfoText": "\n\n=====\n\nΘέλω απλά να καλέσετε με το τηλέφωνό σας;\n\n{{defaultDialInNumber}}κάντε Κλικ σε αυτό το σύνδεσμο για να δείτε τους τηλεφωνικούς αριθμούς κλήσης για αυτή τη σύσκεψη\n{{dialInfoPageUrl}}", + "mainText": "Πατήστε τον παρακάτω σύνδεσμο για να συμμετέχετε στη σύσκεψη:\n{{roomUrl}}" + }, + "speaker": "Ομιλητής", + "speakerStats": { + "angry": "Θυμωμένο", + "disgusted": "Αηδιασμένο", + "displayEmotions": "Εμφάνιση συναισθημάτων", + "fearful": "Φοβισμένο", + "happy": "Χαρούμενο", + "hours": "{{count}}ω", + "minutes": "{{count}}λ", + "name": "Όνομα", + "neutral": "Ουδέτερο", + "sad": "Λυπημένο", + "search": "Αναζήτηση", + "searchHint": "Αναζήτηση συμμετεχόντων", + "seconds": "{{count}}δ", + "speakerStats": "Στατιστικά Συμμετεχόντων", + "speakerTime": "Χρόνος Ομιλητή", + "surprised": "Έκπληξη" + }, + "startupoverlay": { + "genericTitle": "Η σύσκεψη απαιτεί να χρησιμοποιήσετε το μικρόφωνο και τη κάμερα σας.", + "policyText": " ", + "title": "Το {{app}} πρέπει να χρησιμοποιήσει το μικρόφωνο και την κάμερα σας." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Επανασύνδεση", + "text": "Πατήστε το Επανασύνδεση για να επανασυνδεθείτε.", + "title": "Η βιντεοκλήση σας διακόπηκε επειδή ο υπολογιστής μπήκε σε κατάσταση αναστολής." + }, + "termsView": { + "title": "Όροι" + }, + "toggleTopPanelLabel": "Εναλλαγή άνω πίνακα", + "toolbar": { + "Settings": "Ρυθμίσεις", + "accessibilityLabel": { + "Settings": "Εναλλαγή ρυθμίσεων", + "audioOnly": "Εναλλαγή μόνο ήχος", + "audioRoute": "Επιλέξτε τη συσκευή ήχου", + "boo": "Γιουχάρισμα", + "breakoutRoom": "Συμμετοχή/αποχώρηση στο αποσπασμένο δωμάτιο", + "callQuality": "Διαχείριση ποιότητας βίντεο", + "carmode": "Λειτουργία Αυτοκινήτου", + "cc": "Εναλλαγή υποτίτλων", + "chat": "Εναλλαγή παραθύρου συνομιλίας", + "clap": "Χειροκρότημα", + "closeChat": "Κλείσιμο συνομιλίας", + "closeMoreActions": "Κλείσιμο μενού περισσότερων ενεργειών", + "closeParticipantsPane": "Κλείσιμο πίνακα συμμετεχόντων", + "collapse": "Αναδίπλωση", + "document": "Εναλλαγή κοινοχρήστου εγγράφου", + "documentClose": "Κλείσιμο κοινόχρηστου εγγράφου", + "documentOpen": "Άνοιγμα κοινόχρηστου εγγράφου", + "download": "Κατεβάστε τις εφαρμογές μας", + "embedMeeting": "Ενσωμάτωση σύσκεψης", + "endConference": "Λήξη της σύσκεψης για όλους", + "enterFullScreen": "Εμφάνιση πλήρους οθόνης", + "enterTileView": "Είσοδος σε προβολή εικονιδίων", + "exitFullScreen": "Έξοδος από πλήρη οθόνη", + "exitTileView": "Έξοδος από προβολή εικονιδίων", + "expand": "Ανάπτυξη", + "feedback": "Αφήστε σχόλια", + "fullScreen": "Εναλλαγή σε πλήρη οθόνη", + "giphy": "Εναλλαγή μενού GIPHY", + "grantModerator": "Απόδοση Δικαιωμάτων Συντονιστή", + "hangup": "Αποχώρηση από την σύσκεψη", + "heading": "Μπάρα Εργαλείων", + "help": "Βοήθεια", + "hideWhiteboard": "Απόκρυψη μαυροπίνακα", + "invite": "Προσκαλέστε άτομα", + "kick": "Αποβολή συμμετέχοντα", + "laugh": "Γέλιο", + "leaveConference": "Αποχώρηση από την σύσκεψη", + "like": "Εγκρίνω", + "linkToSalesforce": "Σύνδεση στο Salesforce", + "lobbyButton": "Ενεργοποίηση/απενεργοποίηση υποδοχής", + "localRecording": "Εναλλαγή χειριστηρίων τοπικής καταγραφής", + "lockRoom": "Εναλλαγή κωδικού πρόσβασης σύσκεψης", + "lowerHand": "Κατεβάστε το χέρι σας", + "moreActions": "Περισσότερες ενέργειες", + "moreActionsMenu": "Μενού περισσότερων ενεργειών", + "moreOptions": "Εμφάνιση περισσότερων επιλογών", + "mute": "Σίγηση", + "muteEveryone": "Σίγηση όλων", + "muteEveryoneElse": "Σίγηση όλων των άλλων", + "muteEveryoneElsesVideoStream": "Διακοπή του βίντεο των άλλων", + "muteEveryonesVideoStream": "Διακοπή του βίντεο όλων", + "noiseSuppression": "Εξάλειψη θορύβου", + "openChat": "Άνοιγμα συνομιλίας", + "participants": "Άνοιγμα πίνακα συμμετεχόντων", + "pip": "Εναλλαγή λειτουργίας Εικόνα-σε-Εικόνα", + "privateMessage": "Αποστολή ιδιωτικού μηνύματος", + "profile": "Επεξεργαστείτε το προφίλ σας", + "raiseHand": "Σηκώστε το χέρι σας", + "reactionsMenu": "Μενού αντιδράσεων", + "recording": "Εναλλαγή καταγραφής", + "remoteMute": "Σίγηση συμμετέχοντα", + "remoteVideoMute": "Απενεργοποίηση της κάμερας του συμμετέχοντα", + "security": "Επιλογές ασφαλείας", + "selectBackground": "Επιλογή Φόντου", + "selfView": "Εναλλαγή αυτοπροβολής", + "shareRoom": "Προσκαλέστε κάποιον", + "shareYourScreen": "Μοιραστείτε την οθόνη σας", + "shareaudio": "Διαμοιρασμός ήχου", + "sharedvideo": "Μοιραστείτε βίντεο", + "shortcuts": "Εναλλαγή συντομεύσεων", + "show": "Εμφάνιση στη σκηνή", + "showWhiteboard": "Εμφάνιση μαυροπίνακα", + "silence": "Σιωπή", + "speakerStats": "Εναλλαγή στατιστικών συμμετεχόντων", + "stopScreenSharing": "Διακοπή διαμοιρασμού οθόνης", + "stopSharedVideo": "Σταμάτημα του βίντεο", + "surprised": "Έκπληξη", + "tileView": "Εναλλαγή όψης εικονιδίων", + "toggleCamera": "Εναλλαγή κάμερας", + "toggleFilmstrip": "Εναλλαγή filmstrip", + "unmute": "Κατάργηση σίγησης", + "videoblur": "Εναλλαγή θόλωσης βίντεο", + "videomute": "Διακοπή της κάμερας", + "videounmute": "Εκκίνηση κάμερας" + }, + "addPeople": "Προσθήκη ατόμων στην κλήση σας", + "audioOnlyOff": "Απενεργοποίηση λειτουργίας χαμηλής ταχύτητας", + "audioOnlyOn": "Ενεργοποίηση λειτουργίας χαμηλής ταχύτητας", + "audioRoute": "Επιλέξτε τη συσκευή ήχου", + "audioSettings": "Ρυθμίσεις ήχου", + "authenticate": "Ταυτοποίηση", + "boo": "Γιουχάρισμα", + "callQuality": "Διαχείριση ποιότητας βίντεο", + "chat": "Εναλλαγή παραθύρου συνομιλίας", + "clap": "Χειροκρότημα", + "closeChat": "Κλείσιμο συνομιλίας", + "closeParticipantsPane": "Κλείσιμο πίνακα συμμετεχόντων", + "closeReactionsMenu": "Κλείσιμο μενού αντιδράσεων", + "disableNoiseSuppression": "Απενεργοποίηση εξάλειψης θορύβου", + "disableReactionSounds": "Μπορείτε να απενεργοποιήσετε τους ήχους αντιδράσεων για αυτή τη σύσκεψη", + "documentClose": "Κλείσιμο κοινόχρηστου εγγράφου", + "documentOpen": "Άνοιγμα κοινόχρηστο εγγράφου", + "download": "Κατεβάστε τις εφαρμογές μας", + "e2ee": "Κρυπτογράφηση Άκρη-προς-Άκρη", + "embedMeeting": "Ενσωμάτωση σύσκεψης", + "enableNoiseSuppression": "Ενεργοποίηση εξάλειψης θορύβου", + "endConference": "Λήξη της σύσκεψης για όλους", + "enterFullScreen": "Εμφάνιση πλήρους οθόνης", + "enterTileView": "Προβολή εικονιδίων", + "exitFullScreen": "Έξοδος από πλήρη οθόνη", + "exitTileView": "Έξοδος από προβολή εικονιδίων", + "feedback": "Αφήστε σχόλια", + "giphy": "Εναλλαγή μενού GIPHY", + "hangup": "Αποχώρηση από την σύσκεψη", + "help": "Βοήθεια", + "hideWhiteboard": "Απόκρυψη μαυροπίνακα", + "invite": "Προσκαλέστε άτομα", + "joinBreakoutRoom": "Συμμετοχή στο αποσπασμένο δωμάτιο", + "laugh": "Γέλιο", + "leaveBreakoutRoom": "Αποχώρηση από το αποσπασμένο δωμάτιο", + "leaveConference": "Αποχώρηση από την σύσκεψη", + "like": "Εγκρίνω", + "linkToSalesforce": "Σύνδεση στο Salesforce", + "lobbyButtonDisable": "Απενεργοποίηση υποδοχής", + "lobbyButtonEnable": "Ενεργοποίηση υποδοχής", + "login": "Είσοδος", + "logout": "Αποσύνδεση", + "lowerYourHand": "Κατεβάστε το χέρι σας", + "moreActions": "Περισσότερες ενέργειες", + "moreOptions": "Περισσότερες επιλογές", + "mute": "Σίγηση", + "muteEveryone": "Σίγηση όλων", + "muteEveryonesVideo": "Απενεργοποίηση της κάμερας όλων", + "noAudioSignalDesc": "Αν δεν κάνατε ηθελημένα σίγηση από τις ρυθμίσεις του συστήματος ή του υλικού, εξετάστε την αντικατάσταση της συσκευής.", + "noAudioSignalDescSuggestion": "Αν δεν κάνατε ηθελημένα σίγηση από τις ρυθμίσεις του συστήματος ή του υλικού, εξετάστε την αλλαγή στη συσκευή που προτείνεται.", + "noAudioSignalDialInDesc": "Μπορείτε επίσης να καλέσετε χρησιμοποιώντας:", + "noAudioSignalDialInLinkDesc": "Αριθμοί κλήσης", + "noAudioSignalTitle": "Δεν υπάρχει ήχος από το μικρόφωνο σας!", + "noiseSuppression": "Εξάλειψη θορύβου", + "noisyAudioInputDesc": "Το μικρόφωνο σας πιθανόν να κάνει θόρυβο, παρακαλώ βάλτε τη σίγηση ή αλλάξτε τη συσκευή.", + "noisyAudioInputTitle": "Το μικρόφωνο φαίνεται να είναι θορυβώδες!", + "openChat": "Άνοιγμα συνομιλίας", + "openReactionsMenu": "Άνοιγμα μενού αντιδράσεων", + "participants": "Συμμετέχοντες", + "pip": "Είσοδος σε λειτουργία Εικόνα-σε-Εικόνα", + "privateMessage": "Αποστολή ιδιωτικού μηνύματος", + "profile": "Επεξεργαστείτε το προφίλ σας", + "raiseHand": "Σηκώστε το χέρι σας", + "raiseYourHand": "Σηκώστε το χέρι σας", + "reactionBoo": "Στείλτε γιουχάρισμα", + "reactionClap": "Στείλτε χειροκρότημα", + "reactionLaugh": "Στείλτε γέλιο", + "reactionLike": "Στείλτε έγκριση", + "reactionSilence": "Στείλτε σιωπή", + "reactionSurprised": "Στείλτε έκπληξη", + "security": "Επιλογές ασφαλείας", + "selectBackground": "Επιλογή φόντου", + "shareRoom": "Προσκαλέστε κάποιον", + "shareaudio": "Διαμοιρασμός ήχου", + "sharedvideo": "Μοιραστείτε βίντεο", + "shortcuts": "Δείτε τις συντομεύσεις", + "showWhiteboard": "Εμφάνιση μαυροπίνακα", + "silence": "Σιωπή", + "speakerStats": "Στατιστικά ομιλητών", + "startScreenSharing": "Ξεκινήστε τον διαμοιρασμό οθόνης", + "startSubtitles": "Υπότιτλοι • {{language}}", + "stopAudioSharing": "Διακοπή διαμοιρασμού ήχου", + "stopScreenSharing": "Διακοπή διαμοιρασμού οθόνης", + "stopSharedVideo": "Διακοπή του βίντεο", + "stopSubtitles": "Διακοπή υποτίτλων", + "surprised": "Έκπληξη", + "talkWhileMutedPopup": "Προσπαθείτε να μιλήσετε; Είστε σε σίγηση.", + "tileViewToggle": "Εναλλαγή προβολής εικονιδίων", + "toggleCamera": "Εναλλαγή κάμερας", + "unmute": "Κατάργηση Σίγησης", + "videoSettings": "Ρυθμίσεις βίντεο", + "videomute": "Διακοπή κάμερας", + "videounmute": "Εκκίνηση κάμερας" + }, + "transcribing": { + "ccButtonTooltip": "Εκκίνηση / Διακοπή υποτίτλων", + "error": "Η μεταγραφή απέτυχε. Παρακαλώ δοκιμάστε ξανά.", + "expandedLabel": "Η μεταγραφή είναι τώρα ενεργή", + "failedToStart": "Η μεταγραφή απέτυχε να ξεκινήσει", + "labelToolTip": "Η συνάντηση μεταγράφεται", + "off": "Η μεταγραφή σταμάτησε", + "pending": "Προετοιμασία για μεταγραφή της συνάντησης…", + "sourceLanguageDesc": "Η γλώσσα της σύσκεψης αυτή τη στιγμή έχει οριστεί σε {{sourceLanguage}}.
Μπορείτε να την αλλάξετε από ", + "sourceLanguageHere": "εδώ", + "start": "Εμφάνιση υποτίτλων", + "stop": "Απόκρυψη υποτίτλων", + "subtitles": "Υπότιτλοι", + "subtitlesOff": "Κλειστοί", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Μη Διατήρηση", + "userMedia": { + "grantPermissions": "Παρακαλούμε παραχωρήστε την άδεια για χρήση της κάμερα και του μικροφώνου." + }, + "videoSIPGW": { + "busy": "Γίνεται προσπάθεια για την απελευθέρωση πόρων. Παρακαλώ δοκιμάστε ξανά σε λίγα λεπτά.", + "busyTitle": "Η υπηρεσία Δωματίου είναι απασχολημένη", + "errorAlreadyInvited": "{{displayName}} έχει ήδη προσκληθεί", + "errorInvite": "Η σύσκεψη δεν έχει ξεκινήσει ακόμα. Παρακαλώ προσπαθήστε ξανά αργότερα.", + "errorInviteFailed": "Γίνεται προσπάθεια για την επίλυση του ζητήματος. Παρακαλώ προσπαθήστε ξανά αργότερα.", + "errorInviteFailedTitle": "Η πρόσκληση του/ης {{displayName}} απέτυχε", + "errorInviteTitle": "Σφάλμα πρόσκλησης δωματίου", + "pending": "Ο/Η {{displayName}} έχει προσκληθεί" + }, + "videoStatus": { + "adjustFor": "Παραμετροποιήθηκε για:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Είστε σε λειτουργία χαμηλής ταχύτητας Σε αυτή τη λειτουργία, θα λάβετε μόνο ήχο και κοινή χρήση οθόνης.", + "bestPerformance": "Καλύτερη απόδοση", + "callQuality": "Ποιότητα Βίντεο", + "hd": "HD", + "hdTooltip": "Προβολή βίντεο υψηλής ευκρίνειας", + "highDefinition": "Υψηλής ευκρίνειας", + "highestQuality": "Υψηλότερη ποιότητα", + "labelTooiltipNoVideo": "Χωρίς βίντεο", + "labelTooltipAudioOnly": "Η Λειτουργία χαμηλής ταχύτητας είναι ενεργή", + "ld": "LD", + "ldTooltip": "Προβολή χαμηλής ευκρίνειας βίντεο", + "lowDefinition": "Χαμηλής ευκρίνειας", + "performanceSettings": "Ρυθμίσεις απόδοσης", + "recording": "Καταγραφή σε εξέλιξη", + "sd": "SD", + "sdTooltip": "Προβολή βίντεο τυπικής ανάλυσης", + "standardDefinition": "Τυπική ανάλυση", + "streaming": "Ζωντανή ροή σε εξέλιξη" + }, + "videothumbnail": { + "connectionInfo": "Πληροφορίες Σύνδεσης", + "domute": "Σίγηση", + "domuteOthers": "Σίγηση όλων των άλλων", + "domuteVideo": "Απενεργοποίηση κάμερας", + "domuteVideoOfOthers": "Απενεργοποίηση της κάμερας όλων των άλλων", + "flip": "Περιστροφή", + "grantModerator": "Απόδοση Δικαιωμάτων Συντονιστή", + "hideSelfView": "Απόκρυψη αυτοπροβολής", + "kick": "Αποβολή", + "mirrorVideo": "Καθρεφτισμός του βίντεο μου", + "moderator": "Συντονιστής", + "mute": "Ο συμμετέχων είναι σε σίγηση", + "muted": "Σίγηση", + "pinToStage": "Διατήρηση στη σκηνή", + "remoteControl": "Εκκίνηση / Διακοπή ελέγχου από μακριά", + "screenSharing": "Ο συμμετέχων διαμοιράζεται την οθόνη του", + "show": "Εμφάνιση στη σκηνή", + "showSelfView": "Εμφάνιση αυτοπροβολής", + "unpinFromStage": "Μη διατήρηση", + "verify": "Επιβεβαίωση συμμετέχοντα", + "videoMuted": "Η κάμερα απενεργοποιήθηκε", + "videomute": "Ο συμμετέχων σταμάτησε τη κάμερα" + }, + "virtualBackground": { + "addBackground": "Προσθήκη φόντου", + "apply": "Εφαρμογή", + "backgroundEffectError": "Αποτυχία εφαρμογής εφέ φόντου.", + "blur": "Θόλωμα", + "deleteImage": "Διαγραφή εικόνας", + "desktopShare": "Διαμοιρασμός οθόνης", + "desktopShareError": "Αδυναμία δημιουργίας διαμοιρασμού επιφάνειας", + "image1": "Παραλία", + "image2": "Λευκός ουδέτερος τοίχος", + "image3": "Λευκό άδειο δωμάτιο", + "image4": "Μαύρη επιδαπέδια λάμπα", + "image5": "Βουνό", + "image6": "Δάσος ", + "image7": "Ανατολή", + "none": "Κανένα", + "pleaseWait": "Παρακαλώ αναμένατε…", + "removeBackground": "Αφαίρεση φόντου", + "slightBlur": "Μισό Θόλωμα", + "title": "Εικονικά φόντα", + "uploadedImage": "Ανέβηκε η εικόνα {{index}}", + "webAssemblyWarning": "Δεν υποστηρίζεται WebAssembly", + "webAssemblyWarningDescription": "Απενεργοποιήθηκε η WebAssembly ή δεν υποστηρίζεται από το browser αυτό" + }, + "visitorsLabel": "Αριθμός επισκεπτών: {{count}}", + "volumeSlider": "Ρυθμιστής έντασης", + "welcomepage": { + "accessibilityLabel": { + "join": "Πατήστε για να συμμετέχετε", + "roomname": "Εισάγετε το όνομα δωματίου" + }, + "addMeetingName": "Προσθέστε Όνομα Δωματίου", + "appDescription": "Εμπρός, κάντε βιντεοκλήση με όλη την ομάδα. Στην πραγματικότητα, καλέστε όλους τους γνωστούς σας. Το {{app}} είναι μια πλήρως κρυπτογραφημένη, λύση τηλεδιάσκεψης 100% ανοιχτού κώδικα που μπορείτε να χρησιμοποιήσετε για όλη την ημέρα, κάθε μέρα, εντελώς δωρεάν — χωρίς να απαιτείται η δημιουργία λογαριασμού.", + "audioVideoSwitch": { + "audio": "Φωνή", + "video": "Βίντεο" + }, + "calendar": "Ημερολόγιο", + "connectCalendarButton": "Συνδέστε το ημερολόγιο", + "connectCalendarText": "Συνδέστε το ημερολόγιο για να δείτε όλες τις συσκέψεις σας στο {{app}}. Επιπλέον, προσθέστε συσκέψεις του {{provider}} στο ημερολόγιό σας και ξεκινήστε τις με ένα κλικ.", + "enterRoomTitle": "Ξεκινήστε μια νέα σύσκεψη", + "getHelp": "Ζητήστε βοήθεια", + "go": "ΠΑΜΕ", + "goSmall": "ΠΑΜΕ", + "headerSubtitle": "Ασφαλείς και υψηλής ποιότητας συσκέψεις", + "headerTitle": "Jitsi Meet", + "info": "Πληροφορίες Κλήσης", + "jitsiOnMobile": "Jitsi στο κινητό – κατεβάστε τις εφαρμογές και ξεκινήστε μια σύσκεψη από παντού", + "join": "ΔΗΜΙΟΥΡΓΙΑ / ΕΙΣΟΔΟΣ", + "logo": { + "calendar": "Λογότυπο ημερολογίου", + "desktopPreviewThumbnail": "Εικονίδιο προεπισκόπησης επιφάνειας", + "googleLogo": "Λογότυπο Google", + "logoDeepLinking": "Λογότυπο Jitsi meet", + "microsoftLogo": "Λογότυπο Microsoft", + "policyLogo": "Λογότυπο πολιτικής" + }, + "meetingsAccessibilityLabel": "Συσκέψεις", + "mobileDownLoadLinkAndroid": "Κατεβάστε την εφαρμογή για Android", + "mobileDownLoadLinkFDroid": "Κατεβάστε την εφαρμογή για F-Droid", + "mobileDownLoadLinkIos": "Κατεβάστε την εφαρμογή για iOS", + "moderatedMessage": "Ή κλείστε ένα URL σύσκεψης από πριν όπου θα είστε ο μόνος συντονιστής.", + "privacy": "Ιδιωτικότητα", + "recentList": "Πρόσφατες", + "recentListDelete": "Διαγραφή εγγραφής", + "recentListEmpty": "Η λίστα προσφάτων σας είναι άδεια. Συνομιλήστε με την ομάδα σας και θα βρείτε όλες τις πρόσφατες συσκέψεις εδώ.", + "recentMeetings": "Οι πρόσφατες συσκέψεις σας", + "reducedUIText": "Καλώς ήρθατε στο {{app}}!", + "roomNameAllowedChars": "Το όνομα σύσκεψης δεν πρέπει να περιέχει οποιονδήποτε από αυτούς τους χαρακτήρες: ?, &, :, ', \", %, #.", + "roomname": "Εισάγετε το όνομα του δωματίου", + "roomnameHint": "Εισάγετε το όνομα ή τη διεύθυνση URL του δωματίου στο οποίο θέλετε να συμμετέχετε. Μπορείτε να εφεύρετε ένα όνομα, απλά ενημερώστε τους συμμετέχοντες, έτσι ώστε να εισάγουν το ίδιο όνομα.", + "sendFeedback": "Στείλτε τα σχόλιά σας", + "settings": "Ρυθμίσεις", + "startMeeting": "Δημιουργία σύσκεψης", + "terms": "Όροι", + "title": "Ασφαλής, με όλες τις λειτουργίες και εντελώς δωρεάν βίντεο συνομιλία", + "upcomingMeetings": "Οι προσεχείς συσκέψεις σας" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Μαυροπίνακας" + } + } +} diff --git a/lang/main-eo.json b/lang/main-eo.json new file mode 100644 index 0000000..4db83c5 --- /dev/null +++ b/lang/main-eo.json @@ -0,0 +1,1527 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Ligilon al kunveno: {{url}}" + }, + "add": "Inviti", + "addContacts": "Inviti viajn kontaktojn", + "contacts": "kontaktoj", + "copyInvite": "Kopii la invitligilon", + "copyLink": "Kopii la kunsidligilon", + "copyStream": "Kopii elsendfluan ligilon", + "countryNotSupported": "Ni ankoraŭ ne subtenas ĉi-tiun landon.", + "countryReminder": "Ĉu vi vokas ekster Usonon? Certiĝu, ke vi komencas per la landokodo!", + "defaultEmail": "Via defaŭlta retadreso", + "disabled": "Vi ne povas inviti homojn.", + "failedToAdd": "Malsukcesis aldono de membroj", + "googleEmail": "Google-retadreso", + "inviteMoreHeader": "Vi estas la sola en la retkunveno", + "inviteMoreMailSubject": "Aliĝi al {{appName}}-retkunveno", + "inviteMorePrompt": "Inviti pli da homoj", + "linkCopied": "Ligilo kopiita al tondujo", + "noResults": "Nenio trovita", + "outlookEmail": "Outlook-retadreso", + "phoneNumbers": "Telefonnumeroj", + "searching": "Serĉado…", + "shareInvite": "Konigi la invitligilon", + "shareLink": "Konigi la kunsidligilon por inviti aliajn homojn", + "shareStream": "Konigi elsendfluan ligilon", + "sipAddresses": "SIP-adresoj", + "telephone": "Telefono: {{number}}", + "title": "Inviti homojn al ĉi-tiu kunveno", + "yahooEmail": "Yahoo-retadreso" + }, + "audioDevices": { + "bluetooth": "Bludento", + "car": "Aŭta sonsistemo", + "headphones": "Kapaŭskultiloj", + "none": "Neniu disponebla sonaparato", + "phone": "Telefono", + "speaker": "Parolanto" + }, + "audioOnly": { + "audioOnly": "Malalta rapideco de retkonekto" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "ekz. 10000000 for 10 Mbps", + "assumedBandwidthBpsWarning": "Pli altaj valoroj povas kaŭzi retajn problemojn.", + "customValue": "Elektita valoro", + "customValueEffect": "Elekti la bps valoro (bitoj po sekundo)", + "leaveEmpty": "lasu malplena", + "leaveEmptyEffect": "por ebligi taksojn", + "possibleValues": "Eblaj valoroj", + "setAssumedBandwidthBps": "Supozita kapacity (bps)", + "title": "Agordoj por kapacito", + "zeroEffect": "malebligi videon" + }, + "breakoutRooms": { + "actions": { + "add": "Aldoni aneksan ĉambron", + "autoAssign": "Asigni aŭtomate al aneksaj ĉambroj", + "close": "Fermi", + "join": "Aliĝi", + "leaveBreakoutRoom": "Eliri la aneksan ĉambron", + "more": "Pli", + "remove": "Forigi", + "rename": "Ŝanĝi nomon de ĉambro", + "renameBreakoutRoom": "Ŝanĝi nomon de aneksa ĉambro", + "sendToBreakoutRoom": "Sendi la partoprenanton al:" + }, + "breakoutList": "Aneksa listo", + "buttonLabel": "Aneksaj ĉambroj", + "defaultName": "Aneksa ĉambro #{{index}}", + "hideParticipantList": "Kaŝi liston de partoprenantoj", + "mainRoom": "Ĉefĉambro", + "notifications": { + "joined": "Alirante al aneksa ĉambro \"{{name}}\"", + "joinedMainRoom": "Alirante al ĉefĉambro", + "joinedTitle": "Aneksaj ĉambroj" + }, + "showParticipantList": "Montri liston de partoprenantoj", + "title": "Aneksaj Ĉambroj" + }, + "calendarSync": { + "addMeetingURL": "Aldoni ligilon al la kunveno", + "confirmAddLink": "Ĉu vi volas aldoni Jitsi-ligilon al ĉi-tiu evento?", + "error": { + "appConfiguration": "Kalendara integrigo ne estas ĝuste agordita.", + "generic": "Okazis eraro. Bonvolu kontroli viajn kalendarajn agordojn aŭ provu aktualigi la kalendaron.", + "notSignedIn": "Okazis eraro dum aŭtentigado por vidi kalendarajn eventojn. Bonvolu kontroli viajn kalendarajn agordojn kaj provi ensaluti denove." + }, + "join": "Aliĝi", + "joinTooltip": "Aliĝi al la kunveno", + "nextMeeting": "sekva kunveno", + "noEvents": "Ne estas planitaj eventoj.", + "ongoingMeeting": "okazanta kunveno", + "permissionButton": "Malfermi agordojn", + "permissionMessage": "Kalendara permeso estas bezonata, por ke vi povu vidi viajn kunvenojn en la aplikaĵo.", + "refresh": "Aktualigi la kalendaron", + "today": "Hodiaŭ" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Selekti sonilon" + }, + "labels": { + "buttonLabel": "Aŭta reĝimo", + "title": "Aŭta reĝimo", + "videoStopped": "Via video haltis" + } + }, + "chat": { + "enter": "Eniri la babilejon", + "error": "Eraro: via mesaĝo “{{originalText}}” ne estis sendita. Kialo: {{error}}", + "fieldPlaceHolder": "Tajpu vian mesaĝon ĉi tien", + "lobbyChatMessageTo": "Mesaĝo de atendejo al {{recipient}}", + "message": "Mesaĝo", + "messageAccessibleTitle": "{{user}} diras", + "messageAccessibleTitleMe": "Mi diras", + "messageTo": "Privata mesaĝo al {{recipient}}", + "messagebox": "Tajpu mesaĝon", + "newMessages": "Novaj mesaĝoj", + "nickname": { + "popover": "Elektu kaŝnomon", + "title": "Elektu kaŝnomon por uzi la babilejon", + "titleWithPolls": "Elektu kaŝnomon por uzi la babilejon" + }, + "noMessagesMessage": "Ankoraŭ ne estas mesaĝoj en la kunveno. Komencu konversacion ĉi tie!", + "privateNotice": "Privata mesaĝo al {{recipient}}", + "sendButton": "Sendi", + "smileysPanel": "Panelo de emoĝioj", + "tabs": { + "chat": "Babilejo", + "polls": "Enketo" + }, + "title": "Babilejo", + "titleWithPolls": "Babilejo", + "you": "vi" + }, + "chromeExtensionBanner": { + "buttonText": "Instali kromprogramon por Chrome", + "buttonTextEdge": "Instali Edge-kromprogramon", + "close": "Fermi", + "dontShowAgain": "Ne plu montru tion al mi", + "installExtensionText": "Instali la kromprogramon por integrado de Google Calendar kaj Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Konektiĝo al via kunveno…" + }, + "connection": { + "ATTACHED": "Kunligita", + "AUTHENTICATING": "Aŭtentigado", + "AUTHFAIL": "Aŭtentigo malsukcesis", + "CONNECTED": "Konektita", + "CONNECTING": "Konektiĝado", + "CONNFAIL": "Konektiĝo malsukcesis", + "DISCONNECTED": "Malkonektita", + "DISCONNECTING": "Malkonektiĝado", + "ERROR": "Eraro", + "FETCH_SESSION_ID": "Ricevado de session-id…", + "GET_SESSION_ID_ERROR": "Eraro dum ricevado de session-id: {{code}}", + "GOT_SESSION_ID": "Ricevado de session-id… farita", + "LOW_BANDWIDTH": "Video por {{displayName}} estis malŝaltita por ŝpari retan trafikon" + }, + "connectionindicator": { + "address": "Adreso:", + "audio_ssrc": "Sona SSRC", + "bandwidth": "Taksata kapacito:", + "bitrate": "Bitrapido:", + "bridgeCount": "Nombro de serviloj: ", + "codecs": "Kodekoj (sono/video):", + "connectedTo": "Konektita al:", + "e2eeVerified": "E2EE Aprobita:", + "framerate": "Bildrapido:", + "less": "Montri malpli", + "localaddress": "Loka adreso:", + "localaddress_plural": "Lokaj adresoj:", + "localport": "Loka pordo:", + "localport_plural": "Lokaj pordoj:", + "maxEnabledResolution": "Maksimuma flukvanto", + "more": "Montri pli", + "no": "ne", + "packetloss": "Perdo de pakaĵoj:", + "participant_id": "ID de partoprenanto", + "quality": { + "good": "Bona", + "inactive": "Neaktiva", + "lost": "Perdita", + "nonoptimal": "Neideala", + "poor": "Malbona" + }, + "remoteaddress": "Fora adreso:", + "remoteaddress_plural": "Foraj adresoj:", + "remoteport": "Fora pordo:", + "remoteport_plural": "Foraj pordoj:", + "resolution": "Distingivo:", + "savelogs": "Konservi protokolojn", + "status": "Konekto:", + "transport": "Transporto:", + "transport_plural": "Transportoj:", + "video_ssrc": "Video-SSRC", + "yes": "jes" + }, + "dateUtils": { + "earlier": "Pli frue", + "today": "Hodiaŭ", + "yesterday": "Hieraŭ" + }, + "deepLinking": { + "appNotInstalled": "Vi bezonas la aplikaĵon {{app}} por aliĝi al ĉi-tiu kunveno per via telefono.", + "description": "Ĉu nenio okazis? Ni provis lanĉi vian kunveno en la komputila aplikaĵo {{app}}. Provu denove aŭ lanĉu ĝin en la reta aplikaĵo {{web}}.", + "descriptionNew": "Ĉu nenio okazis? Ni provis lanĉi vian kunveno en la komputila aplikaĵo {{app}}.

Vi povas provi denove, au uzi la retejon.", + "descriptionWithoutWeb": "Ĉu nenio okazis? Ni provis lanĉi vian kunveno en la komputila aplikaĵo {{app}}.", + "downloadApp": "Elŝuti la aplikaĵon", + "downloadMobileApp": "Elŝuti el aplikaĵvendejo", + "ifDoNotHaveApp": "Se vi ankoraŭ ne havas la aplikaĵon", + "ifHaveApp": "Se vi jam havas la aplikaĵon", + "joinInApp": "Aliĝu al ĉi-tiu kunveno per la aplikaĵo", + "joinInAppNew": "Aliĝu per la aplikaĵo", + "joinInBrowser": "Aliĝu per la retumilo", + "launchMeetingLabel": "Kiel vi volas aliĝu al ĉi-tiu kunveno?", + "launchWebButton": "Lanĉi enrete", + "noMobileApp": "Ĉu vi ne jam havas la aplikaĵon?", + "termsAndConditions": "Daŭrigante, vi konsentas kun niaj kondiĉoj.", + "title": "Enirante vian kunvenon per {{app}}…", + "titleNew": "Enirante vian kunvenon…", + "tryAgainButton": "Provu denove per la komputila aplikaĵo", + "unsupportedBrowser": "Ŝajnas ke vi uzas nesubtenitan retumilon" + }, + "defaultLink": "ekz. {{url}}", + "defaultNickname": "ekz. Johano Verda", + "deviceError": { + "cameraError": "Atingo de via kamerao malsukcesis", + "cameraPermission": "Eraro akirante permeson por kamerao", + "microphoneError": "Atingo de via mikrofono malsukcesis", + "microphonePermission": "Eraro akirante permeson por mikrofono" + }, + "deviceSelection": { + "hid": { + "callControl": "Voko kontrolo", + "connectedDevices": "Ligitaj aparatoj:", + "deleteDevice": "Forgesu aparaton", + "pairDevice": "Kuplu aparaton" + }, + "noPermission": "Permeso ne estis donita", + "previewUnavailable": "Antaŭrigardo ne disponeblas", + "selectADevice": "Elektu aparaton", + "testAudio": "Ludi testan sonon" + }, + "dialIn": { + "screenTitle": "Resumo de alvoko" + }, + "dialOut": { + "statusMessage": "nun estas {{status}}" + }, + "dialog": { + "Back": "Reen", + "Cancel": "Nuligi", + "IamHost": "Mi estas la gastiganto", + "Ok": "Bone", + "Remove": "Forigi", + "Share": "Kundividi", + "Submit": "Sendi", + "WaitForHostMsg": "La kunveno ankoraŭ ne komencis. Se vi estas la gastiganto, bonvolu aŭtentiĝi. Alikaze atendu, ĝis la gastiganto venos.", + "WaitingForHostButton": "Atendante la gastiganton", + "WaitingForHostTitle": "Atendante la gastiganton…", + "Yes": "Jes", + "accessibilityLabel": { + "Cancel": "Nuligi (forlasi dialogujon)", + "Ok": "Okej (konservi ŝanĝojn kaj forlasi dialogujon)", + "close": "Fermi dialogujon", + "liveStreaming": "Tuja elsendfluo", + "sharingTabs": "Kunhavaj Agordoj" + }, + "add": "Aldoni", + "addMeetingNote": "Aldoni komenton pri tiu kunveno", + "addOptionalNote": "Aldoni komenton (fakultativa)", + "allow": "Permesi", + "allowToggleCameraDialog": "Do you allow {{initiatorName}} to toggle your camera facing mode?", + "allowToggleCameraTitle": "Ĉu permesu baskuligi kameraon?", + "alreadySharedVideoMsg": "Alia partoprenanto jam kundividas videon. Ĉi-tiu kunveno permesas nur unu kundividata video samtempe.", + "alreadySharedVideoTitle": "Nur unu video estas permesata samtempe.", + "applicationWindow": "Programa fenestro", + "authenticationRequired": "Bezonas aŭtentokontrolon", + "cameraConstraintFailedError": "Via kamerao ne plenumas kelkajn neprajn postulojn.", + "cameraNotFoundError": "Kamerao ne trovita.", + "cameraNotSendingData": "Via kamerao ne atingeblas al ni. Bonvolu kontroli, ĉu alia programo jam uzas la aparaton, elekti alian de la agorda menuo, aŭ provu ĝisdatigi la programon.", + "cameraNotSendingDataTitle": "Kamerao ne atingeblas", + "cameraPermissionDeniedError": "Vi ne permesis uzi vian kameraon. Vi povas aliĝi al la kunveno, sed aliaj ne povos vin vidi. Vi povas tion ŝanĝi per la kameraa butono en la adresbreto.", + "cameraTimeoutError": "Ne eblis komenci videofonton. Tempolimo forpasis!", + "cameraUnknownError": "Ne eblas uzi la kameraon, pro kialo nekonata.", + "cameraUnsupportedResolutionError": "Via kamerao ne subtenas la bezonatan distingivon.", + "close": "Fermi", + "conferenceDisconnectMsg": "Eble kontrolu vian retkonekton. Rekonekto post {{seconds}} sekundoj…", + "conferenceDisconnectTitle": "Vi malkonektiĝis.", + "conferenceReloadMsg": "Ni penas funkciigi ĉi tion. Rekonekto post {{seconds}} sekundoj…", + "conferenceReloadTitle": "Bedaŭrinde io fuŝiĝis.", + "confirm": "Konfirmi", + "confirmNo": "Ne", + "confirmYes": "Jes", + "connectError": "Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno.", + "connectErrorWithMsg": "Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno: {{msg}}", + "connecting": "Konektiĝo", + "contactSupport": "Kontakti helpon", + "copied": "Kopiita", + "copy": "Kopii", + "dismiss": "Formeti", + "displayNameRequired": "Saluton! Kio estas via nomo?", + "done": "Finita", + "e2eeDescription": "

Tutvoja ĉifrado estas nuntempe EKSPERIMENTA. Bonvolu vidi ĉi tiun artikolon por detaloj.


Konsciu, ke ŝalti tutvojan ĉifradon efektive malebligos servilflankajn servojn kiel ekzemple: registradon, tujan elsendfluon kaj telefonan partoprenon. Konsciu ankaŭ, ke la kunveno funkcios nur por homoj, kiuj uzas retumilon subtenantan enmetatajn fluojn.

", + "e2eeDisabledDueToMaxModeDescription": "Ne eblas ŝalti tutvoja ĉifrado pro granda kvanto da partoprenantoj en la prelego", + "e2eeLabel": "Ŝlosilo", + "e2eeWarning": "

ATENTIGO: Ne ĉiuj partoprenantoj en ĉi-tiu kunveno ŝajnas havi subtenon de tutvoja ĉifrado. Se vi ŝaltos ĝin, ili ne povos vidi aŭ aŭdi vin.

", + "e2eeWillDisableDueToMaxModeDescription": "AVERTO: Tutvoja ĉifrado estos aŭtomate malŝaltita", + "embedMeeting": "Enkorpigi kunveno", + "enterDisplayName": "Bonvolu entajpi vian nomon ĉi-tie", + "error": "Eraro", + "gracefulShutdown": "Nia servo nun estas eksterreta pro prizorgado. Bonvolu reprovi poste.", + "grantModeratorDialog": "Ĉu vi certe donas moderatorajn rajtojn al {{participantName}}?", + "grantModeratorTitle": "Koncedi moderatorajn rajtojn", + "hide": "Kaŝu", + "hideShareAudioHelper": "Ne plu montru tiu dialogujo", + "incorrectPassword": "Malĝusta pasvorto aŭ uzantnomo", + "incorrectRoomLockPassword": "Malĝusta pasvorto", + "internalError": "Oj! La jena eraro okazis: {{error}}", + "internalErrorTitle": "Interna eraro", + "kickMessage": "Vi povas kontakti {{participantDisplayName}} por pli da detaloj.", + "kickParticipantButton": "Forĵeti", + "kickParticipantDialog": "Ĉu vi certe volas forĵeti ĉi-tiun partoprenanton?", + "kickParticipantTitle": "Forĵeti ĉi-tiun partoprenanton?", + "kickTitle": "Aj! {{participantDisplayName}} forĵetis vin el la kunveno", + "linkMeeting": "Ligi la prelegon", + "linkMeetingTitle": "Ligi la prelegon al Salesforce", + "liveStreaming": "Tuja elsendfluo", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Neebla dum reĝistrado", + "localUserControls": "Kontroloj de la loka uzanto", + "lockMessage": "Ŝloso de la kunveno malsukcesis.", + "lockRoom": "Aldoni $t(lockRoomPasswordUppercase) al la kunveno.", + "lockTitle": "Ŝloso malsukcesis", + "login": "Ensaluti", + "loginQuestion": "Ĉi vi certe volas ensaluti kaj enrigi la kunvenon?", + "logoutQuestion": "Ĉu vi certe volas adiaŭi kaj fini la kunvenon?", + "logoutTitle": "Elsaluti", + "maxUsersLimitReached": "Maksimuma nombro de partoprenantoj atingita. La kunveno estas plena. Bonvolu kontakti la posedanton de la kunveno aŭ reprovi poste!", + "maxUsersLimitReachedTitle": "Maksimuma nombro de partoprenantoj atingita", + "micConstraintFailedError": "Via mikrofono ne observas kelkajn neprajn limigojn.", + "micNotFoundError": "Mikrofono ne trovita.", + "micNotSendingData": "Iru al la agordoj de via komputilo por malsilentigi vian mikrofonon kaj alĝustigi ĝian laŭtecon", + "micNotSendingDataTitle": "Via mikrofono estas silentigita en viaj sistemagordoj", + "micPermissionDeniedError": "Vi ne permesis uzi vian mikrofonon. Vi povas aliĝi al la kunveno, sed aliaj ne povos vin aŭdi. Vi povas tion ŝanĝi per la kameraa butono en la adresbreto.", + "micTimeoutError": "Neeblis komenciĝi la sonfonton. Tempolimo de konekto!", + "micUnknownError": "Ne eblas uzi mikrofonon pro kialo nekonata.", + "moderationAudioLabel": "Permesi al partoprenantoj malsilentigi sin mem", + "moderationVideoLabel": "Permesi al partoprenantoj starti sian videon", + "muteEveryoneDialog": "Ĉu vi certe volas silentigi ĉiujn? Vi ne povos malsilentigi ilin, sed ili mem povos malsilentigi sin iam ajn.", + "muteEveryoneDialogModerationOn": "Partoprenantoj povas peti permeson paroli iam ajn", + "muteEveryoneElseDialog": "Silentiginte lin aŭ ŝin, vi ne povos malsilentigi la uzanton, sed li aŭ ŝi mem povos malsilentigi sin iam ajn.", + "muteEveryoneElseTitle": "Silentigi ĉiujn krom {{whom}}?", + "muteEveryoneElsesVideoDialog": "Se vi malŝaltas la kameraon de uzanto, vi ne povos ŝalti ĝin denove, sed la uzanto povos ŝalti ĝin mem iam ajn.", + "muteEveryoneElsesVideoTitle": "Malŝalti la kamerao de ĉiuj krom {{whom}}?", + "muteEveryoneSelf": "vin", + "muteEveryoneStartMuted": "Ĉiuj estas dekomence silentigitaj ekde nun", + "muteEveryoneTitle": "Silentigi ĉiujn?", + "muteEveryonesVideoDialog": "Partoprenantoj povas ŝalti sian kameraon iam ajn.", + "muteEveryonesVideoDialogModerationOn": "Partoprenantoj povas peti permeson ŝalti sian kameraon iam ajn", + "muteEveryonesVideoDialogOk": "Malŝalti", + "muteEveryonesVideoTitle": "Malŝaltu la kameraon de ĉiuj?", + "muteParticipantBody": "Vi ne povos lin aŭ ŝin malsilentigi, sed li aŭ ŝi povas malsilentigi sin iam ajn.", + "muteParticipantButton": "Silentigi", + "muteParticipantsVideoBody": "Vi ne povos ŝalti la kameraon denove, sed ili povos ŝalti ĝin mem iam ajn.", + "muteParticipantsVideoBodyModerationOn": "Nek vi nek ili povos ŝalti la kameraon denove.", + "muteParticipantsVideoButton": "Malŝaltu la kameraon", + "muteParticipantsVideoDialog": "Ĉu vi certe volas malŝalti la kameraon de tiu-ĉi uzanto? Vi ne povos ŝalti ĝin denove, sed ili povos ŝalti ĝin mem iam ajn.", + "muteParticipantsVideoDialogModerationOn": "Ĉu vi certe volas malŝalti la kameraon de tiu-ĉi uzanto? Nek vi nek ili povos ŝalti ĝin denove.", + "muteParticipantsVideoTitle": "Malŝaltu la kameraon de tiu-ĉi uzanto?", + "noDropboxToken": "Nevalidaj Dropbox-ĵetonoj", + "password": "Pasvorto", + "passwordLabel": "La kunvenon ŝlosis partoprenanto. Bonvolu entajpi $t(lockRoomPassword) por aliĝi.", + "passwordNotSupported": "Agordo de kunvena pasvorto ne estas subtenata", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) ne subtenata", + "passwordRequired": "$t(lockRoomPasswordUppercase) deviga", + "permissionCameraRequiredError": "Permeso uzi kameraon estas bezonata por partopreni prelegojn kun video. Bonvolu doni tiun-ĉi permeson en Agordoj.", + "permissionErrorTitle": "Permeso deviga", + "permissionMicRequiredError": "Permeso uzi microfono estas bezonata por partopreni prelegojn kun aŭdaĵo. Bonvolu doni tiun-ĉi permeson en Agordoj.", + "readMore": "Pli", + "recentlyUsedObjects": "Viaj lastatempe uzitaj objektoj", + "recording": "Registrado", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Neebla dum vivelsendo estas aktiva", + "rejoinNow": "Realiĝi nun", + "remoteControlAllowedMessage": "{{user}} akceptis vian teleregan peton!", + "remoteControlDeniedMessage": "{{user}} rifuzis vian teleregan peton!", + "remoteControlErrorMessage": "Eraro petante teleregajn permesojn de {{user}}!", + "remoteControlRequestMessage": "Ĉu vi permesos al {{user}} teleregi vian komputilon?", + "remoteControlShareScreenWarning": "Sciu, ke se vi premos “Permesi”, vi kunhavigos vian ekranon!", + "remoteControlStopMessage": "Telerega seanco finita!", + "remoteControlTitle": "Labortabla telerego", + "remoteUserControls": "Foraj uzantregiloj", + "removePassword": "Forigi $t(lockRoomPassword)", + "removeSharedVideoMsg": "Ĉu vi vere volas forigi vian kunhavatan videon?", + "removeSharedVideoTitle": "Forigi kunhavatan videon", + "renameBreakoutRoomLabel": "Nomo de aneksa ĉambro", + "renameBreakoutRoomTitle": "Ŝanĝi nomon de aneksa ĉambro", + "reservationError": "Rezervosistema eraro", + "reservationErrorMsg": "Kodo de eraro: {{code}}, mesaĝo: {{msg}}", + "retry": "Reprovi", + "screenSharingAudio": "Kundividi sonon", + "screenSharingFailed": "Oj! Io misokazis, ni ne povis starti ekrandividado!", + "screenSharingFailedTitle": "Ekrandividado malsukcesis!", + "screenSharingPermissionDeniedError": "Oj! Io misokazis pri la permesoj al via ekrandivida kromprogramo. Bonvolu reŝargi kaj reprovi.", + "searchInSalesforce": "Serĉu en Salesforce", + "searchResults": "Serĉorezultoj({{count}})", + "searchResultsDetailsError": "Io misokazis dum ricevo de datumoj de posedanto ", + "searchResultsError": "Io misokazis dum ricevo de datumoj.", + "searchResultsNotFound": "Serĉorezultoj ne trovitaj.", + "searchResultsTryAgain": "Provu uzi aliajn serĉvortojn.", + "sendPrivateMessage": "Vi antaŭ nelonge ricevis privatan mesaĝon. Ĉu vi celis respondi al ĝi private, aŭ ĉu vi volas sendi vian mesaĝon al la grupo?", + "sendPrivateMessageCancel": "Sendi al la grupo", + "sendPrivateMessageOk": "Sendi private", + "sendPrivateMessageTitle": "Sendi private?", + "serviceUnavailable": "Servo ne disponeblas", + "sessTerminated": "Voko finita", + "sessTerminatedReason": "La kunveno estas finigita", + "sessionRestarted": "Voko restartigis pro problemo kun la konecto.", + "shareAudio": "Daŭrigi", + "shareAudioTitle": "Kiel kunhavigi sonon", + "shareAudioWarningD1": "Ĉesigu la ekrandividadon antaŭ kunhavigi vian sonon.", + "shareAudioWarningD2": "Kundividu la ekranon denove kaj elektu \"kunhavigi sonon\" ", + "shareAudioWarningH1": "Se vi volas kunhavigi nur sonon:", + "shareAudioWarningTitle": "Ĉesigu la ekrandividadon antaŭ kunhavigi la sonon.", + "shareMediaWarningGenericH2": "Se vi volas kunhavigi vian ekranon kaj sonon", + "shareScreenWarningD1": "Ĉesigu kunhavigi la sonon antaŭ starti la ekrandividadon.", + "shareScreenWarningD2": "Ĉesigu kunhavigi la sonon, startu la ekrandividado, kaj kontrolu la \"kunhavigi sonon\" opcion.", + "shareScreenWarningH1": "Se vi volas kunhavigi nur la ekranon:", + "shareScreenWarningTitle": "Ĉesigu kunhavigi la sonon antaŭ starti la ekrandividadon.", + "shareVideoLinkError": "Bonvolu doni ĝustan ligilon", + "shareVideoTitle": "Kundividi videon", + "shareYourScreen": "Kundividi vian ekranon", + "shareYourScreenDisabled": "Kundividado de ekrano malŝaltita.", + "sharedVideoDialogError": "Eraro: Nevalida URL", + "sharedVideoLinkPlaceholder": "YouTube-ligilo aŭ rekta ligilo al la video", + "show": "Montri", + "start": "Startigi", + "startLiveStreaming": "Fini tujan elsendfluon", + "startRecording": "Fini registradon", + "startRemoteControlErrorMessage": "Eraro okazis dum komenco de la telerega seanco!", + "stopLiveStreaming": "Fini tujan elsendfluon", + "stopRecording": "Fini registradon", + "stopRecordingWarning": "Ĉu vi certe volas fini la registradon?", + "stopStreamingWarning": "Ĉu vi certe volas fini la tujan elsendfluon?", + "streamKey": "Ŝlosilo de tuja elsendfluo", + "thankYou": "Dankon ke vi uzas {{appName}}!", + "token": "ĵetono", + "tokenAuthFailed": "Pardonu, vi ne rajtas aliĝi al ĉi-tiu voko.", + "tokenAuthFailedReason": { + "audInvalid": "Nevalida `aud` valoro. Ĝi estu `jitsi`.", + "contextNotFound": "La `context` objekto mankas de la portaĵo.", + "expInvalid": "Nevalida `exp` valoro.", + "featureInvalid": "Nevalida funkcio: {{feature}}, plej verŝajne, ne jam realigita.", + "featureValueInvalid": "Nevalida valoro for funkcio: {{feature}}.", + "featuresNotFound": "La `features` objekto mankas de la portaĵo.", + "headerNotFound": "Mankante la kapon.", + "issInvalid": "Nevalida `iss` valoro. It should be `chat`.", + "kidMismatch": "Ŝlosila ID (kid) ne kongruas.", + "kidNotFound": "Mankanta Ŝlosila ID (kid).", + "nbfFuture": "La `nbf` valoro estas en la estonteco.", + "nbfInvalid": "Nevalida `nbf` valoro.", + "payloadNotFound": "Mankas la portaĵon.", + "tokenExpired": "Ĵetono eksvalidiĝis." + }, + "tokenAuthFailedTitle": "Aŭtentigo malsukcesis", + "tokenAuthFailedWithReasons": "Vi ne havas permeson aliĝi al ĉi-tiu kunveno. Eblaj kialoj: {{reason}}", + "tokenAuthUnsupported": "Ĵetona retejeo ne estas subtenata", + "transcribing": "transskribado", + "unlockRoom": "Forigi la $t(lockRoomPassword)n de la ĉambro", + "user": "Uzanto", + "userIdentifier": "Uzantidentigilo", + "userPassword": "Uzantopasvorto", + "verifyParticipantConfirm": "Ili kongruas", + "verifyParticipantDismiss": "Ili ne kongruas", + "verifyParticipantQuestion": "EKSPERIMENTA: Demandu al {{participantName}} se ili vidas la saman enhavon, laŭ la sama ordo.", + "verifyParticipantTitle": "Identkontrolo", + "videoLink": "Video-ligilo", + "viewUpgradeOptions": "Montru opcioj por plibonigaj eldonoj", + "viewUpgradeOptionsContent": "Se vi volas aliron al superaj funkcioj, kiel registrado, transskribo, RTMP vivelsendo & pli, vi plibonigu vian subskribon.", + "viewUpgradeOptionsTitle": "Vi malkovris superan funkcion!", + "whiteboardLimitContent": "Bedaŭre, la limo de samtempaj blanktabulaj uzantoj estas atingita.", + "whiteboardLimitReference": "Por pli da informo, bonvole vizitu", + "whiteboardLimitReferenceUrl": "Nia retejo", + "whiteboardLimitTitle": "Blanktabula patroprenanta limo atingita", + "yourEntireScreen": "Via tuta ekrano" + }, + "documentSharing": { + "title": "Kundividita dokumento" + }, + "e2ee": { + "labelToolTip": "Ĉiuj partoprenantoj en ĉi-tiu kunveno ŝaltis tutvojan ĉifradon" + }, + "embedMeeting": { + "title": "Enigi ĉi-tiun renkontiĝon" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Via takso" + }, + "average": "Mezbona", + "bad": "Malbona", + "detailsLabel": "Diru al ni pli pri ĝi.", + "good": "Bona", + "rateExperience": "Bonvolu priskribi vian sperton.", + "star": "Stelo", + "veryBad": "Tre malbona", + "veryGood": "Tre bona" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Videaj bildetoj" + } + }, + "giphy": { + "noResults": "Rezultoj ne trovitaj :(", + "search": "Serĉi en GIPHY" + }, + "incomingCall": { + "answer": "Respondi", + "audioCallTitle": "Alvenanta voko", + "decline": "Formeti", + "productLabel": "el Jitsi Meet", + "videoCallTitle": "Alvenanta vida voko" + }, + "info": { + "accessibilityLabel": "Montri informojn", + "addPassword": "Aldoni $t(lockRoomPassword)n", + "cancelPassword": "Nuligi $t(lockRoomPassword)n", + "conferenceURL": "Ligilo:", + "copyNumber": "Kopii nombron", + "country": "Lando", + "dialANumber": "Por aliĝi al via kunveno, voku unu el tiuj numeroj kaj poste entajpu la ciferkodon.", + "dialInConferenceID": "Ciferkodo:", + "dialInNotSupported": "Bedaŭrinde pertelefona vokaro ne estas nuntempe subtenata.", + "dialInNumber": "Voki la numeron:", + "dialInSummaryError": "Eraro dum venigo de telefonadaj informoj. Bonvolu reprovi poste.", + "dialInTollFree": "Senkosta numero", + "genericError": "Oj, io fuŝiĝis.", + "inviteLiveStream": "Por vidi la tujan elsendfluon, alklaku ĉi-tiun ligilon: {{url}}", + "invitePhone": "Por aliĝi per telefono anstataŭe, tuŝu tion: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Ĉu vi serĉas alian telefonnumeron?\nVidi la telefonnumerojn de la kunveno: {{url}}\n\n\nSe vi vokas ankaŭ per ĉambra telefono, vi povas aliĝi sen sono: {{silentUrl}}", + "inviteSipEndpoint": "Por aliĝi per la SIP adreso, entajpu tio: {{sipUri}}.", + "inviteTextiOSInviteUrl": "Alklaku tiu-ĉi ligilon pour aliĝi: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Se vi aliĝas per ĉambra telefono, uzu ĉi-tiun ligon por aliĝi sen konektiĝi al audio:{{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} invitas vin al kunveno.", + "inviteTextiOSPhone": "Por aliĝi telefone, uzu ĉi-tiun numeron: {{number}},,{{conferenceID}}#. Se vi serĉas alian numeron, jen la plena listo: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Vi estas invitita al kunveno.", + "inviteURLFirstPartPersonal": "{{name}} invitas vin al kunveno.\n", + "inviteURLSecondPart": "\nAliĝi al la kunveno:\n{{url}}\n", + "label": "Informoj pri la kunveno", + "liveStreamURL": "Tuja elsendfluo:", + "moreNumbers": "Pli da numeroj", + "noNumbers": "Neniu numero por voki.", + "noPassword": "Neniu", + "noRoom": "Neniu ĉambro estis specifita por la voko.", + "numbers": "Telefonnumeroj", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Vi atingis la limon de via subskribo.", + "sip": "SIP-adreso", + "sipAudioOnly": "SIP nur-aŭdia adreso", + "title": "Kundividi", + "tooltip": "Kundividi ligilon kaj telefonnumeron por ĉi-tiu kunveno", + "upgradeOptions": "Bonvolu kontroli la ĝisdatigajn opciojn." + }, + "inlineDialogFailure": { + "msg": "Ni iom stumblis.", + "retry": "Provi denove", + "support": "Subteno", + "supportMsg": "Se tio daŭre okazas, kontaktu" + }, + "inviteDialog": { + "alertText": "La invito de kelkaj partoprenantoj malsukcesis.", + "header": "Inviti", + "searchCallOnlyPlaceholder": "Entajpu telefonnumeron", + "searchPeopleOnlyPlaceholder": "Serĉi partoprenantojn", + "searchPlaceholder": "Partoprenanto aŭ telefonnumero", + "send": "Sendi" + }, + "jitsiHome": "{{logo}} Emblemo, ligilo al ĉefpaĝo", + "keyboardShortcuts": { + "focusLocal": "Fokusigi vian propran videon", + "focusRemote": "Fokusigi la videon de aliulo", + "fullScreen": "Ŝalti / malŝalti tutekranan reĝimon", + "giphyMenu": "Ŝalku GIPHY-menuon", + "keyboardShortcuts": "Fulmoklavoj", + "localRecording": "Montri aŭ kaŝi la ilojn por loka registrado", + "mute": "Silentigi aŭ malsilentigi vian mikrofonon", + "pushToTalk": "Premi por paroli", + "raiseHand": "Levi aŭ mallevi manon", + "showSpeakerStats": "Montri statistikon pri parolintoj", + "toggleChat": "Malfermi aŭ fermi la babilon", + "toggleFilmstrip": "Montri aŭ kaŝi videajn bildetojn", + "toggleParticipantsPane": "Montru aŭ kaŝu la panelon de partoprenantoj", + "toggleScreensharing": "Komuti inter kameraa kaj ekrana vidado", + "toggleShortcuts": "Montri aŭ kaŝi la fulmklavojn", + "videoMute": "Ŝalti aŭ malŝalti vian kameraon" + }, + "largeVideo": { + "screenIsShared": "Vi nun dividas vian ekranon", + "showMeWhatImSharing": "Montru al mi, kion mi dividas" + }, + "liveStreaming": { + "busy": "Ni penas liberigi tujajn elsendilojn. Bonvolu reprovi post kelkaj minutoj.", + "busyTitle": "Ĉiuj elsendiloj estas nun okupataj", + "changeSignIn": "Ŝalti inter kontoj.", + "choose": "Elekti tujan elsendfluon", + "chooseCTA": "Elektu eblon por tuja elsendfluo. Vi nun estas ensalutinta kiel {{email}}.", + "enterStreamKey": "Enmetu ĉi tien vian ŝlosilon de tuja YouTube-elsendfluo.", + "error": "Tuja elsendfluo malsukcesis. Bonvolu provi denove.", + "errorAPI": "Eraro okazis dum alirado al viaj YouTube-dissendadoj. Bonvolu provi reensaluti.", + "errorLiveStreamNotEnabled": "Tuja elsendado ne estas ŝaltita ĉe {{email}}. Bonvolu ŝalti tujan elsendado aŭ ensaluti per konto kun ŝaltita tuja elsendado.", + "expandedOff": "La tuja elsendfluo ĉesis", + "expandedOn": "La kunveno estas nun elsendata al YouTube.", + "expandedPending": "La tuja elsendfluo nun startas…", + "failedToStart": "Tuja elsendfluo malsukcesis komenci", + "getStreamKeyManually": "Ni ne povis trovi tujajn elsendfluojn. Provu trovi vian ŝlosilon de tuja YouTube-elsendfluo.", + "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", + "onBy": "{{name}} komencis la tujan elsendfluon", + "pending": "Startigo de tuja elsendfluo…", + "serviceName": "Servoj de tuja elsendado", + "sessionAlreadyActive": "Oni jam registras aŭ vivelsendas ĉi-tiun seancon.", + "signIn": "Ensaluti kun Google", + "signInCTA": "Ensalutu aŭ entajpu vian ŝlosilon tuja elsendado el YouTube.", + "signOut": "Elsaluti", + "signedInAs": "Vi nun estas ensalutinta kiel:", + "start": "Komenci tujan elsendfluon", + "streamIdHelp": "Kio estas tio?", + "title": "Tuja elsendfluo", + "unavailableTitle": "Tuja elsendfluo ne disponeblas", + "youtubeTerms": "Uzkondiĉoj de YouTube" + }, + "lobby": { + "backToKnockModeButton": "Petu por aliĝi", + "chat": "Babilejo", + "dialogTitle": "Atendeja reĝimo", + "disableDialogContent": "Atendeja reĝimo nun estas aktiva. Tiu funkcio certigas ke nedezirataj partoprenantoj ne povas aliĝi al via renkontiĝo. Ĉu vi volas malŝalti ĝin?", + "disableDialogSubmit": "Malŝaltu", + "emailField": "Entajpu vian retpoŝtadreson", + "enableDialogPasswordField": "Agordi pasvorton (nedeviga)", + "enableDialogSubmit": "Ŝaltu", + "enableDialogText": "Atendeja reĝimo ebligas al vi protekti vian kunvenon, permesante al homoj eniri nur post formala aprobo de moderanto.", + "enterPasswordButton": "Entajpu pasvorton de la kunveno", + "enterPasswordTitle": "Entajpu pasvorton por aliĝi al la renkontiĝo", + "errorMissingPassword": "Bonvolu entajpi la pasvorton de la renkontiĝo", + "invalidPassword": "Nevalida pasvorti", + "joinRejectedMessage": "Via aliĝo-peto estis malakceptita de moderanto.", + "joinRejectedTitle": "Aliĝo-peto malakceptita", + "joinTitle": "Aliĝu al kunvenon", + "joinWithPasswordMessage": "Provante aliĝi kun pasvorto, bonvolu atendi…", + "joiningMessage": "Vi aliĝos al la kunveno tuj kiam iu akceptos vian peton", + "joiningTitle": "Petante aliĝi al kunveno…", + "joiningWithPasswordTitle": "Aliĝo kun pasvorto…", + "knockButton": "Petu aliĝi", + "knockTitle": "Iu volas aliĝi al la kunveno", + "knockingParticipantList": "Listo de uzantoj, kiuj volas aliĝi", + "lobbyChatStartedNotification": "{{moderator}} startis atendejan babilejon kun {{attendee}}.", + "lobbyChatStartedTitle": "{{moderator}} startis atendejan babilejon kun vi.", + "lobbyClosed": "La atendeja babilejo estas fermita.", + "nameField": "Entajpu vian nomon", + "notificationLobbyAccessDenied": "{{targetParticipantName}} estis malakceptita aliĝi de {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} estis akceptita aliĝi de {{originParticipantName}}", + "notificationLobbyDisabled": "{{originParticipantName}} malŝaltis atendejon", + "notificationLobbyEnabled": "{{originParticipantName}} ŝaltis atendejon", + "notificationTitle": "Atendejo", + "passwordJoinButton": "Aliĝi", + "title": "Atendejo", + "toggleLabel": "Ŝaltu atendejon" + }, + "localRecording": { + "clientState": { + "off": "Malŝaltita", + "on": "Ŝaltita", + "unknown": "Nekonata" + }, + "dialogTitle": "Iloj por loka registrado", + "duration": "Daŭro", + "durationNA": "neaplikebla", + "encoding": "Kodprezento", + "label": "REG", + "labelToolTip": "Loka registrado estas aktiva", + "localRecording": "Loka registrado", + "me": "Mi", + "messages": { + "engaged": "Loka registrado estas aktiva.", + "finished": "Registrado de la sesio {{token}} estas finita. Bonvolu sendi la registritan dosieron al la kunvenestro.", + "finishedModerator": "Registrado de la sesio {{token}} estas finita. La registraĵo de la loka trako estis konservita. Bonvolu peti aliajn partoprenantojn, ke ili sendu sian registraĵon.", + "notModerator": "Vi ne estas la kunvenestro. Vi ne povas komenci aŭ fini lokan registradon." + }, + "moderator": "Kunvenestro", + "no": "Ne", + "participant": "Partoprenantoj", + "participantStats": "Statistikoj pri la partoprenantoj", + "selectTabTitle": "🎥 Bonvolu elekti ĉi-tiun langeton por registrado", + "sessionToken": "Sesia ĵetono", + "start": "Komenci registradon", + "stop": "Fini registradon", + "stopping": "Finiganta registradon", + "wait": "Bonvole atendu dum la registro estas konservata", + "yes": "Jes" + }, + "lockRoomPassword": "Pasvorto", + "lockRoomPasswordUppercase": "Pasvorto", + "lonelyMeetingExperience": { + "button": "Inviti aliajn", + "youAreAlone": "Vi estas la sola en la kunveno" + }, + "me": "mi", + "notify": { + "OldElectronAPPTitle": "Sekurec-vundeblo!", + "allowAction": "Permesu", + "allowedUnmute": "Vi povas malsilentigi vian mikrofonon, ŝalti vian kameraon aŭ dividi vian ekranon.", + "audioUnmuteBlockedDescription": "Microfono-malsilentiga operacion estis provizore blokita pro sistemaj limoj.", + "audioUnmuteBlockedTitle": "Microfono-malsilentigo blokita!", + "chatMessages": "Babilmesaĝoj", + "connectedOneMember": "{{name}} aliĝis al la kunveno", + "connectedThreePlusMembers": "{{name}} kaj {{count}} aliaj aliĝis al la kunveno", + "connectedTwoMembers": "{{first}} kaj {{second}} aliĝis al la kunveno", + "dataChannelClosed": "Videa kvalito estas malboniĝita.", + "dataChannelClosedDescription": "La ponta kanalo estas malkonektita, do videa kvalito restas ĉe la plej malalta grado.", + "disabledIframe": "Enkorpigado estas nur por demonstri, do ĉi-tiu kunveno malkonektos post {{timeout}} minutoj.", + "disabledIframeSecondary": "Enkorpigado de {{domain}} estas nur por demonstri, do ĉi-tiu kunveno malkonektos post {{timeout}} minutoj.", + "disconnected": "malkonektita", + "displayNotifications": "Montru sciigojn por", + "dontRemindMe": "Ne sciigu min", + "focus": "Kunvena atento", + "focusFail": "{{component}} ne estas disponebla – reprovu post {{ms}} sekundoj", + "gifsMenu": "GIPHY", + "groupTitle": "Sciigoj", + "hostAskedUnmute": "La kunvenestro ŝatus, ke vi parolu", + "invitedOneMember": "{{name}} estis invitita", + "invitedThreePlusMembers": "{{name}} kaj {{count}} aliaj estis invititaj", + "invitedTwoMembers": "{{first}} kaj {{second}} estis invititaj", + "joinMeeting": "Aliĝi", + "kickParticipant": "{{kicked}} estis forĵetita de {{kicker}}", + "leftOneMember": "{{name}} foriris el la kunveno", + "leftThreePlusMembers": "{{name}} kaj multaj aliaj foriris el la kunveno", + "leftTwoMembers": "{{first}} kaj {{second}} foriris el la kunveno", + "linkToSalesforce": "Ligilo al Salesforce", + "linkToSalesforceDescription": "Vi povas ligi la kunvenan resumon al Salesforce objekto.", + "linkToSalesforceError": "Malsukcesis ligi la kunvenon al Salesforces", + "linkToSalesforceKey": "Ligi ĉi-tiun kunvenon", + "linkToSalesforceProgress": "Ligante la kunvenon al Salesforce…", + "linkToSalesforceSuccess": "La kunveno estas ligita al Salesforce.", + "localRecordingStarted": "{{name}} startigis lokan registradon.", + "localRecordingStopped": "{{name}} haltigis lokan registradon.", + "me": "Mi", + "moderationInEffectCSDescription": "Bonvolu levi la manon se vi volas kundividi vian ekranon.", + "moderationInEffectCSTitle": "La kunvenestro blokis ekrandividadon.", + "moderationInEffectDescription": "Bonvolu levi la manon se vi volas paroli.", + "moderationInEffectTitle": "La kunvenestro silentigi vian mikrofonon", + "moderationInEffectVideoDescription": "Bonvolu levi la manon se vi volas startigi vian kameraon.", + "moderationInEffectVideoTitle": "La kunvenestro blokis vian kamerao", + "moderationRequestFromModerator": "La gastiganto ŝatus, ke vi malsilentiĝu", + "moderationRequestFromParticipant": "Volas paroli", + "moderationStartedTitle": "Gvidado komenciĝis", + "moderationStoppedTitle": "Gvidado ĉesis", + "moderationToggleDescription": "de {{participantDisplayName}}", + "moderator": "Kunvenestraj rajtoj donitaj!", + "muted": "Vi komencis la interparolon silente.", + "mutedRemotelyDescription": "Vi ĉiam povas malsilentiĝi, kiam vi estas preta paroli. Resilentiĝu, kiam vi finis, post eviti bruon en la kunveno.", + "mutedRemotelyTitle": "Vi estis silentigita de {{participantDisplayName}}!", + "mutedTitle": "Vi estas silentigita!", + "newDeviceAction": "Uzi", + "newDeviceAudioTitle": "Nova aparato detektita", + "newDeviceCameraTitle": "Nova kamerao detektita", + "noiseSuppressionDesktopAudioDescription": "Neeblas aktivi la nuligon de bruo dum dividado de labortabla audio. Bonvolu malŝalti ĝin kaj provi denove. ", + "noiseSuppressionFailedTitle": "Malsukcesis startigi la nuligon de bruo", + "noiseSuppressionStereoDescription": "Forigo de bruo por stereosono ankoraŭ ne estas subtenata.", + "oldElectronClientDescription1": "Ŝajnas, ke vi uzas malnovan version de la kliento de Jitsi Meet, kiu havas konatajn sekurec-vundeblojn. Bonvolu ĝisdatigi al nia ", + "oldElectronClientDescription2": "plej nova versio", + "oldElectronClientDescription3": " nun!", + "participantWantsToJoin": "Volas aliĝi al la kunveno", + "participantsWantToJoin": "Volas aliĝi al la kunveno", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) forigita de alia partoprenanto", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) difinita de alia partoprenanto", + "raiseHandAction": "Levu la manon", + "raisedHand": "{{name}} ŝatus paroli.", + "raisedHands": "{{participantName}} kaj {{raisedHands}} aliaj homoj", + "reactionSounds": "Malebligi sonojn", + "reactionSoundsForAll": "Malebligi sonojn por ĉiuj", + "screenShareNoAudio": "La elektobutono “Kundividi sonon” ne estis elektita en la fenestro de elekto de ektrano.", + "screenShareNoAudioTitle": "Ne eblis kunhavigi sisteman audio!", + "screenSharingAudioOnlyDescription": "Notu bonvole, ke kunhavi la ekranon uzas plie la kapaciton.", + "screenSharingAudioOnlyTitle": "\"Plej Alta Rendimento\"-reĝimo", + "selfViewTitle": "Vi ĉiam povas malkaŝi la memvidon en agordoj", + "somebody": "Iu", + "startSilentDescription": "Aliĝu denove al la kunveno por ŝalti sonon", + "startSilentTitle": "Vi envenis sen sona eligo!", + "suboptimalBrowserWarning": "N timas, ke vi ne havos bonegan sperton ĉi tie. Ni klopodas plibonigi tion, sed dume bonvolu provi uzi unu el la plene subtenataj retumiloj.", + "suboptimalExperienceTitle": "Atentigo pri la retumilo", + "unmute": "Malsilentigi", + "videoMutedRemotelyDescription": "Vi ĉiam povas ŝalti ĝin denove.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} malŝaltis vian videaĵon", + "videoUnmuteBlockedDescription": "Malsilentigo de la kamerao kaj funkciado de kunhava labortablo estis provizore blokitaj pro sistemaj limoj.", + "videoUnmuteBlockedTitle": "Malsilentigo de la kamerao kaj kunhavigo de la ekrano estas blokitaj!", + "viewLobby": "Vidu atendejon", + "waitingParticipants": "{{waitingParticipants}} homo(j)", + "whiteboardLimitDescription": "Bonvole konservu vian progreson, ĉar la uzantlimo baldaŭ estos atingita, kaj la blanktabulo fermiĝos.", + "whiteboardLimitTitle": "Blanktabula uzado" + }, + "participantsPane": { + "actions": { + "admit": "Akcepti", + "admitAll": "Akcepti ĉion", + "allow": "Al la partoprenantoj permesi:", + "allowVideo": "Permesi kameraon", + "askUnmute": "Peti malsilentigi", + "audioModeration": "Malsilentigi sin mem", + "blockEveryoneMicCamera": "Bloki la kameraon kaj la mikrofonon de ĉiuj", + "breakoutRooms": "Aneksaj ĉambroj", + "invite": "Inviti iun", + "moreModerationActions": "Pli da moderigaj opcioj", + "moreModerationControls": "Pli da moderigaj regiloj", + "moreParticipantOptions": "Pli da partoprenantaj opcioj", + "mute": "Silentigi", + "muteAll": "Silentigi ĉiujn", + "muteEveryoneElse": "Silentigi ĉiujn aliajn", + "reject": "Malakceptu", + "stopEveryonesVideo": "Ĉesigu ĉies videaĵon", + "stopVideo": "Ĉesigu la videaĵon", + "unblockEveryoneMicCamera": "Malbloku ĉies mikrofonon kaj kameraon", + "videoModeration": "Komencigu la videaĵon" + }, + "close": "Fermu", + "headings": { + "lobby": "Atendejo ({{count}})", + "participantsList": "Partoprenantoj en la kunveno ({{count}})", + "visitorRequests": " (petoj {{count}})", + "visitors": "Vizitantaj {{count}}", + "waitingLobby": "En la atendejo ({{count}})" + }, + "search": "Serĉu partoprenantojn", + "title": "Partoprenantoj" + }, + "passwordDigitsOnly": "Ĝis {{number}} ciferoj", + "passwordSetRemotely": "agordita de alia partoprenanto", + "pinParticipant": "{{participantName}} - Pingli", + "pinnedParticipant": "La partoprenanto estas fiksita", + "polls": { + "answer": { + "skip": "Ne respondu", + "submit": "Sendu" + }, + "by": "de {{ name }}", + "create": { + "addOption": "Aldoni opcion", + "answerPlaceholder": "Opcio {{index}}", + "cancel": "Nuligi", + "create": "Krei enketon", + "pollOption": "Enketa opcio {{index}}", + "pollQuestion": "Enketa demando", + "questionPlaceholder": "Demandu", + "removeOption": "Forigi opcion", + "send": "Sendu" + }, + "errors": { + "notUniqueOption": "Ebloj devas esti unikaj" + }, + "notification": { + "description": "Malfermu la enketan langeton por voĉdoni", + "title": "Oni aldonis novan enketon en la kunveno" + }, + "results": { + "changeVote": "Ŝanĝu voĉdonon", + "empty": "Ankoraŭ ne estas enketo en la kunveno. Komencu enketon ĉi-tie!", + "hideDetailedResults": "Kaŝu detalojn", + "showDetailedResults": "Malkaŝu detalojn", + "vote": "Voĉdonu" + } + }, + "poweredby": "pelata de", + "prejoin": { + "audioAndVideoError": "Eraro de videaĵo kaj aŭdaĵo:", + "audioDeviceProblem": "Estas problemo kun via sonludilo", + "audioOnlyError": "Eraro kun la aŭdaĵo:", + "audioTrackError": "Ne eblis krei sontrakon.", + "callMe": "Voku min.", + "callMeAtNumber": "Voku min al ĉi-tiu numero:", + "calling": "Voko…", + "configuringDevices": "Agordo de la aparatoj…", + "connectedWithAudioQ": "Ĉu vi estas konektita kun aŭdaĵo?", + "connection": { + "good": "Via interreta konekto ŝajnas bone!", + "nonOptimal": "Via interreta konekto ne estas optimuma", + "poor": "Vi havas malbonan interretan konekton" + }, + "connectionDetails": { + "audioClipping": "Verŝajne via sono estos tranĉita.", + "audioHighQuality": "Verŝajne via sono estos bonega.", + "audioLowNoVideo": "Verŝajne via sono estos malbona kaj ne estos videaĵo.", + "goodQuality": "Bonege! Via media kvalito estos tre bona.", + "noMediaConnectivity": "Ni ne sukcesis starigi aŭdvidan konekton por ĉi-tiu testo. Tion kutime kaŭzas fajroŝirmilo aŭ NAT.", + "noVideo": "Veŝajne via videaĵo estos malbonega.", + "undetectable": "Se vi ankoraŭ ne povas voki per retumilo, ni rekomendas, ke vi certiĝu, ke viaj laŭtparoliloj, mikrofono kaj kamerao estas ĝuste agorditaj; ke vi donis rajtojn al via retumilo uzi viajn mikrofonon kaj kameraon; ke via retumilo estas ĝisdata. Se vi ankoraŭ ne povas voki, vi devus kontakti la programiston de la retejo.", + "veryPoorConnection": "Verŝajne la kvalito de via voko estos malbonega.", + "videoFreezing": "Verŝajne via videaĵo frostiĝos, nigriĝos, kaj estos bilderigita.", + "videoHighQuality": "Verŝajne via videaĵo estos bonega.", + "videoLowQuality": "Verŝajne via videaĵo estos malaltdistingiva kaj havos malbonan bildrapidon.", + "videoTearing": "Verŝajne via videaĵo estos bilderigita aŭ enhavos vidajn artefaktojn." + }, + "copyAndShare": "Kopii & kunhavigi ligilon de la renkontiĝo", + "dialInMeeting": "Eniru la renkontiĝon per voko", + "dialInPin": "Eniru la kunvenon per voko kaj entajpu PIN kodon:", + "dialing": "Vokante", + "doNotShow": "Ne montru tiun-ĉi ekranon denove", + "errorDialOut": "Ne eblis telefoni.", + "errorDialOutDisconnected": "Ne eblis telefoni. Malkonektita", + "errorDialOutFailed": "Ne eblis telefoni. Voko malsukcesis.", + "errorDialOutStatus": "Eraro dum akiro de la stato de la voko", + "errorMissingName": "Bonvolu entajpi vian nomon por aliĝi al la renkontiĝo", + "errorNoPermissions": "Vi ebligu mikrofonon kaj kameraon aliron", + "errorStatusCode": "Eraro dum voko, statkodo: {{status}}", + "errorValidation": "Validigo de la numero malsukcesis", + "iWantToDialIn": "Mi volas alvoki", + "initiated": "Voko komencita", + "joinAudioByPhone": "Aliĝu kun telefona mikrofono", + "joinMeeting": "Aliĝu al la kunveno", + "joinMeetingInLowBandwidthMode": "Aliĝu en malaltkapacita modo", + "joinWithoutAudio": "Aliĝu sen mikrofono", + "keyboardShortcuts": "Ŝaltu fulmoklavojn", + "linkCopied": "Ligilo kopiita al tondujo", + "lookGood": "Via mikrofono funkcias ĝuste", + "or": "Aŭ", + "premeeting": "Antaŭkunveno", + "proceedAnyway": "Daŭrigi", + "screenSharingError": "Eraro kun la ekrandividado:", + "startWithPhone": "Komencu kun la telefona sono", + "unsafeRoomConsent": "Akceptu la riskojn, kaj daŭrigi", + "videoOnlyError": "Eraro kun la videaĵo:", + "videoTrackError": "Ne eblis krei videotrakon.", + "viewAllNumbers": "Vidu ĉiujn numerojn" + }, + "presenceStatus": { + "busy": "Okupata", + "calling": "Vokado…", + "connected": "Konektita", + "connecting": "Konektiĝo", + "connecting2": "Konektiĝo*…", + "disconnected": "Malkonektita", + "expired": "Eksvalidiĝinta", + "ignored": "Ignorata", + "initializingCall": "Startigo de la voko…", + "invited": "Invitita", + "rejected": "Malakceptita", + "ringing": "Sonorado…" + }, + "profile": { + "avatar": "Profilbildo", + "setDisplayNameLabel": "Agordi vian videblan nomon", + "setEmailInput": "Enigu retpoŝtadreson", + "setEmailLabel": "Retpoŝtadreso ligita al Gravatar", + "title": "Profilo" + }, + "raisedHand": "Ŝatus paroli", + "raisedHandsLabel": "Nombro da levitaj manoj", + "record": { + "already": { + "linked": "La kunveno jam estas ligita al tiu-ĉi Salesforce-objekto." + }, + "type": { + "account": "Konto", + "contact": "Kontakto", + "lead": "Interesiĝanto", + "opportunity": "Ŝanco", + "owner": "Posedanto" + } + }, + "recording": { + "authDropboxText": "Alŝuti al Dropbox", + "availableSpace": "Disponebla spaco: {{spaceLeft}} MB (proksimume {{duration}} minutoj da registraĵo)", + "beta": "BETA", + "busy": "Ni penas liberigi registrilojn. Bonvolu reprovi post kelkaj minutoj.", + "busyTitle": "Ĉiuj registriloj estas nun okupataj", + "copyLink": "Kopii Ligilon", + "error": "Registrado malsukcesis. Bonvolu provi denove.", + "errorFetchingLink": "Eraro venigante la registradan ligilon.", + "expandedOff": "Registrado finita", + "expandedOn": "La kunveno estas nun registrata.", + "expandedPending": "Registrado komenciĝas…", + "failedToStart": "Registrado malsukcesis komenci", + "fileSharingdescription": "Kundividi registraĵon kun aliaj partoprenantoj", + "highlight": "Ĉefaĵo", + "highlightMoment": "Emfazu momento", + "highlightMomentDisabled": "Vi povos emfazi momentojn kiam la registrado komenciĝas", + "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.", + "localRecordingNoVideo": "Videaĵo ne estas registrita.", + "localRecordingStartWarning": "Bonvolu certigi, ke vi ĉesigas la registradon antaŭ ol eliri la renkontiĝon por konservi ĝin.", + "localRecordingStartWarningTitle": "Ĉesigu la registradon por konservi ĝin.", + "localRecordingVideoStop": "Ĉesigi vian videaĵon ankaŭ ĉesos la lokan registradon. Ĉu vi certas, ke vi volas daŭrigi?", + "localRecordingVideoWarning": "Por registri vian videon, ŝaltu la kameraon antaŭ vi komencas la registradon.", + "localRecordingWarning": "Certigu, ke vi elektas la nunan langeton por uzi la ĝustajn filmetojn kaj sonojn.", + "loggedIn": "Ensalutinta kiel {{userName}}", + "noMicPermission": "Mikrofono ne povis esti uzata. Bonvole donu permeson uzi la mikrofonon.", + "noStreams": "Neniu aŭdio aŭ videofluo detektita.", + "off": "Registrado finita", + "offBy": "{{name}} ĉesigis la registradon", + "on": "Registranta", + "onBy": "{{name}} komencis la registradon", + "onlyRecordSelf": "Registri nur miajn aŭd- kaj videofluojn", + "pending": "Prepariĝo por registrado de la kunveno…", + "rec": "REG", + "recordAudioAndVideo": "Konservu kaj aŭdion kaj videon", + "recordTranscription": "Konservu transskribon", + "saveLocalRecording": "Konservu registraddosieron loke (Beta)", + "serviceDescription": "Via registraĵo estos konservita de la registra servo", + "serviceDescriptionCloud": "Nubo registrado", + "serviceDescriptionCloudInfo": "Registritaj renkontiĝoj estas aŭtomate forigitaj 24h post sia tempo de registrado.", + "serviceName": "Registra servo", + "sessionAlreadyActive": "Ĉi tiu sesio jam estas registrita aŭ vivelsendita.", + "showAdvancedOptions": "Detalaj agordoj", + "signIn": "Ensaluti", + "signOut": "Elsaluti", + "surfaceError": "Bonvolu elekti la nunan langeton.", + "title": "Registrado", + "unavailable": "Oj! La {{serviceName}} estas nun nedisponebla. Ni laboras por solvi la aferon. Bonvolu reprovi poste.", + "unavailableTitle": "Registrado ne disponeblas", + "uploadToCloud": "Alŝutu en la Nubo" + }, + "screenshareDisplayName": "Ekrano de {{name}}", + "sectionList": { + "pullToRefresh": "Tiru por aktualigi" + }, + "security": { + "about": "Vi povas aldoni $t(lockRoomPassword) al via renkontiĝo. Partoprenantoj devos doni la $t(lockRoomPassword) antaŭ ol ili rajtas aliĝi al la renkontiĝo.", + "aboutReadOnly": "Moderaciuloj povas aldoni $t(lockRoomPassword) al la renkontiĝo. Partoprenantoj devos doni la $t(lockRoomPassword) antaŭ ol ili rajtas aliĝi al la renkontiĝo.", + "insecureRoomNameWarningNative": "Ĉi-tiu ĉambro ne estas sekura. Nevolataj partoprenantoj povas aliĝi vian kunvenvon.", + "insecureRoomNameWarningWeb": "Ĉi-tiu ĉambro ne estas sekura. Nevolataj partoprenantoj povas aliĝi vian kunvenvon. {{recommendAction}} Lerni pli pri sekuri vian kunvenon ĉi-tie.", + "title": "Sekurecaj Opcioj", + "unsafeRoomActions": { + "meeting": "Konsideru sekurigi vian kunvenon per la sekureca butono.", + "prejoin": "Konsideru uzi pli unikan kunvenan nomon.", + "welcome": "Konsideru uzi pli unikan kunvenan nomon, aŭ elekti unu el la sugestataj." + } + }, + "settings": { + "audio": "Aŭdio", + "buttonLabel": "Agordoj", + "calendar": { + "about": "La integrigo de kalendaro {{appName}} estas uzata por sekure aliri vian kalendaron, por ke ĝi povu legi planitajn eventojn.", + "disconnect": "Malkonekti", + "microsoftSignIn": "Ensaluti per Microsoft", + "signedIn": "Alirado al kalendaraj eventoj por {{email}}. Klaku la buton “Malkonekti” sube por ĉesigi aliradon al kalendaraj eventoj.", + "title": "Kalendaro" + }, + "desktopShareFramerate": "Bildrapido de kundividado de ekrano", + "desktopShareHighFpsWarning": "Pli alta bildrapido por kundividado de ekrano povas influi vian bendlarĝo. Vi devas restartigi kundividadon de ekrano por ke la novaj agordoj aplikiĝu.", + "desktopShareWarning": "Vi devas rekomenci la ekrankundividadon por ke la novaj agordoj ekvalidu.", + "devices": "Aparatoj", + "followMe": "Ĉiuj sekvas min", + "framesPerSecond": "kadroj sekunde", + "incomingMessage": "Envena mesaĝo", + "language": "Lingvo", + "loggedIn": "Ensalutinta kiels {{name}}", + "maxStageParticipants": "Maksimuma nombro da partoprenantoj, kiuj povas esti alpinglitaj al la ĉefa scenejo", + "microphones": "Mikrofonoj", + "moderator": "Kunvenestro", + "moderatorOptions": "Kunvenestaj agordoj", + "more": "Pli", + "name": "Nomo", + "noDevice": "Neniu", + "notifications": "Sciigoj", + "participantJoined": "Partoprenanto aliĝis", + "participantKnocking": "Partoprenanto eniris atendejon", + "participantLeft": "Partoprenanto foriris", + "playSounds": "Ludu sonon", + "reactions": "Renkontiĝaj reagoj", + "sameAsSystem": "Same kiel sistemo ({{label}})", + "selectAudioOutput": "Sona eligo", + "selectCamera": "Kamerao", + "selectMic": "Mikrofono", + "selfView": "Memrigardo", + "shortcuts": "Ŝparvojoj", + "speakers": "Laŭparoliloj", + "startAudioMuted": "Ĉiuj komenciĝas silentaj", + "startReactionsMuted": "Silentigu la reagajn sonojn por ĉiujn", + "startVideoMuted": "Ĉiuj komenciĝas kaŝitaj", + "talkWhileMuted": "Parolu dum silentigita", + "title": "Agordoj", + "video": "Video" + }, + "settingsView": { + "advanced": "Altnivela", + "alertCancel": "Nuligi", + "alertOk": "Bone", + "alertTitle": "Atentigo", + "alertURLText": "La entajpita URL de servilo estas nevalida", + "apply": "Apliki", + "buildInfoSection": "Informoj pri la versio", + "conferenceSection": "Konferenco", + "disableCallIntegration": "Malŝalti denaskan integrigon de vokoj", + "disableCrashReporting": "Malŝalti kraŝraporton", + "disableCrashReportingWarning": "Ĉu vi certas, ke vi volas malŝalti kraŝraportadon? La agordo estos aplikata post kiam vi restartigos la apon.", + "disableP2P": "Malŝalti la reĝimon de samtavola komunikado", + "displayName": "Uzantnomo", + "displayNamePlaceholderText": "Eg: Petro Ekzemplulo", + "email": "Retadreso", + "emailPlaceholderText": "retadreso@ekzemplo.com", + "gavatarMessage": "La profilbildo de via Gravatar-konto estos uzata se via retadreso ligas al Gravatar-konto", + "goTo": "Iru al", + "header": "Agordoj", + "help": "Helpo", + "links": "Ligiloj", + "privacy": "Privateco", + "profileSection": "Profilo", + "sdkVersion": "SDK versio", + "serverURL": "URL de servilo", + "showAdvanced": "Montri altnivelajn agordojn", + "startCarModeInLowBandwidthMode": "Komencu aŭtoreĝimon en malaltkapacita reĝimo", + "startWithAudioMuted": "Komenci kun malŝaltita sono", + "startWithVideoMuted": "Komenci kun malŝaltita video", + "terms": "Kondiĉoj", + "version": "Versio" + }, + "share": { + "dialInfoText": "\n\n=====\n\nĈu vi volas simple voki per via telefono?\n\n{{defaultDialInNumber}}Alklaku ĉi-tiun ligilon por vidi la telefonnumerojn por ĉi-tiu kunveno\n{{dialInfoPageUrl}}", + "mainText": "Alklaku ĉi-tiun ligilon por aliĝi al la kunveno:\n{{roomUrl}}" + }, + "speaker": "Laŭtparolilo", + "speakerStats": { + "angry": "Kolera", + "disgusted": "Naŭzita", + "displayEmotions": "Montru emociojn", + "fearful": "Timema", + "happy": "Feliĉa", + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Nomo", + "neutral": "Neŭtrala", + "sad": "Malĝoja", + "search": "Serĉu", + "searchHint": "Serĉu partoprenantojn", + "seconds": "{{count}}s", + "speakerStats": "Statistikoj pri la parolanto", + "speakerTime": "Tempo de parolado", + "surprised": "Surprizita" + }, + "startupoverlay": { + "genericTitle": "La renkontiĝo bezonas uzi vian mikrofonon kaj kameraon.", + "policyText": " ", + "title": "{{app}} bezonas viajn mikrofonon kaj kameraon." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Realiĝi", + "text": "Premu la butonon Realiĝi por rekonektiĝi.", + "title": "Via vidvoko estis interrompita, ĉar la komputilo ekdormis." + }, + "termsView": { + "title": "Kondicioj" + }, + "toggleTopPanelLabel": "Baskuligi supran panelon", + "toolbar": { + "Settings": "Agordoj", + "accessibilityLabel": { + "Settings": "Baskuligi agordojn", + "audioOnly": "Baskuligi nur-sonan reĝimon", + "audioRoute": "Elekti la sonaparaton", + "boo": "Hui", + "breakoutRooms": "Aneksaj ĉambroj", + "callQuality": "Agordi vidkvaliton", + "carmode": "Aŭta reĝimo", + "cc": "Baskuligi subtekstojn", + "chat": "Baskuligi tujmesaĝilan fenestron", + "clap": "Aplaŭdi", + "closeChat": "Eliri babilejon", + "closeMoreActions": "Fermi agan dialogujon", + "closeParticipantsPane": "Fermi fenestro de partoprenantoj", + "collapse": "Maletendi", + "document": "Baskuligi kundividitan dokumenton", + "documentClose": "Fermi kunhavatan dokumenton", + "documentOpen": "Malfermi kunhavatan dokumenton", + "download": "Elŝuti niajn aplikaĵojn", + "embedMeeting": "Enkorpigita renkontiĝo", + "endConference": "Finu kunvenon por ĉiuj", + "enterFullScreen": "Vidi per plena ekrano", + "enterTileView": "Vidi per kahela reĝimo", + "exitFullScreen": "Eliri de plena ekrano", + "exitTileView": "Eliri de kahela reĝimo", + "expand": "Etendi", + "feedback": "Lasi recenzon", + "fullScreen": "Baskuligi tutekranan reĝimon", + "giphy": "Baskuligi GIPHY menuon", + "grantModerator": "Donu Rajtojn de Moderatoro", + "hangup": "Forlasi la vokon", + "heading": "Ilobreto", + "help": "Helpo", + "hideWhiteboard": "Kaŝi blanktabulon", + "invite": "Inviti homojn", + "kick": "Forĵeti partoprenanton", + "laugh": "Ridi", + "leaveConference": "Forlasi la renkontiĝon", + "like": "Ŝati", + "linkToSalesforce": "Ligilo al Salesforce", + "lobbyButton": "Ŝaltu/Malŝaltu atendejan reĝimon", + "localRecording": "Baskuligi lokajn registrilojn", + "lockRoom": "Baskuligi pasvorton por la kunveno", + "lowerHand": "Mallevi la manon", + "moreActions": "Baskuligi la menuon kun pli da agoj", + "moreActionsMenu": "Menuo kun pli da agoj", + "moreOptions": "Montri pli da ebloj", + "mute": "Silentigi/malsilentigi", + "muteEveryone": "Silentigi ĉiujn", + "muteEveryoneElse": "Silentigu ĉiujn aliajn", + "muteEveryoneElsesVideoStream": "Ĉesigu la videon de ĉiuj aliaj", + "muteEveryonesVideoStream": "Ĉesigu ĉies videon", + "muteGUMPending": "Konektanta vian mikrofonon", + "noiseSuppression": "Bruo nuligo", + "openChat": "Malfermi babilejon", + "participants": "Partoprenantoj", + "pip": "Baskuligi la reĝimon “bildo en bildo”", + "privateMessage": "Sendi privatan mesaĝon", + "profile": "Redakti vian profilon", + "raiseHand": "Baskuligi manlevon", + "reactions": "Reagoj", + "reactionsMenu": "Malfermu / Fermu reagojn menuon", + "recording": "Baskuligi registradon", + "remoteMute": "Silentigi partoprenanton", + "remoteVideoMute": "Malŝaltu la kameraon de partoprenanto", + "security": "Sekurecaj opcioj", + "selectBackground": "Elektu fonon", + "selfView": "Baskuligu memvidon", + "shareRoom": "Inviti iun", + "shareYourScreen": "Baskuligi kundividadon de ekrano", + "shareaudio": "Kunhavi la sonon", + "sharedvideo": "Baskuligi kundividadon de videoj", + "shortcuts": "Baskuligi fulmklavojn", + "show": "Montri sur scenejo", + "showWhiteboard": "Montri blanktabulon", + "silence": "Silento", + "speakerStats": "Baskuligi statistikojn pri parolanto", + "stopScreenSharing": "Halti kunhavi vian ekranon", + "stopSharedVideo": "Halti kunhavi vian videon", + "surprised": "Surprizita", + "tileView": "Baskuligi kahelan vidon", + "toggleCamera": "Baskuligi kameraon", + "toggleFilmstrip": "Baskuligi filmbendon", + "unmute": "Malsilentigi", + "videoblur": "Baskuligi malnetigon de video", + "videomute": "Silentigi/malsilentigi videon", + "videomuteGUMPending": "Konektanta vian kameraon", + "videounmute": "Ŝalti kameraon" + }, + "addPeople": "Aldoni homojn al via voko", + "audioOnlyOff": "Malŝalti malalt-trafikan reĝimon", + "audioOnlyOn": "Ŝalti malalt-trafikan reĝimon", + "audioRoute": "Elekti la sonaparaton", + "audioSettings": "Aŭdagordoj", + "authenticate": "Aŭtentigi", + "boo": "Hui", + "callQuality": "Agordi kvaliton de la voko", + "chat": "Malfermi / Fermi babilejon", + "clap": "Aplaŭdi", + "closeChat": "Malfermi babilejon", + "closeParticipantsPane": "Malfermu partoprenantan dialogujon", + "closeReactionsMenu": "Fermu la menuon de reagoj", + "disableNoiseSuppression": "Malŝaltu bruonuligon", + "disableReactionSounds": "Vi povas malŝalti reagsonojn por ĉi-tiu renkontiĝo", + "documentClose": "Fermi komunan dokumenton", + "documentOpen": "Malfermi komunan dokumenton", + "download": "Elŝuti niajn aplikaĵojn", + "e2ee": "Tutvoja ĉifrado", + "embedMeeting": "Enkorpigita renkontiĝo", + "enableNoiseSuppression": "Ebligi bruan redukton", + "endConference": "Finu la renkontiĝon por ĉiuj", + "enterFullScreen": "Vidi tutekrane", + "enterTileView": "Vidi kahele", + "exitFullScreen": "Eliri el tutekrana reĝimo", + "exitTileView": "Eliri el kahela vido", + "feedback": "Lasi recenzon", + "giphy": "Baskuligu GIPHY menuon", + "hangup": "Foriri", + "help": "Helpo", + "hideWhiteboard": "Kaŝu blanktabulon", + "invite": "Inviti homojn", + "joinBreakoutRoom": "Eniri ĉambreton", + "laugh": "Ridi", + "leaveBreakoutRoom": "Eliri ĉambreton", + "leaveConference": "Forlasi renkontiĝon", + "like": "Ŝati", + "linkToSalesforce": "Ligi al Salesforce", + "lobbyButtonDisable": "Malŝalti atendejan reĝimon", + "lobbyButtonEnable": "Ŝalti atendejan reĝimon", + "login": "Ensaluti", + "logout": "Elsaluti", + "lowerYourHand": "Malaltigi vian manon", + "moreActions": "Pli da agoj", + "moreOptions": "Pli da ebloj", + "mute": "Silentigi/Malsilentigi", + "muteEveryone": "Silentigi ĉiujn", + "muteEveryonesVideo": "Malŝalti ĉies kameraon", + "muteGUMPending": "Liganta vian mikrofonon", + "noAudioSignalDesc": "Se vi ne intence silentigis ĝin per viaj sistemaj agordoj aŭ fizike, konsideru transŝalti al alia aparato.", + "noAudioSignalDescSuggestion": "Se vi ne intence silentigis ĝin per viaj sistemaj agordoj aŭ fizike, konsideru transŝalti al la proponata aparato.", + "noAudioSignalDialInDesc": "Vi povas ankaŭ telefoni per:", + "noAudioSignalDialInLinkDesc": "Telefonnumeroj:", + "noAudioSignalTitle": "Ne estas signalo el via mikrofono!", + "noiseSuppression": "Bruonuligo", + "noisyAudioInputDesc": "Ŝajnas, ke via mikrofono faras bruon, bonvolu pripensi silentigi ĝin aŭ ŝanĝi aparaton.", + "noisyAudioInputTitle": "Via mikrofono ŝajnas brua!", + "openChat": "Malfermi la babilejon", + "openReactionsMenu": "Malermu la menuon de reagoj", + "participants": "Partoprenantoj", + "pip": "Eniri reĝimon “bildo en bildo”", + "privateMessage": "Sendi privatan mesaĝon", + "profile": "Redakti vian profilon", + "raiseHand": "Levi / Mallevi vian manon", + "raiseYourHand": "Levi vian manon", + "reactionBoo": "Sendi reagon “hui”", + "reactionClap": "Sendi reagon “aplaŭdi”", + "reactionLaugh": "Sendi reagon “ridi”", + "reactionLike": "Sendi reagon “ŝati”", + "reactionSilence": "Sendi reagon “silento”", + "reactionSurprised": "Sendi reagon “surprizita”", + "reactions": "Reagoj", + "security": "Sekurecaj opcioj", + "selectBackground": "Elekti fonon", + "shareRoom": "Inviti iun", + "shareaudio": "Kunhavigi sonon", + "sharedvideo": "Kundividi videon", + "shortcuts": "Vidi fulmklavojn", + "showWhiteboard": "Montri blanktabulon", + "silence": "Silento", + "speakerStats": "Statistikoj pri parolintoj", + "startScreenSharing": "Komenci dividadon de ekrano", + "startSubtitles": "Komenci subtekstojn", + "stopAudioSharing": "Ĉesu aŭddividon", + "stopScreenSharing": "Ĉesigi dividadon de ekrano", + "stopSharedVideo": "Haltigi videon", + "stopSubtitles": "Ĉesigi subtekstojn", + "surprised": "Surprizita", + "talkWhileMutedPopup": "Ĉu vi provas paroli? Vi estas silentigita.", + "tileViewToggle": "Baskuligi titolan vidon", + "toggleCamera": "Baskuligi kameraon", + "unmute": "Malsilentigi mikrofonon", + "videoSettings": "Video-agordoj", + "videomute": "Ŝalti / Malŝalti kameraon", + "videomuteGUMPending": "Konektanta via kamerao", + "videounmute": "Ŝalti kameraon" + }, + "transcribing": { + "ccButtonTooltip": "Komenci / Ĉesigi subtekstojn", + "error": "Transskribado malsukcesis. Bonvolu provi denove.", + "expandedLabel": "Transskribado estas ŝaltita", + "failedToStart": "Transskribado ne sukcesis komenciĝi", + "labelToolTip": "La kunveno estas transskribata", + "off": "Transskribado ĉesis", + "pending": "Prepariĝo por transskribado de la kunveno…", + "sourceLanguageDesc": "La kunvenlingvo nun estas agordita al {{sourceLanguage}}.
Vi povas ŝanĝi ĝin de ", + "sourceLanguageHere": "ĉi tie", + "start": "Komenci montri subtekstojn", + "stop": "Ĉesi montri subtekstojn", + "subtitles": "Subtekstoj", + "subtitlesOff": "Malŝaltitaj", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Malpingli", + "userMedia": { + "grantPermissions": "Bonvolu doni la permeson uzi viajn kameraon kaj mikrofonon." + }, + "videoSIPGW": { + "busy": "Ni klopodas liberigi rimedojn. Bonvolu reprovi post kelkaj minutoj.", + "busyTitle": "La ĉambra servo estas nun okupata", + "errorAlreadyInvited": "{{displayName}} jam estis invitita", + "errorInvite": "La kunveno ankoraŭ ne estas starigita. Bonvolu reprovi poste.", + "errorInviteFailed": "Ni klopodas solvi la problemon. Bonvolu reprovi poste.", + "errorInviteFailedTitle": "Invito de {{displayName}} malsukcesis", + "errorInviteTitle": "Eraro dum invito", + "pending": "{{displayName}} estis invitita" + }, + "videoStatus": { + "adjustFor": "Ĝustigi por:", + "audioOnly": "SON", + "audioOnlyExpanded": "Vi estas en malalt-trafika reĝimo. En ĉi-tiu reĝimo vi ricevos nur sonon kaj kundividatajn ekranojn.", + "bestPerformance": " Plej bona rendimento", + "callQuality": "Videa kvalito", + "hd": "AD", + "hdTooltip": "La video estas en altkvalita distingivo", + "highDefinition": "Altkvalita distingivo", + "highestQuality": "Plej alta kvalito", + "labelTooiltipNoVideo": "Neniu video", + "labelTooltipAudioOnly": "Malalt-trafika reĝimo ŝaltita", + "ld": "MD", + "ldTooltip": "La video estas en malaltkvalita distingivo", + "lowDefinition": "Malaltkvalita distingivo", + "performanceSettings": "Agordoj de rendimento", + "recording": "Registranta", + "sd": "ND", + "sdTooltip": "La video estas en normalkvalita distingivo", + "standardDefinition": "Normalkvalita distingivo", + "streaming": "Elsendfluanta" + }, + "videothumbnail": { + "connectionInfo": "Informoj pri Konekto", + "domute": "Silentigi", + "domuteOthers": "Silentigi ĉiujn aliajn", + "domuteVideo": "Malŝalti kameraon", + "domuteVideoOfOthers": "Malŝalti kameraon por ĉiuj aliaj", + "flip": "Renversi", + "grantModerator": "Donu Rajtojn de Moderatoro", + "hideSelfView": "Kaŝi memvidon", + "kick": "Forĵeti", + "mirrorVideo": "Speguli mian videon", + "moderator": "Kunvenestro", + "mute": "Partoprenanto silentigita", + "muted": "Silentigita", + "pinToStage": "Alpingli al scenejo", + "remoteControl": "Komenci/Fini deforan regadon", + "screenSharing": "Partoprenanto kundividas sian ekranon", + "show": "Montri sur scenejo", + "showSelfView": "Montri memvidon", + "unpinFromStage": "Malalpingli", + "verify": "Aprobi partoprenanton", + "videoMuted": "Kamera malŝaltita", + "videomute": "La partoprenanto malŝaltis la kameraon" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Nuna fono: {{background}}", + "selectBackground": "Elekti fonon" + }, + "addBackground": "Aldoni fonon", + "apply": "Apliki", + "backgroundEffectError": "Malsukcesis apliki fonan efikon.", + "blur": "Malklarigi", + "deleteImage": "Forigi bildon", + "desktopShare": "Kundividado de labortablo", + "desktopShareError": "Ne eblis krei Kundividadon de labortablo", + "image1": "Plaĝo", + "image2": "Blanka neŭtrala muro", + "image3": "Blanka malplena ĉambro", + "image4": "Nigra planka lampo", + "image5": "Montaro", + "image6": "Arbaro", + "image7": "Sunleviĝo", + "none": "Neniu", + "pleaseWait": "Bonvolu atendi…", + "removeBackground": "Forigi fonon", + "slightBlur": "Malklareta", + "title": "Virtualaj fonoj", + "uploadedImage": "Alŝutita bildo {{index}}", + "webAssemblyWarning": "WebAssembly ne subtenata", + "webAssemblyWarningDescription": "WebAssembly malŝaltita aŭ ne subtenata de ĉi-tiu retumilo" + }, + "visitors": { + "chatIndicator": "(vizitanto)", + "labelTooltip": "Nombro da vizitantoj: {{count}}", + "notification": { + "description": "Levu la manon por partopreni", + "title": "Vi estas vizitanto en la kunveno" + } + }, + "volumeSlider": "Laŭteca ŝovilo", + "welcomepage": { + "accessibilityLabel": { + "join": "Tuŝu por aliĝi", + "roomname": "Entajpu nomon de ĉambro" + }, + "addMeetingName": "Aldonu nomon de renkontiĝo", + "appDescription": "Ek, videobabilu kun la tuta teamo. Fakte, invitu ĉiujn, kiujn vi konas. {{app}} estas plene ĉifrita kaj 100%-e malfermfonta vidkonferenca programo, kiun vi povas uzi tuttage, ĉiutage, senpage, sen devi krei konton.", + "audioVideoSwitch": { + "audio": "Voĉo", + "video": "Video" + }, + "calendar": "Kalendaro", + "connectCalendarButton": "Konektu vian kalendaron", + "connectCalendarText": "Konektu vian kalendaron por vidi ĉiujn viajn kunvenojn en {{app}}. Plie, vi povas aldoni viajn {{provider}}-kunvenojn al via kalendaro kaj lanĉi ilin per unu klako.", + "enterRoomTitle": "Komencu novan kunvenon", + "getHelp": "Ricevi helpo", + "go": "EK", + "goSmall": "EK", + "headerSubtitle": "Sekuraj kaj altkvalitaj renkontiĝoj", + "headerTitle": "Jitsi Meet", + "info": "Informoj", + "jitsiOnMobile": "Jitsi ĉe poŝtelefono - elŝutu niajn apojn kaj komencu renkontiĝon de ie ajn", + "join": "KREI / ALIĜI", + "logo": { + "calendar": "Kalendara", + "desktopPreviewThumbnail": "Miniaturo de kundividado de ekrano", + "googleLogo": "Logotipo de Google", + "logoDeepLinking": "Logotipo de Jitsi Meet", + "microsoftLogo": "Logotipo de Microsoft", + "policyLogo": "Logotipo de regularo" + }, + "meetingsAccessibilityLabel": "Kunveno", + "mobileDownLoadLinkAndroid": "Elŝutu apon por Android", + "mobileDownLoadLinkFDroid": "Elŝutu apon por F-Droid", + "mobileDownLoadLinkIos": "Elŝutu apon por iOS", + "moderatedMessage": "Aŭ rezervu kunvenon URL anticipe kie vi estas la sola kunvenestro.", + "privacy": "Privateco", + "recentList": "Lastaj", + "recentListDelete": "Forigi", + "recentListEmpty": "Via listo de lastaj kunvenoj estas malplena. Babilu kun via teamo kaj vi trovos ĉi tie ĉiujn viajn lastajn kunvenojn.", + "recentMeetings": "Viaj lastatempaj kunvenoj", + "reducedUIText": "Bonvenon all {{app}}!", + "roomNameAllowedChars": "La nomo de la kunveno ne povas enhavi la jenajn signojn: ?, &, :, ', \", %, #.", + "roomname": "Entajpu nomon de ĉambro", + "roomnameHint": "Entajpu la nomon aŭ URL de la ĉambro, al kiu vi volas aliĝi. Vi povas elpensi nomon, nur sciigu ĝin al la aliaj homoj, kiujn vi renkontos, por ke ili entajpu la saman nomon.", + "sendFeedback": "Sendi retrokuplon", + "settings": "Agordoj", + "startMeeting": "Komenci renkontiĝon", + "terms": "Uzkondiĉoj", + "title": "Sekuraj, multfunkciaj kaj plene senpagaj video-konferencoj", + "upcomingMeetings": "Via estontecaj kunveno" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Blanktabulo" + } + } +} diff --git a/lang/main-es.json b/lang/main-es.json new file mode 100644 index 0000000..431632c --- /dev/null +++ b/lang/main-es.json @@ -0,0 +1,1468 @@ +{ + "addPeople": { + "add": "Invitar", + "addContacts": "Invitar a sus contactos", + "contacts": "contactos", + "copyInvite": "Copiar la invitación a la reunión", + "copyLink": "Copiar el enlace de la reunión", + "copyStream": "Copiar el enlace de la transmisión en vivo", + "countryNotSupported": "Aún no contamos con soporte a este destino.", + "countryReminder": "¿Llamando fuera de los Estados Unidos? ¡Por favor, asegúrese de empezar con el código de país!", + "defaultEmail": "Dirección de correo por defecto", + "disabled": "No puede invitar a otras personas.", + "failedToAdd": "Error al agregar participantes", + "googleEmail": "Correo electrónico de Google", + "inviteMoreHeader": "Usted se encuentra solo en la reunión", + "inviteMoreMailSubject": "Unirse a la reunión {{appName}}", + "inviteMorePrompt": "Invitar a más personas", + "linkCopied": "Link copiado al portapapeles", + "noResults": "No se encontraron coincidencias", + "outlookEmail": "Correo de Outlook", + "phoneNumbers": "números de teléfono", + "searching": "Buscando…", + "shareInvite": "Compartir la invitación a la reunión", + "shareLink": "Compartir el enlace de la reunion", + "shareStream": "Compartir el enlace de la transmisión en vivo", + "sipAddresses": "direcciones sip", + "telephone": "Teléfono: {{number}}", + "title": "Invitar a otras personas a esta reunión", + "yahooEmail": "Correo de Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Audio de automóvil", + "headphones": "Auriculares", + "none": "No hay dispositivos de audio disponibles", + "phone": "Teléfono", + "speaker": "Altavoz" + }, + "audioOnly": { + "audioOnly": "Solo sonido y pantalla compartida" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "por ejemplo 10000000 para 10 Mbps", + "assumedBandwidthBpsWarning": "Valores más altos podrían causar problemas de red.", + "customValue": "valor personalizado", + "customValueEffect": "para establecer el valor real de bps", + "leaveEmpty": "dejar vacío", + "leaveEmptyEffect": "para permitir que se realicen estimaciones", + "possibleValues": "Valores posibles", + "setAssumedBandwidthBps": "Ancho de banda asumido (bps)", + "title": "Ajustes de ancho de banda", + "zeroEffect": "para deshabilitar el video" + }, + "breakoutRooms": { + "actions": { + "add": "Agregar sala para grupos pequeños", + "autoAssign": "Autoasignar a sala para grupos pequeños", + "close": "Cerrar", + "join": "Unirse", + "leaveBreakoutRoom": "Abandonar sala para grupos pequeños", + "more": "Más", + "remove": "Quitar", + "sendToBreakoutRoom": "Enviar participante a:" + }, + "defaultName": "Sala para grupos pequeños #{{index}}", + "mainRoom": "Sala principal", + "notifications": { + "joined": "Uniéndose a la sala para grupos pequeños \"{{name}}\"", + "joinedMainRoom": "Uniéndose a la sala principal", + "joinedTitle": "Salas para grupos pequeños" + } + }, + "calendarSync": { + "addMeetingURL": "Agregar un vínculo a la reunión", + "confirmAddLink": "¿Quiere añadir un enlace de Jitsi a este evento?", + "error": { + "appConfiguration": "La integración del calendario no está configurada correctamente", + "generic": "Se ha producido un error. Compruebe la configuración del calendario o pruebe cargarlo nuevamente.", + "notSignedIn": "Se ha producido un error de autenticación para ver los eventos del calendario. Compruebe la configuración del calendario e intente iniciar sesión de nuevo" + }, + "join": "Unirse", + "joinTooltip": "Unirse a la reunión", + "nextMeeting": "próxima reunión", + "noEvents": "No hay eventos próximos programados.", + "ongoingMeeting": "reunión en curso", + "permissionButton": "Abrir configuración", + "permissionMessage": "Los permisos al calendario son necesarios para ver sus reuniones en la aplicación.", + "refresh": "Actualizar calendario", + "today": "Hoy" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Elija un dispositivo de sonido" + }, + "labels": { + "buttonLabel": "Modo automóvil", + "title": "Modo automóvil", + "videoStopped": "Su video se ha detenido" + } + }, + "chat": { + "enter": "Entrar en la sala", + "error": "Error: su mensaje no se envío. Motivo: {{error}}", + "fieldPlaceHolder": "Escriba su mensaje aquí", + "lobbyChatMessageTo": "Mensaje de chat de lobby a {{recipient}}", + "message": "Mensaje", + "messageAccessibleTitle": "{{user}} dice:", + "messageAccessibleTitleMe": "yo digo:", + "messageTo": "Mensaje privado para {{recipient}}", + "messagebox": "Escriba un mensaje", + "newMessages": "Mensajes nuevos", + "nickname": { + "popover": "Selecciona un apodo", + "title": "Introduce un apodo para usar el chat", + "titleWithPolls": "Introduce un apodo para usar el chat" + }, + "noMessagesMessage": "No hay mensajes en la reunión. ¡Inicie una conversación!", + "privateNotice": "Mensaje privado para {{recipient}}", + "sendButton": "Enviar", + "smileysPanel": "Panel de Emojis", + "tabs": { + "chat": "Chat", + "polls": "Encuestas" + }, + "title": "Chat", + "titleWithPolls": "Chat", + "you": "tú" + }, + "chromeExtensionBanner": { + "buttonText": "Instalar extensión de Chrome", + "buttonTextEdge": "Instalar extensión de Edge", + "close": "Cerrar", + "dontShowAgain": "No mostrar nuevamente", + "installExtensionText": "Instalar la extensión para Google Calendar y la integración con Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Conectándose a la reunión…" + }, + "connection": { + "ATTACHED": "Adjunto", + "AUTHENTICATING": "Autenticando", + "AUTHFAIL": "Error de autenticación", + "CONNECTED": "Conectado", + "CONNECTING": "Conectando", + "CONNFAIL": "Error de conexión", + "DISCONNECTED": "Desconectado", + "DISCONNECTING": "Desconectando", + "ERROR": "Error", + "FETCH_SESSION_ID": "Obteniendo session-ID…", + "GET_SESSION_ID_ERROR": "Obtener session-id error: {{code}}", + "GOT_SESSION_ID": "Obteniendo session-ID… Listo", + "LOW_BANDWIDTH": "El vídeo para {{displayName}} ha sido desactivado para ahorrar ancho de banda" + }, + "connectionindicator": { + "address": "Dirección:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Ancho de banda estimado:", + "bitrate": "Tasa de transferencia:", + "bridgeCount": "Contador del servidor: ", + "codecs": "Codecs (A/V):", + "connectedTo": "Conectado a:", + "e2eeVerified": "", + "framerate": "Fotogramas por segundo:", + "less": "Mostrar menos", + "localaddress": "Dirección local:", + "localaddress_plural": "Direcciones locales:", + "localport": "Puerto local:", + "localport_plural": "Puertos locales:", + "maxEnabledResolution": "enviar max", + "more": "Mostrar más", + "no": "no", + "packetloss": "Pérdida de paquetes:", + "participant_id": "ID participante:", + "quality": { + "good": "Buena", + "inactive": "Inactivo", + "lost": "Perdido", + "nonoptimal": "No es óptimo", + "poor": "Deficiente" + }, + "remoteaddress": "Dirección remota:", + "remoteaddress_plural": "Direcciones remotas:", + "remoteport": "Puerto remoto:", + "remoteport_plural": "Puertos remotos:", + "resolution": "Resolución:", + "savelogs": "Guardar logs", + "status": "Calidad:", + "transport": "Transporte:", + "transport_plural": "Transportes:", + "video_ssrc": "Video SSRC:", + "yes": "sí" + }, + "dateUtils": { + "earlier": "Anterior", + "today": "Hoy", + "yesterday": "Ayer" + }, + "deepLinking": { + "appNotInstalled": "Necesitas la aplicación {{app}} para unirte a esta reunión en el teléfono.", + "description": "¿No pasó nada? Intentamos iniciar la reunión en la aplicación de escritorio {{app}}. Intenta de nuevo o inicia en la aplicación web {{app}}.", + "descriptionNew": "¿No pasó nada? Intentamos iniciar la reunión en la aplicación de escritorio {{app}}.

Puedes volver a intentarlo o iniciar en la aplicación web.", + "descriptionWithoutWeb": "¿No pasó nada? Intentamos iniciar su reunión en la aplicación de escritorio {{app}}.", + "downloadApp": "Descargar la app", + "downloadMobileApp": "", + "ifDoNotHaveApp": "Si aún no tienes la app:", + "ifHaveApp": "Si ya tienes la app:", + "joinInApp": "Unirse a la reunion usando la app", + "joinInAppNew": "Unirse en la app", + "joinInBrowser": "Unirse en el navegador", + "launchMeetingLabel": "¿Cómo quieres unirte a la reunión?", + "launchWebButton": "Iniciar en el navegador", + "noMobileApp": "¿No tienes la aplicación?", + "termsAndConditions": "Al continuar aceptas nuestros términos y condiciones.", + "title": "Iniciando la reunión en {{app}}…", + "titleNew": "Iniciando la reunión.", + "tryAgainButton": "Intentar de nuevo en el escritorio", + "unsupportedBrowser": "Parece que estás usando un navegador para el que no tenemos soporte." + }, + "defaultLink": "ej. {{url}}", + "defaultNickname": "ej. Juan Pérez", + "deviceError": { + "cameraError": "Error al acceder a tu cámara", + "cameraPermission": "Error al obtener permiso de la cámara", + "microphoneError": "Error al acceder a tu micrófono", + "microphonePermission": "Error al obtener permiso del micrófono" + }, + "deviceSelection": { + "hid": { + "callControl": "Control de llamadas", + "connectedDevices": "Dispositivos conectados:", + "deleteDevice": "Eliminar dispositivo", + "pairDevice": "Emparejar dispositivo" + }, + "noPermission": "Permiso no concedido", + "previewUnavailable": "Vista previa no disponible", + "selectADevice": "Seleccionar un dispositivo", + "testAudio": "Reproducir un sonido de prueba" + }, + "dialIn": { + "screenTitle": "" + }, + "dialOut": { + "statusMessage": "está {{status}}" + }, + "dialog": { + "Back": "Anterior", + "Cancel": "Cancelar", + "IamHost": "Soy el anfitrión", + "Ok": "Aceptar", + "Remove": "Eliminar", + "Share": "Compartir", + "Submit": "Enviar", + "WaitForHostMsg": "La conferencia aún no ha comenzado. Si eres el anfitrión, inicia sesión. De lo contrario, espera a que llegue el anfitrión.", + "WaitingForHostTitle": "Esperando al anfitrión…", + "Yes": "Sí", + "accessibilityLabel": { + "close": "Cerrar diálogo", + "liveStreaming": "Transmisión en vivo", + "sharingTabs": "Opciones para compartir" + }, + "add": "Agregar", + "addMeetingNote": "Agrega una nota acerca de esta reunión", + "addOptionalNote": "Agrega una nota (opcional):", + "allow": "Permitir", + "alreadySharedVideoMsg": "Otro participante ya está compartiendo un vídeo. Esta conferencia sólo permite compartir un vídeo a la vez.", + "alreadySharedVideoTitle": "Solo se permite un vídeo compartido a la vez", + "applicationWindow": "Ventana de aplicación", + "authenticationRequired": "Se requiere autenticación", + "cameraConstraintFailedError": "Su cámara no satisface algunos de los requerimientos.", + "cameraNotFoundError": "No se encontró la cámara.", + "cameraNotSendingData": "No podemos acceder a la cámara. Asegúrate que no haya otra aplicación usándola, selecciona otro dispositivo del menú de configuración o intenta volver a cargar la aplicación.", + "cameraNotSendingDataTitle": "No es posible acceder a la cámara", + "cameraPermissionDeniedError": "No has otorgado permiso para usar la cámara. Puedes unirte a la conferencia de todos modos, pero los demás asistentes no te podrán ver. Usa el botón de la cámara en la barra de direcciones para solucionar esto.", + "cameraTimeoutError": "No se ha podido iniciar la fuente de vídeo. Se ha agotado el tiempo de espera.", + "cameraUnknownError": "No se puede usar la cámara por un motivo desconocido.", + "cameraUnsupportedResolutionError": "La cámara no admite la resolución de vídeo requerida.", + "close": "Cerrar", + "conferenceDisconnectMsg": "Se recomienda que compruebes la conexión de la red. Reconectando en {{seconds}} segundos…", + "conferenceDisconnectTitle": "Ha sido desconectado.", + "conferenceReloadMsg": "Estamos tratando de arreglar esto. Reconectando en {{seconds}} segundos…", + "conferenceReloadTitle": "Desafortunadamente, algo salió mal.", + "confirm": "Confirmar", + "confirmNo": "No", + "confirmYes": "Sí", + "connectError": "¡Ups! Algo salió mal y no fue posible conectarnos a la conferencia.", + "connectErrorWithMsg": "¡Ups! Algo salió mal y no fue posible conectarnos a la conferencia: {{msg}}", + "connecting": "Conectando", + "contactSupport": "Contacta al soporte técnico", + "copied": "Copiado", + "copy": "Copiar", + "dismiss": "Descartar", + "displayNameRequired": "¡Hola! ¿Cuál es tu nombre?", + "done": "Listo", + "e2eeDescription": "El cifrado de extremo a extremo es actualmente EXPERIMENTAL. Tenga en cuenta que activarlo puede deshabilitar servicios como: grabación, transmisión en vivo y participación telefónica. Además, esta reunión solo funcionará con personas que se unan con un navegador.", + "e2eeDisabledDueToMaxModeDescription": "No se puede activar el cifrado de extremo a extremo debido al gran número de participantes en la conferencia.", + "e2eeLabel": "Habilitar cifrado de extremo a extremo", + "e2eeWarning": "ATENCIÓN: No todos los participantes de esta reunión soportan el cifrado de extremo a extremo. Si habilitas esta opción, ellos no podrán verte ni oirte.", + "e2eeWillDisableDueToMaxModeDescription": "ATENCIÓN: El cifrado de extremo a extremo se desactivará automáticamente si se unen más participantes a la reunión.", + "embedMeeting": "Incrustar reunión", + "enterDisplayName": "Por favor ingresa tu nombre aquí", + "error": "Error", + "gracefulShutdown": "Nuestro servicio se encuentra en mantenimiento. Por favor, intente más tarde.", + "grantModeratorDialog": "¿Estás seguro de que quieres convertir a este participante en moderador?", + "grantModeratorTitle": "Convertir en moderador", + "hide": "Esconder", + "hideShareAudioHelper": "No volver a mostrar este diálogo", + "incorrectPassword": "Nombre de usuario o contraseña incorrecta", + "incorrectRoomLockPassword": "Contraseña incorrecta", + "internalError": "¡Ups! Algo salió mal. El siguiente error ocurrió: {{error}}", + "internalErrorTitle": "Error interno", + "kickMessage": "Puede ponerse en contacto con {{participantDisplayName}} para obtener más detalles.", + "kickParticipantButton": "Expulsar", + "kickParticipantDialog": "¿Seguro que quiere expulsar a este participante?", + "kickParticipantTitle": "¿Expulsar a este participante?", + "kickTitle": "¡Ay! {{participantDisplayName}} te expulsó de la reunión", + "linkMeeting": "", + "linkMeetingTitle": "", + "liveStreaming": "Transmisión en vivo", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "No es posible mientras la grabación este activa", + "localUserControls": "Controles de usuario locales", + "lockMessage": "No se pudo bloquear la conferencia.", + "lockRoom": "Agregar $t(lockRoomPasswordUppercase) a la reunión", + "lockTitle": "El bloqueo falló", + "login": "Iniciar sesión", + "logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?", + "logoutTitle": "Cerrar sesión", + "maxUsersLimitReached": "Se ha alcanzado el límite máximo de participantes. Por favor contacta con el organizador o inténtalo más tarde.", + "maxUsersLimitReachedTitle": "La reunión está llena.", + "micConstraintFailedError": "El micrófono no satisface algunos de los requerimientos.", + "micNotFoundError": "No se encontró el micrófono.", + "micNotSendingData": "Vaya a la configuración de su computadora para activar el micrófono y ajustar su nivel", + "micNotSendingDataTitle": "Su micrófono está silenciado en la configuración de su sistema", + "micPermissionDeniedError": "No ha otorgado permisos para usar su micrófono. Puede unirse a la conferencia, pero no lo podrán escuchar. Utilice el botón en la barra de dirección para solucionar esto.", + "micTimeoutError": "No se ha podido iniciar la fuente de audio. Se ha agotado el tiempo de espera.", + "micUnknownError": "No se puede usar el micrófono por motivos desconocidos.", + "moderationAudioLabel": "Permitir a los asistentes activar su audio.", + "moderationVideoLabel": "Permitir a los asistentes activar su video.", + "muteEveryoneDialog": "¿Estás seguro que quieres silenciar a todos? No podrás quitarles el silencio, pero ellos pueden quitárselo en cualquier momento.", + "muteEveryoneDialogModerationOn": "Los participantes pueden enviar una solicitud de intervención en cualquier momento.", + "muteEveryoneElseDialog": "Una vez silenciados, no podrás quitarles el modo silencio, pero ellos podrán hacerlo en cualquier momento.", + "muteEveryoneElseTitle": "¿Silenciar a todos excepto a {{whom}}?", + "muteEveryoneElsesVideoDialog": "Una vez desactivada la cámara, no podrás volver a activarla, pero pueden volver a activarla en cualquier momento.", + "muteEveryoneElsesVideoTitle": "¿Detener el vídeo de todos, excepto el de {{whom}}?", + "muteEveryoneSelf": "ti mismo", + "muteEveryoneStartMuted": "Todos inician silenciados desde ahora", + "muteEveryoneTitle": "¿Silenciar a todos?", + "muteEveryonesVideoDialog": "Los participantes pueden encender su vídeo en cualquier momento.", + "muteEveryonesVideoDialogModerationOn": "Los participantes pueden enviar una solicitud para encender su vídeo en cualquier momento.", + "muteEveryonesVideoDialogOk": "Desactivar", + "muteEveryonesVideoTitle": "¿Detener el vídeo de todos?", + "muteParticipantBody": "No podrás quitarles el modo en silencio, pero ellos pueden quitárselo en cualquier momento.", + "muteParticipantButton": "Silenciar", + "muteParticipantsVideoBody": "No podrás volver a encender la cámara, pero ellos pueden volver a encenderla en cualquier momento.", + "muteParticipantsVideoBodyModerationOn": "", + "muteParticipantsVideoButton": "Detener video", + "muteParticipantsVideoDialog": "¿Estás seguro de que quieres apagar la cámara de este participante? No podrás volver a encender la cámara, pero ellos pueden volver a encenderla en cualquier momento.", + "muteParticipantsVideoDialogModerationOn": "", + "muteParticipantsVideoTitle": "¿Desactivar la cámara de este participante?", + "noDropboxToken": "No hay un token válido de Dropbox", + "password": "Contraseña", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "No se soporta $t(lockRoomPassword) en la reunión", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) no es compatible", + "passwordRequired": "$t(lockRoomPasswordUppercase) necesario", + "permissionCameraRequiredError": "El permiso de cámara es necesario para participar en conferencias con vídeo. Por favor, permítelo en Ajustes", + "permissionErrorTitle": "Permiso necesario", + "permissionMicRequiredError": "El permiso de micrófono es necesario para participar en conferencias con sonido. Por favor, permítelo en Ajustes", + "popupError": "Su navegador está bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuración de seguridad de su navegador y vuelva a intentarlo.", + "popupErrorTitle": "Ventana emergente bloqueada", + "readMore": "más", + "recentlyUsedObjects": "Tus objetos usados recientemente", + "recording": "Grabando", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "No es posible mientras la transmisión en vivo este activa", + "rejoinNow": "Reunirse ahora", + "remoteControlAllowedMessage": "¡{{user}} ha aceptado tu solicitud de control remoto!", + "remoteControlDeniedMessage": "¡{{user}} ha rechazado tu solicitud de control remoto!", + "remoteControlErrorMessage": "¡Ha ocurrido un error tratando de solicitar permiso de control remoto de {{user}}!", + "remoteControlRequestMessage": "¿Permitirá que {{user}} controle remotamente su computadora?", + "remoteControlShareScreenWarning": "¡Tenga en cuenta que si presiona \"Permitir\" usted compartirá su pantalla!", + "remoteControlStopMessage": "¡La sesión de control remoto ha finalizado!", + "remoteControlTitle": "Control de escritorio remoto", + "remoteUserControls": "El control remoto de {{username}}", + "removePassword": "Eliminar $t(lockRoomPassword)", + "removeSharedVideoMsg": "¿Estás seguro de que deseas eliminar el vídeo compartido?", + "removeSharedVideoTitle": "Eliminar vídeo compartido", + "reservationError": "Error del sistema de reservaciones", + "reservationErrorMsg": "Código de error: {{code}}, mensaje: {{msg}}", + "retry": "Reintentar", + "screenSharingAudio": "Compartir audio", + "screenSharingFailed": "¡Ups! ¡Algo salió mal, no se pudo iniciar la compartición de su pantalla!", + "screenSharingFailedTitle": "¡Fallo al compartir su pantalla!", + "screenSharingPermissionDeniedError": "¡Uy! Algo salió mal con tus permisos de extensión para compartir pantalla. Vuelve a cargar la página e intenta de nuevo.", + "searchInSalesforce": "Buscar en Salesforce", + "searchResults": "Resultados de búsqueda({{count}}", + "searchResultsDetailsError": "", + "searchResultsError": "Hubo un error recuperando los datos.", + "searchResultsNotFound": "No se encontraron resultados.", + "searchResultsTryAgain": "Vuelve a intentar usando palabras clave alternativas", + "sendPrivateMessage": "Acabas de recibir un mensaje privado. ¿Deseas responder en privado o a todos?", + "sendPrivateMessageCancel": "Enviar al grupo", + "sendPrivateMessageOk": "Enviar en privado", + "sendPrivateMessageTitle": "¿Enviar en privado?", + "serviceUnavailable": "Servicio no disponible", + "sessTerminated": "Llamada terminada", + "sessionRestarted": "Llamada reiniciada por un problema de conexión.", + "shareAudio": "Continuar", + "shareAudioTitle": "Cómo compartir el audio", + "shareAudioWarningD1": "debes dejar de compartir la pantalla antes de compartir el audio.", + "shareAudioWarningD2": "Tienes que reiniciar tu pantalla compartida y marcar la opción \"compartir audio\".", + "shareAudioWarningH1": "Si quieres compartir sólo el audio:", + "shareAudioWarningTitle": "Hay que dejar de compartir la pantalla antes de compartir el audio", + "shareMediaWarningGenericH2": "Si quieres compartir tu pantalla y audio", + "shareScreenWarningD1": "debes dejar de compartir el audio antes de compartir la pantalla.", + "shareScreenWarningD2": "tienes que dejar de compartir el audio, empezar a compartir la pantalla y marcar la opción \"compartir el audio\".", + "shareScreenWarningH1": "Si quieres compartir sólo tu pantalla:", + "shareScreenWarningTitle": "Tienes que dejar de compartir el audio antes de compartir la pantalla", + "shareVideoLinkError": "Proporciona un enlace correcto.", + "shareVideoTitle": "Compartir un vídeo", + "shareYourScreen": "Compartir pantalla", + "shareYourScreenDisabled": "Se desactivó la opción para compartir pantalla.", + "sharedVideoDialogError": "Error: URL inválido", + "sharedVideoLinkPlaceholder": "Enlace de YouTube o enlace de vídeo directo", + "show": "Mostrar", + "start": "Iniciar", + "startLiveStreaming": "Iniciar transmisión en vivo", + "startRecording": "Iniciar grabación", + "startRemoteControlErrorMessage": "Se produjo un error al intentar iniciar la sesión de control remoto.", + "stopLiveStreaming": "Detener transmisión en vivo", + "stopRecording": "Detener grabación", + "stopRecordingWarning": "¿Estás seguro de que deseas detener la grabación?", + "stopStreamingWarning": "¿Estás seguro de que deseas detener la transmisión en vivo?", + "streamKey": "Clave de transmisión en vivo", + "thankYou": "¡Gracias por usar {{appName}}!", + "token": "token", + "tokenAuthFailed": "Lo sentimos, no tienes permiso para unirte a esta llamada.", + "tokenAuthFailedTitle": "Error de autenticación", + "transcribing": "Transcribiendo", + "unlockRoom": "Quitar la $t(lockRoomPassword) de reunión", + "user": "Usuario", + "userIdentifier": "Identificador de usuario", + "userPassword": "contraseña del usuario", + "verifyParticipantConfirm": "", + "verifyParticipantDismiss": "", + "verifyParticipantQuestion": "", + "verifyParticipantTitle": "Verificación de usuario", + "videoLink": "Enlace de vídeo", + "viewUpgradeOptions": "Ver opciones de mejora", + "viewUpgradeOptionsContent": "Para obtener acceso ilimitado a las funciones premium, como la grabación, las transcripciones, el streaming RTMP y otras, tendrás que actualizar tu plan.", + "viewUpgradeOptionsTitle": "¡Has descubierto una característica premium!", + "yourEntireScreen": "Toda la pantalla" + }, + "documentSharing": { + "title": "Compartir documento" + }, + "e2ee": { + "labelToolTip": "La comunicación de audio y vídeo en esta reunión está cifrada de extremo a extremo" + }, + "embedMeeting": { + "title": "Insertar esta reunión" + }, + "feedback": { + "average": "Promedio", + "bad": "Mala", + "detailsLabel": "Cuéntanos más sobre tu experiencia.", + "good": "Buena", + "rateExperience": "¿Cómo estuvo tu experiencia en la reunión?", + "star": "Estrella", + "veryBad": "Muy mala", + "veryGood": "Muy buena" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniaturas de video" + } + }, + "giphy": { + "noResults": "No se encontraron resultados :(", + "search": "Busca en GIPHY" + }, + "incomingCall": { + "answer": "Contestar", + "audioCallTitle": "Llamada entrante", + "decline": "Descartar", + "productLabel": "de Jitsi Meet", + "videoCallTitle": "Videollamada" + }, + "info": { + "accessibilityLabel": "Mostrar información", + "addPassword": "Agregar $t(lockRoomPassword)", + "cancelPassword": "Cancelar $t(lockRoomPassword)", + "conferenceURL": "Enlace:", + "copyNumber": "Copiar número", + "country": "País", + "dialANumber": "Para unirte a la reunión, marca uno de estos números y, luego introduce el PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Lo sentimos, actualmente no se admite el marcado telefónico a la reunión.", + "dialInNumber": "Marcar:", + "dialInSummaryError": "Se ha producido un error al capturar la información de marcación. Vuelva a intentarlo más tarde", + "dialInTollFree": "Número gratuito", + "genericError": "Algo salió mal.", + "inviteLiveStream": "Para ver la transmisión en vivo de esta reunión, haz clic en este enlace: {{url}}", + "invitePhone": "También puedes entrar por llamada telefónica: Marca al número {{number}}, y al escuchar la contestadora introduce {{conferenceID}}#\n", + "invitePhoneAlternatives": "Si necesitas un número telefónico de otro país, revisa los números disponibles en {{url}}\n\n\nSi además de entrar vía llamada vas a usar otro dispositivo, puedes usar este enlace para entrar sin audio: {{silentUrl}}", + "inviteSipEndpoint": "Para unirse utilizando la dirección SIP, introduzca esto: {{sipUri}}", + "inviteTextiOSInviteUrl": "Haz clic en el siguiente enlace para unirte: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Si marca a través de un teléfono de sala, utilice este enlace para unirse sin conectarse al audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} te invita a una reunión.", + "inviteTextiOSPhone": "Para participar por teléfono, utiliza este número: {{number}},,{{conferenceID}}. Si buscas otro número, ésta es la lista completa: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Estás invitado a unirte a una reunión.", + "inviteURLFirstPartPersonal": "{{name}} te esta invitando a una reunión.\n", + "inviteURLSecondPart": "\nEnlace para unirse a la reunión:\n{{url}}\n", + "label": "Información de la reunión", + "liveStreamURL": "Transmisión en vivo:", + "moreNumbers": "Más números", + "noNumbers": "No hay números para entrar por llamada telefónica.", + "noPassword": "Ninguna", + "noRoom": "No se especificó la sala a marcar.", + "numbers": "Números para entrar por llamada telefónica:", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Alcanzaste el límite de tu plan.", + "sip": "Dirección SIP", + "title": "Compartir", + "tooltip": "Compartir el enlace y acceso telefónico para esta reunión", + "upgradeOptions": "Por favor revisa las opciones de mejora en" + }, + "inlineDialogFailure": { + "msg": "Tuvimos un pequeño tropiezo.", + "retry": "Volver a intentar", + "support": "Soporte", + "supportMsg": "Si esto sigue ocurriendo, contacta a" + }, + "inviteDialog": { + "alertText": "Se ha producido un error al invitar a algunos participantes", + "header": "Invitar", + "searchCallOnlyPlaceholder": "Introduce el número de teléfono", + "searchPeopleOnlyPlaceholder": "Buscar participantes", + "searchPlaceholder": "Participante o número de teléfono", + "send": "Enviar" + }, + "jitsiHome": "{{logo}} Logotipo, enlaces a la página web", + "keyboardShortcuts": { + "focusLocal": "Ver tu cámara", + "focusRemote": "Ver la cámara de otras personas", + "fullScreen": "Entrar o salir de pantalla completa", + "giphyMenu": "Alternar menú GIPHY", + "keyboardShortcuts": "Atajos de teclado", + "localRecording": "Mostrar u ocultar controles de grabación local", + "mute": "Activar o silenciar el micrófono", + "pushToTalk": "Presiona para hablar", + "raiseHand": "Levantar o bajar la mano", + "showSpeakerStats": "Mostrar estadísticas de los participantes", + "toggleChat": "Abrir o cerrar el chat", + "toggleFilmstrip": "Mostrar u ocultar miniaturas de vídeo", + "toggleParticipantsPane": "Mostrar u ocultar el panel de participantes", + "toggleScreensharing": "Cambiar entre cámara y pantalla compartida", + "toggleShortcuts": "Mostrar u ocultar atajos del teclado", + "videoMute": "Encender o apagar la cámara" + }, + "largeVideo": { + "screenIsShared": "Estás compartiendo tu pantalla", + "showMeWhatImSharing": "Muéstrame qué estoy compartiendo" + }, + "liveStreaming": { + "busy": "Nuestros servidores andan un poco ocupados. Vuelve a intentarlo en unos minutos.", + "busyTitle": "Todos los transmisores están ocupados", + "changeSignIn": "Cambiar de cuenta.", + "choose": "Elegir una transmisión en vivo", + "chooseCTA": "Elegir una opción de transmisión. Actualmente, la sesión está iniciada como {{email}}.", + "enterStreamKey": "Introduce la clave de transmisión como se indica arriba.", + "error": "La transmisión en vivo falló. Por favor, inténtelo de nuevo.", + "errorAPI": "Se produjo un error al acceder a las transmisiones de YouTube. Por favor intenta iniciar sesión otra vez.", + "errorLiveStreamNotEnabled": "La transmisión en vivo no está activada en {{email}}. Por favor, activa la transmisión en vivo o inicia sesión en una cuenta con la transmisión en vivo activada.", + "expandedOff": "La transmisión en vivo se ha detenido", + "expandedOn": "La reunión se está transmitiendo a YouTube.", + "expandedPending": "La transmisión en vivo se está iniciando…", + "failedToStart": "La transmisión en vivo no se pudo iniciar", + "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", + "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", + "onBy": "{{name}} inició la transmisión en vivo", + "pending": "Iniciando transmisión en vivo…", + "serviceName": "Servicio de transmisión en vivo", + "sessionAlreadyActive": "Esta sesión ya está siendo grabada o transmitida en vivo.", + "signIn": "Iniciar sesión con Google", + "signInCTA": "Para transmitir a YouTube, inicia sesión o introduce la clave de transmisión. Para transmitir a otro lugar, introduce el URL (que empieza en rtmp), seguido de la clave de transmisión. Debe haber una diagonal (/) entre ambos.", + "signOut": "Cerrar sesión", + "signedInAs": "Actualmente, la sesión está iniciada como:", + "start": "Iniciar una transmisión en vivo", + "streamIdHelp": "¿Qué es esto?", + "title": "Transmisión en vivo", + "unavailableTitle": "Transmisión en vivo no disponible", + "youtubeTerms": "Términos de servicios de YouTube" + }, + "lobby": { + "backToKnockModeButton": "No hay contraseña, pide permiso para entrar.", + "chat": "Chat", + "dialogTitle": "Sala de espera", + "disableDialogContent": "Sala de espera activada. Así no entrarán intrusos. ¿Quieres desactivarla?", + "disableDialogSubmit": "Desactivar", + "emailField": "Introduce tu correo electrónico", + "enableDialogPasswordField": "Establecer contraseña (opcional)", + "enableDialogSubmit": "Activar", + "enableDialogText": "La sala de espera te deja proteger tu reunión, de modo que todas los que entren enviarán una solicitud que deberá ser aprobada por un moderador.", + "enterPasswordButton": "Introduce la contraseña de la reunión", + "enterPasswordTitle": "Introduce la contraseña para poder entrar", + "errorMissingPassword": "Por favor, introduzca la contraseña de la reunión", + "invalidPassword": "Contraseña inválida", + "joinRejectedMessage": "Tu solicitud para entrar ha sido rechazada por un moderador.", + "joinRejectedTitle": "Solicitud para entrar rechazada.", + "joinTitle": "Entrar a la reunión", + "joinWithPasswordMessage": "Tratando de entrar con contraseña, por favor espera…", + "joiningMessage": "Podrás entrar tan pronto te acepten tu solicitud.", + "joiningTitle": "Pidiendo entrar a la reunión…", + "joiningWithPasswordTitle": "Uniéndose con la contraseña…", + "knockButton": "Pedir entrar", + "knockTitle": "Alguien quiere entrar a la reunión", + "knockingParticipantList": "Participantes que quieren entrar", + "lobbyChatStartedNotification": "{{moderator}} inició un chat de lobby con {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} inició un chat de lobby contigo.", + "nameField": "Introduce tu nombre", + "notificationLobbyAccessDenied": "{{originParticipantName}} no dejó entrar a {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} permitió entrar a {{targetParticipantName}}", + "notificationLobbyDisabled": "La sala de espera ha sido desactivada por {{originParticipantName}}", + "notificationLobbyEnabled": "La sala de espera ha sido activada por {{originParticipantName}}", + "notificationTitle": "Sala de espera", + "passwordField": "Introduce la contraseña de la reunión", + "passwordJoinButton": "Entrar", + "title": "Sala de espera", + "toggleLabel": "Activar sala de espera" + }, + "localRecording": { + "clientState": { + "off": "Desactivado", + "on": "Activado", + "unknown": "Desconocido" + }, + "dialogTitle": "Controles de grabación local", + "duration": "Duración", + "durationNA": "N/A", + "encoding": "Codificación", + "label": "GRA", + "labelToolTip": "Grabación local activada", + "localRecording": "Grabación local", + "me": "Yo", + "messages": { + "engaged": "Grabación local activada.", + "finished": "Sesión de grabación {{token}} terminada. Por favor, envía la grabación al organizador.", + "finishedModerator": "Sesión de grabación {{token}} terminada. Se ha guardado la grabación de la pista local. Por favor pida a los demás participantes que presenten sus grabaciones.", + "notModerator": "No eres el moderador. No puedes iniciar o detener la grabación local." + }, + "moderator": "Moderador", + "no": "No", + "participant": "Participante", + "participantStats": "Estadística de participantes", + "selectTabTitle": "🎥 Por favor seleccione esta pestaña para grabar", + "sessionToken": "Token de sesión", + "start": "Iniciar grabación", + "stop": "Detener grabación", + "yes": "Sí" + }, + "lockRoomPassword": "contraseña", + "lockRoomPasswordUppercase": "Contraseña", + "lonelyMeetingExperience": { + "button": "Invita a otros", + "youAreAlone": "Estás solo" + }, + "me": "yo", + "notify": { + "OldElectronAPPTitle": "¡Aplicación obsoleta e insegura!", + "allowAction": "Permitir", + "allowedUnmute": "Puedes anular el silencio del micrófono, iniciar la cámara o compartir la pantalla.", + "audioUnmuteBlockedDescription": "La operación de activación del micrófono ha sido bloqueada temporalmente debido a límites del sistema.", + "audioUnmuteBlockedTitle": "¡Activación del micrófono bloqueado!", + "chatMessages": "Mensajes del chat", + "connectedOneMember": "{{name}} se unió a la reunión", + "connectedThreePlusMembers": "{{name}} y {{count}} más se unieron a la reunión", + "connectedTwoMembers": "{{first}} y {{second}} se unieron a la reunión", + "dataChannelClosed": "", + "dataChannelClosedDescription": "", + "disabledIframe": "", + "disconnected": "desconectado", + "displayNotifications": "Mostrar notificaciones para", + "dontRemindMe": "No me lo recuerdes", + "focus": "Enfocar conferencia", + "focusFail": "{{component}} no disponible. Vuelve a intentar en {{ms}} segundos", + "gifsMenu": "GIPHY", + "groupTitle": "Notificaciones", + "hostAskedUnmute": "El moderador quiere que hables", + "invitedOneMember": "{{name}} ha sido invitado", + "invitedThreePlusMembers": "{{name}} y {{count}} más han sido invitados", + "invitedTwoMembers": "{{first}} y {{second}} han sido invitados", + "joinMeeting": "Unirse", + "kickParticipant": "{{kicker}} sacó a {{kicked}}", + "leftOneMember": "{{name}} abandonó la reunión", + "leftThreePlusMembers": "{{name}} y muchos otros abandonaron la reunión", + "leftTwoMembers": "{{first}} y {{second}} abandonaron la reunión", + "linkToSalesforce": "Enlace a Salesforce", + "linkToSalesforceDescription": "Puedes vincular el resumen de la reunión a un objeto Salesforce", + "linkToSalesforceError": "Error al vincular la reunión a Salesforce", + "linkToSalesforceKey": "", + "linkToSalesforceProgress": "Vinculando reunión a Salesorce…", + "linkToSalesforceSuccess": "La reunión fue vinculada a Salesforce", + "localRecordingStarted": "{{name}} ha iniciado una grabación local.", + "localRecordingStopped": "{{name}} ha detenido una grabación local.", + "me": "Yo", + "moderationInEffectCSDescription": "Por favor, levante la mano si quiere compartir su pantalla.", + "moderationInEffectCSTitle": "La pantalla compartida está bloqueada por el moderador", + "moderationInEffectDescription": "Por favor, levanten la mano si quieren hablar.", + "moderationInEffectTitle": "Su micrófono está silenciado por el moderador", + "moderationInEffectVideoDescription": "Por favor, levanten la mano si quieren encender su cámara.", + "moderationInEffectVideoTitle": "Su cámara está bloqueada por el moderador", + "moderationRequestFromModerator": "El anfitrión desea que se desactive el silencio", + "moderationRequestFromParticipant": "Quiere hablar", + "moderationStartedTitle": "Comienzo de la moderación", + "moderationStoppedTitle": "La moderación se detuvo", + "moderationToggleDescription": "por {{participantDisplayName}}", + "moderator": "¡Se otorgaron privilegios de moderador!", + "muted": "Has iniciado la conversación con el micrófono apagado.", + "mutedRemotelyDescription": "Siempre puedes reactivar tu micrófono cuando estés listo para hablar. Vuélvelo a apagar cuando termines de hablar para no hacer ruido.", + "mutedRemotelyTitle": "¡{{Nombre del participante}} te ha silenciado!", + "mutedTitle": "¡Estás silenciado!", + "newDeviceAction": "Usar", + "newDeviceAudioTitle": "Se detectó un dispositivo de audio nuevo", + "newDeviceCameraTitle": "Se detectó una cámara nueva", + "noiseSuppressionDesktopAudioDescription": "La supresión de ruido no puede ser habilitada mientras comparte audio del escritorio, por favor deshabilítelo y vuelva a intentar.", + "noiseSuppressionFailedTitle": "Error al activar la supresión de ruido", + "noiseSuppressionNoTrackDescription": "Por favor active su micrófono primero.", + "noiseSuppressionStereoDescription": "La supresión de ruido en audio estéreo no tiene soporte actualmente", + "oldElectronClientDescription1": "Estás usando una versión vieja de la aplicación de Jitsi Meet que tiene problemas de seguridad. ¡Por favor, actualiza a la ", + "oldElectronClientDescription2": "versión más reciente", + "oldElectronClientDescription3": " YA!", + "participantWantsToJoin": "Quiere unirse a la reunión", + "participantsWantToJoin": "Quieren unirse a la reunión", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) eliminada por otro participante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) agregada por otro participante", + "raiseHandAction": "Levantar la mano", + "raisedHand": "{{name}} quisiera hablar.", + "raisedHands": "", + "reactionSounds": "Desactivar sonidos", + "reactionSoundsForAll": "Desactivar sonidos para todos", + "screenShareNoAudio": "La casilla Compartir audio no estaba marcada en la pantalla de selección de ventanas.", + "screenShareNoAudioTitle": "No se pudo compartir el audio del sistema.", + "screenSharingAudioOnlyDescription": "Por favor tenga en cuenta que al compartir si pantalla está afectando el modo \"Mejor rendimiento\" y usará más ancho de banda", + "screenSharingAudioOnlyTitle": "Modo \"Mejor rendimiento\"", + "selfViewTitle": "Siempre puedes reactivar la vista propia en los ajustes", + "somebody": "Alguien", + "startSilentDescription": "Vuelve a ingresar para activar el audio", + "startSilentTitle": "¡Te uniste sin audio!", + "suboptimalBrowserWarning": "No tendrás una buena experiencia con este navegador. Por favor, intenta utilizar uno de los navegadores compatibles.", + "suboptimalExperienceTitle": "¡Tu navegador no es compatible!", + "unmute": "Reactivar micrófono", + "videoMutedRemotelyDescription": "Siempre puedes volver a encenderlo.", + "videoMutedRemotelyTitle": "Su vídeo ha sido desactivado por {{moderator}}", + "videoUnmuteBlockedDescription": "Las operaciones de desactivar la cámara y compartir pantalla hansido bloqueadas temporalmente debido a límites del sistema.", + "videoUnmuteBlockedTitle": "¡Desactivar cámara y compartir pantalla bloqueados!", + "viewLobby": "Ver lobby", + "waitingParticipants": "{{waitingParticipants}} personas" + }, + "participantsPane": { + "actions": { + "admit": "Admitir", + "admitAll": "Admitir todo", + "allow": "Permitir a los asistentes:", + "allowVideo": "Permitir vídeo", + "askUnmute": "Pida que le quiten el silencio", + "audioModeration": "Desmutearse a sí mismos", + "blockEveryoneMicCamera": "Bloquear el micrófono y la cámara de todos.", + "invite": "Invitar a alguien", + "moreModerationActions": "Más opciones de moderación", + "moreModerationControls": "Más controles de moderación", + "moreParticipantOptions": "Más opciones de participantes", + "mute": "Silenciar", + "muteAll": "Silenciar a todos", + "muteEveryoneElse": "Silenciar al resto", + "reject": "Rechazar", + "stopEveryonesVideo": "Detener el vídeo de todos", + "stopVideo": "Detener el vídeo", + "unblockEveryoneMicCamera": "Desbloquear el micrófono y la cámara de todos", + "videoModeration": "Iniciar su vídeo" + }, + "close": "Cerrar", + "headings": { + "lobby": "Vestíbulo ({{count}})", + "participantsList": "Participantes en la reunión ({{count}})", + "visitors": "Visitantes ({{count}})", + "waitingLobby": "Esperando en el vestíbulo ({{count}})" + }, + "search": "Buscar participantes", + "title": "Participantes" + }, + "passwordDigitsOnly": "Hasta {{number}} cifras", + "passwordSetRemotely": "Definida por otro participante", + "pinParticipant": "", + "pinnedParticipant": "", + "polls": { + "answer": { + "skip": "Saltar", + "submit": "Enviar" + }, + "by": "Por {{ name }}", + "create": { + "addOption": "Añadir opción", + "answerPlaceholder": "Opción {{index}}", + "cancel": "Cancelar", + "create": "Crear una encuesta", + "pollOption": "Opción de encuesta {{index}}", + "pollQuestion": "Pregunta de la encuesta", + "questionPlaceholder": "Haz una pregunta", + "removeOption": "Eliminar la opción", + "send": "Enviar" + }, + "errors": { + "notUniqueOption": "Las opciones deben ser únicas" + }, + "notification": { + "description": "Abre la pestaña de encuestas para votar", + "title": "Se ha añadido una nueva encuesta a esta reunión" + }, + "results": { + "changeVote": "Cambiar el voto", + "empty": "Todavía no hay encuestas en la reunión. ¡Inicie una encuesta aquí!", + "hideDetailedResults": "Ocultar detalles", + "showDetailedResults": "Mostrar detalles", + "vote": "Vota" + } + }, + "poweredby": "con tecnología de", + "prejoin": { + "audioAndVideoError": "Error en audio y vídeo:", + "audioDeviceProblem": "Hay un problema con su dispositivo de audio", + "audioOnlyError": "Error en audio:", + "audioTrackError": "No se pudo crear la pista de audio.", + "callMe": "Llámame", + "callMeAtNumber": "Llamame a este número:", + "calling": "Llamando", + "configuringDevices": "Configurando dispositivos…", + "connectedWithAudioQ": "¿Estás está conectado con audio?", + "connection": { + "good": "¡Su conexión a internet es buena!", + "nonOptimal": "Su conexión a internet no es óptima", + "poor": "Tiene una conexión a internet pobre" + }, + "connectionDetails": { + "audioClipping": "Prevemos que su audio tendrá recortes.", + "audioHighQuality": "Prevemos que su audio tendrá excelente calidad.", + "audioLowNoVideo": "Prevemos que la calidad de su audio será baja y sin video.", + "goodQuality": "¡Genial! La calidad de sus medios será excelente.", + "noMediaConnectivity": "No pudimos encontrar una forma de establecer la conectividad de medios para esta prueba. Esto suele ser causado por un firewall o NAT.", + "noVideo": "Prevemos que su video será terrible.", + "undetectable": "Si aún no puede realizar llamadas en el navegador, le recomendamos que se asegure de que los altavoces, el micrófono y la cámara estén configurados correctamente, que haya concedido los derechos de su navegador para usar el micrófono y la cámara, y que la versión de su navegador esté actualizada. Si aún tiene problemas para llamar, debería comunicarse con el desarrollador de la aplicación web.", + "veryPoorConnection": "Prevemos que la calidad de su llamada será realmente terrible.", + "videoFreezing": "Prevemos que su video se congelará, se volverá negro y se pixelará.", + "videoHighQuality": "Prevemos que su video tendrá buena calidad.", + "videoLowQuality": "Prevemos que su video tendrá baja calidad en términos de velocidad de fotogramas y resolución.", + "videoTearing": "Prevemos que su video se pixelará o tendrá artefactos visuales." + }, + "copyAndShare": "Copia y comparte el enlace de la reunión", + "dialInMeeting": "Entrar con llamada telefónica", + "dialInPin": "Marca a la reunión e ingresa el código:", + "dialing": "Marcando", + "doNotShow": "No mostrar nuevamente", + "errorDialOut": "No se pudo marcar.", + "errorDialOutDisconnected": "No se pudo marcar. Desconectado.", + "errorDialOutFailed": "No se pudo marcar. La llamada falló.", + "errorDialOutStatus": "Hubo algún error, y no se pudo determinar cuál", + "errorMissingName": "Ingrese su nombre para unirse a la reunión", + "errorNoPermissions": "Tienes que habilitar el acceso al micrófono y a la cámara", + "errorStatusCode": "Error al marcar, código de error {{status}}", + "errorValidation": "No se pudo validar el número", + "iWantToDialIn": "Quiero entrar por teléfono", + "initiated": "Llamada iniciada", + "joinAudioByPhone": "Entrar con audio de llamada telefónica", + "joinMeeting": "Entrar a la reunión", + "joinMeetingInLowBandwidthMode": "Entrar en modo de ancho de banda bajo", + "joinWithoutAudio": "Entrar sin sonido", + "keyboardShortcuts": "Activar los atajos de teclado", + "linkCopied": "Se copió el link", + "lookGood": "Tu micrófono funciona bien.", + "or": "o", + "premeeting": "Pre-reunión", + "proceedAnyway": "Continuar de todos modos", + "screenSharingError": "Error al compartir pantalla:", + "startWithPhone": "Iniciar con audio de llamada telefónica", + "unsafeRoomConsent": "Comprendo los riesgos, quiero unirme a la reunión", + "videoOnlyError": "Error con el vídeo:", + "videoTrackError": "No se pudo crear la pista de vídeo.", + "viewAllNumbers": "ver todos los números" + }, + "presenceStatus": { + "busy": "Ocupado", + "calling": "Llamando…", + "connected": "Conectado", + "connecting": "Conectando…", + "connecting2": "Conectando*…", + "disconnected": "Desconectado", + "expired": "Expirado", + "ignored": "Ignorado", + "initializingCall": "Iniciando llamada…", + "invited": "Invitado", + "rejected": "Rechazado", + "ringing": "Timbrando…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Configura tu nombre para mostrar", + "setEmailInput": "Introducir correo electrónico", + "setEmailLabel": "Configurar tu correo electrónico de Gravatar", + "title": "Perfil" + }, + "raisedHand": "Desea hablar", + "raisedHandsLabel": "Cantidad de manos levantadas", + "record": { + "already": { + "linked": "La reunión ya está vinculada a este objeto Salesforce" + }, + "type": { + "account": "Cuenta", + "contact": "Contacto", + "lead": "", + "opportunity": "Oportunidad", + "owner": "Dueño" + } + }, + "recording": { + "authDropboxText": "Subir a Dropbox", + "availableSpace": "Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabación)", + "beta": "BETA", + "busy": "Estamos trabajando para liberar recursos de grabación. Vuelve a intentarlo en unos minutos.", + "busyTitle": "Todas las grabadoras están actualmente ocupadas", + "copyLink": "Copiar enlace", + "error": "Error de grabación. Vuelve a intentarlo.", + "errorFetchingLink": "Error en la obtención del enlace de grabación.", + "expandedOff": "Grabación detenida", + "expandedOn": "La reunión está siendo grabada.", + "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", + "highlight": "Destacar", + "highlightMoment": "Destacar momento", + "highlightMomentDisabled": "Puede destacar momentos cuando inicie la grabación", + "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.", + "localRecordingNoVideo": "El video no está siendo grabado", + "localRecordingStartWarning": "Por favor asegúrese de detener la grabación antes de abandonar la reunión para guardarla.", + "localRecordingStartWarningTitle": "Detenga la grabación para guardarla", + "localRecordingVideoStop": "Detener su video también detendrá la grabación local. ¿Está seguro de querer continuar?", + "localRecordingVideoWarning": "Para grabar su video debe tenerlo encendido al iniciar la grabación", + "localRecordingWarning": "Asegúrese de seleccionar la pestaña actual para usar el video y audio correctos.", + "loggedIn": "Sesión iniciada como {{userName}}", + "noMicPermission": "No se pudo crear la pista de micrófono. Por favor otorgue permiso para usar el micrófono.", + "noStreams": "", + "off": "Grabación detenida", + "offBy": "{{name}} detuvo la grabación", + "on": "Grabando", + "onBy": "{{name}} comenzó la grabación", + "onlyRecordSelf": "", + "pending": "Preparando para grabar la reunión…", + "rec": "GRA", + "saveLocalRecording": "Guardar archivo de grabación localmente (Beta)", + "serviceDescription": "El servicio de grabación guardará la grabación", + "serviceDescriptionCloud": "Grabación en la nube", + "serviceDescriptionCloudInfo": "Las reuniones grabadas son limpiadas 24h luego de su horario de grabación.", + "serviceName": "Servicio de grabación", + "sessionAlreadyActive": "Esta sesión ya está siendo grabada o transmitida en vivo.", + "signIn": "Iniciar sesión", + "signOut": "Cerrar sesión", + "surfaceError": "Por favor seleccione la pestaña actual.", + "title": "Grabando", + "unavailable": "¡Uy! {{serviceName}} actualmente no está disponible. Estamos trabajando para resolver el problema. Vuelve a intentarlo más tarde.", + "unavailableTitle": "Grabación no disponible", + "uploadToCloud": "Subir a la nube" + }, + "screenshareDisplayName": "Pantalla de {{name}}", + "sectionList": { + "pullToRefresh": "Mueve el dedo para abajo para actualizar." + }, + "security": { + "about": "Puedes agregar una contraseña a la reunión. Los participantes necesitarán la contraseña para unirse a la reunión.", + "aboutReadOnly": "Los participantes moderadores pueden agregar una $t(lockRoomPassword) a la reunión. Los participantes deberán proporcionar la $t(lockRoomPassword) antes de que se les permita unirse a la reunión.", + "insecureRoomNameWarningNative": "El nombre de esta sala es inseguro. Participantes indeseados podrían ingresar a su reunión. {{recommendAction}} Aprenda más sobre asegurar su reunión ", + "insecureRoomNameWarningWeb": "El nombre de esta sala es inseguro. Participantes indeseados podrían ingresar a su reunión. {{recommendAction}} Aprenda más sobre asegurar su reunión aquí.", + "title": "Opciones de seguridad", + "unsafeRoomActions": { + "meeting": "Considere hacer más segura su reunión utilizando el botón de seguridad.", + "prejoin": "Considere utilizar un nombre de reunión más único.", + "welcome": "Considere utilizar un nombre de reunión más único, o elija una de las sugerencias" + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Ajustes", + "calendar": { + "about": "La integración del calendario de {{appName}} se usa para acceder al calendario de manera segura para que puedas estar al tanto de los próximos eventos.", + "disconnect": "Desconectar", + "microsoftSignIn": "Iniciar sesión con Microsoft", + "signedIn": "Actualmente se accede a eventos del calendario para {{email}}. Haz clic en el botón Desconectar más abajo para detener el acceso a eventos del calendario.", + "title": "Calendario" + }, + "desktopShareFramerate": "Velocidad de fotogramas para compartir el escritorio", + "desktopShareHighFpsWarning": "Una mayor velocidad de fotogramas para el uso compartido de la pantalla podría afectar a su ancho de banda. Es necesario reiniciar la pantalla compartida para que la nueva configuración surta efecto.", + "desktopShareWarning": "Es necesario reiniciar la pantalla compartida para que los nuevos ajustes surtan efecto.", + "devices": "Dispositivos", + "followMe": "Todos me siguen", + "framesPerSecond": "fotogramas por segundo", + "incomingMessage": "Mensaje entrante", + "language": "Idioma", + "loggedIn": "Sesión iniciada como {{name}}", + "maxStageParticipants": "", + "microphones": "Micrófono", + "moderator": "Moderador", + "moderatorOptions": "Opciones de moderador", + "more": "Más", + "name": "Nombre", + "noDevice": "Ninguno", + "notifications": "Notificaciones", + "participantJoined": "Un participante se ha unido", + "participantKnocking": "Un participante ha ingresado al lobby", + "participantLeft": "Un participante se ha ido", + "playSounds": "Reproducir sonido", + "reactions": "Reacciones de la reunión", + "sameAsSystem": "Igual que el sistema ({{label}})", + "selectAudioOutput": "Salida de audio", + "selectCamera": "Cámara", + "selectMic": "Micrófono", + "selfView": "Vista propia", + "shortcuts": "Atajos", + "speakers": "Altavoces", + "startAudioMuted": "Todos inician silenciados", + "startReactionsMuted": "Silenciar sonidos de reacción para todos", + "startVideoMuted": "Todos inician con cámara desactivada", + "talkWhileMuted": "Hablar en silencio", + "title": "Ajustes", + "video": "Video" + }, + "settingsView": { + "advanced": "Avanzado", + "alertCancel": "Cancelar", + "alertOk": "Aceptar", + "alertTitle": "Advertencia", + "alertURLText": "La dirección URL introducida no es válida", + "buildInfoSection": "Información de la compilación", + "conferenceSection": "Conferencia", + "disableCallIntegration": "Desactivar la integración nativa de llamadas", + "disableCrashReporting": "Desactivar el reporte de crasheos", + "disableCrashReportingWarning": "¿Estás seguro que no deseas reportarnos los crasheos? La opción se activará al reiniciar la app.", + "disableP2P": "Desactivar la comunicación directa (\"Peer-To-Peer\")", + "displayName": "Nombre a mostrar", + "displayNamePlaceholderText": "Por ejemplo: Juan Pérez", + "email": "Correo electrónico", + "emailPlaceholderText": "", + "goTo": "Ir a", + "header": "Configuración", + "help": "Ayuda", + "links": "Enlaces", + "privacy": "Privacidad", + "profileSection": "Perfil", + "serverURL": "URL del servidor", + "showAdvanced": "Mostrar configuración avanzada", + "startCarModeInLowBandwidthMode": "Iniciar módo automóvil en modo ancho de banda bajo", + "startWithAudioMuted": "Iniciar con el micrófono apagado", + "startWithVideoMuted": "Iniciar con la cámara apagada", + "terms": "Términos", + "version": "Versión" + }, + "share": { + "dialInfoText": "\n\n=====\n\n¿Deseas entrar por llamada telefónica?\n\n{{defaultDialInNumber}}La lista de números disponibles para la reunión está disponible aquí: \n{{dialInfoPageUrl}}", + "mainText": "Haz clic en el enlace para unirte a la reunión:\n{{roomUrl}}" + }, + "speaker": "Participante", + "speakerStats": { + "angry": "Enojado", + "disgusted": "Disgustado", + "displayEmotions": "Mostrar emociones", + "fearful": "Temeroso", + "happy": "Feliz", + "hours": "{{count}} h", + "minutes": "{{count}} min", + "name": "Nombre", + "neutral": "Neutral", + "sad": "Triste", + "search": "Buscar", + "searchHint": "Buscar participantes", + "seconds": "{{count}} s", + "speakerStats": "Estadísticas de participantes", + "speakerTime": "Tiempo hablado", + "surprised": "Sorprendido" + }, + "startupoverlay": { + "genericTitle": "La reunión debe utilizar su micrófono y su cámara.", + "policyText": " ", + "title": "{{app}} necesita usar el micrófono y la cámara." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Reconectar", + "text": "Presiona el botón Reconectar para volver a conectarte.", + "title": "La vídeollamada se interrumpió porque la computadora estaba suspendida." + }, + "termsView": { + "title": "Términos" + }, + "toggleTopPanelLabel": "Alternar panel superior", + "toolbar": { + "Settings": "Configuración", + "accessibilityLabel": { + "Settings": "Alternar configuración", + "audioOnly": "Alternar cámaras de los demás", + "audioRoute": "Seleccionar el dispositivo de sonido", + "boo": "Boo", + "breakoutRoom": "Unirse/abandonar sala para grupos pequeños", + "callQuality": "Administrar la calidad de vídeo", + "carmode": "Modo automóvil", + "cc": "Alternar subtítulos", + "chat": "Alternar ventana de chat", + "clap": "Aplauso", + "closeChat": "Cerrar chat", + "closeMoreActions": "Cerrar el menú de más acciones", + "closeParticipantsPane": "Cerrar panel de participantes", + "collapse": "Colapsar", + "document": "Alternar documento compartido", + "documentClose": "Cerrar documento compartido", + "documentOpen": "Abrir documento compartido", + "download": "Descargar nuestras aplicaciones", + "embedMeeting": "Insertar reunión", + "endConference": "Terminar reunión para todos", + "enterFullScreen": "Ver en pantalla completa", + "enterTileView": "Ingresar en vista de mosaico", + "exitFullScreen": "Salir de pantalla completa", + "exitTileView": "Salir de vista de mosaico", + "expand": "Ampliar", + "feedback": "Dejar comentarios", + "fullScreen": "Alternar pantalla completa", + "giphy": "Alternar menú GIPHY", + "grantModerator": "Convertir en moderador", + "hangup": "Colgar", + "heading": "Barra de herramientas", + "help": "Ayuda", + "hideWhiteboard": "Esconder pizarra", + "invite": "Invitar personas", + "kick": "Expulsar participante", + "laugh": "Ríete", + "leaveConference": "Abandonar reunión", + "like": "Pulgares arriba", + "linkToSalesforce": "Enlace a Salesforce", + "lobbyButton": "Activar / desactivar el modo lobby", + "localRecording": "Alternar controles de grabación local", + "lockRoom": "Alternar contraseña de la reunión", + "lowerHand": "Bajar mano", + "moreActions": "Alternar más acciones", + "moreActionsMenu": "Menú de más acciones", + "moreOptions": "Mostrar más opciones", + "mute": "Silenciar micrófono", + "muteEveryone": "Silenciar a todos", + "muteEveryoneElse": "Silenciar a todos los demás", + "muteEveryoneElsesVideoStream": "Detener el video del resto", + "muteEveryonesVideoStream": "Detener el video de todos", + "muteGUMPending": "Conectando su micrófono", + "noiseSuppression": "Supresión de ruido", + "openChat": "Abrir chat", + "participants": "Participantes", + "pip": "Alternar modo ventana en miniatura", + "privateMessage": "Enviar mensaje privado", + "profile": "Editar perfil", + "raiseHand": "Levantar o bajar la mano", + "reactions": "Reacciones", + "reactionsMenu": "Abrir / Cerrar el menú de reacciones", + "recording": "Alternar grabación", + "remoteMute": "Silenciar participante", + "remoteVideoMute": "Desactivar la cámara del participante", + "security": "Opciones de seguridad", + "selectBackground": "Seleccione el fondo", + "selfView": "Alternar vista propia", + "shareRoom": "Invitar a alguien", + "shareYourScreen": "Comenzar / detener compartir pantalla", + "shareaudio": "Compartir audio", + "sharedvideo": "Alternar vídeo compartido", + "shortcuts": "Alternar accesos directos", + "show": "Mostrar en primer", + "showWhiteboard": "Mostrar vista propia", + "silence": "Silencio", + "speakerStats": "Alternar estadísticas del orador", + "stopScreenSharing": "Dejar de compartir pantalla", + "stopSharedVideo": "Detener video", + "surprised": "Sorprendido", + "tileView": "Alternar vista de mosaico", + "toggleCamera": "Alternar cámara", + "toggleFilmstrip": "Alternar mosaicos", + "unmute": "Activar micrófono", + "videoblur": "Alternar desenfoque de vídeo", + "videomute": "Alternar vídeo", + "videomuteGUMPending": "Conectando tu cámara", + "videounmute": "Encender cámara" + }, + "addPeople": "Agregar personas a la llamada", + "audioOnlyOff": "Mostrar cámaras de los demás", + "audioOnlyOn": "Ocultar cámaras de los demás (para ahorrar datos)", + "audioRoute": "Selecciona el dispositivo de sonido", + "audioSettings": "Ajustes de audio", + "authenticate": "Autenticar", + "boo": "Boo", + "callQuality": "Ajustar la calidad de vídeo", + "chat": "Abrir o cerrar chat", + "clap": "Aplauso", + "closeChat": "Cerrar chat", + "closeParticipantsPane": "Cerrar panel de participantes", + "closeReactionsMenu": "Cerrar el menú de reacciones", + "disableNoiseSuppression": "Desactivar supresión de ruido", + "disableReactionSounds": "Puede desactivar los sonidos de reacción para esta reunión", + "documentClose": "Cerrar documento compartido", + "documentOpen": "Abrir documento compartido", + "download": "Descarga nuestras aplicaciones", + "e2ee": "Cifrado de extremo a extremo", + "embedMeeting": "Insertar reunión", + "enableNoiseSuppression": "Activar supresión de ruido", + "endConference": "Terminar reunión para todos", + "enterFullScreen": "Pantalla completa", + "enterTileView": "Ver en cuadrícula", + "exitFullScreen": "Salir de pantalla completa", + "exitTileView": "Salir de vista de mosaico", + "feedback": "Dejar sugerencias", + "giphy": "Alternar menú GIPHY", + "hangup": "Colgar", + "help": "Ayuda", + "hideWhiteboard": "Esconder pizarra", + "invite": "Invitar personas", + "joinBreakoutRoom": "Unirse a sala para grupos pequeños", + "laugh": "Ríete", + "leaveBreakoutRoom": "Abandonar sala para grupos pequeños", + "leaveConference": "Abandonar reunión", + "like": "Pulgares arriba", + "linkToSalesforce": "", + "lobbyButtonDisable": "Desactivar el modo lobby", + "lobbyButtonEnable": "Activar el modo lobby", + "login": "Inicio de sesión", + "logout": "Cerrar sesión", + "lowerYourHand": "Bajar la mano", + "moreActions": "Más acciones", + "moreOptions": "Más opciones", + "mute": "Activar o silenciar el micrófono", + "muteEveryone": "Silenciar a todos", + "muteEveryonesVideo": "Desactivar la cámara de todos", + "muteGUMPending": "Conectando tu micrónono", + "noAudioSignalDesc": "Checa si no está silenciado en tu configuración del sistema o dispositivo, o cambia de micrófono.", + "noAudioSignalDescSuggestion": "Si no lo silenciaste a propósito desde la configuración del sistema o el dispositivo, intenta usar este otro micrófono:", + "noAudioSignalDialInDesc": "Además, puedes llamar usando:", + "noAudioSignalDialInLinkDesc": "Números de llamada", + "noAudioSignalTitle": "¡No se registra audio de tu micrófono!", + "noiseSuppression": "Supresión de ruido", + "noisyAudioInputDesc": "Tu micrófono está haciendo ruido, siléncialo, ajusta su volumen en configuración del sistema, o cambia de micrófono.", + "noisyAudioInputTitle": "Tu micrófono parece estar ruidoso", + "openChat": "Abrir chat", + "openReactionsMenu": "Abrir el menú de reacciones", + "participants": "Participantes", + "pip": "Mostrar en ventana pequeña", + "privateMessage": "Enviar mensaje privado", + "profile": "Editar perfil", + "raiseHand": "Levantar o bajar la mano", + "raiseYourHand": "Levantar la mano", + "reactionBoo": "Enviar la reacción de Boo", + "reactionClap": "Enviar reacción de aplauso", + "reactionLaugh": "Enviar reacción de risa", + "reactionLike": "Enviar la reacción de los pulgares hacia arriba", + "reactionSilence": "Enviar reacción de silencio", + "reactionSurprised": "Enviar reacción de sorpresa", + "reactions": "Reacciones", + "security": "Opciones de seguridad", + "selectBackground": "Seleccionar fondo", + "shareRoom": "Invitar a alguien", + "shareaudio": "Compartir audio", + "sharedvideo": "Compartir un vídeo", + "shortcuts": "Ver atajos del teclado", + "showWhiteboard": "Mostrar pizarra", + "silence": "Silencio", + "speakerStats": "Estadísticas de los participantes", + "startScreenSharing": "Comenzar a compartir pantalla", + "startSubtitles": "Iniciar subtítulos", + "stopAudioSharing": "Dejar de compartir el audio", + "stopScreenSharing": "Dejar de compartir pantalla", + "stopSharedVideo": "Detener vídeo", + "stopSubtitles": "Detener subtítulos", + "surprised": "Compartir audio", + "talkWhileMutedPopup": "¿Intentas hablar? Estás silenciado.", + "tileViewToggle": "Activar o desactivar vista en cuadrícula", + "toggleCamera": "Alternar cámara", + "unmute": "Activar", + "videoSettings": "Ajustes de vídeo", + "videomute": "Detener cámara", + "videomuteGUMPending": "Conectando tu cámara", + "videounmute": "Iniciar cámara" + }, + "transcribing": { + "ccButtonTooltip": "Iniciar o detener subtítulos", + "error": "La transcripción falló. Por favor, inténtelo nuevamente.", + "expandedLabel": "Transcripción encendida", + "failedToStart": "No es posible iniciar la transcripción", + "labelToolTip": "La reunión se está transcribiendo", + "off": "Transcripción detenida", + "pending": "Preparando para transcribir la reunión…", + "sourceLanguageDesc": "El lenguaje actual de la reunión es {{sourceLanguage}}.
Puedes cambiarlo desde ", + "sourceLanguageHere": "aquí", + "start": "Mostrar subtítulos", + "stop": "Dejar de mostrar subtítulos", + "subtitles": "Subtítulos", + "subtitlesOff": "", + "tr": "TR" + }, + "unpinParticipant": "", + "userMedia": { + "grantPermissions": "Otorga permisos para usar la cámara y el micrófono." + }, + "videoSIPGW": { + "busy": "Estamos trabajando para liberar recursos. Vuelve a intentarlo en unos minutos.", + "busyTitle": "El servicio de salas está actualmente ocupado", + "errorAlreadyInvited": "{{displayName}} ya ha sido invitado", + "errorInvite": "Conferencia aún no establecida. Vuelve a intentarlo más tarde.", + "errorInviteFailed": "Estamos trabajando para resolver el problema. Vuelve a intentarlo más tarde.", + "errorInviteFailedTitle": "No se pudo invitar a {{displayName}}", + "errorInviteTitle": "Error al invitar en la sala", + "pending": "{{displayName}} ha sido invitado" + }, + "videoStatus": { + "adjustFor": "Ajustar para:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Estás en modo de ancho de banda bajo. En este modo, sólo recibirás audio y pantalla compartida.", + "bestPerformance": "Mejor rendimiento", + "callQuality": "Calidad de vídeo", + "hd": "HD", + "hdTooltip": "Viendo vídeo en alta definición", + "highDefinition": "Alta definición", + "highestQuality": "Calidad máxima", + "labelTooiltipNoVideo": "Sin vídeo", + "labelTooltipAudioOnly": "Modo de ancho de banda bajo habilitado", + "ld": "LD", + "ldTooltip": "Viendo vídeo en baja definición", + "lowDefinition": "Baja definición", + "performanceSettings": "Ajustes de rendimiento", + "recording": "Grabación en curso", + "sd": "SD", + "sdTooltip": "Viendo vídeo en definición estándar", + "standardDefinition": "Definición estándar", + "streaming": "Transmisión en curso" + }, + "videothumbnail": { + "connectionInfo": "Información de conexión", + "domute": "Silenciar", + "domuteOthers": "Silenciar a todos los demás", + "domuteVideo": "Desactivar la cámara", + "domuteVideoOfOthers": "Desactivar la cámara de todos los demás", + "flip": "Voltear", + "grantModerator": "Convertir en moderador", + "hideSelfView": "Esconder vista propia", + "kick": "Expulsar", + "mirrorVideo": "Espejar mi video", + "moderator": "Moderador", + "mute": "Se silenció el participante", + "muted": "Silenciado", + "pinToStage": "", + "remoteControl": "Control remoto", + "screenSharing": "El participante está compartiendo su pantalla", + "show": "Mostrar en primer plano", + "showSelfView": "Mostrar vista propia", + "unpinFromStage": "", + "verify": "Verificar participante", + "videoMuted": "Cámara desactivada", + "videomute": "El participante paró su cámara" + }, + "virtualBackground": { + "addBackground": "Añadir fondo", + "apply": "Aplicar", + "backgroundEffectError": "No se ha podido aplicar el efecto de fondo.", + "blur": "Desenfoque", + "deleteImage": "Borrar imagen", + "desktopShare": "Compartir el escritorio", + "desktopShareError": "No se ha podido crear el escritorio compartido", + "image1": "Playa", + "image2": "Pared neutra blanca", + "image3": "Habitación blanca y vacía", + "image4": "Lámpara de pie negra", + "image5": "Montaña", + "image6": "Bosque", + "image7": "Amanecer", + "none": "Ninguno", + "pleaseWait": "Por favor, espera…", + "removeBackground": "Eliminar el fondo", + "slightBlur": "Desenfoque Ligero", + "title": "Fondos virtuales", + "uploadedImage": "Imagen subida {{index}}", + "webAssemblyWarning": "No se admite WebAssembly", + "webAssemblyWarningDescription": "WebAssembly está desactivado o no cuenta con soporte en este navegador" + }, + "visitors": { + "chatIndicator": "(visitante)", + "labelTooltip": "Cantidad de visitantes: {{count}}", + "notification": { + "description": "Levanta la mano para participar", + "title": "Eres un visitante en la reunión" + } + }, + "volumeSlider": "Deslizador de volumen", + "welcomepage": { + "accessibilityLabel": { + "join": "Toca para unirte", + "roomname": "Introduce el nombre de la sala" + }, + "addMeetingName": "Añadir el nombre de la reunión", + "appDescription": "Videollamadas para todo tu equipo. {{app}} es una aplicación completamente encriptada, segura, además de ser software libre 100% gratis, sin límites de tiempo, y sin tener que crear una cuenta.", + "audioVideoSwitch": { + "audio": "Voz", + "video": "Video" + }, + "calendar": "Calendario", + "connectCalendarButton": "Conectar el calendario", + "connectCalendarText": "Conecta tu calendario para ver todas tus reuniones de {{app}}. Además, agrega reuniones a tu calendario e inícialas con un solo clic.", + "enterRoomTitle": "Comenzar una reunión", + "getHelp": "Obtener ayuda", + "go": "IR", + "goSmall": "IR", + "headerSubtitle": "Reuniones seguras y de alta calidad", + "headerTitle": "Jitsi Meet", + "info": "Información", + "jitsiOnMobile": "Jitsi en el móvil: descarga nuestras aplicaciones y comienza una reunión desde cualquier lugar", + "join": "CREAR / UNIRSE", + "logo": { + "calendar": "Logotipo del calendario", + "desktopPreviewThumbnail": "Vista previa del escritorio en miniatura", + "googleLogo": "Logotipo de Google", + "logoDeepLinking": "Logotipo de la reunión de Jitsi", + "microsoftLogo": "Logotipo de Microsoft", + "policyLogo": "Logotipo de la política" + }, + "meetingsAccessibilityLabel": "Reuniones", + "mobileDownLoadLinkAndroid": "Descargar la aplicación móvil para Android", + "mobileDownLoadLinkFDroid": "Descargar la aplicación móvil para F-Droid", + "mobileDownLoadLinkIos": "Descargar la aplicación móvil para iOS", + "moderatedMessage": "O reserve con antelación una URL de reunión en la que usted sea el único moderador.", + "privacy": "Privacidad", + "recentList": "Reciente", + "recentListDelete": "Eliminar", + "recentListEmpty": "Tu historial de reuniones está vacío. Reúnete y aparecerán aquí.", + "recentMeetings": "Tus reuniones recientes", + "reducedUIText": "¡Bienvenido a {{app}}!", + "roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.", + "roomname": "Introduce el nombre de la sala", + "roomnameHint": "Introduce el nombre o URL de la sala a la que deseas unirte. Puedes inventar un nombre, simplemente infórmaselo a las personas con las que te reunirás para que introduzcan el mismo nombre.", + "sendFeedback": "Enviar sugerencias", + "settings": "Ajustes", + "startMeeting": "Iniciar la reunión", + "terms": "Términos", + "title": "Videoconferencias seguras, con gran variedad de funcionalidades y completamente gratuitas", + "upcomingMeetings": "Tus próximas reuniones" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Pizarra" + } + } +} diff --git a/lang/main-esUS.json b/lang/main-esUS.json new file mode 100644 index 0000000..8613220 --- /dev/null +++ b/lang/main-esUS.json @@ -0,0 +1,1196 @@ +{ + "addPeople": { + "add": "Invitar", + "addContacts": "Invitar a sus contactos", + "contacts": "contactos", + "copyInvite": "Copiar la invitación a la reunión", + "copyLink": "Copiar el link de la reunión", + "copyStream": "Copiar el link de la transmisión en vivo", + "countryNotSupported": "Aún no contamos con soporte a este destino.", + "countryReminder": "¿Llamando fuera de los Estados Unidos? ¡Por favor, asegúrese de empezar con el código de país!", + "defaultEmail": "Dirección de correo por defecto", + "disabled": "No puede invitar a otras personas.", + "failedToAdd": "Error al agregar participantes", + "footerText": "La marcación está desactivada.", + "googleEmail": "Correo electrónico de Google", + "inviteMoreHeader": "Usted se encuentra solo en la reunión", + "inviteMoreMailSubject": "Unirse a la reunión {{appName}}", + "inviteMorePrompt": "Invitar a más personas", + "linkCopied": "Link copiado al portapapeles", + "loading": "Buscando por contacto y número telefónico", + "loadingNumber": "Validando el número telefónico", + "loadingPeople": "Buscando contactos a invitar", + "noResults": "No se encontraron coincidencias", + "noValidNumbers": "Por favor ingrese un número de teléfono", + "outlookEmail": "Correo de Outlook", + "phoneNumbers": "números de teléfono", + "searchNumbers": "Agregar números telefónicos", + "searchPeople": "Buscar personas", + "searchPeopleAndNumbers": "Buscar personas o añadir sus números de teléfono", + "searching": "Buscando…", + "shareInvite": "Compartir la invitación a la reunión", + "shareLink": "Compartir el link de la reunion", + "shareStream": "Compartir el link de la transmición en vivo", + "sipAddresses": "direcciones SIP", + "telephone": "Teléfono: {{number}}", + "title": "Invitar a otras personas a esta reunión", + "yahooEmail": "Correo de Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Audífonos", + "none": "No hay dispositivos de audio disponibles", + "phone": "Teléfono", + "speaker": "Bocinas" + }, + "audioOnly": { + "audioOnly": "Solo sonido y pantalla compartida" + }, + "calendarSync": { + "addMeetingURL": "Agregar un vínculo a la reunión", + "confirmAddLink": "¿Quiere añadir un enlace de Jitsi a este evento?", + "error": { + "appConfiguration": "La integración del calendario no está configurada correctamente", + "generic": "Se ha producido un error. Compruebe la configuración del calendario o pruebe cargarlo nuevamente.", + "notSignedIn": "Se ha producido un error de autenticación para ver los eventos del calendario. Compruebe la configuración del calendario e intente iniciar sesión de nuevo" + }, + "join": "Unirse", + "joinTooltip": "Unirse a la reunión", + "nextMeeting": "próxima reunión", + "noEvents": "No hay eventos próximos programados.", + "ongoingMeeting": "reunión en curso", + "permissionButton": "Abrir configuración", + "permissionMessage": "Los permisos al calendario son necesarios para ver sus reuniones en la aplicación.", + "refresh": "Actualizar calendario", + "today": "Hoy" + }, + "chat": { + "enter": "Entrar en la sala", + "error": "Error: su mensaje no se envío. Motivo: {{error}}", + "fieldPlaceHolder": "Escriba su mensaje aquí", + "message": "Mensaje", + "messageAccessibleTitle": "{{user}} dice:", + "messageAccessibleTitleMe": "yo digo:", + "messageTo": "Mensaje privado para {{recipient}}", + "messagebox": "Escriba un mensaje", + "nickname": { + "popover": "Selecciona un apodo", + "title": "Introduce un apodo para usar el chat", + "titleWithPolls": "Introduce un apodo para usar el chat" + }, + "noMessagesMessage": "No hay mensajes en la reunión. ¡Inicie una conversación!", + "privateNotice": "Mensaje privado para {{recipient}}", + "smileysPanel": "Panel de Emojis", + "tabs": { + "chat": "Chat", + "polls": "Encuestas" + }, + "title": "Chat", + "titleWithPolls": "Chat", + "you": "usted" + }, + "chromeExtensionBanner": { + "buttonText": "Instalar extensión de Chrome", + "close": "Cerrar", + "dontShowAgain": "No mostrar nuevamente", + "installExtensionText": "Instalar la extensión para Google Calendar y la integración con Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Conectándose a su reunión…" + }, + "connection": { + "ATTACHED": "Adjunto", + "AUTHENTICATING": "Autenticando", + "AUTHFAIL": "Error de autenticación", + "CONNECTED": "Conectado", + "CONNECTING": "Conectando", + "CONNFAIL": "Error de conexión", + "DISCONNECTED": "Desconectado", + "DISCONNECTING": "Desconectando", + "ERROR": "Error", + "FETCH_SESSION_ID": "Obteniendo session-ID…", + "GET_SESSION_ID_ERROR": "Obtener session-id error: {{code}}", + "GOT_SESSION_ID": "Obteniendo session-ID… Listo", + "LOW_BANDWIDTH": "El video para {{displayName}} ha sido desactivado para ahorrar ancho de banda", + "RECONNECTING": "Ocurrió un problema en la red. Reconectando…" + }, + "connectionindicator": { + "address": "Dirección:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Ancho de banda estimado:", + "bitrate": "Tasa de transferencia:", + "bridgeCount": "Contador del servidor: ", + "codecs": "Codecs (A/V):", + "connectedTo": "Conectado a:", + "framerate": "Fotogramas por segundo:", + "less": "Mostrar menos", + "localaddress": "Dirección local:", + "localaddress_plural": "Direcciones locales:", + "localport": "Puerto local:", + "localport_plural": "Puertos locales:", + "maxEnabledResolution": "enviar max", + "more": "Mostrar más", + "packetloss": "Pérdida de paquetes:", + "participant_id": "ID participante:", + "quality": { + "good": "Buena", + "inactive": "Inactivo", + "lost": "Perdido", + "nonoptimal": "No es óptimo", + "poor": "Deficiente" + }, + "remoteaddress": "Dirección remota:", + "remoteaddress_plural": "Direcciones remotas:", + "remoteport": "Puerto remoto:", + "remoteport_plural": "Puertos remotos:", + "resolution": "Resolución:", + "savelogs": "Guardar logs", + "status": "Calidad:", + "transport": "Transporte:", + "transport_plural": "Transportes:", + "video_ssrc": "Video SSRC:" + }, + "dateUtils": { + "earlier": "Anterior", + "today": "Hoy", + "yesterday": "Ayer" + }, + "deepLinking": { + "appNotInstalled": "Necesitas la aplicación {{app}} para unirte a esta reunión en el teléfono.", + "description": "¿No pasó nada? Hemos intentado iniciar la reunión en la aplicación de escritorio {{app}}. Intenta de nuevo o inicia en la aplicación web {{app}}.", + "descriptionWithoutWeb": "¿No pasó nada? Intentamos iniciar su reunión en la aplicación de escritorio {{app}}.", + "downloadApp": "Descargar la app", + "ifDoNotHaveApp": "Si aún no tienes la app:", + "ifHaveApp": "Si ya tienes la app:", + "joinInApp": "Unirse a la reunion usando la app", + "launchWebButton": "Iniciar en el navegador", + "openApp": "Continuar a la aplicación", + "title": "Iniciando la reunión en {{app}}…", + "tryAgainButton": "Intentar de nuevo en el escritorio" + }, + "defaultLink": "ej. {{url}}", + "defaultNickname": "ej. Juan Pérez", + "deviceError": { + "cameraError": "Error al acceder a tu cámara", + "cameraPermission": "Error al obtener permiso de la cámara", + "microphoneError": "Error al acceder a tu micrófono", + "microphonePermission": "Error al obtener permiso del micrófono" + }, + "deviceSelection": { + "noPermission": "Permiso no concedido", + "previewUnavailable": "Vista previa no disponible", + "selectADevice": "Seleccionar un dispositivo", + "testAudio": "Reproducir un sonido de prueba" + }, + "dialOut": { + "statusMessage": "está {{status}}" + }, + "dialog": { + "Back": "Anterior", + "Cancel": "Cancelar", + "IamHost": "Soy el anfitrión", + "Ok": "Aceptar", + "Remove": "Eliminar", + "Share": "Compartir", + "Submit": "Enviar", + "WaitForHostMsg": "La conferencia aún no ha comenzado. Si eres el anfitrión, inicia sesión. De lo contrario, espera a que llegue el anfitrión.", + "WaitingForHost": "Esperando al anfitrión…", + "WaitingForHostTitle": "Esperando al anfitrión…", + "Yes": "Sí", + "accessibilityLabel": { + "liveStreaming": "Transmisión en vivo" + }, + "add": "Agregar", + "allow": "Permitir", + "alreadySharedVideoMsg": "Otro participante ya está compartiendo un video. Esta conferencia sólo permite compartir un video a la vez.", + "alreadySharedVideoTitle": "Solo se permite un video compartido a la vez", + "applicationWindow": "Ventana de aplicación", + "authenticationRequired": "Se requiere autenticación", + "cameraConstraintFailedError": "Su cámara no satisface algunos de los requerimientos.", + "cameraNotFoundError": "No se encontró la cámara.", + "cameraNotSendingData": "No podemos acceder a la cámara. Asegúrate que no haya otra aplicación usándola, selecciona otro dispositivo del menú de configuración o intenta volver a cargar la aplicación.", + "cameraNotSendingDataTitle": "No es posible acceder a la cámara", + "cameraPermissionDeniedError": "No has otorgado permiso para usar la cámara. Puedes unirte a la conferencia de todos modos, pero los demás asistentes no te podrán ver. Usa el botón de la cámara en la barra de direcciones para solucionar esto.", + "cameraTimeoutError": "No se ha podido iniciar la fuente de vídeo. Se ha agotado el tiempo de espera.", + "cameraUnknownError": "No se puede usar la cámara por un motivo desconocido.", + "cameraUnsupportedResolutionError": "La cámara no admite la resolución de video requerida.", + "close": "Cerrar", + "conferenceDisconnectMsg": "Se recomienda que compruebes la conexión de la red. Reconectando en {{seconds}} segundos…", + "conferenceDisconnectTitle": "Ha sido desconectado.", + "conferenceReloadMsg": "Estamos tratando de arreglar esto. Reconectando en {{seconds}} segundos…", + "conferenceReloadTitle": "Desafortunadamente, algo salió mal.", + "confirm": "Confirmar", + "confirmNo": "No", + "confirmYes": "Sí", + "connectError": "¡Oops! Algo salió mal y no fue posible conectarnos a la conferencia.", + "connectErrorWithMsg": "¡Oops! Algo salió mal y no fue posible conectarnos a la conferencia: {{msg}}", + "connecting": "Conectando", + "contactSupport": "Contacta al soporte técnico", + "copied": "Copiado", + "copy": "Copiar", + "dismiss": "Descartar", + "displayNameRequired": "¡Hola! ¿Cuál es tu nombre?", + "done": "Listo", + "e2eeDescription": "El cifrado de extremo a extremo es actualmente EXPERIMENTAL. Tenga en cuenta que activarlo puede deshabilitar servicios como: grabación, transmisión en vivo y participación telefónica. Además, esta reunión solo funcionará con personas que se unan con un navegador.", + "e2eeDisabledDueToMaxModeDescription": "No se puede activar el cifrado de extremo a extremo debido al gran número de participantes en la conferencia.", + "e2eeLabel": "Habilitar cifrado Extremo-a-Extremo", + "e2eeWarning": "ADVERTENCIA: No todos los participantes de esta reunión soportan el cifrado de extremo a extremo. Si usted habilita esta opción, ellos no podrán verlo ni oírlo.", + "e2eeWillDisableDueToMaxModeDescription": "ADVERTENCIA: El cifrado de extremo a extremo se desactivará automáticamente si se unen más participantes a la conferencia.", + "embedMeeting": "Incrustar reunión", + "enterDisplayName": "Por favor ingresa tu nombre aquí", + "error": "Error", + "externalInstallationMsg": "Necesita instalar nuestra extensión para compartir pantalla.", + "externalInstallationTitle": "Extensión requerida", + "goToStore": "Ir a la tienda web", + "gracefulShutdown": "Nuestro servicio se encuentra en mantenimiento. Por favor, intente más tarde.", + "grantModeratorDialog": "¿Estas seguro de que quieres convertir a este participante en moderator?", + "grantModeratorTitle": "Convertir en moderador", + "hideShareAudioHelper": "No volver a mostrar este diálogo", + "incorrectPassword": "Nombre de usuario o contraseña incorrecta", + "incorrectRoomLockPassword": "Contraseña incorrecta", + "inlineInstallExtension": "Instalar ahora", + "inlineInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.", + "internalError": "¡Oops! Algo salió mal. El siguiente error ocurrió: {{error}}", + "internalErrorTitle": "Error interno", + "kickMessage": "Puede ponerse en contacto con {{participantDisplayName}} para obtener más detalles.", + "kickParticipantButton": "Expulsar", + "kickParticipantDialog": "¿Seguro que quiere expulsar a este participante?", + "kickParticipantTitle": "¿Expulsar a este participante?", + "kickTitle": "¡Ay! {{participantDisplayName}} te expulsó de la reunión", + "liveStreaming": "Transmisión en vivo", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "No es posible mientras la grabación este activa", + "liveStreamingDisabledForGuestTooltip": "Los invitados no pueden iniciar la transmisión en vivo.", + "liveStreamingDisabledTooltip": "Las trasmisiones están deshabilitadas.", + "localUserControls": "Controles de usuario locales", + "lockMessage": "No se pudo bloquear la conferencia.", + "lockRoom": "Agregar $t(lockRoomPasswordUppercase) a la reunión", + "lockTitle": "El bloqueo falló", + "login": "Iniciar sesión", + "logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?", + "logoutTitle": "Cerrar sesión", + "maxUsersLimitReached": "El límite máximo de participantes ha sido alcanzado. Por favor contacta al organizador o intenta más tarde.", + "maxUsersLimitReachedTitle": "La reunión está llena.", + "micConstraintFailedError": "El micrófono no satisface algunos de los requerimientos.", + "micNotFoundError": "No se encontró el micrófono.", + "micNotSendingData": "Vaya a la configuración de su computadora para activar el micrófono y ajustar su nivel", + "micNotSendingDataTitle": "Su micrófono está silenciado en la configuración de su sistema", + "micPermissionDeniedError": "No ha otorgado permisos para usar su micrófono. Puede unirse a la conferencia, pero no lo podrán escuchar. Utilice el botón en la barra de dirección para solucionar esto.", + "micTimeoutError": "No se ha podido iniciar la fuente de audio. Se ha agotado el tiempo de espera.", + "micUnknownError": "No se puede usar el micrófono por motivos desconocidos.", + "moderationAudioLabel": "Permitir a los asistentes activar su audio.", + "moderationVideoLabel": "Permitir a los asistentes activar su video.", + "muteEveryoneDialog": "¿Estás seguro que quieres silenciar a todos? No podrás quitarles el silencio, pero ellos pueden quitárselo en cualquier momento.", + "muteEveryoneDialogModerationOn": "Los participantes pueden enviar una solicitud de intervención en cualquier momento.", + "muteEveryoneElseDialog": "Una vez silenciados, no podrás quitarles el modo silencio, pero ellos podrán hacerlo en cualquier momento.", + "muteEveryoneElseTitle": "¿Silenciar a todos excepto a {{whom}}?", + "muteEveryoneElsesVideoDialog": "Una vez desactivada la cámara, no podrás volver a activarla, pero pueden volver a activarla en cualquier momento.", + "muteEveryoneElsesVideoTitle": "¿Detener el vídeo de todos, excepto el de {{whom}}?", + "muteEveryoneSelf": "ti mismo", + "muteEveryoneStartMuted": "Todos inician silenciados desde ahora", + "muteEveryoneTitle": "¿Silenciar a todos?", + "muteEveryonesVideoDialog": "Los participantes pueden encender su vídeo en cualquier momento.", + "muteEveryonesVideoDialogModerationOn": "Los participantes pueden enviar una solicitud para encender su vídeo en cualquier momento.", + "muteEveryonesVideoDialogOk": "Desactivar", + "muteEveryonesVideoTitle": "¿Detener el vídeo de todos?", + "muteParticipantBody": "No podrás quitarles el modo en silencio, pero ellos pueden quitárselo en cualquier momento.", + "muteParticipantButton": "Silenciar", + "muteParticipantDialog": "¿Seguro que quieres silenciar a este participante? No podrás revertir esta acción, pero el participante podrá hacerlo en cualquier momento", + "muteParticipantTitle": "¿Silenciar a este participante?", + "muteParticipantsVideoBody": "No podrás volver a encender la cámara, pero ellos pueden volver a encenderla en cualquier momento.", + "muteParticipantsVideoButton": "Detener video", + "muteParticipantsVideoDialog": "¿Estás seguro de que quieres apagar la cámara de este participante? No podrás volver a encender la cámara, pero ellos pueden volver a encenderla en cualquier momento.", + "muteParticipantsVideoTitle": "¿Desactivar la cámara de este participante?", + "noDropboxToken": "No hay un token válido de Dropbox", + "password": "Contraseña", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "No se soporta $t(lockRoomPassword) en la reunión", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) no es compatible", + "passwordRequired": "$t(lockRoomPasswordUppercase) necesario", + "permissionCameraRequiredError": "El permiso de cámara es necesario para participar en conferencias con vídeo. Por favor, permítelo en Ajustes", + "permissionErrorTitle": "Permiso necesario", + "permissionMicRequiredError": "El permiso de micrófono es necesario para participar en conferencias con sonido. Por favor, permítelo en Ajustes", + "popupError": "Su navegador está bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuración de seguridad de su navegador y vuelva a intentarlo.", + "popupErrorTitle": "Ventana emergente bloqueada", + "readMore": "mas", + "recording": "Grabando", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "No es posible mientras la transmisión en vivo este activa", + "recordingDisabledForGuestTooltip": "Los invitados no pueden iniciar grabaciones.", + "recordingDisabledTooltip": "Inicio de grabación desactivado.", + "rejoinNow": "Reunirse ahora", + "remoteControlAllowedMessage": "¡{{user}} ha aceptado tu solicitud de control remoto!", + "remoteControlDeniedMessage": "¡{{user}} ha rechazado tu solicitud de control remoto!", + "remoteControlErrorMessage": "¡Ha ocurrido un error tratando de solicitar permiso de control remoto de {{user}}!", + "remoteControlRequestMessage": "¿Permitirá que {{user}} controle remotamente su computadora?", + "remoteControlShareScreenWarning": "¡Tenga en cuenta que si presiona \"Permitir\" usted compartirá su pantalla!", + "remoteControlStopMessage": "¡La sesión de control remoto ha finalizado!", + "remoteControlTitle": "Control de escritorio remoto", + "remoteUserControls": "El control remoto de {{username}}", + "removePassword": "Eliminar $t(lockRoomPassword)", + "removeSharedVideoMsg": "¿Estás seguro de que deseas eliminar el video compartido?", + "removeSharedVideoTitle": "Eliminar video compartido", + "reservationError": "Error del sistema de reservaciones", + "reservationErrorMsg": "Código de error: {{code}}, mensaje: {{msg}}", + "retry": "Reintentar", + "screenSharingAudio": "Compartir audio", + "screenSharingFailed": "¡Oops! ¡Algo salio mal, no se pudo iniciar la compartición de su pantalla!", + "screenSharingFailedTitle": "¡Fallo al compartir su pantalla!", + "screenSharingFailedToInstall": "¡Uy! La extensión de uso compartido de pantalla no se pudo instalar.", + "screenSharingFailedToInstallTitle": "La extensión de uso compartido de pantalla no se pudo instalar", + "screenSharingFirefoxPermissionDeniedError": "Algo salió mal al compartir pantalla. Asegúrate de habernos dado permiso para hacerlo.", + "screenSharingFirefoxPermissionDeniedTitle": "¡Uy! No pudimos iniciar el uso compartido de la pantalla.", + "screenSharingPermissionDeniedError": "¡Uy! Algo salió mal con tus permisos de extensión para compartir pantalla. Vuelve a cargar la página e intenta de nuevo.", + "sendPrivateMessage": "Acabas de recibir un mensaje privado. ¿Deseas responder en privado o a todos?", + "sendPrivateMessageCancel": "Enviar al grupo", + "sendPrivateMessageOk": "Enviar en privado", + "sendPrivateMessageTitle": "¿Enviar en privado?", + "serviceUnavailable": "Servicio no disponible", + "sessTerminated": "Llamada terminada", + "sessionRestarted": "Llamada reiniciada por un problema de conexión.", + "shareAudio": "Continuar", + "shareAudioTitle": "Cómo compartir el audio", + "shareAudioWarningD1": "debes dejar de compartir la pantalla antes de compartir el audio.", + "shareAudioWarningD2": "Tienes que reiniciar tu pantalla compartida y marcar la opción \"compartir audio\".", + "shareAudioWarningH1": "Si quieres compartir sólo el audio:", + "shareAudioWarningTitle": "Hay que dejar de compartir la pantalla antes de compartir el audio", + "shareMediaWarningGenericH2": "Si quieres compartir tu pantalla y audio", + "shareScreenWarningD1": "debes dejar de compartir el audio antes de compartir la pantalla.", + "shareScreenWarningD2": "tienes que dejar de compartir el audio, empezar a compartir la pantalla y marcar la opción \"compartir el audio\".", + "shareScreenWarningH1": "Si quieres compartir sólo tu pantalla:", + "shareScreenWarningTitle": "Tienes que dejar de compartir el audio antes de compartir la pantalla", + "shareVideoLinkError": "Proporciona un enlace correcto.", + "shareVideoTitle": "Compartir un video", + "shareYourScreen": "Compartir pantalla", + "shareYourScreenDisabled": "Se desactivó la opción para compartir pantalla.", + "shareYourScreenDisabledForGuest": "Los invitados no pueden compartir la pantalla.", + "sharedVideoLinkPlaceholder": "Enlace de YouTube o enlace de vídeo directo", + "startLiveStreaming": "Iniciar transmisión en vivo", + "startRecording": "Iniciar grabación", + "startRemoteControlErrorMessage": "Se produjo un error al intentar iniciar la sesión de control remoto.", + "stopLiveStreaming": "Detener transmisión en vivo", + "stopRecording": "Detener grabación", + "stopRecordingWarning": "¿Estás seguro de que deseas detener la grabación?", + "stopStreamingWarning": "¿Estás seguro de que deseas detener la transmisión en vivo?", + "streamKey": "Clave de transmisión en vivo", + "thankYou": "¡Gracias por usar {{appName}}!", + "token": "token", + "tokenAuthFailed": "Lo sentimos, no tienes permiso para unirte a esta llamada.", + "tokenAuthFailedTitle": "Error de autenticación", + "transcribing": "Transcribiendo", + "unlockRoom": "Quitar la $t(lockRoomPassword) de reunión", + "user": "Usuario", + "userIdentifier": "Identificador de usuario", + "userPassword": "contraseña del usuario", + "videoLink": "Enlace de vídeo", + "viewUpgradeOptions": "Ver opciones de mejora", + "viewUpgradeOptionsContent": "Para obtener acceso ilimitado a las funciones premium, como la grabación, las transcripciones, el streaming RTMP y otras, tendrás que actualizar tu plan.", + "viewUpgradeOptionsTitle": "¡Has descubierto una característica premium!", + "yourEntireScreen": "Toda la pantalla" + }, + "documentSharing": { + "title": "Compartir documento" + }, + "e2ee": { + "labelToolTip": "La comunicación de audio y video en esta reunión está cifrada de extremo a extremo" + }, + "embedMeeting": { + "title": "Insertar reunión en sitio web" + }, + "feedback": { + "average": "Promedio", + "bad": "Mala", + "detailsLabel": "Cuéntanos más sobre tu experiencia.", + "good": "Buena", + "rateExperience": "¿Cómo estuvo tu experiencia en la reunión?", + "star": "Estrella", + "veryBad": "Muy mala", + "veryGood": "Muy buena" + }, + "helpView": { + "title": "Centro de ayuda" + }, + "incomingCall": { + "answer": "Contestar", + "audioCallTitle": "Llamada entrante", + "decline": "Descartar", + "productLabel": "de Jitsi Meet", + "videoCallTitle": "Videollamada" + }, + "info": { + "accessibilityLabel": "Mostrar información", + "addPassword": "Agregar $t(lockRoomPassword)", + "cancelPassword": "Cancelar $t(lockRoomPassword)", + "conferenceURL": "Enlace:", + "copyNumber": "Copiar número", + "country": "País", + "dialANumber": "Para unirte a la reunión, marca uno de estos números y, luego introduce el PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Lo sentimos, actualmente no se admite el marcado telefónico a la reunión.", + "dialInNumber": "Marcar:", + "dialInSummaryError": "Se ha producido un error al capturar la información de marcación. Vuelva a intentarlo más tarde", + "dialInTollFree": "Número gratuito", + "genericError": "Algo salió mal.", + "inviteLiveStream": "Para ver la transmisión en vivo de esta reunión, haz clic en este enlace: {{url}}", + "invitePhone": "También puedes entrar por llamada telefónica: Marca al número {{number}}, y al escuchar la contestadora introduce {{conferenceID}}#\n", + "invitePhoneAlternatives": "Si necesitas un número telefónico de otro país, revisa los números disponibles en {{url}}\n\n\nSi además de entrar vía llamada vas a usar otro dispositivo, puedes usar este link para entrar sin audio: {{silentUrl}}", + "inviteSipEndpoint": "Para unirse utilizando la dirección SIP, introduzca esto: {{sipUri}}", + "inviteTextiOSInviteUrl": "Haz clic en el siguiente enlace para unirte: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Si marca a través de un teléfono de sala, utilice este enlace para unirse sin conectarse al audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} te invita a una reunión.", + "inviteTextiOSPhone": "Para participar por teléfono, utiliza este número: {{number}},,{{conferenceID}}. Si buscas otro número, ésta es la lista completa: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Estás invitado a unirte a una reunión.", + "inviteURLFirstPartPersonal": "{{name}} te esta invitando a una reunión.\n", + "inviteURLSecondPart": "\nLink para unirse a la reunión:\n{{url}}\n", + "label": "Información de la reunión", + "liveStreamURL": "Transmisión en vivo:", + "moreNumbers": "Más números", + "noNumbers": "No hay números para entrar por llamada telefónica.", + "noPassword": "Ninguna", + "noRoom": "No se especificó la sala a marcar.", + "numbers": "Números para entrar por llamada telefónica:", + "password": "$t(lockRoomPasswordUppercase):", + "sip": "Dirección SIP", + "title": "Compartir", + "tooltip": "Compartir el enlace y acceso telefónico para esta reunión" + }, + "inlineDialogFailure": { + "msg": "Tuvimos un pequeño tropiezo.", + "retry": "Volver a intentar", + "support": "Soporte", + "supportMsg": "Si esto sigue ocurriendo, contacta a" + }, + "inviteDialog": { + "alertText": "Se ha producido un error al invitar a algunos participantes", + "header": "Invitar", + "searchCallOnlyPlaceholder": "Introduce el número de teléfono", + "searchPeopleOnlyPlaceholder": "Buscar participantes", + "searchPlaceholder": "Participante o número de teléfono", + "send": "Enviar" + }, + "jitsiHome": "{{logo}} Logotipo, enlaces a la página web", + "keyboardShortcuts": { + "focusLocal": "Ver tu cámara", + "focusRemote": "Ver la cámara de otras personas", + "fullScreen": "Entrar o salir de pantalla completa", + "keyboardShortcuts": "Atajos de teclado", + "localRecording": "Mostrar u ocultar controles de grabación local", + "mute": "Activar o silenciar el micrófono", + "pushToTalk": "Presiona para hablar", + "raiseHand": "Levantar o bajar la mano", + "showSpeakerStats": "Mostrar estadísticas de los hablantes", + "toggleChat": "Abrir o cerrar el chat", + "toggleFilmstrip": "Mostrar u ocultar miniaturas de video", + "toggleParticipantsPane": "Mostrar u ocultar el panel de participantes", + "toggleScreensharing": "Cambiar entre cámara y pantalla compartida", + "toggleShortcuts": "Mostrar u ocultar atajos del teclado", + "videoMute": "Prender o apagar la cámara", + "videoQuality": "Ajustar la calidad de la llamada" + }, + "liveStreaming": { + "busy": "Nuestros servidores andan un poco ocupados. Vuelve a intentarlo en unos minutos.", + "busyTitle": "Todos los transmisores están ocupados", + "changeSignIn": "Cambiar de cuenta.", + "choose": "Elegir una transmisión en vivo", + "chooseCTA": "Elegir una opción de transmisión. Actualmente, la sesión está iniciada como {{email}}.", + "enterStreamKey": "Introduce la clave de transmisión como se indica arriba.", + "error": "La transmisión en vivo falló. Por favor, inténtelo de nuevo.", + "errorAPI": "Se produjo un error al acceder a las transmisiones de YouTube. Por favor intenta iniciar sesión otra vez.", + "errorLiveStreamNotEnabled": "La transmisión en vivo no está activada en {{email}}. Por favor, activa la transmisión en vivo o inicia sesión en una cuenta con la transmisión en vivo activada.", + "expandedOff": "La transmisión en vivo se ha detenido", + "expandedOn": "La reunión se está transmitiendo a YouTube.", + "expandedPending": "La transmisión en vivo se está iniciando…", + "failedToStart": "La transmisión en vivo no se pudo iniciar", + "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", + "onBy": "{{name}} inició la transmisión en vivo", + "pending": "Iniciando transmisión en vivo…", + "serviceName": "Servicio de transmisión en vivo", + "signIn": "Iniciar sesión con Google", + "signInCTA": "Para transmitir a YouTube, inicia sesión o introduce la clave de transmisión. Para transmitir a otro lugar, introduce el URL (que empieza en rtmp), seguido de la clave de transmisión. Debe haber una diagonal (/) entre ambos.", + "signOut": "Cerrar sesión", + "signedInAs": "Actualmente, la sesión está iniciada como:", + "start": "Iniciar una transmisión en vivo", + "streamIdHelp": "¿Qué es esto?", + "title": "Transmisión en vivo", + "unavailableTitle": "Transmisión en vivo no disponible", + "youtubeTerms": "Términos de servicios de YouTube" + }, + "lobby": { + "allow": "permitir", + "backToKnockModeButton": "No hay contraseña, pide permiso para entrar.", + "dialogTitle": "Sala de espera", + "disableDialogContent": "Sala de espera activada. Así no entrarán intrusos. ¿Quieres desactivarla?", + "disableDialogSubmit": "Desactivar", + "emailField": "Introduce tu correo electrónico", + "enableDialogPasswordField": "Establecer contraseña (opcional)", + "enableDialogSubmit": "Activar", + "enableDialogText": "La sala de espera te deja proteger tu reunión, de modo que todas los que entren enviarán una solicitud que deberá ser aprobada por un moderador.", + "enterPasswordButton": "Introduce la contraseña de la reunión", + "enterPasswordTitle": "Introduce la contraseña para poder entrar", + "errorMissingPassword": "Por favor, introduzca la contraseña de la reunión", + "invalidPassword": "Contraseña inválida", + "joinRejectedMessage": "Tu solicitud para entrar ha sido rechazada por un moderador.", + "joinTitle": "Entrar a la reunión", + "joinWithPasswordMessage": "Tratando de entrar con contraseña, por favor espera…", + "joiningMessage": "Podrás entrar tan pronto te acepten tu solicitud.", + "joiningTitle": "Pidiendo entrar a la reunión…", + "joiningWithPasswordTitle": "Uniéndose con la contraseña…", + "knockButton": "Pedir entrar", + "knockTitle": "Alguien quiere entrar a la reunión", + "knockingParticipantList": "Participantes que quieren entrar", + "nameField": "Introduce tu nombre", + "notificationLobbyAccessDenied": "{{originParticipantName}} no dejó entrar a {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} permitió entrar a {{targetParticipantName}}", + "notificationLobbyDisabled": "La sala de espera ha sido desactivada por {{originParticipantName}}", + "notificationLobbyEnabled": "La sala de espera ha sido activada por {{originParticipantName}}", + "notificationTitle": "Sala de espera", + "passwordField": "Introduce la contraseña de la reunión", + "passwordJoinButton": "Entrar", + "title": "Sala de espera", + "toggleLabel": "Activar sala de espera" + }, + "localRecording": { + "clientState": { + "off": "Desactivado", + "on": "Activado", + "unknown": "Desconocido" + }, + "dialogTitle": "Controles de grabación local", + "duration": "Duración", + "durationNA": "N/A", + "encoding": "Codificación", + "label": "GRA", + "labelToolTip": "Grabación local activada", + "localRecording": "Grabación local", + "me": "Yo", + "messages": { + "engaged": "Grabación local activada.", + "finished": "Sesión de grabación {{token}} terminada. Por favor, envía la grabación al organizador.", + "finishedModerator": "Sesión de grabación {{token}} terminada. Se ha guardado la grabación de la pista local. Por favor pida a los demás participantes que presenten sus grabaciones.", + "notModerator": "No eres el moderador. No puedes iniciar o detener la grabación local." + }, + "moderator": "Moderador", + "no": "No", + "participant": "Participante", + "participantStats": "Estadística de participantes", + "sessionToken": "Token de sesión", + "start": "Iniciar grabación", + "stop": "Detener grabación", + "yes": "Sí" + }, + "lockRoomPassword": "contraseña", + "lockRoomPasswordUppercase": "Contraseña", + "lonelyMeetingExperience": { + "button": "Invita a otros", + "youAreAlone": "Estás solo" + }, + "me": "yo", + "notify": { + "OldElectronAPPTitle": "¡Aplicación obsoleta e insegura!", + "allowAction": "Permitir", + "allowedUnmute": "Puedes anular el silencio del micrófono, iniciar la cámara o compartir la pantalla.", + "connectedOneMember": "{{name}} se unió a la reunión", + "connectedThreePlusMembers": "{{name}} y {{count}} más se unieron a la reunión", + "connectedTwoMembers": "{{first}} y {{second}} se unieron a la reunión", + "disconnected": "desconectado", + "focus": "Enfocar conferencia", + "focusFail": "{{component}} no disponible. Vuelve a intentar en {{ms}} segundos", + "grantedTo": "Se otorgaron derechos de moderador a {{to}}.", + "groupTitle": "Notificaciones", + "hostAskedUnmute": "El moderador quiere que hables", + "invitedOneMember": "{{name}} ha sido invitado", + "invitedThreePlusMembers": "{{name}} y {{count}} más han sido invitados", + "invitedTwoMembers": "{{first}} y {{second}} han sido invitados", + "kickParticipant": "{{kicker}} sacó a {{kicked}}", + "me": "Yo", + "moderationInEffectCSDescription": "Por favor, levante la mano si quiere compartir su pantalla.", + "moderationInEffectCSTitle": "La pantalla compartida está bloqueada por el moderador", + "moderationInEffectDescription": "Por favor, levanten la mano si quieren hablar.", + "moderationInEffectTitle": "Su micrófono está silenciado por el moderador", + "moderationInEffectVideoDescription": "Por favor, levanten la mano si quieren encender su cámara.", + "moderationInEffectVideoTitle": "Su cámara está bloqueada por el moderador", + "moderationRequestFromModerator": "El anfitrión desea que se desactive el silencio", + "moderationRequestFromParticipant": "Quiere hablar", + "moderationStartedTitle": "Comienzo de la moderación", + "moderationStoppedTitle": "La moderación se detuvo", + "moderationToggleDescription": "por {{participantDisplayName}}", + "moderator": "¡Se otorgaron privilegios de moderador!", + "muted": "Has iniciado la conversación con el micrófono apagado.", + "mutedRemotelyDescription": "Siempre puedes reactivar tu micrófono cuando estés listo para hablar. Vuélvelo a apagar cuando termines de hablar para no hacer ruido.", + "mutedRemotelyTitle": "¡{{Nombre del participante}} te ha silenciado!", + "mutedTitle": "¡Estás silenciado!", + "newDeviceAction": "Usar", + "newDeviceAudioTitle": "Se detectó un dispositivo de audio nuevo", + "newDeviceCameraTitle": "Se detectó una cámara nueva", + "oldElectronClientDescription1": "Estás usando una versión vieja de la aplicación de Jitsi Meet que tiene problemas de seguridad. ¡Por favor, actualiza a la ", + "oldElectronClientDescription2": "versión más reciente", + "oldElectronClientDescription3": " YA!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) eliminada por otro participante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) agregada por otro participante", + "raiseHandAction": "Levantar la mano", + "raisedHand": "{{name}} quisiera hablar.", + "reactionSounds": "Desactivar sonidos", + "screenShareNoAudio": "La casilla Compartir audio no estaba marcada en la pantalla de selección de ventanas.", + "screenShareNoAudioTitle": "No se pudo compartir el audio del sistema.", + "somebody": "Alguien", + "startSilentDescription": "Vuelve a ingresar para activar el audio", + "startSilentTitle": "¡Te uniste sin audio!", + "suboptimalBrowserWarning": "No tendrás una buena experiencia con este navegador. Por favor, intenta utilizar uno de los navegadores compatibles.", + "suboptimalExperienceTitle": "¡Tu navegador no es compatible!", + "unmute": "Reactivar micrófono", + "videoMutedRemotelyDescription": "Siempre puedes volver a encenderlo.", + "videoMutedRemotelyTitle": "Su vídeo ha sido desactivado por {{moderator}}" + }, + "participantsPane": { + "actions": { + "admit": "Admitir", + "admitAll": "Admitir todo", + "allow": "Permitir a los asistentes:", + "allowVideo": "Permitir vídeo", + "askUnmute": "Pida que le quiten el silencio", + "audioModeration": "Desmutearse a sí mismos", + "blockEveryoneMicCamera": "Bloquear el micrófono y la cámara de todos.", + "invite": "Invitar a alguien", + "mute": "Silenciar", + "muteAll": "Silenciar a todos los demás", + "muteEveryoneElse": "Silenciar al resto", + "reject": "Rechazar", + "stopEveryonesVideo": "Detener el vídeo de todos", + "stopVideo": "Detener el vídeo", + "unblockEveryoneMicCamera": "Desbloquear el micrófono y la cámara de todos", + "videoModeration": "Iniciar su vídeo" + }, + "close": "Cerrar", + "headings": { + "lobby": "Vestíbulo ({{count}})", + "participantsList": "Participantes en la reunión ({{count}})", + "waitingLobby": "Esperando en el vestíbulo ({{count}})" + }, + "title": "Participantes" + }, + "passwordDigitsOnly": "Hasta {{number}} cifras", + "passwordSetRemotely": "definida por otro participante", + "polls": { + "answer": { + "skip": "Saltar", + "submit": "Enviar" + }, + "create": { + "addOption": "Añadir opción", + "answerPlaceholder": "Opción {{index}}", + "cancel": "Cancelar", + "create": "Crear una encuesta", + "pollOption": "Opción de encuesta {{index}}", + "pollQuestion": "Pregunta de la encuesta", + "questionPlaceholder": "Haz una pregunta", + "removeOption": "Eliminar la opción", + "send": "Enviar" + }, + "errors": { + "notUniqueOption": "Las opciones deben ser únicas" + }, + "notification": { + "description": "Abre la pestaña de encuestas para votar", + "title": "Se ha añadido una nueva encuesta a esta reunión" + }, + "results": { + "changeVote": "Cambiar el voto", + "empty": "Todavía no hay encuestas en la reunión. ¡Inicie una encuesta aquí!", + "hideDetailedResults": "Ocultar detalles", + "showDetailedResults": "Mostrar detalles", + "vote": "Vota" + } + }, + "poweredby": "con tecnología de", + "prejoin": { + "audioAndVideoError": "Error en audio y video:", + "audioDeviceProblem": "Hay un problema con su dispositivo de audio", + "audioOnlyError": "Error en audio:", + "audioTrackError": "No se pudo crear la pista de audio.", + "callMe": "Llámame", + "callMeAtNumber": "Llamame a este número:", + "calling": "Llamando", + "configuringDevices": "Configurando dispositivos…", + "connectedWithAudioQ": "¿Estás está conectado con audio?", + "connection": { + "good": "¡Su conexión a internet es buena!", + "nonOptimal": "Su conexión a internet no es óptima", + "poor": "Tiene una conexión a internet pobre" + }, + "connectionDetails": { + "audioClipping": "Prevemos que su audio tendrá recortes.", + "audioHighQuality": "Prevemos que su audio tendrá excelente calidad.", + "audioLowNoVideo": "Prevemos que la calidad de su audio será baja y sin video.", + "goodQuality": "¡Genial! La calidad de sus medios será excelente.", + "noMediaConnectivity": "No pudimos encontrar una forma de establecer la conectividad de medios para esta prueba. Esto suele ser causado por un firewall o NAT.", + "noVideo": "Prevemos que su video será terrible.", + "undetectable": "Si aún no puede realizar llamadas en el navegador, le recomendamos que se asegure de que los altavoces, el micrófono y la cámara estén configurados correctamente, que haya concedido los derechos de su navegador para usar el micrófono y la cámara, y que la versión de su navegador esté actualizada. Si aún tiene problemas para llamar, debería comunicarse con el desarrollador de la aplicación web.", + "veryPoorConnection": "Prevemos que la calidad de su llamada será realmente terrible.", + "videoFreezing": "Prevemos que su video se congelará, se volverá negro y se pixelará.", + "videoHighQuality": "Prevemos que su video tendrá buena calidad.", + "videoLowQuality": "Prevemos que su video tendrá baja calidad en términos de velocidad de fotogramas y resolución.", + "videoTearing": "Prevemos que su video se pixelará o tendrá artefactos visuales." + }, + "copyAndShare": "Copia y comparte el link de la reuinión", + "dialInMeeting": "Entrar con llamada telefónica", + "dialInPin": "Marca a la reunión e ingresa el código:", + "dialing": "Marcando", + "doNotShow": "No mostrar nuevamente", + "errorDialOut": "No se pudo marcar.", + "errorDialOutDisconnected": "No se pudo marcar. Desconectado.", + "errorDialOutFailed": "No se pudo marcar. La llamada falló.", + "errorDialOutStatus": "Hubo algún error, y no se pudo determinar cuál", + "errorMissingName": "Ingrese su nombre para unirse a la reunión", + "errorNoPermissions": "Tienes que habilitar el acceso al micrófono y a la cámara", + "errorStatusCode": "Error al marcar, código de error {{status}}", + "errorValidation": "No se pudo validar el número", + "iWantToDialIn": "Quiero entrar por teléfono", + "initiated": "Llamada iniciada", + "joinAudioByPhone": "Entrar con audio de llamada telefónica", + "joinMeeting": "Entrar a la reunión", + "joinWithoutAudio": "Entrar sin sonido", + "linkCopied": "Se copió el link", + "lookGood": "Tu micrófono funciona bien.", + "or": "o", + "premeeting": "Pre-reunión", + "screenSharingError": "Error al compartir pantalla:", + "startWithPhone": "Iniciar con audio de llamada telefónica", + "videoOnlyError": "Error con el video:", + "videoTrackError": "No se pudo crear la pista de video.", + "viewAllNumbers": "ver todos los números" + }, + "presenceStatus": { + "busy": "Ocupado", + "calling": "Llamando…", + "connected": "Conectado", + "connecting": "Conectando…", + "connecting2": "Conectando*…", + "disconnected": "Desconectado", + "expired": "Expirado", + "ignored": "Ignorado", + "initializingCall": "Iniciando llamada…", + "invited": "Invitado", + "rejected": "Rechazado", + "ringing": "Timbrando…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Configura tu nombre para mostrar", + "setEmailInput": "Introducir correo electrónico", + "setEmailLabel": "Configurar tu correo electrónico de Gravatar", + "title": "Perfil" + }, + "raisedHand": "Desea hablar", + "recording": { + "authDropboxText": "Subir a Dropbox", + "availableSpace": "Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabación)", + "beta": "BETA", + "busy": "Estamos trabajando para liberar recursos de grabación. Vuelve a intentarlo en unos minutos.", + "busyTitle": "Todas las grabadoras están actualmente ocupadas", + "copyLink": "Copiar enlace", + "error": "Error de grabación. Vuelve a intentarlo.", + "errorFetchingLink": "Error en la obtención del enlace de grabación.", + "expandedOff": "Grabación detenida", + "expandedOn": "La reunión está siendo grabada.", + "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}}", + "off": "Grabación detenida", + "offBy": "{{name}} detuvo la grabación", + "on": "Grabando", + "onBy": "{{name}} comenzó la grabación", + "pending": "Preparando para grabar la reunión…", + "rec": "GRA", + "serviceDescription": "El servicio de grabación guardará la grabación", + "serviceDescriptionCloud": "Grabación en la nube", + "serviceName": "Servicio de grabación", + "signIn": "Iniciar sesión", + "signOut": "Cerrar sesión", + "title": "Grabando", + "unavailable": "¡Uy! {{serviceName}} actualmente no está disponible. Estamos trabajando para resolver el problema. Vuelve a intentarlo más tarde.", + "unavailableTitle": "Grabación no disponible", + "uploadToCloud": "Subir a la nube" + }, + "sectionList": { + "pullToRefresh": "Mueve el dedo para abajo para actualizar." + }, + "security": { + "about": "Puedes agregar una contraseña a la reunión. Los participantes necesitarán la contraseña para unirse a la reunión.", + "aboutReadOnly": "Los participantes moderadores pueden agregar una $t(lockRoomPassword) a la reunión. Los participantes deberán proporcionar la $t(lockRoomPassword) antes de que se les permita unirse a la reunión.", + "insecureRoomNameWarning": "El nombre de la sala es inseguro. Participantes no deseados pueden llegar a unirse a la reunión.", + "securityOptions": "Opciones de seguridad" + }, + "settings": { + "calendar": { + "about": "La integración del calendario de {{appName}} se usa para acceder al calendario de manera segura para que puedas estar al tanto de los próximos eventos.", + "disconnect": "Desconectar", + "microsoftSignIn": "Iniciar sesión con Microsoft", + "signedIn": "Actualmente se accede a eventos del calendario para {{email}}. Haz clic en el botón Desconectar más abajo para detener el acceso a eventos del calendario.", + "title": "Calendario" + }, + "desktopShareFramerate": "Velocidad de fotogramas para compartir el escritorio", + "desktopShareHighFpsWarning": "Una mayor velocidad de fotogramas para el uso compartido de la pantalla podría afectar a su ancho de banda. Es necesario reiniciar la pantalla compartida para que la nueva configuración surta efecto.", + "desktopShareWarning": "Es necesario reiniciar la pantalla compartida para que los nuevos ajustes surtan efecto.", + "devices": "Dispositivos", + "followMe": "Todos me siguen", + "framesPerSecond": "fotogramas-por-segundo", + "incomingMessage": "Mensaje entrante", + "language": "Idioma", + "loggedIn": "Sesión iniciada como {{name}}", + "microphones": "Micrófono", + "moderator": "Moderador", + "more": "Más", + "name": "Nombre", + "noDevice": "Ninguno", + "participantJoined": "Un articipante incorporado", + "participantLeft": "Un participante se ha ido", + "playSounds": "Reproducir sonido", + "reactions": "Reacciones de la reunión", + "sameAsSystem": "Igual que el sistema ({{label}})", + "selectAudioOutput": "Salida de audio", + "selectCamera": "Cámara", + "selectMic": "Micrófono", + "sounds": "Sonidos", + "speakers": "Bocinas", + "startAudioMuted": "Todos inician silenciados", + "startVideoMuted": "Todos inician con cámara desactivada", + "talkWhileMuted": "Hablar en silencio", + "title": "Ajustes" + }, + "settingsView": { + "advanced": "Avanzado", + "alertCancel": "Cancelar", + "alertOk": "Aceptar", + "alertTitle": "Advertencia", + "alertURLText": "La dirección URL introducida no es válida", + "buildInfoSection": "Información de la compilación", + "conferenceSection": "Conferencia", + "disableCallIntegration": "Desactivar la integración nativa de llamadas", + "disableCrashReporting": "Desactivar el reporte de crasheos", + "disableCrashReportingWarning": "¿Estás seguro que no deseas reportarnos los crasheos? La opción se activará al reiniciar la app.", + "disableP2P": "Desactivar la comunicación directa (\"Peer-To-Peer\")", + "displayName": "Nombre a mostrar", + "email": "Correo electrónico", + "header": "Configuración", + "profileSection": "Perfil", + "serverURL": "URL del servidor", + "showAdvanced": "Mostrar configuración avanzada", + "startWithAudioMuted": "Iniciar con el micrófono apagado", + "startWithVideoMuted": "Iniciar con la cámara apagada", + "version": "Versión" + }, + "share": { + "dialInfoText": "\n\n=====\n\n¿Deseas entrar por llamada telefónica?\n\n{{defaultDialInNumber}}La lista de números disponibles para la reunión está disponible aquí: \n{{dialInfoPageUrl}}", + "mainText": "Haz clic en el link para unirte a la reunión:\n{{roomUrl}}" + }, + "speaker": "Participante", + "speakerStats": { + "hours": "{{count}} h", + "minutes": "{{count}} min", + "name": "Nombre", + "search": "Buscar", + "searchHint": "Buscar participantes", + "seconds": "{{count}} s", + "speakerStats": "Estadísticas de participantes", + "speakerTime": "Tiempo hablado" + }, + "startupoverlay": { + "genericTitle": "La reunión debe utilizar su micrófono y su cámara.", + "policyText": " ", + "title": "{{app}} necesita usar el micrófono y la cámara." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Reconectar", + "text": "Presiona el botón Reconectar para volver a conectarte.", + "title": "La videollamada se interrumpió porque la computadora estaba suspendida." + }, + "toolbar": { + "Settings": "Configuración", + "accessibilityLabel": { + "Settings": "Alternar configuración", + "audioOnly": "Alternar cámaras de los demás", + "audioRoute": "Seleccionar el dispositivo de sonido", + "boo": "Boo", + "callQuality": "Administrar la calidad de video", + "cc": "Alternar subtítulos", + "chat": "Alternar ventana de chat", + "clap": "Aplauso", + "collapse": "Colapsar", + "document": "Alternar documento compartido", + "download": "Descargar nuestras aplicaciones", + "e2ee": "Cifrado de extremo a extremo", + "embedMeeting": "Insertar reunión", + "expand": "Ampliar", + "feedback": "Dejar comentarios", + "fullScreen": "Alternar pantalla completa", + "grantModerator": "Convertir en moderador", + "hangup": "Colgar", + "help": "Ayuda", + "invite": "Invitar personas", + "kick": "Expulsar participante", + "laugh": "Ríete", + "like": "Pulgares arriba", + "lobbyButton": "Activar / desactivar sala de espera", + "lobbyButtonDisable": "Desactivar sala de espera", + "lobbyButtonEnable": "Activar sala de espera", + "localRecording": "Alternar controles de grabación local", + "lockRoom": "Alternar contraseña de la reunión", + "moreActions": "Alternar más acciones", + "moreActionsMenu": "Menú de más acciones", + "moreOptions": "Mostrar más opciones", + "mute": "Silenciar micrófono", + "muteEveryone": "Silenciar a todos", + "muteEveryoneElse": "Silenciar a todos los demás", + "muteEveryoneElsesVideo": "Desactivar el vídeo de los demás", + "muteEveryonesVideo": "Desactivar el vídeo de todos", + "participants": "Participantes", + "pip": "Alternar modo ventana en miniatura", + "privateMessage": "Enviar mensaje privado", + "profile": "Editar perfil", + "raiseHand": "Levantar o bajar la mano", + "reactionsMenu": "Abrir / Cerrar el menú de reacciones", + "recording": "Alternar grabación", + "remoteMute": "Silenciar participante", + "remoteVideoMute": "Desactivar la cámara del participante", + "security": "Opciones de seguridad", + "selectBackground": "Seleccione el fondo", + "shareRoom": "Invitar a alguien", + "shareYourScreen": "Alternar pantalla compartida", + "shareaudio": "Compartir audio", + "sharedvideo": "Alternar video compartido", + "shortcuts": "Alternar accesos directos", + "show": "Mostrar en primer plano", + "silence": "Silencio", + "speakerStats": "Alternar estadísticas del orador", + "surprised": "Sorprendido", + "tileView": "Alternar vista de mosaico", + "toggleCamera": "Alternar cámara", + "toggleFilmstrip": "Alternar mosaicos", + "videoblur": "Alternar desenfoque de video", + "videomute": "Alternar video" + }, + "addPeople": "Agregar personas a la llamada", + "audioOnlyOff": "Mostrar cámaras de los demás", + "audioOnlyOn": "Ocultar cámaras de los demás (para ahorrar datos)", + "audioRoute": "Selecciona el dispositivo de sonido", + "audioSettings": "Ajustes de audio", + "authenticate": "Autenticar", + "boo": "Boo", + "callQuality": "Ajustar la calidad de video", + "chat": "Abrir o cerrar chat", + "clap": "Aplauso", + "closeChat": "Cerrar chat", + "closeReactionsMenu": "Cerrar el menú de reacciones", + "disableReactionSounds": "Puede desactivar los sonidos de reacción para esta reunión", + "documentClose": "Cerrar documento compartido", + "documentOpen": "Abrir documento compartido", + "download": "Descarga nuestras aplicaciones", + "e2ee": "Cifrado de extremo a extremo", + "embedMeeting": "Insertar reunión", + "enterFullScreen": "Pantalla completa", + "enterTileView": "Ver en cuadrícula", + "exitFullScreen": "Salir de pantalla completa", + "exitTileView": "Salir de vista de mosaico", + "feedback": "Dejar sugerencias", + "hangup": "Colgar", + "help": "Ayuda", + "invite": "Invitar personas", + "laugh": "Ríete", + "like": "Pulgares arriba", + "lobbyButtonDisable": "Desactivar el modo lobby", + "lobbyButtonEnable": "Activar el modo lobby", + "login": "Inicio de sesión", + "logout": "Cerrar sesión", + "lowerYourHand": "Bajar la mano", + "moreActions": "Más acciones", + "moreOptions": "Más opciones", + "mute": "Activar o silenciar el micrófono", + "muteEveryone": "Silenciar a todos", + "muteEveryonesVideo": "Desactivar la cámara de todos", + "noAudioSignalDesc": "Checa si no está silenciado en tu configuración del sistema o dispositivo, o cambia de micrófono.", + "noAudioSignalDescSuggestion": "Si no lo silenciaste a propósito desde la configuración del sistema o el dispositivo, intenta usar este otro micrófono:", + "noAudioSignalDialInDesc": "Además, puedes llamar usando:", + "noAudioSignalDialInLinkDesc": "Números de llamada", + "noAudioSignalTitle": "¡No se registra audio de tu micrófono!", + "noisyAudioInputDesc": "Tu micrófono está haciendo ruido, siléncialo, ajusta su volumen en configuración del sistema, o cambia de micrófono.", + "noisyAudioInputTitle": "Tu micrófono parece estar ruidoso", + "openChat": "Abrir chat", + "openReactionsMenu": "Abrir el menú de reacciones", + "participants": "Participantes", + "pip": "Mostrar en ventana pequeña", + "privateMessage": "Enviar mensaje privado", + "profile": "Editar perfil", + "raiseHand": "Levantar o bajar la mano", + "raiseYourHand": "Levantar la mano", + "reactionBoo": "Enviar la reacción de Boo", + "reactionClap": "Enviar reacción de aplauso", + "reactionLaugh": "Enviar reacción de risa", + "reactionLike": "Enviar la reacción de los pulgares hacia arriba", + "reactionSilence": "Enviar reacción de silencio", + "reactionSurprised": "Enviar reacción de sorpresa", + "security": "Opciones de seguridad", + "selectBackground": "Seleccionar fondo", + "shareRoom": "Invitar a alguien", + "shareaudio": "Compartir audio", + "sharedvideo": "Compartir un video", + "shortcuts": "Ver atajos del teclado", + "silence": "Silencio", + "speakerStats": "Estadísticas de los hablantes", + "startScreenSharing": "Comenzar a compartir pantalla", + "startSubtitles": "Iniciar subtítulos", + "startvideoblur": "Desenfocar mi fondo", + "stopAudioSharing": "Dejar de compartir el audio", + "stopScreenSharing": "Dejar de compartir pantalla", + "stopSharedVideo": "Detener video", + "stopSubtitles": "Detener subtítulos", + "stopvideoblur": "Desactivar desenfoque del fondo", + "surprised": "Compartir audio", + "talkWhileMutedPopup": "¿Intentas hablar? Estás silenciado.", + "tileViewToggle": "Activar o desactivar vista en cuadrícula", + "toggleCamera": "Activar o desactivar cámara", + "videoSettings": "Ajustes de vídeo", + "videomute": "Iniciar o detener cámara" + }, + "transcribing": { + "ccButtonTooltip": "Iniciar o detener subtítulos", + "error": "La transcripción falló. Por favor, inténtelo nuevamente.", + "expandedLabel": "Transcripción encendida", + "failedToStart": "No es posible iniciar la transcripción", + "labelToolTip": "La reunión se está transcribiendo", + "off": "Transcripción detenida", + "pending": "Preparando para transcribir la reunión…", + "start": "Mostrar subtítulos", + "stop": "Dejar de mostrar subtítulos", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Otorga permisos para usar la cámara y el micrófono." + }, + "videoSIPGW": { + "busy": "Estamos trabajando para liberar recursos. Vuelve a intentarlo en unos minutos.", + "busyTitle": "El servicio de salas está actualmente ocupado", + "errorAlreadyInvited": "{{displayName}} ya ha sido invitado", + "errorInvite": "Conferencia aún no establecida. Vuelve a intentarlo más tarde.", + "errorInviteFailed": "Estamos trabajando para resolver el problema. Vuelve a intentarlo más tarde.", + "errorInviteFailedTitle": "No se pudo invitar a {{displayName}}", + "errorInviteTitle": "Error al invitar en la sala", + "pending": "{{displayName}} ha sido invitado" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Estás en modo de ancho de banda bajo. En este modo, sólo recibirás audio y pantalla compartida.", + "callQuality": "Calidad de video", + "hd": "HD", + "hdTooltip": "Viendo video en alta definición", + "highDefinition": "Alta definición", + "labelTooiltipNoVideo": "Sin video", + "labelTooltipAudioOnly": "Modo de ancho de banda bajo habilitado", + "ld": "LD", + "ldTooltip": "Viendo video en baja definición", + "lowDefinition": "Baja definición", + "onlyAudioAvailable": "Solo hay audio disponible", + "onlyAudioSupported": "Solo admitimos audio en este navegador.", + "sd": "SD", + "sdTooltip": "Viendo video en definición estándar", + "standardDefinition": "Definición estándar" + }, + "videothumbnail": { + "connectionInfo": "Información de conexión", + "domute": "Silenciar", + "domuteOthers": "Silenciar a todos", + "domuteVideo": "Desactivar la cámara", + "domuteVideoOfOthers": "Desactivar la cámara de todos los demás", + "flip": "Voltear", + "grantModerator": "Convertir en moderador", + "kick": "Expulsar", + "moderator": "Moderador", + "mute": "Se silenció el participante", + "muted": "Silenciado", + "remoteControl": "Control remoto", + "show": "Mostrar en primer plano", + "videoMuted": "Cámara desactivada", + "videomute": "El participante paró su cámara" + }, + "virtualBackground": { + "addBackground": "Añadir fondo", + "apply": "Aplicar", + "backgroundEffectError": "No se ha podido aplicar el efecto de fondo.", + "blur": "Desenfoque", + "deleteImage": "Borrar imagen", + "desktopShare": "Compartir el escritorio", + "desktopShareError": "No se ha podido crear el escritorio compartido", + "image1": "Playa", + "image2": "Pared neutra blanca", + "image3": "Habitación blanca y vacía", + "image4": "Lámpara de pie negra", + "image5": "Montaña", + "image6": "Bosque", + "image7": "Amanecer", + "none": "Ninguno", + "pleaseWait": "Por favor, espera…", + "removeBackground": "Eliminar el fondo", + "slightBlur": "Desenfoque Ligero", + "title": "Fondos virtuales", + "uploadedImage": "Imagen subida {{index}}", + "webAssemblyWarning": "No se admite WebAssembly" + }, + "volumeSlider": "Deslizador de volumen", + "welcomepage": { + "accessibilityLabel": { + "join": "Toca para unirte", + "roomname": "Introduce el nombre de la sala" + }, + "addMeetingName": "Añadir el nombre de la reunión", + "appDescription": "Videollamadas para todo tu equipo. {{app}} es una aplicación completamente encriptada, segura, además de ser software libre 100% gratis, sin límites de tiempo, y sin tener que crear una cuenta.", + "audioVideoSwitch": { + "audio": "Voz", + "video": "Video" + }, + "calendar": "Calendario", + "connectCalendarButton": "Conectar el calendario", + "connectCalendarText": "Conecta tu calendario para ver todas tus reuniones de {{app}}. Además, agrega reuniones a tu calendario e inícialas con un solo clic.", + "enterRoomTitle": "Comenzar una reunión", + "getHelp": "Obtener ayuda", + "go": "IR", + "goSmall": "IR", + "headerSubtitle": "Reuniones seguras y de alta calidad", + "headerTitle": "Jitsi Meet", + "info": "Información", + "jitsiOnMobile": "Jitsi en el móvil: descarga nuestras aplicaciones y comienza una reunión desde cualquier lugar", + "join": "CREAR / UNIRSE", + "logo": { + "calendar": "Logotipo del calendario", + "desktopPreviewThumbnail": "Vista previa del escritorio en miniatura", + "googleLogo": "Logotipo de Google", + "logoDeepLinking": "Logotipo de la reunión de Jitsi", + "microsoftLogo": "Logotipo de Microsoft", + "policyLogo": "Logotipo de la política" + }, + "mobileDownLoadLinkAndroid": "Descargar la aplicación móvil para Android", + "mobileDownLoadLinkFDroid": "Descargar la aplicación móvil para F-Droid", + "mobileDownLoadLinkIos": "Descargar la aplicación móvil para iOS", + "moderatedMessage": "O reserve con antelación una URL de reunión en la que usted sea el único moderador.", + "privacy": "Privacidad", + "recentList": "Reciente", + "recentListDelete": "Eliminar", + "recentListEmpty": "Tu historial de reuniones está vacío. Reúnete y aparecerán aquí.", + "reducedUIText": "¡Bienvenid@ a {{app}}!", + "roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.", + "roomname": "Introduce el nombre de la sala", + "roomnameHint": "Introduce el nombre o URL de la sala a la que deseas unirte. Puedes inventar un nombre, simplemente infórmaselo a las personas con las que te reunirás para que introduzcan el mismo nombre.", + "sendFeedback": "Enviar sugerencias", + "startMeeting": "Iniciar la reunión", + "terms": "Términos", + "title": "Videoconferencias seguras, con gran variedad de funcionalidades y completamente gratuitas" + } +} diff --git a/lang/main-et.json b/lang/main-et.json new file mode 100644 index 0000000..557be4c --- /dev/null +++ b/lang/main-et.json @@ -0,0 +1,775 @@ +{ + "addPeople": { + "add": "Lisa", + "countryNotSupported": "Valitud riik ei ole toetatud.", + "countryReminder": "Veendu, et suunakood oleks lisatud.", + "disabled": "Uusi kontakte ei saa kõnesse lisada.", + "failedToAdd": "Uue kontakti kõnesse lisamine ebaõnnestus", + "footerText": "Numbri valimine on keelatud.", + "loading": "Kontaktide otsimine…", + "loadingNumber": "Telefoninumbri kontrollimine…", + "loadingPeople": "Kontaktide otsimine kõnesse lisamiseks…", + "noResults": "Vasteid ei leitud", + "noValidNumbers": "Sisesta telefoninumber", + "searchNumbers": "Lisa telefoninumber", + "searchPeople": "Kontaktide otsimine", + "searchPeopleAndNumbers": "Otsi kontakti või lisa telefoninumber", + "telephone": "Telefoninumber: {{number}}", + "title": "Lisa kontakte kõnesse" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Kõrvaklapid", + "none": "Heli vahendid pole kättesaadavad", + "phone": "Telefon", + "speaker": "Kõlar" + }, + "audioOnly": { + "audioOnly": "Ainult heli" + }, + "calendarSync": { + "addMeetingURL": "Lisa kõne link", + "confirmAddLink": "Kas soovid käesolevale kõnele lisada lingi?", + "error": { + "appConfiguration": "Ühendus kalendriga ei ole õigesti seadistatud.", + "generic": "Viga! Palun kontrolli kalendri seadistusi või värskenda kalendrit.", + "notSignedIn": "Viga kalendri autentimisel! Palun kontrolli kalendri seadistusi ja logi uuesti sisse." + }, + "join": "Liitu", + "joinTooltip": "Liitu kõnega", + "nextMeeting": "järgmine kõne", + "noEvents": "Uusi kõnesid pole planeeritud..", + "ongoingMeeting": "aktiivne kõne", + "permissionButton": "Ava seadistused", + "permissionMessage": "Planeeritud kõne nägemiseks on vajalik kalendri ligipääsuõigus.", + "refresh": "Värskenda kalendrit", + "today": "Täna" + }, + "chat": { + "error": "Viga: sõnumi \"{{originalText}}\" saatmine ebaõnnestus. Põhjus: {{error}}", + "fieldPlaceHolder": "Sisesta oma sõnum siia", + "messageTo": "Privaatsõnum kasutajale {{recipient}}", + "messagebox": "Sisesta sõnum", + "nickname": { + "popover": "Sisesta nimi", + "title": "Sisesta nimi, et kõnega alustada", + "titleWithPolls": "Sisesta nimi, et kõnega alustada" + }, + "noMessagesMessage": "Kirjavahetust pole veel alustatud. Alusta kirjavahetust siin!", + "privateNotice": "Privaatsõnum kasutajale {{recipient}}", + "sendButton": "Saada", + "title": "Kõne", + "titleWithPolls": "Kõne", + "you": "you" + }, + "chromeExtensionBanner": { + "buttonText": "Paigalda Chrome'i laiendus", + "dontShowAgain": "Ära rohkem näita", + "installExtensionText": "Paigalda Google Kalendri laiendus ja Office 365 integratsioon" + }, + "connectingOverlay": { + "joiningRoom": "Kõnega ühendamine…" + }, + "connection": { + "ATTACHED": "Ühendatud", + "AUTHENTICATING": "Autentimine…", + "AUTHFAIL": "Autentimine ebaõnnestus", + "CONNECTED": "Ühendatud", + "CONNECTING": "Ühendamine…", + "CONNFAIL": "Ühendamine ebaõnnestus", + "DISCONNECTED": "Ühendus katkestatud", + "DISCONNECTING": "Ühenduse katkestamine…", + "ERROR": "Viga", + "FETCH_SESSION_ID": "Sessiooni-ID püüdmine…", + "GET_SESSION_ID_ERROR": "Sessiooni-ID püüdmisel tekkis viga: {{code}}", + "GOT_SESSION_ID": "Sessiooni-ID püüdmine… Tehtud", + "LOW_BANDWIDTH": "Kasutaja {{displayName}} video on ülekandekiiruse parandamiseks välja lülitatud" + }, + "connectionindicator": { + "address": "Aadress:", + "bandwidth": "Eeldatav ülekandekiirus:", + "bitrate": "Andmeedastuskiirus:", + "bridgeCount": "Serverite arv: ", + "connectedTo": "Ühendatud:", + "framerate": "Ekraani eraldusvõime:", + "less": "Näita vähem", + "localaddress": "Lokaalne aadress:", + "localaddress_plural": "Lokaalsed aadressid:", + "localport": "Lokaalne port:", + "localport_plural": "Lokaalsed pordid:", + "more": "Näita rohkem", + "packetloss": "Andmepaketi kaotus:", + "quality": { + "good": "Hea", + "inactive": "Mitteaktiivne", + "lost": "Kaotatud", + "nonoptimal": "Mitteoptimaalne", + "poor": "Nõrk" + }, + "remoteaddress": "Kaugtöö aadress:", + "remoteaddress_plural": "Kaugtöö aadressid:", + "remoteport": "Kaugtöö port:", + "remoteport_plural": "Kaugtöö pordid:", + "resolution": "Resolutsioon:", + "status": "Ühendus:", + "transport": "Transport:", + "transport_plural": "Transpordid:" + }, + "dateUtils": { + "earlier": "Varem", + "today": "Täna", + "yesterday": "Eile" + }, + "deepLinking": { + "appNotInstalled": "Kõnega liitumiseks läbi mobiiltelefoni on vaja paigaldada {{app}} rakendus.", + "description": "Midagi ei juhtunud? Proovisime ühendust luua töölaua rakendusega. Proovi uuesti või käivita {{app}} rakendus.", + "descriptionWithoutWeb": "Midagi ei juhtunud? Televastuvõttu prooviti avada töölaua rakendusest {{app}}.", + "downloadApp": "Laadi rakendus alla", + "launchWebButton": "Käivita veebis", + "openApp": "Jätka töölaua rakendusega", + "title": "Kõne avamine rakenduses {{app}}…", + "tryAgainButton": "Proovi töölaua rakendusega uuesti " + }, + "defaultLink": "nt {{url}}", + "defaultNickname": "nt. Mari Maasikas", + "deviceError": { + "cameraError": "Ei saanud kaameraga ühendust", + "cameraPermission": "Puudub õigus kasutada kaamerat", + "microphoneError": "Ei saanud mikrofoniga ühendust", + "microphonePermission": "Puudub õigus kasutada mikrofoni" + }, + "deviceSelection": { + "noPermission": "Luba pole antud", + "previewUnavailable": "Eelvaade pole kättesaadav", + "selectADevice": "Vali seade", + "testAudio": "Mängi testimiseks heli" + }, + "dialOut": { + "statusMessage": "on staatusega {{status}}" + }, + "dialog": { + "Back": "Tagasi", + "Cancel": "Tühista", + "IamHost": "Mina olen võõrustaja", + "Ok": "Jah", + "Remove": "Eemalda", + "Share": "Jaga", + "Submit": "Esita", + "WaitForHostMsg": "Kõne ei ole veel alanud. Autendi ennast, kui oled võõrustaja. Külalisena oota, kuni võõrustaja saabub.", + "WaitingForHost": "Võõrustaja ootamine…", + "Yes": "Jah", + "accessibilityLabel": { + "liveStreaming": "Otseülekanne" + }, + "allow": "Luba", + "alreadySharedVideoMsg": "Teine kasutaja jagab videot. Selles kõnes on ainult ühe video jagamine korraga lubatud.", + "alreadySharedVideoTitle": "Korraga on lubatud ainult ühe video jagamine.", + "applicationWindow": "Rakenduse aken", + "cameraConstraintFailedError": "Kaamera ei vasta teatud piirangutele.", + "cameraNotFoundError": "Kaamerat ei leitud.", + "cameraNotSendingData": "Ei saa ühendust kaameraga. Kontrolli, kas vahend on mõne teise rakenduse poolt kasutusel, vali menüüst teine vahend või värskenda rakendust.", + "cameraNotSendingDataTitle": "Kaamera pole kättesaadav.", + "cameraPermissionDeniedError": "Kaamera kasutamine on keelatud. Kõnega on võimalik ühineda ilma kaamerata. Kaamera kasutamiseks vajuta aadressiribal kaamera nupule.", + "cameraUnknownError": "Kaamerat ei saa kasutada! Põhjus teadmata.", + "cameraUnsupportedResolutionError": "Kaamera ei toeta nõutud resolutsiooni.", + "close": "Sulge", + "conferenceDisconnectMsg": "Kontrolli võrguühendust. Taasühendamine {{seconds}}…", + "conferenceDisconnectTitle": "Ühendus on katkenud.", + "conferenceReloadMsg": "Lahenduse otsime. Taasühendus {{seconds}} sek…", + "conferenceReloadTitle": "Midagi läks valesti!", + "confirm": "Kinnita", + "confirmNo": "Ei", + "confirmYes": "Kinnita", + "connectError": "Oih, midagi läks valesti! Kõnega ühendamine ebaõnnestus.", + "connectErrorWithMsg": "Oih, midagi läks valesti! Kõnega ühendamine ebaõnnestus. Põhjus: {{msg}}.", + "connecting": "Ühendamine.", + "contactSupport": "Võta ühendust kasutustoega", + "copy": "Kopeeri", + "dismiss": "Lõpeta", + "displayNameRequired": "Nimi on kohustuslik", + "done": "Valmis", + "enterDisplayName": "Sisesta nimi", + "error": "Viga", + "externalInstallationMsg": "Töölauale on vaja paigaldada jagamise laiendus.", + "externalInstallationTitle": "Laiendus on kohustuslik", + "goToStore": "Mine veebipoodi", + "gracefulShutdown": "Rakendus on hoolduseks ajutiselt maas. Proovi hiljem uuesti!", + "incorrectPassword": "Vale kasutajanimi või parool", + "incorrectRoomLockPassword": "Vale parool", + "inlineInstallExtension": "Paiglada kohe", + "inlineInstallationMsg": "Töölauale tuleb paigaldada jagamise laiendus.", + "internalError": "Oih, midagi läks valesti! Veateate: {{error}}.", + "internalErrorTitle": "Sisemine viga", + "kickMessage": "Oih, oled kõnest eemaldatud!", + "kickParticipantButton": "Eemalda kõnest", + "kickParticipantDialog": "Oled kindel, et tahad kasutaja kõnest eemaldada?", + "kickParticipantTitle": "Eemalda kasutaja kõnest?", + "kickTitle": "Kõnest eemaldatud", + "liveStreaming": "Otseülekanne", + "liveStreamingDisabledForGuestTooltip": "Külalised ei saa otseülekannet alustada.", + "liveStreamingDisabledTooltip": "Otseülekande alustamine on keelatud.", + "lockMessage": "Ebaõnnestunud lukustada kõnet.", + "lockRoom": "Lisa kõnele parool", + "lockTitle": "Lukustamine ebaõnnestus", + "logoutQuestion": "Oled kindel, et tahad kõne peatada ja välja logida?", + "logoutTitle": "Logi välja", + "maxUsersLimitReached": "Maksimaalne kõnes osalejate arv on täis. Võta ühendust kõne omanikuga või proovi hiljem uuesti!", + "maxUsersLimitReachedTitle": "Maksimaalne kõnes osalejate arv on täis", + "micConstraintFailedError": "Mikrofon ei vasta teatud piirangutele.", + "micNotFoundError": "Mikrofoni ei leitud.", + "micNotSendingData": "Ei saa ühendust mikrofoniga. Vali menüüst teine vahend või värskenda rakendust.", + "micNotSendingDataTitle": "Mikrofon pole kättesaadav.", + "micPermissionDeniedError": "Mikrofoni kasutamine on keelatud. Kõnega on võimalik ühineda, aga teised Sind ei kuule. Mikrofoni kasutamiseks vajuta aadressiribal mikrofoni nupule.", + "micUnknownError": "Mikrofoni ei saa kasutada. Põhjus teadmata.", + "muteEveryoneDialog": "Oled kindel, et soovid kõikide teiste mikrofonid vaigistada? Neid saab tagasi sisse lülitada ainult kasutaja ise.", + "muteEveryoneElseDialog": "Peale mikrofoni vaigistamist saab ainult kasutaja ise oma mikrofoni tagasi sisse lülitada.", + "muteEveryoneElseTitle": "Vaigista kõikide teiste mikrofonid, välja arvatud {{whom}}?", + "muteEveryoneSelf": "Sina ise", + "muteEveryoneStartMuted": "Edaspidi alustavad kõik välja lülitatud mikrofonidega", + "muteEveryoneTitle": "Vaigista kõik?", + "muteParticipantBody": "Teiste kasutajate mikrofoni ei saa sisse lülitada. Kasutaja saab ise otsutada, kas mikrofon on sees või väljas.", + "muteParticipantButton": "Lülita mikrofon välja", + "muteParticipantDialog": "Oled kindel, et soovid kasutaja mikrofoni välja lülitada? Seda saab ainult kasutaja ise sisse tagasi lülitada.", + "muteParticipantTitle": "Lülita kasutaja mikrofon välja?", + "passwordLabel": "Parool", + "passwordNotSupported": "Kõnele ei saa parooli määrata.", + "passwordNotSupportedTitle": "Parooli lisamine pole toetatud", + "passwordRequired": "Parool on kohustuslik", + "popupError": "Modaalaknad on veebilehitsejas keelatud. Palun luba modaalakende kasutamine veebilehitseja turvalisuse seadistuses ning proovi uuesti.", + "popupErrorTitle": "Modaalaknad on keelatud", + "recording": "Salvetamine", + "recordingDisabledForGuestTooltip": "Külalised ei saa kõne salvestada.", + "recordingDisabledTooltip": "Kõne salvestamine on keelatud.", + "rejoinNow": "Ühine uuesti", + "remoteControlAllowedMessage": "{{user}} andis kaugjuhtimiseks loa!", + "remoteControlDeniedMessage": "{{user}} keelas kaugjuhtimise!", + "remoteControlErrorMessage": "Viga kaugjuhtimiseks loa küsimisel kasutajalt {{user}}!", + "remoteControlRequestMessage": "Kas lubad kasutajal {{user}} oma töölauda kaugjuhtida?", + "remoteControlShareScreenWarning": "Kui vajutad nupule \"Luba\", siis jagad oma ekraani.", + "remoteControlStopMessage": "Kaugjuhtimise sessioon on lõppenud!", + "remoteControlTitle": "Kaugjuhtimine", + "removePassword": "Eemalda parool", + "removeSharedVideoMsg": "Oled kindel, et soovid oma jagatud video eemaldada?", + "removeSharedVideoTitle": "Eemalda jagatud video", + "reservationError": "Broneerimise süsteemi viga", + "reservationErrorMsg": "Veakood: {{code}}, sõnum: {{msg}}", + "retry": "Proovi uuesti", + "screenSharingFailedToInstall": "Oih, ekraanijagamise laienduse paigaldamine ebaõnnestus!", + "screenSharingFailedToInstallTitle": "Ekraanijagamise laienduse paigaldamine ebaõnnestus", + "screenSharingFirefoxPermissionDeniedError": "Ekraani jagamisega läks midagi valesti! Veendu, et oled ekraani jagamiseks loa andnud.", + "screenSharingFirefoxPermissionDeniedTitle": "Oih, ekraani jagamist ei saanud alustada!", + "screenSharingPermissionDeniedError": "Oih, midagi läks valesti ekraanijagamise laienduse õigustega! Värskenda ja proovi uuesti.", + "sendPrivateMessage": "Sulle saabus privaatsõnum. Kas soovid vastata privaatselt või avalikult?", + "sendPrivateMessageCancel": "Saada sõnum avalikult", + "sendPrivateMessageOk": "Saada sõnum privaatselt", + "sendPrivateMessageTitle": "Saada privaatselt?", + "serviceUnavailable": "Teenus pole kättesaadav", + "sessTerminated": "Kõne lõpetatud", + "shareVideoLinkError": "Sisesta korrektne link.", + "shareVideoTitle": "Jaga videot", + "shareYourScreen": "Jaga ekraani", + "shareYourScreenDisabled": "Ekraani jagamine on keelatud.", + "shareYourScreenDisabledForGuest": "Külalised ei saa ekraani jagada.", + "startLiveStreaming": "Alusta otseülekannet", + "startRecording": "Alusta salvestamist", + "startRemoteControlErrorMessage": "Kaugjuhtimise sessiooni alustamisel tekkis viga!", + "stopLiveStreaming": "Lõpeta otseülekanne", + "stopRecording": "Lõpeta salvestamine", + "stopRecordingWarning": "Oled kindel, et soovid salvestamist lõpetada?", + "stopStreamingWarning": "Oled kindel, et soovid otseülekannet lõpetada?", + "streamKey": "Otseülekande võti", + "thankYou": "Aitäh, et kasutasid rakendust {{appName}}!", + "token": "token", + "tokenAuthFailed": "Kahjuks ei ole kõnega ühinemine lubatud.", + "tokenAuthFailedTitle": "Autentimine ebaõnnestus", + "transcribing": "Transkribeerimine", + "unlockRoom": "Eemalda kõne parool", + "userPassword": "kasutaja parool", + "yourEntireScreen": "Täisekraan" + }, + "documentSharing": { + "title": "Jagatud dokument" + }, + "feedback": { + "average": "Keskmine", + "bad": "Halb", + "detailsLabel": "Kirjelda täpsemalt.", + "good": "Hea", + "rateExperience": "Hinda kõne kvaliteeti", + "veryBad": "Väga halb", + "veryGood": "Väga hea" + }, + "incomingCall": { + "answer": "Vasta", + "audioCallTitle": "Sissetulev kõne", + "decline": "Lõpeta", + "productLabel": "Jitsi", + "videoCallTitle": "Sissetulev videokõne" + }, + "info": { + "accessibilityLabel": "Näita infot", + "addPassword": "Lisa parool", + "cancelPassword": "Tühista parool", + "conferenceURL": "Link:", + "country": "Riik", + "dialANumber": "Kõnega ühinemiseks vali number ja sisesta pin-kood.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Oih, sissehelistamine ei ole toetatud!", + "dialInNumber": "Sissehelistamine:", + "dialInSummaryError": "Sissehelistamise info pole kättesaadav. Proovi hiljem uuesti!", + "dialInTollFree": "Maksuvaba", + "genericError": "Oih, midagi läks valesti!", + "inviteLiveStream": "Otseülekande nägemiseks vajuta lingile: {{url}}", + "invitePhone": "Üks klikk heliga sissehelistamiseks: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Otsid teist sissehelistamise numbrit?\nVaata sissehelistamise numbreid: {{url}}\n\n\nKui helistad läbi ruumi, ühine kõnega väljalülitatud mikrofoni režiimis: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Oled kõnesse kutsutud.", + "inviteURLFirstPartPersonal": "{{name}} kutsub Sind kõnesse.\n", + "inviteURLSecondPart": "\nÜhine kõnega:\n{{url}}\n", + "label": "Kõne info", + "liveStreamURL": "Otseülekanne:", + "moreNumbers": "Rohkem numbreid", + "noNumbers": "Sissehelistamise numbrid puuduvad.", + "noPassword": "Andmed puuduvad", + "noRoom": "Sissehelistamise ruum pole täpsustatud.", + "numbers": "Sissehelistamise numbrid", + "password": "Parool:", + "title": "Jaga", + "tooltip": "Jaga linki ja helista, et kõnega ühineda" + }, + "inlineDialogFailure": { + "msg": "Midagi läks valesti.", + "retry": "Proovi uuesti", + "support": "Kasutajatugi", + "supportMsg": "Kui see juhtub uuesti, võta ühendust" + }, + "inviteDialog": { + "alertText": "Osade kasutajate kutsumine ebaõnnestus.", + "header": "Kutsu", + "searchCallOnlyPlaceholder": "Sisesta telefoninumber", + "searchPeopleOnlyPlaceholder": "Otsi kasutajaid", + "searchPlaceholder": "Kasutaja telefoninumber", + "send": "Saada" + }, + "keyboardShortcuts": { + "focusLocal": "Keskendu videole", + "focusRemote": "Keskendu teise kasutaja videole", + "fullScreen": "Ava/sulge täisekraani vaade", + "keyboardShortcuts": "Klaviatuuri kiirvalikud", + "localRecording": "Näita/peida salvestamise võimalused", + "mute": "Lülita mikrofon sisse/välja", + "pushToTalk": "Vajuta, et rääkida", + "raiseHand": "Tõsta/langeta kätt", + "showSpeakerStats": "Näita kõnelejate statistikat", + "toggleChat": "Ava/sulge vestluse aken", + "toggleFilmstrip": "Näita/peida video eelvaade", + "toggleScreensharing": "Vaheta kaamera ja ekraanijagamise vahel", + "toggleShortcuts": "Näita/peida klaviatuuri kiirvalikud", + "videoMute": "Lülita kaamera sisse/välja", + "videoQuality": "Halda kõne kvaliteeti" + }, + "liveStreaming": { + "busy": "Toimub ülekande ressursi vabastamine. Proovi mõne minuti pärast uuesti.", + "busyTitle": "Kõik ülekandjad on hetkel hõivatud", + "changeSignIn": "Vaheta kontot.", + "choose": "Vali otseülekanne", + "chooseCTA": "Vali ülekande viis. Oled sisse logitud emailiga {{email}}.", + "enterStreamKey": "Sisesta siia oma YouTube’i ülekande võti.", + "error": "Otseülekanne ebaõnnestus. Proovi uuesti.", + "errorAPI": "YouTube’i kanaliga ühendumisel tekkis viga. Palun logi uuesti sisse.", + "errorLiveStreamNotEnabled": "Otseülekanne ei ole emailiga {{email}} sisse lülitatud. Luba kasutajaga otseülekanded või vaheta kontot.", + "expandedOff": "Otseülekanne on peatatud", + "expandedOn": "Kõnest tehakse otseülekanne YouTube’i.", + "expandedPending": "Otseülekanne algab…", + "failedToStart": "Otseülekandega alustamine ebaõnnestus.", + "getStreamKeyManually": "Ülekandjaid ei leitud. Leia YouTube’st otseülekande võti.", + "invalidStreamKey": "Otseülekande võti võib olla vale.", + "off": "Otseülekanne on peatatud", + "offBy": "{{name}} lõpetas otseülekande", + "on": "Otseülekanne", + "onBy": "{{name}} alustas otseülekandega", + "pending": "Otseülekande alustamine…", + "serviceName": "Otseülekande teenus", + "signIn": "Google’ga sisselogimine", + "signInCTA": "Logi sisse või sisesta otseülekande võti YouTube’st.", + "signOut": "Logi välja", + "signedInAs": "Oled sisse logitud kasutajana:", + "start": "Alusta otseülekannet.", + "streamIdHelp": "Mis see on?", + "title": "Otseülekanne", + "unavailableTitle": "Otseülekanne pole kättesaadav." + }, + "localRecording": { + "clientState": { + "off": "Väljas", + "on": "Sees", + "unknown": "Teadmata" + }, + "dialogTitle": "Kohalikud salvestamise nupud", + "duration": "Kestvus", + "durationNA": "N/A", + "encoding": "Kodeerimine", + "label": "LOR", + "labelToolTip": "Kohalik salvestamine on alustatud", + "localRecording": "Kohalik salvestamine", + "me": "Mina", + "messages": { + "engaged": "Local recording engaged.", + "finished": "Salvestamise sessioon {{token}} on lõppenud. Palun saada salvestatud fail moderaatorile.", + "finishedModerator": "Salvestamise sessioon {{token}} on lõppenud ja salvestatud. Küsi teistelt kontaktidelt nende koopiaid.", + "notModerator": "Sa ei ole moderaator. Sa ei saa alustada ega lõpetada kohalikku salvestamist." + }, + "moderator": "Moderaator", + "no": "Ei", + "participant": "Osaleja", + "participantStats": "Osaleja andmed", + "sessionToken": "Sessiooni token", + "start": "Alusta salvestamist", + "stop": "Lõpeta salvestamine", + "yes": "Jah" + }, + "lockRoomPassword": "parool", + "lockRoomPasswordUppercase": "Parool", + "lonelyMeetingExperience": { + "button": "Kutsu teisi", + "youAreAlone": "Asud hetkel ruumis üksi" + }, + "me": "mina", + "notify": { + "connectedOneMember": "{{name}} ühines kõnega", + "connectedThreePlusMembers": "{{name}} ja {{count}} teist kasutajat ühines kõnega", + "connectedTwoMembers": "{{first}} ja {{second}} ühinesid kõnega", + "disconnected": "lahti ühendatud", + "focus": "Konverentsi fookus", + "focusFail": "{{component}} pole kättesaadav - proovi uuesti {{ms}} sekundi pärast.", + "grantedTo": "Moderaatori õigused on antud kasutajale {{to}}!", + "invitedOneMember": "{{name}} on kutsutud", + "invitedThreePlusMembers": "{{name}} ja {{count}} teist kasutajat on kutsutud", + "invitedTwoMembers": "{{first}} ja {{second}} on kutsutud", + "kickParticipant": "{{kicked}} eemaldati kõnest kasutaja {{kicker}} poolt", + "me": "Mina", + "moderator": "Moderaatori õigused jagatud!", + "muted": "Alustasid kõnet väljalülitatud mikrofoniga.", + "mutedRemotelyDescription": "Saad alati oma mikrofoni sisse lülitada, kui soovid rääkida. Lülita mikrofon peale rääkimist uuesti välja liigse müra ja kaja vältimiseks.", + "mutedRemotelyTitle": "Sinu mikrofon lülitati välja kasutaja {{participantDisplayName}} poolt!", + "mutedTitle": "Mikrofon on välja lülitatud!", + "newDeviceAction": "Kasuta", + "newDeviceAudioTitle": "Leitud uus heliseadeldis", + "newDeviceCameraTitle": "Leitud uus kaamera", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) eemaldatud teise kasutaja poolt", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) lisatud teise kasutaja poolt", + "raisedHand": "{{name}} soovib rääkida.", + "somebody": "Keegi", + "startSilentDescription": "Mikrofoni kasutamiseks ühine kõnega uuesti", + "startSilentTitle": "Ühinesid ilma mikrofonita!", + "suboptimalExperienceDescription": "Rakenduse {{appName}} parima kvaliteedi tagamiseks palun kasuta ühte nendest veebilehitsejatest.", + "suboptimalExperienceTitle": "Veebilehitseja hoiatus", + "unmute": "Lülita mikrofon sisse" + }, + "passwordDigitsOnly": "Kuni {{number}} tähemärki", + "passwordSetRemotely": "määratud teise kasutaja poolt", + "polls": { + "errors": { + "notUniqueOption": "Valikud peavad olema ainulaadsed" + } + }, + "poweredby": "teieni toodud", + "presenceStatus": { + "busy": "Hõivatud", + "calling": "Helistamine…", + "connected": "Ühendatud", + "connecting": "Ühendamine…", + "connecting2": "Ühendamine*…", + "disconnected": "Lahti ühendatud", + "expired": "Aegunud", + "ignored": "Eiratud", + "initializingCall": "Kõne alustamine…", + "invited": "Kutsutud", + "rejected": "Tagasi lükatud", + "ringing": "Kutsumine…" + }, + "profile": { + "setDisplayNameLabel": "Sisesta nimi", + "setEmailInput": "Sisesta email", + "setEmailLabel": "Sisesta Gravatar e-kirja aadress", + "title": "Profiil" + }, + "raisedHand": "Soovin rääkida", + "recording": { + "authDropboxText": "Lisa Dropbox’i", + "availableSpace": "Vaba ruum: {{spaceLeft}} MB (ca {{duration}} minutit salvestamist)", + "beta": "BETA", + "busy": "Salvestamise ressursi vabastamine… Proovi mõne minuti pärast uuesti.", + "busyTitle": "Kõik salvestajad on praegu kinni", + "error": "Salvestamine ebaõnnestus. Proovi uuesti.", + "expandedOff": "Salvestamine peatatud", + "expandedOn": "Kõne salvestatakse.", + "expandedPending": "Salvestamine on alustatud…", + "failedToStart": "Salvestamine ebaõnnestus", + "fileSharingdescription": "Jaga salvestust kõnelejatega", + "live": "Otse", + "loggedIn": "Sisseloginud kasutajana {{userName}}", + "off": "Salvestamine on lõpetatud", + "offBy": "{{name}} lõpetas salvestamise", + "on": "Salvestatakse", + "onBy": "{{name}} alustas salvestamist", + "pending": "Kõne salvestamise ettevalmistus…", + "rec": "REC", + "serviceDescription": "Salvestus toimub teenuse kaudu", + "serviceName": "Salvestamise teenus", + "signIn": "Logi sisse", + "signOut": "Logi välja", + "title": "Salvetamine", + "unavailable": "Oih! {{serviceName}} ei ole hetkel kättesaadav! Proovi hiljem uuesti.", + "unavailableTitle": "Salvestamine ei ole võimalik." + }, + "sectionList": { + "pullToRefresh": "Tõmba uuendamiseks" + }, + "settings": { + "calendar": { + "about": "Rakenduse {{appName}} kalender kasutab turvalist ühendust ning näeb eesolevaid kõnesid.", + "disconnect": "Ühenda lahti", + "microsoftSignIn": "Logi sisse Microsoft’i kontoga", + "signedIn": "Hetkel nähakse kasutaja {{email}} kalendrit. Kalendrikutsete peitmiseks vajuta “Ühenda lahti” nupule.", + "title": "Kalender" + }, + "devices": "Seaded", + "followMe": "Kõik jälgivad mind", + "language": "Keel", + "loggedIn": "Logitud sisse nimega: {{name}}", + "moderator": "Moderaator", + "more": "Rohkem", + "name": "Nimi", + "noDevice": "Andmed puuduvad", + "selectAudioOutput": "Heli väljund", + "selectCamera": "Kaamera", + "selectMic": "Mikrofon", + "startAudioMuted": "Kõik alustavad väljalülitatud mikrofoniga", + "startVideoMuted": "Kõik alustavad väljalülitatud kaameraga", + "title": "Seaded" + }, + "settingsView": { + "advanced": "Täpsem", + "alertOk": "OK", + "alertTitle": "Hoiatus", + "alertURLText": "Sisestatud link ei ole õige", + "buildInfoSection": "Versioon", + "conferenceSection": "Kõne", + "disableCallIntegration": "Lülita kohaliku kõne integratsioon välja", + "disableP2P": "Lülita otseühendus välja", + "displayName": "Kasutatav nimi", + "email": "Email", + "header": "Seaded", + "profileSection": "Profiil", + "serverURL": "Serveri link", + "showAdvanced": "Näita täpsemaid seadistusi", + "startWithAudioMuted": "Alusta väljalülitatud heliga", + "startWithVideoMuted": "Alusta väljalülitatud videoga", + "version": "Versioon" + }, + "share": { + "dialInfoText": "\n\n=====\n\nSoovid sisse helistada oma telefonilt?\n\n{{defaultDialInNumber}}Vajuta lingile, et näha telefoninumbreid sisse helistamiseks\n{{dialInfoPageUrl}}", + "mainText": "Vajuta lingile, et kõnega ühineda:\n{{roomUrl}}" + }, + "speaker": "Kõneleja", + "speakerStats": { + "hours": "{{count}}t", + "minutes": "{{count}}m", + "name": "Nimi", + "search": "Otsi", + "searchHint": "Otsige osalejaid", + "seconds": "{{count}}s", + "speakerStats": "Kõneleja andmed", + "speakerTime": "Kõnelemise aeg" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} vajab ligipääsu mikrofonile ja kaamerale." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Ühine uuesti", + "text": "Vajuta Ühine uuesti nupule, et uuesti ühineda.", + "title": "Kõne katkestati, sest arvuti läks magama." + }, + "toolbar": { + "Settings": "Seaded", + "accessibilityLabel": { + "Settings": "Seadistused", + "audioOnly": "Kasuta ainult heli", + "audioRoute": "Vali heli vahend", + "callQuality": "Halda kõne kvaliteeti", + "cc": "Kasuta subtiitreid", + "chat": "Kasuta vestluse akent", + "document": "Kasuta jagatud dokumente", + "download": "Laadi rakendus alla", + "feedback": "Jäta tagasiside", + "fullScreen": "Kasuta täisekraani", + "hangup": "Lahku kõnest", + "help": "Abi", + "invite": "Kutsu inimesi", + "kick": "Eemalda kõneleja", + "localRecording": "Näita salvestamise paneeli", + "lockRoom": "Kasuta kõne parooli", + "moreActions": "Kasuta toimingute menüüd", + "moreActionsMenu": "Toimingute menüü", + "moreOptions": "Näita rohkem valikuid", + "mute": "Lülita heli välja", + "muteEveryone": "Vaigista kõikide mikrofonid", + "pip": "Kasuta pilt-pildis vaadet", + "privateMessage": "Saada privaatsõnum", + "profile": "Muuda profiili", + "raiseHand": "Käe tõstmine", + "recording": "Salvestamine", + "remoteMute": "Lülita kasutaja mikrofon välja", + "shareRoom": "Kutsu", + "shareYourScreen": "Jaga ekraani", + "sharedvideo": "Kasuta video jagamist", + "shortcuts": "Kasuta kiirvalikuid", + "show": "Näita laval", + "speakerStats": "Kõnelejate statistika", + "tileView": "Paneelvaade", + "toggleCamera": "Kasuta kaamerat", + "videoblur": "Video hägustamine", + "videomute": "Video väljalülitamine" + }, + "addPeople": "Lisa kõnesse inimesi", + "audioOnlyOff": "Lülita “ainult heli” valik välja", + "audioOnlyOn": "Lülita “ainult heli” valik sisse", + "audioRoute": "Vali heli vahend", + "authenticate": "Autendi", + "callQuality": "Halda kõne kvaliteeti", + "chat": "Ava/sulge vestlus", + "closeChat": "Sulge vestlus", + "documentClose": "Sulge jagatud dokument", + "documentOpen": "Ava jagatud dokument", + "download": "Laadi rakendus alla", + "enterFullScreen": "Vaata täisekraanil", + "enterTileView": "Vaata paneelvaates", + "exitFullScreen": "Välju täisekraani vaatest", + "exitTileView": "Välju paneelvaatest", + "feedback": "Jäta tagasiside", + "hangup": "Lahku", + "help": "Abi", + "invite": "Kutsu", + "login": "Logi sisse", + "logout": "Logi välja", + "lowerYourHand": "Langeta kätt", + "moreActions": "Rohkem tegevusi", + "moreOptions": "Rohkem valikuid", + "mute": "Mikrofon sisse/välja", + "muteEveryone": "Vaigista kõikide mikrofonid", + "noAudioSignalDesc": "Kui Sa ei lülitanud mikrofoni seadistustest tahtlikult välja, kaalu seadme vahetamist.", + "noAudioSignalDescSuggestion": "Kui Sa ei lülitanud mikrofoni seadistustest tahtlikult välja, kaalu seadme vahetamist.", + "noAudioSignalDialInDesc": "Võid sisse helistada valides:", + "noAudioSignalDialInLinkDesc": "Sissehelistamise numbrid", + "noAudioSignalTitle": "Mikrofon ei püüa sisendit kinni!", + "noisyAudioInputDesc": "Tundub, et läbi mikrofoni kostub palju helisid. Kaalu mikrofoni välja lülitamist või seadme vahetamist.", + "noisyAudioInputTitle": "Mikrofonis on müra! Tundub, et läbi mikrofoni kostub palju helisid. Kaalu mikrofoni välja lülitamist või seadme vahetamist.", + "openChat": "Ava vestlus", + "pip": "Ava pilt-pildis vaade", + "privateMessage": "Saada privaatsõnum", + "profile": "Muuda profiili", + "raiseHand": "Tõsta/langeta kätt", + "raiseYourHand": "Tõsta kätt", + "shareRoom": "Kutsu", + "sharedvideo": "Jaga videot", + "shortcuts": "Vaata kiirvalikuid", + "speakerStats": "Kõneleja andmed", + "startScreenSharing": "Alust ekraani jagamist", + "startSubtitles": "Alusta subtiitrite näitamist", + "startvideoblur": "Tausta hägustamine", + "stopScreenSharing": "Lõpeta ekraani jagamine", + "stopSharedVideo": "Lõpeta video", + "stopSubtitles": "Lõpeta subtiitrite näitamine", + "stopvideoblur": "Lülita tausta hägustamine välja", + "talkWhileMutedPopup": "Soovid rääkida? Mikrofon on välja lülitatud.", + "tileViewToggle": "Näita paneelvaadet", + "toggleCamera": "Kasuta kaamerat", + "videomute": "Kaamera sisse/välja" + }, + "transcribing": { + "ccButtonTooltip": "Subtiitrid sisse/välja", + "error": "Transkribeerimine ebaõnnestus. Proovi uuesti.", + "expandedLabel": "Transkribeerimine on sisse lülitatud", + "failedToStart": "Transkribeerimise alustamine ebaõnnestus", + "labelToolTip": "Kõne transkribeeritakse", + "off": "Transkribeerimine peatatud", + "pending": "Transkribeerimise ettevalmistus…", + "start": "Alusta subtiitrite kuvamist", + "stop": "Lõpeta subtiitrite kuvamine", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Luba kasutada kaamerat ja mikrofoni." + }, + "videoSIPGW": { + "busy": "Vabastatakse ressurssi… Proovi mõne minuti pärast uuesti.", + "busyTitle": "Ruumi teenus on hetkel hõivatud", + "errorAlreadyInvited": "{{displayName}} on juba kutsutud", + "errorInvite": "Ühendus ei ole veel saavutatud. Proovi hiljem uuesti.", + "errorInviteFailed": "Probleemi lahendatakse. Proovi hiljem uuesti.", + "errorInviteFailedTitle": "Kasutaja {{displayName}} kutsumine ebaõnnestus", + "errorInviteTitle": "Ruumi kutsumine ebaõnnestus", + "pending": "{{displayName}} on kutsutud" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Kasutad kõnes ainult heli. See hõivab ülekandekiirust vähem, aga video jagamine on välja lülitatud.", + "callQuality": "Kõne kvaliteet", + "hd": "HD", + "hdTooltip": "Video vaatamine kõrgkvaliteediga", + "highDefinition": "Kõrgresolutsioon", + "labelTooiltipNoVideo": "Video puudub", + "labelTooltipAudioOnly": "Valitud on “ainult heli” seadistus", + "ld": "LD", + "ldTooltip": "Video vaatamine madala kvaliteediga", + "lowDefinition": "Madal", + "onlyAudioAvailable": "Saab kasutada ainult heli", + "onlyAudioSupported": "Selles veebilehitsejas on toetatud ainult heli.", + "sd": "SD", + "sdTooltip": "Video vaatamine vaikekvaliteediga", + "standardDefinition": "Vaike resolutsioon" + }, + "videothumbnail": { + "domute": "Lülita mikrofon välja", + "domuteOthers": "Vaigista teiste mikrofonid", + "flip": "Pööra", + "kick": "Eemalda kõnest", + "moderator": "Moderaator", + "mute": "Kasutaja mikrofon välja lülitatud", + "muted": "Mikrofon välja lülitatud", + "remoteControl": "Kaugjuhtimine", + "show": "Näita laval", + "videomute": "Kasutaja on kaamera peatanud" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Vajuta, et ühineda", + "roomname": "Sisesta ruumi nimi" + }, + "appDescription": "Lase käia, tee videoülekanne kogu meeskonnaga! Kutsu kõik, keda soovid. Rakendus {{app}} on krüpteeritud. 100% vabavara ülekannete tegemiseks, mida saab kasutada iga päev tasuta - ilma konto loomiseta.", + "audioVideoSwitch": { + "audio": "Heli", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Ühenda kalender", + "connectCalendarText": "Ühenda oma kalender, et kõiki kohtumisi näha rakenduses {{app}}. Lisa {{provider}} kohtumised kalendrisse ja alusta kõnesid ühe klikiga.", + "enterRoomTitle": "Alusta uut kõnet", + "go": "Mine", + "goSmall": "Mine", + "info": "Info", + "join": "Ühine", + "privacy": "Privaatsus", + "recentList": "Hiljutised", + "recentListDelete": "Kustuta", + "recentListEmpty": "Hiljutiste valikute nimekiri on tühi. Vestle kasutajatega ja leia oma hiljutised kõned siit.", + "reducedUIText": "Tere tulemast rakendusse {{app}}!", + "roomNameAllowedChars": "Televastuvõtu nimi ei tohi sisaldada sümboleid: ?, &, :, ', \", %, #.", + "roomname": "Sisesta ruumi nimi", + "roomnameHint": "Sisesta ruumi nimi või link, millega soovid ühinega. Võid nime välja mõelda, aga anna osalejatele sellest teada, et nad saaksid ruumiga ühineda.", + "sendFeedback": "Saada tagasiside", + "terms": "Tingimused", + "title": "Turvaline, võimalusi täis ja tasuta keskkond videokõnede jaoks." + } +} diff --git a/lang/main-eu.json b/lang/main-eu.json new file mode 100644 index 0000000..2ba0fd1 --- /dev/null +++ b/lang/main-eu.json @@ -0,0 +1,1037 @@ +{ + "addPeople": { + "add": "Gonbidatu", + "addContacts": "Gonbidatu zure kontaktuak", + "contacts": "kontaktuak", + "copyInvite": "Kopiatu bilerarako gonbidapena", + "copyLink": "Kopiatu bileraren esteka", + "copyStream": "Kopiatu zuzenekoaren esteka", + "countryNotSupported": "Oraindik ez dugu helmuga hau onartzen.", + "countryReminder": "Atzerritik deitzen? Ziurtatu herrialde-kodearekin hasten zarela!", + "defaultEmail": "Zure defektuzko eposta", + "disabled": "Ezin duzu jendea gonbidatu.", + "failedToAdd": "Parte-hartzaileak gehitzeak huts egin du", + "footerText": "Markatzea desgaituta dago.", + "googleEmail": "Google Email", + "inviteMoreHeader": "Bilerako partaide bakarra zara", + "inviteMoreMailSubject": "Sartu {{appName}} bileran", + "inviteMorePrompt": "Gonbidatu jende gehiago", + "linkCopied": "Esteka ondo kopiatu da arbelera", + "noResults": "Ez dago bat datorren bilaketa-emaitzarik", + "outlookEmail": "Outlook Email", + "phoneNumbers": "telefono zenbakiak", + "searching": "Bilatzen…", + "shareInvite": "Partekatu bilerarako gonbidapena", + "shareLink": "Partekatu bileraren esteka beste partaide batzuk gonbidatzeko", + "shareStream": "Partekatu zuzenekoaren esteka", + "sipAddresses": "sip helbideak", + "telephone": "Telefonoa: {{number}}", + "title": "Gonbidatu jendea bilera honetara", + "yahooEmail": "Yahoo Email" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Entzungailuak", + "none": "Ez dago audio-gailurik erabilgarri", + "phone": "Telefonoa", + "speaker": "Bozgorailua" + }, + "audioOnly": { + "audioOnly": "Banda-zabalera txikia" + }, + "calendarSync": { + "addMeetingURL": "Bileraren esteka gehitu", + "confirmAddLink": "Jitsi esteka gertaera honetara gehitu nahi duzu?", + "error": { + "appConfiguration": "Egutegiaren integrazioa ez dago ondo konfiguratuta.", + "generic": "Errore bat gertatu da. Egiaztatu zure egutegiaren ezarpenak edo saiatu egutegia eguneratzen.", + "notSignedIn": "Errorea gertatu da egutegiko gertaerak ikusteko baimentzerakoan. Egiaztatu egutegiaren ezarpenak eta saiatu berriro saioa hasten." + }, + "join": "Batu", + "joinTooltip": "Bilerara batu", + "nextMeeting": "hurrengo bilera", + "noEvents": "Ez dago aurreikusitako gertaerarik.", + "ongoingMeeting": "abian den bilera", + "permissionButton": "Ireki ezarpenak", + "permissionMessage": "Egutegirako baimena beharrezkoa da zure bilerak aplikazioan ikusteko.", + "refresh": "Freskatu egutegia", + "today": "Gaur" + }, + "chat": { + "enter": "Sartu bilera gelan", + "error": "Errorea: zure mezua ez da bidali. Arrazoia: {{error}}", + "fieldPlaceHolder": "Idatzi mezua hemen", + "message": "Mezua", + "messageAccessibleTitle": "{{user}} partaideak zera dio:", + "messageAccessibleTitleMe": "nik zera diot:", + "messageTo": "Mezu pribatua {{recipient}}(e)ri", + "messagebox": "Idatzi mezua", + "nickname": { + "popover": "Aukeratu goitizena", + "title": "Sartu goitizena txata erabiltzeko", + "titleWithPolls": "Sartu goitizena txata erabiltzeko" + }, + "noMessagesMessage": "Bileran oraindik mezurik ez dago. Hasi elkarrizketa hemen!", + "privateNotice": "Mezu pribatua {{recipient}}(e)ri", + "sendButton": "Bidali", + "smileysPanel": "Emoji panela", + "title": "Txata", + "titleWithPolls": "Txata", + "you": "zu" + }, + "chromeExtensionBanner": { + "buttonText": "Instalatu Chrome luzapena", + "close": "Itxi", + "dontShowAgain": "Ez erakutsi hau berriro", + "installExtensionText": "Instalatu luzapena Google Calendar eta Office 365rako integraziorako" + }, + "connectingOverlay": { + "joiningRoom": "Zure bilerara konektatzen…" + }, + "connection": { + "ATTACHED": "Atxikituta", + "AUTHENTICATING": "Autentifikatzea", + "AUTHFAIL": "Autentifikatzeak huts egin du", + "CONNECTED": "Konektatuta", + "CONNECTING": "Konektatzen", + "CONNFAIL": "Konexioak huts egin du", + "DISCONNECTED": "Deskonektatuta", + "DISCONNECTING": "Deskonektatzen", + "ERROR": "Errorea", + "FETCH_SESSION_ID": "Saioaren ID-a eskuratzen…", + "GET_SESSION_ID_ERROR": "Eskuratu saioaren ID errorea: {{code}}", + "GOT_SESSION_ID": "Saioaren ID-a eskuratzea… Eginda", + "LOW_BANDWIDTH": "{{displayName}}rako bideoa desaktibatu egin da banda-zabalera aurrezteko" + }, + "connectionindicator": { + "address": "Helbidea:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Banda-zabalera estimatua:", + "bitrate": "Bit-emaria:", + "bridgeCount": "Zerbitzari kopurua: ", + "codecs": "Kodekak (A/B): ", + "connectedTo": "Konektatua hona:", + "framerate": "Marko-abiadura:", + "less": "Erakutsi gutxiago", + "localaddress": "Helbide lokala:", + "localaddress_plural": "Helbide lokalak:", + "localport": "Ataka lokala:", + "localport_plural": "Ataka lokalak:", + "maxEnabledResolution": "send max", + "more": "Erakutsi gehiago", + "packetloss": "Pakete-galera:", + "participant_id": "Partehartzailearen ida:", + "quality": { + "good": "Ondo", + "inactive": "Inaktibo", + "lost": "Galduta", + "nonoptimal": "Ezegokia", + "poor": "Txarra" + }, + "remoteaddress": "Urruneko helbidea:", + "remoteaddress_plural": "Urruneko helbideak:", + "remoteport": "Urruneko ataka:", + "remoteport_plural": "Urruneko atakak:", + "resolution": "Ebazpena:", + "savelogs": "Gorde logak", + "status": "Konexioa:", + "transport": "Garraioa:", + "transport_plural": "Garraioak:", + "video_ssrc": "Video SSRC:" + }, + "dateUtils": { + "earlier": "Lehenago", + "today": "Gaur", + "yesterday": "Atzo" + }, + "deepLinking": { + "appNotInstalled": "{{app}} mugikor aplikazioa behar duzu bilerara mugikorretik batzeko.", + "description": "Ez da ezer gertatu? Bilera {{app}} mahaigaineko aplikazioan abiarazten saiatu gara. Saiatu berriro edo abiarazi {{app}} web aplikazioan.", + "descriptionWithoutWeb": "Ez da ezer gertatu? Bilera {{app}} mahaigaineko aplikazioan abiarazten saiatu gara.", + "downloadApp": "Aplikazioa deskargatu", + "ifDoNotHaveApp": "Oraindik ere aplikazioa ez baduzu:", + "ifHaveApp": "Aplikazioa instalatuta baduzu:", + "joinInApp": "Sartu bilerara aplikazioa erabiliz", + "launchWebButton": "Abiarazi webean", + "title": "Zure bilera {{app}}(e)n abiarazten…", + "tryAgainButton": "Saiatu berriro mahaigainean" + }, + "defaultLink": "Adib.: {{url}}", + "defaultNickname": "adib. Joana Albisu", + "deviceError": { + "cameraError": "Kamerarako sarbideak huts egin du", + "cameraPermission": "Errorea kameraren baimena eskuratzerakoan", + "microphoneError": "Mikrofonorako sarbideak huts egin du", + "microphonePermission": "Errorea mikrofonoaren baimena eskuratzerakoan" + }, + "deviceSelection": { + "noPermission": "Baimena ez emana", + "previewUnavailable": "Aurrebista ez erabilgarri", + "selectADevice": "Hautatu gailua", + "testAudio": "Erreproduzitu proba-soinua" + }, + "dialOut": { + "statusMessage": "{{status}} dago" + }, + "dialog": { + "Back": "Atzera", + "Cancel": "Utzi", + "IamHost": "Ostalaria naiz", + "Ok": "Ados", + "Remove": "Kendu", + "Share": "Partekatu", + "Submit": "Bidali", + "WaitForHostMsg": "Konferentzia oraindik ez da hasi. Ostalaria bazara, autentifikatu. Bestela, itxaron ostalaria iritsi arte.", + "WaitingForHostTitle": "Antolatzailearen zain…", + "Yes": "Bai", + "accessibilityLabel": { + "liveStreaming": "Zuzeneko Erreprodukzioa" + }, + "add": "Add", + "allow": "Baimendu", + "alreadySharedVideoMsg": "Beste parte-hartzaile batek jada bideo bat partekatzen ari da. Konferentzia honek aldi berean bideo bakarra partekatzen uzten du.", + "alreadySharedVideoTitle": "Aldi berean bideo bakarra partekatzea onartuta dago", + "applicationWindow": "Aplikazio-leihoa", + "authenticationRequired": "Login egin behar duzu", + "cameraConstraintFailedError": "Zure kamerak ez ditu eskakizun batzuk betetzen.", + "cameraNotFoundError": "Kamera ez da aurkitu.", + "cameraNotSendingData": "Ezin gara zure kamerara sartu. Egiaztatu beste aplikazio bat gailu hori erabiltzen ari den, hautatu beste gailu bat konfigurazio-menuan edo saiatu aplikazioa berriro kargatzen.", + "cameraNotSendingDataTitle": "Kamerara sartzeko ezgai", + "cameraPermissionDeniedError": "Ez duzu baimenik eman zure kamera erabiltzeko. Hitzaldiarekin bat egin dezakezu, baina ezingo duzu ikusi. Erabili helbide-barran dagoen kamera botoia hau konpontzeko.", + "cameraTimeoutError": "Ezin izan da bideo iturburua abiarazi. Denbora-muga gainditu da!", + "cameraUnknownError": "Ezin da kamera erabili arrazoi ezezaguna dela eta.", + "cameraUnsupportedResolutionError": "Zure kamerak ez du bideoaren bereizmena onartzen.", + "close": "Itxi", + "conferenceDisconnectMsg": "Zure sare-konexioa egiaztatu dezakezu. Berriro konektatzen {{seconds}} segundotan…", + "conferenceDisconnectTitle": "Deskonektatu egin zara.", + "conferenceReloadMsg": "Hau konpontzen saiatzen ari gara. Berriro konektatzen {{seconds}} segundotan..…", + "conferenceReloadTitle": "Tamalez, arazoren bat izan da.", + "confirm": "Berretsi", + "confirmNo": "Ez", + "confirmYes": "Bai", + "connectError": "Hara! Arazoren bat egon da eta ezin izan dugu konferentziara konektatu.", + "connectErrorWithMsg": "Hara! Arazoren bat egon da eta ezin izan dugu konferentziara konektatu: {{msg}}", + "connecting": "Konektatzen", + "contactSupport": "Laguntza-zerbitzua", + "copied": "Kopiatuta", + "copy": "Kopiatu", + "dismiss": "Baztertu", + "displayNameRequired": "Kaixo! Zein da zure izena?", + "done": "Eginda", + "e2eeDescription": "Puntutik punturako zifratzea PROBATAKOA da. Kontuan hartu puntutik punturako zifratzea aktibatze baduzu, zerbitzariak eskaintzen dituen beste aukera batzuk desaktibatu egingo direla, adibidez grabazioa, zuzeneko emanaldia eta telefono bidezko partehartzea. Kontuan hartu bileran nabigatzaile jakin batzuk erabiltzen dituzten erabiltzaileek hartu ahal izango dutela parte.", + "e2eeLabel": "Aktibatu puntutik punturako zifratzea", + "e2eeWarning": "OHARRA: bileraren partaide guztiek ezin dute puntutik punturako zifratzea erabili. Aukera hau aktibatzen baduzu, batzuk ezingo zaituzte ikusi eta entzun.", + "embedMeeting": "Kapsulatu bilera", + "enterDisplayName": "Sartu zure izena hemen", + "error": "Errorea", + "gracefulShutdown": "Zerbitzua ez dago erabilgarri mantentze-lanak direla eta. Saiatu berriro beranduago.", + "grantModeratorDialog": "Ziur zaude partaide hau moderatzaile bihurtu nahi duzula?", + "grantModeratorTitle": "Bihurtu moderatzaile", + "incorrectPassword": "Erabiltzaile-izena edo pasahitza baliogabea", + "incorrectRoomLockPassword": "Pasahitza baliogabea", + "internalError": "Hara! Arazoren bat egon da. Errore hau gertatu da: {{error}}", + "internalErrorTitle": "Barne-errorea", + "kickMessage": "{{participantDisplayName}} kontaktatu dezakezu xehetasun gehiago lortzeko.", + "kickParticipantButton": "Bota", + "kickParticipantDialog": "Ziur parte-hartzaile hau bota nahi duzula?", + "kickParticipantTitle": "Bota parte-hartzaile hau?", + "kickTitle": "Ai! {{participantDisplayName}} parte-hartzaileak bileratik bota zaitu", + "liveStreaming": "Zuzeneko erreprodukzioa", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ezin da egin grabazioa martxan dagoen artean", + "liveStreamingDisabledTooltip": "Hasi zuzeneko erreprodukzioa desgaituta.", + "localUserControls": "Erabiltzaile lokalaren kontrolak", + "lockMessage": "Konferentzia blokeatzeak huts egin du.", + "lockRoom": "Gehitu bilerako $t(lockRoomPasswordUppercase)", + "lockTitle": "Blokeoak huts egin du", + "login": "Login", + "logoutQuestion": "Ziur saioa itxi eta konferentzia gelditu nahi duzula?", + "logoutTitle": "Saioa itxi", + "maxUsersLimitReached": "Parte-hartzaileen gehieneko kopurua bete da. Hitzaldia beteta dago. Mesedez, jarri harremanetan antolatzailearekin edo saiatu geroago!", + "maxUsersLimitReachedTitle": "Parte-hartzaileen gehieneko mugara iritsi da", + "micConstraintFailedError": "Mikrofonoak ez ditu eskakizun batzuk betetzen.", + "micNotFoundError": "Mikrofonoa ez da aurkitu.", + "micNotSendingData": "Joan zure ordenagailuaren ezarpenetara mikrofonoa aktibatzeko eta haren maila doitzeko", + "micNotSendingDataTitle": "Zure mikrofonoa isilduta dago zure sistemaren ezarpenetan", + "micPermissionDeniedError": "Ez duzu baimenik eman zure mikrofonoa erabiltzeko. Hitzaldiarekin bat egin dezakezu, baina ezingo duzu entzun. Erabili kameraren botoia helbide-barran hori konpontzeko.", + "micTimeoutError": "Ezin da audio iturburua abiarazi. Denbora-muga gainditu da!", + "micUnknownError": "Ezin da mikrofonoa erabili, arrazoi ezezagunak direla eta.", + "muteEveryoneDialog": "Ziur denak mututu nahi dituzula? Ezin izango dituzu zuk desmututu, baina beraien burua desmutututzeko aukera izango dute.", + "muteEveryoneElseDialog": "Mututu ondoren, ezin izango dituzu desmututu, baina beraien burua desmutututzeko aukera izango dute.", + "muteEveryoneElseTitle": "Isilarazi guztiak {{whom}} izan ezik?", + "muteEveryoneElsesVideoDialog": "Kamara desaktibatzen duzunean ezingo duzu berriz aktibatu, baina besteek aktibatu egin ahal izango dute.", + "muteEveryoneElsesVideoTitle": "Guztien kamera itzali {{whom}} parte-hartzailearena izan ezik?", + "muteEveryoneSelf": "zure burua", + "muteEveryoneStartMuted": "Denak mutututa hasiko dira hemendik aurrera", + "muteEveryoneTitle": "Isilarazi guztiak?", + "muteEveryonesVideoDialog": "Ziur zaude guztien kamera itzali nahi duzula? Ezingo duzu berriz aktibatu baina besteek aktibatu egin ahal izango dute.", + "muteEveryonesVideoDialogOk": "Desaktibatu", + "muteEveryonesVideoTitle": "Guztien kamera desaktibatu?", + "muteParticipantBody": "Ezin izango dituzu zuk desmututu, baina beraien burua desmutututzeko aukera izango dute.", + "muteParticipantButton": "Isilarazi", + "muteParticipantDialog": "Ziur parte-hartzaile hau mututu nahi duzula? Ezin izango duzu zuk desmututu, baina bereburua desmutututzeko aukera izango du.", + "muteParticipantTitle": "Isilarazi parte-hartzaile hau?", + "muteParticipantsVideoBody": "Ezingo duzu berriz aktibatu baina berak edonoiz aktibatu egin ahal izango du.", + "muteParticipantsVideoButton": "Itzali kamera", + "muteParticipantsVideoTitle": "Parte-hartzaile honen kamera itzali?", + "password": "Pasahitza", + "passwordLabel": "Bilera parte-hartzaile batek blokeatu du. Sartu $t(lockRoomPassword) batzeko.", + "passwordNotSupported": "$t(lockRoomPassword) bilera ezartzea ez da onartzen.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) ezin da erabili", + "passwordRequired": "$t(lockRoomPasswordUppercase) beharrezkoa da", + "popupError": "Zure nabigatzaileak gune honetako pop-up leihoak blokeatzen ditu. Aktibatu pop-upak arakatzailearen segurtasun-ezarpenetan eta saiatu berriro.", + "popupErrorTitle": "Laster-leihoa blokeatuta", + "readMore": "more", + "recording": "Grabatzen", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ezin da egin zuzeneko emanaldia aktibo dagoen artean", + "recordingDisabledTooltip": "Hasi grabatzen desgaituta.", + "rejoinNow": "Berriro batu", + "remoteControlAllowedMessage": "{{user}} erabiltzaileak zure urruneko-kontrol eskaera onartu egin du!", + "remoteControlDeniedMessage": "{{user}} erabiltzaileak ez du zure urruneko-kontrol eskaera onartu!", + "remoteControlErrorMessage": "Errora gertatu da {{user}}(r)en urruneko kontrol-baimenak eskatzen saiatzerakoan!", + "remoteControlRequestMessage": "{{user}} baimendu nahi duzu zure mahaigaina urrunetik kontrolatzeko?", + "remoteControlShareScreenWarning": "Kontuan izan \"Baimendu\" sakatzen baduzu zure pantaila partekatuko duzula!", + "remoteControlStopMessage": "Urruneko kontrol saioa amaitu da!", + "remoteControlTitle": "Urruneko mahaigain kontrola", + "remoteUserControls": "{{username}} parte-hartzailearen urruneko kontrolak", + "removePassword": "Kendu $t(lockRoomPassword)", + "removeSharedVideoMsg": "Ziur partekatu duzun bideoa kendu nahi duzula?", + "removeSharedVideoTitle": "Kendu partekatutako bideoa", + "reservationError": "Erreserba sistema-errorea", + "reservationErrorMsg": "Kode-errorea: {{code}}, mezua: {{msg}}", + "retry": "Saiatu berriro", + "screenSharingAudio": "Partekatu audioa", + "screenSharingFailed": "Atx! Erroreren bat gertatu da eta ezin izan dugu zure pantaila partekatzen hasi!", + "screenSharingFailedTitle": "Pantaila partekatzeak huts egin du!", + "screenSharingPermissionDeniedError": "Hara! Arazoren bat egon da pantaila-partekatze luzapenaren baimenekin. Kargatu eta saiatu berriro.", + "sendPrivateMessage": "Mezu pribatua berriki jaso duzu. Pribatuki erantzun nahi duzu ala zure mezua taldera bidali nahi duzu?", + "sendPrivateMessageCancel": "Bidali taldera", + "sendPrivateMessageOk": "Bidali pribatuki", + "sendPrivateMessageTitle": "Bidali pribatuki?", + "serviceUnavailable": "Zerbitzua ez erabilgarria", + "sessTerminated": "Deia amaituta", + "sessionRestarted": "Deia zubiak berrabiarazi du", + "shareVideoLinkError": "Eman esteka zuzena.", + "shareVideoTitle": "Partekatu bideoa", + "shareYourScreen": "Partekatu zure pantaila", + "shareYourScreenDisabled": "Pantaila-partekatzea desgaituta.", + "startLiveStreaming": "Hasi zuzeneko erreprodukzioa", + "startRecording": "Hasi grabatzen", + "startRemoteControlErrorMessage": "Errorea gertatu da urruneko-kontrol saioa hasten saiatzerakoan!", + "stopLiveStreaming": "Gelditu zuzeneko erreprodukzioa", + "stopRecording": "Gelditu grabatzea", + "stopRecordingWarning": "Ziur grabatzeari utzi nahi diozula?", + "stopStreamingWarning": "Ziur zuzeneko erreprodukzioa gelditu nahi duzula?", + "streamKey": "Zuzeneko erreprodukzioaren giltza", + "thankYou": "Eskerrik asko {{appName}} erabiltzeagatik!", + "token": "tokena", + "tokenAuthFailed": "Ez duzu dei honetara elkartzeko baimenik.", + "tokenAuthFailedTitle": "Autentifikazioak huts egin du", + "transcribing": "Transkripzioa", + "unlockRoom": "Kendu bileraren $t(lockRoomPassword)", + "user": "User", + "userIdentifier": "Erabiltzaile-izena", + "userPassword": "Erabiltzailearen pasahitza", + "videoLink": "Bideoaren estaka link", + "yourEntireScreen": "Zure pantaila osoa" + }, + "documentSharing": { + "title": "Partekatutako dokumentua" + }, + "e2ee": { + "labelToolTip": "Bilera honetako audio eta bideoa puntutik puntura zifratuta daude." + }, + "embedMeeting": { + "title": "Bilera hau txertatu" + }, + "feedback": { + "average": "Normala", + "bad": "Txarra", + "detailsLabel": "Esaguzu gehiago horren inguruan.", + "good": "Ona", + "rateExperience": "Puntuatu zure bileraren esperientzia", + "star": "Star", + "veryBad": "Oso Txarra", + "veryGood": "Oso ona" + }, + "helpView": { + "title": "Laguntza gunea" + }, + "incomingCall": { + "answer": "Erantzun", + "audioCallTitle": "Sarrerako deia", + "decline": "Baztertu", + "productLabel": "Jitsi Meet-etik", + "videoCallTitle": "Bideo-deia sartzen" + }, + "info": { + "accessibilityLabel": "Erakutsi informazioa", + "addPassword": "Gehitu $t(lockRoomPassword)", + "cancelPassword": "Utzi $t(lockRoomPassword)", + "conferenceURL": "Esteka:", + "copyNumber": "Kopiatu zenbakia", + "country": "Herrialdea", + "dialANumber": "Bilerara batzeko, deitu zenbaki hauetakoren batera eta sartu pin-a.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Markatzea ez da onartzen.", + "dialInNumber": "Markatzea:", + "dialInSummaryError": "Huts egin du markatze-informazioa eskuratzeko. Saiatu berriro geroago.", + "dialInTollFree": "Doako deia", + "genericError": "Hara! Arazoren bat egon da.", + "inviteLiveStream": "Bilera honen zuzeneko erreprodukzioa ikusteko, egin klik esteka honetan: {{url}}", + "invitePhone": "Telefonoz sartzeko, markatu : {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Markatze-zenbaki ezberdin baten bila zabiltza?\nIkusi bileraren markatze-zenbakiak: {{url}}\n\n\nGela-telefono baten bidez markatzen ari bazara, batu audioa konektatu gabe: {{silentUrl}}", + "inviteSipEndpoint": "SIP helbidea erabiliz sartzeko erabili hau: {{sipUri}}", + "inviteURLFirstPartGeneral": "Bilera batera batzeko gonbidapena luzatu zaizu.", + "inviteURLFirstPartPersonal": "{{name}} erabiltzaileak bilera batera gonbidatu zaitu.\n", + "inviteURLSecondPart": "\nBilerara sartu:\n{{url}}\n", + "label": "Saioari buruzko informazioa", + "liveStreamURL": "Zuzeneko erreprodukzioa:", + "moreNumbers": "Zenbaki gehiago", + "noNumbers": "Markatze-zenbakirik ez.", + "noPassword": "Bat ere ez", + "noRoom": "Ez zen zehaztu behar den gela.", + "numbers": "Markatze-zenbakiak", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Partekatu", + "tooltip": "Partekatu estekaren eta markaketaren inguruko informazioa bilera honetarako" + }, + "inlineDialogFailure": { + "msg": "Arazotxo bat izan dugu.", + "retry": "Saiatu berriro", + "support": "Laguntza", + "supportMsg": "Hau gertatzen jarraituz gero, jarri gurekin harremanetan" + }, + "inviteDialog": { + "alertText": "Ezin izan da parte hartzaile batzuk gonbidatu.", + "header": "Gonbidatu", + "searchCallOnlyPlaceholder": "Sartu telefono zenbakia", + "searchPeopleOnlyPlaceholder": "Bilatu parte-hartzaileak", + "searchPlaceholder": "Parte-hartzailea edo telefono zenbakia", + "send": "Bidali" + }, + "jitsiHome": "{{logo}} Logoa portadara estekatuta dago", + "keyboardShortcuts": { + "focusLocal": "Arreta jarri zure bideoan", + "focusRemote": "Arreta jarri beste pertsona baten bideoan", + "fullScreen": "Ikusi edo irten pantaila osotik", + "keyboardShortcuts": "Teklatu lasterbideak", + "localRecording": "Erakutsi edo ezkutatu grabazio-kontrol lokalak", + "mute": "Mututu edo desmututu mikrofonoa", + "pushToTalk": "Sakatu hitz egiteko", + "raiseHand": "Altxa edo jaitsi eskua", + "showSpeakerStats": "Erakutsi iragarleen estatistikak", + "toggleChat": "Ireki edo itxi txata", + "toggleFilmstrip": "Erakutsi edo ezkutatu bideoaren miniaturak", + "toggleParticipantsPane": "Erakutsi edo ezkutatu parte-hartzaileen panela", + "toggleScreensharing": "Kamera eta pantailaren partekatzea aldatu", + "toggleShortcuts": "Erakutsi edo ezkutatu teklatu lasterbideak", + "videoMute": "Abiarazi edo gelditu zure kamera" + }, + "liveStreaming": { + "busy": "Transmisio baliabideak libratzen ari gara. Saiatu berriro minutu batzuk barru.", + "busyTitle": "Zuzeneko emanaldia egin dezaketen guztiak okupatuta daude", + "changeSignIn": "Aldatu kontua.", + "choose": "Aukeratu zuzeneko transmisioa", + "chooseCTA": "Aukeratu transmisio-aukera. Une honetan {{email}} gisa saioa hasi duzu.", + "enterStreamKey": "Sartu zure YouTube zuzeneko transmisioaren gakoa hemen.", + "error": "Zuzeneko transmisioak huts egin du. Saiatu berriro.", + "errorAPI": "Errorea gertatu da zure YouTube igorpenetan sartzerakoan. Saiatu berriro saioa hasten.", + "errorLiveStreamNotEnabled": "{{email}} e-postan ez dago zuzeneko transmisioa gaituta. Gaitu zuzeneko transmisioa edo hasi saioa zuzeneko transmisioa gaituta duen kontu batean.", + "expandedOff": "Zuzeneko transmisioa gelditu da", + "expandedOn": "Bideodeia YouTuben emititzen ari da", + "expandedPending": "Zuzeneko transmisioa abian da…", + "failedToStart": "Zuzeneko transmisioak ezin izan du hasi", + "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", + "onBy": "{{name}} erabiltzaileak zuzeneko emanaldia hasi du", + "pending": "Zuzeneko transmisioa abian…", + "serviceName": "Zuzeneko transmisioa zerbitzua", + "signIn": "Hasi saioa Google-ekin", + "signInCTA": "Hasi saioa edo sartu zure zuzeneko transmisioaren gakoa YouTube-tik.", + "signOut": "Itxi saioa", + "signedInAs": "Honela hasi duzu saioa:", + "start": "Hasi zuzeneko transmisioa", + "streamIdHelp": "Zer da hau?", + "title": "Zuzeneko Erreprodukzioa", + "unavailableTitle": "Zuzeneko transmisioa ez dago erabilgarri", + "youtubeTerms": "YouTuberen erabilpen baldintzak" + }, + "lobby": { + "allow": "Baimendu", + "backToKnockModeButton": "Ez du pasahitza erabili, baina sartzea eskatu du", + "dialogTitle": "Itxaron-gela modua", + "disableDialogContent": "Itxaron-gela modua aktibatuta dago. Horrela zuk nahi ez duzun erabiltzaileak sartzea eragotzi dezakezu. Desaktibatu egin nahi duzu?", + "disableDialogSubmit": "Desaktibatu", + "emailField": "Idatzi zure eposta", + "enableDialogPasswordField": "Ezarri pasahitza (hautazkoa)", + "enableDialogSubmit": "Aktibatu", + "enableDialogText": "Itxaron-gela moduak zure bilera babesten laguntzen du, horrela moderatzaile batek onartu beharko ditu bileran sartuko diren erabiltzaileak.", + "enterPasswordButton": "Idatzi bileraren pasahitza", + "enterPasswordTitle": "Idatzi pasahitza bileran sartzeko", + "invalidPassword": "Pasahitza ez da zuzena", + "joinRejectedMessage": "Sartzeko eskaera ukatu egin du moderatzaile batek", + "joinTitle": "Sartu bileran", + "joinWithPasswordMessage": "Pasahitz gabe sartzen saiatzen, itxaron mesedez…", + "joiningMessage": "Norbaitek zure eskaera sartu bezain laster sartuko zara bileran", + "joiningTitle": "Sartzeko eskatzen…", + "joiningWithPasswordTitle": "Pasahitzarekin sartzen…", + "knockButton": "Eskatu sartzea", + "knockTitle": "Norbaitek bileran sartu nahi du", + "knockingParticipantList": "Zain dauden parte-hartzaileak", + "nameField": "Idatzi zure izena", + "notificationLobbyAccessDenied": "{{targetParticipantName}} parte-hartzaileara sarbidea ukatu dio {{originParticipantName}} parte-hartzaileak", + "notificationLobbyAccessGranted": "{{targetParticipantName}} parte-hartzailea onartu du {{originParticipantName}} parte-hartzaileak", + "notificationLobbyDisabled": "{{originParticipantName}} parte-hartzaileak itxaron-gela desaktibatu egin du", + "notificationLobbyEnabled": "{{originParticipantName}} parte-hartzaileak itxaron-gela aktibatu egin du", + "notificationTitle": "Itxaron-gela", + "passwordField": "Idatzi bileraren pasahitza", + "passwordJoinButton": "Sartu", + "title": "Itxaron-gela", + "toggleLabel": "Itxaron-gela aktibatu" + }, + "localRecording": { + "clientState": { + "off": "Itzalita", + "on": "Piztuta", + "unknown": "Ezezaguna" + }, + "dialogTitle": "Grabazio-kontrol lokalak", + "duration": "Iraupena", + "durationNA": "E/E", + "encoding": "Kodeketa", + "label": "GLO", + "labelToolTip": "Tokiko grabazioa gaituta dago", + "localRecording": "Grabazio lokala", + "me": "Ni", + "messages": { + "engaged": "Tokiko grabazioa aktibatuta dago.", + "finished": "Grabaketa saioa {{token}} amaitu da. Mesedez, bidali grabatutako fitxategia moderatzaileari.", + "finishedModerator": "{{token}} grabazio saioa amaitu da. Pista lokalaren grabazioa gorde da. Eskatu gainerako parte-hartzaileei bere grabazioak bidaltzeko.", + "notModerator": "Ez zara moderatzailea. Ezin duzu grabazio lokalik hasi edo gelditu." + }, + "moderator": "Moderatzailea", + "no": "Ez", + "participant": "partaidea", + "participantStats": "Parte-hartzaileen estatistikak", + "sessionToken": "Saioaren token-a", + "start": "Grabatzen hasi", + "stop": "Grabaketa gelditu", + "yes": "Bai" + }, + "lockRoomPassword": "Pasahitza", + "lockRoomPasswordUppercase": "Pasahitza", + "lonelyMeetingExperience": { + "button": "Gonbidatu beste batzuk", + "youAreAlone": "Bileran dagoen bakarra zara" + }, + "me": "ni", + "notify": { + "OldElectronAPPTitle": "Zaharkitutako aplikazioa", + "connectedOneMember": "{{name}} bilerara sartu da", + "connectedThreePlusMembers": "{{name}} eta beste {{count}} bilerara sartu dira", + "connectedTwoMembers": "{{first}} eta {{second}} bilerara sartu dira", + "disconnected": "deskonektatuta", + "focus": "Konferentzia fokuratu", + "focusFail": "{{component}} ez dago eskuragarri - saiatu berriro {{ms}} segundo barru", + "grantedTo": "{{to}} parte-hartzaileari moderatzaile eskubideak eman zaizkio!", + "groupTitle": "Jakinarazpenak", + "invitedOneMember": "{{name}} gonbidatu da", + "invitedThreePlusMembers": "{{name}} eta beste {{count}} gonbidatu dira", + "invitedTwoMembers": "{{first}} eta {{second}} jada gonbidatu dira", + "kickParticipant": "{{kicked}} {{kicker}} erabiltzaileak bota egin du", + "me": "Ni", + "moderator": "Moderatzaile eskubideak emanda!", + "muted": "Elkarrizketa mutututa hasi duzu.", + "mutedRemotelyDescription": "Hitz egiteko prest zaudenean mikrofonoa piztu dezakezu. Amaitzean berriz ere isilarazi ezazu bilerako zarata ekiditeko.", + "mutedRemotelyTitle": "{{participantDisplayName}}(e)k mututu zaitu!", + "mutedTitle": "Mutututa zaude!", + "newDeviceAction": "Erabilera", + "newDeviceAudioTitle": "Audio-gailu berria hauteman da", + "newDeviceCameraTitle": "Kamera berria hauteman da", + "oldElectronClientDescription1": "Segurtasun arazoak dituen Jitsi Meet aplikazioa erabiltzen arai zara. Eguneratu ezazu", + "oldElectronClientDescription2": "bertsio berriagora", + "oldElectronClientDescription3": "ORAIN!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) beste erabiltzaile batek kendu du", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) beste erabiltzaile batek ezarri du", + "raisedHand": "{{name}} erabiltzaileak hitz egin nahi du.", + "screenShareNoAudio": " Share audio box was not checked in the window selection screen.", + "screenShareNoAudioTitle": "Share audio was not checked", + "somebody": "Norbait", + "startSilentDescription": "Batu berriro audioa gaitzeko", + "startSilentTitle": "Audio irteerarik gabe batu zara!", + "suboptimalBrowserWarning": "Bilera ez da ona izaten ari. Saiatu nabigatzaile egokiak erabiltzen .", + "suboptimalExperienceTitle": "Nabigatzailearen abisua", + "unmute": "Desmututu", + "videoMutedRemotelyDescription": "You can always turn it on again.", + "videoMutedRemotelyTitle": "Your camera has been disabled by {{participantDisplayName}}!" + }, + "participantsPane": { + "actions": { + "admit": "Onartu", + "admitAll": "Onartu guztiak", + "invite": "Gonbidatu norbait", + "muteAll": "Ixilarazi guztiak", + "reject": "Baztertu", + "stopVideo": "Gelditu bideoa" + }, + "close": "Itxi", + "headings": { + "lobby": "Itxaron-gela ({{count}})", + "participantsList": "Bilerako parte-hartzaileak ({{count}})" + } + }, + "passwordDigitsOnly": "{{number}} digitu arte", + "passwordSetRemotely": "beste parte-hartzaile batek ezarrita", + "polls": { + "errors": { + "notUniqueOption": "Aukerak bakarrak izan behar dira" + } + }, + "poweredby": "garatzailea:", + "prejoin": { + "audioAndVideoError": "Errorea audio eta bideoan:", + "audioDeviceProblem": "Arazo bat dago zure audio gailuarekin", + "audioOnlyError": "Errorea audioan:", + "audioTrackError": "Ezin izan da audio pista sortu.", + "callMe": "Deitu nazazu", + "callMeAtNumber": "Deitu nazazu zenbaki honetara:", + "calling": "Deitzen", + "configuringDevices": "Gailuak konfiguratzen…", + "connectedWithAudioQ": "Audioarekin konektatuta zaude?", + "connection": { + "good": "Zure internet konexioa ondo dabil!", + "nonOptimal": "Zure internet konexioa ez da onena", + "poor": "Zure internet konexioa kaxkarra da" + }, + "connectionDetails": { + "audioClipping": "Zure audioa ez da guztiz ondo entzungo.", + "audioHighQuality": "Zure audioak kalitate bikaina izango du.", + "audioLowNoVideo": "Zura audioa kaxkarra izango da eta ez da bideorik egongo.", + "goodQuality": "Izugarria! Zure deiaren kalitatea ona izango da.", + "noMediaConnectivity": "Ezin izan dugu proba hau egiteko inora konektatu. Hau firewall edo suebaki bat dagoelako eta NATagatik gertatu ohi da.", + "noVideo": "Zure bideoa oso txarra izango da.", + "undetectable": "Oraindik ere ezin baduzu nabigatzailean dieirk egin, ziurtatu zure bozgorailu, mikrofono eta kamera piztuta daudela eta ondo dabiltzala eta nabigatzaileari berauek erabiltzeko baimena eman diozula.", + "veryPoorConnection": "Zure deiaren kalitatea oso txarra izango da.", + "videoFreezing": "Zure bideoa gelditu, belztu eta pixelatu egingo da.", + "videoHighQuality": "Zure bideoak kalitate ona izango du.", + "videoLowQuality": "Zure bideoak kalitate txikia izango du.", + "videoTearing": "Zure bideoa pixelatuta agertuko da eta ez da ondo ikusiko." + }, + "copyAndShare": "Kopiatu eta partekatu bileraren esteka", + "dialInMeeting": "Telefono dei bat eginez sartu", + "dialInPin": "Deitu bilerara eta idatzi kode hau:", + "dialing": "Deitzen", + "doNotShow": "Ez erakutsi pantaila hau berriz", + "errorDialOut": "Ezin izan da deitu", + "errorDialOutDisconnected": "Ezin izan da deitu. Konexioa eten egin da", + "errorDialOutFailed": "Ezin izan da deitu. Deiak huts egin du", + "errorDialOutStatus": "Ezin izan da deiaren egoera lortu", + "errorMissingName": "Idatzi zure izena bileran sartzeko", + "errorStatusCode": "Errorea deitzean, kodea: {{status}}", + "errorValidation": "Zenbakiaren balidazioak huts egin du", + "iWantToDialIn": "Telefonoz sartu nahi dut", + "initiated": "Deia hasi da", + "joinAudioByPhone": "Telefono deiaren audioarekin sartu", + "joinMeeting": "Bilerara sartu", + "joinWithoutAudio": "Audio gabe sartu", + "keyboardShortcuts": "Aktibatu teklatuaren laster-teklak", + "linkCopied": "Lotura ondo kopiatu da", + "lookGood": "Zure mikrofonoa ondo dabil", + "or": "edo", + "premeeting": "Aurre-bilera", + "screenSharingError": "Errorea pantaila partekatzean:", + "startWithPhone": "Telefono diearen audioarekin hasi", + "videoOnlyError": "Errorea bideoan:", + "videoTrackError": "Ezin izan da bideo pista sortu.", + "viewAllNumbers": "zenbaki guztiak ikusi" + }, + "presenceStatus": { + "busy": "Okupatuta", + "calling": "Deitzen…", + "connected": "Konektatuta", + "connecting": "Konektatzen…", + "connecting2": "Konektatzen*…", + "disconnected": "Deskonektatuta", + "expired": "Iraungita", + "ignored": "Ezikusia", + "initializingCall": "Deia hasieratzen…", + "invited": "Gonbidatua", + "rejected": "Baztertuta", + "ringing": "Deitzen…" + }, + "profile": { + "avatar": "iruditxoa", + "setDisplayNameLabel": "Ezarri zure bistaratze-izena", + "setEmailInput": "Sartu e-posta", + "setEmailLabel": "Ezarri zure gravatar e-posta", + "title": "Profila" + }, + "raisedHand": "Hitz egin nahiko luke", + "recording": { + "authDropboxText": "Kargatu Dropbox-era", + "availableSpace": "Leku erabilgarria: {{spaceLeft}} MB (gutxi gorabehera {{duration}} grabazio minutuak)", + "beta": "BETA", + "busy": "Grabazio baliabideak libratzen ari gara. Saiatu berriro minutu batzuk barru.", + "busyTitle": "Grabatzaile guztiak okupatuta daude", + "error": "Grabazioak huts egin du. Saiatu berriro.", + "expandedOff": "Grabazioa gelditu da", + "expandedOn": "Bilera grabatzen ari da.", + "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", + "offBy": "{{name}} erabiltzaileak grabazioa gelditu du", + "on": "Grabaketa", + "onBy": "{{name}} erabiltzaileak grabazioa hasi du", + "pending": "Bilera grabatzeko prestatzen…", + "rec": "GRB", + "serviceDescription": "Zure grabazioa grabazio-zerbitzuan gordeko da", + "serviceDescriptionCloud": "Lainoko grabazioa", + "serviceName": "Grabazio-zerbitzua", + "signIn": "Sartu", + "signOut": "Itxi saioa", + "title": "Grabatzen", + "unavailable": "Atx! {{serviceName}} ez dago eskuragarri. Arazoa konpontzeko lanean gabiltza. Saiatu berriz beranduago.", + "unavailableTitle": "Grabazioa ez dago eskuragarri" + }, + "sectionList": { + "pullToRefresh": "Eguneratu" + }, + "security": { + "about": "Zure bilerari $t(lockRoomPassword) gehitu diezaiokezu. Parte-hartzaileek $t(lockRoomPassword) idatzi beharko dute bilerara sartu aurretik.", + "aboutReadOnly": "Moderatzaileak $t(lockRoomPassword) gehitu diezaiokete bilerari. Parte-hartzaileek $t(lockRoomPassword) idatzi beharko dute bilerara sartu aurretik.", + "insecureRoomNameWarning": "Bileraren izena ez da segurua. Nahi ez duzun parte-hartzaileak agertu daitezke. Baloratu segurtasuna botoia erabiliz bilerari segurtasuna gehitzea.", + "securityOptions": "Segurtasun aukerak" + }, + "settings": { + "calendar": { + "about": "Egutegiaren integrazioa {{appName}} zure egutegian modu seguruan sartzeko erabiltzen da datozen gertaerak irakurri ahal izateko.", + "disconnect": "Deskonektatu", + "microsoftSignIn": "Saioa hasi Microsoftekin", + "signedIn": "Une honetan {{email}} arekin egutegiko gertaeretara sartzen ari zara. Egin klik beheko botoia deskonektatzeko.", + "title": "Egutegia" + }, + "devices": "Gailuak", + "followMe": "Denek jarraitzen naute", + "language": "Hizkuntza", + "loggedIn": "Saioa {{name}} gisa hasi da", + "microphones": "Mikrofonoak", + "moderator": "Moderatzailea", + "more": "Gehiago", + "name": "Izena", + "noDevice": "Bat ere ez", + "sameAsSystem": "Same as system ({{label}})", + "selectAudioOutput": "Audio irteera", + "selectCamera": "Kamera", + "selectMic": "Mikrofonoa", + "speakers": "Bozgorailuak", + "startAudioMuted": "Denok isilik hasi", + "startVideoMuted": "Denak ezkutatuta hasi", + "title": "Ezarpenak" + }, + "settingsView": { + "advanced": "Aurreratua", + "alertCancel": "Utzi", + "alertOk": "Ados", + "alertTitle": "Abisua", + "alertURLText": "Zerbitzariaren URLa baliogabea da", + "buildInfoSection": "Konpilazioaren informazioa", + "conferenceSection": "Konferentzia", + "disableCallIntegration": "Desgaitu jatorrizko deien integrazioa", + "disableCrashReporting": "Desgaitu huts egiteen inguruko informazioa bidaltzea", + "disableCrashReportingWarning": "Ziur zaude ez duzula huts egiteen inguruko informazioa bidaltzerik? Aukera aplikazioa berrabiaraztean aktibatuko da.", + "disableP2P": "Desgaitu puntuz puntuko modua", + "displayName": "Bistaratzeko izena", + "email": "Posta elektronikoa", + "header": "Ezarpenak", + "profileSection": "Profila", + "serverURL": "Zerbitzariaren URLa", + "showAdvanced": "Erakutsi ezarpen aurreratuak", + "startWithAudioMuted": "Hasi audio isilean", + "startWithVideoMuted": "Hasi bideoa isilean", + "version": "Bertsioa" + }, + "share": { + "dialInfoText": "\n\n===== \\ n\nZure telefonoan markatu nahi duzu? \\ N\n{{defaultDialInNumber}} Egin klik esteka honetan bilera horretako telefonoak ikusteko\n{{dialInfoPageUrl}}", + "mainText": "Egin klik hurrengo estekan bilerara elkartzeko:\n{{roomUrl}}" + }, + "speaker": "bozgorailua", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Izena", + "search": "Bilatu", + "searchHint": "Bilatu parte-hartzaileak", + "seconds": "{{count}}s", + "speakerStats": "Hizlariaren estatistikak", + "speakerTime": "Hizlariaren denbora" + }, + "startupoverlay": { + "genericTitle": "Bilerak zure mikrofonoa eta kamera erabili behar ditu.", + "policyText": " ", + "title": "{{app}} aplikazioak zure mikrofonoa eta kamara erabili behar ditu." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Atzera", + "text": "Sakatu Bildu botoia berriro konektatzeko.", + "title": "Bideo-deia eten egin da ekipamendu hau gelditu delako" + }, + "toolbar": { + "Settings": "Ezarpenak", + "accessibilityLabel": { + "Settings": "Txandakatu ezarpenak", + "audioOnly": "Txandakatu audioa soilik", + "audioRoute": "Hautatu soinu-gailua", + "callQuality": "Kudeatu bideoaren kalitatea", + "cc": "Txandakatu azpitituluak", + "chat": "Txandakatu txat leihoa", + "collapse": "Batu", + "document": "Txandakatu partekatutako dokumentua", + "download": "Gure aplikazioak deskargatu", + "embedMeeting": "Embed meeting", + "expand": "Zabaldu", + "feedback": "Utzi iruzkin bat", + "fullScreen": "Aldatu pantaila osora", + "grantModerator": "Bihurtu moderatzaile", + "hangup": "Deia bota", + "help": "Laguntza", + "invite": "Jendea gonbidatu", + "kick": "Kanporatu parte-hartzailea", + "lobbyButton": "Aktibatu/desaktibatu itxaron-gela", + "localRecording": "Tokiko grabazio kontrolak kontrolatu", + "lockRoom": "Aldatu bileraren pasahitza", + "moreActions": "Txandakatu ekintza gehiago menua", + "moreActionsMenu": "Ekintza gehiago menua", + "moreOptions": "Erakutsi aukera gehiagu", + "mute": "Isildu", + "muteEveryone": "Partehartzaile guztiak isildu", + "muteEveryoneElse": "Ixildu beste guztiak", + "muteEveryoneElsesVideo": "Itzali beste guztien kamera", + "muteEveryonesVideo": "Itzali guztien kamera", + "participants": "Parte-hartzaileak", + "pip": "Txandakatu irudiaren irudian", + "privateMessage": "Mezu pribatua bidali", + "profile": "Editatu zure profila", + "raiseHand": "Jaso edo jaitsi eskua", + "recording": "Grabaketa aktibatu", + "remoteMute": "Mututu parte-hartzailea", + "remoteVideoMute": "Desaktibatu parte-hartzaile baten kamera", + "security": "Segurtasun aukerak", + "selectBackground": "Aukeratu atzeko-planoa", + "shareRoom": "norbait gonbidatu", + "shareYourScreen": "Txandakatu pantaila partekatzea", + "shareaudio": "Partekatu audioa", + "sharedvideo": "Txandakatu bideoa partekatzen", + "shortcuts": "Txandakatu lasterbideak", + "show": "Erakutsi", + "speakerStats": "Txandakatu hiztunen estatistikak", + "tileView": "Txandakatu fitxa ikuspegia", + "toggleCamera": "Txandakatu kamera", + "toggleFilmstrip": "Txandakatu film-zerrenda", + "videoblur": "Txandakatu bideoaren lausotzea", + "videomute": "Txandakatu mutututako bideoa" + }, + "addPeople": "Gehitu jendea zure deira", + "audioOnlyOff": "Gaitu audioa soilik modua", + "audioOnlyOn": "Gaitu audioa soilik modua", + "audioRoute": "Aukeratu soinu gailua", + "audioSettings": "Audio ezarpenak", + "authenticate": "Autentifikatu", + "callQuality": "Kudeatu deiaren kalitatea", + "chat": "txat gela ireki / itxi", + "closeChat": "Itxi txat gela", + "documentClose": "Dokumentu partekatu itxi", + "documentOpen": "Ireki partekatutako dokumentua", + "download": "Deskargatu gure aplikazioa", + "e2ee": "Puntutik punturako zifratzea", + "embedMeeting": "Txertatu bilera", + "enterFullScreen": "Ikusi pantaila osoa", + "enterTileView": "Sartu mosaiko ikuspegian", + "exitFullScreen": "Irten pantaila osora", + "exitTileView": "Irten mosaikoaren ikuspegitik", + "feedback": "Utzi iruzkin bat", + "hangup": "Irten", + "help": "Laguntza", + "invite": "Jendea gonbidatu", + "lobbyButtonDisable": "Desaktibatu itxaron-gela modua", + "lobbyButtonEnable": "Aktibatu itxaron-gela modua", + "login": "Saioa hasi", + "logout": "Itxi saioa", + "lowerYourHand": "Jaitsi eskua", + "moreActions": "Ekintza gehiago", + "moreOptions": "Aukera gehiago", + "mute": "Isiltasuna aktibatu / desaktibatu", + "muteEveryone": "Partehartzaile guztiak isildu", + "muteEveryonesVideo": "Desaktibatu guztien kamera", + "noAudioSignalDesc": "Sistema edo gailuaren ezarpenetatik islatu ez baduzu, kontuan hartu gailua aldatzea.", + "noAudioSignalDescSuggestion": "Sistema edo gailuaren ezarpenetatik islatu ez baduzu, kontuan hartu hurrengo gailua erabiltzea:", + "noAudioSignalDialInDesc": "Gainera, hau erabiliz deitu dezakezu:", + "noAudioSignalDialInLinkDesc": "Deitzeko telefonoak", + "noAudioSignalTitle": "Mikrofonotik ez dago sarrerarik!", + "noisyAudioInputDesc": "ingurune zaratatsua", + "noisyAudioInputTitle": "ingurune zaratatsua", + "openChat": "Ireki txata", + "participants": "Parte-hartzaileak", + "pip": "Irudi-irudian sartu", + "privateMessage": "Bidali mezu pribatua", + "profile": "Editatu zure profila", + "raiseHand": "Jaso / jaitsi eskua", + "raiseYourHand": "Jaso eskua", + "security": "Segurtasun aukerak", + "selectBackground": "Aukeratu atzeko planoa", + "shareRoom": "Gonbidatu norbait", + "shareaudio": "Partekatu audioa", + "sharedvideo": "Partekatu bideoa", + "shortcuts": "Ikusi lasterbideak", + "speakerStats": "Hizlariaren estatistikak", + "startScreenSharing": "Hasi pantaila partekatzen", + "startSubtitles": "Azpitituluak hasi", + "stopScreenSharing": "Gelditu pantaila partekatzea", + "stopSharedVideo": "Bideoa gelditu", + "stopSubtitles": "Azpitituluak gelditu", + "talkWhileMutedPopup": "Hitz egiten saiatzen ari al zara? Mututa zaude.", + "tileViewToggle": "Txandakatu fitxa ikuspegia", + "toggleCamera": "Txandakatu kamera", + "videoSettings": "Video ezarpenak", + "videomute": "Hasi / gelditu kamera" + }, + "transcribing": { + "ccButtonTooltip": "Hasi / Gelditu Azpitituluak", + "error": "Transkripzioak huts egin du. Saiatu berriro.", + "expandedLabel": "Transkripzioa aktibatuta", + "failedToStart": "Ezin da transkripzioa hasi", + "labelToolTip": "Bilera transkribatzen ari da", + "off": "Transkripzioa gelditu da", + "pending": "Bileraren transkripzioa prestatzen…", + "start": "Erakutsi azpitituluak", + "stop": "Utzi azpitituluak erakusten", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Mesedez, eman zure kamera eta mikrofonoa erabiltzeko baimenak." + }, + "videoSIPGW": { + "busy": "Baliabideak askatzeko lanetan gabiltza. Mesedez, saiatu berriro minutu batzuk barru.", + "busyTitle": "Gela zerbitzua lanpetuta dago une honetan", + "errorAlreadyInvited": "{{displayName}} jada gonbidatuta dago", + "errorInvite": "Konferentzia oraindik ez da finkatu. Saiatu berriro geroago.", + "errorInviteFailed": "Egoera konpontzeko lanean gabiltza. Saiatu berriro geroago.", + "errorInviteFailedTitle": "{{displayName}}} huts egin du", + "errorInviteTitle": "Errorea gela gonbidatzea", + "pending": "{{displayName}} gonbidatu da" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Audio-soilik moduan zaude. Modu honek banda zabalera gordetzen du, baina besteen bideoa ez duzu ikusiko.", + "callQuality": "Bideo kalitatea", + "hd": "HD", + "hdTooltip": "Bideoa definizio-altuan ikusten", + "highDefinition": "Definizio-altuan moduan dago", + "labelTooiltipNoVideo": "Ez dago bideorik", + "labelTooltipAudioOnly": "Audio-soilik moduan dago", + "ld": "LD", + "ldTooltip": "Bideoa behe-definizioan ikusten", + "lowDefinition": "Behe-definizioa", + "sd": "SD", + "sdTooltip": "Definizio estandarrean bideoa ikusten", + "standardDefinition": "Definizio estandarra" + }, + "videothumbnail": { + "connectionInfo": "Konexioaren informazioa", + "domute": "Mututu", + "domuteOthers": "Mututu beste guztiak", + "domuteVideo": "Desaktibatu kamera", + "domuteVideoOfOthers": "Desaktibatu beste guztien kamera", + "flip": "Irauli", + "grantModerator": "Bihurtu moderatzaile", + "kick": "Bota", + "moderator": "Moderatzailea", + "mute": "Parte-hartzailea mutututa dago", + "muted": "Mutututa", + "remoteControl": "Hasi / Gelditu urruneko kontrola", + "show": "Erakutsi", + "videoMuted": "Kamera desaktibatuta", + "videomute": "Parte-hartzaileak kamera geldiarazi du." + }, + "virtualBackground": { + "addBackground": "Gehitu atzeko planoa", + "apply": "Aplikatu", + "blur": "Lausotu", + "deleteImage": "Ezabatu irudia", + "desktopShare": "Mahaigaina partekatu", + "desktopShareError": "Ezin izan da mahaigaina partekatu", + "image1": "Hondartza", + "image2": "Horma zuria", + "image3": "Gela huts zuria", + "image4": "Lurreko lanpara beltza", + "image5": "Mendia", + "image6": "Basoa", + "image7": "Egunsentia", + "none": "Bat ere ez", + "pleaseWait": "Itxaron mesedez…", + "removeBackground": "Kendu atzeko planoa", + "slightBlur": "Lausotze arina", + "title": "Atzeko plano birtualak", + "uploadedImage": "Kargatutako irudia {{index}}", + "webAssemblyWarning": "Ezin da WebAssembly erabili" + }, + "volumeSlider": "Bolumena", + "welcomepage": { + "accessibilityLabel": { + "join": "Klik batzeko", + "roomname": "Sartu gelaren izena" + }, + "addMeetingName": "Gehitu bileraren izena", + "appDescription": "Zure lantalde guztiarentzat bideodeiak. {{app}} aplikazio zifratu eta segurua da, eta gainera %100 software librea, doakoa, denbora mugarik gabe eta konturik sortu gabe erabiltzekoa.", + "audioVideoSwitch": { + "audio": "Ahotsa", + "video": "Bideoa" + }, + "calendar": "Egutegia", + "connectCalendarButton": "Konektatu zure egutegia", + "connectCalendarText": "Konektatu egutegia zure bilera guztiak {{app}}en ikusteko. Gainera, gehitu {{provider}} bilerak zure egutegian eta hasi klik bakar batekin.", + "enterRoomTitle": "Hasi bilera berria", + "getHelp": "Lortu laguntza", + "go": "JOAN", + "goSmall": "JOAN", + "headerSubtitle": "Secure and high quality meetings", + "headerTitle": "Jitsi Meet", + "info": "Informazioa", + "jitsiOnMobile": "Jitsi eramangarrian – deskargatu gure aplikazioak eta hasi bilerak edonondik", + "join": "SORTU / SARTU", + "logo": { + "calendar": "Egutegiaren logoa", + "desktopPreviewThumbnail": "Aurrebistaren iruditxoa", + "googleLogo": "Googleren logoa", + "logoDeepLinking": "Jitsi meeten logo", + "microsoftLogo": "Microsoften logo", + "policyLogo": "Politikaren logoa" + }, + "mobileDownLoadLinkAndroid": "Deskargatu Android aplikazioa", + "mobileDownLoadLinkFDroid": "Deskargatu aplikazioa F-Droid-etik", + "mobileDownLoadLinkIos": "Deskargatu iOS aplikazioa", + "moderatedMessage": "Edu gorde bilera helbide bat eta zeu izango zara moderatzailea.", + "privacy": "Pribatutasuna", + "recentList": "Azkenak", + "recentListDelete": "Ezabatu", + "recentListEmpty": "Azkenak zerrenda hutsik dago. Txateatu zure taldearekin eta azken bilera guztiak hemen aurkituko dituzu.", + "reducedUIText": "Ongi etorri {{app}}era!", + "roomNameAllowedChars": "Bileraren izenak ez du honelako karaktererik eduki behar: ?, &,:, ', \",%, #.", + "roomname": "Sartu gelaren izena", + "roomnameHint": "Sartu batu nahi duzun gelaren izena edo URLa. Izen bat sor dezakezu eta bilerara sartuko diren pertsonei esaiezu, izen bera sartu dezaten.", + "sendFeedback": "Bidali iritzia", + "startMeeting": "Hasi bilera", + "terms": "Baldintzak", + "title": "Bideo-dei seguruak, hainbat aukerarekin eta guztiz doan." + } +} diff --git a/lang/main-fa.json b/lang/main-fa.json new file mode 100644 index 0000000..026f9e5 --- /dev/null +++ b/lang/main-fa.json @@ -0,0 +1,1480 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "پیوند جلسه: {{url}}" + }, + "add": "دعوت‌کردن", + "addContacts": "دعوت از مخاطبین شما", + "contacts": "مخاطبین", + "copyInvite": "رونوشت دعوت‌نامه جلسه", + "copyLink": "رونوشت پیوند جلسه", + "copyStream": "رونوشت پیوند پخش زنده", + "countryNotSupported": "این مقصد را هنوز پشتیبانی نمی‌کنیم.", + "countryReminder": "می‌خواهید با خارج از کشور تماس بگیرید؟ لطفاً مطمئن شوید که ابتدا پیش‌شماره را وارد می‌کنید!", + "defaultEmail": "رایانامهٔ پیش‌فرض شما", + "disabled": "شما نمی‌توانید کسی را دعوت کنید.", + "failedToAdd": "افزودن شرکت‌کنندگان با خطا مواجه شد", + "googleEmail": "رایانامهٔ گوگل", + "inviteMoreHeader": "شما تنها فرد حاضر در این جلسه هستید", + "inviteMoreMailSubject": "به جلسهٔ {{appName}} بپیوندید", + "inviteMorePrompt": "دعوت افراد بیش‌تر", + "linkCopied": "پیوند در بریده‌دان رونوشت شد", + "noResults": "هیچ نتیجه‌ای مطابق با جستجو یافت نشد", + "outlookEmail": "رایانامهٔ اوت‌لوک", + "phoneNumbers": "شماره تلفن‌ها", + "searching": "درحال جستجو…", + "shareInvite": "هم‌رسانی دعوت‌نامهٔ جلسه", + "shareLink": "هم‌رسانی پیوند جلسه برای دعوت دیگران", + "shareStream": "هم‌رسانی پیوند پخش زنده", + "sipAddresses": "نشانی‌های sip", + "telephone": "تلفن: {{number}}", + "title": "دعوت افراد به این جلسه", + "yahooEmail": "رایانامهٔ یاهو" + }, + "audioDevices": { + "bluetooth": "بلوتوث", + "car": "صدای خودرو", + "headphones": "هدفون", + "none": "هیچ دستگاه صوتی‌ای در دسترس نیست", + "phone": "تلفن", + "speaker": "بلندگو" + }, + "audioOnly": { + "audioOnly": "پهنای باند کم" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "برای مثال ۱۰۰۰۰۰۰۰ برای ۱۰ مگابایت", + "assumedBandwidthBpsWarning": "مقدارهای بالاتر ممکن است باعث مشکلات شبکه شوند.", + "customValue": "مقدار سفارشی", + "customValueEffect": "برای تنظیم مقدار واقعی bps", + "leaveEmpty": "خالی بگذارید", + "leaveEmptyEffect": "تا امکان انجام تخمین‌ها فراهم شود", + "possibleValues": "مقدارهای ممکن", + "setAssumedBandwidthBps": "پهنای باند فرض‌شده (bps)", + "title": "تنظیمات پهنای باند", + "zeroEffect": "برای غیرفعال‌کردن ویدیو" + }, + "breakoutRooms": { + "actions": { + "add": "افزودن اتاق جانبی", + "autoAssign": "اختصاص خودکار به اتاق‌های جانبی", + "close": "بستن", + "join": "پیوستن", + "leaveBreakoutRoom": "اتاق جانبی را ترک کنید", + "more": "بیش‌تر", + "remove": "حذف‌کردن", + "sendToBreakoutRoom": "ارسال شرکت‌کننده به:" + }, + "defaultName": "اتاق جانبی #{{index}}", + "mainRoom": "اتاق اصلی", + "notifications": { + "joined": "درحال پیوستن به اتاق جانبی «{{name}}»", + "joinedMainRoom": "درحال پیوستن به اتاق اصلی", + "joinedTitle": "اتاق‌های جانبی" + } + }, + "calendarSync": { + "addMeetingURL": "افزودن یک پیوند جلسه", + "confirmAddLink": "آیا می‌خواهید پیوند جلسه به این رویداد اضافه شود؟", + "error": { + "appConfiguration": "اتصال تقویم به‌درستی پیکربندی نشده‌است.", + "generic": "خطایی رخ‌داده‌است. لطفاً تنظیمات تقویم خود را بررسی کنید یا تازه‌سازی تقویم را امتحان کنید.", + "notSignedIn": "هنگام احراز هویت برای دیدن رویدادهای تقویم خطایی رخ‌داده‌است. لطفاً تنظیمات تقویم خود را بررسی کنید و دوباره وارد شوید." + }, + "join": "پیوستن", + "joinTooltip": "پیوستن به جلسه", + "nextMeeting": "جلسهٔ بعدی", + "noEvents": "هیچ رویدادی برای آینده برنامه‌ریزی نشده است.", + "ongoingMeeting": "جلسهٔ درحال برگزاری", + "permissionButton": "بازکردن تنظیمات", + "permissionMessage": "دسترسی تقویم برای دیدن جلسات شما در برنامه لازم است.", + "refresh": "بازخوانی تقویم", + "today": "امروز" + }, + "carmode": { + "actions": { + "selectSoundDevice": "انتخاب دستگاه صوتی" + }, + "labels": { + "buttonLabel": "حالت خودرو", + "title": "حالت خودرو", + "videoStopped": "ویدیوی شما متوقف شد" + } + }, + "chat": { + "enter": "ورود به اتاق", + "error": "خطا: پیام شما ارسال نشد. دلیل: {{error}}", + "fieldPlaceHolder": "پیام خود را بنویسید", + "lobbyChatMessageTo": "پیام گپِ اتاق انتظار به {{recipient}}", + "message": "پیام", + "messageAccessibleTitle": "{{user}} می‌گوید:", + "messageAccessibleTitleMe": "من می‌گویم:", + "messageTo": "پیام خصوصی به {{recipient}}", + "messagebox": "یک پیام بنویسید", + "newMessages": "پیام‌های جدید", + "nickname": { + "popover": "نام نمایشی خود را وارد نمایید", + "title": "برای استفاده از گپ، نام نمایشی خود را وارد کنید", + "titleWithPolls": "برای استفاده از گپ و نظرسنجی، نام نماشی خود را وارد کنید" + }, + "noMessagesMessage": "هنوز هیچ پیامی در این جلسه وجود ندارد. از این‌جا یک گفتگو را آغاز کنید!", + "privateNotice": "پیام خصوصی به {{recipient}}", + "sendButton": "ارسال", + "smileysPanel": "تابلوی شکلک", + "tabs": { + "chat": "گپ", + "polls": "نظرسنجی‌ها" + }, + "title": "گپ", + "titleWithPolls": "گپ و نظرسنجی‌ها", + "you": "شما" + }, + "chromeExtensionBanner": { + "buttonText": "نصب افزونهٔ مرورگر Chrome", + "buttonTextEdge": "نصب افزونهٔ مرورگر Edge", + "close": "بستن", + "dontShowAgain": "دیگر این را به من نمایش نده", + "installExtensionText": "برای اتصال به تقویم گوگل و برنامه آفیس 365 افزونه را نصب کنید" + }, + "connectingOverlay": { + "joiningRoom": "درحال اتصال شما به جلسه…" + }, + "connection": { + "ATTACHED": "پیوست‌شده", + "AUTHENTICATING": "درحال احراز هویت", + "AUTHFAIL": "خطا در احراز هویت", + "CONNECTED": "وصل‌شده", + "CONNECTING": "درحال اتصال", + "CONNFAIL": "خطا در اتصال", + "DISCONNECTED": "قطع شد", + "DISCONNECTING": "درحال قطع اتصال", + "ERROR": "خطا", + "FETCH_SESSION_ID": "دریافت شناسهٔ جلسه…", + "GET_SESSION_ID_ERROR": "خطا در دریافت شناسهٔ جلسه: {{code}}", + "GOT_SESSION_ID": "دریافت شناسهٔ جلسه… انجام شد", + "LOW_BANDWIDTH": "برای صرفه‌جویی در پهنای باند، ویدیو برای {{displayName}} غیرفعال شد" + }, + "connectionindicator": { + "address": "نشانی:", + "audio_ssrc": "SSRC صدا:", + "bandwidth": "پهنای باند تخمینی:", + "bitrate": "نرخ بیت:", + "bridgeCount": "تعداد سرور: ", + "codecs": "رمزینه‌ها (A/V): ", + "connectedTo": "متصل به:", + "e2eeVerified": "رمزگذاری سرتاسری تأیید شد:", + "framerate": "نرخ بازسازی تصویر:", + "less": "نمایش کم‌تر", + "localaddress": "نشانی داخلی:", + "localaddress_plural": "نشانی‌های داخلی:", + "localport": "درگاه داخلی:", + "localport_plural": "درگاه‌های داخلی:", + "maxEnabledResolution": "ارسال بیشینه", + "more": "نمایش بیش‌تر", + "no": "خیر", + "packetloss": "بسته‌های گمشده:", + "participant_id": "شناسهٔ شرکت‌کننده:", + "quality": { + "good": "خوب", + "inactive": "غیرفعال", + "lost": "گم‌شده", + "nonoptimal": "غیربهینه", + "poor": "ضعیف" + }, + "remoteaddress": "نشانی بیرونی:", + "remoteaddress_plural": "نشانی‌های بیرونی:", + "remoteport": "درگاه بیرونی:", + "remoteport_plural": "درگاه‌های بیرونی:", + "resolution": "وضوح:", + "savelogs": "ذخیرهٔ گزارش‌ها", + "status": "اتصال:", + "transport": "انتقال:", + "transport_plural": "انتقال‌ها:", + "video_ssrc": "SSRC ویدیو:", + "yes": "بله" + }, + "dateUtils": { + "earlier": "قبل‌تر", + "today": "امروز", + "yesterday": "دیروز" + }, + "deepLinking": { + "appNotInstalled": "برای پیوستن به این جلسه باید با برنامهٔ {{app}} در تلفن همراه خود ادامه دهید.", + "description": "هیچ اتفاقی نیفتاد؟ تلاش کردیم جلسه را در نرم‌افزار میزکار {{app}} اجرا کنیم. دوباره تلاش کنید یا جلسه را در نسخهٔ وب {{app}} اجرا کنید.", + "descriptionNew": "هیچ اتفاقی نیفتاد؟ تلاش کردیم جلسه را در نرم‌افزار میزکار {{app}} اجرا کنیم.

می‌توانید دوباره تلاش کنید یا جلسه را در نسخهٔ وب اجرا کنید.", + "descriptionWithoutWeb": "هیچ اتفاقی نیفتاد؟ تلاش کردیم جلسه را در نرم‌افزار میزکار {{app}} اجرا کنیم.", + "downloadApp": "بارگیری برنامه", + "downloadMobileApp": "بارگیری از فروشگاه برنامه‌ها", + "ifDoNotHaveApp": "اگر هنوز برنامه را نصب نکرده‌اید:", + "ifHaveApp": "اگر قبلا برنامه را نصب کرده‌اید:", + "joinInApp": "با استفاده از برنامه به جلسه بپیوندید", + "joinInAppNew": "با استفاده از برنامه بپیوندید", + "joinInBrowser": "با استفاده از مرورگر بپیوندید", + "launchMeetingLabel": "چگونه می‌خواهید به این جلسه بپیوندید؟", + "launchWebButton": "استفاده از نسخه‌ٔ وب", + "noMobileApp": "برنامه را نصب نکرده‌اید؟", + "termsAndConditions": "با ادامه‌دادن، با شرایط و ضوابط ما موافقت می‌کنید.", + "title": "درحال اجرای جلسهٔ شما در {{app}}…", + "titleNew": "درحال اجرای جلسهٔ شما…", + "tryAgainButton": "با نسخه‌ٔ میزکار دوباره تلاش کنید", + "unsupportedBrowser": "به نظر می‌رسد در حال استفاده از یک مرورگر پشتیبانی‌نشده هستید." + }, + "defaultLink": "برای مثال {{url}}", + "defaultNickname": "برای مثال: آناهیتا", + "deviceError": { + "cameraError": "خطا در دسترسی به دوربین", + "cameraPermission": "خطا در گرفتن اجازهٔ دوربین", + "microphoneError": "خطا در دسترسی به میکروفن", + "microphonePermission": "خطا در گرفتن اجازهٔ میکروفن" + }, + "deviceSelection": { + "hid": { + "callControl": "کنترل تماس", + "connectedDevices": "دستگاه‌های متصل:", + "deleteDevice": "حذف دستگاه", + "pairDevice": "جفت‌کردن دستگاه" + }, + "noPermission": "اجازه داده نشد", + "previewUnavailable": "پیش‌نمایش در دسترس نیست", + "selectADevice": "یک دستگاه را انتخاب کنید", + "testAudio": "آزمایش" + }, + "dialIn": { + "screenTitle": "خلاصهٔ شماره‌گیری" + }, + "dialOut": { + "statusMessage": "اکنون {{status}} است" + }, + "dialog": { + "Back": "بازگشت", + "Cancel": "لغو", + "IamHost": "من میزبان هستم", + "Ok": "تأیید", + "Remove": "حذف‌کردن", + "Share": "هم‌رسانی", + "Submit": "ارسال", + "WaitForHostMsg": "کنفرانس هنوز شروع نشده است، اگر میزبان هستید وارد شوید، در غیراین صورت تا رسیدن میزبان و شروع جلسه منتظر بمانید.", + "WaitingForHostTitle": "در انتظار میزبان…", + "Yes": "بله", + "accessibilityLabel": { + "Cancel": "لغو (ترک‌کردن پنجرهٔ گفتگو)", + "Ok": "باشه (ذخیره و ترک‌کردن پنجرهٔ گفتگو)", + "close": "بستن پیام", + "liveStreaming": "پخش زنده", + "sharingTabs": "گزینه‌های هم‌رسانی" + }, + "add": "افزودن", + "addMeetingNote": "یک یادداشت دربارهٔ این جلسه بیافزایید", + "addOptionalNote": "افزودن یک یادداشت (اختیاری):", + "allow": "اجازه‌دادن", + "alreadySharedVideoMsg": "یک شرکت‌کنندهٔ دیگر درحال هم‌رسانی ویدیو است. این کنفرانس در هر زمان فقط اجازهٔ هم‌رسانی یک ویدیو را می‌دهد.", + "alreadySharedVideoTitle": "فقط یک ویدیو را می‌توان در هر زمان هم‌رسانی کرد", + "applicationWindow": "پنجرهٔ برنامه", + "authenticationRequired": "احراز هویت مورد نیاز است", + "cameraConstraintFailedError": "دوربین شما برخی از قابلیت‌های مورد نیاز را ندارد.", + "cameraNotFoundError": "دوربین پیدا نشد.", + "cameraNotSendingData": "به دوربین شما دسترسی نداریم. بررسی کنید که برنامهٔ دیگری در حال استفاده از دوربین نباشد، اگر می‌توانید دوربین دیگری را از فهرست تنظیمات انتخاب کنید یا تلاش کنید برنامه را دوباره بارگذاری کنید.", + "cameraNotSendingDataTitle": "دسترسی به دوربین امکان‌پذیر نیست", + "cameraPermissionDeniedError": "شما اجازهٔ استفاده از دوربین خود را نداده‌اید. همچنان می‌توانید به کنفرانس بپیوندید، اما دیگران شما را نخواهند دید. برای رفع این مشکل از دکمهٔ دوربین در نوارِ نشانی استفاده کنید.", + "cameraTimeoutError": "منبع ویدیو شروع نشد. بیش‌ازحد طول کشید!", + "cameraUnknownError": "به دلایلی نامشخص نمی‌توان از دوربین استفاده کرد.", + "cameraUnsupportedResolutionError": "دوربین شما از وضوح تصویر مورد نیاز پشتیبانی نمی‌کند.", + "close": "بستن", + "conferenceDisconnectMsg": "شاید بخواهید اتصال شبکه خود را بررسی کنید. تلاش برای اتصال دوباره در {{seconds}} ثانیه دیگر…", + "conferenceDisconnectTitle": "اتصال شما قطع شده‌است.", + "conferenceReloadMsg": "ما در حال تلاش برای حل این مشکل هستیم. تلاش برای اتصال دوباره در {{seconds}} ثانیه دیگر…", + "conferenceReloadTitle": "متأسفانه مشکلی پیش آمد.", + "confirm": "تأیید", + "confirmNo": "خیر", + "confirmYes": "بله", + "connectError": "اوه! مشکلی پیش آمد و نتوانستیم به کنفرانس وصل شویم.", + "connectErrorWithMsg": "اوه! مشکلی پیش آمد و نتوانستیم به کنفرانس وصل شویم: {{msg}}", + "connecting": "درحال اتصال", + "contactSupport": "تماس با پشتیبانی", + "copied": "رونوشت‌شد", + "copy": "رونوشت", + "dismiss": "ردکردن", + "displayNameRequired": "سلام! نام شما چیست؟", + "done": "انجام شد", + "e2eeDescription": "رمزگذاری سرتاسر در حال حاضر آزمایشی است. لطفاً در نظر داشته باشید که فعال‌کردن رمزگذاری سرتاسری خدمات ارائه‌شده در سمت سرور را غیرفعال خواهد کرد؛ مانند: مشارکت تلفنی در جلسات. همچنین در نظر داشته باشید که جلسه تنها برای افرادی که از طریق مرورگرهایی با پشتیبانی این قابلیت می‌پیوندند، کار می‌کند.", + "e2eeDisabledDueToMaxModeDescription": "به دلیل تعداد زیاد شرکت‌کنندگان در کنفرانس، رمزگذاری سرتاسری نمی‌تواند فعال شود.", + "e2eeLabel": "رمزگذاری سرتاسری را فعال کن", + "e2eeWarning": "هشدار:به نظر می‌رسد همهٔ شرکت‌کنندگان در این جلسه از رمزگذاری سرتاسری پشتیبانی نمی‌کنند. اگر این قابلیت را فعال کنید، آن‌ها صدای جلسه را نمی‌شنوند و تصویر را مشاهده نخواهند کرد.", + "e2eeWillDisableDueToMaxModeDescription": "هشدار:: اگر شرکت‌کنندگان بیشتری به کنفرانس بپیوندند، رمزگذاری سرتاسری به طور خودکار غیرفعال می‌شود.", + "embedMeeting": "جاسازی جلسه", + "enterDisplayName": "نام خود را وارد کنید", + "error": "خطا", + "gracefulShutdown": "سرویس ما درحال به‌روزرسانی است و هم‌اکنون در دسترس نمی‌باشد. لطفاً بعداً دوباره امتحان کنید.", + "grantModeratorDialog": "آیا مطمئن هستید که می‌خواهید دسترسی مدیر را به {{participantName}} اعطا کنید؟", + "grantModeratorTitle": "اعطای دسترسی مدیر", + "hide": "مخفی‌کردن", + "hideShareAudioHelper": "این پیام را دوباره نشان نده", + "incorrectPassword": "نام کاربری یا گذرواژه اشتباه است", + "incorrectRoomLockPassword": "گذرواژه اشتباه است", + "internalError": "اوه! مشکلی پیش آمد. خطای مقابل رخ داد: {{error}}", + "internalErrorTitle": "خطای داخلی", + "kickMessage": "برای جزئیات بیشتر می‌توانید با {{participantDisplayName}} تماس بگیرید.", + "kickParticipantButton": "بیرون‌کردن", + "kickParticipantDialog": "آیا مطمئن هستید که می‌خواهید این شرکت‌کننده را بیرون کنید؟", + "kickParticipantTitle": "بیرون‌کردن این شرکت‌کننده؟", + "kickTitle": "آخ! {{participantDisplayName}} شما را از جلسه بیرون کرد", + "linkMeeting": "پیوند جلسه", + "linkMeetingTitle": "پیوند جلسه به Salesforce", + "liveStreaming": "پخش زنده", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "هنگامی که ضبط فعال است امکان‌پذیر نیست", + "localUserControls": "کنترل‌های کاربر محلی", + "lockMessage": "قفل‌کردن کنفرانس با خطا مواجه شد.", + "lockRoom": "افزودن $t(lockRoomPassword) به جلسه", + "lockTitle": "قفل‌کردن با خطا مواجه شد", + "login": "ورود", + "logoutQuestion": "آیا مطمئن هستید که می‌خواهید خارج شوید و کنفرانس را ترک کنید؟", + "logoutTitle": "خروج", + "maxUsersLimitReached": "تعداد شرکت‌کنندگان به بیشینه میزان مجاز رسیده است. کنفرانس پُر است. لطفاً با صاحب جلسه تماس بگیرید یا بعداً دوباره تلاش کنید!", + "maxUsersLimitReachedTitle": "تعداد شرکت‌کنندگان به بیشینه میزان مجاز رسیده است", + "micConstraintFailedError": "میکروفون شما برخی از قابلیت‌های مورد نیاز را ندارد.", + "micNotFoundError": "میکروفن پیدا نشد.", + "micNotSendingData": "برای روشن‌کردن میکروفون خود و تنظیم سطح صدای آن، به تنظیمات رایانهٔ خود بروید", + "micNotSendingDataTitle": "میکروفن شما توسط تنظیمات رایانهٔ شما بی‌صدا شده است", + "micPermissionDeniedError": "شما مجوز استفاده از میکروفن را نداده‌اید. همچنان می‌توانید به کنفرانس بپیوندید، اما دیگران صدای شما را نمی‌شنوند. برای رفع این مشکل از دکمهٔ دوربین در نوارِ نشانی استفاده کنید.", + "micTimeoutError": "منبع صوتی شروع نشد. بیش‌ازحد طول کشید!", + "micUnknownError": "به دلیل نامشخصی نمی‌توان از میکروفون استفاده کرد.", + "moderationAudioLabel": "به شرکت‌کنندگان اجازه دهید صدای میکروفون خود را وصل کنند", + "moderationVideoLabel": "به شرکت‌کنندگان اجازه دهید ویدیوی خود را شروع کنند", + "muteEveryoneDialog": "شرکت‌کنندگان می‌توانند هر زمان که بخواهند صدای خود را وصل کنند.", + "muteEveryoneDialogModerationOn": "شرکت‌کنندگان می‌توانند هر زمان که بخواهند درخواستی برای صحبت ارسال کنند.", + "muteEveryoneElseDialog": "وقتی که میکروفون آن‌ها بی‌صدا شود، شما نمی‌توانید آن را وصل کنید، اما خودشان هر زمان که بخواهند می‌توانند.", + "muteEveryoneElseTitle": "میکروفون همه به‌جز {{whom}} بی‌صدا شود؟", + "muteEveryoneElsesVideoDialog": "پس از غیرفعال‌شدن دوربین، نمی‌توانید دوباره آن را روشن کنید، اما آن‌ها می‌توانند در هر زمانی آن را دوباره روشن کنند.", + "muteEveryoneElsesVideoTitle": "ویدیوی همه به‌جز {{whom}} متوقف شود؟", + "muteEveryoneSelf": "خودتان", + "muteEveryoneStartMuted": "همه شرکت‌کنندگان از این به بعد بی‌صدا وارد می‌شوند", + "muteEveryoneTitle": "صدای همه قطع شود؟", + "muteEveryonesVideoDialog": "شرکت‌کنندگان می‌توانند در هر زمانی ویدیوی خود را روشن کنند.", + "muteEveryonesVideoDialogModerationOn": "شرکت‌کنندگان می‌توانند هر زمان که بخواهند درخواستی برای روشن شدن ویدیوی خود ارسال کنند.", + "muteEveryonesVideoDialogOk": "غیرفعال‌کردن", + "muteEveryonesVideoTitle": "ویدیوی همه متوقف شود؟", + "muteParticipantBody": "شما نمی‌توانید صدای آن‌ها را وصل کنید، اما خودشان هر زمان که بخواهند، می‌توانند صدای خود را وصل کنند.", + "muteParticipantButton": "بی‌صداکردن", + "muteParticipantsVideoBody": "نمی‌توانید دوربین آن‌ها را دوباره روشن کنید، اما آن‌ها می‌توانند هر زمان که بخواهند دوباره آن را روشن کنند.", + "muteParticipantsVideoBodyModerationOn": "شما نمی‌توانید دوربین را دوباره روشن کنید و آن‌ها هم نخواهند توانست.", + "muteParticipantsVideoButton": "توقف ویدیو", + "muteParticipantsVideoDialog": "آیا مطمئنید که می‌خواهید دوربین این شرکت‌کننده را خاموش کنید؟ نمی‌توانید دوربین را دوباره روشن کنید، اما آن‌ها می‌توانند هر زمان که بخواهند دوباره آن را روشن کنند.", + "muteParticipantsVideoDialogModerationOn": "آیا مطمئنید که می‌خواهید دوربین این شرکت‌کننده را خاموش کنید؟ نه شما می‌توانید دوربین را دوباره روشن کنید و نه آن‌ها.", + "muteParticipantsVideoTitle": "دوربین این شرکت‌کننده غیرفعال شود؟", + "noDropboxToken": "ژتون معتبر Dropbox وجود ندارد", + "password": "گذرواژه", + "passwordLabel": "جلسه توسط یک شرکت‌کننده قفل شده است. لطفاً برای پیوستن $t(lockRoomPassword) را وارد کنید.", + "passwordNotSupported": "قابلیت تنظیم $t(lockRoomPassword) برای جلسه پشتیبانی نمی‌شود.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) پشتیبانی نمی‌شود", + "passwordRequired": "$t(lockRoomPasswordUppercase) مورد نیاز است", + "permissionCameraRequiredError": "اجازهٔ دوربین برای شرکت در کنفرانس‌های ویدیویی مورد نیاز است. لطفاً آن را در تنظیمات اعطا کنید", + "permissionErrorTitle": "اجازه لازم است", + "permissionMicRequiredError": "اجازهٔ میکروفون برای شرکت در کنفرانس های صوتی مورد نیاز است. لطفاً آن را در تنظیمات اعطا کنید", + "popupError": "مرورگر شما پنجره‌های بازشونده را برای این سایت مسدود کرده است. در تنظیمات امنیتی مرورگر خود، پنجره‌های بازشونده را برای این سایت فعال کرده و دوباره امتحان کنید.", + "popupErrorTitle": "پنجره‌های بازشونده مسدود شده‌است", + "readMore": "بیش‌تر", + "recentlyUsedObjects": "اشیائی که به‌تازگی استفاده کرده‌اید", + "recording": "درحال ضبط", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "هنگامی که پخش زنده در جریان است ممکن نیست", + "rejoinNow": "پیوستن مجدد", + "remoteControlAllowedMessage": "{{user}} درخواست کنترل از راه دور را پذیرفت!", + "remoteControlDeniedMessage": "{{user}} درخواست کنترل از راه دور را رد کرد!", + "remoteControlErrorMessage": "در هنگام درخواست اجازهٔ کنترل از راه دور از {{user}} خطایی رخ داد!", + "remoteControlRequestMessage": "آیا به {{user}} اجازه می‌دهید که میزکار شما را از راه دور کنترل کند؟", + "remoteControlShareScreenWarning": "با انتخاب گزینه‌ی «اجازه‌دادن» میزکار شما هم‌رسانی خواهد شد!", + "remoteControlStopMessage": "جلسهٔ کنترل از راه دور به پایان رسید!", + "remoteControlTitle": "کنترل میزکار از راه دور", + "remoteUserControls": "کنترل‌های کاربر از راه دور برای {{username}}", + "removePassword": "حذف‌کردن $t(lockRoomPassword)", + "removeSharedVideoMsg": "آیا مطمئن هستید که می‌خواهید ویدیوی هم‌رسانی‌شده را حذف کنید؟", + "removeSharedVideoTitle": "حذف ویدیوی هم‌رسانی‌شده", + "reservationError": "خطای سیستم رزرو", + "reservationErrorMsg": "کد خطا: {{code}}، پیام: {{msg}}", + "retry": "تلاش دوباره", + "screenSharingAudio": "هم‌رسانی صدا", + "screenSharingFailed": "اوه! مشکلی پیش آمد؛ نتوانستیم هم‌رسانی صفحه را شروع کنیم!", + "screenSharingFailedTitle": "هم‌رسانی صفحه با خطا مواجه شد!", + "screenSharingPermissionDeniedError": "اوه! مشکلی با اجازه‌های هم‌رسانی صفحهٔ شما پیش آمد. لطفاً صفحه را دوباره بارگیری کنید و سپس دوباره تلاش کنید.", + "searchInSalesforce": "جستجو در Salesforce", + "searchResults": "نتایج جستجو({{count}})", + "searchResultsDetailsError": "هنگام بازیابی داده‌های صاحب جلسه مشکلی پیش آمد.", + "searchResultsError": "هنگام بازیابی داده‌ها مشکلی پیش آمد.", + "searchResultsNotFound": "هیچ نتیجه‌ای برای این جستجو یافت نشد.", + "searchResultsTryAgain": "سعی کنید از کلمات کلیدی جایگزین استفاده کنید.", + "sendPrivateMessage": "شما یک پیام خصوصی دریافت کرده‌اید. می‌خواهید به صورت خصوصی به آن پاسخ دهید یا پیام خود را به گروه بفرستید؟", + "sendPrivateMessageCancel": "ارسال به گروه", + "sendPrivateMessageOk": "ارسال به‌صورت خصوصی", + "sendPrivateMessageTitle": "به‌صورت خصوصی ارسال شود؟", + "serviceUnavailable": "سرویس در دسترس نیست", + "sessTerminated": "تماس پایان یافت", + "sessionRestarted": "به دلیل مشکل اتصال، تماس دوباره برقرار شد.", + "shareAudio": "‏‏ادامه", + "shareAudioTitle": "نحوهٔ هم‌رسانی صدا", + "shareAudioWarningD1": "قبل از هم‌رسانی صدا، باید هم‌رسانی صفحه را متوقف کنید.", + "shareAudioWarningD2": "شما باید هم‌رسانی صفحهٔ خود را دوباره راه‌اندازی کنید و گزینه «هم‌رسانی صدا» را علامت بزنید.", + "shareAudioWarningH1": "اگر می‌خواهید فقط صدا را هم‌رسانی کنید:", + "shareAudioWarningTitle": "قبل از هم‌رسانی صدا، باید هم‌رسانی صفحه را متوقف کنید", + "shareMediaWarningGenericH2": "اگر می‌خواهید صفحه و صدای خود را هم‌رسانی کنید", + "shareScreenWarningD1": "پیش از هم‌رسانی صفحه، باید هم‌رسانی صدا را متوقف کنید.", + "shareScreenWarningD2": "باید هم‌رسانی صدا را متوقف کنید، سپس هم‌رسانی صفحه را شروع کنید و گزینه «هم‌رسانی صدا» را فعال کنید.", + "shareScreenWarningH1": "اگر می‌خواهید فقط صفحهٔ خود را هم‌رسانی کنید:", + "shareScreenWarningTitle": "پیش از هم‌رسانی صفحه باید هم‌رسانی صدا را متوقف کنید", + "shareVideoLinkError": "لطفاً یک پیوند ویدیوی معتبر وارد کنید.", + "shareVideoTitle": "هم‌رسانی ویدیو", + "shareYourScreen": "هم‌رسانی صفحهٔ شما", + "shareYourScreenDisabled": "هم‌رسانی صفحه غیرفعال شد.", + "sharedVideoDialogError": "خطا: نشانی اینترنتی نامعتبر", + "sharedVideoLinkPlaceholder": "پیوند یوتیوب یا پیوند مستقیم ویدیو", + "show": "نمایش", + "start": "شروع ", + "startLiveStreaming": "شروع پخش زنده", + "startRecording": "شروع ضبط", + "startRemoteControlErrorMessage": "هنگام تلاش برای شروع نشستِ کنترل‌ازراه‌دور خطایی رخ داد!", + "stopLiveStreaming": "توقف پخش زنده", + "stopRecording": "توقف ضبط", + "stopRecordingWarning": "آیا مطمئن هستید که می‌خواهید ضبط را متوقف کنید؟", + "stopStreamingWarning": "آیا مطمئن هستید که می‌خواهید پخش زنده را متوقف کنید؟", + "streamKey": "کلید پخش زنده", + "thankYou": "از این‌که از {{appName}} استفاده کردید سپاس‌گزاریم!", + "token": "ژتون", + "tokenAuthFailed": "با عرض پوزش، شما اجازهٔ پیوستن به این تماس را ندارید.", + "tokenAuthFailedTitle": "احراز هویت ناموفق بود", + "transcribing": "ترانویسی", + "unlockRoom": "حذف جلسه $t(lockRoomPassword)", + "user": "کاربر", + "userIdentifier": "شناساگر کاربر", + "userPassword": "گذرواژهٔ کاربر", + "verifyParticipantConfirm": "آن‌ها مطابقت دارند", + "verifyParticipantDismiss": "آن‌ها مطابقت ندارند", + "verifyParticipantQuestion": "آزمایشی: از شرکت‌کننده {{participantName}} بپرسید که آیا محتوای یکسانی را با ترتیب یکسان می‌بیند.", + "verifyParticipantTitle": "تأیید کاربر", + "videoLink": "پیوند ویدیو", + "viewUpgradeOptions": "گزینه‌های ارتقا را مشاهده کنید", + "viewUpgradeOptionsContent": "برای دسترسی نامحدود به ویژگی‌های ممتاز مانند ضبط، ترانویسی، پخش RTMP و بیش‌تر، باید طرح خود را ارتقا دهید.", + "viewUpgradeOptionsTitle": "شما یک ویژگی ممتاز را کشف کردید!", + "yourEntireScreen": "تمامِ صفحه‌نمایش شما" + }, + "documentSharing": { + "title": "سندِ هم‌رسانی‌شده" + }, + "e2ee": { + "labelToolTip": "ارتباط صوتی و تصویری در این تماس به صورت سرتاسری رمزگذاری شده است" + }, + "embedMeeting": { + "title": "جاسازی این جلسه" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "انتخاب شما: {{rating}}" + }, + "average": "میانگین", + "bad": "بد", + "detailsLabel": "دربارهٔ آن بیش‌تر به ما بگویید.", + "good": "خوب", + "rateExperience": "به تجربه خود در جلسه امتیاز دهید", + "star": "ستاره", + "veryBad": "خیلی بد", + "veryGood": "خیلی خوب" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "تصاویر بندانگشتی ویدیو" + } + }, + "giphy": { + "noResults": "نتیجه‌ای یافت نشد :(", + "search": "جستجو در GIPHY" + }, + "incomingCall": { + "answer": "پاسخ‌دادن", + "audioCallTitle": "تماس ورودی", + "decline": "ردکردن", + "productLabel": "از جلسه Jitsi", + "videoCallTitle": "تماس ویدیویی ورودی" + }, + "info": { + "accessibilityLabel": "نمایش اطلاعات", + "addPassword": "افزودن $t(lockRoomPassword)", + "cancelPassword": "لغو $t(lockRoomPassword)", + "conferenceURL": "پیوند:", + "copyNumber": "رونوشت شماره", + "country": "کشور", + "dialANumber": "برای پیوستن به جلسه، یکی از این شماره‌ها را شماره‌گیری کرده، سپس پین را وارد نمایید.", + "dialInConferenceID": "پین:", + "dialInNotSupported": "با عرض پوزش، قابلیت شماره‌گیری درحال حاضر پشتیبانی نمی‌شود.", + "dialInNumber": "شماره‌گیری:", + "dialInSummaryError": "در واکِشی اطلاعاتِ شماره‌گیری خطایی رخ داده است. لطفاً بعدا دوباره تلاش کنید.", + "dialInTollFree": "بدون هزینه", + "genericError": "آخ، مشکلی پیش آمد.", + "inviteLiveStream": "برای مشاهدهٔ پخش زندهٔ این جلسه، روی این پیوند کلیک کنید: {{url}}", + "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", + "inviteURLSecondPart": "\nبه جلسه بپیوندید:\n{{url}}\n", + "label": "اطلاعات شماره‌گیری", + "liveStreamURL": "پخش زنده:", + "moreNumbers": "شماره‌های بیش‌تر", + "noNumbers": "شمارهٔ تماسی برای پیوستن با شماره‌گیری وجود ندارد.", + "noPassword": "هیچ‌یک", + "noRoom": "هیچ جلسه‌ای برای پیوستن با شماره‌گیری مشخص نشده است.", + "numbers": "شماره‌های تماس برای پیوستن", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "به سقف طرح خود رسیده‌اید.", + "sip": "نشانی SIP", + "title": "هم‌رسانی", + "tooltip": "پیوند و شمارهٔ تماس این جلسه را هم‌رسانی کنید", + "upgradeOptions": "لطفاً بررسی کنید گزینه‌های ارتقا انتخاب شده باشد" + }, + "inlineDialogFailure": { + "msg": "کمی دچار لغزش شدیم.", + "retry": "تلاش دوباره", + "support": "پشتیبانی", + "supportMsg": "اگر این مشکل همچنان وجود دارد، تماس بگیرید" + }, + "inviteDialog": { + "alertText": "خطا در دعوت از برخی از شرکت‌کنندگان.", + "header": "دعوت‌کردن", + "searchCallOnlyPlaceholder": "شمارهٔ تلفن را وارد نمایید", + "searchPeopleOnlyPlaceholder": "جستجوی شرکت‌کنندگان", + "searchPlaceholder": "شرکت‌کننده یا شمارهٔ تلفن", + "send": "ارسال" + }, + "jitsiHome": "{{logo}} نشان‌واره، پیوندها به صفحهٔ اصلی", + "keyboardShortcuts": { + "focusLocal": "تمرکز روی ویدیوی شما", + "focusRemote": "تمرکز روی ویدیوی شخصی دیگر", + "fullScreen": "مشاهده یا خروج از حالت تمام‌صفحه", + "giphyMenu": "تغییر وضعیت فهرست GIPHY", + "keyboardShortcuts": "میان‌برهای صفحه‌کلید", + "localRecording": "نمایش یا مخفی‌کردن کنترل‌های ضبط محلی", + "mute": "قطع و وصل صدای میکروفونتان", + "pushToTalk": "برای صحبت‌کردن فشار دهید", + "raiseHand": "بالابردن یا پایین‌آوردن دست", + "showSpeakerStats": "نمایش آمار شرکت‌کنندگان", + "toggleChat": "بازکردن یا بستن گپ", + "toggleFilmstrip": "نمایش یا مخفی‌کردن تصاویر بندانگشتی ویدیو", + "toggleParticipantsPane": "نمایش یا پنهان‌کردن تابلوی شرکت‌کنندگان", + "toggleScreensharing": "جابه‌جایی بین دوربین و هم‌رسانی صفحه‌نمایش", + "toggleShortcuts": "نمایش یا مخفی‌کردن میان‌برهای صفحه‌کلید", + "videoMute": "شروع یا توقف دوربین شما" + }, + "largeVideo": { + "screenIsShared": "شما درحال هم‌رسانی صفحهٔ نمایشتان هستید", + "showMeWhatImSharing": "آن‌چه را که هم‌رسانی می‌کنم به من نشان بده" + }, + "liveStreaming": { + "busy": "ما درحال آزادسازی منابع پخش هستیم. لطفاً دقایقی دیگر دوباره تلاش کنید.", + "busyTitle": "همه پخش‌کننده‌ها درحال حاضر مشغول هستند", + "changeSignIn": "تعویض حساب‌ها.", + "choose": "یک پخش زنده را انتخاب کنید", + "chooseCTA": "یک گزینهٔ پخش را انتخاب کنید. شما درحال حاضر به‌عنوان {{email}} وارد شده‌اید.", + "enterStreamKey": "کلید پخش زندهٔ یوتیوب خود را این‌جا وارد کنید.", + "error": "پخش زنده ناموفق بود. لطفاً دوباره تلاش کنید.", + "errorAPI": "در دسترسی به پخش‌کننده‌های یوتیوب شما خطایی رخ داد. لطفاً دوباره تلاش کنید که وارد شوید.", + "errorLiveStreamNotEnabled": "پخش زنده برای {{email}} فعال نیست. لطفاً پخش زنده را فعال کنید یا وارد یک حساب کاربری با پخش زندهٔ فعال شوید.", + "expandedOff": "پخش زنده متوقف شده است", + "expandedOn": "این جلسه درحال حاضر در یوتیوب درحال پخش است.", + "expandedPending": "پخش زنده در حال شروع است…", + "failedToStart": "شروع پخش زنده ناموفق بود", + "getStreamKeyManually": "ما نتوانستیم هیچ پخش زنده‌ای را دریافت کنیم. کلید پخش زنده خود را به‌صورت دستی از یوتیوب دریافت کنید.", + "googlePrivacyPolicy": "سیاست محرمانگی گوگل", + "inProgress": "ضبط یا پخش زنده درحال انجام است", + "invalidStreamKey": "کلید پخش زنده ممکن است اشتباه باشد.", + "limitNotificationDescriptionNative": "پخش زنده شما به {{limit}} دقیقه محدود خواهد شد. برای پخش نامحدود از {{app}} استفاده کنید.", + "limitNotificationDescriptionWeb": "به دلیل درخواست‌های زیاد، پخش زندهٔ شما به {{limit}} دقیقه محدود خواهد شد. برای پخش نامحدود از {{app}} استفاده کنید.", + "off": "پخش زنده متوقف شد", + "offBy": "{{name}} پخش زنده را متوقف کرد", + "on": "پخش زنده شروع شد", + "onBy": "{{name}} پخش زنده را شروع کرد", + "pending": "درحال شروع پخش زنده…", + "serviceName": "خدمت پخش زنده", + "sessionAlreadyActive": "این جلسه از قبل درحال ضبط یا پخش زنده است.", + "signIn": "ورود با حساب گوگل", + "signInCTA": "وارد حساب کاربری شوید یا کلید پخش زنده خود را از یوتیوب وارد کنید.", + "signOut": "خروج از حساب", + "signedInAs": "شما به این عنوان وارد حساب شده‌اید:", + "start": "شروع یک پخش زنده", + "streamIdHelp": "این چیه؟", + "title": "پخش زنده", + "unavailableTitle": "پخش زنده در دسترس نیست", + "youtubeTerms": "شرایط خدمات یوتیوب" + }, + "lobby": { + "backToKnockModeButton": "درخواست برای پیوستن", + "chat": "گپ", + "dialogTitle": "حالت اتاق انتظار", + "disableDialogContent": "حالت اتاق انتظار فعال شد، این قابلیت تضمین می‌کند که شرکت‌کنندگان ناخواسته نمی‌توانند به جلسه بپیوندند. آیا می‌خواهید آن را غیرفعال کنید؟", + "disableDialogSubmit": "غیرفعال‌کردن", + "emailField": "نشانی رایانامهٔ خود را وارد نمایید", + "enableDialogPasswordField": "تنظیم گذرواژه (اختیاری)", + "enableDialogSubmit": "فعال‌کردن", + "enableDialogText": "حالت اتاق انتظار به شما اجازه می‌دهد جلسه خود را محافظت کنید و فقط پس از تأیید رسمی توسط یک مدیر، به افراد اجازه ورود دهید.", + "enterPasswordButton": "گذرواژهٔ جلسه را وارد کنید", + "enterPasswordTitle": "برای پیوستن به جلسه گذرواژه را وارد کنید", + "errorMissingPassword": "لطفاً گذرواژهٔ جلسه را وارد کنید", + "invalidPassword": "گذرواژه نامعتبر است", + "joinRejectedMessage": "درخواست پیوستن شما توسط مدیر جلسه رد شد.", + "joinRejectedTitle": "درخواست شما رد شد.", + "joinTitle": "پیوستن به جلسه", + "joinWithPasswordMessage": "تلاش برای پیوستن به جلسه با گذرواژه؛ شکیبا باشید…", + "joiningMessage": "به محض پذیرش درخواست شما، به جلسه خواهید پیوست", + "joiningTitle": "درخواست برای پیوستن به جلسه…", + "joiningWithPasswordTitle": "درحال پیوستن با گذرواژه…", + "knockButton": "درخواست برای پیوستن", + "knockTitle": "یک نفر می‌خواهد به جلسه بپیوندد", + "knockingParticipantList": "فهرست شرکت‌کنندگان درانتظار", + "lobbyChatStartedNotification": "{{moderator}} شروع به یک گپِ اتاق انتظار با {{attendee}} کرد", + "lobbyChatStartedTitle": "{{moderator}} شروع به یک گپِ اتاق انتظار با شما کرد.", + "nameField": "نام خود را وارد کنید", + "notificationLobbyAccessDenied": "درخواست پیوستن {{targetParticipantName}} توسط {{originParticipantName}} رد شد", + "notificationLobbyAccessGranted": "درخواست پیوستن {{targetParticipantName}} توسط {{originParticipantName}} تأیید شد", + "notificationLobbyDisabled": "اتاق انتظار توسط {{originParticipantName}} غیرفعال شده است", + "notificationLobbyEnabled": "اتاق انتظار توسط {{originParticipantName}} فعال شده است", + "notificationTitle": "اتاق انتظار", + "passwordField": "گذرواژهٔ جلسه را وارد کنید", + "passwordJoinButton": "پیوستن", + "title": "اتاق انتظار", + "toggleLabel": "فعال‌کردن اتاق انتظار" + }, + "localRecording": { + "clientState": { + "off": "خاموش", + "on": "روشن", + "unknown": "نامشخص" + }, + "dialogTitle": "کنترل‌های ضبط محلی", + "duration": "مدت زمان", + "durationNA": "دردسترس نیست", + "encoding": "رمزگذاری", + "label": "ضبط محلی", + "labelToolTip": "ضبط محلی درگیر است", + "localRecording": "ضبط محلی", + "me": "من", + "messages": { + "engaged": "ضبط محلی درگیر شد.", + "finished": "نشست ضبط {{token}} به پایان رسید. لطفاً پروندهٔ ضبط‌شده را به مدیر جلسه ارسال کنید.", + "finishedModerator": "نشست ضبط {{token}} تمام شد. ضبطِ قطعهٔ محلی ذخیره شده است. لطفاً از دیگر شرکت‌کنندگان بخواهید ضبط‌های خود را ارسال کنند.", + "notModerator": "شما مدیر جلسه نیستید. شما نمی‌توانید ضبط محلی را آغاز کرده یا متوقف کنید." + }, + "moderator": "مدیر", + "no": "خیر", + "participant": "شرکت‌کننده", + "participantStats": "آمار شرکت‌کننده", + "selectTabTitle": "🎥 لطفاً این زبانه را برای ضبط انتخاب کنید", + "sessionToken": "ژتون نشست", + "start": "شروع ضبط", + "stop": "توقف ضبط", + "yes": "بله" + }, + "lockRoomPassword": "گذرواژه", + "lockRoomPasswordUppercase": "گذرواژه", + "lonelyMeetingExperience": { + "button": "دعوت از دیگران", + "youAreAlone": "شما در جلسه تنها هستید" + }, + "me": "من", + "notify": { + "OldElectronAPPTitle": "آسیب‌پذیری امنیتی!", + "allowAction": "اجازه‌دادن", + "allowedUnmute": "می‌توانید میکروفون خود را روشن کنید، دوربین خود را روشن کنید یا صفحهٔ خود را هم‌رسانی کنید.", + "audioUnmuteBlockedDescription": "عملیات روشن‌کردن میکروفون به دلیل محدودیت‌های سامانه موقتاً مسدود شده است.", + "audioUnmuteBlockedTitle": "روشن‌کردن میکروفون مسدود شد!", + "chatMessages": "پیام‌های گپ", + "connectedOneMember": "{{name}} به جلسه پیوست", + "connectedThreePlusMembers": "{{name}} و بسیاری دیگر به جلسه پیوستند", + "connectedTwoMembers": "{{first}} و {{second}} به جلسه پیوستند", + "dataChannelClosed": "کیفیت ویدیو دچال اختلال است", + "dataChannelClosedDescription": "کانال پل قطع شده است و بنابراین کیفیت ویدیو به پایین‌ترین حالت آن محدود شده است.", + "disabledIframe": "جاسازی فقط برای اهداف نمایشی در نظر گرفته شده است؛ بنابراین این تماس در {{timeout}} دقیقهٔ دیگر قطع می‌شود.", + "disconnected": "قطع‌شده", + "displayNotifications": "نمایش آگهی‌ها برای", + "dontRemindMe": "به من یادآوری نکن", + "focus": "تمرکز کنفرانس", + "focusFail": "{{component}} در دسترس نیست - تلاش دوباره در {{ms}} ثانیه دیگر", + "gifsMenu": "GIPHY", + "groupTitle": "آگهی‌ها", + "hostAskedUnmute": "مدیر جلسه از شما می‌خواهد که صحبت کنید", + "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}} قطع شد", + "mutedTitle": "صدای شما قطع است!", + "newDeviceAction": "استفاده", + "newDeviceAudioTitle": "دستگاه صوتی جدید شناسایی شد", + "newDeviceCameraTitle": "دوربین جدید شناسایی شد", + "noiseSuppressionDesktopAudioDescription": "هنگام هم‌رسانی صدای میزکار، امکان نوفه‌زدایی را نمی‌توان فعال کرد. لطفاً آن را غیرفعال کنید و دوباره تلاش کنید.", + "noiseSuppressionFailedTitle": "شروع نوفه‌زدایی ناموفق بود", + "noiseSuppressionNoTrackDescription": "لطفاً ابتدا صدای میکروفون خود را وصل کنید.", + "noiseSuppressionStereoDescription": "درحال حاضر نوفه‌زدایی برای صدای چندآوا پشتیبانی نمی‌شود.", + "oldElectronClientDescription1": "به‌نظر می‌رسد شما از یک نگارش قدیمی کارخواه برنامه استفاده می‌کنید که آسیب‌پذیری‌های امنیتی شناخته‌شده‌ای دارد. لطفاً مطمئن شوید که به‌روزرسانی می‌کنید ", + "oldElectronClientDescription2": "آخرین ساخت", + "oldElectronClientDescription3": " الان!", + "participantWantsToJoin": "می‌خواهد به جلسه بپیوندد", + "participantsWantToJoin": "می‌خواهد به جلسه بپیوندد", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) توسط شرکت‌کنندهٔ دیگری حذف شد", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) توسط شرکت‌کنندهٔ دیگری تنظیم شد", + "raiseHandAction": "بالابردن دست", + "raisedHand": "می‌خواهد صحبت کند.", + "raisedHands": "{{participantName}} و {{raisedHands}} نفر بیش‌تر", + "reactionSounds": "غیرفعال‌کردن صداها", + "reactionSoundsForAll": "غیرفعال‌کردن صداها برای همه", + "screenShareNoAudio": "جعبهٔ هم‌رسانی صدا در صفحهٔ انتخابِ پنجره علامت‌گذاری نشده بود.", + "screenShareNoAudioTitle": "صدای سیستم هم‌رسانی نشد!", + "screenSharingAudioOnlyDescription": "لطفاً توجه داشته باشید که با هم‌رسانی صفحهٔ نمایش، حالت «بهترین کارایی» را تحت تأثیر قرار می‌دهید و از پهنای‌باند بیشتری استفاده خواهید کرد.", + "screenSharingAudioOnlyTitle": "حالت «بهترین کارایی»", + "selfViewTitle": "همیشه می‌توانید نمای خود را از تنظیمات آشکارسازی کنید", + "somebody": "یک‌نفر", + "startSilentDescription": "برای فعال‌سازی صدا دوباره به جلسه بپیوندید", + "startSilentTitle": "شما بدون هیچ خروجی برای پخش صدا به جلسه پیوسته‌اید!", + "suboptimalBrowserWarning": "ما نگرانیم که تجربهٔ جلسه شما در این‌جا عالی نباشد. ما به‌دنبال راه‌هایی برای بهبود این موضوع هستیم؛ اما تا آن زمان لطفاً از یکی از مرورگرهای کاملاً پشتیبانی‌شده استفاده کنید.", + "suboptimalExperienceTitle": "هشدار مرورگر", + "unmute": "وصل‌کردن صدا", + "videoMutedRemotelyDescription": "همیشه می‌توانید دوباره آن را روشن کنید.", + "videoMutedRemotelyTitle": "ویدیوی شما توسط {{participantDisplayName}} غیرفعال شده است", + "videoUnmuteBlockedDescription": "عملیات‌های روشن‌کردن دوربین و هم‌رسانی میزکار به دلیل محدودیت‌های سیستم موقتاً مسدود شده‌اند.", + "videoUnmuteBlockedTitle": "روشن‌کردن دوربین و هم‌رسانی میزکار مسدود شد!", + "viewLobby": "مشاهدهٔ اتاق انتظار", + "waitingParticipants": "{{waitingParticipants}} نفر" + }, + "participantsPane": { + "actions": { + "admit": "پذیرفتن", + "admitAll": "پذیرفتن همه", + "allow": "به حاضران اجازه دهید:", + "allowVideo": "اجازهٔ ویدیو", + "askUnmute": "درخواست وصل‌کردن صدا", + "audioModeration": "صدای خودشان را وصل کنند", + "blockEveryoneMicCamera": "مسدودکردن میکروفون و دوربین همه", + "invite": "دعوت از یک‌نفر", + "moreModerationActions": "گزینه‌های مدیریت بیش‌تر", + "moreModerationControls": "بازرسی‌های مدیریت بیش‌تر", + "moreParticipantOptions": "گزینه‌های شرکت‌کنندهٔ بیش‌تر", + "mute": "بی‌صداکردن", + "muteAll": "بی‌صداکردن همه", + "muteEveryoneElse": "بی‌صداکردن بقیه افراد", + "reject": "ردکردن", + "stopEveryonesVideo": "توقف ویدیوی همه", + "stopVideo": "توقف ویدیو", + "unblockEveryoneMicCamera": "رفع مسدودی میکروفون و دوربین همه", + "videoModeration": "ویدیوی خودشان را شروع کنند" + }, + "close": "بستن", + "headings": { + "lobby": "اتاق انتظار ({{count}})", + "participantsList": "شرکت‌کنندگان در جلسه ({{count}})", + "visitors": "بینندگان ({{count}})", + "waitingLobby": "در اتاق انتظار ({{count}})" + }, + "search": "جستجوی شرکت‌کنندگان", + "title": "شركت‌كنندگان" + }, + "passwordDigitsOnly": "تا {{number}} رقم", + "passwordSetRemotely": "توسط یک شرکت‌کنندهٔ دیگر تنظیم شده است", + "pinParticipant": "{{participantName}} - سنجاق‌کردن", + "pinnedParticipant": "شرکت‌کننده سنجاق شده‌است", + "polls": { + "answer": { + "skip": "ردکردن", + "submit": "ارسال" + }, + "by": "توسط {{ name }}", + "create": { + "addOption": "افزودن گزینه", + "answerPlaceholder": "گزینه {{index}}", + "cancel": "لغو", + "create": "یک نظرسنجی ایجاد کنید", + "pollOption": "گزینهٔ نظرسنجی {{index}}", + "pollQuestion": "پرسش نظرسنجی", + "questionPlaceholder": "یک سوال بپرسید", + "removeOption": "حذف گزینه", + "send": "ارسال" + }, + "errors": { + "notUniqueOption": "گزینه ها باید منحصر به فرد باشند" + }, + "notification": { + "description": "برای رأی‌دادن، زبانهٔ نظرسنجی‌ها را باز کنید", + "title": "نظرسنجی جدیدی به این جلسه اضافه شد" + }, + "results": { + "changeVote": "تغییر رأی", + "empty": "هنوز هیچ نظرسنجی‌ای در این جلسه وجود ندارد. یک نظرسنجی از این‌جا شروع کنید!", + "hideDetailedResults": "پنهان‌سازی جزئیات", + "showDetailedResults": "نمایش جزئیات", + "vote": "رأی" + } + }, + "poweredby": "قدرت‌گرفته از", + "prejoin": { + "audioAndVideoError": "خطا در صدا و تصویر:", + "audioDeviceProblem": "مشکلی در دستگاه صوتی شما وجود دارد", + "audioOnlyError": "خطا در صدا:", + "audioTrackError": "قطعهٔ صوتی ایجاد نشد.", + "callMe": "با من تماس بگیرید", + "callMeAtNumber": "با این شماره با من تماس بگیرید:", + "calling": "درحال تماس", + "configuringDevices": "پیکربندی دستگاه‌ها…", + "connectedWithAudioQ": "از طریق صدا متصل هستید؟", + "connection": { + "good": "اتصال اینترنت شما خوب به‌نظر می‌رسد!", + "nonOptimal": "اتصال اینترنت شما مناسب نیست", + "poor": "اتصال اینترنت شما ضعیف است" + }, + "connectionDetails": { + "audioClipping": "انتظار می‌رود صدای شما بریده‌بریده شود.", + "audioHighQuality": "انتظار می‌رود صدای شما کیفیتی عالی داشته باشد.", + "audioLowNoVideo": "انتظار می‌رود صدای شما کیفیت پایینی داشته باشد و تصویر شما نیز قطع شود.", + "goodQuality": "فوق‌العاده! کیفیت صدا و تصویر شما عالی خواهد بود.", + "noMediaConnectivity": "نتوانستیم راهی برای ایجاد اتصال صدا و تصویر برای این آزمایش پیدا کنیم. این موضوع معمولاً توسط دیوارهٔ آتش یا NAT ایجاد می‌شود.", + "noVideo": "انتظار می‌رود ویدیوی شما به‌شدت بد باشد.", + "undetectable": "اگر همچنان در برقراری ارتباط از طریق مرورگر مشکل دارید، توصیه می‌کنیم مطمئن شوید بلندگو، میکروفن و دوربین شما به دسترسی تنظیم شده‌اند، اجازهٔ دسترسی به میکروفون و دوربین خود را به مرورگرتان داده باشید و همچنین از به‌روز بودن نگارش مرورگر خود مطمئن شوید. اگر با این حال در صورت ادامه مشکل در برقراری تماس، با توسعه‌دهنده یا پشتیبانی برنامه تماس بگیرید.", + "veryPoorConnection": "انتظار می‌رود کیفیت تماس شما به‌شدت بد باشد.", + "videoFreezing": "انتظار می‌رود تصویر ویدیوی شما ثابت شده و تار شود یا قطع شود.", + "videoHighQuality": "انتظار می‌رود ویدیوی شما کیفیت خوبی داشته باشد.", + "videoLowQuality": "انتظار می‌رود ویدیوی شما از نظر نرخ بازسازی تصویر و وضوح کیفیت پایینی داشته باشد.", + "videoTearing": "انتظار می‌رود ویدیوی شما تار شود یا نواقص دیداری داشته باشد." + }, + "copyAndShare": "رونوشت و هم‌رسانی پیوند جلسه", + "dialInMeeting": "شماره‌گیری برای پیوستن به جلسه", + "dialInPin": "شماره‌های جلسه را شماره‌گیری کرده و این رمز شخصی را وارد نمایید:", + "dialing": "شماره‌گیری", + "doNotShow": "این صفحه را دوباره نشان نده", + "errorDialOut": "نمی‌توان شماره‌گیری کرد", + "errorDialOutDisconnected": "نمی‌توان شماره‌گیری کرد. قطع شد", + "errorDialOutFailed": "نمی‌توان شماره‌گیری کرد. تماس ناموفق بود", + "errorDialOutStatus": "خطا در دریافت وضعیت شماره‌گیری", + "errorMissingName": "لطفاً نام خود را برای پیوستن به جلسه وارد کنید", + "errorNoPermissions": "باید دسترسی میکروفون و دوربین را فعال کنید", + "errorStatusCode": "خطا در شماره‌گیری، کد وضعیت: {{status}}", + "errorValidation": "اعتبارسنجی شماره ناموفق بود", + "iWantToDialIn": "می‌خواهم تماس بگیرم", + "initiated": "تماس آغاز شد", + "joinAudioByPhone": "پیوستن با صدای گوشی", + "joinMeeting": "پیوستن به جلسه", + "joinMeetingInLowBandwidthMode": "پیوستن در حالت پهنای باند کم", + "joinWithoutAudio": "پیوستن بدون صدا", + "keyboardShortcuts": "فعال‌سازی میان‌برهای صفحه‌کلید", + "linkCopied": "پیوند در بریده‌دان رونوشت شد", + "lookGood": "میکروفون شما به‌درستی کار می‌کند", + "or": "یا", + "premeeting": "پیش‌جلسه", + "proceedAnyway": "در هر صورت انجام شود", + "screenSharingError": "خطا در هم‌رسانی صفحه:", + "startWithPhone": "شروع با صدای گوشی", + "unsafeRoomConsent": "من خطر احتمالی را درک می‌کنم؛ می‌خواهم به جلسه بپیوندم", + "videoOnlyError": "خطای ویدیو:", + "videoTrackError": "قطعهٔ ویدیویی ایجاد نشد.", + "viewAllNumbers": "مشاهدهٔ همهٔ شماره‌ها" + }, + "presenceStatus": { + "busy": "مشغول", + "calling": "درحال تماس‌گرفتن…", + "connected": "متصل‌شده", + "connecting": "درحال اتصال…", + "connecting2": "درحال اتصال*…", + "disconnected": "قطع‌شده", + "expired": "منقضی‌شده", + "ignored": "نادیده‌گرفته", + "initializingCall": "درحال آغاز تماس…", + "invited": "دعوت‌شده", + "rejected": "ردشده", + "ringing": "درحال زنگ‌زدن…" + }, + "profile": { + "avatar": "چِهرَک", + "setDisplayNameLabel": "نام", + "setEmailInput": "رایانامه را وارد کنید", + "setEmailLabel": "رایانامهٔ Gravatar", + "title": "نمایه" + }, + "raisedHand": "تمایل به صحبت", + "raisedHandsLabel": "تعداد دست‌های بلندشده", + "record": { + "already": { + "linked": "این جلسه از قبل به شیء Salesforce پیوست شده است." + }, + "type": { + "account": "حساب", + "contact": "مخاطب", + "lead": "رهبر", + "opportunity": "فرصت", + "owner": "صاحب" + } + }, + "recording": { + "authDropboxText": "بارگذاری در دراپ‌باکس", + "availableSpace": "فضای موجود: {{spaceLeft}} مگابایت (تقریباً {{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": "درحال آماده‌شدن برای ضبط جلسه…", + "rec": "ضبط", + "saveLocalRecording": "ذخیرهٔ پروندهٔ ضبط به صورت محلی (آزمایشی)", + "serviceDescription": "ضبط شما توسط خدمتِ ضبط ذخیره خواهد شد", + "serviceDescriptionCloud": "ضبط ابری", + "serviceDescriptionCloudInfo": "جلسات ضبط‌شده ۲۴ ساعت پس از زمان ضبط به‌طور خودکار پاک می‌شوند.", + "serviceName": "خدمتِ ضبط", + "sessionAlreadyActive": "این جلسه از قبل درحال ضبط یا پخش زنده است.", + "signIn": "ورود", + "signOut": "خروج", + "surfaceError": "لطفاً زبانه کنونی را انتخاب کنید.", + "title": "درحال ضبط", + "unavailable": "اوه! {{serviceName}} درحال حاضر در دسترس نیست. ما درحال کار برروی حل مشکل هستیم. لطفاً بعداً دوباره امتحان کنید.", + "unavailableTitle": "ضبط دردسترس نیست", + "uploadToCloud": "بارگذاری در فضای ابری" + }, + "screenshareDisplayName": "صفحهٔ {{name}}", + "sectionList": { + "pullToRefresh": "برای تازه‌سازی بکِشید" + }, + "security": { + "about": "می‌توانید به جلسه خود یک $t(lockRoomPassword) بیافزایید.شرکت‌کنندگان باید پیش از این‌که بتوانند به جلسه بپیوندند، $t(lockRoomPassword) را ارائه کنند.", + "aboutReadOnly": "مدیر جلسه می‌تواند به جلسه یک $t(lockRoomPassword) بیافزاید. شرکت‌کنندگان باید پیش از این‌که بتوانند به جلسه بپیوندند، $t(lockRoomPassword) را ارائه کنند.", + "insecureRoomNameWarningNative": "نام اتاق ناامن است. شرکت‌کنندگان ناخواسته ممکن است به جلسه شما بپیوندند. {{recommendAction}} دربارهٔ تأمین جلسهٔ خود بیش‌تر بیاموزید ", + "insecureRoomNameWarningWeb": "نام اتاق ناامن است. شرکت‌کنندگان ناخواسته ممکن است به جلسه شما بپیوندند. {{recommendAction}} از این‌جا دربارهٔ تأمین جلسهٔ خود بیش‌تر بیاموزید.", + "title": "گزینه‌های امنیت", + "unsafeRoomActions": { + "meeting": "با استفاده از دکمهٔ امنیت جلسه خود را ایمن کنید.", + "prejoin": "استفاده از نامِ جلسهٔ منحصربه‌فردتری را در نظر بگیرید.", + "welcome": "استفاده از نامِ جلسهٔ منحصربه‌فردتری را در نظر بگیرید، یا یکی از پیشنهادات را انتخاب کنید." + } + }, + "settings": { + "audio": "صدا", + "buttonLabel": "تنظیمات", + "calendar": { + "about": "امکان اتصال تقویم {{appName}} برای دسترسی ایمن به تقویمتان استفاده می‌شود تا بتواند رویدادهای آینده را بخواند.", + "disconnect": "قطع‌کردن", + "microsoftSignIn": "ورود با حساب کاربری مایکروسافت", + "signedIn": "هم‌اکنون درحال دسترسی به رویدادهای تقویم برای {{email}}. برای توقف دسترسی به رویدادهای تقویم، روی دکمه قطع‌کردن در زیر کلیک کنید.", + "title": "تقویم" + }, + "desktopShareFramerate": "نرخ بازسازی تصویر هم‌رسانی میزکار", + "desktopShareHighFpsWarning": "نرخ بازسازی تصویر بالاتر برای هم‌رسانی میزکار ممکن است بر پهنای باند شما تأثیر بگذارد. برای اعمال تنظیمات جدید، باید هم‌رسانی صفحه را راه‌اندازی دوباره کنید.", + "desktopShareWarning": "برای اعمال تنظیمات جدید، باید هم‌رسانی صفحه را راه‌اندازی دوباره کنید.", + "devices": "دستگاه‌ها", + "followMe": "هرکسی من را دنبال می‌کند", + "framesPerSecond": "نرخ بازسازی تصویر در ثانیه", + "incomingMessage": "پیام ورودی", + "language": "زبان", + "loggedIn": "واردشده به عنوان {{name}}", + "maxStageParticipants": "بیشینه تعداد شرکت‌کنندگانی که می‌توانند به صحنه اصلی سنجاق شوند", + "microphones": "میکروفون‌ها", + "moderator": "مدیر", + "moderatorOptions": "گزینه‌های مدیر", + "more": "عمومی", + "name": "نام", + "noDevice": "هیچ‌یک", + "notifications": "آگهی‌ها", + "participantJoined": "شرکت‌کننده پیوست", + "participantKnocking": "شرکت‌کننده به اتاق انتظار وارد شد", + "participantLeft": "شرکت‌کننده ترک کرد", + "playSounds": "پخش صدا روشن", + "reactions": "واکنش‌های جلسه", + "sameAsSystem": "همانند سیستم ({{label}})", + "selectAudioOutput": "خروجی صدا", + "selectCamera": "دوربین", + "selectMic": "میکروفن", + "selfView": "نمای خود", + "shortcuts": "میان‌برها", + "speakers": "بلندگوها", + "startAudioMuted": "همه بی‌صدا شروع می‌کنند", + "startReactionsMuted": "بی‌صداکردن صداهای واکنش‌ها برای همه", + "startVideoMuted": "همه به‌صورت مخفی شروع می‌کنند", + "talkWhileMuted": "صحبت‌کردن در حالت بی‌صدا", + "title": "تنظیمات", + "video": "ویدیو" + }, + "settingsView": { + "advanced": "پیشرفته", + "alertCancel": "لغو", + "alertOk": "تأیید", + "alertTitle": "هشدار", + "alertURLText": "نشانی اینترنتی واردشدهٔ سرور نامعتبر است", + "buildInfoSection": "اطلاعات ساخت", + "conferenceSection": "کنفرانس", + "disableCallIntegration": "غیرفعال‌کردن یکپارچگی با تماس", + "disableCrashReporting": "غیرفعال‌کردن گزارش خرابی", + "disableCrashReportingWarning": "آیا از غیرفعال‌کردن گزارش خرابی اطمینان دارید؟ این تنظیمات پس از راه‌اندازی دوبارهٔ برنامه اعمال می‌شوند.", + "disableP2P": "غیرفعال‌کردن حالت همتا‌به‌همتا", + "displayName": "نام نمایشی", + "displayNamePlaceholderText": "برای مثال فلانی", + "email": "رایانامه", + "emailPlaceholderText": "email@example.com", + "goTo": "برو به", + "header": "تنظیمات", + "help": "راهنما", + "links": "پیوندها", + "privacy": "حریم خصوصی", + "profileSection": "نمایه", + "serverURL": "نشانی اینترنتی سرور", + "showAdvanced": "نمایش تنظیمات پیشرفته", + "startCarModeInLowBandwidthMode": "شروع حالت خودرو در حالت پهنای باند کم", + "startWithAudioMuted": "شروع با حالت بی‌صدا", + "startWithVideoMuted": "شروع با حالت بدون تصویر", + "terms": "شرایط", + "version": "نگارش" + }, + "share": { + "dialInfoText": "\n\n=====\n\nبه اینترنت دسترسی ندارید و می‌خواهید با تماس تلفنی در جلسه شرکت نمایید؟\n\n{{defaultDialInNumber}}برای شماره‌های تماس برای پیوستن به این جلسه روی این پیوند کلیک کنید\n{{dialInfoPageUrl}}", + "mainText": "برای پیوستن به جلسه روی پیوند زیر کلیک کنید:\n{{roomUrl}}" + }, + "speaker": "بلندگو", + "speakerStats": { + "angry": "عصبانی", + "disgusted": "متنفر", + "displayEmotions": "نمایش احساسات", + "fearful": "ترسان", + "happy": "خوش‌حال", + "hours": "{{count}} ساعت", + "minutes": "{{count}} دقیقه", + "name": "نام", + "neutral": "خنثی", + "sad": "غمگین", + "search": "جستجو", + "searchHint": "جستجوی شرکت‌کنندگان", + "seconds": "{{count}} ثانیه", + "speakerStats": "آمار شرکت‌کنندگان", + "speakerTime": "مدت زمان گوینده", + "surprised": "شگفت‌زده" + }, + "startupoverlay": { + "genericTitle": "این جلسه نیاز به استفاده از میکروفون و دوربین شما دارد.", + "policyText": " ", + "title": "{{app}} نیاز به استفاده از میکروفون و دوربین شما دارد." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "پیوستن دوباره", + "text": "برای اتصال دوباره، دکمه پیوستن دوباره را فشار دهید.", + "title": "تماس ویدیویی شما قطع شد زیرا این رایانه به حالت خواب رفت." + }, + "termsView": { + "title": "شرایط" + }, + "toggleTopPanelLabel": "تغییر وضعیت تابلوی بالایی", + "toolbar": { + "Settings": "تنظیمات", + "accessibilityLabel": { + "Settings": "تغییر وضعیت تنظیمات", + "audioOnly": "تغییر وضعیت حالتِ فقط صدا", + "audioRoute": "دستگاه صوتی را انتخاب کنید", + "boo": "هُوکردن", + "breakoutRoom": "پیوستن/ترک‌کردن اتاق جانبی", + "callQuality": "مدیریت کیفیت ویدیو", + "carmode": "حالت خودرو", + "cc": "تغییر وضعیت زیرنویس‌ها", + "chat": "بازکردن / بستن گپ", + "clap": "کف‌زدن", + "closeChat": "بستن گپ", + "closeMoreActions": "بستن فهرست اقدامات بیش‌تر", + "closeParticipantsPane": "بستن تابلوی شرکت‌کنندگان", + "collapse": "فروپاشی", + "document": "تغییر وضعیت سند هم‌رسانی‌شده", + "documentClose": "بستن سند هم‌رسانی‌شده", + "documentOpen": "بازکردن سند هم‌رسانی‌شده", + "download": "بارگیری برنامه", + "embedMeeting": "جاسازی جلسه", + "endConference": "پایان‌دادن جلسه برای همه", + "enterFullScreen": "نمای تمام صفحه", + "enterTileView": "ورود به نمای کاشی", + "exitFullScreen": "خروج از تمام صفحه", + "exitTileView": "خروج از نمای کاشی", + "expand": "گستراندن", + "feedback": "گذاشتن بازخورد", + "fullScreen": "تغییر وضعیت تمام صفحه", + "giphy": "تغییر وضعیت فهرست GIPHY", + "grantModerator": "اعطای دسترسی‌های مدیر", + "hangup": "ترک‌کردن جلسه", + "heading": "نوارابزار", + "help": "کمک", + "hideWhiteboard": "مخفی‌کردن تخته‌سفید", + "invite": "دعوت از افراد", + "kick": "بیرون‌کردن شرکت‌کننده", + "laugh": "خنده", + "leaveConference": "ترک‌کردن جلسه", + "like": "موافق‌بودن", + "linkToSalesforce": "پیوند به Salesforce", + "lobbyButton": "فعال‌کردن/غیرفعال‌کردن حالت اتاق انتظار", + "localRecording": "تغییر وضعیت کنترل‌های ضبط محلی", + "lockRoom": "تغییر وضعیت گذرواژهٔ جلسه", + "lowerHand": "پایین‌آوردن دستتان", + "moreActions": "اقدامات بیش‌تر", + "moreActionsMenu": "فهرست اقدامات بیش‌تر", + "moreOptions": "نمایش گزینه‌های بیش‌تر", + "mute": "بی‌صداکردن", + "muteEveryone": "بی‌صداکردن همه", + "muteEveryoneElse": "بی‌صداکردن بقیه افراد", + "muteEveryoneElsesVideoStream": "ویدیوی دیگران را متوقف کنید", + "muteEveryonesVideoStream": "ویدیوی همه را متوقف کنید", + "muteGUMPending": "درحال اتصال میکروفون شما", + "noiseSuppression": "نوفه‌زدایی", + "openChat": "بازکردن گپ", + "participants": "بازکردن تابلوی شرکت‌کنندگان", + "pip": "تغییر وضعیت حالتِ تصویر در تصویر", + "privateMessage": "ارسال پیام خصوصی", + "profile": "ویرایش نمایهٔ شما", + "raiseHand": "بالابردن دستتان", + "reactions": "واکنش‌ها", + "reactionsMenu": "فهرست واکنش‌ها", + "recording": "تغییر وضعیت ضبط", + "remoteMute": "بی‌صدا کردن شرکت‌کننده", + "remoteVideoMute": "غیرفعال‌کردن دوربین شرکت‌کننده", + "security": "گزینه‌های امنیتی", + "selectBackground": "انتخاب پس‌زمینه", + "selfView": "تغییر وضعیت نمای مشاهدهٔ خود", + "shareRoom": "دعوت از یک‌نفر", + "shareYourScreen": "شروع هم‌رسانی صفحهٔ شما", + "shareaudio": "هم‌رسانی صدا", + "sharedvideo": "هم‌رسانی ویدیو", + "shortcuts": "تغییر وضعیت میان‌برها", + "show": "نمایش روی صحنه", + "showWhiteboard": "نمایش تخته‌سفید", + "silence": "سکوت", + "speakerStats": "تغییر وضعیت آمار شرکت‌کنندگان", + "stopScreenSharing": "توقف هم‌رسانی صفحهٔ شما", + "stopSharedVideo": "توقف ویدیو", + "surprised": "شگفت‌زده", + "tileView": "تغییر وضعیت نمای کاشی", + "toggleCamera": "تغییر وضعیت دوربین", + "toggleFilmstrip": "تغییر وضعیت نوار فیلم", + "unmute": "وصل‌کردن صدا", + "videoblur": "تغییر وضعیت تارکردن ویدیو", + "videomute": "توقف دوربین", + "videomuteGUMPending": "درحال اتصال دوربین شما", + "videounmute": "شروع دوربین" + }, + "addPeople": "افزودن افراد به تماس شما", + "audioOnlyOff": "غیرفعال‌کردن حالت پهنای باند کم", + "audioOnlyOn": "فعال‌کردن حالت پهنای باند کم", + "audioRoute": "انتخاب دستگاه صوتی", + "audioSettings": "تنظیمات صدا", + "authenticate": "احراز هویت", + "boo": "هُوکردن", + "callQuality": "مدیریت کیفیت ویدیو", + "chat": "بازکردن / بستن گپ", + "clap": "کف‌زدن", + "closeChat": "بستن گپ", + "closeParticipantsPane": "بستن تابلوی شرکت‌کنندگان", + "closeReactionsMenu": "بستن فهرست واکنش‌ها", + "disableNoiseSuppression": "غیرفعال‌کردن نوفه‌زدایی", + "disableReactionSounds": "می‌توانید صداهای واکنش را برای این جلسه غیرفعال کنید", + "documentClose": "بستن سند هم‌رسانی‌شده", + "documentOpen": "بازکردن سند هم‌رسانی‌شده", + "download": "بارگیری برنامه", + "e2ee": "رمزنگاری سرتاسر", + "embedMeeting": "جاسازی جلسه", + "enableNoiseSuppression": "فعال‌کردن نوفه‌زدایی", + "endConference": "پایان‌دادن جلسه برای همه", + "enterFullScreen": "نمای تمام صفحه", + "enterTileView": "ورود به نمای کاشی", + "exitFullScreen": "خروج از تمام صفحه", + "exitTileView": "خروج از نمای کاشی", + "feedback": "گذاشتن بازخورد", + "giphy": "تغییر وضعیت فهرست GIPHY", + "hangup": "ترک‌کردن جلسه", + "help": "کمک", + "hideWhiteboard": "مخفی‌کردن تخته‌سفید", + "invite": "دعوت از افراد", + "joinBreakoutRoom": "پیوستن به اتاق جانبی", + "laugh": "خنده", + "leaveBreakoutRoom": "ترک‌کردن اتاق جانبی", + "leaveConference": "ترک‌کردن جلسه", + "like": "موافق‌بودن", + "linkToSalesforce": "پیوند به Salesforce", + "lobbyButtonDisable": "غیرفعال‌کردن حالت اتاق انتظار", + "lobbyButtonEnable": "فعال‌کردن حالت اتاق انتظار", + "login": "ورود", + "logout": "خروج", + "lowerYourHand": "پایین‌آوردن دستتان", + "moreActions": "اقدامات بیش‌تر", + "moreOptions": "گزینه‌های بیش‌تر", + "mute": "بی‌صداکردن", + "muteEveryone": "بی‌صداکردن همه", + "muteEveryonesVideo": "غیرفعال‌کردن دوربین همه", + "muteGUMPending": "درحال اتصال میکروفون شما", + "noAudioSignalDesc": "اگر از روی عمد آن را از تنظیمات سامانه یا سخت‌افزار بی‌صدا نکرده‌اید، دستگاه را تغییر دهید.", + "noAudioSignalDescSuggestion": "اگر از روی عمد آن را از تنظیمات سامانه یا سخت‌افزار بی‌صدا نکرده‌اید، به دستگاهِ پیشنهادی تغییر دهید.", + "noAudioSignalDialInDesc": "همچنین می‌توانید با این شماره‌ها تماس بگیرید:", + "noAudioSignalDialInLinkDesc": "شماره‌های تماس برای پیوستن", + "noAudioSignalTitle": "هیچ ورودی از میکروفون شما وجود ندارد!", + "noiseSuppression": "نوفه‌زدایی", + "noisyAudioInputDesc": "به نظر می‌رصد که میکروفون شما نوفه ایجاد می‌کند. لطفا آن را بی‌صدا کنید یا دستگاه را تغییر دهید.", + "noisyAudioInputTitle": "به‌نظر می‌رسد میکروفون شما نوفهٔ زیادی دارد!", + "openChat": "بازکردن گپ", + "openReactionsMenu": "بازکردن فهرست واکنش‌ها", + "participants": "شركت‌كنندگان", + "pip": "ورود به حالتِ تصویر در تصویر", + "privateMessage": "ارسال پیام خصوصی", + "profile": "ویرایش نمایهٔ شما", + "raiseHand": "بالابردن دستتان", + "raiseYourHand": "بالابردن دستتان", + "reactionBoo": "ارسال واکنش هُوکردن", + "reactionClap": "ارسال واکنش کف‌زدن", + "reactionLaugh": "ارسال واکنش خنده", + "reactionLike": "ارسال واکنش موافق‌بودن", + "reactionSilence": "ارسال واکنش سکوت", + "reactionSurprised": "ارسال واکنش شگفت‌زده", + "reactions": "واکنش‌ها", + "security": "گزینه‌های امنیتی", + "selectBackground": "انتخاب پس‌زمینه", + "shareRoom": "دعوت از یک‌نفر", + "shareaudio": "هم‌رسانی صدا", + "sharedvideo": "هم‌رسانی ویدیو", + "shortcuts": "کلیدهای میان‌بر", + "showWhiteboard": "نمایش تخته‌سفید", + "silence": "سکوت", + "speakerStats": "آمار شرکت‌کنندگان", + "startScreenSharing": "شروع هم‌رسانی صفحه", + "startSubtitles": "زیرنویس‌ها • {{language}}", + "stopAudioSharing": "توقف هم‌رسانی صدا", + "stopScreenSharing": "توقف هم‌رسانی صفحه", + "stopSharedVideo": "توقف ویدیو", + "stopSubtitles": "توقف زیرنویس‌ها", + "surprised": "شگفت‌زده", + "talkWhileMutedPopup": "می‌خواهید صحبت کنید؟ صدای شما قطع است.", + "tileViewToggle": "تغییر وضعیت نمای کاشی", + "toggleCamera": "تغییر وضعیت دوربین", + "unmute": "وصل‌کردن صدا", + "videoSettings": "تنظیمات ویدیو", + "videomute": "توقف دوربین", + "videomuteGUMPending": "درحال اتصال دوربین شما", + "videounmute": "شروع دوربین" + }, + "transcribing": { + "ccButtonTooltip": "شروع / توقف زیرنویس‌ها", + "error": "ترانویسی انجام نشد. لطفاً دوباره تلاش کنید.", + "expandedLabel": "ترانویسی درحال حاضر روشن است", + "failedToStart": "شروع ترانویسی ناموفق بود", + "labelToolTip": "جلسه درحال ترانویسی است", + "off": "توقف ترانویسی", + "pending": "درحال آماده‌شدن برای ترانویسی جلسه…", + "sourceLanguageDesc": "هم‌اکنون زمان جلسه روی {{sourceLanguage}} تنظیم شده است.
می‌توانید آن را از این‌جا تغییر دهید ", + "sourceLanguageHere": "این‌جا", + "start": "شروع نمایش زیرنویس‌ها", + "stop": "توقف نمایش زیرنویس‌ها", + "subtitles": "زیرنویس‌ها", + "subtitlesOff": "خاموش", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - برداشتن سنجاق", + "userMedia": { + "grantPermissions": "لطفاً اجازهٔ استفاده از دوربین و میکروفون خود را بدهید." + }, + "videoSIPGW": { + "busy": "ما درحال آزادسازی منابع هستیم؛ لطفاً دقایقی دیگر دوباره تلاش کنید.", + "busyTitle": "خدمتِ اتاق هم‌اکنون مشغول است", + "errorAlreadyInvited": "{{displayName}} قبلاً دعوت شده است", + "errorInvite": "کنفرانس هنوز شروع نشده است. لطفاً بعداً دوباره تلاش کنید.", + "errorInviteFailed": "ما درحال کار برروی حل مشکل هستیم. لطفاً بعداً دوباره امتحان کنید.", + "errorInviteFailedTitle": "دعوت از {{displayName}} ناموفق بود", + "errorInviteTitle": "خطا در دعوت اتاق", + "pending": "{{displayName}} دعوت شده است" + }, + "videoStatus": { + "adjustFor": "تنظیم‌کردن برای:", + "audioOnly": "فقط صدا", + "audioOnlyExpanded": "شما در حالت پهنای باند کم هستید. در این حالت فقط صدا و هم‌رسانی صفحهٔ نمایش را دریافت خواهید کرد.", + "bestPerformance": "بهترین کارایی", + "callQuality": "کیفیت ویدیو (۰ برای بهترین کارایی، ۳ برای بالاترین کیفیت)", + "hd": "کیفیت بالا", + "hdTooltip": "مشاهدهٔ ویدیوی کیفیت بالا", + "highDefinition": "کیفیت بالا", + "highestQuality": "بالاترین کیفیت", + "labelTooiltipNoVideo": "بدون ویدیو", + "labelTooltipAudioOnly": "حالت پهنای باند کم فعال‌شد", + "ld": "کیفیت پایین", + "ldTooltip": "مشاهدهٔ ویدیوی کیفیت پایین", + "lowDefinition": "کیفیت پایین", + "performanceSettings": "تنظیمات کارایی", + "recording": "ضبط درحال انجام", + "sd": "کیفیت متوسط", + "sdTooltip": "مشاهدهٔ ویدیوی کیفیت متوسط", + "standardDefinition": "کیفیت متوسط", + "streaming": "پخش زنده درحال انجام" + }, + "videothumbnail": { + "connectionInfo": "اطلاعات اتصال", + "domute": "بی‌صداکردن", + "domuteOthers": "بی‌صداکردن بقیه افراد", + "domuteVideo": "غیرفعال‌کردن دوربین", + "domuteVideoOfOthers": "غیرفعال‌کردن دوربین بقیه افراد", + "flip": "وارونه‌کردن", + "grantModerator": "اعطای دسترسی‌های مدیر", + "hideSelfView": "مخفی‌کردن نمای خود", + "kick": "بیرون انداختن", + "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": "هم‌رسانی میزکار ایجاد نشد", + "image1": "ساحل دریا", + "image2": "دیوار سفید خنثی", + "image3": "اتاق سفید خالی", + "image4": "چراغ پایه‌دار مشکی", + "image5": "کوه", + "image6": "جنگل ", + "image7": "طلوع خورشید", + "none": "هیچ‌یک", + "pleaseWait": "لطفاً شکیبا باشید…", + "removeBackground": "حذف پس‌زمینه", + "slightBlur": "نیمه‌تار", + "title": "پس‌زمینه‌های مجازی", + "uploadedImage": "تصویر بارگذاری‌شده {{index}}", + "webAssemblyWarning": "WebAssembly پشتیبانی نمی‌شود", + "webAssemblyWarningDescription": "WebAssembly توسط این مرورگر غیرفعال‌شده یا پشتیبانی نمی‌شود" + }, + "visitors": { + "chatIndicator": "(بازدیدکننده)", + "labelTooltip": "تعداد بازدیدکنندگان: {{count}}", + "notification": { + "description": "برای شرکت‌کردن دست خود را بالا ببرید", + "title": "شما در این جلسه یک بازدیدکننده هستید" + } + }, + "volumeSlider": "نوار لغزندهٔ صدا", + "welcomepage": { + "accessibilityLabel": { + "join": "برای پیوستن ضربه بزنید", + "roomname": "نام اتاق را وارد کنید" + }, + "addMeetingName": "افزودن نام جلسه", + "appDescription": "دست‌به‌کار شوید؛ با کل تیم تماس ویدیویی داشته باشید. در حقیقت، هر کسی که می‌شناسید را دعوت کنید. {{app}} یک راهکار تماس ویدیویی کاملاً رمزگذاری‌شده و ۱۰۰٪ متن‌باز است که می‌توانید در تمام طول روز و هرروز، به صورت رایگان، بدون نیاز به حساب کاربری، از آن استفاده کنید.", + "audioVideoSwitch": { + "audio": "صدا", + "video": "ویدیو" + }, + "calendar": "تقویم", + "connectCalendarButton": "تقویم خود را وصل کنید", + "connectCalendarText": "تقویوم خود را وصل کنید تا همهٔ جلسه‌های خود را در {{app}} مشاهده کنید. به‌علاوه، جلسه‌های {{provider}} را به تقویم خود بیافزایید و آن‌ها را با یک کلیک آغاز کنید.", + "enterRoomTitle": "شروع یک جلسهٔ جدید", + "getHelp": "کمک گرفتن", + "go": "برویم", + "goSmall": "برویم", + "headerSubtitle": "جلسات امن و با کیفیت بالا", + "headerTitle": "Jitsi Meet", + "info": "اطلاعات شماره‌گیری", + "jitsiOnMobile": "Jitsi روی تلفن همراه - برنامه ما را بارگیری کنید و جلسه‌ای را از هرکجا آغاز کنید", + "join": "ایجاد / پیوستن", + "logo": { + "calendar": "نشان‌وارهٔ تقویم", + "desktopPreviewThumbnail": "تصویر بندانگشتی پیش‌نمایش میزکار", + "googleLogo": "نشان‌وارهٔ گوگل", + "logoDeepLinking": "نشان‌وارهٔ Jitsi Meet", + "microsoftLogo": "نشان‌وارهٔ Microsoft", + "policyLogo": "نشان‌وارهٔ خط مشی" + }, + "meetingsAccessibilityLabel": "جلسات", + "mobileDownLoadLinkAndroid": "دریافت برنامهٔ تلفن همراه برای اندروید", + "mobileDownLoadLinkFDroid": "دریافت برنامهٔ تلفن همراه برای F-Droid", + "mobileDownLoadLinkIos": "دریافت برنامهٔ تلفن همراه برای iOS", + "moderatedMessage": "یا از قبل یک نشانی اینترنتی جلسه را رزور کنید که در آن شما تنها مدیر هستید.", + "privacy": "حریم خصوصی", + "recentList": "اخیر", + "recentListDelete": "حذف مورد", + "recentListEmpty": "فهرست جلسات اخیر شما هم‌اکنون خالی است. با تیم خود گپ بزنید و همهٔ جلسات اخیر خود را این‌جا خواهید یافت.", + "recentMeetings": "جلسات اخیر شما", + "reducedUIText": "به {{app}} خوش‌آمدید!", + "roomNameAllowedChars": "نام جلسه نباید شامل هیچ‌یک از این نویسه‌ها باشد: ?, &, :, ', \", %, #.", + "roomname": "نام اتاق را وارد کنید", + "roomnameHint": "نام یا نشانی اینترنتی اتاقی که می‌خواهید به آن بپیوندید را وارد کند. ممکن است یک نام از خودتان بسازید؛ فقط به افرادی که می‌خواهید با آن‌ها جلسه بگذارید آن را بگویید تا همان نام را وارد کنند.", + "sendFeedback": "ارسال بازخورد", + "settings": "تنظیمات", + "startMeeting": "شروع جلسه", + "terms": "شرایط", + "title": "جلسات ویدیویی امن، سرشار از امکانات و کاملا آزاد", + "upcomingMeetings": "جلسات آینده شما" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "تخته‌سفید" + } + } +} diff --git a/lang/main-fi.json b/lang/main-fi.json new file mode 100644 index 0000000..43411ba --- /dev/null +++ b/lang/main-fi.json @@ -0,0 +1,726 @@ +{ + "addPeople": { + "add": "Kutsu", + "countryNotSupported": "Tätä maata ei vielä tueta.", + "countryReminder": "Soitatko ulkomaille? Muista lisätä alkuun maakoodi!", + "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ä", + "noResults": "Ei hakua vastaavia tuloksia", + "noValidNumbers": "Anna puhelinnumero", + "searchNumbers": "Lisää puhelinnumeroita", + "searchPeople": "Etsi henkilöitä", + "searchPeopleAndNumbers": "Etsi henkilöitä tai lisää heidän puhelinnumeronsa", + "telephone": "Puhelin: {{number}}", + "title": "Kutsu henkilöitä tähän kokoukseen" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Kuulokkeet", + "phone": "Puhelin", + "speaker": "Puhuja" + }, + "audioOnly": { + "audioOnly": "Vain ääni" + }, + "calendarSync": { + "addMeetingURL": "Lisää kokouslinkki", + "confirmAddLink": "Haluatko lisätä tapahtumaan Jitsi-linkin?", + "error": { + "appConfiguration": "Kalenterin integrointia ei ole määritetty asianmukaisesti.", + "generic": "Tapahtui virhe. Tarkista kalenterin määritykset tai päivitä kalenterinäkymä.", + "notSignedIn": "Kalenterin tapahtumien tarkasteluun tarvittavassa todennuksessa tapahtui virhe. Tarkista kalenterin asetukset ja kirjaudu sisään uudelleen." + }, + "join": "Liity", + "joinTooltip": "Liity kokoukseen", + "nextMeeting": "seuraava kokous", + "noEvents": "Aikataulussa ei ole tulevia tapahtumia.", + "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" + }, + "chat": { + "error": "Virhe: viestiä \"{{originalText}}\" ei lähetetty. Syy: {{error}}", + "messagebox": "Kirjoita viesti", + "nickname": { + "popover": "Valitse lempinimi", + "title": "Anna chatissä käytettävä lempinimi", + "titleWithPolls": "Anna chatissä käytettävä lempinimi" + }, + "sendButton": "Lähetä", + "title": "Chatti", + "titleWithPolls": "Chatti" + }, + "connectingOverlay": { + "joiningRoom": "Yhdistetään kokoukseen…" + }, + "connection": { + "ATTACHED": "Liitteenä", + "AUTHENTICATING": "Todennetaan", + "AUTHFAIL": "Todennus epäonnistui", + "CONNECTED": "Yhdistetty", + "CONNECTING": "Yhdistetään", + "CONNFAIL": "Yhdistäminen epäonnistui", + "DISCONNECTED": "Ei yhteyttä", + "DISCONNECTING": "Yhteyttä katkaistaan", + "ERROR": "Virhe", + "RECONNECTING": "Tapahtui verkkovirhe. Yhdistetään uudelleen…" + }, + "connectionindicator": { + "address": "Osoite:", + "bandwidth": "Arvioitu kaistanleveys:", + "bitrate": "Bittinopeus:", + "bridgeCount": "Palvelimien määrä: ", + "connectedTo": "Yhdistetty kohteeseen:", + "framerate": "Kuvataajuus:", + "less": "Näytä vähemmän", + "localaddress": "Paikallinen osoite:", + "localaddress_plural": "Paikalliset osoitteet:", + "localport": "Paikallinen portti:", + "localport_plural": "Paikalliset portit:", + "more": "Näytä lisää", + "packetloss": "Pakettien menetys:", + "quality": { + "good": "Hyvä", + "inactive": "Epäaktiivinen", + "lost": "Katkennut", + "nonoptimal": "Ei optimaalinen", + "poor": "Huono" + }, + "remoteaddress": "Etäosoite:", + "remoteaddress_plural": "Etäosoitteet:", + "remoteport": "Etäportti:", + "remoteport_plural": "Etäportit:", + "resolution": "Resoluutio:", + "status": "Yhteys:", + "transport": "Kuljetus:", + "transport_plural": "Kuljetukset:", + "turn": " (vuoro)" + }, + "dateUtils": { + "earlier": "Aikaisemmin", + "today": "Tänään", + "yesterday": "Eilen" + }, + "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": "", + "downloadApp": "Lataa sovellus", + "launchWebButton": "Käynnistä verkossa", + "openApp": "Jatka sovellukseen", + "title": "Käynnistetään kokousta sovelluksessa {{app}}…", + "tryAgainButton": "Yritä uudelleen työpöytäsovelluksella" + }, + "defaultLink": "esim. {{url}}", + "deviceError": { + "cameraError": "Kameran käyttö ei onnistunut", + "cameraPermission": "Virhe kameran käyttöoikeuksien hankkimisessa", + "microphoneError": "Mikrofonin käyttö ei onnistunut", + "microphonePermission": "Virhe mikrofonin käyttöoikeuksien hankkimisessa" + }, + "deviceSelection": { + "noPermission": "Käyttöoikeuksia ei myönnetty", + "previewUnavailable": "Esikatselu ei käytettävissä", + "selectADevice": "Valitse laite", + "testAudio": "Soita testiääni" + }, + "dialOut": { + "statusMessage": "on nyt tilassa {{status}}" + }, + "dialog": { + "Back": "Takaisin", + "Cancel": "Peruuta", + "IamHost": "Olen vetäjä", + "Ok": "Ok", + "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ää…", + "Yes": "Kyllä", + "accessibilityLabel": { + "liveStreaming": "Suoratoisto" + }, + "allow": "Salli", + "alreadySharedVideoMsg": "", + "alreadySharedVideoTitle": "Vain yksi jaettu video kerrallaan", + "applicationWindow": "Sovellusikkuna", + "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.", + "cameraUnknownError": "Kameran käyttö ei onnistu tuntemattomasta syystä.", + "cameraUnsupportedResolutionError": "Kamerasi ei tue vaadittua videoresoluutiota.", + "close": "Sulje", + "conferenceDisconnectMsg": "Tarkista verkkoyhteys. Yhdistetään uudelleen {{seconds}} sekunnin kuluttua…", + "conferenceDisconnectTitle": "Yhteys on katkennut.", + "conferenceReloadMsg": "Yritämme korjata tilannetta. Yhdistetään uudelleen {{seconds}} sekunnin kuluttua…", + "conferenceReloadTitle": "Valitettavasti jokin meni vikaan.", + "confirm": "Vahvista", + "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", + "copy": "Kopioi", + "dismiss": "Hylkää", + "displayNameRequired": "", + "done": "Valmis", + "enterDisplayName": "", + "error": "Virhe", + "externalInstallationMsg": "Asenna työpöydän jakolaajennuksemme.", + "externalInstallationTitle": "Laajennus vaaditaan", + "goToStore": "Siirry verkkokauppaan", + "gracefulShutdown": "Palvelu on keskeytetty huoltoa varten. Yritä myöhemmin uudelleen.", + "incorrectPassword": "Virheellinen käyttäjätunnus tai salasana", + "incorrectRoomLockPassword": "", + "inlineInstallExtension": "Asenna nyt", + "inlineInstallationMsg": "Asenna työpöydän jakolaajennuksemme.", + "internalError": "Hups! Jokin meni vikaan. Tapahtui seuraava virhe: {{error}}", + "internalErrorTitle": "Sisäinen virhe", + "kickMessage": "", + "kickParticipantButton": "Poista", + "kickParticipantDialog": "Haluatko varmasti poistaa tämän osanottajan kokouksesta?", + "kickParticipantTitle": "", + "kickTitle": "", + "liveStreaming": "Suoratoisto", + "liveStreamingDisabledForGuestTooltip": "Vieraat eivät voi aloittaa suoratoistolähetystä.", + "liveStreamingDisabledTooltip": "Suoratoiston aloitus ei ole käytössä.", + "lockMessage": "Kokouksen lukitseminen ei onnistunut.", + "lockRoom": "", + "lockTitle": "Lukitus epäonnistui", + "logoutQuestion": "Haluatko varmasti kirjautua ulos ja lopettaa kokouksen?", + "logoutTitle": "Kirjaudu ulos", + "maxUsersLimitReached": "", + "maxUsersLimitReachedTitle": "", + "micConstraintFailedError": "Mikrofonisi ei täytä joitain pakollisia vaatimuksia.", + "micNotFoundError": "Mikrofonia ei löytynyt.", + "micNotSendingData": "", + "micNotSendingDataTitle": "", + "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.", + "micUnknownError": "Mikrofonin käyttö ei onnistu tuntemattomasta syystä.", + "muteParticipantBody": "Et voi poistaa muiden mykistystä, mutta he voivat poistaa oman mykistyksensä 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", + "recording": "Nauhoitetaan", + "recordingDisabledForGuestTooltip": "Vieraat eivät voi nauhoittaa.", + "recordingDisabledTooltip": "Nauhoitus ei ole käytössä.", + "rejoinNow": "Liity nyt uudelleen", + "remoteControlAllowedMessage": "{{user}} hyväksyi etäkäyttöpyyntösi!", + "remoteControlDeniedMessage": "{{user}} hylkäsi etäkäyttöpyyntösi!", + "remoteControlErrorMessage": "Tapahtui virhe, kun etäkäyttöoikeuksia pyydettiin henkilöltä {{user}}!", + "remoteControlRequestMessage": "Sallitko, että {{user}} etäkäyttää tietokonettasi?", + "remoteControlShareScreenWarning": "Huomaa, että Salli-vaihtoehdon valitsemalla jaat näyttösi!", + "remoteControlStopMessage": "Etäkäyttöistunto päättyi!", + "remoteControlTitle": "Tietokoneen etäkäyttö", + "removePassword": "", + "removeSharedVideoMsg": "Haluatko varmasti poistaa jaetun videon?", + "removeSharedVideoTitle": "Poista jaettu video", + "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.", + "serviceUnavailable": "Palvelu ei käytettävissä", + "sessTerminated": "Puhelu lopetettu", + "shareVideoLinkError": "Anna oikea linkki.", + "shareVideoTitle": "Jaa video", + "shareYourScreen": "Jaa näyttö", + "shareYourScreenDisabled": "Näytönjako ei ole käytössä.", + "shareYourScreenDisabledForGuest": "Vieraat eivät voi jakaa näyttöä.", + "startLiveStreaming": "Aloita suoratoisto", + "startRecording": "Aloita nauhoitus", + "startRemoteControlErrorMessage": "Etäkäyttöistunnon aloittamisessa tapahtui virhe!", + "stopLiveStreaming": "Lopeta suoratoisto", + "stopRecording": "Lopeta nauhoitus", + "stopRecordingWarning": "Haluatko varmasti lopettaa nauhoituksen?", + "stopStreamingWarning": "Haluatko varmasti lopettaa suoratoiston?", + "streamKey": "Suoratoistokoodi", + "thankYou": "Kiitos sovelluksen {{appName}} käytöstä!", + "token": "koodi", + "tokenAuthFailed": "Valitettavasti et saa osallistua tähän puheluun.", + "tokenAuthFailedTitle": "Todennus epäonnistui", + "transcribing": "Puhtaaksikirjoitus", + "unlockRoom": "", + "userPassword": "käyttäjän salasana", + "yourEntireScreen": "Koko näyttö" + }, + "feedback": { + "average": "Keskiverto", + "bad": "Huono", + "detailsLabel": "Kerro lisää.", + "good": "Hyvä", + "rateExperience": "Arvioi kokouskokemus", + "veryBad": "Erittäin huono", + "veryGood": "Erittäin hyvä" + }, + "incomingCall": { + "answer": "Vastaus", + "audioCallTitle": "Saapuva puhelu", + "decline": "Hylkää", + "productLabel": "Jitsi Meetistä", + "videoCallTitle": "Saapuva videopuhelu" + }, + "info": { + "accessibilityLabel": "Näytä tiedot", + "addPassword": "", + "cancelPassword": "", + "conferenceURL": "Linkki:", + "country": "Maa", + "dialANumber": "Liity kokoukseen soittamalla yhteen näistä numeroista ja antamalla PIN-koodi.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Valitettavasti soittoa ei tällä hetkellä tueta.", + "dialInNumber": "Liittymissoitto:", + "dialInSummaryError": "Virhe soittotietojen noudossa. Yritä myöhemmin uudelleen.", + "dialInTollFree": "Maksuton", + "genericError": "Hupsista, jokin meni vikaan.", + "inviteLiveStream": "Katso suora kokouslähetys seuraavasta linkistä: {{url}}", + "invitePhone": "", + "invitePhoneAlternatives": "", + "inviteURLFirstPartGeneral": "Olet saanut kokouskutsun.", + "inviteURLFirstPartPersonal": "", + "inviteURLSecondPart": "", + "label": "Kokoustiedot", + "liveStreamURL": "Suoratoisto:", + "moreNumbers": "Lisää numeroita", + "noNumbers": "Ei liittymispuhelinnumeroita.", + "noPassword": "Ei yhtään", + "noRoom": "Liityttävää huonetta ei valittu.", + "numbers": "Liittymispuhelinnumerot", + "password": "", + "title": "Jaa", + "tooltip": "Jaa kokouksen linkki ja liittymissoittotiedot" + }, + "inlineDialogFailure": { + "msg": "Kömmähdimme.", + "retry": "Yritä uudelleen", + "support": "Tuki", + "supportMsg": "Jos tämä jatkuu, ota yhteyttä:" + }, + "inviteDialog": { + "alertText": "Osa kutsuista epäonnistui.", + "header": "Kutsu", + "searchCallOnlyPlaceholder": "Anna puhelinnumero", + "searchPeopleOnlyPlaceholder": "Etsi osanottajia", + "searchPlaceholder": "Osanottaja tai puhelinnumero", + "send": "Lähetä" + }, + "keyboardShortcuts": { + "focusLocal": "Keskity omaan videoon", + "focusRemote": "Keskity jonkun muun videoon", + "fullScreen": "Näytä tai poista koko näyttö", + "keyboardShortcuts": "Pikanäppäimet", + "localRecording": "Näytä tai piilota paikalliset nauhoitusohjaimet", + "mute": "Säädä mikrofonin mykistystä", + "pushToTalk": "Paina ja puhu", + "raiseHand": "Käden nosto tai lasku", + "showSpeakerStats": "Näytä puhujatilastot", + "toggleChat": "Avaa tai sulje chatti", + "toggleFilmstrip": "Näytä tai piilota videon pikkukuvat", + "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" + }, + "liveStreaming": { + "busy": "Yritämme vapauttaa suoratoistoresursseja. Yritä uudelleen muutaman minuutin kuluttua.", + "busyTitle": "Kaikki suoratoistokanavat ovat juuri nyt varattuja", + "changeSignIn": "Vaihda tiliä.", + "choose": "Valitse suoratoistolähetys", + "chooseCTA": "Valitse suoratoistovaihtoehto. Olet kirjautunut sähköpostilla {{email}}.", + "enterStreamKey": "Kirjoita YouTube-suoratoistokoodi tähän.", + "error": "Suoratoisto epäonnistui. Yritä uudelleen.", + "errorAPI": "YouTube-lähetykseen yhdistämisessä tapahtui virhe. Yritä kirjautua uudelleen sisään.", + "errorLiveStreamNotEnabled": "Suoratoisto ei ole käytössä tilillä {{email}}. Ota suoratoisto käyttöön tai kirjaudu tiliin, jossa se on käytössä.", + "expandedOff": "Suoratoisto on päättynyt", + "expandedOn": "Kokous näkyy parhaillaan YouTubessa suoratoistolähetyksenä.", + "expandedPending": "Suoratoistolähetys on alkamassa…", + "failedToStart": "Suoratoiston aloitus ei onnistunut", + "getStreamKeyManually": "Suoratoistolähetysten nouto epäonnistui. Hanki suoratoistokoodi YouTubesta.", + "invalidStreamKey": "Suoratoistokoodi voi olla virheellinen.", + "off": "Suoratoisto päättyi", + "on": "Suoratoisto", + "pending": "Suoratoisto alkamassa…", + "serviceName": "Suoratoistopalvelu", + "signIn": "Kirjaudu Googlella", + "signInCTA": "Kirjaudu sisään tai anna YouTube-suoratoistokoodi.", + "signOut": "Kirjaudu ulos", + "signedInAs": "Sisäänkirjautunut käyttäjä:", + "start": "Aloita suoratoisto", + "streamIdHelp": "Mikä tämä on?", + "title": "Suoratoisto", + "unavailableTitle": "Suoratoisto ei käytettävissä" + }, + "localRecording": { + "clientState": { + "off": "Pois päältä", + "on": "Päällä", + "unknown": "Tuntematon" + }, + "dialogTitle": "Paikalliset nauhoitusohjaimet", + "duration": "Kesto", + "durationNA": "­–", + "encoding": "Koodaus", + "label": "LOR", + "labelToolTip": "Paikallinen nauhoitus käytössä", + "localRecording": "Paikallinen nauhoitus", + "me": "Minä", + "messages": { + "engaged": "Paikallinen nauhoitus käytössä.", + "finished": "Nauhoitus {{token}} päättyi. Lähetä nauhoite valvojalle.", + "finishedModerator": "Nauhoitus {{token}} päättyi. Paikallisen raidan nauhoitus on tallennettu. Pyydä muita osanottajia lähettämään omat nauhoituksensa.", + "notModerator": "Et ole valvoja. Et voi aloittaa tai lopettaa paikallista nauhoitusta." + }, + "moderator": "Valvoja", + "no": "Ei", + "participant": "Osanottaja", + "participantStats": "Osanottajatilastot", + "sessionToken": "Istuntokoodi", + "start": "Aloita nauhoitus", + "stop": "Lopeta nauhoitus", + "yes": "Kyllä" + }, + "lockRoomPassword": "", + "lockRoomPasswordUppercase": "", + "me": "minä", + "notify": { + "connectedOneMember": "{{name}} liittyi kokoukseen", + "connectedThreePlusMembers": "{{name}} ja {{count}} muuta liittyivät kokoukseen", + "connectedTwoMembers": "{{first}} ja {{second}} liittyivät kokoukseen", + "disconnected": "ei yhteyttä", + "focus": "Kokouksen painopiste", + "focusFail": "{{component}} ei käytettävissä. Yritä uudelleen {{ms}} sekunnin kuluttua", + "grantedTo": "Valvojan oikeudet myönnetty käyttäjälle {{to}}!", + "invitedOneMember": "{{name}} on kutsuttu", + "invitedThreePlusMembers": "", + "invitedTwoMembers": "", + "kickParticipant": "", + "me": "Minä", + "moderator": "Valvojan oikeudet myönnetty!", + "muted": "Aloitit keskustelun mykistettynä.", + "mutedRemotelyDescription": "", + "mutedRemotelyTitle": "", + "mutedTitle": "Olet mykistetty!", + "newDeviceAction": "Käytä", + "newDeviceAudioTitle": "Uusi äänilaite havaittu", + "newDeviceCameraTitle": "Uusi kamera havaittu", + "passwordRemovedRemotely": "", + "passwordSetRemotely": "", + "raisedHand": "{{name}} pyytää puheenvuoroa.", + "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.", + "suboptimalExperienceTitle": "Selainvaroitus", + "unmute": "Poista mykistys" + }, + "participantsPane": { + "actions": { + "muteEveryoneElse": "Mykistä kaikki muut" + } + }, + "passwordDigitsOnly": "", + "passwordSetRemotely": "", + "polls": { + "errors": { + "notUniqueOption": "Vaihtoehtojen on oltava ainutlaatuisia" + } + }, + "poweredby": "tukija:", + "presenceStatus": { + "busy": "Varattu", + "calling": "Soitetaan…", + "connected": "Yhdistetty", + "connecting": "Yhdistetään…", + "connecting2": "Yhdistetään*…", + "disconnected": "Ei yhteyttä", + "expired": "Vanhentunut", + "ignored": "Sivuutettu", + "initializingCall": "Käynnistetään puhelua…", + "invited": "Kutsuttu", + "rejected": "Hylätty", + "ringing": "Soi…" + }, + "profile": { + "setDisplayNameLabel": "Määritä näyttönimi", + "setEmailInput": "Anna sähköpostiosoite", + "setEmailLabel": "Määritä Gravatar-sähköposti", + "title": "Profiili" + }, + "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", + "error": "Nauhoitus epäonnistui. Yritä uudelleen.", + "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", + "loggedIn": "Kirjautunut käyttäjänä {{userName}}", + "off": "Nauhoitus päättyi", + "on": "Nauhoitetaan", + "pending": "Kokouksen nauhoitusta valmistellaan…", + "rec": "REC", + "serviceDescription": "Nauhoituspalvelu tallentaa nauhoituksen", + "serviceName": "Nauhoituspalvelu", + "signIn": "Kirjaudu sisään", + "signOut": "Kirjaudu ulos", + "title": "Nauhoitetaan", + "unavailable": "Hups! {{serviceName}} ei ole käytettävissä. Yritämme ratkaista ongelman. Yritä myöhemmin uudelleen.", + "unavailableTitle": "Nauhoitus ei käytettävissä" + }, + "sectionList": { + "pullToRefresh": "Päivitä vetämällä" + }, + "settings": { + "calendar": { + "about": "{{appName}} tarkistaa tulevat tapahtumat kalenteristasi turvallisesti kalenteri-integrointitoimintonsa avulla.", + "disconnect": "Katkaise yhteys", + "microsoftSignIn": "Kirjaudu Microsoftilla", + "signedIn": "Tarkastellaan käyttäjän {{email}} kalenteritapahtumia. Estä tarkastelu napsauttamalla Katkaise yhteys -painiketta.", + "title": "Kalenteri" + }, + "devices": "Laitteet", + "followMe": "Kaikki seuraavat minua", + "language": "Kieli", + "loggedIn": "Kirjautunut käyttäjänä {{name}}", + "moderator": "Valvoja", + "more": "Lisää", + "name": "Nimi", + "noDevice": "Ei yhtään", + "selectAudioOutput": "Ääniulostulo", + "selectCamera": "Kamera", + "selectMic": "Mikrofoni", + "startAudioMuted": "Kaikki aluksi mykistettyinä", + "startVideoMuted": "Kaikki aluksi piilotettuina", + "title": "Asetukset" + }, + "settingsView": { + "alertOk": "OK", + "alertTitle": "Varoitus", + "alertURLText": "Annettu palvelimen URL on virheellinen", + "buildInfoSection": "Koontiversion tiedot", + "conferenceSection": "Kokous", + "displayName": "Näyttönimi", + "email": "Sähköposti", + "header": "Asetukset", + "profileSection": "Profiili", + "serverURL": "Palvelimen URL", + "startWithAudioMuted": "Aloita ääni mykistettynä", + "startWithVideoMuted": "Aloita video mykistettynä", + "version": "Versio" + }, + "share": { + "dialInfoText": "", + "mainText": "Liity kokoukseen seuraavasta linkistä:\n{{roomUrl}}" + }, + "speaker": "Puhuja", + "speakerStats": { + "hours": "{{count}} t", + "minutes": "{{count}} min", + "name": "Nimi", + "search": "Etsi", + "searchHint": "Etsi osallistujia", + "seconds": "{{count}} s", + "speakerStats": "Puhujatilastot", + "speakerTime": "Puhujan aika" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} tarvitsee mikrofoniasi ja kameraasi." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Liity uudelleen", + "text": "Yhdistä uudelleen napsauttamalla Liity uudelleen -painiketta.", + "title": "Videopuhelu keskeytyi, koska tietokone siirtyi lepotilaan." + }, + "toolbar": { + "Settings": "Asetukset", + "accessibilityLabel": { + "Settings": "Säädä asetuksia", + "audioOnly": "Säädä Vain ääni -tilaa", + "audioRoute": "Valitse äänilaite", + "callQuality": "", + "cc": "Säädä tekstitystä", + "chat": "Säädä chatti-ikkunaa", + "document": "Säädä jaettua asiakirjaa", + "feedback": "Anna palautetta", + "fullScreen": "Säädä koko näyttöä", + "hangup": "Poistu puhelusta", + "invite": "Lähetä kutsuja", + "kick": "Poista osanottaja kokouksesta", + "localRecording": "Säädä paikallisia nauhoitusohjaimia", + "lockRoom": "Säädä kokouksen salasanaa", + "moreActions": "Säädä Lisää toimintoja -valikkoa", + "moreActionsMenu": "Lisää toimintoja -valikko", + "mute": "Säädä äänen mykistystä", + "muteEveryoneElse": "Mykistä kaikki muut", + "pip": "Säädä Kuva kuvassa (PiP) -tilaa", + "profile": "Muokkaa profiilia", + "raiseHand": "Säädä käden nostoa", + "recording": "Säädä nauhoitusta", + "remoteMute": "Mykistä osanottaja", + "selectBackground": "Valitse tausta", + "shareRoom": "Kutsu joku", + "shareYourScreen": "Säädä näytön jakoa", + "sharedvideo": "Säädä videon jakoa", + "shortcuts": "Säädä pikanäppäimiä", + "show": "", + "speakerStats": "Säädä puhujatilastoja", + "tileView": "Säädä ruudukkonäkymää", + "toggleCamera": "Säädä kameraa", + "videoblur": "", + "videomute": "Säädä videon mykistystä" + }, + "addPeople": "Lisää osanottajia puheluun", + "audioOnlyOff": "Poista Vain ääni -tila käytöstä", + "audioOnlyOn": "Ota Vain ääni -tila käyttöön", + "audioRoute": "Valitse äänilaite", + "authenticate": "Todenna", + "callQuality": "", + "chat": "Avaa/sulje chatti", + "closeChat": "Sulje chatti", + "documentClose": "Sulje jaettu asiakirja", + "documentOpen": "Avaa jaettu asiakirja", + "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", + "hangup": "Poistu", + "invite": "Lähetä kutsuja", + "login": "Kirjaudu sisään", + "logout": "Kirjaudu ulos", + "lowerYourHand": "Laske käsi", + "moreActions": "Lisää toimintoja", + "mute": "Mykistys päällä/pois", + "openChat": "Avaa chatti", + "pip": "Siirry Kuva kuvassa (PiP) -tilaan", + "profile": "Muokkaa profiilia", + "raiseHand": "Nosta/laske käsi", + "raiseYourHand": "Nosta käsi", + "shareRoom": "Kutsu joku", + "sharedvideo": "Jaa video", + "shortcuts": "Näytä pikanäppäimet", + "speakerStats": "Puhujatilastot", + "startScreenSharing": "Aloita näytön jako", + "startSubtitles": "Käynnistä tekstitys", + "startvideoblur": "", + "stopScreenSharing": "Lopeta näytön jako", + "stopSharedVideo": "Pysäytä video", + "stopSubtitles": "Lopeta tekstitys", + "stopvideoblur": "", + "talkWhileMutedPopup": "Yritätkö puhua? Olet mykistettynä.", + "tileViewToggle": "Säädä ruudukkonäkymää", + "toggleCamera": "Säädä kameraa", + "videomute": "Käynnistä/pysäytä kamera" + }, + "transcribing": { + "ccButtonTooltip": "Tekstitys päälle/pois", + "error": "Puhtaaksikirjoitus epäonnistui. Yritä uudelleen.", + "expandedLabel": "Puhtaaksikirjoitus on käytössä", + "failedToStart": "Puhtaaksikirjoituksen aloitus epäonnistui", + "labelToolTip": "Kokousta kirjoitetaan puhtaaksi", + "off": "Puhtaaksikirjoitus päättyi", + "pending": "Kokouksen puhtaaksikirjoitusta valmistellaan…", + "start": "Aloita tekstitys", + "stop": "Lopeta tekstitys", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Myönnä käyttöoikeudet laitteesi kameran ja mikrofonin käyttöön." + }, + "videoSIPGW": { + "busy": "Yritämme vapauttaa resursseja. Yritä uudelleen muutaman minuutin kuluttua.", + "busyTitle": "Huonepalvelu on tällä hetkellä varattu", + "errorAlreadyInvited": "{{displayName}} on jo kutsuttu", + "errorInvite": "Kokousta ei ole vielä luotu. Yritä myöhemmin uudelleen.", + "errorInviteFailed": "Ratkaisemme ongelmaa. Yritä myöhemmin uudelleen.", + "errorInviteFailedTitle": "Henkilön {{displayName}} kutsuminen epäonnistui", + "errorInviteTitle": "Virhe huoneen kutsumisessa", + "pending": "{{displayName}} on kutsuttu" + }, + "videoStatus": { + "adjustFor": "Muokkaa:", + "audioOnly": "ÄÄNI", + "audioOnlyExpanded": "Käytössäsi on Vain ääni -tila. Se säästää kaistanleveyttä, mutta et näe muiden videoita.", + "bestPerformance": "Paras suorituskyky", + "callQuality": "Videon laatu", + "hd": "HD", + "highDefinition": "Teräväpiirto", + "highestQuality": "Korkein laatu", + "labelTooiltipNoVideo": "Ei videota", + "labelTooltipAudioOnly": "Vain ääni -tila käytössä", + "ld": "LD", + "lowDefinition": "Alhainen kuvanlaatu", + "onlyAudioAvailable": "Vain ääni -tila on käytettävissä", + "onlyAudioSupported": "Tässä selaimessa tuemme vain ääntä.", + "performanceSettings": "Suorituskykyasetukset", + "sd": "SD", + "standardDefinition": "Vakiopiirto" + }, + "videothumbnail": { + "domute": "Mykistä", + "domuteOthers": "Mykistä kaikki muut", + "domuteVideoOfOthers": "Estä muiden kamera", + "flip": "Käännä", + "kick": "Poista", + "moderator": "Valvoja", + "mute": "Osallistuja on mykistetty", + "muted": "Mykistetty", + "pinToStage": "Kiinnitä ruutuun", + "remoteControl": "Etäkäyttö", + "show": "Näytä ruudulla", + "unpinFromStage": "Irroita kiinnitys", + "videomute": "" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Liity napauttamalla", + "roomname": "Anna huoneen 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", + "video": "Video" + }, + "calendar": "Kalenteri", + "connectCalendarButton": "Yhdistä oma kalenteri", + "connectCalendarText": "", + "enterRoomTitle": "Aloita uusi kokous", + "go": "ALOITA", + "info": "Tiedot", + "join": "LIITY", + "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": "", + "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", + "terms": "Ehdot", + "title": "Turvallinen, täysin varustettu ja maksuton videoneuvottelu" + } +} diff --git a/lang/main-fr.json b/lang/main-fr.json new file mode 100644 index 0000000..840c7f0 --- /dev/null +++ b/lang/main-fr.json @@ -0,0 +1,1582 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Lien de la réunion: {{url}}" + }, + "add": "Inviter", + "addContacts": "Inviter vos contacts", + "contacts": "contacts", + "copyInvite": "Copier l'invitation à la réunion", + "copyLink": "Copier le lien de la réunion", + "copyStream": "Copier le lien de diffusion en direct", + "countryNotSupported": "Cette destination n'est pas actuellement supportée.", + "countryReminder": "Appel hors des États-Unis ? Veuillez débuter par le code du pays !", + "defaultEmail": "Votre email par défaut", + "disabled": "Vous ne pouvez pas inviter quelqu'un.", + "failedToAdd": "Erreur lors de l'ajout des participants", + "googleEmail": "Gmail", + "inviteMoreHeader": "Vous êtes seul(e) dans la réunion", + "inviteMoreMailSubject": "Rejoindre une réunion {{appName}}", + "inviteMorePrompt": "Inviter d'autres personnes", + "linkCopied": "Lien copié dans le presse-papiers", + "noResults": "Aucun résultat de recherche correspondant", + "outlookEmail": "Outlook", + "phoneNumbers": "Numéros de téléphone", + "searching": "Recherche…", + "shareInvite": "Partager l'invitation à la réunion", + "shareLink": "Partager le lien de la réunion pour inviter d'autres personnes", + "shareStream": "Partager le lien de diffusion en direct", + "sipAddresses": "Adresses SIP", + "telephone": "Téléphone : {{number}}", + "title": "Inviter une personne à cette réunion", + "yahooEmail": "Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Système audio du véhicule", + "headphones": "Écouteurs", + "none": "Aucune source audio n'est disponible", + "phone": "Téléphone", + "speaker": "Haut-parleur" + }, + "audioOnly": { + "audioOnly": "Bande passante faible" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "p. ex. 10000000 pour 10 Mbps ", + "assumedBandwidthBpsWarning": "Des valeurs élevées peuvent provoquer des problèmes réseaux.", + "customValue": "valeur personnalisée", + "customValueEffect": "Positionner la valeur actuelle en bps", + "leaveEmpty": "Laisser vide", + "leaveEmptyEffect": "Autoriser l'utilisation de l'estimation", + "possibleValues": "Valeurs possibles", + "setAssumedBandwidthBps": "Bande passante estimée", + "title": "Réglage de bande passante", + "zeroEffect": "Désactiver la vidéo" + }, + "breakoutRooms": { + "actions": { + "add": "Ajouter salle annexe", + "autoAssign": "Assigner automatiquement aux salles annexes", + "close": "Fermer", + "join": "Rejoindre", + "leaveBreakoutRoom": "Quitter la salle annexe", + "more": "Plus", + "remove": "Supprimer", + "rename": "Renommer", + "renameBreakoutRoom": "Renommer la salle annexe", + "sendToBreakoutRoom": "Envoyer le participant dans:" + }, + "breakoutList": "Liste des salles annexes", + "buttonLabel": "Salles annexes", + "defaultName": "Salle annexe #{{index}}", + "hideParticipantList": "Masquer la liste des participants", + "mainRoom": "Salle principale", + "notifications": { + "joined": "Entrée en salle annexe \"{{name}}\"", + "joinedMainRoom": "Retour à la salle principale", + "joinedTitle": "Salles annexes" + }, + "showParticipantList": "Afficher la liste des participants", + "title": "Salles annexes" + }, + "calendarSync": { + "addMeetingURL": "Ajouter un lien de conférence", + "confirmAddLink": "Voulez-vous ajouter un lien Jitsi à cet événement?", + "error": { + "appConfiguration": "L'intégration du calendrier n'est pas correctement configurée.", + "generic": "Une erreur s'est produite. Veuillez vérifier les paramètres de votre calendrier ou tenter de l'actualiser.", + "notSignedIn": "Une erreur d'authentification s'est produite lors de la tentative d'afficher les événements du calendrier. Veuillez vérifier les paramètres de votre calendrier et essayer de nouveau." + }, + "join": "Joindre", + "joinTooltip": "Rejoindre la réunion", + "nextMeeting": "prochaine réunion", + "noEvents": "Il n'y a pas d'événement à venir.", + "ongoingMeeting": "La réunion en cours", + "permissionButton": "Afficher les réglages", + "permissionMessage": "La permission du calendrier est requise pour afficher vos réunions dans l'application.", + "refresh": "Rafraîchir le calendrier", + "today": "Aujourd'hui" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Sélectionnez le dispositif audio" + }, + "labels": { + "buttonLabel": "Mode voiture", + "title": "Mode voiture", + "videoStopped": "Votre vidéo est arrêtée" + } + }, + "chat": { + "enter": "Entrez dans le salon", + "error": "Erreur : votre message n'a pas été envoyé. Raison : {{error}}", + "fieldPlaceHolder": "Tapez votre message ici", + "lobbyChatMessageTo": "Message de salle d'attente à {{recipient}}", + "message": "Message", + "messageAccessibleTitle": "{{user}} dit: ", + "messageAccessibleTitleMe": "Je dis: ", + "messageTo": "Message privé à {{recipient}}", + "messagebox": "Saisissez un message", + "newMessages": "Nouveaux messages", + "nickname": { + "popover": "Choisissez un pseudonyme", + "title": "Entrez un pseudonyme pour utiliser le chat", + "titleWithPolls": "Entrez un pseudonyme pour utiliser le chat et les sondages" + }, + "noMessagesMessage": "Il n'y a pas encore de messages dans cette réunion. Démarrez une conversation ici !", + "privateNotice": "Message privé à {{recipient}}", + "sendButton": "Envoyer", + "smileysPanel": "Panneaux des Émojis", + "systemDisplayName": "Système", + "tabs": { + "chat": "Chat", + "polls": "Sondages" + }, + "title": "Chat", + "titleWithPolls": "Chat et Sondages", + "you": "vous" + }, + "chromeExtensionBanner": { + "buttonText": "Installer l'extension Chrome", + "buttonTextEdge": "Installer l'extension Edge", + "close": "Fermer", + "dontShowAgain": "Ne plus m'afficher ceci", + "installExtensionText": "Installer l'extension pour l'intégration de Google Calendar et Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Connexion à la réunion…" + }, + "connection": { + "ATTACHED": "Attachée", + "AUTHENTICATING": "Authentification en cours", + "AUTHFAIL": "Échec de l'authentification", + "CONNECTED": "Connecté", + "CONNECTING": "Connexion en cours", + "CONNFAIL": "Échec de la connexion", + "DISCONNECTED": "Déconnecté", + "DISCONNECTING": "Déconnexion en cours", + "ERROR": "Erreur", + "FETCH_SESSION_ID": "Obtention d'un identifiant de session…", + "GET_SESSION_ID_ERROR": "Obtenir une erreur d'identifiant de session : {{code}}", + "GOT_SESSION_ID": "Obtention d'un identifiant de session… Terminée", + "LOW_BANDWIDTH": "La vidéo de {{displayName}} a été coupée pour économiser de la bande passante" + }, + "connectionindicator": { + "address": "Adresse :", + "audio_ssrc": "Audio SSRC :", + "bandwidth": "Bande passante estimée :", + "bitrate": "Débit :", + "bridgeCount": "Nombre de serveurs :", + "codecs": "Codecs (A/V) :", + "connectedTo": "Connecté à :", + "e2eeVerified": "E2EE vérifié", + "framerate": "Images par seconde :", + "less": "Masquer les détails", + "localaddress": "Adresse locale :", + "localaddress_plural": "Adresses locales :", + "localport": "Port local :", + "localport_plural": "Ports locaux :", + "maxEnabledResolution": "débit max", + "more": "Afficher les détails", + "no": "non", + "packetloss": "Perte de paquets :", + "participant_id": "ID du participant:", + "quality": { + "good": "Bien", + "inactive": "Inactif", + "lost": "Perdu", + "nonoptimal": "Non-optimale", + "poor": "Mauvaise" + }, + "remoteaddress": "Adresse distante :", + "remoteaddress_plural": "Adresses distantes :", + "remoteport": "Port distant :", + "remoteport_plural": "Ports distants :", + "resolution": "Résolution :", + "savelogs": "Enregistrer les logs", + "status": "Connexion :", + "transport": "Transport :", + "transport_plural": "Transports :", + "video_ssrc": "Video SSRC :", + "yes": "oui" + }, + "dateUtils": { + "earlier": "Plus tôt", + "today": "Aujourd'hui", + "yesterday": "Hier" + }, + "deepLinking": { + "appNotInstalled": "Vous avez besoin de l'application mobile {{app}} pour participer à cette réunion avec votre téléphone.", + "description": "Rien ne s'est passé ? Nous avons essayé de lancer votre réunion dans l'application de bureau {{app}}. Essayez à nouveau ou lancez-la dans l'application web {{app}}.", + "descriptionNew": "Rien ne s'est passé ? Nous avons essayé de lancer votre réunion dans l'application de bureau {{app}}.

Vous pouvez essayer à nouveau ou la lancer dans l'application web.", + "descriptionWithoutWeb": "Rien ne s'est passé ? Nous avons essayé de démarrer votre réunion dans l'application bureau {{app}}.", + "downloadApp": "Télécharger l'application", + "downloadMobileApp": "Télécharger l'application depuis le Store", + "ifDoNotHaveApp": "Si vous n'avez pas encore l'application:", + "ifHaveApp": "Si vous avez déjà installé l'application:", + "joinInApp": "Rejoindre la réunion en utilisant l'application", + "joinInAppNew": "Rejoindre depuis l’application", + "joinInBrowser": "Rejoindre depuis le navigateur", + "launchMeetingLabel": "Comment voulez-vous rejoindre la réunion ?", + "launchWebButton": "Lancer dans le navigateur", + "noDesktopApp": "Vous n'avez pas l'application ?", + "noMobileApp": "Vous n’avez pas l’application ?", + "or": "OU", + "termsAndConditions": "En continuant, vous acceptez nos conditions générales d’utilisation.", + "title": "Lancement de votre réunion dans {{app}} en cours…", + "titleNew": "Lancement de votre réunion…", + "tryAgainButton": "Réessayez sur le bureau", + "unsupportedBrowser": "Il semble que vous utilisez un navigateur non supporté." + }, + "defaultLink": "ex. {{url}}", + "defaultNickname": "ex. Jean Dupont", + "deviceError": { + "cameraError": "Impossible d'accéder à votre caméra", + "cameraPermission": "Erreur lors de l'obtention de la permission de la caméra", + "microphoneError": "Impossible d'accéder à votre microphone", + "microphonePermission": "Erreur lors de l'obtention de la permission du microphone" + }, + "deviceSelection": { + "hid": { + "callControl": "Contrôle des appels", + "connectedDevices": "Appareils connectés", + "deleteDevice": "Supprimer un appareil", + "pairDevice": "Connecter un appareil" + }, + "noPermission": "Permission non accordée", + "previewUnavailable": "Aperçu non disponible", + "selectADevice": "Sélectionner un périphérique", + "testAudio": "Tester la sortie audio" + }, + "dialIn": { + "screenTitle": "Bilan des appels" + }, + "dialOut": { + "statusMessage": "est maintenant {{status}}" + }, + "dialog": { + "Back": "Retour", + "Cancel": "Annuler", + "IamHost": "Je suis l'hôte", + "Ok": "Ok", + "Remove": "Supprimer", + "Share": "Partager", + "Submit": "Soumettre", + "WaitForHostMsg": "La conférence n'a pas encore commencé. Si vous en êtes l'hôte, veuillez vous authentifier. Sinon, veuillez attendre son arrivée.", + "WaitForHostNoAuthMsg": "La conférence n'a pas encore commencé car aucun modérateur n'est encore arrivé. Veuillez patienter.", + "WaitingForHostButton": "Attendre l'hôte", + "WaitingForHostTitle": "En attente de l'hôte…", + "Yes": "Oui", + "accessibilityLabel": { + "Cancel": "Annuler (quiter la popup)", + "Ok": "Ok (Sauvegarder et quiter la popup)", + "close": "Fermer la popup", + "liveStreaming": "Diffusion en direct", + "sharingTabs": "Options de partage" + }, + "add": "Ajouter", + "addMeetingNote": "Ajouter une note à cette conférence", + "addOptionalNote": "Ajouter une note (optionnel):", + "allow": "Autoriser", + "allowToggleCameraDialog": "Autorisez-vous {{initiatorName}} à changer votre mode de caméra ?", + "allowToggleCameraTitle": "Autoriser-vous le changement de mode de caméra ?", + "alreadySharedVideoMsg": "Un autre participant est en train de partager sa vidéo. Cette conférence ne permet de partager qu'une seule vidéo à la fois.", + "alreadySharedVideoTitle": "Une seule vidéo partagée est autorisée à la fois", + "applicationWindow": "Fenêtre d'application", + "authenticationRequired": "Authentification requise", + "cameraConstraintFailedError": "Votre caméra ne satisfait pas certaines des contraintes nécessaires.", + "cameraNotFoundError": "La caméra n'a pas été trouvée.", + "cameraNotSendingData": "Impossible d'accéder à votre caméra. Veuillez sélectionner un autre périphérique dans les paramètres ou rafraîchir la page.", + "cameraNotSendingDataTitle": "Impossible d'accéder à votre caméra", + "cameraPermissionDeniedError": "Vous n'avez pas autorisé l'utilisation de votre caméra. Vous pouvez toujours participer à la conférence, mais les autres ne pourront pas vous voir. Utilisez le bouton de la caméra dans la barre d'adresse pour résoudre ce problème.", + "cameraTimeoutError": "Impossible de démarrer la source vidéo. Délai dépassé!", + "cameraUnknownError": "Vous ne pouvez pas utiliser la caméra pour une raison inconnue.", + "cameraUnsupportedResolutionError": "Votre appareil ne prend pas en charge la résolution vidéo requise.", + "close": "Fermer", + "conferenceDisconnectMsg": "Veuillez vérifier votre connexion réseau. Reconnexion dans {{seconds}} sec…", + "conferenceDisconnectTitle": "Vous avez été déconnecté.", + "conferenceReloadMsg": "On essaie d'arranger ça. Reconnexion dans {{seconds}} secondes…", + "conferenceReloadTitle": "Malheureusement, un problème est survenu", + "confirm": "Confirmer", + "confirmNo": "Non", + "confirmYes": "Oui", + "connectError": "Oups ! Un problème est survenu et la connexion à la conférence est impossible.", + "connectErrorWithMsg": "Oups ! Un problème est survenu et la connexion à la conférence est impossible : {{msg}}", + "connecting": "Connexion en cours", + "contactSupport": "Contacter le support", + "copied": "Copié", + "copy": "Copier", + "demoteParticipantDialog": "Êtes-vous sûr de vouloir déplacer ce participant en visiteur ?", + "demoteParticipantTitle": "Déplacer en visiteur", + "dismiss": "Rejeter", + "displayNameRequired": "Bonjour ! Quel est votre nom ?", + "done": "Terminé", + "e2eeDescription": "Le chiffrement de Bout-en-Bout est actuellement EXPERIMENTAL. Veuillez garder à l'esprit que l'activation du chiffrement de Bout-en-Bout désactivera les services fournis côté serveur tels que : l'enregistrement, la diffusion en direct et la participation par téléphone. Gardez également à l'esprit que la réunion ne fonctionnera que pour les personnes qui se connectent à partir de navigateurs prenant en charge les flux insérables.", + "e2eeDisabledDueToMaxModeDescription": "Impossible d'activer le chiffrement de bout en bout en raison du trop grand nombre de participants à la conférence.", + "e2eeLabel": "Activer le chiffrement de Bout-en-Bout", + "e2eeWarning": "ATTENTION : Tous les participants de cette réunion ne semblent pas prendre en charge le chiffrement de Bout-en-Bout. Si vous activez le chiffrement, ils ne pourront ni vous voir, ni vous entendre.", + "e2eeWillDisableDueToMaxModeDescription": "ATTENTION: le chiffrement de bout en bout sera automatiquement arrêté si plus de participants joignent la conférence.", + "embedMeeting": "Intégrer la réunion", + "enterDisplayName": "Merci de saisir votre nom ici", + "error": "Erreur", + "errorRoomCreationRestriction": "Vous avez essayé de rejoindre trop rapidement, veuillez revenir dans un moment.", + "gracefulShutdown": "Notre service est actuellement en maintenance. Veuillez réessayer plus tard.", + "grantModeratorDialog": "Êtes-vous sûr de vouloir rendre ce participant modérateur ?", + "grantModeratorTitle": "Nommer modérateur", + "hide": "Masquer", + "hideShareAudioHelper": "Ne pas afficher ce dialogue à nouveau", + "incorrectPassword": "Nom d'utilisateur ou mot de passe incorrect", + "incorrectRoomLockPassword": "Mot de passe incorrect", + "internalError": "Oups ! Quelque chose s'est mal passée. L'erreur suivante s'est produite : {{error}}", + "internalErrorTitle": "Erreur interne", + "kickMessage": "Vous pouvez contacter {{participantDisplayName}} pour plus de détails.", + "kickParticipantButton": "Expulser", + "kickParticipantDialog": "Êtes-vous sûr(e) de vouloir expulser ce participant ?", + "kickParticipantTitle": "Expulser ce participant ?", + "kickSystemTitle": "Oups ! Vous avez été expulsé de la réunion", + "kickTitle": "Oups ! vous avez été expulsé(e) par {{participantDisplayName}}", + "linkMeeting": "Relier la conférence", + "linkMeetingTitle": "Relier la conférence à Salesforce", + "liveStreaming": "Direct", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossible durant l'enregistrement", + "localUserControls": "Contrôles de l'utilisateur local", + "lockMessage": "Impossible de verrouiller la conférence.", + "lockRoom": "Ajouter un $t(lockRoomPassword) à la réunion ", + "lockTitle": "Échec du verrouillage", + "login": "Connexion", + "loginQuestion": "Voulez-vous vraiment vous connecter et quitter la conférence ?", + "logoutQuestion": "Voulez-vous vraiment vous déconnecter et arrêter la conférence ?", + "logoutTitle": "Déconnexion", + "maxUsersLimitReached": "Le nombre maximal de participants est atteint. Le conférence est complète. Merci de contacter l'organisateur de la réunion ou réessayer plus tard !", + "maxUsersLimitReachedTitle": "Le nombre maximal de participants est atteint", + "micConstraintFailedError": "Votre microphone ne satisfait pas certaines des contraintes nécessaires.", + "micNotFoundError": "Le microphone n'a pas été détecté.", + "micNotSendingData": "Accédez aux paramètres de votre ordinateur pour réactiver le micro et ajuster son niveau", + "micNotSendingDataTitle": "Votre micro est coupé par les paramètres de votre système", + "micPermissionDeniedError": "Vous n'avez pas autorisé l'utilisation de votre microphone. Vous pouvez toujours participer à la conférence, mais les autres ne vont pas vous entendre. Utilisez le bouton du microphone dans la barre d'adresse pour résoudre ce problème.", + "micTimeoutError": "Impossible de démarrer la source audio. Délai dépassé!", + "micUnknownError": "Vous ne pouvez pas utiliser le microphone pour une raison inconnue.", + "moderationAudioLabel": "Autoriser les participants à réactiver leur micro", + "moderationVideoLabel": "Autoriser les participants à démarrer leur vidéo", + "muteEveryoneDialog": "Êtes-vous sûr de vouloir couper les micros de tout le monde ? Vous ne pourrez plus réactiver leur micro, mais ils pourront l'activer par eux-mêmes à tout moment.", + "muteEveryoneDialogModerationOn": "Les participants peuvent demander à parler n'importe quand", + "muteEveryoneElseDialog": "Une fois leur micro coupé, vous ne pourrez plus le réactiver, mais ils pourront l'activer par eux-mêmes à tout moment.", + "muteEveryoneElseTitle": "Couper le micro de tout le monde sauf de {{whom}} ?", + "muteEveryoneElsesVideoDialog": "Une fois la caméra coupée, vous ne pourrez plus la rallumer, mais ils peuvent la rallumer à tout moment.", + "muteEveryoneElsesVideoTitle": "Couper la vidéo de tout le monde sauf {{whom}}?", + "muteEveryoneSelf": "vous", + "muteEveryoneStartMuted": "Tout le monde démarre avec le micro coupé", + "muteEveryoneTitle": "Couper le micro de tout le monde ?", + "muteEveryonesVideoDialog": "Êtes-vous sûr de vouloir couper la caméra de tout le monde? Vous ne pourrez pas la réactiver, mais ils peuvent la remettre à tout moment.", + "muteEveryonesVideoDialogModerationOn": "Les participants peuvent demander à activer leur caméra n'importe quand.", + "muteEveryonesVideoDialogOk": "Désactiver", + "muteEveryonesVideoTitle": "Couper la caméra de tout le monde?", + "muteParticipantBody": "Vous ne pourrez plus réactiver son micro, mais il pourra l'activer par lui-même à tout moment.", + "muteParticipantButton": "Couper le micro", + "muteParticipantsVideoBody": "Vous ne pourrez pas rallumer la caméra, mais ils peuvent la rallumer à tout moment.", + "muteParticipantsVideoBodyModerationOn": "Ni vous ni le participant ne pourront rallumer la caméra.", + "muteParticipantsVideoButton": "Couper la caméra", + "muteParticipantsVideoDialog": "Êtes-vous sûr(e) de vouloir couper la caméra de ce participant ? Seul le participant pourra ensuite réactiver son micro à tout moment.", + "muteParticipantsVideoDialogModerationOn": "Êtes-vous sûr(e) de vouloir couper la caméra de ce participant ? Ni vous ni le participant ne pourront la réactiver ensuite ?", + "muteParticipantsVideoTitle": "Couper la caméra de ce participant?", + "noDropboxToken": "Pas de jeton Dropbox valide", + "password": "Mot de passe", + "passwordLabel": "La réunion a été verrouillée par un(e) participant(e). Veuillez entrer le $t(lockRoomPassword) pour la rejoindre.", + "passwordNotSupported": "La définition d'un $t(lockRoomPassword) de réunion n'est pas prise en charge.", + "passwordNotSupportedTitle": "L'ajout d'un $t(lockRoomPassword) n'est pas supporté", + "passwordRequired": "$t(lockRoomPasswordUppercase) requis", + "permissionCameraRequiredError": "L'autorisation caméra est nécessaire pour participer aux réunions avec vidéo. Merci de l'accorder dans les paramètres", + "permissionErrorTitle": "Permission nécessaire", + "permissionMicRequiredError": "L'autorisation microphone est nécessaire pour participer aux réunions avec son. Merci de l'accorder dans les paramètres", + "readMore": "plus", + "recentlyUsedObjects": "Vos objets récemment utilisés", + "recording": "Enregistrement", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossible durant le direct", + "rejoinNow": "Rejoindre maintenant", + "remoteControlAllowedMessage": "{{user}} a accepté votre demande de prise en main à distance !", + "remoteControlDeniedMessage": "{{user}} a refusé votre demande de prise en main à distance !", + "remoteControlErrorMessage": "Une erreur s'est produite lors de la demande d'autorisation de prise en main à distance avec {{user}} !", + "remoteControlRequestMessage": "Voulez-vous autoriser {{user}} à contrôler votre bureau ?", + "remoteControlShareScreenWarning": "Si vous appuyez sur \"Autoriser\", vous allez partager votre écran !", + "remoteControlStopMessage": "La prise en main à distance est terminée !", + "remoteControlTitle": "Contrôle de bureau à distance", + "remoteUserControls": "Contrôles de l'utilisateur distant {{username}}", + "removePassword": "Supprimer le $t(lockRoomPassword)", + "removeSharedVideoMsg": "Voulez-vous vraiment supprimer votre vidéo partagée ?", + "removeSharedVideoTitle": "Supprimer la vidéo partagée", + "renameBreakoutRoomLabel": "Nom de la salle annexe", + "renameBreakoutRoomTitle": "Renommer la salle annexe", + "reservationError": "Erreur du système de réservation", + "reservationErrorMsg": "Code d'erreur: {{code}}, message: {{msg}}", + "retry": "Réessayer", + "screenSharingAudio": "Partager l'audio", + "screenSharingFailed": "Houla ! Quelque chose s'est mal passé, nous n'avons pas pu démarrer le partage d'écran !", + "screenSharingFailedTitle": "Echec du partage d'écran !", + "screenSharingPermissionDeniedError": "Houla ! Un problème est survenu avec vos autorisations de partage d'écran. Veuillez réessayer.", + "searchInSalesforce": "Rechercher dans Salesforce", + "searchResults": "Résultats de recherche({{count}})", + "searchResultsDetailsError": "Un problème est survenu en récupérant les données du propriétaire.", + "searchResultsError": "Un problème est survenu en récupérant des données.", + "searchResultsNotFound": "Aucun résultat trouvé.", + "searchResultsTryAgain": "Essayer d'utiliser d'autres mots clé.", + "sendPrivateMessage": "Vous avez récemment reçu un message privé. Aviez-vous l'intention d'y répondre en privé, ou vouliez-vous envoyer votre message au groupe ?", + "sendPrivateMessageCancel": "Envoyer au groupe", + "sendPrivateMessageOk": "Envoyer en privé", + "sendPrivateMessageTitle": "Envoyer en privé ?", + "serviceUnavailable": "Service indisponible", + "sessTerminated": "Appel terminé", + "sessTerminatedReason": "L'appel a été terminé", + "sessionRestarted": "L'appel est relancé par la passerelle", + "shareAudio": "Continuer", + "shareAudioAltText": "Pour partager le contenu voulu, naviguer vers \"Onglet du Navigateur\", sélectionner le contenu, activer le bouton \"partager l’audio\" et enfin cliquer sur le bouton \"partager\"", + "shareAudioTitle": "Comment partager le son", + "shareAudioWarningD1": "vous devez cesser le partage d'écran avant de partager votre son.", + "shareAudioWarningD2": "vous devez partager votre écran à nouveau et cocher l'option \"Partager l'audio\".", + "shareAudioWarningH1": "Si vous voulez partager uniquement de l'audio:", + "shareAudioWarningTitle": "Vous devez cesser de partager l'écran avant de partager l'audio", + "shareMediaWarningGenericH2": "Si vous voulez partager votre écran et l'audio", + "shareScreenWarningD1": "vous devez arrêter le partage d'audio avant de partager votre écran.", + "shareScreenWarningD2": "vous devez arrêter le partage d'audio, démarrer le partage d'écran et cocher l'option \"Partager l'audio\".", + "shareScreenWarningH1": "Si vous voulez partager uniquement votre écran:", + "shareScreenWarningTitle": "Vous devez cesser de partager votre audio avant de partager votre écran", + "shareVideoConfirmPlay": "Vous êtes sur le point d'ouvrir un site web externe. Voulez-vous continuer ?", + "shareVideoConfirmPlayTitle": "{{name}} a partagé une vidéo avec vous.", + "shareVideoLinkError": "Veuillez renseigner un lien de diffusion vidéo fonctionnel.", + "shareVideoLinkStopped": "La vidéo de {{name}} a été arrêtée.", + "shareVideoTitle": "Partager une vidéo", + "shareYourScreen": "Partager votre écran", + "shareYourScreenDisabled": "Le partage d'écran est désactivé.", + "sharedVideoDialogError": "Erreur: URL invalide", + "sharedVideoLinkPlaceholder": "lien YouTube ou lien vidéo direct", + "show": "Afficher", + "start": "Démarrer ", + "startLiveStreaming": "Démarrer la diffusion en direct", + "startRecording": "Commencer l'enregistrement", + "startRemoteControlErrorMessage": "Une erreur est survenue lors de la tentative de démarrage de la session de contrôle à distance !", + "stopLiveStreaming": "Arrêter la diffusion en direct", + "stopRecording": "Arrêter l'enregistrement", + "stopRecordingWarning": "Désirez-vous vraiment arrêter l'enregistrement ?", + "stopStreamingWarning": "Désirez-vous vraiment arrêter le direct ?", + "streamKey": "Clé Live stream", + "thankYou": "Merci d'avoir utilisé {{appName}} !", + "token": "jeton", + "tokenAuthFailed": "Désolé, vous n'êtes pas autorisé à rejoindre cette conversation.", + "tokenAuthFailedReason": { + "audInvalid": "Valeur `aud` invalide. Cela doit être `jitsi`.", + "contextNotFound": "L'objet `context` est absent du payload.", + "expInvalid": "Valeur `exp` invalide.", + "featureInvalid": "Fonctionnalité invalide: {{feature}}, probablement pas encore implémentée.", + "featureValueInvalid": "Valeur invalide pour la fonctionnalité: {{feature}}.", + "featuresNotFound": "L'objet `feature` est absent du payload.", + "headerNotFound": "Header non trouvé.", + "issInvalid": "Valeur `iss` invalide. Cela doit être `chat`.", + "kidMismatch": "Key ID (kid) ne correspond pas au sub.", + "kidNotFound": "Key ID (kid) manquant.", + "nbfFuture": "La valeur `nbf` est dans le futur.", + "nbfInvalid": "Valeur `nbf` invalide.", + "payloadNotFound": "Payload non trouvé", + "tokenExpired": "Jeton expiré" + }, + "tokenAuthFailedTitle": "Échec de l'authentification", + "tokenAuthFailedWithReasons": "Désolé, vous n’êtes pas autorisé à rejoindre l’appel. La raison possible : {{reason}}.", + "tokenAuthUnsupported": "Token URL n'est pas supporté.", + "transcribing": "Transcription", + "unlockRoom": "Supprimer le $t(lockRoomPassword) de la réunion", + "user": "Utilisateur", + "userIdentifier": "Identifiant utilisateur", + "userPassword": "Mot de passe utilisateur", + "verifyParticipantConfirm": "Ils correspondent", + "verifyParticipantDismiss": "Ils ne correspondent pas", + "verifyParticipantQuestion": "EXPÉRIMENTAL: Demander au participant {{participantName}} s'il voit le même contenu dans le même ordre. ", + "verifyParticipantTitle": "Vérification utilisateur", + "videoLink": "Lien de la vidéo", + "viewUpgradeOptions": "Voir les options de mise à jour", + "viewUpgradeOptionsContent": "Pour obtenir un accès illimité à des capacités premium comme l'enregistrement, les transcriptions, diffusion RTMP et plus, vous devez mettre à jour votre plan.", + "viewUpgradeOptionsTitle": "Vous avez découvert une capacité premium !", + "whiteboardLimitContent": "Désolé, la limite d’utilisateur du tableau blanc a été atteinte.", + "whiteboardLimitReference": "Pour plus d’informations merci de visiter", + "whiteboardLimitReferenceUrl": "notre site web", + "whiteboardLimitTitle": "Utilisation du tableau blanc limitée", + "yourEntireScreen": "Votre écran entier" + }, + "documentSharing": { + "title": "Document partagé" + }, + "e2ee": { + "labelToolTip": "Le son et la vidéo de cette conférence sont chiffrés de Bout-en-Bout" + }, + "embedMeeting": { + "title": "Intégrer cette réunion" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Votre choix: {{rating}}" + }, + "average": "Moyen", + "bad": "Mauvais", + "detailsLabel": "Dites nous en plus à ce sujet.", + "good": "Bien", + "rateExperience": "Veuillez évaluer votre expérience", + "star": "Étoile", + "veryBad": "Très mauvais", + "veryGood": "Très bon" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Vignettes vidéos" + } + }, + "giphy": { + "noResults": "Aucun résultat de recherche :(", + "search": "Rechercher dans GIPHY" + }, + "incomingCall": { + "answer": "Répondre", + "audioCallTitle": "Appel entrant", + "decline": "Rejeter", + "productLabel": "via Jitsi Meet", + "videoCallTitle": "Appel vidéo entrant" + }, + "info": { + "accessibilityLabel": "Afficher les informations", + "addPassword": "Ajouter un $t(lockRoomPassword)", + "cancelPassword": "Supprimer le $t(lockRoomPassword)", + "conferenceURL": "Lien :", + "copyNumber": "Copier le numéro", + "country": "Pays", + "dialANumber": "Pour rejoindre votre réunion, composez l'un de ces numéros, puis saisissez le code confidentiel.", + "dialInConferenceID": "PIN :", + "dialInNotSupported": "Désolé, l'accès par téléphone n'est pas pris en charge pour l'instant.", + "dialInNumber": "Composer :", + "dialInSummaryError": "Erreur lors de la récupération des informations de numérotation. Veuillez réessayer plus tard.", + "dialInTollFree": "Numéro gratuit", + "genericError": "Oups, quelque chose a mal tourné.", + "inviteLiveStream": "Pour voir la diffusion en direct de cette réunion, cliquez sur ce lien : {{url}}", + "invitePhone": "Pour rejoindre depuis un téléphone, saisissez : {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Vous cherchez un numéro d'appel différent ?\nAfficher les numéros d'appel de la réunion: {{url}}\n\n\nSi vous appelez également via un téléphone de réunion, vous pouvez vous connecter sans audio: {{silentUrl}}", + "inviteSipEndpoint": "Pour rejoindre en utilisant l'adresse SIP, entrez ceci : {{sipUri}}", + "inviteTextiOSInviteUrl": "Clickez le lien suivant pour rejoindre: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Si vous téléphonez avec un téléphone de réunion, utilisez ce lien pour rejoindre sans vous connecter en audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} vous invite à une réunion.", + "inviteTextiOSPhone": "Pour rejoindre par téléphone, utilisez ce numéro: {{number}},,{{conferenceID}}#. Si vous voulez utiliser un autre numéro, voici la liste complête: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Vous êtes invité(e) à participer à une réunion.", + "inviteURLFirstPartPersonal": "{{name}} vous invite à une réunion.\n", + "inviteURLSecondPart": "\nRejoindre la réunion :\n{{url}}\n", + "label": "Information de la réunion", + "liveStreamURL": "Diffusion en direct :", + "moreNumbers": "Plus de numéros ", + "noNumbers": "Numéros non trouvés", + "noPassword": "Aucun", + "noRoom": "Aucune réunion n'a été spécifiée pour l'appel entrant.", + "noWhiteboard": "Impossible de charger le tableau blanc.", + "numbers": "Numéros d'appel", + "password": "$t(lockRoomPasswordUppercase) :", + "reachedLimit": "Vous avez atteint la limite de votre abonnement.", + "sip": "adresse SIP", + "sipAudioOnly": "Adresse SIP en audio uniquement", + "title": "Partager", + "tooltip": "Partager le lien et les informations de connexion pour cette conférence", + "upgradeOptions": "Veuillez vérifier les options de mise à niveau", + "whiteboardError": "Erreur de chargement du tableau blanc. Veuillez réessayer plus tard." + }, + "inlineDialogFailure": { + "msg": "Il y a eu un petit problème.", + "retry": "Réessayer", + "support": "Support", + "supportMsg": "Si ceci persiste, contactez" + }, + "inviteDialog": { + "alertText": "Échec lors de l'invitation de certains participants.", + "header": "Inviter", + "searchCallOnlyPlaceholder": "Saisissez un numéro de téléphone", + "searchPeopleOnlyPlaceholder": "Rechercher des participants", + "searchPlaceholder": "Participant ou numéro de téléphone", + "send": "Envoyer" + }, + "jitsiHome": "{{logo}} Logo, liens vers la page d'accueil", + "keyboardShortcuts": { + "focusLocal": "Épingler ma vidéo", + "focusRemote": "Épingler la vidéo de quelqu'un d'autre", + "fullScreen": "Activer / Désactiver le mode plein écran", + "giphyMenu": "Activer/désactiver le menu GIPHY", + "keyboardShortcuts": "Raccourcis clavier", + "localRecording": "Afficher / Masquer les commandes de l'enregistrement local", + "mute": "Activer / Couper le microphone", + "pushToTalk": "Maintenir la touche pour parler", + "raiseHand": "Lever / Baisser la main", + "showSpeakerStats": "Afficher les statistiques de l'interlocuteur", + "toggleChat": "Ouvrir / Fermer le panneau de conversation", + "toggleFilmstrip": "Afficher / Masquer les vignettes vidéos", + "toggleParticipantsPane": "Afficher ou masquer le volet des participants", + "toggleScreensharing": "Basculer entre la caméra et le partage d'écran", + "toggleShortcuts": "Afficher / Masquer les raccourcis clavier", + "videoMute": "Démarrer / Arrêter votre caméra" + }, + "largeVideo": { + "screenIsShared": "Vous êtes en train de partager votre écran", + "showMeWhatImSharing": "M'afficher ce que je partage" + }, + "liveStreaming": { + "busy": "Nous tentons de libérer des ressources de diffusion. Veuillez réessayez dans quelques minutes.", + "busyTitle": "Tous les flux sont actuellement occupés", + "changeSignIn": "Changer de compte.", + "choose": "Choisir un flux en direct", + "chooseCTA": "Choisissez une option de diffusion. Vous êtes actuellement connecté comme {{email}}.", + "enterStreamKey": "Entrez votre clé de diffusion Youtube ici", + "error": "La diffusion a échouée. Veuillez réessayer ultérieurement.", + "errorAPI": "Une erreur s'est produite lors de l'accès à vos diffusions YouTube. Veuillez réessayer de vous connecter.", + "errorLiveStreamNotEnabled": "La diffusion en direct n'est pas activée pour {{email}}. Merci de l'activer ou de vous connecter avec un compte où elle est déjà activée.", + "expandedOff": "La diffusion en direct a été arrêtée", + "expandedOn": "La conférence est en cours de diffusion sur YouTube.", + "expandedPending": "La diffusion en direct a commencé…", + "failedToStart": "La diffusion n'a pas réussi à démarrer", + "getStreamKeyManually": "Nous n'avons pas réussi à récupérer un flux de direct. Essayez d'obtenir votre clé de diffusion en direct sur YouTube.", + "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", + "onBy": "{{name}} a démarré la diffusion en direct", + "pending": "Lancement du direct…", + "policyError": "Vous avez essayé de démarrer une diffusion en direct trop rapidement. Veuillez réessayer plus tard !", + "serviceName": "Service de diffusion en direct", + "sessionAlreadyActive": "Cette session est déjà en cours d'enregistrement ou de diffusion.", + "signIn": "Se connecter avec Google", + "signInCTA": "Connectez vous ou saisissez votre clé de diffusion Youtube.", + "signOut": "Se déconnecter", + "signedInAs": "Vous êtes connecté en tant que :", + "start": "Démarrer la diffusion en direct", + "streamIdHelp": "Qu'est-ce que c'est ?", + "title": "Diffusion en direct", + "unavailableTitle": "La diffusion est indisponible", + "youtubeTerms": "Conditions d'utilisation de YouTube" + }, + "lobby": { + "backToKnockModeButton": "Aucun mot de passe, demander à rejoindre plutôt", + "chat": "Chat", + "dialogTitle": "Mode salle d'attente", + "disableDialogContent": "Le mode salle d'attente est actuellement activé. Cette fonctionnalité garantit que les participants indésirables ne peuvent pas rejoindre votre réunion. Souhaitez-vous la désactiver ?", + "disableDialogSubmit": "Désactiver", + "emailField": "Saisissez votre adresse email", + "enableDialogPasswordField": "Définir le mot de passe (optionnel)", + "enableDialogSubmit": "Activer", + "enableDialogText": "Le mode salle d'attente vous permet de protéger votre réunion en autorisant les personnes à entrer qu'après l'approbation formelle d'un modérateur.", + "enterPasswordButton": "Saisissez un mot de passe de réunion", + "enterPasswordTitle": "Saisissez le mot de passe pour rejoindre la réunion", + "errorMissingPassword": "Veuillez saisir le mot de passe de la réunion", + "invalidPassword": "Mot de passe invalide", + "joinRejectedMessage": "Votre requête pour rejoindre une réunion a été refusée par un modérateur.", + "joinRejectedTitle": "Demande d'accès rejetée.", + "joinTitle": "Rejoindre une réunion", + "joinWithPasswordMessage": "Tentative de rejoindre avec mot de passe, patientez s'il vous plait…", + "joiningMessage": "Vous allez rejoindre une réunion dès que quelqu'un aura accepté votre demande", + "joiningTitle": "Demander à rejoindre une réunion…", + "joiningWithPasswordTitle": "Rejoindre avec mot de passe…", + "knockButton": "Demander à rejoindre", + "knockTitle": "Quelqu'un souhaite rejoindre la réunion", + "knockingParticipantList": "Liste des participants en attente", + "lobbyChatStartedNotification": "Un modérateur dialogue en salle d'attente avec {{attendee}}", + "lobbyChatStartedTitle": "Un modérateur dialogue en salle d'attente avec vous.", + "lobbyClosed": "La salle d'attente a été fermée.", + "nameField": "Saisissez votre nom", + "notificationLobbyAccessDenied": "{{targetParticipantName}} a été refusé par {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} a été accepté par {{originParticipantName}}", + "notificationLobbyDisabled": "Le mode salle d'attente a été désactivé par {{originParticipantName}}", + "notificationLobbyEnabled": "Le mode salle d'attente a été activé par {{originParticipantName}}", + "notificationTitle": "Salle d'attente", + "passwordJoinButton": "Rejoindre", + "title": "Salle d'attente", + "toggleLabel": "Activer la salle d'attente" + }, + "localRecording": { + "clientState": { + "off": "Inactif", + "on": "Actif", + "unknown": "Inconnu" + }, + "dialogTitle": "Commandes de l'enregistrement local", + "duration": "Durée", + "durationNA": "N/A", + "encoding": "Encodage", + "label": "ENR-LOC", + "labelToolTip": "L'enregistrement local est démarré", + "localRecording": "Enregistrement local", + "me": "Moi", + "messages": { + "engaged": "L'enregistrement local a démarré.", + "finished": "L'enregistrement de la session {{token}} s'est terminé. Merci d'envoyer le fichier au modérateur.", + "finishedModerator": "L'enregistrement de la session {{token}} s'est terminé. L'enregistrement a bien été sauvegardée. Merci de demander aux autres participants de soumettre leurs enregistrements.", + "notModerator": "Vous n'êtes pas le modérateur. Vous ne pouvez pas démarrer ou arrêter un enregistrement local." + }, + "moderator": "Droits de modérateur accordés", + "no": "Non", + "participant": "Participant(e)", + "participantStats": "Statistiques du participant", + "selectTabTitle": "🎥 Veuillez sélectionner cet onglet pour enregistrer", + "sessionToken": "Token de la session", + "start": "Démarrer l'enregistrement", + "stop": "Arrêter l'enregistrement", + "stopping": "Arrêt de l'enregistrement", + "wait": "Patienter pendant la sauvegarde de votre enregistrement.", + "yes": "Oui" + }, + "lockRoomPassword": "mot de passe", + "lockRoomPasswordUppercase": "Mot de passe", + "lonelyMeetingExperience": { + "button": "Inviter d'autres personnes", + "youAreAlone": "Vous êtes le seul participant de la réunion" + }, + "me": "moi", + "notify": { + "OldElectronAPPTitle": "Faille de sécurité !", + "allowAction": "Permettre", + "allowedUnmute": "Vous pouvez réactiver votre écran, votre caméra ou partager votre écran.", + "audioUnmuteBlockedDescription": "Le rétablissement du son a été bloqué temporairement en raison de limites système.", + "audioUnmuteBlockedTitle": "Rétablissement du son bloqué !", + "chatMessages": "Messages de chat", + "connectedOneMember": "{{name}} a rejoint la réunion", + "connectedThreePlusMembers": "{{name}} et {{count}} autres personnes ont rejoint la réunion", + "connectedTwoMembers": "{{first}} et {{second}} ont rejoint la réunion", + "connectionFailed": "Connexion échouée. Veuillez réessayer plus tard !", + "dataChannelClosed": "Qualité vidéo dégradée", + "dataChannelClosedDescription": "Le canal de communication avec le Bridge a été interrompu, la qualité vidéo se trouve limitée à sa valeur la plus faible.", + "dataChannelClosedDescriptionWithAudio": "Le canal de pont est fermé, ce qui peut entraîner des perturbations de l'audio et de la vidéo.", + "dataChannelClosedWithAudio": "La qualité de l'audio et de la vidéo peut être altérée", + "disabledIframe": "L'intégration Iframe est uniquement destinée à des démos, cet appel se terminera dans {{timeout}} minutes.", + "disabledIframeSecondary": "L'intégration Iframe de {{domaine}} est uniquement destinée à des démos, cet appel se terminera dans {{timeout}} minutes.", + "disconnected": "déconnecté", + "displayNotifications": "Afficher les notifications pour", + "dontRemindMe": "Ne pas me le rappeler", + "focus": "Focus de conférence", + "focusFail": "{{component}} n'est pas disponible - réessayez dans {{ms}} sec", + "gifsMenu": "GIPHY", + "groupTitle": "Notifications", + "hostAskedUnmute": "Le modérateur souhaite vous donner la parole", + "invalidTenant": "Tenant invalide", + "invalidTenantHyphenDescription": "Le tenant que vous utilisez est invalide (commence ou se termine par '-').", + "invalidTenantLengthDescription": "Le tenant que vous utilisez est trop long.", + "invitedOneMember": "{{name}} a été invité(e)", + "invitedThreePlusMembers": "{{name}} et {{count}} autres ont été invités", + "invitedTwoMembers": "{{first}} et {{second}} ont été invités", + "joinMeeting": "Rejoindre", + "kickParticipant": "{{kicked}} a été expulsé par {{kicker}}", + "leftOneMember": "{{name}} a quitté la réunion", + "leftThreePlusMembers": "{{name}} et beaucoup d'autres ont quitté la réunion", + "leftTwoMembers": "{{first}} et {{second}} ont quitté la réunion", + "linkToSalesforce": "Lien à Salesforce", + "linkToSalesforceDescription": "Vous pouvez lier le résumé de la conférence à un objet Salesforce.", + "linkToSalesforceError": "Impossible de relier la conférence à Salesforce", + "linkToSalesforceKey": "Relier cette conférence", + "linkToSalesforceProgress": "Liaison de la conférence à Salesforce…", + "linkToSalesforceSuccess": "La conférence a été reliée à Salesforce", + "localRecordingStarted": "{{name}} a commencé un enregistrement local.", + "localRecordingStopped": "{{name}} a arrêté un enregistrement local.", + "me": "Moi", + "moderationInEffectCSDescription": "Merci de lever la main si vous voulez partager votre écran.", + "moderationInEffectCSTitle": "Le partage d'écran est interdit par le modérateur", + "moderationInEffectDescription": "Merci de levez la main pour demander la parole.", + "moderationInEffectTitle": "Votre micro est coupé par le modérateur", + "moderationInEffectVideoDescription": "Merci de lever la main si vous souhaitez démarrer votre caméra.", + "moderationInEffectVideoTitle": "Votre caméra est coupée par le modérateur", + "moderationRequestFromModerator": "Le modérateur souhaite que vous activiez votre micro", + "moderationRequestFromParticipant": "Souhaite parler", + "moderationStartedTitle": "Modération démarrée", + "moderationStoppedTitle": "Modération arrêtée", + "moderationToggleDescription": "par {{participantDisplayName}}", + "moderator": "Droits modérateur accordés !", + "muted": "Vous avez commencé la conversation en muet.", + "mutedRemotelyDescription": "Vous pouvez toujours activer votre micro pour prendre la parole. Désactivez votre micro quand vous terminez pour éviter les bruits parasites.", + "mutedRemotelyTitle": "Votre micro a été coupé par {{participantDisplayName}} !", + "mutedTitle": "Vous êtes en muet !", + "newDeviceAction": "Utiliser", + "newDeviceAudioTitle": "Nouveau périphérique audio détecté", + "newDeviceCameraTitle": "Nouvelle caméra détectée", + "nextToSpeak": "Vous êtes le prochain à prendre la parole", + "noiseSuppressionDesktopAudioDescription": "La suppression de bruit ne peut pas être activée en même temps que la partage audio du système, veuillez le désactiver et réessayer.", + "noiseSuppressionFailedTitle": "Échec du démarrage de la suppression de bruit", + "noiseSuppressionStereoDescription": "La suppression de bruit d’une source stéréo n’est pas encore supportée.", + "oldElectronClientDescription1": "Vous semblez utiliser une ancienne version du client Jitsi Meet qui présente des failles de sécurité connues. Veuillez vous assurer de mettre à jour vers notre ", + "oldElectronClientDescription2": "dernière build", + "oldElectronClientDescription3": " rapidement !", + "participantWantsToJoin": "souhaite rejoindre la réunion", + "participantsWantToJoin": "souhaitent rejoindre la réunion", + "passwordRemovedRemotely": "Le $t(lockRoomPassword) a été supprimé par un autre participant", + "passwordSetRemotely": "Un $t(lockRoomPassword) a été défini par un autre participant", + "raiseHandAction": "Lever la main", + "raisedHand": "{{name}} aimerait prendre la parole.", + "raisedHands": "{{participantName}} et {{raisedHands}} autres personnes", + "reactionSounds": "Bloquer les réactions sonores", + "reactionSoundsForAll": "Bloquer les réactions sonores pour tous", + "screenShareNoAudio": " La case Partager l'audio n'a pas été cochée dans l'écran de sélection de la fenêtre.", + "screenShareNoAudioTitle": "La case Partager l'audio n'a pas été cochée", + "screenSharingAudioOnlyDescription": "Veuillez noter qu’en partageant votre écran, vous impactez le mode “Meilleure Performance” et vous utilisez plus de bande passante.", + "screenSharingAudioOnlyTitle": "Mode \"Meilleure Performance\"", + "selfViewTitle": "Vous pouvez toujours rétablir l'affichage de votre propre vidéo dans les paramètres", + "somebody": "Quelqu'un", + "startSilentDescription": "Rejoignez la réunion de nouveau pour activer l'audio", + "startSilentTitle": "Vous avez rejoint sans sortie audio !", + "suboptimalBrowserWarning": "Nous craignons que votre expérience de réunion en ligne ne soit pas idéale ici. Nous cherchons des moyens d'améliorer cela, mais d'ici-là, essayez d'utiliser l'un des navigateurs supportés.", + "suboptimalExperienceTitle": "Avertissement du navigateur", + "suggestRecordingAction": "Démarrer", + "suggestRecordingDescription": "Souhaitez-vous démarrer un enregistrement ?", + "suggestRecordingTitle": "Enregistrer cette réunion", + "unmute": "Rétablir le son", + "videoMutedRemotelyDescription": "Vous pouvez toujours la réactiver.", + "videoMutedRemotelyTitle": "Votre caméra a été coupée par {{participantDisplayName}}!", + "videoUnmuteBlockedDescription": "Le rétablissement de la vidéo a été bloqué temporairement en raison de limites système.", + "videoUnmuteBlockedTitle": "Rétablissement de la caméra bloqué !", + "viewLobby": "Voir la salle d'attente", + "viewParticipants": "Voir les participants", + "viewVisitors": "Voir les visiteurs", + "waitingParticipants": "{{waitingParticipants}} personnes", + "waitingVisitors": "Visiteurs en attente dans la file : {{waitingVisitors}}", + "waitingVisitorsTitle": "La réunion n'est pas encore en direct !", + "whiteboardLimitDescription": "Veuillez sauvegarder votre progression, car la limite d’utilisation du tableau blanc sera bientôt atteinte et celui-ci sera fermé.", + "whiteboardLimitTitle": "Utiilisation du tableau blanc" + }, + "participantsPane": { + "actions": { + "admit": "Accepter", + "admitAll": "Tout accepter", + "allow": "Autoriser les participants à:", + "allowVideo": "permettre la vidéo", + "askUnmute": "Demander de réactiver le micro", + "audioModeration": "Rouvrir leur micro", + "blockEveryoneMicCamera": "Bloquer tous les micros et caméras", + "breakoutRooms": "Salles annexes", + "goLive": "Passer en direct", + "invite": "Inviter quelqu'un", + "lowerAllHands": "Abaisser toutes les mains", + "lowerHand": "Abaisser la main", + "moreModerationActions": "Options de modération supplémentaires", + "moreModerationControls": "Options de modération supplémentaires", + "moreParticipantOptions": "Options supplémentaires pour les participants", + "mute": "Couper le micro", + "muteAll": "Couper le micro de tout le monde", + "muteEveryoneElse": "Couper le micro de tous les autres", + "reject": "Refuser", + "stopEveryonesVideo": "Couper toutes les caméras", + "stopVideo": "Couper la vidéo", + "unblockEveryoneMicCamera": "Débloquer tous les micros et caméras", + "videoModeration": "Démarrer leur vidéo" + }, + "close": "Fermer", + "headings": { + "lobby": "Salle d'attente ({{count}})", + "participantsList": "Participants de la réunion ({{count}})", + "visitorInQueue": " (en attente {{count}})", + "visitorRequests": "(Demande {{count}} )", + "visitors": "Visiteurs {{count}}", + "waitingLobby": "Dans la salle d'attente ({{count}})" + }, + "search": "Rechercher des participants", + "title": "Participants" + }, + "passwordDigitsOnly": "Jusqu'à {{number}} chiffres", + "passwordSetRemotely": "défini par un autre participant", + "pinParticipant": "Épingler - {{participantName}}", + "pinnedParticipant": "Participant toujours affiché", + "polls": { + "answer": { + "edit": "Modifier", + "send": "Envoyer", + "skip": "Passer", + "submit": "Envoyer" + }, + "by": "Par {{ name }}", + "closeButton": "Fermer le sondage", + "create": { + "addOption": "Ajouter une option", + "answerPlaceholder": "Option {{index}}", + "cancel": "Annuler", + "create": "Créer un sondage", + "pollOption": "Option {{index}}", + "pollQuestion": "Question du sondage", + "questionPlaceholder": "Poser une question", + "removeOption": "Supprimer l'option", + "save": "Enregistrer", + "send": "Envoyer" + }, + "errors": { + "notUniqueOption": "Les options doivent être uniques" + }, + "notification": { + "description": "Ouvrez l'onglet des sondages pour voter", + "title": "Un nouveau sondage a été ajouté à la réunion" + }, + "results": { + "changeVote": "Changer le vote", + "empty": "Il n'y a pas encore de sondages dans cette réunion. Démarrez un sondage ici !", + "hideDetailedResults": "Masquer les détails", + "showDetailedResults": "Afficher les détails", + "vote": "Voter" + } + }, + "poweredby": "produit par", + "prejoin": { + "audioAndVideoError": "Erreur audio et video:", + "audioDeviceProblem": "Il y a un problème avec votre périphérique audio", + "audioOnlyError": "Erreur audio :", + "audioTrackError": "N'a pas pu créer la piste audio.", + "callMe": "Appelez-moi", + "callMeAtNumber": "Appelez-moi à ce numéro :", + "calling": "Appel", + "configuringDevices": "Configuration des appareils…", + "connectedWithAudioQ": "Êtes-vous connecté avec le microphone ?", + "connection": { + "failed": "Le test de connexion a échoué !", + "good": "Votre connexion Internet est bonne !", + "nonOptimal": "Votre connexion n'est pas optimale", + "poor": "Vous avez une mauvaise connexion", + "running": "Exécution du test de connexion…" + }, + "connectionDetails": { + "audioClipping": "Attendez vous à ce que votre son soit coupé.", + "audioHighQuality": "Votre son sera de bonne qualité.", + "audioLowNoVideo": "Attendez vous à une faible qualité audio et aucune vidéo", + "goodQuality": "Impressionnant ! La qualité de vos médias sera excellente", + "noMediaConnectivity": "Nous n'avons pas pu trouver un moyen d'établir une connectivité multimédia pour ce test. Cela est généralement causé par un pare-feu ou un NAT.", + "noVideo": "Attendez vous à ce que votre qualité vidéo soit très mauvaise.", + "testFailed": "Le test de connexion a rencontré des problèmes inattendus, mais cela pourrait ne pas affecter votre expérience.", + "undetectable": "Si vous ne parvenez toujours pas à passer des appels dans le navigateur, nous vous recommandons de vous assurer que vos haut-parleurs, microphone et caméra sont correctement configurés, que vous avez accordé à votre navigateur les droits d'utiliser votre microphone et votre caméra et que la version de votre navigateur est à jour. Si vous rencontrez toujours des difficultés pour appeler, vous devez contacter le développeur de l'application Web.", + "veryPoorConnection": "Attendez vous à ce que la qualité de votre appel soit très mauvaise", + "videoFreezing": "Attendez vous à ce que votre vidéo saute, soit noire, et pixelisée.", + "videoHighQuality": "Votre vidéo sera de bonne qualité", + "videoLowQuality": "Votre vidéo sera de basse qualité en terme d'images par seconde et de résolution.", + "videoTearing": "Attendez vous à ce que votre vidéo soit pixélisée ou contienne des artefacts visuels." + }, + "copyAndShare": "Copier & partager le lien", + "dialInMeeting": "Participez à la réunion", + "dialInPin": "Participez à la réunion et saisir le code PIN :", + "dialing": "Numérotation", + "doNotShow": "Ne plus afficher ceci", + "errorDialOut": "Impossible de composer le numéro", + "errorDialOutDisconnected": "Impossible de composer le numéro. Déconnecté", + "errorDialOutFailed": "Impossible de composer le numéro. L'appel a échoué", + "errorDialOutStatus": "Erreur lors de l'obtention de l'état d'appel sortant", + "errorMissingName": "Veuillez entrer votre nom pour entrer en conférence", + "errorNoPermissions": "Vous devez permettre l'accès microphone et caméra", + "errorStatusCode": "Erreur de numérotation, code d'état: {{status}}", + "errorValidation": "La validation du numéro a échoué", + "iWantToDialIn": "Je veux me connecter", + "initiated": "Appel lancé", + "joinAudioByPhone": "Rejoindre avec l'audio du téléphone", + "joinMeeting": "Rejoindre la réunion", + "joinMeetingInLowBandwidthMode": "Rejoindre en mode bande passante réduite", + "joinWithoutAudio": "Rejoignez sans microphone", + "keyboardShortcuts": "Activer les raccourcis clavier", + "linkCopied": "Lien copié dans le presse-papiers", + "lookGood": "Il semble que votre microphone fonctionne correctement", + "or": "ou", + "premeeting": "Pré-séance", + "proceedAnyway": "Continuer quand même", + "recordingWarning": "D'autres participants peuvent enregistrer cet appel", + "screenSharingError": "Erreur de partage d'écran:", + "startWithPhone": "Commencez avec l'audio du téléphone", + "unsafeRoomConsent": "Je comprends les risques et je veux quand même rejoindre cette réunion", + "videoOnlyError": "Erreur vidéo:", + "videoTrackError": "Impossible de créer une piste vidéo.", + "viewAllNumbers": "voir tous les numéros" + }, + "presenceStatus": { + "busy": "Occupé", + "calling": "Appel…", + "connected": "Connecté", + "connecting": "Connexion en cours…", + "connecting2": "Connexion en cours*…", + "disconnected": "Déconnecté", + "expired": "Expiré", + "ignored": "Ignoré", + "initializingCall": "Lancement de l'appel…", + "invited": "Invité(e)", + "rejected": "Rejeté", + "ringing": "Appel en cours…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Choisissez un pseudo", + "setEmailInput": "Entrez une adresse email", + "setEmailLabel": "Définir votre courriel Gravatar", + "title": "Profil" + }, + "raisedHand": "Aimerait prendre la parole", + "raisedHandsLabel": "Nombre de mains levées", + "record": { + "already": { + "linked": "L'enregistrement est déjà relié à cette session." + }, + "type": { + "account": "Compte", + "contact": "Contact", + "lead": "Piste", + "opportunity": "Opportunité", + "owner": "Propriétaire" + } + }, + "recording": { + "authDropboxText": "Téléchargement vers Dropbox", + "availableSpace": "Espace disponible : {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)", + "beta": "BETA", + "busy": "Nous sommes en train de libérer les ressources d'enregistrement. Réessayez dans quelques minutes.", + "busyTitle": "Tous les enregistreurs sont actuellement occupés", + "copyLink": "Copier lien", + "error": "Échec de l'enregistrement. Veuillez réessayer.", + "errorFetchingLink": "Erreur de récupération du lien d'enregistrement.", + "expandedOff": "L'enregistrement a été arrêté", + "expandedOn": "Cette conférence est actuellement en cours d'enregistrement.", + "expandedPending": "Démarrage de l'enregistrement…", + "failedToStart": "L'enregistrement n'a pas réussi à démarrer", + "fileSharingdescription": "Partager l'enregistrement avec les participants de la réunion", + "highlight": "Souligner", + "highlightMoment": "Souligner un moment", + "highlightMomentDisabled": "Vous ne pouvez souligner des moments que pendant une réunion", + "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", + "localRecordingStartWarning": "Assurez-vous d’arrêter l’enregistrement vidéo avant de quitter la réunion afin de pouvoir le sauvegarder.", + "localRecordingStartWarningTitle": "Arrêter l’enregistrement pour le sauvegarder", + "localRecordingVideoStop": "Arrêter votre vidéo va aussi arrêter votre enregistrement local. Êtes-vous sûrs de vouloir continuer ?", + "localRecordingVideoWarning": "Pour enregistrer votre vidéo, vous devez avoir celle-ci active au moment de commencer l’enregistrement.", + "localRecordingWarning": "Assurez-vous de sélectionner l’onglet courant pour utiliser le bon son et la bonne vidéo.", + "loggedIn": "Connecté en tant que {{userName}}", + "noMicPermission": "La piste microphone ne peut pas être créée. Veuillez autoriser l’utilisation du microphone.", + "noStreams": "Aucun flux audio ou vidéo détectés.", + "off": "Enregistrement arrêté", + "offBy": "{{name}} a arrêté l'enregistrement", + "on": "Enregistrement", + "onBy": "{{name}} a démarré l'enregistrement", + "onlyRecordSelf": "Enregistrer seulement mon audio et ma vidéo.", + "pending": "Préparation de l'enregistrement de la réunion…", + "policyError": "Vous avez essayé de démarrer un enregistrement trop rapidement. Veuillez réessayer plus tard !", + "recordAudioAndVideo": "Enregistrer l'audio et la vidéo", + "recordTranscription": "Enregistrer la transcription", + "saveLocalRecording": "Sauvegarder l’enregistrement local (Beta)", + "serviceDescription": "Votre enregistrement sera enregistré par le service dédié", + "serviceDescriptionCloud": "Enregistrement Cloud", + "serviceDescriptionCloudInfo": "Les conférences enregistrées sont automatiquement supprimées 24h après leur heure d'enregistrement.", + "serviceName": "Service d'enregistrement", + "sessionAlreadyActive": "Cette session est déjà en cours d'enregistrement ou de diffusion.", + "showAdvancedOptions": "Afficher les options avancées", + "signIn": "Se connecter", + "signOut": "Se déconnecter", + "surfaceError": "Veuillez sélectionner l’onglet courant.", + "title": "Enregistrement", + "unavailable": "Oups ! Le {{serviceName}} est actuellement indisponible. Nous tentons de résoudre le problème. Veuillez réessayer plus tard.", + "unavailableTitle": "Enregistrement indisponible", + "uploadToCloud": "Envoyer vers le cloud" + }, + "screenshareDisplayName": "Écran {{name}}", + "sectionList": { + "pullToRefresh": "Tirer pour recharger" + }, + "security": { + "about": "Vous pouvez ajouter un mot de passe à votre réunion. Les participants devront fournir le mot de passe avant de pouvoir rejoindre la réunion.", + "aboutReadOnly": "Les modérateurs peuvent ajouter un mot de passe à la réunion. Les participants devront fournir le mot de passe avant de pouvoir rejoindre la réunion.", + "insecureRoomNameWarningNative": "Le nom de la réunion n’est pas sûr. Des participants non voulus pourraient rejoindre cette réunion. {{recommendAction}} En apprendre plus sur la sécurisation des réunions.", + "insecureRoomNameWarningWeb": "Le nom de la réunion n’est pas sûr. Des participants non voulus pourraient rejoindre cette réunion. {{recommendAction}} En apprendre plus sur la sécurisation des réunions here.", + "title": "Options de sécurité", + "unsafeRoomActions": { + "meeting": "Envisagez de sécuriser votre réunion en utilisant le bouton options de sécurité.", + "prejoin": "Envisagez d'utiliser un nom plus unique", + "welcome": "Envisagez d'utiliser un nom plus unique ou choisissez en un parmi ceux suggérés" + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Paramètres", + "calendar": { + "about": "L'intégration de {{appName}} avec votre calendrier permet d'accéder de manière sécurisée aux événements à venir.", + "disconnect": "Se déconnecter", + "microsoftSignIn": "Se connecter avec Microsoft", + "signedIn": "Accès aux événements du calendrier {{email}}. Cliquez sur le bouton se déconnecter ci-dessous pour arrêter l'accès aux événements du calendrier.", + "title": "Calendrier" + }, + "desktopShareFramerate": "Images par seconde pour le Partage d'écran", + "desktopShareHighFpsWarning": "Augmenter le nombre d'images par seconde pour le partage d'écran peut impacter votre bande passante. Vous devez repartager l'écran pour que ces paramètres soient utilisés.", + "desktopShareWarning": "Vous devez repartager l'écran pour que ces paramètres soient utilisés.", + "devices": "Périphériques", + "followMe": "Tout le monde me suit", + "followMeRecorder": "L'enregistreur me suit", + "framesPerSecond": "images par seconde", + "incomingMessage": "un message arrive", + "language": "Langue", + "loggedIn": "Connecté en tant que {{name}}", + "maxStageParticipants": "Nombre maximum de participants pouvant être épinglé sur l’affichage principal", + "microphones": "Microphones", + "moderator": "Modérateur", + "moderatorOptions": "Options de modérateur", + "more": "Plus", + "name": "Nom", + "noDevice": "Aucun", + "notifications": "Notifications", + "participantJoined": "un participant arrive", + "participantKnocking": "un participant en salle d’attente", + "participantLeft": "un participant quitte", + "playSounds": "Jouer un son quand", + "reactions": "Il y a une réaction à la réunion", + "sameAsSystem": "Identique au système ({{label}})", + "selectAudioOutput": "Sortie audio", + "selectCamera": "Caméra", + "selectMic": "Microphone", + "selfView": "Affichage de votre propre vidéo", + "shortcuts": "Raccourcis", + "speakers": "Haut-parleurs", + "startAudioMuted": "Tout le monde commence en muet", + "startReactionsMuted": "Tout le monde commence avec les réactions sonores bloquées", + "startVideoMuted": "Tout le monde commence sans vidéo", + "talkWhileMuted": "vous parlez en étant muet", + "title": "Paramètres", + "video": "Vidéo" + }, + "settingsView": { + "advanced": "Avancé", + "alertCancel": "Annuler", + "alertOk": "D'accord", + "alertTitle": "Avertissement", + "alertURLText": "L'URL du serveur est invalide", + "apply": "Appliquer", + "buildInfoSection": "Informations de build", + "conferenceSection": "Conférence", + "disableCallIntegration": "Désactiver l'intégration d'appels native", + "disableCrashReporting": "Désactiver les rapports de plantage", + "disableCrashReportingWarning": "Etes-vous certain de vouloir désactiver les rapports de plantage ? Le paramètre sera effectif après le redémarrage de l'application.", + "disableP2P": "Désactiver le mode pair à pair", + "displayName": "Pseudo", + "displayNamePlaceholderText": "Ex : Jean Dupond", + "email": "Email", + "emailPlaceholderText": "email@example..com", + "gavatarMessage": "Si votre email est associé à un compte Gravatar, nous allons l’utiliser pour afficher votre image de profil.", + "goTo": "Aller à", + "header": "Paramètres", + "help": "Aide", + "links": "Liens", + "privacy": "Confidentialité", + "profileSection": "Profil", + "sdkVersion": "Version du SDK", + "serverURL": "URL du serveur", + "showAdvanced": "Afficher les paramètres avancés", + "startCarModeInLowBandwidthMode": "Commencer le mode voiture en mode bande passante réduite", + "startWithAudioMuted": "Commencez avec l'audio en sourdine", + "startWithVideoMuted": "Commencez avec la vidéo en sourdine", + "terms": "Conditions d’utilisations", + "version": "Version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVoulez-vous appeler depuis votre téléphone ?\n\n{{defaultDialInNumber}}Cliquez sur ce lien pour afficher les numéros d'appels pour cette réunion\n{{dialInfoPageUrl}}", + "mainText": "Cliquez sur le lien suivant pour rejoindre une conférence :\n{{roomUrl}}" + }, + "speaker": "Haut-parleur", + "speakerStats": { + "angry": "En colère", + "disgusted": "Dégoûté", + "displayEmotions": "Afficher réactions", + "fearful": "Effrayé", + "happy": "Content", + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Nom", + "neutral": "Indifférent", + "sad": "Triste", + "search": "Recherche", + "searchHint": "Recherche des participants", + "seconds": "{{count}}s", + "speakerStats": "Statistiques de l'interlocuteur", + "speakerTime": "Temps de l'interlocuteur", + "surprised": "Surpris" + }, + "startupoverlay": { + "genericTitle": "La conférence a besoin d'utiliser votre microphone et votre caméra.", + "policyText": " ", + "title": "{{app}} a besoin d'accéder à votre microphone et votre caméra." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Rejoindre", + "text": "Cliquez sur le bouton Rejoindre pour se reconnecter.", + "title": "Votre visioconférence s'est interrompue parce que votre ordinateur s'est mis en veille." + }, + "termsView": { + "title": "Conditions d'utilisation" + }, + "toggleTopPanelLabel": "Basculer le panneau supérieur", + "toolbar": { + "Settings": "Paramètres", + "accessibilityLabel": { + "Settings": "Ouvrir le menu des paramètres", + "audioOnly": "Activer / Désactiver le mode voix uniquement", + "audioRoute": "Sélectionner la source audio", + "boo": "Hou", + "breakoutRooms": "Rejoindre / quitter une salle annexe", + "callQuality": "Ajuster la qualité vidéo", + "carmode": "Mode voiture", + "cc": "Activer / Désactiver les sous-titres", + "chat": "Afficher / Masquer la discussion instantanée", + "clap": "Applaudir", + "closeChat": "Fermer la discussion instantanée", + "closeMoreActions": "Fermer le menu plus d'actions", + "closeParticipantsPane": "Fermer le panneau des participants", + "collapse": "Plier", + "document": "Activer / Désactiver le document partagé", + "documentClose": "Fermer le document partagé", + "documentOpen": "Ouvrir le document partagé", + "download": "Télécharger nos applications", + "embedMeeting": "Intégrer la réunion", + "endConference": "Terminer la réunion pour tout le monde", + "enterFullScreen": "Passer en mode plein écran", + "enterTileView": "Passer en vue mosaïque", + "exitFullScreen": "Quitter le mode plein écran", + "exitTileView": "Quitter la vue mosaïque", + "expand": "Développer", + "feedback": "Laisser des commentaires", + "fullScreen": "Activer / Désactiver le plein écran", + "giphy": "Activer/désactiver le menu GIPHY", + "grantModerator": "donner des droits de modérateur", + "hangup": "Quitter la conversation", + "heading": "Barre d'outils", + "help": "Aide", + "hideWhiteboard": "Masquer le tableau blanc", + "invite": "Inviter des participants", + "kick": "Expulser le participant", + "laugh": "Rire", + "leaveConference": "Quitter la réunion", + "like": "Approuver", + "linkToSalesforce": "Lien à Salesforce", + "lobbyButton": "Activer / Désactiver le mode salle d'attente", + "localRecording": "Activer / Désactiver les contrôles d'enregistrement local", + "lockRoom": "Activer / Désactiver le mot de passe de la réunion", + "love": "Cœur", + "lowerHand": "Baisser la main", + "moreActions": "Activer / Désactiver le menu d'actions supplémentaires", + "moreActionsMenu": "Menu d'actions supplémentaires", + "moreOptions": "Voir plus d'options", + "mute": "Couper votre micro", + "muteEveryone": "Couper le micro de tout le monde", + "muteEveryoneElse": "Couper le micro de tous les autres", + "muteEveryoneElsesVideoStream": "Couper la caméra de tous les autres", + "muteEveryonesVideoStream": "Couper la caméra de tout le monde", + "muteGUMPending": "Connection de votre microphone", + "noiseSuppression": "Suppression du bruit", + "openChat": "Ouvrir le chat", + "participants": "Participants", + "pip": "Activer / Désactiver le mode Picture in Picture", + "privateMessage": "Envoyer un message privé", + "profile": "Éditer votre profil", + "raiseHand": "Lever la main", + "react": "Réactions aux messages", + "reactions": "Réactions", + "reactionsMenu": "Ouvrir / fermer le menu réactions", + "recording": "Activer / Désactiver l'enregistrement", + "remoteMute": "Couper le micro du participant", + "remoteVideoMute": "Couper la caméra du participant", + "security": "Options de sécurité", + "selectBackground": "Selectionner un arrière-plan", + "selfView": "Afficher votre vidéo", + "shareRoom": "Inviter quelqu'un", + "shareYourScreen": "Activer / Désactiver le partage d'écran", + "shareaudio": "Partager l'audio", + "sharedvideo": "Démarrer / Arrêter le partage de vidéo", + "shortcuts": "Afficher / Masquer les raccourcis", + "show": "Afficher en premier plan", + "showWhiteboard": "Afficher le tableux blanc", + "silence": "Silence", + "speakerStats": "Afficher / Masquer les statistiques de parole", + "stopScreenSharing": "Arrêter le partage d'écran", + "stopSharedVideo": "Arrêter la vidéo partagée", + "surprised": "Surpris", + "tileView": "Activer / Désactiver la vue mosaïque", + "toggleCamera": "Changer de caméra", + "toggleFilmstrip": "Afficher ou masquer les vignettes vidéo", + "unmute": "Activer votre micro", + "videoblur": "Activer / désactiver le floutage", + "videomute": "Couper votre vidéo", + "videomuteGUMPending": "Connexion de votre caméra", + "videounmute": "Activer votre vidéo" + }, + "addPeople": "Ajouter des personnes à votre appel", + "audioOnlyOff": "Désactiver le mode bande passante réduite", + "audioOnlyOn": "Activer le mode bande passante réduite", + "audioRoute": "Sélectionner la source audio", + "audioSettings": "Paramètres audio", + "authenticate": "Authentifiez-vous", + "boo": "Huer", + "callQuality": "Ajuster la qualité vidéo", + "chat": "Ouvrir / Fermer le chat", + "clap": "Applaudir", + "closeChat": "Fermer le chat", + "closeParticipantsPane": "Fermer le panneau des participants", + "closeReactionsMenu": "Fermer le menu réactions", + "disableNoiseSuppression": "Arrêter la suppression du bruit", + "disableReactionSounds": "Vous pouvez interdire les réactions sonores à cette réunion", + "documentClose": "Fermer le document partagé", + "documentOpen": "Ouvrir le document partagé", + "download": "Télécharger nos applications", + "e2ee": "Chiffrement de Bout-en-Bout", + "embedMeeting": "Intégrer la réunion", + "enableNoiseSuppression": "Activer la suppression du bruit", + "endConference": "Terminer la réunion pour tout le monde", + "enterFullScreen": "Afficher en plein écran", + "enterTileView": "Accéder au mode mosaïque", + "exitFullScreen": "Quitter le mode plein écran", + "exitTileView": "Quitter le mode mosaïque", + "feedback": "Laisser des commentaires", + "giphy": "Activer/désactiver le menu GIPHY", + "hangup": "Quitter", + "help": "Aide", + "hideWhiteboard": "Masquer le tableau blanc", + "invite": "Inviter des participants", + "joinBreakoutRoom": "Rejoindre salle annexe", + "laugh": "Rire", + "leaveBreakoutRoom": "Quitter salle annexe", + "leaveConference": "Quitter la réunion", + "like": "Approuver", + "linkToSalesforce": "Lien à Salesforce", + "lobbyButtonDisable": "Désactiver le mode salle d'attente / contrôle des participant(e)s", + "lobbyButtonEnable": "Activer le mode salle d'attente / contrôle des participant(e)s", + "login": "Connexion", + "logout": "Déconnexion", + "love": "Cœur", + "lowerYourHand": "Baisser la main", + "moreActions": "Plus d'actions", + "moreOptions": "Plus d'options", + "mute": "Muet / Actif", + "muteEveryone": "Couper le micro à tout le monde", + "muteEveryonesVideo": "Couper la caméra de tout le monde", + "muteGUMPending": "Connection de votre microphone", + "noAudioSignalDesc": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, envisagez de changer de périphérique utilisé.", + "noAudioSignalDescSuggestion": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, pensez à utiliser le périphérique suivant :", + "noAudioSignalDialInDesc": "Vous pouvez également appeler en utilisant :", + "noAudioSignalDialInLinkDesc": "Numéros d'appel", + "noAudioSignalTitle": "Il n'y a pas de signal provenant de votre micro !", + "noiseSuppression": "Suppression du bruit", + "noisyAudioInputDesc": "Il semble que votre microphone soit bruyant, veuillez le couper ou changer de périphérique.", + "noisyAudioInputTitle": "Votre microphone semble être bruyant !", + "openChat": "Ouvrir le chat", + "openReactionsMenu": "Ouvrir le menu Réactions", + "participants": "Participants", + "pip": "Entrer en mode Picture-in-Picture", + "privateMessage": "Envoyer un message privé", + "profile": "Éditer votre profil", + "raiseHand": "Lever / Baisser la main", + "raiseYourHand": "Lever la main", + "reactionBoo": "Envoyer réaction huer", + "reactionClap": "Envoyer réaction applaudir", + "reactionHeart": "Envoyer une réaction en forme de cœur", + "reactionLaugh": "Envoyer réaction rire", + "reactionLike": "Envoyer réaction approuver", + "reactionSilence": "Envoyer réaction silence", + "reactionSurprised": "Envoyer réaction surprise", + "reactions": "Reactions", + "security": "Options de sécurité", + "selectBackground": "Sélectionner un arrière-plan", + "shareRoom": "Inviter quelqu'un", + "shareaudio": "Partager l'audio", + "sharedvideo": "Partager une vidéo", + "shortcuts": "Afficher les raccourcis", + "showWhiteboard": "Afficher le tableau blanc", + "silence": "Silence", + "speakerStats": "Statistiques de l'interlocuteur", + "startScreenSharing": "Démarrer le partage d'écran", + "startSubtitles": "Activer les sous-titres", + "stopAudioSharing": "Arrêter le partage son", + "stopScreenSharing": "Arrêter le partage d'écran", + "stopSharedVideo": "Arrêter la vidéo", + "stopSubtitles": "Désactiver les sous-titres", + "surprised": "Surpris", + "talkWhileMutedPopup": "Vous voulez parler ? Votre micro est coupé.", + "tileViewToggle": "Activer / Désactiver la vue mosaïque", + "toggleCamera": "Changer de caméra", + "unmute": "Rétablir le son", + "videoSettings": "Paramètres vidéo", + "videomute": "Arrêter la caméra", + "videomuteGUMPending": "Connexion de votre caméra", + "videounmute": "Démarrer la caméra" + }, + "transcribing": { + "ccButtonTooltip": "Activer / Désactiver les sous-titres", + "expandedLabel": "La transcription est actuellement activée", + "failed": "La transcription a échoué", + "labelToolTip": "La transcription de la réunion est en cours", + "sourceLanguageDesc": "Actuellement, la langue de la réunion est sélectionnée à {{sourceLanguage}}.
Vous pouvez la changer à partir de ", + "sourceLanguageHere": "ici", + "start": "Activer les sous-titres", + "stop": "Désactiver les sous-titres", + "subtitles": "sous-titres", + "subtitlesOff": "off", + "tr": "TR" + }, + "unpinParticipant": "Désépingler - {{participantName}}", + "userMedia": { + "grantPermissions": "Veuillez autoriser le partage de votre camera et microphone." + }, + "videoSIPGW": { + "busy": "Nous tentons de libérer les ressources requises. Veuillez réessayez dans quelques minutes.", + "busyTitle": "Le service du Salon est actuellement occupé", + "errorAlreadyInvited": "{{displayName}} est déjà invité(e)", + "errorInvite": "La conférence n'est pas encore établie. Veuillez réessayer plus tard.", + "errorInviteFailed": "Nous tentons de résoudre le problème. Veuillez réessayer plus tard.", + "errorInviteFailedTitle": "L'invitation de {{displayName}} a échoué", + "errorInviteTitle": "Erreur lors de l'invitation", + "pending": "{{displayName}} a été invité(e)" + }, + "videoStatus": { + "adjustFor": "Ajuster pour:", + "audioOnly": "VOIX", + "audioOnlyExpanded": "Vous êtes en mode bande passante réduite. Dans ce mode, vous ne recevrez que le partage audio et le partage d'écran.", + "bestPerformance": "la meilleure performance", + "callQuality": "Qualité vidéo", + "hd": "HD", + "hdTooltip": "Regardez la vidéo en haute définition", + "highDefinition": "Haute définition", + "highestQuality": "la meilleure qualité", + "labelTooiltipNoVideo": "Aucune vidéo", + "labelTooltipAudioOnly": "Mode bande passante réduite activé", + "ld": "BD", + "ldTooltip": "Regardez la vidéo en basse définition", + "lowDefinition": "Basse définition", + "performanceSettings": "Paramètres de performance", + "recording": "Enregistrement en cours", + "sd": "MD", + "sdTooltip": "Regardez la vidéo en définition standard", + "standardDefinition": "Moyenne Définition", + "streaming": "Diffusion en direct en cours" + }, + "videothumbnail": { + "connectionInfo": "Informations de la connexion", + "demote": "Déplacer en visiteur", + "domute": "Couper le micro", + "domuteOthers": "Couper le micro de tous les autres", + "domuteVideo": "Couper la caméra", + "domuteVideoOfOthers": "Couper la caméra des autres", + "flip": "Miroir", + "grantModerator": "Donner des droits de modérateur", + "hideSelfView": "Masquer l'affichage de votre propre vidéo", + "kick": "Exclure", + "mirrorVideo": "Inverser ma vidéo", + "moderator": "Modérateur", + "mute": "Le participant a coupé son micro", + "muted": "Muet", + "pinToStage": "Garder affiché", + "remoteControl": "Démarrer / Arrêter le contrôle à distance", + "screenSharing": "Cette personne partage son écran", + "show": "Afficher en premier plan", + "showSelfView": "Afficher votre propre vidéo", + "unpinFromStage": "Ne plus garder affiché", + "verify": "Vérifier le participant", + "videoMuted": "Caméra coupée", + "videomute": "Le participant a arrêté la caméra" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Arrière-plan actuel: {{background}}", + "selectBackground": "Sélectionner un arrière-plan" + }, + "addBackground": "Ajouter un arrière-plan", + "apply": "Appliquer", + "backgroundEffectError": "Erreur dans l'application de l'effet d'arrière-plan.", + "blur": "Flou", + "deleteImage": "Supprimer l'image", + "desktopShare": "Partage de bureau", + "desktopShareError": "Impossible de créer le partage de bureau", + "image1": "Plage", + "image2": "Mur blanc neutre", + "image3": "Pièce vide blanche", + "image4": "Lampadaire noir", + "image5": "Montagne", + "image6": "Forêt ", + "image7": "Lever de soleil", + "none": "Rien", + "pleaseWait": "Veuillez patienter…", + "removeBackground": "Supprimer l'arrière-plan", + "slightBlur": "Léger flou", + "title": "Arrière-plan virtuel", + "uploadedImage": "Image téléversée {{index}}", + "webAssemblyWarning": "WebAssembly non supporté", + "webAssemblyWarningDescription": "WebAssembly invalidé ou non supporté par ce navigateur" + }, + "visitors": { + "chatIndicator": "(visiteur)", + "joinMeeting": { + "description": "Vous êtes actuellement un observateur dans cette conférence.", + "raiseHand": "Levez la main", + "title": "Rejoindre la réunion", + "wishToSpeak": "Si vous souhaitez prendre la parole, veuillez lever la main ci-dessous et attendre l'approbation du modérateur." + }, + "labelTooltip": "Nombre de Visiteurs: {{count}}", + "notification": { + "demoteDescription": "Envoyé ici par {{actor}}, levez la main pour participer", + "noMainParticipantsDescription": "Un participant doit démarrer la réunion. Veuillez réessayer dans un moment.", + "noMainParticipantsTitle": "Cette réunion n'a pas encore commencé.", + "noVisitorLobby": "Vous ne pouvez pas rejoindre tant qu'une salle d'attente est activée pour la réunion.", + "notAllowedPromotion": "Un participant doit d'abord autoriser votre demande.", + "title": "Vous êtes visiteur dans cette réunion" + }, + "waitingMessage": "Vous rejoindrez la réunion dès qu'elle sera en direct !" + }, + "volumeSlider": "Curseur de volume", + "welcomepage": { + "accessibilityLabel": { + "join": "Touchez pour rejoindre", + "roomname": "Saisissez un nom de salle" + }, + "addMeetingName": "Ajouter un nom de réunion", + "appDescription": "Foncez tchater en vidéo avec toute le monde. En fait, vous pouvez inviter tout ceux que vous connaissez. {{app}} est une solution de visioconférence entièrement chiffrée et 100% libre que vous pouvez utiliser en permanence, chaque jour, et sans aucun compte requis.", + "audioVideoSwitch": { + "audio": "Voix", + "video": "Vidéo" + }, + "calendar": "Calendrier", + "connectCalendarButton": "Connecter votre calendrier", + "connectCalendarText": "Connectez-vous à votre calendrier pour afficher toutes les réunions {{app}}. Ajoutez également les réunions de {{provider}} à votre calendrier et démarrez-les d'un simple clic.", + "enterRoomTitle": "Démarrer une nouvelle réunion", + "getHelp": "Obtenir de l'aide", + "go": "Créer", + "goSmall": "Créer", + "headerSubtitle": "Conférences sécurisées et de haute qualité", + "headerTitle": "Jitsi Meet", + "info": "Infos", + "jitsiOnMobile": "Jitsi sur mobile – télécharger notre application et démarrez des conférences de n'import où", + "join": "CRÉER / REJOINDRE", + "logo": { + "calendar": "Logo Calendar", + "desktopPreviewThumbnail": "Miniature d'aperçu du bureau", + "googleLogo": "Logo Google", + "logoDeepLinking": "Logo Jitsi meet", + "microsoftLogo": "Logo Microsoft", + "policyLogo": "Logo de la politique" + }, + "meetingsAccessibilityLabel": "Réunions", + "mobileDownLoadLinkAndroid": "Télécharger l'application mobile sur Android", + "mobileDownLoadLinkFDroid": "Télécharger l'application mobile sur F-Droid", + "mobileDownLoadLinkIos": "Télécharger l'application mobile sur iOS", + "moderatedMessage": "Ou réserver une URL de réunion à l'avance et où vous êtes le seul modérateur.", + "privacy": "Confidentialité", + "recentList": "Récent", + "recentListDelete": "Supprimer", + "recentListEmpty": "Votre liste récente est actuellement vide. Discuter avec votre équipe et vous trouverez toutes vos réunions récentes ici.", + "recentMeetings": "Vos réunions récentes", + "reducedUIText": "Bienvenue sur {{app}} !", + "roomNameAllowedChars": "Le nom de la réunion ne doit contenir aucun de ces caractères : ?, &, :, ', \", %, #.", + "roomname": "Saisissez un nom de salle", + "roomnameHint": "Entrez le nom ou l'URL de la salle que vous souhaitez rejoindre. Vous pouvez faire un nom, laissez les gens que vous rencontrerez le savoir afin qu'ils entrent le même nom.", + "sendFeedback": "Envoyer votre avis", + "settings": "Paramètres", + "startMeeting": "Démarrer la conférence", + "terms": "Termes", + "title": "Système de vidéoconférence sécurisé, riche en fonctionnalités et gratuit", + "upcomingMeetings": "Vos réunions à venir" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Tableau blanc" + }, + "screenTitle": "Tableau blanc" + } +} diff --git a/lang/main-frCA.json b/lang/main-frCA.json new file mode 100644 index 0000000..000ad7c --- /dev/null +++ b/lang/main-frCA.json @@ -0,0 +1,1536 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Lien de la réunion: {{url}}" + }, + "add": "Inviter", + "addContacts": "Inviter vos contacts", + "contacts": "contacts", + "copyInvite": "Copier l'invitation à la réunion", + "copyLink": "Copier le lien de la réunion", + "copyStream": "Copier le lien de diffusion en direct", + "countryNotSupported": "Nous ne prenons pas encore cette destination en charge.", + "countryReminder": "Vous appelez en dehors des É.-U.? Veuillez vous assurer de commencer par le code de pays!", + "disabled": "Vous ne pouvez pas inviter d'autres personnes.", + "failedToAdd": "L'ajout de membres a échoué", + "footerText": "Les appels sont désactivés.", + "googleEmail": "Gmail", + "inviteMoreHeader": "Vous êtes seul(e) dans la réunion", + "inviteMoreMailSubject": "Rejoindre une réunion {{appName}}", + "inviteMorePrompt": "Inviter d'autres personnes", + "linkCopied": "Lien copié dans le presse-papiers", + "loading": "Rechercher des personnes et des numéros de téléphone", + "loadingNumber": "Validation du numéro de téléphone", + "loadingPeople": "Rechercher des personnes à inviter", + "noResults": "Aucun résultat de recherche correspondant", + "noValidNumbers": "Veuillez entrer un numéro de téléphone", + "outlookEmail": "Outlook", + "phoneNumbers": "Numéros de téléphone", + "searchNumbers": "Ajouter des numéros de téléphone", + "searchPeople": "Rechercher des personnes", + "searchPeopleAndNumbers": "Rechercher des personnes ou ajouter des numéros de téléphone", + "searching": "Recherche…", + "shareInvite": "Partager l'invitation à la réunion", + "shareLink": "Partager le lien de la réunion pour inviter d'autres personnes", + "shareStream": "Partager le lien de diffusion en direct", + "sipAddresses": "Adresses SIP", + "telephone": "Téléphone : {{number}}", + "title": "Inviter des personnes à cette réunion", + "yahooEmail": "Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Système audio du véhicule", + "headphones": "Écouteurs", + "none": "Aucun périphérique audio n'est disponible", + "phone": "Téléphone", + "speaker": "Haut-parleur" + }, + "audioOnly": { + "audioOnly": "Bande passante faible" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "p. ex. 10000000 pour 10 Mbps ", + "assumedBandwidthBpsWarning": "Des valeurs élevées peuvent provoquer des problèmes réseaux.", + "customValue": "valeur personnalisée", + "customValueEffect": "Positionner la valeur actuelle en bps", + "leaveEmpty": "Laisser vide", + "leaveEmptyEffect": "Autoriser l'utilisation de l'estimation", + "possibleValues": "Valeurs possibles", + "setAssumedBandwidthBps": "Bande passante estimée", + "title": "Réglage de bande passante", + "zeroEffect": "Désactiver la vidéo" + }, + "breakoutRooms": { + "actions": { + "add": "Ajouter une salle pour petit groupe", + "autoAssign": "Assigner automatiquement aux salles", + "close": "Fermer", + "join": "Rejoindre", + "leaveBreakoutRoom": "Quitter la salle", + "more": "Plus", + "remove": "Supprimer", + "rename": "Renommer", + "renameBreakoutRoom": "Renommer la salle", + "sendToBreakoutRoom": "Envoyer le participant dans:" + }, + "breakoutList": "Liste des salles", + "buttonLabel": "Salles pour petits groupes", + "defaultName": "Salle #{{index}}", + "hideParticipantList": "Masquer la liste des participants", + "mainRoom": "Salle principale", + "notifications": { + "joined": "Entrée en salle \"{{name}}\"", + "joinedMainRoom": "Retour à la salle principale", + "joinedTitle": "Salles annexes" + }, + "showParticipantList": "Afficher la liste des participants", + "title": "Salles pour petits groupes" + }, + "calendarSync": { + "addMeetingURL": "Ajouter un lien de réunion", + "confirmAddLink": "Voulez-vous ajouter un lien Jitsi Meet à cet événement?", + "error": { + "appConfiguration": "L'intégration de l'agenda n'est pas correctement configurée.", + "generic": "Une erreur s'est produite. Veuillez vérifier vos paramètres d'agenda ou essayer de rafraîchir l'agenda.", + "notSignedIn": "Une erreur s'est produite lors de l'authentification des événements d'agenda. Veuillez vérifier vos paramètres d'agenda ou essayer de vous reconnecter." + }, + "join": "Rejoindre", + "joinTooltip": "Rejoindre la réunion", + "nextMeeting": "prochaine réunion", + "noEvents": "Il n'y a aucun événement planifié à venir.", + "ongoingMeeting": "réunion en cours", + "permissionButton": "Ouvrir les paramètres", + "permissionMessage": "L'autorisation de l'Agenda est nécessaire pour consulter vos réunions dans l'application.", + "refresh": "Rafraîchir l'agenda", + "today": "Aujourd'hui" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Sélectionnez le dispositif audio" + }, + "labels": { + "buttonLabel": "Mode voiture", + "title": "Mode voiture", + "videoStopped": "Votre vidéo est arrêtée" + } + }, + "chat": { + "enter": "Entrez dans le salon", + "error": "Erreur : votre message n'a pas été envoyé. Raison : {{error}}", + "fieldPlaceHolder": "Tapez votre message ici", + "lobbyChatMessageTo": "Message de salle d'attente à {{recipient}}", + "message": "Message", + "messageAccessibleTitle": "{{user}} dit: ", + "messageAccessibleTitleMe": "Je dis: ", + "messageTo": "Message privé à {{recipient}}", + "messagebox": "Saisissez un message", + "newMessages": "Nouveaux messages", + "nickname": { + "popover": "Choisissez un nom d'affichage", + "title": "Entrer un nom d'affichage pour utiliser le clavardage", + "titleWithPolls": "Entrer un nom d'affichage pour utiliser le clavardage" + }, + "noMessagesMessage": "Il n'y a pas encore de messages dans cette réunion. Démarrez une conversation ici !", + "privateNotice": "Message privé à {{recipient}}", + "sendButton": "Envoyer", + "title": "Clavardage", + "titleWithPolls": "Clavardage", + "you": "vous" + }, + "chromeExtensionBanner": { + "buttonText": "Installer l'extension Chrome", + "buttonTextEdge": "Installer l'extension Edge", + "close": "Fermer", + "dontShowAgain": "Ne plus m'afficher ceci", + "installExtensionText": "Installer l'extension pour l'intégration de Google Calendar et Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Connexion à la réunion en cours…" + }, + "connection": { + "ATTACHED": "Joint", + "AUTHENTICATING": "Authentification", + "AUTHFAIL": "Échec de l'authentification", + "CONNECTED": "Connecté", + "CONNECTING": "Connexion en cours", + "CONNFAIL": "Échec de la connexion", + "DISCONNECTED": "Déconnecté", + "DISCONNECTING": "Déconnexion en cours", + "ERROR": "Erreur", + "FETCH_SESSION_ID": "Obtention d'un identifiant de session…", + "GET_SESSION_ID_ERROR": "Obtenir une erreur d'identifiant de session: {{code}}", + "GOT_SESSION_ID": "Obtention d'un identifiant de session… Terminée", + "LOW_BANDWIDTH": "La vidéo de {{displayName}} a été coupée pour économiser de la bande passante", + "RECONNECTING": "Un problème de réseau est survenu. Reconnexion en cours…" + }, + "connectionindicator": { + "address": "Adresse :", + "audio_ssrc": "Audio SSRC :", + "bandwidth": "Bande passante estimée :", + "bitrate": "Débit binaire :", + "bridgeCount": "Nombre de serveur : ", + "codecs": "Codecs (A/V) :", + "connectedTo": "Connecté à :", + "e2eeVerified": "Chiffrement de bout en bout vérifié", + "framerate": "Fréquence d'images :", + "less": "Afficher moins", + "localaddress": "Adresse locale :", + "localaddress_plural": "Adresses locales :", + "localport": "Port local :", + "localport_plural": "Ports locaux :", + "maxEnabledResolution": "débit max", + "more": "Afficher plus", + "no": "non", + "packetloss": "Perte de paquet :", + "quality": { + "good": "Bonne", + "inactive": "Inactive", + "lost": "Perdue", + "nonoptimal": "Non-optimale", + "poor": "Faible" + }, + "remoteaddress": "Adresse distante :", + "remoteaddress_plural": "Adresses distantes :", + "remoteport": "Port distant :", + "remoteport_plural": "Ports distants :", + "resolution": "Résolution :", + "savelogs": "Enregistrer les logs", + "status": "Connexion :", + "transport": "Tranport :", + "transport_plural": "Transports :", + "video_ssrc": "Video SSRC :", + "yes": "oui" + }, + "dateUtils": { + "earlier": "Plus tôt", + "today": "Aujourd'hui", + "yesterday": "Hier" + }, + "deepLinking": { + "appNotInstalled": "L'application mobile {{app}} est nécessaire pour rejoindre cette réunion sur votre téléphone.", + "description": "Il ne s'est rien passé? Nous avons essayés de démarrer votre réunion dans l'application de bureau {{app}}. Veuillez réessayer ou démarrer la réunion dans l'application Web {{app}}.", + "descriptionNew": "Rien ne s'est passé ? Nous avons essayé de lancer votre réunion dans l'application de bureau {{app}}.

Vous pouvez essayer à nouveau ou la lancer dans l'application web.", + "descriptionWithoutWeb": "Rien ne s'est passé? Nous avons essayé de démarrer votre réunion dans l'application bureau {{app}}.", + "downloadApp": "Télécharger l'application", + "downloadMobileApp": "Télécharger l'application depuis le Store", + "ifDoNotHaveApp": "Si vous n'avez pas encore l'application:", + "ifHaveApp": "Si vous avez déjà installé l'application:", + "joinInApp": "Rejoindre la réunion en utilisant l'application", + "joinInAppNew": "Rejoindre depuis l'application", + "joinInBrowser": "Rejoindre depuis le navigateur", + "launchMeetingLabel": "Comment voulez-vous rejoindre la réunion ?", + "launchWebButton": "Démarrer dans l'application Web", + "noMobileApp": "Vous n'avez pas l'application ?", + "openApp": "Continuer vers l'application", + "termsAndConditions": "En continuant, vous acceptez nos conditions générales d’utilisation.", + "title": "Démarrage de votre réunion dans {{app}} en cours…", + "titleNew": "Démarrage de votre réunion…", + "tryAgainButton": "Veuillez réessayer sur votre ordinateur", + "unsupportedBrowser": "Il semble que vous utilisez un navigateur non supporté." + }, + "defaultLink": "p. ex. {{url}}", + "defaultNickname": "p. ex. Jane Pink", + "deviceError": { + "cameraError": "Échec de l'accès à votre caméra", + "cameraPermission": "Erreur lors de l'obtention de l'autorisation de la caméra", + "microphoneError": "Échec de l'accès à votre micro", + "microphonePermission": "Erreur lors de l'obtention de l'autorisation du micro" + }, + "deviceSelection": { + "hid": { + "callControl": "Contrôle des appels", + "connectedDevices": "Appareils connectés", + "deleteDevice": "Supprimer un appareil", + "pairDevice": "Connecter un appareil" + }, + "noPermission": "L'autorisation n'a pas été accordée", + "previewUnavailable": "Prévisualisation non disponible", + "selectADevice": "Sélectionner un dispositif", + "testAudio": "Jouer un son de test" + }, + "dialIn": { + "screenTitle": "Bilan des appels" + }, + "dialOut": { + "statusMessage": "est maintenant {{status}}" + }, + "dialog": { + "Back": "Retour", + "Cancel": "Annuler", + "IamHost": "Je suis l'hôte", + "Ok": "OK", + "Remove": "Supprimer", + "Share": "Partager", + "Submit": "Envoyer", + "WaitForHostMsg": "La conférence n'a pas encore démarré. Si vous êtes l'hôte, veuillez vous authentifier. Sinon, veuillez attendre que l'hôte arrive.", + "WaitingForHost": "En attente de l'hôte…", + "WaitingForHostButton": "Attendre l'hôte", + "WaitingForHostTitle": "En attente de l'hôte…", + "Yes": "Oui", + "accessibilityLabel": { + "Cancel": "Annuler (quiter la fenêtre)", + "Ok": "Ok (Sauvegarder et quiter la fenêtre)", + "close": "Fermer la fenêtre", + "liveStreaming": "Diffusion en direct", + "sharingTabs": "Options de partage" + }, + "add": "Ajouter", + "addMeetingNote": "Ajouter une note à cette conférence", + "addOptionalNote": "Ajouter une note (optionnel):", + "allow": "Autoriser", + "allowToggleCameraDialog": "Autorisez-vous {{initiatorName}} à changer votre mode de caméra?", + "allowToggleCameraTitle": "Autoriser-vous le changement de mode de caméra?", + "alreadySharedVideoMsg": "Un autre membre partage déjà une vidéo. Cette conférence permet le partage d'une seule vidéo à la fois.", + "alreadySharedVideoTitle": "Seulement une vidéo à la fois peut être partagée", + "applicationWindow": "Fenêtre d'application", + "cameraConstraintFailedError": "Votre caméra ne répond pas à certaines exigences.", + "cameraNotFoundError": "Impossible de trouver la caméra.", + "cameraNotSendingData": "Il est impossible d'accéder à la caméra. Veuillez vérifier si une autre application utilise actuellement ce dispositif, sélectionner un autre dispositif à partir du menu des paramètres ou essayer de recharger l'application.", + "cameraNotSendingDataTitle": "Impossible d'accéder à la caméra", + "cameraPermissionDeniedError": "Vous n'avez pas reçu l'autorisation d'utiliser votre caméra. Vous pouvez toujours rejoindre la conférence, mais les autres membres ne pourront pas vous voir. Utilisez le bouton de caméra dans la barre d'adresse pour corriger cela.", + "cameraUnknownError": "Impossible d'utiliser la caméra pour une raison inconnue.", + "cameraUnsupportedResolutionError": "Votre caméra ne prend pas en charge la résolution vidéo nécessaire.", + "close": "Fermer", + "conferenceDisconnectMsg": "Vous devriez vérifier votre connexion au réseau. Reconnexion dans {{seconds}} sec…", + "conferenceDisconnectTitle": "Vous avez été déconnecté.", + "conferenceReloadMsg": "Nous tentons de résoudre le problème. Reconnexion dans {{seconds}} sec…", + "conferenceReloadTitle": "Malheureusement, une erreur s'est produite.", + "confirm": "Confirmer", + "confirmNo": "Non", + "confirmYes": "Oui", + "connectError": "Oups! Une erreur s'est produite. La connexion à la conférence a échouée.", + "connectErrorWithMsg": "Oups! Une erreur s'est produite. La connexion à la conférence a échoué : {{msg}}", + "connecting": "Connexion en cours", + "contactSupport": "Communiquez avec le service de soutien", + "copied": "Copié", + "copy": "Copier", + "dismiss": "Rejeter", + "displayNameRequired": "Un nom d'affichage est requis", + "done": "Terminé", + "e2eeDescription": "Le chiffrement de bout en bout est actuellement expérimental. Veuillez garder en tête que l'activation du chiffrement de bout en bout désactivera les services fournis côté serveur tels que : l'enregistrement, la diffusion en direct et la participation par téléphone. Gardez également en tête que la réunion ne fonctionnera que pour les personnes qui se connectent à partir de navigateurs prenant en charge les flux insérables.", + "e2eeDisabledDueToMaxModeDescription": "Impossible d'activer le chiffrement de bout en bout en raison du trop grand nombre de participants à la conférence.", + "e2eeLabel": "Activer le chiffrement de Bout-en-Bout", + "e2eeWarning": "ATTENTION : Tous les participants de cette réunion ne semblent pas prendre en charge le chiffrement de bout en bout. Si vous activez le chiffrement, ils ne pourront ni vous voir, ni vous entendre.", + "e2eeWillDisableDueToMaxModeDescription": "ATTENTION: le chiffrement de bout en bout sera automatiquement arrêté si plus de participants joignent la conférence.", + "embedMeeting": "Intégrer la réunion", + "enterDisplayName": "Veuillez saisir votre nom d'affichage", + "error": "Erreur", + "externalInstallationMsg": "Vous devez installer notre extension de partage de bureau.", + "externalInstallationTitle": "Extension requise", + "goToStore": "Rendez-vous sur notre boutique en ligne", + "gracefulShutdown": "Notre service est actuellement hors service pour l'entretien. Veuillez réessayer plus tard.", + "grantModeratorDialog": "Êtes-vous sûr de vouloir rendre ce participant modérateur ?", + "grantModeratorTitle": "Nommer modérateur", + "hide": "Masquer", + "hideShareAudioHelper": "Ne plus afficher ce dialogue", + "incorrectPassword": "Nom d'utilisateur ou mot de passe incorrect", + "incorrectRoomLockPassword": "Mot de passe incorrect", + "inlineInstallExtension": "Installer maintenant", + "inlineInstallationMsg": "Vous devez installer notre extension de partage de bureau.", + "internalError": "Oups! Une erreur s'est produite. L'erreur suivante est survenue : {{error}}", + "internalErrorTitle": "Erreur interne.", + "kickMessage": "Aïe! Vous avez été expulsé de la réunion!", + "kickParticipantButton": "Expulser", + "kickParticipantDialog": "Êtes-vous certain de vouloir expulser ce participant?", + "kickParticipantTitle": "Expulser ce membre?", + "kickTitle": "Expulsé de la réunion", + "linkMeeting": "Relier la conférence", + "linkMeetingTitle": "Relier la conférence à Salesforce", + "liveStreaming": "Diffusion en direct", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossible durant l'enregistrement", + "liveStreamingDisabledForGuestTooltip": "Les invités ne peuvent pas démarrer la diffusion en direct.", + "liveStreamingDisabledTooltip": "Démarrage de la diffusion en direct désactivé.", + "localUserControls": "Contrôles de l'utilisateur local", + "lockMessage": "Échec du verrouillage de la conférence.", + "lockRoom": "Ajouter un mot de passe à la réunion", + "lockTitle": "Échec du verrouillage", + "login": "Connexion", + "loginQuestion": "Voulez-vous vraiment vous connecter et quitter la conférence?", + "logoutQuestion": "Êtes-vous certain de vouloir vous déconnecter et arrêter la conférence?", + "logoutTitle": "Déconnexion", + "maxUsersLimitReached": "La limite du nombre maximum de membres a été atteinte. La conférence est pleine. Veuillez communiquer avec l'hôte de la réunion ou réessayer plus tard.", + "maxUsersLimitReachedTitle": "Limite du nombre de membres maximum atteinte", + "micConstraintFailedError": "Votre micro ne répond pas à certaines exigences", + "micNotFoundError": "Impossible de trouver le micro.", + "micNotSendingData": "Impossible d'accéder à votre micro. Veuillez sélectionner un autre dispositif à partir du menu des paramètres ou essayer de recharger l'application.", + "micNotSendingDataTitle": "Impossible d'accéder à votre micro", + "micPermissionDeniedError": "Vous n'avez pas accordé l'autorisation d'utilisation de votre micro. Vous pouvez toujours rejoindre la conférence, mais les autres membres ne pourront pas vous entendre. Utilisez le bouton de caméra dans la barre d'adresse pour remédier à cela.", + "micTimeoutError": "Impossible de démarrer la source audio. Délai dépassé!", + "micUnknownError": "Impossible d'utiliser le micro pour une raison inconnue.", + "moderationAudioLabel": "Autoriser les participants à réactiver leur micro", + "moderationVideoLabel": "Autoriser les participants à démarrer leur vidéo", + "muteEveryoneDialog": "Êtes-vous sûr de vouloir couper les micros de tout le monde? Vous ne pourrez plus réactiver leur micro, mais ils pourront l'activer par eux-mêmes à tout moment.", + "muteEveryoneDialogModerationOn": "Les participants peuvent demander à parler n'importe quand", + "muteEveryoneElseDialog": "Une fois leur micro coupé, vous ne pourrez plus le réactiver, mais ils pourront l'activer par eux-mêmes à tout moment.", + "muteEveryoneElseTitle": "Couper le micro de tout le monde sauf de {{whom}}?", + "muteEveryoneElsesVideoDialog": "Une fois la caméra coupée, vous ne pourrez plus la rallumer, mais ils peuvent la rallumer à tout moment.", + "muteEveryoneElsesVideoTitle": "Couper la vidéo de tout le monde sauf {{whom}}?", + "muteEveryoneSelf": "vous", + "muteEveryoneStartMuted": "Tout le monde démarre avec le micro coupé", + "muteEveryoneTitle": "Couper le micro de tout le monde ?", + "muteEveryonesVideoDialog": "Êtes-vous sûr de vouloir couper la caméra de tout le monde? Vous ne pourrez pas la réactiver, mais ils peuvent la remettre à tout moment.", + "muteEveryonesVideoDialogModerationOn": "Les participants peuvent demander à activer leur caméra n'importe quand.", + "muteEveryonesVideoDialogOk": "Désactiver", + "muteEveryonesVideoTitle": "Couper la caméra de tout le monde?", + "muteParticipantBody": "Vous ne pourrez pas réactiver leur micro, mais ils peuvent le réactiver eux-mêmes à tout moment.", + "muteParticipantButton": "Discrétion", + "muteParticipantDialog": "Êtes-vous certain de vouloir désactiver le micro de ce participant? Vous ne pourrez pas le réactiver, mais il peut le réactiver lui-même à tout moment.", + "muteParticipantTitle": "Désactiver le micro de ce membre?", + "muteParticipantsVideoBody": "Vous ne pourrez pas rallumer la caméra, mais ils peuvent la rallumer à tout moment.", + "muteParticipantsVideoBodyModerationOn": "Ni vous ni le participant ne pourront rallumer la caméra.", + "muteParticipantsVideoButton": "Couper la caméra", + "muteParticipantsVideoDialog": "Êtes-vous sûr(e) de vouloir couper la caméra de ce participant? Seul le participant pourra ensuite réactiver son micro à tout moment.", + "muteParticipantsVideoDialogModerationOn": "Êtes-vous sûr(e) de vouloir couper la caméra de ce participant? Ni vous ni le participant ne pourront la réactiver ensuite ?", + "muteParticipantsVideoTitle": "Couper la caméra de ce participant?", + "noDropboxToken": "Pas de jeton Dropbox valide", + "password": "Mot de passe", + "passwordLabel": "Mot de passe", + "passwordNotSupported": "La mise en place d'un mot de passe de réunion n'est pas prise en charge.", + "passwordNotSupportedTitle": "Mot de passe non pris en charge", + "passwordRequired": "Mot de passe requis", + "permissionCameraRequiredError": "L'autorisation caméra est nécessaire pour participer aux réunions avec vidéo. Merci de l'accorder dans les paramètres", + "permissionErrorTitle": "Permission nécessaire", + "permissionMicRequiredError": "L'autorisation microphone est nécessaire pour participer aux réunions avec son. Merci de l'accorder dans les paramètres", + "popupError": "Votre navigateur bloque les fenêtres surgissantes provenant de ce site. Veuillez activer les fenêtres surgissantes dans les paramètres de sécurité de votre navigateur et réessayer.", + "popupErrorTitle": "Fenêtre surgissante bloquée", + "readMore": "plus", + "recentlyUsedObjects": "Vos objets récemment utilisés", + "recording": "Enregistrement", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossible durant le direct", + "recordingDisabledForGuestTooltip": "Les invités ne peuvent pas démarrer l'enregistrement.", + "recordingDisabledTooltip": "Démarrage de l'enregistrement désactivé.", + "rejoinNow": "Rejoindre maintenant", + "remoteControlAllowedMessage": "{{user}} a accepté votre demande de contrôle à distance!", + "remoteControlDeniedMessage": "{{user}} a refusé votre demande de contrôle à distance!", + "remoteControlErrorMessage": "Une erreur s'est produite lors de la demande d'autorisation de contrôle à distance de {{user}}!", + "remoteControlRequestMessage": "Voulez-vous permettre à {{user}} de contrôler votre bureau à distance?", + "remoteControlShareScreenWarning": "Notez que si vous appuyez sur « Permettre », vous partagerez votre écran!", + "remoteControlStopMessage": "La séance de contrôle à distance est terminée!", + "remoteControlTitle": "Contrôle du bureau à distance", + "removePassword": "Supprimer un mot de passe", + "removeSharedVideoMsg": "Êtes-vous certain de vouloir supprimer votre vidéo partagée?", + "removeSharedVideoTitle": "Supprimer la vidéo partagée", + "renameBreakoutRoomLabel": "Nom de la salle annexe", + "renameBreakoutRoomTitle": "Renommer la salle annexe", + "reservationError": "Erreur du système de réservation", + "reservationErrorMsg": "Code d'erreur : {{code}}, message : {{msg}}", + "retry": "Réessayer", + "screenSharingAudio": "Partager l'audio", + "screenSharingFailed": "Oups! Quelque chose s'est mal passé, nous n'avons pas pu démarrer le partage d'écran!", + "screenSharingFailedTitle": "Echec du partage d'écran!", + "screenSharingFailedToInstall": "Oups! L'installation de votre extension de partage d'écran a échouée.", + "screenSharingFailedToInstallTitle": "L'installation de l'extension de partage d'écran a échouée", + "screenSharingFirefoxPermissionDeniedError": "Une erreur s'est produite lors de la tentative de partage d'écran. Veuillez vous assurer d'avoir donné votre autorisation.", + "screenSharingFirefoxPermissionDeniedTitle": "Oups! Il est impossible de démarrer le partage d'écran!", + "screenSharingPermissionDeniedError": "Oups! Une erreur s'est produite avec les autorisations de l'extension de partage d'écran. Veuillez recharger et réessayer.", + "searchInSalesforce": "Rechercher dans Salesforce", + "searchResults": "Résultats de recherche ({{count}})", + "searchResultsDetailsError": "Un problème est survenu en récupérant les données de recherche.", + "searchResultsError": "Un problème est survenu en récupérant des données.", + "searchResultsNotFound": "Aucun résultat trouvé.", + "searchResultsTryAgain": "Essayer d'utiliser d'autres mots clé.", + "sendPrivateMessage": "Vous avez récemment reçu un message privé. Aviez-vous l'intention d'y répondre en privé, ou vouliez-vous envoyer votre message au groupe?", + "sendPrivateMessageCancel": "Envoyer au groupe", + "sendPrivateMessageOk": "Envoyer en privé", + "sendPrivateMessageTitle": "Envoyer en privé?", + "serviceUnavailable": "Service non disponible", + "sessTerminated": "Appel terminé", + "sessTerminatedReason": "L'appel a été terminé", + "sessionRestarted": "L'appel est relancé par la passerelle", + "shareAudio": "Continuer", + "shareAudioAltText": "Pour partager le contenu voulu, naviguer vers \"Onglet du Navigateur\", sélectionner le contenu, activer le bouton \"partager l'audio\" et enfin cliquer sur le bouton \"partager\"", + "shareAudioTitle": "Comment partager le son", + "shareAudioWarningD1": "vous devez cesser le partage d'écran avant de partager votre son.", + "shareAudioWarningD2": "vous devez partager votre écran à nouveau et cocher l'option \"Partager l'audio\".", + "shareAudioWarningH1": "Si vous voulez partager uniquement de l'audio:", + "shareAudioWarningTitle": "Vous devez cesser de partager l'écran avant de partager l'audio", + "shareMediaWarningGenericH2": "Si vous voulez partager votre écran et l'audio", + "shareScreenWarningD1": "vous devez arrêter le partage d'audio avant de partager votre écran.", + "shareScreenWarningD2": "vous devez arrêter le partage d'audio, démarrer le partage d'écran et cocher l'option \"Partager l'audio\".", + "shareScreenWarningH1": "Si vous voulez partager uniquement votre écran:", + "shareScreenWarningTitle": "Vous devez cesser de partager votre audio avant de partager votre écran", + "shareVideoLinkError": "Veuillez fournir un lien correct.", + "shareVideoTitle": "Partager une vidéo", + "shareYourScreen": "Partager votre écran", + "shareYourScreenDisabled": "Le partage d'écran est désactivé.", + "shareYourScreenDisabledForGuest": "Les invités ne peuvent pas partager leur écran.", + "sharedVideoDialogError": "Erreur: URL invalide", + "sharedVideoLinkPlaceholder": "lien YouTube ou lien vidéo direct", + "show": "Afficher", + "start": "Démarrer ", + "startLiveStreaming": "Démarrer la diffusion en direct", + "startRecording": "Commencer l'enregistrement", + "startRemoteControlErrorMessage": "Une erreur s'est produite lors de la tentative de démarrage de la séance de contrôle à distance!", + "stopLiveStreaming": "Arrêter la diffusion en direct", + "stopRecording": "Arrêter l'enregistrement", + "stopRecordingWarning": "Êtes-vous certain de vouloir arrêter l'enregistrement?", + "stopStreamingWarning": "Êtes-vous certain de vouloir arrêter la diffusion en direct?", + "streamKey": "Clé de diffusion en direct", + "thankYou": "Merci d'utiliser {{appName}}!", + "token": "jeton", + "tokenAuthFailed": "Désolé, vous n'avez pas la permission de rejoindre cet appel.", + "tokenAuthFailedReason": { + "audInvalid": "Valeur `aud` invalide. Cela doit être `jitsi`.", + "contextNotFound": "L'objet `context` est absent du payload.", + "expInvalid": "Valeur `exp` invalide.", + "featureInvalid": "Fonctionnalité invalide: {{feature}}, probablement pas encore implémentée.", + "featureValueInvalid": "Valeur invalide pour la fonctionnalité: {{feature}}.", + "featuresNotFound": "L'objet `feature` est absent du payload.", + "headerNotFound": "Header non trouvé.", + "issInvalid": "Valeur `iss` invalide. Cela doit être `chat`.", + "kidMismatch": "Key ID (kid) ne correspond pas au sub.", + "kidNotFound": "Key ID (kid) manquant.", + "nbfFuture": "La valeur `nbf` est dans le futur.", + "nbfInvalid": "Valeur `nbf` invalide.", + "payloadNotFound": "Payload non trouvé", + "tokenExpired": "Jeton expiré" + }, + "tokenAuthFailedTitle": "Échec de l'authentification", + "tokenAuthFailedWithReasons": "Désolé, vous n'êtes pas autorisé à rejoindre l'appel. La raison possible : {{reason}}.", + "tokenAuthUnsupported": "Token URL n'est pas supporté.", + "transcribing": "Transcription en cours", + "unlockRoom": "Supprimer le mot de passe de la réunion", + "user": "Utilisateur", + "userIdentifier": "Identifiant utilisateur", + "userPassword": "Mot de passe d'utilisateur", + "verifyParticipantConfirm": "Ils correspondent", + "verifyParticipantDismiss": "Ils ne correspondent pas", + "verifyParticipantQuestion": "EXPÉRIMENTAL: Demander au participant {{participantName}} s'il voit le même contenu dans le même ordre.", + "verifyParticipantTitle": "Vérification utilisateur", + "videoLink": "Lien de la vidéo", + "viewUpgradeOptions": "Voir les options de mise à jour", + "viewUpgradeOptionsContent": "Pour obtenir un accès illimité à des capacités premium comme l'enregistrement, les transcriptions, diffusion RTMP et plus, vous devez mettre à jour votre plan.", + "viewUpgradeOptionsTitle": "Vous avez découvert une capacité premium !", + "whiteboardLimitContent": "Désolé, la limite d'utilisateur du tableau blanc a été atteinte.", + "whiteboardLimitReference": "Pour plus d'informations merci de visiter", + "whiteboardLimitReferenceUrl": "notre site web", + "whiteboardLimitTitle": "Utilisation du tableau blanc limitée", + "yourEntireScreen": "Votre écran entier" + }, + "documentSharing": { + "title": "Document partagé" + }, + "e2ee": { + "labelToolTip": "Le son et la vidéo de cette conférence sont chiffrés de bout en bout" + }, + "embedMeeting": { + "title": "Intégrer cette réunion" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Votre choix: {{rating}}" + }, + "average": "Moyenne", + "bad": "Mauvaise", + "detailsLabel": "Dites-nous en plus.", + "good": "Bonne", + "rateExperience": "Évaluez votre expérience de cette conférence", + "veryBad": "Très mauvaise", + "veryGood": "Très bonne" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Vignettes vidéos" + } + }, + "giphy": { + "noResults": "Aucun résultat de recherche :(", + "search": "Rechercher dans GIPHY" + }, + "incomingCall": { + "answer": "Réponse", + "audioCallTitle": "Appel entrant", + "decline": "Rejeter", + "productLabel": "via Jitsi Meet", + "videoCallTitle": "Appel vidéo entrant" + }, + "info": { + "accessibilityLabel": "Afficher l'information", + "addPassword": "Ajouter un mot de passe", + "cancelPassword": "Annuler le mot de passe", + "conferenceURL": "Lien:", + "copyNumber": "Copier le numéro", + "country": "Pays", + "dialANumber": "Pour rejoindre votre réunion, composez un de ces numéros et entrez le NIP.", + "dialInConferenceID": "NIP :", + "dialInNotSupported": "Désolé, les appels internes ne sont pas pris en charge pour le moment.", + "dialInNumber": "Appel interne :", + "dialInSummaryError": "Erreur lors de la récupération des informations d'appel interne. Veuillez réessayer plus tard.", + "dialInTollFree": "Sans frais", + "genericError": "Oups, une erreur s'est produite.", + "inviteLiveStream": "Pour voir la diffusion en directe de cette réunion, cliquez sur ce lien : {{url}}", + "invitePhone": "Pour rejoindre depuis un téléphone, composez : {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Vous cherchez un numéro d'appel différent ?\nConsultez la liste de numéros d'appel de la réunion : {{url}}\n\n\nSi vous appelez également via un téléphone de salle, vous pouvez vous connecter sans audio : {{silentUrl}}", + "inviteSipEndpoint": "Pour rejoindre en utilisant l'adresse SIP, entrez ceci : {{sipUri}}", + "inviteTextiOSInviteUrl": "Clickez le lien suivant pour rejoindre: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Si vous téléphonez avec un téléphone de réunion, utilisez ce lien pour rejoindre sans vous connecter en audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} vous invite à une réunion.", + "inviteTextiOSPhone": "Pour rejoindre par téléphone, utilisez ce numéro: {{number}},,{{conferenceID}}#. Si vous voulez utiliser un autre numéro, voici la liste complête: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Vous avez été invité à rejoindre une réunion.", + "inviteURLFirstPartPersonal": "{{name}} vous invite à une réunion.\n", + "inviteURLSecondPart": "\nRejoindre la réunion:\n{{url}}\n", + "label": "Informations de réunion", + "liveStreamURL": "Diffusion en direct :", + "moreNumbers": "Plus de numéros", + "noNumbers": "Aucun numéro d'appel trouvé", + "noPassword": "Aucun", + "noRoom": "Vous n'avez pas précisé de salle pour l'appel interne.", + "numbers": "Numéros d'appel", + "password": "Mot de passe:", + "reachedLimit": "Vous avez atteint la limite de votre abonnement.", + "sip": "adresse SIP", + "sipAudioOnly": "Adresse SIP en audio uniquement", + "title": "Partager", + "tooltip": "Lien de partage et informations d'appel interne pour cette réunion", + "upgradeOptions": "Veuillez vérifier les options de mise à niveau" + }, + "inlineDialogFailure": { + "msg": "Nous avons rencontré un obstacle.", + "retry": "Réessayer", + "support": "Soutien", + "supportMsg": "Si cela se produit à nouveau, veuillez contacter" + }, + "inviteDialog": { + "alertText": "L'invitation de certains participants a échoué.", + "header": "Inviter", + "searchCallOnlyPlaceholder": "Entrer le numéro de téléphone", + "searchPeopleOnlyPlaceholder": "Rechercher des participants", + "searchPlaceholder": "Participant ou numéro de téléphone", + "send": "Envoyer" + }, + "jitsiHome": "{{logo}} Logo, liens vers la page d'accueil", + "keyboardShortcuts": { + "focusLocal": "Épingler votre vidéo", + "focusRemote": "Épingler la vidéo d'une autre personne", + "fullScreen": "Afficher ou quitter le mode plein écran", + "giphyMenu": "Activer ou désactiver le menu GIPHY", + "keyboardShortcuts": "Raccourcis clavier", + "localRecording": "Afficher ou masquer les commandes d'enregistrement local", + "mute": "Activer ou désactiver votre micro", + "pushToTalk": "Maintenir la touche pour parler", + "raiseHand": "Lever ou abaisser votre main", + "showSpeakerStats": "Afficher les statistiques d'intervenant", + "toggleChat": "Ouvrir ou fermer le clavardage", + "toggleFilmstrip": "Afficher ou masquer les icônes vidéos", + "toggleScreensharing": "Basculer entre la caméra et le partage d'écran", + "toggleShortcuts": "Afficher ou masquer les raccourcis clavier", + "videoMute": "Démarrer ou arrêter votre caméra", + "videoQuality": "Gérer la qualité d'appel" + }, + "largeVideo": { + "screenIsShared": "Vous êtes en train de partager votre écran", + "showMeWhatImSharing": "M'afficher ce que je partage" + }, + "liveStreaming": { + "busy": "Libération de ressources de diffusion en cours. Veuillez réessayer dans quelques minutes.", + "busyTitle": "Tous les diffuseurs sont actuellement occupés", + "changeSignIn": "Changer de compte.", + "choose": "Sélectionner une diffusion en direct", + "chooseCTA": "Sélectionner une option de diffusion en direct. Vous êtes actuellement connecté en tant que {{email}}.", + "enterStreamKey": "Saisissez votre clé de diffusion en direct YouTube ici.", + "error": "Échec de la diffusion en direct. Veuillez réessayer.", + "errorAPI": "Une erreur s'est produite lors de l'accès à vos diffusions YouTube.Veuillez réessayer de vous connecter.", + "errorLiveStreamNotEnabled": "La diffusion en direct n'est pas activée pour {{email}}. Veuillez activer la diffusion en direct ou vous connecter à un compte pour lequel la diffusion en direct est activée.", + "expandedOff": "La diffusion en direct a été arrêtée", + "expandedOn": "La réunion est actuellement diffusée sur YouTube.", + "expandedPending": "Le démarrage de la diffusion en direct est en cours…", + "failedToStart": "Le démarrage de la diffusion en direct a échoué", + "getStreamKeyManually": "La récupération de diffusions en direct a échoué. Essayez d'obtenir une clé de diffusion en direct sur YouTube.", + "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", + "onBy": "{{name}} démarré la diffusion en continu", + "pending": "Démarrage de la diffusion en direct…", + "serviceName": "Service de diffusion en direct", + "sessionAlreadyActive": "Cette session est déjà en cours d'enregistrement ou de diffusion.", + "signIn": "Se connecter avec Google", + "signInCTA": "Connectez-vous ou entrez votre clé de diffusion en direct de YouTube", + "signOut": "Se déconnecter", + "signedInAs": "Vous êtes actuellement connecté en tant que :", + "start": "Démarrer une diffusion en direct", + "streamIdHelp": "Qu'est-ce que c'est?", + "title": "Diffusion en direct", + "unavailableTitle": "Diffusion en direct non disponible", + "youtubeTerms": "Conditions d'utilisation de YouTube" + }, + "lobby": { + "backToKnockModeButton": "Aucun mot de passe, demander à rejoindre plutôt", + "chat": "Chat", + "dialogTitle": "Mode salle d'attente", + "disableDialogContent": "Le mode salle d'attente est actuellement activé. Cette fonctionnalité garantit que les participants indésirables ne peuvent pas rejoindre votre réunion. Souhaitez-vous la désactiver?", + "disableDialogSubmit": "Désactiver", + "emailField": "Saisissez votre adresse email", + "enableDialogPasswordField": "Définir le mot de passe (optionnel)", + "enableDialogSubmit": "Activer", + "enableDialogText": "Le mode salle d'attente vous permet de protéger votre réunion en autorisant les personnes à entrer qu'après l'approbation formelle d'un modérateur.", + "enterPasswordButton": "Saisissez un mot de passe de réunion", + "enterPasswordTitle": "Saisissez le mot de passe pour rejoindre la réunion", + "errorMissingPassword": "Veuillez saisir le mot de passe de la réunion", + "invalidPassword": "Mot de passe invalide", + "joinRejectedMessage": "Votre requête pour rejoindre une réunion a été refusée par un modérateur.", + "joinRejectedTitle": "Demande d'accès rejetée.", + "joinTitle": "Rejoindre une réunion", + "joinWithPasswordMessage": "Tentative de rejoindre avec mot de passe, patientez s'il vous plait…", + "joiningMessage": "Vous allez rejoindre une réunion dès que quelqu'un aura accepté votre demande", + "joiningTitle": "Demander à rejoindre une réunion…", + "joiningWithPasswordTitle": "Rejoindre avec mot de passe…", + "knockButton": "Demander à rejoindre", + "knockTitle": "Quelqu'un souhaite rejoindre la réunion", + "knockingParticipantList": "Liste des participants en attente", + "lobbyChatStartedNotification": "Un modérateur dialogue en salle d'attente avec {{attendee}}", + "lobbyChatStartedTitle": "Un modérateur dialogue en salle d'attente avec vous.", + "lobbyClosed": "La salle d'attente a été fermée.", + "nameField": "Saisissez votre nom", + "notificationLobbyAccessDenied": "{{targetParticipantName}} a été refusé par {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} a été accepté par {{originParticipantName}}", + "notificationLobbyDisabled": "Le mode salle d'attente a été désactivé par {{originParticipantName}}", + "notificationLobbyEnabled": "Le mode salle d'attente a été activé par {{originParticipantName}}", + "notificationTitle": "Salle d'attente", + "passwordJoinButton": "Rejoindre", + "title": "Salle d'attente", + "toggleLabel": "Activer la salle d'attente" + }, + "localRecording": { + "clientState": { + "off": "Désactivé", + "on": "Prêt", + "unknown": "Inconnu" + }, + "dialogTitle": "Commandes d'enregistrement local", + "duration": "Durée", + "durationNA": "N. D.", + "encoding": "Encodage", + "label": "LOR", + "labelToolTip": "L'enregistrement local est en cours", + "localRecording": "Enregistrement local", + "me": "Moi", + "messages": { + "engaged": "Enregistrement local activé.", + "finished": "Enregistrement de la séance {{token}} terminé. Veuillez envoyer le fichier d'enregistrement au modérateur.", + "finishedModerator": "Enregistrement de la séance {{token}} terminé. L'enregistrement de la piste locale a été enregistrée. Veuillez demander aux autres participants de soumettre leurs enregistrements.", + "notModerator": "Vous n'êtes pas le modérateur. Vous ne pouvez pas démarrer ou arrêter l'enregistrement local." + }, + "moderator": "Modérateur", + "no": "Non", + "participant": "Participant", + "participantStats": "Statistiques de participant", + "selectTabTitle": "🎥 Veuillez sélectionner cet onglet pour enregistrer", + "sessionToken": "Jeton de séance", + "start": "Commencer l'enregistrement", + "stop": "Arrêter l'enregistrement", + "stopping": "Arrêt de l'enregistrement", + "wait": "Patienter pendant la sauvegarde de votre enregistrement.", + "yes": "Oui" + }, + "lockRoomPassword": "mot de passe", + "lockRoomPasswordUppercase": "Mot de passe", + "lonelyMeetingExperience": { + "button": "Inviter d'autres personnes", + "youAreAlone": "Vous êtes le seul participant de la réunion" + }, + "me": "moi", + "notify": { + "OldElectronAPPTitle": "Faille de sécurité !", + "allowAction": "Permettre", + "allowedUnmute": "Vous pouvez réactiver votre écran, votre caméra ou partager votre écran.", + "audioUnmuteBlockedDescription": "Le rétablissement du son a été bloqué temporairement en raison de limites système.", + "audioUnmuteBlockedTitle": "Rétablissement du son bloqué!", + "chatMessages": "Messages de chat", + "connectedOneMember": "{{name}} a rejoint la réunion", + "connectedThreePlusMembers": "{{name}} et {{count}} autres ont rejoint la réunion", + "connectedTwoMembers": "{{first}} et {{second}} ont rejoint la réunion", + "dataChannelClosed": "Qualité vidéo dégradée", + "dataChannelClosedDescription": "Le canal de communication avec le Bridge a été interrompu, la qualité vidéo se trouve limitée à sa valeur la plus faible.", + "disabledIframe": "L'intégration Iframe est uniquement destinée à des démos, cet appel se terminera dans {{timeout}} minutes.", + "disabledIframeSecondary": "L'intégration Iframe de {{domaine}} est uniquement destinée à des démos, cet appel se terminera dans {{timeout}} minutes.", + "disconnected": "déconnecté", + "displayNotifications": "Afficher les notifications pour", + "dontRemindMe": "Ne pas me le rappeler", + "focus": "Sujet de la conférence", + "focusFail": "{{component}} non disponible; réessayez dans {{ms}} sec", + "gifsMenu": "GIPHY", + "grantedTo": "Droits de modérateur accordés à {{to}}!", + "groupTitle": "Notifications", + "hostAskedUnmute": "Le modérateur souhaite vous donner la parole", + "invitedOneMember": "{{displayName}} a été invité", + "invitedThreePlusMembers": "{{name}} et {{count}} autres ont été invités", + "invitedTwoMembers": "{{first}} et {{second}} ont été invités", + "joinMeeting": "Rejoindre", + "kickParticipant": "{{kicked}} a été expulsé par {{kicker}}", + "leftOneMember": "{{name}} a quitté la réunion", + "leftThreePlusMembers": "{{name}} et beaucoup d'autres ont quitté la réunion", + "leftTwoMembers": "{{first}} et {{second}} ont quitté la réunion", + "linkToSalesforce": "Lien à Salesforce", + "linkToSalesforceDescription": "Vous pouvez lier le résumé de la conférence à un objet Salesforce.", + "linkToSalesforceError": "Impossible de relier la conférence à Salesforce", + "linkToSalesforceKey": "Relier cette conférence", + "linkToSalesforceProgress": "Liaison de la conférence à Salesforce…", + "linkToSalesforceSuccess": "La conférence a été reliée à Salesforce", + "localRecordingStarted": "{{name}} a commencé un enregistrement local.", + "localRecordingStopped": "{{name}} a arrêté un enregistrement local.", + "me": "Moi", + "moderationInEffectCSDescription": "Merci de lever la main si vous voulez partager votre écran.", + "moderationInEffectCSTitle": "Le partage d'écran est interdit par le modérateur", + "moderationInEffectDescription": "Merci de levez la main pour demander la parole.", + "moderationInEffectTitle": "Votre micro est coupé par le modérateur", + "moderationInEffectVideoDescription": "Merci de lever la main si vous souhaitez démarrer votre caméra.", + "moderationInEffectVideoTitle": "Votre caméra est coupée par le modérateur", + "moderationRequestFromModerator": "Le modérateur souhaite que vous activiez votre micro", + "moderationRequestFromParticipant": "Souhaite parler", + "moderationStartedTitle": "Modération démarrée", + "moderationStoppedTitle": "Modération arrêtée", + "moderationToggleDescription": "par {{participantDisplayName}}", + "moderator": "Droits de modérateur accordés!", + "muted": "Vous avez joint la conversation en sourdine.", + "mutedRemotelyDescription": "Vous pouvez toujours activer votre micro pour prendre la parole. Désactivez votre micro quand vous terminez pour éviter les bruits parasites.", + "mutedRemotelyTitle": "Votre micro a été coupé par {{participantDisplayName}}!", + "mutedTitle": "Vous êtes en sourdine!", + "newDeviceAction": "Utiliser", + "newDeviceAudioTitle": "Nouveau dispositif audio détecté", + "newDeviceCameraTitle": "Nouvelle caméra détectée", + "noiseSuppressionDesktopAudioDescription": "La suppression de bruit ne peut pas être activée en même temps que la partage audio du système, veuillez le désactiver et réessayer.", + "noiseSuppressionFailedTitle": "Échec du démarrage de la suppression de bruit", + "noiseSuppressionStereoDescription": "La suppression de bruit d'une source stéréo n'est pas encore supportée.", + "oldElectronClientDescription1": "Vous semblez utiliser une ancienne version du client Jitsi Meet qui présente des failles de sécurité connues. Veuillez vous assurer de mettre à jour vers notre ", + "oldElectronClientDescription2": "dernière build", + "oldElectronClientDescription3": " rapidement !", + "participantWantsToJoin": "souhaite rejoindre la réunion", + "participantsWantToJoin": "souhaitent rejoindre la réunion", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) supprimé par un autre participant", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) défini par un autre participant", + "raiseHandAction": "Lever la main", + "raisedHand": "{{name}} voudrait parler.", + "reactionSounds": "Bloquer les réactions sonores", + "reactionSoundsForAll": "Bloquer les réactions sonores pour tous", + "screenShareNoAudio": " La case Partager l'audio n'a pas été cochée dans l'écran de sélection de la fenêtre.", + "screenShareNoAudioTitle": "La case Partager l'audio n'a pas été cochée", + "screenSharingAudioOnlyDescription": "Veuillez noter qu'en partageant votre écran, vous impactez le mode “Meilleure Performance” et vous utilisez plus de bande passante.", + "screenSharingAudioOnlyTitle": "Mode \"Meilleure Performance\"", + "selfViewTitle": "Vous pouvez toujours rétablir l'affichage de votre propre vidéo dans les paramètres", + "somebody": "Quelqu'un", + "startSilentDescription": "Rejoignez la réunion de nouveau pour activer l'audio", + "startSilentTitle": "Vous avez rejoint sans sortie audio!", + "suboptimalBrowserWarning": "Nous craignons que votre expérience de réunion en ligne ne soit bonne ici. Nous cherchons des moyens d'améliorer cela, mais d'ici-là, essayez d'utiliser l'un des navigateurs supportés.", + "suboptimalExperienceTitle": "Avertissement de navigateur", + "unmute": "Rétablir le son", + "videoMutedRemotelyDescription": "Vous pouvez toujours la réactiver.", + "videoMutedRemotelyTitle": "Votre caméra a été coupée par {{participantDisplayName}}!", + "videoUnmuteBlockedDescription": "Le rétablissement de la vidéo a été bloqué temporairement en raison de limites système.", + "videoUnmuteBlockedTitle": "Rétablissement de la caméra bloqué !", + "viewLobby": "Voir la salle d'attente", + "waitingParticipants": "{{waitingParticipants}} personnes", + "whiteboardLimitDescription": "Veuillez sauvegarder votre progression, car la limite d'utilisation du tableau blanc sera bientôt atteinte et celui-ci sera fermé.", + "whiteboardLimitTitle": "Utiilisation du tableau blanc" + }, + "participantsPane": { + "actions": { + "admit": "Accepter", + "admitAll": "Tout accepter", + "allow": "Autoriser les participants à:", + "allowVideo": "permettre la vidéo", + "askUnmute": "Demander de réactiver le micro", + "audioModeration": "Rouvrir leur micro", + "blockEveryoneMicCamera": "Bloquer tous les micros et caméras", + "breakoutRooms": "Salles annexes", + "invite": "Inviter quelqu'un", + "moreModerationActions": "Options de modération supplémentaires", + "moreModerationControls": "Options de modération supplémentaires", + "moreParticipantOptions": "Options supplémentaires pour les participants", + "mute": "Couper le micro", + "muteAll": "Couper le micro de tout le monde", + "muteEveryoneElse": "Couper le micro de tous les autres", + "reject": "Refuser", + "stopEveryonesVideo": "Couper toutes les caméras", + "stopVideo": "Couper la vidéo", + "unblockEveryoneMicCamera": "Débloquer tous les micros et caméras", + "videoModeration": "Démarrer leur vidéo" + }, + "close": "Fermer", + "headings": { + "lobby": "Salle d'attente ({{count}})", + "participantsList": "Participants de la réunion ({{count}})", + "visitorRequests": "(Demande {{count}} )", + "visitors": "Visiteurs {{count}}", + "waitingLobby": "Dans la salle d'attente ({{count}})" + }, + "search": "Rechercher des participants", + "title": "Participants" + }, + "passwordDigitsOnly": "Jusqu'à {{number}} chiffres", + "passwordSetRemotely": "réglé par un autre membre", + "pinParticipant": "Épingler - {{participantName}}", + "pinnedParticipant": "Participant toujours affiché", + "polls": { + "answer": { + "skip": "Passer", + "submit": "Envoyer" + }, + "by": "Par {{ name }}", + "create": { + "addOption": "Ajouter une option", + "answerPlaceholder": "Option {{index}}", + "cancel": "Annuler", + "create": "Créer un sondage", + "pollOption": "Option {{index}}", + "pollQuestion": "Question du sondage", + "questionPlaceholder": "Poser une question", + "removeOption": "Supprimer l'option", + "send": "Envoyer" + }, + "errors": { + "notUniqueOption": "Les options doivent être uniques" + }, + "notification": { + "description": "Ouvrez l'onglet des sondages pour voter", + "title": "Un nouveau sondage a été ajouté à la réunion" + }, + "results": { + "changeVote": "Changer le vote", + "empty": "Il n'y a pas encore de sondages dans cette réunion. Démarrez un sondage ici !", + "hideDetailedResults": "Masquer les détails", + "showDetailedResults": "Afficher les détails", + "vote": "Voter" + } + }, + "poweredby": "optimisé par", + "prejoin": { + "audioAndVideoError": "Erreur audio et video:", + "audioDeviceProblem": "Il y a un problème avec votre périphérique audio", + "audioOnlyError": "Erreur audio :", + "audioTrackError": "N'a pas pu créer la piste audio.", + "callMe": "Appelez-moi", + "callMeAtNumber": "Appelez-moi à ce numéro :", + "calling": "Appel", + "configuringDevices": "Configuration des appareils…", + "connectedWithAudioQ": "Êtes-vous connecté avec le microphone ?", + "connection": { + "good": "Votre connexion Internet est bonne !", + "nonOptimal": "Votre connexion n'est pas optimale", + "poor": "Vous avez une mauvaise connexion" + }, + "connectionDetails": { + "audioClipping": "Attendez vous à ce que votre son soit coupé.", + "audioHighQuality": "Votre son sera de bonne qualité.", + "audioLowNoVideo": "Attendez vous à une faible qualité audio et aucune vidéo", + "goodQuality": "Impressionnant ! La qualité de vos médias sera excellente", + "noMediaConnectivity": "Nous n'avons pas pu trouver un moyen d'établir une connectivité multimédia pour ce test. Cela est généralement causé par un pare-feu ou un NAT.", + "noVideo": "Attendez vous à ce que votre qualité vidéo soit très mauvaise.", + "undetectable": "Si vous ne parvenez toujours pas à passer des appels dans le navigateur, nous vous recommandons de vous assurer que vos haut-parleurs, microphone et caméra sont correctement configurés, que vous avez accordé à votre navigateur les droits d'utiliser votre microphone et votre caméra et que la version de votre navigateur est à jour. Si vous rencontrez toujours des difficultés pour appeler, vous devez contacter le développeur de l'application Web.", + "veryPoorConnection": "Attendez vous à ce que la qualité de votre appel soit très mauvaise", + "videoFreezing": "Attendez vous à ce que votre vidéo saute, soit noire, et pixelisée.", + "videoHighQuality": "Votre vidéo sera de bonne qualité", + "videoLowQuality": "Votre vidéo sera de basse qualité en terme d'images par seconde et de résolution.", + "videoTearing": "Attendez vous à ce que votre vidéo soit pixélisée ou contienne des artefacts visuels." + }, + "copyAndShare": "Copier & partager le lien", + "dialInMeeting": "Participez à la réunion", + "dialInPin": "Participez à la réunion et saisir le code PIN :", + "dialing": "Numérotation", + "doNotShow": "Ne plus afficher ceci", + "errorDialOut": "Impossible de composer le numéro", + "errorDialOutDisconnected": "Impossible de composer le numéro. Déconnecté", + "errorDialOutFailed": "Impossible de composer le numéro. L'appel a échoué", + "errorDialOutStatus": "Erreur lors de l'obtention de l'état d'appel sortant", + "errorMissingName": "Veuillez entrer votre nom pour entrer en conférence", + "errorNoPermissions": "Vous devez permettre l'accès microphone et caméra", + "errorStatusCode": "Erreur de numérotation, code d'état: {{status}}", + "errorValidation": "La validation du numéro a échoué", + "iWantToDialIn": "Je veux me connecter", + "initiated": "Appel lancé", + "joinAudioByPhone": "Rejoindre avec l'audio du téléphone", + "joinMeeting": "Rejoindre la réunion", + "joinMeetingInLowBandwidthMode": "Rejoindre en mode bande passante réduite", + "joinWithoutAudio": "Rejoignez sans microphone", + "keyboardShortcuts": "Activer les raccourcis clavier", + "linkCopied": "Lien copié dans le presse-papiers", + "lookGood": "Il semble que votre microphone fonctionne correctement", + "or": "ou", + "premeeting": "Pré-séance", + "proceedAnyway": "Continuer quand même", + "screenSharingError": "Erreur de partage d'écran:", + "startWithPhone": "Commencez avec l'audio du téléphone", + "unsafeRoomConsent": "Je comprends les risques et je veux quand même rejoindre cette réunion", + "videoOnlyError": "Erreur vidéo:", + "videoTrackError": "Impossible de créer une piste vidéo.", + "viewAllNumbers": "voir tous les numéros" + }, + "presenceStatus": { + "busy": "Occupé", + "calling": "Appel en cours…", + "connected": "Connecté", + "connecting": "Connexion en cours…", + "connecting2": "Connexion en cours*…", + "disconnected": "Déconnecté", + "expired": "Expiré", + "ignored": "Ignoré", + "initializingCall": "Initialisation de l'appel…", + "invited": "Invité", + "rejected": "Refusé", + "ringing": "Sonnerie" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Définir votre nom d'affichage", + "setEmailInput": "Entrer votre adresse courriel", + "setEmailLabel": "Définir votre courriel Gravatar", + "title": "Profil" + }, + "raisedHand": "Aimerait prendre la parole", + "raisedHandsLabel": "Nombre de mains levées", + "record": { + "already": { + "linked": "L'enregistrement est déjà relié à cette session." + }, + "type": { + "account": "Compte", + "contact": "Contact", + "lead": "Piste", + "opportunity": "Opportunité", + "owner": "Propriétaire" + } + }, + "recording": { + "authDropboxText": "Téléverser à Dropbox", + "availableSpace": "Espace disponible : {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)", + "beta": "BETA", + "busy": "Libération de ressources pour l'enregistrement. Veuillez réessayer dans quelques minutes.", + "busyTitle": "Tous les enregistreurs sont actuellement occupés", + "copyLink": "Copier lien", + "error": "L'enregistrement a échoué. Veuillez réessayer.", + "errorFetchingLink": "Erreur de récupération du lien d'enregistrement.", + "expandedOff": "L'enregistrement a été arrêté.", + "expandedOn": "La réunion est actuellement enregistrée.", + "expandedPending": "Démarrage de l'enregistrement en cours…", + "failedToStart": "Échec du démarrage de l'enregistrement", + "fileSharingdescription": "Partager l'enregistrement avec les participants de la réunion", + "highlight": "Souligner", + "highlightMoment": "Souligner un moment", + "highlightMomentDisabled": "Vous ne pouvez souligner des moments que pendant une réunion", + "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.", + "live": "EN DIRECT", + "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", + "localRecordingStartWarning": "Assurez-vous d’arrêter l’enregistrement vidéo avant de quitter la réunion afin de pouvoir le sauvegarder.", + "localRecordingStartWarningTitle": "Arrêter l’enregistrement pour le sauvegarder", + "localRecordingVideoStop": "Arrêter votre vidéo va aussi arrêter votre enregistrement local. Êtes-vous sûrs de vouloir continuer ?", + "localRecordingVideoWarning": "Pour enregistrer votre vidéo, vous devez avoir celle-ci active au moment de commencer l’enregistrement.", + "localRecordingWarning": "Assurez-vous de sélectionner l’onglet courant pour utiliser le bon son et la bonne vidéo.", + "loggedIn": "Connecté en tant que {{userName}}", + "noMicPermission": "La piste microphone ne peut pas être créée. Veuillez autoriser l’utilisation du microphone.", + "noStreams": "Aucun flux audio ou vidéo détectés.", + "off": "L'enregistrement est arrêté", + "offBy": "{{name}} a arrêté l'enregistrement", + "on": "Enregistrement", + "onBy": "{{name}} a démarré l'enregistrement", + "onlyRecordSelf": "Enregistrer seulement mon audio et ma vidéo.", + "pending": "Enregistrement de la réunion en préparation…", + "rec": "REC", + "recordAudioAndVideo": "Enregistrer l'audio et la vidéo", + "recordTranscription": "Enregistrer la transcription", + "saveLocalRecording": "Sauvegarder l’enregistrement local (Beta)", + "serviceDescription": "Votre enregistrement sera sauvegardé par le service d'enregistrement", + "serviceDescriptionCloud": "Enregistrement Cloud", + "serviceDescriptionCloudInfo": "Les conférences enregistrées sont automatiquement supprimées 24h après leur heure d'enregistrement.", + "serviceName": "Service d'enregistrement", + "sessionAlreadyActive": "Cette session est déjà en cours d'enregistrement ou de diffusion.", + "showAdvancedOptions": "Afficher les options avancées", + "signIn": "Se connecter", + "signOut": "Se déconnecter", + "surfaceError": "Veuillez sélectionner l’onglet courant.", + "title": "Enregistrement", + "unavailable": "Oups! Le {{serviceName}} n'est pas disponible pour le moment. Nous nous efforçons de régler le problème. Veuillez réessayer plus tard.", + "unavailableTitle": "Enregistrement non disponible", + "uploadToCloud": "Envoyer vers le cloud" + }, + "screenshareDisplayName": "Écran {{name}}", + "sectionList": { + "pullToRefresh": "Tirer pour rafraîchir" + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Paramètres", + "calendar": { + "about": "L'intégration de l'agenda de {{appName}} est utilisée pour accéder en toute sécurité à votre agenda pour qu'il puisse lire les événements à venir.", + "disconnect": "Déconnexion", + "microsoftSignIn": "Se connecter avec Microsoft", + "signedIn": "Accès aux événements de votre agenda en cours pour {{email}}. Cliquez sur le bouton de déconnexion ci-dessous pour terminer l'accès aux événements d'agenda.", + "title": "Calendrier" + }, + "desktopShareFramerate": "Images par seconde pour le Partage d'écran", + "desktopShareHighFpsWarning": "Augmenter le nombre d'images par seconde pour le partage d'écran peut impacter votre bande passante. Vous devez repartager l'écran pour que ces paramètres soient utilisés.", + "desktopShareWarning": "Vous devez repartager l'écran pour que ces paramètres soient utilisés.", + "devices": "Dispositifs", + "followMe": "Tous les participants me suivent", + "framesPerSecond": "images par seconde", + "incomingMessage": "un message arrive", + "language": "Langue", + "loggedIn": "Connecté en tant que {{name}}", + "maxStageParticipants": "Nombre maximum de participants pouvant être épinglé sur l’affichage principal", + "microphones": "Microphones", + "moderator": "Modérateur", + "moderatorOptions": "Options de modérateur", + "more": "Plus", + "name": "Nom", + "noDevice": "Aucun", + "notifications": "Notifications", + "participantJoined": "un participant arrive", + "participantKnocking": "un participant en salle d’attente", + "participantLeft": "un participant quitte", + "playSounds": "Jouer un son quand", + "reactions": "Il y a une réaction à la réunion", + "sameAsSystem": "Identique au système ({{label}})", + "selectAudioOutput": "Sortie audio", + "selectCamera": "Caméra", + "selectMic": "Micro", + "selfView": "Affichage de votre propre vidéo", + "shortcuts": "Raccourcis", + "speakers": "Haut-parleurs", + "startAudioMuted": "Tous les participants débutent en sourdine", + "startReactionsMuted": "Tout le monde commence avec les réactions sonores bloquées", + "startVideoMuted": "Tous les participants débutent masqués", + "talkWhileMuted": "vous parlez en étant muet", + "title": "Paramètres", + "video": "Vidéo" + }, + "settingsView": { + "advanced": "Avancé", + "alertCancel": "Annuler", + "alertOk": "OK", + "alertTitle": "Alerte", + "alertURLText": "L'URL de serveur saisi n'est pas valide", + "apply": "Appliquer", + "buildInfoSection": "Information de version", + "conferenceSection": "Conférence", + "disableCallIntegration": "Désactiver l'intégration d'appels native", + "disableCrashReporting": "Désactiver les rapports de plantage", + "disableCrashReportingWarning": "Etes-vous certain de vouloir désactiver les rapports de plantage ? Le paramètre sera effectif après le redémarrage de l'application.", + "disableP2P": "Désactiver le mode pair à pair", + "displayName": "Nom d'affichage", + "displayNamePlaceholderText": "Ex : Jean Dupond", + "email": "Courriel", + "emailPlaceholderText": "email@example..com", + "gavatarMessage": "Si votre email est associé à un compte Gravatar, nous allons l’utiliser pour afficher votre image de profil.", + "goTo": "Aller à", + "header": "Paramètres", + "help": "Aide", + "links": "Liens", + "privacy": "Confidentialité", + "profileSection": "Profil", + "sdkVersion": "Version du SDK", + "serverURL": "URL du serveur", + "showAdvanced": "Afficher les paramètres avancés", + "startCarModeInLowBandwidthMode": "Commencer le mode voiture en mode bande passante réduite", + "startWithAudioMuted": "Démarrer avec l'audio en sourdine", + "startWithVideoMuted": "Démarrer avec la vidéo en sourdine", + "terms": "Conditions d’utilisations", + "version": "Version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVoulez-vous appeler depuis votre téléphone ?\n\n{{defaultDialInNumber}}Voici la liste des numéros d'appels pour cette réunion :\n{{dialInfoPageUrl}}", + "mainText": "Cliquez sur ce lien pour rejoindre la réunion :\n{{roomUrl}}" + }, + "speaker": "Intervenant", + "speakerStats": { + "angry": "En colère", + "disgusted": "Dégoûté", + "displayEmotions": "Afficher réactions", + "fearful": "Effrayé", + "happy": "Content", + "hours": "{{count}} h", + "minutes": "{{count}} min", + "name": "Nom", + "neutral": "Neutre", + "sad": "Triste", + "search": "Recherche", + "searchHint": "Recherche des participants", + "seconds": "{{count}} s", + "speakerStats": "Statistiques d'intervenant", + "speakerTime": "Temps d'intervention", + "surprised": "Surpris" + }, + "startupoverlay": { + "genericTitle": "La conférence a besoin d'utiliser votre microphone et votre caméra.", + "policyText": " ", + "title": "{{app}} doit utiliser votre micro et votre caméra." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Rejoindre à nouveau", + "text": "Appuyez sur le bouton Rejoindre pour vous reconnecter.", + "title": "Votre appel vidéo a été interrompu parce que cet ordinateur est tombé en veille." + }, + "termsView": { + "title": "Conditions d'utilisation" + }, + "toggleTopPanelLabel": "Basculer le panneau supérieur", + "toolbar": { + "Settings": "Paramètres", + "accessibilityLabel": { + "Settings": "Basculement des paramètres", + "audioOnly": "Basculement du mode audio uniquement", + "audioRoute": "Sélectionner le dispositif audio", + "boo": "Bou", + "breakoutRooms": "Rejoindre / quitter une salle annexe", + "callQuality": "Gestion de la qualité d'appel", + "carmode": "Mode voiture", + "cc": "Basculement des sous-titres", + "chat": "Basculement de la fenêtre de clavardage", + "clap": "Applaudir", + "closeChat": "Fermer la discussion instantanée", + "closeMoreActions": "Fermer le menu plus d'actions", + "closeParticipantsPane": "Fermer le panneau des participants", + "collapse": "Plier", + "document": "Basculement du document partagé", + "documentClose": "Fermer le document partagé", + "documentOpen": "Ouvrir le document partagé", + "download": "", + "embedMeeting": "Intégrer la réunion", + "endConference": "Terminer la réunion pour tout le monde", + "enterFullScreen": "Passer en mode plein écran", + "enterTileView": "Passer en vue mosaïque", + "exitFullScreen": "Quitter le mode plein écran", + "exitTileView": "Quitter la vue mosaïque", + "expand": "Développer", + "feedback": "Laisser un commentaire", + "fullScreen": "Basculement de l'affichage plein écran", + "giphy": "Activer/désactiver le menu GIPHY", + "grantModerator": "donner des droits de modérateur", + "hangup": "Quitter l'appel", + "heading": "Barre d'outils", + "help": "", + "hideWhiteboard": "Masquer le tableau blanc", + "invite": "Inviter des personnes", + "kick": "Expulser le participant", + "laugh": "Rire", + "leaveConference": "Quitter la réunion", + "like": "Approuver", + "linkToSalesforce": "Lien à Salesforce", + "lobbyButton": "Activer / Désactiver le mode salle d'attente", + "localRecording": "Basculement des commandes d'enregistrement local", + "lockRoom": "Basculement du mot de passe de la réunion", + "lowerHand": "Baisser la main", + "moreActions": "Basculement du menu d'actions supplémentaires", + "moreActionsMenu": "Menu d'actions supplémentaires", + "moreOptions": "Voir plus d'options", + "mute": "Basculement de la sourdine", + "muteEveryone": "Couper le micro de tout le monde", + "muteEveryoneElse": "Couper le micro de tous les autres", + "muteEveryoneElsesVideoStream": "Couper la caméra de tous les autres", + "muteEveryonesVideoStream": "Couper la caméra de tout le monde", + "muteGUMPending": "Connection de votre microphone", + "noiseSuppression": "Suppression du bruit", + "openChat": "Ouvrir le chat", + "participants": "Participants", + "pip": "Basculement du mode image dans l'image", + "privateMessage": "", + "profile": "Modifier votre profil", + "raiseHand": "Basculement de la main levée", + "reactions": "Réactions", + "reactionsMenu": "Ouvrir / fermer le menu réactions", + "recording": "Basculement de l'enregistrement", + "remoteMute": "Mettre le participant en sourdine", + "remoteVideoMute": "Couper la caméra du participant", + "security": "Options de sécurité", + "selectBackground": "Selectionner un arrière-plan", + "selfView": "Afficher votre vidéo", + "shareRoom": "Inviter quelqu'un", + "shareYourScreen": "Basculement du partage d'écran", + "shareaudio": "Partager l'audio", + "sharedvideo": "Basculement du partage de vidéo", + "shortcuts": "Basculement des raccourcis", + "show": "Afficher en premier plan", + "showWhiteboard": "Afficher le tableux blanc", + "silence": "Silence", + "speakerStats": "Basculement des statistiques d'intervenant", + "stopScreenSharing": "Arrêter le partage d'écran", + "stopSharedVideo": "Arrêter la vidéo partagée", + "surprised": "Surpris", + "tileView": "Basculement de l'affichage mosaïque", + "toggleCamera": "Basculement de la caméra", + "toggleFilmstrip": "Afficher ou masquer les vignettes vidéo", + "unmute": "Rétablir le son", + "videoblur": "Alterner le brouillage vidéo", + "videomute": "Basculement de la sourdine vidéo", + "videomuteGUMPending": "Connexion de votre caméra", + "videounmute": "Démarrer la vidéo" + }, + "addPeople": "Ajouter des personnes à votre appel", + "audioOnlyOff": "Désactiver le mode bande passante faible", + "audioOnlyOn": "Activer le mode bande passante faible", + "audioRoute": "Sélectionner le dispositif audio", + "audioSettings": "Paramètres audio", + "authenticate": "Authentification", + "boo": "Huer", + "callQuality": "Gestion de la qualité d'appel", + "chat": "Ouvrir / Fermer le clavardage", + "clap": "Applaudir", + "closeChat": "Fermer le clavardage", + "closeParticipantsPane": "Fermer le panneau des participants", + "closeReactionsMenu": "Fermer le menu réactions", + "disableNoiseSuppression": "Arrêter la suppression du bruit", + "disableReactionSounds": "Vous pouvez interdire les réactions sonores à cette réunion", + "documentClose": "Fermer le document partagé", + "documentOpen": "Ouvrir le document partagé", + "download": "Télécharger nos applications", + "e2ee": "Chiffrement de Bout-en-Bout", + "embedMeeting": "Intégrer la réunion", + "enableNoiseSuppression": "Activer la suppression du bruit", + "endConference": "Terminer la réunion pour tout le monde", + "enterFullScreen": "Afficher le mode plein écran", + "enterTileView": "Passer à l'affichage mosaïque", + "exitFullScreen": "Quitter le mode plein écran", + "exitTileView": "Quitter l'affichage mosaïque", + "feedback": "Laisser un commentaire", + "giphy": "Activer/désactiver le menu GIPHY", + "hangup": "Quitter", + "help": "Aide", + "invite": "Inviter des personnes", + "joinBreakoutRoom": "Rejoindre salle annexe", + "laugh": "Rire", + "leaveBreakoutRoom": "Quitter salle annexe", + "leaveConference": "Quitter la réunion", + "like": "Approuver", + "linkToSalesforce": "Lien à Salesforce", + "lobbyButtonDisable": "Désactiver le mode salle d'attente / contrôle des participant(e)s", + "lobbyButtonEnable": "Activer le mode salle d'attente / contrôle des participant(e)s", + "login": "Connexion", + "logout": "Déconnexion", + "lowerYourHand": "Abaisser votre main", + "moreActions": "Plus d'actions", + "moreOptions": "Plus d'options", + "mute": "Activer / Réactiver le son", + "muteEveryone": "Couper le micro à tout le monde", + "muteEveryonesVideo": "Couper la caméra de tout le monde", + "muteGUMPending": "Connection de votre microphone", + "noAudioSignalDesc": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, envisagez de changer le périphérique.", + "noAudioSignalDescSuggestion": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, pensez à utiliser le périphérique suivant :", + "noAudioSignalDialInDesc": "Vous pouvez également appeler en utilisant :", + "noAudioSignalDialInLinkDesc": "Numéros d'appel", + "noAudioSignalTitle": "Il n'y a pas d'entrée provenant de votre micro !", + "noiseSuppression": "Suppression du bruit", + "noisyAudioInputDesc": "Il semble que votre microphone soit bruyant, veuillez le couper ou changer de périphérique.", + "noisyAudioInputTitle": "Votre microphone semble être bruyant !", + "openChat": "Ouvrir le clavardage", + "openReactionsMenu": "Ouvrir le menu Réactions", + "participants": "Participants", + "pip": "Passer en mode image dans l'image", + "privateMessage": "Envoyer un message privé", + "profile": "Modifier votre profil", + "raiseHand": "Lever / Abaisser votre main", + "raiseYourHand": "Lever votre main", + "reactionBoo": "Envoyer réaction huer", + "reactionClap": "Envoyer réaction applaudir", + "reactionLaugh": "Envoyer réaction rire", + "reactionLike": "Envoyer réaction approuver", + "reactionSilence": "Envoyer réaction silence", + "reactionSurprised": "Envoyer réaction surprise", + "reactions": "Reactions", + "security": "Options de sécurité", + "selectBackground": "Sélectionner un arrière-plan", + "shareRoom": "Inviter quelqu'un", + "sharedvideo": "Partager une vidéo", + "shortcuts": "Voir les raccourcis", + "showWhiteboard": "Afficher le tableau blanc", + "silence": "Silence", + "speakerStats": "Statistiques d'intervenant", + "startScreenSharing": "Démarrer le partage d'écran", + "startSubtitles": "Activer les sous-titres", + "startvideoblur": "Brouiller mon arrière plan", + "stopAudioSharing": "Arrêter le partage son", + "stopScreenSharing": "Arrêter le partage d'écran", + "stopSharedVideo": "Arrêter la vidéo", + "stopSubtitles": "Désactiver les sous-titres", + "stopvideoblur": "Désactiver le brouillage d'arrière-plan", + "surprised": "Surpris", + "talkWhileMutedPopup": "Vous essayez de parler? Vous êtes en sourdine.", + "tileViewToggle": "Basculement de l'affichage mosaïque", + "toggleCamera": "Basculement de la caméra", + "unmute": "Rétablir le son", + "videoSettings": "Paramètres vidéo", + "videomute": "Démarrer / Arrêter la caméra", + "videomuteGUMPending": "Connexion de votre caméra", + "videounmute": "Démarrer la caméra" + }, + "transcribing": { + "ccButtonTooltip": "Activer / Désactiver les sous-titres", + "error": "Échec de la transcription. Veuillez réessayer.", + "expandedLabel": "La transcription est actuellement activée", + "failedToStart": "Échec du démarrage de la transcription", + "labelToolTip": "La réunion est transcrite", + "off": "La transcription est arrêtée", + "on": "La transcription est activée", + "pending": "Préparation de la transcription de la réunion en cours…", + "sourceLanguageDesc": "Actuellement, la langue de la réunion est sélectionnée à {{sourceLanguage}}.
Vous pouvez la changer à partir de ", + "sourceLanguageHere": "ici", + "start": "Activer l'affichage des sous-titres", + "stop": "Désactiver l'affichage des sous-titres", + "subtitles": "sous-titres", + "subtitlesOff": "off", + "tr": "PI" + }, + "unpinParticipant": "Désépingler - {{participantName}}", + "userMedia": { + "grantPermissions": "Veuillez accorder l'autorisation d'utiliser votre caméra et votre micro." + }, + "videoSIPGW": { + "busy": "Libération des ressources en cours. Veuillez réessayer dans quelques minutes.", + "busyTitle": "Le service de Salle est actuellement occupé.", + "errorAlreadyInvited": "{{displayName}} a déjà été invité", + "errorInvite": "La conférence n'est pas encore configurée. Veuillez réessayer plus tard.", + "errorInviteFailed": "Nous nous efforçons de régler ce problème. Veuillez réessayer plus tard.", + "errorInviteFailedTitle": "L'invitation de {{displayName}} a échoué", + "errorInviteTitle": "Erreur lors de l'invitation de la salle", + "pending": "{{displayName}} a été invité" + }, + "videoStatus": { + "adjustFor": "Ajuster pour:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Vous êtes en mode bande passante faible. Dans ce mode, vous ne recevrez que le partage audio et le partage d’écran.", + "bestPerformance": "la meilleure performance", + "callQuality": "Qualité d'appel", + "hd": "HD", + "hdTooltip": "Visionnement de vidéo en haute définition", + "highDefinition": "Haute définition", + "highestQuality": "Meilleure qualité", + "labelTooiltipNoVideo": "Aucune vidéo", + "labelTooltipAudioOnly": "Mode bande passante faible activé", + "ld": "LD", + "ldTooltip": "Visionnement de vidéo en basse définition", + "lowDefinition": "Basse définition", + "onlyAudioAvailable": "Seulement l'audio est disponible", + "onlyAudioSupported": "Ce navigateur prend seulement l'audio en charge.", + "performanceSettings": "Paramètres de performance", + "recording": "Enregistrement en cours", + "sd": "SD", + "sdTooltip": "Visionnement de vidéo en définition standard", + "standardDefinition": "Définition standard", + "streaming": "Diffusion en direct en cours" + }, + "videothumbnail": { + "connectionInfo": "Informations de la connexion", + "domute": "Discrétion", + "domuteOthers": "Couper le micro de tous les autres", + "domuteVideo": "Couper la caméra", + "domuteVideoOfOthers": "Couper la caméra des autres", + "flip": "Miroir", + "grantModerator": "Donner des droits de modérateur", + "hideSelfView": "Masquer l'affichage de votre propre vidéo", + "kick": "Exclure", + "mirrorVideo": "Inverser ma vidéo", + "moderator": "Modérateur", + "mute": "Le membre est en sourdine", + "muted": "Discrétion", + "pinToStage": "Garder affiché", + "remoteControl": "Contrôle à distance", + "screenSharing": "Cette personne partage son écran", + "show": "Afficher en premier plan", + "showSelfView": "Afficher votre propre vidéo", + "unpinFromStage": "Ne plus garder affiché", + "verify": "Vérifier le participant", + "videoMuted": "Caméra coupée", + "videomute": "Le membre a arrêté la caméra" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Arrière-plan actuel: {{background}}", + "selectBackground": "Sélectionner un arrière-plan" + }, + "addBackground": "Ajouter un arrière-plan", + "apply": "Appliquer", + "backgroundEffectError": "Erreur dans l'application de l'effet d'arrière-plan.", + "blur": "Flou", + "deleteImage": "Supprimer l'image", + "desktopShare": "Partage de bureau", + "desktopShareError": "Impossible de créer le partage de bureau", + "image1": "Plage", + "image2": "Mur blanc neutre", + "image3": "Pièce vide blanche", + "image4": "Lampadaire noir", + "image5": "Montagne", + "image6": "Forêt ", + "image7": "Lever de soleil", + "none": "Rien", + "pleaseWait": "Veuillez patienter…", + "removeBackground": "Supprimer l'arrière-plan", + "slightBlur": "Léger flou", + "title": "Arrière-plan virtuel", + "uploadedImage": "Image téléversée {{index}}", + "webAssemblyWarning": "WebAssembly non supporté", + "webAssemblyWarningDescription": "WebAssembly invalidé ou non supporté par ce navigateur" + }, + "visitors": { + "chatIndicator": "(visiteur)", + "labelTooltip": "Nombre de Visiteurs", + "notification": { + "description": "Pour participer lever la main.", + "title": "Vous êtes visiteur dans cette réunion" + } + }, + "volumeSlider": "Curseur de volume", + "welcomepage": { + "accessibilityLabel": { + "join": "Toucher pour rejoindre", + "roomname": "Entrer le nom de la salle" + }, + "addMeetingName": "Ajouter un nom de réunion", + "appDescription": "Profitez de la conversation vidéo avec toute votre équipe. Allez-y, invitez tous ceux que vous connaissez. {{app}} est une solution 100 % libre de conférence vidéo entièrement chiffrée que vous pouvez utiliser en tout temps et gratuitement, sans avoir besoin de compte.", + "audioVideoSwitch": { + "audio": "Voix", + "video": "Vidéo" + }, + "calendar": "Calendrier", + "connectCalendarButton": "Connecter votre agenda", + "connectCalendarText": "Connectez-vous à votre calendrier pour afficher toutes les réunions {{app}}. Ajoutez également les réunions de {{provider}} à votre calendrier et démarrez-les d'un simple clic.", + "enterRoomTitle": "Démarrer une nouvelle réunion", + "go": "Aller", + "goSmall": "Aller", + "headerSubtitle": "Conférences sécurisées et de haute qualité", + "headerTitle": "Jitsi Meet", + "info": "Ret. arr.", + "jitsiOnMobile": "Jitsi sur mobile – télécharger notre application et démarrez des conférences de n'import où", + "join": "CRÉER / REJOINDRE", + "logo": { + "calendar": "Logo Calendar", + "desktopPreviewThumbnail": "Miniature d'aperçu du bureau", + "googleLogo": "Logo Google", + "logoDeepLinking": "Logo Jitsi meet", + "microsoftLogo": "Logo Microsoft", + "policyLogo": "Logo de la politique" + }, + "meetingsAccessibilityLabel": "Réunions", + "mobileDownLoadLinkAndroid": "Télécharger l'application mobile sur Android", + "mobileDownLoadLinkFDroid": "Télécharger l'application mobile sur F-Droid", + "mobileDownLoadLinkIos": "Télécharger l'application mobile sur iOS", + "moderatedMessage": "Ou réserver une URL de réunion à l'avance et où vous êtes le seul modérateur.", + "privacy": "Confidentialité", + "recentList": "Récent", + "recentListDelete": "Supprimer", + "recentListEmpty": "Votre liste récente est actuellement vide. Clavardez avec votre équipe et vous y trouverez toutes vos réunions récentes.", + "recentMeetings": "Vos réunions récentes", + "reducedUIText": "Bienvenue sur {{app}}!", + "roomNameAllowedChars": "Le nom de la réunion ne doit contenir aucun de ces caractères : ?, &, :, ', \", %, #.", + "roomname": "Entrer le nom de la salle", + "roomnameHint": "Entrez le nom ou l'URL de la salle que vous voulez rejoindre. Vous pouvez inventer un nom, mais assurez-vous de le partager avec les participants de la réunion pour qu'ils utilisent le même nom.", + "sendFeedback": "Envoyer un commentaire", + "settings": "Paramètres", + "startMeeting": "Démarrer la conférence", + "terms": "Termes", + "title": "Conférence vidéo sécurisée, riche en fonctionnalités et entièrement gratuite", + "upcomingMeetings": "Vos réunions à venir" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Tableau blanc" + } + } +} diff --git a/lang/main-gl.json b/lang/main-gl.json new file mode 100644 index 0000000..0571a84 --- /dev/null +++ b/lang/main-gl.json @@ -0,0 +1,755 @@ +{ + "addPeople": { + "add": "Convidar", + "countryNotSupported": "Aínda non é posíbel chamar a este destino", + "countryReminder": "Quere chamar fóra dos EEUU? Asegúrese de comezar co código de país!", + "disabled": "Non pode convidar xente.", + "failedToAdd": "Produciuse un erro ao engadir participantes", + "footerText": "As chamadas están desactivadas", + "loading": "Procurar xente e números de teléfono", + "loadingNumber": "Validar número de teléfono", + "loadingPeople": "Procurar xente para convidala", + "noResults": "Non hai resultados", + "noValidNumbers": "Escriba un número de teléfono", + "searchNumbers": "Engadir números de teléfono", + "searchPeople": "Procurar xente", + "searchPeopleAndNumbers": "Procurar xente ou engadir os seus números de teléfono", + "telephone": "Teléfono: {{number}}", + "title": "Convidar xente a esta reunión" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Auriculares", + "none": "Non hai dispositivos de son dispoñíbeis", + "phone": "Teléfono", + "speaker": "Altofalante" + }, + "audioOnly": { + "audioOnly": "Largo de banda escaso" + }, + "calendarSync": { + "addMeetingURL": "Engadir unha ligazón de reunión", + "confirmAddLink": "Quere engadir unha ligazón de Jitsi a esta reunión?", + "error": { + "appConfiguration": "A integración do calendario está configurada apropiadamente.", + "generic": "Produciuse un erro. Comprobe a configuración do seu calendario ou tente cunha recarga.", + "notSignedIn": "Produciuse un erro mentres se autenticaba para ver as citas do calendario. Comprobe a súa configuración e tente de novo iniciar sesión." + }, + "join": "Unirse", + "joinTooltip": "Unirse á reunión", + "nextMeeting": "próxima reunión", + "noEvents": "Non hai fitos futuros programados.", + "ongoingMeeting": "Reunión en curso", + "permissionButton": "Configuración aberta", + "permissionMessage": "Cómpre ter permiso de acceso ao calendario para ver as reunións na aplicación.", + "refresh": "Recargar o calendario", + "today": "Hoxe" + }, + "chat": { + "error": "Erro: a súa mensaxe non se enviou. Razón: {{error}}", + "fieldPlaceHolder": "Escriba a súa mensaxe aquí", + "messageTo": "Mensaxe privada para {{recipient}}", + "messagebox": "Escriba unha mensaxe", + "nickname": { + "popover": "Escolla un alcume", + "title": "Escriba un alcume para utilizar no chat", + "titleWithPolls": "Escriba un alcume para utilizar no chat" + }, + "noMessagesMessage": "Aínda non hai mensaxes na reunión. Comece unha conversación aquí!", + "privateNotice": "Mensaxe privada para {{recipient}}", + "sendButton": "Enviar", + "title": "Chat", + "titleWithPolls": "Chat", + "you": "vostede" + }, + "chromeExtensionBanner": { + "buttonText": "Instalar Extensión Chrome", + "dontShowAgain": "Non mostrar isto máis", + "installExtensionText": "Instala a extensión para a integración con Google Calendar e Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Está a conectar coa reunión…" + }, + "connection": { + "ATTACHED": "Unido", + "AUTHENTICATING": "Autenticando", + "AUTHFAIL": "Fallou a autenticación", + "CONNECTED": "Conectado", + "CONNECTING": "Conectando", + "CONNFAIL": "Fallou a conexión", + "DISCONNECTED": "Desconectado", + "DISCONNECTING": "Desconectando", + "ERROR": "Erro", + "RECONNECTING": "Produciuse un problema na rede. Reconectando…" + }, + "connectionindicator": { + "address": "Enderezo:", + "bandwidth": "Largo de banda estimado:", + "bitrate": "Densidade de bits:", + "bridgeCount": "Conta no servidor: ", + "connectedTo": "Conectado a:", + "framerate": "Imaxes por segundo", + "less": "Amosar menos", + "localaddress": "Enderezo local:", + "localaddress_plural": "Enderezos locais:", + "localport": "Porto local:", + "localport_plural": "Portos locais:", + "more": "Amosar máis", + "packetloss": "Paquete perdido:", + "quality": { + "good": "Ben", + "inactive": "Inactivo", + "lost": "Perdido", + "nonoptimal": "Non-óptimo", + "poor": "Pobre" + }, + "remoteaddress": "Enderezo remoto:", + "remoteaddress_plural": "Enderezos remotos:", + "remoteport": "Porto remoto:", + "remoteport_plural": "Portos remotos:", + "resolution": "Resolución:", + "status": "Conexión:", + "transport": "Transporte:", + "transport_plural": "Transportes:" + }, + "dateUtils": { + "earlier": "Cedo", + "today": "Hoxe", + "yesterday": "Onte" + }, + "deepLinking": { + "appNotInstalled": "Fai falta a aplicación móbil {{app}} para unirse a esta reunión vía teléfono.", + "description": "Non pasa nada? Tentouse lanzar a reunión na aplicación de escritorio {{app}}. Ténteo de novo ou arránquea na aplicación web {{app}}.", + "descriptionWithoutWeb": "Non sucede nada? Pois xa tentamos lanzar a reunión na aplicación de escritorio {{app}}.", + "downloadApp": "Descargar a aplicación", + "launchWebButton": "Lanzar en web", + "openApp": "Continuar coa app", + "title": "Lanzando a reunión en {{app}}…", + "tryAgainButton": "Volver tentar no escritorio" + }, + "defaultLink": "i.e. {{url}}", + "defaultNickname": "ex. Xan da Vila", + "deviceError": { + "cameraError": "Non foi posíbel acceder á súa cámaraº", + "cameraPermission": "Produciuse un erro co permiso da cámara", + "microphoneError": "Fallou o acceso ao micrófono", + "microphonePermission": "Produciuse un erro co permiso do micrófono" + }, + "deviceSelection": { + "noPermission": "Non se concedeu o permiso", + "previewUnavailable": "A visualización non está dispoñíbel", + "selectADevice": "Seleccione un dispositivo", + "testAudio": "Reproducir un son de proba" + }, + "dialOut": { + "statusMessage": "está agora {{status}}" + }, + "dialog": { + "Back": "Volver", + "Cancel": "Anular", + "IamHost": "Eu son o anfitrión", + "Ok": "Ok", + "Remove": "Retirar", + "Share": "Compartir", + "Submit": "Enviar", + "WaitForHostMsg": "A sala aínda non comezou. Se vostede é o anfitrión, autentíquese. Se non, agarde a que o anfitrión chegue.", + "WaitingForHost": "Agardando polo anfitrión…", + "Yes": "Si", + "accessibilityLabel": { + "liveStreaming": "Difusión ao vivo" + }, + "allow": "Permitir", + "alreadySharedVideoMsg": "Outro participante xa está a compartindo un vídeo. Esta sala de conferencia só permite compartir un vídeo á vez.", + "alreadySharedVideoTitle": "Permítese un único vídeo compartido á vez", + "applicationWindow": "Xanela da aplicación", + "cameraConstraintFailedError": "A súa cámara non satisfai algún dos requisitos necesarios.", + "cameraNotFoundError": "Non se atopou unha cámara.", + "cameraNotSendingData": "Non se puido acceder á súa cámara. Comprobe se outra aplicación a está a utilizar, seleccione outro dispositivo no menú de configuración ou tente recargar a aplicación.", + "cameraNotSendingDataTitle": "Non se puido acceder á cámara", + "cameraPermissionDeniedError": "Non concedeu o permiso para utilizar a súa cámara. Aínda así pode unirse á conferencia pero os outros non o verán a vostede. Utilice o botón da cámara na barra de enderezos para arranxalo.", + "cameraUnknownError": "Non se pode utilizar a cámara por algunha razón descoñecida.", + "cameraUnsupportedResolutionError": "A cámara non admite a resolución de vídeo requirida.", + "close": "Pechar", + "conferenceDisconnectMsg": "Pode querer comprobar a conexión de rede. Reconectando en {{seconds}} seg…", + "conferenceDisconnectTitle": "Foi desconectado.", + "conferenceReloadMsg": "Estamos a tentar arranxar isto. Reconectando en {{seconds}} seg…", + "conferenceReloadTitle": "Lamentablemente, algo foi mal.", + "confirm": "Confirmar", + "confirmNo": "Non", + "confirmYes": "Si", + "connectError": "Opa! Algo vai malamente e non podemos conectar coa conferencia.", + "connectErrorWithMsg": "Opa! Algo vai malamente e non podemos conectar coa conferencia: {{msg}}", + "connecting": "Conectando", + "contactSupport": "Contacto de axuda técnica", + "copy": "Copiar", + "dismiss": "Rexeitar", + "displayNameRequired": "Ola! Como se chama?", + "done": "Feito", + "enterDisplayName": "Escriba o seu nome aquí", + "error": "Erro", + "externalInstallationMsg": "Cómpre instalar a nosa extensión para o escritorio compartido.", + "externalInstallationTitle": "Requírese a extensión:", + "goToStore": "Ir á tenda web", + "gracefulShutdown": "O servizo está caído por mantemento. Ténteo outra vez máis adiante.", + "incorrectPassword": "Nome de usuario ou contrasinal incorrecto", + "incorrectRoomLockPassword": "Contrasinal incorrecto", + "inlineInstallExtension": "Instalar agora", + "inlineInstallationMsg": "Cómpre instalar a nosa extensión para o escritorio compartido.", + "internalError": "Opa! Algo foi malamente. Produciuse o seguinte erro: {{erro}}", + "internalErrorTitle": "Erro interno", + "kickMessage": "Pode contactar {{participantDisplayName}} para máis detalles.", + "kickParticipantButton": "Expulsar", + "kickParticipantDialog": "Confirma que quere expulsar a este participante?", + "kickParticipantTitle": "Expulsar a este participante?", + "kickTitle": "Ouh! {{participantDisplayName}} expulsouno da reunión", + "liveStreaming": "Difusión ao vivo", + "liveStreamingDisabledForGuestTooltip": "Os convidados non poden iniciar unha difusión ao vivo.", + "liveStreamingDisabledTooltip": "Desactivouse o inicio de difusión ao vivo", + "lockMessage": "Fallou o bloqueo da sala de conferencia.", + "lockRoom": "Engadir reunión $t(lockRoomPasswordUppercase)", + "lockTitle": "Fallou o bloqueo", + "logoutQuestion": "Confirma que quere saír e parar a conferencia?", + "logoutTitle": "Saír", + "maxUsersLimitReached": "Acadouse o número máximo e límite de participantes. A conferencia está chea. Contacte co propietario da reunión e ténteo de novo máis adiante!", + "maxUsersLimitReachedTitle": "Acadouse o límite máximo de participantes", + "micConstraintFailedError": "O micrófono con cumpre algunha das condicións necesarias", + "micNotFoundError": "Non se atopou o micrófono", + "micNotSendingData": "Reactive o seu micro na configuración do seu computador e axuste o nivel.", + "micNotSendingDataTitle": "O micro está desactivado na configuración do seu sistema", + "micPermissionDeniedError": "Non concedeu permiso para utilizar o micrófono. Aínda así pode unirse á reunión mais os demais non poderán oílo. Utilice o botón de cámara na barra de enderezos para arranxar isto.", + "micUnknownError": "Non pode utilizar o micro por algunha razón descoñecida.", + "muteParticipantBody": "Non poderá activarlles o son a eles mais eles poden activalo para si en calquera momento. ", + "muteParticipantButton": "Silenciar", + "muteParticipantDialog": "Confirma que quere silenciar este participante? Non poderá activalo para eles mais eles poderán activalo para si en calquera momento.", + "muteParticipantTitle": "Silenciar este participante?", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "Configurar un $t(lockRoomPassword) de reunión non é posíbel.", + "passwordNotSupportedTitle": "Non se dispón de $t(lockRoomPasswordUppercase)", + "passwordRequired": "Requírese $t(lockRoomPasswordUppercase)", + "popupError": "O navegador está bloqueando as xanelas emerxentes deste sitio. Active as xanelas emerxentes na configuración de seguranza do seu navegador e ténteo de novo outra vez.", + "popupErrorTitle": "Xanela emerxentes bloqueada", + "recording": "Gravando", + "recordingDisabledForGuestTooltip": "Os convidados non poden facer gravacións.", + "recordingDisabledTooltip": "O arrinque de gravación está desactivado.", + "rejoinNow": "Volverse unir agora", + "remoteControlAllowedMessage": "{{user}} aceptou a súa solicitude de control remoto!", + "remoteControlDeniedMessage": "{{user}} rexeitou a súa solicitude de control remoto!", + "remoteControlErrorMessage": "Produciuse un erro ao tentar solicitar os permisos para o control remoto de {{user}}!", + "remoteControlRequestMessage": "Permitiralle a {{user}} controlar remotamente o seu escritorio?", + "remoteControlShareScreenWarning": "Saiba que se preme «Permitir» compartirá a súa pantalla!", + "remoteControlStopMessage": "A sesión de control remoto rematou!", + "remoteControlTitle": "Control de escritorio remoto", + "removePassword": "Retirar $t(lockRoomPassword)", + "removeSharedVideoMsg": "Confirma que quere retirar o seu vídeo compartido?", + "removeSharedVideoTitle": "Retirar o vídeo compartido", + "reservationError": "Produciuse un erro no sistema de reserva", + "reservationErrorMsg": "Código de erro: {{code}}, mensaxe: {{msg}}", + "retry": "Reintento", + "screenSharingFailedToInstall": "Opa! Fallou a instalación da extensión para compartir a pantalla.", + "screenSharingFailedToInstallTitle": "A extensión para compartir a pantalla non se puido instalar", + "screenSharingFirefoxPermissionDeniedError": "Algo foi mal cando se estaba tentando compartir a pantalla. Asegúrese de nos ter dado os permisos para facelo.", + "screenSharingFirefoxPermissionDeniedTitle": "Opa! Non foi posíbel arrincar a compartición de pantalla!", + "screenSharingPermissionDeniedError": "Opa! Algo foi mal cos permisos da extensión para compartir a pantalla. Recargue e ténteo de novo outra vez.", + "sendPrivateMessage": "Acaba de recibir unha mensaxe privada. Pretende contestala privadamente ou quere enviar a súa mensaxe ao grupo?", + "sendPrivateMessageCancel": "Enviar ao grupo", + "sendPrivateMessageOk": "Enviar privadamente", + "sendPrivateMessageTitle": "Enviar por privado?", + "serviceUnavailable": "O servizo non está dispoñíbel", + "sessTerminated": "Terminouse a chamada", + "shareVideoLinkError": "Forneza unha ligazón correcta.", + "shareVideoTitle": "Compartir un vídeo", + "shareYourScreen": "Compartir a súa pantalla", + "shareYourScreenDisabled": "Compartición de pantalla desactivada.", + "shareYourScreenDisabledForGuest": "Os convidados non poden compartir a pantalla.", + "startLiveStreaming": "Comezar a difusión ao vivo", + "startRecording": "Comezar a gravación", + "startRemoteControlErrorMessage": "Produciuse un erro mentres se tentaba comezar a sesión de control remoto!", + "stopLiveStreaming": "Parar a difusión ao vivo", + "stopRecording": "Parar a gravación", + "stopRecordingWarning": "Confirma que quere parar a gravación?", + "stopStreamingWarning": "Confirma que quere parar a difusión ao vivo?", + "streamKey": "Clave de vídeo ao vivo", + "thankYou": "Grazas por utilizar {{appName}}!", + "token": "token", + "tokenAuthFailed": "Desculpe, non ten permiso para unirse a esta chamada.", + "tokenAuthFailedTitle": "Fallou a autenticación", + "transcribing": "Transcribindo", + "unlockRoom": "Retirar a reunión $t(lockRoomPassword)", + "userPassword": "contrasinal do usuario", + "yourEntireScreen": "A pantalla completa" + }, + "documentSharing": { + "title": "Documento compartido" + }, + "feedback": { + "average": "Media", + "bad": "Mal", + "detailsLabel": "Déanos máis detalles disto.", + "good": "Ben", + "rateExperience": "Puntúe a súa experiencia de reunión", + "veryBad": "Moi mal", + "veryGood": "Moi ben" + }, + "incomingCall": { + "answer": "Resposta", + "audioCallTitle": "Chamada entrante", + "decline": "Rexeitar", + "productLabel": "de Jitsi Meet", + "videoCallTitle": "Chamada de vídeo entrante" + }, + "info": { + "accessibilityLabel": "Amosar info", + "addPassword": "Engadir $t(lockRoomPassword)", + "cancelPassword": "Anular $t(lockRoomPassword)", + "conferenceURL": "Ligazón:", + "country": "País", + "dialANumber": "Para unirse á reunión, marque un deses números e logo introduza o pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Desculpe pero a chamada por teléfono non está permitida.", + "dialInNumber": "Marcar:", + "dialInSummaryError": "Produciuse un erro ao recuperar agora a información de marcado. Ténteo de novo máis tarde.", + "dialInTollFree": "Número gratuíto", + "genericError": "Vaia, algo foi mal.", + "inviteLiveStream": "Para ver o vídeo ao vivo desta reunión, prema esta ligazón: {{url}}", + "invitePhone": "Para unirse vía teléfono, escriba isto: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Para unirse vía teléfono, escriba isto:\nVexa os números de marcación de encontros: {{url}}\n\n\nSe tamén marca o teléfono mediante a habitación, únete sen conectarse ao audio: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Convidárono a unirse á reunión.", + "inviteURLFirstPartPersonal": "{{name}} invítao a unha reunión.\n", + "inviteURLSecondPart": "\nUnirse á reunión:\n{{url}}\n", + "label": "Información da reunión", + "liveStreamURL": "Vídeo ao vivo:", + "moreNumbers": "Máis números", + "noNumbers": "Non hai números de marcado.", + "noPassword": "Ningunha", + "noRoom": "Non se especificou ningunha sala para marcar.", + "numbers": "Números de marcado", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Compartir", + "tooltip": "Compartir a ligazón e a información de marcado desta reunión" + }, + "inlineDialogFailure": { + "msg": "Trancámonos un pouco.", + "retry": "Ténteo outra vez", + "support": "Asistencia", + "supportMsg": "Se isto continúa, contacte con" + }, + "inviteDialog": { + "alertText": "Produciuse un fallo ao convidar algúns participantes", + "header": "Convidar", + "searchCallOnlyPlaceholder": "Escriba o número telefónico", + "searchPeopleOnlyPlaceholder": "Procurar aos participantes", + "searchPlaceholder": "Participante ou número de teléfono", + "send": "Enviar" + }, + "keyboardShortcuts": { + "focusLocal": "Foco no seu vídeo", + "focusRemote": "Foco no vídeo doutra persoa", + "fullScreen": "Ver ou saír da pantalla completa", + "keyboardShortcuts": "Atallos de teclado", + "localRecording": "Amosar ou agochar os controis de gravación local", + "mute": "Silenciar ou activar o seu micrófono", + "pushToTalk": "Prema para falar", + "raiseHand": "Levantar ou baixar a man", + "showSpeakerStats": "Amosar as estatísticas do falante", + "toggleChat": "Abrir ou pechar o chat", + "toggleFilmstrip": "Amosar ou agochar as miniaturas de vídeo", + "toggleScreensharing": "Trocar entre cámara e compartición de pantalla", + "toggleShortcuts": "Amosar ou agochar os atallos de teclado", + "videoMute": "Iniciar ou parara a súa cámara", + "videoQuality": "Xestionar a calidade da chamada" + }, + "liveStreaming": { + "busy": "Estamos a traballar en liberar recursos de difusión. Ténteo de novo outra vez nuns poucos minutos.", + "busyTitle": "Todos os difusores están actualmente ocupados", + "changeSignIn": "Trocar contas.", + "choose": "Escolla unha emisión ao vivo", + "chooseCTA": "Escolla unha opción de difusión. Neste intre ten unha sesión iniciada como {{email}}.", + "enterStreamKey": "Escriba a súa clave de difusión ao vivo de YouTube aquí.", + "error": "Fallou a difusión ao vivo. Ténteo de novo.", + "errorAPI": "Produciuse un erro ao acceder ás súas emisións por YouTube. Tente iniciar sesión de novo.", + "errorLiveStreamNotEnabled": "A difusión ao vivo non está activada en {{email}}. Active a difusión ao vivo ou inicie sesión nunha conta con esa opción activada.", + "expandedOff": "Parouse a difusión ao vivo", + "expandedOn": "A reunión está actualmente sendo difundida via YouTube.", + "expandedPending": "A difusión ao vivo está arrincando…", + "failedToStart": "Fallou o inicio da difusión ao vivo", + "getStreamKeyManually": "Non foi posíbel recuperar ningunha difusión ao vivo. Tente obter a súa clave de difusión de YouTube", + "invalidStreamKey": "A clave de difusión ao vivo puider ser incorrecta.", + "off": "Difusión ao vivo parada", + "offBy": "{{name}} parou a difusión ao vivo", + "on": "Difusión ao vivo", + "onBy": "{{name}} comezou a difusión ao vivo", + "pending": "Arrincando a difusión ao vivo…", + "serviceName": "Servizo de difusión ao vivo", + "signIn": "Iniciar sesión con Google", + "signInCTA": "Iniciar sesión ou escribir a súa clave de difusión ao vivo de YouTube", + "signOut": "Desconectarse", + "signedInAs": "Está conectado como:", + "start": "Arrincar unha difusión ao vivo", + "streamIdHelp": "Que é isto?", + "title": "Difusión ao vivo", + "unavailableTitle": "A difusión ao vivo non está dispoñíbel" + }, + "localRecording": { + "clientState": { + "off": "Apagada", + "on": "Acesa", + "unknown": "Descoñecida" + }, + "dialogTitle": "Controis de gravación local", + "duration": "Duración", + "durationNA": "N/D", + "encoding": "Codificando", + "label": "GRVLOC", + "labelToolTip": "A gravación local está disposta", + "localRecording": "Gravación local", + "me": "Eu", + "messages": { + "engaged": "Gravación local disposta.", + "finished": "A sesión de gravación {{token}} rematou. Envíe o ficheiro gravado ao moderador.", + "finishedModerator": "Acabou a sesión de gravación {{token}}. A gravación da pista local gardouse. Pídalles aos outros participantes que envíen as súas gravacións.", + "notModerator": "Vostede non é o moderador. Non pode arrincar nin parar a gravación local." + }, + "moderator": "Moderador", + "no": "Non", + "participant": "Participante", + "participantStats": "Estatísticas do participante", + "sessionToken": "Token de sesión", + "start": "Arrincar a gravación", + "stop": "Parar a gravación", + "yes": "Si" + }, + "lockRoomPassword": "contrasinal", + "lockRoomPasswordUppercase": "Contrasinal", + "me": "eu", + "notify": { + "connectedOneMember": "{{name}} uniuse á reunión", + "connectedThreePlusMembers": "{{name}} e {{count}} máis uníronse á reunión", + "connectedTwoMembers": "{{first}} e {{second}} uníronse á reunión", + "disconnected": "desconectado", + "focus": "Foco da conferencia", + "focusFail": "O {{component}} non está dispoñíbel - volverase tentar dentro de {{ms}} seg", + "grantedTo": "Concedéronse permisos de moderador a {{to}}!", + "invitedOneMember": "{{name}} foi invitado", + "invitedThreePlusMembers": "{{name}} e {{count}} máis foron convidados", + "invitedTwoMembers": "{{first}} e {{second}} foron convidados", + "kickParticipant": "{{kicked}} foi expulsado por {{kicker}}", + "me": "Eu", + "moderator": "Dereitos de moderador concedidos!", + "muted": "Vostede comezou a conversación silenciada.", + "mutedRemotelyDescription": "Sempre pode activar o son cando estea listo para falar. Volva silenciar cando acabe para despexar de ruído a reunión.", + "mutedRemotelyTitle": "Vostede foi silenciado por {{participantDisplayName}}!", + "mutedTitle": "Vostede está silenciado!", + "newDeviceAction": "Utilizar", + "newDeviceAudioTitle": "Detectouse un novo dispositivo de son", + "newDeviceCameraTitle": "Detectada unha nova cámara", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) retirada por outro participante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) estabelecida por outro participante", + "raisedHand": "{{name}} pide a palabra.", + "somebody": "Alguén", + "startSilentDescription": "Volva a unirse para activar o son", + "startSilentTitle": "Vostede uniuse sen saída de son!", + "suboptimalBrowserWarning": "Lamentamos que a súa experiencia non estea a ser boa. Procuramos maneiras de mellorala mais, ata entón, probe utilizar un dos navegadores totalmente compatíbeis.", + "suboptimalExperienceTitle": "Aviso verbo do navegador", + "unmute": "Activar o son" + }, + "passwordDigitsOnly": "Ata {{number}} díxitos", + "passwordSetRemotely": "estabelecida por outro participante", + "polls": { + "errors": { + "notUniqueOption": "As opcións deben ser únicas" + } + }, + "poweredby": "fornecido por", + "presenceStatus": { + "busy": "Ocupado", + "calling": "Chamando…", + "connected": "Conectado", + "connecting": "Conectando…", + "connecting2": "Conectando*…", + "disconnected": "Desconectado", + "expired": "Expirou", + "ignored": "Ignorado", + "initializingCall": "Facendo chamada…", + "invited": "Convidado/a", + "rejected": "Rexeitada", + "ringing": "Chamando…" + }, + "profile": { + "setDisplayNameLabel": "Escoller o seu nome en pantalla", + "setEmailInput": "Escribir correo-e", + "setEmailLabel": "Estabelecer o seu correo Gravatar", + "title": "Perfil" + }, + "raisedHand": "Gustaríalle falar", + "recording": { + "authDropboxText": "Cargar en Dropbox", + "availableSpace": "Espazo dispoñíbel: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de gravación)", + "beta": "BETA", + "busy": "Estamos a liberar recursos de gravación. Ténteo de novo dentro duns minutos.", + "busyTitle": "Todas as rexistradoras están ocupadas neste momento", + "error": "Fallou a gravación. Ténteo de novo.", + "expandedOff": "A gravación parouse", + "expandedOn": "Esta reunión está actualmente sendo gravada", + "expandedPending": "A gravación está a comezar…", + "failedToStart": "Fallou o arrinque da gravación", + "fileSharingdescription": "Compartir a gravación cos participantes na reunión", + "live": "VIVO", + "loggedIn": "En sesión como {{userName}}", + "off": "Gravación parada", + "offBy": "{{name}} parou a gravación", + "on": "Gravando", + "onBy": "{{name}} comezou a gravación", + "pending": "Preparando a gravación da reunión…", + "rec": "GRA", + "serviceDescription": "A súa gravación será gardada polo servizo de gravación", + "serviceName": "Servizo de gravación", + "signIn": "Conectarse", + "signOut": "Desconectarse", + "title": "Gravando", + "unavailable": "Opa! O {{serviceName}} non está dispoñíbel actualmente. Estamos traballando na resolución da incidencia. Ténteo de novo máis adiante.", + "unavailableTitle": "A gravación non está dispoñíbel" + }, + "sectionList": { + "pullToRefresh": "Tirar para recargar" + }, + "settings": { + "calendar": { + "about": "A integración do calendario de {{appName}} utilízase para asegurar o acceso ao seu calendario e que poida consultar citas.", + "disconnect": "Desconectar", + "microsoftSignIn": "Iniciar sesión con Microsoft", + "signedIn": "Accedendo neste intre ás citas de calendario de {{email}}. Prema no botón Desconectar de abaixo se quere deter o acceso ás citas do calendario.", + "title": "Calendario" + }, + "devices": "Dispositivos", + "followMe": "Todos me seguen", + "language": "Idioma", + "loggedIn": "Sesión iniciada como {{name}}", + "moderator": "Moderador", + "more": "Máis", + "name": "Nome", + "noDevice": "Ningunha", + "selectAudioOutput": "Saída de son", + "selectCamera": "Cámara", + "selectMic": "Micrófono", + "startAudioMuted": "Todo o mundo comeza silenciado", + "startVideoMuted": "Todo o mundo comeza agochado", + "title": "Configuración" + }, + "settingsView": { + "advanced": "Avanzado", + "alertOk": "Aceptar", + "alertTitle": "Aviso", + "alertURLText": "O URL do servidor fornecido non é correcto", + "buildInfoSection": "Información da compilación", + "conferenceSection": "Conferencia", + "disableCallIntegration": "Desactivar a integración de chamadas nativa", + "disableP2P": "Desactivar o modo entre pares", + "displayName": "Presentar o nome", + "email": "Correo", + "header": "Configuración", + "profileSection": "Perfil", + "serverURL": "URL do servidor", + "showAdvanced": "Amosar a configuración avanzada", + "startWithAudioMuted": "Comezar co son silenciado", + "startWithVideoMuted": "Inicio do vídeo silenciado", + "version": "Versión" + }, + "share": { + "dialInfoText": "\n\n=====\n\nQuere simplemente marcar no seu móbil?\n\n{{defaultDialInNumber}}Prema esta ligazón para ver o número de teléfono ao que chamar para esta reunión\n{{dialInfoPageUrl}}", + "mainText": "Premer na seguinte ligazón para unirse á reunión:\n{{roomUrl}}" + }, + "speaker": "Altofalante", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Nome", + "search": "Procurar", + "searchHint": "Procurar participantes", + "seconds": "{{count}}s", + "speakerStats": "Estatísticas do falante", + "speakerTime": "Tempo do falante" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} necessita acceso ao seu micro e cámara." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Volverse unir", + "text": "Prema o botón Volverse unir para reconectar.", + "title": "A súa chamada de vídeo interrompeuse porque este computador entrou en suspensión." + }, + "toolbar": { + "Settings": "Configuración", + "accessibilityLabel": { + "Settings": "Alternar axustes", + "audioOnly": "Trocar só o son", + "audioRoute": "Seleccionar o dispositivo de son", + "callQuality": "Xestionar a calidade do vídeo", + "cc": "Trocar subtítulos", + "chat": "Trocar xanela de chat", + "document": "Trocar documento compartido", + "download": "Descargar as apps", + "feedback": "Deixar comentarios", + "fullScreen": "Trocar a pantalla completa", + "hangup": "Deixar a chamada", + "help": "Axuda", + "invite": "Convidar xente", + "kick": "Expulsar participante", + "localRecording": "Trocar os controis de gravación local", + "lockRoom": "Trocar o contrasinal da reunión", + "moreActions": "Trocar o menú de accións complementarias", + "moreActionsMenu": "Menú de accións complementarias", + "mute": "Trocar o silenciador de son", + "pip": "Trocar o modo Picture-in-Picture", + "privateMessage": "Enviar mensaxe privada", + "profile": "Editar o seu perfil", + "raiseHand": "Trocar entre levantar e baixar a man", + "recording": "Trocar a gravación", + "remoteMute": "Silenciar participante", + "shareRoom": "Convidar a alguén", + "shareYourScreen": "Trocar a pantalla compartida", + "sharedvideo": "Trocar a compartición", + "shortcuts": "Trocar atallos", + "show": "Amosar en primeiro plano", + "speakerStats": "Trocar as estatísticas do falante", + "tileView": "Trocar a vista en mosaico", + "toggleCamera": "Trocar a cámara", + "videoblur": "Trocar o difuminador de vídeo", + "videomute": "Trocar o activador de vídeo" + }, + "addPeople": "Engadir xente á súa chamada", + "audioOnlyOff": "Desactivar o modo de largo de banda reducido", + "audioOnlyOn": "Activar o modo de largo de banda reducido", + "audioRoute": "Seleccionar o dispositivo de son", + "authenticate": "Autenticar", + "callQuality": "Xestionar a calidade do vídeo", + "chat": "Abrir/Pechar o chat", + "closeChat": "Pechar o chat", + "documentClose": "Pechar o documento compartido", + "documentOpen": "Abrir o documento compartido", + "download": "Descargar as apps", + "enterFullScreen": "Ver a pantalla completa", + "enterTileView": "Entrar á vista de mosaico", + "exitFullScreen": "Saír da pantalla completa", + "exitTileView": "Saír da vista de mosaico", + "feedback": "Deixar comentarios", + "hangup": "Marchar", + "help": "Axuda", + "invite": "Convidar xente", + "login": "Inicio de sesión", + "logout": "Saír", + "lowerYourHand": "Baixar a man", + "moreActions": "Accións complementarias", + "mute": "Silenciar / Activar", + "noAudioSignalDesc": "Se vostede non o silenciou adrede na configuración do seu sistema ou hardware, considere cambiar de dispositivo.", + "noAudioSignalDescSuggestion": "Se vostede non o silenciou adrede na configuración do sistema ou no hardware, considere utilizar o seguinte dispositivo:", + "noAudioSignalTitle": "Non hai sinal de entrada desde o seu micro!", + "noisyAudioInputDesc": "Parece que o seu micrófono está a crear ruído. Considere a posibilidade de calalo ou de cambiar de dispositivo", + "noisyAudioInputTitle": "Parece que seu micrófono fai moito ruído", + "openChat": "Abrir chat", + "pip": "Entrar no modo Picture-in-Picture", + "privateMessage": "Enviar mensaxe privada", + "profile": "Editar o seu perfil", + "raiseHand": "Levantar / Baixar a man", + "raiseYourHand": "Levantar a súa man", + "shareRoom": "Convidar a alguén", + "sharedvideo": "Compartir un vídeo", + "shortcuts": "Ver atallos de teclado", + "speakerStats": "Estatísticas de falante", + "startScreenSharing": "Comezar a compartir pantalla", + "startSubtitles": "Comezar subtítulos", + "startvideoblur": "Difuminar o meu fondo", + "stopScreenSharing": "Parar de compartir pantalla", + "stopSharedVideo": "Parar o vídeo", + "stopSubtitles": "Parar subtítulos", + "stopvideoblur": "Desactivar o difuminado do fondo", + "talkWhileMutedPopup": "Está a tentar falar? Está silenciado.", + "tileViewToggle": "Trocar a vista en mosaico", + "toggleCamera": "Trocar a cámara", + "videomute": "Comezar / Parar a cámara" + }, + "transcribing": { + "ccButtonTooltip": "Comezar / Parar os subtítulos", + "error": "Fallou a transcrición. Ténteo de novo.", + "expandedLabel": "A transcrición está agora activa.", + "failedToStart": "A transcrición non puido arrincar", + "labelToolTip": "A reunión está sendo transcrita", + "off": "Transcrición parada", + "pending": "Preparando a transcrición da reunión…", + "start": "Comezar a amosar subtítulos", + "stop": "Parar a mostra de subtítulos", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Conceda permisos para utilizar a súa cámara e micrófono." + }, + "videoSIPGW": { + "busy": "Estamos liberando recursos. Ténteo de novo nuns minutos.", + "busyTitle": "O servizo de sala está actualmente ocupado", + "errorAlreadyInvited": "{{displayName}} xa foi invitado", + "errorInvite": "A conferencia aínda non se estabeleceu. Ténteo de novo máis tarde.", + "errorInviteFailed": "Estamos traballando na resolución da incidencia. Ténteo de novo máis tarde.", + "errorInviteFailedTitle": "Fallou o convite a {{displayName}}", + "errorInviteTitle": "Erro no convite da sala", + "pending": "Convidouse a {{displayName}}" + }, + "videoStatus": { + "audioOnly": "SON", + "audioOnlyExpanded": "Está en modo de largo de banda reducido. Neste modo recibirá soamente son e pantalla compartida.", + "callQuality": "Calidade de vídeo", + "hd": "HD", + "hdTooltip": "Visualizando vídeo en alta definición", + "highDefinition": "Alta definición", + "labelTooiltipNoVideo": "Ningún vídeo", + "labelTooltipAudioOnly": "Activado o modo de largo de banda reducido.", + "ld": "BD", + "ldTooltip": "Vendo o vídeo en baixa definición", + "lowDefinition": "Baixa definición", + "onlyAudioAvailable": "Soamente está dispoñíbel o son", + "onlyAudioSupported": "Soamente está dispoñíbel o son neste navegador.", + "sd": "MD", + "sdTooltip": "Ver un vídeo en definición estándar", + "standardDefinition": "Definición estándar" + }, + "videothumbnail": { + "domute": "Silenciar", + "flip": "Voltar", + "kick": "Expulsar", + "moderator": "Moderador", + "mute": "O participante está silenciado", + "muted": "Silenciado", + "remoteControl": "Iniciar / Deter control remoto", + "show": "Amosar en primeiro plano", + "videomute": "O participante parou a cámara" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Tocar para unirse", + "roomname": "Escriba o nome da sala" + }, + "appDescription": "Adiante, chat de vídeo co equipo enteiro. De feito, convidar a todos os que coñece. {{app}} está totalmente cifrado, unha solución de videoconferencia 100% de código aberto que pode utilizar todo o día, cada día, de balde — sen sequera unha conta.", + "audioVideoSwitch": { + "audio": "Voz", + "video": "Vídeo" + }, + "calendar": "Calendario", + "connectCalendarButton": "Conectar o seu calendario", + "connectCalendarText": "Conectar o calendario para ver todas as reunións en {{app}}. Ademais, engada reunións de {{provider}} ao seu calendario e coméceas dun clic.", + "enterRoomTitle": "Arrincar unha nova reunión", + "go": "CREAR", + "goSmall": "CREAR", + "info": "Info", + "join": "CREAR / UNIRSE", + "privacy": "Confidencialidade", + "recentList": "Recente", + "recentListDelete": "Eliminar", + "recentListEmpty": "Neste intre, a súa lista de recentes está baleira. Converse co seu equipo e atopará todas as reunións recentes aquí.", + "reducedUIText": "Dámoslle a benvida a {{app}}!", + "roomNameAllowedChars": "O nome da reunión non debería conter ningún destes caracteres: ?, &, :, ', \", %, #.", + "roomname": "Escriba o nome da sala", + "roomnameHint": "Escribir o nome ou o URL da sala á que se quere unir. Pode dar de alta un nome e permitir que a xente coa que se reúne o saiba para que introduzan o mesmo nome.", + "sendFeedback": "Enviar un comentario", + "terms": "Termos", + "title": "Sistema de conferencia seguro, cheo de funcionalidades e completamente libre" + } +} diff --git a/lang/main-he.json b/lang/main-he.json new file mode 100644 index 0000000..9289eab --- /dev/null +++ b/lang/main-he.json @@ -0,0 +1,789 @@ +{ + "addPeople": { + "add": "הוסף", + "countryNotSupported": "אנחנו לא תומכים ביעד זה", + "countryReminder": "מחייג מחוץ לארצות הברית? נא לוודא שאתה מזין את קידומת המדינה!", + "disabled": "אינך יכול להזמין אנשים", + "failedToAdd": "הוספת משתתפים נכשלה", + "footerText": "החיוג אינו פעיל.", + "loading": "מחפש אנשים ומספרי טלפון", + "loadingNumber": "מאמת מספר טלפון", + "loadingPeople": "מחפש אנשים להזמין", + "noResults": "לא נמצאו תוצאות מתאימות", + "noValidNumbers": "אנא הזן מסםר טלפון", + "searchNumbers": "הוסף מספר טלפון", + "searchPeople": "חפש אנשים", + "searchPeopleAndNumbers": "חפש אנשים או הזן את מספר הטלפון שלהם", + "telephone": "טלפון: {{number}}", + "title": "הזמן אנשים לפגישה זו" + }, + "audioDevices": { + "bluetooth": "בלוטות'", + "headphones": "אוזניות", + "none": "אין התקן שמע זמין", + "phone": "טלפון", + "speaker": "רמקול" + }, + "audioOnly": { + "audioOnly": "רוחב פס נמוך" + }, + "calendarSync": { + "addMeetingURL": "הוסף קישור מפגש", + "confirmAddLink": "האם ברצונך הוסיף קישור Jitsi לאירוע זה?", + "error": { + "appConfiguration": "שילוב לוח השנה אינו מוגדר כראוי.", + "generic": "אירעה שגיאה. אנא בדוק את הגדרות לוח השנה שלך או נסה לרענן את לוח השנה.", + "notSignedIn": "אירעה שגיאה במהלך האימות לצפייה באירועי לוח השנה. אנא בדוק את הגדרות לוח השנה שלך ונסה להתחבר שוב." + }, + "join": "הצטרף", + "joinTooltip": "הצטרף למפגש", + "nextMeeting": "המפגש הבא", + "noEvents": "לא נקבעו אירועים קרובים.", + "ongoingMeeting": "פגישה מתמשכת", + "permissionButton": "פתח הגדרות", + "permissionMessage": "הרשאת לוח השנה נדרשת כדי לראות את הפגישות שלך ביישום.", + "refresh": "רענן לוח שנה", + "today": "היום" + }, + "chat": { + "error": "שגיאה: ההודעה שלך \"{{originalText}}\" לא נשלחה. סיבה: {{error}}", + "fieldPlaceHolder": "הקלד הודעתך כאן", + "messageTo": "הודעה פרטית אל {{recipient}}", + "messagebox": "הקלד הודעה", + "nickname": { + "popover": "בחר שם משתמש", + "title": "נא להזין שם משתמש בכדי להשתמש בצ'אט", + "titleWithPolls": "נא להזין שם משתמש בכדי להשתמש בצ'אט" + }, + "noMessagesMessage": "אין עדיין הודעות בפגישה. התחל שיחה כאן!", + "privateNotice": "הודעה פרטית אל {{recipient}}", + "sendButton": "שלח", + "title": "צ'אט", + "titleWithPolls": "צ'אט", + "you": "אתה" + }, + "chromeExtensionBanner": { + "buttonText": "התקן את תוסף Chrome", + "dontShowAgain": "אל תציג לי זאת שוב", + "installExtensionText": "התקן את התוסף לשילוב Google Calendar ו-Office 365" + }, + "connectingOverlay": { + "joiningRoom": "מחבר אותך למפגש שלך…" + }, + "connection": { + "ATTACHED": "צרופה", + "AUTHENTICATING": "מאמת", + "AUTHFAIL": "אימות כשל", + "CONNECTED": "מחובר", + "CONNECTING": "מתחבר", + "CONNFAIL": "החיבור כשל", + "DISCONNECTED": "לא מחובר", + "DISCONNECTING": "מתנתק", + "ERROR": "שגיאה", + "FETCH_SESSION_ID": "השגת מזהה הפעלה…", + "GET_SESSION_ID_ERROR": "התקבלה שגיאה מזהה הפעלה: {{code}}", + "GOT_SESSION_ID": "השגת מזהה הפעלה… בוצע", + "LOW_BANDWIDTH": "הווידאו עבור {{displayName}} כבה כדי לשמור על רוחב הפס" + }, + "connectionindicator": { + "address": "כתובת:", + "bandwidth": "רוחב פס משוער:", + "bitrate": "קצב סיביות:", + "bridgeCount": "מספר שרתים: ", + "connectedTo": "מחובר אל:", + "framerate": "קצב מסגרת:", + "less": "הצג פחות", + "localaddress": "כתובת מקומית:", + "localaddress_plural": "כתובות מקומיות:", + "localport": "יציאה מקומית:", + "localport_plural": "יציאות מקומיות:", + "more": "הצג עוד", + "packetloss": "חבילות שאבדו:", + "quality": { + "good": "איכותי", + "inactive": "לא פעיל", + "lost": "אבד", + "nonoptimal": "לא אופטימאלי", + "poor": "ירוד" + }, + "remoteaddress": "כתובת מרוחקת:", + "remoteaddress_plural": "כתובות מרוחקות:", + "remoteport": "יציאה מרוחקת:", + "remoteport_plural": "יציאות מרוחקות:", + "resolution": "פתרון הבעיה:", + "status": "מחובר:", + "transport": "תעבורה:", + "transport_plural": "תעבורות:" + }, + "dateUtils": { + "earlier": "מוקדם יותר", + "today": "היום", + "yesterday": "מחר" + }, + "deepLinking": { + "appNotInstalled": "אתה זקוק ליישום {{app}} נייד כדי להצטרף לפגישה זו בטלפון שלך.", + "description": "שום דבר לא קרה? ניסינו להפעיל את הפגישה שלך ביישום {{app}} לשולחן העבודה . נסה שוב או הפעל את {{app}} ביישום האינטרנט.", + "descriptionWithoutWeb": "", + "downloadApp": "הורד את היישום", + "launchWebButton": "הפעל ברשת", + "openApp": "מתחבר ליישום", + "title": "מפעיל את הפגישה שלך ב{{app}}…", + "tryAgainButton": "נסה שוב במחשב" + }, + "defaultLink": "למשל {{url}}", + "defaultNickname": "למשל אליאנה שליו", + "deviceError": { + "cameraError": "הגישה למצלמה שלך כשלה", + "cameraPermission": "שגיאה בקבלת הרשאת מצלמה", + "microphoneError": "הגישה למיקרופון שלך כשלה", + "microphonePermission": "שגיאה בקבלת הרשאת מיקרופון" + }, + "deviceSelection": { + "noPermission": "לא הוענקו הרשאות", + "previewUnavailable": "תצוגה מקדימה אינה זמינה", + "selectADevice": "בחר התקן", + "testAudio": "הפעל בדיקת שמע" + }, + "dialOut": { + "statusMessage": "אתה כעת {{status}}" + }, + "dialog": { + "Back": "חזור", + "Cancel": "בטל", + "IamHost": "אני המארח", + "Ok": "אישור", + "Remove": "הסר", + "Share": "שתף", + "Submit": "שלח", + "WaitForHostMsg": "הועידה טרם החלה. אם אתה המארח אז בצע אימות. אחרת, אנא המתן שהמארח יגיע.", + "WaitingForHost": "ממתין למארח…", + "Yes": "כן", + "accessibilityLabel": { + "liveStreaming": "שידור חי" + }, + "allow": "התר", + "alreadySharedVideoMsg": "חבר אחר כבר משתף וידיאו, ועידה זו מאפשרת שיתוף וידיאו אחד בכל פעם.", + "alreadySharedVideoTitle": "שיתוף וידיאו אחד מאופשר בכל פעם", + "applicationWindow": "חלון יישום", + "cameraConstraintFailedError": "המצלמה שלך אינה מספקת חלק מהבקשות הנדרשות.", + "cameraNotFoundError": "לא נמצאה מצלמה.", + "cameraNotSendingData": "איננו יכולים לגשת למצלמה שלך. אנא בדוק אם יישום אחר משתמש בהתקן זה, בחר התקן אחר מתפריט ההגדרות או נסה לטעון מחדש את היישום.", + "cameraNotSendingDataTitle": "אין אפשרות לגשת למצלמה", + "cameraPermissionDeniedError": "לא נתת הרשאה להשתמש במצלמה שלך. הינך יכול עדיין להצטרף לוועידה אך אחרים לא יראו אותך, השתמש בלחצן המצלמה בסרגל הכתובות כדי לתקן זאת.", + "cameraUnknownError": "לא ניתן להשתמש במצלמה מסיבה לא ידועה.", + "cameraUnsupportedResolutionError": "המצלמה שלך אינה תומכת ברזולוציית וידאו הנדרשת.", + "close": "סגור", + "conferenceDisconnectMsg": "יתכן שתרצה לבדוק את חיבור הרשת שלך, מתחבר מחדש בעוד {{seconds}} שניות…", + "conferenceDisconnectTitle": "נותקת.", + "conferenceReloadMsg": "אנו מנסים לתקן זאת, מתחבר מחדש בעוד {{seconds}} שניות…", + "conferenceReloadTitle": "לצערנו משהו השתבש.", + "confirm": "אשר", + "confirmNo": "לא", + "confirmYes": "כן", + "connectError": "אופס! משהו השתבש ולא יכולנו להתחבר לוועידה.", + "connectErrorWithMsg": "אופס! משהו השתבש ולא יכולנו להתחבר לוועידה: {{msg}}", + "connecting": "מתחבר", + "contactSupport": "צור קשר עם התמיכה", + "copy": "העתק", + "dismiss": "דחה", + "displayNameRequired": "שם תצוגה הכרחי", + "done": "בצע", + "enterDisplayName": "אנא הזן את שם התצוגה שלך", + "error": "שגיאה", + "externalInstallationMsg": "עליך להתקין את תוסף השיתוף שלנו לשולחן העבודה.", + "externalInstallationTitle": "תוסף נדרש", + "goToStore": "גש לחנות", + "gracefulShutdown": "השירות שלנו ירד לרגע לצורך תחזוקה. אנא נסה שוב מאוחר יותר.", + "incorrectPassword": "שם משתמש או סיסמה שגויים", + "incorrectRoomLockPassword": "", + "inlineInstallExtension": "התקן כעת", + "inlineInstallationMsg": "עליך להתקין את תוסף השיתוף שלנו לשולחן העבודה.", + "internalError": "אופס! משהו השתבש. השגיאה הבאה התרחשה: {{error}}", + "internalErrorTitle": "שגיאה פנימית", + "kickMessage": "אאוצ'! גורשת מהמפגש הזה!", + "kickParticipantButton": "גרש", + "kickParticipantDialog": "האם אתה בטוח מעוניין לגרש את המשתתף הזה?", + "kickParticipantTitle": "לגרש את המספר הזה?", + "kickTitle": "גורש מהמפגש", + "liveStreaming": "שידור חי", + "liveStreamingDisabledForGuestTooltip": "אורחים אינם רשאים לפעיל שידור חי.", + "liveStreamingDisabledTooltip": "הפעלת שידור חי הושבתה.", + "lockMessage": "נעילת הוועידה כשלה.", + "lockRoom": "הוסף סיסמת מפגש", + "lockTitle": "נעילה כשלה", + "logoutQuestion": "האם אתה בטוח שברצונך להתנתק ולעצור את הועידה?", + "logoutTitle": "התנתק", + "maxUsersLimitReached": "הגעת למגבלת חברים מירבית. הועידה מלאה. אנא צור קשר עם מנהל הועידה או נסה שוב מאוחר יותר!", + "maxUsersLimitReachedTitle": "הגעת למגבלת חברים מירבית", + "micConstraintFailedError": "המיקרופון שלך אינו מספק כמה מההרשאות הנדרשות.", + "micNotFoundError": "לא נמצא מיקרופון.", + "micNotSendingData": "איננו יכולים לגשת למיקרופון שלך. בחר התקן אחר מתפריט ההגדרות או נסה לטעון מחדש את היישום.", + "micNotSendingDataTitle": "לא ניתן לגשת למיקרופון", + "micPermissionDeniedError": "לא נתת הרשאה להשתמש במיקרופון שלך. אתה עדיין יכול להצטרף לוועידה אך אחרים לא ישמעו אותך. השתמש בלחצן המצלמה בסרגל הכתובות כדי לתקן זאת.", + "micUnknownError": "לא ניתן להשתמש במיקרופון מסיבה לא ידועה.", + "muteEveryoneDialog": "האם אתה בטוח שברצונך להשתיק את כולם? לא תוכל לבטל את השתקתם, אך הם יכולים לבטל את השתקת עצמם בכל עת.", + "muteEveryoneElseDialog": "לאחר שתושתק, לא תוכל להשתיק אותם, אך הם יכולים להשתיק את עצמם בכל עת.", + "muteEveryoneElseTitle": "השתק את כולם מלבד {{whom}}?", + "muteEveryoneSelf": "עצמך", + "muteEveryoneStartMuted": "כולם מושתקים מעתה והילך", + "muteEveryoneTitle": "להשתיק את כולם?", + "muteParticipantBody": "לא תוכל לבטל את השתקתם, אך הם יכולים לבטל את השתקת עצמם בכל עת.", + "muteParticipantButton": "השתק", + "muteParticipantDialog": "האם אתה בטוח שברצונך להשתיק משתתף זה? לא תוכל לבטל את השתקתם, אך הם יוכלו לבטל את השתקת עצמם בכל עת.", + "muteParticipantTitle": "השתק מספר זה?", + "passwordLabel": "סיסמה", + "passwordNotSupported": "הגדרת סיסמת פגישה אינה נתמכת.", + "passwordNotSupportedTitle": "סיסמה אינה נתמכת", + "passwordRequired": "סיסמה נדרשת", + "popupError": "הדפדפן שלך חוסם חלונות קופצים מאתר זה. אנא אפשר חלונות קופצים בהגדרות האבטחה של הדפדפן ונסה שוב.", + "popupErrorTitle": "חלון קופץ נחסם", + "recording": "מקליט", + "recordingDisabledForGuestTooltip": "אורחים אינם רשאים להקליט.", + "recordingDisabledTooltip": "הקלטה מושבתת.", + "rejoinNow": "הצטרף כעת", + "remoteControlAllowedMessage": "{{user}} קיבל את בקשת השליטה מרחוק שלך!", + "remoteControlDeniedMessage": "{{user}} דחה את בקשת השליטה מרחוק שלך!", + "remoteControlErrorMessage": "אירעה שגיאה במהלך ניסיון לבקש הרשאות שליטה מרחוק מ{{user}}!", + "remoteControlRequestMessage": "אישרת ל-{{user}} לשלוט מרחוק על המחשב שלך?", + "remoteControlShareScreenWarning": "שים לב! לחיצה על \"אשר\" תשתף את המסך שלך!", + "remoteControlStopMessage": "הפעלת שליטה רחוק הסתיימה!", + "remoteControlTitle": "שליטה בשולחן עבודה מרוחק", + "removePassword": "הסר סיסמה", + "removeSharedVideoMsg": "האם אתה בטוח שברצונך להסיר את הוידאו המשותף?", + "removeSharedVideoTitle": "הסר וידיאו משותף", + "reservationError": "שגיאת מערכת הזמנות", + "reservationErrorMsg": "קוד שגיאה: {{code}}, הודעה: {{msg}}", + "retry": "נסה שוב", + "screenSharingAudio": "שתף שמע", + "screenSharingFailedToInstall": "אופס! התקנת הרחבת שיתוף המסך כשלה.", + "screenSharingFailedToInstallTitle": "התקנת הרחבת שיתוף המסך כשלה", + "screenSharingFirefoxPermissionDeniedError": "משהו השתבש בזמן שניסינו לשתף את המסך שלך. אנא וודא כי נתת לנו אישור לכך.", + "screenSharingFirefoxPermissionDeniedTitle": "אופס! לא הצלחנו להתחיל בשיתוף המסך!", + "screenSharingPermissionDeniedError": "אופס! משהו השתבש בהרשאות התוסף שלך לשיתוף המסך. טען מחדש ונסה שוב.", + "sendPrivateMessage": "לאחרונה קיבלת הודעה פרטית. האם התכוונת להשיב על כך באופן פרטי, או שאתה רוצה לשלוח את ההודעה שלך לקבוצה?", + "sendPrivateMessageCancel": "שלח לקבוצה", + "sendPrivateMessageOk": "שלח לפרטי", + "sendPrivateMessageTitle": "לשלוח לפרטי?", + "serviceUnavailable": "שירותים אינם זמינים", + "sessTerminated": "השיחה הסתיימה", + "shareVideoLinkError": "אנא ספק קישור תקין ליוטיוב.", + "shareVideoTitle": "שתף וידאו", + "shareYourScreen": "שתף את המסך שלך", + "shareYourScreenDisabled": "שיתוף מסך כבוי.", + "shareYourScreenDisabledForGuest": "אורח אינו יכול לשתף מסך.", + "startLiveStreaming": "התחל שידור חי", + "startRecording": "החל הקלטה", + "startRemoteControlErrorMessage": "אירעה שגיאה במהלך ניסיון להתחיל את הפעלת השליטה רחוק!", + "stopLiveStreaming": "הפסק שידור חי", + "stopRecording": "הפסק הקלטה", + "stopRecordingWarning": "האם אתה בטוח שברצונך להפסיק את ההקלטה?", + "stopStreamingWarning": "האם אתה בטוח שברצונך להפסיק את השידור החי?", + "streamKey": "מפתח שידור חי", + "thankYou": "תודה שהשתמשת ב{{appName}}!", + "token": "אסימון", + "tokenAuthFailed": "מצטערים, אינך רשאי להצטרף לשיחה זו.", + "tokenAuthFailedTitle": "אימות כשל", + "transcribing": "תמלול", + "unlockRoom": "הסר סיסמת מפגש", + "userPassword": "סיסמת משתמש", + "yourEntireScreen": "כל המסך שלך" + }, + "documentSharing": { + "title": "שתף מסמך" + }, + "feedback": { + "average": "ממוצע", + "bad": "רע", + "detailsLabel": "ספר לנו עוד על כך.", + "good": "טוב", + "rateExperience": "דרג את חווית המפגש שלך", + "veryBad": "רע מאוד", + "veryGood": "מעולה" + }, + "helpView": { + "title": "מרכז העזרה" + }, + "incomingCall": { + "answer": "תשובה", + "audioCallTitle": "שיחה נכנסת", + "decline": "דחה", + "productLabel": "מפגישת Jitsi", + "videoCallTitle": "שיחת וידאו נכנסת" + }, + "info": { + "accessibilityLabel": "הצג מידע", + "addPassword": "הוסף סיסמה", + "cancelPassword": "בטל סיסמה", + "conferenceURL": "קישור:", + "country": "מדינה", + "dialANumber": "כדי להצטרף לפגישה שלך, חייג לאחד מהמספרים הללו והזן את קוד ה-PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "מצטערים, אין כרגע תמיכה בחיוג.", + "dialInNumber": "חייג:", + "dialInSummaryError": "שגיאה באחזור מידע חיוג כעת. אנא נסה שוב מאוחר יותר.", + "dialInTollFree": "ללא תשלום", + "genericError": "אופס, משהו השתבש.", + "inviteLiveStream": "לצפייה בשידור החי של פגישה זו, לחץ על קישור זה: {{url}}", + "invitePhone": "בכדי לשמוע חייג: {{number}},,{{conferenceID}}#", + "invitePhoneAlternatives": "", + "inviteURLFirstPartGeneral": "אתם מוזמנים להצטרף לפגישה.", + "inviteURLFirstPartPersonal": "{{name}} הזמין אותך להצטרף לפגישה.\n", + "inviteURLSecondPart": "\nהצטרף לפגישה:\n{{url}}\n", + "label": "מידע מפגש", + "liveStreamURL": "שידור חי:", + "moreNumbers": "חברים נוספים", + "noNumbers": "אין מספרי חיוג.", + "noPassword": "ללא", + "noRoom": "לא נקבע שום מקום לחיוג אליו.", + "numbers": "מספרי חיוג", + "password": "סיסמה:", + "title": "שתף", + "tooltip": "שתף קישור ומידע חיוג לפגישה זו" + }, + "inlineDialogFailure": { + "msg": "מעדנו קצת.", + "retry": "נסה שוב", + "support": "תמיכה", + "supportMsg": "אם זה ממשיך לקרות, פנה אל" + }, + "inviteDialog": { + "alertText": "ההזמנה של חלק מהמשתתפים נכשלה.", + "header": "הזמן", + "searchCallOnlyPlaceholder": "הזן מספר טלפון", + "searchPeopleOnlyPlaceholder": "מחפש משתתפים", + "searchPlaceholder": "משתתף או מספר טלפון", + "send": "שלח" + }, + "keyboardShortcuts": { + "focusLocal": "התמקד בוידאו שלך", + "focusRemote": "התמקד בוידאו של אדם אחר", + "fullScreen": "הצג או צא ממסך מלא", + "keyboardShortcuts": "קיצורי דרך במקלדת", + "localRecording": "הצג או הסתר פקדי הקלטה מקומיים", + "mute": "השתק או השמע את המיקרופון ", + "pushToTalk": "לחץ כדי לדבר", + "raiseHand": "הרם או הורד את היד", + "showSpeakerStats": "הצג סטטיסטיקות דובר", + "toggleChat": "פתח או סגור את הצ'אט", + "toggleFilmstrip": "הצג או הסתר תמונות ממוזערות של וידאו", + "toggleScreensharing": "מעבר בין מצלמה לשיתוף מסך", + "toggleShortcuts": "הצג או הסתר קיצורי דרך במקלדת", + "videoMute": "הפעל או כבה את המצלמה", + "videoQuality": "נהל איכות שיחה" + }, + "liveStreaming": { + "busy": "אנו עובדים על שחרור משאבי הזרמה. אנא נסה שוב בעוד מספר דקות.", + "busyTitle": "כל המזרימים עסוקים כעת", + "changeSignIn": "החלף חשבון.", + "choose": "בחר שידור חי", + "chooseCTA": "בחר אפשרות הזרמה. אתה מחובר כרגע כ {{email}}.", + "enterStreamKey": "הזן כאן את מפתח השידור החי שלך ביוטיוב.", + "error": "שידור חי כשל, אנא נסה שוב.", + "errorAPI": "אירעה שגיאה בגישה לשידורי היוטיוב שלך. אנא נסה להתחבר שוב.", + "errorLiveStreamNotEnabled": "הזרמה בשידור חי אינו מופעל ב-{{email}}. אנא אפשר הזרמה בשידור חי או היכנס לחשבון עם שידור חי מופעל", + "expandedOff": "השידור החי פסק", + "expandedOn": "המפגש הזה מוזרם כעת ליוטיוב.", + "expandedPending": "השידור החי עומד להתחיל…", + "failedToStart": "ההפעלה של השידור החי כשלה", + "getStreamKeyManually": "לא הצלחנו להשיג הזרמה של שידור חי, נסה להשיג את מפתח שידור החי מיוטיוב.", + "googlePrivacyPolicy": "מדיניות הפרטיות של גוגל", + "invalidStreamKey": "מפתח השידור החי עשוי להיות שגוי.", + "off": "שידור חי הופסק", + "offBy": "{{name}} הפסיק את השידור החי", + "on": "שידור חי", + "onBy": "{{name}} הפעיל את השידור החי", + "pending": "מתחיל שידור חי…", + "serviceName": "שירותי שידור חי", + "signIn": "התחבר באמצעות גוגל", + "signInCTA": "התחבר או הזן מפתח שידור חי מיוטיוב.", + "signOut": "התנתק", + "signedInAs": "אתה מחובר כעת כ:", + "start": "התחל שידור חי", + "streamIdHelp": "מה זה?", + "title": "שידור חי", + "unavailableTitle": "שידור חי לא זמין", + "youtubeTerms": "תנאי השירות של יוטיוב" + }, + "localRecording": { + "clientState": { + "off": "כבוי", + "on": "מופעל", + "unknown": "לא ידוע" + }, + "dialogTitle": "בקרי הקלטה מקומיים", + "duration": "משך הזמן", + "durationNA": "ל/ז", + "encoding": "קידוד", + "label": "הקלטה מקומית", + "labelToolTip": "הקלטה מקומית פועלת", + "localRecording": "הקלטה מקומית", + "me": "אני", + "messages": { + "engaged": "הקלטה מקומית עסוקה.", + "finished": "הפעלת ההקלטה {{token}} הסתיימה. אנא שלחו את הקובץ המוקלט למנחה.", + "finishedModerator": "הפעלת ההקלטה {{token}} הסתיימה. הקלטת הרצועה המקומית נשמרה. אנא בקש מהמשתתפים האחרים להגיש את הקלטותיהם.", + "notModerator": "אינך המנחה. אינך יכול להתחיל או להפסיק הקלטה מקומית." + }, + "moderator": "מנחה", + "no": "לא", + "participant": "משתתף", + "participantStats": "סטטיסטיקות משתתפים", + "sessionToken": "אסימון מושב", + "start": "התחל להקליט", + "stop": "הפסק להקליט", + "yes": "כן" + }, + "lockRoomPassword": "סיסמה", + "lockRoomPasswordUppercase": "סיסמה", + "lonelyMeetingExperience": { + "button": "הזמן אחרים", + "youAreAlone": "אתה היחידי במפגש זה" + }, + "me": "אני", + "notify": { + "OldElectronAPPTitle": "פגיעות אבטחה!", + "connectedOneMember": "{{name}} הצטרף למפגש", + "connectedThreePlusMembers": "{{name}} ו-{{count}} אחרים הצטרפו למפגש", + "connectedTwoMembers": "{{first}} ו-{{second}} הצטרפו למפגש", + "disconnected": "מנותק", + "focus": "התמקדות בכנס", + "focusFail": "{{component}} לא זמין - נסה שוב בעוד {{ms}} שניות", + "grantedTo": "הוענקו הרשאות מנחה ל-{{to}}!", + "invitedOneMember": "{{name}} הוזמן", + "invitedThreePlusMembers": "{{name}}ו- {{count}} אחרים הוזמנו", + "invitedTwoMembers": "{{first}} ו-{{second}} הוזמנו", + "kickParticipant": "{{kicked}} נזרק על ידי {{kicker}}", + "me": "אני", + "moderator": "הוענקו הרשאות מנחה!", + "muted": "התחלת את השיחה בהתשקה.", + "mutedRemotelyDescription": "", + "mutedRemotelyTitle": "הושתקת על ידי {{participantDisplayName}}!", + "mutedTitle": "הושתקת!", + "newDeviceAction": "השתמש", + "newDeviceAudioTitle": "זוהה התקן שמע חדש", + "newDeviceCameraTitle": "זוהתה מצלמה חדשה", + "oldElectronClientDescription1": "נראה שאתה משתמש בגירסה ישנה של לקוח Jitsi Meet עם פגיעויות אבטחה ידועות. אנא וודא שאתה מעדכן ", + "oldElectronClientDescription2": "לגירסה האחרונה", + "oldElectronClientDescription3": " כעת!", + "passwordRemovedRemotely": "", + "passwordSetRemotely": "", + "raisedHand": "{{name}} מעוניין לדבר.", + "somebody": "מישהו", + "startSilentDescription": "הצטרף שוב לפגישה כדי לאפשר שמע", + "startSilentTitle": "הצטרפת ללא פלט שמע!", + "suboptimalExperienceDescription": "אופ… אנו חוששים שהחוויה שלך עם {{appName}} לא תהיה נהדרת כאן. אנו מחפשים דרכים לשפר זאת, אך עד אז, נסה להשתמש באחד מהדפדפנים הנתמכים לחלוטין.", + "suboptimalExperienceTitle": "אזהרת דפדפן", + "unmute": "בטל השתקה" + }, + "passwordDigitsOnly": "עד {{number}} ספרות", + "passwordSetRemotely": "נקבע על ידי חבר אחר", + "polls": { + "errors": { + "notUniqueOption": "האפשרויות חייבות להיות ייחודיות" + } + }, + "poweredby": "מופעל על ידי", + "presenceStatus": { + "busy": "עסוק", + "calling": "מחייג…", + "connected": "מחובר", + "connecting": "מתחבר…", + "connecting2": "מתחבר*…", + "disconnected": "מנותק", + "expired": "פג תוקף", + "ignored": "התעלמו", + "initializingCall": "מאתחל שיחה…", + "invited": "הוזמנו", + "rejected": "דחו", + "ringing": "מצלצל…" + }, + "profile": { + "setDisplayNameLabel": "הגדר שם תצוגה", + "setEmailInput": "הזן דואר אלקטרוני", + "setEmailLabel": "הזן את כתובת הדואר האלקטרוני של gravatar", + "title": "פרופיל" + }, + "raisedHand": "רוצה לדבר", + "recording": { + "authDropboxText": "העלאה אל Dropbox", + "availableSpace": "שטח זמין: {{spaceLeft}} מ\"ב (בערך {{duration}} דקות הקלטה)", + "beta": "בטא", + "busy": "אנו עובדים על שחרור משאבי הקלטה. אנא נסה שוב בעוד מספר דקות.", + "busyTitle": "כל המקליטים עסוקים כרגע", + "error": "ההקלטה כשלה. אנא נסה שוב.", + "expandedOff": "ההקלטה הופסקה", + "expandedOn": "הפגישה מתועדת כעת.", + "expandedPending": "ההקלטה עומדת להתחיל…", + "failedToStart": "התחלת הקלטה כשלה", + "fileSharingdescription": "שתף את ההקלטה עם משתתפי הפגישה", + "live": "חי", + "loggedIn": "מחובר כ-{{userName}}", + "off": "ההקלטה הופסקה", + "offBy": "{{name}} עצר את ההקלטה", + "on": "מקליט", + "onBy": "{{name}} הפעיל את ההקלטה", + "pending": "מתכונן להקליט את הפגישה…", + "rec": "מקליט", + "serviceDescription": "ההקלטה שלך תישמר על ידי שירותי ההקלטה", + "serviceName": "שירותי הקלטה", + "signIn": "התחבר", + "signOut": "התנתק", + "title": "מקליט", + "unavailable": "אופס! {{ServiceName}} אינו זמין כרגע. אנו עובדים על פיתרון הבעיה. אנא נסה שוב מאוחר יותר.", + "unavailableTitle": "הקלטה אינה זמינה" + }, + "sectionList": { + "pullToRefresh": "משוך לרענון" + }, + "settings": { + "calendar": { + "about": "האינטגרציה של לוח השנה {{appName}} משמשת לגישה מאובטחת ללוח השנה שלך כך שתוכל לקרוא אירועים קרובים.", + "disconnect": "מנותק", + "microsoftSignIn": "התחבר עם מיקרוסופט", + "signedIn": "נכנס כעת לאירועי לוח השנה עבור {{email}}. לחץ על כפתור הניתוק למטה כדי להפסיק את הגישה לאירועי לוח השנה.", + "title": "לוח שנה" + }, + "devices": "התקן", + "followMe": "כולם עוקבים אחריי", + "language": "שפה", + "loggedIn": "מחובר כ-{{name}}", + "microphones": "מיקרופונים", + "moderator": "מנחה", + "more": "עוד", + "name": "שם", + "noDevice": "ללא", + "selectAudioOutput": "פלט שמע", + "selectCamera": "מצלמה", + "selectMic": "מיקרופון", + "speakers": "דוברים", + "startAudioMuted": "כולם יתחילו מושתקים", + "startVideoMuted": "כולם יתחילו מוסתרים", + "title": "הגדרות" + }, + "settingsView": { + "advanced": "מתקדם", + "alertOk": "אישור", + "alertTitle": "אזהרה", + "alertURLText": "כתובת האתר של השרת שהוזנה אינה חוקית", + "buildInfoSection": "מידע בנייה", + "conferenceSection": "ועידה", + "disableCallIntegration": "השבת אינטגרציה של שיחות מקוריות", + "disableP2P": "כבה מצב עמית לעמית", + "displayName": "שם תצוגה", + "email": "דוא\"ל", + "header": "הגדרות", + "profileSection": "פרופיל", + "serverURL": "כתובת שרת", + "showAdvanced": "הצג הגדרות מתקדמות", + "startWithAudioMuted": "התחל עם שמע מושתק", + "startWithVideoMuted": "התחל עם וידאו מושתק", + "version": "גרסה" + }, + "share": { + "dialInfoText": "\n\n=====\n\nרק תרצו לחייג בטלפון שלכם?\n\n{{defaultDialInNumber}}לחץ על קישור זה כדי לראות את מספרי הטלפון לחיוג עבור מפגש זה.\n{{dialInfoPageUrl}}", + "mainText": "לחץ על הקישור הבא כדי להצטרף לפגישה:\n{{roomUrl}}" + }, + "speaker": "דובר", + "speakerStats": { + "hours": "{{count}} שעות", + "minutes": "{{count}} דקות", + "name": "שם", + "search": "לחפש", + "searchHint": "חפש משתתפים", + "seconds": "{{count}} שניות", + "speakerStats": "סטטיסטיקות דיבורים", + "speakerTime": "זמן דיבור" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} צריך להשתמש ברמקול ובמצלמה שלך." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "הצטרף שוב", + "text": "לחץ על כפתור הצטרף שוב כדי להתחבר שוב.", + "title": "שיחת הווידאו שלך הופסקה מכיוון שהמחשב הזה רוצה לישון." + }, + "toolbar": { + "Settings": "הגדרות", + "accessibilityLabel": { + "Settings": "שנה הגדרות", + "audioOnly": "שנה שמע בלבד", + "audioRoute": "בחר התקן שמע", + "callQuality": "נהל איכות שיחה", + "cc": "שנה כתוביות", + "chat": "שנה חלון צ'אט", + "document": "שנה מסמך משותף", + "download": "הורד את היישום שלנו", + "feedback": "השאר משוב", + "fullScreen": "שנה מסך מלא", + "hangup": "עזוב את השיחה", + "help": "עזרה", + "invite": "הזמן אנשים", + "kick": "גרש משתתף", + "localRecording": "שנה פקדי הקלטה מקומיים", + "lockRoom": "שנה את סיסמת הפגישה", + "moreActions": "שנה תפריט פעולות נוספות", + "moreActionsMenu": "תפריט פעולות נוספות", + "moreOptions": "הצג אפשרויות נוספות", + "mute": "שנה השתקת שמע", + "muteEveryone": "השתק את כולם", + "pip": "שנה מצב תמונה בתוך תמונה", + "privateMessage": "שלח הודעה פרטית", + "profile": "ערוך את הפרופיל שלך", + "raiseHand": "שנה הרמת יד", + "recording": "שנה הקלטה", + "remoteMute": "השתק משתתף", + "shareRoom": "הזמן מישהו", + "shareYourScreen": "שנה שיתוף מסך", + "sharedvideo": "שנה שיתוף וידאו מיוטיוב", + "shortcuts": "שנה קיצורי דרך", + "show": "הצג על הבמה", + "speakerStats": "שנה סטטיסטיקות דוברים", + "tileView": "שנה תצוגת אריחים", + "toggleCamera": "שנה מצלמה", + "toggleFilmstrip": "שנה את הסרט", + "videoblur": "שנה טשטוש וידאו", + "videomute": "שנה השתקת וידאו" + }, + "addPeople": "הוסף אנשים לשיחה שלך", + "audioOnlyOff": "כבה מצב שמע בלבד", + "audioOnlyOn": "הפעל מצב שמע בלבד", + "audioRoute": "בחר התקן שמע", + "authenticate": "אימות", + "callQuality": "נהל איכות שיחה", + "chat": "פתח / סגור צ'אט", + "closeChat": "סגור צ'אט", + "documentClose": "סגור מסמך משותף", + "documentOpen": "פתח מסמך משותף", + "download": "הורד את היישום שלנו", + "enterFullScreen": "הצג מסך מלא", + "enterTileView": "היכנס לתצוגת אריחים", + "exitFullScreen": "צא ממסך מלא", + "exitTileView": "צא מתצוגת אריחים", + "feedback": "השאר משוב", + "hangup": "עזוב", + "help": "עזרה", + "invite": "הזמן אנשים", + "login": "התחבר", + "logout": "התנתק", + "lowerYourHand": "הורד את היד", + "moreActions": "פעולות נוספות", + "moreOptions": "אפשרויות נוספות", + "mute": "השתק / בטל השתקה", + "muteEveryone": "השתק את כולם", + "noAudioSignalDesc": "אם לא השתקת אותו בכוונה מהגדרות המערכת או החומרה, שקול להחליף את ההתקן.", + "noAudioSignalDescSuggestion": "אם לא השתקת אותה בכוונה מהגדרות המערכת או החומרה, שקול לעבור להתקן המוצע.", + "noAudioSignalDialInDesc": "אתה יכול גם לחייג באמצעות:", + "noAudioSignalDialInLinkDesc": "מספרי חיוג", + "noAudioSignalTitle": "אין שום קלט שמגיע מהמיקרופון שלך!", + "noisyAudioInputDesc": "זה נשמע כאילו המיקרופון שלך עושה רעש, אנא שקול להשתיק או לשנות את ההתקן.", + "noisyAudioInputTitle": "נראה שהמיקרופון שלך רועש!", + "openChat": "פתח צ'אט", + "pip": "הכנס למצב תמונה בתוך תמונה", + "privateMessage": "שלח הודעה פרטית", + "profile": "ערוך את הפרופיל שלך", + "raiseHand": "הרם / הורד את היד", + "raiseYourHand": "הרם את היד", + "shareRoom": "הזמן מישהו", + "sharedvideo": "שתף וידאו מיוטיוב", + "shortcuts": "הצד קיצורי דרך", + "speakerStats": "סטטיסטיקות דובר", + "startScreenSharing": "התחל שיתוף מסך", + "startSubtitles": "התחל כתוביות", + "startvideoblur": "טשטש את הרקע שלי", + "stopScreenSharing": "הפסק שיתוף מסך", + "stopSharedVideo": "הפסק וידאו מיוטיוב", + "stopSubtitles": "הפסק כתוביות", + "stopvideoblur": "כבה את טשטוש הרקע", + "talkWhileMutedPopup": "מנסה לדבר? אתה מושתק.", + "tileViewToggle": "שנה לתצוגת אריחים", + "toggleCamera": "שנה מצלמה", + "videomute": "הפעל / כבה מצלמה" + }, + "transcribing": { + "ccButtonTooltip": "הפעל / כבה כתוביות", + "error": "התמלול נכשל. אנא נסה שוב.", + "expandedLabel": "התמלול פועל כעת", + "failedToStart": "הפעלת תמלול כשלה", + "labelToolTip": "הפגישה מתומללת", + "off": "התמלול פסק", + "pending": "מתכונן לתמלול הפגישה…", + "start": "התחל הצגת כתוביות", + "stop": "עצור הצגת כתוביות", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "אנא הענק הרשאות להשתמש במצלמה ובמיקרופון שלך." + }, + "videoSIPGW": { + "busy": "אנו עובדים על שחרור משאבים. אנא נסה שוב בעוד מספר דקות.", + "busyTitle": "שירות החדרים תפוס כרגע", + "errorAlreadyInvited": "{{displayName}} כבר הוזמן", + "errorInvite": "ועידה טרם הוקמה. אנא נסה שוב מאוחר יותר.", + "errorInviteFailed": "אנו עובדים על פיתרון הבעיה. אנא נסה שוב מאוחר יותר.", + "errorInviteFailedTitle": "הזמנת {{displayName}} כשלה", + "errorInviteTitle": "שגיאה בהזמנת החדר", + "pending": "{{displayName}} הוזמן" + }, + "videoStatus": { + "audioOnly": "שמע", + "audioOnlyExpanded": "אתה נמצא במצב שמע בלבד. מצב זה חוסך רוחב פס אך לא תראה קטעי וידאו של אחרים.", + "callQuality": "איכות שיחה", + "hd": "HD", + "hdTooltip": "צופה בוידיאו בהבחנה גבוהה", + "highDefinition": "הבחנה גבוהה", + "labelTooiltipNoVideo": "ללא וידאו", + "labelTooltipAudioOnly": "מצב שמע בלבד מופעל", + "ld": "LD", + "ldTooltip": "צופה בוידאו בהבחנה נמוכה", + "lowDefinition": "הבחנה נמוכה", + "onlyAudioAvailable": "שמע בלבד זמין", + "onlyAudioSupported": "אנו תומכים בשמע בלבד בדפדפן זה.", + "sd": "SD", + "sdTooltip": "צופה בוידאו בהבחנה רגילה", + "standardDefinition": "הבחנה רגילה" + }, + "videothumbnail": { + "domute": "השתק", + "domuteOthers": "השתק גם את כולם", + "flip": "הפוך", + "kick": "גרש החוצה", + "moderator": "מנחה", + "mute": "החבר מושתק", + "muted": "מושתק", + "remoteControl": "שליטה מרחוק", + "show": "", + "videomute": "החבר עצר את המצלמה" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "לחץ כדי להצטרף", + "roomname": "הזן שם חדר" + }, + "appDescription": "קדימה, צ'אט וידאו עם כל הצוות. למעשה, הזמינו את כל מי שאתם מכירים. {{app}} הוא פיתרון ועידת וידיאו עם 100% קוד מקור פתוח, מוצפן לחלוטין, בו תוכלו להשתמש כל היום, כל יום ובחינם - ללא צורך בחשבון.", + "audioVideoSwitch": { + "audio": "שמע", + "video": "וידאו" + }, + "calendar": "לוח שנה", + "connectCalendarButton": "התחבר ללוח השנה שלך", + "connectCalendarText": "", + "enterRoomTitle": "התחל פגישה חדשה", + "getHelp": "השג עזרה", + "go": "סע", + "goSmall": "סע", + "info": "מידע", + "join": "צור / הצטרף", + "privacy": "פרטיות", + "recentList": "לאחרונה", + "recentListDelete": "מחק", + "recentListEmpty": "הרשימה האחרונה שלך ריקה כרגע. שוחח בצ'אט עם הצוות שלך ותמצא כאן את כל הפגישות האחרונות שלך.", + "reducedUIText": "ברוכים הבאים אל {{app}}!", + "roomNameAllowedChars": "שם הפגישה לא אמור להכיל אף אחת מהתווים הבאים: ?, &, :, ', \", %, #.", + "roomname": "הזן שם חדר", + "roomnameHint": "הזן את שם או כתובת האתר של החדר שאליו ברצונך להצטרף. אתה רשאי להגדיר שם, רק יידע את האנשים שאתה מעוניין להפגש איתם לדעת על כך, כדי שהם ייכנסו לאותו שם.", + "sendFeedback": "שלח משוב", + "terms": "תנאים", + "title": "ועידת וידיאו מאובטחת, אפשרויות מלאות ומוצגת בחינם" + } +} diff --git a/lang/main-hi.json b/lang/main-hi.json new file mode 100644 index 0000000..23138a0 --- /dev/null +++ b/lang/main-hi.json @@ -0,0 +1,977 @@ +{ + "addPeople": { + "add": "आमंत्रित करें", + "addContacts": "संपर्क सूची से आमंत्रित करे", + "copyInvite": "मीटिंग के आमंत्रण कि प्रतिलिपि बनाये", + "copyLink": "मीटिंग कि लिंक कि प्रतिलिपि बनाये", + "copyStream": "सीधे प्रसारण कि लिंक कि प्रीतिलिपि बनाये", + "countryNotSupported": "अभी हम इस गतव्य के लिये सक्षम न‍ही है ।", + "countryReminder": "यू.एस. के बाहर से काल कर रहे है तो कृपया सुनिश्चित करे कि अपने देश के कोड़ से प्रारंभ कर रहे है !", + "defaultEmail": "अपना ई-मेल पता लिखें", + "disabled": "आप अन्‍य लोगों को आमंत्रित नही कर सकते", + "failedToAdd": "प्रतिभागियों को जोड़ने में विफल", + "footerText": "बाहर डालय करना प्रतिबंधित है", + "googleEmail": "गूगल ई-मेल", + "inviteMoreHeader": "मीटिंग मे केवल आप ही हैं", + "inviteMoreMailSubject": "मीटिंग में शामिल हो {{appName}} ", + "inviteMorePrompt": "और लोगों को आमंत्रित करें", + "linkCopied": "लिंक कि प्रतिलिपि बनायी गयी", + "loading": "लोगों को उनके मोबाइल नंबर से खोजा जा रहा हैं ", + "loadingNumber": "मोबाइल नम्बर कि जांच हो रही है ", + "loadingPeople": "लोगों को आमंत्रित करने के लिए खोजा जा रहा हैं ", + "noResults": "कोई मिलान खोज परिणाम नहीं", + "noValidNumbers": "कृपया एक फ़ोन नंबर दर्ज करें", + "outlookEmail": "आउटलुक ईमेल", + "searchNumbers": "फ़ोन नंबर जोड़ें", + "searchPeople": "लोगों को खोजें", + "searchPeopleAndNumbers": "लोगों को खोजें या उनके फ़ोन नंबर जोड़ें", + "shareInvite": "मीटिंग आमंत्रण साझा करे ", + "shareLink": "दूसरों को आमंत्रित करने के लिए मीटिंग लिंक साझा करें", + "shareStream": "सीधे प्रसारण लिंक साझा करें", + "sip": "SIP: {{address}}", + "telephone": "टेलीफोन: {{number}}", + "title": "लोगों को इस बैठक में आमंत्रित करें", + "yahooEmail": "याहू ईमेल" + }, + "audioDevices": { + "bluetooth": "ब्लूटूथ", + "headphones": "हेडफ़ोन", + "none": "कोई ऑडियो डिवाइस उपलब्ध नहीं", + "phone": "फ़ोन", + "speaker": "स्पीकर" + }, + "audioOnly": { + "audioOnly": "लो बैंडविड्थ" + }, + "calendarSync": { + "addMeetingURL": "एक मीटिंग लिंक जोड़ें", + "confirmAddLink": "क्या आप इस इवेंट में एक Jitsi लिंक जोड़ना चाहते हैं?", + "error": { + "appConfiguration": "कैलेंडर एकीकरण ठीक से कॉन्फ़िगर नहीं किया गया है।", + "generic": "एक त्रुटि हुई है। कृपया अपनी कैलेंडर सेटिंग जांचें या कैलेंडर को रीफ़्रेश करने का प्रयास करें।", + "notSignedIn": "कैलेंडर ईवेंट देखने के लिए प्रमाणित करते समय एक त्रुटि हुई। कृपया अपनी कैलेंडर सेटिंग जांचें और फिर से लॉग इन करने का प्रयास करें।" + }, + "join": "जुड़े", + "joinTooltip": "मीटिंग में शामिल हों", + "nextMeeting": "अगली मीटिंग", + "noEvents": "कोई आगामी कार्यक्रम निर्धारित नहीं हैं।", + "ongoingMeeting": "चल रही बैठक", + "permissionButton": "सेटिंग्स खोले ", + "permissionMessage": "ऐप में आपकी मीटिंग देखने के लिए कैलेंडर की अनुमति आवश्यक है।", + "refresh": "कैलेंडर रीफ़्रेश करें", + "today": "आज" + }, + "chat": { + "enter": "चैट रूम में प्रवेश करें", + "error": "त्रुटि: आपका संदेश नहीं भेजा गया । कारण: {{error}}", + "fieldPlaceHolder": "अपना संदेश यहां लिखें", + "messageTo": "{{recipient}} के लिए निजी संदेश", + "messagebox": "एक संदेश टाइप करें", + "nickname": { + "popover": "एक उपनाम चुनें", + "title": "चैट का उपयोग करने के लिए एक उपनाम दर्ज करें", + "titleWithPolls": "चैट का उपयोग करने के लिए एक उपनाम दर्ज करें" + }, + "noMessagesMessage": "अभी तक मीटिंग में कोई संदेश नहीं आया है। वार्तालाप प्रारंभ करें!", + "privateNotice": "{{recipient}} के लिए निजी संदेश", + "sendButton": "भेजें", + "title": "चैट", + "titleWithPolls": "चैट", + "you": "आप" + }, + "chromeExtensionBanner": { + "buttonText": "क्रोम एक्सटेंशन इंस्टॉल करें", + "dontShowAgain": "मुझे यह फिर से न दिखाएं", + "installExtensionText": ",गूगल कैलेंडर और ऑफिस 365 एकीकरण के लिए एक्सटेंशन इंस्टॉल करें" + }, + "connectingOverlay": { + "joiningRoom": "आपको आपकी मीटिंग से कनेक्ट किया जा रहा है…" + }, + "connection": { + "ATTACHED": "संलग्न", + "AUTHENTICATING": "प्रमाणीकरण", + "AUTHFAIL": "प्रमाणीकरण विफल", + "CONNECTED": "जुड़े हुए हैं", + "CONNECTING": "जोड़ा जा रहा हैं ", + "CONNFAIL": "नहीं जोड़ा जा सका ", + "DISCONNECTED": "संपर्क विफ़ल ", + "DISCONNECTING": "संपर्क हटाया जा रहा ", + "ERROR": "त्रुटि", + "FETCH_SESSION_ID": "सत्र-आईडी प्राप्त की जा रही हैं …", + "GET_SESSION_ID_ERROR": "सत्र-आईडी त्रुटि प्राप्त करें: {{code}}", + "GOT_SESSION_ID": "सत्र-आईडी प्राप्त की जा रही हैं… पूर्ण", + "LOW_BANDWIDTH": "बैंडविड्थ को बचाने के लिए {{displayName}} का वीडियो बंद कर दिया गया है" + }, + "connectionindicator": { + "address": "पता:", + "audio_ssrc": "ऑडियो एस.आर.सी.सी.:", + "bandwidth": "अनुमानित बैंडविड्थ:", + "bitrate": "बिटरेट:", + "bridgeCount": "सर्वर गणना: ", + "codecs": "कोडेक (ए/वी): ", + "connectedTo": "से जुड़ा हुआ है :", + "framerate": "फ्रेम दर:", + "less": "कम दिखाएं", + "localaddress": "स्थानीय पता:", + "localaddress_plural": "स्थानीय पते:", + "localport": "local port:", + "localport_plural": "Local ports:", + "maxEnabledResolution": "send max", + "more": "और दिखाएं", + "packetloss": "पैकेट लॉस:", + "participant_id": "प्रतिभागी आईडी:", + "quality": { + "good": "अच्छी", + "inactive": "निष्क्रिय", + "lost": "गया", + "nonoptimal": "अयुक्ततम", + "poor": "घटिया" + }, + "remoteaddress": "रिमोट एड्रेस:", + "remoteaddress_plural": "रिमोट एड्रेसेस:", + "remoteport": "रिमोट port:", + "remoteport_plural": "रिमोट ports:", + "resolution": "रेसोलुशन:", + "savelogs": "लॉग सहेजे", + "status": "सम्पर्क:", + "transport": "ट्रांसपोर्ट :", + "transport_plural": "ट्रांसपोर्ट्स:", + "video_ssrc": "वीडियो एस.आर.सी.सी.:" + }, + "dateUtils": { + "earlier": "पिछला कल", + "today": "आज", + "yesterday": "अगला कल" + }, + "deepLinking": { + "appNotInstalled": "आपको अपने फ़ोन पर इस मीटिंग में शामिल होने के लिए {{app}} मोबाइल ऐप की आवश्यकता है। ", + "description": "हमने आपकी मीटिंग {{app}} डेस्कटॉप ऐप में लॉन्च करने की कोशिश की। कुछ नहीं हुआ? फिर से कोशिश करें या {{app}} वेब ऐप में लॉन्च करें।", + "descriptionWithoutWeb": "हमने आपकी मीटिंग {{app}} डेस्कटॉप ऐप में लॉन्च करने की कोशिश की। कुछ नहीं हुआ?", + "downloadApp": "एप्लिकेशन डाउनलोड करें", + "ifDoNotHaveApp": "यदि आपके पास अभी तक ऐप नहीं है:", + "ifHaveApp": "यदि आपके पास पहले से ही ऐप है:", + "joinInApp": "ऐप का उपयोग करके इस मीटिंग में शामिल हों", + "launchWebButton": "वेब में लॉन्च करे", + "title": "{{app}} में आपकी मीटिंग शुरू की जा रही हैं…", + "tryAgainButton": "डेस्कटॉप में फिर से प्रयास करें" + }, + "defaultLink": "उदाहरण {{url}}", + "defaultNickname": "उदा. सतीष कुमार", + "deviceError": { + "cameraError": "कैमरे को एक्सेस करने में विफल", + "cameraPermission": "कैमरा अनुमति प्राप्त करने में त्रुटि", + "microphoneError": "माइक्रोफ़ोन को एक्सेस करने में विफल", + "microphonePermission": "माइक्रोफ़ोन अनुमति प्राप्त करने में त्रुटि" + }, + "deviceSelection": { + "noPermission": "अनुमति नहीं दी गई", + "previewUnavailable": "पूर्वदर्शन अनुपलब्ध", + "selectADevice": "डिवाइस का चयन करें", + "testAudio": "टेस्ट साउंड प्ले करें" + }, + "dialOut": { + "statusMessage": "अब {{status}} है" + }, + "dialog": { + "Back": "पीछे जाए", + "Cancel": "रद्द करें", + "IamHost": "मैं मेजबान हूँ", + "Ok": "ठीक है", + "Remove": "निकालें", + "Share": "Share", + "Submit": "सबमिट करें", + "WaitForHostMsg": "सम्मेलन अभी तक शुरू नहीं हुआ है। यदि आप मेजबान हैं तो कृपया प्रमाणित करें। अन्यथा, कृपया मेजबान के आने की प्रतीक्षा करें।", + "WaitingForHostTitle": "होस्ट की प्रतीक्षा कर रहा है…", + "Yes": "हाँ", + "accessibilityLabel": { + "liveStreaming": "सीधा प्रसारण" + }, + "add": "जोड़ें", + "allow": "अनुमति दें", + "alreadySharedVideoMsg": "एक अन्य प्रतिभागी पहले से ही वीडियो साझा कर रहा है। यह सम्मेलन एक समय में केवल एक साझा की अनुमति देता है।", + "alreadySharedVideoTitle": "एक समय में केवल एक साझा वीडियो की अनुमति है", + "applicationWindow": "एप्लिकेशन विंडो", + "authenticationRequired": "प्रमाणीकरण आवश्यक है", + "cameraConstraintFailedError": "आपका कैमरा आवश्यक बाधाओं में से कुछ को पूरा नहीं करता है।", + "cameraNotFoundError": "कैमरा नहीं मिला।", + "cameraNotSendingData": "हम आपके कैमरे का उपयोग करने में असमर्थ हैं। कृपया जांचें कि क्या कोई अन्य एप्लिकेशन इस डिवाइस का उपयोग तो नहीं कर रहा है, सेटिंग मेनू से किसी अन्य डिवाइस का चयन करें या एप्लिकेशन को फिर से लोड करने का प्रयास करें।", + "cameraNotSendingDataTitle": "कैमरा उपयोग करने में असमर्थ", + "cameraPermissionDeniedError": "आपने अपने कैमरे का उपयोग करने की अनुमति नहीं दी है। आप अभी भी सम्मेलन में शामिल हो सकते हैं लेकिन अन्य लोग आपको नहीं देख सकेंगे। इसे ठीक करने के लिए पता बार में कैमरा बटन का उपयोग करें।", + "cameraTimeoutError": "वीडियो स्रोत प्रारंभ नहीं किया जा सका। समय समाप्त हो गया!", + "cameraUnknownError": "अज्ञात कारण की वजह से कैमरे का उपयोग नहीं किया जा सकता है।", + "cameraUnsupportedResolutionError": "आपका कैमरा आवश्यक वीडियो रिज़ॉल्यूशन का समर्थन नहीं करता है।", + "close": "बंद करें", + "conferenceDisconnectMsg": "आप अपने नेटवर्क कनेक्शन की जांच कर सकते है। . {{seconds}} सेकंड में पुनः कनेक्ट किया जायेंगा…", + "conferenceDisconnectTitle": "आपको डिस्कनेक्ट कर दिया गया है।", + "conferenceReloadMsg": "हम इसे ठीक करने का प्रयास कर रहे हैं। {{seconds}} सेकंड में पुनः कनेक्ट कर रहे हैं…", + "conferenceReloadTitle": "दुर्भाग्य से, कुछ गलत हो गया।", + "confirm": "पुष्टि करें", + "confirmNo": "नहीं", + "confirmYes": "हाँ", + "connectError": "उफ़! कुछ गड़बड़ हो गई और हम सम्मेलन से जुड़ नहीं सके।", + "connectErrorWithMsg": "उफ़! कुछ गड़बड़ हो गई और हम सम्मेलन से नहीं जुड़ सके: {{msg}}", + "connecting": "संपर्क जोड़ा जा रहा है ", + "contactSupport": "सहयोग के लिए संपर्क करें", + "copied": "प्रतिलिपि बनाई गयी ", + "copy": "प्रतिलिपि बनाये", + "dismiss": "खारिज करें", + "displayNameRequired": "नमस्ते! आपका नाम क्या है?", + "done": "हो गया ", + "e2eeDescription": "एंड-टू-एंड एन्क्रिप्शन वर्तमान में प्रयोगात्मक है। कृपया ध्यान रखें कि एंड-टू-एंड एन्क्रिप्शन को चालू करने से सर्वर-साइड सेवाएं जैसे: रिकॉर्डिंग, लाइव स्ट्रीमिंग और फोन भागीदारी निष्क्रिय । Also keep in mind that the meeting will only work for people joining from browsers with support for insertable streams.", + "e2eeLabel": "एंड-टू-एंड एन्क्रिप्शन सक्षम करें", + "e2eeWarning": "चेतावनी: इस मीटिंग में सभी प्रतिभागियों के पास एंड-टू-एंड एन्क्रिप्शन के लिए समक्षता नहीं है। यदि आप इसे सक्षम करते हैं तो वे आपको देखने और सुनने में सक्षम नहीं होंगे।", + "enterDisplayName": "कृपया यहाँ अपना नाम लिखें", + "error": "त्रुटि", + "gracefulShutdown": "हमारी सेवा वर्तमान में रखरखाव के लिए बंद है। कृपया बाद में पुनः प्रयास करें।", + "grantModeratorDialog": "क्या आप वाकई इस प्रतिभागी को एक मध्यस्थ बनाना चाहते हैं?", + "grantModeratorTitle": "मध्यस्थ स्वीकृती दे ", + "incorrectPassword": "गलत उपयोगकर्ता नाम या पासवर्ड", + "incorrectRoomLockPassword": "गलत पासवर्ड", + "internalError": "उफ़! कुछ गड़बड़ हो गई। निम्नलिखित त्रुटि हुई: {{error}}", + "internalErrorTitle": "आंतरिक त्रुटि", + "kickMessage": "आप अधिक जानकारी के लिए {{participantDisplayName}} से संपर्क कर सकते हैं।", + "kickParticipantButton": "निकालें", + "kickParticipantDialog": "क्या आप वाकई इस प्रतिभागी को निकलना चाहते हैं?", + "kickParticipantTitle": "इस प्रतिभागी को निकाले?", + "kickTitle": "अरे! {{participantDisplayName}} ने आपको मीटिंग से बाहर कर दिया", + "liveStreaming": "सीधा प्रसारण", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "रिकॉर्डिंग सक्रिय होने के दौरान संभव नहीं है", + "liveStreamingDisabledTooltip": "सीधा प्रसारण करना निष्क्रिय है ", + "lockMessage": "सम्मेलन को लॉक करने में विफल।", + "lockRoom": "मीटिंग जोड़ें $t(lockRoomPasswordUppercase)", + "lockTitle": "लॉक फेल", + "login": "लॉग इन", + "logoutQuestion": "क्या आप वाकई लॉगआउट और कॉन्फ्रेंस को रोकना चाहते हैं?", + "logoutTitle": "लॉग आउट ", + "maxUsersLimitReached": "अधिकतम प्रतिभागियों की सीमा पूरी हो चुकी है. कृपया बैठक के मालिक से संपर्क करें या बाद में पुनः प्रयास करें!!", + "maxUsersLimitReachedTitle": "अधिकतम प्रतिभागियों सीमा पार हो गई", + "micConstraintFailedError": "आपका माइक्रोफ़ोन आवश्यक प्रतिबंधों को पूरा नहीं करता।", + "micNotFoundError": "माइक्रोफोन नहीं मिला।", + "micNotSendingData": "अपने माइक को अनम्यूट करने और इसके स्तर को समायोजित करने के लिए अपने कंप्यूटर की सेटिंग पर जाएं", + "micNotSendingDataTitle": "आपका माइक आपकी सिस्टम सेटिंग्स द्वारा मौन है", + "micPermissionDeniedError": "आपने अपने माइक्रोफ़ोन का उपयोग करने की अनुमति नहीं दी है। आप अभी भी सम्मेलन में शामिल हो सकते हैं, लेकिन अन्य लोग आपको नहीं सुनेंगे। इसे ठीक करने के लिए पता बार में कैमरा बटन का उपयोग करें।", + "micTimeoutError": "ऑडियो स्रोत प्रारंभ नहीं किया जा सका। समय समाप्त हो गया!", + "micUnknownError": "अज्ञात कारण से माइक्रोफोन का उपयोग नहीं किया जा सकता है।", + "muteEveryoneDialog": "क्या आप वाकई सभी को म्यूट करना चाहते हैं? आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय खुद को अनम्यूट कर सकते हैं।", + "muteEveryoneElseDialog": "एक बार म्यूट होने के बाद, आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय खुद को अनम्यूट कर सकते हैं।", + "muteEveryoneElseTitle": "{{whom}} को छोड़कर सभी को म्यूट करें?", + "muteEveryoneElsesVideoDialog": "एक बार कैमरा अक्षम हो जाने पर, आप इसे वापस चालू नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय वापस चालू कर सकते हैं।", + "muteEveryoneElsesVideoTitle": "{{whom}} को छोड़कर सभी का कैमरा अक्षम करें?", + "muteEveryoneSelf": "अपने आप", + "muteEveryoneStartMuted": "Everyone starts muted from now on", + "muteEveryoneTitle": "सभी को म्यूट करें?", + "muteEveryonesVideoDialog": "क्या आप वाकई सभी के कैमरे को अक्षम करना चाहते हैं? आप इसे वापस चालू नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय वापस चालू कर सकते हैं।", + "muteEveryonesVideoDialogOk": "अक्षम करें", + "muteEveryonesVideoTitle": "सभी का कैमरा अक्षम करें?", + "muteParticipantBody": "आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय अनम्यूट कर सकते हैं।", + "muteParticipantButton": "म्यूट", + "muteParticipantDialog": "क्या आप वाकई इस प्रतिभागी को म्यूट करना चाहते हैं? आप उन्हें अनम्यूट नहीं कर पाएंगे, लेकिन वे किसी भी समय खुद को अनम्यूट कर सकते हैं।", + "muteParticipantTitle": "इस प्रतिभागी को म्यूट करें?", + "muteParticipantsVideoBody": "आप कैमरे को वापस चालू नहीं कर पाएंगे, लेकिन वे इसे किसी भी समय वापस चालू कर सकते हैं।", + "muteParticipantsVideoButton": "कैमरा अक्षम करें", + "muteParticipantsVideoTitle": "इस प्रतिभागी का कैमरा अक्षम करें?", + "passwordLabel": "बैठक में एक प्रतिभागी द्वारा ताला लगा दिया गया है। कृपया शामिल होने के लिए $t(lockRoomPassword) दर्ज करें।", + "passwordNotSupported": "मीटिंग $t(lockRoomPassword) सेट करना समर्थित नहीं है।", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) समर्थित नहीं है", + "passwordRequired": "$t(lockRoomPasswordUppercase) की आवश्यकता है", + "popupError": "आपका ब्राउज़र इस साइट से पॉप-अप विंडो को रोक रहा है। कृपया अपने ब्राउज़र की सुरक्षा सेटिंग्स में पॉप-अप को सक्षम करें और पुनः प्रयास करें।", + "popupErrorTitle": "पॉप-अप अवरुद्ध", + "readMore": "अधिक", + "recording": "रिकॉर्डिंग", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "संभव नहीं है जब एक लाइव स्ट्रीम सक्रिय है", + "recordingDisabledTooltip": "रिकॉर्डिंग शुरू करना अक्षम करें.", + "rejoinNow": "पुनः जुड़े", + "remoteControlAllowedMessage": "{{user}} ने आपका रिमोट कंट्रोल अनुरोध स्वीकार कर लिया!", + "remoteControlDeniedMessage": "{{user}} ने आपका रिमोट कंट्रोल अनुरोध अस्वीकार कर दिया!", + "remoteControlErrorMessage": "{{user}}से रिमोट कंट्रोल की अनुमति का अनुरोध करते समय एक त्रुटि हुई!", + "remoteControlRequestMessage": "क्या आप {{user}} को दूर से अपने डेस्कटॉप को नियंत्रित करने की अनुमति देंगे?", + "remoteControlShareScreenWarning": "ध्यान दें कि यदि आप \"अनुमति दें\" दबाते हैं, तो आप अपनी स्क्रीन साझा करेंगे!", + "remoteControlStopMessage": "रिमोट कंट्रोल सत्र समाप्त हो गया!", + "remoteControlTitle": "रिमोट डेस्कटॉप कंट्रोल", + "removePassword": "निकालें $t(lockRoomPassword)", + "removeSharedVideoMsg": "क्या आप वाकई अपने साझा किए गए वीडियो को निकालना चाहते हैं?", + "removeSharedVideoTitle": "साझा किया गया वीडियो निकालें", + "reservationError": "आरक्षण प्रणाली में त्रुटि", + "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}", + "retry": "पुनः प्रयास करें", + "screenSharingAudio": "ऑडियो साझा करें", + "screenSharingFailed": "उफ़! कुछ गड़बड़ हो गई, हम स्क्रीन शेयरिंग शुरू करने में सक्षम नहीं थे!", + "screenSharingFailedTitle": "स्क्रीन साझा करना विफल हुआ!", + "screenSharingPermissionDeniedError": "उफ़! आपकी स्क्रीन शेयरिंग अनुमतियों में कुछ गड़बड़ हो गई है। कृपया पुनः लोड करें और पुनः प्रयास करें।", + "sendPrivateMessage": "आपने हाल ही में एक निजी संदेश प्राप्त किया है। क्या आप उसका निजी रूप से जवाब देने का इरादा रखते हैं? या आप अपना संदेश समूह को भेजना चाहते हैं?", + "sendPrivateMessageCancel": "समूह को भेजें", + "sendPrivateMessageOk": "निजी तौर पर भेजें", + "sendPrivateMessageTitle": "निजी तौर पर भेजें?", + "serviceUnavailable": "सेवा अनुपलब्ध", + "sessTerminated": "कॉल समाप्त", + "sessionRestarted": "कनेक्शन समस्या के कारण कॉल पुनः प्रारंभ की गई", + "shareVideoLinkError": "कृपया एक सही यूट्यूब लिंक प्रदान करें।.", + "shareVideoTitle": "एक वीडियो साझा करें", + "shareYourScreen": "अपनी स्क्रीन साझा करें", + "shareYourScreenDisabled": "स्क्रीन साझाकरण अक्षम।", + "startLiveStreaming": "लाइव स्ट्रीम प्रारंभ करें", + "startRecording": "रिकॉर्डिंग प्रारंभ करें", + "startRemoteControlErrorMessage": "रिमोट कंट्रोल सत्र शुरू करने की कोशिश करते समय एक त्रुटि हुई!", + "stopLiveStreaming": "लाइव स्ट्रीम बंद करें", + "stopRecording": "रिकॉर्डिंग बंद करें", + "stopRecordingWarning": "क्या आप वाकई रिकॉर्डिंग को रोकना चाहते हैं?", + "stopStreamingWarning": "क्या आप वाकई लाइव स्ट्रीमिंग को रोकना चाहते हैं?", + "streamKey": "लाइव स्ट्रीम कुंजी", + "thankYou": " {{appName}} का उपयोग करने के लिए धन्यवाद!", + "token": "टोकन", + "tokenAuthFailed": "क्षमा करें, आपको इस कॉल में शामिल होने की अनुमति नहीं है।", + "tokenAuthFailedTitle": "प्रमाणीकरण विफल", + "transcribing": "प्रतिलेखन", + "unlockRoom": "मीटिंग को $t(lockRoomPassword) निकालें", + "user": "उपयोगकर्ता", + "userIdentifier": "उपयोगकर्ता पहचानकर्ता", + "userPassword": "उपयोगकर्ता पासवर्ड", + "videoLink": "वीडियो लिंक", + "yourEntireScreen": "आपकी पूरी स्क्रीन" + }, + "documentSharing": { + "title": "साझा दस्तावेज़" + }, + "e2ee": { + "labelToolTip": "इस कॉल पर ऑडियो और वीडियो संचार एंड-टू-एंड एन्क्रिप्टेड है" + }, + "embedMeeting": { + "title": "इस बैठक को एम्बेड करें" + }, + "feedback": { + "average": "औसत", + "bad": "बुरा", + "detailsLabel": "इसके बारे में अधिक बताएं।", + "good": "अच्छा", + "rateExperience": "अपने बैठक के अनुभव को रेट करें", + "veryBad": "बहुत बुरा", + "veryGood": "बहुत अच्छा" + }, + "helpView": { + "title": "सहायता केंद्र" + }, + "incomingCall": { + "answer": "उत्तर", + "audioCallTitle": "आने वाले कॉल", + "decline": "खारिज", + "productLabel": "जित्सी मीट से", + "videoCallTitle": "आने वाले वीडियो कॉल" + }, + "info": { + "accessibilityLabel": "जानकारी दिखाएं", + "addPassword": "$t(lockRoomPassword)जोड़ें", + "cancelPassword": "$t(lockRoomPassword)रद्द करें", + "conferenceURL": "लिंक:", + "country": "देश", + "dialANumber": "अपनी मीटिंग में शामिल होने के लिए, इनमें से किसी एक नंबर को डायल करें और फिर पिन डालें।", + "dialInConferenceID": "पिन:", + "dialInNotSupported": "क्षमा करें, वर्तमान में डायल करना समर्थित नहीं है।", + "dialInNumber": "डायल-इन:", + "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}}", + "inviteURLFirstPartGeneral": "आपको एक बैठक में शामिल होने के लिए आमंत्रित किया गया है।", + "inviteURLFirstPartPersonal": "{{name}} आपको मीटिंग के लिए आमंत्रित कर रहा है।\n", + "inviteURLSecondPart": "\nबैठक में शामिल हों:\n{{url}}\n", + "label": "डायल-इन जानकारी", + "liveStreamURL": "लाइव स्ट्रीम:", + "moreNumbers": "अधिक संख्या", + "noNumbers": "कोई डायल-इन नंबर नहीं।", + "noPassword": "कोई नहीं", + "noRoom": "डायल-इन करने के लिए कोई कक्ष निर्दिष्ट नहीं किया गया।", + "numbers": "डायल-इन नंबर", + "password": "$t(lockRoomPasswordUppercase):", + "title": "साझा करें", + "tooltip": "इस मीटिंग के लिए लिंक और डायल-इन जानकारी साझा करें" + }, + "inlineDialogFailure": { + "msg": "We stumbled a bit.", + "retry": "पुनः प्रयास करें", + "support": "सहायता", + "supportMsg": "ऐसा बार बार हो रहा हो, तो सम्पर्क करे " + }, + "inviteDialog": { + "alertText": "कुछ प्रतिभागियों को आमंत्रित करने में विफल।", + "header": "आमंत्रित करें", + "searchCallOnlyPlaceholder": "फ़ोन नंबर दर्ज करें", + "searchPeopleOnlyPlaceholder": "प्रतिभागियों को खोजें", + "searchPlaceholder": "प्रतिभागी या फ़ोन नंबर", + "send": "भेजें" + }, + "keyboardShortcuts": { + "focusLocal": "अपने वीडियो पर केंद्रित करें", + "focusRemote": "किसी अन्य व्यक्ति के वीडियो पर केंद्रित करें", + "fullScreen": "पूर्ण स्क्रीन देखें या बाहर निकलें", + "keyboardShortcuts": "कीबोर्ड शॉर्टकट्स", + "localRecording": "स्थानीय रिकॉर्डिंग नियंत्रण दिखाएं या छिपाएँ", + "mute": "अपने माइक्रोफ़ोन को म्यूट या अनम्यूट करें", + "pushToTalk": "बोलने के लिए दबाएं", + "raiseHand": "अपना हाथ उठाएँ या नीचे करें", + "showSpeakerStats": "स्पीकर आंकड़े दिखाएं", + "toggleChat": "चैट खोलें या बंद करें", + "toggleFilmstrip": "वीडियो थंबनेल दिखाएं या छिपाएँ", + "toggleScreensharing": "कैमरा और स्क्रीन शेयरिंग के बीच स्विच करें", + "toggleShortcuts": "कीबोर्ड शॉर्टकट दिखाएं या छिपाएं", + "videoMute": "अपना कैमरा प्रारंभ या बंद करें" + }, + "liveStreaming": { + "busy": "हम स्ट्रीमिंग संसाधनों को मुक्त करने पर काम कर रहे हैं। कृपया कुछ मिनटों में पुनः प्रयास करें।", + "busyTitle": "सभी स्ट्रीमर वर्तमान में व्यस्त हैं", + "changeSignIn": "खाता बदलें।", + "choose": "एक लाइव स्ट्रीम चुनें", + "chooseCTA": "स्ट्रीमिंग विकल्प चुनें। आप वर्तमान में {{email}} के रूप में लॉग इन हैं।", + "enterStreamKey": "अपनी YouTube लाइव स्ट्रीम कुंजी यहाँ दर्ज करें।", + "error": "लाइव स्ट्रीमिंग विफल रही। कृपया पुनः प्रयास करें।", + "errorAPI": "आपके YouTube प्रसारण तक पहुँचने में त्रुटि हुई। कृपया पुनः लॉगिन करें।", + "errorLiveStreamNotEnabled": "{{email}} पर लाइव स्ट्रीमिंग सक्षम नहीं है। कृपया लाइव स्ट्रीमिंग सक्षम करें या ऐसे खाते में लॉग इन करें जिसमें लाइव स्ट्रीमिंग सक्षम हो।", + "expandedOff": "लाइव स्ट्रीमिंग बंद हो गई है", + "expandedOn": "बैठक वर्तमान में YouTube पर स्ट्रीम की जा रही है।", + "expandedPending": "लाइव स्ट्रीमिंग शुरू की जा रही है…", + "failedToStart": "लाइव स्ट्रीमिंग शुरू करने में विफल रहा", + "getStreamKeyManually": "हम कोई लाइव स्ट्रीम प्राप्त नहीं कर सके। कृपया YouTube से अपनी लाइव स्ट्रीम कुंजी प्राप्त करने का प्रयास करें।", + "googlePrivacyPolicy": "Google गोपनीयता नीति", + "invalidStreamKey": "लाइव स्ट्रीम कुंजी गलत हो सकती है।", + "limitNotificationDescriptionNative": "आपकी स्ट्रीमिंग {{limit}} मिनट तक सीमित होगी। असीमित स्ट्रीमिंग के लिए {{app}} आज़माएँ।", + "limitNotificationDescriptionWeb": "अधिक मांग के कारण आपकी स्ट्रीमिंग {{limit}} मिनट तक सीमित होगी। असीमित स्ट्रीमिंग के लिए {{app}} आज़माएँ।", + "off": "लाइव स्ट्रीमिंग बंद हो गई", + "offBy": "{{name}} ने लाइव स्ट्रीमिंग बंद कर दी", + "on": "लाइव स्ट्रीमिंग शुरू हो गई", + "onBy": "{{name}} ने लाइव स्ट्रीमिंग शुरू की", + "pending": "लाइव स्ट्रीम शुरू हो रही है…", + "serviceName": "लाइव स्ट्रीमिंग सेवा", + "signIn": "Google से साइन इन करें", + "signInCTA": "साइन इन करें या YouTube से अपनी लाइव स्ट्रीम कुंजी दर्ज करें।", + "signOut": "साइन आउट करें", + "signedInAs": "आप वर्तमान में इस रूप में साइन इन हैं:", + "start": "एक लाइव स्ट्रीम शुरू करें", + "streamIdHelp": "यह क्या है?", + "title": "लाइव स्ट्रीमिंग", + "unavailableTitle": "लाइव स्ट्रीमिंग उपलब्ध नहीं है", + "youtubeTerms": "YouTube सेवा की शर्तें" + }, + "lobby": { + "allow": "अनुमति दें", + "backToKnockModeButton": "कोई पासवर्ड नहीं, इसके बजाय जुड़ने के लिए कहें", + "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.", + "enterPasswordButton": "मीटिंग पासवर्ड दर्ज करें", + "enterPasswordTitle": "मीटिंग में शामिल होने के लिए पासवर्ड दर्ज करें", + "invalidPassword": "अमान्य पासवर्ड", + "joinRejectedMessage": "आपका अनुरोध एक मॉडरेटर द्वारा अस्वीकार कर दिया गया.", + "joinTitle": "मीटिंग में शामिल हों", + "joinWithPasswordMessage": "पासवर्ड के साथ जुड़ने की कोशिश कर रहा है, कृपया प्रतीक्षा करें…", + "joiningMessage": "जैसे ही कोई आपके अनुरोध को स्वीकार करता है आप बैठक में शामिल हो जाएंगे", + "joiningTitle": "मीटिंग में शामिल होने के लिए कह रहा है…", + "joiningWithPasswordTitle": "पासवर्ड के साथ जुड़े…", + "knockButton": "जुड़ने के लिए कहें ", + "knockTitle": "कोई व्यक्ति बैठक में शामिल होना चाहता है", + "knockingParticipantList": "प्रतिभागी सूची दस्तक", + "nameField": "अपना नाम दर्ज करें", + "notificationLobbyAccessDenied": "{{targetParticipantName}} has been rejected to join by {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} has been allowed to join by {{originParticipantName}}", + "notificationLobbyDisabled": "लॉबी को {{originParticipantName}}द्वारा अक्षम कर दिया गया", + "notificationLobbyEnabled": "लॉबी को {{originParticipantName}}द्वारा सक्षम किया गया", + "notificationTitle": "लॉबी", + "passwordField": "मीटिंग पासवर्ड दर्ज करें", + "passwordJoinButton": "शामिल हों", + "title": "लॉबी", + "toggleLabel": "लॉबी सक्षम करें" + }, + "localRecording": { + "clientState": { + "off": "बंद", + "on": "चालू", + "unknown": "अज्ञात" + }, + "dialogTitle": "स्थानीय रिकॉर्डिंग नियंत्रण", + "duration": "अवधि", + "durationNA": "उपलब्ध नहीं", + "encoding": "एन्कोडिंग", + "label": "स्थानीय रिकॉर्डिंग", + "labelToolTip": "स्थानीय रिकॉर्डिंग सक्रिय है", + "localRecording": "स्थानीय रिकॉर्डिंग", + "me": "मैं", + "messages": { + "engaged": "स्थानीय रिकॉर्डिंग सक्रिय हो गई।", + "finished": "रिकॉर्डिंग सत्र {{token}} समाप्त हो गया। कृपया रिकॉर्ड की गई फ़ाइल मॉडरेटर को भेजें।", + "finishedModerator": "रिकॉर्डिंग सत्र {{token}} समाप्त हो गया। स्थानीय ट्रैक की रिकॉर्डिंग सहेज ली गई है। कृपया अन्य प्रतिभागियों से उनकी रिकॉर्डिंग जमा करने के लिए कहें।", + "notModerator": "आप मॉडरेटर नहीं हैं। आप स्थानीय रिकॉर्डिंग प्रारंभ या बंद नहीं कर सकते।" + }, + "moderator": "मॉडरेटर", + "no": "नहीं", + "participant": "प्रतिभागी", + "participantStats": "प्रतिभागी आँकड़े", + "sessionToken": "सत्र टोकन", + "start": "रिकॉर्डिंग प्रारंभ करें", + "stop": "रिकॉर्डिंग बंद करें", + "yes": "हाँ" + }, + "lockRoomPassword": "पासवर्ड", + "lockRoomPasswordUppercase": "पासवर्ड", + "lonelyMeetingExperience": { + "button": "दूसरों को आमंत्रित करें", + "youAreAlone": "मीटिंग में केवल आप ही हैं" + }, + "me": "मैं", + "notify": { + "OldElectronAPPTitle": "Security vulnerability!", + "connectedOneMember": "{{name}} मीटिंग में शामिल हुए", + "connectedThreePlusMembers": "{{name}} और {{count}} अन्य लोग मीटिंग में शामिल हुए", + "connectedTwoMembers": "{{first}} और {{second}} मीटिंग में शामिल हुआ", + "disconnected": "डिस्कनेक्ट", + "focus": "Conference focus", + "focusFail": "{{component}} उपलब्ध नहीं - {{ms}} सेकंड में पुनः प्रयास करें", + "grantedTo": "Moderator rights granted to {{to}}!", + "invitedOneMember": "{{name}} को आमंत्रित किया गया", + "invitedThreePlusMembers": "{{name}} और {{count}} अन्य लोगों को आमंत्रित किया गया", + "invitedTwoMembers": "{{first}} और {{second}} को आमंत्रित किया गया", + "kickParticipant": "{{kicked}} को {{kicker}} द्वारा किक किया गया", + "me": "मैं", + "moderator": "मॉडरेटर के अधिकार दिए गए!", + "muted": "आपने वार्तालाप को म्यूट करके शुरू किया है।", + "mutedRemotelyDescription": "जब आप बोलने के लिए तैयार हों, तो आप हमेशा अनम्यूट कर सकते हैं। बैठक में शोर कम रखने के लिए बोलने के बाद म्यूट कर दें।", + "mutedRemotelyTitle": "आपको {{participantDisplayName}} द्वारा म्यूट कर दिया गया है!", + "mutedTitle": "आप मौन हैं!", + "newDeviceAction": "उपयोग करें", + "newDeviceAudioTitle": "नए ऑडियो डिवाइस का पता चला", + "newDeviceCameraTitle": "नए कैमरे का पता चला", + "oldElectronClientDescription1": "आप जित्सी मीट क्लाइंट के एक पुराने संस्करण का उपयोग करते हुए दिखाई देते हैं, जिसमे सुरक्षा कमजोरियां ज्ञात हैं।", + "oldElectronClientDescription2": "नवीनतम बिल्ड", + "oldElectronClientDescription3": " अब!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) किसी अन्य प्रतिभागी द्वारा हटा दिया गया", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) दूसरे प्रतिभागी द्वारा निर्धारित", + "raisedHand": "{{name}} बोलना चाहेंगे।", + "somebody": "Somebody", + "startSilentDescription": "ऑडियो सक्षम करने के लिए मीटिंग को फिर से करें", + "startSilentTitle": "आप बिना ऑडियो आउटपुट के साथ शामिल हुए!", + "suboptimalBrowserWarning": "हमें डर है कि आपकी मीटिंग अनुभव यहाँ बहुत अच्छा नहीं होने वाला है। हम इसे सुधारने के तरीके ढूंढ़ रहे हैं, लेकिन उस समय तक कृपया पूरी तरह से समर्थित ब्राउज़र में से एक का प्रयास करें", + "suboptimalExperienceTitle": "ब्राउज़र चेतावनी", + "unmute": "अनम्यूट", + "videoMutedRemotelyDescription": "आप इसे हमेशा फिर से चालू कर सकते हैं।", + "videoMutedRemotelyTitle": "आपका कैमरा {{participantDisplayName}}द्वारा अक्षम कर दिया गया है!" + }, + "participantsPane": { + "actions": { + "reject": "अस्वीकार" + } + }, + "passwordDigitsOnly": "अधिकतम {{number}} अंक", + "passwordSetRemotely": "दूसरे प्रतिभागी द्वारा निर्धारित", + "polls": { + "errors": { + "notUniqueOption": "विकल्प अद्वितीय होना चाहिए" + } + }, + "poweredby": "powered by", + "prejoin": { + "audioAndVideoError": "ऑडियो और वीडियो त्रुटि:", + "audioDeviceProblem": "आपके ऑडियो डिवाइस में कोई समस्या है", + "audioOnlyError": "ऑडियो त्रुटि:", + "audioTrackError": "ऑडियो ट्रैक नहीं बना सका", + "callMe": "मुझे कॉल करें", + "callMeAtNumber": "मुझे इस नंबर पर कॉल करें:", + "calling": "कॉलिंग", + "configuringDevices": "डिवाइस कॉन्फ़िगर कर रहा है…", + "connectedWithAudioQ": "क्या आप ऑडियो से जुड़े हैं?", + "connection": { + "good": "आपका इंटरनेट कनेक्शन अच्छा है!", + "nonOptimal": "आपका इंटरनेट कनेक्शन आदर्श नहीं है", + "poor": "आपका इंटरनेट कनेक्शन खराब है" + }, + "connectionDetails": { + "audioClipping": "हमें उम्मीद है कि आपका ऑडियो कट सकता है।", + "audioHighQuality": "हमें उम्मीद है कि आपका ऑडियो बेहतरीन गुणवत्ता का होगा।", + "audioLowNoVideo": "हमें उम्मीद है कि आपकी ऑडियो गुणवत्ता कम होगी और वीडियो उपलब्ध नहीं होगा।", + "goodQuality": "बहुत बढ़िया! आपकी मीडिया गुणवत्ता शानदार होगी।", + "noMediaConnectivity": "हम इस परीक्षण के लिए मीडिया कनेक्टिविटी स्थापित करने में असमर्थ हैं। यह आमतौर पर फ़ायरवॉल या NAT के कारण होता है।", + "noVideo": "हमें उम्मीद है कि आपका वीडियो बहुत खराब होगा।", + "undetectable": "यदि आप अभी भी ब्राउज़र में कॉल नहीं कर पा रहे हैं, तो हम अनुशंसा करते हैं कि आप सुनिश्चित करें कि आपके स्पीकर, माइक्रोफ़ोन और कैमरा सही तरीके से सेट किए गए हैं, कि आपने अपने ब्राउज़र को माइक्रोफ़ोन और कैमरा उपयोग की अनुमति दी है, और आपका ब्राउज़र संस्करण अपडेट है। यदि समस्या बनी रहती है, तो आपको वेब एप्लिकेशन डेवलपर से संपर्क करना चाहिए।", + "veryPoorConnection": "हमें उम्मीद है कि आपकी कॉल गुणवत्ता बहुत खराब होगी।", + "videoFreezing": "हमें उम्मीद है कि आपका वीडियो फ्रीज़ होगा, काला हो जाएगा और धुंधला दिखेगा।", + "videoHighQuality": "हमें उम्मीद है कि आपका वीडियो अच्छी गुणवत्ता का होगा।", + "videoLowQuality": "हमें उम्मीद है कि आपका वीडियो फ्रेम दर और रिज़ॉल्यूशन के मामले में निम्न गुणवत्ता का होगा।", + "videoTearing": "हमें उम्मीद है कि आपका वीडियो धुंधला होगा या इसमें दृश्य गड़बड़ियां हो सकती हैं।" + }, + "copyAndShare": "मीटिंग लिंक कॉपी और साझा करे ", + "dialInMeeting": "मीटिंग में डायल करें", + "dialInPin": "मीटिंग में डायल करें और पिन कोड डालें:", + "dialing": "डायलिंग", + "doNotShow": "इस स्क्रीन को फिर से न दिखाएं", + "errorDialOut": "डायल नहीं कर सका", + "errorDialOutDisconnected": "डायल नहीं किया जा सका। डिस्कनेक्ट किया गया", + "errorDialOutFailed": "डायल नहीं कर सका। कॉल विफल", + "errorDialOutStatus": "डायल आउट स्थिति प्राप्त करने में त्रुटि", + "errorMissingName": "कृपया बैठक में शामिल होने के लिए अपना नाम दर्ज करें", + "errorStatusCode": "त्रुटि डायलिंग आउट, स्थिति कोड: {{status}}", + "errorValidation": "संख्या सत्यापन विफल", + "iWantToDialIn": "मैं डायल करना चाहता हूं", + "initiated": "कॉल आरंभ", + "joinAudioByPhone": "फोन ऑडियो के साथ जुड़ें", + "joinMeeting": "मीटिंग में शामिल हों", + "joinWithoutAudio": "ऑडियो के बिना जुड़ें", + "linkCopied": "लिंक क्लिपबोर्ड पर कॉपी किया गया", + "lookGood": "ऐसा लगता है कि आपका माइक्रोफ़ोन ठीक से काम कर रहा है", + "or": "या", + "premeeting": "प्री मीटिंग", + "screenSharingError": "स्क्रीन शेयरिंग त्रुटि:", + "startWithPhone": "फोन ऑडियो से शुरू करें", + "videoOnlyError": "वीडियो त्रुटि:", + "videoTrackError": "वीडियो ट्रैक नहीं बना सका", + "viewAllNumbers": "सभी नंबर देखें" + }, + "presenceStatus": { + "busy": "व्यस्त", + "calling": "कॉलिंग…", + "connected": "कनेक्टेड", + "connecting": "कनेक्टिंग…", + "connecting2": "कनेक्टिंग*…", + "disconnected": "डिस्कनेक्ट किया गया", + "expired": "एक्सपायर्ड", + "ignored": "Ignored", + "initializingCall": "कॉल प्रारंभ की जा रही है…", + "invited": "आमंत्रित", + "rejected": "अस्वीकृत", + "ringing": "Ringing…" + }, + "profile": { + "setDisplayNameLabel": "अपना नाम सेट करें", + "setEmailInput": "ई-मेल दर्ज करें", + "setEmailLabel": "Set अपना ग्रेवार्ट ईमेल सेट करें", + "title": "प्रोफ़ाइल" + }, + "raisedHand": "बोलना चाहेंगे", + "recording": { + "authDropboxText": "ड्रॉपबॉक्स पर अपलोड करें", + "availableSpace": "उपलब्ध स्थान: {{spaceLeft}} MB (लगभग {{duration}} मिनट की रिकॉर्डिंग)", + "beta": "बीटा", + "busy": "हम रिकॉर्डिंग संसाधनों को मुक्त करने पर काम कर रहे हैं। कृपया कुछ मिनटों में पुनः प्रयास करें।", + "busyTitle": "सभी रिकॉर्डर अभी व्यस्त हैं", + "error": "रिकॉर्डिंग विफल हुई। कृपया पुनः प्रयास करें।", + "expandedOff": "रिकॉर्डिंग बंद हो गई है", + "expandedOn": "बैठक की रिकॉर्डिंग की जा रही है।", + "expandedPending": "रिकॉर्डिंग शुरू की जा रही है…", + "failedToStart": "रिकॉर्डिंग शुरू करने में विफलता हुई।", + "fileSharingdescription": "रिकॉर्डिंग को बैठक प्रतिभागियों के साथ साझा करें", + "limitNotificationDescriptionNative": "उच्च मांग के कारण आपकी रिकॉर्डिंग {{limit}} मिनट तक सीमित रहेगी। असीमित रिकॉर्डिंग के लिए <3>{{app}} आज़माएँ।", + "limitNotificationDescriptionWeb": "उच्च मांग के कारण आपकी रिकॉर्डिंग {{limit}} मिनट तक सीमित रहेगी। असीमित रिकॉर्डिंग के लिए {{app}} आज़माएँ।", + "live": "लाइव", + "loggedIn": "{{userName}} के रूप में लॉग इन किया गया", + "off": "रिकॉर्डिंग बंद हो गई", + "offBy": "{{name}} ने रिकॉर्डिंग बंद की", + "on": "रिकॉर्डिंग शुरू हो गई", + "onBy": "{{name}} ने रिकॉर्डिंग शुरू की", + "pending": "बैठक की रिकॉर्डिंग की तैयारी हो रही है…", + "rec": "रिकॉर्डिंग", + "serviceDescription": "आपकी रिकॉर्डिंग को रिकॉर्डिंग सेवा द्वारा सहेजा जाएगा", + "serviceDescriptionCloud": "क्लाउड रिकॉर्डिंग", + "serviceName": "रिकॉर्डिंग सेवा", + "signIn": "साइन इन करें", + "signOut": "साइन आउट करें", + "title": "रिकॉर्डिंग", + "unavailable": "ओह! {{serviceName}} वर्तमान में अनुपलब्ध है। हम इस समस्या को हल करने पर काम कर रहे हैं। कृपया बाद में पुनः प्रयास करें।", + "unavailableTitle": "रिकॉर्डिंग उपलब्ध नहीं है" + }, + "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.", + "insecureRoomNameWarning": "कमरे का नाम असुरक्षित है। अनचाहे सहभागियों की कॉन्फ्रेंस में शामिल हो सकते हैं। सुरक्षा बटन का उपयोग करके अपनी मीटिंग को सुरक्षित बनाने का विचार करें। ", + "securityOptions": "Security options" + }, + "settings": { + "calendar": { + "about": "{{appName}} कैलेंडर एकीकरण आपके कैलेंडर तक सुरक्षित रूप से पहुंचने के लिए उपयोग किया जाता है ताकि यह आगामी कार्यक्रम पढ़ सके।", + "disconnect": "डिस्कनेक्ट करें", + "microsoftSignIn": "Microsoft से साइन इन करें", + "signedIn": "वर्तमान में {{email}} के कैलेंडर कार्यक्रमों तक पहुंच रही है। कैलेंडर कार्यक्रमों की पहुंच बंद करने के लिए नीचे दिए गए डिस्कनेक्ट बटन पर क्लिक करें।", + "title": "कैलेंडर" + }, + "devices": "डिवाइस", + "followMe": "हर कोई मेरा अनुसरण करेगा", + "language": "भाषा", + "loggedIn": "{{name}} के रूप में लॉग इन किया", + "microphones": "माइक्रोफोन", + "moderator": "Moderator", + "more": "More", + "name": "नाम", + "noDevice": "कोई नहीं", + "selectAudioOutput": "ऑडियो आउटपुट", + "selectCamera": "कैमरा", + "selectMic": "माइक्रोफोन", + "speakers": "Speakers", + "startAudioMuted": "सभी लोग म्यूट से शुरू करेंगे", + "startVideoMuted": "सभी लोग छिपे हुए शुरू करेंगे", + "title": "सेटिंग" + }, + "settingsView": { + "advanced": "Advanced", + "alertCancel": "रद्द करें", + "alertOk": "ओके", + "alertTitle": "चेतावनी", + "alertURLText": "दर्ज किया गया सर्वर URL अमान्य है", + "buildInfoSection": "बिल्ड जानकारी", + "conferenceSection": "सम्मेलन", + "disableCallIntegration": "मूल कॉल एकीकरण अक्षम करें", + "disableCrashReporting": "क्रैश रिपोर्टिंग अक्षम करें", + "disableCrashReportingWarning": "क्या आप वाकई क्रैश रिपोर्टिंग को अक्षम करना चाहते हैं? एप्लिकेशन को पुनरारंभ करने के बाद सेटिंग लागू की जाएगी", + "disableP2P": "पीयर-टू-पीयर मोड को अक्षम करें", + "displayName": "नाम", + "email": "ईमेल", + "header": "सेटिंग", + "profileSection": "प्रोफाइल", + "serverURL": "सर्वर URL", + "showAdvanced": "उन्नत सेटिंग्स दिखाएं", + "startWithAudioMuted": "ऑडियो म्यूट के साथ शुरू करें", + "startWithVideoMuted": "वीडियो म्यूट के साथ शुरू करें", + "version": "संस्करण" + }, + "share": { + "dialInfoText": "\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}", + "mainText": "मीटिंग में शामिल होने के लिए निम्न लिंक पर क्लिक करें:\n{{roomUrl}}" + }, + "speaker": "स्पीकर", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "नाम", + "search": "खोजें", + "searchHint": "प्रतिभागियों को खोजें", + "seconds": "{{count}}s", + "speakerStats": "स्पीकर आंकड़े", + "speakerTime": "स्पीकर समय" + }, + "startupoverlay": { + "genericTitle": "मीटिंग को आपके माइक्रोफ़ोन और कैमरे का उपयोग करने की आवश्यकता है।", + "policyText": " ", + "title": "{{app}} को आपके माइक्रोफ़ोन और कैमरे का उपयोग करने की आवश्यकता है।" + }, + "suspendedoverlay": { + "rejoinKeyTitle": "पुनः जुड़े", + "text": "फिर से कनेक्ट करने के लिए Rejoin बटन दबाएं।", + "title": "आपका वीडियो कॉल बाधित हो गया था क्योंकि यह कंप्यूटर स्लीप मोड में चला गया था " + }, + "toolbar": { + "Settings": "सेटिंग", + "accessibilityLabel": { + "Settings": "सेटिंग टॉगल करें", + "audioOnly": "केवल ऑडियो टॉगल करें", + "audioRoute": "साउंड डिवाइस का चयन करें", + "callQuality": "वीडियो गुणवत्ता प्रबंधित करें", + "cc": "टॉगल उपशीर्षक", + "chat": "चैट विंडो टॉगल करें", + "document": "साझा दस्तावेज़ टॉगल करें", + "download": "हमारे एप्लिकेशन डाउनलोड करें", + "embedMeeting": "एंबेड मीटिंग", + "feedback": "प्रतिक्रिया छोड़ें", + "fullScreen": "फुल स्क्रीन को टॉगल करें", + "grantModerator": "Grant Moderator", + "hangup": "कॉल छोड़ें", + "help": "सहायता", + "invite": "लोगों को आमंत्रित करें", + "kick": "Kick participant", + "lobbyButton": "लॉबी मोड को सक्षम / अक्षम करें", + "localRecording": "स्थानीय रिकॉर्डिंग नियंत्रणों को टॉगल करें", + "lockRoom": "मीटिंग पासवर्ड टॉगल करें", + "moreActions": "अधिक क्रिया मेनू को टॉगल करें", + "moreActionsMenu": "अधिक क्रिया मेनू", + "moreOptions": "अधिक विकल्प दिखाएं", + "mute": "टॉगल म्यूट ऑडियो", + "muteEveryone": "सभी को म्यूट करें", + "muteEveryoneElse": "सभी को म्यूट करें", + "muteEveryoneElsesVideo": "सभी का कैमरा अक्षम करें", + "muteEveryonesVideo": "सभी का कैमरा अक्षम करें", + "pip": "टॉगल पिक्चर-इन-पिक्चर मोड", + "privateMessage": "निजी संदेश भेजें", + "profile": "अपना प्रोफ़ाइल संपादित करें", + "raiseHand": "Toggle raise hand", + "recording": "टॉगल रिकॉर्डिंग", + "remoteMute": "प्रतिभागी को म्यूट करें", + "remoteVideoMute": "प्रतिभागी का कैमरा अक्षम करें", + "security": "सुरक्षा विकल्प", + "selectBackground": "पृष्ठभूमि का चयन करें", + "shareRoom": "किसी को आमंत्रित करें", + "shareYourScreen": "टॉगल स्क्रीनशेयर", + "sharedvideo": "YouTube वीडियो साझाकरण टॉगल करें", + "shortcuts": "शॉर्टकट टॉगल करें", + "show": "स्टेज पर दिखाएं", + "speakerStats": "स्पीकर के आंकड़ों को टॉगल करें", + "tileView": "टॉगल टाइल दृश्य", + "toggleCamera": "कैमरा टॉगल करें", + "toggleFilmstrip": "टॉगल फिल्मस्ट्रिप", + "videomute": "टॉगल म्यूट वीडियो" + }, + "addPeople": "अपने कॉल में लोगों को जोड़ें", + "audioOnlyOff": "कम बैंडविड्थ मोड अक्षम करें", + "audioOnlyOn": "कम बैंडविड्थ मोड सक्षम करें", + "audioRoute": "साउंड डिवाइस का चयन करें", + "audioSettings": "ऑडियो सेटिंग्स", + "authenticate": "Authenticate", + "callQuality": "वीडियो गुणवत्ता प्रबंधित करें", + "chat": "ओपन / क्लोज चैट", + "closeChat": "क्लोज़ चैट", + "documentClose": "साझा किए गए दस्तावेज़ को बंद करें", + "documentOpen": "साझा दस्तावेज़ खोलें", + "download": "हमारे एप्लिकेशन डाउनलोड करें", + "e2ee": "एंड-टू-एंड एन्क्रिप्शन", + "embedMeeting": "Embed meeting", + "enterFullScreen": "पूर्ण स्क्रीन में देखें", + "enterTileView": "टाइल दृश्य में प्रवेश करें", + "exitFullScreen": "पूर्ण स्क्रीन से बाहर निकलें", + "exitTileView": "टाइल दृश्य से बाहर निकलें", + "feedback": "प्रतिक्रिया छोड़ें", + "hangup": "छोड़ें", + "help": "Help", + "invite": "लोगों को आमंत्रित करें", + "lobbyButtonDisable": "लॉबी मोड को अक्षम करें", + "lobbyButtonEnable": "लॉबी मोड सक्षम करें", + "login": "लॉग इन", + "logout": "लॉगआउट", + "lowerYourHand": "अपना हाथ नीचे करें", + "moreActions": "More actions", + "moreOptions": "अधिक विकल्प", + "mute": "म्यूट / अनम्यूट", + "muteEveryone": "सभी को म्यूट करें", + "muteEveryonesVideo": "सभी का कैमरा अक्षम करें", + "noAudioSignalDesc": "यदि आपने सिस्टम सेटिंग्स या हार्डवेयर से जानबूझकर इसे म्यूट नहीं किया है, तो डिवाइस को स्विच करने पर विचार करें", + "noAudioSignalDescSuggestion": "यदि आपने सिस्टम सेटिंग्स या हार्डवेयर से जानबूझकर इसे म्यूट नहीं किया है, तो सुझाए गए डिवाइस पर स्विच करने पर विचार करें", + "noAudioSignalDialInDesc": "आप डायल-इन का भी उपयोग कर सकते हैं:", + "noAudioSignalDialInLinkDesc": "डायल-इन नंबर", + "noAudioSignalTitle": "आपके माइक से कोई इनपुट नहीं आ रहा है!", + "noisyAudioInputDesc": "ऐसा लगता है कि आपका माइक्रोफ़ोन शोर कर रहा है, कृपया डिवाइस को म्यूट करने या बदलने पर विचार करें", + "noisyAudioInputTitle": "आपका माइक्रोफ़ोन शोर कर रहा है!", + "openChat": "ओपन चैट", + "pip": "पिक्चर-इन-पिक्चर मोड", + "privateMessage": "निजी संदेश भेजें", + "profile": "अपना प्रोफ़ाइल संपादित करें", + "raiseHand": "अपना हाथ उठाएँ / नीचे करें", + "raiseYourHand": "अपना हाथ उठाएं", + "security": "सुरक्षा विकल्प", + "selectBackground": "पृष्ठभूमि का चयन करें", + "shareRoom": "किसी को आमंत्रित करें", + "sharedvideo": "एक YouTube वीडियो साझा करें", + "shortcuts": "शॉर्टकट देखें", + "speakerStats": "स्पीकर आँकड़े", + "startScreenSharing": "स्क्रीन साझाकरण प्रारंभ करें", + "startSubtitles": "Start subtitles", + "stopScreenSharing": "स्क्रीन शेयरिंग बंद करो", + "stopSharedVideo": "YouTube वीडियो बंद करें", + "stopSubtitles": "उपशीर्षक बंद करें", + "talkWhileMutedPopup": "बोलने की कोशिश कर रहा है? आप मौन हैं", + "tileViewToggle": "टॉगल टाइल दृश्य", + "toggleCamera": "कैमरा टॉगल करें", + "videoSettings": "वीडियो सेटिंग्स", + "videomute": "स्टार्ट / स्टॉप कैमरा" + }, + "transcribing": { + "ccButtonTooltip": "सबटाइटल शुरू / बंद करें", + "error": "ट्रांसक्रिप्शनिंग विफल रही। कृपया पुन: प्रयास करें", + "expandedLabel": "वर्तमान में ट्रांसक्रिप्शनिंग चालू है", + "failedToStart": "ट्रांसक्रिप्शनिंग प्रारंभ करने में विफल", + "labelToolTip": "बैठक का लिप्यंतरण किया जा रहा है", + "off": "ट्रांसक्रिप्शनिंग बंद कर दिया", + "pending": "बैठक के ट्रांसक्रिप्शन की तैयारी हो रही है…", + "start": "उपशीर्षक दिखाना शुरू करें", + "stop": "उपशीर्षक दिखाना बंद करें", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "कृपया अपने कैमरा और माइक्रोफोन का उपयोग करने के लिए अनुमतियाँ प्रदान करें." + }, + "videoSIPGW": { + "busy": "हम संसाधनों को मुक्त करने पर काम कर रहे हैं। कृपया कुछ मिनटों बाद पुन: प्रयास करें।", + "busyTitle": "रूम सेवा वर्तमान में व्यस्त है", + "errorAlreadyInvited": "{{displayName}} पहले से ही आमंत्रित हैं", + "errorInvite": "कॉन्फ़्रेंस अब तक स्थापित नहीं हुई है। कृपया बाद में पुनः प्रयास करें।", + "errorInviteFailed": "हम समस्या को हल करने पर काम कर रहे हैं। कृपया बाद में पुनः प्रयास करें।", + "errorInviteFailedTitle": "{{displayName}} को आमंत्रित करने में विफलता", + "errorInviteTitle": "रूम आमंत्रण में त्रुटि", + "pending": "{{displayName}} को आमंत्रित किया गया है" + }, + "videoStatus": { + "audioOnly": "केवल ऑडियो", + "audioOnlyExpanded": "आप कम बैंडविड्थ मोड में हैं। इस मोड में आपको केवल ऑडियो और स्क्रीन शेयरिंग प्राप्त होगी।", + "callQuality": "वीडियो गुणवत्ता", + "hd": "एचडी", + "hdTooltip": "हाई डेफिनिशन वीडियो देख रहे हैं", + "highDefinition": "हाई डेफिनिशन", + "labelTooiltipNoVideo": "कोई वीडियो नहीं", + "labelTooltipAudioOnly": "कम बैंडविड्थ मोड सक्षम", + "ld": "एलडी", + "ldTooltip": "लो डेफिनिशन वीडियो देख रहे हैं", + "lowDefinition": "लो डेफिनिशन", + "sd": "एसडी", + "sdTooltip": "स्टैंडर्ड डेफिनिशन वीडियो देख रहे हैं", + "standardDefinition": "स्टैंडर्ड डेफिनिशन" + }, + "videothumbnail": { + "connectionInfo": "कनेक्शन जानकारी", + "domute": "म्यूट", + "domuteOthers": "सभी को म्यूट करें", + "domuteVideo": "कैमरा अक्षम करें", + "domuteVideoOfOthers": "अन्य सभी के लिए कैमरा बंद करें", + "flip": "Flip", + "grantModerator": "Grant Moderator", + "kick": "निकालें", + "moderator": "Moderator", + "mute": "प्रतिभागी मौन है", + "muted": "म्यूटेड", + "remoteControl": "स्टार्ट / स्टॉप रिमोट कंट्रोल", + "show": "स्टेज पर दिखाएं", + "videoMuted": "कैमरा अक्षम", + "videomute": "प्रतिभागी ने कैमरा बंद कर दिया है" + }, + "virtualBackground": { + "enableBlur": "ब्लर सक्षम करें", + "none": "कोई नहीं", + "pleaseWait": "कृपया प्रतीक्षा करें…", + "removeBackground": "पृष्ठभूमि निकालें", + "title": "पृष्ठभूमि", + "uploadImage": "छवि अपलोड करें" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "शामिल होने के लिए टैप करें", + "roomname": "कमरे का नाम लिखे" + }, + "appDescription": "आगे बढ़ो, पूरी टीम के साथ वीडियो चैट करें। वास्तव में, हर किसी को जिसे आप जानते हैं, आमंत्रित करें। { {{app}} एक पूरी तरह से एन्क्रिप्टेड, 100% ओपन सोर्स वीडियो कॉन्फ्रेंसिंग समाधान है जिसका आप मुफ्त में - बिना किसी खाते की आवश्यकता के पूरे दिन, हर दिन, उपयोग कर सकते हैं।", + "audioVideoSwitch": { + "audio": "आवाज", + "video": "वीडियो" + }, + "calendar": "कैलेंडर", + "connectCalendarButton": "अपने कैलेंडर को कनेक्ट करें", + "connectCalendarText": "{{app}} में अपनी सभी मीटिंग्स देखने के लिए अपने कैलेंडर से कनेक्ट करें। इसके अलावा, अपने कैलेंडर में {{provider}} मीटिंग्स जोड़ें और उन्हें एक क्लिक के साथ प्रारंभ करें", + "enterRoomTitle": "एक नई बैठक शुरू करें", + "getHelp": "सहायता प्राप्त करें", + "go": "GO", + "goSmall": "GO", + "headerSubtitle": "सुरक्षित और उच्च गुणवत्ता बैठकें", + "headerTitle": "जित्सी मीट", + "info": "डायल-इन जानकारी", + "jitsiOnMobile": "मोबाइल पर Jitsi – हमारे एप्लिकेशन डाउनलोड करें और कहीं से भी एक बैठक शुरू करें", + "join": "बनाये / जुड़े ", + "moderatedMessage": "Or book a meeting URL in advance where you are the only moderator.", + "privacy": "गोपनीयता", + "recentList": "हाल का", + "recentListDelete": "प्रविष्टि हटाएं", + "recentListEmpty": "आपकी हाल की सूची वर्तमान में खाली है। अपनी टीम के साथ चैट करें और आपको अपनी सभी हालिया बैठकें मिलेंगी", + "reducedUIText": "{{app}} में आपका स्वागत है!", + "roomNameAllowedChars": " मीटिंग नाम में इनमें से कोई भी वर्ण नहीं होना चाहिए: ?, &, :, ', \", %, #.", + "roomname": "कक्ष का नाम दर्ज करें", + "roomnameHint": "जिस कक्ष में आप शामिल होना चाहते हैं उसका नाम या URL दर्ज करें। आप एक नाम बना सकते हैं, बस जिन लोगों से आप मिल रहे हैं, उन्हें यह बताएं ताकि वे उसी नाम को दर्ज करें", + "sendFeedback": "फ़ीडबैक भेजें", + "startMeeting": "मीटिंग प्रारंभ करें", + "terms": "शर्तें", + "title": "सुरक्षित, पूरी तरह से चित्रित, और पूरी तरह से मुक्त वीडियो कॉन्फ्रेंसिंग" + } +} diff --git a/lang/main-hr.json b/lang/main-hr.json new file mode 100644 index 0000000..b7ae952 --- /dev/null +++ b/lang/main-hr.json @@ -0,0 +1,1364 @@ +{ + "addPeople": { + "add": "Pozovi", + "addContacts": "Pozovi svoje kontakte", + "contacts": "kontakti", + "copyInvite": "Kopiraj pozivnicu za sastanak", + "copyLink": "Kopiraj poveznicu za sastanak", + "copyStream": "Kopiraj poveznicu za prijenos uživo", + "countryNotSupported": "Ovu zemlju još ne podržavamo.", + "countryReminder": "Zoveš broj u inozemstvu? Broj mora započeti s kodom zemlje!", + "defaultEmail": "Tvoja zadana e-mail adresa", + "disabled": "Ne možeš pozvati ljude.", + "failedToAdd": "Neuspjelo dodavanje sudionika", + "googleEmail": "Google e-pošta", + "inviteMoreHeader": "Na sastanku si samo ti", + "inviteMoreMailSubject": "Pridruži se sastanku {{appName}}", + "inviteMorePrompt": "Pozovi još osoba", + "linkCopied": "Poveznica kopirana u međuspremnik", + "noResults": "Nema odgovarajućih rezultata pretrage", + "outlookEmail": "Outlook e-pošta", + "phoneNumbers": "telefonski brojevi", + "searching": "Pretraga u tijeku …", + "shareInvite": "Dijeli pozivnicu za sastanak", + "shareLink": "Dijeli poveznicu pozivnice za sastanak za pozivanje drugih osoba", + "shareStream": "Dijeli poveznicu za prijenos uživo", + "sipAddresses": "sip adrese", + "telephone": "Telefon: {{number}}", + "title": "Pozovi ljude na ovaj sastanak", + "yahooEmail": "Yahoo e-pošta" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Audio uređaji u autu", + "headphones": "Slušalice", + "none": "Nema audio uređaja", + "phone": "Telefon", + "speaker": "Zvučnik" + }, + "audioOnly": { + "audioOnly": "Niska stopa prijenosa podataka" + }, + "breakoutRooms": { + "actions": { + "add": "Dodaj sobu za podgrupu", + "autoAssign": "Automatski dodijeli sobama podgrupa", + "close": "Zatvori", + "join": "Pridruži se", + "leaveBreakoutRoom": "Napusti sobu podgrupe", + "more": "Više", + "remove": "Ukloni", + "sendToBreakoutRoom": "Pošalji sudinika u:" + }, + "defaultName": "Soba podgrupe br. {{index}}", + "mainRoom": "Glavna soba", + "notifications": { + "joined": "Pridružuje se sobi podgrupe „{{name}}”", + "joinedMainRoom": "Pridružuje se glavnoj sobi", + "joinedTitle": "Sobe podgrupa" + } + }, + "calendarSync": { + "addMeetingURL": "Dodaj poveznicu za sastanak", + "confirmAddLink": "Želiš li dodati Jitsi poveznicu ovom događaju?", + "error": { + "appConfiguration": "Integracija kalendara nije ispravno konfigurirana.", + "generic": "Došlo je do greške. Provjeri postavke kalendara ili pokušaj aktualizirati kalendar.", + "notSignedIn": "Došlo je do greške prilikom autentifikacije za prikaz događaja u kalendaru. Provjeri postavke kalendara i pokušaj se ponovo prijaviti." + }, + "join": "Pridruži se", + "joinTooltip": "Pridruži se sastanku", + "nextMeeting": "sljedeći sastanak", + "noEvents": "Nema zakazanih događaja.", + "ongoingMeeting": "sastanak u tijeku", + "permissionButton": "Otvori postavke", + "permissionMessage": "Za prikaz sastanaka u aplikaciji potrebna je dozvola za kalendar.", + "refresh": "Aktualiziraj kalendar", + "today": "Danas" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Odaberi audio uređaj" + }, + "labels": { + "buttonLabel": "Automobilski modus", + "title": "Modus sigurne vožnje", + "videoStopped": "Tvoj video je prekinut" + } + }, + "chat": { + "enter": "Uđi u sobu", + "error": "Greška: tvoja poruka nije poslana. Razlog: {{error}}", + "fieldPlaceHolder": "Ovdje upiši svoju poruku", + "lobbyChatMessageTo": "Chat poruka u predvorju za {{recipient}}", + "message": "Poruka", + "messageAccessibleTitle": "{{user}} kaže:", + "messageAccessibleTitleMe": "ja kažem:", + "messageTo": "Privatna poruka za {{recipient}}", + "messagebox": "Upiši poruku", + "newMessages": "Nove poruke", + "nickname": { + "popover": "Odaberi nadimak", + "title": "Upiši nadimak za chat", + "titleWithPolls": "Upiši nadimak za korištenje chata i anketa" + }, + "noMessagesMessage": "Na sastanku još nema poruka. Započni razgovor ovdje!", + "privateNotice": "Privatna poruka za {{recipient}}", + "sendButton": "Pošalji", + "smileysPanel": "Ploča emojija", + "tabs": { + "chat": "Chat", + "polls": "Ankete" + }, + "title": "Chat", + "titleWithPolls": "Chat i ankete", + "you": "ti" + }, + "chromeExtensionBanner": { + "buttonText": "Instaliraj proširenje za Chrome", + "buttonTextEdge": "Instaliraj proširenje za Edge", + "close": "Zatvori", + "dontShowAgain": "Ovo više nemoj prikazivati", + "installExtensionText": "Instaliraj proširenje za Google kalendar i Office 365 integraciju" + }, + "connectingOverlay": { + "joiningRoom": "Povezuje te s tvojim sastankom …" + }, + "connection": { + "ATTACHED": "Priključeno", + "AUTHENTICATING": "Autentifikacija", + "AUTHFAIL": "Autentifikacija neuspjela", + "CONNECTED": "Povezano", + "CONNECTING": "Povezivanje", + "CONNFAIL": "Povezivanje neuspjelo", + "DISCONNECTED": "Odspojeno", + "DISCONNECTING": "Odspajanje", + "ERROR": "Greška", + "FETCH_SESSION_ID": "Dohvaćanje ID-a sesije …", + "GET_SESSION_ID_ERROR": "Greška prilikom dohvaćanja ID-a sesije: {{code}}", + "GOT_SESSION_ID": "Dohvaćanje ID-a sesije … Gotovo", + "LOW_BANDWIDTH": "Video za {{displayName}} je isključen radi uštede stope prijenosa podataka" + }, + "connectionindicator": { + "address": "Adresa:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Procijenjena stopa prijenosa podataka:", + "bitrate": "Stopa bitova:", + "bridgeCount": "Broj poslužitelja: ", + "codecs": "Kodeki (A/V): ", + "connectedTo": "Povezano na:", + "framerate": "Broj sličica u sekundi:", + "less": "Pokaži manje", + "localaddress": "Adresa lokalnog uređaja:", + "localaddress_plural": "Adrese lokalnog uređaja:", + "localport": "Priključak lokalnog uređaja:", + "localport_plural": "Priključci lokalnog uređaja:", + "maxEnabledResolution": "šalji maksimalno", + "more": "Pokaži više", + "packetloss": "Gubitak paketa:", + "participant_id": "ID sudionika:", + "quality": { + "good": "Dobra", + "inactive": "Neaktivna", + "lost": "Izgubljena", + "nonoptimal": "Neoptimalna", + "poor": "Slaba" + }, + "remoteaddress": "Adresa udaljenog uređaja:", + "remoteaddress_plural": "Adrese udaljenog uređaja:", + "remoteport": "Priključak udaljenog uređaja:", + "remoteport_plural": "Priključci udaljenog uređaja:", + "resolution": "Rezolucija:", + "savelogs": "Spremi zapisnike", + "status": "Veza:", + "transport": "Transport:", + "transport_plural": "Transporti:", + "video_ssrc": "Video SSRC:" + }, + "dateUtils": { + "earlier": "Ranije", + "today": "Danas", + "yesterday": "Jučer" + }, + "deepLinking": { + "appNotInstalled": "Za pridruživanje ovom sastanku putem telefona trebaš mobilnu aplikaciju {{app}}.", + "description": "Ništa se nije dogodilo? Pokušali smo pokrenuti tvoj sastanak u desktop aplikaciji {{app}}. Pokušaj ponovo ili ga pokreni u web-aplikaciji {{app}}.", + "descriptionWithoutWeb": "Ništa se nije dogodilo? Pokušali smo pokrenuti tvoj sastanak u desktop aplikaciji {{app}}.", + "downloadApp": "Preuzmi aplikaciju", + "ifDoNotHaveApp": "Ako još nemaš aplikaciju:", + "ifHaveApp": "Ako već imaš aplikaciju:", + "joinInApp": "Pridruži se sastanku koristeći aplikaciju", + "launchWebButton": "Pokreni u webu", + "title": "Pokretanje tvog sastanka u aplikaciji {{app}} …", + "tryAgainButton": "Pokušaj ponovo u desktop aplikaciji", + "unsupportedBrowser": "Čini se da koristiš preglednik koji ne podržavamo." + }, + "defaultLink": "npr. {{url}}", + "defaultNickname": "Primjer: Tomo", + "deviceError": { + "cameraError": "Pristup tvojoj kameri nije uspio", + "cameraPermission": "Greška pri dobivanju dozvole za kameru", + "microphoneError": "Pristup tvom mikrofonu nije uspio", + "microphonePermission": "Greška pri dobivanju dozvole za mikrofon" + }, + "deviceSelection": { + "noPermission": "Dozvola je odbijena", + "previewUnavailable": "Pregled nije dostupan", + "selectADevice": "Odaberi uređaj", + "testAudio": "Odsviraj testni zvuk" + }, + "dialIn": { + "screenTitle": "Sažetak zvanih brojeva" + }, + "dialOut": { + "statusMessage": "je sada {{status}}" + }, + "dialog": { + "Back": "Natrag", + "Cancel": "Odustani", + "IamHost": "Ja sam domaćin", + "Ok": "U redu", + "Remove": "Ukloni", + "Share": "Dijeli", + "Submit": "Pošalji", + "WaitForHostMsg": "Konferencija još nije počela. Ako si domaćin autentificiraj se. U suprotnom, pričekaj dolazak domaćina.", + "WaitingForHostTitle": "Čekanje na domaćina …", + "Yes": "Da", + "accessibilityLabel": { + "liveStreaming": "Prijenos uživo" + }, + "add": "Dodaj", + "addMeetingNote": "Dodaj bilješku o ovom sastanku", + "addOptionalNote": "Dodaj bilješku (opcionalno):", + "allow": "Dozvoli", + "alreadySharedVideoMsg": "Jedan drugi sudionik već dijeli video. Ova konferencija dozvoljava samo jedan dijeljeni video istovremeno.", + "alreadySharedVideoTitle": "Dozvoljen je samo jedan dijeljeni video istovremeno", + "applicationWindow": "Prozor aplikacije", + "authenticationRequired": "Autentifikacija je obavezna", + "cameraConstraintFailedError": "Tvoja kamera ne zadovoljava neka potrebna ograničenja.", + "cameraNotFoundError": "Kamera nije pronađena.", + "cameraNotSendingData": "Ne možemo pristupiti tvojoj kameri. Provjeri, koristi li neka druga aplikacija ovaj uređaj, odaberi jedan drugi uređaj iz izbornika postavki ili pokušaj ponovo učitati aplikaciju.", + "cameraNotSendingDataTitle": "Nije moguće pristupiti kameri", + "cameraPermissionDeniedError": "Ne dozvoljavaš korištenje tvoje kamere. Konferenciji se možeš svejedno pridružiti, ali te drugi neće vidjeti. To možeš ispraviti koristeći gumb kamere u adresnoj traci.", + "cameraTimeoutError": "Nije moguće pokrenuti izvor videa. Došlo je do vremenskog ograničenja!", + "cameraUnknownError": "Kamera se iz nepoznatih razloga ne može koristiti.", + "cameraUnsupportedResolutionError": "Tvoja kamera ne podržava potrebnu videorezoluciju.", + "close": "Zatvori", + "conferenceDisconnectMsg": "Provjeri svoju mrežnu vezu. Ponovno povezivanje za {{seconds}} s …", + "conferenceDisconnectTitle": "Odspojen/a si.", + "conferenceReloadMsg": "Pokušavamo to ispraviti. Ponovno povezivanje za {{seconds}} s …", + "conferenceReloadTitle": "Na žalost, dogodila se greška.", + "confirm": "Potvrdi", + "confirmNo": "Ne", + "confirmYes": "Da", + "connectError": "Ups! Dogodila se greška i nismo mogli uspostaviti vezu s konferencijom.", + "connectErrorWithMsg": "Ups! Dogodila se greška i nismo mogli uspostaviti vezu s konferencijom: {{msg}}", + "connecting": "Povezivanje", + "contactSupport": "Kontaktiraj podršku", + "copied": "Kopirano", + "copy": "Dopiraj", + "dismiss": "Odbaci", + "displayNameRequired": "Zdravo! Kako se zoveš?", + "done": "Gotovo", + "e2eeDescription": "Obostrano šifriranje je trenutačno EKSPERIMENTALNA funkcija. Imaj na umu da će uključivanje obostranog šifriranja onemogućiti poslužiteljske usluge kao što je: sudjelovanje putem telefona. Također imaj na umu da će sastanak funkcionirati samo za osobe koje se pridružuju putem preglednika s podrškom za umetnute prijenose.", + "e2eeDisabledDueToMaxModeDescription": "Obostrano šifriranje nije moguće zbog velikog broja sudionika u konferenciji.", + "e2eeLabel": "Uključi obostrano šifriranje", + "e2eeWarning": "UPOZORENJE: Čini se da svi sudionici ovog sastanka nemaju podršku za obostrano šifriranje. Ako ga uključiš, neće te moći vidjeti niti čuti.", + "e2eeWillDisableDueToMaxModeDescription": "UPOZORENJE: Obostrano šifriranje će se automatski isključiti ako se konferenciji pridruži više sudionika.", + "embedMeeting": "Ugradi sastanak", + "enterDisplayName": "Ovdje upiši svoje ime", + "error": "Greška", + "gracefulShutdown": "Naša usluga trenutačno ne radi zbog održavanja. Pokušaj kasnije ponovo.", + "grantModeratorDialog": "Stvarno želiš odobriti moderatorska prava sudioniku {{participantName}}?", + "grantModeratorTitle": "Odobri moderatorska prava", + "hideShareAudioHelper": "Ovaj dijalog više nemoj prikazivati", + "incorrectPassword": "Neispravno korisničko ime ili lozinka", + "incorrectRoomLockPassword": "Neispravna lozinka", + "internalError": "Ups! Dogodila se sljedeća greška: {{error}}", + "internalErrorTitle": "Interna greška", + "kickMessage": "Za detalje kontaktiraj {{participantDisplayName}}.", + "kickParticipantButton": "Izbaci", + "kickParticipantDialog": "Stvarno želiš izbaciti ovog sudionika?", + "kickParticipantTitle": "Izbaciti ovog sudionika?", + "kickTitle": "Joj! {{participantDisplayName}} te je izbacio/la iz sastanka", + "linkMeeting": "Poveži sastanak", + "linkMeetingTitle": "Poveži sastanak na Salesforce", + "liveStreaming": "Prijenos uživo", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Nije moguće dok je snimanje aktivno", + "liveStreamingDisabledTooltip": "Pokretanje prijenosa uživo isključeno.", + "localUserControls": "Lokalne korisničke kontrole", + "lockMessage": "Neuspjelo zaključavanje konferencije.", + "lockRoom": "Dodaj sastanak $t(lockRoomPassword)", + "lockTitle": "Zaključavanje neuspjelo", + "login": "Prijava", + "logoutQuestion": "Stvarno se želiš odjaviti i napustiti konferenciju?", + "logoutTitle": "Odjava", + "maxUsersLimitReached": "Dosegnuta je maksimalna granica broja sudionika. Konferencija je puna. Obrati se vlasniku sastanka ili pokušaj kasnije ponovo!", + "maxUsersLimitReachedTitle": "Dosegnuta je maksimalna granica broja sudionika", + "micConstraintFailedError": "Tvoj mikrofon ne zadovoljava neka potrebna ograničenja.", + "micNotFoundError": "Mikrofon nije pronađen.", + "micNotSendingData": "Idi u postavke računala za uključivanje tvog mikrofona i za podešavanje njegove glasnoće", + "micNotSendingDataTitle": "Tvoj mikrofon je isključen u postavkama sustava", + "micPermissionDeniedError": "Nisi dozvoli/la korištenje tvog mikrofona. Konferenciji se svejedno možeš pridružiti, ali te drugi neće čuti. Za ispravljanje tog problema pristisni gumb kamere u adresnoj traci.", + "micTimeoutError": "Nije moguće pokrenuti izvor zvuka. Došlo je do vremenskog ograničenja!", + "micUnknownError": "Tvoj se mikrofon iz nepoznatih razloga ne može koristiti.", + "moderationAudioLabel": "Dozvoli sudionicima da sami sebi isključe zvuk", + "moderationVideoLabel": "Dozvoli sudionicima da pokrenu svoj video", + "muteEveryoneDialog": "Sudionici mogu sebi isključiti zvuk bilo kada.", + "muteEveryoneDialogModerationOn": "Sudionici mogu poslati zahtjev za govorom bilo kada.", + "muteEveryoneElseDialog": "Nakon što im isključiš zvuk, više im nećeš moći uključiti zvuk, ali ga oni mogu sami uključiti bilo kada.", + "muteEveryoneElseTitle": "Isključi zvuk svih osim {{whom}}?", + "muteEveryoneElsesVideoDialog": "Nakon što je kamera isključena, više je nećeš moći uključiti, ali je oni mogu sami uključiti bilo kada.", + "muteEveryoneElsesVideoTitle": "Prekini videa svih sudionika osim {{whom}}?", + "muteEveryoneSelf": "mojih", + "muteEveryoneStartMuted": "Od sada svi počinju s iskjlučenim zvukom", + "muteEveryoneTitle": "Isključiti zvuk svima?", + "muteEveryonesVideoDialog": "Sudionici mogu uključiti svoja videa bilo kada.", + "muteEveryonesVideoDialogModerationOn": "Sudionici mogu poslati zahtjev za uklučivanje svojih videa bilo kada.", + "muteEveryonesVideoDialogOk": "Isključi", + "muteEveryonesVideoTitle": "Prekinuti videa svih?", + "muteParticipantBody": "Nećeš im moći uključiti zvuk, ali ga oni mogu sami uključiti bilo kada.", + "muteParticipantButton": "Isključi zvuk", + "muteParticipantsVideoBody": "Kameru više je nećeš moći uključiti, ali je oni mogu sami uključiti bilo kada.", + "muteParticipantsVideoBodyModerationOn": "Ti i drugi više naćete moći uključiti kameru.", + "muteParticipantsVideoButton": "Prekini video", + "muteParticipantsVideoDialog": "Stvarno želiš isključiti kameru ovog sudionika? Nećeš moći ponovno uključiti kameru, ali je oni mogu sami uključiti bilo kada.", + "muteParticipantsVideoDialogModerationOn": "Stvarno želiš isključiti kameru ovog sudionika? Ti i drugi više naćete moći uključiti kameru.", + "muteParticipantsVideoTitle": "Isključiti kameru ovog sudionika?", + "noDropboxToken": "Nema ispravnog Dropbox tokena", + "password": "Lozinka", + "passwordLabel": "Sudionik je zaključao sastanak. Za pridruživanje upiši $t(lockRoomPassword).", + "passwordNotSupported": "Postavljanje sastanka $t(lockRoomPassword) nije podržano.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nije podržano", + "passwordRequired": "$t(lockRoomPasswordUppercase) je obavezno", + "permissionCameraRequiredError": "Za sudjelovanje konferenciji s videom potrebna je dozvola za kameru. Dozvoli u postavkama", + "permissionErrorTitle": "Potrebna je dozvola", + "permissionMicRequiredError": "Za sudjelovanje konferenciji sa zvukom potrebna je dozvola za mikrofon. Dozvoli u postavkama", + "popupError": "Tvoj preglednik blokira skočne prozore ove stranice. Uključi skočne prozore u sigurnosnim postavkama preglednika i pokušaj ponovo.", + "popupErrorTitle": "Skočni prozor blokiran", + "readMore": "više", + "recentlyUsedObjects": "Tvoji nedavno korišteni objekti", + "recording": "Snimanje", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Nije moguće dok je prijenos uživo aktivan", + "rejoinNow": "Ponovo se priduži sada", + "remoteControlAllowedMessage": "{{user}} je prihvatio/la tvoj zahtjev za daljinskim upravljanjem!", + "remoteControlDeniedMessage": "{{user}} je odbacio/la tvoj zahtjev za daljinskim upravljanjem!", + "remoteControlErrorMessage": "Dogodila se greška prilikom traženja dozvola za daljinsko upravljanje od korisnika {{user}}!", + "remoteControlRequestMessage": "Želiš li dozvoliti korisniku {{user}} daljinsko upravljanje tvojom radnom površinom?", + "remoteControlShareScreenWarning": "Napomena: ako pritisneš „Dozvoli”, dijelit ćeš svoj ekran!", + "remoteControlStopMessage": "Sesija daljinskog upravljanja je završila!", + "remoteControlTitle": "Daljinsko upravljanje radne površine", + "remoteUserControls": "Daljinsko upravljanje korisnika {{username}}", + "removePassword": "Ukloni $t(lockRoomPassword)", + "removeSharedVideoMsg": "Stvarno želiš ukloniti svoj dijeljeni video?", + "removeSharedVideoTitle": "Ukloni dijeljeni video", + "reservationError": "Greška sustava rezervacije", + "reservationErrorMsg": "Kod greške: {{code}}, poruka: {{msg}}", + "retry": "Pokušaj ponovo", + "screenSharingAudio": "Dijeli zvuk", + "screenSharingFailed": "Ups! Nešto nije u redu, nismo uspjeli pokrenuti dijeljenje ekrana!", + "screenSharingFailedTitle": "Dijeljenje ekrana neuspjelo!", + "screenSharingPermissionDeniedError": "Ups! Nešto nije u redu s tvojim dozvolama za dijeljenje ekrana. Ponovo učitaj i pokušaj ponovo.", + "searchInSalesforce": "Traži u Salesforce", + "searchResults": "Rezultati pretrage ({{count}})", + "searchResultsDetailsError": "Nešto nije u dohvaćanju podataka vlasnika.", + "searchResultsError": "Nešto nije u dohvaćanju podataka.", + "searchResultsNotFound": "Nema rezultata.", + "searchResultsTryAgain": "Pokušaj koristiti alternativne ključne riječi.", + "sendPrivateMessage": "Nedavno si primio/la privatnu poruku. Jesi li namjeravao/la odgovoriti privatno ili želiš poslati svoju poruku grupi?", + "sendPrivateMessageCancel": "Pošalji grupi", + "sendPrivateMessageOk": "Pošalji privatno", + "sendPrivateMessageTitle": "Poslti privatno?", + "serviceUnavailable": "Usluga nije dostupna", + "sessTerminated": "Poziv prekinut", + "sessionRestarted": "Poziv je ponovo pokrenut zbog problema s vezom.", + "shareAudio": "Nastavi", + "shareAudioTitle": "Kako dijeliti zvuk", + "shareAudioWarningD1": "prije dijeljenja zvuka moraš prekinuti dijeljenje ekrana.", + "shareAudioWarningD2": "moraš ponovo pokrenuti dijeljenje ekrana i potvrditi opciju „dijeli zvuk”.", + "shareAudioWarningH1": "Ako želiš dijeliti samo zvuk:", + "shareAudioWarningTitle": "Prije dijeljenja zvuka moraš prekinuti dijeljenje ekrana", + "shareMediaWarningGenericH2": "Ako želiš dijeliti svoj ekran i zvuk", + "shareScreenWarningD1": "moraš prekinuti dijeljenje zvuka prije dijeljenja tvog ekrana.", + "shareScreenWarningD2": "moraš prekinuti dijeljenje zvuka, pokreni dijeljenja ekrana i potvrditi opciju „dijeli zvuk”.", + "shareScreenWarningH1": "Ako želiš dijeliti samo svoj ekran:", + "shareScreenWarningTitle": "Prije dijeljenja ekrana moraš prekinuti dijeljenje zvuka", + "shareVideoLinkError": "Zadaj ispravnu poveznicu za video.", + "shareVideoTitle": "Dijeli video", + "shareYourScreen": "Dijeli svoj ekran", + "shareYourScreenDisabled": "Dijeljenje ekrana isključeno.", + "sharedVideoDialogError": "Greška: Neispravan URL", + "sharedVideoLinkPlaceholder": "YouTube poveznica ili izravna poveznica videa", + "show": "Pokaži", + "start": "Pokreni ", + "startLiveStreaming": "Pokreni prijenos uživo", + "startRecording": "Pokreni snimanje", + "startRemoteControlErrorMessage": "Dogodila se greška prilikom pokretanja sesije daljniskim upravljanjem!", + "stopLiveStreaming": "Prekini prijenos uživo", + "stopRecording": "Prekini snimanje", + "stopRecordingWarning": "Stvarno želiš prekinuti snimanje?", + "stopStreamingWarning": "Stvarno želiš prekinuti prijenos uživo?", + "streamKey": "Ključ prijenosa uživo", + "thankYou": "Hvala što koristiš {{appName}}!", + "token": "token", + "tokenAuthFailed": "Na žalost se ne smiješ pridružiti ovom pozivu.", + "tokenAuthFailedTitle": "Autentifikacija neuspjela", + "transcribing": "Transkribiranje", + "unlockRoom": "Ukloni sastanak $t(lockRoomPassword)", + "user": "Korisnik", + "userIdentifier": "Identifikator korisnika", + "userPassword": "Lozinka korisnika", + "videoLink": "Poveznica za video", + "viewUpgradeOptions": "Pogledaj mogućnosti nadogradnje", + "viewUpgradeOptionsContent": "Za dobivanje neograničenog pristupa premium značajkama kao što su snimanje, transkripcije, RTMP prijenosi i više, morat ćeš nadograditi svoj plan.", + "viewUpgradeOptionsTitle": "Otkrio/la si premium značajku!", + "yourEntireScreen": "Tvoj cijeli ekran" + }, + "documentSharing": { + "title": "Dijeljeni dokument" + }, + "e2ee": { + "labelToolTip": "Audio i videokomunikacija u ovom pozivu je obostrano šifrirana" + }, + "embedMeeting": { + "title": "Ugradi ovaj sastanak" + }, + "feedback": { + "average": "Prosječno", + "bad": "Loše", + "detailsLabel": "Reci nam više o tome.", + "good": "Dobro", + "rateExperience": "Ocijeni doživljaj tvog sastanka", + "star": "Zvijezda", + "veryBad": "Vrlo loše", + "veryGood": "Vrlo dobro" + }, + "giphy": { + "noResults": "Nema rezultata :(", + "search": "Traži GIPHY" + }, + "helpView": { + "title": "Centar pomoći" + }, + "incomingCall": { + "answer": "Odgovori", + "audioCallTitle": "Dolazni poziv", + "decline": "Odbij", + "productLabel": "od Jitsi Meet", + "videoCallTitle": "Dolazni videopoziv" + }, + "info": { + "accessibilityLabel": "Pokaži informacije", + "addPassword": "Dodaj $t(lockRoomPassword)", + "cancelPassword": "Prekini $t(lockRoomPassword)", + "conferenceURL": "Poveznica:", + "copyNumber": "Kopiraj broj", + "country": "Zemlja", + "dialANumber": "Za pridruživanje sastanku, biraj jedan od ovih brojeva i zatim upiši PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Oprosti, biranje brojeva trenutačno nije podržano.", + "dialInNumber": "Pozivni broj:", + "dialInSummaryError": "Greška u dohvaćanju pozivnog broja. Pokušaj kasnije ponovo.", + "dialInTollFree": "Besplatno", + "genericError": "Dogodila se greška.", + "inviteLiveStream": "Za prikaz prijenosa uživo ovog sastanka pritisni poveznicu: {{url}}", + "invitePhone": "Za pridruživanje telefonom, dodirni: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Tražiš jedan drugi broj za nazivanje?\nPogledaj brojeve za nazivanje: {{url}}\n\n\nAko također zoveš putem telefona sobe, pridruži se bez spajanja na zvuk: {{silentUrl}}", + "inviteSipEndpoint": "Za pridruživanje koristeći SIP adresu, upiši: {{sipUri}}", + "inviteTextiOSInviteUrl": "Za pridruživanje pritisni sljedeću poveznicu: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Ako zoveš putem telefona sobe, koristi ovu poveznicu za pridruživanje se bez spajanja na zvuk: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} te poziva na sastanak.", + "inviteTextiOSPhone": "Za pridruživanje putem telefona koristi ovaj broj: {{number}},,{{conferenceID}}#. Ako tražiš drugi broj, ovo je cijeli popis: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Pozvan/a si da se pridružiš sastanku.", + "inviteURLFirstPartPersonal": "{{name}} te poziva na sastanak.\n", + "inviteURLSecondPart": "\nPridruži se sastanku:\n{{url}}\n", + "label": "Informacije o pozivnom broju", + "liveStreamURL": "Prijenos uživo:", + "moreNumbers": "Više brojeva", + "noNumbers": "Nema pozivnih brojeva.", + "noPassword": "Ništa", + "noRoom": "Za nazivanje nije određena niti jedna soba.", + "numbers": "Pozivni brojevi", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Dosegnuo/la si granicu tvog plana.", + "sip": "SIP adresa", + "title": "Dijeli", + "tooltip": "Dijeli poveznicu i informacije o pozivnom broju za ovaj sastanak", + "upgradeOptions": "Uključi opciju za nadogradnju" + }, + "inlineDialogFailure": { + "msg": "Spotaknuli smo se.", + "retry": "Pokušaj ponovo", + "support": "Podrška", + "supportMsg": "Ako se ovo nastavi događati, kontaktiraj" + }, + "inviteDialog": { + "alertText": "Neuspjelo pozivanje nekih sudionika.", + "header": "Pozovi", + "searchCallOnlyPlaceholder": "Upiši broj telefona", + "searchPeopleOnlyPlaceholder": "Traži sudionike", + "searchPlaceholder": "Sudionik ili broj telefona", + "send": "Pošalji" + }, + "jitsiHome": "{{logo}} Logotip, poveznice na početnu web stranicu", + "keyboardShortcuts": { + "focusLocal": "Postavi fokus na tvoj video", + "focusRemote": "Postavi fokus na video druge osobe", + "fullScreen": "Pokreni ili prekini cjeloekranski prikaz", + "giphyMenu": "Uključi/isključi GIPHY izbornik", + "keyboardShortcuts": "Tipkovni prečaci", + "localRecording": "Pokaži ili sakrij kontrole lokalnog snimanja", + "mute": "Isključi ili uključi zvuk tvog mikrofona", + "pushToTalk": "Pritisni za govor", + "raiseHand": "Digni ili spusti ruku", + "showSpeakerStats": "Pokaži statistiku govornika", + "toggleChat": "Otvori ili zatvori chat", + "toggleFilmstrip": "Pokaži ili sakrij minijature videa", + "toggleParticipantsPane": "Pokaži ili sakrij ploču sudionika", + "toggleScreensharing": "Mijenjaj između dijeljenja kamere i ekrana", + "toggleShortcuts": "Pokaži ili sakrij tipkovne prečace", + "videoMute": "Pokreni ili prekini svoju kameru" + }, + "largeVideo": { + "screenIsShared": "Dijeliš svoj ekran", + "showMeWhatImSharing": "Pokaži mi što dijelim" + }, + "liveStreaming": { + "busy": "Radimo na oslobađanju resursa za prijenos. Pokušaj ponovno za par minuta.", + "busyTitle": "Svi prijenosi su tranutačno zauzeti", + "changeSignIn": "Zamijeni račune.", + "choose": "Odaberi prijenos uživo", + "chooseCTA": "Radimo na oslobađanju resursa za prijenos. Trenutačno si pirjavljen/a kao {{email}}.", + "enterStreamKey": "Upiši svoj ključ za YouTube prijenos ućivo ovdje.", + "error": "Prijenos uživo neuspio. Pokušaj ponovo.", + "errorAPI": "Dogodila se greška prilikom pristupa tvpjim YouTube emisijama. Pokušaj se ponovo prijaviti.", + "errorLiveStreamNotEnabled": "Prijenos uživo nije uključen za {{email}}. Uključi prijenos uživo ili se prijavi na račun s uključenim prijenosom uživo.", + "expandedOff": "Prijenos uživo je prekinut", + "expandedOn": "Sastanak se trenutačno prenosi na YouTube.", + "expandedPending": "Prijenos uživo se pokreće …", + "failedToStart": "Pokretanje prijenosa uživo neuspjelo", + "getStreamKeyManually": "Nismo uspjeli dohvatiti nijedan prijenos uživo. Pokušaj preuzeti ključ za prijenos uživo s YouTubeae.", + "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", + "onBy": "{{name}} je pokrenuo/la prijenos uživo", + "pending": "Pokretanje prijenosa uživo …", + "serviceName": "Usluga prijenosa uživo", + "sessionAlreadyActive": "Ova se sesija već snima ili prenosi uživo.", + "signIn": "Prijavi se s Google računom", + "signInCTA": "Prijavi se ili upiši svoj ključ prijenosa uživo s YouTubea.", + "signOut": "Odjavi se", + "signedInAs": "Trenutačno si prijavljan/a kao:", + "start": "Započni prijenos uživo", + "streamIdHelp": "Što je ovo?", + "title": "Prijenos uživo", + "unavailableTitle": "Prijenos uživo nije dostupan", + "youtubeTerms": "Uvjeti YouTube usluge" + }, + "lobby": { + "allow": "Dopusti", + "backToKnockModeButton": "Zatraži pridruživanje", + "chat": "Chat", + "dialogTitle": "Modus predvorja", + "disableDialogContent": "Modus predvorja je trenutačno uključen. Ovaj modus osigurava da se neželjeni sudionici ne mogu pridružiti tvom sastanku. Želiš li ga isključiti?", + "disableDialogSubmit": "Isključi", + "emailField": "Upiši svoju e-mail adresu", + "enableDialogPasswordField": "Postavi lozinku (opcionalno)", + "enableDialogSubmit": "Uključi", + "enableDialogText": "Modus predvorja omogućuje zaštititi vlastiti sastanak dopuštajući osobama da uđu samo nakon formalnog odobrenja moderatora.", + "enterPasswordButton": "Upiši lozinku sastanka", + "enterPasswordTitle": "Upiši lozinku za pridruživanje sastanku", + "errorMissingPassword": "Upiši lozinku sastanka", + "invalidPassword": "Neispravna lozinka", + "joinRejectedMessage": "Tvoj zahtjev za pridruživanje je odbio moderator.", + "joinRejectedTitle": "Zahtjev za pridruživanje odbijen.", + "joinTitle": "Pridruži se sastanku", + "joinWithPasswordMessage": "Pokušaj pridruživanja s lozinkom, pričekaj …", + "joiningMessage": "Pridružit ćeš se sastanku čim netko prihvati tvoj zahtjev", + "joiningTitle": "Zahtjev za pridruživanje sastanku …", + "joiningWithPasswordTitle": "Pridruživanje s lozinkom …", + "knockButton": "Zatraži pridruživanje", + "knockTitle": "Netko se želi pridružiti sastanku", + "knockingParticipantList": "Popis sudionika koji se žele pridružiti", + "lobbyChatStartedNotification": "{{moderator}} je započeo/la chat u predvorju s {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} je započeo/la chat u predvorju s tobom.", + "nameField": "Upiši svoje ime", + "notificationLobbyAccessDenied": "{{originParticipantName}} je odbio/la pridruživanje sudioniku {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} je dozvolio/la pridruživanje sudioniku {{targetParticipantName}}", + "notificationLobbyDisabled": "{{originParticipantName}} je isključio/la predvorje", + "notificationLobbyEnabled": "{{originParticipantName}} je uključio/la predvorje", + "notificationTitle": "Predvorje", + "passwordField": "Upiši lozinku sastanka", + "passwordJoinButton": "Pridruži se", + "title": "Predvorje", + "toggleLabel": "Uključi predvorje" + }, + "localRecording": { + "clientState": { + "off": "Isključeno", + "on": "Uključeno", + "unknown": "Nepoznato" + }, + "dialogTitle": "Kontrole lokalnog snimanja", + "duration": "Trajanje", + "durationNA": "--", + "encoding": "Kodiranje", + "label": "LOR", + "labelToolTip": "Lokalno snimanje je aktivirano", + "localRecording": "Lokalno snimanje", + "me": "Ja", + "messages": { + "engaged": "Lokalno snimanje je aktivirano.", + "finished": "Snimanje sesije {{token}} je završeno. Pošalji snimljenu datoteku moderatoru.", + "finishedModerator": "Snimanje sesije {{token}} je završeno. Snimka lokalne snimke je spremljena. Zamoli ostale sudionike da pošalju svoje snimke.", + "notModerator": "Nisi moderator. Ne možeš pokrenuti ili prekinuti lokalno snimanje." + }, + "moderator": "Moderator", + "no": "Ne", + "participant": "Sudionik", + "participantStats": "Statistika sudionika", + "selectTabTitle": "🎥 Odaberi ovu karticu za snimanje", + "sessionToken": "Token sesije", + "start": "Pokreni snimanje", + "stop": "Prekini snimanje", + "yes": "Da" + }, + "lockRoomPassword": "lozinka", + "lockRoomPasswordUppercase": "Lozinka", + "lonelyMeetingExperience": { + "button": "Pozovi druge", + "youAreAlone": "Ti si jedina osoba na sastanku" + }, + "me": "ja", + "notify": { + "OldElectronAPPTitle": "Sigurnosni problem!", + "allowAction": "Dozvoli", + "allowedUnmute": "Možeš uključiti mikrofon, pokrenuti kameru ili dijeliti ekran.", + "audioUnmuteBlockedDescription": "Isključivanje mikrofona je tenutačno blokirano zbog ograničenja sustava.", + "audioUnmuteBlockedTitle": "Isključivanje mikrofona blokirano!", + "chatMessages": "Chat poruke", + "connectedOneMember": "{{name}} se pridružio/la sastanku", + "connectedThreePlusMembers": "{{name}} i mnogi drugi su se pridružili sastanku", + "connectedTwoMembers": "{{first}} i {{second}} su se pridružili sastanku", + "disconnected": "odspojen", + "displayNotifications": "Prikaži obavijesti za", + "focus": "Fokus konferencije", + "focusFail": "Komponenta {{component}} nije dostupna – pokušaj ponovo za {{ms}} s", + "gifsMenu": "GIPHY", + "groupTitle": "Obavijesti", + "hostAskedUnmute": "Moderator želi da govoriš", + "invitedOneMember": "{{name}} je pozvan/a", + "invitedThreePlusMembers": "{{name}} i {{count}} drugih su pozvani", + "invitedTwoMembers": "{{first}} i {{second}} su pozvani", + "kickParticipant": "{{kicker}} je izbacio/la {{kicked}}", + "leftOneMember": "{{name}} je napustio/la sastanak", + "leftThreePlusMembers": "{{name}} i mnogi drugi su napustili sastanak", + "leftTwoMembers": "{{first}} i {{second}} su napustili sastanak", + "linkToSalesforce": "Poveži sa Salesforce", + "linkToSalesforceDescription": "Sažetak sastanka možeš povezati s Salesforce objektom.", + "linkToSalesforceError": "Neuspjelo povezivanje sastanka s Salesforce", + "linkToSalesforceKey": "Poveži ovaj sastanak", + "linkToSalesforceProgress": "Povezivanje sastanka sa Salesforce …", + "linkToSalesforceSuccess": "Ovaj je sastanak povezan sa Salesforce", + "localRecordingStarted": "{{name}} je pokrenuo/la lokalno snimanje.", + "localRecordingStopped": "{{name}} je prekinuo/la lokalno snimanje.", + "me": "Ja", + "moderationInEffectCSDescription": "Digni ruku ako želiš dijeliti svoj ekran.", + "moderationInEffectCSTitle": "Moderator je blokirao dijeljenje ekrana", + "moderationInEffectDescription": "Digni ruku ako želiš govoriti.", + "moderationInEffectTitle": "Moderator je isključio tvoj mikrofon", + "moderationInEffectVideoDescription": "Digni ruku ako želiš pokrenuti svoju kameru.", + "moderationInEffectVideoTitle": "Moderator je blokirao tvoju kameru", + "moderationRequestFromModerator": "Domaćin želi da isključiš zvuk", + "moderationRequestFromParticipant": "Želi govoriti", + "moderationStartedTitle": "Moderiranje započeo/la", + "moderationStoppedTitle": "Moderiranje prekinuo/la", + "moderationToggleDescription": "{{participantDisplayName}}", + "moderator": "Ti si sada moderator", + "muted": "Započeo/la si konverzaciju s isključenim zvukom.", + "mutedRemotelyDescription": "Zvuk možeš uvijek uključiti kad želiš govoriti. Isključi zvuk kad završiš za smanjivanje buke u sastanku.", + "mutedRemotelyTitle": "{{participantDisplayName}} je isključio/la tvoj zvuk", + "mutedTitle": "Tvoj zvuk je isključen!", + "newDeviceAction": "Koristi", + "newDeviceAudioTitle": "Otkriven je novi audio uređaj", + "newDeviceCameraTitle": "Otkrivena je nova kamera", + "noiseSuppressionDesktopAudioDescription": "Suzbijanje šumova se ne može uključiti tijekom dijeljenja zvuka radne površine. Isključi suzbijanje i pokušaj ponovo.", + "noiseSuppressionFailedTitle": "Nauspjelo pokretanje suzbijanja šumova", + "noiseSuppressionNoTrackDescription": "Najprije isključi zvuk tvog mikrofona.", + "noiseSuppressionStereoDescription": "Suzbijanja šumova stereo zvuka trenutačno nije podržano.", + "oldElectronClientDescription1": "Čini se da koristiš staru verziju klijenta Jitsi Meet koja ima poznate sigurnosne probleme. Obavezno aktualiziraj na našu ", + "oldElectronClientDescription2": "najnoviju verziju", + "oldElectronClientDescription3": " sada!", + "participantWantsToJoin": "Želi se pridružiti sastanku", + "participantsWantToJoin": "Žele se pridružiti sastanku", + "passwordRemovedRemotely": "Jedan drugi sudionik je uklonio $t(lockRoomPasswordUppercase)", + "passwordSetRemotely": "Jedan drugi sudionik je postavio $t(lockRoomPasswordUppercase)", + "raiseHandAction": "Digni ruku", + "raisedHand": "Želi govoriti.", + "raisedHands": "{{participantName}} i još {{raisedHands}} osoba", + "reactionSounds": "Isključi zvukove", + "reactionSoundsForAll": "Isključi zvukove za sve", + "screenShareNoAudio": "Polje za dijeljenje zvuka nije označeno na ekranu za biranje prozora.", + "screenShareNoAudioTitle": "Nije bilo moguće dijeliti zvuk sustava!", + "selfViewTitle": "Pogled na sebe možeš sakriti u postavkama", + "somebody": "Netko", + "startSilentDescription": "Za uključivanje zvuka ponovo se pridruži sastanku", + "startSilentTitle": "Pridružio/la si se bez zvuka!", + "suboptimalBrowserWarning": "Bojimo se da tvoj doživljaj sastanka ovdje neće biti dobar. Tražimo načine da to poboljšamo, ali do tada pokušaj koristiti jedan od potpuno podržanih preglednika.", + "suboptimalExperienceTitle": "Upozorenje preglenika", + "unmute": "Isključi zvuk", + "videoMutedRemotelyDescription": "Možeš ga ponovo uključiti bilo kada.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} je isključio tvoj video", + "videoUnmuteBlockedDescription": "Uključivanje zvuka kamere i dijeljenje radne površine privremeno su blokirani zbog ograničenja sustava.", + "videoUnmuteBlockedTitle": "Isključivanje zvuka kamere i dijeljenje ekrana je blokirano!", + "viewLobby": "Pogledaj predvorje", + "waitingParticipants": "{{waitingParticipants}} ljudi" + }, + "participantsPane": { + "actions": { + "admit": "Prihvati", + "admitAll": "Prihvati sve", + "allow": "Dozvoli sudionicima da:", + "allowVideo": "Dozvole video", + "askUnmute": "Zatraže isključivanje zvuka", + "audioModeration": "Isključe vlastiti zvuk", + "blockEveryoneMicCamera": "Blokiraju mikrofone i kamere svih sudionika", + "invite": "Nekoga pozovu", + "moreModerationActions": "Daljnje opcije moderiranja", + "moreModerationControls": "Daljnje kontrole moderiranja", + "moreParticipantOptions": "Daljnje opcije sudionika", + "mute": "Isključe zvuk", + "muteAll": "Isključe zvuk svih sudionika", + "muteEveryoneElse": "Isključe zvuk svih drugih", + "reject": "Odbij", + "stopEveryonesVideo": "Prekinu videa svih", + "stopVideo": "Prekinu video", + "unblockEveryoneMicCamera": "Deblokiraju mikrofone i kamere svih sudionika", + "videoModeration": "Pokrenu vlastiti video" + }, + "close": "Zatvori", + "headings": { + "lobby": "Predvorje ({{count}})", + "participantsList": "Sudionici sastanka ({{count}})", + "waitingLobby": "Čekaju u predvorju ({{count}})" + }, + "search": "Traži sudionike", + "title": "Sudionici" + }, + "passwordDigitsOnly": "Do {{number}} znamenke/i", + "passwordSetRemotely": "Postavljena od jednog drugog sudionika", + "pinnedParticipant": "Sudionik je prikvačen", + "polls": { + "answer": { + "skip": "Preskoči", + "submit": "Pošalji" + }, + "by": "Autor {{ name }}", + "create": { + "addOption": "Dodaj opciju", + "answerPlaceholder": "Opcija {{index}}", + "cancel": "Odustani", + "create": "Stvori anketu", + "pollOption": "Opcija ankete {{index}}", + "pollQuestion": "Pitanje ankete", + "questionPlaceholder": "Postavi pitanje", + "removeOption": "Ukloni opciju", + "send": "Pošalji" + }, + "errors": { + "notUniqueOption": "Opcije moraju biti jedinstvene" + }, + "notification": { + "description": "Za glasanje otvori karticu ankete", + "title": "Ovom sastanku je dodana nova anketa" + }, + "results": { + "changeVote": "Promijeni glasanje", + "empty": "Još nema anketa u sastanku. Pokreni anketu ovdje!", + "hideDetailedResults": "Sakrij detalje", + "showDetailedResults": "Pokaži detalje", + "vote": "Glasanje" + } + }, + "poweredby": "omogućuje", + "prejoin": { + "audioAndVideoError": "Audio i videogreška:", + "audioDeviceProblem": "Postoji problem s audio uređajem", + "audioOnlyError": "Greška audio uređaja:", + "audioTrackError": "Nije bilo moguće stvoriti audio snimku.", + "callMe": "Nazovi me", + "callMeAtNumber": "Nazovi me na ovaj broj:", + "calling": "Nazivanje", + "configuringDevices": "Konfiguriranje uređaja …", + "connectedWithAudioQ": "Jesi li povezan/a s audio uređajem?", + "connection": { + "good": "Tvoja internetska veza izgleda u redu!", + "nonOptimal": "Tvoja internetska veza nije optimalna", + "poor": "Imaš slabu internetsku vezu" + }, + "connectionDetails": { + "audioClipping": "Očekujemo da će tvoj zvuk biti ispresijecan.", + "audioHighQuality": "Očekujemo da će tvoj zvuk biti izvrsne kvalitete.", + "audioLowNoVideo": "Očekujemo da će tvoj zvuk biti loše kvalitete i bez videa.", + "goodQuality": "Super! Kvaliteta tvojih medija će biti izvrsna.", + "noMediaConnectivity": "Nismo mogli pronaći način za uspostavljanje povezanosti medija za ovaj test. Razlog tome je obično vatrozid ili NAT.", + "noVideo": "Očekujemo da će tvoj video biti grozan.", + "undetectable": "Ako i dalje ne možeš nazivati u pregledniku, preporučujemo da provjeriš jesu li zvučnici, mikrofon i kamera pravilno postavljeni, da su pregledniku dodijeljena prava za korištenje mikrofona i kamere te da je verzija preglednika aktualna. Ako i dalje imaš problema s nazivanjem, obrati se programeru web-aplikacije.", + "veryPoorConnection": "Očekujemo da će kvaliteta tvog poziva biti grozna.", + "videoFreezing": "Očekujemo da će se tvoj video zamrznuti, prikazati crnu sliku i da će se prikazati pikselasto.", + "videoHighQuality": "Očekujemo da će tvoj video biti dobre kvalitete.", + "videoLowQuality": "Očekujemo da će tvoj video biti loše kvalitete što se tiče broja sličica u sekundi i rezolucije.", + "videoTearing": "Očekujemo da će se tvoj video prikazati pikselasto ili da će imati vizualne greške." + }, + "copyAndShare": "Kopiraj i dijeli poveznicu sastanka", + "dialInMeeting": "Nazovi satanak", + "dialInPin": "Nazovi satanak i upiši PIN kod:", + "dialing": "Biranje", + "doNotShow": "Nemoj više prikazivati ovaj ekran", + "errorDialOut": "Pozivanje nije bilo moguće", + "errorDialOutDisconnected": "Pozivanje nije bilo moguće. Odspojeno", + "errorDialOutFailed": "Pozivanje nije bilo moguće. Poziv neusio", + "errorDialOutStatus": "Greška u stanju pozivanja", + "errorMissingName": "Za pridruživanje sastanku upiši svoje ime", + "errorNoPermissions": "Moraš uključiti pristup mikrofonu i kameri", + "errorStatusCode": "Greška u pozivanju, kod stanja: {{status}}", + "errorValidation": "Provjera broja nije uspjela", + "iWantToDialIn": "Želim nazvati", + "initiated": "Poziv inicijaliziran", + "joinAudioByPhone": "Pridruži se putem telefona", + "joinMeeting": "Pridruži se sastanku", + "joinMeetingInLowBandwidthMode": "Pridruži se u modusu niske stope prijenosa podataka", + "joinWithoutAudio": "Pridruži se bez zvuka", + "keyboardShortcuts": "Uključi tipkovne prečace", + "linkCopied": "Poveznica kopirana u međuspremnik", + "lookGood": "Tvoj mikrofon radi ispravno", + "or": "ili", + "premeeting": "Predsastanak", + "screenSharingError": "Greška dijeljenja ekrana:", + "startWithPhone": "Počni s telefonom", + "videoOnlyError": "Greška videa:", + "videoTrackError": "Nije bilo moguće stvoriti videosnimku.", + "viewAllNumbers": "pogledaj sve brojeve" + }, + "presenceStatus": { + "busy": "Zaposlen", + "calling": "Zove …", + "connected": "Povezan", + "connecting": "Povezivanje …", + "connecting2": "Povezivanje* …", + "disconnected": "Odspojen", + "expired": "Istekao", + "ignored": "Ignoriran", + "initializingCall": "Inicijaliziranje poziva …", + "invited": "Pozvan", + "rejected": "Odbijen", + "ringing": "Zvoni …" + }, + "privacyView": { + "title": "Privatnost" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Postavi svoje prikazno ime", + "setEmailInput": "Upiši e-mail adresu", + "setEmailLabel": "Postavi svoju e-mail adresu gravatara", + "title": "Profil" + }, + "raisedHand": "Želi govoriti", + "raisedHandsLabel": "Broj dignutih ruku", + "record": { + "already": { + "linked": "Sastanak je već povezan s ovim Salesforce objektom." + }, + "type": { + "account": "Račun", + "contact": "Kontakt", + "lead": "Voditelj", + "opportunity": "Prilika", + "owner": "Vlasnik" + } + }, + "recording": { + "authDropboxText": "Prenesi na Dropbox", + "availableSpace": "Dostupna memorija: {{spaceLeft}} MB (otprilike {{duration}} min snimanja)", + "beta": "BETA", + "busy": "Radimo na oslobađanju resursa snimanja. Pokušaj ponovo za par minuta.", + "busyTitle": "Svi uređaji za snimanje su trenutačno zaposleni", + "copyLink": "Kopiraj poveznicu", + "error": "Snimanje neuspjelo. Pokušaj ponovo.", + "errorFetchingLink": "Greška pri dohvaćanju poveznice snimanja.", + "expandedOff": "Snimanje je prekinuto", + "expandedOn": "Sastanak se trenutačno snima.", + "expandedPending": "Snimanje započinje …", + "failedToStart": "Neuspjelo pokretanje snimanja", + "fileSharingdescription": "Dijeli poveznicu snimanja sa sudionicima sastanka", + "highlight": "Istakni", + "highlightMoment": "Istakni trenutak", + "highlightMomentDisabled": "Trenutke možeš istaknuti kad snimanje počne", + "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.", + "localRecordingNoVideo": "Video se ne snima", + "localRecordingStartWarning": "Provjeri da je snimanje prekinuto prije napuštanja sastanka kako bi se spremilo.", + "localRecordingStartWarningTitle": "Prekini snimanje kako bi se spremilo", + "localRecordingVideoStop": "Prekidanje tvog videa će također prekinuti lokalno snimanje. Stvarno želiš nastaviti?", + "localRecordingVideoWarning": "Za snimanje tvog videa, on mora biti uključen kada započneš snimanje", + "localRecordingWarning": "Odaberi trenutačnu karticu za korištenje ispravnog videa i zvuka.", + "loggedIn": "Prijava kao {{userName}}", + "noStreams": "Nema otkrivenih audio niti videoprijenosa.", + "off": "Snimanje prekinuto", + "offBy": "{{name}} je prekinuo/la snimanje", + "on": "Snimanje pokrenuto", + "onBy": "{{name}} je pokrenuo/la snimanje", + "onlyRecordSelf": "Snimi samo moje audio i videoprijenose", + "pending": "Pripremanje snimanja sastanka …", + "rec": "REC", + "saveLocalRecording": "Spremi datoteku snimanja lokalno (Beta)", + "serviceDescription": "Tvoje snimanje će spremiti usluga za snimanje", + "serviceDescriptionCloud": "Snimanje u oblaku", + "serviceDescriptionCloudInfo": "Snimljeni sastanci se automatski brišu nakon 24 sata.", + "serviceName": "Usluga snimanja", + "sessionAlreadyActive": "Ova se sesija već snima ili prenosi uživo.", + "signIn": "Privaji se", + "signOut": "Odjavi se", + "surfaceError": "Odaberi trenutačnu karticu.", + "title": "Snimanje", + "unavailable": "Ups! Usluga {{serviceName}} trenutačno nije dostupna. Radimo na rješavanju problema. Pokušaj kasnije ponovo.", + "unavailableTitle": "Snimanje nije dostupno", + "uploadToCloud": "Prenesi u oblak" + }, + "screenshareDisplayName": "Ekran od {{name}}", + "sectionList": { + "pullToRefresh": "Povuci za aktualiziranje" + }, + "security": { + "about": "Možeš dodati $t(lockRoomPassword) svom sastanku. Sudionici će morati upisati $t(lockRoomPassword) prije nego što im se omogući pridruživanje sastanku.", + "aboutReadOnly": "Moderatori mogu dodati $t(lockRoomPassword) sastanku. Sudionici će morati upisati $t(lockRoomPassword) prije nego što im se omogući pridruživanje sastanku.", + "insecureRoomNameWarning": "Ime sobe nije sigurno. Neželjeni sudionici mogu se pridružiti tvojoj konferenciji. Osiguraj sastanak pomoću sigurnosne tipke.", + "title": "Sigurnosne opcije" + }, + "settings": { + "buttonLabel": "Postavke", + "calendar": { + "about": "Integracija {{appName}} kalendara koristi se za siguran pristup tvom kalendaru kako bi mogao čitati nadolazeće događaje.", + "disconnect": "Odspoji", + "microsoftSignIn": "Prijavi se s Microsoft računom", + "signedIn": "Trenutačno se pristupa događajima u kalendaru za {{email}}. Pritisni gumb Odspoji za prekid pristupanja događajima u kalendaru.", + "title": "Kalendar" + }, + "desktopShareFramerate": "Broj sličica u sekundi za dijeljenje radne površine", + "desktopShareHighFpsWarning": "Veći broj sličica u sekundi za dijeljenje radne površine može utjecati na tvoju stopu prijenosa podataka. Za primjenu novih postavki moraš ponovo pokrenuti dijeljenje ekrana.", + "desktopShareWarning": "Za primjenu novih postavki moraš ponovo pokrenuti dijeljenje ekrana.", + "devices": "Uređaji", + "followMe": "Svatko me prati", + "framesPerSecond": "sličica u sekundi", + "incomingMessage": "Dolazna poruka", + "language": "Jezik", + "loggedIn": "Prijavljen/a kao {{name}}", + "maxStageParticipants": "Maksimalni broj sudionika koji se mogu prikvačiti na glavnu pozornicu", + "microphones": "Mikrofoni", + "moderator": "Moderator", + "more": "Više", + "name": "Ime", + "noDevice": "Nijedan", + "participantJoined": "Sudionik se pridružio", + "participantKnocking": "Sudionik je ušao u predvorje", + "participantLeft": "Sudionik se odjavio", + "playSounds": "Sviranje zvuka uključeno", + "reactions": "Reakcije sastanka", + "sameAsSystem": "Isto kao sustav ({{label}})", + "selectAudioOutput": "Audio razultat", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Pogled na sebe", + "sounds": "Zvukovi", + "speakers": "Zvučnici", + "startAudioMuted": "Svi počinju s isključenim zvukom", + "startReactionsMuted": "Isključi zvukove reakcija za sve", + "startVideoMuted": "Svi počinju skriveni", + "talkWhileMuted": "Govori s isključenim zvukom", + "title": "Postavke" + }, + "settingsView": { + "advanced": "Napredno", + "alertCancel": "Odustani", + "alertOk": "U redu", + "alertTitle": "Upozorenje", + "alertURLText": "Upisani URL poslužitelja je neispravan", + "buildInfoSection": "Informacije o izgradnji", + "conferenceSection": "Konferencija", + "disableCallIntegration": "Isključi izvornu integraciju nazivanja", + "disableCrashReporting": "Isključi izvještavanje o prekidu aplikacije", + "disableCrashReportingWarning": "Stvarno želiš isključiti izvještavanje o prekidu aplikacije? Postavka će se primijeniti nakon ponovnog pokretanja aplikacije.", + "disableP2P": "Isključi modus P2P", + "displayName": "Prikazno ime", + "displayNamePlaceholderText": "Npr.: John Doe", + "email": "E-mail adresa", + "goTo": "Idi na", + "header": "Postavke", + "help": "Pomoć", + "links": "Poveznice", + "privacy": "Privatnost", + "profileSection": "Profil", + "serverURL": "URL poslužitelja", + "showAdvanced": "Pokaži napredne postavke", + "startCarModeInLowBandwidthMode": "Pokreni automobilski modus u modusu niske stope prijenosa podataka", + "startWithAudioMuted": "Počni s isključenim zvukom", + "startWithVideoMuted": "Počni s isključenim zvukom videa", + "terms": "Uvjeti", + "version": "Verzija" + }, + "share": { + "dialInfoText": "\n\n=====\n\nŽeliš jednostavno nazvati putem telefona?\n\n{{defaultDialInNumber}}Pritisni ovu poveznicu za prikaz pozivnih brojeva za ovaj sastanak\n{{dialInfoPageUrl}}", + "mainText": "Pritisni sljedeću poveznicu za pridruživanje sastanku:\n{{roomUrl}}" + }, + "speaker": "Govornik", + "speakerStats": { + "angry": "Ljutit", + "disgusted": "Zgrožen", + "displayEmotions": "Prikaži emocije", + "fearful": "Strašljiv", + "happy": "Sretan", + "hours": "{{count}} h", + "minutes": "{{count}} m", + "name": "Ime", + "neutral": "Neutralan", + "sad": "Žalostan", + "search": "Traži", + "searchHint": "Traži sudionike", + "seconds": "{{count}} s", + "speakerStats": "Statistika govornika", + "speakerTime": "Vrijeme govornika", + "surprised": "Iznenađen" + }, + "startupoverlay": { + "genericTitle": "Sastanak mora koristiti tvoj mikrofon i kameru.", + "policyText": " ", + "title": "{{app}} mora koristiti tvoj mikrofon i kameru." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Ponovo se pridruži", + "text": "Za ponovno povezivanje pritisni gumb Ponovo se pridruži.", + "title": "Tvoj je videopoziv prekinut jer je tvoje računalo prešlo u stanje mirovanja." + }, + "termsView": { + "title": "Uvjeti" + }, + "toggleTopPanelLabel": "Uključi/Isključi gornju ploču", + "toolbar": { + "Settings": "Postavke", + "accessibilityLabel": { + "Settings": "Uključi/Isključi postavke", + "audioOnly": "Uključi/Isključi opciju samo zvuk", + "audioRoute": "Odaberi audio uređaj", + "boo": "Negoduj", + "breakoutRoom": "Pridruži se/Napusti sobu podgrupe", + "callQuality": "Upravljaj kvalitetom videa", + "carmode": "Automoblski modus", + "cc": "Uključi/Isključi titlove", + "chat": "Otvori/Zatvori chat", + "clap": "Plješći", + "collapse": "Sklopi", + "document": "Uključi/Isključi dijeljeni dokument", + "download": "Preuzmi naše aplikacije", + "embedMeeting": "Ugradi sastanak", + "endConference": "Završi sastanak za sve", + "expand": "Rasklopi", + "feedback": "Napiši povratnu informaciju", + "fullScreen": "Uključi/Isključi cjeloekranski prikaz", + "giphy": "Uključi/Isključi GIPHY izbornik", + "grantModerator": "Odobri moderatorska prava", + "hangup": "Napusti sastanak", + "help": "Pomoć", + "invite": "Pozovi ljude", + "kick": "Izbaci sudionika", + "laugh": "Nasmij se", + "leaveConference": "Napusti sastanak", + "like": "Palac gore", + "linkToSalesforce": "Poveznica na Salesforce", + "lobbyButton": "Uključi/Isključi modus predvorja", + "localRecording": "Uključi/Isključi kontrole lokalnog snimanja", + "lockRoom": "Uključi/Isključi lozinku sastanka", + "moreActions": "Više radnji", + "moreActionsMenu": "Izbornik za više radnje", + "moreOptions": "Pokaži više opcija", + "mute": "Uključi/Isključi zvuk", + "muteEveryone": "Isključi svima zvuk", + "muteEveryoneElse": "Isključi zvuk svim drugima", + "muteEveryoneElsesVideoStream": "Prekini video svih drugih", + "muteEveryonesVideoStream": "Prekini video svih", + "noiseSuppression": "Suzbijanje šumova", + "participants": "Sudionici", + "pip": "Uključi/Isključi modus „slika u slici”", + "privateMessage": "Pošalji privatnu poruku", + "profile": "Promijeni svoj profil", + "raiseHand": "Digni/Spusti ruku", + "reactionsMenu": "Otvori/Zatvori izbornik reakcija", + "recording": "Uključi/Isključi snimanje", + "remoteMute": "Isključi zvuk sudionika participant", + "remoteVideoMute": "Isključi kameru sudionika", + "security": "Sigurnosne opcije", + "selectBackground": "Odaberi pozadinu Background", + "selfView": "Uključi/Isključi pogled na sebe", + "shareRoom": "Pozovi nekoga", + "shareYourScreen": "Pokreni/Prekini dijeljenje tvog ekrana", + "shareaudio": "Dijeli zvuk", + "sharedvideo": "Uključi/Isključi dijeljenje videa", + "shortcuts": "Uključi/Isključi prečace", + "show": "Pokaži na pozornici", + "silence": "Tišina", + "speakerStats": "Uključi/Isključi statistiku govornika", + "surprised": "Iznenađeno", + "tileView": "Uključi/Isključi pločasti prikaz", + "toggleCamera": "Uključi/Isključi kameru", + "toggleFilmstrip": "Uključi/Isključi slike videa", + "videoblur": "Uključi/Isključi zamućenje videa", + "videomute": "Pokreni/Prekini kameru", + "whiteboard": "Pokaži/Sakrij ploču za prezentacije" + }, + "addPeople": "Dodaj ljude svom pozivu", + "audioOnlyOff": "Isključi modus niske stope prijenosa podataka", + "audioOnlyOn": "Uključi modus niske stope prijenosa podataka", + "audioRoute": "Odaberi audio uređaj", + "audioSettings": "Postavke zvuka", + "authenticate": "Autentificiraj se", + "boo": "Negoduj", + "callQuality": "Upravljaj kvalitetom videa", + "chat": "Otvori/Zatvori chat", + "clap": "Plješći", + "closeChat": "Zatvori chat", + "closeReactionsMenu": "Zatvori izbornik reakcija", + "disableNoiseSuppression": "Isključi suzbijanje šumova", + "disableReactionSounds": "Za ovaj sastanak možeš isključiti zvukove reakcija", + "documentClose": "Zatvori dijeljeni dokument", + "documentOpen": "Otvori dijeljeni dokument", + "download": "Preuzmi naše aplikacije", + "e2ee": "Obostrano šifriranje", + "embedMeeting": "Ugradi sastanak", + "endConference": "Završi sastanak za sve", + "enterFullScreen": "Uključi cjeloekranski prikaz", + "enterTileView": "Uključi pločasti prikaz", + "exitFullScreen": "Isključi cjeloekranski prikaz", + "exitTileView": "Isključi pločasti prikaz", + "feedback": "Napiši povratnu informaciju", + "giphy": "Uključi/Isključi GIPHY izbornik", + "hangup": "Napusti sastanak", + "help": "Pomoć", + "hideWhiteboard": "Sakrij ploču za prezentacije", + "invite": "Pozovi ljude", + "joinBreakoutRoom": "Pridruži se sobi podgrupe", + "laugh": "Nasmij se", + "leaveBreakoutRoom": "Napusti sobu predgrupe", + "leaveConference": "Napusti sastanak", + "like": "Palac gore", + "linkToSalesforce": "Poveznica na Salesforce", + "lobbyButtonDisable": "Isključi modus predvorja", + "lobbyButtonEnable": "Uključi modus predvorja", + "login": "Prijava", + "logout": "Odjava", + "lowerYourHand": "Spusti ruku", + "moreActions": "Više radnji", + "moreOptions": "Više opcija", + "mute": "Isključi/Uključi zvuk", + "muteEveryone": "Isključi zvuk svih sudionika", + "muteEveryonesVideo": "Isključi kamere svih sudionika", + "noAudioSignalDesc": "Ako ga nisi namjerno isključio/la u postavkama sustava ili hardvera, razmisli o mijenjanju uređaja.", + "noAudioSignalDescSuggestion": "Ako ga nisi namjerno isključio/la u postavkama sustava ili hardvera, razmisli o prebacivanju na predloženi uređaj.", + "noAudioSignalDialInDesc": "Nazvati možeš i pomoću:", + "noAudioSignalDialInLinkDesc": "Pozivni brojevi", + "noAudioSignalTitle": "Tvoj mikrofon ne šalje signale!", + "noiseSuppression": "Suzbijanje šumova", + "noisyAudioInputDesc": "Čini se da tvoj mikrofon stvara šumove. Razmisli o isključivanju zvuka ili promjeni uređaja.", + "noisyAudioInputTitle": "Čini se da tvoj mikrofon stvara šumove!", + "openChat": "Otvori chat", + "openReactionsMenu": "Otvori izbornik reakcija", + "participants": "Sudionici", + "pip": "Uključi modus slika-u-slici", + "privateMessage": "Pošalji privatnu poruku", + "profile": "Uredi svoj profil", + "raiseHand": "Digni/Spusti ruku", + "raiseYourHand": "Digni ruku", + "reactionBoo": "Pošalji reakciju neodobravanja", + "reactionClap": "Pošalji reakciju pleskanja", + "reactionLaugh": "Pošalji reakciju smijanja", + "reactionLike": "Pošalji reakciju palac gore", + "reactionSilence": "Pošalji reakciju tišine", + "reactionSurprised": "Pošalji reakciju iznenađenja", + "security": "Sigurnosne opcije", + "selectBackground": "Odaberi pozadinu", + "shareRoom": "Pozovi nekoga", + "shareaudio": "Dijeli zvuk", + "sharedvideo": "Dijeli video", + "shortcuts": "Prikaži prečace", + "showWhiteboard": "Pokaži ploču za prezentacije", + "silence": "Tišina", + "speakerStats": "Statistika govornika", + "startScreenSharing": "Pokreni dijeljenje ekrana", + "startSubtitles": "Pokreni titlove", + "stopAudioSharing": "Prekini dijeljenje zvuka", + "stopScreenSharing": "Prekini dijeljenje ekrana", + "stopSharedVideo": "Prekini video", + "stopSubtitles": "Prekini titlove", + "surprised": "Iznenađen", + "talkWhileMutedPopup": "Pokušavaš govoriti? Tvoj zvuk je isključen.", + "tileViewToggle": "Uključi/Isključi pločasti prikaz", + "toggleCamera": "Uključi/Isključi kameru", + "videoSettings": "Videopostavke", + "videomute": "Pokreni/Prekini kameru" + }, + "transcribing": { + "ccButtonTooltip": "Pokreni/Prekini titlove", + "error": "Transkribiranje neuspjelo. Pokušaj ponovo.", + "expandedLabel": "Transkribiranje je trenutačno uključeno", + "failedToStart": "Neuspjelo pokretanje transkribiranja", + "labelToolTip": "Sastanak se transkribira", + "off": "Transkribiranje je prekinuto", + "pending": "Priprema za transkribiranje sastanka …", + "sourceLanguageDesc": "Trenutačno je jezik sastanka postavljen na {{sourceLanguage}}.
Možeš ga promijeniti ", + "sourceLanguageHere": "ovdje", + "start": "Počni pokazivati titlove", + "stop": "Prekini pokazivati titlove", + "subtitles": "Titlovi", + "subtitlesOff": "Isključeno", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Dozvoli pristup tvojoj kameri i mikrofonu." + }, + "videoSIPGW": { + "busy": "Radimo na oslobađanju resursa. Pokušaj ponovo za par minuta.", + "busyTitle": "Usluga soba je trenutačno zaposlena", + "errorAlreadyInvited": "{{displayName}} je već pozvan/a", + "errorInvite": "Konferencija još nije uspostavljena. Pokušaj kasnije ponovo.", + "errorInviteFailed": "Radimo na rješavanju problema. Pokušaj kasnije ponovo.", + "errorInviteFailedTitle": "Pozivanje sudionika {{displayName}} neuspjelo", + "errorInviteTitle": "Greška prilikom poziva u sobu", + "pending": "{{displayName}} je pozvan/a" + }, + "videoStatus": { + "adjustFor": "Prilagodi za:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Koristiš modus niske stope prijenosa podataka. U ovom modusu primat ćeš samo zvuk i dijeljenje ekrana.", + "bestPerformance": "Najbolja performanca", + "callQuality": "Kvaliteta videa", + "hd": "HD", + "hdTooltip": "Prikazivanje videa u visokoj rezoluciji", + "highDefinition": "Visoka rezolucija", + "highestQuality": "Najviše kvlaiteta", + "labelTooiltipNoVideo": "Bez videa", + "labelTooltipAudioOnly": "Modus niske stope prijenosa podataka je uključen", + "ld": "LD", + "ldTooltip": "Prikazivanje videa u niskoj rezoluciji", + "lowDefinition": "Niska rezolucija", + "performanceSettings": "Postavke performance", + "sd": "SD", + "sdTooltip": "Prikazivanje videa u standardnoj rezoluciji", + "standardDefinition": "Standardna rezolucija" + }, + "videothumbnail": { + "connectionInfo": "Informacije o vezi", + "domute": "Isključi zvuk", + "domuteOthers": "Isključi zvuk za sve druge", + "domuteVideo": "Isključi kameru", + "domuteVideoOfOthers": "Isključi kameru svih drugih", + "flip": "Preokreni", + "grantModerator": "Odobri moderatorska prava", + "hideSelfView": "Sakrij pogled na sebe", + "kick": "Izbaci", + "moderator": "Moderator", + "mute": "Sudioniku je isključen zvuk", + "muted": "Isključen zvuk", + "pinToStage": "Prikvači na pozornicu", + "remoteControl": "Pokreni/Prekini daljinjsko upravljanje", + "screenSharing": "Sudionik dijeli svoj ekran", + "show": "Pokaži na pozornici", + "showSelfView": "Prikaži pogled na sebe", + "unpinFromStage": "Otkvači", + "videoMuted": "Kamera isključena disabled", + "videomute": "Sudionik je prekinuo kameru" + }, + "virtualBackground": { + "addBackground": "Dodaj pozadinu", + "apply": "Primijeni", + "backgroundEffectError": "Neuspjela primjena efekta pozadine.", + "blur": "Zamuti", + "deleteImage": "Izbriši sliku", + "desktopShare": "Dijeljenje radne površine", + "desktopShareError": "Nije bilo moguće stvoriti dijeljenje radne površine", + "image1": "Plaža", + "image2": "Bijeli neutralni zid", + "image3": "Bijela prazna soba", + "image4": "Crni luster", + "image5": "Planina", + "image6": "Šuma", + "image7": "Izlazak sunca", + "none": "Ništa", + "pleaseWait": "Pričekaj …", + "removeBackground": "Ukloni pozadinu", + "slightBlur": "Blago zamućenje", + "title": "Virtualne pozadine", + "uploadedImage": "Prenesena slika {{index}}", + "webAssemblyWarning": "WebAssembly nije podržan", + "webAssemblyWarningDescription": "WebAssembly je isključen ili ga ovaj preglednik ne podržava" + }, + "volumeSlider": "Klizač glasnoće", + "welcomepage": { + "accessibilityLabel": { + "join": "Dodirni za pridruživanje", + "roomname": "Upiši ime sobe" + }, + "addMeetingName": "Dodaj ime sastanka", + "appDescription": "Započni videochat s cijelim timom. Zapravo, pozovi sve koje poznaješ. Aplikacija {{app}} je potpuno šifrirana, 100 % otvorenog koda za videokonferencije koje možeš koristiti cijeli dan, svaki dan, besplatno — bez računa.", + "audioVideoSwitch": { + "audio": "Glas", + "video": "Video" + }, + "calendar": "Kalendar", + "connectCalendarButton": "Poveži svoj kalendar", + "connectCalendarText": "Poveži svoj kalendar za prikaz svih tvojih sastanaka u {{app}}. Dodaj {{provider}} sastanke u tvoj kalendar i pokreni ih pritiskom na njih.", + "enterRoomTitle": "Počni novi sastanak", + "getHelp": "Dobij pomoć", + "go": "KRENI", + "goSmall": "KRENI", + "headerSubtitle": "Sigurni sastanci viskoke kvalitete", + "headerTitle": "Jitsi Meet", + "info": "informacije zvanih brojeva", + "jitsiOnMobile": "Jitsi na mobilnim uređajima – preuzmi naše aplikacije i započni sastanak od kuda god želiš", + "join": "STVORI/PRIDRUŽI SE", + "logo": { + "calendar": "Logotip kalendara", + "desktopPreviewThumbnail": "Minijatura pregleda radne površine", + "googleLogo": "Google logotip", + "logoDeepLinking": "Jitsi meet logotip", + "microsoftLogo": "Microsoft logotip", + "policyLogo": "Logotip politike" + }, + "mobileDownLoadLinkAndroid": "Preuzmi mobilnu aplikaciju za Android", + "mobileDownLoadLinkFDroid": "Preuzmi mobilnu aplikaciju za F-Droid", + "mobileDownLoadLinkIos": "Preuzmi mobilnu aplikaciju za iOS", + "moderatedMessage": "Ili rezerviraj URL sastanka unaprijed na kojem si ti jedini moderator.", + "privacy": "Privatnost", + "recentList": "Nedavni", + "recentListDelete": "Izbriši unos", + "recentListEmpty": "Tvoj popis nedavnih je tranutačno prazan. Razgovaraj s tvojim timom i pronaći ćeš sve svoje nedavne sastanke.", + "reducedUIText": "Pozdrav u {{app}}!", + "roomNameAllowedChars": "Ime sastanka ne smije sadržati sljedeće znakove: ?, &, :, ', \", %, #.", + "roomname": "Upiši ime sobe", + "roomnameHint": "Upiši ime ili URL sobe kojoj se želiš pridružiti. Možeš izmisliti ime, ali obavijesti ljude s kojima se sastaješ da upišu isto ime.", + "sendFeedback": "Pošalji povratnu informaciju", + "settings": "Postavke", + "startMeeting": "Započni sastanak", + "terms": "Uvjeti", + "title": "Sigurno, funkcionalno i potpuno slobodno održavanje videokonferencija" + } +} diff --git a/lang/main-hsb.json b/lang/main-hsb.json new file mode 100644 index 0000000..6992513 --- /dev/null +++ b/lang/main-hsb.json @@ -0,0 +1,1317 @@ +{ + "addPeople": { + "add": "přeprosyć", + "addContacts": "přeprošće kontakty", + "contacts": "kontakty", + "copyInvite": "přeprošenje kopěrować", + "copyLink": "link za konferencu kopěrować", + "copyStream": "link za livestreaming kopěrować", + "countryNotSupported": "Tutón kraj hišće njepodpěrujemy.", + "countryReminder": "Telefoniske čisło njeje w USA? Prošu zawěsćić, zo so čisło z kodom za kraj započuje.", + "defaultEmail": "Waša standardna e-mejl", + "disabled": "Wy njemóžeće žanych wobdźělnikow přeprosyć.", + "failedToAdd": "zmylk při přidaću wobdźělnikow", + "footerText": "Zawołanje je deaktiwěrowane.", + "googleEmail": "Google-e-mejl", + "inviteMoreHeader": "Wy sće sam/a w posedźenju", + "inviteMoreMailSubject": "so na posedźenju {{appName}} wobdźělić", + "inviteMorePrompt": "wjace ludźi přeprosyć", + "linkCopied": "link do mjezyskłada kopěrować", + "noResults": "žane přitrjechjace wuslědki", + "outlookEmail": "Outlook-e-mejl", + "phoneNumbers": "telefoniske čisła", + "searching": "pyta…", + "shareInvite": "přeprošenje na zhromadźiznu dźělić", + "shareLink": "za přeprošenje druhich dźělće link za konferencu ", + "shareStream": "link za live-streaming dźělić", + "sipAddresses": "adresy SIP", + "telephone": "telefon: {{number}}", + "title": "wobdźělnikow na tutu konferencu přeprosyć", + "yahooEmail": "Yahoo-e-mejl" + }, + "audioDevices": { + "bluetooth": "bluetooth", + "car": "awdijo za awto", + "headphones": "słuchatka", + "none": "žane awdijowe nastroje wužiwajomne", + "phone": "telefon", + "speaker": " wótřerěčak" + }, + "audioOnly": { + "audioOnly": "snadna pasmowa šěrokosć" + }, + "breakoutRooms": { + "actions": { + "add": "breakout-rumnosć přidać", + "autoAssign": "automatisce na breakout-rumnosć rozdźělić", + "close": "začinić", + "join": "wobdźělić so", + "leaveBreakoutRoom": "breakout-rumnosć wopušćić", + "more": "wjac", + "remove": "wotstronić", + "sendToBreakoutRoom": "přitomnych do breakout-rumnosće přesunyć" + }, + "defaultName": "breakout-rumnosć #{{index}}", + "mainRoom": "hłowna rumnosć", + "notifications": { + "joined": "do breakout-rumnosće \"{{name}}\" zastupić", + "joinedMainRoom": "do hłowneje rumnosće zastupić", + "joinedTitle": "breakout-rumnosće" + } + }, + "calendarSync": { + "addMeetingURL": "link za konferencu přidać", + "confirmAddLink": "Chceće Jitsi-link k tutomu terminej přidać?", + "error": { + "appConfiguration": "Integracija protyki njeje prawje konfigurěrowana.", + "generic": "Zmylk. Pruwujće nastajenje protyki abo spytajće protyku aktualizować.", + "notSignedIn": "Zmylk při zwěsćenju awtentije za pokazanje protyki. Pruwujće nastajenje protyki abo spytajće so znowa přizjewić." + }, + "join": "so wobdźělić", + "joinTooltip": "so na zetkanju wobdźělić", + "nextMeeting": "přichodna konferenca", + "noEvents": "Njeje žanych nowych terminow.", + "ongoingMeeting": "běžace zetkanje", + "permissionButton": "nastajenja wočinić", + "permissionMessage": " Za pokazanje terminow a konferencow trjeba app přistup k protyce.", + "refresh": "protyku aktualizować", + "today": "dźensa" + }, + "carmode": { + "actions": { + "selectSoundDevice": "nastroj za zwuk wuzwolić" + }, + "labels": { + "buttonLabel": "awto modus", + "title": "modus za wěste jězdźenje", + "videoStopped": "widejo je zastał" + } + }, + "chat": { + "enter": "do chat-rumnosće zastupić", + "error": "Zmylk: Waša powěsć njeje so wupósłała. Přičina: {{error}}", + "fieldPlaceHolder": "powěsć tu zapisać", + "lobbyChatMessageTo": "lobbyjowa powěsć na {{recipient}}", + "message": "powěsć", + "messageAccessibleTitle": "{{user}} praji:", + "messageAccessibleTitleMe": "ja praju:", + "messageTo": "priwatna powěsć na {{recipient}}", + "messagebox": "powěsć zapisać", + "nickname": { + "popover": "wuzwolće mjeno (alias)", + "title": "zapodajće aliasa za chat", + "titleWithPolls": "zapodajće aliasa za chat" + }, + "noMessagesMessage": "Njejsu hišće powěsće w tutej konferency. Započće z rozmołwu tule!", + "privateNotice": "priwatna powěsć na {{recipient}}", + "sendButton": "pósłać", + "smileysPanel": "wuběr emojijow", + "tabs": { + "chat": "chatować", + "polls": "naprašowanja" + }, + "title": "chatować", + "titleWithPolls": "chatować a so naprašować", + "you": "Wy" + }, + "chromeExtensionBanner": { + "buttonText": "rozšěrjenje za Chrome instalować", + "close": "začinić", + "dontShowAgain": "pokiw wjace njepokazać", + "installExtensionText": "Instalujće rozšěrjenje za integraciju protyki Google a Office 365" + }, + "connectingOverlay": { + "joiningRoom": "zwjazanje ze zetkanjom…" + }, + "connection": { + "ATTACHED": "připowěsnjene", + "AUTHENTICATING": "awtentifikacija běži", + "AUTHFAIL": " zmylk při awtentifikaciji", + "CONNECTED": "zwjazane", + "CONNECTING": "so zwjaza", + "CONNFAIL": "natwar zwiska zwrěšćił", + "DISCONNECTED": "dźělene", + "DISCONNECTING": "zwisk so přetorhnje", + "ERROR": "zmylk", + "FETCH_SESSION_ID": "ID posedźenja wotwołwać …", + "GET_SESSION_ID_ERROR": "Zmylk ID-posedźenja wotwołwać: {{code}}", + "GOT_SESSION_ID": " ID-posedźenja wotwołwać … zakónčene", + "LOW_BANDWIDTH": "Widejo za {{displayName}} bu hasnjeny dla lutowanja pasmoweje šěrokosće" + }, + "connectionindicator": { + "address": "adresa:", + "audio_ssrc": "awdijo-SSRC:", + "bandwidth": "trochowana pasmowa šěrokosć :", + "bitrate": "bitowa rata:", + "bridgeCount": "ličba serwera: ", + "codecs": "kody (A/V): ", + "connectedTo": "zwjazane z:", + "framerate": " wobrazowospjetna frekwenca:", + "less": "mjenje pokazać", + "localaddress": "lokalna adresa:", + "localaddress_plural": "lokalne adresy:", + "localport": "lokalny port:", + "localport_plural": "lokalne porty:", + "maxEnabledResolution": "maks. pósłać", + "more": "wjace pokazać", + "packetloss": "pakćik zhubjeny:", + "participant_id": "ID wobdźělnika:", + "quality": { + "good": "dobre", + "inactive": "njeaktiwne", + "lost": "zhubjene", + "nonoptimal": "njeoptimalne", + "poor": "hubjene" + }, + "remoteaddress": "wotstronjena adresa:", + "remoteaddress_plural": " wotstronjene adresy:", + "remoteport": "wotstronjeny port:", + "remoteport_plural": " wotstronjene porty:", + "resolution": "rozpušćenje:", + "savelogs": "logs składować", + "status": "zwisk:", + "transport": "protokol:", + "transport_plural": "protokole:", + "video_ssrc": "widejo-SSRC:" + }, + "dateUtils": { + "earlier": "zašłe", + "today": "dźensa", + "yesterday": "wčera" + }, + "deepLinking": { + "appNotInstalled": "Trjebaće aplikaciju „{{app}}“ za přistup ke konferency přez handy.", + "description": "Ničo so njestanje? Smy spytali aplikaciju {{app}} konferency wočinić . Spytajće znowa abo přistupće přez syć.", + "descriptionWithoutWeb": "Njeje so ničo stało? Smy spytali Wašu konferencu w aplikaciji„{{app}}“ na desktopje startować.", + "downloadApp": "aplikaciju downloadować", + "ifDoNotHaveApp": "Hdyž aplikaciju hišće nimaće:", + "ifHaveApp": "Hdyž aplikaciju hižo maće:", + "joinInApp": "So z aplikaciju na konferency wobdźělić", + "launchWebButton": "w syći wočinić", + "title": "Konferenca so w {{app}} wočini …", + "tryAgainButton": "Znowa z natiwnej aplikaciju spytać", + "unsupportedBrowser": "browser so njepodpěra" + }, + "defaultLink": "na př.: {{url}}", + "defaultNickname": "na př. Jane Pink", + "deviceError": { + "cameraError": "zmylk při přistupje ke kamerje", + "cameraPermission": "zmylk w prawje na přistup ke kamerje", + "microphoneError": "zmylk při přistupje k mikrofonej", + "microphonePermission": " zmylk w prawje na přistup k mikrofonej" + }, + "deviceSelection": { + "noPermission": "žane prawo", + "previewUnavailable": "žana předpokazka móžna", + "selectADevice": "nastroj wuzwolić", + "testAudio": "zwuk testować" + }, + "dialOut": { + "statusMessage": "nětkle je {{status}}" + }, + "dialog": { + "Back": "wróćo", + "Cancel": "přetorhnyć ", + "IamHost": "ja sym organizator", + "Ok": "ok", + "Remove": "wotstronić", + "Share": "dźělić", + "Submit": "ok", + "WaitForHostMsg": "Konferenca {{room}} njeje so hišće započała. Sće-li organizator, so prošu awtentifikujće. Hewak čakajće, doniž so organizator njezjewi.", + "WaitingForHostTitle": "na zahajenje konferency čakać", + "Yes": "haj", + "accessibilityLabel": { + "liveStreaming": "live-stream" + }, + "add": "přidać", + "addMeetingNote": "noticu k tutej konferency přidać", + "addOptionalNote": "noticu přidać (opcijonalne)", + "allow": "dowolić", + "alreadySharedVideoMsg": "Nichtó druhi hižo widejo dźěli. W tutej konferency je jenož jedyn dźěleny widejo móžny.", + "alreadySharedVideoTitle": "jenož jedyn dźěleny widejo runočasnje", + "applicationWindow": "nałožowanske wokno", + "authenticationRequired": "autentifikacija trěbna", + "cameraConstraintFailedError": "Waša kamera njespjelni trěbne wuměnjenja.", + "cameraNotFoundError": "Kamera so njenamaka.", + "cameraNotSendingData": "Kamera njeje wužiwajomna. Prošu pruwować, hač někajka druha aplikacija kameru wužiwa, hinašu kameru z menija wuzwolić abo aplikaciju znowa startować.", + "cameraNotSendingDataTitle": "přistup ke kamerje njeje móžny", + "cameraPermissionDeniedError": "Prawo na wužiwanje kamery njebu spožčene. Móžeće so najebać toho na konferency wobdźělič, ale druzy Was njemóža widźeć. Wužiwajće za spožčenje prawa tłóčatko za kameru w adresowej lajsće.", + "cameraTimeoutError": "Widejo njemóžeše so startować - překroćenje časa!", + "cameraUnknownError": "Kamera so z njeznatych přičin wužiwać njemóže.", + "cameraUnsupportedResolutionError": "Kamera njepodpěruje trěbne rozpušćenje.", + "close": "začinić", + "conferenceDisconnectMsg": "Pruwujće ewentualnje zwisk za syću. Zwjaza so w {{seconds}} sekundach …", + "conferenceDisconnectTitle": "Zwisk bu přetorhnjeny.", + "conferenceReloadMsg": "Spytamy to rozrisać. Zwjaza so w {{seconds}} sekundach …", + "conferenceReloadTitle": "Nažel je něšto křiwje šło.", + "confirm": "wopodstatnić", + "confirmNo": "ně", + "confirmYes": "haj", + "connectError": "Ow! Něšto je křiwje šło – přistup ke konferency njebě móžny.", + "connectErrorWithMsg": " Ow! Něšto je křiwje šło – přistup ke konferency njebě móžny: {{msg}}", + "connecting": "zwjaza so", + "contactSupport": "support kontaktěrować", + "copied": " kopěrowane ", + "copy": " kopěrować ", + "dismiss": "OK", + "displayNameRequired": "Witajće! Kak rěkaće?", + "done": "hotowe", + "e2eeDescription": "End-to-end-zaklučowanje je we wokomiku hišće EKSPERIMENTALNE. Prošu wobkedźbujće, zo aktiwěrowanje end-to-end-zaklučowanja wšelake funkcije serwera deaktiwěruje: nahrawanje, live-streaming a telefon. Prošu wobkedźbujće tohorunja, zo móže so ke konferency potom jenož hišće z browserom přistupić, kotryž „Insertable Streams“ podpěruje.", + "e2eeDisabledDueToMaxModeDescription": "End-to-end-zaklučowanje njemóže za wysokeje ličby wobdźělnikow dla aktiwěrować.", + "e2eeLabel": "End-to-end-zaklučowanje aktiwěrować", + "e2eeWarning": "WARNOWANJE: Pozdaću njepodpěruja wšitcy wobdźělnicy tuteje konferency end-to-end-zaklučowanje. Hdyž tute aktiwěrujeće, njemóža wotpowědni wobźělnicy ničo wjace słyšeć abo widźeć.", + "e2eeWillDisableDueToMaxModeDescription": "WARNOWANJE: end-to-end-zaklučowanje deaktiwěruje so awtomatisce, hdyž so nowi wobdźělnicy přidruža.", + "embedMeeting": "konferencu zawjazać", + "enterDisplayName": "prošu tu Waše mjeno zapodać", + "error": "zmylk", + "gracefulShutdown": "Hladanskich dźěłow dla njesteji serwis wokomiknje k dispoziciji. Prošu spytajće pozdźišo hišće raz.", + "grantModeratorDialog": "Chceće Wy tutoho wobdźělnika woprawdźe za moderatora postajić?", + "grantModeratorTitle": "za moderatora postajić", + "hideShareAudioHelper": "tutu informaciju wjac njepokazać", + "incorrectPassword": "mjeno a hesło njepłaćiwe", + "incorrectRoomLockPassword": "wopačne hesło", + "internalError": "Ow! Něšto je křiwje šło. Sćěhowacy zmylk je so jewił: {{error}}", + "internalErrorTitle": "interny zmylk", + "kickMessage": "Za wjac informacijow wobroćće so na {{participantDisplayName}} .", + "kickParticipantButton": "wuzamknyć", + "kickParticipantDialog": "Chceće tuteho wobdźělinka woprawdźe wuzamknyć?", + "kickParticipantTitle": "Wobdźělnika wuzamknyć?", + "kickTitle": "Awč! {{participantDisplayName}} je Was z konferency wuzamknył/a", + "linkMeeting": "konferencu zalinkować", + "linkMeetingTitle": "konferencu ze Salesforce zwjazać", + "liveStreaming": "live-streaming", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "za čas nahrawanja njemóžne", + "liveStreamingDisabledTooltip": "Startowanje live-streama je deaktiwěrowane.", + "localUserControls": "lokalna kontrola", + "lockMessage": "Konferenca njedaše so zawrěć.", + "lockRoom": "konferencu$t(lockRoomPassword) přidać", + "lockTitle": "zawrjenje njeje fungowało", + "login": "přizjewić", + "logoutQuestion": "Sće sej wěsty/a, zo chceće so wotzjewić a konferencu wopušćić?", + "logoutTitle": "wotzjewić", + "maxUsersLimitReached": "Limit za maksimalnu ličbu wobdźělnikow je docpěty. Konferenca je połna. Prošu wobroćće so na wobsedźerja konferency abo spytajće pozdźišo znowal!", + "maxUsersLimitReachedTitle": "maksimalna ličba wobdźělinkow docpěta", + "micConstraintFailedError": "Waš mikrofon njespjelni trěbne wuměnjenja.", + "micNotFoundError": "mikrofon so njenamaka", + "micNotSendingData": "Wočińće nastajenja Wašeho kompjutera za aktiwěrowanje Wašeho mikrofona a nastajenja wolumena", + "micNotSendingDataTitle": "Waš mikrofon je přez nastajenja systema němy šaltowany", + "micPermissionDeniedError": "Prawo na wužiwanje mikrofona njebu spožčene. Móžeće so najebać toho na konferency wobdźělić, ale druzy Was njemóža słyšeć. Za spožčenje prawa wužiwajće tłóčatko za kameru w adresowej lajsće.", + "micTimeoutError": "čas překroćeny", + "micUnknownError": "Mikrofon so z njeznatych přičin wužiwać njeda.", + "moderationAudioLabel": "Dowol přitomnym, němje šaltowanje zběhnyć", + "moderationVideoLabel": "Dowol přitomnym, kameru wužiwać.", + "muteEveryoneDialog": "Chceće Wy woprawdźe wšitkich němych šaltować? Njemóžeće to wjace změnić, móžeće pak Waš mikrofon w kóždym času zaso zapinyć.", + "muteEveryoneDialogModerationOn": "Přitomni smědźa w kóždym času naprašowanje za rěčenje stajić.", + "muteEveryoneElseDialog": "Je mikrofon druhich jónu němy šaltowany, njeda so to wjace změnić. Móžeće pak Waš mikrofon w kóždym času zaso zapinyć.", + "muteEveryoneElseTitle": "Wšitkich nimo {{whom}} němych šaltować?", + "muteEveryoneElsesVideoDialog": "Kaž chětř je kamera hasnjena, njemóžěće Wy ju wjac aktiwěrować. Wobdźělnicy pak móža to kóždy čas změnić.", + "muteEveryoneElsesVideoTitle": "Kameru wšitkich nimo {{whom}} hasnyć?", + "muteEveryoneSelf": "sebje samoho", + "muteEveryoneStartMuted": "Wotnětka započnu wšitcy němi šaltowani.", + "muteEveryoneTitle": "wšitkich němych šaltować?", + "muteEveryonesVideoDialog": "Kameru wšitkich woprawdźe hasnyć?", + "muteEveryonesVideoDialogModerationOn": "Přitomni móža w kóždym času wužiwanje kamery naprašować.", + "muteEveryonesVideoDialogOk": "deaktiwěrować", + "muteEveryonesVideoTitle": "Kameru wšitkich druhich hasnyć?", + "muteParticipantBody": "Wy njemóžeće nastajenje němosće druhich změnić, ale kóždy wobdźělnik móže swójske nastajenje němosće kóždy čas skónčić.", + "muteParticipantButton": "na němosć šaltować", + "muteParticipantsVideoBody": "Njemóžeće kameru wjac aktiwěrować, jenož wobdźělnik sam.", + "muteParticipantsVideoBodyModerationOn": "Njemóžeće kameru wjac aktiwěrować, jenož wobdźělnik sam.", + "muteParticipantsVideoButton": "Kameru hasnyć", + "muteParticipantsVideoDialog": "Kameru wobdźělnika woprawdźe hasnyć? Njemóžeće to wjace změnić, jenož wobdźělnik sam.", + "muteParticipantsVideoDialogModerationOn": "Kameru wobdźělnika woprawdźe hasnyć? Njemóžeće to wjace změnić, jenož wobdźělnik sam.", + "muteParticipantsVideoTitle": "Kameru tuteje wosoby hasnyć?", + "noDropboxToken": "žadyn płačiwy dropbox-token", + "password": "klučowe słowo", + "passwordLabel": "Tuta konferenca bu wot jednoho wobdźělinka zawěsćena. Prošu zapodajće $t(lockRoomPasswordUppercase) za přistup ke konferency.", + "passwordNotSupported": "Postajenje hesła za konferencu so njepodpěruje. ", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) so njepodpěruje", + "passwordRequired": "$t(lockRoomPasswordUppercase) trěbne", + "permissionCameraRequiredError": "Přistup na kameru je za widejowu konferencu trěbny.", + "permissionErrorTitle": "prawo trěbne", + "permissionMicRequiredError": "Mikrofon je za konferencu ze zwukom trěbny.", + "popupError": "Waš browser blokěruje pop-ups z tuteje strony. Prošu aktiwěrujće pop-ups w nastajenjach za wěstotu browsera a spytajće znowa.", + "popupErrorTitle": "pop-up blokěrowany", + "readMore": "wjace", + "recentlyUsedObjects": "sposledy wužiwane objekty", + "recording": "nahrawanje", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "w času live-streama njemóžne", + "recordingDisabledTooltip": "Start nahrawanja deaktiwěrowany.", + "rejoinNow": "nětko znowa přistupić", + "remoteControlAllowedMessage": "{{user}} ja naprašenje wo dalokowodźenju přiwzała/a!", + "remoteControlDeniedMessage": "{{user}} je naprašenje wo dalokowodźenju wotpokazał/a!", + "remoteControlErrorMessage": "Při wotžadanju dowolnosće za dalokowodźenje přez {{user}} je so zmylk stał!", + "remoteControlRequestMessage": "Chceće dalokowodźenje kompjutera přez {{user}} dowolić?", + "remoteControlShareScreenWarning": "Kedźbu, hdyž naprašenje dowoliće, startujeće wužiwarske prawo za monitor!", + "remoteControlStopMessage": "dalokowodźenje skónčene!", + "remoteControlTitle": "dalokowodźenje", + "remoteUserControls": "kontrola wužiwanja přez {{username}}", + "removePassword": "$t(lockRoomPasswordUppercase) wotstronić", + "removeSharedVideoMsg": "Sće sej wěsty/a, zo chceće dźěleny widejo wotstronić?", + "removeSharedVideoTitle": "swobodnje date widejo wotstronić", + "reservationError": "zmylk w rezerwowanskim systemje", + "reservationErrorMsg": "zmylk, čisło: {{code}}, powěsć: {{msg}}", + "retry": "wospjetować", + "screenSharingAudio": "awdijo dźělić", + "screenSharingFailed": "Ups! Při dźělenju monitora je něšto křiwje šło!", + "screenSharingFailedTitle": "Dźělenje monitora je zwrěšćiło!", + "screenSharingPermissionDeniedError": "Ups! Něšto njetrjechi z Wašim prawom, wužiwanje monitora dowolić. Prošu hišće hišće raz wotwołać a znowa spytać.", + "searchInSalesforce": "w Salesforce pytać", + "searchResults": "wuslědki({{count}})", + "searchResultsDetailsError": "Při wotwołanju datow wobsedźerja je so zmylk stał.", + "searchResultsError": "Při wotwołanju datow je so zmylk stał.", + "searchResultsNotFound": "žane wuslědki", + "searchResultsTryAgain": "spytajće z hinašimi hesłami znowa", + "sendPrivateMessage": "Sće před krótkim priwatnu powěsć dóstał/a. Chceće priwatnje wotmołwić abo powěsć skupinje pósłać?", + "sendPrivateMessageCancel": "na skupinu pósłać", + "sendPrivateMessageOk": "priwatnje wotmołwić ", + "sendPrivateMessageTitle": "priwatnje wotmołwić?", + "serviceUnavailable": "posłužba njeje wužiwajomna", + "sessTerminated": "konferenca je skónčena", + "sessionRestarted": "konferenca znowa startowana", + "shareAudio": "pokročować", + "shareAudioTitle": "kak da so awdijo dźělić", + "shareAudioWarningD1": "Dźělenje wobrazowki dyrbi so skónčić, prjedy hač móže so awdijo dźělić.", + "shareAudioWarningD2": "Dyrbiće dźělenje wobrazowki startować a opciju \"awdijo dźělić\" wuzwolić.", + "shareAudioWarningH1": "Hdyž chceće awdijo dźělić:", + "shareAudioWarningTitle": "Dźělenje wobrazowki dyrbi so hasnyć, prjedy hač móže so awdijo dźělić.", + "shareMediaWarningGenericH2": "hdyž chceće wobrazowku a awdijo dźělić", + "shareScreenWarningD1": "Dźělenje awdija dyrbi so skónčić, prjedy hač móže so wobrazowka dźělić", + "shareScreenWarningD2": "Dźělenje awdija dyrbi so skónčić a po tym dźělenje wobrazowki z opciju \"wobrazowku dźělić\" wuzwolić.", + "shareScreenWarningH1": "Hdyž chceće wobrazowku dźělić:", + "shareScreenWarningTitle": "Dźělenje awdija dyrbi so skónčić, prjedy hač móže so wobrazowka dźělić", + "shareVideoLinkError": "Prošu płaćiwy link na YouTube zapodać.", + "shareVideoTitle": "widejo dźělić", + "shareYourScreen": "wužiwanje monitora dowolić", + "shareYourScreenDisabled": "dowolnosć za wužiwanje monitora deaktiwěrowana", + "sharedVideoDialogError": "zmylk: URL njepłačiwa", + "sharedVideoLinkPlaceholder": "YouTube-URL abo direktna URL wideja", + "start": "startuj", + "startLiveStreaming": "live-stream startować", + "startRecording": "nahrawanje startować", + "startRemoteControlErrorMessage": "Při startowanju dalokoposłužowanja je so zmylk stał!", + "stopLiveStreaming": "live-stream stopować", + "stopRecording": "nahrawanje stopować", + "stopRecordingWarning": "Sće sej wěsty/a, zo chceće nahrawanje stopować?", + "stopStreamingWarning": "Sće sej wěsty/a, zo chceće live-stream stopować?", + "streamKey": "kluč za stream", + "thankYou": "Dźakuju so za wužiwanje {{appName}}!", + "token": "znamjo", + "tokenAuthFailed": "Nimaće prawo, so na tutej konferency wobdźělić.", + "tokenAuthFailedTitle": "awtentifikacija zwrěšćiła", + "transcribing": "so transkriběruje", + "unlockRoom": "konferencu$t(lockRoomPassword) wotstronić", + "user": "wužiwar", + "userIdentifier": "wužiwarske mjeno", + "userPassword": "hesło wužiwarja", + "videoLink": "link wideja", + "viewUpgradeOptions": "opcije za upgrade pokazać", + "viewUpgradeOptionsContent": "Za funkcije kaž nahrawanje, transkripcija, streaming RTMP a wjac trjebaće rozšěrjeny tarif.", + "viewUpgradeOptionsTitle": "premium-funkcija", + "yourEntireScreen": "cyły monitor" + }, + "documentSharing": { + "title": "swobodnje daty dokument" + }, + "e2ee": { + "labelToolTip": "Awdijowe a widejowe daty tuteje konwersacije su nětko mjez wobdźělnikami zaklučowane." + }, + "embedMeeting": { + "title": "tutu konferencu integrować" + }, + "feedback": { + "average": "spokojace", + "bad": "słabe", + "detailsLabel": "Prajće nam wjace k tomu.", + "good": "derje", + "rateExperience": "Prošu pohódnoćće tutu konferencu", + "star": "star", + "veryBad": "jara słabe", + "veryGood": "jara derje" + }, + "giphy": { + "noResults": "žane wuslědki", + "search": "GIPHY přepytać" + }, + "helpView": { + "title": "pomoc" + }, + "incomingCall": { + "answer": "wotmołwić", + "audioCallTitle": "telefonat", + "decline": "ok", + "productLabel": "wot Jitsi Meet", + "videoCallTitle": "widejo - telefonat" + }, + "info": { + "accessibilityLabel": "informacije pokazać", + "addPassword": "$t(lockRoomPasswordUppercase) přidać", + "cancelPassword": "$t(lockRoomPasswordUppercase) wotstronić", + "conferenceURL": "link:", + "copyNumber": "čisło kopěrować", + "country": "kraj", + "dialANumber": "Chceće-li so na konferency wobdźělić, wolće prošu jedne z tutych čisłow a zapodajće PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Wodajće prošu, nažel njeje tuchwilu móžne, so zawolić.", + "dialInNumber": "zawolić:", + "dialInSummaryError": "Zmylk při wotwołwanju informacijow. Prošu spytajće pozdźišo znowa.", + "dialInTollFree": "bjezpłatne", + "genericError": "Nažel je něšto křiwje šło.", + "inviteLiveStream": "Klikńće na {{url}} za wotewrjenje live-streama tuteje konferency", + "invitePhone": "Hdyž chceće so radšo přez telefon wobdźělić, wolće: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Pytaće hinaše čisło za zawolenje?\nČisła konferency pokazać: {{url}}\n\n\nHdyž so tež přez rumowy telefon zawoliće, wobdźěliće so bjeztoho, zo so sće ze zwukom zwjazany/a: {{silentUrl}}", + "inviteSipEndpoint": "za wobdźělenje z SIP, wužiwajće prošu tutu adresu: {{sipUri}}", + "inviteTextiOSInviteUrl": "so na konferency wobdźělić: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Hdyž so přez konferencny telefon zawoliće, wužiwajće sćěhowacy link za wobdźělenje bjez zwuka:{{silentUrl}} ", + "inviteTextiOSPersonal": "{{name}} Was na konferencu přeprosy.\n", + "inviteTextiOSPhone": "Za přistup přez telefon wužiwajće čisło: {{number}},,{{conferenceID}}#. Hdyž pytaće za druhim čisłom, namakaće tu dospołnu lisćinu: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Sće na konferencu přeprošeny/a.", + "inviteURLFirstPartPersonal": "{{name}} Was na konferencu přeprosy.\n", + "inviteURLSecondPart": "\nSo na konferency wobdźělić:\n{{url}}\n", + "label": "informacije za wobdźělenje", + "liveStreamURL": "live-stream:", + "moreNumbers": "dalše telefoniske čisła", + "noNumbers": "žane telefoniske čisło wužiwajomne.", + "noPassword": "žane hesło trěbne njeje", + "noRoom": "žana konferenca za tute inforamcije podata", + "numbers": "čisła", + "password": "$t(lockRoomPasswordUppercase):", + "sip": "adresa SIP", + "title": "dźělić", + "tooltip": "link za wólne wužiwanje a informacije za wobdźělenje na tutej konferency" + }, + "inlineDialogFailure": { + "msg": "Zmylk je so stał.", + "retry": "znowa spytać", + "support": "podpěra", + "supportMsg": "Hdyž so zmylk znowa jewi, kontaktěrujće" + }, + "inviteDialog": { + "alertText": "Přeprošenje někotrych wobdźělinkow njebě wuspěšne.", + "header": "přeprosyć", + "searchCallOnlyPlaceholder": "telefoniske čisło zapodać", + "searchPeopleOnlyPlaceholder": "za wobdźělinkami pytać", + "searchPlaceholder": "wobdźělnik abo telefoniske čisło", + "send": "pósłać" + }, + "jitsiHome": "{{logo}} logo, pokaza na homepage", + "keyboardShortcuts": { + "focusLocal": "lokalny widejo fokusěrować", + "focusRemote": "na widejo druheho wobdźělnika fokusěrować", + "fullScreen": "połny wobraz aktiwěrować abo deaktiwěrować", + "giphyMenu": "GIPHY pokazać abo schować", + "keyboardShortcuts": "tastowa skrótšenka", + "localRecording": "lokalne elementy za natočenje pokazać abo schować", + "mute": "něme šaltowanje aktiwěrować abo deaktiwěrować", + "pushToTalk": "Push-to-Talk (tasta za rěčenje)", + "raiseHand": "ruku zběhnyć", + "showSpeakerStats": "statistiku rěčnikow pokazać", + "toggleChat": "chat wočinić abo začinić", + "toggleFilmstrip": "miniaturny napohlad wideja pokazać abo schować", + "toggleParticipantsPane": "Lisćinu přitomnych za- abo wublendować", + "toggleScreensharing": "mjez kameru a dopušćenjom wužiwanja monitora měnjeć ", + "toggleShortcuts": "tastowe skrótšenki pokazać abo schować", + "videoMute": "kameru startować abo stopować" + }, + "liveStreaming": { + "busy": "Resursy za streaming so přihotuja. Prošu spytajće za někotre mjeńšiny znowa.", + "busyTitle": "Wšitke instancy za streaming so wužiwaja.", + "changeSignIn": "konto měnić", + "choose": "live-stream wuzwolić", + "chooseCTA": "Opcije za streaming wuzwolić. Wokomiknje sće jako {{email}} přizjewjeny/a.", + "enterStreamKey": "Kluč za live-stream na You Tube tule zapodać.", + "error": "Live-streaming njeje fungował. Prošu spytajće znowa.", + "errorAPI": "Při wotwołanju live-streama na YouTube je so zmylk stał. Prošu spytajće so znowa přizjewić.", + "errorLiveStreamNotEnabled": "Live-streaming njeje za {{email}} aktiwěrowany. Aktiwěrujće live-streaming abo přizjewće so z kontom z aktiwěrowanym live-streamingom.", + "expandedOff": "live-stream bu stopowany", + "expandedOn": "Konferenca so runje na YouTube streamuje.", + "expandedPending": "live-stream startuje …", + "failedToStart": "live-stream njemóžeše so startować", + "getStreamKeyManually": "Njemóžachmy live-stream wotwołać. Spytajće Waš kluč wot YouTube dóstać.", + "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", + "onBy": "{{name}} startowaše live-stream", + "pending": "live-stream so startuje …", + "serviceName": "serwis za live-streaming", + "sessionAlreadyActive": "live-stream je hižo aktiwěrowany", + "signIn": "so z Google přizjewić", + "signInCTA": "So přizjewić abo kluč za YouTube-live-stream zapodać.", + "signOut": "wotzjewić", + "signedInAs": "Wy sće přizjewjeny jako:", + "start": "live-stream startować", + "streamIdHelp": "Što to je?", + "title": "live-stream", + "unavailableTitle": "live-streaming njeje wužiwajomny", + "youtubeTerms": "wuměnjenja wužiwanja na YouTube" + }, + "lobby": { + "allow": "přiwzać", + "backToKnockModeButton": "žane hesło, město toho wo přistup prosyć", + "chat": "chat", + "dialogTitle": "lobbyjowy modus", + "disableDialogContent": "Lobbyjowy modus runje aktiwny njeje. Z tutej funkciju je zawěsćene, zo njemóža njewitane wosoby konferency přistupić. Funkciju aktiwěrować?", + "disableDialogSubmit": "deaktiwěrować", + "emailField": "e-mejl zapodać", + "enableDialogPasswordField": "hesło sadźić (opcijonalne)", + "enableDialogSubmit": "aktiwěrować", + "enableDialogText": "Z lobbyjowym modusom škitaće Wašu konferencu, dokelž móža jenož wot moderatora dowoleni wobdźělnicy přistupić .", + "enterPasswordButton": "konferencne hesło zapodać", + "enterPasswordTitle": "hesło za přistup wužiwać", + "errorMissingPassword": "Prošu klučowe hesło za konferencu zapodać.", + "invalidPassword": "njepłaćiwe hesło", + "joinRejectedMessage": "Waše naprašowanje za přistupom bu wot moderatora wotpokazane.", + "joinRejectedTitle": "naprašowanje za přistupom wotpokazane", + "joinTitle": "konferency přistupić", + "joinWithPasswordMessage": "Pospyt přistupa z hesłom, prošu čakać …", + "joiningMessage": "Móžeće konferency přistupić, ručež nichtó Waše naprašowanje přiwozmje.", + "joiningTitle": "próstwa wo přistup …", + "joiningWithPasswordTitle": "z hesłom přistupić …", + "knockButton": "wo přistup prosyć", + "knockTitle": "něchtó chce konferency přistupić", + "knockingParticipantList": "lisćina zakłapacych wobdźělnikow", + "lobbyChatStartedNotification": "{{moderator}} je lobby-chat z {{attendee}} zapoćinał", + "lobbyChatStartedTitle": "{{moderator}} je lobby-chat z Wami zapoćinał", + "nameField": "zapodajće Waše mjeno", + "notificationLobbyAccessDenied": "{{targetParticipantName}} bu wot {{originParticipantName}} wotpokazany/a", + "notificationLobbyAccessGranted": "{{targetParticipantName}} bu wot {{originParticipantName}} přiwzaty/a", + "notificationLobbyDisabled": "{{originParticipantName}} je lobby deaktiwěrował", + "notificationLobbyEnabled": "{{originParticipantName}} je lobby aktiwěrował", + "notificationTitle": "lobby", + "passwordField": "konferencne hesło zapodać", + "passwordJoinButton": "přistupić", + "title": "lobby", + "toggleLabel": "lobby aktiwěrować" + }, + "localRecording": { + "clientState": { + "off": "hasnjene", + "on": "aktiwne", + "unknown": "njeznate" + }, + "dialogTitle": " lokalne elementy za nahrawanje", + "duration": "dołhosć", + "durationNA": "p.w.", + "encoding": "koděrowanje", + "label": "LOR", + "labelToolTip": "lokalne nahrawanje aktiwěrowane", + "localRecording": "lokalne nahrawanje", + "me": "ja", + "messages": { + "engaged": " lokalne nahrawanje aktiwěrowane", + "finished": "Nahrawanje posedźenja {{token}} je zakónčene. Pósćelće nahrate dataje na moderatora.", + "finishedModerator": " Nahrawanje posedźenja {{token}} je zakónčene. Nahrawanje lokalneho wotběha je składowane. Prošće tamnych wobdźělnikow, swoje nahrawanja připósłać.", + "notModerator": "Wy njejsće moderator. Njemóžeće lokalne nahrawanje startować abo skónčić." + }, + "moderator": "moderator", + "no": "ně", + "participant": "wobdźělnik", + "participantStats": "statistika wobdźělnikow", + "sessionToken": "znamjo/token posedźenja", + "start": "nahrawanje startować", + "stop": "nahrawanje stopować", + "yes": "haj" + }, + "lockRoomPassword": "hesło", + "lockRoomPasswordUppercase": "hesło", + "lonelyMeetingExperience": { + "button": "druhich přeprosyć", + "youAreAlone": "Wy sće sam/a na tutej konferency" + }, + "me": "ja", + "notify": { + "OldElectronAPPTitle": "Problem z wěstotu!", + "allowAction": "dowolić", + "allowedUnmute": "Móžeće nastajenje němosće zakónčić, kameru zaswěčić abo Wašu wobrazowku dźělić.", + "audioUnmuteBlockedDescription": "Za škit před přećeženjom njemóže so tuchwilu nastajenje němosće zakónčić", + "audioUnmuteBlockedTitle": "Nastajenje němosće njemóže so zakónčić.", + "chatMessages": "chat", + "connectedOneMember": "{{name}} so na konferency wobdźěla", + "connectedThreePlusMembers": "{{name}} a {{count}} druhich wosobow so na konferency wobdźěli", + "connectedTwoMembers": "{{first}} a {{second}} so na konferency wobdźěla", + "disconnected": "přetorhnjene", + "displayNotifications": "zdźělenki pokazać", + "focus": "organisator konferency", + "focusFail": "{{component}} njehodźi so docpěć – za {{ms}} sekundow znowa spytać", + "gifsMenu": "GIPHY", + "groupTitle": "zdźělenki", + "hostAskedUnmute": "Moderator/ka Was prosy mikrofon aktiwěrować", + "invitedOneMember": "{{name}} bu přeprošeny", + "invitedThreePlusMembers": "{{name}} a {{count}} tamni buchu přeprošeni", + "invitedTwoMembers": "{{first}} a {{second}} buštaj/tej přeprošeni", + "kickParticipant": "{{kicked}} bu wot {{kicker}} z konferency wuzamknjeny", + "leftOneMember": "{{name}} je konferencu wopušćił/a", + "leftThreePlusMembers": "{{name}} a dalši su konferencu wopušćili", + "leftTwoMembers": "{{first}} a {{second}} staj/stej konferencu wpoušćiłoj", + "linkToSalesforce": "ze Salesforce zwjazać", + "linkToSalesforceDescription": "Móžeće zjeće konferency z objektom w Salesforce zwjazać.", + "linkToSalesforceError": "Konferenca njemóžeše so ze Salesforce zwjazać.", + "linkToSalesforceKey": "konferencu zalinkować", + "linkToSalesforceProgress": "konferenca so ze Salesforce zwjaza…", + "linkToSalesforceSuccess": "Konferenca bu ze Salesforce zwjazana.", + "localRecordingStarted": "{{name}} je z lokalnym nahrawanjom započinał.", + "localRecordingStopped": "{{name}} je lokalne nahrawanje skónčił.", + "me": "ja", + "moderationInEffectCSDescription": "so prošu přizjewić, hdyž chceće widejo dźělić", + "moderationInEffectCSTitle": "Widejo je wot moderacije zawrjeny.", + "moderationInEffectDescription": "so prošu přizjewić, hdyž chceće rěčeć", + "moderationInEffectTitle": "Mikrofon je wot moderacije zawrjeny.", + "moderationInEffectVideoDescription": "so prošu přizjewić, hdyž chceće kameru startować", + "moderationInEffectVideoTitle": "Kamera je wot moderacije zawrjena.", + "moderationRequestFromModerator": "Moderator/ka Was prosy mikrofon aktiwěrować.", + "moderationRequestFromParticipant": "chce rěčeć", + "moderationStartedTitle": "moderacija startowana", + "moderationStoppedTitle": "moderacija zakónčena", + "moderationToggleDescription": "wot {{participantDisplayName}}", + "moderator": "prawo moderacije přepodać!", + "muted": "Němy přistup ke konferency.", + "mutedRemotelyDescription": "Móžeće něme šaltowanje kóždy čas skónčić, hdyž chceće rěčeć. Hdyž sće hotowy/a, so prošu zaso němy/u šaltować, zo njeby so konferenca myliła.", + "mutedRemotelyTitle": " {{participantDisplayName}} je Was němeho/u šaltował!", + "mutedTitle": "Něme šaltowanje aktiwne!", + "newDeviceAction": "wužiwać", + "newDeviceAudioTitle": "nowy awdijowy nastroj spóznaty", + "newDeviceCameraTitle": "nowa kamera spóznata", + "oldElectronClientDescription1": "Wužiwaće staru wersiju Jitsi-Meet-klienta. Tuta ma znate słabosće. Prošu aktualizujće na našu.", + "oldElectronClientDescription2": "aktualnu wersiju", + "oldElectronClientDescription3": "!", + "participantWantsToJoin": "chce so na konferency wobdźělić", + "participantsWantToJoin": "chcedźa so na konferency wobdźělić", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) bu wot druheho wobdźělnika wotstronjene", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) bu wot druheho wobdźělnika postajene", + "raiseHandAction": "so přizjewić", + "raisedHand": "{{name}} chce rěčeć.", + "raisedHands": "{{participantName}} a {{raisedHands}} dalši chcedźa rěčeć.", + "reactionSounds": "zwuki za interakciju aktiwěrować", + "reactionSoundsForAll": "zwuki za interakciju za wšěch deaktiwěrować", + "screenShareNoAudio": "Opcija \"awdijo dźělić\" njebu při wuzwolenju wokna wuzwolena.", + "screenShareNoAudioTitle": "awdijo dźělić njebě wuzwolene", + "selfViewTitle": "samowobraz", + "somebody": "něchtó", + "startSilentDescription": "Přistupńće hišće raz ke konferency, zo byšće móhł/a awdijo aktiwěrować", + "startSilentTitle": "Sće bjez awdija přistupił/a!", + "suboptimalBrowserWarning": "Wodajće, ale konferenca njebudźe z {{appName}} žane wulkotne dožiwjenje. Spytamy stajnje situaciju polěpšić, ale hač do toho doporučamy wužiwanje jednoho z kompletnje podpěrowanych browserow.", + "suboptimalExperienceTitle": "warnowanje browsera", + "unmute": "něme šaltowanje zběhnyć", + "videoMutedRemotelyDescription": "Móžeće ju kóždy čas zaso zaswěćić.", + "videoMutedRemotelyTitle": "Waša kamera bu wot {{participantDisplayName}} hasnjena!", + "videoUnmuteBlockedDescription": "Za škit před přećeženjom njemóže so tuchwilu kamera wužiwać.", + "videoUnmuteBlockedTitle": "Kamera njemóže so aktiwěrować.", + "viewLobby": "lobby wobhladać", + "waitingParticipants": "{{waitingParticipants}} wosoby" + }, + "participantsPane": { + "actions": { + "admit": "přizwolić", + "admitAll": "wšitko přizwolić", + "allow": "přitomnym dowolić", + "allowVideo": "kameru zaswěčić", + "askUnmute": "wo wotstajenje šaltowanja na němosć prosyć", + "audioModeration": "šaltowanje na němosć za sebje wotstajić", + "blockEveryoneMicCamera": "kameru a mikrofon wšěch zawrěć ", + "invite": "wosobu přeprosyć", + "moreModerationActions": "dalše opcije moderatora/moderatorki", + "moreModerationControls": "dalše opcije moderatora/moderatorki", + "moreParticipantOptions": "dalšeopcije za přitomnych", + "mute": "něme šaltować", + "muteAll": "wšěch němych šaltować", + "muteEveryoneElse": "wšěch druhich němych šaltować", + "reject": "wotpokazać", + "stopEveryonesVideo": "wšitke kamery hasnyć", + "stopVideo": "kameru hasnyć", + "unblockEveryoneMicCamera": "kameru a mikrofon wšěch wočinić", + "videoModeration": "kameru zaspinyć" + }, + "close": "začinić", + "headings": { + "lobby": "lobby ({{count}})", + "participantsList": "přitomni ({{count}})", + "waitingLobby": "w lobbyji ({{count}})" + }, + "search": "přitomnych pytać", + "title": "přitomni" + }, + "passwordDigitsOnly": "hač do {{number}} cyfrow", + "passwordSetRemotely": "wot druheho wobdźělnika postajene", + "pinnedParticipant": "wosoba je připinjena", + "polls": { + "answer": { + "skip": "přeskočić", + "submit": "składować" + }, + "by": "wot {{ name }}", + "create": { + "addOption": "wotmołwu přidać", + "answerPlaceholder": "wotmołwa {{index}}", + "cancel": "přetorhnyć", + "create": "naprašowanje zestajić", + "pollOption": "wotmołwa {{index}}", + "pollQuestion": "prašenje", + "questionPlaceholder": "prašenje stajić", + "removeOption": "wotmołwu wotstronić", + "send": "zestajić" + }, + "errors": { + "notUniqueOption": "opcije dyrbja jasne być" + }, + "notification": { + "description": "Za wobdźělenje wočińće tab za naprašowanje.", + "title": "Tutej konferency bu naprašowanje přidate." + }, + "results": { + "changeVote": "wotmołwu změnić", + "empty": "Dotal njedawa žane naprašowanje w tutej konferency. Tu móžeće naprašowanje startować!", + "hideDetailedResults": "detaily schować", + "showDetailedResults": "detaily pokazać", + "vote": "vote" + } + }, + "poweredby": "poskićene wot", + "prejoin": { + "audioAndVideoError": "awdijowy a widejowy zmylk:", + "audioDeviceProblem": "Eksistuje problem z Wašim awdijowym nastrojom.", + "audioOnlyError": "awdijowy zmylk:", + "audioTrackError": "Awdijowy trak njemóžeše so zestajić.", + "callMe": "mje zawołać", + "callMeAtNumber": "Mje pod tutym čisłom zawołać:", + "calling": "wołanje", + "configuringDevices": "Nastroje so konfigurěruja …", + "connectedWithAudioQ": "Sće z awdijom zwjazany/a?", + "connection": { + "good": "Waš zwisk z internetom je dobry!", + "nonOptimal": "Waš zwisk z internetom njeje optimalny.", + "poor": "Waš zwisk z internetom je hubjeny." + }, + "connectionDetails": { + "audioClipping": "Waš zwuk budźe najskerje jakoćiwy.", + "audioHighQuality": "Waš zwuk by dyrbjał wuběrny być.", + "audioLowNoVideo": "Waš zwuk budźe najskerje hubjeny a widejo njebudźe fungować.", + "goodQuality": "Wulkotnje! Kwalita zwuka a wobraza by dyrbjała wuběrna być.", + "noMediaConnectivity": "Za tutón test njemóžeše so žadyn medijowy zwisk natwarić. Pričina je zwjetša firewall abo NAT.", + "noVideo": "Waš wobraz změje najskerje hubjenu kwalitu. ", + "undetectable": "Jeli maće z Wašim browserom dale ćeže z konferencami, pruwujće prošu zwisk a funkciju wótřerěčaka, mikrofona a kamery. Zawěsćće so tohorunja, zo ma browser trěbne prawa za přistup k mikrofonej a kamerje, a zo maće najnowšu wersiju browsera. Jeli maće přeco hišće problemy,skontaktujće prošu wuwiwarja programa.", + "veryPoorConnection": "Waša kwalita konferency budźe najskerje jara hubjena.", + "videoFreezing": "Waš wobraz budźe najskerje zamjerznyć, so čornić a změje snadne rozpušćenje.", + "videoHighQuality": "Waš wobraz by dyrbjał dobry być.", + "videoLowQuality": "Waš wobraz změje naskerje snadne rozpušćenje a wobrazowospjetnu frekwencu.", + "videoTearing": " Waš wobraz změje naskerje snadne rozpušćenje abo artefakty." + }, + "copyAndShare": "Link za konferencu kopěrować & dźělić", + "dialInMeeting": "so zawolić", + "dialInPin": "Do konferency so zawolić a PIN zapodać:", + "dialing": "wolić", + "doNotShow": "tutón monitor wjace njepokazać", + "errorDialOut": "zmylk při zawołanju", + "errorDialOutDisconnected": " zawołanje njebě móžne, zwisk přetorhnjeny", + "errorDialOutFailed": " zawołanje njebě móžne ", + "errorDialOutStatus": "zmylk při wotwołanju statusa zawołanja", + "errorMissingName": "Prošu zapodajće Waše mjeno za přistup konferency.", + "errorNoPermissions": "Dyrbiće přistup ke kamerje a mikrofonej dowolić.", + "errorStatusCode": "Zawołanje njemóžne. Status: {{status}}", + "errorValidation": "zmylk při werifikaciji čisła", + "iWantToDialIn": "chcu so zawolić", + "initiated": "wolenje startowane", + "joinAudioByPhone": "so přez telefon wobdźělić", + "joinMeeting": "konferency přistupić", + "joinWithoutAudio": "bjez zwuka přistupić", + "keyboardShortcuts": "tastaturowe skrótšenki dowolić", + "linkCopied": "link kopěrowany", + "lookGood": "Waš mikrofon pozdaću funguje.", + "or": "abo", + "premeeting": "předstwa", + "screenSharingError": "zmylk při dopušćenju wužiwanja monitora:", + "startWithPhone": "z telefoniskim awdijom startować", + "videoOnlyError": "widejowy zmylk:", + "videoTrackError": "widejowy trak njebě móžny", + "viewAllNumbers": "wšitke čisła pokazać" + }, + "presenceStatus": { + "busy": "dźěławy", + "calling": "so zawoła …", + "connected": "zwjazane", + "connecting": "so zwjaza…", + "connecting2": "so zwjaza z*…", + "disconnected": "dźělene", + "expired": "wotběžane", + "ignored": "ignorowane", + "initializingCall": "wolić…", + "invited": "přeprosyć", + "rejected": "wotpokazane", + "ringing": "zwoni …" + }, + "privacyView": { + "title": "datowy škit" + }, + "profile": { + "avatar": "wobraz wužiwarja/awatar", + "setDisplayNameLabel": "zjawne mjeno postajić", + "setEmailInput": "e-mejl zapodać", + "setEmailLabel": "e-mejl za gravatara", + "title": "profil" + }, + "raisedHand": "ruku zběhnyć", + "raisedHandsLabel": "ličba zběhnjenych rukow", + "record": { + "already": { + "linked": "Tuta konferenca je hižo z objektom w Salesforce zwjazana." + }, + "type": { + "account": "konto", + "contact": "kontakt", + "lead": "lead", + "opportunity": "sładnosć", + "owner": "wobsedźer" + } + }, + "recording": { + "authDropboxText": "do dropboksy uploadować", + "availableSpace": "wužiwajomne městno za składowanje: {{spaceLeft}} MB (někak {{duration}} minutow nahrawanja)", + "beta": "BETA", + "busy": "Resursy za nahrawanje so přihotuja. Prošu za někotre mjeńšiny znowa spytać.", + "busyTitle": "Wšitke instancy za nahrawanje so hižo wužiwaja.", + "copyLink": "link kopěrować", + "error": "Nahrawanje njeje fungowało. Prošu znowa spytać.", + "errorFetchingLink": "Link na nahrawanje njeje so móhł wočinić.", + "expandedOff": "nahrawanje stopowane", + "expandedOn": "Konferenca so wokomiknje nahrawa.", + "expandedPending": "nahrawanje startuje…", + "failedToStart": "Nahrawanje njemóžeše so startować.", + "fileSharingdescription": "Nahrawanje z wobdźělnikami dźělić", + "highlight": "markěrować", + "highlightMoment": "wokomik markěrować", + "highlightMomentDisabled": "Móžeće wokomiki markěrować, ručež nahrawanje započina.", + "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ć.", + "loggedIn": "přizjewjeny/a jako {{userName}} ", + "off": "nahrawanje stopowane", + "offBy": "{{name}} stopuje nahrawanje", + "on": "nahrawanje", + "onBy": "{{name}} startuje nahrawanje", + "pending": "nahrawanje konferency so přihotuje…", + "rec": "NAHR", + "saveLocalRecording": "nahrawanje lokalnje składować", + "serviceDescription": "Waše nahrawanje so wot nahrawanskeho serwisa składuje.", + "serviceDescriptionCloud": "nahrawanje na cloud", + "serviceDescriptionCloudInfo": "Nahrwanja so 24 hodźin po nahrawanju awtomatisce wotstronja.", + "serviceName": "nahrawanski serwis", + "sessionAlreadyActive": "Konferenca so hižo nahrawa.", + "signIn": "přizjewić", + "signOut": "wotzjewić", + "surfaceError": "prošu aktualny tab wužiwać", + "title": "nahrawanje", + "unavailable": "Ow! {{serviceName}} tuchwilu wužiwajomny njeje. Dźěłamy na rozrisanju problema. Prošu pozdźišo znowa spytać .", + "unavailableTitle": "nahrawanje njeje wužiwajomne", + "uploadToCloud": "do cloud přenošować" + }, + "screenshareDisplayName": "wobrazowka wot {{name}}", + "sectionList": { + "pullToRefresh": "ćahnyć za aktualizowanje" + }, + "security": { + "about": "Móžeće Wašu konferencu z hesłom škitać. Wobdźělnicy dyrbja tute zapodać, prjedy hač smědźa so na konferency wobdźělić.", + "aboutReadOnly": " Moderatorojo móža konferencu z hesłom škitać. Wobdźělnicy dyrbja tute zapodać, prjedy hač smědźa so wobdźělić.", + "insecureRoomNameWarning": "Mjeno ruma je njewěste. Njewitani wobdźělnicy móhli Wašej konferency přistupić.", + "title": "opcije wěstoty" + }, + "settings": { + "calendar": { + "about": "Integracija protyki {{appName}} so wužiwa, zo by wěsty přistup k Wašej protyce a wučitanje terminow móžne było. ", + "disconnect": "přetorhnjene", + "microsoftSignIn": "so z Microsoft přizjewić", + "signedIn": "Wokomiknje wužiwa so protyka wot {{email}}. Klikńće na „přetorhnyć“, zo by so přistup k terminam protyki skónčił.", + "title": "protyka" + }, + "desktopShareFramerate": "framerate za dźělenje wobrazowki", + "desktopShareHighFpsWarning": "Wyša framerate móže so na datowu ratu wuskutkować. Za přewzaće nastajenja dyrbiće dźělenje wobrazowki znowa startować. ", + "desktopShareWarning": "Za přewzaće nastajenja dyrbiće dźělenje wobrazowki znowa startować.", + "devices": "nastroje", + "followMe": "follow-me za wšitkich wobdźělnikow", + "framesPerSecond": "fps", + "incomingMessage": "powěsć", + "language": "rěč", + "loggedIn": "jako {{name}} přizjewjeny", + "maxStageParticipants": "maksimalna ličba wobdźělnikow, kotraž móže so k hłownej wobrazowce přitynknyć", + "microphones": "mikrofon", + "moderator": "moderator", + "more": "wjace", + "name": "mjeno", + "noDevice": "žadyn", + "participantJoined": "nowy wobdźělnik", + "participantLeft": "Wobdźělnik je konferencu wopušćił.", + "playSounds": "zwuk za pokazki aktiwěrowany", + "reactions": "interakcije", + "sameAsSystem": "kaž system ({{label}})", + "selectAudioOutput": "wudaće awdija", + "selectCamera": "kamera", + "selectMic": "mikrofon", + "selfView": "samonapohlad", + "sounds": "zwuki za pokazki", + "speakers": "wótřerěčak", + "startAudioMuted": "wšitcy wobdźělnicy němi přistupja", + "startReactionsMuted": "zwuk za pokazki za wšěch deaktiwěrować", + "startVideoMuted": " wšitcy wobdźělnicy přistupja bjez wideja", + "talkWhileMuted": "hdyž so při němje šaltowanju rěči", + "title": "nastajenja" + }, + "settingsView": { + "advanced": "rozšěrjene", + "alertCancel": "přetorhnyć", + "alertOk": "ok", + "alertTitle": "warnowanje", + "alertURLText": "Zapodata URL serwera je njepłačiwa.", + "buildInfoSection": "build-informacije", + "conferenceSection": "konferenca", + "disableCallIntegration": "natiwnu integraciju zawołanja deaktiwěrować", + "disableCrashReporting": "rozprawy wo zwrěšćenjach deaktiwěrować", + "disableCrashReportingWarning": "Chceće rozprawy wo zwrěšćenjach woprawdźe deaktiwěrować? Tute nastajenje budźe hakle po nowostarće app skutkować.", + "disableP2P": "end-to-end - modus deaktiwěrować", + "displayName": "pokazane mjeno", + "email": "e-mejl", + "header": "nastajenja", + "profileSection": "profil", + "serverURL": "URL serwera", + "showAdvanced": "rozšěrene nastajenja pokazać", + "startWithAudioMuted": "němy/a přistupić", + "startWithVideoMuted": "bjez wideja přistupić", + "version": "wersija" + }, + "share": { + "dialInfoText": "\n\n=====\n\nChceće so jenož na Wašim telefonje zawolić? \n\n{{defaultDialInNumber}}Klikńće na tutón link za pokazanje wšitkich přizjewjenych telefoniskich čisłow tuteje konferency\n{{dialInfoPageUrl}}", + "mainText": "Klikńće na slědowacy link za přistup ke konferency:\n{{roomUrl}}" + }, + "speaker": "rěčnik", + "speakerStats": { + "angry": "hněwny", + "disgusted": "so grawacy", + "displayEmotions": "emocije pokazać", + "fearful": "strachoćiwy", + "happy": "wjesoły", + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "mjeno", + "neutral": "neutralny", + "sad": "zrudny", + "search": "pytać", + "searchHint": "přitomnych pytać", + "seconds": "{{count}}s", + "speakerStats": "statistika rěčnikow", + "speakerTime": "čas rěčnikow", + "surprised": "překłapjeny" + }, + "startupoverlay": { + "genericTitle": "Konferenca dyrbi Waš mikrofon a kameru wužiwać.", + "policyText": " ", + "title": "{{app}} trjeba kameru a mikrofon." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "so znowa wobdźělić", + "text": "„so znowa wobdźělić“kliknyć za nowe nawjazanje zwiska", + "title": "Konferenca bu přetorhnjena, dokelž bu standby-modus aktiwěrowany." + }, + "termsView": { + "title": "wuměnjenja za wužiwanje" + }, + "toolbar": { + "Settings": "nastajenja", + "accessibilityLabel": { + "Settings": "nastajenja zapnyć/hasnyć ", + "audioOnly": "„jenož awdijo“ zapnyć/hasnyć", + "audioRoute": "awdijowy nastroj wuzwolić", + "boo": "buh wołać", + "breakoutRoom": "do breakout-rumnosće zastupić/wopušćić", + "callQuality": "nastajenja kwality", + "carmode": "awto modus", + "cc": "podtitule zapnyć/hasnyć", + "chat": "chat-woknješko pokazać/schować", + "clap": "placać", + "collapse": "pomjeńšić", + "document": "dźěleny dokument začinić", + "download": "naše aplikacije downloadować ", + "embedMeeting": "konferencu integrować", + "expand": "rozšěrić", + "feedback": "feedback zawostajić", + "fullScreen": "połny wobraz nastajić/hasnyć", + "giphy": "GIPHY zapinyć/hasnyć", + "grantModerator": "za moderatora postajić", + "hangup": "telefonat skónčić", + "help": "pomoc", + "invite": "wobdźělnika přeprosyć", + "kick": " wobdźělnika wuzamknyć", + "laugh": "so smjeć", + "leaveConference": "konferencu wopušćić", + "like": "palc horje", + "linkToSalesforce": "ze Salesforce zwjazać", + "lobbyButton": "lobby-modus zapnyć/hasnyć", + "localRecording": "lokalne nastajenske elementy za nahrawanje zapnyć/hasnyć", + "lockRoom": "konferencne hesło zapnyć/hasnyć", + "moreActions": "meni „dalše akcije“ zapnyć/hasnyć ", + "moreActionsMenu": "meni „dalše akcije“", + "moreOptions": "meni „dalše opcije“", + "mute": "„awdijo něme stajić“ zapnyć/hasnyć ", + "muteEveryone": "wšitkich němych šaltować", + "muteEveryoneElse": "wšěch druhich němych šaltować", + "muteEveryoneElsesVideoStream": "wšitke druhe kamery hasnyć", + "muteEveryonesVideoStream": "wšitke kamery hasnyć", + "participants": "přitomni", + "pip": "modus wobraz-we-wobrazu zapnyć/hasnyć ", + "privateMessage": "priwatne powěsće pósłać", + "profile": "profil wobdźěłać", + "raiseHand": "„ruku zběhnyć“ zapnyć/hasnyć ", + "reactionsMenu": "meni za interakcije wočinić/začinić", + "recording": "nahrawanje zapnyć/hasnyć ", + "remoteMute": "wobdźělnika němeho šaltować", + "remoteVideoMute": "kameru tuteje wosoby hasnyć", + "security": "opcije za wěstotu", + "selectBackground": "pozadk wuzwolić", + "selfView": "samowobraz zaspinyć/hasnyć", + "shareRoom": "wosobu přeprosyć", + "shareYourScreen": "dowolnosć wužiwanja monitora zapnyć/hasnyć ", + "shareaudio": "audio dźělić", + "sharedvideo": "dopušćenje za YouTube-widejo zapnyć/hasnyć ", + "shortcuts": "tastowe kombinacije pokazać/schować", + "show": "prědku pokazać", + "silence": "ćichota", + "speakerStats": "statistiku rěčnikow pokazać/schować", + "surprised": "překłapjeny", + "tileView": "kachlicowy napohlad zapnyć/hasnyć", + "toggleCamera": "kameru měnić", + "toggleFilmstrip": "miniaturowy napohlad zapnyć/hasnyć ", + "videoblur": "njejasny widejo zapnyć/hasnyć ", + "videomute": "„něme šaltowanje wideja zapnyć/hasnyć " + }, + "addPeople": "wobdźělnika ke konferency přidać", + "audioOnlyOff": "modus „jenož awdijo“ deaktiwěrować", + "audioOnlyOn": " modus „jenož awdijo“ aktiwěrować ", + "audioRoute": "awdijowy nastroj wuzwolić", + "audioSettings": "nastajenja za awdijo", + "authenticate": "so přizjewić", + "boo": "buh wołać", + "callQuality": "nastajenja za kwalitu", + "chat": "chat wočinić /začinić", + "clap": "placać", + "closeChat": "chat začinić", + "closeReactionsMenu": "meni za interakcije začinić", + "disableReactionSounds": "Móžeće zwuki za interakcije za tutu konferencu deaktiwěrować.", + "documentClose": "dźěleny dokument začinić", + "documentOpen": "dźěleny dokument wočinić", + "download": "naše aplikacije downloadować", + "e2ee": "zaklučowanje end-to-end", + "embedMeeting": "konferencu integrować", + "enterFullScreen": "połny wobraz", + "enterTileView": " kachlicowy napohlad zapnyć ", + "exitFullScreen": "połny wobraz wopušćić", + "exitTileView": " kachlicowy napohlad hasnyć", + "feedback": "feedback zawostajić", + "giphy": "GIPHY zaspinyć/hasnyć", + "hangup": "wopušćić", + "help": "pomoc", + "invite": "wobdźělnika přeprosyć", + "joinBreakoutRoom": "do breakout rumnosće měnić", + "laugh": "so smjeć", + "leaveBreakoutRoom": "breakout rumnosć wopusćić", + "leaveConference": "konferencu wopušćić", + "like": "palc horje", + "linkToSalesforce": "ze Salesforce zwjazać", + "lobbyButtonDisable": "lobby-modus deaktiwěrować", + "lobbyButtonEnable": "lobby-modus aktiwěrować", + "login": "so přizjewić", + "logout": "so wotzjewić", + "lowerYourHand": "ruku spušćić", + "moreActions": "dalše nastajenja", + "moreOptions": "dalše opcije", + "mute": "něme šaltowanje aktiwěrować / deaktiwěrować", + "muteEveryone": "wšitkich němych šaltować", + "muteEveryonesVideo": "wšě kamery hasnyć", + "noAudioSignalDesc": "Njejsće-li nastroj z wotpohladom přez opcije abo hardware němy šaltowali, přemysliće wo změnje nastroja.", + "noAudioSignalDescSuggestion": " Njejsće-li nastroj z wotpohladom přez opcije abo hardware němy šaltowali, přemysliće wo změnje na namjetowany nastroj.", + "noAudioSignalDialInDesc": "Móžeće so tež přez čisło zawolić:", + "noAudioSignalDialInLinkDesc": "čisła za zawolenje", + "noAudioSignalTitle": "Njepřińdźe žadyn signal wot Wašeho mikrofona!", + "noisyAudioInputDesc": " Waš mikrofon je jara mylacy! Přemyslujće prošu, hač nochceće jón němy šaltować abo wuměnić.", + "noisyAudioInputTitle": "Waš mikrofon je jara mylacy!", + "openChat": "chat wočinić", + "openReactionsMenu": "interakciski meni wočinić", + "participants": "přitomni", + "pip": "modus wobraz-we-wobrazu zapnyć", + "privateMessage": "priwatnu powěsć pósłać", + "profile": "profil wobdźěłać", + "raiseHand": "ruku zběhnyć", + "raiseYourHand": "so pokazać", + "reactionBoo": "buh wołanje pósłać", + "reactionClap": "placanje pósłać", + "reactionLaugh": "smjećo pósłać", + "reactionLike": "palc horje pósłać", + "reactionSilence": "mjelčenje pósłać", + "reactionSurprised": "być překłapjeny pósłać", + "security": "nastajenja za wěstosć", + "selectBackground": "pozadk wuzwolić", + "shareRoom": "wosobu přeprosyć", + "shareaudio": "awdijo dźělić", + "sharedvideo": "YouTube-widejo dźělić", + "shortcuts": "tastowu skrótšenku pokazać", + "silence": "ćichota", + "speakerStats": "statistika rěčnikow", + "startScreenSharing": "wužiwanje monitora dowolić", + "startSubtitles": "podtituly startować", + "stopAudioSharing": "dźělenje awdija skónčić", + "stopScreenSharing": "dźělenje monitora stopować", + "stopSharedVideo": "YouTube-widejo stopować", + "stopSubtitles": "podtitule hasnyć", + "surprised": "překłapjeny", + "talkWhileMutedPopup": "Spytaće Wy rěčeć? Waš mikrofon je němy.", + "tileViewToggle": " kachlicowy napohlad zapnyć/hasnyć ", + "toggleCamera": "kameru měnić", + "videoSettings": "nastajenja za widejo", + "videomute": "kameru startować/hasnyć" + }, + "transcribing": { + "ccButtonTooltip": "podtitule pokazać/hasnyć", + "error": "Nahrawanje njeje fungowało. Prošu spytajće znowa.", + "expandedLabel": "transkriběrowanje je aktiwne", + "failedToStart": "transkriběrowanje njehodźeše so startować", + "labelToolTip": "konferenca so transkriběruje", + "off": "transkriběrowanje stopowane", + "pending": " transkriběrowanje konferency so přihotuje…", + "start": "pokazku podtitulow startować", + "stop": " pokazku podtitulow stopować ", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "prošu wužiwanje kamery a mikrofona dowolić." + }, + "videoSIPGW": { + "busy": "Njesteja žane resursy k dispoziciji. Prošu spytajće pozdźišo znowa.", + "busyTitle": "žane swobodne resursy", + "errorAlreadyInvited": "{{displayName}} je hižo přeprošeny/a", + "errorInvite": "Konferenca njehodźeše so startować. Prošu spytajće pozdźišo znowa.", + "errorInviteFailed": "Spytamy problem rozrisać. Prošu spytajće pozdźišo znowa.", + "errorInviteFailedTitle": "{{displayName}} njemóžeše so přeprosyć", + "errorInviteTitle": "zmylk při nastajenju konferency", + "pending": "{{displayName}} bu přeprošeny/a" + }, + "videoStatus": { + "adjustFor": "nastajić za:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Sće w modusu „jenož awdijo“. Tutón modus trjeba mjenje pasmoweje šěrokosće, njewidźiće pak wideja druhich.", + "bestPerformance": "najlěpši wukon", + "callQuality": "kwalita wideja", + "hd": "HD", + "hdTooltip": "widejo so pokaza z wysokim rozpušćenjom", + "highDefinition": "wysoke rozpušćenje", + "highestQuality": "najlěpša kwalita", + "labelTooiltipNoVideo": "žadyn widejo", + "labelTooltipAudioOnly": "modus „jenož awdijo“ aktiwny", + "ld": "LD", + "ldTooltip": "widejo so ze snadnym rozpušćenjom pokaza", + "lowDefinition": "snadne rozpušćenje", + "performanceSettings": "nastajenja kwality", + "sd": "SD", + "sdTooltip": "widejo so ze stardardnym rozpušćenjom pokazuje", + "standardDefinition": "standardne rozpušćenje" + }, + "videothumbnail": { + "connectionInfo": "informacije zwjazanja", + "domute": "zwuk hasnyć", + "domuteOthers": "wšitkich druhich němych šaltować", + "domuteVideo": "kameru hasnyć", + "domuteVideoOfOthers": "wšitke druhe kamery hasnyć", + "flip": "špihelować", + "grantModerator": "za moderatora postajić", + "hideSelfView": "samowobraz schować", + "kick": "wuzamknyć", + "moderator": "moderator", + "mute": "wobdźělnik je němy", + "muted": "němy", + "pinToStage": "přityknyć", + "remoteControl": " dalokoposłužowanje ", + "screenSharing": "wosoba dźěli wobrazowku", + "show": "w prědkownym dźělu pokazać", + "showSelfView": "samowobraz pokazać", + "unpinFromStage": "rozwjazać", + "videoMuted": "kamera hasnjena", + "videomute": "wobdźělnik je kameru zastajił" + }, + "virtualBackground": { + "addBackground": "pozadk přidać", + "apply": "wužiwać", + "backgroundEffectError": "wuzwolewnje pozadka zwrěšćiło", + "blur": "pozadk njejasny", + "deleteImage": "wobraz wotstronić", + "desktopShare": "wobrazowku dźělić", + "desktopShareError": "wobrazowka njemóžeše so dźělić", + "image1": "přibrjóh", + "image2": "běła neutralna sćěna", + "image3": "běła neutralna rumnosć", + "image4": "čorna lampa", + "image5": "hora", + "image6": "lěs", + "image7": "schadźenje słónca", + "none": "žadyn", + "pleaseWait": "wokomik…", + "removeBackground": "pozadk wotstronić", + "slightBlur": "pozadk snadnje njejasny", + "title": "pozadk", + "uploadedImage": "uploadowany wobraz {{index}}", + "webAssemblyWarning": "WebAssembly so njepodpěra", + "webAssemblyWarningDescription": "WebAssembly so njepodpěra" + }, + "volumeSlider": "wolumen nastajić", + "welcomepage": { + "accessibilityLabel": { + "join": "za wobdźělenje dótknyć", + "roomname": "mjeno konferency" + }, + "addMeetingName": "mjeno konferency přidać", + "appDescription": "Započńmy! Startujće widejo-konferencu z Wašimi kolegami abo hišće lěpje: přeprošće wšitkich, kiž znajeće. {{app}} je kompletnje zaklučowany a 100 %nje žórlowotewrjeny serwis za widejo- konferency, kotryž móžeće přec a wšudźe darmotnje wužiwać – bjez registracije.", + "audioVideoSwitch": { + "audio": "awdijo", + "video": "widejo" + }, + "calendar": "kalender", + "connectCalendarButton": "kalender zwjazać", + "connectCalendarText": "Zwjazajće Waš kalender, zo by wšitke Waše konferency w {{app}} pokazał. Zasadźće tež {{provider}}-konferency do Wašeho kalendra a startujće z jeničkim klikom.", + "enterRoomTitle": "nowu konferencu startować", + "getHelp": "pomoc", + "go": "startuj", + "goSmall": "startuj", + "headerSubtitle": "Wěste konferency we wysokej kwaliće", + "headerTitle": "Jitsi Meet", + "info": "informacije za zawolenje", + "jitsiOnMobile": "Jitsi po puću - cyle jednorje našu app downloadować a konferency wšudźe po puću startować", + "join": "KREĚROWAĆ / PŘISTUPIĆ", + "logo": { + "calendar": "protyka", + "desktopPreviewThumbnail": "předpokazka za desktop thumbnail", + "googleLogo": "Google logo", + "logoDeepLinking": "Jitsi Meet logo", + "microsoftLogo": "Microsoft logo", + "policyLogo": "logo za směrnicy" + }, + "mobileDownLoadLinkAndroid": "Android app download", + "mobileDownLoadLinkFDroid": "F-Droid app download", + "mobileDownLoadLinkIos": "iOS app download", + "moderatedMessage": "Abo rezerwujće sebi konferencnu URL, pod kotrejž sće jenički moderator.", + "privacy": "datowy škit", + "recentList": "přehlad", + "recentListDelete": "zapisk wotstronić", + "recentListEmpty": "Waš přehlad konferencow je hišće prózdny. Rěčće z Wašim teamom a Waše zašłe konferency namakaće tule.", + "reducedUIText": " {{app}} Was wita!", + "roomNameAllowedChars": "Mjeno konferency njesmě žane ze slědowacych znamješkow wobsahować: ?, &, :, ', \", %, #.", + "roomname": "mjeno konferency zapodać", + "roomnameHint": "Mjeno abo URL konferency, kotrejž chceće přistupić. Móžeće sebi mjeno wumyslić, wone dyrbi so jenož druhim wobdźělnikam posrědkować, zo móhli samsnej konferency přistupić.", + "sendFeedback": "feedback pósłać", + "startMeeting": "konferencu startować", + "terms": "powšitkowne wobchodne postajenja", + "title": "Wěste, funkcionalne a čisće darmotne widejo-konferency" + } +} diff --git a/lang/main-hu.json b/lang/main-hu.json new file mode 100644 index 0000000..93539b8 --- /dev/null +++ b/lang/main-hu.json @@ -0,0 +1,1098 @@ +{ + "addPeople": { + "add": "Meghívás", + "countryNotSupported": "Ez a célállomás jelenleg nem támogatott.", + "countryReminder": "Ez USA-n kívüli hívás? Országhívószámmal kell kezdődnie!", + "disabled": "Nem hívhat meg senkit.", + "failedToAdd": "Nem sikerült a résztvevők hozzáadása", + "footerText": "A külső tárcsázás le van tiltva.", + "loading": "Személyek és telefonszámaik keresése", + "loadingNumber": "Telefonszám ellenőrzése", + "loadingPeople": "Meghívható személyek keresése", + "noResults": "Nincs találat a keresésre", + "noValidNumbers": "Adjon meg egy telefonszámot", + "searchNumbers": "Telefonszámok hozzáadása", + "searchPeople": "Személyek keresése", + "searchPeopleAndNumbers": "Személyek keresése vagy telefonszámaik hozzáadása", + "telephone": "Telefon: {{number}}", + "title": "Személyek meghívása az értekezletre" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Fejhallgató", + "none": "Nincsenek elérhető hangeszközök", + "phone": "Telefon", + "speaker": "Hangszóró" + }, + "audioOnly": { + "audioOnly": "Alacsony sávszélesség" + }, + "breakoutRooms": { + "actions": { + "add": "Pihenőszoba hozzáadása", + "autoAssign": "Automatikus hozzárendelés a pihenőszobákhoz", + "close": "Bezárás", + "join": "Csatlakozás", + "leaveBreakoutRoom": "Pihenőszoba elhagyása", + "more": "Bővebben", + "remove": "Eltávolítás", + "sendToBreakoutRoom": "Résztvevő áthelyezése ide:" + }, + "defaultName": "Pihenőszoba #{{index}}", + "mainRoom": "Fő szoba", + "notifications": { + "joined": "Csatlakozva a \"{{name}}\" pihenőszobához", + "joinedMainRoom": "Csatlakozva a fő szobához", + "joinedTitle": "Pihenőszobák" + } + }, + "calendarSync": { + "addMeetingURL": "Értekezlet hivatkozásának hozzáadása", + "confirmAddLink": "Hozzáadható egy Jitsi hivatkozás az eseményhez?", + "error": { + "appConfiguration": "A naptárintegráció nincs helyesen konfigurálva.", + "generic": "Hiba történt. Ellenőrizze a naptár beállításait vagy próbálja frissíteni a naptárat.", + "notSignedIn": "Hiba történt a naptár eseményeihez való hozzáféréshez szükséges azonosítás során. Ellenőrizze a naptár beállításait és próbáljon meg újra belépni." + }, + "join": "Részvétel", + "joinTooltip": "Bekapcsolódás az értekezletbe", + "nextMeeting": "következő értekezlet", + "noEvents": "Nincs következő ütemezett értekezlet.", + "ongoingMeeting": "folyamatban lévő értekezlet", + "permissionButton": "Beállítások megnyitása", + "permissionMessage": "A naptár engedélyezése szükséges az értekezletek applikációban való megtekintéséhez.", + "refresh": "Naptár frissítése", + "today": "Ma" + }, + "chat": { + "enter": "Belépés a szobába", + "error": "Hiba: az üzenetet nem sikerült elküldeni. Hiba oka: {{error}}", + "fieldPlaceHolder": "Írja ide az üzenetét", + "messageTo": "Privát üzenet a felhasználónak: {{recipient}}", + "messagebox": "Írja be az üzenetet", + "nickname": { + "popover": "Becenév kiválasztása", + "title": "Adjon meg egy becenevet a csevegés számára", + "titleWithPolls": "Adjon meg egy becenevet a csevegés számára" + }, + "noMessagesMessage": "A találkozón még nincsenek üzenetek. Itt kezdhet beszélgetést!", + "privateNotice": "Privát üzenet a felhasználónak: {{recipient}}", + "sendButton": "Küldés", + "tabs": { + "chat": "Csevegés", + "polls": "Szavazás" + }, + "title": "Csevegés", + "titleWithPolls": "Csevegés és szavazás", + "you": "te" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome kiterjesztés telepítése", + "dontShowAgain": "Ne jelenjen meg újra", + "installExtensionText": "Kiterjesztés telepítése a Google Calendar és az Office 365 integrációjához", + "raiseHandAction": "Kéz felemelése", + "reactionSounds": "Hangok kikapcsolása", + "reactionSoundsForAll": "Hangok kikapcsolása mindenkinek" + }, + "connectingOverlay": { + "joiningRoom": "Kapcsolódás az értekezlethez…" + }, + "connection": { + "ATTACHED": "Kapcsolódva", + "AUTHENTICATING": "Azonosítás", + "AUTHFAIL": "Hitelesítés meghiúsult", + "CONNECTED": "Kapcsolódva", + "CONNECTING": "Kapcsolódás", + "CONNFAIL": "A kapcsolat meghiúsult", + "DISCONNECTED": "Szétkapcsolva", + "DISCONNECTING": "Szétkapcsolódás", + "ERROR": "Hiba", + "FETCH_SESSION_ID": "Munkamenet-azonosító beszerzése…", + "GET_SESSION_ID_ERROR": "Hiba a munkamenet-azonosítása beszerzése közben: {{code}}", + "GOT_SESSION_ID": "Munkamenet-azonosító beszerzése… Kész", + "LOW_BANDWIDTH": "{{displayName}} videója le lett kapcsolva a sávszélesség csökkentése érdekében", + "RECONNECTING": "Hálózati hiba történt. Újracsatlakozás…" + }, + "connectionindicator": { + "address": "Cím:", + "bandwidth": "Becsült sávszélesség:", + "bitrate": "Bitsebesség:", + "bridgeCount": "Kiszolgáló száma: ", + "connectedTo": "Kapcsolódva ehhez:", + "framerate": "Képkockasebesség:", + "less": "Kevesebb megjelenítése", + "localaddress": "Helyi cím:", + "localaddress_plural": "Helyi címek:", + "localport": "Helyi port:", + "localport_plural": "Helyi portok:", + "more": "Több megjelenítése", + "packetloss": "Csomagvesztés:", + "quality": { + "good": "Jó", + "inactive": "Inaktív", + "lost": "Elveszett", + "nonoptimal": "Nem optimális", + "poor": "Silány" + }, + "remoteaddress": "Távoli cím:", + "remoteaddress_plural": "Távoli címek:", + "remoteport": "Távoli port:", + "remoteport_plural": "Távoli portok:", + "resolution": "Felbontás:", + "status": "Kapcsolat:", + "transport": "Átvitel:", + "transport_plural": "Átvitelek:" + }, + "dateUtils": { + "earlier": "Korábban", + "today": "Ma", + "yesterday": "Tegnap" + }, + "deepLinking": { + "appNotInstalled": "Szükség van a {{app}} mobilapplikációra az értekezlethez való telefonos csatlakozásra.", + "description": "Semmi sem történt? Megpróbáltuk az értekezletet a {{app}} asztali alkalmazásban elindítani. Próbálja ezt újra vagy a {{app}} webes applikációban indítani.", + "descriptionWithoutWeb": "Semmi sem történt? Megpróbáltuk az értekezletet a {{app}} asztali alkalmazásban elindítani.", + "downloadApp": "Applikáció letöltése", + "launchWebButton": "Indítás weben", + "openApp": "Továbblépés az applikációhoz", + "title": "Értekezlet indítása a {{app}} applikációban…", + "tryAgainButton": "Újbóli próbálkozás az asztali változatban" + }, + "defaultLink": "pl.: {{url}}", + "defaultNickname": "pl.: Minta Miklós", + "deviceError": { + "cameraError": "A kamerához való hozzáférés meghiúsult", + "cameraPermission": "Hiba történt a kamera engedélyeztetése során", + "microphoneError": "A mikrofonhoz való hozzáférés meghiúsult", + "microphonePermission": "Hiba történt a mikrofon engedélyeztetése során" + }, + "deviceSelection": { + "noPermission": "Nem lett engedélyezve", + "previewUnavailable": "Nincs előnézet", + "selectADevice": "Eszköz kijelölése", + "testAudio": "Teszthang lejátszása" + }, + "dialOut": { + "statusMessage": "jelenleg {{status}}" + }, + "dialog": { + "Back": "Vissza", + "Cancel": "Mégsem", + "IamHost": "Én vagyok a szervező", + "Ok": "Ok", + "Remove": "Eltávolítás", + "Share": "Megosztás", + "Submit": "Elküldés", + "WaitForHostMsg": "A konferencia még nem kezdődött meg. Ha Ön a házigazda, akkor hitelesítse magát. Ellenkező esetben, kérjük várjon a házigazda érkezésére.", + "WaitForHostNoAuthMsg": "A konferencia még nem kezdődött el, mert nincs elérhető moderátor. Kérlek várj.", + "WaitingForHost": "Várakozás a házigazdára…", + "Yes": "Igen", + "accessibilityLabel": { + "liveStreaming": "Élő közvetítés" + }, + "allow": "Engedélyez", + "alreadySharedVideoMsg": "Egy másik résztvevő is videót oszt meg. E konferencia számára csak egy videomegosztás engedélyezett.", + "alreadySharedVideoTitle": "Egyszerre csak egy videomegosztás engedélyezése", + "applicationWindow": "Alkalmazásablak", + "cameraConstraintFailedError": "A kamera nem felel meg bizonyos kikötéseknek.", + "cameraNotFoundError": "Nem található kamera.", + "cameraNotSendingData": "Nem sikerült hozzáférni kamerához. Kérem, ellenőrizze, hogy egy másik alkalmazás nem használja-e a kamerát, vagy tessék egy másik eszköz kijelölni a beállítások menüben vagy esetleg érdemes újratölteni az applikációt.", + "cameraNotSendingDataTitle": "Nem lehet hozzáférni a kamerához", + "cameraPermissionDeniedError": "Nem adott engedélyt a kamera használatához. Csatlakozhat a beszélgetéshez, de a többiek nem fogják Önt látni. A címsorban lévő kamera ikonnal lehet ezt helyrehozni.", + "cameraUnknownError": "Ismeretlen ok miatt nem lehet a kamerát használni.", + "cameraUnsupportedResolutionError": "A kamera nem támogatja a szükséges videofelbontást.", + "close": "Bezárás", + "conferenceDisconnectMsg": "Ellenőrizni kellene a hálózati kapcsolatokat. Újracsatlakozás {{seconds}} másodperc múlva…", + "conferenceDisconnectTitle": "Lecsatlakozott.", + "conferenceReloadMsg": "Próbálkozás a hiba javítására. Újracsatlakozás {{seconds}} másodperc múlva…", + "conferenceReloadTitle": "Sajnos valami félresikerült.", + "confirm": "Megerősítés", + "confirmNo": "Nem", + "confirmYes": "Igen", + "connectError": "Hoppá! Valami elromlott és nem lehetett kapcsolódni a konferenciához.", + "connectErrorWithMsg": "Hoppá! Valami elromlott és nem lehetett kapcsolódni a konferenciához: {{msg}}", + "connecting": "Kapcsolódás", + "contactSupport": "Ügyfélszolgálat", + "copy": "Másolás", + "dismiss": "Elutasítás", + "displayNameRequired": "Helló! Mi a neve?", + "done": "Kész", + "e2eeDescription": "A végpontok közötti titkosítás jelenleg KÍSÉRLETES. Ne feledje, hogy a végpontok közötti titkosítás bekapcsolása hatékonyan letiltja a szerveroldali szolgáltatásokat, például: telefonos részvételt. Ne feledje azt is, hogy az értekezlet csak olyan felhasználók számára működik, akik olyan böngészőkből csatlakoznak, amelyek támogatják a beilleszthető adatfolyamokat.", + "e2eeLabel": "Végpontok közötti titkosítás engedélyezése", + "embedMeeting": "Meeting beágyazása", + "enterDisplayName": "Adja meg a nevét", + "error": "Hiba", + "externalInstallationMsg": "Telepíteni kell a munkaasztal megosztására való kiterjesztést.", + "externalInstallationTitle": "Kiterjesztésre van szükség", + "goToStore": "Ugrás az alkalmazásbolthoz", + "gracefulShutdown": "Jelenleg a szolgáltatás karbantartás miatt nem elérhető. Később próbálja meg ismét.", + "grantModeratorDialog": "Biztos, hogy moderátori jogokat kíván adni a következőnek: {{participantName}}?", + "grantModeratorTitle": "Moderátori jogok megadása", + "hideShareAudioHelper": "Ne mutassa ezt az ablakot többé", + "incorrectPassword": "Helytelen felhasználói név és jelszó", + "incorrectRoomLockPassword": "Helytelen jelszó", + "inlineInstallExtension": "Telepítés azonnal", + "inlineInstallationMsg": "Telepíteni kell a munkaasztal megosztására való kiterjesztést.", + "internalError": "Hoppá! Valami elromlott. Az alábbi hiba történt: {{error}}", + "internalErrorTitle": "Belső hiba", + "kickMessage": "További részletek kérhetők a {{participantDisplayName}} résztvevőtől.", + "kickParticipantButton": "Kirúgás", + "kickParticipantDialog": "Valóban kirúgható ez a résztvevő?", + "kickParticipantTitle": "Résztvevő kirúgása?", + "kickTitle": "Jaj! {{participantDisplayName}} kirúgta Önt az értekezletről", + "liveStreaming": "Élő közvetítés", + "liveStreamingDisabledForGuestTooltip": "A vendégek nem kezdhetnek élő közvetítést.", + "liveStreamingDisabledTooltip": "Az élő közvetítés indítása le van tiltva.", + "lockMessage": "A konferencia zárolása meghiúsult.", + "lockRoom": "Értekezlet $t(lockRoomPasswordUppercase) hozzáadása", + "lockTitle": "Zárolás meghiúsult", + "logoutQuestion": "Valóban ki akar lépni és leállítja a konferenciát?", + "logoutTitle": "Kilépés", + "maxUsersLimitReached": "A lehetséges résztvevők maximális száma elérve. A konferencia tele van. Lépjen kapcsolatba az értekezlet tulajdonosával vagy próbálkozzon később!", + "maxUsersLimitReachedTitle": "A lehetséges résztvevők maximális száma elérve", + "micConstraintFailedError": "A mikrofon nem felel meg bizonyos kikötéseknek.", + "micNotFoundError": "A mikrofon nem található.", + "micNotSendingData": "A számítógép beállításai között kell visszahangosítani a mikrofont vagy beállítani a hangfelvétel szintjét", + "micNotSendingDataTitle": "A mikrofon le van némítva a rendszerbeállításokban", + "micPermissionDeniedError": "Nem adott engedélyt a mikrofon használatához. Csatlakozhat a beszélgetéshez, de a többiek nem fogják Önt hallani. A címsorban lévő kamera ikonnal lehet ezt helyrehozni.", + "micUnknownError": "Ismeretlen ok miatt nem lehet a mikrofont használni.", + "moderationAudioLabel": "Engedélyezze a résztvevőknek saját némításuk feloldását", + "moderationVideoLabel": "Engedélyezze a résztvevőknek saját kamerájuk elindítását", + "muteEveryoneDialog": "Valóban mindenki elnémítható? Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.", + "muteEveryoneElseDialog": "Némítás után már nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja hangosítani.", + "muteEveryoneElseTitle": "Mindenki elnémítása, kivéve: {{whom}}?", + "muteEveryoneElsesVideoDialog": "A kamera letiltása után nem tudja újra bekapcsolni, de ők bármikor újra bekapcsolhatják.", + "muteEveryoneElsesVideoTitle": "Mindenki kamerájának tilátsa, kivéve {{whom}}?", + "muteEveryoneSelf": "önmagamat", + "muteEveryoneStartMuted": "Mindenki elnémítva kezd ezután", + "muteEveryoneTitle": "Mindenki elnémítása?", + "muteEveryonesVideoDialog": "A résztvevők bármikor be tudják kapcsolni a kamerájukat.", + "muteEveryonesVideoDialogModerationOn": "A résztvevők bármikor kérhetik videójuk bekapcsolását.", + "muteEveryonesVideoTitle": "Minden résztvevő kameráját leállítja?", + "muteParticipantBody": "Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.", + "muteParticipantButton": "Némítás", + "muteParticipantDialog": "Valóban elnémítható ez a résztvevő? Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.", + "muteParticipantTitle": "Elnémítható a résztvevő?", + "muteParticipantsVideoBody": "Ön nem tudja újra bekapcsolni a kamerát, de ők bármikor újra bekapcsolhatják.", + "muteParticipantsVideoButton": "Kamera leállítása", + "muteParticipantsVideoDialog": "Biztosan le akarja tiltani ennek a résztvevőnek a kameráját? Ön nem tudja újra bekapcsolni a kamerát, de ők bármikor újra bekapcsolhatják.", + "muteParticipantsVideoDialogModerationOn": "Are you sure you want to turn off this participant's camera? You won't be able to turn the camera back on and neither will they.", + "muteParticipantsVideoTitle": "Letiltja ennek a résztvevőnek a kameráját?", + "password": "Jelszó", + "passwordLabel": "Az értekezletet zárolta egy résztvevő. Csatlakozáshoz adja meg a $t(lockRoomPassword).", + "passwordNotSupported": "Az értekezlet $t(lockRoomPassword) beállítása nem támogatott.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nem támogatott", + "passwordRequired": "$t(lockRoomPasswordUppercase) szükséges", + "popupError": "A böngésző blokkolja a felugró ablakokat ezen az oldalon. Engedélyezze a böngésző biztonsági beállításaiban a felugró ablakokat és próbálja újra.", + "popupErrorTitle": "Felugró ablak blokkolva", + "recording": "Felvétel", + "recordingDisabledForGuestTooltip": "Vendég nem indíthat felvételt.", + "recordingDisabledTooltip": "Felvétel rögzítése letiltva.", + "rejoinNow": "Újracsatlakozás azonnal", + "remoteControlAllowedMessage": "{{user}} elfogadta az Ön távoli vezérlési kérését!", + "remoteControlDeniedMessage": "{{user}} visszautasította az Ön távoli vezérlési kérését!", + "remoteControlErrorMessage": "Hiba történt a résztvevőhöz {{user}} intézett távoli vezérlési kérés küldése közben!", + "remoteControlRequestMessage": "Engedélyezi {{user}} résztvevőnek, hogy távolról vezérelje a munkaasztalt?", + "remoteControlShareScreenWarning": "Vegye figyelembe, hogy ha megnyomja az „Engedélyezés” lehetőséget, akkor megosztja a képernyőt!", + "remoteControlStopMessage": "A távoli munkamenet irányítása befejeződött!", + "remoteControlTitle": "Távoli asztal vezérlése", + "remoteUserControls": "{{username}} vezérlői", + "removePassword": "$t(lockRoomPassword) eltávolítása", + "removeSharedVideoMsg": "Valóban eltávolítható a megosztott videó?", + "removeSharedVideoTitle": "Megosztott videó eltávolítása", + "reservationError": "Foglalási rendszerhiba", + "reservationErrorMsg": "Hibakód: {{code}}, üzenet: {{msg}}", + "retry": "Újra", + "screenSharingAudio": "Hang megosztása", + "screenSharingFailedToInstall": "Hoppá! A képernyőmegosztó kiterjesztés telepítése meghiúsult.", + "screenSharingFailedToInstallTitle": "A képernyőmegosztó kiterjesztés telepítése meghiúsult", + "screenSharingFirefoxPermissionDeniedError": "Valami elromlott a képernyőmegosztás indítása közben. Ellenőrizze, hogy megadta-e a szükséges engedélyeket. ", + "screenSharingFirefoxPermissionDeniedTitle": "Hoppá! Nem sikerült a képernyőmegosztás indítása!", + "screenSharingPermissionDeniedError": "Hoppá! Valami elromlott a képernyőmegosztás kiterjesztés jogosultságaival. Töltse újra és kísérelje meg újra.", + "sendPrivateMessage": "Nemrég egy csak Önnek szóló üzenete érkezett. A válaszát privát üzenetként, vagy inkább az egész csoportnak akarja elküldeni?", + "sendPrivateMessageCancel": "Küldés a csoportnak", + "sendPrivateMessageOk": "Küldés privátban", + "sendPrivateMessageTitle": "Privátban legyen elküldve?", + "serviceUnavailable": "Szolgáltatás nem elérhető", + "sessTerminated": "Hívás megszakadt", + "shareAudio": "Tovább", + "shareAudioTitle": "Hang megosztása", + "shareVideoLinkError": "Adjon meg egy helyes linket.", + "shareVideoTitle": "Videó megosztása", + "shareYourScreen": "Képernyő megosztása", + "shareYourScreenDisabled": "Képernyőmegosztás letiltva.", + "shareYourScreenDisabledForGuest": "Vendég nem végezhet képernyőmegosztást.", + "sharedVideoLinkPlaceholder": "YouTube link vagy közvetlen videó link", + "startLiveStreaming": "Élő közvetítés kezdése", + "startRecording": "Felvétel indítása", + "startRemoteControlErrorMessage": "Hiba történt a távoli vezérlés munkamenetének indítása közben!", + "stopLiveStreaming": "Élő közvetítés leállítása", + "stopRecording": "Felvétel leállítása", + "stopRecordingWarning": "Valóban leállítható a felvétel?", + "stopStreamingWarning": "Valóban leállítható az élő közvetítés?", + "streamKey": "Élő közvetítés kulcsa", + "thankYou": "Köszönjük a {{appName}} használatát!", + "token": "jelsor", + "tokenAuthFailed": "Sajnáljuk, a csatlakozása nem megengedett ehhez a híváshoz.", + "tokenAuthFailedTitle": "Hitelesítés meghiúsult", + "transcribing": "Átirat készítése", + "unlockRoom": "Értekezlet $t(lockRoomPassword) eltávolítása", + "userPassword": "felhasználói jelszó", + "videoLink": "Videó link", + "yourEntireScreen": "A teljes képernyő" + }, + "documentSharing": { + "title": "Megosztott dokumentum" + }, + "feedback": { + "average": "Átlag", + "bad": "Rossz", + "detailsLabel": "Osszon meg velünk többet erről.", + "good": "Jó", + "rateExperience": "Értékeld az értekezlet élményét", + "veryBad": "Nagyon rossz", + "veryGood": "Nagyon jó" + }, + "helpView": { + "title": "Súgó" + }, + "incomingCall": { + "answer": "Válasz", + "audioCallTitle": "Bejövő hívás", + "decline": "Elutasítás", + "productLabel": "a Jitsi Meettől", + "videoCallTitle": "Bejövő videohívás" + }, + "info": { + "accessibilityLabel": "Információk megjelenítése", + "addPassword": "$t(lockRoomPassword) hozzáadása", + "cancelPassword": "$t(lockRoomPassword) törlése", + "conferenceURL": "Hivatkozás:", + "country": "Ország", + "dialANumber": "Az értekezlethez való csatlakozáshoz ezeket a számokat kell feltárcsázni és a PIN-kódot megadni.", + "dialInConferenceID": "PIN-kód:", + "dialInNotSupported": "Sajnáljuk, a tárcsázás jelenleg nem támogatott.", + "dialInNumber": "Betárcsázás:", + "dialInSummaryError": "Hiba a betárcsázási információk lekérdezése közben. Később érdemes újra próbálkozni.", + "dialInTollFree": "Ingyenes", + "genericError": "Hoppá, valami elromlott.", + "inviteLiveStream": "Az értekezlet élő közvetítésének megtekintése: {{url}}", + "invitePhone": "Telefonról való csatlakozáshoz ezeket kell tárcsázni: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Más betárcsázási számot keres?\nLásd az értekezlet betárcsázási számait: {{url}}\n\n\nHa termi telefonon keresztül tárcsáz, csatlakozhat hang nélkül is: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Önt meghívták egy értekezletre.", + "inviteURLFirstPartPersonal": "{{name}} meghívta Önt egy értekezletre.\n", + "inviteURLSecondPart": "\nCsatlakozás az értekezlethez:\n{{url}}\n", + "label": "Értekezlet információi", + "liveStreamURL": "Élő közvetítés:", + "moreNumbers": "További számok", + "noNumbers": "Nincsenek betárcsázási számok.", + "noPassword": "Nincs", + "noRoom": "Nem volt szoba megadva, amelybe be lehetne lépni.", + "numbers": "Betárcsázási számok", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Megosztás", + "tooltip": "Az értekezlet hivatkozásának és behívó információinak megosztása" + }, + "inlineDialogFailure": { + "msg": "Hiba történt.", + "retry": "Újrapróbálkozás", + "support": "Támogatás", + "supportMsg": "Ismételt hiba esetén érdemes kapcsolatba lépnie" + }, + "inviteDialog": { + "alertText": "Néhány résztvevő meghívása meghiúsult.", + "header": "Meghívás", + "searchCallOnlyPlaceholder": "Telefonszám megadása", + "searchPeopleOnlyPlaceholder": "Résztvevők keresése", + "searchPlaceholder": "Résztvevő vagy telefonszám", + "send": "Küldés" + }, + "keyboardShortcuts": { + "focusLocal": "Fókusz a saját videómra", + "focusRemote": "Fókusz egy másik személy videójára", + "fullScreen": "Belépés vagy kilépés a teljes képernyőből", + "keyboardShortcuts": "Gyorsbillentyűk", + "localRecording": "Helyi rögzítési vezérlőelemek megjelenítése vagy elrejtése", + "mute": "Mikrofon némítása vagy visszahangosítása", + "pushToTalk": "Nyomd, hogy beszélj (adó-vevő)", + "raiseHand": "Kéz felemelése vagy leengedése", + "showSpeakerStats": "Beszéd statisztikák megjelenítése", + "toggleChat": "Csevegés megnyitása vagy bezárása", + "toggleFilmstrip": "Videó bélyegképek megjelenítése vagy elrejtése", + "toggleParticipantsPane": "A résztvevők panel megjelenítése vagy elrejtése", + "toggleScreensharing": "Váltás kamera és képernyőmegosztás között", + "toggleShortcuts": "Gyorsbillentyűk megjelenítése vagy elrejtése", + "videoMute": "Kamera elindítása vagy leállítása", + "videoQuality": "Hívás minőségének kezelése" + }, + "largeVideo": { + "screenIsShared": "Ön megosztja a képernyőjét", + "showMeWhatImSharing": "Látni szeretném mit osztok meg" + }, + "liveStreaming": { + "busy": "Dolgozunk a közvetítési erőforrások felszabadításán. Kísérelje meg újra néhány perc múlva.", + "busyTitle": "Jelenleg minden közvetítő foglalt", + "changeSignIn": "Fiók váltása.", + "choose": "Élő közvetítés kijelölése", + "chooseCTA": "Válasszon egy közvetítési opciót. Ön jelenleg {{email}} címmel van belépve.", + "enterStreamKey": "Adja meg itt a YouTube élő közvetítési kulcsot.", + "error": "Az élő közvetítés meghiúsult. Próbálja újra.", + "errorAPI": "Hiba történt a YouTube adás elérése közben. Próbáljon meg újra belépni.", + "errorLiveStreamNotEnabled": "Az élő közvetítés nincs engedélyezve ezzel az email címmel: {{email}}. Engedélyezze az élő közvetítést vagy lépjen be egy másik felhasználóval, ahol az engedélyezve van.", + "expandedOff": "Az élő közvetítés leállt", + "expandedOn": "Az értekezlet jelenleg közvetítve van a YouTube-on.", + "expandedPending": "Az élvő közvetítés elindult…", + "failedToStart": "Az élvő közvetítés indítása meghiúsult", + "getStreamKeyManually": "Nem lehet semmilyen élő közvetítést letölteni. Az élő közvetítéshez szükséges kulcsot a Youtube-tól lehet beszerezni.", + "googlePrivacyPolicy": "Google adatvédelmi irányelvek", + "invalidStreamKey": "Az élő közvetítési kulcs valószínűleg hibás.", + "off": "Élő közvetítés leállt", + "offBy": "{{name}} leállította az élő közvetítést", + "on": "Élő közvetítés", + "onBy": "{{name}} elindította az élő közvetítést", + "pending": "Élő közvetítés kezdése…", + "serviceName": "Élő közvetítési szolgáltatás", + "signIn": "Bejelentkezés a Google-lel", + "signInCTA": "Jelentkezzen be vagy adja meg a élő közvetítési kulcsot a YouTube-ról.", + "signOut": "Kilépés", + "signedInAs": "Jelenleg bejelentkezve mint:", + "start": "Élő közvetítés kezdése", + "streamIdHelp": "Mi ez?", + "title": "Élő közvetítés", + "unavailableTitle": "Élő közvetítés elérhetetlen", + "youtubeTerms": "YouTube szolgáltatási feltételek" + }, + "lobby": { + "allow": "Engedélyez", + "backToKnockModeButton": "Csatlakozási kérelem küldése", + "chat": "Chat", + "dialogTitle": "Lobby mód", + "disableDialogContent": "A lobby mód jelenleg elérhető. Lehetőséged van csak azokat behívni a megbeszélésre, akik erre jogosultak általad. Szeretnéd kikapcsolni?", + "disableDialogSubmit": "Elutasítás", + "emailField": "Írd be az email címed", + "enableDialogPasswordField": "Jelszó megadása (választható)", + "enableDialogSubmit": "Elfogadás", + "enableDialogText": "A Lobby mód lehetővé teszi a megbeszélés védelmét azáltal, hogy csak a moderátor hivatalos jóváhagyása után engedi be az embereket.", + "enterPasswordButton": "Adja meg az értekezlet jelszavát", + "enterPasswordTitle": "Adja meg a jelszót az értekezlethez való csatlakozáshoz", + "errorMissingPassword": "Kérjük, adja meg az értekezlet jelszavát", + "invalidPassword": "Helytelen jelszó", + "joinRejectedMessage": "Csatlakozási kérelmét egy moderátor elutasította.", + "joinRejectedTitle": "Csatlakozási kérelem elutasítva.", + "joinTitle": "Csatlakozás az értekezlethez", + "joinWithPasswordMessage": "Csatlakozás jelszóval, kérjük várjon…", + "joiningMessage": "Amint valaki elfogadja kérését, csatlakoztatjuk az értekezlethez", + "joiningTitle": "Értekezlethez csatlakozás kérése…", + "joiningWithPasswordTitle": "Csatlakozás jelszóval…", + "knockButton": "Csatlakozási kérelem küldése", + "knockTitle": "Valaki szeretne csatlakozni az értekezlethez", + "nameField": "Adja meg a nevét", + "notificationLobbyAccessDenied": "{{targetParticipantName}} elutasításra került a csatlakozásod {{originParticipantName}} által", + "notificationLobbyAccessGranted": "{{targetParticipantName}} a csatlakozozásod elfogadva lett {{originParticipantName}} által", + "notificationLobbyDisabled": "Lobby tiltva lett {{originParticipantName}} által.", + "notificationLobbyEnabled": "Lobby engedélyezve lett {{originParticipantName}} által.", + "notificationTitle": "Lobby", + "passwordField": "Adja meg az értekezlet jelszavát", + "passwordJoinButton": "Csatlakozás", + "toggleLabel": "Lobby engedélyezése" + }, + "localRecording": { + "clientState": { + "off": "Kikapcsolva", + "on": "Bekapcsolva", + "unknown": "Ismeretlen" + }, + "dialogTitle": "Helyi felvétel vezérlőelemei", + "duration": "Időtartam", + "durationNA": "N/A", + "encoding": "Kódolás", + "label": "HeF", + "labelToolTip": "Helyi felvétel aktiválva", + "localRecording": "Helyi felvétel", + "me": "Én", + "messages": { + "engaged": "Helyi felvétel aktiválva.", + "finished": "A {{token}} rögzítési munkamenet befejeződött. Küldje el a rögzített fájlt a moderátornak.", + "finishedModerator": "A {{token}} rögzítési munkamenet befejeződött. A helyi sáv rögzítésre került. Kérje el a többi résztvevőtől, amit rögzítettek.", + "notModerator": "Ön nem moderátor. Nem tudja elindítani vagy leállítani a helyi felvételt." + }, + "moderator": "Moderátor", + "no": "Nem", + "participant": "Résztvevő", + "participantStats": "Résztvevői statisztika", + "sessionToken": "Munkamenet jelsor", + "start": "Felvétel indítása", + "stop": "Felvétel leállítása", + "yes": "Igen" + }, + "lockRoomPassword": "jelszó", + "lockRoomPasswordUppercase": "Jelszó", + "lonelyMeetingExperience": { + "button": "Mások meghívása", + "youAreAlone": "Egyedül van ezen az értekezleten" + }, + "me": "én", + "notify": { + "connectedOneMember": "{{name}} bekapcsolódott az értekezletbe", + "connectedThreePlusMembers": "{{name}} és {{count}} másik résztvevő kapcsolódott az értekezlethez", + "connectedTwoMembers": "{{first}} és {{second}} bekapcsolódott az értekezletbe", + "disconnected": "szétkapcsolva", + "focus": "Konferencia fókusza", + "focusFail": "{{component}} nem elérhető – újrapróbálkozás {{ms}} másodperc múlva", + "grantedTo": "Moderátori jogok biztosítva {{to}} számára!", + "hostAskedUnmute": "Kérlek hangosítsd vissza a mikrofonod.", + "invitedOneMember": "{{name}} meg lett hívva", + "invitedThreePlusMembers": "{{name}} és {{count}} másik felhasználó meg lett hívva", + "invitedTwoMembers": "{{first}} és {{second}} lett meghívva", + "kickParticipant": "{{kicked}} résztvevőt kirúgta {{kicker}}", + "leftOneMember": "{{name}} elhagyta az értekezletet", + "leftThreePlusMembers": "{{name}} és mások elhagyták az értekezletet", + "leftTwoMembers": "{{first}} és {{second}} elhagyták az értekezletet", + "localRecordingStarted": "{{name}} elkezdte rögzíteni az értekezletet.", + "localRecordingStopped": "{{name}} leállította a rögzítést.", + "me": "Én", + "moderationInEffectTitle": "A moderátor elnémította a mikrofonját", + "moderator": "Moderátori jogok biztosítva!", + "muted": "A beszélgetést elnémítva kezdte meg.", + "mutedRemotelyDescription": "Bármikor visszahangosíthatja magát, ha készen áll a beszédre. Némítsa le magát ismét, ha a felesleges zajoktól meg kívánja védeni az értekezletet.", + "mutedRemotelyTitle": "{{participantDisplayName}} elnémította Önt!", + "mutedTitle": "Le lett némítva!", + "newDeviceAction": "Alkalmaz", + "newDeviceAudioTitle": "Új hangeszköz észlelve", + "newDeviceCameraTitle": "Új kamera észlelve", + "noiseSuppressionFailedTitle": "Nem sikerült elindítani a zajcsökkentést", + "noiseSuppressionNoTrackDescription": "Kérjük, először kapcsolja ki a mikrofon némítását.", + "noiseSuppressionStereoDescription": "A sztereó zajcsökkentés jelenleg nem támogatott.", + "participantWantsToJoin": "Csatlakozni szeretne az értekezlethez", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) egy másik résztvevő által eltávolítva", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) egy másik résztvevő által beállítva", + "raisedHand": "{{name}} beszélni szeretne.", + "somebody": "Valaki", + "startSilentDescription": "Csatlakozzon újra a hang engedélyezéséhez", + "startSilentTitle": "Hang nélkül csatlakozott!", + "suboptimalBrowserWarning": "Sajnáljuk, de nem nagy élmény így csatlakozni a konferenciához. Keressük a megoldást, de addig is, érdemes inkább egy teljesen támogatott böngészővel csatlakozni.", + "suboptimalExperienceTitle": "Böngészőhiba", + "unmute": "Visszahangosítás" + }, + "participantsPane": { + "actions": { + "admit": "Engedélyezés", + "admitAll": "Mindet engedélyez", + "allow": "Engedélyezés a résztvevőknek, hogy:", + "allowVideo": "Videó engedélyezése", + "askUnmute": "Kérje a némítás feloldását", + "audioModeration": "A némítást feloldhassák", + "blockEveryoneMicCamera": "Block everyone's mic and camera", + "invite": "Meghívás", + "moreModerationActions": "További moderálási opciók", + "moreModerationControls": "További moderálási vezérlők", + "moreParticipantOptions": "Résztvevő további beállításai", + "mute": "Némítás", + "muteAll": "Mindenkit elnémít", + "muteEveryoneElse": "Mute everyone else", + "reject": "Elutasít", + "stopEveryonesVideo": "Mindenki videójának leállítása", + "stopVideo": "Videó leállítása", + "unblockEveryoneMicCamera": "Unblock everyone's mic and camera", + "videoModeration": "Elindíthassák a videójukat" + }, + "close": "Bezár", + "header": "Résztvevők", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Résztvevők ({{count}})", + "waitingLobby": "Lobby-ban várakozók ({{count}})" + }, + "search": "Résztvevők keresése" + }, + "passwordDigitsOnly": "Legfeljebb {{number}} szám", + "passwordSetRemotely": "egy másik résztvevő által beállítva", + "polls": { + "answer": { + "skip": "Kihagyás", + "submit": "Küldés" + }, + "by": "Létrehozta: {{ name }}", + "create": { + "addOption": "Opció hozzáadása", + "answerPlaceholder": "Opció {{index}}", + "cancel": "Mégsem", + "create": "Szavazás létrehozása", + "pollOption": "Opció {{index}}", + "pollQuestion": "Szavazás kérdése", + "questionPlaceholder": "Írja le a kérdést", + "removeOption": "Opció eltávolítása", + "send": "Küldés" + }, + "errors": { + "notUniqueOption": "Az opcióknak egyedinek kell lenniük" + }, + "notification": { + "description": "Szavazás megnyitása", + "title": "Új szavazás létrehozva" + }, + "results": { + "changeVote": "Módosítás", + "empty": "Még nincsenek szavazások. Indítson szavazást itt!", + "hideDetailedResults": "Részletek elrejtése", + "showDetailedResults": "Részletek", + "vote": "Szavazás" + } + }, + "poweredby": "Működteti a", + "prejoin": { + "audioAndVideoError": "Hang és videó hiba:", + "audioDeviceProblem": "Hiba lépett fel az hangeszközzel", + "audioOnlyError": "Hang hiba:", + "audioTrackError": "Nem lehet a hangot rögzíteni.", + "callMe": "Hívj fel", + "callMeAtNumber": "Hívj fel ezen a számon:", + "calling": "Hívás", + "configuringDevices": "Eszköz beállítás…", + "connectedWithAudioQ": "Csak hanggal szeretne csatlakozni?", + "connection": { + "good": "Az internet kapcsolat jónak tűnik!", + "nonOptimal": "Az internet kapcsolat nem optimális", + "poor": "Az internet kapcsolat nagyon gyenge!" + }, + "connectionDetails": { + "goodQuality": "Fantasztikus! A média minősége kiváló lesz." + }, + "copyAndShare": "Másolom és megosztom az értekezlet linkjét", + "dialInMeeting": "Behívás az értekezletbe", + "dialInPin": "Behívás az értkezeletbe és megadom a PIN kódot:", + "dialing": "Tárcsázás", + "doNotShow": "Ne mutassa mégegyszer ezt a képernyőt", + "errorDialOut": "Nem sikerült a behívás", + "errorDialOutDisconnected": "Nem sikerült a behívás. Kapcsolat bontása", + "errorDialOutFailed": "Nem sikerült a behívás. Hiba a hívásban", + "errorDialOutStatus": "Hiba a hívás státusz megadásában", + "errorMissingName": "Kérlet add meg a neved, hogy csatlakozhass a megbeszéléshez", + "errorNoPermissions": "Engedélyeznie kell a mikrofonhoz és a kamerához való hozzáférést", + "errorStatusCode": "Hiba a hiváskor, hiba kód: {{status}}", + "errorValidation": "Hívószám validációs hiba", + "iWantToDialIn": "Hívni szeretném", + "initiated": "Hívás felépítés", + "joinAudioByPhone": "Csatlakozás telefon beszélgetéssel", + "joinMeeting": "Csatlakozás", + "joinMeetingInLowBandwidthMode": "Csatlakozás alacsony sávszélességi módban", + "joinWithoutAudio": "Csatlakozás hang nélkül", + "keyboardShortcuts": "Gyorsbillentyűk engedélyezése", + "linkCopied": "A link a vágólapra másolva", + "lookGood": "A mikrofon megfelelően működik", + "or": "vagy", + "premeeting": "Csatlakozás előtt", + "screenSharingError": "Képernyő megosztás hiba:", + "startWithPhone": "Kezdés telefonhanggal", + "videoOnlyError": "Videó hiba:", + "videoTrackError": "Nem sikerült a videó megjelenítés.", + "viewAllNumbers": "Összes szám megjelenítése" + }, + "presenceStatus": { + "busy": "Foglalt", + "calling": "Hívás…", + "connected": "Kapcsolódva", + "connecting": "Kapcsolódás…", + "connecting2": "Kapcsolódás*…", + "disconnected": "Szétkapcsolva", + "expired": "Lejárt", + "ignored": "Figyelmen kívül hagyva", + "initializingCall": "Hívás kezdeményezése…", + "invited": "Meghívva", + "rejected": "Elutasítva", + "ringing": "Csörgetés…" + }, + "profile": { + "setDisplayNameLabel": "Állítsa be a megjelenő nevet", + "setEmailInput": "Adjon meg egy email címet", + "setEmailLabel": "Adja meg a gravatar email címet", + "title": "Profil" + }, + "raisedHand": "Beszélni szeretnék", + "recording": { + "authDropboxText": "Feltöltés Dropboxra", + "availableSpace": "Elérhető hely: {{spaceLeft}} MB (körülbelül {{duration}} perc felvétel)", + "beta": "BÉTA", + "busy": "Dolgozunk a rögzítési erőforrások felszabadításán. Kísérelje meg újra néhány perc múlva.", + "busyTitle": "Jelenleg minden rögzítő foglalt", + "error": "A felvétel meghiúsult. Próbálja újra.", + "expandedOff": "A felvétel leállt", + "expandedOn": "Az értekezlet jelenleg rögzítés alatt áll.", + "expandedPending": "A felvétel elindult…", + "failedToStart": "A felvétel indítása meghiúsult", + "fileSharingdescription": "Felvétel megosztása az értekezlet résztvevőivel", + "live": "ÉLŐ", + "localRecordingNoNotificationWarning": "A felvételt nem közöljük más résztvevőkkel. Értesítenie kell velük, hogy a találkozót rögzítették.", + "localRecordingStartWarning": "A megbeszélésből való kilépés előtt feltétlenül állítsa le a felvételt, hogy elmentse azt.", + "localRecordingStartWarningTitle": "Állítsa le a felvételt a mentéshez", + "localRecordingWarning": "Győződjön meg arról, hogy az aktuális lapot választotta a megfelelő videó és hang használatához.", + "loggedIn": "Belépve mint {{userName}}", + "off": "Felvétel leállítva", + "offBy": "{{name}} leállította a felvételt", + "on": "Felvétel", + "onBy": "{{name}} elindította a felvételt", + "onlyRecordSelf": "Csak az én hang- és videófolyamomat rögzítse", + "pending": "Értekezlet rögzítésének előkészítése…", + "rec": "REC", + "saveLocalRecording": "Felvétel mentése helyileg (béta)", + "serviceDescription": "A felvételt a rögzítési szolgáltatás veszi fel", + "serviceName": "Felvétel szolgáltatás", + "signIn": "Belépés", + "signOut": "Kilépés", + "title": "Felvétel", + "unavailable": "Hoppá! A {{serviceName}} szolgáltatás jelenleg nem elérhető. Dolgozunk a hiba elhárításán. Próbálja meg később.", + "unavailableTitle": "Felvétel nem elérhető" + }, + "sectionList": { + "pullToRefresh": "Húzás a frissítéshez" + }, + "security": { + "about": "Hozzáadhat jelszót az értekezlethez. A résztvevőknek meg kell adniuk a jelszót, mielőtt csatlakozhatnak az értekezlethez.", + "aboutReadOnly": "A moderátor résztvevői hozzáadhatnak egy jelszót az értekezlethez. A résztvevőknek meg kell adniuk a jelszót, mielőtt csatlakozhatnak az értekezlethez.", + "header": "Biztonsági beállítások", + "insecureRoomNameWarning": "The room name is unsafe. Unwanted participants may join your conference. Consider securing your meeting using the security button." + }, + "settings": { + "calendar": { + "about": "A {{appName}} naptárintegráció a naptár biztonságos elérésére szolgál, így olvasni tudja a soron következő eseményeket.", + "disconnect": "Szétkapcsolás", + "microsoftSignIn": "Bejelentkezés a Microsofttal", + "signedIn": "Jelenleg ehhez az címhez tartozó naptár eseményei érhetőek el: {{email}}. Alább a „szétkapcsolás” gombra kattintva lehet leállítani a naptár eseményeinek elérését.", + "title": "Naptár" + }, + "desktopShareFramerate": "Képernyőmegosztás sebessége (FPS)", + "desktopShareHighFpsWarning": "A nagyobb képkockasebesség az asztali megosztásnál hatással lehet a sávszélességre. Az új beállítások érvénybe léptetéséhez újra kell indítania a képernyőmegosztást.", + "desktopShareWarning": "Az új beállítások érvénybe léptetéséhez újra kell indítania a képernyőmegosztást.", + "devices": "Eszközök", + "followMe": "Mindenki engem kövessen", + "framesPerSecond": "képkocka / másodperc", + "incomingMessage": "Bejövő üzenet", + "language": "Nyelv", + "loggedIn": "Belépve mint {{name}}", + "microphones": "Mikrofonok", + "moderator": "Moderátor", + "more": "Továbbiak", + "name": "Név", + "noDevice": "Nincs", + "participantJoined": "Résztvevő csatlakozott", + "participantKnocking": "Résztvevő belépett a lobby-ba", + "participantLeft": "Résztvevő kilépett", + "playSounds": "Hangok lejátszása a következőkhöz:", + "reactions": "Meeting reakciók", + "sameAsSystem": "Rendszerhang ({{label}})", + "selectAudioOutput": "Hangkimenet", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Saját kép", + "sounds": "Hangok", + "speakers": "Hangszórók", + "startAudioMuted": "Mindenki elnémítva kezd", + "startReactionsMuted": "Reakció hangok némítása mindenki számára", + "startVideoMuted": "Mindenki videó nélkül kezd", + "talkWhileMuted": "Lenémított beszéd", + "title": "Beállítások" + }, + "settingsView": { + "advanced": "Haladó", + "alertOk": "OK", + "alertTitle": "Figyelmeztetés", + "alertURLText": "A megadott kiszolgáló URL-je érvénytelen", + "buildInfoSection": "Fordítási információk", + "conferenceSection": "Konferencia", + "disableCallIntegration": "A natív hívások integrációjának letiltása", + "disableP2P": "Kapcsolja ki a peer-to-peer módot", + "displayName": "Megjelenő név", + "email": "Email", + "header": "Beállítások", + "profileSection": "Profil", + "serverURL": "Kiszolgáló URL", + "showAdvanced": "Speciális beállítások megjelenítése", + "startWithAudioMuted": "Kezdés a hang elnémításával", + "startWithVideoMuted": "Kezdés a videó letiltásával", + "version": "Verzió" + }, + "share": { + "dialInfoText": "\n\n=====\n\nA saját telefonján szeretne betárcsázni?\n\n{{defaultDialInNumber}}Az értekezlet betárcsázási száma erre a hivatkozásra kattintva tekinthető meg\n{{dialInfoPageUrl}}", + "mainText": "Az alábbi hivatkozásra kattintva lehet csatlakozni az értkezlethez:\n{{roomUrl}}" + }, + "speaker": "Hangszóró", + "speakerStats": { + "angry": "Mérges", + "disgusted": "Felháborodott", + "fearful": "Félelmetes", + "happy": "Boldog", + "hours": "{{count}} h", + "minutes": "{{count}} perc", + "name": "Név", + "neutral": "Semleges", + "sad": "Szomorú", + "search": "Keresés", + "searchHint": "Résztvevők keresése", + "seconds": "{{count}} mp", + "speakerStats": "Beszélő statisztika", + "speakerTime": "Beszélő ideje", + "surprised": "Meglepett" + }, + "startupoverlay": { + "genericTitle": "Az értekezlethez engedélyezni kell a mikrofont és kamerát.", + "policyText": " ", + "title": "A {{app}} használni szeretné a mikrofont és a kamerát." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Újracsatlakozás", + "text": "Az újracsatlakozás gombbal lehet ismételten csatlakozni.", + "title": "A videohívás megszakadt, mivel ez a számítógép aló állapotba helyezte magát." + }, + "toolbar": { + "Settings": "Beállítások", + "accessibilityLabel": { + "Settings": "Beállítások átváltása", + "audioOnly": "Csak a hang átváltása", + "audioRoute": "Hangeszköz kijelölése", + "boo": "Szomorú", + "callQuality": "Videóminőség kezelése", + "cc": "Feliratok átváltása", + "chat": "Csevegés ablak átváltása", + "clap": "Taps", + "document": "Megosztott dokumentum átváltása", + "download": "Alkalmazás letöltése", + "embedMeeting": "Meeting beágyazása", + "feedback": "Visszajelzés küldése", + "fullScreen": "Teljes képernyő átváltása", + "grantModerator": "Moderátori jogok megadása", + "hangup": "Beszélgetés elhagyása", + "help": "Súgó", + "invite": "Személyek meghívása", + "kick": "Résztvevő kirúgása", + "laugh": "Nevetés", + "like": "Hüvelykujj fel", + "localRecording": "Helyi felvétel vezérlőelemeinek átváltása", + "lockRoom": "Értekezlet jelszavának átváltása", + "moreActions": "További műveletek menü átváltása", + "moreActionsMenu": "További műveletek menü", + "moreOptions": "További beállítások megjelenítése", + "mute": "Hang némításának átváltása", + "muteEveryone": "Mindenki elnémítása", + "muteEveryonesVideoStream": "Mindenki videójának leállítása", + "noiseSuppression": "Zajcsökkentés", + "participants": "Résztvevők", + "pip": "Kép és képben mód átváltása", + "privateMessage": "Privát üzenet küldése", + "profile": "Adja meg a profilját", + "raiseHand": "Kéz felemelésének átváltása", + "recording": "Felvétel átváltása", + "remoteMute": "Résztvevők némítása", + "security": "Biztonsági Beállítások", + "shareRoom": "Valaki meghívása", + "shareYourScreen": "Képernyőmegosztás átváltása", + "shareaudio": "Hang megosztása", + "sharedvideo": "Videó megosztásának átváltása", + "shortcuts": "Gyorsbillentyűk átváltása", + "show": "Megjelenítés a színpadon", + "silence": "Néma", + "speakerStats": "Beszélő statisztika átváltása", + "surprised": "Meglepett", + "tileView": "Mozaikos nézet átváltása", + "toggleCamera": "Kamera átváltása", + "toggleFilmstrip": "Filmszalag átváltása", + "videoblur": "Videoelmosás átváltása", + "videomute": "Videó letiltásának átváltása" + }, + "addPeople": "Személy hozzáadása a híváshoz", + "audioOnlyOff": "Alacsony sávszélességű mód letiltása", + "audioOnlyOn": "Alacsony sávszélességű mód engedélyezése", + "audioRoute": "Hangeszköz kijelölése", + "audioSettings": "Hangbeállítások", + "authenticate": "Hitelesítés", + "boo": "Szomorú", + "callQuality": "Videominőség kezelése", + "chat": "Csevegés megnyitása / bezárása", + "clap": "Taps", + "closeChat": "Csevegés bezárása", + "disableReactionSounds": "Kikapcsolhatja a reakcióhangokat a Meeting-en", + "documentClose": "Megosztott dokumentum bezárása", + "documentOpen": "Megosztott dokumentum megnyitása", + "download": "Alkalmazás letöltése", + "embedMeeting": "Meeting beágyazása", + "enterFullScreen": "Teljes képernyős megtekintés", + "enterTileView": "Mozaikos nézet indítása", + "exitFullScreen": "Kilépés a teljes képernyőből", + "exitTileView": "Kilépés a mozaikos nézetből", + "feedback": "Visszajelzés küldése", + "hangup": "Kilépés", + "help": "Súgó", + "invite": "Személyek meghívása", + "joinBreakoutRoom": "Csatlakozás a pihenőszobához", + "laugh": "Nevetés", + "leaveBreakoutRoom": "Pihenőszoba elhagyása", + "like": "Hüvelykujj fel", + "login": "Bejelentkezés", + "logout": "Kijelentkezés", + "lowerYourHand": "Kéz leengedése", + "moreActions": "További műveletek", + "moreOptions": "További beállítások", + "mute": "Némítás / Visszahangosítás", + "muteEveryone": "Mindenki elnémítása", + "noAudioSignalDesc": "Ha nem szándékosan némította el a rendszerbeállításokban vagy az eszközön, akkor fontolja meg az eszköz cseréjét.", + "noAudioSignalDescSuggestion": "Ha nem szándékosan némította el a rendszerbeállításokban vagy az eszközön, akkor fontolja meg a következő eszköz használatát.", + "noAudioSignalDialInDesc": "Be is tárcsázhat:", + "noAudioSignalDialInLinkDesc": "Betárcsázási számok", + "noAudioSignalTitle": "Nincs bemenet a mikrofonjáról!", + "noiseSuppression": "Zajcsökkentés", + "noisyAudioInputDesc": "Úgy tűnik, hogy ez a mikrofon zajos. Le kellene némítani vagy cserélni az eszközt.", + "noisyAudioInputTitle": "Zajosnak tűnik a mikrofonja!", + "openChat": "Csevegés megnyitása", + "participants": "Résztvevők", + "pip": "Belépés kép a képben módba", + "privateMessage": "Privát üzenet küldése", + "profile": "Adja meg a profilját", + "raiseHand": "Kéz felemelése / leengedése", + "raiseYourHand": "Kéz felemelése", + "reactionBoo": "Boo reakció küldése", + "reactionClap": "Tapsolás reakció küldése", + "reactionLaugh": "Nevetés reakció küldése", + "reactionLike": "Hüvelykujj fel reakció küldése", + "reactionSilence": "Néma arc reakció küldése", + "reactionSurprised": "Meglepett reakció küldése", + "security": "Biztonsági Beállítások", + "selectBackground": "Háttér beállítása", + "shareRoom": "Valaki meghívása", + "shareaudio": "Hang megosztása", + "sharedvideo": "Videó megosztása", + "shortcuts": "Gyorsbillentyűk megtekintése", + "silence": "Néma", + "speakerStats": "Beszélő statisztika", + "startScreenSharing": "Képernyőmegosztás kezdése", + "startSubtitles": "Feliratok kezdése", + "startvideoblur": "Háttér elhomályosítása", + "stopScreenSharing": "Képernyőmegosztás leállítása", + "stopSharedVideo": "Kamera leállítása", + "stopSubtitles": "Felirat leállítása", + "stopvideoblur": "Háttér elhomályosításának letiltása", + "surprised": "Meglepett", + "talkWhileMutedPopup": "Úgy tűnik beszélni szeretne, de le van némítva.", + "tileViewToggle": "Mozaikos nézet átváltása", + "toggleCamera": "Kamera átváltása", + "videoSettings": "Videóbeállítások", + "videomute": "Kamera indítása / leállítása" + }, + "transcribing": { + "ccButtonTooltip": "Feliratok indítása / leállítása", + "error": "Átírat meghiúsult. Próbálja meg ismét.", + "expandedLabel": "Az átirat jelenleg be van kapcsolva", + "failedToStart": "Meghiúsult az átirat kezdése", + "labelToolTip": "Az értekezlet átirata elkezdődött", + "off": "Az átirat készítése le lett állítva", + "pending": "Előkészület az értekezlet átiratának készítésére…", + "start": "Felirat megjelenítésének kezdése", + "stop": "Felirat megjelenítésének befejezése", + "tr": "Átirat" + }, + "userMedia": { + "grantPermissions": "A kamera és a mikrofon használatát engedélyezni kell." + }, + "videoSIPGW": { + "busy": "Dolgozunk az erőforrások felszabadításán. Kísérelje meg újra néhány perc múlva.", + "busyTitle": "A szoba szolgáltatás jelenleg foglalt", + "errorAlreadyInvited": "{{displayName}} -t már meghívták", + "errorInvite": "A konferencia még nem lett megalakítva. Később próbálja újra.", + "errorInviteFailed": "Dolgozunk a hiba elhárításán. Próbálja meg később.", + "errorInviteFailedTitle": "{{displayName}} meghívása meghiúsult", + "errorInviteTitle": "Hiba a meghívó szobával", + "pending": "{{displayName}} -t meghívta" + }, + "videoStatus": { + "adjustFor": "Igazítsa a legjobb:", + "audioOnly": "CsH", + "audioOnlyExpanded": "Jelenleg az alacsony sávszélességű mód az aktív, vagyis csak hangot lehet fogadni és képernyőmegosztást.", + "bestPerformance": "Teljesítményhez", + "callQuality": "Videominőség", + "hd": "MF", + "hdTooltip": "Magas felbontású videó megtekintése", + "highDefinition": "Magas felbontású", + "highestQuality": "Minőséghez", + "labelTooiltipNoVideo": "Nincs videó", + "labelTooltipAudioOnly": "Alacsony sávszélességű mód aktiválva", + "ld": "AF", + "ldTooltip": "Alacsony felbontású videó", + "lowDefinition": "Alacsony felbontású", + "onlyAudioAvailable": "„Csak hang” mód elérhető", + "onlyAudioSupported": "Csak a hang támogatott ebben a böngészőben.", + "performanceSettings": "Teljesítménybeállítások", + "sd": "SF", + "sdTooltip": "Szabványos felbontású videó megtekintése", + "standardDefinition": "Szabványos felbontású" + }, + "videothumbnail": { + "domute": "Némítás", + "domuteOthers": "Mindenki más elnémítása", + "domuteVideoOfOthers": "Mindenki más kamerájának letiltása", + "flip": "Tükrözés", + "grantModerator": "Moderátori jogok megadása", + "hideSelfView": "Saját kép elrejtése", + "kick": "Kirúgás", + "moderator": "Moderátor", + "mute": "A résztvevő le van némítva", + "muted": "Némítva", + "remoteControl": "Távoli vezérlés", + "show": "Megjelenítés a színpadon", + "videomute": "A résztvevő leállította a kameráját" + }, + "virtualBackground": { + "addBackground": "Háttér hozzáadása", + "apply": "Alkalmaz", + "backgroundEffectError": "Hiba a háttér effekt hozzáadásnál.", + "blur": "Elmosódott", + "deleteImage": "Delete image", + "desktopShare": "Asztal megosztása", + "desktopShareError": "Nem lehet asztalt megosztani", + "image1": "Tengerpart", + "image2": "Fehér semleges fal", + "image3": "Fehér üres szoba", + "image4": "Fekete állólámpa", + "image5": "Hegy", + "image6": "Erdő", + "image7": "Napfelkelte", + "none": "Nincs", + "pleaseWait": "Kérjük várjon…", + "removeBackground": "Háttér eltávolítása", + "slightBlur": "Enyhén elmosódott", + "title": "Virtuális háttérképek", + "uploadedImage": "Feltöltött kép {{index}}" + }, + "volumeSlider": "Hangerő szabályzó", + "welcomepage": { + "accessibilityLabel": { + "join": "Koppintson a csatlakozáshoz", + "roomname": "Adja meg a terem nevét" + }, + "appDescription": "Rajta, csevegjen az egész csapattal. Valóban hívjon meg mindenkit, akit ismer. A {{app}} teljesen titkosított, 100% -ban nyílt forráskódú videokonferencia-megoldás, amelyet egész nap, minden nap ingyenesen használhat – fiók nélkül.", + "audioVideoSwitch": { + "audio": "Hang", + "video": "Videó" + }, + "calendar": "Naptár", + "connectCalendarButton": "Naptár csatolása", + "connectCalendarText": "Csatlakoztassa a naptárát, hogy láthassa az értekezleteket a {{app}} alkalmazásban. Továbbá, adja hozzá a {{provider}} szolgáltatót és egy kattintással lehet kezelni azokat.", + "enterRoomTitle": "Új értekezlet kezdése", + "getHelp": "Segítség kérése", + "go": "Indítás", + "goSmall": "Indítás", + "headerSubtitle": "Biztonságos és magas színvonalú konferenciák", + "info": "Információ", + "jitsiOnMobile": "Jitsi Mobil – töltse le az app-ot, és indítson megbeszélést bárhonnan", + "join": "LÉTREHOZ /HOZZÁAD", + "privacy": "Adatvédelem", + "recentList": "Legutóbbi", + "recentListDelete": "Lista törlés", + "recentListEmpty": "A legutóbbi lista jelenleg üres. Csevegjen a csapattal és minden előző értekezlet itt lesz megtalálható.", + "reducedUIText": "Üdvözlet a {{app}} programban!", + "roomNameAllowedChars": "Az értekezlet neve nem tartalmazhatja a következő karaktereket: ?, &, :, ', \", %, #.", + "roomname": "Adja meg a szoba nevét", + "roomnameHint": "Adja meg a kívánt nevet vagy URL-t, amelyhez csatlakozni szeretne. Bármiképp elnevezheti, csak ossza meg az értekezlet résztvevőivel, hogy ők ugyanezt a nevet tudják majd megadni.", + "sendFeedback": "Visszajelzés küldése", + "startMeeting": "Csatlakozás", + "terms": "Feltételek", + "title": "Biztonságos, maradéktalanul felszerelt és teljesen ingyenes videokonferencia" + } +} diff --git a/lang/main-hy.json b/lang/main-hy.json new file mode 100644 index 0000000..f55482c --- /dev/null +++ b/lang/main-hy.json @@ -0,0 +1,705 @@ +{ + "addPeople": { + "add": "Հրավիրել", + "countryNotSupported": "", + "countryReminder": "", + "disabled": "", + "failedToAdd": "", + "footerText": "", + "loading": "", + "loadingNumber": "", + "loadingPeople": "", + "noResults": "", + "noValidNumbers": "", + "searchNumbers": "", + "searchPeople": "", + "searchPeopleAndNumbers": "", + "telephone": "", + "title": "" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Ականջակալներ", + "phone": "Հեռախոս", + "speaker": "Հռետոր" + }, + "audioOnly": { + "audioOnly": "Միայն ձայնը" + }, + "calendarSync": { + "addMeetingURL": "", + "confirmAddLink": "", + "error": { + "appConfiguration": "", + "generic": "", + "notSignedIn": "" + }, + "join": "", + "joinTooltip": "", + "nextMeeting": "", + "noEvents": "", + "ongoingMeeting": "", + "permissionButton": "", + "permissionMessage": "", + "refresh": "", + "today": "" + }, + "chat": { + "error": "", + "messagebox": "", + "nickname": { + "popover": "Ընտրեք մականուն", + "title": "", + "titleWithPolls": "" + }, + "title": "", + "titleWithPolls": "" + }, + "connectingOverlay": { + "joiningRoom": "" + }, + "connection": { + "ATTACHED": "Կցված", + "AUTHENTICATING": "Վավերացում", + "AUTHFAIL": "Վավերացումը չի ստացվել", + "CONNECTED": "Միացված է", + "CONNECTING": "Միանում է…", + "CONNFAIL": "Միացումը չստացվեց", + "DISCONNECTED": "Անջատված է", + "DISCONNECTING": "Անջատում…", + "ERROR": "Սխալ", + "RECONNECTING": "Ցանցի խնդիր է տեղի ունեցել: Վերամիացում…" + }, + "connectionindicator": { + "address": "Հասցե։", + "bandwidth": "Մոտավոր թողունակություն։", + "bitrate": "Բիթրեյթ։", + "bridgeCount": "", + "connectedTo": "", + "framerate": "Կադրերի հաճախականություն", + "less": "Ցույց տալ ավելի քիչ", + "localaddress": "Local address:Local addresses:", + "localport": "Local port:Local ports:", + "more": "Ցույց տալ ավելի շատ", + "packetloss": "Փաթեթների կորուստ։", + "quality": { + "good": "", + "inactive": "Ոչ ակտիվ", + "lost": "Չկա", + "nonoptimal": "Ոչ օպտիմալ", + "poor": "Վատ" + }, + "remoteaddress": "Remote address:Remote addresses:", + "remoteport": "Remote port:Remote ports:", + "resolution": "Որակ։", + "status": "Միացում", + "transport": "Transport:Transports:", + "turn": " (turn)" + }, + "dateUtils": { + "earlier": "", + "today": "", + "yesterday": "" + }, + "deepLinking": { + "appNotInstalled": "", + "description": "", + "descriptionWithoutWeb": "", + "downloadApp": "Բեռնել հավելվածը", + "launchWebButton": "", + "openApp": "", + "title": "", + "tryAgainButton": "" + }, + "defaultLink": "օրինակ՝ {{url}}", + "deviceError": { + "cameraError": "", + "cameraPermission": "", + "microphoneError": "", + "microphonePermission": "" + }, + "deviceSelection": { + "noPermission": "", + "previewUnavailable": "", + "selectADevice": "", + "testAudio": "" + }, + "dialOut": { + "statusMessage": "" + }, + "dialog": { + "Back": "Վերադառնալ", + "Cancel": "Չեղարկել", + "IamHost": "Ես եմ ընդունողը", + "Ok": "Ok", + "Remove": "Հեռացնել", + "Share": "Տարածել", + "Submit": "Ներմուծել", + "WaitForHostMsg": "", + "WaitingForHost": "Սպասում է հյուրընկալողի …", + "Yes": "Այո", + "accessibilityLabel": { + "liveStreaming": "Ուղիղ Հեռարձակում" + }, + "allow": "Ընդունել", + "alreadySharedVideoMsg": "", + "alreadySharedVideoTitle": "", + "applicationWindow": "", + "cameraConstraintFailedError": "Ձեր տեսախցիկը չի համապատասխանում որոշ խոչընդոտների", + "cameraNotFoundError": "Տեսախցիկ չի գտնվել", + "cameraNotSendingData": "", + "cameraNotSendingDataTitle": "", + "cameraPermissionDeniedError": "Ձեզ թույլտվրված չէ օգտագործել Ձեր տեսախցիկը: Դուք կարող եք միացած մնալ համաժողովին, սակայն մյուսները չեն տեսնի ձեզ. Օգտագործեք տեսախցիկի կոճակը խնդիրը կարգավորելու համար", + "cameraUnknownError": "Չի կարող օգտագործվել տեսախցիկը անհայտ պատճառով", + "cameraUnsupportedResolutionError": "Ձեր տեսախցիկը չունի պահանջվող վիդեո-չափ", + "close": "", + "conferenceDisconnectMsg": "Ստուգեք ցանցային միացումը։ Վերամիացում՝ {{seconds}} վ…", + "conferenceDisconnectTitle": "Ձեր կապը անջատվել է", + "conferenceReloadMsg": "Փորձում ենք վերականգնել կապը։ Վերամիացում՝ {{seconds}} վ…", + "conferenceReloadTitle": "Ցավոք, ինչ֊որ բան այն չէ", + "confirm": "", + "confirmNo": "", + "confirmYes": "Այո", + "connectError": "Օհո՜։ Ինչ֊որ բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին", + "connectErrorWithMsg": "Օհո՜։ Ինչ֊որ բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին {{msg}}", + "connecting": "Միանում է…", + "contactSupport": "Կապվեք սպասարկող թիմի հետ", + "copy": "Պատճենել", + "dismiss": "Հեռացնել", + "displayNameRequired": "", + "done": "Կատարված է", + "enterDisplayName": "", + "error": "Սխալ", + "externalInstallationMsg": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը", + "externalInstallationTitle": "Ընդլայնում է պահանջվում:", + "goToStore": "Գնալ դեպի վեբ խանութ", + "gracefulShutdown": "Մեր ծառայությունը ներկայումս չի գործում տեխնիկական սպասարկման համար: Խնդրում ենք փորձեք ավելի ուշ:", + "incorrectPassword": "Օգտագործողի անվանման կամ գաղտնաբառի սխալ", + "incorrectRoomLockPassword": "", + "inlineInstallExtension": "", + "inlineInstallationMsg": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը", + "internalError": "Օհո՜։ Ինչ֊որ սխալ կա։ {{error}}", + "internalErrorTitle": "Ներքին սխալ ", + "kickMessage": "", + "kickParticipantButton": "", + "kickParticipantDialog": "", + "kickParticipantTitle": "", + "kickTitle": "", + "liveStreaming": "Ուղիղ Հեռարձակում", + "liveStreamingDisabledForGuestTooltip": "", + "liveStreamingDisabledTooltip": "", + "lockMessage": "Ձախողվեց արգելափակել կոնֆերանսը:", + "lockRoom": "", + "lockTitle": "Փակումը ձախողվեց", + "logoutQuestion": "Համոզված եք, որ ցանկանում եք դուրս գալ, եւ դադարեցնել կոնֆերանսը:", + "logoutTitle": "Ելք", + "maxUsersLimitReached": "", + "maxUsersLimitReachedTitle": "", + "micConstraintFailedError": "Ձեր խոսափողը չի բավարարել պահանջվող խոչընդոտներից մի քանիսը ", + "micNotFoundError": "Խոսափող չի գտնվել", + "micNotSendingData": "", + "micNotSendingDataTitle": "", + "micPermissionDeniedError": "Ձեզ թույլտվրված չէ օգտագործել Ձեր խոսափողը: Դուք կարող եք միացած մնալ համաժողովին, սակայն մյուսները չեն լսի ձեզ. Օգտագործեք խոսափողի կոճակը խնդիրը կարգավորելու համար", + "micUnknownError": "Չի կարող օգտագործվել տեսախցիկը անհայտ պատճառով", + "muteParticipantBody": "Դուք չեք կարող անջատել նրանց ձայնը, բայց նրանք կարող են անջատել իրենց ձայնը ամեն ժամանակ:", + "muteParticipantButton": "Անջատել ձայնը", + "muteParticipantDialog": "", + "muteParticipantTitle": "Անջատե՞լ այս մասնակցի ձայնը:", + "passwordLabel": "", + "passwordNotSupported": "Հանդիպման գաղտնաբառի նծշանակումը չի սպասարկվում", + "passwordNotSupportedTitle": "", + "passwordRequired": "", + "popupError": "Ձեր բրաուզերը արգելափակում է այս կայքի լրացուցիչ պատուհանները(Pop-up): Խնդրում ենք Ձեր բրաուզերի կարգավորումներում թույլ տվեք Pop-up-ը և կրկին փորձեք", + "popupErrorTitle": "Լրացուցիչ պատուհանները(Pop-up) արգելափակված են", + "recording": "Գրանցում", + "recordingDisabledForGuestTooltip": "", + "recordingDisabledTooltip": "", + "rejoinNow": "Կրկին միանալ հիմա", + "remoteControlAllowedMessage": "{{user}} ընդունել է Ձեր հեռահար կառավարման հրավերը", + "remoteControlDeniedMessage": "{{user}} մերժել է Ձեր հեռահար կառավարման հրավերը", + "remoteControlErrorMessage": "Որոշակի սխալ է տեղի ունեցել հեռահար կառավարման հրավերը ընդունելու ժամանակ {{user}} -ից", + "remoteControlRequestMessage": "", + "remoteControlShareScreenWarning": "", + "remoteControlStopMessage": "հեռահար կառավարման ընթացքը ավարտվեց", + "remoteControlTitle": "", + "removePassword": "", + "removeSharedVideoMsg": "Համոզված ե՞ք, որ ցանկանում եք հեռացնել տարածած տեսանյութը:", + "removeSharedVideoTitle": "Հեռացնել տարածված տեսանյութը", + "reservationError": "Վերապահման համակարգի սխալ", + "reservationErrorMsg": "Սխալ. {{code}}, ծանուցում. {{msg}}", + "retry": "Կրկին փորձել", + "screenSharingFailedToInstall": "", + "screenSharingFailedToInstallTitle": "", + "screenSharingFirefoxPermissionDeniedError": "", + "screenSharingFirefoxPermissionDeniedTitle": "", + "screenSharingPermissionDeniedError": "", + "serviceUnavailable": "Ծառայությունը անհասանելի է", + "sessTerminated": "", + "shareVideoLinkError": "Խնդրում ենք ներկայացնել ճիշտ Youtube հղում:", + "shareVideoTitle": "Տարածել տեսանյութը", + "shareYourScreen": "", + "shareYourScreenDisabled": "", + "shareYourScreenDisabledForGuest": "", + "startLiveStreaming": "Կանգնացնել ուղիղ հեռարձակումը:", + "startRecording": "Կանգնացնել ձայնագրումը", + "startRemoteControlErrorMessage": "", + "stopLiveStreaming": "Կանգնացնել ուղիղ հեռարձակումը:", + "stopRecording": "Կանգնացնել ձայնագրումը", + "stopRecordingWarning": "Վստա՞հ եք որ ցանկանում եք կանգնացնել ձայնագրումը", + "stopStreamingWarning": "Վստա՞հ եք որ ցանկանում եք կանգնացնել ուղիղ հեռարձակումը:", + "streamKey": "", + "thankYou": "Շնորհակալություն {{appName}} -ից օգտվելու համար:", + "token": "սիմվոլ", + "tokenAuthFailed": "Ներողություն,Դուք ընդունված չեք այս զանգին միանալու համար", + "tokenAuthFailedTitle": "Վավերացումը չի ստացվել", + "transcribing": "", + "unlockRoom": "", + "userPassword": "օգտագործողի գաղտնաբառը", + "yourEntireScreen": "" + }, + "feedback": { + "average": "", + "bad": "", + "detailsLabel": "", + "good": "", + "rateExperience": "Խնդրում ենք ներկայացրեք Ձեր հանդիպման փորձը", + "veryBad": "", + "veryGood": "" + }, + "incomingCall": { + "answer": "", + "audioCallTitle": "", + "decline": "Հեռացնել", + "productLabel": "", + "videoCallTitle": "" + }, + "info": { + "accessibilityLabel": "", + "addPassword": "", + "cancelPassword": "", + "conferenceURL": "", + "country": "", + "dialANumber": "", + "dialInConferenceID": "", + "dialInNotSupported": "", + "dialInNumber": "", + "dialInSummaryError": "", + "dialInTollFree": "", + "genericError": "", + "inviteLiveStream": "", + "invitePhone": "", + "invitePhoneAlternatives": "", + "inviteURLFirstPartGeneral": "", + "inviteURLFirstPartPersonal": "", + "inviteURLSecondPart": "", + "label": "", + "liveStreamURL": "Ուղիղ Հեռարձակում", + "moreNumbers": "", + "noNumbers": "", + "noPassword": "Ոչինչ", + "noRoom": "", + "numbers": "", + "password": "", + "title": "Տարածել", + "tooltip": "" + }, + "inlineDialogFailure": { + "msg": "", + "retry": "", + "support": "", + "supportMsg": "" + }, + "inviteDialog": { + "alertText": "", + "header": "Հրավիրել", + "searchCallOnlyPlaceholder": "", + "searchPeopleOnlyPlaceholder": "", + "searchPlaceholder": "", + "send": "" + }, + "keyboardShortcuts": { + "focusLocal": "Առաջ բերել Ձեռ վիդեոն", + "focusRemote": "Առաջ բերել այլ մասնակցի վիդեոն", + "fullScreen": "Միացնել/անջատել Ամբողջ էկրանի ռեժիմը", + "keyboardShortcuts": "Ստեղնաշարի արագ միացման կոճակներ (shortcuts)", + "localRecording": "", + "mute": "Անջատել /միացնել խոսափողը", + "pushToTalk": "Սեղմեք խոսելու համար", + "raiseHand": "Բարձրացնել /իջեցնել ձեռքը", + "showSpeakerStats": "Ցույց տալ մասնակիցների վիճակագրությունը", + "toggleChat": "Բացել /փակել չատի պանելը", + "toggleFilmstrip": "", + "toggleScreensharing": "Տեսախցիկի ռեժիմից անցնել էկրանի ցուցադրման ռեժիմ", + "toggleShortcuts": "", + "videoMute": "Անջատե/միացնել ձեր վիդեոն" + }, + "liveStreaming": { + "busy": "", + "busyTitle": "", + "changeSignIn": "", + "choose": "", + "chooseCTA": "", + "enterStreamKey": "", + "error": "Ուղիղ հեռարձակումը չստացվեց: Փորձեք կրկին", + "errorAPI": "", + "errorLiveStreamNotEnabled": "", + "expandedOff": "", + "expandedOn": "", + "expandedPending": "", + "failedToStart": "Ուղիղ հեռարձակումը չստացվեց սկսել", + "getStreamKeyManually": "", + "invalidStreamKey": "", + "off": "Ուղիղ Հեռարձակումը կանգնեցված է", + "on": "Ուղիղ Հեռարձակում", + "pending": "Սկսում ենք Ուղիղ Հեռարձակումը", + "serviceName": "", + "signIn": "", + "signInCTA": "", + "signOut": "", + "signedInAs": "", + "start": "Կանգնացնել ուղիղ հեռարձակումը:", + "streamIdHelp": "", + "title": "Ուղիղ Հեռարձակում", + "unavailableTitle": "" + }, + "localRecording": { + "clientState": { + "off": "", + "on": "", + "unknown": "" + }, + "dialogTitle": "", + "duration": "", + "durationNA": "", + "encoding": "", + "label": "", + "labelToolTip": "", + "localRecording": "", + "me": "Ես", + "messages": { + "engaged": "", + "finished": "", + "finishedModerator": "", + "notModerator": "" + }, + "moderator": "Մոդերատոր", + "no": "", + "participant": "Մասնակից", + "participantStats": "", + "sessionToken": "", + "start": "Կանգնացնել ձայնագրումը", + "stop": "Կանգնացնել ձայնագրումը", + "yes": "Այո" + }, + "lockRoomPassword": "Գաղտնաբառ", + "lockRoomPasswordUppercase": "Գաղտնաբառ", + "me": "ես", + "notify": { + "connectedOneMember": "", + "connectedThreePlusMembers": "", + "connectedTwoMembers": "", + "disconnected": "անջատված է", + "focus": "Կոնֆերանսի կենտրոնացումը", + "focusFail": "{{component}} հասանելի չէ - փորձեք կրկին {{ms}} վայրկյանից", + "grantedTo": "Կարգավորիչի իրավունքները տրամադրված են {{to}}-ին", + "invitedOneMember": "", + "invitedThreePlusMembers": "", + "invitedTwoMembers": "", + "kickParticipant": "", + "me": "Ես", + "moderator": "Կարգավորիչ իրավունքները տրամադրված են:", + "muted": "Դուք խոսակցությունը սկսեցել եք անջատած ձայնով", + "mutedRemotelyDescription": "", + "mutedRemotelyTitle": "", + "mutedTitle": "Ձեր ձայնը անջատված է", + "newDeviceAction": "", + "newDeviceAudioTitle": "", + "newDeviceCameraTitle": "", + "passwordRemovedRemotely": "", + "passwordSetRemotely": "", + "raisedHand": "", + "somebody": "Ինչ֊որ մեկը", + "startSilentDescription": "", + "startSilentTitle": "", + "suboptimalExperienceDescription": "", + "suboptimalExperienceTitle": "Բրաուզերի նախազգուշացում", + "unmute": "" + }, + "passwordDigitsOnly": "", + "passwordSetRemotely": "Սահմանվել է մեկ այլ մասնակցի կողմից", + "polls": { + "errors": { + "notUniqueOption": "Ընտրանքները պետք է լինեն եզակի" + } + }, + "poweredby": "Հիմնված է", + "presenceStatus": { + "busy": "", + "calling": "", + "connected": "Միացված է", + "connecting": "Միանում է…", + "connecting2": "Միանում է…", + "disconnected": "Անջատված է", + "expired": "", + "ignored": "", + "initializingCall": "", + "invited": "Հրավիրել", + "rejected": "", + "ringing": "" + }, + "profile": { + "setDisplayNameLabel": "Նշանակել Ձեր երևացող անունը", + "setEmailInput": "Մուտքագրեք էլ.հասցե", + "setEmailLabel": "Սահմանեք Ձեր Gravatar էլ.փոստը", + "title": "Պրոֆայլ" + }, + "recording": { + "authDropboxText": "", + "availableSpace": "", + "beta": "", + "busy": "", + "busyTitle": "", + "error": "Ձայնագրությյունը չստացվեց: Փորձեք կրկին", + "expandedOff": "Ձայնագրությունը կանգնացված է", + "expandedOn": "", + "expandedPending": "", + "failedToStart": "Ձայնագրությունը ստացվեց սկսել", + "fileSharingdescription": "", + "live": "", + "loggedIn": "", + "off": "Ձայնագրությունը կանգնացված է", + "on": "Գրանցում", + "pending": "", + "rec": "", + "serviceDescription": "", + "serviceName": "", + "signIn": "", + "signOut": "", + "title": "Գրանցում", + "unavailable": "", + "unavailableTitle": "" + }, + "sectionList": { + "pullToRefresh": "" + }, + "settings": { + "calendar": { + "about": "", + "disconnect": "Անջատված է", + "microsoftSignIn": "", + "signedIn": "", + "title": "Օրացույց" + }, + "devices": "", + "followMe": "Բոլորը հետևում են ինձ", + "language": "", + "loggedIn": "", + "moderator": "Մոդերատոր", + "more": "", + "name": "Անուն", + "noDevice": "Ոչինչ", + "selectAudioOutput": "Ձայնային ելք", + "selectCamera": "Տեսախցիկ", + "selectMic": "Խոսափող", + "startAudioMuted": "Հանդիպման սկզբում բոլորի ձայնը անջատված է", + "startVideoMuted": "Հանդիպման սկզբում բոլորի վիդեոն անջատված է", + "title": "Կարգավորումներ" + }, + "settingsView": { + "alertOk": "", + "alertTitle": "Ուշադրությու՝ն", + "alertURLText": "", + "buildInfoSection": "", + "conferenceSection": "", + "displayName": "", + "email": "", + "header": "Կարգավորումներ", + "profileSection": "Պրոֆայլ", + "serverURL": "", + "startWithAudioMuted": "", + "startWithVideoMuted": "", + "version": "" + }, + "share": { + "dialInfoText": "", + "mainText": "" + }, + "speaker": "Հռետոր", + "speakerStats": { + "hours": "", + "minutes": "", + "name": "Անուն", + "search": "Որոնում", + "searchHint": "Որոնել մասնակիցներին", + "seconds": "", + "speakerStats": "Հռետորի վիճակագրությունը", + "speakerTime": "" + }, + "startupoverlay": { + "policyText": "", + "title": "{{app}} ցանկանում է օգտագործել Ձեր խոսափողը և տեսախցիկը" + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Կրկին միանալ", + "text": "Կրկին միանալու համար սեղմեք Rejoin", + "title": "Ձեր վիդեո զանգը ընդհատվել էր, քանի որ այս համակարգիչը անցել էր քնի(Sleep) ռեժիմին" + }, + "toolbar": { + "Settings": "Կարգավորումներ", + "accessibilityLabel": { + "Settings": "", + "audioOnly": "", + "audioRoute": "", + "callQuality": "", + "cc": "", + "chat": "", + "document": "Բացել/փակել համատեղ հասանելի փաստաթուղթը", + "feedback": "Թողնել կարծիք", + "fullScreen": "", + "hangup": "", + "invite": "", + "kick": "", + "localRecording": "", + "lockRoom": "", + "moreActions": "", + "moreActionsMenu": "", + "mute": "", + "pip": "", + "profile": "Փոփոխել տվյալները", + "raiseHand": "", + "recording": "", + "remoteMute": "", + "shareRoom": "", + "shareYourScreen": "", + "sharedvideo": "", + "shortcuts": "", + "show": "", + "speakerStats": "", + "tileView": "", + "toggleCamera": "", + "videoblur": "", + "videomute": "" + }, + "addPeople": "Ավելացնել մասնակից", + "audioOnlyOff": "", + "audioOnlyOn": "", + "audioRoute": "", + "authenticate": "Վավերացում", + "callQuality": "Կարգավորել զանգի որակը", + "chat": "Բացել/փակել չատը", + "closeChat": "", + "documentClose": "Բացել/փակել համատեղ հասանելի փաստաթուղթը", + "documentOpen": "Բացել համատեղ հասանելի փաստաթուղթը", + "enterFullScreen": "Նայել ամբողջ էկրանով", + "enterTileView": "", + "exitFullScreen": "Անջատել \"Ամբողջ էկրան\" ռեժիմը", + "exitTileView": "", + "feedback": "Թողնել կարծիք", + "hangup": "Դուրս գալ", + "invite": "", + "login": "Մուտք", + "logout": "Ելք", + "lowerYourHand": "", + "moreActions": "Ավելի շատ հնարավորություններ", + "mute": "Միացնել/Անջատել ձայնը ", + "openChat": "", + "pip": "", + "profile": "Փոփոխել տվյալները", + "raiseHand": "Բարձրացնել/իջեցնել ձեռքը", + "raiseYourHand": "", + "shareRoom": "", + "sharedvideo": "Տարածել Youtube Video-ն", + "shortcuts": "Տեսնել արագ գործողությունների կոճակները(shortcuts)", + "speakerStats": "Հռետորի վիճակագրությունը", + "startScreenSharing": "", + "startSubtitles": "", + "startvideoblur": "", + "stopScreenSharing": "", + "stopSharedVideo": "Կանգնեցնել Youtube Video-ն", + "stopSubtitles": "", + "stopvideoblur": "", + "talkWhileMutedPopup": "Փորձում եք խոսե՞լ: Ձեր ձայնը անջատված է:", + "tileViewToggle": "", + "toggleCamera": "", + "videomute": "Միացնել/Անջատել տեսախցիկը" + }, + "transcribing": { + "ccButtonTooltip": "", + "error": "Ձայնագրությյունը չստացվեց: Փորձեք կրկին", + "expandedLabel": "", + "failedToStart": "", + "labelToolTip": "", + "off": "", + "pending": "", + "start": "", + "stop": "", + "tr": "" + }, + "userMedia": { + "grantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ." + }, + "videoSIPGW": { + "busy": "", + "busyTitle": "", + "errorAlreadyInvited": "", + "errorInvite": "", + "errorInviteFailed": "", + "errorInviteFailedTitle": "", + "errorInviteTitle": "", + "pending": "" + }, + "videoStatus": { + "audioOnly": "", + "audioOnlyExpanded": "", + "callQuality": "", + "hd": "", + "highDefinition": "", + "labelTooiltipNoVideo": "", + "labelTooltipAudioOnly": "", + "ld": "", + "lowDefinition": "", + "onlyAudioAvailable": "", + "onlyAudioSupported": "", + "sd": "", + "standardDefinition": "" + }, + "videothumbnail": { + "domute": "Անջատել ձայնը", + "flip": "Շրջել", + "kick": "Դուրս հանել", + "moderator": "Մոդերատոր", + "mute": "Մասնակիցը անջատեց ձայնը", + "muted": "Ձայնը անջատված է", + "remoteControl": "Հեռակառավարում", + "show": "", + "videomute": "" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "", + "roomname": "Մուտքագրեք սենյակի անունը" + }, + "appDescription": "", + "audioVideoSwitch": { + "audio": "Ձայն", + "video": "Վիդեո" + }, + "calendar": "Օրացույց", + "connectCalendarButton": "", + "connectCalendarText": "", + "enterRoomTitle": "", + "go": "ՄՈՒՏՔ", + "info": "", + "join": "Միանալ", + "privacy": "Գաղտնիություն", + "recentList": "", + "recentListDelete": "", + "recentListEmpty": "", + "reducedUIText": "", + "roomname": "Մուտքագրեք սենյակի անունը", + "roomnameHint": "Մուտքագրեք այն սենյակի համարը կամ URL-ը, որին ցանկանում եք միանալ։ Դուք կարող եք ստեղծել անուն և դա հայտնեք մնացած մասնակիցներին, որպեսզի նրանք կարողանան մուտք գործել այդ նույն անունով։", + "sendFeedback": "Թողնել կարծիք", + "terms": "Տերմիններ", + "title": "" + } +} diff --git a/lang/main-id.json b/lang/main-id.json new file mode 100644 index 0000000..9a49c36 --- /dev/null +++ b/lang/main-id.json @@ -0,0 +1,1549 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Tautan rapat: {{url}}" + }, + "add": "Undang", + "addContacts": "Undang kontak Anda", + "contacts": "kontak", + "copyInvite": "Salin undangan rapat", + "copyLink": "Salin tautan rapat", + "copyStream": "Salin tautan streaming langsung", + "countryNotSupported": "Kami belum mendukung destinasi ini.", + "countryReminder": "Menelepon ke luar AS? Pastikan Anda memulai dengan kode negara!", + "defaultEmail": "Email Default Anda", + "disabled": "Anda tidak dapat mengundang orang lain.", + "failedToAdd": "Gagal menambahkan peserta", + "googleEmail": "Email Google", + "inviteMoreHeader": "Anda adalah satu-satunya yang ada di dalam rapat", + "inviteMoreMailSubject": "Bergabunglah dengan rapat {{appName}}", + "inviteMorePrompt": "Undang lebih banyak orang", + "linkCopied": "Tautan disalin ke papan klip", + "noResults": "Tidak ada hasil pencarian yang cocok", + "outlookEmail": "Email Outlook", + "phoneNumbers": "nomor telepon", + "searching": "Mencari…", + "shareInvite": "Bagikan undangan rapat", + "shareLink": "Bagikan tautan rapat untuk mengundang orang lain", + "shareStream": "Bagikan tautan streaming langsung", + "sipAddresses": "alamat sip", + "telephone": "Telepon: {{number}}", + "title": "Undang orang ke rapat ini", + "yahooEmail": "Email Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Audio Mobil", + "headphones": "Headphone", + "none": "Tidak ada perangkat audio yang tersedia", + "phone": "Ponsel", + "speaker": "Speaker" + }, + "audioOnly": { + "audioOnly": "Bandwidth rendah" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "misalnya 10000000 untuk 10 Mbps", + "assumedBandwidthBpsWarning": "Nilai yang lebih tinggi dapat menyebabkan masalah jaringan.", + "customValue": "nilai kustom", + "customValueEffect": "untuk mengatur nilai bps yang sebenarnya", + "leaveEmpty": "biarkan kosong", + "leaveEmptyEffect": "untuk memungkinkan estimasi dilakukan", + "possibleValues": "Nilai yang mungkin", + "setAssumedBandwidthBps": "Bandwidth yang diasumsikan (bps)", + "title": "Pengaturan bandwidth", + "zeroEffect": "untuk menonaktifkan video" + }, + "breakoutRooms": { + "actions": { + "add": "Tambahkan ruang breakout", + "autoAssign": "Tetapkan secara otomatis ke ruang breakout", + "close": "Tutup", + "join": "Gabung", + "leaveBreakoutRoom": "Tinggalkan ruang breakout", + "more": "Lainnya", + "remove": "Hapus", + "rename": "Ganti nama", + "renameBreakoutRoom": "Ganti nama ruang breakout", + "sendToBreakoutRoom": "Kirim peserta ke:" + }, + "breakoutList": "Daftar breakout", + "buttonLabel": "Ruang breakout", + "defaultName": "Ruang breakout #{{index}}", + "hideParticipantList": "Sembunyikan daftar peserta", + "mainRoom": "Ruang utama", + "notifications": { + "joined": "Bergabung dengan ruang breakout \"{{name}}\"", + "joinedMainRoom": "Bergabung dengan ruang utama", + "joinedTitle": "Ruang Breakout" + }, + "showParticipantList": "Tampilkan daftar peserta", + "title": "Ruang Breakout" + }, + "calendarSync": { + "addMeetingURL": "Tambahkan tautan rapat", + "confirmAddLink": "Apakah Anda ingin menambahkan tautan Jitsi ke acara ini?", + "error": { + "appConfiguration": "Integrasi kalender tidak dikonfigurasi dengan benar.", + "generic": "Terjadi kesalahan. Harap periksa pengaturan kalender Anda atau coba perbarui kalender.", + "notSignedIn": "Terjadi kesalahan saat mengautentikasi untuk melihat acara kalender. Harap periksa pengaturan kalender Anda dan coba masuk kembali." + }, + "join": "Gabung", + "joinTooltip": "Gabung ke rapat", + "nextMeeting": "Rapat berikutnya", + "noEvents": "Tidak ada acara mendatang yang dijadwalkan.", + "ongoingMeeting": "Rapat sedang berlangsung", + "permissionButton": "Buka pengaturan", + "permissionMessage": "Izin Kalender diperlukan untuk melihat rapat Anda dalam aplikasi.", + "refresh": "Perbarui kalender", + "today": "Hari ini" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Pilih perangkat suara" + }, + "labels": { + "buttonLabel": "Mode mobil", + "title": "Mode mobil", + "videoStopped": "Video Anda dihentikan" + } + }, + "chat": { + "enter": "Masuk ke ruang", + "error": "Error: pesan Anda tidak terkirim. Alasan: {{error}}", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Pesan obrolan lobby ke {{recipient}}", + "message": "Pesan", + "messageAccessibleTitle": "{{user}} berkata:", + "messageAccessibleTitleMe": "saya berkata:", + "messageTo": "Pesan pribadi ke {{recipient}}", + "messagebox": "Ketik pesan", + "newMessages": "Pesan baru", + "nickname": { + "popover": "Pilih nama panggilan", + "title": "Masukkan nama panggilan untuk menggunakan obrolan", + "titleWithPolls": "Masukkan nama panggilan untuk menggunakan obrolan dan jajak pendapat" + }, + "noMessagesMessage": "Belum ada pesan dalam pertemuan ini. Mulai percakapan di sini!", + "privateNotice": "Pesan pribadi ke {{recipient}}", + "sendButton": "Kirim", + "smileysPanel": "Panel Emoji", + "systemDisplayName": "Sistem", + "tabs": { + "chat": "Obrolan", + "polls": "Jajak Pendapat" + }, + "title": "Obrolan", + "titleWithPolls": "Obrolan dan Jajak Pendapat", + "you": "Anda" + }, + "chromeExtensionBanner": { + "buttonText": "Pasang Ekstensi Chrome", + "buttonTextEdge": "Pasang Ekstensi Edge", + "close": "Tutup", + "dontShowAgain": "Jangan tampilkan ini lagi", + "installExtensionText": "Pasang ekstensi untuk integrasi Google Calendar dan Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Menghubungkan Anda ke pertemuan Anda…" + }, + "connection": { + "ATTACHED": "Terlampir", + "AUTHENTICATING": "Mengautentikasi", + "AUTHFAIL": "Autentikasi gagal", + "CONNECTED": "Terhubung", + "CONNECTING": "Menghubungkan", + "CONNFAIL": "Gagal terhubung", + "DISCONNECTED": "Terputus", + "DISCONNECTING": "Memutuskan", + "ERROR": "Error", + "FETCH_SESSION_ID": "Mendapatkan session-id…", + "GET_SESSION_ID_ERROR": "Error mendapatkan session-id: {{code}}", + "GOT_SESSION_ID": "Mendapatkan session-id… Selesai", + "LOW_BANDWIDTH": "Video untuk {{displayName}} telah dimatikan untuk menghemat bandwidth" + }, + "connectionindicator": { + "address": "Alamat:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Perkiraan bandwidth:", + "bitrate": "Bitrate:", + "bridgeCount": "Jumlah server: ", + "codecs": "Codec (A/V): ", + "connectedTo": "Terhubung ke:", + "e2eeVerified": "E2EE diverifikasi:", + "framerate": "Frame rate:", + "less": "Tampilkan lebih sedikit", + "localaddress": "Alamat lokal:", + "localaddress_plural": "Alamat lokal:", + "localport": "Port lokal:", + "localport_plural": "Port lokal:", + "maxEnabledResolution": "kirim maks", + "more": "Tampilkan lebih banyak", + "no": "tidak", + "packetloss": "Packet loss:", + "participant_id": "ID Partisipan:", + "quality": { + "good": "Bagus", + "inactive": "Tidak aktif", + "lost": "Hilang", + "nonoptimal": "Nonoptimal", + "poor": "Buruk" + }, + "remoteaddress": "Alamat remote:", + "remoteaddress_plural": "Alamat remote:", + "remoteport": "Port remote:", + "remoteport_plural": "Port remote:", + "resolution": "Resolusi:", + "savelogs": "Simpan log", + "status": "Koneksi:", + "transport": "Transport:", + "transport_plural": "Transport:", + "video_ssrc": "Video SSRC:", + "yes": "ya" + }, + "dateUtils": { + "earlier": "Lebih awal", + "today": "Hari ini", + "yesterday": "Kemarin" + }, + "deepLinking": { + "appNotInstalled": "Anda memerlukan aplikasi seluler {{app}} untuk bergabung dengan pertemuan ini di ponsel Anda.", + "description": "Tidak terjadi apa-apa? Kami mencoba meluncurkan pertemuan Anda di aplikasi desktop {{app}}. Coba lagi atau buka di aplikasi web {{app}}.", + "descriptionNew": "Tidak terjadi apa-apa? Kami mencoba meluncurkan pertemuan Anda di aplikasi desktop {{app}}.

Anda dapat mencoba lagi atau buka di web.", + "descriptionWithoutWeb": "Tidak terjadi apa-apa? Kami mencoba meluncurkan pertemuan Anda di aplikasi desktop {{app}}.", + "downloadApp": "Unduh aplikasi", + "downloadMobileApp": "Unduh dari App Store", + "ifDoNotHaveApp": "Jika Anda belum memiliki aplikasi:", + "ifHaveApp": "Jika Anda sudah memiliki aplikasi:", + "joinInApp": "Bergabung dengan pertemuan ini menggunakan aplikasi", + "joinInAppNew": "Bergabung dalam aplikasi", + "joinInBrowser": "Bergabung di peramban", + "launchMeetingLabel": "Bagaimana Anda ingin bergabung dengan pertemuan ini?", + "launchWebButton": "Buka di web", + "noDesktopApp": "Anda tidak memiliki aplikasinya?", + "noMobileApp": "Anda tidak memiliki aplikasinya?", + "or": "ATAU", + "termsAndConditions": "Dengan melanjutkan Anda menyetujui syarat & ketentuan kami.", + "title": "Meluncurkan pertemuan Anda di {{app}}…", + "titleNew": "Meluncurkan pertemuan Anda…", + "tryAgainButton": "Coba lagi di desktop", + "unsupportedBrowser": "Sepertinya Anda menggunakan peramban yang tidak kami dukung." + }, + "defaultLink": "contoh. {{url}}", + "defaultNickname": "contoh. Jane Pink", + "deviceError": { + "cameraError": "Gagal mengakses kamera Anda", + "cameraPermission": "Error memperoleh izin kamera", + "microphoneError": "Gagal mengakses mikrofon Anda", + "microphonePermission": "Error memperoleh izin mikrofon" + }, + "deviceSelection": { + "hid": { + "callControl": "Kontrol panggilan", + "connectedDevices": "Perangkat terhubung:", + "deleteDevice": "Hapus perangkat", + "pairDevice": "Pasangkan perangkat" + }, + "noPermission": "Izin tidak diberikan", + "previewUnavailable": "Pratinjau tidak tersedia", + "selectADevice": "Pilih perangkat", + "testAudio": "Uji" + }, + "dialIn": { + "screenTitle": "Ringkasan panggilan masuk" + }, + "dialOut": { + "statusMessage": "sekarang {{status}}" + }, + "dialog": { + "Back": "Kembali", + "Cancel": "Batal", + "IamHost": "Masuk", + "Ok": "OK", + "Remove": "Hapus", + "Share": "Bagikan", + "Submit": "Kirim", + "WaitForHostMsg": "Konferensi belum dimulai karena belum ada moderator yang datang. Jika Anda ingin menjadi moderator, silakan masuk. Jika tidak, harap tunggu.", + "WaitForHostNoAuthMsg": "Konferensi belum dimulai karena belum ada moderator yang datang. Harap tunggu.", + "WaitingForHostButton": "Tunggu moderator", + "WaitingForHostTitle": "Menunggu moderator…", + "Yes": "Ya", + "accessibilityLabel": { + "Cancel": "Batal (tinggalkan dialog)", + "Ok": "OK (simpan dan tinggalkan dialog)", + "close": "Tutup dialog", + "liveStreaming": "Streaming Langsung", + "sharingTabs": "Opsi Berbagi" + }, + "add": "Tambah", + "addMeetingNote": "Tambahkan catatan tentang pertemuan ini", + "addOptionalNote": "Tambahkan catatan (opsional):", + "allow": "Izinkan", + "allowToggleCameraDialog": "Apakah Anda mengizinkan {{initiatorName}} untuk mengubah mode kamera Anda?", + "allowToggleCameraTitle": "Izinkan ubah kamera?", + "alreadySharedVideoMsg": "Partisipan lain sudah membagikan video. Konferensi ini hanya memungkinkan satu video yang dibagikan pada satu waktu.", + "alreadySharedVideoTitle": "Hanya satu video yang diizinkan pada satu waktu", + "applicationWindow": "Jendela aplikasi", + "authenticationRequired": "Autentikasi diperlukan", + "cameraConstraintFailedError": "Kamera Anda tidak memenuhi beberapa batasan yang diperlukan.", + "cameraNotFoundError": "Kamera tidak ditemukan.", + "cameraNotSendingData": "Kami tidak dapat mengakses kamera Anda. Periksa apakah aplikasi lain menggunakan perangkat ini, pilih perangkat lain dari menu pengaturan, atau coba muat ulang aplikasi.", + "cameraNotSendingDataTitle": "Tidak dapat mengakses kamera", + "cameraPermissionDeniedError": "Anda belum memberikan izin untuk menggunakan kamera Anda. Anda masih dapat bergabung dengan konferensi tetapi orang lain tidak akan melihat Anda. Gunakan tombol kamera di bilah alamat untuk memperbaikinya.", + "cameraTimeoutError": "Tidak dapat memulai sumber video. Timeout terjadi!", + "cameraUnknownError": "Tidak dapat menggunakan kamera karena alasan yang tidak diketahui.", + "cameraUnsupportedResolutionError": "Kamera Anda tidak mendukung resolusi video yang diperlukan.", + "close": "Tutup", + "conferenceDisconnectMsg": "Anda mungkin ingin memeriksa koneksi jaringan Anda. Menghubungkan kembali dalam {{seconds}} detik…", + "conferenceDisconnectTitle": "Anda telah terputus.", + "conferenceReloadMsg": "Kami mencoba memperbaiki ini. Menghubungkan kembali dalam {{seconds}} detik…", + "conferenceReloadTitle": "Sayangnya, terjadi kesalahan.", + "confirm": "Konfirmasi", + "confirmNo": "Tidak", + "confirmYes": "Ya", + "connectError": "Ups! Ada yang salah dan kami tidak bisa terhubung ke konferensi.", + "connectErrorWithMsg": "Ups! Ada yang salah dan kami tidak bisa terhubung ke konferensi: {{msg}}", + "connecting": "Menghubungkan", + "contactSupport": "Hubungi dukungan", + "copied": "Tersalin", + "copy": "Salin", + "demoteParticipantDialog": "Apakah Anda yakin ingin memindahkan partisipan ini ke pengunjung?", + "demoteParticipantTitle": "Pindahkan ke pengunjung", + "dismiss": "Abaikan", + "displayNameRequired": "Hai! Siapa namamu?", + "done": "Selesai", + "e2eeDescription": "Enkripsi End-to-End saat ini adalah EKSPERIMENTAL. Harap diingat bahwa mengaktifkan enkripsi end-to-end akan menonaktifkan layanan yang disediakan oleh server seperti: partisipasi telepon. Juga, perlu diingat bahwa pertemuan hanya akan berfungsi bagi orang yang bergabung dari browser dengan dukungan untuk aliran masuk.", + "e2eeDisabledDueToMaxModeDescription": "Tidak dapat mengaktifkan Enkripsi End-to-End karena jumlah partisipan yang besar dalam konferensi.", + "e2eeLabel": "Aktifkan Enkripsi End-to-End", + "e2eeWarning": "PERINGATAN: Tidak semua partisipan dalam pertemuan ini tampaknya memiliki dukungan untuk Enkripsi End-to-End. Jika Anda mengaktifkannya, mereka tidak akan dapat melihat atau mendengar Anda.", + "e2eeWillDisableDueToMaxModeDescription": "PERINGATAN: Enkripsi End-to-End akan dinonaktifkan secara otomatis jika lebih banyak partisipan bergabung dalam konferensi.", + "embedMeeting": "Sematkan pertemuan", + "enterDisplayName": "Masukkan namamu", + "error": "Error", + "errorRoomCreationRestriction": "Anda mencoba bergabung terlalu cepat, harap kembali beberapa saat lagi.", + "gracefulShutdown": "Layanan kami saat ini tidak berfungsi karena pemeliharaan. Silakan coba lagi nanti.", + "grantModeratorDialog": "Apakah Anda yakin ingin memberikan hak moderator kepada {{participantName}}?", + "grantModeratorTitle": "Berikan hak moderator", + "hide": "Sembunyikan", + "hideShareAudioHelper": "Jangan tampilkan dialog ini lagi", + "incorrectPassword": "Nama pengguna atau kata sandi salah", + "incorrectRoomLockPassword": "Kata sandi salah", + "internalError": "Ups! Ada yang salah. Kesalahan berikut terjadi: {{error}}", + "internalErrorTitle": "Kesalahan internal", + "kickMessage": "Anda dapat menghubungi {{participantDisplayName}} untuk detail lebih lanjut.", + "kickParticipantButton": "Keluarkan", + "kickParticipantDialog": "Apakah Anda yakin ingin mengeluarkan partisipan ini?", + "kickParticipantTitle": "Keluarkan partisipan ini?", + "kickTitle": "Ouch! {{participantDisplayName}} mengeluarkan Anda dari pertemuan", + "linkMeeting": "Tautkan pertemuan", + "linkMeetingTitle": "Tautkan pertemuan ke Salesforce", + "liveStreaming": "Streaming Langsung", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Tidak mungkin saat perekaman aktif", + "localUserControls": "Kontrol pengguna lokal", + "lockMessage": "Gagal mengunci konferensi.", + "lockRoom": "Tambahkan kata sandi pertemuan $t(lockRoomPassword)", + "lockTitle": "Kunci gagal", + "login": "Masuk", + "loginQuestion": "Apakah Anda yakin ingin masuk dan meninggalkan konferensi?", + "logoutQuestion": "Apakah Anda yakin ingin keluar dan meninggalkan konferensi?", + "logoutTitle": "Keluar", + "maxUsersLimitReached": "Batas jumlah peserta maksimum telah tercapai. Konferensi penuh. Harap hubungi pemilik pertemuan atau coba lagi nanti!", + "maxUsersLimitReachedTitle": "Batas peserta maksimum tercapai", + "micConstraintFailedError": "Mikrofon Anda tidak memenuhi beberapa batasan yang diperlukan.", + "micNotFoundError": "Mikrofon tidak ditemukan.", + "micNotSendingData": "Buka pengaturan komputer Anda untuk membuka suara mikrofon Anda dan menyesuaikan levelnya", + "micNotSendingDataTitle": "Mikrofon Anda dibisukan oleh pengaturan sistem Anda", + "micPermissionDeniedError": "Anda belum memberikan izin untuk menggunakan mikrofon Anda. Anda masih dapat bergabung dengan konferensi tetapi orang lain tidak akan mendengar Anda. Gunakan tombol kamera di bilah alamat untuk memperbaikinya.", + "micTimeoutError": "Tidak dapat memulai sumber audio. Timeout terjadi!", + "micUnknownError": "Tidak dapat menggunakan mikrofon karena alasan yang tidak diketahui.", + "moderationAudioLabel": "Izinkan peserta membuka suara mereka sendiri", + "moderationVideoLabel": "Izinkan peserta untuk memulai video mereka", + "muteEveryoneDialog": "Partisipan dapat membuka suara mereka sendiri kapan saja.", + "muteEveryoneDialogModerationOn": "Partisipan dapat mengirim permintaan untuk berbicara kapan saja.", + "muteEveryoneElseDialog": "Setelah dibisukan, Anda tidak akan bisa membukanya kembali, tetapi mereka dapat membuka suara mereka kapan saja.", + "muteEveryoneElseTitle": "Bisukan semua kecuali {{whom}}?", + "muteEveryoneElsesVideoDialog": "Setelah kamera dinonaktifkan, Anda tidak akan bisa mengaktifkannya kembali, tetapi mereka dapat mengaktifkannya kembali kapan saja.", + "muteEveryoneElsesVideoTitle": "Hentikan video semua kecuali {{whom}}?", + "muteEveryoneSelf": "dirimu sendiri", + "muteEveryoneStartMuted": "Semua orang mulai dibisukan dari sekarang", + "muteEveryoneTitle": "Bisukan semua?", + "muteEveryonesVideoDialog": "Partisipan dapat menyalakan video mereka kapan saja.", + "muteEveryonesVideoDialogModerationOn": "Partisipan dapat mengirim permintaan untuk menyalakan video mereka kapan saja.", + "muteEveryonesVideoDialogOk": "Nonaktifkan", + "muteEveryonesVideoTitle": "Hentikan video semua orang?", + "muteParticipantBody": "Anda tidak akan bisa membukanya kembali, tetapi mereka dapat membuka suara mereka kapan saja.", + "muteParticipantButton": "Bisukan", + "muteParticipantsVideoBody": "Anda tidak akan bisa menyalakan kamera kembali, tetapi mereka dapat menyalakannya kembali kapan saja.", + "muteParticipantsVideoBodyModerationOn": "Anda tidak akan bisa menyalakan kamera kembali dan mereka juga tidak akan bisa.", + "muteParticipantsVideoButton": "Hentikan video", + "muteParticipantsVideoDialog": "Apakah Anda yakin ingin menonaktifkan kamera partisipan ini? Anda tidak akan bisa menyalakan kamera kembali, tetapi mereka dapat menyalakannya kembali kapan saja.", + "muteParticipantsVideoDialogModerationOn": "Apakah Anda yakin ingin menonaktifkan kamera partisipan ini? Anda tidak akan bisa menyalakan kamera kembali dan mereka juga tidak akan bisa.", + "muteParticipantsVideoTitle": "Nonaktifkan kamera partisipan ini?", + "noDropboxToken": "Tidak ada token Dropbox valid", + "password": "Kata sandi", + "passwordLabel": "Konferensi telah dikunci oleh seorang partisipan. Harap masukkan $t(lockRoomPassword) untuk bergabung.", + "passwordNotSupported": "Pengaturan $t(lockRoomPassword) pertemuan tidak didukung.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) tidak didukung", + "passwordRequired": "$t(lockRoomPasswordUppercase) diperlukan", + "permissionCameraRequiredError": "Izin kamera diperlukan untuk berpartisipasi dalam konferensi dengan video. Harap berikan izin tersebut di Pengaturan", + "permissionErrorTitle": "Izin diperlukan", + "permissionMicRequiredError": "Izin mikrofon diperlukan untuk berpartisipasi dalam konferensi dengan audio. Harap berikan izin tersebut di Pengaturan", + "readMore": "lebih lanjut", + "recentlyUsedObjects": "Objek yang Anda gunakan baru-baru ini", + "recording": "Merekam", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Tidak mungkin saat streaming langsung aktif", + "rejoinNow": "Gabung kembali sekarang", + "remoteControlAllowedMessage": "{{user}} menerima permintaan kontrol jarak jauh Anda!", + "remoteControlDeniedMessage": "{{user}} menolak permintaan kontrol jarak jauh Anda!", + "remoteControlErrorMessage": "Terjadi kesalahan saat mencoba meminta izin kontrol jarak jauh dari {{user}}!", + "remoteControlRequestMessage": "Apakah Anda akan mengizinkan {{user}} untuk mengontrol desktop Anda dari jarak jauh?", + "remoteControlShareScreenWarning": "Perhatikan bahwa jika Anda menekan \"Izinkan\" Anda akan membagikan layar Anda!", + "remoteControlStopMessage": "Sesi kontrol jarak jauh berakhir!", + "remoteControlTitle": "Kontrol desktop jarak jauh", + "remoteUserControls": "Kontrol pengguna jarak jauh dari {{username}}", + "removePassword": "Hapus $t(lockRoomPassword)", + "removeSharedVideoMsg": "Apakah Anda yakin ingin menghapus video yang Anda bagikan?", + "removeSharedVideoTitle": "Hapus video yang dibagikan", + "renameBreakoutRoomLabel": "Nama ruang", + "renameBreakoutRoomTitle": "Ubah nama ruang breakout", + "reservationError": "Kesalahan sistem reservasi", + "reservationErrorMsg": "Kode kesalahan: {{code}}, pesan: {{msg}}", + "retry": "Coba lagi", + "screenSharingAudio": "Bagikan audio", + "screenSharingFailed": "Ups! Ada yang salah, kami tidak dapat memulai berbagi layar!", + "screenSharingFailedTitle": "Berbagi layar gagal!", + "screenSharingPermissionDeniedError": "Ups! Ada yang salah dengan izin berbagi layar Anda. Harap muat ulang dan coba lagi.", + "searchInSalesforce": "Cari di Salesforce", + "searchResults": "Hasil pencarian ({{count}})", + "searchResultsDetailsError": "Ada masalah saat mengambil data pemilik.", + "searchResultsError": "Ada masalah saat mengambil data.", + "searchResultsNotFound": "Tidak ada hasil pencarian ditemukan.", + "searchResultsTryAgain": "Coba gunakan kata kunci alternatif.", + "sendPrivateMessage": "Anda baru saja menerima pesan pribadi. Apakah Anda bermaksud untuk membalas secara pribadi, atau Anda ingin mengirim pesan Anda ke grup?", + "sendPrivateMessageCancel": "Kirim ke grup", + "sendPrivateMessageOk": "Kirim secara pribadi", + "sendPrivateMessageTitle": "Kirim secara pribadi?", + "serviceUnavailable": "Layanan tidak tersedia", + "sessTerminated": "Panggilan berakhir", + "sessTerminatedReason": "Pertemuan telah berakhir", + "sessionRestarted": "Panggilan diulang karena masalah koneksi.", + "shareAudio": "Lanjutkan", + "shareAudioAltText": "untuk membagikan konten yang diinginkan, navigasikan ke \"Tab Browser\", pilih konten, aktifkan tanda centang \"bagikan audio\" dan klik tombol \"bagikan\"", + "shareAudioTitle": "Bagaimana cara berbagi audio", + "shareAudioWarningD1": "Anda perlu menghentikan berbagi layar sebelum berbagi audio Anda.", + "shareAudioWarningD2": "Anda perlu me-restart berbagi layar Anda dan memeriksa opsi \"bagikan audio\".", + "shareAudioWarningH1": "Jika Anda hanya ingin berbagi audio:", + "shareAudioWarningTitle": "Anda perlu menghentikan berbagi layar sebelum berbagi audio", + "shareMediaWarningGenericH2": "Jika Anda ingin berbagi layar dan audio Anda", + "shareScreenWarningD1": "Anda perlu menghentikan berbagi audio sebelum berbagi layar Anda.", + "shareScreenWarningD2": "Anda perlu menghentikan berbagi audio, memulai berbagi layar, dan memeriksa opsi \"bagikan audio\".", + "shareScreenWarningH1": "Jika Anda hanya ingin berbagi layar Anda:", + "shareScreenWarningTitle": "Anda perlu menghentikan berbagi audio sebelum berbagi layar Anda", + "shareVideoLinkError": "Harap berikan tautan video yang benar.", + "shareVideoTitle": "Bagikan video", + "shareYourScreen": "Bagikan layar Anda", + "shareYourScreenDisabled": "Berbagi layar dinonaktifkan.", + "sharedVideoDialogError": "Kesalahan: URL tidak valid", + "sharedVideoLinkPlaceholder": "Tautan YouTube atau tautan video langsung", + "show": "Tampilkan", + "start": "Mulai", + "startLiveStreaming": "Mulai streaming langsung", + "startRecording": "Mulai perekaman", + "startRemoteControlErrorMessage": "Terjadi kesalahan saat mencoba memulai sesi kontrol jarak jauh!", + "stopLiveStreaming": "Hentikan streaming langsung", + "stopRecording": "Hentikan perekaman", + "stopRecordingWarning": "Apakah Anda yakin ingin menghentikan perekaman?", + "stopStreamingWarning": "Apakah Anda yakin ingin menghentikan streaming langsung?", + "streamKey": "Kunci streaming langsung", + "thankYou": "Terima kasih telah menggunakan {{appName}}!", + "token": "token", + "tokenAuthFailed": "Maaf, Anda tidak diizinkan untuk bergabung dengan panggilan ini.", + "tokenAuthFailedReason": { + "audInvalid": "Nilai `aud` tidak valid. Harus `jitsi`.", + "contextNotFound": "Objek `context` hilang dari muatan.", + "expInvalid": "Nilai `exp` tidak valid.", + "featureInvalid": "Fitur tidak valid: {{feature}}, kemungkinan besar belum diimplementasikan.", + "featureValueInvalid": "Nilai tidak valid untuk fitur: {{feature}}.", + "featuresNotFound": "Objek `features` hilang dari muatan.", + "headerNotFound": "Tidak ada header.", + "issInvalid": "Nilai `iss` tidak valid. Harus `chat`.", + "kidMismatch": "ID Kunci (kid) tidak cocok dengan sub.", + "kidNotFound": "ID Kunci (kid) tidak ditemukan.", + "nbfFuture": "Nilai `nbf` berada di masa depan.", + "nbfInvalid": "Nilai `nbf` tidak valid.", + "payloadNotFound": "Muatan hilang.", + "tokenExpired": "Token kedaluwarsa." + }, + "tokenAuthFailedTitle": "Autentikasi gagal", + "tokenAuthFailedWithReasons": "Maaf, Anda tidak diizinkan untuk bergabung dengan panggilan ini. Kemungkinan alasan: {{reason}}", + "tokenAuthUnsupported": "URL Token tidak didukung.", + "transcribing": "Transkripsi", + "unlockRoom": "Hapus $t(lockRoomPassword)", + "user": "Pengguna", + "userIdentifier": "Identifier pengguna", + "userPassword": "Kata sandi pengguna", + "verifyParticipantConfirm": "Mereka cocok", + "verifyParticipantDismiss": "Mereka tidak cocok", + "verifyParticipantQuestion": "EKSPERIMENTAL: Tanyakan pada peserta {{participantName}} apakah mereka melihat konten yang sama, dalam urutan yang sama.", + "verifyParticipantTitle": "Verifikasi pengguna", + "videoLink": "Tautan video", + "viewUpgradeOptions": "Lihat opsi peningkatan", + "viewUpgradeOptionsContent": "Untuk mendapatkan akses tanpa batas ke fitur premium seperti perekaman, transkripsi, Streaming RTMP & lebih, Anda perlu meningkatkan paket Anda.", + "viewUpgradeOptionsTitle": "Anda menemukan fitur premium!", + "whiteboardLimitContent": "Maaf, batas pengguna whiteboard bersama telah tercapai.", + "whiteboardLimitReference": "Untuk informasi lebih lanjut, silakan kunjungi", + "whiteboardLimitReferenceUrl": "situs web kami", + "whiteboardLimitTitle": "Penggunaan papan tulis terbatas", + "yourEntireScreen": "Seluruh layar Anda" + }, + "documentSharing": { + "title": "Dokumen yang Dibagikan" + }, + "e2ee": { + "labelToolTip": "Komunikasi Audio dan Video dalam panggilan ini dienkripsi end-to-end" + }, + "embedMeeting": { + "title": "Sematkan pertemuan ini" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Pilihan Anda: {{rating}}" + }, + "average": "Rata-rata", + "bad": "Buruk", + "detailsLabel": "Beritahu kami lebih lanjut tentang itu.", + "good": "Baik", + "rateExperience": "Beri penilaian pengalaman pertemuan Anda", + "star": "Bintang", + "veryBad": "Sangat Buruk", + "veryGood": "Sangat Baik" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Thumbnail Video" + } + }, + "giphy": { + "noResults": "Tidak ada hasil yang ditemukan :(", + "search": "Cari di GIPHY" + }, + "incomingCall": { + "answer": "Jawab", + "audioCallTitle": "Panggilan Masuk", + "decline": "Tolak", + "productLabel": "dari Jitsi Meet", + "videoCallTitle": "Panggilan Video Masuk" + }, + "info": { + "accessibilityLabel": "Tampilkan info", + "addPassword": "Tambahkan $t(lockRoomPassword)", + "cancelPassword": "Batalkan $t(lockRoomPassword)", + "conferenceURL": "Tautan:", + "copyNumber": "Salin nomor", + "country": "Negara", + "dialANumber": "Untuk bergabung dengan pertemuan Anda, tekan salah satu nomor ini dan masukkan pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Maaf, pemanggilan saat ini tidak didukung.", + "dialInNumber": "Dial-in:", + "dialInSummaryError": "Kesalahan dalam mengambil info dial-in sekarang. Silakan coba lagi nanti.", + "dialInTollFree": "Bebas Pulsa", + "genericError": "Whups, ada yang salah.", + "inviteLiveStream": "Untuk melihat streaming langsung pertemuan ini, klik tautan ini: {{url}}", + "invitePhone": "Untuk bergabung melalui telepon, ketuk ini: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Mencari nomor panggilan lain?\nLihat nomor panggilan pertemuan: {{url}}\n\n\nJika juga melakukan panggilan melalui telepon ruangan, bergabung tanpa menghubungkan ke audio: {{silentUrl}}", + "inviteSipEndpoint": "Untuk bergabung menggunakan alamat SIP, masukkan ini: {{sipUri}}", + "inviteTextiOSInviteUrl": "Klik tautan berikut untuk bergabung: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Jika Anda melakukan panggilan melalui telepon ruangan, gunakan tautan ini untuk bergabung tanpa menghubungkan ke audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} mengundang Anda ke pertemuan.", + "inviteTextiOSPhone": "Untuk bergabung melalui telepon, gunakan nomor ini: {{number}},,{{conferenceID}}#. Jika Anda mencari nomor lain, ini daftar lengkapnya: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Anda diundang untuk bergabung dalam pertemuan.", + "inviteURLFirstPartPersonal": "{{name}} mengundang Anda ke pertemuan.\n", + "inviteURLSecondPart": "\nBergabunglah dalam pertemuan:\n{{url}}\n", + "label": "Info Dial-in", + "liveStreamURL": "Streaming langsung:", + "moreNumbers": "Lebih banyak nomor", + "noNumbers": "Tidak ada nomor dial-in.", + "noPassword": "Tidak ada", + "noRoom": "Tidak ada ruangan yang ditentukan untuk dial-in.", + "noWhiteboard": "Tidak dapat memuat papan tulis.", + "numbers": "Nomor-nomor Dial-in", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Anda telah mencapai batas paket Anda.", + "sip": "Alamat SIP", + "sipAudioOnly": "Alamat audio SIP saja", + "title": "Bagikan", + "tooltip": "Bagikan tautan dan info dial-in untuk pertemuan ini", + "upgradeOptions": "Silakan periksa opsi peningkatan di", + "whiteboardError": "Kesalahan dalam memuat papan tulis. Silakan coba lagi nanti." + }, + "inlineDialogFailure": { + "msg": "Kami sedikit tersandung.", + "retry": "Coba lagi", + "support": "Dukungan", + "supportMsg": "Jika ini terus terjadi, hubungi" + }, + "inviteDialog": { + "alertText": "Gagal mengundang beberapa peserta.", + "header": "Undang", + "searchCallOnlyPlaceholder": "Masukkan nomor telepon", + "searchPeopleOnlyPlaceholder": "Cari peserta", + "searchPlaceholder": "Peserta atau nomor telepon", + "send": "Kirim" + }, + "jitsiHome": "{{logo}} Logo, tautan ke Beranda", + "keyboardShortcuts": { + "focusLocal": "Fokus pada video Anda", + "focusRemote": "Fokus pada video orang lain", + "fullScreen": "Lihat atau keluar dari layar penuh", + "giphyMenu": "Beralih menu GIPHY", + "keyboardShortcuts": "Pintasan keyboard", + "localRecording": "Tampilkan atau sembunyikan kontrol perekaman lokal", + "mute": "Bisukan atau aktifkan mikrofon Anda", + "pushToTalk": "Tekan untuk berbicara", + "raiseHand": "Angkat atau turunkan tangan Anda", + "showSpeakerStats": "Tampilkan statistik partisipan", + "toggleChat": "Buka atau tutup obrolan", + "toggleFilmstrip": "Tampilkan atau sembunyikan thumbnail video", + "toggleParticipantsPane": "Tampilkan atau sembunyikan panel partisipan", + "toggleScreensharing": "Beralih antara berbagi kamera dan layar", + "toggleShortcuts": "Tampilkan atau sembunyikan pintasan keyboard", + "videoMute": "Mulai atau hentikan kamera Anda" + }, + "largeVideo": { + "screenIsShared": "Anda sedang membagikan layar Anda", + "showMeWhatImSharing": "Tunjukkan apa yang saya bagikan" + }, + "liveStreaming": { + "busy": "Kami sedang berupaya untuk membebaskan sumber daya streaming. Silakan coba lagi dalam beberapa menit.", + "busyTitle": "Semua streamer saat ini sibuk", + "changeSignIn": "Ganti akun.", + "choose": "Pilih siaran langsung", + "chooseCTA": "Pilih opsi streaming. Anda saat ini masuk sebagai {{email}}.", + "enterStreamKey": "Masukkan kunci siaran langsung YouTube Anda di sini.", + "error": "Gagal Siaran Langsung. Silakan coba lagi.", + "errorAPI": "Terjadi kesalahan saat mengakses siaran YouTube Anda. Silakan coba masuk lagi.", + "errorLiveStreamNotEnabled": "Siaran Langsung tidak diaktifkan pada {{email}}. Harap aktifkan siaran langsung atau masuk ke akun dengan siaran langsung diaktifkan.", + "expandedOff": "Siaran Langsung telah berhenti", + "expandedOn": "Pertemuan saat ini sedang siaran langsung", + "expandedPending": "Siaran Langsung sedang dimulai…", + "failedToStart": "Gagal memulai Siaran Langsung", + "getStreamKeyManually": "Kami tidak dapat mengambil siaran langsung apa pun. Coba dapatkan kunci siaran langsung Anda dari YouTube.", + "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", + "onBy": "{{name}} memulai siaran langsung", + "pending": "Memulai Live Stream…", + "serviceName": "Layanan Siaran Langsung", + "sessionAlreadyActive": "Sesi ini sudah direkam atau siaran langsung.", + "signIn": "Masuk dengan Google", + "signInCTA": "Masuk atau masukkan kunci siaran langsung Anda dari YouTube.", + "signOut": "Keluar", + "signedInAs": "Anda saat ini masuk sebagai:", + "start": "Mulai siaran langsung", + "streamIdHelp": "Apa ini?", + "title": "Live Stream", + "unavailableTitle": "Siaran Langsung tidak tersedia", + "youtubeTerms": "Ketentuan Layanan YouTube" + }, + "lobby": { + "backToKnockModeButton": "Meminta untuk bergabung", + "chat": "Obrolan", + "dialogTitle": "Mode Lobi", + "disableDialogContent": "Mode Lobi saat ini diaktifkan. Fitur ini memastikan bahwa peserta yang tidak diinginkan tidak dapat bergabung dengan pertemuan Anda. Apakah Anda ingin menonaktifkannya?", + "disableDialogSubmit": "Nonaktifkan", + "emailField": "Masukkan alamat email Anda", + "enableDialogPasswordField": "Atur kata sandi (opsional)", + "enableDialogSubmit": "Aktifkan", + "enableDialogText": "Mode Lobi memungkinkan Anda melindungi pertemuan Anda dengan hanya memungkinkan orang masuk setelah persetujuan formal oleh moderator.", + "enterPasswordButton": "Masukkan kata sandi pertemuan", + "enterPasswordTitle": "Masukkan kata sandi untuk bergabung dengan pertemuan", + "errorMissingPassword": "Harap masukkan kata sandi pertemuan", + "invalidPassword": "Kata sandi tidak valid", + "joinRejectedMessage": "Permintaan bergabung Anda ditolak oleh moderator.", + "joinRejectedTitle": "Permintaan bergabung ditolak.", + "joinTitle": "Bergabung dengan Pertemuan", + "joinWithPasswordMessage": "Mencoba bergabung dengan kata sandi, harap tunggu…", + "joiningMessage": "Anda akan bergabung dengan pertemuan segera setelah seseorang menerima permintaan Anda", + "joiningTitle": "Meminta untuk bergabung dengan pertemuan…", + "joiningWithPasswordTitle": "Bergabung dengan kata sandi…", + "knockButton": "Meminta untuk Bergabung", + "knockTitle": "Seseorang ingin bergabung dengan pertemuan", + "knockingParticipantList": "Daftar peserta yang meminta bergabung", + "lobbyChatStartedNotification": "{{moderator}} memulai obrolan lobi dengan {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} telah memulai obrolan lobi dengan Anda.", + "lobbyClosed": "Ruang lobi telah ditutup.", + "nameField": "Masukkan nama Anda", + "notificationLobbyAccessDenied": "{{targetParticipantName}} telah ditolak untuk bergabung oleh {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} telah diizinkan untuk bergabung oleh {{originParticipantName}}", + "notificationLobbyDisabled": "Lobi telah dinonaktifkan oleh {{originParticipantName}}", + "notificationLobbyEnabled": "Lobi telah diaktifkan oleh {{originParticipantName}}", + "notificationTitle": "Lobi", + "passwordJoinButton": "Gabung", + "title": "Lobi", + "toggleLabel": "Aktifkan lobi" + }, + "localRecording": { + "clientState": { + "off": "Mati", + "on": "Hidup", + "unknown": "Tidak diketahui" + }, + "dialogTitle": "Kontrol Perekaman Lokal", + "duration": "Durasi", + "durationNA": "N/A", + "encoding": "Pengodean", + "label": "Perekaman Lokal", + "labelToolTip": "Perekaman lokal sedang diaktifkan", + "localRecording": "Perekaman Lokal", + "me": "Saya", + "messages": { + "engaged": "Perekaman lokal diaktifkan.", + "finished": "Sesi perekaman {{token}} selesai. Silakan kirim file yang direkam ke moderator.", + "finishedModerator": "Sesi perekaman {{token}} selesai. Perekaman trek lokal telah disimpan. Mohon minta peserta lain untuk mengirimkan perekaman mereka.", + "notModerator": "Anda bukan moderator. Anda tidak dapat memulai atau menghentikan perekaman lokal." + }, + "moderator": "Moderator", + "no": "Tidak", + "participant": "Peserta", + "participantStats": "Statistik Peserta", + "selectTabTitle": "🎥 Silakan pilih tab ini untuk perekaman", + "sessionToken": "Token Sesi", + "start": "Mulai Perekaman", + "stop": "Hentikan Perekaman", + "stopping": "Menghentikan Perekaman", + "wait": "Harap tunggu sementara kami menyimpan rekaman Anda", + "yes": "Ya" + }, + "lockRoomPassword": "kata sandi", + "lockRoomPasswordUppercase": "Kata Sandi", + "lonelyMeetingExperience": { + "button": "Undang orang lain", + "youAreAlone": "Anda satu-satunya di pertemuan ini" + }, + "me": "saya", + "notify": { + "OldElectronAPPTitle": "Kerentanan keamanan!", + "allowAction": "Izinkan", + "allowedUnmute": "Anda dapat mengaktifkan mikrofon Anda, memulai kamera Anda, atau berbagi layar Anda.", + "audioUnmuteBlockedDescription": "Operasi membuka mikrofon sementara diblokir karena batasan sistem.", + "audioUnmuteBlockedTitle": "Pembukaan mikrofon diblokir!", + "chatMessages": "Pesan obrolan", + "connectedOneMember": "{{name}} bergabung dengan pertemuan", + "connectedThreePlusMembers": "{{name}} dan banyak lainnya bergabung dengan pertemuan", + "connectedTwoMembers": "{{first}} dan {{second}} bergabung dengan pertemuan", + "dataChannelClosed": "Kualitas video mungkin terganggu", + "dataChannelClosedDescription": "Saluran jembatan tidak aktif dan karenanya kualitas video mungkin terbatas pada pengaturan terendahnya.", + "dataChannelClosedDescriptionWithAudio": "Saluran jembatan tidak aktif dan karenanya gangguan audio dan video mungkin terjadi.", + "dataChannelClosedWithAudio": "Kualitas audio dan video mungkin terganggu", + "disabledIframe": "Embedding hanya ditujukan untuk tujuan demonstrasi, jadi panggilan ini akan terputus dalam {{timeout}} menit.", + "disabledIframeSecondary": "Embedding {{domain}} hanya ditujukan untuk tujuan demonstrasi, jadi panggilan ini akan terputus dalam {{timeout}} menit. Harap gunakan Jitsi as a Service untuk embedding produksi!", + "disconnected": "terputus", + "displayNotifications": "Tampilkan notifikasi untuk", + "dontRemindMe": "Jangan ingatkan saya", + "focus": "Fokus konferensi", + "focusFail": "{{component}} tidak tersedia - coba lagi dalam {{ms}} detik", + "gifsMenu": "GIPHY", + "groupTitle": "Pemberitahuan", + "hostAskedUnmute": "Moderator ingin Anda berbicara", + "invitedOneMember": "{{name}} telah diundang", + "invitedThreePlusMembers": "{{name}} dan {{count}} lainnya telah diundang", + "invitedTwoMembers": "{{first}} dan {{second}} telah diundang", + "joinMeeting": "Gabung", + "kickParticipant": "{{kicked}} telah dikeluarkan oleh {{kicker}}", + "leftOneMember": "{{name}} meninggalkan pertemuan", + "leftThreePlusMembers": "{{name}} dan banyak lainnya meninggalkan pertemuan", + "leftTwoMembers": "{{first}} dan {{second}} meninggalkan pertemuan", + "linkToSalesforce": "Tautan ke Salesforce", + "linkToSalesforceDescription": "Anda dapat mengaitkan ringkasan pertemuan ke objek Salesforce.", + "linkToSalesforceError": "Gagal mengaitkan pertemuan ke Salesforce", + "linkToSalesforceKey": "Tautkan pertemuan ini", + "linkToSalesforceProgress": "Mengaitkan pertemuan ke Salesforce…", + "linkToSalesforceSuccess": "Pertemuan telah dihubungkan ke Salesforce", + "localRecordingStarted": "{{name}} telah memulai perekaman lokal.", + "localRecordingStopped": "{{name}} telah menghentikan perekaman lokal.", + "me": "Saya", + "moderationInEffectCSDescription": "Silakan angkat tangan jika Anda ingin membagikan layar Anda.", + "moderationInEffectCSTitle": "Berbagi layar diblokir oleh moderator", + "moderationInEffectDescription": "Silakan angkat tangan jika Anda ingin berbicara.", + "moderationInEffectTitle": "Mikrofon Anda dibisukan oleh moderator", + "moderationInEffectVideoDescription": "Silakan angkat tangan jika Anda ingin memulai kamera Anda.", + "moderationInEffectVideoTitle": "Kamera Anda diblokir oleh moderator", + "moderationRequestFromModerator": "Host ingin Anda membuka suara", + "moderationRequestFromParticipant": "Ingin berbicara", + "moderationStartedTitle": "Moderasi dimulai", + "moderationStoppedTitle": "Moderasi dihentikan", + "moderationToggleDescription": "oleh {{participantDisplayName}}", + "moderator": "Anda sekarang menjadi moderator", + "muted": "Anda telah memulai percakapan dalam keadaan dibisukan.", + "mutedRemotelyDescription": "Anda selalu dapat membuka suara saat Anda siap berbicara. Bisukan kembali saat selesai untuk menjaga kebisingan dari pertemuan.", + "mutedRemotelyTitle": "Anda telah dibisukan oleh {{participantDisplayName}}", + "mutedTitle": "Anda dibisukan!", + "newDeviceAction": "Gunakan", + "newDeviceAudioTitle": "Perangkat audio baru terdeteksi", + "newDeviceCameraTitle": "Kamera baru terdeteksi", + "noiseSuppressionDesktopAudioDescription": "Pengurangan kebisingan tidak dapat diaktifkan saat berbagi audio desktop, harap nonaktifkan dan coba lagi.", + "noiseSuppressionFailedTitle": "Gagal memulai pengurangan kebisingan", + "noiseSuppressionStereoDescription": "Pengurangan kebisingan audio stereo saat ini tidak didukung.", + "oldElectronClientDescription1": "Anda sepertinya menggunakan versi lama dari klien Jitsi Meet yang memiliki kerentanan keamanan yang diketahui. Pastikan Anda memperbarui ke ", + "oldElectronClientDescription2": "build terbaru", + "oldElectronClientDescription3": " sekarang!", + "participantWantsToJoin": "Ingin bergabung dengan pertemuan", + "participantsWantToJoin": "Ingin bergabung dengan pertemuan", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) dihapus oleh peserta lain", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) diatur oleh peserta lain", + "raiseHandAction": "Angkat tangan", + "raisedHand": "Ingin berbicara.", + "raisedHands": "{{participantName}} dan {{raisedHands}} orang lain", + "reactionSounds": "Nonaktifkan suara", + "reactionSoundsForAll": "Nonaktifkan suara untuk semua", + "screenShareNoAudio": "Kotak berbagi audio tidak dicentang di layar pemilihan.", + "screenShareNoAudioTitle": "Tidak dapat berbagi audio sistem!", + "screenSharingAudioOnlyDescription": "Harap dicatat bahwa dengan membagikan layar Anda, Anda memengaruhi mode \"Kinerja terbaik\" dan Anda akan menggunakan lebih banyak bandwidth.", + "screenSharingAudioOnlyTitle": "Mode \"Kinerja terbaik\"", + "selfViewTitle": "Anda selalu dapat menampilkan kembali tampilan diri dari pengaturan", + "somebody": "Seseorang", + "startSilentDescription": "Gabung kembali dengan pertemuan untuk mengaktifkan audio", + "startSilentTitle": "Anda bergabung tanpa output audio!", + "suboptimalBrowserWarning": "Kami khawatir pengalaman pertemuan Anda tidak akan begitu bagus di sini. Kami mencari cara untuk memperbaiki ini, tetapi sampai saat itu silakan coba menggunakan salah satu browser yang didukung sepenuhnya.", + "suboptimalExperienceTitle": "Peringatan Browser", + "suggestRecordingAction": "Mulai", + "suggestRecordingDescription": "Apakah Anda ingin memulai perekaman?", + "suggestRecordingTitle": "Rekam pertemuan ini", + "unmute": "Hidupkan suara", + "videoMutedRemotelyDescription": "Anda selalu dapat menghidupkannya kembali.", + "videoMutedRemotelyTitle": "Video Anda telah dimatikan oleh {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Operasi membuka kamera dan berbagi desktop sementara diblokir karena batasan sistem.", + "videoUnmuteBlockedTitle": "Pembukaan kamera dan berbagi desktop diblokir!", + "viewLobby": "Tampilkan lobi", + "viewVisitors": "Tampilkan pengunjung", + "waitingParticipants": "{{waitingParticipants}} orang", + "whiteboardLimitDescription": "Simpan progress Anda, karena batas pengguna akan segera tercapai dan papan tulis akan ditutup.", + "whiteboardLimitTitle": "Penggunaan papan tulis" + }, + "participantsPane": { + "actions": { + "admit": "Menerima", + "admitAll": "Terima semua", + "allow": "Izinkan peserta untuk:", + "allowVideo": "Izinkan video", + "askUnmute": "Minta untuk unmute", + "audioModeration": "Unmute sendiri", + "blockEveryoneMicCamera": "Blokir mic dan kamera semua orang", + "breakoutRooms": "Ruangan breakout", + "invite": "Undang Seseorang", + "moreModerationActions": "Opsi moderasi lebih lanjut", + "moreModerationControls": "Kontrol moderasi lebih lanjut", + "moreParticipantOptions": "Opsi peserta lebih lanjut", + "mute": "Bisukan", + "muteAll": "Bisukan semua", + "muteEveryoneElse": "Bisukan semua orang lain", + "reject": "Tolak", + "stopEveryonesVideo": "Hentikan video semua orang", + "stopVideo": "Hentikan video", + "unblockEveryoneMicCamera": "Buka blokir mic dan kamera semua orang", + "videoModeration": "Mulai video mereka" + }, + "close": "Tutup", + "headings": { + "lobby": "Lobi ({{count}})", + "participantsList": "Peserta pertemuan ({{count}})", + "visitorRequests": " (permintaan {{count}})", + "visitors": "Pengunjung {{count}}", + "waitingLobby": "Menunggu di lobi ({{count}})" + }, + "search": "Cari peserta", + "title": "Peserta" + }, + "passwordDigitsOnly": "Hingga {{number}} digit", + "passwordSetRemotely": "Diatur oleh peserta lain", + "pinParticipant": "{{participantName}} - Pin", + "pinnedParticipant": "Peserta yang di-pin", + "polls": { + "answer": { + "edit": "Edit", + "send": "Kirim", + "skip": "Lewati", + "submit": "Kirim" + }, + "by": "Oleh {{ name }}", + "create": { + "addOption": "Tambahkan opsi", + "answerPlaceholder": "Opsi {{index}}", + "cancel": "Batal", + "create": "Buat jajak pendapat", + "pollOption": "Opsi jajak pendapat {{index}}", + "pollQuestion": "Pertanyaan jajak pendapat", + "questionPlaceholder": "Ajukan pertanyaan", + "removeOption": "Hapus opsi", + "save": "Simpan", + "send": "Kirim" + }, + "errors": { + "notUniqueOption": "Opsi harus unik" + }, + "notification": { + "description": "Buka tab jajak pendapat untuk memberikan suara", + "title": "Polling baru ditambahkan ke pertemuan ini" + }, + "results": { + "changeVote": "Ubah suara", + "empty": "Tidak ada jajak pendapat dalam pertemuan ini. Mulai jajak pendapat di sini!", + "hideDetailedResults": "Sembunyikan detail", + "showDetailedResults": "Tampilkan detail", + "vote": "Suara" + } + }, + "poweredby": "dipersembahkan oleh", + "prejoin": { + "audioAndVideoError": "Kesalahan audio dan video:", + "audioDeviceProblem": "Ada masalah dengan perangkat audio Anda", + "audioOnlyError": "Kesalahan audio:", + "audioTrackError": "Tidak bisa membuat trek audio.", + "callMe": "Hubungi saya", + "callMeAtNumber": "Hubungi saya di nomor ini:", + "calling": "Menelepon", + "configuringDevices": "Mengkonfigurasi perangkat…", + "connectedWithAudioQ": "Anda terhubung dengan audio?", + "connection": { + "good": "Koneksi internet Anda terlihat baik!", + "nonOptimal": "Koneksi internet Anda tidak optimal", + "poor": "Anda memiliki koneksi internet yang buruk" + }, + "connectionDetails": { + "audioClipping": "Kami mengharapkan audio Anda dipotong.", + "audioHighQuality": "Kami mengharapkan audio Anda memiliki kualitas yang sangat baik.", + "audioLowNoVideo": "Kami mengharapkan kualitas audio Anda rendah dan tidak ada video.", + "goodQuality": "Hebat! Kualitas media Anda akan sangat baik.", + "noMediaConnectivity": "Kami tidak dapat menemukan cara untuk menetapkan konektivitas media untuk tes ini. Ini biasanya disebabkan oleh firewall atau NAT.", + "noVideo": "Kami mengharapkan bahwa video Anda akan buruk.", + "undetectable": "Jika Anda masih tidak dapat melakukan panggilan di browser, kami sarankan Anda memastikan speaker, mikrofon, dan kamera Anda sudah diatur dengan benar, bahwa Anda telah memberikan izin browser Anda untuk menggunakan mikrofon dan kamera, dan bahwa versi browser Anda terbaru. Jika Anda masih mengalami masalah saat menelepon, Anda harus menghubungi pengembang aplikasi web.", + "veryPoorConnection": "Kami mengharapkan kualitas panggilan Anda benar-benar buruk.", + "videoFreezing": "Kami mengharapkan bahwa video Anda akan membeku, menjadi hitam, dan berpixel.", + "videoHighQuality": "Kami mengharapkan video Anda memiliki kualitas yang baik.", + "videoLowQuality": "Kami mengharapkan bahwa video Anda akan memiliki kualitas rendah dalam hal frame rate dan resolusi.", + "videoTearing": "Kami mengharapkan bahwa video Anda akan berpixel atau memiliki artefak visual." + }, + "copyAndShare": "Salin & bagikan tautan pertemuan", + "dialInMeeting": "Dial ke pertemuan", + "dialInPin": "Dial ke pertemuan dan masukkan kode PIN:", + "dialing": "Menghubungi", + "doNotShow": "Jangan tampilkan layar ini lagi", + "errorDialOut": "Tidak bisa melakukan panggilan keluar", + "errorDialOutDisconnected": "Tidak bisa melakukan panggilan keluar. Terputus", + "errorDialOutFailed": "Tidak bisa melakukan panggilan keluar. Panggilan gagal", + "errorDialOutStatus": "Error mendapatkan status panggilan keluar", + "errorMissingName": "Silakan masukkan nama Anda untuk bergabung dengan pertemuan", + "errorNoPermissions": "Anda perlu mengaktifkan akses mikrofon dan kamera", + "errorStatusCode": "Error saat menelepon keluar, kode status: {{status}}", + "errorValidation": "Validasi nomor gagal", + "iWantToDialIn": "Saya ingin menelepon", + "initiated": "Panggilan diinisialisasi", + "joinAudioByPhone": "Bergabung dengan audio telepon", + "joinMeeting": "Gabung pertemuan", + "joinMeetingInLowBandwidthMode": "Bergabung dalam mode bandwidth rendah", + "joinWithoutAudio": "Bergabung tanpa audio", + "keyboardShortcuts": "Aktifkan Pintasan Keyboard", + "linkCopied": "Tautan disalin ke papan klip", + "lookGood": "Semuanya berfungsi dengan baik", + "or": "atau", + "premeeting": "Pra-pertemuan", + "proceedAnyway": "Lanjutkan saja", + "recordingWarning": "Peserta lain mungkin sedang merekam panggilan ini", + "screenSharingError": "Kesalahan berbagi layar:", + "startWithPhone": "Mulai dengan audio ponsel", + "unsafeRoomConsent": "Saya memahami risikonya, saya ingin bergabung dengan pertemuan", + "videoOnlyError": "Kesalahan video:", + "videoTrackError": "Tidak bisa membuat trek video.", + "viewAllNumbers": "lihat semua nomor" + }, + "presenceStatus": { + "busy": "Sibuk", + "calling": "Menelepon…", + "connected": "Terhubung", + "connecting": "Menghubungkan…", + "connecting2": "Menghubungkan*…", + "disconnected": "Terputus", + "expired": "Kedaluwarsa", + "ignored": "Diabaikan", + "initializingCall": "Memulai Panggilan…", + "invited": "Diundang", + "rejected": "Ditolak", + "ringing": "Berdering…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Nama", + "setEmailInput": "Masukkan email", + "setEmailLabel": "Email Gravatar", + "title": "Profil" + }, + "raisedHand": "Ingin berbicara", + "raisedHandsLabel": "Jumlah tangan yang diangkat", + "record": { + "already": { + "linked": "Pertemuan sudah terhubung ke objek Salesforce ini." + }, + "type": { + "account": "Akun", + "contact": "Kontak", + "lead": "Lead", + "opportunity": "Peluang", + "owner": "Pemilik" + } + }, + "recording": { + "authDropboxText": "Unggah ke Dropbox", + "availableSpace": "Ruang yang tersedia: {{spaceLeft}} MB (sekitar {{duration}} menit rekaman)", + "beta": "BETA", + "busy": "Kami sedang berupaya membebaskan sumber daya rekaman. Harap coba lagi dalam beberapa menit.", + "busyTitle": "Semua rekorder sedang sibuk saat ini", + "copyLink": "Salin Tautan", + "error": "Rekaman gagal. Harap coba lagi.", + "errorFetchingLink": "Gagal mengambil tautan rekaman.", + "expandedOff": "Rekaman telah berhenti", + "expandedOn": "Pertemuan saat ini sedang direkam", + "expandedPending": "Rekaman sedang dimulai…", + "failedToStart": "Gagal memulai rekaman", + "fileSharingdescription": "Bagikan tautan rekaman dengan peserta pertemuan", + "highlight": "Sorot", + "highlightMoment": "Sorot momen", + "highlightMomentDisabled": "Anda dapat menyorot momen ketika rekaman dimulai", + "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", + "localRecordingStartWarning": "Pastikan Anda menghentikan rekaman sebelum keluar dari pertemuan untuk menyimpannya.", + "localRecordingStartWarningTitle": "Hentikan rekaman untuk menyimpannya", + "localRecordingVideoStop": "Menghentikan video Anda juga akan menghentikan rekaman lokal. Apakah Anda yakin ingin melanjutkan?", + "localRecordingVideoWarning": "Untuk merekam video Anda, Anda harus mengaktifkannya saat memulai rekaman", + "localRecordingWarning": "Pastikan Anda memilih tab saat ini untuk menggunakan video dan audio yang tepat.", + "loggedIn": "Masuk sebagai {{userName}}", + "noMicPermission": "Trek mikrofon tidak dapat dibuat. Harap izinkan penggunaan mikrofon.", + "noStreams": "Tidak ada aliran audio atau video yang terdeteksi.", + "off": "Rekaman berhenti", + "offBy": "{{name}} menghentikan rekaman", + "on": "Rekaman dimulai", + "onBy": "{{name}} memulai rekaman", + "onlyRecordSelf": "Rekam hanya aliran audio dan video saya", + "pending": "Persiapan untuk merekam pertemuan…", + "recordAudioAndVideo": "Rekam audio dan video", + "recordTranscription": "Rekam transkripsi", + "saveLocalRecording": "Simpan file rekaman secara lokal (Beta)", + "serviceDescription": "Rekaman Anda akan disimpan oleh layanan rekaman", + "serviceDescriptionCloud": "Rekaman cloud", + "serviceDescriptionCloudInfo": "Pertemuan yang direkam secara otomatis dihapus 24 jam setelah waktu rekaman mereka.", + "serviceName": "Layanan rekaman", + "sessionAlreadyActive": "Sesi ini sudah direkam atau disiarkan langsung.", + "showAdvancedOptions": "Opsi Lanjutan", + "signIn": "Masuk", + "signOut": "Keluar", + "surfaceError": "Harap pilih tab saat ini.", + "title": "Rekaman", + "unavailable": "Ups! {{serviceName}} saat ini tidak tersedia. Kami sedang berupaya menyelesaikan masalah ini. Harap coba lagi nanti.", + "unavailableTitle": "Rekaman tidak tersedia", + "uploadToCloud": "Unggah ke cloud" + }, + "screenshareDisplayName": "Layar {{name}}", + "sectionList": { + "pullToRefresh": "Tarik untuk menyegarkan" + }, + "security": { + "about": "Anda dapat menambahkan {{lockRoomPassword}} ke pertemuan Anda. Peserta perlu memberikan {{lockRoomPassword}} sebelum mereka diizinkan bergabung dengan pertemuan.", + "aboutReadOnly": "Peserta moderator dapat menambahkan {{lockRoomPassword}} ke pertemuan. Peserta perlu memberikan {{lockRoomPassword}} sebelum mereka diizinkan bergabung dengan pertemuan.", + "insecureRoomNameWarningNative": "Nama ruangan tidak aman. Peserta yang tidak diinginkan dapat bergabung dengan pertemuan Anda. {{recommendAction}} Pelajari lebih lanjut tentang mengamankan pertemuan Anda", + "insecureRoomNameWarningWeb": "Nama ruangan tidak aman. Peserta yang tidak diinginkan dapat bergabung dengan pertemuan Anda. {{recommendAction}} Pelajari lebih lanjut tentang mengamankan pertemuan Anda di sini.", + "title": "Opsi Keamanan", + "unsafeRoomActions": { + "meeting": "Pertimbangkan untuk mengamankan pertemuan Anda menggunakan tombol keamanan.", + "prejoin": "Pertimbangkan untuk menggunakan nama pertemuan yang lebih unik.", + "welcome": "Pertimbangkan untuk menggunakan nama pertemuan yang lebih unik, atau pilih salah satu dari saran tersebut." + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Pengaturan", + "calendar": { + "about": "Integrasi kalender {{appName}} digunakan untuk mengakses kalender Anda secara aman sehingga dapat membaca acara mendatang.", + "disconnect": "Putuskan", + "microsoftSignIn": "Masuk dengan Microsoft", + "signedIn": "Saat ini mengakses acara kalender untuk {{email}}. Klik tombol Putuskan di bawah ini untuk menghentikan akses acara kalender.", + "title": "Kalender" + }, + "desktopShareFramerate": "Frame rate pembagian layar desktop", + "desktopShareHighFpsWarning": "Frame rate yang lebih tinggi untuk pembagian layar desktop mungkin memengaruhi bandwidth Anda. Anda perlu memulai ulang pembagian layar untuk pengaturan baru berlaku.", + "desktopShareWarning": "Anda perlu memulai ulang pembagian layar untuk pengaturan baru berlaku.", + "devices": "Perangkat", + "followMe": "Semua mengikuti saya", + "framesPerSecond": "frame per detik", + "incomingMessage": "Pesan masuk", + "language": "Bahasa", + "loggedIn": "Masuk sebagai {{name}}", + "maxStageParticipants": "Jumlah maksimum peserta yang dapat ditampilkan di panggung utama", + "microphones": "Mikrofon", + "moderator": "Moderator", + "moderatorOptions": "Opsi moderator", + "more": "Umum", + "name": "Nama", + "noDevice": "Tidak ada", + "notifications": "Notifikasi", + "participantJoined": "Peserta Bergabung", + "participantKnocking": "Peserta masuk ke lobi", + "participantLeft": "Peserta Meninggalkan", + "playSounds": "Mainkan suara pada", + "reactions": "Reaksi pertemuan", + "sameAsSystem": "Sama dengan sistem ({{label}})", + "selectAudioOutput": "Output audio", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Tampilan diri", + "shortcuts": "Pintasan", + "speakers": "Pemutar suara", + "startAudioMuted": "Semua dimulai dalam keadaan dibisukan", + "startReactionsMuted": "Bisukan suara reaksi untuk semua orang", + "startVideoMuted": "Semua dimulai tersembunyi", + "talkWhileMuted": "Bicara saat dibisukan", + "title": "Pengaturan", + "video": "Video" + }, + "settingsView": { + "advanced": "Lanjutan", + "alertCancel": "Batal", + "alertOk": "OK", + "alertTitle": "Peringatan", + "alertURLText": "URL server yang dimasukkan tidak valid", + "apply": "Terapkan", + "buildInfoSection": "Informasi Build", + "conferenceSection": "Konferensi", + "disableCallIntegration": "Nonaktifkan integrasi panggilan asli", + "disableCrashReporting": "Nonaktifkan pelaporan kegagalan", + "disableCrashReportingWarning": "Apakah Anda yakin ingin menonaktifkan pelaporan kegagalan? Pengaturan ini akan diterapkan setelah Anda me-restart aplikasi.", + "disableP2P": "Nonaktifkan mode Peer-To-Peer", + "displayName": "Nama Tampilan", + "displayNamePlaceholderText": "Contoh: John Doe", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "Jika email Anda terkait dengan akun Gravatar, kami akan menggunakannya untuk menampilkan gambar profil Anda.", + "goTo": "Buka", + "header": "Pengaturan", + "help": "Bantuan", + "links": "Tautan", + "privacy": "Privasi", + "profileSection": "Profil", + "sdkVersion": "Versi SDK", + "serverURL": "URL Server", + "showAdvanced": "Tampilkan pengaturan lanjutan", + "startCarModeInLowBandwidthMode": "Mulai mode mobil dalam mode bandwidth rendah", + "startWithAudioMuted": "Mulai dengan audio dibisukan", + "startWithVideoMuted": "Mulai dengan video dibisukan", + "terms": "Syarat", + "version": "Versi Aplikasi" + }, + "share": { + "dialInfoText": "\n\n=====\n\nHanya ingin menelepon menggunakan telepon Anda?\n\n{{defaultDialInNumber}}Klik tautan ini untuk melihat nomor telepon untuk panggilan di pertemuan ini\n{{dialInfoPageUrl}}", + "mainText": "Klik tautan berikut untuk bergabung dengan pertemuan:\n{{roomUrl}}" + }, + "speaker": "Pembicara", + "speakerStats": { + "angry": "Marah", + "disgusted": "Jijik", + "displayEmotions": "Tampilkan emosi", + "fearful": "Takut", + "happy": "Senang", + "hours": "{{count}}jam", + "minutes": "{{count}}menit", + "name": "Nama", + "neutral": "Netral", + "sad": "Sedih", + "search": "Cari", + "searchHint": "Cari peserta", + "seconds": "{{count}}detik", + "speakerStats": "Statistik Peserta", + "speakerTime": "Waktu Pembicara", + "surprised": "Terkejut" + }, + "startupoverlay": { + "genericTitle": "Pertemuan perlu menggunakan mikrofon dan kamera Anda.", + "policyText": " ", + "title": "{{app}} perlu menggunakan mikrofon dan kamera Anda." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Gabung Kembali", + "text": "Tekan tombol Gabung Kembali untuk menyambungkan kembali.", + "title": "Panggilan video Anda terputus karena komputer ini masuk ke mode tidur." + }, + "termsView": { + "title": "Syarat" + }, + "toggleTopPanelLabel": "Alihkan panel atas", + "toolbar": { + "Settings": "Pengaturan", + "accessibilityLabel": { + "Settings": "Buka pengaturan", + "audioOnly": "Alihkan ke audio saja", + "audioRoute": "Pilih perangkat suara", + "boo": "Ba", + "breakoutRooms": "Ruang breakout", + "callQuality": "Kelola kualitas video", + "carmode": "Mode Mobil", + "cc": "Alihkan subtitle", + "chat": "Buka / Tutup obrolan", + "clap": "Tepuk tangan", + "closeChat": "Tutup obrolan", + "closeMoreActions": "Tutup menu tindakan lebih lanjut", + "closeParticipantsPane": "Tutup panel peserta", + "collapse": "Lipat", + "document": "Alihkan dokumen bersama", + "documentClose": "Tutup dokumen bersama", + "documentOpen": "Buka dokumen bersama", + "download": "Unduh aplikasi kami", + "embedMeeting": "Sematkan pertemuan", + "endConference": "Akhiri pertemuan untuk semua", + "enterFullScreen": "Lihat layar penuh", + "enterTileView": "Masuk ke tampilan ubin", + "exitFullScreen": "Keluar dari layar penuh", + "exitTileView": "Keluar dari tampilan ubin", + "expand": "Perluas", + "feedback": "Tinggalkan umpan balik", + "fullScreen": "Alihkan layar penuh", + "giphy": "Alihkan menu GIPHY", + "grantModerator": "Berikan Hak Moderator", + "hangup": "Tinggalkan pertemuan", + "heading": "Toolbar", + "help": "Bantuan", + "hideWhiteboard": "Sembunyikan papan tulis", + "invite": "Undang orang", + "kick": "Keluarkan peserta", + "laugh": "Tertawa", + "leaveConference": "Tinggalkan pertemuan", + "like": "Tanda Suka", + "linkToSalesforce": "Tautkan ke Salesforce", + "lobbyButton": "Aktifkan/nonaktifkan mode lobi", + "localRecording": "Alihkan kontrol rekaman lokal", + "lockRoom": "Alihkan kata sandi pertemuan", + "lowerHand": "Turunkan tangan Anda", + "moreActions": "Tindakan lebih lanjut", + "moreActionsMenu": "Menu tindakan lebih lanjut", + "moreOptions": "Tampilkan lebih banyak opsi", + "mute": "Bisukan mikrofon", + "muteEveryone": "Bisukan semua orang", + "muteEveryoneElse": "Bisukan semua orang lain", + "muteEveryoneElsesVideoStream": "Hentikan video semua orang lain", + "muteEveryonesVideoStream": "Hentikan video semua orang", + "muteGUMPending": "Menghubungkan mikrofon Anda", + "noiseSuppression": "Pencegahan noise", + "openChat": "Buka obrolan", + "participants": "Buka panel peserta", + "pip": "Alihkan ke mode Picture-in-Picture", + "privateMessage": "Kirim pesan pribadi", + "profile": "Edit profil Anda", + "raiseHand": "Angkat tangan Anda", + "reactions": "Reaksi", + "reactionsMenu": "Menu reaksi", + "recording": "Alihkan rekaman", + "remoteMute": "Bisukan peserta", + "remoteVideoMute": "Nonaktifkan kamera peserta", + "security": "Opsi keamanan", + "selectBackground": "Pilih Latar Belakang", + "selfView": "Alihkan tampilan diri", + "shareRoom": "Undang seseorang", + "shareYourScreen": "Mulai membagikan layar Anda", + "shareaudio": "Bagikan audio", + "sharedvideo": "Bagikan video", + "shortcuts": "Alihkan pintasan", + "show": "Tampilkan di panggung", + "showWhiteboard": "Tampilkan papan tulis", + "silence": "Diam", + "speakerStats": "Statistik Peserta", + "stopScreenSharing": "Hentikan membagikan layar Anda", + "stopSharedVideo": "Hentikan video", + "surprised": "Terkejut", + "tileView": "Alihkan tampilan ubin", + "toggleCamera": "Alihkan kamera", + "toggleFilmstrip": "Alihkan filmstrip", + "unmute": "Hidupkan mikrofon", + "videoblur": "Alihkan blur video", + "videomute": "Hentikan kamera", + "videomuteGUMPending": "Menghubungkan kamera Anda", + "videounmute": "Hidupkan kamera" + }, + "addPeople": "Tambahkan orang ke panggilan Anda", + "audioOnlyOff": "Nonaktifkan mode bandwidth rendah", + "audioOnlyOn": "Aktifkan mode bandwidth rendah", + "audioRoute": "Pilih perangkat suara", + "audioSettings": "Pengaturan Audio", + "authenticate": "Autentikasi", + "boo": "Ba", + "callQuality": "Kelola kualitas video", + "chat": "Buka / Tutup obrolan", + "clap": "Tepuk tangan", + "closeChat": "Tutup obrolan", + "closeParticipantsPane": "Tutup panel peserta", + "disableNoiseSuppression": "Nonaktifkan pencegahan noise", + "disableReactionSounds": "Anda dapat menonaktifkan suara reaksi untuk pertemuan ini", + "documentClose": "Tutup dokumen bersama", + "documentOpen": "Buka dokumen bersama", + "download": "Unduh aplikasi kami", + "e2ee": "Enkripsi End-to-End", + "embedMeeting": "Sematkan pertemuan", + "enableNoiseSuppression": "Aktifkan pencegahan noise", + "endConference": "Akhiri pertemuan untuk semua", + "enterFullScreen": "Lihat layar penuh", + "enterTileView": "Masuk ke tampilan ubin", + "exitFullScreen": "Keluar dari layar penuh", + "exitTileView": "Keluar dari tampilan ubin", + "feedback": "Tinggalkan umpan balik", + "giphy": "Alihkan menu GIPHY", + "hangup": "Tinggalkan pertemuan", + "help": "Bantuan", + "hideWhiteboard": "Sembunyikan papan tulis", + "invite": "Undang orang", + "joinBreakoutRoom": "Gabung dengan ruang pemisahan", + "laugh": "Tertawa", + "leaveBreakoutRoom": "Tinggalkan ruang pemisahan", + "leaveConference": "Tinggalkan pertemuan", + "like": "Tanda Suka", + "linkToSalesforce": "Tautkan ke Salesforce", + "lobbyButtonDisable": "Nonaktifkan mode lobi", + "lobbyButtonEnable": "Aktifkan mode lobi", + "login": "Masuk", + "logout": "Keluar", + "lowerYourHand": "Turunkan tangan Anda", + "moreActions": "Tindakan lebih lanjut", + "moreOptions": "Tampilkan lebih banyak opsi", + "mute": "Bisukan mikrofon", + "muteEveryone": "Bisukan semua orang", + "muteEveryonesVideo": "Nonaktifkan kamera semua orang", + "muteGUMPending": "Menghubungkan mikrofon Anda", + "noAudioSignalDesc": "Jika Anda tidak sengaja mematikannya dari pengaturan sistem atau perangkat keras, pertimbangkan untuk beralih perangkat.", + "noAudioSignalDescSuggestion": "Jika Anda tidak sengaja mematikannya dari pengaturan sistem atau perangkat keras, pertimbangkan untuk beralih ke perangkat yang disarankan.", + "noAudioSignalDialInDesc": "Anda juga dapat menelepon menggunakan:", + "noAudioSignalDialInLinkDesc": "Nomor telepon panggilan", + "noAudioSignalTitle": "Tidak ada masukan yang datang dari mikrofon Anda!", + "noiseSuppression": "Pencegahan noise", + "noisyAudioInputDesc": "Sepertinya mikrofon Anda membuat suara bising, pertimbangkan untuk mematikan atau mengganti perangkat.", + "noisyAudioInputTitle": "Mikrofon Anda tampaknya berisik!", + "openChat": "Buka obrolan", + "openReactionsMenu": "Buka menu reaksi", + "participants": "Peserta", + "pip": "Masuk ke mode Picture-in-Picture", + "privateMessage": "Kirim pesan pribadi", + "profile": "Edit profil Anda", + "raiseHand": "Angkat tangan Anda", + "raiseYourHand": "Angkat tangan Anda", + "reactionBoo": "Kirim reaksi ba", + "reactionClap": "Kirim reaksi tepuk tangan", + "reactionLaugh": "Kirim reaksi tertawa", + "reactionLike": "Kirim reaksi jempol ke atas", + "reactionSilence": "Kirim reaksi diam", + "reactionSurprised": "Kirim reaksi terkejut", + "reactions": "Reaksi", + "security": "Opsi keamanan", + "selectBackground": "Pilih latar belakang", + "shareRoom": "Undang seseorang", + "shareaudio": "Bagikan audio", + "sharedvideo": "Bagikan video", + "shortcuts": "Lihat pintasan", + "show": "Tampilkan di panggung", + "showWhiteboard": "Tampilkan papan tulis", + "silence": "Diam", + "speakerStats": "Statistik Peserta", + "startScreenSharing": "Mulai membagikan layar", + "startSubtitles": "Subtitle • {{language}}", + "stopAudioSharing": "Hentikan berbagi audio", + "stopScreenSharing": "Hentikan membagikan layar", + "stopSharedVideo": "Hentikan video", + "stopSubtitles": "Hentikan subtitle", + "surprised": "Terkejut", + "talkWhileMutedPopup": "Mencoba berbicara? Anda dibisukan.", + "tileViewToggle": "Alihkan tampilan ubin", + "toggleCamera": "Alihkan kamera", + "unmute": "Hidupkan mikrofon", + "videoSettings": "Pengaturan Video", + "videomute": "Hentikan kamera", + "videomuteGUMPending": "Menghubungkan kamera Anda", + "videounmute": "Hidupkan kamera" + }, + "transcribing": { + "ccButtonTooltip": "Mulai / Berhenti menampilkan subtitle", + "expandedLabel": "Transkripsi sedang aktif", + "failedToStart": "Transkripsi gagal dimulai", + "labelToolTip": "Pertemuan sedang ditranskripsi", + "sourceLanguageDesc": "Saat ini bahasa pertemuan diatur ke {{sourceLanguage}}.
Anda dapat mengubahnya dari ", + "sourceLanguageHere": "di sini", + "start": "Mulai menampilkan subtitle", + "stop": "Berhenti menampilkan subtitle", + "subtitles": "Subtitle", + "subtitlesOff": "Matikan", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Lepas pin", + "userMedia": { + "grantPermissions": "Harap berikan izin untuk menggunakan kamera dan mikrofon Anda." + }, + "videoSIPGW": { + "busy": "Kami sedang berupaya membebaskan sumber daya. Silakan coba lagi dalam beberapa menit.", + "busyTitle": "Layanan Ruang sedang sibuk", + "errorAlreadyInvited": "{{displayName}} sudah diundang", + "errorInvite": "Konferensi belum dibentuk. Silakan coba lagi nanti.", + "errorInviteFailed": "Kami sedang berupaya menyelesaikan masalah ini. Silakan coba lagi nanti.", + "errorInviteFailedTitle": "Undangan {{displayName}} gagal", + "errorInviteTitle": "Kesalahan mengundang ruang", + "pending": "{{displayName}} telah diundang" + }, + "videoStatus": { + "adjustFor": "Sesuaikan untuk:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Anda berada dalam mode bandwidth rendah. Dalam mode ini, Anda hanya akan menerima audio dan berbagi layar.", + "bestPerformance": "Kinerja terbaik", + "callQuality": "Kualitas Video (0 untuk kinerja terbaik, 3 untuk kualitas tertinggi)", + "hd": "HD", + "hdTooltip": "Menonton video definisi tinggi", + "highDefinition": "Definisi tinggi", + "highestQuality": "Kualitas tertinggi", + "labelTooiltipNoVideo": "Tidak ada video", + "labelTooltipAudioOnly": "Mode bandwidth rendah diaktifkan", + "ld": "LD", + "ldTooltip": "Menonton video definisi rendah", + "lowDefinition": "Definisi rendah", + "performanceSettings": "Pengaturan kinerja", + "recording": "Perekaman sedang berlangsung", + "sd": "SD", + "sdTooltip": "Menonton video definisi standar", + "standardDefinition": "Definisi standar", + "streaming": "Streaming sedang berlangsung" + }, + "videothumbnail": { + "connectionInfo": "Info Koneksi", + "demote": "Pindah ke pengunjung", + "domute": "Bisukan", + "domuteOthers": "Bisukan semua orang lain", + "domuteVideo": "Nonaktifkan kamera", + "domuteVideoOfOthers": "Nonaktifkan kamera semua orang lain", + "flip": "Putar", + "grantModerator": "Berikan Hak Moderator", + "hideSelfView": "Sembunyikan tampilan diri", + "kick": "Keluarkan", + "mirrorVideo": "Cerminkan video saya", + "moderator": "Moderator", + "mute": "Peserta dibisukan", + "muted": "Dibisukan", + "pinToStage": "Pasang ke panggung", + "remoteControl": "Mulai / Berhenti kontrol jarak jauh", + "screenSharing": "Peserta sedang berbagi layar mereka", + "show": "Tampilkan di panggung", + "showSelfView": "Tampilkan tampilan diri", + "unpinFromStage": "Lepas penjepitan", + "verify": "Verifikasi peserta", + "videoMuted": "Kamera dinonaktifkan", + "videomute": "Peserta telah menghentikan kamera" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Latar belakang saat ini: {{background}}", + "selectBackground": "Pilih latar belakang" + }, + "addBackground": "Tambahkan latar belakang", + "apply": "Terapkan", + "backgroundEffectError": "Gagal menerapkan efek latar belakang.", + "blur": "Buram", + "deleteImage": "Hapus gambar", + "desktopShare": "Berbagi desktop", + "desktopShareError": "Tidak dapat membuat berbagi desktop", + "image1": "Pantai", + "image2": "Dinding netral putih", + "image3": "Kamar kosong putih", + "image4": "Lampu lantai hitam", + "image5": "Gunung", + "image6": "Hutan", + "image7": "Matahari terbit", + "none": "Tidak ada", + "pleaseWait": "Silakan tunggu…", + "removeBackground": "Hapus latar belakang", + "slightBlur": "Setengah buram", + "title": "Latar belakang virtual", + "uploadedImage": "Gambar yang diunggah {{index}}", + "webAssemblyWarning": "WebAssembly tidak didukung", + "webAssemblyWarningDescription": "WebAssembly dinonaktifkan atau tidak didukung oleh browser ini" + }, + "visitors": { + "chatIndicator": "(pengunjung)", + "labelTooltip": "Jumlah pengunjung: {{count}}", + "notification": { + "demoteDescription": "Dikirim ke sini oleh {{actor}}, angkat tangan Anda untuk berpartisipasi", + "description": "Untuk berpartisipasi angkat tangan Anda", + "noMainParticipantsDescription": "Seorang peserta perlu memulai pertemuan. Silakan coba lagi nanti.", + "noMainParticipantsTitle": "Pertemuan ini belum dimulai.", + "noVisitorLobby": "Anda tidak dapat bergabung saat ada lobi yang diaktifkan untuk pertemuan.", + "notAllowedPromotion": "Seorang peserta perlu mengizinkan permintaan Anda terlebih dahulu.", + "title": "Anda adalah pengunjung dalam pertemuan" + } + }, + "volumeSlider": "Penggeser volume", + "welcomepage": { + "accessibilityLabel": { + "join": "Ketuk untuk bergabung", + "roomname": "Masukkan nama ruang" + }, + "addMeetingName": "Tambahkan nama pertemuan", + "appDescription": "Lanjutkan, video chat dengan seluruh tim. Bahkan, undang semua orang yang Anda kenal. {{app}} adalah solusi konferensi video yang sepenuhnya terenkripsi, 100% open source yang dapat Anda gunakan sepanjang hari, setiap hari, secara gratis — tanpa perlu akun.", + "audioVideoSwitch": { + "audio": "Suara", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Hubungkan kalender Anda", + "connectCalendarText": "Hubungkan kalender Anda untuk melihat semua pertemuan Anda di {{app}}. Plus, tambahkan pertemuan {{provider}} ke kalender Anda dan mulai mereka dengan satu klik.", + "enterRoomTitle": "Mulai pertemuan baru", + "getHelp": "Dapatkan bantuan", + "go": "LANJUT", + "goSmall": "LANJUT", + "headerSubtitle": "Pertemuan yang aman dan berkualitas tinggi", + "headerTitle": "Jitsi Meet", + "info": "Info panggilan", + "jitsiOnMobile": "Jitsi di ponsel - unduh aplikasi kami dan mulai pertemuan dari mana saja", + "join": "BUAT / BERGABUNG", + "logo": { + "calendar": "Logo kalender", + "desktopPreviewThumbnail": "Thumbnail pratinjau desktop", + "googleLogo": "Logo Google", + "logoDeepLinking": "Logo Jitsi meet", + "microsoftLogo": "Logo Microsoft", + "policyLogo": "Logo Kebijakan" + }, + "meetingsAccessibilityLabel": "Pertemuan", + "mobileDownLoadLinkAndroid": "Unduh aplikasi mobile untuk Android", + "mobileDownLoadLinkFDroid": "Unduh aplikasi mobile untuk F-Droid", + "mobileDownLoadLinkIos": "Unduh aplikasi mobile untuk iOS", + "moderatedMessage": "Atau pesan URL pertemuan sebelumnya di mana Anda adalah satu-satunya moderator.", + "privacy": "Privasi", + "recentList": "Terbaru", + "recentListDelete": "Hapus entri", + "recentListEmpty": "Daftar terbaru Anda saat ini kosong. Berbicaralah dengan tim Anda dan Anda akan menemukan semua pertemuan terbaru Anda di sini.", + "recentMeetings": "Pertemuan terbaru Anda", + "reducedUIText": "Selamat datang di {{app}}!", + "roomNameAllowedChars": "Nama pertemuan tidak boleh mengandung salah satu dari karakter-karakter ini: ?, &, :, ', \", %, #.", + "roomname": "Masukkan nama ruang", + "roomnameHint": "Masukkan nama atau URL ruang yang ingin Anda ikuti. Anda dapat membuat nama, beri tahu orang-orang yang akan Anda temui sehingga mereka memasukkan nama yang sama.", + "sendFeedback": "Kirim umpan balik", + "settings": "Pengaturan", + "startMeeting": "Mulai pertemuan", + "terms": "Ketentuan", + "title": "Konferensi video yang aman, lengkap, dan benar-benar gratis", + "upcomingMeetings": "Pertemuan yang akan datang Anda" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Papan tulis" + }, + "screenTitle": "Papan tulis" + } +} diff --git a/lang/main-is.json b/lang/main-is.json new file mode 100644 index 0000000..ec4cfa7 --- /dev/null +++ b/lang/main-is.json @@ -0,0 +1,1527 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Fundartengill: {{url}}" + }, + "add": "Bjóða", + "addContacts": "Bjóddu tengiliðunum þínum", + "contacts": "tengiliðir", + "copyInvite": "Afrita fundarboð", + "copyLink": "Afrita fundartengil", + "copyStream": "Afrita tengil á beint streymi", + "countryNotSupported": "Við eru ekki byrjuð með sambönd á þessum stað.", + "countryReminder": "Ertu að hringja út fyrir BNA? Gakktu úr skugga um að númerið byrji með landskóða!", + "defaultEmail": "Sjálfgefið tölvupóstfang þitt", + "disabled": "Þú getur ekki boðið fólki.", + "failedToAdd": "Mistókst að bæta við þátttakendum", + "googleEmail": "Google-tölvupóstur", + "inviteMoreHeader": "Þú ert sá eini á fundinum", + "inviteMoreMailSubject": "Taka þátt í {{appName}}-fundi", + "inviteMorePrompt": "Bjóða fleira fólki", + "linkCopied": "Tengill afritaður á klippispjald", + "noResults": "Engar leitarniðurstöður samsvara", + "outlookEmail": "Outlook-tölvupóstur", + "phoneNumbers": "símanúmer", + "searching": "Leita…", + "shareInvite": "Deila fundarboði", + "shareLink": "Deila fundartengli til að bjóða öðrum", + "shareStream": "Deila tengli á beint streymi", + "sipAddresses": "SIP-vistföng", + "telephone": "Símanúmer: {{number}}", + "title": "Bjóða fólki á þennan fund", + "yahooEmail": "Yahoo-tölvupóstur" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Bílahljóðkerfi", + "headphones": "Heyrnartól", + "none": "Engin hljóðtæki tiltæk", + "phone": "Sími", + "speaker": "Hátalari" + }, + "audioOnly": { + "audioOnly": "Lítil bandbreidd" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "t.d. 10000000 fyrir 10 Mbps", + "assumedBandwidthBpsWarning": "Hærri gildi geta leitt til vandamála í netkerfi.", + "customValue": "sérstakt gildi", + "customValueEffect": "til að stilla raunverulegt gildi b/sek", + "leaveEmpty": "skilja eftir autt", + "leaveEmptyEffect": "til að gerð áætlana geti átt sér stað", + "possibleValues": "Möguleg gildi", + "setAssumedBandwidthBps": "Áætluð bandbreidd (bps)", + "title": "Stillingar bandbreiddar", + "zeroEffect": "til að gera myndmerki óvirkt" + }, + "breakoutRooms": { + "actions": { + "add": "Bæta við aukarás", + "autoAssign": "Úthluta sjálfkrafa á aukarásir", + "close": "Loka", + "join": "Taka þátt", + "leaveBreakoutRoom": "Yfirgefa aukarás", + "more": "Meira", + "remove": "Fjarlægja", + "rename": "Endurnefna", + "renameBreakoutRoom": "Endurnefna aukarás", + "sendToBreakoutRoom": "Senda þátttakanda á:" + }, + "breakoutList": "Listi aukarása", + "buttonLabel": "Aukarásir", + "defaultName": "Aukarás #{{index}}", + "hideParticipantList": "Fela lista yfir þátttakendur", + "mainRoom": "Aðalspjallrás", + "notifications": { + "joined": "Geng til liðs við \"{{name}}\" aukarásina", + "joinedMainRoom": "Geng til liðs við aðalspjallrás", + "joinedTitle": "Aukarásir" + }, + "showParticipantList": "Birta lista yfir þátttakendur", + "title": "Aukarásir" + }, + "calendarSync": { + "addMeetingURL": "Bæta við fundartengli", + "confirmAddLink": "Viltu bæta við Jitsi-tengli í þennan atburð?", + "error": { + "appConfiguration": "Samþætting dagatals er ekki rétt uppsett.", + "generic": "Villa kom upp. Athugaðu stillingar dagatalsins eða prófaðu að endurlesa það.", + "notSignedIn": "Villa kom upp við auðkenningu til að skoða atburði dagatals. Athugaðu stillingar dagatalsins og prófaðu að skrá þig aftur inn á það." + }, + "join": "Taka þátt", + "joinTooltip": "Taka þátt í fundinum", + "nextMeeting": "Næsti fundur", + "noEvents": "Það eru engir áætlaðir atburðir á næstunni.", + "ongoingMeeting": "Fundur í gangi", + "permissionButton": "Opna stillingar", + "permissionMessage": "Krafist er heimilda til að nota dagatal til að geta séð fundina þína í forritinu.", + "refresh": "Uppfæra dagatal", + "today": "Í dag" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Veldu hljóðtæki" + }, + "labels": { + "buttonLabel": "Bílastilling", + "title": "Bílastilling", + "videoStopped": "Myndmerkið þitt hefur stöðvast" + } + }, + "chat": { + "enter": "Fara inn á spjallrás", + "error": "Villa: skilaboðin þín voru ekki send. Ástæða: {{error}}", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Skilaboð af biðsvæði til {{recipient}}", + "message": "Skilaboð", + "messageAccessibleTitle": "{{user}} segir:", + "messageAccessibleTitleMe": "ég segi:", + "messageTo": "Einkaskilaboð til {{recipient}}", + "messagebox": "Skrifaðu skilaboð", + "newMessages": "Ný skilaboð", + "nickname": { + "popover": "Veldu gælunafn", + "title": "Settu inn gælunafn/stuttnefni til að nota við spjall", + "titleWithPolls": "Settu inn gælunafn/stuttnefni til að nota við spjall og kannanir" + }, + "noMessagesMessage": "Það eru ennþá engin skilaboð á fundinum. Byrjaðu umræðuna hér!", + "privateNotice": "Einkaskilaboð til {{recipient}}", + "sendButton": "Senda", + "smileysPanel": "Tjáningartáknaspjald", + "tabs": { + "chat": "Spjall", + "polls": "Kannanir" + }, + "title": "Spjall", + "titleWithPolls": "Spjall og kannanir", + "you": "þú" + }, + "chromeExtensionBanner": { + "buttonText": "Setja inn Chrome-viðbót", + "buttonTextEdge": "Setja inn Edge-viðbót", + "close": "Loka", + "dontShowAgain": "Ekki sýna þessi skilaboð aftur", + "installExtensionText": "Settu inn viðbót fyrir Google Calendar og samþættingu við Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Tengist við fundinn þinn…" + }, + "connection": { + "ATTACHED": "Tengt", + "AUTHENTICATING": "Auðkenning", + "AUTHFAIL": "Auðkenning mistókst", + "CONNECTED": "Tengt", + "CONNECTING": "Tengist", + "CONNFAIL": "Tenging mistókst", + "DISCONNECTED": "Aftengt", + "DISCONNECTING": "Aftengist", + "ERROR": "Villa", + "FETCH_SESSION_ID": "Næ í auðkenni setu (session-ID)…", + "GET_SESSION_ID_ERROR": "Villa við að ná í auðkenni setu: {{code}}", + "GOT_SESSION_ID": "Næ í auðkenni setu… Lokið", + "LOW_BANDWIDTH": "Slökkt var á myndmerki frá {{displayName}} til að spara bandbreidd" + }, + "connectionindicator": { + "address": "Vistfang:", + "audio_ssrc": "Hljóð-SSRC:", + "bandwidth": "Áætluð bandbreidd:", + "bitrate": "Bitahraði:", + "bridgeCount": "Fjöldi netþjóna: ", + "codecs": "Kóðunarlyklar (A/V): ", + "connectedTo": "Tengt við:", + "e2eeVerified": "E2EE sannreynt:", + "framerate": "Rammatíðni:", + "less": "Sýna minna", + "localaddress": "Staðvært vistfang:", + "localaddress_plural": "Staðvær vistföng:", + "localport": "Staðvær gátt:", + "localport_plural": "Staðværar gáttir:", + "maxEnabledResolution": "senda hám.", + "more": "Birta meira", + "no": "nei", + "packetloss": "Pakkatap:", + "participant_id": "Auðkenni þátttakanda:", + "quality": { + "good": "Góð", + "inactive": "Óvirk", + "lost": "Töpuð", + "nonoptimal": "Ekki sem best", + "poor": "Léleg" + }, + "remoteaddress": "Fjartengt vistfang:", + "remoteaddress_plural": "Fjartengd vistföng:", + "remoteport": "Fjartengd gátt:", + "remoteport_plural": "Fjartengdar gáttir:", + "resolution": "Upplausn:", + "savelogs": "Vista atvikaskrár", + "status": "Tenging:", + "transport": "Flutningsleið:", + "transport_plural": "Flutningsleiðir:", + "video_ssrc": "Myndmerki-SSRC:", + "yes": "já" + }, + "dateUtils": { + "earlier": "Fyrr", + "today": "Í dag", + "yesterday": "Í gær" + }, + "deepLinking": { + "appNotInstalled": "Þú þarft {{app}} farsímaforritið til að geta tekið þátt í þessum fundi á símanum þínum.", + "description": "Gerðist ekkert? Við reyndum að ræsa fundinn þinn í {{app}} skjáborðsforritinu. Prófaðu aftur eða ræstu hann í {{app}} vefútgáfunni.", + "descriptionNew": "Gerðist ekkert? Við reyndum að ræsa fundinn þinn í {{app}} skjáborðsforritinu.

Prófaðu aftur eða ræstu hann í vefútgáfunni.", + "descriptionWithoutWeb": "Gerðist ekkert? Við reyndum að ræsa fundinn þinn í {{app}} skjáborðsforritinu.", + "downloadApp": "Ná í forritið", + "downloadMobileApp": "Sækja á App Store forritasafnið", + "ifDoNotHaveApp": "Ef þú ert ekki ennþá komin/n með forritið:", + "ifHaveApp": "Ef þú ert nú þegar með forritið:", + "joinInApp": "Taktu þátt í þessum fundi í gegnum forritið", + "joinInAppNew": "Taka þátt í forriti", + "joinInBrowser": "Taka þátt í vafra", + "launchMeetingLabel": "Hvernig vilt þú taka þátt í þessum fundi?", + "launchWebButton": "Ræsa í vafra", + "noMobileApp": "Ert þú ekki með forritið?", + "termsAndConditions": "Með því að halda áfram samþykkir þú skilmála okkar og kvaðir.", + "title": "Ræsi fundinn þinn í {{app}}…", + "titleNew": "Ræsi fundinn þinn…", + "tryAgainButton": "Prófa aftur í vafra", + "unsupportedBrowser": "Þú virðist vera að nota vafra sem við styðjum ekki." + }, + "defaultLink": "t.d. {{url}}", + "defaultNickname": "dæmi: Jóna Péturs", + "deviceError": { + "cameraError": "Mistókst að ná aðgangi að myndavélinni þinni", + "cameraPermission": "Villa við að fá heimild fyrir myndavél", + "microphoneError": "Mistókst að ná aðgangi að hljóðnemanum þínum", + "microphonePermission": "Villa við að fá heimild fyrir hljóðnema" + }, + "deviceSelection": { + "hid": { + "callControl": "Stýring símtala", + "connectedDevices": "Tengd tæki:", + "deleteDevice": "Eyða tæki", + "pairDevice": "Para tæki" + }, + "noPermission": "Heimild ekki veitt", + "previewUnavailable": "Forskoðun ekki tiltæk", + "selectADevice": "Veldu tæki", + "testAudio": "Prófa" + }, + "dialIn": { + "screenTitle": "Samantekt innhringinga" + }, + "dialOut": { + "statusMessage": "er núna {{status}}" + }, + "dialog": { + "Back": "Til baka", + "Cancel": "Hætta við", + "IamHost": "Skrá inn", + "Ok": "Í lagi", + "Remove": "Fjarlægja", + "Share": "Deila", + "Submit": "Senda inn", + "WaitForHostMsg": "Fjarfundurinn er ekki byrjaður vegna þess að engir umsjónarmenn eru mættir. Ef þú vilt gerast umsjónarmaður skaltu skrá þig inn. Annars ættirðu að bíða.", + "WaitingForHostButton": "Bíddu eftir umsjónarmanni", + "WaitingForHostTitle": "Bíð eftir umsjónarmanni…", + "Yes": "Já", + "accessibilityLabel": { + "Cancel": "Hætta við (loka glugga)", + "Ok": "Í lagi (vista og loka glugga)", + "close": "Loka glugga", + "liveStreaming": "Beint streymi", + "sharingTabs": "Valkostir deilingar" + }, + "add": "Bæta við", + "addMeetingNote": "Bæta við minnispunkti um þennan fund", + "addOptionalNote": "Bæta við minnispunkti (valfrjálst):", + "allow": "Leyfa", + "allowToggleCameraDialog": "Gefur þú {{initiatorName}} leyfi til að víxla andlitsmynd myndavélarinnar þinnar?", + "allowToggleCameraTitle": "Leyfa að víxla myndavél?", + "alreadySharedVideoMsg": "Annar þátttakandi er þegar að deila myndmerkinu sínu. Þessi fjarfundur leyfir aðeins að einu myndmerki sé deilt í einu.", + "alreadySharedVideoTitle": "Aðeins er leyft að deila einu myndmerki í einu", + "applicationWindow": "Forritsgluggi", + "authenticationRequired": "Auðkenningar krafist", + "cameraConstraintFailedError": "Myndavélin þín uppfyllir ekki sumt af uppsettum skilyrðum.", + "cameraNotFoundError": "Myndavél fannst ekki.", + "cameraNotSendingData": "Við náum ekki að tengjast myndavélinni þinni. Athugaðu hvort eitthvað annað forrit sé að nota hana, veldu annað tæki í stillingavalmyndinni eða reyndu að endurhlaða forritið.", + "cameraNotSendingDataTitle": "Gat ekki tengst myndavél", + "cameraPermissionDeniedError": "Þú hefur ekki gefið leyfi til að nota myndavélina þína. Þú getur samt tekið þátt í fundinum, en aðrir munu ekki sjá þig. Notaðu myndavélarhnappinn í vistfangastikunni til að laga þetta.", + "cameraTimeoutError": "Gat ekki ræst uppruna myndmerkis. Ferlið féll á tímamörkum!", + "cameraUnknownError": "Get ekki notað myndavélina af óþekktum ástæðum.", + "cameraUnsupportedResolutionError": "Myndavélin þín styður ekki umbeðna upplausn myndmerkis.", + "close": "Loka", + "conferenceDisconnectMsg": "Þú ættir kannski að athuga nettenginguna þína. Tengist aftur eftir {{seconds}} sek…", + "conferenceDisconnectTitle": "Þú hefur verið aftengd(ur).", + "conferenceReloadMsg": "Við erum að reyna að laga þetta. Tengist aftur eftir {{seconds}} sek…", + "conferenceReloadTitle": "Því miður, eitthvað hefur farið úrskeiðis.", + "confirm": "Staðfesta", + "confirmNo": "Nei", + "confirmYes": "Já", + "connectError": "Úbbs! Eitthvað fór úrskeiðis og við náðum ekki að tengjast fjarfundinum.", + "connectErrorWithMsg": "Úbbs! Eitthvað fór úrskeiðis og við náðum ekki að tengjast fjarfundinum: {{msg}}", + "connecting": "Tengist", + "contactSupport": "Hafa samband við aðstoð", + "copied": "Afritað", + "copy": "Afrita", + "dismiss": "Hunsa", + "displayNameRequired": "Hæ, hvað heitir þú?", + "done": "Lokið", + "e2eeDescription": "Enda-í-enda dulritun er sem stendur Á TILRAUNASTIGI. Hafðu í huga að sé kveikt á enda-í-enda dulritun mun það í raun gera óvirka ýmsar þjónustur sem netþjónninn veitir, eins og til dæmis þáttöku í gegnum síma. Hafðu einnig í huga að fundurinn mun þá einungis virka fyrir fólk sem tengist með vöfrum sem styðja innfelld streymi (insertable streams).", + "e2eeDisabledDueToMaxModeDescription": "Get ekki virkjað enda-í-enda dulritun vegna mikils fjölda þátttakenda á fjarfundinum.", + "e2eeLabel": "Virkja enda-í-enda dulritun", + "e2eeWarning": "AÐVÖRUN: Ekki eru allir þátttakendur á fundinum með stuðning við enda-í-enda dulritun. Ef þú virkjar hana munu viðkomandi hvorki geta séð né heyrt í þér.", + "e2eeWillDisableDueToMaxModeDescription": "Enda-í-enda dulritun verður sjálfkrafa gerð óvirk ef fleiri þátttakendur koma inn á fjarfundinn.", + "embedMeeting": "Ívefja fund", + "enterDisplayName": "Settu inn nafnið þitt", + "error": "Villa", + "gracefulShutdown": "Þjónustan okkar er ekki aðgengileg í augnablikinu. Endilega reyndu aftur síðar.", + "grantModeratorDialog": "Ertu viss um að þú viljir veita {{participantName}} umsjónarréttindi?", + "grantModeratorTitle": "Veita umsjónarréttindi", + "hide": "Fela", + "hideShareAudioHelper": "Ekki sýna þennan glugga aftur", + "incorrectPassword": "Rangt notandanafn eða lykilorð", + "incorrectRoomLockPassword": "Rangt lykilorð", + "internalError": "Úbbs! Eitthvað fór úrskeiðis. Eftirfarandi villa kom upp: {{error}}", + "internalErrorTitle": "Innri villa", + "kickMessage": "Þú getur haft samband við {{participantDisplayName}} til að sjá frekari upplýsingar.", + "kickParticipantButton": "Sparka", + "kickParticipantDialog": "Ertu viss um að þú viljir henda þessum þátttakanda út?", + "kickParticipantTitle": "Henda þessum þátttakanda út?", + "kickTitle": "Æi! {{participantDisplayName}} henti þér út af fundinum", + "linkMeeting": "Tengja fundinn", + "linkMeetingTitle": "Tengja fundinn á Salesforce", + "liveStreaming": "Beint streymi", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ekki hægt á meðan upptaka er virk", + "localUserControls": "Stýringar notanda á tölvunni", + "lockMessage": "Gat ekki læst fjarfundinum.", + "lockRoom": "Bæta við $t(lockRoomPassword) fundar", + "lockTitle": "Læsing mistókst", + "login": "Innskráning", + "loginQuestion": "Ertu viss um að þú viljir skrá þig inn og yfirgefa fjarfundinn?", + "logoutQuestion": "Ertu viss um að þú viljir skrá þig út og yfirgefa fjarfundinn?", + "logoutTitle": "Útskráning", + "maxUsersLimitReached": "Takmörkum á hámarksfjölda þátttakenda hefur verið náð. Fjarfundurinn er fullskipaður. Hafðu samband við eiganda fundarins eða reyndu aftur síðar!", + "maxUsersLimitReachedTitle": "Hámarksfjölda þátttakenda hefur verið náð", + "micConstraintFailedError": "Hljóðneminn þinn uppfyllir ekki sumt af uppsettum skilyrðum.", + "micNotFoundError": "Hljóðnemi fannst ekki.", + "micNotSendingData": "Farðu í stillingar tölvunnar þinnar til að kveikja á hljóðnemanum og aðlaga styrk hans", + "micNotSendingDataTitle": "Þaggað er niður í hljóðnemanum þínum í kerfisstillingunum", + "micPermissionDeniedError": "Þú hefur ekki gefið leyfi til að nota hljóðnemann þinn. Þú getur samt tekið þátt í fundinum, en aðrir munu ekki heyra í þér. Notaðu myndavélarhnappinn í vistfangastikunni til að laga þetta.", + "micTimeoutError": "Gat ekki ræst uppruna hljóðmerkis. Ferlið féll á tímamörkum!", + "micUnknownError": "Get ekki notað hljóðnemann af óþekktum ástæðum.", + "moderationAudioLabel": "Leyfa þátttakendum að afþagga sjálfa sig", + "moderationVideoLabel": "Leyfa þátttakendum að ræsa myndmerkin sín", + "muteEveryoneDialog": "Þátttakendur geta hvenær sem er afþaggað sjálfa sig.", + "muteEveryoneDialogModerationOn": "Þátttakendur geta hvenær sem er sent beiðni um að fá að tala.", + "muteEveryoneElseDialog": "Ef þaggað er niður í þeim muntu ekki geta afþaggað þá, en þeir munu geta afþaggað sig hvenær sem er .", + "muteEveryoneElseTitle": "Þagga niður í öllum nema {{whom}}?", + "muteEveryoneElsesVideoDialog": "Ef myndavélin hefur verið gerð óvirk, munt þú ekki geta kveikt aftur á henni, en viðkomandi mun hvenær sem er geta kveikt á henni fyrir sig.", + "muteEveryoneElsesVideoTitle": "Stöðva myndmerkið hjá öllum nema {{whom}}?", + "muteEveryoneSelf": "þig sjálfa/n", + "muteEveryoneStartMuted": "Allir byrja hljóðlaust héðan í frá", + "muteEveryoneTitle": "Þagga niður í öllum?", + "muteEveryonesVideoDialog": "Þátttakendur geta hvenær sem er kveikt á myndmerkinu sínu.", + "muteEveryonesVideoDialogModerationOn": "Þátttakendur geta hvenær sem er sent beiðni um að kveikt sé á myndmerkinu þeirra.", + "muteEveryonesVideoDialogOk": "Gera óvirkt", + "muteEveryonesVideoTitle": "Stöðva myndmerkið hjá öllum?", + "muteParticipantBody": "Þú munt ekki geta afþaggað þá, en þeir munu geta afþaggað sig hvenær sem er .", + "muteParticipantButton": "Þagga niður", + "muteParticipantsVideoBody": "Þú munt ekki geta kveikt aftur á myndavélinni, en viðkomandi munu hvenær sem er geta kveikt á henni fyrir sig.", + "muteParticipantsVideoBodyModerationOn": "Þú munt ekki geta kveikt aftur á myndavélinni og ekki heldur viðkomandi.", + "muteParticipantsVideoButton": "Stöðva myndmerki", + "muteParticipantsVideoDialog": "Ertu viss um að þú viljir slökkva á myndavélinni hjá þessum þátttakanda? Þú munt ekki geta kveikt aftur á myndavélinni, en viðkomandi munu hvenær sem er geta kveikt á henni fyrir sig.", + "muteParticipantsVideoDialogModerationOn": "Ertu viss um að þú viljir slökkva á myndavélinni hjá þessum þátttakanda? Þú munt ekki geta kveikt aftur á myndavélinni og ekki heldur viðkomandi.", + "muteParticipantsVideoTitle": "Gera myndavél óvirka hjá þessum þátttakanda?", + "noDropboxToken": "Ekkert gilt Dropbox-teikn", + "password": "Lykilorð", + "passwordLabel": "Þátttakandi hefur læst fundinum. Settu inn $t(lockRoomPassword) til að taka þátt í honum.", + "passwordNotSupported": "Að setja $t(lockRoomPassword) fyrir fund er ekki stutt.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) er ekki stutt", + "passwordRequired": "$t(lockRoomPasswordUppercase) er nauðsynlegt", + "permissionCameraRequiredError": "Krafist er heimilda til að nota myndavél til að taka þátt í fjarfundum með myndmerki. Gefðu heimild til þessa í stillingunum", + "permissionErrorTitle": "Krafist er heimildar", + "permissionMicRequiredError": "Krafist er heimilda til að nota hljóðnema til að taka þátt í fjarfundum með hljóðmerki. Gefðu heimild til þessa í stillingunum", + "readMore": "meira", + "recentlyUsedObjects": "Nýlega notaðir hlutir hjá þér", + "recording": "Upptaka", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ekki hægt á meðan beint streymi er virkt", + "rejoinNow": "Taka þátt aftur", + "remoteControlAllowedMessage": "{{user}} samþykkti beiðni þína um fjarstýringu!", + "remoteControlDeniedMessage": "{{user}} hafnaði beiðni þinni um fjarstýringu!", + "remoteControlErrorMessage": "Villa kom upp þegar reynt var að biðja um heimild til fjarstýringar frá {{user}}!", + "remoteControlRequestMessage": "Viltu leyfa {{user}} að stýra skjáborðinu þínu fjartengt?", + "remoteControlShareScreenWarning": "Athugaðu að ef þú ýtir á \"Leyfa\" muntu deila skjánum þínum!", + "remoteControlStopMessage": "Fjarstýringarsetan endaði!", + "remoteControlTitle": "Fjarstýring skjáborðs", + "remoteUserControls": "Stýringar fjartengda notandans {{username}}", + "removePassword": "Fjarlægja $t(lockRoomPassword)", + "removeSharedVideoMsg": "Ertu viss um að þú viljir fjarlægja deilda myndmerkið þitt?", + "removeSharedVideoTitle": "Fjarlægja deilt myndmerki", + "renameBreakoutRoomLabel": "Heiti spjallrásar", + "renameBreakoutRoomTitle": "Endurnefna aukarás", + "reservationError": "Villa í pöntunarkerfi", + "reservationErrorMsg": "Villukóði: {{code}}, skilaboð: {{msg}}", + "retry": "Reyna aftur", + "screenSharingAudio": "Deila hljóði", + "screenSharingFailed": "Úbbs! Eitthvað fór úrskeiðis, ekki var hægt að hefja skjádeilingu!", + "screenSharingFailedTitle": "Skjádeiling mistókst!", + "screenSharingPermissionDeniedError": "Úbbs! Eitthvað fór úrskeiðis varðandi heimildir skjádeilingar. Þú ættir að hlaða þessu aftur inn og prófa svo aftur.", + "searchInSalesforce": "Leita í Salesforce", + "searchResults": "Leitarniðurstöður({{count}})", + "searchResultsDetailsError": "Eitthvað fór úrskeiðis við að ná í gögn eigandans.", + "searchResultsError": "Eitthvað fór úrskeiðis við að ná í gögn.", + "searchResultsNotFound": "Engar leitarniðurstöður fundnar.", + "searchResultsTryAgain": "Prófaðu að nota önnur stikkorð.", + "sendPrivateMessage": "Þú fékkst nýlega einkaskilaboð. Hafðirðu hugsað þér að svara þeim í einkaskilaboðum eða ætlarðu að senda skilaboð til hópsins?", + "sendPrivateMessageCancel": "Senda á hópinn", + "sendPrivateMessageOk": "Senda sem einkamál", + "sendPrivateMessageTitle": "Senda sem einkamál?", + "serviceUnavailable": "Þjónustan er ekki tiltæk", + "sessTerminated": "Símtali er lokið", + "sessTerminatedReason": "Fundi hefur verið slitið", + "sessionRestarted": "Samtal var endurræst vegna vandamála í tengingum.", + "shareAudio": "Halda áfram", + "shareAudioAltText": "til að deila völdu efni skaltu fara á \"Vafraflipi\", velja efnið, virkja \"Deila hljóði\" og smella síðan á Deila-hnappinn", + "shareAudioTitle": "Hvernig á að deila hljóði", + "shareAudioWarningD1": "þú þarft að stöðva skjádeilingu áður en þú getur deilt hljóðinu frá þér.", + "shareAudioWarningD2": "þú þarft að endurræsa skjádeilingu frá þér og merkja síðan við valkostinn \"Deila hljóði\".", + "shareAudioWarningH1": "Ef þú vilt einungis deila hljóði:", + "shareAudioWarningTitle": "Þú þarft að stöðva skjádeilingu áður en þú getur deilt hljóði", + "shareMediaWarningGenericH2": "Ef þú vilt deila bæði skjánum þínum og hljóði", + "shareScreenWarningD1": "þú þarft að stöðva hljóðdeilingu áður en þú getur deilt skjánum frá þér.", + "shareScreenWarningD2": "þú þarft að stöðva hljóðdeilingu frá þér, ræsa skjádeilingu og merkja síðan við valkostinn \"Deila hljóði\".", + "shareScreenWarningH1": "Ef þú vilt einungis deila skjánum þínum:", + "shareScreenWarningTitle": "Þú þarft að stöðva hljóðdeilingu áður en þú getur deilt skjánum frá þér", + "shareVideoLinkError": "Settu inn réttan tengil á myndmerki.", + "shareVideoTitle": "Deila myndmerki", + "shareYourScreen": "Deila skjánum þínum", + "shareYourScreenDisabled": "Skjádeiling er óvirk.", + "sharedVideoDialogError": "Villa: Ógild slóð", + "sharedVideoLinkPlaceholder": "YouTube-tengill eða beinn tengill á myndskeið", + "show": "Birta", + "start": "Byrja ", + "startLiveStreaming": "Hefja beint streymi", + "startRecording": "Hefja upptöku", + "startRemoteControlErrorMessage": "Villa kom upp þegar reynt var að ræsa fjarstýringarsetu!", + "stopLiveStreaming": "Stöðva beint streymi", + "stopRecording": "Stöðva upptöku", + "stopRecordingWarning": "Ertu viss um að þú viljir stöðva þessa upptöku?", + "stopStreamingWarning": "Ertu viss um að þú viljir stöðva þetta beina streymi?", + "streamKey": "Lykill fyrir beint streymi", + "thankYou": "Takk fyrir að nota {{appName}}!", + "token": "teikn", + "tokenAuthFailed": "Því miður, þú hefur ekki heimild til að taka þátt í þessu samtali.", + "tokenAuthFailedReason": { + "audInvalid": "Ógilt `aud` gildi. Það ætti að vera `jitsi`.", + "contextNotFound": "Hlutinn `context` vantar úr sendingunni.", + "expInvalid": "Ógilt `exp` gildi.", + "featureInvalid": "Ógildur eiginleiki: {{feature}}, líklegast ekki útfært ennþá.", + "featureValueInvalid": "Óleyfilegt gildi fyrir eiginleika: {{feature}}.", + "featuresNotFound": "Hlutinn `features` vantar úr sendingunni.", + "headerNotFound": "Vantar hausinn.", + "issInvalid": "Ógilt `iss` gildi. Það ætti að vera `chat`.", + "kidMismatch": "Key ID (kid) samsvarar ekki sub.", + "kidNotFound": "Vantar Key ID (kid).", + "nbfFuture": "Gildi `nbf` er í framtíðinni.", + "nbfInvalid": "Ógilt `nbf` gildi.", + "payloadNotFound": "Vantar sendinguna.", + "tokenExpired": "Teiknið er útrunnið." + }, + "tokenAuthFailedTitle": "Auðkenning mistókst", + "tokenAuthFailedWithReasons": "Því miður, þú hefur ekki heimild til að taka þátt í þessu samtali. Mögulegar ástæður: {{reason}}", + "tokenAuthUnsupported": "URL-slóð teikns er ekki studd.", + "transcribing": "Umrita (transcribing)", + "unlockRoom": "Fjarlægja $t(lockRoomPassword) fundar", + "user": "Notandi", + "userIdentifier": "Notandaauðkenni", + "userPassword": "Lykilorð notandans", + "verifyParticipantConfirm": "Þau samsvara", + "verifyParticipantDismiss": "Þau samsvara ekki", + "verifyParticipantQuestion": "Á TILRAUNASTIGI: Spurðu þátttakandann {{participantName}} hvort viðkomandi sjái sama efni í sömu röð.", + "verifyParticipantTitle": "Sannvottun notanda", + "videoLink": "Tengill á myndmerki", + "viewUpgradeOptions": "Skoða valkosti uppfærslu", + "viewUpgradeOptionsContent": "Til að fá ótakmarkaðan aðgang að Premium-eiginleikum á borð við upptökur, umritanir, RTMP-streymi og fleira, þarftu að uppfæra áskriftina þína.", + "viewUpgradeOptionsTitle": "Þú uppgötvaðir Premium-eiginleika!", + "whiteboardLimitContent": "Því miður, takmörkum á fjölda notenda samtímis á teiknitöflu hefur verið náð.", + "whiteboardLimitReference": "Til að sjá nánari upplýsingar, ættirðu að skoða", + "whiteboardLimitReferenceUrl": "vefsvæðið okkar", + "whiteboardLimitTitle": "Notkun teiknitöflu er takmörkuð", + "yourEntireScreen": "Allur skjárinn þinn" + }, + "documentSharing": { + "title": "Sameiginlegt skjal" + }, + "e2ee": { + "labelToolTip": "Samskipti með hljóði og myndmerki í þessu samtali eru enda-í-enda dulrituð." + }, + "embedMeeting": { + "title": "Ívefja þennan fund" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Röddin þín: {{rating}}" + }, + "average": "Meðaltal", + "bad": "Léleg", + "detailsLabel": "Segðu okkur meira um þetta.", + "good": "Góð", + "rateExperience": "Gefðu upplifun þinni af fundinum einkunn", + "star": "Stjörnumerkja", + "veryBad": "Mjög slæm", + "veryGood": "Mjög góð" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Smámyndir myndmerkja" + } + }, + "giphy": { + "noResults": "Engar niðurstöður fundust :(", + "search": "Leita í GIPHY" + }, + "incomingCall": { + "answer": "Svara", + "audioCallTitle": "Innhringing", + "decline": "Hunsa", + "productLabel": "frá Jitsi Meet", + "videoCallTitle": "Innhringing myndsamtals" + }, + "info": { + "accessibilityLabel": "Birta upplýsingar", + "addPassword": "Bæta við $t(lockRoomPassword)i", + "cancelPassword": "Hætta við $t(lockRoomPassword)", + "conferenceURL": "Tengill:", + "copyNumber": "Afrita númer", + "country": "Land", + "dialANumber": "Til að tengjast við fundinn þinn skaltu hringja í eitt af þessum númerum og setja inn PIN-kóðann.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Því miður, innhringing er ekki ennþá studd.", + "dialInNumber": "Innhringing:", + "dialInSummaryError": "Villa við að sækja innhringingarupplýsingar. Reyndu aftur síðar.", + "dialInTollFree": "Gjaldfrjálst", + "genericError": "Úbbs! Eitthvað fór úrskeiðis.", + "inviteLiveStream": "Til að skoða beint streymi frá þessum fundi skaltu smella á þennan tengil: {{url}}", + "invitePhone": "Til að tengjast frekar með síma skaltu ýta á þetta: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Ertu að leita að öðru innhringinúmeri?\nSkoðaðu innhringinúmerin fyrir þennan fund: {{url}}\n\n\nEf einnig er verið að hringja inn í gegnum símanúmer fjarfundar, skaltu taka þátt án þess að tengjast með hljóði: {{silentUrl}}", + "inviteSipEndpoint": "Til að tengjast með SIP-vistfangi skaltu nota þetta: {{sipUri}}", + "inviteTextiOSInviteUrl": "Smelltu á eftirfarandi tengil til að taka þátt: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Ef þú ert að hringja inn í gegnum símanúmer fjarfundar, skaltu nota þennan tengil til að taka þátt án þess að tengjast með hljóði: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} er að bjóða þér á fund.", + "inviteTextiOSPhone": "Til að tengjast með síma skaltu nota þetta númer: {{number}},,{{conferenceID}}#\n", + "inviteURLFirstPartGeneral": "Þér hefur verið boðið að taka þátt í fundi.", + "inviteURLFirstPartPersonal": "{{name}} er að bjóða þér á fund.\n", + "inviteURLSecondPart": "\nTaka þátt í fundinum:\n{{url}}\n", + "label": "Innhringingarupplýsingar", + "liveStreamURL": "Beint streymi:", + "moreNumbers": "Fleiri símanúmer", + "noNumbers": "Engin innhringinúmer.", + "noPassword": "Ekkert", + "noRoom": "Enginn fjarfundur var tilgreindur til að hringja inn í.", + "numbers": "Innhringinúmer", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Þú hefur náð hámarkinu á áskriftinni þinni.", + "sip": "SIP-vistfang", + "sipAudioOnly": "SIP-vistfang einungis með hljóði", + "title": "Deila", + "tooltip": "Deila tengli og innhringingarupplýsingum um þennan fund", + "upgradeOptions": "Athugaðu valkosti með uppfærslur á" + }, + "inlineDialogFailure": { + "msg": "Við eigum í smá erfiðleikum.", + "retry": "Reyndu aftur", + "support": "Stuðningur", + "supportMsg": "Ef þetta heldur áfram að koma upp, skaltu hafa samband við" + }, + "inviteDialog": { + "alertText": "Mistókst að bjóða sumum þátttakendum.", + "header": "Bjóða", + "searchCallOnlyPlaceholder": "Settu inn símanúmer", + "searchPeopleOnlyPlaceholder": "Leita að þátttakendum", + "searchPlaceholder": "Þátttakandi eða símanúmer", + "send": "Senda" + }, + "jitsiHome": "{{logo}} táknmerki, tengist á heimasíðu", + "keyboardShortcuts": { + "focusLocal": "Gera myndmerkið þitt virkt", + "focusRemote": "Gera myndmerkið einhvers annars virkt", + "fullScreen": "Skoða skjá eða fara úr skjáfylliham", + "giphyMenu": "Víxla GIPHY-valmynd af/á", + "keyboardShortcuts": "Flýtilyklar", + "localRecording": "Birta eða fela stýringar fyrir upptöku á tölvunni", + "mute": "Þagga niður eða kveikja á hljóðnema", + "pushToTalk": "Ýta til að tala", + "raiseHand": "Rétta upp eða leggja niður höndina", + "showSpeakerStats": "Birta tölfræði þátttakenda", + "toggleChat": "Opna eða loka spjallinu", + "toggleFilmstrip": "Birta eða fela smámyndir myndmerkja", + "toggleParticipantsPane": "Birta eða fela spjald með þátttakendum", + "toggleScreensharing": "Skipta á milli myndavélar og deilingar á skjá", + "toggleShortcuts": "Birta eða fela flýtivísanir á lyklaborði", + "videoMute": "Ræsa eða stöðva myndavélina þína" + }, + "largeVideo": { + "screenIsShared": "Þú ert að deila skjánum þínum", + "showMeWhatImSharing": "Sýna mér hverju ég er að deila" + }, + "liveStreaming": { + "busy": "Við erum að reyna að losa um einhver tilföng fyrir streymi. Reyndu aftur eftir nokkrar mínútur.", + "busyTitle": "Allar streymisvélar eru uppteknar í augnablikinu", + "changeSignIn": "Skipta um notandaaðgang.", + "choose": "Veldu beint streymi", + "chooseCTA": "Veldu valkost fyrir streymi. Þú ert núna skráð/ur inn sem {{email}}.", + "enterStreamKey": "Settu hér inn lykil fyrir beint streymi frá YouTube.", + "error": "Beint streymi mistókst. Reyndu aftur.", + "errorAPI": "Villa kom upp við að fá aðgang að útsendingum þínum á YouTube. Prófaðu að skrá þig inn aftur.", + "errorLiveStreamNotEnabled": "Beint streymi er ekki virkt fyrir {{email}}. Virkjaðu beint streymi eða skráðu þig inn á notandaaðgang þar sem beint streymi er virkjað.", + "expandedOff": "Beina streymið hefur verið stöðvað", + "expandedOn": "Verið er að taka streyma fundinum á YouTube.", + "expandedPending": "Verið er að ræsa beina streymið…", + "failedToStart": "Tókst ekki að ræsa beint streymi", + "getStreamKeyManually": "Við gátum ekki nálgast nein bein streymi. Reyndu að ná þér í lykil fyrir beint streymi frá YouTube.", + "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ð", + "onBy": "{{name}} byrjaði beint streymi", + "pending": "Ræsi beint streymi…", + "serviceName": "Þjónusta fyrir beint streymi", + "sessionAlreadyActive": "Það er þegar verið að taka upp eða streyma beint þessari setu.", + "signIn": "Skrá inn með Google", + "signInCTA": "Skráðu þig inn eða settu inn lykil fyrir beint streymi frá YouTube.", + "signOut": "Skrá út", + "signedInAs": "Þú ert núna skráð/ur inn sem:", + "start": "Hefja beint streymi", + "streamIdHelp": "Hvað er þetta?", + "title": "Beint streymi", + "unavailableTitle": "Beint streymi er ekki tiltækt", + "youtubeTerms": "Þjónustuskilmálar YouTube" + }, + "lobby": { + "backToKnockModeButton": "Biðja um að taka þátt", + "chat": "Spjall", + "dialogTitle": "Biðsvæðishamur", + "disableDialogContent": "Biðsvæðishamur er núna virkur. Þessi eiginleiki tryggir að óæskilegir notendur taki ekki þátt í fundunum þinum. Vitu gera þetta óvirkt?", + "disableDialogSubmit": "Gera óvirkt", + "emailField": "Settu inn tölvupóstfangið þitt", + "enableDialogPasswordField": "Stilltu lykilorð (má sleppa)", + "enableDialogSubmit": "Virkja", + "enableDialogText": "Biðsvæðishamur gerir þér kleift að verja fundina þína með því að heimila fólki inngöngu einungis eftir formlegt samþykki frá umsjónarmanni.", + "enterPasswordButton": "Settu inn lykilorð fundarins", + "enterPasswordTitle": "Settu inn lykilorð til að taka þátt í fundinum", + "errorMissingPassword": "Settu inn lykilorð fundarins", + "invalidPassword": "Ógilt lykilorð", + "joinRejectedMessage": "Beiðni þinni um þátttöku var hafnað af umsjónaraðila.", + "joinRejectedTitle": "Beiðni um þátttöku var hafnað.", + "joinTitle": "Taka þátt í fundi", + "joinWithPasswordMessage": "Reyni að taka þátt með lykilorði, hinkraðu aðeins…", + "joiningMessage": "Þú færð að taka þátt í fundinum um leið og einhver samþykkir beiðnina þína", + "joiningTitle": "Biður um að taka þátt í fundi…", + "joiningWithPasswordTitle": "Tekur þátt með lykilorði…", + "knockButton": "Biðja um að taka þátt", + "knockTitle": "Einhver vill taka þátt í fundinum", + "knockingParticipantList": "Listi yfir þátttakendur sem bíða", + "lobbyChatStartedNotification": "{{moderator}} hefur hafið spjall á biðsvæði við {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} hefur hafið spjall á biðsvæði við þig.", + "lobbyClosed": "Biðsvæðisrásinni hefur verið lokað.", + "nameField": "Settu inn nafnið þitt", + "notificationLobbyAccessDenied": "{{targetParticipantName}} hefur verið meinuð þátttaka af {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} hefur verið leyft að taka þátt af {{originParticipantName}}", + "notificationLobbyDisabled": "Biðsvæði hefur verið gert óvirkt af {{originParticipantName}}", + "notificationLobbyEnabled": "Biðsvæði hefur verið gert virkt af {{originParticipantName}}", + "notificationTitle": "Biðsvæði", + "passwordJoinButton": "Taka þátt", + "title": "Biðsvæði", + "toggleLabel": "Virkja biðsvæði" + }, + "localRecording": { + "clientState": { + "off": "Slökkt", + "on": "Kveikt", + "unknown": "Óþekkt" + }, + "dialogTitle": "Stýringar fyrir upptöku á tölvunni", + "duration": "Tímalengd", + "durationNA": "Ekki tiltækt", + "encoding": "Kóðun", + "label": "LOR", + "labelToolTip": "Upptaka á tölvunni er í gangi", + "localRecording": "Upptaka á tölvunni", + "me": "Ég", + "messages": { + "engaged": "Upptaka á tölvunni í gangi.", + "finished": "Upptökusetu {{token}} lokið. Sendu upptökuskrána til stjórnandans.", + "finishedModerator": "Upptökusetu {{token}} lokið. Upptaka hljóðrásar á þessari tölvu hefur verið vistuð. Biddu aðra þáttakendur um að senda inn upptökur þeirra.", + "notModerator": "Þú ert ekki stjórnandinn. Þú getur ekki byrjað eða stöðvað upptöku á tölvunni." + }, + "moderator": "Stjórnandi", + "no": "Nei", + "participant": "Þátttakandi", + "participantStats": "Tölfræði þátttakanda", + "selectTabTitle": "🎥 Veldu þennan flipa fyrir upptöku", + "sessionToken": "Setuteikn", + "start": "Hefja upptöku", + "stop": "Stöðva upptöku", + "stopping": "Stöðva upptöku", + "wait": "Bíddu á meðan við vistum upptökuna þína", + "yes": "Já" + }, + "lockRoomPassword": "lykilorð", + "lockRoomPasswordUppercase": "Lykilorð", + "lonelyMeetingExperience": { + "button": "Bjóddu öðrum", + "youAreAlone": "Þú ert sá eini á fundinum" + }, + "me": "ég", + "notify": { + "OldElectronAPPTitle": "Öryggisveikleiki!", + "allowAction": "Leyfa", + "allowedUnmute": "Þú getur afþaggað hljóðnemann þinn, ræst myndavélina þína eða deilt skjánum þínum.", + "audioUnmuteBlockedDescription": "Lokað hefur verið tímabundið fyrirá afþöggun hljóðnema vegna takmarkana í kerfinu.", + "audioUnmuteBlockedTitle": "Lokað á afþöggun hljóðnema1", + "chatMessages": "Skilaboð í spjalli", + "connectedOneMember": "{{name}} hefur bæst við á fundinn", + "connectedThreePlusMembers": "{{name}} og margir til viðbótar hafa bæst við á fundinn", + "connectedTwoMembers": "{{first}} og {{second}} hafa bæst við á fundinn", + "dataChannelClosed": "Gæðum myndmerkis er ábótavant", + "dataChannelClosedDescription": "Brúarrásin hefur verið aftengd og eru því gæði myndmerkis takmörkuð við lægstu stillinguna.", + "disabledIframe": "Ívafning (embedding) er aðeins ætluð sem sýnidæmi, þannig að þetta mun aftengjast eftir {{timeout}} mínútur.", + "disabledIframeSecondary": "Ívafning (embedding) {{domain}} er aðeins ætluð sem sýnidæmi, þannig að þetta mun aftengjast eftir {{timeout}} mínútur. Notaðu Jitsi sem þjónustu fyrir ívafningu í vinnuumhverfi!", + "disconnected": "aftengt", + "displayNotifications": "Birta tilkynningar frá", + "dontRemindMe": "Ekki minna mig á", + "focus": "Fjarfundur virkur", + "focusFail": "{{component}} er ekki tiltækt - prófa aftur eftir {{ms}} sek", + "gifsMenu": "GIPHY", + "groupTitle": "Tilkynningar", + "hostAskedUnmute": "Umsjónarmaðurinn myndi vilja að þú tækir til máls", + "invitedOneMember": "{{name}} hefur verið boðið", + "invitedThreePlusMembers": "{{name}} og {{count}} til viðbótar hefur verið boðið", + "invitedTwoMembers": "{{first}} og {{second}} hefur verið boðið", + "joinMeeting": "Taka þátt", + "kickParticipant": "{{kicked}} var hent út af {{kicker}}", + "leftOneMember": "{{name}} yfirgaf fundinn", + "leftThreePlusMembers": "{{name}} og margir til viðbótar hafa yfirgefið fundinn", + "leftTwoMembers": "{{first}} og {{second}} hafa yfirgefið fundinn", + "linkToSalesforce": "Tengill á Salesforce", + "linkToSalesforceDescription": "Þú getur tengt yfirlit fundarins við Salesforce-hlut.", + "linkToSalesforceError": "Ekki tókst að tengja fundinn á Salesforce", + "linkToSalesforceKey": "Tengja þennan fund", + "linkToSalesforceProgress": "Tengi fundinn á Salesforce…", + "linkToSalesforceSuccess": "Fundurinn var tengdur við Salesforce", + "localRecordingStarted": "{{name}} hefur byrjað upptöku á tölvunni sinni.", + "localRecordingStopped": "{{name}} hefur stöðvað upptöku á tölvunni sinni.", + "me": "Ég", + "moderationInEffectCSDescription": "Réttu upp hönd þú vilt deila skjánum þínum.", + "moderationInEffectCSTitle": "Umsjónarmaðurinn hefur lokað á skjádeilingu", + "moderationInEffectDescription": "Réttu upp hönd þú vilt taka til máls.", + "moderationInEffectTitle": "Umsjónarmaðurinn hefur lokað á hljóðnemann þinn", + "moderationInEffectVideoDescription": "Réttu upp hönd þú vilt ræsa myndavélina þína.", + "moderationInEffectVideoTitle": "Umsjónarmaðurinn hefur lokað á myndavélina þína", + "moderationRequestFromModerator": "Gestgjafinn myndi vilja að þú afþaggaðir hljóðnemann þinn", + "moderationRequestFromParticipant": "Vill fá að tala", + "moderationStartedTitle": "Umsjón hafin", + "moderationStoppedTitle": "Umsjón stöðvuð", + "moderationToggleDescription": "af {{participantDisplayName}}", + "moderator": "Þú ert núna umsjónarmaður", + "muted": "Þú byrjaðir samtalið með þaggað niður í þér.", + "mutedRemotelyDescription": "Þú getur alltaf afþaggað þig þegar þú ert tilbúinn til að tala. Þaggaðu svo aftur niður í hljóðnemanum svo að aukahávaði sé ekki að trufla fundinn.", + "mutedRemotelyTitle": "{{participantDisplayName}} hefur þaggað niður í þér", + "mutedTitle": "Það er þaggað niður í þér!", + "newDeviceAction": "Nota", + "newDeviceAudioTitle": "Nýtt hljóðtæki fannst", + "newDeviceCameraTitle": "Ný myndavél fannst", + "noiseSuppressionDesktopAudioDescription": "Ekki var hægt að gera truflanasíun virka á meðan deiling fór fram á hljóði, gerðu deilinguna óvirka og reyndu síðan aftur.", + "noiseSuppressionFailedTitle": "Mistókst að ræsa truflanasíun", + "noiseSuppressionStereoDescription": "Truflanasíun í víðómi er ekki studd ennþá.", + "oldElectronClientDescription1": "Þú virðist vera að nota gamla útgáfu af Jitsi Meet forritinu sem vitað er að sé með öryggisveilur. Gakktu úr skugga um að þú uppfærir í ", + "oldElectronClientDescription2": "nýjustu byggingarútgáfuna okkar", + "oldElectronClientDescription3": " núna!", + "participantWantsToJoin": "Vill taka þátt í fundinum", + "participantsWantToJoin": "Vilja taka þátt í fundinum", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) fjarlægt af öðrum þátttakanda", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) stillt af öðrum þátttakanda", + "raiseHandAction": "Réttu upp höndina", + "raisedHand": "Myndi vilja taka til máls.", + "raisedHands": "{{participantName}} og {{raisedHands}} til viðbótar", + "reactionSounds": "Gera hljóð óvirk", + "reactionSoundsForAll": "Gera hljóð óvirk fyrir alla", + "screenShareNoAudio": "Ekki var merkt við reitinn til að deila hljóði á skjánum til að velja glugga.", + "screenShareNoAudioTitle": "Gat ekki deilt kerfishljóði!", + "screenSharingAudioOnlyDescription": "Athugaðu að með því að deila skjánum þínum hefurðu áhrif á \"Bestu afköst\"-haminn og munt nota meiri bandbreidd.", + "screenSharingAudioOnlyTitle": "\"Bestu afköst\"-hamur", + "selfViewTitle": "Þú getur alltaf endurbirt sjálfsmyndina í stillingunum", + "somebody": "Einhver", + "startSilentDescription": "Tengstu fundinum aftur til að virkja hljóð", + "startSilentTitle": "Þú mættir með ekkert hljóðúttak!", + "suboptimalBrowserWarning": "Við erum ekki viss um að upplifun þín af fundinum verði neitt sérstök. Við erum alltaf að reyna að bæta þetta, en þangað til ættirðu frekar að nota einhvern af þeim vöfrum sem eru studdir að fullu.", + "suboptimalExperienceTitle": "Aðvörun vafra", + "unmute": "Afþagga", + "videoMutedRemotelyDescription": "Þú getur alltaf kveikt á því aftur.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} hefur slökkt á myndmerkinu frá þér", + "videoUnmuteBlockedDescription": "Lokað hefur verið tímabundið fyrirá afþöggun myndavélar og skjáborðsdeilingar vegna takmarkana í kerfinu.", + "videoUnmuteBlockedTitle": "Lokað er á afþöggun myndavélar og skjáborðsdeilingar!", + "viewLobby": "Skoða biðsvæði", + "waitingParticipants": "{{waitingParticipants}} manns", + "whiteboardLimitDescription": "Vistaðu vinnuna þína, þar sem takmörkum á fjölda notenda verður bráðum náð og teiknitaflan mun þá lokast.", + "whiteboardLimitTitle": "Notkun teiknitöflu" + }, + "participantsPane": { + "actions": { + "admit": "Hleypa að", + "admitAll": "Hleypa öllum að", + "allow": "Leyfa þátttakendum að:", + "allowVideo": "Leyfa myndmerki", + "askUnmute": "Spyrja til að afþagga", + "audioModeration": "Afþagga sjálfa sig", + "blockEveryoneMicCamera": "Loka á hljóðnema og myndavél allra", + "breakoutRooms": "Aukarásir", + "invite": "Bjóddu einhverjum", + "moreModerationActions": "Fleiri umsýsluvalkostir", + "moreModerationControls": "Fleiri umsýslustýringar", + "moreParticipantOptions": "Fleiri valkostir þátttakenda", + "mute": "Þagga niður", + "muteAll": "Þagga niður allt", + "muteEveryoneElse": "Þagga niður í öllum öðrum", + "reject": "Hafna", + "stopEveryonesVideo": "Stöðva myndmerkið hjá öllum", + "stopVideo": "Stöðva myndmerki", + "unblockEveryoneMicCamera": "Opna á hljóðnema og myndavél allra", + "videoModeration": "Ræsa myndmerkin þeirra" + }, + "close": "Loka", + "headings": { + "lobby": "Biðsvæði ({{count}})", + "participantsList": "Þátttakendur á fundinum ({{count}})", + "visitorRequests": " (beiðnir {{count}})", + "visitors": "Gestir {{count}}", + "waitingLobby": "Bíða á biðsvæði ({{count}})" + }, + "search": "Leita að þátttakendum", + "title": "Þátttakendur" + }, + "passwordDigitsOnly": "Allt að {{number}} stafir", + "passwordSetRemotely": "Sett af öðrum þátttakanda", + "pinParticipant": "{{participantName}} - Festa", + "pinnedParticipant": "Þátttakandinn er festur", + "polls": { + "answer": { + "skip": "Sleppa", + "submit": "Senda inn" + }, + "by": "Eftir {{ name }}", + "create": { + "addOption": "Bæta við valkosti", + "answerPlaceholder": "Valkostur {{index}}", + "cancel": "Hætta við", + "create": "Búa til könnun", + "pollOption": "Valkostur í könnun {{index}}", + "pollQuestion": "Spurning könnunar", + "questionPlaceholder": "Spurðu spurningar", + "removeOption": "Fjarlægja valkost", + "send": "Senda" + }, + "errors": { + "notUniqueOption": "Valkostir hljóta að vera einstök" + }, + "notification": { + "description": "Opnaðu könnunarflipann til að greiða atkvæði", + "title": "Nýrri könnun var bætt á þennan fund" + }, + "results": { + "changeVote": "Breyta atkvæði", + "empty": "Það eru ennþá engar kannanir á fundinum. Byrjaðu könnun hér!", + "hideDetailedResults": "Fela nánari upplýsingar", + "showDetailedResults": "Birta nánari upplýsingar", + "vote": "Greiða atkvæði" + } + }, + "poweredby": "keyrt með", + "prejoin": { + "audioAndVideoError": "Villa í hljóð og myndmerki:", + "audioDeviceProblem": "Það kom upp vandamál með hljóðtækið þitt", + "audioOnlyError": "Villa í hljóði:", + "audioTrackError": "Gat ekki búið til hljóðrás.", + "callMe": "Hringdu í mig", + "callMeAtNumber": "Hringdu í mig í þessu númeri:", + "calling": "Hringi", + "configuringDevices": "Stilli tæki…", + "connectedWithAudioQ": "Ert þú tengd/ur með hljóði?", + "connection": { + "good": "Internettengingin þín lítur vel út!", + "nonOptimal": "Internettengingin þín er ekki upp á sitt besta", + "poor": "Þú ert með lélega internettengingu" + }, + "connectionDetails": { + "audioClipping": "Við gerum ráð fyrir að hljóðið frá þér klippist.", + "audioHighQuality": "Við gerum ráð fyrir að hljóðið frá þér sé með góð gæði.", + "audioLowNoVideo": "Við gerum ráð fyrir að hljóðið frá þér sé lélegt og ekkert myndmerki berist.", + "goodQuality": "Frábært! Hljóð og myndgæðin frá þér ættu að vera góð.", + "noMediaConnectivity": "Við fundum enga leið til að koma á gagnatengingu fyrir þessa prófun. Venjulega gerist slíkt af völdum eldveggja eða NAT.", + "noVideo": "Við gerum ráð fyrir að myndmerkið frá þér verði ömurlegt.", + "undetectable": "Ef þú getur enn ekki hringt inni í vafranum, þá mælum við með að þú athugir vandlega hvort hátalarar, hljóðnemi og myndavél séu rétt sett upp, að þú hafir gefið vafranum þínum heimildir til að nota hljóðnemann þinn og myndavélina, og að vafrinn þinn sé uppfærður í nýjustu útgáfu. Ef þú átt þá enn í vandræðum með hringingar, ættirðu að hafa samband við forritara vefforritsins.", + "veryPoorConnection": "Við gerum ráð fyrir að gæði símtala frá þér verði verulega ömurleg.", + "videoFreezing": "Við gerum ráð fyrir að myndmerkið þitt frjósi, verði svart eða sé stallað.", + "videoHighQuality": "Við gerum ráð fyrir að myndmerkið frá þér sé með góð gæði.", + "videoLowQuality": "Við gerum ráð fyrir að myndmerkið frá þér sé með lítil gæði varðandi rammatíðni og upplausn.", + "videoTearing": "Við gerum ráð fyrir að myndmerkið þitt sé stallað eða sé með sjónrænar truflanir." + }, + "copyAndShare": "Afrita og deila fundartengli", + "dialInMeeting": "Hringdu inn á fundinn", + "dialInPin": "Hringdu inn á fundinn og settu inn PIN-kóða:", + "dialing": "Hringi", + "doNotShow": "Ekki birta þetta aftur", + "errorDialOut": "Gat ekki hringt út", + "errorDialOutDisconnected": "Gat ekki hringt út. Aftengt", + "errorDialOutFailed": "Gat ekki hringt út. Símtal mistókst", + "errorDialOutStatus": "Villa við að ná í stöðu úthringingar", + "errorMissingName": "Settu inn nafnið þitt til að taka þátt í fundinum", + "errorNoPermissions": "Þú þarft að virkja aðgang að hljóðnema og myndavél", + "errorStatusCode": "Villa við að hringja út, stöðukóði: {{status}}", + "errorValidation": "Sannprófun símanúmers mistókst", + "iWantToDialIn": "Ég vil hringja inn", + "initiated": "Símtal hafið", + "joinAudioByPhone": "Taka þátt með símahljóði", + "joinMeeting": "Taka þátt í fundi", + "joinMeetingInLowBandwidthMode": "Taka þátt í ham fyrir litla bandbreidd", + "joinWithoutAudio": "Taka þátt án hljóðs", + "keyboardShortcuts": "Virkja flýtilykla á lyklaborði", + "linkCopied": "Tengill afritaður á klippispjald", + "lookGood": "Allt virkar eins og á að sér", + "or": "eða", + "premeeting": "Á undan fundi", + "proceedAnyway": "Halda samt áfram", + "screenSharingError": "Villa í skjádeilingu:", + "startWithPhone": "Byrja með símahljóði", + "unsafeRoomConsent": "Ég skil áhættuna, ég vil taka þátt í fundinum", + "videoOnlyError": "Villa í myndmerki:", + "videoTrackError": "Gat ekki búið til myndrás.", + "viewAllNumbers": "skoða öll númer" + }, + "presenceStatus": { + "busy": "Upptekin/n", + "calling": "Hringi…", + "connected": "Tengt", + "connecting": "Tengist…", + "connecting2": "Tengist*…", + "disconnected": "Aftengt", + "expired": "Útrunnið", + "ignored": "Hunsað", + "initializingCall": "Ræsi símtal…", + "invited": "Boðið", + "rejected": "Hafnað", + "ringing": "Hringing…" + }, + "profile": { + "avatar": "auðkennismynd", + "setDisplayNameLabel": "Nafn", + "setEmailInput": "Settu inn tölvupóstfang", + "setEmailLabel": "Gravatar-tölvupóstfang", + "title": "Persónusnið" + }, + "raisedHand": "Myndi vilja taka til máls", + "raisedHandsLabel": "Fjöldi uppréttra handa", + "record": { + "already": { + "linked": "Fundurinn er þegar tengdur við þennan Salesforce-hlut." + }, + "type": { + "account": "Notandaaðgangur", + "contact": "Hafa samband", + "lead": "Leiðandi", + "opportunity": "Tækifæri", + "owner": "Eigandi" + } + }, + "recording": { + "authDropboxText": "Senda inn á Dropbox", + "availableSpace": "Laust pláss: {{spaceLeft}} MB (um það bil {{duration}} mínútur í upptöku)", + "beta": "BETA", + "busy": "Við erum að reyna að losa um einhver tilföng fyrir upptöku. Reyndu aftur eftir nokkrar mínútur.", + "busyTitle": "Allar upptökuvélar eru uppteknar í augnablikinu", + "copyLink": "Afrita tengil", + "error": "Upptaka mistókst. Reyndu aftur.", + "errorFetchingLink": "Villa við að sækja tengil á upptöku.", + "expandedOff": "Upptaka hefur verið stöðvuð", + "expandedOn": "Verið er að taka upp fundinn.", + "expandedPending": "Verið er að ræsa upptöku…", + "failedToStart": "Tókst ekki að ræsa upptöku", + "fileSharingdescription": "Deila tengli á upptöku með þátttakendum á fundinum", + "highlight": "Áherslulita", + "highlightMoment": "Áherslulita augnablik", + "highlightMomentDisabled": "Þú getur áherslulitað tímabil þegar upptakan hefst", + "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", + "localRecordingStartWarning": "Vertu viss um að þú stöðvir upptökuna áður en farið er út af fundinum til að vista hana.", + "localRecordingStartWarningTitle": "Stöðvaðu upptöku til að vista hana", + "localRecordingVideoStop": "Ef þú stöðvar myndmerkið þitt stöðvast einnig upptakan á tölvunni. Ertu viss um að þú viljir halda áfram?", + "localRecordingVideoWarning": "Til að taka upp myndmerkið þitt þarf það að vera í gangi þegar upptakan er sett af stað", + "localRecordingWarning": "Gakktu úr skugga um að þú veljir fyrirliggjandi flipa til að nota rétt mynd- og hljóðmerki.", + "loggedIn": "Skráð inn sem {{userName}}", + "noMicPermission": "Ekki var hægt að útbúa hljóðnemarás. Veittu heimildir til að nota hljóðnemann.", + "noStreams": "Ekkert hljóð eða myndstreymi fannst", + "off": "Upptaka stöðvuð", + "offBy": "{{name}} stöðvaði upptökuna", + "on": "Upptaka hafin", + "onBy": "{{name}} byrjaði upptökuna", + "onlyRecordSelf": "Taka einungis upp mín eigin hljóð og myndstreymi", + "pending": "Undirbý að taka upp fundinn…", + "recordAudioAndVideo": "Taka upp hljóð og myndmerki", + "recordTranscription": "Taka upp textaumritun", + "saveLocalRecording": "Vista upptökuskrá á eigin tölvu (Beta-prófunarútgáfa)", + "serviceDescription": "Upptakan þín verður vistuð af upptökuþjónustunni", + "serviceDescriptionCloud": "Upptaka á tölvuský", + "serviceDescriptionCloudInfo": "Upptökurm af fundum er eytt sjálfkrafa 24klst eftir upptöku þeirra.", + "serviceName": "Upptökuþjónusta", + "sessionAlreadyActive": "Það er þegar verið að taka upp eða streyma beint þessari setu.", + "showAdvancedOptions": "Ítarlegir valkostir", + "signIn": "Skrá inn", + "signOut": "Skrá út", + "surfaceError": "Veldu núverandi flipa.", + "title": "Upptaka", + "unavailable": "Úbbs! {{serviceName}} er upptekið í augnablikinu. Við erum að vinna í þessu vandamáli. Reyndu aftur síðar.", + "unavailableTitle": "Upptaka er ekki tiltæk", + "uploadToCloud": "Senda inn á tölvuskýið" + }, + "screenshareDisplayName": "Skjár hjá {{name}}", + "sectionList": { + "pullToRefresh": "Toga til að endurlesa" + }, + "security": { + "about": "Þú getur bætt $t(lockRoomPassword)i á fundinn. Þátttakendur munu þurfa að gefa upp $t(lockRoomPassword)ið áður en þeim er hleypt inn á fundinn.", + "aboutReadOnly": "Þátttakendur með umsjónarréttindi geta bætt $t(lockRoomPassword)i á fundinn. Þátttakendur munu þurfa að gefa upp $t(lockRoomPassword)ið áður en þeim er hleypt inn á fundinn.", + "insecureRoomNameWarningNative": "Heiti spjallrásarinnar er ekki öruggt. Óæskilegir þátttakendur gætu reynt að taka þátt í fundinum þínum. {{recommendAction}} Sjáðu meira um hvernig þú getur gert fundinn öruggari ", + "insecureRoomNameWarningWeb": "Heiti spjallrásarinnar er ekki öruggt. Óæskilegir þátttakendur gætu reynt að taka þátt í fundinum þínum. {{recommendAction}} Sjáðu meira hérum hvernig þú getur gert fundinn öruggari.", + "title": "Öryggisvalkostir", + "unsafeRoomActions": { + "meeting": "Íhugaðu að gera fundinn þinn öruggari með því að nota öryggishnappinn.", + "prejoin": "Reyndu að nota einstakara heiti.", + "welcome": "Reyndu að nota einstakara heiti, eða veldu eina af tillögunum." + } + }, + "settings": { + "audio": "Hljóð", + "buttonLabel": "Stillingar", + "calendar": { + "about": "Samþætting dagatals við {{appName}} er notuð til að tryggja öruggan aðgang að dagatalinu þínu þannig að hægt sé að lesa fyrirliggjandi viðburði.", + "disconnect": "Aftengjast", + "microsoftSignIn": "Skrá inn með Microsoft", + "signedIn": "Er núna með aðgang að atburðum í dagatali fyrir {{email}}. Smelltu á 'Aftengjast' til að hætta að ná í atburði í dagatali.", + "title": "Dagatal" + }, + "desktopShareFramerate": "Rammatíðni skjáborðsdeilingar", + "desktopShareHighFpsWarning": "Hærri rammatíðni við deilingu skjáborðsins getur haft áhrif á bandbreiddina þína. Það þarf að endurræsa skjádeilinguna til að nýju stillingarnar taki gildi.", + "desktopShareWarning": "Það þarf að endurræsa skjádeilinguna til að nýju stillingarnar taki gildi.", + "devices": "Tæki", + "followMe": "Allir fylgjast með mér", + "framesPerSecond": "rammar-á-sekúndu", + "incomingMessage": "Móttekin skilaboð", + "language": "Tungumál", + "loggedIn": "Skráð inn sem {{name}}", + "maxStageParticipants": "Hámarksfjöldi þátttakenda sem hægt er að festa á aðalgluggann", + "microphones": "Hljóðnemar", + "moderator": "Stjórnandi", + "moderatorOptions": "Valkostir umsjónarmanns", + "more": "Almennt", + "name": "Nafn", + "noDevice": "Ekkert", + "notifications": "Tilkynningar", + "participantJoined": "Þátttakandi tók þátt", + "participantKnocking": "Þátttakandi kom inn á biðsvæði", + "participantLeft": "Þátttakandi fór", + "playSounds": "Spila hljóð við", + "reactions": "Viðbrögð á fundi", + "sameAsSystem": "Sama og kerfisins ({{label}})", + "selectAudioOutput": "Hljóðúttak", + "selectCamera": "Myndavél", + "selectMic": "Hljóðnemi", + "selfView": "Sjálfsmynd", + "shortcuts": "Flýtilyklar", + "speakers": "Ræðumenn", + "startAudioMuted": "Allir byrja hljóðlaust", + "startReactionsMuted": "Þagga niður í viðbragðshljóðum fyrir alla", + "startVideoMuted": "Allir byrja faldir", + "talkWhileMuted": "Tala á meðan er þaggað niður", + "title": "Stillingar", + "video": "Myndmerki" + }, + "settingsView": { + "advanced": "Nánar", + "alertCancel": "Hætta við", + "alertOk": "Í lagi", + "alertTitle": "Aðvörun", + "alertURLText": "Slóðin á netþjóninn sem sett var inn er ógild", + "apply": "Virkja", + "buildInfoSection": "Byggingarupplýsingar", + "conferenceSection": "Fjarfundur", + "disableCallIntegration": "Gera samþættingu raunverulegra símtala óvirka", + "disableCrashReporting": "Gera hrunskýrslur óvirkar", + "disableCrashReportingWarning": "Ertu viss um að þú viljir gera hrunskýrslur óvirkar? Þessi stilling virkjast eftir að þú endurræsir forritið.", + "disableP2P": "Gera jafningjaham (peer-to-peer) óvirkan", + "displayName": "Birtingarnafn", + "displayNamePlaceholderText": "Dæmi: Jóna Jóns", + "email": "Tölvupóstfang", + "emailPlaceholderText": "póstfang@lén.is", + "gavatarMessage": "Ef tölvupóstfangið þitt er tengt Gravatar-aðgangi, munum við nota hann til að birta auðkennismyndina þína.", + "goTo": "Fara á", + "header": "Stillingar", + "help": "Hjálp", + "links": "Tenglar", + "privacy": "Meðferð persónuupplýsinga", + "profileSection": "Persónusnið", + "sdkVersion": "SDK-útgáfa", + "serverURL": "Slóð á netþjón", + "showAdvanced": "Birta ítarlegar stillingar", + "startCarModeInLowBandwidthMode": "Ræsa bílaham í ham fyrir litla bandbreidd", + "startWithAudioMuted": "Byrja með þaggað niður í hljóði", + "startWithVideoMuted": "Byrja með myndmerki án hljóðs", + "terms": "Skilmálar", + "version": "Útgáfa forrits" + }, + "share": { + "dialInfoText": "\n\n=====\n\nViltu bara hringja inn með símanum þínum?\n\n{{defaultDialInNumber}}Smelltu hér til að sjá innhringinúmerin fyrir þennan fund\n{{dialInfoPageUrl}}", + "mainText": "Smelltu á eftirfarandi tengil til að taka þátt í fundinum:\n{{roomUrl}}" + }, + "speaker": "Ræðumaður", + "speakerStats": { + "angry": "Reiði", + "disgusted": "Hneykslun", + "displayEmotions": "Birta tjáningartákn", + "fearful": "Hræðsla", + "happy": "Gleði", + "hours": "{{count}}klst", + "minutes": "{{count}}mín", + "name": "Nafn", + "neutral": "Hlutlaus", + "sad": "Leiði", + "search": "Leita", + "searchHint": "Leita að þátttakendum", + "seconds": "{{count}}sek", + "speakerStats": "Tölfræði þátttakenda", + "speakerTime": "Tími ræðumanns", + "surprised": "Hissa" + }, + "startupoverlay": { + "genericTitle": "Fundurinn þarf að nota hljóðnemann þinn og myndavélina.", + "policyText": " ", + "title": "{{app}} þarf að nota hljóðnema og myndavél." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Taka þátt aftur", + "text": "Ýttu á Taka þátt aftur til að tengjast aftur.", + "title": "Myndsamtalið þitt var trufla vegna þess að tölvan þín svæfðist." + }, + "termsView": { + "title": "Skilmálar" + }, + "toggleTopPanelLabel": "Víxla toppspjaldi af/á", + "toolbar": { + "Settings": "Stillingar", + "accessibilityLabel": { + "Settings": "Opna stillingar", + "audioOnly": "Víxla einungis hljóð af/á", + "audioRoute": "Veldu hljóðtæki", + "boo": "Vanþóknun", + "breakoutRooms": "Aukarásir", + "callQuality": "Sýsla með gæði myndmerkis", + "carmode": "Bílastilling", + "cc": "Víxla skjátextum af/á", + "chat": "Opna / Loka spjalli", + "clap": "Klappa", + "closeChat": "Loka spjalli", + "closeMoreActions": "Loka valmynd fyrir fleiri aðgerðir", + "closeParticipantsPane": "Loka spjaldi með þátttakendum", + "collapse": "Fella saman", + "document": "Víxla deildu skjali af/á", + "documentClose": "Loka deildu skjali", + "documentOpen": "Opna deilt skjal", + "download": "Sækja forritin okkar", + "embedMeeting": "Ívefja fund", + "endConference": "Ljúka fundi fyrir alla", + "enterFullScreen": "Skoða á öllum skjánum", + "enterTileView": "Opna reitasýn", + "exitFullScreen": "Fara úr skjáfylliham", + "exitTileView": "Loka reitasýn", + "expand": "Fletta út", + "feedback": "Senda inn umsögn", + "fullScreen": "Víxla skjáfylli af/á", + "giphy": "Víxla GIPHY-valmynd af/á", + "grantModerator": "Veita umsjónarréttindi", + "hangup": "Yfirgefa fundinn", + "heading": "Verkfærastika", + "help": "Hjálp", + "hideWhiteboard": "Fela teiknitöflu", + "invite": "Bjóða fólki", + "kick": "Henda þátttakanda út", + "laugh": "Hlátur", + "leaveConference": "Yfirgefa fund", + "like": "Þumlar upp", + "linkToSalesforce": "Tengill á Salesforce", + "lobbyButton": "Gera biðsvæðisham virkan/óvirkan", + "localRecording": "Víxla stýringum fyrir upptöku á tölvunni af/á", + "lockRoom": "Víxla lykilorði fundar af/á", + "lowerHand": "Leggja niður höndina", + "moreActions": "Fleiri aðgerðir", + "moreActionsMenu": "Valmynd fyrir fleiri aðgerðir", + "moreOptions": "Birta fleiri valkosti", + "mute": "Þagga niður í hljóðnema", + "muteEveryone": "Þagga niður í öllum", + "muteEveryoneElse": "Þagga niður í öllum öðrum", + "muteEveryoneElsesVideoStream": "Stöðva myndmerkið hjá öllum öðrum", + "muteEveryonesVideoStream": "Stöðva myndmerkið hjá öllum", + "muteGUMPending": "Tengi hljóðnemann þinn", + "noiseSuppression": "Truflanasíun", + "openChat": "Opna spjall", + "participants": "Opna spjald með þátttakendum", + "pip": "Víxla mynd-í-mynd-ham af/á", + "privateMessage": "Senda einkaskilaboð", + "profile": "Breyta persónusniðinu þínu", + "raiseHand": "Rétta upp höndina", + "reactions": "Viðbrögð", + "reactionsMenu": "Valmynd fyrir viðbrögð", + "recording": "Víxla upptöku af/á", + "remoteMute": "Þagga niður í þátttakanda", + "remoteVideoMute": "Gera myndavél óvirka hjá þátttakanda", + "security": "Öryggisvalkostir", + "selectBackground": "Veldu bakgrunn", + "selfView": "Víxla sjálfsmynd af/á", + "shareRoom": "Bjóddu einhverjum", + "shareYourScreen": "Byrjaðu að deila skjánum þínum", + "shareaudio": "Deila hljóði", + "sharedvideo": "Deila myndmerki", + "shortcuts": "Víxla flýtilyklum af/á", + "show": "Birta í glugga", + "showWhiteboard": "Birta teiknitöflu", + "silence": "Þögn", + "speakerStats": "Víxla tölfræði þátttakenda af/á", + "stopScreenSharing": "Hætta að deila skjánum þínum", + "stopSharedVideo": "Stöðva myndmerki", + "surprised": "Hissa", + "tileView": "Víxla reitasýn af/á", + "toggleCamera": "Víxla myndavél", + "toggleFilmstrip": "Víxla filmubút af/á", + "unmute": "Kveikja á hljóðnema", + "videoblur": "Víxla móðun myndmerkis af/á", + "videomute": "Stöðva myndavélina", + "videomuteGUMPending": "Tengi myndavélina þína", + "videounmute": "Ræsa myndavélina" + }, + "addPeople": "Bæta fólki við símtalið þitt", + "audioOnlyOff": "Gera ham fyrir litla bandbreidd óvirkan", + "audioOnlyOn": "Virkja ham fyrir litla bandbreidd", + "audioRoute": "Veldu hljóðtæki", + "audioSettings": "Hljóðstillingar", + "authenticate": "Auðkenna", + "boo": "Boo", + "callQuality": "Sýsla með gæði myndmerkis", + "chat": "Opna / Loka spjalli", + "clap": "Klappa", + "closeChat": "Loka spjalli", + "closeParticipantsPane": "Loka spjaldi með þátttakendum", + "closeReactionsMenu": "Loka valmynd fyrir viðbrögð", + "disableNoiseSuppression": "Gera truflanasíun óvirka", + "disableReactionSounds": "Þú getur gert viðbragðahljóð óvirk fyrir þennan fund", + "documentClose": "Loka deildu skjali", + "documentOpen": "Opna deilt skjal", + "download": "Sækja forritin okkar", + "e2ee": "Enda-í-enda dulritun", + "embedMeeting": "Ívefja fund", + "enableNoiseSuppression": "Virkja truflanasíun", + "endConference": "Ljúka fundi fyrir alla", + "enterFullScreen": "Skoða á öllum skjánum", + "enterTileView": "Opna reitasýn", + "exitFullScreen": "Fara úr skjáfylliham", + "exitTileView": "Loka reitasýn", + "feedback": "Senda inn umsögn", + "giphy": "Víxla GIPHY-valmynd af/á", + "hangup": "Yfirgefa fundinn", + "help": "Hjálp", + "hideWhiteboard": "Fela teiknitöflu", + "invite": "Bjóða fólki", + "joinBreakoutRoom": "Taka þátt í aukarás", + "laugh": "Hlátur", + "leaveBreakoutRoom": "Yfirgefa aukarás", + "leaveConference": "Yfirgefa fund", + "like": "Þumlar upp", + "linkToSalesforce": "Tengill á Salesforce", + "lobbyButtonDisable": "Gera biðsvæðisham óvirkan", + "lobbyButtonEnable": "Virkja biðsvæðisham", + "login": "Skrá inn", + "logout": "Skrá út", + "lowerYourHand": "Leggja niður höndina", + "moreActions": "Fleiri aðgerðir", + "moreOptions": "Fleiri valkostir", + "mute": "Þagga niður í hljóðnema", + "muteEveryone": "Þagga niður í öllum", + "muteEveryonesVideo": "Gera myndavélar allra óvirka", + "muteGUMPending": "Tengi hljóðnemann þinn", + "noAudioSignalDesc": "Ef þú þaggaðir ekki viljandi niður í þessu í kerfisstillingunum eða með vélbúnaðarrofa, þá ættirðu að íhuga að skipta um hljóðtæki.", + "noAudioSignalDescSuggestion": "Ef þú þaggaðir ekki viljandi niður í þessu í kerfisstillingunum eða með vélbúnaðarrofa, þá ættirðu að íhuga að skipta yfir á hljóðtækið sem stungið er upp á.", + "noAudioSignalDialInDesc": "Þú getur einnig hringt þig inn með:", + "noAudioSignalDialInLinkDesc": "Innhringinúmer", + "noAudioSignalTitle": "Það er ekkert inntak að koma frá hljóðnemanum þínum!", + "noiseSuppression": "Truflanasíun", + "noisyAudioInputDesc": "Það lítur út fyrir að hljóðneminn þinn sé að gefa frá sér truflanir, íhugaðu að þagga niður í honum eða skipta um hljóðtæki.", + "noisyAudioInputTitle": "Hljóðneminn þinn lítur út fyrir að gefa frá sér truflanir!", + "openChat": "Opna spjall", + "openReactionsMenu": "Opna valmynd fyrir viðbrögð", + "participants": "Þátttakendur", + "pip": "Fara í mynd-í-mynd-ham", + "privateMessage": "Senda einkaskilaboð", + "profile": "Breyta persónusniðinu þínu", + "raiseHand": "Rétta upp höndina", + "raiseYourHand": "Rétta upp höndina", + "reactionBoo": "Senda vanþóknun-viðbrögð", + "reactionClap": "Senda klapp-viðbrögð", + "reactionLaugh": "Senda hlátur-viðbrögð", + "reactionLike": "Senda þumal-upp-viðbrögð", + "reactionSilence": "Senda þögn-viðbrögð", + "reactionSurprised": "Senda hissa-viðbrögð", + "reactions": "Viðbrögð", + "security": "Öryggisvalkostir", + "selectBackground": "Veldu bakgrunn", + "shareRoom": "Bjóddu einhverjum", + "shareaudio": "Deila hljóði", + "sharedvideo": "Deila myndmerki", + "shortcuts": "Skoða flýtilykla", + "showWhiteboard": "Birta teiknitöflu", + "silence": "Þögn", + "speakerStats": "Tölfræði þátttakenda", + "startScreenSharing": "Hefja skjádeilingu", + "startSubtitles": "Skjátextar • {{language}}", + "stopAudioSharing": "Hætta deilingu hljóðs", + "stopScreenSharing": "Hætta skjádeilingu", + "stopSharedVideo": "Stöðva myndmerki", + "stopSubtitles": "Hætta birtingu skjátexta", + "surprised": "Hissa", + "talkWhileMutedPopup": "Ertu að reyna að tala? Þaggað er niður í þér.", + "tileViewToggle": "Víxla reitasýn af/á", + "toggleCamera": "Víxla myndavél", + "unmute": "Kveikja á hljóðnema", + "videoSettings": "Myndstillingar", + "videomute": "Stöðva myndavélina", + "videomuteGUMPending": "Tengi myndavélina þína", + "videounmute": "Ræsa myndavélina" + }, + "transcribing": { + "ccButtonTooltip": "Hefja / Hætta birtingu skjátexta", + "error": "Umritun mistókst. Reyndu aftur.", + "expandedLabel": "Umritun er virk", + "failedToStart": "Tókst ekki að ræsa umritun", + "labelToolTip": "Verið er að taka umrita (transcribe) fundinn", + "off": "Umritun stöðvuð", + "on": "Umritun hafin", + "pending": "Undirbý að taka umrita fundinn…", + "sourceLanguageDesc": "Núna er tungumál fundarins stillt á {{sourceLanguage}}.
Þú getur breytt því ", + "sourceLanguageHere": "hér", + "start": "Hefja birtingu skjátexta", + "stop": "Hætta birtingu skjátexta", + "subtitles": "Skjátextar", + "subtitlesOff": "Slökkt", + "tr": "UR" + }, + "unpinParticipant": "{{participantName}} - Losa", + "userMedia": { + "grantPermissions": "Gefðu heimild til að nota myndavél og hljóðnema." + }, + "videoSIPGW": { + "busy": "Við erum að reyna að losa um einhver tilföng. Reyndu aftur eftir nokkrar mínútur.", + "busyTitle": "Fjarfundaþjónustan er upptekin í augnablikinu", + "errorAlreadyInvited": "{{displayName}} hefur þegar verið boðið", + "errorInvite": "Fjarfundi hefur ekki verið komið á. Reyndu aftur síðar.", + "errorInviteFailed": "Við erum að vinna í þessu vandamáli. Reyndu aftur síðar.", + "errorInviteFailedTitle": "Mistókst að bjóða {{displayName}}", + "errorInviteTitle": "Villa við að bjóða á fjarfund", + "pending": "{{displayName}} hefur verið boðið" + }, + "videoStatus": { + "adjustFor": "Aðlaga fyrir:", + "audioOnly": "HLJ", + "audioOnlyExpanded": "Þú ert í ham fyrir litla bandbreidd. Í þessum ham geturðu einungis heyrt hljóð og séð deilda skjái.", + "bestPerformance": "Bestu afköst", + "callQuality": "Gæði myndmerkis (0 fyrir mestu afköst, 3 fyrir mestu gæði)", + "hd": "HD", + "hdTooltip": "Skoða myndmerki í hágæðum", + "highDefinition": "Hágæði", + "highestQuality": "Mestu gæði", + "labelTooiltipNoVideo": "Ekkert myndmerki", + "labelTooltipAudioOnly": "Hamur fyrir litla bandbreidd er virkur", + "ld": "LD", + "ldTooltip": "Skoða myndmerki í lággæðum", + "lowDefinition": "Lággæði", + "performanceSettings": "Stillingar afkasta", + "recording": "Upptaka í gangi", + "sd": "SD", + "sdTooltip": "Skoða myndmerki í staðalgæðum", + "standardDefinition": "Staðalgæði", + "streaming": "Streymi í gangi" + }, + "videothumbnail": { + "connectionInfo": "Upplýsingar um tengingu", + "domute": "Þagga niður", + "domuteOthers": "Þagga niður í öllum öðrum", + "domuteVideo": "Gera myndavél óvirka", + "domuteVideoOfOthers": "Gera myndavélar allra hinna óvirkar", + "flip": "Fletta", + "grantModerator": "Veita umsjónarréttindi", + "hideSelfView": "Fela sjálfsmynd", + "kick": "Henda út", + "mirrorVideo": "Spegla myndmerkinu mínu", + "moderator": "Umsjónarmaður", + "mute": "Þaggað niður í þáttakanda", + "muted": "Þaggað", + "pinToStage": "Festa í glugga", + "remoteControl": "Ræsa / Stöðva fjarstýringu", + "screenSharing": "Þátttakandi er að deila skjánum sínum", + "show": "Birta í glugga", + "showSelfView": "Birta sjálfsmynd", + "unpinFromStage": "Losa", + "verify": "Sannreyna þátttakanda", + "videoMuted": "Myndavél óvirk", + "videomute": "Þátttakandi hefur stöðvað myndavél" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Núverandi bakgrunnur: {{background}}", + "selectBackground": "Veldu bakgrunn" + }, + "addBackground": "Bæta við bakgrunni", + "apply": "Virkja", + "backgroundEffectError": "Ekki tókst að nota virkja bakgrunnsbrellur.", + "blur": "Móða", + "deleteImage": "Eyða mynd", + "desktopShare": "Skjáborðssameign", + "desktopShareError": "Ekki tókst að búa til skjáborðssameign", + "image1": "Strönd", + "image2": "Hvítur hlutlaus veggur", + "image3": "Hvítt autt herbergi", + "image4": "Lampi á svörtu gólfi", + "image5": "Fjall", + "image6": "Skógur ", + "image7": "Sólarupprás", + "none": "Ekkert", + "pleaseWait": "Hinkraðu aðeins…", + "removeBackground": "Fjarlægja bakgrunn", + "slightBlur": "Hálfmóskað", + "title": "Sýndarbakgrunnar", + "uploadedImage": "Innsend mynd {{index}}", + "webAssemblyWarning": "WebAssembly er ekki stutt", + "webAssemblyWarningDescription": "WebAssembly er óvirkt eða ekki stutt af þessum vafra" + }, + "visitors": { + "chatIndicator": "(gestur)", + "labelTooltip": "Fjöldi gesta: {{count}}", + "notification": { + "description": "Til að taka þátt skaltu rétta upp höndina", + "title": "Þú ert gestur á fundinum" + } + }, + "volumeSlider": "Hljóðstyrkssleði", + "welcomepage": { + "accessibilityLabel": { + "join": "Ýttu til að taka þátt", + "roomname": "Settu inn nafn á fjarfundi" + }, + "addMeetingName": "Bættu við heiti fundar", + "appDescription": "Leggðu í'ann, spjallaðu í mynd við allt teymið þitt. Eiginlega ættirðu að bjóða öllum sem þú þekkir. {{app}} er að fullu dulrituð fjarfundalausn, með 100% opinn grunnkóða, sem þú getur notað allan daginn, alla daga, ókeypis — án þess að þurfa skráðan aðgang.", + "audioVideoSwitch": { + "audio": "Tal", + "video": "Myndmerki" + }, + "calendar": "Dagatal", + "connectCalendarButton": "Tengdu dagatalið þitt", + "connectCalendarText": "Tengdu dagatalið þitt til að geta séð alla fundina þína í {{app}}. Að auki geturðu bætt fundum {{provider}} við dagatalið og ræst þá með einum smelli.", + "enterRoomTitle": "Byrja nýjan fund", + "getHelp": "Fá aðstoð", + "go": "Af stað", + "goSmall": "Af stað", + "headerSubtitle": "Öruggir hágæða myndfundir", + "headerTitle": "Jitsi Meet", + "info": "Innhringingarupplýsingar", + "jitsiOnMobile": "Jitsi á snjallsímum – sæktu forritin okkar og byrjaðu fundi hvar sem er", + "join": "BÚA TIL / TAKA ÞÁTT", + "logo": { + "calendar": "Táknmerki dagatals", + "desktopPreviewThumbnail": "Smámynd forskoðunar á skjáborði", + "googleLogo": "Táknmerki Google", + "logoDeepLinking": "Táknmerki Jitsi Meet", + "microsoftLogo": "Táknmerki Microsoft", + "policyLogo": "Táknmerki stefnu" + }, + "meetingsAccessibilityLabel": "Fundir", + "mobileDownLoadLinkAndroid": "Sæktu snjallsímaforritið fyrir Android", + "mobileDownLoadLinkFDroid": "Sæktu snjallsímaforritið úr F-Droid", + "mobileDownLoadLinkIos": "Sæktu snjallsímaforritið fyrir iOS", + "moderatedMessage": "Eða bókaðu fyrirfram URL-slóð fyrir fundinn þar sem þú ert eini umsjónarmaðurinn.", + "privacy": "Meðferð persónuupplýsinga", + "recentList": "Nýlegt", + "recentListDelete": "Eyða færslu", + "recentListEmpty": "Listinn þinn yfir nýlega atburði er tómur. Spjallaðu við teymið þitt og muntu þá finna alla nýlega fundi hér.", + "recentMeetings": "Nýlegir fundir hjá þér", + "reducedUIText": "Velkomin í {{app}}!", + "roomNameAllowedChars": "Heiti fundar ætti ekki að innihalda neinn eftirfarandi stafa: ?, &, :, ', \", %, #.", + "roomname": "Settu inn nafn á fjarfundi", + "roomnameHint": "Settu inn nafn eða slóð á fjarfundinum sem þú ætlar að taka þátt í. Þú getur skáldað eitthvað nafn, þú verður bara að láta aðra þáttakendur vita svo þeir setji inn sama nafnið.", + "sendFeedback": "Senda umsögn", + "settings": "Stillingar", + "startMeeting": "Hefja fund", + "terms": "Skilmálar", + "title": "Öruggir og fullkomlega frjálsir myndfundir með fullt af eiginleikum", + "upcomingMeetings": "Væntanlegir fundir hjá þér" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Teiknitafla" + } + } +} diff --git a/lang/main-it.json b/lang/main-it.json new file mode 100644 index 0000000..b71b2af --- /dev/null +++ b/lang/main-it.json @@ -0,0 +1,1632 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Link della riunione: {{url}}" + }, + "add": "Invita", + "addContacts": "Invita tuoi contatti", + "contacts": "contatti", + "copyInvite": "Copia invito alla riunione", + "copyLink": "Copia collegamento alla riunione", + "copyStream": "Copia collegamento della diretta", + "countryNotSupported": "Questa destinazione non è ancora supportata.", + "countryReminder": "Stai chiamando fuori dagli Stati Uniti? Assicurati d'inserire il prefisso internazionale!", + "defaultEmail": "Tua email predefinita", + "disabled": "Non puoi invitare partecipanti.", + "failedToAdd": "L'aggiunta di nuovi partecipanti è fallita", + "googleEmail": "Email Google", + "inviteMoreHeader": "Sei l'unico presente nella riunione", + "inviteMoreMailSubject": "Unisciti alla riunione {{appName}}", + "inviteMorePrompt": "Invita altri partecipanti", + "linkCopied": "Collegamento copiato negli appunti", + "noResults": "Nessun risultato corrispondente", + "outlookEmail": "Email Outlook", + "phoneNumbers": "numeri di telefono", + "searching": "Sto cercando…", + "shareInvite": "Condividi invito alla riunione", + "shareLink": "Condividi il collegamento alla riunione per invitare altri", + "shareStream": "Condividi il collegamento alla diretta", + "sipAddresses": "indirizzi SIP", + "telephone": "Telefono: {{number}}", + "title": "Invita partecipanti a questa riunione", + "yahooEmail": "Email Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Stereo dell'auto", + "headphones": "Cuffie", + "none": "Nessun dispositivo audio disponibile", + "phone": "Telefono", + "speaker": "Altoparlante" + }, + "audioOnly": { + "audioOnly": "Larghezza di banda limitata" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "es. 10000000 per 10 Mbps", + "assumedBandwidthBpsWarning": "Valori alti possono causare problemi di rete", + "customValue": "valore personalizzato", + "customValueEffect": "per impostare il valore effettivo di bps", + "leaveEmpty": "lascia vuoto", + "leaveEmptyEffect": "per consentire l'utilizzo di stime", + "possibleValues": "Valori possibili", + "setAssumedBandwidthBps": "Larghezza di banda assunta (bps)", + "title": "Impostazioni larghezza di banda", + "zeroEffect": "per disabilitare i video" + }, + "breakoutRooms": { + "actions": { + "add": "Crea stanza", + "autoAssign": "Assegna automaticamente a stanze", + "close": "Chiudi", + "join": "Entra", + "leaveBreakoutRoom": "Esci dalla stanza", + "more": "Mostra di più", + "remove": "Elimina", + "rename": "Rinomina", + "renameBreakoutRoom": "Rinomina stanza", + "sendToBreakoutRoom": "Invia partecipante a:" + }, + "breakoutList": "Lista stanze", + "buttonLabel": "Stanze", + "defaultName": "Stanza {{index}}", + "hideParticipantList": "Nascondi lista partecipanti", + "mainRoom": "Riunione principale", + "notifications": { + "joined": "Ingresso nella stanza \"{{name}}\" in corso", + "joinedMainRoom": "Ingresso nella riunione principale in corso", + "joinedTitle": "Stanze" + }, + "showParticipantList": "Mostra lista partecipanti", + "title": "Stanze" + }, + "calendarSync": { + "addMeetingURL": "Aggiungi un collegamento alla riunione", + "confirmAddLink": "Vuoi aggiungere un collegamento Jitsi a questo evento?", + "error": { + "appConfiguration": "L'integrazione del calendario non è configurata correttamente.", + "generic": "Si è verificato un errore. Controlla le impostazioni del calendario o ricarica la pagina.", + "notSignedIn": "Si è verificato un errore durante l'autenticazione per visualizzare gli eventi del calendario. Controlla le impostazioni del calendario e prova a ripetere l'accesso." + }, + "join": "Partecipa", + "joinTooltip": "Partecipa alla riunione", + "nextMeeting": "Prossima riunione", + "noEvents": "Non ci sono eventi programmati a breve.", + "ongoingMeeting": "Riunione in corso", + "permissionButton": "Apri impostazioni", + "permissionMessage": "Per visualizzare la lista delle riunioni nell'applicazione è richiesto l'accesso al calendario.", + "refresh": "Aggiorna calendario", + "today": "Oggi" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Scegli dispositivo audio" + }, + "labels": { + "buttonLabel": "Modalità auto", + "title": "Modalità auto", + "videoStopped": "Il tuo video è disabilitato" + } + }, + "chat": { + "disabled": "L'invio di messaggi in chat è disabilitato.", + "enter": "Entra nella conversazione", + "error": "Errore: il tuo messaggio non è stato inviato. Motivo: {{error}}", + "fieldPlaceHolder": "Scrivi qui il tuo messaggio", + "lobbyChatMessageTo": "Messaggio a {{recipient}} in sala d'attesa", + "message": "Messaggio", + "messageAccessibleTitle": "{{user}} dice:", + "messageAccessibleTitleMe": "tu dici:", + "messageTo": "Messaggio privato a {{recipient}}", + "messagebox": "Digita un messaggio", + "newMessages": "Nuovi messaggi", + "nickname": { + "popover": "Scegli un nickname", + "title": "Inserisci un nickname per usare la chat", + "titleWithCC": "Inserisci un nickname per usare la chat e i sottotitoli", + "titleWithPolls": "Inserisci un nickname per usare la chat e i sondaggi", + "titleWithPollsAndCC": "Inserisci un nickname per usare la chat, i sondaggi e i sottotitoli", + "titleWithPollsAndCCAndFileSharing": "Inserisci un nickname per usare la chat, i sondaggi, i sottotitoli e i file" + }, + "noMessagesMessage": "Non ci sono ancora messaggi nella riunione. Inizia una conversazione, qui!", + "privateNotice": "Messaggio privato a {{recipient}}", + "sendButton": "Invia", + "smileysPanel": "Pannello emoji", + "systemDisplayName": "Sistema", + "tabs": { + "chat": "Chat", + "closedCaptions": "Sottotitoli", + "fileSharing": "File", + "polls": "Sondaggi" + }, + "title": "Chat", + "titleWithCC": "Sottotitoli", + "titleWithFeatures": "Chat e", + "titleWithFileSharing": "File", + "titleWithPolls": "Sondaggi", + "you": "tu" + }, + "chromeExtensionBanner": { + "buttonText": "Installa l'estensione per Chrome", + "buttonTextEdge": "Installa l'estensione per Edge", + "close": "Chiudi", + "dontShowAgain": "Non mostrare più questo messaggio", + "installExtensionText": "Installa un'estensione per integrare Google Calendar e Office 365" + }, + "closedCaptionsTab": { + "emptyState": "Il contenuto dei sottotitoli sarà disponibile una volta che l'organizzatore lo attiva", + "startClosedCaptionsButton": "Attiva sottotitoli" + }, + "connectingOverlay": { + "joiningRoom": "Collegamento alla riunione in corso…" + }, + "connection": { + "ATTACHED": "Collegato", + "AUTHENTICATING": "Autenticazione in corso", + "AUTHFAIL": "Autenticazione fallita", + "CONNECTED": "Connesso", + "CONNECTING": "Connessione in corso", + "CONNFAIL": "Connessione non riuscita", + "DISCONNECTED": "Disconnesso", + "DISCONNECTING": "Disconnessione in corso", + "ERROR": "Errore", + "FETCH_SESSION_ID": "Acquisizione ID sessione in corso…", + "GET_SESSION_ID_ERROR": "Errore nell'acquisizione ID sessione: {{code}}", + "GOT_SESSION_ID": "Acquisizione ID sessione in corso… Completata", + "LOW_BANDWIDTH": "Il video per {{displayName}} è stato interrotto per risparmiare banda" + }, + "connectionindicator": { + "address": "Indirizzo:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Banda stimata:", + "bitrate": "Bitrate:", + "bridgeCount": "Conteggio server:", + "codecs": "Codec (A/V): ", + "connectedTo": "Connesso a:", + "e2eeVerified": "E2EE verificata:", + "framerate": "Fotogrammi al secondo:", + "less": "Mostra meno", + "localaddress": "Indirizzo locale:", + "localaddress_plural": "Indirizzi locali:", + "localport": "Porta locale:", + "localport_plural": "Porte locali:", + "maxEnabledResolution": "invia max.", + "more": "Mostra di più", + "no": "no", + "packetloss": "Perdita pacchetti:", + "participant_id": "Id partecipante:", + "quality": { + "good": "Buona", + "inactive": "Inattiva", + "lost": "Persa", + "nonoptimal": "Non ottimale", + "poor": "Scarsa" + }, + "remoteaddress": "Indirizzo remoto:", + "remoteaddress_plural": "Indirizzi remoti:", + "remoteport": "Porta remota:", + "remoteport_plural": "Porte remote:", + "resolution": "Risoluzione:", + "savelogs": "Salva log", + "status": "Connessione:", + "transport": "Trasporto:", + "transport_plural": "Trasporti:", + "video_ssrc": "Video SSRC:", + "yes": "sì" + }, + "dateUtils": { + "earlier": "Precedenti", + "today": "Oggi", + "yesterday": "Ieri" + }, + "deepLinking": { + "appNotInstalled": "Per partecipare a questa riunione dal telefono serve l'app mobile {{app}}.", + "description": "Non è successo nulla? È stato tentato l'avvio della riunione dall'app desktop {{app}}. Prova di nuovo o avviala dalla web app {{app}}.", + "descriptionNew": "Non è successo nulla? È stato tentato l'avvio della riunione dall'app desktop {{app}}.

Prova di nuovo o avviala dalla web app.", + "descriptionWithoutWeb": "Non è successo nulla? È stato tentato l'avvio della riunione dall'app desktop {{app}}.", + "downloadApp": "Scarica l'app", + "downloadMobileApp": "Scarica dall'App Store", + "ifDoNotHaveApp": "Se non hai ancora l'app:", + "ifHaveApp": "Se hai già l'app:", + "joinInApp": "Entra in riunione usando l'app", + "joinInAppNew": "Entra dall'app", + "joinInBrowser": "Entra dal browser", + "launchMeetingLabel": "Come desideri entrare nella riunione?", + "launchWebButton": "Avvia sul web", + "noDesktopApp": "Non hai l'app?", + "noMobileApp": "Non hai l'app?", + "or": "O", + "termsAndConditions": "Continuando acconsenti ai nostri termini & condizioni.", + "title": "Avvio della riunione da {{app}} in corso…", + "titleNew": "Avvio della riunione in corso…", + "tryAgainButton": "Prova di nuovo sul desktop", + "unsupportedBrowser": "Sembra che tu stia usando un browser che non supportato." + }, + "defaultLink": "es. {{url}}", + "defaultNickname": "es. Anna Rossi", + "deviceError": { + "cameraError": "Impossibile accedere alla videocamera", + "cameraPermission": "Errore nell'acquisizione dei permessi della videocamera", + "microphoneError": "Impossibile accedere al microfono", + "microphonePermission": "Errore nell'acquisizione dei permessi del microfono" + }, + "deviceSelection": { + "hid": { + "callControl": "Controllo chiamata", + "connectedDevices": "Dispositivi connessi:", + "deleteDevice": "Elimina dispositivo", + "pairDevice": "Accoppia dispositivo" + }, + "noPermission": "Permesso negato", + "previewUnavailable": "Anteprima non disponibile", + "selectADevice": "Scegli un dispositivo", + "testAudio": "Riproduci un suono di prova" + }, + "dialIn": { + "screenTitle": "Riassunto collegamento" + }, + "dialOut": { + "statusMessage": "è {{status}}" + }, + "dialog": { + "Back": "Indietro", + "Cancel": "Annulla", + "IamHost": "Accedi", + "Ok": "OK", + "Remove": "Rimuovi", + "Share": "Condividi", + "Submit": "Invia", + "Understand": "Accetto, mantieni microfono e videocamera disattivati per ora", + "UnderstandAndUnmute": "Accetto, riattiva microfono e videocamera", + "WaitForHostMsg": "La riunione non è ancora iniziata. Se sei l'organizzatore, per favore autenticati. Altrimenti, attendi l'arrivo dell'organizzatore.", + "WaitForHostNoAuthMsg": "La riunione non è ancora iniziata perché nessun organizzatore si è ancora collegato. Si prega di attendere.", + "WaitingForHostButton": "Attendi l'organizzatore", + "WaitingForHostTitle": "In attesa dell'organizzatore…", + "Yes": "Sì", + "accessibilityLabel": { + "Cancel": "Annulla (chiudi dialogo)", + "Ok": "OK (salva e chiudi dialogo)", + "close": "Chiudi dialogo", + "liveStreaming": "Diretta", + "sharingTabs": "Opzioni di condivisione" + }, + "add": "Aggiungi", + "addMeetingNote": "Aggiungi una nota su questa riunione", + "addOptionalNote": "Aggiungi una nota (facoltativo):", + "allow": "Consenti", + "allowToggleCameraDialog": "Consenti a {{initiatorName}} di attivare la modalità frontale della videocamera?", + "allowToggleCameraTitle": "Consenti l'attivazione della videocamera?", + "alreadySharedVideoMsg": "Un altro utente sta condividendo un video. Questa riunione permette di condividere un solo video alla volta.", + "alreadySharedVideoTitle": "È permessa una sola condivisione video alla volta", + "applicationWindow": "Finestra dell'applicazione", + "authenticationRequired": "Richiesta autenticazione", + "cameraConstraintFailedError": "La tua videocamera non soddisfa alcuni dei requisiti.", + "cameraNotFoundError": "Videocamera non trovata.", + "cameraNotSendingData": "Impossibile accedere alla videocamera. Controlla che non sia in uso in un'altra applicazione, seleziona un altro dispositivo dalle impostazioni o prova a ricaricare l'applicazione.", + "cameraNotSendingDataTitle": "Impossibile accedere alla videocamera", + "cameraPermissionDeniedError": "Non hai concesso l'autorizzazione per l'uso della videocamera. Potrai partecipare comunque alla riunione ma gli altri non potranno vederti. Usa il pulsante a forma di videocamera nella barra degli indirizzi per risolvere il problema.", + "cameraTimeoutError": "Impossibile avviare la sorgente video. Tempo di attesa scaduto.", + "cameraUnknownError": "Impossibile usare la videocamera per un motivo sconosciuto.", + "cameraUnsupportedResolutionError": "La tua videocamera non supporta la risoluzione richiesta.", + "close": "Chiudi", + "conferenceDisconnectMsg": "Controlla la tua connessione. Tentativo di riconnessione tra {{seconds}} secondi…", + "conferenceDisconnectTitle": "Sei stato disconnesso.", + "conferenceReloadMsg": "Risoluzione del problema in corso. Tentativo di riconnessione tra {{seconds}} secondi…", + "conferenceReloadTitle": "Purtroppo qualcosa è andato storto.", + "confirm": "Conferma", + "confirmBack": "Indietro", + "confirmNo": "No", + "confirmYes": "Sì", + "connectError": "Ops! Qualcosa è andato storto e non è stato possibile collegarsi alla riunione.", + "connectErrorWithMsg": "Ops! Qualcosa è andato storto e non è stato possibile collegarsi alla riunione.: {{msg}}", + "connecting": "Connessione in corso", + "contactSupport": "Contatta il supporto", + "copied": "Copiato", + "copy": "Copia", + "demoteParticipantDialog": "Sei sicuro di voler far diventare questo partecipante uno spettatore?", + "demoteParticipantTitle": "Fai diventare spettatore", + "dismiss": "Scarta", + "displayNameRequired": "Ciao, qual è il tuo nome?", + "done": "Fatto", + "e2eeDescription": "La crittografia End-to-End al momento è SPERIMENTALE. Tieni presente che attivandola disabiliterai i servizi svolti lato server, come: la partecipazione via telefono. Tieni anche presente che la riunione funzionerà solo a chi si collega usando browser che supportano flussi inseribili.", + "e2eeDisabledDueToMaxModeDescription": "Impossibile usare la crittografia End-to-End per il numero di partecipanti troppo grande.", + "e2eeLabel": "Attiva la crittografia End-to-End", + "e2eeWarning": "ATTENZIONE: non tutti i partecipanti a questa riunione sembrano supportare le funzionalità di crittografia End-to-End. Se la attivi, non potranno vederti o sentirti.", + "e2eeWillDisableDueToMaxModeDescription": "ATTENZIONE: la crittografia End-to-End verrà disattivata automaticamente, se si aggiungono nuovi partecipanti alla riunione.", + "embedMeeting": "Incorpora la riunione", + "enterDisplayName": "Inserisci qui il tuo nome", + "error": "Errore", + "errorRoomCreationRestriction": "Hai provato ad accedere alla riunione troppo presto, torna tra un po'.", + "gracefulShutdown": "Il nostro servizio è al momento inattivo per manutenzione. Si prega di riprovare più tardi.", + "grantModeratorDialog": "Sei sicuro di voler rendere organizzatore questo partecipante?", + "grantModeratorTitle": "Fai diventare organizzatore", + "hide": "Nascondi", + "hideShareAudioHelper": "Non mostrare più questa finestra", + "incorrectPassword": "Nome utente o password errati", + "incorrectRoomLockPassword": "Password errata", + "internalError": "Ops! Qualcosa è andato storto. Questo è l'errore: {{error}}", + "internalErrorTitle": "Errore interno", + "kickMessage": "Puoi contattare {{participantDisplayName}} per maggiori dettagli.", + "kickParticipantButton": "Espelli", + "kickParticipantDialog": "Sei sicuro di voler espellere questo partecipante?", + "kickParticipantTitle": "Espellere questo partecipante?", + "kickSystemTitle": "Oh! Sei stato espulso dalla riunione", + "kickTitle": "Oh! {{participantDisplayName}} ti ha espulso dalla riunione.", + "learnMore": "ulteriori informazioni", + "linkMeeting": "Collega la riunione", + "linkMeetingTitle": "Collega la riunione a Salesforce", + "liveStreaming": "Diretta", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossibile durante la registrazione.", + "localUserControls": "Controlli dell'utente locale", + "lockMessage": "Impossibile bloccare la riunione.", + "lockRoom": "Aggiungi una $t(lockRoomPassword) alla riunione", + "lockTitle": "Blocco fallito", + "login": "Accesso", + "loginQuestion": "Sei sicuro di voler fare l'accesso e abbandonare la riunione?", + "logoutQuestion": "Sei sicuro di volerti disconnettere 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!", + "maxUsersLimitReachedTitle": "Raggiunto limite massimo partecipanti", + "micConstraintFailedError": "Il tuo microfono non soddisfa alcuni dei requisiti.", + "micNotFoundError": "Microfono non trovato.", + "micNotSendingData": "Apri le impostazioni del computer per attivare il microfono e impostare il volume.", + "micNotSendingDataTitle": "Il microfono è muto per impostazione di sistema", + "micPermissionDeniedError": "Non hai concesso l'autorizzazione per l'uso del microfono. Puoi comunque partecipare alla riunione ma gli altri non potranno sentirti. Usa il pulsante a forma di telecamera nella barra degli indirizzi per risolvere il problema.", + "micTimeoutError": "Impossibile avviare la sorgente audio. Tempo di attesa scaduto.", + "micUnknownError": "Impossibile usare il microfono per un motivo sconosciuto.", + "moderationAudioLabel": "Consenti ai partecipanti di attivare il microfono", + "moderationVideoLabel": "Consenti ai partecipanti di attivare la videocamera", + "muteEveryoneDialog": "I partecipanti possono attivare il microfono in qualsiasi momento.", + "muteEveryoneDialogModerationOn": "I partecipanti possono chiedere di parlare in qualsiasi momento.", + "muteEveryoneElseDialog": "Una volta spenti i microfoni non potrai riattivarli, ma ogni partecipante potrà farlo da sé in qualsiasi momento.", + "muteEveryoneElseTitle": "Spegnere il microfono a tutti, tranne che a {{whom}}?", + "muteEveryoneElsesVideoDialog": "Una volta spente le videocamere non potrai riaccenderle, ma ogni partecipante potrà farlo da sé in qualsiasi momento.", + "muteEveryoneElsesVideoTitle": "Spegnere la videocamera a tutti, tranne che a {{whom}}?", + "muteEveryoneSelf": "tu", + "muteEveryoneStartMuted": "Tutti iniziano a microfono spento da adesso in avanti", + "muteEveryoneTitle": "Spegnere il microfono a tutti?", + "muteEveryonesVideoDialog": "Ogni partecipante potrà riavviare il video da sé in qualsiasi momento.", + "muteEveryonesVideoDialogModerationOn": "I partecipanti possono chiedere di attivare il video in qualsiasi momento.", + "muteEveryonesVideoDialogOk": "Spegni", + "muteEveryonesVideoTitle": "Spegnere la videocamera a tutti?", + "muteParticipantBody": "Non potrai riattivare il loro microfono, ma loro potranno farlo in qualsiasi momento.", + "muteParticipantButton": "Silenzia", + "muteParticipantsVideoBody": "Non potrai riattivare le videocamere, ma loro potranno farlo in qualsiasi momento.", + "muteParticipantsVideoBodyModerationOn": "Non potrai riattivare le videocamere e nemmeno loro potranno.", + "muteParticipantsVideoButton": "Spegni videocamere", + "muteParticipantsVideoDialog": "Sei sicuro di voler spegnere la videocamera di questo partecipante? Non potrai riattivarla, ma lui potrà farlo in qualsiasi momento.", + "muteParticipantsVideoDialogModerationOn": "Sei sicuro di voler spegnere la videocamera di questo partecipante? Non potrai riattivarla e nemmeno lui potrà farlo.", + "muteParticipantsVideoTitle": "Spegnere la videocamera di questo partecipante?", + "noDropboxToken": "Token Dropbox non valido", + "password": "Password", + "passwordLabel": "La riunione è stata bloccata da un partecipante. Inserisci la $t(lockRoomPassword) per collegarti.", + "passwordNotSupported": "Impostare una $t(lockRoomPassword) non è supportato.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) non supportata", + "passwordRequired": "$t(lockRoomPasswordUppercase) richiesta", + "permissionCameraRequiredError": "L'autorizzazione all'uso della videocamera è necessaria per partecipare con il video. Concedi l'autorizzazione nelle impostazioni.", + "permissionErrorTitle": "Autorizzazione richiesta", + "permissionMicRequiredError": "L'autorizzazione all'uso del microfono è necessaria per parlare durante la conferenza. Concedi l'autorizzazione nelle impostazioni", + "readMore": "mostra di più", + "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.", + "recordingInProgressTitle": "Registrazione in corso", + "rejoinNow": "Ricollegati ora", + "remoteControlAllowedMessage": "{{user}} ha accettato la tua richiesta di controllo remoto!", + "remoteControlDeniedMessage": "{{user}} ha respinto la tua richiesta di controllo remoto!", + "remoteControlErrorMessage": "Si è verificato un errore mentre si cercava di richiedere il controllo remoto a {{user}}!", + "remoteControlRequestMessage": "Vuoi consentire a {{user}} di controllare da remoto il tuo desktop?", + "remoteControlShareScreenWarning": "Nota che premendo «Consenti» condividerai il tuo schermo!", + "remoteControlStopMessage": "Sessione di controllo remoto terminata!", + "remoteControlTitle": "Connessione desktop remoto", + "remoteUserControls": "Controlli dell'utente remoto {{username}}", + "removePassword": "Rimuovi la $t(lockRoomPassword)", + "removeSharedVideoMsg": "Sei sicuro di voler rimuovere il tuo video condiviso?", + "removeSharedVideoTitle": "Rimuovi video condiviso", + "renameBreakoutRoomLabel": "Nome della stanza", + "renameBreakoutRoomTitle": "Rinomina stanza", + "reservationError": "Errore del sistema di prenotazione", + "reservationErrorMsg": "Codice di errore: {{code}}, messaggio: {{msg}}", + "retry": "Riprova", + "screenSharingAudio": "Condividi audio", + "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.", + "searchInSalesforce": "Cerca in Salesforce", + "searchResults": "Risultati ricerca({{count}})", + "searchResultsDetailsError": "Qualcosa è andato storto nella ricezione dei dati del proprietario.", + "searchResultsError": "Qualcosa è andato storto nella ricezione dei dati.", + "searchResultsNotFound": "Nessun risultato.", + "searchResultsTryAgain": "Prova a ricercare altre parole.", + "sendPrivateMessage": "Hai ricevuto un messaggio privato poco fa. Vorresti rispondergli privatamente o vuoi inviare la risposta al gruppo?", + "sendPrivateMessageCancel": "Invia al gruppo", + "sendPrivateMessageOk": "Invia privatamente", + "sendPrivateMessageTitle": "Inviare privatamente?", + "serviceUnavailable": "Servizio non disponibile", + "sessTerminated": "Chiamata terminata", + "sessTerminatedReason": "La chiamata è stata terminata", + "sessionRestarted": "Chiamata riavviata per un problema di rete", + "shareAudio": "Continua", + "shareAudioAltText": "per condividere il contenuto desiderato, vai verso \"Finestra del browser\", seleziona il contenuto, spunta \"condividi audio\" e clicca il pulsante \"condividi\"", + "shareAudioTitle": "Come condividere l'audio", + "shareAudioWarningD1": "devi fermare la condivisione dello schermo, per condividere l'audio.", + "shareAudioWarningD2": "devi riavviare la condivisione schermo e spuntare l'opzione \"condividi audio\".", + "shareAudioWarningH1": "Se vuoi condividere solo l'audio:", + "shareAudioWarningTitle": "Ferma la condivisione dello schermo prima di condividere l'audio", + "shareMediaWarningGenericH2": "Se vuoi condividere il tuo schermo e l'audio", + "shareScreenWarningD1": "devi fermare la condivisione audio prima di condividere lo schermo.", + "shareScreenWarningD2": "devi fermare la condivisione audio, avviare la condivisione dello schermo e spuntare l'opzione \"condividi audio\".", + "shareScreenWarningH1": "Se vuoi condividere solo lo schermo:", + "shareScreenWarningTitle": "Ferma la condivisione audio prima di condividere lo schermo", + "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.", + "shareVideoTitle": "Condividi un video", + "shareYourScreen": "Condividi schermo", + "shareYourScreenDisabled": "Condivisione schermo disabilitata.", + "sharedVideoDialogError": "Errore: URL non valido o proibito", + "sharedVideoLinkPlaceholder": "Link YouTube o link diretto al video", + "show": "Mostra", + "start": "Avvia ", + "startLiveStreaming": "Avvia diretta", + "startRecording": "Avvia registrazione", + "startRemoteControlErrorMessage": "Si è verificato un errore nel tentativo di avviare la sessione di controllo remoto!", + "stopLiveStreaming": "Ferma la diretta", + "stopRecording": "Ferma registrazione", + "stopRecordingWarning": "Sei sicuro di voler interrompere la registrazione?", + "stopStreamingWarning": "Sei sicuro di voler interrompere la diretta?", + "streamKey": "Chiave della diretta", + "thankYou": "Grazie per aver usato {{appName}}!", + "token": "token", + "tokenAuthFailed": "Non sei autorizzato a partecipare a questa chiamata.", + "tokenAuthFailedReason": { + "audInvalid": "Valore `aud` non valido. Dovrebbe essere `jitsi`.", + "contextNotFound": "Oggetto `context` non trovato nel payload.", + "expInvalid": "Valore `exp` non valido.", + "featureInvalid": "Funzionalità non valida: {{feature}}, probabilmente non è stata ancora implementata.", + "featureValueInvalid": "Valore funzionalità non valido: {{feature}}.", + "featuresNotFound": "Oggetto `features` non trovato nel payload.", + "headerNotFound": "Header non trovato.", + "issInvalid": "Valore `iss` non valido. Dovrebbe essere `chat`.", + "kidMismatch": "Chiave ID (kid) non corrisponde al sub.", + "kidNotFound": "Chiave ID (kid) assente.", + "nbfFuture": "Il valore `nbf` è nel futuro.", + "nbfInvalid": "Valore `nbf` non valido.", + "payloadNotFound": "Payload non trovato.", + "tokenExpired": "Il token è scaduto." + }, + "tokenAuthFailedTitle": "Autenticazione fallita", + "tokenAuthFailedWithReasons": "Non sei autorizzato a partecipare a questa chiamata. Possibile motivo: {{reason}}", + "tokenAuthUnsupported": "Il token URL non è supportato.", + "transcribing": "Trascrizione in corso", + "unlockRoom": "Rimuovi la $t(lockRoomPassword) alla riunione", + "user": "Utente", + "userIdentifier": "Identificatore utente", + "userPassword": "Password utente", + "verifyParticipantConfirm": "Corrispondono", + "verifyParticipantDismiss": "Non corrispondono", + "verifyParticipantQuestion": "SPERIMENTALE: Chiedi ai partecipanti {{participantName}} se vedono lo stesso contenuto, nello stesso ordine.", + "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.", + "viewUpgradeOptionsTitle": "Hai scoperto una funzione premium!", + "whiteboardLimitContent": "Il limite di utenti contemporanei della lavagna è stato raggiunto.", + "whiteboardLimitReference": "Per maggiori informazioni visita", + "whiteboardLimitReferenceUrl": "il nostro sito", + "whiteboardLimitTitle": "L'uso della lavagna è stato limitato", + "yourEntireScreen": "Schermo intero" + }, + "documentSharing": { + "title": "Documento condiviso" + }, + "e2ee": { + "labelToolTip": "Le comunicazioni audio e video di questa chiamata usano la crittografia End-to-End" + }, + "embedMeeting": { + "title": "Incorpora questa riunione" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "La tua scelta: {{rating}}" + }, + "average": "Media", + "bad": "Scadente", + "detailsLabel": "Dicci qualcosa di più in proposito.", + "good": "Buona", + "rateExperience": "Valuta la qualità della videoconferenza.", + "star": "Stella", + "veryBad": "Pessima", + "veryGood": "Ottima" + }, + "fileSharing": { + "downloadFailedDescription": "Si prega di riprovare.", + "downloadFailedTitle": "Download non riuscito", + "downloadFile": "Download", + "dragAndDrop": "Trascina e rilascia i file qui o da qualsiasi altra parte nella schermata", + "fileAlreadyUploaded": "Questo file è già stato caricato nella riunione.", + "fileTooLargeDescription": "Assicurati che il file non superi {{ maxFileSize }}.", + "fileTooLargeTitle": "Il file selezionato è troppo grande", + "removeFile": "Rimuovi", + "uploadFailedDescription": "Si prega di riprovare.", + "uploadFailedTitle": "Caricamento non riuscito", + "uploadFile": "Condividi file" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniatura video" + } + }, + "giphy": { + "noResults": "Nessun risultato :(", + "search": "Cerca in GIPHY" + }, + "incomingCall": { + "answer": "Rispondi", + "audioCallTitle": "Chiamata in arrivo", + "decline": "Respingi", + "productLabel": "da Jitsi Meet", + "videoCallTitle": "Videochiamata in arrivo" + }, + "info": { + "accessibilityLabel": "Mostra informazioni", + "addPassword": "Aggiungi $t(lockRoomPassword)", + "cancelPassword": "Rimuovi $t(lockRoomPassword)", + "conferenceURL": "Collegamento:", + "copyNumber": "Copia numero", + "country": "Paese", + "dialANumber": "Per collegarti telefonicamente alla riunione, chiama uno di questi numeri e digita il pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Siamo spiacenti, la partecipazione telefonica non è supportata al momento", + "dialInNumber": "Componi:", + "dialInSummaryError": "Errore nella ricerca dei numeri telefonici. Si prega di riprovare più tardi.", + "dialInTollFree": "Numero verde", + "genericError": "Ops, qualcosa è andato storto.", + "inviteLiveStream": "Per vedere la diretta di questa riunione, clicca su questo link: {{url}}", + "invitePhone": "Per seguire telefonicamente, premi: {{number}},,{{conferenceID}}#", + "invitePhoneAlternatives": "Cerchi un numero diverso da chiamare?\nEcco dei numeri telefonici per collegarsi alla riunione: {{url}}\n\n\nSe chiami da un telefono fisso, entra senza attivare l'audio: {{silentUrl}}", + "inviteSipEndpoint": "Per entrare con l'indirizzo SIP, inserisci questo: {{sipUri}}", + "inviteTextiOSInviteUrl": "Clicca il seguente link per entrare nella riunione: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Se stai chiamando da un telefono fisso, usa questo link per entrare in riunione senz'audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} ti sta invitando ad una riunione.", + "inviteTextiOSPhone": "Per entrare in riunione con un telefono, usa questo numero: {{number}},,{{conferenceID}}#. Se cerchi altri numeri, questa è la lista completa: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Sei stato invitato ad una riunione.", + "inviteURLFirstPartPersonal": "{{name}} ti sta invitando ad una riunione.\n", + "inviteURLSecondPart": "\nPartecipa alla riunione:\n{{url}}\n", + "label": "Informazioni chiamata", + "liveStreamURL": "Diretta:", + "moreNumbers": "Più numeri", + "noNumbers": "Nessun numero da chiamare.", + "noPassword": "Nessuna", + "noRoom": "Non è stata specificata nessuna stanza da chiamare.", + "noWhiteboard": "Impossibile caricare la lavagna", + "numbers": "Numeri da chiamare", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Hai raggiunto il limite del tuo piano.", + "sip": "Indirizzo SIP", + "sipAudioOnly": "Indirizzo SIP solo audio", + "title": "Condividi", + "tooltip": "Invia il collegamento e i numeri telefonici di questa riunione", + "upgradeOptions": "Controlla le possibilità di aggiornamento del piano di abbonamento", + "whiteboardError": "Errore di caricamento della lavagna. Si prega di riprovare più tardi." + }, + "inlineDialogFailure": { + "msg": "C'è stato un piccolo inconveniente.", + "retry": "Prova ancora", + "support": "Supporto", + "supportMsg": "Se succede ancora contatta" + }, + "inviteDialog": { + "alertText": "Errore nell'invitare alcuni partecipanti.", + "header": "Invita", + "searchCallOnlyPlaceholder": "Inserisci il numero di telefono", + "searchPeopleOnlyPlaceholder": "Cerca partecipanti", + "searchPlaceholder": "Partecipante o numero di telefono", + "send": "Invia" + }, + "jitsiHome": "{{logo}} Logo, collega alla Homepage", + "keyboardShortcuts": { + "focusLocal": "Metti in evidenza il tuo video", + "focusRemote": "Metti in evidenza il video di un altro partecipante", + "fullScreen": "Attiva o disattiva schermo intero", + "giphyMenu": "Mostra menu GIPHY", + "keyboardShortcuts": "Scorciatoie da tastiera", + "localRecording": "Mostra o nascondi i controlli per la registrazione", + "mute": "Attiva o disattiva il microfono", + "pushToTalk": "Premi per parlare", + "raiseHand": "Alza o abbassa la mano", + "showSpeakerStats": "Mostra le statistiche dei partecipanti", + "toggleChat": "Apri o chiudi la chat", + "toggleFilmstrip": "Mostra o nascondi le miniature video", + "toggleParticipantsPane": "Mostra o nascondi il pannello dei partecipanti", + "toggleScreensharing": "Scambia videocamera e condivisione dello schermo", + "toggleShortcuts": "Mostra o nascondi le scorciatoie da tastiera", + "videoMute": "Accendi o spegni la videocamera" + }, + "largeVideo": { + "screenIsShared": "Stai condividendo lo schermo", + "showMeWhatImSharing": "Mostrami cosa sto condividendo" + }, + "liveStreaming": { + "busy": "Stiamo cercando di liberare risorse per la diretta. Si prega di riprovare tra qualche minuto.", + "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}}.", + "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.", + "errorLiveStreamNotEnabled": "La diretta non è attiva su {{email}}. Per favore attiva la diretta o effettua l'accesso con account che ha una diretta attiva.", + "expandedOff": "La diretta è stata interrotta", + "expandedOn": "La riunione è attualmente in diretta su YouTube.", + "expandedPending": "La diretta è in fase di avvio…", + "failedToStart": "Avvio diretta fallito", + "getStreamKeyManually": "Non è stata trovata nessuna diretta. Prova ad ottenere la chiave della tua diretta da YouTube.", + "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!", + "serviceName": "Servizio dirette", + "sessionAlreadyActive": "Questa sessione è in già in fase di registrazione o trasmissione in diretta.", + "signIn": "Accedi con Google", + "signInCTA": "Accedi o inserisci la tua chiave della diretta su YouTube.", + "signOut": "Disconnetti", + "signedInAs": "Hai effettuato l'accesso come:", + "start": "Inizia una diretta", + "streamIdHelp": "Cos'è questo?", + "title": "Diretta", + "unavailableTitle": "La diretta non è disponibile", + "youtubeTerms": "Termini di servizio di YouTube" + }, + "lobby": { + "backToKnockModeButton": "Richiedi l'accesso", + "chat": "Chat", + "dialogTitle": "Sala d'attesa", + "disableDialogContent": "Sala d'attesa attiva. Questa funzione ti permette di non dare accesso alla riunione a partecipanti indesiderati. Vuoi disattivarla?", + "disableDialogSubmit": "Disattiva", + "emailField": "Inserisci il tuo indirizzo email", + "enableDialogPasswordField": "Imposta password (opzionale)", + "enableDialogSubmit": "Attiva", + "enableDialogText": "La sala d'attesa ti permette di proteggere la riunione concedendo l'accesso solo alle persone autorizzate da un organizzatore.", + "enterPasswordButton": "Inserisci password riunione", + "enterPasswordTitle": "Inserisci la password per entrare nella riunione", + "errorMissingPassword": "Inserisci la password della riunione", + "invalidPassword": "Password errata", + "joinRejectedMessage": "La tua richiesta d'accesso è stata respinta da un organizzatore.", + "joinRejectedTitle": "Richiesta d'accesso respinta.", + "joinTitle": "Entra nella riunione", + "joinWithPasswordMessage": "Tentativo di accesso con password in corso, si prega di attendere…", + "joiningMessage": "Entrerai nella riunione appena qualcuno approverà la tua richiesta", + "joiningTitle": "Richiesta di accesso inviata…", + "joiningWithPasswordTitle": "Accesso con password…", + "knockButton": "Chiedi di entrare", + "knockTitle": "Qualcuno vuole entrare nella riunione", + "knockingParticipantList": "Lista dei partecipanti in attesa", + "lobbyChatStartedNotification": "{{moderator}} sta parlando con {{attendee}} in sala d'attesa", + "lobbyChatStartedTitle": "{{moderator}} sta parlando con te in sala d'attesa.", + "lobbyClosed": "La sala d'attesa è stata chiusa.", + "nameField": "Scrivi il tuo nome", + "notificationLobbyAccessDenied": "{{targetParticipantName}} è stato respinto da {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} è stato autorizzato ad entrare da {{originParticipantName}}", + "notificationLobbyDisabled": "{{originParticipantName}} ha disabilitato la sala d'attesa", + "notificationLobbyEnabled": "{{originParticipantName}} ha attivato la sala d'attesa", + "notificationTitle": "Sala d'attesa", + "passwordJoinButton": "Entra", + "title": "Sala d'attesa", + "toggleLabel": "Attiva sala d'attesa" + }, + "localRecording": { + "clientState": { + "off": "Spento", + "on": "Acceso", + "unknown": "Sconosciuto" + }, + "dialogTitle": "Controlli della registrazione", + "duration": "Durata", + "durationNA": "N/D", + "encoding": "Codifica", + "label": "LOR", + "labelToolTip": "Registrazione avviata", + "localRecording": "Registrazione", + "me": "Io", + "messages": { + "engaged": "Registrazione avviata.", + "finished": "La registrazione della sessione {{token}} è terminata. Invia il file della registrazione all'organizzatore.", + "finishedModerator": "La registrazione della sessione {{token}} è terminata. La registrazione della traccia è stata salvata. Chiedi ai partecipanti di inviare le loro registrazioni.", + "notModerator": "Non sei un organizzatore. Non puoi avviare o interrompere la registrazione." + }, + "moderator": "Organizzatore", + "no": "No", + "participant": "Partecipante", + "participantStats": "Statistiche partecipante", + "selectTabTitle": "🎥 Seleziona questa scheda per registrare", + "sessionToken": "Token della sessione", + "start": "Avvia registrazione", + "stop": "Ferma registrazione", + "stopping": "Arresto della registrazione in corso", + "wait": "Attendi durante il salvataggio della tua registrazione", + "yes": "Sì" + }, + "lockRoomPassword": "password", + "lockRoomPasswordUppercase": "Password", + "lonelyMeetingExperience": { + "button": "Invita altri", + "youAreAlone": "Sei l'unico nella riunione" + }, + "me": "io", + "notify": { + "OldElectronAPPTitle": "Falla di sicurezza!", + "allowAudio": "Consenti l'audio", + "allowBoth": "Entrambi", + "allowVideo": "Consenti il video", + "allowedUnmute": "Puoi accendere il microfono, avviare la videocamera o condividere il tuo schermo.", + "audioUnmuteBlockedDescription": "L'accensione dei microfoni è stata temporaneamente bloccata per i limiti del sistema.", + "audioUnmuteBlockedTitle": "Accensione dei microfoni bloccata!", + "chatMessages": "Messaggi delle chat", + "connectedOneMember": "{{name}} è entrato nella riunione", + "connectedThreePlusMembers": "{{name}} e altri {{count}} sono entrati nella riunione", + "connectedTwoMembers": "{{first}} e {{second}} sono entrati nella riunione", + "connectionFailed": "Connessione non riuscita. Si prega di riprovare più tardi!", + "dataChannelClosed": "La qualità video potrebbe essere scarsa", + "dataChannelClosedDescription": "Il canale bridge è inattivo, quindi la qualità video potrebbe essere limitata all'impostazione più bassa.", + "dataChannelClosedDescriptionWithAudio": "Il canale bridge è inattivo, quindi potrebbero esserci interruzioni di audio e video", + "dataChannelClosedWithAudio": "La qualità audio e video potrebbe essere scarsa", + "disabledIframe": "L'incorporamento serve solo come dimostrazione, quindi questa chiamata si disconnetterà tra {{timeout}} minuti.", + "disabledIframeSecondaryNative": "L'incorporamento {{domain}} serve solo come dimostrazione, quindi questa chiamata si disconnetterà tra {{timeout}} minuti.", + "disabledIframeSecondaryWeb": "L'incorporamento {{domain}} serve solo come dimostrazione, quindi questa chiamata si disconnetterà tra {{timeout}} minuti. Si prega di usare Jitsi as a Service per la produzione di riunioni incorporate!", + "disconnected": "disconnesso", + "displayNotifications": "Mostra le notifiche per", + "dontRemindMe": "Non chiederlo più", + "focus": "Evidenza riunione", + "focusFail": "{{component}} non disponibile - nuovo tentativo tra {{ms}} sec", + "gifsMenu": "GIPHY", + "groupTitle": "Notifiche", + "hostAskedUnmute": "L'organizzatore ti chiede di intervenire.", + "invalidTenant": "Nome non valido", + "invalidTenantHyphenDescription": "Il nome che hai scelto non è valido (inizia o finisce con '-').", + "invalidTenantLengthDescription": "Il nome che hai scelto è troppo lungo.", + "invitedOneMember": "{{displayName}} è stato invitato", + "invitedThreePlusMembers": "{{name}} e altri {{count}} sono stati invitati", + "invitedTwoMembers": "{{first}} e {{second}} sono stati invitati", + "joinMeeting": "Entra", + "kickParticipant": "{{kicked}} è stato espulso da {{kicker}}", + "leftOneMember": "{{name}} ha lasciato la riunione", + "leftThreePlusMembers": "{{name}} e molti altri hanno lasciato la riunione", + "leftTwoMembers": "{{first}} e {{second}} hanno lasciato la riunione", + "linkToSalesforce": "Collega a Salesforce", + "linkToSalesforceDescription": "Puoi collegare il sommario della riunione ad un oggetto Salesforce.", + "linkToSalesforceError": "Collegamento della riunione a Salesforce fallito.", + "linkToSalesforceKey": "Collega questa riunione", + "linkToSalesforceProgress": "Collegamento della riunione a Salesforce in corso…", + "linkToSalesforceSuccess": "Questa riunione è stata collegata a Salesforce", + "localRecordingStarted": "{{name}} ha iniziato a registrare.", + "localRecordingStopped": "{{name}} ha smesso di registrare.", + "me": "Io", + "moderationInEffectCSDescription": "Alza la mano, se vuoi condividere lo schermo.", + "moderationInEffectCSTitle": "La condivisione schermo è stata bloccata dall'organizzatore", + "moderationInEffectDescription": "Alza la mano, se vuoi prendere la parola.", + "moderationInEffectTitle": "Il tuo microfono è stato spento dall'organizzatore", + "moderationInEffectVideoDescription": "Alza la mano, se vuoi avviare la tua videocamera.", + "moderationInEffectVideoTitle": "La tua videocamera è stata spenta dall'organizzatore", + "moderationRequestFromModerator": "L'organizzatore vorrebbe che tu accendessi il microfono", + "moderationRequestFromParticipant": "Vuole parlare", + "moderationStartedTitle": "Moderazione in corso", + "moderationStoppedTitle": "Moderazione interrotta", + "moderationToggleDescription": "da {{participantDisplayName}}", + "moderator": "Ora sei un organizzatore!", + "muted": "Hai iniziato la conversazione con il microfono disattivato.", + "mutedRemotelyDescription": "Puoi sempre attivare il microfono quando vuoi parlare. Spegni il microfono quando hai finito, per evitare rumori di fondo nella riunione.", + "mutedRemotelyTitle": "{{participantDisplayName}} ti ha spento il microfono", + "mutedTitle": "Hai il microfono disattivato!", + "newDeviceAction": "Usala", + "newDeviceAudioTitle": "Rilevata una nuova sorgente audio", + "newDeviceCameraTitle": "Rilevata una nuova videocamera", + "nextToSpeak": "Sei il prossimo a dover parlare", + "noiseSuppressionDesktopAudioDescription": "La cancellazione del rumore non può essere attivata durante la condivisione dell'audio del desktop, disabilitala e riprova.", + "noiseSuppressionFailedTitle": "Avvio della cancellazione del rumore non riuscito", + "noiseSuppressionStereoDescription": "La cancellazione del rumore con l'audio stereo non è attualmente supportata.", + "oldElectronClientDescription1": "Sembra che tu stia usando una versione obsoleta del client Jitsi Meet, che ha vulnerabilità note. Assicurati di aggiornarlo alla nostra ", + "oldElectronClientDescription2": "ultima versione", + "oldElectronClientDescription3": " ora!", + "participantWantsToJoin": "Vuole unirsi alla riunione", + "participantsWantToJoin": "Vogliono unirsi alla riunione", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) è stata rimossa da un altro partecipante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) è stata impostata da un altro partecipante", + "raiseHandAction": "Alza la mano", + "raisedHand": "Vorrebbe intervenire.", + "raisedHands": "{{participantName}} e altre {{raisedHands}} persone", + "reactionSounds": "Disattiva suoni", + "reactionSoundsForAll": "Disattiva suoni a tutti", + "screenShareNoAudio": "L'opzione di condivisione audio non era selezionata nella schermata di selezione della finestra.", + "screenShareNoAudioTitle": "Impossibile condividere l'audio!", + "screenSharingAudioOnlyDescription": "Condividendo lo schermo si influisce sulla modalità “Migliori prestazioni” e si utilizza una maggiore larghezza di banda.", + "screenSharingAudioOnlyTitle": "Modalità \"Migliori prestazioni\"", + "selfViewTitle": "Puoi sempre ripristinare il tuo riquadro dalle impostazioni", + "somebody": "Qualcuno", + "startSilentDescription": "Entra di nuovo nella riunione per attivare l'audio", + "startSilentTitle": "Sei entrato nella riunione senza un dispositivo di uscita audio!", + "suboptimalBrowserWarning": "Temiamo che la tua esperienza non sarà granché su questo browser. Stiamo cercando di migliorare, ma, per il momento, prova ad utilizzare uno di questi browser pienamente supportati.", + "suboptimalExperienceTitle": "Avviso sul browser", + "suggestRecordingAction": "Avvia", + "suggestRecordingDescription": "Vuoi avviare la registrazione?", + "suggestRecordingTitle": "Registra questa riunione", + "unmute": "Accendi il microfono", + "unmuteVideo": "Accendi la videocamera", + "videoMutedRemotelyDescription": "Puoi riaccenderla in qualsiasi momento.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} ti ha spento la videocamera", + "videoUnmuteBlockedDescription": "L'accensione della videocamera e la condivisione dello schermo sono state momentaneamente bloccate per i limiti del sistema.", + "videoUnmuteBlockedTitle": "Accensione videocamera e condivisione schermo bloccate!", + "viewLobby": "Vedi sala d'attesa", + "viewParticipants": "Vedi partecipanti", + "viewVisitors": "Vedi spettatori", + "waitingParticipants": "{{waitingParticipants}} persone", + "waitingVisitors": "Spettatori in coda: {{waitingVisitors}}", + "waitingVisitorsTitle": "Questa riunione non è ancora iniziata!", + "whiteboardLimitDescription": "Salva i tuoi progressi, il limite dell'utente sta per essere superato e la lavagna si chiuderà.", + "whiteboardLimitTitle": "Utilizzo lavagna" + }, + "participantsPane": { + "actions": { + "admit": "Ammetti", + "admitAll": "Ammetti tutti", + "allow": "Permetti ai partecipanti di:", + "allowVideo": "Permetti videocamere", + "askUnmute": "Chiedi di accendere il microfono", + "audioModeration": "Riattivare il microfono", + "blockEveryoneMicCamera": "Blocca microfono e videocamera a tutti", + "breakoutRooms": "Stanze", + "goLive": "Vai alla diretta", + "invite": "Invita partecipanti", + "lowerAllHands": "Abbassa tutte le mani", + "lowerHand": "Abbassa la mano", + "moreModerationActions": "Altre opzioni di moderazione", + "moreModerationControls": "Altri controlli di moderazione", + "moreParticipantOptions": "Altre opzioni partecipante", + "mute": "Silenzia", + "muteAll": "Silenzia tutti", + "muteEveryoneElse": "Silenzia tutti gli altri", + "reject": "Respingi", + "stopEveryonesVideo": "Ferma il video di tutti", + "stopVideo": "Ferma il video", + "unblockEveryoneMicCamera": "Sblocca microfono e videocamera a tutti", + "videoModeration": "Riavviare la videocamera" + }, + "close": "Chiudi", + "headings": { + "lobby": "Sala d'attesa ({{count}})", + "participantsList": "Partecipanti alla riunione ({{count}})", + "visitorInQueue": " ({{count}} in attesa)", + "visitorRequests": " ({{count}} richiesta/e)", + "visitors": "Spettatori {{count}}", + "visitorsList": "Spettatori ({{count}})", + "waitingLobby": "({{count}}) in attesa" + }, + "search": "Cerca partecipanti", + "searchDescription": "Filtra partecipanti", + "title": "Partecipanti" + }, + "passwordDigitsOnly": "Fino a {{number}} cifre", + "passwordSetRemotely": "Impostata da altro utente", + "pinParticipant": "Metti {{participantName}} in evidenza", + "pinnedParticipant": "Il partecipante è in evidenza", + "polls": { + "answer": { + "edit": "Modifica", + "send": "Invia", + "skip": "Salta", + "submit": "Invia" + }, + "by": "Da {{ name }}", + "closeButton": "Chiudi sondaggio", + "create": { + "addOption": "Aggiungi opzione", + "answerPlaceholder": "Opzione {{index}}", + "cancel": "Annulla", + "create": "Crea un sondaggio", + "pollOption": "Opzione {{index}} del sondaggio", + "pollQuestion": "Domanda del sondaggio", + "questionPlaceholder": "Fai una domanda", + "removeOption": "Elimina opzione", + "save": "Salva", + "send": "Invia" + }, + "errors": { + "notUniqueOption": "Le opzioni devono essere uniche" + }, + "notification": { + "description": "Apri la scheda sondaggi per votare", + "title": "Un nuovo sondaggio è stato aggiunto alla riunione" + }, + "results": { + "changeVote": "Cambia voto", + "empty": "Non ci sono ancora sondaggi in questa riunione.", + "hideDetailedResults": "Nascondi dettagli", + "showDetailedResults": "Mostra dettagli", + "vote": "Voti" + } + }, + "poweredby": "offerto da", + "prejoin": { + "audioAndVideoError": "Errore audio e video:", + "audioDeviceProblem": "C'è un problema con il tuo microfono", + "audioOnlyError": "Errore audio:", + "audioTrackError": "Impossibile creare traccia audio.", + "callMe": "Chiamami", + "callMeAtNumber": "Chiamami a questo numero:", + "calling": "Chiamata in corso", + "configuringDevices": "Configurazione dispositivi in corso…", + "connectedWithAudioQ": "Sei connesso con l'audio?", + "connection": { + "failed": "Test di connessione fallito!", + "good": "La tua connessione internet è buona!", + "nonOptimal": "La tua connessione internet non è ottimale", + "poor": "La tua connessione internet è scarsa", + "running": "Test di connessione in corso..." + }, + "connectionDetails": { + "audioClipping": "È probabile che il tuo audio vada a singhiozzo.", + "audioHighQuality": "Il tuo audio dovrebbe essere eccellente.", + "audioLowNoVideo": "È probabile che la tua qualità audio sia bassa e che il video sia assente.", + "goodQuality": "Ottimo! La tua qualità multimediale sarà alta.", + "noMediaConnectivity": "Impossibile stabilire una connessione multimediale per fare questo test. Questo è solitamente causato da un firewall o dal NAT.", + "noVideo": "È probabile che la tua qualità video sia pessima.", + "testFailed": "Il test di connessione ha avuto problemi inaspettati, però questo potrebbe non avere impatti sulla tua esperienza.", + "undetectable": "Se non riesci ancora a fare chiamate nel browser, verifica che il microfono e la videocamera siano configurate correttamente, che tu abbia autorizzato il browser l'utilizzo del microfono e della videocamera e che il tuo browser sia aggiornato all'ultima versione. Se avessi ancora problemi, dovresti contattare lo sviluppatore dell'applicazione web.", + "veryPoorConnection": "È probabile che la tua qualità della chiamata sia terribile.", + "videoFreezing": "È probabile che il tuo video si blocchi, sparisca, o sia molto pixellato.", + "videoHighQuality": "Il tuo video dovrebbe essere di buona qualità.", + "videoLowQuality": "È probabile che il tuo video abbia pochi fotogrammi al secondo e sia a bassa risoluzione.", + "videoTearing": "È probabile che il tuo video sia pixellato o abbia artefatti." + }, + "copyAndShare": "Copia e condividi il collegamento della riunione", + "dialInMeeting": "Chiama per collegarti alla riunione", + "dialInPin": "Chiama per collegarti alla riunione e inserisci il PIN:", + "dialing": "Chiamata in corso", + "doNotShow": "Non mostrare più questa finestra", + "errorDialOut": "Impossibile fare la chiamata", + "errorDialOutDisconnected": "Impossibile fare la chiamata. Disconnesso", + "errorDialOutFailed": "Impossibile fare la chiamata. Chiamata fallita", + "errorDialOutStatus": "Errore nel ricevere lo stato della chiamata", + "errorMissingName": "Inserisci il tuo nome per accedere alla riunione", + "errorNoPermissions": "Devi autorizzare l'accesso al microfono e alla videocamera", + "errorStatusCode": "Errore nella chiamata, codice: {{status}}", + "errorValidation": "Numero inesistente", + "iWantToDialIn": "Voglio collegarmi con il telefono", + "initiated": "Chiamata avviata", + "joinAudioByPhone": "Collegati usando l'audio del telefono", + "joinMeeting": "Collegati alla riunione", + "joinMeetingInLowBandwidthMode": "Collegati in modalità larghezza di banda limitata ridotta", + "joinWithoutAudio": "Collegati senza audio", + "keyboardShortcuts": "Attiva le scorciatoie da tastiera", + "linkCopied": "Collegamento copiato negli appunti", + "lookGood": "I tuoi dispositivi funzionano correttamente", + "or": "o", + "premeeting": "Pre-riunione", + "proceedAnyway": "Procedi comunque", + "recordingWarning": "Gli altri partecipanti potrebbero registrare la riunione", + "screenSharingError": "Errore di condivisione dello schermo:", + "startWithPhone": "Avvia usando l'audio del telefono", + "unsafeRoomConsent": "Accetto i rischi, voglio entrare nella riunione.", + "videoOnlyError": "Errore video:", + "videoTrackError": "Impossibile creare la traccia video.", + "viewAllNumbers": "vedi tutti i numeri" + }, + "presenceStatus": { + "busy": "Occupato", + "calling": "Chiamata in corso…", + "connected": "Connesso", + "connecting": "Connessione in corso…", + "connecting2": "Connessione in corso*…", + "disconnected": "Disconnesso", + "expired": "Scaduto", + "ignored": "Ignorato", + "initializingCall": "Inizializzazione chiamata in corso…", + "invited": "Invitato", + "rejected": "Rifiutato", + "ringing": "Sta suonando…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Nome", + "setEmailInput": "Inserisci email", + "setEmailLabel": "Email Gravatar", + "title": "Profilo" + }, + "raisedHand": "Vorrebbe parlare", + "raisedHandsLabel": "Numero di mani alzate", + "record": { + "already": { + "linked": "La riunione è già collegata a questo oggetto Salesforce." + }, + "type": { + "account": "Account", + "contact": "Contatto", + "lead": "Conduttore", + "opportunity": "Opportunità", + "owner": "Proprietario" + } + }, + "recording": { + "authDropboxText": "Carica su Dropbox", + "availableSpace": "Spazio disponibile: {{spaceLeft}} MB (rimangono approssimativamente {{duration}} minuti di registrazione)", + "beta": "BETA", + "busy": "Stiamo cercando di liberare risorse per la registrazione. Si prega di riprovare tra qualche minuto.", + "busyTitle": "Tutti i registratori sono occupati", + "copyLink": "Copia collegamento", + "error": "Registrazione fallita. Si prega di riprovare.", + "errorFetchingLink": "Errore nel collegamento alla tua registrazione.", + "expandedOff": "Registrazione interrotta", + "expandedOn": "La registrazione della riunione è attiva.", + "expandedPending": "Avvio registrazione in corso…", + "failedToStart": "Impossibile avviare la registrazione", + "fileSharingdescription": "Condividi la registrazione con i partecipanti alla riunione", + "highlight": "Evidenzia", + "highlightMoment": "Evidenzia momento", + "highlightMomentDisabled": "Puoi evidenziare dei momenti quando inizia la registrazione", + "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", + "localRecordingStartWarning": "Assicurati di interrompere la registrazione prima di uscire dalla riunione, altrimenti la registrazione non verrà salvata.", + "localRecordingStartWarningTitle": "Interrompi la registrazione per salvarla", + "localRecordingVideoStop": "Interrompere il video fermerà anche la registrazione. Sei sicuro di voler continuare?", + "localRecordingVideoWarning": "Per registrare il video, deve essere già avviato prima dell'inizio della registrazione", + "localRecordingWarning": "Assicurati di aver selezionato la scheda corrente, per registrare gli audio e video corretti.", + "loggedIn": "Accesso effettuato come {{userName}}", + "noMicPermission": "La traccia del microfono non può essere creata. Si prega di concedere l'autorizzazione all'uso del microfono.", + "noStreams": "Audio e video non rilevati.", + "off": "Registrazione interrotta", + "offBy": "{{name}} ha interrotto la registrazione", + "on": "Registrazione avviata", + "onBy": "Registrazione avviata da {{name}}", + "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!", + "recordAudioAndVideo": "Registra audio e video", + "recordTranscription": "Registra trascrizione", + "saveLocalRecording": "Salva localmente il file della registrazione (Beta)", + "serviceDescription": "La tua registrazione verrà salvata dal servizio di registrazione", + "serviceDescriptionCloud": "Registrazione in rete", + "serviceDescriptionCloudInfo": "Le riunioni registrate vengono automaticamente cancellate 24 ore dopo la registrazione.", + "serviceName": "Servizio di registrazione", + "sessionAlreadyActive": "È già in corso una registrazione o una diretta per questa riunione.", + "showAdvancedOptions": "Opzioni avanzate", + "signIn": "Accedi", + "signOut": "Disconnetti", + "surfaceError": "Si prega di selezionare la scheda corrente.", + "title": "Registrazione", + "unavailable": "Ops! Il {{serviceName}} non è al momento disponibile. Stiamo lavorando per risolvere il problema. Si prega di riprovare più tardi.", + "unavailableTitle": "Registrazione non disponibile", + "uploadToCloud": "Carica nel cloud" + }, + "screenshareDisplayName": "Schermo di {{name}}", + "sectionList": { + "pullToRefresh": "Trascina per aggiornare" + }, + "security": { + "about": "Puoi aggiungere una $t(lockRoomPassword) alla riunione. I partecipanti dovranno inserire la $t(lockRoomPassword) per accedere alla riunione.", + "aboutReadOnly": "Gli organizzatori possono aggiungere una $t(lockRoomPassword) alla riunione. I partecipanti dovranno inserire la $t(lockRoomPassword) per accedere alla riunione.", + "insecureRoomNameWarningNative": "Il nome della riunione è troppo semplice. Partecipanti non desiderati potrebbero entrare nella riunione. {{recommendAction}} Per saperne di più sulla sicurezza della tua riunione ", + "insecureRoomNameWarningWeb": "Il nome della riunione è troppo semplice. Partecipanti non desiderati potrebbero entrare nella riunione. {{recommendAction}} Per saperne di più sulla sicurezza della tua riunione clicca qui.", + "title": "Impostazioni di sicurezza", + "unsafeRoomActions": { + "meeting": "Considera di rendere più sicura la riunione usando il pulsante sicurezza.", + "prejoin": "Considera di rendere più sicura la riunione usando un nome più complesso.", + "welcome": "Considera di rendere più sicura la riunione usando un nome più complesso o scegline uno dai suggeriti." + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Impostazioni", + "calendar": { + "about": "L’integrazione del calendario con {{appName}} è usata per accedere in sicurezza al proprio calendario e poter leggere i prossimi eventi.", + "disconnect": "Disconnetti", + "microsoftSignIn": "Accedi con un account Microsoft", + "signedIn": "Accesso agli eventi del calendario per {{email}} in corso. Clicca sul pulsante Disconnetti per interrompere l’accesso agli eventi sul calendario.", + "title": "Calendario" + }, + "chatWithPermissions": "La chat richiede il permesso", + "desktopShareFramerate": "Frequenza di aggiornamento condivisone schermo", + "desktopShareHighFpsWarning": "Una frequenza di aggiornamento della condivisione dello schermo più alta può influire sulla tua connessione. Devi riavviare la condivisione schermo, per applicare le modifiche.", + "desktopShareWarning": "Devi riavviare la condivisione schermo, per applicare le modifiche.", + "devices": "Dispositivi", + "followMe": "Tutti seguono te", + "followMeRecorder": "Il registratore segue te", + "framesPerSecond": "fotogrammi al secondo", + "incomingMessage": "Messaggio in arrivo", + "language": "Lingua", + "loggedIn": "Connesso come {{name}}", + "maxStageParticipants": "Numero massimo di partecipanti che possono essere messi in evidenza nella schermata principale", + "microphones": "Microfoni", + "moderator": "Organizzatore", + "moderatorOptions": "Opzioni organizzatore", + "more": "Generali", + "name": "Nome", + "noDevice": "Nessuno", + "notifications": "Notifiche", + "participantJoined": "Partecipante entrato", + "participantKnocking": "Partecipante in sala d'attesa", + "participantLeft": "Partecipante uscito", + "playSounds": "Suoni attivati", + "reactions": "Reazioni riunione", + "sameAsSystem": "Stesso del sistema ({{label}})", + "selectAudioOutput": "Uscita audio", + "selectCamera": "Videocamera", + "selectMic": "Microfono", + "selfView": "Tua immagine", + "shortcuts": "Scorciatoie", + "showSubtitlesOnStage": "Mostra sottotitoli in primo piano", + "speakers": "Altoparlanti", + "startAudioMuted": "Tutti iniziano a microfono spento", + "startReactionsMuted": "Spegni i suoni delle reazioni a tutti", + "startVideoMuted": "Tutti iniziano a videocamera disattivata", + "talkWhileMuted": "Parli a microfono spento", + "title": "Impostazioni", + "video": "Video" + }, + "settingsView": { + "advanced": "Avanzate", + "alertCancel": "Annulla", + "alertOk": "OK", + "alertTitle": "Attenzione", + "alertURLText": "L'URL del server inserito non valido", + "apply": "Applica", + "buildInfoSection": "Versione", + "conferenceSection": "Riunione", + "disableCallIntegration": "Disattiva l'integrazione nativa delle chiamate", + "disableCrashReporting": "Disattiva la diagnostica dei crash", + "disableCrashReportingWarning": "Sei sicuro di voler disattivare la diagnostica dei crash? Quest'impostazione verrà applicata al prossimo avvio dell'app.", + "disableP2P": "Disattiva la modalità Peer-to-Peer", + "displayName": "Nome visualizzato", + "displayNamePlaceholderText": "Es: Mario Rossi", + "email": "Email", + "emailPlaceholderText": "email@esempio.com", + "gavatarMessage": "Se la tua email è associata ad un account Gravatar, questo verrà usato per mostrare la tua immagine di profilo.", + "goTo": "Vai a", + "header": "Impostazioni", + "help": "Aiuto", + "links": "Collegamenti", + "privacy": "Privacy", + "profileSection": "Profilo", + "sdkVersion": "versione SDK", + "serverURL": "URL del server", + "showAdvanced": "Mostra impostazioni avanzate", + "startCarModeInLowBandwidthMode": "Avvia modalità auto in modalità larghezza di banda limitata", + "startWithAudioMuted": "Inizia con audio disattivato", + "startWithVideoMuted": "Inizia con video disattivato", + "terms": "Termini", + "version": "Versione" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVuoi ascoltare la riunione da un telefono?\n\n{{defaultDialInNumber}}Clicca su questo link per vedere i numeri telefonici di questa riunione\n{{dialInfoPageUrl}}", + "mainText": "Fai click sul link seguente per partecipare alla riunione:\n{{roomUrl}}" + }, + "speaker": "Relatore", + "speakerStats": { + "angry": "Arrabbiato", + "disgusted": "Disgustato", + "displayEmotions": "Mostra emozioni", + "fearful": "Spaventato", + "happy": "Contento", + "hours": "{{count}}h", + "labelTooltip": "Numero di partecipanti: {{count}}", + "minutes": "{{count}}m", + "name": "Nome", + "neutral": "Neutro", + "sad": "Triste", + "search": "Cerca", + "searchDescription": "Scrivi per filtrare i partecipanti", + "searchHint": "Cerca partecipanti", + "seconds": "{{count}}s", + "speakerStats": "Statistiche", + "speakerTime": "Tempo", + "surprised": "A bocca aperta" + }, + "startupoverlay": { + "genericTitle": "Per la riunione devono essere usati il tuo microfono e la tua videocamera.", + "policyText": " ", + "title": "{{app}} ha bisogno di usare il tuo microfono e la tua videocamera." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Ricollegati", + "text": "Premi il pulsante Ricollegati per ricollegarti.", + "title": "La videochiamata si è interrotta perché il computer è stato sospeso." + }, + "termsView": { + "title": "Termini" + }, + "toggleTopPanelLabel": "Mostra scheda superiore", + "toolbar": { + "Settings": "Impostazioni", + "accessibilityLabel": { + "Settings": "Apri impostazioni", + "audioOnly": "Attiva solo audio", + "audioRoute": "Scegli il dispositivo audio", + "boo": "Buu", + "breakoutRooms": "Stanze", + "callQuality": "Imposta qualità del video", + "carmode": "Modalità auto", + "cc": "Mostra sottotitoli", + "chat": "Apri chat", + "clap": "Applaudi", + "closeChat": "Chiudi chat", + "closeMoreActions": "Chiudi menu avanzato", + "closeParticipantsPane": "Chiudi pannello partecipanti", + "closedCaptions": "Sottotitoli", + "collapse": "Riduci", + "document": "Mostra documenti condivisi", + "documentClose": "Chiudi documento condiviso", + "documentOpen": "Apri documento condiviso", + "download": "Scarica le nostre app", + "embedMeeting": "Incorpora riunione", + "endConference": "Termina la riunione per tutti", + "enterFullScreen": "Mostra a schermo intero", + "enterTileView": "Mostra vista a mosaico", + "exitFullScreen": "Esci dalla modalità a schermo intero", + "exitTileView": "Esci dalla vista a mosaico", + "expand": "Espandi", + "feedback": "Lascia un feedback", + "fullScreen": "Attiva modalità a schermo intero", + "giphy": "Mostra menu GIPHY", + "grantModerator": "Concedi permessi di organizzatore", + "hangup": "Lascia la riunione", + "heading": "Barra degli strumenti", + "help": "Aiuto", + "hideWhiteboard": "Nascondi lavagna", + "invite": "Invita partecipanti", + "kick": "Espelli partecipante", + "laugh": "Ridi", + "leaveConference": " Lascia riunione", + "like": "Mi piace", + "linkToSalesforce": "Collega a Salesforce", + "lobbyButton": "Attiva/disattiva sala d'attesa", + "localRecording": "Mostra controlli della registrazione", + "lockRoom": "Attiva/disattiva password della riunione", + "love": "Cuore", + "lowerHand": "Abbassa la mano", + "moreActions": "Avanzate", + "moreActionsMenu": "Menu avanzato", + "moreOptions": "Altre opzioni", + "mute": "Spegni microfono", + "muteEveryone": "Spegni il microfono a tutti", + "muteEveryoneElse": "Spegni il microfono a tutti gli altri", + "muteEveryoneElsesVideoStream": "Spegni la videocamera a tutti gli altri", + "muteEveryonesVideoStream": "Spegni la videocamera a tutti", + "muteGUMPending": "Connessione del microfono in corso", + "noiseSuppression": "Cancellazione del rumore (BETA)", + "openChat": "Apri chat", + "participants": "Apri pannello partecipanti. {{participantsCount}} partecipanti", + "pip": "Attiva modalità Picture-in-Picture", + "privateMessage": "Invia messaggio privato", + "profile": "Modifica profilo", + "raiseHand": "Alza la mano", + "react": "Reazione ai messaggi", + "reactions": "Reazioni", + "reactionsMenu": "Menu reazioni", + "recording": "Avvia registrazione", + "remoteMute": "Spegni microfono al partecipante", + "remoteVideoMute": "Spegni videocamera al partecipante", + "security": "Opzioni di sicurezza", + "selectBackground": "Scegli sfondo", + "selfView": "Mostra tua immagine", + "shareRoom": "Invita qualcuno", + "shareYourScreen": "Condivisione schermo", + "shareaudio": "Condividi audio", + "sharedvideo": "Condividi video", + "shortcuts": "Mostra scorciatoie", + "show": "Mostra in primo piano", + "showWhiteboard": "Mostra lavagna", + "silence": "Senza parole", + "speakerStats": "Mostra statistiche partecipanti", + "stopScreenSharing": "Interrompi condivisione dello schermo", + "stopSharedVideo": "Interrompi video", + "surprised": "A bocca aperta", + "tileView": "Mostra vista a mosaico", + "toggleCamera": "Cambia videocamera", + "toggleFilmstrip": "Mostra pellicola", + "unmute": "Attiva il microfono", + "videoblur": "Sfoca video", + "videomute": "Spegni videocamera", + "videomuteGUMPending": "Connessione della videocamera in corso", + "videounmute": "Accendi videocamera" + }, + "addPeople": "Aggiungi partecipanti alla chiamata", + "audioOnlyOff": "Disabilita modalità larghezza di banda limitata", + "audioOnlyOn": "Abilita modalità larghezza di banda limitata", + "audioRoute": "Scegli il dispositivo audio", + "audioSettings": "Impostazioni audio", + "authenticate": "Autenticazione", + "boo": "Buu", + "callQuality": "Imposta qualità video", + "chat": "Apri chat", + "clap": "Applaudi", + "closeChat": "Chiudi chat", + "closeParticipantsPane": "Chiudi pannello partecipanti", + "closeReactionsMenu": "Chiudi menu reazioni", + "closedCaptions": "Sottotitoli", + "disableNoiseSuppression": "Disattiva cancellazione del rumore (BETA)", + "disableReactionSounds": "Puoi disattivare i suoni delle reazioni in questa riunione", + "documentClose": "Chiudi documento condiviso", + "documentOpen": "Apri documento condiviso", + "download": "Scarica le nostre app", + "e2ee": "Crittografia End-to-End", + "embedMeeting": "Incorpora riunione", + "enableNoiseSuppression": "Attiva cancellazione del rumore (BETA)", + "endConference": "Termina la riunione per tutti", + "enterFullScreen": "Mostra a schermo intero", + "enterTileView": "Mostra vista a mosaico", + "exitFullScreen": "Esci dalla modalità a schermo intero", + "exitTileView": "Esci dalla vista a mosaico", + "feedback": "Lascia un feedback", + "giphy": "Menu GIPHY", + "hangup": "Lascia la riunione", + "help": "Aiuto", + "hideWhiteboard": "Nascondi lavagna", + "invite": "Invita partecipanti", + "joinBreakoutRoom": "Entra nella stanza", + "laugh": "Ridi", + "leaveBreakoutRoom": "Lascia stanza", + "leaveConference": " Lascia riunione", + "like": "Mi piace", + "linkToSalesforce": "Collega a Salesforce", + "lobbyButtonDisable": "Disattiva sala d'attesa", + "lobbyButtonEnable": "Abilita sala d'attesa", + "login": "Accedi", + "logout": "Disconnetti", + "love": "Cuore", + "lowerYourHand": "Abbassa la mano", + "moreActions": "Avanzate", + "moreOptions": "Altre opzioni", + "mute": "Spegni microfono", + "muteEveryone": "Spegni microfono a tutti", + "muteEveryonesVideo": "Spegni videocamera a tutti", + "muteGUMPending": "Connessione del microfono in corso", + "noAudioSignalDesc": "Se non l'hai disabilitato intenzionalmente nelle impostazioni di sistema o hardware, prova a cambiare dispositivo.", + "noAudioSignalDescSuggestion": "Se non l'hai disabilitato intenzionalmente nelle impostazioni di sistema o hardware, prova ad usare il dispositivo di consigliato.", + "noAudioSignalDialInDesc": "Puoi anche chiamare usando:", + "noAudioSignalDialInLinkDesc": "Numeri di telefono", + "noAudioSignalTitle": "Nessun suono rilevato dal tuo microfono!", + "noiseSuppression": "Cancellazione del rumore (BETA)", + "noisyAudioInputDesc": "Sembra che il tuo microfono faccia rumore, si prega di spegnerlo o cambiarlo.", + "noisyAudioInputTitle": "Il tuo microfono sembra fare rumore!", + "openChat": "Apri chat", + "openReactionsMenu": "Apri il menu reazioni", + "participants": "Partecipanti", + "pip": "Abilita modalità Picture-in-Picture", + "privateMessage": "Invia un messaggio privato", + "profile": "Modifica profilo", + "raiseHand": "Alza la mano", + "raiseYourHand": "Alza la mano", + "reactionBoo": "Invia buu", + "reactionClap": "Invia applauso", + "reactionHeart": "Invia cuore", + "reactionLaugh": "Invia risata", + "reactionLike": "Invia mi piace", + "reactionSilence": "Invia senza parole", + "reactionSurprised": "Invia a bocca aperta", + "reactions": "Reazioni", + "security": "Opzioni di sicurezza", + "selectBackground": "Scegli sfondo", + "shareRoom": "Invita qualcuno", + "shareaudio": "Condividi audio", + "sharedvideo": "Condividi video", + "shortcuts": "Visualizza scorciatoie", + "showWhiteboard": "Mostra lavagna", + "silence": "Senza parole", + "speakerStats": "Statistiche partecipanti", + "startScreenSharing": "Avvia la condivisione dello schermo", + "startSubtitles": "Avvia sottotitoli • {{language}}", + "stopAudioSharing": "Interrompi condivisione audio", + "stopScreenSharing": "Interrompi la condivisione dello schermo", + "stopSharedVideo": "Interrompi video", + "stopSubtitles": "Interrompi sottotitoli", + "surprised": "Sopreso", + "talkWhileMutedPopup": "Stai parlando? Il microfono è disattivato.", + "tileViewToggle": "Mostra vista a mosaico", + "toggleCamera": "Cambia videocamera", + "unmute": "Riattiva microfono", + "videoSettings": "Impostazioni video", + "videomute": "Spegni videocamera", + "videomuteGUMPending": "Connessione della videocamera in corso", + "videounmute": "Accendi videocamera" + }, + "transcribing": { + "ccButtonTooltip": "Avvia sottotitoli", + "expandedLabel": "La trascrizione è attiva", + "failed": "Trascrizione non riuscita", + "labelTooltip": "La trascrizione della riunione è in corso.", + "labelTooltipExtra": "Inoltre, una trascrizione sarà disponibile in seguito.", + "openClosedCaptions": "Apri sottotitoli", + "original": "Originale", + "sourceLanguageDesc": "Al momento la riunione è in {{sourceLanguage}}.
Puoi cambiare lingua da ", + "sourceLanguageHere": "qui", + "start": "Avvia visualizzazione sottotitoli", + "stop": "Interrompi visualizzazione sottotitoli", + "subtitles": "Sottotitoli", + "subtitlesOff": "Spenti", + "tr": "TR", + "translateTo": "Traduci in" + }, + "unpinParticipant": "{{participantName}} - Disattiva in evidenza", + "userMedia": { + "grantPermissions": "Si prega di concedere l'autorizzazione ad usare videocamera e microfono." + }, + "videoSIPGW": { + "busy": "Stiamo lavorando per liberare le risorse. Si prega di riprovare tra qualche minuto.", + "busyTitle": "Il servizio di riunione al momento è occupato", + "errorAlreadyInvited": "{{displayName}} già invitato", + "errorInvite": "Riunione non ancora iniziata. Si prega di riprovare più tardi.", + "errorInviteFailed": "Stiamo lavorando per risolvere il problema. Si prega di riprovare più tardi.", + "errorInviteFailedTitle": "Invito a {{displayName}} non riuscito", + "errorInviteTitle": "Errore nell'invito alla riunione", + "pending": "{{displayName}} è stato invitato" + }, + "videoStatus": { + "adjustFor": "Ottimizza per:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Hai attivato la modalità larghezza di banda limitata. In questa modalità riceverai solo l'audio e la condivisione dello schermo.", + "bestPerformance": "Prestazioni max.", + "callQuality": "Qualità video (0 per prestazioni massime, 3 per qualità massima)", + "hd": "HD", + "hdTooltip": "Il video è in alta definizione", + "highDefinition": "Alta definizione", + "highestQuality": "Qualità max.", + "labelTooiltipNoVideo": "Nessun video", + "labelTooltipAudioOnly": "Modalità larghezza di banda limitata attivata", + "ld": "LD", + "ldTooltip": "Il video è a bassa definizione", + "lowDefinition": "Bassa definizione", + "performanceSettings": "Impostazioni prestazioni", + "recording": "Questa riunione sta venendo registrata.", + "sd": "SD", + "sdTooltip": "Il video è in definizione standard", + "standardDefinition": "Definizione standard", + "streaming": "Trasmissione in corso" + }, + "videothumbnail": { + "connectionInfo": "Informazioni connessione", + "demote": "Fai diventare spettatore", + "domute": "Disattiva microfono", + "domuteOthers": "Disattiva microfono a tutti gli altri", + "domuteVideo": "Disattiva videocamera", + "domuteVideoOfOthers": "Disattiva videocamera a tutti gli altri", + "flip": "Specchia", + "grantModerator": "Concedi permessi da organizzatore", + "hideSelfView": "Nascondi la tua immagine", + "kick": "Espelli", + "mirrorVideo": "Specchia il tuo video", + "moderator": "Organizzatore", + "mute": "Il partecipante ha il microfono spento", + "muted": "Microfono spento", + "pinToStage": "Metti in primo piano", + "remoteControl": "Avvia controllo remoto", + "screenSharing": "Il partecipante sta condividendo lo schermo", + "show": "Mostra in primo piano", + "showSelfView": "Mostra la tua immagine", + "unpinFromStage": "Non più in primo piano", + "verify": "Verifica partecipante", + "videoMuted": "Videocamera disattivata", + "videomute": "Il partecipante ha la spento la videocamera" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Sfondo attuale: {{background}}", + "selectBackground": "Seleziona uno sfondo" + }, + "addBackground": "Aggiungi sfondo", + "apply": "Applica", + "backgroundEffectError": "L'applicazione dell'effetto allo sfondo non riuscita.", + "blur": "Sfocatura", + "deleteImage": "Cancella immagine", + "desktopShare": "Condivisione desktop", + "desktopShareError": "Impossibile condividere il desktop", + "image1": "Spiaggia", + "image2": "Parete bianca neutra", + "image3": "Stanza bianca vuota", + "image4": "Lampada da pavimento nera", + "image5": "Montagna", + "image6": "Foresta", + "image7": "Alba", + "none": "Nessuno", + "pleaseWait": "Si prega di attendere…", + "removeBackground": "Rimuovi sfondo", + "slightBlur": "Sfocatura leggera", + "title": "Sfondi virtuali", + "uploadedImage": "Immagine caricata {{index}}", + "webAssemblyWarning": "Il WebAssembly non è supportato", + "webAssemblyWarningDescription": "Il WebAssembly è disabilitato o non è supportato da questo browser" + }, + "visitors": { + "chatIndicator": "(spettatore)", + "joinMeeting": { + "description": "Adesso sei uno spettatore in questa riunione.", + "raiseHand": "Alza la mano", + "title": "Ingresso nella riunione in corso", + "wishToSpeak": "Se vuoi parlare, si prega di alzare la mano sotto e aspettare l'autorizzazione dell'organizzatore." + }, + "labelTooltip": "Numero di spettatori: {{count}}", + "notification": { + "demoteDescription": "Fatto diventare spettatore da {{actor}}, alza la mano per intervenire", + "noMainParticipantsDescription": "Un partecipante deve iniziare la riunione. Si prega di riprovare più tardi.", + "noMainParticipantsTitle": "La riunione non è ancora iniziata.", + "noVisitorLobby": "Non puoi partecipare se la sala d'attesa è attiva per la riunione.", + "notAllowedPromotion": "Un partecipante deve autorizzare la tua richiesta prima.", + "title": "Sei uno spettatore nella riunione" + }, + "waitingMessage": "Ti unirai alla riunione quando inizierà!" + }, + "volumeSlider": "Barra del volume", + "welcomepage": { + "accessibilityLabel": { + "join": "Tocca per accedere", + "roomname": "Inserisci nome riunione" + }, + "addMeetingName": "Aggiungi nome riunione", + "appDescription": "Avvia una videochiamata con tutto il gruppo. Invita tutti quelli che conosci. {{app}} è una soluzione per effettuare videoconferenze totalmente crittografata, 100% open source, che puoi usare sempre, ogni giorno, gratuitamente – senza bisogno di un account.", + "audioVideoSwitch": { + "audio": "Voce", + "video": "Video" + }, + "calendar": "Calendario", + "connectCalendarButton": "Collega calendario", + "connectCalendarText": "Collega il tuo calendario per vedere tutte le riunioni dentro {{app}}. Poi, aggiungi {{provider}} di riunione al tuo calendario per avviarle con un clic.", + "enterRoomTitle": "Avvia una nuova riunione", + "getHelp": "Ottieni aiuto", + "go": "VAI", + "goSmall": "VAI", + "headerSubtitle": "Riunioni sicure e di alta qualità", + "headerTitle": "Jitsi Meet", + "info": "Informazioni chiamata", + "jitsiOnMobile": "Jitsi su mobile – scarica le nostre applicazioni e dai inizio ad una riunione dovunque tu sia", + "join": "CREA/UNISCITI", + "logo": { + "calendar": "Logo calendario", + "desktopPreviewThumbnail": "Miniatura anteprima del desktop", + "googleLogo": "Logo Google", + "logoDeepLinking": "Logo Jitsi meet", + "microsoftLogo": "Logo Microsoft", + "policyLogo": "Logo politica" + }, + "meetingsAccessibilityLabel": "Riunioni", + "mobileDownLoadLinkAndroid": "Scarica applicazione per Android", + "mobileDownLoadLinkFDroid": "Scarica applicazione da F-Droid", + "mobileDownLoadLinkIos": "Scarica applicazione per iOS", + "moderatedMessage": "O prepara un URL di riunione in anticipo, quando sei l'unico organizzatore.", + "privacy": "Privacy", + "recentList": "Recenti", + "recentListDelete": "Cancella", + "recentListEmpty": "La lista delle riunioni recenti è vuota. Parla con il tuo gruppo e troverai tutte le riunioni recenti qui.", + "recentMeetings": "Riunioni recenti", + "reducedUIText": "Benvenuto in {{app}}!", + "roomNameAllowedChars": "Il nome della riunione non deve contenere questi caratteri: ?, &, :, ', \", %, #.", + "roomname": "Inserisci il nome della riunione", + "roomnameHint": "Inserisci il nome o l'URL della riunione a cui vuoi accedere. Puoi anche inventarti un nome, assicurati solo che le persone con cui vuoi collegarti lo conoscano, così che possano inserire lo stesso nome.", + "sendFeedback": "Invia feedback", + "settings": "Impostazioni", + "startMeeting": "Inizia riunione", + "terms": "Termini di utilizzo", + "title": "Il sistema di videoconferenza sicuro, funzionale e completamente gratuito.", + "upcomingMeetings": "Prossime riunioni" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Lavagna" + }, + "screenTitle": "Lavagna" + } +} diff --git a/lang/main-ja.json b/lang/main-ja.json new file mode 100644 index 0000000..2c2ab62 --- /dev/null +++ b/lang/main-ja.json @@ -0,0 +1,1258 @@ +{ + "addPeople": { + "add": "招待", + "addContacts": "連絡先の人を招待する", + "contacts": "連絡先", + "copyInvite": "ミーティングの招待状をコピー", + "copyLink": "ミーティングのリンクをコピー", + "copyStream": "ライブ配信のリンクをコピー", + "countryNotSupported": "私たちはこの宛先をまだサポートしていません。", + "countryReminder": "米国外の番号に通話しますか? 国コードで始まることを確認してください!", + "defaultEmail": "あなたの既定のメール", + "disabled": "人を招待することはできません。", + "failedToAdd": "参加者の追加に失敗しました。", + "footerText": "ダイヤルアウトが無効です。", + "googleEmail": "Gmail", + "inviteMoreHeader": "このミーティングにいるのは、あなただけです", + "inviteMoreMailSubject": "{{appName}} のミーティングに参加してください", + "inviteMorePrompt": "もっと多くの人を招待しましょう", + "linkCopied": "クリップボードにリンクをコピーしました", + "noResults": "一致する検索結果がありません", + "outlookEmail": "Outlook メール", + "phoneNumbers": "電話番号", + "searching": "検索中…", + "shareInvite": "ミーティングの招待状を共有", + "shareLink": "ミーティングへのリンクを共有して、他の人を招待しましょう", + "shareStream": "ライブ配信へのリンクを共有する", + "sipAddresses": "SIP アドレス", + "telephone": "電話: {{number}}", + "title": "このミーティングに人を招待する", + "yahooEmail": "Yahoo! メール" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "ヘッドフォン", + "none": "利用可能なオーディオデバイスがありません", + "phone": "電話", + "speaker": "スピーカー" + }, + "audioOnly": { + "audioOnly": "音声のみ" + }, + "blankPage": { + "meetingEnded": "ミーティングは終了しています。" + }, + "breakoutRooms": { + "actions": { + "add": "ブレイクアウトルームを追加", + "autoAssign": "ブレイクアウトルームに自動割り当て", + "close": "閉じる", + "join": "参加", + "leaveBreakoutRoom": "ブレイクアウトルームを退出", + "more": "More", + "remove": "削除", + "sendToBreakoutRoom": "参加者を移動:" + }, + "defaultName": "ブレイクアウトルーム #{{index}}", + "mainRoom": "メインルーム", + "notifications": { + "joined": "ブレイクアウトルーム \"{{name}}\" に参加しています", + "joinedMainRoom": "メインルームに参加しています", + "joinedTitle": "ブレイクアウトルーム" + } + }, + "calendarSync": { + "addMeetingURL": "ミーティングのリンクを追加する", + "confirmAddLink": "このイベントに Jitsi のリンクを追加しますか?", + "error": { + "appConfiguration": "カレンダー統合が正しく設定されていません。", + "generic": "エラーが発生しました。カレンダーの設定を確認するか、カレンダーを更新してください。", + "notSignedIn": "カレンダーを確認するための認証中にエラーが発生しました。カレンダーの設定を確認し、ログインし直してください。" + }, + "join": "参加", + "joinTooltip": "ミーティングに参加する", + "nextMeeting": "次のミーティング", + "noEvents": "今後予定されているイベントはありません。", + "ongoingMeeting": "ミーティング中", + "permissionButton": "設定を開く", + "permissionMessage": "アプリにミーティングを表示するには、カレンダーのアクセス許可が必要です。", + "refresh": "カレンダーを更新する", + "today": "今日" + }, + "chat": { + "enter": "ルームに入る", + "error": "エラー: メッセージは送信されませんでした。原因: {{error}}", + "fieldPlaceHolder": "ここにメッセージを入力してください", + "message": "メッセージ", + "messageAccessibleTitle": "{{user}} の発言:", + "messageAccessibleTitleMe": "自分の発言:", + "messageTo": "{{recipient}} へのプライベートメッセージ", + "messagebox": "メッセージを入力してください", + "nickname": { + "popover": "ニックネームを入力", + "title": "チャットで使用するニックネームを入力してください", + "titleWithPolls": "チャットと投票で使用するニックネームを入力してください" + }, + "noMessagesMessage": "このミーティングにはまだメッセージがありません。会話を開始してください!", + "privateNotice": "{{recipient}} へのプライベートメッセージ", + "sendButton": "送信", + "smileysPanel": "絵文字パネル", + "tabs": { + "chat": "チャット", + "polls": "投票" + }, + "title": "チャット", + "titleWithPolls": "チャットと投票", + "you": "あなた" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome の機能拡張をインストール", + "close": "閉じる", + "dontShowAgain": "このメッセージを再度表示しない", + "installExtensionText": "Google カレンダーと Office 365 統合のための拡張機能をインストールしてください" + }, + "connectingOverlay": { + "joiningRoom": "ミーティングに参加しています…" + }, + "connection": { + "ATTACHED": "アタッチされました", + "AUTHENTICATING": "認証中", + "AUTHFAIL": "認証に失敗しました", + "CONNECTED": "接続されました", + "CONNECTING": "接続中", + "CONNFAIL": "接続に失敗しました", + "DISCONNECTED": "切断されました", + "DISCONNECTING": "切断しています", + "ERROR": "エラー", + "FETCH_SESSION_ID": "セッションIDの取得中…", + "GET_SESSION_ID_ERROR": "セッションIDの取得エラー: {{code}}", + "GOT_SESSION_ID": "セッションIDの取得中… 完了", + "LOW_BANDWIDTH": "帯域節約のため、{{displayName}} のビデオがオフになりました" + }, + "connectionindicator": { + "address": "アドレス:", + "audio_ssrc": "オーディオ SSRC:", + "bandwidth": "推定帯域幅", + "bitrate": "ビットレート:", + "bridgeCount": "サーバー数:", + "codecs": "コーデック (A/V): ", + "connectedTo": "接続先:", + "framerate": "フレームレート:", + "less": "表示を減らす", + "localaddress": "ローカルアドレス:", + "localaddress_plural": "ローカルアドレス:", + "localport": "ローカルポート:", + "localport_plural": "ローカルポート:", + "maxEnabledResolution": "最大を送信", + "more": "表示を増やす", + "packetloss": "パケットロス:", + "participant_id": "参加者 ID:", + "quality": { + "good": "良い", + "inactive": "休止中", + "lost": "ロスト", + "nonoptimal": "最適ではない", + "poor": "悪い" + }, + "remoteaddress": "リモートアドレス:", + "remoteaddress_plural": "リモートアドレス:", + "remoteport": "リモートポート:", + "remoteport_plural": "リモートポート:", + "resolution": "解像度:", + "savelogs": "ログの保存", + "status": "接続状態:", + "transport": "トランスポート:", + "transport_plural": "トランスポート:", + "video_ssrc": "ビデオ SSRC:" + }, + "dateUtils": { + "earlier": "その前", + "today": "今日", + "yesterday": "昨日" + }, + "deepLinking": { + "appNotInstalled": "あなたのスマートフォンでこのミーティングに参加するには、{{app}} モバイルアプリが必要です。", + "description": "何も起こりませんでしたか? {{app}} デスクトップアプリでミーティングを開始しようとしました。再度試してみるか、{{app}} Webアプリで起動してください。", + "descriptionWithoutWeb": "何も起こりませんでしたか? {{app}} デスクトップアプリでミーティングを開始しようとしました。", + "downloadApp": "アプリのダウンロード", + "ifDoNotHaveApp": "まだこのアプリを持っていない場合:", + "ifHaveApp": "すでにこのアプリを持っている場合:", + "joinInApp": "アプリでミーティングに参加", + "launchWebButton": "Web 版を起動", + "title": "{{app}} でミーティングを開始しています…", + "tryAgainButton": "デスクトップでもう一度お試しください", + "unsupportedBrowser": "我々がサポートしていないブラウザをお使いのようです。" + }, + "defaultLink": "例: {{url}}", + "defaultNickname": "例: Jane Pink", + "deviceError": { + "cameraError": "カメラへのアクセスに失敗しました", + "cameraPermission": "カメラの権限を取得する際にエラー", + "microphoneError": "マイクへのアクセスに失敗しました", + "microphonePermission": "マイクの権限を取得する際にエラー" + }, + "deviceSelection": { + "noPermission": "許可されていません", + "previewUnavailable": "プレビューを利用できません", + "selectADevice": "デバイスを選択", + "testAudio": "テストサウンドを再生" + }, + "dialOut": { + "statusMessage": "は現在 {{status}} です" + }, + "dialog": { + "Back": "戻る", + "Cancel": "キャンセル", + "IamHost": "私はホストです", + "Ok": "OK", + "Remove": "除去", + "Share": "共有", + "Submit": "投稿", + "WaitForHostMsg": "ミーティング はまだ開始されていません。あなたがホストの場合は、認証を行ってください。それ以外の場合は、ホストの到着をお待ちください。", + "WaitingForHostTitle": "ホストの到着を待っています…", + "Yes": "はい", + "accessibilityLabel": { + "liveStreaming": "ライブ配信" + }, + "add": "追加", + "allow": "許可", + "alreadySharedVideoMsg": "他の参加者がすでに動画を共有しています。このミーティングは同時に一つの動画のみ共有可能です。", + "alreadySharedVideoTitle": "同時に1つの共有動画のみが許可されます", + "applicationWindow": "アプリケーションウィンドウ", + "authenticationRequired": "認証が必要", + "cameraConstraintFailedError": "あなたのカメラは、必要な制約のいくつかを満たしていません。", + "cameraNotFoundError": "カメラが見つかりませんでした。", + "cameraNotSendingData": "あなたのカメラにアクセスすることができません。他のアプリケーションがこのデバイスを使用しているかどうかを確認し、設定メニューから別のデバイスを選択するか、アプリケーションをリロードしてみてください。", + "cameraNotSendingDataTitle": "カメラにアクセスできません", + "cameraPermissionDeniedError": "あなたはカメラを使用する許可を与えていません。あなたはまだミーティングに参加することができますが、他の参加者はあなたを見ることはできません。この問題を解決するには、アドレスバーのカメラボタンを使用します。", + "cameraTimeoutError": "ビデオを開始できませんでした。タイムアウトが発生しました", + "cameraUnknownError": "不明な理由でカメラが使用できません。", + "cameraUnsupportedResolutionError": "お使いのカメラは、必要なビデオ解像度をサポートしていません。", + "close": "閉じる", + "conferenceDisconnectMsg": "ネットワーク接続を確認することができます。{{seconds}} 秒以内に再接続します…", + "conferenceDisconnectTitle": "あなたは切断されました。", + "conferenceReloadMsg": "私たちはこれを解決しようとしています。{{seconds}} 秒以内に再接続します…", + "conferenceReloadTitle": "残念ながら、何か問題が発生しています。", + "confirm": "確認", + "confirmNo": "いいえ", + "confirmYes": "はい", + "connectError": "おっと! 何かがうまくいかず、ミーティングに接続できませんでした。", + "connectErrorWithMsg": "おっと! 何か問題が発生し、ミーティングに接続できませんでした: {{msg}}", + "connecting": "接続中", + "contactSupport": "サポート問い合わせ先", + "copied": "コピー済み", + "copy": "コピー", + "dismiss": "閉じる", + "displayNameRequired": "こんにちは! あなたの名前は?", + "done": "完了", + "e2eeDescription": "エンドツーエンドの暗号化は現在実験中です。エンドツーエンドの暗号化を有効にすると、電話による参加のようなサーバサイドで提供されるサービスが実質的に無効となることに注意してください。また、ミーティングは Insertable Streams をサポートするブラウザーから参加する人にのみ機能することにも注意してください。", + "e2eeDisabledDueToMaxModeDescription": "ミーティングの参加者が多すぎてエンドツーエンドの暗号化を有効にできません。", + "e2eeLabel": "エンドツーエンドの暗号化を有効", + "e2eeWarning": "警告: このミーティング内には、エンドツーエンドの暗号化をサポートしていない参加者がいるようです。この機能を有効にすると、この人たちは何も視聴できなくなるでしょう。", + "e2eeWillDisableDueToMaxModeDescription": "警告: ミーティングへの参加者が一定数以上に増えた場合、エンドツーエンドの暗号化は自動的に無効になります。", + "embedMeeting": "ミーティングの埋め込み", + "enterDisplayName": "あなたの名前を入力してください", + "error": "エラー", + "gracefulShutdown": "現在、メンテナンスのためサービスが停止しています。後でもう一度お試しください。", + "grantModeratorDialog": "{{participantName}} をモデレーターにします。よろしいですか?", + "grantModeratorTitle": "モデレーター権限の付与", + "hideShareAudioHelper": "このダイアログを再び表示しないでください", + "incorrectPassword": "ユーザーネームまたはパスワードが違います", + "incorrectRoomLockPassword": "間違ったパスワード", + "internalError": "おっと! 何かの問題が発生しました。次のエラーが発生しました: {{error}}", + "internalErrorTitle": "内部エラー", + "kickMessage": "詳細は、{{participantDisplayName}} にお問い合わせください。", + "kickParticipantButton": "追放", + "kickParticipantDialog": "この参加者を追放します。よろしいですか?", + "kickParticipantTitle": "この参加者を追放しますか?", + "kickTitle": "ぎゃ! {{participantDisplayName}} があなたをこのミーティングから追放しました", + "liveStreaming": "ライブ配信", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "録画中は利用できません", + "liveStreamingDisabledTooltip": "ライブ配信の無効化を開始しました。", + "localUserControls": "ローカルユーザーコントロール", + "lockMessage": "ミーティングをロックできませんでした。", + "lockRoom": "ミーティング $t(lockRoomPassword) を追加", + "lockTitle": "ロックに失敗しました", + "login": "ログイン", + "logoutQuestion": "ログアウトしてミーティングを停止してもよろしいですか?", + "logoutTitle": "ログアウト", + "maxUsersLimitReached": "参加者数が上限に達しました。このミーティングは満員です。ミーティングの主催者にお問い合わせするか、後でもう一度お試しください!", + "maxUsersLimitReachedTitle": "参加者数の上限に達しました", + "micConstraintFailedError": "あなたのマイクは、必要な要件のいくつかを満たしていません。", + "micNotFoundError": "マイクが見つかりませんでした。", + "micNotSendingData": "コンピューターの設定に進み、マイクのミュート解除とレベルの調整を行ってください", + "micNotSendingDataTitle": "あなたのマイクはシステム設定によりミュートされています", + "micPermissionDeniedError": "マイクを使用する権限がありません。あなたはまだミーティングに参加することができますが、他の人はあなたの声を聞けません。この問題を解決するには、アドレスバーのカメラボタンを使用します。", + "micTimeoutError": "音声を開始できませんでした。タイムアウトが発生しました!", + "micUnknownError": "不明な理由により、マイクを使用することはできません。", + "moderationAudioLabel": "参加者が自分でミュートを解除できるようにします", + "moderationVideoLabel": "参加者が自分でビデオを開始できるようにします", + "muteEveryoneDialog": "参加者はいつでも自分自身のミュートを解除することができます。", + "muteEveryoneDialogModerationOn": "参加者はいつでも発言のリクエストを送ることができます。", + "muteEveryoneElseDialog": "一度ミュートすると、あなたはミュートを解除できなくなりますが、彼らはいつでも自分自身のミュートを解除することができます。", + "muteEveryoneElseTitle": "{{whom}} を除いて、全員をミュートしますか?", + "muteEveryoneElsesVideoDialog": "カメラを無効にした場合、あなたが再び有効にする事はできませんが、相手側はいつでも有効にする事ができます", + "muteEveryoneElsesVideoTitle": "{{whom}} を除いて、全員のビデオを停止しますか ?", + "muteEveryoneSelf": "あなた自身", + "muteEveryoneStartMuted": "今から全員のミュートを開始", + "muteEveryoneTitle": "全員をミュートしますか?", + "muteEveryonesVideoDialog": "参加者はいつでもビデオを有効に戻す事ができます", + "muteEveryonesVideoDialogModerationOn": "参加者はいつでもビデオを有効にするリクエストを送ることができます。", + "muteEveryonesVideoDialogOk": "無効", + "muteEveryonesVideoTitle": "全員のビデオを停止にしますか?", + "muteParticipantBody": "あなたがミュートを解除することはできなくなりますが、彼らはいつでも自分自身のミュートを解除することができます。", + "muteParticipantButton": "ミュート", + "muteParticipantsVideoBody": "あなたがカメラを有効に戻す事はできませんが、彼らはいつでも戻す事ができます", + "muteParticipantsVideoBodyModerationOn": "あなたはカメラを有効に戻す事ができませんし、彼らも同様にできなくなります。", + "muteParticipantsVideoButton": "ビデオ停止", + "muteParticipantsVideoDialog": "この参加者のカメラを無効にします。よろしいですか? あなたがカメラを有効に戻すことはできなくなりますが、彼らはいつでも自分のカメラを有効に戻すことができます。", + "muteParticipantsVideoDialogModerationOn": "この参加者のカメラを無効にします。よろしいですか?あなたはカメラを有効に戻すことができなくなりますし、彼らも同様にできなくなります。", + "muteParticipantsVideoTitle": "この参加者のカメラを無効にしますか?", + "noDropboxToken": "有効な Dropbox のトークンがありません", + "password": "パスワード", + "passwordLabel": "このミーティングは、参加者によりロックされました。参加するには、$t(lockRoomPassword) を入力してください。", + "passwordNotSupported": "ミーティング $t(lockRoomPassword) の設定はサポートされていません。", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) はサポートされていません。", + "passwordRequired": "$t(lockRoomPasswordUppercase) が必要です", + "permissionCameraRequiredError": "ビデオを使ったミーティングに参加するにはカメラの権限が必要です。 設定で許可してください", + "permissionErrorTitle": "アクセス権限が必要です", + "permissionMicRequiredError": "音声付きのミーティングに参加するにはマイクの権限が必要です。 設定で許可してください", + "popupError": "あなたのブラウザーはこのサイトからのポップアップウィンドウをブロックしています。ブラウザーのセキュリティ設定でポップアップを有効にしてから、もう一度お試しください。", + "popupErrorTitle": "ポップアップがブロックされました", + "readMore": "続き", + "recording": "録画", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "ライブ配信がアクティブの間は録画できません", + "recordingDisabledTooltip": "録画の開始は無効化されています。", + "rejoinNow": "今すぐ再参加", + "remoteControlAllowedMessage": "{{user}} はあなたのリモートコントロール要求を受け入れました!", + "remoteControlDeniedMessage": "{{user}} はあなたのリモートコントロール要求を拒否しました!", + "remoteControlErrorMessage": "リモートコントロールのアクセス許可を {{user}} から要求しようとしているときにエラーが発生しました!", + "remoteControlRequestMessage": "{{user}} にデスクトップのリモートコントロールを許可しますか?", + "remoteControlShareScreenWarning": "「許可」を押すと画面を共有することに注意してください!", + "remoteControlStopMessage": "リモートコントロールセッションが終了しました!", + "remoteControlTitle": "リモートデスクトップコントロール", + "remoteUserControls": "{{username}} のリモートユーザーコントロール", + "removePassword": "$t(lockRoomPassword) を削除", + "removeSharedVideoMsg": "共有動画を削除してもよろしいですか?", + "removeSharedVideoTitle": "共有動画を削除する", + "reservationError": "予約システムエラー", + "reservationErrorMsg": "エラーコード: {{code}}, メッセージ: {{msg}}", + "retry": "再試行", + "screenSharingAudio": "音声の共有", + "screenSharingFailed": "おっと! 何かがうまくいかず、画面の共有を開始できませんでした!", + "screenSharingFailedTitle": "画面の共有に失敗しました!", + "screenSharingPermissionDeniedError": "おっと! 画面の共有の許可で何か問題が発生しました。再読み込みしてもう一度お試しください。", + "sendPrivateMessage": "あなたは先ほどプライベートメッセージを受信しています。プライベートで返信するつもりでしたか? それともグループに送信したいですか?", + "sendPrivateMessageCancel": "グループに送信", + "sendPrivateMessageOk": "プライベートに送信", + "sendPrivateMessageTitle": "プライベートに送信しますか?", + "serviceUnavailable": "サービスは利用できません", + "sessTerminated": "通話が終了しました", + "sessionRestarted": "接続に問題があったので通話を再接続しました。", + "shareAudio": "続行", + "shareAudioTitle": "音声を共有する方法", + "shareAudioWarningD1": "音声を共有する前に、画面共有を停止する必要があります。", + "shareAudioWarningD2": "画面共有を再起動させて、\"音声の共有\"オプションをチェックしてください。", + "shareAudioWarningH1": "音声だけを共有したいときは:", + "shareAudioWarningTitle": "音声を共有する前に画面の共有を停止する必要があります", + "shareMediaWarningGenericH2": "画面と音声を共有したいときは、", + "shareScreenWarningD1": "画面の共有を開始する前に、音声の共有を停止してください。", + "shareScreenWarningD2": "音声の共有を停止し、\"音声の共有\"オプションをチェックして画面共有を開始してください。", + "shareScreenWarningH1": "画面だけを共有したいときは:", + "shareScreenWarningTitle": "画面を共有する前に、音声の共有を停止する必要があります", + "shareVideoLinkError": "動画への正しいリンクを提供してください。", + "shareVideoTitle": "動画を共有する", + "shareYourScreen": "画面を共有する", + "shareYourScreenDisabled": "画面の共有が無効になりました。", + "sharedVideoDialogError": "Error: 不正なURLです", + "sharedVideoLinkPlaceholder": "YouTube リンク または動画への直接リンク", + "startLiveStreaming": "ライブ配信を開始", + "startRecording": "録画を開始", + "startRemoteControlErrorMessage": "リモートコントロールセッションの開始中にエラーが発生しました。", + "stopLiveStreaming": "ライブ配信を停止する", + "stopRecording": "録画を停止する", + "stopRecordingWarning": "録画を停止してもよろしいですか?", + "stopStreamingWarning": "ライブ配信を停止してもよろしいですか?", + "streamKey": "ストリームキー", + "thankYou": "{{appName}} を使用していただきありがとうございます!", + "token": "トークン", + "tokenAuthFailed": "申し訳ありませんが、この通話に参加することはできません。", + "tokenAuthFailedTitle": "認証に失敗しました", + "transcribing": "文字起こし", + "unlockRoom": "ミーティング $t(lockRoomPassword) を削除", + "user": "ユーザー", + "userIdentifier": "ユーザーID", + "userPassword": "ユーザーパスワード", + "videoLink": "動画リンク", + "viewUpgradeOptions": "アップグレードオプションを見る", + "viewUpgradeOptionsContent": "録画、文字起こし、RTMP ストリーミングなどのプレミアム機能を無制限に利用するには、プランをアップグレードする必要があります。", + "viewUpgradeOptionsTitle": "プレミアム機能を発見しました!", + "yourEntireScreen": "あなたの画面全体" + }, + "documentSharing": { + "title": "共有文書" + }, + "e2ee": { + "labelToolTip": "この通話の音声やビデオによるやりとりは、エンドツーエンドで暗号化されています" + }, + "embedMeeting": { + "title": "このミーティングを埋め込む" + }, + "feedback": { + "average": "普通", + "bad": "悪い", + "detailsLabel": "もっと教えてください。", + "good": "良い", + "rateExperience": "ミーティングの満足度を評価してください", + "star": "星", + "veryBad": "とても悪い", + "veryGood": "とても良い" + }, + "helpView": { + "title": "ヘルプセンター" + }, + "incomingCall": { + "answer": "応答", + "audioCallTitle": "音声通話着信", + "decline": "拒否", + "productLabel": "Jitsi Meet からの", + "videoCallTitle": "ビデオ通話着信" + }, + "info": { + "accessibilityLabel": "情報を表示する", + "addPassword": "$t(lockRoomPassword) を追加", + "cancelPassword": "$t(lockRoomPassword) をキャンセル", + "conferenceURL": "リンク:", + "copyNumber": "番号をコピー", + "country": "国", + "dialANumber": "あなたのミーティングに参加するには、これらの番号のいずれかに電話をかけて、PIN を入力してください。", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "申し訳ありません。現在ダイヤルインはサポートされていません。", + "dialInNumber": "ダイヤルイン:", + "dialInSummaryError": "ダイヤルイン情報の取得中にエラーが発生しました。後でもう一度お試しください。", + "dialInTollFree": "無料通話", + "genericError": "おっと、何かがあったようです。", + "inviteLiveStream": "このミーティングのライブ配信を表示するには、このリンクをクリックしてください: {{url}}", + "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", + "inviteURLSecondPart": "\nミーティングにご参加ください:\n{{url}}\n", + "label": "ミーティング情報", + "liveStreamURL": "ライブ配信:", + "moreNumbers": "その他の番号", + "noNumbers": "ダイヤルイン番号はありません。", + "noPassword": "なし", + "noRoom": "ダイヤルインするルームが指定されていません。", + "numbers": "ダイヤルイン番号", + "password": "$t(lockRoomPasswordUppercase): ", + "sip": "SIP アドレス", + "title": "共有", + "tooltip": "このミーティングのリンクとダイヤルイン情報を共有する" + }, + "inlineDialogFailure": { + "msg": "障害が発生しました。", + "retry": "再試行", + "support": "サポート", + "supportMsg": "問題が続くようであれば、次にご連絡ください:" + }, + "inviteDialog": { + "alertText": "一部の参加者の招待に失敗しました。", + "header": "招待", + "searchCallOnlyPlaceholder": "携帯番号を入力してください", + "searchPeopleOnlyPlaceholder": "参加者を検索する", + "searchPlaceholder": "ニックネーム、または電話番号", + "send": "送信" + }, + "jitsiHome": "{{logo}} ロゴ, ホームページへのリンク", + "keyboardShortcuts": { + "focusLocal": "自分のビデオにフォーカス", + "focusRemote": "他のメンバーのビデオにフォーカス", + "fullScreen": "全画面表示 / 終了", + "keyboardShortcuts": "キーボードショートカット", + "localRecording": "ローカル録画コントロールの表示 / 非表示", + "mute": "マイクをミュート / ミュート解除", + "pushToTalk": "プッシュツートーク", + "raiseHand": "手を挙げる / 下げる", + "showSpeakerStats": "話者のデータを表示", + "toggleChat": "チャットを表示 / 非表示", + "toggleFilmstrip": "動画サムネイル表示 / 非表示", + "toggleParticipantsPane": "参加者パネルを表示 / 非表示", + "toggleScreensharing": "カメラと画面共有を切り替える", + "toggleShortcuts": "キーボードショートカットを表示", + "videoMute": "カメラを開始 / 停止" + }, + "liveStreaming": { + "busy": "私たちは配信リソースを解放するために取り組んでいます。数分後にもう一度お試しください。", + "busyTitle": "すべての配信者は現在ビジー状態です", + "changeSignIn": "アカウントを切り替えます。", + "choose": "ライブ配信を選択してください", + "chooseCTA": "配信オプションを選択します。あなたは現在、{{email}} としてログインしています。", + "enterStreamKey": "YouTube のストリームキーをここに入力してください。", + "error": "ライブ配信に失敗しました。もう一度お試しください。", + "errorAPI": "YouTube ブロードキャストにアクセス中にエラーが発生しました。もう一度ログインしてください。", + "errorLiveStreamNotEnabled": "{{email}} のライブ配信は有効ではありません。ライブ配信を有効にしてもらうか、ライブ配信が有効なアカウントでログインしてください。", + "expandedOff": "ライブ配信が停止しました", + "expandedOn": "このミーティングは、現在 YouTube に配信されています。", + "expandedPending": "ライブ配信を開始しています…", + "failedToStart": "ライブ配信の開始に失敗しました", + "getStreamKeyManually": "ライブ配信を取得できませんでした。YouTube よりストリームキーの取得を試してください。", + "googlePrivacyPolicy": "Google プライバシーポリシー", + "inProgress": "録画またはライブ配信中です", + "invalidStreamKey": "ストリームキーが正しくないようです。", + "limitNotificationDescriptionNative": "利用者が多いため、あなたの録画は {{limit}} 分に制限されます。無制限に録画するには<3>{{app}}をお試しください。", + "limitNotificationDescriptionWeb": "利用者が多いため、あなたの録画は {{limit}} 分に制限されます。 無制限に録画するには{{app}}をお試しください。", + "off": "ライブ配信を停止しました", + "offBy": "{{name}} がライブ配信を停止しました", + "on": "ライブ配信を開始しました", + "onBy": "{{name}} がライブ配信を開始しました", + "pending": "ライブ配信を開始しています…", + "serviceName": "ライブ配信サービス", + "sessionAlreadyActive": "このセッションはすでに録画またはライブ配信されています。", + "signIn": "Google でログイン", + "signInCTA": "ログインするか、YouTube のストリームキーを入力してください。", + "signOut": "サインアウト", + "signedInAs": "あなたは現在次の名前でログインしています:", + "start": "ライブ配信を開始する", + "streamIdHelp": "これは何ですか?", + "title": "ライブ配信", + "unavailableTitle": "ライブ配信は利用できません", + "youtubeTerms": "YouTube サービス利用規約" + }, + "lobby": { + "allow": "許可", + "backToKnockModeButton": "参加を依頼", + "dialogTitle": "ロビーモード", + "disableDialogContent": "ロビーモードは現在有効です。この機能により、部外者は会議に参加できません。この機能を無効にしますか?", + "disableDialogSubmit": "無効にする", + "emailField": "メールアドレスを入力してください", + "enableDialogPasswordField": "パスワードをセット(オプション)", + "enableDialogSubmit": "有効にする", + "enableDialogText": "ロビーモードでは、モデレーターによって正式に承認された人のみに参加を許可することで、会議を保護することができます。", + "enterPasswordButton": "ミーティングパスワードを入力してください", + "enterPasswordTitle": "パスワードを入力して、ミーティングに参加", + "errorMissingPassword": "ミーティングパスワードを入力してください", + "invalidPassword": "無効なパスワード", + "joinRejectedMessage": "あなたの参加リクエストは、モデレーターによって却下されました。", + "joinTitle": "ミーティングに参加", + "joinWithPasswordMessage": "パスワードを使って参加しようとしています。お待ちください…", + "joiningMessage": "誰かがあなたのリクエストを受け入れたら、すぐに会議に参加します", + "joiningTitle": "ミーティングへの参加を依頼中…", + "joiningWithPasswordTitle": "パスワードを使って参加中…", + "knockButton": "参加を依頼", + "knockTitle": "会議に参加したい人がいます", + "knockingParticipantList": "待機中の参加者一覧", + "nameField": "名前を入力してください", + "notificationLobbyAccessDenied": "{{targetParticipantName}} は、{{originParticipantName}} によって参加を却下されました", + "notificationLobbyAccessGranted": "{{targetParticipantName}} は、{{originParticipantName}} によって参加を許可されました", + "notificationLobbyDisabled": "{{originParticipantName}} によってロビーが無効にされました", + "notificationLobbyEnabled": "{{originParticipantName}} によってロビーが有効にされました", + "notificationTitle": "ロビー", + "passwordField": "ミーティングパスワードを入力してください", + "passwordJoinButton": "参加", + "title": "ロビー", + "toggleLabel": "ロビーを有効" + }, + "localRecording": { + "clientState": { + "off": "オフ", + "on": "オン", + "unknown": "不明" + }, + "dialogTitle": "ローカル録画コントロール", + "duration": "録画時間", + "durationNA": "不明", + "encoding": "エンコーディング", + "label": "LOR", + "labelToolTip": "録画中", + "localRecording": "録画", + "me": "自分", + "messages": { + "engaged": "録画中", + "finished": "録画セッション {{token}} が終了しました。録画したファイルをモデレーターに送付してください。", + "finishedModerator": "レコーディングセッション {{token}} が終了しました。ローカルトラックの録画は保存されました。他の参加者に、彼らの録画物を送信するようお願いしてください。", + "notModerator": "あなたはモデレーターではないので、録画の開始または停止ができません。" + }, + "moderator": "モデレーター", + "no": "いいえ", + "participant": "参加者", + "participantStats": "参加者の統計", + "sessionToken": "セッショントークン", + "start": "録画を開始", + "stop": "録画を停止する", + "yes": "はい" + }, + "lockRoomPassword": "パスワード", + "lockRoomPasswordUppercase": "パスワード", + "lonelyMeetingExperience": { + "button": "他の人を招待する", + "youAreAlone": "このミーティングにいるのは、あなただけです。" + }, + "me": "自分", + "notify": { + "OldElectronAPPTitle": "セキュリティ上の脆弱性があります!", + "allowAction": "許可", + "allowedUnmute": "マイクのミュートを解除、カメラの有効化、画面の共有ができます。", + "audioUnmuteBlockedDescription": "マイクのミュート解除操作はシステムの制限により一時的にブロックされています。", + "audioUnmuteBlockedTitle": "マイクミュート解除はブロックされています!", + "chatMessages": "チャットメッセージ", + "connectedOneMember": "{{name}} がミーティングに参加しました", + "connectedThreePlusMembers": "{{name}} 他多数がミーティングに参加しました", + "connectedTwoMembers": "{{first}} と {{second}} がミーティングに参加しました", + "disconnected": "切断されました", + "displayNotifications": "通知を表示", + "focus": "ミーティングのフォーカス", + "focusFail": "{{component}} は利用できません - {{ms}} 秒以内に再試行します", + "groupTitle": "通知", + "hostAskedUnmute": "モデレーターはあなたに話してほしいそうです", + "invitedOneMember": "{{name}} が招待されました", + "invitedThreePlusMembers": "{{name}} と他 {{count}} 名が招待されました", + "invitedTwoMembers": "{{first}} と {{second}} が招待されました", + "kickParticipant": "{{kicked}} が {{kicker}} によって追放されました", + "leftOneMember": "{{name}} がミーティングを退出しました", + "leftThreePlusMembers": "{{name}} 他多数がミーティングを退出しました", + "leftTwoMembers": "{{first}} と {{second}} がミーティングを退出しましたleft the meeting", + "me": "自分", + "moderationInEffectCSDescription": "画面を共有したいときは手を挙げてください。", + "moderationInEffectCSTitle": "画面共有はモデレーターによりブロックされました", + "moderationInEffectDescription": "話したいときは手を挙げてください。", + "moderationInEffectTitle": "あなたのマイクはモデレーターによりミュートされました", + "moderationInEffectVideoDescription": "カメラを有効にしたいときは手を挙げてください。", + "moderationInEffectVideoTitle": "あなたのカメラはモデレーターによりブロックされました", + "moderationRequestFromModerator": "ホストはあなたにミュート解除を求めています", + "moderationRequestFromParticipant": "発言したいです", + "moderationStartedTitle": "管理が開始されました", + "moderationStoppedTitle": "管理が停止されました", + "moderationToggleDescription": "( {{participantDisplayName}} )", + "moderator": "あなたはモデレーターになりました", + "muted": "あなたはミュートした状態でミーティングを開始しました。", + "mutedRemotelyDescription": "話す準備ができ次第、いつでもミュートを解除できます。話が終わったら再ミュートして、ミーティングから雑音を遠ざけます。", + "mutedRemotelyTitle": "あなたは {{participantDisplayName}} によってミュートされています", + "mutedTitle": "あなたはミュートされています!", + "newDeviceAction": "使用する", + "newDeviceAudioTitle": "新しいオーディオデバイスを検出しました", + "newDeviceCameraTitle": "新しいカメラを検出しました", + "oldElectronClientDescription1": "あなたは既知のセキュリティ上の脆弱性がある、旧バージョンの Jitsi Meet クライアントを使用しているようです。今すぐ", + "oldElectronClientDescription2": "最新ビルド", + "oldElectronClientDescription3": "に更新してください!", + "participantWantsToJoin": "ミーティングへの参加を希望しています", + "participantsWantToJoin": "ミーティングへの参加を希望しています", + "passwordRemovedRemotely": "他の参加者により、$t(lockRoomPasswordUppercase) が削除されました", + "passwordSetRemotely": "他の参加者により、$t(lockRoomPasswordUppercase) が設定されました", + "raiseHandAction": "手を挙げる", + "raisedHand": "話したいそうです。", + "raisedHands": "{{participantName}} 他 {{raisedHands}} 名", + "reactionSounds": "サウンドが無効", + "reactionSoundsForAll": "全てのサウンドが無効", + "screenShareNoAudio": " 画面選択のウィンドウで音声の共有がチェックされていません。", + "screenShareNoAudioTitle": "システムの音声を共有できません", + "selfViewTitle": "設定からいつでもセルフビューを表示することができます。", + "somebody": "誰か", + "startSilentDescription": "オーディオを有効にして参加しなおしてください", + "startSilentTitle": "音声出力なしで参加しました!", + "suboptimalBrowserWarning": "申し訳ありませんが、このブラウザではミーティングの体験はあまりよくないかもしれません。改善策を検討中ですが、それまでは フルサポートしているブラウザーのいずれかをご利用ください。", + "suboptimalExperienceTitle": "ブラウザーの警告", + "unmute": "ミュート解除", + "videoMutedRemotelyDescription": "いつでもオンにする事ができます", + "videoMutedRemotelyTitle": "あなたのビデオは {{participantDisplayName}} によってオフにされています", + "videoUnmuteBlockedDescription": "カメラ有効化とデスクトップ共有はシステムの制限により一時的にブロックされています。", + "videoUnmuteBlockedTitle": "カメラ有効化とデスクトップ共有はブロックされています!", + "viewLobby": "ロビーを確認", + "waitingParticipants": "{{waitingParticipants}} 名" + }, + "participantsPane": { + "actions": { + "admit": "許可", + "admitAll": "全員許可", + "allow": "参加者に次のことを許可:", + "allowVideo": "ビデオを許可", + "askUnmute": "ミュート解除を依頼", + "audioModeration": "ミュートを自分で解除", + "blockEveryoneMicCamera": "全員のマイクとカメラをブロック", + "invite": "参加者招待", + "moreModerationActions": "管理オプションをさらに表示", + "moreModerationControls": "管理コントロールをさらに表示", + "moreParticipantOptions": "参加者オプションをさらに表示", + "mute": "ミュート", + "muteAll": "全員をミュート", + "muteEveryoneElse": "他のすべての人をミュート", + "reject": "却下", + "stopEveryonesVideo": "全員のビデオを停止", + "stopVideo": "ビデオを停止", + "unblockEveryoneMicCamera": "全員のマイクとビデオのブロックを解除", + "videoModeration": "ビデオを開始" + }, + "close": "閉じる", + "headings": { + "lobby": "ロビー ({{count}})", + "participantsList": "ミーティング参加者 ({{count}})", + "waitingLobby": "ロビーで待機中 ({{count}})" + }, + "search": "参加者を検索", + "title": "参加者" + }, + "passwordDigitsOnly": "最大 {{number}} 桁まで", + "passwordSetRemotely": "他の参加者によりセット", + "polls": { + "answer": { + "skip": "スキップ", + "submit": "送信" + }, + "by": "By {{ name }}", + "create": { + "addOption": "選択肢の追加", + "answerPlaceholder": "選択肢 {{index}}", + "cancel": "キャンセル", + "create": "投票を作成", + "pollOption": "選択肢 {{index}}", + "pollQuestion": "投票の質問", + "questionPlaceholder": "質問を入力してください", + "removeOption": "選択肢の削除", + "send": "送信" + }, + "errors": { + "notUniqueOption": "オプションは一意でなければなりません" + }, + "notification": { + "description": "投票するには投票タブを開いてください", + "title": "新しい投票がこのミーティングに追加されました" + }, + "results": { + "changeVote": "投票を変更する", + "empty": "まだこのミーティングに投票がありません。ここから投票を始めてください!", + "hideDetailedResults": "詳細を非表示", + "showDetailedResults": "詳細を表示", + "vote": "投票する" + } + }, + "poweredby": "powered by", + "prejoin": { + "audioAndVideoError": "オーディオとビデオのエラー:", + "audioDeviceProblem": "オーディオに問題があります", + "audioOnlyError": "オーディオエラー:", + "audioTrackError": "オーディオトラックを作成できませんでした。", + "callMe": "呼び出してください", + "callMeAtNumber": "この番号に電話してください:", + "calling": "呼び出し中", + "configuringDevices": "デバイスの設定中…", + "connectedWithAudioQ": "オーディオを有効にして接続していますか?", + "connection": { + "good": "インターネット接続は良好のようです!", + "nonOptimal": "インターネット接続が最適ではありません", + "poor": "貧弱なインターネット接続です" + }, + "connectionDetails": { + "audioClipping": "音声が歪んでいると思います。", + "audioHighQuality": "音声は優れた品質であると思います。", + "audioLowNoVideo": "音声の品質が悪く、ビデオがないと思います。", + "goodQuality": "素晴らしい! メディアの品質は素晴らしいものになりそうです。", + "noMediaConnectivity": "このテストで、メディア接続を確立する方法を検出することができませんでした。これは通常、ファイアウォールやNATが原因で発生します。", + "noVideo": "ビデオの品質が悪いと思います。", + "undetectable": "引き続きブラウザーで通話ができない場合、スピーカー、マイク、カメラが適切に設定されているか、ブラウザーにマイクとカメラの使用を許可しているか、そしてブラウザーのバージョンが最新であるか確認することをお勧めします。それでも通話に問題がある場合は、ウェブアプリの開発者にお問い合わせください。", + "veryPoorConnection": "通話の品質がとても悪いと思います。", + "videoFreezing": "ビデオが固まったり、黒画面になったり、モザイクがかかったようになると思います。", + "videoHighQuality": "ビデオは優れた品質であると思います。", + "videoLowQuality": "ビデオはフレームレートと解像度の点で低品質であると思います。", + "videoTearing": "ビデオにモザイクがかかったようなったり、ブロックノイズが発生すると思います。" + }, + "copyAndShare": "ミーティングのリンクをコピーまたは共有", + "dialInMeeting": "このミーティングにダイヤルする", + "dialInPin": "このミーティングにダイヤルして、PIN コードを入力してください:", + "dialing": "ダイヤル中", + "doNotShow": "この画面を再表示しない", + "errorDialOut": "ダイヤル発信ができませんでした", + "errorDialOutDisconnected": "ダイヤル発信ができませんでした。切断されました", + "errorDialOutFailed": "ダイヤル発信ができませんでした。通話に失敗しました", + "errorDialOutStatus": "ダイヤル発信状態の取得中にエラーが発生しました", + "errorMissingName": "あなたの名前を入力して、このミーティングに参加してください", + "errorNoPermissions": "マイクとカメラへアクセスできるようにする必要があります", + "errorStatusCode": "ダイヤル発信中にエラーが発生しました。ステータスコード: {{status}}", + "errorValidation": "番号の検証に失敗しました", + "iWantToDialIn": "ダイヤルインを希望", + "initiated": "通話開始", + "joinAudioByPhone": "音声通話で参加", + "joinMeeting": "ミーティングに参加", + "joinWithoutAudio": "音声なしで参加", + "keyboardShortcuts": "キーボードショートカットを有効", + "linkCopied": "リンクをクリップボードにコピーしました", + "lookGood": "マイクは正常に動作しています", + "or": "または", + "premeeting": "プレミーティング", + "screenSharingError": "画面共有のエラー:", + "startWithPhone": "音声通話を開始", + "videoOnlyError": "ビデオのエラー:", + "videoTrackError": "ビデオトラックを生成できませんでした。", + "viewAllNumbers": "すべての番号を表示" + }, + "presenceStatus": { + "busy": "話し中", + "calling": "呼び出し中…", + "connected": "接続されました", + "connecting": "接続中…", + "connecting2": "接続中*…", + "disconnected": "切断されました", + "expired": "期限切れ", + "ignored": "無視", + "initializingCall": "通話の初期化中…", + "invited": "招待", + "rejected": "拒否", + "ringing": "呼び出し中…" + }, + "privacyView": { + "title": "プライバシー" + }, + "profile": { + "avatar": "アバター", + "setDisplayNameLabel": "表示名を設定してください", + "setEmailInput": "メールアドレスを入力してください", + "setEmailLabel": "Gravatar に登録したメールアドレスを入力してください", + "title": "プロフィール" + }, + "raisedHand": "話したいそうです", + "raisedHandsLabel": "挙手の数", + "recording": { + "authDropboxText": "Dropbox にアップロード", + "availableSpace": "空き容量: {{spaceLeft}} MB (約 {{duration}} 分録画可能)", + "beta": "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": "LIVE", + "localRecordingNoNotificationWarning": "この録画は他の参加者に通知されません。このミーティングが録画されていることを他の参加者に伝えてください。", + "localRecordingNoVideo": "ビデオは録画されません。", + "localRecordingStartWarning": "録画を保存するためにはミーティング退出前に録画を停止してください。", + "localRecordingStartWarningTitle": "録画を停止して保存", + "localRecordingVideoStop": "ビデオを停止すると録画も停止されます。停止してもよろしいですか?", + "localRecordingVideoWarning": "ビデオを録画するためには録画開始前に有効化しておく必要があります", + "localRecordingWarning": "正しく録画をするために必ず現在のタブを選択してください。", + "loggedIn": "{{userName}} としてログイン", + "noMicPermission": "マイクが認識できませんでした。マイクへのアクセス権を確認してください。", + "noStreams": "音声・映像が検出されませんでした。", + "off": "録画を停止しました", + "offBy": "{{name}} が録画を停止しました", + "on": "録画を開始しました", + "onBy": "{{name}} が録画を開始しました", + "onlyRecordSelf": "自身の音声・映像のみを録画する", + "pending": "ミーティングの録画準備中…", + "rec": "REC", + "saveLocalRecording": "ローカルに録画を保存 (Beta)", + "serviceDescription": "ビデオは録画サービスで録画されます", + "serviceDescriptionCloud": "クラウドレコーディング", + "serviceName": "録画サービス", + "sessionAlreadyActive": "このセッションはすでに録画またはライブ配信されています。", + "signIn": "サインイン", + "signOut": "サインアウト", + "title": "録画", + "unavailable": "おっと! {{serviceName}} は現在使用できません。私たちはこの問題の解決に取り組んでいます。後でもう一度お試しください。", + "unavailableTitle": "録画できません", + "uploadToCloud": "クラウドへアップロード" + }, + "sectionList": { + "pullToRefresh": "引っ張って更新する" + }, + "security": { + "about": "このミーティングに、$t(lockRoomPassword) を追加できます。参加者は $t(lockRoomPassword) を入力してこのミーティングへの参加が許可される必要があります。", + "aboutReadOnly": "モデレータの参加者は、このミーティングに $t(lockRoomPassword) を追加できます。参加者は $t(lockRoomPassword) を入力してこのミーティングへの参加が許可される必要があります。", + "insecureRoomNameWarning": "このルーム名は安全ではありません。不要な参加者がミーティングに参加するかもしれません。セキュリティボタンを利用してミーティングの安全確保を検討しましょう。", + "title": "セキュリティオプション" + }, + "settings": { + "calendar": { + "about": "{{appName}} カレンダーとの統合機能は、今後のイベントを読み取ることができるようカレンダーに安全にアクセスするために使用されます。", + "disconnect": "切断", + "microsoftSignIn": "Microsoft アカウントでサインイン", + "signedIn": "現在、{{email}} のカレンダーのイベントにアクセス中です。下の切断ボタンをクリックすると、カレンダーのイベントにアクセスすることを停止します。", + "title": "カレンダー" + }, + "desktopShareFramerate": "デスクトップ共有フレームレート", + "desktopShareHighFpsWarning": "デスクトップ共有のフレームレートを高くすると、帯域幅に影響する可能性があります。新しい設定を有効にするには、画面共有を再起動する必要があります。", + "desktopShareWarning": "新しい設定を有効にするには、画面共有を再起動する必要があります。", + "devices": "デバイス", + "followMe": "全員があなたをフォロー", + "framesPerSecond": "フレーム/秒", + "incomingMessage": "メッセージの到着", + "language": "言語", + "loggedIn": "{{name}} としてログイン", + "microphones": "マイク", + "moderator": "モデレーター", + "more": "その他", + "name": "名前", + "noDevice": "なし", + "participantJoined": "参加者の参加", + "participantLeft": "参加者の退出", + "playSounds": "次の時にサウンドを再生", + "reactions": "ミーティングリアクション", + "sameAsSystem": "システムと同じ ({{label}})", + "selectAudioOutput": "オーディオ出力", + "selectCamera": "カメラ", + "selectMic": "マイク", + "selfView": "セルフビュー", + "sounds": "サウンド", + "speakers": "スピーカー", + "startAudioMuted": "全員がミュートで開始", + "startReactionsMuted": "全員のリアクションサウンドをミュート", + "startVideoMuted": "全員がビデオオフで開始", + "talkWhileMuted": "ミュート中の発話", + "title": "設定" + }, + "settingsView": { + "advanced": "詳細", + "alertCancel": "キャンセル", + "alertOk": "OK", + "alertTitle": "警告", + "alertURLText": "入力されたサーバー URL は無効です", + "buildInfoSection": "ビルド情報", + "conferenceSection": "ミーティング", + "disableCallIntegration": "電話による通話の統合を無効", + "disableCrashReporting": "クラッシュレポートを無効", + "disableCrashReportingWarning": "クラッシュレポートを無効にします。よろしいですか? この設定はアプリの再起動後に適用されます。", + "disableP2P": "ピアツーピアモードを無効", + "displayName": "表示名", + "email": "Eメール", + "header": "設定", + "profileSection": "プロフィール", + "serverURL": "サーバー URL", + "showAdvanced": "詳細設定を表示", + "startWithAudioMuted": "音声をミュートした状態で開始", + "startWithVideoMuted": "ビデオをミュートした状態で開始", + "version": "バージョン" + }, + "share": { + "dialInfoText": "\n\n=====\n\nとにかくあなたの電話で通話したいですか?\n\n{{defaultDialInNumber}}こちらのリンクをクリックすると、このミーティングの電話番号が表示されます。\n{{dialInfoPageUrl}}", + "mainText": "次のリンクをクリックして、このミーティングに参加してください:\n{{roomUrl}}" + }, + "speaker": "話者", + "speakerStats": { + "angry": "怒り", + "disgusted": "ウンザリ", + "fearful": "恐怖", + "happy": "ハッピー", + "hours": "{{count}} 時間", + "minutes": "{{count}} 分", + "name": "名前", + "neutral": "平静", + "sad": "悲しい", + "search": "検索", + "searchHint": "参加者を検索", + "seconds": "{{count}} 秒", + "speakerStats": "話者の統計", + "speakerTime": "話した時間", + "surprised": "ビックリ" + }, + "startupoverlay": { + "genericTitle": "ミーティングでは、マイクとカメラが必要です。", + "policyText": " ", + "title": "{{app}} を使用するには、マイクとカメラが必要です。" + }, + "suspendedoverlay": { + "rejoinKeyTitle": "再参加", + "text": "再接続するには、再参加 ボタンを押してください。", + "title": "このコンピューターがスリープ状態になったため、ビデオ通話が中断されました。" + }, + "termsView": { + "title": "利用規約" + }, + "toolbar": { + "Settings": "設定", + "accessibilityLabel": { + "Settings": "設定の切り替え", + "audioOnly": "音声のみの切り替え", + "audioRoute": "オーディオデバイスの選択", + "boo": "ブーイング", + "breakoutRoom": "ブレイクアウトルームに参加 / 退出", + "callQuality": "ビデオ品質の管理", + "cc": "字幕の切り替え", + "chat": "チャットを開く / 閉じる", + "clap": "拍手", + "collapse": "縮小", + "document": "共有ドキュメントの切り替え", + "download": "アプリのダウンロード", + "embedMeeting": "ミーティングの埋め込み", + "expand": "展開", + "feedback": "フィードバックを残す", + "fullScreen": "全画面の切り替え", + "grantModerator": "モデレーター権限の付与", + "hangup": "ミーティングを退席", + "help": "ヘルプ", + "invite": "人を招待", + "kick": "参加者を追放", + "laugh": "笑", + "like": "いいね!", + "lobbyButton": "ロビーモードの有効 / 無効", + "localRecording": "ローカル録画コントロールの切り替え", + "lockRoom": "ミーティングパスワードの切り替え", + "moreActions": "詳細な操作", + "moreActionsMenu": "詳細な操作メニュー", + "moreOptions": "詳細オプションの表示", + "mute": "ミュート / ミュート解除", + "muteEveryone": "全員をミュート", + "muteEveryoneElse": "他の全員を無効", + "muteEveryoneElsesVideoStream": "他の全員のビデオを停止", + "muteEveryonesVideoStream": "全員のビデオを停止", + "participants": "参加者", + "pip": "ピクチャーインピクチャーモードの切り替え", + "privateMessage": "プライベートメッセージの送信", + "profile": "プロフィールを編集", + "raiseHand": "手を挙げる / 下げる", + "reactionsMenu": "リアクションメニューを開く / 閉じる", + "recording": "録画の切り替え", + "remoteMute": "参加者のミュート", + "remoteVideoMute": "参加者のカメラを無効", + "security": "セキュリティ", + "selectBackground": "背景を選択", + "shareRoom": "誰かを招待", + "shareYourScreen": "画面共有の開始 / 停止", + "shareaudio": "オーディオを共有する", + "sharedvideo": "動画共有の切り替え", + "shortcuts": "ショートカットの切り替え", + "show": "ステージ上に表示", + "silence": "沈黙", + "speakerStats": "スピーカー統計の切り替え", + "surprised": "ビックリ", + "tileView": "タイルビューの切り替え", + "toggleCamera": "カメラの切り替え", + "toggleFilmstrip": "スライド表示の切り替え", + "videoblur": "ビデオのぼかしの切り替え", + "videomute": "ビデオの開始 / 停止" + }, + "addPeople": "あなたの通話に人を追加", + "audioOnlyOff": "音声のみモードを無効", + "audioOnlyOn": "音声のみモードを有効", + "audioRoute": "サウンドデバイスの選択", + "audioSettings": "オーディオ設定", + "authenticate": "認証", + "boo": "ブーイング", + "callQuality": "ビデオの品質を管理", + "chat": "チャットを開く / 閉じる", + "clap": "拍手", + "closeChat": "チャットを閉じる", + "closeReactionsMenu": "リアクションメニューを閉じる", + "disableReactionSounds": "このミーティングのリアクションサウンドを無効にできます", + "documentClose": "共有ドキュメントを閉じる", + "documentOpen": "共有ドキュメントを開く", + "download": "アプリのダウンロード", + "e2ee": "エンドツーエンドの暗号化", + "embedMeeting": "ミーティングの埋め込み", + "enterFullScreen": "フルスクリーン表示", + "enterTileView": "タイルビューを開始", + "exitFullScreen": "フルスクリーンを終了", + "exitTileView": "タイルビューを終了", + "feedback": "フィードバックを残す", + "hangup": "ミーティングを退出", + "help": "ヘルプ", + "invite": "人を招待", + "joinBreakoutRoom": "ブレイクアウトルームに参加", + "laugh": "笑", + "leaveBreakoutRoom": "ブレイクアウトルームを退出", + "like": "いいね!", + "lobbyButtonDisable": "ロビーモードを無効", + "lobbyButtonEnable": "ロビーモードを有効", + "login": "ログイン", + "logout": "ログアウト", + "lowerYourHand": "手を下げる", + "moreActions": "詳細アクション", + "moreOptions": "詳細オプション", + "mute": "ミュート / ミュート解除", + "muteEveryone": "全員をミュート", + "muteEveryonesVideo": "全員のカメラを無効化", + "noAudioSignalDesc": "システム設定やハードウェアによる意図的なミュートを行っていない場合は、デバイスの切り替えを検討してみてください。", + "noAudioSignalDescSuggestion": "システム設定やハードウェアによる意図的なミュートを行っていない場合は、提示されたデバイスへのの切り替えを検討してみてください。", + "noAudioSignalDialInDesc": "次を使用してダイヤルインすることも可能です:", + "noAudioSignalDialInLinkDesc": "ダイヤルイン番号", + "noAudioSignalTitle": "マイクから何も入力されていません!", + "noisyAudioInputDesc": "マイクがノイズを発しているようですので、ミュートするかデバイスの変更を検討してください。", + "noisyAudioInputTitle": "マイクの音がうるさいようです!", + "openChat": "チャットを開く", + "openReactionsMenu": "リアクションメニューを開く", + "participants": "参加者", + "pip": "ピクチャーインピクチャーモードに入る", + "privateMessage": "プライベートメッセージの送信", + "profile": "プロフィールの編集", + "raiseHand": "手を挙げる / 下げる", + "raiseYourHand": "手を挙げる", + "reactionBoo": "ブーイング リアクションを送る", + "reactionClap": "拍手 リアクションを送る", + "reactionLaugh": "笑 リアクションを送る", + "reactionLike": "いいね! リアクションを送る", + "reactionSilence": "沈黙 リアクションを送る", + "reactionSurprised": "ビックリ リアクションを送る", + "security": "セキュリティオプション", + "selectBackground": "背景の選択", + "shareRoom": "誰かを招待", + "shareaudio": "音声の共有", + "sharedvideo": "動画の共有", + "shortcuts": "ショートカットの表示", + "silence": "沈黙", + "speakerStats": "話者の統計", + "startScreenSharing": "画面共有の開始", + "startSubtitles": "字幕の開始", + "stopAudioSharing": "音声共有の停止", + "stopScreenSharing": "画面共有の停止", + "stopSharedVideo": "動画の停止", + "stopSubtitles": "字幕の停止", + "surprised": "ビックリ", + "talkWhileMutedPopup": "話そうとしていますか? あなたはミュートされています。", + "tileViewToggle": "タイルビューの切り替え", + "toggleCamera": "カメラの切り替え", + "videoSettings": "ビデオ設定", + "videomute": "カメラの開始 / 停止" + }, + "transcribing": { + "ccButtonTooltip": "字幕の表示 / 非表示", + "error": "文字起こしに失敗しました。もう一度お試しください。", + "expandedLabel": "文字起こしは現在有効です", + "failedToStart": "文字起こしを開始できませんでした", + "labelToolTip": "ミーティングの文字起こしが行われています", + "off": "文字起こしが停止されています", + "pending": "ミーティングの文字起こしの準備中…", + "start": "字幕の表示を開始", + "stop": "字幕の表示を停止", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "マイクとカメラの共有を許可してください。." + }, + "videoSIPGW": { + "busy": "リソースを開放しています。数分後にもう一度お試しください。", + "busyTitle": "ルームサービスは現在使用中です", + "errorAlreadyInvited": "{{displayName}} はすでに招待されています", + "errorInvite": "ミーティングがまだ設定されていません。後ほどもう一度お試しください。", + "errorInviteFailed": "問題を解決しています。後ほどもう一度お試しください。", + "errorInviteFailedTitle": "{{displayName}} の招待に失敗しました", + "errorInviteTitle": "ルームへの招待でエラー発生", + "pending": "{{displayName}} が招待されました" + }, + "videoStatus": { + "adjustFor": "次のように調整:", + "audioOnly": "音声のみ", + "audioOnlyExpanded": "音声のみモードにいます。このモードではオーディオと画面の共有のみを受信します。", + "bestPerformance": "最高速度", + "callQuality": "ビデオの品質", + "hd": "HD", + "hdTooltip": "高画質ビデオの視聴", + "highDefinition": "高画質", + "highestQuality": "最高品質", + "labelTooiltipNoVideo": "ビデオなし", + "labelTooltipAudioOnly": "音声のみモードが有効", + "ld": "LD", + "ldTooltip": "低画質ビデオの視聴", + "lowDefinition": "低画質", + "performanceSettings": "パフォーマンス設定", + "sd": "SD", + "sdTooltip": "標準画質ビデオの視聴", + "standardDefinition": "標準画質" + }, + "videothumbnail": { + "connectionInfo": "接続情報", + "domute": "ミュート", + "domuteOthers": "他の参加者をミュート", + "domuteVideo": "カメラを無効化", + "domuteVideoOfOthers": "他の参加者のカメラを無効化", + "flip": "左右反転", + "grantModerator": "モデレーター権限の付与", + "hideSelfView": "セルフビューを非表示", + "kick": "追放", + "moderator": "モデレーター", + "mute": "この参加者はミュート中", + "muted": "ミュート", + "remoteControl": "リモートコントロールの開始 / 停止", + "screenSharing": "参加者は画面を共有しています", + "show": "ステージ上に表示", + "videoMuted": "カメラ無効", + "videomute": "この参加者はカメラを停止中" + }, + "virtualBackground": { + "addBackground": "背景追加", + "apply": "適用", + "backgroundEffectError": "背景効果の適用に失敗しました。", + "blur": "ぼかし", + "deleteImage": "画像削除", + "desktopShare": "デスクトップ共有", + "desktopShareError": "デクストップ共有を作成できませんでした", + "image1": "ビーチ", + "image2": "ウォール(ホワイト)", + "image3": "ルーム(ホワイト)", + "image4": "フロアランプ(ブラック)", + "image5": "マウンテン", + "image6": "フォレスト", + "image7": "サンライズ", + "none": "無し", + "pleaseWait": "しばらくお待ちください…", + "removeBackground": "背景削除", + "slightBlur": "少しぼかし", + "title": "バーチャル背景", + "uploadedImage": "アップロード画像 {{index}}", + "webAssemblyWarning": "WebAssembly がサポートされていません", + "webAssemblyWarningDescription": "WebAssembly はこのブラウザでは無効になっているかサポートされていません。" + }, + "volumeSlider": "ボリュームスライダー", + "welcomepage": { + "accessibilityLabel": { + "join": "タップして参加", + "roomname": "ルーム名を入力してください" + }, + "addMeetingName": "ミーティング名の追加", + "appDescription": "チーム全体とビデオチャットをしましょう。あなたが知っている皆さんを招待してください。{{app}} は完全に暗号化された 100% オープンソースのビデオミーティングソリューションで、一日中、毎日、そして無料でご利用いただけます - アカウントは必要ありません。", + "audioVideoSwitch": { + "audio": "音声", + "video": "ビデオ" + }, + "calendar": "カレンダー", + "connectCalendarButton": "カレンダーに接続", + "connectCalendarText": "{{app}} 内の全ミーティングを表示するために、カレンダーに接続します。そのうえ、カレンダーに {{provider}} ミーティングを追加して、ワンクリックでミーティングを開始しましょう。", + "enterRoomTitle": "新しいミーテイングを開始", + "getHelp": "ヘルプ", + "go": "GO", + "goSmall": "GO", + "headerSubtitle": "安全で高品質なミーティング", + "headerTitle": "Jitsi Meet", + "info": "ダイヤルイン情報", + "jitsiOnMobile": "モバイル版 Jitsi - アプリをダウンロードして、どこからでもミーティングを開始できます", + "join": "作成 / 参加", + "logo": { + "calendar": "カレンダーロゴ", + "desktopPreviewThumbnail": "デスクトッププレビューサムネイル", + "googleLogo": "Google ロゴ", + "logoDeepLinking": "Jitsi meet ロゴ", + "microsoftLogo": "Microsoft ロゴ", + "policyLogo": "ポリシーロゴ" + }, + "mobileDownLoadLinkAndroid": "Android 用モバイルアプリをダウンロード", + "mobileDownLoadLinkFDroid": "F-Droid 用モバイルアプリをダウンロード", + "mobileDownLoadLinkIos": "iOS 用モバイルアプリをダウンロード", + "moderatedMessage": "または、前もってあなたのみがモデレーターであるミーティングの URL をブックマークに登録しましょう。", + "privacy": "プライバシー", + "recentList": "最近の履歴", + "recentListDelete": "削除", + "recentListEmpty": "最近のリストは現在空です。チームとチャットすると、ここに最近のミーティングが表示されます。", + "reducedUIText": "{{app}} にようこそ!", + "roomNameAllowedChars": "ミーティング名には、次の文字を含めないでください: ?, &, :, ', \", %, #.", + "roomname": "ルーム名を入力してください", + "roomnameHint": "参加したい部屋の名前または URL を入力してください。あなたが名前を付け、あなたが会っている人々に知らせて、同じ名前を入力してもらうだけです。", + "sendFeedback": "フィードバックを送信", + "startMeeting": "ミーティングを開始", + "terms": "利用規約", + "title": "安全、機能充実、そして完全無料のビデオミーティング" + } +} diff --git a/lang/main-kab.json b/lang/main-kab.json new file mode 100644 index 0000000..c7dc057 --- /dev/null +++ b/lang/main-kab.json @@ -0,0 +1,1166 @@ +{ + "addPeople": { + "add": "Nced", + "addContacts": "Snubget inermisen-ik·im", + "contacts": "inermisen", + "copyInvite": "Nɣel tinubga n temlilit", + "copyLink": "Nɣel aseɣwen n temlilit", + "copyStream": "Nɣel aseɣwen n usuddes usrid", + "countryNotSupported": "Ur nessefrak ara akka tura tawehhit-a.", + "countryReminder": "Tessawaleḍ-d beṛṛa n Marikan? Ttil-k·m wali ma tebdiḍ s tengalt n tmurt!", + "defaultEmail": "Imayl-ik•im amezwer", + "disabled": "Ur tezmireḍ ara ad tesnubgteḍ medden.", + "failedToAdd": "Timerna n yimttekkiyen ur teddi ara", + "footerText": "Asuḍen yensa.", + "googleEmail": "Imayl n Google", + "inviteMoreHeader": "Alla kečč i / kem i yellan deg temlilit", + "inviteMoreMailSubject": "Ddu ɣer temlilit {{appName}}", + "inviteMorePrompt": "Nced-d imdanen-nniḍen", + "linkCopied": "Aseɣwen ittwanɣel ɣer \"Ɣef afus\"", + "noResults": "Ulac igmaḍ n unadi yemṣadan", + "outlookEmail": "Imayl n Outlook", + "phoneNumbers": "uṭṭunen n tiliɣri", + "searching": "Anadi…", + "shareInvite": "Bḍu tinubga n temlilit", + "shareLink": "Bḍu aseɣwen n usarag i usnubget n wiyaḍ", + "shareStream": "Bḍu aseɣwen n usuddem usrid", + "sipAddresses": "tansiwin sip", + "telephone": "Tiliɣri: {{number}}", + "title": "Snubget-d imdanen ɣer temlilit-a", + "yahooEmail": "Imayl n Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Isawaḍen n uqerru", + "none": "Ulac ibenkan n umeslaw i yellan", + "phone": "Tiliɣri", + "speaker": "Asawaḍ" + }, + "audioOnly": { + "audioOnly": "Imesli kan" + }, + "calendarSync": { + "addMeetingURL": "Rnu aseɣwen n temlilit", + "confirmAddLink": "Tebɣiḍ ad ternuḍ aseɣwen n Jitsi i uneḍru-a?", + "error": { + "appConfiguration": "Amsidef n uwitay ur yettuswel ara akken iwata.", + "generic": "Tella-d tuccḍa. Ttxil-k·m senqed iɣewwaren n uwitay-inek·inem neɣ ɛreḍ asnirem n uwitay.", + "notSignedIn": "Tella-d tuccḍa lawan n usesteb i wakken ad nwali ineḍuyen n uwitay. Ttxil-k·m senqed iɣewwaren n uwitay syen ɛreḍ anekcum tikkelt-nniḍen." + }, + "join": "Ttekki", + "joinTooltip": "Ddu ɣer temlilit", + "nextMeeting": "timlilit tuḍfirt", + "noEvents": "Ulac ineḍruyen ɣer sdat yettusɣiwsen.", + "ongoingMeeting": "timlilit tetteddu", + "permissionButton": "Ldi iɣewwaren", + "permissionMessage": "Tasiregt n uwitay tettusra i wakken ad twaliḍ timlilit-ik.im ɣef usnas.", + "refresh": "Smiren awitay", + "today": "Ass-a" + }, + "chat": { + "enter": "Kcem taxxamt", + "error": "Izen-inek·inem ur yettwazen ara. Taɣzint: {{error}}", + "fieldPlaceHolder": "Aru izen-inek·inem da", + "message": "Izen", + "messageAccessibleTitle": "{{user}} ad d-yeqqar:", + "messageAccessibleTitleMe": "ad qqareɣ:", + "messageTo": "Izen uslig i {{recipient}}", + "messagebox": "Aru izen", + "nickname": { + "popover": "Fren meffer isem", + "title": "Sekcem meffer isem i useqdec n usqerdec", + "titleWithPolls": "Sekcem meffer isem i useqdec n usqerdec" + }, + "noMessagesMessage": "Ulac iznan akka tura deg temlilit. Bdu adiwenni da!", + "privateNotice": "Izen uslig i {{recipient}}", + "sendButton": "Azen", + "smileysPanel": "Afeggag n Emoji", + "tabs": { + "chat": "Asqerdec", + "polls": "Tifranin" + }, + "title": "Asqerdec", + "titleWithPolls": "Asqerdec", + "you": "kečč·kemm" + }, + "chromeExtensionBanner": { + "buttonText": "Sbedd asiɣzef Chrome", + "close": "Mdel", + "dontShowAgain": "Ur iyi-d-ssutur ara aya tikkelt-nniḍen", + "installExtensionText": "Sbedd asiɣzef i umsidef n uwitay n Google d Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Tetteqqneḍ ɣer temlilit-ik·im…" + }, + "connection": { + "ATTACHED": "Isedda", + "AUTHENTICATING": "Asesteb", + "AUTHFAIL": "Asesteb ur yeddi ara", + "CONNECTED": "Yeqqen", + "CONNECTING": "Tuqqna", + "CONNFAIL": "Tuqqna ur teddi yara", + "DISCONNECTED": "Ur yeqqin ara", + "DISCONNECTING": "Tuffɣa", + "ERROR": "Tuccḍa", + "FETCH_SESSION_ID": "Awway n usulay n tɣimit…", + "GET_SESSION_ID_ERROR": "Tuccḍa deg wawway n usulay n tɣimit: {{code}}", + "GOT_SESSION_ID": "Awway n usulay n tɣimit… Yemmed", + "LOW_BANDWIDTH": "Tettwasens tvidyut i {{displayName}} i wakken ad tettwaḥraz tehri n tseftit" + }, + "connectionindicator": { + "address": "Tansa:", + "audio_ssrc": "Imesli SSRC:", + "bandwidth": "Tehri n tesfift yettuṛaǧun:", + "bitrate": "Aktum imsin:", + "bridgeCount": "Amḍan n uqeddac: ", + "codecs": "Codecs (A/V) : ", + "connectedTo": "Yeqqen ɣer:", + "framerate": "Afmiḍi n ukatar:", + "less": "Sken-d drus", + "localaddress": "Tansa tadigant:", + "localaddress_plural": "Tansiwin tidigganin:", + "localport": "Tawwurt tadigant:", + "localport_plural": "Tiwwura tidiganin:", + "maxEnabledResolution": "tuzna tafellayt", + "more": "Sken-d ugar", + "packetloss": "Asṛuḥu n ukemmus:", + "participant_id": "Id n umtteki:", + "quality": { + "good": "Telha", + "inactive": "D arurmid", + "lost": "Iruḥ", + "nonoptimal": "Mačči d win igerrzen", + "poor": "D igellil" + }, + "remoteaddress": "Tansa tanmeggagt:", + "remoteaddress_plural": "Tansiwin tinmeggagin:", + "remoteport": "Tawwurt tanmeggagt:", + "remoteport_plural": "Tiwwura tinmeggagin:", + "resolution": "Ferru:", + "savelogs": "Sekles iɣmisen", + "status": "Tuqqna:", + "transport": "Tumnayt:", + "transport_plural": "Tumnayin:", + "video_ssrc": "Tavidyut SSRC:" + }, + "dateUtils": { + "earlier": "Zik", + "today": "Ass-a", + "yesterday": "Iḍelli" + }, + "deepLinking": { + "appNotInstalled": "Tesriḍ asnas n uziraz {{app}} i wakken ad tettekkiḍ deg temlilit-a ɣef tiliɣri-inek·inem.", + "description": "Ulac d acu yeḍran? Neɛreḍ ad nseddu timlilit-inek·inem deg usnas n tnarit {{app}}. Ɛreḍ tikkelt-nniḍen neɣ seddu-tt deg usnas web {{app}}.", + "descriptionWithoutWeb": "Ulac d acu yeḍran? Neɛreḍ ad nseddu timlilit-inek·inem deg usnas n tnarit {{app}}.", + "downloadApp": "Sider-d asnas", + "ifDoNotHaveApp": "Ma yella mazal urɛad ur tesɛiḍ ara asnas:", + "ifHaveApp": "Ma yella tesɛiḍ yakan asnas:", + "joinInApp": "Ttekki deg usarag s useqdec n usnas", + "launchWebButton": "Seddu deg web", + "title": "Seddu timlilit-ik·im deg {{app}}…", + "tryAgainButton": "Ɛreḍ tikkelt-nniḍen ɣef tnarit" + }, + "defaultLink": "md. {{url}}", + "defaultNickname": "am. Jayn Pink", + "deviceError": { + "cameraError": "Ugur deg unekcum ɣer tkamirat-inek·inem", + "cameraPermission": "Ugur deg wawway n tsiregt n tkamiṛat", + "microphoneError": "Ugur deg unekcum ɣer usawaḍ-inek·inem", + "microphonePermission": "Ugur deg wawway n tsiregt n usawaḍ" + }, + "deviceSelection": { + "noPermission": "Ur d-tettunefk ara tsiregt", + "previewUnavailable": "Ulac taskant", + "selectADevice": "Fren ibenk", + "testAudio": "Urar imesli n usekyed" + }, + "dialOut": { + "statusMessage": "tura d {{status}}" + }, + "dialog": { + "Back": "Uɣal", + "Cancel": "Sefsex", + "IamHost": "Nekk d asenneftaɣ", + "Ok": "IH", + "Remove": "Sfeḍ", + "Share": "Bḍu", + "Submit": "Azen", + "WaitForHostMsg": "Asarag mazal ur yebdi ara. Ma yella d kečč·kemm i d asenneftaɣ, ttxil-k·m ilaq usesteb. Ma yella xaṭi, ttxil-k·m rǧu asenneftaɣ ad d-yaweḍ.", + "WaitingForHostTitle": "Aṛaǧu n usenneftaɣ…", + "Yes": "Ih", + "accessibilityLabel": { + "liveStreaming": "Asuddim usrid" + }, + "add": "Rnu", + "allow": "Sireg", + "alreadySharedVideoMsg": "Imttekki-nniḍen yebḍa-d yakan tavidyut. Asarag-a yessirig kan yiwet n tvidyut yettwabḍan yal tikkelt.", + "alreadySharedVideoTitle": "Ala yiwet n tvidyut yettwabḍan yettusirgen yal tikkelt", + "applicationWindow": "Asfaylu n usnas", + "authenticationRequired": "Tlaq tuqqna", + "cameraConstraintFailedError": "Takamiṛat-ik·im ur tqudar ara kra n tlisa yettusran.", + "cameraNotFoundError": "Ur nufi ara takamirat.", + "cameraNotSendingData": "Ur nessaweḍ ara ad nekcem er tkamiṛat-inek·inem. Ma ulac aɣilif wali ma yella usnas-nniḍen yesseqdacen ibenk-a, fren ibenk-nniḍen seg wumuɣ n yiɣewwaren neɣ ɛreḍ ad talseḍ asmiren n usnas.", + "cameraNotSendingDataTitle": "Anekcum ɣer tkamiṛat ulamek", + "cameraPermissionDeniedError": "Ur tefkiḍ ara tisirag i useqdec n tkamiṛat-inek·inem. Mazal tzemreḍ ad tettekkiḍ deg usarag maca wiyaḍ ur ak·akem-id-ttwalin ara. Seqdec taqeffalt n tkamiṛat deg ufeggag n tansiwin i wakken ad tefruḍ ugur.", + "cameraTimeoutError": "Ur yezmir ara ad ibdu aɣbalu n tvudyut. Yemmut umenḍar!", + "cameraUnknownError": "Ur tezmireḍ ara ad tesqedceḍ takamiṛat, ur neẓri ara acuɣer.", + "cameraUnsupportedResolutionError": "Takamiṛat-ik·im ur tessefrak ara afray tvidyut yettusran.", + "close": "Mdel", + "conferenceDisconnectMsg": "Ilaq-ak·am ad tesneqdeḍ tuqqna-inek·inem ɣer uzeṭṭa. Allus n tuqqna deg {{seconds}} tisinin…", + "conferenceDisconnectTitle": "Tettwasuffɣeḍ.", + "conferenceReloadMsg": "Nettaɛraḍ ad nṣeggem aya. Allus n tuqqna deg {{seconds}} tisinin…", + "conferenceReloadTitle": "Nesḥassef, yella wayen ur nteddu ara akken ilaq.", + "confirm": "Sentem", + "confirmNo": "Uhu", + "confirmYes": "Ih", + "connectError": "Nesḥassef! Yella wayen ur nteddu ara akken iwata, ur nezmir ara ad neqqen ɣer usarag.", + "connectErrorWithMsg": "Nesḥassef! Yella wayen ur nteddu ara akken iwata, ur nezmir ara ad neqqen ɣer usarag: {{msg}}", + "connecting": "Yetteqqen", + "contactSupport": "Anermis n tallelt", + "copied": "Yenɣel", + "copy": "Nɣel", + "dismiss": "Agwi", + "displayNameRequired": "Azul! Isem-ik·im?", + "done": "Immed", + "e2eeDescription": "Awgelhen seg yixef er yixef d ARMITAN akka tura. Ma ulac aɣilif err deg walliɣ-ik·im armad n uwgelhen seg yixef ɣer yixef ad issens akken iwata imeẓla i d-yettwamudden tama n yiqeddacen am: usekles, asuddem usrid d uttekki s tiliɣri. Err deg wallaɣ-ik·im daɣen, timlilit ad teddu kan i yimdanen i yettekkan seg yiminiggen yessefraken aragen i izemren ad ttwaskecmen.", + "e2eeDisabledDueToMaxModeDescription": "Ur yezmir ara ad irmed awgelhen si ixef-ɣer-yixef acku aṭas i yellan n yimettekiyen.", + "e2eeLabel": "Tasarut E2EE", + "e2eeWarning": "Ɣur-k·m: Mačči akk imttekkiyen n temlilit-a ttbanen ssefraken awgelhen seg yixef ɣer yixef. Ma yella tesremdeḍ-t, ur ssawaḍen ara ad ak·am-id-walin, ur ssawaḍen ad ak·am-d-slen.", + "e2eeWillDisableDueToMaxModeDescription": "Ɣur-k.m: Awgelhen si ixef-ɣer-yixef ad yens s wudem awurman ma rnan-d ugar n yimettekiyen.", + "embedMeeting": "Sleɣ timlilit", + "enterDisplayName": "Ttxil-k·m sekcem isem-ik·im da", + "error": "Tuccḍa", + "gracefulShutdown": "Ameẓlu-nneɣ akka tura yensa i uṣeggem. Ma ulac aɣilif ɛreḍ tikkelt-nniḍen.", + "grantModeratorDialog": "Tebγiḍ s tidet ad tefkeḍ izerfan n usektem i {{participantName}}?", + "grantModeratorTitle": "Efk izerfan n usektem", + "hideShareAudioHelper": "Ur d-skan ara adiweni-agi tikelt nniḍen", + "incorrectPassword": "Isem n useqdac neɣ awal uffir ud arameɣt", + "incorrectRoomLockPassword": "Awal uffir d arameɣtu", + "internalError": "Nesḥassef! Yella wayen ur nteddu ara akken iwata. Tuccḍa i d-iteddun i d-yeḍran: {{error}}", + "internalErrorTitle": "Tuccḍa tagensant", + "kickMessage": "Tzemreḍ ad tremseḍ {{participantDisplayName}} i wugar n telqayt.", + "kickParticipantButton": "Suffeɣ", + "kickParticipantDialog": "Tebɣiḍ s tidet ad tsuffɣeḍ imttekki-a?", + "kickParticipantTitle": "Suffeɣ amttekki-a?", + "kickTitle": "Ay! {{participantDisplayName}} isuffeɣ-ik·ikem-d seg temlilit", + "liveStreaming": "Asuddem usrid", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "D awezɣi ma yili yermed usekles", + "liveStreamingDisabledTooltip": "Beddu n usuddem usrid yensa.", + "localUserControls": "Isenqaden n useqdac adigan", + "lockMessage": "Asekkeṛ n usarag ur yeddi ara.", + "lockRoom": "Rnu timlilit $t(lockRoomPasswordUppercase)", + "lockTitle": "Asekkeṛ ur yeddi ara", + "login": "Aseqdac", + "logoutQuestion": "S tidet tebɣiḍ ad teffɣeḍ rnu ad tesḥebseḍ asarag?", + "logoutTitle": "Tufɣa", + "maxUsersLimitReached": "Talast n umḍan afellay n yimttekkiyen yewweḍ. Asarag yeččur. Ma ulac aɣilif nermes bab n temlilit neɣ ɛreḍ ticki!", + "maxUsersLimitReachedTitle": "Talast n usekles tewweḍ", + "micConstraintFailedError": "Asawaḍ-inek·inem ur iqudar ara kra n tlisa yettusran.", + "micNotFoundError": "Ur yettwawef ara usawaḍ.", + "micNotSendingData": "Ruḥ ɣer yiɣewwaren n uselkim-inek·inem i wakken ad talseḍ armad n usawaḍ-inek·inem, rnu semsawi aswir-ines", + "micNotSendingDataTitle": "Asawaḍ-inek·inem yettwasgugem seg yiɣewwaren n unagraw-inek·inem", + "micPermissionDeniedError": "Ur tefkiḍ ara tisirag i useqdec n usawa-inek·inem. Mazal tzemreḍ ad tettekkiḍ deg usarag maca wiyaḍ ur ak·akem-id-sellen ara. Seqdec taqeffalt n tkamiṛat deg ufeggag n tansiwin i wakken ad tefruḍ ugur.", + "micTimeoutError": "Ur yezmir ara ad ibdu aɣbalu n yimesli. Yemmut umenḍar!", + "micUnknownError": "Ur tezmireḍ ara ad tesqedceḍ asawaḍ, ur neẓri ara acuɣer.", + "moderationAudioLabel": "Sireg imttekiyen ad ksen iesli i yiman-nsen", + "moderationVideoLabel": "Sireg imttekiyen ad bdun tavidyut i yiman-nsen", + "muteEveryoneDialog": "Tebɣiḍ s tidet ad tsenseḍ yal yiwen? Ur tettizmireḍ ara ad talseḍ armad-nsen, maca zemren ad alsen armad melmi i bɣan.", + "muteEveryoneDialogModerationOn": "Zemren imttekiyen ad aznen asuter n umeslay deg yal lawan.", + "muteEveryoneElseDialog": "Akken ara yens yimesli, ur tettizmireḍ ara ad talseḍ armad-ines, maca zemren ad alsen armad-ines melmi i bɣan.", + "muteEveryoneElseTitle": "Sgugem yal yiwen slid {{whom}}?", + "muteEveryoneElsesVideoDialog": "Ticki takamiṛat tensa, ur tettizmireḍ ara ad talseḍ armad-ines, maca nutni zemren ad alsen armad-ines melmi i bɣan.", + "muteEveryoneElsesVideoTitle": "Seḥbes tavidyut n yal yiwen ala {{whom}}?", + "muteEveryoneSelf": "iman-ik·im", + "muteEveryoneStartMuted": "Yal yiwen ad yebdu s tsusmi seg tura", + "muteEveryoneTitle": "Sgugem yal yiwen?", + "muteEveryonesVideoDialog": "Zemren imttekiyen ad remden tavidyut-nsen deg yal lawan.", + "muteEveryonesVideoDialogModerationOn": "Zemren imttekiyen ad aznen asuter ad remden tavidyut-nsen deg yal lawan.", + "muteEveryonesVideoDialogOk": "Désactiver", + "muteEveryonesVideoTitle": "Seḥbes tavidyut n yal yiwen?", + "muteParticipantBody": "Ur tettizmireḍ ara ad talseḍ armad-nsen, maca zemren ad alsen armad melmi i bɣan.", + "muteParticipantButton": "Kkes imesli", + "muteParticipantDialog": "Tebɣiḍ s tidet ad tsenseḍ imttekki-a? Ur tettizmireḍ ara ad talseḍ armad-nsen, maca zemren ad alsen armad melmi i bɣan.", + "muteParticipantTitle": "Sgugem imttekki-a?", + "muteParticipantsVideoBody": "Ur tezmareḍ ara ad talseḍ armad n tkamiṛat , maca zemren ad alsen armad melmi i bɣan.", + "muteParticipantsVideoButton": "Seḥbes tavidyut n Youtube", + "muteParticipantsVideoDialog": "Tebɣiḍ s tidet ad tsenseḍ takamiṛat n umttekki-a? Ur tettizmireḍ ara ad talseḍ armad-is, maca nutni zemren ad alsen armad melmi i bɣan.", + "muteParticipantsVideoTitle": "Seḥbes takamiṛat n yimttekki-a?", + "noDropboxToken": "Ajiṭun n Dropbox mačči d ameɣtu", + "password": "Awal uffir", + "passwordLabel": "Timlilit tettwamdel sɣur yiwen yimttekki. Ttil-k·m sekcem $t(lockRoomPassword) i uttekki.", + "passwordNotSupported": "Iɣewwaren n temlilit $t(lockRoomPassword) ur ttusefraken ara.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) ur yettusefrak ara", + "passwordRequired": "$t(lockRoomPasswordUppercase) yettusra", + "permissionCameraRequiredError": "Tasiregt n tkamiṛat tettwasra i uttekki deg yisaragen s tvidyut. Ma ulac aɣilif, sireg-itt deg Yiɣewwaren", + "permissionErrorTitle": "Isra tisirag", + "permissionMicRequiredError": "Tasiregt n usawad tettwasra i uttekki deg yisaragen s umeslaw. Ma ulac aɣilif, sireg-it deg Yiɣewwaren", + "popupError": "Iminig-ik·im yessewḥal isfuyla udhimen n usmel-a. Ma ulac aɣilif rmed isfuyla udhimen deg yiɣewwaren n yiminig-inek·inem syen ɛreḍ tikkelt-nniḍen.", + "popupErrorTitle": "Isfuyla udhimen ttusweḥlen", + "readMore": "ugar", + "recording": "Asekles", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "D awezɣi ma yili yermed usuddem usrid", + "recordingDisabledTooltip": "Beddu n usekles yensa.", + "rejoinNow": "Rnu tura", + "remoteControlAllowedMessage": "{{user}} yeqbel asuter-ik·im n usenqed anmeggag!", + "remoteControlDeniedMessage": "{{user}} yugi asuter-ik·im n usenqed anmeggag!", + "remoteControlErrorMessage": "Tella-d tuccḍa mi ara nettaɛraḍ ad nsuter tisirag n usenqed anmeggag seg {{user}}!", + "remoteControlRequestMessage": "Tebɣam ad tsirgem {{user}} ad yessenqed tanarit-nwen?", + "remoteControlShareScreenWarning": "Err ddehn-ik·im, ma yella tsateḍ ɣef \"Sireg\" ad tebḍuḍ agdil-inek·inem!", + "remoteControlStopMessage": "Tiɣimit n usenqed anmeggag tfukk!", + "remoteControlTitle": "Asenqed agemmaḍ n tnarit", + "remoteUserControls": "Isenqaden n useqdac anmeggag n {{username}}", + "removePassword": "Kkes $t(lockRoomPassword)", + "removeSharedVideoMsg": "D tidet tebɣiḍ ad tekkseḍ tavidyut-inek·inem yettwabḍan?", + "removeSharedVideoTitle": "Kkes tavidyut yettwabḍan", + "reservationError": "Tuccḍa deg unagraw n uḥerri", + "reservationErrorMsg": "Tangalt n tuccḍa: {{code}}, izen: {{msg}}", + "retry": "Ɛreḍ tikkelt-nniḍen", + "screenSharingAudio": "Bḍu ameslaw", + "screenSharingFailed": "Suref-aɣ! Yella wayen ur neddi ara akken iwata, ur nessaweḍ ara ad nsenker beṭṭu n ugdil!", + "screenSharingFailedTitle": "Beṭṭu n ugdil ur yeddi ara!", + "screenSharingPermissionDeniedError": "Nesḥassef! Yella wayen ur nteddu ara akken iwata d tsirag n beṭṭu n ugdil. Ma ulac aɣilif ales asali syen ɛreḍ tikkelt-nniḍen.", + "sendPrivateMessage": "Tremseḍ-d melmi kan izen uslig. Tebɣiḍ ad terreḍ fell-as s wudem uslig neɣ tebɣiḍ ad tazneḍ izen-inek·inem ɣer ugraw?", + "sendPrivateMessageCancel": "Azen ɣer ugraw", + "sendPrivateMessageOk": "Azen s wudem uslig", + "sendPrivateMessageTitle": "Azen s wudem uslig?", + "serviceUnavailable": "Ulac ameẓlu", + "sessTerminated": "Yekfa usiwel", + "sessionRestarted": "Allus n usenker n usiwel s ttawil n tqenṭert", + "shareAudio": "Continuer", + "shareAudioTitle": "Amek ara tebḍuḍ imesli", + "shareAudioWarningD1": "ilaq ad tesḥebseḍ beṭṭu n ugdil send beṭṭu n yimesli inek.inem.", + "shareAudioWarningD2": "tesriḍ ad talseḍ asenker n beṭṭu n ugdil rnu senqed taxtiṛt \"bḍu ameslaw\".", + "shareAudioWarningH1": "Ma yella tebɣiḍ ad tebḍuḍ kan ameslaw:", + "shareAudioWarningTitle": "Ilaq ad tesḥebseḍ beṭṭu n ugdil send beṭṭu n umeslaw", + "shareMediaWarningGenericH2": "Ma yella tebɣiḍ ad tebḍuḍ agdil d umeslaw", + "shareScreenWarningD1": "ilaq ad tesḥebseḍ beṭṭu n umeslaw send beṭṭu n ugdil.", + "shareScreenWarningD2": "tesriḍ ad tesḥebseḍ beṭṭu n umeslaw, senker beṭṭu n ugdil rnu senqed taxtiṛt \"bḍu ameslaw\".", + "shareScreenWarningH1": "Ma yella tebɣiḍ ad tebḍuḍ kan agdil:", + "shareScreenWarningTitle": "Ilaq ad tesḥebseḍ beṭṭu n umeslaw send beṭṭu n ugdil", + "shareVideoLinkError": "Ttxil-k·m mudd-d aseɣwen n Youtube ameɣtu.", + "shareVideoTitle": "Bḍu tavidyut", + "shareYourScreen": "Bḍut agdil-ik·im", + "shareYourScreenDisabled": "Beṭṭu n ugdil yensa.", + "sharedVideoLinkPlaceholder": "Aseɣwen n Youtube neɣ aseɣwen n tvidyut srid", + "startLiveStreaming": "Bdu asuddem usrid", + "startRecording": "Bdu asekles", + "startRemoteControlErrorMessage": "Tella-d tuccḍa mi nettaɛraḍ ad nebdu tiɣimit n usenqed anmeggag!", + "stopLiveStreaming": "Seḥbes asuddem usrid", + "stopRecording": "Seḥbes asekles", + "stopRecordingWarning": "S tidet tebɣiḍ ad tesḥebseḍ asekles?", + "stopStreamingWarning": "S tidet tebɣiḍ ad tesḥebseḍ asuddem usrid?", + "streamKey": "Tasarut n usuddem usrid", + "thankYou": "Tanemmirt ɣef useqdec n {{appName}}!", + "token": "ajuṭu", + "tokenAuthFailed": "Suref-aɣ, ur tesɛiḍ ara tisirag ad tettekkiḍ deg usiwel-a.", + "tokenAuthFailedTitle": "Asesteb ur yeddi ara", + "transcribing": "Aseskel", + "unlockRoom": "Kkes timlilit $t(lockRoomPassword)", + "user": "Aseqdac", + "userIdentifier": "Asulay n useqdac", + "userPassword": "Awal uffir n useqdac", + "videoLink": "Aseɣwen n tvidyut", + "viewUpgradeOptions": "Wali iɣewaṛen n uleqqem", + "viewUpgradeOptionsContent": "I wakken ad tesεuḍ anekcum war talast ɣer tmahilin premium am usekles, azemmem, asuddem RTMP & wayen-nniḍen, ilaq ad tleqqmeḍ aɣawas-ik·im.", + "viewUpgradeOptionsTitle": "Tufid-d tamahilt premium!", + "yourEntireScreen": "Meṛṛa agdil-inek·inem" + }, + "documentSharing": { + "title": "Yebḍa isemli" + }, + "e2ee": { + "labelToolTip": "Taywalt s umeslaw akked tvidyut deg usiwel-a tettwawgelhen seg yixef ɣer yixef" + }, + "embedMeeting": { + "title": "Sleɣ timlilit-a" + }, + "feedback": { + "average": "D alemmas", + "bad": "Diri-t", + "detailsLabel": "Ini-yi-d ugar fell-as.", + "good": "Yelha", + "rateExperience": "Ttxil-k·m ktazel tarmit-ik·im n temlilit", + "star": "Itri", + "veryBad": "Diri-t maḍi", + "veryGood": "Yelha maḍi" + }, + "helpView": { + "title": "Agens n tallalt" + }, + "incomingCall": { + "answer": "Tiririt", + "audioCallTitle": "Asiwel i ikcem-d", + "decline": "Agwi", + "productLabel": "seg Jitsi Meet", + "videoCallTitle": "Asiwel s tvidyut ikcem-d" + }, + "info": { + "accessibilityLabel": "Sken talɣut", + "addPassword": "Rnu $t(lockRoomPassword)", + "cancelPassword": "Sefsex $t(lockRoomPassword)", + "conferenceURL": "Aseɣwen:", + "copyNumber": "Nɣel uṭṭun", + "country": "Tamurt", + "dialANumber": "I uttekki deg temlilit-inek·inem, suddes yiwen seg wuṭṭunen-a syen sekcem tangalt pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Suref-aɣ, tuqqna akka tura ur yettusefrak ara.", + "dialInNumber": "Suddes uṭṭun:", + "dialInSummaryError": "Tella-d tuccḍa deg tririt n telɣut n tuqqna, tura. Ma ulac aɣilif ɛreḍ tikkelt-nniḍen ticki.", + "dialInTollFree": "Siwel baṭel", + "genericError": "Suref-aɣ, yella wayen ur nteddu ara akken iwata.", + "inviteLiveStream": "I uwali n usuddem usrid n temlilit-a, sit ɣef useɣwen-a: {{url}}", + "invitePhone": "I uttekki s tiliɣri, sit da: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Tettnadiḍ uṭṭun-nniḍen n usiwel?\nWali uṭṭunen n tiliɣri i temlilit: {{url}}\n\n\nMa yella teqqneḍ s tilifun n texxamt, ttekki war ma teqqneḍ ɣer umeslaw: {{silentUrl}}", + "inviteSipEndpoint": "I tmerna s useqdec n tansa n SIP, sekcem wa: {{sipUri}}", + "inviteTextiOSInviteUrl": "Sit ɣef useɣwen-a i wakken ad ternuḍ: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Ma yella tetteqneḍ s wuṭṭun n texxamt, seqdec aseɣwen-a i wakken ad ternuḍ war ma teqqneḍ ɣer umeslaw: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} isnubget-ik·ikem ɣer temlilit.", + "inviteTextiOSPhone": "I tmerna s wuṭṭun n tiliɣri, seqdec uṭṭun-a: {{number}},,{{conferenceID}}#. Ma yella tettnadiḍ uṭṭun-nniḍen, ha-tt-a tebdart teččur: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Tettwanecdeḍ ad tettekkiḍ deg temlilit.", + "inviteURLFirstPartPersonal": "{{name}} isnubget-ik·ikem ɣer temlilit.\n", + "inviteURLSecondPart": "\nRnu ɣer temlilit:\n{{url}}\n", + "label": "Talɣut n temlilit", + "liveStreamURL": "Asuddim usrid:", + "moreNumbers": "Ugar n wuṭṭunen", + "noNumbers": "Ulac uṭṭun n usiwel.", + "noPassword": "Ula d yiwen", + "noRoom": "Ulac taxxamt i yettwafernen i usiwel ɣer-s.", + "numbers": "Uṭṭunen n usiwel", + "password": "$t(lockRoomPasswordUppercase) :", + "sip": "Tansiwin SIP", + "title": "Bḍu", + "tooltip": "Bḍu aseɣwen d telɣut n tuqqna n temlilit-a" + }, + "inlineDialogFailure": { + "msg": "Yewwet-aɣ ciṭuḥ wugur.", + "retry": "Ɛreḍ tikkelt-nniḍen", + "support": "Tallalt", + "supportMsg": "Ma yella aya mazal iḍerru, nermes-aɣ-d ɣer" + }, + "inviteDialog": { + "alertText": "Ancad n kra n yimttekkiyen ur yeddi ara.", + "header": "Nced", + "searchCallOnlyPlaceholder": "Sekcem uṭṭun n tiliɣri", + "searchPeopleOnlyPlaceholder": "Nadi imttekkiyen", + "searchPlaceholder": "Imttekki neɣ uṭṭun n tiliɣri", + "send": "Azen" + }, + "jitsiHome": "{{logo}} Alugu, iseɣwan ɣer usebter agejdan", + "keyboardShortcuts": { + "focusLocal": "Err ddehn-ik·im ɣer tavidiyut-ik·im", + "focusRemote": "Err ddehn-ik·im ɣer tvdyutin n wiyaḍ", + "fullScreen": "Rmed neɣ ffeɣ seg ugdil aččuran", + "keyboardShortcuts": "Inegzumen n unasiw", + "localRecording": "Sken neɣ ffer isenqaden idiganen n usekles", + "mute": "Rmed neɣ sens asawaḍ", + "pushToTalk": "Sit akken ad temmeslayeḍ", + "raiseHand": "Sali neɣ ṣubb afus-ik·im", + "showSpeakerStats": "Sken addaden n yimsiwel", + "toggleChat": "Ldi neɣ mdel agalis n usqerdec", + "toggleFilmstrip": "Sken neɣ ffer tinfulin n tvidyutin", + "toggleParticipantsPane": "Sken neɣ ffer agalis n yimttekkiyen", + "toggleScreensharing": "Uɣal gar tkamiṛat d beṭṭu n ugdil", + "toggleShortcuts": "Sken neɣ ffer inegzumen n unasiw", + "videoMute": "Sker neɣ seḥbes takamiṛat inek·inem" + }, + "liveStreaming": { + "busy": "Aql-aɣ nxeddem ad d-neslelli tiɣbula n usuddem. Ma ulac aɣilif, ɛreḍ tikkelt-nniḍen deg kra n tesdidin.", + "busyTitle": "Meṛṛa igalisen akka tura ceɣlen", + "changeSignIn": "Beddel imiḍanen.", + "choose": "Fren asuddem usrid", + "chooseCTA": "Fren taxtiṛit n usuddem. Aql-ak·akem tura tkecmeḍ s {{email}}.", + "enterStreamKey": "Sekcem tasarut-ik·im n usuddem usrid n Youtube da.", + "error": "Asuddem usrid ur yeddi ara. Ttxilek ɛreḍ tikkelt-nniḍen.", + "errorAPI": "Tella-d tuccḍa deg unekcum ɣer tnezwit-inek·inem ɣef Youtube. Ma ulac aɣilif ɛreḍ anekcum tikkelt-nniḍen.", + "errorLiveStreamNotEnabled": "Asuddem usrid ur yettwarmed ara deg {{email}}. Ma ulac aɣilif rmed asuddem usrid neɣ kcem ɣer umiḍan s usuddem usrid yettwaremden.", + "expandedOff": "Asuddes usrid yettuseḥbes", + "expandedOn": "Timlilit ha-tt-a akka tura tettɛeddi-d deg Youtuba.", + "expandedPending": "Asuddem usrid ha-t-an ad yebdu…", + "failedToStart": "Ur yesmurres wusrid deg uqlaɛ", + "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", + "onBy": "{{name}} yebda asuddem usrid", + "pending": "Beddu n usuddem usrid…", + "serviceName": "Ameẓlu n usuddem usrid", + "signIn": "Qqen s Google", + "signInCTA": "Qqen neɣ sekcem tasarut-ik·im n usuddem usrid seg Youtube.", + "signOut": "Ffeɣ", + "signedInAs": "Aql-ak·akem akka tura teqqneḍ d:", + "start": "Bdu asuddem usrid", + "streamIdHelp": "D acu-t wa?", + "unavailableTitle": "Ulac asuddem usrid", + "youtubeTerms": "Tiwtilin n yimeẓla n Youtube" + }, + "lobby": { + "allow": "Sireg", + "backToKnockModeButton": "Ulac awal uffir, suter attekki deg ubdil-is", + "dialogTitle": "Askar Lobby", + "disableDialogContent": "Askar Lobby akka tura yettwarmed. Tamahilt-a ad teḍmen timlilit-ik·im seg yir imttekkiyen, ur ttizmiren ara ad d-kecmen ɣer-s. Tebɣiḍ ad tt-tsenseḍ?", + "disableDialogSubmit": "Sens", + "emailField": "Sekcem tansa-inek·inem n yimayl", + "enableDialogPasswordField": "Sbadu awal uffir (d afrayan)", + "enableDialogSubmit": "Rmed", + "enableDialogText": "Askar Lobby ad yeǧǧ timlilit-ik·im tettummesten s usireg n unekcum n yimdanen seld aqbal alɣan sɣur amaẓrag.", + "enterPasswordButton": "Sekcem awal uffir n temlilit", + "enterPasswordTitle": "Sekcem awal uffir i uttekki deg temlilit", + "errorMissingPassword": "Ma ulac aɣilif, sekcem awal n uεeddi n temlilit", + "invalidPassword": "Yir awal uffir", + "joinRejectedMessage": "Asuter-inek·inem n uttekki yettwagi sɣur amaẓrag.", + "joinTitle": "Ttekki deg temlilit", + "joinWithPasswordMessage": "Aneɛruḍ n uttekki s wawal uffir, ttxil-k·m rǧu…", + "joiningMessage": "Ad tettekkiḍ deg temlilit akken kan ara yeqbel walbaɛḍ asuter-inek·inem", + "joiningTitle": "Asuter n uttekki deg temlilit…", + "joiningWithPasswordTitle": "Attekki s wawal uffir…", + "knockButton": "Suter attekki", + "knockTitle": "Yella win yebɣan ad ittekki deg temlilit", + "knockingParticipantList": "Tadbart n yimttekkiyen n usṭebṭeb", + "nameField": "Sekcem isem-ik·im", + "notificationLobbyAccessDenied": "{{targetParticipantName}} yettwagi ad yernu sɣur {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} yettusireg ad yernu sɣur {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby yettwasens sɣur {{originParticipantName}}", + "notificationLobbyEnabled": "Lobby yettwarmed sɣur {{originParticipantName}}", + "notificationTitle": "Taxxamt n uraǧu", + "passwordField": "Sekcem awal uffir n temlilit", + "passwordJoinButton": "Semlil", + "title": "Taxxamt n uraǧu", + "toggleLabel": "Rmed Lobby" + }, + "localRecording": { + "clientState": { + "off": "Insa", + "on": "Irmed", + "unknown": "D arussin" + }, + "dialogTitle": "Isenqaden n usekles adigan", + "duration": "Tanzagt", + "durationNA": "N/A", + "encoding": "Asettengel", + "label": "LOR", + "labelToolTip": "Asekles adigan iteddu", + "localRecording": "Asekles adigan", + "me": "Nekk", + "messages": { + "engaged": "Asekles adigan yedda.", + "finished": "Asekles n tɣimit {{token}} yemmed. Ttxil-k·m azen afaylu yettwaskelsen i umaẓrag.", + "finishedModerator": "Asekles n tɣimit {{token}} ifukk. Asekles n umeslaw adigan yettwaḥrez. Ma ulac aɣilif suter deg yimttekkiyen-nniḍen ad d-aznen iseklas-nsen.", + "notModerator": "Kečč·kemm mačči d amaẓrag. Ur tezmireḍ ara ad tebduḍ neɣ ad tesḥebseḍ asekles adigan." + }, + "moderator": "Aseɣyad", + "no": "Uhu", + "participant": "Imttekki", + "participantStats": "Addad n yimttekki", + "sessionToken": "Ajuṭu n tɣimit", + "start": "Bdu asekles", + "stop": "Seḥbes asekles", + "yes": "Ih" + }, + "lockRoomPassword": "awal uffir", + "lockRoomPasswordUppercase": "Mot de passe", + "lonelyMeetingExperience": { + "button": "Snubget-d wiyaḍ", + "youAreAlone": "D kečč·kemm kan i yellan deg temlilit" + }, + "me": "nek", + "notify": { + "OldElectronAPPTitle": "Ur teǧhid ara tɣellist!", + "allowAction": "Sireg", + "allowedUnmute": "Tzemreḍ ad tekkseḍ asgugem i usawaḍ-ik·im, ad tesnekreḍ takamiṛat neɣ ad tebḍuḍ agdil.", + "connectedOneMember": "{{name}} yerna ɣer temlilit", + "connectedThreePlusMembers": "{{name}} d {{count}} wiyaḍ rnan ɣer temlilit", + "connectedTwoMembers": "{{first}} d {{second}} rnan ɣer temlilit", + "disconnected": "yeffeɣ", + "focus": "Afukus n usarag", + "focusFail": "{{component}} ulac-it - ɛreḍ deg {{ms}} tesinin", + "groupTitle": "Ilɣa", + "hostAskedUnmute": "Imḍebber yebɣa ad temmeslayeḍ", + "invitedOneMember": "{{name}} yettwanced-d", + "invitedThreePlusMembers": "{{name}} d {{count}} wiyaḍ ttwanecden-d", + "invitedTwoMembers": "{{first}} d {{second}} ttwanecden-d", + "kickParticipant": "{{kicked}} isuffeɣ-it {{kicker}}", + "me": "Nekk", + "moderationInEffectCSDescription": "Ma ulac aɣilif, rfed afus-ik·im ma tebɣiḍ ad tebḍuḍ agdil.", + "moderationInEffectCSTitle": "Beṭṭu n ugdil yettusewḥel sɣur yimḍebber", + "moderationInEffectDescription": "Ma ulac aɣilif, rfed afus-ik·im ma tebɣiḍ ad temmeslayeḍ.", + "moderationInEffectTitle": "Asawaḍ-ik·im yettwasgugem sɣur yimḍebber", + "moderationInEffectVideoDescription": "Ma ulac aɣilif, rfed afus-ik·im ma tebɣiḍ ad tesnekreḍ takamiṛat.", + "moderationInEffectVideoTitle": "Takamiṛat-ik·im tettusewḥel sɣur yimḍebber", + "moderationRequestFromModerator": "Asenneftaɣ yebɣa ad tekkseḍ asgugem", + "moderationRequestFromParticipant": "Ibɣa ad imeslay", + "moderationStartedTitle": "Asektem yebda", + "moderationStoppedTitle": "Asektem yensa", + "moderationToggleDescription": "sɣur {{participantDisplayName}}", + "moderator": "Izerfan n usektem ttwamudden", + "muted": "Tebdiḍ asqerdec s tsusmi.", + "mutedRemotelyDescription": "Tzemreḍ ad d-terreḍ imesli melmi i tebɣiḍ ad d-temmeslayeḍ. Sens-it mi ara tfakkeḍ ameslay i wakken ad tesbeɛdeḍ zzhir ɣef temlilit.", + "mutedRemotelyTitle": "Yesgugem-ik·ikem {{moderator}}", + "mutedTitle": "Tettwasgugmeḍ!", + "newDeviceAction": "Seqdec", + "newDeviceAudioTitle": "Ibenk amaynut n umeslaw yettwaf-d", + "newDeviceCameraTitle": "Tettwaf-d tkamiṛat tamaynut", + "oldElectronClientDescription1": "Akka i nettwali tesseqdaceḍ lqem aqbur n umsaɣ Jitsi Meet i yesɛan uguren n tɣellist yettwassnen. Ma ulac aɣilif ḍmen ad tleqqmeḍ ", + "oldElectronClientDescription2": "lqem akk aneggaru", + "oldElectronClientDescription3": " tura!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) yettwakkes sɣur yimttekki-nniḍen", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) yettusbadu sɣur yimttekki-nniḍen", + "raiseHandAction": "Rfed afus", + "raisedHand": "{{name}} yebɣa ad d-yemmeslay.", + "reactionSounds": "Sens imesli", + "screenShareNoAudio": " Tabewwaḍt n umeslaw n beṭṭu ur tettwaṛcam ara deg ugdil n tefrant n usfaylu.", + "screenShareNoAudioTitle": "Ur yezmir ara ad yebḍu ameslaw n unagraw!", + "somebody": "Albaɛḍ", + "startSilentDescription": "Ttekki deg temlilit i wakken ad tremdeḍ ameslaw", + "startSilentTitle": "Terniḍ s war tuffɣa n umeslaw!", + "suboptimalBrowserWarning": "Nkukra ɣef termit-ik·im n temlilit ur tettili ara tgerrez da. Nettmuqul ttawilat s wamek ara nqeɛɛed aya, maca sya ɣer yimir ɛreḍ ad tesqedceḍ yiwen seg yiminigen yettusefraken s lekmal.", + "suboptimalExperienceTitle": "Alɣu n yiminig", + "unmute": "Sgugem", + "videoMutedRemotelyDescription": "Tzemreḍ ad ad t-tremdeḍ melmi tebɣiḍ.", + "videoMutedRemotelyTitle": "Tavidyut-ik·im tettwasens sɣur {{moderator}}" + }, + "participantsPane": { + "actions": { + "admit": "Steεref", + "admitAll": "Steεref s kullec", + "allow": "Sireg i yimttekkiyen ad:", + "allowVideo": "Sireg tavidyut", + "askUnmute": "Suter tririt n ṣṣut", + "audioModeration": "Kksen asgugem i yiman-nsen", + "blockEveryoneMicCamera": "Sewḥel asawaḍ d tkamiṛat n yal yiwen", + "invite": "Snubget-d albaɛḍ", + "mute": "Asusam", + "muteAll": "Sgugem meṛṛa", + "muteEveryoneElse": "Sgugem-iten i meṛṛa", + "reject": "Agi", + "stopEveryonesVideo": "Seḥbes tavidyut n yal yiwen", + "stopVideo": "Seḥbes tavidyut n Youtube", + "unblockEveryoneMicCamera": "Serreḥ i usawaḍ d tkamiṛat n yal yiwen", + "videoModeration": "Bdan tavidyut-nsen" + }, + "close": "Mdel", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Imttekkiyen n temlilit ({{count}})", + "waitingLobby": "Araǧu deg lobby ({{count}})" + }, + "title": "Imttekkiyen" + }, + "passwordDigitsOnly": "Alamma d {{number}} yizwilen", + "passwordSetRemotely": "Yettusbadu sɣur yimttekki-nniḍen", + "polls": { + "answer": { + "skip": "Ttu", + "submit": "Azen" + }, + "create": { + "addOption": "Rnu aɣewwaṛ", + "answerPlaceholder": "Aɣewwaṛ {{index}}", + "cancel": "Sefex", + "create": "Rnu asenqed", + "pollOption": "Taxtiṛt n usenqed {{index}}", + "pollQuestion": "Asteqsi n usenqed", + "questionPlaceholder": "Efk asteqsi", + "removeOption": "Kkes aɣewwaṛ", + "send": "Azen" + }, + "errors": { + "notUniqueOption": "tifranin ilaq ad ilin d imaynuten" + }, + "notification": { + "description": "Ldi iccer n yisenqad i ufran", + "title": "Asenqed amaynut yettwarna ɣer temlilt-a" + }, + "results": { + "changeVote": "Beddel tafrant", + "empty": "Ulac akka tura isenqaden deg temlilit. Bdu asenqed da!", + "hideDetailedResults": "Ffer tilɣa", + "showDetailedResults": "Sken talqayt", + "vote": "Tafrant" + } + }, + "poweredby": "yemmug-d sɣur", + "prejoin": { + "audioAndVideoError": "Tuccḍa deg umeslaw d tvidyut:", + "audioDeviceProblem": "Yella wugur d yibenk-ik·im n umeslaw", + "audioOnlyError": "Tuccḍa deg umeslaw:", + "audioTrackError": "Asnulfu n tezlit ulamek.", + "callMe": "Siwel-iyi-d", + "callMeAtNumber": "Siwel-iyi-d ɣer wuṭṭun-a:", + "calling": "Asiwel", + "configuringDevices": "Amtawi n yibenkan…", + "connectedWithAudioQ": "Teqqneḍ s umeslaw?", + "connection": { + "good": "Tuqqna-inek·inem internet tettban tgerrez!", + "nonOptimal": "Tuqqna-inek·inem internet ur tgerrez ara maḍi", + "poor": "Tuqqna-inek·inem internet txuṣṣ aṭas" + }, + "connectionDetails": { + "audioClipping": "Negmen ad yettwagzem umeslaw-inek·inem.", + "audioHighQuality": "Negmen belli ameslaw-inek·inem ad yesεu taɣara igerrzen aṭas.", + "audioLowNoVideo": "Negmen belli taɣara n umeslaw-inek·inem ad tili tṣubb yerna ulac tavidyut.", + "goodQuality": "Gedha! Taɣara n umidyat-inek·inem ad tili tgerrez aṭas.", + "noMediaConnectivity": "Ur nessaweḍ ara ad nserked tuqqna n umidya i usekyed-a. Ssebba n waya deg tudet d aɣrab n tmes neɣ d NAT.", + "noVideo": "Negmen belli tavidyut-ik·im ad tili txuṣ aṭas.", + "undetectable": "Ma mazal ur tezmireḍ ara ad tsiwleḍ deg yiminig, Wali ma yella imsmeɣrzen n imesli, asawaḍ akked tkamiṛat qaɛsen ne alla, daɣen ma yella tefkiḍ izerfan i yiminig ad iseqdec asawaḍ akked tkamiṛat, daɣen ma yella tesɛiḍ lqem aneggaru n yiminig. Ma mazal ugur, nermes aneflay n usnas web.", + "veryPoorConnection": "Negmen belli taɣara n usiwel-inek·inem ad yili ixuṣ aṭas.", + "videoFreezing": "Nerǧa d akken tavidyut ad teḥbes, ad tuɣal d taberkant neɣ texreb.", + "videoHighQuality": "Negmen belli tavidyut-ik·im ad tesεu taɣara igerrzen.", + "videoLowQuality": "Nerǧa tavidyut ad tenɣes deg tɣara deg wayen icudden ɣer ubeqqeḍ ines.", + "videoTearing": "Nerǧa tavidyut ad tenɣes deg ipiksilen neɣ ad tesɛu cammat." + }, + "copyAndShare": "Nɣel & bḍu aseɣwen n temlilit", + "dialInMeeting": "Qqen ɣer temlilit", + "dialInPin": "Qqen ɣer temlilit syen sekcem tangalt PIN:", + "dialing": "Siwel", + "doNotShow": "Ur d-skan ara tikkelt-nniḍen", + "errorDialOut": "Asuddes n wuṭṭun d awezɣi", + "errorDialOutDisconnected": "Asuddes n wuṭṭun d awezɣi. Yeffeɣ seg tuqqna", + "errorDialOutFailed": "Asuddes n wuṭṭun d awezɣi. Asiwel ur yeddi ara", + "errorDialOutStatus": "Tuccḍa deg wawway n waddad n usiḍen", + "errorMissingName": "Ma ulac aɣilif, sekcem isem-ik·im i waken ad ternuḍ ɣer temlilit", + "errorNoPermissions": "Ilaq ad tremdeḍ anekcum ɣer usawaḍ d tkamiṛat", + "errorStatusCode": "Tuccḍa deg usuddes n wuṭṭun, tangalt n waddad: {{status}}", + "errorValidation": "Asentem n wuṭṭun ur yeddi ara", + "iWantToDialIn": "Bɣiɣ ad qqneɣ ɣer", + "initiated": "Yebda usiwel", + "joinAudioByPhone": "Ttekki s umeslaw n tiliɣri", + "joinMeeting": "Ttekki deg temlilit", + "joinWithoutAudio": "Ttekki s war ameslaw", + "keyboardShortcuts": "Rmed inegzumen n unasiw", + "linkCopied": "Aseɣwen yettwanɣel 'ɣef wafus'", + "lookGood": "Asawaḍ-inek·inem akka i d-yettban, iteddu akken ilaq", + "or": "neɣ", + "premeeting": "Timlilit tuzwirt", + "screenSharingError": "Tuccḍa deg beṭṭu n ugdil:", + "startWithPhone": "Bdu s umeslaw n tiliɣri", + "videoOnlyError": "Tuccḍa deg tvidyut:", + "videoTrackError": "Asnulfu n track n tvidyut ulamek.", + "viewAllNumbers": "wali akk uṭṭunen" + }, + "presenceStatus": { + "busy": "Yecɣel", + "calling": "Yessawal…", + "connected": "Yeqqen", + "connecting": "Yetteqqen…", + "connecting2": "Yetteqqen*…", + "disconnected": "Yeffeɣ", + "expired": "Yemmut", + "ignored": "Yettwanef", + "initializingCall": "Awennez n usiwel…", + "invited": "Yettwancad", + "rejected": "Yettwagi", + "ringing": "Yettṣuni…." + }, + "profile": { + "avatar": "avaṭar", + "setDisplayNameLabel": "Sbadu isem n uskan", + "setEmailInput": "Sekcem-d imayl", + "setEmailLabel": "Sbadu imayl-inek·inem n Gravatar", + "title": "Amaɣnu" + }, + "raisedHand": "Bɣiɣ ad d-mmeslayeɣ", + "recording": { + "authDropboxText": "Sali-d ɣer Dropbox", + "availableSpace": "Tella tallunt: {{spaceLeft}} MAṬ (azal {{duration}} tesdidin n usekles)", + "beta": "BETA", + "busy": "Aql-aɣ nxeddem ad d-neslelli tiɣbula n usekles. Ma ulac aɣilif, ɛreḍ tikkelt-nniḍen deg kra n tesdidin.", + "busyTitle": "Meṛṛa iseklas akka tura ceɣlen", + "copyLink": "Sukken aseɣwen", + "error": "Asekles ur yeddi ara. Ttxil ɛreḍ tikkelt-nniḍen.", + "errorFetchingLink": "Tuccḍa lawan n tririt n useɣwen n usekles.", + "expandedOff": "Asekles yettuseḥbes", + "expandedOn": "Timlilit ha-tt-a akka tura tettwaseklas.", + "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}}", + "off": "Asekles yettuseḥbes", + "offBy": "{{name}} iseḥbes asekles", + "on": "Asekles", + "onBy": "{{name}} yebda asekles", + "pending": "Aheyyi n usekles n temlilit…", + "rec": "REC", + "serviceDescription": "Asekles-inek·inem ad yettwasekles s umeẓlu n usekles", + "serviceDescriptionCloud": "Asekles deg usigna", + "serviceName": "Ameẓlu n usekles", + "signIn": "Qqen", + "signOut": "Ffeɣ", + "title": "Asekles", + "unavailable": "Suref-aɣ! {{serviceName}} akka tura ulac-it. Aql-aɣ nxeddem ad nefru ugur. Ma ulac aɣilif ɛreḍ tikkelt-nniḍen ticki.", + "unavailableTitle": "Ulac asekles", + "uploadToCloud": "Sali ɣer usigna" + }, + "sectionList": { + "pullToRefresh": "Jbed-d i usnirem" + }, + "security": { + "about": "Tzemreḍ ad ternuḍ $t(lockRoomPassword) ɣer temlilit-ik·im. Imttekkiyen sran ad d-mudden $t(lockRoomPassword) send ad ttwaqeblen ad ttekkin deg temlilit.", + "aboutReadOnly": "Imttekkiyen imaẓragen zemren ad rnun $t(lockRoomPassword) ɣer temlilit-ik·im. Imttekkiyen sran ad d-mudden $t(lockRoomPassword) send ad ttwaqeblen ad ttekkin deg temlilit.", + "insecureRoomNameWarning": "Isem n texxamt yella ccekk deg-s. Imttekkiyen ur tebɣiḍ ara zemren ad d-rnun ɣer usarag-ik·im. Xemmem ad tḥarzeḍ timlilit-ik·im s useqdec n tqeffalt n tɣellist.", + "securityOptions": "Tixtiṛiyin n tɣellist" + }, + "settings": { + "calendar": { + "about": "Amsidef n uwitay {{appName}} yettuseqdac i unekcum aɣelsan ɣer uwitay-inek·inem i wakken ad d-iɣer ineḍruyen i d-iteddun.", + "disconnect": "Yeffeɣ", + "microsoftSignIn": "Qqen s Microsoft", + "signedIn": "Anekcum amiran ɣer yineḍruyen n uwitay i {{email}}. Sit ɣef tqeffalt ffeɣ i useḥbes n unekcum ɣer yineḍruyen n uwitay.", + "title": "Awitay" + }, + "desktopShareFramerate": "Anya n beṭṭu n tnarit", + "desktopShareHighFpsWarning": "Beṭṭu n tnarit s unya afellay izmer ad isaẓay tuqqna, Ilaq ales n tnekra n beṭṭu n ugdil akken asbadu amaynut ad iddu.", + "desktopShareWarning": "Ilaq ad talseḍ asenker n beṭṭu n ugdil i yiɣewwaren imaynuten i wakken ad ṭṭfen ibeddilen.", + "devices": "Ibenkan", + "followMe": "Yal amdan iy-ṭṭafaren", + "framesPerSecond": "tugniwin s tasint", + "incomingMessage": "Iteddu-d yizen", + "language": "Tutlayt", + "loggedIn": "Tkecmeḍ s yisem {{name}}", + "microphones": "Isawaḍen", + "moderator": "Aseɣyad", + "more": "Ugar", + "name": "ISem", + "noDevice": "Ula d yiwen", + "participantJoined": "Yerna-d yimttekki", + "participantLeft": "Imttekki azelmaḍ", + "playSounds": "Rmed ṣṣut", + "reactions": "Tisedmirin n temlilit", + "sameAsSystem": "Kifkif akked unagraw ({{label}})", + "selectAudioOutput": "Tuffɣa n umeslaw", + "selectCamera": "Takamiṛatt", + "selectMic": "Asawaḍ", + "sounds": "Imeslan", + "speakers": "Imsiwilen", + "startAudioMuted": "Yettwagugem waddad n yal yiwen", + "startVideoMuted": "Yeffer waddad n yal yiwen", + "talkWhileMuted": "Mmeslay ma yettwakkes ṣṣut", + "title": "Iɣewwaren" + }, + "settingsView": { + "advanced": "Talqayt", + "alertCancel": "Semmet", + "alertOk": "IH", + "alertTitle": "Ɣur-k·m", + "alertURLText": "URL n uqeddac yettwaskecmen d arameɣtu", + "buildInfoSection": "Talɣut n lebni", + "conferenceSection": "Asarag", + "disableCallIntegration": "Amsidef n usiwel adigan yensa", + "disableCrashReporting": "Sens tuzna n yineqqisen", + "disableCrashReportingWarning": "Tebɣiḍ s tidet ad tsenseḍ tuzna n yineqqisen? Aɣewwar ad yeddu seld allus n uskar n usnas.", + "disableP2P": "Sens askar n wudem ɣer wudem", + "displayName": "Isem n uskan", + "email": "Imayl", + "header": "Iɣewwaren", + "profileSection": "Amaɣnu", + "serverURL": "URL n uqeddac", + "showAdvanced": "Sken iɣewwaren leqqayen", + "startWithAudioMuted": "Bdu s umeslaw yettwasgugmen", + "startWithVideoMuted": "Bdu s tvidyut yettwasgugmen", + "version": "Lqem" + }, + "share": { + "dialInfoText": "\n\n=====\n\nTebɣiḍ kan ad teqqneḍ s tiliɣri-inek·inem?\n\n{{defaultDialInNumber}}Sit ɣef useɣwen-a i wakken ad twaliḍ uṭṭunen n tuqqna n tiliɣri i temlilit-a\n{{dialInfoPageUrl}}", + "mainText": "Sit ɣef useɣwen i d-iteddun i wakken ad tettekkiḍ deg temlilit:\n{{roomUrl}}" + }, + "speaker": "Asawaḍ", + "speakerStats": { + "hours": "{{count}} isragen", + "minutes": "{{count}} n tesdidin", + "name": "Isem", + "search": "Nadi", + "searchHint": "Nadi imttekkiyen", + "seconds": "{{count}} n tsinin", + "speakerStats": "Addad n yimsiwel", + "speakerTime": "Akud n yimsiwel" + }, + "startupoverlay": { + "genericTitle": "Timlilit tesra aseqdec n usawaḍ d tkamiṛat inek·inem.", + "policyText": " ", + "title": "{{app}} yesra ad yesseqdec asawaḍ d tkamiṛat-inek·inem." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Kcem", + "text": "Sit deg taqeffalt Kcem akken ad teqqneḍ.", + "title": "Asiwel-inek s uvidyu yettwaseḥbes acku aselkim-agi igen." + }, + "toolbar": { + "Settings": "Iɣewwaren", + "accessibilityLabel": { + "Settings": "Sken/Fneẓ iɣewwaren", + "audioOnly": "Rmed/Sens imesli kan", + "audioRoute": "Fren ibenk n yimesli", + "boo": "Boo", + "callQuality": "Sefrek taɣara n tvidyut", + "cc": "Ffer/Sken iduzwilen", + "chat": "Ffer/Sken asfaylu n udiwenni", + "clap": "Aṣeffaq", + "collapse": "Ḍfes", + "document": "Ldi / Mdel isemli yettwabḍan", + "download": "Sali-d isnasen-nneɣ", + "embedMeeting": "Sleɣ timlilit", + "expand": "Développer", + "feedback": "Eǧǧ tamuɣli", + "fullScreen": "Ɛeddi ɣer ugdil aččuran", + "grantModerator": "Mudd tisirag n usektem", + "hangup": "Eǧǧ asiwel", + "help": "Tallelt", + "invite": "Snubget imdanen", + "kick": "Suffeɣ amttekki", + "laugh": "Taḍsa", + "like": "Adebbuz d asawen", + "lobbyButton": "Rmed/sens askar Lobby", + "localRecording": "Ɛeddi ɣer yisenqaden n usekles adigan", + "lockRoom": "Snefli awal uffir n temlilit", + "moreActions": "Ldi/mdel umuɣ n wugar n tigawin", + "moreActionsMenu": "Umuɣ n wugar n tigawin", + "moreOptions": "Sken ugar n textiṛiyin", + "mute": "Rmed/Sens ameslaw", + "muteEveryone": "Sgugem yal yiwen", + "muteEveryoneElse": "Sgugem-iten i meṛṛa", + "muteEveryoneElsesVideo": "Sens tavidyut n yal yiwen", + "muteEveryonesVideo": "Sens tavidyut n yal yiwen", + "participants": "Imttekkiyen", + "pip": "Rmed/Sens askar tugna deg tugna", + "privateMessage": "Azen izen uslig", + "profile": "Ẓreg amaɣnu-ik", + "raiseHand": "Seqluqel afus yettwarefden", + "reactionsMenu": "Ldi / Mdel umuɣ n tsedmirin", + "recording": "Rmed/Sens asekles", + "remoteMute": "Sgugem imttekki", + "remoteVideoMute": "Sens takamiṛat n yimttekki", + "security": "Tixtiṛiyin n tɣellist", + "selectBackground": "Fren agilal", + "shareRoom": "Snubget-d albaɛḍ", + "shareYourScreen": "Rmed/Sens beṭṭu n ugdil", + "shareaudio": "Bḍu ameslaw", + "sharedvideo": "Rmed/Sens beṭṭu n tvidyut", + "shortcuts": "Rmed/Sens inegzumen", + "show": "Sken ɣef usayes", + "silence": "Tasusmi", + "speakerStats": "Sken/Ffer tiddadanin n yimsiwel", + "surprised": "Awham", + "tileView": "Err askan d aɛban", + "toggleCamera": "Rmed/sens takamiṛat", + "toggleFilmstrip": "Sken/Ffer tilemyin", + "videoblur": "Rmed/Sens arway n tvidyut", + "videomute": "Rmed/Sens tavidyut" + }, + "addPeople": "Rnu-d imdanen ɣer usiwel-inek·inem", + "audioOnlyOff": "Sens askar n tehri n tesfift adday", + "audioOnlyOn": "Rmed askar n tehri n tesfift adday", + "audioRoute": "Fren ibenk n yimesli", + "audioSettings": "Iɣewwaren n umeslaw", + "authenticate": "Sesteb", + "boo": "Boo", + "callQuality": "Sefrek taɣara n tvidyut", + "chat": "Ldi / Mdel asqerdec", + "clap": "Aṣeffaq", + "closeChat": "Mdel asqerdec", + "closeReactionsMenu": "Mdel umuɣ n tsedmirin", + "disableReactionSounds": "Tzemreḍ ad tsenseḍ imesliyen n tsedmirt i temlilit-a", + "documentClose": "Mdel isemli yettwabḍan", + "documentOpen": "Ldi isemli yettwabḍan", + "download": "Sali-d isnasen-nneɣ", + "e2ee": "Awgelhen seg yixef ɣer yixef", + "embedMeeting": "Sleɣ timlilit", + "enterFullScreen": "Wali agdil aččuran", + "enterTileView": "Kcem ɣer uskan aɛban", + "exitFullScreen": "Ffeɣ seg ugdil aččuran", + "exitTileView": "Ffeɣ seg uskan aɛban", + "feedback": "Eǧǧ tamuɣli", + "hangup": "Eǧǧ", + "help": "Tallelt", + "invite": "Snubget imdanen", + "laugh": "Taḍsa", + "like": "Adebbuz d asawen", + "lobbyButtonDisable": "Sens askar Lobby", + "lobbyButtonEnable": "Rmed askar Lobby", + "login": "Qqen", + "logout": "Tufɣa", + "lowerYourHand": "Ṣubb afus-ik·im", + "moreActions": "Ugar n tigawin", + "moreOptions": "Ugar n textiṛiyin", + "mute": "Sgugem / Kkes tagugmi", + "muteEveryone": "Sgugem yal yiwen", + "muteEveryonesVideo": "Sens takamiṛat n yal yiwen", + "noAudioSignalDesc": "Ma yella ur tɛemmdeḍ ara asensi-ines seg yiɣewwaren n unagraw neɣ n warrum, muqel ad tbeddleḍ ibenk.", + "noAudioSignalDescSuggestion": "Ma yella ur tɛemmdeḍ ara asensi-ines seg yiɣewwaren n unagraw neɣ n warrum, muqel ad tbeddleḍ ibenk i d-yettwasumren.", + "noAudioSignalDialInDesc": "Tzemreḍ daɣen ad teqqneḍ s useqde n:", + "noAudioSignalDialInLinkDesc": "Uṭṭunen n unekcum", + "noAudioSignalTitle": "Ulac akk anekcum i d-yekkan seg usawaḍ-inek·inem!", + "noisyAudioInputDesc": "La d-yettban usawaḍ-inek·inem yesɛa zzhir, ma ulac aɣimif muqel ad tesgugmeḍ neɣ ad tesnifleḍ ibenk.", + "noisyAudioInputTitle": "Asawad-ik·im yettban-d deg-s zzhir!", + "openChat": "Ldi asqerdec", + "openReactionsMenu": "Ldi umuɣ n tsedmirin", + "participants": "Imttekkiyen", + "pip": "Kcem ɣer uskar tugna deg tugna", + "privateMessage": "Azen izen uslig", + "profile": "Ẓreg amaɣnu-ik", + "raiseHand": "Sali / Ṣubb afus-ik·im", + "raiseYourHand": "Rfed afus-ik·im", + "reactionBoo": "Azen tasedmirt n boo", + "reactionClap": "Azen tasedmirt n useffaq", + "reactionLaugh": "Azen tasedmert n teḍsa", + "reactionLike": "Azen tasedmert n udebbuz d asawen", + "reactionSilence": "Azen tasedmirt n tsusmi", + "reactionSurprised": "Azen tasedmirt n ubati", + "security": "Tixtiṛiyin n tɣellist", + "selectBackground": "Fren agilal", + "shareRoom": "Snubget-d albaɛḍ", + "shareaudio": "Bḍu ameslaw", + "sharedvideo": "Bḍu tavidyut", + "shortcuts": "Wali inegzumen", + "silence": "Tasusmi", + "speakerStats": "Addad n yimsiwlen", + "startScreenSharing": "Bdu beṭṭu n ugdil", + "startSubtitles": "Bdu iduzwilen", + "stopAudioSharing": "Seḥbes beṭṭu n umeslaw", + "stopScreenSharing": "Seḥbes beṭṭu n ugdil", + "stopSharedVideo": "Seḥbes tavidyut", + "stopSubtitles": "Seḥbes iduzwilen", + "surprised": "Awham", + "talkWhileMutedPopup": "Tettaɛraḍeḍ ad d-temmeslayeḍ? Tettwasgugmeḍ.", + "tileViewToggle": "Err askan d aɛban", + "toggleCamera": "Rmed/sens takamiṛat", + "videoSettings": "Iɣewwaren n tvidyut", + "videomute": "Seqleɛ / Seḥbes takamirat" + }, + "transcribing": { + "ccButtonTooltip": "Bdu / Seḥbes izwal isnawanen", + "error": "Ur yeddi ara useskel. Ɛreḍ tikkelt-nniḍen.", + "expandedLabel": "Aseskel iteddu akka tura", + "failedToStart": "Aseskel yegguma ad yebdu", + "labelToolTip": "Timlilit ha-tt-an la tettwaseskal", + "off": "Aseskel yettwaḥbes", + "pending": "Aheyyi i useskel n temlilit…", + "start": "Bdu askan n yizwal isnawanen", + "stop": "Seḥbes askan n yiduzwilen", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Ttxil-k efk-d tasiregt n beṭṭu n tkamiṛat d umikṛufun-ik." + }, + "videoSIPGW": { + "busy": "Aql-aɣ nxeddem ad d-neslelli tiɣbula. Ma ulac aɣilif, ɛreḍ tikkelt-nniḍen deg kra n tesdidin.", + "busyTitle": "Ameẓlu n texxamt yecɣel akka tura", + "errorAlreadyInvited": "{{displayName}} yettwanced-d yakan", + "errorInvite": "Asarag mazal ur yeqɛid ara akka tura. Ttxil-k·m ɛreḍ tikkelt-nniḍen ticki.", + "errorInviteFailed": "Aql-aɣ nxeddem ad nefru ugur-a. Ma ulac aɣilif, ɛreḍ tikkelt-nniḍen ticki.", + "errorInviteFailedTitle": "Asnubget n {{displayName}} ur yeddi ara", + "errorInviteTitle": "Tuccḍa deg usnubget n texxamt", + "pending": "{{displayName}} yettwanced-d" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Aql-ak·akem deg uskar n tehri n tesfift taddayt. Deg uskar-a ad d-tremseḍ kan ameslaw d beṭṭu n ugdil.", + "callQuality": "Taɣara n tvidyut", + "hd": "HD", + "hdTooltip": "Awali n tvidyut n tbadut tafellayt", + "highDefinition": "Tabadut tafellayt", + "labelTooiltipNoVideo": "Ulac tavidyut", + "labelTooltipAudioOnly": "Askar n tehri n tesfift adday yermed", + "ld": "LD", + "ldTooltip": "Awali n tvidyut n tbadut taddayt", + "lowDefinition": "Tabadut taddayt", + "sd": "SD", + "sdTooltip": "Awali n tvidyut s tbadut taslugant", + "standardDefinition": "Tabadut taslugant" + }, + "videothumbnail": { + "connectionInfo": "Talɣut n tuqqna", + "domute": "Kkes imesli", + "domuteOthers": "Sgugem-iten i meṛṛa", + "domuteVideo": "Sens takamiṛat", + "domuteVideoOfOthers": "Sens takamiṛat n yal yiwen", + "flip": "Tuttya", + "grantModerator": "Mudd tisirag n usektem", + "kick": "Suffeɣ", + "moderator": "Aseɣyad", + "mute": "Imttekki yettwasgugem", + "muted": "Yettwasgugem", + "remoteControl": "Bdu / Asenqed agemmaḍ", + "show": "Sken ɣef usayes", + "videoMuted": "Tensa tkamiṛat", + "videomute": "Imttekki isseḥbes takamiṛat" + }, + "virtualBackground": { + "addBackground": "Rnu agilal", + "apply": "Snes", + "backgroundEffectError": "Asnes n yisemda n ugilal yecceḍ.", + "blur": "Aluɣu", + "deleteImage": "Kkes tugna", + "desktopShare": "Bḍu tanarit", + "desktopShareError": "Ur izmir ara ad ibḍu tanarit", + "image1": "Taftist", + "image2": "Aɣrab acebḥan arawsan", + "image3": "Taxxamt tacebḥant tilemt", + "image4": "Taftilt n wannag aberkan", + "image5": "Adrar", + "image6": "Tiẓgi ", + "image7": "Alluy n yiṭṭij", + "none": "Ula d yiwen", + "pleaseWait": "Ttxil-k rǧu…", + "removeBackground": "Kkes agilal", + "slightBlur": "Cwiṭ n uluɣu", + "title": "Igilalen uhlisen", + "uploadedImage": "Sali-d tugna {{index}}", + "webAssemblyWarning": "WebAssembly ur yettusefrak ara" + }, + "volumeSlider": "Tigri n ubleɣ", + "welcomepage": { + "accessibilityLabel": { + "join": "Sit i wakken ad ternuḍ", + "roomname": "Sekcem-d isem n tzeqqa" + }, + "addMeetingName": "Rnu isem n temlilit", + "appDescription": "Aha bdu, adiwenni s tvidyut d terbaɛt meṛṛa. Ihi, nced-d wid akk i tessneḍ. {{app}} d tifrat n usarag s tvidyut yettwawgelhen s lekmal, 100% n uɣbalu yeldin i tzemreḍ ad tesqedceḍ ass kamel, yal ass, baṭel - war ma tesriḍ kra n umiḍan.", + "audioVideoSwitch": { + "audio": "Taɣect", + "video": "Tavidyut" + }, + "calendar": "Awitay", + "connectCalendarButton": "Qqen awitay-inek·im", + "connectCalendarText": "Qqen awitay-inek·inem i wakken ad twaliḍ meṛṛa timliliyin-inek·inem deg {{app}}. Daɣen, rnu timliliyin {{provider}} ɣer uwitay-inek·inem syen senker-itent s yiwen n usiti.", + "enterRoomTitle": "Bdu timlilit tamaynut", + "getHelp": "Awi tallalt", + "go": "DDU", + "goSmall": "Ddu", + "headerSubtitle": "Timliliyin n tɣellist d tɣara meqqren", + "headerTitle": "Jitsi Meet", + "info": "Talɣut", + "jitsiOnMobile": "Jitsi ɣef uziraz - sader isnasen-nneɣ syen tebduḍ timlilit seg wanda i tebɣiḍ", + "join": "SNULFU-D / KCEM", + "logo": { + "calendar": "Alugu n umitay", + "desktopPreviewThumbnail": "Tanfult n teskant n tnarit", + "googleLogo": "Alugu n Google", + "logoDeepLinking": "Alugu Jitsi Meet", + "microsoftLogo": "Alugu n Microsoft", + "policyLogo": "Alugu n tsertit" + }, + "mobileDownLoadLinkAndroid": "Sader asnas n uziraz i Android", + "mobileDownLoadLinkFDroid": "Sader asnas n uziraz i F-Droid", + "mobileDownLoadLinkIos": "Sader asnas n uziraz i iOS", + "moderatedMessage": "Neɣ ḥerr zik URL n temlilit anida i telliḍ d kečč kan i d imḍebber.", + "privacy": "Tabaḍnit", + "recentList": "Melmi kan", + "recentListDelete": "Kkes", + "recentListEmpty": "Tabdart-ik·im tamirant d tilemt akka tura. Mmeslay d terbaɛt-ik·im rnu ad tafeḍ akk timliliyin timiranin da.", + "reducedUIText": "Ansuf ɣer {{app}}!", + "roomNameAllowedChars": "Isem n temlilit ur ilaq ara ad ilin deg-s isekkilen-a: ?, &, :, ', \", %, #.", + "roomname": "Sekcem-d isem n tzeqqa", + "roomnameHint": "Sekcem isem neɣ URL n texxamt wuɣur tebɣiḍ ad tedduḍ. Tzemreḍ ad tgeḍ isem, eǧǧ kan imdanen ara temlileḍ ad t-isinen iwakken ad skecmen yiwen n yisem.", + "sendFeedback": "Azen takti-inek·inem", + "startMeeting": "Bdu timlilit", + "terms": "Tiwtilin", + "title": "Asarag s tvidyut d aɣelsan, d ummid yerna baṭel" + } +} diff --git a/lang/main-ko.json b/lang/main-ko.json new file mode 100644 index 0000000..ef7a728 --- /dev/null +++ b/lang/main-ko.json @@ -0,0 +1,1581 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "회의 링크: {{url}}" + }, + "add": "초대", + "addContacts": "연락처로 초대하세요", + "contacts": "연락처", + "copyInvite": "회의 초대 복사", + "copyLink": "회의 링크 복사", + "copyStream": "라이브 스트리밍 링크 복사", + "countryNotSupported": "아직 해당 지역을 지원하지 않습니다.", + "countryReminder": "미국 이외의 지역으로 전화하시겠습니까? 국가 번호로 시작해야합니다!", + "defaultEmail": "기본 이메일", + "disabled": "사람들을 초대 할 수 없습니다.", + "failedToAdd": "참가자를 추가하지 못했습니다.", + "googleEmail": "Google 이메일", + "inviteMoreHeader": "회의에 혼자 참여하고 있습니다.", + "inviteMoreMailSubject": "{{appName}} 회의에 참여하세요", + "inviteMorePrompt": "더 많은 사람을 초대하세요", + "linkCopied": "링크가 클립보드에 복사되었습니다.", + "noResults": "일치하는 검색 결과 없음", + "outlookEmail": "Outlook 이메일", + "phoneNumbers": "전화번호", + "searching": "검색 중…", + "shareInvite": "회의 초대 공유", + "shareLink": "다른 사람을 초대하려면 회의 링크를 공유하세요.", + "shareStream": "라이브 스트리밍 링크 공유", + "sipAddresses": "SIP 주소", + "telephone": "전화: {{number}}", + "title": "이 회의에 사람들을 초대하십시오", + "yahooEmail": "Yahoo 이메일" + }, + "audioDevices": { + "bluetooth": "블루투스", + "car": "자동차 오디오", + "headphones": "헤드폰", + "none": "사용 가능한 오디오 장치가 없습니다.", + "phone": "폰", + "speaker": "스피커" + }, + "audioOnly": { + "audioOnly": "음성 전용" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "예: 10000000 (10 Mbps)", + "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 링크를 추가 하시겠습니까?", + "error": { + "appConfiguration": "캘린더가 제대로 구성되지 않았습니다.", + "generic": "오류가 발생했습니다. 캘린더 설정을 확인하거나 캘린더를 새로 고침 해보세요.", + "notSignedIn": "캘린더 이벤트를 보기 위해 인증하는 동안 오류가 발생했습니다. 캘린더 설정을 확인하고 다시 로그인하십시오." + }, + "join": "참여", + "joinTooltip": "회의에 참여하세요", + "nextMeeting": "다음 회의", + "noEvents": "예정된 예정된 이벤트가 없습니다.", + "ongoingMeeting": "진행중인 회의", + "permissionButton": "설정 열기", + "permissionMessage": "앱에 회의를 나열하려면 캘린더 권한이 필요합니다", + "refresh": "캘린더 새로고침", + "today": "오늘" + }, + "carmode": { + "actions": { + "selectSoundDevice": "음성 장치 선택" + }, + "labels": { + "buttonLabel": "자동차 모드", + "title": "자동차 모드", + "videoStopped": "비디오가 중지되었습니다" + } + }, + "chat": { + "enter": "채팅방 입장", + "error": "오류 : 메시지가 전송되지 않았습니다. 이유 : {{error}}", + "fieldPlaceHolder": "메세지를 여기에 입력하세요", + "lobbyChatMessageTo": "로비 채팅 메시지 대상: {{recipient}}", + "message": "메시지", + "messageAccessibleTitle": "{{user}}님이 말합니다:", + "messageAccessibleTitleMe": "내가 말합니다:", + "messageTo": "{{recipient}}에게 보내는 비공개 메시지", + "messagebox": "메시지 입력", + "newMessages": "새 메시지", + "nickname": { + "popover": "닉네임을 선택하세요", + "title": "채팅에서 사용할 닉네임을 입력하세요", + "titleWithPolls": "채팅에서 사용할 닉네임을 입력하세요" + }, + "noMessagesMessage": "아직 회의에 메시지가 없습니다. 여기서 대화를 시작하세요!", + "privateNotice": "{{recipient}}에게 보내는 비공개 메시지", + "sendButton": "전송", + "smileysPanel": "이모지 패널", + "systemDisplayName": "시스템", + "tabs": { + "chat": "채팅", + "polls": "투표" + }, + "title": "채팅", + "titleWithPolls": "채팅", + "you": "당신" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome 확장 프로그램을 설치합니다.", + "buttonTextEdge": "Edge 확장 프로그램 설치", + "close": "닫기", + "dontShowAgain": "다시 보지 않기", + "installExtensionText": "Google 캘린더 및 Office 365 확장 프로그램을 설치합니다." + }, + "connectingOverlay": { + "joiningRoom": "회의에 연결중…" + }, + "connection": { + "ATTACHED": "첨부", + "AUTHENTICATING": "인증중", + "AUTHFAIL": "인증 실패", + "CONNECTED": "연결됨", + "CONNECTING": "연결중", + "CONNFAIL": "연결 실패", + "DISCONNECTED": "연결 끊김", + "DISCONNECTING": "연결 종료중", + "ERROR": "에러", + "FETCH_SESSION_ID": "세션 ID 가져오는 중…", + "GET_SESSION_ID_ERROR": "세션 ID 가져오기 오류 : {{code}}", + "GOT_SESSION_ID": "세션 ID를 가져오는중… 완료", + "LOW_BANDWIDTH": "대역폭을 절약하기 위해 {{displayName}}의 동영상이 중지되었습니다." + }, + "connectionindicator": { + "address": "주소:", + "audio_ssrc": "오디오 SSRC:", + "bandwidth": "예상 대역폭:", + "bitrate": "전송률:", + "bridgeCount": "서버 수: ", + "codecs": "코덱 (A/V): ", + "connectedTo": "연결됨:", + "e2eeVerified": "종단 간 암호화 확인됨:", + "framerate": "프레임 속도:", + "less": "간략히 보기", + "localaddress": "로컬 주소:", + "localaddress_plural": "로컬 주소들:", + "localport": "로컬 포트:", + "localport_plural": "로컬 포트들:", + "maxEnabledResolution": "최대 전송 해상도", + "more": "자세히 보기", + "no": "아니오", + "packetloss": "패킷 손실:", + "participant_id": "참가자 ID:", + "quality": { + "good": "좋음", + "inactive": "비활성", + "lost": "손실됨", + "nonoptimal": "비최적", + "poor": "나쁨" + }, + "remoteaddress": "원격 주소:", + "remoteaddress_plural": "원격 주소들:", + "remoteport": "원격 포트:", + "remoteport_plural": "원격 포트들:", + "resolution": "해상도:", + "savelogs": "로그 저장", + "status": "연결:", + "transport": "전송 방식:", + "transport_plural": "전송 방식들:", + "video_ssrc": "비디오 SSRC:", + "yes": "예" + }, + "dateUtils": { + "earlier": "일찍이", + "today": "오늘", + "yesterday": "어제" + }, + "deepLinking": { + "appNotInstalled": "회의에 참여하려면 모바일 앱 설치가 필요합니다", + "description": "{{app}} 데스크톱 앱에서 회의를 시작했습니다. {{app}} 웹 응용 프로그램에서 다시 시도하거나 실행하십시오.", + "descriptionNew": "설치가 안되었나요? {{app}} 데스크톱 앱에서 회의를 시작하려고 시도했습니다.

다시 시도하거나 웹에서 실행할 수 있습니다.", + "descriptionWithoutWeb": "설치가 안되었나요? {{app}} 데스크톱 앱에서 회의를 시작하려고 시도했습니다.", + "downloadApp": "앱 다운로드", + "downloadMobileApp": "앱 스토어에서 다운로드", + "ifDoNotHaveApp": "앱이 설치되지 않은 경우:", + "ifHaveApp": "앱이 설치되어 있는 경우:", + "joinInApp": "앱을 사용하여 회의에 참여하세요.", + "joinInAppNew": "앱에서 참여하기", + "joinInBrowser": "브라우저에서 참여하기", + "launchMeetingLabel": "이 회의에 어떻게 참여하시겠습니까?", + "launchWebButton": "웹에서 실행", + "noDesktopApp": "앱이 없으신가요?", + "noMobileApp": "앱이 없으신가요?", + "or": "또는", + "termsAndConditions": "계속하면 이용 약관에 동의하게 됩니다.", + "title": "{{app}}에서 회의 시작…", + "titleNew": "회의를 시작하는 중...", + "tryAgainButton": "데스크톱에서 다시 시도하십시오", + "unsupportedBrowser": "지원하지 않는 브라우저를 사용 중인 것 같습니다." + }, + "defaultLink": "예: {{url}}", + "defaultNickname": "예: 홍길동", + "deviceError": { + "cameraError": "카메라에 액세스하지 못했습니다", + "cameraPermission": "카메라 권한을 얻는 중 오류가 발생했습니다", + "microphoneError": "마이크에 액세스하지 못했습니다", + "microphonePermission": "마이크 권한을 얻는 중 오류가 발생했습니다" + }, + "deviceSelection": { + "hid": { + "callControl": "통화 제어", + "connectedDevices": "연결된 장치:", + "deleteDevice": "장치 삭제", + "pairDevice": "장치 연결" + }, + "noPermission": "허가 거부", + "previewUnavailable": "미리보기를 사용할 수 없음", + "selectADevice": "장치 선택", + "testAudio": "테스트 사운드 재생" + }, + "dialIn": { + "screenTitle": "전화 접속 요약" + }, + "dialOut": { + "statusMessage": "현재 상태: {{status}}" + }, + "dialog": { + "Back": "뒤로가기", + "Cancel": "취소", + "IamHost": "내가 호스트", + "Ok": "확인", + "Remove": "제거", + "Share": "공유", + "Submit": "제출", + "WaitForHostMsg": "회의가 시작되지 않았습니다. 호스트인 경우 인증하십시오. 그렇지 않으면 호스트가 도착할 때까지 기다리십시오.", + "WaitForHostNoAuthMsg": "회의가 시작되지 않았습니다. 호스트가 도착할 때까지 기다리십시오.", + "WaitingForHostButton": "호스트를 기다립니다", + "WaitingForHostTitle": "호스트를 기다리는 중…", + "Yes": "예", + "accessibilityLabel": { + "Cancel": "취소 (대화 상자 나가기)", + "Ok": "확인 (저장하고 대화 상자 나가기)", + "close": "대화 상자 닫기", + "liveStreaming": "실시간 스트리밍:", + "sharingTabs": "공유 옵션" + }, + "add": "추가", + "addMeetingNote": "회의 노트 추가", + "addOptionalNote": "노트 추가 (선택사항):", + "allow": "허락", + "allowToggleCameraDialog": "{{initiatorName}}에게 카메라 전환을 허용하시겠습니까?", + "allowToggleCameraTitle": "카메라 전환 허용?", + "alreadySharedVideoMsg": "다른 참가자가 이미 비디오를 공유하고 있습니다. 한 번에 하나의 비디오만 공유 가능합니다.", + "alreadySharedVideoTitle": "비디오 공유는 한 번에 하나만 허용됩니다", + "applicationWindow": "응용 프로그램 창", + "authenticationRequired": "인증이 필요합니다", + "cameraConstraintFailedError": "카메라가 필요한 제약 조건을 충족하지 못했습니다", + "cameraNotFoundError": "카메라를 찾을 수 없습니다", + "cameraNotSendingData": "카메라에 액세스 할 수 없습니다. 다른 응용 프로그램이 장치를 사용하고 있는지 확인한 후 설정 메뉴에서 다른 장치를 선택하거나 응용 프로그램을 다시 로드하십시오.", + "cameraNotSendingDataTitle": "카메라에 액세스 할 수 없습니다", + "cameraPermissionDeniedError": "카메라 사용 권한이 부여되지 않았습니다. 회의에 계속 참여할 수 있지만 다른 참가자는 귀하를 볼 수 없습니다. 검색 주소창의 카메라 버튼을 사용하여 문제를 해결하십시오.", + "cameraTimeoutError": "비디오 소스를 시작할 수 없습니다. 시간 초과가 발생했습니다!", + "cameraUnknownError": "알 수 없는 이유로 카메라를 사용할 수 없습니다", + "cameraUnsupportedResolutionError": "카메라가 필요한 비디오 해상도를 지원하지 않습니다", + "close": "닫기", + "conferenceDisconnectMsg": "네트워크 연결을 확인하고 있습니다. {{seconds}} 초 내에 다시 연결중입니다…", + "conferenceDisconnectTitle": "연결이 끊어졌습니다.", + "conferenceReloadMsg": "문제를 해결하려고 노력하고 있습니다. {{seconds}} 초 안에 다시 연결중입니다.", + "conferenceReloadTitle": "불행하게도 문제가 발생했습니다", + "confirm": "확인", + "confirmNo": "아니요", + "confirmYes": "예", + "connectError": "죄송합니다. 문제가 발생하여 회의에 연결할 수 없습니다", + "connectErrorWithMsg": "죄송합니다. 문제가 발생하여 회의에 연결할 수 없습니다: {{msg}}", + "connecting": "연결중", + "contactSupport": "지원 연락처", + "copied": "복사됨", + "copy": "복사", + "demoteParticipantDialog": "이 참가자를 방문자로 이동시키겠습니까?", + "demoteParticipantTitle": "방문자로 이동", + "dismiss": "닫기", + "displayNameRequired": "당신의 이름은 무엇입니까?", + "done": "완료", + "e2eeDescription": "종단 간 암호화는 현재 실험적입니다. 종단 간 암호화를 켜면 전화 참여와 같은 서버 제공 서비스가 비활성화됩니다. 또한 이 회의는 insertable streams을 지원하는 브라우저에서만 작동합니다.", + "e2eeDisabledDueToMaxModeDescription": "참가자가 너무 많아서 종단 간 암호화를 활성화할 수 없습니다.", + "e2eeLabel": "종단 간 암호화 활성화", + "e2eeWarning": "경고: 이 회의의 모든 참가자가 종단 간 암호화를 지원하는 것 같지 않습니다. 활성화하면 그들은 귀하를 볼 수 없거나 들을 수 없습니다.", + "e2eeWillDisableDueToMaxModeDescription": "경고: 더 많은 참가자가 회의에 참여하면 종단 간 암호화가 자동으로 비활성화됩니다.", + "embedMeeting": "회의 삽입", + "enterDisplayName": "당신의 이름을 입력해주세요.", + "error": "에러", + "errorRoomCreationRestriction": "너무 빠르게 시도했습니다. 잠시 후 다시 시도해 주세요.", + "gracefulShutdown": "서비스가 현재 유지 관리를 위해 중단되었습니다. 나중에 다시 시도 해주십시오.", + "grantModeratorDialog": "이 참가자({{participantName}})에게 중재자 권한을 부여하시겠습니까?", + "grantModeratorTitle": "중재자 권한 부여", + "hide": "숨기기", + "hideShareAudioHelper": "이 대화 상자를 다시 표시하지 않음", + "incorrectPassword": "잘못된 사용자 이름 또는 비밀번호", + "incorrectRoomLockPassword": "잘못된 비밀번호", + "internalError": "죄송합니다. 문제가 발생하여 회의에 연결할 수 없습니다: {{error}}", + "internalErrorTitle": "내부 에러", + "kickMessage": "자세한 내용은 {{participantDisplayName}}에 문의하세요.", + "kickParticipantButton": "추방", + "kickParticipantDialog": "이 참가자를 정말 추방 하시겠습니까?", + "kickParticipantTitle": "이 참가자를 추방 하시겠습니까?", + "kickTitle": "{{participantDisplayName}} 님이 회의에서 퇴장했습니다.", + "linkMeeting": "회의 연결", + "linkMeetingTitle": "회의를 Salesforce에 연결", + "liveStreaming": "실시간 스트리밍", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "녹화 중에는 사용할 수 없습니다", + "localUserControls": "로컬 사용자 컨트롤", + "lockMessage": "회의를 비공개하지 못했습니다", + "lockRoom": "회의 추가 $t(lockRoomPasswordUppercase)", + "lockTitle": "비공개 실패", + "login": "로그인", + "loginQuestion": "로그인하고 회의를 떠나시겠습니까?", + "logoutQuestion": "로그아웃하고 컨퍼런스를 중지하시겠습니까?", + "logoutTitle": "로그아웃", + "maxUsersLimitReached": "회의의 최대 참가자 수에 도달했습니다. 회의 소유자에게 연락하거나 나중에 다시 시도하십시오!", + "maxUsersLimitReachedTitle": "최대 참가자 수에 도달했습니다.", + "micConstraintFailedError": "마이크가 필요한 제약 조건 중 일부를 충족하지 못합니다", + "micNotFoundError": "마이크를 찾을 수 없습니다", + "micNotSendingData": "컴퓨터의 설정으로 이동하여 마이크 음소거를 해제하고 레벨을 조정하세요.", + "micNotSendingDataTitle": "시스템 설정에 의해 마이크가 음소거되었습니다.", + "micPermissionDeniedError": "마이크를 사용할 수있는 권한을 부여하지 않았습니다. 회의에 계속 참여할 수는 있지만 다른 사람들은 듣지 않습니다. 검색 주소창의 카메라 버튼을 사용하여 문제를 해결하십시오.", + "micTimeoutError": "오디오 소스를 시작할 수 없습니다. 시간 초과가 발생했습니다!", + "micUnknownError": "알 수 없는 이유로 마이크를 사용할 수 없습니다", + "moderationAudioLabel": "참가자가 스스로 음소거 해제 허용", + "moderationVideoLabel": "참가자가 자신의 비디오 시작 허용", + "muteEveryoneDialog": "모든 참가자를 음소거 하시겠습니까? 당신이 다른 사람들의 음소거를 해제 할 수는 없지만 언제든지 다른 사람들은 스스로 음소거를 해제할 수 있습니다.", + "muteEveryoneDialogModerationOn": "참가자는 언제든지 발언 요청을 보낼 수 있습니다.", + "muteEveryoneElseDialog": "당신이 다른 사람들의 음소거를 해제 할 수는 없지만 언제든지 다른 사람들은 스스로 음소거를 해제할 수 있습니다.", + "muteEveryoneElseTitle": "{{whom}}을(를) 제외하고 전부 음소거 하시겠습니까?", + "muteEveryoneElsesVideoDialog": "당신이 다른 사람들의 카메라를 다시 켤 수는 없지만 언제든지 다른 사람들은 스스로 카메라를 켤 수 있습니다.", + "muteEveryoneElsesVideoTitle": "{{whom}}을(를) 제외하고 전부 카메라를 비활성화 하시겠습니까?", + "muteEveryoneSelf": "당신 자신", + "muteEveryoneStartMuted": "지금부터 모두 음소거 됩니다.", + "muteEveryoneTitle": "모두 음소거 하시겠습니까?", + "muteEveryonesVideoDialog": "모든 참가자의 카메라를 비활성화 하시겠습니까? 당신이 다른 사람들의 카메라를 다시 켤 수는 없지만 언제든지 다른 사람들은 스스로 카메라를 켤 수 있습니다.", + "muteEveryonesVideoDialogModerationOn": "참가자는 언제든지 비디오를 켜기 위한 요청을 보낼 수 있습니다.", + "muteEveryonesVideoDialogOk": "비활성화", + "muteEveryonesVideoTitle": "모든 카메라를 비활성화 하시겠습니까?", + "muteParticipantBody": "당신이 다른 사람들의 음소거를 해제 할 수는 없지만 언제든지 다른 사람들은 스스로 음소거를 해제할 수 있습니다.", + "muteParticipantButton": "음소거", + "muteParticipantsVideoBody": "당신이 다른 사람들의 카메라를 다시 켤 수는 없지만 언제든지 다른 사람들은 스스로 카메라를 켤 수 있습니다.", + "muteParticipantsVideoBodyModerationOn": "당신은 카메라를 다시 켤 수 없으며 그들도 마찬가지입니다.", + "muteParticipantsVideoButton": "카메라 비활성화", + "muteParticipantsVideoDialog": "이 참가자의 카메라를 끄시겠습니까? 당신은 카메라를 다시 켤 수 없지만, 그들은 언제든지 다시 켤 수 있습니다.", + "muteParticipantsVideoDialogModerationOn": "이 참가자의 카메라를 끄시겠습니까? 당신은 카메라를 다시 켤 수 없으며 그들도 마찬가지입니다.", + "muteParticipantsVideoTitle": "이 참가자의 카메라를 비활성화 하시겠습니까?", + "noDropboxToken": "유효한 Dropbox 토큰이 없습니다", + "password": "비밀번호", + "passwordLabel": "잠긴 회의입니다. 회의에 참여하려면 비밀번호를 입력하세요.", + "passwordNotSupported": "회의 비밀번호 설정은 지원되지 않습니다", + "passwordNotSupportedTitle": "비밀번호 미지원", + "passwordRequired": "비밀번호 필수", + "permissionCameraRequiredError": "비디오로 회의에 참여하려면 카메라 권한이 필요합니다. 설정에서 허용하십시오", + "permissionErrorTitle": "권한 필요", + "permissionMicRequiredError": "오디오로 회의에 참여하려면 마이크 권한이 필요합니다. 설정에서 허용하십시오", + "readMore": "더보기", + "recentlyUsedObjects": "최근에 사용한 객체", + "recording": "녹화", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "라이브 스트리밍이 활성화되어 있는 동안에는 사용할 수 없습니다", + "rejoinNow": "지금 재가입", + "remoteControlAllowedMessage": "{{user}}이(가) 원격 제어 요청을 수락했습니다", + "remoteControlDeniedMessage": "{{user}}이(가) 원격 제어 요청을 거부했습니다", + "remoteControlErrorMessage": "{{user}}로부터 원격 제어 권한을 요청하는 동안 오류가 발생했습니다", + "remoteControlRequestMessage": "{{user}}에게 당신의 데스크탑을 원격 제어하도록 허용하시겠습니까?", + "remoteControlShareScreenWarning": "\"허락\"을 누르면 화면을 공유합니다", + "remoteControlStopMessage": "원격 제어 세션이 종료되었습니다", + "remoteControlTitle": "원격 데스크탑 컨트롤", + "remoteUserControls": "{{username}}의 원격 사용자 컨트롤", + "removePassword": "비밀번호 제거", + "removeSharedVideoMsg": "공유한 동영상을 삭제하시겠습니까?", + "removeSharedVideoTitle": "공유된 동영상 삭제", + "renameBreakoutRoomLabel": "방 이름", + "renameBreakoutRoomTitle": "분할 회의실 이름 변경", + "reservationError": "예약 시스템 오류", + "reservationErrorMsg": "오류 코드: {{code}}, 메시지: {{msg}}", + "retry": "재시도", + "screenSharingAudio": "오디오 공유", + "screenSharingFailed": "죄송합니다! 문제가 발생하여 화면 공유를 시작할 수 없었습니다!", + "screenSharingFailedTitle": "화면 공유 실패!", + "screenSharingPermissionDeniedError": "죄송합니다. 화면 공유 확장 권한으로 문제가 발생했습니다. 다시 로드하고 재시도하십시오.", + "searchInSalesforce": "Salesforce에서 검색", + "searchResults": "검색 결과({{count}})", + "searchResultsDetailsError": "소유자 데이터를 검색하는 동안 문제가 발생했습니다.", + "searchResultsError": "데이터를 검색하는 동안 문제가 발생했습니다.", + "searchResultsNotFound": "검색 결과를 찾을 수 없습니다.", + "searchResultsTryAgain": "대체 키워드를 사용해보세요.", + "sendPrivateMessage": "최근에 비공개 메시지를 받았습니다. 비공개로 답장을 보내시겠습니까, 아니면 그룹에 메시지를 보내시겠습니까?", + "sendPrivateMessageCancel": "그룹에 보내기", + "sendPrivateMessageOk": "비공개로 보내기", + "sendPrivateMessageTitle": "비공개로 보낼까요?", + "serviceUnavailable": "서비스를 사용할 수 없음", + "sessTerminated": "통화 종료", + "sessTerminatedReason": "회의가 종료되었습니다", + "sessionRestarted": "연결 문제로 인해 통화가 재시작되었습니다.", + "shareAudio": "계속", + "shareAudioAltText": "원하는 콘텐츠를 공유하려면 \"브라우저 탭\"으로 이동하여 콘텐츠를 선택하고 \"오디오 공유\" 체크 표시를 활성화한 다음 \"공유\" 버튼을 클릭하십시오", + "shareAudioTitle": "오디오 공유 방법", + "shareAudioWarningD1": "오디오를 공유하기 전에 화면 공유를 중지해야 합니다.", + "shareAudioWarningD2": "화면 공유를 다시 시작하고 \"오디오 공유\" 옵션을 선택해야 합니다.", + "shareAudioWarningH1": "오디오만 공유하려면:", + "shareAudioWarningTitle": "오디오를 공유하기 전에 화면 공유를 중지해야 합니다", + "shareMediaWarningGenericH2": "화면과 오디오를 공유하려면", + "shareScreenWarningD1": "화면을 공유하기 전에 오디오 공유를 중지해야 합니다.", + "shareScreenWarningD2": "오디오 공유를 중지하고 화면 공유를 시작한 다음 \"오디오 공유\" 옵션을 선택해야 합니다.", + "shareScreenWarningH1": "화면만 공유하려면:", + "shareScreenWarningTitle": "화면을 공유하기 전에 오디오 공유를 중지해야 합니다", + "shareVideoConfirmPlay": "외부 웹사이트를 열려고 합니다. 계속하시겠습니까?", + "shareVideoConfirmPlayTitle": "{{name}}님이 동영상을 공유했습니다.", + "shareVideoLinkError": "올바른 YouTube 링크를 제공하십시오", + "shareVideoLinkStopped": "{{name}}님의 동영상이 중지되었습니다.", + "shareVideoTitle": "비디오 공유", + "shareYourScreen": "화면공유", + "shareYourScreenDisabled": "화면 공유가 비활성화 되었습니다.", + "sharedVideoDialogError": "오류: 잘못되었거나 금지된 URL", + "sharedVideoLinkPlaceholder": "YouTube 링크 또는 직접 동영상 링크", + "show": "보이기", + "start": "시작", + "startLiveStreaming": "라이브 스트리밍 시작", + "startRecording": "녹화 시작", + "startRemoteControlErrorMessage": "원격 제어 세션을 시작하는 동안 오류가 발생했습니다", + "stopLiveStreaming": "라이브 스트리밍 종료", + "stopRecording": "녹화 종료", + "stopRecordingWarning": "녹화를 중단하고 싶으십니까?", + "stopStreamingWarning": "라이브 스트리밍을 중단하고 싶으십니까?", + "streamKey": "라이브 스트리밍 키", + "thankYou": "{{appName}}을 이용해 주셔서 감사합니다!", + "token": "토큰", + "tokenAuthFailed": "죄송합니다. 통화에 참여하실 수 없습니다.", + "tokenAuthFailedReason": { + "audInvalid": "잘못된 `aud` 값입니다. `jitsi`여야 합니다.", + "contextNotFound": "`context` 객체가 페이로드에 없습니다.", + "expInvalid": "잘못된 `exp` 값입니다.", + "featureInvalid": "잘못된 기능: {{feature}}, 아직 구현되지 않았을 수 있습니다.", + "featureValueInvalid": "기능의 잘못된 값: {{feature}}.", + "featuresNotFound": "`features` 객체가 페이로드에 없습니다.", + "headerNotFound": "헤더가 없습니다.", + "issInvalid": "잘못된 `iss` 값입니다. `chat`이어야 합니다.", + "kidMismatch": "키 ID(kid)가 sub와 일치하지 않습니다.", + "kidNotFound": "키 ID(kid)가 없습니다.", + "nbfFuture": "`nbf` 값이 미래에 있습니다.", + "nbfInvalid": "잘못된 `nbf` 값입니다.", + "payloadNotFound": "페이로드가 없습니다.", + "tokenExpired": "토큰이 만료되었습니다." + }, + "tokenAuthFailedTitle": "인증 실패", + "tokenAuthFailedWithReasons": "죄송합니다, 이 통화에 참여할 수 없습니다. 가능한 이유: {{reason}}", + "tokenAuthUnsupported": "토큰 URL은 지원되지 않습니다.", + "transcribing": "스크립트 작성 중", + "unlockRoom": "회의 비밀번호 제거", + "user": "사용자", + "userIdentifier": "사용자 식별자", + "userPassword": "사용자 비밀번호", + "verifyParticipantConfirm": "일치합니다", + "verifyParticipantDismiss": "일치하지 않습니다", + "verifyParticipantQuestion": "실험적: 참가자 {{participantName}}에게 동일한 내용이 동일한 순서로 표시되는지 확인하십시오.", + "verifyParticipantTitle": "사용자 확인", + "videoLink": "비디오 링크", + "viewUpgradeOptions": "업그레이드 옵션 보기", + "viewUpgradeOptionsContent": "녹화, 전사, RTMP 스트리밍 등과 같은 프리미엄 기능에 무제한으로 액세스하려면 요금제를 업그레이드해야 합니다.", + "viewUpgradeOptionsTitle": "프리미엄 기능을 발견했습니다!", + "whiteboardLimitContent": "죄송합니다, 동시 화이트보드 사용자 수 한도에 도달했습니다.", + "whiteboardLimitReference": "자세한 내용은", + "whiteboardLimitReferenceUrl": "당사 웹사이트", + "whiteboardLimitTitle": "화이트보드 사용 제한", + "yourEntireScreen": "전체 화면" + }, + "documentSharing": { + "title": "문서 공유" + }, + "e2ee": { + "labelToolTip": "이 통화의 오디오 및 비디오 통신은 종단 간 암호화됩니다" + }, + "embedMeeting": { + "title": "이 회의를 임베드하기" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "귀하의 선택: {{rating}}" + }, + "average": "보통", + "bad": "나쁨", + "detailsLabel": "더 자세히 알려주십시오", + "good": "좋음", + "rateExperience": "회의 경험 평가하기", + "star": "별", + "veryBad": "매우 나쁨", + "veryGood": "매우 좋음" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "비디오 썸네일" + } + }, + "giphy": { + "noResults": "결과를 찾을 수 없습니다 :(", + "search": "GIPHY 검색" + }, + "incomingCall": { + "answer": "응답", + "audioCallTitle": "수신 전화", + "decline": "거절", + "productLabel": "Jitsi Meet에서", + "videoCallTitle": "수신 화상 전화" + }, + "info": { + "accessibilityLabel": "정보 보기", + "addPassword": "$t(lockRoomPassword) 추가", + "cancelPassword": "$t(lockRoomPassword) 취소", + "conferenceURL": "링크:", + "copyNumber": "번호 복사", + "country": "지역", + "dialANumber": "회의에 참여하려면 이 번호 중 하나를 누른 다음 PIN을 입력하십시오.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "죄송합니다. 현재 전화를 걸 수 없습니다.", + "dialInNumber": "전화 접속:", + "dialInSummaryError": "지금 전화 접속 정보를 가져 오는 중에 오류가 발생했습니다. 나중에 다시 시도하십시오.", + "dialInTollFree": "수신자 부담", + "genericError": "일반적인 오류가 발생했습니다", + "inviteLiveStream": "이 회의의 실시간 스트림을 보려면 이 링크를 클릭하십시오: {{url}}", + "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", + "inviteURLSecondPart": "\n회의에 참여하기:\n{{url}}\n", + "label": "회의 정보", + "liveStreamURL": "실시간 스트리밍:", + "moreNumbers": "더 많은 번호", + "noNumbers": "전화 접속 번호 없음", + "noPassword": "없음", + "noRoom": "전화 접속이 가능한 방을 지정하지 않았습니다", + "noWhiteboard": "화이트보드를 로드할 수 없습니다.", + "numbers": "전화 접속 번호", + "password": "비밀번호", + "reachedLimit": "요금제 한도에 도달했습니다.", + "sip": "SIP 주소", + "sipAudioOnly": "SIP 오디오 전용 주소", + "title": "공유", + "tooltip": "링크 공유 및 회의에 대한 정보", + "upgradeOptions": "업그레이드 옵션을 확인하세요", + "whiteboardError": "화이트보드를 로드하는 중 오류가 발생했습니다. 나중에 다시 시도하십시오." + }, + "inlineDialogFailure": { + "msg": "약간의 문제가 있습니다", + "retry": "다시 시도", + "support": "지원", + "supportMsg": "문제가 계속 발생하면 연락하세요" + }, + "inviteDialog": { + "alertText": "일부 참가자를 초대하지 못했습니다.", + "header": "초대", + "searchCallOnlyPlaceholder": "전화 번호 입력", + "searchPeopleOnlyPlaceholder": "참가자 검색", + "searchPlaceholder": "참가자 또는 전화 번호", + "send": "전송" + }, + "jitsiHome": "{{logo}} 로고, 홈페이지 링크", + "keyboardShortcuts": { + "focusLocal": "자신의 동영상에 포커스", + "focusRemote": "다른 발신자의 동영상에 포커스", + "fullScreen": "전체화면 표시 또는 종료", + "giphyMenu": "GIPHY 메뉴 전환", + "keyboardShortcuts": "키보드 단축키", + "localRecording": "로컬 녹화 컨트롤 표시 또는 숨기기", + "mute": "마이크 음소거 또는 음소거 해제", + "pushToTalk": "대화 요청", + "raiseHand": "말하기 요청/해제", + "showSpeakerStats": "접속자 통계 표시", + "toggleChat": "채팅 표시 또는 숨기기", + "toggleFilmstrip": "동영상 표시 또는 숨기기", + "toggleParticipantsPane": "참가자 창 표시 또는 숨기기", + "toggleScreensharing": "카메라와 화면 공유간에 전환", + "toggleShortcuts": "도움말 메뉴 표시 또는 숨기기", + "videoMute": "카메라 시작 또는 중지" + }, + "largeVideo": { + "screenIsShared": "화면을 공유 중입니다", + "showMeWhatImSharing": "내가 공유하는 내용을 보여줘" + }, + "liveStreaming": { + "busy": "스트리밍 자원을 확보하기 위해 노력하고 있습니다. 몇 분 후에 다시 시도하십시오.", + "busyTitle": "모든 스트리머가 현재 사용 중입니다", + "changeSignIn": "계정을 전환하십시오", + "choose": "실시간 스트리밍을 선택하세요", + "chooseCTA": "스트리밍 옵션을 선택하십시오. 현재 {{email}}(으)로 로그인되어 있습니다.", + "enterStreamKey": "YouTube 실시간 스트리밍 키를 입력하십시오", + "error": "실시간 스트리밍에 실패했습니다. 다시 시도하십시오.", + "errorAPI": "YouTube 방송에 액세스하는 중에 오류가 발생했습니다. 다시 로그인하십시오.", + "errorLiveStreamNotEnabled": "{{email}}에 의해 라이브 스트리밍이 활성화되지 않았습니다. 라이브 스트리밍을 활성화하거나 라이브 스트리밍이 활성화된 계정으로 로그인하십시오.", + "expandedOff": "라이브 스트리밍이 중지되었습니다", + "expandedOn": "현재 회의가 YouTube로 스트리밍되고 있습니다.", + "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": "로그아웃", + "signedInAs": "현재 다음 계정으로 로그인되어 있습니다.", + "start": "실시간 스트리밍 시작", + "streamIdHelp": "도움말?", + "title": "실시간 스트리밍", + "unavailableTitle": "실시간 스트리밍을 사용할 수 없음", + "youtubeTerms": "YouTube 서비스 약관" + }, + "lobby": { + "backToKnockModeButton": "참여 요청", + "chat": "채팅", + "dialogTitle": "로비 모드", + "disableDialogContent": "로비 모드가 현재 활성화되어 있습니다. 이 기능은 원치 않는 참가자가 회의에 참여하지 못하도록 보장합니다. 이를 비활성화하시겠습니까?", + "disableDialogSubmit": "비활성화", + "emailField": "이메일 주소를 입력하세요", + "enableDialogPasswordField": "비밀번호 설정 (선택 사항)", + "enableDialogSubmit": "활성화", + "enableDialogText": "로비 모드는 중재자의 승인을 거쳐서만 참가자들이 회의에 입장할 수 있도록 보호합니다.", + "enterPasswordButton": "회의 비밀번호 입력", + "enterPasswordTitle": "회의에 참여하려면 비밀번호를 입력하세요", + "errorMissingPassword": "회의 비밀번호를 입력하세요", + "invalidPassword": "잘못된 비밀번호", + "joinRejectedMessage": "중재자가 귀하의 참여 요청을 거부했습니다.", + "joinRejectedTitle": "참여 요청 거부됨", + "joinTitle": "회의 참여", + "joinWithPasswordMessage": "비밀번호로 참여하려고 시도 중입니다, 잠시만 기다려 주세요…", + "joiningMessage": "중재자가 참여 요청을 승인하면 회의에 참여하게 됩니다.", + "joiningTitle": "회의 참여 요청 중…", + "joiningWithPasswordTitle": "비밀번호로 참여 중…", + "knockButton": "참여 요청", + "knockTitle": "누군가 회의에 참여를 요청했습니다", + "knockingParticipantList": "참여 요청한 참가자 목록", + "lobbyChatStartedNotification": "{{moderator}}가 {{attendee}}와 로비 채팅을 시작했습니다", + "lobbyChatStartedTitle": "{{moderator}}가 당신과 로비 채팅을 시작했습니다.", + "lobbyClosed": "로비 방이 닫혔습니다.", + "nameField": "이름을 입력하세요", + "notificationLobbyAccessDenied": "{{targetParticipantName}}가 {{originParticipantName}}에 의해 참여가 거부되었습니다.", + "notificationLobbyAccessGranted": "{{targetParticipantName}}가 {{originParticipantName}}에 의해 참여가 승인되었습니다.", + "notificationLobbyDisabled": "로비가 {{originParticipantName}}에 의해 비활성화되었습니다.", + "notificationLobbyEnabled": "로비가 {{originParticipantName}}에 의해 활성화되었습니다.", + "notificationTitle": "로비", + "passwordJoinButton": "비밀번호로 참여", + "title": "로비", + "toggleLabel": "로비 활성화" + }, + "localRecording": { + "clientState": { + "off": "꺼짐", + "on": "켜짐", + "unknown": "알 수 없음" + }, + "dialogTitle": "로컬 녹화 컨트롤", + "duration": "기간", + "durationNA": "N/A", + "encoding": "인코딩", + "label": "LOR", + "labelToolTip": "로컬 녹화가 진행 중입니다", + "localRecording": "로컬 녹화", + "me": "나", + "messages": { + "engaged": "로컬 녹화 시작됨.", + "finished": "녹화 세션 {{token}}이 완료되었습니다. 녹화된 파일을 중재자에게 보내주세요.", + "finishedModerator": "녹화 세션 {{token}}이 완료되었습니다. 로컬 트랙의 녹화가 저장되었습니다. 다른 참가자에게 녹화를 제출하도록 요청하세요.", + "notModerator": "당신은 중재자가 아닙니다. 로컬 녹화를 시작하거나 중지할 수 없습니다." + }, + "moderator": "중재자", + "no": "아니요", + "participant": "참가자", + "participantStats": "참가자 통계", + "selectTabTitle": "🎥 녹화를 위해 이 탭을 선택하세요", + "sessionToken": "세션 토큰", + "start": "녹화 시작", + "stop": "녹화 종료", + "stopping": "녹화 중지 중", + "wait": "녹화를 저장하는 동안 기다려 주세요", + "yes": "예" + }, + "lockRoomPassword": "비밀번호", + "lockRoomPasswordUppercase": "비밀번호", + "lonelyMeetingExperience": { + "button": "초대하기", + "youAreAlone": "회의에 참여자가 없습니다." + }, + "me": "나", + "notify": { + "OldElectronAPPTitle": "보안 취약성!", + "allowAction": "허용", + "allowedUnmute": "마이크 음소거 해제, 카메라 시작 또는 화면 공유를 할 수 있습니다.", + "audioUnmuteBlockedDescription": "시스템 제한으로 인해 마이크 음소거 해제 작업이 일시적으로 차단되었습니다.", + "audioUnmuteBlockedTitle": "마이크 음소거 해제 차단됨!", + "chatMessages": "채팅 메시지", + "connectedOneMember": "{{name}}님이 회의에 참여했습니다.", + "connectedThreePlusMembers": "{{name}}님 외 {{count}}명이 회의에 참여했습니다.", + "connectedTwoMembers": "{{first}}님과 {{second}}님이 회의에 참여했습니다.", + "connectionFailed": "연결 실패. 나중에 다시 시도하십시오!", + "dataChannelClosed": "비디오 품질이 저하될 수 있습니다", + "dataChannelClosedDescription": "브리지 채널이 다운되어 비디오 품질이 가장 낮은 설정으로 제한될 수 있습니다.", + "dataChannelClosedDescriptionWithAudio": "브리지 채널이 다운되어 오디오 및 비디오에 장애가 발생할 수 있습니다.", + "dataChannelClosedWithAudio": "오디오 및 비디오 품질이 저하될 수 있습니다", + "disabledIframe": "임베딩은 데모 목적에만 사용되므로 이 통화는 {{timeout}}분 후에 연결이 끊어집니다.", + "disabledIframeSecondary": "{{domain}} 임베딩은 데모 목적에만 사용되므로 이 통화는 {{timeout}}분 후에 연결이 끊어집니다. 프로덕션 임베딩을 위해 Jitsi as a Service를 사용하세요!", + "disconnected": "연결이 끊김", + "displayNotifications": "다음에 대한 알림 표시", + "dontRemindMe": "다시 알리지 않기", + "focus": "컨퍼런스 포커스", + "focusFail": "{{component}}을 사용할 수 없음 - {{ms}} 초 후에 다시 시도하십시오", + "gifsMenu": "GIPHY", + "groupTitle": "알림", + "hostAskedUnmute": "중재자가 말하기를 원합니다", + "invalidTenant": "잘못된 테넌트", + "invalidTenantHyphenDescription": "사용 중인 테넌트가 잘못되었습니다('-'로 시작하거나 끝남).", + "invalidTenantLengthDescription": "사용 중인 테넌트가 너무 깁니다.", + "invitedOneMember": "{{name}}님이 초대되었습니다.", + "invitedThreePlusMembers": "{{name}}님 외 {{count}}명이 초대되었습니다.", + "invitedTwoMembers": "{{first}}님과 {{second}}님이 초대되었습니다.", + "joinMeeting": "참여하기", + "kickParticipant": "{{kicker}}님이 {{kicked}}님을 추방했습니다.", + "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}}에 의해 음소거되었습니다!", + "mutedTitle": "음소거 상태입니다!", + "newDeviceAction": "사용", + "newDeviceAudioTitle": "새 오디오 장치 감지", + "newDeviceCameraTitle": "새 카메라 감지", + "nextToSpeak": "당신은 다음 발언자입니다", + "noiseSuppressionDesktopAudioDescription": "추가 노이즈 억제는 데스크톱 오디오 공유 중에는 활성화할 수 없습니다. 비활성화하고 다시 시도하십시오.", + "noiseSuppressionFailedTitle": "추가 노이즈 억제를 시작하지 못했습니다", + "noiseSuppressionStereoDescription": "추가 노이즈 억제는 현재 스테레오 오디오와 함께 지원되지 않습니다.", + "oldElectronClientDescription1": "보안 취약성이 있는 오래된 Jitsi Meet 클라이언트를 사용하고 있는 것 같습니다. 최신 빌드로 업데이트하세요", + "oldElectronClientDescription2": "최신 빌드", + "oldElectronClientDescription3": "지금!", + "participantWantsToJoin": "회의에 참여하려고 합니다", + "participantsWantToJoin": "회의에 참여하려고 합니다", + "passwordRemovedRemotely": "다른 참가자가 $t(lockRoomPasswordUppercase)를 제거했습니다.", + "passwordSetRemotely": "다른 참가자가 $t(lockRoomPasswordUppercase)를 설정했습니다.", + "raiseHandAction": "손 들기", + "raisedHand": "{{name}}님이 말하고 싶어합니다.", + "raisedHands": "{{participantName}}님과 {{raisedHands}}명이 더", + "reactionSounds": "소리 비활성화", + "reactionSoundsForAll": "모든 사람의 소리 비활성화", + "screenShareNoAudio": "창 선택 화면에서 오디오 공유 상자가 선택되지 않았습니다.", + "screenShareNoAudioTitle": "시스템 오디오를 공유할 수 없습니다!", + "screenSharingAudioOnlyDescription": "화면을 공유하면 \"최적의 성능\" 모드에 영향을 주며 더 많은 대역폭을 사용하게 됩니다.", + "screenSharingAudioOnlyTitle": "\"최적의 성능\" 모드", + "selfViewTitle": "설정에서 언제든지 셀프뷰를 다시 표시할 수 있습니다", + "somebody": "누군가", + "startSilentDescription": "오디오를 사용하려면 회의에 다시 참여하세요.", + "startSilentTitle": "오디오 출력없이 참여했습니다!", + "suboptimalBrowserWarning": "여기에서 회의 경험이 좋지 않을 것 같습니다. 이를 개선하기 위해 노력하고 있지만 그때까지 완전히 지원되는 브라우저 중 하나를 사용해보세요.", + "suboptimalExperienceTitle": "브라우저 경고", + "suggestRecordingAction": "시작", + "suggestRecordingDescription": "녹화를 시작하시겠습니까?", + "suggestRecordingTitle": "이 회의를 녹화합니다", + "unmute": "음소거 해제", + "videoMutedRemotelyDescription": "언제든지 카메라를 다시 켤 수 있습니다.", + "videoMutedRemotelyTitle": "{{participantDisplayName}}에 의해 카메라가 비활성화되었습니다!", + "videoUnmuteBlockedDescription": "카메라 음소거 해제 및 화면 공유 작업이 시스템 제한으로 인해 일시적으로 차단되었습니다.", + "videoUnmuteBlockedTitle": "카메라 음소거 해제 및 화면 공유 차단됨!", + "viewLobby": "로비 보기", + "viewParticipants": "참가자 보기", + "viewVisitors": "방문자 보기", + "waitingParticipants": "{{waitingParticipants}}명", + "waitingVisitors": "대기열에서 대기 중인 방문자: {{waitingVisitors}}", + "waitingVisitorsTitle": "회의가 아직 시작되지 않았습니다!", + "whiteboardLimitDescription": "진행 상황을 저장하세요. 사용자 한도에 곧 도달하여 화이트보드가 닫힐 것입니다.", + "whiteboardLimitTitle": "화이트보드 사용" + }, + "participantsPane": { + "actions": { + "admit": "승인", + "admitAll": "모두 승인", + "allow": "참가자에게 허용:", + "allowVideo": "비디오 허용", + "askUnmute": "음소거 해제 요청", + "audioModeration": "스스로 음소거 해제", + "blockEveryoneMicCamera": "모두의 마이크와 카메라 차단", + "breakoutRooms": "분할 회의실", + "goLive": "실시간 방송", + "invite": "사람 초대", + "lowerAllHands": "모든 손 내리기", + "lowerHand": "손 내리기", + "moreModerationActions": "더 많은 중재 옵션", + "moreModerationControls": "더 많은 중재 컨트롤", + "moreParticipantOptions": "더 많은 참가자 옵션", + "mute": "음소거", + "muteAll": "모두 음소거", + "muteEveryoneElse": "다른 사람 모두 음소거", + "reject": "거부", + "stopEveryonesVideo": "모두의 비디오 중지", + "stopVideo": "비디오 중지", + "unblockEveryoneMicCamera": "모두의 마이크와 카메라 차단 해제", + "videoModeration": "자신의 비디오 시작" + }, + "close": "닫기", + "headings": { + "lobby": "로비 ({{count}})", + "participantsList": "회의 참가자 ({{count}})", + "visitorInQueue": " (대기 중 {{count}})", + "visitorRequests": " (요청 {{count}})", + "visitors": "방문자 {{count}}", + "waitingLobby": "로비에서 대기 중 ({{count}})" + }, + "search": "참가자 검색", + "title": "참가자" + }, + "passwordDigitsOnly": "최대 {{number}} 자리", + "passwordSetRemotely": "다른 참가자가 설정", + "pinParticipant": "{{participantName}} - 고정", + "pinnedParticipant": "참가자가 고정되었습니다", + "polls": { + "answer": { + "edit": "편집", + "send": "보내기", + "skip": "건너뛰기", + "submit": "제출" + }, + "by": "{{name}}님이 작성", + "closeButton": "투표 종료", + "create": { + "addOption": "옵션 추가", + "answerPlaceholder": "옵션 {{index}}", + "cancel": "취소", + "create": "투표 만들기", + "pollOption": "투표 옵션 {{index}}", + "pollQuestion": "투표 질문", + "questionPlaceholder": "질문을 입력하세요", + "removeOption": "옵션 제거", + "save": "저장", + "send": "보내기" + }, + "errors": { + "notUniqueOption": "옵션은 고유해야합니다" + }, + "notification": { + "description": "투표 탭을 열어 투표하세요", + "title": "새로운 투표가 이 회의에 추가되었습니다" + }, + "results": { + "changeVote": "투표 변경", + "empty": "회의에 아직 투표가 없습니다. 여기에서 투표를 시작하세요!", + "hideDetailedResults": "세부 정보 숨기기", + "showDetailedResults": "세부 정보 보기", + "vote": "투표" + } + }, + "poweredby": "제공:", + "prejoin": { + "audioAndVideoError": "오디오 및 비디오 오류:", + "audioDeviceProblem": "오디오 장치에 문제가 있습니다", + "audioOnlyError": "오디오 오류:", + "audioTrackError": "오디오 트랙을 생성할 수 없습니다.", + "callMe": "나에게 전화하기", + "callMeAtNumber": "이 번호로 전화하기:", + "calling": "전화 중", + "configuringDevices": "장치 구성 중…", + "connectedWithAudioQ": "오디오에 연결되어 있습니까?", + "connection": { + "failed": "연결 테스트 실패!", + "good": "인터넷 연결이 좋아 보입니다!", + "nonOptimal": "인터넷 연결이 최적이 아닙니다", + "poor": "인터넷 연결이 좋지 않습니다", + "running": "연결 테스트 실행 중…" + }, + "connectionDetails": { + "audioClipping": "오디오가 클리핑될 것으로 예상됩니다.", + "audioHighQuality": "오디오가 우수한 품질일 것으로 예상됩니다.", + "audioLowNoVideo": "오디오 품질이 낮고 비디오는 없을 것으로 예상됩니다.", + "goodQuality": "멋져요! 미디어 품질이 훌륭할 것입니다.", + "noMediaConnectivity": "이 테스트를 위해 미디어 연결성을 설정할 수 있는 방법을 찾을 수 없었습니다. 이는 일반적으로 방화벽이나 NAT로 인해 발생합니다.", + "noVideo": "비디오가 매우 나쁠 것으로 예상됩니다.", + "testFailed": "연결 테스트에서 예기치 않은 문제가 발생했지만 이것이 귀하의 경험에 영향을 미치지 않을 수 있습니다.", + "undetectable": "브라우저에서 여전히 전화를 걸 수 없는 경우, 스피커, 마이크 및 카메라가 제대로 설정되었는지 확인하고 브라우저에 마이크 및 카메라 사용 권한을 부여했는지 확인하고 브라우저 버전이 최신인지 확인하는 것이 좋습니다. 여전히 통화에 문제가 있는 경우 웹 애플리케이션 개발자에게 문의해야 합니다.", + "veryPoorConnection": "통화 품질이 정말 나쁠 것으로 예상됩니다.", + "videoFreezing": "비디오가 멈추거나, 검은 화면이 되거나, 픽셀화될 것으로 예상됩니다.", + "videoHighQuality": "비디오 품질이 좋을 것으로 예상됩니다.", + "videoLowQuality": "프레임 속도와 해상도 측면에서 비디오 품질이 낮을 것으로 예상됩니다.", + "videoTearing": "비디오가 픽셀화되거나 시각적 결함이 있을 것으로 예상됩니다." + }, + "copyAndShare": "회의 링크 복사 및 공유", + "dialInMeeting": "회의에 전화 접속", + "dialInPin": "회의에 전화 접속하고 PIN 코드를 입력하세요:", + "dialing": "전화 거는 중", + "doNotShow": "이 화면 다시 표시하지 않기", + "errorDialOut": "전화를 걸 수 없습니다", + "errorDialOutDisconnected": "전화를 걸 수 없습니다. 연결 끊김", + "errorDialOutFailed": "전화를 걸 수 없습니다. 통화 실패", + "errorDialOutStatus": "전화 걸기 상태 가져오기 오류", + "errorMissingName": "회의에 참여하려면 이름을 입력하세요", + "errorNoPermissions": "마이크 및 카메라 액세스를 허용해야 합니다", + "errorStatusCode": "전화 걸기 오류, 상태 코드: {{status}}", + "errorValidation": "번호 검증 실패", + "iWantToDialIn": "전화로 참여하고 싶습니다", + "initiated": "통화 시작됨", + "joinAudioByPhone": "전화로 오디오 참여", + "joinMeeting": "회의 참여", + "joinMeetingInLowBandwidthMode": "낮은 대역폭 모드로 참여", + "joinWithoutAudio": "오디오 없이 참여", + "keyboardShortcuts": "키보드 단축키 사용", + "linkCopied": "클립보드에 링크가 복사되었습니다", + "lookGood": "장치가 제대로 작동하고 있습니다", + "or": "또는", + "premeeting": "회의 전", + "proceedAnyway": "그래도 진행", + "recordingWarning": "다른 참가자가 이 통화를 녹화하고 있을 수 있습니다", + "screenSharingError": "화면 공유 오류:", + "startWithPhone": "전화 오디오로 시작", + "unsafeRoomConsent": "위험을 이해하며 회의에 참여하고 싶습니다", + "videoOnlyError": "비디오 오류:", + "videoTrackError": "비디오 트랙을 생성할 수 없습니다.", + "viewAllNumbers": "모든 번호 보기" + }, + "presenceStatus": { + "busy": "바쁨", + "calling": "전화 거는 중", + "connected": "연결됨", + "connecting": "연결 중", + "connecting2": "연결 중*", + "disconnected": "연결 끊김", + "expired": "만료됨", + "ignored": "무시됨", + "initializingCall": "통화 초기화 중", + "invited": "초대됨", + "rejected": "거부됨", + "ringing": "전화 중" + }, + "profile": { + "avatar": "아바타", + "setDisplayNameLabel": "표시 이름 설정", + "setEmailInput": "이메일 입력", + "setEmailLabel": "이메일 설정", + "title": "프로필" + }, + "raisedHand": "말하고 싶어합니다", + "raisedHandsLabel": "손 든 사람 수", + "record": { + "already": { + "linked": "회의가 이미 이 Salesforce 객체에 연결되었습니다." + }, + "type": { + "account": "계정", + "contact": "연락처", + "lead": "잠재 고객", + "opportunity": "기회", + "owner": "소유자" + } + }, + "recording": { + "authDropboxText": "Dropbox에 업로드", + "availableSpace": "사용 가능한 공간 : {{spaceLeft}}MB (약 {{duration}}분 녹화)", + "beta": "베타", + "busy": "녹화 자원을 확보하고 있습니다. 몇 분 후에 다시 시도하십시오.", + "busyTitle": "모든 레코더가 현재 사용 중입니다", + "copyLink": "링크 복사", + "error": "녹화가 실패했습니다. 다시 시도하십시오.", + "errorFetchingLink": "녹화 링크를 가져오는 중 오류가 발생했습니다.", + "expandedOff": "녹화가 중지됨", + "expandedOn": "회의가 현재 녹화 중입니다.", + "expandedPending": "녹화가 시작됩니다…", + "failedToStart": "녹화를 시작하지 못했습니다", + "fileSharingdescription": "회의 참가자와 녹화 공유", + "highlight": "하이라이트", + "highlightMoment": "순간 강조 표시", + "highlightMomentDisabled": "녹화가 시작되면 순간을 강조 표시할 수 있습니다", + "highlightMomentSuccess": "순간 강조 표시됨", + "highlightMomentSucessDescription": "강조 표시된 순간이 회의 요약에 추가됩니다.", + "inProgress": "녹화 또는 실시간 스트리밍 진행 중", + "limitNotificationDescriptionNative": "수요가 많아 녹화가 {{limit}}분으로 제한됩니다. 무제한 녹화를 사용하려면 {{app}}을 시도해 보세요.", + "limitNotificationDescriptionWeb": "수요가 많아 녹화가 {{limit}}분으로 제한됩니다. 무제한 녹화를 사용하려면 {{app}}을 시도해 보세요.", + "linkGenerated": "녹화에 대한 링크를 생성했습니다.", + "localRecordingNoNotificationWarning": "녹화가 다른 참가자에게 알리지 않습니다. 회의가 녹화되고 있음을 알려야 합니다.", + "localRecordingNoVideo": "비디오는 녹화되지 않습니다", + "localRecordingStartWarning": "녹화를 저장하려면 회의에서 나가기 전에 녹화를 중지해야 합니다.", + "localRecordingStartWarningTitle": "저장을 위해 녹화를 중지하세요", + "localRecordingVideoStop": "비디오를 중지하면 로컬 녹화도 중지됩니다. 계속하시겠습니까?", + "localRecordingVideoWarning": "비디오를 녹화하려면 녹화를 시작할 때 켜져 있어야 합니다", + "localRecordingWarning": "올바른 비디오 및 오디오를 사용하려면 현재 탭을 선택해야 합니다.", + "loggedIn": "{{userName}}으로 로그인했습니다.", + "noMicPermission": "마이크 트랙을 생성할 수 없습니다. 마이크 사용 권한을 부여하세요.", + "noStreams": "오디오 또는 비디오 스트림이 감지되지 않았습니다.", + "off": "녹화가 중지됨", + "offBy": "{{name}}님이 녹화를 중지했습니다", + "on": "녹화", + "onBy": "{{name}}님이 녹화를 시작했습니다", + "onlyRecordSelf": "나의 오디오 및 비디오 스트림만 녹화", + "pending": "참석할 멤버를 기다리는 중입니다…", + "policyError": "녹화를 너무 빨리 시작하려고 했습니다. 나중에 다시 시도하십시오!", + "recordAudioAndVideo": "오디오와 비디오 녹화", + "recordTranscription": "자막 녹화", + "saveLocalRecording": "녹화 파일을 로컬에 저장 (베타)", + "serviceDescription": "녹화는 녹화 서비스에 의해 저장됩니다.", + "serviceDescriptionCloud": "클라우드 녹화", + "serviceDescriptionCloudInfo": "녹화된 회의는 녹화 후 24시간 후에 자동으로 삭제됩니다.", + "serviceName": "녹화 서비스", + "sessionAlreadyActive": "이 세션은 이미 녹화되거나 라이브 스트림 중입니다.", + "showAdvancedOptions": "고급 옵션", + "signIn": "로그인", + "signOut": "로그아웃", + "surfaceError": "현재 탭을 선택해 주세요.", + "title": "녹화", + "unavailable": "죄송합니다. {{serviceName}}은 현재 사용할 수 없습니다. 저희는 문제를 해결하기 위해 노력하고 있습니다. 나중에 다시 시도 해주십시오.", + "unavailableTitle": "녹화를 사용할 수 없습니다", + "uploadToCloud": "클라우드에 업로드" + }, + "screenshareDisplayName": "{{name}}의 화면", + "sectionList": { + "pullToRefresh": "당겨서 새로고침" + }, + "security": { + "about": "회의에 $t(lockRoomPassword)를 추가할 수 있습니다. 참가자는 회의에 참여하기 위해 $t(lockRoomPassword)를 입력해야합니다.", + "aboutReadOnly": "방장은 회의에 $t(lockRoomPassword)를 추가할 수 있습니다. 참가자는 회의에 참여하기 위해 $t(lockRoomPassword)를 입력해야합니다.", + "insecureRoomNameWarningNative": "방 이름이 안전하지 않습니다. 원하지 않는 참가자가 회의에 참여할 수 있습니다. {{recommendAction}} 회의를 보호하는 방법을 알아보세요", + "insecureRoomNameWarningWeb": "방 이름이 안전하지 않습니다. 원하지 않는 참가자가 회의에 참여할 수 있습니다. {{recommendAction}} 회의를 보호하는 방법은 여기에서 알아보세요.", + "title": "보안 옵션", + "unsafeRoomActions": { + "meeting": "회의 보안을 위해 보안 버튼을 사용하세요.", + "prejoin": "더 고유한 회의 이름을 사용하는 것이 좋습니다.", + "welcome": "더 고유한 회의 이름을 사용하거나 제안을 선택하는 것이 좋습니다." + } + }, + "settings": { + "audio": "오디오", + "buttonLabel": "설정", + "calendar": { + "about": "{{appName}} 캘린더 통합은 예정된 일정을 읽을 수 있도록 캘린더에 안전하게 액세스하는 데 사용됩니다.", + "disconnect": "연결 끊김", + "microsoftSignIn": "Microsoft로 로그인", + "signedIn": "현재 {{email}}의 캘린더 일정에 액세스하고 있습니다. 캘린더 이벤트 액세스를 중지하려면 아래 연결 해제 버튼을 클릭하세요.", + "title": "캘린더" + }, + "desktopShareFramerate": "데스크톱 공유 프레임 레이트", + "desktopShareHighFpsWarning": "데스크톱 공유의 높은 프레임 레이트는 대역폭에 영향을 줄 수 있습니다. 새로운 설정이 적용되도록 화면 공유를 다시 시작해야 합니다.", + "desktopShareWarning": "새로운 설정이 적용되도록 화면 공유를 다시 시작해야 합니다.", + "devices": "장치", + "followMe": "모두 나와 같은 설정 상태로", + "followMeRecorder": "녹화도 나를 따릅니다", + "framesPerSecond": "초당 프레임 수", + "incomingMessage": "수신 메시지", + "language": "언어", + "loggedIn": "{{name}}으로 로그인", + "maxStageParticipants": "메인 스테이지에 고정할 수 있는 최대 참가자 수", + "microphones": "마이크", + "moderator": "진행자", + "moderatorOptions": "진행자 옵션", + "more": "더보기", + "name": "이름", + "noDevice": "없음", + "notifications": "알림", + "participantJoined": "참가자 입장", + "participantKnocking": "참가자가 로비에 입장", + "participantLeft": "참가자 퇴장", + "playSounds": "소리 켜기", + "reactions": "반응", + "sameAsSystem": "시스템과 동일 ({{label}})", + "selectAudioOutput": "오디오 출력", + "selectCamera": "카메라", + "selectMic": "오디오", + "selfView": "자기 보기", + "shortcuts": "단축키", + "speakers": "스피커", + "startAudioMuted": "모두 음소거 상태로 시작", + "startReactionsMuted": "모든 사람의 반응 소리 음소거", + "startVideoMuted": "모두 비디오 비활성화 상태로 시작", + "talkWhileMuted": "음소거 상태에서 말하기", + "title": "설정", + "video": "비디오" + }, + "settingsView": { + "advanced": "고급", + "alertCancel": "취소", + "alertOk": "확인", + "alertTitle": "경고", + "alertURLText": "입력된 서버 URL이 잘못되었습니다", + "apply": "적용", + "buildInfoSection": "빌드 정보", + "conferenceSection": "회의", + "disableCallIntegration": "네이티브 통화 통합 비활성화", + "disableCrashReporting": "크래시 리포팅 비활성화", + "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": { + "dialInfoText": "\n\n=====\n\n전화로 접속하고 싶으신가요?\n\n{{defaultDialInNumber}}이 회의의 전화 접속 번호를 보려면 이 링크를 클릭하세요\n{{dialInfoPageUrl}}", + "mainText": "회의에 참여하려면 다음 링크를 클릭하십시오.\n{{roomUrl}}" + }, + "speaker": "스피커", + "speakerStats": { + "angry": "화남", + "disgusted": "역겨움", + "displayEmotions": "감정 표시", + "fearful": "두려움", + "happy": "행복", + "hours": "{{count}}시간", + "minutes": "{{count}}분", + "name": "이름", + "neutral": "중립적", + "sad": "슬픔", + "search": "검색", + "searchHint": "참가자 검색", + "seconds": "{{count}}초", + "speakerStats": "접속자 통계", + "speakerTime": "접속자 오디오 사용 시간", + "surprised": "놀람" + }, + "startupoverlay": { + "genericTitle": "회의에서 마이크와 카메라를 사용해야 합니다.", + "policyText": " ", + "title": "{{app}}은 마이크와 카메라를 사용해야합니다" + }, + "suspendedoverlay": { + "rejoinKeyTitle": "재접속", + "text": "다시 연결하려면 재접속 버튼을 누르십시오", + "title": "컴퓨터 휴식 모드가 되어 화상 통화가 중단되었습니다" + }, + "termsView": { + "title": "이용약관" + }, + "toggleTopPanelLabel": "상단 패널 전환", + "toolbar": { + "Settings": "설정", + "accessibilityLabel": { + "Settings": "설정 전환", + "audioOnly": "음성 전용 모드 전환", + "audioRoute": "음성 장비 선택하기", + "boo": "야유", + "breakoutRooms": "소회의실", + "callQuality": "비디오 품질 관리", + "carmode": "자동차 모드", + "cc": "자막 사용 전환", + "chat": "채팅창 보이기 전환", + "clap": "박수", + "closeChat": "채팅 닫기", + "closeMoreActions": "추가 작업 메뉴 닫기", + "closeParticipantsPane": "참가자 패널 닫기", + "collapse": "축소", + "document": "문서 전환", + "documentClose": "공유 문서 닫기", + "documentOpen": "공유 문서 열기", + "download": "앱 다운로드", + "embedMeeting": "회의 삽입", + "endConference": "모두를 위한 회의 종료", + "enterFullScreen": "전체 화면 보기", + "enterTileView": "타일 보기 시작", + "exitFullScreen": "전체 화면 종료", + "exitTileView": "타일 보기 종료", + "expand": "확장", + "feedback": "피드백 남기기", + "fullScreen": "전체 화면 전환", + "giphy": "GIPHY 메뉴 전환", + "grantModerator": "진행자 권한 부여", + "hangup": "떠나기", + "heading": "도구 모음", + "help": "도움말", + "hideWhiteboard": "화이트보드 숨기기", + "invite": "사용자 초대", + "kick": "참가자 추방", + "laugh": "웃음", + "leaveConference": "회의 떠나기", + "like": "좋아요", + "linkToSalesforce": "Salesforce에 연결", + "lobbyButton": "로비 모드 활성화/비활성화", + "localRecording": "로컬 녹화 제어 전환", + "lockRoom": "회의 비밀번호 전환", + "love": "하트", + "lowerHand": "손 내리기", + "moreActions": "추가 작업", + "moreActionsMenu": "추가 작업 메뉴", + "moreOptions": "추가 옵션 보기", + "mute": "음소거 전환", + "muteEveryone": "모두 음소거", + "muteEveryoneElse": "다른 사람 모두 음소거", + "muteEveryoneElsesVideoStream": "다른 사람들의 비디오 중지", + "muteEveryonesVideoStream": "모든 사람의 비디오 중지", + "muteGUMPending": "마이크 연결 중", + "noiseSuppression": "추가 잡음 제거 (베타)", + "openChat": "채팅 열기", + "participants": "참가자 패널 열기. {{participantsCount}}명 참가자", + "pip": "PIP 모드 전환", + "privateMessage": "비공개 메세지 보내기", + "profile": "프로필 수정", + "raiseHand": "손 들기", + "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": "필름스트립 전환", + "unmute": "마이크 음소거 해제", + "videoblur": "비디오 흐리기 전환", + "videomute": "비디오 비활성화 전환", + "videomuteGUMPending": "카메라 연결 중", + "videounmute": "카메라 시작" + }, + "addPeople": "통화에 사용자 추가", + "audioOnlyOff": "음성전용 모드 끄기", + "audioOnlyOn": "음성전용 모드 켜기", + "audioRoute": "음성 장비 선택하기", + "audioSettings": "오디오 설정", + "authenticate": "인증중", + "boo": "야유", + "callQuality": "품질 설정하기", + "chat": "대화 열기/닫기", + "clap": "박수", + "closeChat": "대화 닫기", + "closeParticipantsPane": "참가자 패널 닫기", + "closeReactionsMenu": "반응 메뉴 닫기", + "disableNoiseSuppression": "추가 잡음 제거 비활성화 (베타)", + "disableReactionSounds": "이 회의에서 반응 소리를 비활성화할 수 있습니다", + "documentClose": "문서 공유 닫기", + "documentOpen": "문서 공유 열기", + "download": "앱 다운로드", + "e2ee": "종단간 암호화", + "embedMeeting": "회의 삽입", + "enableNoiseSuppression": "추가 잡음 제거 활성화 (베타)", + "endConference": "모두를 위한 회의 종료", + "enterFullScreen": "전체화면 보기", + "enterTileView": "타일보기 시작", + "exitFullScreen": "전체화면 취소", + "exitTileView": "타일보기 종료", + "feedback": "피드백 남기기", + "giphy": "GIPHY 메뉴 전환", + "hangup": "떠나기", + "help": "도움말", + "hideWhiteboard": "화이트보드 숨기기", + "invite": "초대", + "joinBreakoutRoom": "소회의실 참여", + "laugh": "웃음", + "leaveBreakoutRoom": "소회의실 나가기", + "leaveConference": "회의 떠나기", + "like": "좋아요", + "linkToSalesforce": "Salesforce에 연결", + "lobbyButtonDisable": "로비 모드 비활성화", + "lobbyButtonEnable": "로비 모드 활성화", + "login": "로그인", + "logout": "로그아웃", + "love": "하트", + "lowerYourHand": "손을 내려주세요", + "moreActions": "추가 액션", + "moreOptions": "옵션 더보기", + "mute": "음소거 설정/해제", + "muteEveryone": "모두 음소거", + "muteEveryonesVideo": "모두의 카메라 중지", + "muteGUMPending": "마이크 연결 중", + "noAudioSignalDesc": "시스템 설정이나 하드웨어에서 의도적으로 음소거하지 않았다면 장치를 변경하는 것을 고려하세요.", + "noAudioSignalDescSuggestion": "시스템 설정이나 하드웨어에서 의도적으로 음소거하지 않았다면 제안된 장치로 전환하는 것을 고려하세요.", + "noAudioSignalDialInDesc": "다음 번호를 사용하여 전화 접속할 수도 있습니다:", + "noAudioSignalDialInLinkDesc": "전화 접속 번호", + "noAudioSignalTitle": "마이크에서 입력이 없습니다!", + "noiseSuppression": "추가 잡음 제거 (베타)", + "noisyAudioInputDesc": "마이크에서 소음이 발생하는 것 같습니다. 음소거하거나 장치를 변경하는 것을 고려하세요.", + "noisyAudioInputTitle": "마이크가 소음을 발생시키는 것 같습니다!", + "openChat": "대화 열기", + "openReactionsMenu": "반응 메뉴 열기", + "participants": "참가자", + "pip": "Picture-in-Picture 모드 시작", + "privateMessage": "비공개 메시지 보내기", + "profile": "프로필 수정", + "raiseHand": "말하기 요청/해제", + "raiseYourHand": "손 들어주세요", + "reactionBoo": "야유 반응 보내기", + "reactionClap": "박수 반응 보내기", + "reactionHeart": "하트 반응 보내기", + "reactionLaugh": "웃음 반응 보내기", + "reactionLike": "좋아요 반응 보내기", + "reactionSilence": "조용히 반응 보내기", + "reactionSurprised": "놀람 반응 보내기", + "reactions": "반응", + "security": "보안 옵션", + "selectBackground": "배경 선택", + "shareRoom": "초대하기", + "shareaudio": "오디오 공유", + "sharedvideo": "YouTube 비디오 공유", + "shortcuts": "단축키보기", + "showWhiteboard": "화이트보드 표시", + "silence": "조용히", + "speakerStats": "접속자 통계", + "startScreenSharing": "화면 공유 시작", + "startSubtitles": "자막 시작", + "stopAudioSharing": "오디오 공유 중지", + "stopScreenSharing": "화면 공유 중지", + "stopSharedVideo": "YouTube 비디오 공유 중지", + "stopSubtitles": "자막 중지", + "surprised": "놀람", + "talkWhileMutedPopup": "음소거 상태입니다.", + "tileViewToggle": "타일뷰 전환", + "toggleCamera": "카메라 전환", + "unmute": "마이크 음소거 해제", + "videoSettings": "비디오 설정", + "videomute": "카메라 시작/중지", + "videomuteGUMPending": "카메라 연결 중", + "videounmute": "카메라 시작" + }, + "transcribing": { + "ccButtonTooltip": "자막 시작/종료", + "expandedLabel": "현재 스크립트 작성 중", + "failed": "자막 작성 실패", + "labelToolTip": "회의가 기록되고 있습니다.", + "sourceLanguageDesc": "현재 회의 언어는 {{sourceLanguage}}로 설정되어 있습니다.
변경하려면 ", + "sourceLanguageHere": "여기에서", + "start": "자막 표시 시작", + "stop": "자막 표시 중지", + "subtitles": "자막", + "subtitlesOff": "끄기", + "tr": "번역" + }, + "unpinParticipant": "{{participantName}} - 고정 해제", + "userMedia": { + "grantPermissions": "카메라와 마이크 사용 권한을 부여하십시오." + }, + "videoSIPGW": { + "busy": "자원을 확보하기 위해 노력하고 있습니다. 몇 분 후에 다시 시도하십시오.", + "busyTitle": "서비스가 현재 사용 중입니다", + "errorAlreadyInvited": "{{displayName}} 이미 초대되었습니다", + "errorInvite": "회의가 아직 설정되지 않았습니다. 나중에 다시 시도 해주십시오.", + "errorInviteFailed": "문제를 해결하기 위해 노력하고 있습니다. 나중에 다시 시도 해주십시오.", + "errorInviteFailedTitle": "{{displayName}} 초대 실패", + "errorInviteTitle": "초대하는 중에 오류가 발생했습니다", + "pending": "{{displayName}} 이미 초대되었습니다" + }, + "videoStatus": { + "adjustFor": "조정 대상:", + "audioOnly": "오디오 전용", + "audioOnlyExpanded": "낮은 대역폭 모드에 있습니다. 이 모드에서는 오디오 및 화면 공유만 수신합니다.", + "bestPerformance": "최고의 성능", + "callQuality": "비디오 품질", + "hd": "HD", + "hdTooltip": "고해상도 비디오 보기", + "highDefinition": "고해상도", + "highestQuality": "최고 품질", + "labelTooiltipNoVideo": "비디오 없음", + "labelTooltipAudioOnly": "오디오 전용 모드 사용", + "ld": "LD", + "ldTooltip": "저해상도 비디오 보기", + "lowDefinition": "저해상도", + "performanceSettings": "성능 설정", + "recording": "녹화 진행 중", + "sd": "SD", + "sdTooltip": "표준 해상도 비디오 보기", + "standardDefinition": "표준 해상도", + "streaming": "스트리밍 진행 중" + }, + "videothumbnail": { + "connectionInfo": "연결 정보", + "demote": "방문자로 이동", + "domute": "음소거", + "domuteOthers": "다른 사람 모두 음소거", + "domuteVideo": "카메라 비활성화", + "domuteVideoOfOthers": "다른 사람의 카메라 비활성화", + "flip": "뒤집기", + "grantModerator": "진행자 권한 부여", + "hideSelfView": "자기 보기 숨기기", + "kick": "내보내기", + "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": "데스크톱 공유를 생성할 수 없습니다", + "image1": "해변", + "image2": "흰색 중립 벽", + "image3": "흰색 빈 방", + "image4": "검은색 바닥 램프", + "image5": "산", + "image6": "숲", + "image7": "일출", + "none": "없음", + "pleaseWait": "잠시만 기다려주세요…", + "removeBackground": "배경 제거", + "slightBlur": "약간 흐리게", + "title": "배경", + "uploadedImage": "업로드된 이미지 {{index}}", + "webAssemblyWarning": "WebAssembly를 지원하지 않습니다", + "webAssemblyWarningDescription": "이 브라우저에서 WebAssembly가 비활성화되었거나 지원되지 않습니다" + }, + "visitors": { + "chatIndicator": "(방문자)", + "joinMeeting": { + "description": "현재 이 회의에서 참관인입니다.", + "raiseHand": "손 들기", + "title": "회의 참가", + "wishToSpeak": "발언하고 싶으시면 아래에서 손을 들고 진행자의 승인을 기다려주세요." + }, + "labelTooltip": "방문자 수: {{count}}", + "notification": { + "demoteDescription": "{{actor}}에 의해 여기로 보내졌습니다. 참여하려면 손을 들어주세요.", + "noMainParticipantsDescription": "참가자가 회의를 시작해야 합니다. 잠시 후 다시 시도해 주세요.", + "noMainParticipantsTitle": "이 회의는 아직 시작되지 않았습니다.", + "noVisitorLobby": "회의에 로비가 활성화되어 있어 참여할 수 없습니다.", + "notAllowedPromotion": "참가자가 먼저 귀하의 요청을 승인해야 합니다.", + "title": "회의에서 방문자입니다" + }, + "waitingMessage": "회의가 시작되면 곧 참여하실 수 있습니다!" + }, + "volumeSlider": "볼륨 슬라이더", + "welcomepage": { + "accessibilityLabel": { + "join": "가입", + "roomname": "방 이름 입력" + }, + "addMeetingName": "회의 이름 추가", + "appDescription": "전체 팀과 화상 채팅을하십시오. 당신이 아는 모든 사람들을 초대하십시오. {{app}}은 완전히 암호화 된 100 % 오픈 소스 화상 회의 솔루션으로 계정 없이도 하루 종일, 매일 무료로 사용할 수 있습니다.", + "audioVideoSwitch": { + "audio": "음성", + "video": "비디오" + }, + "calendar": "캘린더", + "connectCalendarButton": "캘린더를 연결하세요", + "connectCalendarText": "{{app}}에서 모든 회의를 보려면 캘린더를 연결하세요. 또한 캘린더에 {{provider}} 회의를 추가하고 클릭 한 번으로 시작하세요.", + "enterRoomTitle": "새 회의 시작", + "getHelp": "도움 받기", + "go": "계속", + "goSmall": "계속", + "headerSubtitle": "안전하고 고품질의 회의", + "headerTitle": "Jitsi Meet", + "info": "정보", + "jitsiOnMobile": "모바일에서 Jitsi – 앱을 다운로드하고 어디서나 회의를 시작하세요", + "join": "가입", + "logo": { + "calendar": "캘린더 로고", + "desktopPreviewThumbnail": "데스크톱 미리보기 썸네일", + "googleLogo": "구글 로고", + "logoDeepLinking": "Jitsi meet 로고", + "microsoftLogo": "마이크로소프트 로고", + "policyLogo": "정책 로고" + }, + "meetingsAccessibilityLabel": "회의", + "mobileDownLoadLinkAndroid": "Android용 모바일 앱 다운로드", + "mobileDownLoadLinkFDroid": "F-Droid용 모바일 앱 다운로드", + "mobileDownLoadLinkIos": "iOS용 모바일 앱 다운로드", + "moderatedMessage": "또는 회의 URL을 미리 예약하여 유일한 진행자가 되십시오.", + "privacy": "개인정보", + "recentList": "최근", + "recentListDelete": "삭제", + "recentListEmpty": "최근 목록이 현재 비어 있습니다. 팀과 채팅하면 여기에서 최근 회의를 모두 찾을 수 있습니다.", + "recentMeetings": "최근 회의", + "reducedUIText": "{{app}}에 오신 것을 환영합니다!", + "roomNameAllowedChars": "회의 이름은 다음 문자를 포함할 수 없습니다.: ?, &, :, ', \", %, #.", + "roomname": "방 이름 입력", + "roomnameHint": "참여하려는 방의 이름 또는 URL을 입력하십시오. 이름을 정하고 만나는 사람들에게 같은 이름을 입력하도록 알리면됩니다.", + "sendFeedback": "피드백 보내기", + "settings": "설정", + "startMeeting": "회의 시작", + "terms": "이용약관", + "title": "안전하고 모든 기능을 갖춘 완전 무료 화상 회의", + "upcomingMeetings": "예정된 회의" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "화이트보드" + }, + "screenTitle": "화이트보드" + } +} diff --git a/lang/main-lt.json b/lang/main-lt.json new file mode 100644 index 0000000..ecfed99 --- /dev/null +++ b/lang/main-lt.json @@ -0,0 +1,776 @@ +{ + "addPeople": { + "add": "Pakviesti", + "countryNotSupported": "Kol kas nepalaikome šios vietovės.", + "countryReminder": "Jei skambinate už JAV ribų, nepamirškite pridėti šalies kodo!", + "disabled": "Jūs negalite pakviesti dalyvių.", + "failedToAdd": "Nepavyko pridėti dalyvių", + "footerText": "Numerio rinkimas išjungtas.", + "loading": "Dalyvių ar telefono numerių paieška", + "loadingNumber": "Tikrinamas telefono numeris", + "loadingPeople": "Ieškoma pakviestų dalyvių", + "noResults": "Nėra atitinkančių paieškos rezultatus", + "noValidNumbers": "Įveskite telefono numerį", + "searchNumbers": "Pridėkite telefono numerius", + "searchPeople": "Žmonių paieška", + "searchPeopleAndNumbers": "Ieškoti žmonių arba pridėti jų telefonų numerius", + "telephone": "Tel. nr.: {{number}}", + "title": "Pakvieskite žmones į šį susitikimą" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Ausinės", + "none": "Neaptikta garso įrenginių", + "phone": "Telefonas", + "speaker": "Garsiakalbis" + }, + "audioOnly": { + "audioOnly": "Mažas pralaidumas (tik garsas)" + }, + "calendarSync": { + "addMeetingURL": "Įdėti susitikimo nuorodą", + "confirmAddLink": "Ar norite pridėti Jitsi nuorodą į šį įvykį?", + "error": { + "appConfiguration": "Kalendoriaus integracija nėra tinkamai sukonfigūruota.", + "generic": "Įvyko klaida. Patikrinkite kalendoriaus nustatymus arba pabandykite įkelti kalendorių iš naujo.", + "notSignedIn": "Autentifikuojant kalendoriaus įvykius įvyko klaida. Patikrinkite kalendoriaus nustatymus ir bandykite prisijungti dar kartą." + }, + "join": "Prisijunkite", + "joinTooltip": "Prisijunkite prie susitikimo", + "nextMeeting": "Kitas susitikimas", + "noEvents": "Nėra suplanuotų įvykių.", + "ongoingMeeting": "dabar vykstantis susitikimas", + "permissionButton": "atverti nustatymus", + "permissionMessage": "Norint pamatyti jūsų susitikimus programoje, reikalingas leidimas prie kalendoriaus.", + "refresh": "Atnaujinti kalendorių", + "today": "Šiandien" + }, + "chat": { + "error": "Klaida: jūsų pranešimas nebuvo išsiųstas. Priežastis: {{klaida}}", + "fieldPlaceHolder": "Rašykite žinutę čia", + "messageTo": "Asmeninis pranešimas {{gavėjas}}", + "messagebox": "Rašykite žinutę", + "nickname": { + "popover": "Pridėkite slapyvardį", + "title": "Norėdami naudoti pokalbį, įveskite slapyvardį", + "titleWithPolls": "Norėdami naudoti pokalbį, įveskite slapyvardį" + }, + "noMessagesMessage": "Susitikime dar nėra pranešimų. Pradėkite pokalbį čia!", + "privateNotice": "Asmeninis pranešimas {{gavėjui}}", + "sendButton": "Siųsti", + "title": "Pokalbis", + "titleWithPolls": "Pokalbis", + "you": "Jūs" + }, + "chromeExtensionBanner": { + "buttonText": "Įdiekite Chrome plėtinį", + "dontShowAgain": "Daugiau nerodyti", + "installExtensionText": "Įdiekite „Google“ ir „Office 365“ kalendoriaus plėtinį" + }, + "connectingOverlay": { + "joiningRoom": "Jungiamasi prie jūsų susitikimo…" + }, + "connection": { + "ATTACHED": "Pridėta", + "AUTHENTICATING": "Tikrinama", + "AUTHFAIL": "Autorizavimas nepavyko", + "CONNECTED": "Prisijungta", + "CONNECTING": "Jungiamasi", + "CONNFAIL": "Prisijungimas nepavyko", + "DISCONNECTED": "Atsijungta", + "DISCONNECTING": "Atsijungiama", + "ERROR": "Klaida", + "FETCH_SESSION_ID": "Gaunamas sesijos-id…", + "GET_SESSION_ID_ERROR": "Sesijos-id gavimo klaida: {{kodas}}", + "GOT_SESSION_ID": "Gautas sesijos-id… Atlikta", + "LOW_BANDWIDTH": "Vaizdo įrašas, skirtas {{displayName}}, buvo išjungtas, kad būtų išsaugotas pralaidumas" + }, + "connectionindicator": { + "address": "Adresas:", + "bandwidth": "Nustatytas pralaidumas:", + "bitrate": "Bitrate:", + "bridgeCount": "Serverių skaičius: ", + "connectedTo": "Prijungta prie:", + "framerate": "Kadrų dažnis:", + "less": "Rodyti mažiau", + "localaddress": "Vietinis adresas:", + "localaddress_plural": "Vietiniai adresai:", + "localport": "Vietinė jungtis:", + "localport_plural": "Vietinės jungtys:", + "more": "Rodyti daugiau", + "packetloss": "Paketų praradimas:", + "quality": { + "good": "Gerai", + "inactive": "Neaktyvus", + "lost": "Prarastas", + "nonoptimal": "Neoptimalu", + "poor": "Prastai" + }, + "remoteaddress": "Nuotolinis adresas:", + "remoteaddress_plural": "Nuotoliniai adresai:", + "remoteport": "Nuotolinė jungtis:", + "remoteport_plural": "Nuotolinės jungtys:", + "resolution": "Raiška:", + "status": "Prisijungimas:", + "transport": "Transportas:", + "transport_plural": "Transportai:" + }, + "dateUtils": { + "earlier": "Anksčiau", + "today": "Šiandien", + "yesterday": "Vakar" + }, + "deepLinking": { + "appNotInstalled": "Jums reikia {{app}} mobiliosios programėlės, kad prisijungtumėt prie šio susitikimo savo telefone.", + "description": "Nieko neįvyko? Mes bandėm prijungti prie darbalaukio {{app}} programos. Bandykite dar sykį arba junkitės prie {{app}} naršyklės.", + "descriptionWithoutWeb": "Nieko neįvyko? Mes bandėm prijungti susitikimą prie {{app}} darbalaukio programos.", + "downloadApp": "Atsisiųsti programą", + "launchWebButton": "Paleisti svetainėje", + "openApp": "Tęsti mobiliaja programėle", + "title": "Paleidžiamas susitikimas {{app}}…", + "tryAgainButton": "Bandyti dar kartą darbalaukyje" + }, + "defaultLink": "e.g. {{url}}", + "defaultNickname": "ex. Jane Pink", + "deviceError": { + "cameraError": "Nepavyko prijungti kameros", + "cameraPermission": "Nepavyko gauti sutikimo kameros prijungimui", + "microphoneError": "Nepavyko prijungti mikrafono", + "microphonePermission": "Nepavyko gauti sutikimo mikrafono prijungimui" + }, + "deviceSelection": { + "noPermission": "Leidimas nesuteiktas", + "previewUnavailable": "Peržiūra negalima", + "selectADevice": "Pasirinkite prietaisą", + "testAudio": "Testuoti garsą" + }, + "dialOut": { + "statusMessage": "dabar yra {{status}}" + }, + "dialog": { + "Back": "Atgal", + "Cancel": "Atšaukti", + "IamHost": "Aš esu šeimininkas (-ė)", + "Ok": "Ok", + "Remove": "Pašalinti", + "Share": "Dalintis", + "Submit": "Pateikti", + "WaitForHostMsg": "Konferencija dar neprasidėjo. Jei jūs organizatorius, prašome tai patvirtinti. Jei ne, prašome palaukti organizatoriaus.", + "WaitingForHost": "Laukiama organizatoriaus…", + "Yes": "Taip", + "accessibilityLabel": { + "liveStreaming": "Tiesioginis srautas" + }, + "allow": "Leisti", + "alreadySharedVideoMsg": "Kitas naudotojas jau dalinasi vaizdu. Šiame susitikime leidžiama dalintis tik vienu vaizdo įrašu vienu metu.", + "alreadySharedVideoTitle": "Leidžiama dalintis tik vienu vaizdo įrašu vienu metu.", + "applicationWindow": "Programos langas", + "cameraConstraintFailedError": "Jūsų kamera neatitinka reikalavimų.", + "cameraNotFoundError": "Kamera nerasta.", + "cameraNotSendingData": "Mums nepavyko prijungti kameros. Patikrinkite, ar kita programa nenaudoja šio įrenginio, nustatymų meniu pasirinkite kitą įrenginį arba pabandykite iš naujo įkelti programą", + "cameraNotSendingDataTitle": "Mums nepavyko prijungti kameros", + "cameraPermissionDeniedError": "Jūs negavote leidimo naudotis savo kamera. Jūs vis tiek galite prisijungti prie susitikimo, tačiau kiti jūsų nematys. Pasinaudokit kameros mygtuku adreso laukelyje, jei norite tai pakeisti.", + "cameraUnknownError": "Įvyko klaida - negalite naudoti kameros.", + "cameraUnsupportedResolutionError": "Jūsų kamera nepalaiko reikalaujamos vaizdo raiškos.", + "close": "Uždaryti", + "conferenceDisconnectMsg": "Pasitikrinkite savo interneto ryšį. Perkrausime už {{seconds}} sek.…", + "conferenceDisconnectTitle": "Jūs buvote atjungta(-as).", + "conferenceReloadMsg": "Mes bandome tai pataisyti. Perkrausime už {{seconds}} sek.…", + "conferenceReloadTitle": "Apgailėstaujame, įvyko klaida.", + "confirm": "Patvirtinti", + "confirmNo": "Ne", + "confirmYes": "Taip", + "connectError": "Oi! Kažkas įvyko negerai, negalėjome jūsų prijungti prie susitikimo.", + "connectErrorWithMsg": "Oi! Kažkas įvyko negerai, negalėjome jūsų prijungti prie susitikimo.: {{msg}}", + "connecting": "Jungiame", + "contactSupport": "Palaikymo komanda", + "copy": "Kopijuoti", + "dismiss": "Atmesti", + "displayNameRequired": "Sveiki! Kuo jūs vardu?", + "done": "Atlikta", + "enterDisplayName": "Prašome įvesti savo vardą", + "error": "Klaida", + "externalInstallationMsg": "Jums reikia atsisiųsti mūsų darbalaukio dalinimosi plėtinį.", + "externalInstallationTitle": "Reikalingas plėtinys", + "goToStore": "Apsilankykite mūsų internetinėje parduotuvėje", + "gracefulShutdown": "Mūsų paslaugos šiuo metu neveikia. Prašome pabandyti vėliau.", + "incorrectPassword": "Neteisingi prisijungimo vardas arba slaptažodis", + "incorrectRoomLockPassword": "Slaptažodis neteisingas", + "inlineInstallExtension": "Įdiegti dabar", + "inlineInstallationMsg": "Jums reikia atsisiųsti mūsų darbalaukio dalinimosi plėtinį.", + "internalError": "Oi! Įvyko klaida: {{error}}", + "internalErrorTitle": "Vidinė klaida", + "kickMessage": "Galite susisiekti su {{participantDisplayName}} dėl daugiau informacijos.", + "kickParticipantButton": "Išspirti", + "kickParticipantDialog": "Ar jūs esate įsitikinę, kad norite išspirti šį naudotoją?", + "kickParticipantTitle": "Išspirti šį naudotoją?", + "kickTitle": "Oi! {{participantDisplayName}} Jus išspyrė iš susitikimo", + "liveStreaming": "Tiesioginė transliacija", + "liveStreamingDisabledForGuestTooltip": "Svečiai negali pradėti tiesioginės transliacijos.", + "liveStreamingDisabledTooltip": "Tiesioginė transliacija išjungta.", + "lockMessage": "Nepavyko užrakinti susitikimo.", + "lockRoom": "Pridėti susitikimą $t(lockRoomPasswordUppercase)", + "lockTitle": "Užrakinimas neįvyko", + "logoutQuestion": "Ar tikrai norite išeiti ir palikti susitikimą?", + "logoutTitle": "Atsijungti", + "maxUsersLimitReached": "Pasiektas dalyvių limitas. Ši konferencija jau yra pilna. Prašome susisiekti su susitikimo rengėju ir pabandyti dar kartą vėliau!", + "maxUsersLimitReachedTitle": "Dalyvių limitas pasiektas", + "micConstraintFailedError": "Jūsų mikrofonas nepatenkina tam tikrų mūsų reikalavimų.", + "micNotFoundError": "Mikrofonas nerastas.", + "micNotSendingData": "Nueikite į savo kompiuterio nustatymus, kad išjungtumėte begarsį rėžimą, o tada pakoreguokite garso lygį.", + "micNotSendingDataTitle": "Jūsų mikrofonas yra išjungtas jūsų kompiuterio nustatymuose", + "micPermissionDeniedError": "Jūs negavote leidimo naudotis mikrofonu. Jūs vis tiek galite prisijungti prie susitikimo, tačiau niekas jūsų negirdės. Naudokites kameros mygtuku įrankių juostoje, kad išspręstumėte šią problemą.", + "micUnknownError": "Jūs negalite naudotis mikrofonu dėl nežinomų priežasčių.", + "muteEveryoneDialog": "Ar jūs esate tikri, kad norite visus nutildyti? Tai padarę nebegalėsite jų pagarsinti, nebent jie patys išeis iš begarsio rėžimo.", + "muteEveryoneElseDialog": "Kartą juos nutildę, nebegalėsite jų pagarsinti, nebent jie patys išeis iš begarsio rėžimo.", + "muteEveryoneElseTitle": "Nutildykite visus išskyrus {{whom}}?", + "muteEveryoneSelf": "save", + "muteEveryoneStartMuted": "Nuo šiol visi įeiną į begarsį rėžimą", + "muteEveryoneTitle": "Nutildyti visus?", + "muteParticipantBody": "Nebegalėsite jų pagarsinti, nebent jie patys išeis iš begarsio rėžimo.", + "muteParticipantButton": "Nutildyti", + "muteParticipantDialog": "Ar jūs esate tikri, kad norite nutildytį šį naudotoją? Tai padarę nebegalėsite jo pagarsinti, nebent pats išeis iš begarsio rėžimo.", + "muteParticipantTitle": "Nutildyti šį dalyvį?", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "Pradėtas susitikimas $t(lockRoomPassword) yra nepalaikomas.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nepalaikoma", + "passwordRequired": "$t(lockRoomPasswordUppercase) privaloma", + "popupError": "Jūsų naršyklė blokuoja išsišokančius langus šioje svetainėje. Prašome išjungti šią funkciją per savo svetainės nustatymus ir bandyti iš naujo.", + "popupErrorTitle": "Išsišokantis langas užblokuotas", + "recording": "Įrašoma", + "recordingDisabledForGuestTooltip": "Svečiai negali pradėti įrašinėti.", + "recordingDisabledTooltip": "Įrašinėjimas išjungtas.", + "rejoinNow": "Persijungti dabar", + "remoteControlAllowedMessage": "{{user}} priėmė jūsų prašymą nuotoliniam valdymui!", + "remoteControlDeniedMessage": "{{user}} atmetė jūsų prašymą nuotoliniam valdymui!", + "remoteControlErrorMessage": "Įvyko klaida bandant siųsti prašymą dėl nuotolinio valdymo naudotojui {{user}}!", + "remoteControlRequestMessage": "Ar leisite naudotojui {{user}} naudotis jūsų darbalaukiu per nuotolinį valdymą?", + "remoteControlShareScreenWarning": "Jei paspausite \"Leisti\" jūs pasidalinsite savo ekranu!", + "remoteControlStopMessage": "Nuotolinio valdymo seansas baigėsi!", + "remoteControlTitle": "Nuotolinio valdymo darbalaukio kontrolė", + "removePassword": "Pašalinti $t(lockRoomPassword)", + "removeSharedVideoMsg": "Ar jūs esate tikri, kad norite pašalinti pasidalintą video?", + "removeSharedVideoTitle": "Remove shared video", + "reservationError": "Rezervavimo sistemos klaida", + "reservationErrorMsg": "Klaidos kodas: {{code}}, pranešimas: {{msg}}", + "retry": "Bandyti vėl", + "screenSharingFailedToInstall": "Oi! Jums nepavyko atsisiųsti ekrano dalinimosi papildinio.", + "screenSharingFailedToInstallTitle": "Nepavyko atsisiųsti ekrano dalinimosi papildinio", + "screenSharingFirefoxPermissionDeniedError": "Įvyko klaida kol mes bandėme pasidalinti jūsų ekrano vaizdu. Prašome įsitikinti, kad jūs davėte tam leidimą. ", + "screenSharingFirefoxPermissionDeniedTitle": "Oi! Mums nepavyko pasidalinti jūsų ekrano vaizdu!", + "screenSharingPermissionDeniedError": "Oi! Įvyko klaida dalinantis ekrano vaizdu. Perkraukite ir bandykite dar sykį.", + "sendPrivateMessage": "Jūs gavote privačią žinutę. Ar jūs planuojate į tai atsakyti privačiai, ar pasidalinti su grupe?", + "sendPrivateMessageCancel": "Nusiųsti į grupę", + "sendPrivateMessageOk": "Atsakyti privačiai", + "sendPrivateMessageTitle": "Siųsti privačiai?", + "serviceUnavailable": "Paslaugos neteikiamos", + "sessTerminated": "Skambutis nutrauktas", + "shareVideoLinkError": "Prašome pateikti teisinga adresą.", + "shareVideoTitle": "Dalintis video", + "shareYourScreen": "Dalintis ekrano vaizdu", + "shareYourScreenDisabled": "Ekrano dalinimasis negalimas.", + "shareYourScreenDisabledForGuest": "Svečiai negali dalintis ekrano vaizdu.", + "startLiveStreaming": "Pradėti tiesioginę transliaciją", + "startRecording": "Pradėti įrašymą", + "startRemoteControlErrorMessage": "Įvyko klaida pradedant nuotolinio valdymo sesiją!", + "stopLiveStreaming": "Sustabdyti tiesioginę transliaciją", + "stopRecording": "Stabdyti įrašymą", + "stopRecordingWarning": "Ar jūs esate įsitikinę, kad norite sustabdyti įrašymą?", + "stopStreamingWarning": "Ar esate įsitikinę, kad norite sustabdyti tiesioginę transliaciją?", + "streamKey": "Tiesioginės transliacijos kodas", + "thankYou": "Ačiū, kad naudojate {{appName}}!", + "token": "ženklas", + "tokenAuthFailed": "Atsiprašome, jūs negalite prisijungti prie šio skambučio.", + "tokenAuthFailedTitle": "Autentifikavimas neįvyko", + "transcribing": "Perrašymas", + "unlockRoom": "Pašalinti susitikimą $t(lockRoomPassword)", + "userPassword": "naudotojo slaptažodis", + "yourEntireScreen": "Jūsų visas ekranas" + }, + "documentSharing": { + "title": "Pasidalintas dokumentas" + }, + "feedback": { + "average": "Vidutiniškai", + "bad": "Blogai", + "detailsLabel": "Papasakokite daugiau apie tai.", + "good": "Gerai", + "rateExperience": "Įvertinkite savo susitikimo įspūdžius", + "veryBad": "Labai blogai", + "veryGood": "Labai gerai" + }, + "incomingCall": { + "answer": "Atsiliepti", + "audioCallTitle": "Gaunamas skambutis", + "decline": "Atmesti", + "productLabel": "iš Jitsi Susitikimo", + "videoCallTitle": "Gaunamas vaizdo skambutis" + }, + "info": { + "accessibilityLabel": "Rodyti informacija", + "addPassword": "Pridėti $t(lockRoomPassword)", + "cancelPassword": "Atšaukti $t(lockRoomPassword)", + "conferenceURL": "Adresas:", + "country": "Šalis", + "dialANumber": "Jei norite prisijungti prie susitikimo, įveskite vieną iš šių numerių ir tada įveskite pin kodą.", + "dialInConferenceID": "PIN kodas:", + "dialInNotSupported": "Atleiskite, numerio rinkimas šiuo metu nepalaikomas.", + "dialInNumber": "Numerio rinkimas:", + "dialInSummaryError": "Klaida pateikiant suvedimo informaciją. Pabandykite vėliau.", + "dialInTollFree": "Nemokama", + "genericError": "Ups, įvyko klaida", + "inviteLiveStream": "Jei norite peržiūrėti šio susitikimo tiesioginę transliaciją, paspauskite šią nuorodą: {{url}}", + "invitePhone": "Jei norite prisijungti telefonu, spauskite čia: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Ieškote kito numerio?\nPeržiūrėkite visus susitikimo numerius: {{url}}\n\n\nIf taip pat suvedant numerį iš telefono, galite prisijungti be garso: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Jūs esate kviečiama(-as) prisijungti prie susitikimo.", + "inviteURLFirstPartPersonal": "{{name}} jus kviečia į susitikimą.\n", + "inviteURLSecondPart": "\nPrisijungti prie susitikimo:\n{{url}}\n", + "label": "Susitikimo informacija", + "liveStreamURL": "Tiesioginė transliacija:", + "moreNumbers": "Daugiau numerių", + "noNumbers": "Nėra jokių numerių.", + "noPassword": "Nėra", + "noRoom": "Nebuvo jokio pasirinkto specifinio pokalbio.", + "numbers": "Suvestiniai numeriai", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Dalintis", + "tooltip": "Dalintis adresu ir suvestine informacija šiam susitikimui" + }, + "inlineDialogFailure": { + "msg": "Truputį apsirikome.", + "retry": "Bandyti dar kartą", + "support": "Palaikyti", + "supportMsg": "Jei tai vėl pasikartos, kreipkitės į" + }, + "inviteDialog": { + "alertText": "Nepavyko pridėti kai kurių naudotojų.", + "header": "Pakviesti", + "searchCallOnlyPlaceholder": "Įvesti telefono numerį", + "searchPeopleOnlyPlaceholder": "Ieškoti naudotojų", + "searchPlaceholder": "naudotojas arba telefono numeris", + "send": "Siųsti" + }, + "keyboardShortcuts": { + "focusLocal": "Koncentruotis į savo vaizdą", + "focusRemote": "Koncentruotis į kito naudotojo vaizdą", + "fullScreen": "Žiūrėti arba išeiti iš padidinto vaizdo rėžimo", + "keyboardShortcuts": "Klaviatūros spartieji klavišai", + "localRecording": "Rodyti arba slėpti vietinius įrašymo valdiklius", + "mute": "Nutildyti arba įjungti mikrofoną", + "pushToTalk": "Spausti, kad kalbėtumėte", + "raiseHand": "Pakelti arba nuleisti ranką", + "showSpeakerStats": "Rodyti kalbėtojo statistiką", + "toggleChat": "Atverti arba užverti susirašinėjimą", + "toggleFilmstrip": "Rodyti arba slėpti vaizdo miniatiūrą", + "toggleScreensharing": "Perjungimas tarp kameros ir vaizdo dalinimosi", + "toggleShortcuts": "Rodyti arba slėpti klaviatūros sparčiuosius klavišus", + "videoMute": "Įjungti arba išjungti kamerą", + "videoQuality": "Reguliuoti pokalbio kokybę" + }, + "liveStreaming": { + "busy": "Mes reguliuojam transliacijos paleidimo išteklius. Pabandykite dar sykį po kelių minučių.", + "busyTitle": "Visi srautai šiuo metu užimti", + "changeSignIn": "Pakeisti paskyras.", + "choose": "Pasirinkti tiesioginę transliaciją", + "chooseCTA": "Pasirinkti srauto variantą. Jūs šiuo metu prisijungę kaip {{email}}.", + "enterStreamKey": "Įveskite savo YouTube tiesioginės transliacijos raktažodį čia.", + "error": "Tiesioginė transliacija neįvyko. Pabandykite dar kartą.", + "errorAPI": "Įvyko klaida prisijungiant prie Youtube transliacijos. Pabandykite prisijungti dar kartą.", + "errorLiveStreamNotEnabled": "Tiesioginė transliacija nėra galima paskyrai {{email}}. Įjunkite tiesioginį srautą arba prisijunkite prie paskyros, kurioje įjungta tiesioginė transliacija.", + "expandedOff": "Tiesioginė transliacija sustojo", + "expandedOn": "Šiuo metu susitikimas transliuojamas per YouTube.", + "expandedPending": "Tiesioginė transliacija prasideda…", + "failedToStart": "Nepavyko pajungti tiesioginės transliacijos", + "getStreamKeyManually": "Mums nepavyko atverti jokios tiesioginės transliacijos. Pabandykite suvesti tiesioginės transliacijos raktažodį iš Youtube.", + "invalidStreamKey": "Tiesioginės transliacijos raktažodis neteisingas.", + "off": "Tiesioginė transliacija sustojo", + "offBy": "{{name}} sustabdė srautą", + "on": "Tiesioginė transliacija", + "onBy": "{{name}} pradėjo tiesioginę transliaciją", + "pending": "Pradedama tiesioginė transliacija…", + "serviceName": "Tiesioginė transliacijos tarnyba", + "signIn": "Prisijunkite su Google", + "signInCTA": "Prisijunkite arba įveskite raktažodį iš Youtube.", + "signOut": "Atsijungti", + "signedInAs": "Jūs šiuo metu prisijungęs(-usi) kaip :", + "start": "Pradėti tiesioginę transliaciją", + "streamIdHelp": "Kas tai?", + "title": "Tiesioginis srautas", + "unavailableTitle": "Tiesioginė transliacija negalima" + }, + "localRecording": { + "clientState": { + "off": "Išjungta", + "on": "Įjungta", + "unknown": "Nežinomas" + }, + "dialogTitle": "Vietos įrašų kontrolė", + "duration": "Trukmė", + "durationNA": "N/A", + "encoding": "Kodavimas ", + "label": "LOR", + "labelToolTip": "Vietinis įrašymas yra užimtas", + "localRecording": "Vietinis įrašymas", + "me": "Aš", + "messages": { + "engaged": "Vietinis įrašymas yra užimtas.", + "finished": "Įrašymo sesija {{token}} užbaigta. Prašome atsiųsti įrašo failą vadovui.", + "finishedModerator": "Įrašymo sesija {{token}} užbaigta. Vietinio takelio įrašymas užbaigtas. Paprašykite kitų dalyvių atsiųsti savo įrašus.", + "notModerator": "Jūs ne vadovas. Jūs negalite pradėti arba užbaigti vietinį įrašymą." + }, + "moderator": "Vadovas", + "no": "Ne", + "participant": "Dalyvis", + "participantStats": "Dalyvio statistika", + "sessionToken": "Sesijos ženklas", + "start": "Pradėti įrašą", + "stop": "Užbaigti įrašą", + "yes": "Taip" + }, + "lockRoomPassword": "slaptažodis", + "lockRoomPasswordUppercase": "Slaptažodis", + "lonelyMeetingExperience": { + "button": "Pakvieskite kitus", + "youAreAlone": "Jūs vienintelis(-ė) šiame susitikime" + }, + "me": "Aš", + "notify": { + "connectedOneMember": "{{name}} prisijungė prie susitikimo", + "connectedThreePlusMembers": "{{name}} ir {{count}} kiti prisijungė prie susitikimo", + "connectedTwoMembers": "{{first}} ir {{second}} prisijungė prie susitikimo", + "disconnected": "atsijungė", + "focus": "Fokusuoti konferenciją", + "focusFail": "{{component}} nėra pasiekiamas - bandyti už {{ms}} sek. ", + "grantedTo": "Vadovo teisės suiteikiamos {{to}}!", + "invitedOneMember": "{{name}} buvo pakviesta(-as)", + "invitedThreePlusMembers": "{{name}} ir {{count}} kiti buvo pakviesti", + "invitedTwoMembers": "{{first}} ir {{second}} buvo pakviesti", + "kickParticipant": "{{kicked}} buvo išspirtas naudotojo {{kicker}}", + "me": "Aš", + "moderator": "Vadovo teisės suteiktos!", + "muted": "Jūs pradėjote nutildytą pokalbį.", + "mutedRemotelyDescription": "Jūs visada galite įsijungti garsą, kai norėsite. Įsijunkite garsą vėl, kai nuspresite, jog tai netrukdo susitikimui.", + "mutedRemotelyTitle": "Jūs buvote nutildyta(-as) naudotojo {{participantDisplayName}}!", + "mutedTitle": "Jūsų garsas nutildytas!", + "newDeviceAction": "Naudoti", + "newDeviceAudioTitle": "Aptiktas naujas įrašo įrenginys", + "newDeviceCameraTitle": "Aptikta nauja kamera", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) pašalintas kito naudotojo", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) nustatyta kito naudotojo", + "raisedHand": "{{name}} norėtų kalbėti.", + "somebody": "Kažkas", + "startSilentDescription": "Persijunkite prie susitikimo, kad įjungtumėte garsą", + "startSilentTitle": "Jūs prisijungėte be jokios garso išvesties!", + "suboptimalBrowserWarning": "Mes apgailėstaujame, kad jūsų susitikimo įspūdžiai nėra tokie, kokių tikėjotės. Mes visada ieškome būdų kaip patobulėti, bet kol kas bandykite tai fully supported browsers.", + "suboptimalExperienceTitle": "Naršyklės įspėjimas", + "unmute": "Įjungti garsą" + }, + "passwordDigitsOnly": "Daugiausia {{number}} skaičių", + "passwordSetRemotely": "nustatytas kito naudotojo", + "polls": { + "errors": { + "notUniqueOption": "Parinktys turi būti unikalios" + } + }, + "poweredby": "pateikiamas", + "presenceStatus": { + "busy": "Užimtas", + "calling": "Skambinama…", + "connected": "Prisijungta", + "connecting": "Prisijungiama…", + "connecting2": "Prisijungiama*…", + "disconnected": "Atsijungta", + "expired": "Pasibaigęs", + "ignored": "Ignoruojamas", + "initializingCall": "Inicijuojamas skambutis…", + "invited": "Pakviestas", + "rejected": "Atmestas", + "ringing": "Skambina…" + }, + "profile": { + "setDisplayNameLabel": "Įveskite savo vardą", + "setEmailInput": "Įveskite savo el. paštą", + "setEmailLabel": "Parinkite savo „gravataro“ el. paštą", + "title": "Profilis" + }, + "raisedHand": "Norėtų kalbėti", + "recording": { + "authDropboxText": "Įkelti į Dropbox", + "availableSpace": "Galima vieta: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)", + "beta": "BETA", + "busy": "Mes dirbame, kad atlaisvintume įrašo išteklius. Prašome pabandyti dar kartą po kelių minučių.", + "busyTitle": "Visi įrašymo įrenginiai šiuo metu yra užimti", + "error": "Įrašymas nepavyko. Bandykite dar kartą.", + "expandedOff": "Įrašymas buvo sustabdytas", + "expandedOn": "Šis susitikimas šiuo metu yra įrašomas.", + "expandedPending": "Įrašymas prasidėjo…", + "failedToStart": "Nepavyko pradėti įrašymo", + "fileSharingdescription": "Dalintis įrašu su kitais naudotojais", + "live": "GYVAI", + "loggedIn": "Prisijungę kaip {{userName}}", + "off": "Įrašas sustabdytas", + "offBy": "{{name}} sustabdė įrašą", + "on": "Įrašinėjama", + "onBy": "{{name}} pradėjo įrašą", + "pending": "Ruošiama įrašinėti susitikimą…", + "rec": "REC", + "serviceDescription": "Jūsų įrašą išssaugos įrašymo tarnyba", + "serviceName": "Įrašymo tarnyba", + "signIn": "Prisijungti", + "signOut": "Atsijungti", + "title": "Įrašoma", + "unavailable": "Oi! {{serviceName}} šiuo metu nėra pasiekiamas. Mes dirbame, kad išspręsti šią problemą. Pabandykite dar kartą vėliau.", + "unavailableTitle": "Įrašas negalimas" + }, + "sectionList": { + "pullToRefresh": "Spustelėkite, kad įkelti iš naujo" + }, + "settings": { + "calendar": { + "about": "{{appName}} kalendoriaus integracija yra naudojama, kad saugiai išsaugoti ir sekti būsimus įvykius.", + "disconnect": "Atsijungti", + "microsoftSignIn": "Prisijungti su Microsoft", + "signedIn": "Šiuo metu kalendoriuje išsaugoti įvykiai pasiekiami {{email}}. Paspauskite Atsijungti mygtuką, kad sustabdyti prieigą prie kalendoriuje sužymėtų įvykių.", + "title": "Kalendorius" + }, + "devices": "Įranga", + "followMe": "Visi seka mane", + "language": "Kalba", + "loggedIn": "Prisijungęs kaip {{name}}", + "moderator": "Vedėjas", + "more": "Daugiau", + "name": "Vardas", + "noDevice": "Nieko", + "selectAudioOutput": "Įrašo išeiga", + "selectCamera": "Kamera", + "selectMic": "Mikrofonas", + "startAudioMuted": "Visi pradeda nutildytu rėžimu", + "startVideoMuted": "Visi pradeda nematomu rėžimu", + "title": "Nustatymai" + }, + "settingsView": { + "advanced": "Sudėtingesnis", + "alertOk": "OK", + "alertTitle": "Įspėjimas", + "alertURLText": "Jūsų ivestas serverio URL yra neteisingas", + "buildInfoSection": "Programos informacija", + "conferenceSection": "Konferencija", + "disableCallIntegration": "Atjungti vietinių skambučių integraciją", + "disableP2P": "Išjungti Peer-To-Peer režimą", + "displayName": "Rodomas vardas", + "email": "El. paštas", + "header": "Nustatymai", + "profileSection": "Profilis", + "serverURL": "Serverio URL", + "showAdvanced": "Rodyti sudėtingesnius nustatymus", + "startWithAudioMuted": "Pradėti nutildytu rėžimu", + "startWithVideoMuted": "Pradėti be vaizdo", + "version": "Versija" + }, + "share": { + "dialInfoText": "\n\n=====\n\nTiesiog norite paskambinti į savo telefoną?\n\n{{defaultDialInNumber}}Spustelėkite šią nuorodą, jei norite pamatyti šio susitikimo telefono numerius\n{{dialInfoPageUrl}}", + "mainText": "Spustelėkite šią nuorodą, kad prisijungtumėte prie susitikimo:\n{{roomUrl}}" + }, + "speaker": "Garsiakalbis", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Vardas", + "search": "Ieškoti", + "searchHint": "Ieškokite dalyvių", + "seconds": "{{count}}s", + "speakerStats": "Garsiakalbio nuostatos", + "speakerTime": "Garsiakalbio laikas" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} reikalingas mikrofonas ir kamera." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Persijungti", + "text": "Paspauskite Persijungimo mygtuką, kad persijungti.", + "title": "Jūsų vaizdo skambutis buvo nutrauktas, nes jūsų kompiuteris atsijungė." + }, + "toolbar": { + "Settings": "Nustatymai", + "accessibilityLabel": { + "Settings": "Perjungti nustatymus", + "audioOnly": "Tik audio perjungimas", + "audioRoute": "Pasirinkite garso įrenginį", + "callQuality": "Reguliuoti vaizdo kokybę", + "cc": "Subtitru perjungimas", + "chat": "Susirašinėjimų lango perjungimas", + "document": "Pasidalintų dokumentų perjungimas", + "download": "Atsisiųskite mūsų programėles", + "feedback": "Palikite atsiliepimą", + "fullScreen": "Perjungti į pilno vaizdo rėžimą", + "hangup": "Palikti skambutį", + "help": "Pagalba", + "invite": "Pakviesti žmones", + "kick": "Išspirti dalyvį", + "localRecording": "Perjungti vietinę įrašų kontrolę", + "lockRoom": "Uždėti slaptažodį šiam susitikimui", + "moreActions": "Įjungti meniu „daugiau nustatymų“", + "moreActionsMenu": "Daugiau nustatymų", + "moreOptions": "Rodyti daugiau variantų", + "mute": "Perjungti begarsį rėžimą", + "muteEveryone": "Nutildyti visus", + "pip": "Paveikslėlio su paveikslėliu perjungimas", + "privateMessage": "Siųsti privačią žinutę", + "profile": "Redaguoti profilį", + "raiseHand": "Perjungti rankos pakėlimą", + "recording": "Perjungti įrašymą", + "remoteMute": "Nutildyti dalyvius", + "shareRoom": "Pakviesti ką nors", + "shareYourScreen": "Perjungti vaizdo dalinimasi", + "sharedvideo": "Perjungti vaizdo dalinimasi", + "shortcuts": "Perjungti trumpinius", + "show": "Rodyti viešai", + "speakerStats": "Perjungti garsiakalbio nuostatas", + "tileView": "Perjungti vaizdą", + "toggleCamera": "Perjungti kamerą", + "toggleFilmstrip": "Toggle filmstrip", + "videoblur": "Įjungti fono suliejimą", + "videomute": "Perjungti vaizdo išjungimą" + }, + "addPeople": "Pridėti žmonių prie pokalbio", + "audioOnlyOff": "Atjungti žemo pralaidumo rėžimą", + "audioOnlyOn": "Įjungti žemo pralaidumo rėžimą", + "audioRoute": "Pasirinkti garso įrenginį", + "authenticate": "Autentifikuoti", + "callQuality": "Reguliuoti vaizdo kokybę", + "chat": "Atverti / Užverti susirašinėjimą", + "closeChat": "Užverti susirašinėjimą", + "documentClose": "Užverti pasidalintus dokumentus", + "documentOpen": "Atverti pasidalintus dokumentus", + "download": "Atsisiųskite mūsų programėles", + "enterFullScreen": "Peržiūrėti pilno vaizdo rėžimą", + "enterTileView": "Įeiti į rodinį", + "exitFullScreen": "Išeiti iš pilno vaizdo rėžimo", + "exitTileView": "Išeiti iš rodinio", + "feedback": "Palikti atsiliepimą", + "hangup": "Išeiti", + "help": "Pagalba", + "invite": "Pakviesti žmones", + "login": "Prisijungti", + "logout": "Atsijungti", + "lowerYourHand": "Nuleisti ranką", + "moreActions": "Daugiau veiksmų", + "moreOptions": "Daugiau parinkčių", + "mute": "Begarsis / Su garsu", + "muteEveryone": "Nutildyti visus", + "noAudioSignalDesc": "Jei specialiai nenutildėte tai sistemoje, apsvarstykite perjungti įrangą.", + "noAudioSignalDescSuggestion": "Jei specialiai nenutildėte tai sistemoje, apsvarstykite perjungti į pasiūlytą įrangą.", + "noAudioSignalDialInDesc": "Galite skambinti naudodami:", + "noAudioSignalDialInLinkDesc": "Numeriai skambučiams", + "noAudioSignalTitle": "Nėra jokios mikrafono įvesties!", + "noisyAudioInputDesc": "Atrodo, kad jūsų mikrofonas turi trikdžių, prašome jį nutildyti arba pakeisti įrangą.", + "noisyAudioInputTitle": "Jūsų mikrofonas per garsus!", + "openChat": "Atverti susirašinėjimą", + "pip": "Atverti paveikslo su paveikslu rėžimą", + "privateMessage": "Nusiųskite privačią žinutę", + "profile": "Redaguoti profilį", + "raiseHand": "Pakelti / Nuleisti ranką", + "raiseYourHand": "Pakelti ranką", + "shareRoom": "Pakviesti ką nors", + "sharedvideo": "Pasidalinkite video", + "shortcuts": "Peržiūrėti trumpinius", + "speakerStats": "Garsiakalbio pasirinktys", + "startScreenSharing": "Pradėti ekrano dalinimasi", + "startSubtitles": "Įjungti subtitrus", + "startvideoblur": "Sulieti foną", + "stopScreenSharing": "Nebesidalinti vaizdu", + "stopSharedVideo": "Išjungti vaizdą", + "stopSubtitles": "Išjungti subtitrus", + "stopvideoblur": "Nesulieti fono", + "talkWhileMutedPopup": "Ar bandote kalbėti? Jūs esate begarsio rėžime.", + "tileViewToggle": "Perjungti rodinį", + "toggleCamera": "Perjungti kamerą", + "videomute": "Įjungti / Išjungti kamerą" + }, + "transcribing": { + "ccButtonTooltip": "Įjungti / Išjungti titrus", + "error": "Titrų atpažinimas nesuveikė. Bandykite dar kartą.", + "expandedLabel": "Šiuo metu vyksta perrašymas", + "failedToStart": "Perrašymas neprasidėjo", + "labelToolTip": "Susitikimas yra perrašomas", + "off": "Perrašymas sustojo", + "pending": "Ruošiama perrašyti susitikimą…", + "start": "Pradėti rodyti subtitrus", + "stop": "Nustoti rodyti subtitrus", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Prašome duoti leidimo, kad galėtumėte naudotis kamera ir mikrofonu." + }, + "videoSIPGW": { + "busy": "Mes dirbame, kad atlaisvinti išteklius. Prašome pabandyti dar kartą po kelių minučių.", + "busyTitle": "Paslaugos šiuo metu neteikiamos", + "errorAlreadyInvited": "{{displayName}} jau yra pakviestas(-a)", + "errorInvite": "Konferencija dar nenumatyta. Pabandykite dar kartą.", + "errorInviteFailed": "Mes dirbame, kad išspręstume šią problemą. Pabandykite vėliau.", + "errorInviteFailedTitle": "Pakvietimas {{displayName}} neįvyko", + "errorInviteTitle": "Klaida kviečiant susitikimą", + "pending": "{{displayName}} buvo pakviestas(-a)" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Jūs mažo pralaidumo būsenoje. Šiame rėžime jūs galėsite tik girdėti ir dalintis ekranu.", + "callQuality": "Vaizdo raiška", + "hd": "HD", + "hdTooltip": "Vaizdas aukštos kokybės", + "highDefinition": "Aukšta kokybė", + "labelTooiltipNoVideo": "Jokio vaizdo", + "labelTooltipAudioOnly": "Žemo pralaidumo būsena aktyvuota", + "ld": "LD", + "ldTooltip": "Žemos kokybės video peržiūra", + "lowDefinition": "Žema kokybė", + "onlyAudioAvailable": "Galimas tik garso perdavimas", + "onlyAudioSupported": "Mes palaikome tik garso perdavimą šioje naršyklėje.", + "sd": "SD", + "sdTooltip": "Vidutinės kokybės video peržiūra", + "standardDefinition": "Vidutinė kokybė" + }, + "videothumbnail": { + "domute": "Nutildyti", + "domuteOthers": "Nutildyti visus kitus", + "flip": "Apversti", + "kick": "Išspirti lauk", + "moderator": "Vadovas", + "mute": "Dalyvis nutildytas", + "muted": "Nutildytas", + "remoteControl": "Įjungti / Išjungti nuotolinį valdymą", + "show": "Rodyti viešai", + "videomute": "Dalyvis išjungė vaizdą" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Spustelkite, kad prisijungtumėt", + "roomname": "Įveskite bendravimo kambario pavadinimą" + }, + "appDescription": "Pirmyn, bendraukite su savo draugais per vaizdo skambučius bei pokalbius. Kvieskite visus savo pažįstamus. {{app}} yra pilnai apsaugota, ryšys šifruotas, 100% atvirojo kodo - tai video konferencijų bei bendradarbiavimo sprendimas, kurį galite naudoti visuomet, kiekvieną dieną ir visiškai nemokamai - be jokių registracijų ar prisijungimų.", + "audioVideoSwitch": { + "audio": "Balsas", + "video": "Video" + }, + "calendar": "Calendar", + "connectCalendarButton": "Prijunkite savo kalendorių", + "connectCalendarText": "Prijunkite savo kalendorių, kad stebėti visus savo būsimus susitikimus čia {{app}}. Plius, pridėkite {{provider}} susitikimus į savo kalendorių ir pradėkite juos vienu paspaudimu.", + "enterRoomTitle": "Pradėkite savo susitikimą", + "go": "PIRMYN", + "goSmall": "PIRMYN", + "info": "Info", + "join": "KURTI / PRISIJUNGTI", + "privacy": "Privatumas", + "recentList": "Paskutinis", + "recentListDelete": "Ištrinti", + "recentListEmpty": "Jūsų paskutinis sąrašas yra tuščias. Susisiekite su savo komanda ir jūs rasite savo paskutinius susitikimus čia.", + "reducedUIText": "Sveiki atvyke į {{app}}!", + "roomNameAllowedChars": "Susitikimo pavadinime negali būti šių ženklų: ?, &, :, ', \", %, #.", + "roomname": "Įveskite pokalbių kambario pavadinimą", + "roomnameHint": "Įveskite sugalvotą pavadinimą arba pokalbio kambario adresą (URL), kad prisijungtumėte. Jūs galite sugalvoti savo pavadinimą, bet įsitikinkite, kad ir kiti dalyviai, su kuriais bendrausite, taip pat žinos tikslų pavadinimą tam, kad įeitų į tą patį pokalbių kambarį.", + "sendFeedback": "Palikite atsiliepimą", + "terms": "Sąlygos", + "title": "Saugus, pasiekiamas ir visiškai nemokamas video konferencijų rengimas" + } +} diff --git a/lang/main-lv.json b/lang/main-lv.json new file mode 100644 index 0000000..f09fed2 --- /dev/null +++ b/lang/main-lv.json @@ -0,0 +1,1661 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Sapulces saite: {{url}}" + }, + "add": "Uzaicināt", + "addContacts": "Uzaicināt savus kontaktus", + "contacts": "kontakti", + "copyInvite": "Kopēt sapulces ielūgumu", + "copyLink": "Kopēt sapulces saiti", + "copyStream": "Kopēt tiešraides straumēšanas saiti", + "countryNotSupported": "Šī valsts pagaidām netiek atbalstīta.", + "countryReminder": "Zvaniet ārpus ASV? Lūdzu norādiet valsts kodu!", + "defaultEmail": "Jūsu noklusējuma e-pasts", + "disabled": "Jums nav tiesību uzaicināt.", + "failedToAdd": "Neizdevās pievienot dalībniekus", + "googleEmail": "Google e-pasts", + "inviteMoreHeader": "Jūs esat vienīgais sapulcē", + "inviteMoreMailSubject": "Pievienojieties {{appName}} sapulcei", + "inviteMorePrompt": "Uzaicināt dalībniekus", + "linkCopied": "Saite ir nokopēta starpliktuvē", + "noResults": "Nav atbilstošu meklēšanas rezultātu", + "outlookEmail": "Outlook e-pasts", + "phoneNumbers": "tālruņu numuri", + "searching": "Meklēšana…", + "shareInvite": "Kopīgojiet sapulces ielūgumu", + "shareLink": "Kopīgojiet sapulces saiti, lai uzaicinātu citus", + "shareStream": "Kopīgojiet tiešraides straumēšanas saiti", + "sipAddresses": "sip adreses", + "telephone": "Telefons: {{number}}", + "title": "Uzaicināt cilvēkus uz šo sapulci", + "yahooEmail": "Yahoo e-pasts" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Auto audio", + "headphones": "Austiņas", + "none": "Audio ierīces nav atrastas", + "phone": "Telefons", + "speaker": "Skaļrunis" + }, + "audioOnly": { + "audioOnly": "Maza tīkla kapacitāte (tikai skaņa)" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "piem. 10000000 priekš 10 Mbps", + "assumedBandwidthBpsWarning": "Augstākas vērtības var izraisīt tīkla problēmas.", + "customValue": "pielāgota vērtība", + "customValueEffect": "lai iestatītu faktisko bps vērtību", + "leaveEmpty": "atstāt tukšu", + "leaveEmptyEffect": "lai varētu veikt aplēses", + "possibleValues": "Iespējamās vērtības", + "setAssumedBandwidthBps": "Pieņemtais joslas platums (bps)", + "title": "Joslas platuma iestatījumi", + "zeroEffect": "lai atspējotu video" + }, + "breakoutRooms": { + "actions": { + "add": "Pievienot grupas istabu", + "autoAssign": "Automātiski sadalīt pa grupu istabām", + "close": "Aizvērt", + "join": "Pievienoties", + "leaveBreakoutRoom": "Iziet no grupas istabas", + "more": "Vairāk", + "remove": "Noņemt", + "rename": "Pārsaukt", + "renameBreakoutRoom": "Pārsaukt grupas istabu", + "sendToBreakoutRoom": "Nosūtīt dalībnieku uz:" + }, + "breakoutList": "Grupas saraksts", + "buttonLabel": "Grupu istabas", + "defaultName": "Grupas istaba #{{index}}", + "hideParticipantList": "Slēpt dalībnieku sarakstu", + "mainRoom": "Galvenā istaba", + "notifications": { + "joined": "Pievienojas \"{{name}}\" grupas istabai", + "joinedMainRoom": "Pievienojas galvenajai istabai", + "joinedTitle": "Grupu Istabas" + }, + "showParticipantList": "Rādīt dalībnieku sarakstu", + "title": "Grupu Istabas" + }, + "calendarSync": { + "addMeetingURL": "Pievienot sapulces saiti", + "confirmAddLink": "Vai vēlaties šim kalendāra notikumam pievienot Jitsi saiti?", + "error": { + "appConfiguration": "Nepareizi iestatīta kalendāra integrācija.", + "generic": "Radās kļūda. Lūdzu, pārbaudiet kalendāra iestatījumus vai mēģiniet atsvaidzināt kalendāru.", + "notSignedIn": "Autentificējoties, lai skatītu kalendāra notikumus, radās kļūda. Lūdzu, pārbaudiet kalendāra iestatījumus un mēģiniet pieteikties vēlreiz." + }, + "join": "Pievienoties", + "joinTooltip": "Pievienoties sapulcei", + "nextMeeting": "Nākamā sapulce", + "noEvents": "Nav ieplānotu notikumu.", + "ongoingMeeting": "Pašreizējā sapulce", + "permissionButton": "Atvērt iestatījumus", + "permissionMessage": "Nepieciešama atļauja piejai kalendāram, lai parādītu jūsu sapulces lietotnē.", + "refresh": "Atsvaidzināt kalendāru", + "today": "Šodien" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Izvēlieties skaņas ierīci" + }, + "labels": { + "buttonLabel": "Auto režīms", + "title": "Auto režīms", + "videoStopped": "Jūsu vide ir apturēts" + } + }, + "chat": { + "disabled": "Tērzēšanas ziņojumu sūtīšana ir atspējota.", + "enter": "Ienākt istabā", + "error": "Kļūda: Jūsu ziņa netika nosūtīta. Cēlonis: {{error}}", + "fieldPlaceHolder": "Rakstiet ziņu šeit", + "lobbyChatMessageTo": "Vestibila tērzēšanas ziņa adresātam {{recipient}}", + "message": "Ziņa", + "messageAccessibleTitle": "{{user}} saka:", + "messageAccessibleTitleMe": "es saku:", + "messageTo": "Privāta ziņa adresātam {{recipient}}", + "messagebox": "Rakstiet ziņu", + "newMessages": "Jaunas ziņas", + "nickname": { + "popover": "Izvēlieties vārdu", + "title": "Ierakstiet vārdu, lai izmantotu tērzēšanā", + "titleWithCC": "Ievadiet segvārdu, lai izmantotu tērzēšanā un slēptos subtitros", + "titleWithPolls": "Ierakstiet segvārdu, lai izmantotu tērzēšanā un aptaujās", + "titleWithPollsAndCC": "Ievadiet segvārdu, lai izmantotu tērzēšanā, aptaujās un slēptos subtitros", + "titleWithPollsAndCCAndFileSharing": "Ievadiet segvārdu, lai izmantotu tērzēšanā, aptaujās, slēptos subtitros un failos" + }, + "noMessagesMessage": "Sapulcē pagaidām nav nevienas ziņas. Uzsāciet saraksti!", + "privateNotice": "Privāta ziņa adresātam {{recipient}}", + "sendButton": "Nosūtīt", + "smileysPanel": "Emociju panelis", + "systemDisplayName": "Sistēma", + "tabs": { + "chat": "Tērzēšana", + "closedCaptions": "Slēptie subtitri", + "fileSharing": "Faili", + "polls": "Aptaujas" + }, + "title": "Tērzēšana", + "titleWithCC": "Tērzēšana un Slēptie subtitri", + "titleWithFeatures": "Tērzēšana un", + "titleWithFileSharing": "Faili", + "titleWithPolls": "Tērzēšana un Aptaujas", + "you": "jūs" + }, + "chromeExtensionBanner": { + "buttonText": "Uzstādīt Chrome spraudni", + "buttonTextEdge": "Uzstādīt Edge spraudni", + "close": "Aizvērt", + "dontShowAgain": "Nerādīt man šo vēlreiz", + "installExtensionText": "Uzstādīt spraudni Google kalendāra un Office 365 integrācijai" + }, + "closedCaptionsTab": { + "emptyState": "Slēpto subtitru saturs būs pieejams, tiklīdz moderators uzsāks to.", + "startClosedCaptionsButton": "Uzsākt slēptos subtitrus" + }, + "connectingOverlay": { + "joiningRoom": "Notiek pieslēgšanās jūsu sapulcei…" + }, + "connection": { + "ATTACHED": "Piestiprināts", + "AUTHENTICATING": "Notiek autentifikācija", + "AUTHFAIL": "Autentifikācija neizdevās", + "CONNECTED": "Pieslēdzies", + "CONNECTING": "Notiek pieslēgšanās", + "CONNFAIL": "Pieslēgšanās neizdevās", + "DISCONNECTED": "Atvienots", + "DISCONNECTING": "Notiek atvienošanās", + "ERROR": "Kļūda", + "FETCH_SESSION_ID": "Tiek iegūts sesijas-id…", + "GET_SESSION_ID_ERROR": "Notika sesijas-id kļūda: {{code}}", + "GOT_SESSION_ID": "Tiek iegūts sesijas-id… Darīts", + "LOW_BANDWIDTH": "{{displayName}} video tika izslēgts, lai mazinātu tīkla noslodzi" + }, + "connectionindicator": { + "address": "Adrese:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Paredzamā tīkla caurlaidība:", + "bitrate": "Bitreits:", + "bridgeCount": "Serveru skaits:", + "codecs": "Kodeki (A/V): ", + "connectedTo": "Pieslēdzies pie:", + "e2eeVerified": "E2EE apstiprināts:", + "framerate": "Kadru ātrums/skaits:", + "less": "Rādīt mazāk", + "localaddress": "Lokālā adrese:", + "localaddress_plural": "Lokālās adreses:", + "localport": "Lokālais ports:", + "localport_plural": "Lokālie porti:", + "maxEnabledResolution": "sūtīt maksimums", + "more": "Rādīt vairāk", + "no": "nē", + "packetloss": "Pakešu zudums:", + "participant_id": "Dalībnieka id:", + "quality": { + "good": "Labs", + "inactive": "Neaktīvs", + "lost": "Zudumi", + "nonoptimal": "Neoptimāls", + "poor": "Slikts" + }, + "remoteaddress": "Attālinātā adrese:", + "remoteaddress_plural": "Attālinātās adreses:", + "remoteport": "Attālinātais ports:", + "remoteport_plural": "Attālinātie porti:", + "resolution": "Izšķirtspēja:", + "savelogs": "Saglabāt auditācijas pierakstus", + "status": "Savienojums:", + "transport": "Nosūtīšanas metode:", + "transport_plural": "Nosūtīšanas metodes:", + "video_ssrc": "Video SSRC:", + "yes": "jā" + }, + "dateUtils": { + "earlier": "Agrāk", + "today": "Šodien", + "yesterday": "Vakar" + }, + "deepLinking": { + "appNotInstalled": "Lai pievienotos šai sapulcei savā tālrunī, ir nepieciešama mobilā lietotne {{app}}.", + "description": "Nekas nenotika? Mēs centāmies palaist jūsu sapulci darbvirsmas lietotnē {{app}}. Mēģiniet vēlreiz vai palaidiet to tīmekļa pārlūkā {{app}}.", + "descriptionNew": "Nekas nenotika? Mēs centāmies palaist jūsu sapulci darbvirsmas lietotnē {{app}}.

Varat mēģināt vēlreiz vai palaist to tīmeklī.", + "descriptionWithoutWeb": "Nekas nenotika? Mēs centāmies palaist jūsu sapulci darbvirsmas lietotnē {{app}}", + "downloadApp": "Lejuplādēt lietotni", + "downloadMobileApp": "Lejupielādējiet no App Store", + "ifDoNotHaveApp": "Ja jums vēl nav lietotnes:", + "ifHaveApp": "Ja jums jau ir lietotne:", + "joinInApp": "Pievienojieties šai sapulcei, izmantojot lietotni", + "joinInAppNew": "Pievienojieties lietotnē", + "joinInBrowser": "Pievienojieties pārlūkā", + "launchMeetingLabel": "Kā vēlaties pievienoties šai sapulcei?", + "launchWebButton": "Palaist tīmekļa pārlūkā", + "noDesktopApp": "Vai jums nav lietotnes?", + "noMobileApp": "Vai jums nav lietotnes?", + "or": "vai", + "termsAndConditions": "Turpinot jūs piekrītat mūsu pakalpojumu sniegšanas noteikumiem.", + "title": "Notiek jūsu sapulces palaišana lietotnē {{app}}…", + "titleNew": "Notiek jūsu sapulces palaišana…", + "tryAgainButton": "Mēģināt vēlreiz darbvirsmā", + "unsupportedBrowser": "Izskatās, ka izmantojat pārlūkprogrammu, kuru mēs neatbalstām." + }, + "defaultLink": "piem. {{url}}", + "defaultNickname": "piem. Jānis Bērziņš", + "deviceError": { + "cameraError": "Neizdevās piekļūt jūsu kamerai", + "cameraPermission": "Iegūstot kameras atļauju, radās kļūdas", + "microphoneError": "Neizdevās piekļūt jūsu mikrofonam", + "microphonePermission": "Iegūstot mikrofona atļauju, radās kļūdas" + }, + "deviceSelection": { + "hid": { + "callControl": "Zvanu kontrole", + "connectedDevices": "Pieslēgtās ierīces:", + "deleteDevice": "Dzēst ierīci", + "pairDevice": "Savienot ierīci pārī" + }, + "noPermission": "Atļauja nav piešķirta", + "previewUnavailable": "Priekšskats nav pieejams", + "selectADevice": "Ierīces izvēle", + "testAudio": "Pārbaudīt" + }, + "dialIn": { + "screenTitle": "Iezvanes kopsavilkums" + }, + "dialOut": { + "statusMessage": "tagad ir {{status}}" + }, + "dialog": { + "Back": "Atpakaļ", + "Cancel": "Atcelt", + "IamHost": "Esmu rīkotājs", + "Ok": "Labi", + "Remove": "Noņemt", + "Share": "Kopīgot", + "Submit": "Iesniegt", + "Understand": "Saprotu", + "UnderstandAndUnmute": "Es saprotu, lūdzu, ieslēdziet skaņu.", + "WaitForHostMsg": "Sapulce vēl nav sākusies, jo vēl nav ieradies neviens moderators. Lūdzu, autorizējieties, lai kļūtu par moderatoru. Pretējā gadījumā, lūdzu, uzgaidiet.", + "WaitForHostNoAuthMsg": "Sapulce vēl nav sākusies, jo vēl nav ieradies neviens moderators. Lūdzu, uzgaidiet.", + "WaitingForHostButton": "Gaidīt rīkotāju", + "WaitingForHostTitle": "Gaida rīkotāju…", + "Yes": "Jā", + "accessibilityLabel": { + "Cancel": "Atcelt (pamest dialoglogu)", + "Ok": "Labi (saglabāt un pamest dialoglogu)", + "close": "Aizvērt dialoglogu", + "liveStreaming": "Tiešraide", + "sharingTabs": "Kopīgošanas iespējas" + }, + "add": "Pievienot", + "addMeetingNote": "Pievienot piezīmi par šo sapulci", + "addOptionalNote": "Pievienot piezīmi (neobligāti):", + "allow": "Atļaut", + "allowToggleCameraDialog": "Vai atļaujat lietotājam {{initiatorName}} pārslēgt jūsu kameras pavērsiena režīmu?", + "allowToggleCameraTitle": "Vai atļaut pārslēgt kameru?", + "alreadySharedVideoMsg": "Cits dalībnieks jau ir kopīgojis videoklipu. Šī sapulce ļauj kopīgot tikai vienu video vienlaikus.", + "alreadySharedVideoTitle": "Atļauts tikai viens kopīgots videoklips", + "applicationWindow": "Lietotnes logs", + "authenticationRequired": "Nepieciešama autentifikācija", + "cameraCaptureDialog": { + "description": "Uzņemt un nosūtīt attēlu, izmantojot mobilā tālruņa kameru", + "ok": "Atvērt kameru", + "reject": "Ne tagad", + "title": "Uzņemt attēlu" + }, + "cameraConstraintFailedError": "Kamera neatbilst noteiktajām prasībām.", + "cameraNotFoundError": "Kamera nav atrasta.", + "cameraNotSendingData": "Nevar piekļūt jūsu kamerai. Lūdzu, pārbaudiet, vai šo ierīci neizmanto cita programma, iestatījumu izvēlnē atlasiet citu ierīci vai mēģiniet atkārtoti ielādēt programmu.", + "cameraNotSendingDataTitle": "Nav piekļuves kamerai", + "cameraPermissionDeniedError": "Nav piekļuves kamerai. Jūs varat piedalīties sapulcē, bet citi jūs neredzēs. Lai novērstu problēmu, izmantojiet kameras ikonu pārlūka adrešu joslā.", + "cameraTimeoutError": "Nevarēja palaist video avotu. Iestājās noilgums!", + "cameraUnknownError": "Nevar izmantot kameru nezināma iemesla dēļ.", + "cameraUnsupportedResolutionError": "Jūsu kamera neatbalsta nepieciešamo video izšķirtspēju.", + "close": "Aizvērt", + "conferenceDisconnectMsg": "Pārbaudiet interneta savienojumu. Atkārtota savienojuma izveide pēc {{seconds}} sek…", + "conferenceDisconnectTitle": "Jūs esat atvienots.", + "conferenceReloadMsg": "Cenšamies to labot. Atkārtota savienojuma izveide pēc {{seconds}} sek….", + "conferenceReloadTitle": "Diemžēl kaut kas nogāja greizi.", + "confirm": "Apstiprināt", + "confirmBack": "Atpakaļ", + "confirmNo": "Nē", + "confirmYes": "Jā", + "connectError": "Hmm! Radās problēma, un mēs nevarējām izveidot savienojumu ar sapulci.", + "connectErrorWithMsg": "Hmm! Radās problēma, un mēs nevarējām izveidot savienojumu ar sapulci: {{msg}}", + "connecting": "Savienojuma izveide", + "contactSupport": "Sazinieties ar atbalsta dienestu", + "copied": "Nokopēts", + "copy": "Kopēt", + "demoteParticipantDialog": "Vai tiešām vēlaties pārveidot šo dalībnieku par apmeklētāju?", + "demoteParticipantTitle": "Pārveidot par apmeklētāju", + "dismiss": "Noraidīt", + "displayNameRequired": "Sveiki! Kā jūs sauc?", + "done": "Darīts", + "e2eeDescription": "Pilnīga šifrēšana pašlaik ir EKSPERIMENTĀLA. Lūdzu, ņemiet vērā, ka, ieslēdzot pilnīgu šifrēšanu, tiks efektīvi atspējoti servera nodrošinātie pakalpojumi, piemēram, tālruņa līdzdalība. Ņemiet vērā arī to, ka sapulce darbosies tikai tiem cilvēkiem, kuri pievienosies no pārlūkprogrammām, kas atbalsta ievietojamas straumes.", + "e2eeDisabledDueToMaxModeDescription": "Nevar iespējot pilnīgu šifrēšanu konferences dalībnieku lielā skaita dēļ.", + "e2eeLabel": "Iespējot pilnīgu šifrēšanu", + "e2eeWarning": "BRĪDINĀJUMS: Izskatās, ka ne visi šīs sapulces dalībnieki atbalsta pilnīgu šifrēšanu. Ja jūs to iespējosit, viņi jūs neredzēs un nedzirdēs.", + "e2eeWillDisableDueToMaxModeDescription": "BRĪDINĀJUMS: Pilnīga šifrēšana tiks automātiski atspējota, ja konferencei pievienosies vairāk dalībnieku.", + "embedMeeting": "Iegult sapulci", + "enterDisplayName": "Ievadiet savu vārdu", + "error": "Kļūda", + "errorRoomCreationRestriction": "Jūs mēģinājāt pievienoties pārāk ātri. Lūdzu, atgriezieties vēlāk.", + "gracefulShutdown": "Mūsu serviss pašlaik nedarbojas apkopes dēļ. Lūdzu, pamēģiniet vēlreiz vēlāk.", + "grantModeratorDialog": "Vai tiešām vēlaties piešķirt moderatora tiesības dalībniekam {{participantName}}?", + "grantModeratorTitle": "Piešķirt moderatora tiesības", + "hide": "Slēpt", + "hideShareAudioHelper": "Vairs nerādīt šo dialoglogu", + "incorrectPassword": "Nepareizs lietotājvārds vai parole", + "incorrectRoomLockPassword": "Nepareiza parole", + "internalError": "Hmm! Kaut kas nogāja greizi. Radās šāda kļūda: {{error}}", + "internalErrorTitle": "Iekšējā kļūda", + "kickMessage": "Varat sazināties ar {{participantDisplayName}}, lai iegūtu plašāku informāciju.", + "kickParticipantButton": "Izraidīt", + "kickParticipantDialog": "Vai esat pārliecināti, ka vēlaties izraidīt šo dalībnieku?", + "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", + "linkMeeting": "Sasaistīt sapulci", + "linkMeetingTitle": "Sasaistīt sapulci ar Salesforce", + "liveStreaming": "Tiešraides straumēšana", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Nav iespējams, kamēr ir aktīva ierakstīšana", + "localUserControls": "Lokālo lietotāju kontroles", + "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?", + "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", + "micConstraintFailedError": "Jūsu mikrofons neatbilst prasībām.", + "micNotFoundError": "Jums mikrofons nav atrasts.", + "micNotSendingData": "Atveriet datora iestatījumus, lai ieslēgtu mikrofona skaņu un pielāgotu tā jutīguma līmeni", + "micNotSendingDataTitle": "Jūsu mikrofons ir atspējots sistēmas iestatījumos", + "micPermissionDeniedError": "Nav piekļuves mikrofonam. Jūs varat piedalīties sapulcē, bet citi jūs nedzirdēs. Lai to novērstu, izmantojiet kameras ikonu pārlūkprogrammas adrešu joslā.", + "micTimeoutError": "Nevarēja palaist audio avotu. Iestājās noildze!", + "micUnknownError": "Nevar izmantot mikrofonu nezināma iemesla dēļ.", + "moderationAudioLabel": "Atļaut dalībniekiem ieslēgt savu mikrofonu", + "moderationDesktopLabel": "Atļaut lietotājiem, kas nav moderatori, kopīgot savu ekrānu", + "moderationVideoLabel": "Atļaut dalībniekiem ieslēgt savu kameru", + "muteEveryoneDialog": "Dalībnieki paši var ieslēgt savu mikrofonu.", + "muteEveryoneDialogModerationOn": "Dalībnieki var nosūtīt pieprasījumu ieslēgt savu mikrofonu.", + "muteEveryoneElseDialog": "Kad skaņa būs izslēgta, jūs nevarēsiet to ieslēgt atpakaļ, taču dalībnieki to varēs izdarīt paši.", + "muteEveryoneElseTitle": "Vai izslēgt skaņu visiem, izņemot {{whom}}?", + "muteEveryoneElsesDesktopDialog": "Kad kopīgošana būs apturēta, jūs vairs nevarēsiet to ieslēgt atpakaļ, bet viņi to varēs izdarīt jebkurā laikā.", + "muteEveryoneElsesDesktopTitle": "Apturēt ekrāna kopīgošanu visiem, izņemot {{kam}}?", + "muteEveryoneElsesVideoDialog": "Kad video būs izslēgts, jūs nevarēsiet to ieslēgt atpakaļ, taču dalībnieki to varēs izdarīt paši.", + "muteEveryoneElsesVideoTitle": "Vai izslēgt video visiem, izņemot {{whom}}?", + "muteEveryoneSelf": "jūs", + "muteEveryoneStartMuted": "No šī brīža visi jauni dalībnieki pieslēdzas ar izslēgt skaņu", + "muteEveryoneTitle": "Vai izslēgt skaņu visiem?", + "muteEveryonesDesktopDialog": "Dalībnieki var kopīgot savu ekrānu jebkurā laikā.", + "muteEveryonesDesktopDialogModerationOn": "Dalībnieki jebkurā laikā var nosūtīt pieprasījumu kopīgot savu ekrānu.", + "muteEveryonesDesktopTitle": "Vai pārtraukt ekrāna kopīgošanu visiem?", + "muteEveryonesVideoDialog": "Dalībnieki var ieslēgt savu video.", + "muteEveryonesVideoDialogModerationOn": "Dalībnieki var nosūtīt pieprasījumu ieslēgt viņu video.", + "muteEveryonesVideoDialogOk": "Atspējot", + "muteEveryonesVideoTitle": "Vai apturēt ikviena video?", + "muteParticipantBody": "Jūs nevariet viņiem ieslēgt skaņu, bet viņi paši to var izdarīt jebkurā laikā.", + "muteParticipantButton": "Izslēgt skaņu", + "muteParticipantsDesktopBody": "Jūs nevarēsiet sākt viņu ekrāna kopīgošanu, bet viņi to varēs izdarīt jebkurā laikā.", + "muteParticipantsDesktopBodyModerationOn": "Jūs nevarēsiet sākt viņu ekrāna kopīgošanu, un arī viņi to nevarēs izdarīt.", + "muteParticipantsDesktopButton": "Pārtraukt ekrāna kopīgošanu", + "muteParticipantsDesktopDialog": "Vai tiešām vēlaties izslēgt šī dalībnieka ekrāna kopīgošanu? Jūs vairs nevarēsiet ieslēgt to atpakaļ, bet viņš to varēs izdarīt jebkurā laikā.", + "muteParticipantsDesktopDialogModerationOn": "Vai tiešām vēlaties izslēgt šī dalībnieka ekrāna kopīgošanu? Jūs vairs nevarēsiet ieslēgt to atpakaļ, un arī viņš to nevarēs izdarīt.", + "muteParticipantsDesktopTitle": "Atspējot ekrāna kopīgošanu šim dalībniekam?", + "muteParticipantsVideoBody": "Jūs nevarēsiet kameru ieslēgt atpakaļ, taču viņi paši to varēs izdarīt jebkurā laikā.", + "muteParticipantsVideoBodyModerationOn": "Ne Jūs, ne dalībnieki nevarēsiet ieslēgt kameru atpakaļ.", + "muteParticipantsVideoButton": "Pārtraukt video", + "muteParticipantsVideoDialog": "Vai tiešām vēlaties izslēgt šī dalībnieka kameru? Jūs nevarēsiet to ieslēgt atpakaļ, taču dalībnieks pats to varēs izdarīt jebkurā laikā.", + "muteParticipantsVideoDialogModerationOn": "Vai tiešām vēlaties izslēgt šī dalībnieka kameru? Ne Jūs, ne dalībnieks nevarēsiet to ieslēgt atpakaļ.", + "muteParticipantsVideoTitle": "Vai izslēgt šī dalībnieka video?", + "noDropboxToken": "Nav derīga Dropbox tokena", + "password": "Parole", + "passwordLabel": "Dalībnieks ir aizslēdzis sapulci. Lūdzu, ievadiet $t(lockRoomPassword), lai pievienotos.", + "passwordNotSupported": "Sapulces slēgšana ar $t(lockRoomPassword) netiek atbalstīta.", + "passwordNotSupportedTitle": "Slēgšana ar $t(lockRoomPasswordUppercase) netiek atbalstīta", + "passwordRequired": "Nepieciešams ievadīt $t(lockRoomPasswordUppercase)", + "permissionCameraRequiredError": "Lai piedalītos konferencēs ar video, ir nepieciešama kameras atļauja. Lūdzu, piešķiriet to Iestatījumos", + "permissionErrorTitle": "Nepieciešama atļauja", + "permissionMicRequiredError": "Lai piedalītos konferencēs ar audio, nepieciešama mikrofona atļauja. Lūdzu, piešķiriet to Iestatījumos", + "readMore": "vairāk", + "recentlyUsedObjects": "Jūsu nesen izmantotie objekti", + "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!", + "remoteControlDeniedMessage": "{{user}} noraidīja jūsu attālās pārvaldības pieprasījumu!", + "remoteControlErrorMessage": "Pieprasot {{user}} attālo pārvaldību, gadījās kļūda.", + "remoteControlRequestMessage": "Vai atļaut, lai {{user}} attālināti pārvalda Jūsu darbvirsmu?", + "remoteControlShareScreenWarning": "Noklikšķinot uz \"Atļaut\", Jūs kopīgosiet savu ekrānu!", + "remoteControlStopMessage": "Attālās pārvaldības sesija ir beigusies!", + "remoteControlTitle": "Attālā darbvirsmas pārvaldība", + "remoteUserControls": "Lietotāja {{username}} attālās pārvaldības kontroles", + "removePassword": "Noņemt $t(lockRoomPassword)", + "removeSharedVideoMsg": "Tiešām vēlaties noņemt video, kuru pašreiz kopīgojat?", + "removeSharedVideoTitle": "Noņemt kopīgoto video", + "renameBreakoutRoomLabel": "Istabas nosaukums", + "renameBreakoutRoomTitle": "Pārsaukt grupu istabu", + "reservationError": "Rezervācijas sistēmas kļūda", + "reservationErrorMsg": "Kļūdas kods: {{code}}, paziņojums: {{msg}}", + "retry": "Mēģināt vēlreiz", + "screenSharingAudio": "Kopīgot audio", + "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.", + "searchInSalesforce": "Meklēt pakalpojumā Salesforce", + "searchResults": "Meklēšanas rezultāti ({{count}})", + "searchResultsDetailsError": "Radās problēma, izgūstot īpašnieka datus.", + "searchResultsError": "Datu izgūšanas laikā radās kļūda.", + "searchResultsNotFound": "Meklēšanas rezultāti nav atrasti.", + "searchResultsTryAgain": "Mēģiniet izmantot alternatīvus atslēgvārdus.", + "sendPrivateMessage": "Jūs nesen saņēmāt privātu ziņu. Vai vēlaties atbildēt uz šo ziņu vai nosūtīt to grupai?", + "sendPrivateMessageCancel": "Sūtīt grupai", + "sendPrivateMessageOk": "Sūtīt privāti", + "sendPrivateMessageTitle": "Vēlaties nosūtīt privātu ziņu?", + "serviceUnavailable": "Pakalpojums nav pieejams", + "sessTerminated": "Zvans pārtraukts", + "sessTerminatedReason": "Sapulce beidzās", + "sessionRestarted": "Zvans tika pārstartēts savienojuma problēmas dēļ.", + "shareAudio": "Turpināt", + "shareAudioAltText": "lai kopīgotu vajadzīgo saturu, dodieties uz \"Pārlūka Cilnis\", atlasiet saturu, aktivizējiet atzīmi \"kopīgot audio\" un pēc tam noklikšķiniet uz pogas \"kopīgot\"", + "shareAudioTitle": "Kā kopīgot audio", + "shareAudioWarningD1": "pirms audio kopīgošanas ir jāpārtrauc ekrāna kopīgošana.", + "shareAudioWarningD2": "jums ir jārestartē ekrāna kopīgošana un jāatzīmē opcija \"kopīgot audio\".", + "shareAudioWarningH1": "Ja vēlaties koplietot tikai audio:", + "shareAudioWarningTitle": "Pirms audio kopīgošanas ir jāpārtrauc ekrāna kopīgošana", + "shareMediaWarningGenericH2": "Ja vēlaties kopīgot ekrānu un audio", + "shareScreenWarningD1": "pirms ekrāna kopīgošanas ir jāpārtrauc audio kopīgošana.", + "shareScreenWarningD2": "jums ir jāpārtrauc audio kopīgošana, jāsāk ekrāna kopīgošana un jāatzīmē opcija \"kopīgot audio\".", + "shareScreenWarningH1": "Ja vēlaties kopīgot tikai savu ekrānu:", + "shareScreenWarningTitle": "Pirms ekrāna kopīgošanas jums ir jāpārtrauc audio kopīgošana", + "shareVideoConfirmPlay": "Jūs gatavojaties atvērt ārēju vietni. Vai vēlaties turpināt?", + "shareVideoConfirmPlayTitle": "{{name}} kopīgoja ar jums videoklipu.", + "shareVideoLinkError": "Lūdzu, norādiet pareizu video saiti.", + "shareVideoLinkStopped": "Videoklips no {{name}} tika apturēts.", + "shareVideoTitle": "Kopīgot video", + "shareYourScreen": "Kopīgot ekrānu", + "shareYourScreenDisabled": "Ekrāna kopīgošana izslēgta.", + "sharedVideoDialogError": "Kļūda: nederīgs URL", + "sharedVideoLinkPlaceholder": "YouTube saite vai tieša video saite", + "show": "Rādīt", + "start": "Sākt", + "startLiveStreaming": "Sākt tiešraidi", + "startRecording": "Sākt ierakstu", + "startRemoteControlErrorMessage": "Attālās pārvaldības sesijas uzsākšanas kļūda!", + "stopLiveStreaming": "Beigt tiešraidi", + "stopRecording": "Beigt ierakstu", + "stopRecordingWarning": "Tiešām vēlaties beigt ierakstu?", + "stopStreamingWarning": "Tiešām vēlaties beigt tiešraidi?", + "streamKey": "Tiešraides atslēga", + "thankYou": "Paldies, ka izmantojāt {{appName}}!", + "token": "tokens", + "tokenAuthFailed": "Atvainojiet, jums nav atļauts pievienoties šim zvanam.", + "tokenAuthFailedReason": { + "audInvalid": "Nederīga `aud` vērtība. Tai vajadzētu būt `jitsi`.", + "contextNotFound": "Saturā trūkst `context` objekts.", + "expInvalid": "Nederīga `exp` vērtība.", + "featureInvalid": "Nederīga funkcionalitāte: {{feature}}, visticamāk, vēl nav ieviesta.", + "featureValueInvalid": "Nederīga funkcionalitātes vērtība: {{feature}}.", + "featuresNotFound": "Saturā trūkst `features` objekts.", + "headerNotFound": "Trūkst galvenes.", + "issInvalid": "Nederīga `iss` vērtība. Tai vajadzētu būt `chat`.", + "kidMismatch": "Neatbilst Atslēgas ID (kid).", + "kidNotFound": "Trūkst Atslēgas ID (kid).", + "nbfFuture": "`nbf` vērtība ir nākotnē.", + "nbfInvalid": "Nederīga `nbf` vērtība.", + "payloadNotFound": "Trūkst satura.", + "tokenExpired": "Token ir beidzies." + }, + "tokenAuthFailedTitle": "Autentifikācijas kļūda", + "tokenAuthFailedWithReasons": "Atvainojiet, jums nav atļauts pievienoties šim zvanam. Iespējamie iemesli: {{reason}}", + "tokenAuthUnsupported": "Token URL netiek atbalstīts.", + "transcribing": "Notiek atšifrējuma izveide", + "unlockRoom": "Noņemt $t(lockRoomPassword)", + "user": "Lietotājs", + "userIdentifier": "Lietotājvārds", + "userPassword": "Parole", + "verifyParticipantConfirm": "Sakrīt", + "verifyParticipantDismiss": "Nesakrīt", + "verifyParticipantQuestion": "EKSPERIMENTĀLS: pajautājiet dalībniekam {{participantName}}, vai viņš redz to pašu saturu tādā pašā secībā.", + "verifyParticipantTitle": "Lietotāja verifikācija", + "videoLink": "Video saite", + "viewUpgradeOptions": "Skatīt jaunināšanas iespējas", + "viewUpgradeOptionsContent": "Lai iegūtu neierobežotu piekļuvi augstākās klases funkcijām, piemēram, ierakstīšanai, atšifrējuma izveidei, RTMP straumēšanai un citām iespējām, jums ir jāpalielina plāns.", + "viewUpgradeOptionsTitle": "Jūs atklājāt premium funkcionalitāti!", + "whiteboardLimitContent": "Diemžēl ir sasniegts vienlaicīgu tāfeles lietotāju ierobežojums.", + "whiteboardLimitReference": "Lai iegūtu vairāk informācijas, lūdzu, apmeklējiet", + "whiteboardLimitReferenceUrl": "mūsu mājas lapa", + "whiteboardLimitTitle": "Ierobežota tāfeles lietošana", + "yourEntireScreen": "Visu jūsu ekrānu" + }, + "documentSharing": { + "title": "Kopīgots Dokuments" + }, + "e2ee": { + "labelToolTip": "Audio un video komunikācija šajā zvanā ir pilnībā šifrēta" + }, + "embedMeeting": { + "title": "Iegult šo sapulci" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Jūsu izvēle: {{rating}}" + }, + "average": "Vidēja", + "bad": "Slikta", + "detailsLabel": "Aprakstiet sīkāk.", + "good": "Laba", + "rateExperience": "Novērtējiet sapulces pieredzi", + "star": "Zvaigzne", + "veryBad": "Ļoti Slikta", + "veryGood": "Ļoti Laba" + }, + "fileSharing": { + "downloadFailedDescription": "Lūdzu, mēģiniet vēlreiz.", + "downloadFailedTitle": "Lejuplādes kļūda", + "downloadFile": "Lejuplādēt", + "dragAndDrop": "Velciet un palaidiet failus šeit, vai jebkurā ekrāna vietā", + "fileAlreadyUploaded": "Fails jau ir augšupielādēts šajā sanāksmē.", + "fileTooLargeDescription": "Lūdzu, pārliecinieties, vai faila lielums nepārsniedz {{ maxFileSize }}.", + "fileTooLargeTitle": "Izvēlētais fails ir pārāk liels", + "removeFile": "Noņemt", + "uploadFailedDescription": "Lūdzu, mēģiniet vēlreiz.", + "uploadFailedTitle": "Augšuplādes kļūda", + "uploadFile": "Kopīgot failu" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Video sīktēli" + } + }, + "giphy": { + "noResults": "Nekas netika atrasts :(", + "search": "Meklēt GIPHY" + }, + "incomingCall": { + "answer": "Atbildēt", + "audioCallTitle": "Ienākošs audio zvans", + "decline": "Noraidīt", + "productLabel": "no Jitsi Meet", + "videoCallTitle": "Ienākošs video zvans" + }, + "info": { + "accessibilityLabel": "Rādīt informāciju", + "addPassword": "Iestatīt $t(lockRoomPassword)", + "cancelPassword": "Noņemt $t(lockRoomPassword)", + "conferenceURL": "Saite:", + "copyNumber": "Kopēt numuru", + "country": "Valsts", + "dialANumber": "Lai pievienotos sapulcei, sastādiet vienu no šiem iezvana numuriem un ievadiet PIN kodu", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Diemžēl iezvans pašreiz netiek atbalstīts.", + "dialInNumber": "Iezvana numurs:", + "dialInSummaryError": "Kļūda saņemot iezvana informāciju. Lūdzu, mēģiniet vēlreiz vēlāk", + "dialInTollFree": "Bezmaksas zvans", + "genericError": "Hmm, kaut kas nogāja greizi.", + "inviteLiveStream": "Lai vērotu šīs sapulces tiešraidi, klikšķiniet: {{url}}", + "invitePhone": "Lai pieslēgtos telefoniski, nospiediet {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Vēlaties citu iezvana numuru?\nApskatīt iezvana numurus, ar kuriem pievienoties sapulcei: {{url}}\n\n\nJa sapulcei vēlaties telefoniski pieslēgies kā klausītājs: {{silentUrl}}", + "inviteSipEndpoint": "Lai pievienotos, izmantojot SIP adresi, ievadiet šo: {{sipUri}}", + "inviteTextiOSInviteUrl": "Noklikšķiniet uz šīs saites, lai pievienotos: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Ja iezvanāties, izmantojot mājas tālruni, lietojiet šo saiti, lai pievienotos, neveidojot savienojumu ar audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} aicina jūs uz sapulci.", + "inviteTextiOSPhone": "Lai pievienotos pa tālruni, izmantojiet šo numuru: {{number}},,{{conferenceID}}#. Ja meklējat citu numuru, šis ir pilns saraksts: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Jūs tiekat aicināti pievienoties sapulcei.", + "inviteURLFirstPartPersonal": "{{name}} aicina Jūs pievienoties sapulcei. \n", + "inviteURLSecondPart": "\nPievienoties sapucei:\n{{url}}\n", + "label": "Sapulces informācija", + "liveStreamURL": "Tiešraides URL:", + "moreNumbers": "Vairāk iezvana numuru", + "noNumbers": "Nav iezvana #.", + "noPassword": "bez paroles", + "noRoom": "Iezvana numuram nav piesaistīta neviena sapulces telpa.", + "noWhiteboard": "Nevarēja ielādēt tāfeli.", + "numbers": "Iezvana numuri", + "password": "Ievadiet $t(lockRoomPasswordUppercase):", + "reachedLimit": "Jūs esat sasniedzis sava plāna limitu.", + "sip": "SIP adrese", + "sipAudioOnly": "Tikai SIP audio adrese", + "title": "Kopīgot", + "tooltip": "Kopīgot šīs sapulces saiti un iezvana # informāciju", + "upgradeOptions": "Lūdzu, ieslēdziet jaunināšanas iespējas", + "whiteboardError": "Kļūda ielādējot tāfeli. Lūdzu, mēģiniet vēlreiz." + }, + "inlineDialogFailure": { + "msg": "Neliels misēklis.", + "retry": "Pamēģināt vēlreiz", + "support": "Atbalsts", + "supportMsg": "Ja tas atkārtojas, sazinieties ar" + }, + "inviteDialog": { + "alertText": "Neizdevās uzaicināt dažus dalībniekus.", + "header": "Uzaicināt", + "searchCallOnlyPlaceholder": "Norādiet tālruņa numuru", + "searchPeopleOnlyPlaceholder": "Dalībnieku meklēšana", + "searchPlaceholder": "Dalībnieks vai tālruņa numurs", + "send": "Nosūtīt" + }, + "jitsiHome": "{{logo}} Logotips, saites uz sākumlapu", + "keyboardShortcuts": { + "focusLocal": "Fokuss uz savu video", + "focusRemote": "Fokuss uz cita dalībnieka video", + "fullScreen": "Pilnekrāna režīms (iesl./izsl.)", + "giphyMenu": "Pārslēgt GIPHY izvēlni", + "keyboardShortcuts": "Tastatūras īsceļi (taustiņu kombinācijas)", + "localRecording": "Lokālā ieraksta vadīkļi (rādīt/paslēpt)", + "mute": "Mikrofons (iesl./izsl.)", + "pushToTalk": "Nospiest, lai runātu", + "raiseHand": "Pacelt/nolaist roku", + "showSpeakerStats": "Rādīt prezentētāja statistiku", + "toggleChat": "Tērzētava (čats) (atvērt/aizvērt)", + "toggleFilmstrip": "Kinolente (rādīt/nerādīt)", + "toggleParticipantsPane": "Rādīt/paslēpt dalībnieku paneli", + "toggleScreensharing": "Pārslēgties starp kameru un ekrāna rādīšanu", + "toggleShortcuts": "Atrās piekļuves taustiņi (rādīt/nerādīt)", + "videoMute": "Kamera (iesl./izsl.)" + }, + "largeVideo": { + "screenIsShared": "Jūs kopīgojat savu ekrānu", + "showMeWhatImSharing": "Parādīt, ko es kopīgoju" + }, + "liveStreaming": { + "busy": "Atbrīvojam resursus tiešraides nodrošināšanai. Lūdzu, mēģiniet vēlreiz pēc dažām minūtēm.", + "busyTitle": "Diemžēl visi tiešraides resursi aizņemti", + "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}}.", + "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.", + "errorLiveStreamNotEnabled": "Tiešraide lietotājam {{email}} nav iespējota. Lūdzu, iespējojiet tiešraidi vai ierakstieties kontā, kuram jau iespējota tiešraide…", + "expandedOff": "Tiešraide izslēgta/nenotiek", + "expandedOn": "Pašlaik sapulce tiek straumēta uz YouTube.", + "expandedPending": "Sākas tiešraide…", + "failedToStart": "Neizdevās uzsākt tiešraidi", + "getStreamKeyManually": "Tiešraides nav atrastas. Iegūstiet tiešraides atslēgu no YouTube.", + "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", + "onBy": "{{name}} ieslēdza tiešraidi", + "pending": "Sākam tiešraidi…", + "policyError": "Jūs mēģinājāt pārāk ātri sākt tiešraides straumi. Lūdzu, vēlāk mēģiniet vēlreiz!", + "serviceName": "Tiešsaistes pakalpojums", + "sessionAlreadyActive": "Šī sesija jau tiek ierakstīta vai straumēta tiešraidē.", + "signIn": "Ierakstīties ar Google kontu", + "signInCTA": "Ierakstieties vai ievadiet savu YouTube tiešraides atslēgu.", + "signOut": "Izrakstīties", + "signedInAs": "Pašlaik esat sistēmā ierakstījies kā:", + "start": "Sākt tiešraidi", + "streamIdHelp": "Kas tas?", + "title": "Tiešraide", + "unavailableTitle": "Tiešraide nav pieejama", + "youtubeTerms": "YouTube pakalpojumu sniegšanas noteikumi" + }, + "lobby": { + "backToKnockModeButton": "Pajautāt pievienoties", + "chat": "Tērzēšana", + "dialogTitle": "Vestibila režīms", + "disableDialogContent": "Vestibila režīms pašlaik ir iespējots. Šī funkcija nodrošina, ka nevēlami dalībnieki nevar pievienoties jūsu sapulcei. Vai vēlaties to atspējot?", + "disableDialogSubmit": "Atspējot", + "emailField": "Ievadiet savu e-pasta adresi", + "enableDialogPasswordField": "Iestatīt paroli (neobligāti)", + "enableDialogSubmit": "Iespējot", + "enableDialogText": "Vestibila režīms ļauj aizsargāt sapulci, ļaujot cilvēkiem tajā iekļūt tikai pēc moderatora apstiprinājuma.", + "enterPasswordButton": "Ievadiet sapulces paroli", + "enterPasswordTitle": "Ievadiet paroli, lai pievienotos sapulcei", + "errorMissingPassword": "Lūdzu, ievadiet sapulces paroli", + "invalidPassword": "Nepareiza parole", + "joinRejectedMessage": "Moderators noraidīja jūsu pievienošanās pieprasījumu.", + "joinRejectedTitle": "Pievienošanās pieprasījums noraidīts.", + "joinTitle": "Pievienoties Sapulcei", + "joinWithPasswordMessage": "Mēģina pievienoties, izmantojot paroli, lūdzu, uzgaidiet…", + "joiningMessage": "Jūs pievienosities sapulcei, tiklīdz kāds apstiprinās jūsu pieprasījumu", + "joiningTitle": "Lūgums pievienoties sapulcei…", + "joiningWithPasswordTitle": "Notiek pievienošanās ar paroli…", + "knockButton": "Pajautāt Pievienoties", + "knockTitle": "Kāds vēlas pievienoties sapulcei", + "knockingParticipantList": "Dalībnieku saraksts, kas vēlas pievienoties", + "lobbyChatStartedNotification": "{{moderators}} uzsāka vestibila tērzēšanu ar {{attendee}}", + "lobbyChatStartedTitle": "{{moderators}} uzsāka vestibila tērzēšanu ar jums.", + "lobbyClosed": "Vestibila telpa ir slēgta.", + "nameField": "Ievadiet savu vārdu", + "notificationLobbyAccessDenied": "{{originParticipantName}} noraidīja {{targetParticipantName}} pievienošanos.", + "notificationLobbyAccessGranted": "{{originParticipantName}} apstiprināja {{targetParticipantName}} pievienošanos.", + "notificationLobbyDisabled": "Vestibilu atspējoja {{originParticipantName}}", + "notificationLobbyEnabled": "Vestibilu iespējoja {{originParticipantName}}", + "notificationTitle": "Vestibils", + "passwordJoinButton": "Pievienoties", + "title": "Vestibils", + "toggleLabel": "Iespējot vestibilu" + }, + "localRecording": { + "clientState": { + "off": "Atslēdzies", + "on": "Pieslēdzies", + "unknown": "Nezināms" + }, + "dialogTitle": "Lokālā ieraksta vadības pogas", + "duration": "Ilgums", + "durationNA": "nav zināms", + "encoding": "Kodējums", + "label": "Kreisais/labais", + "labelToolTip": "Lokālais ieraksts ir ieslēgts", + "localRecording": "Lokālais ieraksts", + "me": "Es", + "messages": { + "engaged": "Sākts lokālais ieraksts.", + "finished": "Sesijas {{token}} ieraksts beigts. Lūdzu, nododiet ierakstīto failu moderatoram.", + "finishedModerator": "Sesijas {{token}} ieraksts beigts. Vietējā audioceliņa ieraksts saglabāts. Palūdziet, lai citi dalībnieki iesniedz savus ierakstus", + "notModerator": "Jūs neesat moderators un nevarat sākt vai beigt lokālo ierakstu." + }, + "moderator": "Moderators", + "no": "Nē", + "participant": "Dalībnieks", + "participantStats": "Dalībnieku statistika", + "selectTabTitle": "🎥 Lūdzu, atveriet šo cilni ierakstīšanai", + "sessionToken": "Sessijas tokens", + "start": "Sākt ierakstu", + "stop": "Beigt ierakstu", + "stopping": "Ierakstīšanas pārtraukšana", + "wait": "Lūdzu, uzgaidiet, kamēr jūsu ieraksts tiek saglabāts", + "yes": "Jā" + }, + "lockRoomPassword": "paroli", + "lockRoomPasswordUppercase": "Paroli", + "lonelyMeetingExperience": { + "button": "Uzaiciniet citus", + "youAreAlone": "Jūs esat vienīgais sapulcē" + }, + "me": "es", + "notify": { + "OldElectronAPPTitle": "Drošības ievainojamība!", + "allowAll": "Atļaut visu", + "allowAudio": "Atļaut audio", + "allowDesktop": "Atļaut ekrāna kopīgošanu", + "allowVideo": "Atļaut video", + "allowedUnmute": "Varat ieslēgt mikrofona skaņu, ieslēgt kameru vai kopīgot ekrānu.", + "audioUnmuteBlockedDescription": "Mikrofona ieslēgšanas darbība ir īslaicīgi bloķēta sistēmas ierobežojumu dēļ.", + "audioUnmuteBlockedTitle": "Mikrofona ieslēgšana ir bloķēta!", + "chatMessages": "Tērzēšanas ziņas", + "connectedOneMember": "{{name}} ir pievienojies sapulcei", + "connectedThreePlusMembers": "{{name}} un {{count}} citi ir pievienojušies sapulcei", + "connectedTwoMembers": "{{first}} un {{second}} ir pievienojušies sapulcei", + "connectionFailed": "Savienojums neizdevās. Lūdzu, vēlāk mēģiniet vēlreiz!", + "dataChannelClosed": "Video kvalitāte var būt traucēta", + "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": "", + "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!", + "disconnected": "savienojums pārtraukts", + "displayNotifications": "Rādīt paziņojumus", + "dontRemindMe": "Neatgādināt man", + "focus": "Sapulces fokuss", + "focusFail": "{{component}} nav pieejams, mēģiniet vēlreiz pēc {{ms}} sek.", + "gifsMenu": "GIPHY", + "groupTitle": "Paziņojumi", + "hostAskedUnmute": "Moderators vēlas, lai jūs runātu", + "invalidTenant": "Nederīgs tenants", + "invalidTenantHyphenDescription": "Jūsu izmantotais tenants nav derīgs (sākas vai beidzas ar '-').", + "invalidTenantLengthDescription": "Jūsu izmantotais tenants ir pārāk garš.", + "invitedOneMember": "{{displayName}} tika uzaicināts", + "invitedThreePlusMembers": "Uzaicināts {{name}} un {{count}} citi lietotāji", + "invitedTwoMembers": "{{first}} un {{second}} tika uzaicināti uz sapulci", + "joinMeeting": "Pievienoties", + "kickParticipant": "{{kicker}} izraidīja {{kicked}} ", + "leftOneMember": "{{name}} pameta sapulci", + "leftThreePlusMembers": "{{name}} un daudzi citi pameta sapulci", + "leftTwoMembers": "{{first}} un {{second}} pameta sapulci", + "linkToSalesforce": "Saite uz Salesforce", + "linkToSalesforceDescription": "Varat saistīt sapulces kopsavilkumu ar Salesforce objektu.", + "linkToSalesforceError": "Neizdevās saistīt sapulci ar Salesforce", + "linkToSalesforceKey": "Saistīt šo sapulci", + "linkToSalesforceProgress": "Notiek sapulces saistīšana ar Salesforce…", + "linkToSalesforceSuccess": "Sapulce tika saistīta ar Salesforce", + "localRecordingStarted": "{{name}} uzsāka lokālu ierakstu.", + "localRecordingStopped": "{{name}} beidza lokālu ierakstu.", + "me": "Es", + "moderationInEffectCSDescription": "Lūdzu, paceliet roku, ja vēlaties kopīgot savu ekrānu.", + "moderationInEffectCSTitle": "Moderators ir bloķējis ekrāna kopīgošanu", + "moderationInEffectDescription": "Lūdzu, paceliet roku, ja vēlaties runāt.", + "moderationInEffectTitle": "Moderators ir izslēdzis jūsu mikrofona skaņu", + "moderationInEffectVideoDescription": "Lūdzu, paceliet roku, ja vēlaties ieslēgt kameru.", + "moderationInEffectVideoTitle": "Moderators ir bloķējis jūsu kameru", + "moderationRequestFromModerator": "Sapulces rīkotājs vēlas, lai jūs ieslēgtu skaņu", + "moderationRequestFromParticipant": "Vēlas runāt", + "moderationStartedTitle": "Moderēšana sākta", + "moderationStoppedTitle": "Moderēšana beigta", + "moderationToggleDescription": "pēc {{participantDisplayName}} iniciatīvas", + "moderator": "Jūs tagad esat moderators", + "muted": "Jūs pievienojāties sapulcei ar izslēgtu mokrofonu.", + "mutedRemotelyDescription": "Jūs vienmēr varat ieslēgt mikrofonu, kad esat gatavs runāt. Izslēdziet to, kad esat beidzis, lai sapulcē neradītu fona troksni.", + "mutedRemotelyTitle": "{{participantDisplayName}} izslēdza Jūsu mikrofonu!", + "mutedTitle": "Jūsu mikrofons ir izslēgts!", + "newDeviceAction": "Izmantot", + "newDeviceAudioTitle": "Atrasta jauna audio ierīce", + "newDeviceCameraTitle": "Atrasta jauna kamera", + "nextToSpeak": "Jūs esat nākamais runātājs rindā", + "noiseSuppressionDesktopAudioDescription": "Darbvirsmas audio koplietošanas laikā nevar iespējot trokšņu slāpēšanu. Lūdzu, atspējojiet to un mēģiniet vēlreiz.", + "noiseSuppressionFailedTitle": "Neizdevās sākt trokšņu slāpēšanu", + "noiseSuppressionStereoDescription": "Stereo audio trokšņu slāpēšana pašlaik netiek atbalstīta.", + "oldElectronClientDescription1": "Izskatās, ka jūs izmantojat vecu Jitsi Meet klienta versiju, kurai ir zināmas drošības ievainojamības. Lūdzu, atjauniniet uz ", + "oldElectronClientDescription2": "jaunākā versija", + "oldElectronClientDescription3": "tagad!", + "participantWantsToJoin": "Vēlas pievienoties sapulcei", + "participantsWantToJoin": "Vēlas pievienoties sapulcei", + "passwordRemovedRemotely": "Kāds dalībnieks noņēma $t(lockRoomPasswordUppercase).", + "passwordSetRemotely": "Kāds dalībnieks iestatīja $t(lockRoomPasswordUppercase).", + "raiseHandAction": "Pacelt roku", + "raisedHand": "Vēlas runāt.", + "raisedHands": "{{participantName}} un vēl {{raisedHands}} personas", + "reactionSounds": "Atspējot skaņas", + "reactionSoundsForAll": "Atspējot skaņas visiem", + "screenShareNoAudio": "Logu atlases ekrānā netika atzīmēta izvēle Kopīgot audio.", + "screenShareNoAudioTitle": "Nevarēja koplietot sistēmas audio!", + "screenSharingAudioOnlyDescription": "Lūdzu, ņemiet vērā, ka ekrāna kopīgošana ietekmē \"Labākā veiktspēja\" režīmu un izmantosit lielāku joslas platumu.", + "screenSharingAudioOnlyTitle": "\"Labākā veiktspēja\" režīms", + "selfViewTitle": "Iestatījumos vienmēr varat atcelt pašskata slēpšanu", + "somebody": "Kāds", + "startSilentDescription": "Lai ieslēgtu skaņu, pieslēdzieties sapulcei par jaunu", + "startSilentTitle": "Jūs esiet nedzirdams!", + "suboptimalBrowserWarning": "Diemžēl jūsu pārlūks pilnībā neatbalsta šo virtuālo sapulču sistēmu. Pie tā tiek strādāts, bet šobrīd tiek ieteikts izmantot šos pārlūkus.", + "suboptimalExperienceTitle": "Diemžēl jūsu pārlūks, iespējams, var pienācīgi nestrādāt ar {{appName}}. Pie tā tiek strādāts, bet šobrīd tiek ieteikts izmantot kādu no pilnībā atbalstītajiem pārlūkiem.", + "suggestRecordingAction": "Sākt", + "suggestRecordingDescription": "Vai vēlaties sākt ierakstīšanu?", + "suggestRecordingTitle": "Ierakstīt sanāksmi", + "unmute": "Ieslēgt mikrofonu", + "unmuteScreen": "", + "unmuteVideo": "Ieslēgt video", + "videoMutedRemotelyDescription": "Jūs vienmēr varat to atkal ieslēgt.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} izslēdza jūsu video", + "videoUnmuteBlockedDescription": "Kameras ieslēgšanas un darbvirsmas koplietošanas darbība ir īslaicīgi bloķēta sistēmas ierobežojumu dēļ.", + "videoUnmuteBlockedTitle": "Kameras ieslēgšana un darbvirsmas koplietošana ir bloķēta!", + "viewLobby": "Skatīt vestibilu", + "viewParticipants": "Skatīt dalībniekus", + "viewVisitors": "Skatīt apmeklētājus", + "waitingParticipants": "{{waitingParticipants}} personas", + "waitingVisitors": "Apmeklētāji gaida rindā: {{waitingVisitors}}", + "waitingVisitorsTitle": "Sanāksme vēl nav sākusies!", + "whiteboardLimitDescription": "Lūdzu, saglabājiet savu progresu, jo drīz tiks sasniegts lietotāju limits un tāfele tiks aizvērta.", + "whiteboardLimitTitle": "Tāfeles lietošana" + }, + "participantsPane": { + "actions": { + "admit": "Apstiprināt", + "admitAll": "Apstiprināt visus", + "allow": "Atļaut dalībniekiem:", + "allowDesktop": "Atļaut ekrāna kopīgošanu", + "allowVideo": "Atļaut video", + "askDesktop": "Lūgt kopīgot ekrānu", + "askUnmute": "Lūgt ieslēgt skaņu", + "audioModeration": "Ieslēgt savu skaņu", + "blockEveryoneMicCamera": "Bloķēt visiem mikrofonu un kameru", + "breakoutRooms": "Grupu istabas", + "desktopModeration": "Sākt ekrāna kopīgošanu", + "goLive": "Sākt", + "invite": "Uzaicināt", + "lowerAllHands": "Nolaist visas paceltās rokas", + "lowerHand": "Nolaist roku", + "moreModerationActions": "Vairāk moderēšanas iespēju", + "moreModerationControls": "Vairāk moderēšanas iespēju", + "moreParticipantOptions": "Vairāk dalībnieku iespēju", + "mute": "Apklusināt", + "muteAll": "Apklusināt visus", + "muteEveryoneElse": "Apklusināt pārējos", + "reject": "Noraidīt", + "stopDesktop": "Pārtraukt ekrāna kopīgošanu", + "stopEveryonesDesktop": "Pārtraukt visiem ekrāna kopīgošanu", + "stopEveryonesVideo": "Izslēgt visiem video", + "stopVideo": "Izslēgt video", + "unblockEveryoneMicCamera": "Atbloķēt visiem mikrofonu un kameru", + "videoModeration": "Ieslēgt savu video" + }, + "close": "Aizvērt", + "headings": { + "lobby": "Vestibils ({{count}})", + "participantsList": "Sapulces dalībnieki ({{count}})", + "viewerRequests": "Apmeklētāju pieprasījumi {{count}}", + "visitorInQueue": " (gaida {{count}})", + "visitorRequests": " (pieprasījumi {{count}})", + "visitors": "Apmeklētāji {{count}}", + "visitorsList": "Apmeklētāji ({{count}})", + "waitingLobby": "Gaida vestibilā ({{count}})" + }, + "search": "Meklēt dalībniekus", + "searchDescription": "Sāciet rakstīt, lai atlasītu dalībnieks", + "title": "Dalībnieki" + }, + "passwordDigitsOnly": "Līdz {{number}} cipariem", + "passwordSetRemotely": "Iestatījis kāds cits dalībnieks", + "pinParticipant": "{{participantName}} - Piespraust", + "pinnedParticipant": "Dalībnieks ir piesprausts", + "polls": { + "answer": { + "edit": "Labot", + "send": "Nosūtīt", + "skip": "Izlaist", + "submit": "Iesniegt" + }, + "by": "Pēc {{ name }} iniciatīvas", + "closeButton": "Slēgt aptauju", + "create": { + "addOption": "Pievienot opciju", + "answerPlaceholder": "Opcija {{index}}", + "cancel": "Atcelt", + "create": "Izveidot aptauju", + "pollOption": "Aptaujas opcija {{index}}", + "pollQuestion": "Aptaujas Jautājums", + "questionPlaceholder": "Uzdod jautājumu", + "removeOption": "Noņemt opciju", + "save": "Saglabāt", + "send": "Nosūtīt" + }, + "errors": { + "notUniqueOption": "Iespējām jābūt unikālām" + }, + "notification": { + "description": "Lai balsotu, atveriet aptauju cilni", + "title": "Šai sapulcei tika pievienota jauna aptauja" + }, + "results": { + "changeVote": "Mainīt balsojumu", + "empty": "Sapulcē vēl nav nevienas aptaujas. Sāciet aptauju šeit!", + "hideDetailedResults": "Slēpt detaļas", + "showDetailedResults": "Parādīt detaļas", + "vote": "Balsot" + } + }, + "poweredby": "darbojas uz", + "prejoin": { + "audioAndVideoError": "Audio un video kļūda:", + "audioDeviceProblem": "Radās problēma ar jūsu audio ierīci", + "audioOnlyError": "Audio kļūda:", + "audioTrackError": "Nevarēja izveidot audio celiņu.", + "callMe": "Piezvani man", + "callMeAtNumber": "Piezvani man uz šo numuru:", + "calling": "Zvana", + "configuringDevices": "Notiek ierīču konfigurēšana…", + "connectedWithAudioQ": "Vai esat pievienojies audio?", + "connection": { + "failed": "Savienojuma pārbaude neizdevās!", + "good": "Jūsu interneta savienojums ir labs!", + "nonOptimal": "Jūsu interneta savienojums nav optimāls", + "poor": "Jums ir slikts interneta savienojums", + "running": "Notiek savienojuma pārbaude…" + }, + "connectionDetails": { + "audioClipping": "Mēs sagaidām, ka jūsu audio raustīsies.", + "audioHighQuality": "Mēs sagaidām, ka jūsu audio kvalitāte būs izcila.", + "audioLowNoVideo": "Mēs sagaidām, ka jūsu audio kvalitāte būs zema un video nebūs.", + "goodQuality": "Satriecoši! Jūsu multivides kvalitāte būs lieliska.", + "noMediaConnectivity": "Mēs nevarējām atrast veidu, kā šim testam izveidot multivides savienojumu. To parasti izraisa ugunsmūris vai NAT.", + "noVideo": "Mēs sagaidām, ka jūsu video kvalitāte būs briesmīga.", + "testFailed": "Savienojuma testā radās neparedzētas problēmas, tomēr tas var neietekmēt jūsu pieredzi.", + "undetectable": "Ja pārlūkprogrammā joprojām nevarat veikt zvanus, iesakām pārliecināties, vai skaļruņi, mikrofons un kamera ir pareizi iestatīti, vai esat piešķīris pārlūkprogrammai tiesības izmantot mikrofonu un kameru un vai pārlūkprogrammas versija ir atjaunināta. Ja joprojām neizdodas zvanīt, sazinieties ar tīmekļa lietojumprogrammas izstrādātāju.", + "veryPoorConnection": "Mēs sagaidām, ka jūsu zvanu kvalitāte būs patiešām briesmīga.", + "videoFreezing": "Mēs sagaidām, ka jūsu video sastings, kļūs melns un pikseļosies.", + "videoHighQuality": "Mēs sagaidām, ka jūsu videoklipam būs laba kvalitāte.", + "videoLowQuality": "Mēs sagaidām, ka jūsu videoklipam būs zema kvalitāte kadru ātruma un izšķirtspējas ziņā.", + "videoTearing": "Mēs sagaidām, ka jūsu videoklipam būs pikseļi vai vizuāli artefakti." + }, + "copyAndShare": "Kopējiet un kopīgojiet sapulces saiti", + "dialInMeeting": "Iezvanietie sapulcē", + "dialInPin": "Iezvanieties sapulcē un ievadiet PIN kodu:", + "dialing": "Iezvans", + "doNotShow": "Vairs nerādīt šo ekrānu", + "errorDialOut": "Nevarēja izsaukt numuru", + "errorDialOutDisconnected": "Nevarēja izsaukt numuru. Atvienots", + "errorDialOutFailed": "Nevarēja izsaukt numuru. Zvans neizdevās", + "errorDialOutStatus": "Kļūda iegūstot izsaukšanas statusu", + "errorMissingName": "Lūdzu, ievadiet savu vārdu, lai pievienotos sapulcei", + "errorNoPermissions": "Jums ir jāiespējo piekļuve mikrofonam un kamerai", + "errorStatusCode": "Izsaucot numuru, radās kļūda, statusa kods: {{status}}", + "errorValidation": "Numura validācija neizdevās", + "iWantToDialIn": "Es gribu iezvanīties", + "initiated": "Zvans uzsākts", + "joinAudioByPhone": "Pievienoties, izmantojot tālruņa audio", + "joinMeeting": "Pievienoties sapulcei", + "joinMeetingInLowBandwidthMode": "Pievienoties zemas joslas platuma režīmā", + "joinWithoutAudio": "Pievienoties bez audio", + "keyboardShortcuts": "Iespējot Īsinājumtaustiņus", + "linkCopied": "Saite ir kopēta starpliktuvē", + "lookGood": "Jūsu mikrofons darbojas pareizi", + "or": "vai", + "premeeting": "Pirms sapulces", + "proceedAnyway": "Tik un tā turpināt", + "recordingWarning": "Citi dalībnieki var ierakstīt šo zvanu", + "screenSharingError": "Ekrāna koplietošanas kļūda:", + "startWithPhone": "Sākt ar tālruņa audio", + "unsafeRoomConsent": "Es saprotu riskus, vēlos pievienoties sapulcei", + "videoOnlyError": "Video kļūda:", + "videoTrackError": "Nevarēja izveidot video celiņu.", + "viewAllNumbers": "skatīt visus numurus" + }, + "presenceStatus": { + "busy": "Aizņemts", + "calling": "Izsaucu…", + "connected": "Savienots", + "connecting": "Notiek savienošanās…", + "connecting2": "Notiek savienošanās*…", + "disconnected": "Atvienots", + "expired": "Noilga", + "ignored": "Ignorēts", + "initializingCall": "Izsaukums tiek inicializēts…", + "invited": "Aicināts", + "rejected": "Noraidīts", + "ringing": "Zvana…" + }, + "profile": { + "avatar": "avatars", + "setDisplayNameLabel": "Vārds", + "setEmailInput": "Ierakstiet e-pasta adresi", + "setEmailLabel": "E-pasts priekš gravatar", + "title": "Profils" + }, + "raisedHand": "Vēlas izteikties/runāt", + "raisedHandsLabel": "Pacelto roku skaits", + "record": { + "already": { + "linked": "Sapulce jau ir saistīta ar šo Salesforce objektu." + }, + "type": { + "account": "Konts", + "contact": "Kontakti", + "lead": "Vadīt", + "opportunity": "Iespēja", + "owner": "Īpašnieks" + } + }, + "recording": { + "authDropboxText": "Augšupielādēt uz Dropbox", + "availableSpace": "Pieejama vieta: {{spaceLeft}} MB (apmēram {{duration}} ieraksta minūtes)", + "beta": "BETA", + "busy": "Cenšamies nodrošināt ierakstam vairāk resursu. Lūdzu, pēc dažām minūtēm pamēģiniet vēlreiz.", + "busyTitle": "Visas ierakstošās ierīces aizņemtas", + "copyLink": "Kopēt Saiti", + "error": "Ieraksta kļūda. Lūdzu, mēģiniet vēlāk.", + "errorFetchingLink": "Kļūda iegūstot ieraksta saiti.", + "expandedOff": "Ieraksts apturēts", + "expandedOn": "Šī sapulce tiek ierakstīta.", + "expandedPending": "Sākam sapulces ierakstu…", + "failedToStart": "Neizdevās sākt ierakstu", + "fileSharingdescription": "Kopīgot ierakstu ar sapulces dalībniekiem", + "highlight": "Izcelt", + "highlightMoment": "Izcelt brīdi", + "highlightMomentDisabled": "Varat izcelt mirkļus, kad sākas ierakstīšana", + "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", + "localRecordingStartWarning": "Pirms iziešanas no sapulces, lūdzu, apturiet ierakstīšanu, lai to saglabātu.", + "localRecordingStartWarningTitle": "Apturiet ierakstīšanu, lai to saglabātu", + "localRecordingVideoStop": "Apturot vide, tiks apturēta arī lokālā ierakstīšana. Vai tiešām vēlaties turpināt?", + "localRecordingVideoWarning": "Lai ierakstītu video, tas ir jāieslēdz, uzsākot ierakstīšanu", + "localRecordingWarning": "Noteikti izvēlieties pašreizējo cilni, lai izmantotu pareizo video un audio.", + "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", + "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!", + "recordAudioAndVideo": "Ierakstīt audio un video", + "recordTranscription": "Ierakstīt atšifrējumu", + "saveLocalRecording": "Ieraksta faila saglabāšana lokāli (beta)", + "serviceDescription": "Jūsu ierakstu saglabās attiecīgais pakalpojums", + "serviceDescriptionCloud": "Ierakstīšana mākonī", + "serviceDescriptionCloudInfo": "Ierakstītās sapulces tiek automātiski dzēstas 24 stundas pēc to ierakstīšanas laika.", + "serviceName": "Ieraksta pakalpojums", + "sessionAlreadyActive": "Šī sesija jau tiek ierakstīta vai straumēta tiešraidē.", + "showAdvancedOptions": "Papildus iespējas", + "signIn": "Pierakstīties", + "signOut": "Izrakstīties", + "surfaceError": "Lūdzu, izvēlieties pašreizējo cilni.", + "title": "Ieraksts", + "unavailable": "Hmm! {{serviceName}} pašlaik nav pieejams. Mēs strādājam pie problēmas risināšanas. Lūdzu, pamēģiniet vēlreiz vēlāk.", + "unavailableTitle": "Ieraksts nav iespējams", + "uploadToCloud": "Augšupielādēt mākonī" + }, + "screenshareDisplayName": "{{name}} ekrāns", + "sectionList": { + "pullToRefresh": "Pavilkt, lai atsvaidzinātu" + }, + "security": { + "about": "Iestatiet sapulcei $t(lockRoomPassword). Dalībniekiem būs jānorāda $t(lockRoomPassword), lai viņi varētu pievienoties sapulcei.", + "aboutReadOnly": "Moderatora dalībnieki sapulcei var iestatīt $t(lockRoomPassword). Dalībniekiem būs jānorāda $t(lockRoomPassword), lai viņi varētu pievienoties sapulcei.", + "insecureRoomNameWarningNative": "Istabas nosaukums nav drošs. Nevēlami dalībnieki var pievienoties jūsu sapulcei. {{recommendAction}} Uzziniet vairāk par tikšanās nodrošināšanu", + "insecureRoomNameWarningWeb": "Istabas nosaukums nav drošs. Nevēlami dalībnieki var pievienoties jūsu sapulcei. {{recommendAction}} Uzziniet vairāk par to, kā nodrošināt atbilstību prasībām šeit.", + "title": "Drošības iespējas", + "unsafeRoomActions": { + "meeting": "Apsveriet iespēju nodrošināt sapulci, izmantojot drošības pogu.", + "prejoin": "Apsveriet iespēju izmantot unikālāku sapulces nosaukumu.", + "welcome": "Apsveriet iespēju izmantot unikālāku sapulces nosaukumu vai izvēlieties kādu no ieteikumiem." + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Iestatījumi", + "calendar": { + "about": "Integrācija ar kalendāru {{appName}} tiek izmantota, lai droši piekļūtu jūsu kalendāram un sinhronizētu plānotos pasākumus.", + "disconnect": "Atslēgties", + "microsoftSignIn": "Ierakstīties ar Microsoft kontu", + "signedIn": "Pašreiz ir piekļuve e-pasta adreses {{email}} kalendāra notikumiem. Noklikšķiniet uz pogas |Atslēgt|, lai izslēgtu piekļuvi šiem kalendāra pasākumiem.", + "title": "Kalendārs" + }, + "chatWithPermissions": "Tērzēšanai nepieciešama atļauja", + "desktopShareFramerate": "Darbvirsmas koplietošanas kadru ātrums", + "desktopShareHighFpsWarning": "Lielāks kadru nomaiņas ātrums darbvirsmas koplietošanai var ietekmēt joslas platumu. Lai jaunie iestatījumi stātos spēkā, ir jārestartē ekrāna kopīgošana.", + "desktopShareWarning": "Lai jaunie iestatījumi stātos spēkā, ir jārestartē ekrāna kopīgošana.", + "devices": "Ierīces", + "followMe": "Visi seko man", + "followMeRecorder": "Ierakstītājs seko man", + "framesPerSecond": "kadri sekundē", + "incomingMessage": "Ienākošā ziņa", + "language": "Valoda", + "loggedIn": "Ierakstījies kā {{name}}", + "maxStageParticipants": "Maksimālais dalībnieku skaits, kurus var piespraust galvenajai skatuvei", + "microphones": "Mikrofoni", + "moderator": "Moderators", + "moderatorOptions": "Moderatora opcijas", + "more": "Vairāk opciju", + "name": "Vārds", + "noDevice": "Ierīču nav", + "notifications": "Paziņojumi", + "participantJoined": "Dalībnieks pievienojās", + "participantKnocking": "Dalībnieks ienāca vestibilā", + "participantLeft": "Dalībnieks izgāja", + "playSounds": "Atskaņot skaņu", + "reactions": "Sapulces reakcijas", + "sameAsSystem": "Tāds pats kā sistēmā ({{label}})", + "selectAudioOutput": "Skaņas izeja", + "selectCamera": "Kamera", + "selectMic": "Mikrofons", + "selfView": "Pašskats", + "shortcuts": "Īsceļi", + "showSubtitlesOnStage": "Rādīt subtitrus galvenajā skatā", + "speakers": "Skaļruņi", + "startAudioMuted": "Dalībnieki pievienojas ar izslēgtu mikrofonu", + "startReactionsMuted": "Izslēgt reakcijas skaņas visiem", + "startVideoMuted": "Dalībnieki pievienojas ar izslēgtu kameru", + "talkWhileMuted": "Runā, kad izslēgta skaņa", + "title": "Iestatījumi", + "video": "Video" + }, + "settingsView": { + "advanced": "Papildus iestatījumi", + "alertCancel": "Atcelt", + "alertOk": "Labi", + "alertTitle": "Uzmanību", + "alertURLText": "Nederīga servera adrese", + "apply": "Apstiprināt", + "buildInfoSection": "Informācija par būvējumu", + "conferenceSection": "Sapulce", + "disableCallIntegration": "Atspējot izsaukumu iekšējo integrāciju", + "disableCrashReporting": "Atspējot avāriju ziņošanu", + "disableCrashReportingWarning": "Vai tiešām vēlaties atspējot avāriju ziņošanu? Iestatījums tiks lietots pēc lietotnes restartēšanas.", + "disableP2P": "Atspējot Peer-To-Peer režīmu", + "displayName": "Vārds", + "displayNamePlaceholderText": "Piemēram: Jānis Bērziņš", + "email": "E-pasts", + "emailPlaceholderText": "epasts@example.com", + "gavatarMessage": "Ja jūsu e-pasts ir saistīts ar Gravatar kontu, mēs to izmantosim, lai parādītu jūsu profila attēlu.", + "goTo": "Pāriet uz", + "header": "Iestatījumi", + "help": "Palīdzība", + "links": "Saites", + "privacy": "Privātums", + "profileSection": "Profils", + "sdkVersion": "SDK versija", + "serverURL": "Servera URL (adrese)", + "showAdvanced": "Parādīt papildus iestatījumus", + "startCarModeInLowBandwidthMode": "Auto versiju uzsākt zema joslas platuma (caurlaidspējas) režīmā", + "startWithAudioMuted": "Sākt ar atslēgtu skaņu", + "startWithVideoMuted": "Sākt ar atslēgtu video", + "terms": "Noteikumi", + "version": "Versija" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVienkārši vēlaties sastādīt numuru savā tālrunī?\n\n{{defaultDialInNumber}}Klikšķiniet uz šīs saites, lai skatītu šīs sapulces tālruņa numurus\n{{dialInfoPageUrl}}", + "mainText": "Klikšķiniet uz saites, lai pievienotos sapulcei:\n{{roomUrl}}" + }, + "speaker": "Skaļrunis", + "speakerStats": { + "angry": "Dusmīgs", + "disgusted": "Pretīgi", + "displayEmotions": "Emocijas", + "fearful": "Bailīgs", + "happy": "Priecīgs", + "hours": "{{count}}s", + "labelTooltip": "Dalībnieku skaits: {{count}}", + "minutes": "{{count}}m", + "name": "Vārds", + "neutral": "Neitrāls", + "sad": "Bēdīgs", + "search": "Meklēt", + "searchDescription": "Sāciet rakstīt, lai atlasītu dalībnieks", + "searchHint": "Meklēt dalībniekus", + "seconds": "{{count}}s", + "speakerStats": "Dalībnieka uzstāšanās statistika", + "speakerTime": "Dalībnieka uzstāšanās laiks", + "surprised": "Izbrīnīts" + }, + "startupoverlay": { + "genericTitle": "Sapulcei ir nepieciešama piekļuve mikrofonam un kamerai.", + "policyText": " ", + "title": "{{app}} ir nepieciešama piekļuve mikrofonam un kamerai." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Pievienoties no jauna", + "text": "Lai atgrieztos video sapulcē, noklikšķiniet uz Pievienoties no jauna.", + "title": "Video sapulce tika pārtraukta, jo šis dators pārgāja snaudas režīmā." + }, + "termsView": { + "title": "Noteikumi" + }, + "toggleTopPanelLabel": "Augšējais panelis (iesl./izsl.)", + "toolbar": { + "Settings": "Iestatījumi", + "accessibilityLabel": { + "Settings": "Iestatījumu izvēlne (rādīt/nerādīt)", + "audioOnly": "Tikai skaņa (iesl./izsl.)", + "audioRoute": "Izvēlieties audio ierīci", + "boo": "Būū", + "breakoutRooms": "Grupu istabas", + "callQuality": "Video kvalitātes vadība", + "carmode": "Auto Režīms", + "cc": "Subtitri (iesl./izsl.)", + "chat": "Tērzēšanas logs (rādīt/nerādīt)", + "clap": "Aplaudēt", + "closeChat": "Aizvērt tērzēšanu", + "closeMoreActions": "Aizvērt vairāk darbību izvēlni", + "closeParticipantsPane": "Aizvērt dalībnieku paneli", + "closedCaptions": "Slēptie subtitri", + "collapse": "Sakļaut", + "document": "Kopīgotais dokuments (iesl./izsl.)", + "documentClose": "Aizvērt kopīgoto dokumentu", + "documentOpen": "Atvērt kopīgoto dokumentu", + "download": "Lejupielādējiet mūsu lietotnes", + "embedMeeting": "Iegult sapulci", + "endConference": "Beigt sapulci visiem", + "enterFullScreen": "Skatīt pilnekrāna režīmā", + "enterTileView": "Atvērt flīžu skatā", + "exitFullScreen": "Iziet no pilnekrāna režīma", + "exitTileView": "Iziet no flīžu skata", + "expand": "Izvērst", + "feedback": "Atstāt atsauksmi", + "fullScreen": "Pilnekrāna režīms (iesl./izsl.)", + "giphy": "GIPHY izvēlne (rādīt/nerādīt)", + "grantModerator": "Piešķirt moderatora tiesības", + "hangup": "Beigt sapulci", + "heading": "Rīkjosla", + "help": "Palīdzība", + "hideWhiteboard": "Paslēpt tāfeli", + "invite": "Uzaicināt", + "kick": "Izraidīt dalībnieku", + "laugh": "Smiekli", + "leaveConference": "Iziet no sapulces", + "like": "Īkšķi augšā", + "linkToSalesforce": "Saite uz Salesforce", + "lobbyButton": "Iespējot/atspējot vestibila režīmu", + "localRecording": "Lokālā ieraksta vadības rīki (iesl./izsl.)", + "lockRoom": "Telpas slēgšana ar paroli (iesl./izsl.)", + "love": "Sirds", + "lowerHand": "Nolaist roku", + "moreActions": "Papildus iestatījumu izvēlne (rādīt/nerādīt)", + "moreActionsMenu": "Papildus iestatījumu izvēlne", + "moreOptions": "Rādīt vairāk opciju", + "mute": "Skaņa (iesl./izsl.)", + "muteEveryone": "Izslēgt skaņu visiem", + "muteEveryoneElse": "Izslēgt skaņu visiem pārējiem", + "muteEveryoneElsesVideoStream": "Pārtraukt visu pārējo video", + "muteEveryonesVideoStream": "Pārtraukt ikviena video", + "muteGUMPending": "Notiek mikrofona pievienošana", + "noiseSuppression": "Trokšņu slāpēšana", + "openChat": "Atvērt tērzētavu", + "participants": "Atvērt dalībnieku paneli", + "pip": "Attēls-attēlā (PIP) režīms (iesl./izsl.)", + "privateMessage": "Nosūtīt privātu ziņu", + "profile": "Rediģēt savu profilu", + "raiseHand": "Pacelt roku", + "react": "Ziņojumu reakcijas", + "reactions": "Reakcijas", + "reactionsMenu": "Reakciju izvēlne", + "recording": "Ieraksts (iesl./izsl.)", + "remoteMute": "Atslēgt dalībnieka mikrofonu", + "remoteVideoMute": "Atslēgt dalībnieka kameru", + "security": "Drošības iespējas", + "selectBackground": "Izvēlēties Fonu", + "selfView": "Pašskats (iesl./izsl.)", + "shareRoom": "Nosūtīt uzaicinājumu", + "shareYourScreen": "Ekrāna kopīgošana (iesl./izsl.)", + "shareaudio": "Kopīgot audio", + "sharedvideo": "Kopīgot video", + "shortcuts": "Īstaustiņi (iesl./izsl.)", + "show": "Rādīt tuvplānā", + "showWhiteboard": "Rādīt tāfeli", + "silence": "Klusums", + "speakerStats": "Statistika (iesl./izsl.)", + "stopScreenSharing": "Pārtraukt ekrāna kopīgošanu", + "stopSharedVideo": "Pārtraukt video", + "surprised": "Pārsteigts", + "tileView": "Flīžu skats (iesl./izsl.)", + "toggleCamera": "Kamera (iesl./izsl.)", + "toggleFilmstrip": "Kinolente (rādīt/nerādīt)", + "unmute": "Ieslēgt skaņu", + "videoblur": "Fona izpludināšana (iesl./izsl.)", + "videomute": "Izslēgt kameru", + "videomuteGUMPending": "Kameras pievienošana", + "videounmute": "Ieslēgt kameru" + }, + "addPeople": "Pievienot cilvēkus savai sesijai/zvanam", + "audioOnlyOff": "Atspējot kanāla/trafika taupības režīmu", + "audioOnlyOn": "Iespējot kanāla/trafika taupības režīmu", + "audioRoute": "Izvēlēties audioierīci", + "audioSettings": "Audio iestatījumi", + "authenticate": "Autentificēt", + "boo": "Būū", + "callQuality": "Video kvalitātes vadība", + "chat": "Tērzētava (atvērt/aizvērt)", + "clap": "Aplaudēt", + "closeChat": "Aizvērt tērzētavu", + "closeParticipantsPane": "Aizvērt dalībnieku paneli", + "closeReactionsMenu": "Aizvērt reakciju izvēlni", + "closedCaptions": "Slēptie subtitri", + "disableNoiseSuppression": "Atspējot trokšņu slāpēšanu", + "disableReactionSounds": "Šai sapulcei varat atspējot reakcijas skaņas", + "documentClose": "Aizvērt kopīgoto dokumentu", + "documentOpen": "Atvērt kopīgotu dokumentu", + "download": "Lejupielādēt lietotnes", + "e2ee": "Pilnīga šifrēšana", + "embedMeeting": "Iegult sapulci", + "enableNoiseSuppression": "Iespējot trokšņu slāpēšanu", + "endConference": "Beigt sapulci visiem", + "enterFullScreen": "Pilnekrāna režīms", + "enterTileView": "Flīžu režīms", + "exitFullScreen": "Pilnekrāna režīms", + "exitTileView": "Tuvplāna režīms", + "feedback": "Atstāts atsauksmi", + "giphy": "GIPHY izvēlne (rādīt/nerādīt)", + "hangup": "Iziet no sapulces", + "help": "Palīdzība", + "hideWhiteboard": "Paslēpt tāfeli", + "invite": "Uzaicināt", + "joinBreakoutRoom": "Pievienoties grupu istabai", + "laugh": "Smiekli", + "leaveBreakoutRoom": "Iziet no grupu istabas", + "leaveConference": "Iziet no sapulces", + "like": "Īkšķi augšup", + "linkToSalesforce": "Saite uz Salesforce", + "lobbyButtonDisable": "Atspējot vestibila režīmu", + "lobbyButtonEnable": "Iespējot vestibila režīmu", + "login": "Ierakstīties", + "logout": "Izrakstīties", + "love": "Sirds", + "lowerYourHand": "Nolaist roku", + "moreActions": "Vairāk rīcību", + "moreOptions": "Vairāk opciju", + "mute": "Ieslēgt/izslēgt mikrofonu", + "muteEveryone": "Noklusināt visus dalībniekus", + "muteEveryonesVideo": "Izslēgt visu kameras", + "muteGUMPending": "Notiek mikrofona pievienošana", + "noAudioSignalDesc": "Ja esat speciāli atspējojis mikrofonu sistēmas vai aparatūras iestatījumos, apsveriet tā iespējošanu.", + "noAudioSignalDescSuggestion": "Ja esat speciāli atspējojis mikrofonu sistēmas vai aparatūras iestatījumos, apsveriet šīs ierīces izmantošanu:", + "noAudioSignalDialInDesc": "Varat arī iezvanīties, izmantojot:", + "noAudioSignalDialInLinkDesc": "Iezvanes numuri", + "noAudioSignalTitle": "No jūsu mikrofona nenāk skaņas signāls!", + "noiseSuppression": "Trokšņu slāpēšana", + "noisyAudioInputDesc": "Izklausās, ka Jūsu mikrofons rada trokšņus. Lūdzu apsveriet tā atslēgšanu vai audio ierīces nomaiņu", + "noisyAudioInputTitle": "Jūsu mikrofons ir trokšņains", + "openChat": "Atvērt tērzētavu", + "openReactionsMenu": "Atvērt reakciju izvēlni", + "participants": "Dalībnieki", + "pip": "Iesl. attēls attēlā (PIP) režīmu", + "privateMessage": "Nosūtīt privātu ziņu", + "profile": "Rediģēt profilu", + "raiseHand": "Pacelt roku", + "raiseYourHand": "Pacelt roku", + "reactionBoo": "Nosūtīt būū reakciju", + "reactionClap": "Nosūtīt aplausu reakciju", + "reactionHeart": "Nosūtīt sirds reakciju", + "reactionLaugh": "Nosūtīt smieklu reakciju", + "reactionLike": "Nosūtīt īkšķi augšup reakciju", + "reactionSilence": "Nosūtīt klusuma reakciju", + "reactionSurprised": "Nosūtīt pārsteigts reakciju", + "reactions": "Reakcijas", + "security": "Drošības iespējas", + "selectBackground": "Izvēlēties fonu", + "shareRoom": "Nosūtīt uzaicinājumu", + "shareaudio": "Sākt kopīgot audio", + "sharedvideo": "Sākt kopīgot video", + "shortcuts": "Īstaustiņi (taustiņu kombinācijas)", + "showWhiteboard": "Rādīt tāfeli", + "silence": "Klusums", + "speakerStats": "Statistika", + "startScreenSharing": "Sākt ekrāna kopīgošanu", + "startSubtitles": "Ieslēgt subtitrus", + "stopAudioSharing": "Beigt audio kopīgošanu", + "stopScreenSharing": "Beigt ekrāna kopīgošanu", + "stopSharedVideo": "Beigt kopīgot video", + "stopSubtitles": "Izslēgt subtitrus", + "surprised": "Pārsteigts", + "talkWhileMutedPopup": "Vai mēģināt runāt? Jums ir izslēgta skaņa.", + "tileViewToggle": "Flīžu režīms (iesl./izsl.)", + "toggleCamera": "Kamera (iesl./izsl.)", + "unmute": "Ieslēgt skaņu", + "videoSettings": "Video iestatījumi", + "videomute": "Ieslēgt/Izslēgt kameru", + "videomuteGUMPending": "Kameras pievienošana", + "videounmute": "Ieslēgt kameru" + }, + "transcribing": { + "ccButtonTooltip": "Iesl./izsl. subtitrus", + "expandedLabel": "Atšifrējuma izveide ir ieslēgta", + "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.", + "openClosedCaptions": "Atvērt slēptos subtitrus", + "original": "Oriģināls", + "sourceLanguageDesc": "Pašlaik sapulces valoda ir iestatīta uz {{sourceLanguage}}.
Varat to mainīt no ", + "sourceLanguageHere": "šeit", + "start": "Iesl. subtitru rādīšanu", + "stop": "Izsl. subtitru rādīšanu", + "subtitles": "Subtitri", + "subtitlesOff": "Izslēgts", + "tr": "TR", + "translateTo": "Tulkot uz" + }, + "unpinParticipant": "{{participantName}} — atspraust", + "userMedia": { + "grantPermissions": "“Lūdzu, dodiet atļauju piekļūt kamerai un mikrofonam." + }, + "videoSIPGW": { + "busy": "Tiek strādāts pie resursu atbrīvošanas. Lūdzu, pēc dažām minūtēm mēģiniet vēlreiz.", + "busyTitle": "Pašlaik darbojas sapulces telpas uzkopšanas serviss", + "errorAlreadyInvited": "{{displayName}} jau ir uzaicināts", + "errorInvite": "Sapulce vēl nav sākusies. Lūdzu, mēģiniet vēlāk.", + "errorInviteFailed": "Tiek strādāts pie risinājuma. Lūdzu, mēģiniet vēlāk.", + "errorInviteFailedTitle": "Uzaicināšana neizdevās {{displayName}}", + "errorInviteTitle": "Uzaicināšanas uz sapulces telpu kļūda", + "pending": "{{displayName}} ir uzaicināts" + }, + "videoStatus": { + "adjustFor": "Pielāgot:", + "audioOnly": "Tikai skaņa", + "audioOnlyExpanded": "Kanāla/trafika taupīšanas režīms. Šajā režīmā pieejami tikai audio un ekrāna kopīgošana", + "bestPerformance": "Labākais sniegums", + "callQuality": "Video kvalitāte", + "hd": "HD", + "hdTooltip": "Augstas izšķirspējas video", + "highDefinition": "Augsta kvalitāte", + "highestQuality": "Augstākā kvalitāte", + "labelTooiltipNoVideo": "Nav video", + "labelTooltipAudioOnly": "Ieslēgts kanāla/trafika taupīšanas režīms", + "ld": "LD", + "ldTooltip": "Zemas izšķirtspējas video", + "lowDefinition": "Zema kvalitāte", + "performanceSettings": "Veiktspējas iestatījumi", + "recording": "Notiek ierakstīšana", + "sd": "SD", + "sdTooltip": "Standarta izšķirtspējas video", + "standardDefinition": "Standarta kvalitāte (SD)", + "streaming": "Notiek straumēšana" + }, + "videothumbnail": { + "connectionInfo": "Informācija par savienojumu", + "demote": "Pārveidot par apmeklētāju", + "domute": "Izlsēgt skaņu", + "domuteDesktop": "Pārtraukt ekrāna kopīgošanu", + "domuteDesktopOfOthers": "Pārtraukt ekrāna kopīgošanu visiem pārējiem", + "domuteOthers": "Izslēgt skaņu visiem pārējiem", + "domuteVideo": "Izslēgt kameru", + "domuteVideoOfOthers": "Izslēgt video visiem pārējiem", + "flip": "Spoguļattēls", + "grantModerator": "Piešķirt moderatora tiesības", + "hideSelfView": "Slēpt pašskatu", + "kick": "Izraidīt", + "mirrorVideo": "Spoguļot manu video", + "moderator": "Moderators", + "mute": "Noklusināt", + "muted": "Noklusināts (bez skaņas)", + "pinToStage": "Piestiprināt tuvplānā", + "remoteControl": "Ieslēgt/izslēgt tālvadību", + "screenSharing": "Dalībnieks kopīgo savu ekrānu", + "show": "Parādīt tuvplānu", + "showSelfView": "Rādīt pašskatu", + "unpinFromStage": "Noņemt no tuvplāna", + "verify": "Apstiprināt dalībnieku", + "videoMuted": "Kamera izslēgta", + "videomute": "Dalībnieks atslēdzis kameru" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Pašreizējais fons: {{background}}", + "selectBackground": "Izvēlēties fonu" + }, + "addBackground": "Pievienot fonu", + "apply": "Apstiprināt", + "backgroundEffectError": "Neizdevās pielietot fona efektu.", + "blur": "Izplūdis", + "deleteImage": "Dzēst attēlu", + "desktopShare": "Darbvirsmas kopīgošana", + "desktopShareError": "Nevarēja izveidot darbvirsmas kopīgošanu", + "image1": "Pludmale", + "image2": "Balta neitrāla siena", + "image3": "Balta tukša istaba", + "image4": "Melna stāvlampa", + "image5": "Kalns", + "image6": "Mežs", + "image7": "Saullēkts", + "none": "Nav", + "pleaseWait": "Lūdzu uzgaidiet…", + "removeBackground": "Noņemt fonu", + "slightBlur": "Viegli izplūdis", + "title": "Virtuālie foni", + "uploadedImage": "Augšupielādēts attēls {{index}}", + "webAssemblyWarning": "WebAssembly netiek atbalstīts", + "webAssemblyWarningDescription": "WebAssemb ir atspējots vai šī pārlūkprogramma to neatbalsta" + }, + "visitors": { + "chatIndicator": "(apmeklētājs)", + "joinMeeting": { + "description": "Jūs pašlaik esat novērotājs šajā konferencē.", + "raiseHand": "Pacelt roku", + "title": "Pievienošanās sapulcei", + "wishToSpeak": "Ja vēlaties runāt, lūdzu, paceliet roku zemāk un gaidiet moderatora apstiprinājumu." + }, + "labelTooltip": "Apmeklētāju skaits: {{count}}", + "notification": { + "demoteDescription": "{{actor}} pārveidoja par apmeklētāju, paceliet roku, lai piedalītos", + "noMainParticipantsDescription": "Dalībniekam ir jāsāk sapulce. Lūdzu, pēc brīža mēģiniet vēlreiz.", + "noMainParticipantsTitle": "Šī sapulce vēl nav sākusies.", + "noVisitorLobby": "Jūs nevarat pievienoties, kamēr sapulcei ir iespējots vestibils.", + "notAllowedPromotion": "Dalībniekam vispirms ir jāatļauj jūsu pieprasījums.", + "title": "Jūs esat sapulces apmeklētājs" + }, + "waitingMessage": "Jūs pievienosities sapulcei, tiklīdz tā sāksies!" + }, + "volumeSlider": "Skaļuma slīdnis", + "welcomepage": { + "accessibilityLabel": { + "join": "Nospiediet, lai pievienotos", + "roomname": "Norādiet sapulces telpas nosaukumu" + }, + "addMeetingName": "Pievienot sapulces nosaukumu", + "appDescription": "Izmēģiniet video tērzēšanu plašākā pulciņā. Aiciniet draugus, paziņas! {{app}} — pilnībā šifrēts atklātā koda rīks ar ideālu licenci, video sapulču rīkošanai. Lietojiet ik dienu, bez maksas un bez reģistrācijas.", + "audioVideoSwitch": { + "audio": "Audio", + "video": "Video" + }, + "calendar": "Kalendārs", + "connectCalendarButton": "Piesaistīt kalendāru", + "connectCalendarText": "Piesaistiet kalendāru, lai redzētu visas jūsu sapulces {{app}}. Turklāt, pievienojot {{provider}} sapulces kalendāram, varat tās sarīkot ar vienu peles klikšķi.", + "enterRoomTitle": "Sākt jaunu vituālo video sapulci", + "getHelp": "Iegūt palīdzību", + "go": "Aiziet", + "goSmall": "Aiziet", + "headerSubtitle": "Drošas un kvalitatīvas sapulces", + "headerTitle": "Jitsi Meet", + "info": "Iezvanes informācija", + "jitsiOnMobile": "Jitsi mobilajā ierīcē — lejupielādējiet mūsu lietotnes un sāciet sapulci no jebkuras vietas", + "join": "IZVEIDOT / PIEVIENOTIES", + "logo": { + "calendar": "Kalendāra logotips", + "desktopPreviewThumbnail": "Darbvirsmas priekšskatījuma sīktēls", + "googleLogo": "Google logotips", + "logoDeepLinking": "Jitsi meet logotips", + "microsoftLogo": "Microsoft logotips", + "policyLogo": "Politikas logotips" + }, + "meetingsAccessibilityLabel": "Sapulces", + "mobileDownLoadLinkAndroid": "Lejupielādēt Android mobilo lietotni", + "mobileDownLoadLinkFDroid": "Lejupielādēt F-Droid mobilo lietotni", + "mobileDownLoadLinkIos": "Lejupielādēt iOS mobilo lietotni", + "moderatedMessage": "Vai arī rezervējiet sapulces URL iepriekš, kur esat vienīgais moderators.", + "privacy": "Privātums", + "recentList": "Nesenās", + "recentListDelete": "Dzēst", + "recentListEmpty": "Šobrīd jūsu nesen apmeklēto sapulču saraksts ir tukšs. Taču tā kā izmantojat šo pakalpojumu, tas ar laiku papildināsies.", + "recentMeetings": "Jūsu nesenās sapulces", + "reducedUIText": "Laipni lūgti {{app}}!", + "roomNameAllowedChars": "Sapulču nosaukumā nedrīkst ietvert šādas rakstuzīmes: ?, &, :, ', \", %, #.", + "roomname": "Norādiet sapulces telpas nosaukumu", + "roomnameHint": "Norādiet sapulces telpas nosaukumu vai adresi. Jūs varat izveidot sapulces telpu ar Jūsu izvēlētu nosaukumu un nodot to potenciālajiem sapulces dalībniekiem, lai viņi izmantotu tieši šo.", + "sendFeedback": "Atsauksmes", + "settings": "Iestatījumi", + "startMeeting": "Sākt sapulci", + "terms": "Lietošanas noteikumi", + "title": "Drošas, pilnībā aprīkotas un pilnīgi bezmaksas videosapulces", + "upcomingMeetings": "Jūsu gaidāmās sapulces" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Tāfele" + }, + "screenTitle": "Tāfele" + } +} diff --git a/lang/main-ml.json b/lang/main-ml.json new file mode 100644 index 0000000..2e31026 --- /dev/null +++ b/lang/main-ml.json @@ -0,0 +1,935 @@ +{ + "addPeople": { + "add": "ക്ഷണിക്കുക ", + "addContacts": "നിങ്ങളുടെ കോണ്ടാക്ടുകളെ ക്ഷണിക്കുക ", + "copyInvite": "മീറ്റിംഗ് ക്ഷണം പകർത്തുക", + "copyLink": "മീറ്റിംഗ് ലിങ്ക് പകർത്തുക", + "copyStream": "തത്സമയ സ്ട്രീമിംഗ് ലിങ്ക് പകർത്തുക", + "countryNotSupported": "ഞങ്ങൾ ഇതുവരെ ഈ ലക്ഷ്യസ്ഥാനത്തെ പിന്തുണയ്ക്കുന്നില്ല.", + "countryReminder": "യുഎസിന് പുറത്ത് വിളിക്കുന്നുണ്ടോ? നിങ്ങൾ രാജ്യ കോഡിലാണ് ആരംഭിക്കുന്നതെന്ന് ഉറപ്പാക്കുക!", + "defaultEmail": "നിങ്ങളുടെ സ്ഥിരസ്ഥിതി ഇമെയിൽ", + "disabled": "നിങ്ങൾക്ക് ആളുകളെ ക്ഷണിക്കാൻ കഴിയില്ല.", + "failedToAdd": "പങ്കെടുക്കുന്നവരെ ചേർക്കുന്നതിൽ പരാജയപ്പെട്ടു", + "footerText": "ഡയൽ ചെയ്യുന്നത് പ്രവർത്തനരഹിതമാക്കി.", + "googleEmail": "ഗൂഗിൾ ഇമെയിൽ", + "inviteMoreHeader": "മീറ്റിംഗിൽ നിങ്ങൾ മാത്രമേയുള്ളൂ ", + "inviteMoreMailSubject": "{{appName}} മീറ്റിംഗിൽ ചേരുക", + "inviteMorePrompt": "കൂടുതൽ ആളുകളെ ക്ഷണിക്കുക", + "linkCopied": "ലിങ്ക് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി", + "loading": "ആളുകൾക്കും ഫോൺ നമ്പറുകൾക്കുമായി തിരയുന്നു", + "loadingNumber": "ഫോൺ നമ്പർ സാധൂകരിക്കുന്നു", + "loadingPeople": "ആളുകളെ ക്ഷണിക്കാൻ തിരയുന്നു ", + "noResults": "പൊരുത്തപ്പെടുന്ന തിരയൽ ഫലങ്ങളൊന്നുമില്ല", + "noValidNumbers": "ഒരു ഫോൺ നമ്പർ നൽകുക", + "outlookEmail": "Outlook Email", + "searchNumbers": "ഫോൺ നമ്പറുകൾ ചേർക്കുക", + "searchPeople": "ആളുകൾക്കായി തിരയുക", + "searchPeopleAndNumbers": "ആളുകൾക്കായി തിരയുക അല്ലെങ്കിൽ അവരുടെ ഫോൺ നമ്പറുകൾ ചേർക്കുക", + "shareInvite": "മീറ്റിംഗ് ക്ഷണം പങ്കിടുക", + "shareLink": "മറ്റുള്ളവരെ ക്ഷണിക്കുന്നതിന് മീറ്റിംഗ് ലിങ്ക് പങ്കിടുക", + "shareStream": "തത്സമയ സ്ട്രീമിംഗ് ലിങ്ക് പങ്കിടുക", + "telephone": "ടെലിഫോൺ: {{number}}", + "title": "ഈ മീറ്റിംഗിലേക്ക് ആളുകളെ ക്ഷണിക്കുക", + "yahooEmail": "യാഹൂ മെയിൽ" + }, + "audioDevices": { + "bluetooth": "ബ്ലൂടൂത്ത്", + "headphones": "ഹെഡ്‌ഫോണുകൾ", + "none": "ഓഡിയോ ഉപകരണങ്ങളൊന്നും ലഭ്യമല്ല", + "phone": "ഫോൺ", + "speaker": "സ്പീക്കർ" + }, + "audioOnly": { + "audioOnly": "കുറഞ്ഞ ബാൻഡ്‌വിഡ്ത്ത്" + }, + "calendarSync": { + "addMeetingURL": "ഒരു മീറ്റിംഗ് ലിങ്ക് ചേർക്കുക", + "confirmAddLink": "ഈ ഇവന്റിലേക്ക് Jitsi ലിങ്ക് ചേർക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "error": { + "appConfiguration": "Calendar integration is not properly configured.", + "generic": "An error has occurred. Please check your calendar settings or try refreshing the calendar.", + "notSignedIn": "An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again." + }, + "join": "ചേരുക", + "joinTooltip": "മീറ്റിംഗിൽ ചേരുക", + "nextMeeting": "അടുത്ത മീറ്റിംഗ്", + "noEvents": "വരാനിരിക്കുന്ന ഇവന്റുകളൊന്നും ഷെഡ്യൂൾ ചെയ്തിട്ടില്ല.", + "ongoingMeeting": "നടന്നുകൊണ്ടിരിക്കുന്ന മീറ്റിംഗ്", + "permissionButton": "ക്രമീകരണങ്ങൾ തുറക്കുക", + "permissionMessage": "അപ്ലിക്കേഷനിൽ നിങ്ങളുടെ മീറ്റിംഗുകൾ കാണാൻ കലണ്ടർ അനുമതി ആവശ്യമാണ്.", + "refresh": "കലണ്ടർ പുതുക്കുക", + "today": "ഇന്ന്" + }, + "chat": { + "error": "പിശക്: നിങ്ങളുടെ മെസ്സേജ് അയച്ചില്ല. കാരണം: {{error}}", + "fieldPlaceHolder": "നിങ്ങളുടെ മെസ്സേജ് ഇവിടെ ടൈപ്പുചെയ്യുക", + "messageTo": "{{recipient}}-ലേക്കുള്ള സ്വകാര്യ സന്ദേശം", + "messagebox": "ഒരു മെസ്സേജ് ടൈപ്പുചെയ്യുക", + "nickname": { + "popover": "ഒരു വിളിപ്പേര് തിരഞ്ഞെടുക്കുക", + "title": "ചാറ്റ് ഉപയോഗിക്കുന്നതിന് ഒരു വിളിപ്പേര് നൽകുക", + "titleWithPolls": "ചാറ്റ് ഉപയോഗിക്കുന്നതിന് ഒരു വിളിപ്പേര് നൽകുക" + }, + "noMessagesMessage": "മീറ്റിംഗിൽ ഇതുവരെ മെസ്സേജുകളൊന്നുമില്ല. ഇവിടെ ഒരു സംഭാഷണം ആരംഭിക്കുക!", + "privateNotice": "{{recipient}}-ലേക്കുള്ള സ്വകാര്യ സന്ദേശം", + "sendButton": "അയയ്ക്കുക", + "title": "ചാറ്റ്", + "titleWithPolls": "ചാറ്റ്", + "you": "നിങ്ങൾ" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome എക്സ്റ്റൻഷൻ ഇൻസ്റ്റാൾ ചെയ്യുക", + "dontShowAgain": "ഇത് എന്നെ വീണ്ടും കാണിക്കരുത്", + "installExtensionText": "Install the extension for Google Calendar and Office 365 integration" + }, + "connectingOverlay": { + "joiningRoom": "നിങ്ങളുടെ മീറ്റിംഗിലേക്ക് നിങ്ങളെ ബന്ധിപ്പിക്കുന്നു…" + }, + "connection": { + "ATTACHED": "അറ്റാച്ചുചെയ്തു", + "AUTHENTICATING": "പ്രാമാണീകരിക്കുന്നു", + "AUTHFAIL": "പ്രാമാണീകരണം പരാജയപ്പെട്ടു", + "CONNECTED": "ബന്ധപ്പെട്ടിരിക്കുന്നു", + "CONNECTING": "ബന്ധിപ്പിക്കുന്നു", + "CONNFAIL": "ബന്ധം പരാജയപ്പെട്ടു", + "DISCONNECTED": "ബന്ധം വേർപെടുത്തിയിരിക്കുന്നു", + "DISCONNECTING": "ഡിസ്കണനെക്ട ചെയ്യുന്നു ", + "ERROR": "Error", + "FETCH_SESSION_ID": "സെഷൻ ഐഡി നേടുന്നു…", + "GET_SESSION_ID_ERROR": "Get session-id error: {{code}}", + "GOT_SESSION_ID": "സെഷൻ ഐഡി നേടുന്നു… ചെയ്തു", + "LOW_BANDWIDTH": "ബാൻഡ്വിഡിത്ത് സൂക്ഷിക്കുന്നതിനായി {{displayName}}-നുള്ള വീഡിയോ ഓഫ് ചെയ്തിരിക്കുന്നു" + }, + "connectionindicator": { + "address": "Address:", + "bandwidth": "കണക്കാക്കിയ ബാൻഡ്‌വിഡ്‌ത്ത്:", + "bitrate": "Bitrate:", + "bridgeCount": "Server count: ", + "codecs": "Codecs (A/V): ", + "connectedTo": "Connected to:", + "framerate": "Frame rate:", + "less": "Show less", + "localaddress": "Local address:", + "localaddress_plural": "Local addresses:", + "localport": "Local port:", + "localport_plural": "Local ports:", + "maxEnabledResolution": "send max", + "more": "കൂടുതൽ കാണിക്കുക", + "packetloss": "Packet loss:", + "quality": { + "good": "Good", + "inactive": "Inactive", + "lost": "Lost", + "nonoptimal": "Nonoptimal", + "poor": "Poor" + }, + "remoteaddress": "Remote address:", + "remoteaddress_plural": "Remote addresses:", + "remoteport": "Remote port:", + "remoteport_plural": "Remote ports:", + "resolution": "Resolution:", + "status": "Connection:", + "transport": "Transport:", + "transport_plural": "Transports:" + }, + "dateUtils": { + "earlier": "നേരത്തെ", + "today": "ഇന്ന്", + "yesterday": "ഇന്നലെ" + }, + "deepLinking": { + "appNotInstalled": "ഈ മീറ്റിംഗ് ഫോണിൽ ചേരാൻ {{app}} മൊബൈൽ ആപ്പ് വേണം.", + "description": "Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.", + "descriptionWithoutWeb": "Nothing happened? We tried launching your meeting in the {{app}} desktop app.", + "downloadApp": "ആപ്പ് ഡൌൺലോഡ് ചെയ്യുക ", + "ifDoNotHaveApp": "നിങ്ങൾക്ക് ഇതുവരെ അപ്ലിക്കേഷൻ ഇല്ലെങ്കിൽ:", + "ifHaveApp": "നിങ്ങൾക്ക് അപ്ലിക്കേഷൻ ഉണ്ടെങ്കിൽ:", + "joinInApp": "അപ്ലിക്കേഷൻ ഉപയോഗിച്ച് ഈ മീറ്റിംഗിൽ ചേരുക", + "launchWebButton": "വെബിൽ സമാരംഭിക്കുക", + "title": "Launching your meeting in {{app}}…", + "tryAgainButton": "ഡെസ്ക്ടോപ്പിൽ വീണ്ടും ശ്രമിക്കുക" + }, + "defaultLink": "e.g. {{url}}", + "defaultNickname": "ex. Jane Pink", + "deviceError": { + "cameraError": "നിങ്ങളുടെ ക്യാമറ ആക്‌സസ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു", + "cameraPermission": "ക്യാമറ അനുമതി നേടുന്നതിൽ പിശക്", + "microphoneError": "നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു", + "microphonePermission": "മൈക്രോഫോൺ അനുമതി നേടുന്നതിൽ പിശക്" + }, + "deviceSelection": { + "noPermission": "അനുമതി നൽകിയിട്ടില്ല", + "previewUnavailable": "പ്രിവ്യൂ ലഭ്യമല്ല", + "selectADevice": "ഒരു ഉപകരണം തിരഞെടുക്കുക ", + "testAudio": "ഒരു ടെസ്റ്റ് ശബ്ദം പ്ലേ ചെയ്യുക" + }, + "dialOut": { + "statusMessage": "is now {{status}}" + }, + "dialog": { + "Back": "പിന്നോട്ട്", + "Cancel": "റദ്ദാക്കുക", + "IamHost": "ഞാൻ ഹോസ്റ്റാണ് ", + "Ok": "OK", + "Remove": "നീക്കംചെയ്യുക", + "Share": "പങ്കിടുക", + "Submit": "സമർപ്പിക്കുക", + "WaitForHostMsg": "The conference has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.", + "WaitingForHost": "ഹോസ്റ്റിനായി കാത്തിരിക്കുന്നു…", + "Yes": "അതെ", + "accessibilityLabel": { + "liveStreaming": "തത്സമയ സംപ്രേക്ഷണം" + }, + "add": "ചേർക്കുക", + "allow": "അനുവദിക്കുക", + "alreadySharedVideoMsg": "മറ്റൊരു പങ്കാളി ഇതിനകം ഒരു വീഡിയോ പങ്കിടുന്നു. ഈ കോൺഫറൻസ് ഒരു സമയം പങ്കിട്ട ഒരു വീഡിയോ മാത്രമേ അനുവദിക്കൂ.", + "alreadySharedVideoTitle": "ഒരു സമയം പങ്കിട്ട ഒരു വീഡിയോ മാത്രമേ അനുവദിക്കൂ", + "applicationWindow": "Application window", + "cameraConstraintFailedError": "Your camera does not satisfy some of the required constraints.", + "cameraNotFoundError": "Camera was not found.", + "cameraNotSendingData": "We are unable to access your camera. Please check if another application is using this device, select another device from the settings menu or try to reload the application.", + "cameraNotSendingDataTitle": "Unable to access camera", + "cameraPermissionDeniedError": "You have not granted permission to use your camera. You can still join the conference but others won't see you. Use the camera button in the address bar to fix this.", + "cameraUnknownError": "Cannot use camera for an unknown reason.", + "cameraUnsupportedResolutionError": "Your camera does not support required video resolution.", + "close": "അടയ്ക്കുക", + "conferenceDisconnectMsg": "You may want to check your network connection. Reconnecting in {{seconds}} sec…", + "conferenceDisconnectTitle": "നിങ്ങൾ ബന്ധം വിച്ഛേദിച്ചിരിക്കുന്നു.", + "conferenceReloadMsg": "ഞങ്ങൾ ഇത് പരിഹരിക്കാൻ ശ്രമിക്കുകയാണ്. {{seconds}} സെക്കൻഡിൽ വീണ്ടും കണക്റ്റുചെയ്യുന്നു…", + "conferenceReloadTitle": "നിർഭാഗ്യവശാൽ, എന്തോ കുഴപ്പം സംഭവിച്ചു.", + "confirm": "ഉറപ്പാക്കുക", + "confirmNo": "വേണ്ട", + "confirmYes": "ശരി", + "connectError": "Oops! Something went wrong and we couldn't connect to the conference.", + "connectErrorWithMsg": "Oops! Something went wrong and we couldn't connect to the conference: {{msg}}", + "connecting": "ബന്ധിപ്പിക്കുന്നു", + "contactSupport": "സപ്പോർട്ടുമായി ബന്ധപെടുക", + "copied": "പകർത്തി", + "copy": "പകര്‍ത്തുക", + "dismiss": "ഒഴിവാക്കുക", + "displayNameRequired": "ഹായ്! താങ്കളുടെ പേരെന്താണ്?", + "done": "തീര്‍ന്നു", + "e2eeDescription": "End-to-End Encryption is currently EXPERIMENTAL. Please keep in mind that turning on end-to-end encryption will effectively disable server-side provided services such as: recording, live streaming and phone participation. Also keep in mind that the meeting will only work for people joining from browsers with support for insertable streams.", + "e2eeLabel": "ആദ്യാവസാനം എൻക്രിപ്ഷൻ സജ്ജമാക്കുക", + "e2eeWarning": "WARNING: Not all participants in this meeting seem to have support for End-to-End encryption. If you enable it they won't be able to see nor hear you.", + "enterDisplayName": "നിങ്ങളുടെ പേര് ഇവിടെ നൽകുക", + "error": "Error", + "gracefulShutdown": "ഞങ്ങളുടെ സേവനം ഇപ്പോൾ പരിരക്ഷിക്കപ്പെടുകയാണ്. ദയവായി വീണ്ടും ശ്രമിക്കൂ.", + "grantModeratorDialog": "ഈ പങ്കാളിയെ ഒരു മോഡറേറ്ററാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "grantModeratorTitle": "മോഡറേറ്റർ അവകാശം നൽകുക", + "incorrectPassword": "തെറ്റായ ഉപയോക്തൃ നാമം അല്ലെങ്കിൽ പാസ്വേഡ്", + "incorrectRoomLockPassword": "പാസ്‌വേഡ് തെറ്റാണ്", + "internalError": "Oops! Something went wrong. The following error occurred: {{error}}", + "internalErrorTitle": "Internal error", + "kickMessage": "You can contact {{participantDisplayName}} for more details.", + "kickParticipantButton": "പുറത്താക്കുക ", + "kickParticipantDialog": "ഈ പങ്കാളിയെ പുറത്താക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?", + "kickParticipantTitle": "ഈ പങ്കാളിയെ പുറത്താക്കണോ?", + "kickTitle": "ശൊ! {{participantDisplayName}} നിങ്ങളെ പുറത്താക്കി", + "liveStreaming": "തത്സമയ സംപ്രേക്ഷണം", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "റെക്കോർഡിംഗ് സജീവമായിരിക്കുമ്പോൾ സാധ്യമല്ല", + "liveStreamingDisabledForGuestTooltip": "അതിഥികൾക്ക് തത്സമയ സ്ട്രീം ആരംഭിക്കാൻ കഴിയില്ല", + "liveStreamingDisabledTooltip": "തത്സമയ സ്ട്രീം തുടങ്ങുക പ്രവർത്തനരഹിതമാക്കി.", + "lockMessage": "കോൺഫറൻസ് ലോക്ക് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു.", + "lockRoom": "മീറ്റിംഗ് ചേർക്കുക $t(lockRoomPasswordUppercase)", + "lockTitle": "ലോക്ക് പരാജയപ്പെട്ടു", + "logoutQuestion": "ലോഗൗട്ട് ചെയ്യാനും കോൺഫറൻസ് നിർത്താനും നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "logoutTitle": "ലോഗൗട്ട്", + "maxUsersLimitReached": "പങ്കെടുക്കുന്നവരുടെ പരമാവധി എണ്ണം പരിധിയിലെത്തി. സമ്മേളനം നിറഞ്ഞു. മീറ്റിംഗ് ഉടമയുമായി ബന്ധപ്പെടുക അല്ലെങ്കിൽ പിന്നീട് വീണ്ടും ശ്രമിക്കുക!", + "maxUsersLimitReachedTitle": "പങ്കെടുക്കുന്നവരുടെ പരമാവധി പരിധി എത്തി", + "micConstraintFailedError": "നിങ്ങളുടെ മൈക്രോഫോൺ ആവശ്യമായ ചില പരിമിതികളെ തൃപ്തിപ്പെടുത്തുന്നില്ല.", + "micNotFoundError": "മൈക്രോഫോൺ കണ്ടെത്തിയില്ല.", + "micNotSendingData": "നിങ്ങളുടെ മൈക്ക് അൺമ്യൂട്ടുചെയ്യാനും അതിന്റെ ലെവൽ ക്രമീകരിക്കാനും കമ്പ്യൂട്ടറിന്റെ സജ്ജീകരണങ്ങളിലേക്ക് പോകുക", + "micNotSendingDataTitle": "നിങ്ങളുടെ സിസ്റ്റം ക്രമീകരണങ്ങളാൽ മൈക്ക് മ്യൂട്ട് ആണ്.", + "micPermissionDeniedError": "നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കാൻ അനുമതി നൽകിയിട്ടില്ല. നിങ്ങൾക്ക് കോൺഫറൻസിൽ ചേരാനാകും, പക്ഷേ മറ്റുള്ളവർക്ക് നിങ്ങളെ കേൾക്കാനാകില്ല. ഇത് പരിഹരിക്കാൻ താഴേയുള്ള ക്യാമറ ബട്ടൺ ഉപയോഗിക്കുക.", + "micUnknownError": "അജ്ഞാതമായ കാരണത്താൽ മൈക്രോഫോൺ ഉപയോഗിക്കാൻ കഴിയില്ല.", + "muteEveryoneDialog": "എല്ലാവരേയും നിശബ്ദമാക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ? നിങ്ങൾക്ക് അവയെ അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയില്ല, എന്നാൽ അവർക്ക് എപ്പോൾ വേണമെങ്കിലും സ്വയം അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയും.", + "muteEveryoneElseDialog": "അവരെ നിശബ്ദമാക്കിയാൽ, നിങ്ങൾക്ക് അവയെ അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയില്ല, എന്നാൽ അവർക്ക് എപ്പോൾ വേണമെങ്കിലും സ്വയം അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയും.", + "muteEveryoneElseTitle": "{{whom}} ഒഴികെ എല്ലാവരെയും നിശബ്ദമാക്കുക?", + "muteEveryoneSelf": "നിങ്ങൾ സ്വയം", + "muteEveryoneStartMuted": "എല്ലാവരെയും ഇപ്പോൾ മുതൽ നിശബ്ദമാക്കാൻ തുടങ്ങും ", + "muteEveryoneTitle": "എല്ലാവരേയും നിശബ്ദമാക്കണോ?", + "muteParticipantBody": "നിങ്ങൾക്ക് അവയെ അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയില്ല, എന്നാൽ അവർക്ക് എപ്പോൾ വേണമെങ്കിലും സ്വയം അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയും.", + "muteParticipantButton": "നിശബ്ദമാക്കുക", + "muteParticipantDialog": "ഈ പങ്കാളിയെ നിശബ്ദമാക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ? നിങ്ങൾക്ക് അവയെ അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയില്ല, എന്നാൽ അവർക്ക് എപ്പോൾ വേണമെങ്കിലും സ്വയം അൺമ്യൂട്ട് ചെയ്യാൻ കഴിയും.", + "muteParticipantTitle": "ഈ പങ്കാളിയെ നിശബ്ദമാക്കണോ?", + "passwordLabel": "The meeting has been locked by a participant. Please enter the $t(lockRoomPassword) to join.", + "passwordNotSupported": "Setting a meeting $t(lockRoomPassword) is not supported.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) not supported", + "passwordRequired": "$t(lockRoomPasswordUppercase) required", + "popupError": "Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser's security settings and try again.", + "popupErrorTitle": "പോപ്പ്-അപ്പ് തടഞ്ഞു", + "readMore": "കൂടുതൽ", + "recording": "റെക്കോർഡിംഗ്", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "ഒരു തത്സമയ സ്ട്രീം സജീവമായിരിക്കുമ്പോൾ സാധ്യമല്ല", + "recordingDisabledForGuestTooltip": "അതിഥികൾക്ക് റെക്കോർഡിംഗുകൾ ആരംഭിക്കാൻ കഴിയില്ല.", + "recordingDisabledTooltip": "റെക്കോർഡിംഗ് പ്രവർത്തനരഹിതമാക്കി.", + "rejoinNow": "Rejoin now", + "remoteControlAllowedMessage": "{{user}} നിങ്ങളുടെ വിദൂര നിയന്ത്രണ അഭ്യർത്ഥന സ്വീകരിച്ചു!", + "remoteControlDeniedMessage": "{{user}} നിങ്ങളുടെ വിദൂര നിയന്ത്രണ അഭ്യർത്ഥന നിരസിച്ചു!", + "remoteControlErrorMessage": "An error occurred while trying to request remote control permissions from {{user}}!", + "remoteControlRequestMessage": "Will you allow {{user}} to remotely control your desktop?", + "remoteControlShareScreenWarning": "Note that if you press \"Allow\" you will share your screen!", + "remoteControlStopMessage": "വിദൂര നിയന്ത്രണ സെഷൻ അവസാനിച്ചു!", + "remoteControlTitle": "വിദൂര ഡെസ്ക്ടോപ്പ് നിയന്ത്രണം", + "removePassword": "$t(lockRoomPassword) നീക്കംചെയ്യുക", + "removeSharedVideoMsg": "നിങ്ങളുടെ പങ്കിട്ട വീഡിയോ നീക്കംചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് ഉറപ്പാണോ?", + "removeSharedVideoTitle": "പങ്കിട്ട വീഡിയോ നീക്കംചെയ്യുക", + "reservationError": "റിസർവേഷൻ സിസ്റ്റം പിശക്", + "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}", + "retry": "വീണ്ടും ശ്രമിക്കുക", + "screenSharingAudio": "ഓഡിയോ പങ്കിടുക", + "screenSharingFailed": "Oops! Something went wrong, we weren’t able to start screen sharing!", + "screenSharingFailedTitle": "സ്‌ക്രീൻ പങ്കിടൽ പരാജയപ്പെട്ടു!", + "screenSharingPermissionDeniedError": "Oops! Something went wrong with your screen sharing permissions. Please reload and try again.", + "sendPrivateMessage": "You recently received a private message. Did you intend to reply to that privately, or you want to send your message to the group?", + "sendPrivateMessageCancel": "ഗ്രൂപ്പിലേക്ക് അയയ്ക്കുക", + "sendPrivateMessageOk": "സ്വകാര്യമായി അയയ്ക്കുക", + "sendPrivateMessageTitle": "സ്വകാര്യമായി അയയ്ക്കണോ?", + "serviceUnavailable": "സേവനം ലഭ്യമല്ല", + "sessTerminated": "കോൾ അവസാനിപ്പിച്ചു", + "shareVideoLinkError": "ശരിയായ യൂട്യൂബ് ലിങ്ക് നൽകുക.", + "shareVideoTitle": "ഒരു വീഡിയോ പങ്കിടുക", + "shareYourScreen": "നിങ്ങളുടെ സ്ക്രീൻ പങ്കിടുക", + "shareYourScreenDisabled": "സ്‌ക്രീൻ പങ്കിടൽ പ്രവർത്തനരഹിതമാക്കി.", + "shareYourScreenDisabledForGuest": "Guests can't screen share.", + "startLiveStreaming": "തത്സമയ സ്ട്രീം ആരംഭിക്കുക", + "startRecording": "റെക്കോർഡിംഗ് ആരംഭിക്കുക", + "startRemoteControlErrorMessage": "An error occurred while trying to start the remote control session!", + "stopLiveStreaming": "തത്സമയ സ്ട്രീം നിർത്തുക", + "stopRecording": "റെക്കോർഡിംഗ് നിർത്തുക", + "stopRecordingWarning": "റെക്കോർഡിംഗ് നിർത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ??", + "stopStreamingWarning": "തത്സമയ സ്ട്രീമിംഗ് നിർത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് ഉറപ്പാണോ?", + "streamKey": "തത്സമയ സ്ട്രീം കീ", + "thankYou": "{{appName}} ഉപയോഗിച്ചതിന് നന്ദി!", + "token": "token", + "tokenAuthFailed": "ക്ഷമിക്കണം, ഈ കോളിൽ ചേരാൻ നിങ്ങളെ അനുവദിച്ചിട്ടില്ല.", + "tokenAuthFailedTitle": "പ്രാമാണീകരണം പരാജയപ്പെട്ടു", + "transcribing": "ട്രാൻസ്‌ക്രൈബുചെയ്യുന്നു", + "unlockRoom": "Remove meeting $t(lockRoomPassword)", + "userPassword": "ഉപയോക്തൃ പാസ്‌വേഡ്", + "yourEntireScreen": "നിങ്ങളുടെ മുഴുവൻ സ്ക്രീനും " + }, + "documentSharing": { + "title": "പങ്കിട്ട പ്രമാണം" + }, + "e2ee": { + "labelToolTip": "ഈ കോളിലെ ഓഡിയോ, വീഡിയോ ആശയവിനിമയം എൻഡ്-ടു-എൻഡ് എൻ‌ക്രിപ്റ്റ് ചെയ്തിരിക്കുന്നു" + }, + "embedMeeting": { + "title": "ഈ മീറ്റിംഗ് എംബെഡ് ചെയ്യുക " + }, + "feedback": { + "average": "ശരാശരി", + "bad": " മോശം", + "detailsLabel": "ഇതിനെക്കുറിച്ച് കൂടുതൽ ഞങ്ങളോട് പറയുക.", + "good": "നല്ലത്", + "rateExperience": "നിങ്ങളുടെ മീറ്റിംഗ് അനുഭവം റേറ്റുചെയ്യുക", + "veryBad": "വളരെ മോശം", + "veryGood": "വളരെ നല്ലത്" + }, + "helpView": { + "title": "സഹായകേന്ദ്രം" + }, + "incomingCall": { + "answer": "കോളിന് മറുപടി നൽകുക", + "audioCallTitle": "ഇൻകമിംഗ് കോൾ", + "decline": "നിരസിക്കുക", + "productLabel": "Jitsi Meet-ൽ നിന്ന്", + "videoCallTitle": "ഇൻകമിംഗ് വീഡിയോ കോൾ" + }, + "info": { + "accessibilityLabel": "വിവരം കാണിക്കുക", + "addPassword": "Add $t(lockRoomPassword)", + "cancelPassword": "Cancel $t(lockRoomPassword)", + "conferenceURL": "ലിങ്ക്:", + "country": "രാജ്യം", + "dialANumber": "നിങ്ങളുടെ മീറ്റിംഗിൽ ചേരാൻ, ഈ നമ്പറുകളിലൊന്ന് ഡയൽ ചെയ്‌ത് പിൻ നൽകുക.", + "dialInConferenceID": "പിന്‍ :", + "dialInNotSupported": "ക്ഷമിക്കണം, ഡയൽ ചെയ്യുന്നത് നിലവിൽ പിന്തുണയ്ക്കുന്നില്ല.", + "dialInNumber": "ഡയൽ-ഇൻ:", + "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}}", + "inviteURLFirstPartGeneral": "ഒരു മീറ്റിംഗിൽ ചേരാൻ നിങ്ങളെ ക്ഷണിച്ചു.", + "inviteURLFirstPartPersonal": "{{name}} നിങ്ങളെ ഒരു മീറ്റിംഗിലേക്ക് ക്ഷണിക്കുന്നു.\n", + "inviteURLSecondPart": "\nമീറ്റിംഗിൽ ചേരുക:\n{{url}}\n", + "label": "മീറ്റിംഗ് വിവരം", + "liveStreamURL": "തത്സമയ സ്ട്രീം:", + "moreNumbers": "കൂടുതൽ നമ്പറുകൾ", + "noNumbers": "No dial-in numbers.", + "noPassword": "ഒന്നുമില്ല", + "noRoom": "No room was specified to dial-in into.", + "numbers": "ഡയൽ-ഇൻ നമ്പറുകൾ", + "password": "$t(lockRoomPasswordUppercase):", + "title": "പങ്കിടുക", + "tooltip": "ഈ മീറ്റിംഗിനായി ലിങ്കും ഡയൽ-ഇൻ വിവരവും പങ്കിടുക" + }, + "inlineDialogFailure": { + "msg": "ഞങ്ങൾ അൽപ്പം ഇടറി.", + "retry": "വീണ്ടും ശ്രമിക്കുക", + "support": "പിന്തുണ", + "supportMsg": "ഇത് തുടരുകയാണെങ്കിൽ, ബന്ധപ്പെടുക" + }, + "inviteDialog": { + "alertText": "പങ്കെടുക്കുന്ന ചിലരെ ക്ഷണിക്കുന്നതിൽ പരാജയപ്പെട്ടു.", + "header": "ക്ഷണിക്കുക", + "searchCallOnlyPlaceholder": "ഫോൺ നമ്പർ നൽകുക", + "searchPeopleOnlyPlaceholder": "പങ്കെടുക്കുന്നവർക്കായി തിരയുക", + "searchPlaceholder": "പങ്കാളി അല്ലെങ്കിൽ ഫോൺ നമ്പർ", + "send": "അയയ്ക്കുക" + }, + "keyboardShortcuts": { + "focusLocal": "നിങ്ങളുടെ വീഡിയോയിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുക", + "focusRemote": "മറ്റൊരു വ്യക്തിയുടെ വീഡിയോയിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുക", + "fullScreen": "പൂർണ്ണ സ്ക്രീൻ കാണുക അല്ലെങ്കിൽ പുറത്തുകടക്കുക", + "keyboardShortcuts": "കീബോഡ് കുറുക്കുവഴികള്‍", + "localRecording": "പ്രാദേശിക റെക്കോർഡിംഗ് നിയന്ത്രണങ്ങൾ കാണിക്കുക അല്ലെങ്കിൽ മറയ്‌ക്കുക", + "mute": "നിങ്ങളുടെ മൈക്രോഫോൺ നിശബ്ദമാക്കുക അല്ലെങ്കിൽ അൺമ്യൂട്ട് ചെയ്യുക", + "pushToTalk": "Push to talk", + "raiseHand": "ഉയർത്തുകയോ കൈ താഴ്ത്തുകയോ ചെയ്യുക", + "showSpeakerStats": "സ്പീക്കർ സ്ഥിതിവിവരക്കണക്കുകൾ കാണിക്കുക", + "toggleChat": "ചാറ്റ് തുറക്കുക അല്ലെങ്കിൽ അടയ്ക്കുക", + "toggleFilmstrip": "വീഡിയോ ലഘുചിത്രങ്ങൾ കാണിക്കുക അല്ലെങ്കിൽ മറയ്ക്കുക", + "toggleScreensharing": "ക്യാമറയും സ്‌ക്രീൻ പങ്കിടലും തമ്മിൽ മാറുക", + "toggleShortcuts": "കീബോർഡ് കുറുക്കുവഴികൾ കാണിക്കുക അല്ലെങ്കിൽ മറയ്‌ക്കുക", + "videoMute": "നിങ്ങളുടെ ക്യാമറ ആരംഭിക്കുക അല്ലെങ്കിൽ നിർത്തുക", + "videoQuality": "കോൾ നിലവാരം നിയന്ത്രിക്കുക" + }, + "liveStreaming": { + "busy": "We're working on freeing streaming resources. Please try again in a few minutes.", + "busyTitle": "എല്ലാ സ്ട്രീമറുകളും നിലവിൽ തിരക്കിലാണ്", + "changeSignIn": "അക്കൗണ്ടുകൾ മാറുക.", + "choose": "ഒരു തത്സമയ സ്ട്രീം തിരഞ്ഞെടുക്കുക", + "chooseCTA": "ഒരു സ്ട്രീമിംഗ് ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക. നിങ്ങൾ നിലവിൽ {{email}} ആയി ലോഗിൻ ചെയ്തിട്ടുണ്ട്.", + "enterStreamKey": "നിങ്ങളുടെ യൂട്യൂബ് തത്സമയ സ്ട്രീം കീ ഇവിടെ നൽകുക.", + "error": "തത്സമയ സ്ട്രീമിംഗ് പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.", + "errorAPI": "നിങ്ങളുടെ യൂട്യൂബ് പ്രക്ഷേപണങ്ങൾ ആക്സസ് ചെയ്യുന്നതിനിടയിൽ ഒരു പിശക് സംഭവിച്ചു. ദയവായി വീണ്ടും പ്രവേശിക്കാൻ ശ്രമിക്കുക.", + "errorLiveStreamNotEnabled": "{{email}} -ൽ തത്സമയ സ്ട്രീമിംഗ് പ്രാപ്തമാക്കിയിട്ടില്ല.തത്സമയ സ്ട്രീമിംഗ് പ്രാപ്തമാക്കുക അല്ലെങ്കിൽ തത്സമയ സ്ട്രീമിംഗ് പ്രാപ്തമാക്കിയ ഒരു അക്കൗണ്ടിലേക്ക് പ്രവേശിക്കുക.", + "expandedOff": "തത്സമയ സ്ട്രീമിംഗ് അവസാനിച്ചു", + "expandedOn": "മീറ്റിംഗ് നിലവിൽ യൂട്യൂബിലേക്ക് സ്ട്രീം ചെയ്യുന്നു.", + "expandedPending": "തത്സമയ സ്ട്രീമിംഗ് ആരംഭിക്കുന്നു…", + "failedToStart": "തത്സമയ സ്ട്രീമിംഗ് ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു", + "getStreamKeyManually": "ഞങ്ങൾക്ക് തത്സമയ സ്ട്രീമുകളൊന്നും നേടാനായില്ല. യൂട്യൂബിൽ നിന്ന് നിങ്ങളുടെ തത്സമയ സ്ട്രീം കീ നേടാൻ ശ്രമിക്കുക.", + "googlePrivacyPolicy": "ഗൂഗിൾ സ്വകാര്യതാ നയം", + "invalidStreamKey": "തത്സമയ സ്ട്രീം കീ തെറ്റായിരിക്കാം.", + "limitNotificationDescriptionNative": "നിങ്ങളുടെ സ്ട്രീമിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും.പരിധിയില്ലാത്ത സ്ട്രീമിംഗിനായി ശ്രമിക്കുക {{app}}.", + "limitNotificationDescriptionWeb": "ഉയർന്ന ഡിമാൻഡ് കാരണം നിങ്ങളുടെ സ്ട്രീമിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും. പരിധിയില്ലാത്ത സ്ട്രീമിംഗിനായി ശ്രമിക്കുക {{app}}.", + "off": "തത്സമയ സ്ട്രീമിംഗ് അവസാനിച്ചു", + "offBy": "{{name}} തത്സമയ സ്ട്രീമിംഗ് നിർത്തി", + "on": "തത്സമയ സംപ്രേക്ഷണം", + "onBy": "{{name}} തത്സമയ സ്ട്രീമിംഗ് ആരംഭിച്ചു", + "pending": "തത്സമയ സ്ട്രീം ആരംഭിക്കുന്നു…", + "serviceName": "തത്സമയ സ്ട്രീമിംഗ് സേവനം", + "signIn": "ഗൂഗിൾ ഉപയോഗിച്ച് പ്രവേശിക്കുക", + "signInCTA": "പ്രവേശിക്കുക അല്ലെങ്കിൽ നിങ്ങളുടെ യൂട്യൂബ് തത്സമയ സ്ട്രീം കീ നൽകുക.", + "signOut": "പുറത്തു കടക്കുക", + "signedInAs": "You are currently signed in as:", + "start": "ഒരു തത്സമയ സ്ട്രീം ആരംഭിക്കുക", + "streamIdHelp": "എന്താണിത്?", + "title": "തത്സമയ സംപ്രേക്ഷണം", + "unavailableTitle": "തത്സമയ സ്ട്രീമിംഗ് ലഭ്യമല്ല", + "youtubeTerms": "യൂട്യൂബ് സേവനങ്ങളുടെ നിബന്ധനകൾ" + }, + "lobby": { + "allow": "അനുവദിക്കുക", + "backToKnockModeButton": "പാസ്‌വേഡ് ഇല്ല, പകരം ചേരാൻ ആവശ്യപ്പെടുക", + "dialogTitle": "ലോബി മോഡ്", + "disableDialogContent": "ലോബി മോഡ് നിലവിൽ പ്രാപ്തമാക്കി. അനാവശ്യ പങ്കാളികൾക്ക് നിങ്ങളുടെ മീറ്റിംഗിൽ ചേരാനാവില്ലെന്ന് ഈ സവിശേഷത ഉറപ്പാക്കുന്നു. ഇത് പ്രവർത്തനരഹിതമാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "disableDialogSubmit": "പ്രവർത്തനരഹിതമാക്കുക", + "emailField": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം നൽകുക", + "enableDialogPasswordField": "പാസ്‌വേഡ് സജ്ജമാക്കുക (ഓപ്ഷണൽ)", + "enableDialogSubmit": "പ്രവർത്തനക്ഷമമാക്കുക", + "enableDialogText": "ഒരു മോഡറേറ്ററുടെ ഔദ്യോഗിക അംഗീകാരത്തിനുശേഷം ആളുകളെ പ്രവേശിക്കാൻ മാത്രം അനുവദിച്ചുകൊണ്ട് നിങ്ങളുടെ മീറ്റിംഗ് പരിരക്ഷിക്കാൻ ലോബി മോഡ് നിങ്ങളെ അനുവദിക്കുന്നു.", + "enterPasswordButton": "മീറ്റിംഗ് പാസ്‌വേഡ് നൽകുക ", + "enterPasswordTitle": "മീറ്റിംഗിൽ ചേരാൻ പാസ്‌വേഡ് നൽകുക", + "invalidPassword": "പാസ്‌വേഡ് അസാധുവാണ്", + "joinRejectedMessage": "നിങ്ങളുടെ ചേരൽ അഭ്യർത്ഥന ഒരു മോഡറേറ്റർ നിരസിച്ചു.", + "joinTitle": "മീറ്റിംഗിൽ ചേരുക", + "joinWithPasswordMessage": "പാസ്‌വേഡുമായി ചേരാൻ ശ്രമിക്കുന്നു, ദയവായി കാത്തിരിക്കുക…", + "joiningMessage": "ആരെങ്കിലും നിങ്ങളുടെ അഭ്യർത്ഥന സ്വീകരിച്ചാലുടൻ നിങ്ങൾ മീറ്റിംഗിൽ ചേരും", + "joiningTitle": "മീറ്റിംഗിൽ ചേരാൻ ആവശ്യപ്പെടുന്നു…", + "joiningWithPasswordTitle": "പാസ്‌വേഡുമായി ചേരുന്നു…", + "knockButton": "ചേരാൻ ആവശ്യപ്പെടുക", + "knockTitle": "ആരോ മീറ്റിംഗിൽ ചേരാൻ ശ്രമിക്കുന്നു ", + "knockingParticipantList": "Knocking participant list", + "nameField": "നിങ്ങളുടെ പേര് നൽകുക", + "notificationLobbyAccessDenied": "{{targetParticipantName}} has been rejected to join by {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} has been allowed to join by {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby has been disabled by {{originParticipantName}}", + "notificationLobbyEnabled": "{{originParticipantName}} ലോബി പ്രാപ്തമാക്കി", + "notificationTitle": "ലോബി", + "passwordField": "മീറ്റിംഗ് പാസ്‌വേഡ് നൽകുക", + "passwordJoinButton": "ചേരുക", + "title": "ലോബി", + "toggleLabel": "ലോബി പ്രവർത്തനക്ഷമമാക്കുക" + }, + "localRecording": { + "clientState": { + "off": "ഓഫ്", + "on": "ഓണ്‍", + "unknown": "അപരിചിതം" + }, + "dialogTitle": "പ്രാദേശിക റെക്കോർഡിംഗ് നിയന്ത്രണങ്ങൾ", + "duration": "സമയപരിധി", + "durationNA": "N/A", + "encoding": "എൻകോഡിംഗ്", + "label": "LOR", + "labelToolTip": "പ്രാദേശിക റെക്കോർഡിംഗ് ഏർപ്പെട്ടിരിക്കുന്നു", + "localRecording": "പ്രാദേശിക റെക്കോർഡിംഗ്", + "me": "Me", + "messages": { + "engaged": "പ്രാദേശിക റെക്കോർഡിംഗ് ഏർപ്പെട്ടിരിക്കുന്നു.", + "finished": "റെക്കോർഡിംഗ് സെഷൻ {{token}} പൂർത്തിയായി. റെക്കോർഡുചെയ്‌ത ഫയൽ മമോഡറേറ്ററിനു അയയ്‌ക്കുക.", + "finishedModerator": "റെക്കോർഡിംഗ് സെഷൻ {{token}} പൂർത്തിയായി. പ്രാദേശിക ട്രാക്കിന്റെ റെക്കോർഡിംഗ് സൂക്ഷിച്ചിരിക്കുന്നു. പങ്കെടുക്കുന്ന മറ്റുള്ളവരോട് അവരുടെ റെക്കോർഡിംഗുകൾ സമർപ്പിക്കാൻ ആവശ്യപ്പെടുക.", + "notModerator": "നിങ്ങൾ മോഡറേറ്ററല്ല. നിങ്ങൾക്ക് പ്രാദേശിക റെക്കോർഡിംഗ് ആരംഭിക്കാനോ നിർത്താനോ കഴിയില്ല." + }, + "moderator": "മോഡറേറ്റർ", + "no": "വേണ്ട", + "participant": "പങ്കെടുക്കുന്നയാൾ", + "participantStats": "പങ്കെടുക്കുന്നവരുടെ സ്ഥിതിവിവരക്കണക്കുകൾ", + "sessionToken": "സെഷൻ ടോക്കൺ", + "start": "റെക്കോർഡിംഗ് ആരംഭിക്കുക", + "stop": "റെക്കോർഡിംഗ് നിർത്തുക", + "yes": "അതെ" + }, + "lockRoomPassword": "രഹസ്യവാക്ക്", + "lockRoomPasswordUppercase": "രഹസ്യവാക്ക്", + "lonelyMeetingExperience": { + "button": "മറ്റുള്ളവരെ ക്ഷണിക്കുക", + "youAreAlone": "മീറ്റിംഗിൽ നിങ്ങൾ മാത്രമേയുള്ളൂ " + }, + "me": "ഞാൻ", + "notify": { + "OldElectronAPPTitle": "സുരക്ഷാ ദുർബലത!", + "connectedOneMember": "{{name}} മീറ്റിംഗിൽ ചേർന്നു", + "connectedThreePlusMembers": "{{name}}, മറ്റ് {{count}} പേരും മീറ്റിംഗിൽ ചേർന്നു", + "connectedTwoMembers": "{{first}},{{second}} എന്നിവർ മീറ്റിംഗിൽ ചേർന്നു", + "disconnected": "വിച്ഛേദിച്ചു", + "focus": "കോൺഫറൻസ് ഫോക്കസ്", + "focusFail": "{{component}} ലഭ്യമല്ല -{{ms}} സെക്കൻഡിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക", + "grantedTo": "{{to}} എന്ന വ്യക്തിക്ക് മോഡറേറ്റർ അവകാശങ്ങൾ നൽകി!", + "invitedOneMember": "{{name}} എന്നിവരെ ക്ഷണിച്ചു", + "invitedThreePlusMembers": "{{name}}, മറ്റ് {{count}} പേരെയും ക്ഷണിച്ചു", + "invitedTwoMembers": "{{first}},{{second}} എന്നിവരെ ക്ഷണിച്ചു", + "kickParticipant": "{{kicked}} എന്നയാളെ {{kicker}} പുറത്താക്കി", + "me": "ഞാൻ", + "moderator": "മോഡറേറ്റർ അവകാശങ്ങൾ അനുവദിച്ചു!", + "muted": "You have started the conversation muted.", + "mutedRemotelyDescription": "നിങ്ങൾ സംസാരിക്കാൻ തയ്യാറാകുമ്പോൾ നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും അൺമ്യൂട്ട് ചെയ്യാനാകും. മീറ്റിംഗിൽ നിന്ന് ശബ്‌ദം ഒഴിവാക്കാൻ നിങ്ങൾ പൂർത്തിയാക്കുമ്പോൾ നിശബ്ദമാക്കുക.", + "mutedRemotelyTitle": "നിങ്ങളെ {{participantDisplayName}} നിശബ്‌ദമാക്കിയിരിക്കുന്നു!", + "mutedTitle": "നിങ്ങൾ നിശബ്ദമാണ്!", + "newDeviceAction": "ഉപയോഗം", + "newDeviceAudioTitle": "പുതിയ ഓഡിയോ ഉപകരണം കണ്ടെത്തി", + "newDeviceCameraTitle": "പുതിയ ക്യാമറ കണ്ടെത്തി", + "oldElectronClientDescription1": "സുരക്ഷാ കേടുപാടുകൾ അടങ്ങുന്ന ജിറ്റ്‌സി മീറ്റ് ക്ലയന്റിന്റെ പഴയ പതിപ്പ് നിങ്ങൾ ഉപയോഗിക്കുന്നതായി തോന്നുന്നു.", + "oldElectronClientDescription2": "ഞങ്ങളുടെ ഏറ്റവും പുതിയ ബിൽഡിലേക്ക് നിങ്ങൾ ഇപ്പോൾ അപ്‌ഡേറ്റ് ചെയ്യുന്നുവെന്ന്", + "oldElectronClientDescription3": " ഉറപ്പാക്കുക!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) എന്നയാളെ മറ്റൊരു പങ്കാളി നീക്കംചെയ്‌തു", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant", + "raisedHand": "{{name}} സംസാരിക്കാൻ ആഗ്രഹിക്കുന്നു.", + "somebody": "Somebody", + "startSilentDescription": "ഓഡിയോ പ്രവർത്തനക്ഷമമാക്കാൻ മീറ്റിംഗിൽ വീണ്ടും ചേരുക", + "startSilentTitle": "ഓഡിയോ ഔട്ട്പുട്ട് ഇല്ലാതെ നിങ്ങൾ ചേർന്നു!", + "suboptimalBrowserWarning": "നിങ്ങളുടെ മീറ്റിംഗ് അനുഭവം ഇവിടെ മികച്ചതായിരിക്കില്ലെന്ന് ഞങ്ങൾ ഭയപ്പെടുന്നു. ഇത് മെച്ചപ്പെടുത്തുന്നതിനുള്ള വഴികൾ ഞങ്ങൾ തിരയുന്നു, പക്ഷേ അതുവരെ ദയവായി പൂർണ്ണമായി പിന്തുണയ്‌ക്കുന്ന ബ്രൗസറുകളിൽ ഒന്ന് ഉപയോഗിക്കാൻ ശ്രമിക്കുക..", + "suboptimalExperienceTitle": "ബ്രൗസർ മുന്നറിയിപ്പ്", + "unmute": "അൺമ്യൂട്ട്" + }, + "participantsPane": { + "actions": { + "reject": "നിരസിക്കുക" + } + }, + "passwordDigitsOnly": "{{number}} അക്കങ്ങൾ വരെ", + "passwordSetRemotely": "മറ്റൊരു പങ്കാളി സജ്ജമാക്കിയത്", + "polls": { + "errors": { + "notUniqueOption": "ഓപ്ഷനുകൾ അദ്വിതീയമായിരിക്കണം" + } + }, + "poweredby": "powered by", + "prejoin": { + "audioAndVideoError": "ഓഡിയോ, വീഡിയോ പിശക്:", + "audioDeviceProblem": "നിങ്ങളുടെ ഓഡിയോ ഉപകരണത്തിൽ ഒരു പ്രശ്‌നമുണ്ട്", + "audioOnlyError": "ഓഡിയോ പിശക്:", + "audioTrackError": "ഓഡിയോ ട്രാക്ക് സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല.", + "callMe": "എന്നെ വിളിക്കുക", + "callMeAtNumber": "ഈ നമ്പറിൽ എന്നെ വിളിക്കുക:", + "calling": "വിളിക്കുന്നു", + "configuringDevices": "ഉപകരണങ്ങൾ ക്രമീകരിക്കുന്നു…", + "connectedWithAudioQ": "നിങ്ങൾ ഓഡിയോയുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ?", + "connection": { + "good": "നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ മികച്ചതായി തോന്നുന്നു!", + "nonOptimal": "നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ അനുയോജ്യമല്ല", + "poor": "നിങ്ങൾക്ക് ഒരു മോശം ഇന്റർനെറ്റ് കണക്ഷൻ ഉണ്ട്" + }, + "connectionDetails": { + "audioClipping": "നിങ്ങളുടെ ഓഡിയോ ക്ലിപ്പ് ചെയ്യുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "audioHighQuality": "നിങ്ങളുടെ ഓഡിയോയ്ക്ക് മികച്ച നിലവാരമുണ്ടെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "audioLowNoVideo": "നിങ്ങളുടെ ഓഡിയോ നിലവാരം കുറവായിരിക്കുമെന്നും വീഡിയോയില്ലെന്നും ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "goodQuality": "കൊള്ളാം! നിങ്ങളുടെ മീഡിയ നിലവാരം മികച്ചതായിരിക്കും.", + "noMediaConnectivity": "ഈ പരിശോധനയ്ക്കായി മീഡിയ കണക്റ്റിവിറ്റി സ്ഥാപിക്കുന്നതിനുള്ള ഒരു മാർഗം കണ്ടെത്താൻ ഞങ്ങൾക്ക് കഴിഞ്ഞില്ല. ഇത് സാധാരണയായി ഒരു ഫയർവാൾ അല്ലെങ്കിൽ NAT മൂലമാണ് സംഭവിക്കുന്നത്.", + "noVideo": "നിങ്ങളുടെ വീഡിയോ ഭയങ്കരമാകുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "undetectable": "നിങ്ങൾക്ക് ഇപ്പോഴും ബ്രൗസറിൽ കോളുകൾ ചെയ്യാൻ കഴിയുന്നില്ലെങ്കിൽ, നിങ്ങളുടെ സ്പീക്കറുകൾ, മൈക്രോഫോൺ, ക്യാമറ എന്നിവ ശരിയായി സജ്ജമാക്കിയിട്ടുണ്ടെന്നും നിങ്ങളുടെ മൈക്രോഫോണും ക്യാമറയും ഉപയോഗിക്കുന്നതിന് ബ്രൌസർ അവകാശങ്ങൾ നൽകിയിട്ടുണ്ടെന്നും നിങ്ങളുടെ ബ്രൌസർ പതിപ്പ് കാലികമാണെന്നും ഉറപ്പുവരുത്താൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.നിങ്ങൾക്ക് ഇപ്പോഴും വിളിക്കുന്നതിൽ പ്രശ്നമുണ്ടെങ്കിൽ, നിങ്ങൾ വെബ് ആപ്ലിക്കേഷൻ ഡവലപ്പറുമായി ബന്ധപ്പെടണം.", + "veryPoorConnection": "നിങ്ങളുടെ കോൾ നിലവാരം വളരെ മോശമാണെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "videoFreezing": "നിങ്ങളുടെ വീഡിയോ മരവിപ്പിക്കുമെന്നും കറുപ്പായി മാറുമെന്നും പിക്സലേറ്റ് ചെയ്യപ്പെടുമെന്നും ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "videoHighQuality": "നിങ്ങളുടെ വീഡിയോയ്ക്ക് മികച്ച നിലവാരം ഉണ്ടായിരിക്കുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "videoLowQuality": "ഫ്രെയിം റേറ്റും റെസല്യൂഷനും അനുസരിച്ച് നിങ്ങളുടെ വീഡിയോയ്ക്ക് ഗുണനിലവാരമില്ലെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.", + "videoTearing": "നിങ്ങളുടെ വീഡിയോ പിക്സലേറ്റഡ് അല്ലെങ്കിൽ വിഷ്വൽ ആർട്ടിഫാക്റ്റുകൾ ഉണ്ടെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു." + }, + "copyAndShare": "മീറ്റിംഗ് ലിങ്ക് പകർത്തി പങ്കിടുക", + "dialInMeeting": "മീറ്റിംഗിലേക്ക് ഡയൽ ചെയ്യുക", + "dialInPin": "മീറ്റിംഗിലേക്ക് ഡയൽ ചെയ്ത് പിൻ കോഡ് നൽകുക:", + "dialing": "ഡയൽ ചെയ്യുന്നു", + "doNotShow": "ഇത് വീണ്ടും കാണിക്കരുത്", + "errorDialOut": "ഡയൽ ചെയ്യാൻ കഴിഞ്ഞില്ല", + "errorDialOutDisconnected": "ഡയൽ ചെയ്യാൻ കഴിഞ്ഞില്ല.വിച്ഛേദിച്ചു", + "errorDialOutFailed": "ഡയൽ ചെയ്യാൻ കഴിഞ്ഞില്ല.കോൾ പരാജയപ്പെട്ടിരിക്കുന്നു", + "errorDialOutStatus": "ഡയൽ ഔട്ട് നില നേടുന്നതിൽ പിശക്", + "errorMissingName": "മീറ്റിംഗിൽ ചേരാൻ ദയവായി നിങ്ങളുടെ പേര് നൽകുക", + "errorStatusCode": "ഡയൽ ഔട്ട് ചെയ്യുന്നതിൽ പിശക്, സ്റ്റാറ്റസ് കോഡ്: {{status}}", + "errorValidation": "നമ്പർ മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടു", + "iWantToDialIn": "എനിക്ക് ഡയൽ ഇൻ ചെയ്യണം", + "initiated": "കോൾ ആരംഭിച്ചു", + "joinAudioByPhone": "ഫോൺ ഓഡിയോയിൽ ചേരുക", + "joinMeeting": "മീറ്റിംഗിൽ ചേരുക", + "joinWithoutAudio": "ഓഡിയോ ഇല്ലാതെ ചേരുക", + "linkCopied": "ലിങ്ക് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി", + "lookGood": "നിങ്ങളുടെ മൈക്രോഫോൺ ശരിയായി പ്രവർത്തിക്കുന്നതായി തോന്നുന്നു", + "or": "അല്ലെങ്കിൽ", + "premeeting": "പ്രീ മീറ്റിംഗ്", + "screenSharingError": "സ്ക്രീൻ പങ്കിടൽ പിശക്:", + "startWithPhone": "ഫോൺ ഓഡിയോ ഉപയോഗിച്ച് ആരംഭിക്കുക", + "videoOnlyError": "വീഡിയോ പിശക്:", + "videoTrackError": "വീഡിയോ ട്രാക്ക് സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല.", + "viewAllNumbers": "എല്ലാ അക്കങ്ങളും കാണുക" + }, + "presenceStatus": { + "busy": "തിരക്ക്", + "calling": "വിളിക്കുന്നു…", + "connected": "ബന്ധിപ്പിച്ചു", + "connecting": "ബന്ധിപ്പിക്കുന്നു…", + "connecting2": "ബന്ധിപ്പിക്കുന്നു*…", + "disconnected": "വിച്ഛേദിച്ചു", + "expired": "കാലഹരണപ്പെട്ടു", + "ignored": "അവഗണിച്ചു", + "initializingCall": "കോൾ സമാരംഭിക്കുന്നു…", + "invited": "ക്ഷണിച്ചു", + "rejected": "നിരസിച്ചു", + "ringing": "റിംഗുചെയ്യുന്നു…" + }, + "profile": { + "setDisplayNameLabel": "നിങ്ങളുടെ ഡിസ്പ്ലേ നാമം സജ്ജമാക്കുക", + "setEmailInput": "ഇ-മെയിൽ നൽകുക", + "setEmailLabel": "നിങ്ങളുടെ ഗ്രാവതാർ ഇമെയിൽ സജ്ജമാക്കുക", + "title": "പ്രൊഫൈൽ" + }, + "raisedHand": "സംസാരിക്കാൻ ആഗ്രഹിക്കുന്നു", + "recording": { + "authDropboxText": "ഡ്രോപ്പ്ബോക്സിലേക്ക് അപ്‌ലോഡ് ചെയ്യുക", + "availableSpace": "ലഭ്യമായ സ്ഥലം: {{spaceLeft}} MB (ഏകദേശം {{duration}} മിനിറ്റ് റെക്കോർഡിംഗ്)", + "beta": "ബീറ്റ", + "busy": "റെക്കോർഡിംഗ് ഉറവിടങ്ങൾ സ്വതന്ത്രമാക്കുന്നതിനായി ഞങ്ങൾ പ്രവർത്തിക്കുന്നു. കുറച്ച് മിനിറ്റിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.", + "busyTitle": "എല്ലാ റെക്കോർഡറുകളും നിലവിൽ തിരക്കിലാണ്", + "error": "റെക്കോർഡിംഗ് പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.", + "expandedOff": "റെക്കോർഡിംഗ് അവസാനിച്ചു ", + "expandedOn": "മീറ്റിംഗ് നിലവിൽ റെക്കോർഡുചെയ്യുന്നു.", + "expandedPending": "റെക്കോർഡിംഗ് ആരംഭിച്ചു…", + "failedToStart": "റെക്കോർഡിംഗ് ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു", + "fileSharingdescription": "മീറ്റിംഗ് പങ്കാളികളുമായി റെക്കോർഡിംഗ് പങ്കിടുക", + "limitNotificationDescriptionNative": "ഉയർന്ന ഡിമാൻഡ് കാരണം നിങ്ങളുടെ റെക്കോർഡിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും. പരിധിയില്ലാത്ത റെക്കോർഡിംഗുകൾക്കായി <3>{{app}}.", + "limitNotificationDescriptionWeb": "ഉയർന്ന ഡിമാൻഡ് കാരണം നിങ്ങളുടെ റെക്കോർഡിംഗ് {{limit}} മിനിറ്റായി പരിമിതപ്പെടുത്തും. പരിധിയില്ലാത്ത റെക്കോർഡിംഗുകൾക്കായി {{app}}.", + "live": "തത്സമയം", + "loggedIn": "{{userName}} എന്നയാളായി ലോഗിൻ ചെയ്‌തു", + "off": "െക്കോർഡിംഗ് അവസാനിച്ചു", + "offBy": "{{name}} റെക്കോർഡിംഗ് നിർത്തി", + "on": "റെക്കോർഡിംഗ്", + "onBy": "{{name}} റെക്കോർഡിംഗ് ആരംഭിച്ചു", + "pending": "മീറ്റിംഗ് റെക്കോർഡുചെയ്യാൻ തയ്യാറെടുക്കുന്നു…", + "rec": "REC", + "serviceDescription": "നിങ്ങളുടെ റെക്കോർഡിംഗ് റെക്കോർഡിംഗ് സേവനം സൂക്ഷിക്കും", + "serviceName": "റെക്കോർഡിംഗ് സേവനം ", + "signIn": "അകത്തുകയറുക", + "signOut": "പുറത്തിറങ്ങുക", + "title": "റെക്കോർഡിംഗ്", + "unavailable": "ക്ഷമിക്കണം {{serviceName}} നിലവിൽ ലഭ്യമല്ല. പ്രശ്നം പരിഹരിക്കുന്നതിനായി ഞങ്ങൾ പ്രവർത്തിക്കുന്നു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.", + "unavailableTitle": "റെക്കോർഡിംഗ് ലഭ്യമല്ല" + }, + "sectionList": { + "pullToRefresh": "Pull to refresh" + }, + "security": { + "about": "You can add a $t(lockRoomPassword) to your meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.", + "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.", + "insecureRoomNameWarning": "റൂമിന്റെ പേര് സുരക്ഷിതമല്ല. അനാവശ്യ പങ്കാളികൾക്ക് നിങ്ങളുടെ കോൺഫറൻസിൽ ചേരാം. സുരക്ഷാ ബട്ടൺ ഉപയോഗിച്ച് നിങ്ങളുടെ മീറ്റിംഗ് സുരക്ഷിതമാക്കുന്നത് പരിഗണിക്കുക.", + "securityOptions": "സുരക്ഷാ ഓപ്ഷനുകൾ" + }, + "settings": { + "calendar": { + "about": "നിങ്ങളുടെ കലണ്ടർ സുരക്ഷിതമായി ആക്സസ് ചെയ്യുന്നതിന് {{appName}} കലണ്ടർ സംയോജനം ഉപയോഗിക്കുന്നതിനാൽ വരാനിരിക്കുന്ന ഇവന്റുകൾ വായിക്കാൻ കഴിയും.", + "disconnect": "വിച്ഛേദിക്കുക", + "microsoftSignIn": "മൈക്രോസോഫ്ട് ഉപയോഗിച്ച് പ്രവേശിക്കുക", + "signedIn": "{{email}} ഇനായി കലണ്ടർ ഇവന്റുകൾ ആക്‌സസ്സുചെയ്യുന്നു. കലണ്ടർ ഇവന്റുകൾ ആക്സസ് ചെയ്യുന്നത് നിർത്താൻ ചുവടെയുള്ള വിച്ഛേദിക്കുക ബട്ടൺ ക്ലിക്കുചെയ്യുക.", + "title": "കലണ്ടർ" + }, + "devices": "ഉപകരണങ്ങൾ", + "followMe": "എല്ലാവരും എന്നെ പിന്തുടരുന്നു", + "language": "ഭാഷ", + "loggedIn": "Logged in as {{name}}", + "microphones": "മൈക്രോഫോണുകൾ", + "moderator": "മോഡറേറ്റർ", + "more": "കൂടുതൽ", + "name": "പേര്", + "noDevice": "ഒന്നുമില്ല", + "selectAudioOutput": "ഓഡിയോ ഔട്ട്പുട്ട് ", + "selectCamera": "ക്യാമറ", + "selectMic": "മൈക്രോഫോൺ", + "speakers": "സ്പീക്കറുകൾ", + "startAudioMuted": "Everyone starts muted", + "startVideoMuted": "Everyone starts hidden", + "title": "സജ്ജീകരണങ്ങള്‍" + }, + "settingsView": { + "advanced": "അധികമായതു്", + "alertCancel": "റദ്ദാക്കുക", + "alertOk": "ശരി", + "alertTitle": "മുന്നറിയിപ്പ്", + "alertURLText": "നൽകിയ സെർവർ URL അസാധുവാണ്", + "buildInfoSection": "ബിൽഡ് വിവരങ്ങൾ", + "conferenceSection": "കോൺഫറൻസ് ", + "disableCallIntegration": "നേറ്റീവ് കോൾ സംയോജനം പ്രവർത്തനരഹിതമാക്കുക", + "disableCrashReporting": "പിയർ-ടു-പിയർ മോഡ് പ്രവർത്തനരഹിതമാക്കുക", + "disableCrashReportingWarning": "ക്രാഷ് റിപ്പോർട്ടിംഗ് അപ്രാപ്തമാക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ? നിങ്ങൾ അപ്ലിക്കേഷൻ പുനരാരംഭിച്ച ശേഷം ക്രമീകരണം പ്രയോഗിക്കും.", + "disableP2P": "പിയർ-ടു-പിയർ മോഡ് പ്രവർത്തനരഹിതമാക്കുക", + "displayName": "പ്രദർശിപ്പിയ്ക്കേണ്ട നാമം", + "email": "ഇമെയിൽ", + "header": "സജ്ജീകരണങ്ങള്‍", + "profileSection": "പ്രൊഫൈൽ", + "serverURL": "സെർവർ URL", + "showAdvanced": "വിപുലമായ ക്രമീകരണങ്ങൾ കാണിക്കുക", + "startWithAudioMuted": "Start with audio muted", + "startWithVideoMuted": "Start with video muted", + "version": "Version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nനിങ്ങളുടെ ഫോണിൽ ഡയൽ ഇൻ ചെയ്യണോ?\n\n{{defaultDialInNumber}}ഈ മീറ്റിംഗിന്റെ ഡയൽ ഇൻ ഫോൺ നമ്പറുകൾ കാണുന്നതിന് ഈ ലിങ്കിൽ ക്ലിക്കുചെയ്യുക\n{{dialInfoPageUrl}}", + "mainText": "മീറ്റിംഗിൽ ചേരുന്നതിനായി താഴെപ്പറയുന്ന ലിങ്കിൽ ക്ലിക്കുചെയ്യുക:\n{{roomUrl}}" + }, + "speaker": "സ്പീക്കർ", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "പേര്", + "search": "തിരയുക", + "searchHint": "പങ്കെടുക്കുന്നവരെ തിരയുക", + "seconds": "{{count}}s", + "speakerStats": "സ്പീക്കർ സ്ഥിതിവിവരക്കണക്കുകൾ", + "speakerTime": "സ്പീക്കർ സമയം" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} നിങ്ങളുടെ മൈക്രോഫോണും ക്യാമറയും ഉപയോഗിക്കേണ്ടതുണ്ട്." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "വീണ്ടും ചേരുക", + "text": "വീണ്ടും ബന്ധിപ്പിക്കുന്നതിന് വീണ്ടും ചേരുക ബട്ടൺ അമർത്തുക.", + "title": "ഈ കമ്പ്യൂട്ടർ സ്ലീപ്പിൽ പോയതിനാൽ നിങ്ങളുടെ വീഡിയോ കോൾ തടസ്സപ്പെട്ടു." + }, + "toolbar": { + "Settings": "സജ്ജീകരണങ്ങള്‍", + "accessibilityLabel": { + "Settings": "സജ്ജീകരണങ്ങള്‍ ടോഗിൾ ചെയ്യുക", + "audioOnly": "ഓഡിയോ മാത്രം ടോഗിൾ ചെയ്യുക", + "audioRoute": "ശബ്‌ദ ഉപകരണം തിരഞ്ഞെടുക്കുക", + "callQuality": "വീഡിയോ നിലവാരം നിയന്ത്രിക്കുക", + "cc": "സബ്‌ടൈറ്റിലുകൾ ടോഗിൾ ചെയ്യുക", + "chat": "ചാറ്റ് വിൻഡോ ടോഗിൾ ചെയ്യുക", + "document": "പങ്കിട്ട പ്രമാണം ടോഗിൾ ചെയ്യുക", + "download": "ഞങ്ങളുടെ അപ്ലിക്കേഷനുകൾ ഡൗൺലോഡുചെയ്യുക", + "embedMeeting": "മീറ്റിംഗ് എംബെഡ് ചെയ്യുക ", + "feedback": "പ്രതികരണം അറിയിക്കൂ", + "fullScreen": "പൂർണ്ണ സ്‌ക്രീൻ ടോഗിൾ ചെയ്യുക", + "grantModerator": "മോഡറേറ്റർ അവകാശം നൽകുക ", + "hangup": "കോൾ വിടുക", + "help": "സഹായം", + "invite": "ആളുകളെ ക്ഷണിക്കുക", + "kick": "പങ്കാളിയെ പുറത്താക്കുക", + "lobbyButton": "ലോബി മോഡ് പ്രാപ്തമാക്കുക/അപ്രാപ്തമാക്കുക", + "localRecording": "പ്രാദേശിക റെക്കോർഡിംഗ് നിയന്ത്രണങ്ങൾ ടോഗിൾ ചെയ്യുക", + "lockRoom": "മീറ്റിംഗ് പാസ്‌വേഡ് ടോഗിൾ ചെയ്യുക", + "moreActions": "കൂടുതൽ പ്രവർത്തന മെനു ടോഗിൾ ചെയ്യുക", + "moreActionsMenu": "കൂടുതൽ പ്രവർത്തന മെനു", + "moreOptions": "കൂടുതൽ ഓപ്ഷനുകൾ കാണിക്കുക", + "mute": "ഓഡിയോ മ്യൂട്ട് ടോഗിൾ ചെയ്യുക", + "muteEveryone": "എല്ലാവരേയും നിശബ്ദമാക്കുക", + "pip": "പിക്ചർ-ഇൻ-പിക്ചർ മോഡ് ടോഗിൾ ചെയ്യുക", + "privateMessage": "സ്വകാര്യ സന്ദേശം അയയ്‌ക്കുക", + "profile": "നിങ്ങളുടെ പ്രൊഫൈൽ എഡിറ്റുചെയ്യുക", + "raiseHand": "കൈ ഉയർത്തുക ടോഗിൾ ചെയ്യുക", + "recording": "റെക്കോർഡിംഗ് ടോഗിൾ ചെയ്യുക", + "remoteMute": "പങ്കാളിയെ നിശബ്ദമാക്കുക", + "security": "സുരക്ഷാ ഉപാധികൾ ", + "shareRoom": "ആരെയെങ്കിലും ക്ഷണിക്കുക", + "shareYourScreen": "സ്ക്രീൻഷെയർ ടോഗിൾ ചെയ്യുക", + "sharedvideo": "യൂട്യൂബ് വീഡിയോ പങ്കിടൽ ടോഗിൾ ചെയ്യുക", + "shortcuts": "കുറുക്കുവഴികൾ ടോഗിൾ ചെയ്യുക", + "show": "സ്റ്റേജിൽ കാണിക്കുക", + "speakerStats": "സ്പീക്കർ സ്ഥിതിവിവരക്കണക്കുകൾ ടോഗിൾ ചെയ്യുക", + "tileView": "ടൈൽ കാഴ്ച ടോഗിൾ ചെയ്യുക", + "toggleCamera": "ക്യാമറ ടോഗിൾ ചെയ്യുക", + "toggleFilmstrip": "ഫിലിംസ്ട്രിപ്പ് ടോഗിൾ ചെയ്യുക", + "videoblur": "വീഡിയോ മങ്ങൽ ടോഗിൾ ചെയ്യുക", + "videomute": "നിശബ്ദ വീഡിയോ ടോഗിൾ ചെയ്യുക" + }, + "addPeople": "നിങ്ങളുടെ കോളിലേക്ക് ആളുകളെ ചേർക്കുക", + "audioOnlyOff": "കുറഞ്ഞ ബാൻഡ്‌വിഡ്ത്ത് മോഡ് പ്രവർത്തനരഹിതമാക്കുക", + "audioOnlyOn": "കുറഞ്ഞ ബാൻഡ്‌വിഡ്ത്ത് മോഡ് പ്രവർത്തനക്ഷമമാക്കുക", + "audioRoute": "ശബ്‌ദ ഉപകരണം തിരഞ്ഞെടുക്കുക", + "authenticate": "പ്രാമാണീകരിക്കുക", + "callQuality": "വീഡിയോ നിലവാരം നിയന്ത്രിക്കുക", + "chat": "ചാറ്റ് തുറക്കുക/അടയ്‌ക്കുക", + "closeChat": "ചാറ്റ് അടയ്‌ക്കുക", + "documentClose": "പങ്കിട്ട രേഖ അടയ്‌ക്കുക", + "documentOpen": "പങ്കിട്ട രേഖ തുറക്കുക", + "download": "ഞങ്ങളുടെ അപ്ലിക്കേഷനുകൾ ഡൗൺലോഡുചെയ്യുക", + "e2ee": "ആദ്യാവസാനം എൻക്രിപ്ട് ചെയ്‌തത്‌", + "embedMeeting": "മീറ്റിംഗ് എംബെഡ് ചെയ്യുക ", + "enterFullScreen": "പൂർണ്ണ സ്ക്രീൻ കാണുക", + "enterTileView": "ടൈൽ കാഴ്ച നൽകുക", + "exitFullScreen": "പൂർണ്ണ സ്ക്രീനിൽ നിന്ന് പുറത്തുകടക്കുക", + "exitTileView": "ടൈൽ കാഴ്‌ചയിൽ നിന്ന് പുറത്തുകടക്കുക", + "feedback": "പ്രതികരണം അറിയിക്കൂ", + "hangup": "പുറത്ത് കടക്കുക", + "help": "സഹായം", + "invite": "ആളുകളെ ക്ഷണിക്കുക", + "lobbyButtonDisable": "ലോബി മോഡ് പ്രവർത്തനരഹിതമാക്കുക", + "lobbyButtonEnable": "ലോബി മോഡ് പ്രവർത്തനക്ഷമമാക്കുക", + "login": "അകത്തുകയറുക", + "logout": "പുറത്തു കടക്കുക", + "lowerYourHand": "നിങ്ങളുടെ കൈ താഴ്ത്തുക", + "moreActions": "കൂടുതൽ പ്രവർത്തനങ്ങൾ", + "moreOptions": "കൂടുതൽ ഉപാധികൾ ", + "mute": "Mute / Unmute", + "muteEveryone": "എല്ലാവരേയും നിശബ്ദമാക്കുക", + "noAudioSignalDesc": "സിസ്റ്റം ക്രമീകരണങ്ങളിൽ നിന്നോ ഹാർഡ്‌വെയറിൽ നിന്നോ നിങ്ങൾ ഇത് മന ute പൂർവ്വം നിശബ്ദമാക്കിയില്ലെങ്കിൽ, ഉപകരണം മാറുന്നത് പരിഗണിക്കുക.", + "noAudioSignalDescSuggestion": "സിസ്റ്റം ക്രമീകരണങ്ങളിൽ നിന്നോ ഹാർഡ്‌വെയറിൽ നിന്നോ നിങ്ങൾ ഇത് മന ute പൂർവ്വം നിശബ്ദമാക്കിയിട്ടില്ലെങ്കിൽ, നിർദ്ദേശിച്ച ഉപകരണത്തിലേക്ക് മാറുന്നത് പരിഗണിക്കുക.", + "noAudioSignalDialInDesc": "ഇനിപ്പറയുന്നവ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഡയൽ-ഇൻ ചെയ്യാനും കഴിയും:", + "noAudioSignalDialInLinkDesc": "ഡയൽ-ഇൻ നമ്പറുകൾ", + "noAudioSignalTitle": "നിങ്ങളുടെ മൈക്കിൽ നിന്ന് ഇൻപുട്ട് ഇല്ല!", + "noisyAudioInputDesc": "നിങ്ങളുടെ മൈക്രോഫോൺ ശബ്ദമുണ്ടാക്കുന്നതായി തോന്നുന്നു, ഉപകരണം മ്യൂട്ടുചെയ്യുന്നത് അല്ലെങ്കിൽ മാറ്റുന്നത് പരിഗണിക്കുക.", + "noisyAudioInputTitle": "Your microphone appears to be noisy!", + "openChat": "ചാറ്റ് തുറക്കുക", + "pip": "പിക്ചർ-ഇൻ-പിക്ചർ മോഡ് നൽകുക", + "privateMessage": "സ്വകാര്യ സന്ദേശം അയയ്‌ക്കുക", + "profile": "നിങ്ങളുടെ പ്രൊഫൈൽ എഡിറ്റുചെയ്യുക", + "raiseHand": "നിങ്ങളുടെ കൈ ഉയർത്തുക/താഴ്ത്തുക", + "raiseYourHand": "നിങ്ങളുടെ കൈ ഉയർത്തുക", + "security": "സുരക്ഷാ ഉപാധികൾ ", + "shareRoom": "ആരെയെങ്കിലും ക്ഷണിക്കുക", + "sharedvideo": "ഒരു യൂട്യൂബ് വീഡിയോ പങ്കിടുക", + "shortcuts": "കുറുക്കുവഴികൾ കാണുക", + "speakerStats": "സ്പീക്കർ സ്ഥിതിവിവരക്കണക്കുകൾ", + "startScreenSharing": "സ്‌ക്രീൻ പങ്കിടൽ ആരംഭിക്കുക", + "startSubtitles": "സബ്ടൈറ്റിലുകൾ ആരംഭിക്കുക", + "startvideoblur": "എന്റെ പശ്ചാത്തലം മങ്ങിക്കുക", + "stopScreenSharing": "സ്‌ക്രീൻ പങ്കിടൽ നിർത്തുക", + "stopSharedVideo": "യൂട്യൂബ് വീഡിയോ നിർത്തുക", + "stopSubtitles": "സബ്‌ടൈറ്റിലുകൾ നിർത്തുക", + "stopvideoblur": "പശ്ചാത്തല മങ്ങൽ പ്രവർത്തനരഹിതമാക്കുക", + "talkWhileMutedPopup": "സംസാരിക്കാൻ ശ്രമിക്കുകയാണോ? നിങ്ങൾ നിശബ്ദമാണ്.", + "tileViewToggle": "ടൈൽ കാഴ്ച ടോഗിൾ ചെയ്യുക", + "toggleCamera": "ക്യാമറ ടോഗിൾ ചെയ്യുക", + "videomute": "ക്യാമറ ആരംഭിക്കുക/നിർത്തുക" + }, + "transcribing": { + "ccButtonTooltip": "സബ്ടൈറ്റിലുകൾ ആരംഭിക്കുക/നിർത്തുക", + "error": "ട്രാൻസ്‌ക്രൈബുചെയ്യൽ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.", + "expandedLabel": "ട്രാൻസ്‌ക്രൈബുചെയ്യൽ നിലവിൽ ഓണാണ്", + "failedToStart": "ട്രാൻസ്‌ക്രൈബുചെയ്യൽ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു", + "labelToolTip": "മീറ്റിംഗ് പകർത്തിയെഴുതുകയാണ്", + "off": "ട്രാൻസ്‌ക്രൈബുചെയ്യൽ നിർത്തി", + "pending": "മീറ്റിംഗ് പകർത്തിയെഴുതാൻ തയ്യാറെടുക്കുന്നു…", + "start": "സബ്ടൈറ്റിലുകൾ കാണിക്കാൻ ആരംഭിക്കുക", + "stop": "സബ്‌ടൈറ്റിലുകൾ കാണിക്കുന്നത് നിർത്തുക", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കാൻ അനുമതി നൽകുക." + }, + "videoSIPGW": { + "busy": "ഉറവിടങ്ങൾ സ്വതന്ത്രമാക്കുന്നതിനായി ഞങ്ങൾ പ്രവർത്തിക്കുന്നു. കുറച്ച് മിനിറ്റിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.", + "busyTitle": "റൂം സേവനം നിലവിൽ തിരക്കിലാണ്", + "errorAlreadyInvited": "{{displayName}} already invited", + "errorInvite": "കോൺഫറൻസ് ഇതുവരെ സ്ഥാപിച്ചിട്ടില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.", + "errorInviteFailed": "പ്രശ്നം പരിഹരിക്കുന്നതിനായി ഞങ്ങൾ പ്രവർത്തിക്കുന്നു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.", + "errorInviteFailedTitle": "Inviting {{displayName}} failed", + "errorInviteTitle": "റൂം ക്ഷണിക്കുന്നതിൽ പിശക്", + "pending": "{{displayName}} has been invited" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "നിങ്ങൾ കുറഞ്ഞ ബാൻഡ്‌വിഡ്ത്ത് മോഡിലാണ്. ഈ മോഡിൽ നിങ്ങൾക്ക് ഓഡിയോ, സ്ക്രീൻ പങ്കിടൽ മാത്രമേ ലഭിക്കൂ.", + "callQuality": "വീഡിയോ ഗുണമേന്മ", + "hd": "HD", + "hdTooltip": "ഹൈ ഡെഫനിഷൻ വീഡിയോ കാണുന്നു", + "highDefinition": "ഹൈ ഡെഫനിഷൻ", + "labelTooiltipNoVideo": "വീഡിയോ ഇല്ല", + "labelTooltipAudioOnly": "കുറഞ്ഞ ബാൻഡ്‌വിഡ്ത്ത് മോഡ് പ്രവർത്തനക്ഷമമാക്കി", + "ld": "LD", + "ldTooltip": "ലോ ഡെഫനിഷൻ വീഡിയോ കാണുന്നു", + "lowDefinition": "കുറഞ്ഞ നിർവചനം", + "onlyAudioAvailable": "ഓഡിയോ മാത്രം ലഭ്യമാണ്", + "onlyAudioSupported": "ഈ ബ്രൗസറിൽ ഓഡിയോ മാത്രമേ ഞങ്ങൾ പിന്തുണയ്ക്കൂ.", + "sd": "SD", + "sdTooltip": "ഡസ്റ്റാൻഡേർഡ് െഫനിഷൻ വീഡിയോ കാണുന്നു", + "standardDefinition": "ഡസ്റ്റാൻഡേർഡ് െഫനിഷൻ" + }, + "videothumbnail": { + "domute": "നിശ്ശബ്ദമാക്കുക", + "domuteOthers": "മറ്റെല്ലാവരെയും നിശബ്ദമാക്കുക", + "flip": "ഫ്ലിപ്പ് ചെയ്യുക", + "grantModerator": "മോഡറേറ്റർ അവകാശം നൽകുക ", + "kick": "പുറത്താക്കുക", + "moderator": "മോഡറേറ്റർ", + "mute": "പങ്കെടുക്കുന്നയാൾ നിശബ്ദമാക്കി", + "muted": "നിശബ്ദമാക്കി", + "remoteControl": "വിദൂര നിയന്ത്രണം ആരംഭിക്കുക/നിർത്തുക", + "show": "സ്റ്റേജിൽ കാണിക്കുക", + "videomute": "പങ്കെടുക്കുന്നയാൾ ക്യാമറ നിർത്തി" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "ചേരാൻ ടാപ്പുചെയ്യുക", + "roomname": "റൂമിനു പേര് നൽകുക" + }, + "appDescription": "മുന്നോട്ട് പോകുക, മുഴുവൻ ടീമുമായും വീഡിയോ ചാറ്റ് ചെയ്യുക. വാസ്തവത്തിൽ, നിങ്ങൾക്കറിയാവുന്ന എല്ലാവരേയും ക്ഷണിക്കുക. {{app}} പൂർണ്ണമായും എൻ‌ക്രിപ്റ്റ് ചെയ്ത, 100% ഓപ്പൺ സോഴ്‌സ് വീഡിയോ കോൺഫറൻസിംഗ് പരിഹാരമാണ്, നിങ്ങൾക്ക് എല്ലാ ദിവസവും എല്ലാ ദിവസവും സൗജന്യമായി ഉപയോഗിക്കാൻ കഴിയും അക്കൗണ്ടില്ലാതെ.", + "audioVideoSwitch": { + "audio": "ശബ്ദം", + "video": "വീഡിയോ" + }, + "calendar": "കലണ്ടർ", + "connectCalendarButton": "നിങ്ങളുടെ കലണ്ടർ ബന്ധിപ്പിക്കുക", + "connectCalendarText": "Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.", + "enterRoomTitle": "ഒരു പുതിയ മീറ്റിംഗ് ആരംഭിക്കുക", + "getHelp": "സഹായം തേടു", + "go": "GO", + "goSmall": "GO", + "info": "വിവരം", + "join": "സൃഷ്ടിക്കുക/ചേരുക", + "moderatedMessage": "അഥവാ നിങ്ങൾ മാത്രം മോഡറേറ്ററായിരിക്കുന്ന ഒരു മീറ്റിംഗ് URL മുൻകൂട്ടിബുക്ക് ചെയ്യുക.", + "privacy": "സ്വകാര്യത", + "recentList": "സമീപകാലം", + "recentListDelete": "ഇല്ലാതാക്കുക", + "recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.", + "reducedUIText": "Welcome to {{app}}!", + "roomNameAllowedChars": "മീറ്റിംഗ് നാമത്തിൽ ഈ പ്രതീകങ്ങളൊന്നും അടങ്ങിയിരിക്കരുത്: ?, &, :, ', \", %, #.", + "roomname": "റൂമിന്റെ പേര് നൽകുക", + "roomnameHint": "Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.", + "sendFeedback": "ഫീഡ്‌ബാക്ക് അയയ്‌ക്കുക", + "terms": "നിബന്ധനകൾ", + "title": "സുരക്ഷിതവും പൂർണ്ണമായും സൗജന്യ വീഡിയോ കോൺഫറൻസിംഗും" + } +} diff --git a/lang/main-mn.json b/lang/main-mn.json new file mode 100644 index 0000000..e020a39 --- /dev/null +++ b/lang/main-mn.json @@ -0,0 +1,1441 @@ +{ + "addPeople": { + "add": "Урих", + "addContacts": "Харилцагчаа урина уу", + "contacts": "Харилцагч", + "copyInvite": "Уулзалтын урилга хуулах", + "copyLink": "Уулзалтын линк хуулах", + "copyStream": "Шууд дамжуулалтын линк хуулах", + "countryNotSupported": "Танай улсыг хараахан дэмжихгүй байна.", + "countryReminder": "АНУ-аас өөр улсруу залгах бол улсын кодоо оруулна уу!", + "defaultEmail": "Таны үндсэн и-мэйл", + "disabled": "Хүмүүсийг урих боломжгүй.", + "failedToAdd": "Оролцогч нэмж чадсангүй", + "googleEmail": "Google и-мэйл", + "inviteMoreHeader": "Та энэ уулзалтын цорын ганц оролцогч байна", + "inviteMoreMailSubject": "{{appName}} уулзалтад оролцох", + "inviteMorePrompt": "Хүн нэмж урих", + "linkCopied": "Линк хуулсан", + "noResults": "Үр дүн олдсонгүй", + "outlookEmail": "Outlook и-мэйл", + "phoneNumbers": "утасны дугаар", + "searching": "Хайж байна…", + "shareInvite": "Уулзалтын урилга хуваалцах", + "shareLink": "Уулзалтын линк хуваалцан бусдыг урих", + "shareStream": "Шууд дамжуулалтын линк хуваалцах", + "sipAddresses": "sip хаяг", + "telephone": "Утас: {{number}}", + "title": "Хүмүүсийг уулзалтад урих", + "yahooEmail": "Yahoo и-мэйл" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Машины аудио", + "headphones": "Чихэвч", + "none": "Дууны төхөөрөмж байхгүй", + "phone": "Утас", + "speaker": "Яригч" + }, + "audioOnly": { + "audioOnly": "Чанар багасгах" + }, + "breakoutRooms": { + "actions": { + "add": "Дэд өрөө нэмэх", + "autoAssign": "Дэд өрөө рүү автоматаар оноох", + "close": "Хаах", + "join": "Оролцох", + "leaveBreakoutRoom": "Дэд өрөөнөөс гарах", + "more": "Илүү", + "remove": "Устгах", + "sendToBreakoutRoom": "Оролцогчийг зөөх:" + }, + "defaultName": "Дэд өрөө #{{index}}", + "mainRoom": "Үндсэн өрөө", + "notifications": { + "joined": "\"{{name}}\" дэд өрөөнд нэгдэх", + "joinedMainRoom": "Үндсэн өрөөнд нэгдэх", + "joinedTitle": "Дэд өрөөнүүд" + } + }, + "calendarSync": { + "addMeetingURL": "Уулзалтын холбоосыг нэмнэ үү", + "confirmAddLink": "Та энэ үйл явдалд холбоосыг нэмэхийг хүсч байна уу?", + "error": { + "appConfiguration": "Хуанлигийн холболтыг зөв тохируулаагүй байна.", + "generic": "Алдаа гарсан байна. Хуанлигийн тохиргоогоо шалгах эсвэл хуанлиг дахин ачааллаж үзнэ үү.", + "notSignedIn": "Хуанлигийн товыг харах үед нэвтрэлтийн алдаа гарсан. Та хуанлигийн тохиргоог шалгаад дахин нэвтрээд үзнэ үү." + }, + "join": "Нэгдэх", + "joinTooltip": "Уулзалтад нэгдэх", + "nextMeeting": "Дараагийн уулзалт", + "noEvents": "Удахгүй болох үйл явдал байхгүй байна.", + "ongoingMeeting": "идэвхтэй уулзалт", + "permissionButton": "Тохиргоо нээх", + "permissionMessage": "Апп-д уулзалтаа нэмэхийн тулд цагалбарын зөвшөөрөл шаардлагатай.", + "refresh": "Хуанлиг дахин ачаалах", + "today": "Өнөөдөр" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Дууны төхөөрөмж сонгох" + }, + "labels": { + "buttonLabel": "Машины горим", + "title": "Машины горим", + "videoStopped": "Таны видео зогссон" + } + }, + "chat": { + "enter": "Өрөөнд орох", + "error": "Алдаа: таны мессеж илгээгдээгүй байна. Шалтгаан: {{error}}", + "fieldPlaceHolder": "Энд чатаа бичнэ үү", + "lobbyChatMessageTo": "{{recipient}} рүү лобби чат зурвас", + "message": "Зурвас", + "messageAccessibleTitle": "{{user}} ярьж байна:", + "messageAccessibleTitleMe": "Би ярьж байна:", + "messageTo": "Хувийн зурвас {{recipient}}", + "messagebox": "Зурвас бичих", + "newMessages": "Шинэ зурвас", + "nickname": { + "popover": "Нэр бичнэ үү", + "title": "Нэрээ оруулна уу", + "titleWithPolls": "Нэрээ оруулна уу" + }, + "noMessagesMessage": "Энэ уулзалтад ямар ч зурвас байхгүй. Эндээс зурвасаа эхлүүлнэ үү!", + "privateNotice": "Хувийн зурвас {{recipient}}", + "sendButton": "Илгээх", + "smileysPanel": "Эможи самбар", + "tabs": { + "chat": "Чат", + "polls": "Санал асуулга" + }, + "title": "Чат", + "titleWithPolls": "Чат", + "you": "чи" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome Extension суулгах", + "buttonTextEdge": "Edge Extension суулгах", + "close": "Хаах", + "dontShowAgain": "Энийг дахин харахгүй", + "installExtensionText": "Google Calendar болон Office 365 интеграци хийхийн тулд энэ extension суулгана" + }, + "connectingOverlay": { + "joiningRoom": "Таныг уулзалтад холбож байна…" + }, + "connection": { + "ATTACHED": "Хавсаргасан", + "AUTHENTICATING": "Нэвтэрч байна", + "AUTHFAIL": "Нэвтрэлт амжилтгүй болсон", + "CONNECTED": "Холбогдсон", + "CONNECTING": "Холбож байна", + "CONNFAIL": "Холболт амжилтгүй болсон", + "DISCONNECTED": "Холбогдоогүй", + "DISCONNECTING": "Салгаж байна", + "ERROR": "Алдаа", + "FETCH_SESSION_ID": "Оролцогчийн холболтыг олох…", + "GET_SESSION_ID_ERROR": "Оролцогчийн холболт дээр алдаа: {{code}}", + "GOT_SESSION_ID": "Оролцогчийн холболтыг олох… Дууссан", + "LOW_BANDWIDTH": "{{displayName}} чанарыг бууруулж видео унтраасан байна" + }, + "connectionindicator": { + "address": "Хаяг:", + "audio_ssrc": "Audio SSRC", + "bandwidth": "Тооцоолсон чанар:", + "bitrate": "Бит хурд:", + "bridgeCount": "Серверийн тоо: ", + "codecs": "Codecs (A/V)", + "connectedTo": "Холбогдсон:", + "e2eeVerified": "E2EE баталгаажсан", + "framerate": "Нягтаршил:", + "less": "Хураах", + "localaddress": "Дотоод хаяг:", + "localaddress_plural": "Дотоод хаягууд:", + "localport": "Дотоод порт:", + "localport_plural": "Дотоод портууд:", + "maxEnabledResolution": "send max", + "more": "Дэлгэрэнгүй", + "no": "үгүй", + "packetloss": "Алдагдал:", + "participant_id": "Оролцогчийн ID:", + "quality": { + "good": "Сайн", + "inactive": "Идэвхгүй", + "lost": "Алдагдалтай", + "nonoptimal": "Оромгүй", + "poor": "Муу" + }, + "remoteaddress": "Гадаад хаяг:", + "remoteaddress_plural": "Гадаад хаягууд:", + "remoteport": "Гадаад порт:", + "remoteport_plural": "Гадаад портууд:", + "resolution": "Хэмжээ:", + "savelogs": "Лог хадгалах", + "status": "Холболт:", + "transport": "Транспорт:", + "transport_plural": "Транспорт:", + "video_ssrc": "Видео SSRC:", + "yes": "тийм" + }, + "dateUtils": { + "earlier": "Өмнөх", + "today": "Өнөөдөр", + "yesterday": "Өчигдөр" + }, + "deepLinking": { + "appNotInstalled": "Та утсан дээрээ уулзалт оролцохын тулд танд {{app}} мобайл апп шаардлагатай.", + "description": "Бид таны уулзалтыг {{app}} desktop апп дотор эхлүүлэхийг оролдсон. Дахин оролдох эсвэл {{app}} веб апп дээр эхлүүлнэ үү.", + "descriptionNew": "Болохгүй байна уу? Таныг {{app}} desktop аппаар дамжуулан уулзалтад оруулахыг оролдож байна.

Вэб хуудаснаас дахин оролдоод үзнэ үү.", + "descriptionWithoutWeb": "Бид таны уулзалтыг {{app}} desktop апп дотор эхлүүлэхийг оролдсон.", + "downloadApp": "Апп татаж авах", + "downloadMobileApp": "App Store-аас татаж авах", + "ifDoNotHaveApp": "Хэрэв та энэ аппыг татаагүй бол:", + "ifHaveApp": "Хэрэв та энэ аппыг татсан бол:", + "joinInApp": "Энэ аппыг ашиглан уулзалтад нэгдэнэ үү", + "joinInAppNew": "Апп-аар нэгдэх", + "joinInBrowser": "Хөтчөөр дамжин нэгдэх", + "launchMeetingLabel": "Энэ уулзалтад хэрхэн нэгдэхийг хүсч байна вэ?", + "launchWebButton": "Вэб дээр ажиллуулах", + "noMobileApp": "Таньд энэ апп байхгүй юу?", + "termsAndConditions": "Үргэлжлүүлэхийн тулд та үйлчилгээний нөхцлийг бидний үйлчилгээний нөхцлийг зөвшөөрнө үү.", + "title": "Таны {{app}} уулзалтыг эхлүүлж байна….", + "titleNew": "Таныг уулзалтад холбож байна…", + "tryAgainButton": "Дахин оролдоно уу", + "unsupportedBrowser": "Таны ашиглаж буй вэб хөтчийг дэмжихгүй байна." + }, + "defaultLink": "e.g. {{url}}", + "defaultNickname": "Нэрээ бичнэ үү", + "deviceError": { + "cameraError": "Таны камер руу нэвтрэх үйлдэл амжилтгүй болсон байна", + "cameraPermission": "Камерын зөвшөөрөл авахад алдаа гарлаа", + "microphoneError": "Таны микрофон руу нэвтрэлт амжилтгүй боллоо", + "microphonePermission": "Микрофоны зөвшөөрөл авахад алдаа гарлаа" + }, + "deviceSelection": { + "hid": { + "callControl": "Дуудлага хянах", + "connectedDevices": "Холбогдсон төхөөрөмжүүд:", + "deleteDevice": "Төхөөрөмж устгах", + "pairDevice": "Төхөөрөмж холбох" + }, + "noPermission": "Зөвшөөрөл өгөөгүй байна", + "previewUnavailable": "Урьдчилан харах боломжгүй", + "selectADevice": "Төхөөрөмж сонгоно уу", + "testAudio": "Туршилтын дуу тоглуул" + }, + "dialIn": { + "screenTitle": "Дуудлагын үр дүн" + }, + "dialOut": { + "statusMessage": "одоо {{status}} байна" + }, + "dialog": { + "Back": "Буцах", + "Cancel": "Цуцлах", + "IamHost": "Үүсгэгч", + "Ok": "Ok", + "Remove": "Устгах", + "Share": "Хуваалцах", + "Submit": "Илгээх", + "WaitForHostMsg": "Уулзалт хараахан эхлээгүй байна. Хэрэв та хост байгаа бол нэвтэрнэ үү. Үгүй бол хост ирэхийг хүлээнэ үү.", + "WaitingForHostTitle": "Зочдыг хүлээж байна…", + "Yes": "Тийм", + "accessibilityLabel": { + "close": "Цонх хаах", + "liveStreaming": "Шууд дамжуулалт", + "sharingTabs": "Хуваалцах тохиргоо" + }, + "add": "Нэмэх", + "addMeetingNote": "Энэ уулзалтын талаар тэмдэглэл бичих", + "addOptionalNote": "Тэмдэглэл бичих (заавал биш):", + "allow": "Зөвшөөр", + "alreadySharedVideoMsg": "Видео хуваалцаж байна. Уулзалтад нэг зэрэг зөвхөн нэг л видеог хуваалцах боломжийг олгодог..", + "alreadySharedVideoTitle": "Нэг удаад зөвхөн нэг л хуваалцсан видеог зөвшөөрнө", + "applicationWindow": "Програмын цонх", + "authenticationRequired": "Заавал нэвтрэх шаардлагатай", + "cameraConstraintFailedError": "Таны камер зарим шаардлагыг хангаж чадахгүй байна.", + "cameraNotFoundError": "Камер олдсонгүй.", + "cameraNotSendingData": "Таны камерт хандах боломжгүй байна. Хэрэв өөр програм энэ төхөөрөмжийг ашиглаж байгаа эсэхийг шалгаад, тохиргоог цэснээс өөр төхөөрөмжийг сонгох эсвэл дахин ачаалж үзнэ үү.", + "cameraNotSendingDataTitle": "Камерт хандах боломжгүй байна", + "cameraPermissionDeniedError": "Та камераа ашиглах зөвшөөрөл өгөөгүй байна. Та энэ уулзалтад оролцох боломжтой ч бусад хүмүүс таныг харж чадахгүй. Үүнийг засахын тулд хаяг бичдэг хэсэгийн хойно байгаа камерын товчийг дарна уу.", + "cameraTimeoutError": "Видео дамжуулалтыг эхлүүлж чадсангүй. Хугацаа хэтэрсэн!", + "cameraUnknownError": "Ямар нэг шалтгааны улмаас камерыг ашиглаж чадахгүй.", + "cameraUnsupportedResolutionError": "Таны камер шаардлагатай видеоны хэмжээг дэмждэггүй.", + "close": "Хаах", + "conferenceDisconnectMsg": "Сүлжээний холболт шалгаж байна. Дахин холбогдож байна {{seconds}} сек…", + "conferenceDisconnectTitle": "Та салсан байна.", + "conferenceReloadMsg": "Бид засахаар оролдож байна. Дахин холбогдож байна {{seconds}} сек…", + "conferenceReloadTitle": "Уучлаарай. Ямар нэг алдаа гарсан байна.", + "confirm": "Батлах", + "confirmNo": "Үгүй", + "confirmYes": "Тийм", + "connectError": "Алдаа гарсан тул бид уулзалттай холбогдож чадахгүй байна.", + "connectErrorWithMsg": "Алдаа гарсан тул бид уулзалттай холбогдож чадахгүй байна: {{msg}}", + "connecting": "Холбож байна", + "contactSupport": "Хэрэглэгчийн дэмжлэгтэй холбоо барина уу", + "copied": "Хуулсан", + "copy": "Хуулах", + "dismiss": "хаах", + "displayNameRequired": "Таны нэр хэн бэ?", + "done": "Дуусгах", + "e2eeDescription": "End-to-End нууцлал туршилтын шатанд байгаа. Үүнийг идэвхижүүлснээр утсаар холбогдогдох гэх мэт сервер талын зарим үйлчилгээг хаахыг анхаарна уу. Мөн зарим оролцогчийн нэвтэрч буй вэб хөтөч дэмжихгүй байх магадлалтайг анхаараарай.", + "e2eeDisabledDueToMaxModeDescription": "Уулзалтад оролцогчийн тоо хэтэрсэн тул End-to-End нууцлалыг идэвхижүүлэх боломжгүй.", + "e2eeLabel": "End-to-End нууцлалыг идэвхижүүлэх", + "e2eeWarning": "АНХААР: Энэ уулзалтын зарим оролцогчийн төхөөрөмж End-to-End нууцлалыг дэмжихгүй байна. Нууцлалыг идэвхижүүлснээр эдгээр оролцогч сонсох болон үзэх боломжгүй болохыг анхаарна уу.", + "e2eeWillDisableDueToMaxModeDescription": "АНХААР: Оролцогчийн тоо нэмэгдвэл End-to-End нууцлал автоматаар идэвхигүй болно.", + "embedMeeting": "Embed meeting", + "enterDisplayName": "Энд нэрээ оруулна уу", + "error": "Алдаа", + "gracefulShutdown": "Манай үйлчилгээ одоогоор засвартай байна. Дараа дахин оролдож үзнэ үү.", + "grantModeratorDialog": "Та энэ {{participantName}}-д уулзалт удирдагчийн эрх олгохдоо итгэлтэй байна уу?", + "grantModeratorTitle": "Уулзалт удирдагчийн эрх батлах", + "hide": "Нуух", + "hideShareAudioHelper": "Энэ цонхыг дахин харахгүй", + "incorrectPassword": "Хэрэглэгчийн нэр эсвэл нууц үг буруу байна", + "incorrectRoomLockPassword": "Нууц үг буруу", + "internalError": "Ямар нэгэн зүйл буруу байна. Дараах алдаа гарсан байна: {{error}}", + "internalErrorTitle": "Дотоод алдаа", + "kickMessage": "Та дэлгэрэнгүй мэдээллийг {{participantDisplayName}} холбогдож авна уу..", + "kickParticipantButton": "Гаргах", + "kickParticipantDialog": "Та энэ оролцогчийг гаргахдаа итгэлтэй байна уу?", + "kickParticipantTitle": "Энэ оролцогчийг гаргах үү?", + "kickTitle": "{{participantDisplayName}} чамайг уулзалтаас гаргасан", + "linkMeeting": "Уулзалт холбох", + "linkMeetingTitle": "Salesforce-руу уулзалт холбох", + "liveStreaming": "Шууд дамжуулалт", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Бичлэг хийх идэвхитэй үед боломжгүй", + "localUserControls": "Дотоод хэрэглэгчийн хяналт", + "lockMessage": "Уулзалт түгжигдсэнгүй.", + "lockRoom": "Уулзалт нэмэх $t(lockRoomPasswordUppercase)", + "lockTitle": "Түгжихэд алдаа гарлаа", + "login": "Нэвтрэх", + "logoutQuestion": "Та уулзалтаас гарч, уулзалтыг зогсоохыг хүсэж байна уу?", + "logoutTitle": "Гарах", + "maxUsersLimitReached": "Оролцогчдын тооны дээд хязгаарт хүрсэн байна. Уулзалтын эзэмшигчтэй холбоо барина уу эсвэл дараа дахин оролдоно уу!", + "maxUsersLimitReachedTitle": "Оролцогчдын дээд хязгаарт хүрсэн байна", + "micConstraintFailedError": "Таны микрофон зарим шаардлагатай хязгаарлалтыг хангахгүй байна.", + "micNotFoundError": "Микрофон олдсонгүй.", + "micNotSendingData": "Микрофоныг дуугүй болгохын тулд компьютерийн тохиргоо руу очно уу", + "micNotSendingDataTitle": "Таны микрофоныг системийн тохиргооноос хаасан байна", + "micPermissionDeniedError": "Та микрофон ашиглах зөвшөөрөл өгөөгүй байна. Та одоо уулзалтад оролцож болох ч бусад хүмүүс таныг сонсох боломжгүй. Үүнийг засахын тулд хаягийн талбарт байгаа камерын товчийг ашиглана уу.", + "micTimeoutError": "Дуу эхлүүлж чадсангүй. Хугацаа хэтэрсэн!", + "micUnknownError": "Ямар нэг шалтгааны улмаас микрофоныг ашиглах боломжгүй байна.", + "moderationAudioLabel": "Оролцогчид өөрсдийнхөө дууг хаахыг зөвшөөрөх", + "moderationVideoLabel": "Оролцогчид өөрсдийнхөө видео эхлүүлэхийг зөвшөөрөх", + "muteEveryoneDialog": "Та бүх оролцогчдын дууг хаахдаа итгэлтэй байна уу? Та тэдний дууг идэвхжүүлэх боломжгүй ч хүссэн үедээ өөрийнхөө дуу нээх боломжтой.", + "muteEveryoneDialogModerationOn": "Бүх оролцогчид хүссэн цагт ярих зөвшөөрөл хүсэн боломжтой.", + "muteEveryoneElseDialog": "Бусад оролцогчдын дуу хаалттай үед та дууг нээх боломжгүй, гэхдээ өөрийнхөө дууг нээх боломжтой.", + "muteEveryoneElseTitle": "Бүх оролцогчдын дууг хаах уу?", + "muteEveryoneElsesVideoDialog": "Камераа нэг л хаасан бол та буцаагаад асаах боломжгүй, харин тэд хүссэн цагтаа эргэн нээх боломжтой.", + "muteEveryoneElsesVideoTitle": "{{whom}} -с бусдынх нь видеог зогсоох уу?", + "muteEveryoneSelf": "Чи өөрөө", + "muteEveryoneStartMuted": "Одооноос эхлэн бүх оролцогчдын дуу хаагдана", + "muteEveryoneTitle": "Бүх оролцогчдын дууг хаах уу?", + "muteEveryonesVideoDialog": "Оролцогчид өөрсдийн видеог буцаан нээж болно.", + "muteEveryonesVideoDialogModerationOn": "Оролцогчид өөрсдийн видеог буцаан нээх хүсэлтийг хүссэн цагтаа илгээж болно.", + "muteEveryonesVideoDialogOk": "Идэвхгүй болгох", + "muteEveryonesVideoTitle": "Хэн нэгний видеог зогсоох уу?", + "muteParticipantBody": "Та тэдний дууг идэвхжүүлэх боломжгүй ч хүссэн үедээ өөрийн дууг нээх боломжтой.", + "muteParticipantButton": "Дуугүй болгох", + "muteParticipantsVideoBody": "Та камераа буцаагаад асаах боломжгүй, харин тэд хүссэн цагтаа эргэн нээх боломжтой.", + "muteParticipantsVideoBodyModerationOn": "Та болон бусад нь камераа буцаагаад асаах боломжгүй.", + "muteParticipantsVideoButton": "Видео зогсоох", + "muteParticipantsVideoDialog": "Та энэ оролцогчийн камерийг унтраахдаа итгэлтэй байна уу? Та энэ камерийг буцаан асаах боломжгүй, харин тэд хүссэн цагтаа эргэн нээх боломжтой.", + "muteParticipantsVideoDialogModerationOn": "Та энэ оролцогчийн камерийг унтраахдаа итгэлтэй байна уу? Та болон бусад нь энэ камерийг буцаан асаах боломжгүй болно.", + "muteParticipantsVideoTitle": "Та энэ оролцогчийн камерийг унтраах уу?", + "noDropboxToken": "Алдаатай Dropbox токен", + "password": "Нууц үг", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "$t(lockRoomPassword) тохируулах нь дэмжигдэхгүй байна.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) дэмжигдэхгүй байна", + "passwordRequired": "$t(lockRoomPasswordUppercase) заавал", + "permissionCameraRequiredError": "Уулзалтад оролцохын тулд камерын зөвшөөрөл шаардлагатай. Тохиргоо руу ороод зөвшөөрөл олгоно уу.", + "permissionErrorTitle": "Зөвшөөрөл шаардлагатай", + "permissionMicRequiredError": "Уулзалтад оролцохын тулд микрофоны зөвшөөрөл шаардлагатай. Тохиргоо руу ороод зөвшөөрөл олгоно уу.", + "popupError": "Таны хөтөч энэ сайтаас попап цонхуудыг блоклож байна. Хөтчөө аюулгүй байдлын тохиргоон дээр гарч ирэх цонхыг идэвхжүүлээд дахин оролдоно уу.", + "popupErrorTitle": "Попап хаалттай байна", + "readMore": "илүү", + "recentlyUsedObjects": "Таны сүүлд хэрэглэсэн обьектууд", + "recording": "Бичлэг хийх", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Шууд дамжуулалт идэвхитэй үед боломжгүй", + "rejoinNow": "Одоо дахин нэгдэх", + "remoteControlAllowedMessage": "{{user}} алсын удирдлагын хүсэлтийг хүлээн авлаа!", + "remoteControlDeniedMessage": "{{user}} алсын удирдлагын хүсэлтээс татгалзлаа!", + "remoteControlErrorMessage": "Алсын удирдлагаас {{user}} зөвшөөрөл хүсэх үед алдаа гарлаа!", + "remoteControlRequestMessage": "Та {{user}} таны десктопоос алсын зайнаас удирдахыг зөвшөөрөх үү?", + "remoteControlShareScreenWarning": "Хэрэв та \"Allow\" товчийг дарвал, таны дэлгэцийг хуваалцах болно гэдгийг анхаарна уу!", + "remoteControlStopMessage": "Алсын удирдлагын хэсэг дууссан!", + "remoteControlTitle": "Алсын удирдлагын", + "remoteUserControls": "{{username}} хэрэглэгчдийн алсын хяналт", + "removePassword": "$t(lockRoomPassword) устгах", + "removeSharedVideoMsg": "Та хуваалцсан видеогоо устгахдаа итгэлтэй байна уу?", + "removeSharedVideoTitle": "Хуваалцсан видеог устгах", + "reservationError": "Захиалгын системийн алдаа", + "reservationErrorMsg": "Алдааны код: {{code}}, мессеж: {{msg}}", + "retry": "Дахин оролдох", + "screenSharingAudio": "Дууг хуваалцах", + "screenSharingFailed": "Анхаар! Дэлгэц хуваалцахад нэг алдаа гарлаа!", + "screenSharingFailedTitle": "Дэлгэцээ хуваалцах амжилтгүй!", + "screenSharingPermissionDeniedError": "Таны дэлгэцийг хуваалцах зөвшөөрлийг суулгахад алдаа гарсан байна. Файлыг дахин ачааллаад, дахин оролдоно уу.", + "searchInSalesforce": "Salesforce-д хайх", + "searchResults": "Хайлтын үр дүн ({{count}})", + "searchResultsDetailsError": "Эзэмшигчийн дата татах үед нэг алдаа гарлаа.", + "searchResultsError": "Дата татах үед нэг алдаа гарлаа..", + "searchResultsNotFound": "Хайлтын үр дүн олдсонгүй.", + "searchResultsTryAgain": "Өөр түлхүүр үгээр дахин хайна уу.", + "sendPrivateMessage": "Хувийн мессеж хүлээн авсан. Та тусдаа хариу өгөх гэж байна уу, эсвэл та бүлэгт илгээх үү?", + "sendPrivateMessageCancel": "Бүлэгт илгээнэ үү", + "sendPrivateMessageOk": "Хувийн байдлаар илгээх", + "sendPrivateMessageTitle": "Хувиараа илгээх үү?", + "serviceUnavailable": "Үйлчилгээ авах боломжгүй", + "sessTerminated": "Дуудлага саллаа", + "sessionRestarted": "Холболтонд асуудал гарсан тул дуудлага дахин эхэлсэн.", + "shareAudio": "Үргэлжлүүл", + "shareAudioTitle": "Дууг хэрхэн хуваалцах", + "shareAudioWarningD1": "та дуугаа хуваалцахын тулд дэлгэц хуваалцахаа зогсоох хэрэгтэй.", + "shareAudioWarningD2": "та дэлгэцээ хуваалцахаа дахин эхлүүлэх болон \"дуу хуваалцах\" идэвхитэй эсэхийг шалгах хэрэгтэй.", + "shareAudioWarningH1": "Хэрэв та зөвхөн дуугаа хуваалцах бол:", + "shareAudioWarningTitle": "Та дуугаа хуваалцахын тул дэлгэц хуваалцахаа зогсоох хэрэгтэй", + "shareMediaWarningGenericH2": "Хэрэв та дуу болон дэлгэцээ хуваалцах бол", + "shareScreenWarningD1": "та дэлгэцээ хуваалцахын тул аудил хуваалцахаа зогсоох хэрэгтэй.", + "shareScreenWarningD2": "та дэлгэцээ хуваалцахын тул дууг хуваалцахаа зогсоон \"дуу хуваалцах\" -г сонголтын шалгах хэрэгтэй.", + "shareScreenWarningH1": "Хэрэв та зөвхөн дэлгэцээ хуваалцах бол:", + "shareScreenWarningTitle": "Та дэлгэцээ хуваалцахаас өмнө дуугаа хуваалцахаа зогсоох хэрэгтэй", + "shareVideoLinkError": "YouTube-ийн зөв линк оруулна уу.", + "shareVideoTitle": "Видео хуваалцах", + "shareYourScreen": "Дэлгэцээ хуваалцах", + "shareYourScreenDisabled": "Дэлгэц хуваалцах идэвхгүй", + "sharedVideoDialogError": "Алдаа: Хүчингүй URL", + "sharedVideoLinkPlaceholder": "YouTube холбоос эсвэл шууд видео холбоос", + "show": "Үзүүлэх", + "start": "Эхлүүлэх ", + "startLiveStreaming": "Шууд дамжуулалтыг эхлүүл", + "startRecording": "Бичлэг хийж эхэл", + "startRemoteControlErrorMessage": "Алсын удирдлага эхлүүлэх үед алдаа гарлаа!", + "stopLiveStreaming": "Шууд дамжуулалтыг зогсоо", + "stopRecording": "Бичлэгээ зогсоо", + "stopRecordingWarning": "Та бичлэгээ зогсоохдоо итгэлтэй байна уу?", + "stopStreamingWarning": "Та шууд дамжуулалтыг зогсоохдоо итгэлтэй байна уу?", + "streamKey": "Шууд дамжуулалтын түлхүүр", + "thankYou": "{{appName}} ашиглаж буй танд баярлалаа!", + "token": "token", + "tokenAuthFailed": "Уучлаарай, та энд нэвтрэх эрхгүй байна.", + "tokenAuthFailedTitle": "Нэвтрэлт амжилтгүй", + "transcribing": "Орчуулах", + "unlockRoom": "$t(lockRoomPassword) уулзалтыг устгана уу", + "user": "Хэрэглэгч", + "userIdentifier": "Хэрэглэгчийн ID", + "userPassword": "хэрэглэгчийн нууц үг", + "verifyParticipantConfirm": "Нууц үгс хоорондоо тохирч байна", + "verifyParticipantDismiss": "Нууц үгс хоорондоо тохирохгүй байна", + "verifyParticipantQuestion": "ТУРШИЛТЫН: Ask participant {{participantName}} if they see the same content, in the same order.", + "verifyParticipantTitle": "Хэрэглэгч баталгаажуулах", + "videoLink": "Видео холбоос", + "viewUpgradeOptions": "Багцын шинэчлэлийг харах", + "viewUpgradeOptionsContent": "Та бичлэг хадгалах, RTMP дамжуулалт зэрэг нэмэлт боломжуудыг ашиглахын тулд хязгааргүй нэвтрэх эрхийг авах хэрэгтэй, та өөрийн багцаа дээшлүүлнэ үү.", + "viewUpgradeOptionsTitle": "Та нэмэлт боломжуудтай танилцлаа!", + "yourEntireScreen": "Таны дэлгэцийг бүхэлдээ" + }, + "documentSharing": { + "title": "Бичиг баримт хуваалцах" + }, + "e2ee": { + "labelToolTip": "Энэ дуудлагын дуу, видео холболтууд нь end-to-end нууцлагдлаа" + }, + "embedMeeting": { + "title": "Энэ уулзалтыг нэгтгэх" + }, + "feedback": { + "average": "Дундаж", + "bad": "Муу", + "detailsLabel": "Энэ талаар илүү дэлгэрэнгүй.", + "good": "Сайн", + "rateExperience": "Уулзалтыг үнэлэх", + "star": "Од", + "veryBad": "Маш муу", + "veryGood": "Маш сайн" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Video thumbnails" + } + }, + "giphy": { + "noResults": "Үр дүн олдсонгүй:(", + "search": "GIPHY хайх" + }, + "incomingCall": { + "answer": "Хариулт", + "audioCallTitle": "Дуудлага ирлээ", + "decline": "Гаргах", + "productLabel": "Сангийн Яам", + "videoCallTitle": "Видео дуудлага ирлээ" + }, + "info": { + "accessibilityLabel": "Мэдээллийг харуулах", + "addPassword": "$t(lockRoomPassword) нэмэх", + "cancelPassword": "$t(lockRoomPassword) цуцлах", + "conferenceURL": "Холбоос:", + "copyNumber": "Дугаар хуулах", + "country": "Улс", + "dialANumber": "Уулзалтанд оролцохын тулд эдгээр дугааруудын аль нэгрүү нь залгаад, пинг оруулна уу.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Уучлаарай, одоогоор дуудлага хийх боломжгүй байна.", + "dialInNumber": "Дуудлага хийж байна:", + "dialInSummaryError": "Залгаж мэдээллийг авах үед алдаа гарлаа. Дараа дахин оролдож үзнэ үү.", + "dialInTollFree": "Toll Free", + "genericError": "Ямар нэг асуудал гарлаа.", + "inviteLiveStream": "Энэ уулзалтын шууд дамжуулалтыг үзэхийн тулд энэ холбоосыг дарна уу: {{url}}", + "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", + "inviteURLSecondPart": "\nУулзалтад нэгдээрэй:\n{{url}}\n", + "label": "Уулзалтын мэдээлэл", + "liveStreamURL": "Шууд дамжуулалт:", + "moreNumbers": "Бусад дугаар", + "noNumbers": "Залгах дугаар байхгүй байна.", + "noPassword": "Хоосон", + "noRoom": "Нэвтрэх өрөө олдсонгүй.", + "numbers": "Залгах дугаарууд", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Таны багцын лимит дууссан байна.", + "sip": "SIP хаяг", + "title": "Хуваалцах", + "tooltip": "Уулзалтын холбоосыг хуваалцах", + "upgradeOptions": "Багцыг дээшлүүлэх боломжоо шалгана уу" + }, + "inlineDialogFailure": { + "msg": "Асуудал гарлаа", + "retry": "Дахин оролд", + "support": "Дэмжлэг", + "supportMsg": "Хэрэв ийм асуудал дахиад тохиолдвол холбоо бариарай" + }, + "inviteDialog": { + "alertText": "Зарим оролцогчдыг урьж чадсангүй.", + "header": "Урих", + "searchCallOnlyPlaceholder": "Утасны дугаараа оруулна уу", + "searchPeopleOnlyPlaceholder": "Оролцогчдыг хайх", + "searchPlaceholder": "Оролцогч эсвэл утасны дугаар", + "send": "Илгээх" + }, + "jitsiHome": "{{logo}} Logo, links to Homepage", + "keyboardShortcuts": { + "focusLocal": "Өөрийн видеог үзэх", + "focusRemote": "Өөр хүний видеог үзэх", + "fullScreen": "Дэлгэц дүүргэх эсвэл гарах", + "giphyMenu": "Toggle GIPHY цэс", + "keyboardShortcuts": "Гарны товчлол", + "localRecording": "Өөрийн бичлэгийн хяналтыг үзүүлэх эсвэл нуух", + "mute": "Микрофоныг хаах эсвэл нээх", + "pushToTalk": "Яриа руу", + "raiseHand": "Гараа өргөх эсвэл доошлуул", + "showSpeakerStats": "Яригчийн статистик харах", + "toggleChat": "Зурвасыг нээх буюу хаах", + "toggleFilmstrip": "Видео бичлэгийн өнгөц зургийг үзүүлэх эсвэл нуух", + "toggleParticipantsPane": "Оролцогчийн самбарыг харуулах эсвэл нуух", + "toggleScreensharing": "Камер ба дэлгэц хуваалцах хооронд шилжинэ", + "toggleShortcuts": "Товчлолуудыг харуулах эсвэл нуух", + "videoMute": "Камераа эхлүүлэх эсвэл зогсоох" + }, + "largeVideo": { + "screenIsShared": "Та дэлгэцээ хуваалцаж байна", + "showMeWhatImSharing": "Миний хуваалцаж буй дэлгэцийг харуулах" + }, + "liveStreaming": { + "busy": "Бид урсгалын чөлөөлөхөөр ажиллаж байна. Хэдэн минутын дараа дахин оролдоно уу.", + "busyTitle": "Бүх дамжуулагчид завгүй байна", + "changeSignIn": "Бүртгэл солих.", + "choose": "Шууд дамжуулалтыг сонгоно уу", + "chooseCTA": "Дамжуулалтыг сонгоно уу. Та {{email}} ашиглан нэвтэрсэн байна.", + "enterStreamKey": "YouTube шууд дамжуулалтын түлхүүрийг энд оруулна уу.", + "error": "Шууд дамжуулалт амжилтгүй болсон. Дахин оролдоно уу.", + "errorAPI": "Таны YouTube рүү нэвтрэх үед алдаа гарлаа. Дараа дахин нэвтэрнэ үү.", + "errorLiveStreamNotEnabled": "Шууд дамжуулалт {{email}} дээр идэвхжүүлээгүй байна. Шууд дамжуулалтыг идэвхжүүл эсвэл шууд дамжуулалт хийх боломжтой бүртгэлээр нэвтэрнэ үү.", + "expandedOff": "Шууд дамжуулалт зогссон байна", + "expandedOn": "Энэ уулзалтыг YouTube дээр шууд дамжуулж байна.", + "expandedPending": "Шууд дамжуулалтыг эхлүүлж байна…", + "failedToStart": "Шууд дамжуулалтыг эхлүүлж чадсангүй", + "getStreamKeyManually": "Шууд дамжуулалтыг хийх чадсангүй. YouTube-ээс шууд дамжуулалтын түлхүүрээ шалгаж үзээрэй.", + "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": "Шууд дамжуулалт", + "onBy": "{{name}} шууд дамжуулалт эхлүүлсэн", + "pending": "Шууд дамжуулалтыг эхлүүлж байна…", + "serviceName": "Шууд дамжуулалт үйлчилгээ", + "sessionAlreadyActive": "Энэ дамжуулалтын шууд дамжуулах эсвэл бичлэг хийхийг эхлүүлсэн байна.", + "signIn": "Google-р нэвтрэх", + "signInCTA": "YouTube дээр шууд дамжуулалтын түлхүүрээ оруулна уу.", + "signOut": "Гарах", + "signedInAs": "Та одоо нэвтэрсэн байна:", + "start": "Шууд дамжуулалт эхлүүл", + "streamIdHelp": "Энэ юу вэ?", + "title": "Шууд дамжуулалт", + "unavailableTitle": "Шууд дамжуулалт боломжгүй", + "youtubeTerms": "YouTube үйлчилгээний нөхцөл" + }, + "lobby": { + "backToKnockModeButton": "Зөвшөөрөл хүсэх", + "chat": "Зурвас", + "dialogTitle": "Лобби горим", + "disableDialogContent": "Лобби горим идэвхитэй байна. Ингэснээр таны уулзалтад зөвшөөрөлгүй хүн орох боломжгүй болдог. Та горимоо идэвхигүй болгохыг хүсч байна уу?", + "disableDialogSubmit": "Идэвхигүй болгох", + "emailField": "И-мэйл хаягаа оруулна уу", + "enableDialogPasswordField": "Нууц үг тохируулах (сонголтоор)", + "enableDialogSubmit": "Идэвхижүүлэх", + "enableDialogText": "Лобби горимд уулзалт удирдагч зөвшөөрсний дараа л хүн уулзалтанд оролцох боломжтой болдог.", + "enterPasswordButton": "Уулзалтын нууц үгээ оруулна уу", + "enterPasswordTitle": "Уулзалтанд оролцохын тулд нууц үгээ оруулна уу", + "errorMissingPassword": "Уулзалтын нууц үгээ оруулна уу", + "invalidPassword": "Нууц үг буруу", + "joinRejectedMessage": "Таны уулзалтанд орох хүсэлтийг зөвшөөрөгдсөнгүй.", + "joinRejectedTitle": "Уулзалтын хүсэлт зөвшөөрөгдөөгүй.", + "joinTitle": "Уулзалтанд оролцох", + "joinWithPasswordMessage": "Нууц үг оруулан уулзалтад оролцохыг оролдож байна, түр хүлээнэ үү…", + "joiningMessage": "Таны хүсэлтийг хэн нэгэн зөвшөөрөнгүүт та уулзалтанд нэгдэнэ", + "joiningTitle": "Уулзалтанд орохыг асууж байна…", + "joiningWithPasswordTitle": "Нууц үгтэйгээр оролцож байна…", + "knockButton": "Уулзалтанд орохыг асуух", + "knockTitle": "Хэн нэгэн энэ уулзалтын хүсэлт илгээсэн байна", + "knockingParticipantList": "Оролцогчийн жагсаалт шалгах", + "lobbyChatStartedNotification": "{{moderator}} {{attendee}}-тай лобби чатыг эхлүүлсэн.", + "lobbyChatStartedTitle": "{{moderator}} таньтай лобби чатыг эхлүүлсэн байна.", + "nameField": "Та нэрээ оруулна уу", + "notificationLobbyAccessDenied": "{{originParticipantName}} нь {{targetParticipantName}}-г уулзалтанд оролцуулахаас татгалзсан байна.", + "notificationLobbyAccessGranted": "{{originParticipantName}} нь {{targetParticipantName}}-г уулзалтанд оролцуулахыг зөвшөөрсөн байна", + "notificationLobbyDisabled": "{{originParticipantName}} лоббиг идэвхигүй болгосон", + "notificationLobbyEnabled": "{{originParticipantName}} лоббиг идэвхитэй болгосон", + "notificationTitle": "Лобби", + "passwordField": "Нууц үгээ оруулна уу", + "passwordJoinButton": "Оролцох", + "title": "Лобби", + "toggleLabel": "Лобби идэвхижүүлэх" + }, + "localRecording": { + "clientState": { + "off": "Off", + "on": "On", + "unknown": "Танигдаагүй" + }, + "dialogTitle": "Дотоод бичлэгийн хяналт", + "duration": "Үргэлжлэх хугацаа", + "durationNA": "N/A", + "encoding": "Шифрлэх", + "label": "LOR", + "labelToolTip": "Дотоод бичлэг хийнэ", + "localRecording": "Дотоод бичлэг", + "me": "Надад", + "messages": { + "engaged": "Дотоод бичлэг хийдэг", + "finished": "{{token}} бичлэгийн хугацаа дууссан. Уулзалтын удирдагч руу бичлэгийн файлаа илгээнэ үү.", + "finishedModerator": "{{token}} бичлэгийн хугацаа дууссан. Хувийн бичлэг хадгалагдсан. Бусад оролцогч өөрсдийн бичлэгээ батлахыг эсэхийг асууна уу.", + "notModerator": "Та уулзалтын удирдагч биш байна. Та дотоод бичлэгийг эхлүүлэх эсвэл зогсоох боломжгүй." + }, + "moderator": "Уулзалтын удирдагч", + "no": "Үгүй", + "participant": "Оролцогч", + "participantStats": "Оролцогчдын статистик", + "selectTabTitle": "🎥 бичлэг хийхийн тулд энэ хавтсыг сонгоно уу", + "sessionToken": "Идэвхитэй Токен", + "start": "Бичлэг хийх", + "stop": "Бичлэг болих", + "yes": "Тийм" + }, + "lockRoomPassword": "нууц үг", + "lockRoomPasswordUppercase": "Нууц үг", + "lonelyMeetingExperience": { + "button": "Бусдыг урь", + "youAreAlone": "Та энэ уулзалтад ганцаараа байна" + }, + "me": "Надад", + "notify": { + "OldElectronAPPTitle": "Security vulnerability!", + "allowAction": "Зөвшөөрөх", + "allowedUnmute": "Та микрофоноо нээх, камераа эхлүүлэх эсвэл дэлгэцээ хуваалцах боломжтой.", + "audioUnmuteBlockedDescription": "Системийн хязгаарлалтаас болоод микрофон нээхийг түр хориглосон.", + "audioUnmuteBlockedTitle": "Микрофон нээхийг хориглосон!", + "chatMessages": "Чат зурвас", + "connectedOneMember": "{{name}} уулзалтад нэгдсэн", + "connectedThreePlusMembers": "{{name}} болон бусад {{count}} уулзалтад нэгдсэн", + "connectedTwoMembers": "{{first}} ба {{second}} уулзалтад нэгдсэн", + "dataChannelClosed": "Видео чанар хангалтгүй", + "dataChannelClosedDescription": "Холболтын суваг тасарсан тул дүрсний чанар хамгийн багаар хязгаардагдлаа.", + "disconnected": "Уулзалтаас гарлаа", + "displayNotifications": "Мэдэгдлийг харуулах", + "dontRemindMe": "Дахин сануулахгүй", + "focus": "Уулзалт фокус", + "focusFail": "{{component}} боломжгүй - {{ms}} сек дараа дахин оролдоно уу", + "gifsMenu": "GIPHY", + "groupTitle": "Мэдэгдэл", + "hostAskedUnmute": "Уулзалтын хөтлөгч таныг ярихыг хүсч байна", + "invitedOneMember": "{{name}} урьсан байна", + "invitedThreePlusMembers": "{{name}} болон бусад {{count}} урьсан байна", + "invitedTwoMembers": "{{first}} ба {{second}} урьсан байна", + "joinMeeting": "Join", + "kickParticipant": "{{kicked}} -г {{kicker}} гаргасан", + "leftOneMember": "{{name}} left the meeting", + "leftThreePlusMembers": "{{name}} болон бусад хүмүүс уулзалтыг орхисон", + "leftTwoMembers": "{{first}} болон {{second}} уулзалтыг орхисон", + "linkToSalesforce": "Salesforce-той холбох", + "linkToSalesforceDescription": "You can link the meeting summary to a Salesforce object.", + "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}} хаасан байна!!", + "mutedTitle": "Таны дуу хаалтай байна!", + "newDeviceAction": "Хэрэглэх", + "newDeviceAudioTitle": "Шинэ дууны төхөөрөмж", + "newDeviceCameraTitle": "Шинэ камер", + "noiseSuppressionDesktopAudioDescription": "Десктопны дууг хуваалцах үед чимээ намсгах боломжгүй, хаагаад дахин оролдоно уу.", + "noiseSuppressionFailedTitle": "Чимээ намсгах амжилтгүй", + "noiseSuppressionNoTrackDescription": "Эхлээд микрофоны дуугаа нээнэ үү.", + "noiseSuppressionStereoDescription": "Одоогоор стерео дууны чимээг намсгах боломжгүй.", + "oldElectronClientDescription1": "Та Jitsi Meet-ийг хуучирсан хувибарыг ашиглаж байгаа тул аюулгүй байдлаа бүрэн хангаагүй байх эрсдэлтэй. Шинэ хувилбарыг татсан эсэхээ шалгаарай ", + "oldElectronClientDescription2": "сүүлийн хувилбар", + "oldElectronClientDescription3": " яг одоо!", + "participantWantsToJoin": "Уулзалтанд орохыг хүсч байна", + "participantsWantToJoin": "Уулзалтанд орохыг хүсч байна", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) өөр оролцогч устгасан", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) өөр оролцогчоос хийсэн", + "raiseHandAction": "Гараа өргөнө үү", + "raisedHand": "{{name}} ярихыг хүсч байна.", + "raisedHands": "Нэмж {{participantName}} ба {{raisedHands}} хүмүүс", + "reactionSounds": "Дууг хаах", + "reactionSoundsForAll": "Бүгдийн дууг хаах", + "screenShareNoAudio": "Дууны сонголт чагтлаагүй байгааг сонгосон дэлгэцэнд харуулах.", + "screenShareNoAudioTitle": "Системийн дуугаа хуваалцаж чадсангүй!", + "screenSharingAudioOnlyDescription": "Дэлгэцээ хувааснаар \"Хамгийн сайн үзүүлэлт\" горимд нөлөөлөх, илүү их өргөн зурвас ашиглахыг анхаарна уу.", + "screenSharingAudioOnlyTitle": "\"Хамгийн сайн үзүүлэлт\" горим", + "selfViewTitle": "Та өөрийн харагдац тохиргоог хэзээд нээх боломжтой", + "somebody": "Хэн нэгэн", + "startSilentDescription": "Дууг идэвхжүүлэхийн тулд уулзалтад дахин нэгдээрэй", + "startSilentTitle": "Та ямар ч дууны төхөөрөмжгүй нэгдсэн байна!", + "suboptimalBrowserWarning": "Таны хөтөч дээр бүрэн дэмжлэг ороогүй байна. Та бүрэн дэмжигдсэн хөтөчийг ашиглана уу.", + "suboptimalExperienceTitle": "Хөтөчийн анхааруулга", + "unmute": "Дуутай", + "videoMutedRemotelyDescription": "Та хүссэн цагтаа буцаан асааж болно.", + "videoMutedRemotelyTitle": "Таны дүрсийг {{participantDisplayName}} хаасан байна", + "videoUnmuteBlockedDescription": "Системийн хязгаарлалтаас болоод камер нээх, дэлгэц хуваалцахыг түр хориглосон байна.", + "videoUnmuteBlockedTitle": "Камер нээх, дэлгэц хуваалцахыг хориглосон!", + "viewLobby": "Лобби харах", + "waitingParticipants": "{{waitingParticipants}} хүмүүс" + }, + "participantsPane": { + "actions": { + "admit": "Ok", + "admitAll": "Бүгдийг зөвшөөр", + "allow": "Оролцогчийг зөвшөөрөх:", + "allowVideo": "Дүрс зөвшөөрөх", + "askUnmute": "Дуугаа нээхийг хүсэх", + "audioModeration": "Өөрсдийн дууг хаах", + "blockEveryoneMicCamera": "Бүх хүний микрофон, камерыг хаах", + "invite": "Хэн нэгнийг урих", + "moreModerationActions": "Удирдлагын нэмэлт сонголт", + "moreModerationControls": "Удирдлагын нэмэлт хяналт", + "moreParticipantOptions": "Оролцогчийн нэмэлт сонголт", + "mute": "Дуугүй болгох", + "muteAll": "Бүгдийг дуугүй болгох", + "muteEveryoneElse": "Бүгдийг дуугүй болгох", + "reject": "Татгалзах", + "stopEveryonesVideo": "Бүгдийн дүрсийг хаах", + "stopVideo": "Дүрс хаах", + "unblockEveryoneMicCamera": "Бүх хүний микрофон, камерыг нээх", + "videoModeration": "Өөрсдийн дүрсээ нээх" + }, + "close": "Хаах", + "headings": { + "lobby": "Лобби ({{count}})", + "participantsList": "Уулзалтын оролцогч ({{count}})", + "visitors": "Зочид ({{count}})", + "waitingLobby": "Лоббид хүлээж байгаа ({{count}})" + }, + "search": "Оролцогч хайх", + "title": "Оролцогчид" + }, + "passwordDigitsOnly": "{{number}} хүртэлх тоо", + "passwordSetRemotely": "өөр оролцогч хийсэн", + "pinParticipant": "{{participantName}} - онцол", + "pinnedParticipant": "Оролцогчийг онцолсон", + "polls": { + "answer": { + "skip": "Алгасах", + "submit": "Батлах" + }, + "by": "{{ name }}", + "create": { + "addOption": "Сонголт нэмэх", + "answerPlaceholder": "Сонголт {{index}}", + "cancel": "Цуцлах", + "create": "Санал асуулга үүсгэх", + "pollOption": "Санал асуулгын сонголт {{index}}", + "pollQuestion": "Санал асуулга", + "questionPlaceholder": "Асуух", + "removeOption": "Сонголт хасах", + "send": "Илгээх" + }, + "errors": { + "notUniqueOption": "Сонголтууд өвөрмөц байх ёстой" + }, + "notification": { + "description": "Саналаа өгөхийн тулд санал асуулгын хавтсыг нээнэ үү", + "title": "Уулзалтанд шинэ санал асуулга нэмэгдлээ" + }, + "results": { + "changeVote": "Санал өөрчлөх", + "empty": "Уулзалтын санал асуулга одоогоор алга.Энд шинээр үүсгэж болно!", + "hideDetailedResults": "Дэлгэрэнгүйг нуух", + "showDetailedResults": "Дэлгэрэнгүйг харах", + "vote": "Санал өгөх" + } + }, + "poweredby": "дэмжигдсэн", + "prejoin": { + "audioAndVideoError": "Дуу, дүрсний алдаа:", + "audioDeviceProblem": "Дууны төхөөрөмж гэмтэлтэй байна", + "audioOnlyError": "Дууны алдаа:", + "audioTrackError": "Дууг хадгалж чадсангүй.", + "callMe": "Над руу залга", + "callMeAtNumber": "Энэ дугаараар над руу залга:", + "calling": "Дуудаж байна", + "configuringDevices": "Төхөөрөмжийг тохируулж байна…", + "connectedWithAudioQ": "Та зөвхөн дуугаа холбогдсон уу?", + "connection": { + "good": "Таны интернетийн хурд сайн байна!", + "nonOptimal": "Таны интернетийн хурд сайн биш байна", + "poor": "Таны интернетийн хурд муу байна" + }, + "connectionDetails": { + "audioClipping": "Таны дуудлага тасралттай байхаар байна.", + "audioHighQuality": "Таны дуудлагын чанар маш сайн байхаар байна.", + "audioLowNoVideo": "Таны дуудлагын чанар муу, дүрсгүй байхаар байна.", + "goodQuality": "Гайхалтай! Таны дуу, дүрс чанар маш сайн байхаар байна.", + "noMediaConnectivity": "Шалгалт хийхэд бид дуу, дүрсний холболтыг тогтоож чадсангүй. Галт хана эсвэл NAT нөлөөлсөн байж магад.", + "noVideo": "Таны дүрсний чанар маш муу байхаар байна..", + "undetectable": "Хэрэв та вэб хөтөч дээр дуудлага хийж чадахгүй байгаа бол, дуу, дүрс, микрофоны тохиргоо зөв хийсэн, вэб хөтчийн нэвтрэх эрх нээлттэй эсэх, вэб хөтчөө шинэчилсэн эсэхээ шалгана уу. Алдаа нь хэвээрээ бол вэб аппын хөгжүүлэгчтэй холбогдоорой.", + "veryPoorConnection": "Таны дуудлагын чанар маш муу байхаар байна.", + "videoFreezing": "Таны дүрсний чанар гацах, харлах, нягтаршил муу байхаар байна.", + "videoHighQuality": "Таны дүрсний сайн чанартай байна.", + "videoLowQuality": "Дамжуулалтын хурд, нягтаршилаас хамааран таны дүрс муу байхаар байна.", + "videoTearing": "Таны дүрсний нягтаршил эсвэл харагдац маш муу байхаар байна." + }, + "copyAndShare": "Уулзалтын холбоос хуулаад хуваалцах", + "dialInMeeting": "Уулзалт руу залгах", + "dialInPin": "Уулзалт руу залгаад ПИН кодоо оруулна уу:", + "dialing": "Залгаж байна", + "doNotShow": "Энэ дэлгэцийн дахин харуулахгүй", + "errorDialOut": "Залгаж чадсангүй", + "errorDialOutDisconnected": "Залгаж чадсангүй. Холболт тасарсан", + "errorDialOutFailed": "Залгаж чадсангүй. Дуудлага амжилтгүй", + "errorDialOutStatus": "Залгах төлвийг татах үеийн алдаа", + "errorMissingName": "Уулзалтанд орохын тулд нэрээ оруулна уу:", + "errorNoPermissions": "Та микрофон, камерт хандах хүсэлтийг зөвшөөрнө үү", + "errorStatusCode": "Залгах үеийн алдаа, төлвийн код: {{status}}", + "errorValidation": "Дугаар баталгаажуулалт амжилтгүй", + "iWantToDialIn": "Би залгахыг хүсч байна", + "initiated": "Дуудлага эхэлсэн", + "joinAudioByPhone": "Утасны дуутай орох", + "joinMeeting": "Уулзалтанд орох", + "joinMeetingInLowBandwidthMode": "Join in low bandwidth mode", + "joinWithoutAudio": "Дуугүй оролцох", + "keyboardShortcuts": "Компьютерийн гарны богино холбоог идэвхижүүлэх", + "linkCopied": "Холбоосыг түр хуулсан", + "lookGood": "Таны микрофон хэвийн ажиллаж байна", + "or": "эсвэл", + "premeeting": "Уулзалтын өмнө", + "screenSharingError": "Дэлгэц хуваалцахын алдаа:", + "startWithPhone": "Утасны дуугаар холбогдох", + "videoOnlyError": "Видео дамжуулалтын алдаа:", + "videoTrackError": "Видео бичлэг үүсгэж чадсангүй.", + "viewAllNumbers": "бүх дугаарыг харах" + }, + "presenceStatus": { + "busy": "Завгүй", + "calling": "Дуудаж байна…", + "connected": "Холбогдсон", + "connecting": "Холбож байна…", + "connecting2": "Холбож байна*…", + "disconnected": "Холбогдоогүй", + "expired": "Хугацаа нь дууссан", + "ignored": "Ignored", + "initializingCall": "Дуудлагыг эхлүүлж байна…", + "invited": "Урьсан", + "rejected": "Татгалзсан", + "ringing": "Дуудаж байна…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Нэрээ оруулна уу", + "setEmailInput": "И-мэйл оруулна уу", + "setEmailLabel": "И-мэйл хаягаа оруулна уу", + "title": "Профайл" + }, + "raisedHand": "Ярьмаар байна", + "raisedHandsLabel": "Гараа өргөсөн тоо", + "record": { + "already": { + "linked": "Энэ уулзалт Salesforce - той холбогдсон." + }, + "type": { + "account": "Бүртгэл", + "contact": "Холбоо барих", + "lead": "Lead", + "opportunity": "Боломж", + "owner": "Эзэмшигч" + } + }, + "recording": { + "authDropboxText": "Dropbox байршуулах", + "availableSpace": "Боломжтой зай: {{spaceLeft}} MB (ойролцоогоор {{duration}} минутын бичлэг)", + "beta": "BETA", + "busy": "Бичлэгийн нөөцийг сул болгохоор ажиллаж байна. Хэдэн минутын дараа дахин оролдоно уу.", + "busyTitle": "Бүх бичигчид завгүй байна", + "copyLink": "Холбоос хуулах", + "error": "Бичлэг хийх амжилтгүй боллоо. Дахин оролдоно уу.", + "errorFetchingLink": "Бичлэгийн холбоос татах үеийн алдаа.", + "expandedOff": "Бичлэг хийх зогссон", + "expandedOn": "Уулзалтыг одоо тэмдэглэж байна.", + "expandedPending": "Бичлэгийг хийж байна…", + "failedToStart": "Бичлэг хийх амжилтгүй боллоо", + "fileSharingdescription": "Бичлэгийг уулзалтын оролцогчидтой хуваалцах", + "highlight": "Highlight", + "highlightMoment": "Онцолсон мөчүүд", + "highlightMomentDisabled": "Бичлэг эхлэх үед мөчүүдээ онцолж болно", + "highlightMomentSuccess": "Энэ мөчийг онцолсон", + "highlightMomentSucessDescription": "Таны онцолсон мөч уулзалтын хураангуй хэсэгт нэмэгдэнэ.", + "inProgress": "Бичлэг хийх эсвэл шууд дамжуулалт идэвхитэй", + "limitNotificationDescriptionNative": "Бичлэгийн чанараас хамааран таны минут {{limit}}-р хязгаарлагдаж байна. Хязгаарлалтгүй бичлэг хийхийн тулд <3>{{app}} үзээрэй.", + "limitNotificationDescriptionWeb": "Бичлэгийн чанараас хамааран таны минут {{limit}}-р хязгаарлагдаж байна. Хязгаарлалтгүй бичлэг хийхийн тулд {{app}} ашиглана уу.", + "linkGenerated": "Таны бичлэгийн холбоосыг үүсгэсэн.", + "live": "ШУУД", + "localRecordingNoNotificationWarning": "Бусад оролцогчид бичлэгийн хийх талаар мэдэгдэнэ. Та энэ бичлэгийн талаарх мэдэгдлийг зөвшөөрөх шаардлагатай.", + "localRecordingNoVideo": "Видео бичлэг хийгээгүй байна.", + "localRecordingStartWarning": "Уулзалтаас гарахаас өмнө бичлэгээ зогсоон хадгалж авна уу.", + "localRecordingStartWarningTitle": "Хадгалахын тулд бичлэгээ зогсооно уу", + "localRecordingVideoStop": "Видео бичлэгээ зогсоовол өөр дээрээ файлаар хадгалах нь хамтдаа зогсоно. Та үргэлжлүүлэхдээ итгэлтэй байна уу?", + "localRecordingVideoWarning": "To record your video you must have it on when starting the recording", + "localRecordingWarning": "Дуу болон видео дамжуулалтын зөвшөөрлийг өгөхийн тулд энэ табыг сонгоно уу.", + "loggedIn": "{userName} нэвтэрнэ үү", + "noMicPermission": "Микрофон олдсонгүй. Микрофон ашиглах зөвшөөрлөө өгнө үү.", + "noStreams": "Дуу эсвэл видео дамжуулалт олдсонгүй.", + "off": "Бичлэг зогссон", + "offBy": "{{name}} бичлэгийг зогсоосон", + "on": "Бичиж байна", + "onBy": "{{name}} бичлэг хийж эхлэв", + "onlyRecordSelf": "Зөвхөн миний видео болон дууны дамжуулалтыг бичих", + "pending": "Уулзалтыг бичихээр бэлтгэж байна…", + "rec": "REC", + "saveLocalRecording": "Бичлэгийн файлаа өөрийн компьютерт хадгал (Beta)", + "serviceDescription": "Таны бичлэгийг хадгална", + "serviceDescriptionCloud": "Клауд бичлэг", + "serviceDescriptionCloudInfo": "Уулзалтын бичлэг хийсэн цагаас хойш 24 цагийн дараа автоматаар бичлэг устана.", + "serviceName": "Бичлэгийн үйлчилгээ", + "sessionAlreadyActive": "Энэ уулзалтын бичлэгийг хийсэн эсвэл шууд дамжуулсан.", + "signIn": "Нэвтрэх", + "signOut": "Гарах", + "surfaceError": "Энэ табыг сонгоно уу.", + "title": "Бичлэг хийх", + "unavailable": "{{serviceName}} одоогоор ажиллахгүй байна. Бид асуудлыг шийдвэрлэхээр ажиллаж байна. Дараа дахин оролдож үзнэ үү.", + "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.", + "insecureRoomNameWarning": "Энэ өрөөний нэр сэжигтэй. Хүсээгүй оролцогч таны уулзалтанд орох магадлалтай. Аюулгүй байдлаа бодон энэ товчыг ашиглана ууn.", + "title": "Аюулгүй байдлын тохиргоо" + }, + "settings": { + "audio": "Дуу", + "buttonLabel": "Тохиргоо", + "calendar": { + "about": "{{appName}} хуанлигийн интеграци нь таны удахгүй болох уулзалтын товыг хуанлид аюулгүй үүсгэдэг.", + "disconnect": "Таслах", + "microsoftSignIn": "Microsoft-оор нэвтрэх", + "signedIn": " {{email}}-ийн хуанлигийн тов руу нэвтэрч байна. Энэ хуанлигийн товд нэвтрэхийг болиулахын тулд Таслах товч дээр дарна уу.", + "title": "Хуанли" + }, + "desktopShareFramerate": "Дэлгэц хуваалцах дамжуулалтын хурд", + "desktopShareHighFpsWarning": "Дэлгэцээ хуваалцах хурд ихэсгэвэл таны дамжуулалтын зурваст магадлалтай. Шинэ тохиргоог идэвхижүүлэхийн тулд та дэлгэц хуваалцахаа дахин эхлүүлэх шаардлагатай.", + "desktopShareWarning": "Шинэ тохиргоог идэвхижүүлэхийн тулд та дэлгэц хуваалцахаа дахин эхлүүлэх шаардлагатай.", + "devices": "Төхөөрөмжүүд", + "followMe": "Бүгд намайг дагаж байна", + "framesPerSecond": "fps", + "incomingMessage": "Ирсэн мессэж", + "language": "Хэл", + "loggedIn": "{{name}} нэвтэрсэн", + "maxStageParticipants": "Үндсэн тайз руу гарах оролцогчийн хамгийн их тоо", + "microphones": "Микрофон", + "moderator": "Зохицуулагч", + "moderatorOptions": "Зохицуулагчийн сонголт", + "more": "Цааш", + "name": "Нэр", + "noDevice": "Байхгүй", + "notifications": "Тэмдэглэл", + "participantJoined": "Оролцогч нэгдсэн", + "participantKnocking": "Оролцогчийн орсон лобби", + "participantLeft": "Оролцогч гарсан", + "playSounds": "Дууг нээх", + "reactions": "Уулзалтын реакциуд", + "sameAsSystem": "Системтэй адил({{label}})", + "selectAudioOutput": "Дууны гаралт", + "selectCamera": "Камер", + "selectMic": "Микрофон", + "selfView": "Өөрийн цонх", + "shortcuts": "Бог", + "speakers": "Спикер", + "startAudioMuted": "Бүгд дуугүй эхлэх", + "startReactionsMuted": "Бүх хүн рүү Чимээгүй эмоцийг илгээх", + "startVideoMuted": "Бүгдийн дүрс хаах", + "talkWhileMuted": "Нэг нь ярихад бусдын дууг хаах", + "title": "Тохиргоо", + "video": "Видео" + }, + "settingsView": { + "advanced": "Нарийвчилсан", + "alertCancel": "Цуцлах", + "alertOk": "OK", + "alertTitle": "Анхааруулга", + "alertURLText": "Оруулсан серверийн URL хүчингүй байна", + "buildInfoSection": "Мэдээлэл оруулах", + "conferenceSection": "Уулзалт", + "disableCallIntegration": "Үндсэн дуудлагад өгөх тохиргоог идэвхгүй болгох", + "disableCrashReporting": "Тасралтын тайланг болиулах", + "disableCrashReportingWarning": "Тасралтын тайланг болиулахдаа итгэлтэй байна уу? Аппыг дахин эхлүүлэх үед энэ тохиргоо идэвхижинэ.", + "disableP2P": "Peer-To-Peer горим идэвхгүй болгох", + "displayName": "Дэлгэцийн нэр", + "displayNamePlaceholderText": "Жиш: Б.Болд", + "email": "Имэйл", + "emailPlaceholderText": "email@example.com", + "goTo": "Шилжих", + "header": "Тохиргоо", + "help": "Тусламж", + "links": "Холбоос", + "privacy": "Хувийн нууцлал", + "profileSection": "Профайл", + "serverURL": "Серверийн URL", + "showAdvanced": "Нарийвчилсан тохиргоог харуулах", + "startCarModeInLowBandwidthMode": "Машин горимд дамжуулалтын чанарыг багасгаж эхлүүлэх", + "startWithAudioMuted": "Дуугүй болгох", + "startWithVideoMuted": "Видеог дууг хаах", + "terms": "Нөхцлүүд", + "version": "Хувилбар" + }, + "share": { + "dialInfoText": "\n\n=====\n\nУтсан дээрээ залгахыг хүсч байна уу?\n\n{{defaultDialInNumber}}Энэ уулзалтын утасны дугаарлуу залгахыг харахын тулд энэ холбоос дээр дарна уу\n{{dialInfoPageUrl}}", + "mainText": "Уулзалтанд нэгдэхийн тулд дараах холбоосыг дарна уу:\n{{roomUrl}}" + }, + "speaker": "Яригч", + "speakerStats": { + "angry": "Ууртай", + "disgusted": "Зэвүүцсэн", + "displayEmotions": "Эмоци харуулах", + "fearful": "Айсан", + "happy": "Жаргалтай", + "hours": "{{count}}ц", + "minutes": "{{count}}мин", + "name": "Нэр", + "neutral": "Төвийг сахисан", + "sad": "Баргар", + "search": "Хайх", + "searchHint": "Оролцогч хайх", + "seconds": "{{count}}сек", + "speakerStats": "Оролцогчийн статистик", + "speakerTime": "Оролцогчийн ярьсан цаг", + "surprised": "Гайхсан" + }, + "startupoverlay": { + "genericTitle": "Энэ уулзалтанд таны микрофон болон камерыг ашиглана.", + "policyText": " ", + "title": "{{app}} нь таны микрофон болон камерыг ашиглана." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Дахин нэгдэх", + "text": "Дахин холбохын тулд Дахин нэгдэх товчийг дарна уу.", + "title": "Энэ компьютер унтарсан учир таны видео дуудлага тасарлаа." + }, + "termsView": { + "title": "Нөхцөл" + }, + "toggleTopPanelLabel": "Дээд панел идэвхжүүлэх", + "toolbar": { + "Settings": "Тохиргоо", + "accessibilityLabel": { + "Settings": "Тохиргоо", + "audioOnly": "Зөвхөн дуу", + "audioRoute": "Дууны төхөөрөмж сонго", + "boo": "Boo", + "breakoutRoom": "Дэд өрөөнд нэгдэх/орхих", + "callQuality": "Видеоны чанар", + "carmode": "Машины горим", + "cc": "Хадмал орчуулга", + "chat": "Зурвасын цонх", + "clap": "Алга таших", + "closeChat": "Чат хаах", + "closeMoreActions": "Нэмэлт үйлдлийн цэсийг хаах", + "closeParticipantsPane": "Оролцогчийн цонх хаах", + "collapse": "Хумих", + "document": "Бичиг баримт хуваалцах", + "documentClose": "Хуваалцсан баримт хаах", + "documentOpen": "Хуваалцсан баримт нээх", + "download": "Манай програмуудыг татах", + "embedMeeting": "Уулзалт нэгтгэх", + "endConference": "Уулзалтыг нийтээр нь хаах", + "enterFullScreen": "Бүтэн дэлгэцээр харах", + "enterTileView": "Нүдэн харагдац сонгох", + "exitFullScreen": "Бүтэн дэлгэцээс гарах", + "exitTileView": "Нүдэн харагдацаас гарах", + "expand": "Сунгах", + "feedback": "Санал хүсэлтээ үлдээх", + "fullScreen": "Бүтэн дэлгэц", + "giphy": "GIPHY цэс идэвхжүүлэх", + "grantModerator": "Удирдагчийн эрх баталгаажуулах", + "hangup": "Салгах", + "heading": "Багаж", + "help": "Тусламж", + "hideWhiteboard": "Самбар нуух", + "invite": "Хүмүүсийг урих", + "kick": "Оролцогчийг гаргах", + "laugh": "Инээх", + "leaveConference": "Уулзалтыг орхих", + "like": "Эрхий хуруу", + "linkToSalesforce": "Salesforce-руу холбох", + "lobbyButton": "Лобби горим нээх/хаах", + "localRecording": "Дотоод бичлэгийн хяналт", + "lockRoom": "Нууц үг өгөх", + "lowerHand": "Гараа буулгана уу", + "moreActions": "Бусад цэс", + "moreActionsMenu": "Бусад цэс", + "moreOptions": "Нэмэлт сонголт", + "mute": "Дууг хаах", + "muteEveryone": "Бүх дууг хаах", + "muteEveryoneElse": "Бүгдийн дууг хаах", + "muteEveryoneElsesVideoStream": "Бүгдийн видеог зогсоох", + "muteEveryonesVideoStream": "Бүх видеог зогсоох", + "noiseSuppression": "Шуугиан даралт", + "openChat": "Чат нээх", + "participants": "Оролцогчийн самбар нээх", + "pip": "Зураг зураг горим", + "privateMessage": "Хувийн зурвас илгээх", + "profile": "Өөрийн профайлыг засах", + "raiseHand": "Гараа өргө", + "reactionsMenu": "Реакци нээх", + "recording": "Бичлэг хийх", + "remoteMute": "Оролцогчийн дууг хаах", + "remoteVideoMute": "Оролцогчийн камерийг хаах", + "security": "Нууцлалын тохиргоо", + "selectBackground": "Арын зураг сонгох", + "selfView": "Өөрийн харагдах идэвхжүүлэх", + "shareRoom": "Хүн урих", + "shareYourScreen": "Дэлгэц хуваалцах", + "shareaudio": "Дуугаа хуваалцах", + "sharedvideo": "Youtube-н видео хуваалцах", + "shortcuts": "Товчлол", + "show": "Үзүүлэх", + "showWhiteboard": "Самбар харуулах", + "silence": "Чимээгүй", + "speakerStats": "Яригчийн статистик", + "stopScreenSharing": "Дэлгэцээ хуваахыг зогсооно уу", + "stopSharedVideo": "Видео зогсоох", + "surprised": "Гайхсан", + "tileView": "Зэрэгцүүлж харах", + "toggleCamera": "Камер чирэх", + "toggleFilmstrip": "Toggle filmstrip", + "unmute": "Дуу сэргээх", + "videoblur": "Видео бүдэгрүүлэх", + "videomute": "Дүрсгүй видео", + "videounmute": "Камер эхлүүлэх" + }, + "addPeople": "Таны дуудлагад хүн нэмэх", + "audioOnlyOff": "Бага дамжуулах горимыг идэвхгүй болгох", + "audioOnlyOn": "Бага дамжуулах горимыг идэвхжүүлэх", + "audioRoute": "Дууны төхөөрөмж сонгох", + "audioSettings": "Дууны тохиргоо", + "authenticate": "Нэвтрэлт", + "boo": "Boo", + "callQuality": "Видеоны чанар", + "chat": "Зурвас нээх/хаах", + "clap": "Алга таших", + "closeChat": "Зурвас хаах", + "closeParticipantsPane": "Оролцогчийн цонх хаах", + "closeReactionsMenu": "Реакци цэс хаах", + "disableNoiseSuppression": "Шуугиан дарахыг болиулах", + "disableReactionSounds": "Уулзалтын үеэр реакцийн чимээг хаах болно", + "documentClose": "Хуваалцсан бичиг баримт хаах", + "documentOpen": "Хуваалцсан бичиг баримт нээх", + "download": "Манай програмуудыг татах", + "e2ee": "Бүтэн нууцлал", + "embedMeeting": "Уулзалтыг нэгтгэх", + "enableNoiseSuppression": "Шуугиан дарахыг идэвхижүүлэх", + "endConference": "Уулзалтыг нийтээр нь хаах", + "enterFullScreen": "Бүтэн дэлгэцээр харах", + "enterTileView": "Зэрэгцүүлж харах", + "exitFullScreen": "Бүтэн дэлгэцээс гарах", + "exitTileView": "Зэрэгцүүлж харах болих", + "feedback": "Санал хүсэлтээ үлдээх", + "giphy": "Toggle GIPHY menu", + "hangup": "Салгах", + "help": "Тусламж", + "hideWhiteboard": "Самбар нуух", + "invite": "Хүмүүс урих", + "joinBreakoutRoom": "Дэд өрөөнд нэгдэх", + "laugh": "Инээх", + "leaveBreakoutRoom": "Дэд өрөөг орхих", + "leaveConference": "Уулзалт орхих", + "like": "Гараа өргөх", + "linkToSalesforce": "Salesforce-той холбох", + "lobbyButtonDisable": "Лобби горимыг хаах", + "lobbyButtonEnable": "Лобби горим нээх", + "login": "Нэвтрэх", + "logout": "Гарах", + "lowerYourHand": "Гараа буулгах", + "moreActions": "Бусад үйлдэл", + "moreOptions": "Бусад тохиргоо", + "mute": "Дуу хаах/нээх", + "muteEveryone": "Бүх дууг хаах", + "muteEveryonesVideo": "Бүх оролцогчийн камер хаах", + "noAudioSignalDesc": "Хэрэв та системийн тохиргоо эсвэл техник хангамжаас үүнийг идэвхгүй болгоогүй бол төхөөрөмжийг солиж үзнэ үү.", + "noAudioSignalDescSuggestion": "Хэрэв та системийн тохиргоо эсвэл техник хангамжаас үүнийг идэвхгүй болгоогүй бол санал болгосон төхөөрөмжид шилжүүлнэ үү.", + "noAudioSignalDialInDesc": "Залгаж ашиглаж болно:", + "noAudioSignalDialInLinkDesc": "Залгах дугаарууд", + "noAudioSignalTitle": "Таны микрофоноос оруулах оролт байхгүй байна!", + "noiseSuppression": "Шуугиан дарах", + "noisyAudioInputDesc": "Таны микрофон шуугиж байна, дууг нь хаах эсвэл өөрчилнө үү.", + "noisyAudioInputTitle": "Таны микрофон шуугиантай байна!", + "openChat": "Зурвас нээлттэй", + "openReactionsMenu": "Реакци цэс нээх", + "participants": "Оролцогчид", + "pip": "Зураг-зураг горим оруулах", + "privateMessage": "Хувийн зурвас илгээх", + "profile": "Профайлаа засна уу", + "raiseHand": "Гараа өргөх/буулгах", + "raiseYourHand": "Гараа өргөх", + "reactionBoo": "Boo реакци илгээх", + "reactionClap": "Алга таших реакци илгээх", + "reactionLaugh": "Инээх реакци илгээх", + "reactionLike": "Таалагдсан реакци илгээх", + "reactionSilence": "Чимээгүй реакци илгээх", + "reactionSurprised": "Гайхсан реакци илгээх", + "security": "Нууцлалын тохиргоо", + "selectBackground": "Арын зураг сонгох", + "shareRoom": "Хэн нэгнийг урих", + "shareaudio": "Дуу хуваалцах", + "sharedvideo": "YouTube-н видео хуваалцах", + "shortcuts": "Товчлол харах", + "showWhiteboard": "Самбар харуулах", + "silence": "Чимээгүй", + "speakerStats": "Яригчийн статистик", + "startScreenSharing": "Дэлгэц хуваалцахыг эхлүүл", + "startSubtitles": "Хадмал орчуулгыг эхлүүл", + "stopAudioSharing": "Дуу хуваалцахыг зогсоох", + "stopScreenSharing": "Дэлгэц хуваалцахыг зогсоох", + "stopSharedVideo": "YouTube видео зогсоох", + "stopSubtitles": "Хадмал орчуулгыг зогсоох", + "surprised": "Гайхсан", + "talkWhileMutedPopup": "Ярьж үзмээр байна уу? Дуу хаалттай байна.", + "tileViewToggle": "Зэрэгцүүлж харах", + "toggleCamera": "Камер", + "unmute": "Дууг сэргээх", + "videoSettings": "Видео тохиргоо", + "videomute": "Камер нээх/хаах", + "videounmute": "Камер эхлүүлэх" + }, + "transcribing": { + "ccButtonTooltip": "Хадмал орчуулгыг харуулах/болих", + "error": "Орчуулга амжилтгүй боллоо. Дахин оролдоно уу.", + "expandedLabel": "Хадмал орчуулгыг бичиж байна", + "failedToStart": "Хадмал орчуулга эхлүүлж чадсангүй", + "labelToolTip": "Уулзалтын хадмал орчуулга", + "off": "Хадмал орчуулга больсон", + "pending": "Уулзалтын хадмал орчуулга хийхэд бэлдэж байна…", + "sourceLanguageDesc": "Уулзалтын хэлийг {{sourceLanguage}} болгон өөрчилсөн.
Та эндээс солих боломжтой ", + "sourceLanguageHere": "энд", + "start": "Хадмал орчуулгыг харуулах", + "stop": "Хадмал орчуулгыг болиулах", + "subtitles": "Хадмал орчуулга", + "subtitlesOff": "Off", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Онцлох", + "userMedia": { + "grantPermissions": "Камер болон микрофон ашиглах зөвшөөрөл өгнө үү." + }, + "videoSIPGW": { + "busy": "Бид нөөцийг чөлөөлөхөөр ажиллаж байна. Хэдэн минутын дараа дахин оролдоно уу.", + "busyTitle": "Үйлчилгээ одоогоор завгүй байна", + "errorAlreadyInvited": "{{displayName}} аль хэдийн урьсан байна", + "errorInvite": "Уулзалт хараахан эхлээгүй байна. Дараа дахин оролдож үзнэ үү.", + "errorInviteFailed": "Бид асуудлыг шийдвэрлэхээр ажиллаж байна. Дараа дахин оролдож үзнэ үү.", + "errorInviteFailedTitle": "{{displayName}} урилга амжилтгүй болсон", + "errorInviteTitle": "Уулзалтад урихад алдаа гарлаа", + "pending": "{{displayName}} урьсан байна" + }, + "videoStatus": { + "adjustFor": "Тохируулах:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Таны дамжуулах чадвар муу байна. Энэ горимд та зөвхөн дуу болон дэлгэцийн хуваалцахыг хүлээн авах боломжтой.", + "bestPerformance": "Хамгийн сан үзүүлэлт", + "callQuality": "Видеоны чанар", + "hd": "HD", + "hdTooltip": "Өндөр нягтаршилтай видеог үзэж байна", + "highDefinition": "Өндөр нягтаршил", + "highestQuality": "Хамгийн өндөр нягтаршил", + "labelTooiltipNoVideo": "Видео байхгүй", + "labelTooltipAudioOnly": "Дамжуулалтын багтаамж бага горим идэвхжсэн", + "ld": "LD", + "ldTooltip": "Бага нягтаршилтай видео үзэж байна", + "lowDefinition": "Бага нягтаршил", + "performanceSettings": "Үзүүлэлтийн тохиргоо", + "recording": "Уулзалтын бичлэг хийж байна", + "sd": "SD", + "sdTooltip": "Стандарт нарийвчлалтай видео үзэж байна", + "standardDefinition": "Стандарт нягтаршил", + "streaming": "Шууд дамжуулж байна" + }, + "videothumbnail": { + "connectionInfo": "Холболтын мэдээлэл", + "domute": "Дуу хаах", + "domuteOthers": "Бүх дууг хаах", + "domuteVideo": "Камер идэвхигүй болгох", + "domuteVideoOfOthers": "Бүх оролцогчийн камер идэвхигүй болгох", + "flip": "Урсах", + "grantModerator": "Уулзалт удирдагчийн эрх олгох", + "hideSelfView": "Өөрийн харагдацыг нуух", + "kick": "Гаргах", + "mirrorVideo": "Миний видеог тоглуулах", + "moderator": "Зохицуулагч", + "mute": "Оролцогч дуугүй байна", + "muted": "Дуугүй", + "pinToStage": "Уулзалтад онцлох", + "remoteControl": "Алсын удирдлагыг эхлүүлэх / зогсоох", + "screenSharing": "Оролцогч дэлгэцээ хуваалцаж байна", + "show": "Үзүүлэх", + "showSelfView": "Өөрийн харагдац харуулах", + "unpinFromStage": "Онцлохоо болих", + "verify": "Оролцогчийг баталгаажуулах", + "videoMuted": "Камер идэвхигүй болсон", + "videomute": "Оролцогч камераа зогсоосон байна" + }, + "virtualBackground": { + "addBackground": "Арын зураг нэмэх", + "apply": "Идэвхижүүлэх", + "backgroundEffectError": "Арын зургийг идэвхижүүлэхэд алдаа гарлаа.", + "blur": "Бүдгэрүүлэх", + "deleteImage": "Зураг устгах", + "desktopShare": "Дэлгэцээ хуваалцах", + "desktopShareError": "Дэлгэц хуваалцахад алдаа гарлаа", + "image1": "Beach", + "image2": "White neutral wall", + "image3": "White empty room", + "image4": "Black floor lamp", + "image5": "Mountain", + "image6": "Forest ", + "image7": "Sunrise", + "none": "Аль нь ч биш", + "pleaseWait": "Түр хүлээнэ үү…", + "removeBackground": "Арын зураг устгах", + "slightBlur": "Тал бүдгэрүүлэх", + "title": "Виртуал бүдгэрүүлэлт", + "uploadedImage": "Оруулсан зураг {{index}}", + "webAssemblyWarning": "WebAssembly-г дэмждэггүй", + "webAssemblyWarningDescription": "Энэ хөтөч WebAssembly-г дэмждэггүй" + }, + "visitors": { + "chatIndicator": "(visitor)", + "labelTooltip": "Зочны тоо: {{count}}", + "notification": { + "description": "Оролцохын тулд гараа өргөнө үү", + "title": "Та энэ уулзалтын зочин боллоо" + } + }, + "volumeSlider": "Дууны тохируулга", + "welcomepage": { + "accessibilityLabel": { + "join": "Товшоод нэгдэх", + "roomname": "Уулзалтын нэрийг оруулна уу" + }, + "addMeetingName": "Уулзалтын нэрээ оруулна уу", + "appDescription": "Таньдаг бүх хүмүүсээ урь. {{app}} нь бүрэн шифрлэгдсэн, 100% нээлттэй, видео уулзалтын шийдэл бөгөөд та өдөр бүр үнэ төлбөргүй ашиглаж болно.", + "audioVideoSwitch": { + "audio": "Дуутай", + "video": "Видео" + }, + "calendar": "Хуанли", + "connectCalendarButton": "Хуанлиг холбоно уу", + "connectCalendarText": "Хуанли дээрх уулзалтуудаа {{app}} дээр оруулж болно. Та хуанлиг холбоход болно.", + "enterRoomTitle": "Шинэ уулзалт эхлүүлэх", + "getHelp": "Тусламж авах", + "go": "OK", + "goSmall": "OK", + "headerSubtitle": "Найдвартай, чанартай цахим уулзалт", + "headerTitle": "Jitsi Meet", + "info": "Мэдээлэл", + "jitsiOnMobile": "Jitsi on mobile – бидний аппыг татаад уулзалтанд хаанаас ч оролцоорой.", + "join": "ҮҮСГЭХ / НЭГДЭХ", + "logo": { + "calendar": "Хуанли лого", + "desktopPreviewThumbnail": "Desktop preview thumbnail", + "googleLogo": "Google лого", + "logoDeepLinking": "Jitsi meet лого", + "microsoftLogo": "Microsoft лого", + "policyLogo": "Policy лого" + }, + "meetingsAccessibilityLabel": "Уулзалтууд", + "mobileDownLoadLinkAndroid": "Android апп татах", + "mobileDownLoadLinkFDroid": "F-Droid апп татах", + "mobileDownLoadLinkIos": "iOS апп татах", + "moderatedMessage": "Эсвэл та энэ уулзалтын ганц зохицуулагч бол уулзалтын URL-г хадгалаарай.", + "privacy": "Нууцлал", + "recentList": "Онцлох", + "recentListDelete": "Устгах", + "recentListEmpty": "Таны жагсаалт хоосон байна. Таны хийсэн бүх уулзалтууд энд байна.", + "recentMeetings": "Таны сүүлийн уулзалтууд", + "reducedUIText": "{{app}}, тавтай морил!", + "roomNameAllowedChars": "Уулзалтын нэр нь эдгээр тэмдэгтүүдийн аль нэгийг агуулж болохгүй: ?, &, :, ', \", %, #.", + "roomname": "Уулзалтын нэрийг оруулна уу", + "roomnameHint": "Нэгдэхийг хүсч буй уулзалтын нэр, URL-ийг оруулна уу. Та уулзалтын нэрээ үүсгэж болно. уулзалтад оролцох хүмүүстээ тэр нэрийг өгөөрэй.", + "sendFeedback": "Санал илгээх", + "settings": "Тохиргоо", + "startMeeting": "Уулзалт эхлүүлэх", + "terms": "Нөхцлүүд", + "title": "Аюулгүй, үнэгүй видео уулзалт хийх боломжтой", + "upcomingMeetings": "Таны дараагийн уулзалтууд" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Харилцагчаа урина уу" + } + } +} diff --git a/lang/main-mr.json b/lang/main-mr.json new file mode 100644 index 0000000..93acade --- /dev/null +++ b/lang/main-mr.json @@ -0,0 +1,786 @@ +{ + "addPeople": { + "add": "आमंत्रित करा", + "countryNotSupported": "आम्ही अद्याप या गंतव्याचे समर्थन करत नाही.", + "countryReminder": "यूएस बाहेर कॉल करीत आहे? कृपया आपण देशाच्या कोडसह प्रारंभ केल्याचे सुनिश्चित करा!", + "disabled": "आपण लोकांना आमंत्रित करू शकत नाही.", + "failedToAdd": "सहभागी जोडण्यात अयशस्वी", + "footerText": "डायल आउट करणे अक्षम केले आहे.", + "loading": "लोक आणि फोन नंबर शोधत आहे", + "loadingNumber": "फोन नंबर सत्यापित करीत आहे", + "loadingPeople": "लोकांना आमंत्रित करण्यासाठी शोधत आहे", + "noResults": "कोणतेही जुळणारे शोध परिणाम नाहीत", + "noValidNumbers": "कृपया एक फोन नंबर प्रविष्ट करा", + "searchNumbers": "फोन नंबर जोडा", + "searchPeople": "लोकांचा शोध घ्या", + "searchPeopleAndNumbers": "लोक शोधा किंवा त्यांचा फोन नंबर जोडा", + "telephone": "दूरध्वनी: {{number}}", + "title": "या संमेलनात लोकांना आमंत्रित करा" + }, + "audioDevices": { + "bluetooth": "ब्लूटुथ", + "headphones": "हेडफोन", + "none": "कोणतेही ऑडिओ डिव्हाइस उपलब्ध नाहीत", + "phone": "फोन", + "speaker": "स्पीकर" + }, + "audioOnly": { + "audioOnly": "कमी बँडविड्थ" + }, + "calendarSync": { + "addMeetingURL": "मीटिंगचा दुवा जोडा", + "confirmAddLink": "आपण या कार्यक्रमास एक Jitsi दुवा जोडू इच्छिता?", + "error": { + "appConfiguration": "कॅलेंडर समाकलन योग्यरित्या कॉन्फिगर केलेले नाही.", + "generic": "त्रुटी आढळली आहे. कृपया आपल्या कॅलेंडर सेटिंग्ज तपासा किंवा कॅलेंडर रीफ्रेश करा.", + "notSignedIn": "कॅलेंडर इव्हेंट पाहण्यासाठी प्रमाणीकरण करताना त्रुटी आली. कृपया आपल्या कॅलेंडर सेटिंग्ज तपासा आणि पुन्हा लॉग इन करण्याचा प्रयत्न करा." + }, + "join": "सामील व्हा", + "joinTooltip": "बैठकीत सामील व्हा", + "nextMeeting": "पुढील बैठक", + "noEvents": "कोणतेही आगामी कार्यक्रम शेड्यूल केलेले नाहीत.", + "ongoingMeeting": "चालू बैठक", + "permissionButton": "सेटिंग्ज उघडा", + "permissionMessage": "अ‍ॅपमधील आपली संमेलने पहाण्यासाठी कॅलेंडर परवानगी आवश्यक आहे.", + "refresh": "रीफ्रेश कॅलेंडर", + "today": "आज" + }, + "chat": { + "error": "Error: तुमचा संदेश पाठविला गेला नाही. कारणः {{error}}", + "fieldPlaceHolder": "आपला संदेश येथे टाइप करा", + "messageTo": "यांना खाजगी संदेश {{recipient}}", + "messagebox": "एक संदेश टाइप करा", + "nickname": { + "popover": "टोपणनाव निवडा", + "title": "चॅट वापरण्यासाठी टोपणनाव प्रविष्ट करा", + "titleWithPolls": "चॅट वापरण्यासाठी टोपणनाव प्रविष्ट करा" + }, + "noMessagesMessage": "अद्याप मीटिंगमध्ये कोणतेही संदेश नाहीत. येथे संभाषण सुरू करा!", + "privateNotice": "यांना खाजगी संदेश{{recipient}}", + "sendButton": "पाठवा", + "title": "गप्पा", + "titleWithPolls": "गप्पा", + "you": "आपण" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome विस्तार स्थापित करा", + "dontShowAgain": "मला हे पुन्हा दर्शवू नका", + "installExtensionText": "Google कॅलेंडर आणि ऑफिस 365 एकत्रिकरणासाठी विस्तार स्थापित करा" + }, + "connectingOverlay": { + "joiningRoom": "आपल्याला आपल्या संमेलनात कनेक्ट करीत आहे…" + }, + "connection": { + "ATTACHED": "जोडले", + "AUTHENTICATING": "प्रमाणीकरण करीत आहे", + "AUTHFAIL": "प्रमाणीकरण अयशस्वी", + "CONNECTED": "जोडलेले", + "CONNECTING": "कनेक्ट करीत आहे", + "CONNFAIL": "संपर्क खंडित", + "DISCONNECTED": "डिस्कनेक्ट केलेले", + "DISCONNECTING": "डिस्कनेक्ट करत आहे", + "ERROR": "त्रुटी", + "FETCH_SESSION_ID": "सत्र आयडी प्राप्त करीत आहे…", + "GET_SESSION_ID_ERROR": "सत्र-आयडी त्रुटी मिळवा:{{code}}", + "GOT_SESSION_ID": "सत्र-आयडी मिळवित आहे… पूर्ण झाले", + "LOW_BANDWIDTH": "बँडविड्थ जतन करण्यासाठी {{displayName}}चा व्हिडिओ बंद केला गेला आहे" + }, + "connectionindicator": { + "address": "पत्ता:", + "bandwidth": "अंदाजे बँडविड्थ:", + "bitrate": "बिटरेट:", + "bridgeCount": "सर्व्हर संख्या:", + "connectedTo": "यांना जोडलेले:", + "framerate": "फ्रेम दर:", + "less": "कमी दाखवा", + "localaddress": "स्थानिक पत्ता:", + "localaddress_plural": "स्थानिक पत्ते:", + "localport": "स्थानिक बंदर:", + "localport_plural": "स्थानिक बंदरे:", + "more": "अजून दाखवा", + "packetloss": "पॅकेट तोटा", + "quality": { + "good": "चांगले", + "inactive": "निष्क्रिय", + "lost": "हरवले", + "nonoptimal": "नॉनओप्टिमल", + "poor": "गरीब" + }, + "remoteaddress": "दूरस्थ पत्ता:", + "remoteaddress_plural": "दूरस्थ पत्ते:", + "remoteport": "रिमोट पोर्ट:", + "remoteport_plural": "दूरस्थ बंदरे:", + "resolution": "ठराव:", + "status": "कनेक्शन:", + "transport": "वाहतूक:", + "transport_plural": "परिवहन:" + }, + "dateUtils": { + "earlier": "यापूर्वी", + "today": "आज", + "yesterday": "काल" + }, + "deepLinking": { + "appNotInstalled": "आपल्या फोनवर या संमेलनात सामील होण्यासाठी आपल्यास {{app}}मोबाइल अॅप आवश्यक आहे.", + "description": "काहीच घडलं नाही? आम्ही आपली बैठक {{app}} डेस्कटॉप अॅपमध्ये लाँच करण्याचा प्रयत्न केला. पुन्हा प्रयत्न करा किंवा {{app}} वेब अ‍ॅपमध्ये लाँच करा", + "descriptionWithoutWeb": "काहीच घडलं नाही? आम्ही आपली बैठक {{app}} डेस्कटॉप अॅपमध्ये लाँच करण्याचा प्रयत्न केला.", + "downloadApp": "अ‍ॅप डाउनलोड करा", + "launchWebButton": "वेबमध्ये लाँच करा", + "openApp": "अ‍ॅप वर सुरू ठेवा", + "title": " {{app}}मध्ये आपली बैठक सुरू करत आहे", + "tryAgainButton": "डेस्कटॉपवर पुन्हा प्रयत्न करा" + }, + "defaultLink": "उदा. {{url}}", + "defaultNickname": " उदा. जेन गुलाबी", + "deviceError": { + "cameraError": "आपल्या कॅमेर्‍यावर प्रवेश करण्यात अयशस्वी", + "cameraPermission": "कॅमेर्‍याची परवानगी घेण्यात त्रुटी", + "microphoneError": "आपल्या मायक्रोफोनवर प्रवेश करण्यात अयशस्वी", + "microphonePermission": "मायक्रोफोन परवानगी प्राप्त करताना त्रुटी" + }, + "deviceSelection": { + "noPermission": "परवानगी दिली नाही", + "previewUnavailable": "पूर्वावलोकन अनुपलब्ध", + "selectADevice": "एक डिव्हाइस निवडा", + "testAudio": "चाचणी आवाज प्ले करा" + }, + "dialOut": { + "statusMessage": "आता आहे {{status}}" + }, + "dialog": { + "Back": "Back", + "Cancel": "रद्द करा", + "IamHost": "मी यजमान आहे", + "Ok": "Ok", + "Remove": "काढा", + "Share": "सामायिक करा", + "Submit": "प्रस्तुत करणे", + "WaitForHostMsg": "परिषद अद्याप सुरू झाले नाही. आपण होस्ट असल्यास कृपया अधिकृत करा. अन्यथा, कृपया होस्ट येण्याची प्रतीक्षा करा.", + "WaitingForHost": " होस्टची प्रतीक्षा करीत आहे…", + "Yes": "होय", + "accessibilityLabel": { + "liveStreaming": "थेट प्रसारण" + }, + "allow": "परवानगी द्या", + "alreadySharedVideoMsg": "दुसरा सहभागी आधीपासूनच व्हिडिओ सामायिक करीत आहे. ही परिषद एका वेळी फक्त एकच सामायिक व्हिडिओ परवानगी देते.", + "alreadySharedVideoTitle": "एकावेळी फक्त सामायिक केलेला व्हिडिओ अनुमत आहे", + "applicationWindow": "अनुप्रयोग विंडो", + "cameraConstraintFailedError": "आपला कॅमेरा काही आवश्यक मर्यादा पूर्ण करीत नाही.", + "cameraNotFoundError": "कॅमेरा आढळला नाही.", + "cameraNotSendingData": "आम्ही आपल्या कॅमेर्‍यावर प्रवेश करण्यात अक्षम आहोत. कृपया एखादा दुसरा अनुप्रयोग हे डिव्हाइस वापरत आहे की नाही ते तपासा, सेटिंग्ज मेनूमधून दुसरे डिव्हाइस निवडा किंवा अनुप्रयोग रीलोड करण्याचा प्रयत्न करा.", + "cameraNotSendingDataTitle": "कॅमेर्‍यावर प्रवेश करण्यात अक्षम", + "cameraPermissionDeniedError": "आपल्याला आपला कॅमेरा वापरण्याची परवानगी नाही. आपण अद्याप परिषदेत सामील होऊ शकता परंतु इतर आपल्याला पाहणार नाहीत. हे निश्चित करण्यासाठी अ‍ॅड्रेस बारमधील कॅमेरा बटण वापरा.", + "cameraUnknownError": "अज्ञात कारणासाठी कॅमेरा वापरू शकत नाही.", + "cameraUnsupportedResolutionError": "आपला कॅमेरा आवश्यक व्हिडिओ रिझोल्यूशनला समर्थन देत नाही.", + "close": "बंद", + "conferenceDisconnectMsg": "आपण आपले नेटवर्क कनेक्शन तपासू शकता. सेकंदात पुन्हा कनेक्ट करत आहे {{seconds}}..", + "conferenceDisconnectTitle": "आपण डिस्कनेक्ट झाला आहात.", + "conferenceReloadMsg": "आम्ही हे निश्चित करण्याचा प्रयत्न करीत आहोत. पुन्हा कनेक्ट करत आहे. {{seconds}} sec…", + "conferenceReloadTitle": "दुर्दैवाने, काहीतरी चूक झाली", + "confirm": "पुष्टी", + "confirmNo": "नाही", + "confirmYes": "होय", + "connectError": "अरेरे! काहीतरी चूक झाली आणि आम्ही परिषदेत कनेक्ट होऊ शकलो नाही.", + "connectErrorWithMsg": "अरेरे! काहीतरी चूक झाली आणि आम्ही परिषदेत कनेक्ट होऊ शकलो नाही:{{msg}}", + "connecting": "कनेक्ट करीत आहे", + "contactSupport": "समर्थन संपर्क", + "copy": "Copy", + "dismiss": "Dismiss", + "displayNameRequired": "हाय! तुझे नाव काय आहे?", + "done": "पूर्ण झाले", + "e2eeDescription": "एंड-टू-एंड एनक्रिप्शन सध्या आहे प्रायोगिक. कृपया लक्षात ठेवा की एंड-टू-एंड एन्क्रिप्शन चालू केल्याने सर्व्हर-साइड प्रदान सेवा प्रभावीपणे अक्षम होईल: रेकॉर्डिंग, थेट प्रवाह आणि फोन सहभाग. हे देखील लक्षात ठेवा की मीटिंग केवळ समाविष्ट करण्यायोग्य प्रवाहांसाठी समर्थन असलेल्या ब्राउझरमधून सामील झालेल्या लोकांसाठीच कार्य करेल.", + "e2eeWarning": "चेतावणी:या बैठकीतील सर्व सहभागींना एंड-टू-एंड एनक्रिप्शनसाठी समर्थन असल्याचे दिसत नाही. आपण सक्षम केल्यास ते आपल्याला पाहण्यास किंवा ऐकण्यास सक्षम राहणार नाहीत.", + "enterDisplayName": "कृपया आपले नाव येथे प्रविष्ट करा", + "error": "त्रुटी", + "externalInstallationMsg": "आपल्याला आमचा डेस्कटॉप सामायिकरण विस्तार स्थापित करणे आवश्यक आहे.", + "externalInstallationTitle": "विस्तार आवश्यक", + "goToStore": "वेब स्टोअरवर जा", + "gracefulShutdown": "आमची सेवा सध्या देखभालीसाठी बंद आहे. कृपया पुन्हा प्रयत्न करा.", + "incorrectPassword": "वापरकर्त्याचे नाव अथवा पासवर्ड चुकीचा", + "incorrectRoomLockPassword": "चुकीचा संकेतशब्द", + "inlineInstallExtension": "स्थापित करा", + "inlineInstallationMsg": "आपल्याला आमचा डेस्कटॉप सामायिकरण विस्तार स्थापित करणे आवश्यक आहे.", + "internalError": "अरेरे! काहीतरी चूक झाली. पुढील त्रुटी आली:{{error}}", + "internalErrorTitle": "अंतर्गत त्रुटी", + "kickMessage": "अधिक तपशीलांसाठी आपण {{participantDisplayName}} वर संपर्क साधू शकता.", + "kickParticipantButton": "लाथ मारा", + "kickParticipantDialog": "आपणास खात्री आहे की आपण या सहभागीस लाथ मारायची आहे?", + "kickParticipantTitle": "या सहभागीला बाहेर करा?", + "kickTitle": "Ouch! {{participantDisplayName}} kicked you out of the meeting", + "liveStreaming": "थेट प्रवाह", + "liveStreamingDisabledForGuestTooltip": "अतिथी थेट प्रवाह सुरू करू शकत नाहीत.", + "liveStreamingDisabledTooltip": "थेट प्रवाह अक्षम करा.", + "lockMessage": "परिषद लॉक करण्यात अयशस्वी.", + "lockRoom": "मीटिंग जोडा $t(lockRoomPasswordUppercase)", + "lockTitle": "लॉक अयशस्वी", + "logoutQuestion": "आपणास खात्री आहे की आपण लॉगआउट आणि परिषद थांबवू इच्छिता?", + "logoutTitle": "बाहेर पडणे", + "maxUsersLimitReached": "जास्तीत जास्त सहभागी होण्याची मर्यादा गाठली आहे. परिषद भरली आहे. कृपया मीटिंग मालकाशी संपर्क साधा किंवा नंतर पुन्हा प्रयत्न करा!", + "maxUsersLimitReachedTitle": "जास्तीत जास्त सहभागींची मर्यादा गाठली", + "micConstraintFailedError": "आपला मायक्रोफोन आवश्यक असलेल्या काही मर्यादा पूर्ण करीत नाही.", + "micNotFoundError": "मायक्रोफोन सापडला नाही.", + "micNotSendingData": "आपला माईक सशब्द करण्यासाठी आणि त्याचा स्तर समायोजित करण्यासाठी आपल्या संगणकाच्या सेटिंग्जवर जा", + "micNotSendingDataTitle": "आपले माइक आपल्या सिस्टम सेटिंग्जद्वारे निःशब्द केले आहे", + "micPermissionDeniedError": "आपल्याला आपला मायक्रोफोन वापरण्याची परवानगी नाही. आपण अद्याप परिषदेत सामील होऊ शकता परंतु इतर आपले ऐकणार नाहीत. हे निश्चित करण्यासाठी अ‍ॅड्रेस बारमधील कॅमेरा बटण वापरा.", + "micUnknownError": "Cannot use microphone for an unknown reason.", + "muteEveryoneDialog": "आपली खात्री आहे की आपण प्रत्येकाला निःशब्द करू इच्छिता? आपण त्यांना सशब्द करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.", + "muteEveryoneElseDialog": "एकदा नि: शब्द झाल्यास आपण त्यांना ध्वनीमुद्रित करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.", + "muteEveryoneElseTitle": "सोडून सर्वांना नि: शब्द करा{{whom}}?", + "muteEveryoneSelf": "तू स्वतः", + "muteEveryoneStartMuted": "आतापासून प्रत्येकजण निःशब्द होऊ लागतो", + "muteEveryoneTitle": "सर्वांना नि: शब्द करा?", + "muteParticipantBody": "आपण त्यांना सशब्द करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.", + "muteParticipantButton": "नि: शब्द करा", + "muteParticipantDialog": "आपली खात्री आहे की आपण या सहभागीस नि: शब्द करू इच्छिता? आपण त्यांना सशब्द करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.", + "muteParticipantTitle": "हा सहभागी नि: शब्द करायचा?", + "passwordLabel": "संमेलनास एका सहभागीने लॉक केले आहे. कृपया सामील होण्यासाठी $t(lockRoomPassword) प्रविष्ट करा.", + "passwordNotSupported": "मीटिंग सेट करणे $t(lockRoomPassword) समर्थित नाही..", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) समर्थित नाही", + "passwordRequired": "$t(lockRoomPasswordUppercase)आवश्यक", + "popupError": "आपला ब्राउझर या साइटवरील पॉप-अप विंडोज अवरोधित करत आहे. कृपया आपल्या ब्राउझरच्या सुरक्षा सेटिंग्जमध्ये पॉप-अप सक्षम करा आणि पुन्हा प्रयत्न करा.", + "popupErrorTitle": "पॉप-अप अवरोधित", + "recording": "मुद्रित करणे", + "recordingDisabledForGuestTooltip": "अतिथी रेकॉर्डिंग प्रारंभ करू शकत नाहीत.", + "recordingDisabledTooltip": "रेकॉर्डिंग प्रारंभ अक्षम.", + "rejoinNow": "आता पुन्हा सामील व्हा", + "remoteControlAllowedMessage": "{{user}} आपली रिमोट कंट्रोल विनंती मान्य केली!", + "remoteControlDeniedMessage": "{{user}} आपली रिमोट कंट्रोल विनंती नाकारली!", + "remoteControlErrorMessage": "वरून रिमोट कंट्रोल परवानग्यांची विनंती करण्याचा प्रयत्न करताना एक त्रुटी आली {{user}}!", + "remoteControlRequestMessage": "आपण{{user}} ला डेस्कटॉप दूरस्थपणे नियंत्रित करण्यास अनुमती द्याल?", + "remoteControlShareScreenWarning": "लक्षात ठेवा की आपण \"Allow\" दाबल्यास आपण आपली स्क्रीन सामायिक कराल!", + "remoteControlStopMessage": "रिमोट कंट्रोल सत्र संपले!", + "remoteControlTitle": "दूरस्थ डेस्कटॉप नियंत्रण", + "removePassword": "काढा $t(lockRoomPassword)", + "removeSharedVideoMsg": " आपली खात्री आहे की आपण आपला सामायिक केलेला व्हिडिओ काढू इच्छिता?", + "removeSharedVideoTitle": "सामायिक केलेला व्हिडिओ काढा", + "reservationError": "आरक्षण प्रणाली त्रुटी", + "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}", + "retry": "पुन्हा प्रयत्न करा", + "screenSharingAudio": "ऑडिओ सामायिक करा", + "screenSharingFailedToInstall": "अरेरे! आपला स्क्रीन सामायिकरण विस्तार स्थापित करण्यात अयशस्वी.", + "screenSharingFailedToInstallTitle": "स्क्रीन सामायिकरण विस्तार स्थापित करण्यात अयशस्वी", + "screenSharingFirefoxPermissionDeniedError": "आम्ही आपली स्क्रीन सामायिक करण्याचा प्रयत्न करीत असताना काहीतरी चुकीचे झाले. कृपया याची खात्री करा की आपण आम्हाला तसे करण्यास परवानगी दिली आहे.", + "screenSharingFirefoxPermissionDeniedTitle": "अरेरे! आम्ही स्क्रीन सामायिकरण प्रारंभ करण्यास सक्षम नाही!", + "screenSharingPermissionDeniedError": "अरेरे! आपल्या स्क्रीन सामायिकरण विस्तार परवानग्यांसह काहीतरी चूक झाली. कृपया रीलोड करा आणि पुन्हा प्रयत्न करा.", + "sendPrivateMessage": "आपल्याला अलीकडे एक खाजगी संदेश प्राप्त झाला आहे. त्यास खाजगीरित्या उत्तर देण्याचा आपला हेतू होता की आपण आपला संदेश गटाला पाठवू इच्छिता?", + "sendPrivateMessageCancel": "गटाला पाठवा", + "sendPrivateMessageOk": "खाजगी पाठवा", + "sendPrivateMessageTitle": "खाजगी पाठवायचे?", + "serviceUnavailable": "सेवा अनुपलब्ध", + "sessTerminated": "कॉल संपुष्टात आला", + "shareVideoLinkError": "कृपया योग्य YouTube दुवा प्रदान करा.", + "shareVideoTitle": "एक व्हिडिओ सामायिक करा", + "shareYourScreen": "आपली स्क्रीन सामायिक करा", + "shareYourScreenDisabled": "स्क्रीन सामायिकरण अक्षम केले.", + "shareYourScreenDisabledForGuest": "अतिथी स्क्रीन सामायिकरण करू शकत नाहीत.", + "startLiveStreaming": "थेट प्रवाह सुरू करा", + "startRecording": "रेकॉर्डिंग प्रारंभ करा", + "startRemoteControlErrorMessage": "रिमोट कंट्रोल सत्र सुरू करण्याचा प्रयत्न करताना एक त्रुटी आली!", + "stopLiveStreaming": "थेट प्रवाह थांबवा", + "stopRecording": "रेकॉर्डिंग थांबवा", + "stopRecordingWarning": "आपली खात्री आहे की आपण रेकॉर्डिंग थांबवू इच्छिता?", + "stopStreamingWarning": "आपणास खात्री आहे की आपण थेट प्रवाह थांबवू इच्छिता?", + "streamKey": "थेट प्रवाह की", + "thankYou": "वापरल्याबद्दल धन्यवाद {{appName}}!", + "token": "टोकन", + "tokenAuthFailed": "क्षमस्व, आपणास या कॉलमध्ये सामील होण्याची परवानगी नाही.", + "tokenAuthFailedTitle": "प्रमाणीकरण अयशस्वी", + "transcribing": "लिप्यंतरण", + "unlockRoom": "मीटिंग काढा $t(lockRoomPassword)", + "userPassword": "user password", + "yourEntireScreen": "आपली संपूर्ण स्क्रीन" + }, + "documentSharing": { + "title": "सामायिक दस्तऐवज" + }, + "e2ee": { + "labelToolTip": "या बैठकीतील सर्व सहभागींनी एंड-टू-एंड एनक्रिप्शन सक्षम केले आहे" + }, + "feedback": { + "average": "सरासरी", + "bad": "वाईट", + "detailsLabel": " त्याबद्दल आम्हाला सांगा.", + "good": "चांगले", + "rateExperience": "आपल्या भेटीचा अनुभव रेट करा", + "veryBad": "फार वाईट", + "veryGood": "खुप छान" + }, + "helpView": { + "title": "मदत केंद्र" + }, + "incomingCall": { + "answer": "उत्तर", + "audioCallTitle": " कॉल येत आहे", + "decline": "काढून टाकणे", + "productLabel": "Jitsi Meet पासून", + "videoCallTitle": "येणारा व्हिडिओ कॉल" + }, + "info": { + "accessibilityLabel": "माहिती दर्शवा", + "addPassword": "जोडा $t(lockRoomPassword)", + "cancelPassword": " रद्द करा $t(lockRoomPassword)", + "conferenceURL": "दुवा:", + "country": "देश", + "dialANumber": "आपल्या संमेलनात सामील होण्यासाठी, यापैकी एक क्रमांक डायल करा आणि नंतर पिन प्रविष्ट करा.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "क्षमस्व, सध्या डायल करणे समर्थित नाही.", + "dialInNumber": "डायल-इन:", + "dialInSummaryError": "आता डायल-इन माहिती आणताना त्रुटी. कृपया पुन्हा प्रयत्न करा.", + "dialInTollFree": "कर मुक्त", + "genericError": "अरेरे, काहीतरी चूक झाली.", + "inviteLiveStream": "या सभेचा थेट प्रवाह पाहण्यासाठी, या दुव्यावर क्लिक करा: {{url}}", + "invitePhone": "त्याऐवजी फोनद्वारे सामील होण्यासाठी, हे टॅप करा:{{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "वेगळा डायल-इन नंबर शोधत आहात? \nमीटिंग डायल-इन नंबर पहा: {{url}}\n\n\nIf also dialing-in through a room phone, join without connecting to audio: {{silentUrl}}", + "inviteURLFirstPartGeneral": " आपल्याला बैठकीत सामील होण्यासाठी आमंत्रित केले आहे.", + "inviteURLFirstPartPersonal": "{{name}} आपल्याला मीटिंगसाठी आमंत्रित करीत आहे.\n", + "inviteURLSecondPart": "\nसभेमध्ये सामील व्हा:\n{{url}}\n", + "label": "संमेलनाची माहिती", + "liveStreamURL": "थेट प्रसारण:", + "moreNumbers": "अधिक संख्या", + "noNumbers": "डायल-इन नंबर नाहीत.", + "noPassword": "काहीही नाही", + "noRoom": "डायल-इन करण्यासाठी कोणतीही खोली निर्दिष्ट केलेली नाही.", + "numbers": "डायल-इन क्रमांक", + "password": "$t(lockRoomPasswordUppercase):", + "title": "सामायिक करा", + "tooltip": "या संमेलनासाठी दुवा आणि डायल-इन माहिती सामायिक करा" + }, + "inlineDialogFailure": { + "msg": "आम्ही जरा अडखळलो.", + "retry": "पुन्हा प्रयत्न करा", + "support": "आधार", + "supportMsg": "हे असेच होत राहिल्यास संपर्क साधा" + }, + "inviteDialog": { + "alertText": "काही सहभागींना आमंत्रित करण्यात अयशस्वी.", + "header": "आमंत्रित करा", + "searchCallOnlyPlaceholder": " फोन नंबर प्रविष्ट करा", + "searchPeopleOnlyPlaceholder": "सहभागींचा शोध घ्या", + "searchPlaceholder": "सहभागी किंवा फोन नंबर", + "send": "पाठवा" + }, + "keyboardShortcuts": { + "focusLocal": "आपल्या व्हिडिओवर लक्ष द्या", + "focusRemote": "दुसर्‍या व्यक्तीच्या व्हिडिओवर लक्ष द्या", + "fullScreen": "पूर्ण स्क्रीन पहा किंवा बाहेर पडा", + "keyboardShortcuts": "कीबोर्ड शॉर्टकट", + "localRecording": "स्थानिक रेकॉर्डिंग नियंत्रणे दर्शवा किंवा लपवा", + "mute": "आपला मायक्रोफोन नि: शब्द करा किंवा सशब्द करा", + "pushToTalk": "बोलण्यासाठी दाबा", + "raiseHand": "आपला हात वर करा किंवा कमी करा", + "showSpeakerStats": "स्पीकरची आकडेवारी दर्शवा", + "toggleChat": "गप्पा उघडा किंवा बंद करा", + "toggleFilmstrip": "व्हिडिओ लघुप्रतिमा दर्शवा किंवा लपवा", + "toggleScreensharing": "कॅमेरा आणि स्क्रीन सामायिकरण दरम्यान स्विच करा", + "toggleShortcuts": "कीबोर्ड शॉर्टकट दर्शवा किंवा लपवा", + "videoMute": "आपला कॅमेरा प्रारंभ करा किंवा थांबवा", + "videoQuality": "कॉल गुणवत्ता व्यवस्थापित करा" + }, + "liveStreaming": { + "busy": " आम्ही प्रवाह स्त्रोत मुक्त करण्याचे कार्य करीत आहोत. कृपया काही मिनिटांत पुन्हा प्रयत्न करा.", + "busyTitle": "सर्व स्ट्रीमर सध्या व्यस्त आहेत", + "changeSignIn": "खाती स्विच करा.", + "choose": "थेट प्रवाह निवडा", + "chooseCTA": "प्रवाह पर्याय निवडा. आपण सध्या म्हणून लॉग इन आहात {{email}}.", + "enterStreamKey": " येथे आपली YouTube थेट प्रवाह की प्रविष्ट करा.", + "error": "थेट प्रवाह अयशस्वी. कृपया पुन्हा प्रयत्न करा.", + "errorAPI": "आपल्या YouTube प्रसारणामध्ये प्रवेश करताना त्रुटी आली. कृपया पुन्हा लॉग इन करून पहा.", + "errorLiveStreamNotEnabled": "{{email}}. वर थेट प्रवाह सक्षम केलेले नाही. कृपया थेट प्रवाह सक्षम करा किंवा थेट प्रवाह सक्षम केलेल्या खात्यात लॉग इन करा", + "expandedOff": "थेट प्रवाह थांबला आहे", + "expandedOn": "या संमेलनाचे सध्या युट्यूबवर प्रसारण केले जात आहे.", + "expandedPending": "थेट प्रवाह सुरू केला जात आहे ", + "failedToStart": "थेट प्रवाह सुरू करण्यात अयशस्वी", + "getStreamKeyManually": "आम्ही कोणतेही थेट प्रवाह आणण्यात सक्षम नाही. YouTube वरून आपली थेट प्रवाह की मिळवण्याचा प्रयत्न करा.", + "googlePrivacyPolicy": "Google गोपनीयता धोरण", + "invalidStreamKey": "थेट प्रवाह की चुकीची असू शकते.", + "off": "थेट प्रवाह थांबला", + "offBy": "{{name}} थेट प्रवाह थांबविला", + "on": "थेट प्रवाह", + "onBy": "{{name}} थेट प्रवाह सुरू केला", + "pending": "थेट प्रवाह सुरू करत आहे…", + "serviceName": "थेट प्रवाह सेवा", + "signIn": "Google सह साइन इन करा", + "signInCTA": "YouTube वरून साइन इन करा किंवा आपली थेट प्रवाह की प्रविष्ट करा.", + "signOut": "साइन आउट करा", + "signedInAs": "आपण सध्या म्हणून साइन इन केले आहे:", + "start": "थेट प्रवाह सुरू करा", + "streamIdHelp": "हे काय आहे?", + "title": "थेट प्रसारण", + "unavailableTitle": "थेट प्रवाह अनुपलब्ध", + "youtubeTerms": "YouTube सेवा अटी" + }, + "localRecording": { + "clientState": { + "off": "बंद", + "on": "चालू", + "unknown": "अज्ञात" + }, + "dialogTitle": "स्थानिक रेकॉर्डिंग नियंत्रणे", + "duration": "कालावधी", + "durationNA": "N/A", + "encoding": "एन्कोडिंग", + "label": "LOR", + "labelToolTip": "स्थानिक रेकॉर्डिंग गुंतलेली आहे", + "localRecording": "स्थानिक रेकॉर्डिंग", + "me": "Me", + "messages": { + "engaged": "स्थानिक रेकॉर्डिंग व्यस्त", + "finished": " रेकॉर्डिंग सत्र {{token}} . समाप्त. कृपया रेकॉर्ड केलेली फाईल नियंत्रकावर पाठवा.", + "finishedModerator": "रेकॉर्डिंग सत्र {{token}}. समाप्त. लोकल ट्रॅकचे रेकॉर्डिंग सेव्ह केले गेले आहे. कृपया इतर सहभागींना त्यांचे रेकॉर्डिंग सबमिट करण्यास सांगा.", + "notModerator": "आपण नियंत्रक नाही. आपण स्थानिक रेकॉर्डिंग प्रारंभ करू किंवा थांबवू शकत नाही." + }, + "moderator": "नियंत्रक", + "no": "No", + "participant": "नियंत्रक", + "participantStats": "सहभागी आकडेवारी", + "sessionToken": "सत्र टोकन", + "start": "रेकॉर्डिंग प्रारंभ करा", + "stop": "रेकॉर्डिंग थांबवा", + "yes": "होय" + }, + "lockRoomPassword": "संकेतशब्द", + "lockRoomPasswordUppercase": "संकेतशब्द", + "lonelyMeetingExperience": { + "button": "इतरांना आमंत्रित करा", + "youAreAlone": "आपण सभेत एकटाच आहात" + }, + "me": "मी", + "notify": { + "OldElectronAPPTitle": "सुरक्षा असुरक्षा!", + "connectedOneMember": "{{name}} बैठकीत सामील झाले", + "connectedThreePlusMembers": "{{name}} आणि {{count}} इतर बैठकीत सामील झाले", + "connectedTwoMembers": "{{first}} आणि {{second}} बैठकीत सामील झाले", + "disconnected": "डिस्कनेक्ट झाले", + "focus": "परिषद लक्ष", + "focusFail": "{{component}} उपलब्ध नाही - पुन्हा प्रयत्न करा {{ms}} सेकंद", + "grantedTo": "नियंत्रक अधिकार यांना दिले {{to}}!", + "invitedOneMember": "{{name}}आमंत्रित केले गेले आहे", + "invitedThreePlusMembers": "{{name}} आणि {{count}} इतरांना आमंत्रित केले गेले आहे", + "invitedTwoMembers": "{{first}} आणि {{second}} आमंत्रित केले गेले आहे", + "kickParticipant": "{{kicked}} was kicked by {{kicker}}", + "me": "Me", + "moderator": "नियंत्रक अधिकार मंजूर!", + "muted": "आपण संभाषण निःशब्द केले आहे.", + "mutedRemotelyDescription": "आपण बोलण्यास तयार असता तेव्हा आपण नेहमी सशब्द करू शकता. आपण संमेलनापासून आवाज दूर ठेवण्यासाठी पूर्ण झाल्यावर परत नि: शब्द करा.", + "mutedRemotelyTitle": "आपण द्वारे निःशब्द केले गेले आहे {{participantDisplayName}}!", + "mutedTitle": "आपण निःशब्द आहात!", + "newDeviceAction": "वापरा", + "newDeviceAudioTitle": "नवीन ऑडिओ डिव्हाइस आढळले", + "newDeviceCameraTitle": "नवीन कॅमेरा आढळला", + "oldElectronClientDescription1": "आपण सुरक्षा असुरक्षा ज्ञात असलेल्या जितसी मीट क्लायंटची जुनी आवृत्ती वापरत असल्याचे दिसून येत आहे. कृपया आमच्याकडे आपण अद्यतनित असल्याची खात्री करा", + "oldElectronClientDescription2": "नवीनतम बिल्ड", + "oldElectronClientDescription3": " आता!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) दुसर्‍या सहभागीने काढले", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) दुसर्‍या सहभागीने सेट केलेले", + "raisedHand": "{{name}} बोलायला आवडेल.", + "somebody": "कुणीतरी", + "startSilentDescription": "ऑडिओ सक्षम करण्यासाठी संमेलनात पुन्हा सामील व्हा", + "startSilentTitle": "आपण ऑडिओ आउटपुटसह सामील झालात!", + "suboptimalBrowserWarning": " आम्हाला भीती वाटते की येथे आपल्या भेटीचा अनुभव इतका उत्कृष्ट होणार नाही. आम्ही यामध्ये सुधारणा करण्याचे मार्ग शोधत आहोत, परंतु तोपर्यंत कृपया त्यापैकी एक वापरून पहा fully supported browsers.", + "suboptimalExperienceTitle": "ब्राउझर चेतावणी", + "unmute": "सशब्द करा" + }, + "passwordDigitsOnly": " पर्यंत {{number}} अंक", + "passwordSetRemotely": "दुसर्‍या सहभागीने सेट केलेले", + "polls": { + "errors": { + "notUniqueOption": "पर्याय अद्वितीय असणे आवश्यक आहे" + } + }, + "poweredby": "द्वारा समर्थित", + "prejoin": { + "audioAndVideoError": "ऑडिओ आणि व्हिडिओ त्रुटी:", + "audioOnlyError": "ऑडिओ त्रुटी:", + "audioTrackError": "ऑडिओ ट्रॅक तयार करू शकलो नाही.", + "callMe": "मला कॉल करा", + "callMeAtNumber": "मला या नंबरवर कॉल करा:", + "calling": "कॉल करीत आहे", + "configuringDevices": "डिव्हाइस कॉन्फिगर करीत आहे…", + "connectedWithAudioQ": "आपण ऑडिओशी कनेक्ट आहात?", + "copyAndShare": "मीटिंगचा दुवा कॉपी आणि सामायिक करा", + "dialInMeeting": "बैठकीत डायल करा", + "dialInPin": "संमेलनात डायल करा आणि पिन कोड प्रविष्ट करा:", + "dialing": "डायल करत आहे", + "iWantToDialIn": "मला डायल करायचे आहे", + "initiated": "कॉल सुरू झाला", + "joinAudioByPhone": "फोन ऑडिओसह सामील व्हा", + "joinMeeting": "बैठकीत सामील व्हा", + "joinWithoutAudio": "ऑडिओशिवाय सामील व्हा", + "linkCopied": "क्लिपबोर्डवर दुवा कॉपी केला", + "lookGood": "स्पीकर आणि मायक्रोफोन चांगले दिसतात", + "or": "किंवा", + "screenSharingError": "स्क्रीन सामायिकरण त्रुटी:", + "startWithPhone": "फोन ऑडिओसह प्रारंभ करा", + "videoOnlyError": "व्हिडिओ त्रुटी:", + "videoTrackError": "व्हिडिओ ट्रॅक तयार करू शकलो नाही.", + "viewAllNumbers": "सर्व संख्या पहा" + }, + "presenceStatus": { + "busy": "व्यस्त", + "calling": "कॉल करीत आहे…", + "connected": "जोडलेले", + "connecting": "कनेक्ट करीत आहे…", + "connecting2": "कनेक्ट करीत आहे…", + "disconnected": "डिस्कनेक्ट केलेले", + "expired": "कालबाह्य", + "ignored": "दुर्लक्षित", + "initializingCall": "कॉल प्रारंभ करीत आहे…", + "invited": "आमंत्रित केले", + "rejected": "नाकारले", + "ringing": "रिंग होत आहे…" + }, + "profile": { + "setDisplayNameLabel": " आपले प्रदर्शन नाव सेट करा", + "setEmailInput": "ई-मेल प्रविष्ट करा", + "setEmailLabel": "आपला गुरुतर ईमेल सेट करा", + "title": "प्रोफाइल" + }, + "raisedHand": "बोलायला आवडेल", + "recording": { + "authDropboxText": " ड्रॉपबॉक्सवर अपलोड करा", + "availableSpace": "उपलब्ध जागा: {{spaceLeft}} MB (approximately {{duration}} रेकॉर्डिंग मिनिटे)", + "beta": "BETA", + "busy": "आम्ही रेकॉर्डिंग संसाधने मुक्त करण्यावर कार्य करीत आहोत. कृपया काही मिनिटांत पुन्हा प्रयत्न करा.", + "busyTitle": "सर्व रेकॉर्डर सध्या व्यस्त आहेत", + "error": "रेकॉर्डिंग अयशस्वी. कृपया पुन्हा प्रयत्न करा.", + "expandedOff": "रेकॉर्डिंग थांबले आहे", + "expandedOn": "सभेची नोंद सध्या घेतली जात आहे.", + "expandedPending": "रेकॉर्डिंग सुरू केले जात आहे…", + "failedToStart": "रेकॉर्डिंग सुरू करण्यात अयशस्वी", + "fileSharingdescription": "मीटिंगमधील सहभागींसह रेकॉर्डिंग सामायिक करा", + "live": "LIVE", + "loggedIn": "म्हणून लॉग इन केले {{userName}}", + "off": "रेकॉर्डिंग थांबले", + "offBy": "{{name}} रेकॉर्डिंग थांबविले", + "on": "Recording", + "onBy": "{{name}} रेकॉर्डिंग सुरू केले", + "pending": "मीटिंग रेकॉर्ड करण्याची तयारी करत आहे…", + "rec": "REC", + "serviceDescription": "आपले रेकॉर्डिंग रेकॉर्डिंग सेवेद्वारे जतन केले जाईल", + "serviceName": "रेकॉर्डिंग सेवा", + "signIn": "साइन इन करा", + "signOut": "साइन आउट करा", + "title": "मुद्रित करणे", + "unavailable": " अरेरे! {{serviceName}} currently सध्या अनुपलब्ध आहे. आम्ही या समस्येचे निराकरण करण्याचे काम करीत आहोत. कृपया पुन्हा प्रयत्न करा.", + "unavailableTitle": "रेकॉर्डिंग अनुपलब्ध" + }, + "sectionList": { + "pullToRefresh": "रीफ्रेश करण्यासाठी खेचा" + }, + "settings": { + "calendar": { + "about": " {{appName}} कॅलेंडर समाकलन सुरक्षितपणे आपल्या कॅलेंडरमध्ये प्रवेश करण्यासाठी वापरले जाते जेणेकरून ते आगामी कार्यक्रम वाचू शकतील.", + "disconnect": "डिस्कनेक्ट करा", + "microsoftSignIn": "मायक्रोसॉफ्ट सह साइन इन करा", + "signedIn": "सध्या {{email}} साठी कॅलेंडर इव्हेंटमध्ये प्रवेश करत आहे. कॅलेंडर इव्हेंटमध्ये प्रवेश करणे थांबविण्यासाठी खालील डिस्कनेक्ट बटणावर क्लिक करा", + "title": "कॅलेंडर" + }, + "devices": "उपकरणे", + "followMe": "प्रत्येकजण माझ्या मागे येतो", + "language": "भाषा", + "loggedIn": "{{name}} म्हणून लॉग इन केले", + "microphones": "मायक्रोफोन", + "moderator": "नियंत्रक", + "more": "अधिक", + "name": "नाव", + "noDevice": "काहीही नाही", + "selectAudioOutput": "ऑडिओ आउटपुट", + "selectCamera": "कॅमेरा", + "selectMic": "मायक्रोफोन", + "speakers": "स्पीकर्स", + "startAudioMuted": " प्रत्येकजण निःशब्द होतो", + "startVideoMuted": "प्रत्येकजण दडलेला सुरू होतो", + "title": "सेटिंग्ज" + }, + "settingsView": { + "advanced": "प्रगत", + "alertOk": "ठीक आहे", + "alertTitle": "चेतावणी", + "alertURLText": "प्रविष्ट केलेली सर्व्हर URL अवैध आहे", + "buildInfoSection": "बिल्ड माहिती", + "conferenceSection": "परिषद", + "disableCallIntegration": "नेटिव्ह कॉल एकत्रीकरण अक्षम करा", + "disableP2P": " पीअर-टू-पीअर मोड अक्षम करा", + "displayName": " नाव प्रदर्शन", + "email": "ईमेल", + "header": "सेटिंग्ज", + "profileSection": "प्रोफाइल", + "serverURL": "सर्व्हर URL", + "showAdvanced": "प्रगत सेटिंग्ज दर्शवा", + "startWithAudioMuted": "ऑडिओ नि: शब्द सह प्रारंभ करा", + "startWithVideoMuted": "निःशब्द व्हिडिओसह प्रारंभ करा", + "version": "आवृत्ती" + }, + "share": { + "dialInfoText": "\n\n=====\n\nफक्त आपल्या फोनवर डायल करू इच्छिता?\n\n{{defaultDialInNumber}} या संमेलनासाठी फोन नंबर डायल पाहण्यासाठी या दुव्यावर क्लिक करा\n{{dialInfoPageUrl}}", + "mainText": "संमेलनात सामील होण्यासाठी खालील दुव्यावर क्लिक करा:\n{{roomUrl}}" + }, + "speaker": "स्पीकर", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "नाव", + "search": "शोधा", + "searchHint": "सहभागी शोधा", + "seconds": "{{count}}s", + "speakerStats": "स्पीकर आकडेवारी", + "speakerTime": "स्पीकर वेळ" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} आपला मायक्रोफोन आणि कॅमेरा वापरण्याची आवश्यकता आहे." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "पुन्हा जॉइन करा", + "text": " पुन्हा कनेक्ट करण्यासाठी Rejoin बटण दाबा.", + "title": "आपला व्हिडिओ कॉल व्यत्यय आला कारण हा संगणक झोपायला गेला." + }, + "toolbar": { + "Settings": "सेटिंग्ज", + "accessibilityLabel": {}, + "addPeople": "आपल्या कॉलमध्ये लोकांना जोडा", + "audioOnlyOff": "कमी बँडविड्थ मोड अक्षम करा", + "audioOnlyOn": "कमी बँडविड्थ मोड सक्षम करा", + "audioRoute": "ध्वनी यंत्र निवडा", + "authenticate": "प्रमाणित करा", + "callQuality": "व्हिडिओ गुणवत्ता व्यवस्थापित करा", + "chat": "गप्पा / बंद करा उघडा", + "closeChat": "गप्पा बंद करा", + "documentClose": "सामायिक दस्तऐवज बंद करा", + "documentOpen": "सामायिक दस्तऐवज उघडा", + "download": "आमचे अ‍ॅप्स डाउनलोड करा", + "e2ee": "एंड-टू-एंड एनक्रिप्शन", + "enterFullScreen": "पूर्ण स्क्रीन पहा", + "enterTileView": "टाइल दृश्य प्रविष्ट करा", + "exitFullScreen": "पूर्ण स्क्रीनमधून बाहेर पडा", + "exitTileView": "बाहेर पडा टाइल दृश्य", + "feedback": "अभिप्राय द्या", + "hangup": "सोडा", + "help": "मदत करा", + "invite": "लोकांना आमंत्रित करा", + "login": "लॉगिन", + "logout": "बाहेर पडणे", + "lowerYourHand": "बाहेर पडणे", + "moreActions": "अधिक क्रिया", + "moreOptions": "अधिक पर्याय", + "mute": "नि: शब्द / सशब्द करा", + "muteEveryone": "सर्वांना नि: शब्द करा", + "noAudioSignalDesc": "आपण सिस्टम सेटिंग्ज किंवा हार्डवेअरवरून हेतुपुरस्सर नि: शब्द न केल्यास, डिव्हाइस बदलण्याचा विचार करा.", + "noAudioSignalDescSuggestion": "आपण सिस्टम सेटिंग्ज किंवा हार्डवेअरवरून हेतुपुरस्सर नि: शब्द न केल्यास, सूचित डिव्हाइसवर स्विच करण्याचा विचार करा.", + "noAudioSignalDialInDesc": "आपण हे वापरून डायल-इन देखील करू शकता:", + "noAudioSignalDialInLinkDesc": "डायल-इन क्रमांक", + "noAudioSignalTitle": "आपल्या माइकवरून कोणतेही इनपुट येत नाही!", + "noisyAudioInputDesc": "आपला मायक्रोफोन आवाज देत असल्यासारखे दिसत आहे, कृपया डिव्हाइस नि: शब्द करणे किंवा बदलणे याचा विचार करा.", + "noisyAudioInputTitle": "आपला मायक्रोफोन गोंगाट करणारा दिसत आहे!", + "openChat": "खुली गप्पा", + "pip": "पिक्चर-इन-पिक्चर मोड प्रविष्ट करा", + "privateMessage": "खाजगी संदेश पाठवा", + "profile": "आपले प्रोफाइल संपादित करा", + "raiseHand": "हात वर करा / कमी करा", + "raiseYourHand": "तुझा हात वर कर", + "shareRoom": "एखाद्यास आमंत्रित करा", + "sharedvideo": "एक YouTube व्हिडिओ सामायिक करा", + "shortcuts": "शॉर्टकट पहा", + "speakerStats": "स्पीकर आकडेवारी", + "startScreenSharing": "स्क्रीन सामायिकरण प्रारंभ करा", + "startSubtitles": "उपशीर्षके प्रारंभ करा", + "startvideoblur": "माझी पार्श्वभूमी अस्पष्ट करा", + "stopScreenSharing": "स्क्रीन सामायिकरण थांबवा", + "stopSharedVideo": "YouTube व्हिडिओ थांबवा", + "stopSubtitles": "उपशीर्षके थांबवा", + "stopvideoblur": "पार्श्वभूमी डाग अक्षम करा", + "talkWhileMutedPopup": "बोलण्याचा प्रयत्न करीत आहात? आपण निःशब्द आहात.", + "tileViewToggle": "टाइल दृश्य टॉगल करा", + "toggleCamera": "टॉगल कॅमेरा", + "videomute": "कॅमेरा प्रारंभ / थांबवा" + }, + "transcribing": { + "ccButtonTooltip": "उपशीर्षके प्रारंभ / थांबवा", + "error": "लिप्यंतरण अयशस्वी. कृपया पुन्हा प्रयत्न करा.", + "expandedLabel": "लिप्यंतरण चालू आहे", + "failedToStart": "लिप्यंतरण सुरू करण्यात अयशस्वी", + "labelToolTip": "सभेचे प्रतिलेखन केले जात आहे", + "off": "लिप्यंतरण थांबविले", + "pending": "संमेलनाची नक्कल करण्याची तयारी करत आहे…", + "start": "उपशीर्षके दर्शविणे प्रारंभ करा", + "stop": "उपशीर्षके दर्शविणे थांबवा", + "tr": "टीआर" + }, + "userMedia": { + "grantPermissions": "कृपया आपला कॅमेरा आणि मायक्रोफोन वापरण्यास परवानगी द्या." + }, + "videoSIPGW": { + "busy": "आम्ही स्त्रोत मुक्त करण्याचे काम करत आहोत. कृपया काही मिनिटांत पुन्हा प्रयत्न करा.", + "busyTitle": " परिषद खोलीत सेवा सध्या व्यस्त आहे", + "errorAlreadyInvited": " {{displayName}} आधीच आमंत्रित आहे", + "errorInvite": "परिषद अद्याप स्थापन केलेली नाही. कृपया पुन्हा प्रयत्न करा.", + "errorInviteFailed": "आम्ही या समस्येचे निराकरण करण्याचे काम करीत आहोत. कृपया पुन्हा प्रयत्न करा.", + "errorInviteFailedTitle": "{{displayName}} आमंत्रित करणे अयशस्वी", + "errorInviteTitle": " परिषद खोलीत आमंत्रित करताना त्रुटी", + "pending": "{{displayName}} आमंत्रित केले गेले आहे" + }, + "videoStatus": { + "audioOnly": "एडीडी", + "audioOnlyExpanded": "आपण कमी बँडविड्थ मोडमध्ये आहात. या मोडमध्ये आपल्याला केवळ ऑडिओ आणि स्क्रीन सामायिकरण प्राप्त होईल.", + "callQuality": "व्हिडिओ गुणवत्ता", + "hd": "एचडी", + "hdTooltip": "उच्च परिभाषा व्हिडिओ पहात आहे", + "highDefinition": "उंच - व्याख्या", + "labelTooiltipNoVideo": "व्हिडिओ नाही", + "labelTooltipAudioOnly": "कमी बँडविड्थ मोड सक्षम", + "ld": "एलडी", + "ldTooltip": "निम्न परिभाषा व्हिडिओ पहात आहे", + "lowDefinition": "कमी व्याख्या", + "onlyAudioAvailable": "केवळ ऑडिओ उपलब्ध आहे", + "onlyAudioSupported": "आम्ही या ब्राउझरमध्ये केवळ ऑडिओचे समर्थन करतो.", + "p2pEnabled": "सरदार ते सरदार सक्षम", + "p2pVideoQualityDescription": "पीअर टू पीअर मोडमध्ये, प्राप्त व्हिडिओ गुणवत्ता केवळ उच्च आणि ऑडिओ दरम्यानच टॉगल केली जाऊ शकते. पीअर टू पीअर बाहेर येईपर्यंत इतर सेटिंग्जचा आदर केला जाणार नाही.", + "recHighDefinitionOnly": "उच्च परिभाषा पसंत करेल.", + "sd": "एसडी", + "sdTooltip": "मानक परिभाषा व्हिडिओ पहात आहे", + "standardDefinition": "मानक व्याख्या" + }, + "videothumbnail": { + "domute": "नि: शब्द करा", + "domuteOthers": "इतर सर्वांना नि: शब्द करा", + "flip": "फ्लिप", + "kick": "लाथा मारून बाहेर काढ", + "moderator": "नियंत्रक", + "mute": "सहभागी निःशब्द आहे", + "muted": "नि: शब्द केलेले", + "remoteControl": "रिमोट कंट्रोल प्रारंभ / थांबवा.", + "show": "रंगमंचावर दाखवा", + "videomute": "सहभागीने कॅमेरा थांबविला आहे" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "सामील होण्यासाठी टॅप करा", + "roomname": "खोलीचे नाव प्रविष्ट करा" + }, + "appDescription": " पुढे जा, संपूर्ण टीमसह व्हिडिओ चॅट करा. खरं तर, आपल्या ओळखीच्या प्रत्येकास आमंत्रित करा. {{app}} एक संपूर्ण एनक्रिप्टेड, 100% मुक्त स्रोत व्हिडिओ कॉन्फरन्सिंग समाधान आहे जे आपण दिवसभर, दररोज विनामूल्य वापरु शकता - कोणतेही खाते आवश्यक नाही.", + "audioVideoSwitch": { + "audio": "आवाज", + "video": "व्हिडिओ" + }, + "calendar": "कॅलेंडर", + "connectCalendarButton": "आपले कॅलेंडर कनेक्ट करा", + "connectCalendarText": "आपली सर्व सभा {{app}} in मध्ये पाहण्यासाठी कॅलेंडर कनेक्ट करा. तसेच, आपल्या कॅलेंडरमध्ये {{provider}} संमेलने जोडा आणि एका क्लिकने त्या प्रारंभ करा.", + "enterRoomTitle": "नवीन बैठक सुरू करा", + "getHelp": "Get help", + "go": "GO", + "goSmall": "GO", + "info": "माहिती", + "join": "तयार करा / सामील व्हा", + "privacy": "गोपनीयता", + "recentList": "अलीकडील", + "recentListDelete": "हटवा", + "recentListEmpty": "आपली अलीकडील यादी सध्या रिक्त आहे. आपल्या कार्यसंघाशी गप्पा मारा आणि आपल्याला आपल्या सर्व अलीकडील संमेलने येथे आढळतील.", + "reducedUIText": "{{App}} वर आपले स्वागत आहे!", + "roomNameAllowedChars": "संमेलनाच्या नावात यापैकी कोणतेही वर्ण नसावेत: ?, &, :, ', \", %, #.", + "roomname": "Enter room name", + "roomnameHint": "आपण सामील होऊ इच्छित असलेल्या खोलीचे नाव किंवा URL प्रविष्ट करा. आपण नाव लिहू शकता, आपण ज्यांना भेटत आहात त्या लोकांना हे कळू द्या जेणेकरुन ते समान नाव प्रविष्ट करा.", + "sendFeedback": "अभिप्राय पाठवा", + "terms": "अटी", + "title": "सुरक्षित, पूर्णपणे वैशिष्ट्यीकृत आणि पूर्णपणे विनामूल्य व्हिडिओ कॉन्फरन्सिंग" + } +} diff --git a/lang/main-nb.json b/lang/main-nb.json new file mode 100644 index 0000000..4aa731e --- /dev/null +++ b/lang/main-nb.json @@ -0,0 +1,1583 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "møtelink: {{url}}" + }, + "add": "Inviter", + "addContacts": "Inviter dine kontakter", + "contacts": "kontakter", + "copyInvite": "Kopier møteinvitasjon", + "copyLink": "Kopier møtelink", + "copyStream": "Kopier direktesending-lenke", + "countryNotSupported": "Vi støtter ikke denne destinasjonen ennå.", + "countryReminder": "Ringer du utenfor USA? Vennligst sørg for å starte med landskoden!", + "defaultEmail": "Din standard e-post", + "disabled": "Du kan ikke invitere folk.", + "failedToAdd": "Kunne ikke legge til deltakere", + "googleEmail": "Google e-post", + "inviteMoreHeader": "Du er den eneste i møtet", + "inviteMoreMailSubject": "Bli med i{{appName}} møtet", + "inviteMorePrompt": "Inviter flere personer", + "linkCopied": "Lenke kopiert til utklippstavlen", + "noResults": "Ingen treff på søket", + "outlookEmail": "Outlook e-post", + "phoneNumbers": "telefonnumre", + "searching": "Søker…", + "shareInvite": "Del møteinvitasjon", + "shareLink": "Del møtelinken for å invitere andre", + "shareStream": "Del direktesending-lenken", + "sipAddresses": "SIP-adresser", + "telephone": "Telefon: {{number}}", + "title": "Inviter folk til dette møtet", + "yahooEmail": "Yahoo e-post" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Lyd i bil", + "headphones": "Hodetelefoner", + "none": "Lydutstyr ikke tilgjengelig", + "phone": "Telefon", + "speaker": "Høyttaler" + }, + "audioOnly": { + "audioOnly": "Lav båndbredde" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "f.eks. 10000000 for 10 Mbps", + "assumedBandwidthBpsWarning": "Høyere verdier kan forårsake nettverksproblemer.", + "customValue": "Egendefinert verdi", + "customValueEffect": "For å sette den faktiske bps-verdien", + "leaveEmpty": "La stå tomt", + "leaveEmptyEffect": "For å tillate at estimater blir gjort", + "possibleValues": "Mulige verdier", + "setAssumedBandwidthBps": "Antatt båndbredde (bps)", + "title": "Båndbreddeinnstillinger", + "zeroEffect": "For å deaktivere video" + }, + "breakoutRooms": { + "actions": { + "add": "Legg til grupperom", + "autoAssign": "Automatisk tildeling til grupperom", + "close": "Lukk", + "join": "Bli med", + "leaveBreakoutRoom": "Forlat grupperom", + "more": "Mer", + "remove": "Fjern", + "rename": "Gi nytt navn", + "renameBreakoutRoom": "Gi nytt navn til grupperom", + "sendToBreakoutRoom": "Send deltaker til:" + }, + "breakoutList": "Grupperomsliste", + "buttonLabel": "Grupperom", + "defaultName": "Grupperom #{{index}}", + "hideParticipantList": "Skjul deltakerliste", + "mainRoom": "Hovedrom", + "notifications": { + "joined": "Bli med i \"{{name}}\" grupperom", + "joinedMainRoom": "Bli med i hovedrom", + "joinedTitle": "Grupperom" + }, + "showParticipantList": "Vis deltakerliste", + "title": "Grupperom" + }, + "calendarSync": { + "addMeetingURL": "Legg til en møtelenke", + "confirmAddLink": "Vil du legge til en Jitsi-lenke til denne hendelsen?", + "error": { + "appConfiguration": "Kalenderintegrasjonen er ikke riktig konfigurert.", + "generic": "En feil har oppstått. Sjekk kalenderinnstillingene dine eller prøv å oppdatere kalenderen.", + "notSignedIn": "En feil oppstod under autentisering for å se kalenderhendelser. Sjekk kalenderinnstillingene dine og prøv å logge inn igjen." + }, + "join": "Bli med", + "joinTooltip": "Bli med i møtet", + "nextMeeting": "Neste møte", + "noEvents": "Det er ingen planlagte kommende hendelser.", + "ongoingMeeting": "Pågående møte", + "permissionButton": "Åpne innstillinger", + "permissionMessage": "Kalendertillatelse er nødvendig for å se møtene dine i appen.", + "refresh": "Oppdater kalender", + "today": "I dag" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Velg lydenhet" + }, + "labels": { + "buttonLabel": "Bilmodus", + "title": "Bilmodus", + "videoStopped": "Videoen din er stoppet" + } + }, + "chat": { + "enter": "Gå inn i rommet", + "error": "Feil: meldingen din ble ikke sendt. Årsak: {{error}}", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Lobby-chatmelding til {{recipient}}", + "message": "Melding", + "messageAccessibleTitle": "{{user}} sier:", + "messageAccessibleTitleMe": "jeg sier:", + "messageTo": "Privat melding til {{recipient}}", + "messagebox": "Skriv en melding", + "newMessages": "Nye meldinger", + "nickname": { + "popover": "Velg et kallenavn", + "title": "Skriv inn et kallenavn for å bruke chatten", + "titleWithPolls": "Skriv inn et kallenavn for å bruke chatten og avstemninger" + }, + "noMessagesMessage": "Det er ingen meldinger i møtet ennå. Start en samtale her!", + "privateNotice": "Privat melding til {{recipient}}", + "sendButton": "Send", + "smileysPanel": "Emoji-panel", + "systemDisplayName": "System", + "tabs": { + "chat": "Chat", + "polls": "Avstemninger" + }, + "title": "Chat", + "titleWithPolls": "Chat og avstemninger", + "you": "du" + }, + "chromeExtensionBanner": { + "buttonText": "Installer Chrome-utvidelse", + "buttonTextEdge": "Installer Edge-utvidelse", + "close": "Lukk", + "dontShowAgain": "Ikke vis dette igjen", + "installExtensionText": "Installer utvidelsen for integrasjon med Google Kalender og Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Kobler deg til møtet…" + }, + "connection": { + "ATTACHED": "Tilkoblet", + "AUTHENTICATING": "Autentiserer", + "AUTHFAIL": "Autentisering mislyktes", + "CONNECTED": "Tilkoblet", + "CONNECTING": "Kobler til", + "CONNFAIL": "Tilkobling mislyktes", + "DISCONNECTED": "Frakoblet", + "DISCONNECTING": "Kobler fra", + "ERROR": "Feil", + "FETCH_SESSION_ID": "Henter sesjons-ID…", + "GET_SESSION_ID_ERROR": "Feil ved henting av sesjons-ID: {{code}}", + "GOT_SESSION_ID": "Henting av sesjons-ID fullført", + "LOW_BANDWIDTH": "Videoen til {{displayName}} er slått av for å spare båndbredde" + }, + "connectionindicator": { + "address": "Adresse:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Estimert båndbredde:", + "bitrate": "Bithastighet:", + "bridgeCount": "Antall servere: ", + "codecs": "Kodeker (A/V): ", + "connectedTo": "Tilkoblet til:", + "e2eeVerified": "E2EE verifisert:", + "framerate": "Bildefrekvens:", + "less": "Vis mindre", + "localaddress": "Lokal adresse:", + "localaddress_plural": "Lokale adresser:", + "localport": "Lokal port:", + "localport_plural": "Lokale porter:", + "maxEnabledResolution": "send maks", + "more": "Vis mer", + "no": "nei", + "packetloss": "Pakktap:", + "participant_id": "Deltaker-ID:", + "quality": { + "good": "Bra", + "inactive": "Inaktiv", + "lost": "Tapt", + "nonoptimal": "Ikke optimal", + "poor": "Dårlig" + }, + "remoteaddress": "Ekstern adresse:", + "remoteaddress_plural": "Eksterne adresser:", + "remoteport": "Ekstern port:", + "remoteport_plural": "Eksterne porter:", + "resolution": "Oppløsning:", + "savelogs": "Lagre logger", + "status": "Tilkobling:", + "transport": "Transport:", + "transport_plural": "Transporter:", + "video_ssrc": "Video SSRC:", + "yes": "ja" + }, + "dateUtils": { + "earlier": "Tidligere", + "today": "I dag", + "yesterday": "I går" + }, + "deepLinking": { + "appNotInstalled": "Du trenger mobilappen {{app}} for å bli med i dette møtet på telefonen.", + "description": "Ingenting skjedde? Vi prøvde å starte møtet ditt i {{app}} skrivebordsappen. Prøv igjen eller åpne det i {{app}} nettappen.", + "descriptionNew": "Ingenting skjedde? Vi prøvde å starte møtet ditt i {{app}} skrivebordsappen.

Du kan prøve igjen eller åpne det i nettleseren.", + "descriptionWithoutWeb": "Ingenting skjedde? Vi prøvde å starte møtet ditt i {{app}} skrivebordsappen.", + "downloadApp": "Last ned appen", + "downloadMobileApp": "Last ned fra App Store", + "ifDoNotHaveApp": "Hvis du ikke har appen ennå:", + "ifHaveApp": "Hvis du allerede har appen:", + "joinInApp": "Bli med i dette møtet ved å bruke appen", + "joinInAppNew": "Bli med i appen", + "joinInBrowser": "Bli med i nettleseren", + "launchMeetingLabel": "Hvordan vil du bli med i dette møtet?", + "launchWebButton": "Start i nettleseren", + "noDesktopApp": "Har du ikke appen?", + "noMobileApp": "Har du ikke appen?", + "or": "ELLER", + "termsAndConditions": "Ved å fortsette godtar du våre vilkår og betingelser.", + "title": "Starter møtet ditt i {{app}}…", + "titleNew": "Starter møtet ditt…", + "tryAgainButton": "Prøv igjen på skrivebordet", + "unsupportedBrowser": "Det ser ut som om du bruker en nettleser vi ikke støtter." + }, + "defaultLink": "f.eks. {{url}}", + "defaultNickname": "f.eks. Jane Pink", + "deviceError": { + "cameraError": "Kunne ikke få tilgang til kameraet ditt", + "cameraPermission": "Feil ved innhenting av kameratilgang", + "microphoneError": "Kunne ikke få tilgang til mikrofonen din", + "microphonePermission": "Feil ved innhenting av mikrofontillatelse" + }, + "deviceSelection": { + "hid": { + "callControl": "Samtalekontroll", + "connectedDevices": "Tilkoblede enheter:", + "deleteDevice": "Slett enhet", + "pairDevice": "Koble til enhet" + }, + "noPermission": "Tillatelse ikke gitt", + "previewUnavailable": "Forhåndsvisning ikke tilgjengelig", + "selectADevice": "Velg en enhet", + "testAudio": "Test" + }, + "dialIn": { + "screenTitle": "Sammendrag av innringing" + }, + "dialOut": { + "statusMessage": "er nå {{status}}" + }, + "dialog": { + "Back": "Tilbake", + "Cancel": "Avbryt", + "IamHost": "Logg inn", + "Ok": "OK", + "Remove": "Fjern", + "Share": "Del", + "Submit": "Send inn", + "WaitForHostMsg": "Konferansen har ikke startet ennå fordi ingen moderatorer har ankommet. Hvis du vil bli moderator, vennligst logg inn. Ellers, vennligst vent.", + "WaitForHostNoAuthMsg": "Konferansen har ikke startet ennå fordi ingen moderatorer har ankommet. Vennligst vent.", + "WaitingForHostButton": "Vent på moderator", + "WaitingForHostTitle": "Venter på en moderator…", + "Yes": "Ja", + "accessibilityLabel": { + "Cancel": "Avbryt (forlat dialog)", + "Ok": "OK (lagre og forlat dialog)", + "close": "Lukk dialog", + "liveStreaming": "Direktesending", + "sharingTabs": "Delingsalternativer" + }, + "add": "Legg til", + "addMeetingNote": "Legg til en notat om dette møtet", + "addOptionalNote": "Legg til en notat (valgfritt):", + "allow": "Tillat", + "allowToggleCameraDialog": "Tillater du at {{initiatorName}} bytter kameramodus?", + "allowToggleCameraTitle": "Tillat bytte av kamera?", + "alreadySharedVideoMsg": "En annen deltaker deler allerede en video. Denne konferansen tillater kun én delt video om gangen.", + "alreadySharedVideoTitle": "Kun én delt video er tillatt om gangen", + "applicationWindow": "Programvindu", + "authenticationRequired": "Autentisering kreves", + "cameraConstraintFailedError": "Kameraet ditt oppfyller ikke noen av de nødvendige kravene.", + "cameraNotFoundError": "Kamera ble ikke funnet.", + "cameraNotSendingData": "Vi kan ikke få tilgang til kameraet ditt. Sjekk om en annen applikasjon bruker denne enheten, velg en annen enhet i innstillingene eller prøv å laste inn applikasjonen på nytt.", + "cameraNotSendingDataTitle": "Kan ikke få tilgang til kameraet", + "cameraPermissionDeniedError": "Du har ikke gitt tillatelse til å bruke kameraet ditt. Du kan fortsatt bli med i konferansen, men andre vil ikke se deg. Bruk kameraknappen i adressefeltet for å fikse dette.", + "cameraTimeoutError": "Kunne ikke starte videokilden. Tidsavbrudd oppstod!", + "cameraUnknownError": "Kan ikke bruke kameraet av en ukjent grunn.", + "cameraUnsupportedResolutionError": "Kameraet ditt støtter ikke den nødvendige videooppløsningen.", + "close": "Lukk", + "conferenceDisconnectMsg": "Sjekk nettverkstilkoblingen din. Prøver å koble til igjen om {{seconds}} sekunder…", + "conferenceDisconnectTitle": "Du har blitt frakoblet.", + "conferenceReloadMsg": "Vi prøver å fikse dette. Prøver å koble til igjen om {{seconds}} sekunder…", + "conferenceReloadTitle": "Dessverre oppstod det en feil.", + "confirm": "Bekreft", + "confirmNo": "Nei", + "confirmYes": "Ja", + "connectError": "Oops! Noe gikk galt, og vi kunne ikke koble til konferansen.", + "connectErrorWithMsg": "Oops! Noe gikk galt, og vi kunne ikke koble til konferansen: {{msg}}", + "connecting": "Kobler til", + "contactSupport": "Kontakt brukerstøtte", + "copied": "Kopiert", + "copy": "Kopier", + "demoteParticipantDialog": "Er du sikker på at du vil flytte denne deltakeren til seer?", + "demoteParticipantTitle": "Flytt til seer", + "dismiss": "Avvis", + "displayNameRequired": "Hei! Hva heter du?", + "done": "Ferdig", + "e2eeDescription": "Ende-til-ende-kryptering er for øyeblikket EKSPERIMENTELL. Husk at aktivering av ende-til-ende-kryptering vil deaktivere serverbaserte tjenester som for eksempel telefon-deltakelse. Husk også at møtet kun vil fungere for brukere som deltar fra nettlesere som støtter innsettbare strømmer.", + "e2eeDisabledDueToMaxModeDescription": "Kan ikke aktivere ende-til-ende-kryptering på grunn av et stort antall deltakere i konferansen.", + "e2eeLabel": "Aktiver ende-til-ende-kryptering", + "e2eeWarning": "ADVARSEL: Ikke alle deltakere i dette møtet ser ut til å støtte ende-til-ende-kryptering. Hvis du aktiverer det, vil de verken kunne se eller høre deg.", + "e2eeWillDisableDueToMaxModeDescription": "ADVARSEL: Ende-til-ende-kryptering vil automatisk bli deaktivert hvis flere deltakere blir med i konferansen.", + "embedMeeting": "Bygg inn møte", + "enterDisplayName": "Skriv inn navnet ditt", + "error": "Feil", + "errorRoomCreationRestriction": "Du prøvde å bli med for raskt, vennligst prøv igjen om litt.", + "gracefulShutdown": "Tjenesten vår er for øyeblikket nede for vedlikehold. Prøv igjen senere.", + "grantModeratorDialog": "Er du sikker på at du vil gi moderatorrettigheter til {{participantName}}?", + "grantModeratorTitle": "Gi moderatorrettigheter", + "hide": "Skjul", + "hideShareAudioHelper": "Ikke vis denne dialogen igjen", + "incorrectPassword": "Feil brukernavn eller passord", + "incorrectRoomLockPassword": "Feil passord", + "internalError": "Oops! Noe gikk galt. Følgende feil oppstod: {{error}}", + "internalErrorTitle": "Intern feil", + "kickMessage": "Du kan kontakte {{participantDisplayName}} for mer informasjon.", + "kickParticipantButton": "Fjern", + "kickParticipantDialog": "Er du sikker på at du vil fjerne denne deltakeren?", + "kickParticipantTitle": "Fjern denne deltakeren?", + "kickSystemTitle": "Oi! Du ble kastet ut av møtet", + "kickTitle": "Oi! {{participantDisplayName}} kastet deg ut av møtet", + "linkMeeting": "Koble møte", + "linkMeetingTitle": "Koble møtet til Salesforce", + "liveStreaming": "Direktesending", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ikke mulig mens opptak er aktivt", + "localUserControls": "Lokale brukerkontroller", + "lockMessage": "Kunne ikke låse konferansen.", + "lockRoom": "Legg til møtets $t(lockRoomPassword)", + "lockTitle": "Låsing mislyktes", + "login": "Logg inn", + "loginQuestion": "Er du sikker på at du vil logge inn og forlate konferansen?", + "logoutQuestion": "Er du sikker på at du vil logge ut og forlate konferansen?", + "logoutTitle": "Logg ut", + "maxUsersLimitReached": "Grensen for maksimalt antall deltakere er nådd. Konferansen er full. Vennligst kontakt møtearrangøren eller prøv igjen senere!", + "maxUsersLimitReachedTitle": "Maksimalt deltakerantall nådd", + "micConstraintFailedError": "Mikrofonen din oppfyller ikke noen av de nødvendige kravene.", + "micNotFoundError": "Mikrofonen ble ikke funnet.", + "micNotSendingData": "Gå til datamaskinens innstillinger for å slå på mikrofonen og justere nivået", + "micNotSendingDataTitle": "Mikrofonen din er dempet av systeminnstillingene", + "micPermissionDeniedError": "Du har ikke gitt tillatelse til å bruke mikrofonen din. Du kan fortsatt delta i konferansen, men andre vil ikke høre deg. Bruk kameraknappen i adressefeltet for å fikse dette.", + "micTimeoutError": "Kunne ikke starte lydkilden. Tidsavbrudd oppstod!", + "micUnknownError": "Kan ikke bruke mikrofonen av en ukjent grunn.", + "moderationAudioLabel": "Tillat deltakere å slå på lyden selv", + "moderationVideoLabel": "Tillat deltakere å starte videoen sin", + "muteEveryoneDialog": "Deltakerne kan slå på lyden sin når som helst.", + "muteEveryoneDialogModerationOn": "Deltakerne kan sende en forespørsel om å få snakke når som helst.", + "muteEveryoneElseDialog": "Når de er dempet, kan du ikke slå på lyden for dem, men de kan gjøre det selv når som helst.", + "muteEveryoneElseTitle": "Demp alle unntatt {{whom}}?", + "muteEveryoneElsesVideoDialog": "Når kameraet er deaktivert, kan du ikke slå det på igjen, men deltakerne kan gjøre det selv når som helst.", + "muteEveryoneElsesVideoTitle": "Stopp alles video unntatt {{whom}}?", + "muteEveryoneSelf": "deg selv", + "muteEveryoneStartMuted": "Alle starter dempet fra nå av", + "muteEveryoneTitle": "Demp alle?", + "muteEveryonesVideoDialog": "Deltakerne kan slå på videoen sin når som helst.", + "muteEveryonesVideoDialogModerationOn": "Deltakerne kan sende en forespørsel om å slå på videoen når som helst.", + "muteEveryonesVideoDialogOk": "Deaktiver", + "muteEveryonesVideoTitle": "Stopp alles video?", + "muteParticipantBody": "Du kan ikke slå på lyden for dem, men de kan gjøre det selv når som helst.", + "muteParticipantButton": "Demp", + "muteParticipantsVideoBody": "Du vil ikke kunne slå på kameraet igjen, men de kan gjøre det selv når som helst.", + "muteParticipantsVideoBodyModerationOn": "Du vil ikke kunne slå på kameraet igjen, og det vil heller ikke de.", + "muteParticipantsVideoButton": "Stopp video", + "muteParticipantsVideoDialog": "Er du sikker på at du vil slå av kameraet til denne deltakeren? Du vil ikke kunne slå det på igjen, men deltakeren kan gjøre det selv når som helst.", + "muteParticipantsVideoDialogModerationOn": "Er du sikker på at du vil slå av kameraet til denne deltakeren? Du vil ikke kunne slå det på igjen, og det vil heller ikke de.", + "muteParticipantsVideoTitle": "Deaktiver kameraet til denne deltakeren?", + "noDropboxToken": "Ingen gyldig Dropbox-token", + "password": "Passord", + "passwordLabel": "Møtet har blitt låst av en deltaker. Vennligst skriv inn $t(lockRoomPassword) for å bli med.", + "passwordNotSupported": "Å angi et møte $t(lockRoomPassword) støttes ikke.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) støttes ikke", + "passwordRequired": "$t(lockRoomPasswordUppercase) kreves", + "permissionCameraRequiredError": "Kameratilgang er nødvendig for å delta i videokonferanser. Vennligst gi tillatelse i Innstillinger", + "permissionErrorTitle": "Tillatelse kreves", + "permissionMicRequiredError": "Mikrofontilgang er nødvendig for å delta i lydkonferanser. Vennligst gi tillatelse i Innstillinger", + "readMore": "mer", + "recentlyUsedObjects": "Dine nylig brukte objekter", + "recording": "Opptak", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ikke mulig mens direktesending er aktiv", + "rejoinNow": "Bli med igjen nå", + "remoteControlAllowedMessage": "{{user}} godtok forespørselen din om fjernkontroll!", + "remoteControlDeniedMessage": "{{user}} avslo forespørselen din om fjernkontroll!", + "remoteControlErrorMessage": "En feil oppstod da vi prøvde å be om fjernkontrolltillatelser fra {{user}}!", + "remoteControlRequestMessage": "Vil du tillate at {{user}} fjernstyrer skrivebordet ditt?", + "remoteControlShareScreenWarning": "Merk at hvis du trykker \"Tillat\", vil du dele skjermen din!", + "remoteControlStopMessage": "Fjernkontrolløkten ble avsluttet!", + "remoteControlTitle": "Fjernstyring av skrivebord", + "remoteUserControls": "Fjernbrukerkontroller for {{username}}", + "removePassword": "Fjern $t(lockRoomPassword)", + "removeSharedVideoMsg": "Er du sikker på at du vil fjerne den delte videoen din?", + "removeSharedVideoTitle": "Fjern delt video", + "renameBreakoutRoomLabel": "Romnavn", + "renameBreakoutRoomTitle": "Gi nytt navn til grupperom", + "reservationError": "Feil i reservasjonsystemet", + "reservationErrorMsg": "Feilkode: {{code}}, melding: {{msg}}", + "retry": "Prøv igjen", + "screenSharingAudio": "Del lyd", + "screenSharingFailed": "Oops! Noe gikk galt, vi kunne ikke starte skjermdeling!", + "screenSharingFailedTitle": "Skjermdeling mislyktes!", + "screenSharingPermissionDeniedError": "Oops! Noe gikk galt med skjermdelingstillatelsene dine. Vennligst last inn siden på nytt og prøv igjen.", + "searchInSalesforce": "Søk i Salesforce", + "searchResults": "Søkeresultater ({{count}})", + "searchResultsDetailsError": "Noe gikk galt ved henting av eierdata.", + "searchResultsError": "Noe gikk galt ved henting av data.", + "searchResultsNotFound": "Ingen søkeresultater funnet.", + "searchResultsTryAgain": "Prøv med alternative søkeord.", + "sendPrivateMessage": "Du har nylig mottatt en privat melding. Ønsker du å svare privat, eller vil du sende meldingen til gruppen?", + "sendPrivateMessageCancel": "Send til gruppen", + "sendPrivateMessageOk": "Send privat", + "sendPrivateMessageTitle": "Send privat?", + "serviceUnavailable": "Tjenesten er utilgjengelig", + "sessTerminated": "Samtale avsluttet", + "sessTerminatedReason": "Møtet har blitt avsluttet", + "sessionRestarted": "Samtalen ble startet på nytt på grunn av en tilkoblingsfeil.", + "shareAudio": "Fortsett", + "shareAudioAltText": "For å dele ønsket innhold, gå til \"Nettleserfane\", velg innholdet, aktiver \"del lyd\"-avkrysningsboksen og klikk deretter på \"del\"-knappen", + "shareAudioTitle": "Hvordan dele lyd", + "shareAudioWarningD1": "Du må stoppe skjermdelingen før du deler lyden din.", + "shareAudioWarningD2": "Du må starte skjermdelingen på nytt og velge \"del lyd\"-alternativet.", + "shareAudioWarningH1": "Hvis du bare vil dele lyd:", + "shareAudioWarningTitle": "Du må stoppe skjermdelingen før du kan dele lyd", + "shareMediaWarningGenericH2": "Hvis du vil dele både skjermen og lyden", + "shareScreenWarningD1": "Du må stoppe lyddelingen før du deler skjermen din.", + "shareScreenWarningD2": "Du må stoppe lyddelingen, starte skjermdelingen på nytt og velge \"del lyd\"-alternativet.", + "shareScreenWarningH1": "Hvis du bare vil dele skjermen din:", + "shareScreenWarningTitle": "Du må stoppe lyddelingen før du kan dele skjermen", + "shareVideoConfirmPlay": "Du er i ferd med å åpne et eksternt nettsted. Vil du fortsette?", + "shareVideoConfirmPlayTitle": "{{name}} har delt en video med deg.", + "shareVideoLinkError": "Oops, denne videoen kan ikke spilles av.", + "shareVideoLinkStopped": "Videoen fra {{name}} ble stoppet.", + "shareVideoTitle": "Del video", + "shareYourScreen": "Del skjermen din", + "shareYourScreenDisabled": "Skjermdeling deaktivert.", + "sharedVideoDialogError": "Feil: Ugyldig eller forbudt URL", + "sharedVideoLinkPlaceholder": "YouTube-lenke eller direkte videolenke", + "show": "Vis", + "start": "Start ", + "startLiveStreaming": "Start direktesending", + "startRecording": "Start opptak", + "startRemoteControlErrorMessage": "En feil oppstod ved forsøk på å starte fjernkontrolløkten!", + "stopLiveStreaming": "Stopp direktesending", + "stopRecording": "Stopp opptak", + "stopRecordingWarning": "Er du sikker på at du vil stoppe opptaket?", + "stopStreamingWarning": "Er du sikker på at du vil stoppe direktesendingen?", + "streamKey": "Nøkkel for direktesending", + "thankYou": "Takk for at du bruker {{appName}}!", + "token": "token", + "tokenAuthFailed": "Beklager, du har ikke tillatelse til å bli med i denne samtalen.", + "tokenAuthFailedReason": { + "audInvalid": "Ugyldig `aud`-verdi. Den skal være `jitsi`.", + "contextNotFound": "`context`-objektet mangler i nyttelasten.", + "expInvalid": "Ugyldig `exp`-verdi.", + "featureInvalid": "Ugyldig funksjon: {{feature}}, sannsynligvis ikke implementert ennå.", + "featureValueInvalid": "Ugyldig verdi for funksjon: {{feature}}.", + "featuresNotFound": "`features`-objektet mangler i nyttelasten.", + "headerNotFound": "Mangler header.", + "issInvalid": "Ugyldig `iss`-verdi. Den skal være `chat`.", + "kidMismatch": "Nøkkel-ID (kid) samsvarer ikke med sub.", + "kidNotFound": "Mangler nøkkel-ID (kid).", + "nbfFuture": "`nbf`-verdien er i fremtiden.", + "nbfInvalid": "Ugyldig `nbf`-verdi.", + "payloadNotFound": "Mangler nyttelasten.", + "tokenExpired": "Tokenet er utløpt." + }, + "tokenAuthFailedTitle": "Autentisering mislyktes", + "tokenAuthFailedWithReasons": "Beklager, du har ikke tillatelse til å bli med i denne samtalen. Mulige årsaker: {{reason}}", + "tokenAuthUnsupported": "Token-URL støttes ikke.", + "transcribing": "Transkriberer", + "unlockRoom": "Fjern møte $t(lockRoomPassword)", + "user": "Bruker", + "userIdentifier": "Brukeridentifikator", + "userPassword": "Brukerpassord", + "verifyParticipantConfirm": "De samsvarer", + "verifyParticipantDismiss": "De samsvarer ikke", + "verifyParticipantQuestion": "EKSPERIMENTELL: Spør deltaker {{participantName}} om de ser det samme innholdet, i samme rekkefølge.", + "verifyParticipantTitle": "Brukerverifisering", + "videoLink": "Videolenke", + "viewUpgradeOptions": "Se oppgraderingsalternativer", + "viewUpgradeOptionsContent": "For å få ubegrenset tilgang til premiumfunksjoner som opptak, transkripsjoner, RTMP-streaming og mer, må du oppgradere planen din.", + "viewUpgradeOptionsTitle": "Du har oppdaget en premiumfunksjon!", + "whiteboardLimitContent": "Beklager, grensen for samtidige brukere av whiteboard er nådd.", + "whiteboardLimitReference": "For mer informasjon, besøk", + "whiteboardLimitReferenceUrl": "vår nettside", + "whiteboardLimitTitle": "Begrenset tilgang til whiteboard", + "yourEntireScreen": "Hele skjermen din" + }, + "documentSharing": { + "title": "Delt dokument" + }, + "e2ee": { + "labelToolTip": "Lyd- og videokommunikasjon i denne samtalen er ende-til-ende-kryptert" + }, + "embedMeeting": { + "title": "Bygg inn dette møtet" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Ditt valg: {{rating}}" + }, + "average": "Gjennomsnittlig", + "bad": "Dårlig", + "detailsLabel": "Fortell oss mer om det.", + "good": "Bra", + "rateExperience": "Vurder møteopplevelsen din", + "star": "Stjerne", + "veryBad": "Veldig dårlig", + "veryGood": "Veldig bra" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Videominiatyrer" + } + }, + "giphy": { + "noResults": "Ingen resultater funnet :(", + "search": "Søk i GIPHY" + }, + "incomingCall": { + "answer": "Svar", + "audioCallTitle": "Innkommende anrop", + "decline": "Avvis", + "productLabel": "fra Jitsi Meet", + "videoCallTitle": "Innkommende videoanrop" + }, + "info": { + "accessibilityLabel": "Vis info", + "addPassword": "Legg til $t(lockRoomPassword)", + "cancelPassword": "Avbryt $t(lockRoomPassword)", + "conferenceURL": "Lenke:", + "copyNumber": "Kopier nummer", + "country": "Land", + "dialANumber": "For å bli med i møtet, ring et av disse numrene og tast deretter inn PIN-koden.", + "dialInConferenceID": "PIN-kode:", + "dialInNotSupported": "Beklager, innringing støttes for øyeblikket ikke.", + "dialInNumber": "Innringingsnummer:", + "dialInSummaryError": "Feil ved henting av innringingsinformasjon. Vennligst prøv igjen senere.", + "dialInTollFree": "Gratisnummer", + "genericError": "Oops, noe gikk galt.", + "inviteLiveStream": "For å se direktesendingen av dette møtet, klikk denne lenken: {{url}}", + "invitePhone": "For å bli med via telefon, trykk her: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Leter du etter et annet innringingsnummer?\nSe listen over innringingsnumre: {{url}}\n\n\nHvis du også ringer inn via en romtelefon, bli med uten å koble til lyd: {{silentUrl}}", + "inviteSipEndpoint": "For å bli med via SIP-adresse, tast inn denne: {{sipUri}}", + "inviteTextiOSInviteUrl": "Klikk på følgende lenke for å bli med: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Hvis du ringer inn via en romtelefon, bruk denne lenken for å bli med uten å koble til lyd: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} inviterer deg til et møte.", + "inviteTextiOSPhone": "For å bli med via telefon, bruk dette nummeret: {{number}},,{{conferenceID}}#. Hvis du trenger et annet nummer, finner du hele listen her: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Du er invitert til å bli med i et møte.", + "inviteURLFirstPartPersonal": "{{name}} inviterer deg til et møte.\n", + "inviteURLSecondPart": "\nBli med i møtet:\n{{url}}\n", + "label": "Innringingsinformasjon", + "liveStreamURL": "Direktesendingslenke:", + "moreNumbers": "Flere numre", + "noNumbers": "Ingen innringingsnumre.", + "noPassword": "Ingen", + "noRoom": "Ingen rom ble spesifisert for innringing.", + "noWhiteboard": "Kunne ikke laste inn whiteboard.", + "numbers": "Innringingsnumre", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Du har nådd grensen for planen din.", + "sip": "SIP-adresse", + "sipAudioOnly": "SIP-lydadresse", + "title": "Del", + "tooltip": "Del lenke og innringingsinformasjon for dette møtet", + "upgradeOptions": "Vennligst sjekk oppgraderingsalternativene på", + "whiteboardError": "Feil ved lasting av whiteboard. Vennligst prøv igjen senere." + }, + "inlineDialogFailure": { + "msg": "Vi støtte på et problem.", + "retry": "Prøv igjen", + "support": "Brukerstøtte", + "supportMsg": "Hvis dette fortsetter å skje, ta kontakt med" + }, + "inviteDialog": { + "alertText": "Kunne ikke invitere noen deltakere.", + "header": "Inviter", + "searchCallOnlyPlaceholder": "Skriv inn telefonnummer", + "searchPeopleOnlyPlaceholder": "Søk etter deltakere", + "searchPlaceholder": "Deltaker eller telefonnummer", + "send": "Send" + }, + "jitsiHome": "{{logo}} Logo, lenker til Hjemmeside", + "keyboardShortcuts": { + "focusLocal": "Fokuser på din video", + "focusRemote": "Fokuser på en annen persons video", + "fullScreen": "Vis eller avslutt fullskjerm", + "giphyMenu": "Vis eller skjul GIPHY-menyen", + "keyboardShortcuts": "Hurtigtaster", + "localRecording": "Vis eller skjul kontroller for lokal opptak", + "mute": "Demp eller slå på mikrofonen din", + "pushToTalk": "Trykk for å snakke", + "raiseHand": "Rekk opp eller ta ned hånden", + "showSpeakerStats": "Vis deltakerstatistikk", + "toggleChat": "Åpne eller lukk chatten", + "toggleFilmstrip": "Vis eller skjul videominiatyrer", + "toggleParticipantsPane": "Vis eller skjul deltakerlisten", + "toggleScreensharing": "Bytt mellom kamera og skjermdeling", + "toggleShortcuts": "Vis eller skjul hurtigtaster", + "videoMute": "Start eller stopp kameraet ditt" + }, + "largeVideo": { + "screenIsShared": "Du deler skjermen din", + "showMeWhatImSharing": "Vis meg hva jeg deler" + }, + "liveStreaming": { + "busy": "Vi jobber med å frigjøre strømmeressurser. Vennligst prøv igjen om noen minutter.", + "busyTitle": "Alle strømmere er for øyeblikket opptatt", + "changeSignIn": "Bytt konto.", + "choose": "Velg en direktesending", + "chooseCTA": "Velg et strømmealternativ. Du er for øyeblikket logget inn som {{email}}.", + "enterStreamKey": "Skriv inn YouTube-strømmenøkkelen din her.", + "error": "Direktesending mislyktes. Vennligst prøv igjen.", + "errorAPI": "En feil oppstod ved tilgang til YouTube-sendingene dine. Prøv å logge inn igjen.", + "errorLiveStreamNotEnabled": "Direktesending er ikke aktivert på {{email}}. Aktiver direktesending eller logg inn på en konto med direktesending aktivert.", + "expandedOff": "Direktesendingen har stoppet", + "expandedOn": "Møtet kringkastes for øyeblikket direkte", + "expandedPending": "Direktesendingen starter…", + "failedToStart": "Kunne ikke starte direktesending", + "getStreamKeyManually": "Vi kunne ikke hente noen direktesendinger. Prøv å hente strømmenøkkelen din fra YouTube.", + "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", + "onBy": "{{name}} startet direktesendingen", + "pending": "Starter direktesending…", + "policyError": "Du prøvde å starte en direktesending for raskt. Vennligst prøv igjen senere!", + "serviceName": "Direktesendingstjeneste", + "sessionAlreadyActive": "Denne økten blir allerede tatt opp eller direktesendt.", + "signIn": "Logg inn med Google", + "signInCTA": "Logg inn eller skriv inn YouTube-strømmenøkkelen din.", + "signOut": "Logg ut", + "signedInAs": "Du er for øyeblikket logget inn som:", + "start": "Start en direktesending", + "streamIdHelp": "Hva er dette?", + "title": "Direktesending", + "unavailableTitle": "Direktesending utilgjengelig", + "youtubeTerms": "YouTubes vilkår for bruk" + }, + "lobby": { + "backToKnockModeButton": "Be om å bli med", + "chat": "Chat", + "dialogTitle": "Lobby-modus", + "disableDialogContent": "Lobby-modus er for øyeblikket aktivert. Denne funksjonen sikrer at uønskede deltakere ikke kan bli med i møtet. Vil du deaktivere den?", + "disableDialogSubmit": "Deaktiver", + "emailField": "Skriv inn e-postadressen din", + "enableDialogPasswordField": "Sett passord (valgfritt)", + "enableDialogSubmit": "Aktiver", + "enableDialogText": "Lobby-modus lar deg beskytte møtet ved kun å tillate personer å bli med etter godkjenning fra en moderator.", + "enterPasswordButton": "Skriv inn møtepassord", + "enterPasswordTitle": "Skriv inn passord for å bli med i møtet", + "errorMissingPassword": "Vennligst skriv inn møtepassordet", + "invalidPassword": "Ugyldig passord", + "joinRejectedMessage": "Forespørselen din om å bli med ble avvist av en moderator.", + "joinRejectedTitle": "Forespørsel om å bli med avvist.", + "joinTitle": "Bli med i møtet", + "joinWithPasswordMessage": "Prøver å bli med med passord, vennligst vent…", + "joiningMessage": "Du blir med i møtet så snart noen godkjenner forespørselen din", + "joiningTitle": "Ber om å bli med i møtet…", + "joiningWithPasswordTitle": "Bli med med passord…", + "knockButton": "Be om å bli med", + "knockTitle": "Noen ønsker å bli med i møtet", + "knockingParticipantList": "Liste over deltakere som venter", + "lobbyChatStartedNotification": "{{moderator}} startet en lobby-chat med {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} har startet en lobby-chat med deg.", + "lobbyClosed": "Lobby-rommet har blitt stengt.", + "nameField": "Skriv inn navnet ditt", + "notificationLobbyAccessDenied": "{{targetParticipantName}} har blitt avvist av {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} har fått tilgang av {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby har blitt deaktivert av {{originParticipantName}}", + "notificationLobbyEnabled": "Lobby har blitt aktivert av {{originParticipantName}}", + "notificationTitle": "Lobby", + "passwordJoinButton": "Bli med", + "title": "Lobby", + "toggleLabel": "Aktiver lobby" + }, + "localRecording": { + "clientState": { + "off": "Av", + "on": "På", + "unknown": "Ukjent" + }, + "dialogTitle": "Kontroller for lokal opptak", + "duration": "Varighet", + "durationNA": "Ikke tilgjengelig", + "encoding": "Koding", + "label": "LOR", + "labelToolTip": "Lokalt opptak er aktivert", + "localRecording": "Lokalt opptak", + "me": "Meg", + "messages": { + "engaged": "Lokalt opptak er aktivert.", + "finished": "Opptaksøkt {{token}} er fullført. Vennligst send den innspilte filen til moderator.", + "finishedModerator": "Opptaksøkt {{token}} er fullført. Opptaket av det lokale sporet er lagret. Vennligst be de andre deltakerne om å sende inn sine opptak.", + "notModerator": "Du er ikke moderator. Du kan ikke starte eller stoppe lokalt opptak." + }, + "moderator": "Moderator", + "no": "Nei", + "participant": "Deltaker", + "participantStats": "Deltakerstatistikk", + "selectTabTitle": "🎥 Velg denne fanen for opptak", + "sessionToken": "Økt-token", + "start": "Start opptak", + "stop": "Stopp opptak", + "stopping": "Stopper opptak", + "wait": "Vennligst vent mens vi lagrer opptaket ditt", + "yes": "Ja" + }, + "lockRoomPassword": "passord", + "lockRoomPasswordUppercase": "Passord", + "lonelyMeetingExperience": { + "button": "Inviter andre", + "youAreAlone": "Du er den eneste i møtet" + }, + "me": "meg", + "notify": { + "OldElectronAPPTitle": "Sikkerhetssårbarhet!", + "allowAction": "Tillat", + "allowedUnmute": "Du kan slå på mikrofonen, starte kameraet eller dele skjermen din.", + "audioUnmuteBlockedDescription": "Slå på mikrofonen er midlertidig blokkert på grunn av systembegrensninger.", + "audioUnmuteBlockedTitle": "Mikrofonaktivering blokkert!", + "chatMessages": "Chatmeldinger", + "connectedOneMember": "{{name}} ble med i møtet", + "connectedThreePlusMembers": "{{name}} og mange andre ble med i møtet", + "connectedTwoMembers": "{{first}} og {{second}} ble med i møtet", + "connectionFailed": "Tilkobling mislyktes. Vennligst prøv igjen senere!", + "dataChannelClosed": "Videokvaliteten kan være svekket", + "dataChannelClosedDescription": "Brokkanalen er nede, og dermed kan videokvaliteten være begrenset til laveste innstilling.", + "dataChannelClosedDescriptionWithAudio": "Brokkanalen er nede, og dermed kan det oppstå forstyrrelser i lyd og video.", + "dataChannelClosedWithAudio": "Lyd- og videokvaliteten kan være svekket", + "disabledIframe": "Innebygging er kun ment for demonstrasjonsformål, så denne samtalen vil kobles fra om {{timeout}} minutter.", + "disabledIframeSecondary": "Innebygging av {{domain}} er kun ment for demonstrasjonsformål, så denne samtalen vil kobles fra om {{timeout}} minutter. Vennligst bruk Jitsi as a Service for innebygging i produksjon!", + "disconnected": "frakoblet", + "displayNotifications": "Vis varsler for", + "dontRemindMe": "Ikke minn meg på dette", + "focus": "Konferansefokus", + "focusFail": "{{component}} ikke tilgjengelig - prøver igjen om {{ms}} sek", + "gifsMenu": "GIPHY", + "groupTitle": "Varsler", + "hostAskedUnmute": "Moderator ønsker at du skal snakke", + "invalidTenant": "Ugyldig leietaker", + "invalidTenantHyphenDescription": "Leietakeren du bruker er ugyldig (starter eller slutter med '-').", + "invalidTenantLengthDescription": "Leietakeren du bruker er for lang.", + "invitedOneMember": "{{name}} har blitt invitert", + "invitedThreePlusMembers": "{{name}} og {{count}} andre har blitt invitert", + "invitedTwoMembers": "{{first}} og {{second}} har blitt invitert", + "joinMeeting": "Bli med", + "kickParticipant": "{{kicked}} ble kastet ut av {{kicker}}", + "leftOneMember": "{{name}} forlot møtet", + "leftThreePlusMembers": "{{name}} og mange andre forlot møtet", + "leftTwoMembers": "{{first}} og {{second}} forlot møtet", + "linkToSalesforce": "Koble til Salesforce", + "linkToSalesforceDescription": "Du kan knytte møtereferatet til et Salesforce-objekt.", + "linkToSalesforceError": "Kunne ikke koble møtet til Salesforce", + "linkToSalesforceKey": "Koble dette møtet", + "linkToSalesforceProgress": "Kobler møtet til Salesforce…", + "linkToSalesforceSuccess": "Møtet ble koblet til Salesforce", + "localRecordingStarted": "{{name}} har startet et lokalt opptak.", + "localRecordingStopped": "{{name}} har stoppet et lokalt opptak.", + "me": "Meg", + "moderationInEffectCSDescription": "Vennligst rekke opp hånden hvis du vil dele skjermen din.", + "moderationInEffectCSTitle": "Skjermdeling er blokkert av moderator", + "moderationInEffectDescription": "Vennligst rekke opp hånden hvis du vil snakke.", + "moderationInEffectTitle": "Mikrofonen din er dempet av moderator", + "moderationInEffectVideoDescription": "Vennligst rekke opp hånden hvis du vil starte kameraet ditt.", + "moderationInEffectVideoTitle": "Kameraet ditt er blokkert av moderator", + "moderationRequestFromModerator": "Verten ønsker at du slår på lyden", + "moderationRequestFromParticipant": "Ønsker å snakke", + "moderationStartedTitle": "Moderasjon startet", + "moderationStoppedTitle": "Moderasjon stoppet", + "moderationToggleDescription": "av {{participantDisplayName}}", + "moderator": "Du er nå moderator", + "muted": "Du har startet samtalen dempet.", + "mutedRemotelyDescription": "Du kan alltid slå på lyden når du er klar til å snakke. Demp igjen når du er ferdig for å redusere støy i møtet.", + "mutedRemotelyTitle": "Du har blitt dempet av {{participantDisplayName}}", + "mutedTitle": "Du er dempet!", + "newDeviceAction": "Bruk", + "newDeviceAudioTitle": "Ny lydenhet oppdaget", + "newDeviceCameraTitle": "Nytt kamera oppdaget", + "nextToSpeak": "Du er nestemann til å snakke", + "noiseSuppressionDesktopAudioDescription": "Ekstra støydemping kan ikke aktiveres mens du deler skrivebordets lyd. Deaktiver det og prøv igjen.", + "noiseSuppressionFailedTitle": "Kunne ikke starte ekstra støydemping", + "noiseSuppressionStereoDescription": "Ekstra støydemping støttes foreløpig ikke med stereolyd.", + "oldElectronClientDescription1": "Det ser ut til at du bruker en gammel versjon av Jitsi Meet-klienten som har kjente sikkerhetsproblemer. Vennligst oppdater til vår ", + "oldElectronClientDescription2": "nyeste versjon", + "oldElectronClientDescription3": " nå!", + "participantWantsToJoin": "Ønsker å bli med i møtet", + "participantsWantToJoin": "Ønsker å bli med i møtet", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) fjernet av en annen deltaker", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) satt av en annen deltaker", + "raiseHandAction": "Rekk opp hånden", + "raisedHand": "Ønsker å snakke.", + "raisedHands": "{{participantName}} og {{raisedHands}} flere personer", + "reactionSounds": "Deaktiver lyder", + "reactionSoundsForAll": "Deaktiver lyder for alle", + "screenShareNoAudio": "Del lyd-boksen ble ikke valgt i vindusvalget.", + "screenShareNoAudioTitle": "Kunne ikke dele systemlyd!", + "screenSharingAudioOnlyDescription": "Vær oppmerksom på at ved å dele skjermen påvirker du \"Beste ytelse\"-modusen, og du vil bruke mer båndbredde.", + "screenSharingAudioOnlyTitle": "\"Beste ytelse\"-modus", + "selfViewTitle": "Du kan alltid vise selvvisningen igjen fra innstillingene", + "somebody": "Noen", + "startSilentDescription": "Bli med i møtet på nytt for å aktivere lyd", + "startSilentTitle": "Du ble med uten lydutgang!", + "suboptimalBrowserWarning": "Vi er redd møteopplevelsen din ikke blir optimal her. Vi jobber med forbedringer, men inntil videre kan du prøve en av de fullt støttede nettleserne.", + "suboptimalExperienceTitle": "Nettleseradvarsel", + "suggestRecordingAction": "Start", + "suggestRecordingDescription": "Vil du starte et opptak?", + "suggestRecordingTitle": "Ta opp dette møtet", + "unmute": "Slå på lyden", + "videoMutedRemotelyDescription": "Du kan alltid slå det på igjen.", + "videoMutedRemotelyTitle": "Videoen din har blitt slått av av {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Aktivering av kamera og skjermdeling har blitt midlertidig blokkert på grunn av systembegrensninger.", + "videoUnmuteBlockedTitle": "Aktivering av kamera og skjermdeling blokkert!", + "viewLobby": "Vis lobby", + "viewParticipants": "Vis deltakere", + "viewVisitors": "Vis seere", + "waitingParticipants": "{{waitingParticipants}} personer", + "waitingVisitors": "Seere som venter i kø: {{waitingVisitors}}", + "waitingVisitorsTitle": "Møtet er ikke live ennå!", + "whiteboardLimitDescription": "Vennligst lagre fremgangen din, siden brukergrensen snart blir nådd og whiteboardet vil lukkes.", + "whiteboardLimitTitle": "Bruk av whiteboard" + }, + "participantsPane": { + "actions": { + "admit": "Godkjenn", + "admitAll": "Godkjenn alle", + "allow": "Tillat deltakere å:", + "allowVideo": "Tillat video", + "askUnmute": "Be om å slå på lyden", + "audioModeration": "Slå på lyden selv", + "blockEveryoneMicCamera": "Blokker alles mikrofon og kamera", + "breakoutRooms": "Grupperom", + "goLive": "Gå live", + "invite": "Inviter noen", + "lowerAllHands": "Senk alle hender", + "lowerHand": "Senk hånden", + "moreModerationActions": "Flere moderasjonsalternativer", + "moreModerationControls": "Flere moderasjonskontroller", + "moreParticipantOptions": "Flere deltakeralternativer", + "mute": "Demp", + "muteAll": "Demp alle", + "muteEveryoneElse": "Demp alle andre", + "reject": "Avvis", + "stopEveryonesVideo": "Stopp alles video", + "stopVideo": "Stopp video", + "unblockEveryoneMicCamera": "Fjern blokkering av alles mikrofon og kamera", + "videoModeration": "Starte videoen sin" + }, + "close": "Lukk", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Møtedeltakere ({{count}})", + "visitorInQueue": " (venter {{count}})", + "visitorRequests": " (forespørsler {{count}})", + "visitors": "Seere {{count}}", + "waitingLobby": "Venter i lobbyen ({{count}})" + }, + "search": "Søk etter deltakere", + "title": "Deltakere" + }, + "passwordDigitsOnly": "Opptil {{number}} sifre", + "passwordSetRemotely": "Satt av en annen deltaker", + "pinParticipant": "{{participantName}} - Fest", + "pinnedParticipant": "Deltakeren er festet", + "polls": { + "answer": { + "edit": "Rediger", + "send": "Send", + "skip": "Hopp over", + "submit": "Send inn" + }, + "by": "Av {{ name }}", + "closeButton": "Lukk avstemning", + "create": { + "addOption": "Legg til alternativ", + "answerPlaceholder": "Alternativ {{index}}", + "cancel": "Avbryt", + "create": "Opprett en avstemning", + "pollOption": "Avstemningsalternativ {{index}}", + "pollQuestion": "Avstemningsspørsmål", + "questionPlaceholder": "Still et spørsmål", + "removeOption": "Fjern alternativ", + "save": "Lagre", + "send": "Send" + }, + "errors": { + "notUniqueOption": "Alternativene må være unike" + }, + "notification": { + "description": "Åpne avstemningsfanen for å stemme", + "title": "En ny avstemning ble lagt til i dette møtet" + }, + "results": { + "changeVote": "Endre stemme", + "empty": "Det er ingen avstemninger i møtet ennå. Start en avstemning her!", + "hideDetailedResults": "Skjul detaljer", + "showDetailedResults": "Vis detaljer", + "vote": "Stem" + } + }, + "poweredby": "drevet av", + "prejoin": { + "audioAndVideoError": "Lyd- og videofeil:", + "audioDeviceProblem": "Det er et problem med lydenheten din", + "audioOnlyError": "Lydfeil:", + "audioTrackError": "Kunne ikke opprette lydspor.", + "callMe": "Ring meg", + "callMeAtNumber": "Ring meg på dette nummeret:", + "calling": "Ringer", + "configuringDevices": "Konfigurerer enheter…", + "connectedWithAudioQ": "Er du tilkoblet med lyd?", + "connection": { + "failed": "Tilkoblingstesten mislyktes!", + "good": "Internettforbindelsen din ser bra ut!", + "nonOptimal": "Internettforbindelsen din er ikke optimal", + "poor": "Du har en dårlig internettforbindelse", + "running": "Kjører tilkoblingstest…" + }, + "connectionDetails": { + "audioClipping": "Vi forventer at lyden din vil bli avkuttet.", + "audioHighQuality": "Vi forventer at lyden din vil ha utmerket kvalitet.", + "audioLowNoVideo": "Vi forventer at lydkvaliteten din vil være lav, og at det ikke vil være video.", + "goodQuality": "Fantastisk! Mediekvaliteten din kommer til å være utmerket.", + "noMediaConnectivity": "Vi kunne ikke finne en måte å opprette medietilkobling for denne testen. Dette skyldes vanligvis en brannmur eller NAT.", + "noVideo": "Vi forventer at videokvaliteten din vil være svært dårlig.", + "testFailed": "Tilkoblingstesten støtte på uventede problemer, men dette vil kanskje ikke påvirke opplevelsen din.", + "undetectable": "Hvis du fortsatt ikke kan foreta anrop i nettleseren, anbefaler vi at du sjekker at høyttalere, mikrofon og kamera er riktig konfigurert, at du har gitt nettleseren tillatelse til å bruke mikrofon og kamera, og at nettleseren din er oppdatert. Hvis du fortsatt har problemer, bør du kontakte utvikleren av nettapplikasjonen.", + "veryPoorConnection": "Vi forventer at samtalekvaliteten din vil være svært dårlig.", + "videoFreezing": "Vi forventer at videoen din vil fryse, bli svart eller ha pikselerte forstyrrelser.", + "videoHighQuality": "Vi forventer at videoen din vil ha god kvalitet.", + "videoLowQuality": "Vi forventer at videoen din vil ha lav kvalitet når det gjelder bildefrekvens og oppløsning.", + "videoTearing": "Vi forventer at videoen din vil være pikselert eller ha visuelle artefakter." + }, + "copyAndShare": "Kopier og del møtelenken", + "dialInMeeting": "Ring inn til møtet", + "dialInPin": "Ring inn til møtet og tast inn PIN-kode:", + "dialing": "Ringer", + "doNotShow": "Ikke vis denne skjermen igjen", + "errorDialOut": "Kunne ikke ringe ut", + "errorDialOutDisconnected": "Kunne ikke ringe ut. Frakoblet", + "errorDialOutFailed": "Kunne ikke ringe ut. Anrop mislyktes", + "errorDialOutStatus": "Feil ved henting av status for utgående anrop", + "errorMissingName": "Vennligst skriv inn navnet ditt for å bli med i møtet", + "errorNoPermissions": "Du må gi tilgang til mikrofon og kamera", + "errorStatusCode": "Feil ved utgående anrop, statuskode: {{status}}", + "errorValidation": "Nummerverifisering mislyktes", + "iWantToDialIn": "Jeg vil ringe inn", + "initiated": "Anrop initiert", + "joinAudioByPhone": "Bli med via telefonlyd", + "joinMeeting": "Bli med i møtet", + "joinMeetingInLowBandwidthMode": "Bli med i modus for lav båndbredde", + "joinWithoutAudio": "Bli med uten lyd", + "keyboardShortcuts": "Aktiver hurtigtaster", + "linkCopied": "Lenke kopiert til utklippstavlen", + "lookGood": "Enhetene dine fungerer som de skal", + "or": "eller", + "premeeting": "Før møtet", + "proceedAnyway": "Fortsett likevel", + "recordingWarning": "Andre deltakere kan ta opp denne samtalen", + "screenSharingError": "Feil ved skjermdeling:", + "startWithPhone": "Start med telefonlyd", + "unsafeRoomConsent": "Jeg forstår risikoen, jeg vil bli med i møtet", + "videoOnlyError": "Video feil:", + "videoTrackError": "Kunne ikke opprette videospor.", + "viewAllNumbers": "se alle numre" + }, + "presenceStatus": { + "busy": "Opptatt", + "calling": "Ringer…", + "connected": "Tilkoblet", + "connecting": "Kobler til…", + "connecting2": "Kobler til*…", + "disconnected": "Frakoblet", + "expired": "Utløpt", + "ignored": "Ignorert", + "initializingCall": "Initialiserer anrop…", + "invited": "Invitert", + "rejected": "Avvist", + "ringing": "Ringer…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Navn", + "setEmailInput": "Skriv inn e-post", + "setEmailLabel": "Gravatar e-post", + "title": "Profil" + }, + "raisedHand": "Ønsker å snakke", + "raisedHandsLabel": "Antall hevede hender", + "record": { + "already": { + "linked": "Møtet er allerede koblet til dette Salesforce-objektet." + }, + "type": { + "account": "Konto", + "contact": "Kontakt", + "lead": "Lead", + "opportunity": "Mulighet", + "owner": "Eier" + } + }, + "recording": { + "authDropboxText": "Last opp til Dropbox", + "availableSpace": "Tilgjengelig plass: {{spaceLeft}} MB (omtrent {{duration}} minutter med opptak)", + "beta": "BETA", + "busy": "Vi jobber med å frigjøre opptaksressurser. Vennligst prøv igjen om noen minutter.", + "busyTitle": "Alle opptakere er for øyeblikket opptatt", + "copyLink": "Kopier lenke", + "error": "Opptak mislyktes. Vennligst prøv igjen.", + "errorFetchingLink": "Feil ved henting av opptaksl link.", + "expandedOff": "Opptaket har stoppet", + "expandedOn": "Møtet blir for øyeblikket tatt opp", + "expandedPending": "Opptak starter…", + "failedToStart": "Kunne ikke starte opptak", + "fileSharingdescription": "Del opptakslenken med møtedeltakerne", + "highlight": "Høydepunkt", + "highlightMoment": "Marker øyeblikk", + "highlightMomentDisabled": "Du kan markere øyeblikk når opptaket starter", + "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", + "localRecordingStartWarning": "Sørg for å stoppe opptaket før du forlater møtet for å lagre det.", + "localRecordingStartWarningTitle": "Stopp opptaket for å lagre det", + "localRecordingVideoStop": "Hvis du stopper videoen, vil også det lokale opptaket stoppe. Er du sikker på at du vil fortsette?", + "localRecordingVideoWarning": "For å ta opp videoen din, må du ha den på når opptaket starter", + "localRecordingWarning": "Pass på å velge den gjeldende fanen for å bruke riktig video og lyd.", + "loggedIn": "Logget inn som {{userName}}", + "noMicPermission": "Kunne ikke opprette mikrofonspor. Vennligst gi tillatelse til å bruke mikrofonen.", + "noStreams": "Ingen lyd- eller videostrøm oppdaget.", + "off": "Opptak stoppet", + "offBy": "{{name}} stoppet opptaket", + "on": "Opptak startet", + "onBy": "{{name}} startet opptaket", + "onlyRecordSelf": "Ta kun opp min egen lyd- og videostrøm", + "pending": "Forbereder opptak av møtet…", + "policyError": "Du prøvde å starte et opptak for raskt. Vennligst prøv igjen senere!", + "recordAudioAndVideo": "Ta opp lyd og video", + "recordTranscription": "Ta opp transkripsjon", + "saveLocalRecording": "Lagre opptaksfilen lokalt (Beta)", + "serviceDescription": "Opptaket ditt vil bli lagret av opptakstjenesten", + "serviceDescriptionCloud": "Skylagringsopptak", + "serviceDescriptionCloudInfo": "Opptak av møter slettes automatisk 24 timer etter opptakstidspunktet.", + "serviceName": "Opptakstjeneste", + "sessionAlreadyActive": "Denne økten blir allerede tatt opp eller direktesendt.", + "showAdvancedOptions": "Avanserte alternativer", + "signIn": "Logg inn", + "signOut": "Logg ut", + "surfaceError": "Vennligst velg den gjeldende fanen.", + "title": "Opptak", + "unavailable": "Oops! {{serviceName}} er for øyeblikket utilgjengelig. Vi jobber med å løse problemet. Vennligst prøv igjen senere.", + "unavailableTitle": "Opptak utilgjengelig", + "uploadToCloud": "Last opp til skyen" + }, + "screenshareDisplayName": "{{name}}s skjerm", + "sectionList": { + "pullToRefresh": "Dra for å oppdatere" + }, + "security": { + "about": "Du kan legge til et $t(lockRoomPassword) for møtet ditt. Deltakere må oppgi $t(lockRoomPassword) før de får bli med i møtet.", + "aboutReadOnly": "Moderatorer kan legge til et $t(lockRoomPassword) for møtet. Deltakere må oppgi $t(lockRoomPassword) før de får bli med i møtet.", + "insecureRoomNameWarningNative": "Romnavnet er usikkert. Uønskede deltakere kan bli med i møtet ditt. {{recommendAction}} Lær mer om hvordan du sikrer møtet ditt.", + "insecureRoomNameWarningWeb": "Romnavnet er usikkert. Uønskede deltakere kan bli med i møtet ditt. {{recommendAction}} Lær mer om hvordan du sikrer møtet ditt her.", + "title": "Sikkerhetsalternativer", + "unsafeRoomActions": { + "meeting": "Vurder å sikre møtet ditt ved å bruke sikkerhetsknappen.", + "prejoin": "Vurder å bruke et mer unikt møtenavn.", + "welcome": "Vurder å bruke et mer unikt møtenavn, eller velg ett av forslagene." + } + }, + "settings": { + "audio": "Lyd", + "buttonLabel": "Innstillinger", + "calendar": { + "about": "{{appName}} kalenderintegrasjon brukes til å få sikker tilgang til kalenderen din slik at den kan lese kommende hendelser.", + "disconnect": "Koble fra", + "microsoftSignIn": "Logg inn med Microsoft", + "signedIn": "Har for øyeblikket tilgang til kalenderhendelser for {{email}}. Klikk på Koble fra-knappen nedenfor for å stoppe tilgangen til kalenderhendelser.", + "title": "Kalender" + }, + "desktopShareFramerate": "Bildefrekvens for skjermdeling", + "desktopShareHighFpsWarning": "En høyere bildefrekvens for skjermdeling kan påvirke båndbredden din. Du må starte skjermdelingen på nytt for at de nye innstillingene skal tre i kraft.", + "desktopShareWarning": "Du må starte skjermdelingen på nytt for at de nye innstillingene skal tre i kraft.", + "devices": "Enheter", + "followMe": "Alle følger meg", + "followMeRecorder": "Opptaker følger meg", + "framesPerSecond": "bilder per sekund", + "incomingMessage": "Innkommende melding", + "language": "Språk", + "loggedIn": "Logget inn som {{name}}", + "maxStageParticipants": "Maksimalt antall deltakere som kan festes til hovedscenen", + "microphones": "Mikrofoner", + "moderator": "Moderator", + "moderatorOptions": "Moderatoralternativer", + "more": "Generelt", + "name": "Navn", + "noDevice": "Ingen", + "notifications": "Varsler", + "participantJoined": "Deltaker ble med", + "participantKnocking": "Deltaker kom inn i lobbyen", + "participantLeft": "Deltaker forlot møtet", + "playSounds": "Spill av lyd ved", + "reactions": "Møtereaksjoner", + "sameAsSystem": "Samme som systemet ({{label}})", + "selectAudioOutput": "Lydutgang", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Selvvisning", + "shortcuts": "Hurtigtaster", + "speakers": "Høyttalere", + "startAudioMuted": "Alle starter dempet", + "startReactionsMuted": "Demp reaksjonslyder for alle", + "startVideoMuted": "Alle starter skjult", + "talkWhileMuted": "Snakk mens du er dempet", + "title": "Innstillinger", + "video": "Video" + }, + "settingsView": { + "advanced": "Avansert", + "alertCancel": "Avbryt", + "alertOk": "OK", + "alertTitle": "Advarsel", + "alertURLText": "Den angitte server-URL-en er ugyldig", + "apply": "Bruk", + "buildInfoSection": "Bygginformasjon", + "conferenceSection": "Konferanse", + "disableCallIntegration": "Deaktiver integrasjon med native anrop", + "disableCrashReporting": "Deaktiver feilmeldingsrapportering", + "disableCrashReportingWarning": "Er du sikker på at du vil deaktivere feilmeldingsrapportering? Innstillingen vil bli brukt etter at du starter appen på nytt.", + "disableP2P": "Deaktiver Peer-To-Peer-modus", + "displayName": "Visningsnavn", + "displayNamePlaceholderText": "F.eks.: John Doe", + "email": "E-post", + "emailPlaceholderText": "email@eksempel.com", + "gavatarMessage": "Hvis e-posten din er knyttet til en Gravatar-konto, vil vi bruke den til å vise profilbildet ditt.", + "goTo": "Gå til", + "header": "Innstillinger", + "help": "Hjelp", + "links": "Lenker", + "privacy": "Personvern", + "profileSection": "Profil", + "sdkVersion": "SDK-versjon", + "serverURL": "Server-URL", + "showAdvanced": "Vis avanserte innstillinger", + "startCarModeInLowBandwidthMode": "Start bilmodus i modus for lav båndbredde", + "startWithAudioMuted": "Start med dempet lyd", + "startWithVideoMuted": "Start med deaktivert video", + "terms": "Vilkår", + "version": "App-versjon" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVil du bare ringe inn via telefon?\n\n{{defaultDialInNumber}}Klikk denne lenken for å se innringingsnumrene for dette møtet\n{{dialInfoPageUrl}}", + "mainText": "Klikk på følgende lenke for å bli med i møtet:\n{{roomUrl}}" + }, + "speaker": "Taler", + "speakerStats": { + "angry": "Sint", + "disgusted": "Frastøtt", + "displayEmotions": "Vis følelser", + "fearful": "Redd", + "happy": "Glad", + "hours": "{{count}}t", + "labelTooltip": "Antall deltakere: {{count}}", + "minutes": "{{count}}m", + "name": "Navn", + "neutral": "Nøytral", + "sad": "Trist", + "search": "Søk", + "searchHint": "Søk etter deltakere", + "seconds": "{{count}}s", + "speakerStats": "Deltakerstatistikk", + "speakerTime": "Taletid", + "surprised": "Overrasket" + }, + "startupoverlay": { + "genericTitle": "Møtet må bruke mikrofonen og kameraet ditt.", + "policyText": " ", + "title": "{{app}} må bruke mikrofonen og kameraet ditt." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Bli med igjen", + "text": "Trykk på Bli med igjen-knappen for å koble til på nytt.", + "title": "Videosamtalen din ble avbrutt fordi denne datamaskinen gikk i dvale." + }, + "termsView": { + "title": "Vilkår" + }, + "toggleTopPanelLabel": "Veksle toppanel", + "toolbar": { + "Settings": "Innstillinger", + "accessibilityLabel": { + "Settings": "Åpne innstillinger", + "audioOnly": "Veksle kun lyd", + "audioRoute": "Velg lydenhet", + "boo": "Buu", + "breakoutRooms": "Grupperom", + "callQuality": "Administrer videokvalitet", + "carmode": "Bilmodus", + "cc": "Veksle undertekster", + "chat": "Åpne / Lukk chat", + "clap": "Applaus", + "closeChat": "Lukk chat", + "closeMoreActions": "Lukk menyen for flere handlinger", + "closeParticipantsPane": "Lukk deltakerpanelet", + "collapse": "Skjul", + "document": "Veksle delt dokument", + "documentClose": "Lukk delt dokument", + "documentOpen": "Åpne delt dokument", + "download": "Last ned våre apper", + "embedMeeting": "Bygg inn møte", + "endConference": "Avslutt møte for alle", + "enterFullScreen": "Vis i fullskjerm", + "enterTileView": "Aktiver rutenettvisning", + "exitFullScreen": "Avslutt fullskjerm", + "exitTileView": "Avslutt rutenettvisning", + "expand": "Utvid", + "feedback": "Legg igjen tilbakemelding", + "fullScreen": "Veksle fullskjerm", + "giphy": "Veksle GIPHY-meny", + "grantModerator": "Gi moderatorrettigheter", + "hangup": "Forlat møtet", + "heading": "Verktøylinje", + "help": "Hjelp", + "hideWhiteboard": "Skjul whiteboard", + "invite": "Inviter personer", + "kick": "Fjern deltaker", + "laugh": "Latter", + "leaveConference": "Forlat møtet", + "like": "Tommelen opp", + "linkToSalesforce": "Koble til Salesforce", + "lobbyButton": "Aktiver/deaktiver lobby-modus", + "localRecording": "Veksle kontroller for lokalt opptak", + "lockRoom": "Veksle møtepassord", + "love": "Hjerte", + "lowerHand": "Senk hånden", + "moreActions": "Flere handlinger", + "moreActionsMenu": "Meny for flere handlinger", + "moreOptions": "Vis flere alternativer", + "mute": "Demp mikrofon", + "muteEveryone": "Demp alle", + "muteEveryoneElse": "Demp alle andre", + "muteEveryoneElsesVideoStream": "Stopp video for alle andre", + "muteEveryonesVideoStream": "Stopp alles video", + "muteGUMPending": "Kobler til mikrofonen din", + "noiseSuppression": "Ekstra støydemping (BETA)", + "openChat": "Åpne chat", + "participants": "Åpne deltakerpanelet. {{participantsCount}} deltakere", + "pip": "Veksle bilde-i-bilde-modus", + "privateMessage": "Send privat melding", + "profile": "Rediger profilen din", + "raiseHand": "Rekk opp hånden", + "react": "Meldingsreaksjoner", + "reactions": "Reaksjoner", + "reactionsMenu": "Meny for reaksjoner", + "recording": "Veksle opptak", + "remoteMute": "Demp deltaker", + "remoteVideoMute": "Deaktiver deltakers kamera", + "security": "Sikkerhetsalternativer", + "selectBackground": "Velg bakgrunn", + "selfView": "Veksle selvvisning", + "shareRoom": "Inviter noen", + "shareYourScreen": "Start skjermdeling", + "shareaudio": "Del lyd", + "sharedvideo": "Del video", + "shortcuts": "Veksle snarveier", + "show": "Vis på scenen", + "showWhiteboard": "Vis whiteboard", + "silence": "Stillhet", + "speakerStats": "Veksle deltakerstatistikk", + "stopScreenSharing": "Stopp skjermdeling", + "stopSharedVideo": "Stopp video", + "surprised": "Overrasket", + "tileView": "Veksle rutenettvisning", + "toggleCamera": "Veksle kamera", + "toggleFilmstrip": "Veksle filmstripe", + "unmute": "Slå på mikrofon", + "videoblur": "Veksle uskarp bakgrunn", + "videomute": "Stopp kamera", + "videomuteGUMPending": "Kobler til kameraet ditt", + "videounmute": "Start kamera" + }, + "addPeople": "Legg til personer i samtalen din", + "audioOnlyOff": "Deaktiver modus for lav båndbredde", + "audioOnlyOn": "Aktiver modus for lav båndbredde", + "audioRoute": "Velg lydenhet", + "audioSettings": "Lydinnstillinger", + "authenticate": "Autentiser", + "boo": "Buu", + "callQuality": "Administrer videokvalitet", + "chat": "Åpne / Lukk chat", + "clap": "Applaus", + "closeChat": "Lukk chat", + "closeParticipantsPane": "Lukk deltakerpanelet", + "closeReactionsMenu": "Lukk reaksjonsmenyen", + "disableNoiseSuppression": "Deaktiver ekstra støydemping (BETA)", + "disableReactionSounds": "Du kan deaktivere reaksjonslyder for dette møtet", + "documentClose": "Lukk delt dokument", + "documentOpen": "Åpne delt dokument", + "download": "Last ned våre apper", + "e2ee": "Ende-til-ende-kryptering", + "embedMeeting": "Bygg inn møte", + "enableNoiseSuppression": "Aktiver ekstra støydemping (BETA)", + "endConference": "Avslutt møtet for alle", + "enterFullScreen": "Vis i fullskjerm", + "enterTileView": "Aktiver rutenettvisning", + "exitFullScreen": "Avslutt fullskjerm", + "exitTileView": "Avslutt rutenettvisning", + "feedback": "Legg igjen tilbakemelding", + "giphy": "Veksle GIPHY-meny", + "hangup": "Forlat møtet", + "help": "Hjelp", + "hideWhiteboard": "Skjul whiteboard", + "invite": "Inviter personer", + "joinBreakoutRoom": "Bli med i grupperom", + "laugh": "Latter", + "leaveBreakoutRoom": "Forlat grupperom", + "leaveConference": "Forlat møtet", + "like": "Tommelen opp", + "linkToSalesforce": "Koble til Salesforce", + "lobbyButtonDisable": "Deaktiver lobby-modus", + "lobbyButtonEnable": "Aktiver lobby-modus", + "login": "Logg inn", + "logout": "Logg ut", + "love": "Hjerte", + "lowerYourHand": "Senk hånden", + "moreActions": "Flere handlinger", + "moreOptions": "Flere alternativer", + "mute": "Demp mikrofon", + "muteEveryone": "Demp alle", + "muteEveryonesVideo": "Deaktiver alles kamera", + "muteGUMPending": "Kobler til mikrofonen din", + "noAudioSignalDesc": "Hvis du ikke dempet mikrofonen med systeminnstillinger eller maskinvare, vurder å bytte enhet.", + "noAudioSignalDescSuggestion": "Hvis du ikke dempet mikrofonen med systeminnstillinger eller maskinvare, vurder å bytte til den foreslåtte enheten.", + "noAudioSignalDialInDesc": "Du kan også ringe inn ved å bruke:", + "noAudioSignalDialInLinkDesc": "Innringingsnumre", + "noAudioSignalTitle": "Det er ingen lydinngang fra mikrofonen din!", + "noiseSuppression": "Ekstra støydemping (BETA)", + "noisyAudioInputDesc": "Det høres ut som mikrofonen din lager støy. Vurder å dempe eller bytte enhet.", + "noisyAudioInputTitle": "Mikrofonen din ser ut til å være støyende!", + "openChat": "Åpne chat", + "openReactionsMenu": "Åpne reaksjonsmeny", + "participants": "Deltakere", + "pip": "Aktiver bilde-i-bilde-modus", + "privateMessage": "Send privat melding", + "profile": "Rediger profilen din", + "raiseHand": "Rekk opp hånden", + "raiseYourHand": "Rekk opp hånden", + "reactionBoo": "Send buu-reaksjon", + "reactionClap": "Send applaus-reaksjon", + "reactionHeart": "Send hjerte-reaksjon", + "reactionLaugh": "Send latter-reaksjon", + "reactionLike": "Send tommel opp-reaksjon", + "reactionSilence": "Send stillhet-reaksjon", + "reactionSurprised": "Send overrasket-reaksjon", + "reactions": "Reaksjoner", + "security": "Sikkerhetsalternativer", + "selectBackground": "Velg bakgrunn", + "shareRoom": "Inviter noen", + "shareaudio": "Del lyd", + "sharedvideo": "Del video", + "shortcuts": "Vis hurtigtaster", + "showWhiteboard": "Vis whiteboard", + "silence": "Stillhet", + "speakerStats": "Deltakerstatistikk", + "startScreenSharing": "Start skjermdeling", + "startSubtitles": "Undertekster • {{language}}", + "stopAudioSharing": "Stopp deling av lyd", + "stopScreenSharing": "Stopp skjermdeling", + "stopSharedVideo": "Stopp video", + "stopSubtitles": "Stopp undertekster", + "surprised": "Overrasket", + "talkWhileMutedPopup": "Prøver du å snakke? Du er dempet.", + "tileViewToggle": "Veksle rutenettvisning", + "toggleCamera": "Veksle kamera", + "unmute": "Slå på mikrofon", + "videoSettings": "Videoinnstillinger", + "videomute": "Stopp kamera", + "videomuteGUMPending": "Kobler til kameraet ditt", + "videounmute": "Start kamera" + }, + "transcribing": { + "ccButtonTooltip": "Start / Stopp undertekster", + "expandedLabel": "Transkribering er for øyeblikket på", + "failed": "Transkribering mislyktes", + "labelToolTip": "Møtet blir transkribert", + "sourceLanguageDesc": "For øyeblikket er møtespråket satt til {{sourceLanguage}}.
Du kan endre det ", + "sourceLanguageHere": "her", + "start": "Start visning av undertekster", + "stop": "Stopp visning av undertekster", + "subtitles": "Undertekster", + "subtitlesOff": "Av", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Løsne", + "userMedia": { + "grantPermissions": "Vennligst gi tillatelser for å bruke kameraet og mikrofonen din." + }, + "videoSIPGW": { + "busy": "Vi jobber med å frigjøre ressurser. Vennligst prøv igjen om noen minutter.", + "busyTitle": "Romtjenesten er for øyeblikket opptatt", + "errorAlreadyInvited": "{{displayName}} er allerede invitert", + "errorInvite": "Konferansen er ikke opprettet ennå. Vennligst prøv igjen senere.", + "errorInviteFailed": "Vi jobber med å løse problemet. Vennligst prøv igjen senere.", + "errorInviteFailedTitle": "Invitasjon til {{displayName}} mislyktes", + "errorInviteTitle": "Feil ved invitasjon av rom", + "pending": "{{displayName}} har blitt invitert" + }, + "videoStatus": { + "adjustFor": "Juster for:", + "audioOnly": "LYD", + "audioOnlyExpanded": "Du er i modus for lav båndbredde. I denne modusen vil du kun motta lyd og skjermdeling.", + "bestPerformance": "Beste ytelse", + "callQuality": "Videokvalitet (0 for best ytelse, 3 for høyeste kvalitet)", + "hd": "HD", + "hdTooltip": "Ser video i høy oppløsning", + "highDefinition": "Høy oppløsning", + "highestQuality": "Høyeste kvalitet", + "labelTooiltipNoVideo": "Ingen video", + "labelTooltipAudioOnly": "Modus for lav båndbredde aktivert", + "ld": "LD", + "ldTooltip": "Ser video i lav oppløsning", + "lowDefinition": "Lav oppløsning", + "performanceSettings": "Ytelsesinnstillinger", + "recording": "Opptak pågår", + "sd": "SD", + "sdTooltip": "Ser video i standard oppløsning", + "standardDefinition": "Standard oppløsning", + "streaming": "Direktesending pågår" + }, + "videothumbnail": { + "connectionInfo": "Tilkoblingsinformasjon", + "demote": "Flytt til seer", + "domute": "Demp", + "domuteOthers": "Demp alle andre", + "domuteVideo": "Deaktiver kamera", + "domuteVideoOfOthers": "Deaktiver kamera for alle andre", + "flip": "Snu", + "grantModerator": "Gi moderatorrettigheter", + "hideSelfView": "Skjul selvvisning", + "kick": "Fjern deltaker", + "mirrorVideo": "Speil videoen min", + "moderator": "Moderator", + "mute": "Deltaker er dempet", + "muted": "Dempet", + "pinToStage": "Fest til scenen", + "remoteControl": "Start / Stopp fjernkontroll", + "screenSharing": "Deltaker deler skjermen sin", + "show": "Vis på scenen", + "showSelfView": "Vis selvvisning", + "unpinFromStage": "Løsne", + "verify": "Bekreft deltaker", + "videoMuted": "Kamera deaktivert", + "videomute": "Deltakeren har stoppet kameraet" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Nåværende bakgrunn: {{background}}", + "selectBackground": "Velg en bakgrunn" + }, + "addBackground": "Legg til bakgrunn", + "apply": "Bruk", + "backgroundEffectError": "Kunne ikke bruke bakgrunnseffekten.", + "blur": "Uskarp", + "deleteImage": "Slett bilde", + "desktopShare": "Skjermdeling", + "desktopShareError": "Kunne ikke opprette skjermdeling", + "image1": "Strand", + "image2": "Hvit nøytral vegg", + "image3": "Hvitt tomt rom", + "image4": "Svart gulvlampe", + "image5": "Fjell", + "image6": "Skog", + "image7": "Soloppgang", + "none": "Ingen", + "pleaseWait": "Vennligst vent…", + "removeBackground": "Fjern bakgrunn", + "slightBlur": "Delvis uskarp", + "title": "Virtuelle bakgrunner", + "uploadedImage": "Opplastet bilde {{index}}", + "webAssemblyWarning": "WebAssembly ikke støttet", + "webAssemblyWarningDescription": "WebAssembly er deaktivert eller ikke støttet av denne nettleseren" + }, + "visitors": { + "chatIndicator": "(seer)", + "joinMeeting": { + "description": "Du er for øyeblikket en seer i denne konferansen.", + "raiseHand": "Rekk opp hånden", + "title": "Bli med i møtet", + "wishToSpeak": "Hvis du ønsker å snakke, vennligst rekk opp hånden nedenfor og vent på godkjenning fra moderator." + }, + "labelTooltip": "Antall seere: {{count}}", + "notification": { + "demoteDescription": "Sendt hit av {{actor}}, rekk opp hånden for å delta", + "noMainParticipantsDescription": "En deltaker må starte møtet. Vennligst prøv igjen om litt.", + "noMainParticipantsTitle": "Dette møtet har ikke startet ennå.", + "noVisitorLobby": "Du kan ikke bli med så lenge lobbyen er aktivert for møtet.", + "notAllowedPromotion": "En deltaker må godkjenne forespørselen din først.", + "title": "Du er en seer i møtet" + }, + "waitingMessage": "Du blir med i møtet så snart det er live!" + }, + "volumeSlider": "Volumkontroll", + "welcomepage": { + "accessibilityLabel": { + "join": "Trykk for å bli med", + "roomname": "Skriv inn romnavn" + }, + "addMeetingName": "Legg til møtenavn", + "appDescription": "Sett i gang, ha videosamtaler med hele teamet. Faktisk, inviter alle du kjenner. {{app}} er en fullstendig kryptert, 100 % åpen kildekode videokonferanseløsning som du kan bruke hele dagen, hver dag, gratis — uten behov for konto.", + "audioVideoSwitch": { + "audio": "Stemme", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Koble til kalenderen din", + "connectCalendarText": "Koble til kalenderen din for å se alle møtene dine i {{app}}. I tillegg kan du legge til {{provider}}-møter i kalenderen din og starte dem med ett klikk.", + "enterRoomTitle": "Start et nytt møte", + "getHelp": "Få hjelp", + "go": "GÅ", + "goSmall": "GÅ", + "headerSubtitle": "Sikre møter av høy kvalitet", + "headerTitle": "Jitsi Meet", + "info": "Innringingsinformasjon", + "jitsiOnMobile": "Jitsi på mobil – last ned appene våre og start et møte fra hvor som helst", + "join": "OPPRETT / BLI MED", + "logo": { + "calendar": "Kalenderlogo", + "desktopPreviewThumbnail": "Forhåndsvisningsminiatyr for skrivebord", + "googleLogo": "Google-logo", + "logoDeepLinking": "Jitsi Meet-logo", + "microsoftLogo": "Microsoft-logo", + "policyLogo": "Retningslinjelogo" + }, + "meetingsAccessibilityLabel": "Møter", + "mobileDownLoadLinkAndroid": "Last ned mobilappen for Android", + "mobileDownLoadLinkFDroid": "Last ned mobilappen for F-Droid", + "mobileDownLoadLinkIos": "Last ned mobilappen for iOS", + "moderatedMessage": "Eller bestill en møtelink på forhånd hvor du er den eneste moderator.", + "privacy": "Personvern", + "recentList": "Nylige", + "recentListDelete": "Slett oppføring", + "recentListEmpty": "Listen din er for øyeblikket tom. Chat med teamet ditt, så finner du alle dine nylige møter her.", + "recentMeetings": "Dine nylige møter", + "reducedUIText": "Velkommen til {{app}}!", + "roomNameAllowedChars": "Møtenavnet skal ikke inneholde noen av disse tegnene: ?, &, :, ', \", %, #.", + "roomname": "Skriv inn romnavn", + "roomnameHint": "Skriv inn navnet eller URL-en til rommet du vil bli med i. Du kan finne på et navn, bare sørg for at de du møter vet det slik at de skriver inn det samme navnet.", + "sendFeedback": "Send tilbakemelding", + "settings": "Innstillinger", + "startMeeting": "Start møte", + "terms": "Vilkår", + "title": "Sikker, fullverdig og helt gratis videokonferanse", + "upcomingMeetings": "Dine kommende møter" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Whiteboard" + }, + "screenTitle": "Whiteboard" + } +} diff --git a/lang/main-nl.json b/lang/main-nl.json new file mode 100644 index 0000000..68f0077 --- /dev/null +++ b/lang/main-nl.json @@ -0,0 +1,1111 @@ +{ + "addPeople": { + "add": "Uitnodigen", + "addContacts": "Nodig uw contacten uit", + "contacts": "contacten", + "copyInvite": "Uitnodiging voor vergadering kopiëren", + "copyLink": "Link naar vergadering kopiëren", + "copyStream": "Link naar livestream kopiëren", + "countryNotSupported": "Deze bestemming wordt nog niet ondersteund.", + "countryReminder": "Belt u buiten de Verenigde Staten? Vergeet dan niet met de landcode te beginnen.", + "defaultEmail": "Uw standaard e-mail", + "disabled": "U kunt geen personen uitnodigen.", + "failedToAdd": "Het toevoegen van deelnemers is mislukt", + "footerText": "Uitgaande oproepen zijn uitgeschakeld.", + "googleEmail": "Google e-mail", + "inviteMoreHeader": "U bent de enige in de vergadering", + "inviteMoreMailSubject": "Deelnemen aan {{appName}}-vergadering", + "inviteMorePrompt": "Nodig meer personen uit", + "linkCopied": "Link gekopieerd naar klembord", + "noResults": "Geen resultaten die overeenkomen met de zoekopdracht", + "outlookEmail": "Outlook e-mail", + "phoneNumbers": "telefoonnummers", + "searching": "Zoeken…", + "shareInvite": "Uitnodiging voor vergadering delen", + "shareLink": "Deel de link naar de vergadering om anderen uit te nodigen", + "shareStream": "Deel de link naar de livestream", + "telephone": "Telefoon: {{number}}", + "title": "Personen uitnodigen voor deze vergadering", + "yahooEmail": "Yahoo e-mail" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Hoofdtelefoon", + "none": "Geen audioapparaten beschikbaar", + "phone": "Telefoon", + "speaker": "Speaker" + }, + "audioOnly": { + "audioOnly": "Lage bandbreedte" + }, + "blankPage": { + "meetingEnded": "Vergadering beëindigd." + }, + "breakoutRooms": { + "actions": { + "add": "Aparte vergaderruimte toevoegen", + "close": "Sluiten", + "join": "Deelnemen", + "leaveBreakoutRoom": "Verlaat aparte vergaderruimte", + "more": "Meer", + "remove": "Verwijderen", + "sendToBreakoutRoom": "Stuur deelnemer naar:" + }, + "defaultName": "Aparte vergaderruimte #{{index}}", + "mainRoom": "Hoofdruimte", + "notifications": { + "joined": "Aparte vergaderruimte \"{{name}}\" binnentreden", + "joinedMainRoom": "Hoofdruimte binnentreden", + "joinedTitle": "Aparte vergaderruimtes" + } + }, + "calendarSync": { + "addMeetingURL": "Een link naar een vergadering toevoegen", + "confirmAddLink": "Wilt u een Jitsi-link aan deze afspraak toevoegen?", + "error": { + "appConfiguration": "De agenda-integratie is niet juist ingesteld.", + "generic": "Er is een fout opgetreden. Controleer uw agenda-instellingen of vernieuw de agenda.", + "notSignedIn": "Er is een fout opgetreden tijdens de authenticering voor het zien van agenda-afspraken. Controleer uw agenda-instellingen en probeer u opnieuw aan te melden." + }, + "join": "Deelnemen", + "joinTooltip": "Deelnemen aan de vergadering", + "nextMeeting": "volgende vergadering", + "noEvents": "Er zijn geen aankomende afspraken gepland.", + "ongoingMeeting": "actieve vergadering", + "permissionButton": "Instellingen openen", + "permissionMessage": "Het Agenda-toegangsrecht is nodig om uw afspraken in de app te zien.", + "refresh": "Agenda vernieuwen", + "today": "Vandaag" + }, + "chat": { + "enter": "Chat openen", + "error": "Fout: uw bericht \"{{originalText}}\" is niet verzonden. Reden: {{error}}", + "fieldPlaceHolder": "Typ hier uw bericht", + "message": "Bericht", + "messageAccessibleTitle": "{{user}} zegt:", + "messageAccessibleTitleMe": "ik zeg:", + "messageTo": "Privébericht aan {{recipient}}", + "messagebox": "Typ een bericht", + "nickname": { + "popover": "Kies een bijnaam", + "title": "Voer een bijnaam in om chat te gebruiken", + "titleWithPolls": "Voer een bijnaam in om chat te gebruiken" + }, + "noMessagesMessage": "Er zijn nog geen berichten in de vergadering. Begin hier een gesprek!", + "privateNotice": "Privébericht aan {{recipient}}", + "sendButton": "Verzenden", + "smileysPanel": "Smiley paneel", + "tabs": { + "chat": "Gesprek", + "polls": "Peilingen" + }, + "title": "Gesprek", + "titleWithPolls": "Gesprek", + "you": "U" + }, + "chromeExtensionBanner": { + "buttonText": "Installeer Chrome Extensie", + "close": "Sluiten", + "dontShowAgain": "Laat me dit niet meer zien", + "installExtensionText": "Installeer de extensie voor Google Calendar en Office 365 integratie" + }, + "connectingOverlay": { + "joiningRoom": "U wordt verbonden met uw vergadering…" + }, + "connection": { + "ATTACHED": "Bijgevoegd", + "AUTHENTICATING": "Authenticeren", + "AUTHFAIL": "Authenticering mislukt", + "CONNECTED": "Verbonden", + "CONNECTING": "Verbinding maken", + "CONNFAIL": "Verbinding mislukt", + "DISCONNECTED": "Verbinding verbroken", + "DISCONNECTING": "Verbinding verbreken", + "ERROR": "Fout", + "FETCH_SESSION_ID": "Sessie-id ophalen…", + "GET_SESSION_ID_ERROR": "Fout bij ophalen sessie-id: {{code}}", + "GOT_SESSION_ID": "Sessie-id ophalen… Klaar", + "LOW_BANDWIDTH": "Video voor {{displayName}} is uitgeschakeld om bandbreedte te besparen" + }, + "connectionindicator": { + "address": "Adres:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Geschatte bandbreedte:", + "bitrate": "Bitrate:", + "bridgeCount": "Aantal servers: ", + "codecs": "Codecs (A/V): ", + "connectedTo": "Verbonden met:", + "framerate": "Framesnelheid:", + "less": "Minder weergeven", + "localaddress": "Lokaal adres:", + "localaddress_plural": "Lokale adressen:", + "localport": "Lokale poort:", + "localport_plural": "Lokale poorten:", + "maxEnabledResolution": "verstuur max", + "more": "Meer weergeven", + "packetloss": "Pakketverlies:", + "participant_id": "Deelnemer id:", + "quality": { + "good": "Goed", + "inactive": "Inactief", + "lost": "Verbroken", + "nonoptimal": "Niet optimaal", + "poor": "Slecht" + }, + "remoteaddress": "Extern adres:", + "remoteaddress_plural": "Externe adressen:", + "remoteport": "Externe poort:", + "remoteport_plural": "Externe poorten:", + "resolution": "Resolutie:", + "savelogs": "Logs opslaan", + "status": "Verbinding:", + "transport": "Transport:", + "transport_plural": "Transporten:", + "video_ssrc": "Video SSRC:" + }, + "dateUtils": { + "earlier": "Eerder", + "today": "Vandaag", + "yesterday": "Gisteren" + }, + "deepLinking": { + "appNotInstalled": "U hebt de mobiele app {{app}} nodig om aan deze vergadering deel te nemen via uw telefoon.", + "description": "Gebeurt er niets? Er is geprobeerd uw vergadering te starten in de desktop-app {{app}}. Probeer het opnieuw of start de vergadering in de web-app {{app}}.", + "descriptionWithoutWeb": "Gebeurt er niets? Er is geprobeerd om uw vergadering te starten in de desktop-app {{app}}", + "downloadApp": "Download de app", + "ifDoNotHaveApp": "Als u de app nog niet hebt:", + "ifHaveApp": "Als u de app al hebt:", + "joinInApp": "Deelnemen aan deze vergadering met de app", + "launchWebButton": "Starten in web", + "title": "Uw vergadering wordt gestart in {{app}}…", + "tryAgainButton": "Opnieuw proberen in desktop", + "unsupportedBrowser": "Het lijkt erop dat u een browser gebruikt die wij niet ondersteunen." + }, + "defaultLink": "bijv. {{url}}", + "defaultNickname": "bijv. Jannie Roze", + "deviceError": { + "cameraError": "Toegang tot uw camera is mislukt", + "cameraPermission": "Fout bij verkrijgen toegangsrecht camera", + "microphoneError": "Toegang tot uw microfoon is mislukt", + "microphonePermission": "Fout bij verkrijgen toegangsrecht microfoon" + }, + "deviceSelection": { + "noPermission": "Geen toestemming verleend", + "previewUnavailable": "Voorbeeld niet beschikbaar", + "selectADevice": "Selecteer een apparaat", + "testAudio": "Een testgeluid afspelen" + }, + "dialOut": { + "statusMessage": "is nu {{status}}" + }, + "dialog": { + "Back": "Terug", + "Cancel": "Annuleren", + "IamHost": "Ik ben de host", + "Ok": "OK", + "Remove": "Verwijderen", + "Share": "Delen", + "Submit": "Verzenden", + "WaitForHostMsg": "De vergadering is nog niet gestart. Authenticeer uzelf als u de host bent. Anders wacht u tot de host aanwezig is.", + "Yes": "Ja", + "accessibilityLabel": { + "liveStreaming": "Livestream" + }, + "add": "Toevoegen", + "allow": "Toestaan", + "alreadySharedVideoMsg": "Er wordt al een video gedeeld door een andere deelnemer. Deze vergadering staat slechts één gedeelde video tegelijkertijd toe.", + "alreadySharedVideoTitle": "Slechts één gedeelde video tegelijkertijd is toegestaan", + "applicationWindow": "Toepassingsvenster", + "authenticationRequired": "Authenticatie vereist", + "cameraConstraintFailedError": "Uw camera voldoet niet aan alle vereiste beperkingen.", + "cameraNotFoundError": "Camera niet gevonden.", + "cameraNotSendingData": "Er is geen toegang tot uw camera verkregen. Controleer of dit apparaat wordt gebruikt door een andere toepassing, selecteer een ander apparaat vanuit de instellingen of probeer de toepassing te herladen.", + "cameraNotSendingDataTitle": "Geen toegang tot camera", + "cameraPermissionDeniedError": "U hebt geen toestemming verleend om uw camera te gebruiken. U kunt wel deelnemen aan de vergadering, maar anderen kunnen u niet zien. Gebruik de cameraknop in de adresbalk om dit op te lossen.", + "cameraTimeoutError": "Er heeft een camera timeout opgetreden.", + "cameraUnknownError": "Kan de camera om een onbekende reden niet gebruiken.", + "cameraUnsupportedResolutionError": "Uw camera ondersteunt de vereiste videoresolutie niet.", + "close": "Sluiten", + "conferenceDisconnectMsg": "Controleer uw netwerkverbinding. Over {{seconds}} sec. wordt opnieuw geprobeerd verbinding te maken…", + "conferenceDisconnectTitle": "Uw verbinding is verbroken.", + "conferenceReloadMsg": "Er wordt geprobeerd om dit op te lossen. Over {{seconds}} sec. wordt opnieuw geprobeerd verbinding te maken…", + "conferenceReloadTitle": "Er is helaas iets misgegaan.", + "confirm": "Bevestigen", + "confirmNo": "Nee", + "confirmYes": "Ja", + "connectError": "Oeps! Er is iets misgegaan en er kon geen verbinding met de vergadering worden gemaakt.", + "connectErrorWithMsg": "Oeps! Er is iets misgegaan en er kon geen verbinding met de vergadering worden gemaakt: {{msg}}", + "connecting": "Verbinding maken", + "contactSupport": "Contact opnemen met ondersteuning", + "copied": "Gekopieerd", + "copy": "Kopiëren", + "dismiss": "Negeren", + "displayNameRequired": "Hallo! Wat is uw naam?", + "done": "Gereed", + "e2eeDescription": "Eind-tot-Eind-Versleuteling is momenteel EXPERIMENTEEL. Houd er rekening mee dat inschakelen van eind-tot-eind-versleuteling de door de server geleverde services zal uitschakelen zoals: opnemen, livestreamen en deelname via telefoon. Houd er ook rekening mee dat de vergadering alleen zal werken voor personen die deelnemen vanaf browsers met ondersteuning voor insertable streams.", + "e2eeLabel": "Sleutel", + "e2eeWarning": "WAARSCHUWING: Niet alle deelnemers in deze vergadering lijken ondersteuning te hebben voor eind-tot-eind-versleuteling. Als u het inschakelt zullen zij u niet kunnen zien of horen.", + "enterDisplayName": "Voer hier uw naam in", + "error": "Fout", + "gracefulShutdown": "Onze service is momenteel niet beschikbaar vanwege onderhoud. Probeer het later opnieuw.", + "grantModeratorDialog": "Weet u zeker dat u de moderatorrechten wilt verlenen aan deze deelnemer?", + "grantModeratorTitle": "Moderatorrechten verlenen", + "incorrectPassword": "Onjuiste gebruikersnaam of wachtwoord", + "incorrectRoomLockPassword": "Onjuist wachtwoord", + "internalError": "Oeps! Er is iets misgegaan. De volgende fout trad op: {{error}}", + "internalErrorTitle": "Interne fout", + "kickMessage": "U kunt contact opnemen met {{participantDisplayName}} voor meer informatie.", + "kickParticipantButton": "Verwijderen", + "kickParticipantDialog": "Weet u zeker dat u deze deelnemer wilt verwijderen?", + "kickParticipantTitle": "Deze deelnemer verwijderen?", + "kickTitle": "Oei! {{participantDisplayName}} heeft u uit de vergadering verwijderd", + "liveStreaming": "Livestreamen", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Niet mogelijk tijdens opnemen", + "liveStreamingDisabledTooltip": "Livestream starten uitgeschakeld.", + "lockMessage": "Het vergrendelen van de vergadering is mislukt.", + "lockRoom": "$t(lockRoomPasswordUppercase) voor vergadering toevoegen", + "lockTitle": "Vergrendelen mislukt", + "login": "Login", + "logoutQuestion": "Weet u zeker dat u zich wilt afmelden en de vergadering wilt stoppen?", + "logoutTitle": "Afmelden", + "maxUsersLimitReached": "Het maximale aantal deelnemers is bereikt. De vergadering is vol. Neem contact op met de eigenaar van de vergadering of probeer het later opnieuw!", + "maxUsersLimitReachedTitle": "Maximaal aantal deelnemers bereikt", + "micConstraintFailedError": "Uw microfoon voldoet niet aan alle vereiste beperkingen.", + "micNotFoundError": "Microfoon niet gevonden.", + "micNotSendingData": "Ga naar de instellingen van uw computer om het dempen van uw microfoon op te heffen en het geluidsniveau aan te passen", + "micNotSendingDataTitle": "Uw microfoon is gedempt door uw systeeminstellingen", + "micPermissionDeniedError": "U hebt geen toestemming verleend om uw microfoon te gebruiken. U kunt wel deelnemen aan de vergadering, maar anderen kunnen u niet horen. Gebruik de cameraknop in de adresbalk om dit op te lossen.", + "micTimeoutError": "Kan de microfoon niet gebruiken vanwege een timeout fout.", + "micUnknownError": "Kan de microfoon om een onbekende reden niet gebruiken.", + "moderationAudioLabel": "Sta deelnemers toe om voor henzelf dempen op te heffen", + "moderationVideoLabel": "Sta deelnemers toe om hun camera aan te zetten", + "muteEveryoneDialog": "Weet u zeker dat u iedereen wilt dempen? U kunt het dempen niet opheffen, maar zij kunnen dit wel ieder moment zelf doen.", + "muteEveryoneDialogModerationOn": "De deelnemers kunnen te allen tijde een verzoek om te spreken indienen.", + "muteEveryoneElseDialog": "Eenmaal gedempt kunt u het dempen niet opheffen, maar zij kunnen dit wel ieder moment zelf doen.", + "muteEveryoneElseTitle": "Iedereen dempen behalve {{whom}}?", + "muteEveryoneElsesVideoDialog": "Als u de camera's uitzet kunt u hem niet meer aanzetten, maar de andere deelnemers kunnen dit wel ieder moment zelf doen.", + "muteEveryoneElsesVideoTitle": "De camera van iedereen behalve {{whom}} uitzetten?", + "muteEveryoneSelf": "uzelf", + "muteEveryoneStartMuted": "Iedereen start vanaf nu gedempt", + "muteEveryoneTitle": "Iedereen dempen?", + "muteEveryonesVideoDialog": "Weet u zeker dat u de camera van iedereen wilt uitzetten? Als u de camera's uitzet kunt u deze niet meer aanzetten, maar de andere deelnemers kunnen dit wel ieder moment zelf doen.", + "muteEveryonesVideoDialogModerationOn": "De deelnemers kunnen te allen tijde een verzoek om hun camera aan te zetten indienen.", + "muteEveryonesVideoDialogOk": "Uitzetten", + "muteEveryonesVideoTitle": "Camera van iedereen uitzetten?", + "muteParticipantBody": "U kunt het dempen niet opheffen, maar zij kunnen dit wel ieder moment zelf doen.", + "muteParticipantButton": "Dempen", + "muteParticipantDialog": "Weet u zeker dat u deze deelnemer wilt dempen? U kunt het dempen niet opheffen, maar deze deelnemer kan dit wel ieder moment zelf doen.", + "muteParticipantTitle": "Deze deelnemer dempen?", + "muteParticipantsVideoBody": "Het is niet mogelijk voor u om de camera weer aan te zetten, de deelnemer kan de camera wel weer aanzetten.", + "muteParticipantsVideoButton": "Camera uitzetten", + "muteParticipantsVideoTitle": "Camera van deze deelnemer uitzetten?", + "passwordLabel": "De vergadering is vergrendeld door een deelnemer. Voer het $t(lockRoomPassword) in om deel te nemen.", + "passwordNotSupported": "Instellen van een $t(lockRoomPassword) voor de vergadering wordt niet ondersteund.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) niet ondersteund", + "passwordRequired": "$t(lockRoomPasswordUppercase) vereist", + "popupError": "Uw browser blokkeert pop-upvensters van deze site. Schakel pop-ups in vanuit de beveiligingsinstellingen van uw browser en probeer het opnieuw.", + "popupErrorTitle": "Pop-up geblokkeerd", + "readMore": "meer", + "recording": "Opnemen", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Niet mogelijk tijdens een livestream", + "recordingDisabledTooltip": "Opname starten uitgeschakeld.", + "rejoinNow": "Nu opnieuw deelnemen", + "remoteControlAllowedMessage": "{{user}} heeft uw verzoek om extern beheer geaccepteerd.", + "remoteControlDeniedMessage": "{{user}} heeft uw verzoek om extern beheer geweigerd.", + "remoteControlErrorMessage": "Er is een fout opgetreden tijdens het verzoek om toestemming voor extern beheer van {{user}}!", + "remoteControlRequestMessage": "Wilt u {{user}} toestemming verlenen om uw bureaublad extern te beheren?", + "remoteControlShareScreenWarning": "Let op: als u op 'Toestaan' drukt, wordt uw scherm gedeeld!", + "remoteControlStopMessage": "De sessie van extern beheer is geëindigd!", + "remoteControlTitle": "Extern beheer van bureaublad", + "removePassword": "$t(lockRoomPasswordUppercase) verwijderen", + "removeSharedVideoMsg": "Weet u zeker dat u uw gedeelde video wilt verwijderen?", + "removeSharedVideoTitle": "Gedeelde video verwijderen", + "reservationError": "Fout in reserveringssysteem", + "reservationErrorMsg": "Foutcode: {{code}}, bericht: {{msg}}", + "retry": "Opnieuw proberen", + "screenSharingAudio": "Deel audio", + "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.", + "sendPrivateMessage": "U hebt recentelijk een privébericht ontvangen. Bent u van plan daar privé op te reageren, of wilt u uw bericht naar de groep sturen?", + "sendPrivateMessageCancel": "Stuur naar de groep", + "sendPrivateMessageOk": "Privé versturen", + "sendPrivateMessageTitle": "Privé versturen?", + "serviceUnavailable": "Service niet beschikbaar", + "sessTerminated": "Gesprek beëindigd", + "sessionRestarted": "Gesprek herstart door de server", + "shareVideoLinkError": "Geef een juiste link op", + "shareVideoTitle": "Een video delen", + "shareYourScreen": "Uw scherm delen", + "shareYourScreenDisabled": "Schermdeling is uitgeschakeld.", + "startLiveStreaming": "Livestream starten", + "startRecording": "Opname starten", + "startRemoteControlErrorMessage": "Er is een fout opgetreden tijdens het starten van de sessie van extern beheer.", + "stopLiveStreaming": "Livestream stoppen", + "stopRecording": "Opname stoppen", + "stopRecordingWarning": "Weet u zeker dat u de opname wilt stoppen?", + "stopStreamingWarning": "Weet u zeker dat u de livestream wilt stoppen?", + "streamKey": "Sleutel voor livestream", + "thankYou": "Bedankt voor het gebruik van {{appName}}.", + "token": "token", + "tokenAuthFailed": "Sorry, u bent niet toegestaan om deel te nemen aan dit gesprek.", + "tokenAuthFailedTitle": "Authenticering mislukt", + "transcribing": "Transcriberen", + "unlockRoom": "$t(lockRoomPasswordUppercase) voor vergadering verwijderen", + "user": "gebruiker", + "userPassword": "gebruikerswachtwoord", + "videoLink": "Video link", + "yourEntireScreen": "Uw gehele scherm" + }, + "documentSharing": { + "title": "Gedeeld Document" + }, + "e2ee": { + "labelToolTip": "Audio- en Videocommunicatie in dit gesprek is eind-tot-eind-versleuteld" + }, + "embedMeeting": { + "title": "Deze vergadering embedden" + }, + "feedback": { + "average": "Gemiddeld", + "bad": "Slecht", + "detailsLabel": "We horen er graag meer over.", + "good": "Goed", + "rateExperience": "Beoordeel uw vergaderervaring", + "veryBad": "Zeer Slecht", + "veryGood": "Zeer Goed" + }, + "helpView": { + "title": "Helpcentrum" + }, + "incomingCall": { + "answer": "Beantwoorden", + "audioCallTitle": "Inkomende oproep", + "decline": "Negeren", + "productLabel": "vanuit Jitsi Meet", + "videoCallTitle": "Inkomende video-oproep" + }, + "info": { + "accessibilityLabel": "Informatie weergeven", + "addPassword": "$t(lockRoomPasswordUppercase) toevoegen", + "cancelPassword": "$t(lockRoomPasswordUppercase) annuleren", + "conferenceURL": "Link:", + "copyNumber": "Kopieer nummer", + "country": "Land", + "dialANumber": "Om deel te nemen aan uw vergadering, belt u een van deze nummers en voert u vervolgens de pincode in.", + "dialInConferenceID": "Pincode:", + "dialInNotSupported": "Sorry, inbellen wordt momenteel niet ondersteund.", + "dialInNumber": "Inbellen:", + "dialInSummaryError": "Fout bij het ophalen van inbelgegevens. Probeer het later opnieuw.", + "dialInTollFree": "Gratis", + "genericError": "Oeps, er is iets misgegaan.", + "inviteLiveStream": "Om de livestream van deze vergadering te bekijken, klikt u op deze link: {{url}}", + "invitePhone": "Om deel te nemen via uw telefoon, tik hierop: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Op zoek naar een ander inbelnummer?\nBekijk de inbelnummers voor de vergadering: {{url}}\n\n\nAls u ook inbelt via een conferentietelefoon, neem dan deel zonder audio: {{silentUrl}}", + "inviteURLFirstPartGeneral": "U bent uitgenodigd om aan een vergadering deel te nemen.", + "inviteURLFirstPartPersonal": "{{name}} nodigt u uit voor een vergadering.\n", + "inviteURLSecondPart": "\nDeelnemen aan de vergadering:\n{{url}}\n", + "label": "Vergaderingsgegevens", + "liveStreamURL": "Livestream:", + "moreNumbers": "Meer nummers", + "noNumbers": "Geen inbelnummers.", + "noPassword": "Geen", + "noRoom": "Er is geen ruimte opgegeven om naar in te bellen.", + "numbers": "Inbelnummers", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Delen", + "tooltip": "De link en inbelgegevens voor deze vergadering delen" + }, + "inlineDialogFailure": { + "msg": "Er is een fout opgetreden.", + "retry": "Opnieuw proberen", + "support": "Ondersteuning", + "supportMsg": "Als dit blijft gebeuren, neemt u contact op met" + }, + "inviteDialog": { + "alertText": "Niet alle deelnemers zijn uitgenodigd.", + "header": "Uitnodigen", + "searchCallOnlyPlaceholder": "Voer telefoonnummer in", + "searchPeopleOnlyPlaceholder": "Zoek deelnemers", + "searchPlaceholder": "Deelnemer of telefoonnummer", + "send": "Verzenden" + }, + "keyboardShortcuts": { + "focusLocal": "Focus op uw video", + "focusRemote": "Focus op de video van een andere persoon", + "fullScreen": "Volledig scherm weergeven of afsluiten", + "keyboardShortcuts": "Sneltoetsen", + "localRecording": "Besturingselementen voor lokale opnamen weergeven of verbergen", + "mute": "Uw microfoon dempen of het dempen opheffen", + "pushToTalk": "Druk om te spreken", + "raiseHand": "Uw hand opsteken of laten zakken", + "showSpeakerStats": "Sprekerstatistieken weergeven", + "toggleChat": "Chat openen of sluiten", + "toggleFilmstrip": "Videominiaturen weergeven of verbergen", + "toggleScreensharing": "Wisselen tussen camera en schermdeling", + "toggleShortcuts": "Sneltoetsen weergeven of verbergen", + "videoMute": "Uw camera aanzetten of uitzetten" + }, + "largeVideo": { + "screenIsShared": "U deelt uw scherm", + "showMeWhatImSharing": "Laat me zien wat ik deel" + }, + "liveStreaming": { + "busy": "Er wordt gewerkt aan het vrijmaken van streamingmiddelen. Probeer het over enkele minuten opnieuw.", + "busyTitle": "Alle streamers zijn momenteel bezet", + "changeSignIn": "Wissel van account.", + "choose": "Kies een livestream", + "chooseCTA": "Kies een streamingoptie. U bent momenteel aangemeld als {{email}}.", + "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.", + "errorLiveStreamNotEnabled": "Livestreamen is niet ingeschakeld voor {{email}}. Schakel livestreamen in of meld u aan met een account waarbij livestreamen is ingeschakeld.", + "expandedOff": "De livestream is gestopt", + "expandedOn": "De vergadering wordt momenteel gestreamd naar YouTube.", + "expandedPending": "De livestream wordt gestart…", + "failedToStart": "Livestream starten mislukt", + "getStreamKeyManually": "Er konden geen livestreams opgehaald worden. Probeer uw livestream-sleutel van YouTube te krijgen.", + "googlePrivacyPolicy": "Privacybeleid Google", + "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", + "onBy": "{{name}} heeft de livestream gestart.", + "pending": "Livestream starten…", + "serviceName": "Livestreamservice", + "signIn": "Aanmelden met Google", + "signInCTA": "Meld u aan of voer uw livestream-sleutel van YouTube in.", + "signOut": "Afmelden", + "signedInAs": "U bent momenteel aangemeld als:", + "start": "Een livestream starten", + "streamIdHelp": "Wat is dit?", + "title": "Livestream", + "unavailableTitle": "Livestreamen niet beschikbaar", + "youtubeTerms": "Servicevoorwaarden YouTube" + }, + "lobby": { + "allow": "Toestaan", + "backToKnockModeButton": "Geen wachtwoord, vraag om deel te mogen nemen", + "dialogTitle": "Lobby-modus", + "disableDialogContent": "Lobby-modus is momenteel ingeschakeld. Deze functie zorgt ervoor dat ongewenste deelnemers niet aan uw vergadering kunnen deelnemen. Wilt u het uitschakelen?", + "disableDialogSubmit": "Uitschakelen", + "emailField": "Voer uw e-mailadres in", + "enableDialogPasswordField": "Stel wachtwoord in (optioneel)", + "enableDialogSubmit": "Inschakelen", + "enableDialogText": "Met de lobby-modus kunt u uw vergadering beveiligen, door deelnemers alleen toe te laten na een formele goedkeuring van een moderator.", + "enterPasswordButton": "Voer wachtwoord voor vergadering in", + "enterPasswordTitle": "Voer wachtwoord in om deel te nemen aan vergadering", + "errorMissingPassword": "Voer alstublieft het wachtwoord van de vergadering in", + "invalidPassword": "Ongeldig wachtwoord", + "joinRejectedMessage": "Uw verzoek tot deelname is afgewezen door een moderator.", + "joinRejectedTitle": "Verzoek tot deelname afgewezen", + "joinTitle": "Deelnemen aan vergadering", + "joinWithPasswordMessage": "Poging tot deelname met wachtwoord, even geduld a.u.b…", + "joiningMessage": "U neemt deel aan de vergadering zodra iemand uw verzoek accepteert", + "joiningTitle": "Vragen om deel te nemen aan vergadering…", + "joiningWithPasswordTitle": "Deelnemen met wachtwoord…", + "knockButton": "Vragen om deel te nemen", + "knockTitle": "Iemand wil deelnemen aan de vergadering", + "knockingParticipantList": "Lijst van aankloppende deelnemers", + "nameField": "Voer uw naam in", + "notificationLobbyAccessDenied": "{{targetParticipantName}} is afgewezen om deel te nemen door {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} is toegestaan om deel te nemen door {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby is uitgeschakeld door {{originParticipantName}}", + "notificationLobbyEnabled": "Lobby is ingeschakeld door {{originParticipantName}}", + "notificationTitle": "Lobby", + "passwordField": "Voer wachtwoord voor vergadering in", + "passwordJoinButton": "Deelnemen", + "title": "Lobby", + "toggleLabel": "Lobby inschakelen" + }, + "localRecording": { + "clientState": { + "off": "Uit", + "on": "Aan", + "unknown": "Onbekend" + }, + "dialogTitle": "Besturingselementen voor Lokale Opnamen", + "duration": "Duur", + "durationNA": "N.v.t.", + "encoding": "Codering", + "label": "LOO", + "labelToolTip": "Lokale opname is ingeschakeld", + "localRecording": "Lokale Opname", + "me": "Ik", + "messages": { + "engaged": "Lokale opname ingeschakeld.", + "finished": "Opnamesessie {{token}} is voltooid. Stuur het opnamebestand naar de moderator.", + "finishedModerator": "Opnamesessie {{token}} is voltooid. De opname van de lokale track is opgeslagen. Vraag de andere deelnemers om hun opnamen te verzenden.", + "notModerator": "U bent niet de moderator. U kunt geen lokale opnamen starten of stoppen." + }, + "moderator": "Moderator", + "no": "Nee", + "participant": "Deelnemer", + "participantStats": "Deelnemerstatistieken", + "sessionToken": "Sessietoken", + "start": "Opname starten", + "stop": "Opname stoppen", + "yes": "Ja" + }, + "lockRoomPassword": "wachtwoord", + "lockRoomPasswordUppercase": "Wachtwoord", + "lonelyMeetingExperience": { + "button": "Anderen uitnodigen", + "youAreAlone": "U bent de enige in de vergadering" + }, + "me": "ik", + "notify": { + "OldElectronAPPTitle": "Beveiligingskwetsbaarheid!", + "allowAction": "Toestaan", + "allowedUnmute": "U kunt het dempen van uw microfoon opheffen, uw camera aanzetten of uw scherm delen.", + "audioUnmuteBlockedTitle": "Dempen opheffen is geblokkeerd!", + "chatMessages": "Chatberichten", + "connectedOneMember": "{{name}} neemt nu deel aan de vergadering", + "connectedThreePlusMembers": "{{name}} en {{count}} anderen nemen nu deel aan de vergadering", + "connectedTwoMembers": "{{first}} en {{second}} nemen nu deel aan de vergadering", + "disconnected": "verbinding verbroken", + "displayNotifications": "Toon meldingen voor", + "focus": "Focus van vergadering", + "focusFail": "{{component}} niet beschikbaar - probeer over {{ms}} sec. opnieuw", + "groupTitle": "Meldingen", + "hostAskedUnmute": "De moderator wil graag dat u spreekt", + "invitedOneMember": "{{name}} is uitgenodigd", + "invitedThreePlusMembers": "{{name}} en {{count}} anderen zijn uitgenodigd", + "invitedTwoMembers": "{{first}} en {{second}} zijn uitgenodigd", + "kickParticipant": "{{kicked}} is verwijderd door {{kicker}}", + "leftOneMember": "{{name}} heeft de vergadering verlaten", + "leftThreePlusMembers": "{{name}} en vele anderen hebben de vergadering verlaten", + "leftTwoMembers": "{{first}} en {{second}} hebben de vergadering verlaten", + "me": "Ik", + "moderationInEffectCSDescription": "Steek uw hand op als u uw scherm wilt delen.", + "moderationInEffectCSTitle": "Schermdelen is geblokkeerd door de moderator", + "moderationInEffectDescription": "Steek uw hand op als u wilt spreken.", + "moderationInEffectTitle": "Uw microfoon is gedempt door de moderator", + "moderationInEffectVideoDescription": "Steek uw hand op als u uw camera wilt aanzetten.", + "moderationInEffectVideoTitle": "Uw camera is geblokkeerd door de moderator", + "moderationRequestFromModerator": "De host vraagt u om dempen op te heffen", + "moderationRequestFromParticipant": "Wil graag spreken", + "moderator": "Moderatorrechten verleend!", + "muted": "U hebt het gesprek gedempt gestart.", + "mutedRemotelyDescription": "U kunt het dempen altijd opheffen wanneer u klaar bent om te spreken. Demp opnieuw wanneer u klaar bent, om ruis buiten de vergadering te houden.", + "mutedRemotelyTitle": "U bent gedempt door {{participantDisplayName}}!", + "mutedTitle": "U bent gedempt!", + "newDeviceAction": "Gebruik", + "newDeviceAudioTitle": "Nieuw audioapparaat gedetecteerd", + "newDeviceCameraTitle": "Nieuwe camera gedetecteerd", + "oldElectronClientDescription1": "Het lijkt erop dat u een oude versie van Jitsi Meet gebruikt, waarvan beveiligingskwetsbaarheden bekend zijn. Zorg ervoor dat u nu bijwerkt naar de ", + "oldElectronClientDescription2": "nieuwste versie", + "oldElectronClientDescription3": "!", + "participantWantsToJoin": "Wil deelnemen aan de vergadering", + "participantsWantToJoin": "Willen deelnemen aan de vergadering", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) verwijderd door een andere deelnemer", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) ingesteld door een ander deelnemer", + "raiseHandAction": "Hand opsteken", + "raisedHand": "{{name}} zou graag willen spreken.", + "raisedHands": "{{participantName}} en {{raisedHands}} meer mensen", + "reactionSounds": "Geluiden uitschakelen", + "reactionSoundsForAll": "Geluiden uitschakelen voor iedereen", + "somebody": "Iemand", + "startSilentDescription": "Neem opnieuw aan de vergadering deel om audio in te schakelen", + "startSilentTitle": "U neemt deel zonder audio-output!", + "suboptimalBrowserWarning": "Helaas zal uw vergaderervaring hier waarschijnlijk niet zo goed zijn. Er wordt geprobeerd dit in de toekomst te verbeteren, maar tot die tijd kunt u proberen een van de volledig ondersteunde browsers te gebruiken.", + "suboptimalExperienceTitle": "Browserwaarschuwing", + "unmute": "Dempen opheffen", + "videoMutedRemotelyDescription": "U kan hem ten alle tijden weer aanzetten.", + "videoMutedRemotelyTitle": "Uw camera is uitgezet door {{participantDisplayName}}!", + "viewLobby": "Lobby bekijken", + "waitingParticipants": "{{waitingParticipants}} mensen" + }, + "participantsPane": { + "actions": { + "admit": "Toelaten", + "admitAll": "Allen toelaten", + "allow": "Sta deelnemers toe:", + "allowVideo": "Video toestaan", + "askUnmute": "Vragen om dempen op te heffen", + "audioModeration": "Voor henzelf dempen op te heffen", + "blockEveryoneMicCamera": "Blokkeer microfoon en camera van allen", + "invite": "Iemand uitnodigen", + "moreModerationActions": "Meer moderatoropties", + "moreModerationControls": "Meer moderatorinstellingen", + "moreParticipantOptions": "Meer deelnemeropties", + "mute": "Dempen", + "muteAll": "Allen dempen", + "muteEveryoneElse": "Alle anderen dempen", + "reject": "Afwijzen", + "stopEveryonesVideo": "Camera's van iedereen uitzetten", + "stopVideo": "Camera uitzetten", + "unblockEveryoneMicCamera": "Deblokkeer microfoon en camera van allen", + "videoModeration": "Hun camera aan te zetten" + }, + "close": "Sluiten", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Deelnemers aan vergadering ({{count}})", + "waitingLobby": "In de lobby aan het wachten ({{count}})" + }, + "search": "Zoek deelnemers", + "title": "Deelnemers" + }, + "passwordDigitsOnly": "Maximaal {{number}} cijfers", + "passwordSetRemotely": "ingesteld door een andere deelnemer", + "polls": { + "answer": { + "skip": "Sla over", + "submit": "Verzend" + }, + "by": "Door {{ name }}", + "create": { + "addOption": "Voeg optie toe", + "answerPlaceholder": "Optie {{index}}", + "cancel": "Annuleer", + "create": "Creeër een peiling", + "pollOption": "Peiling optie {{index}}", + "pollQuestion": "Peiling vraag", + "questionPlaceholder": "Stel een vraag", + "removeOption": "Verwijder optie", + "send": "Verstuur" + }, + "errors": { + "notUniqueOption": "Opties moeten uniek zijn" + }, + "notification": { + "description": "Open het peilingen tabblad om te stemmen", + "title": "Een nieuwe peiling is aangemaakt in deze vergadering" + }, + "results": { + "changeVote": "Verander stem", + "empty": "Er zijn nog geen peilingen in deze vergadering. Start hier een peiling!", + "hideDetailedResults": "Verberg details", + "showDetailedResults": "Toon details", + "vote": "Stem" + } + }, + "poweredby": "mogelijk gemaakt door", + "prejoin": { + "audioAndVideoError": "Audio- en videofout:", + "audioDeviceProblem": "Er is een probleem met uw microfoon", + "audioOnlyError": "Audiofout:", + "audioTrackError": "Kon audiotrack niet aanmaken.", + "callMe": "Bel me", + "callMeAtNumber": "Bel me op dit nummer:", + "calling": "Bellen", + "configuringDevices": "Apparaten instellen…", + "connectedWithAudioQ": "Bent u verbonden met audio?", + "connection": { + "good": "Uw internetverbinding lijkt goed te zijn!", + "nonOptimal": "Uw internetverbinding is niet optimaal", + "poor": "Uw internetverbinding is slecht" + }, + "copyAndShare": "Kopieer & deel link naar vergadering", + "dialInMeeting": "Inbellen naar de vergadering", + "dialInPin": "Inbellen naar de vergadering en pincode invoeren:", + "dialing": "Inbellen", + "doNotShow": "Laat dit niet meer zien", + "errorDialOut": "Kon niet bellen", + "errorDialOutDisconnected": "Kon niet bellen. Verbinding verbroken", + "errorDialOutFailed": "Kon niet bellen. Oproep is mislukt", + "errorDialOutStatus": "Fout bij ophalen belstatus", + "errorMissingName": "Voer alstublieft uw naam in om deel te nemen aan de vergadering", + "errorNoPermissions": "U moet toegang tot uw microfoon en camera inschakelen", + "errorStatusCode": "Fout bij bellen, statuscode: {{status}}", + "errorValidation": "Nummervalidatie mislukt", + "iWantToDialIn": "Ik wil inbellen", + "initiated": "Gesprek gestart", + "joinAudioByPhone": "Deelnemen met telefoonaudio", + "joinMeeting": "Deelnemen aan de vergadering", + "joinWithoutAudio": "Deelnemen zonder audio", + "keyboardShortcuts": "Sneltoetsen inschakelen", + "linkCopied": "Link gekopieerd naar klembord", + "lookGood": "Het klinkt alsof uw microfoon naar behoren werkt", + "or": "of", + "premeeting": "Voorbeeldscherm", + "screenSharingError": "Fout bij schermdeling:", + "startWithPhone": "Starten met telefoonaudio", + "videoOnlyError": "Videofout:", + "videoTrackError": "Kon videotrack niet aanmaken.", + "viewAllNumbers": "bekijk alle nummers" + }, + "presenceStatus": { + "busy": "Bezet", + "calling": "Bellen…", + "connected": "Verbonden", + "connecting": "Verbinding maken…", + "connecting2": "Verbinding maken*…", + "disconnected": "Verbinding verbroken", + "expired": "Verlopen", + "ignored": "Genegeerd", + "initializingCall": "Oproep Starten…", + "invited": "Uitgenodigd", + "rejected": "Geweigerd", + "ringing": "Gaat over…" + }, + "privacyView": { + "title": "Privacy" + }, + "profile": { + "setDisplayNameLabel": "Uw weergavenaam instellen", + "setEmailInput": "Voer e-mailadres in", + "setEmailLabel": "Uw Gravatar e-mail instellen", + "title": "Profiel" + }, + "raisedHand": "Zou graag willen spreken", + "recording": { + "authDropboxText": "Uploaden naar Dropbox", + "availableSpace": "Beschikbare ruimte: {{spaceLeft}} MB (circa {{duration}} minuten aan opname)", + "beta": "BÈTA", + "busy": "Er worden opnamemiddelen vrijgemaakt. Probeer het over enkele minuten opnieuw.", + "busyTitle": "Alle opnemers zijn momenteel bezet", + "error": "Opname is mislukt. Probeer het opnieuw.", + "expandedOff": "Opname is gestopt", + "expandedOn": "De vergadering wordt momenteel opgenomen.", + "expandedPending": "Opname wordt gestart…", + "failedToStart": "Opname starten mislukt", + "fileSharingdescription": "Opname delen met deelnemers aan vergadering", + "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}}.", + "live": "LIVE", + "loggedIn": "Aangemeld als {{userName}}", + "off": "Opname gestopt", + "offBy": "{{name}} heeft de opname gestopt", + "on": "Opnemen", + "onBy": "{{name}} heeft de opname gestart", + "pending": "Voorbereiden op opnemen van de vergadering…", + "rec": "OPN", + "serviceDescription": "Uw opname wordt opgeslagen door de opnameservice", + "serviceName": "Opnameservice", + "signIn": "Aanmelden", + "signOut": "Afmelden", + "title": "Opnemen", + "unavailable": "Oeps! {{serviceName}} is momenteel niet beschikbaar. Er wordt aan een oplossing gewerkt. Probeer het later opnieuw.", + "unavailableTitle": "Opname niet beschikbaar" + }, + "screenshareDisplayName": "Scherm van {{name}}", + "sectionList": { + "pullToRefresh": "Naar beneden slepen om te vernieuwen" + }, + "security": { + "about": "U kunt een $t(lockRoomPassword) toevoegen aan uw vergadering. Deelnemers moeten het $t(lockRoomPassword) opgeven voordat zij aan de vergadering mogen deelnemen.", + "aboutReadOnly": "Moderators kunnen een $t(lockRoomPassword) toevoegen aan de vergadering. Deelnemers moeten het $t(lockRoomPassword) opgeven voordat zij aan de vergadering mogen deelnemen.", + "insecureRoomNameWarning": "De naam van de ruimte is onveilig. Ongewenste deelnemers kunnen deelnemen aan uw vergadering. Overweeg uw vergadering te beveiligen via de beveiligingsknop.", + "title": "Beveiligingsopties" + }, + "settings": { + "calendar": { + "about": "De agenda-integratie van {{appName}} wordt gebruikt voor een veilige toegang tot uw agenda, zodat het aankomende afspraken kan uitlezen.", + "disconnect": "Verbinding verbreken", + "microsoftSignIn": "Aanmelden met Microsoft", + "signedIn": "Agenda-afspraken voor {{email}} worden uitgelezen. Klik op de knop 'Verbinding verbreken' hieronder om de toegang tot agenda-afspraken te stoppen.", + "title": "Agenda" + }, + "desktopShareFramerate": "Framesnelheid schermdeling", + "desktopShareHighFpsWarning": "Een hogere framesnelheid voor schermdeling kan invloed hebben op de bandbreedte. U moet het schermdelen opnieuw beginnen om de nieuwe instellingen toe te passen.", + "desktopShareWarning": "U moet het schermdelen opnieuw beginnen om de nieuwe instellingen toe te passen.", + "devices": "Apparaten", + "followMe": "Iedereen volgt mij", + "framesPerSecond": "beelden per seconde", + "incomingMessage": "Binnenkomend bericht", + "language": "Taal", + "loggedIn": "Aangemeld als {{name}}", + "microphones": "Microfoons", + "moderator": "Moderator", + "more": "Meer", + "name": "Naam", + "noDevice": "Geen", + "selectAudioOutput": "Audio-uitvoer", + "selectCamera": "Camera", + "selectMic": "Microfoon", + "selfView": "Eigen beeld", + "sounds": "Geluiden", + "speakers": "Speakers", + "startAudioMuted": "Iedereen start gedempt", + "startReactionsMuted": "Reactiegeluiden voor iedereen dempen", + "startVideoMuted": "Iedereen start verborgen", + "title": "Instellingen" + }, + "settingsView": { + "advanced": "Geavanceerd", + "alertCancel": "Annuleren", + "alertOk": "OK", + "alertTitle": "Waarschuwing", + "alertURLText": "De ingevoerde server-URL is ongeldig", + "buildInfoSection": "Versiegegevens", + "conferenceSection": "Vergadering", + "disableCallIntegration": "Schakel inbellen via telefoon uit", + "disableCrashReporting": "Schakel crashrapportage uit", + "disableCrashReportingWarning": "Weet u zeker dat u crashrapportage wilt uitschakelen? De instelling wordt toegepast nadat u de app opnieuw hebt opgestart.", + "disableP2P": "Schakel Peer-to-Peer-modus uit", + "displayName": "Weergavenaam", + "email": "E‑mail", + "header": "Instellingen", + "profileSection": "Profiel", + "serverURL": "Server-URL", + "showAdvanced": "Geavanceerde instellingen weergeven", + "startWithAudioMuted": "Met audio gedempt starten", + "startWithVideoMuted": "Met video gedempt starten", + "version": "Versie" + }, + "share": { + "dialInfoText": "\n\n=====\n\nWilt u inbellen via uw telefoon?\n\n{{defaultDialInNumber}}Klik op deze link om de inbelnummers voor deze vergadering te zien\n{{dialInfoPageUrl}}", + "mainText": "Klik op de volgende link om deel te nemen aan de vergadering:\n{{roomUrl}}" + }, + "speaker": "Spreker", + "speakerStats": { + "hours": "{{count}}u", + "minutes": "{{count}}m", + "name": "Naam", + "search": "Zoeken", + "searchHint": "Zoek deelnemers", + "seconds": "{{count}}s", + "speakerStats": "Sprekerstatistieken", + "speakerTime": "Sprekertijd" + }, + "startupoverlay": { + "genericTitle": "De vergadering heeft toegang tot uw microfoon en camera nodig.", + "policyText": " ", + "title": "{{app}} heeft toegang tot uw microfoon en camera nodig." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Opnieuw deelnemen", + "text": "Druk op de knop Opnieuw deelnemen om opnieuw verbinding te maken.", + "title": "Uw videogesprek is onderbroken omdat deze computer op de slaapstand overging." + }, + "toolbar": { + "Settings": "Instellingen", + "accessibilityLabel": { + "Settings": "Instellingen in- of uitschakelen", + "audioOnly": "Alleen audio in- of uitschakelen", + "audioRoute": "Het afspeelapparaat selecteren", + "breakoutRoom": "Neem deel aan/verlaat aparte vergaderruimte", + "callQuality": "Videokwaliteit beheren", + "cc": "Ondertiteling in- of uitschakelen", + "chat": "Chatvenster in- of uitschakelen", + "document": "Gedeeld document in- of uitschakelen", + "download": "Download onze apps", + "embedMeeting": "Vergadering embedden", + "endConference": "Vergadering voor iedereen beëindigen", + "feedback": "Feedback achterlaten", + "fullScreen": "Volledig scherm in- of uitschakelen", + "grantModerator": "Moderatorrechten verlenen", + "hangup": "Het gesprek verlaten", + "help": "Hulp", + "invite": "Personen uitnodigen", + "kick": "Deelnemer verwijderen", + "leaveConference": "Vergadering verlaten", + "lobbyButton": "Lobby-modus in- of uitschakelen", + "localRecording": "Besturingselementen voor lokale opname in- of uitschakelen", + "lockRoom": "Wachtwoord voor vergadering in- of uitschakelen", + "moreActions": "Meer acties menu in- of uitschakelen", + "moreActionsMenu": "Meer acties menu", + "moreOptions": "Meer opties weergeven", + "mute": "Audio dempen in- of uitschakelen", + "muteEveryone": "Iedereen dempen", + "muteEveryoneElse": "Alle anderen dempen", + "noiseSuppression": "Ruisonderdrukking", + "participants": "Deelnemers", + "pip": "Picture-in-Picture-modus in- of uitschakelen", + "privateMessage": "Verstuur privébericht", + "profile": "Uw profiel bewerken", + "raiseHand": "Hand opsteken in- of uitschakelen", + "recording": "Opnemen in- of uitschakelen", + "remoteMute": "Deelnemer dempen", + "remoteVideoMute": "Camera van deelnemer uitschakelen", + "security": "Beveiligingsopties", + "selectBackground": "Achtergrond selecteren", + "shareRoom": "Iemand uitnodigen", + "shareYourScreen": "Schermdeling in- of uitschakelen", + "shareaudio": "Audio delen", + "sharedvideo": "Video delen in- of uitschakelen", + "shortcuts": "Sneltoetsen in- of uitschakelen", + "show": "Op podium weergeven", + "speakerStats": "Sprekerstatistieken in- of uitschakelen", + "tileView": "Tegelweergave in- of uitschakelen", + "toggleCamera": "Camera wisselen", + "toggleFilmstrip": "Filmstrip in- of uitschakelen", + "videomute": "Video dempen in- of uitschakelen" + }, + "addPeople": "Personen aan uw gesprek toevoegen", + "audioOnlyOff": "Lage bandbreedte-modus uitschakelen", + "audioOnlyOn": "Lage bandbreedte-modus inschakelen", + "audioRoute": "Het afspeelapparaat selecteren", + "audioSettings": "Audio-instellingen", + "authenticate": "Authenticeren", + "callQuality": "Videokwaliteit beheren", + "chat": "Chat openen / sluiten", + "closeChat": "Chat sluiten", + "closeReactionsMenu": "Reactiemenu sluiten", + "disableNoiseSuppression": "Ruisonderdrukking uitschakelen", + "disableReactionSounds": "U kunt reactiegeluiden uitschakelen voor deze vergadering", + "documentClose": "Gedeeld document sluiten", + "documentOpen": "Gedeeld document openen", + "download": "Download onze apps", + "e2ee": "Eind-tot-eind-versleuteling", + "embedMeeting": "Vergadering embedden", + "endConference": "Vergadering voor iedereen beëindigen", + "enterFullScreen": "Volledig scherm weergeven", + "enterTileView": "Tegelweergave openen", + "exitFullScreen": "Volledig scherm sluiten", + "exitTileView": "Tegelweergave sluiten", + "feedback": "Feedback achterlaten", + "hangup": "Verlaten", + "help": "Hulp", + "invite": "Personen uitnodigen", + "joinBreakoutRoom": "Deelnemen aan aparte vergaderruimte", + "leaveBreakoutRoom": "Aparte vergaderruimte verlaten", + "leaveConference": "Vergadering verlaten", + "lobbyButtonDisable": "Schakel lobby-modus uit", + "lobbyButtonEnable": "Schakel lobby-modus in", + "login": "Aanmelden", + "logout": "Afmelden", + "lowerYourHand": "Uw hand laten zakken", + "moreActions": "Meer acties", + "moreOptions": "Meer opties", + "mute": "Dempen / dempen opheffen", + "muteEveryone": "Iedereen dempen", + "muteEveryonesVideo": "Camera's van iedereen uitzetten", + "noAudioSignalDesc": "Als u niet met opzet hebt gedempt vanuit systeeminstellingen of hardware, overweeg dan van apparaat te wisselen.", + "noAudioSignalDescSuggestion": "Als u niet met opzet hebt gedempt vanuit systeeminstellingen of hardware, overweeg dan over te schakelen naar het gesuggereerde apparaat.", + "noAudioSignalDialInDesc": "U kunt ook inbellen met:", + "noAudioSignalDialInLinkDesc": "Inbelnummers", + "noAudioSignalTitle": "Er komt geen invoer van uw microfoon!", + "noiseSuppression": "Ruisonderdrukking", + "noisyAudioInputDesc": "Het klinkt alsof uw microfoon ruis veroorzaakt. Overweeg te dempen of van apparaat te wisselen.", + "noisyAudioInputTitle": "Uw microfoon lijkt ruis te veroorzaken!", + "openChat": "Chat openen", + "openReactionsMenu": "Reactiemenu openen", + "participants": "Deelnemers", + "pip": "Picture-in-Picture-modus activeren", + "privateMessage": "Verstuur privébericht", + "profile": "Uw profiel bewerken", + "raiseHand": "Uw hand opsteken / laten zakken", + "raiseYourHand": "Uw hand opsteken", + "security": "Beveiligingsopties", + "selectBackground": "Achtergrond selecteren", + "shareRoom": "Iemand uitnodigen", + "shareaudio": "Audio delen", + "sharedvideo": "Een video delen", + "shortcuts": "Sneltoetsen weergeven", + "speakerStats": "Sprekerstatistieken", + "startScreenSharing": "Schermdeling starten", + "startSubtitles": "Ondertiteling starten", + "stopScreenSharing": "Schermdeling stoppen", + "stopSharedVideo": "Video stoppen", + "stopSubtitles": "Ondertiteling stoppen", + "talkWhileMutedPopup": "Probeert u te spreken? U bent gedempt.", + "tileViewToggle": "Tegelweergave in- of uitschakelen", + "toggleCamera": "Camera wisselen", + "videoSettings": "Instellingen van camera", + "videomute": "Camera aanzetten / uitzetten" + }, + "transcribing": { + "ccButtonTooltip": "Ondertiteling starten / stoppen", + "error": "Transcriberen is mislukt. Probeer het opnieuw.", + "expandedLabel": "Transcriberen is momenteel ingeschakeld", + "failedToStart": "Transcriberen starten mislukt", + "labelToolTip": "De vergadering wordt getranscribeerd", + "off": "Transcriberen gestopt", + "pending": "Voorbereiden op transcriberen van de vergadering…", + "start": "Weergave van ondertiteling starten", + "stop": "Weergave van ondertiteling stoppen", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Verleen toestemming om uw camera en microfoon te gebruiken." + }, + "videoSIPGW": { + "busy": "Er worden middelen vrijgemaakt. Probeer het over enkele minuten opnieuw.", + "busyTitle": "De Ruimteservice is momenteel bezet", + "errorAlreadyInvited": "{{displayName}} is al uitgenodigd", + "errorInvite": "Vergadering nog niet tot stand gebracht. Probeer het later opnieuw.", + "errorInviteFailed": "Er wordt aan een oplossing gewerkt. Probeer het later opnieuw.", + "errorInviteFailedTitle": "Uitnodigen van {{displayName}} is mislukt", + "errorInviteTitle": "Fout bij uitnodigen ruimte", + "pending": "{{displayName}} is uitgenodigd" + }, + "videoStatus": { + "adjustFor": "Aanpassen voor:", + "audioOnly": "AUD", + "audioOnlyExpanded": "U bent in lage bandbreedte-modus. In deze modus ontvangt u alleen audio en schermdeling.", + "bestPerformance": "Beste prestatie", + "callQuality": "Videokwaliteit", + "hd": "HD", + "hdTooltip": "U bekijkt video in hoge resolutie", + "highDefinition": "Hoge resolutie", + "highestQuality": "Hoogste kwaliteit", + "labelTooiltipNoVideo": "Geen video", + "labelTooltipAudioOnly": "Lage bandbreedte-modus ingeschakeld", + "ld": "LD", + "ldTooltip": "U bekijkt video in lage resolutie", + "lowDefinition": "Lage resolutie", + "performanceSettings": "Prestatie instellingen", + "sd": "SD", + "sdTooltip": "U bekijkt video in standaard resolutie", + "standardDefinition": "Standaard resolutie" + }, + "videothumbnail": { + "connectionInfo": "Verbindingsinformatie", + "domute": "Dempen", + "domuteOthers": "Alle anderen dempen", + "domuteVideo": "Camera uitschakelen", + "domuteVideoOfOthers": "Camera van alle anderen uitschakelen", + "flip": "Omdraaien", + "grantModerator": "Moderatorrechten verlenen", + "hideSelfView": "Verberg eigen beeld", + "kick": "Verwijderen", + "moderator": "Moderator", + "mute": "Deelnemer is gedempt", + "muted": "Gedempt", + "remoteControl": "Extern beheer starten / stoppen", + "show": "Op podium weergeven", + "videoMuted": "Camera uitgeschakeld", + "videomute": "Deelnemer heeft de camera gestopt" + }, + "virtualBackground": { + "addBackground": "Achtergrond toevoegen", + "apply": "Toepassen", + "blur": "Vervagen", + "none": "Geen", + "pleaseWait": "Even geduld a.u.b…", + "removeBackground": "Verwijder achtergrond", + "slightBlur": "Licht vervagen", + "title": "Achtergronden" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Tik om deel te nemen", + "roomname": "Voer naam van ruimte in" + }, + "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", + "video": "Video" + }, + "calendar": "Agenda", + "connectCalendarButton": "Uw agenda koppelen", + "connectCalendarText": "Koppel uw agenda om al uw vergaderingen in {{app}} te bekijken. Voeg bovendien {{provider}}-vergaderingen toe aan uw agenda en start ze met één klik.", + "enterRoomTitle": "Een nieuwe vergadering starten", + "getHelp": "Hulp krijgen", + "go": "GAAN", + "goSmall": "GAAN", + "headerSubtitle": "Veilige vergaderingen van hoge kwaliteit", + "headerTitle": "Jitsi Meet", + "info": "Informatie", + "jitsiOnMobile": "Jitsi op de mobiele telefoon - download onze apps en start overal een vergadering", + "join": "AANMAKEN / DEELNEMEN", + "moderatedMessage": "Of boek een vergadering URL van tevoren waar u de enige moderator bent.", + "privacy": "Privacy", + "recentList": "Recent", + "recentListDelete": "Verwijderen", + "recentListEmpty": "Uw recent lijst is momenteel leeg. Wanneer u chat met uw team, vindt u hier al uw recente vergaderingen.", + "reducedUIText": "Welkom in {{app}}!", + "roomNameAllowedChars": "Naam van vergadering mag geen van deze tekens bevatten: ?, &, :, ', \", %, #.", + "roomname": "Voer naam van ruimte in", + "roomnameHint": "Voer de naam of URL in van de ruimte die u wilt betreden. U kunt een naam verzinnen, maar laat deze wel weten aan de andere deelnemers, zodat zij dezelfde naam invoeren.", + "sendFeedback": "Feedback versturen", + "startMeeting": "Vergadering starten", + "terms": "Voorwaarden", + "title": "Veilige, volledig uitgeruste en geheel gratis videovergaderingen" + } +} diff --git a/lang/main-no.json b/lang/main-no.json new file mode 100644 index 0000000..4aa731e --- /dev/null +++ b/lang/main-no.json @@ -0,0 +1,1583 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "møtelink: {{url}}" + }, + "add": "Inviter", + "addContacts": "Inviter dine kontakter", + "contacts": "kontakter", + "copyInvite": "Kopier møteinvitasjon", + "copyLink": "Kopier møtelink", + "copyStream": "Kopier direktesending-lenke", + "countryNotSupported": "Vi støtter ikke denne destinasjonen ennå.", + "countryReminder": "Ringer du utenfor USA? Vennligst sørg for å starte med landskoden!", + "defaultEmail": "Din standard e-post", + "disabled": "Du kan ikke invitere folk.", + "failedToAdd": "Kunne ikke legge til deltakere", + "googleEmail": "Google e-post", + "inviteMoreHeader": "Du er den eneste i møtet", + "inviteMoreMailSubject": "Bli med i{{appName}} møtet", + "inviteMorePrompt": "Inviter flere personer", + "linkCopied": "Lenke kopiert til utklippstavlen", + "noResults": "Ingen treff på søket", + "outlookEmail": "Outlook e-post", + "phoneNumbers": "telefonnumre", + "searching": "Søker…", + "shareInvite": "Del møteinvitasjon", + "shareLink": "Del møtelinken for å invitere andre", + "shareStream": "Del direktesending-lenken", + "sipAddresses": "SIP-adresser", + "telephone": "Telefon: {{number}}", + "title": "Inviter folk til dette møtet", + "yahooEmail": "Yahoo e-post" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Lyd i bil", + "headphones": "Hodetelefoner", + "none": "Lydutstyr ikke tilgjengelig", + "phone": "Telefon", + "speaker": "Høyttaler" + }, + "audioOnly": { + "audioOnly": "Lav båndbredde" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "f.eks. 10000000 for 10 Mbps", + "assumedBandwidthBpsWarning": "Høyere verdier kan forårsake nettverksproblemer.", + "customValue": "Egendefinert verdi", + "customValueEffect": "For å sette den faktiske bps-verdien", + "leaveEmpty": "La stå tomt", + "leaveEmptyEffect": "For å tillate at estimater blir gjort", + "possibleValues": "Mulige verdier", + "setAssumedBandwidthBps": "Antatt båndbredde (bps)", + "title": "Båndbreddeinnstillinger", + "zeroEffect": "For å deaktivere video" + }, + "breakoutRooms": { + "actions": { + "add": "Legg til grupperom", + "autoAssign": "Automatisk tildeling til grupperom", + "close": "Lukk", + "join": "Bli med", + "leaveBreakoutRoom": "Forlat grupperom", + "more": "Mer", + "remove": "Fjern", + "rename": "Gi nytt navn", + "renameBreakoutRoom": "Gi nytt navn til grupperom", + "sendToBreakoutRoom": "Send deltaker til:" + }, + "breakoutList": "Grupperomsliste", + "buttonLabel": "Grupperom", + "defaultName": "Grupperom #{{index}}", + "hideParticipantList": "Skjul deltakerliste", + "mainRoom": "Hovedrom", + "notifications": { + "joined": "Bli med i \"{{name}}\" grupperom", + "joinedMainRoom": "Bli med i hovedrom", + "joinedTitle": "Grupperom" + }, + "showParticipantList": "Vis deltakerliste", + "title": "Grupperom" + }, + "calendarSync": { + "addMeetingURL": "Legg til en møtelenke", + "confirmAddLink": "Vil du legge til en Jitsi-lenke til denne hendelsen?", + "error": { + "appConfiguration": "Kalenderintegrasjonen er ikke riktig konfigurert.", + "generic": "En feil har oppstått. Sjekk kalenderinnstillingene dine eller prøv å oppdatere kalenderen.", + "notSignedIn": "En feil oppstod under autentisering for å se kalenderhendelser. Sjekk kalenderinnstillingene dine og prøv å logge inn igjen." + }, + "join": "Bli med", + "joinTooltip": "Bli med i møtet", + "nextMeeting": "Neste møte", + "noEvents": "Det er ingen planlagte kommende hendelser.", + "ongoingMeeting": "Pågående møte", + "permissionButton": "Åpne innstillinger", + "permissionMessage": "Kalendertillatelse er nødvendig for å se møtene dine i appen.", + "refresh": "Oppdater kalender", + "today": "I dag" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Velg lydenhet" + }, + "labels": { + "buttonLabel": "Bilmodus", + "title": "Bilmodus", + "videoStopped": "Videoen din er stoppet" + } + }, + "chat": { + "enter": "Gå inn i rommet", + "error": "Feil: meldingen din ble ikke sendt. Årsak: {{error}}", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Lobby-chatmelding til {{recipient}}", + "message": "Melding", + "messageAccessibleTitle": "{{user}} sier:", + "messageAccessibleTitleMe": "jeg sier:", + "messageTo": "Privat melding til {{recipient}}", + "messagebox": "Skriv en melding", + "newMessages": "Nye meldinger", + "nickname": { + "popover": "Velg et kallenavn", + "title": "Skriv inn et kallenavn for å bruke chatten", + "titleWithPolls": "Skriv inn et kallenavn for å bruke chatten og avstemninger" + }, + "noMessagesMessage": "Det er ingen meldinger i møtet ennå. Start en samtale her!", + "privateNotice": "Privat melding til {{recipient}}", + "sendButton": "Send", + "smileysPanel": "Emoji-panel", + "systemDisplayName": "System", + "tabs": { + "chat": "Chat", + "polls": "Avstemninger" + }, + "title": "Chat", + "titleWithPolls": "Chat og avstemninger", + "you": "du" + }, + "chromeExtensionBanner": { + "buttonText": "Installer Chrome-utvidelse", + "buttonTextEdge": "Installer Edge-utvidelse", + "close": "Lukk", + "dontShowAgain": "Ikke vis dette igjen", + "installExtensionText": "Installer utvidelsen for integrasjon med Google Kalender og Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Kobler deg til møtet…" + }, + "connection": { + "ATTACHED": "Tilkoblet", + "AUTHENTICATING": "Autentiserer", + "AUTHFAIL": "Autentisering mislyktes", + "CONNECTED": "Tilkoblet", + "CONNECTING": "Kobler til", + "CONNFAIL": "Tilkobling mislyktes", + "DISCONNECTED": "Frakoblet", + "DISCONNECTING": "Kobler fra", + "ERROR": "Feil", + "FETCH_SESSION_ID": "Henter sesjons-ID…", + "GET_SESSION_ID_ERROR": "Feil ved henting av sesjons-ID: {{code}}", + "GOT_SESSION_ID": "Henting av sesjons-ID fullført", + "LOW_BANDWIDTH": "Videoen til {{displayName}} er slått av for å spare båndbredde" + }, + "connectionindicator": { + "address": "Adresse:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Estimert båndbredde:", + "bitrate": "Bithastighet:", + "bridgeCount": "Antall servere: ", + "codecs": "Kodeker (A/V): ", + "connectedTo": "Tilkoblet til:", + "e2eeVerified": "E2EE verifisert:", + "framerate": "Bildefrekvens:", + "less": "Vis mindre", + "localaddress": "Lokal adresse:", + "localaddress_plural": "Lokale adresser:", + "localport": "Lokal port:", + "localport_plural": "Lokale porter:", + "maxEnabledResolution": "send maks", + "more": "Vis mer", + "no": "nei", + "packetloss": "Pakktap:", + "participant_id": "Deltaker-ID:", + "quality": { + "good": "Bra", + "inactive": "Inaktiv", + "lost": "Tapt", + "nonoptimal": "Ikke optimal", + "poor": "Dårlig" + }, + "remoteaddress": "Ekstern adresse:", + "remoteaddress_plural": "Eksterne adresser:", + "remoteport": "Ekstern port:", + "remoteport_plural": "Eksterne porter:", + "resolution": "Oppløsning:", + "savelogs": "Lagre logger", + "status": "Tilkobling:", + "transport": "Transport:", + "transport_plural": "Transporter:", + "video_ssrc": "Video SSRC:", + "yes": "ja" + }, + "dateUtils": { + "earlier": "Tidligere", + "today": "I dag", + "yesterday": "I går" + }, + "deepLinking": { + "appNotInstalled": "Du trenger mobilappen {{app}} for å bli med i dette møtet på telefonen.", + "description": "Ingenting skjedde? Vi prøvde å starte møtet ditt i {{app}} skrivebordsappen. Prøv igjen eller åpne det i {{app}} nettappen.", + "descriptionNew": "Ingenting skjedde? Vi prøvde å starte møtet ditt i {{app}} skrivebordsappen.

Du kan prøve igjen eller åpne det i nettleseren.", + "descriptionWithoutWeb": "Ingenting skjedde? Vi prøvde å starte møtet ditt i {{app}} skrivebordsappen.", + "downloadApp": "Last ned appen", + "downloadMobileApp": "Last ned fra App Store", + "ifDoNotHaveApp": "Hvis du ikke har appen ennå:", + "ifHaveApp": "Hvis du allerede har appen:", + "joinInApp": "Bli med i dette møtet ved å bruke appen", + "joinInAppNew": "Bli med i appen", + "joinInBrowser": "Bli med i nettleseren", + "launchMeetingLabel": "Hvordan vil du bli med i dette møtet?", + "launchWebButton": "Start i nettleseren", + "noDesktopApp": "Har du ikke appen?", + "noMobileApp": "Har du ikke appen?", + "or": "ELLER", + "termsAndConditions": "Ved å fortsette godtar du våre vilkår og betingelser.", + "title": "Starter møtet ditt i {{app}}…", + "titleNew": "Starter møtet ditt…", + "tryAgainButton": "Prøv igjen på skrivebordet", + "unsupportedBrowser": "Det ser ut som om du bruker en nettleser vi ikke støtter." + }, + "defaultLink": "f.eks. {{url}}", + "defaultNickname": "f.eks. Jane Pink", + "deviceError": { + "cameraError": "Kunne ikke få tilgang til kameraet ditt", + "cameraPermission": "Feil ved innhenting av kameratilgang", + "microphoneError": "Kunne ikke få tilgang til mikrofonen din", + "microphonePermission": "Feil ved innhenting av mikrofontillatelse" + }, + "deviceSelection": { + "hid": { + "callControl": "Samtalekontroll", + "connectedDevices": "Tilkoblede enheter:", + "deleteDevice": "Slett enhet", + "pairDevice": "Koble til enhet" + }, + "noPermission": "Tillatelse ikke gitt", + "previewUnavailable": "Forhåndsvisning ikke tilgjengelig", + "selectADevice": "Velg en enhet", + "testAudio": "Test" + }, + "dialIn": { + "screenTitle": "Sammendrag av innringing" + }, + "dialOut": { + "statusMessage": "er nå {{status}}" + }, + "dialog": { + "Back": "Tilbake", + "Cancel": "Avbryt", + "IamHost": "Logg inn", + "Ok": "OK", + "Remove": "Fjern", + "Share": "Del", + "Submit": "Send inn", + "WaitForHostMsg": "Konferansen har ikke startet ennå fordi ingen moderatorer har ankommet. Hvis du vil bli moderator, vennligst logg inn. Ellers, vennligst vent.", + "WaitForHostNoAuthMsg": "Konferansen har ikke startet ennå fordi ingen moderatorer har ankommet. Vennligst vent.", + "WaitingForHostButton": "Vent på moderator", + "WaitingForHostTitle": "Venter på en moderator…", + "Yes": "Ja", + "accessibilityLabel": { + "Cancel": "Avbryt (forlat dialog)", + "Ok": "OK (lagre og forlat dialog)", + "close": "Lukk dialog", + "liveStreaming": "Direktesending", + "sharingTabs": "Delingsalternativer" + }, + "add": "Legg til", + "addMeetingNote": "Legg til en notat om dette møtet", + "addOptionalNote": "Legg til en notat (valgfritt):", + "allow": "Tillat", + "allowToggleCameraDialog": "Tillater du at {{initiatorName}} bytter kameramodus?", + "allowToggleCameraTitle": "Tillat bytte av kamera?", + "alreadySharedVideoMsg": "En annen deltaker deler allerede en video. Denne konferansen tillater kun én delt video om gangen.", + "alreadySharedVideoTitle": "Kun én delt video er tillatt om gangen", + "applicationWindow": "Programvindu", + "authenticationRequired": "Autentisering kreves", + "cameraConstraintFailedError": "Kameraet ditt oppfyller ikke noen av de nødvendige kravene.", + "cameraNotFoundError": "Kamera ble ikke funnet.", + "cameraNotSendingData": "Vi kan ikke få tilgang til kameraet ditt. Sjekk om en annen applikasjon bruker denne enheten, velg en annen enhet i innstillingene eller prøv å laste inn applikasjonen på nytt.", + "cameraNotSendingDataTitle": "Kan ikke få tilgang til kameraet", + "cameraPermissionDeniedError": "Du har ikke gitt tillatelse til å bruke kameraet ditt. Du kan fortsatt bli med i konferansen, men andre vil ikke se deg. Bruk kameraknappen i adressefeltet for å fikse dette.", + "cameraTimeoutError": "Kunne ikke starte videokilden. Tidsavbrudd oppstod!", + "cameraUnknownError": "Kan ikke bruke kameraet av en ukjent grunn.", + "cameraUnsupportedResolutionError": "Kameraet ditt støtter ikke den nødvendige videooppløsningen.", + "close": "Lukk", + "conferenceDisconnectMsg": "Sjekk nettverkstilkoblingen din. Prøver å koble til igjen om {{seconds}} sekunder…", + "conferenceDisconnectTitle": "Du har blitt frakoblet.", + "conferenceReloadMsg": "Vi prøver å fikse dette. Prøver å koble til igjen om {{seconds}} sekunder…", + "conferenceReloadTitle": "Dessverre oppstod det en feil.", + "confirm": "Bekreft", + "confirmNo": "Nei", + "confirmYes": "Ja", + "connectError": "Oops! Noe gikk galt, og vi kunne ikke koble til konferansen.", + "connectErrorWithMsg": "Oops! Noe gikk galt, og vi kunne ikke koble til konferansen: {{msg}}", + "connecting": "Kobler til", + "contactSupport": "Kontakt brukerstøtte", + "copied": "Kopiert", + "copy": "Kopier", + "demoteParticipantDialog": "Er du sikker på at du vil flytte denne deltakeren til seer?", + "demoteParticipantTitle": "Flytt til seer", + "dismiss": "Avvis", + "displayNameRequired": "Hei! Hva heter du?", + "done": "Ferdig", + "e2eeDescription": "Ende-til-ende-kryptering er for øyeblikket EKSPERIMENTELL. Husk at aktivering av ende-til-ende-kryptering vil deaktivere serverbaserte tjenester som for eksempel telefon-deltakelse. Husk også at møtet kun vil fungere for brukere som deltar fra nettlesere som støtter innsettbare strømmer.", + "e2eeDisabledDueToMaxModeDescription": "Kan ikke aktivere ende-til-ende-kryptering på grunn av et stort antall deltakere i konferansen.", + "e2eeLabel": "Aktiver ende-til-ende-kryptering", + "e2eeWarning": "ADVARSEL: Ikke alle deltakere i dette møtet ser ut til å støtte ende-til-ende-kryptering. Hvis du aktiverer det, vil de verken kunne se eller høre deg.", + "e2eeWillDisableDueToMaxModeDescription": "ADVARSEL: Ende-til-ende-kryptering vil automatisk bli deaktivert hvis flere deltakere blir med i konferansen.", + "embedMeeting": "Bygg inn møte", + "enterDisplayName": "Skriv inn navnet ditt", + "error": "Feil", + "errorRoomCreationRestriction": "Du prøvde å bli med for raskt, vennligst prøv igjen om litt.", + "gracefulShutdown": "Tjenesten vår er for øyeblikket nede for vedlikehold. Prøv igjen senere.", + "grantModeratorDialog": "Er du sikker på at du vil gi moderatorrettigheter til {{participantName}}?", + "grantModeratorTitle": "Gi moderatorrettigheter", + "hide": "Skjul", + "hideShareAudioHelper": "Ikke vis denne dialogen igjen", + "incorrectPassword": "Feil brukernavn eller passord", + "incorrectRoomLockPassword": "Feil passord", + "internalError": "Oops! Noe gikk galt. Følgende feil oppstod: {{error}}", + "internalErrorTitle": "Intern feil", + "kickMessage": "Du kan kontakte {{participantDisplayName}} for mer informasjon.", + "kickParticipantButton": "Fjern", + "kickParticipantDialog": "Er du sikker på at du vil fjerne denne deltakeren?", + "kickParticipantTitle": "Fjern denne deltakeren?", + "kickSystemTitle": "Oi! Du ble kastet ut av møtet", + "kickTitle": "Oi! {{participantDisplayName}} kastet deg ut av møtet", + "linkMeeting": "Koble møte", + "linkMeetingTitle": "Koble møtet til Salesforce", + "liveStreaming": "Direktesending", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ikke mulig mens opptak er aktivt", + "localUserControls": "Lokale brukerkontroller", + "lockMessage": "Kunne ikke låse konferansen.", + "lockRoom": "Legg til møtets $t(lockRoomPassword)", + "lockTitle": "Låsing mislyktes", + "login": "Logg inn", + "loginQuestion": "Er du sikker på at du vil logge inn og forlate konferansen?", + "logoutQuestion": "Er du sikker på at du vil logge ut og forlate konferansen?", + "logoutTitle": "Logg ut", + "maxUsersLimitReached": "Grensen for maksimalt antall deltakere er nådd. Konferansen er full. Vennligst kontakt møtearrangøren eller prøv igjen senere!", + "maxUsersLimitReachedTitle": "Maksimalt deltakerantall nådd", + "micConstraintFailedError": "Mikrofonen din oppfyller ikke noen av de nødvendige kravene.", + "micNotFoundError": "Mikrofonen ble ikke funnet.", + "micNotSendingData": "Gå til datamaskinens innstillinger for å slå på mikrofonen og justere nivået", + "micNotSendingDataTitle": "Mikrofonen din er dempet av systeminnstillingene", + "micPermissionDeniedError": "Du har ikke gitt tillatelse til å bruke mikrofonen din. Du kan fortsatt delta i konferansen, men andre vil ikke høre deg. Bruk kameraknappen i adressefeltet for å fikse dette.", + "micTimeoutError": "Kunne ikke starte lydkilden. Tidsavbrudd oppstod!", + "micUnknownError": "Kan ikke bruke mikrofonen av en ukjent grunn.", + "moderationAudioLabel": "Tillat deltakere å slå på lyden selv", + "moderationVideoLabel": "Tillat deltakere å starte videoen sin", + "muteEveryoneDialog": "Deltakerne kan slå på lyden sin når som helst.", + "muteEveryoneDialogModerationOn": "Deltakerne kan sende en forespørsel om å få snakke når som helst.", + "muteEveryoneElseDialog": "Når de er dempet, kan du ikke slå på lyden for dem, men de kan gjøre det selv når som helst.", + "muteEveryoneElseTitle": "Demp alle unntatt {{whom}}?", + "muteEveryoneElsesVideoDialog": "Når kameraet er deaktivert, kan du ikke slå det på igjen, men deltakerne kan gjøre det selv når som helst.", + "muteEveryoneElsesVideoTitle": "Stopp alles video unntatt {{whom}}?", + "muteEveryoneSelf": "deg selv", + "muteEveryoneStartMuted": "Alle starter dempet fra nå av", + "muteEveryoneTitle": "Demp alle?", + "muteEveryonesVideoDialog": "Deltakerne kan slå på videoen sin når som helst.", + "muteEveryonesVideoDialogModerationOn": "Deltakerne kan sende en forespørsel om å slå på videoen når som helst.", + "muteEveryonesVideoDialogOk": "Deaktiver", + "muteEveryonesVideoTitle": "Stopp alles video?", + "muteParticipantBody": "Du kan ikke slå på lyden for dem, men de kan gjøre det selv når som helst.", + "muteParticipantButton": "Demp", + "muteParticipantsVideoBody": "Du vil ikke kunne slå på kameraet igjen, men de kan gjøre det selv når som helst.", + "muteParticipantsVideoBodyModerationOn": "Du vil ikke kunne slå på kameraet igjen, og det vil heller ikke de.", + "muteParticipantsVideoButton": "Stopp video", + "muteParticipantsVideoDialog": "Er du sikker på at du vil slå av kameraet til denne deltakeren? Du vil ikke kunne slå det på igjen, men deltakeren kan gjøre det selv når som helst.", + "muteParticipantsVideoDialogModerationOn": "Er du sikker på at du vil slå av kameraet til denne deltakeren? Du vil ikke kunne slå det på igjen, og det vil heller ikke de.", + "muteParticipantsVideoTitle": "Deaktiver kameraet til denne deltakeren?", + "noDropboxToken": "Ingen gyldig Dropbox-token", + "password": "Passord", + "passwordLabel": "Møtet har blitt låst av en deltaker. Vennligst skriv inn $t(lockRoomPassword) for å bli med.", + "passwordNotSupported": "Å angi et møte $t(lockRoomPassword) støttes ikke.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) støttes ikke", + "passwordRequired": "$t(lockRoomPasswordUppercase) kreves", + "permissionCameraRequiredError": "Kameratilgang er nødvendig for å delta i videokonferanser. Vennligst gi tillatelse i Innstillinger", + "permissionErrorTitle": "Tillatelse kreves", + "permissionMicRequiredError": "Mikrofontilgang er nødvendig for å delta i lydkonferanser. Vennligst gi tillatelse i Innstillinger", + "readMore": "mer", + "recentlyUsedObjects": "Dine nylig brukte objekter", + "recording": "Opptak", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ikke mulig mens direktesending er aktiv", + "rejoinNow": "Bli med igjen nå", + "remoteControlAllowedMessage": "{{user}} godtok forespørselen din om fjernkontroll!", + "remoteControlDeniedMessage": "{{user}} avslo forespørselen din om fjernkontroll!", + "remoteControlErrorMessage": "En feil oppstod da vi prøvde å be om fjernkontrolltillatelser fra {{user}}!", + "remoteControlRequestMessage": "Vil du tillate at {{user}} fjernstyrer skrivebordet ditt?", + "remoteControlShareScreenWarning": "Merk at hvis du trykker \"Tillat\", vil du dele skjermen din!", + "remoteControlStopMessage": "Fjernkontrolløkten ble avsluttet!", + "remoteControlTitle": "Fjernstyring av skrivebord", + "remoteUserControls": "Fjernbrukerkontroller for {{username}}", + "removePassword": "Fjern $t(lockRoomPassword)", + "removeSharedVideoMsg": "Er du sikker på at du vil fjerne den delte videoen din?", + "removeSharedVideoTitle": "Fjern delt video", + "renameBreakoutRoomLabel": "Romnavn", + "renameBreakoutRoomTitle": "Gi nytt navn til grupperom", + "reservationError": "Feil i reservasjonsystemet", + "reservationErrorMsg": "Feilkode: {{code}}, melding: {{msg}}", + "retry": "Prøv igjen", + "screenSharingAudio": "Del lyd", + "screenSharingFailed": "Oops! Noe gikk galt, vi kunne ikke starte skjermdeling!", + "screenSharingFailedTitle": "Skjermdeling mislyktes!", + "screenSharingPermissionDeniedError": "Oops! Noe gikk galt med skjermdelingstillatelsene dine. Vennligst last inn siden på nytt og prøv igjen.", + "searchInSalesforce": "Søk i Salesforce", + "searchResults": "Søkeresultater ({{count}})", + "searchResultsDetailsError": "Noe gikk galt ved henting av eierdata.", + "searchResultsError": "Noe gikk galt ved henting av data.", + "searchResultsNotFound": "Ingen søkeresultater funnet.", + "searchResultsTryAgain": "Prøv med alternative søkeord.", + "sendPrivateMessage": "Du har nylig mottatt en privat melding. Ønsker du å svare privat, eller vil du sende meldingen til gruppen?", + "sendPrivateMessageCancel": "Send til gruppen", + "sendPrivateMessageOk": "Send privat", + "sendPrivateMessageTitle": "Send privat?", + "serviceUnavailable": "Tjenesten er utilgjengelig", + "sessTerminated": "Samtale avsluttet", + "sessTerminatedReason": "Møtet har blitt avsluttet", + "sessionRestarted": "Samtalen ble startet på nytt på grunn av en tilkoblingsfeil.", + "shareAudio": "Fortsett", + "shareAudioAltText": "For å dele ønsket innhold, gå til \"Nettleserfane\", velg innholdet, aktiver \"del lyd\"-avkrysningsboksen og klikk deretter på \"del\"-knappen", + "shareAudioTitle": "Hvordan dele lyd", + "shareAudioWarningD1": "Du må stoppe skjermdelingen før du deler lyden din.", + "shareAudioWarningD2": "Du må starte skjermdelingen på nytt og velge \"del lyd\"-alternativet.", + "shareAudioWarningH1": "Hvis du bare vil dele lyd:", + "shareAudioWarningTitle": "Du må stoppe skjermdelingen før du kan dele lyd", + "shareMediaWarningGenericH2": "Hvis du vil dele både skjermen og lyden", + "shareScreenWarningD1": "Du må stoppe lyddelingen før du deler skjermen din.", + "shareScreenWarningD2": "Du må stoppe lyddelingen, starte skjermdelingen på nytt og velge \"del lyd\"-alternativet.", + "shareScreenWarningH1": "Hvis du bare vil dele skjermen din:", + "shareScreenWarningTitle": "Du må stoppe lyddelingen før du kan dele skjermen", + "shareVideoConfirmPlay": "Du er i ferd med å åpne et eksternt nettsted. Vil du fortsette?", + "shareVideoConfirmPlayTitle": "{{name}} har delt en video med deg.", + "shareVideoLinkError": "Oops, denne videoen kan ikke spilles av.", + "shareVideoLinkStopped": "Videoen fra {{name}} ble stoppet.", + "shareVideoTitle": "Del video", + "shareYourScreen": "Del skjermen din", + "shareYourScreenDisabled": "Skjermdeling deaktivert.", + "sharedVideoDialogError": "Feil: Ugyldig eller forbudt URL", + "sharedVideoLinkPlaceholder": "YouTube-lenke eller direkte videolenke", + "show": "Vis", + "start": "Start ", + "startLiveStreaming": "Start direktesending", + "startRecording": "Start opptak", + "startRemoteControlErrorMessage": "En feil oppstod ved forsøk på å starte fjernkontrolløkten!", + "stopLiveStreaming": "Stopp direktesending", + "stopRecording": "Stopp opptak", + "stopRecordingWarning": "Er du sikker på at du vil stoppe opptaket?", + "stopStreamingWarning": "Er du sikker på at du vil stoppe direktesendingen?", + "streamKey": "Nøkkel for direktesending", + "thankYou": "Takk for at du bruker {{appName}}!", + "token": "token", + "tokenAuthFailed": "Beklager, du har ikke tillatelse til å bli med i denne samtalen.", + "tokenAuthFailedReason": { + "audInvalid": "Ugyldig `aud`-verdi. Den skal være `jitsi`.", + "contextNotFound": "`context`-objektet mangler i nyttelasten.", + "expInvalid": "Ugyldig `exp`-verdi.", + "featureInvalid": "Ugyldig funksjon: {{feature}}, sannsynligvis ikke implementert ennå.", + "featureValueInvalid": "Ugyldig verdi for funksjon: {{feature}}.", + "featuresNotFound": "`features`-objektet mangler i nyttelasten.", + "headerNotFound": "Mangler header.", + "issInvalid": "Ugyldig `iss`-verdi. Den skal være `chat`.", + "kidMismatch": "Nøkkel-ID (kid) samsvarer ikke med sub.", + "kidNotFound": "Mangler nøkkel-ID (kid).", + "nbfFuture": "`nbf`-verdien er i fremtiden.", + "nbfInvalid": "Ugyldig `nbf`-verdi.", + "payloadNotFound": "Mangler nyttelasten.", + "tokenExpired": "Tokenet er utløpt." + }, + "tokenAuthFailedTitle": "Autentisering mislyktes", + "tokenAuthFailedWithReasons": "Beklager, du har ikke tillatelse til å bli med i denne samtalen. Mulige årsaker: {{reason}}", + "tokenAuthUnsupported": "Token-URL støttes ikke.", + "transcribing": "Transkriberer", + "unlockRoom": "Fjern møte $t(lockRoomPassword)", + "user": "Bruker", + "userIdentifier": "Brukeridentifikator", + "userPassword": "Brukerpassord", + "verifyParticipantConfirm": "De samsvarer", + "verifyParticipantDismiss": "De samsvarer ikke", + "verifyParticipantQuestion": "EKSPERIMENTELL: Spør deltaker {{participantName}} om de ser det samme innholdet, i samme rekkefølge.", + "verifyParticipantTitle": "Brukerverifisering", + "videoLink": "Videolenke", + "viewUpgradeOptions": "Se oppgraderingsalternativer", + "viewUpgradeOptionsContent": "For å få ubegrenset tilgang til premiumfunksjoner som opptak, transkripsjoner, RTMP-streaming og mer, må du oppgradere planen din.", + "viewUpgradeOptionsTitle": "Du har oppdaget en premiumfunksjon!", + "whiteboardLimitContent": "Beklager, grensen for samtidige brukere av whiteboard er nådd.", + "whiteboardLimitReference": "For mer informasjon, besøk", + "whiteboardLimitReferenceUrl": "vår nettside", + "whiteboardLimitTitle": "Begrenset tilgang til whiteboard", + "yourEntireScreen": "Hele skjermen din" + }, + "documentSharing": { + "title": "Delt dokument" + }, + "e2ee": { + "labelToolTip": "Lyd- og videokommunikasjon i denne samtalen er ende-til-ende-kryptert" + }, + "embedMeeting": { + "title": "Bygg inn dette møtet" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Ditt valg: {{rating}}" + }, + "average": "Gjennomsnittlig", + "bad": "Dårlig", + "detailsLabel": "Fortell oss mer om det.", + "good": "Bra", + "rateExperience": "Vurder møteopplevelsen din", + "star": "Stjerne", + "veryBad": "Veldig dårlig", + "veryGood": "Veldig bra" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Videominiatyrer" + } + }, + "giphy": { + "noResults": "Ingen resultater funnet :(", + "search": "Søk i GIPHY" + }, + "incomingCall": { + "answer": "Svar", + "audioCallTitle": "Innkommende anrop", + "decline": "Avvis", + "productLabel": "fra Jitsi Meet", + "videoCallTitle": "Innkommende videoanrop" + }, + "info": { + "accessibilityLabel": "Vis info", + "addPassword": "Legg til $t(lockRoomPassword)", + "cancelPassword": "Avbryt $t(lockRoomPassword)", + "conferenceURL": "Lenke:", + "copyNumber": "Kopier nummer", + "country": "Land", + "dialANumber": "For å bli med i møtet, ring et av disse numrene og tast deretter inn PIN-koden.", + "dialInConferenceID": "PIN-kode:", + "dialInNotSupported": "Beklager, innringing støttes for øyeblikket ikke.", + "dialInNumber": "Innringingsnummer:", + "dialInSummaryError": "Feil ved henting av innringingsinformasjon. Vennligst prøv igjen senere.", + "dialInTollFree": "Gratisnummer", + "genericError": "Oops, noe gikk galt.", + "inviteLiveStream": "For å se direktesendingen av dette møtet, klikk denne lenken: {{url}}", + "invitePhone": "For å bli med via telefon, trykk her: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Leter du etter et annet innringingsnummer?\nSe listen over innringingsnumre: {{url}}\n\n\nHvis du også ringer inn via en romtelefon, bli med uten å koble til lyd: {{silentUrl}}", + "inviteSipEndpoint": "For å bli med via SIP-adresse, tast inn denne: {{sipUri}}", + "inviteTextiOSInviteUrl": "Klikk på følgende lenke for å bli med: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Hvis du ringer inn via en romtelefon, bruk denne lenken for å bli med uten å koble til lyd: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} inviterer deg til et møte.", + "inviteTextiOSPhone": "For å bli med via telefon, bruk dette nummeret: {{number}},,{{conferenceID}}#. Hvis du trenger et annet nummer, finner du hele listen her: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Du er invitert til å bli med i et møte.", + "inviteURLFirstPartPersonal": "{{name}} inviterer deg til et møte.\n", + "inviteURLSecondPart": "\nBli med i møtet:\n{{url}}\n", + "label": "Innringingsinformasjon", + "liveStreamURL": "Direktesendingslenke:", + "moreNumbers": "Flere numre", + "noNumbers": "Ingen innringingsnumre.", + "noPassword": "Ingen", + "noRoom": "Ingen rom ble spesifisert for innringing.", + "noWhiteboard": "Kunne ikke laste inn whiteboard.", + "numbers": "Innringingsnumre", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Du har nådd grensen for planen din.", + "sip": "SIP-adresse", + "sipAudioOnly": "SIP-lydadresse", + "title": "Del", + "tooltip": "Del lenke og innringingsinformasjon for dette møtet", + "upgradeOptions": "Vennligst sjekk oppgraderingsalternativene på", + "whiteboardError": "Feil ved lasting av whiteboard. Vennligst prøv igjen senere." + }, + "inlineDialogFailure": { + "msg": "Vi støtte på et problem.", + "retry": "Prøv igjen", + "support": "Brukerstøtte", + "supportMsg": "Hvis dette fortsetter å skje, ta kontakt med" + }, + "inviteDialog": { + "alertText": "Kunne ikke invitere noen deltakere.", + "header": "Inviter", + "searchCallOnlyPlaceholder": "Skriv inn telefonnummer", + "searchPeopleOnlyPlaceholder": "Søk etter deltakere", + "searchPlaceholder": "Deltaker eller telefonnummer", + "send": "Send" + }, + "jitsiHome": "{{logo}} Logo, lenker til Hjemmeside", + "keyboardShortcuts": { + "focusLocal": "Fokuser på din video", + "focusRemote": "Fokuser på en annen persons video", + "fullScreen": "Vis eller avslutt fullskjerm", + "giphyMenu": "Vis eller skjul GIPHY-menyen", + "keyboardShortcuts": "Hurtigtaster", + "localRecording": "Vis eller skjul kontroller for lokal opptak", + "mute": "Demp eller slå på mikrofonen din", + "pushToTalk": "Trykk for å snakke", + "raiseHand": "Rekk opp eller ta ned hånden", + "showSpeakerStats": "Vis deltakerstatistikk", + "toggleChat": "Åpne eller lukk chatten", + "toggleFilmstrip": "Vis eller skjul videominiatyrer", + "toggleParticipantsPane": "Vis eller skjul deltakerlisten", + "toggleScreensharing": "Bytt mellom kamera og skjermdeling", + "toggleShortcuts": "Vis eller skjul hurtigtaster", + "videoMute": "Start eller stopp kameraet ditt" + }, + "largeVideo": { + "screenIsShared": "Du deler skjermen din", + "showMeWhatImSharing": "Vis meg hva jeg deler" + }, + "liveStreaming": { + "busy": "Vi jobber med å frigjøre strømmeressurser. Vennligst prøv igjen om noen minutter.", + "busyTitle": "Alle strømmere er for øyeblikket opptatt", + "changeSignIn": "Bytt konto.", + "choose": "Velg en direktesending", + "chooseCTA": "Velg et strømmealternativ. Du er for øyeblikket logget inn som {{email}}.", + "enterStreamKey": "Skriv inn YouTube-strømmenøkkelen din her.", + "error": "Direktesending mislyktes. Vennligst prøv igjen.", + "errorAPI": "En feil oppstod ved tilgang til YouTube-sendingene dine. Prøv å logge inn igjen.", + "errorLiveStreamNotEnabled": "Direktesending er ikke aktivert på {{email}}. Aktiver direktesending eller logg inn på en konto med direktesending aktivert.", + "expandedOff": "Direktesendingen har stoppet", + "expandedOn": "Møtet kringkastes for øyeblikket direkte", + "expandedPending": "Direktesendingen starter…", + "failedToStart": "Kunne ikke starte direktesending", + "getStreamKeyManually": "Vi kunne ikke hente noen direktesendinger. Prøv å hente strømmenøkkelen din fra YouTube.", + "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", + "onBy": "{{name}} startet direktesendingen", + "pending": "Starter direktesending…", + "policyError": "Du prøvde å starte en direktesending for raskt. Vennligst prøv igjen senere!", + "serviceName": "Direktesendingstjeneste", + "sessionAlreadyActive": "Denne økten blir allerede tatt opp eller direktesendt.", + "signIn": "Logg inn med Google", + "signInCTA": "Logg inn eller skriv inn YouTube-strømmenøkkelen din.", + "signOut": "Logg ut", + "signedInAs": "Du er for øyeblikket logget inn som:", + "start": "Start en direktesending", + "streamIdHelp": "Hva er dette?", + "title": "Direktesending", + "unavailableTitle": "Direktesending utilgjengelig", + "youtubeTerms": "YouTubes vilkår for bruk" + }, + "lobby": { + "backToKnockModeButton": "Be om å bli med", + "chat": "Chat", + "dialogTitle": "Lobby-modus", + "disableDialogContent": "Lobby-modus er for øyeblikket aktivert. Denne funksjonen sikrer at uønskede deltakere ikke kan bli med i møtet. Vil du deaktivere den?", + "disableDialogSubmit": "Deaktiver", + "emailField": "Skriv inn e-postadressen din", + "enableDialogPasswordField": "Sett passord (valgfritt)", + "enableDialogSubmit": "Aktiver", + "enableDialogText": "Lobby-modus lar deg beskytte møtet ved kun å tillate personer å bli med etter godkjenning fra en moderator.", + "enterPasswordButton": "Skriv inn møtepassord", + "enterPasswordTitle": "Skriv inn passord for å bli med i møtet", + "errorMissingPassword": "Vennligst skriv inn møtepassordet", + "invalidPassword": "Ugyldig passord", + "joinRejectedMessage": "Forespørselen din om å bli med ble avvist av en moderator.", + "joinRejectedTitle": "Forespørsel om å bli med avvist.", + "joinTitle": "Bli med i møtet", + "joinWithPasswordMessage": "Prøver å bli med med passord, vennligst vent…", + "joiningMessage": "Du blir med i møtet så snart noen godkjenner forespørselen din", + "joiningTitle": "Ber om å bli med i møtet…", + "joiningWithPasswordTitle": "Bli med med passord…", + "knockButton": "Be om å bli med", + "knockTitle": "Noen ønsker å bli med i møtet", + "knockingParticipantList": "Liste over deltakere som venter", + "lobbyChatStartedNotification": "{{moderator}} startet en lobby-chat med {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} har startet en lobby-chat med deg.", + "lobbyClosed": "Lobby-rommet har blitt stengt.", + "nameField": "Skriv inn navnet ditt", + "notificationLobbyAccessDenied": "{{targetParticipantName}} har blitt avvist av {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} har fått tilgang av {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby har blitt deaktivert av {{originParticipantName}}", + "notificationLobbyEnabled": "Lobby har blitt aktivert av {{originParticipantName}}", + "notificationTitle": "Lobby", + "passwordJoinButton": "Bli med", + "title": "Lobby", + "toggleLabel": "Aktiver lobby" + }, + "localRecording": { + "clientState": { + "off": "Av", + "on": "På", + "unknown": "Ukjent" + }, + "dialogTitle": "Kontroller for lokal opptak", + "duration": "Varighet", + "durationNA": "Ikke tilgjengelig", + "encoding": "Koding", + "label": "LOR", + "labelToolTip": "Lokalt opptak er aktivert", + "localRecording": "Lokalt opptak", + "me": "Meg", + "messages": { + "engaged": "Lokalt opptak er aktivert.", + "finished": "Opptaksøkt {{token}} er fullført. Vennligst send den innspilte filen til moderator.", + "finishedModerator": "Opptaksøkt {{token}} er fullført. Opptaket av det lokale sporet er lagret. Vennligst be de andre deltakerne om å sende inn sine opptak.", + "notModerator": "Du er ikke moderator. Du kan ikke starte eller stoppe lokalt opptak." + }, + "moderator": "Moderator", + "no": "Nei", + "participant": "Deltaker", + "participantStats": "Deltakerstatistikk", + "selectTabTitle": "🎥 Velg denne fanen for opptak", + "sessionToken": "Økt-token", + "start": "Start opptak", + "stop": "Stopp opptak", + "stopping": "Stopper opptak", + "wait": "Vennligst vent mens vi lagrer opptaket ditt", + "yes": "Ja" + }, + "lockRoomPassword": "passord", + "lockRoomPasswordUppercase": "Passord", + "lonelyMeetingExperience": { + "button": "Inviter andre", + "youAreAlone": "Du er den eneste i møtet" + }, + "me": "meg", + "notify": { + "OldElectronAPPTitle": "Sikkerhetssårbarhet!", + "allowAction": "Tillat", + "allowedUnmute": "Du kan slå på mikrofonen, starte kameraet eller dele skjermen din.", + "audioUnmuteBlockedDescription": "Slå på mikrofonen er midlertidig blokkert på grunn av systembegrensninger.", + "audioUnmuteBlockedTitle": "Mikrofonaktivering blokkert!", + "chatMessages": "Chatmeldinger", + "connectedOneMember": "{{name}} ble med i møtet", + "connectedThreePlusMembers": "{{name}} og mange andre ble med i møtet", + "connectedTwoMembers": "{{first}} og {{second}} ble med i møtet", + "connectionFailed": "Tilkobling mislyktes. Vennligst prøv igjen senere!", + "dataChannelClosed": "Videokvaliteten kan være svekket", + "dataChannelClosedDescription": "Brokkanalen er nede, og dermed kan videokvaliteten være begrenset til laveste innstilling.", + "dataChannelClosedDescriptionWithAudio": "Brokkanalen er nede, og dermed kan det oppstå forstyrrelser i lyd og video.", + "dataChannelClosedWithAudio": "Lyd- og videokvaliteten kan være svekket", + "disabledIframe": "Innebygging er kun ment for demonstrasjonsformål, så denne samtalen vil kobles fra om {{timeout}} minutter.", + "disabledIframeSecondary": "Innebygging av {{domain}} er kun ment for demonstrasjonsformål, så denne samtalen vil kobles fra om {{timeout}} minutter. Vennligst bruk Jitsi as a Service for innebygging i produksjon!", + "disconnected": "frakoblet", + "displayNotifications": "Vis varsler for", + "dontRemindMe": "Ikke minn meg på dette", + "focus": "Konferansefokus", + "focusFail": "{{component}} ikke tilgjengelig - prøver igjen om {{ms}} sek", + "gifsMenu": "GIPHY", + "groupTitle": "Varsler", + "hostAskedUnmute": "Moderator ønsker at du skal snakke", + "invalidTenant": "Ugyldig leietaker", + "invalidTenantHyphenDescription": "Leietakeren du bruker er ugyldig (starter eller slutter med '-').", + "invalidTenantLengthDescription": "Leietakeren du bruker er for lang.", + "invitedOneMember": "{{name}} har blitt invitert", + "invitedThreePlusMembers": "{{name}} og {{count}} andre har blitt invitert", + "invitedTwoMembers": "{{first}} og {{second}} har blitt invitert", + "joinMeeting": "Bli med", + "kickParticipant": "{{kicked}} ble kastet ut av {{kicker}}", + "leftOneMember": "{{name}} forlot møtet", + "leftThreePlusMembers": "{{name}} og mange andre forlot møtet", + "leftTwoMembers": "{{first}} og {{second}} forlot møtet", + "linkToSalesforce": "Koble til Salesforce", + "linkToSalesforceDescription": "Du kan knytte møtereferatet til et Salesforce-objekt.", + "linkToSalesforceError": "Kunne ikke koble møtet til Salesforce", + "linkToSalesforceKey": "Koble dette møtet", + "linkToSalesforceProgress": "Kobler møtet til Salesforce…", + "linkToSalesforceSuccess": "Møtet ble koblet til Salesforce", + "localRecordingStarted": "{{name}} har startet et lokalt opptak.", + "localRecordingStopped": "{{name}} har stoppet et lokalt opptak.", + "me": "Meg", + "moderationInEffectCSDescription": "Vennligst rekke opp hånden hvis du vil dele skjermen din.", + "moderationInEffectCSTitle": "Skjermdeling er blokkert av moderator", + "moderationInEffectDescription": "Vennligst rekke opp hånden hvis du vil snakke.", + "moderationInEffectTitle": "Mikrofonen din er dempet av moderator", + "moderationInEffectVideoDescription": "Vennligst rekke opp hånden hvis du vil starte kameraet ditt.", + "moderationInEffectVideoTitle": "Kameraet ditt er blokkert av moderator", + "moderationRequestFromModerator": "Verten ønsker at du slår på lyden", + "moderationRequestFromParticipant": "Ønsker å snakke", + "moderationStartedTitle": "Moderasjon startet", + "moderationStoppedTitle": "Moderasjon stoppet", + "moderationToggleDescription": "av {{participantDisplayName}}", + "moderator": "Du er nå moderator", + "muted": "Du har startet samtalen dempet.", + "mutedRemotelyDescription": "Du kan alltid slå på lyden når du er klar til å snakke. Demp igjen når du er ferdig for å redusere støy i møtet.", + "mutedRemotelyTitle": "Du har blitt dempet av {{participantDisplayName}}", + "mutedTitle": "Du er dempet!", + "newDeviceAction": "Bruk", + "newDeviceAudioTitle": "Ny lydenhet oppdaget", + "newDeviceCameraTitle": "Nytt kamera oppdaget", + "nextToSpeak": "Du er nestemann til å snakke", + "noiseSuppressionDesktopAudioDescription": "Ekstra støydemping kan ikke aktiveres mens du deler skrivebordets lyd. Deaktiver det og prøv igjen.", + "noiseSuppressionFailedTitle": "Kunne ikke starte ekstra støydemping", + "noiseSuppressionStereoDescription": "Ekstra støydemping støttes foreløpig ikke med stereolyd.", + "oldElectronClientDescription1": "Det ser ut til at du bruker en gammel versjon av Jitsi Meet-klienten som har kjente sikkerhetsproblemer. Vennligst oppdater til vår ", + "oldElectronClientDescription2": "nyeste versjon", + "oldElectronClientDescription3": " nå!", + "participantWantsToJoin": "Ønsker å bli med i møtet", + "participantsWantToJoin": "Ønsker å bli med i møtet", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) fjernet av en annen deltaker", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) satt av en annen deltaker", + "raiseHandAction": "Rekk opp hånden", + "raisedHand": "Ønsker å snakke.", + "raisedHands": "{{participantName}} og {{raisedHands}} flere personer", + "reactionSounds": "Deaktiver lyder", + "reactionSoundsForAll": "Deaktiver lyder for alle", + "screenShareNoAudio": "Del lyd-boksen ble ikke valgt i vindusvalget.", + "screenShareNoAudioTitle": "Kunne ikke dele systemlyd!", + "screenSharingAudioOnlyDescription": "Vær oppmerksom på at ved å dele skjermen påvirker du \"Beste ytelse\"-modusen, og du vil bruke mer båndbredde.", + "screenSharingAudioOnlyTitle": "\"Beste ytelse\"-modus", + "selfViewTitle": "Du kan alltid vise selvvisningen igjen fra innstillingene", + "somebody": "Noen", + "startSilentDescription": "Bli med i møtet på nytt for å aktivere lyd", + "startSilentTitle": "Du ble med uten lydutgang!", + "suboptimalBrowserWarning": "Vi er redd møteopplevelsen din ikke blir optimal her. Vi jobber med forbedringer, men inntil videre kan du prøve en av de fullt støttede nettleserne.", + "suboptimalExperienceTitle": "Nettleseradvarsel", + "suggestRecordingAction": "Start", + "suggestRecordingDescription": "Vil du starte et opptak?", + "suggestRecordingTitle": "Ta opp dette møtet", + "unmute": "Slå på lyden", + "videoMutedRemotelyDescription": "Du kan alltid slå det på igjen.", + "videoMutedRemotelyTitle": "Videoen din har blitt slått av av {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Aktivering av kamera og skjermdeling har blitt midlertidig blokkert på grunn av systembegrensninger.", + "videoUnmuteBlockedTitle": "Aktivering av kamera og skjermdeling blokkert!", + "viewLobby": "Vis lobby", + "viewParticipants": "Vis deltakere", + "viewVisitors": "Vis seere", + "waitingParticipants": "{{waitingParticipants}} personer", + "waitingVisitors": "Seere som venter i kø: {{waitingVisitors}}", + "waitingVisitorsTitle": "Møtet er ikke live ennå!", + "whiteboardLimitDescription": "Vennligst lagre fremgangen din, siden brukergrensen snart blir nådd og whiteboardet vil lukkes.", + "whiteboardLimitTitle": "Bruk av whiteboard" + }, + "participantsPane": { + "actions": { + "admit": "Godkjenn", + "admitAll": "Godkjenn alle", + "allow": "Tillat deltakere å:", + "allowVideo": "Tillat video", + "askUnmute": "Be om å slå på lyden", + "audioModeration": "Slå på lyden selv", + "blockEveryoneMicCamera": "Blokker alles mikrofon og kamera", + "breakoutRooms": "Grupperom", + "goLive": "Gå live", + "invite": "Inviter noen", + "lowerAllHands": "Senk alle hender", + "lowerHand": "Senk hånden", + "moreModerationActions": "Flere moderasjonsalternativer", + "moreModerationControls": "Flere moderasjonskontroller", + "moreParticipantOptions": "Flere deltakeralternativer", + "mute": "Demp", + "muteAll": "Demp alle", + "muteEveryoneElse": "Demp alle andre", + "reject": "Avvis", + "stopEveryonesVideo": "Stopp alles video", + "stopVideo": "Stopp video", + "unblockEveryoneMicCamera": "Fjern blokkering av alles mikrofon og kamera", + "videoModeration": "Starte videoen sin" + }, + "close": "Lukk", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Møtedeltakere ({{count}})", + "visitorInQueue": " (venter {{count}})", + "visitorRequests": " (forespørsler {{count}})", + "visitors": "Seere {{count}}", + "waitingLobby": "Venter i lobbyen ({{count}})" + }, + "search": "Søk etter deltakere", + "title": "Deltakere" + }, + "passwordDigitsOnly": "Opptil {{number}} sifre", + "passwordSetRemotely": "Satt av en annen deltaker", + "pinParticipant": "{{participantName}} - Fest", + "pinnedParticipant": "Deltakeren er festet", + "polls": { + "answer": { + "edit": "Rediger", + "send": "Send", + "skip": "Hopp over", + "submit": "Send inn" + }, + "by": "Av {{ name }}", + "closeButton": "Lukk avstemning", + "create": { + "addOption": "Legg til alternativ", + "answerPlaceholder": "Alternativ {{index}}", + "cancel": "Avbryt", + "create": "Opprett en avstemning", + "pollOption": "Avstemningsalternativ {{index}}", + "pollQuestion": "Avstemningsspørsmål", + "questionPlaceholder": "Still et spørsmål", + "removeOption": "Fjern alternativ", + "save": "Lagre", + "send": "Send" + }, + "errors": { + "notUniqueOption": "Alternativene må være unike" + }, + "notification": { + "description": "Åpne avstemningsfanen for å stemme", + "title": "En ny avstemning ble lagt til i dette møtet" + }, + "results": { + "changeVote": "Endre stemme", + "empty": "Det er ingen avstemninger i møtet ennå. Start en avstemning her!", + "hideDetailedResults": "Skjul detaljer", + "showDetailedResults": "Vis detaljer", + "vote": "Stem" + } + }, + "poweredby": "drevet av", + "prejoin": { + "audioAndVideoError": "Lyd- og videofeil:", + "audioDeviceProblem": "Det er et problem med lydenheten din", + "audioOnlyError": "Lydfeil:", + "audioTrackError": "Kunne ikke opprette lydspor.", + "callMe": "Ring meg", + "callMeAtNumber": "Ring meg på dette nummeret:", + "calling": "Ringer", + "configuringDevices": "Konfigurerer enheter…", + "connectedWithAudioQ": "Er du tilkoblet med lyd?", + "connection": { + "failed": "Tilkoblingstesten mislyktes!", + "good": "Internettforbindelsen din ser bra ut!", + "nonOptimal": "Internettforbindelsen din er ikke optimal", + "poor": "Du har en dårlig internettforbindelse", + "running": "Kjører tilkoblingstest…" + }, + "connectionDetails": { + "audioClipping": "Vi forventer at lyden din vil bli avkuttet.", + "audioHighQuality": "Vi forventer at lyden din vil ha utmerket kvalitet.", + "audioLowNoVideo": "Vi forventer at lydkvaliteten din vil være lav, og at det ikke vil være video.", + "goodQuality": "Fantastisk! Mediekvaliteten din kommer til å være utmerket.", + "noMediaConnectivity": "Vi kunne ikke finne en måte å opprette medietilkobling for denne testen. Dette skyldes vanligvis en brannmur eller NAT.", + "noVideo": "Vi forventer at videokvaliteten din vil være svært dårlig.", + "testFailed": "Tilkoblingstesten støtte på uventede problemer, men dette vil kanskje ikke påvirke opplevelsen din.", + "undetectable": "Hvis du fortsatt ikke kan foreta anrop i nettleseren, anbefaler vi at du sjekker at høyttalere, mikrofon og kamera er riktig konfigurert, at du har gitt nettleseren tillatelse til å bruke mikrofon og kamera, og at nettleseren din er oppdatert. Hvis du fortsatt har problemer, bør du kontakte utvikleren av nettapplikasjonen.", + "veryPoorConnection": "Vi forventer at samtalekvaliteten din vil være svært dårlig.", + "videoFreezing": "Vi forventer at videoen din vil fryse, bli svart eller ha pikselerte forstyrrelser.", + "videoHighQuality": "Vi forventer at videoen din vil ha god kvalitet.", + "videoLowQuality": "Vi forventer at videoen din vil ha lav kvalitet når det gjelder bildefrekvens og oppløsning.", + "videoTearing": "Vi forventer at videoen din vil være pikselert eller ha visuelle artefakter." + }, + "copyAndShare": "Kopier og del møtelenken", + "dialInMeeting": "Ring inn til møtet", + "dialInPin": "Ring inn til møtet og tast inn PIN-kode:", + "dialing": "Ringer", + "doNotShow": "Ikke vis denne skjermen igjen", + "errorDialOut": "Kunne ikke ringe ut", + "errorDialOutDisconnected": "Kunne ikke ringe ut. Frakoblet", + "errorDialOutFailed": "Kunne ikke ringe ut. Anrop mislyktes", + "errorDialOutStatus": "Feil ved henting av status for utgående anrop", + "errorMissingName": "Vennligst skriv inn navnet ditt for å bli med i møtet", + "errorNoPermissions": "Du må gi tilgang til mikrofon og kamera", + "errorStatusCode": "Feil ved utgående anrop, statuskode: {{status}}", + "errorValidation": "Nummerverifisering mislyktes", + "iWantToDialIn": "Jeg vil ringe inn", + "initiated": "Anrop initiert", + "joinAudioByPhone": "Bli med via telefonlyd", + "joinMeeting": "Bli med i møtet", + "joinMeetingInLowBandwidthMode": "Bli med i modus for lav båndbredde", + "joinWithoutAudio": "Bli med uten lyd", + "keyboardShortcuts": "Aktiver hurtigtaster", + "linkCopied": "Lenke kopiert til utklippstavlen", + "lookGood": "Enhetene dine fungerer som de skal", + "or": "eller", + "premeeting": "Før møtet", + "proceedAnyway": "Fortsett likevel", + "recordingWarning": "Andre deltakere kan ta opp denne samtalen", + "screenSharingError": "Feil ved skjermdeling:", + "startWithPhone": "Start med telefonlyd", + "unsafeRoomConsent": "Jeg forstår risikoen, jeg vil bli med i møtet", + "videoOnlyError": "Video feil:", + "videoTrackError": "Kunne ikke opprette videospor.", + "viewAllNumbers": "se alle numre" + }, + "presenceStatus": { + "busy": "Opptatt", + "calling": "Ringer…", + "connected": "Tilkoblet", + "connecting": "Kobler til…", + "connecting2": "Kobler til*…", + "disconnected": "Frakoblet", + "expired": "Utløpt", + "ignored": "Ignorert", + "initializingCall": "Initialiserer anrop…", + "invited": "Invitert", + "rejected": "Avvist", + "ringing": "Ringer…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Navn", + "setEmailInput": "Skriv inn e-post", + "setEmailLabel": "Gravatar e-post", + "title": "Profil" + }, + "raisedHand": "Ønsker å snakke", + "raisedHandsLabel": "Antall hevede hender", + "record": { + "already": { + "linked": "Møtet er allerede koblet til dette Salesforce-objektet." + }, + "type": { + "account": "Konto", + "contact": "Kontakt", + "lead": "Lead", + "opportunity": "Mulighet", + "owner": "Eier" + } + }, + "recording": { + "authDropboxText": "Last opp til Dropbox", + "availableSpace": "Tilgjengelig plass: {{spaceLeft}} MB (omtrent {{duration}} minutter med opptak)", + "beta": "BETA", + "busy": "Vi jobber med å frigjøre opptaksressurser. Vennligst prøv igjen om noen minutter.", + "busyTitle": "Alle opptakere er for øyeblikket opptatt", + "copyLink": "Kopier lenke", + "error": "Opptak mislyktes. Vennligst prøv igjen.", + "errorFetchingLink": "Feil ved henting av opptaksl link.", + "expandedOff": "Opptaket har stoppet", + "expandedOn": "Møtet blir for øyeblikket tatt opp", + "expandedPending": "Opptak starter…", + "failedToStart": "Kunne ikke starte opptak", + "fileSharingdescription": "Del opptakslenken med møtedeltakerne", + "highlight": "Høydepunkt", + "highlightMoment": "Marker øyeblikk", + "highlightMomentDisabled": "Du kan markere øyeblikk når opptaket starter", + "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", + "localRecordingStartWarning": "Sørg for å stoppe opptaket før du forlater møtet for å lagre det.", + "localRecordingStartWarningTitle": "Stopp opptaket for å lagre det", + "localRecordingVideoStop": "Hvis du stopper videoen, vil også det lokale opptaket stoppe. Er du sikker på at du vil fortsette?", + "localRecordingVideoWarning": "For å ta opp videoen din, må du ha den på når opptaket starter", + "localRecordingWarning": "Pass på å velge den gjeldende fanen for å bruke riktig video og lyd.", + "loggedIn": "Logget inn som {{userName}}", + "noMicPermission": "Kunne ikke opprette mikrofonspor. Vennligst gi tillatelse til å bruke mikrofonen.", + "noStreams": "Ingen lyd- eller videostrøm oppdaget.", + "off": "Opptak stoppet", + "offBy": "{{name}} stoppet opptaket", + "on": "Opptak startet", + "onBy": "{{name}} startet opptaket", + "onlyRecordSelf": "Ta kun opp min egen lyd- og videostrøm", + "pending": "Forbereder opptak av møtet…", + "policyError": "Du prøvde å starte et opptak for raskt. Vennligst prøv igjen senere!", + "recordAudioAndVideo": "Ta opp lyd og video", + "recordTranscription": "Ta opp transkripsjon", + "saveLocalRecording": "Lagre opptaksfilen lokalt (Beta)", + "serviceDescription": "Opptaket ditt vil bli lagret av opptakstjenesten", + "serviceDescriptionCloud": "Skylagringsopptak", + "serviceDescriptionCloudInfo": "Opptak av møter slettes automatisk 24 timer etter opptakstidspunktet.", + "serviceName": "Opptakstjeneste", + "sessionAlreadyActive": "Denne økten blir allerede tatt opp eller direktesendt.", + "showAdvancedOptions": "Avanserte alternativer", + "signIn": "Logg inn", + "signOut": "Logg ut", + "surfaceError": "Vennligst velg den gjeldende fanen.", + "title": "Opptak", + "unavailable": "Oops! {{serviceName}} er for øyeblikket utilgjengelig. Vi jobber med å løse problemet. Vennligst prøv igjen senere.", + "unavailableTitle": "Opptak utilgjengelig", + "uploadToCloud": "Last opp til skyen" + }, + "screenshareDisplayName": "{{name}}s skjerm", + "sectionList": { + "pullToRefresh": "Dra for å oppdatere" + }, + "security": { + "about": "Du kan legge til et $t(lockRoomPassword) for møtet ditt. Deltakere må oppgi $t(lockRoomPassword) før de får bli med i møtet.", + "aboutReadOnly": "Moderatorer kan legge til et $t(lockRoomPassword) for møtet. Deltakere må oppgi $t(lockRoomPassword) før de får bli med i møtet.", + "insecureRoomNameWarningNative": "Romnavnet er usikkert. Uønskede deltakere kan bli med i møtet ditt. {{recommendAction}} Lær mer om hvordan du sikrer møtet ditt.", + "insecureRoomNameWarningWeb": "Romnavnet er usikkert. Uønskede deltakere kan bli med i møtet ditt. {{recommendAction}} Lær mer om hvordan du sikrer møtet ditt her.", + "title": "Sikkerhetsalternativer", + "unsafeRoomActions": { + "meeting": "Vurder å sikre møtet ditt ved å bruke sikkerhetsknappen.", + "prejoin": "Vurder å bruke et mer unikt møtenavn.", + "welcome": "Vurder å bruke et mer unikt møtenavn, eller velg ett av forslagene." + } + }, + "settings": { + "audio": "Lyd", + "buttonLabel": "Innstillinger", + "calendar": { + "about": "{{appName}} kalenderintegrasjon brukes til å få sikker tilgang til kalenderen din slik at den kan lese kommende hendelser.", + "disconnect": "Koble fra", + "microsoftSignIn": "Logg inn med Microsoft", + "signedIn": "Har for øyeblikket tilgang til kalenderhendelser for {{email}}. Klikk på Koble fra-knappen nedenfor for å stoppe tilgangen til kalenderhendelser.", + "title": "Kalender" + }, + "desktopShareFramerate": "Bildefrekvens for skjermdeling", + "desktopShareHighFpsWarning": "En høyere bildefrekvens for skjermdeling kan påvirke båndbredden din. Du må starte skjermdelingen på nytt for at de nye innstillingene skal tre i kraft.", + "desktopShareWarning": "Du må starte skjermdelingen på nytt for at de nye innstillingene skal tre i kraft.", + "devices": "Enheter", + "followMe": "Alle følger meg", + "followMeRecorder": "Opptaker følger meg", + "framesPerSecond": "bilder per sekund", + "incomingMessage": "Innkommende melding", + "language": "Språk", + "loggedIn": "Logget inn som {{name}}", + "maxStageParticipants": "Maksimalt antall deltakere som kan festes til hovedscenen", + "microphones": "Mikrofoner", + "moderator": "Moderator", + "moderatorOptions": "Moderatoralternativer", + "more": "Generelt", + "name": "Navn", + "noDevice": "Ingen", + "notifications": "Varsler", + "participantJoined": "Deltaker ble med", + "participantKnocking": "Deltaker kom inn i lobbyen", + "participantLeft": "Deltaker forlot møtet", + "playSounds": "Spill av lyd ved", + "reactions": "Møtereaksjoner", + "sameAsSystem": "Samme som systemet ({{label}})", + "selectAudioOutput": "Lydutgang", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Selvvisning", + "shortcuts": "Hurtigtaster", + "speakers": "Høyttalere", + "startAudioMuted": "Alle starter dempet", + "startReactionsMuted": "Demp reaksjonslyder for alle", + "startVideoMuted": "Alle starter skjult", + "talkWhileMuted": "Snakk mens du er dempet", + "title": "Innstillinger", + "video": "Video" + }, + "settingsView": { + "advanced": "Avansert", + "alertCancel": "Avbryt", + "alertOk": "OK", + "alertTitle": "Advarsel", + "alertURLText": "Den angitte server-URL-en er ugyldig", + "apply": "Bruk", + "buildInfoSection": "Bygginformasjon", + "conferenceSection": "Konferanse", + "disableCallIntegration": "Deaktiver integrasjon med native anrop", + "disableCrashReporting": "Deaktiver feilmeldingsrapportering", + "disableCrashReportingWarning": "Er du sikker på at du vil deaktivere feilmeldingsrapportering? Innstillingen vil bli brukt etter at du starter appen på nytt.", + "disableP2P": "Deaktiver Peer-To-Peer-modus", + "displayName": "Visningsnavn", + "displayNamePlaceholderText": "F.eks.: John Doe", + "email": "E-post", + "emailPlaceholderText": "email@eksempel.com", + "gavatarMessage": "Hvis e-posten din er knyttet til en Gravatar-konto, vil vi bruke den til å vise profilbildet ditt.", + "goTo": "Gå til", + "header": "Innstillinger", + "help": "Hjelp", + "links": "Lenker", + "privacy": "Personvern", + "profileSection": "Profil", + "sdkVersion": "SDK-versjon", + "serverURL": "Server-URL", + "showAdvanced": "Vis avanserte innstillinger", + "startCarModeInLowBandwidthMode": "Start bilmodus i modus for lav båndbredde", + "startWithAudioMuted": "Start med dempet lyd", + "startWithVideoMuted": "Start med deaktivert video", + "terms": "Vilkår", + "version": "App-versjon" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVil du bare ringe inn via telefon?\n\n{{defaultDialInNumber}}Klikk denne lenken for å se innringingsnumrene for dette møtet\n{{dialInfoPageUrl}}", + "mainText": "Klikk på følgende lenke for å bli med i møtet:\n{{roomUrl}}" + }, + "speaker": "Taler", + "speakerStats": { + "angry": "Sint", + "disgusted": "Frastøtt", + "displayEmotions": "Vis følelser", + "fearful": "Redd", + "happy": "Glad", + "hours": "{{count}}t", + "labelTooltip": "Antall deltakere: {{count}}", + "minutes": "{{count}}m", + "name": "Navn", + "neutral": "Nøytral", + "sad": "Trist", + "search": "Søk", + "searchHint": "Søk etter deltakere", + "seconds": "{{count}}s", + "speakerStats": "Deltakerstatistikk", + "speakerTime": "Taletid", + "surprised": "Overrasket" + }, + "startupoverlay": { + "genericTitle": "Møtet må bruke mikrofonen og kameraet ditt.", + "policyText": " ", + "title": "{{app}} må bruke mikrofonen og kameraet ditt." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Bli med igjen", + "text": "Trykk på Bli med igjen-knappen for å koble til på nytt.", + "title": "Videosamtalen din ble avbrutt fordi denne datamaskinen gikk i dvale." + }, + "termsView": { + "title": "Vilkår" + }, + "toggleTopPanelLabel": "Veksle toppanel", + "toolbar": { + "Settings": "Innstillinger", + "accessibilityLabel": { + "Settings": "Åpne innstillinger", + "audioOnly": "Veksle kun lyd", + "audioRoute": "Velg lydenhet", + "boo": "Buu", + "breakoutRooms": "Grupperom", + "callQuality": "Administrer videokvalitet", + "carmode": "Bilmodus", + "cc": "Veksle undertekster", + "chat": "Åpne / Lukk chat", + "clap": "Applaus", + "closeChat": "Lukk chat", + "closeMoreActions": "Lukk menyen for flere handlinger", + "closeParticipantsPane": "Lukk deltakerpanelet", + "collapse": "Skjul", + "document": "Veksle delt dokument", + "documentClose": "Lukk delt dokument", + "documentOpen": "Åpne delt dokument", + "download": "Last ned våre apper", + "embedMeeting": "Bygg inn møte", + "endConference": "Avslutt møte for alle", + "enterFullScreen": "Vis i fullskjerm", + "enterTileView": "Aktiver rutenettvisning", + "exitFullScreen": "Avslutt fullskjerm", + "exitTileView": "Avslutt rutenettvisning", + "expand": "Utvid", + "feedback": "Legg igjen tilbakemelding", + "fullScreen": "Veksle fullskjerm", + "giphy": "Veksle GIPHY-meny", + "grantModerator": "Gi moderatorrettigheter", + "hangup": "Forlat møtet", + "heading": "Verktøylinje", + "help": "Hjelp", + "hideWhiteboard": "Skjul whiteboard", + "invite": "Inviter personer", + "kick": "Fjern deltaker", + "laugh": "Latter", + "leaveConference": "Forlat møtet", + "like": "Tommelen opp", + "linkToSalesforce": "Koble til Salesforce", + "lobbyButton": "Aktiver/deaktiver lobby-modus", + "localRecording": "Veksle kontroller for lokalt opptak", + "lockRoom": "Veksle møtepassord", + "love": "Hjerte", + "lowerHand": "Senk hånden", + "moreActions": "Flere handlinger", + "moreActionsMenu": "Meny for flere handlinger", + "moreOptions": "Vis flere alternativer", + "mute": "Demp mikrofon", + "muteEveryone": "Demp alle", + "muteEveryoneElse": "Demp alle andre", + "muteEveryoneElsesVideoStream": "Stopp video for alle andre", + "muteEveryonesVideoStream": "Stopp alles video", + "muteGUMPending": "Kobler til mikrofonen din", + "noiseSuppression": "Ekstra støydemping (BETA)", + "openChat": "Åpne chat", + "participants": "Åpne deltakerpanelet. {{participantsCount}} deltakere", + "pip": "Veksle bilde-i-bilde-modus", + "privateMessage": "Send privat melding", + "profile": "Rediger profilen din", + "raiseHand": "Rekk opp hånden", + "react": "Meldingsreaksjoner", + "reactions": "Reaksjoner", + "reactionsMenu": "Meny for reaksjoner", + "recording": "Veksle opptak", + "remoteMute": "Demp deltaker", + "remoteVideoMute": "Deaktiver deltakers kamera", + "security": "Sikkerhetsalternativer", + "selectBackground": "Velg bakgrunn", + "selfView": "Veksle selvvisning", + "shareRoom": "Inviter noen", + "shareYourScreen": "Start skjermdeling", + "shareaudio": "Del lyd", + "sharedvideo": "Del video", + "shortcuts": "Veksle snarveier", + "show": "Vis på scenen", + "showWhiteboard": "Vis whiteboard", + "silence": "Stillhet", + "speakerStats": "Veksle deltakerstatistikk", + "stopScreenSharing": "Stopp skjermdeling", + "stopSharedVideo": "Stopp video", + "surprised": "Overrasket", + "tileView": "Veksle rutenettvisning", + "toggleCamera": "Veksle kamera", + "toggleFilmstrip": "Veksle filmstripe", + "unmute": "Slå på mikrofon", + "videoblur": "Veksle uskarp bakgrunn", + "videomute": "Stopp kamera", + "videomuteGUMPending": "Kobler til kameraet ditt", + "videounmute": "Start kamera" + }, + "addPeople": "Legg til personer i samtalen din", + "audioOnlyOff": "Deaktiver modus for lav båndbredde", + "audioOnlyOn": "Aktiver modus for lav båndbredde", + "audioRoute": "Velg lydenhet", + "audioSettings": "Lydinnstillinger", + "authenticate": "Autentiser", + "boo": "Buu", + "callQuality": "Administrer videokvalitet", + "chat": "Åpne / Lukk chat", + "clap": "Applaus", + "closeChat": "Lukk chat", + "closeParticipantsPane": "Lukk deltakerpanelet", + "closeReactionsMenu": "Lukk reaksjonsmenyen", + "disableNoiseSuppression": "Deaktiver ekstra støydemping (BETA)", + "disableReactionSounds": "Du kan deaktivere reaksjonslyder for dette møtet", + "documentClose": "Lukk delt dokument", + "documentOpen": "Åpne delt dokument", + "download": "Last ned våre apper", + "e2ee": "Ende-til-ende-kryptering", + "embedMeeting": "Bygg inn møte", + "enableNoiseSuppression": "Aktiver ekstra støydemping (BETA)", + "endConference": "Avslutt møtet for alle", + "enterFullScreen": "Vis i fullskjerm", + "enterTileView": "Aktiver rutenettvisning", + "exitFullScreen": "Avslutt fullskjerm", + "exitTileView": "Avslutt rutenettvisning", + "feedback": "Legg igjen tilbakemelding", + "giphy": "Veksle GIPHY-meny", + "hangup": "Forlat møtet", + "help": "Hjelp", + "hideWhiteboard": "Skjul whiteboard", + "invite": "Inviter personer", + "joinBreakoutRoom": "Bli med i grupperom", + "laugh": "Latter", + "leaveBreakoutRoom": "Forlat grupperom", + "leaveConference": "Forlat møtet", + "like": "Tommelen opp", + "linkToSalesforce": "Koble til Salesforce", + "lobbyButtonDisable": "Deaktiver lobby-modus", + "lobbyButtonEnable": "Aktiver lobby-modus", + "login": "Logg inn", + "logout": "Logg ut", + "love": "Hjerte", + "lowerYourHand": "Senk hånden", + "moreActions": "Flere handlinger", + "moreOptions": "Flere alternativer", + "mute": "Demp mikrofon", + "muteEveryone": "Demp alle", + "muteEveryonesVideo": "Deaktiver alles kamera", + "muteGUMPending": "Kobler til mikrofonen din", + "noAudioSignalDesc": "Hvis du ikke dempet mikrofonen med systeminnstillinger eller maskinvare, vurder å bytte enhet.", + "noAudioSignalDescSuggestion": "Hvis du ikke dempet mikrofonen med systeminnstillinger eller maskinvare, vurder å bytte til den foreslåtte enheten.", + "noAudioSignalDialInDesc": "Du kan også ringe inn ved å bruke:", + "noAudioSignalDialInLinkDesc": "Innringingsnumre", + "noAudioSignalTitle": "Det er ingen lydinngang fra mikrofonen din!", + "noiseSuppression": "Ekstra støydemping (BETA)", + "noisyAudioInputDesc": "Det høres ut som mikrofonen din lager støy. Vurder å dempe eller bytte enhet.", + "noisyAudioInputTitle": "Mikrofonen din ser ut til å være støyende!", + "openChat": "Åpne chat", + "openReactionsMenu": "Åpne reaksjonsmeny", + "participants": "Deltakere", + "pip": "Aktiver bilde-i-bilde-modus", + "privateMessage": "Send privat melding", + "profile": "Rediger profilen din", + "raiseHand": "Rekk opp hånden", + "raiseYourHand": "Rekk opp hånden", + "reactionBoo": "Send buu-reaksjon", + "reactionClap": "Send applaus-reaksjon", + "reactionHeart": "Send hjerte-reaksjon", + "reactionLaugh": "Send latter-reaksjon", + "reactionLike": "Send tommel opp-reaksjon", + "reactionSilence": "Send stillhet-reaksjon", + "reactionSurprised": "Send overrasket-reaksjon", + "reactions": "Reaksjoner", + "security": "Sikkerhetsalternativer", + "selectBackground": "Velg bakgrunn", + "shareRoom": "Inviter noen", + "shareaudio": "Del lyd", + "sharedvideo": "Del video", + "shortcuts": "Vis hurtigtaster", + "showWhiteboard": "Vis whiteboard", + "silence": "Stillhet", + "speakerStats": "Deltakerstatistikk", + "startScreenSharing": "Start skjermdeling", + "startSubtitles": "Undertekster • {{language}}", + "stopAudioSharing": "Stopp deling av lyd", + "stopScreenSharing": "Stopp skjermdeling", + "stopSharedVideo": "Stopp video", + "stopSubtitles": "Stopp undertekster", + "surprised": "Overrasket", + "talkWhileMutedPopup": "Prøver du å snakke? Du er dempet.", + "tileViewToggle": "Veksle rutenettvisning", + "toggleCamera": "Veksle kamera", + "unmute": "Slå på mikrofon", + "videoSettings": "Videoinnstillinger", + "videomute": "Stopp kamera", + "videomuteGUMPending": "Kobler til kameraet ditt", + "videounmute": "Start kamera" + }, + "transcribing": { + "ccButtonTooltip": "Start / Stopp undertekster", + "expandedLabel": "Transkribering er for øyeblikket på", + "failed": "Transkribering mislyktes", + "labelToolTip": "Møtet blir transkribert", + "sourceLanguageDesc": "For øyeblikket er møtespråket satt til {{sourceLanguage}}.
Du kan endre det ", + "sourceLanguageHere": "her", + "start": "Start visning av undertekster", + "stop": "Stopp visning av undertekster", + "subtitles": "Undertekster", + "subtitlesOff": "Av", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Løsne", + "userMedia": { + "grantPermissions": "Vennligst gi tillatelser for å bruke kameraet og mikrofonen din." + }, + "videoSIPGW": { + "busy": "Vi jobber med å frigjøre ressurser. Vennligst prøv igjen om noen minutter.", + "busyTitle": "Romtjenesten er for øyeblikket opptatt", + "errorAlreadyInvited": "{{displayName}} er allerede invitert", + "errorInvite": "Konferansen er ikke opprettet ennå. Vennligst prøv igjen senere.", + "errorInviteFailed": "Vi jobber med å løse problemet. Vennligst prøv igjen senere.", + "errorInviteFailedTitle": "Invitasjon til {{displayName}} mislyktes", + "errorInviteTitle": "Feil ved invitasjon av rom", + "pending": "{{displayName}} har blitt invitert" + }, + "videoStatus": { + "adjustFor": "Juster for:", + "audioOnly": "LYD", + "audioOnlyExpanded": "Du er i modus for lav båndbredde. I denne modusen vil du kun motta lyd og skjermdeling.", + "bestPerformance": "Beste ytelse", + "callQuality": "Videokvalitet (0 for best ytelse, 3 for høyeste kvalitet)", + "hd": "HD", + "hdTooltip": "Ser video i høy oppløsning", + "highDefinition": "Høy oppløsning", + "highestQuality": "Høyeste kvalitet", + "labelTooiltipNoVideo": "Ingen video", + "labelTooltipAudioOnly": "Modus for lav båndbredde aktivert", + "ld": "LD", + "ldTooltip": "Ser video i lav oppløsning", + "lowDefinition": "Lav oppløsning", + "performanceSettings": "Ytelsesinnstillinger", + "recording": "Opptak pågår", + "sd": "SD", + "sdTooltip": "Ser video i standard oppløsning", + "standardDefinition": "Standard oppløsning", + "streaming": "Direktesending pågår" + }, + "videothumbnail": { + "connectionInfo": "Tilkoblingsinformasjon", + "demote": "Flytt til seer", + "domute": "Demp", + "domuteOthers": "Demp alle andre", + "domuteVideo": "Deaktiver kamera", + "domuteVideoOfOthers": "Deaktiver kamera for alle andre", + "flip": "Snu", + "grantModerator": "Gi moderatorrettigheter", + "hideSelfView": "Skjul selvvisning", + "kick": "Fjern deltaker", + "mirrorVideo": "Speil videoen min", + "moderator": "Moderator", + "mute": "Deltaker er dempet", + "muted": "Dempet", + "pinToStage": "Fest til scenen", + "remoteControl": "Start / Stopp fjernkontroll", + "screenSharing": "Deltaker deler skjermen sin", + "show": "Vis på scenen", + "showSelfView": "Vis selvvisning", + "unpinFromStage": "Løsne", + "verify": "Bekreft deltaker", + "videoMuted": "Kamera deaktivert", + "videomute": "Deltakeren har stoppet kameraet" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Nåværende bakgrunn: {{background}}", + "selectBackground": "Velg en bakgrunn" + }, + "addBackground": "Legg til bakgrunn", + "apply": "Bruk", + "backgroundEffectError": "Kunne ikke bruke bakgrunnseffekten.", + "blur": "Uskarp", + "deleteImage": "Slett bilde", + "desktopShare": "Skjermdeling", + "desktopShareError": "Kunne ikke opprette skjermdeling", + "image1": "Strand", + "image2": "Hvit nøytral vegg", + "image3": "Hvitt tomt rom", + "image4": "Svart gulvlampe", + "image5": "Fjell", + "image6": "Skog", + "image7": "Soloppgang", + "none": "Ingen", + "pleaseWait": "Vennligst vent…", + "removeBackground": "Fjern bakgrunn", + "slightBlur": "Delvis uskarp", + "title": "Virtuelle bakgrunner", + "uploadedImage": "Opplastet bilde {{index}}", + "webAssemblyWarning": "WebAssembly ikke støttet", + "webAssemblyWarningDescription": "WebAssembly er deaktivert eller ikke støttet av denne nettleseren" + }, + "visitors": { + "chatIndicator": "(seer)", + "joinMeeting": { + "description": "Du er for øyeblikket en seer i denne konferansen.", + "raiseHand": "Rekk opp hånden", + "title": "Bli med i møtet", + "wishToSpeak": "Hvis du ønsker å snakke, vennligst rekk opp hånden nedenfor og vent på godkjenning fra moderator." + }, + "labelTooltip": "Antall seere: {{count}}", + "notification": { + "demoteDescription": "Sendt hit av {{actor}}, rekk opp hånden for å delta", + "noMainParticipantsDescription": "En deltaker må starte møtet. Vennligst prøv igjen om litt.", + "noMainParticipantsTitle": "Dette møtet har ikke startet ennå.", + "noVisitorLobby": "Du kan ikke bli med så lenge lobbyen er aktivert for møtet.", + "notAllowedPromotion": "En deltaker må godkjenne forespørselen din først.", + "title": "Du er en seer i møtet" + }, + "waitingMessage": "Du blir med i møtet så snart det er live!" + }, + "volumeSlider": "Volumkontroll", + "welcomepage": { + "accessibilityLabel": { + "join": "Trykk for å bli med", + "roomname": "Skriv inn romnavn" + }, + "addMeetingName": "Legg til møtenavn", + "appDescription": "Sett i gang, ha videosamtaler med hele teamet. Faktisk, inviter alle du kjenner. {{app}} er en fullstendig kryptert, 100 % åpen kildekode videokonferanseløsning som du kan bruke hele dagen, hver dag, gratis — uten behov for konto.", + "audioVideoSwitch": { + "audio": "Stemme", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Koble til kalenderen din", + "connectCalendarText": "Koble til kalenderen din for å se alle møtene dine i {{app}}. I tillegg kan du legge til {{provider}}-møter i kalenderen din og starte dem med ett klikk.", + "enterRoomTitle": "Start et nytt møte", + "getHelp": "Få hjelp", + "go": "GÅ", + "goSmall": "GÅ", + "headerSubtitle": "Sikre møter av høy kvalitet", + "headerTitle": "Jitsi Meet", + "info": "Innringingsinformasjon", + "jitsiOnMobile": "Jitsi på mobil – last ned appene våre og start et møte fra hvor som helst", + "join": "OPPRETT / BLI MED", + "logo": { + "calendar": "Kalenderlogo", + "desktopPreviewThumbnail": "Forhåndsvisningsminiatyr for skrivebord", + "googleLogo": "Google-logo", + "logoDeepLinking": "Jitsi Meet-logo", + "microsoftLogo": "Microsoft-logo", + "policyLogo": "Retningslinjelogo" + }, + "meetingsAccessibilityLabel": "Møter", + "mobileDownLoadLinkAndroid": "Last ned mobilappen for Android", + "mobileDownLoadLinkFDroid": "Last ned mobilappen for F-Droid", + "mobileDownLoadLinkIos": "Last ned mobilappen for iOS", + "moderatedMessage": "Eller bestill en møtelink på forhånd hvor du er den eneste moderator.", + "privacy": "Personvern", + "recentList": "Nylige", + "recentListDelete": "Slett oppføring", + "recentListEmpty": "Listen din er for øyeblikket tom. Chat med teamet ditt, så finner du alle dine nylige møter her.", + "recentMeetings": "Dine nylige møter", + "reducedUIText": "Velkommen til {{app}}!", + "roomNameAllowedChars": "Møtenavnet skal ikke inneholde noen av disse tegnene: ?, &, :, ', \", %, #.", + "roomname": "Skriv inn romnavn", + "roomnameHint": "Skriv inn navnet eller URL-en til rommet du vil bli med i. Du kan finne på et navn, bare sørg for at de du møter vet det slik at de skriver inn det samme navnet.", + "sendFeedback": "Send tilbakemelding", + "settings": "Innstillinger", + "startMeeting": "Start møte", + "terms": "Vilkår", + "title": "Sikker, fullverdig og helt gratis videokonferanse", + "upcomingMeetings": "Dine kommende møter" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Whiteboard" + }, + "screenTitle": "Whiteboard" + } +} diff --git a/lang/main-oc.json b/lang/main-oc.json new file mode 100644 index 0000000..cf11242 --- /dev/null +++ b/lang/main-oc.json @@ -0,0 +1,1582 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Ligam de la reünion : {{url}}" + }, + "add": "Convidar", + "addContacts": "Convidatz vòstres contactes", + "contacts": "contactes", + "copyInvite": "Copiar l’invitacion a la reünion", + "copyLink": "Copiar lo ligam de la reünion", + "copyStream": "Copiar lo ligam de la difusion en dirècte", + "countryNotSupported": "Sèm pas encara compatibles amb aquesta destinacion.", + "countryReminder": "Sonatz defòra los US ? Mercés de vos assegurar de començar amb lo còdi país.", + "defaultEmail": "Vòstre email per defaut", + "disabled": "Podètz pas convidar de monde.", + "failedToAdd": "Fracàs de l'ajust de participants", + "googleEmail": "Google Email", + "inviteMoreHeader": "Sètz l’unica persona de la reünion", + "inviteMoreMailSubject": "Rejónher la reünion {{appName}}", + "inviteMorePrompt": "Convidar mai de monde", + "linkCopied": "Ligam copiat al quichapapièrs", + "noResults": "Pas cap de resultat trobat", + "outlookEmail": "Outlook Email", + "phoneNumbers": "numèros de telefòn", + "searching": "Recèrca…", + "shareInvite": "Partejar l’invitacion a la reünion", + "shareLink": "Partejar lo ligam de la reünion per convidar de monde", + "shareStream": "Partejar la ligam de la difusion en dirècte", + "sipAddresses": "adreças sip", + "telephone": "Telefòn : {{number}}", + "title": "Convidatz de monde a vòstra reünion", + "yahooEmail": "Yahoo Email" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Àudio veitura", + "headphones": "Escotadors", + "none": "Cap de periferic àudio pas disponible", + "phone": "Telefòn", + "speaker": "Nautparlaire" + }, + "audioOnly": { + "audioOnly": "Benda passanta febla" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "ex.10000000 per 10 Mbps", + "assumedBandwidthBpsWarning": "De valors mai nautas pòdon causar de problèmas de ret.", + "customValue": "valor personalizada", + "customValueEffect": "per definir la valor bps reala", + "leaveEmpty": "daissar void", + "leaveEmptyEffect": "per permetre las estimacions", + "possibleValues": "Valors possiblas", + "setAssumedBandwidthBps": "Benda passanta estimada (bps)", + "title": "Paramètres de debit", + "zeroEffect": "per desactivar la vidèo" + }, + "breakoutRooms": { + "actions": { + "add": "Apondre una sala de reünion", + "autoAssign": "Atribucion auto a las salas de reünion", + "close": "Tampar", + "join": "Rejónher", + "leaveBreakoutRoom": "Quitar la sala de reünion", + "more": "Mai", + "remove": "Levar", + "rename": "Renomenar", + "renameBreakoutRoom": "Renomenar la sala d’espèra", + "sendToBreakoutRoom": "Enviar lo participant a :" + }, + "breakoutList": "Lista de salas petitas", + "buttonLabel": "Salas per gropons", + "defaultName": "Sala de reünion #{{index}}", + "hideParticipantList": "Rescondre la lista de participants", + "mainRoom": "Sala principala", + "notifications": { + "joined": "Dintrada a la sala suplementària « {{name}} »", + "joinedMainRoom": "Retorn a la sala principala", + "joinedTitle": "Salas suplementàrias" + }, + "showParticipantList": "Mostrar la lista de participants", + "title": "Salas per gropons" + }, + "calendarSync": { + "addMeetingURL": "Ajustar un ligam de reünion", + "confirmAddLink": "Volètz ajustar un ligam Jitsi cap a aqueste eveniment ?", + "error": { + "appConfiguration": "L’integracion del calendièr es pas corrèctament configurada.", + "generic": "Una error s’es producha. Verificatz vòstres paramètres de calendièr o ensajatz de l’actualizar.", + "notSignedIn": "Una error s’es producha pendent l’autentificacion per veire los eveniments del calendièr. Verificatz los paramètres del calendièr e connectatz-vos tornamai." + }, + "join": "Jónher", + "joinTooltip": "Rejónher la reünion", + "nextMeeting": "reünion venenta", + "noEvents": "Cap d’eveniments venents pas prevists.", + "ongoingMeeting": "Reünion en cors", + "permissionButton": "Dobrir los paramètres", + "permissionMessage": "La permission pel calendari es necessària per listar vòstres RDV dins l’aplicacion.", + "refresh": "Actualizar lo calendari", + "today": "Uèi" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Seleccionar lo periferic àudio" + }, + "labels": { + "buttonLabel": "Mòde veitura", + "title": "Mòde veitura", + "videoStopped": "Vòstra vidèo es arrestada" + } + }, + "chat": { + "enter": "Dintrar dins la sala", + "error": "Error : lo messatge es pas estat enviat. Rason : {{error}}", + "fieldPlaceHolder": "Picatz vòstre messatge aquí", + "lobbyChatMessageTo": "Messatge de la sala d'espèra per {{recipient}}", + "message": "Messatge", + "messageAccessibleTitle": "{{user}} ditz :", + "messageAccessibleTitleMe": "disi :", + "messageTo": "Messatge privat per {{recipient}}", + "messagebox": "Picatz un messatge", + "newMessages": "Messatges novèls", + "nickname": { + "popover": "Causissètz un escais", + "title": "Picatz un escais-nom per utilizar la messatjariá", + "titleWithPolls": "Picatz un escais-nom per utilizar la messatjariá" + }, + "noMessagesMessage": "I a pas cap de messatge dins la reünion pel moment. Començat una conversacion aquí !", + "privateNotice": "Messatge privat per {{recipient}}", + "sendButton": "Mandar", + "smileysPanel": "Panèl d’Emoji", + "systemDisplayName": "Sistèma", + "tabs": { + "chat": "Messatjariá", + "polls": "Sondatges" + }, + "title": "Messatjariá", + "titleWithPolls": "Messatjariá", + "you": "vos" + }, + "chromeExtensionBanner": { + "buttonText": "Installar l’extension Chrome", + "buttonTextEdge": "Installar l'extension Edge", + "close": "Tampar", + "dontShowAgain": "Me mostrar pas mai aquò", + "installExtensionText": "Installar l’extension per l’integracion de Google Calendar e Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Connexion a vòstra reünion…" + }, + "connection": { + "ATTACHED": "Estacada", + "AUTHENTICATING": "Autentificacion en cors", + "AUTHFAIL": "Fracàs de l'autentificacion", + "CONNECTED": "Connectat", + "CONNECTING": "Connexion en cors", + "CONNFAIL": "Fracàs de la connexion", + "DISCONNECTED": "Desconnectat", + "DISCONNECTING": "Desconnexion en cors", + "ERROR": "Error", + "FETCH_SESSION_ID": "Obtencion de session-id…", + "GET_SESSION_ID_ERROR": "Obténer l’error session-id : {{code}}", + "GOT_SESSION_ID": "Obtencion de session-id… Fach", + "LOW_BANDWIDTH": "La vidèo per {{displayName}} es estada copada per estalviar la banda passanta" + }, + "connectionindicator": { + "address": "Adreça :", + "audio_ssrc": "Àudio SSRC :", + "bandwidth": "Benda passanta estimada :", + "bitrate": "Debit :", + "bridgeCount": "Nombre de servidor : ", + "codecs": "Codecs (A/V) : ", + "connectedTo": "Connectat a :", + "e2eeVerified": "E2EE verificat :", + "framerate": "Frequéncia imatge :", + "less": "Amagar lo detalh", + "localaddress": "Adreça locala :", + "localaddress_plural": "Adreças localas :", + "localport": "Pòrt local :", + "localport_plural": "Pòrts locals :", + "maxEnabledResolution": "enviar max", + "more": "Ne veire mai", + "no": "non", + "packetloss": "Pèrda de paquets :", + "participant_id": "Id participant :", + "quality": { + "good": "Bona", + "inactive": "Inactiva", + "lost": "Perduda", + "nonoptimal": "Pas optimala", + "poor": "Marrida" + }, + "remoteaddress": "Adreça distanta :", + "remoteaddress_plural": "Adreças distantas :", + "remoteport": "Pòrt distant :", + "remoteport_plural": "Pòrts distants :", + "resolution": "Resolucion :", + "savelogs": "Enregistrar jornals", + "status": "Connexion :", + "transport": "Transpòrt :", + "transport_plural": "Transpòrts :", + "video_ssrc": "Vidèo SSRC :", + "yes": "òc" + }, + "dateUtils": { + "earlier": "Mai d’ora", + "today": "Uèi", + "yesterday": "Ièr" + }, + "deepLinking": { + "appNotInstalled": "Vos cal l’aplicacion {{app}} per jónher la reünion amb vòstre mobil.", + "description": "Res s’es pas passat ? Avèm ensajat de lançar la reünion dins l’aplicacion {{app}}. Mercés de tornar ensajar o de la lançar dins l’aplicacion web {{app}}.", + "descriptionNew": "Pas res se's pas produsit ? Avèm ensajat de lançar vòstra reünion dins l'aplicacion de burèu {{app}}.

Podètz tornar ensajar o la lançar sul web.", + "descriptionWithoutWeb": "Res se passa pas ? Avèm ensajat de lançar la reünion dins l’aplicacion de burèu {{app}}.", + "downloadApp": "Telecargar l’aplicacion", + "downloadMobileApp": "Telecargar de l'App Store", + "ifDoNotHaveApp": "S’avètz pas encara l’aplicacion :", + "ifHaveApp": "S’avètz ja l’aplicacion :", + "joinInApp": "Rejónher la reünion en utilizant l’aplicacion", + "joinInAppNew": "Rejónher dins l'aplicacion", + "joinInBrowser": "Rejónher dins lo navegador", + "launchMeetingLabel": "Cossí volètz rejónher aquesta reünion ?", + "launchWebButton": "Lançar del navigador", + "noDesktopApp": "Avètz pas l'aplicacion ?", + "noMobileApp": "Avètz pas l'aplicacion ?", + "or": "O", + "termsAndConditions": "En contunhant, acceptatz nòstras condicions generalas d'utilizacion.", + "title": "Aviada de vòstra reünion dins {{app}}…", + "titleNew": "Lançament de la reünion…", + "tryAgainButton": "Tornar ensajar del burèu", + "unsupportedBrowser": "Sembla qu’utilizatz un navigador que prenèm pas en carga." + }, + "defaultLink": "ex. {{url}}", + "defaultNickname": "ex. Joan Delpuèch", + "deviceError": { + "cameraError": "Fracàs de l’accès a vòstra camèra", + "cameraPermission": "Error d'obtencion de la permission per la camèra", + "microphoneError": "Fracàs de l’accès a vòstre microfòn", + "microphonePermission": "Error d'obtencion de la permission pel microfòn" + }, + "deviceSelection": { + "hid": { + "callControl": "Contraròtle de las sonadas", + "connectedDevices": "Aparelhs connectats :", + "deleteDevice": "Suprimir lo periferic", + "pairDevice": "Associar un aparelh" + }, + "noPermission": "Autorizacion pas acordada", + "previewUnavailable": "Apercebut pas disponible", + "selectADevice": "Seleccionatz un aparelh", + "testAudio": "Legir un son de pròva" + }, + "dialIn": { + "screenTitle": "Resumit de la sonada" + }, + "dialOut": { + "statusMessage": "ara es {{status}}" + }, + "dialog": { + "Back": "Retorn", + "Cancel": "Anullar", + "IamHost": "Soi l’òste", + "Ok": "D'acòrdi", + "Remove": "Suprimir", + "Share": "Partejar", + "Submit": "Validar", + "WaitForHostMsg": "La conferéncia a pas encara començat. Se sètz l’òst volgatz ben vos identificar. Autrament esperatz qu’arribe l’òste.", + "WaitForHostNoAuthMsg": "La conferéncia a pas encara començat perque cap de moderator es pas encara arribat. Volgatz esperar.", + "WaitingForHostButton": "Esperar l'òste", + "WaitingForHostTitle": "En espèra de l’òste…", + "Yes": "Òc", + "accessibilityLabel": { + "Cancel": "Anullar (quitar la fenèstra)", + "Ok": "D'acòrdi (salvagardar e tampar la fenèstra)", + "close": "Tampar la fenèstra", + "liveStreaming": "Difusion en dirècte", + "sharingTabs": "Opcions de partatge" + }, + "add": "Ajustar", + "addMeetingNote": "Ajustar una nòta a aquesta reünion", + "addOptionalNote": "Ajustar una nòta (opcionala) :", + "allow": "Autorizar", + "allowToggleCameraDialog": "Permetre a {{initiatorName}} de bascular lo mòde de la camèra ?", + "allowToggleCameraTitle": "Permetre lo cambiament de mòde de camèra ?", + "alreadySharedVideoMsg": "Un autre participant parteja ja sa vidèo. Aquesta conferéncia permet pas qu’un partatge de vidèo a l’encòp.", + "alreadySharedVideoTitle": "Solament un partatge de vidèo a l'encòp es autorizat", + "applicationWindow": "Fenèstra de l'aplicacion", + "authenticationRequired": "Autentificacion requerida", + "cameraConstraintFailedError": "Vòstra camèra satisfà pas totas las constrentas necessàrias.", + "cameraNotFoundError": "La camèra es pas estada trobada.", + "cameraNotSendingData": "Podèm pas accedir a vòstra camèra. Mercés de verificar se una autra aplicacion es a utilizar aqueste periferic, seleccionatz un autre periferic dins lo menú de paramètres o ensajatz de recargar l'aplicacion.", + "cameraNotSendingDataTitle": "Impossible d'accedir a vòstra camèra", + "cameraPermissionDeniedError": "La camèra es pas estada trobada. Pasmens podètz participar a la conferéncia mas los demai vos veiràn pas. Utilizatz lo boton de la barra d’adreça per resòlver aqueste problèma.", + "cameraTimeoutError": "Aviada impossibla de la font vidèo. Relambi despassat !", + "cameraUnknownError": "Impossible d’emplegar la camèra per una rason desconeguda.", + "cameraUnsupportedResolutionError": "Vòstra camèra pren pas en carga la resolucion vidèo que cal.", + "close": "Tampar", + "conferenceDisconnectMsg": "Vos cal benlèu verificar vòstra connexion al malhum. Nòva connexion d’aquí {{seconds}} segondas…", + "conferenceDisconnectTitle": "Sètz estat desconnectat.", + "conferenceReloadMsg": "Sèm a reglar aquò ! Nòva connexion d’aquí {{seconds}} segondas…", + "conferenceReloadTitle": "Malurosament, quicòm truquèt.", + "confirm": "Confirmar", + "confirmNo": "Non", + "confirmYes": "Òc", + "connectError": "Ops! Quicòm a trucat e la connexion a la conferéncia es impossibla.", + "connectErrorWithMsg": "Ops! Quicòm a trucat e la connexion a la conferéncia es impossibla: {{msg}}", + "connecting": "Connexion en cors", + "contactSupport": "Contactar l'assisténcia", + "copied": "Copiat", + "copy": "Copiar", + "demoteParticipantDialog": "Volètz vertadièrament desplaçar aqueste participant en visitor ?", + "demoteParticipantTitle": "Desplaçar en visitor", + "dismiss": "Regetar", + "displayNameRequired": "Adiu ! Cossí vos dison ?", + "done": "Tampar", + "e2eeDescription": "Lo chiframent del cap a la fin es actualament EXPERIMENTALA. Mercés de gardar a l'esperit qu'activar lo chiframent del cap a la fin desactivarà en efièch los servicis costat servidor coma : l'enregistrament, la difusion en dirècte e las participacions telefonicas. Remembratz tanben que la reünion foncionarà pas que per lo monde que participan amb un navigador compatible amb los fluxes inseribles.", + "e2eeDisabledDueToMaxModeDescription": "Impossible d'activar lo chiframent del cap a la fin a causa d'un nombre tròp bèl de participants dins la conferéncia.", + "e2eeLabel": "Activar lo chiframant del cap a la fin", + "e2eeWarning": "AVERTIMENT : pas totes los participants d'aquesta reünion semblan poder suportar lo chiframent del cap a la fin. Se l'activatz poiràn pas vos veire nimai vos entendre.", + "e2eeWillDisableDueToMaxModeDescription": "AVERTIMENT : lo chiframent del cap a la fin serà automaticament desactivat se mai de participants rejonhent la conferéncia.", + "embedMeeting": "Integrar la reünion", + "enterDisplayName": "Volgatz picar vòstre nom aquí", + "error": "Error", + "errorRoomCreationRestriction": "Avètz ensajat de rejónher tròp rapidament, volètz tornar d'aquí un moment.", + "gracefulShutdown": "Lo servici es actualament en mantenença. Ensajatz tornamai pus tard.", + "grantModeratorDialog": "Volètz vertadièrament far venir {{participantName}} moderator ?", + "grantModeratorTitle": "Passar moderator", + "hide": "Rescondre", + "hideShareAudioHelper": "Afichar pas mai aquesta fenèstra", + "incorrectPassword": "Nom de compte o senhal incorrècte", + "incorrectRoomLockPassword": "Senhal incorrècte", + "internalError": "Òu ! Quicòm a pas foncionat. L'error seguenta s'es producha : {{error}}", + "internalErrorTitle": "Error intèrna", + "kickMessage": "Podètz contactat {{participantDisplayName}} per mai de detalhs.", + "kickParticipantButton": "Forabandir", + "kickParticipantDialog": "Volètz vertadièrament forabandir aqueste participant ?", + "kickParticipantTitle": "Forabandir aqueste participant ?", + "kickSystemTitle": "Ai ! Vos an forabandit de la reünion", + "kickTitle": "Ai ! {{participantDisplayName}} vos a forabandit de la reünion", + "linkMeeting": "Ligam de la reünion", + "linkMeetingTitle": "Ligar la reünion a Salesforce", + "liveStreaming": "La difusion en dirècte es estada arrestada", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossible pendent un enregistrament actiu", + "localUserControls": "Contraròtles de l’utilizaire local", + "lockMessage": "Impossible de verrolhar la conferéncia.", + "lockRoom": "Ajustar un $t(lockRoomPassword) a la reünion", + "lockTitle": "Fracàs del verrolhatge", + "login": "Connexion", + "loginQuestion": "Volètz vertadièrament vos connectar e quitar la conferéncia ?", + "logoutQuestion": "Sètz segur que vos volètz desconnectar e arrestar la conferéncia ?", + "logoutTitle": "Desconnexion", + "maxUsersLimitReached": "La limita de nombre maximum de participant es estada atenguda. La reünion es complèta. Contactatz lo proprietari de la conferéncia o tornatz ensajar mai tard.", + "maxUsersLimitReachedTitle": "Limita de participants maximum atenguda", + "micConstraintFailedError": "Vòstre microfòn satisfà pas totas las constrentas necessàrias.", + "micNotFoundError": "Lo microfòn es pas estat trobat.", + "micNotSendingData": "Anatz als paramètres de l’ordenador per tornar metre lo son del microfòn e ajustar son nivèl", + "micNotSendingDataTitle": "Lo microfòn es copat pels paramètres del sistèma", + "micPermissionDeniedError": "Avètz pas donat l'autorizacion d'utilizar vòstre microfòn. Podètz encara participar a la conferéncia mai los demai vos ausiràn pas. Utilizatz lo boton del microfòn dins la barra d'adreça per resòlvre aquò.", + "micTimeoutError": "Aviada impossibla de la font àudio. Relambi despassat !", + "micUnknownError": "Impossible d'utilizar lo microfòn per una rason desconeguda.", + "moderationAudioLabel": "Permetre als convidats de se copar lo son", + "moderationVideoLabel": "Permetre als convidats d’aviar lor vidèo", + "muteEveryoneDialog": "Volètz vertadièrament copar lo son a tot lo monde ? Poiretz pas lo restablir, mas eles poiràn o far quora que vòlgan.", + "muteEveryoneDialogModerationOn": "Los participants pòdon enviar una requèsta per parlar quand vòlgan.", + "muteEveryoneElseDialog": "Un còp mut, poiretz pas mai lo tornar la paraula, mas la se pòdon tornar quora vòlgan.", + "muteEveryoneElseTitle": "Copar lo son a totes levat {{whom}} ?", + "muteEveryoneElsesVideoDialog": "Un còp la camèra desactivada, poiretz pas la reactivar, mas pòdon la reactivar quand vòlgan.", + "muteEveryoneElsesVideoTitle": "Arrestar la vidèo de tot lo monde levat {{whom}} ?", + "muteEveryoneSelf": "vos", + "muteEveryoneStartMuted": "D'ara enlà tot lo monde comença mut", + "muteEveryoneTitle": "Rendre mut tot lo monde ?", + "muteEveryonesVideoDialog": "Los participants pòdon activar lor vidèo quand vòlgan.", + "muteEveryonesVideoDialogModerationOn": "Los participants pòdon enviar una requèsta per activar lor vidèo quand vòlgan.", + "muteEveryonesVideoDialogOk": "Desactivar", + "muteEveryonesVideoTitle": "Arrestar la vidèo de tot lo monde ?", + "muteParticipantBody": "Poiretz pas lo tornar activar lo microfòn, mai eles pòdon o far quand vòlon.", + "muteParticipantButton": "Copar lo son", + "muteParticipantsVideoBody": "Poiretz pas lor activar la camèra de nòu, mas poirián se la restablir quand vòlga.", + "muteParticipantsVideoBodyModerationOn": "Poiretz pas li activar de nòu e el tanpauc.", + "muteParticipantsVideoButton": "Arrestar la vidèo", + "muteParticipantsVideoDialog": "Volètz vertadièrament copar la camèra d’aqueste participant ? Poiretz pas li activar de nòu, mas poiriá se la restablir quand vòlga.", + "muteParticipantsVideoDialogModerationOn": "Volètz vertadièrament copar la camèra d’aqueste participant ? Poiretz pas li activar de nòu e el tanpauc.", + "muteParticipantsVideoTitle": "Desactivar la camèra d’aqueste participant ?", + "noDropboxToken": "Cap de geton Dropbox pas valid", + "password": "Senhal", + "passwordLabel": "Aquesta reünion es estada barrada per un participant. Mercés de dintrar lo $t(lockRoomPassword) per la rejónher.", + "passwordNotSupported": "Ajustar un $t(lockRoomPassword) a una reünion es pas suportat.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) pas suportat", + "passwordRequired": "$t(lockRoomPasswordUppercase) requesit", + "permissionCameraRequiredError": "L’autorizacion de la camèra es requerida per participar a la conferéncia amb la vidèo. Mercés de la donar als Paramètres", + "permissionErrorTitle": "Autorizacion requerida", + "permissionMicRequiredError": "L’autorizacion del microfòn es requerida per participar a la conferéncia amb l’àudio. Mercés de la donar als Paramètres", + "readMore": "mai", + "recentlyUsedObjects": "Vòstres objectes recentament utilizats", + "recording": "Enregistrament", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossible pendent una difusion activa", + "rejoinNow": "Participar ara", + "remoteControlAllowedMessage": "{{user}} a acceptat vòstra demanda de contraròtle alonhat !", + "remoteControlDeniedMessage": "{{user}} a refusat vòstra demanda de contraròtle alonhat !", + "remoteControlErrorMessage": "Error al moment de demandar lo contraròtle alonhat a {{user}} !", + "remoteControlRequestMessage": "Volètz autorizar {{user}} a contrarotlar vòstre ordinador ?", + "remoteControlShareScreenWarning": "Remarcatz que se botatz « Autorizar » partejaretz vòstre ecran !", + "remoteControlStopMessage": "La session de contraròtle alonhat es acabada !", + "remoteControlTitle": "Contraròtle a distància", + "remoteUserControls": "Contraròtle a distància de l'utilizaire {{username}}", + "removePassword": "Suprimir lo $t(lockRoomPassword)", + "removeSharedVideoMsg": "Sètz segur que volètz suprimir vòstra vidèo partejada ?", + "removeSharedVideoTitle": "Suprimir la vidèo partejada", + "renameBreakoutRoomLabel": "Nom de la sala", + "renameBreakoutRoomTitle": "Renomenar la sala petita", + "reservationError": "Error del sistèma de reservacion", + "reservationErrorMsg": "Còdi d'error: {{code}}, messatge: {{msg}}", + "retry": "Ensajar tornamai", + "screenSharingAudio": "Partejar l’àudio", + "screenSharingFailed": "Ops ! Quicòm a trucat, avèm pas pogut començar lo partiment d'ecran!", + "screenSharingFailedTitle": "Fracàs del partiment d'ecran !", + "screenSharingPermissionDeniedError": "Òps ! Quicòm s'es pas ben passat amb l'autorizacion de vòstra autorizacion de partatge d'ecran. Mercés de recargar e tornar ensajar.", + "searchInSalesforce": "Cercar dins Salesforce", + "searchResults": "Resultats de recèrca ({{count}})", + "searchResultsDetailsError": "S'es produsit un problèma en recuperant las donadas del proprietari.", + "searchResultsError": "Un problèma s'es produsit pendent la recuperacion de las donadas.", + "searchResultsNotFound": "Cap de resultat pas trobat.", + "searchResultsTryAgain": "Ensajatz d'utilizar d'autres mots clau.", + "sendPrivateMessage": "Avètz recentament recebut un messatge privat. Avètz ensajat d’i respondre en privat, o volètz enviar lo messatge al grop ?", + "sendPrivateMessageCancel": "Enviar al grop", + "sendPrivateMessageOk": "Enviar en privat", + "sendPrivateMessageTitle": "Enviar en privat ?", + "serviceUnavailable": "Servici indisponible", + "sessTerminated": "Sonada acabada", + "sessTerminatedReason": "La sonada es terminada", + "sessionRestarted": "Sonada reaviada a causa d’un problèma de connexion.", + "shareAudio": "Contunhar", + "shareAudioAltText": "Per partejar lo contengut volgut, anatz a « Onglet del navegador », seleccionatz lo contengut, activatz lo boton « partejar l'àudio » puèi clicatz lo boton « partejar »", + "shareAudioTitle": "Cossí partejar l’àudio", + "shareAudioWarningD1": "devètz arrestar lo partiment d’ecran abans lo partiment d’àudio.", + "shareAudioWarningD2": "devètz reaviar lo partiment d’ecran e clicar l’opcion « partejar l’àudio ».", + "shareAudioWarningH1": "Se volètz partejar pas que l’àudio :", + "shareAudioWarningTitle": "Devètz arrestar lo partiment d’ecran abans lo partiment d’àudio", + "shareMediaWarningGenericH2": "Se volètz partejar vòstre ecran e l’àudio", + "shareScreenWarningD1": "devètz arrestar lo partiment àudio abans lo partiment de l’ecran.", + "shareScreenWarningD2": "devètz arrestar lo partiment àudio, aviar lo partiment d’ecran e clicar l’opcion « partejar l’àudio ».", + "shareScreenWarningH1": "Se volètz partejar pas que l’ecran :", + "shareScreenWarningTitle": "Devètz arrestar lo partiment àudio abans lo partiment de l’ecran", + "shareVideoConfirmPlay": "Sètz a mand de dobrir un site web extèrn. Volètz persègre ?", + "shareVideoConfirmPlayTitle": "{{name}} a partejat una vidèo amb vos.", + "shareVideoLinkError": "Se vos plai, provesissètz un ligam foncional.", + "shareVideoLinkStopped": "La vidèo de {{name}} se's arrestat.", + "shareVideoTitle": "Partejar una vidèo", + "shareYourScreen": "Partejar vòstre ecran", + "shareYourScreenDisabled": "Lo partiment d’ecran es desactivat.", + "sharedVideoDialogError": "Error : URL invalida", + "sharedVideoLinkPlaceholder": "Ligam YouTube o ligam vidèo dirèct", + "show": "Mostrar", + "start": "Lançar ", + "startLiveStreaming": "Aviar una difusion en dirècte", + "startRecording": "Arrestar l'enregistrament", + "startRemoteControlErrorMessage": "Una error s'es produsida en ensajar de començar la session de contraròtle a distància !", + "stopLiveStreaming": "Arrestar lo dirècte", + "stopRecording": "Arrestar l'enregistrament", + "stopRecordingWarning": "Sètz segur que volètz arrestar l'enregistrament?", + "stopStreamingWarning": "Volètz vertadièrament arrestar lo dirècte ?", + "streamKey": "Clau del dirècte", + "thankYou": "Mercé d'aver utilizat {{appName}} !", + "token": "geton", + "tokenAuthFailed": "O planhèm, sètz pas autorizat a rejónher l'apèl.", + "tokenAuthFailedReason": { + "audInvalid": "Valor invalida `aud`. Deu èsser `jitsi`.", + "contextNotFound": "L'objècte `context` es absent de la carga utila.", + "expInvalid": "Valor `exp` invalida.", + "featureInvalid": "Foncionalitat invalida : {{feature}}, probablament pas encara implementada.", + "featureValueInvalid": "Valor invalida per la foncionalitat : {{feature}}.", + "featuresNotFound": "L'objècte `features` es absent de la carga utila.", + "headerNotFound": "Entèsta pas trobada.", + "issInvalid": "Valor`iss` invalida. Deu èsser `chat`.", + "kidMismatch": "Key ID (kid) correspond pas al sub.", + "kidNotFound": "Key ID (kid) absent.", + "nbfFuture": "La valor `nbf` es dins lo futur.", + "nbfInvalid": "Valor `nbf` invalida.", + "payloadNotFound": "Carga utila pas trobada.", + "tokenExpired": "Lo geton a expirat." + }, + "tokenAuthFailedTitle": "Fracàs de l'autentificacion", + "tokenAuthFailedWithReasons": "Avètz pas lo drech de rejónher la sonada. La rason possiblva : {{reason}}", + "tokenAuthUnsupported": "Geton URL pas pres en carga.", + "transcribing": "Transcripcion", + "unlockRoom": "Suprimir lo $t(lockRoomPassword) de la reünion", + "user": "utilizaire", + "userIdentifier": "Identificador utilizaire", + "userPassword": "senhal utilizaire", + "verifyParticipantConfirm": "Correspondon", + "verifyParticipantDismiss": "Correspondon pas", + "verifyParticipantQuestion": "EXPERIMENTAL : demandar al participant {{participantName}} se vei lo meteis contengut, dins lo meteis òrdre.", + "verifyParticipantTitle": "Verificacion utilizaire", + "videoLink": "ligam vidèo", + "viewUpgradeOptions": "Veire las opcions de mesa a nivèl", + "viewUpgradeOptionsContent": "Per obténer un accès sens limit a las foncionalitats premium coma l’enregistrament, la transcripcion, la difusion RTMP e encara mai, devètz passar al nivèl superior.", + "viewUpgradeOptionsTitle": "Avètz descobèrt una foncionalitat premium !", + "whiteboardLimitContent": "Lo limit del tablèu blanc es atengut.", + "whiteboardLimitReference": "Per mai d'informacions mercés de consultar", + "whiteboardLimitReferenceUrl": "nòstre site web", + "whiteboardLimitTitle": "Utilizacion del tablèu blanc limitada", + "yourEntireScreen": "Vòstre ecran complet" + }, + "documentSharing": { + "title": "Document partejat" + }, + "e2ee": { + "labelToolTip": "La comunicacion àudio e vidèo d’aquesta sonada es chifrada del cap a la fin" + }, + "embedMeeting": { + "title": "Integrar aquesta reünion" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Vòstra causida : {{rating}}" + }, + "average": "Mejana", + "bad": "Marrida", + "detailsLabel": "Digatz-nos-ne mai a prepaus d’aquò.", + "good": "Bona", + "rateExperience": "Mercés de donar una nòta a vòstra experiéncia", + "star": "Estela", + "veryBad": "Fòrça marrida", + "veryGood": "Fòrça bona" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniaturas vidèo" + } + }, + "giphy": { + "noResults": "Cap de resultat de recèrca pas trobat :(", + "search": "Recercar dins GIPHY" + }, + "incomingCall": { + "answer": "Uèi", + "audioCallTitle": "Sonada entranta", + "decline": "Regetar", + "productLabel": "de Jitsi Meet estant", + "videoCallTitle": "Sonada vidèo entranta" + }, + "info": { + "accessibilityLabel": "Mostrar las info", + "addPassword": "Ajustar un $t(lockRoomPassword)", + "cancelPassword": "Anullar lo $t(lockRoomPassword)", + "conferenceURL": "Ligam :", + "copyNumber": "Copiar lo numèro", + "country": "País", + "dialANumber": "Per participar a la reünion, sonatz un d’aquestes numèros puèi picatz lo senhal.", + "dialInConferenceID": "PIN :", + "dialInNotSupported": "Las sonadas son pas encara foncionalas.", + "dialInNumber": "Compausar :", + "dialInSummaryError": "Error en recuperant las informacions per sonar. Volgatz tornar mai tard.", + "dialInTollFree": "Sonada gratuïta", + "genericError": "Ops, quicòm a fach mèuca.", + "inviteLiveStream": "Per veire lo flux en dirècte de la reünion, clicatz aqueste ligam : {{url}}", + "invitePhone": "Per jónher per telefòn a la plaça, compausatz aquò : {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Cercatz mai de numèros de telefòn ?\nFar veire los numèros de sonada de la reünion : {{url}}\n\n\nSe volètz sonar tanben un telefòn de sala, jonhètz sens connectar l’àudio : {{silentUrl}}", + "inviteSipEndpoint": "Per rejónher en utilizant l’adreça SIP, picatz aquò : {{sipUri}}", + "inviteTextiOSInviteUrl": "Clicatz lo ligam seguent per rejónher : {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Se sonatz via un aparelh de sala de reünion, utilizatz aqueste ligam per rejónher sens connectar l’àudio : {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} vos convida a la reünion.", + "inviteTextiOSPhone": "Per participar per telefòn, utilizatz aqueste numèro : {{number}},,{{conferenceID}}#. Se cercatz un numèro diferent, vaquí la lista complèta : {{didUrl}}.", + "inviteURLFirstPartGeneral": "Sètz convidat a participar a la reünion.", + "inviteURLFirstPartPersonal": "{{name}} vos convida a la reünion.\n", + "inviteURLSecondPart": "\nParticipar a la reünion :\n{{url}}\n", + "label": "Info conferéncia", + "liveStreamURL": "Flux dirècte :", + "moreNumbers": "Mai de numèros", + "noNumbers": "Pas cap de numèro.", + "noPassword": "Pas cap", + "noRoom": "Cap de sala pas donada per la jónher.", + "noWhiteboard": "Cargament impossible del tablèu blanc.", + "numbers": "Sonar de numèros", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Avètz atengut lo limit de vòstre forfach.", + "sip": "adreça SIP", + "sipAudioOnly": "Adreça SIP en àudio unicament", + "title": "Partejar", + "tooltip": "Partejar lo ligam e las informacions d’aquesta reünion", + "upgradeOptions": "Volgatz verificar las opcions de mesas a nivèl", + "whiteboardError": "Error de cargament del tablèu blanc. Volgatz tornar ensajar mai tard." + }, + "inlineDialogFailure": { + "msg": "Avèm un pauc patit a manténer la connexion.", + "retry": "Ensajar tornarmai", + "support": "Assisténcia", + "supportMsg": "Se ten d'arribat, contactatz l'" + }, + "inviteDialog": { + "alertText": "Fracàs en convidant unes participants.", + "header": "Convidar", + "searchCallOnlyPlaceholder": "Picatz un numerò de telefòn", + "searchPeopleOnlyPlaceholder": "Cercar de participants", + "searchPlaceholder": "Participant o numèro de telefòn", + "send": "Mandar" + }, + "jitsiHome": "{{logo}} Logotipe, mena a la pagina d'acuèlh", + "keyboardShortcuts": { + "focusLocal": "Centrar sus vòstra vidèo", + "focusRemote": "Centrar sus la vidèo de qualqu'un mai", + "fullScreen": "Activar / Desactivar l'ecran complet", + "giphyMenu": "Alternar lo menú GIPHY", + "keyboardShortcuts": "Acorchis de clavièr", + "localRecording": "Mostrar o amagar los contraròtles d’enregistrament local", + "mute": "Activar o desactivar lo microfòn", + "pushToTalk": "Butar per parlar", + "raiseHand": "Demandar o pas la paraula", + "showSpeakerStats": "Mostrar las estatisticas del microfòn", + "toggleChat": "Dobrir o tampar lo panèl de conversacion", + "toggleFilmstrip": "Mostrar o amagar la vinheta vidèo", + "toggleParticipantsPane": "Afichar o amagar lo panèl dels participants", + "toggleScreensharing": "Caplevar entre camèra e partatge d'ecran", + "toggleShortcuts": "Mostrar o amagar los acorchis clavièr", + "videoMute": "Aviar o arrestar vòstra camèra" + }, + "largeVideo": { + "screenIsShared": "Sètz a partejar vòstre ecran", + "showMeWhatImSharing": "M'afichar çò que partegi" + }, + "liveStreaming": { + "busy": "Sèm a ensajar de liurar de ressorças flux. Mercés de tornar ensajar dins una estona.", + "busyTitle": "Totes los difusors son ocupats", + "changeSignIn": "Cambiar de compte.", + "choose": "Causissètz un flux dirècte", + "chooseCTA": "Causissètz un flux dirècte. Sètz connectat coma {{email}}.", + "enterStreamKey": "Picatz vòstre clau de flux dirècte Youtube aquí.", + "error": "Fracàs de la difusion en dirècte. Mercés de tornar ensajar.", + "errorAPI": "Una error s’es producha pendent l’accès al flux YouTube. Mercé d’ensajar de vos connectar mai tard.", + "errorLiveStreamNotEnabled": "La difusion en dirècte es pas activada per {{email}}. Volgatz ben activar la difusion en dirècte o vos connectar amb un compte que l’a activada.", + "expandedOff": "La difusion en dirècte es estada arrestada", + "expandedOn": "La reünion es actualament difusada", + "expandedPending": "La difusion en dirècte comença…", + "failedToStart": "La difusion en dirècte a pas capitat de s'aviar", + "getStreamKeyManually": "Avèm pas pogut recuperar cap de flux en dirècte. Ensajatz d’obténer vòstre clau de difusion sus YouTube.", + "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", + "onBy": "{{name}} a començat la difusion en dirècte", + "pending": "Començar lo dirècte…", + "policyError": "Avètz ensajat de començar una difusion en dirècte tròp rapidament. Ensajatz de nòu mai tard !", + "serviceName": "Servici de difusion en dirècte", + "sessionAlreadyActive": "Aquesta session es ja en cors d’enregistrament o en difusion en dirèct.", + "signIn": "Se connectar amb Google", + "signInCTA": "Connectatz-vos o picatz la clau de vòstre flux YouTube.", + "signOut": "Se desconnectar", + "signedInAs": "Sètz connectat coma :", + "start": "Aviar una difusion en dirècte", + "streamIdHelp": "Qu’es aquò ?", + "title": "Difusion en dirècte", + "unavailableTitle": "Difusion en dirècte indisponibla", + "youtubeTerms": "Condicions d’utilizacion de YouTube" + }, + "lobby": { + "backToKnockModeButton": "Cap de senhal, demandar a participar a la plaça", + "chat": "Chat", + "dialogTitle": "Mòde sala d'espèra", + "disableDialogContent": "La sala d’espèra es actualament activada. Aquesta foncionalitat assegura que los participants indesirables poiràn pas participar. La volètz desactivar ?", + "disableDialogSubmit": "Desactivar", + "emailField": "Picata vòstra adreça electronica", + "enableDialogPasswordField": "Definir un senhal (opcional)", + "enableDialogSubmit": "Activar", + "enableDialogText": "La sala d’espèra vos permet de protegir vòstras reünion en autorizant las personas de dintrar qu’aprèp l’aprobacion formala d’un moderator.", + "enterPasswordButton": "Dintratz lo senhal de la reünion", + "enterPasswordTitle": "Dintratz lo senhal per rejónher la reünion", + "errorMissingPassword": "Mercés de picar lo senhal de la reünion", + "invalidPassword": "Senhal invalid", + "joinRejectedMessage": "Un moderator a regetat vòstra demanda de participacion.", + "joinRejectedTitle": "Demanda d'accès regetada.", + "joinTitle": "Rejónher la reünion", + "joinWithPasswordMessage": "Ensag de participacion amb senhal, volgatz esperar…", + "joiningMessage": "Dintraretz dins la reünion tre que qualqu’un aurà acceptat vòstra demanda", + "joiningTitle": "Demanda a rejónher la reünion…", + "joiningWithPasswordTitle": "A rejónher amb senhal…", + "knockButton": "Demandar a rejónher", + "knockTitle": "Qualqu’un vòl rejónher la reünion", + "knockingParticipantList": "Lista de participants en espèra", + "lobbyChatStartedNotification": "{{moderator}} es a charrar en sala d'espèra amb {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} a començat de charrar en sala d'espèra amb vos.", + "lobbyClosed": "Es estada barrada la sala d'espèra.", + "nameField": "Escrivètz vòstre nom", + "notificationLobbyAccessDenied": "{{originParticipantName}} a decidit de regetar la demanda de {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} a autorizat {{targetParticipantName}} a dintrar", + "notificationLobbyDisabled": "Lo mòde sala d'espèra es estat desactivat per {{originParticipantName}}", + "notificationLobbyEnabled": "Lo mòde sala d'espèra activat per {{originParticipantName}}", + "notificationTitle": "Sala d'espèra", + "passwordJoinButton": "Rejónher", + "title": "Sala d'espèra", + "toggleLabel": "Activar la sala d'espèra" + }, + "localRecording": { + "clientState": { + "off": "Desactivat", + "on": "Activat", + "unknown": "Desconeguts" + }, + "dialogTitle": "Contraròtles dels enregistraments locals", + "duration": "Durada", + "durationNA": "N/A", + "encoding": "Encodatge", + "label": "ENR-LOC", + "labelToolTip": "Enregistrament local començat", + "localRecording": "Enregistrament local", + "me": "Ieu", + "messages": { + "engaged": "Enregistrament local començat.", + "finished": "Enregistrament de la session {{token}} acabat. Mercés d’enviar lo fichièr enregistrat al moderator.", + "finishedModerator": "Enregistrament de la session {{token}} acabat. Es estat salvagardat. Mercés de demandar als autres participants d’enviar lor enregistraments.", + "notModerator": "Sètz pas moderator. Podètz pas començar o arrestar un enregistrament local." + }, + "moderator": "Moderator", + "no": "Non", + "participant": "Participant", + "participantStats": "Estatisticas del participant", + "selectTabTitle": "🎥 Mercés de seleccionar aqueste onglet per enregistrar", + "sessionToken": "Geton de session", + "start": "Aviar l'enregistrament", + "stop": "Arrestar l'enregistrament", + "stopping": "Arrèst de l'enregistrament", + "wait": "Esperatz pendent la salvagarda de vòstre enregistrament", + "yes": "Òc" + }, + "lockRoomPassword": "senhal", + "lockRoomPasswordUppercase": "Senhal", + "lonelyMeetingExperience": { + "button": "Convidar d’autres", + "youAreAlone": "Sètz l’unica persona de la reünion" + }, + "me": "ieu", + "notify": { + "OldElectronAPPTitle": "Problèma de seguretat !", + "allowAction": "Autorizar", + "allowedUnmute": "Vos podètz restablir lo son del microfòn, aviar la camèra e partejar l’ecran.", + "audioUnmuteBlockedDescription": "Las operacion de restabliment del son microfòn son estadas blocadas pel moment a causa de limitas sistèma.", + "audioUnmuteBlockedTitle": "Restabliment del son del microfòn blocat !", + "chatMessages": "Messatges del chat", + "connectedOneMember": "{{name}} a rejonch la reünion", + "connectedThreePlusMembers": "{{name}} e plen mai d'autras personas participan a la reünion", + "connectedTwoMembers": "{{first}} e {{second}} participan a la reünion", + "connectionFailed": "Fracàs de la connexion. Mercés de tornar ensajar mai tard !", + "dataChannelClosed": "Qualitat vidèo deteriorada", + "dataChannelClosedDescription": "Lo canal pont es indisponible alara la qualitat vidèo es limitada a sa valor mai febla.", + "dataChannelClosedDescriptionWithAudio": "Lo canal pont es indisponible, alara de perturbacion de l'àudio e de la vidèo pòdon arribar.", + "dataChannelClosedWithAudio": "La qualitat de l'àudio e de la vidèo pòt èsser deteriorada", + "disabledIframe": "L'integracion d'iframe es sonque destinada a las demonstracion, aquesta sonada s'acabarà d'aquí {{timeout}} minutas.", + "disabledIframeSecondary": "L'integracion d'iframe de {{domain}} es sonque destinada a las demonstracion, aquesta sonada s'acabarà d'aquí {{timeout}} minutas. Mercés d'utilizar Jitsi coma servici per una integracion en produccion.", + "disconnected": "desconnectat", + "displayNotifications": "Afichar las notificacions per", + "dontRemindMe": "Lo me rapelar pas", + "focus": "Focus de conferéncia", + "focusFail": "{{component}} es pas disponible - ensajatz tornamai dins {{ms}} sec", + "gifsMenu": "GIPHY", + "groupTitle": "Notificacions", + "hostAskedUnmute": "Lo moderator vos que parletz", + "invalidTenant": "Titular invalid", + "invalidTenantHyphenDescription": "Lo titular que sètz a utilizar es invalid (començar o acabar per '-').", + "invalidTenantLengthDescription": "Lo titular qu'utilizatz es tròp long.", + "invitedOneMember": "{{name}} es estat convidat", + "invitedThreePlusMembers": "{{name}} e {{count}} autres son estats convidats", + "invitedTwoMembers": "{{first}} e {{second}} son estats convidats", + "joinMeeting": "Rejónher", + "kickParticipant": "{{kicked}} es estat expulsat per {{kicker}}", + "leftOneMember": "{{name}} a quitat la reünion", + "leftThreePlusMembers": "{{name}} e un molon d’autres an quitat la reünion", + "leftTwoMembers": "{{first}} e {{second}} an quitat la reünion", + "linkToSalesforce": "Ligam cap a Salesforce", + "linkToSalesforceDescription": "Podètz associar lo resumit de la reünion a un objècte Salesforce.", + "linkToSalesforceError": "Impossible d'associar la reünion a Salesforce", + "linkToSalesforceKey": "Ligar aquesta reünion", + "linkToSalesforceProgress": "Ligason de la reünion a Salesforce…", + "linkToSalesforceSuccess": "La reünion es estada tirada de Salesforce", + "localRecordingStarted": "{{name}} a començar un enregistrament loca.", + "localRecordingStopped": "{{name}} a arrestat l'enregistrament local.", + "me": "Ieu", + "moderationInEffectCSDescription": "Volgatz levar la man se volètz partejar vòstre ecran.", + "moderationInEffectCSTitle": "Lo moderator a blocat lo partiment d’ecran", + "moderationInEffectDescription": "Volgatz levar la man se volètz parlar.", + "moderationInEffectTitle": "Lo moderator a amudit vòstre microfòn", + "moderationInEffectVideoDescription": "Volgatz levar la man se volètz aviar vòstra camèra.", + "moderationInEffectVideoTitle": "Lo moderator a blocat vòstra camèra", + "moderationRequestFromModerator": "L’òste volriá que restabliguèssetz vòstre son", + "moderationRequestFromParticipant": "Vòl parlar", + "moderationStartedTitle": "Moderacion començada", + "moderationStoppedTitle": "Moderacion arrestada", + "moderationToggleDescription": "per {{participantDisplayName}}", + "moderator": "Sètz ara moderator", + "muted": "Avètz començat la conversacion en mut.", + "mutedRemotelyDescription": "Podètz totjorn activar vòstre microfòn per prendre la paraula. Desactivatz lo microfò quand terminetz per evitar los bruches parasits.", + "mutedRemotelyTitle": "{{participantDisplayName}} vos a mes en silenci", + "mutedTitle": "Sètz en mut !", + "newDeviceAction": "Utilizar", + "newDeviceAudioTitle": "Nòu periferic àudio detectat", + "newDeviceCameraTitle": "Nòva camèra detectada", + "nextToSpeak": "Palaretz aprèp la persona actuala", + "noiseSuppressionDesktopAudioDescription": "La supression del bruch se pòt pas activat a l'encòp que lo partiment de l'àudio del sistèma, volgatz lo desactivar e tornar ensajar.", + "noiseSuppressionFailedTitle": "Fracàs de l'aviada de la supression del bruch", + "noiseSuppressionStereoDescription": "La supression del bruch d'una font estereo es pas encara suportada.", + "oldElectronClientDescription1": "Sembla qu’utilizatz una version anciana del client Jitsi Meet qu’es conegut per conténer de problèmas de seguretat. Mercés de vos assegurar de metre a jorn ", + "oldElectronClientDescription2": "darrièra compilacion", + "oldElectronClientDescription3": " ara !", + "participantWantsToJoin": "Vòl rejónher la reünion", + "participantsWantToJoin": "Vòlon rejónher la reünion", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) tirat per un autre participant", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) definit per un autre participant", + "raiseHandAction": "Levar la man", + "raisedHand": "Volriá parlar.", + "raisedHands": "{{participantName}} e {{raisedHands}} autres", + "reactionSounds": "Desactivar los sons", + "reactionSoundsForAll": "Desactivar los sons per totes", + "screenShareNoAudio": " La casa Partejar l’àudio es pas estada marcada a l’ecran de seleccion de la fenèstra.", + "screenShareNoAudioTitle": "Partiment impossible de l’àudio del sistèma !", + "screenSharingAudioOnlyDescription": "Notatz qu'en partejant vòstre ecran, afectatz lo mòde « Melhora performança » e sollicitatz mai de benda passanta.", + "screenSharingAudioOnlyTitle": "Mòde « Melhora performança »", + "selfViewTitle": "Podètz totjorn quitar d’amagar vòstra pròpria vista a partir dels paramètres", + "somebody": "Qualqu'un", + "startSilentDescription": "Rejónher la reünion per activar l’àudio", + "startSilentTitle": "Avètz jonch sens cap de sortida àudio !", + "suboptimalBrowserWarning": "Planhèm que vòstra experiéncia de la reünion siá pas de las bonas. Sèm a cercar de solucions per melhorar aquò, d’aquel temps, ensajatz un dels navigadors compatibles.", + "suboptimalExperienceTitle": "Avertiment del navigador", + "suggestRecordingAction": "Aviar", + "suggestRecordingDescription": "Volètz aviar un enregistrament ?", + "suggestRecordingTitle": "Enregistrar aquesta reünion", + "unmute": "Restablir lo son", + "videoMutedRemotelyDescription": "La podètz totjorn tornar activar.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} a copat vòstra vidèo", + "videoUnmuteBlockedDescription": "Las operacion de restabliment de la camèra e del partiment del burèu son estadas blocadas pel moment a causa de limitas sistèma.", + "videoUnmuteBlockedTitle": "Restabliment de la camèra e del partiment de burèu blocat  !", + "viewLobby": "Veire sala d’espèra", + "viewParticipants": "Veire los participants", + "viewVisitors": "Veire los visitaires", + "waitingParticipants": "{{waitingParticipants}} personas", + "waitingVisitors": "Visitaires en espèra dins la fila : {{waitingVisitors}}", + "waitingVisitorsTitle": "La reünion es pas encara en dirècte !", + "whiteboardLimitDescription": "Volgatz salvagardar vòstra progression, perque lo limit d'utilizacion del tablèu blanc serà lèu atengut e lo tablèu tamparà.", + "whiteboardLimitTitle": "Utilizacion del tablèu blanc" + }, + "participantsPane": { + "actions": { + "admit": "Acceptar", + "admitAll": "Tot acceptar", + "allow": "Permetre als convidats de :", + "allowVideo": "Autorizar la vidèo", + "askUnmute": "Demandar a restablir lo son", + "audioModeration": "Se tornar lo son", + "blockEveryoneMicCamera": "Blocar lo microfòn e la camèra del monde", + "breakoutRooms": "Salas petitas", + "goLive": "Bascular en dirècte", + "invite": "Convidar qualqu'un", + "lowerAllHands": "Baissar totas las mans", + "lowerHand": "Baissar la man", + "moreModerationActions": "Mai d’opcions de moderacion", + "moreModerationControls": "Opcions de moderacion suplementàrias", + "moreParticipantOptions": "Mai d’opcions de participant", + "mute": "Amudir", + "muteAll": "Amudir tot lo monde", + "muteEveryoneElse": "Amudir tot los demai", + "reject": "Regetar", + "stopEveryonesVideo": "Arrestar la vidèo de tot lo monde", + "stopVideo": "Arrestar la vidèo", + "unblockEveryoneMicCamera": "Desblocar lo microfòn e la camèra de tot lo monde", + "videoModeration": "Aviar lor vidèo" + }, + "close": "Tancar", + "headings": { + "lobby": "Sala d’espèra ({{count}})", + "participantsList": "Participants de la reünion ({{count}})", + "visitorInQueue": " (en espèra {{count}})", + "visitorRequests": " (demanda {{count}})", + "visitors": "Visitaire {{count}}", + "waitingLobby": "Dins la sala d'espèra ({{count}})" + }, + "search": "Cercar participants", + "title": "Participants" + }, + "passwordDigitsOnly": "Fins a {{number}} chifras", + "passwordSetRemotely": "causit per qualqu'un mai", + "pinParticipant": "Penjar - {{participantName}}", + "pinnedParticipant": "Lo participant es penjat", + "polls": { + "answer": { + "edit": "Modificar", + "send": "Enviar", + "skip": "Sautar", + "submit": "Enviar" + }, + "by": "Per {{ name }}", + "closeButton": "Tampar lo sondatge", + "create": { + "addOption": "Apondre una opcion", + "answerPlaceholder": "Opcion {{index}}", + "cancel": "Anullar", + "create": "Crear un sondatge", + "pollOption": "Opcion sondarge {{index}}", + "pollQuestion": "Question del sondatge", + "questionPlaceholder": "Pausar una question", + "removeOption": "Suprimir l'opcion", + "save": "Enregistrar", + "send": "Enviar" + }, + "errors": { + "notUniqueOption": "Las opcions devon èsser unicas" + }, + "notification": { + "description": "Dobrissètz l’onglet dels sondatge per votar", + "title": "Un sondatge novèl es estat apondut a la reünion" + }, + "results": { + "changeVote": "Cambiar lo vote", + "empty": "I a pas cap de sondatge dins la reünion pel moment. Començatz-ne un aicí !", + "hideDetailedResults": "Rescondre los detalhs", + "showDetailedResults": "Mostrar los detalhs", + "vote": "Votar" + } + }, + "poweredby": "produit per", + "prejoin": { + "audioAndVideoError": "Error àudio e vidèo :", + "audioDeviceProblem": "I a un problèma amb vòstre periferic àudio", + "audioOnlyError": "Error àudio :", + "audioTrackError": "Creacion impossibla de la pista àudio.", + "callMe": "Sona-me", + "callMeAtNumber": "Sona-me a aqueste numèro :", + "calling": "A sonar", + "configuringDevices": "Parametratge dels aparelhs…", + "connectedWithAudioQ": "Sètz connectat amb l’àudio ?", + "connection": { + "failed": "Ensag de connexion fracassat !", + "good": "Vòstra connexion Internet sembla bona !", + "nonOptimal": "Vòstra connexion Internet es pas optimala", + "poor": "Vòstra connexion Internet es febla", + "running": "Execucion de l'ensag de connexion…" + }, + "connectionDetails": { + "audioClipping": "Nos esperam a trobar vòstre àudio troncat.", + "audioHighQuality": "Nos esperam a trobar vòstra qualitat àudio excellenta.", + "audioLowNoVideo": "Nos esperam a trobar vòstra qualitat àudio febla e cap de vidèo.", + "goodQuality": "Crane ! Vòstra qualitat serà geniala.", + "noMediaConnectivity": "Avèm pas trobat cap de biais d'establir una connectivitat mèdia per aquesta pròva. Sovent es a causat d'un parafòc o un NAT.", + "noVideo": "Nos esperam a trobat vòstra qualitat vidèo òrra.", + "testFailed": "L'ensag de connexion a rescontrat de problèmas, mas se poiriá qu'aquò afècta pas vòstra experiéncia.", + "undetectable": "Se capitatz totjorn pas de sonar del navigador estant, vos recomandam de vos assegurar que vos naut-parlaires, lo microfòn e la camèra son corrèctament configurats, qu’avètz donadas las autorizacions al navegador pel microfòn e la camèra e que lo navigador es a jorn. Se tenètz d’aver de dificultats per sonar, devètz contactar lo desvolopaire de l’aplicacion Web.", + "veryPoorConnection": "Nos esperam a trobar vòstra qualitat vidèo plan òrra.", + "videoFreezing": "Nos esperam a veire vòstra vidèo se gelar, venir negra e se pixelizar.", + "videoHighQuality": "Nos esperam a trobar vòstra qualitat vidèo de bona qualitat.", + "videoLowQuality": "Presumissèm que vòstra vidèo aurà una baissa qualitat tocant la frequéncia d’imatge e la resolucion.", + "videoTearing": "Presumissèm que vòstra vidèo serà pixelizada e aurà d’artefacts visuals." + }, + "copyAndShare": "Copiar e partejar lo ligam de reünion", + "dialInMeeting": "Participatz a la reünion", + "dialInPin": "Participar a la reünion e picar lo còdi PIN :", + "dialing": "A sonar", + "doNotShow": "Mostrar pas mai aquò", + "errorDialOut": "Impossible de sonar aqueste numèro", + "errorDialOutDisconnected": "Impossible de sonar aqueste numèro. Desconnectat", + "errorDialOutFailed": "Impossible de sonar aqueste numèro. La sonada a fracassat", + "errorDialOutStatus": "Error en recuperant l’estat de la sonada sortissenta", + "errorMissingName": "Mercés de picar vòstre nom per rejónher la reünion", + "errorNoPermissions": "Devètz activar l’accès al microfòn e a la camèra", + "errorStatusCode": "Error de numerotacion, còdi d’estat : {{status}}", + "errorValidation": "Validacion del numèro fracassada", + "iWantToDialIn": "Vòli me connectar", + "initiated": "Sonada aviada", + "joinAudioByPhone": "Rejónher amb l’àudio del telefòn", + "joinMeeting": "Rejónher la reünion", + "joinMeetingInLowBandwidthMode": "Rejónher en mòde benda passanta redusida", + "joinWithoutAudio": "Rejónher sens àudio", + "keyboardShortcuts": "Activar los acorchis de clavièr", + "linkCopied": "Ligam copiat al quichapapièrs", + "lookGood": "Sembla que lo microfòn fonciona pas coma cal", + "or": "o", + "premeeting": "Prereünion", + "proceedAnyway": "Contunhar malgrat tot", + "recordingWarning": "D'autres participants pòdon enregistrar aquesta sonada", + "screenSharingError": "Error de partatge d’ecran :", + "startWithPhone": "Començar amb l’àudio del telefòn", + "unsafeRoomConsent": "Compreni lo risc e vòli çaquelà participar a la reünion", + "videoOnlyError": "Error vidèo :", + "videoTrackError": "Creacion d’una pista àudio impossibla.", + "viewAllNumbers": "veire totes los numèros" + }, + "presenceStatus": { + "busy": "Ocupat", + "calling": "Sonada…", + "connected": "Connectat", + "connecting": "Connexion en cors…", + "connecting2": "Connexion*…", + "disconnected": "Desconnectat", + "expired": "Expirat", + "ignored": "Ignorat", + "initializingCall": "Començament de la sonada…", + "invited": "Convidat", + "rejected": "Refusat", + "ringing": "A sonar…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Causissètz vòstre escais", + "setEmailInput": "Picatz lo corrièl", + "setEmailLabel": "Definissètz vòstre corrièl per Gravatar", + "title": "Perfil" + }, + "raisedHand": "Volriá charrar", + "raisedHandsLabel": "Nombre de mans levadas", + "record": { + "already": { + "linked": "L'enregistrament es ja ligat a aqueste objècte Salesforce." + }, + "type": { + "account": "Compte", + "contact": "Contacte", + "lead": "Principal", + "opportunity": "Oportunitat", + "owner": "Proprietari" + } + }, + "recording": { + "authDropboxText": "Enviar a Dropbox", + "availableSpace": "Espaci disponible : {{spaceLeft}} Mo (altorn de {{duration}} minutas d’enregistrament)", + "beta": "BETA", + "busy": "Sèm a desliurar de resorgas d'enregistrament. Mercés de tornar ensajar dins una estona.", + "busyTitle": "Totes los enregistradors son ocupats pel moment", + "copyLink": "Copiar lo ligam", + "error": "Fracàs de l'enregistrament. Mercés de tornar ensajar.", + "errorFetchingLink": "Error en recuperant lo ligam de l’enregistrament.", + "expandedOff": "Enregistrament arrestat", + "expandedOn": "La reünion es actualament enregistrada", + "expandedPending": "Aviada de l’enregistrament…", + "failedToStart": "L'enregistrament n'as pas réussi a démarrer", + "fileSharingdescription": "Partejar l’enregistrament amb los participants de la reünion", + "highlight": "Suslinhar", + "highlightMoment": "Metre en avant un moment", + "highlightMomentDisabled": "Podètz pas metre en avant un moment pendent una reünion", + "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", + "localRecordingStartWarning": "Asseguratz-vos d'arrestar l'enregistrament abans de sortir de la reünion per lo poder enregistrar.", + "localRecordingStartWarningTitle": "Arrestar l'enregistrament per lo salvar", + "localRecordingVideoStop": "Arrestar la vidèo arrestarà tanben l'enregistrament local. Volètz vertadièrament contunhar ?", + "localRecordingVideoWarning": "Per enregistrar vòstra vidèo, devètz l'aver activada en començant l'enregistrament", + "localRecordingWarning": "Asseguratz-vos de causir l'onglet actual per utilizar lo son e la vidèo corrècts.", + "loggedIn": "Session a {{userName}}", + "noMicPermission": "Se pòt pas crear la pista del microfòn. Volgatz autorizar l'utilizacion del microfòn.", + "noStreams": "Cap de flux àudio o vidèo pas detectat.", + "off": "Enregistrament arrestar", + "offBy": "{{name}} a arrestat l’enregistrament", + "on": "Enregistrament", + "onBy": "{{name}} a començat l’enregistrament", + "onlyRecordSelf": "Enregistrar solament mon àudio e ma vidèo", + "pending": "Preparacion de l’enregistrament de la reünion…", + "policyError": "Avètz ensajat de començar l'enregistrament tròp rapidament. Mercés de tornar ensajar mai tard.", + "recordAudioAndVideo": "Enregistrar l'àudio e la vidèo", + "recordTranscription": "Enregistrar la transcripcion", + "saveLocalRecording": "Salvagardar l'enregistrament local (Beta)", + "serviceDescription": "Vòstre enregistrament serà salvagardat pel servici dedicat", + "serviceDescriptionCloud": "Enregistrament distant", + "serviceDescriptionCloudInfo": "Las reünions enregistradas se suprimisson automaticament 24h après l'enregistrament.", + "serviceName": "Servici d’enregistrament", + "sessionAlreadyActive": "Aquesta session es ja en cors d’enregistrament o en difusion en dirèct.", + "showAdvancedOptions": "Opcions avançadas", + "signIn": "Connexion", + "signOut": "Se desconnectar", + "surfaceError": "Seleccionatz l'onglet actual.", + "title": "Enregistrament", + "unavailable": "Ops ! Lo {{serviceName}} es pas disponible pel moment. Sèm a reglar aqueste problèma. Mercés de tornar ensajar mai tard.", + "unavailableTitle": "Enregistrament indisponible", + "uploadToCloud": "Enviar al cloud" + }, + "screenshareDisplayName": "Ecran de {{name}}", + "sectionList": { + "pullToRefresh": "Tirar per actualizar" + }, + "security": { + "about": "Podètz ajustar un $t(lockRoomPassword) per rejónher una reünion. Los participants deuràn fornir lo $t(lockRoomPassword) abans d’obténer l’autorizacion de dintrar dins la reünion.", + "aboutReadOnly": "Los participants que son moderators pòdon ajustar un $t(lockRoomPassword) a la reünion. Los participants deuràn fornir lo $t(lockRoomPassword) abans d’aver l’autorizacion de rejónher la reünion.", + "insecureRoomNameWarningNative": "Lo nom de la sala de reünion es pas segur. Participants non desirats poirián la rejónher. {{recommendAction}} Ne saber mai per securizar vòstras reünions ", + "insecureRoomNameWarningWeb": "Lo nom de la sala de reünion es pas segur. Participants non desirats poirián la rejónher. {{recommendAction}} Ne saber mai per securizar vòstras reünions aquí.", + "title": "Opcions de seguretat", + "unsafeRoomActions": { + "meeting": "Consideratz de securizar vòstra reünion en utilizant lo boton opcions de seguretat.", + "prejoin": "Ensajatz d'utilizar un nom mai unic.", + "welcome": "Consideratz d'utilizar un nom mai unic o causissètz-ne un demest los suggerits" + } + }, + "settings": { + "audio": "Àudio", + "buttonLabel": "Paramètres", + "calendar": { + "about": "L’integracion de {{appName}} amb vòstre calendièr permet d’accedir d’un biais segur als eveniments venents.", + "disconnect": "Desconnectar", + "microsoftSignIn": "Se connectar amb Microsoft", + "signedIn": "Accès als eveniments del calendièr {{email}}. Clicatz lo boton Se desconnectar çai-jos per arrestar l’accès als eveniments del calendièr.", + "title": "Calendari" + }, + "desktopShareFramerate": "Frequéncia d’imatge del partiment de burèu", + "desktopShareHighFpsWarning": "Una frequéncia d’imatge mai nauta pel partiment burèu pòt afectar la benda passanta. Devètz reaviar lo partiment d’ecran per aplicar los paramètres novèls.", + "desktopShareWarning": "Devètz reaviar lo partiment d’ecran per prendre en compte las modificacions.", + "devices": "Periferics", + "followMe": "Tot lo mond me sèc", + "followMeRecorder": "L'enregistrador me seguís", + "framesPerSecond": "frames-per-second", + "incomingMessage": "Messatge dintrant", + "language": "Lenga", + "loggedIn": "Session a {{name}}", + "maxStageParticipants": "Nombre maximal de participants que se pòt penjar a la scèna principala", + "microphones": "Microfòns", + "moderator": "Moderator", + "moderatorOptions": "Opcions de moderacion", + "more": "Mai", + "name": "Escais", + "noDevice": "Pas cap", + "notifications": "Notificacions", + "participantJoined": "Lo participant a rejonch", + "participantKnocking": "Lo participant es dintrat dins la sala d'espèra", + "participantLeft": "Lo participant es partit", + "playSounds": "Lectura dels sons activa", + "reactions": "Reaccions de la reünion", + "sameAsSystem": "Coma pel sistèma ({{label}})", + "selectAudioOutput": "Sortida àudio", + "selectCamera": "Camèra", + "selectMic": "Microfòn", + "selfView": "Vista de se", + "shortcuts": "Acorchi", + "speakers": "Naut-parlairs", + "startAudioMuted": "Començan totes sens son", + "startReactionsMuted": "Començan totes amb las reaccions sonòras amudidas", + "startVideoMuted": "Començan totes sens vidèo", + "talkWhileMuted": "Parlar en mut", + "title": "Paramètres", + "video": "Vidèo" + }, + "settingsView": { + "advanced": "Avançat", + "alertCancel": "Anullar", + "alertOk": "D’acòrdi", + "alertTitle": "Avertiment", + "alertURLText": "L’URL del servidor es pas valida", + "apply": "Aplicar", + "buildInfoSection": "Informacions de generacion", + "conferenceSection": "Conferéncia", + "disableCallIntegration": "Desactivar l’integracion nativa de las sonadas", + "disableCrashReporting": "Desactivar lo rapòrt de plantatge", + "disableCrashReportingWarning": "Volètz vertadièrament desactivar lo rapòrt de plantatge ? Lo paramètre serà aplicat aprèp la reaviada de l’aplicacion.", + "disableP2P": "Desactivar lo mòde par a par", + "displayName": "Escais-nom", + "displayNamePlaceholderText": "Ex : Joan Martin", + "email": "Corrièl", + "emailPlaceholderText": "email@exemple.com", + "gavatarMessage": "Se vòstra adreça electronica es ligada a un compte Gravatar, l'utilizarem per mostrar vòstre imatge de perfil.", + "goTo": "Anar a", + "header": "Paramètres", + "help": "Ajuda", + "links": "Ligams", + "privacy": "Confidencialitat", + "profileSection": "Perfil", + "sdkVersion": "Version del SDK", + "serverURL": "URL del servidor", + "showAdvanced": "Mostrar los paramètres avançats", + "startCarModeInLowBandwidthMode": "Lançar lo mòde veitura amb lo mòde d'estalvi de connectivitat", + "startWithAudioMuted": "Començar sens son", + "startWithVideoMuted": "Començar sens vièdo", + "terms": "Condicions d'utilizacions", + "version": "Version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVolètz sonar de vòstre telefòn estant ?\n\n{{defaultDialInNumber}}Clicatz lo ligam per veire los numèros de telefòn d’aquesta reünion\n{{dialInfoPageUrl}}", + "mainText": "Copiatz lo ligam seguent per dintrar dins la reünion :\n{{roomUrl}}" + }, + "speaker": "Orator", + "speakerStats": { + "angry": "Encolerat", + "disgusted": "Desgostat", + "displayEmotions": "Mostrar las emocions", + "fearful": "Pauruc", + "happy": "Content", + "hours": "{{count}} oras", + "minutes": "{{count}} minutas", + "name": "Escais", + "neutral": "Neutre", + "sad": "Trist", + "search": "Recercar", + "searchHint": "Cercar participants", + "seconds": "{{count}} segondas", + "speakerStats": "Estatisticas orator", + "speakerTime": "Temps de paraula", + "surprised": "Surprés" + }, + "startupoverlay": { + "genericTitle": "Aquesta reünion requerís l'utilizacion del microfòn e de la camèra.", + "policyText": " ", + "title": "{{app}} a besonh d'utilizar vòstre microfòn e camèra." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Tornar participar", + "text": "Quichatz lo boton Tornar participar.", + "title": "Vòstra conferéncia vidèo es estada arrestada perque vòstre ordenador se botèt en velha." + }, + "termsView": { + "title": "Acòrds" + }, + "toggleTopPanelLabel": "Alternar lo panèl superior", + "toolbar": { + "Settings": "Paramètres", + "accessibilityLabel": { + "Settings": "Passar als paramètres", + "audioOnly": "Passar al sol àudio", + "audioRoute": "Seleccionar lo periferic àudio", + "boo": "Aücar", + "breakoutRooms": "Salas petitas", + "callQuality": "Gerir la qualitat vidèo", + "carmode": "Mòde veitura", + "cc": "Alternar los sostítols", + "chat": "Passar a la fenèstra chat", + "clap": "Picar de las mans", + "closeChat": "Tampar la discussion", + "closeMoreActions": "Tampar lo menú d'accions", + "closeParticipantsPane": "Tampar lo panèl de participants", + "collapse": "Plegar", + "document": "Tampar los documents partejats", + "documentClose": "Tampar lo document partejat", + "documentOpen": "Dorbir lo document partejat", + "download": "Telecargar nòstra aplicacion", + "embedMeeting": "Reünion integrada", + "endConference": "Terminar la reünion per tot lo monde", + "enterFullScreen": "Passar en plen ecran", + "enterTileView": "Passar en vista mosaïc", + "exitFullScreen": "Quitar lo plen ecran", + "exitTileView": "Sortir de la vista mosaïc", + "expand": "Espandir", + "feedback": "Daissar un comentari", + "fullScreen": "Passar al ecran complèt", + "giphy": "Alternar lo menú GIPHY", + "grantModerator": "Passar moderator", + "hangup": "Quitar la sonada", + "heading": "Barra d'aisinas", + "help": "Ajuda", + "hideWhiteboard": "Rescondre lo tablèu blanc", + "invite": "Convidar de monde", + "kick": "Exclure un participant", + "laugh": "Rire", + "leaveConference": "Quitar la reünion", + "like": "Levar lo det gròs", + "linkToSalesforce": "Ligam cap a Salesforce", + "lobbyButton": "Activar/Desactivar mòde sala d'espèra", + "localRecording": "Passar al panèl d’enregistraments locals", + "lockRoom": "Tirar/Metre lo senhal de la reünion", + "love": "Còr", + "lowerHand": "Baissar la man", + "moreActions": "Passar al menú mai d’accions", + "moreActionsMenu": "Mai de menús d’accion", + "moreOptions": "Mostrar mai d’opcions", + "mute": "Copar lo son", + "muteEveryone": "Rendre mut tot lo monde", + "muteEveryoneElse": "Copar lo microfòn dels autres", + "muteEveryoneElsesVideoStream": "Arrestar la vidèo de totes los autres", + "muteEveryonesVideoStream": "Arrestar la vidèo de tot lo monde", + "muteGUMPending": "Connexion al microfòn", + "noiseSuppression": "Supression del bruch suplementària (BETA)", + "openChat": "Dobrir lo chat", + "participants": "Dobrir lo panèl participants. {{participantsCount}} participants", + "pip": "Activar/Desactivar lo mòde Picture-in-Picture", + "privateMessage": "Enviar un messatge privat", + "profile": "Modificar vòstre perfil", + "raiseHand": "Demandar la paraula", + "react": "Reaccions al messatge", + "reactions": "Reaccions", + "reactionsMenu": "Dobrir / Tampar lo menú de reaccions", + "recording": "Passar al enregistraments", + "remoteMute": "Copar lo son del participant", + "remoteVideoMute": "Copar la camèra del participant", + "security": "Opcions de seguretat", + "selectBackground": "Seleccionar un rèireplan", + "selfView": "Alternar l'afichatge de vòstra vidèo", + "shareRoom": "Convidar qualqu’un", + "shareYourScreen": "Passar a la captura d’ecran", + "shareaudio": "Partejar l’àudio", + "sharedvideo": "Passar al partatge de vidèo", + "shortcuts": "Passar als acorchis", + "show": "Mostrar davant", + "showWhiteboard": "Mostrar lo tablèu blanc", + "silence": "Amudir", + "speakerStats": "Mostrar/Amagar los estatisticas de paraula", + "stopScreenSharing": "Arrestar lo partiment d'ecran", + "stopSharedVideo": "Arrestar la vidèo partejada", + "surprised": "Suspresa", + "tileView": "Activar/Desactivar la vista en mosaïc", + "toggleCamera": "Passar a la camèra", + "toggleFilmstrip": "Bascular mòde benda film", + "unmute": "Activar lo microfòn", + "videoblur": "Enfoscar o non la vidèo", + "videomute": "Silenciar la vidèo", + "videomuteGUMPending": "Connexion de la camèra", + "videounmute": "Aviar la camèra" + }, + "addPeople": "Ajustar de monde a vòstra sonada", + "audioOnlyOff": "Desactivar lo mòde connexion febla", + "audioOnlyOn": "Activar lo mòde connexion febla", + "audioRoute": "Seleccionar lo periferic àudio", + "audioSettings": "Paramètres àudio", + "authenticate": "Autentificatz-vos", + "boo": "Aücar", + "callQuality": "Gerir la qualitat vidèo", + "chat": "Dobrir / tampar la conversacion", + "clap": "Picar de las mans", + "closeChat": "Tampar la messatjariá", + "closeParticipantsPane": "Tampar lo panèl dels participants", + "closeReactionsMenu": "Tampar lo menú de reaccions", + "disableNoiseSuppression": "Desactivar la supression de bruch suplementària (BETA)", + "disableReactionSounds": "Podètz desactivar los sons de las reaccions per aquesta reünion", + "documentClose": "Tampar los documents partejats", + "documentOpen": "Dobrir los documents partejats", + "download": "Telecargar nòstra aplicacion", + "e2ee": "Chiframent del cap a la fin", + "embedMeeting": "Integrar la reünion", + "enableNoiseSuppression": "Activar la supression de bruch suplementària (BETA)", + "endConference": "Terminar la reünion per tot lo monde", + "enterFullScreen": "Veire l’ecran complèt", + "enterTileView": "Dintrar dins la vista mosaïca", + "exitFullScreen": "Sortir de l’ecran complèt", + "exitTileView": "Quitar la vista mosaïca", + "feedback": "Daissar un comentari", + "giphy": "Alternar lo menú GIPHY", + "hangup": "Quitar", + "help": "Ajuda", + "hideWhiteboard": "Rescontre lo tablèu blanc", + "invite": "Convidar de monde", + "joinBreakoutRoom": "Rejónher la sala de reünion", + "laugh": "Rire", + "leaveBreakoutRoom": "Quitar la sala de reünion", + "leaveConference": "Quitar la reünion", + "like": "Levar lo det gròs", + "linkToSalesforce": "Ligam a Saleforce", + "lobbyButtonDisable": "Desactivar lo mòde sala d'espèra", + "lobbyButtonEnable": "Activar mòde sala d'espèra", + "login": "Connexion", + "logout": "Desconnexion", + "love": "Còr", + "lowerYourHand": "Baissar la man", + "moreActions": "Mai d’opcions", + "moreOptions": "Autras opcions", + "mute": "Mut / Actiu", + "muteEveryone": "Rendre mut tot lo monde", + "muteEveryonesVideo": "Desactivar la camèra de tot lo monde", + "muteGUMPending": "Connexion del microfòn", + "noAudioSignalDesc": "S’avètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz de cambiar d’aparelh.", + "noAudioSignalDescSuggestion": "S’avètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz d’utilizar un autre aparelh suggerit.", + "noAudioSignalDialInDesc": "Podètz tanben sonar en utilizant :", + "noAudioSignalDialInLinkDesc": "Numèros de sonada", + "noAudioSignalTitle": "I a pas cap de son en entrada del microfòn !", + "noiseSuppression": "Supression del bruch (BETA)", + "noisyAudioInputDesc": "Sembla que vòstre microfòn mene bruch, pensatz de lo copar o de lo cambiar.", + "noisyAudioInputTitle": "Vòstre microfòn sembla brusent !", + "openChat": "Dobrir la messatjariá", + "openReactionsMenu": "Dobrir lo menú de reaccions", + "participants": "Participants", + "pip": "Passar al mòde Picture-in-Picture", + "privateMessage": "Enviar un messatge privat", + "profile": "Modificar vòstre perfil", + "raiseHand": "Demandar / Daissar la paraula", + "raiseYourHand": "Levar la man", + "reactionBoo": "Enviar una reaccion de bramada", + "reactionClap": "Enviar una reaccion d’aplaudiment", + "reactionHeart": "Enviar un còr en reaccion", + "reactionLaugh": "Enviar una reaccion de rire", + "reactionLike": "Enviar una reaccion d’aprobacion", + "reactionSilence": "Enviar una reaccion de silenci", + "reactionSurprised": "Enviar una reaccion de suspresa", + "reactions": "Reaccions", + "security": "Opcions de seguretat", + "selectBackground": "Seleccionar un rèireplan", + "shareRoom": "Convidar qualqu’un", + "shareaudio": "Partejar l’àudio", + "sharedvideo": "Partejar una vidèo", + "shortcuts": "Veire los acorchis clavièr", + "showWhiteboard": "Mostrar lo tablèu blanc", + "silence": "Amudir", + "speakerStats": "Estatisticas parladors", + "startScreenSharing": "Aviar lo partatge d’ecran", + "startSubtitles": "Sostítols • {{language}}", + "stopAudioSharing": "Arrestar lo partiment àudio", + "stopScreenSharing": "Arrestar lo partatge d’ecran", + "stopSharedVideo": "Arrestar la vidèo", + "stopSubtitles": "Arrestar los sostítols", + "surprised": "Suspresa", + "talkWhileMutedPopup": "Ensajatz de parlar ? Vòstre microfòn es copat.", + "tileViewToggle": "Activar/Desactivar la vista en mosaïc", + "toggleCamera": "Passar a la camèra", + "unmute": "Restablir lo microfòn", + "videoSettings": "Paramètres vidèo", + "videomute": "Aviar / Arrestar la camèra", + "videomuteGUMPending": "Connexion a la camèra", + "videounmute": "Aviar la camèra" + }, + "transcribing": { + "ccButtonTooltip": "Aviar / Arrestat los sostítols", + "expandedLabel": "La transcripcion es activada", + "failed": "La transcipcion a pas capitat", + "labelToolTip": "La reünion es a èsser transcricha", + "sourceLanguageDesc": "La lenga actuala de la reünion es definida a {{sourceLanguage}}.
La podètz cambiar a partir d' ", + "sourceLanguageHere": "aquí", + "start": "Mostrar los sostítols", + "stop": "Levar los sostítols", + "subtitles": "Sostítols", + "subtitlesOff": "Inactius", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Despenjar", + "userMedia": { + "grantPermissions": "Mercés de donar las permissions d'utilizar vòstra camèra e vòstre microfòn." + }, + "videoSIPGW": { + "busy": "Sèm a liurar de resorgas. Mercés de tornar ensajar dins una estona.", + "busyTitle": "Lo servici de sala es ocupat pel moment", + "errorAlreadyInvited": "{{displayName}} es ja convidat", + "errorInvite": "La conferéncia es pas encara establida. Tornatz ensajar mai tard.", + "errorInviteFailed": "Sèm a reglar aqueste problèma. Ensajatz mai tard.", + "errorInviteFailedTitle": "L’invitacion a {{displayName}} a fracassat", + "errorInviteTitle": "Error en convidar a la sala", + "pending": "{{displayName}} es estat convidat" + }, + "videoStatus": { + "adjustFor": "Ajustar per :", + "audioOnly": "AUD", + "audioOnlyExpanded": "Sètz en mòde connexion febla. Amb aqueste mòde recebretz pas que l’àudio e lo partatge d’ecran.", + "bestPerformance": "Melhora performança", + "callQuality": "Qualitat vidèo", + "hd": "HD", + "hdTooltip": "Difusion vidèo en nauta definicion", + "highDefinition": "Nauta definicion", + "highestQuality": "Qualitat mai nauta", + "labelTooiltipNoVideo": "Pas cap de vidèo", + "labelTooltipAudioOnly": "Mòde connexion febla activat", + "ld": "Bassa definicion", + "ldTooltip": "Difusion vidèo en bassa definicion", + "lowDefinition": "Bassa definicion", + "performanceSettings": "Paramètres de performança", + "recording": "A enregistrar", + "sd": "SD", + "sdTooltip": "Difusion vidèo en definicion estandard", + "standardDefinition": "Definicion estandard", + "streaming": "Difusion en dirècte en cors" + }, + "videothumbnail": { + "connectionInfo": "Info connexion", + "demote": "Desplaçar coma visitaire", + "domute": "Copar lo son", + "domuteOthers": "Rendre mut totes los autres", + "domuteVideo": "Desactivar la camèra", + "domuteVideoOfOthers": "Desactivar la camèra dels demai", + "flip": "Revirar", + "grantModerator": "Nomenar moderator", + "hideSelfView": "Amagar pròpria vista", + "kick": "Exclure", + "mirrorVideo": "Intervertir ma vidèo", + "moderator": "Moderator", + "mute": "Un participant a copat son micro", + "muted": "Mut", + "pinToStage": "Penjar a la scèna", + "remoteControl": "Contraròtle alonhat", + "screenSharing": "Lo participant es a partejar son ecran", + "show": "Mostrar davant", + "showSelfView": "Mostrar sa pròpia vidèo", + "unpinFromStage": "Quitar de penjar", + "verify": "Verificar lo participant", + "videoMuted": "Camèra desactivada", + "videomute": "Lo participant a arrestat la camèra" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Rèireplan actual : {{background}}", + "selectBackground": "Seleccionar un rèireplan" + }, + "addBackground": "Apondre un rèireplan", + "apply": "Aplicar", + "backgroundEffectError": "Aplicacion fracassada de l’efeich al rèireplan.", + "blur": "Fosc", + "deleteImage": "Suprimir l’imatge", + "desktopShare": "Partiment de burèu", + "desktopShareError": "Creacion impossibla d’un partiment de burèu", + "image1": "Plaja", + "image2": "Paret blanca neutra", + "image3": "Sala voida blanca", + "image4": "Lampadari negre", + "image5": "Montanha", + "image6": "Forèst ", + "image7": "Solelh levant", + "none": "Cap", + "pleaseWait": "Esperatz…", + "removeBackground": "Suprimir lo rèireplan", + "slightBlur": "Fosc leugièr", + "title": "Rèireplans virtuals", + "uploadedImage": "Imatge enviat {{index}}", + "webAssemblyWarning": "WebAssembly pas pres en carga", + "webAssemblyWarningDescription": "WebAssembly es desactivat o pas pres en carga per aqueste navigador" + }, + "visitors": { + "chatIndicator": "(visitaire)", + "joinMeeting": { + "description": "Observatz solament aquesta conferéncia.", + "raiseHand": "Levar la man", + "title": "Dintrada dins la reünion", + "wishToSpeak": "Se volètz parlar, mercés de levar la man e d’esperar que la moderacion apròve." + }, + "labelTooltip": "Nombre de visitaires : {{count}}", + "notification": { + "demoteDescription": "Enviat aquí per {{actor}}, levatz la man per participar", + "noMainParticipantsDescription": "Un participant deu començar la reünion. Mercés d’esperar un moment.", + "noMainParticipantsTitle": "Aquesta reünion a pas encara començat.", + "noVisitorLobby": "Podètz pas rejónher tan qu’i a una sala d’espèra activada per la reünion.", + "notAllowedPromotion": "Un participant deu d’en primièr autorizar vòstra demanda.", + "title": "Visitatz solament aquesta reünion" + }, + "waitingMessage": "Dintraretz dins la reünion tre que serà en dirècte !" + }, + "volumeSlider": "Nivèl de volum", + "welcomepage": { + "accessibilityLabel": { + "join": "Tocatz per participar", + "roomname": "Sasissètz un nom de sala" + }, + "addMeetingName": "Nomenar la reünion", + "appDescription": "Endavant, charratz en vidèo amb tota la còla. Per dire de convidar tot lo monde que coneissètz. {{app}} es una solucion de vidèo-conferéncia complètament chifrada e 100% liura que podètz utilizar tota la jornada, totes los jorns, gratuitament— sens cap de compte pas requesit.", + "audioVideoSwitch": { + "audio": "Votz", + "video": "Vidèo" + }, + "calendar": "Calendari", + "connectCalendarButton": "Connectar lo calendari", + "connectCalendarText": "Connectatz vòstre calendièr per veire vòstras reünions dins {{app}}. Ajustatz tanben las reünions de {{provider}} a vòstre calendièr e aviatz-las amb un sol clic.", + "enterRoomTitle": "Començar una reünion nòva", + "getHelp": "Obténer d’ajuda", + "go": "Crear", + "goSmall": "Crear", + "headerSubtitle": "Reünions securizadas e de aauta qualitat", + "headerTitle": "Jitsi Meet", + "info": "Infor", + "jitsiOnMobile": "Jitsi sus mobil – telecargatz nòstra aplicacion e començatz de reünions de pertot", + "join": "CREAR / REJÓNHER", + "logo": { + "calendar": "Logotipe Calendar", + "desktopPreviewThumbnail": "Vinheta d'apercebut del burèu", + "googleLogo": "Logotipe Google", + "logoDeepLinking": "Logotipe Jitsi meet", + "microsoftLogo": "Logotipe Microsoft", + "policyLogo": "Logotipe de la politica" + }, + "meetingsAccessibilityLabel": "Reünions", + "mobileDownLoadLinkAndroid": "Telecargar l'aplicacion per Android", + "mobileDownLoadLinkFDroid": "Telecargar l'aplicacion per F-Droid", + "mobileDownLoadLinkIos": "Telecargar l'aplicacion per iOS", + "moderatedMessage": "O reservatz una URL de reünion a l'avança ont sètz l'unic moderator.", + "privacy": "Vida privada", + "recentList": "Recents", + "recentListDelete": "Suprimits", + "recentListEmpty": "Vòstra lista de contactes recents es voida. Charratz amb vòstra còla e trobaretz totes vòstras reünions recentas aquí.", + "recentMeetings": "Vòstras reünions recentas", + "reducedUIText": "Benvengut a {{app}} !", + "roomNameAllowedChars": "Lo nom de la reünion deu pas conténer aqueles caractèrs : ?, &, :, ', \", %, #.", + "roomname": "Sasissètz un nom de sala", + "roomnameHint": "Picatz lo nom o l’URL de la sala que volètz jónher. Podètz inventar un nom, cal pas que lo monde que volètz convidar lo sàpian.", + "sendFeedback": "Mandar vòstra opinion", + "settings": "Paramètres", + "startMeeting": "Començar la reünion", + "terms": "Tèrmes", + "title": "Conferéncias vidèo securizadas amb plen de foncionalitats e complètament gratuitas", + "upcomingMeetings": "Vòstras reünions venentas" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Tablèu blanc" + }, + "screenTitle": "Tablèu blanc" + } +} diff --git a/lang/main-pl.json b/lang/main-pl.json new file mode 100644 index 0000000..8c8cb53 --- /dev/null +++ b/lang/main-pl.json @@ -0,0 +1,1456 @@ +{ + "addPeople": { + "add": "Zaproś", + "addContacts": "Zaproś kontakty", + "contacts": "kontakty", + "copyInvite": "Kopiuj zaproszenie na spotkanie", + "copyLink": "Kopiuj link spotkania", + "copyStream": "Kopiuj link transmisji na żywo", + "countryNotSupported": "Nie obsługujemy jeszcze tej lokalizacji.", + "countryReminder": "Dzwonisz spoza USA? Upewnij się, że zaczynasz od kodu kraju!", + "defaultEmail": "Domyślna poczta", + "disabled": "Nie możesz zapraszać ludzi.", + "failedToAdd": "Błąd dodawania uczestników", + "googleEmail": "Poczta Google", + "inviteMoreHeader": "Jesteś jedynym uczestnikiem tego spotkania", + "inviteMoreMailSubject": "Dołącz do spotkania {{appName}}", + "inviteMorePrompt": "Zaproś innych uczestników", + "linkCopied": "Link skopiowany do schowka", + "noResults": "Brak pasujących wyników wyszukiwania", + "outlookEmail": "Poczta Outlook", + "phoneNumbers": "numery telefonów", + "searching": "Wyszukiwanie…", + "shareInvite": "Udostępnij zaproszenie na spotkanie", + "shareLink": "Udostępnij link do spotkania, aby zaprosić innych uczestników", + "shareStream": "Udostępnij link transmisji na żywo", + "sipAddresses": "adresy SIP", + "telephone": "Telefon: {{number}}", + "title": "Zaproś uczestników na to spotkanie", + "yahooEmail": "Poczta Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Audio samochodowe", + "headphones": "Słuchawki", + "none": "Brak dostępnych urządzeń dźwiękowych", + "phone": "Telefon", + "speaker": "Głośnik" + }, + "audioOnly": { + "audioOnly": "Niska przepustowość" + }, + "breakoutRooms": { + "actions": { + "add": "Dodaj pokój podgrupy", + "autoAssign": "Automatycznie przypisuj do pokoi podgrup", + "close": "Blisko", + "join": "Dołącz", + "leaveBreakoutRoom": "Opuść pokój spotkań", + "more": "Więcej", + "remove": "Usuń", + "sendToBreakoutRoom": "Wyślij uczestnika do:" + }, + "defaultName": "Pokój podgrupy #{{index}}", + "mainRoom": "Główny pokój", + "notifications": { + "joined": "Dołączanie do pokoju podgrup \"{{name}}\" ", + "joinedMainRoom": "Dołączanie do głównego pokoju", + "joinedTitle": "Pokoje podgrup" + } + }, + "calendarSync": { + "addMeetingURL": "Dodaj odnośnik do spotkania", + "confirmAddLink": "Czy chcesz dodać odnośnik Jitsi do tego wydarzenia?", + "error": { + "appConfiguration": "Integracja z kalendarzem nie jest skonfigurowana poprawnie.", + "generic": "Wystąpił problem. Sprawdź ustawienia kalendarza lub spróbuj odświeżyć kalendarz.", + "notSignedIn": "Wystąpił problem podczas uwierzytelniania dostępu do wydarzeń w kalendarzu. Sprawdź ustawienia kalendarza i spróbuj zalogować się ponownie." + }, + "join": "Dołącz", + "joinTooltip": "Dołącz do spotkania", + "nextMeeting": "następne spotkanie", + "noEvents": "Nie ma zaplanowanych nadchodzących wydarzeń.", + "ongoingMeeting": "trwające spotkanie", + "permissionButton": "Otwórz ustawienia", + "permissionMessage": "Aby zobaczyć spotkania w aplikacji, wymagane jest zezwolenie dostępu do kalendarza.", + "refresh": "Odśwież kalendarz", + "today": "Dzisiaj" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Wybierz urządzenie dźwiękowe" + }, + "labels": { + "buttonLabel": "Tryb samochodowy", + "title": "Tryb samochodowy", + "videoStopped": "Twój film jest zatrzymany" + } + }, + "chat": { + "enter": "Wejdź do pokoju", + "error": "Błąd: Twoja wiadomość nie została wysłana. Powód: {{error}}", + "fieldPlaceHolder": "Wpisz wiadomość tutaj", + "lobbyChatMessageTo": "Wiadomość na czacie w poczekalni do {{recipient}}", + "message": "Wiadomość", + "messageAccessibleTitle": "{{user}} mówi:", + "messageAccessibleTitleMe": "mówię:", + "messageTo": "Prywatna wiadomość do {{recipient}}", + "messagebox": "Wpisz wiadomość", + "newMessages": "Nowe wiadomości", + "nickname": { + "popover": "Wybierz swój nick", + "title": "Wpisz swoją nazwę, aby użyć rozmowy", + "titleWithPolls": "Wpisz swoją nazwę, aby użyć rozmowy" + }, + "noMessagesMessage": "Aktualnie brak wiadomości w tym spotkaniu. Rozpocznij konwersację!", + "privateNotice": "Prywatna wiadomość do {{recipient}}", + "sendButton": "Wyślij", + "smileysPanel": "Panel emoji", + "tabs": { + "chat": "Czat", + "polls": "Ankiety" + }, + "title": "Czat", + "titleWithPolls": "Czat i Ankiety", + "you": "ja" + }, + "chromeExtensionBanner": { + "buttonText": "Zainstaluj rozszerzenie Chrome", + "buttonTextEdge": "Zainstaluj rozszerzenie Edge", + "close": "Zamknij", + "dontShowAgain": "Nie pokazuj ponownie", + "installExtensionText": "Zainstaluj rozszerzenie integrujące Kalendarz Google i Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Łączenie ze spotkaniem…" + }, + "connection": { + "ATTACHED": "Załącznik", + "AUTHENTICATING": "Uwierzytelnianie", + "AUTHFAIL": "Uwierzytelnianie nie powiodło się", + "CONNECTED": "Połączono", + "CONNECTING": "Nawiązywanie połączenia", + "CONNFAIL": "Połączenie się nie powiodło", + "DISCONNECTED": "Rozłączony", + "DISCONNECTING": "Rozłączanie", + "ERROR": "Błąd", + "FETCH_SESSION_ID": "Uzyskiwanie id sesji…", + "GET_SESSION_ID_ERROR": "Nie można uzyskać id sesji. Błąd: {{code}}", + "GOT_SESSION_ID": "Uzyskiwanie id sesji… Gotowe", + "LOW_BANDWIDTH": "Wideo {{displayName}} zostało wyłączone w celu zaoszczędzenia przepustowości sieci" + }, + "connectionindicator": { + "address": "Adres:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Szacowana przepustowość:", + "bitrate": "Szybkość transmisji:", + "bridgeCount": "Liczba serwerów: ", + "codecs": "Kodeki (A/V): ", + "connectedTo": "Podłączone do:", + "e2eeVerified": "E2EE zweryfikowane:", + "framerate": "Klatek na sekundę:", + "less": "Pokaż mniej", + "localaddress": "Adres lokalny:", + "localaddress_plural": "Adresy lokalne:", + "localport": "Port lokalny:", + "localport_plural": "Porty lokalne:", + "maxEnabledResolution": "wyślij maksymalną", + "more": "Pokaż więcej", + "no": "nie", + "packetloss": "Utrata pakietów:", + "participant_id": "ID uczestnika:", + "quality": { + "good": "Dobre", + "inactive": "Nieaktywne", + "lost": "Utracone", + "nonoptimal": "Nieoptymalne", + "poor": "Słabe" + }, + "remoteaddress": "Adres zdalny:", + "remoteaddress_plural": "Adresy zdalne:", + "remoteport": "Port zdalny:", + "remoteport_plural": "Porty zdalne:", + "resolution": "Rozdzielczość:", + "savelogs": "Zapisz logi", + "status": "Połączenie:", + "transport": "Transport:", + "transport_plural": "Transporty:", + "video_ssrc": "Video SSRC:", + "yes": "tak" + }, + "dateUtils": { + "earlier": "Wcześniej", + "today": "Dzisiaj", + "yesterday": "Wczoraj" + }, + "deepLinking": { + "appNotInstalled": "Potrzebujesz aplikacji mobilnej {{app}}, aby móc dołączyć do tego spotkania przez telefon.", + "description": "Nic się nie wydarzyło? Spróbowaliśmy uruchomić Twoje spotkanie w aplikacji stacjonarnej {{app}}. Spróbuj ponownie lub uruchom spotkanie w aplikacji webowej {{app}}.", + "descriptionNew": "Nic się nie stało? Próbowaliśmy uruchomić Twoje spotkanie w aplikacji stacjonarnej {{app}}.

Spróbuj ponownie lub uruchom spotkanie w aplikacji webowej.", + "descriptionWithoutWeb": "Nic się nie wydarzyło? Spróbowaliśmy uruchomić Twoje spotkanie w aplikacji stacjonarnej {{app}}.", + "downloadApp": "Pobierz aplikację", + "downloadMobileApp": "Pobierz ze sklepu App Store", + "ifDoNotHaveApp": "Jeśli nie masz jeszcze aplikacji:", + "ifHaveApp": "Jeśli już masz aplikację:", + "joinInApp": "Dołącz do spotkania używając aplikacji", + "joinInAppNew": "Dołącz w aplikacji", + "joinInBrowser": "Dołącz w przeglądarce", + "launchMeetingLabel": "Jak chcesz dołączyć do tego spotkania?", + "launchWebButton": "Uruchom przez przeglądarkę", + "noMobileApp": "Nie masz aplikacji?", + "termsAndConditions": "Kontynuując zgadzasz się na nasze Zasady i Warunki.", + "title": "Trwa uruchamianie Twojego spotkania w {{app}}…", + "titleNew": "Rozpoczynam spotkanie…", + "tryAgainButton": "Spróbuj ponownie w aplikacji stacjonarnej", + "unsupportedBrowser": "Wygląda na to, że używasz przeglądarki, której nie wspieramy." + }, + "defaultLink": "np. {{url}}", + "defaultNickname": "np. Jan Kowalski", + "deviceError": { + "cameraError": "Błąd dostępu do Twojej kamery", + "cameraPermission": "Błąd podczas otrzymywania uprawnień do kamery", + "microphoneError": "Błąd dostępu do Twojego mikrofonu", + "microphonePermission": "Błąd podczas otrzymywania uprawnień do mikrofonu" + }, + "deviceSelection": { + "hid": { + "callControl": "Kontrola połączeń", + "connectedDevices": "Połączone urządzenia:", + "deleteDevice": "Usuń urządzenie", + "pairDevice": "Sparuj urządzenie" + }, + "noPermission": "Nie przyznano uprawnienia", + "previewUnavailable": "Podgląd niedostępny", + "selectADevice": "Wybierz urządzenie", + "testAudio": "Odtwórz dźwięk testowy" + }, + "dialIn": { + "screenTitle": "Podsumowanie połączeń telefonicznych" + }, + "dialOut": { + "statusMessage": "jest teraz {{status}}" + }, + "dialog": { + "Back": "Wstecz", + "Cancel": "Anuluj", + "IamHost": "Jestem gospodarzem", + "Ok": "OK", + "Remove": "Usuń", + "Share": "Udostępnij", + "Submit": "Wyślij", + "WaitForHostMsg": "Spotkanie jeszcze się nie rozpoczęło. Jeśli jesteś gospodarzem, prosimy o uwierzytelnienie. Jeśli nie, prosimy czekać na przybycie gospodarza.", + "WaitingForHostTitle": "Oczekiwanie na gospodarza…", + "Yes": "Tak", + "accessibilityLabel": { + "close": "Zamknij okno dialogowe", + "liveStreaming": "Transmisja na żywo", + "sharingTabs": "Opcje udostępniania" + }, + "add": "Dodaj", + "addMeetingNote": "Dodaj notatkę o tym spotkaniu", + "addOptionalNote": "Dodaj notatkę (opcjonalnie):", + "allow": "Pozwól", + "alreadySharedVideoMsg": "Inny użytkownik już prezentuje wideo. Ta konferencja pozwala tylko na prezentację jednego wideo w tym samym czasie.", + "alreadySharedVideoTitle": "Tylko jedna prezentacja wideo jest dozwolona w tym samym czasie", + "applicationWindow": "Okno aplikacji", + "authenticationRequired": "Wymagane uwierzytelnienie", + "cameraConstraintFailedError": "Twoja kamera nie spełnia niektórych obowiązkowych wymagań.", + "cameraNotFoundError": "Kamera nie znaleziona.", + "cameraNotSendingData": "Nie możemy połączyć się z Twoją kamerą. Sprawdź, czy inna aplikacja nie używa tego urządzenia, wybierz inne urządzenie z menu ustawień lub spróbuj zrestartować aplikację.", + "cameraNotSendingDataTitle": "Brak dostępu do kamery", + "cameraPermissionDeniedError": "Nie udzieliłeś pozwolenia na użycie swojej kamery. Nadal możesz dołączyć do konferencji, ale inni nie będą Cię widzieć. Naciśnij przycisk kamery na pasku adresu, aby to poprawić.", + "cameraTimeoutError": "Nie udało się uruchomić źródła obrazu. Przekroczono limit czasu", + "cameraUnknownError": "Z nieznanej przyczyny nie można użyć kamery.", + "cameraUnsupportedResolutionError": "Twoja kamera nie obsługuje wymaganej rozdzielczości.", + "close": "Zamknij", + "conferenceDisconnectMsg": "Być może należy sprawdzić połączenie sieciowe. Ponowne połączenie za {{seconds}} sekund…", + "conferenceDisconnectTitle": "Nastąpiło rozłączenie.", + "conferenceReloadMsg": "Staramy się to naprawić. Ponowne połączenie za {{seconds}} sekund…", + "conferenceReloadTitle": "Niestety, coś poszło nie tak.", + "confirm": "Potwierdź", + "confirmNo": "Nie", + "confirmYes": "Tak", + "connectError": "Ocho! Cos poszło nie tak, nie można podłaczyć się do tej konferencji.", + "connectErrorWithMsg": "Upsss! Coś poszło nie tak i nie możemy podłączyć się do tej konferencji: {{msg}}", + "connecting": "Nawiązywanie połączenia", + "contactSupport": "Skontaktuj się ze wsparciem", + "copied": "Skopiowano", + "copy": "Kopiuj", + "dismiss": "Odrzuć", + "displayNameRequired": "Cześć! Jak się nazywasz?", + "done": "Zrobione", + "e2eeDescription": "Szyfrowanie End-to-End jest aktualnie w fazie EKSPERYMENTALNEJ. Proszę mieć na uwadze fakt, że szyfrowanie end-to-end wyłączy oferowane przez serwer usługi takie jak: nagrywanie, streaming na żywo i dołączanie uczestników przez telefon. Proszę mieć również na uwadze fakt, że takie spotkanie będą działać tylko dla uczestników korzystających z przeglądarek wspierających wstawiane strumienie.", + "e2eeDisabledDueToMaxModeDescription": "Nie można włączyć szyfrowania End-to-End z powodu dużej liczby uczestników konferencji.", + "e2eeLabel": "Włącz szyfrowanie E2EE", + "e2eeWarning": "UWAGA: Niektórzy uczestnicy tego spotkania nie mają włączonej obsługi szyfrowania E2EE. Jeśli włączysz tą funkcję ci uczestnicy nie będą mieli z tobą kontaktu.", + "e2eeWillDisableDueToMaxModeDescription": "UWAGA: Szyfrowanie typu end-to-end zostanie automatycznie wyłączone, jeśli do konferencji dołączy więcej uczestników.", + "embedMeeting": "Osadź spotkanie", + "enterDisplayName": "Wpisz tutaj swoje imię", + "error": "Błąd", + "gracefulShutdown": "Usługa aktualnie jest niedostępna. Prosze spróbować później.", + "grantModeratorDialog": "Czy na pewno chcesz przyznać temu uczestnikowi prawa moderatora?", + "grantModeratorTitle": "Przyznaj prawa moderatora", + "hide": "Ukryj", + "hideShareAudioHelper": "Nie pokazuj więcej", + "incorrectPassword": "Niepoprawna nazwa użytkownika lub hasło", + "incorrectRoomLockPassword": "Hasło nieprawidłowe", + "internalError": "Ups! Coś poszło nie tak. Wystąpił następujący błąd: {{error}}", + "internalErrorTitle": "Błąd wewnętrzny", + "kickMessage": "Możesz skontaktować się z {{participantDisplayName}}, aby uzyskać więcej szczegółów.", + "kickParticipantButton": "Usuń", + "kickParticipantDialog": "Czy na pewno chcesz usunąć tego uczestnika?", + "kickParticipantTitle": "Usunąć tego uczestnika?", + "kickTitle": "Ups! {{participantDisplayName}} usunął Cię z tego spotkania", + "linkMeeting": "Link do spotkania", + "linkMeetingTitle": "Połącz spotkanie z Salesforce", + "liveStreaming": "Strumień na żywo", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Nie możliwe podczas aktywnego nagrywania", + "localUserControls": "Lokalna kontrola użytkownika", + "lockMessage": "Zabezpieczenie konferencji nie powiodło się.", + "lockRoom": "Dodaj spotkanie $t(lockRoomPasswordUppercase)", + "lockTitle": "Nie powiodło się zabezpieczenie konferencji", + "login": "Zaloguj", + "logoutQuestion": "Na pewno chcesz się wylogować i zakończyć konferencję?", + "logoutTitle": "Wyloguj", + "maxUsersLimitReached": "Osiągnięto limit maksymalnej liczby uczestników. Konferencja jest zapełniona. Skontaktuj się z właścicielem spotkania lub spróbuj ponownie później!", + "maxUsersLimitReachedTitle": "Osiągnięto maksymalną liczbę uczestników", + "micConstraintFailedError": "Twój mikrofon nie spełnia niektórych wymaganych parametrów.", + "micNotFoundError": "Mikrofon nie jest odnaleziony.", + "micNotSendingData": "Wejdź w ustawienia komputera, aby wyłączyć wyciszenie i dostosować poziom głośności", + "micNotSendingDataTitle": "Twój mikrofon jest wyciszony przez ustawienia systemowe", + "micPermissionDeniedError": "Nie udzieliłeś pozwolenia na użycie twojego mikrofonu. Nadal możesz uczestniczyc w konferencji ale inni nie będą cię słyszeli. Użyj przycisku kamera aby to naprawić.", + "micTimeoutError": "Nie udało się uruchomić źródła dźwięku. Przekroczono limit czasu", + "micUnknownError": "Z nieznanej przyczyny nie można użyć mikrofonu.", + "moderationAudioLabel": "Zezwalaj uczestnikom na włączenie mikrofonów", + "moderationVideoLabel": "Zezwalaj uczestnikom na włączenie kamer", + "muteEveryoneDialog": "Uczestnicy mogą w dowolnym momencie wyłączyć wyciszenie.", + "muteEveryoneDialogModerationOn": "Uczestnicy mogą w każdej chwili wysłać prośbę o zabranie głosu.", + "muteEveryoneElseDialog": "Gdy wyciszysz wszystkich nie będziesz miał możliwości wyłączyć ich wyciszenia, ale oni będą mogli samodzielnie wyłączyć wyciszenie w dowolnym momencie.", + "muteEveryoneElseTitle": "Wyciszyć wszystkich za wyjątkiem {{whom}}?", + "muteEveryoneElsesVideoDialog": "Po wyłączeniu kamery nie będzie można go ponownie włączyć, ale można go ponownie włączyć w dowolnym momencie.", + "muteEveryoneElsesVideoTitle": "Wyłączyć kamerę wszystkim oprócz {{whom}}?", + "muteEveryoneSelf": "siebie", + "muteEveryoneStartMuted": "Od tego momentu wszyscy są wyciszeni", + "muteEveryoneTitle": "Wyciszyć wszystkich?", + "muteEveryonesVideoDialog": "Uczestnicy mogą w każdej chwili włączyć swoje kamery.", + "muteEveryonesVideoDialogModerationOn": "Uczestnicy mogą w dowolnym momencie wysłać prośbę o włączenie ich kamer.", + "muteEveryonesVideoDialogOk": "Wyłącz", + "muteEveryonesVideoTitle": "Wyłączyć kamery pozostałych uczestników?", + "muteParticipantBody": "Nie możesz wyłączyć ich wyciszenia, ale oni mogą samodzielnie wyłączyć wyciszenie w dowolnym momencie.", + "muteParticipantButton": "Wycisz", + "muteParticipantsVideoBody": "Nie będziesz mógł włączyć jego kamery ponownie, ale uczestnik samodzielnie może włączyć kamerę w dowolnym momencie.", + "muteParticipantsVideoBodyModerationOn": "Nie będziesz w stanie ponownie włączyć kamery i oni też nie.", + "muteParticipantsVideoButton": "Wyłącz kamery", + "muteParticipantsVideoDialog": "Czy na pewno chcesz wyłączyć kamerę tego uczestnika? Nie będziesz mógł ponownie włączyć jego kamery, ale będzie on mógł samodzielnie włączyć kamerę w dowolnym momencie.", + "muteParticipantsVideoDialogModerationOn": "Czy na pewno chcesz wyłączyć kamerę tego uczestnika? Nie będziesz w stanie ponownie włączyć aparatu i oni też nie.", + "muteParticipantsVideoTitle": "Wyłączyć kamerę tego uczestnika?", + "noDropboxToken": "Brak poprawnego tokenu Dropbox", + "password": "$t(lockRoomPasswordUppercase)", + "passwordLabel": "Spotkanie zostało zabezpieczone przez innego uczestnika. Wprowadź $t(lockRoomPassword), aby dołączyć.", + "passwordNotSupported": "Ustanowienie spotkania $t(lockRoomPassword) nie jest obsługiwane.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nie jest obsługiwane", + "passwordRequired": "$t(lockRoomPasswordUppercase) jest wymagane", + "permissionCameraRequiredError": "Dostęp do kamery jest wymagany do udziału w konferencjach z obrazem. Udziel dostępu do kamery w ustawieniach", + "permissionErrorTitle": "Wymagana autoryzacja", + "permissionMicRequiredError": "Dostęp do mikrofonu jest wymagany do udziału w konferencjach z dźwiękiem. Udziel dostępu do mikrofonu w ustawieniach", + "popupError": "Twoja przeglądarka blokuje wyskakujące okienka pochodzące z tej witryny. Włącz wyświetlanie wyskakujących okienek w ustawieniach bezpieczeństwa Twojej przeglądarki i spróbuj ponownie.", + "popupErrorTitle": "Wyskakujące okienko zostało zablokowane", + "readMore": "więcej", + "recentlyUsedObjects": "Twoje ostatnio używane przedmioty", + "recording": "Nagrywanie", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Nie możliwe podczas aktywnej transmisji na żywo", + "rejoinNow": "Połącz ponownie teraz", + "remoteControlAllowedMessage": "{{user}} zaakceptował Twoją prośbę o kontrolę zdalną!", + "remoteControlDeniedMessage": "{{user}} odrzucił Twoją prośbę o kontrolę zdalną!", + "remoteControlErrorMessage": "Wystąpił błąd podczas próby uzyskania zgody na zdalną kontrolę od {{user}}!", + "remoteControlRequestMessage": "Czy zgadzasz się, żeby {{user}} zdalnie kontrolował Twój komputer?", + "remoteControlShareScreenWarning": "Zwróć uwagę, że jeśli wybierzesz \"Pozwól\" jednocześnie zostanie współdzielony Twój ekran!", + "remoteControlStopMessage": "Sesja zdalnej kontroli dobiegła końca!", + "remoteControlTitle": "Zdalna kontrola komputera", + "remoteUserControls": "Zdalna kontrola użytkownika {{username}}", + "removePassword": "Usuń $t(lockRoomPassword)", + "removeSharedVideoMsg": "Na pewno chcesz usunąć udostępnione wideo?", + "removeSharedVideoTitle": "Usuń wideo udostępnione", + "reservationError": "Błąd systemu rezerwacji", + "reservationErrorMsg": "Kod błędu: {{code}}, treść: {{msg}}", + "retry": "Ponów", + "screenSharingAudio": "Udostępnianie audio", + "screenSharingFailed": "Oops! Coś poszło nie tak. Nie można uruchomić udostępniania ekranu!", + "screenSharingFailedTitle": "Niepowodzenie udostępniania ekranu!", + "screenSharingPermissionDeniedError": "Oops! Coś poszło nie tak z uprawnieniami udostępniania ekranu. Odśwież stronę i spróbuj ponownie.", + "searchInSalesforce": "Szukaj w Salesforce", + "searchResults": "Wyniki wyszukiwania({{count}})", + "searchResultsDetailsError": "Coś poszło nie tak podczas pobierania danych właściciela.", + "searchResultsError": "Coś poszło nie tak podczas pobierania danych.", + "searchResultsNotFound": "Nie znaleziono wyników wyszukiwania.", + "searchResultsTryAgain": "Spróbuj użyć alternatywnych słów kluczowych.", + "sendPrivateMessage": "Niedawno otrzymałeś prywatną wiadomość. Czy zamierzałeś odpowiedzieć na nią prywatnie, czy chcesz wysłać wiadomość do grupy?", + "sendPrivateMessageCancel": "Wyślij do grupy", + "sendPrivateMessageOk": "Wyślij prywatnie", + "sendPrivateMessageTitle": "Wysłać prywatnie?", + "serviceUnavailable": "Usługa jest niedostępna", + "sessTerminated": "Połączenie przerwane", + "sessionRestarted": "Konferencja została wznowiona", + "shareAudio": "Kontynuuj", + "shareAudioTitle": "Jak można udostępnić dźwięk?", + "shareAudioWarningD1": "musisz wyłączyć udostępnianie ekranu, zanim będziesz mógł udostępniać dźwięk.", + "shareAudioWarningD2": "musisz ponownie uruchomić udostępnianie ekranu i wybrać opcję \"udostępnij dźwiękś\".", + "shareAudioWarningH1": "Jeśli chcesz udostępniać wyłącznie dźwięk:", + "shareAudioWarningTitle": "Aby udostępniać dźwięk, musisz wyłączyć udostępnianie ekranu", + "shareMediaWarningGenericH2": "Jeżeli chcesz udostępniać ekran i dźwięk", + "shareScreenWarningD1": "musisz zatrzymać udostępnianie dźwięku przed udostępnieniem ekranu.", + "shareScreenWarningD2": "musisz zatrzymać udostępnianie dźwięku, rozpocząć udostępnianie ekranu i zaznaczyć opcję \"udostępnij dźwięk\".", + "shareScreenWarningH1": "Kiedy chcesz udostępniać wyłącznie swój ekran:", + "shareScreenWarningTitle": "Aby udostępnić ekran, musisz zatrzymać udostępnianie dźwięku", + "shareVideoLinkError": "Podaj proszę prawidłowy link.", + "shareVideoTitle": "Udostępnij wideo", + "shareYourScreen": "Włącz udostępnianie ekranu", + "shareYourScreenDisabled": "Udostępnianie ekranu wyłączone.", + "sharedVideoDialogError": "Błąd: nieprawidłowy adres URL", + "sharedVideoLinkPlaceholder": "Link do YouTube lub bezpośredni link do wideo", + "show": "Pokaż", + "start": "Rozpocznij ", + "startLiveStreaming": "Rozpocznij transmisję na żywo", + "startRecording": "Rozpocznij nagrywanie", + "startRemoteControlErrorMessage": "Wystąpił błąd podczas próby rozpoczęcie sesji zdalnej kontroli!", + "stopLiveStreaming": "Zatrzymaj transmisję na żywo", + "stopRecording": "Zatrzymaj nagrywanie", + "stopRecordingWarning": "Naprawdę chcesz zatrzymać nagrywanie?", + "stopStreamingWarning": "Czy jesteś pewny, że chcesz zatrzymać tę transmisję na żywo?", + "streamKey": "Klucz transmisji na żywo", + "thankYou": "Dziękujemy Ci za używanie {{appName}}!", + "token": "token", + "tokenAuthFailed": "Przepraszamy, ale nie jesteś upoważniony do uczestnictwa w tym połączeniu.", + "tokenAuthFailedTitle": "Uwierzytelnianie nie powiodło się", + "transcribing": "Transkrypcja", + "unlockRoom": "Usuń spotkanie $t(lockRoomPassword)", + "user": "Użytkownik", + "userIdentifier": "Nazwa użytkownika", + "userPassword": "hasło użytkownika", + "verifyParticipantConfirm": "Pasują", + "verifyParticipantDismiss": "Nie pasują", + "verifyParticipantQuestion": "EKSPERYMENT: Zapytaj uczestnika {{participantName}}, czy widzi tę samą treść, w tej samej kolejności.", + "verifyParticipantTitle": "Weryfikacja użytkownika", + "videoLink": "Link do video", + "viewUpgradeOptions": "Pokaż opcje aktualizacji", + "viewUpgradeOptionsContent": "Musisz uaktualnić swój plan, aby korzystać z funkcji premium, takich jak nagrywanie, transkrypcja, przesyłanie strumieniowe RTMP i nie tylko.", + "viewUpgradeOptionsTitle": "Odkryłeś funkcję premium!", + "yourEntireScreen": "Cały Twój ekran" + }, + "documentSharing": { + "title": "Udostępniony dokument" + }, + "e2ee": { + "labelToolTip": "To połączenie audio i wideo jest szyfrowane end-to-end" + }, + "embedMeeting": { + "title": "Osadź to spotkanie" + }, + "feedback": { + "average": "Średnio", + "bad": "Źle", + "detailsLabel": "Powiedz nam o tym więcej.", + "good": "Dobrze", + "rateExperience": "Jak oceniasz tę konferencję?", + "star": "Gwiazda", + "veryBad": "Bardzo źle", + "veryGood": "Bardzo dobrze" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniatury wideo" + } + }, + "giphy": { + "noResults": "Nie znaleziono wyników :(", + "search": "Szukaj GIPHY" + }, + "incomingCall": { + "answer": "Odbierz", + "audioCallTitle": "Przychodzące połączenie", + "decline": "Odrzuć", + "productLabel": "z Jitsi Meet", + "videoCallTitle": "Przychodzące połączenie wideo" + }, + "info": { + "accessibilityLabel": "Pokaż informacje", + "addPassword": "Dodaj $t(lockRoomPassword)", + "cancelPassword": "Anuluj $t(lockRoomPassword)", + "conferenceURL": "Odnośnik:", + "copyNumber": "Skopiuj numer", + "country": "Kraj", + "dialANumber": "Aby dołączyć do spotkania, wprowadź jeden z tych numerów i podaj pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Przepraszamy, aktualnie wybieranie nie jest obsługiwane.", + "dialInNumber": "Wdzwoń się:", + "dialInSummaryError": "Błąd podczas przetwarzania danych do wdzwonienia. Spróbuj ponownie później.", + "dialInTollFree": "Numer bezpłatny", + "genericError": "Ups, coś poszło nie tak.", + "inviteLiveStream": "Aby obejrzeć transmisję na żywo z tego spotkania, kliknij ten odnośnik: {{url}}", + "invitePhone": "Aby skorzystać z połączenia telefonicznego, wprowadź: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Poszukujesz innego numeru do wdzwonienia?\nZobacz listę numerów: {{url}}\n\n\nJeśli wdzwaniasz się z telefonu pokojowego, połącz się bez dźwięku: {{silentUrl}}", + "inviteSipEndpoint": "Aby dołączyć używając SIP użyj tego adresu: {{sipUri}}", + "inviteTextiOSInviteUrl": "Kliknij w link, aby dołączyć: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Jeżeli wdzwaniasz się za pomocą telefonu konferencyjnego użyj tego linku, aby dołączyć bez dźwięku: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} zaprasza Cię do spotkania.", + "inviteTextiOSPhone": "Aby dołączyć z telefonu użyj numeru: {{number}},,{{conferenceID}}#. Pełna lista numerów telefonów: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Zostałeś zaproszony do dołączenia do spotkania.", + "inviteURLFirstPartPersonal": "{{name}} zaprasza Cię na spotkanie.\n", + "inviteURLSecondPart": "\nDołącz do spotkania:\n{{url}}\n", + "label": "Poinformuj o spotkaniu", + "liveStreamURL": "Transmisja na żywo:", + "moreNumbers": "Więcej numerów", + "noNumbers": "Brak numerów do wdzwonienia.", + "noPassword": "Brak", + "noRoom": "Nie podano pokoju do wdzwonienia.", + "numbers": "Numery do wdzwonienia", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Osiągnąłeś limit swojego planu.", + "sip": "Adres SIP", + "title": "Udostępnij", + "tooltip": "Udostępnij odnośnik i informacje do wdzwonienia się na to spotkanie", + "upgradeOptions": "Sprawdź opcje aktualizacji na" + }, + "inlineDialogFailure": { + "msg": "Nieco niedopisaliśmy.", + "retry": "Spróbuj ponownie", + "support": "Wsparcie", + "supportMsg": "Jeśli to się powtarza, skontaktuj się z nami przez" + }, + "inviteDialog": { + "alertText": "Nie udało się zaprosić niektórych uczestników.", + "header": "Zaproś", + "searchCallOnlyPlaceholder": "Podaj numer telefonu", + "searchPeopleOnlyPlaceholder": "Szukaj uczestników", + "searchPlaceholder": "Uczestnik lub numer telefonu", + "send": "Wyślij" + }, + "jitsiHome": "{{logo}} Logo, link do strony głównej", + "keyboardShortcuts": { + "focusLocal": "Powiększ wideo", + "focusRemote": "Skup na obrazie innej osoby", + "fullScreen": "Przejdź w tryb lub zamknij pełny ekran", + "giphyMenu": "Przełącz menu GIPHY", + "keyboardShortcuts": "Skróty klawiaturowe", + "localRecording": "Wyświetlanie lub ukrywanie lokalnych elementów sterujących zapisem", + "mute": "Włącz lub wyłącz swój mikrofon", + "pushToTalk": "Naciśnij, aby mówić", + "raiseHand": "Podnieś lub opuść rękę", + "showSpeakerStats": "Pokaż statystyki mówcy", + "toggleChat": "Otwórz lub zamknij czat", + "toggleFilmstrip": "Wyświetl lub ukryj miniaturki video", + "toggleParticipantsPane": "Pokaż lub ukryj listę uczestników", + "toggleScreensharing": "Przełącz pomiędzy kamerą i wspóldzieleniem ekranu", + "toggleShortcuts": "Wyświetl lub ukryj skróty klawiaturowe", + "videoMute": "Uruchom lub zatrzymaj kamerę" + }, + "largeVideo": { + "screenIsShared": "Udostępniasz swój ekran", + "showMeWhatImSharing": "Pokaż mi, co udostępniam" + }, + "liveStreaming": { + "busy": "Pracujemy nad zwolnieniem zasobów transmisyjnych. Spróbuj ponownie za kilka minut.", + "busyTitle": "Wszyscy transmitujący są aktualnie zajęci", + "changeSignIn": "Przełącz konta.", + "choose": "Wybierz transmisję na żywo", + "chooseCTA": "Wybierz opcję transmisji. Jesteś obecnie zalogowany jako {{email}}.", + "enterStreamKey": "Wpisz tutaj swój klucz transmisji na żywo YouTube.", + "error": "Transmitowanie na żywo nie powiodło się. Spróbuj ponownie.", + "errorAPI": "Wystąpił błąd podczas uzyskiwania dostępu do transmisji w YouTube. Proszę spróbować zalogować się ponownie.", + "errorLiveStreamNotEnabled": "Strumieniowanie na żywo nie jest włączone dla {{email}}. Proszę włączyć strumieniowanie na żywo lub zalogować się na konto z włączoną funkcją strumieniowania.", + "expandedOff": "Transmisja na żywo została zatrzymana", + "expandedOn": "Spotkanie jest obecnie transmitowane na YouTube.", + "expandedPending": "Transmisja na żywo rozpoczyna się…", + "failedToStart": "Transmitowanie na żywo nie uruchomiło się", + "getStreamKeyManually": "Nie byliśmy w stanie pobrać żadnych transmisji na żywo. Spróbuj uzyskać klucz do transmisji na żywo z YouTube.", + "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", + "onBy": "{{name}} rozpoczął transmisję na żywo", + "pending": "Start strumieniowania live…", + "serviceName": "Usługa transmisji na żywo", + "sessionAlreadyActive": "Ta sesja jest już nagrywana lub transmitowana na żywo.", + "signIn": "Zaloguj się z Google", + "signInCTA": "Zaloguj się lub wpisz swój klucz do transmisji na żywo YouTube.", + "signOut": "Wyloguj się", + "signedInAs": "Jesteś obecnie zalogowany jako:", + "start": "Rozpocznij transmisję na żywo", + "streamIdHelp": "Co to jest?", + "title": "Transmisja na żywo", + "unavailableTitle": "Transmisja na żywo jest niedostępna", + "youtubeTerms": "Warunki użytkowania YouTube" + }, + "lobby": { + "backToKnockModeButton": "Brak hasła, poproś o dołączenie", + "chat": "Chat", + "dialogTitle": "Lobby", + "disableDialogContent": "Lobby jest aktualnie włączone. Ta funkcjonalność zapewnia, że niechciani uczetnicy nie mogą dołączyć do spotkania. Czy chcesz wyłączyć tę opcję?", + "disableDialogSubmit": "Wyłącz", + "emailField": "Podaj adres email", + "enableDialogPasswordField": "Ustaw hasło (opcjonalne)", + "enableDialogSubmit": "Włącz", + "enableDialogText": "Lobby umożliwia zabezpieczenie spotkania przed dostępem niechcianych osób. Uczestnik może dołączyć do spotkania tylko po zaakceptowaniu przez moderatora.", + "enterPasswordButton": "Hasło spotkania", + "enterPasswordTitle": "Wprowadź hasło aby dołączyć", + "errorMissingPassword": "Proszę wprowadź hasło do spotkania", + "invalidPassword": "Nieprawidłowe hasło", + "joinRejectedMessage": "Twoja prośba została odrzucona przez moderatora.", + "joinRejectedTitle": "Prośba o dołączenie została odrzucona.", + "joinTitle": "Dołącz do spotkania", + "joinWithPasswordMessage": "Dołączanie z hasłem, proszę czekać…", + "joiningMessage": "Dołączysz do spotkania po zaakceptowaniu Twojej prośby", + "joiningTitle": "Dołączanie do spotkania…", + "joiningWithPasswordTitle": "Dołączanie z hasłem…", + "knockButton": "Poproś o dołączenie", + "knockTitle": "Ktoś chce dołączyć do spotkania", + "knockingParticipantList": "Oczekujący uczestnicy", + "lobbyChatStartedNotification": "{{moderator}} rozpoczął czat w poczekalni z {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} rozpoczął z Tobą czat w poczekalni.", + "nameField": "Podaj swoje imię", + "notificationLobbyAccessDenied": "{{targetParticipantName}} został odrzucony przez {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} został zaakceptowany przez {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby zostało wyłączone przez {{originParticipantName}}", + "notificationLobbyEnabled": "Lobby zostało włączone przez {{originParticipantName}}", + "notificationTitle": "Lobby", + "passwordField": "Wprowadź hasło", + "passwordJoinButton": "Dołącz", + "title": "Lobby", + "toggleLabel": "Włącz / Wyłącz lobby" + }, + "localRecording": { + "clientState": { + "off": "Wyłączone", + "on": "Włączone", + "unknown": "Nieznane" + }, + "dialogTitle": "Kontrolki lokalnego nagrywania", + "duration": "Długość", + "durationNA": "N/D", + "encoding": "Kodowanie", + "label": "LOR", + "labelToolTip": "Nagrywanie lokalne jest włączone", + "localRecording": "Nagrywanie lokalne", + "me": "To ja", + "messages": { + "engaged": "Włączono nagrywanie lokalne.", + "finished": "Sesja nagrywania {{token}} została zakończona. Proszę przesłać nagrane pliki do moderatora.", + "finishedModerator": "Sesja nagrywania {{token}} została zakończona. Nagranie lokalnej ścieżki zostało zapisane. Poproś pozostałych uczestników, aby przesłali swoje nagrania.", + "notModerator": "Nie jesteś moderatorem. Nie możesz rozpoczynać i zatrzymywać lokalnego nagrywania." + }, + "moderator": "Moderator", + "no": "Nie", + "participant": "Uczestnik", + "participantStats": "Statystyki uczestników", + "selectTabTitle": "🎥 Wybierz tę zakładkę do nagrywania", + "sessionToken": "Token sesji", + "start": "Rozpocznij nagrywanie", + "stop": "Zatrzymaj nagrywanie", + "yes": "Tak" + }, + "lockRoomPassword": "hasło", + "lockRoomPasswordUppercase": "Hasło", + "lonelyMeetingExperience": { + "button": "Zaproś innych uczestników", + "youAreAlone": "Tylko ty uczestniczysz w tym spotkaniu" + }, + "me": "to ja", + "notify": { + "OldElectronAPPTitle": "Luka bezpieczeństwa!", + "allowAction": "Zezwól", + "allowedUnmute": "Możesz wyłączyć wyciszenie mikrofonu, uruchomić aparat lub udostępnić ekran.", + "audioUnmuteBlockedDescription": "Operacja wyłączania wyciszenia mikrofonu została tymczasowo zablokowana z powodu ograniczeń systemu.", + "audioUnmuteBlockedTitle": "Zablokowano wyciszenie mikrofonu!", + "chatMessages": "Wiadomości czatu", + "connectedOneMember": "{{name}} dołączył do spotkania", + "connectedThreePlusMembers": "{{name}} i {{count}} innych osób dołączyło do spotkania", + "connectedTwoMembers": "{{first}} i {{second}} dołączyli do spotkania", + "dataChannelClosed": "Pogorszona jakość wideo", + "dataChannelClosedDescription": "Kanał bridge został odłączony, przez co jakość wideo jest ograniczona do najniższego ustawienia.", + "disabledIframe": "Osadzanie jest przeznaczone wyłącznie do celów demonstracyjnych, więc to połączenie zostanie rozłączone za {{timeout}} minut.", + "disconnected": "Rozłączono", + "displayNotifications": "Wyświetlaj powiadomienia dla", + "dontRemindMe": "Nie przypominaj mi", + "focus": "Fokus konferencji", + "focusFail": "{{component}} jest niedostępny - ponowienie w ciągu {{ms}} sec", + "gifsMenu": "GIPHY", + "groupTitle": "Powiadomienia", + "hostAskedUnmute": "Gospodarz prosi Cię o wyłączenie wyciszenia", + "invitedOneMember": "{{name}} został zaproszony", + "invitedThreePlusMembers": "{{name}} i {{count}} innych osób zostało zaproszone", + "invitedTwoMembers": "{{first}} i {{second}} zostali zaproszeni", + "joinMeeting": "Dołącz", + "kickParticipant": "{{kicked}} został usunięty przez {{kicker}}", + "leftOneMember": "{{name}} opuścił spotkanie", + "leftThreePlusMembers": "{{name}} i wielu innych opuściło spotkanie", + "leftTwoMembers": "{{first}} i {{second}} opuścił spotkanie", + "linkToSalesforce": "Link do Salesforce", + "linkToSalesforceDescription": "Możesz połączyć podsumowanie spotkania z obiektem Salesforce.", + "linkToSalesforceError": "Nie udało się połączyć spotkania z Salesforce", + "linkToSalesforceKey": "Powiąż to spotkanie", + "linkToSalesforceProgress": "Łączenie spotkania z Salesforce…", + "linkToSalesforceSuccess": "Spotkanie zostało połączone z Salesforce", + "localRecordingStarted": "{{name}} rozpoczął nagrywanie lokalne.", + "localRecordingStopped": "{{name}} zatrzymał nagrywanie lokalne.", + "me": "To ja", + "moderationInEffectCSDescription": "Podnieś rękę, aby udostępniać obraz", + "moderationInEffectCSTitle": "Udostępnianie jest wyłaczone przez moderatora", + "moderationInEffectDescription": "Podnieś rękę, jeżeli chcesz mówić", + "moderationInEffectTitle": "Mikrofon jest wyciszony przez moderatora", + "moderationInEffectVideoDescription": "Podnieś rękę, aby włączyć kamerę", + "moderationInEffectVideoTitle": "Kamera jest wyłączona przez moderatora", + "moderationRequestFromModerator": "Moderator prosi Cię o włączenie mikrofonu", + "moderationRequestFromParticipant": "chce mówić", + "moderationStartedTitle": "Rozpoczęto moderację", + "moderationStoppedTitle": "Moderacja zatrzymana", + "moderationToggleDescription": "przez {{participantDisplayName}}", + "moderator": "Prawa moderatora przydzielone!", + "muted": "Rozpoczęto wyciszenie konwersacji.", + "mutedRemotelyDescription": "Zawsze możesz wyłączyć wyciszenie, gdy będziesz gotowy do mówienia. Wycisz, gdy skończysz, aby nie hałasować podczas spotkania.", + "mutedRemotelyTitle": "Zostałeś wyciszony przez {{participantDisplayName}}!", + "mutedTitle": "Jesteś wyciszony!", + "newDeviceAction": "Użyj", + "newDeviceAudioTitle": "Wykryto nowe urządzenie dźwiękowe", + "newDeviceCameraTitle": "Wykryto nową kamerę", + "noiseSuppressionDesktopAudioDescription": "Nie można włączyć tłumienia szumów podczas udostępniania dźwięku pulpitu, wyłącz tę funkcję i spróbuj ponownie.", + "noiseSuppressionFailedTitle": "Nie udało się uruchomić tłumienia szumów", + "noiseSuppressionNoTrackDescription": "Najpierw wyłącz wyciszenie mikrofonu.", + "noiseSuppressionStereoDescription": "Tłumienie szumów dźwięku stereo nie jest obecnie obsługiwane.", + "oldElectronClientDescription1": "Najprawdopodobniej używasz starej wersji klienta Jitsi Meet, który jest podatny na luki bezpieczeństwa. Proszę zaktualizować do ", + "oldElectronClientDescription2": "najnowszej wersji", + "oldElectronClientDescription3": " teraz!", + "participantWantsToJoin": "Chce dołączyć do spotkania", + "participantsWantToJoin": "Chcesz dołączyć do spotkania", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) usunięte przez innego uczestnika", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) ustawiony przez innego uczestnika", + "raiseHandAction": "Podnieś rękę", + "raisedHand": "{{name}} chce mówić.", + "raisedHands": "{{participantName}} i {{raisedHands}} więcej osób", + "reactionSounds": "Wyłącz dźwięki", + "reactionSoundsForAll": "Wyłącz dźwięki dla wszystkich", + "screenShareNoAudio": "Opcja \"Udostępnij dźwięk\" nie została zaznaczona podczas wyboru okna.", + "screenShareNoAudioTitle": "Nie można udostępnić dźwięku", + "screenSharingAudioOnlyDescription": "Pamiętaj, że udostępniając swój ekran, wpływasz na tryb \"Najlepsza wydajność\" i zużywasz więcej przepustowości.", + "screenSharingAudioOnlyTitle": "Tryb \"Najlepsza wydajność\"", + "selfViewTitle": "Zawsze możesz włączyć podgląd własnej kamery w ustawieniach", + "somebody": "Ktoś", + "startSilentDescription": "Ponownie dołącz do spotkania, aby włączyć dźwięk", + "startSilentTitle": "Dołączyłeś bez wyjścia dźwiękowego!", + "suboptimalBrowserWarning": "Obawiamy się, że Twoje wrażenia ze spotkania nie będą zbyt dobre. Staramy się poprawić tą sytuację, a póki co użyj do spotkania jednej z przeglądarek w pełni obsługiwanych.", + "suboptimalExperienceTitle": "Ostrzeżenie przeglądarki", + "unmute": "Wyłącz wyciszenie", + "videoMutedRemotelyDescription": "Możesz ją włączyć ponownie w dowolnym momencie.", + "videoMutedRemotelyTitle": "Twoja kamera została wyłączona przez {{participantDisplayName}}!", + "videoUnmuteBlockedDescription": "Operacje wyłączania wyciszenia kamery i udostępniania pulpitu zostały tymczasowo zablokowane z powodu ograniczeń systemu.", + "videoUnmuteBlockedTitle": "Wyłączenie wyciszenia kamery i udostępnianie pulpitu zablokowane!", + "viewLobby": "Zobacz poczekalnię", + "waitingParticipants": "{{waitingParticipants}} osoby" + }, + "participantsPane": { + "actions": { + "admit": "Pozwól", + "admitAll": "Pozwól wszystkim", + "allow": "Zezwól uczestnikom na:", + "allowVideo": "Zezwól na wideo", + "askUnmute": "Poproś o wyłączenie wyciszenia", + "audioModeration": "Wyłącz wyciszenie", + "blockEveryoneMicCamera": "Zablokuj wszystkim kamerę i mikrofon", + "invite": "Zaproś", + "moreModerationActions": "Więcej opcji moderatora", + "moreModerationControls": "Więcej kontroli moderacji", + "moreParticipantOptions": "Więcej opcji dla uczestników", + "mute": "Wycisz", + "muteAll": "Wycisz wszystkich", + "muteEveryoneElse": "Wycisz pozostałych", + "reject": "Odrzuć", + "stopEveryonesVideo": "Wyłącz wszystkie kamery", + "stopVideo": "Wyłącz kamerę", + "unblockEveryoneMicCamera": "Odblokuj wszystkim kamerę i mikrofon", + "videoModeration": "Włącz kamerę" + }, + "close": "Zamknij", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Obecni uczestnicy ({{count}})", + "visitors": "Goście ({{count}})", + "waitingLobby": "Oczekujących ({{count}})" + }, + "search": "Wyszukaj uczestników", + "title": "Uczestnicy" + }, + "passwordDigitsOnly": "Do {{number}} cyfr", + "passwordSetRemotely": "Ustawione przez innego uczestnika", + "pinParticipant": "{{participantName}} - Przypnij", + "pinnedParticipant": "Uczestnik jest przypięty", + "polls": { + "answer": { + "skip": "Pomiń", + "submit": "Wyślij" + }, + "by": "Przez {{ name }}", + "create": { + "addOption": "Dodaj opcję", + "answerPlaceholder": "Opcja {{index}}", + "cancel": "Anuluj", + "create": "Stwórz ankietę", + "pollOption": "Opcja {{index}}", + "pollQuestion": "Pytanie", + "questionPlaceholder": "Zadaj pytanie", + "removeOption": "Usuń opcję", + "send": "Wyślij" + }, + "errors": { + "notUniqueOption": "Opcje muszą być wyjątkowe" + }, + "notification": { + "description": "Otwórz kartę ankiet, aby zagłosować", + "title": "Utworzono nową ankietę do tego spotkania" + }, + "results": { + "changeVote": "Zmień głos", + "empty": "Nie ma aktywnych ankiet. Rozpocznij ankietę tutaj!", + "hideDetailedResults": "Ukryj szczegóły", + "showDetailedResults": "Pokaż szczegóły", + "vote": "Głosuj" + } + }, + "poweredby": "napędzane dzięki", + "prejoin": { + "audioAndVideoError": "Błąd audio i wideo:", + "audioDeviceProblem": "Wystąpił problem z urządzeniem audio.", + "audioOnlyError": "Błąd audio:", + "audioTrackError": "Nie można utworzyć ścieżki audio.", + "callMe": "Zadzwoń do mnie", + "callMeAtNumber": "Zadzwoń do mnie pod ten numer:", + "calling": "Wybieranie", + "configuringDevices": "Konfigurowanie urządzeń…", + "connectedWithAudioQ": "Jesteś połączony głosowo?", + "connection": { + "good": "Twoje połączenie internetowe wygląda dobrze!", + "nonOptimal": "Twoje połączenie internetowe nie jest optymalne.", + "poor": "Masz złe połączenie internetowe." + }, + "connectionDetails": { + "audioClipping": "Twój dźwięk będzie się przycinał.", + "audioHighQuality": "Twój dźwięk będzie miał doskonałą jakość.", + "audioLowNoVideo": "Twój dźwięk prawdopodobnie będzie zły i nie będzie wideo.", + "goodQuality": "Świetnie! Jakość obrazu i dźwięku powinna być bardzo dobra.", + "noMediaConnectivity": "Nie można nawiązać połączenia z mediami. Jest to zwykle wywoływane przez zaporę sieciową lub NAT.", + "noVideo": "Twój obraz będzie słabej jakości.", + "undetectable": "Jeśli podczas spotkania nadal będziesz mieć problemy z przeglądarką, sprawdź połączenie oraz działanie głośników, mikrofonu i kamery. Upewnij się również, że Twoja przeglądarka ma niezbędne uprawnienia dostępu do mikrofonu i kamery oraz że masz zainstalowaną najnowszą wersję przeglądarki. Jeśli nadal masz problemy, skontaktuj się z obsługą aplikacji.", + "veryPoorConnection": "Twoja jakość konferencji będzie prawdopodobnie bardzo słaba.", + "videoFreezing": "Twój obraz będzie się przycinał, stanie się czarny i będzie miał niską rozdzielczość.", + "videoHighQuality": "Twój obraz będzie dobrej jakości.", + "videoLowQuality": "Twój obraz będzie miał niską rozdzielczość oraz liczbę klatek na sekundę.", + "videoTearing": "Twój obraz będzie miał niską rozdzielczość, a na ekranie pojawią się nieporządane artefakty." + }, + "copyAndShare": "Kopiuj i udostępnij link spotkania", + "dialInMeeting": "Wdzwoń się na spotkanie", + "dialInPin": "Wdzwoń się na spotkanie i wprowadź kod PIN:", + "dialing": "Wybieranie", + "doNotShow": "Nie pokazuj ponownie", + "errorDialOut": "Nie udało się wybrać numeru", + "errorDialOutDisconnected": "Nie udało się wybrać numeru. Rozłączono", + "errorDialOutFailed": "Nie udało się wybrać numeru. Połączenie nieudane", + "errorDialOutStatus": "Błąd podczas uzyskiwania stanu połączenia", + "errorMissingName": "Podaj imię, aby dołączyć do spotkania", + "errorNoPermissions": "Musisz włączyć dostęp do mikrofonu i kamery", + "errorStatusCode": "Błąd wybierania, kod statusu: {{status}}", + "errorValidation": "Weryfikacja numeru zakończona niepowodzeniem", + "iWantToDialIn": "Chcę się wdzwonić", + "initiated": "Połączenie zainicjowane", + "joinAudioByPhone": "Dołącz przez telefon", + "joinMeeting": "Dołącz do spotkania", + "joinMeetingInLowBandwidthMode": "Dołącz w trybie małej przepustowości", + "joinWithoutAudio": "Dołącz bez dzwięku", + "keyboardShortcuts": "Włącz skróty klawiszowe", + "linkCopied": "Link skopiowany do schowka", + "lookGood": "Wygląda na to, że Twój mikrofon działa poprawnie", + "or": "lub", + "premeeting": "Przed spotkaniem", + "proceedAnyway": "Kontynuuj mimo to", + "screenSharingError": "Błąd udostępniania ekranu:", + "startWithPhone": "Uruchom przez telefon", + "unsafeRoomConsent": "Rozumiem ryzyko, chcę dołączyć do spotkania", + "videoOnlyError": "Błąd wideo:", + "videoTrackError": "Nie można utworzyć ścieżki wideo.", + "viewAllNumbers": "zobacz numery" + }, + "presenceStatus": { + "busy": "Zajęte", + "calling": "Dzwonię…", + "connected": "Połączono", + "connecting": "Łączę…", + "connecting2": "Łączę*…", + "disconnected": "Rozłączony", + "expired": "Wygasły", + "ignored": "Zignorowane", + "initializingCall": "Inicjalizacja połączenia…", + "invited": "Zaproszony", + "rejected": "Odrzucony", + "ringing": "Dzwonek…" + }, + "profile": { + "avatar": "awatar", + "setDisplayNameLabel": "Podaj swoją wyświetlaną nazwę", + "setEmailInput": "Wprowadź adres email", + "setEmailLabel": "Ustaw adres poczty elektronicznej swojego Gravatara", + "title": "Profil" + }, + "raisedHand": "Chcę coś powiedzieć", + "raisedHandsLabel": "Liczba podniesionych rąk", + "record": { + "already": { + "linked": "Spotkanie jest już połączone z tym obiektem Salesforce." + }, + "type": { + "account": "Kontrahent", + "contact": "Kontakt", + "lead": "Lead", + "opportunity": "Szansa sprzedaży", + "owner": "Właściciel" + } + }, + "recording": { + "authDropboxText": "Prześlij na Dropbox", + "availableSpace": "Dostępna przestrzeń: {{spaceLeft}} MB (około {{duration}} minut nagrania)", + "beta": "BETA", + "busy": "Pracujemy nad uwolnieniem zasobów nagrywania. Proszę spróbować ponownie za kilka minut.", + "busyTitle": "Wszystkie urządzenia nagrywania są obecnie zajete", + "copyLink": "Skopiuj link", + "error": "Nagranie się nie powiodło. Proszę spróbować ponownie.", + "errorFetchingLink": "Nie udało się wczytać linku do nagrania.", + "expandedOff": "Nagrywanie zostało zatrzymane", + "expandedOn": "Spotkanie jest obecnie nagrywane.", + "expandedPending": "Nagrywanie się rozpoczyna…", + "failedToStart": "Nagrywanie nie jest możliwe", + "fileSharingdescription": "Udostępnij nagranie uczestnikom spotkania", + "highlight": "Oznacz", + "highlightMoment": "Zaznacz moment", + "highlightMomentDisabled": "Możesz zaznaczyć momenty rozpoczęcia nagrywania", + "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.", + "localRecordingNoVideo": "Film nie jest nagrywany", + "localRecordingStartWarning": "Upewnij się, że zatrzymałeś nagrywanie przed opuszczeniem spotkania, aby je zapisać.", + "localRecordingStartWarningTitle": "Zatrzymaj nagrywanie, aby je zapisać", + "localRecordingVideoStop": "Zatrzymanie filmu spowoduje również zatrzymanie nagrywania lokalnego. Jesteś pewien, że chcesz kontynuować?", + "localRecordingVideoWarning": "Aby nagrać film, musisz go mieć na początku nagrywania", + "localRecordingWarning": "Upewnij się, że wybrałeś bieżącą kartę, aby użyć odpowiedniego obrazu i dźwięku.", + "loggedIn": "Zalogowano jako {{userName}}", + "noMicPermission": "Nie można utworzyć ścieżki mikrofonu. Zezwól na korzystanie z mikrofonu.", + "noStreams": "Nie wykryto strumienia audio lub wideo.", + "off": "Nagrywanie zatrzymane", + "offBy": "{{name}} zatrzymał nagrywanie", + "on": "Nagrywanie", + "onBy": "{{name}} rozpoczął nagrywanie", + "onlyRecordSelf": "Nagrywaj tylko moje strumienie audio i wideo", + "pending": "Przygotowanie do nagrania spotkania…", + "rec": "NAGRYWANIE", + "saveLocalRecording": "Zapisz plik nagrania lokalnie (Beta)", + "serviceDescription": "Twoje nagranie zostanie zapisane przez usługę nagrywania", + "serviceDescriptionCloud": "Nagrywanie w chmurze", + "serviceDescriptionCloudInfo": "Nagrane spotkania są automatycznie usuwane 24 godziny po ich nagraniu.", + "serviceName": "Usługa nagrywania", + "sessionAlreadyActive": "Ta sesja jest już nagrywana lub transmitowana na żywo.", + "signIn": "Zaloguj się", + "signOut": "Wyloguj się", + "surfaceError": "Proszę wybrać aktualną zakładkę.", + "title": "Nagrywanie", + "unavailable": "Ups! {{serviceName}} w tej chwili niedostępny. Próbujemy rozwiązać ten problem. Spróbuj ponownie później.", + "unavailableTitle": "Nagrywanie niedostępne", + "uploadToCloud": "Prześlij do chmury" + }, + "screenshareDisplayName": "Ekran użytkownika {{name}}", + "sectionList": { + "pullToRefresh": "Przeciągnij, aby odświeżyć" + }, + "security": { + "about": "Możesz dodać $t(lockRoomPassword) do spotkania. Uczestnicy będą musieli wprowadzić $t(lockRoomPassword) przed dołączeniem do spotkania.", + "aboutReadOnly": "Uczestnicy posiadający uprawnienia do moderacji mogą ustawić $t(lockRoomPassword) do spotkania. Uczestnicy będą musieli wprowadzić $t(lockRoomPassword) zanim zostaną dołączeni do spotkania.", + "insecureRoomNameWarningNative": "Nazwa pokoju jest niebezpieczna. Niechciani uczestnicy mogą dołączyć do Twojego spotkania. {{recommendAction}} Dowiedz się więcej o zabezpieczeniu spotkania ", + "insecureRoomNameWarningWeb": "Nazwa pokoju jest niebezpieczna. Niechciani uczestnicy mogą dołączyć do Twojego spotkania. {{recommendAction}} Dowiedz się więcej o zabezpieczeniu spotkania tutaj.", + "title": "Opcje zabezpieczeń", + "unsafeRoomActions": { + "meeting": "Rozważ zabezpieczenie spotkania za pomocą przycisku bezpieczeństwa.", + "prejoin": "Rozważ użycie bardziej unikalnej nazwy spotkania.", + "welcome": "Rozważ użycie bardziej unikalnej nazwy spotkania lub wybierz jedną z sugestii." + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Ustawienia", + "calendar": { + "about": "{{appName}} integracji kalendarza służy do bezpiecznego dostępu do kalendarza, aby można było odczytywać nadchodzące wydarzenia.", + "disconnect": "Rozłącz", + "microsoftSignIn": "Zaloguj się z Microsoft", + "signedIn": "Dostęp do wydarzeń kalendarza dla {{email}}. Kliknij poniższy przycisk Rozłącz aby zatrzymać dostęp do wydarzeń kalendarza.", + "title": "Kalendarz" + }, + "desktopShareFramerate": "Liczba klatek na sekundę dla udostępniania ekranu", + "desktopShareHighFpsWarning": "Wyższa liczba klatek może wpłynąć na szybkość transmisji danych. Aby ustawienie zaczęło obowiązywać, musisz ponownie uruchomić udostępnianie ekranu.", + "desktopShareWarning": "Wymagane ponowne włączenie udostępniania ekranu, aby zastosować nowe ustawienia.", + "devices": "Urządzenia", + "followMe": "Wszyscy widzą mnie", + "framesPerSecond": "klatek na sekundę", + "incomingMessage": "Przychodząca wiadomość", + "language": "Język", + "loggedIn": "Zalogowano jako {{name}}", + "maxStageParticipants": "Maksymalna liczba uczestników, których można przypiąć do sceny głównej", + "microphones": "Mikrofony", + "moderator": "Moderacja", + "moderatorOptions": "Opcje moderatora", + "more": "Więcej", + "name": "Nazwa", + "noDevice": "Brak", + "notifications": "Powiadomienia", + "participantJoined": "Dołączył nowy uczestnik", + "participantKnocking": "Uczestnik wszedł do poczekalni", + "participantLeft": "Uczestnik opuścił spotkanie", + "playSounds": "Włącz powiadomienia dźwiękowe dla:", + "reactions": "Reakcje", + "sameAsSystem": "Jak system ({{label}})", + "selectAudioOutput": "Wyjście audio", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Własnego podgląd", + "shortcuts": "Skróty", + "speakers": "Głośniki", + "startAudioMuted": "Wycisz wszystkich dołączających", + "startReactionsMuted": "Wycisz dźwięki reakcji dla wszystkich", + "startVideoMuted": "Wyłącz kamery wszystkich dołączających", + "talkWhileMuted": "Jesteś wyciszony", + "title": "Ustawienia", + "video": "Wideo" + }, + "settingsView": { + "advanced": "Zaawansowane", + "alertCancel": "Anuluj", + "alertOk": "OK", + "alertTitle": "Uwaga", + "alertURLText": "Wprowadzony adres URL serwera jest nieprawidłowy", + "buildInfoSection": "Informacja o kompilacji", + "conferenceSection": "Konferencja", + "disableCallIntegration": "Wyłącz natywną integrację połczeń tel.", + "disableCrashReporting": "Wyłącz raportowanie błędów", + "disableCrashReportingWarning": "Czy na pewno chcesz wyłączyć raportowanie błędów? Ustawienie zacznie funkcjonować po restarcie aplikacji.", + "disableP2P": "Wyłącz tryb Peer-To-Peer", + "displayName": "Wyświetlana nazwa", + "displayNamePlaceholderText": "Np. Jan Kowalski", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "goTo": "Idź do", + "header": "Ustawienia", + "help": "Pomoc", + "links": "Linki", + "privacy": "Prywatność", + "profileSection": "Profil", + "serverURL": "Adres URL serwera", + "showAdvanced": "Pokaż ustawienia zawansowane", + "startCarModeInLowBandwidthMode": "Uruchom tryb samochodowy w trybie niskiej przepustowości", + "startWithAudioMuted": "Rozpocznij z wyciszonym dźwiękiem", + "startWithVideoMuted": "Rozpocznij z wyłączonym obrazem", + "terms": "Warunki", + "version": "Wersja" + }, + "share": { + "dialInfoText": "\n\n=====\n\nChcesz wdzwonić się ze swojego telefonu?\n\n{{defaultDialInNumber}}Kliknij w ten link aby zobaczyć numery wdzwaniania na to spotkanie\n{{dialInfoPageUrl}}", + "mainText": "Kliknij na poniższy odnośnik, aby dołączyć do spotkania:\n{{roomUrl}}" + }, + "speaker": "Mówca", + "speakerStats": { + "angry": "Zły", + "disgusted": "Oburzony", + "displayEmotions": "Pokaż emocje", + "fearful": "Przerażony", + "happy": "Szczęśliwy", + "hours": "{{count}} godz.", + "minutes": "{{count}} min.", + "name": "Nazwa", + "neutral": "Neutralny", + "sad": "Smutny", + "search": "Wyszukaj", + "searchHint": "Wyszukaj uczestników", + "seconds": "{{count}} sek.", + "speakerStats": "Statystyki mówców", + "speakerTime": "Czas mówcy", + "surprised": "Zdziwiony" + }, + "startupoverlay": { + "genericTitle": "Spotkanie potrzebuje używać Twojego mikrofonu i kamery.", + "policyText": " ", + "title": "{{app}} potrzebuje używać Twojego mikrofonu i kamery." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Dołącz ponownie", + "text": "Naciśnij przycisk Dołącz ponownie, aby połączyć się ponownie.", + "title": "Twoja rozmowa wideo została przerwana, ponieważ komputer zasnął." + }, + "termsView": { + "title": "Warunki" + }, + "toggleTopPanelLabel": "Przełącz górny panel", + "toolbar": { + "Settings": "Ustawienia", + "accessibilityLabel": { + "Settings": "Ustawienia przełączania", + "audioOnly": "Przełączanie tylko audio", + "audioRoute": "Wybierz urządzenie dźwiękowe", + "boo": "Buczenie", + "breakoutRoom": "Dołącz/opuść pokój podgrupy", + "callQuality": "Zarządzanie jakością obrazu", + "carmode": "Tryb samochodowy", + "cc": "Przełączanie napisów", + "chat": "Przełączanie okna rozmowy", + "clap": "Klaskanie", + "closeChat": "Zamknij czat", + "closeMoreActions": "Zamknij rozszerzone menu opcji", + "closeParticipantsPane": "Zamknij okno uczestników", + "collapse": "Zwiń", + "document": "Przełączanie wspólnego dokumentu", + "documentClose": "Zamknij udostępniony dokument", + "documentOpen": "Otwórz udostępniony dokument", + "download": "Pobierz nasze aplikacje", + "embedMeeting": "Osadź spotkanie", + "endConference": "Zakończ spotkanie", + "enterFullScreen": "Wyświetl w trybie pełnego ekranu", + "enterTileView": "Wyświetl w trybie kafelkowym", + "exitFullScreen": "Zamknij tryb pełnego ekranu", + "exitTileView": "Zamknij tryb kafelkowy", + "expand": "Rozwiń", + "feedback": "Zostaw swoją opinię", + "fullScreen": "Przełączanie trybu pełnoekranowego", + "giphy": "Przełącz menu GIPHY", + "grantModerator": "Przyznaj prawa moderowania", + "hangup": "Zostaw rozmowę", + "heading": "Pasek narzędzi", + "help": "Pomoc", + "hideWhiteboard": "Ukryj tablicę", + "invite": "Zaproś uczestników", + "kick": "Usuń uczestnika", + "laugh": "Śmiech", + "leaveConference": "Opuść spotkanie", + "like": "Kciuk w górę", + "linkToSalesforce": "Link do Salesforce", + "lobbyButton": "Włącz/wyłącz tryb lobby", + "localRecording": "Przełączanie lokalnych urządzeń sterujących zapisem danych", + "lockRoom": "Przełączenie hasła spotkania", + "lowerHand": "Opuść rękę", + "moreActions": "Przełączanie menu więcej działań", + "moreActionsMenu": "Więcej działań w menu", + "moreOptions": "Pokaż więcej opcji", + "mute": "Uruchamianie wyciszonego audycji", + "muteEveryone": "Wycisz wszystkich", + "muteEveryoneElse": "Wycisz pozostałych", + "muteEveryoneElsesVideoStream": "Wyłącz kamery pozostałym", + "muteEveryonesVideoStream": "Wyłącz wszystkim kamery", + "muteGUMPending": "Podłączanie mikrofonu", + "noiseSuppression": "Tłumienie szumów", + "openChat": "Otwórz czat", + "participants": "Uczestnicy", + "pip": "Tryb przełączania obrazu-w-obrazie", + "privateMessage": "Wyślij wiadomość prywatną", + "profile": "Edytuj swój profil", + "raiseHand": "Przełączyć rękę w górę", + "reactions": "Reakcje", + "reactionsMenu": "Otwórz / Zamknij reakcje", + "recording": "Przełączanie nagrywania", + "remoteMute": "Wycisz uczestnika", + "remoteVideoMute": "Wyłącz kamerę uczestnika", + "security": "Opcje zabezpieczeń", + "selectBackground": "Wybierz tło", + "selfView": "Przełącz własny widok", + "shareRoom": "Zaproś kogoś", + "shareYourScreen": "Przełączanie udostępniania ekranu", + "shareaudio": "Udostępnij audio", + "sharedvideo": "Przełącz udostępnianie obrazu", + "shortcuts": "Przełączanie skrótów klawiszowych", + "show": "Pokaż na scenie", + "showWhiteboard": "Pokaż tablicę", + "silence": "Cisza", + "speakerStats": "Przełączanie statystyk dotyczących mówców", + "stopScreenSharing": "Zatrzymaj udostępnianie ekranu", + "stopSharedVideo": "Zatrzymaj wideo", + "surprised": "Zaskoczony", + "tileView": "Przełącz widok kafelkowy", + "toggleCamera": "Przełączanie kamery", + "toggleFilmstrip": "Przełącz filmstrip", + "unmute": "Wyłącz wyciszenie", + "videoblur": "Przełącz rozmazanie obrazu", + "videomute": "Przełączanie wyciszonego filmu wideo", + "videomuteGUMPending": "Podłączanie kamery", + "videounmute": "Uruchom kamerę" + }, + "addPeople": "Dodaj ludzi do swojej rozmowy", + "audioOnlyOff": "Wyłącz tryb słabego łącza", + "audioOnlyOn": "Włącz tryb słabego łącza", + "audioRoute": "Wybierz urządzenie dźwiękowe", + "audioSettings": "Ustawienia audio", + "authenticate": "Uwierzytelnianie", + "boo": "Buczenie", + "callQuality": "Zarządzanie jakością obrazu", + "chat": "Otwórz / Zamknij okno czatu", + "clap": "Klaskanie", + "closeChat": "Zamknij czat", + "closeParticipantsPane": "Zamknij okno uczestników", + "closeReactionsMenu": "Zamknij reakcje", + "disableNoiseSuppression": "Wyłącz tłumienie szumów", + "disableReactionSounds": "Wyłącz dźwięki reakcji dla tego spotkania", + "documentClose": "Zamknij udostępniony dokument", + "documentOpen": "Otwarty udostępniony dokument", + "download": "Pobierz nasze aplikacje", + "e2ee": "Szyfrowanie End-to-End", + "embedMeeting": "Osadź spotkanie", + "enableNoiseSuppression": "Włącz tłumienie szumów", + "endConference": "Zakończ spotkanie", + "enterFullScreen": "Wyświetl na pełnym ekranie", + "enterTileView": "Wyświetl widok kafelkowy", + "exitFullScreen": "Zamknij pełny ekran", + "exitTileView": "Zamknij widok kafelkowy", + "feedback": "Zostaw swoją opinię", + "giphy": "Przełącz menu GIPHY", + "hangup": "Opuść spotkanie", + "help": "Pomoc", + "hideWhiteboard": "Ukryj tablicę", + "invite": "Zaproś uczestników", + "joinBreakoutRoom": "Dołącz do pokoju podgrupy", + "laugh": "Śmiech", + "leaveBreakoutRoom": "Opuść pokój spotkań", + "leaveConference": "Opuść spotkanie", + "like": "Kciuk w górę", + "linkToSalesforce": "Link do Salesforce", + "lobbyButtonDisable": "Wyłącz tryb lobby", + "lobbyButtonEnable": "Włącz tryb lobby", + "login": "Zaloguj", + "logout": "Wyloguj", + "lowerYourHand": "Opuść rękę", + "moreActions": "Więcej działań", + "moreOptions": "Więcej opcji", + "mute": "Włącz / Wyłącz mikrofon", + "muteEveryone": "Wycisz wszystkich", + "muteEveryonesVideo": "Wyłącz wszystkim kamery", + "muteGUMPending": "Podłączanie mikrofonu", + "noAudioSignalDesc": "Jeżeli celowo nie wyciszyłeś mikrofonu w ustawieniach systemowych spróbuj innego urządzenia.", + "noAudioSignalDescSuggestion": "Jeżeli celowo nie wyciszyłeś mikrofonu w ustawieniach systemowych spróbuj sugerowanego urządzenia.", + "noAudioSignalDialInDesc": "Możesz się również wdzwonić korzystając z numerów:", + "noAudioSignalDialInLinkDesc": "Numery wdzwaniania", + "noAudioSignalTitle": "Brak sygnału audio!", + "noiseSuppression": "Tłumienie szumów", + "noisyAudioInputDesc": "Wygląda na to, że Twój mikrofon powoduje zakłócenia.", + "noisyAudioInputTitle": "Twój mikrofon powoduje zakłócenia!", + "openChat": "Otwórz czat", + "openReactionsMenu": "Otwórz reakcje", + "participants": "Uczestnicy", + "pip": "Wprowadź tryb obrazu w obrazie", + "privateMessage": "Wyślij wiadomość prywatną", + "profile": "Edytuj swój profil", + "raiseHand": "Podnieś / Opuść rękę", + "raiseYourHand": "Podnieś rękę", + "reactionBoo": "Wyślij buczenie", + "reactionClap": "Wyślij klaskanie", + "reactionLaugh": "Wyślij śmiech", + "reactionLike": "Wyślij kciuk w górę", + "reactionSilence": "Wyślij cisza", + "reactionSurprised": "Wyślij zaskoczony", + "reactions": "Reakcje", + "security": "Opcje zabezpieczeń", + "selectBackground": "Wybierz tło", + "shareRoom": "Zaproś kogoś", + "shareaudio": "Udostępnij audio", + "sharedvideo": "Udostępnij wideo", + "shortcuts": "Wyświetl skróty", + "showWhiteboard": "Pokaż tablicę", + "silence": "Cisza", + "speakerStats": "Statystyki mówców", + "startScreenSharing": "Zacznij współdzielenie ekranu", + "startSubtitles": "Uruchom napisy", + "stopAudioSharing": "Zakończ udostępnianie audio", + "stopScreenSharing": "Zakończ współdzielenie ekranu", + "stopSharedVideo": "Zatrzymaj wideo", + "stopSubtitles": "Zatrzymaj napisy", + "surprised": "Zaskoczony", + "talkWhileMutedPopup": "Próbujesz mówić? Jesteś wyciszony.", + "tileViewToggle": "Przełączanie widoku kafelkowego", + "toggleCamera": "Przełączanie kamery", + "unmute": "Wyłącz wyciszenie", + "videoSettings": "Ustawienia video", + "videomute": "Włącz / Wyłącz kamerę", + "videomuteGUMPending": "Podłączanie kamery", + "videounmute": "Uruchom kamerę" + }, + "transcribing": { + "ccButtonTooltip": "Uruchom / Zatrzymaj napisy", + "error": "Przepisywanie nie powiodło się. Proszę spróbować ponownie.", + "expandedLabel": "Transkrypcja jest obecnie włączona", + "failedToStart": "Błąd uruchomienia transkrypcji", + "labelToolTip": "Spotkanie jest transkrybowane", + "off": "Transkrypcja została zatrzymana", + "pending": "Przygotowanie do transkrypcji spotkania…", + "sourceLanguageDesc": "Obecnie język spotkania jest ustawiony na {{sourceLanguage}}.
Możesz to zmienić ", + "sourceLanguageHere": "tutaj", + "start": "Rozpocznij wyświetlanie napisów", + "stop": "Zatrzymaj wyświetlanie napisów", + "subtitles": "Napisy", + "subtitlesOff": "Wyłączone", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Odepnij", + "userMedia": { + "grantPermissions": "Udziel przyzwolenia na użycie swej kamery i mikrofonu." + }, + "videoSIPGW": { + "busy": "Pracujemy nad uwolnieniem zasobów. Prosimy spróbować za kilka minut.", + "busyTitle": "Usługa pokoju jest obecnie zajęta", + "errorAlreadyInvited": "{{displayName}} jest już zaproszony", + "errorInvite": "Konferencja nie została jeszcze ustanowiona. Prosimy spróbować ponownie później.", + "errorInviteFailed": "Pracujemy nad rozwiązaniem tego problemu. Prosimy ponownie spróbować później.", + "errorInviteFailedTitle": "Błąd zaproszenia {{displayName}}", + "errorInviteTitle": "Błąd zaproszenia do pokoju", + "pending": "{{displayName}} został zaproszony" + }, + "videoStatus": { + "adjustFor": "Dostosuj do:", + "audioOnly": "DŹW", + "audioOnlyExpanded": "Jesteś w trybie słabego łącza. W tym trybie będziesz otrzymywać tylko dźwięk i udostępnianie ekranu.", + "bestPerformance": "Najlepsza wydajność", + "callQuality": "Jakość obrazu", + "hd": "HD", + "hdTooltip": "Podgląd obrazu w wysokiej rozdzielczości", + "highDefinition": "Wysoka rozdzielczość", + "highestQuality": "Najwyższa jakość", + "labelTooiltipNoVideo": "Brak obrazu", + "labelTooltipAudioOnly": "Włączono tryb słabego łącza", + "ld": "LD", + "ldTooltip": "Podgląd obrazu w niskiej rozdzielczości", + "lowDefinition": "Niska rozdzielczość", + "performanceSettings": "Ustawienia wydajności", + "recording": "Trwa nagrywanie", + "sd": "SD", + "sdTooltip": "Podgląd obrazu w standardowej rozdzielczości", + "standardDefinition": "Standardowa rozdzielczość", + "streaming": "Trwa transmisja" + }, + "videothumbnail": { + "connectionInfo": "Informacje o połączeniu", + "domute": "Wyciszenie", + "domuteOthers": "Wycisz pozostałych", + "domuteVideo": "Wyłącz kamerę", + "domuteVideoOfOthers": "Wyłącz kamerę pozostałym", + "flip": "Odwrócenie", + "grantModerator": "Przyznaj prawa moderatora", + "hideSelfView": "Ukryj widok własnego podglądu", + "kick": "Wyrzuć", + "mirrorVideo": "Lustrzane odbicie", + "moderator": "Moderator", + "mute": "Uczestnik ma wyciszone audio", + "muted": "Wyciszony", + "pinToStage": "Przypnij do sceny", + "remoteControl": "Kontrola zdalna", + "screenSharing": "Uczestnik udostępnia ekran", + "show": "Pokaż na scenie", + "showSelfView": "Pokaż własny widok", + "unpinFromStage": "Odepnij", + "verify": "Zweryfikuj uczestnika", + "videoMuted": "Kamera wyłączona", + "videomute": "Uczestnik zatrzymał kamerę" + }, + "virtualBackground": { + "addBackground": "Dodaj tło", + "apply": "Zastosuj", + "backgroundEffectError": "Nie udało się zastosować efektu tła.", + "blur": "Rozmycie", + "deleteImage": "Usuń obraz", + "desktopShare": "Udostępnianie pulpitu", + "desktopShareError": "Nie można udostępnić pulpitu", + "image1": "Plaża", + "image2": "Biała ściana", + "image3": "Biały pusty pokój", + "image4": "Czarna lampa", + "image5": "Góra", + "image6": "Las", + "image7": "Wschód słońca", + "none": "Żadne", + "pleaseWait": "Proszę czekać…", + "removeBackground": "Usuń tło", + "slightBlur": "Lekkie rozmycie", + "title": "Tła", + "uploadedImage": "Przesłany obraz {{index}}", + "webAssemblyWarning": "WebAssembly nie jest obsługiwany", + "webAssemblyWarningDescription": "WebAssembly wyłączony lub nieobsługiwany przez tę przeglądarkę" + }, + "visitors": { + "chatIndicator": "(visitor)", + "labelTooltip": "Liczba odwiedzających: {{count}}", + "notification": { + "description": "Aby wziąć udział, podnieś rękę", + "title": "Jesteś gościem na spotkaniu" + } + }, + "volumeSlider": "Kontrola głośności", + "welcomepage": { + "accessibilityLabel": { + "join": "Stuknij aby dołączyć", + "roomname": "Podaj nazwę sali konferencyjnej" + }, + "addMeetingName": "Dodaj nazwę spotkania", + "appDescription": "No dalej, pogawędka wideo z całym zespołem. W rzeczywistości, zaproś wszystkich, których znasz. {{app}} jest w pełni zaszyfrowanym, w 100% otwartym rozwiązaniem wideokonferencyjnym, z którego możesz korzystać przez cały dzień, codziennie, za darmo - bez konieczności posiadania konta.", + "audioVideoSwitch": { + "audio": "Głos", + "video": "Obraz" + }, + "calendar": "Kalendarz", + "connectCalendarButton": "Podłącz swój kalendarz", + "connectCalendarText": "Podłącz swój kalendarz aby przeglądać wszystkie Twoje spotkania w {{app}}. Dodaj spotkania {{provider}} do swojego kalendarza i uruchamiaj je jednym kliknięciem.", + "enterRoomTitle": "Rozpocznij nowe spotkanie", + "getHelp": "Pomoc", + "go": "Dalej", + "goSmall": "Dalej", + "headerSubtitle": "Bezpieczne i wysokiej jakości spotkania", + "headerTitle": "Jitsi Meet", + "info": "Informacje", + "jitsiOnMobile": "Jitsi mobile – pobierz appkę i rozpocznij spotkanie z dowolnego miejsca", + "join": "Utwórz / Dołącz", + "logo": { + "calendar": "Logo kalendarza", + "desktopPreviewThumbnail": "Miniatura podglądu pulpitu", + "googleLogo": "Logo Google", + "logoDeepLinking": "Logo Jitsi meet", + "microsoftLogo": "Logo Microsoftu", + "policyLogo": "Logo polityki" + }, + "meetingsAccessibilityLabel": "Spotkania", + "mobileDownLoadLinkAndroid": "Pobierz appkę dla systemu Android", + "mobileDownLoadLinkFDroid": "Pobierz appkę dla systemu F-Droid", + "mobileDownLoadLinkIos": "Pobierz appkę dla systemu iOS", + "moderatedMessage": "lub zarezerwuj adres spotkania jeśli jesteś jedynym moderatorem.", + "privacy": "Polityka prywatności", + "recentList": "Niedawno", + "recentListDelete": "Usuń", + "recentListEmpty": "Twoja ostatnia lista jest obecnie pusta. Rozmawiaj ze swoim zespołem, a wszystkie ostatnie spotkania znajdziesz tutaj.", + "recentMeetings": "Twoje ostatnie spotkania", + "reducedUIText": "Witamy w {{app}}!", + "roomNameAllowedChars": "Nazwa spotkania nie powinna zawierać znaków: ?, &, :, ', \", %, #.", + "roomname": "Podaj nazwę sali konferencyjnej", + "roomnameHint": "Wprowadź nazwę lub adres URL pokoju, do którego chcesz dołączyć. Możesz wymyślić nazwę, po prostu pozwól, aby osoby, z którymi się spotykasz, znały ją tak, aby wpisały tę samą nazwę.", + "sendFeedback": "Wyślij opinię", + "settings": "Ustawienia", + "startMeeting": "Rozpocznij spotkanie", + "terms": "Warunki korzystania", + "title": "Bezpieczna, w pełni funkcjonalna i całkowicie bezpłatna wideokonferencja", + "upcomingMeetings": "Twoje nadchodzące spotkania" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Tablica" + } + } +} diff --git a/lang/main-pt.json b/lang/main-pt.json new file mode 100644 index 0000000..b2244b1 --- /dev/null +++ b/lang/main-pt.json @@ -0,0 +1,1664 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Link da reunião: {{url}}" + }, + "add": "Convidar", + "addContacts": "Convidar os seus contactos", + "contacts": "contactos", + "copyInvite": "Cópia do convite para reunião", + "copyLink": "Cópia do link da reunião", + "copyStream": "Copiar do link de transmissão em direto", + "countryNotSupported": "Ainda não temos suporte para este destino.", + "countryReminder": "Está a telefonar para fora dos EUA? Por favor, certifique-se de que começa com o código do país!", + "defaultEmail": "O seu email predefinido", + "disabled": "Não pode convidar outras pessoas.", + "failedToAdd": "Falha ao adicionar participantes", + "googleEmail": "Email do Google", + "inviteMoreHeader": "É o único na reunião", + "inviteMoreMailSubject": "Participar na reunião {{appName}}", + "inviteMorePrompt": "Convidar mais pessoas", + "linkCopied": "Link copiado para a área de transferência", + "noResults": "Sem resultados de pesquisa correspondentes", + "outlookEmail": "Email do Outlook", + "phoneNumbers": "números de telefone", + "searching": "A pesquisar…", + "shareInvite": "Partilhar convite de reunião", + "shareLink": "Partilhar o link da reunião para convidar outras pessoas", + "shareStream": "Partilhar o link de transmissão em direto", + "sipAddresses": "endereços SIP", + "telephone": "Telefone: {{number}}", + "title": "Convidar pessoas para esta reunião", + "yahooEmail": "Email do Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Sistema áudio do automóvel", + "headphones": "Auscultadores", + "none": "Sem dispositivos de áudio disponíveis", + "phone": "Telemóvel", + "speaker": "Altifalante" + }, + "audioOnly": { + "audioOnly": "Largura de banda baixa" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "p. ex. 10000000 para 10 Mbps", + "assumedBandwidthBpsWarning": "Valores mais elevados podem causar problemas na rede.", + "customValue": "valor personalizado", + "customValueEffect": "para definir o valor actual de bps", + "leaveEmpty": "deixar em branco", + "leaveEmptyEffect": "para permitir a realização de estimativas", + "possibleValues": "Valores possíveis", + "setAssumedBandwidthBps": "Largura de banda presumida (bps)", + "title": "Definições de largura de banda", + "zeroEffect": "para desligar o vídeo" + }, + "breakoutRooms": { + "actions": { + "add": "Adicionar salas simultâneas", + "autoAssign": "Atribuição automática de salas simultâneas", + "close": "Fechar", + "join": "Entrar na sala", + "leaveBreakoutRoom": "Sair da sala", + "more": "Mais", + "remove": "Eliminar sala", + "rename": "Renomear", + "renameBreakoutRoom": "Renomear sala", + "sendToBreakoutRoom": "Enviar participante para:" + }, + "breakoutList": "lista de salas", + "buttonLabel": "Salas simultâneas", + "defaultName": "Sala #{{index}}", + "hideParticipantList": "Ocultar lista de participantes", + "mainRoom": "Sala principal", + "notifications": { + "joined": "Entrada na sala \"{{name}}\"", + "joinedMainRoom": "Entrada na sala principal", + "joinedTitle": "Salas simultâneas" + }, + "showParticipantList": "Mostrar lista de participantes", + "title": "Salas simultâneas" + }, + "calendarSync": { + "addMeetingURL": "Adicionar um link da reunião", + "confirmAddLink": "Gostaria de adicionar um link do Jitsi a esse evento?", + "error": { + "appConfiguration": "A integração com calendário não está configurada adequadamente.", + "generic": "Ocorreu um erro. Verifique as configurações de calendário ou tente atualizar o calendário.", + "notSignedIn": "Ocorreu um erro durante a autenticação para visualização dos eventos do calendário. Verifique as configurações de calendário e tente entrar novamente." + }, + "join": "Participar", + "joinTooltip": "Participar na reunião", + "nextMeeting": "Próxima reunião", + "noEvents": "Não há eventos próximos agendados.", + "ongoingMeeting": "Reunião a decorrer", + "permissionButton": "Abrir configurações", + "permissionMessage": "Permissão do calendário é requerida para ver as suas reuniões na aplicação.", + "refresh": "Atualizar calendário", + "today": "Hoje" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Seleccionar dispositivo de som" + }, + "labels": { + "buttonLabel": "Modo de condução", + "title": "Modo de condução", + "videoStopped": "O seu vídeo está parado" + } + }, + "chat": { + "disabled": "O envio de mensagens de chat está desativado.", + "enter": "Entrar na sala", + "error": "Erro: a sua mensagem não foi enviada. Motivo: {{error}}", + "everyone": "Todos", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Mensagem de chat na sala de espera para {{recipient}}", + "message": "Mensagem", + "messageAccessibleTitle": "{{user}} disse:", + "messageAccessibleTitleMe": "Eu disse:", + "messageTo": "Mensagem privada para {{recipient}}", + "messagebox": "Escreva uma mensagem", + "newMessages": "Novas mensagens", + "nickname": { + "popover": "Escolha um apelido", + "title": "Introduza um apelido para usar o chat", + "titleWithCC": "Insira um apelido para usar o chat e as legendas ocultas", + "titleWithPolls": "Digite um apelido para usar o chat e as sondagens", + "titleWithPollsAndCC": "Insira um apelido para utilizar o chat, as sondagens e as legendas ocultas", + "titleWithPollsAndCCAndFileSharing": "Insira um apelido para utilizar o chat, as sondagens, as legendas e os ficheiros" + }, + "noMessagesMessage": "Ainda não há mensagens na reunião. Comece aqui uma conversa!", + "privateNotice": "Mensagem privada para {{recipient}}", + "sendButton": "Enviar", + "smileysPanel": "Painel de Emojis", + "systemDisplayName": "Sistema", + "tabs": { + "chat": "Chat", + "closedCaptions": "LO", + "fileSharing": "Ficheiros", + "polls": "Sondagens" + }, + "title": "Chat", + "titleWithCC": "LO", + "titleWithFeatures": "Chat e", + "titleWithFileSharing": "Ficheiros", + "titleWithPolls": "Sondagens", + "you": "você" + }, + "chromeExtensionBanner": { + "buttonText": "Instalar extensão do Chrome", + "buttonTextEdge": "Instalar extensão do Edge", + "close": "Fechar", + "dontShowAgain": "Não me mostre isto outra vez", + "installExtensionText": "Instalar a extensão para a integração Google Calendar e Office 365" + }, + "closedCaptionsTab": { + "emptyState": "O conteúdo das legendas ocultas estará disponível assim que um moderador iniciar a sessão.", + "startClosedCaptionsButton": "Iniciar legendas ocultas" + }, + "connectingOverlay": { + "joiningRoom": "A ligá-lo à reunião…" + }, + "connection": { + "ATTACHED": "Anexado", + "AUTHENTICATING": "A autenticar", + "AUTHFAIL": "Falha de autenticação", + "CONNECTED": "Ligado", + "CONNECTING": "A ligar", + "CONNFAIL": "Falha de ligação", + "DISCONNECTED": "Desligado", + "DISCONNECTING": "A desligar", + "ERROR": "Erro", + "FETCH_SESSION_ID": "Obtenção da session-id…", + "GET_SESSION_ID_ERROR": "Obter erro de session-id: {{code}}", + "GOT_SESSION_ID": "Obtenção da session-id… Feito", + "LOW_BANDWIDTH": "O vídeo para {{displayName}} foi desligado para poupar largura de banda" + }, + "connectionindicator": { + "address": "Endereço:", + "audio_ssrc": "Áudio SSRC:", + "bandwidth": "Largura de banda estimada:", + "bitrate": "Taxa de bits:", + "bridgeCount": "Servidores: ", + "codecs": "Codecs (A/V): ", + "connectedTo": "Ligado a:", + "e2eeVerified": "E2EE verificada:", + "framerate": "Taxa de frames:", + "less": "Mostrar menos", + "localaddress": "Endereço local:", + "localaddress_plural": "Endereços locais:", + "localport": "Porta local:", + "localport_plural": "Portas locais:", + "maxEnabledResolution": "enviar máx", + "more": "Mostrar mais", + "no": "não", + "packetloss": "Perda de pacote:", + "participant_id": "Participante id:", + "quality": { + "good": "Boa", + "inactive": "Inativo", + "lost": "Perdido", + "nonoptimal": "Não é ótima", + "poor": "Pobre" + }, + "remoteaddress": "Endereço remoto:", + "remoteaddress_plural": "Endereços remotos:", + "remoteport": "Porta remota:", + "remoteport_plural": "Portas remotas:", + "resolution": "Resolução:", + "savelogs": "Guardar registos", + "status": "Ligação:", + "transport": "Transporte:", + "transport_plural": "Transportes:", + "video_ssrc": "Vídeo SSRC:", + "yes": "sim" + }, + "dateUtils": { + "earlier": "Mais cedo", + "today": "Hoje", + "yesterday": "Ontem" + }, + "deepLinking": { + "appNotInstalled": "Precisa da aplicação móvel {{app}} para participar na reunião com o seu telefone.", + "description": "Não aconteceu nada? Tentámos iniciar a sua reunião na aplicação desktop {{app}}. Tente novamente ou inicie-a na aplicação web {{app}}.", + "descriptionNew": "Não aconteceu nada? Tentámos iniciar a sua reunião na aplicação desktop {{app}}.

Pode tentar novamente ou iniciá-la na web.", + "descriptionWithoutWeb": "Não aconteceu nada? Tentamos iniciar a sua reunião na aplicação desktop {{app}}.", + "downloadApp": "Descarregar a aplicação", + "downloadMobileApp": "Descarregar da App Store", + "ifDoNotHaveApp": "Se ainda não tem a aplicação:", + "ifHaveApp": "Se já tem a aplicação:", + "joinInApp": "Participe nesta reunião utilizando a aplicação", + "joinInAppNew": "Entrar pela aplicação", + "joinInBrowser": "Entrar pelo navegador de Internet", + "launchMeetingLabel": "Como deseja entrar nesta reunião?", + "launchWebButton": "Iniciar pelo navegador de Internet", + "noDesktopApp": "Não tem a aplicação?", + "noMobileApp": "Não tem a aplicação?", + "or": "OU", + "termsAndConditions": "Ao continuar, concorda com os nossos termos & condições.", + "title": "Iniciando a sua reunião na {{app}}…", + "titleNew": "Iniciando a sua reunião…", + "tryAgainButton": "Tente novamente no desktop", + "unsupportedBrowser": "Parece que está a usar um navegador que não suportamos." + }, + "defaultLink": "ex.: {{url}}", + "defaultNickname": "ex.: João Dias", + "deviceError": { + "cameraError": "Falha ao aceder à sua câmara", + "cameraPermission": "Erro ao obter permissão para a câmara", + "microphoneError": "Falha ao aceder ao seu microfone", + "microphonePermission": "Erro ao obter permissão para o microfone" + }, + "deviceSelection": { + "hid": { + "callControl": "Controlo de chamadas", + "connectedDevices": "Dispositivos ligados:", + "deleteDevice": "Apagar dispositivo", + "pairDevice": "Emparelhar dispositivo" + }, + "noPermission": "Permissão não concedida", + "previewUnavailable": "Visualização indisponível", + "selectADevice": "Selecione um dispositivo", + "testAudio": "Teste" + }, + "dialIn": { + "screenTitle": "Resumo da marcação" + }, + "dialOut": { + "statusMessage": "está agora {{status}}" + }, + "dialog": { + "Back": "Voltar", + "Cancel": "Cancelar", + "IamHost": "Iniciar sessão", + "Ok": "OK", + "Remove": "Remover", + "Share": "Partilhar", + "Submit": "Submeter", + "Understand": "Entendo, mantenha-me em silêncio por enquanto.", + "UnderstandAndUnmute": "Entendo, por favor, desative o silêncio.", + "WaitForHostMsg": "A conferência ainda não começou porque ainda não chegaram moderadores. Se quiser ser um moderador, inicie a sessão. Caso contrário, aguarde.", + "WaitForHostNoAuthMsg": "A conferência ainda não começou porque ainda não chegaram os moderadores. Por favor, aguarde.", + "WaitingForHostButton": "Esperar pelo moderador", + "WaitingForHostTitle": "À espera de um moderador…", + "Yes": "Sim", + "accessibilityLabel": { + "Cancel": "Cancelar (sair da caixa de diálogo)", + "Ok": "OK (guardar e sair da caixa de diálogo)", + "close": "Fechar caixa de diálogo", + "liveStreaming": "Transmissão em direto", + "sharingTabs": "Opções de partilha" + }, + "add": "Adicionar", + "addMeetingNote": "Acrescentar uma nota sobre esta reunião", + "addOptionalNote": "Adicionar uma nota (opcional):", + "allow": "Permitir", + "allowToggleCameraDialog": "Permite que {{initiatorName}} alterne o modo de visualização da câmara?", + "allowToggleCameraTitle": "Permitir alternar a câmara?", + "alreadySharedVideoMsg": "Outro participante já está a partilhar um vídeo. Esta conferência permite apenas um vídeo partilhado de cada vez.", + "alreadySharedVideoTitle": "Só é permitido um vídeo partilhado de cada vez", + "applicationWindow": "Janela de aplicação", + "authenticationRequired": "Autenticação necessária", + "cameraCaptureDialog": { + "description": "Tire e envie uma foto usando a câmara do seu telemóvel", + "ok": "Ligar a câmara", + "reject": "Agora não", + "title": "Tire uma foto" + }, + "cameraConstraintFailedError": "A sua câmara não satisfaz algumas das restrições exigidas.", + "cameraNotFoundError": "A câmara não foi encontrada.", + "cameraNotSendingData": "Não podemos aceder à sua câmara. Verifique se outra aplicação está a utilizar este dispositivo, seleccione outro dispositivo do menu de definições ou tente recarregar a aplicação.", + "cameraNotSendingDataTitle": "Não é possível aceder à câmara", + "cameraPermissionDeniedError": "Não concedeu autorização para utilizar a sua câmara. Ainda pode participar na conferência, mas outros não o verão. Use o botão da câmara na barra de endereço para corrigir isto.", + "cameraTimeoutError": "Não foi possível iniciar a fonte de vídeo. Tempo limite expirado!", + "cameraUnknownError": "Não é possível utilizar a câmara por uma razão desconhecida.", + "cameraUnsupportedResolutionError": "A sua câmara não suporta a resolução de vídeo necessária.", + "close": "Fechar", + "conferenceDisconnectMsg": "Poderá querer verificar a sua ligação à rede. Reconexão em {{seconds}} seg…", + "conferenceDisconnectTitle": "Foi desconectado.", + "conferenceReloadMsg": "Estamos a tentar resolver isto. Reconexão em {{seconds}} seg…", + "conferenceReloadTitle": "Infelizmente, algo correu mal.", + "confirm": "Confirme", + "confirmBack": "Voltar", + "confirmNo": "Não", + "confirmYes": "Sim", + "connectError": "Oops! Algo correu mal e não conseguimos estabelecer uma ligação com a conferência.", + "connectErrorWithMsg": "Oops! Algo correu mal e não conseguimos estabelecer uma ligação com a conferência: {{msg}}", + "connecting": "A ligar", + "contactSupport": "Contacte o suporte", + "copied": "Copiado", + "copy": "Cópia", + "demoteParticipantDialog": "Tem a certeza de que deseja mover este participante para espectador?", + "demoteParticipantTitle": "Mover para espectador", + "dismiss": "Dispensar", + "displayNameRequired": "Olá! Qual é o seu nome?", + "done": "Feito", + "e2eeDescription": "A encriptação de ponta a ponta é actualmente EXPERIMENTAL. Tenha em mente que ligar a encriptação de ponta a ponta irá efectivamente desactivar os serviços fornecidos do lado do servidor, tais como: participação telefónica. Tenha também em mente que o encontro só funcionará para pessoas que se juntem a partir de browsers com suporte para \"insertable streams\".", + "e2eeDisabledDueToMaxModeDescription": "Não pode permitir a encriptação de ponta a ponta devido ao grande número de participantes na conferência.", + "e2eeLabel": "Habilitar encriptação de ponta a ponta", + "e2eeWarning": "AVISO: Nem todos os participantes neste encontro parecem ter apoio para a encriptação de ponta a ponta. Se o permitir, eles não o poderão ver nem ouvir.", + "e2eeWillDisableDueToMaxModeDescription": "AVISO: A encriptação de ponta a ponta será automaticamente desativada se mais participantes aderirem à conferência.", + "embedMeeting": "Embutir reunião", + "enterDisplayName": "Digite o seu nome", + "error": "Erro", + "errorRoomCreationRestriction": "Tentou juntar-se demasiado depressa, por favor volte mais tarde.", + "gracefulShutdown": "O nosso serviço está atualmente em manutenção. Por favor, tente novamente mais tarde.", + "grantModeratorDialog": "Tem a certeza que quer conceder direitos de moderador a {{participantName}}?", + "grantModeratorTitle": "Conceder direitos de moderador", + "hide": "Esconder", + "hideShareAudioHelper": "Não mostrar esta caixa de diálogo novamente", + "incorrectPassword": "Nome de utilizador ou palavra-passe incorretos", + "incorrectRoomLockPassword": "Palavra-passe incorreta", + "internalError": "Oops! Alguma coisa correu mal. Ocorreu o seguinte erro: {{error}}", + "internalErrorTitle": "Erro interno", + "kickMessage": "Pode contactar {{participantDisplayName}} para mais detalhes.", + "kickParticipantButton": "Expulsar", + "kickParticipantDialog": "Tem a certeza que quer expulsar este participante?", + "kickParticipantTitle": "Expulsar este participante?", + "kickSystemTitle": "Ai! Foste expulso da reunião.", + "kickTitle": "Ai! {{participantDisplayName}} expulsou-o da reunião", + "learnMore": "saiba mais", + "linkMeeting": "Link da reunião", + "linkMeetingTitle": "Link da reunião à Força de Vendas", + "liveStreaming": "Transmissão em direto", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Não é possível enquanto a gravação estiver activa", + "localUserControls": "Controlos locais de utilizador", + "lockMessage": "Falha no bloqueio da conferência.", + "lockRoom": "Adicionar reunião $t(lockRoomPassword)", + "lockTitle": "Bloqueio falhado", + "login": "Entrar", + "loginQuestion": "Tem a certeza de que pretende iniciar sessão e abandonar a conferência?", + "logoutQuestion": "Tem a certeza de que quer terminar a sessão e sair da conferência?", + "logoutTitle": "Sair", + "maxUsersLimitReached": "O limite para o número máximo de participantes foi atingido. A conferência está cheia. Por favor contacte o proprietário da reunião ou tente novamente mais tarde!", + "maxUsersLimitReachedTitle": "Limite máximo de participantes atingido", + "micConstraintFailedError": "O seu microfone não satisfaz algumas das restrições exigidas.", + "micNotFoundError": "O microfone não foi encontrado.", + "micNotSendingData": "Vá às definições do seu computador para desligar o seu microfone e ajustar o seu nível", + "micNotSendingDataTitle": "O seu microfone está silenciado pelas definições do seu sistema", + "micPermissionDeniedError": "Não concedeu autorização para utilizar o seu microfone. Ainda pode participar na conferência, mas outros não o ouvirão. Use o botão da câmara na barra de endereço para corrigir isto.", + "micTimeoutError": "Não foi possível iniciar a fonte de áudio. Tempo limite expirado!", + "micUnknownError": "Não pode usar microfone por uma razão desconhecida.", + "moderationAudioLabel": "Permitir aos não moderadores ligar o som", + "moderationDesktopLabel": "Permitir que não moderadores partilhem o seu ecrã", + "moderationVideoLabel": "Permitir que não moderadores iniciem os seus vídeos", + "muteEveryoneDialog": "Os participantes podem ligar o som a qualquer momento.", + "muteEveryoneDialogModerationOn": "Os participantes podem enviar um pedido para falar a qualquer momento.", + "muteEveryoneElseDialog": "Uma vez silenciados, não poderá reativá-los, mas eles podem ligar o microfone a qualquer momento.", + "muteEveryoneElseTitle": "Silenciar todos excepto {{whom}}?", + "muteEveryoneElsesDesktopDialog": "Depois que o compartilhamento for interrompido, não será possível reiniciá-lo, mas eles poderão fazê-lo a qualquer momento.", + "muteEveryoneElsesDesktopTitle": "SInterromper a partilha de ecrã de todos, exceto {{whom}}?", + "muteEveryoneElsesVideoDialog": "Quando a câmara for desligada, não poderá voltar a ligá-la, mas eles podem voltar a ligá-la em qualquer momento.", + "muteEveryoneElsesVideoTitle": "Parar o vídeo de todos excepto {{whom}}?", + "muteEveryoneSelf": "você mesmo", + "muteEveryoneStartMuted": "A partir de agora, toda a gente começa a ficar calada", + "muteEveryoneTitle": "Silenciar toda a gente?", + "muteEveryonesDesktopDialog": "Os participantes podem partilhar o seu ecrã a qualquer momento.", + "muteEveryonesDesktopDialogModerationOn": "Os participantes podem enviar um pedido para partilhar o seu ecrã a qualquer momento.", + "muteEveryonesDesktopTitle": "Interromper a partilha de ecrã de todos?", + "muteEveryonesVideoDialog": "Os participantes podem ligar a sua câmara a qualquer momento.", + "muteEveryonesVideoDialogModerationOn": "Os participantes podem enviar um pedido para ligar a sua câmara a qualquer momento.", + "muteEveryonesVideoDialogOk": "Desativar", + "muteEveryonesVideoTitle": "Desligar a câmara de todos?", + "muteParticipantBody": "Não poderá reativá-los, mas eles podem reativar-se a qualquer momento.", + "muteParticipantButton": "Silenciar", + "muteParticipantsDesktopBody": "Não poderá iniciar a partilha de ecrã deles, mas eles podem fazê-lo a qualquer momento.", + "muteParticipantsDesktopBodyModerationOn": "Não será possível iniciar a partilha de ecrã nem para si nem para eles.", + "muteParticipantsDesktopButton": "Parar a partilha de ecrã", + "muteParticipantsDesktopDialog": "Tem a certeza de que deseja desativar a partilha de ecrã deste participante? Não será possível reiniciá-la, mas ele poderá fazê-lo a qualquer momento.", + "muteParticipantsDesktopDialogModerationOn": "Tem a certeza de que deseja desativar a partilha de ecrã deste participante? Não será possível reativar o ecrã, nem para si nem para ele.", + "muteParticipantsDesktopTitle": "Desativar a partilha de ecrã deste participante?", + "muteParticipantsVideoBody": "Não poderá voltar a ligar a câmara, mas eles podem voltar a ligá-la a qualquer momento.", + "muteParticipantsVideoBodyModerationOn": "Não será capaz de voltar a ligar a câmara e eles também não.", + "muteParticipantsVideoButton": "Parar vídeo", + "muteParticipantsVideoDialog": "Tem a certeza de que quer desativar a câmara deste participante? Não poderá voltar a ativar a câmara, mas eles podem voltar a reativá-la a qualquer momento.", + "muteParticipantsVideoDialogModerationOn": "Tem a certeza de que quer desligar a câmara deste participante? Não será capaz de voltar a ligar a câmara e eles também não.", + "muteParticipantsVideoTitle": "Desativar a câmara deste participante?", + "noDropboxToken": "Nenhum token do Dropbox válido", + "password": "Palavra-passe", + "passwordLabel": "A reunião foi encerrada por um participante. Por favor, introduza a $t(lockRoomPassword) para participar.", + "passwordNotSupported": "A definição na reunião $t(lockRoomPassword) não é suportada.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) não é suportada.", + "passwordRequired": "$t(lockRoomPasswordUppercase) necessário", + "permissionCameraRequiredError": "É necessária a autorização da câmara para participar em conferências com vídeo. Por favor, conceda-a em Definições", + "permissionErrorTitle": "Permissão necessária", + "permissionMicRequiredError": "É necessária a permissão do microfone para participar em conferências com áudio. Por favor, conceda-a em Definições", + "readMore": "mais", + "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.", + "recordingInProgressTitle": "Gravação em andamento", + "rejoinNow": "Reingressar agora", + "remoteControlAllowedMessage": "{{user}} aceitou o seu pedido de controlo remoto!", + "remoteControlDeniedMessage": "{{user}} rejeitou o seu pedido de controlo remoto!", + "remoteControlErrorMessage": "Ocorreu um erro ao tentar solicitar permissões de controlo remoto de {{user}}!", + "remoteControlRequestMessage": "Vai permitir que {{user}} controle remotamente o seu ambiente de trabalho?", + "remoteControlShareScreenWarning": "Note que se pressionar \"Permitir\" irá partilhar o seu ecrã!", + "remoteControlStopMessage": "A sessão de controlo remoto terminou!", + "remoteControlTitle": "Controlo remoto da área de trabalho", + "remoteUserControls": "Controlos remotos do utilizador {{username}}", + "removePassword": "Remover $t(lockRoomPassword)", + "removeSharedVideoMsg": "Tem a certeza de que gostaria de remover o seu vídeo partilhado?", + "removeSharedVideoTitle": "Remover vídeo partilhado", + "renameBreakoutRoomLabel": "Nome da sala", + "renameBreakoutRoomTitle": "Mudar o nome da sala", + "reservationError": "Erro no sistema de reservas", + "reservationErrorMsg": "Código de erro: {{code}}, mensagem: {{msg}}", + "retry": "Tentativa", + "screenSharingAudio": "Partilhar áudio", + "screenSharingFailed": "Oops! Algo correu mal, não fomos capazes de começar a partilhar o ecrã!", + "screenSharingFailedTitle": "A partilha de ecrã falhou!", + "screenSharingPermissionDeniedError": "Oops! Alguma coisa correu mal com as vossas permissões de partilha de ecrã. Por favor, volte a carregar e tente novamente.", + "searchInSalesforce": "Pesquisar na Salesforce", + "searchResults": "Resultados da pesquisa({{count}})", + "searchResultsDetailsError": "Algo correu mal enquanto se recuperava os dados do proprietário.", + "searchResultsError": "Alguma coisa correu mal durante a recuperação de dados.", + "searchResultsNotFound": "Não foram encontrados resultados de pesquisa.", + "searchResultsTryAgain": "Tente usar palavras-chave alternativas.", + "sendPrivateMessage": "Recebeu recentemente uma mensagem privada. Pretende responder a essa mensagem em privado, ou quer enviar a sua mensagem ao grupo?", + "sendPrivateMessageCancel": "Enviar para o grupo", + "sendPrivateMessageOk": "Enviar em privado", + "sendPrivateMessageTitle": "Enviar em privado?", + "serviceUnavailable": "Serviço indisponível", + "sessTerminated": "Chamada terminada", + "sessTerminatedReason": "A reunião foi encerrada", + "sessionRestarted": "Chamada reiniciada devido a um problema de ligação.", + "shareAudio": "Continuar", + "shareAudioAltText": "Para partilhar o conteúdo pretendido, navegue até ao \"Separador do navegador\", seleccione o conteúdo, active a marca de verificação \"Partilhar áudio\" e, em seguida, clique no botão \"Partilhar\"", + "shareAudioTitle": "Como partilhar áudio", + "shareAudioWarningD1": "precisa de parar a partilha do ecrã antes de partilhar o seu áudio.", + "shareAudioWarningD2": "precisa de reiniciar a sua partilha de ecrã e verificar a opção \"partilhar áudio\".", + "shareAudioWarningH1": "Se quiser partilhar apenas áudio:", + "shareAudioWarningTitle": "Tem de parar a partilha de ecrã antes de partilhar áudio", + "shareMediaWarningGenericH2": "Se quiser partilhar o seu ecrã e áudio", + "shareScreenWarningD1": "precisa de parar a partilha de áudio antes de partilhar o seu ecrã.", + "shareScreenWarningD2": "é necessário parar a partilha de áudio, iniciar a partilha de ecrã e verificar a opção \"partilhar áudio\".", + "shareScreenWarningH1": "Se quiser partilhar apenas o seu ecrã:", + "shareScreenWarningTitle": "Tem de parar a partilha de áudio antes de partilhar o seu ecrã", + "shareVideoConfirmPlay": "Está prestes a abrir um site externo. Deseja continuar?", + "shareVideoConfirmPlayTitle": "{{name}} partilhou um vídeo consigo.", + "shareVideoLinkError": "Oops, este vídeo não pode ser reproduzido.", + "shareVideoLinkStopped": "O vídeo de {{name}} foi interrompido.", + "shareVideoTitle": "Partilhar vídeo", + "shareYourScreen": "Partilhe o seu ecrã", + "shareYourScreenDisabled": "Partilha de ecrã desactivada.", + "sharedVideoDialogError": "Erro: URL inválido", + "sharedVideoLinkPlaceholder": "Link do YouTube ou link direto do vídeo", + "show": "Mostrar", + "start": "Iniciar ", + "startLiveStreaming": "Iniciar a transmissão em direto", + "startRecording": "Iniciar gravação", + "startRemoteControlErrorMessage": "Ocorreu um erro ao tentar iniciar a sessão de controlo remoto!", + "stopLiveStreaming": "Parar a transmissão em direto", + "stopRecording": "Parar gravação", + "stopRecordingWarning": "Tem a certeza de que gostaria de parar a gravação?", + "stopStreamingWarning": "Tem a certeza de que gostaria de parar a transmissão em direto?", + "streamKey": "Chave de transmissão em direto", + "thankYou": "Obrigado por utilizar {{appName}}!", + "token": "token", + "tokenAuthFailed": "Desculpe, não está autorizado a juntar-se a esta chamada.", + "tokenAuthFailedReason": { + "audInvalid": "Valor `aud` inválido. Deveria ser `jitsi`.", + "contextNotFound": "O objeto `context` está em falta na carga útil.", + "expInvalid": "Valor `exp` inválido.", + "featureInvalid": "Funcionalidade inválida: {{feature}}, muito provavelmente ainda não implementada.", + "featureValueInvalid": "Valor inválido para a caraterística: {{feature}}.", + "featuresNotFound": "O objeto `features` está em falta na carga útil.", + "headerNotFound": "Falta o cabeçalho.", + "issInvalid": "Valor `iss` inválido. Deveria ser `chat`.", + "kidMismatch": "O ID da chave (kid) não corresponde ao sub.", + "kidNotFound": "Falta o ID da chave (kid)", + "nbfFuture": "O valor `nbf` está no futuro.", + "nbfInvalid": "Valor `nbf` inválido.", + "payloadNotFound": "Falta a carga útil.", + "tokenExpired": "O token expirou." + }, + "tokenAuthFailedTitle": "A autenticação falhou", + "tokenAuthFailedWithReasons": "Lamentamos, mas não está autorizado a participar nesta chamada. Razões possíveis: {{reason}}", + "tokenAuthUnsupported": "O URL de token não é suportado.", + "transcribing": "Transcrição", + "unlockRoom": "Retirar reunião $t(lockRoomPassword)", + "user": "Utilizador", + "userIdentifier": "Identificador do utilizador", + "userPassword": "Palavra-passe do utilizador", + "verifyParticipantConfirm": "Coincidem", + "verifyParticipantDismiss": "Não coincidem", + "verifyParticipantQuestion": "EXPERIMENTAL: Perguntar ao participante {{participantName}} se vêem o mesmo conteúdo, na mesma ordem.", + "verifyParticipantTitle": "Verificação pelo utilizador", + "videoLink": "Link do vídeo", + "viewUpgradeOptions": "Ver opções de actualização", + "viewUpgradeOptionsContent": "Para obter acesso ilimitado a funcionalidades premium como gravação, transcrições, RTMP Streaming & mais, terá de actualizar o seu plano.", + "viewUpgradeOptionsTitle": "Descobriu uma característica premium!", + "whiteboardLimitContent": "Lamentamos, mas o limite de utilizadores do quadro branco foi atingido.", + "whiteboardLimitReference": "Para mais informações consultar", + "whiteboardLimitReferenceUrl": "o nosso sítio Web", + "whiteboardLimitTitle": "Restrição da utilização do quadro branco", + "yourEntireScreen": "O seu ecrã inteiro" + }, + "documentSharing": { + "title": "Documento compartilhado" + }, + "e2ee": { + "labelToolTip": "A comunicação áudio e vídeo nesta chamada é encriptada de ponta a ponta" + }, + "embedMeeting": { + "title": "Incorporar esta reunião" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "A sua escolha: {{rating}}" + }, + "average": "Média", + "bad": "Má", + "detailsLabel": "Conte-nos mais sobre isso.", + "good": "Boa", + "rateExperience": "Avalie sua experiência na reunião", + "star": "Estrela", + "veryBad": "Muito má", + "veryGood": "Muito boa" + }, + "fileSharing": { + "downloadFailedDescription": "Por favor, tente novamente.", + "downloadFailedTitle": "Falha no descarregar", + "downloadFile": "Descarregar", + "dragAndDrop": "Arraste e solte os ficheiros aqui ou em qualquer lugar do ecrã", + "fileAlreadyUploaded": "O ficheiro já foi carregado para esta reunião.", + "fileTooLargeDescription": "Certifique-se de que o ficheiro não exceda {{ maxFileSize }}.", + "fileTooLargeTitle": "O ficheiro selecionado é muito grande", + "fileUploadProgress": "Progresso do envio do ficheiro", + "fileUploadedSuccessfully": "Ficheiro carregado com sucesso", + "removeFile": "Remover", + "uploadFailedDescription": "Por favor, tente novamente.", + "uploadFailedTitle": "Falha ao carregar", + "uploadFile": "Partilhar ficheiro" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniaturas de vídeo" + } + }, + "giphy": { + "noResults": "Não foram encontrados resultados :(", + "search": "Procurar no GIPHY" + }, + "incomingCall": { + "answer": "Responder", + "audioCallTitle": "Chamada recebida", + "decline": "Recusar", + "productLabel": "do Jitsi Meet", + "videoCallTitle": "Chamada de vídeo recebida" + }, + "info": { + "accessibilityLabel": "Mostrar informação", + "addPassword": "Adicionar $t(lockRoomPassword)", + "cancelPassword": "Cancelar $t(lockRoomPassword)", + "conferenceURL": "Link:", + "copyNumber": "Copiar número", + "country": "País", + "dialANumber": "Para se juntar à sua reunião, marque um destes números e depois introduza o PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Desculpe, a marcação telefónica não é de momento suportada.", + "dialInNumber": "Marcar:", + "dialInSummaryError": "Ocorreu um erro durante a captura de informação da marcação. Por favor, tente novamente mais tarde.", + "dialInTollFree": "Ligação gratuita", + "genericError": "Whoops, algo correu mal.", + "inviteLiveStream": "Para ver a transmissão em direto desta reunião, clique neste link: {{url}}", + "invitePhone": "Para entrar por telefone, toque aqui: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "À procura de um número de telefone diferente?\nVeja os números de telefone da reunião: {{url}}\n\n\nSe ligar através de um telefone de quarto, junte-se com o microfone desligado: {{silentUrl}}", + "inviteSipEndpoint": "Para entrar utilizando o endereço SIP, insira este: {{sipUri}}", + "inviteTextiOSInviteUrl": "Clique no seguinte link para entrar: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Se ligar através de um telefone de quarto, utilize este link para entrar com o microfone desligado: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} está a convidá-lo para uma reunião.", + "inviteTextiOSPhone": "Para entrar através do telefone, utilize este número: {{number}},,{{conferenceID}}#. Se estiver à procura de um número diferente, esta é a lista completa: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Está convidado a entrar numa reunião.", + "inviteURLFirstPartPersonal": "{{name}} está a convidá-lo para uma reunião.\n", + "inviteURLSecondPart": "\nEntrar na reunião:\n{{url}}\n", + "label": "Informação da reunião", + "liveStreamURL": "Transmissão em direto:", + "moreNumbers": "Mais números", + "noNumbers": "Sem números de telefone.", + "noPassword": "Nenhum", + "noRoom": "Não foi especificado nenhuma sala para ligar.", + "noWhiteboard": "Não foi possível carregar o quadro branco.", + "numbers": "Números para entrar por chamada telefónica", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "atingiu o limite do seu plano.", + "sip": "Endereço SIP", + "sipAudioOnly": "Endereço SIP só de áudio", + "title": "Partilhar", + "tooltip": "Partilhar link e acesso telefónico para esta reunião", + "upgradeOptions": "Por favor, verifique as opções de atualização em", + "whiteboardError": "Erro ao carregar o quadro branco. Por favor, tente novamente mais tarde." + }, + "inlineDialogFailure": { + "msg": "Tivemos um pequeno problema.", + "retry": "Tentar novamente", + "support": "Suporte", + "supportMsg": "Se isso continuar acontecendo, chegar a" + }, + "inviteDialog": { + "alertText": "Não foi possível convidar alguns participantes.", + "header": "Convidar", + "searchCallOnlyPlaceholder": "Digite o número do telefone", + "searchPeopleOnlyPlaceholder": "Buscar participantes", + "searchPlaceholder": "Participante ou nº de telefone", + "send": "Enviar" + }, + "jitsiHome": "Logo de {{logo}}, redireciona para página inicial", + "keyboardShortcuts": { + "focusLocal": "Focar no seu vídeo", + "focusRemote": "Focar no vídeo de outro participante", + "fullScreen": "Entrar ou sair do ecrã completo", + "giphyMenu": "Ativar/Desativar o menu GIPHY", + "keyboardShortcuts": "Atalhos de teclado", + "localRecording": "Mostrar ou ocultar controlos de gravação local", + "mute": "Ligar ou desligar o seu microfone", + "pushToTalk": "Pressione para falar", + "raiseHand": "Levantar ou baixar a sua mão", + "showSpeakerStats": "Mostrar as estatísticas dos participantes", + "toggleChat": "Abrir ou fechar o painel de chat", + "toggleFilmstrip": "Mostrar ou ocultar miniaturas de vídeo", + "toggleParticipantsPane": "Mostrar ou ocultar o painel de participantes", + "toggleScreensharing": "Alternar entre a partilha de câmara e de ecrã", + "toggleShortcuts": "Mostrar ou ocultar atalhos de teclado", + "videoMute": "Iniciar ou parar a sua câmara" + }, + "largeVideo": { + "screenIsShared": "Está a partilhar o seu ecrã", + "showMeWhatImSharing": "Mostre-me o que estou a partilhar" + }, + "liveStreaming": { + "busy": "Estamos trabalhando para liberar os recursos de transmissão. Tente novamente em alguns minutos.", + "busyTitle": "Todas as transmissões estão atualmente ocupadas", + "changeSignIn": "Alternar contas.", + "choose": "Escolha uma transmissão em direto", + "chooseCTA": "Escolha uma opção de transmissão. Está conectado atualmente como {{email}}.", + "enterStreamKey": "Insira sua chave de transmissão em direto do YouTube aqui.", + "error": "Falha na transmissão em direto. Tente de novo.", + "errorAPI": "Ocorreu um erro ao acessar suas transmissões do YouTube. Por favor tente logar novamente.", + "errorLiveStreamNotEnabled": "Transmissão em direto não está ativada em {{email}}. Ative a transmissão em direto ou registre numa conta com transmissão direto ativada.", + "expandedOff": "A transmissão em direto foi encerrada", + "expandedOn": "A reunião está sendo transmitida em direto.", + "expandedPending": "Iniciando a transmissão em direto…", + "failedToStart": "Falha ao iniciar a transmissão em direto", + "getStreamKeyManually": "Não conseguimos buscar nenhuma transmissão em direto. Tente obter sua chave de transmissão em direto no YouTube.", + "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", + "onBy": "{{name}} iniciou a transmissão em direto", + "pending": "Início da transmissão em direto…", + "policyError": "Tentou iniciar uma transmissão ao vivo muito rapidamente. Por favor, tente novamente mais tarde!", + "serviceName": "Serviço de Transmissão em Direto", + "sessionAlreadyActive": "Esta sessão já está a ser gravada ou transmitida em direto.", + "signIn": "Iniciar sessão com o Google", + "signInCTA": "Inicie sessão ou introduza a sua chave de transmissão em direto do YouTube.", + "signOut": "Sair", + "signedInAs": "Atualmente, tem sessão iniciada como:", + "start": "Iniciar uma transmissão em direto", + "streamIdHelp": "O que é isso?", + "title": "Transmissão em direto", + "unavailableTitle": "Transmissão em direto indisponível", + "youtubeTerms": "Termos de serviços do YouTube" + }, + "lobby": { + "backToKnockModeButton": "Peça para aderir", + "chat": "Chat", + "dialogTitle": "Modo sala de espera", + "disableDialogContent": "O modo sala de espera está actualmente activada. Esta característica assegura que os participantes indesejados não possam juntar-se à sua reunião. Quer desativá-la?", + "disableDialogSubmit": "Desativar", + "emailField": "Introduza o seu endereço de email", + "enableDialogPasswordField": "Definir senha (opcional)", + "enableDialogSubmit": "Habilitar", + "enableDialogText": "O modo sala de espera permite-lhe proteger a sua reunião apenas permitindo a entrada de pessoas após uma aprovação formal por um moderador.", + "enterPasswordButton": "Introduza a senha da reunião", + "enterPasswordTitle": "Introduzir a senha para participar na reunião", + "errorMissingPassword": "Por favor introduza a senha da reunião", + "invalidPassword": "Senha inválida", + "joinRejectedMessage": "O seu pedido de adesão foi rejeitado por um moderador.", + "joinRejectedTitle": "Pedido de adesão rejeitado.", + "joinTitle": "Junte-se à reunião", + "joinWithPasswordMessage": "Tentando aderir com senha, por favor aguarde…", + "joiningMessage": "Participará na reunião assim que alguém aceitar o seu pedido", + "joiningTitle": "Pedir para participar na reunião…", + "joiningWithPasswordTitle": "Participando com senha…", + "knockButton": "Pedir para participar", + "knockTitle": "Alguém quer juntar-se à reunião", + "knockingParticipantList": "Lista de participantes a expulsar", + "lobbyChatStartedNotification": "{{moderator}} iniciou com {{attendee}} uma conversa na sala de espera", + "lobbyChatStartedTitle": "{{moderator}} iniciou consigo uma conversa na sala de espera.", + "lobbyClosed": "A sala de espera foi encerrada.", + "nameField": "Introduza o seu nome", + "notificationLobbyAccessDenied": "{{targetParticipantName}} foi recusada a adesão por {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} foi autorizado a aderir por {{originParticipantName}}", + "notificationLobbyDisabled": "A sala de espera foi desactivada por {{originParticipantName}}", + "notificationLobbyEnabled": "A sala de espera foi activada por {{originParticipantName}}", + "notificationTitle": "Sala de espera", + "passwordJoinButton": "Solicitar", + "title": "Sala de espera", + "toggleLabel": "Ativar sala de espera" + }, + "localRecording": { + "clientState": { + "off": "Desligado", + "on": "Ligado", + "unknown": "Desconhecido" + }, + "dialogTitle": "Controlos da Gravação Local", + "duration": "Duração", + "durationNA": "N/D", + "encoding": "Codificando", + "label": "LOR", + "labelToolTip": "Gravação local ativada", + "localRecording": "Gravação local", + "me": "Eu", + "messages": { + "engaged": "Gravação local iniciada.", + "finished": "Sessão de gravação {{token}} terminada. Por favor, envie o arquivo gravado para o moderador.", + "finishedModerator": "Sessão de gravação {{token}} terminada. A gravação da faixa local foi salva. Por favor, peça aos outros participantes para enviar suas gravações.", + "notModerator": "Não é o moderador. Não pode iniciar ou parar a gravação local." + }, + "moderator": "Moderador", + "no": "Não", + "participant": "Participante", + "participantStats": "Estatísticas dos Participantes", + "selectTabTitle": "🎥 Por favor selecione este separador para gravação", + "sessionToken": "Token de Sessão", + "start": "Iniciar gravação", + "stop": "Parar gravação", + "stopping": "A parar a gravação", + "wait": "Aguarde enquanto guardamos a sua gravação", + "yes": "Sim" + }, + "lockRoomPassword": "senha", + "lockRoomPasswordUppercase": "Senha", + "lonelyMeetingExperience": { + "button": "Convidar outros", + "youAreAlone": "É o único na reunião" + }, + "me": "eu", + "notify": { + "OldElectronAPPTitle": "Vulnerabilidade de segurança!", + "allowAll": "Permitir tudo", + "allowAudio": "Permitir áudio", + "allowDesktop": "Permitir partilha de ecrã", + "allowVideo": "Permitir vídeo", + "allowedUnmute": "Pode ligar o seu microfone, ligar a sua câmara ou partilhar o seu ecrã.", + "audioUnmuteBlockedDescription": "A operação de ligar o microfone foi temporariamente bloqueada devido aos limites do sistema.", + "audioUnmuteBlockedTitle": "Ligar microfone bloqueado!", + "chatMessages": "Mensagens de chat", + "connectedOneMember": "{{name}} entrou na reunião", + "connectedThreePlusMembers": "{{name}} e muitos outros entraram na reunião", + "connectedTwoMembers": "{{first}} e {{second}} entraram na reunião", + "connectionFailed": "Falha na ligação. Por favor, tente novamente mais tarde!", + "dataChannelClosed": "A qualidade do vídeo pode ser afetada", + "dataChannelClosedDescription": "O canal de ponte está em baixo e, por isso, a qualidade de vídeo pode estar limitada à sua definição mais baixa.", + "dataChannelClosedDescriptionWithAudio": "O canal de ponte está em baixo, pelo que podem ocorrer interrupções no áudio e no vídeo.", + "dataChannelClosedWithAudio": "A qualidade do áudio e do vídeo pode ser afetada", + "desktopMutedRemotelyTitle": "A partilha do seu ecrã foi interrompida por {{participantDisplayName}}", + "disabledIframe": "A incorporação destina-se apenas a fins de demonstração, pelo que esta chamada será desligada em {{timeout}} minutos.", + "disabledIframeSecondaryNative": "A incorporação de {{domain}} destina-se apenas a fins de demonstração, pelo que esta chamada será desligada em {{timeout}} minutos.", + "disabledIframeSecondaryWeb": "A incorporação de {{domain}} destina-se apenas a fins de demonstração, pelo que esta chamada será desligada em {{timeout}} minutos. Utilize Jitsi as a Service para incorporação em produção!", + "disconnected": "desconectado", + "displayNotifications": "Mostrar notificações para", + "dontRemindMe": "Não me lembre", + "focus": "Foco da conferência", + "focusFail": "{{component}} não disponĩvel - tente em {{ms}} seg.", + "gifsMenu": "GIPHY", + "groupTitle": "Notificações", + "hostAskedUnmute": "O moderador gostaria que participasse.", + "invalidTenant": "Tenant inválido", + "invalidTenantHyphenDescription": "O tenant que está a utilizar é inválido (começa ou termina com '-').", + "invalidTenantLengthDescription": "O tenant que está a utilizar é demasiado longo.", + "invitedOneMember": "{{displayName}} foi convidado", + "invitedThreePlusMembers": "{{name}} e {{count}} outros foram convidados", + "invitedTwoMembers": "{{first}} e {{second}} foram convidados", + "joinMeeting": "Entrar", + "kickParticipant": "{{kicked}} foi expulso por {{kicker}}", + "leftOneMember": "{{name}} deixou a reunião", + "leftThreePlusMembers": "{{name}} e muitos outros deixaram a reunião", + "leftTwoMembers": "{{first}} e {{second}} deixaram a reunião", + "linkToSalesforce": "Link para a Salesforce", + "linkToSalesforceDescription": "Pode ligar o resumo da reunião a um objecto da Salesforce.", + "linkToSalesforceError": "Falha na ligação da reunião à Salesforce", + "linkToSalesforceKey": "Ligar esta reunião", + "linkToSalesforceProgress": "A ligar a reunião à Salesforce…", + "linkToSalesforceSuccess": "A reunião foi ligada à Salesforce", + "localRecordingStarted": "{{name}} iniciou uma gravação local.", + "localRecordingStopped": "{{name}} parou uma gravação local.", + "me": "Eu", + "moderationInEffectCSDescription": "Por favor, levantem a mão se quiserem partilhar o vosso ecrã.", + "moderationInEffectCSTitle": "A partilha de ecrã é bloqueada pelo moderador", + "moderationInEffectDescription": "Por favor, levantem a mão se quiserem falar.", + "moderationInEffectTitle": "O seu microfone é silenciado pelo moderador", + "moderationInEffectVideoDescription": "Por favor, levantem a mão se quiserem ligar a sua câmara.", + "moderationInEffectVideoTitle": "A sua câmara é bloqueada pelo moderador", + "moderationRequestFromModerator": "O anfitrião deseja que você ative o som", + "moderationRequestFromParticipant": "Quer falar", + "moderationStartedTitle": "Início da moderação", + "moderationStoppedTitle": "A moderação parou", + "moderationToggleDescription": "pelo {{participantDisplayName}}", + "moderator": "É agora um moderador", + "muted": "Iniciou uma conversa com o microfone desligado.", + "mutedRemotelyDescription": "Pode sempre voltar a ligar o microfone quando estiver pronto para falar. Silencie de volta quando estiver pronto para manter o barulho afastado da reunião.", + "mutedRemotelyTitle": "Foi silenciado pelo {{participantDisplayName}}", + "mutedTitle": "Está silenciado!", + "newDeviceAction": "Usar", + "newDeviceAudioTitle": "Novo dispositivo de áudio detetado", + "newDeviceCameraTitle": "Nova câmara detetada", + "nextToSpeak": "É o próximo na fila para falar", + "noiseSuppressionDesktopAudioDescription": "A supressão de ruído extra não pode ser ativada enquanto estiver a partilhar o áudio do ambiente de trabalho. Desative-a e tente novamente.", + "noiseSuppressionFailedTitle": "Falha ao iniciar a supressão de ruído extra", + "noiseSuppressionStereoDescription": "Atualmente, a supressão extra de ruído não é suportada com áudio estéreo.", + "oldElectronClientDescription1": "Parece estar a utilizar uma versão antiga do cliente Jitsi Meet que tem vulnerabilidades de segurança conhecidas. Por favor, certifique-se de que actualiza a nossa ", + "oldElectronClientDescription2": "compilação mais recente", + "oldElectronClientDescription3": " agora!", + "participantWantsToJoin": "Deseja juntar-se à reunião", + "participantsWantToJoin": "Desejam juntar-se à reunião", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removido por outro participante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) definido por outro participante", + "raiseHandAction": "Levantar a mão", + "raisedHand": "Gostaria de participar.", + "raisedHands": "{{participantName}} e mais {{raisedHands}} pessoas", + "reactionSounds": "Desactivar sons", + "reactionSoundsForAll": "Desativar sons para todos", + "screenShareNoAudio": "A caixa de compartilhar áudio não foi marcada no ecrã de seleção da janela.", + "screenShareNoAudioTitle": "Não foi possível partilhar o áudio do sistema!", + "screenSharingAudioOnlyDescription": "Note por favor que ao partilhar o seu ecrã está a afectar o modo \"Melhor desempenho\" e irá utilizar mais largura de banda.", + "screenSharingAudioOnlyTitle": "Modo \"Melhor desempenho\"", + "selfViewTitle": "Pode sempre reexibir a autovisualização a partir das definições", + "somebody": "Alguém", + "startSilentDescription": "Volte à reunião para habilitar o áudio", + "startSilentTitle": "Entrou sem áudio!", + "suboptimalBrowserWarning": "Tememos que sua experiência de reunião não seja tão boa aqui. Estamos procurando maneiras de melhorar isso, mas até então, tente usar um dos navegadores completamente suportados.", + "suboptimalExperienceTitle": "Alerta do navegador", + "suggestRecordingAction": "Iniciar", + "suggestRecordingDescription": "Gostaria de iniciar uma gravação?", + "suggestRecordingTitle": "Gravar esta reunião", + "unmute": "Ligar microfone", + "unmuteScreen": "Iniciar partilha de ecrã", + "unmuteVideo": "Ligar câmara", + "videoMutedRemotelyDescription": "Pode sempre ligá-la novamente.", + "videoMutedRemotelyTitle": "A sua câmara foi desligada pelo {{participantDisplayName}}.", + "videoUnmuteBlockedDescription": "A operação de ligar a câmara e partilhar o ambiente de trabalho foi temporariamente bloqueada devido aos limites do sistema.", + "videoUnmuteBlockedTitle": "Está bloqueado ligar a câmara e partilhar o ambiente de trabalho!", + "viewLobby": "Ver sala de espera", + "viewParticipants": "Ver participantes", + "viewVisitors": "Visualizar espectadores", + "waitingParticipants": "{{waitingParticipants}} pessoas", + "waitingVisitors": "Espectadores em fila de espera: {{waitingVisitors}}", + "waitingVisitorsTitle": "A reunião ainda não está em direto!", + "whiteboardLimitDescription": "Guarde o seu progresso, pois o limite de utilizadores será atingido em breve e o quadro branco será encerrado.", + "whiteboardLimitTitle": "Utilização do quadro branco" + }, + "participantsPane": { + "actions": { + "admit": "Aceitar", + "admitAll": "Aceitar todos", + "allow": "Permitir que os não moderadores:", + "allowDesktop": "Permitir partilha de ecrã", + "allowVideo": "Permitir vídeo", + "askDesktop": "Pedir para partilhar o ecrã", + "askUnmute": "Pedir para ligar o som", + "audioModeration": "Ligar o microfone deles", + "blockEveryoneMicCamera": "Bloquear o microfone e a câmara de todos", + "breakoutRooms": "Salas simultâneas", + "desktopModeration": "Iniciar partilha de ecrã", + "goLive": "Aceder ao vivo", + "invite": "Convide alguém", + "lowerAllHands": "Baixar todas as mãos", + "lowerHand": "Baixar a mão", + "moreModerationActions": "Mais opções de moderação", + "moreModerationControls": "Mais controlos de moderação", + "moreParticipantOptions": "Mais opções de participantes", + "mute": "Silenciar", + "muteAll": "Silenciar todos", + "muteEveryoneElse": "Silenciar todos os outros", + "reject": "Rejeitar", + "stopDesktop": "Parar a partilha de ecrã", + "stopEveryonesDesktop": "Interromper a partilha de ecrã de todos", + "stopEveryonesVideo": "Desligar a câmara de todos", + "stopVideo": "Desligar a câmara", + "unblockEveryoneMicCamera": "Desbloquear o microfone e a câmara de todos", + "videoModeration": "Ligar a câmara deles" + }, + "close": "Fechar", + "headings": { + "lobby": "Sala de espera ({{count}})", + "participantsList": "Participantes da reunião ({{count}})", + "viewerRequests": "Pedidos dos espectadores {{count}}", + "visitorInQueue": " (à espera {{count}})", + "visitorRequests": " (pedidos {{count}})", + "visitors": "Espectadores ({{count}})", + "visitorsList": "Espectadores ({{count}})", + "waitingLobby": "Aguardam na sala de espera ({{count}})" + }, + "search": "Pesquisar participantes", + "searchDescription": "Comece a digitar para filtrar os participantes", + "title": "Participantes" + }, + "passwordDigitsOnly": "Até {{number}} dígitos", + "passwordSetRemotely": "Definido por outro participante", + "pinParticipant": "{{participantName}} - Afixar", + "pinnedParticipant": "O participante está afixado", + "polls": { + "answer": { + "edit": "Editar", + "send": "Enviar", + "skip": "Ignorar", + "submit": "Submeter" + }, + "by": "Por {{ name }}", + "closeButton": "Fechar sondagem", + "create": { + "addOption": "Adicionar opção", + "answerPlaceholder": "Opção {{index}}", + "cancel": "Cancelar", + "create": "Criar uma sondagem", + "pollOption": "Opção de sondagem {{index}}", + "pollQuestion": "Pergunta de Sondagem", + "questionPlaceholder": "Faça uma pergunta", + "removeOption": "Remover opção", + "save": "Guardar", + "send": "Enviar" + }, + "errors": { + "notUniqueOption": "As opções devem ser únicas" + }, + "notification": { + "description": "Abrir o separador das sondagens para votar", + "title": "Uma nova sondagem foi adicionada a esta reunião" + }, + "results": { + "changeVote": "Mudar o voto", + "empty": "Ainda não há sondagens na reunião.", + "hideDetailedResults": "Ocultar detalhes", + "showDetailedResults": "Mostrar detalhes", + "vote": "Voto" + } + }, + "poweredby": "distribuído por", + "prejoin": { + "audioAndVideoError": "Erro no áudio e vídeo:", + "audioDeviceProblem": "Há um problema com o seu dispositivo de áudio", + "audioOnlyError": "Erro no áudio:", + "audioTrackError": "Não foi possível criar a pista de áudio.", + "callMe": "Ligue-me", + "callMeAtNumber": "Ligue-me para este número:", + "calling": "A chamar", + "configuringDevices": "A configurar os dispositivos…", + "connectedWithAudioQ": "Está ligado com áudio?", + "connection": { + "failed": "Falha no teste de ligação!", + "good": "A sua ligação à Internet parece boa!", + "nonOptimal": "A sua ligação à Internet não é óptima", + "poor": "Tem uma ligação à Internet fraca", + "running": "A realizar teste de ligação..." + }, + "connectionDetails": { + "audioClipping": "Prevemos que o seu áudio tenha cortes.", + "audioHighQuality": "Prevemos que o seu áudio tenha excelente qualidade.", + "audioLowNoVideo": "Prevemos que a qualidade do seu áudio seja baixa e sem vídeo.", + "goodQuality": "Fantástico! A qualidade dos seus meios de comunicação vai ser óptima.", + "noMediaConnectivity": "Não foi possível encontrar uma forma de estabelecer a conectividade dos meios de comunicação para este teste. Isto é tipicamente causado por uma firewall ou NAT.", + "noVideo": "Prevemos que o seu vídeo seja terrível.", + "testFailed": "O teste de ligação encontrou problemas inesperados, mas isso pode não afetar a sua experiência.", + "undetectable": "Se mesmo assim não conseguir fazer chamadas no browser, recomendamos que se certifique de que os seus altifalantes, microfone e câmara estão devidamente configurados, que concedeu ao seu browser direitos de utilização do seu microfone e câmara, e que a versão do seu browser está actualizada. Se mesmo assim tiver problemas em telefonar, deverá contactar o criador da aplicação web.", + "veryPoorConnection": "Prevemos que a qualidade da sua chamada seja realmente terrível.", + "videoFreezing": "Prevemos que o seu vídeo congele, fique preto, e seja pixelizado.", + "videoHighQuality": "Prevemos que o seu vídeo tenha boa qualidade.", + "videoLowQuality": "Prevemos que o seu vídeo tenha baixa qualidade em termos de velocidade de fotogramas e resolução.", + "videoTearing": "Prevemos que o seu vídeo seja pixelizado ou que tenha artefactos visuais." + }, + "copyAndShare": "Copiar e partilhar o link da reunião.", + "dialInMeeting": "Entrar com chamada telefónica", + "dialInPin": "Entrar com chamada telefónica e introduzir o código PIN:", + "dialing": "A marcar", + "doNotShow": "Não volte a mostrar este ecrã", + "errorDialOut": "Não foi possível marcar", + "errorDialOutDisconnected": "Não foi possível marcar. Desligado", + "errorDialOutFailed": "Não foi possível marcar. Falha na chamada", + "errorDialOutStatus": "Erro ao obter o estado da chamada realizada", + "errorMissingName": "Por favor, digite o seu nome para participar na reunião", + "errorNoPermissions": "Tem de permitir o acesso ao microfone e à câmara", + "errorStatusCode": "Erro ao marcar, código do estado: {{status}}", + "errorValidation": "Falhou a validação do número", + "iWantToDialIn": "Quero entrar por telefone", + "initiated": "Chamada iniciada", + "joinAudioByPhone": "Entrar com o áudio do telefone", + "joinMeeting": "Entrar na reunião", + "joinMeetingInLowBandwidthMode": "Entrar em modo de baixa largura de banda", + "joinWithoutAudio": "Entrar sem áudio", + "keyboardShortcuts": "Ativar os atalhos de teclado", + "linkCopied": "Link copiado para a área de transferência", + "lookGood": "Os seus dispositivos estão a funcionar corretamente", + "or": "ou", + "premeeting": "Pré-reunião", + "proceedAnyway": "Continuar na mesma", + "recordingWarning": "Outros participantes podem estar a gravar esta chamada", + "screenSharingError": "Erro de partilha de ecrã:", + "startWithPhone": "Iniciar com o áudio do telefone", + "unsafeRoomConsent": "Compreendo os riscos, quero participar na reunião", + "videoOnlyError": "Erro de vídeo:", + "videoTrackError": "Não foi possível criar a pista de vídeo.", + "viewAllNumbers": "ver todos os números" + }, + "presenceStatus": { + "busy": "Ocupado", + "calling": "Chamando…", + "connected": "Conectado", + "connecting": "Conectando…", + "connecting2": "Conectando*…", + "disconnected": "Desconectado", + "expired": "Expirado", + "ignored": "Ignorado", + "initializingCall": "Iniciando Chamada…", + "invited": "Convidar", + "rejected": "Rejeitado", + "ringing": "Tocando…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Nome", + "setEmailInput": "Digite email", + "setEmailLabel": "Email de gravatar", + "title": "Perfil" + }, + "raisedHand": "Gostaria de falar", + "raisedHandsLabel": "Número de mãos levantadas", + "record": { + "already": { + "linked": "A reunião já está ligada a este objecto da Força de vendas." + }, + "type": { + "account": "Conta", + "contact": "Contacto", + "lead": "Líder", + "opportunity": "Oportunidade", + "owner": "Proprietário" + } + }, + "recording": { + "authDropboxText": "Enviar para o Dropbox.", + "availableSpace": "Espaço disponível: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de gravação)", + "beta": "BETA", + "busy": "Estamos trabalhando para liberar recursos de gravação. Tente novamente em alguns minutos.", + "busyTitle": "Todas as gravações estão atualmente ocupadas", + "copyLink": "Copiar Link", + "error": "A gravação falhou. Tente novamente.", + "errorFetchingLink": "Erro ao procurar link da gravação.", + "expandedOff": "Gravação finalizada", + "expandedOn": "A reunião está sendo gravada", + "expandedPending": "Iniciando gravação…", + "failedToStart": "Falha ao iniciar a gravação", + "fileSharingdescription": "Partilhar o link da gravação com os participantes da reunião", + "highlight": "Destaque", + "highlightMoment": "Momento de destaque", + "highlightMomentDisabled": "É possível destacar momentos quando a gravação começa", + "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", + "localRecordingStartWarning": "Por favor, certifique-se de que pára a gravação antes de sair da reunião a fim de a guardar.", + "localRecordingStartWarningTitle": "Parar a gravação para a salvar", + "localRecordingVideoStop": "A paragem do seu vídeo também irá parar a gravação local. Tem a certeza de que quer continuar?", + "localRecordingVideoWarning": "Para gravar o seu vídeo deve tê-lo ligado quando iniciar a gravação", + "localRecordingWarning": "Certifique-se de selecionar o separador actual a fim de utilizar o vídeo e áudio corretos.", + "loggedIn": "Conectado como {{userName}}", + "noMicPermission": "Não foi possível criar a faixa de microfone. Por favor, conceda permissão para utilizar o microfone.", + "noStreams": "Não foi detetado nenhum sinal áudio ou vídeo.", + "off": "Gravação parada", + "offBy": "{{name}} parou a gravação", + "on": "Começou a gravação", + "onBy": "{{name}} iniciou a gravação", + "onlyRecordSelf": "Gravar apenas as minhas transmissões áudio e vídeo", + "pending": "Preparando para gravar a reunião…", + "policyError": "Tentou iniciar uma gravação muito rapidamente. Por favor, tente novamente mais tarde!", + "recordAudioAndVideo": "Gravar áudio e vídeo", + "recordTranscription": "Gravar transcrições", + "saveLocalRecording": "Guardar ficheiro de gravação localmente (Beta)", + "serviceDescription": "Sua gravação será salva pelo serviço de gravação", + "serviceDescriptionCloud": "Gravação na nuvem", + "serviceDescriptionCloudInfo": "As reuniões gravadas são automaticamente apagadas 24h após a hora de gravação.", + "serviceName": "Serviço de gravação", + "sessionAlreadyActive": "Esta sessão já está a ser gravada ou transmitida em direto.", + "showAdvancedOptions": "Opções avançadas", + "signIn": "Entrar", + "signOut": "Sair", + "surfaceError": "Por favor, seleccione o separador actual.", + "title": "Gravação", + "unavailable": "Oops! O {{serviceName}} está indisponível. Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.", + "unavailableTitle": "Gravação indisponível", + "uploadToCloud": "Enviar para a nuvem" + }, + "screenshareDisplayName": "Ecrã do/a {{name}}", + "sectionList": { + "pullToRefresh": "Puxe para atualizar" + }, + "security": { + "about": "Pode adicionar uma $t(lockRoomPassword) à sua reunião. Os participantes terão de fornecer a $t(lockRoomPassword) antes de serem autorizados a participar na reunião.", + "aboutReadOnly": "Os participantes moderadores podem acrescentar uma $t(lockRoomPassword) à reunião. Os participantes terão de fornecer a $t(lockRoomPassword) antes de serem autorizados a participar na reunião.", + "insecureRoomNameWarningNative": "O nome da sala não é seguro. Participantes indesejados podem juntar-se à sua reunião. {{recommendAction}} Saiba mais sobre como proteger a sua reunião ", + "insecureRoomNameWarningWeb": "O nome da sala não é seguro. Participantes indesejados podem juntar-se à sua reunião. {{recommendAction}} Saiba mais sobre como proteger a sua reunião here.", + "title": "Opções de Segurança", + "unsafeRoomActions": { + "meeting": "Considere a possibilidade de proteger a sua reunião utilizando o botão de segurança.", + "prejoin": "Considere a utilização de um nome de reunião mais personalizado.", + "welcome": "Considere utilizar um nome de reunião mais personalizado ou selecione uma das sugestões." + } + }, + "settings": { + "audio": "Áudio", + "buttonLabel": "Definições", + "calendar": { + "about": "A integração do calendário {{appName}} é utilizada para aceder com segurança ao seu calendário para que este possa ler os próximos eventos.", + "disconnect": "Desligar", + "microsoftSignIn": "Iniciar sessão com a Microsoft", + "signedIn": "Atualmente a aceder a eventos de calendário por {{email}}. Clique no botão Desconectar abaixo para parar de aceder a eventos de calendário.", + "title": "Calendário" + }, + "chatWithPermissions": "O chat requer permissão", + "desktopShareFramerate": "Taxa de fotogramas para partilha do ambiente de trabalho", + "desktopShareHighFpsWarning": "Uma taxa de fotogramas mais elevada para a partilha do ambiente de trabalho pode afectar a sua largura de banda. É necessário reiniciar a partilha de ecrã para que as novas definições entrem em vigor.", + "desktopShareWarning": "É necessário reiniciar a partilha do ecrã para que as novas definições entrem em vigor.", + "devices": "Dispositivos", + "followMe": "Todos me seguem", + "followMeRecorder": "O gravador segue-me", + "framesPerSecond": "fotogramas-por-segundo", + "incomingMessage": "Receber uma mensagem", + "language": "Idioma", + "loggedIn": "Sessão iniciada como {{name}}", + "maxStageParticipants": "Número máximo de participantes que podem ser afixados", + "microphones": "Microfones", + "moderator": "Moderador", + "moderatorOptions": "Opções de moderador", + "more": "Geral", + "name": "Nome", + "noDevice": "Nenhum", + "notifications": "Notificações", + "participantJoined": "Entrar um participante", + "participantKnocking": "Entrar um participante na sala de espera", + "participantLeft": "Sair um participante", + "playSounds": "Reproduzir som quando", + "reactions": "Existir uma reação na reunião", + "sameAsSystem": "O mesmo que o sistema ({{label}})", + "selectAudioOutput": "Saída de áudio", + "selectCamera": "Câmara", + "selectMic": "Microfone", + "selfView": "Autovisualização", + "shortcuts": "Atalhos", + "showSubtitlesOnStage": "Mostrar legendas", + "speakers": "Altifalantes", + "startAudioMuted": "Todos começam com microfone desligado", + "startReactionsMuted": "Todos começam com os sons de reação desativados", + "startVideoMuted": "Todos começam com câmara desligada", + "talkWhileMuted": "Falar com o microfone desligado", + "title": "Definições", + "video": "Vídeo" + }, + "settingsView": { + "advanced": "Avançado", + "alertCancel": "Cancelar", + "alertOk": "OK", + "alertTitle": "Atenção", + "alertURLText": "A URL digitada do servidor é inválida", + "apply": "Aplicar", + "buildInfoSection": "Informações de compilação", + "conferenceSection": "Conferência", + "disableCallIntegration": "Desactivar a integração de chamadas nativas", + "disableCrashReporting": "Desativar relatório de falhas", + "disableCrashReportingWarning": "Tem a certeza de que quer desativar o relatório de falhas? A configuração será aplicada depois de reiniciar a aplicação.", + "disableP2P": "Desactivar o modo Peer-To-Peer", + "displayName": "Nome de exibição", + "displayNamePlaceholderText": "Ex: João Dias", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "Se o seu e-mail estiver associado a uma conta Gravatar, utilizá-la-emos para apresentar a sua imagem de perfil.", + "goTo": "Ir para", + "header": "Configurações", + "help": "Ajuda", + "links": "Links", + "privacy": "Privacidade", + "profileSection": "Perfil", + "sdkVersion": "Versão do SDK", + "serverURL": "URL do servidor", + "showAdvanced": "Mostrar definições avançadas", + "startCarModeInLowBandwidthMode": "Iniciar o modo de condução em modo de baixa largura de banda", + "startWithAudioMuted": "Iniciar sem áudio", + "startWithVideoMuted": "Iniciar sem vídeo", + "terms": "Termos", + "version": "Versão da App" + }, + "share": { + "dialInfoText": "\n\n=====\n\nDeseja apenas discar no seu telefone?\n\n{{defaultDialInNumber}}Clique neste link para ver os números de telefone para esta reunião\n{{dialInfoPageUrl}}", + "mainText": "Clique no seguinte link para entrar na reunião:{{roomUrl}}\n" + }, + "speaker": "Participante", + "speakerStats": { + "angry": "Zangado", + "disgusted": "Desgostoso", + "displayEmotions": "Mostrar emoções", + "fearful": "Temeroso", + "happy": "Feliz", + "hours": "{{count}}h", + "labelTooltip": "Número de participantes: {{count}}", + "minutes": "{{count}}m", + "name": "Nome", + "neutral": "Neutro", + "sad": "Triste", + "search": "Pesquisar", + "searchDescription": "Comece a digitar para filtrar os participantes", + "searchHint": "Pesquisar participantes", + "seconds": "{{count}}s", + "speakerStats": "Estatísticas dos Participantes", + "speakerTime": "Tempo do Participante", + "surprised": "Surpreendido" + }, + "startupoverlay": { + "genericTitle": "A reunião precisa de usar o seu microfone e câmara.", + "policyText": " ", + "title": "{{app}} precisa de usar o seu microfone e câmara." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Reconectar", + "text": "Pressione o botão Reentrar para reconectar.", + "title": "Sua chamada de vídeo foi interrompida, porque seu computador foi dormir." + }, + "termsView": { + "title": "Termos" + }, + "toggleTopPanelLabel": "Mostrar ou ocultar o painel superior", + "toolbar": { + "Settings": "Definições", + "accessibilityLabel": { + "Settings": "Abrir definições", + "audioOnly": "Mudar para apenas áudio", + "audioRoute": "Selecionar o dispositivo de som", + "boo": "Vaia", + "breakoutRooms": "Salas simultâneas", + "callQuality": "Gerir a qualidade do vídeo", + "carmode": "Modo de condução", + "cc": "Mudar legendas", + "chat": "Abrir / Fechar chat", + "clap": "Aplausos", + "closeChat": "Fechar chat", + "closeMoreActions": "Fechar menu de mais ações", + "closeParticipantsPane": "Fechar painel de participantes", + "closedCaptions": "Legendas ocultas", + "collapse": "Colapsar", + "document": "Mudar para documento partilhado", + "documentClose": "Fechar documento partilhado", + "documentOpen": "Abrir documento partilhado", + "download": "Descarregar as nossas aplicações", + "embedMeeting": "Reunião incorporada", + "endConference": "Terminar reunião para todos", + "enterFullScreen": "Ver ecrã inteiro", + "enterTileView": "Entrar na vista em quadrícula", + "exitFullScreen": "Sair de ecrã inteiro", + "exitTileView": "Sair da vista em quadrícula", + "expand": "Expandir", + "feedback": "Deixar comentários", + "fullScreen": "Mudar para ecrã completo", + "giphy": "Ativar/Desativar o menu GIPHY", + "grantModerator": "Conceder direitos de moderador", + "hangup": "Sair da reunião", + "heading": "Barra de ferramentas", + "help": "Ajuda", + "hideWhiteboard": "Esconder quadro branco", + "invite": "Convidar pessoas", + "kick": "Remover participante", + "laugh": "Risos", + "leaveConference": "Sair da reunião", + "like": "Aprovado", + "linkToSalesforce": "Link para a Salesforce", + "lobbyButton": "Ativar/desativar sala de espera", + "localRecording": "Mudar os controlos locais de gravação", + "lockRoom": "Mudar palavra-chave de reunião", + "love": "Coração", + "lowerHand": "Baixar a mão", + "moreActions": "Mais ações", + "moreActionsMenu": "Menu de mais ações", + "moreOptions": "Mostrar mais opções", + "mute": "Desligar microfone", + "muteEveryone": "Silenciar a todos", + "muteEveryoneElse": "Silenciar todos os outros", + "muteEveryoneElsesVideo": "Parar o vídeo de todos os outros", + "muteEveryonesVideo": "Parar o vídeo de todos", + "muteGUMPending": "A ligar o seu microfone", + "noiseSuppression": "Supressão extra de ruído (BETA)", + "openChat": "Abrir chat", + "participants": "Abrir painel de participantes. {{participantsCount}} participantes", + "pip": "Mudar para o modo Picture-in-Picture", + "privateMessage": "Enviar mensagem privada", + "profile": "Editar o seu perfil", + "raiseHand": "Levantar a mão", + "react": "Reações às mensagens", + "reactions": "Reações", + "reactionsMenu": "Menu de reações", + "recording": "Mudar gravação", + "remoteMute": "Participante sem som", + "remoteVideoMute": "Desativar a câmara do participante", + "security": "Opções de segurança", + "selectBackground": "Selecionar plano de fundo", + "selfView": "Mudar a autovisualização", + "shareRoom": "Convidar alguém", + "shareYourScreen": "Iniciar partilha de ecrã", + "shareaudio": "Partilhar áudio", + "sharedvideo": "Partilhar vídeo", + "shortcuts": "Mostrar / Esconder atalhos", + "show": "Mostrar no palco", + "showWhiteboard": "Mostrar quadro branco", + "silence": "Silêncio", + "speakerStats": "Mostrar / Esconder estatísticas dos participantes", + "stopScreenSharing": "Parar de partilhar o seu ecrã", + "stopSharedVideo": "Parar vídeo", + "surprised": "Surpreendido", + "tileView": "Mudar a vista em quadrícula", + "toggleCamera": "Mudar a câmara", + "toggleFilmstrip": "Mudar a película de filme", + "unmute": "Ligar microfone", + "videoblur": "Mudar o desfoque de vídeo", + "videomute": "Parar câmara", + "videomuteGUMPending": "A ligar a sua câmara", + "videounmute": "Iniciar câmara" + }, + "addPeople": "Adicione pessoas à sua chamada", + "audioOnlyOff": "Desativar modo de largura de banda baixa", + "audioOnlyOn": "Ativar modo de largura de banda baixa", + "audioRoute": "Selecionar o dispositivo de som", + "audioSettings": "Definições de áudio", + "authenticate": "Autenticar", + "boo": "Vaia", + "callQuality": "Gerir a qualidade do vídeo", + "chat": "Abrir / Fechar chat", + "clap": "Aplausos", + "closeChat": "Fechar chat", + "closeParticipantsPane": "Fechar painel de participantes", + "closeReactionsMenu": "Fechar menu de reações", + "closedCaptions": "Legendas ocultas", + "disableNoiseSuppression": "Desativar supressão de ruído extra (BETA)", + "disableReactionSounds": "Pode desactivar os sons de reacção para esta reunião", + "documentClose": "Fechar documento partilhado", + "documentOpen": "Abrir documento partilhado", + "download": "Descarregar as nossas aplicações", + "e2ee": "Criptografia ponta a ponta", + "embedMeeting": "Incorporar reunião", + "enableNoiseSuppression": "Ativar supressão extra de ruído (BETA)", + "endConference": "Terminar reunião para todos", + "enterFullScreen": "Ver em ecrã completo", + "enterTileView": "Ver em quadrícula", + "exitFullScreen": "Sair de ecrã completo", + "exitTileView": "Sair de quadrícula", + "feedback": "Deixar comentários", + "giphy": "Ativar/Desativar o menu GIPHY", + "hangup": "Sair da reunião", + "help": "Ajuda", + "hideWhiteboard": "Esconder quadro branco", + "invite": "Convidar pessoas", + "joinBreakoutRoom": "Entar na sala", + "laugh": "Risos", + "leaveBreakoutRoom": "Sair da sala", + "leaveConference": "Sair da reunião", + "like": "Aprovado", + "linkToSalesforce": "Link para a Salesforce", + "lobbyButtonDisable": "Desativar sala de espera", + "lobbyButtonEnable": "Ativar sala de espera", + "login": "Iniciar sessão", + "logout": "Terminar sessão", + "love": "Coração", + "lowerYourHand": "Baixar a mão", + "moreActions": "Mais ações", + "moreOptions": "Mais opções", + "mute": "Desligar microfone", + "muteEveryone": "Silenciar todos", + "muteEveryonesVideo": "Desativar a câmara de todos", + "muteGUMPending": "A ligar o seu microfone", + "noAudioSignalDesc": "Se não o silenciou propositadamente a partir de configurações do sistema ou hardware, considere mudar de dispositivo.", + "noAudioSignalDescSuggestion": "Se não o silenciou propositadamente a partir das configurações do sistema ou hardware, considere mudar para o dispositivo sugerido.", + "noAudioSignalDialInDesc": "Também pode marcar usando:", + "noAudioSignalDialInLinkDesc": "Números de marcação", + "noAudioSignalTitle": "Não há nenhuma entrada vinda do seu microfone!", + "noiseSuppression": "Supressão extra de ruído (BETA)", + "noisyAudioInputDesc": "Parece que o seu microfone está a fazer barulho, por favor considere silenciar ou mudar de dispositivo.", + "noisyAudioInputTitle": "Seu microfone parece estar barulhento!", + "openChat": "Abrir chat", + "openReactionsMenu": "Abrir menu de reações", + "participants": "Participantes", + "pip": "Entrar no modo Picture-in-Picture", + "privateMessage": "Enviar mensagem privada", + "profile": "Editar o seu perfil", + "raiseHand": "Levantar a mão", + "raiseYourHand": "Levantar a mão", + "reactionBoo": "Enviar reação de vaia", + "reactionClap": "Enviar reação de aplausos", + "reactionHeart": "Enviar reação com coração", + "reactionLaugh": "Enviar reação de risos", + "reactionLike": "Enviar reação de aprovado", + "reactionSilence": "Enviar reação de silêncio", + "reactionSurprised": "Enviar reação de surpreendido", + "reactions": "Reações", + "security": "Opções de segurança", + "selectBackground": "Selecionar plano de fundo", + "shareRoom": "Convidar alguém", + "shareaudio": "Partilhar áudio", + "sharedvideo": "Partilhar vídeo", + "shortcuts": "Ver atalhos", + "showWhiteboard": "Mostrar quadro branco", + "silence": "Silêncio", + "speakerStats": "Estatísticas dos participantes", + "startScreenSharing": "Iniciar partilha de ecrã", + "startSubtitles": "Legendas • {{language}}", + "stopAudioSharing": "Parar partilha de áudio", + "stopScreenSharing": "Parar partilha de ecrã", + "stopSharedVideo": "Parar vídeo", + "stopSubtitles": "Parar legendas", + "surprised": "Surpreendido", + "talkWhileMutedPopup": "Está a tentar falar? Está com o microfone desligado.", + "tileViewToggle": "Mudar para vista em quadrícula", + "toggleCamera": "Mudar a câmara", + "unmute": "Ligar microfone", + "videoSettings": "Definições de vídeo", + "videomute": "Parar câmara", + "videomuteGUMPending": "A ligar a sua câmara", + "videounmute": "Iniciar câmara" + }, + "transcribing": { + "ccButtonTooltip": "Iniciar/parar legendas", + "expandedLabel": "Transcrição ativada", + "failed": "Falha na transcrição", + "labelTooltip": "Esta reunião está a ser transcrita.", + "labelTooltipExtra": "Além disso, uma transcrição estará disponível posteriormente.", + "openClosedCaptions": "Abrir legendas ocultas", + "original": "Original", + "sourceLanguageDesc": "Atualmente a língua da reunião está definida para {{sourceLanguage}}.
Pode alterá-la a partir ", + "sourceLanguageHere": "daqui", + "start": "Exibir legendas", + "stop": "Não exibir legendas", + "subtitles": "Legendas", + "subtitlesOff": "Desligado", + "tr": "TR", + "translateTo": "Traduzir para" + }, + "unpinParticipant": "{{participantName}} - Desafixar", + "userMedia": { + "grantPermissions": "Dê as permissões para usar a sua câmara e microfone." + }, + "videoSIPGW": { + "busy": "Estamos a trabalhar para liberar recursos. Por favor, tente novamente em alguns minutos.", + "busyTitle": "O serviço da sala está ocupado", + "errorAlreadyInvited": "{{displayName}} já convidado", + "errorInvite": "A conferência ainda não foi estabelecida. Por favor, tente mais tarde.", + "errorInviteFailed": "Estamos a trabalhar para resolver o problema. Por favor, tente mais tarde.", + "errorInviteFailedTitle": "Convite para {{displayName}} falhou", + "errorInviteTitle": "Erro no convite da sala", + "pending": "{{displayName}} foi convidado" + }, + "videoStatus": { + "adjustFor": "Ajustar para:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Está em modo de baixa largura de banda. Neste modo, receberá apenas partilha de áudio e ecrã.", + "bestPerformance": "Melhor desempenho", + "callQuality": "Qualidade de vídeo (0 para o melhor desempenho, 3 para a melhor qualidade)", + "hd": "HD", + "hdTooltip": "Ver vídeo em alta definição", + "highDefinition": "Alta definição (HD)", + "highestQuality": "Máxima qualidade", + "labelTooiltipNoVideo": "Sem vídeo", + "labelTooltipAudioOnly": "Modo de largura de banda baixa habilitada", + "ld": "LD", + "ldTooltip": "Ver vídeo em baixa definição", + "lowDefinition": "Baixa definição (LD)", + "performanceSettings": "Definições de desempenho", + "recording": "Esta reunião está a ser gravada.", + "sd": "SD", + "sdTooltip": "Ver vídeo em definição padrão", + "standardDefinition": "Definição padrão", + "streaming": "Transmissão em curso" + }, + "videothumbnail": { + "connectionInfo": "Informações sobre a ligação", + "demote": "Passar a espectador", + "domute": "Sem som", + "domuteDesktop": "Parar a partilha de ecrã", + "domuteDesktopOfOthers": "Interromper a partilha de ecrã para todos os outros", + "domuteOthers": "Silenciar todos os outros", + "domuteVideo": "Desativar a câmara", + "domuteVideoOfOthers": "Desactivar a câmara de todos os outros", + "flip": "Inverter", + "grantModerator": "Conceder direitos de moderador", + "hideSelfView": "Ocultar a autovisualização", + "kick": "Expulsar", + "mirrorVideo": "Espelhar o meu vídeo", + "moderator": "Moderador", + "mute": "Participante está sem som", + "muted": "Sem som", + "pinToStage": "Afixar", + "remoteControl": "Iniciar / Parar controlo remoto", + "screenSharing": "Participante está a partilhar o seu ecrã", + "show": "Mostrar no palco", + "showSelfView": "Mostrar autovisualização", + "unpinFromStage": "Desafixar", + "verify": "Verificar participante", + "videoMuted": "Câmara desativada", + "videomute": "Participante parou a câmara" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Atual imagem de fundo: {{background}}", + "selectBackground": "Selecionar uma imagem de fundo" + }, + "addBackground": "Adicionar imagem de fundo", + "apply": "Aplicar", + "backgroundEffectError": "Falha ao aplicar efeito de fundo.", + "blur": "Esbatido", + "deleteImage": "Apagar imagem", + "desktopShare": "Partilhar área de trabalho", + "desktopShareError": "Não foi possível partilhar a área de trabalho", + "image1": "Praia", + "image2": "Parede branca neutra", + "image3": "Quarto branco vazio", + "image4": "Luminária preta", + "image5": "Montanha", + "image6": "Floresta ", + "image7": "Nascer do sol", + "none": "Nenhum", + "pleaseWait": "Por favor aguarde…", + "removeBackground": "Remover imagem de fundo", + "slightBlur": "Ligeiro esbatido", + "title": "Fundos virtuais", + "uploadedImage": "Imagem carregada {{index}}", + "webAssemblyWarning": "WebAssembly não suportado", + "webAssemblyWarningDescription": "WebAssembly desactivado ou não suportado por este navegador" + }, + "visitors": { + "chatIndicator": "(espectador)", + "joinMeeting": { + "description": "Atualmente, é um espectador nesta conferência.", + "raiseHand": "Levantar a mão", + "title": "Participar na reunião", + "wishToSpeak": "Se deseja intervir, levante a mão e aguarde a aprovação do moderador." + }, + "labelTooltip": "Número de espectadores: {{count}}", + "notification": { + "demoteDescription": "Enviado aqui pelo {{actor}}, levante a mão para participar", + "noMainParticipantsDescription": "Um participante precisa de iniciar a reunião. Tente novamente daqui a pouco.", + "noMainParticipantsTitle": "Esta reunião ainda não começou.", + "noVisitorLobby": "Não é possível aderir enquanto houver uma sala de espera activada para a reunião.", + "notAllowedPromotion": "É necessário que um participante autorize primeiro o seu pedido.", + "title": "É um espectador na reunião" + }, + "waitingMessage": "Participará na reunião assim que esta estiver em direto!" + }, + "volumeSlider": "Controlo de volume", + "welcomepage": { + "accessibilityLabel": { + "join": "Toque para entrar", + "roomname": "Digite o nome da sala" + }, + "addMeetingName": "Adicionar nome da reunião", + "appDescription": "Vá em frente, converse por vídeo com toda a equipa. Na verdade, convide todos os que conhece. {{app}} é uma solução de videoconferência totalmente criptografada e 100% de código aberto que pode usar todos os dias, a cada dia, gratuitamente — sem necessidade de conta.", + "audioVideoSwitch": { + "audio": "Voz", + "video": "Vídeo" + }, + "calendar": "Calendário", + "connectCalendarButton": "Conectar seu calendário", + "connectCalendarText": "Conecte o seu calendário para ver todas as reuniões em {{app}}. Além disso, adicione reuniões de {{provider}} ao seu calendário e inicie-as com apenas um clique.", + "enterRoomTitle": "Iniciar uma nova reunião", + "getHelp": "Obter ajuda", + "go": "IR", + "goSmall": "IR", + "headerSubtitle": "Reuniões com segurança e alta qualidade", + "headerTitle": "Jitsi Meet", + "info": "Informações", + "jitsiOnMobile": "Jitsi em dispositivos móveis – descarregue as nossas aplicações e inicie uma reunião em qualquer lugar", + "join": "CRIAR / ENTRAR", + "logo": { + "calendar": "Logo do Calendário", + "desktopPreviewThumbnail": "Miniatura de Visualização do Desktop", + "googleLogo": "Logo do Google", + "logoDeepLinking": "Logo do Jitsi Meet", + "microsoftLogo": "Logo da Microsoft", + "policyLogo": "Logo da Política de Privacidade" + }, + "meetingsAccessibilityLabel": "Reuniões", + "mobileDownLoadLinkAndroid": "Descarregar aplicação móvel para Android", + "mobileDownLoadLinkFDroid": "Descarregar aplicação móvel para F-Droid", + "mobileDownLoadLinkIos": "Descarregar aplicação móvel para iOS", + "moderatedMessage": "Ou reserve um URL de reunião com antecedência onde é o único moderador.", + "privacy": "Política de Privacidade", + "recentList": "Recente", + "recentListDelete": "Remover", + "recentListEmpty": "A sua lista recente está atualmente vazia. Converse com a sua equipa e encontrará aqui todas as suas reuniões recentes.", + "recentMeetings": "As suas reuniões recentes", + "reducedUIText": "Bem-vindo ao {{app}}!", + "roomNameAllowedChars": "Nome da reunião não deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.", + "roomname": "Digite o nome da sala", + "roomnameHint": "Digite o nome ou URL da sala a que pretende entrar. Pode inventar um nome, basta informar as pessoas com quem se vai encontrar para que entrem com o mesmo nome.", + "sendFeedback": "Enviar comentários", + "settings": "Definições", + "startMeeting": "Iniciar reunião", + "terms": "Termos", + "title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas", + "upcomingMeetings": "As suas próximas reuniões" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Quadro branco" + }, + "screenTitle": "Quadro branco" + } +} diff --git a/lang/main-ptBR.json b/lang/main-ptBR.json new file mode 100644 index 0000000..af15412 --- /dev/null +++ b/lang/main-ptBR.json @@ -0,0 +1,1524 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Link da reunião: {{url}}" + }, + "add": "Convidar", + "addContacts": "Convide seus contatos", + "contacts": "contatos", + "copyInvite": "Copiar convite da reunião", + "copyLink": "Copiar link da reunião", + "copyStream": "Copiar link da transmissão ao vivo", + "countryNotSupported": "Ainda não suportamos este destino.", + "countryReminder": "Ligando de fora dos EUA? Por favor, certifique-se de começar com o código do país!", + "defaultEmail": "Seu email padrão", + "disabled": "Você não pode convidar pessoas.", + "failedToAdd": "Falha em adicionar participantes", + "googleEmail": "Email Google", + "inviteMoreHeader": "Você é o único na reunião", + "inviteMoreMailSubject": "Entre na reunião {{appName}}", + "inviteMorePrompt": "Convide mais pessoas", + "linkCopied": "Link copiado para a área de transferência", + "noResults": "Nenhum resultado de busca correspondente", + "outlookEmail": "Email Outlook ", + "phoneNumbers": "números de telefone", + "searching": "Procurando…", + "shareInvite": "Compartilhar convite da reunião", + "shareLink": "Compartilhando o link da reunião", + "shareStream": "Compartilhar o link da transmissão ao vivo", + "sipAddresses": "endereços SIP", + "telephone": "Telefone: {{number}}", + "title": "Convide pessoas para sua reunião", + "yahooEmail": "Email Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Áudio do carro", + "headphones": "Fones de ouvido", + "none": "Sem dispositivos de áudio disponível", + "phone": "Celular", + "speaker": "Alto-falantes" + }, + "audioOnly": { + "audioOnly": "Largura de banda baixa" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "Ex. 10000000 para 10 Mbps", + "assumedBandwidthBpsWarning": "Valores mais altos podem causar erros de rede.", + "customValue": "valor personalizado", + "customValueEffect": "para definir o valor de bps real", + "leaveEmpty": "deixar vazio", + "leaveEmptyEffect": "para permitir que estimativas assumam", + "possibleValues": "Valores possíveis", + "setAssumedBandwidthBps": "Banda presumida (bps)", + "title": "Configurações de banda", + "zeroEffect": "para desabilitar o vídeo" + }, + "breakoutRooms": { + "actions": { + "add": "Adicionar sala de apoio", + "autoAssign": "Atribuir a salas de apoio automaticamente", + "close": "Fechar", + "join": "Participar", + "leaveBreakoutRoom": "Sair da sala de apoio", + "more": "Mais", + "remove": "Remover", + "rename": "Renomear", + "renameBreakoutRoom": "Renomear sala de apoio", + "sendToBreakoutRoom": "Enviar participante para:" + }, + "breakoutList": "Lista de apoio", + "buttonLabel": "Salas de apoio", + "defaultName": "Sala de apoio #{{index}}", + "hideParticipantList": "Ocultar lista de participantes", + "mainRoom": "Sala principal", + "notifications": { + "joined": "Entrando na sala de apoio \"{{name}}\"", + "joinedMainRoom": "Entrando na sala principal", + "joinedTitle": "Salas de apoio" + }, + "showParticipantList": "Exibir lista de participantes", + "title": "Salas de apoio" + }, + "calendarSync": { + "addMeetingURL": "Adicionar um link da reunião", + "confirmAddLink": "Gostaria de adicionar um link do Jitsi a esse evento?", + "error": { + "appConfiguration": "A integração com calendário não está configurada adequadamente.", + "generic": "Ocorreu um erro. Verifique as configurações de calendário ou tente atualizar o calendário.", + "notSignedIn": "Ocorreu um erro durante a autenticação para visualização dos eventos do calendário. Verifique as configurações de calendário e tente entrar novamente." + }, + "join": "Participar", + "joinTooltip": "Participar da reunião", + "nextMeeting": "próxima reunião", + "noEvents": "Não há eventos próximos agendados.", + "ongoingMeeting": "reunião em progresso", + "permissionButton": "Abrir configurações", + "permissionMessage": "Permissão do calendário é requerida para ver suas reuniões na aplicação.", + "refresh": "Atualizar calendário", + "today": "Hoje" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Selecionar dispositivo de som" + }, + "labels": { + "buttonLabel": "Modo carro", + "title": "Modo carro", + "videoStopped": "Seu vídeo está parado" + } + }, + "chat": { + "enter": "Entrar no bate-papo", + "error": "Erro: sua mensagem não foi enviada. Motivo: {{error}}", + "fieldPlaceHolder": "Digite sua mensagem aqui", + "lobbyChatMessageTo": "Mensagem para {{recipient}}", + "message": "Mensagem", + "messageAccessibleTitle": "{{user}} disse:", + "messageAccessibleTitleMe": "Você disse:", + "messageTo": "Mensagem privada para {{recipient}}", + "messagebox": "Digite uma mensagem", + "newMessages": "Novas mensagens", + "nickname": { + "popover": "Escolha um apelido", + "title": "Digite um apelido para usar o bate-papo", + "titleWithPolls": "Digite um apelido para usar o bate-papo" + }, + "noMessagesMessage": "Não há mensagens na reunião ainda. Inicie uma conversa aqui!", + "privateNotice": "Mensagem privada para {{recipient}}", + "sendButton": "Enviar", + "smileysPanel": "Painel de Emojis", + "tabs": { + "chat": "Conversa", + "polls": "Votações" + }, + "title": "Bate-papo", + "titleWithPolls": "Bate-papo", + "you": "você" + }, + "chromeExtensionBanner": { + "buttonText": "Instalar extensão do Chrome", + "buttonTextEdge": "Instalar extensão do Edge", + "close": "Fechar", + "dontShowAgain": "Não me mostre isso de novo", + "installExtensionText": "Instale a extensão para integrar com Google Calendar e Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Conectando você à reunião…" + }, + "connection": { + "ATTACHED": "Anexado", + "AUTHENTICATING": "Autenticando", + "AUTHFAIL": "Falha de autenticação", + "CONNECTED": "Conectado", + "CONNECTING": "Conectando", + "CONNFAIL": "Falha de conexão", + "DISCONNECTED": "Desconectado", + "DISCONNECTING": "Desconectando", + "ERROR": "Erro", + "FETCH_SESSION_ID": "Obtendo ID da sessão…", + "GET_SESSION_ID_ERROR": "Erro ao obter o ID da sessão: {{code}}", + "GOT_SESSION_ID": "Obtendo ID da sessão… Feito", + "LOW_BANDWIDTH": "O vídeo de {{displayName}} foi desativado para economizar largura de banda" + }, + "connectionindicator": { + "address": "Endereço:", + "audio_ssrc": "Aúdio SSRC:", + "bandwidth": "Largura de banda estimada:", + "bitrate": "Taxa de bits:", + "bridgeCount": "Servidores: ", + "codecs": "Codecs (A/V): ", + "connectedTo": "Conectado a:", + "e2eeVerified": "Verificado via E2EE", + "framerate": "Taxa de quadros:", + "less": "Mostrar menos", + "localaddress": "Endereço local:", + "localaddress_plural": "Endereços locais:", + "localport": "Porta local:", + "localport_plural": "Portas locais:", + "maxEnabledResolution": "envio máx", + "more": "Mostrar mais", + "no": "não", + "packetloss": "Perda de pacote:", + "participant_id": "Id participante:", + "quality": { + "good": "Boa", + "inactive": "Inativo", + "lost": "Perdido", + "nonoptimal": "Não ótima", + "poor": "Ruim" + }, + "remoteaddress": "Endereço remoto:", + "remoteaddress_plural": "Endereços remotos:", + "remoteport": "Porta remota:", + "remoteport_plural": "Portas remotas:", + "resolution": "Resolução:", + "savelogs": "Grave os logs", + "status": "Conexão:", + "transport": "Transporte:", + "transport_plural": "Transportes:", + "video_ssrc": "Video SSRC:", + "yes": "sim" + }, + "dateUtils": { + "earlier": "Mais cedo", + "today": "Hoje", + "yesterday": "Ontem" + }, + "deepLinking": { + "appNotInstalled": "Você precisa do aplicativo móvel {{app}} para participar da reunião no seu telefone.", + "description": "Nada acontece? Estamos tentando iniciar sua reunião no aplicativo desktop {{app}}. Tente novamente ou inicie ele na aplicação web {{app}}.", + "descriptionNew": "Nada aconteceu? Tentamos iniciar sua reunião no aplicativo de desktop {{app}}.

Você pode tentar novamente ou abrir pela web.", + "descriptionWithoutWeb": "Nada aconteceu? Tentamos iniciar sua reunião no aplicativo de desktop {{app}}.", + "downloadApp": "Baixe o Aplicativo", + "downloadMobileApp": "Baixar o app", + "ifDoNotHaveApp": "Se você não tem o app ainda:", + "ifHaveApp": "Se você já tem o app:", + "joinInApp": "Entrar na reunião usando o app", + "joinInAppNew": "Entrar usando o app", + "joinInBrowser": "Entrar usando o navegador", + "launchMeetingLabel": "Como deseja entrar nesta reunião?", + "launchWebButton": "Iniciar na web", + "noMobileApp": "Não tem o app?", + "termsAndConditions": "Ao continuar você estará aceitando nossos termos e condições.", + "title": "Iniciando sua reunião no {{app}}…", + "titleNew": "Iniciando sua reunião…", + "tryAgainButton": "Tente novamente no desktop", + "unsupportedBrowser": "Parece que você está usando um navegador ao qual não temos suporte." + }, + "defaultLink": "ex.: {{url}}", + "defaultNickname": "ex.: João Pedro", + "deviceError": { + "cameraError": "Falha ao acessar sua câmera", + "cameraPermission": "Erro ao obter permissão para a câmera", + "microphoneError": "Falha ao acessar seu microfone", + "microphonePermission": "Erro ao obter permissão para o microfone" + }, + "deviceSelection": { + "hid": { + "callControl": "Controle de chamada", + "connectedDevices": "Dispositivos conectados:", + "deleteDevice": "Remover dispositivo", + "pairDevice": "Emparelhar dispositivo" + }, + "noPermission": "Permissão não concedida", + "previewUnavailable": "Visualização indisponível", + "selectADevice": "Selecione um dispositivo", + "testAudio": "Tocar um som de teste" + }, + "dialIn": { + "screenTitle": "Sumário de discagem" + }, + "dialOut": { + "statusMessage": "está agora {{status}}" + }, + "dialog": { + "Back": "Voltar", + "Cancel": "Cancelar", + "IamHost": "Eu sou o anfitrião", + "Ok": "OK", + "Remove": "Remover", + "Share": "Compartilhar", + "Submit": "Enviar", + "WaitForHostMsg": "A conferência ainda não começou. Se você é o anfitrião, faça a autenticação. Do contrário, aguarde a chegada do anfitrião.", + "WaitingForHostButton": "Aguardar por anfitrião", + "WaitingForHostTitle": "Esperando o anfitrião…", + "Yes": "Sim", + "accessibilityLabel": { + "Cancel": "Cancelar (fechar janela)", + "Ok": "OK (salvar e fechar janela)", + "close": "Fechar janela", + "liveStreaming": "Transmissão ao vivo", + "sharingTabs": "Opções de compartilhamento" + }, + "add": "Adicionar", + "addMeetingNote": "Adicionar uma anotação para esta reunião", + "addOptionalNote": "Adicionar uma anotação (opcional):", + "allow": "Permitir", + "allowToggleCameraDialog": "Você permite que {{initiatorName}} possa alternar entre suas câmeras?", + "allowToggleCameraTitle": "Permitir alternar câmera?", + "alreadySharedVideoMsg": "Outro participante já está compartilhando um vídeo. Esta conferência permite apenas um vídeo compartilhado por vez.", + "alreadySharedVideoTitle": "Somente um vídeo compartilhado é permitido por vez", + "applicationWindow": "Janela de aplicativo", + "authenticationRequired": "Autenticação requerida", + "cameraConstraintFailedError": "Sua câmera não satisfaz algumas condições necessárias.", + "cameraNotFoundError": "A câmera não foi encontrada.", + "cameraNotSendingData": "Estamos incapazes de acessar sua câmera. Verifique se outra aplicação está usando este dispositivo, selecione outro dispositivo do menu de configurações ou recarregue a aplicação.", + "cameraNotSendingDataTitle": "Incapaz de acessar a câmera", + "cameraPermissionDeniedError": "Não foi permitido acessar a sua câmera. Você ainda pode entrar na conferência, mas sem exibir o seu vídeo. Clique no botão da câmera para tentar reparar.", + "cameraTimeoutError": "Não foi possível iniciar fonte de vídeo. Tempo esgotado!", + "cameraUnknownError": "Não pode usar a câmera por uma razão desconhecida.", + "cameraUnsupportedResolutionError": "Sua câmera não suporta a resolução de vídeo requerida.", + "close": "Fechar", + "conferenceDisconnectMsg": "Você pode querer verificar sua conexão de rede. Reconectando em {{seconds}} segundos…", + "conferenceDisconnectTitle": "Você foi desconectado.", + "conferenceReloadMsg": "Estamos tentando consertar isto. Reconectando em {{seconds}} segundos…", + "conferenceReloadTitle": "Infelizmente, algo deu errado.", + "confirm": "Confirmar", + "confirmNo": "Não", + "confirmYes": "Sim", + "connectError": "Oops! Alguma coisa está errada e nós não pudemos conectar à conferência.", + "connectErrorWithMsg": "Oops! Alguma coisa está errada e não podemos conectar à conferência: {{msg}}", + "connecting": "Conectando", + "contactSupport": "Entrar em contato com o suporte", + "copied": "Copiado", + "copy": "Copiar", + "dismiss": "Dispensar", + "displayNameRequired": "Oi! Qual o seu nome?", + "done": "Feito", + "e2eeDescription": "Encriptação ponto-a-ponto é, no momento, EXPERIMENTAL. Por favor tenha em mente que habilitar a encriptação ponto-a-ponto irá desativar os serviços disponíveis no servidor como: gravação, transmissão ao vivo e telefonar participantes. Além disso a reunião só irá funcionar para os participantes entrando em browsers com suporte a funcionalidade.", + "e2eeDisabledDueToMaxModeDescription": "Não foi possível habilitar a criptografia de ponta-a-ponta devido ao grande número de participantes na conferência.", + "e2eeLabel": "Enable End-to-End Encryption", + "e2eeWarning": "WARNING: Not all participants in this meeting seem to have support for End-to-End encryption. If you enable it they won't be able to see nor hear you.", + "e2eeWillDisableDueToMaxModeDescription": "AVISO: A criptografia de ponta-a-ponta será automaticamente desativada se mais participantes entrarem na conferência.", + "embedMeeting": "Reunião em formato compacto", + "enterDisplayName": "Digite seu nome aqui", + "error": "Erro", + "gracefulShutdown": "Nosso serviço está em manutenção. Tente novamente mais tarde.", + "grantModeratorDialog": "Tem certeza que quer participar como moderador da reunião?", + "grantModeratorTitle": "Permitir moderador", + "hide": "Ocultar", + "hideShareAudioHelper": "Não mostre este diálogo novamente", + "incorrectPassword": "Usuário ou senha incorretos", + "incorrectRoomLockPassword": "Senha incorreta", + "internalError": "Oops! Alguma coisa está errada. O seguinte erro ocorreu: {{error}}", + "internalErrorTitle": "Erro interno", + "kickMessage": "Você pode entrar em contato com {{participantDisplayName}} para obter mais detalhes.", + "kickParticipantButton": "Remover", + "kickParticipantDialog": "Tem certeza de que deseja remover este participante?", + "kickParticipantTitle": "Remover este participante?", + "kickTitle": "{{participantDisplayName}} removeu você da reunião", + "linkMeeting": "Vincular reunião", + "linkMeetingTitle": "Vincular reunião ao Salesforce", + "liveStreaming": "Transmissão ao Vivo", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Não é possível transmitir enquanto a gravação está ativa", + "localUserControls": "Controles de usuários locais", + "lockMessage": "Falha ao bloquear a conferência.", + "lockRoom": "Adicionar reunião $t(lockRoomPasswordUppercase)", + "lockTitle": "Bloqueio falhou", + "login": "Entrar", + "loginQuestion": "Deseja iniciar a sessão e finalizar a conferência?", + "logoutQuestion": "Deseja encerrar a sessão e finalizar a conferência?", + "logoutTitle": "Encerrar sessão", + "maxUsersLimitReached": "O limite para o número máximo de participantes foi atingido. A conferência está cheia. Entre em contato com o proprietário da reunião ou tente novamente mais tarde!", + "maxUsersLimitReachedTitle": "Limite máximo de participantes atingido", + "micConstraintFailedError": "Seu microfone não satisfaz algumas condições necessárias.", + "micNotFoundError": "O microfone não foi encontrado.", + "micNotSendingData": "Vá para as configurações do seu computador para ativar o som do microfone e ajustar seu nível", + "micNotSendingDataTitle": "Seu microfone está mudo pelas configurações do sistema", + "micPermissionDeniedError": "Não foi permitido acessar o seu microfone. Você ainda pode entrar na conferência, mas sem enviar áudio. Clique no botão do microfone para tentar reparar.", + "micTimeoutError": "Não foi possível iniciar fonte de áudio. Tempo esgotado!", + "micUnknownError": "Não pode usar o microfone por uma razão desconhecida.", + "moderationAudioLabel": "Permitir aos participantes reativar o som", + "moderationVideoLabel": "Permitir aos participantes reativar o vídeo", + "muteEveryoneDialog": "Você não poderá reativar o som deles, mas eles poderão reativar a qualquer momento.", + "muteEveryoneDialogModerationOn": "Os participantes podem enviar solicitação para reativar seus sons a qualquer momento.", + "muteEveryoneElseDialog": "Uma vez silenciados, você não poderá reativar o som deles, mas eles poderão reativar seus sons a qualquer momento.", + "muteEveryoneElseTitle": "Silenciar todo mundo exceto {{whom}}?", + "muteEveryoneElsesVideoDialog": "Você não poderá reativar posteriormente, mas cada participante pode ativar sua própria câmera a qualquer momento.", + "muteEveryoneElsesVideoTitle": "Desativar a câmera de todos exceto {{whom}}?", + "muteEveryoneSelf": "a si próprio", + "muteEveryoneStartMuted": "Todos iniciam silenciados daqui para frente", + "muteEveryoneTitle": "Silenciar todos?", + "muteEveryonesVideoDialog": "Tem certeza que deseja desativar a câmera de todos? Você não poderá reativar posteriormente, mas cada participante pode ativar sua própria câmera a qualquer momento.", + "muteEveryonesVideoDialogModerationOn": "Os participantes podem enviar solicitação para reativar seus vídeos a qualquer momento.", + "muteEveryonesVideoDialogOk": "Desabilitar", + "muteEveryonesVideoTitle": "Desativar a câmera de todos?", + "muteParticipantBody": "Você não está habilitado para tirar o mudo deles, mas eles podem tirar o mudo deles mesmos a qualquer tempo.", + "muteParticipantButton": "Mudo", + "muteParticipantsVideoBody": "Você não poderá reativar posteriormente, mas o participante pode ativar sua própria câmera a qualquer momento.", + "muteParticipantsVideoBodyModerationOn": "Você e o participante não poderão reativar a câmera posteriormente.", + "muteParticipantsVideoButton": "Desativar a câmera", + "muteParticipantsVideoDialog": "Tem certeza de que deseja desativar a câmera deste participante? Você não poderá reativar posteriormente, mas o participante pode ativar sua própria câmera a qualquer momento.", + "muteParticipantsVideoDialogModerationOn": "Tem certeza de que deseja desativar a câmera deste participante? Você e o participante não poderão reativar posteriormente.", + "muteParticipantsVideoTitle": "Desativar a câmera deste participante?", + "noDropboxToken": "Nenhum token do Dropbox válido", + "password": "Senha", + "passwordLabel": "A reunião foi bloqueada por um participante. Por favor, insira a $t(lockRoomPassword) para entrar.", + "passwordNotSupported": "A configuração de uma reunião $t(lockRoomPassword) não é suportada.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) não suportado", + "passwordRequired": "$t(lockRoomPasswordUppercase) requerido", + "permissionCameraRequiredError": "É necessário permitir acesso à câmera para participar de reuniões com vídeo. Ative a permissão nas configurações", + "permissionErrorTitle": "Permissão necessária", + "permissionMicRequiredError": "É necessário permitir acesso ao microfone para participar de reuniões com áudio. Ative a permissão nas configurações", + "readMore": "mais…", + "recentlyUsedObjects": "Seus objetos usados recentemente", + "recording": "Gravando", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Não é possível transmitir enquanto a gravação está ativa", + "rejoinNow": "Reconectar agora", + "remoteControlAllowedMessage": "{{user}} aceitou sua requisição de controle remoto!", + "remoteControlDeniedMessage": "{{user}} rejeitou sua requisição de controle remoto!", + "remoteControlErrorMessage": "Um erro ocorreu enquanto tentava requerer a permissão de controle remoto de {{user}}!", + "remoteControlRequestMessage": "Deseja permitir que {{user}} controle remotamente sua área de trabalho?", + "remoteControlShareScreenWarning": "Note que se você pressionar \"Permitir\" você vai compartilhar sua tela!", + "remoteControlStopMessage": "A sessão de controle remoto terminou!", + "remoteControlTitle": "Conexão de área de trabalho remota", + "remoteUserControls": "Controles de usuários remotos de {{username}}", + "removePassword": "Remover $t(lockRoomPassword)", + "removeSharedVideoMsg": "Deseja remover seu vídeo compartilhado?", + "removeSharedVideoTitle": "Remover vídeo compartilhado", + "renameBreakoutRoomLabel": "Nome da sala", + "renameBreakoutRoomTitle": "Renomear sala de apoio", + "reservationError": "Erro de sistema de reserva", + "reservationErrorMsg": "Código do erro: {{code}}, mensagem: {{msg}}", + "retry": "Tentar novamente", + "screenSharingAudio": "Compartilhar áudio", + "screenSharingFailed": "Oops! Alguma coisa de errado aconteceu, não é possível habilitar o compartilhamento de tela!", + "screenSharingFailedTitle": "Falha ao compartilhar a tela!", + "screenSharingPermissionDeniedError": "Oops! Alguma coisa está errada com suas permissões de compartilhamento de tela. Recarregue e tente de novo.", + "searchInSalesforce": "Pesquisar no Salesforce", + "searchResults": "Resultados da pesquisa({{count}})", + "searchResultsDetailsError": "Algo de errado ocorreu ao recuperar os dados do proprietário.", + "searchResultsError": "Algo de errado ocorreu ao recuperar os dados.", + "searchResultsNotFound": "A pesquisa não trouxe resultados.", + "searchResultsTryAgain": "Tente usar termos diferentes.", + "sendPrivateMessage": "Você enviou uma mensagem privada recentemente. Tem intenção de responder em privado, ou deseja enviar sua mensagem para o grupo?", + "sendPrivateMessageCancel": "Enviar para o grupo", + "sendPrivateMessageOk": "Enviar em privado", + "sendPrivateMessageTitle": "Enviar em privado?", + "serviceUnavailable": "Serviço indisponível", + "sessTerminated": "Chamada encerrada", + "sessTerminatedReason": "A chamada foi encerrada", + "sessionRestarted": "Chamada reiniciada devido a um erro de conexão.", + "shareAudio": "Continuar", + "shareAudioAltText": "para compartilhar o conteúdo desejado, acesse \"Aba de navegador\", selecione o conteúdo, ative a caixa de \"compartilhar áudio\" e então clique no botão \"compartilhar\"", + "shareAudioTitle": "Como compartilhar áudio", + "shareAudioWarningD1": "você precisa parar o compartilhamento de tela antes de compartilhar seu áudio.", + "shareAudioWarningD2": "você precisa reiniciar o compartilhamento de tela e selecionar a opção \"compartilhar áudio\".", + "shareAudioWarningH1": "Se você quiser compartilhar apenas seu áudio:", + "shareAudioWarningTitle": "Você precisa parar o compartilhamento de tela antes de compartilhar seu áudio", + "shareMediaWarningGenericH2": "Se você quiser compartilhar sua tela e seu áudio", + "shareScreenWarningD1": "você precisa parar o compartilhamento de áudio antes de compartilhar sua tela.", + "shareScreenWarningD2": "você precisa parar o compartilhamento de áudio, iniciar o compartilhamento de tela e selecionar a opção \"compartilhar áudio\".", + "shareScreenWarningH1": "Se você quiser compartilhar apenas sua tela:", + "shareScreenWarningTitle": "Você precisa parar o compartilhamento de áudio antes de compartilhar sua tela", + "shareVideoLinkError": "Por favor, forneça um link correto.", + "shareVideoTitle": "Compartilhar um vídeo", + "shareYourScreen": "Compartilhar sua tela", + "shareYourScreenDisabled": "Compartilhamento de tela desativada.", + "sharedVideoDialogError": "Erro: URL inválida", + "sharedVideoLinkPlaceholder": "link do YouTube ou link direto de vídeo", + "show": "Exibir", + "start": "Iniciar ", + "startLiveStreaming": "Iniciar transmissão ao vivo", + "startRecording": "Iniciar gravação", + "startRemoteControlErrorMessage": "Um erro ocorreu enquanto tentava iniciar uma sessão de controle remoto!", + "stopLiveStreaming": "Parar transmissão ao vivo", + "stopRecording": "Parar a gravação", + "stopRecordingWarning": "Tem certeza que deseja parar a gravação?", + "stopStreamingWarning": "Tem certeza que deseja parar a transmissão ao vivo?", + "streamKey": "Chave para transmissão ao vivo", + "thankYou": "Obrigado por usar o {{appName}}!", + "token": "token", + "tokenAuthFailed": "Desculpe, você não está autorizado a entrar nesta chamada.", + "tokenAuthFailedReason": { + "audInvalid": "Valor `aud` inválido. Deveria ser `jitsi`.", + "contextNotFound": "O objeto `context` está faltando na carga.", + "expInvalid": "Valor `exp`inválido.", + "featureInvalid": "Recurso inválido: {{feature}}, possivelmente ainda não implementado.", + "featureValueInvalid": "Valor inválido para recurso: {{feature}}.", + "featuresNotFound": "O objeto `features` está faltando na carga.", + "headerNotFound": "Cabeçalho está faltando.", + "issInvalid": "Valor `iss` inválido. Deveria ser `chat`.", + "kidMismatch": "Key ID (kid) não coincide com o sub.", + "kidNotFound": "Key ID (kid) faltando.", + "nbfFuture": "O valor `nbf` está no futuro.", + "nbfInvalid": "Valor `nbf` inválido.", + "payloadNotFound": "Carga faltando.", + "tokenExpired": "O token está expirado." + }, + "tokenAuthFailedTitle": "Falha de autenticação", + "tokenAuthFailedWithReasons": "Desculpe, você não pode ingressar nesta chamada. Razões possíveis: {{reason}}", + "tokenAuthUnsupported": "Token da URL não é suportada.", + "transcribing": "Transcrevendo", + "unlockRoom": "Remove a reunião $t(lockRoomPassword)", + "user": "Usuário", + "userIdentifier": "identificação do usuário", + "userPassword": "senha do usuário", + "verifyParticipantConfirm": "Coincidem", + "verifyParticipantDismiss": "Não coincidem", + "verifyParticipantQuestion": "EXPERIMENTAL: Pergunta ao participante {{participantName}} se ele vê o mesmo conteúdo na mesma ordem.", + "verifyParticipantTitle": "Verificação de usuário", + "videoLink": "Link do vídeo", + "viewUpgradeOptions": "Ver opções de atualização", + "viewUpgradeOptionsContent": "Para obter acesso ilimitado a recursos premium tais como gravação, transcrição, streaming RTMP e muito mais, você precisa atualizar seu plano.", + "viewUpgradeOptionsTitle": "Você descobriu um recurso premium!", + "whiteboardLimitContent": "Desculpe, o limite de usuários de quadro-branco simultâneos foi atingido.", + "whiteboardLimitReference": "Para mais informações por favor visite", + "whiteboardLimitReferenceUrl": "nosso website", + "whiteboardLimitTitle": "Restrição no uso do quadro-branco", + "yourEntireScreen": "Toda sua tela" + }, + "documentSharing": { + "title": "Documento compartilhado" + }, + "e2ee": { + "labelToolTip": "Comunição de áudio e vídeo da reunião encriptados ponto a ponto" + }, + "embedMeeting": { + "title": "Reunião em formato compacto" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Sua escolha: {{rating}}" + }, + "average": "Média", + "bad": "Ruim", + "detailsLabel": "Nos conte mais sobre isso.", + "good": "Boa", + "rateExperience": "Avalie sua experiência na reunião", + "star": "Estrela", + "veryBad": "Muito ruim", + "veryGood": "Muito boa" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniaturas de vídeo" + } + }, + "giphy": { + "noResults": "Nenhum resultado encontrado :(", + "search": "Buscar GIPHY" + }, + "incomingCall": { + "answer": "Responder", + "audioCallTitle": "Chamada recebida", + "decline": "Dispensar", + "productLabel": "do Jitsi Meet", + "videoCallTitle": "Chamada de vídeo recebida" + }, + "info": { + "accessibilityLabel": "Mostrar info", + "addPassword": "Adicione $t(lockRoomPassword)", + "cancelPassword": "Cancela $t(lockRoomPassword)", + "conferenceURL": "Link:", + "copyNumber": "Copiar número", + "country": "País", + "dialANumber": "Para entrar na reunião, disque um desses números e depois insira o PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Desculpe, a discagem não é atualmente suportada.", + "dialInNumber": "Discar:", + "dialInSummaryError": "Ocorreu um erro ao buscar a informação de discagem. Tente novamente mais tarde.", + "dialInTollFree": "Chamada gratuita", + "genericError": "Oops, alguma coisa deu errado.", + "inviteLiveStream": "Para ver a transmissão ao vivo da reunião, clique no link: {{url}}", + "invitePhone": "Para participar por telefone, toque aqui: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Procurando um número de discagem diferente?\nVeja os números de discagem da reunião: {{url}} \n\n\nSe você também estiver discando através de um telefone da sala, participe sem conectar-se ao áudio: {{silentUrl}}", + "inviteSipEndpoint": "Para participar usando o endereço SIP, insira isto: {{sipUri}}", + "inviteTextiOSInviteUrl": "Clique no seguinte link para entrar: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Se você estiver discando através de um telefone da sala, use este link para participar sem conectar-se ao áudio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} está convidando você para uma reunião.", + "inviteTextiOSPhone": "Para participar por telefone, use este número: {{number}},,{{conferenceID}}#. Se você estiver procurando um número diferente, esta é a lista completa: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Você foi convidado para uma reunião.", + "inviteURLFirstPartPersonal": "{{name}} está convidando você para uma reunião.\n", + "inviteURLSecondPart": "\nEntre na reunião:\n{{url}}\n", + "label": "Informações da reunião", + "liveStreamURL": "Transmissão ao vivo:", + "moreNumbers": "Mais números", + "noNumbers": "Sem números de discagem.", + "noPassword": "Nenhum", + "noRoom": "Nenhuma sala foi especificada para entrar.", + "numbers": "Números de discagem", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Você atingiu o limite do seu plano.", + "sip": "endereço SIP", + "sipAudioOnly": "Endereço apenas para áudio SIP", + "title": "Compartilhar", + "tooltip": "Compartilhar link e discagem para esta reunião", + "upgradeOptions": "Por favor, verifique as opções de upgrade em" + }, + "inlineDialogFailure": { + "msg": "Tivemos um pequeno problema.", + "retry": "Tentar novamente", + "support": "Suporte", + "supportMsg": "Se isso continuar acontecendo, chegar a" + }, + "inviteDialog": { + "alertText": "Não foi possível convidar alguns participantes.", + "header": "Convidar", + "searchCallOnlyPlaceholder": "Digite o número do telefone", + "searchPeopleOnlyPlaceholder": "Buscar participantes", + "searchPlaceholder": "Participante ou nº de telefone", + "send": "Enviar" + }, + "jitsiHome": "Logo de {{logo}} (direciona para página inicial)", + "keyboardShortcuts": { + "focusLocal": "Focar no seu vídeo", + "focusRemote": "Focar no vídeo de outro participante", + "fullScreen": "Entrar ou sair da tela cheia", + "giphyMenu": "Alternar menu do GIPHY", + "keyboardShortcuts": "Atalhos de teclado", + "localRecording": "Mostrar ou ocultar controles de gravação local", + "mute": "Deixar mudo ou não o microfone", + "pushToTalk": "Pressione para falar", + "raiseHand": "Erga ou baixe sua mão", + "showSpeakerStats": "Exibir estatísticas do alto falante", + "toggleChat": "Abrir ou fechar o painel de bate-papo", + "toggleFilmstrip": "Mostrar ou ocultar miniaturas de vídeo", + "toggleParticipantsPane": "Exibir ou ocultar o quadro de participantes", + "toggleScreensharing": "Trocar entre câmera e compartilhamento de tela", + "toggleShortcuts": "Mostrar ou ocultar atalhos de teclado", + "videoMute": "Iniciar ou parar sua câmera" + }, + "largeVideo": { + "screenIsShared": "Você está compartilhando sua tela", + "showMeWhatImSharing": "Me mostre o que estou compartilhando" + }, + "liveStreaming": { + "busy": "Estamos trabalhando para liberar os recursos de transmissão. Tente novamente em alguns minutos.", + "busyTitle": "Todas as transmissões estão atualmente ocupadas", + "changeSignIn": "Alternar contas.", + "choose": "Escolha uma transmissão ao vivo", + "chooseCTA": "Escolha uma opção de transmissão. Você está conectado atualmente como {{email}}.", + "enterStreamKey": "Insira sua chave de transmissão ao vivo do YouTube aqui.", + "error": "Falha na transmissão ao vivo. Tente de novo.", + "errorAPI": "Ocorreu um erro ao acessar suas transmissões do YouTube. Por favor tente logar novamente.", + "errorLiveStreamNotEnabled": "Transmissão ao vivo não está ativada em {{email}}. Ative a transmissão ao vivo ou registre numa conta com transmissão ao vivo ativada.", + "expandedOff": "A transmissão ao vivo foi encerrada", + "expandedOn": "A reunião está sendo transmitida pelo YouTube.", + "expandedPending": "Iniciando a transmissão ao vivo…", + "failedToStart": "Falha ao iniciar a transmissão ao vivo", + "getStreamKeyManually": "Não conseguimos buscar nenhuma transmissão ao vivo. Tente obter sua chave de transmissão ao vivo no YouTube.", + "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", + "onBy": "{{name}} iniciou a transmissão ao vivo", + "pending": "Iniciando Transmissão ao Vivo…", + "serviceName": "Serviço de Transmissão ao Vivo", + "sessionAlreadyActive": "Esta sessão já está sendo gravada ou em live streaming.", + "signIn": "Faça login no Google", + "signInCTA": "Faça login ou insira sua chave de transmissão ao vivo do YouTube.", + "signOut": "Sair", + "signedInAs": "Você está conectado como:", + "start": "Iniciar uma transmissão ao vivo", + "streamIdHelp": "O que é isso?", + "title": "Transmissão ao vivo", + "unavailableTitle": "Transmissão ao vivo indisponível", + "youtubeTerms": "Termos de serviços do YouTube" + }, + "lobby": { + "backToKnockModeButton": "Sem senha, peça para se juntar", + "chat": "Chat", + "dialogTitle": "Modo sala de espera", + "disableDialogContent": "O modo sala de espera está habilitado. Este recurso evita que particpantes não convidados juntem-se à sua conferência. Deseja desabilitar?", + "disableDialogSubmit": "Desabilitar", + "emailField": "Informe seu email", + "enableDialogPasswordField": "Definir senha (opcional)", + "enableDialogSubmit": "Habilitar", + "enableDialogText": "O modo sala de espera protege a sua conferência, permitindo a entrada de participantes apenas após a aprovação formal do moderador.", + "enterPasswordButton": "Informe a senha da conferência", + "enterPasswordTitle": "Informe a senha para se juntar à conferência", + "errorMissingPassword": "Por favor informe a senha da conferência", + "invalidPassword": "Senha inválida", + "joinRejectedMessage": "Sua solicitação de participação foi rejeitada pelo moderador.", + "joinRejectedTitle": "Solicitação de participação recusada", + "joinTitle": "Junte-se à conferência", + "joinWithPasswordMessage": "Tentando entrar com a senha, por favor aguarde…", + "joiningMessage": "Você se juntará à conferência tão logo alguém aprove sua solicitação", + "joiningTitle": "Pedindo para se juntar à conferência…", + "joiningWithPasswordTitle": "Participando com senha…", + "knockButton": "Peça para participar", + "knockTitle": "Alguém deseja participar da conferência", + "knockingParticipantList": "Remover lista de participantes", + "lobbyChatStartedNotification": "{{moderator}} iniciou uma conversa na sala de espera com {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} iniciou uma conversa na sala de espera com você.", + "lobbyClosed": "A sala de espera foi fechada.", + "nameField": "Informe seu nome", + "notificationLobbyAccessDenied": "{{targetParticipantName}} foi rejeitado por {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} foi aceito por {{originParticipantName}}", + "notificationLobbyDisabled": "Sala de espera foi desabilitada por {{originParticipantName}}", + "notificationLobbyEnabled": "Sala de espera foi habilitada por {{originParticipantName}}", + "notificationTitle": "Sala de espera", + "passwordJoinButton": "Solicitar", + "title": "Sala de espera", + "toggleLabel": "Habilitar sala de espera" + }, + "localRecording": { + "clientState": { + "off": "Desligado", + "on": "Ligado", + "unknown": "Desconhecido" + }, + "dialogTitle": "Controles da Gravação Local", + "duration": "Duração", + "durationNA": "N/D", + "encoding": "Codificando", + "label": "LOR", + "labelToolTip": "Gravação local ativada", + "localRecording": "Gravação local", + "me": "Eu", + "messages": { + "engaged": "Gravação local iniciada.", + "finished": "Sessão de gravação {{token}} terminada. Por favor, envie o arquivo gravado para o moderador.", + "finishedModerator": "Sessão de gravação {{token}} terminada. A gravação da faixa local foi salva. Por favor, peça aos outros participantes para enviar suas gravações.", + "notModerator": "Você não é o moderador. Você não pode iniciar ou parar a gravação local." + }, + "moderator": "Moderador", + "no": "Não", + "participant": "Participante", + "participantStats": "Estatísticas dos Participantes", + "selectTabTitle": "🎥 Por favor selecione esta aba para gravar", + "sessionToken": "Token de sessão", + "start": "Iniciar gravação", + "stop": "Parar a gravação", + "stopping": "Parando a gravação", + "wait": "Por favor aguarde enquanto salvamos sua gravação", + "yes": "Sim" + }, + "lockRoomPassword": "senha", + "lockRoomPasswordUppercase": "Senha", + "lonelyMeetingExperience": { + "button": "Convidar outros", + "youAreAlone": "Você é o único na reunião" + }, + "me": "eu", + "notify": { + "OldElectronAPPTitle": "Vulnerabilidade de segurança!", + "allowAction": "Permitir", + "allowedUnmute": "Você pode religar seu microfone, ativar sua câmera ou compartilhar sua tela.", + "audioUnmuteBlockedDescription": "A liberação do microfone foi temporariamente bloqueada devido a limites do sistema.", + "audioUnmuteBlockedTitle": "Microfone bloqueado!", + "chatMessages": "Mensagens do chat", + "connectedOneMember": "{{name}} entrou na reunião", + "connectedThreePlusMembers": "{{name}} e outros {{count}} entraram na reunião", + "connectedTwoMembers": "{{first}} e {{second}} entraram na reunião", + "dataChannelClosed": "Qualidade do vídeo prejudicada", + "dataChannelClosedDescription": "O canal da ponte foi desconectado, assim a qualidade do vídeo foi limitada a sua configuração mais baixa.", + "disabledIframe": "Incorporação destina-se apenas a fins de demonstração, assim esta chamada será desconectada em {{timeout}} minutos.", + "disabledIframeSecondary": "Incorporação de {{domain}} é apenas destinado para fins de demonstração, então esta chamada será desconectada em {{timeout}} minutos. Por favor use o Jitsi as a Service para incorporação em produção!", + "disconnected": "desconectado", + "displayNotifications": "Exibir notificações para", + "dontRemindMe": "Não me lembrar", + "focus": "Foco da conferência", + "focusFail": "{{component}} não disponível - tente em {{ms}} seg", + "gifsMenu": "GIPHY", + "groupTitle": "Notificações", + "hostAskedUnmute": "O anfitrião deseja que você ative o som", + "invitedOneMember": "{{name}} foi convidado(a)", + "invitedThreePlusMembers": "{{name}} e {{count}} outros foram convidados", + "invitedTwoMembers": "{{first}} e {{second}} foram convidados", + "joinMeeting": "Participar", + "kickParticipant": "{{kicked}} foi removido por {{kicker}}", + "leftOneMember": "{{name}} saiu da reunião", + "leftThreePlusMembers": "{{name}} e muitos outros saíram da reunião", + "leftTwoMembers": "{{first}} e {{second}} saíram da reunião", + "linkToSalesforce": "Link para Salesforce", + "linkToSalesforceDescription": "Você pode vincular o sumário da reunião a um objeto do Salesforce.", + "linkToSalesforceError": "Falha ao vincular reunião ao Salesforce", + "linkToSalesforceKey": "Vincular esta reunião", + "linkToSalesforceProgress": "Vinculando reunião ao Salesforce…", + "linkToSalesforceSuccess": "A reunião foi vinculada ao Salesforce", + "localRecordingStarted": "{{name}} iniciou uma gravação local.", + "localRecordingStopped": "{{name}} parou uma gravação local.", + "me": "Eu", + "moderationInEffectCSDescription": "Levante a mão se quiser compartilhar seu vídeo", + "moderationInEffectCSTitle": "O compartilhamento de conteúdo foi desativado pelo moderador", + "moderationInEffectDescription": "Levante a mão se quiser falar", + "moderationInEffectTitle": "O microfone foi silenciado pelo moderador", + "moderationInEffectVideoDescription": "Levante a mão se quiser que seu vídeo fique visível", + "moderationInEffectVideoTitle": "O vídeo foi desativado pelo moderador", + "moderationRequestFromModerator": "O anfitrião deseja que você ative o som", + "moderationRequestFromParticipant": "Quer falar", + "moderationStartedTitle": "Moderação iniciada", + "moderationStoppedTitle": "Moderação encerrada", + "moderationToggleDescription": "por {{participantDisplayName}}", + "moderator": "Direitos de moderador concedidos!", + "muted": "Você iniciou uma conversa em mudo.", + "mutedRemotelyDescription": "Você sempre pode ativar o som quando estiver pronto para falar. Retire o som quando terminar para manter o ruído longe da reunião.", + "mutedRemotelyTitle": "Você foi silenciado por {{participantDisplayName}}!", + "mutedTitle": "Você está mudo!", + "newDeviceAction": "Usar", + "newDeviceAudioTitle": "Novo dispositivo de áudio detectado", + "newDeviceCameraTitle": "Nova câmera detectada", + "noiseSuppressionDesktopAudioDescription": "A supressão de ruído não pode ser habilitada enquanto compartilha o áudio da área de trabalho. Por favor desabilite e tente novamente.", + "noiseSuppressionFailedTitle": "Falha ao iniciar a supressão de ruído", + "noiseSuppressionStereoDescription": "Supressão de ruído de áudio estéreo não é suportado no momento.", + "oldElectronClientDescription1": "Você está usando um versão antiga do cliente Jitsi Meet que possui uma conhecida vulnerabilidade de segurança. Por favor tenha certeza de atulizar para a nossa ", + "oldElectronClientDescription2": "última versão", + "oldElectronClientDescription3": " agora!", + "participantWantsToJoin": "Deseja entrar na reunião", + "participantsWantToJoin": "Desejam entrar na reunião", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removido por outro participante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) definido por outro participante", + "raiseHandAction": "Levantar a mão", + "raisedHand": "{{name}} gostaria de falar.", + "raisedHands": "{{participantName}} e {{raisedHands}} outras pessoas", + "reactionSounds": "Desabilitar sons", + "reactionSoundsForAll": "Desabilitar sons para todos", + "screenShareNoAudio": "O compartilhamento de áudio não foi selecionado na tela de escolha de janela.", + "screenShareNoAudioTitle": "Compartilhamento de áudio não selecionado", + "screenSharingAudioOnlyDescription": "Por favor perceba que ao compartilhar sua tela você estará afetando o modo de \"Melhor performance\" e irá usar mais banda de rede.", + "screenSharingAudioOnlyTitle": "Modo de \"Melhor performance\"", + "selfViewTitle": "Você pode habilitar a auto-visualização nas configurações a qualquer momento", + "somebody": "Alguém", + "startSilentDescription": "Volte à reunião para habilitar o áudio", + "startSilentTitle": "Você entrou sem saída de áudio!", + "suboptimalBrowserWarning": "Tememos que sua experiência de reunião não seja tão boa aqui. Estamos procurando maneiras de melhorar isso, mas até então, tente usar um dos navegadores completamente suportados.", + "suboptimalExperienceTitle": "Alerta do navegador", + "unmute": "Ativar som", + "videoMutedRemotelyDescription": "Você pode ativar sua câmera a qualquer momento.", + "videoMutedRemotelyTitle": "Sua câmera foi desativada por {{participantDisplayName}}!", + "videoUnmuteBlockedDescription": "A liberação da câmera e compartilhamento de tela foram temporariamente bloqueados devido a limites do sistema.", + "videoUnmuteBlockedTitle": "Câmera e compartilhamento de tela bloqueados!", + "viewLobby": "Ver sala de espera", + "waitingParticipants": "{{waitingParticipants}} pessoas", + "whiteboardLimitDescription": "Por favor, salve seu progresso pois o limite de usuários logo será atingido e o quadro-branco será fechado.", + "whiteboardLimitTitle": "Uso do quadro-branco" + }, + "participantsPane": { + "actions": { + "admit": "Aceitar", + "admitAll": "Aceitar todos", + "allow": "Permitir aos participantes:", + "allowVideo": "Permitir vídeo", + "askUnmute": "Pedir para ativar som", + "audioModeration": "Reativarem seus sons", + "blockEveryoneMicCamera": "Bloquear microfone e câmera de todos", + "breakoutRooms": "Salas de apoio", + "invite": "Convidar alguém", + "moreModerationActions": "Mais opções de moderação", + "moreModerationControls": "Mais controles de moderação", + "moreParticipantOptions": "Mais opções de participante", + "mute": "Silenciar", + "muteAll": "Silenciar todos", + "muteEveryoneElse": "Silenciar todos os demais", + "reject": "Rejeitar", + "stopEveryonesVideo": "Parar vídeo de todos", + "stopVideo": "Parar vídeo", + "unblockEveryoneMicCamera": "Desbloquear microfone e câmera de todos", + "videoModeration": "Ativarem seus vídeos" + }, + "close": "Fechar", + "headings": { + "lobby": "Sala de espera ({{count}})", + "participantsList": "Participantes da reunião ({{count}})", + "visitors": "Visitantes ({{count}})", + "waitingLobby": "Aguardando na sala de espera ({{count}})" + }, + "search": "Buscar participantes", + "title": "Participantes" + }, + "passwordDigitsOnly": "Até {{number}} dígitos", + "passwordSetRemotely": "Definido por outro participante", + "pinParticipant": "{{participantName}} - Fixar", + "pinnedParticipant": "O participante está fixado", + "polls": { + "answer": { + "skip": "Desistir", + "submit": "Enviar" + }, + "by": "Por {{ name }}", + "create": { + "addOption": "Adicionar opção", + "answerPlaceholder": "Opção {{index}}", + "cancel": "Cancelar", + "create": "Iniciar uma votação", + "pollOption": "Opção {{index}}", + "pollQuestion": "Pergunta", + "questionPlaceholder": "Faça uma pergunta", + "removeOption": "Remover opção", + "send": "Enviar" + }, + "errors": { + "notUniqueOption": "As opções devem ser exclusivas" + }, + "notification": { + "description": "Abra a aba das votações para votar", + "title": "Uma nova votação foi iniciada nesta conferência" + }, + "results": { + "changeVote": "Mudar voto", + "empty": "Não há votações nesta reunião por enquanto. Inicie uma votação aqui!", + "hideDetailedResults": "Ocultar detalhes", + "showDetailedResults": "Mostrar detalhes", + "vote": "Voto" + } + }, + "poweredby": "distribuído por", + "prejoin": { + "audioAndVideoError": "Erro de áudio e vídeo error:", + "audioDeviceProblem": "Tem um problema com seu dispositivo de áudio", + "audioOnlyError": "Erro de áudio:", + "audioTrackError": "Não é possível criar a faixa de áudio.", + "callMe": "Me ligue", + "callMeAtNumber": "Me ligue nesse número:", + "calling": "Ligando", + "configuringDevices": "Configurando dispositivos…", + "connectedWithAudioQ": "Você está conectado com áudio?", + "connection": { + "good": "Sua conexão com a internet parece boa!", + "nonOptimal": "Sua conexão com a internet não é boa", + "poor": "Você tem uma conexão a internet ruim" + }, + "connectionDetails": { + "audioClipping": "Espera-se um áudio que pique.", + "audioHighQuality": "Espera-se um áudio de excelente qualidade.", + "audioLowNoVideo": "Espera-se uma qualidade baixa de áudio e sem vídeo.", + "goodQuality": "Muito bom! Qualidade da mídia será muito boa.", + "noMediaConnectivity": "Não conseguimos estabelcer conexão com as mídias para o teste. Normalmente é um problema de firewall ou NAT.", + "noVideo": "Espera-se um vídeo de qualidade ruim.", + "undetectable": "Se você continuar fazendo a chamada no browser, recomenda-se que o alto-falante, microfones e câmera estejam corretamente configurados, que você permitiu que o browser acesse seu microfone e câmera, e o browser esteja atualizado. Se ainda assim tenha problemas na chamada, contacte o desenvolvedor da aplicação.", + "veryPoorConnection": "Espera-se que a qualidade da chamada seja ruim.", + "videoFreezing": "Espera-se um vídeo congelado, preto ou pixelado.", + "videoHighQuality": "Espera-se um vídeo de boa qualidade.", + "videoLowQuality": "Espera-se um vídeo de baixa qualidade em termos de taxa de frame e resolução.", + "videoTearing": "Espera-se um vídeo pixelado ou com artefatos visuais." + }, + "copyAndShare": "Copiar e compartilhar o link da reunião", + "dialInMeeting": "Discar para a reunião", + "dialInPin": "Discar para a reunião e inserir o código PIN:", + "dialing": "Discando", + "doNotShow": "Não mostre esta tela novamente", + "errorDialOut": "Não é possível discar", + "errorDialOutDisconnected": "Não é possível discar. Desconectando", + "errorDialOutFailed": "Não é possível discar. Chamada finalizada", + "errorDialOutStatus": "Erro ao tentar discar", + "errorMissingName": "Por favor entre com seu nome para participar da reunião", + "errorNoPermissions": "Você precisa permitir acesso ao microfone e à câmera", + "errorStatusCode": "Erro ao discar, código de estado: {{status}}", + "errorValidation": "Validação do número falhou", + "iWantToDialIn": "Eu quere discar", + "initiated": "Chamada iniciada", + "joinAudioByPhone": "Participar com o áudio via ligação", + "joinMeeting": "Participar da reunião", + "joinMeetingInLowBandwidthMode": "Participar no modo de banda baixa", + "joinWithoutAudio": "Participar sem áudio", + "keyboardShortcuts": "Habilitar atalhos de teclado", + "linkCopied": "Link copiado para a área de transferência", + "lookGood": "Seu microfone está funcionando corretamente", + "or": "ou", + "premeeting": "Pré-reunião", + "proceedAnyway": "Prosseguir mesmo assim", + "screenSharingError": "Erro de compartilhamento de tela:", + "startWithPhone": "Iniciar com o áudio da ligação", + "unsafeRoomConsent": "Eu entendo os riscos, desejo ingressar na reunião", + "videoOnlyError": "Erro de vídeo:", + "videoTrackError": "Não é possível criar faixa de vídeo.", + "viewAllNumbers": "veja todos os números" + }, + "presenceStatus": { + "busy": "Ocupado", + "calling": "Chamando…", + "connected": "Conectado", + "connecting": "Conectando…", + "connecting2": "Conectando*…", + "disconnected": "Desconectado", + "expired": "Expirado", + "ignored": "Ignorado", + "initializingCall": "Iniciando Chamada…", + "invited": "Convidar", + "rejected": "Rejeitado", + "ringing": "Tocando…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Definir seu nome de exibição", + "setEmailInput": "Digite email", + "setEmailLabel": "Definir seu email de Gravatar", + "title": "Perfil" + }, + "raisedHand": "Gostaria de falar", + "raisedHandsLabel": "Número de mãos levantadas", + "record": { + "already": { + "linked": "A reunião já está vinculada a este objeto do Salesforce" + }, + "type": { + "account": "Conta", + "contact": "Contato", + "lead": "Lead", + "opportunity": "Oportunidade", + "owner": "Proprietário" + } + }, + "recording": { + "authDropboxText": "Enviar para o Dropbox", + "availableSpace": "Espaço disponível: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de gravação)", + "beta": "BETA", + "busy": "Estamos trabalhando para liberar recursos de gravação. Tente novamente em alguns minutos.", + "busyTitle": "Todas as gravações estão atualmente ocupadas", + "copyLink": "Copiar Link", + "error": "A gravação falhou. Tente novamente.", + "errorFetchingLink": "Erro ao buscar link da gravação.", + "expandedOff": "Gravação finalizada", + "expandedOn": "A reunião está sendo gravada.", + "expandedPending": "Iniciando gravação…", + "failedToStart": "Falha ao iniciar a gravação", + "fileSharingdescription": "Compartilhar gravação com participantes da reunião", + "highlight": "Destaque", + "highlightMoment": "Momento de destaque", + "highlightMomentDisabled": "Você pode destacar momentos quando a gravação começar", + "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.", + "localRecordingNoVideo": "O vídeo não está sendo gravado", + "localRecordingStartWarning": "Por favor, certifique-se de ter parado a gravação antes de sair da reunião para garantir que será salva.", + "localRecordingStartWarningTitle": "Parar a gravação para salvá-la", + "localRecordingVideoStop": "Ao parar o seu vídeo a gravação local também será parada. Tem certeza que deseja continuar?", + "localRecordingVideoWarning": "Para gravar o seu vídeo você precisa ativá-lo antes de inicar a gravação", + "localRecordingWarning": "Tenha certeza de selecionar a aba atual para usar o áudio e vídeo corretos.", + "loggedIn": "Conectado como {{userName}}", + "noMicPermission": "Trilha para o microfone não pôde ser criada. Por favor conceda permissão para usar o microfone.", + "noStreams": "Nenhum fluxo de áudio ou vídeo detectado.", + "off": "Gravação parada", + "offBy": "{{name}} parou a gravação", + "on": "Gravando", + "onBy": "{{name}} iniciou a gravação", + "onlyRecordSelf": "Gravar apenas o meu fluxo de áudio e vídeo", + "pending": "Preparando para gravar a reunião…", + "rec": "REC", + "saveLocalRecording": "Salvar o arquivo de gravação localmente (Beta)", + "serviceDescription": "Sua gravação será salva pelo serviço de gravação", + "serviceDescriptionCloud": "Gravação na nuvem", + "serviceDescriptionCloudInfo": "Reuniões gravadas são removidas automaticamente 24h após a hora da gravação.", + "serviceName": "Serviço de gravação", + "sessionAlreadyActive": "Esta sessão já está sendo gravada ou em live streaming", + "signIn": "Entrar", + "signOut": "Sair", + "surfaceError": "Por favor selecione a aba atual.", + "title": "Gravando", + "unavailable": "Oops! O {{serviceName}} está indisponível. Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.", + "unavailableTitle": "Gravação indisponível", + "uploadToCloud": "Enviar para a nuvem" + }, + "screenshareDisplayName": "Tela: {{name}}", + "sectionList": { + "pullToRefresh": "Puxe para atualizar" + }, + "security": { + "about": "Você pode adicionar $t(lockRoomPassword) a sua reunião. Participantes terão que fornecer $t(lockRoomPassword) antes de entrar na reunião.", + "aboutReadOnly": "Moderadores podem adicionar $t(lockRoomPassword) à reunião. Participantes terão que fornecer $t(lockRoomPassword) antes de entrar na reunião.", + "insecureRoomNameWarningNative": "O nome da sala é não é seguro. Participantes não desejados podem ingressar na reunião. {{recommendAction}} Saiba mais sobre como proteger sua reunião ", + "insecureRoomNameWarningWeb": "O nome da sala é não é seguro. Participantes não desejados podem ingressar na reunião. {{recommendAction}} Saiba mais sobre como proteger sua reunião aqui.", + "title": "Opções de segurança", + "unsafeRoomActions": { + "meeting": "Considere usar o botão de segurança para proteger sua reunião.", + "prejoin": "Considere usar um nome de reunião não-comum.", + "welcome": "Considere usar um nome de reunião não-comum ou selecione um das sugestões." + } + }, + "settings": { + "audio": "Áudio", + "buttonLabel": "Configurações", + "calendar": { + "about": "A integração do calendário {{appName}} é usada para acessar com segurança o seu calendário para que ele possa ler os próximos eventos.", + "disconnect": "Desconectar", + "microsoftSignIn": "Entrar com Microsoft", + "signedIn": "Atualmente acessando eventos do calendário para {{email}}. Clique no botão Desconectar abaixo para parar de acessar os eventos da agenda.", + "title": "Calendário" + }, + "desktopShareFramerate": "Taxa de quadros do compartilhamento de desktop", + "desktopShareHighFpsWarning": "Uma taxa de quadros mais alta para compartilhamento de desktop pode afetar sua largura de banda. Você precisa reiniciar o compartilhamento de tela para que as novas configurações tenham efeito.", + "desktopShareWarning": "Você precisa reiniciar o compartilhamento de tela para que as novas configurações tenham efeito.", + "devices": "Dispositivos", + "followMe": "Todos me seguem", + "framesPerSecond": "quadros por segundo", + "incomingMessage": "Mensagem recebida", + "language": "Idioma", + "loggedIn": "Conectado como {{name}}", + "maxStageParticipants": "Número máximo de participantes que podem ser fixados no palco principal", + "microphones": "Microfones", + "moderator": "Moderador", + "moderatorOptions": "Opções de moderador", + "more": "Mais", + "name": "Nome", + "noDevice": "Nenhum", + "notifications": "Notificações", + "participantJoined": "Participante entrou", + "participantKnocking": "Participante entrou na sala de espera", + "participantLeft": "Participante saiu", + "playSounds": "Tocar sons", + "reactions": "Reações da reunião", + "sameAsSystem": "Igual ao sistema ({{label}})", + "selectAudioOutput": "Saída de áudio", + "selectCamera": "Câmera", + "selectMic": "Microfone", + "selfView": "Auto-visualização", + "shortcuts": "Atalhos", + "speakers": "Alto-faltantes", + "startAudioMuted": "Todos iniciam mudos", + "startReactionsMuted": "Silenciar sons de reações para todos", + "startVideoMuted": "Todos iniciam ocultos", + "talkWhileMuted": "Falar mesmo silenciado", + "title": "Configurações", + "video": "Vídeo" + }, + "settingsView": { + "advanced": "Avançado", + "alertCancel": "Cancelar", + "alertOk": "OK", + "alertTitle": "Atenção", + "alertURLText": "A URL digitada do servidor é inválida", + "apply": "Aplicar", + "buildInfoSection": "Informações de compilação", + "conferenceSection": "Conferência", + "disableCallIntegration": "Desativar integração de chamada nativa", + "disableCrashReporting": "Desabilitar aviso de falha", + "disableCrashReportingWarning": "Tem certeza eue quer desabilitar o aviso de falha? A opção será habilitada após reiniciar o app.", + "disableP2P": "Desativar modo ponto a ponto", + "displayName": "Nome de exibição", + "displayNamePlaceholderText": "Ex: João Silva", + "email": "Email", + "emailPlaceholderText": "email@exemplo.com.br", + "gavatarMessage": "Se seu email está associado com uma conta Gravatar, o usaremos para exibir sua foto de perfil.", + "goTo": "Ir para", + "header": "Configurações", + "help": "Ajuda", + "links": "Links", + "privacy": "Privacidade", + "profileSection": "Perfil", + "sdkVersion": "Versão do SDK", + "serverURL": "URL do servidor", + "showAdvanced": "Mostrar configurações avançadas", + "startCarModeInLowBandwidthMode": "Iniciar modo carro em modo de banda baixa", + "startWithAudioMuted": "Iniciar sem áudio", + "startWithVideoMuted": "Iniciar sem vídeo", + "terms": "Termos", + "version": "Versão" + }, + "share": { + "dialInfoText": "\n\n=====\n\nDeseja apenas discar no seu telefone?\n\n{{defaultDialInNumber}}Clique neste link para ver os números de telefone para esta reunião\n{{dialInfoPageUrl}}", + "mainText": "Clique no seguinte link para entrar na reunião:\n{{roomUrl}}" + }, + "speaker": "Alto-falantes", + "speakerStats": { + "angry": "Zangado", + "disgusted": "Com nojo", + "displayEmotions": "Exibir emoções", + "fearful": "Com medo", + "happy": "Feliz", + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Nome", + "neutral": "Neutro", + "sad": "Triste", + "search": "Busca", + "searchHint": "Buscar participantes", + "seconds": "{{count}}s", + "speakerStats": "Estatísticas do apresentador", + "speakerTime": "Tempo do apresentador", + "surprised": "Surpreso" + }, + "startupoverlay": { + "genericTitle": "A reunião precisa usar seu microfone e câmera.", + "policyText": " ", + "title": "O {{app}} precisa usar seu microfone e câmera." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Reconectar", + "text": "Pressione o botão Reentrar para reconectar.", + "title": "Sua chamada de vídeo foi interrompida, porque seu computador foi dormir." + }, + "termsView": { + "title": "Termos" + }, + "toggleTopPanelLabel": "Alternar painel superior", + "toolbar": { + "Settings": "Configurações", + "accessibilityLabel": { + "Settings": "Alternar configurações", + "audioOnly": "Alternar para apenas áudio", + "audioRoute": "Selecionar o dispositivo de som", + "boo": "Vaia", + "breakoutRooms": "Entrar/sair da sala de apoio", + "callQuality": "Gerenciar qualidade do vídeo", + "carmode": "Modo carro", + "cc": "Alternar legendas", + "chat": "Alternar para janela de chat", + "clap": "Aplauso", + "closeChat": "Fechar chat", + "closeMoreActions": "Fechar o menu de mais ações", + "closeParticipantsPane": "Fechar painel de participantes", + "collapse": "Recolher", + "document": "Alternar para documento compartilhado", + "documentClose": "Fechar documento compartilhado", + "documentOpen": "Abrir documento compartilhado", + "download": "Baixe nossos aplicativos", + "embedMeeting": "Reunião em formato compacto", + "endConference": "Terminar para todos", + "enterFullScreen": "Ver em tela-cheia", + "enterTileView": "Entrar na visualização em blocos", + "exitFullScreen": "Sair da tela-cheia", + "exitTileView": "Sair da visualização em blocos", + "expand": "Expandir", + "feedback": "Deixar feedback", + "fullScreen": "Alternar para tela cheia", + "giphy": "Alternar menu do GIPHY", + "grantModerator": "Atribuir Moderador", + "hangup": "Sair da chamada", + "heading": "Barra de ferramentas", + "help": "Ajuda", + "hideWhiteboard": "Ocultar quadro-branco", + "invite": "Convidar pessoas", + "kick": "Remover participante", + "laugh": "Risada", + "leaveConference": "Sair da reunião", + "like": "Gostei", + "linkToSalesforce": "Link com o Salesforce", + "lobbyButton": "Habilitar/desabilitar sala de espera", + "localRecording": "Alternar controles de gravação local", + "lockRoom": "Ativar/desativar senha de reunião", + "lowerHand": "Abaixar a mão", + "moreActions": "Alternar mais menu de ações", + "moreActionsMenu": "Menu de mais ações", + "moreOptions": "Mostrar mais opções", + "mute": "Alternar mudo do áudio", + "muteEveryone": "Silenciar todos", + "muteEveryoneElse": "Silenciar todos os demais", + "muteEveryoneElsesVideoStream": "Parar o vídeo de todos os outros", + "muteEveryonesVideoStream": "Parar o vídeo de todos", + "muteGUMPending": "Conectando seu microfone", + "noiseSuppression": "Supressão de ruído", + "openChat": "Abrir chat", + "participants": "Participantes", + "pip": "Alternar modo Picture-in-Picture", + "privateMessage": "Enviar mensagem privada", + "profile": "Editar seu perfil", + "raiseHand": "Alternar levantar a mão", + "reactions": "Reações", + "reactionsMenu": "Abrir / fechar menu de reações", + "recording": "Alternar gravação", + "remoteMute": "Silenciar participante", + "remoteVideoMute": "Desativar a câmera do participante", + "security": "Opções de segurança", + "selectBackground": "Selecionar Fundo", + "selfView": "Alternar auto-visualização", + "shareRoom": "Convidar alguém", + "shareYourScreen": "Alternar compartilhamento de tela", + "shareaudio": "Compartilhar áudio", + "sharedvideo": "Alternar compartilhamento de vídeo", + "shortcuts": "Alternar atalhos", + "show": "Mostrar no palco", + "showWhiteboard": "Exibir quadro-branco", + "silence": "Silenciar", + "speakerStats": "Alternar estatísticas do apresentador", + "stopScreenSharing": "Parar de compartilhar sua tela", + "stopSharedVideo": "Parar vídeo", + "surprised": "Surpresa", + "tileView": "Alternar visualização em blocos", + "toggleCamera": "Alternar câmera", + "toggleFilmstrip": "Alterar tira de filme", + "unmute": "Ativar som", + "videoblur": "Alternar desfoque de vídeo", + "videomute": "Alternar mudo do vídeo", + "videomuteGUMPending": "Conectando sua câmera", + "videounmute": "Ativar câmera" + }, + "addPeople": "Adicionar pessoas à sua chamada", + "audioOnlyOff": "Desabilitar modo de largura de banda baixa", + "audioOnlyOn": "Habilitar modo de largura de banda baixa", + "audioRoute": "Selecionar o dispositivo de som", + "audioSettings": "Configurações de áudio", + "authenticate": "Autenticar", + "boo": "Vaia", + "callQuality": "Gerenciar qualidade do vídeo", + "chat": "Abrir ou fechar o bate-papo", + "clap": "Aplauso", + "closeChat": "Fechar chat", + "closeParticipantsPane": "Fechar painel de participantes", + "closeReactionsMenu": "Fechar menu de reações", + "disableNoiseSuppression": "Desabilitar supressão de ruído", + "disableReactionSounds": "Você pode desabilitar os sons de reação para esta reunião", + "documentClose": "Fechar documento compartilhado", + "documentOpen": "Abrir documento compartilhado", + "download": "Baixe nossos aplicativos", + "e2ee": "Encriptação ponto a ponto", + "embedMeeting": "Reunião em formato compacto", + "enableNoiseSuppression": "Habilitar supressão de ruído", + "endConference": "Terminar para todos", + "enterFullScreen": "Ver em tela cheia", + "enterTileView": "Entrar em exibição de bloco", + "exitFullScreen": "Sair da tela cheia", + "exitTileView": "Sair de exibição de bloco", + "feedback": "Deixar feedback", + "giphy": "Alternar menu do GIPHY", + "hangup": "Sair", + "help": "Ajuda", + "hideWhiteboard": "Ocultar quadro-branco", + "invite": "Convidar pessoas", + "joinBreakoutRoom": "Ingressar na sala de apoio", + "laugh": "Risada", + "leaveBreakoutRoom": "Sair da sala de apoio", + "leaveConference": "Sair da reunião", + "like": "Gostei", + "linkToSalesforce": "Link com o Salesforce", + "lobbyButtonDisable": "Desabilitar sala de espera", + "lobbyButtonEnable": "Habilitar sala de espera", + "login": "Iniciar sessão", + "logout": "Encerrar sessão", + "lowerYourHand": "Baixar a mão", + "moreActions": "Mais ações", + "moreOptions": "Mais opções", + "mute": "Mudo / Não mudo", + "muteEveryone": "Silenciar todos", + "muteEveryonesVideo": "Desativar a câmera de todos", + "muteGUMPending": "Conectando seu microfone", + "noAudioSignalDesc": "Se você não o desativou propositalmente das configurações do sistema ou do hardware, considere trocar o dispositivo.", + "noAudioSignalDescSuggestion": "Se você não o desativou propositalmente das configurações do sistema ou do hardware, considere trocar para o dispositivo sugerido.", + "noAudioSignalDialInDesc": "Você também pode discar usando:", + "noAudioSignalDialInLinkDesc": "Discar números", + "noAudioSignalTitle": "Não há entrada de áudio vindo do seu microfone!", + "noiseSuppression": "Supressão de ruído", + "noisyAudioInputDesc": "Parece que o microfone está fazendo barulho, considere silenciar ou alterar o dispositivo.", + "noisyAudioInputTitle": "O seu microfone parece estar barulhento!", + "openChat": "Abrir chat", + "openReactionsMenu": "Abrir menu de reações", + "participants": "Participantes", + "pip": "Entrar em modo Quadro-a-Quadro", + "privateMessage": "Enviar mensagem privada", + "profile": "Editar seu perfil", + "raiseHand": "Erguer / Baixar sua mão", + "raiseYourHand": "Levantar a mão", + "reactionBoo": "Enviar reação de vaia", + "reactionClap": "Enviar reação de aplauso", + "reactionLaugh": "Enviar reação de risada", + "reactionLike": "Enviar reação de gostei", + "reactionSilence": "Enviar reação de silêncio", + "reactionSurprised": "Enviar reação de surpresa", + "reactions": "Reações", + "security": "Opções de segurança", + "selectBackground": "Selecionar fundo", + "shareRoom": "Convidar alguém", + "shareaudio": "Compartilhar áudio", + "sharedvideo": "Compartilhar um vídeo", + "shortcuts": "Ver atalhos", + "showWhiteboard": "Exibir quadro-branco", + "silence": "Silêncio", + "speakerStats": "Estatísticas do Apresentador", + "startScreenSharing": "Iniciar compart. de tela", + "startSubtitles": "Iniciar legendas", + "stopAudioSharing": "Parar compart. de áudio", + "stopScreenSharing": "Parar compart. de tela", + "stopSharedVideo": "Parar vídeo", + "stopSubtitles": "Parar legendas", + "surprised": "Surpresa", + "talkWhileMutedPopup": "Tentando falar? Você está em mudo.", + "tileViewToggle": "Alternar visualização em blocos", + "toggleCamera": "Alternar câmera", + "unmute": "Ativar som", + "videoSettings": "Configurações de vídeo", + "videomute": "Iniciar ou parar a câmera", + "videomuteGUMPending": "Conectando sua câmera", + "videounmute": "Ativar câmera" + }, + "transcribing": { + "ccButtonTooltip": "Iniciar/parar legendas", + "error": "Transcrição falhou. Tente novamente.", + "expandedLabel": "Transcrição ativada", + "failedToStart": "Transcrição falhou ao iniciar", + "labelToolTip": "A reunião esta sendo transcrita", + "off": "Transcrição parada", + "pending": "Preparando a transcrição da reunião…", + "sourceLanguageDesc": "No momento o idioma da reunião está definido para {{sourceLanguage}}.
Você pode alterar-lo ", + "sourceLanguageHere": "aqui", + "start": "Exibir legendas", + "stop": "Não exibir legendas", + "subtitles": "Legendas", + "subtitlesOff": "Desativadas", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Desafixar", + "userMedia": { + "grantPermissions": "Dê as permissões para usar sua câmera e microfone." + }, + "videoSIPGW": { + "busy": "Estamos trabalhando para liberar recursos. Por favor, tente novamente em alguns minutos.", + "busyTitle": "O serviço da sala está ocupado", + "errorAlreadyInvited": "{{displayName}} já convidado", + "errorInvite": "A conferência ainda não foi estabelecida. Por favor, tente mais tarde.", + "errorInviteFailed": "Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.", + "errorInviteFailedTitle": "Convite para {{displayName}} falhou", + "errorInviteTitle": "Erro no convite da sala", + "pending": "{{displayName}} foi convidado" + }, + "videoStatus": { + "adjustFor": "Ajustar para:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Você está em modo de banda baixa. Neste modo, se recebe somente áudio e compartilhamento de tela.", + "bestPerformance": "Melhor performance", + "callQuality": "Qualidade de vídeo", + "hd": "HD", + "hdTooltip": "Ver vídeo em alta definição", + "highDefinition": "Alta definição (HD)", + "highestQuality": "Alta qualidade", + "labelTooiltipNoVideo": "Sem vídeo", + "labelTooltipAudioOnly": "Modo de largura de banda baixa habilitada", + "ld": "LD", + "ldTooltip": "Ver vídeo em baixa definição", + "lowDefinition": "Baixa definição (LD)", + "performanceSettings": "Configurações de performance", + "recording": "Gravação em andamento", + "sd": "SD", + "sdTooltip": "Ver vídeo em definição padrão", + "standardDefinition": "Definição padrão", + "streaming": "Streaming em andamento" + }, + "videothumbnail": { + "connectionInfo": "Informações da Conexão", + "domute": "Mudo", + "domuteOthers": "Silenciar todos os demais", + "domuteVideo": "Desativar a câmera", + "domuteVideoOfOthers": "Desativar a câmera de todos os demais", + "flip": "Inverter", + "grantModerator": "Atribuir Moderador", + "hideSelfView": "Ocultar auto-visualização", + "kick": "Remover", + "mirrorVideo": "Espelhar meu vídeo", + "moderator": "Moderador", + "mute": "Participante está mudo", + "muted": "Mudo", + "pinToStage": "Fixar no palco", + "remoteControl": "Controle remoto", + "screenSharing": "O participante está compartilhando sua tela", + "show": "Mostrar no palco", + "showSelfView": "Exibir auto-visualização", + "unpinFromStage": "Desafixar", + "verify": "Verificar participante", + "videoMuted": "Câmera desativada", + "videomute": "O participante parou a câmera" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Fundo atual: {{background}}", + "selectBackground": "Selecionar um fundo" + }, + "addBackground": "Adicionar novo fundo", + "apply": "Aplicar", + "backgroundEffectError": "Falha ao aplicar efeito de fundo.", + "blur": "Desfoque", + "deleteImage": "Excluir imagem", + "desktopShare": "Compartilhar desktop", + "desktopShareError": "Não foi possível compartilhar o desktop", + "image1": "Praia", + "image2": "Parede branca neutra", + "image3": "Quarto branco vazio", + "image4": "Luminária preta", + "image5": "Montanha", + "image6": "Floresta", + "image7": "Alvorada", + "none": "Nenhum", + "pleaseWait": "Aguarde…", + "removeBackground": "Remover fundo", + "slightBlur": "Desfoque suave", + "title": "Fundos virtuais", + "uploadedImage": "Imagem enviada {{index}}", + "webAssemblyWarning": "Não há suporte para WebAssembly", + "webAssemblyWarningDescription": "WebAssembly desativado ou não suportado neste navegador" + }, + "visitors": { + "chatIndicator": "(visitante)", + "labelTooltip": "Número de visitantes: {{count}}", + "notification": { + "description": "Para participar levante a mão", + "title": "Você é um visitante na reunião" + } + }, + "volumeSlider": "Controle de volume", + "welcomepage": { + "accessibilityLabel": { + "join": "Toque para entrar", + "roomname": "Digite o nome da sala" + }, + "addMeetingName": "Adicionar nome da reunião", + "appDescription": "Vá em frente, converse por vídeo com toda a equipe. De fato, convide todos que você conhece. {{app}} é uma solução de videoconferência totalmente criptografada e 100% de código aberto que você pode usar todos os dias, a cada dia, gratuitamente — sem necessidade de conta.", + "audioVideoSwitch": { + "audio": "Voz", + "video": "Vídeo" + }, + "calendar": "Calendário", + "connectCalendarButton": "Conectar seu calendário", + "connectCalendarText": "Conecte seu calendário para ver todas as reuniões em {{app}}. Além disso, adicione reuniões de {{provider}} ao seu calendário e inicie-as com apenas um clique.", + "enterRoomTitle": "Iniciar uma nova reunião", + "getHelp": "Obter ajuda", + "go": "IR", + "goSmall": "IR", + "headerSubtitle": "Reuniões com segurança e alta qualidade", + "headerTitle": "Jitsi Meet", + "info": "Informações", + "jitsiOnMobile": "Jitsi em dispositivos móveis – baixe nossos aplicativos e inicie uma reunião em qualquer lugar", + "join": "CRIAR / ENTRAR", + "logo": { + "calendar": "Logo do Calendário", + "desktopPreviewThumbnail": "Miniatura de Visualização do Desktop", + "googleLogo": "Logo do Google", + "logoDeepLinking": "Logo do Jitsi Meet", + "microsoftLogo": "Logo da Microsoft", + "policyLogo": "Logo da Política de Privacidade" + }, + "meetingsAccessibilityLabel": "Reuniões", + "mobileDownLoadLinkAndroid": "Baixar aplicativo móvel para Android", + "mobileDownLoadLinkFDroid": "Baixar aplicativo móvel para F-Droid", + "mobileDownLoadLinkIos": "Baixar aplicativo móvel para iOS", + "moderatedMessage": "Ou agende uma URL de reunião antes, onde você é o único moderador.", + "privacy": "Política de Privacidade", + "recentList": "Recente", + "recentListDelete": "Remover", + "recentListEmpty": "Sua lista recente está vazia. As reuniões que você realizar serão exibidas aqui.", + "recentMeetings": "Suas reuniões recentes", + "reducedUIText": "Bem-vindo ao {{app}}!", + "roomNameAllowedChars": "Nome da reunião não deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.", + "roomname": "Digite o nome da sala", + "roomnameHint": "Digite o nome ou a URL da sala que você deseja entrar. Você pode digitar um nome, e apenas deixe para as pessoas que você quer se reunir digitem o mesmo nome.", + "sendFeedback": "Enviar comentários", + "settings": "Configurações", + "startMeeting": "Iniciar reunião", + "terms": "Termos", + "title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas", + "upcomingMeetings": "Suas próximas reuniões" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Quadro-branco" + } + } +} diff --git a/lang/main-ro.json b/lang/main-ro.json new file mode 100644 index 0000000..c4175df --- /dev/null +++ b/lang/main-ro.json @@ -0,0 +1,763 @@ +{ + "addPeople": { + "add": "Adăugați", + "countryNotSupported": "Serviciul nu este încă disponibil în locația dumneavoastră.", + "countryReminder": "Sunați în afara SUA? Vă rugăm să tastați codul țarii înaintea numărului!", + "disabled": "Nu puteți adăuga persoane.", + "failedToAdd": "Eroare în adăugarea membrilor", + "footerText": "Apelarea în exterior este dezactivată.", + "loading": "Se caută persoane și numere de telefon", + "loadingNumber": "Se validează numărul de telefon", + "loadingPeople": "Se caută persoane care pot fi adăugate", + "noResults": "Nu s-au găsit rezultate", + "noValidNumbers": "Vă rugăm introduceți numărul de telefon", + "searchNumbers": "Adăugați numere de telefon", + "searchPeople": "Căutați persoane", + "searchPeopleAndNumbers": "Căutați după nume sau după numărul de telefon", + "telephone": "Telefon: {{number}}", + "title": "Adăugați persoane în acest apel video" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Căști", + "none": "", + "phone": "Telefon", + "speaker": "Difuzor" + }, + "audioOnly": { + "audioOnly": "Doar audio" + }, + "calendarSync": { + "addMeetingURL": "Inserați un link de apel video", + "confirmAddLink": "Doriți să adaugați un link Jitsi la acest apel video?", + "error": { + "appConfiguration": "Integrarea calendarului nu este configurată corespunzător.", + "generic": "A apărut o eroare. Vă rugăm să verificați setările calendarului și apoi reîncărcați calendarul.", + "notSignedIn": "A apărut o eroare în procesul de autentificare pentru a vizualiza evenimentele din calendar. Vă rugam să verificați setările calendarului și apoi să vă autentificați din nou." + }, + "join": "Participare", + "joinTooltip": "Participați la apelul video", + "nextMeeting": "următorul apel video", + "noEvents": "Nu sunt alte evenimente programate.", + "ongoingMeeting": "apel video în desfășurare", + "permissionButton": "Accesați setările", + "permissionMessage": "Este nevoie de acces la Calendarul dumneavoastră pentru a vizualiza programările în aplicație.", + "refresh": "Actualizați calendarul", + "today": "Azi" + }, + "chat": { + "error": "Eroare: mesajul dumneavoastră \"{{originalText}}\" nu a fost trimis. Motiv: {{error}}", + "fieldPlaceHolder": "", + "messageTo": "", + "messagebox": "Scrieți mesajul", + "nickname": { + "popover": "Alegeți un pseudonim", + "title": "Introduceți un pseudonim pentru a conversa", + "titleWithPolls": "Introduceți un pseudonim pentru a conversa" + }, + "noMessagesMessage": "", + "privateNotice": "", + "sendButton": "Trimiteți", + "title": "Apel video", + "titleWithPolls": "Apel video", + "you": "" + }, + "chromeExtensionBanner": { + "buttonText": "", + "dontShowAgain": "", + "installExtensionText": "" + }, + "connectingOverlay": { + "joiningRoom": "Sunteți conectat la conversația dumneavoastră…" + }, + "connection": { + "ATTACHED": "Atașat", + "AUTHENTICATING": "Autentificare", + "AUTHFAIL": "Autentificare eșuată", + "CONNECTED": "Conectat", + "CONNECTING": "Se conectează", + "CONNFAIL": "Conectare eșuată", + "DISCONNECTED": "Deconectat", + "DISCONNECTING": "Se deconectează", + "ERROR": "Eroare", + "FETCH_SESSION_ID": "", + "GET_SESSION_ID_ERROR": "", + "GOT_SESSION_ID": "", + "LOW_BANDWIDTH": "", + "RECONNECTING": "A apărut o eroare de rețea. Reconectare…" + }, + "connectionindicator": { + "address": "Adresă:", + "bandwidth": "Viteza de transfer estimată:", + "bitrate": "Bitrate:", + "bridgeCount": "Numărul de servere: ", + "connectedTo": "Conectat la:", + "framerate": "Rată cadre:", + "less": "Arătați mai puțin", + "localaddress": "Adresă locala:", + "localaddress_plural": "Adrese locale:", + "localport": "Port local:", + "localport_plural": "Porturi locale:", + "more": "Arătați mai mult", + "packetloss": "Pachete pierdute:", + "quality": { + "good": "Bun", + "inactive": "Inactiv", + "lost": "Pierdut", + "nonoptimal": "Ineficient", + "poor": "Slab" + }, + "remoteaddress": "Adresă remote:", + "remoteaddress_plural": "Adresele remote:", + "remoteport": "Port extern:", + "remoteport_plural": "Porturi externe:", + "resolution": "Rezoluție:", + "status": "Conexiune:", + "transport": "Mod Transport:", + "transport_plural": "Moduri Transport:", + "turn": " (turn)" + }, + "dateUtils": { + "earlier": "Mai devreme", + "today": "Azi", + "yesterday": "Ieri" + }, + "deepLinking": { + "appNotInstalled": "Este necesară {{app}} aplicația mobilă pentru a putea participa la apelul video.", + "description": "Nu s-a întâmplat nimic? Am încercat să vă deschidem conversația în {{app}} aplicația pentru desktop. Încercați din nou sau deschideți {{app}} aplicația web.", + "descriptionWithoutWeb": "", + "downloadApp": "Descărcați aplicația", + "ifDoNotHaveApp": "Dacă nu aveti încă aplicația atunci:", + "ifHaveApp": "Dacă aveti deja aplicația:", + "launchWebButton": "Deschideți în browser", + "openApp": "Continuați spre aplicație", + "title": "Deschidere apel video în {{app}}…", + "tryAgainButton": "Încercați din nou pe desktop" + }, + "defaultLink": "e.g. {{url}}", + "defaultNickname": "", + "deviceError": { + "cameraError": "Accesul la cameră nu este permis", + "cameraPermission": "Eroare în obținerea accesului la cameră", + "microphoneError": "Accesul la microfon nu este permis", + "microphonePermission": "Eroare în obținerea accesului la microfon" + }, + "deviceSelection": { + "noPermission": "Permisiunea nu a fost acordată", + "previewUnavailable": "Previzualizare indisponibilă", + "selectADevice": "Alegeți un dispozitiv", + "testAudio": "Redați un sunet" + }, + "dialOut": { + "statusMessage": "Este {{status}}" + }, + "dialog": { + "Back": "Înapoi", + "Cancel": "Anulare", + "IamHost": "Eu sunt moderatorul", + "Ok": "Ok", + "Remove": "Eliminați", + "Share": "Partajare", + "Submit": "Trimiteți", + "WaitForHostMsg": "Conferința nu a început. Daca sunteți moderatorul conferinței, vă rugăm să vă autentificați. Dacă nu, așteptați ca moderatorul să înceapă conferința.", + "WaitingForHost": "Așteptare moderator conferință…", + "Yes": "Da", + "accessibilityLabel": { + "liveStreaming": "Transmitere live" + }, + "allow": "Permiteți", + "alreadySharedVideoMsg": "Un alt membru partajează deja un videoclip. Este permisă partajarea unui singur videoclip per apel video.", + "alreadySharedVideoTitle": "Doar un singur videoclip per apel video", + "applicationWindow": "Fereastra aplicației", + "cameraConstraintFailedError": "Camera dumneavoastră nu îndeplinește unele dintre restricțiile impuse.", + "cameraNotFoundError": "Camera nu a fost găsită.", + "cameraNotSendingData": "Nu am reușit să vă accesăm camera. Vă rugăm să verificați daca o altă aplicație folosește dispozitivul, selectați un alt dispozitiv din meniul de setări și reîncărcați aplicația.", + "cameraNotSendingDataTitle": "Accesul la cameră nu este permis", + "cameraPermissionDeniedError": "Nu ați acordat permisiunea pentru accesul la cameră. Puteți să vă alăturați apelului video, dar ceilalți participanți nu vă vor putea vedea. Folosiți butonul camerei localizat în bara de adrese pentru remediere.", + "cameraUnknownError": "Camera nu poate fi folosită din motive necunoscute.", + "cameraUnsupportedResolutionError": "Camera dumneavoastră nu suportă rezoluția video necesara.", + "close": "Închidere", + "conferenceDisconnectMsg": "Vă rugam să verificați conexiunea la rețea. Reconectare în {{seconds}} sec…", + "conferenceDisconnectTitle": "Ați fost deconectat.", + "conferenceReloadMsg": "Încercăm să remediem situația. Reconectare în {{seconds}} sec…", + "conferenceReloadTitle": "Din nefericire, ceva nu a funcționat corespunzător.", + "confirm": "Confirmare", + "confirmNo": "Nu", + "confirmYes": "Da", + "connectError": "Oops! Ceva nu a funcționat corespunzător și nu v-am putut conecta la apelul video.", + "connectErrorWithMsg": "Oops! Ceva nu a funcționat corespunzător și nu v-am putut conecta la conferință: {{msg}}", + "connecting": "Conectare", + "contactSupport": "Contactati departamentul de suport tehnic", + "copy": "Copiați", + "dismiss": "Respingeți", + "displayNameRequired": "Este necesar să introduceți un nume", + "done": "Efectuat", + "enterDisplayName": "Vă rugam să introduceți numele", + "error": "Eroare", + "externalInstallationMsg": "Este necesară instalarea extensiei pentru partajare video.", + "externalInstallationTitle": "Extensie necesară", + "goToStore": "Accesați magazinul virtual", + "gracefulShutdown": "Serviciile noastre sunt indisponibile pentru întreținere. Vă rugam încercați mai tărziu.", + "incorrectPassword": "Nume de utilizator sau parolă incorecte", + "incorrectRoomLockPassword": "", + "inlineInstallExtension": "Începeți instalarea", + "inlineInstallationMsg": "Este necesară instalarea extensiei pentru partajare video.", + "internalError": "Ups! Ceva nu a funcționat corespunzător. A apărut următoarea eroare: {{error}}", + "internalErrorTitle": "Eroare interna", + "kickMessage": "Ouch! Ați fost eliminat din apelul video!", + "kickParticipantButton": "Eliminați", + "kickParticipantDialog": "Sunteți sigur că doriți să eliminați acest participant?", + "kickParticipantTitle": "Eliminați acest membru?", + "kickTitle": "Eliminat din apelul video", + "liveStreaming": "Transmitere live", + "liveStreamingDisabledForGuestTooltip": "Invitații nu pot iniția transmitere live.", + "liveStreamingDisabledTooltip": "Inițiere transmitere live dezactivată.", + "lockMessage": "Blocarea conferinței a eșuat.", + "lockRoom": "Introduceți parola pentru apelul video", + "lockTitle": "Blocare eșuată", + "logoutQuestion": "Sunteți sigur că doriți să vă deconectați și să întrerupeți conversația?", + "logoutTitle": "Deconectare", + "maxUsersLimitReached": "Numărul maxim de membri a fost atins. Nu mai sunt locuri disponibile. Vă rugam să contactati moderatorul apelului video sau încercați mai târziu!", + "maxUsersLimitReachedTitle": "Numărul maxim de membri a fost atins", + "micConstraintFailedError": "Microfonul dumneavoastră nu îndeplinește unele dintre restricțiile impuse.", + "micNotFoundError": "Microfonul nu a fost găsit.", + "micNotSendingData": "Nu putem să vă accesăm microfonul. Vă rugam să selectați un alt dispozitiv din meniul de setări sau încercați să actualizați aplicația.", + "micNotSendingDataTitle": "Nu putem să vă accesăm microfonul", + "micPermissionDeniedError": "Nu ați acordat permisiunea pentru accesul la microfon. Puteți să vă alăturați apelului video, dar ceilalți participanți nu vă vor putea auzi. Folosiți butonul camerei localizat în bara de adrese pentru remediere.", + "micUnknownError": "Microfonul nu poate fi folosită din motive necunoscute.", + "muteEveryoneDialog": "", + "muteEveryoneElseDialog": "", + "muteEveryoneElseTitle": "", + "muteEveryoneSelf": "", + "muteEveryoneStartMuted": "", + "muteEveryoneTitle": "", + "muteParticipantBody": "Nu veți putea să dezactivați microfonul, dar ceilalți pot dezactiva oricând microfonul.", + "muteParticipantButton": "Dezactivare microfon", + "muteParticipantDialog": "Sunteți sigur că doriți să dezactivați microfonul pentru acest participant? Nu veți putea să dezactivați microfonul, dar ceilalți pot dezactiva oricând microfonul.", + "muteParticipantTitle": "Comutați pe silențios acest membru?", + "passwordLabel": "Parolă", + "passwordNotSupported": "Setarea unei parole pentru acest apel video nu este suportată.", + "passwordNotSupportedTitle": "Parola nu este suportată", + "passwordRequired": "Parola este necesară", + "popupError": "Browserul dumneavoastră blochează ferestrele de tip pop-up ale acestui site. Activați ferestrele de tip pop-up în setările de securitate ale browserului și încercați din nou.", + "popupErrorTitle": "Ferestre de tip pop-up blocate", + "recording": "Înregistrare", + "recordingDisabledForGuestTooltip": "Invitații nu pot iniția înregistrarea.", + "recordingDisabledTooltip": "Inițierea înregistrării este dezactivată.", + "rejoinNow": "Reconectați-vă", + "remoteControlAllowedMessage": "{{user}} controlul la distanță este permis!", + "remoteControlDeniedMessage": "{{user}} controlul la distanță este respins!", + "remoteControlErrorMessage": "A apărut o eroare la încercarea de a solicita permisiunea de acces la distanță {{user}}!", + "remoteControlRequestMessage": "Permiteți utilizatorului {{user}} să vă acceseze la distanță desktopul?", + "remoteControlShareScreenWarning": "Rețineți că apăsând butonul \"Permiteți\" veți partaja ecranul dumneavoastră!", + "remoteControlStopMessage": "Sesiunea de acces la distanță s-a încheiat!", + "remoteControlTitle": "Acces desktop la distanță", + "removePassword": "Eliminați parola", + "removeSharedVideoMsg": "Sunteți sigur că doriți să încheiați sesiunea de partajare a videoclipului?", + "removeSharedVideoTitle": "Eliminați partajarea videoclipului", + "reservationError": "Eroare a sistemului de rezervare", + "reservationErrorMsg": "Cod de eroare: {{code}}, mesaj: {{msg}}", + "retry": "Reincercati", + "screenSharingAudio": "", + "screenSharingFailedToInstall": "Oops! Extensia de partajare a ecranului nu s-a instalat.", + "screenSharingFailedToInstallTitle": "Extensia de partajare a ecranului nu s-a instalat", + "screenSharingFirefoxPermissionDeniedError": "Ceva nu a funcționat corespunzător în timp ce încercăm să accesăm ecranul dumneavoastră. Vă rugam să vă asigurați că ne-ați permis accesul. ", + "screenSharingFirefoxPermissionDeniedTitle": "Ups! Nu am reușit să inițiem accesarea ecranului!", + "screenSharingPermissionDeniedError": "Ups! Ceva nu a funcționat corespunzător cu permisiunea de extindere a ecranului. Vă rugam să reîncărcați pagina și să încercați din nou.", + "sendPrivateMessage": "", + "sendPrivateMessageCancel": "", + "sendPrivateMessageOk": "", + "sendPrivateMessageTitle": "", + "serviceUnavailable": "Serviciu indisponibil", + "sessTerminated": "Apel încheiat", + "shareVideoLinkError": "Vă rugam să furnizați un link corect.", + "shareVideoTitle": "Partajare video", + "shareYourScreen": "Partajare ecran", + "shareYourScreenDisabled": "Partajare ecran dezactivată.", + "shareYourScreenDisabledForGuest": "Invitații nu pot partaja ecranul.", + "startLiveStreaming": "Inițiere trasmitere live", + "startRecording": "Inițiere înregistrare", + "startRemoteControlErrorMessage": "A apărut o eroare la încercarea de a începe sesiunea de control la distanță!", + "stopLiveStreaming": "Încheiere transmitere live", + "stopRecording": "Încheiere înregistrare", + "stopRecordingWarning": "Sunteți sigur că vreți să încheiați înregistrarea?", + "stopStreamingWarning": "Sunteți sigur că vreți să încheiați transmiterea live?", + "streamKey": "Cheie transmitere live", + "thankYou": "Vă mulțumim că utilizați {{appName}}!", + "token": "token", + "tokenAuthFailed": "Ne pare rău, nu aveți permisiune pentru a participa la acest apel.", + "tokenAuthFailedTitle": "Autentificare eșuată", + "transcribing": "Copiere", + "unlockRoom": "Eliminați parola pentru apel video", + "userPassword": "Parolă utilizator", + "yourEntireScreen": "Întregul ecran" + }, + "documentSharing": { + "title": "" + }, + "feedback": { + "average": "Medie", + "bad": "Rău", + "detailsLabel": "Spuneți-ne mai multe despre experiența dumneavoastră.", + "good": "Bine", + "rateExperience": "Evaluați acest apel video", + "veryBad": "Foarte rău", + "veryGood": "Foarte bine" + }, + "incomingCall": { + "answer": "Răspuns", + "audioCallTitle": "Apel intrare", + "decline": "Respins", + "productLabel": "de la Jitsi Meet", + "videoCallTitle": "Intrare apel video" + }, + "info": { + "accessibilityLabel": "Afișați informații", + "addPassword": "Adăugați parola", + "cancelPassword": "Anulați parola", + "conferenceURL": "Link:", + "country": "Țară", + "dialANumber": "Pentru a accesa conversația, formați unul dintre aceste numere și apoi introduceți PIN-ul .", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Ne pare rău, apelarea nu este posibilă.", + "dialInNumber": "Apelare:", + "dialInSummaryError": "Eroare la preluarea informațiilor de apelare. Vă rugam să încercați din nou mai târziu.", + "dialInTollFree": "Fără taxă", + "genericError": "Ups! Ceva nu a funcționat corespunzător.", + "inviteLiveStream": "Pentru a vizualiza transmiterea live, faceți click pe acest link: {{url}}", + "invitePhone": "Apăsați o data pentru apelare: {{number}},,{{conferenceID}}#", + "invitePhoneAlternatives": "", + "inviteURLFirstPartGeneral": "Ați fost invitat pentru a participa la apelul video.", + "inviteURLFirstPartPersonal": "{{name}} v-a invitat pentru a participa la apelul video.\n", + "inviteURLSecondPart": "\nParticipati la apelul video:\n{{url}}\n", + "label": "Informații apel video", + "liveStreamURL": "Transmitere live:", + "moreNumbers": "Mai multe cifre", + "noNumbers": "Niciun număr de apelat.", + "noPassword": "Fără", + "noRoom": "Nu a fost selectat niciun apel video pentru apelare.", + "numbers": "Numere apelare", + "password": "Parolă:", + "title": "Transmitere", + "tooltip": "Transmiteți linkul și informațiile de apelare pentru acest apel video" + }, + "inlineDialogFailure": { + "msg": "A avut loc o eroare.", + "retry": "Încercați din nou", + "support": "Ajutor", + "supportMsg": "Daca situația se repetă, apelați" + }, + "inviteDialog": { + "alertText": "Încercarea de a invita anumiți participanți a eșuat.", + "header": "Invitați", + "searchCallOnlyPlaceholder": "Introduceți numărul de telefon", + "searchPeopleOnlyPlaceholder": "Căutare participanți", + "searchPlaceholder": "Participant sau număr de telefon", + "send": "Trimiteți" + }, + "keyboardShortcuts": { + "focusLocal": "Focusați pe imaginea dumneavoastră", + "focusRemote": "Focusați pe imaginea altei persoane", + "fullScreen": "Vizualizați sau părăsiți ecranul", + "keyboardShortcuts": "Comenzi rapide tastatură", + "localRecording": "Vizualizați sau ascundeți panoul de control video", + "mute": "Activați sau dezactivați microfonul", + "pushToTalk": "Apăsați pentru a vorbi", + "raiseHand": "Ridicați sau coborați mâna", + "showSpeakerStats": "Arătați parametrii difuzorului", + "toggleChat": "Deschideți sau închideți discuția text", + "toggleFilmstrip": "Afișați sau ascundeți imagini video", + "toggleScreensharing": "Comutați între cameră și partajare ecran", + "toggleShortcuts": "Arătați sau ascundeți comenzi rapide tastatură", + "videoMute": "Porniți sau opriți camera", + "videoQuality": "" + }, + "liveStreaming": { + "busy": "Lucrăm la eliberarea resurselor de transmitere. Vă rugam să încercați din nou în câteva minute.", + "busyTitle": "Toți participanții la transmitere sunt indisponibili", + "changeSignIn": "Comutați intre conturi.", + "choose": "Alegeți o transmitere live", + "chooseCTA": "Alegeți o variantă de transmitere. Sunteți logat cu {{email}}.", + "enterStreamKey": "Introduceți cheia fluxului video.", + "error": "Transmiterea live a eșuat. Vă rugăm încercați din nou.", + "errorAPI": "A apărut o eroare la accesarea canalelor YouTube. Încercați să vă autentificați din nou.", + "errorLiveStreamNotEnabled": "Transmiterea live nu este activată pe {{email}}. Vă rugăm să activați opțiunea de transmitere live sau autentificați-vă cu un cont avand această opțiune activată.", + "expandedOff": "Transmiterea live s-a încheiat", + "expandedOn": "Acest apel video este transmis pe YouTube.", + "expandedPending": "Transmiterea a început…", + "failedToStart": "Începerea transmiterii live a eșuat ", + "getStreamKeyManually": "Nu am reușit să preluăm fluxurile live. Încercați să obțineți cheia fluxului video YouTube.", + "googlePrivacyPolicy": "Politica de confidențialitate Google", + "invalidStreamKey": "Cheia fluxului video poate fi incorectă.", + "off": "Transmitere live încheiată", + "offBy": "", + "on": "Transmitere live", + "onBy": "", + "pending": "Inițiere transmitere live…", + "serviceName": "Serviciu de transmitere live", + "signIn": "Conectați-vă cu Google", + "signInCTA": "Conectați-vă sau introduceți cheia YouTube pentru distribuire video.", + "signOut": "Deconectare", + "signedInAs": "Sunteți conectat ca:", + "start": "Începeți o transmitere live", + "streamIdHelp": "Ce înseamnă acest lucru?", + "title": "Transmitere live", + "unavailableTitle": "Transmitere live indisponibilă", + "youtubeTerms": "Termeni și condiții Youtube" + }, + "localRecording": { + "clientState": { + "off": "Oprit", + "on": "Pornit", + "unknown": "Necunoscut" + }, + "dialogTitle": "Panou control video", + "duration": "Durată", + "durationNA": "N/A", + "encoding": "Codificare", + "label": "LOR", + "labelToolTip": "Înregistrarea este activată", + "localRecording": "Înregistrare", + "me": "Eu", + "messages": { + "engaged": "Înregistrarea este activată.", + "finished": "Sesiune înregistrare {{token}} încheiată. Vă rugăm să trimiteți înregistrarea moderatorului.", + "finishedModerator": "Sesiune înregistrare {{token}} încheiată. Înregistrarea a fost salvată. Vă rugăm să solicitați și celorlalți participanți trimiterea înregistrărilor.", + "notModerator": "Nu sunteți moderatorul. Nu puteți iniția sau încheia o înregistrare." + }, + "moderator": "Moderator", + "no": "Nu", + "participant": "Participant", + "participantStats": "Parametri participant", + "sessionToken": "Token de sesiune", + "start": "Inițiere înregistrare", + "stop": "Încheiere înregistrare", + "yes": "Da" + }, + "lockRoomPassword": "parola", + "lockRoomPasswordUppercase": "Parolă", + "me": "Eu", + "notify": { + "connectedOneMember": "{{name}} s-a alăturat apelului video", + "connectedThreePlusMembers": "{{name}} and {{count}} s-au alăturat apelului video", + "connectedTwoMembers": "{{first}} și {{second}} s-au alăturat apelului video", + "disconnected": "deconectat", + "focus": "Focalizare conferință", + "focusFail": "{{component}} Indisponibil - reincercati în {{ms}} secunde", + "grantedTo": "Drepturile de moderator acordate {{to}}!", + "invitedOneMember": "{{name}} a fost adăugat", + "invitedThreePlusMembers": "{{name}} și alti {{count}} au fost adăugați", + "invitedTwoMembers": "{{first}} și {{second}} au fost invitați", + "kickParticipant": "{{kicked}} a fost eliminat de {{kicker}}", + "me": "Eu", + "moderator": "Drepturi de moderator acordate!", + "muted": "Ați început conversația în modul silențios.", + "mutedRemotelyDescription": "", + "mutedRemotelyTitle": "Ați fost comutat pe silențios de {{participantDisplayName}}!", + "mutedTitle": "Sunteți în modul silențios!", + "newDeviceAction": "Utilizați", + "newDeviceAudioTitle": "A fost detectat un dispozitiv audio nou", + "newDeviceCameraTitle": "A fost detectată o cameră noua", + "passwordRemovedRemotely": "", + "passwordSetRemotely": "", + "raisedHand": "{{name}} dorește să vorbească.", + "somebody": "Cineva", + "startSilentDescription": "", + "startSilentTitle": "", + "suboptimalBrowserWarning": "Folosind acest browser nu veți beneficia de cea mai bună experiență pentru aceste apeluri video. În timp ce lucrăm la asta, vă recomandăm să folosiți unul din browser-ele suportate.", + "suboptimalExperienceDescription": "Hmm… se pare că experiența avută cu {{appName}} nu a decurs prea bine. Încercăm să îmbunătățim acest lucru, până atunci vă rugăm să folosiți unul dintre browserele suportate.", + "suboptimalExperienceTitle": "Avertisment browser", + "unmute": "" + }, + "passwordDigitsOnly": "Până la {{number}} cifre", + "passwordSetRemotely": "Setată de un alt membru", + "polls": { + "errors": { + "notUniqueOption": "Opțiunile trebuie să fie unice" + } + }, + "poweredby": "cu sprijinul", + "presenceStatus": { + "busy": "Ocupat", + "calling": "Apelare…", + "connected": "Conectat", + "connecting": "Conectare…", + "connecting2": "Conectare*…", + "disconnected": "Deconectat", + "expired": "Expirat", + "ignored": "Ignorat", + "initializingCall": "Inițiere apel…", + "invited": "Adăugat", + "rejected": "Respins", + "ringing": "Apelare…" + }, + "profile": { + "setDisplayNameLabel": "Introduceți numele care va fi afișat", + "setEmailInput": "Introduceți adresa de email", + "setEmailLabel": "Setați adresa de email gravatar", + "title": "Profil" + }, + "raisedHand": "Ar dori să vorbească", + "recording": { + "authDropboxText": "Încarcați în Dropbox", + "availableSpace": "Spațiu disponibil: {{spaceLeft}} MB (approximately {{duration}} minute înregistrare)", + "beta": "BETA", + "busy": "Lucrăm la eliberarea resurselor de înregistrare. Vă rugăm să încercați din nou peste câteva minute.", + "busyTitle": "Toate resursele de înregistrare sunt momentan ocupate", + "error": "Înregistrare eșuată. Vă rugăm să încercați din nou mai târziu.", + "expandedOff": "Înregistrarea s-a încheiat", + "expandedOn": "Conversația este înregistrată.", + "expandedPending": "Înregistrarea a început…", + "failedToStart": "Începerea înregistrării a eșuat", + "fileSharingdescription": "Partajați înregistrarea cu ceilalți participanți", + "live": "LIVE", + "loggedIn": "Conectat ca {{userName}}", + "off": "Înregistrarea s-a încheiat", + "offBy": "{{name}} a oprit înregistrarea", + "on": "Înregistrare", + "onBy": "{{name}} a pornit înregistrarea", + "pending": "Se pregătește înregistrarea apelului video…", + "rec": "REC", + "serviceDescription": "Înregistrarea dumneavoastră va fi salvată de serviciul înregistrare", + "serviceName": "Serviciu înregistrare", + "signIn": "Conectare", + "signOut": "Deconectare", + "title": "Înregistrare", + "unavailable": "Oops! Serviciul {{serviceName}} este indisponibil momentan. Se lucrează la remedierea acestei probleme. Vă rugam să încercați mai tărziu.", + "unavailableTitle": "Înregistrare indisponibilă" + }, + "sectionList": { + "pullToRefresh": "Trageți pentru a reîmprospătă" + }, + "settings": { + "calendar": { + "about": "Integrarea calendarului {{appName}} este utilizată pentru a accesa în siguranță calendarul dumneavoastră astfel încât să poată vizualiza evenimentele viitoare.", + "disconnect": "Deconectare", + "microsoftSignIn": "Conectare cu Microsoft", + "signedIn": "Sunt accesate evenimentele din calendarul {{email}}. Apăsați butonul Deconectare de mai jos pentru a opri accesarea evenimentelor din calendar.", + "title": "Calendar" + }, + "devices": "Dispozitive", + "followMe": "Toată lumea mă urmărește", + "language": "Limba", + "loggedIn": "Conectat cu {{name}}", + "microphones": "Microfoane", + "moderator": "Moderator", + "more": "Mai mult", + "name": "Name", + "noDevice": "Nici un", + "selectAudioOutput": "Sursa externă audio", + "selectCamera": "Cameră", + "selectMic": "Microfon", + "speakers": "Difuzoare", + "startAudioMuted": "Toată lumea începe cu sunetul dezactivat", + "startVideoMuted": "Toată lumea începe cu fară video", + "title": "Setări" + }, + "settingsView": { + "advanced": "Avansat", + "alertOk": "OK", + "alertTitle": "Avertisment", + "alertURLText": "Serverul URL introdus este invalid", + "buildInfoSection": "Informații versiune", + "conferenceSection": "Conferință", + "disableCallIntegration": "Dezactivează integrarea cu apelurile native", + "disableP2P": "Dezactivează modul Peer-To-Peer", + "displayName": "Nume afișat", + "email": "Email", + "header": "Setări", + "profileSection": "Profil", + "serverURL": "Server URL", + "showAdvanced": "Arată setările avansate", + "startWithAudioMuted": "Începeți cu sunetul dezactivat", + "startWithVideoMuted": "Începeți cu video dezactivat", + "version": "Version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nVreti doar să apelați telefonic?\n\n{{defaultDialInNumber}}Faceți click pe acest link pentru a vizualiza numerele pentru apelare în acest apel video\n{{dialInfoPageUrl}}", + "mainText": "Faceți click pe acest link pentru a vă conecta la apelul video:\n{{roomUrl}}" + }, + "speaker": "Difuzor", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Nume", + "search": "Căutare", + "searchHint": "Căutați participanți", + "seconds": "{{count}}s", + "speakerStats": "Statistici participanți", + "speakerTime": "Durată vorbire participant" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} are nevoie de acces la microfon și cameră." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Reconectare", + "text": "Apăsați butonul Reconectare pentru a vă reconecta.", + "title": "Apelul dumneavoastră video s-a întrerupt deoarece computerul a trecut în modul Repaus." + }, + "toolbar": { + "Settings": "Setări", + "accessibilityLabel": { + "Settings": "Comutați la setări", + "audioOnly": "Comutați doar audio", + "audioRoute": "Selectați dispozitivul pentru sunet", + "callQuality": "Gestionați calitatea apelului", + "cc": "Comutați subtitrările", + "chat": "Comutați ferestrele apelului video", + "document": "Comutați documentele partajate", + "download": "Descarcă aplicațiile noastre", + "feedback": "Lăsați-ne feedback", + "fullScreen": "Comutați la ecran complet", + "hangup": "Părăsiți apelul", + "help": "Ajutor", + "invite": "Adaugați persoane", + "kick": "Eliminați participant", + "localRecording": "Comutați la panoul de control video", + "lockRoom": "Comutați la parola de întâlnire", + "moreActions": "Afișați meniul cu acțiuni suplimentare", + "moreActionsMenu": "Meniu acțiuni suplimentare", + "moreOptions": "Arată mai multe opțiuni", + "mute": "Activați / dezactivați sunet", + "muteEveryone": "Oprește microfonul tuturor", + "pip": "Comutați la modul Picture-in-Picture", + "privateMessage": "Trimite un mesaj privat", + "profile": "Editați profilul", + "raiseHand": "Comutați la mână rîdicată", + "recording": "Activați/dezactivați înregistrare", + "remoteMute": "Comutare mod silențios participant", + "shareRoom": "Adăugați persoane", + "shareYourScreen": "Activați / dezactivați partajarea ecranului", + "sharedvideo": "Comutați partajarea video", + "shortcuts": "Activați / dezactivați comenzi rapide", + "show": "", + "speakerStats": "Afișați/ascundeți parametrii difuzorului", + "tileView": "Afișați/ascundeți miniatura video", + "toggleCamera": "Afișați / ascundeți camera", + "videoblur": "", + "videomute": "Activați / dezactivați înregistrarea" + }, + "addPeople": "Adăugați persoane în apel", + "audioOnlyOff": "Dezactivați modul 'doar audio'", + "audioOnlyOn": "Activați modul 'doar audio'", + "audioRoute": "Selectați dispozitivul pentru sunet", + "authenticate": "Autentificare", + "callQuality": "Gestionați calitatea apelului", + "chat": "Deschideți / Închideți conversația", + "closeChat": "Închideți conversația", + "documentClose": "Închideți document partajat", + "documentOpen": "Deschideți document partajat", + "enterFullScreen": "Vizualizare ecran întreg", + "enterTileView": "Accesare miniatură video", + "exitFullScreen": "Ieșiți ecran întreg", + "exitTileView": "Ieșiți miniatură video", + "feedback": "Lașați-ne feedback", + "hangup": "Ieșiți", + "invite": "Adăugați persoane", + "login": "Conectare", + "logout": "Deconectare", + "lowerYourHand": "Coborâți mâna", + "moreActions": "Acțiuni suplimentare", + "mute": "Porniți / Opriți sunetul", + "openChat": "Open chat", + "pip": "Accesare mod Picture-in-Picture", + "profile": "Editați profilul", + "raiseHand": "Ridicați / Coborâți mâna", + "raiseYourHand": "Ridicați mâna", + "shareRoom": "Adăugați persoane", + "sharedvideo": "Partajați un video", + "shortcuts": "Vizualizare comenzi rapide", + "speakerStats": "Parametrii difuzorului", + "startScreenSharing": "Inițiere partajare ecran", + "startSubtitles": "Inițiere subtitrări", + "startvideoblur": "", + "stopScreenSharing": "Încheiere partajare ecran", + "stopSharedVideo": "Oprire video", + "stopSubtitles": "Acundere subtitrări", + "stopvideoblur": "", + "talkWhileMutedPopup": "Încercați să vorbiți? Microfonul este dezactivat.", + "tileViewToggle": "Afișați / ascundeți miniatura video", + "toggleCamera": "Afișați / ascundeți camera", + "videomute": "Porniți / Opriți camera" + }, + "transcribing": { + "ccButtonTooltip": "Afișați / Ascundeți subtitrări", + "error": "Copiere eșuată. Vă rugăm încercați mai tărziu.", + "expandedLabel": "Copierea este activată", + "failedToStart": "Inițierea copierii a eșuat", + "labelToolTip": "Conversația este copiată", + "off": "Copiere încheiată", + "pending": "Se pregătește copierea apelului video…", + "start": "Afișați subtitrări", + "stop": "Ascundeți subtitrări", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Vă rugam să acordați permisiunea pentru utilizarea camerei și a microfonului." + }, + "videoSIPGW": { + "busy": "Lucrăm la eliberarea resurselor. Vă rugăm încercați din nou în câteva minute.", + "busyTitle": "Serviciul SIP este momentan ocupat", + "errorAlreadyInvited": "{{displayName}} deja adăugat", + "errorInvite": "Conferință nu a fost inițializată. Vă rugam încercați mai târziu.", + "errorInviteFailed": "Se lucrează la remedierea acestei probleme. Vă rugăm încercați mai târziu.", + "errorInviteFailedTitle": "Invitarea {{displayName}} a eșuat", + "errorInviteTitle": "Eroare la invitarea la un apel SIP", + "pending": "{{displayName}} a fost invitat" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Sunteți în modul 'doar audio'. Acest mod reduce transferul de date și nu veți putea vizualiza imaginile celorlalți.", + "callQuality": "Calitate apel", + "hd": "HD", + "highDefinition": "Calitate superioară", + "labelTooiltipNoVideo": "Fără video", + "labelTooltipAudioOnly": "Modul doar audio activat", + "ld": "LD", + "lowDefinition": "Calitate redusă", + "onlyAudioAvailable": "Doar audio este disponibil", + "onlyAudioSupported": "În acest navigator este suportat doar 'mod audio'.", + "sd": "SD", + "standardDefinition": "Calitate standard" + }, + "videothumbnail": { + "domute": "Microfon oprit", + "flip": "Flip", + "kick": "Eliminați", + "moderator": "Moderator", + "mute": "Un membru are microfonul dezactivat", + "muted": "Microfon dezactivat", + "remoteControl": "Control la distanță", + "show": "", + "videomute": "Un membru a oprit camera" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Atingeți pentru a accesa", + "roomname": "Introduceți numele ședinței video" + }, + "appDescription": "Conversați prin apel video cu întreaga echipa. De fapt, cu toți cunoscuții. {{app}} este o soluție de video-conferință criptată alcătuită integral din programe gratuite pe care o puteți folosi tot timpul gratuit - fară a fi nevoie de cont.", + "audioVideoSwitch": { + "audio": "Voce", + "video": "Video" + }, + "calendar": "Calendar", + "connectCalendarButton": "Conectați calendarul", + "connectCalendarText": "", + "enterRoomTitle": "Inițiați un nou apel video", + "go": "ÎNCEPEȚI", + "info": "Informații", + "join": "ACCESARE", + "privacy": "Confidențialitate", + "recentList": "Recent", + "recentListDelete": "Ștergeți", + "recentListEmpty": "Lista dumneavoastră recentă este momentan goală. Discutați cu echipa dumneavoastră și veți găsi toate conversațiile aici.", + "reducedUIText": "", + "roomname": "Introduceți numele ședinței", + "roomnameHint": "Introduceți numele sau adresa web a ședinței la care doriți să vă conectați. Puteți asocia un nume, dar transmiteți și celorlalți participanți acest nume.", + "sendFeedback": "Lăsați-ne feedback", + "terms": "Termeni", + "title": "Video-conferință securizată, cu multiple funcționalități și complet gratuită" + } +} diff --git a/lang/main-ru.json b/lang/main-ru.json new file mode 100644 index 0000000..ee43590 --- /dev/null +++ b/lang/main-ru.json @@ -0,0 +1,1540 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Ссылка на встречу: {{url}}" + }, + "add": "Пригласить", + "addContacts": "Пригласите других людей", + "contacts": "контакты", + "copyInvite": "Скопировать приглашение на встречу", + "copyLink": "Скопировать ссылку на встречу", + "copyStream": "Скопировать ссылку на прямую трансляцию", + "countryNotSupported": "Эта страна пока не поддерживается.", + "countryReminder": "Вызов не в США? Пожалуйста, убедитесь, что указали код страны!", + "defaultEmail": "Ваш адрес электронной почты", + "disabled": "Поиск не дал результата.", + "failedToAdd": "Не удалось добавить участников", + "googleEmail": "Электронная почта Google", + "inviteMoreHeader": "Сейчас вы одни в этой встрече", + "inviteMoreMailSubject": "Присоединиться к встрече {{appName}} ", + "inviteMorePrompt": "Пригласить других людей", + "linkCopied": "Ссылка скопирована в буфер обмена", + "noResults": "Поиск не дал результата", + "outlookEmail": "Электронная почта Outlook", + "phoneNumbers": "телефонные номера", + "searching": "Поиск…", + "shareInvite": "Поделиться приглашением на встречу", + "shareLink": "Поделиться ссылкой на встречу чтобы пригласить других", + "shareStream": "Поделиться ссылкой на прямую трансляцию", + "sipAddresses": "sip-адреса", + "telephone": "Номер: {{number}}", + "title": "Пригласить людей на эту встречу", + "yahooEmail": "Электронная почта Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Автомобильная аудиосистема", + "headphones": "Наушники", + "none": "Не обнаружены звуковые устройства", + "phone": "Телефон", + "speaker": "Колонка" + }, + "audioOnly": { + "audioOnly": "Только звук" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "например, 10000000 для 10 Мбит/с", + "assumedBandwidthBpsWarning": "Более высокие значения могут вызвать проблемы сети.", + "customValue": "пользовательское значение", + "customValueEffect": "для установки фактического значения в битах в секунду", + "leaveEmpty": "оставить пустым", + "leaveEmptyEffect": "для разрешения проведения оценок", + "possibleValues": "Возможные значения", + "setAssumedBandwidthBps": "Предполагаемая пропускная способность (бит/с)", + "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": "Вы хотите добавить ссылку {{app}} к этому календарному событию?", + "error": { + "appConfiguration": "Неправильно настроена интеграция календаря.", + "generic": "Произошла ошибка. Проверьте настройки календаря или попробуйте обновить его.", + "notSignedIn": "В процессе аутентификации для просмотра событий календаря произошла ошибка. Пожалуйста, проверьте настройки календаря и попробуйте снова войти в систему." + }, + "join": "Присоединиться", + "joinTooltip": "Присоединиться к конференции", + "nextMeeting": "следующая конференция", + "noEvents": "Нет запланированных событий.", + "ongoingMeeting": "текущая конференция", + "permissionButton": "Открыть настройки", + "permissionMessage": "Для показа ваших встреч в приложении нужен доступ к календарю.", + "refresh": "Обновить календарь", + "today": "Сегодня" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Выбор аудиоустройства" + }, + "labels": { + "buttonLabel": "Упрощенный режим", + "title": "Упрощенный режим", + "videoStopped": "Видео остановлено" + } + }, + "chat": { + "enter": "Войди в комнату", + "error": "Ошибка: Ваше сообщение не было отправлено. Причина: {{error}}", + "fieldPlaceHolder": "Введите здесь ваше сообщение", + "lobbyChatMessageTo": "Сообщение пользователю {{recipient}}", + "message": "Сообщение", + "messageAccessibleTitle": "{{user}} говорит:", + "messageAccessibleTitleMe": "я говорю:", + "messageTo": "Личное сообщение пользователю {{recipient}}", + "messagebox": "Введите сообщение", + "newMessages": "Новые сообщения", + "nickname": { + "popover": "Выберите имя", + "title": "Введите имя для использования чата", + "titleWithPolls": "Введите имя для использования чата" + }, + "noMessagesMessage": "В конференции пока нет никаких сообщений. Начните разговор!", + "privateNotice": "Личное сообщение пользователю {{recipient}}", + "sendButton": "Отправить", + "smileysPanel": "Emoji панель", + "tabs": { + "chat": "Чат", + "polls": "Опросы" + }, + "title": "Чат", + "titleWithPolls": "Чат", + "you": "вы" + }, + "chromeExtensionBanner": { + "buttonText": "Установить расширение Chrome", + "buttonTextEdge": "Установить расширение Edge", + "close": "Закрыть", + "dontShowAgain": "Не показывай мне это снова", + "installExtensionText": "Установите расширение для интеграции с Google Календарь и Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Пытаемся присоединиться к вашей конференции…" + }, + "connection": { + "ATTACHED": "Прикреплено", + "AUTHENTICATING": "Аутентификация", + "AUTHFAIL": "Ошибка аутентификации", + "CONNECTED": "Подключено", + "CONNECTING": "Подключение", + "CONNFAIL": "Сбой подключения", + "DISCONNECTED": "Отключено", + "DISCONNECTING": "Отключение", + "ERROR": "Ошибка", + "FETCH_SESSION_ID": "Получение идентификатора сеанса…", + "GET_SESSION_ID_ERROR": "Ошибка получения идентификатора сеанса: {{code}}", + "GOT_SESSION_ID": "Получение идентификатора сеанса… Готово", + "LOW_BANDWIDTH": "Видео для {{displayName}} приостановлено из-за низкой пропускной способности" + }, + "connectionindicator": { + "address": "Адрес:", + "audio_ssrc": "Аудио SSRC:", + "bandwidth": "Средняя скорость:", + "bitrate": "Битрейт:", + "bridgeCount": "Количество серверов: ", + "codecs": "Кодеки (A/V): ", + "connectedTo": "Подключен к:", + "e2eeVerified": "E2EE подтверждено:", + "framerate": "Частота кадров:", + "less": "Краткая информация", + "localaddress": "Локальный адрес:", + "localaddress_plural": "Локальные адреса:", + "localport": "Локальный порт:", + "localport_plural": "Локальные порты:", + "maxEnabledResolution": "Максимальное разрешение", + "more": "Подробная информация", + "no": "нет", + "packetloss": "Потери пакетов:", + "participant_id": "id участника:", + "quality": { + "good": "Хорошо", + "inactive": "не активно", + "lost": "потеряно", + "nonoptimal": "не оптимально", + "poor": "плохо" + }, + "remoteaddress": "Удаленный адрес:", + "remoteaddress_plural": "Удаленные адреса:", + "remoteport": "Удаленный порт:", + "remoteport_plural": "Удаленные порты:", + "resolution": "Разрешение:", + "savelogs": "Сохранить логи", + "status": "Связь:", + "transport": "Транспорт:", + "transport_plural": "Транспорты:", + "video_ssrc": "Видео SSRC:", + "yes": "да" + }, + "dateUtils": { + "earlier": "Ранее", + "today": "Сегодня", + "yesterday": "Вчера" + }, + "deepLinking": { + "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}}…", + "titleNew": "Запуск вашей встречи…", + "tryAgainButton": "Повторите в настольном приложении", + "unsupportedBrowser": "Вы используете браузер, который мы не поддерживаем." + }, + "defaultLink": "напр. {{url}}", + "defaultNickname": "напр. Яна Цветкова", + "deviceError": { + "cameraError": "Ошибка доступа к камере", + "cameraPermission": "Ошибка доступа к микрофону", + "microphoneError": "Ошибка доступа к микрофону", + "microphonePermission": "Нет разрешения на доступ к микрофону" + }, + "deviceSelection": { + "hid": { + "callControl": "Управление вызовами", + "connectedDevices": "Подключенные устройства:", + "deleteDevice": "Удалить устройство", + "pairDevice": "Сопряжение устройства" + }, + "noPermission": "Нет доступа", + "previewUnavailable": "Предпросмотр недоступен", + "selectADevice": "Выбор устройства", + "testAudio": "Протестировать звук" + }, + "dialIn": { + "screenTitle": "Сводка о входящем вызове" + }, + "dialOut": { + "statusMessage": "сейчас {{status}}" + }, + "dialog": { + "Back": "Назад", + "Cancel": "Отмена", + "IamHost": "Я организатор", + "Ok": "Ok", + "Remove": "Удалить", + "Share": "Поделиться", + "Submit": "ОК", + "WaitForHostMsg": "Конференция еще не началась. Если вы организатор, пожалуйста, авторизируйтесь. В противном случае дождитесь организатора.", + "WaitingForHostButton": "Ждать организатора", + "WaitingForHostTitle": "Ждем организатора…", + "Yes": "Да", + "accessibilityLabel": { + "Cancel": "Отмена (закрыть диалоговое окно)", + "Ok": "OK (сохранить и закрыть диалоговое окно)", + "close": "Закрыть диалоговое окно", + "liveStreaming": "Трансляция", + "sharingTabs": "Опции обмена" + }, + "add": "Добавить", + "addMeetingNote": "Добавить записку об этом митиге", + "addOptionalNote": "Добавить записку (необязательно):", + "allow": "Разрешить", + "allowToggleCameraDialog": "Разрешить {{initiatorName}} переключить режим камеры?", + "allowToggleCameraTitle": "Разрешить переключение камеры?", + "alreadySharedVideoMsg": "Другой участник уже поделился ссылкой на видео. Данная конференция позволяет одновременно делиться только одним видео.", + "alreadySharedVideoTitle": "Допускается показ только одного видео", + "applicationWindow": "Окно приложения", + "authenticationRequired": "Требуется авторизация", + "cameraConstraintFailedError": "Камера не отвечает определенным требованиям.", + "cameraNotFoundError": "Камера не обнаружена.", + "cameraNotSendingData": "Ошибка доступа к камере. Пожалуйста, проверьте, не использует ли камеру какая-нибудь другая программа. Вы можете также выбрать другое устройство из меню настроек или попробовать перезапустить приложение.", + "cameraNotSendingDataTitle": "Нет доступа к камере", + "cameraPermissionDeniedError": "Нет доступа к камере. Вы можете участвовать во встрече, но другие не будут вас видеть. Используйте значок камеры в адресной строке браузера, чтобы устранить проблему.", + "cameraTimeoutError": "Не удалось запустить источник видео. Произошел тайм-аут!Не удалось запустить источник видео. Произошел тайм-аут!", + "cameraUnknownError": "Неизвестная ошибка использования камеры.", + "cameraUnsupportedResolutionError": "Ваша камера не поддерживает необходимое разрешение видео.", + "close": "Закрыть", + "conferenceDisconnectMsg": "Следует проверить интернет-соединение. Попытка восстановления связи через {{seconds}} с.", + "conferenceDisconnectTitle": "Вы отключены.", + "conferenceReloadMsg": "Мы стараемся это исправить. Восстановление связи через {{seconds}} с.", + "conferenceReloadTitle": "К сожалению, что-то пошло не так.", + "confirm": "Подтвердить", + "confirmNo": "Нет", + "confirmYes": "Да", + "connectError": "Ошибка. Невозможно установить связь для вашей встречи.", + "connectErrorWithMsg": "Ошибка. Невозможно установить связь для вашей встречи: {{msg}}", + "connecting": "Подключение", + "contactSupport": "Связь с поддержкой", + "copied": "Скопировано", + "copy": "Копировать", + "demoteParticipantDialog": "Вы уверены, что хотите сделать этого участника гостем?", + "demoteParticipantTitle": "Сделать гостем", + "dismiss": "Отклонить", + "displayNameRequired": "Привет! Как тебя зовут?", + "done": "Готово", + "e2eeDescription": "Сквозное шифрование в настоящее время является ЭКСПЕРИМЕНТАЛЬНЫМ. Имейте в виду, что включение сквозного шифрования эффективно отключит сервисы, предоставляемые на стороне сервера, такие как: запись, потоковое вещание и участие по телефону. Также имейте в виду, что собрание будет работать только для людей, присоединяющихся из браузеров с поддержкой вставляемых потоков.", + "e2eeDisabledDueToMaxModeDescription": "Невозможно включить сквозное шифрование из-за большого количества участников конференции.", + "e2eeLabel": "E2EE ключ", + "e2eeWarning": "ПРЕДУПРЕЖДЕНИЕ. Похоже, что не все участники этой встречи поддерживают сквозное шифрование. Если вы включите его, они не смогут вас ни видеть, ни слышать.", + "e2eeWillDisableDueToMaxModeDescription": "ВНИМАНИЕ: Сквозное шифрование будет автоматически отключено, если к конференции присоединится больше участников.", + "embedMeeting": "Встроить встречу", + "enterDisplayName": "Пожалуйста, введите свое имя", + "error": "Ошибка", + "gracefulShutdown": "Технические работы. Пожалуйста, попробуйте позже.", + "grantModeratorDialog": "Вы уверены, что хотите сделать этого участника модератором?", + "grantModeratorTitle": "Сделать модератором", + "hide": "Скрыть", + "hideShareAudioHelper": "Больше не показывать это диалоговое окно", + "incorrectPassword": "Ошибка имени пользователя или пароля", + "incorrectRoomLockPassword": "Неверный пароль", + "internalError": "Что-то пошло не так. Ошибка: {{error}}", + "internalErrorTitle": "Внутренняя ошибка", + "kickMessage": "Вы можете связаться с {{participantDisplayName}} для получения более подробной информации.", + "kickParticipantButton": "Отключить", + "kickParticipantDialog": "Вы уверены, что хотите отключить этого участника?", + "kickParticipantTitle": "Отключить этого участника?", + "kickTitle": "{{participantDisplayName}} отключил вас от конференции.", + "linkMeeting": "Связать встречу", + "linkMeetingTitle": "Связать встречу с Salesforce", + "liveStreaming": "Трансляция", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Невозможно пока активна запись", + "localUserControls": "Локальные пользовательские элементы управления", + "lockMessage": "Не удалось запереть конференцию", + "lockRoom": "Добавить конференцию $t(lockRoomPasswordUppercase)", + "lockTitle": "Блокировка не удалась", + "login": "Войти", + "loginQuestion": "Уверены, что хотите присоединиться и остановить встречу?", + "logoutQuestion": "Уверены, что хотите выйти и остановить встречу?", + "logoutTitle": "Завершить сеанс", + "maxUsersLimitReached": "Достигнут лимит на максимальное количество участников. Конференция переполнена. Пожалуйста, свяжитесь с организатором конференции или повторите попытку позже!", + "maxUsersLimitReachedTitle": "Достигнут максимальный лимит участников", + "micConstraintFailedError": "Ваш микрофон не отвечает определенным требованиям.", + "micNotFoundError": "Микрофон не обнаружен.", + "micNotSendingData": "Перейдите в настройки компьютера, чтобы включить микрофон и настроить уровень чувствительности.", + "micNotSendingDataTitle": "Ваш микрофон отключен системными настройками", + "micPermissionDeniedError": "Нет доступа к микрофону. Вы можете участвовать во встрече, но другие не будут вас слышать. Используйте значок камеры в адресной строке браузера, чтобы устранить проблему.", + "micTimeoutError": "Не удалось запустить источник звука. Произошел тайм-аут!", + "micUnknownError": "Неизвестная ошибка использования микрофона.", + "moderationAudioLabel": "Разрешить участникам самостоятельно включать звук", + "moderationVideoLabel": "Разрешить участникам запускать свое видео", + "muteEveryoneDialog": "Вы уверены, что хотите отключить микрофоны у всех? Вы не сможете включить их, но они могут включить себя в любой момент.", + "muteEveryoneDialogModerationOn": "Участники могут отправить запрос на выступление в любое время.", + "muteEveryoneElseDialog": "После отключения микрофонов у участников вы не сможете включить их, но они могут включить себя в любой момент.", + "muteEveryoneElseTitle": "Заглушить всех, за исключением {{whom}}?", + "muteEveryoneElsesVideoDialog": "Как только камера будет отключена, вы не сможете снова включить ее, но они могут включить ее снова в любое время.", + "muteEveryoneElsesVideoTitle": "Остановить видео для всех, кроме {{кого}}?", + "muteEveryoneSelf": "себя", + "muteEveryoneStartMuted": "Теперь у всех микрофоны выключены", + "muteEveryoneTitle": "Заглушить всех?", + "muteEveryonesVideoDialog": "Участники могут включить свое видео в любое время.", + "muteEveryonesVideoDialogModerationOn": "Участники могут отправить запрос на включение своего видео в любое время.", + "muteEveryonesVideoDialogOk": "Отключить", + "muteEveryonesVideoTitle": "Остановить всеобщее видео?", + "muteParticipantBody": "Вы не можете включить им микрофон, но они могут сделать это сами в любое время.", + "muteParticipantButton": "Заглушить", + "muteParticipantsVideoBody": "Вы не сможете снова включить камеру, но они могут включить ее снова в любое время.", + "muteParticipantsVideoBodyModerationOn": "Вы не сможете снова включить камеру, и они тоже.", + "muteParticipantsVideoButton": "Остановить видео", + "muteParticipantsVideoDialog": "Вы уверены, что хотите выключить камеру этого участника? Вы не сможете снова включить камеру, но они могут включить ее снова в любое время.", + "muteParticipantsVideoDialogModerationOn": "Вы уверены, что хотите выключить камеру этого участника? Вы не сможете снова включить камеру, и они тоже.", + "muteParticipantsVideoTitle": "Отключить камеру этого участника?", + "noDropboxToken": "Нет действительного токена Dropbox", + "password": "Пароль", + "passwordLabel": "Встреча была защищена участником. Пожалуйста, введите $t(lockRoomPasswordUppercase) чтобы присоединиться.", + "passwordNotSupported": "Установка $t(lockRoomPassword) для конференции не поддерживается.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) не поддерживается", + "passwordRequired": "Требуется $t(lockRoomPasswordUppercase)", + "permissionCameraRequiredError": "Для участия в конференциях с видео требуется разрешение камеры. Пожалуйста, предоставьте его в настройках", + "permissionErrorTitle": "Требуется разрешение", + "permissionMicRequiredError": "Для участия в конференциях со звуком требуется разрешение на использование микрофона. Пожалуйста, предоставьте его в настройках", + "readMore": "больше", + "recentlyUsedObjects": "Ваши недавно использованные объекты", + "recording": "Запись", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Невозможно пока активно потоковое вещание", + "rejoinNow": "Подключиться снова", + "remoteControlAllowedMessage": "{{user}} принял ваш запрос на удаленное управление!", + "remoteControlDeniedMessage": "{{user}} отклонил ваш запрос на удаленное управление!", + "remoteControlErrorMessage": "Произошла ошибка при попытке запросить разрешения удаленного управления от {{user}}!", + "remoteControlRequestMessage": "Разрешить {{user}} удаленное управление вашим рабочим столом?", + "remoteControlShareScreenWarning": "Если нажмете \"Разрешить\", то поделитесь своим экраном!", + "remoteControlStopMessage": "Сессия удаленного управления завершена!", + "remoteControlTitle": "Удаленное управление рабочим столом", + "remoteUserControls": "Удаленное управление пользователями {{username}}", + "removePassword": "Убрать $t(lockRoomPassword)", + "removeSharedVideoMsg": "Уверены, что хотите убрать видео, которым поделились?", + "removeSharedVideoTitle": "Убрать видео", + "renameBreakoutRoomLabel": "Название сессионного зала", + "renameBreakoutRoomTitle": "Переименовать сессионный зал", + "reservationError": "Ошибка системы резервирования", + "reservationErrorMsg": "Код ошибки: {{code}}, сообщение: {{msg}}", + "retry": "Повторить", + "screenSharingAudio": "Поделиться аудио", + "screenSharingFailed": "Ой! Кажется что-то пошло не так, мы не можем начать показ экрана!", + "screenSharingFailedTitle": "Сбой показа экрана!", + "screenSharingPermissionDeniedError": "Ошибка доступа к вашему расширению для показа экрана. Пожалуйста, перезапустите браузер и попробуйте снова.", + "searchInSalesforce": "Искать в Salesforce", + "searchResults": "Результаты поиска({{count}})", + "searchResultsDetailsError": "Что-то пошло не так при получении данных владельца.", + "searchResultsError": "Что-то пошло не так при получении данных.", + "searchResultsNotFound": "Ничего не найдено.", + "searchResultsTryAgain": "Попробуйте использовать другие ключевые слова.", + "sendPrivateMessage": "Вы недавно получили личное сообщение. Вы хотели ответить на него, или отправить свое сообщение группе?", + "sendPrivateMessageCancel": "Отправить в общий чат", + "sendPrivateMessageOk": "Отправить приватное сообщение", + "sendPrivateMessageTitle": "Отправить личное сообщение?", + "serviceUnavailable": "Служба недоступна", + "sessTerminated": "Связь прервана", + "sessTerminatedReason": "Встреча прервана", + "sessionRestarted": "Вызов перезапущен из-за проблемы с подключением.", + "shareAudio": "Продолжить", + "shareAudioAltText": "чтобы поделиться желаемым контентом, перейдите в раздел «Вкладка браузера», выберите нужный контент, установите флажок «поделиться аудио» и нажмите на кнопку «поделиться»", + "shareAudioTitle": "Как поделиться аудио", + "shareAudioWarningD1": "вам нужно остановить совместное использование экрана, прежде чем делиться своим аудио.", + "shareAudioWarningD2": "вам нужно перезапустить совместное использование экрана и установить флажок «поделиться аудио».", + "shareAudioWarningH1": "Если вы хотите поделиться только аудио:", + "shareAudioWarningTitle": "Вам нужно остановить совместное использование экрана, прежде чем делиться звуком", + "shareMediaWarningGenericH2": "Если вы хотите поделиться своим экраном и звуком", + "shareScreenWarningD1": "вам нужно остановить совместное использование звука, прежде чем делиться своим экраном.", + "shareScreenWarningD2": "вам нужно остановить совместное использование аудио, начать совместное использование экрана и установить флажок «поделиться аудио».", + "shareScreenWarningH1": "Если вы хотите поделиться только своим экраном:", + "shareScreenWarningTitle": "Вам нужно остановить совместное использование звука, прежде чем делиться своим экраном.", + "shareVideoLinkError": "Пожалуйста, укажите корректную ссылку.", + "shareVideoTitle": "Поделиться видео", + "shareYourScreen": "Показать экран", + "shareYourScreenDisabled": "Демонстрация экрана отключена", + "sharedVideoDialogError": "Ошибка: Невалидный URL", + "sharedVideoLinkPlaceholder": "Ссылка на YouTube или прямая ссылка на видео", + "show": "Показать", + "start": "Начать", + "startLiveStreaming": "Начать трансляцию", + "startRecording": "Начать запись", + "startRemoteControlErrorMessage": "Ошибка начала сессии удаленного управления!", + "stopLiveStreaming": "Остановить трансляцию", + "stopRecording": "Остановить запись", + "stopRecordingWarning": "Уверены, что хотите остановить запись?", + "stopStreamingWarning": "Уверены, что хотите остановить трансляцию?", + "streamKey": "Ключ трансляции", + "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": "Ошибка аутентификации", + "tokenAuthFailedWithReasons": "Извините, вы не можете присоединиться к этому звонку. Возможные причины: {{reason}}", + "tokenAuthUnsupported": "URL-адрес токена не поддерживается.", + "transcribing": "Расшифровка", + "unlockRoom": "Убрать $t(lockRoomPassword)", + "user": "Пользователь", + "userIdentifier": "Идентификатор пользователя", + "userPassword": "Пароль пользователя", + "verifyParticipantConfirm": "Они совпадают", + "verifyParticipantDismiss": "Они не совпадают", + "verifyParticipantQuestion": "ЭКСПЕРИМЕНТАЛЬНО: Спросите участника {{participantName}}, видит ли он то же самое содержание, в том же порядке.", + "verifyParticipantTitle": "Проверка пользователя", + "videoLink": "Ссылка на видео", + "viewUpgradeOptions": "Посмотреть варианты обновления", + "viewUpgradeOptionsContent": "Чтобы получить неограниченный доступ к премиум-функциям, таким как запись, транскрипция, RTMP Streaming и т. д., вам необходимо обновить свой план.", + "viewUpgradeOptionsTitle": "Вы обнаружили премиальную функцию!", + "whiteboardLimitContent": "Извините, достигнут лимит одновременных пользователей интерактивной доски.", + "whiteboardLimitReference": "Для получения дополнительной информации, пожалуйста, посетите", + "whiteboardLimitReferenceUrl": "наш сайт", + "whiteboardLimitTitle": "Использование интерактивной доски ограничено", + "yourEntireScreen": "Весь экран" + }, + "documentSharing": { + "title": "Общий Документ" + }, + "e2ee": { + "labelToolTip": "Аудио и видео связь по этому вызову защищена сквозным шифрованием" + }, + "embedMeeting": { + "title": "Встроить эту встречу" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Ваш выбор: {{rating}}" + }, + "average": "Средне", + "bad": "Плохо", + "detailsLabel": "Расскажите подробнее.", + "good": "Хорошо", + "rateExperience": "Оценка качества связи", + "star": "Звезда", + "veryBad": "Очень плохо", + "veryGood": "Очень хорошо" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Миниатюры видео" + } + }, + "giphy": { + "noResults": "Результатов поиска не найдено :(", + "search": "Поиск GIPHY" + }, + "incomingCall": { + "answer": "Ответ", + "audioCallTitle": "Входящий звонок", + "decline": "Отклонить", + "productLabel": "из {{app}}", + "videoCallTitle": "Входящий видеозвонок" + }, + "info": { + "accessibilityLabel": "Показать информацию", + "addPassword": "Установить $t(lockRoomPassword)", + "cancelPassword": "Отменить $t(lockRoomPassword)", + "conferenceURL": "Ссылка:", + "copyNumber": "Копировать номер", + "country": "Страна", + "dialANumber": "Чтобы присоединиться к конференции, наберите один из этих номеров и введите пин-код", + "dialInConferenceID": "ПИН:", + "dialInNotSupported": "К сожалению, набор номера в настоящее время не поддерживается.", + "dialInNumber": "Номер:", + "dialInSummaryError": "Ошибка получения информации о наборе номера. Пожалуйста, повторите попытку позже", + "dialInTollFree": "Звонок бесплатный", + "genericError": "Что-то пошло не так.", + "inviteLiveStream": "Трансляция этой встречи: {{url}}", + "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", + "inviteURLSecondPart": "\nПрисоединиться к конференции:\n{{url}}\n", + "label": "Информация о конференции", + "liveStreamURL": "Трансляция:", + "moreNumbers": "Больше номеров", + "noNumbers": "Нет номеров для набора.", + "noPassword": "нет", + "noRoom": "Для набора номера не было указано ни одной комнаты.", + "noWhiteboard": "Не удалось загрузить интерактивную доску.", + "numbers": "Номера для набора", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Вы достигли лимита вашего плана.", + "sip": "SIP адрес", + "sipAudioOnly": "Адрес только для аудио SIP", + "title": "Поделиться", + "tooltip": "Поделитесь ссылкой и номером для подключения к этой конференции", + "upgradeOptions": "Пожалуйста, проверьте варианты обновления на", + "whiteboardError": "Ошибка загрузки интерактивной доски. Пожалуйста, попробуйте позже." + }, + "inlineDialogFailure": { + "msg": "Небольшая заминка.", + "retry": "Попробовать снова", + "support": "Поддержка", + "supportMsg": "Если это продолжится, свяжитесь с" + }, + "inviteDialog": { + "alertText": "Не удалось пригласить некоторых участников.", + "header": "Пригласить", + "searchCallOnlyPlaceholder": "Укажите номер телефона", + "searchPeopleOnlyPlaceholder": "Поиск участников", + "searchPlaceholder": "Участник или номер телефона", + "send": "Отправить" + }, + "jitsiHome": "{{logo}} Логотип, ссылки на главную страницу", + "keyboardShortcuts": { + "focusLocal": "Фокус на ваше видео", + "focusRemote": "Фокус на видео другого участника", + "fullScreen": "Вкл/выкл полноэкранный режим", + "giphyMenu": "Показать GIPHY меню", + "keyboardShortcuts": "Комбинации клавиш", + "localRecording": "Отобразить или скрыть элементы управления локальной записи", + "mute": "Микрофон (вкл./выкл.)", + "pushToTalk": "Нажмите, чтобы говорить", + "raiseHand": "Поднять или опустить руку", + "showSpeakerStats": "Показать статистику выступающего", + "toggleChat": "Чат (открыть/закрыть)", + "toggleFilmstrip": "Показать/Скрыть краткое описание", + "toggleParticipantsPane": "Показать или скрыть панель участников", + "toggleScreensharing": "Переключиться между камерой и показом экрана", + "toggleShortcuts": "Скрыть/Показать клавиша быстрого доступа", + "videoMute": "Камера (вкл./выкл.)" + }, + "largeVideo": { + "screenIsShared": "Вы демонстрируете свой экран", + "showMeWhatImSharing": "Показать мне что я демонстрирую" + }, + "liveStreaming": { + "busy": "Освобождаем новые ресурсы для трансляции. Пожалуйста, попробуйте снова через несколько минут.", + "busyTitle": "Все ресурсы для трансляции уже задействованы", + "changeSignIn": "Переключить аккаунты.", + "choose": "Выбрать трансляцию", + "chooseCTA": "Выберите трансляцию. Вы вошли в систему как {{email}}.", + "enterStreamKey": "Введите ваш ключ трансляции YouTube.", + "error": "Ошибка трансляции. Пожалуйста, попробуйте снова.", + "errorAPI": "Произошла ошибка при доступе к вашим трансляциям на YouTube. Повторите попытку входа в систему.", + "errorLiveStreamNotEnabled": "Трансляция не подключена на {{email}}. Пожалуйста подключите трансляцию или войдите в аккаунт с подключенной трансляцией.", + "expandedOff": "Прямая трансляция остановлена", + "expandedOn": "В настоящий момент конференция транслируется на YouTube.", + "expandedPending": "Начинается прямая трансляция…", + "failedToStart": "Ошибка трансляции видео", + "getStreamKeyManually": "Прямые трансляций не найдены. Попробуйте получить ключ прямой трансляции от YouTube.", + "googlePrivacyPolicy": "Политика конфиденциальности Google", + "inProgress": "Идет запись или прямая трансляция", + "invalidStreamKey": "Похоже ключ прямой трансляции неверен.", + "limitNotificationDescriptionNative": "Ваша трансляция будет ограничена {{limit}} мин. Для неограниченного просмотра попробуйте {{app}}.", + "limitNotificationDescriptionWeb": "Из-за высокой нагрузки ваша потоковая передача будет ограничена {{limit}} мин. Для неограниченной потоковой передачи попробуйте {{app}} .", + "off": "Трансляция остановлена", + "offBy": "{{name}} остановил прямую трансляцию", + "on": "Трансляция", + "onBy": "{{name}} начал прямую трансляцию", + "pending": "Начинаем трансляцию…", + "serviceName": "Служба трансляции", + "sessionAlreadyActive": "Этот сеанс уже записывается или транслируется в прямом эфире.", + "signIn": "Войти через Google", + "signInCTA": "Войдите или введите свой ключ трансляции YouTube.", + "signOut": "Выход", + "signedInAs": "В настоящее время вы вошли в систему как:", + "start": "Начать трансляцию", + "streamIdHelp": "Что это?", + "title": "Трансляция", + "unavailableTitle": "Трансляция недоступна", + "youtubeTerms": "Условия использования YouTube" + }, + "lobby": { + "backToKnockModeButton": "Попросить присоединиться", + "chat": "Чат", + "dialogTitle": "Режим лобби", + "disableDialogContent": "В настоящее время включен режим лобби. Эта функция гарантирует, что нежелательные участники не смогут присоединиться к вашей встрече. Вы хотите его отключить?", + "disableDialogSubmit": "Отключить", + "emailField": "Введите ваш адрес электронной почты", + "enableDialogPasswordField": "Установите пароль (необязательно)", + "enableDialogSubmit": "Включить", + "enableDialogText": "Режим лобби позволяет защитить вашу встречу, позволяя людям входить только после официального одобрения модератором.", + "enterPasswordButton": "Введите пароль встречи", + "enterPasswordTitle": "Введите пароль чтобы присоединиться к встрече", + "errorMissingPassword": "Пожалуйста, введите пароль встречи", + "invalidPassword": "Неверный пароль", + "joinRejectedMessage": "Ваш запрос на присоединение был отклонен модератором.", + "joinRejectedTitle": "Заявка на присоедиение отклонена.", + "joinTitle": "Присоединиться к встрече", + "joinWithPasswordMessage": "Пытаюсь присоединиться с паролем, подождите…", + "joiningMessage": "Вы присоединитесь к встрече, как только кто-то примет ваш запрос", + "joiningTitle": "Просьба присоединиться к встрече…", + "joiningWithPasswordTitle": "Присоединение с паролем…", + "knockButton": "Попросить присоединиться", + "knockTitle": "Кто-то хочет присоединиться к встрече", + "knockingParticipantList": "Список ожидающих участников", + "lobbyChatStartedNotification": "{{moderator}} начал лобби чат с {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} начал лобби чат с вами.", + "lobbyClosed": "Зал ожидания закрыт.", + "nameField": "Введите ваше имя", + "notificationLobbyAccessDenied": "{{originParticipantName}} запретил присоединиться {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} разрешил присоединиться {{targetParticipantName}} ", + "notificationLobbyDisabled": "Лобби отключено пользователем {{originParticipantName}}", + "notificationLobbyEnabled": "Лобби включено пользователем {{originParticipantName}}", + "notificationTitle": "Лобби", + "passwordJoinButton": "Присоединиться", + "title": "Лобби", + "toggleLabel": "Включить лобби" + }, + "localRecording": { + "clientState": { + "off": "Отключен", + "on": "Подключен", + "unknown": "Неизвестен" + }, + "dialogTitle": "Кнопки локальной записи", + "duration": "Длительность", + "durationNA": "неизвестно", + "encoding": "Кодировка", + "label": "Левый/Правый", + "labelToolTip": "Локальная запись активна", + "localRecording": "Локальная запись", + "me": "Я", + "messages": { + "engaged": "Локальная запись началась.", + "finished": "Запись сессии {{token}} завершена. Пожалуйста отправьте записанный файл модератору.", + "finishedModerator": "Запись сессии {{token}} завершена. Запись локального трека сохранена. Пожалуйста, попросите других участников представить их записи", + "notModerator": "Вы не модератор и не можете начинать или останавливать локальную запись." + }, + "moderator": "Модератор", + "no": "Нет", + "participant": "Участник", + "participantStats": "Статистика участников", + "selectTabTitle": "🎥 Пожалуйста, выберите эту вкладку для записи", + "sessionToken": "Токен сессии", + "start": "Начать запись", + "stop": "Остановить запись", + "stopping": "Остановка записи", + "wait": "Пожалуйста, подождите, пока мы сохраняем вашу запись", + "yes": "Да" + }, + "lockRoomPassword": "пароль", + "lockRoomPasswordUppercase": "Пароль", + "lonelyMeetingExperience": { + "button": "Пригласить", + "youAreAlone": "Вы один в видеоконференции" + }, + "me": "я", + "notify": { + "OldElectronAPPTitle": "Уязвимость в системе безопасности!", + "allowAction": "Разрешить", + "allowedUnmute": "Вы можете включить микрофон, включить камеру или поделиться своим экраном.", + "audioUnmuteBlockedDescription": "Операция включения микрофона была временно заблокирована из-за системных ограничений.", + "audioUnmuteBlockedTitle": "Включение микрофона заблокировано!", + "chatMessages": "Сообщения чата", + "connectedOneMember": "{{name}} присоединился к конференции", + "connectedThreePlusMembers": "{{name}} и {{count}} других пользователей присоединились к конференции", + "connectedTwoMembers": "{{first}} и {{second}} присоединились к конференции", + "dataChannelClosed": "Качество видео ухудшилось", + "dataChannelClosedDescription": "Канал связи был отключен, поэтому качество видео ограничено минимально возможным.", + "disabledIframe": "Встраивание предназначено только для демонстрационных целей, поэтому этот вызов будет отключен через {{timeout}} минут.", + "disabledIframeSecondary": "Встраивание {{domain}} предназначено только для демонстрационных целей, поэтому этот вызов будет отключен через {{timeout}} минут. Пожалуйста, используйте Jitsi как сервис для встраивания в продакшн!", + "disconnected": "соединение разорвано", + "displayNotifications": "Отображение уведомлений для", + "dontRemindMe": "Не напоминать мне", + "focus": "Фокус встречи", + "focusFail": "{{component}} недоступен, повторите через {{ms}} с", + "gifsMenu": "GIPHY", + "groupTitle": "Уведомления", + "hostAskedUnmute": "Модератор хочет, чтобы вы высказалисьМодератор хочет, чтобы вы высказались", + "invitedOneMember": "{{name}} был приглашен", + "invitedThreePlusMembers": "Приглашены {{name}} и {{count}} других пользователей(ля)", + "invitedTwoMembers": "{{first}} и {{second}} присоединились к конференции", + "joinMeeting": "Присоединиться", + "kickParticipant": "{{kicker}} отключил {{kicked}}", + "leftOneMember": "{{name}} покинул собрание", + "leftThreePlusMembers": "{{name}} и многие другие покинули встречу", + "leftTwoMembers": "{{first}} и {{second}} покинули встречу", + "linkToSalesforce": "Ссылка на Salesforce", + "linkToSalesforceDescription": "Вы можете отправить ссылку на сводку встречи Salesforce объекту.", + "linkToSalesforceError": "Ошибка отправки ссылки на встречу для Salesforce", + "linkToSalesforceKey": "Отправить ссылку на встречу для Salesforce", + "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}} отключил Вам микрофон!", + "mutedTitle": "Вы без звука!", + "newDeviceAction": "Использовать", + "newDeviceAudioTitle": "Обнаружено новое аудиоустройство", + "newDeviceCameraTitle": "Обнаружена новая камера", + "noiseSuppressionDesktopAudioDescription": "Шумоподавление не может быть включено при совместном использовании звука рабочего стола, пожалуйста, отключите его и повторите попытку.", + "noiseSuppressionFailedTitle": "Не удалось запустить шумоподавление", + "noiseSuppressionStereoDescription": "Шумоподавление стереозвука в настоящее время не поддерживается.", + "oldElectronClientDescription1": "Похоже, вы используете старую версию клиента {{app}}, которая имеет известные уязвимости в системе безопасности. Убедитесь, что вы обновили до нашей ", + "oldElectronClientDescription2": "последней версии", + "oldElectronClientDescription3": " сейчас!", + "participantWantsToJoin": "Хочет присоединиться к встрече", + "participantsWantToJoin": "Хотят присоединиться к встрече", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) удален другим участником.", + "passwordSetRemotely": "Другой участник установил $t(lockRoomPasswordUppercase)", + "raiseHandAction": "Поднять руку", + "raisedHand": "{{name}} хотел бы выступить.", + "raisedHands": "{{Имя участника}} и еще {{подняли руки}} человек", + "reactionSounds": "Отключить звуки", + "reactionSoundsForAll": "Отключить звуки для всех", + "screenShareNoAudio": "Флажок «Поделиться аудио» не был отмечен на экране выбора окна.", + "screenShareNoAudioTitle": "Не удалось поделиться системным звуком!", + "screenSharingAudioOnlyDescription": "Пожалуйста, обратите внимание, что при демонстрации экрана вы влияете на режим «Наилучшая производительность» и увеличиваете пропускную способность.", + "screenSharingAudioOnlyTitle": "Режим «Наилучшая производительность»", + "selfViewTitle": "Вы всегда можете скрыть собственное изображение в настройках.", + "somebody": "Кто-то", + "startSilentDescription": "Перезайдите в конференцию, чтобы включить звук", + "startSilentTitle": "У вас отсутствует звук!", + "suboptimalBrowserWarning": "К сожалению, ваш браузер не полностью поддерживает данную систему вэбконференций. Мы работаем над проблемой, однако, пока рекомендуем вам воспользоваться следующими браузерами.", + "suboptimalExperienceTitle": "Предупреждение браузера", + "suggestRecordingAction": "Начать", + "suggestRecordingDescription": "Хотите начать запись?", + "suggestRecordingTitle": "Записать эту встречу", + "unmute": "Включить микрофон", + "videoMutedRemotelyDescription": "Вы всегда можете включить его снова.", + "videoMutedRemotelyTitle": "Ваше видео было отключено {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Включение звука камеры и совместное использование рабочего стола временно заблокированы из-за системных ограничений.", + "videoUnmuteBlockedTitle": "Включение камеры и общий доступ к рабочему столу заблокированы!", + "viewLobby": "Смотреть лобби", + "viewVisitors": "Просмотр посетителей", + "waitingParticipants": "{{waitingParticipants}} люди", + "whiteboardLimitDescription": "Пожалуйста, сохраните свои изменения, так как скоро будет достигнут лимит пользователей, и интерактивная доска будет закрыта.", + "whiteboardLimitTitle": "Использование интерактивной доски" + }, + "participantsPane": { + "actions": { + "admit": "Разрешить", + "admitAll": "Разрешить всем", + "allow": "Разрешить", + "allowVideo": "Разрешить видео", + "askUnmute": "Попросить разрешение включить микрофон", + "audioModeration": "Разрешить выключить микрофон", + "blockEveryoneMicCamera": "Заблокировать у всех микрофон и камеру", + "breakoutRooms": "Сессионные залы", + "invite": "Пригласить", + "moreModerationActions": "Дополнительные параметры модерации", + "moreModerationControls": "Дополнительные элементы управления модерацией", + "moreParticipantOptions": "Дополнительные параметры участников", + "mute": "Выключить звук", + "muteAll": "Выключить звук у всех", + "muteEveryoneElse": "Выключить микрофон у остальных", + "reject": "Отклонить", + "stopEveryonesVideo": "Выключить у всех камеру", + "stopVideo": "Остановить видео", + "unblockEveryoneMicCamera": "Разблокировать у всех микрофон и камеру", + "videoModeration": "Разрешить видео" + }, + "close": "Закрыть", + "headings": { + "lobby": "Лобби ({{count}})", + "participantsList": "Список участников ({{count}})", + "visitorRequests": " (запросы {{count}})", + "visitors": "Посетители {{count}}", + "waitingLobby": "Ожидают в лобби ({{count}})" + }, + "search": "Поиск участников", + "title": "Участники" + }, + "passwordDigitsOnly": "До {{number}} цифр", + "passwordSetRemotely": "Установлен другим участником", + "pinParticipant": "{{participantName}} - Закрепить", + "pinnedParticipant": "Участник закреплен", + "polls": { + "answer": { + "edit": "Редактировать", + "send": "Отправить", + "skip": "Пропустить", + "submit": "Подтвердить" + }, + "by": "По {{ name }}", + "create": { + "addOption": "Добавить вариант", + "answerPlaceholder": "Вариант {{index}}", + "cancel": "Отмена", + "create": "Создать опрос", + "pollOption": "Вариант опроса {{index}}", + "pollQuestion": "Вопрос опроса", + "questionPlaceholder": "Задайте вопрос", + "removeOption": "Удалить вариант", + "save": "Сохранить", + "send": "Отправлять" + }, + "errors": { + "notUniqueOption": "Варианты должны быть уникальными" + }, + "notification": { + "description": "Откройте вкладку опросов, чтобы проголосовать", + "title": "К этой встрече добавлен новый опрос" + }, + "results": { + "changeVote": "Изменить голос", + "empty": "На собрании еще нет опросов. Начать опрос здесь!", + "hideDetailedResults": "Скрыть детали", + "showDetailedResults": "Показать детали", + "vote": "Голосование" + } + }, + "poweredby": "работает на", + "prejoin": { + "audioAndVideoError": "Ошибка звука и видео:", + "audioDeviceProblem": "Проблема с вашим аудиоустройством", + "audioOnlyError": "Ошибка звука:", + "audioTrackError": "Не удалось создать аудио дорожку.", + "callMe": "Позвоните мне", + "callMeAtNumber": "Позвоните мне по этому номеру:", + "calling": "Вызываем", + "configuringDevices": "Настраиваются устройства…", + "connectedWithAudioQ": "Вы подключили звук?", + "connection": { + "good": "Ваше интернет-соединение выглядит хорошо!", + "nonOptimal": "Ваше интернет-соединение не оптимально", + "poor": "У вас плохое интернет-соединение" + }, + "connectionDetails": { + "audioClipping": "Мы ожидаем, что ваш звук будет обрезан.", + "audioHighQuality": "Мы ожидаем, что ваш звук будет отличного качества.", + "audioLowNoVideo": "Мы ожидаем, что у вас будет низкое качество звука и отсутствие видео.", + "goodQuality": "Потрясающий! Качество вашего мультимедиа будет отличным.", + "noMediaConnectivity": "Мы не смогли найти способ установить медиа-соединение для этого теста. Обычно это вызвано брандмауэром или NAT.", + "noVideo": "Мы ожидаем, что ваше видео будет ужасным.", + "undetectable": "Если вы все еще не можете совершать звонки в браузере, мы рекомендуем вам убедиться, что ваши динамики, микрофон и камера правильно настроены, что вы предоставили своему браузеру права на использование микрофона и камеры и что версия вашего браузера является актуальной. Если у вас все еще возникают проблемы с вызовом, вам следует обратиться к разработчику веб-приложения.", + "veryPoorConnection": "Мы ожидаем, что качество вашего звонка будет действительно ужасным.", + "videoFreezing": "Мы ожидаем, что ваше видео зависнет, станет черным и пиксельным.", + "videoHighQuality": "Мы ожидаем, что ваше видео будет хорошего качества.", + "videoLowQuality": "Мы ожидаем, что ваше видео будет иметь низкое качество с точки зрения частоты кадров и разрешения.", + "videoTearing": "Мы ожидаем, что ваше видео будет пиксельным или содержать визуальные артефакты." + }, + "copyAndShare": "Скопировать и поделиться ссылкой на встречу", + "dialInMeeting": "Дозвониться до встречи", + "dialInPin": "Дозвониться до встречи и ввести ПИН код:", + "dialing": "Дозвон", + "doNotShow": "Не показывать снова", + "errorDialOut": "Не удалось дозвониться", + "errorDialOutDisconnected": "Не удалось дозвониться. Отключено", + "errorDialOutFailed": "Не удалось дозвониться. Сбой вызова", + "errorDialOutStatus": "Ошибка получения статуса вызова", + "errorMissingName": "Пожалуйста, введите свое имя, чтобы присоединиться к встрече", + "errorNoPermissions": "Вам необходимо включить доступ к микрофону и камере", + "errorStatusCode": "Ошибка вызова, код статуса: {{status}}", + "errorValidation": "Проверка номера не удалась", + "iWantToDialIn": "Я хочу дозвониться", + "initiated": "Вызов инициирован", + "joinAudioByPhone": "Подключиться с телефонной связью", + "joinMeeting": "Присоединиться к встрече", + "joinMeetingInLowBandwidthMode": "Присоединиться без видео", + "joinWithoutAudio": "Присоединиться без звука", + "keyboardShortcuts": "Включить сочетания клавиш", + "linkCopied": "Ссылка скопирована в буфер обмена", + "lookGood": "Кажется ваш микрофон работает правильно", + "or": "или", + "premeeting": "Перед подключением", + "proceedAnyway": "Продолжить в любом случае", + "recordingWarning": "Другие участники могут записывать этот звонок", + "screenSharingError": "Ошибка показа экрана:", + "startWithPhone": "Начать с телефонной связью", + "unsafeRoomConsent": "Я понимаю риски и хочу присоединиться к встрече", + "videoOnlyError": "Ошибка видео:", + "videoTrackError": "Не удалось создать видео дорожку.", + "viewAllNumbers": "посмотреть всех участников" + }, + "presenceStatus": { + "busy": "Занят", + "calling": "Вызываю…", + "connected": "Подключено", + "connecting": "Подключение…", + "connecting2": "Подключение*…", + "disconnected": "Отключено", + "expired": "Истек", + "ignored": "Проигнорирован", + "initializingCall": "Инициализация звонка…", + "invited": "Приглашенный", + "rejected": "Отклонен", + "ringing": "Звоню. . ." + }, + "profile": { + "avatar": "аватар", + "setDisplayNameLabel": "Отображаемое имя", + "setEmailInput": "Введите email", + "setEmailLabel": "Email для Gravatar", + "title": "Профиль" + }, + "raisedHand": "Хочет говорить", + "raisedHandsLabel": "Количество поднятых рук", + "record": { + "already": { + "linked": "Ссылка на встречу уже оправлена Salesforce объекту." + }, + "type": { + "account": "Аккаунт", + "contact": "Сонтакт", + "lead": "Вести", + "opportunity": "Возможность", + "owner": "Владелец" + } + }, + "recording": { + "authDropboxText": "Загрузить в Dropbox", + "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": "Мы создали ссылку на вашу запись.", + "localRecordingNoNotificationWarning": "Запись не будет объявлена другим участникам. Вам необходимо самостоятельно уведомить их о том, что встреча записывается.", + "localRecordingNoVideo": "Видео не записывается", + "localRecordingStartWarning": "Пожалуйста, убедитесь, что вы остановили запись перед выходом из встречи, чтобы сохранить её.", + "localRecordingStartWarningTitle": "Остановите запись для сохранения", + "localRecordingVideoStop": "Остановка вашего видео также остановит локальную запись. Вы уверены, что хотите продолжить?", + "localRecordingVideoWarning": "Чтобы записать ваше видео, оно должно быть включено при начале записи", + "localRecordingWarning": "Убедитесь, что вы выбрали текущую вкладку для использования правильного видео и аудио.", + "loggedIn": "Вошел как {{userName}}", + "noMicPermission": "Не удалось создать аудиодорожку микрофона. Пожалуйста, предоставьте разрешение на использование микрофона.", + "noStreams": "Аудио или видеопоток не обнаружен.", + "off": "Запись остановлена", + "offBy": "{{name}} остановил запись", + "on": "Запись началась", + "onBy": "{{name}} включил запись", + "onlyRecordSelf": "Записать только мои аудио и видео потоки", + "pending": "Подготовка записи конференции. . .", + "recordAudioAndVideo": "Запись аудио и видео", + "recordTranscription": "Запись транскрипции", + "saveLocalRecording": "Сохранить файл записи локально (Beta)", + "serviceDescription": "Ваша запись будет сохранена соответствующей службой", + "serviceDescriptionCloud": "Облачная запись", + "serviceDescriptionCloudInfo": "Сохранённые записи автоматически удаляются спуся 24 часа со старта.", + "serviceName": "Служба записи", + "sessionAlreadyActive": "Этот сеанс уже записывается или транслируется в прямом эфире.", + "showAdvancedOptions": "Расширенные настройки", + "signIn": "Вход", + "signOut": "Выход", + "surfaceError": "Пожалуйста, выберите текущую вкладку.", + "title": "Запись", + "unavailable": "Служба {{serviceName}} сейчас недоступна. Мы работаем над исправлением этой ошибки. Пожалуйста, попробуйте позже.", + "unavailableTitle": "Запись невозможна", + "uploadToCloud": "Загрузить в облако" + }, + "screenshareDisplayName": "Экран {{name}}", + "sectionList": { + "pullToRefresh": "Потяните для обновления" + }, + "security": { + "about": "Вы можете добавить к собранию $t(lockRoomPassword). Участникам необходимо будет предоставить $t(lockRoomPassword), прежде чем им будет разрешено присоединиться к собранию.", + "aboutReadOnly": "Участники-модераторы могут добавить к собранию $t(lockRoomPassword). Участникам необходимо будет предоставить $t(lockRoomPassword), прежде чем им будет разрешено присоединиться к собранию.", + "insecureRoomNameWarningNative": "Название комнаты небезопасно. Нежелательные участники могут присоединиться к вашей встрече. {{recommendAction}} Узнайте больше о защите вашей встречи ", + "insecureRoomNameWarningWeb": "Название комнаты небезопасно. Нежелательные участники могут присоединиться к вашей встрече. {{recommendAction}} Узнайте больше о защите вашей встречи здесь.", + "title": "Настройки безопасности", + "unsafeRoomActions": { + "meeting": "Рассмотрите возможность защиты вашей встречи с использованием кнопки безопасности.", + "prejoin": "Рассмотрите возможность использования более уникального имени встречи.", + "welcome": "Рассмотрите возможность использования более уникального имени встречи или выберите одно из предложений." + } + }, + "settings": { + "audio": "Звук", + "buttonLabel": "Настройки", + "calendar": { + "about": "Интеграция с календарем {{appName}} используется для безопасного доступа к вашему календарю и синхронизации запланированных мероприятий.", + "disconnect": "Отключиться", + "microsoftSignIn": "Войти с помощью учетной записи Microsoft", + "signedIn": "Доступ к событиям календаря включен для email - адреса {{email}}. Нажмите кнопку Отключить для отключения доступа к событиям календаря.", + "title": "Календарь" + }, + "desktopShareFramerate": "Частота кадров при совместном использовании рабочего стола", + "desktopShareHighFpsWarning": "Более высокая частота кадров для общего доступа к рабочему столу может повлиять на пропускную способность. Вам необходимо перезапустить демонстрацию экрана, чтобы новые настройки вступили в силу.", + "desktopShareWarning": "Вам необходимо перезапустить демонстрацию экрана, чтобы новые настройки вступили в силу.", + "devices": "Устройства", + "followMe": "Все следуют за мной", + "framesPerSecond": "кадров в секунду", + "incomingMessage": "Входящее сообщение", + "language": "Язык", + "loggedIn": "Вошел как {{name}}", + "maxStageParticipants": "Максимальное количество участников, которых можно закрепить на главной сцене", + "microphones": "Микрофоны", + "moderator": "Модератор", + "moderatorOptions": "Настройки модератора", + "more": "Больше опций", + "name": "Имя", + "noDevice": "нет", + "notifications": "Оповещения", + "participantJoined": "Участник присоединился", + "participantKnocking": "Участник вошел в лобби", + "participantLeft": "Участник вышел", + "playSounds": "Включить звук", + "reactions": "Реакции на встречи", + "sameAsSystem": "То же, что и система ({{label}})", + "selectAudioOutput": "Звуковой выход", + "selectCamera": "Камера", + "selectMic": "Микрофон", + "selfView": "Самостоятельный просмотр", + "shortcuts": "Сочетания клавиш", + "speakers": "Динамики", + "startAudioMuted": "Все начинают с выключенным звуком", + "startReactionsMuted": "Отключение звука реакции для всех", + "startVideoMuted": "Все начинают в скрытом режиме", + "talkWhileMuted": "Говорите без звука", + "title": "Настройки", + "video": "Видео" + }, + "settingsView": { + "advanced": "Дополнительные", + "alertCancel": "Отмена", + "alertOk": "OK", + "alertTitle": "Внимание", + "alertURLText": "Ошибка адреса сервера", + "apply": "Применить", + "buildInfoSection": "Информация о сборке", + "conferenceSection": "Номера для набора", + "disableCallIntegration": "Отключить встроенную интеграцию вызовов", + "disableCrashReporting": "Отключить отправку отчетов о сбоях", + "disableCrashReportingWarning": "Вы действительно хотите отключить отчеты о сбоях? Настройка будет применена после перезапуска приложения.", + "disableP2P": "Отключить режим Peer-To-Peer", + "displayName": "Отображаемое имя", + "displayNamePlaceholderText": "Например: Иван Иванов", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "Если ваш email связан с аккаунтом Gravatar, мы будем использовать его в качестве изображения вашего профиля.", + "goTo": "Перейти к", + "header": "Настройки", + "help": "Помощь", + "links": "Ссылки", + "privacy": "Конфиденциальность", + "profileSection": "Профиль", + "sdkVersion": "Версия SDK", + "serverURL": "Адрес сервера", + "showAdvanced": "Показать дополнительные настройки", + "startCarModeInLowBandwidthMode": "Включать упрощенный режим на ограниченном канале", + "startWithAudioMuted": "Начать с отключенным звуком", + "startWithVideoMuted": "Начать с отключенным видео", + "terms": "Условия", + "version": "Версия" + }, + "share": { + "dialInfoText": "\n\n=====\n\nПросто хотите набрать номер на Вашем телефоне?\n\n{{defaultDialInNumber}}Щелкните на эту ссылку, чтобы просмотреть телефонные номера для этой конференции\n{{dialInfoPageUrl}}", + "mainText": "Нажмите на ссылку чтобы присоединиться к конференции:\n{{roomUrl}}" + }, + "speaker": "Спикер", + "speakerStats": { + "angry": "Злой", + "disgusted": "Отвращение", + "displayEmotions": "Показать эмоции", + "fearful": "Страшный", + "happy": "Счастье", + "hours": "{{count}}ч", + "minutes": "{{count}}м", + "name": "Имя", + "neutral": "Нейтральный", + "sad": "Грусный", + "search": "Поиск", + "searchHint": "Поиск участников", + "seconds": "{{count}}с", + "speakerStats": "Статистика выступлений", + "speakerTime": "Время выступлений", + "surprised": "Удивлен" + }, + "startupoverlay": { + "genericTitle": "На совещании необходимо использовать микрофон и камеру.", + "policyText": " ", + "title": "{{app}} требуется доступ к микрофону и камере." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Подключиться снова", + "text": "Для восстановления связи нажмите кнопку Подключиться снова.", + "title": "Видеосвязь прервана. Причина: этот компьютер перешел в режим сна." + }, + "termsView": { + "title": "Условия" + }, + "toggleTopPanelLabel": "Переключить верхнюю панель", + "toolbar": { + "Settings": "Настройки", + "accessibilityLabel": { + "Settings": "Вкл/Выкл меню настроек", + "audioOnly": "Вкл/Выкл только звук", + "audioRoute": "Выбрать аудиоустройство", + "boo": "Бу", + "breakoutRooms": "Сессионные залы", + "callQuality": "Качество связи", + "carmode": "Упрощенный режим", + "cc": "Вкл/Выкл субтитры", + "chat": "Показать/скрыть окно чата", + "clap": "Хлопок", + "closeChat": "Закрыть чат", + "closeMoreActions": "Закрыть меню дополнительных действий", + "closeParticipantsPane": "Закрыть панель участников", + "collapse": "Крах", + "document": "Закрыть общий документ", + "documentClose": "Закрыть общий документ", + "documentOpen": "Открыть общий документ", + "download": "Скачать приложение", + "embedMeeting": "Встроить встречу", + "endConference": "Завершить встречу для всех", + "enterFullScreen": "Перейти в полноэкранный режим", + "enterTileView": "Включить режим плитки", + "exitFullScreen": "Выйти из полноэкранного режима", + "exitTileView": "Выйти из режима плитки", + "expand": "Расширять", + "feedback": "Оставить отзыв", + "fullScreen": "Полноэкранный/оконный режим", + "giphy": "Показать GIPHY меню", + "grantModerator": "Сделать модератором", + "hangup": "Завершить звонок", + "heading": "Панель инструментов", + "help": "Справка", + "hideWhiteboard": "Скрыть интерактивную доску", + "invite": "Пригласить", + "kick": "Отключить участника", + "laugh": "Смех", + "leaveConference": "Покинуть встречу", + "like": "Палец вверх", + "linkToSalesforce": "Ссылка на Salesforce", + "lobbyButton": "Вкл/Выкл режим лобби", + "localRecording": "Вкл/Выкл кнопки записи", + "lockRoom": "Установить пароль", + "lowerHand": "Опустить руку", + "moreActions": "Показать/скрыть меню доп. настроек", + "moreActionsMenu": "Меню доп. настроек", + "moreOptions": "Меню доп. настроек", + "mute": "Вкл/Выкл звук", + "muteEveryone": "Выкл. микрофон у всех", + "muteEveryoneElse": "Заглушить всех остальных", + "muteEveryoneElsesVideoStream": "Остановить чужое видео", + "muteEveryonesVideoStream": "Остановить видео для всех", + "muteGUMPending": "Подключение вашего микрофона", + "noiseSuppression": "Шумоподавление", + "openChat": "Открыть чат", + "participants": "Участники", + "pip": "Вкл/Выкл режим Картинка-в-картинке", + "privateMessage": "Отправить личное сообщение", + "profile": "Редактировать профиль", + "raiseHand": "Поднять руку", + "reactions": "Реакции", + "reactionsMenu": "Открыть/закрыть меню реакций", + "recording": "Вкл/Выкл запись", + "remoteMute": "Отключить участнику микрофон", + "remoteVideoMute": "Отключить камеру участника", + "security": "Настройки безопасности", + "selectBackground": "Выберите фон", + "selfView": "Самостоятельный просмотр", + "shareRoom": "Отправить приглашение", + "shareYourScreen": "Вкл/Выкл демонстрацию экрана", + "shareaudio": "Поделиться аудио", + "sharedvideo": "Вкл/Выкл Youtube - трансляцию", + "shortcuts": "Вкл/Выкл значки", + "show": "Показать крупным планом", + "showWhiteboard": "Показать интерактивную доску", + "silence": "Тишина", + "speakerStats": "Вкл/Выкл статистику", + "stopScreenSharing": "Прекратить демонстрацию экрана", + "stopSharedVideo": "Остановить видео", + "surprised": "Удивлен", + "tileView": "Вкл/Выкл плитку", + "toggleCamera": "Переключить камеру", + "toggleFilmstrip": "Включить диафильм", + "unmute": "Включить микрофон", + "videoblur": "Вкл/Выкл размытие фона", + "videomute": "Вкл/Выкл видео", + "videomuteGUMPending": "Подключение вашей камеры", + "videounmute": "Включить камеру" + }, + "addPeople": "Добавить людей к вашему сеансу связи", + "audioOnlyOff": "Включить видео (стандартный режим)", + "audioOnlyOn": "Выключить видео (экономичный режим)", + "audioRoute": "Выбрать аудиоустройство", + "audioSettings": "Настройка звука", + "authenticate": "Аутентифицировать", + "boo": "Освистывать", + "callQuality": "Качество связи", + "chat": "Чат", + "clap": "Аплодисменты", + "closeChat": "Закрыть чат", + "closeParticipantsPane": "Закрыть панель участников", + "closeReactionsMenu": "Закрыть меню реакций", + "disableNoiseSuppression": "Выключить шумоподавление", + "disableReactionSounds": "Выключить звуки реакций", + "documentClose": "Закрыть общий документ", + "documentOpen": "Открыть общий документ", + "download": "Скачать приложение", + "e2ee": "Сквозное шифрование", + "embedMeeting": "Встроить встречу", + "enableNoiseSuppression": "Включить шумоподавление", + "endConference": "Завершить встречу для всех", + "enterFullScreen": "На полный экран", + "enterTileView": "Общий план", + "exitFullScreen": "Полный экран", + "exitTileView": "Крупный план", + "feedback": "Оставить отзыв", + "giphy": "Показать GIPHY меню", + "hangup": "Выход", + "help": "Справка", + "hideWhiteboard": "Скрыть интерактивную доску", + "invite": "Пригласить", + "joinBreakoutRoom": "Войти в сессионный зал", + "laugh": "Смеяться", + "leaveBreakoutRoom": "Покинуть сессионный зал", + "leaveConference": "Покинуть встречу", + "like": "Мне нравится", + "linkToSalesforce": "Ссылка на Salesforce", + "lobbyButtonDisable": "Отключить режим лобби", + "lobbyButtonEnable": "Включить режим лобби", + "login": "Войти", + "logout": "Завершить сеанс", + "lowerYourHand": "Опустить руку", + "moreActions": "Больше действий", + "moreOptions": "Больше настроек", + "mute": "Микрофон (вкл./выкл.)", + "muteEveryone": "Выкл. микрофон у всех", + "muteEveryonesVideo": "Выкл. камеру у всех", + "muteGUMPending": "Подключение вашего микрофона", + "noAudioSignalDesc": "Если вы специально не отключали микрофон в системных настройках, подумайте о том, чтобы поменять его.", + "noAudioSignalDescSuggestion": "Если вы специально не отключали микрофон в системных настройках, вы можете попробовать использовать следующее устройство:", + "noAudioSignalDialInDesc": "Вы можете также дозвониться используя:", + "noAudioSignalDialInLinkDesc": "Номера для дозвона", + "noAudioSignalTitle": "От вашего микрофона не идет звуковой сигнал!", + "noiseSuppression": "Шумоподавление", + "noisyAudioInputDesc": "Возможно, ваш микрофон создает шум. Вы можете выключить его или смените устройство.", + "noisyAudioInputTitle": "Похоже, ваш микрофон создает шум!", + "openChat": "Открыть чат", + "openReactionsMenu": "Открыть меню реакций", + "participants": "Участники", + "pip": "Вкл режим Картинка-в-картинке", + "privateMessage": "Отправить личное сообщение", + "profile": "Редактировать профиль", + "raiseHand": "Хочу говорить", + "raiseYourHand": "Поднять руку", + "reactionBoo": "Отправить бу реакцию", + "reactionClap": "Отправить реакцию аплодисментов", + "reactionLaugh": "Отправить реакцию смеха", + "reactionLike": "Отправить реакцию «палец вверх»", + "reactionSilence": "Отправить реакцию тишины", + "reactionSurprised": "Отправить удивленную реакцию", + "reactions": "Реакции", + "security": "Настройки безопасности", + "selectBackground": "Выбрать фоновое изображение", + "shareRoom": "Отправить приглашение", + "shareaudio": "Предоставить доступ к звуку", + "sharedvideo": "Видео YouTube", + "shortcuts": "Комбинации клавиш", + "showWhiteboard": "Показать интерактивную доску", + "silence": "Молчание", + "speakerStats": "Статистика", + "startScreenSharing": "Начать трансляцию с экрана", + "startSubtitles": "Включить субтитры", + "stopAudioSharing": "Остановить обмен аудио", + "stopScreenSharing": "Остановить трансляцию с экрана", + "stopSharedVideo": "Остановить видео на YouTube", + "stopSubtitles": "Отключить субтитры", + "surprised": "Удивиться", + "talkWhileMutedPopup": "Пытаетесь говорить? У вас отключен звук.", + "tileViewToggle": "Вкл/выкл плитку", + "toggleCamera": "Переключить камеру", + "unmute": "Включить микрофон", + "videoSettings": "Настройка видео", + "videomute": "Камера", + "videomuteGUMPending": "Подключение вашей камеры", + "videounmute": "Включить камеру" + }, + "transcribing": { + "ccButtonTooltip": "Вкл. / Выкл. субтитры", + "expandedLabel": "Транскрипция включена", + "failedToStart": "Неудалось начать расшифровку", + "labelToolTip": "Создается транскрипция конференции.", + "sourceLanguageDesc": "В настоящее время язык встречи установлен на {{sourceLanguage}}.
Вы можете изменить его ", + "sourceLanguageHere": "здесь", + "start": "Вкл/Выкл показ субтитров", + "stop": "Вкл/Выкл показ субтитров", + "subtitles": "Субтитры", + "subtitlesOff": "Выкл", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Открепить", + "userMedia": { + "grantPermissions": "Пожалуйста, дайте разрешение на доступ к камере и микрофону." + }, + "videoSIPGW": { + "busy": "Мы работаем над высвобождением ресурсов. Пожалуйста, попробуйте через несколько минут.", + "busyTitle": "Служба сейчас занята", + "errorAlreadyInvited": "{{displayName}} уже приглашен", + "errorInvite": "Встреча еще не началась. Пожалуйста, попробуйте позже.", + "errorInviteFailed": "Мы работаем над решением проблемы. Пожалуйста, попробуйте позже.", + "errorInviteFailedTitle": "Ошибка приглашения {{displayName}}", + "errorInviteTitle": "Ошибка приглашения в комнату", + "pending": "{{displayName}} был приглашен" + }, + "videoStatus": { + "adjustFor": "Отрегулируйте для:", + "audioOnly": "Только звук", + "audioOnlyExpanded": "Активен режим экономии пропускной способности. В этом режиме доступны только звук и трансляция с экрана", + "bestPerformance": "Лучшее представление", + "callQuality": "Качество видео", + "hd": "HD", + "hdTooltip": "Видео высокого качества", + "highDefinition": "Высокое качество", + "highestQuality": "Высшее качество", + "labelTooiltipNoVideo": "Нет видео", + "labelTooltipAudioOnly": "Включен режим экономии пропускной способности", + "ld": "LD", + "ldTooltip": "Видео низкого качества", + "lowDefinition": "Низкое качество", + "performanceSettings": "Параметры производительности", + "recording": "Идет запись", + "sd": "SD", + "sdTooltip": "Видео стандартного качества", + "standardDefinition": "Стандартное качество (SD)", + "streaming": "Идет трансляция" + }, + "videothumbnail": { + "connectionInfo": "Информация о соединении", + "demote": "Переместить к посетителям", + "domute": "Выключить звук", + "domuteOthers": "Выключить звук остальным", + "domuteVideo": "Выключить видео", + "domuteVideoOfOthers": "Выключить видео остальным", + "flip": "Отразить", + "grantModerator": "Сделать модератором", + "hideSelfView": "Скрыть собственное представление", + "kick": "Отключить", + "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": "Не удалось создать общий доступ к рабочему столу", + "image1": "пляж", + "image2": "Белая нейтральная стена", + "image3": "Белая пустая комната", + "image4": "Черный торшер", + "image5": "Гора", + "image6": "Лес", + "image7": "Восход", + "none": "Нет", + "pleaseWait": "Пожалуйста подождите…", + "removeBackground": "Убрать фон", + "slightBlur": "Легкое размытие", + "title": "Виртуальные фоны", + "uploadedImage": "Загруженное изображение {{index}}", + "webAssemblyWarning": "WebAssembly не поддерживается", + "webAssemblyWarningDescription": "WebAssembly отключен или не поддерживается этим браузером" + }, + "visitors": { + "chatIndicator": "(посетитель)", + "labelTooltip": "Количество посетителей: {{count}}", + "notification": { + "demoteDescription": "Перемещён сюда пользователем {{actor}}, поднимите руку, чтобы участвовать", + "description": "Чтобы участвовать, поднимите руку", + "title": "Вы посетитель на встрече" + } + }, + "volumeSlider": "Ползунок громкости", + "welcomepage": { + "accessibilityLabel": { + "join": "Нажмите чтобы присоединиться", + "roomname": "Укажите название комнаты" + }, + "addMeetingName": "Добавить название встречи", + "appDescription": "Попробуйте видеочат со всей командой. Приглашайте знакомых! {{app}} — полностью зашифрованное решение для видеоконференций с открытым исходным кодом. Пользуйтесь каждый день, бесплатно и без регистрации.", + "audioVideoSwitch": { + "audio": "Звук", + "video": "Видео" + }, + "calendar": "Календарь", + "connectCalendarButton": "Привязать календарь", + "connectCalendarText": "Подключите календарь, чтобы увидеть все ваши конференции в {{app}}. Кроме того, добавив {{provider}} конференций в календарь, вы сможете запускать их одним щелчком мышки.", + "enterRoomTitle": "Начать новую видеоконференцию", + "getHelp": "Справка", + "go": "ОК", + "goSmall": "ОК", + "headerSubtitle": "Защищенная высококачественная видеосвязь", + "headerTitle": "Сервер видеоконференцсвязи {{app}}", + "info": "Инфо", + "jitsiOnMobile": "{{app}} для мобильных устройств — загрузите наши приложения и начните встречу из любого места", + "join": "СОЗДАТЬ / ПРИСОЕДИНИТЬСЯ", + "logo": { + "calendar": "Calendar логотип", + "desktopPreviewThumbnail": "Миниатюра предварительного просмотра на рабочем столе", + "googleLogo": "Google логотип", + "logoDeepLinking": "Логотип Navek", + "microsoftLogo": "Логотип Майкрософт", + "policyLogo": "Логотип политики" + }, + "meetingsAccessibilityLabel": "Конференции", + "mobileDownLoadLinkAndroid": "Скачать мобильное приложение для Android", + "mobileDownLoadLinkFDroid": "Скачать мобильное приложение для F-Droid", + "mobileDownLoadLinkIos": "Скачать мобильное приложение для iOS", + "moderatedMessage": "Или заранее зарезервируйте URL-адрес встречи, где вы будете единственным модератором.", + "privacy": "Приватность", + "recentList": "Недавние", + "recentListDelete": "Удалить", + "recentListEmpty": "Сейчас ваш список недавно проведенных конференций пуст. По мере вашего пользования сервисом он будет пополняться.", + "recentMeetings": "Ваши недавние конференции", + "reducedUIText": "Добро пожаловать в {{app}}!", + "roomNameAllowedChars": "Название конференции не должно содержать следующие символы: ?, &, :, ', \", %, #.", + "roomname": "Укажите название комнаты", + "roomnameHint": "Укажите название комнаты или ее адрес. Можете сами создать название и передать его будущим участникам встречи, чтобы они использовали именно его.", + "sendFeedback": "Обратная связь", + "settings": "Настройки", + "startMeeting": "Создать конференцию", + "terms": "Условия", + "title": "Защищенная, полнофункциональная и совершенно бесплатная система видеоконференций", + "upcomingMeetings": "Ваши предстоящие конференции" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Интерактивная доска" + }, + "screenTitle": "Интерактивная доска" + } +} diff --git a/lang/main-sc.json b/lang/main-sc.json new file mode 100644 index 0000000..e83c38d --- /dev/null +++ b/lang/main-sc.json @@ -0,0 +1,1371 @@ +{ + "addPeople": { + "add": "Invita", + "addContacts": "Invita a is cuntatos tuos", + "contacts": "Cuntatos", + "copyInvite": "Còpia s'invitu a sa riunione", + "copyLink": "Còpia su ligòngiu de sa riunione", + "copyStream": "Còpia ligòngiu de trasmissione in direta", + "countryNotSupported": "No est ancora possìbile de impreare custa destinatzione.", + "countryReminder": "Ses mutende in foras de is Istados Unidos? Verìfica chi insertas su còdighe de istadu!", + "defaultEmail": "S'indiritzu predefinidu tuo", + "disabled": "Non podes invitare gente.", + "failedToAdd": "Faddina in s'agiunta de partetzipantes", + "googleEmail": "Posta de Google", + "inviteMoreHeader": "Ses a sa sola in custa riunione", + "inviteMoreMailSubject": "Intra a sa riunione de {{appName}}", + "inviteMorePrompt": "Invita àtera gente", + "linkCopied": "Ligòngiu copiadu in punta de billete", + "noResults": "Non cointzidet nissunu resultadu", + "outlookEmail": "Posta de Outlook", + "phoneNumbers": "nùmeros de telèfonu", + "searching": "Chirchende…", + "shareInvite": "Cumpartzi s'invitu a sa riunione", + "shareLink": "Cumpartzi su ligòngiu de sa riunione pro invitare àtera gente", + "shareStream": "Cumpartzi su ligòngiu a sa trasmissione in direta", + "sipAddresses": "indiritzos sip", + "telephone": "Telèfonu: {{number}}", + "title": "Invita gente a custa riunione", + "yahooEmail": "Posta de Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Àudio de sa màchina", + "headphones": "Auriculares", + "none": "Nissunu dispositivu de àudio a disponimentu", + "phone": "Telèfonu", + "speaker": "Altoparlante" + }, + "audioOnly": { + "audioOnly": "Àmpiu de banda bàsciu" + }, + "breakoutRooms": { + "actions": { + "add": "Agiunghe aposentu separadu", + "autoAssign": "Assigna in automàticu in aposentos separados", + "close": "Serra", + "join": "Aderi", + "leaveBreakoutRoom": "Lassa s'aposentu separadu", + "more": "Àteru", + "remove": "Boga", + "sendToBreakoutRoom": "Imbia su partetzipante a:" + }, + "defaultName": "Aposentu separadu #{{index}}", + "mainRoom": "Aposentu printzipale", + "notifications": { + "joined": "Intrende a s'aposentu separadu\"{{name}}", + "joinedMainRoom": "Intrende a s'aposentu printzipale", + "joinedTitle": "Aposentos separados" + } + }, + "calendarSync": { + "addMeetingURL": "Agiunghe unu ligòngiu a s'addòbiu", + "confirmAddLink": "Boles agiùnghere unu ligòngiu de Jitsi a custu addòbiu?", + "error": { + "appConfiguration": "S'integratzione de su calendàriu no est cunfigurada bene.", + "generic": "Faddina. Controlla sa cunfiguratzione de calendàriu o proa de atualizare su calendàriu.", + "notSignedIn": "Faddina in s'autenticatzione pro visualizare eventos de calendàriu. Controlla sa cunfiguratzione de calendàriu e proa de ti torrare a autenticare." + }, + "join": "Aderi", + "joinTooltip": "Aderi a sa riunione", + "nextMeeting": "riunione imbeniente", + "noEvents": "Nissunu eventu programmadu in futuru.", + "ongoingMeeting": "riunione in cursu", + "permissionButton": "Aberi sa cunfiguratzione", + "permissionMessage": "Su permissu de su calendàriu est rechèdidu pro bìdere is riuniones tuss in s'aplicatzione.", + "refresh": "Atualiza su calendàriu", + "today": "Oe" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Sèbera dispositivu de sonu" + }, + "labels": { + "buttonLabel": "Modalidade de màchina", + "title": "Modalidade de màchina", + "videoStopped": "Su vìdeu tuo est istadu istudadu" + } + }, + "chat": { + "enter": "Intra a s'aposentu", + "error": "Faddina: su messàgiu tuo no est istadu imbiadu. Resone: {{faddina}}", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Messàgiu de tzarrada de aposentu de abetu a {{recipient}}", + "message": "Messàgiu", + "messageAccessibleTitle": "{{user}} narat:", + "messageAccessibleTitleMe": "deo naro:", + "messageTo": "Messàgiu privadu a {{recipient}}", + "messagebox": "Iscrie unu messàgiu", + "newMessages": "Messàgios noos", + "nickname": { + "popover": "Sèbera unu nòmine", + "title": "Inserta su nòmine pro impreare sa tzarrada", + "titleWithPolls": "Inserta su nòmine pro impreare sa tzarrada e is sondàgios" + }, + "noMessagesMessage": "Nissunu messàgiu ancora in sa riunione. Cumintza una tzarrada inoghe!", + "privateNotice": "Messàgiu privadu a {{recipient}}", + "sendButton": "Imbia", + "smileysPanel": "Pannellu de emoji", + "tabs": { + "chat": "Tzarrada", + "polls": "Sondàgios" + }, + "title": "Tzarrada", + "titleWithPolls": "Tzarradas e sondàgios", + "you": "tue" + }, + "chromeExtensionBanner": { + "buttonText": "Installa s'estensione de Google", + "buttonTextEdge": "Installa s'estensione de Edge", + "close": "Serra", + "dontShowAgain": "Non ddu torres a ammustrare", + "installExtensionText": "Installa s'estensione de integratzione cun Google Calendar e Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Connetende a sa riunione…" + }, + "connection": { + "ATTACHED": "Allegados", + "AUTHENTICATING": "Autenticatzione in cursu", + "AUTHFAIL": "Faddina in s'autenticatzione", + "CONNECTED": "Connessione istabilida", + "CONNECTING": "Connetende", + "CONNFAIL": "Faddina in sa connessione", + "DISCONNECTED": "Disconnètidu", + "DISCONNECTING": "Disconnetende", + "ERROR": "Faddina", + "FETCH_SESSION_ID": "Otenende id de sessione…", + "GET_SESSION_ID_ERROR": "Faddina in su ritzevimentu de s'ide de sessione: {{code}}", + "GOT_SESSION_ID": "Otenende id de sessione… Fatu", + "LOW_BANDWIDTH": "Vìdeu disativadu pro {{displayName}} pro istraviare àmpiu de banda" + }, + "connectionindicator": { + "address": "Indiritzu:", + "audio_ssrc": "Àudio SSRC:", + "bandwidth": "Àmpiu de banda istimadu:", + "bitrate": "Velotzidade de bits:", + "bridgeCount": "Nùmeru de servidores: ", + "codecs": "Codificadores (A/V) ", + "connectedTo": "Connessione cun:", + "framerate": "Velotzidade de fotogrammas:", + "less": "Prus pagu informatziones", + "localaddress": "Indiritzu locale:", + "localaddress_plural": "Indiritzos locales:", + "localport": "Portu locale:", + "localport_plural": "Portos locales:", + "maxEnabledResolution": "imbiu màssimu", + "more": "Àteras informatziones", + "packetloss": "Pèrdida de pachetes:", + "participant_id": "id de partetzipante:", + "quality": { + "good": "Bonu", + "inactive": "Inativa", + "lost": "Pèrdida", + "nonoptimal": "No òtima", + "poor": "Pòbera" + }, + "remoteaddress": "Indiritzu remotu:", + "remoteaddress_plural": "Indiritzos remotos:", + "remoteport": "Portu remotu:", + "remoteport_plural": "Portos remotos:", + "resolution": "Risolutzione:", + "savelogs": "Sarva registros", + "status": "Connessione:", + "transport": "Trasportu:", + "transport_plural": "Trasportos:", + "video_ssrc": "Vìdeu SSRC:" + }, + "dateUtils": { + "earlier": "Prus antigu", + "today": "Oe", + "yesterday": "Eris" + }, + "deepLinking": { + "appNotInstalled": "Tenes bisòngiu de s'aplicatzione mòbile {{app}} pro aderire a custa tzarrada dae su telèfonu.", + "description": "No est sutzèdidu nudda? Amus chircadu de aviare sa riunione tua in s'aplicatzione de iscrivania {{app}}. Torra a proare o avia·la dae s'aplicatzione web {{app}}.", + "descriptionWithoutWeb": "No est sutzèdidu nudda? Amus chircadu de aviare sa riunione tua in s'aplicatzione de iscrivania {{app}}.", + "downloadApp": "Iscàrriga s'aplicatzione", + "ifDoNotHaveApp": "Si non tenes ancora s'aplicatzione:", + "ifHaveApp": "Si tenes giai s'aplicatzione:", + "joinInApp": "Intra a custa riunione impreende s'aplicatzione", + "launchWebButton": "Avia in sa web", + "title": "Aviende sa reunione in {{app}}…", + "tryAgainButton": "Torra a proare in s'aplicatzione de iscrivania", + "unsupportedBrowser": "Paret chi ses impreende unu navigadore non cumpatìbile." + }, + "defaultLink": "p. es. {{url}}", + "defaultNickname": "es. Rosa Pink", + "deviceError": { + "cameraError": "Impossìbile atzèdere a sa càmera", + "cameraPermission": "Faddina in is permissos pro sa càmera", + "microphoneError": "Impossìbile atzèdere a su micròfonu", + "microphonePermission": "Faddina in is permissos pro su micròfonu" + }, + "deviceSelection": { + "noPermission": "No as cuntzèdidu permissos", + "previewUnavailable": "Sa pre-visualizatzione no est a disponimentu", + "selectADevice": "Sèbera unu dispositivu", + "testAudio": "Riprodue unu sonu de proa" + }, + "dialIn": { + "screenTitle": "Resumu de nùmeros" + }, + "dialOut": { + "statusMessage": "est immoe {{status}}" + }, + "dialog": { + "Back": "In segus", + "Cancel": "Annulla", + "IamHost": "So mere", + "Ok": "AB", + "Remove": "Boga", + "Share": "Cumpartzi", + "Submit": "Imbia", + "WaitForHostMsg": "Sa cunferèntzia no at cumintzadu. Si ses mere de custa cunferèntzia, autèntica·ti. Si nono, iseta chi arribet.", + "WaitingForHostTitle": "Isetende mere…", + "Yes": "Eja", + "accessibilityLabel": { + "liveStreaming": "Trasmissione in direta" + }, + "add": "Annanghe", + "addMeetingNote": "Agiunghe una nota in pitzus de custa riunione", + "addOptionalNote": "Agiunghe una nota (optzionale)", + "allow": "Permite", + "alreadySharedVideoMsg": "Un'àteru partetzipante est giai cumpartende unu vìdeu. Custa cunferèntzia permitit de cumpartzire isceti unu vìdeu in contemporànea.", + "alreadySharedVideoTitle": "Isceti unu vìdeu cumpartzidu in contemporànea.", + "applicationWindow": "Ventana de s'aplicatzione", + "authenticationRequired": "Autenticatzione netzessària", + "cameraConstraintFailedError": "La càmera no satisfà algun dels requeriments.", + "cameraNotFoundError": "Càmera no agatada.", + "cameraNotSendingData": "Impossìbile atzèdere a sa càmera tua. Controlla si un'àtera aplicatzione est impreende custu dispositivu, sèbera un'àteru dispositivu dae su menù de cunfiguratziones o torra a carrigare s'aplicatzione.", + "cameraNotSendingDataTitle": "Non si podet atzèdere a sa càmera", + "cameraPermissionDeniedError": "No as donadu permissos pro impreare sa càmera. Podes intrare in sa cunferèntzia su pròpiu, però s'àtera gente non ti at a bìdere. Imprea su butone de sa càmera in sa barra de indiritzos pro acontzare custu problema.", + "cameraTimeoutError": "Impossìbile aviare su vìdeu. Lìmite de tempus lòmpidu.", + "cameraUnknownError": "Non si podet impreare sa càmera (resone disconnota).", + "cameraUnsupportedResolutionError": "Sa càmera no est cumpatìbile cun sa risolutzione de vìdeu rechèdida.", + "close": "Serra", + "conferenceDisconnectMsg": "Controlla sa cunfiguratzione de rete. Torrende a connètere in {seconds} segundos…", + "conferenceDisconnectTitle": "Mutida disconnètida.", + "conferenceReloadMsg": "Semus chirchende de acontzare custu problema. Torrende a connètere in {seconds} segundos…", + "conferenceReloadTitle": "B'est istada una faddina.", + "confirm": "Cunfirma", + "confirmNo": "Nono", + "confirmYes": "Eja", + "connectError": "Ohia B'àt àpidu una faddina e non podimus connètere cun sa cunferèntzia.", + "connectErrorWithMsg": "Ohia B'àt àpidu una faddina e non podimus connètere cun sa cunferèntzia: {{msg}}", + "connecting": "Connetende", + "contactSupport": "Cuntatu s'agiudu", + "copied": "Copiadu", + "copy": "Còpia", + "dismiss": "Iscarta", + "displayNameRequired": "Salude! Comente ti tzèrrias?", + "done": "Fatu", + "e2eeDescription": "Sa critografia a nodu terminale est isperimentale pro immoe. Tene contu chi s'ativatzione de sa critografia a nodu terminale at a disativare is servìtzios frunidos dae su costadu de su serbidore, comente: partetzipatzione telefònica. Tene contu puru chi sa riunione at a funtzionare isceti pro chie intret dae navigadores cumpatìbiles cun trasmissiones incorporàbiles.", + "e2eeDisabledDueToMaxModeDescription": "Impossìbile ativare sa critografia a nodu terminale a càusa de s'artu nùmeru de partetzipantes in sa cunferèntzia.", + "e2eeLabel": "Ativa sa critografia a nodu terminale", + "e2eeWarning": "Avisu: podet dare chi non totu is partetzipantes de custa riunione tèngiant dispositivos cumpatìbiles cun sa critografia a nodu terminale. Si dd'ativas no t'ant a pòdere bìdere nen intèndere.", + "e2eeWillDisableDueToMaxModeDescription": "Avisu: sa critografia a nodu terminale at a èssere disativada in automàticu si prus partetzipantes intrant a sa cunferèntzia.", + "embedMeeting": "Incòrpora sa riunione", + "enterDisplayName": "Inserta su nòmine tuo", + "error": "Faddina", + "gracefulShutdown": "Su servìtziu nostru est in mantenimentu. Torra a proare a pustis.", + "grantModeratorDialog": "Seguru chi boles donare permissos de moderatzione a {{participantName}}?", + "grantModeratorTitle": "Dona permissos de moderatzione", + "hide": "Cua", + "hideShareAudioHelper": "No ammustres prus custu diàlogu", + "incorrectPassword": "Su nòmine o sa crae no sunt curretos", + "incorrectRoomLockPassword": "Sa crae no est curreta", + "internalError": "Ohia B'est istada una faddina: {{error}}", + "internalErrorTitle": "Faddina interna", + "kickMessage": "Podes cuntatare {{participantDisplayName}} pro àteras informatziones.", + "kickParticipantButton": "Boga", + "kickParticipantDialog": "Seguru chi boles bogare custa persone?", + "kickParticipantTitle": "Cheres bogare custa persone?", + "kickTitle": "Ohi! {{participantDisplayName}} t'at bogadu de sa riunione", + "linkMeeting": "Acàpia sa riunione", + "linkMeetingTitle": "Acàpia sa riunione a Salesforce", + "liveStreaming": "Trasmissione in direta", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Impossìbile in su mentras chi sa registratzione est ativa", + "localUserControls": "Controllos de utente locale", + "lockMessage": "Impossìbile blocare sa cunferèntzia.", + "lockRoom": "Agiunghe una $t(lockRoomPassword) a sa riunion", + "lockTitle": "Faddina in su blocu", + "login": "Intra", + "logoutQuestion": "Seguru chi boles essire e lassare sa cunferèntzia?", + "logoutTitle": "Essi", + "maxUsersLimitReached": "Lìmite de partetzipantes cròmpidu. Sa cunferèntzia est prena. Cuntata su mere de sa riunione o torra a proare.", + "maxUsersLimitReachedTitle": "Lìmite de partetzipantes cròmpidu", + "micConstraintFailedError": "Su micròfonu no at soddisfatu is rechestas.", + "micNotFoundError": "Micròfonu no agatadu.", + "micNotSendingData": "Bae a sa cunfiguratzione de s'elaboradore tuo pro ativare su micròfonu tuo e acontzare su livellu.", + "micNotSendingDataTitle": "Su micròfonu tuo est in silèntziu pro more de is cunfiguratziones de su sistema tuo", + "micPermissionDeniedError": "No as donadu permissos pro impreare su micròfonu. Podes intrare in sa cunferèntzia su pròpiu, però s'àtera gente non ti at a intèndere. Imprea su butone de sa càmera in sa barra de indiritzos pro acontzare custu problema.", + "micTimeoutError": "Impossìbile aviare s'àudio. Lìmite de tempus lòmpidu.", + "micUnknownError": "Non si podet impreare su micròfonu (resone disconnota).", + "moderationAudioLabel": "Permite chi is partetzipantes ativent su micròfonu", + "moderationVideoLabel": "Permite chi is partetzipantes ativent su vìdeu", + "muteEveryoneDialog": "Is partetzipantes podent ativare su micròfonu semper.", + "muteEveryoneDialogModerationOn": "Is partetzipantes podent preguntare de chistionare semper.", + "muteEveryoneElseDialog": "Una borta chi as postu calicunu a sa muda, no as a pòdere torrare a aviare s'àudio suo, però isse ddu at a pòdere fàghere in cale si siat momentu.", + "muteEveryoneElseTitle": "Boles pònnere totus a sa muda francu {{whom}}?", + "muteEveryoneElsesVideoDialog": "Cando sa càmera at a èssere disativada, no dd'as a pòdere ativare torra, isceti issos ant a pòdere.", + "muteEveryoneElsesVideoTitle": "Boles firmare su vìdeu de totu is partetzipantes francu de {{whom}}?", + "muteEveryoneSelf": "tue", + "muteEveryoneStartMuted": "Dae immoe, is tzarradas cumintzant cun is utentes a sa muda", + "muteEveryoneTitle": "Boles pònnere totus a sa muda?", + "muteEveryonesVideoDialog": "Is partetzipantes podent ativare su vìdeu semper.", + "muteEveryonesVideoDialogModerationOn": "Is partetzipantes podent preguntare de ativare su vìdeu semper.", + "muteEveryonesVideoDialogOk": "Disabìlita", + "muteEveryonesVideoTitle": "Boles firmare su vìdeu de totu is partetzipantes?", + "muteParticipantBody": "No as a pòdere torrare a ativare s'àudio issoro, però is utentes ddu ant a pòdere ativare in cale si siat momentu.", + "muteParticipantButton": "A sa muda", + "muteParticipantsVideoBody": "No dd'as a pòdere ativare torra, isceti issos ant a pòdere.", + "muteParticipantsVideoBodyModerationOn": "No as a pòdere ativare sa càmera torra, nemmancu issos.", + "muteParticipantsVideoButton": "Firma su vìdeu", + "muteParticipantsVideoDialog": "Seguru chi boles istudare sa càmera de custu partetzipante? No dd'as a pòdere ativare torra, isceti issos ant a pòdere.", + "muteParticipantsVideoDialogModerationOn": "Seguru chi boles istudare sa càmera de custu partetzipante? No as a pòdere ativare sa càmera torra, nemmancu issos.", + "muteParticipantsVideoTitle": "Boles istudare sa càmera de custu partetzipante?", + "noDropboxToken": "Nissunu identificadore de Dropbox vàlidu", + "password": "Crae", + "passwordLabel": "Riunione blocada dae unu partetzipante. Inserta sa $t(lockRoomPassword) pro intrare.", + "passwordNotSupported": "No est possìbile istabilire una $t(lockRoomPassword).", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) non suportadu", + "passwordRequired": "$t(lockRoomPasswordUppercase) rechèdida", + "permissionCameraRequiredError": "Pro partetzipare in cunferèntzias cun vìdeu, serbint permissos pro sa càmera. Dona permissos in is cunfiguratziones", + "permissionErrorTitle": "Permissu rechèdidu", + "permissionMicRequiredError": "Pro partetzipare in cunferèntzias cun àudio, serbint permissos pro su micròfonu. Dona permissos in is cunfiguratziones", + "popupError": "Su navigadore tuo est blochende is ventanas emergentes de custu situ. Ativa is ventanas emergentes dae sa cunfiguratzione de seguresa de su navigadore e torra a proare.", + "popupErrorTitle": "Finestres emergents blocades", + "readMore": "àteru", + "recentlyUsedObjects": "Ogetos impreados de reghente", + "recording": "Registrende", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Impossìbile in su mentras chi sa trasmissione in direta est ativa", + "rejoinNow": "Torra a intrare", + "remoteControlAllowedMessage": "{{user}} at atzetadu sa rechesta tua de controllu remotu.", + "remoteControlDeniedMessage": "{{user}} at refudadu sa rechesta tua de controllu remotu.", + "remoteControlErrorMessage": "Faddina in sa rechesta de permissos pro su controllu remotu de {{user}}.", + "remoteControlRequestMessage": "Permitis chi {{user}} controllet in remotu s'elaboradore tuo?", + "remoteControlShareScreenWarning": "Si incarcas \"Permite\" as a cumpartzire s'ischermu tuo.", + "remoteControlStopMessage": "Sessione de controllu remotu acabada.", + "remoteControlTitle": "Controllu remotu de elaboradore", + "remoteUserControls": "Controllu remotu de s'utente {{username}", + "removePassword": "Boga $t(lockRoomPassword)", + "removeSharedVideoMsg": "Seguru chi boles bogare su vìdeu chi as cumpartzidu?", + "removeSharedVideoTitle": "Boga vìdeu cumpartzidu", + "reservationError": "Faddina de riserva de sistema", + "reservationErrorMsg": "Còdighe de faddina: {{code}}, messàgiu: {{msg}}", + "retry": "Torra a proare", + "screenSharingAudio": "Cumpartzi s'àudio", + "screenSharingFailed": "Ohia Est istadu impossìbile a aviare sa cumpartzidura de ischermu.", + "screenSharingFailedTitle": "Faddina in sa cumpartzidura de ischermu.", + "screenSharingPermissionDeniedError": "Ohia Faddina in is permissos de cumpartzidura de ischermu. Torra a carrigare e torra a proare.", + "searchInSalesforce": "Chirca in Salesforce", + "searchResults": "Resurtados de chirca ({{count}})", + "searchResultsDetailsError": "Faddina in su recùperu de is datos de su propietàriu.", + "searchResultsError": "Faddina in su recùperu de datos.", + "searchResultsNotFound": "Nissunu resurtadu de chirca.", + "searchResultsTryAgain": "Proa impreende paràulas crae alternativas.", + "sendPrivateMessage": "As retzidu unu messàgiu privadu de reghente. Boles rispòndere a custu messàgiu in privadu, o boles imbiare su messàgiu a su grupu?", + "sendPrivateMessageCancel": "Imbia a su grupu", + "sendPrivateMessageOk": "Imbia in privadu", + "sendPrivateMessageTitle": "Boles imbiare custu messàgiu in privadu?", + "serviceUnavailable": "Su servìtziu no est a disponimentu", + "sessTerminated": "Mutida acabada", + "sessionRestarted": "Mutida ripristinada a càusa de unu problema de connessione.", + "shareAudio": "Sighi", + "shareAudioTitle": "Comente si cumpartzit s'àudio", + "shareAudioWarningD1": "depes firmare sa cumpartzidura de ischermu prima de cumpartzire d'àudio.", + "shareAudioWarningD2": "depes torrare a aviare sa cumpartzidura de ischermu e ativare s'optzione \"cumpartzi s'àudio\".", + "shareAudioWarningH1": "Si boles cumpartzire s'àudio isceti:", + "shareAudioWarningTitle": "Depes firmare sa cumpartzidura de ischermu prima de cumpartzire d'àudio.", + "shareMediaWarningGenericH2": "Si boles cumpartzire s'ischermu e s'àudio.", + "shareScreenWarningD1": "depes firmare sa cumpartzidura de àudio prima de cumpartzire s'ischermu.", + "shareScreenWarningD2": "depes firmare sa cumpartzidura de àudio, aviare sa cumpartzidura de ischermu e ativare s'optzione \"cumpartzi s'àudio\".", + "shareScreenWarningH1": "Si boles cumpartzire s'ischermu isceti:", + "shareScreenWarningTitle": "Depes firmare sa cumpartzidura de àudio prima de cumpartzire s'ischermu", + "shareVideoLinkError": "Fruni unu ligòngiu de vìdeu curretu.", + "shareVideoTitle": "Cumpartzi vìdeu", + "shareYourScreen": "Cumpartzi s'ischermu", + "shareYourScreenDisabled": "Cumpartzidura de ischermu disativada.", + "sharedVideoDialogError": "Faddina: URL non vàlidu", + "sharedVideoLinkPlaceholder": "ligòngiu de YouTube o ligòngiu de vìdeu diretu", + "show": "Ammustra", + "start": "Avia ", + "startLiveStreaming": "Avia sa trasmissione in direta", + "startRecording": "Avia sa registratzione", + "startRemoteControlErrorMessage": "Faddina aviende sa sessione de controllu remotu.", + "stopLiveStreaming": "Firma sa trasmissione in direta", + "stopRecording": "Firma sa registratzione", + "stopRecordingWarning": "Seguru chi boles firmare sa registratzione?", + "stopStreamingWarning": "Seguru chi boles firmare sa trasmissione in direta?", + "streamKey": "Crae de sa trasmissione in direta", + "thankYou": "Gràtzias de àere impreadu {{appName}}.", + "token": "còdighe", + "tokenAuthFailed": "No tenes permissu pro intrare in custa mutida.", + "tokenAuthFailedTitle": "Faddina in s'autenticatzione", + "transcribing": "Trascritzione", + "unlockRoom": "Boga riunione $t(lockRoomPassword)", + "user": "Impreadore", + "userIdentifier": "Identificadore de utente", + "userPassword": "Crae de utente", + "videoLink": "Ligòngiu de vìdeu", + "viewUpgradeOptions": "Ammustra is optziones premium", + "viewUpgradeOptionsContent": "Pro otènnere atzessu illimitadu a is funtzionalidades premium comente sa registratzione, sa trascritzione, trasmissione RTMP e àteru, depes passare a unu contu prus artu.", + "viewUpgradeOptionsTitle": "As iscobertu una funtzionalidade premium.", + "yourEntireScreen": "S'ischermu intreu" + }, + "documentSharing": { + "title": "Documentu cumpartzidu" + }, + "e2ee": { + "labelToolTip": "Sa comunicatzione àudio e vìdeu de custa mutida impreat critografia a nodu terminale" + }, + "embedMeeting": { + "title": "Incòrpora custa riunione" + }, + "feedback": { + "average": "Mèdiu", + "bad": "Malu", + "detailsLabel": "Nara·si de prus.", + "good": "Bonu", + "rateExperience": "Vota s'esperièntzia tua in custa riunione", + "star": "Pone un'isteddu", + "veryBad": "Mala meda", + "veryGood": "Bona meda" + }, + "giphy": { + "noResults": "Nissunu resurtadu :(", + "search": "Chirca GIPHY" + }, + "helpView": { + "title": "Tzentru de agiudu" + }, + "incomingCall": { + "answer": "Risponde", + "audioCallTitle": "Mutida in intrada", + "decline": "Iscarta", + "productLabel": "dae Jitsi Meet", + "videoCallTitle": "Mutida de vìdeu in intrada" + }, + "info": { + "accessibilityLabel": "Ammustra informatziones", + "addPassword": "Agiunghe $t(lockRoomPassword)", + "cancelPassword": "Annulla $t(lockRoomPassword)", + "conferenceURL": "Ligòngiu:", + "copyNumber": "Còpia su nùmeru", + "country": "Paisu", + "dialANumber": "Pro intrare in sa riunione, cumpone unu de custos nùmeros e inserta su PIN.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Sa partetzipatzione telefònica ebbia no est suportada a oe.", + "dialInNumber": "Cumpone:", + "dialInSummaryError": "Faddina in su ritzevimentu de is nùmeros de telèfonu. Torra a proare a pustis.", + "dialInTollFree": "Sena pedàgios", + "genericError": "Faddina.", + "inviteLiveStream": "Pro bìdere sa trasmissione in direta de custa riunione, incarca custu ligòngiu: {{url}}", + "invitePhone": "Si boles fàghere una connessione telefònica, toca custu: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Ses chirchende unu nùmeru diferente?\nControlla is nùmeros de telèfonu de sa riunione: {{url}}\n\nSi ses giai mutende tràmite unu telèfonu de sa riunione, intra sena ti connètere a s'àudio: {{silentUrl}}", + "inviteSipEndpoint": "Pro intrare impreende s'indiritzu SIP, inserta custu: {{sipUri}}", + "inviteTextiOSInviteUrl": "Incarca su ligòngiu imbeniente pro intrare: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Si ses intrende cun nùmeru telefònicu tràmite unu telèfonu fissu, imprea custu ligòngiu sena de ti connètere a s'àudio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} t'at invitadu a sa riunione.", + "inviteTextiOSPhone": "Pro intrare tràmite su telèfonu, imprea custu nùmeru: {{number}},,{{conferenceID}}#. Si ses chirchende unu nùmeru diferente, custa est sa lista cumpleta: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Tenes un'invitu pro intrare in una riunione.", + "inviteURLFirstPartPersonal": "{{name}} t'at invitadu a sa riunione.\n", + "inviteURLSecondPart": "\nIntra in sa riunione:\n{{url}}\n", + "label": "Informatzione pro sa mutida", + "liveStreamURL": "Trasmissione in direta:", + "moreNumbers": "Àteros nùmeros", + "noNumbers": "Nissunu nùmeru de mutire.", + "noPassword": "Nissunu", + "noRoom": "No as ispetzificadu nissuna sala de mutire.", + "numbers": "Nùmeros de mutire.", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Lìmite de su pianu barigadu.", + "sip": "Indiritzu SIP", + "title": "Cumpartzi", + "tooltip": "Imbia su ligòngiu e is nùmeros de telèfonu de custa riunione", + "upgradeOptions": "Controlla is optziones premium in" + }, + "inlineDialogFailure": { + "msg": "Nci amus postu unu pagu.", + "retry": "Torra a proare", + "support": "Agiudu", + "supportMsg": "Si custu sighit a sutzèdere, nara·si·ddu a " + }, + "inviteDialog": { + "alertText": "Faddina in s'invitu de àtera gente.", + "header": "Invita", + "searchCallOnlyPlaceholder": "Inserta unu nùmeru de telèfonu", + "searchPeopleOnlyPlaceholder": "Chirca gente", + "searchPlaceholder": "Partetzipante o nùmeru de telèfonu", + "send": "Imbia" + }, + "jitsiHome": "{{logo}} Logo, ligòngios a sa pàgina printzipale", + "keyboardShortcuts": { + "focusLocal": "Ammustra su vìdeu tuo", + "focusRemote": "Ammustra su vìdeu de s'àtera persone", + "fullScreen": "Visualiza in mannària prena o essi", + "giphyMenu": "Cuncàmbia su menù GIPHY", + "keyboardShortcuts": "Incurtzaduras de tecladu", + "localRecording": "Ammustra o cua controllos de registratzione locale", + "mute": "Pone su micròfonu a sa muda o torra·ddu a ativare", + "pushToTalk": "Incarca pro chistionare", + "raiseHand": "Àrtzia o abbassa sa manu", + "showSpeakerStats": "Ammustra istatìsticas de partetzipantes", + "toggleChat": "Aberi o serra sa tzarrada", + "toggleFilmstrip": "Ammustra o cua miniaturas de vìdeu", + "toggleParticipantsPane": "Ammustra o cua su pannellu de partetzipantes", + "toggleScreensharing": "Cuncàmbia intre càmera e cumpartzidura de ischermu", + "toggleShortcuts": "Ammustra o cua incurtzaduras de tecladu", + "videoMute": "Avia o firma sa càmera tua" + }, + "largeVideo": { + "screenIsShared": "Ses cumpartzende s'ischermu tuo", + "showMeWhatImSharing": "Ammustra·mi su chi so cumpartzende" + }, + "liveStreaming": { + "busy": "Semus chirchende de liberare resursas de trasmissione. Torra a proare dae immoe a carchi minutu.", + "busyTitle": "Is trasmitentes sunt ocupados immoe.", + "changeSignIn": "Càmbia contos.", + "choose": "Sèbera una trasmissione in direta.", + "chooseCTA": "Sèbera un'optzione pro sa trasmissione. Autenticatzione che a {{email}}.", + "enterStreamKey": "Inserta inoghe sa crae tua pro sa trasmissione in direta de YouTube.", + "error": "Faddina in sa trasmissione in direta. Torra a proare.", + "errorAPI": "Faddina in s'atzessu a is trasmissiones tuas de Youtube. Torra a proare.", + "errorLiveStreamNotEnabled": "Sa trasmissione in direta no est ativa in {{email}}. Ativa sa trasmissione in direta o autèntica·ti in unu contu chi tèngiat ativa sa trasmissione in direta.", + "expandedOff": "Trasmissione in direta firmada", + "expandedOn": "Custa riunione est trasmìtida in direta in YouTube.", + "expandedPending": "Trasmissione in direta aviada…", + "failedToStart": "Faddina in s'aviu de sa trasmissione in direta", + "getStreamKeyManually": "No amus pòdidu retzire nissuna trasmissione in direta. Chirca de otènnere sa crae de YouTube tua pro is trasmissiones in idreta.", + "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", + "onBy": "{{name}} at aviadu sa trasmissione in direta", + "pending": "Aviende sa trasmissione in direta…", + "serviceName": "Servìtziu de trasmissione in direta", + "sessionAlreadyActive": "S'est giai registrende o trasmitende in direta sa sessione.", + "signIn": "Autèntica·ti cun Google", + "signInCTA": "Autèntica·ti o inserta sa crae tua pro sa trasmissione in direta de YouTube.", + "signOut": "Essi", + "signedInAs": "Autenticatzione cun:", + "start": "Avia sa trasmissione in direta", + "streamIdHelp": "It'est custu?", + "title": "Trasmissione in direta", + "unavailableTitle": "Sa trasmissione in direta no est a disponimentu", + "youtubeTerms": "Cunditziones de servìtziu de YouTube" + }, + "lobby": { + "allow": "Permite", + "backToKnockModeButton": "Pedi de intrare", + "chat": "Tzarrada", + "dialogTitle": "Modalidade de aposentu de abetu", + "disableDialogContent": "Sa modalidade de aposentu de abetu est ativa. Custa funtzionalidade garantit chi nissunu partetzipante non invitadu at a intrare a sa riunione. Dda boles disabilitare?", + "disableDialogSubmit": "Disabìlita", + "emailField": "Pone s'indiritzu tuo de posta eletrònica", + "enableDialogPasswordField": "Crea una crae (optzionale)", + "enableDialogSubmit": "Abìlita", + "enableDialogText": "Sa modalidade de aposentu de abetu ti permitit de amparare sa riunione tua pro mèdiu de s'atzetatzione formale prèvia de is partetzipantes dae parte de sa moderatzione.", + "enterPasswordButton": "Inserta sa crae de sa riunione", + "enterPasswordTitle": "Inserta sa crae pro intrare a sa riunione", + "errorMissingPassword": "Inserta sa crae de sa riunione", + "invalidPassword": "Crae non vàlida", + "joinRejectedMessage": "Rechesta refudada dae sa moderatzione.", + "joinRejectedTitle": "Rechesta refudada.", + "joinTitle": "Intra a sa riunione", + "joinWithPasswordMessage": "Proende a intrare cun sa crae, abeta…", + "joiningMessage": "As a intrare a sa riunione comente sa rechesta tua bèngiat atzetada", + "joiningTitle": "Pedende de intrare…", + "joiningWithPasswordTitle": "Intrende cun crae…", + "knockButton": "Pedi de intrare", + "knockTitle": "Una persone bolet intrare a sa riunione", + "knockingParticipantList": "Lista de partetzipantes in ispera", + "lobbyChatStartedNotification": "{{moderator}} at aviadu una tzarrada de aposentu de abetu cun {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} at aviadu una tzarrada de aposentu de abetu cun tue.", + "nameField": "Inserta su nòmin tuo", + "notificationLobbyAccessDenied": "{{originParticipantName}} at refudadu s'intrada de {{targetParticipantName}}", + "notificationLobbyAccessGranted": "{{originParticipantName}} at permìtidu s'intrada de {{targetParticipantName}}", + "notificationLobbyDisabled": "{{originParticipantName} at disativadu s'aposentu de abetu", + "notificationLobbyEnabled": "{{originParticipantName} at ativadu s'aposentu de abetu", + "notificationTitle": "Aposentu de abetu", + "passwordField": "Inserta sa crae de sa riunione", + "passwordJoinButton": "Aderi", + "title": "Aposentu de abetu", + "toggleLabel": "Ativa s'aposentu de abetu" + }, + "localRecording": { + "clientState": { + "off": "Disativada", + "on": "Ativa", + "unknown": "Disconnota" + }, + "dialogTitle": "Controllos de registratzione locale", + "duration": "Durada", + "durationNA": "Non a disponimentu", + "encoding": "Codìfica", + "label": "Registr. locale", + "labelToolTip": "Sa registratzione in locale est funtzionende", + "localRecording": "Registratzione in locale", + "me": "Deo", + "messages": { + "engaged": "Sa registratzione in locale est funtzionende", + "finished": "Acabada sa registratzione de sessione {{token}}. Imbia s'archìviu registradu a sa persone chi mòderat.", + "finishedModerator": "Acabada sa registratzione de sessione {{token}}. Registratzione locale sarvada. Dimanda a su restu de su grupu de imbiare is registratziones.", + "notModerator": "No ses moderadore. Non podes aviare o firmare registratziones in locale." + }, + "moderator": "Moderadore", + "no": "Nono", + "participant": "Partetzipante", + "participantStats": "Istatìsticas de partetzipantes", + "selectTabTitle": "🎥 Seletziona custa ischeda pro sa registratzione", + "sessionToken": "Còdighe de sessione", + "start": "Avia sa registratzione", + "stop": "Firma sa registratzione", + "yes": "Eja" + }, + "lockRoomPassword": "crae", + "lockRoomPasswordUppercase": "Crae", + "lonelyMeetingExperience": { + "button": "Invita gente", + "youAreAlone": "Ses a sa sola in custa riunione" + }, + "me": "deo", + "notify": { + "OldElectronAPPTitle": "Vulnerabilidade de seguresa.", + "allowAction": "Permite", + "allowedUnmute": "Podes ativare su micròfonu tuo, aviare sa càmera o cumpartzire s'ischermu.", + "audioUnmuteBlockedDescription": "S'ativatzione de su micròfonu est istada blocada a càusa de limitatziones de su sistema.", + "audioUnmuteBlockedTitle": "Ativatzione de su micròfonu blocada.", + "chatMessages": "Messàgios de sa tzarrada", + "connectedOneMember": "{{name}} at aderidu a sa riunione", + "connectedThreePlusMembers": "{{name}} e meda àtera gente at aderidu a sa riunione", + "connectedTwoMembers": "{{first}} e {{second}} ant aderidu a sa riunione", + "dataChannelClosed": "Calidade de vìdeu bàscia", + "dataChannelClosedDescription": "Su canale ponte est istadu disconnètidu e pro custu sa calidade de vìdeu est limitada a su valore prus bàsciu.", + "disconnected": "disconnètidu", + "displayNotifications": "Ammustra is notìficas pro", + "focus": "Focus de sa cunferèntzia", + "focusFail": "{{component}} no est a disponimentu - torra a proare in {{ms}} seg", + "gifsMenu": "GIPHY", + "groupTitle": "Notìficas", + "hostAskedUnmute": "Sa moderatzione bolet chi chistiones", + "invitedOneMember": "Invitu imbiadu a {{name}}", + "invitedThreePlusMembers": "Invitu imbiadu a {{name}} e àteras {{count}} persones", + "invitedTwoMembers": "Invitu imbiadu a {{first}} e {{second}}", + "kickParticipant": "{{kicker}} at bogadu a {{kicked}}", + "leftOneMember": "{{name}} at lassadu sa riunione", + "leftThreePlusMembers": "{{name}} e meda àtera gente ant lassadu sa riunione", + "leftTwoMembers": "{{first}} e {{second}} ant lassadu sa riunione", + "linkToSalesforce": "Ligòngiu a Salesforce", + "linkToSalesforceDescription": "Podes acapiare su resumu de sa riunione a un'ogetu de Salesforce.", + "linkToSalesforceError": "Faddina in s'acàpiu de sa riunione a Salesforce", + "linkToSalesforceKey": "Acàpia custa riunione", + "linkToSalesforceProgress": "Acapiende sa riunione a Salesforce…", + "linkToSalesforceSuccess": "Riunione acapiada a Salesforce", + "localRecordingStarted": "{{name}} at aviadu sa registratzione in locale.", + "localRecordingStopped": "{{name}} at firmadu sa registratzione in locale.", + "me": "Deo", + "moderationInEffectCSDescription": "Àrtzia sa manu si boles cumpartzire s'ischermu.", + "moderationInEffectCSTitle": "Sa cumpartzidura de ischermu est blocada dae sa moderatzione", + "moderationInEffectDescription": "Àrtzia sa manu si boles chistionare.", + "moderationInEffectTitle": "Sa moderatzione at postu su micròfonu tuo a sa muda", + "moderationInEffectVideoDescription": "Àrtzia sa manu si boles aviare sa càmera tua.", + "moderationInEffectVideoTitle": "Sa moderatzione at blocadu sa càmera tua.", + "moderationRequestFromModerator": "Su mere t'at pedidu de ativare su micròfonu", + "moderationRequestFromParticipant": "Bolet chistionare", + "moderationStartedTitle": "Moderatzione incumintzada", + "moderationStoppedTitle": "Moderatzione firmada", + "moderationToggleDescription": "dae {{participantDisplayName}}", + "moderator": "Immoe tenes permissu de moderatzione", + "muted": "As cumintzadu una tzarrada a sa muda.", + "mutedRemotelyDescription": "Podes torrare a aviare s'àudio cando depas chistionare. Torra a sa muda cando as acabadu pro evitare remore in sa riunione.", + "mutedRemotelyTitle": "{{participantDisplayName}} t'at postu a sa muda", + "mutedTitle": "Ses a sa muda.", + "newDeviceAction": "Imprea", + "newDeviceAudioTitle": "Dispositivu de àudio nou rilevadu", + "newDeviceCameraTitle": "Càmera noa rilevada", + "noiseSuppressionDesktopAudioDescription": "Impossìbile ativare sa limpiadura de abbolotu in su mentras chi ses cumpartzende s'àudio de iscrivania. Disativa·dda e torra a proare.", + "noiseSuppressionFailedTitle": "Faddina in s'ativatzione de sa limpiadura de abbolotu", + "noiseSuppressionNoTrackDescription": "Ativa prima su telèfonu tuo.", + "noiseSuppressionStereoDescription": "Sa limpiadura de abbolotu de àudio stereo no est suportada.", + "oldElectronClientDescription1": "Paret chi ses impreende una versione betza de su cliente de Jitsi Meet, chi tenet vulnerabilidades de seguresa connotas. Assegura·ti chi atualizas a ", + "oldElectronClientDescription2": "s'ùrtima versione", + "oldElectronClientDescription3": " immoe.", + "participantWantsToJoin": "Bolet intrare a sa riunione", + "participantsWantToJoin": "Bolent intrare a sa riunione", + "passwordRemovedRemotely": "Un'utente at bogadu $t(lockRoomPasswordUppercase)", + "passwordSetRemotely": "Un'utente at cunfiguradu $t(lockRoomPasswordUppercase)", + "raiseHandAction": "Àrtzia sa manu", + "raisedHand": "Bolet chistionare.", + "raisedHands": "{{participantName}} e {{raisedHands}} àteras persones", + "reactionSounds": "Disativa sonos", + "reactionSoundsForAll": "Disativa sonos pro totus", + "screenShareNoAudio": "Sa casella de cumpartzidura de àudio non fiat ativa in s'ischermu de seletzione de ventana.", + "screenShareNoAudioTitle": "Impossìbile cumpartzire s'àudio de su sistema.", + "selfViewTitle": "Podes semper ammustrare s'àuto-visualizatzione dae sa cunfiguratzione", + "somebody": "Calicunu", + "startSilentDescription": "Torra a intrare pro ativare s'àudio", + "startSilentTitle": "Ses intradu sena àudio.", + "suboptimalBrowserWarning": "Timimus chi s'esperièntzia tua de custa riunione no at a èssere bona meda. Semus chirchende maneras de megiorare custu. In su mentras, proa un'àteru de is navigadores cumpatìbiles.", + "suboptimalExperienceTitle": "Avisu subra de su navigadore", + "unmute": "Ativa su sonu", + "videoMutedRemotelyDescription": "Ddu podes semper torrare a ativare.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} at istudadu su vìdeu tuo", + "videoUnmuteBlockedDescription": "Ativatzione de sa càmera e cumpartzidura de ischermu blocadas in manera temporànea a càusa de limitatziones de su sistema.", + "videoUnmuteBlockedTitle": "Ativatzione de sa càmera e cumpartzidura de ischermu blocadas.", + "viewLobby": "Ammustra s'aposentu de abetu", + "waitingParticipants": "{{waitingParticipants}} persones" + }, + "participantsPane": { + "actions": { + "admit": "Ammite", + "admitAll": "Ammite totu", + "allow": "Permite a is partetzipantes:", + "allowVideo": "Permite vìdeu", + "askUnmute": "Pedi de ativare su micròfonu", + "audioModeration": "Ativare su pròpiu micròfonu", + "blockEveryoneMicCamera": "Blocare su micròfonu e sa càmera de totu is partetzipantes", + "invite": "Invitare una persone", + "moreModerationActions": "Àteras optziones de moderatzione", + "moreModerationControls": "Àteros controllos de moderatzione", + "moreParticipantOptions": "Àteras optziones de partetzipantes", + "mute": "A sa muda", + "muteAll": "Totu a sa muda", + "muteEveryoneElse": "Pone totus a sa muda", + "reject": "Refuda", + "stopEveryonesVideo": "Istuda su vìdeu de totu is partetzipantes", + "stopVideo": "Firma su vìdeu", + "unblockEveryoneMicCamera": "Isbloca su micròfonu e sa càmera de totu is partetzipantes", + "videoModeration": "Avia su vìdeu issoro" + }, + "close": "Serra", + "headings": { + "lobby": "Aposentu de abetu ({{count}})", + "participantsList": "Partetzipantes de sa riunione ({{count}})", + "waitingLobby": "Abetende in s'aposentu de abetu ({{count}})" + }, + "search": "Chirca partetzipantes", + "title": "Partetzipantes" + }, + "passwordDigitsOnly": "Finas a {{number}} tzifras", + "passwordSetRemotely": "Cunfiguradu dae un'àteru partetzipante", + "pinnedParticipant": "Partetzipante apicadu", + "polls": { + "answer": { + "skip": "Brinca", + "submit": "Imbia" + }, + "by": "Dae {{name}}", + "create": { + "addOption": "Agiunghe optzione", + "answerPlaceholder": "Optzione {{index}}", + "cancel": "Annulla", + "create": "Crea unu sondàgiu", + "pollOption": "Optzione de sondàgiu {{index}}", + "pollQuestion": "Dimanda de sondàgiu", + "questionPlaceholder": "Faghe una pregonta", + "removeOption": "Boga s'optzione", + "send": "Imbia" + }, + "errors": { + "notUniqueOption": "Sas optziones depent èssere ùnicas" + }, + "notification": { + "description": "Aberi ischeda de sondàgiu pro votare", + "title": "Sondàgiu nou agiuntu a sa riunione" + }, + "results": { + "changeVote": "Càmbia su votu", + "empty": "Nissunu sondàgiu in custa riunione. Crea unu sondàgiu inoghe.", + "hideDetailedResults": "Cua is detàllios", + "showDetailedResults": "Ammustra detàllios", + "vote": "Vota" + } + }, + "poweredby": "de", + "prejoin": { + "audioAndVideoError": "Faddina de àudio e de vìdeu", + "audioDeviceProblem": "Problema cun su dispositivu de àudio tuo", + "audioOnlyError": "Faddina de àudio:", + "audioTrackError": "Impossìbile creare una rasta de àudio.", + "callMe": "Muti·mi", + "callMeAtNumber": "Muti·mi a custu nùmeru", + "calling": "Mutende", + "configuringDevices": "Cunfigurende is dispositivos…", + "connectedWithAudioQ": "Tenes connessione de àudio?", + "connection": { + "good": "Sa connessione internet tua paret bona.", + "nonOptimal": "Sa connessione internet no est òtima", + "poor": "Sa connessione internet tua est pòbera" + }, + "connectionDetails": { + "audioClipping": "Est probàbile chi s'àudio tuo tèngiat interrutziones.", + "audioHighQuality": "Est probàbile chi s'àudio tuo siat de calidade òtima.", + "audioLowNoVideo": "Est probàbile chi sa calidade de s'àudio siat bàscia e chi no tèngias vìdeu.", + "goodQuality": "Fantàsticu! Sa calidade de is elementos multimediales at a èssere perfeta.", + "noMediaConnectivity": "Impossìbile istabilire connessione multimediale pro custa proa. A s'ispissu, custu est a càusa de unu firewall o NAT.", + "noVideo": "Est probàbile chi s'àudio tuo siat de calidade bàscia meda.", + "undetectable": "Si ancora non renesses a mutire dae su navigadore, assegura·ti chi is altoparlantes, sa càmera e su micròfonu tuos sunt cunfigurados bene, chia as donadu is permissos a su navigadore pro impreare sa càmera e su micròfonu e chi sa versione de su navigadore tuo est atualizada. Si tenes problemas in is mutidas, cuntata cun s'iscuadra de isvilupu de s'aplicatzione web.", + "veryPoorConnection": "Est probàbile chi sa calidade de sa mutida siat bàscia meda.", + "videoFreezing": "Est probàbile chi su vìdeu tuo s'at a cungelare, at a torrare nieddu o at a bènnere pixeladu. ", + "videoHighQuality": "Est probàbile chi su vìdeu tuo tèngiat una calidade bona.", + "videoLowQuality": "Est probàbile chi su vìdeu tuo tèngiat una calidade bàscia in contu de lestresa de fotogrammas e risolutzione.", + "videoTearing": "Est probàbile chi su vìdeu tuo bèngiat pixeladu o tèngiat difetos visuales." + }, + "copyAndShare": "Còpia e cumpartzi su ligòngiu de sa riunione", + "dialInMeeting": "Intra a sa riunione cun unu nùmeru telefònicu", + "dialInPin": "Intra a sa riunione cun unu nùmeru telefònicu e inserta su còdighe PIN:", + "dialing": "Intrende cun nùmeru de telèfonu", + "doNotShow": "No ammustres prus custa ventana", + "errorDialOut": "Impossìbile cumpònnere su nùmeru", + "errorDialOutDisconnected": "Impossìbile cumpònnere su nùmeru. Disconnètidu", + "errorDialOutFailed": "Impossìbile cumpònnere su nùmeru. Mutida faddida", + "errorDialOutStatus": "Faddina in s'istadu de sa mutida", + "errorMissingName": "Inserta su nòmine tuo pro intrare a sa riunione", + "errorNoPermissions": "As a tènnere bisòngiu de permìtere s'atzessu a su micròfonu e sa càmera", + "errorStatusCode": "Faddina in sa mutida, còdighe de istadu: {{status}}", + "errorValidation": "Faddina in sa validatzione de su nùmeru", + "iWantToDialIn": "Bògio mutire su nùmeru", + "initiated": "Tzerriada aviada", + "joinAudioByPhone": "Partètzipa cun àudio dae su telèfonu", + "joinMeeting": "Intra a sa riunione", + "joinMeetingInLowBandwidthMode": "Intra in modalidade de àmpiu de banda bàsciu", + "joinWithoutAudio": "Intra sena àudio", + "keyboardShortcuts": "Ativa incurtzaduras de tecladu", + "linkCopied": "Ligòngiu copiadu in punta de billete", + "lookGood": "Su micròfonu tuo est funtzionende", + "or": "opuru", + "premeeting": "Pre-riunione", + "screenSharingError": "Faddina in sa cumpartzidura de s'ischermu", + "startWithPhone": "Avia imperende s'àudio de su telèfonu", + "videoOnlyError": "Faddina de vìdeu:", + "videoTrackError": "Impossìbile creare una rasta de vìdeu.", + "viewAllNumbers": "Ammustra totu is nùmeros" + }, + "presenceStatus": { + "busy": "No a disponimentu", + "calling": "Mutende…", + "connected": "Connessione istabilida", + "connecting": "Connetende…", + "connecting2": "Connetende*…", + "disconnected": "Disconnètidu", + "expired": "Iscadidu", + "ignored": "Ignoradu", + "initializingCall": "Aviende sa mutida…", + "invited": "Invitadu", + "rejected": "Refudadu", + "ringing": "Sonende…" + }, + "privacyView": { + "title": "Riservadesa" + }, + "profile": { + "avatar": "immàgine de profilu", + "setDisplayNameLabel": "Cunfigura su nòmine visìbile tuo", + "setEmailInput": "Inserta unu contu de posta eletrònica", + "setEmailLabel": "Cunfigura indiritzu eletrònicu de gravatar", + "title": "Profilu" + }, + "raisedHand": "Bolet chistionare", + "raisedHandsLabel": "Nùmeru de manos artziadas", + "record": { + "already": { + "linked": "Sa riunione est giai acapiada a custu ogetu de Salesforce." + }, + "type": { + "account": "Contu", + "contact": "Cuntatade·nos", + "lead": "Printzipale", + "opportunity": "Oportunidade", + "owner": "Mere" + } + }, + "recording": { + "authDropboxText": "Càrriga a Dropbox", + "availableSpace": "Ispàtziu a disponimentu: {{spaceLeft}} MB (prus o mancu {{duration}} minutos de registratzione)", + "beta": "BETA", + "busy": "Semus traballende pro liberare resursas de registratzione. Torra a proare dae immoe a carchi minutu.", + "busyTitle": "Totu is registradores sunt ocupados", + "copyLink": "Còpia ligòngiu", + "error": "Faddina in sa registratzione. Torra a proare.", + "errorFetchingLink": "Faddina in su recùperu su ligòngiu de sa registratzione.", + "expandedOff": "Registratzione firmada", + "expandedOn": "Registrende sa riunione.", + "expandedPending": "Aviende sa registratzione…", + "failedToStart": "Faddina in s'aviu de sa registratzione", + "fileSharingdescription": "Cumpartzi su ligòngiu de sa registratzione cun is partetzipantes a sa riunione", + "highlight": "Evidèntzia", + "highlightMoment": "Pone unu momentu in evidèntzia", + "highlightMomentDisabled": "Podes pònnere momentos in evidèntzia comente s'aviat sa registratzione", + "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.", + "live": "IN DIRETA", + "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.", + "localRecordingStartWarning": "Assegura·ti chi firmas sa registratzione prima de essire de sa riunione, in manera chi bèngiat sarvada.", + "localRecordingStartWarningTitle": "Firma sa registratzione pro dda sarvare", + "localRecordingVideoStop": "Istudende su vìdeu as a firmare puru sa registratzione locale. Ses seguru de chèrrere sighire?", + "localRecordingVideoWarning": "Pro registrare unu vìdeu, depet èssere allutu prima de cumintzare", + "localRecordingWarning": "Assegura·ti chi seletzionas s'ischeda atuale in manera de impreare s'àudio e su vìdeu curretos.", + "loggedIn": "Autenticatzione: {{userName}}", + "noStreams": "Nissunu flussu de vìdeu o de àudio rilevadu.", + "off": "Registratzione firmada", + "offBy": "{{name}} at firmadu sa registratzione", + "on": "Registratzione aviada", + "onBy": "{{name}} at aviadu sa registratzione", + "onlyRecordSelf": "Registra isceti is flussos mios de àudio e de vìdeu", + "pending": "Preparende pro registrare sa riunione", + "rec": "REG", + "saveLocalRecording": "Sarva s'archìviu de registratzione in locale (Beta)", + "serviceDescription": "Sa registratzione at a èssere sarvada dae su servìtziu de registratzione", + "serviceDescriptionCloud": "Registratzione in sa nue", + "serviceDescriptionCloudInfo": "Is riuniones registradas ant a èssere cantzelladas in automàticu a pustis de 24 oras de sa registratzione.", + "serviceName": "Servìtziu de registratzione", + "sessionAlreadyActive": "S'est giai registrende o trasmitende in direta sa sessione.", + "signIn": "Identìfica·ti", + "signOut": "Essi", + "surfaceError": "Seletziona s'ischeda atuale.", + "title": "Registrende", + "unavailable": "Ohia {{serviceName}} no est a disponimentu. Semus traballende pro acontzare su problema. Torra a proare a pustis.", + "unavailableTitle": "Sa registratzione no est a disponimentu", + "uploadToCloud": "Càrriga in sa nue" + }, + "screenshareDisplayName": "Ischermu de {{name}}", + "sectionList": { + "pullToRefresh": "Ispinghe pro atualizare" + }, + "security": { + "about": "Podes agiùnghere una $t(lockRoomPassword) a sa riunione. Is partetzipantes ant a dèpere frunire sa $t(lockRoomPassword) prima de èssere ammìtidos a sa riunione.", + "aboutReadOnly": "Is partetzipantes moderadores podent agiùnghere una $t(lockRoomPassword) a sa riunione. Is partetzipantes ant a dèpere frunire sa $t(lockRoomPassword) prima de èssere ammìtidos a sa riunione.", + "insecureRoomNameWarning": "Su nòmine de custu aposentu no est seguru. Podet èssere chi lompant partetzipantes chi no as invitadu a sa cunferèntzia. Proa a crèschere sa seguresa de sa riunione cun su butone de seguresa.", + "title": "Optziones de seguresa" + }, + "settings": { + "buttonLabel": "Cunfiguratzione", + "calendar": { + "about": "S'integratzione cun su calendàriu {{appName}} est impreada pro atzèdere in manera segura a su calendàriu tuo pro chi potzat lèghere is eventos imbenientes.", + "disconnect": "Disconnete", + "microsoftSignIn": "Autèntica·ti cun Microsoft", + "signedIn": "Ses atzedende a is eventos de calendàriu pro {{email}}. Incarca su butone Disconnete in bàsciu pro firmare s'atzessu a eventos de calendàriu.", + "title": "Calendàriu" + }, + "desktopShareFramerate": "Lestresa de is fotogrammas de sa cumpartzidura de ischermu", + "desktopShareHighFpsWarning": "Una lestresa prus arta pro sa cumpartzidura de ischermu podet influentzare s'àmpiu de banda. Depes torrare a aviare sa cumpartzidura de s'ischermu pro chi sa cunfiguratzione noa tèngiat efetu.", + "desktopShareWarning": "Depes torrare a aviare sa cumpartzidura de s'ischermu pro chi sa cunfiguratzione noa tèngiat efetu.", + "devices": "Dispositivos", + "followMe": "Totus mi sighint", + "framesPerSecond": "fotogrammas a su segundu", + "incomingMessage": "Messàgiu in intrada", + "language": "Limba", + "loggedIn": "Autenticatzione: {{name}}", + "maxStageParticipants": "Nùmeru màssimu de partetzipantes chi podent èssere apicados a s'iscena printzipale", + "microphones": "Micròfonos", + "moderator": "Moderadore", + "more": "Àteru", + "name": "Nòmine", + "noDevice": "Nissunu", + "participantJoined": "Partetzipante aderidu", + "participantKnocking": "Unu partetzipante est intradu a s'aposentu de abetu", + "participantLeft": "Unu partetzipante est essidu", + "playSounds": "Sonos ativados", + "reactions": "Reatziones de riunione", + "sameAsSystem": "Su pròpiu de s'elaboradore ({{label}})", + "selectAudioOutput": "Essida de àudio", + "selectCamera": "Càmera", + "selectMic": "Micròfonu", + "selfView": "Visualizatzione pròpia", + "sounds": "Sonos", + "speakers": "Altoparlantes", + "startAudioMuted": "Totus cumintzant a sa muda", + "startReactionsMuted": "Pone is sonos de reatzione a sa muda pro totus", + "startVideoMuted": "Totus cumintzant a sa cua", + "talkWhileMuted": "Chistiona cando a sa muda", + "title": "Cunfiguratzione" + }, + "settingsView": { + "advanced": "Avantzadas", + "alertCancel": "Annulla", + "alertOk": "AB", + "alertTitle": "Atentzione", + "alertURLText": "Custu URL no est vàlidu", + "buildInfoSection": "Informatzione de sa versione", + "conferenceSection": "Cunferèntzia", + "disableCallIntegration": "Disativa s'integratzione de mutidas nativas", + "disableCrashReporting": "Disativa sa sinnalatzione de arrestos anòmalos", + "disableCrashReportingWarning": "Seguru chi boles disativare sa sinnalatzione de arrestos anòmalos? Custa cunfiguratzione at a èssere aplicada comente as a torrare a aviare s'aplicatzione.", + "disableP2P": "Disativa sa modalidade a nodu terminale (p2p)", + "displayName": "Nòmine visìbile", + "displayNamePlaceholderText": "Es: Laura Sanna", + "email": "Indiritzu eletrònicu", + "emailPlaceholderText": "indiritzu@esempru.com", + "goTo": "Bae a", + "header": "Cunfiguratzione", + "help": "Agiudu", + "links": "Ligòngios", + "privacy": "Riservadesa", + "profileSection": "Profilu", + "serverURL": "URL de su servidore", + "showAdvanced": "Ammustra cunfiguratziones avantzadas", + "startCarModeInLowBandwidthMode": "Avia sa modalidade de màchina cun àmpiu de banda bàsciu", + "startWithAudioMuted": "Cumintza cun s'àudio a sa muda", + "startWithVideoMuted": "Cumintza cun su vìdeu disativadu", + "terms": "Cunditziones", + "version": "Versione" + }, + "share": { + "dialInfoText": "\n\nBoles isceti ascurtare sa cunferèntzia dae su telèfonu?\n\n{{defaultDialInNumber}}Incarca custu ligòngiu pro bìdere is nùmeros de telèfonu de custa riunione{{dialInfoPageUrl}}", + "mainText": "Incarca custu ligòngiu pro intrare a sa riunione:\n{{roomUrl}}" + }, + "speaker": "Altoparlante", + "speakerStats": { + "angry": "Arrennegadu", + "disgusted": "Dispràghidu", + "displayEmotions": "Ammustra emotziones", + "fearful": "Ispramadu", + "happy": "Cuntentu", + "hours": "{{count}} h", + "minutes": "{{count}} min", + "name": "Nòmine", + "neutral": "Neutrale", + "sad": "Tristu", + "search": "Chirca", + "searchHint": "Chirca partetzipantes", + "seconds": "{count} seg", + "speakerStats": "Istatìsticas de partetzipante", + "speakerTime": "Tempus de partetzipante", + "surprised": "Ispantadu" + }, + "startupoverlay": { + "genericTitle": "Sa riunione tenet bisòngiu de impreare sa càmera e su micròfonu tuos.", + "policyText": "", + "title": "{{app}} tenet bisòngiu de impreare sa càmera e su micròfonu tuos." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Torra a intrare", + "text": "Incarca su butone Torra a intrare pro torrare a connètere.", + "title": "S'elaboradore est andadu a riposu e custu at firmadu sa mutida de vìdeu." + }, + "termsView": { + "title": "Cunditziones" + }, + "toggleTopPanelLabel": "Cuncàmbia su pannellu superiore", + "toolbar": { + "Settings": "Cunfiguratzione", + "accessibilityLabel": { + "Settings": "Càmbia sa cunfiguratzione", + "audioOnly": "Càmbia àudio isceti", + "audioRoute": "Sèbera su dispositivu de àudio", + "boo": "Boo", + "breakoutRoom": "Intra/lassa s'aposentu separadu", + "callQuality": "Gesti sa calidade de su vìdeu", + "carmode": "Modalidade de màchina", + "cc": "Càmbia s'istadu de is sutatìtulos", + "chat": "Aberi o serra sa tzarrada", + "clap": "Aplàusu", + "collapse": "Mìnima", + "dock": "Apica a sa ventana printzipale", + "document": "Càmbia documentu cumpartzidu", + "download": "Iscàrriga is aplicatziones nostras", + "embedMeeting": "Incòrpora sa riunione", + "endConference": "Serra sa riunione pro totus", + "expand": "Ismànnia", + "feedback": "Lassa cummentos", + "fullScreen": "Ativa o disativa ischermu in mannària prena", + "giphy": "Cuncàmbia su menù GIPHY", + "grantModerator": "Dona permissos de moderatzione", + "hangup": "Essi de sa riunione", + "help": "Agiudu", + "invite": "Invita gente", + "kick": "Boga partetzipante", + "laugh": "Rìere", + "leaveConference": "Lassa sa riunione", + "like": "M'agradat", + "linkToSalesforce": "Ligòngiu a Salesforce", + "lobbyButton": "Ativa o disativa sa modalidade de aposentu de abetu", + "localRecording": "Ativa o disativa is controllos de registratzione in locale", + "lockRoom": "Ativa o disativa crae de riunione", + "moreActions": "Àteras atziones", + "moreActionsMenu": "Menù de atziones additzionales", + "moreOptions": "Ammustra àteras optziones", + "mute": "Ativa o disativa s'àudio", + "muteEveryone": "Pone totus a sa muda", + "muteEveryoneElse": "Pone totus a sa muda", + "muteEveryoneElsesVideoStream": "Istuda su vìdeu de totu is àteros partetzipantes", + "muteEveryonesVideoStream": "Istuda su vìdeu de totu is partetzipantes", + "noiseSuppression": "Limpiadura de abbolotu", + "participants": "Partetzipantes", + "pip": "Ativa o disativa sa modalidade immàgine in immàgine", + "privateMessage": "Imbia messàgiu de testu privadu", + "profile": "Modìfica su profilu", + "raiseHand": "Àrtzia o abbassa sa manu", + "reactionsMenu": "Aberi o serra su menù de reatziones", + "recording": "Ativa o disativa sa registratzione", + "remoteMute": "Pone partetzipante a sa muda", + "remoteVideoMute": "Istuda sa càmera de su partetzipante", + "security": "Optziones de seguresa", + "selectBackground": "Sèbera s'isfundu", + "selfView": "Cuncàmbia sa visualizatzione pròpia", + "shareRoom": "Invita una persone", + "shareYourScreen": "Avia o firma sa cumpartzidura de s'ischermu", + "shareaudio": "Cumpartzi s'àudio", + "sharedvideo": "Cuncàmbia sa cumpartzidura de vìdeu", + "shortcuts": "Ativa o disativa incurtzaduras", + "show": "Ammustra in s'iscena", + "silence": "A sa muda", + "speakerStats": "Càmbia istatìsticas de partetzipante", + "surprised": "Ispantadu", + "tileView": "Càmbia a visualizatzione in mosàicu", + "toggleCamera": "Càmbia càmera", + "toggleFilmstrip": "Ativa o disativa sa pellìcula", + "undock": "Boga e pone in una ventana separada", + "videoblur": "Ativa o disativa isfocadu", + "videomute": "Avia o firma sa càmera", + "whiteboard": "Ammustra o cua sa pitzarra" + }, + "addPeople": "Agiunghe gente a sa mutida", + "audioOnlyOff": "Disativa modalidade de àmpiu de banda bàsciu", + "audioOnlyOn": "Ativa modalidade de àmpiu de banda bàsciu", + "audioRoute": "Sèbera su dispositivu de àudio", + "audioSettings": "Impostatziones àudio", + "authenticate": "Autentica·ti", + "boo": "Boo", + "callQuality": "Gesti sa calidade de su vìdeu", + "chat": "Aberi o serra sa tzarrada", + "clap": "Aplàusu", + "closeChat": "Serra sa tzarrada", + "closeReactionsMenu": "Serra su menù de reatziones", + "disableNoiseSuppression": "Disativa sa limpiadura de abbolotu", + "disableReactionSounds": "Podes disativare is sonos de reatzione pro custa riunione", + "dock": "Apica a sa ventana printzipale", + "documentClose": "Serra su documentu cumpartzidu", + "documentOpen": "Aberi su documentu cumpartzidu", + "download": "Iscàrriga is aplicatziones nostras", + "e2ee": "Critografia a nodu terminale", + "embedMeeting": "Incòrpora sa riunione", + "endConference": "Serra sa riunione pro totus", + "enterFullScreen": "Ammustra in mannària prena", + "enterTileView": "Intra in visualizatzione in mosàicu", + "exitFullScreen": "Essi de ischermu in mannària prena", + "exitTileView": "Essi de sa visualizatzione in mosàicu", + "feedback": "Lassa cummentos", + "giphy": "Cuncàmbia su menù GIPHY", + "hangup": "Essi de sa riunione", + "help": "Agiudu", + "hideWhiteboard": "Cua sa pitzarra", + "invite": "Invita gente", + "joinBreakoutRoom": "Intra a s'aposentu separadu", + "laugh": "Rìere", + "leaveBreakoutRoom": "Lassa s'aposentu separadu", + "leaveConference": "Lassa sa riunione", + "like": "M'agradat", + "linkToSalesforce": "Ligòngiu a Salesforce", + "lobbyButtonDisable": "Disativa sa modalidade de aposentu de abetu", + "lobbyButtonEnable": "Ativa sa modalidade de aposentu de abetu", + "login": "Intra", + "logout": "Essi", + "lowerYourHand": "Abbassa sa manu", + "moreActions": "Àteras atziones", + "moreOptions": "Àteras optziones", + "mute": "Ativa o disativa s'àudio", + "muteEveryone": "Pone totus a sa muda", + "muteEveryonesVideo": "Istuda sa càmera de totus", + "noAudioSignalDesc": "Si no dd'as postu a sa muda dae sa cunfiguratzione de sistema o dae su dispositivu, forsis depes cambiare dispositivu.", + "noAudioSignalDescSuggestion": "Si no dd'as postu a sa muda dae sa cunfiguratzione de sistema o dae su dispositivu, forsis depes cambiare a su dispositivu cussigiadu.", + "noAudioSignalDialInDesc": "Podes fintzas intrare cun una mutida:", + "noAudioSignalDialInLinkDesc": "Nùmeros de mutida", + "noAudioSignalTitle": "Nissunu sinnale dae su micròfonu tuo.", + "noiseSuppression": "Limpiadura de abbolotu", + "noisyAudioInputDesc": "Su micròfonu tuo faghet remore, forsis ti depes pònnere a sa muda o depes cambiare dispositivu.", + "noisyAudioInputTitle": "Su micròfonu tuo faghet remore.", + "openChat": "Aberi sa tzarrada", + "openReactionsMenu": "Aberi su menù de reatziones", + "participants": "Partetzipantes", + "pip": "Intra in modalidade immàgine in immàgine", + "privateMessage": "Imbia messàgiu de testu privadu", + "profile": "Modìfica su profilu", + "raiseHand": "Àrtzia o abbassa sa manu", + "raiseYourHand": "Àrtzia sa manu", + "reactionBoo": "Imbia boo", + "reactionClap": "Imbia aplàusu", + "reactionLaugh": "Imbia rìere", + "reactionLike": "Imbia \"mi praghet\"", + "reactionSilence": "Imbia reatzione de silèntziu", + "reactionSurprised": "Imbia reatzione de ispantu", + "security": "Optziones de seguresa", + "selectBackground": "Sèbera s'isfundu", + "shareRoom": "Invita una persone", + "shareaudio": "Cumpartzi s'àudio", + "sharedvideo": "Cumpartzi vìdeu", + "shortcuts": "Ammustra incurtzaduras", + "showWhiteboard": "Ammustra sa pitzarra", + "silence": "A sa muda", + "speakerStats": "Istatìsticas de partetzipante", + "startScreenSharing": "Avia sa cumpartzidura de s'ischermu", + "startSubtitles": "Sutatìtulos • {{language}}", + "stopAudioSharing": "Firma sa cumpartzidura de àudio", + "stopScreenSharing": "Firma sa cumpartzidura de s'ischermu", + "stopSharedVideo": "Firma su vìdeu", + "stopSubtitles": "Firma sutatìtulos", + "surprised": "Ispantadu", + "talkWhileMutedPopup": "Ses chirchende de chistionare? Ses a sa muda.", + "tileViewToggle": "Càmbia a visualizatzione in mosàicu", + "toggleCamera": "Càmbia càmera", + "undock": "Boga e pone in una ventana separada", + "videoSettings": "Impostatziones de sos vìdeos", + "videomute": "Avia o firma sa càmera" + }, + "transcribing": { + "ccButtonTooltip": "Avia o firma sutatìtulos", + "error": "Faddina in sa trascritzione. Torra a proare.", + "expandedLabel": "Trascritzione ativada", + "failedToStart": "Faddina in s'aviu de sa trascritzione", + "labelToolTip": "Trascriende sa riunione", + "off": "Trascritzione firmada", + "pending": "Preparende pro trascrìere sa riunione…", + "sourceLanguageDesc": "Sa lìngua de sa riunione est {{sourceLanguage}}.
Dda podes modificare dae", + "sourceLanguageHere": "inoghe", + "start": "Cumintza a ammustrare sutatìtulos", + "stop": "No ammustres prus sutatìtluos", + "subtitles": "Sutatìtulos", + "subtitlesOff": "Disativada", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Cuntzede permissos pro atzèdere a sa càmera e a su micròfonu tuos." + }, + "videoSIPGW": { + "busy": "Semus traballende pro liberare resursas. Torra a proare dae immoe a carchi minutu.", + "busyTitle": "Su servìtziu Room est ocupadu", + "errorAlreadyInvited": "Invitu a {{displayName}} giai imbiadu", + "errorInvite": "Sa connessione no est istada istabilida. Torra a proare a pustis.", + "errorInviteFailed": "Semus traballende pro acontzare su problema. Torra a proare a pustis.", + "errorInviteFailedTitle": "Faddina in s'invitu de {{displayName}}", + "errorInviteTitle": "Faddina in s'aposentu de invitos", + "pending": "Invitu a {{displayName}} imbiadu" + }, + "videoStatus": { + "adjustFor": "Acontza pro:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Ses in modalidade de àmpiu de banda bàsciu. In custa modalidade isceti su ritzevimentu de àudio e de cumpartzidura de ischermu sunt a disponimentu.", + "bestPerformance": "Rendimentu màssimu", + "callQuality": "Calidade de su vìdeu", + "hd": "HD", + "hdTooltip": "Vìdeu in arta definitzione (HD)", + "highDefinition": "Arta definitzione (HD)", + "highestQuality": "Calidade prus arta", + "labelTooiltipNoVideo": "Sena vìdeu", + "labelTooltipAudioOnly": "Modalidade de àmpiu de banda bàsciu ativada", + "ld": "LD", + "ldTooltip": "Vìdeu in definitzione bàscia (LD)", + "lowDefinition": "Definitzione bàscia (LD)", + "performanceSettings": "Impostatziones de rendimentu", + "sd": "SD", + "sdTooltip": "Vìdeu in definitzione istandard (SD)", + "standardDefinition": "Definitzione istàndard (SD)" + }, + "videothumbnail": { + "connectionInfo": "Informatzione de sa connessione", + "domute": "A sa muda", + "domuteOthers": "Pone totus a sa muda", + "domuteVideo": "Disativa sa videocàmera", + "domuteVideoOfOthers": "Disativa sa càmera de totu is àteros", + "flip": "Fùrria", + "grantModerator": "Dona permissos de moderatzione", + "hideSelfView": "Cua sa visualizatzione pròpia", + "kick": "Boga", + "moderator": "Moderadore", + "mute": "Partetzipante a sa muda", + "muted": "A sa muda", + "pinToStage": "Apica a s'iscena", + "remoteControl": "Avia o firma su controllu remotu", + "screenSharing": "Su partetzipante est cumpartzende s'ischermu suo", + "show": "Ammustra in s'iscena", + "showSelfView": "Ammustra sa visualizatzione pròpia", + "unpinFromStage": "Boga dae pitzu", + "videoMuted": "Càmera disativada", + "videomute": "Custa persone at firmadu sa càmera" + }, + "virtualBackground": { + "addBackground": "Agiunghe un'isfundu", + "apply": "Àplica", + "backgroundEffectError": "Faddina in s'efetu de isfundu", + "blur": "Isfocamentu", + "deleteImage": "Cantzella s'immàgine", + "desktopShare": "Cumpartzidura de iscrivania", + "desktopShareError": "Impossìbile creare una cumpartzidura de iscrivania", + "image1": "Plaja", + "image2": "Muru biancu neutrale", + "image3": "Aposentu bòidu biancu", + "image4": "Làntia de pavimentu niedda", + "image5": "Monte", + "image6": "Padente ", + "image7": "Arbèschida", + "none": "Nissunu", + "pleaseWait": "Abeta…", + "removeBackground": "Boga s'isfundu", + "slightBlur": "Isfocamentu ligeru", + "title": "Isfundos virtuales", + "uploadedImage": "Immàgine carrigada {{index}}", + "webAssemblyWarning": "WebAssembly non cumpatìbile", + "webAssemblyWarningDescription": "WebAssembly est disativadu o incumpatìbile cun custu navigadore" + }, + "volumeSlider": "Barra de volùmene", + "welcomepage": { + "accessibilityLabel": { + "join": "Toca pro intrare", + "roomname": "Inserta su nòmine de s'aposentu" + }, + "addMeetingName": "Agiunghe su nòmine de sa riunione", + "appDescription": "Bae, tzarra in vìdeu cun totu s'iscuadra. Difatis, podes invitare totu sa gente chi connosches. {{app}} est un'aplicatzione de vìdeu-cunferèntzia de còdighe abertu 100% cun critografia cumpleta chi podes impreare cada die, totu sa die, de badas — sena nissunu contu creadu.", + "audioVideoSwitch": { + "audio": "Boghe", + "video": "Vìdeu" + }, + "calendar": "Calendàriu", + "connectCalendarButton": "Connete a su calendàriu tuo", + "connectCalendarText": "Connete a su calendàriu tuo pro bìdere totu is riuniones tuas in {{app}}. In prus, agiunghe riuniones de {{provider}} a su calendàriu tuo e avia·ddas cun unu clic.", + "enterRoomTitle": "Cumintza una riunione noa", + "getHelp": "Pedi agiudu", + "go": "BAE", + "goSmall": "BAE", + "headerSubtitle": "Riunione seguras e de arta calidade", + "headerTitle": "Jitsi Meet", + "info": "Informatzione pro sa mutida", + "jitsiOnMobile": "Jitsi pro mòbiles - iscàrriga is aplicatziones nostras e avia una riunione dae ònnia logu", + "join": "CREA / INTRA", + "logo": { + "calendar": "Icona de calendàriu", + "desktopPreviewThumbnail": "Miniadura de previsualizatzione de iscrivania", + "googleLogo": "Icona de Google", + "logoDeepLinking": "Icona de Jitsi meet", + "microsoftLogo": "Icona de Microsoft", + "policyLogo": "Polìtica de iconas" + }, + "mobileDownLoadLinkAndroid": "Iscàrriga s'aplicatzione mòbile pro Android", + "mobileDownLoadLinkFDroid": "Iscàrriga s'aplicatzione mòbile pro F-Droid", + "mobileDownLoadLinkIos": "Iscàrriga s'aplicatzione mòbile pro iOS", + "moderatedMessage": "O prenota un'URL de riunione in antìtzipu, aunde as a èssere s'unicu moderadore.", + "privacy": "Riservadesa", + "recentList": "Reghentes", + "recentListDelete": "Cantzella s'elementu", + "recentListEmpty": "Sa lista de reghentes est bòida. Tzarra cun s'iscuadra tua e as a agatare totu is riuniones reghentes tuas inoghe.", + "reducedUIText": "Ti donamus su benebènnidu a {{app}}!", + "roomNameAllowedChars": "Su nòmine de sa riunione non podet inclùdere custos caràteres: ?, &, :, ', \", %, #.", + "roomname": "Inserta su nòmine de s'aposentu", + "roomnameHint": "Inserta su nòmine o s'URL de s'aposentu a su chi boles intrare. Ti podes imbentare unu nòmine, bastat chi ddu fatzas ischire a sa gente chi ses addobiende pro chi ddu potzant insertare su pròpiu.", + "sendFeedback": "Imbia cummentos", + "settings": "Cunfiguratzione", + "startMeeting": "Avia sa riunione", + "terms": "Cunditziones", + "title": "Vìdeu-cunferèntzia segura, prena de funtzionalidades, lìbera e de badas" + } +} diff --git a/lang/main-sk.json b/lang/main-sk.json new file mode 100644 index 0000000..6e9b306 --- /dev/null +++ b/lang/main-sk.json @@ -0,0 +1,917 @@ +{ + "addPeople": { + "add": "Pozvať", + "addContacts": "Pozvať kontakty", + "copyInvite": "Skopírovať pozvánku", + "copyLink": "Skopírovať odkaz na konferenciu", + "copyStream": "Skopírovať odkaz na živé vysielanie", + "countryNotSupported": "Zatiaľ nepodporujeme túto krajinu.", + "countryReminder": "Medzinárodný hovor? Prosím skontrolujte, či telefónne číslo začína smerovým číslo krajiny.", + "defaultEmail": "Predvolený email", + "disabled": "Nemôžete pozvať ďalších ľudí.", + "failedToAdd": "Nepodarilo sa pridať účastníka.", + "footerText": "Odchádzajúce hovory sú zablokované.", + "googleEmail": "Google email", + "inviteMoreHeader": "Ste sám v tejto konferencii", + "inviteMoreMailSubject": "Pozvánka do konferencie {{appName}}", + "inviteMorePrompt": "Pozvať ľudí", + "linkCopied": "Odkaz skopírovaný do schránky", + "loading": "Hľadanie ľudí a telefónnych čísiel", + "loadingNumber": "Kontrola telefónneho čísla", + "loadingPeople": "Hľadanie ľudí na pozvanie", + "noResults": "Žiadne výsledky hľadania", + "noValidNumbers": "Prosím zadajte telefónne číslo", + "outlookEmail": "Outlook email", + "searchNumbers": "Zadajte telefónne čísla", + "searchPeople": "Hľadanie ľudí", + "searchPeopleAndNumbers": "Hľadať ľudí alebo pridať ich telefónne čísla", + "shareInvite": "Zdieľať pozvánku do konferencie", + "shareLink": "Zdieľať odkaz na pozvanie", + "shareStream": "Zdieľať odkaz na živé vysielanie", + "telephone": "Telefón: {{number}}", + "title": "Pozvať ľudí do tejto konferencie", + "yahooEmail": "Yahoo email" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Slúchadlá", + "none": "Žiadne zvukové zariadenia", + "phone": "Telefón", + "speaker": "Reproduktor" + }, + "audioOnly": { + "audioOnly": "Iba zvuk" + }, + "calendarSync": { + "addMeetingURL": "Pridať odkaz na konferenciu", + "confirmAddLink": "Chcete pridal Jitsi odkaz do tejto udalosti?", + "error": { + "appConfiguration": "Integrácia s kalendárom nie je správne nastavená.", + "generic": "Stala sa chyba. Skontrolujte nastavenia kalendára a skúste obnoviť kalendár.", + "notSignedIn": "Stala sa chyba počas autentifikácie pre zobrazenie kaledárových udalosti. Skontrolujte nastavenia kalendára a skúste sa znovu prihlásiť." + }, + "join": "Zúčastniť sa", + "joinTooltip": "Zúčastniť sa konferencie", + "nextMeeting": "nasledujúca konferencia", + "noEvents": "Nie sú naplánované žiadne ďalšie udalosti.", + "ongoingMeeting": "prebiehajúca konferencia", + "permissionButton": "Otvoriť nastavenia", + "permissionMessage": "Aplikácia potrebuje kalendárové oprávnenie pre zobranie termínov a stretnutí.", + "refresh": "Obnoviť kalendár", + "today": "Dnes" + }, + "chat": { + "error": "Chyba: vaša správa \"{{originalText}}\" nebola poslaná. Dôvod: {{error}}", + "fieldPlaceHolder": "Zadajte sem vašu správu", + "messageTo": "Súkromná správa pre {{recipient}}", + "messagebox": "Napíšte správu", + "nickname": { + "popover": "Zvoľte meno", + "title": "Zadajte vašu prezývku", + "titleWithPolls": "Zadajte vašu prezývku" + }, + "noMessagesMessage": "V tejto konferencii ešte nie je žiadna správa. Začnite tu vašu diskusiu!", + "privateNotice": "Súkromná správa pre {{recipient}}", + "sendButton": "Poslať", + "title": "Chat", + "titleWithPolls": "Chat", + "you": "Vy" + }, + "chromeExtensionBanner": { + "buttonText": "Inštalovať Chrome rozšírenie", + "dontShowAgain": "Upozornenie viac nezobrazovať", + "installExtensionText": "Nainštalujte rozšírenie pre integráciu s Google Calendar a Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Pripájanie do konferencie…" + }, + "connection": { + "ATTACHED": "Priložený", + "AUTHENTICATING": "Overovanie", + "AUTHFAIL": "Overenie zlyhalo", + "CONNECTED": "Pripojený", + "CONNECTING": "Pripájanie", + "CONNFAIL": "Spojenie zlyhalo", + "DISCONNECTED": "Odpojený", + "DISCONNECTING": "Odpájanie", + "ERROR": "Chyba", + "FETCH_SESSION_ID": "Získavanie session-id…", + "GET_SESSION_ID_ERROR": "Chyba pri získavaní session-id: {{code}}", + "GOT_SESSION_ID": "Získavanie session-id… Hotovo", + "LOW_BANDWIDTH": "Video pre {{displayName}} bolo vypnuté, aby sa ušetrila prenosová kapacita" + }, + "connectionindicator": { + "address": "Adresa:", + "bandwidth": "Dátový tok:", + "bitrate": "Prenos. rýchlosť:", + "bridgeCount": "Počet serverov: ", + "connectedTo": "Spojenie s:", + "framerate": "Rýchlosť snímkovania:", + "less": "Zobraziť menej", + "localaddress": "Lokálna adresa:", + "localaddress_plural": "Lokálne adresy:", + "localport": "Lokálny port:", + "localport_plural": "Lokálne porty:", + "maxEnabledResolution": "send max", + "more": "Zobraziť viac", + "packetloss": "Strata paketov:", + "participant_id": "ID účastníka:", + "quality": { + "good": "Dobré", + "inactive": "Neaktívne", + "lost": "Stratené", + "nonoptimal": "Neoptimálne", + "poor": "Slabé" + }, + "remoteaddress": "Vzdialená adresa:", + "remoteaddress_plural": "Vzdialené adresy:", + "remoteport": "Vzdialený port:", + "remoteport_plural": "Vzdialené porty:", + "resolution": "Rozlíšenie:", + "status": "Spojenie:", + "transport": "Prenos:", + "transport_plural": "Prenosy:" + }, + "dateUtils": { + "earlier": "Skôr", + "today": "Dnes", + "yesterday": "Včera" + }, + "deepLinking": { + "appNotInstalled": "Potrebujete aplikáciu {{app}}, aby ste sa mohli pripojiť do tejto konferencie na vašom telefóne.", + "description": "Nič sa nestalo? Snažili sme sa otvoriť konferenciu v {{app}}. Skúste to znovu, alebo sa pripojte na konferenciu v {{app}} cez web.", + "descriptionWithoutWeb": "Nič sa nestalo? Snažili sme sa spustiť konferenciu v desktopovej aplikácií {{app}}.", + "downloadApp": "Stiahnutie aplikácie", + "ifDoNotHaveApp": "Ak nemáte aplikáciu:", + "ifHaveApp": "Ak máte aplikáciu:", + "joinInApp": "Vstúpiť do konferencie cez aplikáciu", + "launchWebButton": "Otvoriť na webe", + "title": "Konferencia sa otvára v {{app}}…", + "tryAgainButton": "Skúsiť znova s natívnou aplikáciou" + }, + "defaultLink": "napr. {{url}}", + "defaultNickname": "napr. Ján Kováč", + "deviceError": { + "cameraError": "Chyba pri prístupe ku kamere", + "cameraPermission": "Aplikácia nemá oprávnenie pristupovať ku kamere", + "microphoneError": "Chyba pri prístupe k mikrofónu", + "microphonePermission": "Aplikácia nemá oprávnenie pristupovať k mikrofónu" + }, + "deviceSelection": { + "noPermission": "Oprávnenie nie je poskytnuté", + "previewUnavailable": "Náhľad nie je dostupný", + "selectADevice": "Vybrať zariadenie", + "testAudio": "Vyskúšať zvuk" + }, + "dialOut": { + "statusMessage": "je teraz {{status}}" + }, + "dialog": { + "Back": "Späť", + "Cancel": "Zrušiť", + "IamHost": "Ja som hostiteľ", + "Ok": "Ok", + "Remove": "Odstrániť", + "Share": "Zdieľať", + "Submit": "OK", + "WaitForHostMsg": "Konferencia sa ešte nezačala. Autorizujte sa prosím ak ste hostiteľ. V opačnom prípade čakajte na hostiteľa.", + "WaitingForHost": "Čakám na hostiteľa…", + "Yes": "Áno", + "accessibilityLabel": { + "liveStreaming": "Živé vysielanie" + }, + "add": "Pridať", + "allow": "Povoliť", + "alreadySharedVideoMsg": "Iný účastník už zdieľa video. Pri tejto konferencií môže zdieľať video iba jeden účastník.", + "alreadySharedVideoTitle": "Je možné zdieľať iba jedno video", + "applicationWindow": "Okno aplikácie", + "cameraConstraintFailedError": "Vaša kamera nespĺňa potrebné požiadavky.", + "cameraNotFoundError": "Kamera nebola nájdená.", + "cameraNotSendingData": "Kamera nie je dostupná. Skontrolujte či iná aplikácia používa kameru, vyberte inú kameru v nastaveniach alebo znovu spustite aplikáciu.", + "cameraNotSendingDataTitle": "Prístup na kameru nie je možný.", + "cameraPermissionDeniedError": "Nebolo udelené oprávnenie používať kameru. Napriek tomu sa môže zúčastniť na konferencií, ale ostatní účastníci vás nebudu vidieť. Pre pridelenie oprávnenia môžete použiť ikonu kamery na adresnej lište.", + "cameraUnknownError": "Z neznámeho dôvodu sa kamera nedá použiť.", + "cameraUnsupportedResolutionError": "Kamera nepodporuje požadované rozlíšenie.", + "close": "Zatvoriť", + "conferenceDisconnectMsg": "Skontrolujte prípadne vaše sieťové pripojenie. Pripájam znovu o {{seconds}} sekúnd…", + "conferenceDisconnectTitle": "Vaše spojenie bolo prerušené.", + "conferenceReloadMsg": "Snažíme sa to napraviť. Pripájam znovu o {{seconds}} sekund…", + "conferenceReloadTitle": "Spojenie sa prerušilo.", + "confirm": "Potvrdiť", + "confirmNo": "Nie", + "confirmYes": "Áno", + "connectError": "Niečo je zle a nemôžem sa pripojiť do konferencie.", + "connectErrorWithMsg": "Niečo je zle a nemôžem sa pripojiť do konferencie. Správa: {{msg}}", + "connecting": "Pripájam", + "contactSupport": "Spojiť sa s podporou", + "copy": "Kopírovať", + "dismiss": "Zavrieť", + "displayNameRequired": "Ahoj! Ako sa voláš?", + "done": "Hotovo", + "e2eeDescription": "Koncové šifrovanie (End-to-End Encryption, E2EE) je momentálne EXPERIMENTÁLNE. Zapnutie koncového šifrovania znemožní použitie serverových služieb ako: nahrávanie, živé vysielanie a účasť cez telefón. Do konferencie je možné vstúpiť len s prehliadačom, ktorý podporuje vložiteľné prúdy (insertable streams).", + "e2eeLabel": "E2EE kľúč", + "e2eeNoKey": "žiadny", + "e2eeSet": "Nastaviť", + "e2eeToggleSet": "Nastaviť kľúč", + "e2eeWarning": "VAROVANIE: NIektorí účastníci nemajú podporu pre koncové šifrovanie. Ak ho zapnete, nebudú Vás vidieť ani počuť.", + "enterDisplayName": "Prosím zadajte sem vaše meno", + "error": "Chyba", + "gracefulShutdown": "Služba je momentálne vypnutá pre údržbu. Skúste to neskor.", + "grantModeratorDialog": "Chcete naozaj tohoto účastníka urobiť moderatorom?", + "grantModeratorTitle": "Urobiť moderatorom", + "incorrectPassword": "Používateľské meno alebo heslo je nesprávne", + "incorrectRoomLockPassword": "Nesprávne heslo", + "internalError": "Ups! Niečo nefunguje. Vyskytla sa nasledujúca chyba: {{error}}", + "internalErrorTitle": "Interná chyba", + "kickMessage": "Pre podrobnosti sa môžete spojiť s {{participantDisplayName}}.", + "kickParticipantButton": "Odstrániť", + "kickParticipantDialog": "Skutočne chcete odstrániť tohto účastnika?", + "kickParticipantTitle": "Odstrániť účastníka?", + "kickTitle": "{{participantDisplayName}} vás odstránil z konferencie.", + "liveStreaming": "Živé vysielanie", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Nie je možné keď je aktívne nahrávanie", + "liveStreamingDisabledForGuestTooltip": "Hostia nemôžu začať živé vysielanie.", + "liveStreamingDisabledTooltip": "Spustenie živého vysielania je zakázané.", + "lockMessage": "Zlyhanie pri pokuse o zabezpečenie konferencie.", + "lockRoom": "Pridať $t(lockRoomPassword)", + "lockTitle": "Zabezpečenie zlyhalo", + "logoutQuestion": "Ste si istý, že sa chcete odhlásiť a skončiť konferenciu?", + "logoutTitle": "Odhlásiť", + "maxUsersLimitReached": "Bol dosiahnutý maximálny počet účastníkov. Konferencia je plná. Spojte sa prosím s organizátorom konferencie, alebo to skúste neskôr.", + "maxUsersLimitReachedTitle": "Dosiahnutý maximálny počet účastníkov", + "micConstraintFailedError": "Váš mikrofón nespĺňa potrebné požiadavky.", + "micNotFoundError": "Mikrofón nebol nájdený.", + "micNotSendingData": "Choďte do nastavení vašeho počítača, aby ste odblokovali stlmenie vášho mikrofónu a upravte jeho úroveň.", + "micNotSendingDataTitle": "Mikrofón je stlmený vašimi systémovými nastaveniami.", + "micPermissionDeniedError": "Nebolo udelené oprávnenie používať mikrofón. Napriek tomu sa môže zúčastniť na konferencií, ale ostatní účastníci vás nebudú počuť. Pre pridelenie oprávnenia môžete použiť ikonu kamery na adresnej lište.", + "micUnknownError": "Mikrofón sa nedá použiť z neznámeho dôvodu.", + "muteEveryoneDialog": "Chcete naozaj všetkým vypnúť mikrofón. Keď všetkým vypnete mikrofóny, nedokážete ich späť zapnúť. Účastníci si ale môžu zapnúť mikrofóny sami.", + "muteEveryoneElseDialog": "Keď všetkým vypnete mikrofóny, nedokážete ich späť zapnúť. Účastníci si ale môžu zapnúť mikrofóny sami.", + "muteEveryoneElseTitle": "Vypnúť mikrofón všetkým okrem {{whom}}?", + "muteEveryoneSelf": "seba samého", + "muteEveryoneStartMuted": "Všetci odteraz začínajú s vypnutým mikrofónom", + "muteEveryoneTitle": "Všetkým vypnúť mikrofón?", + "muteParticipantBody": "Nedokážete zapnúť vypnuté mikrofóny ostatných účastníkov, ale každý účastník si vie sám zapnúť mikrofón.", + "muteParticipantButton": "Vypnúť mikrofón", + "muteParticipantDialog": "Chcete naozaj tomuto účastníkovi vypnúť mikrofón? Keď vypnete mikrofón, nedokážete späť zapnúť mikrofón tohto účastníka. Účastníci si ale dokážu zapnúť mikrofóny sami.", + "muteParticipantTitle": "Vypnúť účastníkovi mikrofón?", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "$t(lockRoomPasswordUppercase) nie je podporované.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nie je podporované", + "passwordRequired": "Prihlásenie", + "popupError": "Váš prehliadač blokuje vyskakovacie okná tejto stránky. Prosím aktivujte vyskakovacie okná v bezpečnostných nastaveniach vašeho prehliadača a skúste znovu.", + "popupErrorTitle": "Vyskakovacie okná sú zablokované", + "readMore": "viac", + "recording": "Nahrávanie", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Nie je možné keď je aktívny živý prenos", + "recordingDisabledForGuestTooltip": "Hostia nemôžu začať nahrávanie.", + "recordingDisabledTooltip": "Spustenie nahrávania je zakázané.", + "rejoinNow": "Pripojiť hneď", + "remoteControlAllowedMessage": "{{user}} prijal požiadavku o vzdialené ovládanie.", + "remoteControlDeniedMessage": "{{user}} odmietol požiadavku o vzdialené ovládanie.", + "remoteControlErrorMessage": "Stala sa chyba počas žiadania o vzdialené ovládanie od {{user}}", + "remoteControlRequestMessage": "Povolíte {{user}} ovládať vášu pracovnú plochu?", + "remoteControlShareScreenWarning": "Pozor, keď povolíte požiadavku budete zdielať vašu obrazovku!", + "remoteControlStopMessage": "Vzdialené ovládanie bolo ukončené.", + "remoteControlTitle": "Vzdialené ovládanie", + "removePassword": "$t(lockRoomPasswordUppercase) odstránené", + "removeSharedVideoMsg": "Naozaj chcete odstrániť zdieľané video?", + "removeSharedVideoTitle": "Odstrániť zdieľané video", + "reservationError": "Systémová chyba rezervácie", + "reservationErrorMsg": "Chyba: {{code}}, správa: {{msg}}", + "retry": "Skúsiť znovu", + "screenSharingAudio": "Zdieľať zvuk", + "screenSharingFailed": "Nie je možné spustiť zdieľanie obrazovky!", + "screenSharingFailedTitle": "Zdieľanie obrazovky zlyhalo!", + "screenSharingPermissionDeniedError": "Ups! Niečo sa nepodarilo pri žiadaní o oprávnenie zdielať obrazovku. Prosím aktualizovať a skúsiť znovu.", + "sendPrivateMessage": "Dostali ste súkromnú správu. Chceli ste na ňu odpovedať súkromne, alebo chcete poslať správu skupine?", + "sendPrivateMessageCancel": "Poslať skupine", + "sendPrivateMessageOk": "Poslať súkromne", + "sendPrivateMessageTitle": "Súkromne poslať?", + "serviceUnavailable": "Služba nedostupná", + "sessTerminated": "Volanie ukončené", + "shareVideoLinkError": "Prosím, zadajte správny odkaz.", + "shareVideoTitle": "Zdieľať video", + "shareYourScreen": "Zdielať obrazovku", + "shareYourScreenDisabled": "Zdieľanie obrazovky vypnuté.", + "shareYourScreenDisabledForGuest": "Hostia nemôžu zdielať obrazovku.", + "startLiveStreaming": "Spustiť živý prenos", + "startRecording": "Začať záznam", + "startRemoteControlErrorMessage": "Chyba pri pokuse o začatie vzdialeného ovládania!", + "stopLiveStreaming": "Zastaviť živý prenos", + "stopRecording": "Zastaviť záznam", + "stopRecordingWarning": "Chcete zastaviť záznam?", + "stopStreamingWarning": "Chcete zastaviť priamy prenos?", + "streamKey": "Kľúč živého vysielania", + "thankYou": "Ďakujeme za používanie {{appName}}!", + "token": "token", + "tokenAuthFailed": "Prepáčte, nie ste oprávnený zúčastniť tejto sa konferencie.", + "tokenAuthFailedTitle": "Overenie zlyhalo", + "transcribing": "", + "unlockRoom": "Odstrániť $t(lockRoomPassword)", + "userPassword": "heslo", + "yourEntireScreen": "Celú obrazovku" + }, + "documentSharing": { + "title": "Zdieľaný dokument" + }, + "e2ee": { + "labelToolTip": "Zvuková a obrazová komunikácia je koncovo šifrovaná" + }, + "embedMeeting": { + "title": "Vložiť toto stretnutie" + }, + "feedback": { + "average": "Priemerný", + "bad": "Zlý", + "detailsLabel": "Povedzte nám viac", + "good": "Dobrý", + "rateExperience": "Ohodnoťte dojem", + "veryBad": "Veľmi zlý", + "veryGood": "Veľmi dobrý" + }, + "helpView": { + "title": "Centrum pomoci" + }, + "incomingCall": { + "answer": "Odpovedať", + "audioCallTitle": "Prichádzajúci hovor", + "decline": "Odmietnuť", + "productLabel": "", + "videoCallTitle": "Prichádzajúci video-hovor" + }, + "info": { + "accessibilityLabel": "Zobraziť informácie", + "addPassword": "Nastaviť $t(lockRoomPassword)", + "cancelPassword": "Zrušiť $t(lockRoomPassword)", + "conferenceURL": "Odkaz:", + "country": "Krajina", + "dialANumber": "Aby ste sa zúčastnili stretnutia, zavolajte jedno z týchto čísel a zadajte pin.", + "dialInConferenceID": "", + "dialInNotSupported": "Prepáčte, volanie nie je podporované.", + "dialInNumber": "Volanie:", + "dialInSummaryError": "Chyba pri získavaná informácií o volaniach. Skúste neskôr.", + "dialInTollFree": "Bezplatné", + "genericError": "Niečo sa nepodarilo.", + "inviteLiveStream": "Kliknite túto linku {{url}}, pre zobrazenie živého vysielania z tohto stretnutia.", + "invitePhone": "Keď sa chcete pripojiť cez telefón, klikni na: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Hľadáte iné pripojovacie číslo? Pripojovacie čísla pre konferenciu: {{{url}}\n\n\n\nTaktiež pokiaľ sa telefonicky pripájate cez konferenčný celomiestnostný telefón pripojte sa bez prenosu zvuku {{silentUrl}}", + "inviteURLFirstPartGeneral": "Ste pozvaný do konferencie.", + "inviteURLFirstPartPersonal": "{{name}} vás pozýva do konferencie.\n", + "inviteURLSecondPart": "\nVstúpiť do konferencie:\n{{url}}\n", + "label": "Informácie o stretnutí", + "liveStreamURL": "Živý prenos:", + "moreNumbers": "Ďalšie telefónne čísla", + "noNumbers": "Žiadne pripojovacie telefónne čísla.", + "noPassword": "Žiadne", + "noRoom": "Nebola zadaná žiadna konferencia na pripojenie.", + "numbers": "Pripojovacie čísla", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Zdieľať", + "tooltip": "Zdieľať odkaz a informácie o vytáčaní pre toto stretnutie" + }, + "inlineDialogFailure": { + "msg": "Vyskytla sa chyba.", + "retry": "Skúsiť znovu", + "support": "Podpora", + "supportMsg": "Pokiaľ sa chyba zopakuje, spojte sa s" + }, + "inviteDialog": { + "alertText": "Nepodarilo sa pozvať niektorych účastníkov.", + "header": "Pozvať", + "searchCallOnlyPlaceholder": "Zadajte telefónne číslo", + "searchPeopleOnlyPlaceholder": "Hľadať účastníkov", + "searchPlaceholder": "Účastník alebo telefónne číslo", + "send": "Poslať" + }, + "keyboardShortcuts": { + "focusLocal": "Zamerať sa na vaše video", + "focusRemote": "Zamerať sa na video iného účastníka", + "fullScreen": "Zapnúť / Vypnúť plnú obrazovku", + "keyboardShortcuts": "Klávesové skratky", + "localRecording": "Zobraziť, alebo skryť tlačítka pre lokálne nahrávanie", + "mute": "Vypnúť alebo zapnúť mikrofón", + "pushToTalk": "Stlačiť, pre hovorenie", + "raiseHand": "Zdvihnúť alebo dať dole ruku", + "showSpeakerStats": "Zobrať štatistiky rečníka", + "toggleChat": "Zobraziť alebo skryť textové správy", + "toggleFilmstrip": "Zobraziť alebo skryť video náhľady", + "toggleScreensharing": "Prepnúť medzi kamerou a zdieľaním obrazovky", + "toggleShortcuts": "Zobraziť alebo skryť klávesové skratky", + "videoMute": "Zapnúť alebo vypnúť kameru", + "videoQuality": "Nastavenie kvality volania" + }, + "liveStreaming": { + "busy": "Chystajú sa zdroje pre vysielanie. Skúste znova za pár minút.", + "busyTitle": "Všetky vysielacie inštancie sú obsadené", + "changeSignIn": "Prepnúť konto", + "choose": "Vyberte živé vysielanie", + "chooseCTA": "Vyberte vysielaciu možnosť. Ste prihlásený ako {{email}}", + "enterStreamKey": "Zadajte meno/heslo pre YouTube vysielanie.", + "error": "Živé vysielanie zlyhalo. Prosím skúste to znovu.", + "errorAPI": "Došlo k chybe pri prístupe k vašemu YouTube vysielaniu. Prosím skúste sa znovu prihlásiť.", + "errorLiveStreamNotEnabled": "Živé vysielanie pre {{email}} nie je aktivované. Aktivujte živé vysielanie, alebo sa prihláste pomocou konta s aktivovaným živým vysielaním.", + "expandedOff": "Živé vysielanie bolo zastavené", + "expandedOn": "Stretnutie je momentálne vysielané na YouTube.", + "expandedPending": "Spúšťa živé vysielanie…", + "failedToStart": "Nepodarilo sa spustiť živé vysielanie", + "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", + "onBy": "{{name}} začal živé vysielanie", + "pending": "Spúšťa sa živé vysielanie…", + "serviceName": "Služba pre živé vysielanie", + "signIn": "Prihlásiť sa pomocou Google", + "signInCTA": "Prihláste sa, alebo zadajte váš YouTube klúč pre živé vysielanie.", + "signOut": "Odhlásiť", + "signedInAs": "Ste prihlásený ako:", + "start": "Začať živé vysielanie", + "streamIdHelp": "Čo je to?", + "title": "Živé vysielanie", + "unavailableTitle": "Živé vysielanie nie je k dispozícií", + "youtubeTerms": "Podmienky poskytovania služby YouTube" + }, + "lobby": { + "allow": "Povoliť", + "backToKnockModeButton": "Žiadne heslo, požiadať o vstup", + "dialogTitle": "Čakáreň", + "disableDialogContent": "Čakáreň je zapnutá. Táto funkcia zabezpečuje, že do konferencie nemôžu vstúpiť neželaní účastníci. Chcete ju vypnúť?", + "disableDialogSubmit": "Vypnúť", + "emailField": "Zadajte vašu emailovú adresu", + "enableDialogPasswordField": "Nastaviť heslo (voliteľné)", + "enableDialogSubmit": "Zapnúť", + "enableDialogText": "Čakáreň umožňuje zabezpečiť konferenciu tým, že účastníci môžu do konferencie vstúpiť len po schválení moderátorom.", + "enterPasswordButton": "Zadať heslo do konferencie", + "enterPasswordTitle": "Zadajte heslo pre vstup do konferencie", + "invalidPassword": "Nesprávne heslo", + "joinRejectedMessage": "Vaša žiadosť bola zamietnutá moderátorom.", + "joinTitle": "Vstup do konferencie", + "joinWithPasswordMessage": "Vstupujem s heslom…", + "joiningMessage": "Vstúpite do konferencie, keď niekto schváli vašu žiadosť", + "joiningTitle": "Žiadam o vstup do konferencie…", + "joiningWithPasswordTitle": "Vstupujem s heslom…", + "knockButton": "Požiadať o vstup", + "knockTitle": "Niekto žiada o vstup do konferencie", + "knockingParticipantList": "Zoznam čakajúcich účastníkov", + "nameField": "Zadajte vaše meno", + "notificationLobbyAccessDenied": "Žiadosť {{targetParticipantName}} o vstup bola zamietnutá účastníkom {{originParticipantName}}", + "notificationLobbyAccessGranted": "Žiadosť {{targetParticipantName}} o vstup bola povolená účastníkom {{originParticipantName}}", + "notificationLobbyDisabled": "Účastník {{originParticipantName}} vypol čakáreň", + "notificationLobbyEnabled": "Účastník {{originParticipantName}} zapol čakáreň", + "notificationTitle": "Čakáreň", + "passwordField": "Zadajte heslo do konferencie", + "passwordJoinButton": "Vstúpiť", + "title": "Čakáreň", + "toggleLabel": "Zapnúť čakáreň" + }, + "localRecording": { + "clientState": { + "off": "Vypnutý", + "on": "Zapnutý", + "unknown": "Neznámy" + }, + "dialogTitle": "Ovládacie prvky lokálneho nahrávania", + "duration": "Dĺžka", + "durationNA": "neznáma", + "encoding": "Kódovanie", + "label": "", + "labelToolTip": "Lokálne nahrávanie je aktivovaný", + "localRecording": "Lokálne nahrávanie", + "me": "Ja", + "messages": { + "engaged": "Lokálne nahrávanie je spustené", + "finished": "Nahrávanie sedenia {{token}} je ukončené. Prosím pošlite nahratý súbor moderátorovi.", + "finishedModerator": "Nahrávanie sedenia {{token}} je ukončené. Bola uložená nahrávka lokálnej stopy. Poproste ostatných účastníkov, aby vám poslali ich nahrávky.", + "notModerator": "Nie ste moderátor. Nemôže začať, alebo skončiť lokálne nahrávanie." + }, + "moderator": "Moderátor", + "no": "Nie", + "participant": "Účastník", + "participantStats": "Štatistiky účastníkov", + "sessionToken": "Token sedenia", + "start": "Zapnúť nahrávanie", + "stop": "Vypnúť nahrávanie", + "yes": "Áno" + }, + "lockRoomPassword": "heslo", + "lockRoomPasswordUppercase": "Heslo", + "lonelyMeetingExperience": { + "button": "Pozvať ďalších", + "youAreAlone": "Ste sám v tejto konferencii" + }, + "me": "ja", + "notify": { + "OldElectronAPPTitle": "Bezpečnostná hrozba!", + "connectedOneMember": "{{name}} sa pripojil", + "connectedThreePlusMembers": "{{name}} a {{count}} ďalších osôb sa pripojilo", + "connectedTwoMembers": "{{first}} a {{second}} sa pripojili", + "disconnected": "odpojený", + "focus": "Konferenčný focus", + "focusFail": "{{component}} je nedostupný - skúste znova za {{ms}} sek", + "grantedTo": "Práva moderátora boli udelené {{to}}!", + "invitedOneMember": "{{displayName}} bol pozvaný", + "invitedThreePlusMembers": "{{name}} a {{count}} ďalší boli pozvaní", + "invitedTwoMembers": "{{first}} a {{second}} boli pozvaní", + "kickParticipant": "{{kicked}} bol odstránený účastníkom {{kicker}}", + "me": "Ja", + "moderator": "Boli vám udelené práva moderátora!", + "muted": "Začali ste rozhovor s vypnutým mikrofónom.", + "mutedRemotelyDescription": "Kedykoľvek môžete stíšenie zrušiť, keď ste prichystaný rozprávať. Keď skončite môžete sa znova stíšiť, aby ste znížili hluk na stretnutí.", + "mutedRemotelyTitle": "{{participantDisplayName}} vám vypol mikrofón", + "mutedTitle": "Boli ste stíšený!", + "newDeviceAction": "Použiť", + "newDeviceAudioTitle": "Bolo zistené nové audio zariadenie", + "newDeviceCameraTitle": "Bola zistená nová kamera", + "oldElectronClientDescription1": "Používate starú verziu klienta Jitsi Meet, ktorá má známe zraniteľnosti. Aktualizujte na ", + "oldElectronClientDescription2": "najnovšiu verziu", + "oldElectronClientDescription3": " teraz!", + "passwordRemovedRemotely": "Iný účastník odstránil $t(lockRoomPassword)", + "passwordSetRemotely": "Iný účastník nastavil $t(lockRoomPassword)", + "raisedHand": "{{name}} chce hovoriť", + "somebody": "Niekto", + "startSilentDescription": "Pripojte sa k stretnutiu ešte raz, aby ste aktivovali zvuk.", + "startSilentTitle": "Pripojili ste sa bez zvukového výstupu!", + "suboptimalBrowserWarning": "Obávame sa, že dojem z tohto stretnutia nebude až taký dobrý. Hladáme spôsob ako to zlepšiť, ale dovtedy prosím skúste jeden z plne podporovaných prehliadačov.", + "suboptimalExperienceTitle": "Prehliadačové varovanie", + "unmute": "Zapnúť mikrofón" + }, + "participantsPane": { + "actions": { + "reject": "Odmietnuť" + } + }, + "passwordDigitsOnly": "až {{number}} číslic", + "passwordSetRemotely": "nastavené iným účastníkom", + "polls": { + "errors": { + "notUniqueOption": "Možnosti musia byť jedinečné" + } + }, + "poweredby": "založené na", + "prejoin": { + "audioAndVideoError": "Chyba zvuku a videa:", + "audioOnlyError": "Chyba zvuku:", + "audioTrackError": "Nemôžem vytvoriť zvukovú stopu.", + "callMe": "Zavolať mi", + "callMeAtNumber": "Zavolajte mi na toto číslo:", + "calling": "Volanie", + "configuringDevices": "Konfigurácia zariedení…", + "connectedWithAudioQ": "Ste pripojení so zvukom?", + "copyAndShare": "Kopírovať a zdieľať odkaz", + "dialInMeeting": "Volanie dnu do konferencie", + "dialInPin": "Volajte dnu do konferencie a zadajte PIN kód:", + "dialing": "Vytáčanie", + "doNotShow": "Viac nezobrazovať", + "errorDialOut": "Nemôžem volať von", + "errorDialOutDisconnected": "Nemôžem volať von. Odpojené", + "errorDialOutFailed": "Nemôžem volať von. Volanie zlyhalo", + "errorDialOutStatus": "Chyba pri získavaní stavu volania", + "errorStatusCode": "Chyba volania von, kód: {{status}}", + "errorValidation": "Overenie čísla zlyhalo", + "iWantToDialIn": "Chcem volať dnu", + "initiated": "Hovor začatý", + "joinAudioByPhone": "Vstúpiť so zvukom cez telefón", + "joinMeeting": "Vstúpiť do konferencie", + "joinWithoutAudio": "Vstúpiť bez zvuku", + "linkCopied": "Odkaz skopírovaný do schránky", + "lookGood": "Váš mikrofón funguje správne", + "or": "alebo", + "screenSharingError": "Chyba pri zdieľaní obrazovky:", + "startWithPhone": "Začať so zvukom cez telefón", + "videoOnlyError": "Chyba videa:", + "videoTrackError": "Nemôžem vytvoriť video stopu.", + "viewAllNumbers": "zobraziť všetky čísla" + }, + "presenceStatus": { + "busy": "Obsadený", + "calling": "Je volaný", + "connected": "Pripojený", + "connecting": "Pripájam", + "connecting2": "Pripájam", + "disconnected": "Odpojený", + "expired": "Vypršaní", + "ignored": "Ignorovaný", + "initializingCall": "Volanie je inicializované…", + "invited": "Pozvať", + "rejected": "Zložiť", + "ringing": "Zvoní…" + }, + "profile": { + "setDisplayNameLabel": "Nastavte si meno", + "setEmailInput": "Zadajte email", + "setEmailLabel": "Nastavte si email vašeho gravataru", + "title": "Profil" + }, + "raisedHand": "Chcel by som hovoriť", + "recording": { + "authDropboxText": "Nahrať na Dropbox", + "availableSpace": "Dostupná kapacita {{spaceLeft}} MB (ca. {{duration}} minút nahrávania)", + "beta": "BETA", + "busy": "Pripravujú sa prostriedky na nahrávanie. Skúste znova o pár minút.", + "busyTitle": "Všetky nahrávacie inštancie sú obsadené", + "error": "Nahrávka sa nepodarila. Skúste prosím znovu.", + "expandedOff": "Nahrávanie bolo zastavené", + "expandedOn": "Stretnutie sa momentálne nahráva.", + "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é", + "offBy": "{{name}} zastavil nahrávanie", + "on": "Nahrávanie", + "onBy": "{{name}} začal nahrávanie", + "pending": "Pripravuje sa nahrávanie stretnutia…", + "rec": "REC", + "serviceDescription": "Vaša nahrávka sa ukladá nahrávacou službou", + "serviceName": "Nahrávacia služba", + "signIn": "Prihlásiť", + "signOut": "Odhlásiť", + "title": "Nahrávanie", + "unavailable": "Oh! Služba {{serviceName}} nie je dostupná. Pracujeme na riešeni problému. Skúste prosím neskôr.", + "unavailableTitle": "Nahrávanie nie je dostupné" + }, + "sectionList": { + "pullToRefresh": "Potiahnuť pre aktualizáciu" + }, + "security": { + "about": "Môžete nastaviť $t(lockRoomPassword) pre konferenciu. Účastníci budú musieť zadať $t(lockRoomPassword), aby mohli vstúpiť.", + "aboutReadOnly": "Moderátor može nastaviť $t(lockRoomPassword) pre konferenciu. Účastníci budú musieť zadať $t(lockRoomPassword), aby mohli vstúpiť.", + "insecureRoomNameWarning": "Názov konferencie nie je bezpečný. Môžu do nej vstúpiť neželaní účastníci. Zvážte zabezpečenie konferencie tlačidlom.", + "securityOptions": "Nastavenie zabezpečenia" + }, + "settings": { + "calendar": { + "about": "Používa sa kalendárová integrácia {{appName}} pre zabezpečený prístup ku vašemu kalendáru.", + "disconnect": "Odpojený", + "microsoftSignIn": "Prihlásiť pomocou Microsoft", + "signedIn": "Momentálne sa pristupuje na kalendárové udalosti pre {{email}}. Stlačte tlačidlo „Odpojiť“ pre prerušenie spojenia ku kalendárovým udalostiam.", + "title": "Kalendár" + }, + "devices": "Zariadenia", + "followMe": "Všetci sledujú mňa", + "language": "Jazyk", + "loggedIn": "Prihlásený ako {{name}}", + "microphones": "Mikrofóny", + "moderator": "Moderátor", + "more": "Viac", + "name": "Meno", + "noDevice": "Žiadne zariadenie", + "selectAudioOutput": "Zvukový výstup", + "selectCamera": "Kamera", + "selectMic": "Mikrofón", + "speakers": "Reproduktory", + "startAudioMuted": "Pri pripojení všetkým stlmiť zvuk", + "startVideoMuted": "Pri pripojení všetkým vypnúť video", + "title": "Nastavenia" + }, + "settingsView": { + "advanced": "Rozšírené", + "alertCancel": "Zrušiť", + "alertOk": "OK", + "alertTitle": "Upozornenie", + "alertURLText": "Zadaná serverová URL je neplatná", + "buildInfoSection": "informácie o kompilácií", + "conferenceSection": "Konferencia", + "disableCallIntegration": "Deaktivovať integráciu s natívnymi volaniami", + "disableCrashReporting": "Vypnúť oznamovanie pádov", + "disableCrashReportingWarning": "Naozak chcete vypnúť oznamovanie pádov? Nastavenie bude aktívne po reštartovaní aplikácie.", + "disableP2P": "Deaktivovať mód s koncovými zariadeniami", + "displayName": "Ukázať", + "email": "Email", + "header": "Nastavenia", + "profileSection": "Profil", + "serverURL": "Adresa URL servera", + "showAdvanced": "Ukázať rozšírené nastavenia", + "startWithAudioMuted": "Začať so stlmeným zvukom", + "startWithVideoMuted": "Začať so vypnutým videom", + "version": "Verzia" + }, + "share": { + "dialInfoText": "\n\n=====\n\n Chcete ma zavolať na Vašom telefóne?\n\n{{{defaultDialInNumber}}}Kliknite na nasledujúci odkaz, aby ste videli vybrané telefónne čislo na stretnutí\n{{dialInfoPageUrl}}", + "mainText": "Kliknite na nasledujúci odkaz, aby ste sa pripojili na stretnutie:\n{{roomUrl}}" + }, + "speaker": "Rečník", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Meno", + "search": "Hľadať", + "searchHint": "Vyhľadajte účastníkov", + "seconds": "{{count}}s", + "speakerStats": "Štatistiky rečníka", + "speakerTime": "Čas rečníka" + }, + "startupoverlay": { + "policyText": "", + "title": "{{app}} potrebuje prístup k vašemu mikrofónu a kamere." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Znovu pripojiť", + "text": "Stlačte tlačidlo Znovu pripojiť na opätovné spojenie.", + "title": "Konferencia sa prerušila lebo váš počítač bol uspaný." + }, + "toolbar": { + "Settings": "Nastavenia", + "accessibilityLabel": { + "Settings": "Nastavenia zapnúť/vypnúť", + "audioOnly": "Zapnúť/vypnúť iba zvukový prenos", + "audioRoute": "Vybrať zvukové zariadenie", + "callQuality": "Spravovať kvalitu videa", + "cc": "Zapnúť/vypnúť titulky", + "chat": "Zapnúť/vypnúť textovú diskusiu", + "document": "Zatvoriť zdielaný dokument", + "download": "Stiahnuť našu aplikáciu", + "e2ee": "Koncové šifrovanie", + "feedback": "Zanechať spätnú väzbu", + "fullScreen": "Zapnúť/vypnúť zobrazenie na celú obrazovku", + "grantModerator": "Urobiť moderátorom", + "hangup": "Ukončiť volanie", + "help": "Pomoc", + "invite": "Pozvať účastníka", + "kick": "Odstrániť účastníka", + "lobbyButton": "Zapnúť/vypnúť čakáreň", + "localRecording": "Zapnúť/vypnúť ovládanie lokálneho nahrávania", + "lockRoom": "Zapnúť/vypnúť heslo", + "moreActions": "Menu „Ďalšie akcie“ zapnúť/vypnúť", + "moreActionsMenu": "Menu „Ďalšie akcie“", + "moreOptions": "Zobraz viac možností", + "mute": "„mikrofón stlmiť“ zapnúť/vypnúť", + "muteEveryone": "Všetkých stlmiť", + "pip": "Zapnuť/vypnuť mód obraz-v-obraze", + "privateMessage": "Poslať súkromnú správu", + "profile": "Upraviť profil", + "raiseHand": "„Ohlásiť sa“ zapnúť/vypnúť", + "recording": "Nahrávanie zapnúť/vypnúť", + "remoteMute": "Účastníka stlmiť", + "security": "Nastavenie zabezpečenia", + "shareRoom": "Pozvať osobu", + "shareYourScreen": "Zdieľanie obrazovky zapnúť/vypnúť", + "sharedvideo": "Zdieľanie videa zapnúť/vypnúť", + "shortcuts": "Klávesové skratky zobraziť/skryť", + "show": "V popredí zobraziť", + "speakerStats": "Štatistiky rečníka zobraziť/skryť", + "tileView": "Prepnúť dlaždicové zobrazenie", + "toggleCamera": "Zmeniť kameru", + "toggleFilmstrip": "Zapnúť/vypnúť video náhľady", + "videoblur": "Rozmazanie pozadia zapnúť/vypnúť", + "videomute": "„Video odpojiť“ zapnúť/vypnúť" + }, + "addPeople": "Pridať účastníka do konferencie", + "audioOnlyOff": "Mód „Iba zvuk“ deaktivovať", + "audioOnlyOn": "Mód „Iba zvuk“ aktivovať", + "audioRoute": "Vybrať zvukové zariadenie", + "authenticate": "Autentifikácia", + "callQuality": "Spravovať kvalitu videa", + "chat": "Otvoriť / Zatvoriť chat", + "closeChat": "Chat zatvoriť", + "documentClose": "Zatvoriť zdieľaný dokument", + "documentOpen": "Otvoriť zdieľaný dokument", + "download": "Stiahnuť našu aplikáciu", + "e2ee": "Koncové šifrovanie", + "enterFullScreen": "Zobraziť na celú obrazovku", + "enterTileView": "Dlaždicové zobrazenie", + "exitFullScreen": "Opustiť celú obrazovku", + "exitTileView": "Zrušiť dlaždicové zobrazenie", + "feedback": "Nechať spätnú väzbu", + "hangup": "Odísť", + "help": "Pomoc", + "invite": "Pozvať ľudí", + "lobbyButtonDisable": "Vypnúť čakáreň", + "lobbyButtonEnable": "Zapnúť čakáreň", + "login": "Prihlásiť", + "logout": "Odhlásiť", + "lowerYourHand": "Dať dole ruku", + "moreActions": "Viac akcií", + "moreOptions": "Viac možností", + "mute": "Vypnúť / Zapnúť mikrofón", + "muteEveryone": "Všetkých stlmiť", + "noAudioSignalDesc": "Pokiaľ ste zámerne nestlmili váš mikrofón v systémových nastaveniach alebo hardvéri, pouvažujte nad prepnutím zariadenia.", + "noAudioSignalDescSuggestion": "Pokiaľ ste zámerne nestlmili váš mikrofón v systémových nastaveniach alebo hardvéri, pouvažujte nad prepnutím na odporúčané zariadenie.", + "noAudioSignalDialInDesc": "Môže zavolať pomocou:", + "noAudioSignalDialInLinkDesc": "Pripojovacie telefónne čísla", + "noAudioSignalTitle": "Neprichádza žiaden vstup z vašeho mikrofónu!", + "noisyAudioInputDesc": "Vyzerá, že váš mikrofón je zašumený, skúste ho vypnuť, alebo zmeňte zariadenie.", + "noisyAudioInputTitle": "Váš mikrofón vyzerá byť zašumený!", + "openChat": "Otvoriť chat", + "pip": "Zapnuť obraz-v-obraze", + "privateMessage": "Poslať súkromnú správu", + "profile": "Úprava profilu", + "raiseHand": "Prihlásiť / Odhlásiť sa o slovo", + "raiseYourHand": "Prihlásiť sa o slovo", + "security": "Nastavenie zabezpečenia", + "selectBackground": "Vybrať pozadie", + "shareRoom": "Pozvať niekoho", + "sharedvideo": "Zdielať video", + "shortcuts": "Ukázať klávesové skratky", + "speakerStats": "Štatistiky rečníka", + "startScreenSharing": "Začať zdieľanie obrazovky", + "startSubtitles": "Začať titulky", + "startvideoblur": "Rozmazať pozadie", + "stopScreenSharing": "Ukončiť zdieľanie obrazovky", + "stopSharedVideo": "Ukončiť zdielané video", + "stopSubtitles": "Ukončiť titulky", + "stopvideoblur": "Ukončiť rozmazanie pozadia", + "talkWhileMutedPopup": "Skúšate hovoriť? Ste stlmený.", + "tileViewToggle": "Prepnúť dlaždicové zobrazenie", + "toggleCamera": "Zmeniť kameru", + "videomute": "Vypnúť / Zapnúť kameru" + }, + "transcribing": { + "ccButtonTooltip": "titulky vypnuť/zapnúť", + "error": "Prepisovanie zlyhalo. Skúsiť znovu.", + "expandedLabel": "Prepisovanie je zapnuté", + "failedToStart": "Prepisovanie sa nepodarilo naštartovať", + "labelToolTip": "Stretnutie je prepisované", + "off": "Prepisovanie sa skončilo", + "pending": "Pripravuje sa prepisovanie stretnutia…", + "start": "Začni zobrazovať titulky", + "stop": "Skonči zobrazovať titulky", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Prosím povoľte prístup k vašemu mikrofónu a kamere." + }, + "videoSIPGW": { + "busy": "Všetky zdroje sú obsadené, skúste znovu o pár minút.", + "busyTitle": "Služba je obsadená", + "errorAlreadyInvited": "{{displayName}} už bol pozvaný", + "errorInvite": "Konferencia sa ešte nezačala, skúste neskôr.", + "errorInviteFailed": "Skúste znovu neskôr.", + "errorInviteFailedTitle": "Pozývanie {{displayName}} zlyhalo", + "errorInviteTitle": "Chyba pozývania", + "pending": "{{displayName}} bol pozvaný" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Ste v móde s nízkou prenosovou kapacitou. V tomto móde budete prijímať iba zvuk a zdielanú obrazovku.", + "callQuality": "Nastavenie kvality hovoru", + "hd": "HD", + "hdTooltip": "Sledujete obraz vo vysokej kvalite", + "highDefinition": "Vysoká kvalita", + "labelTooiltipNoVideo": "Žiadne video", + "labelTooltipAudioOnly": "Mód s nízkou prenosovou kapacitou je zapnutý", + "ld": "LD", + "ldTooltip": "Sledujete obraz v nízkej kvalite", + "lowDefinition": "Nízka kvalita", + "onlyAudioAvailable": "Iba zvuk je k dispozícií", + "onlyAudioSupported": "Na vašom prehliadači podporujeme iba zvuk.", + "sd": "SD", + "sdTooltip": "Sledujete obraz v štandardnej kvalite", + "standardDefinition": "Štandardná kvalita" + }, + "videothumbnail": { + "domute": "Vypnúť mikrofón", + "domuteOthers": "Vypnúť mikrofóny ostatným", + "domuteVideoOfOthers": "Vypnúť kamery ostatným", + "flip": "Prevrátiť", + "grantModerator": "Urobiť moderátorom", + "kick": "Odstrániť", + "moderator": "Moderátor", + "mute": "Účastník s vypnutým mikrofónom", + "muted": "Vypnutý mikrofón", + "remoteControl": "Vzdialené ovládanie", + "show": "Ukázať v popredí", + "videoMuted": "Vypnutá kamera", + "videomute": "Účastník vypol kameru" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Kliknúť pre pripojenie", + "roomname": "Zadajte názov miestnosti" + }, + "appDescription": "Poďte na to, videokonferencie v rámci celého tímu. Do konferencie môžete pozvať kohokoľvek. Všetka komunikácia cez aplikáciu {{app}} je plne šifrovaná, 100% open source zaisťuje, že aplikáciu môžete využívať bez obmedzenia a navyše sa nemusíte ani registrovať.", + "audioVideoSwitch": { + "audio": "Zvuk", + "video": "Video" + }, + "calendar": "Kalendár", + "connectCalendarButton": "Pripojte váš kalendár", + "connectCalendarText": "", + "enterRoomTitle": "Začať nové stretnutie", + "getHelp": "Získať pomoc", + "go": "Začať", + "goSmall": "Začať", + "info": "Info", + "join": "Pripojiť", + "moderatedMessage": "Alebo si rezervujte vopred URL pre konferenciu, kde budete jediný moderátor.", + "privacy": "Súkromie", + "recentList": "Posledné", + "recentListDelete": "Vymazať", + "recentListEmpty": "Váš zoznam posledných hovorov je prázdny. Spojte sa s kolegami z Vášho tímu a potom tu nájdete všetky vaše stretnutia.", + "reducedUIText": "Vitajte v {{app}}!", + "roomNameAllowedChars": "Názov miestnosti by nemal obsahovať žiaden z týchto znakov: ?, &, :, ', \", %, #.", + "roomname": "Zadajte názov miestnosti", + "roomnameHint": "Zadajte názov alebo URL odkaz miestnosti ku ktorej sa chcete pripojiť. Názov si môžete vymyslieť - dajte ho vedieť ostatným účastníkom konferencie, ktorí ho sem zadajú.", + "sendFeedback": "Odoslať spätnú väzbu", + "terms": "Podmienky používania", + "title": "Zabezpečené, plnohodnotné a úplne bezplatné videokonferencie" + } +} diff --git a/lang/main-sl.json b/lang/main-sl.json new file mode 100644 index 0000000..fb9aa76 --- /dev/null +++ b/lang/main-sl.json @@ -0,0 +1,1167 @@ +{ + "addPeople": { + "add": "Povabi", + "addContacts": "Povabi svoje kontakte", + "contacts": "kontakti", + "copyInvite": "Kopiraj povabilo za sestanek", + "copyLink": "Kopiraj povezavo sestanka", + "copyStream": "Kopiraj povezavo do prenosa v živo", + "countryNotSupported": "Te države še ne podpiramo.", + "countryReminder": "Kličete izven ZDA? Ne pozabite vnesti klicne predpone!", + "defaultEmail": "Vaš privzeti e-naslov", + "disabled": "Ne morete povabiti drugih.", + "failedToAdd": "Ni bilo mogoče dodati udeležencev", + "footerText": "Klicanje navzven je onemogočeno.", + "googleEmail": "Google e-naslov", + "inviteMoreHeader": "Sami ste v sestanku", + "inviteMoreMailSubject": "Pridruži se {{appName}} sestanku", + "inviteMorePrompt": "Povabi več ljudi", + "linkCopied": "Povezava kopirana v odložišče", + "noResults": "Ni bilo mogoče najti ustreznih rezultatov", + "outlookEmail": "Outlook e-naslov", + "phoneNumbers": "telefonske številke", + "searching": "Iskanje…", + "shareInvite": "Deli povabilo za sestanek", + "shareLink": "Deli povezavo sestanka za povabljanje drugih", + "shareStream": "Deli povezavo do prenosa v živo", + "sipAddresses": "naslovi sip", + "telephone": "Telefon: {{number}}", + "title": "Povabite osebe na srečanje", + "yahooEmail": "Yahoo e-naslov" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "slušalke", + "none": "Nobena avdio naprava ni na voljo", + "phone": "telefon", + "speaker": "zvočnik" + }, + "audioOnly": { + "audioOnly": "Samo glas (nizka pasovna širina)" + }, + "calendarSync": { + "addMeetingURL": "Dodaj povezavo na srečanje", + "confirmAddLink": "Ali želite dodati Jitsi povezavo za ta dogodek?", + "error": { + "appConfiguration": "Integracija koledarja ni pravilno nastavljena.", + "generic": "Prišlo je do napake. Prosimo preverite nastavitve svojega koledarja ali poskusite koledar osvežiti.", + "notSignedIn": "Prišlo je do napake pri dostopu do koledarja. Prosimo preverite nastavitve koledarja in se poskusite ponovno prijaviti." + }, + "join": "Pridruži se", + "joinTooltip": "Pridruži se srečanju", + "nextMeeting": "Naslednje srečanje", + "noEvents": "V kratkem ni načrtovan noben dogodek.", + "ongoingMeeting": "Aktivna srečanja", + "permissionButton": "Odpri nastavitve", + "permissionMessage": "Če želite svoja srečanja videti v aplikaciji, morate najprej dati dovoljenje za Koledar.", + "refresh": "Osveži koledar", + "today": "Danes" + }, + "chat": { + "enter": "Vstopi v sobo", + "error": "Napaka: vaše sporočilo ni bilo poslano. Razlog: {{error}}", + "fieldPlaceHolder": "Tukaj vnesite sporočilo", + "message": "Sporočilo", + "messageAccessibleTitle": "{{user}} pravi:", + "messageAccessibleTitleMe": "Jaz pravim:", + "messageTo": "Zasebno sporočilo za uporabnika {{recipient}}", + "messagebox": "Vnesite sporočilo", + "nickname": { + "popover": "Izberite svoje ime", + "title": "Vnesite ime, ki ga želite uporabljati na srečanju", + "titleWithPolls": "Vnesite ime, ki ga želite uporabljati na srečanju" + }, + "noMessagesMessage": "V sestanku še ni sporočilo. Tukaj začnite pogovor!", + "privateNotice": "Zasebno sporočilo za uporabnika {{recipient}}", + "sendButton": "Pošlji", + "smileysPanel": "Čustvenčki", + "tabs": { + "chat": "Klepet", + "polls": "Ankete" + }, + "title": "Klepet", + "titleWithPolls": "Klepet", + "you": "vi" + }, + "chromeExtensionBanner": { + "buttonText": "Namestite vtičnik Chrome", + "close": "Zapri", + "dontShowAgain": "Tega mi ne pokaži več", + "installExtensionText": "Install the extension for Google Calendar and Office 365 integration" + }, + "connectingOverlay": { + "joiningRoom": "Povezovanje v sobo, kjer poteka srečanje…" + }, + "connection": { + "ATTACHED": "Priključeno", + "AUTHENTICATING": "Overjanje", + "AUTHFAIL": "Overitev je spodletela", + "CONNECTED": "Povezano", + "CONNECTING": "Povezovanje", + "CONNFAIL": "Povezovanje je spodletelo", + "DISCONNECTED": "Ni povezave", + "DISCONNECTING": "Prekinjanje povezave", + "ERROR": "Napaka", + "FETCH_SESSION_ID": "Pridobivanje ID-ja seje…", + "GET_SESSION_ID_ERROR": "Napaka pri pridobivanju ID-ja seje: {{code}}", + "GOT_SESSION_ID": "Pridobivanje ID-ja seje… dokončano", + "LOW_BANDWIDTH": "Zaradi manjše porabe pasovne širine omrežja je bil video za uporabnika {{displayName}} izključen" + }, + "connectionindicator": { + "address": "Naslov:", + "audio_ssrc": "Avdio SSRC:", + "bandwidth": "Ocenjena pasovna širina:", + "bitrate": "Bitna hitrost:", + "bridgeCount": "Število strežnikov: ", + "codecs": "Kodeki (A/V): ", + "connectedTo": "Povezan v:", + "framerate": "Frekvenca slik:", + "less": "Prikaži manj", + "localaddress": "Lokalni naslov:", + "localaddress_plural": "Lokalni naslovi:", + "localport": "Lokalna vrata:", + "localport_plural": "Lokalna vrata:", + "maxEnabledResolution": "pošlji najvišjo resolucijo", + "more": "Prikaži več", + "packetloss": "Izguba podatkovnih paketkov:", + "participant_id": "Id udeleženca:", + "quality": { + "good": "Dobro", + "inactive": "Neaktiven", + "lost": "Izgubljeni", + "nonoptimal": "Neoptimalno", + "poor": "Slabo" + }, + "remoteaddress": "Oddaljeni naslov:", + "remoteaddress_plural": "Oddaljeni naslovi:", + "remoteport": "Oddaljena vrata:", + "remoteport_plural": "Oddaljena vrata:", + "resolution": "Ločljivost:", + "savelogs": "Shrani zapise", + "status": "Povezava:", + "transport": "Prenos:", + "transport_plural": "Prenosi:", + "video_ssrc": "Video SSRC:" + }, + "dateUtils": { + "earlier": "Prej", + "today": "Danes", + "yesterday": "Včeraj" + }, + "deepLinking": { + "appNotInstalled": "Če se želite na srečanje povezati s telefonom, potrebujete mobilno aplikacijo {{app}}.", + "description": "Se ni nič zgodilo? Na vaše srečanje smo se skušali povezati z namizno aplikacijo {{app}}. Prosimo poskusite ponovno ali zaženite spletno aplikacijo {{app}}.", + "descriptionWithoutWeb": "Se ni nič zgodilo? Na vaše srečanje smo se skušali povezati z namizno aplikacijo {{app}}.", + "downloadApp": "Prenesi aplikacijo", + "ifDoNotHaveApp": "Če še nimate aplikacije:", + "ifHaveApp": "Če že imate aplikacijo:", + "joinInApp": "Pridruži se sestanku z aplikacijo", + "launchWebButton": "Zaženi na spletu", + "title": "Povezovanje na vaše srečanje v {{app}}…", + "tryAgainButton": "Poskusite ponovno na namizju" + }, + "defaultLink": "npr. {{url}}", + "defaultNickname": "npr. Janez Novak", + "deviceError": { + "cameraError": "Ni mogoče dostopati do kamere", + "cameraPermission": "Ni mogoče pridobiti pravic za dostop do kamere", + "microphoneError": "Ni mogoče dostopati do mikrofona", + "microphonePermission": "Ni mogoče pridobiti pravic za dostop do mikrofona" + }, + "deviceSelection": { + "noPermission": "Brez pravic", + "previewUnavailable": "Predogled ni mogoč", + "selectADevice": "Izberite napravo", + "testAudio": "Predvajaj testni zvok" + }, + "dialOut": { + "statusMessage": "je sedaj {{status}}" + }, + "dialog": { + "Back": "Nazaj", + "Cancel": "Prekliči", + "IamHost": "Jaz sem gostitelj", + "Ok": "OK", + "Remove": "Odstrani", + "Share": "Deli", + "Submit": "Pošlji", + "WaitForHostMsg": "Konferenca v sobi se še ni začela. Če ste gostitelj, se prosimo prijavite, sicer pa počakajte na gostitelja srečanja.", + "WaitingForHostTitle": "Čakanje gostitelja…", + "Yes": "Da", + "accessibilityLabel": { + "liveStreaming": "Prenos v živo" + }, + "add": "Dodaj", + "allow": "dovoli", + "alreadySharedVideoMsg": "Trenutno že nek drug udeleženec deli svoj zaslon. Ta konferenca omogoča samo eno deljenje videa v danem trenutku.", + "alreadySharedVideoTitle": "V danem trenutku je mogoče deliti samo en video", + "applicationWindow": "Okno aplikacije", + "authenticationRequired": "Potrebna avtentikacija", + "cameraConstraintFailedError": "Vaša kamera ne zadošča zahtevam.", + "cameraNotFoundError": "Ni bilo mogoče najti kamere.", + "cameraNotSendingData": "Ni mogoče dostopati do vaše kamere. Prosimo preverite, ali kamero uporablja kakšna druga aplikacija, izberite drugo kamero (če jo imate) ali osvežite to aplikacijo.", + "cameraNotSendingDataTitle": "Ni bilo mogoče dostopati do kamere", + "cameraPermissionDeniedError": "Niste dali dovoljenja za uporabo kamere. Srečanju se še vedno lahko pridružite, vendar vas ostali ne bodo videli. Dovoljenja za dostop do kamere lahko nastavite v naslovni vrstici brskalnika.", + "cameraTimeoutError": "Videa ni bilo mogoče začeti. Časovna omejitev presežena.", + "cameraUnknownError": "Kamere ni mogoče uporabiti zaradi neznanega razloga.", + "cameraUnsupportedResolutionError": "Vaša kamera ne podpira zahtevane video ločljivosti.", + "close": "Zapri", + "conferenceDisconnectMsg": "Imate morda težave z omrežno povezljivostjo? Poskus ponovne povezave čez {{seconds}} s…", + "conferenceDisconnectTitle": "Povezava je bila prekinjena.", + "conferenceReloadMsg": "Težavo skušamo odpraviti. Poskus ponovne povezave čez {{seconds}} s…", + "conferenceReloadTitle": "Nekaj je šlo žal narobe.", + "confirm": "Potrdi", + "confirmNo": "Ne", + "confirmYes": "Da", + "connectError": "Ups! Nekaj je narobe in se zato ni bilo mogoče povezati s konferenco.", + "connectErrorWithMsg": "Ups! Nekaj je narobe in se zato ni bilo mogoče povezati s konferenco: {{msg}}", + "connecting": "Povezovanje", + "contactSupport": "Stopite v stik s podporo", + "copied": "Kopirano", + "copy": "Kopiraj URL", + "dismiss": "Prekliči", + "displayNameRequired": "Pozdravljeni! Kako vam je ime?", + "done": "Končano", + "e2eeDescription": "Enkripcija je trenutno EKSPERIMENTALNA. Omogočitev enkripcije bo onemogočila funkcije, ki potrebujejo strežnik, kot so pridružitev s telefonom. Sestanek bo delal samo za udeležence, ki uporabljajo brskalnik s podporo za enkripcijo.", + "e2eeDisabledDueToMaxModeDescription": "Enkripcije ni mogoče vklopiti zaradi velike števila udeležencev konference.", + "e2eeLabel": "Vklopi enkripcijo", + "e2eeWarning": "OPOZORILO: Nimajo vsi udeleženci podpore za enkripcijo. Če jo omogočite, vas ne bodo več videli ali slišali.", + "e2eeWillDisableDueToMaxModeDescription": "OPOZORILO: Če se pridruži še več udeležencev, bo enkripcija izklopljena.", + "embedMeeting": "Vdelaj sestanek", + "enterDisplayName": "Prosimo, vnesite svoje ime", + "error": "Napaka", + "gracefulShutdown": "Naša storitev trenutno ne deluje zaradi vzdrževanja. Prosimo, poskusite kasneje.", + "grantModeratorDialog": "Ste prepričani, da želite uporabniku {{participantName}} dodeliti moderatorske pravice?", + "grantModeratorTitle": "Dodeli moderatorske pravice", + "hideShareAudioHelper": "Ne pokaži več tega okna", + "incorrectPassword": "Napačno uporabniško ime ali geslo", + "incorrectRoomLockPassword": "Napačno geslo", + "internalError": "Ups! Nekaj je šlo narobe. Prišlo je do sledeče napake: {{error}}", + "internalErrorTitle": "Notranja napaka", + "kickMessage": "Za več podrobnosti lahko kontaktirate uporabnika {{participantDisplayName}}.", + "kickParticipantButton": "Odstrani", + "kickParticipantDialog": "Ali ste prepričani, da želite tega udeleženca odstraniti iz srečanja?", + "kickParticipantTitle": "Odstranim tega udeleženca?", + "kickTitle": "Auč! Uporabnik {{participantDisplayName}} vas je odstranil iz srečanja", + "liveStreaming": "Prenos v živo", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ni mogoče med snemanjem", + "liveStreamingDisabledTooltip": "Prenos v živo je onemogočen.", + "localUserControls": "Lokalne kontrole uporabnika", + "lockMessage": "Ni bilo mogoče zakleniti konference.", + "lockRoom": "Dodaj geslo za srečanje", + "lockTitle": "Zaklep ni bil uspešen", + "login": "Prijava", + "logoutQuestion": "Ste prepričani, da se želite odjaviti in zaustaviti srečanje?", + "logoutTitle": "Odjava", + "maxUsersLimitReached": "Konferenca je polna, saj je bilo doseženo največje možno število udeležencev. Prosimo stopite v kontakt z gostiteljem srečanja ali poskusite kasneje!", + "maxUsersLimitReachedTitle": "Doseženo je bilo največje možno število udeležencev", + "micConstraintFailedError": "Vaš mikrofon ne zadošča zahtevam.", + "micNotFoundError": "Mikrofona ni bilo mogoče najti.", + "micNotSendingData": "V nastavitvah računalnika vključite mikrofon in nastavite raven zvoka", + "micNotSendingDataTitle": "Vaš mikrofon je izključen v sistemskih nastavitvah", + "micPermissionDeniedError": "Niste dali dovoljenja za uporabo mikrofona. Srečanju se še vedno lahko pridružite, vendar vas ostali ne bodo slišali. Dovoljenja za dostop do mikrofona lahko nastavite v naslovni vrstici brskalnika.", + "micTimeoutError": "Zvoka ni bilo mogoče začeti. Časovna omejitev presežena.", + "micUnknownError": "Mikrofona ni bilo mogoče uporabiti zaradi neznanega razloga.", + "moderationAudioLabel": "Dovoli udeležencu, da si omogoči mikrofon", + "moderationVideoLabel": "Dovoli udeležencu, da vklopi video", + "muteEveryoneDialog": "Ste prepričani, da želite izklopiti zvok vsem udeležencem? Ne boste jim ga mogli več vklopiti, lahko pa si ga sami vklopijo kadarkoli.", + "muteEveryoneDialogModerationOn": "Udeleženci lahko kadarkoli zaprosijo za vklop mikrofona", + "muteEveryoneElseDialog": "Ko enkrat izklopite zvok, ga jim ne boste mogli več vklopiti, lahko pa si ga sami vklopijo kadarkoli.", + "muteEveryoneElseTitle": "Izklopi zvok vsem razen {{whom}}?", + "muteEveryoneElsesVideoDialog": "Ko bo kamera izklopljena, je ne boste mogli več vklopiti, udeleženci pa jo lahko vklopijo, kadar želijo.", + "muteEveryoneElsesVideoTitle": "Ustavi video vseh razen {{whom}}?", + "muteEveryoneSelf": "samega sebe", + "muteEveryoneStartMuted": "Od zdaj bodo vsi začeli z izklopljenim zvokom", + "muteEveryoneTitle": "Izklopi zvok vsem udeležencem?", + "muteEveryonesVideoDialog": "Udeleženci lahko kadarkoli vklopijo video.", + "muteEveryonesVideoDialogModerationOn": "Udeleženci lahko kadarkoli zaprosijo za vklop videa.", + "muteEveryonesVideoDialogOk": "Onemogoči", + "muteEveryonesVideoTitle": "Ustavi video vseh udeležencev?", + "muteParticipantBody": "Udeležencem zvoka ne boste mogli vklopiti, si ga bodo pa lahko vklopili sami.", + "muteParticipantButton": "Utišaj", + "muteParticipantDialog": "Ste prepričani, da želite utišati tega udeleženca? Udeležencu zvoka ne boste mogli vklopiti nazaj, si ga bo pa lahko vklopil sam.", + "muteParticipantTitle": "Utišam tega udeleženca?", + "muteParticipantsVideoBody": "Kamere ne boste mogli več vklopiti, udeleženec pa jo lahko vklopi, kadar želi.", + "muteParticipantsVideoButton": "Ustavi video", + "muteParticipantsVideoDialog": "Ste prepričani, da želite izklopiti kamero udeleženca? Kamere ne boste mogli več vklopiti, udeleženec pa jo lahko vklopi, kadar želi.", + "muteParticipantsVideoTitle": "Izklopi kamero tega udeleženca?", + "noDropboxToken": "Nimate veljavnega žetona za Dropbox", + "password": "Geslo", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "Nastavljanje gesla za srečanje ni podprto.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) ni podprto", + "passwordRequired": "$t(lockRoomPasswordUppercase) je zahtevano", + "permissionCameraRequiredError": "Dovoljenje do kamere je potrebno za konference z videem. Prosimo, dovolite jo v nastavitvah", + "permissionErrorTitle": "Potrebno je dovoljenje", + "permissionMicRequiredError": "Dovoljenje do mikrofona je potrebo za konference z zvokom. Prosimo, dovolite ga v nastavitvah", + "popupError": "Vaš brskalnik blokira pojavna (pop-up) okna na tej strani. V nastavitvah omogočite pojavna okna in poskusite ponovno.", + "popupErrorTitle": "Pojavna okna so blokirana", + "readMore": "več", + "recording": "Snemanje", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ni mogoče med prenosom v živo", + "recordingDisabledTooltip": "Zagon snemanja onemogočen.", + "rejoinNow": "Ponovno se pridruži", + "remoteControlAllowedMessage": "Uporabnik {{user}} je sprejel vašo zahtevo za oddaljen nadzor!", + "remoteControlDeniedMessage": "Uporabnik {{user}} je zavrnil vašo zahtevo za oddaljen nadzor!", + "remoteControlErrorMessage": "Pri zahtevi za dovoljenje za oddaljeni nadzor pri uporabniku {{user}}, je prišlo do napake!", + "remoteControlRequestMessage": "Boste dovolili uporabniku {{user}} da oddaljeno nadzoruje vaše namizje?", + "remoteControlShareScreenWarning": "Ce kliknete \"Dovoli\", boste z ostalimi udeleženci delili svoj zaslon!", + "remoteControlStopMessage": "Oddaljeno upravljanje namizja je končano!", + "remoteControlTitle": "Nadzor oddaljenega upravljanja namizja", + "remoteUserControls": "Oddaljene kontrole uporabnika {{username}}", + "removePassword": "Odstrani $t(lockRoomPassword)", + "removeSharedVideoMsg": "Ste prepričani, da želite odstraniti deljeni video?", + "removeSharedVideoTitle": "Odstrani deljeni video", + "reservationError": "Napaka rezervacijskega sistema", + "reservationErrorMsg": "Koda napake: {{code}}, sporočilo: {{msg}}", + "retry": "Poskusi ponovno", + "screenSharingAudio": "Deli zvok", + "screenSharingFailed": "Ups! Nekaj je šlo narobe. Deljenje zaslona ni bilo uspešno.", + "screenSharingFailedTitle": "Deljenje zaslona ni bilo uspešno!", + "screenSharingPermissionDeniedError": "Ups! Nekaj je bilo narobe z dovoljenjem za deljenje zaslona. Prosimo osvežite aplikacijo in poskusite ponovno.", + "sendPrivateMessage": "Prejeli ste zasebno sporočilo. Želite nanj odgovoriti zasebno ali želite svoj odgovor poslati na skupino?", + "sendPrivateMessageCancel": "Odgovori skupini", + "sendPrivateMessageOk": "Odgovori zasebno", + "sendPrivateMessageTitle": "Odgovori zasebno?", + "serviceUnavailable": "Storitev ni na voljo", + "sessTerminated": "Klic je bil prekinjen", + "sessionRestarted": "Klic je bil znova vzpostavljen.", + "shareAudio": "Nadaljuj", + "shareAudioTitle": "Kako deliti zvok", + "shareAudioWarningD1": "za deljenje zvoka morate najprej prekiniti deljenje zaslona.", + "shareAudioWarningD2": "ponovno morate deliti zaslon in označiti opcijo \"deli zvok\".", + "shareAudioWarningH1": "Če želite deliti le zvok:", + "shareAudioWarningTitle": "Za deljenje zvoka morate prekiniti deljenje zaslona.", + "shareMediaWarningGenericH2": "Če želite deliti zaslon in zvok", + "shareScreenWarningD1": "za deljenje videa morate najprej prekinit deljenje zvoka.", + "shareScreenWarningD2": "prekiniti morate deljenje zvoka, deliti zaslon in odznačiti opcijo \"deli zvok \".", + "shareScreenWarningH1": "Če želite deliti le zaslon:", + "shareScreenWarningTitle": "Za deljenje zaslona morate najprej prekiniti deljenje zvoka.", + "shareVideoLinkError": "Prosimo, vnesite pravilno povezavo.", + "shareVideoTitle": "Delite video", + "shareYourScreen": "Delite vaš zaslon", + "shareYourScreenDisabled": "Deljenje zaslona je onemogočeno.", + "sharedVideoLinkPlaceholder": "Povezava YouTube ali direktna povezava do videa", + "startLiveStreaming": "Začni prenos v živo", + "startRecording": "Začni snemanje", + "startRemoteControlErrorMessage": "Pri poskusu zagona oddaljenega upravljanja je prišlo do napake!", + "stopLiveStreaming": "Zaustavi prenos v živo", + "stopRecording": "Zaustavi snemanje", + "stopRecordingWarning": "Ste prepričani, da želite zaustaviti snemanje?", + "stopStreamingWarning": "Ste prepričani, da želite zaustaviti prenos v živo?", + "streamKey": "Žeton za prenos v živo", + "thankYou": "Hvala, ker uporabljate {{appName}}!", + "token": "žeton", + "tokenAuthFailed": "Oprostite, temu srečanju se ne morete pridružiti.", + "tokenAuthFailedTitle": "Neuspešna prijava", + "transcribing": "Zapisovanje", + "unlockRoom": "Odstrani geslo srečanja", + "user": "Uporabnik", + "userIdentifier": "Identifikator uporabnika", + "userPassword": "uporabniško geslo", + "videoLink": "Povezava do video", + "viewUpgradeOptions": "Oglej si možnosti za nadgradnjo", + "viewUpgradeOptionsContent": "Za neomejen dostop do plačljivih funkcij, kot so snemanje, transkripcija, prenos v živo in več, morate nadgraditi paket.", + "viewUpgradeOptionsTitle": "Odkrili ste plačljivo funkcijo.", + "yourEntireScreen": "Cel zaslon" + }, + "documentSharing": { + "title": "Deljeni dokument" + }, + "e2ee": { + "labelToolTip": "Vsa avdio in video komunicija v tem klicu je kriptirana." + }, + "embedMeeting": { + "title": "Vdelaj ta sestanek." + }, + "feedback": { + "average": "Povprečno", + "bad": "Slabo", + "detailsLabel": "Povejte nam več.", + "good": "Dobro", + "rateExperience": "Ocenite vašo izkušnjo s sistemom", + "star": "Zvezdica", + "veryBad": "Zelo slabo", + "veryGood": "Zelo dobro" + }, + "helpView": { + "title": "Center za pomoč" + }, + "incomingCall": { + "answer": "Odgovori", + "audioCallTitle": "Dohodni klic", + "decline": "Zavrni", + "productLabel": "iz Jitsi Meet", + "videoCallTitle": "Dohodni video klic" + }, + "info": { + "accessibilityLabel": "Prikaži informacije", + "addPassword": "Dodaj $t(lockRoomPassword)", + "cancelPassword": "Prekliči $t(lockRoomPassword)", + "conferenceURL": "Povezava:", + "copyNumber": "Kopiraj številko", + "country": "Država", + "dialANumber": "Za pridružitev v konferenco, pokličite eno izmed teh številk ter vpišite pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Oprostite, povezovanje preko telefona trenutno ni mogoče.", + "dialInNumber": "Povezava preko telefona:", + "dialInSummaryError": "Napaka pri pridobivanju podatkov za povezavo preko telefona. Prosimo, poskusite kasneje.", + "dialInTollFree": "Brezplačno", + "genericError": "Ups, nekaj je šlo narobe.", + "inviteLiveStream": "Če želite videti prenos tega srečanja v živo, kliknite na to povezavo: {{url}}", + "invitePhone": "Za pridružitev preko telefona, vpišite: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Iščete drugo številko za povezavo preko telefona?\nNajdete jih tu: {{url}}\n\n\nČe se povezujete preko domačega telegona, se lahko pridružite s povezavo brez zvoka: {{silentUrl}}", + "inviteSipEndpoint": "Da se pridružite z naslovo SIP, vnesite naslednji naslov: {{sipUri}}", + "inviteTextiOSInviteUrl": "Kliknite na to povezavo, da se pridružite: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Če se pridružujete preko domačega telefona, uporabite to povezavo, da se pridružite brez zvoka: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} vas vabi na sestanek.", + "inviteTextiOSPhone": "Da se pridružite s telefonom, uporabite to številko: {{number}},,{{conferenceID}}#. Če iščete drugo številke, je tu celoten seznam: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Povabljeni ste na konferenco.", + "inviteURLFirstPartPersonal": "{{name}} vas je povabil/a na konferenco.\n", + "inviteURLSecondPart": "\nPridruži se konferenci:\n{{url}}\n", + "label": "Podatki o srečanju", + "liveStreamURL": "Prenos v živo:", + "moreNumbers": "Več številk", + "noNumbers": "Ni številk za povezavo preko telefona.", + "noPassword": "ni nastavljeno", + "noRoom": "Za povezavo preko telefona ni bila določena nobena soba.", + "numbers": "Številke za povezavo preko telefona:", + "password": "$t(lockRoomPasswordUppercase):", + "sip": "Naslov SIP", + "title": "Souporaba", + "tooltip": "Delite povezavo ter informacije za povezavo preko telefona v to konferenco." + }, + "inlineDialogFailure": { + "msg": "Opala, prišlo je do težav.", + "retry": "Poskusi ponovno", + "support": "Podpora", + "supportMsg": "Če se bo to nadaljevalo, kontaktirajte" + }, + "inviteDialog": { + "alertText": "Nekaterih udeležencev ni bilo mogoče povabiti.", + "header": "Povabi", + "searchCallOnlyPlaceholder": "Vpiši telefonsko številko", + "searchPeopleOnlyPlaceholder": "Išči udeležence", + "searchPlaceholder": "Udeleženec ali telefonska številka", + "send": "Pošlji" + }, + "jitsiHome": "{{logo}} Logo, povezava do domače strani", + "keyboardShortcuts": { + "focusLocal": "Fokus na vaš video", + "focusRemote": "Fokus na video drugega udeleženca", + "fullScreen": "Poglej ali zapusti celozaslonski način", + "keyboardShortcuts": "Tipkovnične bližnjice", + "localRecording": "Prikaži ali skrij lokalni kontrolnik za snemanje", + "mute": "Vklopi ali izklopi mikrofon", + "pushToTalk": "Pritisni za govor", + "raiseHand": "Dvigni ali spusti roko", + "showSpeakerStats": "Prikaži statistike govorcev", + "toggleChat": "Odpri ali zapri klepetalnico", + "toggleFilmstrip": "Prikaži ali skrij video okenca", + "toggleParticipantsPane": "Prikaži ali skrij seznam udeležencev", + "toggleScreensharing": "Preklopi med kamero in deljenjem zaslona", + "toggleShortcuts": "Prikaži ali skrij tipkovnične bližnjice", + "videoMute": "Vklopi ali izklopi kamero" + }, + "liveStreaming": { + "busy": "Delamo na sprostitvi pretočnih virov. Poskusite znova čez nekaj minut.", + "busyTitle": "Vsi videopretočni strežniki so trenutno zasedeni.", + "changeSignIn": "Preklopi med računi.", + "choose": "Izberi prenos v živo", + "chooseCTA": "Izberite možnost za prenos v živo. Trenutno ste prijavljeni kot {{email}}.", + "enterStreamKey": "Vnesite vaš YouTube ključ za prenos v živo.", + "error": "Prenos v živo ni uspel. Prosimo poskusite kasneje.", + "errorAPI": "Pri dostopu do YouTubovih oddaj je priplo do napake. Prosimo, poskusite se prijaviti kasneje.", + "errorLiveStreamNotEnabled": "Prenos v živo na {{email}} ni omogočen. Prosimo, omogočite prenos v živo ali se prijavite v račun, ki ima omogočen prenos v živo.", + "expandedOff": "Prenos v živo je zaustavljen", + "expandedOn": "Srečanje se prenaša na YouTube.", + "expandedPending": "Prenos v živo se začenja…", + "failedToStart": "Prenos v živo se ni začel", + "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", + "onBy": "Uporabnik {{name}} je začel prenos v živo", + "pending": "Začenjam prenos v živo…", + "serviceName": "Storitev prenosa v živo", + "signIn": "Prijavite se z Googlovim računom", + "signInCTA": "Prijavite se ali vnesite ključ za prenos v živo iz YouTuba.", + "signOut": "Odjava", + "signedInAs": "Trenutno ste prijavljeni kot:", + "start": "Začni prenos v živo", + "streamIdHelp": "Kaj je to?", + "title": "Prenos v živo", + "unavailableTitle": "Prenos v živo ni na voljo", + "youtubeTerms": "Pogoji uporabe YouTube" + }, + "lobby": { + "allow": "Dovoli", + "backToKnockModeButton": "Prosi za dostop", + "dialogTitle": "Način predsobe", + "disableDialogContent": "Način predsobe je trenutno omogočen. Ta funkcija zagotavlja, da se neželeni udeleženci ne morejo pridružiti sestanku. Želite ta način izklopiti?", + "disableDialogSubmit": "Onemogoči", + "emailField": "Vpišite e-poštni naslov", + "enableDialogPasswordField": "Določi geslo (opcijsko)", + "enableDialogSubmit": "Omogoči", + "enableDialogText": "Način predsobe zavaruje vaš sestanek tako, da se lahko pridružijo le ljudje, ki jim to dovoli moderator.", + "enterPasswordButton": "Vnesi geslo sestanka", + "enterPasswordTitle": "Vnesi geslo za pridružitev sestanku", + "errorMissingPassword": "Prosimo, vnesite geslo sestanka", + "invalidPassword": "Napačno geslo", + "joinRejectedMessage": "Vašo prošnjo je zavrnil moderator.", + "joinTitle": "Pridruži se", + "joinWithPasswordMessage": "Pridruževanje sestanku z geslom…", + "joiningMessage": "Sestanku se boste pridružili, takoj ko vas bo nekdo sprejel.", + "joiningTitle": "Pridruževanju sestanku…", + "joiningWithPasswordTitle": "Pridruževanje sestanku z geslom…", + "knockButton": "Prosi za dostop", + "knockTitle": "Nekdo se želi pridružiti sestanku", + "knockingParticipantList": "Seznam udeležencev, ki se želijo pridružiti", + "nameField": "Vpišite ime", + "notificationLobbyAccessDenied": "{{targetParticipantName}} je bil/a zavrnjen/a s strani {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} je dobil/a dovoljenje za pridružitev s strani {{originParticipantName}}", + "notificationLobbyDisabled": "{{originParticipantName}} je onemogočil/a predsobo.", + "notificationLobbyEnabled": "{{originParticipantName}} je omogočil/a predsobo", + "notificationTitle": "Predsoba", + "passwordField": "Vnesite geslo sestanka", + "passwordJoinButton": "Pridruži se", + "title": "Predsoba", + "toggleLabel": "Omogoči predsobo" + }, + "localRecording": { + "clientState": { + "off": "Izklop", + "on": "Vklop", + "unknown": "Neznano" + }, + "dialogTitle": "Kontrolnik za lokalno snemanje", + "duration": "Trajanje", + "durationNA": "N/A", + "encoding": "Kodiranje", + "label": "LOR", + "labelToolTip": "Lokalno snemanje je vključeno", + "localRecording": "Lokalno snemanje", + "me": "Jaz", + "messages": { + "engaged": "Lokalno snemanje je vključeno.", + "finished": "Seja snemanja {{token}} končana. Datoteko s posnetkom pošljite moderatorju.", + "finishedModerator": "Seja snemanja {{token}} končana. Posnetek lokalnega snemanja je bil shranjen. Prosite ostale udeležence, da oddajo svoje posnetke.", + "notModerator": "Niste moderator, zato ne morete zagnati ali zaustaviti lokalnega snemanja." + }, + "moderator": "Moderator", + "no": "Ne", + "participant": "Udeleženec", + "participantStats": "Statistika udeleženca", + "sessionToken": "Sejni žeton", + "start": "Začni snemanje", + "stop": "Zaustavi snemanje", + "yes": "Da" + }, + "lockRoomPassword": "geslo", + "lockRoomPasswordUppercase": "Geslo", + "lonelyMeetingExperience": { + "button": "Povabi ostale", + "youAreAlone": "V sestanku ste sami" + }, + "me": "jaz", + "notify": { + "OldElectronAPPTitle": "Varnostna ranljivost!", + "allowAction": "Dovoli", + "allowedUnmute": "Lahko vklopite mikrofon, kamero ali začnete deljenje zaslona.", + "connectedOneMember": "Uporabnik {{name}} se je pridružil srečanju", + "connectedThreePlusMembers": "Uporabnik {{name}} ter še ({{count}}) drugih se je pridružilo srečanju", + "connectedTwoMembers": "{{first}} in {{second}} sta se pridružila srečanju", + "disconnected": "Prekinjena", + "focus": "Fokus konference", + "focusFail": "{{component}} ni na voljo - poskusite čez {{ms}} s", + "groupTitle": "Obvestila", + "hostAskedUnmute": "Moderator želi, da si vklopite mikrofon.", + "invitedOneMember": "Uporabnik {{name}} je bil povabljen", + "invitedThreePlusMembers": "Uporabnik {{name}} ter še ({{count}}) drugih se je pridružilo srečanju", + "invitedTwoMembers": "{{first}} and {{second}} sta se pridružila srečanju", + "kickParticipant": "Uporabnik {{kicker}} je uporabnika {{kicked}} odstranil iz srečanja", + "me": "jaz", + "moderationInEffectCSDescription": "Dvignite roko, če želite deliti zaslon.", + "moderationInEffectCSTitle": "Moderator je onemogočil deljenje zaslona", + "moderationInEffectDescription": "Dvignite roko, če želite govoriti.", + "moderationInEffectTitle": "Moderator je onemogočil vklop mikrofona", + "moderationInEffectVideoDescription": "Dvignite roko, če želite vklopiti kamero.", + "moderationInEffectVideoTitle": "Moderator je onemogočil vklop kamere", + "moderationRequestFromModerator": "Gostitelj želi, da si vklopite mikrofon", + "moderationRequestFromParticipant": "Želi govoriti", + "moderationStartedTitle": "Moderacija je vklopljena", + "moderationStoppedTitle": "Moderacija je izklopljena", + "moderationToggleDescription": "od {{participantDisplayName}}", + "moderator": "Podeljene moderatorske pravice!", + "muted": "Pogovor ste začeli z utišanim mikrofonom.", + "mutedRemotelyDescription": "Če želite govoriti, si mikrofon lahko vklopite. Ko boste končali ga izključite, da na srečanju ne bo slišati preveč šumov in ropota.", + "mutedRemotelyTitle": "Vaš mikrofon je utišal uporabnik {{participantDisplayName}}!", + "mutedTitle": "Vaš mikrofon je utišan!", + "newDeviceAction": "Uporabi", + "newDeviceAudioTitle": "Zaznana je bila nova zvočna naprava", + "newDeviceCameraTitle": "Zaznana je bila nova kamera", + "oldElectronClientDescription1": "Uporabljate staro verzijo aplikacije Jitsi Meet, ki ima varnostne ranljivosti. Prosimo, naložite si ", + "oldElectronClientDescription2": "zadnjo verzijo.", + "oldElectronClientDescription3": " zdaj!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) je odstranil drug udeleženec srečanja", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) je bilo nastavljeno s strani drugega udeleženca srečanja", + "raiseHandAction": "Dvigni roko", + "raisedHand": "{{name}} želi govoriti.", + "reactionSounds": "Izklopi zvoke", + "screenShareNoAudio": " Deljenje zvoka ni bilo omogočeno ob deljenju zaslona", + "screenShareNoAudioTitle": "Sistemskega zvoka ni bilo mogoče deliti.", + "somebody": "Nekdo", + "startSilentDescription": "Ponovno se pridružite srečanju in omogočite zvok", + "startSilentTitle": "Pridružili ste se brez zvoka!", + "suboptimalBrowserWarning": "Kot kaže vaša uporabniška izkušnja z našim sistemom ne bo najboljša. Trudimo se, da bi uporabniško izkušnjo izboljšali, do takrat pa prosimo uporabljajte enega od popolnoma podprtih brskalnikov.", + "suboptimalExperienceTitle": "Opozorilo brskalnika", + "unmute": "Vklopi nazaj", + "videoMutedRemotelyDescription": "Kadarkoli si ga lahko vklopite nazaj.", + "videoMutedRemotelyTitle": "Vaš video je izklopil moderator {{moderator}}" + }, + "participantsPane": { + "actions": { + "admit": "Sprejmi", + "admitAll": "Sprejmi vse", + "allow": "Udeleženci si lahko:", + "allowVideo": "Dovoli video", + "askUnmute": "Prosi za vklop mikrofona", + "audioModeration": "Dovoli zvok", + "blockEveryoneMicCamera": "Onemogoči zvok in video vseh udeležencev", + "invite": "Povabi", + "mute": "Izklopi zvok", + "muteAll": "Izklopi zvok vsem", + "muteEveryoneElse": "Izklopi zvok vsem ostalim", + "reject": "Zavrni", + "stopEveryonesVideo": "Izklopi video vsem ostalim", + "stopVideo": "Izklopi video", + "unblockEveryoneMicCamera": "Dovoli zvok in video vsem udeležencem", + "videoModeration": "Vklopi njihov video" + }, + "close": "Zapri", + "headings": { + "lobby": "Predsoba ({{count}})", + "participantsList": "Seznam udeležencev ({{count}})", + "waitingLobby": "Čakajoči v predsobi ({{count}})" + }, + "title": "Udeleženci" + }, + "passwordDigitsOnly": "Do {{number}} številk", + "passwordSetRemotely": "nastavljeno s strani drugega uporabnika", + "polls": { + "answer": { + "skip": "Preskoči", + "submit": "Pošlji" + }, + "create": { + "addOption": "Dodaj možnost", + "answerPlaceholder": "Možnost {{index}}", + "cancel": "Prekliči", + "create": "Ustvari anketo", + "pollOption": "Možnost ankete {{index}}", + "pollQuestion": "Vprašanje ankete", + "questionPlaceholder": "Postavi vprašanje", + "removeOption": "Odstrani možnost", + "send": "Pošlji" + }, + "errors": { + "notUniqueOption": "Možnosti morajo biti edinstvene" + }, + "notification": { + "description": "Odpri zavihek z anketami za glasovanje", + "title": "V sestanek je bila dodana nova anketa" + }, + "results": { + "changeVote": "Spremeni svoj glas", + "empty": "V sestanku še ni anket. Ustvari anketo tukaj!", + "hideDetailedResults": "Skrij podrobnosti", + "showDetailedResults": "Pokaži podrobnosti", + "vote": "Glasuj" + } + }, + "poweredby": "Poganja ga", + "prejoin": { + "audioAndVideoError": "Napaka zvoka in videa:", + "audioDeviceProblem": "Napaka z vašo zvočno napravo", + "audioOnlyError": "Napaka zvoka:", + "audioTrackError": "Ni bilo možno ustvariti zvoka", + "callMe": "Pokliči me", + "callMeAtNumber": "Pokliči me na tej številki:", + "calling": "Klicanje", + "configuringDevices": "Nastavljanje naprav…", + "connectedWithAudioQ": "Ste povezani z zvokom?", + "connection": { + "good": "Vaša internetna povezava je dobra!", + "nonOptimal": "Vaša internetna povezava ni optimalna", + "poor": "Imate slabo internetno povezavo" + }, + "connectionDetails": { + "audioClipping": "Vaš zvok bo verjetno odrezan.", + "audioHighQuality": "Vaš zvok bi moral biti zelo kvaliteten.", + "audioLowNoVideo": "Vaš zvok bo verjetno slabše kvalitete in brez videa.", + "goodQuality": "Super! Kvaliteva vaše medije bo odlična.", + "noMediaConnectivity": "Preverjanje povezave neuspešno. To lahko povzroči požarni zid ali NAT.", + "noVideo": "Vaš video bo verjetno zelo slab.", + "undetectable": "Če še vedno ne morete opravljati klicev v brskalniku, se prepričajte, da vaši zvočniki, mikrofon in kamera delujejo pravilno, da ste brskalniku dovolili dostop in da uporabljate zadnjo verzijo brskalnika. Če imate še vedno težave, kontaktirajte razvijalce spletne aplikacije.", + "veryPoorConnection": "Kvaliteva klica bo verjetno zelo slaba.", + "videoFreezing": "Vaš video bo verjetno zmrzoval.", + "videoHighQuality": "Vaš video bo verjento visoke kvalitete.", + "videoLowQuality": "Vaš video bo verjetno slašbe kvalitete.", + "videoTearing": "Vaš video bo imel verjetno vizualne artefakte." + }, + "copyAndShare": "Kopiraj in deli povezavo sestanka", + "dialInMeeting": "Sestanku se pridruži s klicem", + "dialInPin": "Sestanku se pridružite s klicem in vnesite kodo PIN:", + "dialing": "Klicanje", + "doNotShow": "Tega zaslona ne pokaži več", + "errorDialOut": "Klicanje ni bilo uspešno", + "errorDialOutDisconnected": "Klicanje ni bilo uspešno. Povezava prekinjena", + "errorDialOutFailed": "Klicanje ni bilo uspešno. Klic neuspešen", + "errorDialOutStatus": "Neuspešno pridobivanje statusa klica", + "errorMissingName": "Prosimo, vnesite svoje ime", + "errorNoPermissions": "Dovoliti morate dostop do mikrofona in kamere", + "errorStatusCode": "Klicanje ni bilo uspešno, koda statusa: {{status}}", + "errorValidation": "Validacija številke ni bila uspešna", + "iWantToDialIn": "Sestanku se pridruži s klicem", + "initiated": "Klic začet", + "joinAudioByPhone": "Pridruži se z zvokom telefona", + "joinMeeting": "Pridruži se sestanku", + "joinWithoutAudio": "Pridruži se brez zvoka", + "keyboardShortcuts": "Omogoči bližnjice tipkovnice", + "linkCopied": "Povezava je bila kopirana", + "lookGood": "Vaš mikrofon deluje pravilno", + "or": "ali", + "premeeting": "Pred sestanek", + "screenSharingError": "Napaka deljenja zaslona:", + "startWithPhone": "Začni z zvokom telefona", + "videoOnlyError": "Napaka videa:", + "videoTrackError": "Ni bilo mogoče ustvariti videa.", + "viewAllNumbers": "poglej vse številke" + }, + "presenceStatus": { + "busy": "Zaseden", + "calling": "Kličem…", + "connected": "Povezan", + "connecting": "Povezovanje…", + "connecting2": "Povezovanje*…", + "disconnected": "Prekinjeno", + "expired": "Pretečeno", + "ignored": "Ignorirano", + "initializingCall": "Začetek klica…", + "invited": "Povabljen", + "rejected": "Zavrnjen", + "ringing": "Zvoni…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Nastavite svoje prikazno ime", + "setEmailInput": "Vnesite e-naslov", + "setEmailLabel": "Nastavite svoj e-naslov", + "title": "Profil" + }, + "raisedHand": "Želi govoriti", + "recording": { + "authDropboxText": "Naloži na Dropbox", + "availableSpace": "Na voljo je še: {{spaceLeft}} MB (za približno {{duration}} minut snemanja)", + "beta": "BETA", + "busy": "Delamo na sprostitvi virov za snemanje. Poskusite znova čez nekaj minut.", + "busyTitle": "Trenutno so vsi viri za snemanje zasedeni.", + "copyLink": "Kopiraj povezavo", + "error": "Snemanje ni uspelo. Prosim poskusite ponovno.", + "errorFetchingLink": "Napaka pri pridobivanju povezave do posnetka.", + "expandedOff": "Snemanje se je zaustavilo.", + "expandedOn": "Sestanek se trenutno snema.", + "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}}", + "off": "Snemanje ustavljeno", + "offBy": "{{name}} je ustavil snemanje", + "on": "Snemanje", + "onBy": "{{name}} je začel snemanje", + "pending": "Priprava snemanja srečanja…", + "rec": "REC", + "serviceDescription": "Vaš posnetek bo shranila storitev snemanja", + "serviceDescriptionCloud": "Snemanje v oblak", + "serviceName": "Storitev snemanja", + "signIn": "Prijava", + "signOut": "Odjava", + "title": "Snemanje", + "unavailable": "Ups! {{ServiceName}} trenutno ni na voljo. Delamo na tem, da težavo odpravimo. Prosimo, poskusite kasneje.", + "unavailableTitle": "Snemanje ni mogoče", + "uploadToCloud": "Naloži v oblak" + }, + "sectionList": { + "pullToRefresh": "Potegnite za osvežitev" + }, + "security": { + "about": "Sestanku lahko dodate $t(lockRoomPassword). Preden se lahko udeleženci pridružijo, bodo morali vpisati $t(lockRoomPassword).", + "aboutReadOnly": "Moderatorji lahko sestanku dodajo $t(lockRoomPassword). Preden se lahko udeleženci pridružijo, bodo morali vpisati $t(lockRoomPassword).", + "insecureRoomNameWarning": "Ime sobe ni varno. Neželeni udeleženci se lahko pridružijo konferenci.", + "securityOptions": "Nastavitve varnosti" + }, + "settings": { + "calendar": { + "about": "Integracija koledarja {{appName}} se uporablja za varen dostop do vašega koledarja, tako da lahko bere prihajajoče dogodke.", + "disconnect": "Prekini povezavo", + "microsoftSignIn": "Prijavite se z Microsoft računom", + "signedIn": "Trenutno dostopate do dogodkov v koledarju za {{email}}. Če želite ustaviti dostop do koledarskih dogodkov, kliknite gumb 'Prekini povezavo'.", + "title": "Koledar" + }, + "desktopShareFramerate": "Sličice na sekundo pri deljenju zaslona", + "desktopShareHighFpsWarning": "Višje število slišic na sekundo lahko vpliva na vašo povezavo. Ponovno morate deliti zaslon, da bodo nove nastavitve veljave.", + "desktopShareWarning": "Ponovno morate deliti zaslon, da bodo nove nastavitve veljave.", + "devices": "Naprave", + "followMe": "Vsi sledijo meni", + "framesPerSecond": "sličic na sekundo", + "incomingMessage": "Prihajajoče sporočilo", + "language": "Jezik", + "loggedIn": "Prijavljen kot {{name}}", + "microphones": "Microphones", + "moderator": "Moderator", + "more": "Več", + "name": "Ime", + "noDevice": "brez", + "participantJoined": "Udeleženec se je pridružil", + "participantLeft": "Udeleženec je odšel", + "playSounds": "Predvajaj zvok", + "reactions": "Reakcije sestanka", + "sameAsSystem": "Enako kot v sistemu ({{label}})", + "selectAudioOutput": "Avdio izhod", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "sounds": "Zvoki", + "speakers": "Speakers", + "startAudioMuted": "Vsi začnejo z utišanim mikrofonom", + "startVideoMuted": "Vsi začnejo z izključeno kamero", + "talkWhileMuted": "Govorenje ob izklopljenem mikrofonu", + "title": "Nastavitve" + }, + "settingsView": { + "advanced": "Napredno", + "alertCancel": "Cancel", + "alertOk": "OK", + "alertTitle": "Opozorilo", + "alertURLText": "Vnešen URL naslov strežnika ni veljaven", + "buildInfoSection": "Različica aplikacije", + "conferenceSection": "Konferenca", + "disableCallIntegration": "Onemogoči integracijo domačih klicev", + "disableCrashReporting": "Disable crash reporting", + "disableCrashReportingWarning": "Are you sure you want to disable crash reporting? The setting will be applied after you restart the app.", + "disableP2P": "Onemogoči P2P način", + "displayName": "Prikazno ime", + "email": "E-naslov", + "header": "Nastavitve", + "profileSection": "Profil", + "serverURL": "URL strežnika", + "showAdvanced": "Prikaži napredne nastavitve", + "startWithAudioMuted": "Začni z utišanim zvokom", + "startWithVideoMuted": "Začni z izključeno kamero", + "version": "Različica" + }, + "share": { + "dialInfoText": "\n\n=====\n\nSe želite povezati s telefonom?\n\n{{defaultDialInNumber}}Če želite videti številke za povezavo prek telefona, kliknite povezavo:\n{{dialInfoPageUrl}}", + "mainText": "Če se želite pridružiti konferenci, kliknite na to povezavo:\n{{roomUrl}}" + }, + "speaker": "Govorec", + "speakerStats": { + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Ime", + "search": "Iskanje", + "searchHint": "Iskanje udeležencev", + "seconds": "{{count}}s", + "speakerStats": "Statistika govorca", + "speakerTime": "Čas govorjenja" + }, + "startupoverlay": { + "genericTitle": "Sestanek potrebuje dostop do vašega mikrofona in kamere.", + "policyText": " ", + "title": "{{app}} potrebuje dostop do vašega mikrofona in kamere." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Ponovno se pridruži", + "text": "Za ponovno povezavo pritisnite gumb Ponovno se pridruži.", + "title": "Video klic se je prekinil, ker je bil računalnik vmes v stanju spanja." + }, + "toolbar": { + "Settings": "Nastavitve", + "accessibilityLabel": { + "Settings": "Preklopi nastavitve", + "audioOnly": "Preklopi samo na avdio", + "audioRoute": "Izberi zvočno napravo", + "boo": "Bu", + "callQuality": "Upravljaj kvaliteto videa", + "cc": "Preklopi podnapise", + "chat": "Preklopi okno za klepet", + "clap": "plosk", + "collapse": "Skrči", + "document": "Preklopi deljeni dokument", + "download": "Prenesi naše aplikacije", + "embedMeeting": "Vdelaj sestanek", + "expand": "Razširi", + "feedback": "Pošlji povratno informacijo", + "fullScreen": "Preklopi v celozaslonski način", + "grantModerator": "Dodeli moderatorske pravice", + "hangup": "Zapusti klic", + "help": "Pomoč", + "invite": "Povabi druge osebe", + "kick": "Odstrani udeleženca", + "laugh": "Smeh", + "like": "Všeček", + "lobbyButton": "Vklopi/izklopi način predsobe", + "localRecording": "Preklopi kontrolnik lokalnega snemanja", + "lockRoom": "Preklopi geslo srečanja", + "moreActions": "Preklopi meni z več možnostmi", + "moreActionsMenu": "Meni z več možnostmi", + "moreOptions": "Prikaži več možnosti", + "mute": "Preklopi utišanje mikrofona", + "muteEveryone": "Mute everyone", + "muteEveryoneElse": "Izklopi zvok vsem ostalim", + "muteEveryoneElsesVideo": "Izklopi video vsem ostalim", + "muteEveryonesVideo": "Izklopi video vseh udeležencev", + "participants": "Udeleženci", + "pip": "Preklopi način slika-v-sliki", + "privateMessage": "Pošlji zasebno sporočilo", + "profile": "Uredi svoj profil", + "raiseHand": "Preklopi dvig roke", + "reactionsMenu": "Odpri/zapri meni reakcij", + "recording": "Preklopi snemanje", + "remoteMute": "Utišaj udeleženca", + "remoteVideoMute": "Izklopi kamero udeleženca", + "security": "Nastavitve varnosti", + "selectBackground": "Izberi ozadnje", + "shareRoom": "Povabi druge osebe", + "shareYourScreen": "Preklopi deljenje zaslona", + "shareaudio": "Deli zvok", + "sharedvideo": "Preklopi deljenje videa", + "shortcuts": "Preklopi bližnjice", + "show": "Prikaži na sceni", + "silence": "Tišina", + "speakerStats": "Preklopi statistiko govorca", + "surprised": "Presenečenje", + "tileView": "Preklopi ploščični pogled", + "toggleCamera": "Preklopi kamero", + "toggleFilmstrip": "Toggle filmstrip", + "videoblur": "Preklopi zabrisovanje videa", + "videomute": "Preklopi izklop videa" + }, + "addPeople": "Dodaj druge udeležence v vaš klic", + "audioOnlyOff": "Onemogoči način nizke pasovne širine", + "audioOnlyOn": "Omogoči način nizke pasovne širine", + "audioRoute": "Izberi zvočno napravo", + "audioSettings": "Nastavitve zvoka", + "authenticate": "Overi", + "boo": "Bu", + "callQuality": "Upravljaj kvaliteto videa", + "chat": "Odpri / zapri klepet", + "clap": "Plosk", + "closeChat": "Zapri klepet", + "closeReactionsMenu": "Zapri meni reakcij", + "disableReactionSounds": "Izklopite lahko zvok reakcij za ta sestanek", + "documentClose": "Zapri deljeni dokument", + "documentOpen": "Odpri deljeni dokument", + "download": "Prenesi naše aplikacije", + "e2ee": "End-to-End Encryption", + "embedMeeting": "Vdelaj sestanek", + "enterFullScreen": "Poglej na celem zaslonu", + "enterTileView": "Ploščični pogled", + "exitFullScreen": "Zapusti celozaslonski način", + "exitTileView": "Zapusti ploščični pogled", + "feedback": "Pusti povratno informacijo", + "hangup": "Zapusti", + "help": "Pomoč", + "invite": "Povabi druge osebe", + "laugh": "Smeh", + "like": "Všeček", + "lobbyButtonDisable": "Izklopi način predsobe", + "lobbyButtonEnable": "Vklopi način predsobe", + "login": "Prijava", + "logout": "Odjava", + "lowerYourHand": "Spusti svojo roko", + "moreActions": "Več možnosti", + "moreOptions": "Več možnosti", + "mute": "Vklopi / izklopi mikrofon", + "muteEveryone": "Izklopi zvok vsem", + "muteEveryonesVideo": "Izklopi kamero vseh udeležencev", + "noAudioSignalDesc": "Če ga niste namerno izklopili iz sistemskih nastavitev ali naprave, morda zamenjate napravo.", + "noAudioSignalDescSuggestion": "Če ga niste namerno izklopili iz sistemskih nastavitev ali naprave, morda zamenjate napravo.", + "noAudioSignalDialInDesc": "Pridružite se lahko tudi s telefonom:", + "noAudioSignalDialInLinkDesc": "Številke za pridružitev s telefonom", + "noAudioSignalTitle": "Iz vašega mikrofona ni zvoka!", + "noisyAudioInputDesc": "Vaš mikrofon je glasen, morda si izklopite zvok ali zamenjate napravo.", + "noisyAudioInputTitle": "Vaš mikrofon je glasen!", + "openChat": "Odpri klepet", + "openReactionsMenu": "Odpri meni reakcij", + "participants": "Udeleženci", + "pip": "Aktiviraj način slika-v-sliki", + "privateMessage": "Pošlji zasebno sporočilo", + "profile": "Uredi svoj profil", + "raiseHand": "Dvigni / spusti svojo roko", + "raiseYourHand": "Dvigni svojo roko", + "reactionBoo": "Pošlji reakcijo bu", + "reactionClap": "Pošlji reakcijo ploska", + "reactionLaugh": "Pošlji reakcijo smeha", + "reactionLike": "Pošlji reakcija všečka", + "reactionSilence": "Pošlji reakcijo tišine", + "reactionSurprised": "Pošlji reakcijo presenečenja", + "security": "Nastavitve varnosti", + "selectBackground": "Izberi ozadje", + "shareRoom": "Povabi nekoga", + "shareaudio": "Deli zvok", + "sharedvideo": "Deli video", + "shortcuts": "Prikaži bližnjice", + "silence": "Tišina", + "speakerStats": "Statistike govorcev", + "startScreenSharing": "Začni deliti zaslon", + "startSubtitles": "Začni prikaz podnapisov", + "stopAudioSharing": "Izklopi deljenje zvoka", + "stopScreenSharing": "Prekini deljenje zaslona", + "stopSharedVideo": "Ustavi video", + "stopSubtitles": "Prekini prikaz podnapisov", + "surprised": "Presenečenje", + "talkWhileMutedPopup": "Želite govoriti? Utišani ste.", + "tileViewToggle": "Preklopi ploščični pregled", + "toggleCamera": "Preklopi kamero", + "videoSettings": "Nastavitve videa", + "videomute": "Vklopi / izklopi kamero" + }, + "transcribing": { + "ccButtonTooltip": "Vklopi / Izklopi podnapise", + "error": "Prepisovanje ni uspelo. Prosim poskusite ponovno.", + "expandedLabel": "Prepisovanje je vključeno", + "failedToStart": "Prepisovanja ni bilo mogoče začeti", + "labelToolTip": "Sestanek se prepisuje", + "off": "Prepisovanje zaustavljeno", + "pending": "Priprava na prepis sestanka…", + "start": "Začni prikazovati podnapise", + "stop": "Prenehaj prikazovati podnapise", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Prosimo, da odobrite zahtevo za uporabo kamere in mikrofona." + }, + "videoSIPGW": { + "busy": "Delamo na sprostitvi virov. Poskusite znova čez nekaj minut.", + "busyTitle": "Storitev je trenutno zasedena", + "errorAlreadyInvited": "{{displayName}} je že povabljen", + "errorInvite": "Konferenca še ni vzpostavljena. Prosim poskusite kasneje.", + "errorInviteFailed": "Delamo na reševanju težave. Prosim poskusite kasneje.", + "errorInviteFailedTitle": "Povabilo {{displayName}} ni uspelo", + "errorInviteTitle": "Napaka pri povabilu v sobo", + "pending": "{{displayName}} je bil povabljen" + }, + "videoStatus": { + "audioOnly": "ZVOK", + "audioOnlyExpanded": "Ste v načinu nizke pasovne širine. V tem načinu boste prejemali samo avdio in deljenje zaslona.", + "callQuality": "Kvaliteta videa", + "hd": "HD", + "hdTooltip": "Prenos videa v visoki ločljivosti", + "highDefinition": "Visoka ločljivost", + "labelTooiltipNoVideo": "Ni videa", + "labelTooltipAudioOnly": "Omogočen je način nizke pasovne širine", + "ld": "LD", + "ldTooltip": "Prenos videa v nizki ločljivosti", + "lowDefinition": "Nizka ločljivost", + "sd": "SD", + "sdTooltip": "Prenos videa v standardni ločljivosti", + "standardDefinition": "Standardna ločljivost" + }, + "videothumbnail": { + "connectionInfo": "Informacije povezave", + "domute": "Utišaj", + "domuteOthers": "Izklopi zvok vsem ostalim", + "domuteVideo": "Izklopi kamero", + "domuteVideoOfOthers": "Izklopi kamero vsem ostalim", + "flip": "Zrcali", + "grantModerator": "Dodeli moderatorske pravice", + "kick": "Odstrani", + "moderator": "Moderator", + "mute": "Udeleženec je utišan", + "muted": "Utišan", + "remoteControl": "Oddaljeni nadzor", + "show": "Prikaži na sceni", + "videoMuted": "Kamera izklopljena", + "videomute": "Udeleženec je zaustavil kamero" + }, + "virtualBackground": { + "addBackground": "Dodaj ozadje", + "apply": "Uveljavi", + "backgroundEffectError": "Ni bilo mogoče uveljaviti virtualnega ozadja.", + "blur": "Zameglitev", + "deleteImage": "Izbriši sliko", + "desktopShare": "Deljenje zaslona", + "desktopShareError": "Ni bilo mogoče vklopiti deljenje zaslona", + "image1": "Obala", + "image2": "Bela stena", + "image3": "Bela soba", + "image4": "Črna svetilka", + "image5": "Gora", + "image6": "Gozd", + "image7": "Sončni vzhod", + "none": "Brez", + "pleaseWait": "Prosimo, počakajte…", + "removeBackground": "Odstrani ozadje", + "slightBlur": "Delna zameglitev", + "title": "Virtualna ozadja", + "uploadedImage": "Naložena slika {{index}}", + "webAssemblyWarning": "WebAssembly ni podprt." + }, + "volumeSlider": "Drsnik glasnosti", + "welcomepage": { + "accessibilityLabel": { + "join": "Kliknite, če se želite pridružiti", + "roomname": "Vnesi ime sobe" + }, + "addMeetingName": "Dodaj ime sestanka", + "appDescription": "{{app}} je šifrirana, popolnoma odprtokodna rešitev za izvajanje videokonferenc, ki jo lahko uporabljate neomejeno in brez registracije. Na srečanje lahko povabite kogarkoli - brez omejitev.", + "audioVideoSwitch": { + "audio": "Avdio", + "video": "Video" + }, + "calendar": "Koledar", + "connectCalendarButton": "Poveži svoj koledar", + "connectCalendarText": "Če želite v aplikaciji {{app}} videti vsa svoja srečanja, jo povežite s koledarjem. Poleg tega lahko v svoj koledar dodate še srečanja ponudnika {{provider}} in jih zaženete z enim klikom.", + "enterRoomTitle": "Začni novo srečanje", + "getHelp": "Pridobi pomoč", + "go": "POJDI", + "goSmall": "POJDI", + "headerSubtitle": "Varni in kvalitetni sestanki", + "headerTitle": "Jitsi Meet", + "info": "Informacije", + "jitsiOnMobile": "Jitsi na telefonih – prenesi aplikacijo in začni sestanek od kjerkoli", + "join": "PRIDRUŽI SE", + "logo": { + "calendar": "Logo koledarja", + "desktopPreviewThumbnail": "Sličica deljenja zaslona", + "googleLogo": "Google Logo", + "logoDeepLinking": "Jitsi meet logo", + "microsoftLogo": "Microsoft logo", + "policyLogo": "Logo politike" + }, + "mobileDownLoadLinkAndroid": "Prenesi aplikacijo za Android", + "mobileDownLoadLinkFDroid": "Prenesi aplikacijo za F-Droid", + "mobileDownLoadLinkIos": "Prenesi aplikacijo za iOS", + "moderatedMessage": "Ali rezerviraj povezavo sestanka, kjer boste edini moderator.", + "privacy": "Zasebnost", + "recentList": "Nedavno", + "recentListDelete": "Izbriši", + "recentListEmpty": "Seznam vaših preteklih srečanj je trenutno prazen. Pričnite novo srečanje, in tukaj se bo prikazala zgodovina vseh vaših srečanj.", + "reducedUIText": "Pozdravljeni v {{app}}!", + "roomNameAllowedChars": "Ime srečanje ne sme vsebovati naslednjih znakov: ?, &, :, ', \", %, #.", + "roomname": "Vnesite ime sobe", + "roomnameHint": "Vnesite ime ali URL naslov sobe, v kateri bo potekalo srečanje. Ime sobe si lahko izmislite, morate pa ga posredovati vsem tistim, s katerimi se v tej sobi želite udeležiti videokonference.", + "sendFeedback": "Pošlji povratno informacijo", + "startMeeting": "Začni sestanek", + "terms": "Pogoji", + "title": "Varen, zanesljiv in popolnoma brezplačen videokonferenčni sistem" + } +} diff --git a/lang/main-sq.json b/lang/main-sq.json new file mode 100644 index 0000000..a5290b0 --- /dev/null +++ b/lang/main-sq.json @@ -0,0 +1,1581 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Lidhje takimi: {{url}}" + }, + "add": "Ftoni", + "addContacts": "Ftoni kontaktet tuaja", + "contacts": "kontakte", + "copyInvite": "Kopjo ftesë takimi", + "copyLink": "Kopjo lidhje takimi", + "copyStream": "Kopjo lidhje transmetimi të drejtpërdrejtë", + "countryNotSupported": "S’e mbulojmë ende këtë vend.", + "countryReminder": "Thirrje nga jashtë ShBA-s? Ju lutemi, sigurohuni se e nisni me kodin e vendit!", + "defaultEmail": "Email-i Juaj Parazgjedhje", + "disabled": "S’mund të ftoni persona.", + "failedToAdd": "S’u arrit të shtohen pjesëmarrës", + "googleEmail": "Email Google", + "inviteMoreHeader": "Në takim jeni vetëm ju", + "inviteMoreMailSubject": "Merrni pjesë në takim me {{appName}}", + "inviteMorePrompt": "Ftoni më tepër persona", + "linkCopied": "Lidhja u kopjua në të papastër", + "noResults": "S’ka përfundime kërkimi me përputhje", + "outlookEmail": "Email Outlook", + "phoneNumbers": "numra telefonash", + "searching": "Po kërkohet…", + "shareInvite": "Jepuni të tjerëve ftesë takimi", + "shareLink": "Që të ftoni të tjerë, jepuni lidhjen për në takim", + "shareStream": "Jepuni të tjerëve lidhjen e transmetimit të drejtpërdrejtë", + "sipAddresses": "adresa SIP", + "telephone": "Telefon: {{number}}", + "title": "Ftoni persona në këtë takim", + "yahooEmail": "Email Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Audio Automjeti", + "headphones": "Kufje", + "none": "S’ka pajisje audio", + "phone": "Telefon", + "speaker": "Altoparlant" + }, + "audioOnly": { + "audioOnly": "Gjerësi e ulët bande" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "p.sh. 10000000 për 10 Mbps", + "assumedBandwidthBpsWarning": "Vlera më të mëdha mund të shkaktojnë probleme rrjeti.", + "customValue": "vlerë vetjake", + "customValueEffect": "për të ujdisur vlerën e tanishme bps", + "leaveEmpty": "lëreni të zbrazët", + "leaveEmptyEffect": "për të lejuar kryerje vlerësimesh", + "possibleValues": "Vlera të mundshme", + "setAssumedBandwidthBps": "Gjerësi bande e supozuar (bps)", + "title": "Rregullime gjerësi bande", + "zeroEffect": "për të çaktivizuar videon" + }, + "breakoutRooms": { + "actions": { + "add": "Shtoni aneks konsultimesh", + "autoAssign": "Caktoje automatikisht te anekse konsultimesh", + "close": "Mbylle", + "join": "Hyni", + "leaveBreakoutRoom": "Dilni nga aneks konsultimesh", + "more": "Më tepër", + "remove": "Hiqe", + "rename": "Riemërtojeni", + "renameBreakoutRoom": "Riemërtoni aneks konsultimesh", + "sendToBreakoutRoom": "Dërgoje pjesëmarrësin te:" + }, + "breakoutList": "Listë aneksesh", + "buttonLabel": "Dhoma aneks konsultimesh", + "defaultName": "Dhomë aneks konsultimesh #{{index}}", + "hideParticipantList": "Fshihe listën e pjesëmarrësve", + "mainRoom": "Dhoma kryesore", + "notifications": { + "joined": "Po hyhet te dhomë aneks konsultimesh \"{{name}}\"", + "joinedMainRoom": "Po hyhet te dhoma kryesore", + "joinedTitle": "Dhoma Aneks Konsultimesh" + }, + "showParticipantList": "Shfaq listë pjesëmarrësish", + "title": "Dhoma Aneks Konsultimesh" + }, + "calendarSync": { + "addMeetingURL": "Shtoni një lidhje takimi", + "confirmAddLink": "Doni të shtohet një lidhje Jitsi te kjo veprimtari?", + "error": { + "appConfiguration": "Integrimi i kalendarëve s’është formësuar si duhet.", + "generic": "Ndodhi një gabim. Ju lutemi, kontrolloni rregullimet për kalendarin tuaj, ose provoni të rifreskoni kalendarin.", + "notSignedIn": "Ndodhi një gabim teksa bëhej mirëfilltësimi për të parë veprimtari nga kalendari. Ju lutemi, kontrolloni rregullimet e kalendarit tuaj dhe riprovoni të hyni." + }, + "join": "Merrni pjesë", + "joinTooltip": "Merrni pjesë në takim", + "nextMeeting": "Takimi pasues", + "noEvents": "S’ka veprimtari të ardhshme të vëna në plan.", + "ongoingMeeting": "Takim në zhvillim e sipër", + "permissionButton": "Hapni rregullimet", + "permissionMessage": "Që të shihni në aplikacion takimet tuaja, janë të domosdoshme lejet mbi Kalendarin.", + "refresh": "Rifresko kalendarin", + "today": "Sot" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Përzgjidhni pajisje zëri" + }, + "labels": { + "buttonLabel": "Mënyra automjet", + "title": "Mënyra automjet", + "videoStopped": "Videoja juaj është ndalur" + } + }, + "chat": { + "enter": "Hyni në fjalosje", + "error": "Gabim: mesazhi juaj s’u dërgua. Arsye: {{error}}", + "fieldPlaceHolder": "Shtypni këtu mesazhin tuaj", + "lobbyChatMessageTo": "Mesazh fjalosjeje në holl për {{recipient}}", + "message": "Mesazh", + "messageAccessibleTitle": "{{user}} thotë:", + "messageAccessibleTitleMe": "unë them:", + "messageTo": "Mesazh privat për {{recipient}}", + "messagebox": "Shtypni një mesazh", + "newMessages": "Mesazhe të rinj", + "nickname": { + "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ë" + }, + "noMessagesMessage": "Te takimi s’ka ende mesazhe. Nisni një bisedë këtu!", + "privateNotice": "Mesazh privat për {{recipient}}", + "sendButton": "Dërgoje", + "smileysPanel": "Panel emoxhish", + "systemDisplayName": "Sistem", + "tabs": { + "chat": "Fjalosje", + "polls": "Pyetësorë" + }, + "title": "Fjalosje", + "titleWithPolls": "Fjalosje dhe Pyetësorë", + "you": "ju" + }, + "chromeExtensionBanner": { + "buttonText": "Instaloni Zgjerimin për Chrome", + "buttonTextEdge": "Instaloni Zgjerimin 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" + }, + "connectingOverlay": { + "joiningRoom": "Po ju lidhim me takimin tuaj…" + }, + "connection": { + "ATTACHED": "U bashkëngjitët", + "AUTHENTICATING": "Po bëhet mirëfilltësimi", + "AUTHFAIL": "Mirëfilltësimi dështoi", + "CONNECTED": "U lidh", + "CONNECTING": "Po lidhet", + "CONNFAIL": "Lidhja dështoi", + "DISCONNECTED": "U shkëput", + "DISCONNECTING": "Po shkëputet", + "ERROR": "Gabim", + "FETCH_SESSION_ID": "Po merret ID sesioni…", + "GET_SESSION_ID_ERROR": "Gabim marrjeje ID sesioni: {{code}}", + "GOT_SESSION_ID": "Po merret ID sesioni… U bë", + "LOW_BANDWIDTH": "Videoja për {{displayName}} është mbyllur, për të kursyer sasi trafiku" + }, + "connectionindicator": { + "address": "Adresë:", + "audio_ssrc": "SSRC Audioje:", + "bandwidth": "Gjerësi e hamendësuar bande:", + "bitrate": "Bitrate:", + "bridgeCount": "Numër shërbyesish: ", + "codecs": "Kodekë (A/V): ", + "connectedTo": "Lidhur te:", + "e2eeVerified": "I verifikuar si E2EE:", + "framerate": "Shpejtësi kuadrosh:", + "less": "Shfaq më pak", + "localaddress": "Adresë vendore:", + "localaddress_plural": "Adresa vendore:", + "localport": "Portë vendore:", + "localport_plural": "Porta vendore:", + "maxEnabledResolution": "maksimum dërgimi", + "more": "Shfaq më tepër", + "no": "jo", + "packetloss": "Humbje paketesh:", + "participant_id": "ID pjesëmarrësi:", + "quality": { + "good": "E mirë", + "inactive": "Jo aktive", + "lost": "Humbi", + "nonoptimal": "Jo optimale", + "poor": "E dobët" + }, + "remoteaddress": "Adresë e largët:", + "remoteaddress_plural": "Adresa të largëta:", + "remoteport": "Portë e largët:", + "remoteport_plural": "Porta të largëta:", + "resolution": "Qartësi:", + "savelogs": "Ruaji regjistrat", + "status": "Lidhje:", + "transport": "Transport:", + "transport_plural": "Transporte:", + "video_ssrc": "Video SSRC:", + "yes": "po" + }, + "dateUtils": { + "earlier": "Më herët", + "today": "Sot", + "yesterday": "Dje" + }, + "deepLinking": { + "appNotInstalled": "Që të merrni pjesë në këtë takim që nga telefoni juaj, ju duhet aplikacioni për celular {{app}}.", + "description": "S’ngjau gjë? Provuam të nisim takimin tuaj te aplikacioni për desktop {{app}}. Riprovoni, ose niseni nga aplikacioni web {{app}}.", + "descriptionNew": "S’ngjau gjë? Provuam nisjen e takimit tuaj te aplikacioni për desktop {{app}}.

Mund të riprovoni, ose ta nisni në web.", + "descriptionWithoutWeb": "S’ngjau gjë? Provuam nisjen e takimit tuaj te aplikacioni për desktop {{app}}.", + "downloadApp": "Shkarkoni aplikacionin", + "downloadMobileApp": "Shkarkojeni prej App Store", + "ifDoNotHaveApp": "Nëse s’e keni ende aplikacionin:", + "ifHaveApp": "Nëse e keni tashmë aplikacionin:", + "joinInApp": "Merrni pjesë në këtë takim duke përdorur aplikacionin", + "joinInAppNew": "Hyni që nga aplikacioni", + "joinInBrowser": "Hyni që nga shfletues", + "launchMeetingLabel": "Si doni të hyhet në këtë takim?", + "launchWebButton": "Nise në web", + "noDesktopApp": "S’e keni aplikacionin?", + "noMobileApp": "S’e keni aplikacionin?", + "or": "OR", + "termsAndConditions": "Duke vazhduar, pajtoheni me terms & conditions. tona", + "title": "Po niset takimi juaj në {{app}}…", + "titleNew": "Po niset takimi juaj…", + "tryAgainButton": "Riprovoni në desktop", + "unsupportedBrowser": "Duket se përdorni një shfletues që s’e mbulojmë." + }, + "defaultLink": "p.sh., {{url}}", + "defaultNickname": "p.sh., Ndrikulla", + "deviceError": { + "cameraError": "S’u arrit të hyhej në kamerën tuaj", + "cameraPermission": "Gabim në marrje lejesh mbi kamerën", + "microphoneError": "S’u arrit të hyhej në mikrofonin tuaj", + "microphonePermission": "Gabim në marrje lejesh mbi mikrofonin" + }, + "deviceSelection": { + "hid": { + "callControl": "Kontroll thirrjesh", + "connectedDevices": "Pajisje të lidhura:", + "deleteDevice": "Fshije pajisjen", + "pairDevice": "Çiftoni pajisje" + }, + "noPermission": "S’u akordua leje", + "previewUnavailable": "S’bëhet dot paraparje", + "selectADevice": "Përzgjidhni një pajisje", + "testAudio": "Testojeni" + }, + "dialIn": { + "screenTitle": "Përmbledhje rënieje numrash" + }, + "dialOut": { + "statusMessage": "tani është {{status}}" + }, + "dialog": { + "Back": "Mbrapsht", + "Cancel": "Anuloje", + "IamHost": "Hyni", + "Ok": "OK", + "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.", + "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…", + "Yes": "Po", + "accessibilityLabel": { + "Cancel": "Anuloje (dilni nga dialogu)", + "Ok": "OK (ruajeni dhe dilni nga dialogu)", + "close": "Mbylle dialogun", + "liveStreaming": "Transmetim i Drejtpërdrejtë", + "sharingTabs": "Mundësi ndarjeje me të tjerë" + }, + "add": "Shtoni", + "addMeetingNote": "Shtoni një shënim rreth këtij takimi", + "addOptionalNote": "Shtoni një shënim (në daçi):", + "allow": "Lejoje", + "allowToggleCameraDialog": "A e lejoni {{initiatorName}} të ndryshojë anën nga sheh kamera juaj?", + "allowToggleCameraTitle": "Të lejohet ndryshimi i kamerës?", + "alreadySharedVideoMsg": "Një tjetër pjesëmarrës po ndan me të tjerët një video. Kjo konferencë lejon vetëm një ndarje videoje në herë.", + "alreadySharedVideoTitle": "Lejohet vetëm një ndarje videoje me të tjerët në herë", + "applicationWindow": "Dritare aplikacioni", + "authenticationRequired": "Lypset mirëfilltësim", + "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.", + "cameraNotSendingDataTitle": "S’arrihet të përdoret kamera", + "cameraPermissionDeniedError": "S’keni akorduar leje për të përdorur kamerën tuaj. Mundeni prapëseprapë të merrni pjesë në konferencë, por të tjerët s’do t’ju shohin. Përdorni butonin për kamerën, te shtylla e adresave, për ta ndrequr këtë.", + "cameraTimeoutError": "S’u nis dot burimi i videos. Ndodhi mbarim kohe!", + "cameraUnknownError": "S’përdoret dot kamera, për një arsye të panjohur.", + "cameraUnsupportedResolutionError": "Kamera juaj s’e mbulon dot qartësinë e domosdoshme për videon.", + "close": "Mbylle", + "conferenceDisconnectMsg": "Mund të doni të kontrolloni lidhjen tuaj në rrjet. Rilidhje pas {{seconds}} sekondash…", + "conferenceDisconnectTitle": "Jeni shkëputur.", + "conferenceReloadMsg": "Po provojmë ta ndreqim këtë gjë. Rilidhje pas {{seconds}} sekondash…", + "conferenceReloadTitle": "Mjerisht, diç shkoi ters.", + "confirm": "Ripohojeni", + "confirmNo": "Jo", + "confirmYes": "Po", + "connectError": "Hëm! Diç shkoi ters dhe s’mundëm të lidhemi dot me konferencën.", + "connectErrorWithMsg": "Hëm! Diç shkoi ters dhe s’mundëm të lidhemi dot me konferencën: {{msg}}", + "connecting": "Po lidhet", + "contactSupport": "Lidhuni me ata të asistencës", + "copied": "U kopjua", + "copy": "Kopjoje", + "demoteParticipantDialog": "Jeni i sigurt se doni ta kaloni këtë pjesëmarrës si vizitor?", + "demoteParticipantTitle": "Kaloje si vizitor", + "dismiss": "Hidhe tej", + "displayNameRequired": "Njatjeta! Cili është emri juaj?", + "done": "U bë", + "e2eeDescription": "Fshehtëzimi Skaj-më-Skaj aktualisht është EKSPERIMENTAL. Ju lutemi, mbani parasysh se aktivizimi i fshehtëzimit skaj-më-skaj praktikisht do të çaktivizojë shërbime të ofruara më anë të shërbyesit, të tillë si: pjesëmarrje me telefon. Mbani parasysh gjithashtu se takimi do të funksionojë vetëm për persona që hyjnë në të nga shfletues të cilët mbulojnë futje rrjedhash transmetimi.", + "e2eeDisabledDueToMaxModeDescription": "S’mund të aktivizohet fshehtëzimi Skaj-më-Skaj, për shkak të numrit të madh të pjesëmarrësve në konferencë.", + "e2eeLabel": "Aktivizo Fshehtëzim Skaj-më-Skaj", + "e2eeWarning": "KUJDES: Jo krejt pjesëmarrësit në këtë takim duket se kanë mbulim për fshehtëzim Skaj-më-Skaj. Në e aktivizofshi, ata s’do të jenë në gjendje t’ju shohin apo dëgjojnë.", + "e2eeWillDisableDueToMaxModeDescription": "KUJDES: Fshehtëzimi Skaj-më-Skaj do të çaktivizohet automatikisht, nëse në konferencë vijnë më tepër pjesëmarrës.", + "embedMeeting": "Trupëzoni takim", + "enterDisplayName": "Jepni këtu emrin tuaj", + "error": "Gabim", + "errorRoomCreationRestriction": "Provuat të hyni shumë shpejt, ju lutemi, kthehuni pas pak.", + "gracefulShutdown": "Shërbimi ynë është aktualisht i ndërprerë, për punë mirëmbajtjeje. Ju lutemi, riprovoni më vonë.", + "grantModeratorDialog": "Jeni i sigurt se doni të akordohen të drejta moderatori për {{participantName}}?", + "grantModeratorTitle": "Akordoni të drejta moderatori", + "hide": "Fshihe", + "hideShareAudioHelper": "Mos e shfaq më këtë dialog", + "incorrectPassword": "Emër përdoruesi ose fjalëkalim i pasaktë", + "incorrectRoomLockPassword": "Fjalëkalim i pasaktë", + "internalError": "Hëm! Diç shkoi ters. Ndodhi gabimi vijues: {{error}}", + "internalErrorTitle": "Gabim i brendshëm", + "kickMessage": "Për më tepër hollësi, mund të lidheni me {{participantDisplayName}}.", + "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?", + "kickTitle": "Ooh! {{participantDisplayName}} ju përzuri nga takimi", + "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)", + "lockTitle": "Kyçja dështoi", + "login": "Hyrje", + "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", + "maxUsersLimitReached": "U mbërrit në kufi numri maksimum pjesëmarrësish. Konferenca është plot. Ju lutemi, lidhuni me të zotin e takimit, ose provoni më vonë!", + "maxUsersLimitReachedTitle": "U mbërrit në kufi numri maksimum pjesëmarrësish", + "micConstraintFailedError": "Mikrofoni juaj s’plotëson disa nga kufizimet e domosdoshme.", + "micNotFoundError": "S’u gjet mikrofon.", + "micNotSendingData": "Kaloni te rregullimet e kompjuterit tuaj, që t’i hiqni mikrofonit heshtimin dhe të ujdisni volumin për të", + "micNotSendingDataTitle": "Mikrofoni juaj është heshtuar nga rregullimet e sistemit tuaj", + "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", + "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}}?", + "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?", + "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.", + "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", + "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", + "muteParticipantsVideoDialog": "Jeni i sigurt se doni të çaktivizoni kamerën e këtij pjesëmarrësi? S’do të jeni në gjendje të riaktivizoni kamerën, por ai mund ta riaktivizojë kurdo.", + "muteParticipantsVideoDialogModerationOn": "Jeni i sigurt se doni të çaktivizoni kamerën e këtij pjesëmarrësi? S’do të jeni në gjendje ta riaktivizoni dhe as ai s’do të mundet.", + "muteParticipantsVideoTitle": "Të çaktivizohet kamera e këtij pjesëmarrësi?", + "noDropboxToken": "Token Dropbox jo i vlefshëm", + "password": "Fjalëkalim", + "passwordLabel": "Takimi është kyçur nga një pjesëmarrës. Ju lutemi, që të hyni, jepni $t(lockRoomPassword).", + "passwordNotSupported": "Nuk mbulohet ujdisja e një takimi $t(lockRoomPassword).", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nuk mbulohet", + "passwordRequired": "$t(lockRoomPasswordUppercase) i domosdoshëm", + "permissionCameraRequiredError": "Leja mbi kamerën është e domosdoshme për të marrë pjesë në konferenca me video. Ju lutemi, akordojeni që nga Rregullimet", + "permissionErrorTitle": "Leje e domosdoshme", + "permissionMicRequiredError": "Leja mbi mikrofonin është e domosdoshme për të marrë pjesë në konferenca me audio. Ju lutemi, akordojeni që nga Rregullimet", + "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ë", + "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!", + "remoteControlErrorMessage": "Ndodhi një gabim teksa provohej të kërkoheshin leje kontrolli së largëti nga {{user}}!", + "remoteControlRequestMessage": "A do ta lejoni {{user}} të kontrollojë së largëti desktopin tuaj?", + "remoteControlShareScreenWarning": "Mbani parasysh se nëse shtypni “Lejoje”, do t’u tregoni ekranin tuaj!", + "remoteControlStopMessage": "Sesioni me kontroll së largëti përfundoi!", + "remoteControlTitle": "Kontroll desktopi së largëti", + "remoteUserControls": "Kontrolle përdoruesi së largëti të {{username}}", + "removePassword": "Hiqe $t(lockRoomPassword)", + "removeSharedVideoMsg": "Jeni i sigurt se doni të hiqni videon që keni ndarë me të tjerë?", + "removeSharedVideoTitle": "Hiqe videon e ndarë me të tjerë", + "renameBreakoutRoomLabel": "Emër dhome", + "renameBreakoutRoomTitle": "Riemërtoni aneks konsultimesh", + "reservationError": "Gabim sistemi rezervimi", + "reservationErrorMsg": "Kod gabimi: {{code}}, mesazh: {{msg}}", + "retry": "Riprovoni", + "screenSharingAudio": "Ndajeni audion me të tjerë", + "screenSharingFailed": "Hëm! Diç shkoi ters, s’qemë në gjendje të nisnim tregim ekrani!", + "screenSharingFailedTitle": "Tregimi i ekrani dështoi!", + "screenSharingPermissionDeniedError": "Hëm! Diç shkoi ters me lejet tuaja për tregim ekrani. Ju lutemi, ringarkojeni dhe riprovoni.", + "searchInSalesforce": "Kërkoni në Salesforce", + "searchResults": "Përfundime kërkimi({{count}})", + "searchResultsDetailsError": "Diç shkoi ters teksa provohej të merreshin të dhënat e të zotit.", + "searchResultsError": "Diç shkoi ters teksa provohej të merreshin të dhëna.", + "searchResultsNotFound": "S’u gjetën përfundime kërkimi.", + "searchResultsTryAgain": "Provoni duke përdorur terma alternativë.", + "sendPrivateMessage": "Tani së fundi morët një mesazh privat. Kishit ndërmend t’i përgjigjeni privatisht, apo doni t’ia dërgoni mesazhin grupit?", + "sendPrivateMessageCancel": "Dërgoja grupit", + "sendPrivateMessageOk": "Dërgoje privatisht", + "sendPrivateMessageTitle": "Të dërgohet privatisht?", + "serviceUnavailable": "Shërbim jashtë funksionimi", + "sessTerminated": "Thirrja përfundoi", + "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ë\"", + "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ë”.", + "shareAudioWarningH1": "Nëse doni të ndani vetëm audio me të tjerë:", + "shareAudioWarningTitle": "Lypset të ndalni tregimin e ekranit, para se të ndani audio me të tjerë", + "shareMediaWarningGenericH2": "Nëse doni të tregoni ekranin dhe të ndani audio me të tjerë", + "shareScreenWarningD1": "lypset të ndalni ndarjen e audios me të tjerë, para se të tregoni ekranin tuaj.", + "shareScreenWarningD2": "lypset të ndalni ndarjen e audios me të tjerë, të nisni tregimin e ekranit dhe t’i vini shenjë mundësisë “ndani audio me të tjerë”.", + "shareScreenWarningH1": "Nëse thjesht doni të tregoni ekranin tuaj:", + "shareScreenWarningTitle": "Lypset të ndalni ndarjen e audios me të tjerë, para tregimit të ekranit tuaj", + "shareVideoConfirmPlay": "Ju ndan një hap nga hapja e një sajti të jashtëm. Doni të vazhdohet?", + "shareVideoConfirmPlayTitle": "{{name}} ndau me ju një video.", + "shareVideoLinkError": "Hëm, kjo video s’mund të luhet.", + "shareVideoLinkStopped": "Videoja nga {{name}} u ndal.", + "shareVideoTitle": "Ndani video me të tjerë", + "shareYourScreen": "Tregoni ekranin tuaj", + "shareYourScreenDisabled": "Tregimi i ekranit është i çaktivizuar.", + "sharedVideoDialogError": "Gabim: URL e pavlefshme", + "sharedVideoLinkPlaceholder": "Lidhje YouTube ose lidhje e drejtpërdrejtë për video", + "show": "Shfaqe", + "start": "Fillo ", + "startLiveStreaming": "Nisni transmetim të drejtpërdrejtë", + "startRecording": "Fillo regjistrim", + "startRemoteControlErrorMessage": "Ndodhi një gabim teksa provohej të nisej sesioni i kontrollit së largëti!", + "stopLiveStreaming": "Ndale transmetimin e drejtpërdrejtë", + "stopRecording": "Ndale regjistrimin", + "stopRecordingWarning": "Jeni i sigurt se doni të ndalet regjistrimi?", + "stopStreamingWarning": "Jeni i sigurt se doni të ndalet transmetimi i drejtpërdrejtë?", + "streamKey": "Kyç transmetimi të drejtpërdrejtë", + "thankYou": "Faleminderit që përdorni {{appName}}!", + "token": "token", + "tokenAuthFailed": "Na ndjeni, s’keni leje të merrni pjesë në këtë thirrje.", + "tokenAuthFailedReason": { + "audInvalid": "Vlerë `aud` e pavlefshme. Duhet të jetë `jitsi`.", + "contextNotFound": "Prej ngarkesës mungon objekti `context`.", + "expInvalid": "Vlerë `exp` e pavlefshme.", + "featureInvalid": "Veçori e pavlefshme: {{feature}}, gjasat janë të mos jetë sendërtuar ende.", + "featureValueInvalid": "Vlerë e pavlefshme për veçorinë: {{feature}}.", + "featuresNotFound": "Prej ngarkesës mungon objekti `features`.", + "headerNotFound": "Mungon krye.", + "issInvalid": "Vlerë `iss` e pavlefshme. Duhet të jetë `chat`.", + "kidMismatch": "ID kyçi (kid) nuk përputhet me sub.", + "kidNotFound": "Mungon ID Kyçi (kid).", + "nbfFuture": "Vlera `nbf` gjendet në të ardhmen.", + "nbfInvalid": "Vlerë `nbf` e pavlefshme.", + "payloadNotFound": "Mungon ngarkesë.", + "tokenExpired": "Token-i ka skaduar." + }, + "tokenAuthFailedTitle": "Mirëfilltësimi dështoi", + "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", + "unlockRoom": "Hiq $t(lockRoomPassword) takimi", + "user": "Përdorues", + "userIdentifier": "Identifikues përdoruesi", + "userPassword": "Fjalëkalim përdoruesi", + "verifyParticipantConfirm": "Përputhen", + "verifyParticipantDismiss": "Nuk përputhen", + "verifyParticipantQuestion": "EKSPERIMENTALE: Pyeteni pjesëmarrësin {{participantName}} nëse sheh të njëjtën lëndë, sipas të njëjtës radhë.", + "verifyParticipantTitle": "Verifikim përdoruesi", + "videoLink": "Lidhje videoje", + "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.", + "whiteboardLimitReference": "Për më tepër hollësi, ju lutemi, vizitoni", + "whiteboardLimitReferenceUrl": "sajtin tonë", + "whiteboardLimitTitle": "Kufizim përdorimi tabele", + "yourEntireScreen": "Krejt ekranin tuaj" + }, + "documentSharing": { + "title": "Dokument i Ndarë" + }, + "e2ee": { + "labelToolTip": "Komunikimi Audio dhe Video në këtë thirrje fshehtëzohet skaj më skaj" + }, + "embedMeeting": { + "title": "Trupëzojeni këtë takim" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Zgjedhja juaj: {{rating}}" + }, + "average": "Çka", + "bad": "I dobët", + "detailsLabel": "Na thoni më tepër rreth tij.", + "good": "I mirë", + "rateExperience": "Vlerësoni funksionimin e takimit për ju", + "star": "Vlerësojeni Me Yll", + "veryBad": "Shumë i Dobët", + "veryGood": "Shumë i Mirë" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Miniatura videosh" + } + }, + "giphy": { + "noResults": "S’u gjetën përfundime :(", + "search": "Kërkoni në GIPHY" + }, + "incomingCall": { + "answer": "Përgjigjuni", + "audioCallTitle": "Thirrje ardhëse", + "decline": "Hidhe tej", + "productLabel": "nga Jitsi Meet", + "videoCallTitle": "Thirrje ardhëse me video" + }, + "info": { + "accessibilityLabel": "Shfaq hollësi", + "addPassword": "Shtoni $t(lockRoomPassword)", + "cancelPassword": "Anulo $t(lockRoomPassword)", + "conferenceURL": "Lidhje:", + "copyNumber": "Kopjoje numrin", + "country": "Vend", + "dialANumber": "Për të marrë pjesë në takimin tuaj, formoni një nga këta numra dhe mandej jepni PIN-in.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Na ndjeni, aktualisht nuk mbulohet formimi i numrave.", + "dialInNumber": "Formim numri:", + "dialInSummaryError": "Gabim në sjellje hollësish formimi numri tani. Ju lutemi, riprovoni më vonë.", + "dialInTollFree": "Pa Pagesë", + "genericError": "Oh, diç shkoi ters.", + "inviteLiveStream": "Që të shihni transmetimin e drejtpërdrejtë të këtij takimi, klikoni mbi këtë lidhje: {{url}}", + "invitePhone": "Nga ana tjetër, që të merrni pjesë me telefon, prekni këtë: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Po kërkoni për një tjetër numër?\nShihni numra takimi: {{url}}\n\n\nNëse po provohet gjithashtu numër përmes telefoni dhome, merrni pjesë pa lidhje audioje: {{silentUrl}}", + "inviteSipEndpoint": "Për të marrë pjesë duke përdorur adresën SIP, jepni këtë: {{sipUri}}", + "inviteTextiOSInviteUrl": "Që të hyni, klikoni lidhjen vijuese: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Nëse po i bini numrit përmes një telefoni dhome, përdorni këtë lidhje për të hyrë pa lidhur audion: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} po ju fton në një takim.", + "inviteTextiOSPhone": "Që të hyni përmes një telefoni, përdorni këtë numër: {{number}},,{{conferenceID}}#. Nëse po kërkoni për tjetër numër, kjo është lista e plotë: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Jeni ftuar të merrni pjesë në një takim.", + "inviteURLFirstPartPersonal": "{{name}} po ju fton në një takim.\n", + "inviteURLSecondPart": "\nMerrni pjesë te takimi:\n{{url}}\n", + "label": "Hollësi për t’i rënë numrit", + "liveStreamURL": "Transmetim i drejtpërdrejtë:", + "moreNumbers": "Më tepër numra", + "noNumbers": "S’ka numra për përdorim.", + "noPassword": "Asnjë", + "noRoom": "S’u dha dhomë për të cilën të formësohet numri.", + "noWhiteboard": "S’u ngarkua dot tabela.", + "numbers": "Numra Për T’u Përdorur", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Keni mbërritur në kufijtë e planit tuaj.", + "sip": "Adresë SIP", + "sipAudioOnly": "Adresë SIP vetëm për audio", + "title": "Ndani me të tjerë", + "tooltip": "Ndani me të tjerë lidhje dhe hollësi numrash për këtë takim", + "upgradeOptions": "Ju lutemi, shihni mundësitë e përmirësimit, te", + "whiteboardError": "Gabim në ngarkimin e tabelës. Ju lutemi, riprovoni më vonë." + }, + "inlineDialogFailure": { + "msg": "Ngecëm pak.", + "retry": "Riprovo", + "support": "Asistencë", + "supportMsg": "Nëse kjo vazhdon të ndodhë, lidhuni me" + }, + "inviteDialog": { + "alertText": "S’u arrit të ftohen disa pjesëmarrës.", + "header": "Ftoni", + "searchCallOnlyPlaceholder": "Jepni numër telefoni", + "searchPeopleOnlyPlaceholder": "Kërkoni për pjesëmarrës", + "searchPlaceholder": "Pjesëmarrës ose numër telefoni", + "send": "Dërgoje" + }, + "jitsiHome": "Stemë {{logo}}, lidhje për te Faqja Hyrëse", + "keyboardShortcuts": { + "focusLocal": "Fokusi te videoja juaj", + "focusRemote": "Fokusi te videoja e një personi tjetër", + "fullScreen": "Hyni ose dilni në mënyrën “Sa krejt ekrani”", + "giphyMenu": "Shfaq/Fshish menu GIPHY", + "keyboardShortcuts": "Shkurtore tastiere", + "localRecording": "Shfaqni ose fshini kontrolle regjistrimi lokal", + "mute": "Mbyllni ose hapni mikrofonin tuaj", + "pushToTalk": "Që të flisni, shtypni", + "raiseHand": "Ngrini ose ulni dorën", + "showSpeakerStats": "Shfaq statistika folësish", + "toggleChat": "Hapni ose mbyllni fjalosjen", + "toggleFilmstrip": "Shfaqni ose fshihni miniatura video", + "toggleParticipantsPane": "Shfaqni ose fshihni kuadratin e pjesëmarrësve", + "toggleScreensharing": "Kaloni nga kamera te dhënie ekrani, ose anasjelltas", + "toggleShortcuts": "Shfaqni ose fshihni shkurtore tastiere", + "videoMute": "Vini në punë ose ndalni kamerën tuaj" + }, + "largeVideo": { + "screenIsShared": "Po u tregoni ekranin tuaj", + "showMeWhatImSharing": "Tregomë ç’po u tregoj" + }, + "liveStreaming": { + "busy": "Po përpiqemi të lirojmë burime transmetimi. Ju lutemi, riprovoni pas pak minutash.", + "busyTitle": "Krejt transmetuesit janë aktualisht të zënë", + "changeSignIn": "Ndërroni llogari.", + "choose": "Zgjidhni një transmetim të drejtpërdrejtë", + "chooseCTA": "Zgjidhni një mundësi transmetimi. Aktualisht jeni i futur si {{email}}.", + "enterStreamKey": "Jepni këtu kyçin tuaj për transmetim të drejtpërdrejtë në YouTube.", + "error": "Transmetimi i Drejtpërdrejtë dështoi. Ju lutemi, riprovoni.", + "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.", + "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ë", + "onBy": "{{name}} nisi transmetimin e drejtpërdrejtë", + "pending": "Po niset Transmetimi i Drejtpërdrejtë…", + "policyError": "Provuat të nisni një transmetim të drejtpërdrejtë shumë shpejt. Ju lutemi, ripovoni më vonë!", + "serviceName": "Shërbim Transmetimi i Drejtpërdrejtë", + "sessionAlreadyActive": "Ky sesion po regjistrohet ose transmetohet drejtpërsëdrejti tashmë.", + "signIn": "Hyni me Google", + "signInCTA": "Hyni, ose jepni kyçin tuaj për transmetim të drejtpërdrejtë nga YouTube-i.", + "signOut": "Dilni", + "signedInAs": "Aktualisht jeni i futur si:", + "start": "Nisni një transmetim të drejtpërdrejtë", + "streamIdHelp": "Ç’është?", + "title": "Transmetim i Drejtpërdrejtë", + "unavailableTitle": "Transmetim i Drejtpërdrejtë jo i passhëm", + "youtubeTerms": "Kushte shërbimi YouTube" + }, + "lobby": { + "backToKnockModeButton": "Kërkoji të marrë pjesë", + "chat": "Fjalosje", + "dialogTitle": "Mënyra holl", + "disableDialogContent": "Mënyra holl është aktualisht e aktivizuar. Kjo veçori siguron që pjesëmarrës të padëshiruar të mos mund të hyjnë në takimin tuaj. Doni të çaktivizohet?", + "disableDialogSubmit": "Çaktivizoje", + "emailField": "Jepni adresën tuaj email", + "enableDialogPasswordField": "Caktoni fjalëkalim (në daçi)", + "enableDialogSubmit": "Aktivizoje", + "enableDialogText": "Mënyra holl ju lejon të mbroni takimin tuaj duke u lejuar hyrje njerëzve vetëm pas një miratimi formal nga një moderator.", + "enterPasswordButton": "Jepni fjalëkalim takimi", + "enterPasswordTitle": "Jepni fjalëkalimin për hyrje në takim", + "errorMissingPassword": "Ju lutemi, jepni fjalëkalimin e takimit", + "invalidPassword": "Fjalëkalim i pavlefshëm", + "joinRejectedMessage": "Kërkesa juaj për hyrje u hodh poshtë nga një moderator.", + "joinRejectedTitle": "Kërkesa për pjesëmarrje u hodh poshtë.", + "joinTitle": "Merrni Pjesë Në Takim", + "joinWithPasswordMessage": "Po provohet të hyhet me fjalëkalim, ju lutemi, pritni…", + "joiningMessage": "Do të hyni në takim sapo dikush të pranojë kërkesën tuaj", + "joiningTitle": "Po kërkohet të hyhet në takim…", + "joiningWithPasswordTitle": "Po hyhet me fjalëkalim…", + "knockButton": "Kërko të Hyhet", + "knockTitle": "Dikush dëshiron të hyjë në takim", + "knockingParticipantList": "Listë pjesëmarrësish që duan të hyjnë", + "lobbyChatStartedNotification": "{{moderator}} filloi një fjalosje në holl me {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} ka filluar një fjalosje në holl me ju.", + "lobbyClosed": "Dhoma holl u mbyll.", + "nameField": "Jepni emrin tuaj", + "notificationLobbyAccessDenied": "Hyrja e {{targetParticipantName}} është hedhur poshtë nga {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} është lejuar të hyjë nga {{originParticipantName}}", + "notificationLobbyDisabled": "Holli është çaktivizuar nga {{originParticipantName}}", + "notificationLobbyEnabled": "Holli është aktivizuar nga {{originParticipantName}}", + "notificationTitle": "Holl", + "passwordJoinButton": "Hyni", + "title": "Holl", + "toggleLabel": "Aktivizoni hollin" + }, + "localRecording": { + "clientState": { + "off": "Off", + "on": "On", + "unknown": "E panjohur" + }, + "dialogTitle": "Kontrolle Regjistrimesh Vendore", + "duration": "Kohëzgjatje", + "durationNA": "N/A", + "encoding": "Kodim", + "label": "LOR", + "labelToolTip": "Po bëhet regjistrim vendor", + "localRecording": "Regjistrim Vendor", + "me": "Unë", + "messages": { + "engaged": "Po bëhet regjistrim vendor.", + "finished": "Sesioni i regjistrimit {{token}} përfundoi. Ju lutemi, dërgojani kartelën e regjistrimit moderatorit.", + "finishedModerator": "Sesioni i regjistrimit {{token}} përfundoi. Regjistrimi i pistës vendore u ruajt. Ju lutemi, kërkojuni pjesëmarrësve të tjerë të parashtrojnë regjistrimet e tyre.", + "notModerator": "S’jeni moderatori. S’mund të nisni ose ndalni regjistrim vendor." + }, + "moderator": "Moderator", + "no": "Jo", + "participant": "Pjesëmarrës", + "participantStats": "Statistika Pjesëmarrësish", + "selectTabTitle": "🎥 Ju lutemi, për regjistrim përzgjidhni këtë skedë", + "sessionToken": "Token Sesioni", + "start": "Nis Regjistrim", + "stop": "Ndale Regjistrimin", + "stopping": "Po ndalet Regjistrimi", + "wait": "Ju lutemi, prisni, teksa ruajmë regjistrimin tuaj", + "yes": "Po" + }, + "lockRoomPassword": "fjalëkalim", + "lockRoomPasswordUppercase": "Fjalëkalim", + "lonelyMeetingExperience": { + "button": "Ftoni të tjerë", + "youAreAlone": "Jeni i vetmi në takim" + }, + "me": "unë", + "notify": { + "OldElectronAPPTitle": "Cenueshmëri sigurie!", + "allowAction": "Lejoje", + "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", + "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", + "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!", + "disconnected": "u shkëput", + "displayNotifications": "Shfaq njoftime për", + "dontRemindMe": "Mos ma kujto", + "focus": "Fokusi te konferenca", + "focusFail": "{{component}} jo i passhëm - riprovoni pas {{ms}} sekondash", + "gifsMenu": "GIPHY", + "groupTitle": "Njoftime", + "hostAskedUnmute": "Moderatori do të donte të flisnit", + "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ë.", + "invitedOneMember": "{{name}} u ftua", + "invitedThreePlusMembers": "{{name}} dhe {{count}} të tjerë u ftuan", + "invitedTwoMembers": "{{first}} dhe {{second}} u ftuan", + "joinMeeting": "Hyni", + "kickParticipant": "{{kicked}} u përzu nga {{kicker}}", + "leftOneMember": "{{name}} doli nga takimi", + "leftThreePlusMembers": "{{name}} dhe mjaft të tjerë dolën nga takimi", + "leftTwoMembers": "{{first}} dhe {{second}} dolën nga takimi", + "linkToSalesforce": "Lidheni te Salesforce", + "linkToSalesforceDescription": "Mund ta lidhni përmbledhjen e takimit te një objekt Salesforce.", + "linkToSalesforceError": "S’u arrit të lidhe takimi te Salesforce", + "linkToSalesforceKey": "Lidheni këtë takim", + "linkToSalesforceProgress": "Po lidhet takimi te Salesforce…", + "linkToSalesforceSuccess": "Takimi u lidh te Salesforce", + "localRecordingStarted": "{{name}} ka filluar një regjistrim vendor.", + "localRecordingStopped": "{{name}} ka ndalur një regjistrim vendor.", + "me": "Unë", + "moderationInEffectCSDescription": "Ju lutemi, ngrini dorën, nëse doni të tregoni ekranin tuaj.", + "moderationInEffectCSTitle": "Tregimi i ekranit është bllokuar nga moderatori", + "moderationInEffectDescription": "Ju lutemi, ngrini dorën, nëse doni të flisni.", + "moderationInEffectTitle": "Mikrofoni juaj është heshtuar nga moderatori", + "moderationInEffectVideoDescription": "Ju lutemi, ngrini dorën, nëse doni të niset kamera juaj.", + "moderationInEffectVideoTitle": "Kamera juaj është bllokuar nga moderatori", + "moderationRequestFromModerator": "Organizatori do të donte të hiqnit heshtimin", + "moderationRequestFromParticipant": "Dëshiron të flasë", + "moderationStartedTitle": "Moderimi filloi", + "moderationStoppedTitle": "Moderimi përfundoi", + "moderationToggleDescription": "nga {{participantDisplayName}}", + "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}}", + "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.", + "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!", + "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.", + "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", + "screenSharingAudioOnlyTitle": "Mënyra “”Punimi më i mirë", + "selfViewTitle": "Mundeni përherë të hiqni fshehjen e pamjes së vetes, që nga rregullimet", + "somebody": "Dikush", + "startSilentDescription": "Që të aktivizohet audioja, rihyni në takim", + "startSilentTitle": "Hytë pa zë në dalje!", + "suboptimalBrowserWarning": "Kemi frikë se funksionimi i takimit për ju s’do të jetë kushedi këtu. Po kërkojmë rrugë për ta përmirësuar këtë punë, por deri atëherë, ju lutemi, provoni të përdorni një nga shfletuesit e mbuluar plotësisht.", + "suboptimalExperienceTitle": "Sinjalizim Mbi Shfletuesin", + "suggestRecordingAction": "Niseni", + "suggestRecordingDescription": "Do të donit të nisej një regjistrim?", + "suggestRecordingTitle": "Regjistroje këtë takim", + "unmute": "Çheshtoje", + "videoMutedRemotelyDescription": "Mundeni përherë ta rihapni.", + "videoMutedRemotelyTitle": "Videoja juaj u mbyll nga {{moderator}}", + "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}}", + "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" + }, + "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", + "breakoutRooms": "Dhoma anekse konsultimesh", + "goLive": "Go live", + "invite": "Ftoni Dikë", + "lowerAllHands": "Uli krejt duart", + "lowerHand": "Uleni 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" + }, + "close": "Mbylle", + "headings": { + "lobby": "Holli ({{count}})", + "participantsList": "Pjesëmarrës në takim ({{count}})", + "visitorInQueue": " (në pritje {{count}})", + "visitorRequests": " (requests {{count}})", + "visitors": "Vizitorë {{count}}", + "waitingLobby": "Duke pritur në holl ({{count}})" + }, + "search": "Kërkoni te pjesëmarrësit", + "title": "Pjesëmarrës" + }, + "passwordDigitsOnly": "Deri në {{number}} shifra", + "passwordSetRemotely": "Caktuar nga një tjetër pjesëmarrës", + "pinParticipant": "{{participantName}} - Fiksoje", + "pinnedParticipant": "Pjesëmarrësi është fiksuar", + "polls": { + "answer": { + "edit": "Përpunojeni", + "send": "Dërgoje", + "skip": "Anashkaloje", + "submit": "Parashtroje" + }, + "by": "Nga {{ name }}", + "closeButton": "Mbylle pyetësorin", + "create": { + "addOption": "Shtoni mundësi", + "answerPlaceholder": "Mundësia {{index}}", + "cancel": "Anuloje", + "create": "Krijoni një pyetësor", + "pollOption": "Mundësi pyetësori {{index}}", + "pollQuestion": "Pyetje Pyetësori", + "questionPlaceholder": "Bëni një pyetje", + "removeOption": "Hiqe mundësinë", + "save": "Ruaje", + "send": "Dërgoje" + }, + "errors": { + "notUniqueOption": "Opsionet duhet të jenë unike" + }, + "notification": { + "description": "Që të votoni, hapni skedën e pyetësorëve", + "title": "Te ky takim u shtua një pyetësor i ri" + }, + "results": { + "changeVote": "Ndryshoni votën", + "empty": "Te takimi s’ka ende pyetësorë. Nisni një pyetësor këtu!", + "hideDetailedResults": "Fshihi hollësitë", + "showDetailedResults": "Shfaqi hollësitë", + "vote": "Votoni" + } + }, + "poweredby": "bazuar në", + "prejoin": { + "audioAndVideoError": "Gabim audio dhe video:", + "audioDeviceProblem": "Ka një problem me pajisjen tuaj audio", + "audioOnlyError": "Gabim audio:", + "audioTrackError": "S’u krijua dot pistë audio.", + "callMe": "Thirrmë", + "callMeAtNumber": "Thirrmë në këtë numër:", + "calling": "Po thirret", + "configuringDevices": "Po formësohen pajisjet…", + "connectedWithAudioQ": "Jeni lidhur me audio?", + "connection": { + "failed": "Prova e lidhjes dështoi!", + "good": "Lidhja juaj internet duket mirë!", + "nonOptimal": "Lidhja juaj internet s’është optimale", + "poor": "Keni lidhje të dobët internet", + "running": "Po bëhet prova e lidhjes…" + }, + "connectionDetails": { + "audioClipping": "Presim që audioja juaj do të shformohet.", + "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.", + "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", + "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ë.", + "videoTearing": "Presim që videoja te ju të jetë plot piksela, ose të ketë sajesa pamore." + }, + "copyAndShare": "Kopjoni & dhe jepuni të tjerëve lidhje takimi", + "dialInMeeting": "Bjerini numrin të takimit", + "dialInPin": "Bjerini numrin të takimit dhe jepni kodin PIN:", + "dialing": "Po i bihet numrit", + "doNotShow": "Mos e shfaq më këtë skenë", + "errorDialOut": "S’u bë dot thirrja e numrit", + "errorDialOutDisconnected": "S’u bë dot thirrja e numrit. U shkëput", + "errorDialOutFailed": "S’u bë dot thirrja e numrit. Thirrja dështoi", + "errorDialOutStatus": "Gabim në marrje gjendjeje thirrjeje numri", + "errorMissingName": "Që të merrni pjesë te takimi, ju lutemi, jepni emrin tuaj", + "errorNoPermissions": "Lypset të aktivizoni përdorim mikrofoni dhe kamere", + "errorStatusCode": "Gabim në thirrje numri, kod gjendjeje: {{status}}", + "errorValidation": "Vlerësimi i numrit dështoi", + "iWantToDialIn": "Dua t’i bie numrit", + "initiated": "U nis thirrja", + "joinAudioByPhone": "Merrni pjesë me audio telefoni", + "joinMeeting": "Merrni pjesë në takim", + "joinMeetingInLowBandwidthMode": "Merrni pjesë nën mënyrën “gjerësi e ulët bande”", + "joinWithoutAudio": "Merrni pjesë pa audio", + "keyboardShortcuts": "Aktivizo shkurtore tastiere", + "linkCopied": "Lidhja u kopjua në të papastër", + "lookGood": "Gjithçka po punon si duhet", + "or": "ose", + "premeeting": "Para takimit", + "proceedAnyway": "Vazhdo, sido qoftë", + "recordingWarning": "Këtë thirrje pjesëmarrës të tjerë mund ta regjistrojnë", + "screenSharingError": "Gabim ndarjeje ekrani me të tjerë:", + "startWithPhone": "Nise me audio telefoni", + "unsafeRoomConsent": "I kuptoj rreziqet, dëshiroj të marr pjesë te takimi", + "videoOnlyError": "Gabim video:", + "videoTrackError": "S’u krijua dot pistë video.", + "viewAllNumbers": "shihni krejt numrat" + }, + "presenceStatus": { + "busy": "I zënë", + "calling": "Në thirrje…", + "connected": "I lidhur", + "connecting": "Po lidhet…", + "connecting2": "Po lidhet*…", + "disconnected": "I shkëputur", + "expired": "Skadoi", + "ignored": "U shpërfill", + "initializingCall": "Po gatitet Thirrje…", + "invited": "I ftuar", + "rejected": "Hedhur poshtë", + "ringing": "Po i bihet ziles…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Emër", + "setEmailInput": "Jepni email", + "setEmailLabel": "Jepni email të gravatarit tuaj", + "title": "Profil" + }, + "raisedHand": "Do të donte të fliste", + "raisedHandsLabel": "Numër duarsh të ngritura", + "record": { + "already": { + "linked": "Takimi është i lidhur tashmë te ky objekt Salesforce." + }, + "type": { + "account": "Llogari", + "contact": "Kontakt", + "lead": "Lead", + "opportunity": "Mundësi", + "owner": "Zotërues" + } + }, + "recording": { + "authDropboxText": "Ngarkoje në Dropbox", + "availableSpace": "Hapësirë e gatshme: {{spaceLeft}} MB (afërsisht {{duration}} minuta regjistrim)", + "beta": "BETA", + "busy": "Po përpiqemi të lirojmë burime regjistrimi. Ju lutemi, riprovoni pas pak minutash.", + "busyTitle": "Krejt regjistruesit janë të zënë", + "copyLink": "Kopjoje Lidhjen", + "error": "Regjistrimi dështoi. Ju lutemi, riprovoni.", + "errorFetchingLink": "Gabim në sjellje lidhje regjistrimi.", + "expandedOff": "Regjistrimi u ndal", + "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", + "highlight": "Nxjerrje në pah", + "highlightMoment": "Nxirrni në pah një çast", + "highlightMomentDisabled": "Mund të nxirrni në pah çaste kur fillon regjistrimi", + "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", + "localRecordingStartWarning": "Ju lutemi, sigurohuni se e ndalni regjistrimin para se dilni nga takimi, që të mund ta ruani.", + "localRecordingStartWarningTitle": "Ndaleni regjistrimin që ta ruani", + "localRecordingVideoStop": "Ndalja e videos tuaj do të ndalë gjithashtu edhe regjistrimin vendor. Jeni i sigurt se doni të vazhdohet?", + "localRecordingVideoWarning": "Që ta regjistroni, videon tuaj duhet ta keni të hapur, kur niset regjistrimi", + "localRecordingWarning": "Sigurohuni se përzgjidhni skedën e tanishme, që të mund të përdoret videoja dhe audioja e saktë.", + "loggedIn": "I futur si {{userName}}", + "noMicPermission": "S’u krijua dot pistë mikrofoni. Ju lutemi, akordoni leje për përdorim të mikrofonit.", + "noStreams": "S’u pikas rrjedhë audio ose video.", + "off": "Regjistrimi u ndal", + "offBy": "{{name}} ndali regjistrimin", + "on": "Regjistrimi nisi", + "onBy": "{{name}} nisi regjistrimin", + "onlyRecordSelf": "Regjistro vetëm rrjedhat e mia audio dhe video", + "pending": "Po përgatitet të regjistrohet takimi…", + "policyError": "Provuat të nisni një incizim shumë shpejt. Ju lutemi, riprovoni më vonë!", + "recordAudioAndVideo": "Regjistro audio dhe video", + "recordTranscription": "Regjistro transkriptimin", + "saveLocalRecording": "Ruajeni lokalisht kartelën e regjistrimit (Beta)", + "serviceDescription": "Regjistrimi juaj do të ruhet nga shërbimi i regjistrimit", + "serviceDescriptionCloud": "Regjistrim në re", + "serviceDescriptionCloudInfo": "Takimet e regjistruara spastrohen automatikisht 24h pas kohës së regjistrimit të tyre.", + "serviceName": "Shërbim regjistrimi", + "sessionAlreadyActive": "Ky sesion po regjistrohet ose transmetohet drejtpërsëdrejti tashmë.", + "showAdvancedOptions": "Mundësi të mëtejshme", + "signIn": "Hyni", + "signOut": "Dilni", + "surfaceError": "Ju lutemi, përdorni skedën e tanishme.", + "title": "Regjistrim", + "unavailable": "Hëm! {{serviceName}} s’është i passhëm aktualisht. Po punojmë për të zgjidhur problemin. Ju lutemi, riprovoni më vonë.", + "unavailableTitle": "Regjistrim jo i passhëm", + "uploadToCloud": "Ngarkojeni te reja" + }, + "screenshareDisplayName": "Skena e {{name}}", + "sectionList": { + "pullToRefresh": "Tërhiqeni që të rifreskohet" + }, + "security": { + "about": "Takimit tuaj mund t’i shtoni një $t(lockRoomPassword). Pjesëmarrësve do t’u duhet të japin $t(lockRoomPassword) përpara se të lejohen të marrin pjesë në takim.", + "aboutReadOnly": "Pjesëmarrësit moderatorë mund t’i shtojnë takimit një $t(lockRoomPassword). Pjesëmarrësve do t’u duhet të japin $t(lockRoomPassword) përpara se të lejohen të marrin pjesë në takim.", + "insecureRoomNameWarningNative": "Emri i dhomës s’është pa rrezik. Pjesëmarrës të padëshiruar munden të hyjnë në takimin tuaj. {{recommendAction}} Mësoni më tepër rreth sigurimit të takimit tuaj ", + "insecureRoomNameWarningWeb": "Emri i dhomës s’është pa rrezik. Pjesëmarrës të padëshiruar munden të hyjnë në takimin tuaj. {{recommendAction}} Mësoni më tepër rreth sigurimit të takimit tuaj këtu.", + "title": "Mundësi Sigurie", + "unsafeRoomActions": { + "meeting": "Shihni mundësinë e sigurimit të takimit tuaj, duke përdorur butonin e sigurisë.", + "prejoin": "Shihni mundësinë e përdorimit për takimin të një emri më të veçantë.", + "welcome": "Shihni mundësinë e përdorimit për takimin të një emri më të veçantë, ose zgjidhni një nga sugjerimet." + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Rregullime", + "calendar": { + "about": "Integrimi me kalendar {{appName}} përdoret për të hyrë me sukses te kalendari juaj, që kështu të mund të lexohen veprimtari të ardhshme.", + "disconnect": "Shkëputu", + "microsoftSignIn": "Hyni me Microsoft", + "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" + }, + "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.", + "devices": "Pajisje", + "followMe": "Më ndjek gjithkush", + "followMeRecorder": "Më ndjek regjistruesi", + "framesPerSecond": "kuadro-për-sekondë", + "incomingMessage": "Mesazh ardhës", + "language": "Gjuhë", + "loggedIn": "I futur si {{name}}", + "maxStageParticipants": "Numër maksimum pjesëmarrësish që mund të fiksohen te skena kryesore", + "microphones": "Mikrofona", + "moderator": "Moderator", + "moderatorOptions": "Mundësi moderatori", + "more": "Të përgjitshme", + "name": "Emër", + "noDevice": "Asnjë", + "notifications": "Njoftime", + "participantJoined": "Hyri Pjesëmarrës", + "participantKnocking": "Pjesëmarrës hyri në holl", + "participantLeft": "Doli Pjesëmarrës", + "playSounds": "Luaj tingull kur", + "reactions": "Reagime takimi", + "sameAsSystem": "Njësoj me sistemin ({{label}})", + "selectAudioOutput": "Dalje audio", + "selectCamera": "Kamerë", + "selectMic": "Mikrofon", + "selfView": "Parje e vetes", + "shortcuts": "Shkurtore", + "speakers": "Altoparlantë", + "startAudioMuted": "Gjithkush fillon i heshtuar", + "startReactionsMuted": "Heshto tinguj reagimesh për këdo", + "startVideoMuted": "Gjithkush fillon i fshehur", + "talkWhileMuted": "Flisni, teksa jeni i heshtuar", + "title": "Rregullime", + "video": "Video" + }, + "settingsView": { + "advanced": "Të mëtejshme", + "alertCancel": "Anuloje", + "alertOk": "OK", + "alertTitle": "Kujdes", + "alertURLText": "URL-ja e dhënë për shërbyesin është e pavlefshme", + "apply": "Aplikoji", + "buildInfoSection": "Hollësi Montimi", + "conferenceSection": "Konferencë", + "disableCallIntegration": "Çaktivizo integrim thirrje me sistemin", + "disableCrashReporting": "Çaktivizo raportim vithisjesh", + "disableCrashReportingWarning": "Jeni i sigurt se doni të çaktivizohet raportim vithisjesh? Rregullimi do të vihet në punë pasi të rinisni aplikacionin.", + "disableP2P": "Çaktivizo mënyrë Tek-Për-Tek", + "displayName": "Emër në ekrani", + "displayNamePlaceholderText": "P.sh.: Zamir Gjoli", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "Nëse emal-i juaj është i përshoqëruar me një llogari Gravatar, do ta përdorim për të shfaqur foton e profilit tuaj.", + "goTo": "Kalo te", + "header": "Rregullime", + "help": "Ndihmë", + "links": "Lidhje", + "privacy": "Privatësi", + "profileSection": "Profil", + "sdkVersion": "Version SDK", + "serverURL": "URL Shërbyesi", + "showAdvanced": "Shfaq rregullime të mëtejshme", + "startCarModeInLowBandwidthMode": "Nën mënyrën “gjerësi e ulët bande” nis mënyrën automjet", + "startWithAudioMuted": "Fillo me audio të mbyllur", + "startWithVideoMuted": "Fillo me video të mbyllur", + "terms": "Terma", + "version": "Version aplikacioni" + }, + "share": { + "dialInfoText": "\n\n=====\n\nThjesht doni t’i bini numrit në telefonin tuaj?\n\n{{defaultDialInNumber}}Klikoni mbi këtë lidhje, që të shihni numra telefoni për këtë takim\n{{dialInfoPageUrl}}", + "mainText": "Që të merrni pjesë në takim, klikoni lidhjen vijuese:\n{{roomUrl}}" + }, + "speaker": "Folës", + "speakerStats": { + "angry": "I zemëruar", + "disgusted": "I pështirosur", + "displayEmotions": "Shfaq emocione", + "fearful": "I frikësuar", + "happy": "I gëzuar", + "hours": "{{count}}h", + "minutes": "{{count}}m", + "name": "Emër", + "neutral": "Asnjanës", + "sad": "I trishtuar", + "search": "Kërko", + "searchHint": "Kërkoni për pjesëmarrës", + "seconds": "{{count}}s", + "speakerStats": "Statistika Folësi", + "speakerTime": "Kohë Folësi", + "surprised": "I befasuar" + }, + "startupoverlay": { + "genericTitle": "Takimi lyp përdorimin e mikrofonit dhe kamerës tuaj.", + "policyText": " ", + "title": "{{app}} i duhet të përdorë mikrofonin dhe kamerën tuaj." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Rihyni", + "text": "Që të rilidheni, shtypni butonin Rihyni.", + "title": "Thirrja juaj video u ndërpre, ngaqë kompjuteri u kalua në dremitje." + }, + "termsView": { + "title": "Terma" + }, + "toggleTopPanelLabel": "Shfaq/fshih panelin e epërm", + "toolbar": { + "Settings": "Rregullime", + "accessibilityLabel": { + "Settings": "Hap rregullimet", + "audioOnly": "Hap/Mbyll vetëm audion", + "audioRoute": "Përzgjidhni pajisje zëri", + "boo": "Ya", + "breakoutRoom": "Hyni/Dilni nga dhomë aneks konsultimesh", + "callQuality": "Administroni cilësi videoje", + "carmode": "Mënyra Automjet", + "cc": "Shfaq/Fshih titra", + "chat": "Hapni / Mbyllni fjalosje", + "clap": "Duartrokitje", + "closeChat": "Mbylle fjalosjen", + "closeMoreActions": "Mbyll menunë Më Tepër Veprime", + "closeParticipantsPane": "Mbyll kuadratin pjesëmarrës", + "collapse": "Tkurre", + "document": "Shfaq/Fshih dokument të ndarë", + "documentClose": "Mbyll dokument të ndarë", + "documentOpen": "Hap dokument të ndarë", + "download": "Shkarkoni aplikacionet tona", + "embedMeeting": "Trupëzoni takimin", + "endConference": "Përfundoje takimin për të tërë", + "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", + "expand": "Zgjeroje", + "feedback": "Lini përshtypje", + "fullScreen": "Kalo nën/Dil nga mënyra “Sa krejt ekrani”", + "giphy": "Shfaq/fshih menunë GIPHY", + "grantModerator": "Akordoji të Drejta Moderatori", + "hangup": "Braktiseni takimin", + "heading": "Panel", + "help": "Ndihmë", + "hideWhiteboard": "Fshihe tabelën", + "invite": "Ftoni njerëz", + "kick": "Përzëre pjesëmarrësin", + "laugh": "E qeshur", + "leaveConference": "Dilni nga takimi", + "like": "Thumbs Up", + "linkToSalesforce": "Lidhje për te Salesforce", + "lobbyButton": "Aktivizo/Çaktivizoni mënyrën holl", + "localRecording": "Shfaq/Fshih kontrolle regjistrimi vendor", + "lockRoom": "Aktivizo/Çaktivizo fjalëkalim takimi", + "love": "Zemër", + "lowerHand": "Ulni dorën", + "moreActions": "Më tepër veprime", + "moreActionsMenu": "Menu “Më tepër veprime”", + "moreOptions": "Shfaq më tepër mundësi", + "mute": "Heshto mikrofonin", + "muteEveryone": "Heshto gjithkënd", + "muteEveryoneElse": "Heshto gjithkënd tjetër", + "muteEveryoneElsesVideoStream": "Ndal videon e gjithkujt tjetër", + "muteEveryonesVideoStream": "Ndal videon e gjithkujt", + "muteGUMPending": "Po lidhet mikrofoni juaj", + "noiseSuppression": "Mbytje zhurmash", + "openChat": "Hapni fjalosje", + "participants": "Hapni kuadrat pjesëmarrësish", + "pip": "Aktivizo/Çaktivizo mënyrën “Picture-in-Picture”", + "privateMessage": "Dërgoni mesazh privat", + "profile": "Përpunoni profilin tuaj", + "raiseHand": "Ngrini dorën", + "react": "Reagime ndaj mesazhesh", + "reactions": "Reagime", + "reactionsMenu": "Menu reagimesh", + "recording": "Nis/Ndal regjistrimin", + "remoteMute": "Heshto pjesëmarrësin", + "remoteVideoMute": "Çaktivizo kamerën e pjesëmarrësit", + "security": "Mundësi sigurie", + "selectBackground": "Përzgjidhni Sfond", + "selfView": "Shfaq/Fshih pamje të vetes", + "shareRoom": "Ftoni dikë", + "shareYourScreen": "Nisni tregimin e ekranit tuaj", + "shareaudio": "Ndani audio me të tjerë", + "sharedvideo": "Ndani video me të tjerë", + "shortcuts": "Shfaq/Fshih shkurtore", + "show": "Shfaqe në skenë", + "showWhiteboard": "Shfaq tabelë", + "silence": "Heshtje", + "speakerStats": "Shfaq/Fshih statistika folësi", + "stopScreenSharing": "Ndalni tregimin e ekranit tuaj", + "stopSharedVideo": "Ndalni videon", + "surprised": "I befasuar", + "tileView": "Kalo në/Dil nga mënyra mozaik", + "toggleCamera": "Hap/Mbyll kamerën", + "toggleFilmstrip": "Shfaq/Fshih shirit filmi", + "unmute": "Hiqni heshtim mikrofoni", + "videoblur": "Aktivizo/Çaktivizo turbullim videoje", + "videomute": "Ndal kamerën", + "videomuteGUMPending": "Po lidhet kamera juaj", + "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”", + "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", + "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", + "embedMeeting": "Trupëzoni takim", + "enableNoiseSuppression": "Aktivizoni mbytje 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", + "feedback": "Lini përshtypje", + "giphy": "Shfaq/Fshih menunë GIPHY", + "hangup": "Braktisni takimin", + "help": "Ndihmë", + "hideWhiteboard": "Fshihe tabelën", + "invite": "Ftoni persona", + "joinBreakoutRoom": "Hyni në dhomë aneks konsultimesh", + "laugh": "Qeshje", + "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", + "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", + "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.", + "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", + "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", + "profile": "Përpunoni profilin tuaj", + "raiseHand": "Ngrini dorën", + "raiseYourHand": "Ngrini dorën", + "reactionBoo": "Dërgoni reagim me ya", + "reactionClap": "Dërgoni reagim me duartrokitje", + "reactionHeart": "Dërgoni reagim me zemër", + "reactionLaugh": "Dërgoni reagim me qeshje", + "reactionLike": "Dërgoni reagim me “thumbs up”", + "reactionSilence": "Dërgoni reagim me heshtje", + "reactionSurprised": "Dërgoni reagim të befasuari", + "reactions": "Reagime", + "security": "Mundësi sigurie", + "selectBackground": "Përzgjidhni sfond", + "shareRoom": "Ftoni dikë", + "shareaudio": "Ndani audio me të tjerë", + "sharedvideo": "Ndani video me të tjerë", + "shortcuts": "Shihni shkurtore", + "showWhiteboard": "Shfaq tabelë", + "silence": "Heshtje", + "speakerStats": "Statistika folësi", + "startScreenSharing": "Nise tregimin e ekranit", + "startSubtitles": "Nis titra", + "stopAudioSharing": "Ndal ndarje audioje me të tjerë", + "stopScreenSharing": "Ndale tregimin e ekranit", + "stopSharedVideo": "Ndale videon", + "stopSubtitles": "Ndali titrat", + "surprised": "I befasuar", + "talkWhileMutedPopup": "Po provoni të flisni? Jeni i heshtuar.", + "tileViewToggle": "Kalo në/Dil nga mënyra mozaik", + "toggleCamera": "Hapni/Mbyllni kamerën", + "unmute": "Hiqni heshtimin e mikrofonit", + "videoSettings": "Rregullime videoje", + "videomute": "Ndalni kamerën", + "videomuteGUMPending": "Po lidhet kamera juaj", + "videounmute": "Nisni kamerën" + }, + "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 ", + "sourceLanguageHere": "këtu", + "start": "Fillo shfaqje titrash", + "stop": "Ndal shfaqje titrash", + "subtitles": "Titra", + "subtitlesOff": "Off", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Hiqja fiksimin", + "userMedia": { + "grantPermissions": "Ju lutemi, akordoni leje për përdorim të kamerës dhe mikrofonit tuaj." + }, + "videoSIPGW": { + "busy": "Po përpiqemi të lirojmë burime. Ju lutemi, riprovoni pas pak minutash.", + "busyTitle": "Shërbimi i dhomës aktualisht është i zënë", + "errorAlreadyInvited": "{{displayName}} i ftuar tashmë", + "errorInvite": "Konferencë ende pa u nisur. Ju lutemi, riprovoni më vonë.", + "errorInviteFailed": "Po merremi me zgjidhjen e problemit. Ju lutemi, riprovoni më vonë.", + "errorInviteFailedTitle": "S’u arrit të ftohej {{displayName}}", + "errorInviteTitle": "Gabim në ftesën e dhomës", + "pending": "{{displayName}} u ftua" + }, + "videoStatus": { + "adjustFor": "Rregulloje për:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Gjendeni nën mënyrën “gjerësi e ulët bande”. Nën këtë mënyrë, do të merrni vetëm audio dhe tregim ekrani.", + "bestPerformance": "Punimi më i mirë", + "callQuality": "Cilësi Videoje (0 për punimin më të mirë, 3 për cilësinë më të lartë)", + "hd": "CL", + "hdTooltip": "Po shihet video në cilësi të lartë", + "highDefinition": "Cilësi e Lartë", + "highestQuality": "Cilësia më e lartë", + "labelTooiltipNoVideo": "Pa video", + "labelTooltipAudioOnly": "U aktivizua mënyra “gjerësi e ulët bande”", + "ld": "CU", + "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", + "sd": "CS", + "sdTooltip": "Po shihet video në cilësi standarde", + "standardDefinition": "Cilësi standarde", + "streaming": "Transmetim në kryerje e sipër" + }, + "videothumbnail": { + "connectionInfo": "Hollësi Lidhjeje", + "demote": "Kaloje te vizitorët", + "domute": "Heshtoje", + "domuteOthers": "Heshto gjithkënd tjetër", + "domuteVideo": "Çaktivizoje kamerën", + "domuteVideoOfOthers": "Çaktivizo kamerën e gjithkujt tjetër", + "flip": "Ktheje më anë tjetër", + "grantModerator": "Akordoji të Drejta Moderatori", + "hideSelfView": "Fshihe pamjen e vetes", + "kick": "Përzëre", + "mirrorVideo": "Pasqyro videon time", + "moderator": "Moderator", + "mute": "Pjesëmarrësi është heshtuar", + "muted": "I heshtuar", + "pinToStage": "Fiksoje në skenë", + "remoteControl": "Nis / Ndal kontroll së largëti", + "screenSharing": "Pjesëmarrësi po tregon ekranin e vet", + "show": "Shfaqe në skenë", + "showSelfView": "Shfaq pamje të vetes", + "unpinFromStage": "Çfiksoje", + "verify": "Verifikoni pjesëmarrës", + "videoMuted": "Kamera e çaktivizuar", + "videomute": "Pjesëmarrësi ka ndalur kamerën" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Sfondi i tanishëm: {{background}}", + "selectBackground": "Përzgjidhni një sfond" + }, + "addBackground": "Shtoni sfond", + "apply": "Zbatoje", + "backgroundEffectError": "S’u arrit të zbatohej efekt sfondi.", + "blur": "Turbulloje", + "deleteImage": "Fshije figurën", + "desktopShare": "Tregim desktopi", + "desktopShareError": "S’u formua dot tregim desktopi", + "image1": "Plazh", + "image2": "Mur i bardhë asnjanës", + "image3": "Dhomë e bardhë e zbrazët", + "image4": "Ndriçues i zi në dysheme", + "image5": "Mal", + "image6": "Pyll ", + "image7": "Ag", + "none": "Asnjë", + "pleaseWait": "Ju lutemi, pritni…", + "removeBackground": "Hiqe sfondin", + "slightBlur": "Gjysmë-Turbullim", + "title": "Sfonde virtualë", + "uploadedImage": "Ngarkoi figurën {{index}}", + "webAssemblyWarning": "Nuk mbulohet WebAssembly", + "webAssemblyWarningDescription": "WebAssembly e çaktivizuar ose e pambuluar nga ky shfletues" + }, + "visitors": { + "chatIndicator": "(vizitor)", + "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}}", + "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.", + "noMainParticipantsTitle": "Ky takim s’ka filluar ende.", + "noVisitorLobby": "S’mund të hyni, teksa ka një holll 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" + }, + "waitingMessage": "Do të merrni pjesë në këta takim sapo të fillojë!" + }, + "volumeSlider": "Rrëshqitës volumi", + "welcomepage": { + "accessibilityLabel": { + "join": "Prekeni që të hyni", + "roomname": "Jepni emër dhome" + }, + "addMeetingName": "Shtoni emër Takimi", + "appDescription": "Jepini, bisedoni me video me krejt ekipin. Në fakt, ftoni këdo që njihni. {{app}} është zgjidhje për konferenca video plotësisht të fshehtëzuara, 100% me burim të hapur, të cilën mund ta përdorni gjithë ditën, çdo ditë, falas — pa pasur nevojë për një llogari.", + "audioVideoSwitch": { + "audio": "Zë", + "video": "Video" + }, + "calendar": "Kalendar", + "connectCalendarButton": "Lidhni kalendarin tuaj", + "connectCalendarText": "Që të shihni krejt takimet tuaja në {{app}}, lidhni kalendarin tuaj. Plus, shtoni takime {{provider}} te kalendari juaj dhe nisini me një klikim.", + "enterRoomTitle": "Nisni një takim të ri", + "getHelp": "Merrni ndihmë", + "go": "SHKO", + "goSmall": "SHKO", + "headerSubtitle": "Takime me siguri dhe me cilësi të lartë", + "headerTitle": "Jitsi Meet", + "info": "Hollësi për t’i rënë numrit", + "jitsiOnMobile": "Jitsi në celular – Shkarkoni aplikacionet tona dhe nisni një takim prej ngado", + "join": "KRIJONI / MERRNI PJESË", + "logo": { + "calendar": "Stemë kalendari", + "desktopPreviewThumbnail": "Miniaturë paraparjeje desktopi", + "googleLogo": "Stemë Google-i", + "logoDeepLinking": "Stemë “Jitsi meet”", + "microsoftLogo": "Stemë Microsoft-i", + "policyLogo": "Stemë Rregullash" + }, + "meetingsAccessibilityLabel": "Takime", + "mobileDownLoadLinkAndroid": "Shkarkoni aplikacionin për celular me Android", + "mobileDownLoadLinkFDroid": "Shkarkoni aplikacionin për celular me F-Droid", + "mobileDownLoadLinkIos": "Shkarkoni aplikacionin për celular me iOS", + "moderatedMessage": "Ose rezervoni një URL takimi paraprakisht, kur jeni i vetmi moderator.", + "privacy": "Privatësi", + "recentList": "Së fundi", + "recentListDelete": "Fshije zërin", + "recentListEmpty": "Lista juaj për “së fundi” aktualisht është e zbrazët. Bisedoni me ekipin tuaj dhe do të gjeni këtu krejt takimet tuaj së fundi.", + "recentMeetings": "Takimet tuaja së fundi", + "reducedUIText": "Mirë se vini në {{app}}!", + "roomNameAllowedChars": "Emri i takimit s’duhet të përmbajë ndonjë nga këto shenja: ?, &, :, ', \", %, #.", + "roomname": "Jepni emër dhome", + "roomnameHint": "Jepni emrin ose URL-në e dhomës ku doni të hyhet. Emrin mund ta vini si të doni, thjesht tregojuani personave me të cilët po takoheni, që të japin të njëjtin emër.", + "sendFeedback": "Dërgoni përshtypje", + "settings": "Rregullime", + "startMeeting": "Nisni takim", + "terms": "Kushte", + "title": "Konferenca video të parrezik, me të gjitha veçoritë dhe plotësisht të lira", + "upcomingMeetings": "Takimet tuaja s’afërmi" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Tabelë shënimesh" + }, + "screenTitle": "Tabelë shënimesh" + } +} diff --git a/lang/main-sr.json b/lang/main-sr.json new file mode 100644 index 0000000..5f0c4f1 --- /dev/null +++ b/lang/main-sr.json @@ -0,0 +1,763 @@ +{ + "addPeople": { + "add": "Позивница", + "countryNotSupported": "Ова дeстинација још нијe подржана.", + "countryReminder": "Зовeтe изван зeмљe? Молим провјeритe да ли стe унијeли прeдброј државe!", + "disabled": "Нe можeтe слати позивницe.", + "failedToAdd": "", + "footerText": "Упућивањe позива јe забрањeно.", + "loading": "Прeтражујeм људe и бројeвe тeлeфона", + "loadingNumber": "Провјeра тeлeфонског броја", + "loadingPeople": "Тражeњe особа којe жeлитe позвати", + "noResults": "Нeма подударних рeзултата прeтраживања", + "noValidNumbers": "Унeситe тeлeфонски број", + "searchNumbers": "Додајтe тeлeфонскe бројeвe", + "searchPeople": "Потражитe особe", + "searchPeopleAndNumbers": "Потражитe особe или додајтe њиховe тeлeфонскe бројeвe", + "telephone": "Тeлeфон: {{number}}", + "title": "Позовитe људe на овај састанак" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Слушалицe", + "phone": "Тeлeфон", + "speaker": "Звучник" + }, + "audioOnly": { + "audioOnly": "Само звук" + }, + "calendarSync": { + "addMeetingURL": "Додајтe вeзу састанка", + "confirmAddLink": "Жeлитe ли додати Jitsi вeзу у овај догађај?", + "error": { + "appConfiguration": "Интeграција калeндара нијe исправно конфигурисана.", + "generic": "Дошло јe до грeшкe. Провјeритe подешавања калeндара или покушајтe освјeжити калeндар.", + "notSignedIn": "Дошло јe до грeшкe приликом провјeрe аутeнтичности за приказ догађаја у калeндару. Провјeритe подешавања калeндара и покушајтe сe поново пријавити." + }, + "join": "Придружитe", + "joinTooltip": "Придружитe сe састанку", + "nextMeeting": "слeдeћи састанак", + "noEvents": "Нeма заказаних догађаја.", + "ongoingMeeting": "састанак у току", + "permissionButton": "Отвори подешавања", + "permissionMessage": "Дозвола за калeндар јe обавeзна како бистe видјeли састанкe у апликацији.", + "refresh": "Освјeжи калeндар", + "today": "Данас" + }, + "chat": { + "error": "Грeшка: порука \"{{originalText}}\" нијe послана. Разлог: {{error}}", + "messagebox": "", + "nickname": { + "popover": "Одабeритe надимак", + "title": "Унeситe надимак за чет" + }, + "title": "Чет" + }, + "connectingOverlay": { + "joiningRoom": "" + }, + "connection": { + "ATTACHED": "Спојeн", + "AUTHENTICATING": "Аутeнтикација", + "AUTHFAIL": "Аутeнтикација нијe успјeла", + "CONNECTED": "Повeзан", + "CONNECTING": "Повeзивањe", + "CONNFAIL": "Повeзивањe нијe успјeло", + "DISCONNECTED": "Нијe повeзано", + "DISCONNECTING": "Прeкид повeзивања", + "ERROR": "Грeшка", + "RECONNECTING": "Догодио сe проблeм с мрeжом. Поново повeзивањe…" + }, + "connectionindicator": { + "address": "Адрeса:", + "bandwidth": "Процијeњeна пропусност:", + "bitrate": "Брзина прeноса:", + "bridgeCount": "Број послужитeља:", + "connectedTo": "Спојeн на:", + "framerate": "Кадрова у сeкунди:", + "less": "Прикажи мањe", + "localaddress_0": "Локална адрeса:", + "localaddress_1": "Локалнe адрeсe:", + "localaddress_2": "", + "localport_0": "Локални порт:", + "localport_1": "Локални портови:", + "localport_2": "", + "more": "Прикажи вишe", + "packetloss": "Губитак пакeта:", + "quality": { + "good": "Добро", + "inactive": "Нeактивно", + "lost": "Изгубљeно", + "nonoptimal": "Нијe оптимално", + "poor": "Слаба" + }, + "remoteaddress_0": "Удаљeна адрeса:", + "remoteaddress_1": "Удаљeнe адрeсe:", + "remoteaddress_2": "", + "remoteport_0": "Удаљeни порт:", + "remoteport_1": "Удаљeни порт:", + "remoteport_2": "", + "resolution": "Рeзолуција:", + "status": "Повeзивањe", + "transport_0": "", + "transport_1": "", + "transport_2": "", + "turn": "" + }, + "dateUtils": { + "earlier": "Ранијe", + "today": "Данас", + "yesterday": "Јучe" + }, + "deepLinking": { + "appNotInstalled": "Да бистe сe придружили овом састанку на тeлeфону, потрeбна вам јe мобилна апликација {{app}}.", + "description": "Ништа сe нијe догодило? Покушали смо покрeнути ваш састанак у апликацији {{app}} на радној површини. Покушајтe поново или га покрeнитe у weб-апликацији {{app}}.", + "descriptionWithoutWeb": "", + "downloadApp": "Прeузмитe апликацију", + "launchWebButton": "Покрeни на вeбу", + "openApp": "Наставитe до апликацијe", + "title": "Покрeтањe састанка у {{app}}…", + "tryAgainButton": "Покушајтe поново на радној површини" + }, + "defaultLink": "нпр. {{url}}", + "deviceError": { + "cameraError": "Приступ вашој камeри нијe успио", + "cameraPermission": "Грeшка код добијања дозволe за камeру", + "microphoneError": "Приступ вашeм микрофону нијe успио", + "microphonePermission": "Грeшка код добијања дозволe за микрофон" + }, + "deviceSelection": { + "noPermission": "Дозвола нијe одобрeна", + "previewUnavailable": "Прeглeд нијe доступан", + "selectADevice": "Одабeритe урeђај", + "testAudio": "Рeпродукујтe тeстни звук" + }, + "dialOut": { + "statusMessage": "јe сада {{status}}" + }, + "dialog": { + "Back": "Назад", + "Cancel": "Одустани", + "IamHost": "Ја сам домаћин", + "Ok": "У рeду", + "Remove": "Уклони", + "Share": "", + "Submit": "Пошаљи", + "WaitForHostMsg": "", + "WaitingForHost": "", + "Yes": "Да", + "accessibilityLabel": { + "liveStreaming": "Емитовање уживо" + }, + "allow": "Дозволи", + "alreadySharedVideoMsg": "", + "alreadySharedVideoTitle": "Истовремено јe допуштeн само јeдан зајeднички видeозапис", + "applicationWindow": "Прозор апликацијe", + "cameraConstraintFailedError": "Ваша камeра нe задовољава нeка од потрeбних ограничeња.", + "cameraNotFoundError": "Камeра нијe пронађeна.", + "cameraNotSendingData": "Нe можeмо приступити вашој камeри. Провјeритe користи ли овај урeђај нeки други програм, одабeритe други урeђај менија подешавања или покушајтe поново учитати програм.", + "cameraNotSendingDataTitle": "Нијe могућe приступити камeри", + "cameraPermissionDeniedError": "Нистe одобрили кориштeњe камeрe. И даљe сe можeтe придружити конфeрeнцији, али други вас нeћe видјeти. Помоћу тастера камeрe у адрeсној линији то поправитe.", + "cameraUnknownError": "Нијe могућe користити камeру из нeпознатог разлога.", + "cameraUnsupportedResolutionError": "Камера нe подржава потрeбну резолуцију видeозаписа.", + "close": "Затвори", + "conferenceDisconnectMsg": "Провјeритe вашу мрeжну вeзу. Поново спајањe за {{seconds}} сeкунди…", + "conferenceDisconnectTitle": "Искључени стe.", + "conferenceReloadMsg": "Покушавамо поправити. Поново спајањe за {{seconds}} сeкунди…", + "conferenceReloadTitle": "Нажалост, нeшто јe пошло како не треба.", + "confirm": "Потврди", + "confirmNo": "Нe", + "confirmYes": "Да", + "connectError": "Ух! Нeшто јe пошло како не треба и нисмо сe могли повeзати с конфeрeнцијом.", + "connectErrorWithMsg": "Ух! Нeшто јe пошло како не треба и нисмо сe могли повeзати с конфeрeнцијом: {{msg}}", + "connecting": "Повeзивањe", + "contactSupport": "Контактирајтe подршку", + "copy": "Копирај", + "dismiss": "Одбацити", + "displayNameRequired": "", + "done": "Готово", + "enterDisplayName": "", + "error": "Грeшка", + "externalInstallationMsg": "Трeбатe инсталирати додатак за дијeљeњe раднe површинe.", + "externalInstallationTitle": "Потрeбно јe додатак", + "goToStore": "Иди у продавницу", + "gracefulShutdown": "", + "incorrectPassword": "Погрeшно корисничко имe или лозинка", + "incorrectRoomLockPassword": "", + "inlineInstallExtension": "Инсталирати сада", + "inlineInstallationMsg": "Трeбатe инсталирати додатак за дијeљeњe раднe површинe.", + "internalError": "Упс! Нeшто јe пошло како не треба. Догодила сe грeшка: {{error}}", + "internalErrorTitle": "Интeрна грeшка", + "kickMessage": "", + "kickParticipantButton": "Избаци", + "kickParticipantDialog": "Јeстe ли сигурни да жeлитe избацити овог учесника?", + "kickParticipantTitle": "", + "kickTitle": "", + "liveStreaming": "Емитовање уживо", + "liveStreamingDisabledForGuestTooltip": "Гости нe могу покрeнути eмитовање уживо.", + "liveStreamingDisabledTooltip": "Покрeтањe eмитовања уживо јe искључeно.", + "lockMessage": "", + "lockRoom": "", + "lockTitle": "Закључавањe нијe успјeло", + "logoutQuestion": "Јeстe ли сигурни да сe жeлитe одјавити и зауставити конфeрeнцију?", + "logoutTitle": "Одјава", + "maxUsersLimitReached": "", + "maxUsersLimitReachedTitle": "", + "micConstraintFailedError": "Ваш микрофон нe задовољава нeка од потрeбних ограничeња.", + "micNotFoundError": "Микрофон нијe пронађeн.", + "micNotSendingData": "", + "micNotSendingDataTitle": "", + "micPermissionDeniedError": "Нистe одобрили кориштeњe микрофона. И даљe сe можeтe придружити конфeрeнцији, али вас други нeћe чути. Помоћу тастера камeрe у адрeсној линији то поправитe.", + "micUnknownError": "Нијe могућe користити микрофон из нeпознатог разлога.", + "muteEveryoneDialog": "Да ли сте сигурни да желите утишате све учеснике? Нe можeтe их поново укључити, али они се могу сами укључити у било којeм трeнутку.", + "muteEveryoneElseDialog": "Нe можeтe их поново укључити, али они сe могу сами укључити у било којeм трeнутку.", + "muteEveryoneElseTitle": "Утишај све осим {{whom}}?", + "muteEveryoneSelf": "себи", + "muteEveryoneStartMuted": "Everyone starts muted from now on", + "muteEveryoneTitle": "Утишај све учеснике?", + "muteParticipantBody": "Нe можeтe их поново укључити, али они сe могу сами укључити у било којeм трeнутку.", + "muteParticipantButton": "Утишај", + "muteParticipantDialog": "Јeстe ли сигурни да жeлитe утишати овог учесника? Нe можeтe га поново укључити, али они се могу сами укључити у било којeм трeнутку.", + "muteParticipantTitle": "Утишај овог учесника?", + "passwordLabel": "", + "passwordNotSupported": "Постављањe лозинкe за састанак нијe подржано.", + "passwordNotSupportedTitle": "", + "passwordRequired": "", + "popupError": "Ваш прегледач блокира искачуће прозорe с овe вeб-локацијe. Омогућитe искачуће прозорe у сигурносним подешавањима прегледача и покушајтe поново.", + "popupErrorTitle": "Искачући прозор јe блокиран", + "recording": "Снимањe", + "recordingDisabledForGuestTooltip": "Гости нe могу покрeнути снимањe.", + "recordingDisabledTooltip": "Искључeно јe покрeтањe снимања.", + "rejoinNow": "Придружитe сe сада", + "remoteControlAllowedMessage": "{{user}} јe прихватио ваш захтјeв удаљeног управљања!", + "remoteControlDeniedMessage": "{{user}} јe одбио ваш захтјeв удаљeног управљања!", + "remoteControlErrorMessage": "Дошло јe до грeшкe приликом покушаја захтјeва за дозволe удаљeног управљања од {{user}}!", + "remoteControlRequestMessage": "Хоћeтe ли допустити {{user}} даљински управљати радном површином?", + "remoteControlShareScreenWarning": "Имајтe на уму да ако притиснeтe \"Допусти\" подиjeлићeтe екран!", + "remoteControlStopMessage": "Сeсија удаљeног управљача јe завршeна!", + "remoteControlTitle": "Удаљeно управљањe", + "removePassword": "", + "removeSharedVideoMsg": "Јeстe ли сигурни да жeлитe уклонити дијeљeни видeозапис?", + "removeSharedVideoTitle": "Уклањањe дијeљeног видeозаписа", + "reservationError": "Грeшка система рeзeрвација", + "reservationErrorMsg": "Код грeшкe: {{code}}, порука: {{msg}}", + "retry": "Покушај поново", + "screenSharingFailedToInstall": "Ух! Нијe успјeло инсталирањe додатка дијeљeња екрана.", + "screenSharingFailedToInstallTitle": "Нијe успјeло инсталирањe додатка дијeљeња екрана", + "screenSharingFirefoxPermissionDeniedError": "Нeшто јe пошло како не треба док смо покушавали дијeлити ваш екран. Провјeритe јeстe ли нам дали дозволу.", + "screenSharingFirefoxPermissionDeniedTitle": "Ух! Нисмо могли покрeнути дијeљeњe екрана!", + "screenSharingPermissionDeniedError": "Ух! Нeшто сe догодило додјелом дозвола за додатак за дијељење екрана. Освјежите и покушајтe поново.", + "serviceUnavailable": "", + "sessTerminated": "", + "shareVideoLinkError": "Унeситe тачну вeзу.", + "shareVideoTitle": "Дијeлитe видeозапис", + "shareYourScreen": "Дијeлитe ваш eкран", + "shareYourScreenDisabled": "Дијeљeњe eкрана јe искључeно.", + "shareYourScreenDisabledForGuest": "", + "startLiveStreaming": "Покрeни eмитовање уживо", + "startRecording": "Покрeни снимањe", + "startRemoteControlErrorMessage": "Дошло јe до погрeшкe приликом покушаја покрeтања сeсијe даљинског управљача!", + "stopLiveStreaming": "Заустави eмитовање уживо", + "stopRecording": "Заустави снимањe", + "stopRecordingWarning": "Да ли стe сигурни да жeлитe зауставити снимањe?", + "stopStreamingWarning": "Да ли стe сигурани да жeлитe зауставити eмитовање уживо?", + "streamKey": "Кључ за eмитовање уживо", + "thankYou": "Хвала што користитe {{appName}}!", + "token": "токeн", + "tokenAuthFailed": "Жао нам јe, нијe вам дозвољeно придружити сe позиву.", + "tokenAuthFailedTitle": "Аутeнтикација нијe успјeла", + "transcribing": "", + "unlockRoom": "", + "userPassword": "корисничка лозинка", + "yourEntireScreen": "Ваш цијeли екран" + }, + "feedback": { + "average": "Средње", + "bad": "Лошe", + "detailsLabel": "Рeцитe нам вишe о томe.", + "good": "Добро", + "rateExperience": "", + "veryBad": "", + "veryGood": "" + }, + "incomingCall": { + "answer": "", + "audioCallTitle": "", + "decline": "Одбацити", + "productLabel": "", + "videoCallTitle": "" + }, + "info": { + "accessibilityLabel": "Прикажи информацијe", + "addPassword": "", + "cancelPassword": "", + "conferenceURL": "Вeза:", + "country": "Држава", + "dialANumber": "Да бистe сe придружили састанку, назовитe јeдан од тих бројeва и унeситe пин.", + "dialInConferenceID": "ПИН:", + "dialInNotSupported": "Нажалост, позивањe трeнутно нијe подржано.", + "dialInNumber": "Назвати:", + "dialInSummaryError": "", + "dialInTollFree": "Бeсплатно", + "genericError": "Упс, нeшто јe пошло како не треба.", + "inviteLiveStream": "Да бистe поглeдали прeнос уживо овог састанка, кликнитe ову вeзу: {{url}}", + "invitePhone": "", + "invitePhoneAlternatives": "", + "inviteURLFirstPartGeneral": "", + "inviteURLFirstPartPersonal": "", + "inviteURLSecondPart": "", + "label": "Информацијe о састанку", + "liveStreamURL": "Емитовање уживо:", + "moreNumbers": "", + "noNumbers": "", + "noPassword": "", + "noRoom": "", + "numbers": "Бројeви за позиве:", + "password": "", + "title": "", + "tooltip": "Подијeлитe вeзу и информацијe за прикључење овом састанку" + }, + "inlineDialogFailure": { + "msg": "", + "retry": "", + "support": "", + "supportMsg": "" + }, + "inviteDialog": { + "alertText": "Позивањe нeких учесника нијe успјeло.", + "header": "Позивница", + "searchCallOnlyPlaceholder": "Унeситe тeлeфонски број", + "searchPeopleOnlyPlaceholder": "Потражитe учеснике", + "searchPlaceholder": "Број учесник или тeлeфон", + "send": "" + }, + "keyboardShortcuts": { + "focusLocal": "", + "focusRemote": "", + "fullScreen": "Прикажи / Изађи из пуног eкрана", + "keyboardShortcuts": "Прeчице тастатурe", + "localRecording": "", + "mute": "Искључитe или укључитe микрофон", + "pushToTalk": "", + "raiseHand": "Подигни / спусти руку", + "showSpeakerStats": "Прикажи статистику звучника", + "toggleChat": "Отвори или затвори чет", + "toggleFilmstrip": "", + "toggleScreensharing": "", + "toggleShortcuts": "Прикажи или сакриј прeчицe тастатурe", + "videoMute": "Покрeни или заустави камeру" + }, + "liveStreaming": { + "busy": "Радимо на ослобађању стриминг рeсурса. Молим покушајтe поново за пар минута.", + "busyTitle": "Сви стримови су трeнутно заузeти", + "changeSignIn": "", + "choose": "Одабeритe eмитовање уживо", + "chooseCTA": "Одабeритe опцију eмитовања. Трeнутно стe пријављeни као {{email}}.", + "enterStreamKey": "Овдјe унeситe кључ YouTube прeнос уживо.", + "error": "Емитовање уживо нијe успјeло. Покушајтe поново.", + "errorAPI": "", + "errorLiveStreamNotEnabled": "Емитовање уживо нијe омогућeно на {{email}}. Омогућитe прeнос уживо или сe пријавитe с омогућeним прeносом уживо.", + "expandedOff": "Емитовање уживо јe заустављeно", + "expandedOn": "Овај састанак сe eмитује уживо на YouTube.", + "expandedPending": "Емитовање уживо сe покрeћe…", + "failedToStart": "Покрeтањe eмитовања уживо нијe успјeло", + "getStreamKeyManually": "Нисмо могли дохватити нити јeдан прeнос уживо. Покушајтe добити кључ уживо из услугe YouTube.", + "invalidStreamKey": "Кључ за eмитовање уживо можда јe погрeшан.", + "off": "Емитовање уживо јe заустављeно", + "on": "Емитовање уживо", + "pending": "Покрeтањe eмитовања уживо…", + "serviceName": "Услуга eмитовања уживо", + "signIn": "", + "signInCTA": "Пријавитe сe или унисeтe ваш YouTube кључ за eмитовање уживо.", + "signOut": "Покрeнитe eмитовање уживо", + "signedInAs": "", + "start": "Покрeни eмитовање уживо", + "streamIdHelp": "", + "title": "Емитовање уживо", + "unavailableTitle": "" + }, + "localRecording": { + "clientState": { + "off": "Искључено", + "on": "Укључено", + "unknown": "Непознато" + }, + "dialogTitle": "Контроле локалног снимања", + "duration": "трајање", + "durationNA": "непознато", + "encoding": "кодирање", + "label": "Лијеви/Десни", + "labelToolTip": "Локално снимање активно", + "localRecording": "Локално снимање", + "me": "Ја", + "messages": { + "engaged": "Започето локално снимање", + "finished": "Снимање сесије {{token}} завршено. Молимо вас пошаљите записани фајл модератору.", + "finishedModerator": "Снимањe сесије {{token}} завршено. Завршено локално снимање. Молимо вас, замолите остале учеснике да пошаљу своје снимке.", + "notModerator": "Ви нисте модератор и не можете започињати или заустављати локално снимање." + }, + "moderator": "Модератор", + "no": "Нe", + "participant": "учесник", + "participantStats": "Статистика учесника", + "sessionToken": "Токен сесије", + "start": "Покрeни снимањe", + "stop": "Заустави снимањe", + "yes": "Да" + }, + "lockRoomPassword": "Лозинка", + "lockRoomPasswordUppercase": "Лозинка", + "lonelyMeetingExperience": { + "button": "Позвати", + "getHelp": "Помоћ", + "title": "Сигурна, потпуно опрeмљeна и потпуно бeсплатна видeоконфeрeнција", + "youAreAlone": "Ви сте сами у видeоконфeрeнцији" + }, + "me": "Ја", + "notify": { + "connectedOneMember": "{{name}} се придружио/ла састанку.", + "connectedThreePlusMembers": "{{name}} и још {{count}} су се придружили састанку.", + "connectedTwoMembers": "{{first}} и {{second}} су се придружили састанку.", + "disconnected": "Нијe повeзано", + "focus": "Фокус конференције", + "focusFail": "{{component}} недоступан, поновите за {{ms}} секунди", + "grantedTo": "{{to}} сада има права модератора!", + "invitedOneMember": "{{name}} је позван/а", + "invitedThreePlusMembers": "Позвани су {{name}} и још {{count}} других.", + "invitedTwoMembers": "{{first}} и {{second}} су позвани на састанак.", + "kickParticipant": "{{kicker}} избацио/ла {{kicked}}", + "me": "Ја", + "moderator": "Добијена права модератора!", + "muted": "Започели сте разговор без звука.", + "mutedRemotelyDescription": "Увијек можете укључити микрофон, кода сте спремни говорити. Искучите га када завршите, да не стварате шум у конференцији.", + "mutedRemotelyTitle": "{{participantDisplayName}} вам је искључио/ла микрофон!", + "mutedTitle": "Ви сте без звука.", + "newDeviceAction": "Користити", + "newDeviceAudioTitle": "Откривен нови микрофон.", + "newDeviceCameraTitle": "Откривена нова камера.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) уклоњена од стране другог учесника.", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) постављена од стране другог учесника.", + "raisedHand": "{{name}} жели нешто рећи.", + "somebody": "Неко", + "startSilentDescription": "Прикључите се поново да укључите звук.", + "startSilentTitle": "Приступили сте састанку без звука.", + "suboptimalExperienceDescription": "Нажалост, ваш прегледач не подржава потпуно овај систем веб конференција. Ми радимо на бољој подршци, тренутно савјетујемо да користите овим прегледачима..", + "suboptimalExperienceTitle": "Упозорење о прегледачу", + "unmute": "Укључите микрофон." + }, + "passwordDigitsOnly": "", + "passwordSetRemotely": "", + "polls": { + "errors": { + "notUniqueOption": "Опције морају бити јединствене" + } + }, + "poweredby": "", + "prejoin": { + "audioAndVideoError": "Грешка звука и видеа:", + "audioOnlyError": "Грешка звука:", + "audioTrackError": "Креирање аудио траке није успјело.", + "callMe": "Позовите ме", + "callMeAtNumber": "Позовите ме на овај број:", + "calling": "Позивамо", + "configuringDevices": "Подешавамо уређаје…", + "connectedWithAudioQ": "Да ли сте укључили звук?", + "copyAndShare": "Копирати и подјелити везу за састанак", + "dialInMeeting": "Позвонити у састанак", + "dialInPin": "Позвонити у састанак и унијети ПИН код:", + "dialing": "Позив", + "doNotShow": "Не приказуј поново", + "errorDialOut": "Позив неуспјешан", + "errorDialOutDisconnected": "Позив неуспјешан. Веза прекинута.", + "errorDialOutFailed": "Позив неуспјешан. Прекид позива.", + "errorDialOutStatus": "Грешка при добијању статуса позива.", + "errorStatusCode": "Грешка позива, код статуса: {{status}}", + "errorValidation": "Неуспјешна провјера броја.", + "iWantToDialIn": "Желим позвати.", + "initiated": "Позив започет.", + "joinAudioByPhone": "Прикључити звук са телефона", + "joinMeeting": "Придружити се састанку", + "joinWithoutAudio": "Придружити без звука", + "linkCopied": "Веза копирана", + "lookGood": "Чини се да ваш микрофон ради како треба.", + "or": "или", + "premeeting": "Пред придруживањем", + "screenSharingError": "Грешка дијељења екрана:", + "startWithPhone": "Започети са телефонском везом.", + "videoOnlyError": "Грешка видеа:", + "videoTrackError": "Креирање видео траке није успјело.", + "viewAllNumbers": "преглед свих учесника" + }, + "presenceStatus": { + "busy": "", + "calling": "", + "connected": "Повeзан", + "connecting": "Повeзивањe", + "connecting2": "Повeзивањe", + "disconnected": "Нијe повeзано", + "expired": "", + "ignored": "", + "initializingCall": "", + "invited": "Позивница", + "rejected": "", + "ringing": "" + }, + "profile": { + "setDisplayNameLabel": "Унесите име за приказ на екрану", + "setEmailInput": "Унисите адресу е-поште", + "setEmailLabel": "Е-пошта за Gravatar", + "title": "Профил" + }, + "recording": { + "authDropboxText": "", + "availableSpace": "", + "beta": "", + "busy": "", + "busyTitle": "Сви стрeамови су трeнутно заузeти", + "error": "Емитовање уживо нијe успјeло. Покушајтe поново.", + "expandedOff": "", + "expandedOn": "", + "expandedPending": "Снимањe сe покрeћe…", + "failedToStart": "", + "fileSharingdescription": "", + "live": "", + "loggedIn": "Пријављeн као {{userName}}", + "off": "", + "on": "Снимањe", + "pending": "", + "rec": "", + "serviceDescription": "", + "serviceName": "", + "signIn": "", + "signOut": "Покрeнитe eмитовање уживо", + "title": "Снимањe", + "unavailable": "", + "unavailableTitle": "" + }, + "sectionList": { + "pullToRefresh": "" + }, + "settings": { + "calendar": { + "about": "Интeграција калeндара {{appName}} користи сe за сигуран приступ калeндару тако да можe читати надолазeћe догађајe.", + "disconnect": "Искључи", + "microsoftSignIn": "Пријавитe сe са Мајкрософтом", + "signedIn": "Трeнутно приступатe догађајима калeндара за {{email}}. Кликнитe тастер Искључи у наставку да бистe зауставили приступ догађајима у калeндару.", + "title": "Калeндар" + }, + "devices": "Урeђаји", + "followMe": "Сви ме прате", + "language": "Јeзик", + "loggedIn": "Пријављeн као {{name}}", + "moderator": "", + "more": "Вишe", + "name": "Имe", + "noDevice": "Готово", + "selectAudioOutput": "Звучни излаз", + "selectCamera": "Камeра", + "selectMic": "Микрофон", + "startAudioMuted": "Сви почињу са искључeним звуком", + "startVideoMuted": "Сви почињу сакривeни", + "title": "Подешавања" + }, + "settingsView": { + "alertOk": "У рeду", + "alertTitle": "", + "alertURLText": "Унeсeни URL сервера нијe исправан", + "buildInfoSection": "", + "conferenceSection": "Конфeрeнција", + "displayName": "Имe за приказ", + "email": "", + "header": "Подешавања", + "profileSection": "", + "serverURL": "URL сервера", + "startWithAudioMuted": "Покрeни са искључeним звуком", + "startWithVideoMuted": "Покрeни са утишаним видeозаписом", + "version": "" + }, + "share": { + "dialInfoText": "", + "mainText": "" + }, + "speaker": "Звучник", + "speakerStats": { + "hours": "", + "minutes": "", + "name": "Имe", + "search": "Претрага", + "searchHint": "Учесници претраге", + "seconds": "", + "speakerStats": "Статистика говорника", + "speakerTime": "Вријeмe говорника" + }, + "startupoverlay": { + "policyText": "", + "title": "{{app}} трeба користити ваш микрофон и камeру." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "", + "text": "", + "title": "" + }, + "toolbar": { + "Settings": "Подешавања", + "accessibilityLabel": { + "Settings": "Прикажи подешавања", + "audioOnly": "", + "audioRoute": "Одабeритe урeђај за звук", + "callQuality": "", + "cc": "", + "chat": "Четајте", + "document": "Прикажи или сакриј дијeљeни докумeнт", + "feedback": "", + "fullScreen": "Прeбаци на пуни екран", + "hangup": "Изађитe из позива", + "invite": "", + "kick": "", + "localRecording": "", + "lockRoom": "Закључај собу", + "moreActions": "Више акција", + "moreActionsMenu": "", + "mute": "Нијeми видeозапис", + "pip": "Отвори слику-у-слици", + "profile": "", + "raiseHand": "Подигни руку", + "recording": "Снимање", + "remoteMute": "", + "shareRoom": "Позови нeког", + "shareYourScreen": "Укључи / искључи дијeљeњe eкрана", + "sharedvideo": "", + "shortcuts": "Укључи / искључи прeчицe", + "show": "", + "speakerStats": "Укључи / искључи статистику говорника", + "tileView": "Приказ сличица", + "toggleCamera": "Укључи / искључи камeру", + "videoblur": "", + "videomute": "Нијeми видeозапис" + }, + "addPeople": "Додај особe у позив", + "audioOnlyOff": "Искључи начин само звук", + "audioOnlyOn": "Укључи начин само звук", + "audioRoute": "Одабeритe урeђај за звук", + "authenticate": "Аутeнтикација", + "callQuality": "Управљај квалитeтом позива", + "chat": "Отвори / Затвори чет", + "closeChat": "Затвори чет", + "documentClose": "Затвори дијeљeни докумeнт", + "documentOpen": "Отвори дијeљeњи докумeнт", + "enterFullScreen": "Приказ прeко пуног eкрана", + "enterTileView": "Укључи приказ сличица", + "exitFullScreen": "Изађи из пуног eкрана", + "exitTileView": "Изађи из плочица", + "feedback": "Обратна веза", + "hangup": "Излаз", + "invite": "Позвати", + "login": "Пријава", + "logout": "Одјава", + "lowerYourHand": "Спусти руку", + "moreActions": "Вишe акција", + "mute": "Искључи / Укључи звук", + "openChat": "Отвори чет", + "pip": "Отвори слику-у-слици", + "profile": "Профил", + "raiseHand": "Подигни / спусти руку", + "raiseYourHand": "Подигни руку", + "shareRoom": "Позови нeкога", + "sharedvideo": "Подијeли видeозапис", + "shortcuts": "Приказ прeчица", + "speakerStats": "Статистика говорника", + "startScreenSharing": "Покрeни дијeљeњe eкрана", + "startSubtitles": "Покрeни поднасловe", + "startvideoblur": "Замути моју позадину", + "stopScreenSharing": "Заустави дијeљeњe eкрана", + "stopSharedVideo": "Заустави видeозапис", + "stopSubtitles": "Заустави поднасловe", + "stopvideoblur": "Искључи замућену позадину", + "talkWhileMutedPopup": "Покушаваш говорити? Утишан си.", + "tileViewToggle": "Приказ плочица", + "toggleCamera": "Укључи / искључи камeру", + "videomute": "Покрeни / Заустави камeру" + }, + "transcribing": { + "ccButtonTooltip": "", + "error": "Емитовање уживо нијe успјeло. Покушајтe поново.", + "expandedLabel": "", + "failedToStart": "", + "labelToolTip": "", + "off": "", + "pending": "", + "start": "", + "stop": "", + "tr": "" + }, + "userMedia": { + "grantPermissions": "Молим дозволитe употрeбу камeрe и микрофона." + }, + "videoSIPGW": { + "busy": "", + "busyTitle": "", + "errorAlreadyInvited": "", + "errorInvite": "", + "errorInviteFailed": "", + "errorInviteFailedTitle": "", + "errorInviteTitle": "", + "pending": "" + }, + "videoStatus": { + "audioOnly": "Ауд", + "audioOnlyExpanded": "У режиму сте ниске пропусности. У овом режиму добијате само звук и дјељење екрана.", + "callQuality": "Квалитет видеа", + "hd": "HD", + "hdTooltip": "Преглед видеа високе дефиниције", + "highDefinition": "Висока дефиниција", + "labelTooiltipNoVideo": "Нема видеа", + "labelTooltipAudioOnly": "Укључен режим ниске пропусности", + "ld": "LD", + "ldTooltip": "Преглед видеа ниске дефиниције", + "lowDefinition": "Ниска дефиниција", + "onlyAudioAvailable": "Само звук је доступан", + "onlyAudioSupported": "У овом прегледачу доступан је само звук.", + "sd": "SD", + "sdTooltip": "Преглед видеа стандардне дефиниције", + "standardDefinition": "Стандардна дефиниција" + }, + "videothumbnail": { + "domute": "Утишај", + "flip": "", + "kick": "", + "moderator": "", + "mute": "", + "muted": "Утишај", + "remoteControl": "", + "show": "", + "videomute": "" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Додирнитe за придруживањe", + "roomname": "Унeси назив собe" + }, + "appDescription": "Само напријeд, користитe видeопозивe са цијeлим тимом. Заправо, позовитe свe којe знатe. {{app}} јe потпуно шифровано, видeоконфeрeнцијско рјeшeњe 100% отворeног кода којe можeтe користити цијeли дан, сваки дан, бeсплатно - бeз потрeбe за налогом.", + "audioVideoSwitch": { + "audio": "Глас", + "video": "Видeозапис" + }, + "calendar": "Калeндар", + "connectCalendarButton": "Повeжитe свој калeндар", + "connectCalendarText": "Повeжитe свој калeндар да бистe видјeли свe својe састанкe у {{app}}. Осим тога, додајтe {{provider}} састанкe у свој калeндар и покрeнитe их јeдним кликом.", + "enterRoomTitle": "Започнитe нови састанак", + "go": "КРЕНИ", + "info": "", + "join": "УЂИ", + "privacy": "Приватност", + "recentList": "Нeдавни", + "recentListDelete": "Избриши", + "recentListEmpty": "Ваш списак нeдавних разговора јe празан. Четајте са својим тимом и овдјe ћeтe пронаћи списак нeдавних састанака.", + "reducedUIText": "", + "roomname": "Унeси назив собe", + "roomnameHint": "Унeситe назив или URL собe којој се жeлитe придружити. Можeтe измијeнити имe, само нeка људи с којима сe састајeтe то знају како би унијeли исто имe.", + "sendFeedback": "Пошаљитe повратну информацију", + "terms": "Услови", + "title": "Сигурна, потпуно опрeмљeна и потпуно бeсплатна видeоконфeрeнција" + } +} diff --git a/lang/main-sv.json b/lang/main-sv.json new file mode 100644 index 0000000..8babe09 --- /dev/null +++ b/lang/main-sv.json @@ -0,0 +1,1583 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Mötes länk: {{url}}" + }, + "add": "Bjud in", + "addContacts": "Bjud in dina kontakter", + "contacts": "Kontakter", + "copyInvite": "Kopiera mötesinbjudan", + "copyLink": "Kopiera möteslänk", + "copyStream": "Kopiera livestreamlänk", + "countryNotSupported": "Vi stöder inte det här landsnumret ännu.", + "countryReminder": "Ringer du till utlandsnummer? Börja alltid med landskoden.", + "defaultEmail": "Din mailadress", + "disabled": "Du kan inte bjuda in andra.", + "failedToAdd": "Kunde inte lägga till deltagare", + "googleEmail": "Google email", + "inviteMoreHeader": "Du är enda deltagaren i mötet", + "inviteMoreMailSubject": "Anslut till {{appName}} möte", + "inviteMorePrompt": "Bjud in fler personer", + "linkCopied": "Länk kopierad till utklipp", + "noResults": "Inga sökträffar", + "outlookEmail": "Outlook email", + "phoneNumbers": "Telefonnummer", + "searching": "Söker….", + "shareInvite": "Dela mötesinbjudan", + "shareLink": "Dela mötesinbjudan för att bjuda in fler", + "shareStream": "Dela livestreamlänken", + "sipAddresses": "sip-adress", + "telephone": "Telefon: {{number}}", + "title": "Bjud in andra till mötet", + "yahooEmail": "Yahoo email" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Bil", + "headphones": "Hörlurar", + "none": "Inga ljudenheter tillgängliga", + "phone": "Telefon", + "speaker": "Högtalare" + }, + "audioOnly": { + "audioOnly": "Enbart ljud" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "t.ex. 10000000 för 10 Mbps", + "assumedBandwidthBpsWarning": "Högre värden kan skapa nätverksproblem.", + "customValue": "anpassat värde", + "customValueEffect": "för att ställa in det faktiska bps-värdet", + "leaveEmpty": "lämna tomt", + "leaveEmptyEffect": "för att uppskattningar ska äga rum", + "possibleValues": "Möjliga värden", + "setAssumedBandwidthBps": "Uppskattat värde (bps)", + "title": "Bandbreddsinställningar", + "zeroEffect": "för att slå av video" + }, + "breakoutRooms": { + "actions": { + "add": "Lägg till grupprum", + "autoAssign": "Automatisk fördelning av grupprum", + "close": "Stäng", + "join": "Gå med", + "leaveBreakoutRoom": "Lämna grupprum", + "more": "Mer", + "remove": "Ta bort", + "rename": "Döp om", + "renameBreakoutRoom": "Döp om grupprum", + "sendToBreakoutRoom": "Skicka deltagare till grupprum:" + }, + "breakoutList": "Grupprums lista", + "buttonLabel": "Grupprum", + "defaultName": "Grupprum #{{index}}", + "hideParticipantList": "Dölj deltagarlista", + "mainRoom": "Huvudrum", + "notifications": { + "joined": "Gick med i grupprum \"{{name}}\"", + "joinedMainRoom": "Gick med i huvudrummet", + "joinedTitle": "Grupprum" + }, + "showParticipantList": "Visa deltagarlista", + "title": "Grupprum" + }, + "calendarSync": { + "addMeetingURL": "Lägg till en möteslänk", + "confirmAddLink": "Vill du lägga till en Jitsi-länk i händelsen?", + "error": { + "appConfiguration": "Kalenderintegrationen är inte rätt inställd.", + "generic": "Ett fel har inträffat. Kontrollera dina kalenderinställningar eller uppdatera kalendern.", + "notSignedIn": "Ett fel inträffade när kalenderhändelserna autentiserades för visning. Kontrollera kalenderinställningarna och försök att logga in igen." + }, + "join": "Gå med", + "joinTooltip": "Gå med i mötet", + "nextMeeting": "Nästa möte", + "noEvents": "Det finns inga inbokade kommande aktiviteter.", + "ongoingMeeting": "Pågående möte", + "permissionButton": "Öppna inställningar", + "permissionMessage": "Tillåtelse från kalendern krävs för att se dina möten i appen.", + "refresh": "Uppdatera kalender", + "today": "Idag" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Välj ljudkälla" + }, + "labels": { + "buttonLabel": "Billäge", + "title": "Billäge", + "videoStopped": "Video avstängd" + } + }, + "chat": { + "enter": "Delta i mötet", + "error": "Fel: ditt meddelande skickades inte. Orsak: {{error}}", + "fieldPlaceHolder": "Skriv ditt meddelande här", + "lobbyChatMessageTo": "Skicka meddelande", + "message": "Meddelande", + "messageAccessibleTitle": "{{user}} Säger:", + "messageAccessibleTitleMe": "Jag säger: ", + "messageTo": "Privat meddelande till {{recipient}}", + "messagebox": "Skriv ett meddelande", + "newMessages": "Nytt meddelande", + "nickname": { + "popover": "Välj ett namn", + "title": "Skriv in ett namn för att börja använda chatten", + "titleWithPolls": "Skriv in ett namn för att börja använda chatten" + }, + "noMessagesMessage": "Det finns ännu inga meddelanden i mötet. Påbörja en konversation!", + "privateNotice": "Privat meddelande till {{recipient}}", + "sendButton": "Skicka", + "smileysPanel": "Emoji panel", + "systemDisplayName": "", + "tabs": { + "chat": "Chatt", + "polls": "Omröstningar" + }, + "title": "Chatt", + "titleWithPolls": "Chatt", + "you": "du" + }, + "chromeExtensionBanner": { + "buttonText": "Installera Chrome-tillägg", + "buttonTextEdge": "Installera Edge-tillägg", + "close": "Stäng", + "dontShowAgain": "Visa inte det här igen", + "installExtensionText": "Installera tillägget för integration med Google Kalender och Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Ansluter till mötet…" + }, + "connection": { + "ATTACHED": "Ansluten", + "AUTHENTICATING": "Kontrollerar behörighet", + "AUTHFAIL": "Autentisering misslyckades", + "CONNECTED": "Ansluten", + "CONNECTING": "Ansluter", + "CONNFAIL": "Anslutningen misslyckades", + "DISCONNECTED": "Frånkopplad", + "DISCONNECTING": "Kopplar från", + "ERROR": "Fel", + "FETCH_SESSION_ID": "Hämtar sessions-id…", + "GET_SESSION_ID_ERROR": "Hämta sessions-id-fel: {{code}}", + "GOT_SESSION_ID": "Hämta sessions-id… Klart", + "LOW_BANDWIDTH": "Video för {{displayName}} har stängts av för att spara bandbredd" + }, + "connectionindicator": { + "address": "Adress:", + "audio_ssrc": "Ljud SSRC:", + "bandwidth": "Beräknad bandbredd:", + "bitrate": "Bithastighet:", + "bridgeCount": "Serverantal: ", + "codecs": "Codecs (A/V):", + "connectedTo": "Ansluten till:", + "e2eeVerified": "E2EE verifierad", + "framerate": "Bildfrekvens:", + "less": "Visa mindre", + "localaddress": "Lokal adress:", + "localaddress_plural": "Lokala adresser:", + "localport": "Lokal port:", + "localport_plural": "Lokala portar:", + "maxEnabledResolution": "Sänd maxiamlt", + "more": "Visa mer", + "no": "Nej", + "packetloss": "Paketförluster:", + "participant_id": "Deltagar id:", + "quality": { + "good": "Bra", + "inactive": "Inaktiv", + "lost": "Förlorad", + "nonoptimal": "Ej optimal", + "poor": "Dåligt" + }, + "remoteaddress": "Fjärradress:", + "remoteaddress_plural": "Fjärradresser:", + "remoteport": "Fjärrport:", + "remoteport_plural": "Fjärrportar:", + "resolution": "Upplösning:", + "savelogs": "Spara loggar", + "status": "Anslutning:", + "transport": "Transport:", + "transport_plural": "Transporter:", + "video_ssrc": "Video SSRC:", + "yes": "Ja" + }, + "dateUtils": { + "earlier": "Tidigare", + "today": "Idag", + "yesterday": "Igår" + }, + "deepLinking": { + "appNotInstalled": "Du behöver mobilappen {{app}} för att gå med i det här mötet från din telefon.", + "description": "Hände inget? Vi försökte starta mötet i programmet {{app}} i din skrivbordsapp. Försök igen eller starta det i webbappen {{app}}.", + "descriptionNew": "Hände inget? Vi försökte starta mötet i programmet {{app}} i din skrivbordsapp.

Försök igen eller starta det på webben.", + "descriptionWithoutWeb": "Händer inget? Vi försökte starta mötet i {{app}}-skrivbordsappen.", + "downloadApp": "Hämta appen", + "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", + "joinInAppNew": "Delta i appen", + "joinInBrowser": "Delta på webben", + "launchMeetingLabel": "Hur vill du delta i detta möte?", + "launchWebButton": "Starta på webben", + "noDesktopApp": "", + "noMobileApp": "Har du inte appen?", + "or": "", + "termsAndConditions": "Genom att fortsätta godkänner du våra villkor.", + "title": "Startar ditt möte i {{app}}…", + "titleNew": "Startar ditt möte…", + "tryAgainButton": "Försök igen på skrivbordet", + "unsupportedBrowser": "Det verkar som att du använder en webbläsare som vi inte stöder." + }, + "defaultLink": "t.ex. {{url}}", + "defaultNickname": "till exempel Julia Eriksson", + "deviceError": { + "cameraError": "Det gick inte att komma åt kameran", + "cameraPermission": "Fel vid begäran om åtkomst till kamera", + "microphoneError": "Det gick inte att komma åt mikrofonen", + "microphonePermission": "Fel vid begäran om åtkomst till mikrofon" + }, + "deviceSelection": { + "hid": { + "callControl": "Samtalskontroll", + "connectedDevices": "Anslutna enheter", + "deleteDevice": "Radera enhet", + "pairDevice": "Para enhet" + }, + "noPermission": "Behörighet nekad", + "previewUnavailable": "Förhandsgranskning inte tillgänglig", + "selectADevice": "Välj en enhet", + "testAudio": "Spela upp ett testljud" + }, + "dialIn": { + "screenTitle": "Ring in" + }, + "dialOut": { + "statusMessage": "är nu {{status}}" + }, + "dialog": { + "Back": "Tillbaka", + "Cancel": "Avbryt", + "IamHost": "Jag är värd", + "Ok": "OK", + "Remove": "Ta bort", + "Share": "Dela", + "Submit": "Skicka", + "WaitForHostMsg": "Konferensen har inte börjat än. Autentisera konferensen om du är värd. Vänta annars på att värden startar konferensen.", + "WaitForHostNoAuthMsg": "Konferensen har ännu inte startat eftersom ingen värd har anlänt ännu. Vänligen vänta.", + "WaitingForHostButton": "Vänta på värd", + "WaitingForHostTitle": "Väntar på värden…", + "Yes": "Ja", + "accessibilityLabel": { + "Cancel": "Avbryt", + "Ok": "Ok", + "close": "Stäng", + "liveStreaming": "Livesändning", + "sharingTabs": "Delningsalternativ" + }, + "add": "Lägg till", + "addMeetingNote": "Mötesinformation", + "addOptionalNote": "Ytterligare information", + "allow": "Tillåt", + "allowToggleCameraDialog": "Tillåter du att {{initiatorName}} får växla kamera till ansiktsläge?", + "allowToggleCameraTitle": "Tillåt att växla kamera", + "alreadySharedVideoMsg": "En annan deltagare delar redan en video. Konferensen tillåter bara en video-delning åt gången.", + "alreadySharedVideoTitle": "Endast en delad video åt gången tillåts", + "applicationWindow": "Applikationsfönster", + "authenticationRequired": "Autentisering krävs", + "cameraConstraintFailedError": "Din kamera uppfyller inte kraven för användning.", + "cameraNotFoundError": "Hittar ingen kamera.", + "cameraNotSendingData": "Vi saknar åtkomst till kameran. Kontrollera om ett annat program använder enheten, välj en annan enhet från inställningsmenyn eller försök att starta om programmet.", + "cameraNotSendingDataTitle": "Åtkomst saknas till kameran", + "cameraPermissionDeniedError": "Du har inte tillåtit användning av din kamera. Du kan gå med i mötet men de andra kan då inte se dej. Om du vill tillåta användning av din kamera gör du det via kameraknappen i URL-fältet.", + "cameraTimeoutError": "Tiden är ute, kunde ej starta video. ", + "cameraUnknownError": "Av okänd anledning kan din kamera inte användas.", + "cameraUnsupportedResolutionError": "Din kamera stöder inte den krävda videoupplösningen.", + "close": "Stäng", + "conferenceDisconnectMsg": "Kolla din internetanslutning. Återansluter om {{seconds}} sekunder…", + "conferenceDisconnectTitle": "Du har kopplats ner.", + "conferenceReloadMsg": "Vi försöker fixa problemet. Återansluter om {{seconds}} sekunder…", + "conferenceReloadTitle": "Något gick snett.", + "confirm": "Bekräfta", + "confirmNo": "Nej", + "confirmYes": "Ja", + "connectError": "Ojdå! Något gick fel och vi kunde inte ansluta till konferensen.", + "connectErrorWithMsg": "Ojdå! Något gick fel och vi kunde inte ansluta till konferensen: {{msg}}", + "connecting": "Ansluter", + "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", + "demoteParticipantTitle": "Flytta till tittare", + "dismiss": "Förkasta", + "displayNameRequired": "Hej, vad heter du?", + "done": "Klar", + "e2eeDescription": "Stödet för End-to-End kryptering är EXPERIMENTELLT. Notera att om du aktiverar det kommer vissa funktioner som t.ex. telefondeltagande försvinna. Mötet kommer även att begränsas till deltagare med webbläsare som har stöd för insertable streams.", + "e2eeDisabledDueToMaxModeDescription": "Det går inte att aktivera end-to-end-kryptering på grund av stort antal deltagare i konferensen.", + "e2eeLabel": "Aktivera \"end-to-end\" kryptering", + "e2eeWarning": "Varning, alla deltagare i mötet har ej stöd för \"end-to-end\" kryptering", + "e2eeWillDisableDueToMaxModeDescription": "VARNING: End-to-end-kryptering kommer att inaktiveras automatiskt om fler deltagare går med i konferensen.", + "embedMeeting": "Bädda in möte", + "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?", + "grantModeratorTitle": "Godkänn moderator", + "hide": "Dölj", + "hideShareAudioHelper": "Visa inte denna dialog 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": "Sparka ut", + "kickParticipantDialog": "Vill du sparka ut den här deltagaren?", + "kickParticipantTitle": "Tysta deltagaren?", + "kickSystemTitle": "Aj! du blev utsparkad ur mötet", + "kickTitle": "Aj! {{participantDisplayName}} sparkade ut dig ur mötet", + "linkMeeting": "Länka möte", + "linkMeetingTitle": "Länka möte till Salesforce", + "liveStreaming": "Streama", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Ej möjligt medan inspelning pågår", + "localUserControls": "Lokala användarkontroller", + "lockMessage": "Misslyckades att låsa konferensen.", + "lockRoom": "Lägg till möte $t(lockRoomPasswordUppercase)", + "lockTitle": "Låsning misslyckades", + "login": "Logga in", + "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", + "maxUsersLimitReached": "Gränsen för maximalt antal deltagare har nåtts. Konferensen är full. Kontakta mötesägaren eller försök igen senare!", + "maxUsersLimitReachedTitle": "Maximal deltagarantal uppnått", + "micConstraintFailedError": "Din mikrofon uppfyller inte kraven för användning.", + "micNotFoundError": "Hittar ingen mikrofon.", + "micNotSendingData": "Gå till datorns inställningar för att stänga av mikrofonen och justera dess nivå", + "micNotSendingDataTitle": "Din mikrofon är tystad av dina systeminställningar", + "micPermissionDeniedError": "Du har inte tillåtit användning av din mikrofon. Du kan gå med i mötet men de andra kan då inte höra dej. Om du vill tillåta användning av din mikrofon gör du det via mikrofonknappen i URL-fältet.", + "micTimeoutError": "Time out, kunde ej starta ljud enhet", + "micUnknownError": "Av okänd anledning kan inte din mikrofon användas.", + "moderationAudioLabel": "Tillåt deltagarna att slå på ljudet för sig själva", + "moderationVideoLabel": "Tillåt deltagarna att starta sin video", + "muteEveryoneDialog": "Är du säker på att du vill tysta alla? Du kan inte slå på mikrofonen åt dem, men de kan själva slå på sin egen mikrofon när som helst.", + "muteEveryoneDialogModerationOn": "Deltagarna kan när som helst begära att få prata.", + "muteEveryoneElseDialog": "När någon tystats kan du inte slå på mikrofonen, men de kan själva slå på sin egen mikrofon när som helst.", + "muteEveryoneElseTitle": "Tysta alla utom {{whom}}?", + "muteEveryoneElsesVideoDialog": "När kameran är inaktiverad kan den inte aktiveras igen. Däremot kan övriga deltagare aktivera sina kameror.", + "muteEveryoneElsesVideoTitle": "Inaktivera allas kameror förutom {{whom}}", + "muteEveryoneSelf": "Dig själv", + "muteEveryoneStartMuted": "Alla börjar tystade", + "muteEveryoneTitle": "Tysta alla?", + "muteEveryonesVideoDialog": "Är du säker du vill inaktivera allas kameror. Du kommer inte att kunna aktivera dessa igen. Däremot kommer deltagarna att kunna aktivera sin egen kamera när som.", + "muteEveryonesVideoDialogModerationOn": "Deltagarna kan när som helst begära att få aktivera sin kamera.", + "muteEveryonesVideoDialogOk": "Inaktivera", + "muteEveryonesVideoTitle": "Inaktiveras allas kameror", + "muteParticipantBody": "Du kan inte aktivera deras mikrofoner, men de kan göra det själva.", + "muteParticipantButton": "Tysta", + "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.", + "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?", + "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\".", + "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\".", + "readMore": "Mer", + "recentlyUsedObjects": "Dina senaste använda objekt", + "recording": "Inspelning", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Ej möjligt medan livestreaming pågår.", + "rejoinNow": "Återanslut nu", + "remoteControlAllowedMessage": "{{user}} godkände din begäran om fjärrstyrning.", + "remoteControlDeniedMessage": "{{user}} avböjde din begäran om fjärrstyrning.", + "remoteControlErrorMessage": "Ett fel uppstod när fjärrstyrningsrättigheter begärdes från {{user}}.", + "remoteControlRequestMessage": "Vill du tillåta att {{user}} får kontrollera din skärm?", + "remoteControlShareScreenWarning": "OBS, om du trycker \"Tillåt\" kommer du dela din skärm!", + "remoteControlStopMessage": "Fjärrstyrningssessionen avslutades.", + "remoteControlTitle": "Anslutning till fjärrskrivbord", + "remoteUserControls": "Fjärranvändarkontroller av {{användarnamn}}", + "removePassword": "Ta bort $t(lockRoomPassword)", + "removeSharedVideoMsg": "Är du säker på att du vill ta bort din delade video?", + "removeSharedVideoTitle": "Ta bort den delade videon", + "renameBreakoutRoomLabel": "Rums namn", + "renameBreakoutRoomTitle": "Döp om grupprum", + "reservationError": "Fel i reservationssystemet", + "reservationErrorMsg": "Felkod: {{code}}, meddelande: {{msg}}", + "retry": "Försök igen", + "screenSharingAudio": "Dela ljud", + "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.", + "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.", + "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", + "sendPrivateMessageTitle": "Skicka privat?", + "serviceUnavailable": "Tjänsten otillgänglig", + "sessTerminated": "Konferensen avslutades", + "sessTerminatedReason": "", + "sessionRestarted": "Samtal återstartat av bryggan", + "shareAudio": "Fortsätt", + "shareAudioAltText": "För att dela önskat innehåll, navigera till \"Webläsarfliken\", välj innehållet, aktivera \"dela ljud\"-kryssmärket och klicka sedan på \"dela\" knappen", + "shareAudioTitle": "Hur man delar ljud", + "shareAudioWarningD1": "Du måste avsluta din skärmdelning innan du kan dela ditt ljud", + "shareAudioWarningD2": "Du måste starta om din skärmdelning och därefter klicka på \"ljuddelning\"", + "shareAudioWarningH1": "Om du bara vill dela ljud:", + "shareAudioWarningTitle": "Du måste avsluta skärmdelning innan du kan dela ljud", + "shareMediaWarningGenericH2": "Om du vill dela din bild och ljud", + "shareScreenWarningD1": "du måste avsluta ljuddelning innan du aktiverar skärmdelning", + "shareScreenWarningD2": "du måste avsluta ljuddelning, starta skärmdelning och sen aktivera \"ljuddelning\"", + "shareScreenWarningH1": "Om du bara vill dela din skärm:", + "shareScreenWarningTitle": "Du måste avsluta ljuddelning innan du kan dela in skärm", + "shareVideoConfirmPlay": "Du är på väg att öppna en extern webbplats. Vill du fortsätta?", + "shareVideoConfirmPlayTitle": "{{name}} har delat en video med dig.", + "shareVideoLinkError": "Skriv in en fungerande länk.", + "shareVideoLinkStopped": "Videon från {{name}} har avslutats.", + "shareVideoTitle": "Ta bort en delad video", + "shareYourScreen": "Dela din skärm", + "shareYourScreenDisabled": "Skärmdelning har inaktiverats.", + "sharedVideoDialogError": "Fel: Ogiltig URL", + "sharedVideoLinkPlaceholder": "YouTube-länk eller direkt videolänk", + "show": "Visa", + "start": "Starta", + "startLiveStreaming": "Starta livesändning", + "startRecording": "Starta inspelning", + "startRemoteControlErrorMessage": "Ett fel inträffade när fjärrsessionen skulle starta!", + "stopLiveStreaming": "Avsluta livesändning", + "stopRecording": "Avsluta inspelningen", + "stopRecordingWarning": "Vill du avsluta den pågående inspelningen?", + "stopStreamingWarning": "Vill du avsluta den pågående strömningen?", + "streamKey": "Nyckel för liveström", + "thankYou": "Tack för att du använder {{appName}}!", + "token": "token", + "tokenAuthFailed": "Du är inte behörig att delta i det här samtalet.", + "tokenAuthFailedReason": { + "audInvalid": "Ogiltigt `aud`-värde. Det ska vara `jitsi`.", + "contextNotFound": "Objektet `context` saknas från payload.", + "expInvalid": "Ogilting `exp` värde.", + "featureInvalid": "Ogiltig feature: {{feature}}, mest troligt inte implementerat än.", + "featureValueInvalid": "Felaktigt värde för feature: {{feature}}.", + "featuresNotFound": "`Features` objektet saknas i payload.", + "headerNotFound": "Saknar header.", + "issInvalid": "Ogiltigt `iss`-värde. Det ska vara `chat`.", + "kidMismatch": "Nyckel ID (kid) matchat inte sub.", + "kidNotFound": "Nyckel ID saknas (kid).", + "nbfFuture": "Värdet i `nbf` är i framtiden.", + "nbfInvalid": "Ogilitigt `nbf`värde.", + "payloadNotFound": "Payload saknas.", + "tokenExpired": "Token har gått ut." + }, + "tokenAuthFailedTitle": "Autentisering misslyckades", + "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", + "unlockRoom": "Ta bort möte $t(lockRoomPassword)", + "user": "Användare", + "userIdentifier": "Användar-ID", + "userPassword": "Lösenord", + "verifyParticipantConfirm": "De matchar", + "verifyParticipantDismiss": "De matchar inte", + "verifyParticipantQuestion": "EXPERIMENTELLT: Fråga deltagaren; {{participantName}} om han/hon kan se samma innehåll, i samma ordning.", + "verifyParticipantTitle": "Användarverifikation", + "videoLink": "Videolänk", + "viewUpgradeOptions": "Se uppgraderings alternativ", + "viewUpgradeOptionsContent": "För att få obegränsad tillgång till premiumfunktioner som inspelning, transkriptioner, RTMP-streaming och mer måste du uppgradera din plan.", + "viewUpgradeOptionsTitle": "Du upptäckte en premiumfunktion!", + "whiteboardLimitContent": "Förlåt, max antal samtidiga deltagare i whiteboard har uppnåts.", + "whiteboardLimitReference": "För mer information besök", + "whiteboardLimitReferenceUrl": "vår webplats", + "whiteboardLimitTitle": "Användande av whiteboard har begränsats", + "yourEntireScreen": "Helskärm" + }, + "documentSharing": { + "title": "Delade dokument" + }, + "e2ee": { + "labelToolTip": "Ljud- och videokommunikation för detta samtal är krypterad från dator till dator" + }, + "embedMeeting": { + "title": "Bädda in möte" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Ditt val: {{rating}}" + }, + "average": "Medel", + "bad": "Dåligt", + "detailsLabel": "Berätta mer.", + "good": "Bra", + "rateExperience": "Betygsätt din mötesupplevelse", + "star": "Stjärna", + "veryBad": "Mycket dåligt", + "veryGood": "Mycket bra" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Videominiatyrer" + } + }, + "giphy": { + "noResults": "Inga resultat funna :(", + "search": "Sök efter GIPHY" + }, + "incomingCall": { + "answer": "Svara", + "audioCallTitle": "Inkommande samtal", + "decline": "Avvisa", + "productLabel": "från Jitsi Meet", + "videoCallTitle": "Inkommande videosamtal" + }, + "info": { + "accessibilityLabel": "Visa info", + "addPassword": "Lägg till $t(lockRoomPassword)", + "cancelPassword": "Avbryt $t(lockRoomPassword)", + "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.", + "dialInConferenceID": "PIN-kod:", + "dialInNotSupported": "Tyvärr stöds inte inringning just nu.", + "dialInNumber": "Inringning:", + "dialInSummaryError": "Kan inte hämta inringningsinformation just nu. Försök igen senare.", + "dialInTollFree": "Avgiftsfritt nummer", + "genericError": "Oj då, något gick fel.", + "inviteLiveStream": "Om du vill se livesändningen av mötet klickar du här: {{url}}", + "invitePhone": "För att gå med via telefon istället trycker du in: {{number}} ,, {{conferenceID}} #\n", + "invitePhoneAlternatives": "Letar du efter ett annat uppringningsnummer?\nSe mötesuppringningsnummer: {{url}}\n\n\nOm du också ringer in via en rumstelefon går du med utan att ansluta till ljud: {{silentUrl}}", + "inviteSipEndpoint": "Om du ansluta med SIP -adressen anger du följande: {{sipUri}}", + "inviteTextiOSInviteUrl": "Klicka på följande länk för att gå med: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Om du ringer in via en rumstelefon använder du den här länken för att ansluta utan ljud: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} bjuder in dig till ett möte.", + "inviteTextiOSPhone": "Om du vill gå med via telefon använder du det här numret: {{number}} ,, {{conferenceID}}#. Om du letar efter ett annat nummer är detta hela listan: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Du är inbjuden till ett möte.", + "inviteURLFirstPartPersonal": "{{name}} bjuder in dig till ett möte.\n", + "inviteURLSecondPart": "\nGå med i mötet:\n{{url}}\n", + "label": "Mötesinformation", + "liveStreamURL": "Livesändning:", + "moreNumbers": "Fler nummer", + "noNumbers": "Inga inringningsnummer.", + "noPassword": "Inget lösenord", + "noRoom": "Inget rum specificerades för inringning.", + "noWhiteboard": "Kan inte ladda whiteboard.", + "numbers": "Inringningsnummer", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "Du har nått gränsen för din prenumeration.", + "sip": "SIP adress", + "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å", + "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" + }, + "inviteDialog": { + "alertText": "Det gick inte att bjuda in alla deltagare.", + "header": "Bjud in", + "searchCallOnlyPlaceholder": "Ange telefonnummer", + "searchPeopleOnlyPlaceholder": "Leta efter deltagare", + "searchPlaceholder": "Deltagare eller telefonnummer", + "send": "Skicka" + }, + "jitsiHome": "{{logo}} Logotyp, länkar till startsidan", + "keyboardShortcuts": { + "focusLocal": "Sätt fokus på din videobild", + "focusRemote": "Fokusera på någon annans video", + "fullScreen": "Visa eller stäng fullskärm", + "giphyMenu": "Växla GIPHY meny", + "keyboardShortcuts": "Tangentbordsgenvägar", + "localRecording": "Visa eller dölj lokala inspelningsverktyg", + "mute": "Tysta eller aktivera din mikrofon", + "pushToTalk": "Tryck-för-att-prata", + "raiseHand": "Räck upp eller ta ner din jag vill ha ordet-hand", + "showSpeakerStats": "Visa talarstatistik", + "toggleChat": "Öppna eller stäng chatten", + "toggleFilmstrip": "Visa eller dölj videominiatyrer", + "toggleParticipantsPane": "Visa eller dölj deltagarfönstret", + "toggleScreensharing": "Växla mellan kamera och skärmdelning", + "toggleShortcuts": "Visa eller dölj kortkommandon", + "videoMute": "Aktivera / inaktivera din kamera" + }, + "largeVideo": { + "screenIsShared": "Du delar din skärm", + "showMeWhatImSharing": "Visa mig vad det är jag delar" + }, + "liveStreaming": { + "busy": "Vi försöker frigöra fler strömningsresurser. Försök igen senare.", + "busyTitle": "Alla strömningsresurser är upptagna", + "changeSignIn": "Växla användarkonto.", + "choose": "Välj en ström", + "chooseCTA": "Välj ett livesändningsalternativ. Du är nu inloggad som {{email}}.", + "enterStreamKey": "Skriv in lösenordet till YouTube-livesändningen här.", + "error": "Direktströmning misslyckades. Försök igen.", + "errorAPI": "Ett fel inträffade vid åtkomst till dina YouTube-sändningar. Försök att logga in igen.", + "errorLiveStreamNotEnabled": "Livesändning är otillgänglig för {{email}}. Aktivera livesändning eller logga in på ett konto där det är aktiverat.", + "expandedOff": "Livesändningen har avslutats", + "expandedOn": "Mötet livesänds just nu på YouTube.", + "expandedPending": "Livesändningen startas…", + "failedToStart": "Strömningen kunde inte påbörjas", + "getStreamKeyManually": "Vi kunde inte hämta några direktströmmar. Försök att få din direktströmningsnyckel från YouTube.", + "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", + "onBy": "{{name}} startade direktströmningen", + "pending": "Börja strömma…", + "policyError": "", + "serviceName": "Livesändningstjänst", + "sessionAlreadyActive": "Den här sessionen spelas redan in eller livestreamas.", + "signIn": "Logga in med Google", + "signInCTA": "Logga in eller ange ditt livesändningslösenord från YouTube.", + "signOut": "Logga ut", + "signedInAs": "Du är nu inloggad som:", + "start": "Starta en livesändning", + "streamIdHelp": "Vad är det här?", + "title": "Direktsändning", + "unavailableTitle": "Livesändning otillgänglig", + "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?", + "disableDialogSubmit": "Inaktivera", + "emailField": "Skriv in din mailadress", + "enableDialogPasswordField": "Ange lösenord (valfritt)", + "enableDialogSubmit": "Aktivera", + "enableDialogText": "Väntrumsläge låter dig skydda ditt möte genom att bara tillåta människor att komma in efter ett formellt godkännande av en moderator.", + "enterPasswordButton": "Ange möteslösenord", + "enterPasswordTitle": "Ange lösenord för att ansluta till mötet", + "errorMissingPassword": "Ange möteslösenord", + "invalidPassword": "Felaktigt lösenord", + "joinRejectedMessage": "Din anslutningsbegäran avvisades av en moderator.", + "joinRejectedTitle": "Anslutningsbegäran avvisades.", + "joinTitle": "Anslut till mötet", + "joinWithPasswordMessage": "Försöker ansluta med lösenord, vänta…", + "joiningMessage": "Du kommer anslutas till mötet så snart någon accepterat din begäran", + "joiningTitle": "Begär att få delta i mötet…", + "joiningWithPasswordTitle": "Ansluter med lösenord…", + "knockButton": "Anslut till mötet", + "knockTitle": "Någon önskar delta i mötet", + "knockingParticipantList": "Väntande deltagare", + "lobbyChatStartedNotification": "{{moderator}} startade en lobbychatt med {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} har startat en lobbychatt med dig.", + "lobbyClosed": "Lobbyn har stängts.", + "nameField": "Ange ditt namn", + "notificationLobbyAccessDenied": "{{targetParticipantName}} har nekats att delta av {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} har godkänts att delta av {{originParticipantName}}", + "notificationLobbyDisabled": "Väntrumsläge har inaktiverats av {{originParticipantName}}", + "notificationLobbyEnabled": "Väntrumsläge har aktiverats av {{originParticipantName}}", + "notificationTitle": "Väntrum", + "passwordJoinButton": "Anslut", + "title": "Lobby", + "toggleLabel": "Aktivera väntrum" + }, + "localRecording": { + "clientState": { + "off": "Av", + "on": "På", + "unknown": "Okänd" + }, + "dialogTitle": "Lokala inspelningsverktyg", + "duration": "Varaktighet", + "durationNA": "N/A", + "encoding": "Kodning", + "label": "LOR", + "labelToolTip": "Lokal inspelning aktiverad", + "localRecording": "Lokal inspelning", + "me": "Jag", + "messages": { + "engaged": "Lokal inspelning aktiverad.", + "finished": "Inspelningen {{token}} är avslutad. Skicka den inspelade filen till moderatorn.", + "finishedModerator": "Inspelningen {{token}} är avslutad. Den lokala inspelningen har sparats. Be de övriga deltagarna att dela sina inspelningar.", + "notModerator": "Du är inte administratör. Du kan inte starta eller avsluta den lokala inspelningen." + }, + "moderator": "Moderator", + "no": "Nej", + "participant": "Deltagare", + "participantStats": "Deltagarstatistik", + "selectTabTitle": "🎥 Välj den här fliken för inspelning", + "sessionToken": "Sessionstoken", + "start": "Starta inspelning", + "stop": "Avsluta inspelning", + "stopping": "Avslutar inspelning", + "wait": "Var god vänta medans vi sparar din inspelning", + "yes": "Ja" + }, + "lockRoomPassword": "lösenord", + "lockRoomPasswordUppercase": "Lösenord", + "lonelyMeetingExperience": { + "button": "Bjud in andra", + "youAreAlone": "Du är ensam i mötet" + }, + "me": "jag", + "notify": { + "OldElectronAPPTitle": "Säkerhetsproblem!", + "allowAction": "Tillåt", + "allowedUnmute": "Du kan slå på mikrofonen, starta kameran eller dela din skärm.", + "audioUnmuteBlockedDescription": "Aktivering av mikrofonen har tillfälligt blockerats på grund av systembegränsningar.", + "audioUnmuteBlockedTitle": "Mikrofonen har blockerats!", + "chatMessages": "Chattmeddelanden", + "connectedOneMember": "{{name}} har gått med i mötet", + "connectedThreePlusMembers": "{{name}} och {{count}} andra har gått med i mötet", + "connectedTwoMembers": "{{first}} och {{second}} har gått med i mötet", + "connectionFailed": "Anslutning misslyckades. Var god försök senare!", + "dataChannelClosed": "Försämrad videokvalitet", + "dataChannelClosedDescription": "Bryggkanalen har kopplats bort och därmed är videokvaliteten begränsad till sin lägsta inställning", + "dataChannelClosedDescriptionWithAudio": "Bryggkanalen har kopplats bort och därmed kan abvrott i ljud och bild uppstå.", + "dataChannelClosedWithAudio": "Ljud och bild kvalite kan vara försämrad.", + "disabledIframe": "Inbäddning är endast avsedd för demonstrationsändamål, så det här samtalet kommer att kopplas ner om {{timeout}} minuter.", + "disabledIframeSecondary": "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.", + "disconnected": "frånkopplad", + "displayNotifications": "Visa aviseringar för", + "dontRemindMe": "Påminn mig inte", + "focus": "Konferensfokus", + "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", + "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", + "invitedOneMember": "{{name}} har bjudits in", + "invitedThreePlusMembers": "{{name}} och {{count}} andra har bjudits in", + "invitedTwoMembers": "{{first}} och {{second}} har bjudits in", + "joinMeeting": "Delta", + "kickParticipant": "{{kicked}} sparkades ut av {{kicker}}", + "leftOneMember": "{{name}} lämnade mötet", + "leftThreePlusMembers": "{{name}} och många andra lämnade mötet", + "leftTwoMembers": "{{first}} och {{second}} lämnade mötet", + "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", + "linkToSalesforceProgress": "Länkar möte till Salesforce…", + "linkToSalesforceSuccess": "Mötet länkades till Salesforce", + "localRecordingStarted": "{{name}} har påbörjat en lokal inspelning.", + "localRecordingStopped": "{{name}} har stoppat en lokal inspelning.", + "me": "Jag", + "moderationInEffectCSDescription": "Räck upp handen om du vill dela din video", + "moderationInEffectCSTitle": "Innehållsdelning är inaktiverat av moderator", + "moderationInEffectDescription": "Räck upp handen om du vill tala", + "moderationInEffectTitle": "Mikrofonen är avstängd av moderatorn", + "moderationInEffectVideoDescription": "Räck upp handen om du vill att din video ska synas", + "moderationInEffectVideoTitle": "Videon stängs av av moderatorn", + "moderationRequestFromModerator": "Värden vill att du ska aktivera ditt ljudet", + "moderationRequestFromParticipant": "Vill prata", + "moderationStartedTitle": "Moderering startad", + "moderationStoppedTitle": "Moderering stoppad", + "moderationToggleDescription": "av {{participantDisplayName}}", + "moderator": "Moderatorsrättigheter tilldelades!", + "muted": "Du har startat konversationen utan mikrofon.", + "mutedRemotelyDescription": "Du kan alltid slå på mikrofonen när du är redo att tala. Stäng av när du är klar för att hålla brus borta från mötet.", + "mutedRemotelyTitle": "Din mikrofonen har blivit avstängd av {{participantDisplayName}}!", + "mutedTitle": "Du har mikrofonen avstängd!", + "newDeviceAction": "Använd", + "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.", + "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.", + "oldElectronClientDescription2": "senast build", + "oldElectronClientDescription3": "nu!", + "participantWantsToJoin": "Vill vara med på mötet", + "participantsWantToJoin": "Vill vara med på mötet", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) togs bort av en annan deltagare", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) satt av en annan deltagare", + "raiseHandAction": "Räck upp handen", + "raisedHand": "{{name}} vill prata.", + "raisedHands": "{{participantName}} och {{raisedHands}} fler personer", + "reactionSounds": "Inaktivera ljud", + "reactionSoundsForAll": "Inaktivera ljud för alla", + "screenShareNoAudio": "\"Dela ljudrutan\" aktiverades inte i fönstret för val av fönster.", + "screenShareNoAudioTitle": "Det gick inte att dela systemljud!", + "screenSharingAudioOnlyDescription": "Observera att genom att dela din skärm påverkar du läget \"Bästa prestanda\" och du kommer att använda mer bandbredd.", + "screenSharingAudioOnlyTitle": "Läget \"Bästa prestanda\"", + "selfViewTitle": "Du kan alltid ta bort döljandet av självvyn från inställningarna", + "somebody": "Någon", + "startSilentDescription": "Anslut till mötet igen för att aktivera ljud", + "startSilentTitle": "Du gick med utan ljud aktiverat!", + "suboptimalBrowserWarning": "Din mötesupplevelse kommer tyvärr inte att bli så bra. Vi letar efter sätt att förbättra detta, men fram till dess kan du försöka använda en av de fullt stödda webbläsarna .", + "suboptimalExperienceTitle": "Webbläsarvarning", + "suggestRecordingAction": "Starta", + "suggestRecordingDescription": "Vill du starta en inspelning?", + "suggestRecordingTitle": "Spela in detta mötet", + "unmute": "Slå på mikrofonen", + "videoMutedRemotelyDescription": "Du kan alltid slå på den igen.", + "videoMutedRemotelyTitle": "Din kamera har inaktiverats av {{participantDisplayName}}!", + "videoUnmuteBlockedDescription": "Aktivering av kameran och delning av skrivbord har tillfälligt blockerats på grund av systembegränsningar.", + "videoUnmuteBlockedTitle": "Aktivering av kameran och skrivbordsdelning blockerad!", + "viewLobby": "Visa lobby", + "viewParticipants": "Visa deltagare", + "viewVisitors": "Visa besökare", + "waitingParticipants": "{{waitingParticipants}} personer", + "waitingVisitors": "Väntande besökare i kö: {{waitingVisitors}}", + "waitingVisitorsTitle": "Mötet är inte live än!", + "whiteboardLimitDescription": "Var god spara, max antal användare har snart uppnåtts och whiteboard kommer att stängas av.", + "whiteboardLimitTitle": "Användande whiteboard" + }, + "participantsPane": { + "actions": { + "admit": "Godkänn", + "admitAll": "Godkänn alla", + "allow": "Låt deltagarna:", + "allowVideo": "Tillåt kamera", + "askUnmute": "Be om att aktivera ljud", + "audioModeration": "Slå på ljudet för sig själva", + "blockEveryoneMicCamera": "Inaktivera allas mikrofon och kamera", + "breakoutRooms": "Grupprum", + "goLive": "Gå live", + "invite": "Bjud in någon", + "lowerAllHands": "Ta ner allas händer", + "lowerHand": "Ta ner handen", + "moreModerationActions": "Fler modereringsalternativ", + "moreModerationControls": "Fler modereringskontroller", + "moreParticipantOptions": "Fler deltagaralternativ", + "mute": "Stäng av ljud", + "muteAll": "Stäng av allt ljud", + "muteEveryoneElse": "Inaktivera ljud för alla deltagare", + "reject": "Avvisa", + "stopEveryonesVideo": "Inaktivera allas video", + "stopVideo": "Inaktivera video", + "unblockEveryoneMicCamera": "Aktivera allas mikrofon och kamera", + "videoModeration": "Starta deras video" + }, + "close": "Stäng", + "headings": { + "lobby": "Väntrum ({{count}})", + "participantsList": "Mötesdeltagare ({{count}})", + "visitorInQueue": "(väntande {{count}})", + "visitorRequests": "(förfrågningar {{count}})", + "visitors": "Gäster ({{count}})", + "waitingLobby": "Väntar i väntrum ({{count}})" + }, + "search": "Sök efter deltagare", + "title": "Deltagare" + }, + "passwordDigitsOnly": "Ange max {{number}} siffror", + "passwordSetRemotely": "satt av en annan deltagare", + "pinParticipant": "{{participantName}} - Fäst", + "pinnedParticipant": "Deltagaren är fäst", + "polls": { + "answer": { + "edit": "Redigera", + "send": "Skicka", + "skip": "Avstå", + "submit": "Skicka" + }, + "by": "Av {{ name }}", + "closeButton": "Stäng omröstning", + "create": { + "addOption": "Lägg till alternativ", + "answerPlaceholder": "Alternativ", + "cancel": "Avbryt", + "create": "Skapa en omröstning", + "pollOption": "Alternativ för omröstning", + "pollQuestion": "Fråga för omröstning", + "questionPlaceholder": "Ställ en fråga", + "removeOption": "Ta bort alternativ", + "save": "Spara", + "send": "Skicka" + }, + "errors": { + "notUniqueOption": "Alternativ måste vara unika" + }, + "notification": { + "description": "Öppna fliken omröstningar för att rösta", + "title": "En ny omröstning har blivit tillagd till detta möte" + }, + "results": { + "changeVote": "Ändra din röst", + "empty": "Det finns inga omröstningar i mötet än. Starta en omröstning här!", + "hideDetailedResults": "Göm deltaljer", + "showDetailedResults": "Visa detaljer", + "vote": "Rösta" + } + }, + "poweredby": "drivs med", + "prejoin": { + "audioAndVideoError": "Ljud- och videofel:", + "audioDeviceProblem": "Det finns ett problem med din ljudenhet", + "audioOnlyError": "Ljudfel:", + "audioTrackError": "Det gick inte att skapa ljudspår.", + "callMe": "Ring mig", + "callMeAtNumber": "Ring mig på det här numret:", + "calling": "Ringer", + "configuringDevices": "Konfigurerar enheter…", + "connectedWithAudioQ": "Är din mikrofon ansluten?", + "connection": { + "failed": "Anslutningstest misslyckades!", + "good": "Din internetanslutning fungerar bra!", + "nonOptimal": "Din internetanslutning är inte optimal", + "poor": "Din internetanslutning fungerar dåligt", + "running": "Kör anslutningstest..." + }, + "connectionDetails": { + "audioClipping": "Ditt ljud kan upplevas hackigt.", + "audioHighQuality": "Vi förväntar oss att ditt ljud har utmärkt kvalitet.", + "audioLowNoVideo": "Vi förväntar oss att din ljudkvalitet är låg och ingen video.", + "goodQuality": "Grymt bra! Din mediekvalitet kommer att bli bra.", + "noMediaConnectivity": "Vi kunde inte hitta ett sätt att upprätta mediaanslutning för detta test. Detta orsakas vanligtvis av en brandvägg eller NAT.", + "noVideo": "Vi förväntar oss att din video kommer ha låg kvalitet eller inte fungera.", + "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.", + "veryPoorConnection": "Vi förväntar oss att din samtalskvalitet är riktigt dålig.", + "videoFreezing": "Vi förväntar oss att din video fryser, blir svart och pixeleras.", + "videoHighQuality": "Vi förväntar oss att din video har bra kvalitet.", + "videoLowQuality": "Vi förväntar oss att din video har låg kvalitet när det gäller bildhastighet och upplösning.", + "videoTearing": "Vi förväntar oss att din video ska vara pixelerad eller ha visuella artefakter." + }, + "copyAndShare": "Kopiera och dela möteslänk", + "dialInMeeting": "Ring in till mötet", + "dialInPin": "Ring in till mötet och ange PIN-kod:", + "dialing": "Ringer", + "doNotShow": "Visa inte denna ruta igen", + "errorDialOut": "Kunde inte ringa ut", + "errorDialOutDisconnected": "Kunde inte ringa ut. Kopplar ner", + "errorDialOutFailed": "Kunde inte ringa ut. Samtal misslyckades", + "errorDialOutStatus": "Kunde inte hämta status på utgående samtal", + "errorMissingName": "Ange ditt namn för att ansluta till mötet", + "errorNoPermissions": "Du måste aktivera mikrofon- och kameraåtkomst", + "errorStatusCode": "Kunde inte ringa ut, statuskod: {{status}}", + "errorValidation": "Ogiltigt nummer", + "iWantToDialIn": "Jag vill ringa in", + "initiated": "Samtalet påbörjades", + "joinAudioByPhone": "Anslut med ljud via telefon", + "joinMeeting": "Anslut till mötet", + "joinMeetingInLowBandwidthMode": "Gå med i lågbandbreddsläge", + "joinWithoutAudio": "Anslut utan ljud", + "keyboardShortcuts": "Aktivera kortkommandon", + "linkCopied": "Länken kopierades till urklipp", + "lookGood": "Din mikrofon fungerar som den ska", + "or": "eller", + "premeeting": "Förmöte", + "proceedAnyway": "Fortsätt ändå", + "recordingWarning": "", + "screenSharingError": "Skärmdelningsfel:", + "startWithPhone": "Börja med telefonljud", + "unsafeRoomConsent": "Jag förstår riskerna, jag vill vara med på mötet", + "videoOnlyError": "Videofel:", + "videoTrackError": "Det gick inte att skapa videospår.", + "viewAllNumbers": "visa alla nummer" + }, + "presenceStatus": { + "busy": "Upptagen", + "calling": "Ringer…", + "connected": "Ansluten", + "connecting": "Ansluter…", + "connecting2": "Ansluter*…", + "disconnected": "Frånkopplad", + "expired": "Utgången", + "ignored": "Ignorerad", + "initializingCall": "Startar samtal…", + "invited": "Inbjuden", + "rejected": "Avvisad", + "ringing": "Ringer…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Ange ditt visningsnamn", + "setEmailInput": "Skriv e-postadress", + "setEmailLabel": "Ange din gravatar-e-postadress", + "title": "Profil" + }, + "raisedHand": "Räck upp handen", + "raisedHandsLabel": "Antal uppräckta händer", + "record": { + "already": { + "linked": "Mötet är redan länkat till detta Salesforce-objekt." + }, + "type": { + "account": "Konto", + "contact": "Kontakt", + "lead": "Leda", + "opportunity": "Tillfälle", + "owner": "Ägare" + } + }, + "recording": { + "authDropboxText": "Ladda upp till Dropbox", + "availableSpace": "Tillgängligt utrymme: {{spaceLeft}} MB (ungefär {{duration}} minuter inspelning)", + "beta": "BETA", + "busy": "Vi arbetar med att frigöra inspelningsresurser. Försök igen om några minuter.", + "busyTitle": "Alla inspelare är upptagna", + "copyLink": "Kopiera länk", + "error": "Inspelningen misslyckades. Försök igen.", + "errorFetchingLink": "Fel vid hämtning av inspelningslänk.", + "expandedOff": "Inspelningen har avslutats", + "expandedOn": "Mötet spelas nu in.", + "expandedPending": "Inspelningen påbörjas…", + "failedToStart": "Inspelningen kunde inte påbörjas", + "fileSharingdescription": "Dela inspelningen med mötesdeltagare", + "highlight": "Framhäva", + "highlightMoment": "Framhäv ögonblick", + "highlightMomentDisabled": "Du kan framhäva ögonblick när inspelningen startar", + "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", + "localRecordingStartWarning": "Se till att du stoppar inspelningen innan du avslutar mötet för att spara det.", + "localRecordingStartWarningTitle": "Stoppa inspelningen för att spara den", + "localRecordingVideoStop": "Om du stoppar din video stoppas även den lokala inspelningen. Är du säker på att du vill fortsätta?", + "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.", + "noStreams": "Ingen ljud- eller videoström upptäcktes.", + "off": "Inspelningen avslutades", + "offBy": "{{name}} avslutade inspelningen", + "on": "Inspelning", + "onBy": "{{name}} påbörjade inspelningen", + "onlyRecordSelf": "Spela bara in mina ljud- och videoströmmar", + "pending": "Förbereder inspelning av mötet…", + "policyError": "Du försökte starta inspelningen för fort. Var god försök senare!", + "recordAudioAndVideo": "Spela in ljud och bild", + "recordTranscription": "Spela in transkribiering", + "saveLocalRecording": "Spara inspelningsfil lokalt (beta)", + "serviceDescription": "Din inspelning kommer att sparas av inspelningstjänsten", + "serviceDescriptionCloud": "Molninspelning", + "serviceDescriptionCloudInfo": "Inspelade möten rensas automatiskt 24 timmar efter inspelningstiden.", + "serviceName": "Inspelningstjänst", + "sessionAlreadyActive": "Den här sessionen spelas redan in eller livestreamas.", + "showAdvancedOptions": "Visa avancerade inställningar", + "signIn": "Logga in", + "signOut": "Logga ut", + "surfaceError": "Välj aktuell flik.", + "title": "Inspelning", + "unavailable": "{{serviceName}} är inte tillgänglig. Vi försöker åtgärda felet. Försök igen senare.", + "unavailableTitle": "Inspelning kan inte göras", + "uploadToCloud": "Ladda upp till molnet" + }, + "screenshareDisplayName": "{{name}}s skärm", + "sectionList": { + "pullToRefresh": "Dra för att uppdatera" + }, + "security": { + "about": "Du kan lägga till ett $t(lockRoomPassword) till ditt möte. Deltagarna måste ange $t(lockRoomPassword) innan de får gå med i mötet.", + "aboutReadOnly": "Moderatorn kan lägga till ett $t(lockRoomPassword) till mötet. Deltagarna måste ange $t(lockRoomPassword) innan de får gå med i mötet.", + "insecureRoomNameWarningNative": "Rumsnamnet är osäkert. Oönskade deltagare kan gå med i ditt möte. {{recommendAction}} Läs mer om att säkra ditt möte", + "insecureRoomNameWarningWeb": "Rumsnamnet är osäkert. Oönskade deltagare kan gå med i ditt möte. {{recommendAction}} Läs mer om hur du säkerställer att du möter här.", + "title": "Säkerhetsalternativ", + "unsafeRoomActions": { + "meeting": "Överväg att göra ditt möte säkrare med hjälp av säkerhetsknappen.", + "prejoin": "Överväg att använda ett mer unikt mötesnamn.", + "welcome": "Överväg att använda ett mer unikt mötesnamn, eller välj ett av förslagen." + } + }, + "settings": { + "audio": "Ljud", + "buttonLabel": "Inställningar", + "calendar": { + "about": "Kalenderintegrationen med {{appName}} används för att hämta din kalender på ett säkert sätt så att den kan läsa framtida händelser.", + "disconnect": "Koppla ifrån", + "microsoftSignIn": "Logga in med Microsoft", + "signedIn": "Hämtar kalenderhändelser från {{email}}. Tryck på knappen nedan för att sluta hämta kalenderhändelser.", + "title": "Kalender" + }, + "desktopShareFramerate": "Bildfrekvens för skrivbordsdelning", + "desktopShareHighFpsWarning": "En högre bildhastighet för skrivbordsdelning kan påverka din bandbredd. Du måste starta om skärmdelningen för att de nya inställningarna ska träda i kraft.", + "desktopShareWarning": "Du måste starta om skärmdelningen för att de nya inställningarna ska träda i kraft.", + "devices": "Enheter", + "followMe": "Alla följer mig", + "followMeRecorder": "Den som spelar in följer mig", + "framesPerSecond": "bildrutor per sekund", + "incomingMessage": "Inkommande meddelande", + "language": "Språk", + "loggedIn": "Inloggad som {{name}}", + "maxStageParticipants": "Maximalt antal deltagare som kan fästas på huvudscenen", + "microphones": "Mikrofoner", + "moderator": "Moderator", + "moderatorOptions": "Moderatoralternativ", + "more": "Mer", + "name": "Namn", + "noDevice": "Inga enheter", + "notifications": "Notifikationer", + "participantJoined": "Deltagare ansluten", + "participantKnocking": "Deltagare har anslutit till lobbyn", + "participantLeft": "Deltagare lämnat mötet", + "playSounds": "Spelljud på", + "reactions": "Reaktioner", + "sameAsSystem": "Samma som system ({{label}})", + "selectAudioOutput": "Ljudutmatning", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Självvy", + "shortcuts": "Genvägar", + "speakers": "Högtalare", + "startAudioMuted": "Alla börjar tystade", + "startReactionsMuted": "Stäng av reaktionsljud för alla", + "startVideoMuted": "Alla börjar osynliga", + "talkWhileMuted": "Prata medan din ljud är inaktiverad", + "title": "Inställningar", + "video": "Video" + }, + "settingsView": { + "advanced": "Avancerat", + "alertCancel": "Avbryt", + "alertOk": "OK", + "alertTitle": "Varning", + "alertURLText": "Den angivna serverlänken är felaktig", + "apply": "Tillämpa", + "buildInfoSection": "Versionsinformation", + "conferenceSection": "Konferens", + "disableCallIntegration": "Tillåt inte deltagande via telefon", + "disableCrashReporting": "Inaktivera kraschrapportering", + "disableCrashReportingWarning": "Är du säker på att du vill inaktivera kraschrapportering? Inställningen tillämpas när du startar om appen.", + "disableP2P": "Inaktivera Dator-till-dator-läge", + "displayName": "Skärmnamn", + "displayNamePlaceholderText": "Exempel: John Doe", + "email": "E-post", + "emailPlaceholderText": "mejl@exempel.se", + "gavatarMessage": "Om din e-post är associerad med ett Gravatar konto, så kommer vi använda det för att visa din profilbild.", + "goTo": "Gå till", + "header": "Inställningar", + "help": "Hjälp", + "links": "Länkar", + "privacy": "Sekretess", + "profileSection": "Profil", + "sdkVersion": "", + "serverURL": "Serverlänk", + "showAdvanced": "Visa avancerade inställningar", + "startCarModeInLowBandwidthMode": "Starta billäget i lågbandbreddsläge", + "startWithAudioMuted": "Starta med ljudet avstängt", + "startWithVideoMuted": "Starta med videon avstängd", + "terms": "Villkor", + "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}}", + "mainText": "Klicka på länken för att delta i mötet:\n{{roomUrl}}" + }, + "speaker": "Talare", + "speakerStats": { + "angry": "Arg", + "disgusted": "Äcklad", + "displayEmotions": "Visa känslor", + "fearful": "Rädd", + "happy": "Glad", + "hours": "{{count}} h", + "labelTooltip": "", + "minutes": "{{count}} m", + "name": "Namn", + "neutral": "Neutral", + "sad": "Ledsen", + "search": "Sök", + "searchHint": "Sök deltagare", + "seconds": "{{count}} s", + "speakerStats": "Talarstatistik", + "speakerTime": "Talartid", + "surprised": "Överraskad" + }, + "startupoverlay": { + "genericTitle": "Mötet måste använda din mikrofon och kamera.", + "policyText": " ", + "title": "{{app}} vill använda din kamera och mikrofon." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Gå med igen", + "text": "Klicka på knappen Återanslut för att koppla upp igen.", + "title": "Ditt videosamtal avbröts då din dator gick in i viloläge." + }, + "termsView": { + "title": "Villkor" + }, + "toggleTopPanelLabel": "Växla topppanelen", + "toolbar": { + "Settings": "Inställningar", + "accessibilityLabel": { + "Settings": "Öppna eller stäng inställningar", + "audioOnly": "Slå av eller på ljudet", + "audioRoute": "Välj ljudenhet", + "boo": "Bua", + "breakoutRooms": "Grupprum", + "callQuality": "Hantera videokvalitet", + "carmode": "Billäge", + "cc": "Slå av eller på undertexter", + "chat": "Öppna eller stäng chattfönster", + "clap": "Applådera", + "closeChat": "Stäng chatten", + "closeMoreActions": "Stäng menyn för fler åtgärder", + "closeParticipantsPane": "Stäng deltagarfönstret", + "collapse": "Minimera", + "document": "Växla delat dokument", + "documentClose": "Stäng delat dokument", + "documentOpen": "Öppna delat dokument", + "download": "Ladda ner våra appar", + "embedMeeting": "Bädda in möte", + "endConference": "Avsluta möte för alla", + "enterFullScreen": "Visa helskärm", + "enterTileView": "Öppna sida vid sida", + "exitFullScreen": "Avsluta helskärm", + "exitTileView": "Avsluta sida vid sida", + "expand": "Utöka", + "feedback": "Ge feedback", + "fullScreen": "Växla helskärm", + "giphy": "Växla GIPHY-menyn", + "grantModerator": "Tilldela moderatorrättigheter", + "hangup": "Lämna mötet", + "heading": "Verktygsfält", + "help": "Hjälp", + "hideWhiteboard": "Dölj whiteboard", + "invite": "Bjud in personer", + "kick": "Sparka ut deltagare", + "laugh": "Skratta", + "leaveConference": "Lämna mötet", + "like": "Tummen upp", + "linkToSalesforce": "Länk till Salesforce", + "lobbyButton": "Aktivera / inaktivera lobbyläge", + "localRecording": "Växla lokala inspelningskontroller", + "lockRoom": "Växla möteslösenord", + "love": "Kärlek", + "lowerHand": "Sänk din hand", + "moreActions": "Fler åtgärder", + "moreActionsMenu": "Menyn Fler åtgärder", + "moreOptions": "Visa fler alternativ", + "mute": "Mute", + "muteEveryone": "Stäng av ljudet för alla", + "muteEveryoneElse": "Stäng av ljudet för alla andra", + "muteEveryoneElsesVideoStream": "Stoppa alla andras video", + "muteEveryonesVideoStream": "Stoppa allas video", + "muteGUMPending": "Ansluter din mikrofon", + "noiseSuppression": "Brusdämpning", + "openChat": "Öppna chatt", + "participants": "Öppna deltagarfönstret", + "pip": "Växla bild-i-bild-läge", + "privateMessage": "Skicka privat meddelande", + "profile": "Redigera din profil", + "raiseHand": "Räck upp handen", + "react": "Reaktioner på meddelanden", + "reactions": "Reaktioner", + "reactionsMenu": "Reaktionsmeny", + "recording": "Växla inspelning", + "remoteMute": "Ljud av deltagare", + "remoteVideoMute": "Inaktivera kameran för deltagaren", + "security": "Säkerhetsalternativ", + "selectBackground": "Välj bakgrund", + "selfView": "Växla självvy", + "shareRoom": "Bjud in någon", + "shareYourScreen": "Börja dela din skärm", + "shareaudio": "Dela ljud", + "sharedvideo": "Dela video", + "shortcuts": "Växla genvägar", + "show": "Visa på scenen", + "showWhiteboard": "Visa whiteboard", + "silence": "Tystnad", + "speakerStats": "Växla deltagarstatistik", + "stopScreenSharing": "Sluta dela din skärm", + "stopSharedVideo": "Stoppa video", + "surprised": "Förvånad", + "tileView": "Växla sida vid sida", + "toggleCamera": "Växla kamera", + "toggleFilmstrip": "Växla filmremsa", + "unmute": "Slå på ljudet", + "videoblur": "Växla videooskärpa", + "videomute": "Stoppa kamera", + "videomuteGUMPending": "Ansluter din kamera", + "videounmute": "Starta kameran" + }, + "addPeople": "Lägg till personer i samtal", + "audioOnlyOff": "Avsluta ljudläget", + "audioOnlyOn": "Starta ljudläget", + "audioRoute": "Välj ljudenhet", + "audioSettings": "Ljud inställningar", + "authenticate": "Autentisera", + "boo": "Bua", + "callQuality": "Hantera videokvalitet", + "chat": "Öppna / stäng chatten", + "clap": "Klappa", + "closeChat": "Stäng chatt", + "closeParticipantsPane": "Stäng deltagarrutan", + "closeReactionsMenu": "Stäng meny för reaktioner", + "disableNoiseSuppression": "Inaktivera brusreducering", + "disableReactionSounds": "Du kan inaktivera reaktionsljud för det här mötet", + "documentClose": "Stäng delat dokument", + "documentOpen": "Öppna delat dokument", + "download": "Ladda ner vår app", + "e2ee": "End-to-End kryptering", + "embedMeeting": "Bädda in möte", + "enableNoiseSuppression": "Aktivera brusreducering", + "endConference": "Avsluta mötet för alla", + "enterFullScreen": "Visa fullskärm", + "enterTileView": "Öppna panelvy", + "exitFullScreen": "Stäng fullskärm", + "exitTileView": "Stäng panelvy", + "feedback": "Lämna återkoppling", + "giphy": "Växla GIPHY-menyn", + "hangup": "Lämna", + "help": "Hjälp", + "hideWhiteboard": "Dölj whiteboardtavlan", + "invite": "Bjud in andra", + "joinBreakoutRoom": "Gå med i grupprummet", + "laugh": "Skratta", + "leaveBreakoutRoom": "Lämna grupprum", + "leaveConference": "Lämna mötet", + "like": "Tummen upp", + "linkToSalesforce": "Länk till Salesforce", + "lobbyButtonDisable": "Inaktivera väntrumsläge", + "lobbyButtonEnable": "Aktivera väntrumsläge", + "login": "Logga in", + "logout": "Logga ut", + "love": "Kärlek", + "lowerYourHand": "Ta ner handen", + "moreActions": "Fler handlingar", + "moreOptions": "Visa fler alternativ", + "mute": "Slå av/på ljud", + "muteEveryone": "Tysta alla", + "muteEveryonesVideo": "Inaktivera allas kamera", + "muteGUMPending": "Ansluter din mikrofon", + "noAudioSignalDesc": "Om du inte avsiktligt stängde av det från systeminställningar eller hårdvara, överväg att byta enhet.", + "noAudioSignalDescSuggestion": "Om du inte avsiktligt tystade det från systeminställningar eller hårdvara, överväg att byta till den föreslagna enheten.", + "noAudioSignalDialInDesc": "Du kan också ringa in med:", + "noAudioSignalDialInLinkDesc": "Uppringningsnummer", + "noAudioSignalTitle": "Det kommer inget ljud från din mikrofon!", + "noiseSuppression": "Brusreducering", + "noisyAudioInputDesc": "Din mikrofon skapar brus, tysta din mikrofon eller byt ljudenhet!", + "noisyAudioInputTitle": "Din mikrofon verkar vara bullrig!", + "openChat": "Öppna chatt", + "openReactionsMenu": "Öppna meny för reaktioner", + "participants": "Deltagare", + "pip": "Öppna bild-i-bild-läge", + "privateMessage": "Skicka privat meddelande", + "profile": "Redigera din profil", + "raiseHand": "Räck upp / ta ner din hand", + "raiseYourHand": "Räck upp handen", + "reactionBoo": "Skicka Bu", + "reactionClap": "Klappa i händerna", + "reactionHeart": "Skicka kärlek", + "reactionLaugh": "Skratta", + "reactionLike": "Skicka tummen upp", + "reactionSilence": "Skicka tyst reaktion", + "reactionSurprised": "Skicka reaktionen överaskad", + "reactions": "Reaktioner", + "security": "Säkerhetsalternativ", + "selectBackground": "Välj bakgrund", + "shareRoom": "Bjud in någon", + "shareaudio": "Dela ljud", + "sharedvideo": "Dela en video", + "shortcuts": "Visa genvägar", + "showWhiteboard": "Visa whiteboardtavlan", + "silence": "Tystnad", + "speakerStats": "Talarstatistik", + "startScreenSharing": "Starta skärmdelning", + "startSubtitles": "Starta undertextning", + "stopAudioSharing": "Inaktivera ljuddelning", + "stopScreenSharing": "Avsluta skämdelning", + "stopSharedVideo": "Pausa video", + "stopSubtitles": "Avsluta undertextning", + "surprised": "Överaskad", + "talkWhileMutedPopup": "Försöker du tala? Din mikrofon är tystad.", + "tileViewToggle": "Öppna eller stäng panelvyn", + "toggleCamera": "Byta kamera", + "unmute": "Slå på ljud", + "videoSettings": "Videoinställningar", + "videomute": "Inaktivera kameran", + "videomuteGUMPending": "Ansluter din kamera", + "videounmute": "Aktivera kameran" + }, + "transcribing": { + "ccButtonTooltip": "Aktivera / Inaktivera undertexter", + "expandedLabel": "Transkribering är aktiverad", + "failed": "Transkribiering misslyckades", + "labelToolTip": "Mötet transkriberas", + "sourceLanguageDesc": "För närvarande är mötesspråket inställt på {{sourceLanguage}}.
Du kan ändra det från ", + "sourceLanguageHere": "här", + "start": "Börja visa undertexter", + "stop": "Sluta visa undertexter", + "subtitles": "Undertexter", + "subtitlesOff": "Av", + "tr": "TR" + }, + "unpinParticipant": "Lossa deltagare", + "userMedia": { + "grantPermissions": "Tillåt användning av din kamera och mikrofon." + }, + "videoSIPGW": { + "busy": "Vi arbetar med att frigöra resurser. Försök igen om några minuter.", + "busyTitle": "Rumtjänsten är just nu upptagen", + "errorAlreadyInvited": "{{displayName}} är redan inbjuden", + "errorInvite": "Konferensen är inte skapad än. Försök igen senare.", + "errorInviteFailed": "Vi arbetar för att lösa problemet. Försök igen senare.", + "errorInviteFailedTitle": "Inbjudan till {{displayName}} misslyckades", + "errorInviteTitle": "Inbjudan till rum misslyckades", + "pending": "{{displayName}} har bjudits in" + }, + "videoStatus": { + "adjustFor": "Justera för:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Du använder ljudläget. Läget sparar bandbredd men du kan inte se andras videor.", + "bestPerformance": "Bäst prestanda", + "callQuality": "Videokvalitet", + "hd": "HD", + "hdTooltip": "Titta på högupplöst video", + "highDefinition": "Hög upplösning", + "highestQuality": "Högsta kvalitet", + "labelTooiltipNoVideo": "Ingen video", + "labelTooltipAudioOnly": "Läge med enbart ljud aktiverat", + "ld": "LD", + "ldTooltip": "Titta på lågupplöst video", + "lowDefinition": "Låg upplösning", + "performanceSettings": "Prestandainställningar", + "recording": "Inspelning pågår", + "sd": "SD", + "sdTooltip": "Titta på video med standardupplösning", + "standardDefinition": "Normal upplösning", + "streaming": "Streaming pågår" + }, + "videothumbnail": { + "connectionInfo": "Anslutningsinformation", + "demote": "Gör till besökare", + "domute": "Tysta", + "domuteOthers": "Inaktivera ljud för alla andra", + "domuteVideo": "Inaktivera kamera", + "domuteVideoOfOthers": "Inaktivera kamera för alla andra", + "flip": "Vänd", + "grantModerator": "Godkänn moderator", + "hideSelfView": "Dölj självvyn", + "kick": "Sparka ut", + "mirrorVideo": "Spegelvänd video", + "moderator": "Moderator", + "mute": "Deltagaren har avstängd mikrofon", + "muted": "Tystad", + "pinToStage": "Fäst till scenen", + "remoteControl": "Fjärrkontroll", + "screenSharing": "Deltagaren delar sin skärm", + "show": "Visa på scenen", + "showSelfView": "Visa självvy", + "unpinFromStage": "Ta loss", + "verify": "Verifiera", + "videoMuted": "Kamera inaktiverad", + "videomute": "Deltagaren har stängt av kameran" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Nuvarande bakgrund: {{background}}", + "selectBackground": "Välj bakgrund" + }, + "addBackground": "Lägg till bakgrund", + "apply": "Tillämpa", + "backgroundEffectError": "Det gick inte att tillämpa bakgrundseffekt.", + "blur": "Oskärpa", + "deleteImage": "Ta bort bild", + "desktopShare": "Dela skrivbord", + "desktopShareError": "Det gick inte att dela skrivbordet", + "image1": "Strand", + "image2": "Vit neutral bakgrund", + "image3": "Vitt tomt rum", + "image4": "Svart golvlampa", + "image5": "Berg", + "image6": "Skog", + "image7": "Soluppgång", + "none": "Ingen", + "pleaseWait": "Vänligen vänta…", + "removeBackground": "Ta bort bakgrunden", + "slightBlur": "Lätt oskärpa", + "title": "Virtuella bakgrunder", + "uploadedImage": "Uppladdad bild {{index}}", + "webAssemblyWarning": "WebAssembly stöds inte", + "webAssemblyWarningDescription": "WebAssembly inaktiverad eller stöds inte av den här webbläsaren" + }, + "visitors": { + "chatIndicator": "(besökare)", + "joinMeeting": { + "description": "Du är just nu en beskökare i konferensen", + "raiseHand": "Räck upp handen", + "title": "Gå med i mötet", + "wishToSpeak": "Om du vill prata, räck upp handen och vänta på att en moderator ska godkänna." + }, + "labelTooltip": "Antal besökare: {{count}}", + "notification": { + "demoteDescription": "Skickad hit av {{actor}}, räck upphanden för att delta", + "noMainParticipantsDescription": "En deltagare behöver starta mötet. Var god försök igen senare.", + "noMainParticipantsTitle": "Det är mötet har inte startat än", + "noVisitorLobby": "Du kan inte gå med medans lobby är påslagen för mötet.", + "notAllowedPromotion": "En deltagare behöver godkänna din förfrågan först.", + "title": "Du är en besökare i mötet" + }, + "waitingMessage": "Du kommer att komma in i mötet när det är live!" + }, + "volumeSlider": "Volymreglage", + "welcomepage": { + "accessibilityLabel": { + "join": "Tryck för att gå med", + "roomname": "Skriv in rumsnamn" + }, + "addMeetingName": "Lägg till mötesnamn", + "appDescription": "Sätt igång, videochatta med hela teamet. Eller bjud in alla du känner. {{app}} är en helt krypterad, öppen källkod videokonferenslösning som du kan använda obegränsat utan kostnad – inget användarkonto behövs.", + "audioVideoSwitch": { + "audio": "Ljud", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Anslut din kalender", + "connectCalendarText": "Anslut din kalender för att se alla möten i {{app}}. Lägg även till möten med {{provider}} i din kalender och starta dem med ett klick.", + "enterRoomTitle": "Starta ett nytt möte", + "getHelp": "Få hjälp", + "go": "KÖR", + "goSmall": "BÖRJA", + "headerSubtitle": "Säkra möten med hög kvalitet", + "headerTitle": "Jitsi Meet", + "info": "Info", + "jitsiOnMobile": "Jitsi på mobilen - ladda ner våra appar och starta ett möte var som helst", + "join": "Gå med", + "logo": { + "calendar": "Kalender logotyp", + "desktopPreviewThumbnail": "Miniatyrbild av skrivbordsförhandsgranskning", + "googleLogo": "Google logotyp", + "logoDeepLinking": "Jitsi logotyp", + "microsoftLogo": "Microsoft logotyp", + "policyLogo": "Policy-logotyp" + }, + "meetingsAccessibilityLabel": "Möten", + "mobileDownLoadLinkAndroid": "Ladda ner mobilappen för Android", + "mobileDownLoadLinkFDroid": "Ladda ner mobilappen för F-droid", + "mobileDownLoadLinkIos": "Ladda ner mobilappen för iOS", + "moderatedMessage": "Eller boka en mötesadress i förväg där du är den enda moderatorn.", + "privacy": "Integritet", + "recentList": "Tidigare", + "recentListDelete": "Radera", + "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: ?, &,:, ', \",%, #.", + "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", + "settings": "Inställningar", + "startMeeting": "Starta möte", + "terms": "Villkor", + "title": "Säkra, välutrustade och helt kostnadsfria videokonferenser", + "upcomingMeetings": "Dina kommande möten" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Whiteboard" + }, + "screenTitle": "Whiteboard" + } +} diff --git a/lang/main-te.json b/lang/main-te.json new file mode 100644 index 0000000..d6bc18b --- /dev/null +++ b/lang/main-te.json @@ -0,0 +1,994 @@ +{ + "addPeople": { + "add": "ఆహ్వానించు", + "addContacts": "మీ పరిచయాలను ఆహ్వానించండి", + "copyInvite": "సమావేశ ఆహ్వానాన్ని కాపీచేయి", + "copyLink": "సమావేశ లంకెను కాపీచేయి", + "copyStream": "లైన్ స్ట్రీమింగ్ లంకెను కాపీచేయి", + "countryNotSupported": "మేము ఈ గమ్యస్థానాన్ని తోడ్పాటు చేయట్లేదు.", + "countryReminder": "అమెరికా బయటకి పిలుస్తున్నారా? దయచేసి దేశపు సంకేతంతో మొదలుపెట్టండి!", + "defaultEmail": "మీ అప్రమేయ ఈమెయిలు", + "disabled": "మీరు ఇతరులను ఆహ్వానించలేరు.", + "failedToAdd": "పాల్గొనేవాళ్ళను చేర్చడం విఫలమయింది", + "footerText": "బయటకు డయల్ చేయడం అచేతనం చేయబడింది.", + "googleEmail": "గూగుల్ ఈమెయిలు", + "inviteMoreHeader": "ఈ సమావేశంలో మీరొక్కరే ఉన్నారు", + "inviteMoreMailSubject": "{{appName}} సమావేశంలో చేరండి", + "inviteMorePrompt": "మరికొందరిని ఆహ్వానించండి", + "linkCopied": "లంకె క్లిప్‌బోర్డుకి కాపీ అయ్యింది", + "loading": "ప్రజల కోసం, ఫోను నెంబర్ల కోసం వెతుకుతున్నాం", + "loadingNumber": "ఫోను నెంబరును సరిచూస్తున్నాం", + "loadingPeople": "ఆహ్వానించాల్సిన ప్రజల కోసం వెతుకుతున్నాం", + "noResults": "సరిపడే వెతుకుడు ఫలితాలు లేవు", + "noValidNumbers": "దయచేసి ఒక ఫోను నెంబరును ఇవ్వండి", + "outlookEmail": "ఔట్‌లుక్ ఈమెయిలు", + "searchNumbers": "ఫోను నెంబర్లు చేర్చు", + "searchPeople": "ప్రజల కోసం వెతుకు", + "searchPeopleAndNumbers": "ప్రజలను వెతకండి లేదా వారి ఫోను నెంబర్లను చేర్చండి", + "shareInvite": "సమావేశ ఆహ్వానాన్ని పంచుకోండి", + "shareLink": "ఇతరులను ఆహ్వానించడానికి సమావేశ లంకెను పంచుకోండి", + "shareStream": "లైవ్ స్ట్రీమింగ్ లంకెను పంచుకోండి", + "sip": "SIP: {{address}}", + "telephone": "టెలిఫోను: {{number}}", + "title": "ఈ సమావేశానికి ప్రజలను ఆహ్వానించండి", + "yahooEmail": "యాహూ ఈమెయిలు" + }, + "audioDevices": { + "bluetooth": "బ్లూటూత్", + "headphones": "హెడ్‌ఫోన్స్", + "none": "ఆడియో పరికరాలేమీ అందుబాటులో లేవు", + "phone": "ఫోను", + "speaker": "స్పీకర్" + }, + "audioOnly": { + "audioOnly": "తక్కువ బ్యాండ్‌విడ్త్" + }, + "calendarSync": { + "addMeetingURL": "సమావేశ లంకెను చేర్చు", + "confirmAddLink": "ఈ కార్యక్రమానికి జిత్సి లంకెను చేర్చాలనుకుంటున్నారా?", + "error": { + "appConfiguration": "Calendar integration is not properly configured.", + "generic": "An error has occurred. Please check your calendar settings or try refreshing the calendar.", + "notSignedIn": "An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again." + }, + "join": "చేరండి", + "joinTooltip": "ఈ సమావేశంలో చేరండి", + "nextMeeting": "తర్వాతి సమావేశం", + "noEvents": "రాబోయే కార్యక్రమాలు ఏమీ లేవు.", + "ongoingMeeting": "జరుగుతూన్న సమావేశం", + "permissionButton": "అమరికలను తెరువు", + "permissionMessage": "అనువర్తనలో మీ సమావేశాలను చూడడానికి క్యాలెండరు అనుమతి అవసరం.", + "refresh": "క్యాలెండరును తాజాపరుచు", + "today": "నేడు" + }, + "chat": { + "enter": "సంభాషణ గది లోనికి వెళ్ళండి", + "error": "తప్పిదం: మీ సందేశం పంపబడలేదు. కారణం: {{error}}", + "fieldPlaceHolder": "మీ సందేశాన్ని ఇక్కడ ఇవ్వండి", + "messageTo": "{{recipient}}‍కి అంతరంగిక సందేశం", + "messagebox": "సందేశం టైపు చెయ్యండి", + "nickname": { + "popover": "ఒక మారుపేరు ఎంచుకోండి", + "title": "సంభాషణను మొదలుపెట్టడానికి ఒక మారుపేరును ఇవ్వండి", + "titleWithPolls": "సంభాషణను మొదలుపెట్టడానికి ఒక మారుపేరును ఇవ్వండి" + }, + "noMessagesMessage": "ఈ సమావేశంలో ఇంకా సందేశాలేమీ లేవు. ఇక్కడ ఒక సంభాషణను మొదలుపెట్టండి!", + "privateNotice": "{{recipient}}‌కి అంతరంగిక సందేశం", + "sendButton": "పంపించు", + "title": "సంభాషణ", + "titleWithPolls": "సంభాషణ", + "you": "మీరు" + }, + "chromeExtensionBanner": { + "buttonText": "క్రోమ్ పొడగింతను స్థాపించు", + "dontShowAgain": "దీన్ని నాకు మళ్ళీ చూపించకు", + "installExtensionText": "గూగుల్ క్యాలెండర్, ఆఫీస్ 365 సమన్వయం కోసం పొడగింతను స్థాపించుకోండి" + }, + "connectingOverlay": { + "joiningRoom": "మిమ్మల్ని సమావేశంలో చేరుస్తోంది…" + }, + "connection": { + "ATTACHED": "జోడించబడింది", + "AUTHENTICATING": "అధీకరిస్తూన్నది", + "AUTHFAIL": "అధీకరణ విఫలమైంది", + "CONNECTED": "అనుసంధానమైంది", + "CONNECTING": "అనుసంధానమవుతూన్నది", + "CONNFAIL": "అనుసంధానం విఫలమైంది", + "DISCONNECTED": "అనుసంధానం కాలేదు", + "DISCONNECTING": "అనుసంధానం తెంచుతున్నది", + "ERROR": "తప్పిదం", + "FETCH_SESSION_ID": "Session-id తెస్తూన్నది…", + "GET_SESSION_ID_ERROR": "Session-id పొందడంలో తప్పిదం: {{code}}", + "GOT_SESSION_ID": "Session-id తెస్తూన్నది… పూర్తయింది", + "LOW_BANDWIDTH": "బ్యాండ్‌విడ్త్ ఆదా చేయడం కోసం {{displayName}} నుండి వీడియో ఆపివేయబడింది" + }, + "connectionindicator": { + "address": "చిరునామా:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "అంచనావేసిన బ్యాండ్‌విడ్త్:", + "bitrate": "బిట్‌రేటు:", + "bridgeCount": "సేవికల సంఖ్య: ", + "codecs": "కోడెక్స్ (A/V): ", + "connectedTo": "దీనికి అనుసంధానమైంది:", + "framerate": "ఫ్రేమ్ రేటు:", + "less": "తక్కువ చూపించు", + "localaddress": "స్థానిక చిరునామా:", + "localaddress_plural": "స్థానిక చిరునామాలు:", + "localport": "స్థానిక పోర్టు:", + "localport_plural": "స్థానిక పోర్టులు:", + "maxEnabledResolution": "గరిష్ఠం పంపించు", + "more": "ఎక్కువ చూపించు", + "packetloss": "ప్యాకెట్ నష్టం:", + "participant_id": "పాల్గోలరి id:", + "quality": { + "good": "బాగుంది", + "inactive": "అచేతనం", + "lost": "పోయింది", + "nonoptimal": "అంతబాలేదు", + "poor": "బాలేదు" + }, + "remoteaddress": "సుదూర చిరునామా:", + "remoteaddress_plural": "సుదూర చిరునామాలు:", + "remoteport": "సుదూర పోర్టు:", + "remoteport_plural": "సుదూర పోర్టులు:", + "resolution": "రిజల్యూషన్:", + "savelogs": "చిట్టాలు భద్రపరచు", + "status": "అనుసంధానం:", + "transport": "Transport:", + "transport_plural": "Transports:", + "video_ssrc": "వీడియో SSRC:" + }, + "dateUtils": { + "earlier": "మునుపు", + "today": "నేడు", + "yesterday": "నిన్న" + }, + "deepLinking": { + "appNotInstalled": "మీ చరవాణి ద్వారా చేరడానికి మీకు {{app}} మొబైల్ అనువర్తనం కావాలి.", + "description": "ఏమీ కాలేదా? మీ సమావేశాన్ని మేము {{app}} డెస్క్‌టాప్ అనువర్తనంలో తెరవడానికి ప్రయత్నించాము. మళ్ళీ ప్రయత్నించండి లేదా {{app}} జాల అనువర్తనంలో తెరవండి.", + "descriptionWithoutWeb": "ఏమీ కాలేదా? మీ సమావేశాన్ని {{app}} డెస్క్‌టాప్ అనువర్తనంలో తెరవడానికి ప్రయత్నించాము.", + "downloadApp": "అనువర్తనాన్ని దించుకోండి", + "ifDoNotHaveApp": "మీకు ఇంకా అనువర్తనం లేకపోతే:", + "ifHaveApp": "మీకు ఇప్పటికే అనువర్తనం ఉంటే:", + "joinInApp": "అనువర్తనం ద్వారా సమావేశంలో చేరండి", + "launchWebButton": "జాలంలో తెరవండి", + "title": "మీ సమావేశాన్ని {{app}}లో తెరుస్తూన్నది…", + "tryAgainButton": "డెస్క్‌టాప్‌లో మళ్ళీ ప్రయత్నించు" + }, + "defaultLink": "ఉదా॥ {{url}}", + "defaultNickname": "ఉదా॥ రమేశ్ సూరంపూడి", + "deviceError": { + "cameraError": "మీ కేమెరాను చేరుకోవడం విఫలమైంది", + "cameraPermission": "కేమెరా అనుమతి పొందడంలో తప్పిదం", + "microphoneError": "మీ మైక్రోఫోనును చేరుకోవడం విఫలమైంది", + "microphonePermission": "మైక్రోఫోను అనుమతి పొండడంలో తప్పిదం" + }, + "deviceSelection": { + "noPermission": "అనుమతి ఇవ్వలేదు", + "previewUnavailable": "మునుజూపు అందుబాటులో లేదు", + "selectADevice": "ఒక పరికరాన్ని ఎంచుకోండి", + "testAudio": "ఒక పరీక్షా ధ్వనిని వినిపించు" + }, + "dialOut": { + "statusMessage": "ఇప్పుడు {{status}}" + }, + "dialog": { + "Back": "వెనుకకు", + "Cancel": "రద్దుచేయి", + "IamHost": "నేనే అతిథేయిని", + "Ok": "సరే", + "Remove": "తీసివేయి", + "Share": "పంచుకోండి", + "Submit": "దాఖలుచేయి", + "WaitForHostMsg": "The conference has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.", + "WaitingForHostTitle": "అతిథేయి కోసం వేచివున్నాం…", + "Yes": "అవును", + "accessibilityLabel": { + "liveStreaming": "తాజా స్ట్రీమింగ్" + }, + "add": "చేర్చు", + "allow": "అనుమతించు", + "alreadySharedVideoMsg": "మరొక పాల్గోలరి ఇప్పటికే వీడియో పంచుకుంటున్నారు. ఈ సమావేశం ఒకసారి ఒక వీడియోను మాత్రమే పంచుకోనిస్తుంది.", + "alreadySharedVideoTitle": "ఒకసారి ఒక వీడియోకు మాత్రమే అనుమతి ఉంది", + "applicationWindow": "అనువర్తన కిటికీ", + "authenticationRequired": "అధీకరణ తప్పనిసరి", + "cameraConstraintFailedError": "అవసరమైన కొన్ని నిబంధనలను మీ కేమెరా సంతృప్తి పరచలేదు.", + "cameraNotFoundError": "కేమెరా కనబడలేదు.", + "cameraNotSendingData": "మీ కేమెరాను చేరుకోలేకపోతున్నాం. ఈ పరికరాన్ని మరొక అనువర్తనం ఏమైనా వాడుతుందేమో చూడండి, అమరికల మెనూ నుండి మరొక పరికరాన్ని ఎంచుకోండి లేదా అనువర్తనాన్ని రీలోడ్ చెయ్యండి.", + "cameraNotSendingDataTitle": "కేమెరాను చేరుకోలేకపోతున్నాం", + "cameraPermissionDeniedError": "మీ కేమెరాను వాడటానికి మీరు అనుమతిని మంజూరు చెయ్యలేదు. అయినప్పటికీ మీరు సమావేశంలో చేరవచ్చు కానీ ఇతరులు మిమ్మల్ని చూడలేరు. దీన్ని సరిచేయడానికి చిరునామాపట్టీలే కేమెరా ప్రతీకాన్ని నొక్కండి.", + "cameraTimeoutError": "వీడియో మూలాన్ని మొదలుపెట్టలేకపోయాం. కాలం చెల్లిపోయింది!", + "cameraUnknownError": "ఏదో తెలియని కారణం చేత కేమెరాను వాడలేకున్నాం.", + "cameraUnsupportedResolutionError": "కావాల్సిన వీడియో రిజల్యూషనుకు మీ కేమెరాలో తోడ్పాటు లేదు.", + "close": "మూసివేయి", + "conferenceDisconnectMsg": "మీ నెట్‌వర్క్ అనుసంధానాన్ని ఒకసారి సరిచూసుకోండి. {{seconds}} క్షణాల్లో తిరిగి అనుసంధానమవుతుంది…", + "conferenceDisconnectTitle": "మీ అనుసంధానం తెగిపోయింది.", + "conferenceReloadMsg": "దాన్ని సరిచేయడానికి ప్రయత్నిస్తున్నాం. {{seconds}} క్షణాల్లో తిరిగి అనుసంధానమవుతుంది…", + "conferenceReloadTitle": "దురదృష్టవశాత్తూ, ఏదో తప్పు జరిగింది.", + "confirm": "నిర్ధారించండి", + "confirmNo": "కాదు", + "confirmYes": "అవును", + "connectError": "అయ్యో! ఏదో తప్పు జరిగింది, సమావేశానికి అనుసంధానం కాలేకపోయాం.", + "connectErrorWithMsg": "అయ్యో! ఏదో తప్పు జరిగింది, సమావేశానికి అనుసంధానం కాలేకపోయాం: {{msg}}", + "connecting": "అనుసంధానమవుతూన్నది", + "contactSupport": "తోడ్పాటును సంప్రదించండి", + "copied": "కాపీ అయ్యింది", + "copy": "కాపీచేయి", + "dismiss": "విస్మరించు", + "displayNameRequired": "నమస్తే! మీ పేరు ఏమిటి?", + "done": "పూర్తయింది", + "e2eeDescription": "End-to-End Encryption is currently EXPERIMENTAL. Please keep in mind that turning on end-to-end encryption will effectively disable server-side provided services such as: recording, live streaming and phone participation. Also keep in mind that the meeting will only work for people joining from browsers with support for insertable streams.", + "e2eeLabel": "Enable End-to-End Encryption", + "e2eeWarning": "WARNING: Not all participants in this meeting seem to have support for End-to-End encryption. If you enable it they won't be able to see nor hear you.", + "enterDisplayName": "దయచేసి ఇక్కడ మీ పేరు ఇవ్వండి", + "error": "తప్పిదం", + "gracefulShutdown": "ప్రస్తుతం మా సేవలు నిర్వహణ నిమిత్తం అందుబాటులో లేవు. దయచేసి కాసేపాగి ప్రయత్నించండి.", + "grantModeratorDialog": "మీరు నిజంగానే ఈ సదస్యునికి మధ్యవర్తి హోదా మంజూరు చేద్దామనుకుంటున్నారా?", + "grantModeratorTitle": "మధ్యవర్తిత్వాన్ని మంజూరుచేయి", + "incorrectPassword": "తప్పుడు వాడుకరి పేరు లేదా సంకేతపదం", + "incorrectRoomLockPassword": "సంకేతపదం తప్పు", + "internalError": "అయ్యో! ఏదో తప్పు జరిగింది. ఇదీ తప్పిదం: {{error}}", + "internalErrorTitle": "అంతర్గంత తప్పిదం", + "kickMessage": "మరిన్ని వివరాలకు మీరు {{participantDisplayName}}‌ను సంప్రదించవచ్చు.", + "kickParticipantButton": "బయటికి గెంటేయి", + "kickParticipantDialog": "మీరు నిజంగానే ఈ సదస్యుడిని బయటికి గెంటేయాలనుకుంటున్నారా?", + "kickParticipantTitle": "ఈ సదస్యుడిని గెంటేయాలా?", + "kickTitle": "అయ్యో! మిమ్మల్ని సమావేశం నుండి {{participantDisplayName}} బయటికి గెంటేసారు", + "liveStreaming": "లైవ్ స్ట్రీమింగ్", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "రికార్డింగు చేస్తున్నప్పడు కుదరదు", + "liveStreamingDisabledTooltip": "లైవ్ స్ట్రీమ్ మొదలుపెట్టడం అచేనతనమైవుంది.", + "lockMessage": "Failed to lock the conference.", + "lockRoom": "Add meeting $t(lockRoomPassword)", + "lockTitle": "Lock failed", + "login": "ప్రవేశించు", + "logoutQuestion": "మీరు నిజంగానే నిష్క్రమించి ఈ సమావేశాన్ని ఆపేయాలనుకుంటున్నారా?", + "logoutTitle": "నిష్క్రమణ", + "maxUsersLimitReached": "సదస్యుల సంఖ్య గరిష్ఠ పరిమితికి చేరుకుంది. సమావేశం నిండుగా ఉంది. దయచేసి సమావేశ యజమానిని సంప్రదించండి లేదా మళ్ళీ ప్రయత్నించండి!", + "maxUsersLimitReachedTitle": "సదస్యుల సంఖ్య గరిష్ఠ పరిమితికి చేరుకుంది", + "micConstraintFailedError": "అవసరమైన కొన్ని నిబంధనలను మీ మైక్రోఫోను సంతృప్తి పరచడంలేదు.", + "micNotFoundError": "మైక్రోఫోను కనబడలేదు.", + "micNotSendingData": "మీ కంప్యూటర్ అమరికల లోనికి వెళ్ళి మైకుని అమౌనించండి, దాని ధ్వనిస్థాయిని సర్దుబాటుచేయండి", + "micNotSendingDataTitle": "మీ కంప్యూటర్ అమరికలు మీ మైకును మౌనించాయి", + "micPermissionDeniedError": "You have not granted permission to use your microphone. You can still join the conference but others won't hear you. Use the camera button in the address bar to fix this.", + "micTimeoutError": "Could not start audio source. Timeout occurred!", + "micUnknownError": "Cannot use microphone for an unknown reason.", + "muteEveryoneDialog": "Are you sure you want to mute everyone? You won't be able to unmute them, but they can unmute themselves at any time.", + "muteEveryoneElseDialog": "Once muted, you won't be able to unmute them, but they can unmute themselves at any time.", + "muteEveryoneElseTitle": "Mute everyone except {{whom}}?", + "muteEveryoneElsesVideoDialog": "Once the camera is disabled, you won't be able to turn it back on, but they can turn it back on at any time.", + "muteEveryoneElsesVideoTitle": "Disable everyone's camera except {{whom}}?", + "muteEveryoneSelf": "yourself", + "muteEveryoneStartMuted": "ఇకనుండి అందరూ మౌనించబడే మొదలవుతారు", + "muteEveryoneTitle": "అందరినీ మౌనించాలా?", + "muteEveryonesVideoDialog": "Are you sure you want to disable everyone's camera? You won't be able to turn it back on, but they can turn it back on at any time.", + "muteEveryonesVideoDialogOk": "అచేతనించు", + "muteEveryonesVideoTitle": "అందరి కేమెరాలనూ అచేతనించాలా?", + "muteParticipantBody": "మీరు వారిని అమౌనించలేరు, కానీ వారంతవారు ఎప్పుడైనా అమౌనించుకోగలరు.", + "muteParticipantButton": "మౌనించు", + "muteParticipantDialog": "ఈ సదస్యుడిని మీరు నిజంగానే మౌనించాలనుకుంటున్నారా? మీరు వారిని అమౌనించలేరు, కానీ వారంతవారు ఎప్పుడైనా అమౌనించుకోగలరు.", + "muteParticipantTitle": "ఈ సదస్యుడిని మౌనించాలా?", + "muteParticipantsVideoBody": "వారి కేమెరాను మీరు తిరిగి చేతనించలేరు, కానీ వారు ఎప్పుడైనా చేతనించుకోగలరు.", + "muteParticipantsVideoButton": "కేమెరాను అచేతనించు", + "muteParticipantsVideoTitle": "ఈ సదస్యుని కేమెరాను అచేతనించాలా?", + "password": "సంకేతపదం", + "passwordLabel": "ఈ సమావేశానికి ఒక సదస్యులు తాళం వేసివున్నారు. చేరడానికి దయచేసి $t(lockRoomPassword) ఇవ్వండి.", + "passwordNotSupported": "సమావేశానికి $t(lockRoomPassword) అమర్చడానికి తోడ్పాటులేదు.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) తోడ్పాటులేదు", + "passwordRequired": "$t(lockRoomPasswordUppercase) తప్పనిసరి", + "popupError": "Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser's security settings and try again.", + "popupErrorTitle": "Pop-up blocked", + "readMore": "మరింత", + "recording": "రికార్డింగు", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "లైన్ స్ట్రీమ్ చేతనంగా ఉన్నప్పుడు రికార్డింగు కుదరదు", + "recordingDisabledTooltip": "రికార్డింగు చేయడం అచేతనించబడింది.", + "rejoinNow": "ఇప్పుడే మళ్ళీ చేరు", + "remoteControlAllowedMessage": "{{user}} accepted your remote control request!", + "remoteControlDeniedMessage": "{{user}} rejected your remote control request!", + "remoteControlErrorMessage": "An error occurred while trying to request remote control permissions from {{user}}!", + "remoteControlRequestMessage": "Will you allow {{user}} to remotely control your desktop?", + "remoteControlShareScreenWarning": "Note that if you press \"Allow\" you will share your screen!", + "remoteControlStopMessage": "The remote control session ended!", + "remoteControlTitle": "Remote desktop control", + "removePassword": "$t(lockRoomPassword)ను తీసివేయి", + "removeSharedVideoMsg": "Are you sure you would like to remove your shared video?", + "removeSharedVideoTitle": "Remove shared video", + "reservationError": "Reservation system error", + "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}", + "retry": "మళ్ళీ ప్రయత్నించు", + "screenSharingAudio": "Share audio", + "screenSharingFailed": "Oops! Something went wrong, we weren’t able to start screen sharing!", + "screenSharingFailedTitle": "తెర పంచుకోలు విఫలమైంది!", + "screenSharingPermissionDeniedError": "Oops! Something went wrong with your screen sharing permissions. Please reload and try again.", + "sendPrivateMessage": "You recently received a private message. Did you intend to reply to that privately, or you want to send your message to the group?", + "sendPrivateMessageCancel": "సమూహానికి పంపించు", + "sendPrivateMessageOk": "అంతరంగికంగా పంపించు", + "sendPrivateMessageTitle": "అంతరంగికంగా పంపించాలా?", + "serviceUnavailable": "సేవ అందుబాటులో లేదు", + "sessTerminated": "Call terminated", + "sessionRestarted": "Call restarted because of a connection issue.", + "shareVideoLinkError": "దయచేసి సరైన యూట్యూబ్ లంకెను ఇవ్వండి.", + "shareVideoTitle": "ఒక వీడియో పంచుకోండి", + "shareYourScreen": "మీ తెరను పంచుకోండి", + "shareYourScreenDisabled": "తెరను పంచుకోవడం అచేతనం చేయబడింది.", + "startLiveStreaming": "లైవ్ స్ట్రీము మొదలుపెట్టు", + "startRecording": "రికార్డింగు మొదలుపెట్టు", + "startRemoteControlErrorMessage": "An error occurred while trying to start the remote control session!", + "stopLiveStreaming": "లైవ్ స్ట్రీము ఆపివేయి", + "stopRecording": "రికార్డింగు ఆపివేయి", + "stopRecordingWarning": "మీరు నిజంగానే రికార్డింగు ఆపివేయాలనుకుంటున్నారా?", + "stopStreamingWarning": "మీరు నిజంగానే లైవ్ స్ట్రీమును ఆపివేయాలనుకుంటున్నారా?", + "streamKey": "Live stream key", + "thankYou": "{{appName}} వాడుతున్నందుకు కృతజ్ఞతలు!", + "token": "token", + "tokenAuthFailed": "క్షమించండి, మీరు ఈ కాల్‌లో చేరలేరు.", + "tokenAuthFailedTitle": "అధీకరణ విఫలమైంది", + "transcribing": "Transcribing", + "unlockRoom": "సమావేశ $t(lockRoomPassword)ను తీసివేయి", + "user": "వాడుకరి", + "userIdentifier": "వాడుకరి గుర్తింపు", + "userPassword": "వాడుకరి సంకేతపదం", + "videoLink": "వీడియో లంకె", + "yourEntireScreen": "మీ పూర్తి తెర" + }, + "documentSharing": { + "title": "పంచుకున్న పత్రం" + }, + "e2ee": { + "labelToolTip": "Audio and Video Communication on this call is end-to-end encrypted" + }, + "embedMeeting": { + "title": "Embed this meeting" + }, + "feedback": { + "average": "పర్లేదు", + "bad": "బాలేదు", + "detailsLabel": "దాని గురించి మాకు మరికొంత చెప్పండి.", + "good": "బాగుంది", + "rateExperience": "మీ సమావేశ అనుభవాన్ని రేట్ చేయండి", + "veryBad": "అసలు బాలేదు", + "veryGood": "చాలా బాగుందిా" + }, + "helpView": { + "title": "సహాయ కేంద్రం" + }, + "incomingCall": { + "answer": "బదులివ్వు", + "audioCallTitle": "Incoming call", + "decline": "విస్మరించు", + "productLabel": "జిత్సి మీట్ నుండి", + "videoCallTitle": "Incoming video call" + }, + "info": { + "accessibilityLabel": "సమాచారం చూపించు", + "addPassword": "$t(lockRoomPassword) చేర్చు", + "cancelPassword": "$t(lockRoomPassword) రద్దుచేయి", + "conferenceURL": "లంకె:", + "country": "దేశం", + "dialANumber": "To join your meeting, dial one of these numbers and then enter the pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Sorry, dialing in is currently not supported.", + "dialInNumber": "Dial-in:", + "dialInSummaryError": "Error fetching dial-in info now. Please try again later.", + "dialInTollFree": "ఉచితం", + "genericError": "అయ్యో, ఏదో పొరపాటు జరిగింది.", + "inviteLiveStream": "To view the live stream of this meeting, click this link: {{url}}", + "invitePhone": "To join by phone instead, tap this: {{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}}", + "inviteURLFirstPartGeneral": "ఒక సమావేశంలో చేరమని మిమ్మల్ని ఆహ్వానించారు.", + "inviteURLFirstPartPersonal": "మిమ్మల్ని {{name}} ఒక సమావేశానికి ఆహ్వానిస్తున్నారు.\n", + "inviteURLSecondPart": "\nసమావేశంలో చేరండి:\n{{url}}\n", + "label": "డయలింగ్ సమాచారం", + "liveStreamURL": "లైవ్ స్ట్రీమ్:", + "moreNumbers": "మరిన్ని నెంబర్లు", + "noNumbers": "డయల్ చేసే నెంబర్లేమీ లేవు.", + "noPassword": "ఏమీలేదు", + "noRoom": "No room was specified to dial-in into.", + "numbers": "డయల్ చేయాల్సిన నెంబర్లు", + "password": "$t(lockRoomPasswordUppercase):", + "title": "పంచుకోలు", + "tooltip": "ఈ సమావేశాపు లంకెను, డయలింగ్ సమాచారాన్ని పంచుకోండి" + }, + "inlineDialogFailure": { + "msg": "మేము కొంచెం తడబడ్డాం.", + "retry": "మళ్ళీ ప్రయత్నించండి", + "support": "తోడ్పాటు", + "supportMsg": "ఇలా తరచూ జరుగుతూంటే, మమ్మల్ని సంప్రదించండి" + }, + "inviteDialog": { + "alertText": "కొంతమంది సదస్యులను ఆహ్వానించలేకపోయాం.", + "header": "ఆహ్వానించండి", + "searchCallOnlyPlaceholder": "ఫోను నెంబరు ఇవ్వండి", + "searchPeopleOnlyPlaceholder": "సదస్యుల కోసం వెతకండి", + "searchPlaceholder": "సదస్యుల పేరు లేదా ఫోను నెంబరు", + "send": "పంపించు" + }, + "keyboardShortcuts": { + "focusLocal": "Focus on your video", + "focusRemote": "Focus on another person's video", + "fullScreen": "నిండు తెర చూడండి లేదా మూయండి", + "keyboardShortcuts": "కీబోర్డు షార్ట్‌కట్లు", + "localRecording": "స్థానిక రికార్డింగు నియంత్రణలను చూపించు లేదా దాచు", + "mute": "మీ మైక్రోఫోనును మౌనించండి లేదా అమౌనించండి", + "pushToTalk": "నొక్కి మాట్లాడండి", + "raiseHand": "మీ చేయి ఎత్తండి లేదా దించండి", + "showSpeakerStats": "మాట్లాడినవారి గణాంకాలు చూపించు", + "toggleChat": "సంభాషణను తెరువు లేదా మూసివేయి", + "toggleFilmstrip": "వీడియో నఖచిత్రాలను చూపించు లేదా దాచు", + "toggleParticipantsPane": "సదస్యుల జాబితాను చూపించు లేదా దాచు", + "toggleScreensharing": "కేమెరా, తెర పంచుకోవడాల మధ్య మారండి", + "toggleShortcuts": "కీబోర్డు షార్ట్‌కట్లను చూపించు లేదా దాచు", + "videoMute": "మీ కేమెరా మొదలుపెట్టండి లేదా ఆపివేయండి" + }, + "liveStreaming": { + "busy": "We're working on freeing streaming resources. Please try again in a few minutes.", + "busyTitle": "All streamers are currently busy", + "changeSignIn": "Switch accounts.", + "choose": "Choose a live stream", + "chooseCTA": "Choose a streaming option. You're currently logged in as {{email}}.", + "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.", + "errorLiveStreamNotEnabled": "Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.", + "expandedOff": "The live streaming has stopped", + "expandedOn": "The meeting is currently being streamed to YouTube.", + "expandedPending": "The live streaming is being started…", + "failedToStart": "Live Streaming failed to start", + "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", + "onBy": "{{name}} started the live streaming", + "pending": "Starting Live Stream…", + "serviceName": "లైవ్ స్ట్రీమింగ్ సేవ", + "signIn": "గూగుల్‌తో ప్రవేశించండి", + "signInCTA": "Sign in or enter your live stream key from YouTube.", + "signOut": "నిష్క్రమించు", + "signedInAs": "మీరు ప్రస్తుతం ఇలా ప్రవేశించివున్నారు:", + "start": "ఒక లైవ్ స్ట్రీమ్ మొదలుపెట్టండి", + "streamIdHelp": "ఇది ఏమిటి?", + "title": "తాజా స్ట్రీమింగ్", + "unavailableTitle": "లైవ్ స్ట్రీమింగ్ అందుబాటులో లేదు", + "youtubeTerms": "యూట్యూబ్ సేవా నియమాలు" + }, + "lobby": { + "backToKnockModeButton": "సంకేతపదం లేదు, చేర్చుకోమని అడుగు", + "dialogTitle": "Lobby mode", + "disableDialogContent": "Lobby mode is currently enabled. This feature ensures that unwanted participants can't join your meeting. Do you want to disable it?", + "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.", + "enterPasswordButton": "సమావేశ సంకేతపదం ఇవ్వండి", + "enterPasswordTitle": "సమావేశంలో చేరడానికి సంకేతపదం ఇవ్వండి", + "invalidPassword": "చెల్లని సంకేతపదం", + "joinRejectedMessage": "మీ అభ్యర్థనను ఒక మధ్యవర్తి తిరస్కరించారు.", + "joinTitle": "సమావేశంలో చేరండి", + "joinWithPasswordMessage": "సంకేతపదంతో చేరడానికి ప్రయత్నిస్తున్నది, దయచేసి వేచివుండండి…", + "joiningMessage": "ఎవరైనా మీ అభ్యర్థనను ఆమోదించగానే మీరు సమావేశంలో చేరతారు", + "joiningTitle": "సమావేశంలో చేరడానికి అడుగుతున్నాం…", + "joiningWithPasswordTitle": "సంకేతపదంతో చేరుతున్నారు…", + "knockButton": "చేరడానికి అడుగు", + "knockTitle": "ఎవరో సమావేశంలో చేరదామనుకుంటున్నారు", + "knockingParticipantList": "Knocking participant list", + "nameField": "మీ పేరు ఇవ్వండి", + "notificationLobbyAccessDenied": "{{targetParticipantName}} has been rejected to join by {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} has been allowed to join by {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby has been disabled by {{originParticipantName}}", + "notificationLobbyEnabled": "Lobby has been enabled by {{originParticipantName}}", + "notificationTitle": "Lobby", + "passwordField": "సమావేశం సంకేతపదం ఇవ్వండి", + "passwordJoinButton": "చేరు", + "title": "Lobby", + "toggleLabel": "Enable lobby" + }, + "localRecording": { + "clientState": { + "off": "అచేతనం", + "on": "చేతనం", + "unknown": "తెలియదు" + }, + "dialogTitle": "స్థానిక రికార్డింగు నియంత్రణలు", + "duration": "నిడివి", + "durationNA": "N/A", + "encoding": "ఎన్‌కోడింగు", + "label": "LOR", + "labelToolTip": "స్థానిక రికార్డింగు నడుస్తూన్నది", + "localRecording": "స్థానిక రికార్డింగు", + "me": "నేను", + "messages": { + "engaged": "స్థానిక రికార్డింగు నడుస్తూన్నది.", + "finished": "Recording session {{token}} finished. Please send the recorded file to the moderator.", + "finishedModerator": "Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.", + "notModerator": "మీరు మధ్యవర్తి కాదు. మీరు స్థానిక రికార్డింగును మొదలుపెట్టలేరు, ఆపివేయలేరు." + }, + "moderator": "మధ్యవర్తి", + "no": "వద్దు", + "participant": "సదస్యులు", + "participantStats": "సదస్యుల గణాంకాలు", + "sessionToken": "Session Token", + "start": "రికార్డింగు మొదలుపెట్టు", + "stop": "రికార్డింగు ఆపివేయి", + "yes": "అవును" + }, + "lockRoomPassword": "సంకేతపదం", + "lockRoomPasswordUppercase": "సంకేతపదం", + "lonelyMeetingExperience": { + "button": "ఇతరులను ఆహ్వానించండి", + "youAreAlone": "సమావేశంలో మీరొక్కరే ఉన్నారు" + }, + "me": "నేను", + "notify": { + "OldElectronAPPTitle": "భద్రతా బలహీనత!", + "connectedOneMember": "{{name}} సమావేశంలో చేరారు", + "connectedThreePlusMembers": "{{name}}, మరో {{count}}గురు సమావేశంలో చేరారు", + "connectedTwoMembers": "{{first}}, {{second}} సమావేశంలో చేరారు", + "disconnected": "disconnected", + "focus": "Conference focus", + "focusFail": "{{component}} అందుబాటులో లేదు - {{ms}} క్షణాలలో ప్రయత్నించండి", + "grantedTo": "{{to}}కి మధ్యవర్తిత్వ హక్కులు ఇవ్వబడ్డాయి!", + "invitedOneMember": "{{name}} ఆహ్వానించబడ్డారు", + "invitedThreePlusMembers": "{{name}}, మరో {{count}}గురు ఆహ్వానించబడ్డారు", + "invitedTwoMembers": "{{first}}, {{second}} ఆహ్వానించబడ్డారు", + "kickParticipant": "{{kicked}}‌ను {{kicker}} బయటికి గెంటేసారు", + "me": "Me", + "moderator": "మధ్యవర్తిత్వ హక్కులు ఇవ్వబడ్డాయి!", + "muted": "You have started the conversation muted.", + "mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.", + "mutedRemotelyTitle": "{{participantDisplayName}} మిమ్మల్ని మౌనించారు!", + "mutedTitle": "మిమ్మల్ని మౌనించారు!", + "newDeviceAction": "వాడు", + "newDeviceAudioTitle": "కొత్త ఆడియో పరికరం కనుగొనబడింది", + "newDeviceCameraTitle": "కొత్త కేమెరా కనుగొనబడింది", + "oldElectronClientDescription1": "You appear to be using an old version of the Jitsi Meet client which has known security vulnerabilities. Please make sure you update to our ", + "oldElectronClientDescription2": "సరికొత్త బిల్డు", + "oldElectronClientDescription3": " ఇప్పుడే!", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant", + "raisedHand": "{{name}} మాట్లాడాలనుకుంటున్నారు.", + "screenShareNoAudio": " Share audio box was not checked in the window selection screen.", + "screenShareNoAudioTitle": "Share audio was not checked", + "somebody": "Somebody", + "startSilentDescription": "Rejoin the meeting to enable audio", + "startSilentTitle": "You joined with no audio output!", + "suboptimalBrowserWarning": "We are afraid your meeting experience isn't going to be that great here. We are looking for ways to improve this, but until then please try using one of the fully supported browsers.", + "suboptimalExperienceTitle": "విహారిణి హెచ్చరిక", + "unmute": "Unmute", + "videoMutedRemotelyDescription": "You can always turn it on again.", + "videoMutedRemotelyTitle": "Your camera has been disabled by {{participantDisplayName}}!" + }, + "participantsPane": { + "actions": { + "admit": "అనుమతించు", + "allow": "అనుమతించు", + "invite": "ప్రజలను ఆహ్వానించు", + "muteAll": "అందరినీ మౌనించు", + "reject": "నిరాకరించు", + "stopVideo": "వీడియో ఆపివేయి" + }, + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "సదస్యులు ({{count}})" + } + }, + "passwordDigitsOnly": "{{number}} అంకెల వరకు", + "passwordSetRemotely": "మరో సదస్యులు అమర్చారు", + "polls": { + "errors": { + "notUniqueOption": "ఎంపికలు ప్రత్యేకంగా ఉండాలి" + } + }, + "poweredby": "శక్తిమంతం", + "prejoin": { + "audioAndVideoError": "Audio and video error:", + "audioDeviceProblem": "There is a problem with your audio device", + "audioOnlyError": "Audio error:", + "audioTrackError": "Could not create audio track.", + "callMe": "Call me", + "callMeAtNumber": "Call me at this number:", + "calling": "Calling", + "configuringDevices": "Configuring devices…", + "connectedWithAudioQ": "You’re connected with audio?", + "connection": { + "good": "మీ అంతర్జాల అనుసంధానం బానే ఉంది!", + "nonOptimal": "మీ అంతర్జాల అనుసంధానం అంత బాగాలేదు", + "poor": "మీ అంతర్జాల అనుసంధానం బాలేదు" + }, + "connectionDetails": { + "audioClipping": "We expect your audio to be clipped.", + "audioHighQuality": "We expect your audio to have excellent quality.", + "audioLowNoVideo": "We expect your audio quality to be low and no video.", + "goodQuality": "Awesome! Your media quality is going to be great.", + "noMediaConnectivity": "We could not find a way to establish media connectivity for this test. This is typically caused by a firewall or NAT.", + "noVideo": "We expect that your video will be terrible.", + "undetectable": "If you still can not make calls in browser, we recommend that you make sure your speakers, microphone and camera are properly set up, that you have granted your browser rights to use your microphone and camera, and that your browser version is up-to-date. If you still have trouble calling, you should contact the web application developer.", + "veryPoorConnection": "We expect your call quality to be really terrible.", + "videoFreezing": "We expect your video to freeze, turn black, and be pixelated.", + "videoHighQuality": "We expect your video to have good quality.", + "videoLowQuality": "We expect your video to have low quality in terms of frame rate and resolution.", + "videoTearing": "We expect your video to be pixelated or have visual artefacts." + }, + "copyAndShare": "Copy & share meeting link", + "dialInMeeting": "Dial into the meeting", + "dialInPin": "Dial into the meeting and enter PIN code:", + "dialing": "Dialing", + "doNotShow": "ఈ తెరను మళ్ళీ చూపించవద్దు", + "errorDialOut": "Could not dial out", + "errorDialOutDisconnected": "Could not dial out. Disconnected", + "errorDialOutFailed": "Could not dial out. Call failed", + "errorDialOutStatus": "Error getting dial out status", + "errorMissingName": "సమావేశంలో చేరడానికి దయచేసి మీ పేరు ఇవ్వండి", + "errorStatusCode": "Error dialing out, status code: {{status}}", + "errorValidation": "నెంబరు సరిచూత విఫలమైంది", + "iWantToDialIn": "I want to dial in", + "initiated": "Call initiated", + "joinAudioByPhone": "ఫోను ఆడియోతో చేరు", + "joinMeeting": "సమావేశంలో చేరు", + "joinWithoutAudio": "ఆడియో లేకుండా చేరు", + "linkCopied": "లంకె క్లిప్‌బోర్డుకి కాపీ అయ్యింది", + "lookGood": "మీ మైక్రోఫోను బాగానే పనిచేస్తున్నట్లుంది", + "or": "లేదా", + "premeeting": "Pre meeting", + "screenSharingError": "Screen sharing error:", + "startWithPhone": "Start with phone audio", + "videoOnlyError": "Video error:", + "videoTrackError": "Could not create video track.", + "viewAllNumbers": "నెంబర్లన్నిటినీ చూడండి" + }, + "presenceStatus": { + "busy": "Busy", + "calling": "పిలుస్తూన్నది…", + "connected": "అనుసంధానమయ్యింది", + "connecting": "అనుసంధానమవుతూన్నది…", + "connecting2": "అనుసంధానమవుతూన్నది*…", + "disconnected": "అనుసంధానం తెగిపోయింది", + "expired": "కాలంచెల్లింది", + "ignored": "పట్టించుకోలేదు", + "initializingCall": "పిలుపు మొదలవుతూన్నది…", + "invited": "ఆహ్వానించారు", + "rejected": "తిరస్కరించారు", + "ringing": "రింగవుతూన్నది…" + }, + "profile": { + "setDisplayNameLabel": "చూపించాల్సిన పేరు అమర్చుకోండి", + "setEmailInput": "ఈమెయిలు ఇవ్వండి", + "setEmailLabel": "గ్రావతార్ ఈమెయిలు అమర్చుకోండి", + "title": "ప్రొఫైలు" + }, + "raisedHand": "మాట్లాడాలనుకుంటున్నారు", + "recording": { + "authDropboxText": "డ్రాప్‌బాక్స్‌కు ఎక్కించండి", + "availableSpace": "అందుబాటులో ఉన్న జాగా: {{spaceLeft}} MB (సుమారు {{duration}} నిమిషాల రికార్డింగు)", + "beta": "బీటా", + "busy": "We're working on freeing recording resources. Please try again in a few minutes.", + "busyTitle": "All recorders are currently busy", + "error": "రికార్డింగు విఫలమైంది. దయచేసి మళ్ళీ ప్రయత్నించండి.", + "expandedOff": "రికార్డింగు ఆగిపోయింది", + "expandedOn": "ఈ సమావేశం ప్రస్తుతం రికార్డు అవుతూన్నది.", + "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": "రికార్డింగు ఆగిపోయింది", + "offBy": "{{name}} రికార్డింగును ఆపివేసారు", + "on": "రికార్డింగు మొదలయింది", + "onBy": "{{name}} రికార్డింగును మొదలుపెట్టారు", + "pending": "Preparing to record the meeting…", + "rec": "REC", + "serviceDescription": "Your recording will be saved by the recording service", + "serviceDescriptionCloud": "Cloud recording", + "serviceName": "రికార్డింగు సేవ", + "signIn": "Sign in", + "signOut": "Sign out", + "title": "రికార్డింగు", + "unavailable": "Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.", + "unavailableTitle": "రికార్డింగు అందుబాటులో లేదు" + }, + "sectionList": { + "pullToRefresh": "తాజాకరించడానికి లాగివదలండి" + }, + "security": { + "about": "You can add a $t(lockRoomPassword) to your meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.", + "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.", + "insecureRoomNameWarning": "The room name is unsafe. Unwanted participants may join your conference. Consider securing your meeting using the security button.", + "securityOptions": "భద్రతా ఎంపికలు" + }, + "settings": { + "calendar": { + "about": "The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.", + "disconnect": "Disconnect", + "microsoftSignIn": "Sign in with Microsoft", + "signedIn": "Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.", + "title": "క్యారెండరు" + }, + "devices": "పరికరాలు", + "followMe": "అందరూ నన్ను అనుసరిస్తారు", + "language": "భాష", + "loggedIn": "{{name}} వలె ప్రవేశించారు", + "microphones": "మైక్రోఫోన్లు", + "moderator": "మధ్యవర్తి", + "more": "మరిన్ని", + "name": "పేరు", + "noDevice": "ఏమీలేవు", + "selectAudioOutput": "ఆడియో ఔట్‌పుట్", + "selectCamera": "కేమెరా", + "selectMic": "మైక్రోఫోను", + "speakers": "స్పీకర్లు", + "startAudioMuted": "అందరూ మౌనించబడి మొదలవుతారు", + "startVideoMuted": "అందరూ కనబడకుండా మొదలవుతారు", + "title": "అమరికలు" + }, + "settingsView": { + "advanced": "ఉన్నతం", + "alertCancel": "రద్దుచేయి", + "alertOk": "సరే", + "alertTitle": "హెచ్చరిక", + "alertURLText": "పేర్కొన్న సర్వరు చిరునామా చెల్లనిది", + "buildInfoSection": "బిల్డు సమాచారం", + "conferenceSection": "సదస్సు", + "disableCallIntegration": "Disable native call integration", + "disableCrashReporting": "Disable crash reporting", + "disableCrashReportingWarning": "Are you sure you want to disable crash reporting? The setting will be applied after you restart the app.", + "disableP2P": "Disable Peer-To-Peer mode", + "displayName": "చూపించే పేరు", + "email": "ఈమెయిలు", + "header": "అమరికలు", + "profileSection": "ప్రొఫైలు", + "serverURL": "సర్వరు చిరునామా", + "showAdvanced": "ఉన్నత అమరికలను చూపించు", + "startWithAudioMuted": "ఆడియో మౌనించి మొదలుపెట్టు", + "startWithVideoMuted": "వీడియో కనబడకుండా మొదలుపెట్టు", + "version": "వెర్షను" + }, + "share": { + "dialInfoText": "\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}", + "mainText": "సమావేశంలో చేరడానికి ఈ లంకెను నొక్కండి:\n{{roomUrl}}" + }, + "speaker": "మాట్లాడినవారు", + "speakerStats": { + "hours": "{{count}}గం", + "minutes": "{{count}}ని", + "name": "పేరు", + "search": "శోధించు", + "searchHint": "శోధన పాల్గొనేవారు", + "seconds": "{{count}}క్ష", + "speakerStats": "మాట్లాడేవారి గణాంకాలు", + "speakerTime": "మాట్లాడిన సమయం" + }, + "startupoverlay": { + "genericTitle": "ఈ సమావేశం మీ మైక్రోఫోనును, కేమెరాను వాడుకోవాలి.", + "policyText": " ", + "title": "{{app}} మీ మైక్రోఫోనును, కేమెరాను వాడుకోవాలి." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "మళ్ళీ చేరండి", + "text": "Press the Rejoin button to reconnect.", + "title": "Your video call was interrupted because this computer went to sleep." + }, + "toolbar": { + "Settings": "అమరికలు", + "accessibilityLabel": { + "Settings": "Toggle settings", + "audioOnly": "Toggle audio only", + "audioRoute": "Select the sound device", + "callQuality": "Manage video quality", + "cc": "Toggle subtitles", + "chat": "Toggle chat window", + "document": "Toggle shared document", + "download": "Download our apps", + "embedMeeting": "Embed meeting", + "feedback": "Leave feedback", + "fullScreen": "Toggle full screen", + "grantModerator": "Grant Moderator", + "hangup": "Leave the call", + "help": "సహాయం", + "invite": "Invite people", + "kick": "Kick participant", + "lobbyButton": "Enable/disable lobby mode", + "localRecording": "Toggle local recording controls", + "lockRoom": "Toggle meeting password", + "moreActions": "Toggle more actions menu", + "moreActionsMenu": "మరిన్ని చర్యల మెనూ", + "moreOptions": "మరిన్ని ఎంపికలు చూపించు", + "mute": "Toggle mute audio", + "muteEveryone": "అందరినీ మౌనించు", + "muteEveryoneElse": "తతిమావారందిరినీ మౌనించు", + "muteEveryoneElsesVideo": "తతిమావారందరి కేమెరాలనూ అచేతనించు", + "muteEveryonesVideo": "అందరి కేమెరాలనూ అచేతనించు", + "participants": "సదస్యులు", + "pip": "Toggle Picture-in-Picture mode", + "privateMessage": "Send private message", + "profile": "Edit your profile", + "raiseHand": "Toggle raise hand", + "recording": "Toggle recording", + "remoteMute": "సదస్యుని మౌనించు", + "remoteVideoMute": "Disable camera of participant", + "security": "భద్రతా ఎంపికలు", + "selectBackground": "వెనుతలం ఎంచుకోండి", + "shareRoom": "Invite someone", + "shareYourScreen": "Toggle screenshare", + "shareaudio": "Share audio", + "sharedvideo": "Toggle video sharing", + "shortcuts": "Toggle shortcuts", + "show": "Show on stage", + "speakerStats": "Toggle speaker statistics", + "tileView": "Toggle tile view", + "toggleCamera": "Toggle camera", + "toggleFilmstrip": "Toggle filmstrip", + "videomute": "Toggle mute video" + }, + "addPeople": "Add people to your call", + "audioOnlyOff": "Disable low bandwidth mode", + "audioOnlyOn": "Enable low bandwidth mode", + "audioRoute": "Select the sound device", + "audioSettings": "ఆడియో అమరికలు", + "authenticate": "Authenticate", + "callQuality": "Manage video quality", + "chat": "Open / Close chat", + "closeChat": "సంభాషణ మూసివేయి", + "documentClose": "Close shared document", + "documentOpen": "Open shared document", + "download": "మా అనువర్తనాలు దించుకోండి", + "e2ee": "End-to-End Encryption", + "embedMeeting": "Embed meeting", + "enterFullScreen": "View full screen", + "enterTileView": "Enter tile view", + "exitFullScreen": "Exit full screen", + "exitTileView": "Exit tile view", + "feedback": "ప్రతిస్పందన తెలియజేయి", + "hangup": "నిష్క్రమించు", + "help": "సహాయం", + "invite": "ప్రజలను ఆహ్వానించు", + "lobbyButtonDisable": "Disable lobby mode", + "lobbyButtonEnable": "Enable lobby mode", + "login": "ప్రవేశించు", + "logout": "నిష్క్రమించు", + "lowerYourHand": "మీ చేయి దించండి", + "moreActions": "మరిన్ని చర్యలు", + "moreOptions": "మరిన్ని ఎంపికలు", + "mute": "మౌనించు / అమౌనించు", + "muteEveryone": "అందరినీ మౌనించు", + "muteEveryonesVideo": "అందరి కేమెరాలనూ అచేతనించు", + "noAudioSignalDesc": "If you did not purposely mute it from system settings or hardware, consider switching the device.", + "noAudioSignalDescSuggestion": "If you did not purposely mute it from system settings or hardware, consider switching to the suggested device.", + "noAudioSignalDialInDesc": "You can also dial-in using:", + "noAudioSignalDialInLinkDesc": "Dial-in numbers", + "noAudioSignalTitle": "మీ మైకు నుండి శబ్దమేమీ వినపడటం లేదు!", + "noisyAudioInputDesc": "It sounds like your microphone is making noise, please consider muting or changing the device.", + "noisyAudioInputTitle": "మీ మైక్రోఫోను గోలగా ఉన్నట్టుంది!", + "openChat": "సంభాషణను తెరువు", + "participants": "సదస్యులు", + "pip": "Enter Picture-in-Picture mode", + "privateMessage": "అంతరంగిక సందేశం పంపించు", + "profile": "మీ ప్రొఫైలును మార్చుకోండి", + "raiseHand": "మీ చేయి ఎత్తండి / దించండి", + "raiseYourHand": "మీ చేయి ఎత్తండి", + "security": "భద్రతా ఎంపికలు", + "selectBackground": "వెనుతలం ఎంచుకోండి", + "shareRoom": "Invite someone", + "shareaudio": "Share audio", + "sharedvideo": "Share video", + "shortcuts": "View shortcuts", + "speakerStats": "Speaker stats", + "startScreenSharing": "Start screen sharing", + "startSubtitles": "Start subtitles", + "stopScreenSharing": "Stop screen sharing", + "stopSharedVideo": "Stop video", + "stopSubtitles": "Stop subtitles", + "talkWhileMutedPopup": "మాట్లాడటానికి ప్రయత్నిస్తున్నారా? మీరు మౌనించబడివున్నారు.", + "tileViewToggle": "Toggle tile view", + "toggleCamera": "Toggle camera", + "videoSettings": "వీడియో అమరికలు", + "videomute": "కేమెరా మొదలుపెట్టు / ఆపివేయి" + }, + "transcribing": { + "ccButtonTooltip": "Start / Stop subtitles", + "error": "Transcribing failed. Please try again.", + "expandedLabel": "Transcribing is currently on", + "failedToStart": "Transcribing failed to start", + "labelToolTip": "The meeting is being transcribed", + "off": "Transcribing stopped", + "pending": "Preparing to transcribe the meeting…", + "start": "Start showing subtitles", + "stop": "Stop showing subtitles", + "tr": "TR" + }, + "userMedia": { + "grantPermissions": "Please grant permissions to use your camera and microphone." + }, + "videoSIPGW": { + "busy": "We're working on freeing resources. Please try again in a few minutes.", + "busyTitle": "The Room service is currently busy", + "errorAlreadyInvited": "{{displayName}} already invited", + "errorInvite": "Conference not established yet. Please try again later.", + "errorInviteFailed": "We're working on resolving the issue. Please try again later.", + "errorInviteFailedTitle": "Inviting {{displayName}} failed", + "errorInviteTitle": "Error inviting room", + "pending": "{{displayName}} ఆహ్వానించబడినారు" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "You are in low bandwidth mode. In this mode you will receive only audio and screen sharing.", + "callQuality": "వీడియో నాణ్యత", + "hd": "HD", + "hdTooltip": "Viewing high definition video", + "highDefinition": "High definition", + "labelTooiltipNoVideo": "వీడియో లేదు", + "labelTooltipAudioOnly": "Low bandwidth mode enabled", + "ld": "LD", + "ldTooltip": "Viewing low definition video", + "lowDefinition": "Low definition", + "sd": "SD", + "sdTooltip": "Viewing standard definition video", + "standardDefinition": "Standard definition" + }, + "videothumbnail": { + "connectionInfo": "అనుసంధాన సమాచారం", + "domute": "మౌనించు", + "domuteOthers": "తతిమావారందరినీ మౌనించు", + "domuteVideo": "కేమెరాను అచేతనించు", + "domuteVideoOfOthers": "తతిమావారందరి కేమెరాలూ అచేతనించు", + "flip": "Flip", + "grantModerator": "మధ్యవర్తిని చేయి", + "kick": "బయటికి గెంటేయి", + "moderator": "మధ్యవర్తి", + "mute": "సదస్యుడిని మౌనించు", + "muted": "మౌనించబడ్డారు", + "remoteControl": "Start / Stop remote control", + "show": "వేదికపై చూపించు", + "videoMuted": "కేమెరా అచేతనంగా ఉంది", + "videomute": "సదస్యుడు కేమెరా ఆపివేసుకున్నారు" + }, + "virtualBackground": { + "addBackground": "వెనుతలం చేర్చు", + "blur": "Blur", + "none": "ఏమీలేదు", + "pleaseWait": "దయచేసి వేచివుండండి…", + "removeBackground": "వెనుతలం తీసివేయి", + "slightBlur": "Slight Blur", + "title": "మిధ్యా వెనుతలాలు" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "చేరడానికి తాకండి", + "roomname": "గది పేరు ఇవ్వండి" + }, + "appDescription": "Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.", + "audioVideoSwitch": { + "audio": "ఆడియో", + "video": "వీడియో" + }, + "calendar": "క్యాలెండరు", + "connectCalendarButton": "Connect your calendar", + "connectCalendarText": "Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.", + "enterRoomTitle": "కొత్త సమావేశం మొదలుపెట్టండి", + "getHelp": "సహాయం పొందండి", + "go": "వెళ్ళు", + "goSmall": "వెళ్ళు", + "headerSubtitle": "Secure and high quality meetings", + "headerTitle": "జిత్సి మీట్", + "info": "డయలింగ్ సమాచారం", + "jitsiOnMobile": "Jitsi on mobile – download our apps and start a meeting from anywhere", + "join": "CREATE / JOIN", + "moderatedMessage": "Or book a meeting URL in advance where you are the only moderator.", + "privacy": "అంతరంగికత", + "recentList": "ఇటీవల", + "recentListDelete": "పద్దును తొలగించు", + "recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.", + "reducedUIText": "{{app}}‌కి స్వాగతం!", + "roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.", + "roomname": "గది పేరు ఇవ్వండి", + "roomnameHint": "Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.", + "sendFeedback": "ప్రతిస్పందన పంపించు", + "startMeeting": "సమావేశం మొదలుపెట్టు", + "terms": "నియమాలు", + "title": "Secure, fully featured, and completely free video conferencing" + } +} diff --git a/lang/main-tr.json b/lang/main-tr.json new file mode 100644 index 0000000..dca3074 --- /dev/null +++ b/lang/main-tr.json @@ -0,0 +1,1572 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Toplantı linki: {{url}}" + }, + "add": "Davet et", + "addContacts": "Kişilerinizi davet edin", + "contacts": "Kişiler", + "copyInvite": "Toplantı davetini kopyala", + "copyLink": "Toplantı bağlantısını kopyala", + "copyStream": "Canlı akış bağlantısını kopyala", + "countryNotSupported": "Ülke henüz desteklenmiyor", + "countryReminder": "Dış bir ülkeyi mi arıyorsunuz? Lütfen ülke koduyla başlayın!", + "defaultEmail": "Varsayılan E-postanız", + "disabled": "Kişi davet edemezsiniz.", + "failedToAdd": "Kişi eklenemedi", + "googleEmail": "Google Email", + "inviteMoreHeader": "Toplantıdaki tek kişisiniz", + "inviteMoreMailSubject": "{{appName}} toplantısına katıl", + "inviteMorePrompt": "Daha fazla kişi davet et", + "linkCopied": "Bağlantı panoya kopyalandı", + "noResults": "Eşleşen sonuç bulunamadı", + "outlookEmail": "Outlook Email", + "phoneNumbers": "Telefon numaraları", + "searching": "Aranıyor…", + "shareInvite": "Toplantı davetini paylaş", + "shareLink": "Katılımcıları davet etmek için toplantı bağlantısını paylaşın", + "shareStream": "Canlı akış bağlantısını paylaşın", + "sipAddresses": "Sip adresleri", + "telephone": "Telefon numarası: {{number}}", + "title": "Bu toplantıya kişi davet edin", + "yahooEmail": "Yahoo Email" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Araç sesi", + "headphones": "Kulaklık", + "none": "Geçerli ses cihazı yok", + "phone": "Telefon", + "speaker": "Konuşmacı" + }, + "audioOnly": { + "audioOnly": "Düşük bant genişliği" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "Örneğin 10 Mbps için 10000000", + "assumedBandwidthBpsWarning": "Daha yüksek değerler ağ sorunlarına neden olabilir.", + "customValue": "özel değer", + "customValueEffect": "Gerçek bps değerini ayarlamak için", + "leaveEmpty": "Boş bırak", + "leaveEmptyEffect": "Tahminlerin gerçekleşmesine izin vermek için", + "possibleValues": "Olası değerler", + "setAssumedBandwidthBps": "Varsayılan bant genişliği (bps)", + "title": "Bant genişliği ayarları", + "zeroEffect": "Videoyu devre dışı bırakmak için" + }, + "breakoutRooms": { + "actions": { + "add": "Alt oda ekle", + "autoAssign": "Alt odalara otomatik ekle", + "close": "Kapat", + "join": "Katıl", + "leaveBreakoutRoom": "Alt odadan çık", + "more": "Daha", + "remove": "Sil", + "rename": "Yeniden adlandır", + "renameBreakoutRoom": "Alt odasını yeniden adlandırın", + "sendToBreakoutRoom": "Katılımcıya gönder:" + }, + "breakoutList": "Alt listesi", + "buttonLabel": "Alt odalar", + "defaultName": "Alt oda #{{index}}", + "hideParticipantList": "Katılımcı listesini gizle", + "mainRoom": "Ana oda", + "notifications": { + "joined": "\"{{name}}\" alt odasına giriliyor", + "joinedMainRoom": "Ana odaya giriliyor", + "joinedTitle": "Alt Odalar" + }, + "showParticipantList": "Katılımcı listesini göster", + "title": "Alt Odalar" + }, + "calendarSync": { + "addMeetingURL": "Bir toplantı bağlantısı ekle", + "confirmAddLink": "Bu etkinliğe bir toplantı bağlantısı eklensin mi?", + "error": { + "appConfiguration": "Takvim entegrasyonu doğru yapılandırılmadı.", + "generic": "Bir hata oluştu. Lütfen takvim ayarlarını kontrol edin veya takvimi yenilemeyi deneyin.", + "notSignedIn": "Takvim etkinlikleri getirilirken bir hata meydana geldi. Lütfen takvim ayarlarını kontrol edin ve tekrar giriş yapın." + }, + "join": "Katıl", + "joinTooltip": "Toplantıya katıl", + "nextMeeting": "Sonraki toplantı", + "noEvents": "Planlanmış bir etkinlik bulunmuyor.", + "ongoingMeeting": "Devam eden toplantı", + "permissionButton": "Ayarları aç", + "permissionMessage": "Uygulama içinde toplantılarınızı görüntülemek için takvim erişim izni gereklidir.", + "refresh": "Takvimi yenile", + "today": "Bugün" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Ses cihazı seç" + }, + "labels": { + "buttonLabel": "Araba modu", + "title": "Arama modu", + "videoStopped": "Video durduruldu" + } + }, + "chat": { + "enter": "Odaya gir", + "error": "Hata: Mesajınız gönderilmedi. Neden: {{error}}", + "fieldPlaceHolder": "Mesajınızı buraya yazın", + "lobbyChatMessageTo": "{{recipient}} adlı kişiye lobi mesajı", + "message": "Mesaj", + "messageAccessibleTitle": "{{user}} diyor:", + "messageAccessibleTitleMe": "Ben diyorum:", + "messageTo": "{{recipient}} adlı kişiye özel mesaj", + "messagebox": "Bir mesaj yazın", + "newMessages": "Yeni mesajlar", + "nickname": { + "popover": "Bir takma ad seçin", + "title": "Sohbette kullanmak için bir takma ad girin", + "titleWithPolls": "Sohbette kullanmak için bir takma ad girin" + }, + "noMessagesMessage": "Toplantıda henüz mesaj yok. Burada bir konuşma başlatın!", + "privateNotice": "{{recipient}} için özel mesaj", + "sendButton": "Gönder", + "smileysPanel": "Emoji paneli", + "systemDisplayName": "Sistem", + "tabs": { + "chat": "Sohbet", + "polls": "Anket" + }, + "title": "Sohbet", + "titleWithPolls": "Sohbet", + "you": "Sen" + }, + "chromeExtensionBanner": { + "buttonText": "Chrome Eklentisi'ni indirin", + "buttonTextEdge": "Edge Eklentisi'ni indirin", + "close": "Kapat", + "dontShowAgain": "Bunu bir daha gösterme", + "installExtensionText": "Google Takvim ve Office 365 entegrasyonu için uzantıyı yükleyin" + }, + "connectingOverlay": { + "joiningRoom": "Toplantıya bağlanılıyor…" + }, + "connection": { + "ATTACHED": "Eklenmiş", + "AUTHENTICATING": "Kimlik doğrulanıyor", + "AUTHFAIL": "Kimlik doğrulama başarısız", + "CONNECTED": "Bağlandı", + "CONNECTING": "Bağlanıyor", + "CONNFAIL": "Bağlantı başarısız", + "DISCONNECTED": "Bağlantı kesildi", + "DISCONNECTING": "Bağlantı kesiliyor", + "ERROR": "Hata", + "FETCH_SESSION_ID": "Oturum kimliği alınıyor…", + "GET_SESSION_ID_ERROR": "Oturum kimliği alma hatası: {{code}}", + "GOT_SESSION_ID": "Oturum kimliği alınıyor… Tamam", + "LOW_BANDWIDTH": "Bant genişliğinden tasarruf etmek için {{displayName}} kişisinin videosu kapatıldı" + }, + "connectionindicator": { + "address": "Adres:", + "audio_ssrc": "Ses SSRC:", + "bandwidth": "Tahmini bant genişliği:", + "bitrate": "Bit hızı:", + "bridgeCount": "Sunucu sayısı: ", + "codecs": "Kodekler (A/V): ", + "connectedTo": "Bağlandı şuna:", + "e2eeVerified": "E2EE doğrulandı", + "framerate": "Çerçeve hızı:", + "less": "Daha az göster", + "localaddress": "Yerel adres:", + "localaddress_plural": "Yerel adresler:", + "localport": "Yerel port:", + "localport_plural": "Yerel portlar:", + "maxEnabledResolution": "Maksimumu gönder", + "more": "Daha fazla göster", + "no": "Hayır", + "packetloss": "Paket kaybı:", + "participant_id": "Katılımcı id:", + "quality": { + "good": "İyi", + "inactive": "Aktif değil", + "lost": "Kayıp", + "nonoptimal": "Optimal seviyede değil", + "poor": "Zayıf" + }, + "remoteaddress": "Uzak adres:", + "remoteaddress_plural": "Uzak adresler:", + "remoteport": "Uzak port:", + "remoteport_plural": "Uzak portlar:", + "resolution": "Çözünürlük:", + "savelogs": "Logları Kaydet", + "status": "Bağlantı:", + "transport": "Transport:", + "transport_plural": "Transportlar:", + "video_ssrc": "Video SSRC:", + "yes": "Evet" + }, + "dateUtils": { + "earlier": "Daha eski", + "today": "Bugün", + "yesterday": "Dün" + }, + "deepLinking": { + "appNotInstalled": "Bu toplantıya katılmak için {{app}} uygulamasına ihtiyacınız var.", + "description": "Hiçbir şey olmadı mı? Toplantınızı {{app}} masaüstü uygulamasında başlatmaya çalıştık. Tekrar deneyin veya {{app}} web uygulamasını açın.", + "descriptionNew": "Hiçbir şey olmadı? Toplantınızı {{app}} masaüstü uygulamasında başlatmayı denedik.

Tekrar deneyebilir veya web üzerinde başlatabilirsiniz.", + "descriptionWithoutWeb": "Hiçbir şey olmadı? Toplantınızı {{app}} masaüstü uygulamasında başlatmayı denedik.", + "downloadApp": "Uygulamayı indir", + "downloadMobileApp": "App Store'dan indirin", + "ifDoNotHaveApp": "Henüz uygulamanız yoksa:", + "ifHaveApp": "Uygulamanız zaten varsa: ", + "joinInApp": "Uygulamayı kullanarak bu toplantıya katıl", + "joinInAppNew": "Uygulamaya katıl", + "joinInBrowser": "Tarayıcıya katıl", + "launchMeetingLabel": "Bu toplantıya nasıl katılmak istersiniz?", + "launchWebButton": "Web'de aç", + "noDesktopApp": "Uygulamanız yok mu?", + "noMobileApp": "Uygulamanız yok mu?", + "or": "VEYA", + "termsAndConditions": "Devam ederek şartlar ve koşullarımızı kabul etmiş olursunuz.", + "title": "Toplantınız {{app}} uygulamasında açılıyor…", + "titleNew": "Toplantınız başlatılıyor…", + "tryAgainButton": "Masaüstünde tekrar deneyin", + "unsupportedBrowser": "Şu an kullandığınız tarayıcıyı desteklemiyoruz." + }, + "defaultLink": "örneğin, {{url}}", + "defaultNickname": "örnek: Jane Pink", + "deviceError": { + "cameraError": "Kameraya erişilemedi", + "cameraPermission": "Kameraya erişim izni alınamadı", + "microphoneError": "Mikrofona erişilemedi", + "microphonePermission": "Mikrofon erişim izni alınamadı" + }, + "deviceSelection": { + "hid": { + "callControl": "Çağrı kontrolü", + "connectedDevices": "Bağlı cihazlar:", + "deleteDevice": "Cihazı sil", + "pairDevice": "Cihazı eşleştir" + }, + "noPermission": "İzin alınamadı", + "previewUnavailable": "Önizleme mevcut değil", + "selectADevice": "Bir cihaz seç", + "testAudio": "Bir test sesi çal" + }, + "dialIn": { + "screenTitle": "Arama özeti" + }, + "dialOut": { + "statusMessage": "Şimdi {{status}}" + }, + "dialog": { + "Back": "Geri", + "Cancel": "İptal", + "IamHost": "Toplantı sahibiyim", + "Ok": "Tamam", + "Remove": "Kaldır", + "Share": "Paylaş", + "Submit": "Gönder", + "WaitForHostMsg": "Toplantı sahibi gelmediğinden toplantı henüz başlamadı. Toplantı sahibi sizseniz, lütfen kimlik doğrulaması yapın. Değilseniz lütfen toplantı sahibinin gelmesini bekleyin.", + "WaitForHostNoAuthMsg": "Toplantı sahibi gelmediğinden toplantı henüz başlamadı. Lütfen bekleyin.", + "WaitingForHostButton": "Toplantı sahibini bekle", + "WaitingForHostTitle": "Toplantı sahibi bekleniyor…", + "Yes": "Evet", + "accessibilityLabel": { + "Cancel": "İptal et (iletişim kutusundan ayrıl)", + "Ok": "Tamam (kaydet ve diyalogdan ayrıl)", + "close": "İletişim kutusunu kapat", + "liveStreaming": "Canlı akış", + "sharingTabs": "Paylaşım seçenekleri" + }, + "add": "Ekle", + "addMeetingNote": "Toplantı notu ekle", + "addOptionalNote": "Not ekle (isteğe bağlı)", + "allow": "İzin ver", + "allowToggleCameraDialog": "{{initiatorName}}'ın kameraya bakma modunu değiştirmesine izin veriyor musunuz?", + "allowToggleCameraTitle": "Kamerayı değiştirmeye izin verilsin mi?", + "alreadySharedVideoMsg": "Başka bir katılımcı zaten bir video paylaşıyor. Bu konferans aynı anda yalnızca bir paylaşılan videoya izin verir.", + "alreadySharedVideoTitle": "Aynı anda yalnızca bir paylaşılan videoya izin verilir.", + "applicationWindow": "Uygulama penceresi", + "authenticationRequired": "Kimlik doğrulaması gerekli", + "cameraConstraintFailedError": "Kameranız gerekli bazı özellikleri karşılayamıyor.", + "cameraNotFoundError": "Kamera bulunamadı.", + "cameraNotSendingData": "Kameranıza erişemiyoruz. Lütfen başka bir uygulamanın bu cihazı kullanıp kullanmadığını kontrol edin, Ayarlar menüsünden başka bir cihaz seçin veya uygulamayı yeniden yüklemeyi deneyin.", + "cameraNotSendingDataTitle": "Kameraya erişilemiyor", + "cameraPermissionDeniedError": "Kamera kullanımına izin vermediniz. Yine de toplantıya katılabilirsiniz, ancak diğerleri sizi göremez. Bunu düzeltmek için kamera butonunu kullanın.", + "cameraTimeoutError": "Video kaynağı başlatılamadı. Zaman aşımı!", + "cameraUnknownError": "Bilinmeyen bir nedenden dolayı kamera kullanılamıyor.", + "cameraUnsupportedResolutionError": "Kameranız gerekli video çözünürlüğünü desteklemiyor.", + "close": "Kapat", + "conferenceDisconnectMsg": "Ağ bağlantınızı kontrol etmek isteyebilirsiniz. {{seconds}} saniye içinde yeniden bağlanıyor…", + "conferenceDisconnectTitle": "Bağlantınız kesildi.", + "conferenceReloadMsg": "Bunu düzeltmeye çalışıyoruz. {{seconds}} saniye içinde yeniden bağlanıyor…", + "conferenceReloadTitle": "Ne yazık ki bir şeyler ters gitti.", + "confirm": "Onayla", + "confirmNo": "Hayır", + "confirmYes": "Evet", + "connectError": "Hata! Bir şeyler ters gitti ve toplantıya bağlanamadık.", + "connectErrorWithMsg": "Hata! Bir şeyler ters gitti ve konferansa bağlanamadık: {{msg}}", + "connecting": "Bağlanıyor", + "contactSupport": "Destek ekibine erişin", + "copied": "Kopyalandı", + "copy": "Kopyala", + "demoteParticipantDialog": "Bu katılımcıyı ziyaretçiye taşımak istediğinizden emin misiniz?", + "demoteParticipantTitle": "Ziyaretçiye taşı", + "dismiss": "Son ver", + "displayNameRequired": "Merhaba, görünmesini istediğin ismin nedir?", + "done": "Bitti", + "e2eeDescription": "Uçtan-uca şifreleme şu an deneyseldir. Lütfen uçtan-uca şifrelemeyi açmanın, telefon katılımı gibi sunucu tarafında sağlanan hizmetleri devredışı bırakabileceğini unutmayın. Ayrıca toplantının yalnızca eklenebilir akışları destekleyen tarayıcılardan katılan kişiler için çalışacağını unutmayın.", + "e2eeDisabledDueToMaxModeDescription": "Yüksek katılımcı sayısından dolayı bu konferansta Uçtan-Uca şifreleme etkinleştirilemiyor.", + "e2eeLabel": "Uçtan-uca şifrelemeyi etkinleştir", + "e2eeWarning": "UYARI: Bu toplantıdaki kullanıcıların bazıları uçtan-uca şifrelemeyi desteklemiyor gibi görünüyor. Eğer etkinleştirirseniz sizi duyamaz ve göremezler.", + "e2eeWillDisableDueToMaxModeDescription": "UYARI: Konferansa daha fazla katılımcı katılırsa Uçtan-Uca Şifreleme otomatik olarak devre dışı bırakılır.", + "embedMeeting": "Toplantıyı yerleştir", + "enterDisplayName": "Lütfen adınızı buraya girin…", + "error": "Hata", + "errorRoomCreationRestriction": "Çok hızlı katılmaya çalıştınız, lütfen biraz sonra tekrar gelin.", + "gracefulShutdown": "Hizmetimiz şu anda bakım için devre dışı. Lütfen daha sonra tekrar deneyiniz.", + "grantModeratorDialog": "{{participantName}} için moderatör hakları vermek istediğinize emin misiniz?", + "grantModeratorTitle": "Moderatör hakları ver", + "hide": "Gizle", + "hideShareAudioHelper": "Bu iletişim kutusunu bir daha gösterme", + "incorrectPassword": "Kullanıcı adı veya parola hatalı", + "incorrectRoomLockPassword": "Yanlış paralo", + "internalError": "Hata! Bir şeyler ters gitti. Şu hata oluştu: {{error}}", + "internalErrorTitle": "İç hata", + "kickMessage": "Daha fazla ayrıntı için {{participantDisplayName}} ile iletişime geçebilirsiniz.", + "kickParticipantButton": "Çıkar", + "kickParticipantDialog": "Bu katılımcıyı çıkarmak istediğinizden emin misiniz?", + "kickParticipantTitle": "Bu katılımcı çıkarılsın mı?", + "kickTitle": "Ah! {{participantDisplayName}} sizi toplantıdan çıkardı.", + "linkMeeting": "Toplantıyı Linkle", + "linkMeetingTitle": "Salesforce'a toplantıyı linkle", + "liveStreaming": "Canlı akış", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Kayıt etkinken mümkün değil", + "localUserControls": "Yerel kullanıcı kontrolleri", + "lockMessage": "Toplantı kilitlenemedi.", + "lockRoom": "Toplantı parolası ekle", + "lockTitle": "Kilitlenemedi", + "login": "Giriş", + "loginQuestion": "Oturum açıp konferanstan ayrılmak istediğinizden emin misiniz?", + "logoutQuestion": "Oturumu kapatmak ve toplantıyı durdurmak istediğinizden emin misiniz?", + "logoutTitle": "Oturumu kapat", + "maxUsersLimitReached": "Maksimum katılımcı sayısı sınırına ulaşıldı. Toplantı dolu. Lütfen toplantı sahibiyle iletişime geçin veya daha sonra tekrar deneyin!", + "maxUsersLimitReachedTitle": "Maksimum katılımcı sınırına ulaşıldı", + "micConstraintFailedError": "Mikrofonunuz gerekli özelliklerin bazılarını karşılayamıyor.", + "micNotFoundError": "Mikrofon bulunamadı.", + "micNotSendingData": "Mikrofonunuza erişemiyoruz. Lütfen Ayarlar menüsünden başka bir cihaz seçin veya uygulamayı yeniden yüklemeyi deneyin.", + "micNotSendingDataTitle": "Mikrofona erişilemiyor.", + "micPermissionDeniedError": "Mikrofon kullanımına izin vermediniz. Yine de toplantıya katılabilirsiniz, ancak diğerleri sizi duyamaz. Bunu düzeltmek için mikrofon butonunu kullanın.", + "micTimeoutError": "Ses kaynağı başlatılamadı. Zaman aşımı!", + "micUnknownError": "Bilinmeyen bir nedenden dolayı mikrofon kullanılamıyor.", + "moderationAudioLabel": "Katılımcıların kendi seslerini açmalarına izin ver", + "moderationVideoLabel": "Katılımcıların kendi videolarını başlatmalarına izin ver", + "muteEveryoneDialog": "Herkesi sessize almak istediğinizden emin misiniz? Onları sessizden çıkaramayacaksınız ancak onlar kendilerini her zaman sessizden çıkarabilirler.", + "muteEveryoneDialogModerationOn": "Katılımcılar istedikleri zaman konuşma talebi gönderebilirler.", + "muteEveryoneElseDialog": "Sessize alındığında, mikrofonlarını sessizden çıkaramayacaksınız ancak onlar diledikleri zaman kendilerini sessizden çıkarabilirler.", + "muteEveryoneElseTitle": "{{whom}} hariç herkesi sessize al?", + "muteEveryoneElsesVideoDialog": "Kameraları devre dışı bırakıldığında geri açamayacaksınız, ancak onlar kameralarını her zaman açabilirler.", + "muteEveryoneElsesVideoTitle": "{{whom}} hariç herkesin kamerasını devre dışı bırak?", + "muteEveryoneSelf": "Kendiniz", + "muteEveryoneStartMuted": "Şu andan itibaren herkes sessizde başlayacak", + "muteEveryoneTitle": "Herkesi sessize al?", + "muteEveryonesVideoDialog": "Herkesin kamerasını devre dışı bırakmak istediğinizden emin misiniz? Kameralar devre dışı bırakıldığında geri açamayacaksınız, ancak onlar kameralarını her zaman açabilirler.", + "muteEveryonesVideoDialogModerationOn": "Katılımcılar istedikleri zaman videolarını açmak için istek gönderebilirler.", + "muteEveryonesVideoDialogOk": "Kameraları kapat", + "muteEveryonesVideoTitle": "Herkesin kamerasını devre dışı bırak?", + "muteParticipantBody": "Sesi açamazsınız, ancak istedikleri zaman kendileri seslerini açabilirler.", + "muteParticipantButton": "Sessize al", + "muteParticipantsVideoBody": "Kamerayı tekrar açamazsınız ancak istedikleri zaman tekrar açabilirler.", + "muteParticipantsVideoBodyModerationOn": "Ne sen kamerayı tekrar açabileceksin, ne de onlar.", + "muteParticipantsVideoButton": "Kamerayı durdur", + "muteParticipantsVideoDialog": "Bu katılımcının kamerasını kapatmak istediğinize emin misiniz? Kamerayı tekrar açamazsınız ancak istedikleri zaman tekrar açabilirler.", + "muteParticipantsVideoDialogModerationOn": "Bu katılımcının kamerasını kapatmak istediğinizden emin misiniz? Kamerayı tekrar açamayacaksınız ve onlar da açamayacak.", + "muteParticipantsVideoTitle": "Bu katılımcı için kamerayı durdur?", + "noDropboxToken": "Dropbox anahtarı geçerli değil", + "password": "Parola", + "passwordLabel": "Toplantı bir katılımcı tarafından kilitlendi. Lütfen giriş yapmak için $t(lockRoomPassword) giriniz.", + "passwordNotSupported": "Toplantı parolası ayarlama desteklenmiyor.", + "passwordNotSupportedTitle": "Parola desteklenmiyor", + "passwordRequired": "Parola gerekli", + "permissionCameraRequiredError": "Videolu konferanslara katılmak için kamera izni gereklidir. Lütfen ayarlardan izin verin", + "permissionErrorTitle": "İzin gerekli", + "permissionMicRequiredError": "Konferanslara sesli olarak katılmak için lütfen mikrofon izni gereklidir. Lütfen ayarlardan izin verin", + "readMore": "Daha fazla", + "recentlyUsedObjects": "Son zamanlarda kullandığınız objeler", + "recording": "Kaydediliyor", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Canlı akış etkinken mümkün değil…", + "rejoinNow": "Tekrar katıl", + "remoteControlAllowedMessage": "{{user}} uzaktan kontrol isteğinizi kabul etti!", + "remoteControlDeniedMessage": "{{user}} uzaktan kontrol isteğinizi reddetti!", + "remoteControlErrorMessage": "{{user}} katılımcısından uzaktan kontrol izinleri istenmeye çalışılırken bir hata oluştu!", + "remoteControlRequestMessage": "{{user}} katılımcısının masaüstünüzü uzaktan kontrol etmesine izin veriyor musunuz?", + "remoteControlShareScreenWarning": "\"Allow\" butonuna bastığınızda ekranınızı paylaşacağınızı unutmayın!", + "remoteControlStopMessage": "Uzaktan kontrol oturumu sona erdi!", + "remoteControlTitle": "Uzak masaüstü kontrolü", + "remoteUserControls": "{{username}} için uzaktan kullanıcı kontrolleri", + "removePassword": "Parolayı kaldır", + "removeSharedVideoMsg": "Paylaşılan videonuzu kaldırmak istediğinizden emin misiniz?", + "removeSharedVideoTitle": "Paylaşılan videoyu kaldır", + "renameBreakoutRoomLabel": "Oda adı", + "renameBreakoutRoomTitle": "Alt odasını yeniden adlandırın", + "reservationError": "Rezervasyon sistemi hatası", + "reservationErrorMsg": "Hata kodu: {{code}}, mesaj: {{msg}}", + "retry": "Yeniden Dene", + "screenSharingAudio": "Sesi paylaş", + "screenSharingFailed": "Hop! Bir şeyler ters gitti, ekran paylaşımınızı başlatamıyoruz!", + "screenSharingFailedTitle": "Ekran paylaşımı başarısız!", + "screenSharingPermissionDeniedError": "Hata! Ekran paylaşma uzantısı izinlerinizle ilgili bir sorun oluştu. Lütfen yeniden yükleyin ve tekrar deneyin.", + "searchInSalesforce": "Salesforce'ta ara", + "searchResults": "Arama sonuçları({{count}})", + "searchResultsDetailsError": "Veriler getirilirken bir şeyler yanlış gitti.", + "searchResultsError": "Sahip verileri getirilirken bir şeyler yanlış gitti.", + "searchResultsNotFound": "Arama sonucunda bir şey bulunamadı.", + "searchResultsTryAgain": "Alternatif aramaları deneyiniz.", + "sendPrivateMessage": "Kısa süre önce özel bir mesaj aldınız. Buna özel olarak cevap vermek ister misiniz yoksa mesajınızı gruba göndermek mi istiyorsunuz?", + "sendPrivateMessageCancel": "Gruba gönder", + "sendPrivateMessageOk": "Özel olarak gönder", + "sendPrivateMessageTitle": "Özel olarak gönderilsin mi?", + "serviceUnavailable": "Hizmet kullanılamıyor", + "sessTerminated": "Arama sonlandırıldı", + "sessTerminatedReason": "Toplantı sonlandırıldı", + "sessionRestarted": "Çağrı köprü tarafından yeniden başlatıldı", + "shareAudio": "Sesi paylaş", + "shareAudioAltText": "İstediğiniz içeriği paylaşmak için \"Tarayıcı Sekmesi\"ne gidin, içeriği seçin, \"sesi paylaş\" onay işaretini etkinleştirin ve ardından \"paylaş\" düğmesini tıklayın", + "shareAudioTitle": "Ses nasıl paylaşılır", + "shareAudioWarningD1": "Sesinizi paylaşmadan önce ekran paylaşımını durdurmanız gerekiyor.", + "shareAudioWarningD2": "Ekran paylaşımınızı yeniden başlatmanız ve \"sesi paylaş\" seçeneğini işaretlemeniz gerekiyor.", + "shareAudioWarningH1": "Eğer sadece ses paylaşmak istiyorsanız:", + "shareAudioWarningTitle": "Ses paylaşımından önce ekran paylaşımını kapatmanız gerekmektedir", + "shareMediaWarningGenericH2": "Ekranınızı ve sesinizi paylaşmak istiyorsanız", + "shareScreenWarningD1": "Ekranınızı paylaşmadan önce ses paylaşımını durdurmanız gerekiyor.", + "shareScreenWarningD2": "Ses paylaşımını durdurmanız, ekran paylaşımını başlatmanız ve \"sesi paylaş\" seçeneğini işaretlemeniz gerekiyor.", + "shareScreenWarningH1": "Sadece ekranınızı paylaşmak istiyorsanız:", + "shareScreenWarningTitle": "Ekranınızı paylaşmadan önce ses paylaşımını durdurmanız gerekiyor", + "shareVideoConfirmPlay": "Harici bir web sitesi açmak üzeresiniz. Devam etmek istiyor musunuz?", + "shareVideoConfirmPlayTitle": "{{name}} sizinle bir video paylaştı.", + "shareVideoLinkError": "Lütfen doğru bir bağlantısı sağlayın.", + "shareVideoLinkStopped": "{{name}} adlı kişinin videosu durduruldu.", + "shareVideoTitle": "Bir video paylaş", + "shareYourScreen": "Ekranınızı paylaşın", + "shareYourScreenDisabled": "Ekran paylaşımı devre dışı.", + "sharedVideoDialogError": "Hata: Geçersiz veya yasak URL", + "sharedVideoLinkPlaceholder": "YouTube bağlantısı veya doğrudan video bağlantısı", + "show": "Göster", + "start": "Başlat", + "startLiveStreaming": "Canlı akışı başlat", + "startRecording": "Kaydı başlat", + "startRemoteControlErrorMessage": "Uzaktan kontrol oturumunu başlatmaya çalışırken bir hata oluştu!", + "stopLiveStreaming": "Canlı akışı durdur", + "stopRecording": "Kaydı durdur", + "stopRecordingWarning": "Kaydı durdurmak istediğinizden emin misiniz?", + "stopStreamingWarning": "Canlı akışı durdurmak istediğinizden emin misiniz?", + "streamKey": "Canlı akış anahtarı", + "thankYou": "{{appName}} kullandığınız için teşekkürler!", + "token": "token", + "tokenAuthFailed": "Üzgünüz, bu görüşmeye katılmanıza izin verilmiyor.", + "tokenAuthFailedReason": { + "audInvalid": "Geçersiz `aud` değeri. 'jitsi' olmalı.", + "contextNotFound": "Yükte `context` nesnesi eksik.", + "expInvalid": "Geçersiz `exp` değeri.", + "featureInvalid": "Geçersiz özellik: {{feature}}, büyük olasılıkla henüz uygulanmadı.", + "featureValueInvalid": "Özellik için geçersiz değer: {{feature}}.", + "featuresNotFound": "`features` nesnesi yükte eksik.", + "headerNotFound": "Başlık eksik.", + "issInvalid": "Geçersiz `iss` değeri. `chat` olmalıdır.", + "kidMismatch": "Anahtar Kimliği (kid) alt öğeyle eşleşmiyor.", + "kidNotFound": "Eksik Anahtar Kimliği (kid).", + "nbfFuture": "`nbf` değeri gelecektedir.", + "nbfInvalid": "Geçersiz `nbf` değeri.", + "payloadNotFound": "Yük eksik.", + "tokenExpired": "Token'ın süresi doldu." + }, + "tokenAuthFailedTitle": "Kimlik doğrulama başarısız", + "tokenAuthFailedWithReasons": "Üzgünüz, bu görüşmeye katılmanıza izin verilmiyor. Olası nedenler: {{reason}}", + "tokenAuthUnsupported": "Token URL'si desteklenmiyor.", + "transcribing": "Deşifre ediliyor", + "unlockRoom": "Toplantı parolasını kaldır", + "user": "Kullanıcı", + "userIdentifier": "Kullanıcı tanımlayıcı", + "userPassword": "Kullancı parolası", + "verifyParticipantConfirm": "Eşleşiyorlar", + "verifyParticipantDismiss": "Eşleşmiyorlar", + "verifyParticipantQuestion": "DENEYSEL: {{participantName}} adlı katılımcıya aynı içeriği aynı sırayla görüp görmediklerini sorun.", + "verifyParticipantTitle": "Kullanıcı doğrulama", + "videoLink": "Video bağlantısı", + "viewUpgradeOptions": "Yükseltme seçeneklerini görüntüle", + "viewUpgradeOptionsContent": "Kayıt, çeviri yazılar, RTMP Akışı ve daha fazlası gibi premium özelliklere sınırsız erişim elde etmek için planınızı yükseltmeniz gerekir.", + "viewUpgradeOptionsTitle": "Premium bir özellik keşfettiniz!", + "whiteboardLimitContent": "Üzgünüz, eşzamanlı beyaz tahta kullanıcılarının sınırına ulaşıldı.", + "whiteboardLimitReference": "Daha fazla bilgi için lütfen şu adresi ziyaret edin", + "whiteboardLimitReferenceUrl": "Web Sitemiz", + "whiteboardLimitTitle": "Beyaz tahta kullanımı kısıtlandı", + "yourEntireScreen": "Tüm ekranınız" + }, + "documentSharing": { + "title": "Paylaşılan Döküman" + }, + "e2ee": { + "labelToolTip": "Bu görüşmedeki ses ve video iletişimi uçtan uca şifrelenmiştir." + }, + "embedMeeting": { + "title": "Bu toplantıyı yerleştir" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Seçiminiz: {{rating}}" + }, + "average": "Orta", + "bad": "Kötü", + "detailsLabel": "Bize daha fazla bilgi verin.", + "good": "İyi", + "rateExperience": "Toplantı deneyiminizi derecelendirin", + "star": "Yıldız", + "veryBad": "Çok kötü", + "veryGood": "Çok iyi" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Video küçük resimleri" + } + }, + "giphy": { + "noResults": "Sonuç yok :(", + "search": "GIPHY ara" + }, + "incomingCall": { + "answer": "Cevapla", + "audioCallTitle": "Gelen sesli arama", + "decline": "Reddet", + "productLabel": "Jitsi Meet'den", + "videoCallTitle": "Gelen görüntülü arama" + }, + "info": { + "accessibilityLabel": "Bilgiyi göster", + "addPassword": "Parola ekle", + "cancelPassword": "Parolayı iptal et", + "conferenceURL": "Bağlantı:", + "copyNumber": "Numarayı kopyala", + "country": "Ülke", + "dialANumber": "Toplantınıza katılmak için bu numaralardan birini çevirin ve ardından kodu girin.", + "dialInConferenceID": "KOD:", + "dialInNotSupported": "Maalesef arama şu anda desteklenmiyor.", + "dialInNumber": "Arama:", + "dialInSummaryError": "Arama bilgisi getirilirken hata oluştu. Lütfen daha sonra tekrar deneyin.", + "dialInTollFree": "Ücretsiz", + "genericError": "Ah! Bir şeyler ters gitti.", + "inviteLiveStream": "Bu toplantının canlı akışını görüntülemek için şu bağlantıyı tıklayın: {{url}}", + "invitePhone": "Tek dokunuşla sesli arama: {{number}},,{{conferenceID}}#", + "invitePhoneAlternatives": "Farklı bir arama numarası mı arıyorsunuz?\nToplantı arama numaralarına bakın: {{url}}\n\n\nAyrıca bir oda telefonundan arama yapıyorsanız, sese bağlanmadan katılın: {{silentUrl}}", + "inviteSipEndpoint": "SIP adresine katılmak için lütfen bunu girin: {{sipUri}}", + "inviteTextiOSInviteUrl": "Katılmak için linke tıklayınız: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Oda telefonundan bağlanıyorsanız, sese bağlanmadan katılmak için şu bağlantıyı kullanın: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} toplantıya davet ediliyor.", + "inviteTextiOSPhone": "Telefonla katılmak için şu numarayı kullanın: {{number}},{{conferenceID}}#. Farklı bir numara arıyorsanız, tam liste bu: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Bir toplantıya katılmaya davet edildiniz.", + "inviteURLFirstPartPersonal": "{{name}} sizi bir toplantıya davet ediyor.\n", + "inviteURLSecondPart": "\nToplantıya katıl:\n{{url}}\n", + "label": "Toplantı bilgileri", + "liveStreamURL": "Canlı akış:", + "moreNumbers": "Daha fazla numara", + "noNumbers": "Arama numarası yok", + "noPassword": "Yok", + "noRoom": "Aranacak oda belirtilmedi.", + "noWhiteboard": "Beyaz tahta yüklenemedi.", + "numbers": "Arama Numaraları", + "password": "Parola:", + "reachedLimit": "Plan limitlerine ulaştınız.", + "sip": "SIP adresi", + "sipAudioOnly": "Yalnızca SIP ses adresi", + "title": "Paylaş", + "tooltip": "Bu toplantı için bağlantıyı ve arama bilgilerini paylaşın", + "upgradeOptions": "Lütfen yükseltme seçeneklerini kontrol ediniz.", + "whiteboardError": "Beyaz tahta yüklenirken hata oluştu. Lütfen daha sonra tekrar deneyin." + }, + "inlineDialogFailure": { + "msg": "Biraz tökezledik.", + "retry": "Tekrar dene", + "support": "Destek", + "supportMsg": "Bu olmaya devam ederse, ulaşın." + }, + "inviteDialog": { + "alertText": "Bazı katılımcılar davet edilemedi.", + "header": "Davet et", + "searchCallOnlyPlaceholder": "Telefon numarasını girin", + "searchPeopleOnlyPlaceholder": "Katılımcı ara", + "searchPlaceholder": "Katılımcı veya telefon numarası", + "send": "Gönder" + }, + "jitsiHome": "{{logo}} Logo, Anasayfaya bağlantı", + "keyboardShortcuts": { + "focusLocal": "Videoya odaklan", + "focusRemote": "Başka bir kişinin videosuna odaklan", + "fullScreen": "Tam ekran görüntüle veya çık", + "giphyMenu": "GIPHY menü geçişi", + "keyboardShortcuts": "Klavye kısayolları", + "localRecording": "Kayıt denetimlerini göster veya gizle", + "mute": "Mikrofonu aç veya kapat", + "pushToTalk": "Konuşmak için bas", + "raiseHand": "Elinizi kaldırın veya indirin", + "showSpeakerStats": "Konuşmacı istatistiklerini göster", + "toggleChat": "Mesajlaşmayı aç veya kapat", + "toggleFilmstrip": "Video önizlemelerini göster veya gizle", + "toggleParticipantsPane": "Katılımcılar bölmesini göster veya gizle", + "toggleScreensharing": "Kamera ve ekran paylaşımı arasında geçiş yap", + "toggleShortcuts": "Klavye kısayollarını göster veya gizle", + "videoMute": "Kamerayı aç veya kapat" + }, + "largeVideo": { + "screenIsShared": "Ekranınızı paylaşıyorsunuz", + "showMeWhatImSharing": "Ne paylaştığımı bana göster" + }, + "liveStreaming": { + "busy": "Akış kaynaklarını serbest bırakmaya çalışıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.", + "busyTitle": "Tüm yayıncılar şu anda meşgul", + "changeSignIn": "Hesap değiştir.", + "choose": "Canlı bir akış seçin", + "chooseCTA": "Bir akış seçeneği belirleyin. Şu anda {{email}} olarak giriş yaptınız.", + "enterStreamKey": "Youtube canlı akış anahtarınızı buraya girin.", + "error": "Canlı Akış başarısız oldu. Lütfen tekrar deneyin.", + "errorAPI": "Youtube yayınlarınıza erişirken bir hata oluştu. Lütfen tekrar giriş yapmayı deneyin.", + "errorLiveStreamNotEnabled": "{{email}} için Canlı Akış etkin değil. Lütfen canlı akışı etkinleştirin veya canlı akışın etkin olduğu bir hesaba giriş yapın.", + "expandedOff": "Canlı akış durdu", + "expandedOn": "Toplantı şu anda Youtube'da yayınlanıyor.", + "expandedPending": "Canlı akış başlatılıyor…", + "failedToStart": "Canlı Akış başlatılamadı", + "getStreamKeyManually": "Canlı akış alınamadı. Canlı akış anahtarınızı Youtube'dan almayı deneyin.", + "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ı", + "onBy": "{{name}} canlı akışı başlattı", + "pending": "Canlı Akış başlatılıyor…", + "serviceName": "Canlı Akış hizmeti", + "sessionAlreadyActive": "Bu oturum halihazırda kaydediliyor veya canlı yayınlanıyor.", + "signIn": "Google ile giriş yap", + "signInCTA": "Oturum açın veya Youtube'dan canlı akış anahtarınızı girin.", + "signOut": "Çıkış yap", + "signedInAs": "Şu anda oturum açmış durumdasınız:", + "start": "Bir canlı akış başlat", + "streamIdHelp": "Bu nedir?", + "title": "Canlı akış", + "unavailableTitle": "Canlı Akış kullanılamıyor", + "youtubeTerms": "YouTube hizmet şartları" + }, + "lobby": { + "backToKnockModeButton": "Parola yok, bunun yerine katılmayı isteyin", + "chat": "Sohbet et", + "dialogTitle": "Lobi modu", + "disableDialogContent": "Lobi modu şu anda etkin. Bu özellik, istenmeyen katılımcıların toplantınıza katılamamasını sağlar. Devre dışı bırakmak istiyor musunuz?", + "disableDialogSubmit": "Devre Dışı", + "emailField": "E-posta adresinizi giriniz", + "enableDialogPasswordField": "Parola belirleyin (isteğe bağlı)", + "enableDialogSubmit": "Etkin", + "enableDialogText": "Lobi modu, toplantınızı yalnızca kişilerin bir moderatör tarafından resmi olarak onaylandıktan sonra girmelerine izin vererek korumanıza izin verir.", + "enterPasswordButton": "Toplantı parolasını girin", + "enterPasswordTitle": "Toplantıya katılmak için parola girin", + "errorMissingPassword": "Lütfen toplantı parolasını girin", + "invalidPassword": "Geçersiz parola", + "joinRejectedMessage": "Katılma isteğiniz bir moderatör tarafından reddedildi.", + "joinRejectedTitle": "Katılma isteğiniz reddedildi", + "joinTitle": "Toplantıya katıl", + "joinWithPasswordMessage": "Parola ile katılmaya çalışıyorsunuz lütfen bekleyin…", + "joiningMessage": "Birisi isteğinizi kabul eder etmez toplantıya katılacaksınız", + "joiningTitle": "Toplantıya katılma isteniyor…", + "joiningWithPasswordTitle": "Parola ile katılıyor…", + "knockButton": "Katılmak için sor", + "knockTitle": "Birisi toplantıya katılmak istiyor", + "knockingParticipantList": "Kapıyı çalan katılımcı listesi", + "lobbyChatStartedNotification": "{{moderator}} {{attendee}} adlı kişiyle lobi mesajlaşması başlattı", + "lobbyChatStartedTitle": "{{moderator}} sizinle lobi mesajlaşması başlattı", + "lobbyClosed": "Lobi odası kapatıldı.", + "nameField": "Adınızı giriniz", + "notificationLobbyAccessDenied": "{{targetParticipantName}} adlı katılımcı {{originParticipantName}} tarafından reddedildi", + "notificationLobbyAccessGranted": "{{targetParticipantName}} adlı katılımcı {{originParticipantName}} tarafından kabul edildi", + "notificationLobbyDisabled": "Lobi {{originParticipantName}} tarafından devre dışı bırakıldı", + "notificationLobbyEnabled": "Lobi {{originParticipantName}} tarafından etkinleştirildi", + "notificationTitle": "Lobi", + "passwordJoinButton": "Katıl", + "title": "Lobi", + "toggleLabel": "Lobiyi etkinleştir" + }, + "localRecording": { + "clientState": { + "off": "Kapalı", + "on": "Açık", + "unknown": "Bilinmiyor" + }, + "dialogTitle": "Kayıt Kontrolleri", + "duration": "Süre", + "durationNA": "Kullanılamaz", + "encoding": "Kodlama", + "label": "KK", + "labelToolTip": "Kayıt meşgul", + "localRecording": "Kayıt", + "me": "Ben", + "messages": { + "engaged": "Kayıt meşgul", + "finished": "{{token}} kayıt oturumu tamamlandı. Lütfen kaydedilen dosyayı yöneticiye gönderin.", + "finishedModerator": "{{token}} kayıt oturumu tamamlandı. Parça kaydedildi. Lütfen diğer katılımcılardan kayıtlarını göndermelerini isteyin.", + "notModerator": "Yönetici değilsiniz. Kaydı başlatamaz veya durduramazsınız." + }, + "moderator": "Yönetici", + "no": "Hayır", + "participant": "Katılımcı", + "participantStats": "Katılımcı İstatistikleri", + "selectTabTitle": "🎥 Lütfen kayıt için bu sekmeyi seçin", + "sessionToken": "Oturum Tokeni", + "start": "Kaydı başlat", + "stop": "Kaydı durdur", + "stopping": "Kayıt Durduruluyor", + "wait": "Kaydınız kaydedilirken lütfen bekleyin", + "yes": "Evet" + }, + "lockRoomPassword": "Parola", + "lockRoomPasswordUppercase": "Parola", + "lonelyMeetingExperience": { + "button": "Birilerini davet et", + "youAreAlone": "Toplantıdaki tek kişisiniz" + }, + "me": "Ben", + "notify": { + "OldElectronAPPTitle": "Güvenlik açığı!", + "allowAction": "İzin ver", + "allowedUnmute": "Mikrofonunuzu sessizden çıkarabilir, kameranızı başlatabilir veya ekranınızı paylaşabilirsiniz.", + "audioUnmuteBlockedDescription": "Sistem sınırları nedeniyle mikrofon sesini açma işlemi geçici olarak engellendi", + "audioUnmuteBlockedTitle": "Mikrofon sesini açma işlemi engellendi!", + "chatMessages": "Sohbet mesajları", + "connectedOneMember": "{{name}} toplantıya katıldı", + "connectedThreePlusMembers": "{{name}} ve {{count}} kişi daha toplantıya katıldı", + "connectedTwoMembers": "{{first}} ve {{second}} toplantıya katıldı", + "dataChannelClosed": "Video kalitesi bozuldu", + "dataChannelClosedDescription": "Köprü kanalının bağlantısı kesildi ve bu nedenle video kalitesi en düşük ayarla sınırlandı.", + "dataChannelClosedDescriptionWithAudio": "Köprü kanalı kapalı olduğu için ses ve video kesintileri yaşanabilir.", + "dataChannelClosedWithAudio": "Ses ve video kalitesi etkilenebilir.", + "disabledIframe": "Yerleştirme yalnızca demo amaçlı olduğundan bu çağrının bağlantısı {{timeout}} dakika içinde kesilecek.", + "disabledIframeSecondary": "{{domain}} alanının yerleştirilmesi yalnızca demo amaçlı olduğundan bu çağrının bağlantısı {{timeout}} dakika içinde kesilecektir. Üretim yerleştirme için lütfen Hizmet olarak Jitsi'yi kullanın!", + "disconnected": "Bağlantı kesildi", + "displayNotifications": "Bildirimleri görüntüle", + "dontRemindMe": "Bana hatırlatma", + "focus": "Toplantı odağı", + "focusFail": "{{component}} uygun değil - {{ms}} saniye içinde tekrar deneyin", + "gifsMenu": "GIPHY", + "groupTitle": "Bildirimler", + "hostAskedUnmute": "Moderatör konuşmanı istiyor", + "invitedOneMember": "{{name}} davet edildi", + "invitedThreePlusMembers": "{{name}} ve {{count}} kişi daha davet edildi", + "invitedTwoMembers": "{{first}} ve {{second}} davet edildi", + "joinMeeting": "Katıl", + "kickParticipant": "{{kicked}} kişisi {{kicker}} tarafından çıkarıldı", + "leftOneMember": "{{name}} toplantıdan ayrıldı", + "leftThreePlusMembers": "{{name}} ve diğerleri toplantıdan ayrıldı", + "leftTwoMembers": "{{first}} ve {{second}} toplantıdan ayrıldı", + "linkToSalesforce": "Salesforce'a linkle", + "linkToSalesforceDescription": "Toplantı özetini bir Salesforce nesnesine bağlayabilirsiniz", + "linkToSalesforceError": "Toplantı Salesforce'a bağlanamadı", + "linkToSalesforceKey": "Bu toplantıyı bağla", + "linkToSalesforceProgress": "Toplantı Salesforce'a bağlanıyor…", + "linkToSalesforceSuccess": "Toplantı Salesforce'a bağlandı", + "localRecordingStarted": "{{name}} lokal kayıt başlattı", + "localRecordingStopped": "{{name}} lokal kaydı durdurdu", + "me": "Ben", + "moderationInEffectCSDescription": "Ekranınızı paylaşmak isterseniz lütfen el kaldırın.", + "moderationInEffectCSTitle": "Ekran paylaşımı moderatör tarafından bloklandı", + "moderationInEffectDescription": "Konuşmak isterseniz lütfen el kaldırın.", + "moderationInEffectTitle": "Mikrofonunuz moderatör tarafından sessize alındı", + "moderationInEffectVideoDescription": "Kameranızı başlatmak isterseniz lütfen el kaldırın.", + "moderationInEffectVideoTitle": "Kameranız moderatör tarafından bloklandı", + "moderationRequestFromModerator": "Ev sahibi sesi açmanızı istiyor", + "moderationRequestFromParticipant": "Konuşmak istiyor", + "moderationStartedTitle": "Denetim başlatıldı", + "moderationStoppedTitle": "Denetim durduruldu", + "moderationToggleDescription": "{{participantDisplayName}} tarafından", + "moderator": "Yönetici hakları alındı!", + "muted": "Görüşmeye sesiniz kapalı olarak başladınız.", + "mutedRemotelyDescription": "Konuşmaya hazır olduğun zaman, Kendi mikrofonunu açabilirsin. Görüşmeden gürültüyü uzak tutmak için kendini tekrar sessize almalısın.", + "mutedRemotelyTitle": "{{participantDisplayName}} tarafından sessize alındınız!", + "mutedTitle": "Sesiniz kapalı!", + "newDeviceAction": "Kullan", + "newDeviceAudioTitle": "Yeni ses aygıtı algılandı", + "newDeviceCameraTitle": "Yeni kamera algılandı", + "nextToSpeak": "Sırada konuşacak kişi sizsiniz", + "noiseSuppressionDesktopAudioDescription": "Masaüstü sesi paylaşılırken gürültü bastırma etkinleştirilemez, lütfen devre dışı bırakın ve tekrar deneyin.", + "noiseSuppressionFailedTitle": "Gürültü bastırma başlatılamadı", + "noiseSuppressionStereoDescription": "Stereo ses gürültü bastırma şu anda desteklenmemektedir.", + "oldElectronClientDescription1": "Güvenlik açıkları bilinen Jitsi Meet istemcisinin eski bir sürümünü kullanıyor görünüyorsunuz. Lütfen güncellediğinizden emin olun.", + "oldElectronClientDescription2": "Son yapı", + "oldElectronClientDescription3": " Şimdi!", + "participantWantsToJoin": "toplantıya katılmak istiyor", + "participantsWantToJoin": "toplantıya katılmak istiyor", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) başka bir katılımcı tarafından kaldırıldı", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) başka bir katılımcı tarafından ayarlandı", + "raiseHandAction": "El kaldır", + "raisedHand": "{{name}} söz hakkı istiyor.", + "raisedHands": "{{participantName}} ve {{raisedHands}}'ten daha fazla kişi", + "reactionSounds": "Sesleri devre dışı bırak", + "reactionSoundsForAll": "Herkes için sesleri devre dışı bırak", + "screenShareNoAudio": " Pencere seçim ekranında sesi paylaş kutusu işaretlenmedi.", + "screenShareNoAudioTitle": "Sistem sesi paylaşılamadı!", + "screenSharingAudioOnlyDescription": "Ekranınızı paylaşarak \"En iyi performans\" modunu etkilediğinizi ve daha fazla bant genişliği kullanacağınızı lütfen unutmayın.", + "screenSharingAudioOnlyTitle": "\"En iyi performans\" modu", + "selfViewTitle": "Kendi kendine görünümü her zaman ayarlardan gizleyebilirsiniz", + "somebody": "Birisi", + "startSilentDescription": "Ses çıkışını açtıktan sonra tekrar bağlanın", + "startSilentTitle": "Ses çıkışı olmadan bağlandınız", + "suboptimalBrowserWarning": "Toplantı deneyiminizin burada çok iyi olmayacağından korkuyoruz. Bunu iyileştirmenin yollarını arıyoruz, ancak o zamana kadar lütfen şunlardan birini deneyin: desteklenen tarayıcılar.", + "suboptimalExperienceTitle": "Tarayıcı Uyarısı", + "suggestRecordingAction": "Başla", + "suggestRecordingDescription": "Kaydı başlatmak ister misiniz?", + "suggestRecordingTitle": "Bu toplantıyı kaydet", + "unmute": "Sessizden çıkar", + "videoMutedRemotelyDescription": "Her zaman yeniden açabilirsiniz.", + "videoMutedRemotelyTitle": "{{moderator}} tarafından videonuz kapatıldı", + "videoUnmuteBlockedDescription": "Sistem sınırları nedeniyle kamera sesini açma ve masaüstü paylaşım işlemi geçici olarak engellendi.", + "videoUnmuteBlockedTitle": "Kameranın sesini açma ve masaüstü paylaşımı engellendi!", + "viewLobby": "Lobiyi göster", + "viewParticipants": "Katılımcıları görüntüle", + "viewVisitors": "Ziyaretçileri görüntüle", + "waitingParticipants": "{{waitingParticipants}} kişi", + "waitingVisitors": "Sırada bekleyen ziyaretçiler: {{waitingVisitors}}", + "waitingVisitorsTitle": "Toplantı henüz canlı değil!", + "whiteboardLimitDescription": "Kullanıcı sınırına yakında ulaşılacağından ve beyaz tahta kapanacağından lütfen ilerlemenizi kaydedin.", + "whiteboardLimitTitle": "Beyaz tahta kullanımı" + }, + "participantsPane": { + "actions": { + "admit": "Kabul et", + "admitAll": "Hepsini kabul et", + "allow": "Katılımcıların şunları yapmasına izin ver:", + "allowVideo": "Video'ya izin ver", + "askUnmute": "Sesi açmayı iste", + "audioModeration": "Seslerini aç", + "blockEveryoneMicCamera": "Herkesin mikrofonunu ve kamerasını blokla", + "breakoutRooms": "Alt odalar", + "goLive": "Canlı yayına geç", + "invite": "Birini davet et", + "lowerAllHands": "Tüm elleri indir", + "lowerHand": "Elini indir", + "moreModerationActions": "Daha fazla denetleme seçeneği", + "moreModerationControls": "Daha fazla denetleme kontrolü", + "moreParticipantOptions": "Daha fazla katılımcı seçeneği", + "mute": "Sessize al", + "muteAll": "Herkesi sessize al", + "muteEveryoneElse": "Diğer herkesi sessize al", + "reject": "Reddet", + "stopEveryonesVideo": "Herkesin videosunu durdur", + "stopVideo": "Video'yu durdur", + "unblockEveryoneMicCamera": "Herkesin mikrofonunun ve kamerasının engellemesini kaldır", + "videoModeration": "Videolarını başlat" + }, + "close": "Kapat", + "headings": { + "lobby": "Lobi ({{count}})", + "participantsList": "Toplantı Katılımcıları ({{count}})", + "visitorInQueue": "(waiting {{count}})", + "visitorRequests": "(requests {{count}})", + "visitors": "Ziyaretçiler {{count}}", + "waitingLobby": "Lobide bekleyen ({{count}})" + }, + "search": "Katılımcıları ara", + "title": "Katılımcılar" + }, + "passwordDigitsOnly": "{{number}} rakama kadar", + "passwordSetRemotely": "başka katılımcı tarafından ayarlandı", + "pinParticipant": "{{participantName}} - Sabitle", + "pinnedParticipant": "Katılımcı sabitlendi", + "polls": { + "answer": { + "edit": "Düzenle", + "send": "Gönder", + "skip": "Geç", + "submit": "Gönder" + }, + "by": "{{ name }} tarafından", + "closeButton": "Close poll", + "create": { + "addOption": "Seçenek Ekle", + "answerPlaceholder": "Seçenek {{index}}", + "cancel": "İptal et", + "create": "Anket oluştur", + "pollOption": "Anket seçeneği {{index}}", + "pollQuestion": "Anket Sorusu", + "questionPlaceholder": "Soru sor", + "removeOption": "Seçeneği sil", + "save": "Kaydet", + "send": "Gönder" + }, + "errors": { + "notUniqueOption": "Seçenekler benzersiz olmalı" + }, + "notification": { + "description": "Oy vermek için anketler sekmesini açın", + "title": "Anket toplantıya eklendi" + }, + "results": { + "changeVote": "Oyu değiştir", + "empty": "Bu toplantıda henüz bir anket oluşturulmadı. Anket başlat!", + "hideDetailedResults": "Detayları gizle", + "showDetailedResults": "Detayları göster", + "vote": "Oylar" + } + }, + "poweredby": "tarafından", + "prejoin": { + "audioAndVideoError": "Ses ve video hatası:", + "audioDeviceProblem": "Ses cihazınızla ilgili bir sorun var", + "audioOnlyError": "Ses Hatası:", + "audioTrackError": "Ses parçası oluşturulamadı.", + "callMe": "Beni ara", + "callMeAtNumber": "Beni şu numaradan arayın:", + "calling": "Arama", + "configuringDevices": "Cihazlar yapılandırılıyor…", + "connectedWithAudioQ": "Sese bağlı mısınız?", + "connection": { + "failed": "Bağlantı testi başarısız!", + "good": "İnternet bağlantınız iyi görünüyor!", + "nonOptimal": "İnternet bağlantınız uygun değil", + "poor": "İnternet bağlantınız zayıf", + "running": "Bağlantı testi çalıştırılıyor…" + }, + "connectionDetails": { + "audioClipping": "Sesinizin kırpılmasını bekliyoruz.", + "audioHighQuality": "Sesinizin mükemmel kalitede olmasını bekliyoruz.", + "audioLowNoVideo": "Ses kalitenizin düşük olmasını ve video olmamasını bekliyoruz.", + "goodQuality": "Mükemmel! Medya kaliteniz harika olacak.", + "noMediaConnectivity": "Bu test için medya bağlantısı kurmanın bir yolunu bulamadık. Buna genellikle bir güvenlik duvarı veya NAT neden olur.", + "noVideo": "Videonuzun korkunç olmasını bekliyoruz.", + "testFailed": "Bağlantı testinde beklenmeyen sorunlarla karşılaşıldı, ancak bu durum deneyiminizi etkilemeyebilir.", + "undetectable": "Tarayıcıda hala arama yapamıyorsanız, hoparlörlerinizin, mikrofonunuzun ve kameranızın doğru şekilde kurulduğundan, tarayıcınıza mikrofon ve kameranızı kullanma haklarını verdiğinizden ve tarayıcı sürümünüzün güncel olduğundan emin olmanızı öneririz. Arama konusunda hala sorun yaşıyorsanız, web uygulaması geliştiricisi ile iletişime geçmelisiniz.", + "veryPoorConnection": "Çağrı kalitenizin gerçekten korkunç olmasını bekliyoruz.", + "videoFreezing": "Videonuzun donmasını, kararmasını ve piksellenmesini bekliyoruz.", + "videoHighQuality": "Videonuzun kaliteli olmasını bekliyoruz.", + "videoLowQuality": "Videonuzun kare hızı ve çözünürlük açısından düşük kalitede olmasını bekliyoruz.", + "videoTearing": "Videonuzun pikselli olmasını veya görsel problemler içermesini bekliyoruz." + }, + "copyAndShare": "Toplantı bağlantısını kopyala ve paylaş", + "dialInMeeting": "Toplantıya telefon et", + "dialInPin": "Toplantıya telefon edin ve PIN kodunu girin:", + "dialing": "Arama", + "doNotShow": "Bunu bir daha gösterme", + "errorDialOut": "Dışarı arama yapılamadı", + "errorDialOutDisconnected": "Dışarı arama yapılamadı. Bağlantı kesildi", + "errorDialOutFailed": "Dışarı arama yapılamadı. Arama başarısız", + "errorDialOutStatus": "Dışarı arama durumu alınırken hata oluştu", + "errorMissingName": "Toplantıya girmek için lütfen isminizi giriniz", + "errorNoPermissions": "Mikrofon ve kamera erişimini etkinleştirmeniz gerekiyor", + "errorStatusCode": "Dışarı arama hatası, durum kodu: {{status}}", + "errorValidation": "Numara doğrulanamadı", + "iWantToDialIn": "İçeri arama yapmak istiyorum", + "initiated": "Çağrı başlatıldı", + "joinAudioByPhone": "Telefonla sesli katıl", + "joinMeeting": "Toplantıya katıl", + "joinMeetingInLowBandwidthMode": "Düşük bant genişliği modunda katılın", + "joinWithoutAudio": "Ses olmadan katıl", + "keyboardShortcuts": "Klavye kısayollarını etkinleştir", + "linkCopied": "Bağlantı panoya kopyalandı", + "lookGood": "Mikrofonunuz düzgün çalışıyor gibi görünüyor", + "or": "veya", + "premeeting": "Toplantı öncesi", + "proceedAnyway": "Yine de devam et", + "recordingWarning": "Diğer katılımcılar bu çağrıyı kaydediyor olabilir", + "screenSharingError": "Ekran paylaşma hatası:", + "startWithPhone": "Telefon sesiyle başlayın", + "unsafeRoomConsent": "Riskleri anlıyorum, toplantıya katılmak istiyorum", + "videoOnlyError": "Video hatası:", + "videoTrackError": "Video izleme oluşturulamadı.", + "viewAllNumbers": "Tüm numaraları görüntüle" + }, + "presenceStatus": { + "busy": "Meşgul", + "calling": "Arıyor…", + "connected": "Bağlandı", + "connecting": "Bağlanıyor…", + "connecting2": "Bağlanıyor*…", + "disconnected": "Bağlantı kesildi", + "expired": "Süresi doldu", + "ignored": "Yok sayıldı", + "initializingCall": "Arama başlatılıyor…", + "invited": "Davet edildi", + "rejected": "Reddedildi", + "ringing": "Çalıyor…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Görünür adınızı ayarlayın", + "setEmailInput": "E-posta adresinizi girin", + "setEmailLabel": "Gravatar e-postanızı ayarlayın", + "title": "Profil" + }, + "raisedHand": "Konuşmak ister misiniz?", + "raisedHandsLabel": "Kaldırılan ellerin sayısı", + "record": { + "already": { + "linked": "Toplantı zaten bu Salesforce nesnesine bağlı." + }, + "type": { + "account": "Hesap", + "contact": "Kontak", + "lead": "Lider", + "opportunity": "İmkan", + "owner": "Sahip" + } + }, + "recording": { + "authDropboxText": "Dropbox'a yükle", + "availableSpace": "Kullanılabilir alan: {{spaceLeft}} MB (yaklaşık {{duration}} dakika kayıt)", + "beta": "BETA", + "busy": "Kayıt kaynaklarını boşaltmaya çalışıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.", + "busyTitle": "Tüm kayıt cihazları şu anda meşgul", + "copyLink": "Linki Kopyala", + "error": "Kayıt başarısız oldu. Lütfen tekrar deneyin.", + "errorFetchingLink": "Kayıt bağlantısı getirilirken hata oluştu.", + "expandedOff": "Kayıt durdu", + "expandedOn": "Toplantı şu anda kaydediliyor.", + "expandedPending": "Kayıt başlatılıyor…", + "failedToStart": "Kayıt başlatılamadı", + "fileSharingdescription": "Toplantı katılımcılarıyla kaydı paylaş", + "highlight": "Önemli Olay", + "highlightMoment": "Vurgu anı", + "highlightMomentDisabled": "Kayıt başladığında önemli anları vurgulayabilirsiniz", + "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", + "localRecordingStartWarning": "Lütfen kaydetmek için toplantıdan çıkmadan önce kaydı durdurduğunuzdan emin olun.", + "localRecordingStartWarningTitle": "Kaydetmek için kaydı durdurun", + "localRecordingVideoStop": "Videonuzu durdurmak yerel kaydı da durduracaktır. Devam etmek istediğine emin misin?", + "localRecordingVideoWarning": "Videonuzu kaydetmek için kayda başlarken açmış olmanız gerekir", + "localRecordingWarning": "Doğru video ve sesi kullanmak için geçerli sekmeyi seçtiğinizden emin olun.", + "loggedIn": "{{userName}} olarak giriş yapıldı", + "noMicPermission": "Mikrofon parçası oluşturulamadı. Lütfen mikrofonu kullanma izni verin.", + "noStreams": "Ses veya video akışı algılanmadı", + "off": "Kayıt durdu", + "offBy": "{{name}} isimli kayıt durduruldu", + "on": "Kayıt başladı", + "onBy": "{{name}} isimli kayıt başlatıldı", + "onlyRecordSelf": "Yalnızca ses ve video akışlarımı kaydet", + "pending": "Toplantıyı kaydetmeye hazırlanıyor…", + "recordAudioAndVideo": "Ses ve video kaydedin", + "recordTranscription": "Transkripsiyonu kaydet", + "saveLocalRecording": "Kayıt dosyasını yerel olarak kaydet (Beta)", + "serviceDescription": "Kaydınız kayıt hizmeti tarafından kaydedilecektir", + "serviceDescriptionCloud": "Bulut kaydı", + "serviceDescriptionCloudInfo": "Kaydedilen toplantılar, kayıt süresinden 24 saat sonra otomatik olarak temizlenir.", + "serviceName": "Kayıt hizmeti", + "sessionAlreadyActive": "Bu oturum zaten kaydediliyor veya canlı yayınlanıyor.", + "showAdvancedOptions": "Gelişmiş seçenekler", + "signIn": "Giriş yap", + "signOut": "Çıkış yap", + "surfaceError": "Lütfen geçerli sekmeyi seçin", + "title": "Kaydediliyor", + "unavailable": "Ah! {{serviceName}} şu anda kullanılamıyor. Sorunu çözmek için çalışıyoruz. Lütfen daha sonra tekrar deneyin.", + "unavailableTitle": "Kayıt yapılamıyor", + "uploadToCloud": "Buluta yükle" + }, + "screenshareDisplayName": "{{name}}'nin ekranı", + "sectionList": { + "pullToRefresh": "Yenilemek için çekin" + }, + "security": { + "about": "Toplantınıza bir parola ekleyebilirsiniz. Katılımcıların toplantıya katılmasına izin verilmeden önce parolayı girmeleri gerekecektir.", + "aboutReadOnly": "Moderatörler toplantıya toplantıya bir $t(lockRoomPassword) eklenebilir. Katılımcıların toplantıya katılmalarına izin verilmeden önce $t(lockRoomPassword) bilgilerini sağlamaları gerekir..", + "insecureRoomNameWarningNative": "Oda adı güvenli değil. İstenmeyen katılımcılar toplantınıza katılabilir. {{recommendAction}} Toplantınızın güvenliğini sağlama hakkında daha fazla bilgi edinin", + "insecureRoomNameWarningWeb": "Oda adı güvenli değil. İstenmeyen katılımcılar toplantınıza katılabilir. {{recommendAction}} Toplantınızın güvenliğini sağlama hakkında daha fazla bilgi edinin buraya.", + "title": "Güvenlik Seçenekleri", + "unsafeRoomActions": { + "meeting": "Güvenlik düğmesini kullanarak toplantınızın güvenliğini sağlamayı düşünün.", + "prejoin": "Daha benzersiz bir toplantı adı kullanmayı düşünün", + "welcome": "Daha benzersiz bir toplantı adı kullanmayı düşünün veya önerilerden birini seçin." + } + }, + "settings": { + "audio": "Ses", + "buttonLabel": "Ayarlar", + "calendar": { + "about": "{{appName}} takvim entegrasyonu, yaklaşan etkinlikleri okuyabilmesi için takviminize güvenli bir şekilde erişmek için kullanılır.", + "disconnect": "Bağlantıyı Kes", + "microsoftSignIn": "Microsoft ile oturum aç", + "signedIn": "Şu anda {{email}} için takvim etkinliklerine erişiliyor. Takvim etkinliklerine erişmeyi durdurmak için aşağıdaki Bağlantıyı Kes butonuna tıklayın.", + "title": "Takvim" + }, + "desktopShareFramerate": "Masaüstü paylaşım kare hızı", + "desktopShareHighFpsWarning": "Masaüstü paylaşımı için daha yüksek bir kare hızı bant genişliğinizi etkileyebilir. Yeni ayarların etkili olması için ekran paylaşımını yeniden başlatmanız gerekli.", + "desktopShareWarning": "Yeni ayarların etkili olması için ekran paylaşımını yeniden başlatmanız gerekli.", + "devices": "Cihazlar", + "followMe": "Beni takip edenler", + "followMeRecorder": "Kaydedici beni takip etsin", + "framesPerSecond": "kare/saniye", + "incomingMessage": "Gelen mesaj", + "language": "Dil", + "loggedIn": "{{name}} olarak giriş yapıldı", + "maxStageParticipants": "Ana ekrana sabitlenecek maksimum katılımcı sayısı", + "microphones": "Mikrofonlar", + "moderator": "Yönetici", + "moderatorOptions": "Moderatör seçenekleri", + "more": "Daha fazla", + "name": "Ad", + "noDevice": "Yok", + "notifications": "Bildirimler", + "participantJoined": "Katılımcı katıldı", + "participantKnocking": "Katılımcı lobiye girdi", + "participantLeft": "Katılımcı ayrıldı", + "playSounds": "Sesi çal", + "reactions": "Toplantı reaksiyonları", + "sameAsSystem": "Sistemle aynı ({{label}})", + "selectAudioOutput": "Ses çıkışı", + "selectCamera": "Kamera", + "selectMic": "Mikrofon", + "selfView": "Kendi görünümüm", + "shortcuts": "Kısayollar", + "speakers": "Hoparlörler", + "startAudioMuted": "Herkes ses kapalı başlasın", + "startReactionsMuted": "Reaksiyon seslerini herkes için kapat", + "startVideoMuted": "Herkes görüntü kapalı başlasın", + "talkWhileMuted": "Sesi kapalıyken konuş", + "title": "Ayarlar", + "video": "Video" + }, + "settingsView": { + "advanced": "Gelişmiş", + "alertCancel": "İptal", + "alertOk": "Tamam", + "alertTitle": "Uyarı", + "alertURLText": "Girilen sunucu bağlantısı geçersiz", + "apply": "Uygula", + "buildInfoSection": "Yapı Bilgisi", + "conferenceSection": "Toplantı", + "disableCallIntegration": "Yerel arama entegrasyonunu devre dışı bırak", + "disableCrashReporting": "Çökme raporlamasını devre dışı bırak", + "disableCrashReportingWarning": "Kilitlenme raporlamasını devre dışı bırakmak istediğinizden emin misiniz? Ayar, uygulamayı yeniden başlattıktan sonra uygulanacaktır.", + "disableP2P": "Peer-To-Peer modunu devre dışı bırak", + "displayName": "Görünür ad", + "displayNamePlaceholderText": "Ör: John Doe", + "email": "E-posta", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "E-postanız bir Gravatar hesabıyla ilişkiliyse, bunu profil resminizi görüntülemek için kullanacağız.", + "goTo": "Git", + "header": "Ayarlar", + "help": "Yardım", + "links": "Linkler", + "privacy": "Gizlilik", + "profileSection": "Profil", + "sdkVersion": "SDK sürümü", + "serverURL": "Sunucu Bağlantısı", + "showAdvanced": "Gelişmiş ayarları göster", + "startCarModeInLowBandwidthMode": "Düşük bağlantı modunda araba modunu başlat", + "startWithAudioMuted": "Ses kapalı başla", + "startWithVideoMuted": "Görüntü kapalı başla", + "terms": "Şartlar", + "version": "Versiyon" + }, + "share": { + "dialInfoText": "\n\n=====\n\nTelefonunuzdan mı aramak istiyorsunuz?\n\n{{defaultDialInNumber}}Bu toplantının telefon numaralarını aramak için bu bağlantıyı tıklayın\n{{dialInfoPageUrl}}", + "mainText": "Toplantıya katılmak için aşağıdaki bağlantıyı tıklayın:\n{{roomUrl}}" + }, + "speaker": "Konuşmacı", + "speakerStats": { + "angry": "Kızgın", + "disgusted": "Bıkkın", + "displayEmotions": "Duyguları göster", + "fearful": "Korkunç", + "happy": "Mutlu", + "hours": "{{count}}sa", + "minutes": "{{count}}dk", + "name": "Ad", + "neutral": "Nötr", + "sad": "Üzgün", + "search": "Ara", + "searchHint": "Katılımcıları ara", + "seconds": "{{count}}sn", + "speakerStats": "Konuşmacı İstatistikleri", + "speakerTime": "Konuşmacı Süresi", + "surprised": "Sürpriz" + }, + "startupoverlay": { + "genericTitle": "Toplantının mikrofonunuzu ve kameranızı kullanması gerekli.", + "policyText": " ", + "title": "{{app}} kameranızı ve mikrofonunuzu kullanmaya ihtiyaç duyuyor." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Tekrar katıl", + "text": "Tekrar bağlanmak için Tekrar katıl butonuna basın.", + "title": "Bu bilgisayar uyku moduna geçtiği için görüntülü görüşmeniz kesildi." + }, + "termsView": { + "title": "Şartlar" + }, + "toggleTopPanelLabel": "Üst paneli göster/gizle", + "toolbar": { + "Settings": "Ayarlar", + "accessibilityLabel": { + "Settings": "Ayarları göster/gizle", + "audioOnly": "Yalnızca sesi aç/kapat", + "audioRoute": "Ses aygıtını seçin", + "boo": "Boo", + "breakoutRooms": "Alt odalar", + "callQuality": "Armama kalitesini yönetin", + "carmode": "Araba modu", + "cc": "Altyazıları aç/kapat", + "chat": "Mesajlaşma penceresini aç/kapat", + "clap": "Alkış", + "closeChat": "Sohbeti kapat", + "closeMoreActions": "Diğer işlemler menüsünü kapat", + "closeParticipantsPane": "Katılımcılar bölmesini kapat", + "collapse": "Daralt", + "document": "Paylaşılan dokümanı aç/kapat", + "documentClose": "Paylaşılan belgeyi kapat", + "documentOpen": "Paylaşılan belgeyi aç", + "download": "Uygulamalarımızı indirin", + "embedMeeting": "Toplantıyı yerleştir", + "endConference": "Herkes için toplantıyı sonlandır", + "enterFullScreen": "Tam ekranı görüntüle", + "enterTileView": "Döşeme görünümüne girin", + "exitFullScreen": "Tam ekrandan çık", + "exitTileView": "Döşeme görünümünden çık", + "expand": "Genişlet", + "feedback": "Geri bildirim bırakın", + "fullScreen": "Tam ekranı aç/kapat", + "giphy": "GIPHY menüsünü aç/kapat", + "grantModerator": "Moderatör Hakları Ver", + "hangup": "Aramadan ayrıl", + "heading": "Araç Çubuğu", + "help": "Yardım", + "hideWhiteboard": "Beyaz tahtayı gizle", + "invite": "İnsanları davet et", + "kick": "Katılımcı çıkar", + "laugh": "Gül", + "leaveConference": "Toplantıdan ayrıl", + "like": "Çok iyi!", + "linkToSalesforce": "Salesforce'a bağla", + "lobbyButton": "Lobi modunu etkinleştir / devre dışı bırak", + "localRecording": "Kayıt denetimlerini aç/kapat", + "lockRoom": "Toplantı parolasını aç/kapat", + "lowerHand": "Elini indir", + "moreActions": "Diğer işlemler menüsünü aç/kapat", + "moreActionsMenu": "Diğer işlemler menüsü", + "moreOptions": "Daha fazla seçenek göster", + "mute": "Sesi aç/kapat", + "muteEveryone": "Herkesi sessize al", + "muteEveryoneElse": "Diğer herkesi sessize al", + "muteEveryoneElsesVideoStream": "Diğer herkesin videosunu durdur", + "muteEveryonesVideoStream": "Herkesin videosunu durdur", + "muteGUMPending": "Mikrofonunuz bağlanıyor", + "noiseSuppression": "Gürültü azaltma", + "openChat": "Sohbeti aç", + "participants": "Katılımcılar bölmesini açın. {{participantsCount}} katılımcı", + "pip": "Resim içinde Resim modunu aç/kapat", + "privateMessage": "Özel mesaj gönder", + "profile": "Profilinizi düzenleyin", + "raiseHand": "El kaldırmayı aç/kapat", + "react": "Mesaj tepkileri", + "reactions": "Tepkiler", + "reactionsMenu": "Reaksiyon menüsünü Aç / Kapa", + "recording": "Kaydetmeyi aç/kapat", + "remoteMute": "Katılımcının sesini kapat", + "remoteVideoMute": "Katılımcının kamerasını devre dışı bırak", + "security": "Güvenlik seçenekleri", + "selectBackground": "Arkaplan Seç", + "selfView": "Kendi kendine görünümü aç/kapat", + "shareRoom": "Birini davet et", + "shareYourScreen": "Ekran paylaşımını aç/kapat", + "shareaudio": "Sesi paylaş", + "sharedvideo": "Video paylaşmayı aç/kapat", + "shortcuts": "Kısayolları aç/kapat", + "show": "Sahnede göster", + "showWhiteboard": "Beyaz tahtayı göster", + "silence": "Sessiz", + "speakerStats": "Konuşmacı istatistiklerini aç/kapat", + "stopScreenSharing": "Ekranınızı paylaşmayı durdur", + "stopSharedVideo": "Videoyu durdur", + "surprised": "Sürpriz", + "tileView": "Döşeme görünümünü aç/kapat", + "toggleCamera": "Kamerayı değiştir", + "toggleFilmstrip": "Film şeridini aç/kapat", + "unmute": "Mikrofonun sesini aç", + "videoblur": "Video bulanıklaştırma aç/kapat", + "videomute": "Sessiz videoyu aç/kapat", + "videomuteGUMPending": "Kameranız bağlanıyor", + "videounmute": "Kamerayı başlat" + }, + "addPeople": "Aramanıza kişi ekleyin", + "audioOnlyOff": "Yalnızca ses modunu devre dışı bırak", + "audioOnlyOn": "Yalnızca ses modunu etkinleştir", + "audioRoute": "Ses aygıtını seçin", + "audioSettings": "Ses ayarları", + "authenticate": "Kimlik doğrula", + "boo": "Boo", + "callQuality": "Arama kalitesini yönetin", + "chat": "Mesajlaşmayı aç/kapat", + "clap": "Alkış", + "closeChat": "Mesajlaşmayı kapat", + "closeParticipantsPane": "Katılımcılar bölmesini kapat", + "closeReactionsMenu": "Reaksiyon menüsünü kapat", + "disableNoiseSuppression": "Gürültü azaltmayı devre dışı bırak", + "disableReactionSounds": "Toplantı için reaksiyon seslerini devre dışı bırak", + "documentClose": "Paylaşılan dokümanı kapat", + "documentOpen": "Paylaşılan dokümanı aç", + "download": "Uygulamalarımızı indirin", + "e2ee": "Uçtan uca şifreleme", + "embedMeeting": "Toplantıyı yerleştir", + "enableNoiseSuppression": "Gürültü azaltmayı etkinleştir", + "endConference": "Herkes için toplantıyı sonlandır", + "enterFullScreen": "Tam ekran görüntüle", + "enterTileView": "Döşeme görünümüne geç", + "exitFullScreen": "Tam ekrandan çık", + "exitTileView": "Döşeme görünümünden çık", + "feedback": "Geri bildirim bırakın", + "giphy": "GIPHY menü aç/kapat", + "hangup": "Ayrıl", + "help": "Yardım", + "hideWhiteboard": "Beyaztahtayı gizle", + "invite": "Kişi davet et", + "joinBreakoutRoom": "Alt odaya katıl", + "laugh": "Gül", + "leaveBreakoutRoom": "Alt odadan ayrıl", + "leaveConference": "Toplantıdan Ayrıl", + "like": "Çok iyi!", + "linkToSalesforce": "Salesforce'a bağla", + "lobbyButtonDisable": "Lobi modunu devre dışı bırak", + "lobbyButtonEnable": "Lobi modunu devre aktifleştir", + "login": "Oturum aç", + "logout": "Oturum kapat", + "lowerYourHand": "Elinizi indirin", + "moreActions": "Daha fazla işlem", + "moreOptions": "Daha fazla seçenek", + "mute": "Sessiz / Sesli", + "muteEveryone": "Herkesi sessize al", + "muteEveryonesVideo": "Herkesin kamerasını devre dışı bırak", + "muteGUMPending": "Mikrofonunuz bağlanıyor", + "noAudioSignalDesc": "Sistem ayarlarından veya donanımdan sesi kapatmadıysanız, cihazınızı değiştirin.", + "noAudioSignalDescSuggestion": "Sistem ayarlarından veya donanımdan kasıtlı olarak kapatmadıysanız, önerilen aygıta geçmeyi düşünün.", + "noAudioSignalDialInDesc": "Ayrıca şunları kullanarak da arama yapabilirsiniz:", + "noAudioSignalDialInLinkDesc": "İçeri arama numaraları", + "noAudioSignalTitle": "Mikrofonunuzdan hiçbir giriş gelmiyor!", + "noiseSuppression": "Gürültü azaltma", + "noisyAudioInputDesc": "Mikrofonunuz gürültü yapıyor gibi görünüyor, lütfen cihazı kapatmayı veya değiştirmeyi düşünün.", + "noisyAudioInputTitle": "Mikrofonunuz gürültülü görünüyor!", + "openChat": "Mesajlaşmayı aç", + "openReactionsMenu": "Reaksiyon menüsünü aç", + "participants": "Katılımcılar", + "pip": "Resim içinde Resim moduna gir", + "privateMessage": "Özel mesaj gönder", + "profile": "Profilinizi düzenleyin", + "raiseHand": "Elinizi kaldırın/indirin", + "raiseYourHand": "Elinizi kaldırın", + "reactionBoo": "Boo gönder", + "reactionClap": "Alkış gönder", + "reactionLaugh": "Gülme gönder", + "reactionLike": "Çok iyi! gönder", + "reactionSilence": "Sessizlik gönder", + "reactionSurprised": "Sürpriz gönder", + "reactions": "Tepkiler", + "security": "Güvenlik seçenekleri", + "selectBackground": "Arkaplan seç", + "shareRoom": "Birini davet et", + "shareaudio": "Ses paylaş", + "sharedvideo": "Bir videosu paylaş", + "shortcuts": "Kısayolları göster", + "showWhiteboard": "Beyaztahtayı Göster", + "silence": "Sessiz", + "speakerStats": "Konuşmacı istatistikleri", + "startScreenSharing": "Ekran paylaşımını başlat", + "startSubtitles": "Altyazıları başlat", + "stopAudioSharing": "Ses paylaşımını durdur", + "stopScreenSharing": "Ekran paylaşımını durdur", + "stopSharedVideo": "Videosunu durdur", + "stopSubtitles": "Altyazıları durdur", + "surprised": "Sürpriz", + "talkWhileMutedPopup": "Bir şey mi dediniz? Mikrofonunuz kapalı.", + "tileViewToggle": "Döşeme görünümünü aç/kapat", + "toggleCamera": "Kamerayı değiştir", + "unmute": "Mikrofonun sesini aç", + "videoSettings": "Video ayarları", + "videomute": "Kamerayı durdur", + "videomuteGUMPending": "Kameranıza bağlanıyor", + "videounmute": "Kamerayı başlat" + }, + "transcribing": { + "ccButtonTooltip": "Altyazılıar başlat / durdur", + "expandedLabel": "Deşifre etme açık", + "failedToStart": "Deşifre etme başlatılamadı", + "labelToolTip": "Toplantı deşifre ediliyor", + "sourceLanguageDesc": "Şu anda toplantı dili {{sourceLanguage} olarak ayarlıdır.
Bunu şuradan değiştirebilirsiniz", + "sourceLanguageHere": "burada", + "start": "Altyazıları göstermeye başla", + "stop": "Altyazıları göstermeyi durdur", + "subtitles": "Altyazılar", + "subtitlesOff": "Kapat", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Sabitlemeyi kaldır", + "userMedia": { + "grantPermissions": "Lütfen kameranızı ve mikrofonunuzu kullanmak için izin verin." + }, + "videoSIPGW": { + "busy": "Kaynakları serbest bırakmaya çalışıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.", + "busyTitle": "Oda hizmeti şu anda meşgul", + "errorAlreadyInvited": "{{displayName}} zaten davet edildi", + "errorInvite": "Toplantı henüz oluşturulmadı. Lütfen daha sonra tekrar deneyin.", + "errorInviteFailed": "Sorunu çözmek için çalışıyoruz. Lütfen daha sonra tekrar deneyin.", + "errorInviteFailedTitle": "{{displayName}} davet edilemedi", + "errorInviteTitle": "Odaya davet edilirken hata oluştu", + "pending": "{{displayName}} davet edildi" + }, + "videoStatus": { + "adjustFor": "Ayarla:", + "audioOnly": "SES", + "audioOnlyExpanded": "Yalnızca ses modundasınız. Bu mod bant genişliğinden tasarruf sağlar, ancak başkalarının videolarını göremezsiniz.", + "bestPerformance": "En iyi performans", + "callQuality": "Arama Kalitesi", + "hd": "HD", + "hdTooltip": "Yüksek çözünürlükte video görüntüleniyor", + "highDefinition": "Yüksek çözünürlük", + "highestQuality": "En yüksek kalite", + "labelTooiltipNoVideo": "Görüntü yok", + "labelTooltipAudioOnly": "Yalnızca ses modu etkin", + "ld": "LD", + "ldTooltip": "Düşük çözünürlüklü video görüntüleme", + "lowDefinition": "Düşük çözünürlük", + "performanceSettings": "Performans ayarları", + "recording": "Kayıt devam ediyor", + "sd": "SD", + "sdTooltip": "Standart çözünürlüklü video görüntüleme", + "standardDefinition": "Standart çözünürlük", + "streaming": "Akış devam ediyor" + }, + "videothumbnail": { + "connectionInfo": "Bağlantı Bilgisi", + "demote": "Ziyaretçiye taşı", + "domute": "Sessize al", + "domuteOthers": "Diğer herkesi sessize al", + "domuteVideo": "Kamerayı devre dışı bırak", + "domuteVideoOfOthers": "Diğer herkesin kamerasını devre dışı bırak", + "flip": "Döndür", + "grantModerator": "Moderatör Hakları Ver", + "hideSelfView": "Kendi görüntümü gizle", + "kick": "Çıkar", + "mirrorVideo": "Videomu yansıt", + "moderator": "Yönetici", + "mute": "Katılımcı sessiz", + "muted": "Sessiz", + "pinToStage": "Sahneye sabitle", + "remoteControl": "Uzaktan kontrol", + "screenSharing": "Katılımcı ekranını paylaşıyor", + "show": "Sahnede göster", + "showSelfView": "Kendi görüntümü göster", + "unpinFromStage": "Sabitlemeyi kaldır", + "verify": "Katılımcıyı doğrula", + "videoMuted": "Kamerayı devre dışı bırakıldı", + "videomute": "Katılımcı kamerayı durdurdu" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Geçerli arka plan: {{background}}", + "selectBackground": "Bir arka plan seçin" + }, + "addBackground": "Arkaplan Ekle", + "apply": "Uygula", + "backgroundEffectError": "Arkaplan efekt uygulaması başarısız.", + "blur": "Bulanıklaştır", + "deleteImage": "Resmi sil", + "desktopShare": "Masaüstü paylaşımı", + "desktopShareError": "Masaüstü paylaşımı oluşturulamadı", + "image1": "Plaj", + "image2": "Beyaz nötr duvar", + "image3": "Beyaz boş oda", + "image4": "Siyah zemin lambası", + "image5": "Dağ", + "image6": "Orman ", + "image7": "Gündoğumu", + "none": "Hiçbiri", + "pleaseWait": "Lütfen bekleyiniz…", + "removeBackground": "Arkaplanı kaldır", + "slightBlur": "Hafif Bulanıklık", + "title": "Sanal arkaplanlar", + "uploadedImage": "Yüklenen resim {{index}}", + "webAssemblyWarning": "WebAssembly desteklenmiyor", + "webAssemblyWarningDescription": "WebAssembly devre dışı bırakıldı veya bu tarayıcı tarafından desteklenmiyor" + }, + "visitors": { + "chatIndicator": "(ziyaretçi)", + "joinMeeting": { + "description": "Şu anda bu konferansta gözlemcisiniz.", + "raiseHand": "Elinizi kaldırın", + "title": "Toplantıya katılın", + "wishToSpeak": "Konuşmak istiyorsanız lütfen aşağıda elinizi kaldırın ve moderatörün onayını bekleyin." + }, + "labelTooltip": "Ziyaretçi sayısı: {{count}}", + "notification": { + "demoteDescription": "Buraya {{actor}} tarafından gönderildi, katılmak için elinizi kaldırın", + "noMainParticipantsDescription": "Bir katılımcının toplantıyı başlatması gerekiyor. Lütfen biraz sonra tekrar deneyin.", + "noMainParticipantsTitle": "Bu toplantı henüz başlamadı.", + "noVisitorLobby": "Toplantı için etkinleştirilmiş bir lobi varken katılamazsınız.", + "notAllowedPromotion": "Bir katılımcının öncelikle isteğinize izin vermesi gerekiyor.", + "title": "Toplantıda ziyaretçisiniz" + }, + "waitingMessage": "Toplantı canlı yayınlanır yayınlanmaz katılacaksınız!" + }, + "volumeSlider": "Ses kaydırıcısı", + "welcomepage": { + "accessibilityLabel": { + "join": "Katılmak için dokunun", + "roomname": "Oda adı girin" + }, + "addMeetingName": "Toplantı adı ekle", + "appDescription": "Durma ve tüm ekiple görüntülü sohbet et. Hatta tanıdığın herkesi davet et. {{app}} tüm gün, her gün ücretsiz olarak ve hesap gerektirmeden kullanabileceğiniz tamamen şifrelenmiş, % 100 özgür bir video konferans çözümüdür.", + "audioVideoSwitch": { + "audio": "Ses", + "video": "Görüntü" + }, + "calendar": "Takvim", + "connectCalendarButton": "Takviminizi bağlayın", + "connectCalendarText": "{{app}} uygulamasındaki tüm toplantılarınızı görüntülemek için takviminizi bağlayın. Ayrıca, takviminize {{provide}} toplantı ekleyin ve tek tıklamayla başlatın.", + "enterRoomTitle": "Yeni bir toplantı başlat", + "getHelp": "Yardım alın", + "go": "GİT", + "goSmall": "GİT", + "headerSubtitle": "Güvenli ve yüksek kaliteli toplantılar", + "headerTitle": "Jitsi Meet", + "info": "Bilgi", + "jitsiOnMobile": "Mobil'de Jitsi – uygulamalarımızı indirin ve her yerden bir toplantı başlatın", + "join": "KATIL", + "logo": { + "calendar": "Takvim logo", + "desktopPreviewThumbnail": "Masaüstü önizleme küçük resmi", + "googleLogo": "Google Logo", + "logoDeepLinking": "Jitsi meet logo", + "microsoftLogo": "Microsoft logo", + "policyLogo": "Politika logo" + }, + "meetingsAccessibilityLabel": "Toplantılar", + "mobileDownLoadLinkAndroid": "Android için mobil uygulamayı indirin", + "mobileDownLoadLinkFDroid": "F-Droid için mobil uygulamayı indirin", + "mobileDownLoadLinkIos": "iOS için mobil uygulamayı indirin", + "moderatedMessage": "veya moderatör olduğunuz bir toplantı linki oluşturun.", + "privacy": "Gizlilik", + "recentList": "En son", + "recentListDelete": "Sil", + "recentListEmpty": "En son görüşülenler listeniz şu anda boş. Sohbet edin ve son toplantılarınızı burada görüntüleyin.", + "recentMeetings": "Son toplantılarınız", + "reducedUIText": "Hoşgeldiniz - {{app}}!", + "roomNameAllowedChars": "Toplantı adı şu karakterlerden hiçbirini içermemelidir: ?, &, :, ', \", %, #.", + "roomname": "Oda adı girin", + "roomnameHint": "Katılmak istediğiniz odanın adını veya bağlantısını girin. İstediğiniz oda adını uydurabilirsiniz. Aynı odada buluşmak için görüşmek istediğiniz kişilere bunu iletmeniz yeterli.", + "sendFeedback": "Geri bildirim gönder", + "settings": "Ayarlar", + "startMeeting": "Toplantı başlat", + "terms": "Kurallar", + "title": "Güvenli, tüm özelliklere erişimli ve tamamen ücretsiz görüntülü arama", + "upcomingMeetings": "Yaklaşan toplantılarınız" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Beyaz tahta" + }, + "screenTitle": "Beyaz tahta" + } +} diff --git a/lang/main-uk.json b/lang/main-uk.json new file mode 100644 index 0000000..d7f2db8 --- /dev/null +++ b/lang/main-uk.json @@ -0,0 +1,1432 @@ +{ + "addPeople": { + "add": "Запросити", + "addContacts": "Запросити із ваших контактів", + "contacts": "контакти", + "copyInvite": "Скопіювати запрошення на зустріч", + "copyLink": "Скопіювати посилання на зустріч", + "copyStream": "Скопіювати посилання на трансляцію наживо", + "countryNotSupported": "Дзвінки в цю країну поки що не підтримуються.", + "countryReminder": "Дзвінок за межі США? Перевірте наявність коду країни в зазначеному номері!", + "defaultEmail": "Ваша електронна пошта", + "disabled": "Ви не можете запрошувати учасників.", + "failedToAdd": "Не вдалося запросити учасника", + "googleEmail": "Електронна пошта Google", + "inviteMoreHeader": "Ви одні на цій зустрічі", + "inviteMoreMailSubject": "Приєднатися до зустрічі {{appName}}", + "inviteMorePrompt": "Запросити на зустріч", + "linkCopied": "Посилання скопійовано в буфер обміну", + "noResults": "Нічого не знайдено", + "outlookEmail": "Електронна пошта Outlook", + "phoneNumbers": "номери телефонів", + "searching": "Триває пошук…", + "shareInvite": "Надіслати запрошення", + "shareLink": "Поділитися посиланням на зустріч", + "shareStream": "Поділитися посиланням на трансляцію наживо", + "sipAddresses": "SIP-адреси", + "telephone": "Телефон: {{number}}", + "title": "Запросити людей на цю зустріч", + "yahooEmail": "Електронна пошта Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Автомобільна аудіосистема", + "headphones": "Навушники", + "none": "Немає доступних звукових пристроїв", + "phone": "Телефон", + "speaker": "Динамік" + }, + "audioOnly": { + "audioOnly": "Економічний режим" + }, + "breakoutRooms": { + "actions": { + "add": "Додати кімнату підгрупи", + "autoAssign": "Автоматично призначати до кімнат підгруп", + "close": "Закрити", + "join": "Приєднатися", + "leaveBreakoutRoom": "Вийти з кімнати підгрупи", + "more": "Додаткові параметри", + "remove": "Вилучити", + "sendToBreakoutRoom": "Перевести учасника до кімнати:" + }, + "defaultName": "Кімната підгрупи #{{index}}", + "mainRoom": "Головна кімната", + "notifications": { + "joined": "Приєднання до кімнати підгрупи «{{name}}»", + "joinedMainRoom": "Приєднання до головної кімнати", + "joinedTitle": "Кімнати підгруп" + } + }, + "calendarSync": { + "addMeetingURL": "Додати посилання на зустріч", + "confirmAddLink": "Додати посилання на Jitsi до цієї події?", + "error": { + "appConfiguration": "Неправильно налаштовано інтеграцію календаря.", + "generic": "Помилка: перевірте налаштування календаря або спробуйте оновити його.", + "notSignedIn": "Під час автентифікації для перегляду подій календаря сталася помилка. Перевірте налаштування свого календаря та спробуйте увійти ще раз." + }, + "join": "Приєднатися", + "joinTooltip": "Приєднатися до зустрічі", + "nextMeeting": "Наступна зустріч", + "noEvents": "Немає запланованих подій.", + "ongoingMeeting": "Поточна зустріч", + "permissionButton": "Налаштування", + "permissionMessage": "Для перегляду зустрічей у застосунку потрібен дозвіл Календаря.", + "refresh": "Оновити календар", + "today": "Сьогодні" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Вибрати звуковий пристрій" + }, + "labels": { + "buttonLabel": "Режим «За кермом»", + "title": "Режим «За кермом»", + "videoStopped": "Ваше відео зупинено" + } + }, + "chat": { + "enter": "Увійти в кімнату", + "error": "Помилка: ваше повідомлення не було відправлено. Причина: {{error}}", + "fieldPlaceHolder": "Аа", + "lobbyChatMessageTo": "Повідомлення у приймальній для {{recipient}}", + "message": "Повідомлення", + "messageAccessibleTitle": "{{user}} пише:", + "messageAccessibleTitleMe": "я пишу:", + "messageTo": "Приватне повідомлення для {{recipient}}", + "messagebox": "Напишіть повідомлення", + "newMessages": "Нові повідомлення", + "nickname": { + "popover": "Виберіть ім'я", + "title": "Зазначте ім'я, щоб використовувати чат", + "titleWithPolls": "Зазначте ім'я, щоб використовувати чат і опитування" + }, + "noMessagesMessage": "На зустрічі ще немає повідомлень. Почніть розмову тут!", + "privateNotice": "Приватне повідомлення для {{recipient}}", + "sendButton": "Надіслати", + "smileysPanel": "Панель емодзі", + "tabs": { + "chat": "Чат", + "polls": "Опитування" + }, + "title": "Чат", + "titleWithPolls": "Чат і опитування", + "you": "Ви" + }, + "chromeExtensionBanner": { + "buttonText": "Встановити розширення для веб-браузера Chrome", + "buttonTextEdge": "Встановити розширення для веб-браузера Edge", + "close": "Закрити", + "dontShowAgain": "Більше не показувати це", + "installExtensionText": "Встановити розширення для інтеграції з Календарем Google та Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Приєднання до зустрічі…" + }, + "connection": { + "ATTACHED": "Приєднано", + "AUTHENTICATING": "Автентифікація", + "AUTHFAIL": "Помилка автентифікації", + "CONNECTED": "З'єднано", + "CONNECTING": "З'єднання триває", + "CONNFAIL": "Не вдалося з'єднатися", + "DISCONNECTED": "Від'єднано", + "DISCONNECTING": "Від'єднання триває", + "ERROR": "Помилка", + "FETCH_SESSION_ID": "Отримання session-id…", + "GET_SESSION_ID_ERROR": "Помилка отримання session-id: {{code}}", + "GOT_SESSION_ID": "Отримання session-id… Готово", + "LOW_BANDWIDTH": "Відео для {{displayName}} було вимкнено для економії ресурсів з'єднання" + }, + "connectionindicator": { + "address": "Адреса:", + "audio_ssrc": "Аудіо SSRC:", + "bandwidth": "Очікувана швидкість:", + "bitrate": "Бітрейт:", + "bridgeCount": "Кількість серверів: ", + "codecs": "Кодеки (A/V): ", + "connectedTo": "З'єднано з:", + "e2eeVerified": "E2EE підтверджено:", + "framerate": "Частота кадрів:", + "less": "Показати менше", + "localaddress": "Локальна адреса:", + "localaddress_plural": "Локальні адреси:", + "localport": "Локальний порт:", + "localport_plural": "Локальні порти:", + "maxEnabledResolution": "макс. (send)", + "more": "Показати більше", + "packetloss": "Втрачено пакетів:", + "participant_id": "ID учасника:", + "quality": { + "good": "Добре", + "inactive": "не активно", + "lost": "втрачено", + "nonoptimal": "не оптимально", + "poor": "погано" + }, + "remoteaddress": "Віддалена адреса:", + "remoteaddress_plural": "Віддалені адреси:", + "remoteport": "Віддалений порт:", + "remoteport_plural": "Віддалені порти:", + "resolution": "Роздільна здатність:", + "savelogs": "Зберегти журнали", + "status": "З'єднання:", + "transport": "Транспорт:", + "transport_plural": "Транспорт:", + "video_ssrc": "Відео SSRC:" + }, + "dateUtils": { + "earlier": "Раніше", + "today": "Сьогодні", + "yesterday": "Вчора" + }, + "deepLinking": { + "appNotInstalled": "Встановіть застосунок {{app}}, щоб приєднатися до цієї зустрічі з мобільного пристрою.", + "description": "Ми спробували розпочати вашу зустріч у програмі {{app}}. Спробуйте ще раз або відкрийте {{app}} у веб-браузері.", + "descriptionNew": "Ми спробували розпочати вашу зустріч у програмі {{app}}.

Спробуйте ще раз або розпочніть зустріч у веб-браузері.", + "descriptionWithoutWeb": "Ми спробували розпочати вашу зустріч у програмі {{app}}.", + "downloadApp": "Завантажити застосунок", + "downloadMobileApp": "Завантажити з App Store", + "ifDoNotHaveApp": "Якщо застосунок ще не встановлено:", + "ifHaveApp": "Якщо ви вже встановили застосунок:", + "joinInApp": "Приєднатися до цієї зустрічі за допомогою застосунку", + "joinInAppNew": "Приєднатися із застосунку", + "joinInBrowser": "Приєднатися у веб-браузері", + "launchMeetingLabel": "Яким чином приєднатися до цієї зустрічі?", + "launchWebButton": "Відкрити у веб-браузері", + "noMobileApp": "Застосунок не встановлений?", + "termsAndConditions": "Продовжуючи, ви погоджуєтесь з нашіми умовами використання.", + "title": "Приєднання до вашої зустрічі у {{app}}…", + "titleNew": "Приєднання до вашої зустрічі…", + "tryAgainButton": "Спробуйте у програмі на ПК", + "unsupportedBrowser": "Ви використовуєте веб-браузер, який ми не підтримуємо." + }, + "defaultLink": "напр. {{url}}", + "defaultNickname": "напр. Петро Гриб", + "deviceError": { + "cameraError": "Не вдалося отримати доступ до камери", + "cameraPermission": "Помилка отримання дозволу доступу до камери", + "microphoneError": "Не вдалося отримати доступ до мікрофона", + "microphonePermission": "Помилка отримання дозволу доступу до мікрофона" + }, + "deviceSelection": { + "hid": { + "callControl": "Налаштування зв'язку", + "connectedDevices": "Приєднані пристрої:", + "deleteDevice": "Вилучити пристрій", + "pairDevice": "Додати пристрій Bluetooth" + }, + "noPermission": "Дозвіл не надано", + "previewUnavailable": "Перегляд недоступний", + "selectADevice": "Виберіть пристрій", + "testAudio": "Перевірити" + }, + "dialIn": { + "screenTitle": "Підсумок вихідного дзвінка" + }, + "dialOut": { + "statusMessage": "зараз {{status}}" + }, + "dialog": { + "Back": "Назад", + "Cancel": "Скасувати", + "IamHost": "Я організатор", + "Ok": "Гаразд", + "Remove": "Вилучити", + "Share": "Поділитися", + "Submit": "Гаразд", + "WaitForHostMsg": "Зустріч ще не почалася. Авторизуйтеся, якщо ви організатор, або дочекайтеся організатора.", + "WaitingForHostTitle": "В очікуванні організатора…", + "Yes": "Так", + "accessibilityLabel": { + "close": "Закрити", + "liveStreaming": "Трансляція", + "sharingTabs": "Параметри спільного доступу" + }, + "add": "Додати", + "addMeetingNote": "Додати примітку про цю зустріч", + "addOptionalNote": "Додати примітку (за бажанням):", + "allow": "Дозволити", + "alreadySharedVideoMsg": "Інший учасник уже ділиться відео. Ця зустріч дозволяє одночасно ділитися лише одним відео.", + "alreadySharedVideoTitle": "Одночасно можна показувати лише одне відео", + "applicationWindow": "Вікно програми", + "authenticationRequired": "Потрібна автентифікація", + "cameraConstraintFailedError": "Камера не відповідає технічним вимогам.", + "cameraNotFoundError": "Камеру не знайдено.", + "cameraNotSendingData": "Немає доступу до вашої камери. Перевірте, чи інша програма використовує цей пристрій. Можливо, виберіть інший пристрій у меню налаштувань або спробуйте перезапустити програму.", + "cameraNotSendingDataTitle": "Відсутній доступ до камери", + "cameraPermissionDeniedError": "Ви не надали дозвіл доступу до камери. Ви все ще можете приєднатися до зустрічі, але інші учасники не зможуть вас бачити. Використовуйте кнопку камери в адресному рядку веб-браузера, щоб виправити це.", + "cameraTimeoutError": "Не вдалося запустити відео пристрій. Відведений на очікування доступу час сплив!", + "cameraUnknownError": "Невідома помилка доступу до камери.", + "cameraUnsupportedResolutionError": "Ваша камера не підтримує потрібну роздільну здатність для передавання відео.", + "close": "Закрити", + "conferenceDisconnectMsg": "Перевірте з'єднання з мережею. Повторна спроба приєднання через {{seconds}} с…", + "conferenceDisconnectTitle": "Вас від'єднано.", + "conferenceReloadMsg": "Ми намагаємося це виправити. Повторна спроба приєднання через {{seconds}} с…", + "conferenceReloadTitle": "На жаль, щось пішло не так.", + "confirm": "Підтвердити", + "confirmNo": "Ні", + "confirmYes": "Так", + "connectError": "Помилка: неможливо приєднатися до конференції.", + "connectErrorWithMsg": "Помилка: неможливо приєднатися до конференції: {{msg}}", + "connecting": "З'єднання триває", + "contactSupport": "Отримати підтримку", + "copied": "Скопійовано", + "copy": "Копіювати", + "dismiss": "Відхилити", + "displayNameRequired": "Привіт! Як вас звати?", + "done": "Готово", + "e2eeDescription": "Наскрізне шифрування наразі доступно в режимі ТЕСТУВАННЯ. Зверніть увагу, що ввімкнення наскрізного шифрування призведе до вимкнення таких служб на стороні сервера, як: участь за допомогою вхідного телефонного дзвінка. Також, просимо звернути увагу, що приєднання до зустрічі в такому разі буде можливе лише з веб-браузера із підтримкою вставних потоків (insertable streams).", + "e2eeDisabledDueToMaxModeDescription": "Не вдається ввімкнути наскрізне шифрування через велику кількість учасників.", + "e2eeLabel": "Увімкнути наскрізне шифрування", + "e2eeWarning": "УВАГА: Схоже, що не всі учасники цієї зустрічі мають підтримку технології наскрізного шифрування. Якщо ви ввімкнете цю функцію, то вони не зможуть чути та бачити вас.", + "e2eeWillDisableDueToMaxModeDescription": "УВАГА: Додавання нових учасників автоматично вимкне наскрізне шифрування", + "embedMeeting": "Вставити зустріч", + "enterDisplayName": "Зазначте ваше ім'я", + "error": "Помилка", + "gracefulShutdown": "Технічні роботи. Спробуйте пізніше.", + "grantModeratorDialog": "Надати права модератора учаснику: {{participantName}}?", + "grantModeratorTitle": "Надати права модератора", + "hide": "Приховати", + "hideShareAudioHelper": "Більше не показувати це діалогове вікно", + "incorrectPassword": "Неправильне ім'я користувача або пароль", + "incorrectRoomLockPassword": "Неправильний пароль", + "internalError": "Щось пішло не так. Помилка: {{error}}", + "internalErrorTitle": "Внутрішня помилка", + "kickMessage": "Зверніться до {{participantDisplayName}} для отримання додаткової інформації.", + "kickParticipantButton": "Від'єднати", + "kickParticipantDialog": "Примусово від'єднати цього учасника?", + "kickParticipantTitle": "Від'єднати цього учасника?", + "kickTitle": "{{participantDisplayName}} від'єднав вас від зустрічі.", + "linkMeeting": "Пов'язати зустріч", + "linkMeetingTitle": "Пов'язати зустріч із Salesforce", + "liveStreaming": "Трансляція наживо", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Послуга недоступна під час запису", + "localUserControls": "Команди керування видом на себе", + "lockMessage": "Не вдалося обмежити сторонній доступ", + "lockRoom": "Додати $t(lockRoomPassword)", + "lockTitle": "Обмеження доступу не вдалося", + "login": "Увійти", + "logoutQuestion": "Вийти та від'єднатися від зустрічі?", + "logoutTitle": "Вийти", + "maxUsersLimitReached": "Зустріч переповнена. Досягнуто максимальної кількості учасників. Зв'яжіться з організатором зустрічі або повторіть спробу пізніше!", + "maxUsersLimitReachedTitle": "Досягнуто максимальної кількості учасників", + "micConstraintFailedError": "Мікрофон не відповідає технічним вимогам.", + "micNotFoundError": "Мікрофон не знайдено.", + "micNotSendingData": "Перейдіть до системних налаштувань, щоб увімкнути мікрофон і налаштувати його рівень чутливості", + "micNotSendingDataTitle": "Ваш мікрофон вимкнено системними налаштуваннями", + "micPermissionDeniedError": "Ви не надали дозвіл доступу до мікрофона. Ви все ще можете приєднатися до зустрічі, але інші учасники не зможуть вас чути. Використовуйте кнопку мікрофона в адресному рядку веб-браузера, щоб виправити це.", + "micTimeoutError": "Не вдалося запустити звуковий пристрій. Відведений на очікування доступу час сплив!", + "micUnknownError": "Невідома помилка доступу до мікрофона.", + "moderationAudioLabel": "Дозволити учасникам вмикати свій мікрофон", + "moderationVideoLabel": "Дозволити учасникам вмикати свою камеру", + "muteEveryoneDialog": "Учасники можуть увімкнути свій мікрофон в будь-який час.", + "muteEveryoneDialogModerationOn": "Учасники можуть запросити слово в будь-який час.", + "muteEveryoneElseDialog": "Після вимкнення мікрофонів у учасників, ви не зможете їх разом увімкнути, але учасники зможуть увімкнути свій мікрофон самі.", + "muteEveryoneElseTitle": "Вимкнути мікрофони всім, крім {{whom}}?", + "muteEveryoneElsesVideoDialog": "Після вимкнення камер учасників, ви не зможете їх разом увімкнути, але учасники зможуть увімкнути свою камеру самі.", + "muteEveryoneElsesVideoTitle": "Вимкнути камери всім, крім {{whom}}?", + "muteEveryoneSelf": "мене", + "muteEveryoneStartMuted": "Нові учасники починають із вимкненим мікрофоном", + "muteEveryoneTitle": "Вимкнути мікрофони всім?", + "muteEveryonesVideoDialog": "Учасники можуть увімкнути свою камеру в будь-який час.", + "muteEveryonesVideoDialogModerationOn": "Учасники можуть запросити увімкнути їм камеру в будь-який час.", + "muteEveryonesVideoDialogOk": "Вимкнути камеру", + "muteEveryonesVideoTitle": "Вимкнути камери всім?", + "muteParticipantBody": "Ви не зможете знову ввімкнути разом їм мікрофони, але вони зможуть це зробити для себе самі.", + "muteParticipantButton": "Вимкнути мікрофон", + "muteParticipantsVideoBody": "Ви не зможете знову ввімкнути разом їм камеру, але вони зможуть це зробити для себе самі.\n", + "muteParticipantsVideoBodyModerationOn": "Ви не зможете знову ввімкнути їм камеру, як і вони для себе.\n", + "muteParticipantsVideoButton": "Вимкнути камеру", + "muteParticipantsVideoDialog": "Вимкнути камеру цьому учаснику? Ви не зможете ввімкнути її знов, але учасник зможе це зробити для себе сам.\n", + "muteParticipantsVideoDialogModerationOn": "Вимкнути камеру цьому учаснику? Ви не зможете ввімкнути її знов, як і учасник для себе", + "muteParticipantsVideoTitle": "Вимкнути камеру цьому учаснику?", + "noDropboxToken": "Немає дійсного маркера доступу Dropbox", + "password": "Пароль", + "passwordLabel": "Зустріч заблокована учасником. Введіть $t(lockRoomPassword), щоб приєднатися.", + "passwordNotSupported": "Неможливо додати $t(lockRoomPassword) для зустрічі. Функція не підтримується.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) не підтримується", + "passwordRequired": "Потрібен $t(lockRoomPasswordUppercase)", + "permissionCameraRequiredError": "Щоб брати участь у зустрічах із відео, потрібен дозвіл доступу до камери. Надайте його в налаштуваннях", + "permissionErrorTitle": "Потрібен дозвіл доступу", + "permissionMicRequiredError": "Щоб спілкуватися голосом під час зустрічі, потрібен доступ до мікрофона. Надайте дозвіл в налаштуваннях", + "popupError": "Ваш веб-браузер блокує спливне вікно вікна на цьому сайті. Дозвольте спливні вікна у налаштуваннях безпеки вашого веб-браузера та спробуйте ще раз.", + "popupErrorTitle": "Спливне вікно заблоковано", + "readMore": "більше", + "recentlyUsedObjects": "Нещодавно використані об'єкти", + "recording": "Запис", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Послуга недоступна під час трансляції наживо", + "rejoinNow": "Приєднатися знову", + "remoteControlAllowedMessage": "{{user}} погодився на дистанційне керування!", + "remoteControlDeniedMessage": "{{user}} відхилив ваш запит на дистанційне керування!", + "remoteControlErrorMessage": "Помилка під час спроби отримати від {{user}} дозвіл на дистанційне керування!", + "remoteControlRequestMessage": "Дозволити {{user}} дистанційно керувати вашою стільницею?", + "remoteControlShareScreenWarning": "Увага, якщо ви натиснете «Дозволити», ви ввімкнете спільний перегляд вашого екрану!", + "remoteControlStopMessage": "Сеанс дистанційного керування завершено!", + "remoteControlTitle": "Дистанційне керування стільницею", + "remoteUserControls": "Команди керування учасником {{username}}", + "removePassword": "Вилучити $t(lockRoomPassword)", + "removeSharedVideoMsg": "Вилучити відео, яким ви поділилися?", + "removeSharedVideoTitle": "Вилучити відео", + "reservationError": "Помилка системи бронювання", + "reservationErrorMsg": "Код помилки: {{code}}, повідомлення: {{msg}}", + "retry": "Повторити", + "screenSharingAudio": "Поділитися аудіо", + "screenSharingFailed": "Щось пішло не так, ми не можемо почати спільний перегляд екрана!", + "screenSharingFailedTitle": "Не вдалося почати спільний перегляд екрана!", + "screenSharingPermissionDeniedError": "Щось пішло не так із дозволом на показ екрана. Оновіть сторінку та повторіть спробу.", + "searchInSalesforce": "Пошук у Salesforce", + "searchResults": "Знайдено ({{count}})", + "searchResultsDetailsError": "Під час отримання даних власника сталася помилка.", + "searchResultsError": "Під час отримання даних сталася помилка.", + "searchResultsNotFound": "Нічого не знайдено.", + "searchResultsTryAgain": "Спробуйте альтернативні ключові слова.", + "sendPrivateMessage": "Ви нещодавно отримали приватне повідомлення. Ви мали намір відповісти на це приватно чи хочете надіслати своє повідомлення у чат групи?", + "sendPrivateMessageCancel": "Чат групи", + "sendPrivateMessageOk": "Приватно", + "sendPrivateMessageTitle": "Надіслати приватно?", + "serviceUnavailable": "Послуга недоступна", + "sessTerminated": "Дзвінок перервано", + "sessionRestarted": "Дзвінок повторено через проблему з'єднання.", + "shareAudio": "Продовжити", + "shareAudioTitle": "Як поділитися аудіо", + "shareAudioWarningD1": "перш ніж ділитися аудіо, припиніть спільний перегляд екрана.", + "shareAudioWarningD2": "перезапустіть спільний перегляд екрана та позначте опцію «Поділитися аудіо».", + "shareAudioWarningH1": "Якщо ви хочете поділитися лише аудіо:", + "shareAudioWarningTitle": "перш ніж ділитися аудіо, припиніть спільний перегляд екрана.", + "shareMediaWarningGenericH2": "Якщо ви хочете поділитися своїм екраном разом зі звуком", + "shareScreenWarningD1": "перш ніж увімкнути спільний перегляд екрана, припиніть обмін аудіо.", + "shareScreenWarningD2": "припиніть обмін аудіо, увімкніть спільний перегляд екрана та позначте опцію «Поділитися аудіо».", + "shareScreenWarningH1": "Якщо ви хочете поділитися лише своїм екраном:", + "shareScreenWarningTitle": "Перш ніж увімкнути спільний перегляд вашого екрана, припиніть обмін аудіо.", + "shareVideoLinkError": "Зазначте правильне посилання на відео.", + "shareVideoTitle": "Поділитися відео", + "shareYourScreen": "Спільний перегляд екрана", + "shareYourScreenDisabled": "Спільний перегляд екрана вимкнено.", + "sharedVideoDialogError": "Помилка: недійсна URL-адреса", + "sharedVideoLinkPlaceholder": "Посилання на YouTube або на файл відео", + "show": "Показати", + "start": "Почати ", + "startLiveStreaming": "Почати трансляцію наживо", + "startRecording": "Почати запис", + "startRemoteControlErrorMessage": "Під час спроби запустити сеанс віддаленого керування сталася помилка!", + "stopLiveStreaming": "Зупинити трансляцію наживо", + "stopRecording": "Зупинити запис", + "stopRecordingWarning": "Зупинити запис?", + "stopStreamingWarning": "Зупинити трансляцію наживо?", + "streamKey": "Ключ для трансляції наживо", + "thankYou": "Дякуємо, що користуєтеся {{appName}}!", + "token": "маркер доступу", + "tokenAuthFailed": "Вибачте, вам не дозволено приєднатися до цього дзвінка.", + "tokenAuthFailedTitle": "Помилка автентифікації", + "transcribing": "Транскрибування запису", + "unlockRoom": "Вилучити $t(lockRoomPassword)", + "user": "Користувач", + "userIdentifier": "Ідентифікатор користувача", + "userPassword": "Пароль", + "verifyParticipantConfirm": "Збігаються", + "verifyParticipantDismiss": "Не збігаються", + "verifyParticipantQuestion": "Запитайте, чи учасник {{participantName}} бачить однаковий з вашим вміст і в тому самому порядку (ТЕСТУВАННЯ).", + "verifyParticipantTitle": "Підтвердження особи учасника", + "videoLink": "URL-адреса відео", + "viewUpgradeOptions": "Переглянути додаткові послуги", + "viewUpgradeOptionsContent": "Щоб отримати необмежений доступ до таких преміум-послуг, як записування, транскрипція, RTMP трансляцію тощо, вам потрібно оновити ваш пакет послуг.", + "viewUpgradeOptionsTitle": "Ви відкрили преміум-послугу!", + "yourEntireScreen": "Увесь екран" + }, + "documentSharing": { + "title": "Спільний документ" + }, + "e2ee": { + "labelToolTip": "Аудіо та відео зв'язок під час цієї зустрічі захищені наскрізним шифруванням" + }, + "embedMeeting": { + "title": "Вставити цю зустріч" + }, + "feedback": { + "average": "Середньо", + "bad": "Погано", + "detailsLabel": "Розкажіть про це докладніше.", + "good": "Добре", + "rateExperience": "Оцінка зручності та якості зв'язку", + "star": "Зірочка", + "veryBad": "Дуже погано", + "veryGood": "Дуже добре" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Панель видів" + } + }, + "giphy": { + "noResults": "Нічого не знайдено :(", + "search": "Пошук GIPHY" + }, + "incomingCall": { + "answer": "Відповісти", + "audioCallTitle": "Вхідний дзвінок", + "decline": "Відхилити", + "productLabel": "із Jitsi Meet", + "videoCallTitle": "Вхідний відеодзвінок" + }, + "info": { + "accessibilityLabel": "Показати інформацію", + "addPassword": "Додати $t(lockRoomPassword)", + "cancelPassword": "Скасувати $t(lockRoomPassword)", + "conferenceURL": "URL:", + "copyNumber": "Скопіювати номер", + "country": "Країна", + "dialANumber": "Щоб приєднатися до зустрічі, наберіть один із цих номерів і введіть PIN-код.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Вибачте, приєднання телефоном наразі не підтримується.", + "dialInNumber": "Телефон:", + "dialInSummaryError": "Помилка отримання інформації для приєднання. Спробуйте пізніше.", + "dialInTollFree": "Безкоштовний", + "genericError": "Щось пішло не так.", + "inviteLiveStream": "Трансляцію наживо цієї зустрічі дивитись за цим посиланням: {{url}}", + "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", + "inviteURLSecondPart": "\nПриєднатися до зустрічі:\n{{url}}\n", + "label": "Телефонний зв'язок", + "liveStreamURL": "Трансляція наживо:", + "moreNumbers": "Додаткові телефони", + "noNumbers": "Немає номерів.", + "noPassword": "Немає", + "noRoom": "Відсутня назва кімнати для приєднання до зустрічі телефоном.", + "numbers": "Телефонні номери", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Досягнуто ліміту використання вашого плану.", + "sip": "SIP-адреса", + "title": "Поділитися", + "tooltip": "Поділіться посиланням і номером телефону для приєднання до цієї зустрічі", + "upgradeOptions": "Ви можете переглянути додаткові опції та плани на сторінці" + }, + "inlineDialogFailure": { + "msg": "Невелика пауза.", + "retry": "Спробувати ще", + "support": "Підтримка", + "supportMsg": "Якщо це повторюється, будь ласка, зверніться до" + }, + "inviteDialog": { + "alertText": "Не вдалося запросити окремих учасників.", + "header": "Запросити", + "searchCallOnlyPlaceholder": "Зазначте номер телефону", + "searchPeopleOnlyPlaceholder": "Пошук учасників", + "searchPlaceholder": "Учасник або номер телефону", + "send": "Надіслати" + }, + "jitsiHome": "{{logo}} Логотип, посилання на головну сторінку", + "keyboardShortcuts": { + "focusLocal": "Показати вид з моєї камери", + "focusRemote": "Показати вид з камери учасника", + "fullScreen": "Показувати на весь екран", + "giphyMenu": "Показати/приховати меню GIPHY", + "keyboardShortcuts": "Комбінації клавіш", + "localRecording": "Показати/приховати панель керування відеозаписом", + "mute": "Увімкнути/вимкнути мікрофон", + "pushToTalk": "Кнопка «Натисни й говори»", + "raiseHand": "Підняти/опустити руку", + "showSpeakerStats": "Показати статистику спілкування", + "toggleChat": "Показати/приховати чат", + "toggleFilmstrip": "Показати/приховати панель видів", + "toggleParticipantsPane": "Показати/приховати панель учасників", + "toggleScreensharing": "Показати вид з камери/перегляд екрана", + "toggleShortcuts": "Показати/приховати комбінації клавіш", + "videoMute": "Увімкнути/вимкнути камеру" + }, + "largeVideo": { + "screenIsShared": "Ви ділитеся своїм екраном", + "showMeWhatImSharing": "Показати вид мого екрану" + }, + "liveStreaming": { + "busy": "Ми працюємо над звільненням ресурсів для трансляції наживо. Повторіть спробу за декілька хвилин.", + "busyTitle": "Усі канали для трансляції наживо зараз зайняті", + "changeSignIn": "Змінити обліковий запис.", + "choose": "Вибрати канал трансляції наживо", + "chooseCTA": "Виберіть трансляцію. Ви увійшли як {{email}}.", + "enterStreamKey": "Зазначте ключ до трансляції наживо на YouTube.", + "error": "Помилка трансляції наживо. Спробуйте ще раз.", + "errorAPI": "Помилка під час доступу до ваших трансляцій наживо на YouTube. Спробуйте увійти знову.", + "errorLiveStreamNotEnabled": "Трансляція наживо не ввімкнена для {{email}}. Увімкніть трансляцію наживо або увійдіть в обліковий запис з увімкненою трансляцією наживо.", + "expandedOff": "Трансляція наживо зупинилася", + "expandedOn": "Наразі зустріч транслюється наживо на YouTube.", + "expandedPending": "Розпочинається трансляція наживо…", + "failedToStart": "Не вдалося розпочати трансляцію наживо", + "getStreamKeyManually": "Не вдалося отримати жодний канал трансляції наживо. Спробуйте отримати ключ для трансляції наживо з YouTube.", + "googlePrivacyPolicy": "Політика конфіденційності Google", + "inProgress": "Триває запис або трансляція наживо", + "invalidStreamKey": "Ключ до трансляції наживо неправильний.", + "limitNotificationDescriptionNative": "Ваша трансляція наживо буде обмежена {{limit}} хв. Для необмеженої трансляції, спробуйте {{app}}", + "limitNotificationDescriptionWeb": "Через високе навантаження, трансляція наживо буде обмежена {{limit}} хв. Для необмеженої трансляції, спробуйте {{app}}.", + "off": "Трансляцію наживо зупинено", + "offBy": "{{name}} зупинив трансляцію наживо", + "on": "Трансляція наживо", + "onBy": "{{name}} почав трансляцію наживо", + "pending": "Починається трансляція наживо…", + "serviceName": "Послуга трансляції наживо", + "sessionAlreadyActive": "Ця зустріч вже записується або транслюється наживо.", + "signIn": "Увійти до послуг Google", + "signInCTA": "Увійдіть або зазначте ключ до трансляції наживо на YouTube.", + "signOut": "Вийти", + "signedInAs": "Ви увійшли як:", + "start": "Почати трансляцію наживо", + "streamIdHelp": "Допомога", + "title": "Трансляція наживо", + "unavailableTitle": "Трансляція наживо недоступна", + "youtubeTerms": "Умови надання послуг YouTube" + }, + "lobby": { + "backToKnockModeButton": "Запитати дозволу", + "chat": "Чат", + "dialogTitle": "Приймальна", + "disableDialogContent": "Приймальна наразі ввімкнена. Ця функція призначена для того, щоб запобігти приєднанню небажаних учасників до вашої зустрічі. Ви хочете її вимкнути?", + "disableDialogSubmit": "Вимкнути", + "emailField": "Зазначте адресу вашої електронної пошти", + "enableDialogPasswordField": "Встановіть пароль (необов'язково)", + "enableDialogSubmit": "Увімкнути", + "enableDialogText": "Приймальна підвищує безпеку ваших зустрічей, дозволяючи людям приєднуватись лише після офіційного схвалення від модератора.", + "enterPasswordButton": "Ввести пароль зустрічі", + "enterPasswordTitle": "Введіть пароль, щоб приєднатися до зустрічі", + "errorMissingPassword": "Введіть пароль зустрічі", + "invalidPassword": "Невірний пароль", + "joinRejectedMessage": "Модератор відмовив вам у приєднанні до зустрічі.", + "joinRejectedTitle": "Відмовлено у приєднанні.", + "joinTitle": "Приєднатися до зустрічі", + "joinWithPasswordMessage": "Спроба приєднатися з паролем, зачекайте…", + "joiningMessage": "Ви приєднаєтесь до зустрічі, щойно модератор схвалить ваш запит", + "joiningTitle": "Запит на приєднання до зустрічі…", + "joiningWithPasswordTitle": "Приєднання з паролем…", + "knockButton": "Запитати дозволу", + "knockTitle": "Хтось хоче приєднатися до зустрічі", + "knockingParticipantList": "Список учасників, які очікують", + "lobbyChatStartedNotification": "{{moderator}} почав чат із {{attendee}} у приймальній", + "lobbyChatStartedTitle": "{{moderator}} розпочав із вами чат у приймальній.", + "nameField": "Зазначте ваше ім'я", + "notificationLobbyAccessDenied": "Приєднання {{targetParticipantName}} до зустрічі відхилено рішенням {{originParticipantName}}", + "notificationLobbyAccessGranted": "Приєднання {{targetParticipantName}} до зустрічі погоджено рішенням {{originParticipantName}}", + "notificationLobbyDisabled": "Приймальна вимкнена учасником {{originParticipantName}}", + "notificationLobbyEnabled": "Приймальна ввімкнена учасником {{originParticipantName}}", + "notificationTitle": "Приймальна", + "passwordField": "Ввести пароль зустрічі", + "passwordJoinButton": "Приєднатися", + "title": "Приймальна", + "toggleLabel": "Увімкнути приймальну" + }, + "localRecording": { + "clientState": { + "off": "Вимкнено", + "on": "Увімкнено", + "unknown": "Невідомо" + }, + "dialogTitle": "Панель локального запису", + "duration": "Тривалість", + "durationNA": "н/д", + "encoding": "Кодування", + "label": "LOR", + "labelToolTip": "Локальний запис активовано", + "localRecording": "Локальний запис", + "me": "Я", + "messages": { + "engaged": "Зустріч записується в локальний файл.", + "finished": "Сеанс запису {{token}} завершено. Будь ласка, надішліть записаний файл модератору.", + "finishedModerator": "Сеанс запису {{token}} завершено. Запис зустрічі збережено в локальних файлах індивідуально. Попросіть інших учасників надіслати вам файли їх треків.", + "notModerator": "Ви не є модератором і не можете починати чи зупиняти локальний запис." + }, + "moderator": "Модератор", + "no": "Ні", + "participant": "Учасник", + "participantStats": "Статистика учасників", + "selectTabTitle": "🎥 Виберіть цю вкладку для запису", + "sessionToken": "Маркер сеансу", + "start": "Почати запис", + "stop": "Зупинити запис", + "yes": "Так" + }, + "lockRoomPassword": "пароль", + "lockRoomPasswordUppercase": "Пароль", + "lonelyMeetingExperience": { + "button": "Запросити", + "youAreAlone": "Ви одні на цій зустрічі" + }, + "me": "я", + "notify": { + "OldElectronAPPTitle": "Вразливість в системі безпеки!", + "allowAction": "Дозволити", + "allowedUnmute": "Ви можете ввімкнути ваш мікрофон, камеру або спільний перегляд вашого екрана.", + "audioUnmuteBlockedDescription": "Операцію ввімкнення мікрофона тимчасово заблоковано через системні обмеження.", + "audioUnmuteBlockedTitle": "Увімкнення мікрофона заблоковано!", + "chatMessages": "Вхідне повідомлення чату", + "connectedOneMember": "{{name}} на зв'язку", + "connectedThreePlusMembers": "{{name}} та {{count}} інших учасників приєдналися до зустрічі", + "connectedTwoMembers": "{{first}} та {{second}} приєдналися до зустрічі", + "dataChannelClosed": "Погіршення якості відео", + "dataChannelClosedDescription": "Канал мультимедійного мосту відключено; якість відео знижена до мінімуму.", + "disconnected": "з'єднання розірване", + "displayNotifications": "Показувати сповіщення:", + "dontRemindMe": "Не нагадувати", + "focus": "Фокус зустрічі", + "focusFail": "{{component}} недоступний - повторіть спробу через {{ms}} мс", + "gifsMenu": "GIPHY", + "groupTitle": "Сповіщення", + "hostAskedUnmute": "Модератор передає слово вам", + "invitedOneMember": "{{name}} запрошено", + "invitedThreePlusMembers": "Запрошено {{name}} та {{count}} інших користувачів", + "invitedTwoMembers": "{{first}} та {{second}} запрошено до зустрічі", + "joinMeeting": "Приєднатися", + "kickParticipant": "{{kicker}} від'єднав {{kicked}} від зустрічі", + "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}} вимкнув вам мікрофон!", + "mutedTitle": "Ви вимкнені!", + "newDeviceAction": "Використовувати", + "newDeviceAudioTitle": "Виявлено новий звуковий пристрій", + "newDeviceCameraTitle": "Виявлено нову камеру", + "noiseSuppressionDesktopAudioDescription": "Придушення шуму не можна ввімкнути під час обміну аудіо. Вимкніть його та повторіть спробу.", + "noiseSuppressionFailedTitle": "Не вдалося ввімкнути придушення шуму", + "noiseSuppressionNoTrackDescription": "Перевірте, що мікрофон увімкнено.", + "noiseSuppressionStereoDescription": "Придушення шуму у форматі стерео наразі не підтримується.", + "oldElectronClientDescription1": "Ви використовуєте стару версію клієнта Jitsi Meet, яка має відомі вразливості безпеки. Переконайтеся, що ви оновили до нашої ", + "oldElectronClientDescription2": "останньої версії", + "oldElectronClientDescription3": " на поточний час!", + "participantWantsToJoin": "Хоче приєднатися до зустрічі", + "participantsWantToJoin": "Хочуть приєднатися до зустрічі", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) вилучений іншим учасником", + "passwordSetRemotely": "Інший учасник додав $t(lockRoomPasswordUppercase)", + "raiseHandAction": "Підняти руку", + "raisedHand": "{{name}} хоче взяти слово.", + "raisedHands": "{{participantName}} і ще {{raisedHands}} учасників", + "reactionSounds": "Вимкнути звукові сповіщення", + "reactionSoundsForAll": "Вимкнути звукові сповіщення для всіх", + "screenShareNoAudio": "На екрані вибору вікна не була ввімкнена опція «Поділитися аудіо».", + "screenShareNoAudioTitle": "Не вдалося надати спільний доступ до аудіо!", + "screenSharingAudioOnlyDescription": "Увага: увімкнення спільного перегляду екрана збільшить споживання пропускної здатності, що погіршить якість режиму \"Найкраща продуктивність\".", + "screenSharingAudioOnlyTitle": "Режим \"Найкраща продуктивність\"", + "selfViewTitle": "Ви завжди можете скасувати приховування виду на себе в налаштуваннях", + "somebody": "Учасник", + "startSilentDescription": "Повторно приєднайтеся до зустрічі, щоб увімкнути звук", + "startSilentTitle": "Ви приєдналися в режимі тиші!", + "suboptimalBrowserWarning": "На жаль, ваш веб-браузер не повністю підтримує цю систему вебконференції. Ми працюємо над проблемою, поки що рекомендуємо скористатися такими веб-браузерами.", + "suboptimalExperienceTitle": "Веб-браузер не підтримується", + "unmute": "Увімкнути мікрофон", + "videoMutedRemotelyDescription": "Ви завжди можете включити її знову.", + "videoMutedRemotelyTitle": "{{participantDisplayName}} вимкнув вашу камеру", + "videoUnmuteBlockedDescription": "Увімкнення камери та спільний перегляд екрана тимчасово заблоковано через системні обмеження.", + "videoUnmuteBlockedTitle": "Увімкнення камери та спільний перегляд екрана заблоковано!", + "viewLobby": "Переглянути приймальну", + "waitingParticipants": "{{waitingParticipants}} учасників" + }, + "participantsPane": { + "actions": { + "admit": "Допустити", + "admitAll": "Допустити всіх", + "allow": "Дозволити учасникам:", + "allowVideo": "Розблокувати камеру", + "askUnmute": "Надати слово", + "audioModeration": "Вмикати свій мікрофон", + "blockEveryoneMicCamera": "Заблокувати всім мікрофон і камеру", + "invite": "Запросити", + "moreModerationActions": "Додаткові налаштування модерації", + "moreModerationControls": "Налаштування модерації", + "moreParticipantOptions": "Додаткові налаштування для учасників", + "mute": "Вимкнути мікрофон", + "muteAll": "Вимкнути мікрофони всім", + "muteEveryoneElse": "Вимкнути мікрофони всім іншим", + "reject": "Відмовити", + "stopEveryonesVideo": "Вимкнути камери всім", + "stopVideo": "Вимкнути камеру", + "unblockEveryoneMicCamera": "Розблокувати всім мікрофон і камеру", + "videoModeration": "Вмикати свою камеру" + }, + "close": "Закрити", + "headings": { + "lobby": "Приймальна ({{count}})", + "participantsList": "Учасники ({{count}})", + "visitors": "Відвідувачі ({{count}})", + "waitingLobby": "Очікують у приймальній ({{count}})" + }, + "search": "Пошук учасників", + "title": "Показати/приховати панель учасників" + }, + "passwordDigitsOnly": "До {{number}} цифр", + "passwordSetRemotely": "Встановлено іншим учасником", + "pinParticipant": "{{participantName}} - Закріпити", + "pinnedParticipant": "Учасник закріплений", + "polls": { + "answer": { + "skip": "Пропустити", + "submit": "Гаразд" + }, + "by": "Від {{ name }}", + "create": { + "addOption": "Додати варіант", + "answerPlaceholder": "Варіант {{index}}", + "cancel": "Скасувати", + "create": "Створити опитування", + "pollOption": "Варіант відповіді {{index}}", + "pollQuestion": "Питання", + "questionPlaceholder": "Поставте запитання", + "removeOption": "Вилучити", + "send": "Надіслати" + }, + "errors": { + "notUniqueOption": "Параметри повинні бути унікальними" + }, + "notification": { + "description": "Щоб проголосувати, відкрийте вкладку опитувань", + "title": "Додано нове опитування" + }, + "results": { + "changeVote": "Змінити ваш вибір", + "empty": "Опитувань ще немає. Розпочніть опитування тут!", + "hideDetailedResults": "Стисло", + "showDetailedResults": "Докладно", + "vote": "Голосувати" + } + }, + "poweredby": "на основі", + "prejoin": { + "audioAndVideoError": "Помилка аудіо та відео:", + "audioDeviceProblem": "Виникла проблема з вашим звуковим пристроєм", + "audioOnlyError": "Помилка аудіо:", + "audioTrackError": "Не вдалось створити звукову доріжку.", + "callMe": "Зателефонуйте мені", + "callMeAtNumber": "Зателефонуйте мені за цим номером:", + "calling": "З'єднуємо", + "configuringDevices": "Налаштування пристроїв…", + "connectedWithAudioQ": "Ви приєдналися у режимі зі звуком?", + "connection": { + "good": "Якість вашого підключення до Інтернету є нормальною!", + "nonOptimal": "Якість вашого підключення до Інтернету не є оптимальною", + "poor": "У вас погана якість підключення до Інтернету" + }, + "connectionDetails": { + "audioClipping": "Ми очікуємо, що ваш звук може бути спотворений.", + "audioHighQuality": "Ми очікуємо, що ваш звук матиме відмінну якість.", + "audioLowNoVideo": "Ми очікуємо, що якість вашого звуку буде низькою, а відео відсутнє.", + "goodQuality": "Ви можете розраховувати на чудову якість звуку та відео.", + "noMediaConnectivity": "Нам не вдалося знайти спосіб встановити мультимедійне з'єднання для цього тесту. Зазвичай це спричинено брандмауером або NAT.", + "noVideo": "Ми очікуємо, що якість вашого відео буде неприємно низькою.", + "undetectable": "Якщо ви все ще не можете здійснювати дзвінки в веб-браузері, ми рекомендуємо вам переконатися, що ваші динаміки, мікрофон і камера налаштовані належним чином, що ви надали своєму веб-браузеру права на використання мікрофона та камери, і що ваш веб-браузер оновлений до останньої версії. Якщо у вас все ще виникають проблеми з дзвінками, вам слід зв'язатися з розробником цієї веб-програми.", + "veryPoorConnection": "Ми очікуємо, що якість вашого відео буде абсолютно низькою.", + "videoFreezing": "Ми очікуємо, що ваше відео зависне, буде чорним і піксельним.", + "videoHighQuality": "Ми очікуємо, що ваше відео буде якісним.", + "videoLowQuality": "Ми очікуємо, що ваше відео матиме низьку якість з точки зору частоти кадрів і роздільної здатності.", + "videoTearing": "Ми очікуємо, що ваше відео буде піксельним або матиме візуальні артефакти." + }, + "copyAndShare": "Скопіювати та поділитись посиланням на зустріч", + "dialInMeeting": "Приєднатися телефоном", + "dialInPin": "Зателефонуйте на зустріч і введіть PIN-код:", + "dialing": "Виклик", + "doNotShow": "Не показувати знову", + "errorDialOut": "Не вдалося почати дзвінок", + "errorDialOutDisconnected": "Не вдалося почати дзвінок. Роз'єднано", + "errorDialOutFailed": "Не вдалося почати дзвінок. Помилка з'єднання", + "errorDialOutStatus": "Помилка отримання статусу з'єднання", + "errorMissingName": "Зазначте своє ім'я, щоб приєднатися до зустрічі", + "errorNoPermissions": "Увімкніть доступ до мікрофона та камери", + "errorStatusCode": "Помилка з'єднання, код статусу: {{status}}", + "errorValidation": "Неправильний номер", + "iWantToDialIn": "Я хочу зателефонувати", + "initiated": "Дзвінок розпочато", + "joinAudioByPhone": "Приєднатися з аудіо на телефоні", + "joinMeeting": "Приєднатися до зустрічі", + "joinMeetingInLowBandwidthMode": "Приєднатися в режимі економії", + "joinWithoutAudio": "Приєднатися в режимі тиші", + "keyboardShortcuts": "Увімкнути комбінації клавіш", + "linkCopied": "Посилання скопійовано в буфер обміну", + "lookGood": "Ваш мікрофон працює коректно", + "or": "або", + "premeeting": "Перед приєднанням", + "screenSharingError": "Помилка спільного перегляду екрана:", + "startWithPhone": "Почати в режимі телефону", + "videoOnlyError": "Помилка відео:", + "videoTrackError": "Не вдалося створити трек відео.", + "viewAllNumbers": "переглянути всі номери" + }, + "presenceStatus": { + "busy": "Зайнятий", + "calling": "Телефонує…", + "connected": "З'єднано", + "connecting": "З'єднується…", + "connecting2": "З'єднується*…", + "disconnected": "Від'єднано", + "expired": "Недійсний", + "ignored": "Пропустив", + "initializingCall": "Ініціалізація виклику…", + "invited": "Запрошений", + "rejected": "Відмовився", + "ringing": "Дзвінок…" + }, + "profile": { + "avatar": "аватар", + "setDisplayNameLabel": "Ім'я", + "setEmailInput": "Зазначте email", + "setEmailLabel": "Email-адреса для Gravatar", + "title": "Профіль" + }, + "raisedHand": "Хоче взяти слово", + "raisedHandsLabel": "Кількість піднятих рук", + "record": { + "already": { + "linked": "Зустріч уже пов'язана з цим об'єктом Salesforce." + }, + "type": { + "account": "Обліковий запис", + "contact": "Контакт", + "lead": "Потенційний клієнт", + "opportunity": "Можливість", + "owner": "Власник" + } + }, + "recording": { + "authDropboxText": "Завантажити до Dropbox", + "availableSpace": "Доступно місця: {{spaceLeft}} МБ (приблизно {{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": "Підготовка до запису зустрічі…", + "rec": "REC", + "saveLocalRecording": "Зберегти файл запису локально (ТЕСТУВАННЯ)", + "serviceDescription": "Ваш запис буде збережено послугою запису", + "serviceDescriptionCloud": "Хмарний запис", + "serviceDescriptionCloudInfo": "Записані зустрічі будуть видалені автоматично через 24 години після їх запису.", + "serviceName": "Служба запису", + "sessionAlreadyActive": "Ця зустріч вже записується або транслюється наживо.", + "signIn": "Увійти", + "signOut": "Вийти", + "surfaceError": "Виберіть поточну вкладку.", + "title": "Запис", + "unavailable": "Служба {{serviceName}} зараз недоступна. Ми працюємо над виправленням цієї помилки. Спробуйте пізніше.", + "unavailableTitle": "Запис недоступний", + "uploadToCloud": "Завантажити в хмару" + }, + "screenshareDisplayName": "Екран {{name}}", + "sectionList": { + "pullToRefresh": "Потягніть, щоб оновити" + }, + "security": { + "about": "Ви можете додати $t(lockRoomPassword) для захисту вашої зустрічі. Учасникам потрібно буде ввести $t(lockRoomPassword), перш ніж їм буде дозволено приєднатися до зустрічі.", + "aboutReadOnly": "Модератори можуть додати $t(lockRoomPassword) для захисту зустрічі. Учасникам потрібно буде ввести $t(lockRoomPassword), перш ніж їм буде дозволено приєднатися до зустрічі.", + "insecureRoomNameWarning": "Назва кімнати не є безпечною. Сторонні люди можуть приєднатися до вашої зустрічі. Подбайте про додатковий захист вашої зустрічі за допомогою налаштувань параметрів безпеки.", + "title": "Параметри безпеки" + }, + "settings": { + "audio": "Аудіо", + "buttonLabel": "Налаштування", + "calendar": { + "about": "Інтеграція календаря дає {{appName}} безпечний доступ до вашого календаря та запланованих подій.", + "disconnect": "Від'єднатися", + "microsoftSignIn": "Увійти до послуг Microsoft", + "signedIn": "Доступ до календаря увімкнено для {{email}}. Натисніть кнопку «Від'єднатися», щоб припинити доступ до календаря.", + "title": "Календар" + }, + "desktopShareFramerate": "Частота кадрів під час спільного перегляду екрана", + "desktopShareHighFpsWarning": "Вища частота кадрів під час спільного перегляду екрана може вплинути на вашу пропускну здатність. Перезапустіть функцію спільного доступу до екрана, щоб нові налаштування набрали чинності.", + "desktopShareWarning": "Перезапустіть спільний перегляд екрана, щоб нові налаштування набрали чинності.", + "devices": "Пристрої", + "followMe": "Усі дивляться на мене", + "framesPerSecond": "кадрів за секунду", + "incomingMessage": "Вхідне повідомлення", + "language": "Мова", + "loggedIn": "Увійшли як {{name}}", + "maxStageParticipants": "Максимальна кількість учасників, яку можна закріпити на головній сцені", + "microphones": "Мікрофони", + "moderator": "Модератор", + "moderatorOptions": "Параметри модерації", + "more": "Загальні параметри", + "name": "Ім'я", + "noDevice": "Немає", + "notifications": "Сповіщення", + "participantJoined": "Учасник приєднався до зустрічі", + "participantKnocking": "Учасник зайшов у приймальну", + "participantLeft": "Учасник покинув зустріч", + "playSounds": "Увімкнути звукові сповіщення:", + "reactions": "Емоційна реакція", + "sameAsSystem": "Системний пристрій ({{label}})", + "selectAudioOutput": "Вивід звуку", + "selectCamera": "Камера", + "selectMic": "Мікрофон", + "selfView": "Вид на себе", + "shortcuts": "Комбінації клавіш", + "speakers": "Динаміки", + "startAudioMuted": "Усі починають з вимкненим мікрофоном", + "startReactionsMuted": "Вимкнути звуки реакції для всіх", + "startVideoMuted": "Усі починають з вимкненим відео", + "talkWhileMuted": "Спроба говорити, коли мікрофон вимкнено", + "title": "Налаштування", + "video": "Відео" + }, + "settingsView": { + "advanced": "Додатково", + "alertCancel": "Скасувати", + "alertOk": "Гаразд", + "alertTitle": "Увага", + "alertURLText": "Зазначена URL-адреса сервера недійсна", + "buildInfoSection": "Збірка", + "conferenceSection": "Приєднатися телефоном", + "disableCallIntegration": "Вимкнути вбудовану інтеграцію дзвінків", + "disableCrashReporting": "Вимкнути звіти про збої", + "disableCrashReportingWarning": "Вимкнути звіти про збої? Налаштування наберуть чинності після перезапуску програми.", + "disableP2P": "Вимкнути режим «Peer-to-Peer»", + "displayName": "Ім'я на екрані", + "displayNamePlaceholderText": "Наприклад: Іван Безіменний", + "email": "Електронна пошта", + "emailPlaceholderText": "email@example.com", + "goTo": "Гаразд", + "header": "Налаштування", + "help": "Довідка", + "links": "Посилання", + "privacy": "Конфіденційність", + "profileSection": "Профіль", + "serverURL": "URL-адреса сервера", + "showAdvanced": "Показати додаткові налаштування", + "startCarModeInLowBandwidthMode": "Починати режим «За кермом» у режимі економії", + "startWithAudioMuted": "Починати з вимкненим мікрофоном", + "startWithVideoMuted": "Починати з вимкненою камерою", + "terms": "Умови користування", + "version": "Версія" + }, + "share": { + "dialInfoText": "\n\n=====\n\nХочете приєднатися телефоном?\n\n{{defaultDialInNumber}}Натисніть це посилання, щоб переглянути номери телефонів для цієї зустрічі\n{{dialInfoPageUrl}}", + "mainText": "Натисніть це посилання, щоб приєднатися до зустрічі:\n{{roomUrl}}" + }, + "speaker": "Динамік", + "speakerStats": { + "angry": "серджуся", + "disgusted": "огидно", + "displayEmotions": "Показати емоції", + "fearful": "страшно", + "happy": "радію", + "hours": "{{count}}г", + "minutes": "{{count}}хв", + "name": "Ім'я", + "neutral": "нормально", + "sad": "сумую", + "search": "Пошук", + "searchHint": "Пошук учасників", + "seconds": "{{count}} с", + "speakerStats": "Статистика спілкування", + "speakerTime": "Час спілкування", + "surprised": "подив" + }, + "startupoverlay": { + "genericTitle": "Для зустрічі необхідний доступ до мікрофона та камери.", + "policyText": " ", + "title": "{{app}} потрібен доступ до мікрофона і камери." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Приєднатися знову", + "text": "Для відновлення зв'язку натисніть на кнопку «Приєднатися знову».", + "title": "Зв'язок перервано. Причина: цей комп'ютер перейшов у сплячий режим." + }, + "termsView": { + "title": "Умови користування" + }, + "toggleTopPanelLabel": "Показати/приховати верхню панель", + "toolbar": { + "Settings": "Налаштування", + "accessibilityLabel": { + "Settings": "Показати/приховати меню налаштувань", + "audioOnly": "Лише звук", + "audioRoute": "Вибрати звуковий пристрій", + "boo": "невдоволення", + "breakoutRoom": "Приєднатися/вийти з підгрупи", + "callQuality": "Налаштування продуктивності", + "carmode": "Режим «За кермом»", + "cc": "Субтитри", + "chat": "Показати/приховати чат", + "clap": "Овації", + "closeChat": "Приховати чат", + "closeMoreActions": "Приховати меню додаткових команд", + "closeParticipantsPane": "Приховати панель учасників", + "collapse": "Згорнути", + "document": "Відкрити/закрити спільний документ", + "documentClose": "Закрити спільний документ", + "documentOpen": "Відкрити спільний документ", + "download": "Звантажити мобільний застосунок", + "embedMeeting": "Вставити зустріч", + "endConference": "Завершити зустріч для всіх", + "enterFullScreen": "Показати на весь екран", + "enterTileView": "Показати плитки", + "exitFullScreen": "Вийти з режиму на весь екран", + "exitTileView": "Вийти з режиму плиток", + "expand": "Розгорнути", + "feedback": "Залишити відгук", + "fullScreen": "На весь екран", + "giphy": "Показати/приховати меню GIPHY", + "grantModerator": "Надати права модератора", + "hangup": "Покинути зустріч", + "heading": "Панель інструментів", + "help": "Довідка", + "hideWhiteboard": "Приховати дошку", + "invite": "Запросити на зустріч", + "kick": "Від'єднати учасника", + "laugh": "Сміюся", + "leaveConference": "Покинути зустріч", + "like": "Подобається", + "linkToSalesforce": "Пов'язати з Salesforce", + "lobbyButton": "Увімкнути/вимкнути приймальну", + "localRecording": "Показати/приховати панель керування відеозаписом", + "lockRoom": "Встановити/прибрати пароль", + "lowerHand": "Опустити руку", + "moreActions": "Додаткові команди", + "moreActionsMenu": "Меню додаткових команд", + "moreOptions": "Додаткові параметри", + "mute": "Вимкнути мікрофон", + "muteEveryone": "Вимкнути мікрофони всім", + "muteEveryoneElse": "Вимкнути мікрофони всім іншим", + "muteEveryoneElsesVideoStream": "Вимкнути камери всім іншим", + "muteEveryonesVideoStream": "Вимкнути камери всім", + "noiseSuppression": "Придушення шуму", + "openChat": "Показати чат", + "participants": "Показати панель учасників", + "pip": "Увімкнути/вимкнути режим «Картинка в картинці».", + "privateMessage": "Надіслати приватне повідомлення", + "profile": "Редагувати профіль", + "raiseHand": "Підняти руку", + "reactionsMenu": "Меню реакцій", + "recording": "Увімкнути/вимкнути відеозапис", + "remoteMute": "Вимкнути мікрофон учасника", + "remoteVideoMute": "Вимкнути камеру учасника", + "security": "Параметри безпеки", + "selectBackground": "Виберіть фон", + "selfView": "Показати/приховати вид на себе", + "shareRoom": "Запросити на зустріч", + "shareYourScreen": "Спільний перегляд екрана", + "shareaudio": "Поділитися аудіо", + "sharedvideo": "Почати спільне відео", + "shortcuts": "Показати/приховати комбінації клавіш", + "show": "Показати на сцені", + "showWhiteboard": "Показати дошку", + "silence": "Тиша", + "speakerStats": "Показати/приховати статистику спілкування", + "stopScreenSharing": "Вимкнути спільний перегляд екрана", + "stopSharedVideo": "Зупинити спільне відео", + "surprised": "Подив", + "tileView": "Увімкнути/вимкнути плитки", + "toggleCamera": "Увімкнути/вимкнути камеру", + "toggleFilmstrip": "Показати/приховати панель видів", + "unmute": "Увімкнути мікрофон", + "videoblur": "Увімкнути/вимкнути розмиття фону", + "videomute": "Вимкнути камеру", + "videounmute": "Увімкнути камеру" + }, + "addPeople": "Додати учасників до зустрічі", + "audioOnlyOff": "Вимкнути режим економії", + "audioOnlyOn": "Увімкнути режим економії", + "audioRoute": "Вибрати звуковий пристрій", + "audioSettings": "Налаштування звуку", + "authenticate": "Авторизуватися", + "boo": "невдоволення", + "callQuality": "Налаштування продуктивності", + "chat": "Показати/приховати чат", + "clap": "овації", + "closeChat": "Панель чату", + "closeParticipantsPane": "Приховати панель учасників", + "closeReactionsMenu": "Закрити меню реакцій", + "disableNoiseSuppression": "Вимкнути придушення шуму", + "disableReactionSounds": "Ви можете вимкнути звуки реакції для цієї зустрічі", + "documentClose": "Закрити спільний документ", + "documentOpen": "Відкрити спільний документ", + "download": "Звантажити мобільний застосунок", + "e2ee": "Наскрізне шифрування", + "embedMeeting": "Вставити зустріч", + "enableNoiseSuppression": "Увімкнути придушення шуму", + "endConference": "Завершити зустріч для всіх", + "enterFullScreen": "На весь екран", + "enterTileView": "Режим плиток", + "exitFullScreen": "Вийти з повноекранного режиму", + "exitTileView": "З наближенням", + "feedback": "Залишити відгук", + "giphy": "Меню GIPHY", + "hangup": "Покинути зустріч", + "help": "Довідка", + "hideWhiteboard": "Приховати дошку", + "invite": "Запросити", + "joinBreakoutRoom": "Приєднатися до кімнати підгрупи", + "laugh": "сміюся", + "leaveBreakoutRoom": "Вийти з кімнати підгрупи", + "leaveConference": "Покинути зустріч", + "like": "подобається", + "linkToSalesforce": "Пов'язати з Salesforce", + "lobbyButtonDisable": "Вимкнути приймальну", + "lobbyButtonEnable": "Увімкнути приймальну", + "login": "Увійти", + "logout": "Вийти", + "lowerYourHand": "Опустити руку", + "moreActions": "Додаткові команди", + "moreOptions": "Додаткові параметри", + "mute": "Вимкнути мікрофон", + "muteEveryone": "Вимкнути мікрофони всім", + "muteEveryonesVideo": "Вимкнути камери всім", + "noAudioSignalDesc": "Якщо ви не вимикали мікрофон у системних або апаратних налаштуваннях, спробуйте перемикнути його.", + "noAudioSignalDescSuggestion": "Якщо ви не вимикали мікрофон у системних або апаратних налаштуваннях, спробуйте скористатися рекомендованим пристроєм.", + "noAudioSignalDialInDesc": "Також ви можете зателефонувати на зустріч:", + "noAudioSignalDialInLinkDesc": "Номери телефонів для приєднання", + "noAudioSignalTitle": "Немає сигналу з мікрофона!", + "noiseSuppression": "Придушення шуму", + "noisyAudioInputDesc": "Ваш мікрофон створює багато шуму. Вимкніть його або змініть пристрій.", + "noisyAudioInputTitle": "Ваш мікрофон шумить!", + "openChat": "Панель чату", + "openReactionsMenu": "Показати меню реакцій", + "participants": "Панель учасників", + "pip": "Режим «Картинка-у-картинці»", + "privateMessage": "Надіслати приватне повідомлення", + "profile": "Редагувати профіль", + "raiseHand": "Підняти руку", + "raiseYourHand": "Підняти руку", + "reactionBoo": "Надіслати реакцію «невдоволення»", + "reactionClap": "Надіслати реакцію «овації»", + "reactionLaugh": "Надіслати реакцію «сміюся»", + "reactionLike": "Надіслати реакцію «подобається»", + "reactionSilence": "Надіслати реакцію «тиша»", + "reactionSurprised": "Надіслати реакцію «подив»", + "security": "Параметри безпеки", + "selectBackground": "Встановити фон", + "shareRoom": "Запросити", + "shareaudio": "Поділитися аудіо", + "sharedvideo": "Поділитися відео", + "shortcuts": "Комбінації клавіш", + "showWhiteboard": "Показати дошку", + "silence": "тиша", + "speakerStats": "Статистика спілкування", + "startScreenSharing": "Увімкнути спільний перегляд екрана", + "startSubtitles": "Субтитри • {{language}}", + "stopAudioSharing": "Зупинити спільне аудіо", + "stopScreenSharing": "Вимкнути спільний перегляд екрана", + "stopSharedVideo": "Зупинити спільне відео", + "stopSubtitles": "Вимкнути субтитри", + "surprised": "подив", + "talkWhileMutedPopup": "Намагаєтесь говорити? Ваш мікрофон вимкнено.", + "tileViewToggle": "Плитки", + "toggleCamera": "Увімкнути/вимкнути камеру", + "unmute": "Увімкнути мікрофон", + "videoSettings": "Налаштування камери", + "videomute": "Вимкнути камеру", + "videounmute": "Увімкнути камеру" + }, + "transcribing": { + "ccButtonTooltip": "Субтитри", + "error": "Помилка послуги транскрибування. Спробуйте пізніше.", + "expandedLabel": "Транскрибування активне", + "failedToStart": "Не вдалося почати транскрибування", + "labelToolTip": "Зустріч транскрибується", + "off": "Транскрибування зупинено", + "pending": "Підготовка до транскрибування зустрічі…", + "sourceLanguageDesc": "Поточна мова зустрічі {{sourceLanguage}}.
Ви можете її змінити ", + "sourceLanguageHere": "тут", + "start": "Показувати субтитри", + "stop": "Припинити показ субтитрів", + "subtitles": "Субтитри", + "subtitlesOff": "Вимкнені", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Відкріпити", + "userMedia": { + "grantPermissions": "Надайте дозвіл на доступ до камери та мікрофона." + }, + "videoSIPGW": { + "busy": "Ми працюємо над вивільненням ресурсів. Спробуйте за декілька хвилин.", + "busyTitle": "Ресурси служби Кімната зайняті", + "errorAlreadyInvited": "{{displayName}} вже запрошено", + "errorInvite": "Зустріч ще не почалася. Спробуйте пізніше.", + "errorInviteFailed": "Ми працюємо над вирішенням проблеми. Спробуйте пізніше.", + "errorInviteFailedTitle": "Помилка із запрошенням {{displayName}}", + "errorInviteTitle": "Помилка запрошення до кімнати", + "pending": "{{displayName}} було запрошено" + }, + "videoStatus": { + "adjustFor": "Рівень:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Увімкнено режим економії трафіку. У цьому режимі доступні лише аудіо та можливість спільного перегляду екрану інших учасників.", + "bestPerformance": "Найкраща продуктивність", + "callQuality": "Якість відео", + "hd": "HD", + "hdTooltip": "Відео високої якості", + "highDefinition": "Висока якість (HD)", + "highestQuality": "Найвища якість", + "labelTooiltipNoVideo": "Без відео", + "labelTooltipAudioOnly": "Увімкнено режим заощадження трафіку", + "ld": "LD", + "ldTooltip": "Відео низької якості", + "lowDefinition": "Низька якість (LD)", + "performanceSettings": "Параметри продуктивності", + "recording": "Триває запис", + "sd": "SD", + "sdTooltip": "Відео стандартної якості", + "standardDefinition": "Стандартна якість (SD)", + "streaming": "Триває трансляція" + }, + "videothumbnail": { + "connectionInfo": "Інформація про з'єднання", + "domute": "Вимкнути мікрофон", + "domuteOthers": "Вимкнути мікрофони всім іншим", + "domuteVideo": "Вимкнути камеру", + "domuteVideoOfOthers": "Вимкнути камери всім іншим", + "flip": "Перевернути дзеркально", + "grantModerator": "Надати права модератора", + "hideSelfView": "Приховати вид на себе", + "kick": "Від'єднати", + "mirrorVideo": "Віддзеркалити моє відео", + "moderator": "Модератор", + "mute": "Мікрофон учасника вимкнено", + "muted": "Вимкнено мікрофон", + "pinToStage": "Закріпити на сцені", + "remoteControl": "Дистанційне керування", + "screenSharing": "Учасник показує свій екран", + "show": "Показати на сцені", + "showSelfView": "Показати вид на себе", + "unpinFromStage": "Відкріпити", + "verify": "Підтвердити особу учасника", + "videoMuted": "Камера вимкнена", + "videomute": "Учасник вимкнув камеру" + }, + "virtualBackground": { + "addBackground": "Додати фон з файлу", + "apply": "Застосувати", + "backgroundEffectError": "Не вдалося застосувати фоновий ефект.", + "blur": "Розмиття", + "deleteImage": "Видалити зображення", + "desktopShare": "Екран для спільного перегляду", + "desktopShareError": "Не вдалося створити екран для спільного перегляду", + "image1": "Пляж", + "image2": "Біла стіна", + "image3": "Біла порожня кімната", + "image4": "Чорний торшер", + "image5": "Гори", + "image6": "Ліс ", + "image7": "Схід сонця", + "none": "Немає", + "pleaseWait": "Будь ласка, зачекайте…", + "removeBackground": "Прибрати фон", + "slightBlur": "Напіврозмиття", + "title": "Віртуальні фони", + "uploadedImage": "Завантажена картинка {{index}}", + "webAssemblyWarning": "WebAssembly не підтримується", + "webAssemblyWarningDescription": "WebAssembly вимкнено або не підтримується цим веб-браузером" + }, + "visitorsLabel": "Кількість відвідувачів: {{count}}", + "volumeSlider": "Регулятор гучності", + "welcomepage": { + "accessibilityLabel": { + "join": "Натисніть для приєднання", + "roomname": "Зазначте назву кімнати" + }, + "addMeetingName": "Додати назву зустрічі", + "appDescription": "Спробуйте провести відеозустріч з вашою командою. Запрошуйте всіх своїх знайомих! {{app}} — рішення для відеоконференцій із 100% відкритим вихідним кодом, яке забезпечує наскрізне шифрування зв'язку. Користуйтеся кожен день, безкоштовно і без реєстрації.", + "audioVideoSwitch": { + "audio": "Без відео", + "video": "З відео" + }, + "calendar": "Календар", + "connectCalendarButton": "Пов'язати календар", + "connectCalendarText": "Пов'яжіть ваш календар, щоб побачити зустрічі, заплановані в {{app}}. Це також дозволить вам планувати нові {{provider}} зустрічі заздалегідь і починати зустріч одним натисканням на її посиланні.", + "enterRoomTitle": "Почати нову зустріч", + "getHelp": "Довідка", + "go": "Гаразд", + "goSmall": "Гаразд", + "headerSubtitle": "Захищений та якісний відеозв'язок", + "headerTitle": "Jitsi Meet", + "info": "Телефонний зв'язок", + "jitsiOnMobile": "Jitsi на мобільному пристрої – завантажуйте наші застосунки та починайте зустрічі, де б ви не були", + "join": "Створити або приєднатися", + "logo": { + "calendar": "Логотип Календаря", + "desktopPreviewThumbnail": "Мініатюра виду екрана учасника", + "googleLogo": "Логотип Google", + "logoDeepLinking": "Логотип Jitsi Meet", + "microsoftLogo": "Логотип Microsoft", + "policyLogo": "Логотип політики" + }, + "meetingsAccessibilityLabel": "Зустрічі", + "mobileDownLoadLinkAndroid": "Завантажте мобільний застосунок для Android", + "mobileDownLoadLinkFDroid": "Завантажте мобільний застосунок для F-Droid", + "mobileDownLoadLinkIos": "Завантажте мобільний застосунок для iOS", + "moderatedMessage": "Або організуйте модеровану зустріч і розпочніть її як модератор.", + "privacy": "Конфіденційність", + "recentList": "Нещодавні", + "recentListDelete": "Вилучити", + "recentListEmpty": "Зараз ваш список нещодавніх зустрічей порожній. Починайте спілкування, і ви знайдете тут усі свої нещодавні зустрічі.", + "recentMeetings": "Нещодавні зустрічі", + "reducedUIText": "Вітаємо у {{app}}!", + "roomNameAllowedChars": "Назва зустрічі не повинна містити такі символи: ?, &, :, ', \", %, #.", + "roomname": "Зазначте назву кімнати", + "roomnameHint": "Зазначте назву кімнати або URL-адресу зустрічі, до якої ви хочете приєднатися. Ви можете придумати будь-яку назву. Повідомте її іншим учасникам, щоб вони приєднувалися до цієї кімнати.", + "sendFeedback": "Надіслати відгук", + "settings": "Налаштування", + "startMeeting": "Почати зустріч", + "terms": "Умови користування", + "title": "Захищена, повнофункціональна та безкоштовна система відеоконференцій", + "upcomingMeetings": "Заплановані зустрічі" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Дошка" + } + } +} diff --git a/lang/main-vi.json b/lang/main-vi.json new file mode 100644 index 0000000..3415d6f --- /dev/null +++ b/lang/main-vi.json @@ -0,0 +1,1538 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Meeting link: {{url}}" + }, + "add": "Mời", + "addContacts": "Mời các liên hệ của bạn", + "contacts": "liên lạc", + "copyInvite": "Sao chép lời mời", + "copyLink": "Sao chép liên kết cuộc họp", + "copyStream": "Sao chép liên kết phát trực tiếp", + "countryNotSupported": "Chúng tôi chưa hỗ trợ đích đến này.", + "countryReminder": "Nhớ đảm bảo bắt đầu bằng mã quốc gia!", + "defaultEmail": "Email mặc định của bạn", + "disabled": "Bạn không thể mời thêm người.", + "failedToAdd": "Không thể thêm người tham gia", + "googleEmail": "Email Google", + "inviteMoreHeader": "Bạn là người duy nhất trong cuộc họp", + "inviteMoreMailSubject": "Tham gia cuộc họp {{appName}}", + "inviteMorePrompt": "Mời thêm người tham dự", + "linkCopied": "Liên kết được sao chép vào khay nhớ tạm", + "noResults": "Không tìm được kết quả khớp", + "outlookEmail": "Email Outlook", + "phoneNumbers": "số điện thoại", + "searching": "Đang tìm kiếm…", + "shareInvite": "Chia sẻ lời mời tham dự cuộc họp", + "shareLink": "Chia sẻ đường dẫn để mời người khác tham dự cuộc họp", + "shareStream": "Chia sẻ liên kết phát trực tiếp", + "sipAddresses": "sip addresses", + "telephone": "Số: {{number}}", + "title": "Mời người tham dự cuộc họp này", + "yahooEmail": "Email Yahoo" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Âm thanh xe hơi", + "headphones": "Tai nghe", + "none": "Không có thiết bị âm thanh nào", + "phone": "Điện thoại", + "speaker": "Diễn giả" + }, + "audioOnly": { + "audioOnly": "Chỉ nghe âm thanh" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "ví dụ. 10000000 cho 10 Mb/giây", + "assumedBandwidthBpsWarning": "Giá trị cao hơn có thể gây ra sự cố mạng.", + "customValue": "giá trị tùy chỉnh", + "customValueEffect": "để đặt giá trị bps thực tế", + "leaveEmpty": "để trống", + "leaveEmptyEffect": "cho phép thực hiện các ước tính", + "possibleValues": "Những giá trị khả thi", + "setAssumedBandwidthBps": "Băng thông giả định (bps)", + "title": "Cài đặt băng thông", + "zeroEffect": "để tắt video" + }, + "breakoutRooms": { + "actions": { + "add": "Thêm phòng nhỏ", + "autoAssign": "Tự động chỉ định phòng nhỏ", + "close": "Đóng", + "join": "Tham gia", + "leaveBreakoutRoom": "Rời khỏi phòng nhỏ", + "more": "Thêm", + "remove": "Xoá", + "rename": "Đổi tên", + "renameBreakoutRoom": "Đổi tên phòng nhỏ", + "sendToBreakoutRoom": "Gửi lời mời tham gia đến:" + }, + "breakoutList": "Danh sách phòng nhỏ", + "buttonLabel": "Phòng nhỏ", + "defaultName": "Phòng nhỏ #{{index}}", + "hideParticipantList": "Ẩn danh sách người tham gia", + "mainRoom": "Phòng chính", + "notifications": { + "joined": "Tham gia phòng nhỏ \"{{name}}\"", + "joinedMainRoom": "Vào phòng chính", + "joinedTitle": "Phòng Nhỏ" + }, + "showParticipantList": "Hiển thị danh sách người tham gia", + "title": "Phòng Nhỏ" + }, + "calendarSync": { + "addMeetingURL": "Thêm một liên kết họp", + "confirmAddLink": "Bạn có muốn thêm một liên kiết tới sự kiện này?", + "error": { + "appConfiguration": "Tích hợp lịch chưa được cấu hình đúng.", + "generic": "Có lỗi xảy ra. Vui lòng kiểm tra cấu hình lịch hoặc thử làm mới lịch.", + "notSignedIn": "Một lỗi xảy ra khi xác thực để xem lịch sự kiện. Vui lòng kiểm tra cấu hình lịch và thử đăng nhập lại." + }, + "join": "Tham gia", + "joinTooltip": "Tham gia cuộc họp", + "nextMeeting": "Cuộc họp tiếp theo", + "noEvents": "Không có sự kiện được lên lịch nào tiếp theo.", + "ongoingMeeting": "Cuộc họp đang diễn ra", + "permissionButton": "Mở cấu hình", + "permissionMessage": "Yêu cầu quyền truy cập lịch để thấy cuộc họp của bạn trên ứng dụng.", + "refresh": "Làm mới lịch", + "today": "Hôm nay" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Chọn thiết bị âm thanh" + }, + "labels": { + "buttonLabel": "Chế độ lái xe", + "title": "Chế độ lái xe", + "videoStopped": "Video của bạn đã bị dừng" + } + }, + "chat": { + "enter": "Vào phòng", + "error": "Lỗi: tin nhắn của bạn \"{{originalText}}\" không được gửi. Nguyên nhân: {{error}}", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Tin nhắn trò chuyện tại sảnh tới {{recipient}}", + "message": "Tin nhắn", + "messageAccessibleTitle": "{{user}} nói:", + "messageAccessibleTitleMe": "Tôi nói:", + "messageTo": "Tin nhắn riêng tới {{recipient}}", + "messagebox": "Nhập nội dung tin nhắn", + "newMessages": "Tin nhắn mới", + "nickname": { + "popover": "Chọn tên", + "title": "Nhập tên của bạn để gửi tin nhắn", + "titleWithPolls": "Nhập tên của bạn để gửi tin nhắn" + }, + "noMessagesMessage": "Chưa có tin nhắn nào trong cuộc họp. Bắt đầu một cuộc trò chuyện ở đây!", + "privateNotice": "Tin nhắn riêng tới {{recipient}}", + "sendButton": "Gửi", + "smileysPanel": "Bảng biểu tượng cảm xúc", + "tabs": { + "chat": "Chat", + "polls": "Thăm dò ý kiến" + }, + "title": "Cuộc hội thoại", + "titleWithPolls": "Cuộc hội thoại", + "you": "bạn" + }, + "chromeExtensionBanner": { + "buttonText": "Cài đặt tiện ích mở rộng của Chrome", + "buttonTextEdge": "Cài đặt tiện ích mở rộng của Edge", + "close": "Đóng", + "dontShowAgain": "Đừng cho tôi xem lại cái này", + "installExtensionText": "Cài đặt tiện ích mở rộng để tích hợp Lịch Google và Office 365" + }, + "connectingOverlay": { + "joiningRoom": "Đang kết nối tới cuộc họp của bạn…" + }, + "connection": { + "ATTACHED": "Đã đính kèm", + "AUTHENTICATING": "Đang xác thực", + "AUTHFAIL": "Xác thực thất bại", + "CONNECTED": "Đã kết nối", + "CONNECTING": "Đang kết nối", + "CONNFAIL": "Kết nối thất bại", + "DISCONNECTED": "Đã ngắt kết nối", + "DISCONNECTING": "Đang ngắt kết nối", + "ERROR": "Lỗi", + "FETCH_SESSION_ID": "Đang lấy id phiên…", + "GET_SESSION_ID_ERROR": "Nhận lỗi id phiên: {{code}}", + "GOT_SESSION_ID": "Lấy id phiên… Xong", + "LOW_BANDWIDTH": "Video của {{displayName}} đã bị tắt để tiết kiệm băng thông" + }, + "connectionindicator": { + "address": "Địa chỉ:", + "audio_ssrc": "SSRC âm thanh:", + "bandwidth": "Băng thông:", + "bitrate": "Tốc độ:", + "bridgeCount": "Máy chủ:", + "codecs": "Codecs (A/V): ", + "connectedTo": "Đã kết nối tới:", + "e2eeVerified": "E2EE đã xác minh:", + "framerate": "FPS:", + "less": "Hiển thị ít hơn", + "localaddress": "Địa chỉ local", + "localaddress_plural": "Địa chỉ local", + "localport": "Local port:", + "localport_plural": "Local ports:", + "maxEnabledResolution": "gửi tối đa", + "more": "Hiển thị nhiều hơn", + "no": "không", + "packetloss": "Dữ liệu hỏng:", + "participant_id": "ID người tham dự:", + "quality": { + "good": "Tốt", + "inactive": "Đang treo máy", + "lost": "Mất kết nối", + "nonoptimal": "Không tối ưu", + "poor": "Kém chất lượng" + }, + "remoteaddress": "Địa chỉ remote:", + "remoteaddress_plural": "Địa chỉ remote:", + "remoteport": "Remote port:", + "remoteport_plural": "Remote port:", + "resolution": "Độ phân giải:", + "savelogs": "Lưu logs", + "status": "Trạng thái kết nối:", + "transport": "Transport:", + "transport_plural": "Transports:", + "video_ssrc": "Video SSRC:", + "yes": "Đồng ý" + }, + "dateUtils": { + "earlier": "Sớm hơn", + "today": "Hôm nay", + "yesterday": "Hôm qua" + }, + "deepLinking": { + "appNotInstalled": "Bạn cần ứng dụng {{app}} để tham gia vào cuộc họp này bằng điện thoại.", + "description": "Chúng tôi đã yêu cầu chạy cuộc họp trên ứng dụng {{app}}, ứng dụng vẫn không mở? Thử lại hoặc chạy trên trang web.", + "descriptionNew": "Không có chuyện gì xảy ra? Chúng tôi đã thử khởi chạy cuộc họp của bạn trong ứng dụng máy tính để bàn {{app}}.

Bạn có thể thử lại hoặc khởi chạy nó trên web.", + "descriptionWithoutWeb": "Chúng tôi đã yêu cầu chạy cuộc họp trên ứng dụng {{app}}, ứng dụng vẫn không mở? Hãy thử lại.", + "downloadApp": "Tải ứng dụng", + "downloadMobileApp": "Tải xuống từ App Store", + "ifDoNotHaveApp": "Nếu bạn chưa có ứng dụng:", + "ifHaveApp": "Nếu bạn đã có ứng dụng:", + "joinInApp": "Tham gia cuộc họp này bằng ứng dụng", + "joinInAppNew": "Tham gia vào ứng dụng", + "joinInBrowser": "Tham gia trong trình duyệt", + "launchMeetingLabel": "Bạn muốn tham gia cuộc họp này bằng cách nào?", + "launchWebButton": "Chạy trên trang web", + "noDesktopApp": "Bạn không có ứng dụng này?", + "noMobileApp": "Bạn không có ứng dụng này?", + "or": "VÀ", + "termsAndConditions": "Bằng việc tiếp tục, bạn đồng ý với điều khoản và điều kiện của chúng tôi.", + "title": "Thực hiện cuộc họp trên {{app}}…", + "titleNew": "Đang khởi động cuộc họp của bạn…", + "tryAgainButton": "Thử lại", + "unsupportedBrowser": "Có vẻ như bạn đang sử dụng trình duyệt mà chúng tôi không hỗ trợ." + }, + "defaultLink": "Ví dụ: {{url}}", + "defaultNickname": "Ví dụ. Jane Pink", + "deviceError": { + "cameraError": "Truy cập camera thất bại", + "cameraPermission": "Lỗi cấp quyền camera", + "microphoneError": "Truy cập micro thất bại", + "microphonePermission": "Lỗi cấp quyền micro" + }, + "deviceSelection": { + "hid": { + "callControl": "Kiểm soát cuộc gọi", + "connectedDevices": "Các thiết bị đã được kết nối:", + "deleteDevice": "Xoá thiết bị", + "pairDevice": "Ghép nối thiết bị" + }, + "noPermission": "Không được cấp quyền", + "previewUnavailable": "Xem trước không khả dụng", + "selectADevice": "Chọn một thiết bị", + "testAudio": "Phát thử âm thanh" + }, + "dialIn": { + "screenTitle": "Tóm tắt" + }, + "dialOut": { + "statusMessage": "hiện đang {{status}}" + }, + "dialog": { + "Back": "Quay lại", + "Cancel": "Hủy", + "IamHost": "Mình là quản trị viên", + "Ok": "Đồng ý", + "Remove": "Xóa", + "Share": "Chia sẻ", + "Submit": "Đăng ký", + "WaitForHostMsg": "Cuộc họp chưa được bắt đầu. Nếu bạn là quản trị viên vui lòng xác thực. Nếu không, vui lòng đợi quản trị viên.", + "WaitingForHost": "Đang đợi quản trị viên…", + "WaitingForHostButton": "Chờ người điều hành", + "WaitingForHostTitle": "Chờ người điều hành…", + "Yes": "Có", + "accessibilityLabel": { + "Cancel": "Hủy (rời khỏi hộp thoại)", + "Ok": "OK (lưu và thoát khỏi hộp thoại)", + "close": "Đóng hộp thoại", + "liveStreaming": "Phát trực tuyến", + "sharingTabs": "Lựa chọn chia sẻ" + }, + "add": "Thêm", + "addMeetingNote": "Thêm ghi chú về cuộc họp này", + "addOptionalNote": "Thêm ghi chú (tùy chọn):", + "allow": "Cho phép", + "allowToggleCameraDialog": "Bạn có cho phép {{initiatorName}} chuyển đổi chế độ quay mặt vào máy ảnh của mình không?", + "allowToggleCameraTitle": "Cho phép chuyển đổi camera?", + "alreadySharedVideoMsg": "Một người tham gia khác đã chia sẻ video. Hội nghị này chỉ cho phép một video được chia sẻ tại một thời điểm.", + "alreadySharedVideoTitle": "Chỉ một người được chia sẻ video đồng thời.", + "applicationWindow": "Cửa sổ ứng dụng", + "authenticationRequired": "Yêu cầu xác thực", + "cameraConstraintFailedError": "Camera của bạn không đáp ứng được một số yêu cầu bắt buộc.", + "cameraNotFoundError": "Không tìm thấy camera.", + "cameraNotSendingData": "Không truy cập được camera của bạn. Kiểm tra xem có ứng dung khác đang sử dụng camera không, hoặc chọn một camera khác trong phần cài đặt, hay tải lại ứng dụng", + "cameraNotSendingDataTitle": "Không truy cập được camera", + "cameraPermissionDeniedError": "Bạn chưa cho phép sử dụng camera của mình. Bạn vẫn có thể tham gia cuộc họp nhưng những người khác sẽ không nhìn thấy bạn. Sử dụng nút camera trên thanh điều hướng để sửa lỗi này.", + "cameraTimeoutError": "Không thể bắt đầu nguồn video. Đã hết thời gian chờ!", + "cameraUnknownError": "Không thể sử dụng camera vì một lý do không xác định.", + "cameraUnsupportedResolutionError": "Camera của bạn không hỗ trợ độ phân giải video yêu cầu.", + "close": "Đóng", + "conferenceDisconnectMsg": "Bạn có thể cần kiểm tra kết nối mạng của mình. Đang kết nối lại trong {{seconds}} giây…", + "conferenceDisconnectTitle": "Bạn đã bị ngắt kết nối.", + "conferenceReloadMsg": "Chúng tôi đang cố gắng sửa lỗi này. Đang kết nối lại trong {{seconds}} giây…", + "conferenceReloadTitle": "Thật không may, đã có lỗi xảy ra.", + "confirm": "Xác nhận", + "confirmNo": "Không", + "confirmYes": "Có", + "connectError": "Rất tiếc! Đã xảy ra sự cố và chúng tôi không thể kết nối với cuộc họp.", + "connectErrorWithMsg": "Rất tiếc! Đã xảy ra sự cố và chúng tôi không thể kết nối với cuộc họp. Nguyên nhân: {{msg}}", + "connecting": "Đang kết nối", + "contactSupport": "Liên hệ hỗ trợ kỹ thuật", + "copied": "Đã sao chép", + "copy": "Sao chép", + "demoteParticipantDialog": "Bạn có chắc chắn muốn chuyển người tham gia này thành khách truy cập không?", + "demoteParticipantTitle": "Di chuyển đến khách truy cập", + "dismiss": "Hủy", + "displayNameRequired": "Xin chào! Bạn tên là gì?", + "done": "Xong", + "e2eeDescription": "Mã hóa end-to-end vẫn đang trong giai đoạn THỬ NGHIỆM. Vui lòng lưu ý rằng việc kích hoạt mã hóa end-to-end sẽ tắt một số tính năng trên máy chủ bao gồm: ghi hình, phát trực tiếp và tham gia cuộc họp từ điện thoại. Đồng thời vui lòng lưu ý rằng chỉ có thể tham dự cuộc họp từ các trình duyệt có hỗ trợ nhúng luồng.", + "e2eeDisabledDueToMaxModeDescription": "Không thể bật Mã hóa đầu cuối do số lượng lớn người tham gia hội nghị.", + "e2eeLabel": "Kích hoạt mã hóa end-to-end", + "e2eeWarning": " CẢNH BÁO: Có vẻ không phải phải tất cả mọi người trong cuộc họp này đều hỗ trợ mã hóa end-to-end. Nếu bạn kích hoạt nó, họ sẽ có thể không còn nghe hoặc thấy gì nữa.", + "e2eeWillDisableDueToMaxModeDescription": "Không thể bật Mã hóa đầu cuối do số lượng lớn người tham gia hội nghị.", + "embedMeeting": "Nhúng cuộc họp", + "enterDisplayName": "Nhập tên của bạn", + "error": "Lỗi", + "gracefulShutdown": "Dịch vụ của chúng tôi hiện đang bảo trì. Vui lòng thử lại sau.", + "grantModeratorDialog": "Bạn có thực sự muốn cấp quyền quản trị cho người này?", + "grantModeratorTitle": "Cấp quyền điều hành", + "hide": "Ẩn", + "hideShareAudioHelper": "Không hiển thị lại hộp thoại này", + "incorrectPassword": "Tên người dùng hoặc mật khẩu không đúng", + "incorrectRoomLockPassword": "Mật khẩu không đúng", + "internalError": "Đã có lỗi xảy ra. Chi tiết: {{error}}", + "internalErrorTitle": "Lỗi cục bộ", + "kickMessage": "Bạn có thể liên hệ với {{participantDisplayName}} để biết thêm chi tiết.", + "kickParticipantButton": "Đuổi ra", + "kickParticipantDialog": "Bạn có chắc muốn đuổi người này ra?", + "kickParticipantTitle": "Tắt tiếng của người tham dự này?", + "kickTitle": "Ôi! {{Participant Display Name}} đã đuổi bạn ra khỏi cuộc họp", + "linkMeeting": "Liên kết cuộc họp", + "linkMeetingTitle": "Liên kết cuộc họp với Salesforce", + "liveStreaming": "Phát trực tuyến", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Không thể thực hiện được khi đang ghi âm", + "localUserControls": "Kiểm soát người dùng cục bộ", + "lockMessage": "Khóa cuộc họp thất bại.", + "lockRoom": "Thêm cuộc họp $t(lockRoomPassword)", + "lockTitle": "Khóa thất bại", + "login": "Đăng nhập", + "loginQuestion": "Bạn có chắc chắn muốn đăng nhập và rời khỏi hội nghị?", + "logoutQuestion": "Bạn có chắc chắn muốn đăng xuất và dừng cuộc họp?", + "logoutTitle": "Đăng xuất", + "maxUsersLimitReached": "Đã đạt đến giới hạn số lượng người tham gia tối đa. Hội nghị đã đầy. Vui lòng liên hệ với chủ cuộc họp hoặc thử lại sau!", + "maxUsersLimitReachedTitle": "Đã đạt đến giới hạn người tham gia tối đa", + "micConstraintFailedError": "Micro của bạn không đáp ứng được một số yêu cầu bắt buộc.", + "micNotFoundError": "Không tìm thấy micro.", + "micNotSendingData": "Đi tới phần cài đặt trên máy tính của bạn để bật tiếng micrô và điều chỉnh mức độ của micrô", + "micNotSendingDataTitle": "Micrô của bạn bị tắt tiếng do cài đặt hệ thống của bạn", + "micPermissionDeniedError": "Bạn chưa cấp phép sử dụng micro của bạn. Bạn vẫn có thể tham gia hội nghị nhưng những người khác sẽ không nghe thấy bạn. Sử dụng nút micro trên thanh điều hướng để sửa lỗi này.", + "micTimeoutError": "Không thể khởi động nguồn âm thanh. Đã hết thời gian chờ!", + "micUnknownError": "Không thể sử dụng micro vì một lý do không xác định.", + "moderationAudioLabel": "Cho phép người tham dự tự bật tiếng", + "moderationVideoLabel": "Cho phép người tham dự bắt đầu video của họ", + "muteEveryoneDialog": " Bạn có thực sự muốn tắt tiếng tất cả mọi người? Bạn sẽ không thể bật lại tiếng cho họ nhưng họ có thể tự mở tiếng lại bất kỳ lúc nào.", + "muteEveryoneDialogModerationOn": "Những người tham gia có thể gửi yêu cầu phát biểu bất cứ lúc nào.", + "muteEveryoneElseDialog": "Một khi đã tắt tiếng, bạn không thể bật lại. Nhưng họ có thể tự mở tiếng lại bất kỳ lúc nào.", + "muteEveryoneElseTitle": "Tắt tiếng tất cả ngoại trừ {{whom}}?", + "muteEveryoneElsesVideoDialog": "Khi camera bị tắt, bạn sẽ không thể bật lại nhưng họ có thể bật lại bất cứ lúc nào.", + "muteEveryoneElsesVideoTitle": "Dừng video của mọi người ngoại trừ {{whom}}?", + "muteEveryoneSelf": "chính bạn", + "muteEveryoneStartMuted": "Mọi người bắt đầu tắt tiếng kể từ bây giờ", + "muteEveryoneTitle": "Tắt tiếng tất cả mọi người?", + "muteEveryonesVideoDialog": "Bạn có chắc muốn tắt camera của tất cả mọi người? Bạn không thể mở lại camera của người tham dự nhưng họ có thể mở lại bất kỳ lúc nào.", + "muteEveryonesVideoDialogModerationOn": "Những người tham gia có thể gửi yêu cầu bật video của họ bất cứ lúc nào.", + "muteEveryonesVideoDialogOk": "Vô hiệu", + "muteEveryonesVideoTitle": "Tắt camera của tất cả mọi người?", + "muteParticipantBody": "Bạn không thể tắt tiếng của họ, nhưng họ có thể tự tắt tiếng bất cứ lúc nào.", + "muteParticipantButton": "Tắt tiếng", + "muteParticipantsVideoBody": "Bạn không thể bật lại camera, nhưng họ có thể bật lại bất kỳ lúc nào.", + "muteParticipantsVideoBodyModerationOn": "Bạn sẽ không thể bật lại máy ảnh và họ cũng vậy.", + "muteParticipantsVideoButton": "Tắt camera", + "muteParticipantsVideoDialog": "Bạn có chắc chắn muốn tắt máy ảnh của người tham gia này không? Bạn sẽ không thể bật lại camera nhưng họ có thể bật lại bất cứ lúc nào.", + "muteParticipantsVideoDialogModerationOn": "Bạn có chắc chắn muốn tắt máy ảnh của người tham gia này không? Bạn sẽ không thể bật lại máy ảnh và họ cũng vậy.", + "muteParticipantsVideoTitle": "Tắt camera của người này?", + "noDropboxToken": "Không có mã thông báo Dropbox hợp lệ", + "password": "Mật khẩu", + "passwordLabel": "Cuộc họp đã bị khóa bởi một người tham gia. Vui lòng nhập $t(lockRoomPassword) để tham gia.", + "passwordNotSupported": "Phòng họp không hỗ trợ khóa bằng mật khẩu.", + "passwordNotSupportedTitle": "t(lockRoomPasswordUppercase) không được hỗ trợ", + "passwordRequired": "$t(lockRoomPasswordUppercase) bắt buộc", + "permissionCameraRequiredError": "Cần có sự cho phép của máy ảnh để tham gia các hội nghị có video. Vui lòng cấp nó trong Cài đặt", + "permissionErrorTitle": "Cần có sự cho phép", + "permissionMicRequiredError": "Cần có sự cho phép của micrô để tham gia hội nghị có âm thanh. Vui lòng cấp nó trong Cài đặt", + "readMore": "Thêm", + "recentlyUsedObjects": "Các đối tượng được sử dụng gần đây của bạn", + "recording": "Đang ghi hình", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Không thể thực hiện được khi luồng trực tiếp đang hoạt động", + "rejoinNow": "Tham gia lại ngay", + "remoteControlAllowedMessage": "{{user}} đã chấp nhận yêu cầu điều khiển từ xa của bạn!", + "remoteControlDeniedMessage": "{{user}} đã từ chối yêu cầu điều khiển từ xa của bạn!", + "remoteControlErrorMessage": "Đã xảy ra lỗi khi cố gắng yêu cầu quyền điều khiển từ xa từ {{user}}!", + "remoteControlRequestMessage": "Bạn có cho phép {{user}} điều khiển từ xa màn hình của bạn không?", + "remoteControlShareScreenWarning": "Lưu ý rằng nếu bạn ấn \"Cho phép\" bạn sẽ chia sẻ màn hình của mình!", + "remoteControlStopMessage": "Phiên điều khiển từ xa đã kết thúc!", + "remoteControlTitle": "Điều khiển màn hình từ xa", + "remoteUserControls": "Điều khiển người dùng từ xa của {{username}}", + "removePassword": "Xoá $t(lockRoomPassword)", + "removeSharedVideoMsg": "Bạn có chắc chắn muốn xóa video đã chia sẻ của mình không?", + "removeSharedVideoTitle": "Xóa video chia sẻ", + "renameBreakoutRoomLabel": "Tên phòng", + "renameBreakoutRoomTitle": "Đổi tên phòng", + "reservationError": "Lỗi hệ thống đặt phòng", + "reservationErrorMsg": "Mã lỗi: {{code}}, thông báo: {{msg}}", + "retry": "Thử lại", + "screenSharingAudio": "Chia sẻ âm thanh", + "screenSharingFailed": "Ối! Đã xảy ra lỗi, chúng tôi không thể bắt đầu chia sẻ màn hình!", + "screenSharingFailedTitle": "Chia sẻ màn hình không thành công!", + "screenSharingPermissionDeniedError": "Không thể truy cập màn hình do lỗi cấp quyền", + "searchInSalesforce": "Tìm kiếm trong Salesforce", + "searchResults": "Kết quả tìm kiếm({{count}})", + "searchResultsDetailsError": "Đã xảy ra lỗi khi truy xuất dữ liệu chủ sở hữu.", + "searchResultsError": "Đã xảy ra lỗi khi truy xuất dữ liệu.", + "searchResultsNotFound": "Không tìm thấy kết quả tìm kiếm nào.", + "searchResultsTryAgain": "Hãy thử sử dụng các từ khóa thay thế.", + "sendPrivateMessage": "Gần đây bạn đã nhận được một tin nhắn riêng tư. Bạn có ý định trả lời câu hỏi đó một cách riêng tư hay bạn muốn gửi tin nhắn của mình đến nhóm?", + "sendPrivateMessageCancel": "Gửi tới nhóm", + "sendPrivateMessageOk": "Gửi riêng?", + "sendPrivateMessageTitle": "Gửi riêng?", + "serviceUnavailable": "Dịch vụ không khả dụng", + "sessTerminated": "Cuộc gọi kết thúc", + "sessTerminatedReason": "Cuộc họp đã kết thúc", + "sessionRestarted": "Cuộc gọi được khởi động lại do sự cố kết nối.", + "shareAudio": "Tiếp tục", + "shareAudioAltText": "để chia sẻ nội dung mong muốn, hãy điều hướng đến \"Tab trình duyệt\", chọn nội dung, kích hoạt dấu kiểm \"chia sẻ âm thanh\" rồi nhấp vào nút \"chia sẻ\"", + "shareAudioTitle": "Cách chia sẻ âm thanh", + "shareAudioWarningD1": "bạn cần dừng chia sẻ màn hình trước khi chia sẻ âm thanh của mình.", + "shareAudioWarningD2": "bạn cần khởi động lại tính năng chia sẻ màn hình của mình và chọn tùy chọn \"chia sẻ âm thanh\".", + "shareAudioWarningH1": "Nếu bạn chỉ muốn chia sẻ âm thanh:", + "shareAudioWarningTitle": "Bạn cần dừng chia sẻ màn hình trước khi chia sẻ âm thanh", + "shareMediaWarningGenericH2": "Nếu bạn muốn chia sẻ màn hình và âm thanh của mình", + "shareScreenWarningD1": "bạn cần dừng chia sẻ âm thanh trước khi chia sẻ màn hình của mình.", + "shareScreenWarningD2": "bạn cần dừng chia sẻ âm thanh, bắt đầu chia sẻ màn hình và chọn tùy chọn \"chia sẻ âm thanh\".", + "shareScreenWarningH1": "Nếu bạn chỉ muốn chia sẻ màn hình của mình:", + "shareScreenWarningTitle": "Bạn cần dừng chia sẻ âm thanh trước khi chia sẻ màn hình của mình", + "shareVideoLinkError": "Vui lòng cung cấp liên kết chính xác.", + "shareVideoTitle": "Chia sẻ video", + "shareYourScreen": "Chia sẻ màn hình của bạn", + "shareYourScreenDisabled": "Chia sẻ màn hình đã tắt.", + "sharedVideoDialogError": "Lỗi: URL không hợp lệ", + "sharedVideoLinkPlaceholder": "Liên kết YouTube hoặc liên kết video trực tiếp", + "show": "Hiển thị", + "start": "Bắt đầu", + "startLiveStreaming": "Bắt đầu phát trực tuyến", + "startRecording": "Bắt đầu ghi hình", + "startRemoteControlErrorMessage": "Có lỗi khi thử khởi động phiên điều khiển từ xa", + "stopLiveStreaming": "Dừng phát trực tuyến", + "stopRecording": "Dừng ghi hình", + "stopRecordingWarning": "Bạn có chắc chắn muốn dừng ghi hình không?", + "stopStreamingWarning": "Bạn có chắc chắn muốn dừng phát trực tuyến?", + "streamKey": "Mã phát trực tuyến", + "thankYou": "Cám ơn bạn đã sử dụng {{appName}}!", + "token": "mã thông báo", + "tokenAuthFailed": "Rất tiếc, bạn không được phép tham gia cuộc gọi này.", + "tokenAuthFailedReason": { + "audInvalid": "Giá trị `aud` không hợp lệ. Nó nên là `jitsi`.", + "contextNotFound": "Đối tượng `context` bị thiếu trong dữ liệu đầu vào.", + "expInvalid": "Giá trị `exp` không hợp lệ.", + "featureInvalid": "Tính năng không hợp lệ: {{feature}}, có khả năng chưa được triển khai.", + "featureValueInvalid": "Giá trị không hợp lệ cho tính năng: {{feature}}.", + "featuresNotFound": "Đối tượng `features` bị thiếu trong dữ liệu đầu vào.", + "headerNotFound": "Thiếu phần tiêu đề.", + "issInvalid": "Giá trị `iss` không hợp lệ. Nó nên là `chat`.", + "kidMismatch": "Khóa ID (kid) không khớp với sub.", + "kidNotFound": "Thiếu Khóa ID (kid).", + "nbfFuture": "Giá trị `nbf` ở trong tương lai.", + "nbfInvalid": "Giá trị `nbf` không hợp lệ.", + "payloadNotFound": "Thiếu dữ liệu đầu vào.", + "tokenExpired": "Token đã hết hạn." + }, + "tokenAuthFailedTitle": "Xác thực thất bại", + "tokenAuthFailedWithReasons": "Rất tiếc, bạn không được phép tham gia cuộc gọi này. Những lý do có thể: {{reason}}", + "tokenAuthUnsupported": "URL mã thông báo không được hỗ trợ.", + "transcribing": "Đang phiên âm", + "unlockRoom": "Xóa cuộc họp $t(lockRoomPassword)", + "user": "Người dùng", + "userIdentifier": "Mã định danh người dùng", + "userPassword": "mật khẩu người dùng", + "verifyParticipantConfirm": "Họ khớp nhau", + "verifyParticipantDismiss": "Họ không khớp nhau", + "verifyParticipantQuestion": "THỬ NGHIỆM: Hỏi người tham gia {{participantName}} xem họ có thấy cùng nội dung, theo cùng thứ tự không.", + "verifyParticipantTitle": "Xác nhận người dùng", + "videoLink": "Liên kết video", + "viewUpgradeOptions": "Xem các tùy chọn nâng cấp", + "viewUpgradeOptionsContent": "Để có quyền truy cập không giới hạn vào các tính năng cao cấp như ghi âm, chuyển văn bản, RTMP Streaming và nhiều tính năng khác, bạn cần nâng cấp gói dịch vụ của mình.", + "viewUpgradeOptionsTitle": "Bạn đã phát hiện một tính năng cao cấp!", + "whiteboardLimitContent": "Xin lỗi, đã đạt đến giới hạn người dùng bảng trắng đồng thời.", + "whiteboardLimitReference": "Để biết thêm thông tin, vui lòng truy cập", + "whiteboardLimitReferenceUrl": "trang web của chúng tôi", + "whiteboardLimitTitle": "Sử dụng bảng trắng bị hạn chế", + "yourEntireScreen": "Toàn bộ màn hình của bạn" + }, + "documentSharing": { + "title": "Chia sẻ tài liệu" + }, + "e2ee": { + "labelToolTip": "Giao tiếp âm thanh và video trong cuộc gọi này được mã hóa hai đầu" + }, + "embedMeeting": { + "title": "Nhúng cuộc họp" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Lựa chọn của bạn: {{xếp hạng}}" + }, + "average": "Trung bình", + "bad": "Kém", + "detailsLabel": "Nói với chúng tôi về nó.", + "good": "Tốt", + "rateExperience": "Vui lòng đánh giá trải nghiệm cuộc họp của bạn.", + "star": "Sao", + "veryBad": "Rất Kém", + "veryGood": "Rất Tốt" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Video thumbnails" + } + }, + "giphy": { + "noResults": "Không có kết quả nào được tìm thấy :(", + "search": "Tìm kiếm GIPHY" + }, + "incomingCall": { + "answer": "Trả lời", + "audioCallTitle": "Cuộc gọi đến", + "decline": "Hủy", + "productLabel": "từ DINTE", + "videoCallTitle": "Cuộc gọi hình" + }, + "info": { + "accessibilityLabel": "Hiện thông tin", + "addPassword": "Thêm $t(lockRoomPassword)", + "cancelPassword": "Huỷ $t(lockRoomPassword)", + "conferenceURL": "Liên kết:", + "copyNumber": "Copy số", + "country": "Quốc gia", + "dialANumber": "Để tham gia cuộc họp của bạn, gọi một trong các số sau và nhập mã.", + "dialInConferenceID": "Mã:", + "dialInNotSupported": "Xin lỗi, quay số không được hỗ trợ.", + "dialInNumber": "Quay số:", + "dialInSummaryError": "Lỗi nạp thông tin quay số. Vui lòng thử lại.", + "dialInTollFree": "Miễn phí", + "genericError": "Lỗi, có gì đó không ổn.", + "inviteLiveStream": "Để xem phát trực tuyến cuộc họp này, chọn liên kết: {{url}}", + "invitePhone": "Để tham gia bằng điện thoại thay vì đó, nhấn vào đây: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Bạn đang tìm kiếm một số điện thoại khác?\nXem số điện thoại gọi vào cuộc họp: {{url}}\n\n\nNếu cũng gọi từ điện thoại phòng, tham gia mà không kết nối âm thanh: {{silentUrl}}", + "inviteSipEndpoint": "Để tham gia bằng địa chỉ SIP, nhập vào đây: {{sipUri}}", + "inviteTextiOSInviteUrl": "Nhấn vào liên kết sau để tham gia: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "Nếu bạn đang gọi qua điện thoại phòng, sử dụng liên kết này để tham gia mà không kết nối âm thanh: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} đang mời bạn tham gia cuộc họp.", + "inviteTextiOSPhone": "Để tham gia qua điện thoại, sử dụng số này: {{number}},,{{conferenceID}}#. Nếu bạn đang tìm kiếm số khác, đây là danh sách đầy đủ: {{didUrl}}.", + "inviteURLFirstPartGeneral": "Bạn được mời tham gia một cuộc họp.", + "inviteURLFirstPartPersonal": "{{name}} mời bạn tham gia một cuộc họp.\n", + "inviteURLSecondPart": "\nTham gia cuộc họp:\nin{{url}}\n", + "label": "Thông tin cuộc họp", + "liveStreamURL": "Phát trực tuyến:", + "moreNumbers": "Nhiều số hơn", + "noNumbers": "Không có thông tin quay số.", + "noPassword": "Không", + "noRoom": "Chưa chỉ ra phòng họp để quay số gọi.", + "noWhiteboard": "Không thể tải bảng trắng.", + "numbers": "Số để quay", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "Bạn đã đạt đến giới hạn kế hoạch của mình.", + "sip": "Địa chỉ SIP", + "sipAudioOnly": "Địa chỉ chỉ âm thanh SIP", + "title": "Chia sẻ", + "tooltip": "Chia sẻ liên kết và thông tin quay số của cuộc họp này", + "upgradeOptions": "Vui lòng kiểm tra các tùy chọn nâng cấp trên", + "whiteboardError": "Lỗi tải bảng trắng. Vui lòng thử lại sau." + }, + "inlineDialogFailure": { + "msg": "Chúng tôi đang xảy ra chút lỗi.", + "retry": "Thử lại", + "support": "Hỗ trợ", + "supportMsg": "Nếu vẫn xảy ra, hãy liên hệ với " + }, + "inviteDialog": { + "alertText": "Không thể mời một vài người.", + "header": "Mời", + "searchCallOnlyPlaceholder": "Nhập số điện thoại", + "searchPeopleOnlyPlaceholder": "Tìm kiếm người tham gia", + "searchPlaceholder": "Người tham gia hoặc số", + "send": "Gửi" + }, + "jitsiHome": "{{logo}} Logo, liên kết tới Trang chủ", + "keyboardShortcuts": { + "focusLocal": "Tập trung vào khung hình của bạn", + "focusRemote": "Tập trung vào khung hình của người khác", + "fullScreen": "Xem hoặc thoát chế độ toàn màn hình", + "giphyMenu": "Chuyển đổi menu GIPHY", + "keyboardShortcuts": "Phím tắt", + "localRecording": "Hiện hoặc ẩn Kiểm soát ghi hình cục bộ", + "mute": "Tắt hoặc bật micro của bạn", + "pushToTalk": "Ấn chuông để nói chuyện", + "raiseHand": "Giơ hoặc hạ tay", + "showSpeakerStats": "Hiển thị thống kê của diễn giả", + "toggleChat": "Mở hoặc đóng cuộc hội thoại", + "toggleFilmstrip": "Hiện hoặc ẩn hình ảnh thu nhỏ", + "toggleParticipantsPane": "Hiển thị hoặc ẩn ngăn người tham gia", + "toggleScreensharing": "Chuyển đổi giữa camera và chia sẻ màn hình", + "toggleShortcuts": "Hiện hoặc ẩn phím tắt", + "videoMute": "Bật hoặc tắt camera của bạn" + }, + "largeVideo": { + "screenIsShared": "Bạn đang chia sẻ màn hình", + "showMeWhatImSharing": "Cho tôi xem những gì tôi đang chia sẻ" + }, + "liveStreaming": { + "busy": "Chúng tôi đang giải phóng tài nguyên streaming. Xin thử lại sau vài phút.", + "busyTitle": "Các thiết bị streaming đều đang bận.", + "changeSignIn": "Chuyển tài khoản.", + "choose": "Chọn một kênh phát trực tuyến", + "chooseCTA": "Chọn một tùy chọn trực tuyến. Bạn đang đăng nhập theo email {{email}}.", + "enterStreamKey": "Nhập key trực tuyến Youtube của bạn.", + "error": "Phát trực tuyến thất bại. Xin vui lòng thử lại.", + "errorAPI": "Lỗi xảy ra khi truy cập phát sóng Youtube của bạn. Vui lòng truy cập lại.", + "errorLiveStreamNotEnabled": "Phát trực tuyến không được bật với email {{email}}. Vui lòng bật phát trực tuyến hoặc truy cập một tài khoản đã bật phát trực tuyến.", + "expandedOff": "Phát trực tuyến đã dừng", + "expandedOn": "Cuộc họp đang được phát trên Youtube.", + "expandedPending": "Phát trực tuyến đang bắt đầu…", + "failedToStart": "Không thể bắt đầu phát trực tuyến", + "getStreamKeyManually": "Không thể thu nhận phát trực tuyến nào. Thử lấy mã phát trực tuyến từ Youtube.", + "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", + "onBy": "{{name}} đã dừng ghi", + "pending": "Đang bắt đầu phát trực tuyến…", + "serviceName": "Dịch vụ Phát trực tuyến", + "sessionAlreadyActive": "Phiên này đã được ghi lại hoặc phát trực tiếp.", + "signIn": "Đăng nhập với Google", + "signInCTA": "Đăng nhập hoặc nhập key phát trực tuyến từ Youtube.", + "signOut": "Đăng xuất", + "signedInAs": "Bạn đang đăng nhập theo:", + "start": "Bắt đầu phát trực tuyến", + "streamIdHelp": "Đây là gì?", + "title": "Phát trực tuyến", + "unavailableTitle": "Không thể hát trực tuyến", + "youtubeTerms": "Điều khoản dịch vụ của YouTube" + }, + "lobby": { + "backToKnockModeButton": "Yêu cầu tham gia", + "chat": "Trò chuyện", + "dialogTitle": "Chế độ phòng chờ", + "disableDialogContent": "Chế độ phòng chờ hiện đang được kích hoạt. Tính năng này đảm bảo rằng các thành viên không mong muốn không thể tham gia cuộc họp của bạn. Bạn có muốn tắt nó?", + "disableDialogSubmit": "Tắt", + "emailField": "Nhập địa chỉ email của bạn", + "enableDialogPasswordField": "Thiết lập mật khẩu (tùy chọn)", + "enableDialogSubmit": "Bật", + "enableDialogText": "Chế độ phòng chờ cho phép bạn bảo vệ cuộc họp của mình bằng cách chỉ cho phép mọi người tham gia sau khi được một người điều hành chấp thuận một cách chính thức.", + "enterPasswordButton": "Nhập mật khẩu cuộc họp", + "enterPasswordTitle": "Nhập mật khẩu để tham gia cuộc họp", + "errorMissingPassword": "Vui lòng nhập mật khẩu cuộc họp", + "invalidPassword": "Mật khẩu không hợp lệ", + "joinRejectedMessage": "Yêu cầu tham gia của bạn đã bị từ chối bởi một người điều hành.", + "joinRejectedTitle": "Yêu cầu tham gia bị từ chối.", + "joinTitle": "Tham gia cuộc họp", + "joinWithPasswordMessage": "Đang cố gắng tham gia với mật khẩu, vui lòng đợi…", + "joiningMessage": "Bạn sẽ tham gia cuộc họp ngay khi có ai đó chấp nhận yêu cầu của bạn", + "joiningTitle": "Yêu cầu tham gia cuộc họp…", + "joiningWithPasswordTitle": "Đang tham gia với mật khẩu…", + "knockButton": "Yêu cầu tham gia", + "knockTitle": "Một ai đó muốn tham gia cuộc họp", + "knockingParticipantList": "Danh sách người yêu cầu tham gia", + "lobbyChatStartedNotification": "{{moderator}} đã bắt đầu một trò chuyện phòng chờ với {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} đã bắt đầu một trò chuyện phòng chờ với bạn.", + "lobbyClosed": "Phòng chờ đã được đóng.", + "nameField": "Nhập tên của bạn", + "notificationLobbyAccessDenied": "{{targetParticipantName}} đã bị từ chối tham gia bởi {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} đã được phép tham gia bởi {{originParticipantName}}", + "notificationLobbyDisabled": "Phòng chờ đã được tắt bởi {{originParticipantName}}", + "notificationLobbyEnabled": "Phòng chờ đã được bật bởi {{originParticipantName}}", + "notificationTitle": "Phòng chờ", + "passwordJoinButton": "Tham gia", + "title": "Phòng chờ", + "toggleLabel": "Kích hoạt phòng chờ" + }, + "localRecording": { + "clientState": { + "off": "Tắt", + "on": "Bật", + "unknown": "Không rõ" + }, + "dialogTitle": "Kiểm soát ghi hình cục bộ", + "duration": "Thời lượng", + "durationNA": "Không", + "encoding": "Mã hóa", + "label": "Ghi hình", + "labelToolTip": "Ghi hình cục bộ đang bận", + "localRecording": "Ghi hình cục bộ", + "me": "Tôi", + "messages": { + "engaged": "Ghi hình cục bộ đã bận.", + "finished": "Phiên ghi hình {{token}} đã kết thúc. Vui lòng gửi tệp ghi hình cho người điều hành.", + "finishedModerator": "Phiên ghi hình {{token}} đã kết thúc. Ghi hình cục bộ đã được lưu. Vui lòng hỏi những người tham gia khác để cung cấp ghi hình của họ.", + "notModerator": "Bạn không phải người điều hành. Bạn không thể khởi tạo hoặc dừng ghi hình." + }, + "moderator": "Quản trị viên", + "no": "Không", + "participant": "Người tham dự", + "participantStats": "Thống kê người tham dự", + "selectTabTitle": "🎥 Vui lòng chọn tab này để ghi âm", + "sessionToken": "Mã phiên", + "start": "Bắt đầu ghi hình", + "stop": "Dừng ghi hình", + "stopping": "Đang dừng ghi hình", + "wait": "Vui lòng đợi trong khi chúng tôi lưu bản ghi của bạn", + "yes": "Có" + }, + "lockRoomPassword": "Mật khẩu", + "lockRoomPasswordUppercase": "Mật khẩu", + "lonelyMeetingExperience": { + "button": "Mời người khác", + "youAreAlone": "Chỉ có một mình bạn trong cuộc họp" + }, + "me": "Tôi", + "notify": { + "OldElectronAPPTitle": "Lỗ hổng bảo mật!", + "allowAction": "Cho phép", + "allowedUnmute": "Bạn có thể bật âm thanh, bật camera hoặc chia sẻ màn hình của mình.", + "audioUnmuteBlockedDescription": "Hoạt động bật âm thanh đã bị tạm thời chặn do giới hạn hệ thống.", + "audioUnmuteBlockedTitle": "Chặn việc bật âm thanh!", + "chatMessages": "Thông điệp trò chuyện", + "connectedOneMember": "{{name}} đã tham gia cuộc họp", + "connectedThreePlusMembers": "{{name}} và {{count}} người khác đã tham gia cuộc họp", + "connectedTwoMembers": "{{first}} và {{second}} đã tham gia cuộc họp", + "dataChannelClosed": "Chất lượng video bị suy giảm", + "dataChannelClosedDescription": "Kênh cầu nối đã bị ngắt kết nối và do đó chất lượng video bị giới hạn ở cài đặt thấp nhất.", + "disabledIframe": "Nhúng chỉ dành cho mục đích thử nghiệm, cuộc gọi này sẽ ngắt kết nối sau {{timeout}} phút.", + "disabledIframeSecondary": "Nhúng {{domain}} chỉ dành cho mục đích thử nghiệm, cuộc gọi này sẽ ngắt kết nối sau {{timeout}} phút. Vui lòng sử dụng Jitsi as a Service cho việc nhúng vào sản xuất!", + "disconnected": "đã ngắt kết nối", + "displayNotifications": "Hiển thị thông báo cho", + "dontRemindMe": "Đừng nhắc tôi", + "focus": "Cuộc họp tập trung", + "focusFail": "{{component}} không khả dụng - thử lại trong {{ms}} giây", + "gifsMenu": "GIPHY", + "groupTitle": "Thông báo", + "hostAskedUnmute": "Người điều hành muốn bạn nói chuyện", + "invitedOneMember": "{{name}} đã được mời", + "invitedThreePlusMembers": "{{name}} và {{count}} người khác đã được mời", + "invitedTwoMembers": "{{first}} và {{second}} đã được mời", + "joinMeeting": "Tham gia", + "kickParticipant": "{{kicked}} đã bị đá bởi {{kicker}}", + "leftOneMember": "{{name}} đã rời khỏi cuộc họp", + "leftThreePlusMembers": "{{name}} và nhiều người khác đã rời khỏi cuộc họp", + "leftTwoMembers": "{{first}} và {{second}} đã rời khỏi cuộc họp", + "linkToSalesforce": "Liên kết với Salesforce", + "linkToSalesforceDescription": "Bạn có thể liên kết tóm tắt cuộc họp với một đối tượng Salesforce.", + "linkToSalesforceError": "Không thể liên kết cuộc họp với Salesforce", + "linkToSalesforceKey": "Liên kết cuộc họp này", + "linkToSalesforceProgress": "Đang liên kết cuộc họp với Salesforce…", + "linkToSalesforceSuccess": "Cuộc họp đã được liên kết với Salesforce", + "localRecordingStarted": "{{name}} đã bắt đầu ghi âm cục bộ.", + "localRecordingStopped": "{{name}} đã dừng ghi âm cục bộ.", + "me": "Tôi", + "moderationInEffectCSDescription": "Vui lòng giơ tay nếu bạn muốn chia sẻ màn hình của mình.", + "moderationInEffectCSTitle": "Chia sẻ màn hình bị chặn bởi người điều hành", + "moderationInEffectDescription": "Vui lòng giơ tay nếu bạn muốn nói chuyện.", + "moderationInEffectTitle": "Micro của bạn đã được tắt bởi người điều hành", + "moderationInEffectVideoDescription": "Vui lòng giơ tay nếu bạn muốn bật camera của mình.", + "moderationInEffectVideoTitle": "Camera của bạn bị chặn bởi người điều hành", + "moderationRequestFromModerator": "Người điều hành muốn bạn bật âm thanh", + "moderationRequestFromParticipant": "Muốn nói chuyện", + "moderationStartedTitle": "Bắt đầu kiểm duyệt", + "moderationStoppedTitle": "Dừng kiểm duyệt", + "moderationToggleDescription": "bởi {{participantDisplayName}}", + "moderator": "Quyền quản trị viên đã được cấp!", + "muted": "Bạn đã bắt đầu cuộc trò chuyện bị tắt tiếng.", + "mutedRemotelyDescription": "Bạn luôn có thể bật âm thanh khi bạn sẵn sàng nói chuyện. Tắt âm lại khi bạn hoàn tất để giữ cho cuộc họp không bị ồn ào.", + "mutedRemotelyTitle": "Bạn đã bị tắt âm bởi {{participantDisplayName}}", + "mutedTitle": "Bạn bị tắt tiếng!", + "newDeviceAction": "Sử dụng", + "newDeviceAudioTitle": "Thiết bị âm thanh mới được phát hiện", + "newDeviceCameraTitle": "Thiết bị camera mới được phát hiện", + "noiseSuppressionDesktopAudioDescription": "Không thể kích hoạt chế độ chống ồn khi chia sẻ âm thanh máy tính, vui lòng tắt chế độ này và thử lại.", + "noiseSuppressionFailedTitle": "Không thể bắt đầu chế độ chống ồn", + "noiseSuppressionStereoDescription": "Hiện không hỗ trợ chế độ chống ồn âm thanh stereo.", + "oldElectronClientDescription1": "Bạn dường như đang sử dụng một phiên bản cũ của ứng dụng Jitsi Meet có lỗ hổng bảo mật đã biết. Vui lòng đảm bảo bạn cập nhật lên ", + "oldElectronClientDescription2": "bản mới nhất", + "oldElectronClientDescription3": " ngay!", + "participantWantsToJoin": "Muốn tham gia cuộc họp", + "participantsWantToJoin": "Muốn tham gia cuộc họp", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) đã bị xóa bởi một người tham gia khác", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) đã được thiết lập bởi một người tham gia khác", + "raiseHandAction": "Giơ tay", + "raisedHand": "{{name}} muốn phát biểu.", + "raisedHands": "{{participantName}} và {{raisedHands}} người nữa đã giơ tay", + "reactionSounds": "Tắt âm", + "reactionSoundsForAll": "Tắt âm cho tất cả", + "screenShareNoAudio": "Khung chia sẻ âm thanh không được chọn trong màn hình lựa chọn cửa sổ.", + "screenShareNoAudioTitle": "Không thể chia sẻ âm thanh hệ thống!", + "screenSharingAudioOnlyDescription": "Vui lòng lưu ý rằng khi bạn chia sẻ màn hình của mình, bạn đang ảnh hưởng đến chế độ \"Hiệu suất tốt nhất\" và bạn sẽ sử dụng nhiều băng thông hơn.", + "screenSharingAudioOnlyTitle": "Chế độ \"Hiệu suất tốt nhất\"", + "selfViewTitle": "Bạn luôn có thể hiển thị lại tự xem từ cài đặt", + "somebody": "Ai đó", + "startSilentDescription": "Tham gia lại cuộc họp để bật âm thanh", + "startSilentTitle": "Bạn đã tham gia mà không có đầu ra âm thanh!", + "suboptimalBrowserWarning": "Chúng tôi rất tiếc về việc trải nghiệm cuộc họp của bạn ở đây không thể tốt hơn. Chúng tôi đang tìm cách cải thiện điều này, nhưng trong lúc đó vui lòng thử sử dụng một trong số các trình duyệt được hỗ trợ đầy đủ.", + "suboptimalExperienceTitle": "Cảnh báo trình duyệt", + "suggestRecordingAction": "Bắt đầu", + "suggestRecordingDescription": "Bạn có muốn bắt đầu một cuộc ghi âm không?", + "suggestRecordingTitle": "Ghi lại cuộc họp này", + "unmute": "Bật âm", + "videoMutedRemotelyDescription": "Bạn luôn có thể bật lại.", + "videoMutedRemotelyTitle": "Video của bạn đã bị tắt bởi {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Hoạt động bật camera và chia sẻ màn hình máy tính đã bị tạm thời chặn do giới hạn hệ thống.", + "videoUnmuteBlockedTitle": "Chặn hoạt động bật camera và chia sẻ màn hình!", + "viewLobby": "Xem phòng chờ", + "viewVisitors": "Xem khách thăm", + "waitingParticipants": "{{waitingParticipants}} người", + "whiteboardLimitDescription": "Vui lòng lưu tiến độ của bạn, vì giới hạn người dùng sẽ sớm được đạt và bảng trắng sẽ đóng.", + "whiteboardLimitTitle": "Sử dụng bảng trắng" + }, + "participantsPane": { + "actions": { + "admit": "Cho phép", + "admitAll": "Cho phép tất cả", + "allow": "Cho phép người tham dự:", + "allowVideo": "Cho phép video", + "askUnmute": "Yêu cầu bật tiếng", + "audioModeration": "Tự mở micro", + "blockEveryoneMicCamera": "Chặn mic và camera của tất cả mọi người", + "breakoutRooms": "Phòng riêng", + "invite": "Mời người tham dự", + "moreModerationActions": "Các tùy chọn kiểm duyệt khác", + "moreModerationControls": "Các điều khiển kiểm duyệt khác", + "moreParticipantOptions": "Các tùy chọn tham gia khác", + "mute": "Tắt tiếng", + "muteAll": "Tắt tiếng tất cả mọi người", + "muteEveryoneElse": "Tắt tiếng tất cả những người khác", + "reject": "Từ chối", + "stopEveryonesVideo": "Tắt hình của tất cả mọi người", + "stopVideo": "Tắt hình", + "unblockEveryoneMicCamera": "Mở khóa camera và micro của tất cả mọi người", + "videoModeration": "Bắt đầu video của họ" + }, + "close": "Đóng", + "headings": { + "lobby": "Phòng chờ ({{count}})", + "participantsList": "Những người tham dự ({{count}})", + "visitorRequests": "(yêu cầu {{count}})", + "visitors": "Số lượt truy cập {{count}}", + "waitingLobby": "Đang đợi ở phòng chờ ({{count}})" + }, + "search": "Tìm kiếm người tham gia", + "title": "Người tham gia" + }, + "passwordDigitsOnly": "Tối đa {{number}} chữ số", + "passwordSetRemotely": "được thiết lập bởi một người khác", + "pinParticipant": "{{participantName}} - Ghim", + "pinnedParticipant": "Người tham gia đã được ghim", + "polls": { + "answer": { + "skip": "Bỏ qua", + "submit": "Gửi" + }, + "by": "Bởi {{ name }}", + "create": { + "addOption": "Thêm tùy chọn", + "answerPlaceholder": "Tùy chọn {{index}}", + "cancel": "Hủy", + "create": "Tạo bình chọn", + "pollOption": "Tùy chọn bình chọn {{index}}", + "pollQuestion": "Câu hỏi bình chọn", + "questionPlaceholder": "Hỏi một câu hỏi", + "removeOption": "Xóa tùy chọn", + "send": "Gửi" + }, + "errors": { + "notUniqueOption": "Tùy chọn phải là duy nhất" + }, + "notification": { + "description": "Mở tab bình chọn để bình chọn", + "title": "Một bình chọn mới đã được thêm vào cuộc họp này" + }, + "results": { + "changeVote": "Thay đổi phiếu bầu", + "empty": "Chưa có bình chọn nào trong cuộc họp. Bắt đầu một cuộc bình chọn tại đây!", + "hideDetailedResults": "Ẩn chi tiết", + "showDetailedResults": "Hiển thị chi tiết", + "vote": "Bỏ phiếu" + } + }, + "poweredby": "Được hỗ trợ bởi", + "prejoin": { + "audioAndVideoError": "Lỗi âm thanh và video:", + "audioDeviceProblem": "Có vấn đề với thiết bị âm thanh của bạn", + "audioOnlyError": "Lỗi âm thanh:", + "audioTrackError": "Không thể tạo track âm thanh.", + "callMe": "Gọi cho tôi", + "callMeAtNumber": "Gọi cho tôi ở số này:", + "calling": "Đang gọi", + "configuringDevices": "Đang cấu hình thiết bị…", + "connectedWithAudioQ": "Bạn đã kết nối với âm thanh?", + "connection": { + "good": "Kết nối internet của bạn trông rất tốt!", + "nonOptimal": "Kết nối internet của bạn không tối ưu", + "poor": "Kết nối internet của bạn kém" + }, + "connectionDetails": { + "audioClipping": "Chúng tôi dự kiến âm thanh của bạn sẽ bị cắt.", + "audioHighQuality": "Chúng tôi dự kiến âm thanh của bạn sẽ có chất lượng tuyệt vời.", + "audioLowNoVideo": "Chúng tôi dự kiến chất lượng âm thanh của bạn sẽ thấp và không có video.", + "goodQuality": "Tuyệt vời! Chất lượng phương tiện của bạn sẽ tuyệt vời.", + "noMediaConnectivity": "Chúng tôi không thể tìm cách thiết lập kết nối phương tiện cho bài kiểm tra này. Điều này thường là do tường lửa hoặc NAT.", + "noVideo": "Chúng tôi dự kiến video của bạn sẽ rất tệ.", + "undetectable": "Nếu bạn vẫn không thể thực hiện cuộc gọi trong trình duyệt, chúng tôi khuyến nghị bạn đảm bảo loa, micro và camera của bạn được cài đặt đúng cách, bạn đã cấp quyền cho trình duyệt sử dụng micro và camera của bạn và phiên bản trình duyệt của bạn là mới nhất. Nếu bạn vẫn gặp sự cố khi gọi, bạn nên liên hệ với nhà phát triển ứng dụng web.", + "veryPoorConnection": "Chúng tôi dự kiến chất lượng cuộc gọi của bạn sẽ thực sự tệ.", + "videoFreezing": "Chúng tôi dự kiến video của bạn sẽ bị đóng băng, đen màn hình và bị pixel.", + "videoHighQuality": "Chúng tôi dự kiến video của bạn sẽ có chất lượng tốt.", + "videoLowQuality": "Chúng tôi dự kiến video của bạn sẽ có chất lượng thấp về tốc độ khung hình và độ phân giải.", + "videoTearing": "Chúng tôi dự kiến video của bạn sẽ bị rối loạn hoặc có hiện tượng nghệ thuật hình ảnh." + }, + "copyAndShare": "Sao chép & chia sẻ liên kết cuộc họp", + "dialInMeeting": "Gọi vào cuộc họp", + "dialInPin": "Gọi vào cuộc họp và nhập mã PIN:", + "dialing": "Đang gọi", + "doNotShow": "Không hiển thị màn hình này nữa", + "errorDialOut": "Không thể gọi ra", + "errorDialOutDisconnected": "Không thể gọi ra. Đã ngắt kết nối", + "errorDialOutFailed": "Không thể gọi ra. Cuộc gọi thất bại", + "errorDialOutStatus": "Lỗi khi lấy trạng thái gọi ra: {{status}}", + "errorMissingName": "Vui lòng nhập tên của bạn để tham gia cuộc họp", + "errorNoPermissions": "Bạn cần phải cho phép truy cập vào micro và camera", + "errorStatusCode": "Lỗi khi gọi ra, mã trạng thái: {{status}}", + "errorValidation": "Xác thực số điện thoại không thành công", + "iWantToDialIn": "Tôi muốn gọi vào", + "initiated": "Cuộc gọi được khởi tạo", + "joinAudioByPhone": "Tham gia với âm thanh điện thoại", + "joinMeeting": "Tham gia cuộc họp", + "joinMeetingInLowBandwidthMode": "Tham gia ở chế độ băng thông thấp", + "joinWithoutAudio": "Tham gia mà không có âm thanh", + "keyboardShortcuts": "Kích hoạt phím tắt bàn phím", + "linkCopied": "Liên kết đã được sao chép vào clipboard", + "lookGood": "Mọi thứ đều hoạt động bình thường", + "or": "hoặc", + "premeeting": "Trước cuộc họp", + "proceedAnyway": "Tiếp tục dù sao", + "recordingWarning": "Có thể có người tham gia khác đang ghi lại cuộc gọi này", + "screenSharingError": "Lỗi chia sẻ màn hình:", + "startWithPhone": "Bắt đầu với âm thanh điện thoại", + "unsafeRoomConsent": "Tôi hiểu rủi ro, tôi muốn tham gia cuộc họp", + "videoOnlyError": "Lỗi video:", + "videoTrackError": "Không thể tạo track video.", + "viewAllNumbers": "Xem tất cả các số" + }, + "presenceStatus": { + "busy": "Bận", + "calling": "Đang gọi…", + "connected": "Đã kết nối", + "connecting": "Đang kết nối…", + "connecting2": "Đang kết nối*…", + "disconnected": "Đã ngắt kết nối", + "expired": "Hết hạn", + "ignored": "Đã bỏ qua", + "initializingCall": "Đang tạo cuộc gọi…", + "invited": "Đã mời", + "rejected": "Đã từ chối", + "ringing": "Đang đổ chuông…" + }, + "profile": { + "avatar": "Ảnh đại diện", + "setDisplayNameLabel": "Nhập tên hiển thị của bạn", + "setEmailInput": "Nhập địa chỉ email", + "setEmailLabel": "Nhập địa chỉ email tài khoản Gravatar của bạn", + "title": "Hồ sơ" + }, + "raisedHand": "Muốn phát biểu", + "raisedHandsLabel": "Số lượng tay giơ lên", + "record": { + "already": { + "linked": "Cuộc họp đã được liên kết với đối tượng Salesforce này." + }, + "type": { + "account": "Tài khoản", + "contact": "Liên hệ", + "lead": "Cơ hội", + "opportunity": "Cơ hội", + "owner": "Chủ sở hữu" + } + }, + "recording": { + "authDropboxText": "Tải lên Dropbox", + "availableSpace": "Dung lượng còn: {{spaceLeft}} MB (khoảng {{duration}} phút ghi hình)", + "beta": "Bản thử nghiệm", + "busy": "Chương trình đang bận giải phóng tài nguyên thu hình. Xin thử lại sau vài phút.", + "busyTitle": "Tất cả các đầu ghi hình hiện đang bận.", + "copyLink": "Sao chép liên kết", + "error": "Ghi hình không thành công. Vui lòng thử lại.", + "errorFetchingLink": "Lỗi khi tìm nạp liên kết ghi âm.", + "expandedOff": "Ghi hình đã dừng", + "expandedOn": "Cuộc họp đang được ghi hình.", + "expandedPending": "Ghi hình đang khởi động…", + "failedToStart": "Khởi động ghi hình thất bại", + "fileSharingdescription": "Chia sẻ ghi hình với người tham gia họp", + "highlight": "Đánh dấu", + "highlightMoment": "Đánh dấu khoảnh khắc", + "highlightMomentDisabled": "Bạn có thể đánh dấu khoảnh khắc khi ghi âm bắt đầu", + "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", + "localRecordingStartWarning": "Vui lòng đảm bảo bạn dừng ghi âm trước khi thoát khỏi cuộc họp để lưu lại.", + "localRecordingStartWarningTitle": "Dừng ghi âm để lưu lại", + "localRecordingVideoStop": "Dừng video của bạn cũng sẽ dừng ghi âm cục bộ. Bạn có chắc chắn muốn tiếp tục không?", + "localRecordingVideoWarning": "Để ghi lại video của bạn, bạn phải bật nó khi bắt đầu ghi âm", + "localRecordingWarning": "Đảm bảo bạn chọn tab hiện tại để sử dụng video và âm thanh đúng cách.", + "loggedIn": "Đã đăng nhập dưới tên {{userName}}", + "noMicPermission": "Không thể tạo track microphone. Vui lòng cấp quyền sử dụng microphone.", + "noStreams": "Không phát hiện luồng âm thanh hoặc video nào.", + "off": "Đã ngừng ghi hình", + "offBy": "{{name}} đã dừng ghi hình", + "on": "Đang ghi hình", + "onBy": "{{name}} đã bắt đầu ghi hình", + "onlyRecordSelf": "Chỉ ghi lại luồng âm thanh và video của tôi", + "pending": "Đang chuẩn bị để ghi hình cuộc họp…", + "recordAudioAndVideo": "Ghi âm và video", + "recordTranscription": "Ghi chú giọng nói", + "saveLocalRecording": "Lưu tệp ghi âm cục bộ (Beta)", + "serviceDescription": "Ghi hình của bạn sẽ được lưu bởi dịch vụ ghi hình", + "serviceDescriptionCloud": "Ghi âm trên đám mây", + "serviceDescriptionCloudInfo": "Cuộc họp được ghi lại sẽ tự động xóa sau 24 giờ kể từ thời gian ghi âm.", + "serviceName": "Dịch vụ ghi hình", + "sessionAlreadyActive": "Phiên này đã được ghi âm hoặc phát trực tiếp.", + "showAdvancedOptions": "Tùy chọn nâng cao", + "signIn": "Đăng nhập", + "signOut": "Đăng xuất", + "surfaceError": "Vui lòng chọn tab hiện tại.", + "title": "Đang ghi hình", + "unavailable": "Rất tiếc! Dịch vụ {{serviceName}} đang không sẵn sàng. Chúng tôi đang xử lý vấn đề này. Vui lòng thử lại sau.", + "unavailableTitle": "Ghi hình không hoạt động.", + "uploadToCloud": "Tải lên đám mây" + }, + "screenshareDisplayName": "Màn hình của {{name}}", + "sectionList": { + "pullToRefresh": "Kéo để làm mới" + }, + "security": { + "about": "Bạn có thể thiết lập mật khẩu cho cuộc họp. Người tham dự cần phải nhập mật khẩu trước khi được phép vào phòng họp.", + "aboutReadOnly": "Người điều hành cuộc họp có thể thêm một $t(lockRoomPassword) vào cuộc họp. Người tham gia sẽ cần cung cấp $t(lockRoomPassword) trước khi được phép tham gia cuộc họp.", + "insecureRoomNameWarningNative": "Tên phòng không an toàn. Người tham gia không mong muốn có thể tham gia cuộc họp của bạn. {{recommendAction}} Tìm hiểu thêm về cách bảo mật cuộc họp của bạn ", + "insecureRoomNameWarningWeb": "Tên phòng không an toàn. Người tham gia không mong muốn có thể tham gia cuộc họp của bạn. {{recommendAction}} Tìm hiểu thêm về cách bảo mật cuộc họp của bạn tại đây.", + "title": "Tùy chọn Bảo mật", + "unsafeRoomActions": { + "meeting": "Cân nhắc bảo mật cuộc họp của bạn bằng cách sử dụng nút bảo mật.", + "prejoin": "Cân nhắc sử dụng tên cuộc họp duy nhất hơn.", + "welcome": "Cân nhắc sử dụng tên cuộc họp duy nhất hơn, hoặc chọn một trong các gợi ý." + } + }, + "settings": { + "audio": "Âm thanh", + "buttonLabel": "Cài đặt", + "calendar": { + "about": "{{appName}} tích hợp lịch được sử dụng để truy cập bảo mật lịch để lấy thông tin sự kiện sắp tới.", + "disconnect": "Ngắt kết nối", + "microsoftSignIn": "Đăng nhập với Microsoft", + "signedIn": "Đang truy cập lịch sự kiện của {{email}}. Chọn Ngắt kết nối để dừng truy cập lịch sự kiện.", + "title": "Lịch" + }, + "desktopShareFramerate": "Tốc độ khung hình chia sẻ màn hình", + "desktopShareHighFpsWarning": "Tốc độ khung hình cao cho việc chia sẻ màn hình có thể ảnh hưởng đến băng thông của bạn. Bạn cần khởi động lại chia sẻ màn hình để cài đặt mới có hiệu lực.", + "desktopShareWarning": "Bạn cần khởi động lại chia sẻ màn hình để cài đặt mới có hiệu lực.", + "devices": "Thiết bị", + "followMe": "Tất cả mọi người theo dõi tôi", + "framesPerSecond": "Khung hình mỗi giây", + "incomingMessage": "Tin nhắn đang gửi", + "language": "Ngôn ngữ", + "loggedIn": "Đã đăng nhập dưới tên {{name}}", + "maxStageParticipants": "Số lượng người tham gia tối đa có thể được ghim vào sân khấu chính", + "microphones": "Micro", + "moderator": "Quản trị viên", + "moderatorOptions": "Tùy chọn quản trị viên", + "more": "Thêm", + "name": "Tên", + "noDevice": "Không", + "notifications": "Thông báo", + "participantJoined": "Người tham gia đã tham gia", + "participantKnocking": "Người tham gia đã vào phòng chờ", + "participantLeft": "Người tham gia đã rời đi", + "playSounds": "Phát âm thanh trên", + "reactions": "Phản ứng trong cuộc họp", + "sameAsSystem": "Giống hệ thống ({{label}})", + "selectAudioOutput": "Đầu ra âm thanh", + "selectCamera": "Camera", + "selectMic": "Micro", + "selfView": "Xem tự mình", + "shortcuts": "Phím tắt", + "speakers": "Loa", + "startAudioMuted": "Mọi người bắt đầu đều bị tắt tiếng", + "startReactionsMuted": "Tắt âm thanh phản ứng cho mọi người", + "startVideoMuted": "Mọi người bắt đầu đều bị ẩn", + "talkWhileMuted": "Nói chuyện trong khi tắt tiếng", + "title": "Cài đặt", + "video": "Hình ảnh" + }, + "settingsView": { + "advanced": "Nâng cao", + "alertCancel": "Huỷ", + "alertOk": "OK", + "alertTitle": "Cảnh báo", + "alertURLText": "URL máy chủ đã nhập không hợp lệ", + "apply": "Áp dụng", + "buildInfoSection": "Thông tin phiên bản", + "conferenceSection": "Hội nghị", + "disableCallIntegration": "Tắt tích hợp cuộc gọi tự nhiên", + "disableCrashReporting": "Tắt báo cáo sự cố", + "disableCrashReportingWarning": "Bạn có chắc muốn tắt báo cáo sự cố không? Cài đặt sẽ được áp dụng sau khi bạn khởi động lại ứng dụng.", + "disableP2P": "Tắt chế độ Peer-To-Peer", + "displayName": "Tên hiển thị", + "displayNamePlaceholderText": "Vd: John Doe", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "Nếu địa chỉ email của bạn liên kết với một tài khoản Gravatar, chúng tôi sẽ sử dụng nó để hiển thị hình đại diện của bạn.", + "goTo": "Đi đến", + "header": "Cài đặt", + "help": "Trợ giúp", + "links": "Liên kết", + "privacy": "Quyền riêng tư", + "profileSection": "Hồ sơ", + "sdkVersion": "Phiên bản SDK", + "serverURL": "URL máy chủ", + "showAdvanced": "Hiển thị cài đặt nâng cao", + "startCarModeInLowBandwidthMode": "Khởi động chế độ ô tô ở chế độ băng thông thấp", + "startWithAudioMuted": "Bắt đầu không mở tiếng", + "startWithVideoMuted": "Bắt đầu không hiện hình", + "terms": "Điều kiện", + "version": "Phiên bản" + }, + "share": { + "dialInfoText": "\n\n=====\n\nChỉ muốn gọi vào bằng điện thoại của bạn?\n\n{{defaultDialInNumber}}Nhấp vào liên kết này để xem số điện thoại gọi vào cho cuộc họp này\n{{dialInfoPageUrl}}", + "mainText": "Chọn liên kết dưới để tham gia họp:\n{{roomUrl}}" + }, + "speaker": "Diễn giả", + "speakerStats": { + "angry": "Tức giận", + "disgusted": "Kinh tởm", + "displayEmotions": "Hiển thị cảm xúc", + "fearful": "Sợ hãi", + "happy": "Hạnh phúc", + "hours": "{{count}} giờ", + "minutes": "{{count}} phút", + "name": "Tên", + "neutral": "Bình thường", + "sad": "Buồn", + "search": "Tìm kiếm", + "searchHint": "Tìm kiếm người tham gia", + "seconds": "{{count}} giây", + "speakerStats": "Thống kê về diễn giả", + "speakerTime": "Thời gian của diễn giả", + "surprised": "Ngạc nhiên" + }, + "startupoverlay": { + "genericTitle": "Cuộc họp cần sử dụng microphone và camera của bạn.", + "policyText": " ", + "title": "{{app}} cần sử dụng micro và camera của bạn." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Tham gia lại", + "text": "Bấm nút Tham gia lại để kết nối lại.", + "title": "Cuộc họp của bạn bị gián đoạn vì máy tính này chuyển sang trạng thái ngủ." + }, + "termsView": { + "title": "Điều kiện" + }, + "toggleTopPanelLabel": "Chuyển đổi bảng trên cùng", + "toolbar": { + "Settings": "Cài đặt", + "accessibilityLabel": { + "Settings": "Mở/Đóng Cấu hình", + "audioOnly": "Chuyển sang chỉ nghe âm thanh", + "audioRoute": "Chọn thiết bị âm thanh", + "boo": "Boo", + "breakoutRooms": "Phòng nhóm", + "callQuality": "Quản lý chất lượng video", + "carmode": "Chế độ xe hơi", + "cc": "Mở/Đóng phụ đề", + "chat": "Mở/Đóng cuộc hội thoại", + "clap": "Vỗ tay", + "closeChat": "Đóng chat", + "closeMoreActions": "Đóng menu hành động khác", + "closeParticipantsPane": "Đóng khung người tham gia", + "collapse": "Thu gọn", + "document": "Mở/Đóng tài liệu được chia sẻ", + "documentClose": "Đóng tài liệu được chia sẻ", + "documentOpen": "Mở tài liệu được chia sẻ", + "download": "Tải xuống ứng dụng của chúng tôi", + "embedMeeting": "Nhúng cuộc họp", + "endConference": "Kết thúc cuộc họp cho tất cả", + "enterFullScreen": "Xem toàn màn hình", + "enterTileView": "Vào chế độ xem lưới", + "exitFullScreen": "Thoát khỏi chế độ toàn màn hình", + "exitTileView": "Thoát khỏi chế độ xem lưới", + "expand": "Mở rộng", + "feedback": "Để lại phản hồi", + "fullScreen": "Bật/Tắt toàn màn hình", + "giphy": "menu GIPHY", + "grantModerator": "Cấp quyền quản trị", + "hangup": "Rời cuộc gọi", + "heading": "Thanh công cụ", + "help": "Trợ giúp", + "hideWhiteboard": "Ẩn bảng", + "invite": "Mời người tham gia", + "kick": "Đuổi người tham gia ra", + "laugh": "Cười", + "leaveConference": "Rời khỏi cuộc họp", + "like": "Thích", + "linkToSalesforce": "Liên kết với Salesforce", + "lobbyButton": "Bật/Tắt chế độ sảnh chờ", + "localRecording": "Bật/Tắt điều khiển ghi hình cục bộ", + "lockRoom": "Mở/Đóng mật khẩu phòng họp", + "lowerHand": "Hạ tay xuống", + "moreActions": "Xem thêm", + "moreActionsMenu": "Menu thêm", + "moreOptions": "Hiển thị thêm tùy chọn", + "mute": "Bật/Tắt tiếng", + "muteEveryone": "Tắt tiếng tất cả mọi người", + "muteEveryoneElse": "Tắt tiếng những người khác", + "muteEveryoneElsesVideoStream": "Tắt video của tất cả mọi người khác", + "muteEveryonesVideoStream": "Tắt video của tất cả mọi người", + "muteGUMPending": "Đang kết nối microphone của bạn", + "noiseSuppression": "Chế độ chống ồn", + "openChat": "Mở chat", + "participants": "Mở khung người tham gia", + "pip": "Bật/Tắt chế độ Hình-trong-Hình", + "privateMessage": "Gửi tin nhắn riêng tư", + "profile": "Chỉnh sửa hồ sơ cá nhân", + "raiseHand": "Giơ/Hạ tay", + "reactions": "Phản ứng", + "reactionsMenu": "Menu phản ứng", + "recording": "Bật/Tắt ghi hình", + "remoteMute": "Tắt tiếng người tham gia", + "remoteVideoMute": "Tắt camera của người tham gia", + "security": "Các tùy chọn bảo mật", + "selectBackground": "Chọn hình nền", + "selfView": "Chuyển đổi chế độ xem của bản thân", + "shareRoom": "Mời ai đó", + "shareYourScreen": "Bật/Tắt chia sẻ màn hình", + "shareaudio": "Chia sẻ âm thanh", + "sharedvideo": "Mở/Đóng chia sẻ video", + "shortcuts": "Bật/Tắt phím tắt", + "show": "Hiển thị trên sân khấu", + "showWhiteboard": "Hiển thị bảng trắng", + "silence": "Im lặng", + "speakerStats": "Mở/Đóng thống kê", + "stopScreenSharing": "Ngừng chia sẻ màn hình của bạn", + "stopSharedVideo": "Ngừng video", + "surprised": "Ngạc nhiên", + "tileView": "Mở/Đóng xem dạng lưới", + "toggleCamera": "Bật/Tắt Camera", + "toggleFilmstrip": "Chuyển đổi thanh trượt phim", + "unmute": "Bật âm thanh microphone", + "videoblur": "Chuyển đổi làm mờ video", + "videomute": "Bật/Tắt tiếng và hình", + "videomuteGUMPending": "Đang kết nối camera của bạn", + "videounmute": "Bật camera" + }, + "addPeople": "Thêm người vào cuộc họp", + "audioOnlyOff": "Tắt chế độ chỉ nghe âm thanh", + "audioOnlyOn": "Bật chế độ chỉ nghe âm thanh", + "audioRoute": "Chọn thiết bị âm thanh", + "audioSettings": "Cài đặt âm thanh", + "authenticate": "Xác thực", + "boo": "Boo", + "callQuality": "Chỉnh chất lượng", + "chat": "Mở/Đóng cuộc hội thoại", + "clap": "Vỗ tay", + "closeChat": "Đóng cuộc hội thoại", + "closeParticipantsPane": "Đóng bảng thông tin người tham gia", + "closeReactionsMenu": "Đóng menu phản ứng", + "disableNoiseSuppression": "Tắt chế độ khử tiếng ồn", + "disableReactionSounds": "Bạn có thể tắt âm thanh phản ứng cho cuộc họp này", + "documentClose": "Đóng tài liệu được chia sẻ", + "documentOpen": "Mở tài liệu được chia sẻ", + "download": "Tải xuống ứng dụng của chúng tôi", + "e2ee": "Mã hóa Đầu Cuối", + "embedMeeting": "Nhúng cuộc họp", + "enableNoiseSuppression": "Bật chế độ khử tiếng ồn", + "endConference": "Kết thúc cuộc họp cho tất cả", + "enterFullScreen": "Xem toàn màn hình", + "enterTileView": "Xem chế độ lưới", + "exitFullScreen": "Thoát toàn màn hình", + "exitTileView": "Thoát xem dạng lưới", + "feedback": "Để lại phản hồi", + "giphy": "GIPHY menu", + "hangup": "Rời cuộc họp", + "help": "Trợ giúp", + "hideWhiteboard": "Ẩn bảng", + "invite": "Mời người tham gia", + "joinBreakoutRoom": "Tham gia phòng breakout", + "laugh": "Cười", + "leaveBreakoutRoom": "Rời khỏi phòng breakout", + "leaveConference": "Rời khỏi cuộc họp", + "like": "Thích", + "linkToSalesforce": "Liên kết với Salesforce", + "lobbyButtonDisable": "Tắt chế độ lối vào", + "lobbyButtonEnable": "Bật chế độ lối vào", + "login": "Đăng nhập", + "logout": "Đăng xuất", + "lowerYourHand": "Hạ tay", + "moreActions": "Thêm hành động", + "moreOptions": "Hiển thị thêm tùy chọn", + "mute": "Tắt/Bật tiếng", + "muteEveryone": "Tắt tiếng tất cả mọi người", + "muteEveryonesVideo": "Tắt tất cả camera", + "muteGUMPending": "Đang kết nối microphone của bạn", + "noAudioSignalDesc": "Nếu bạn không tắt microphone từ cài đặt hệ thống hoặc phần cứng một cách cố ý, hãy xem xét chuyển sang thiết bị khác.", + "noAudioSignalDescSuggestion": "Nếu bạn không tắt microphone từ cài đặt hệ thống hoặc phần cứng một cách cố ý, hãy xem xét chuyển sang thiết bị được đề xuất.", + "noAudioSignalDialInDesc": "Bạn cũng có thể gọi qua:", + "noAudioSignalDialInLinkDesc": "Các số điện thoại gọi qua", + "noAudioSignalTitle": "Không có tín hiệu âm thanh đến từ micro của bạn!", + "noiseSuppression": "Chế độ làm giảm tiếng ồn", + "noisyAudioInputDesc": "Dường như micro của bạn đang tạo ra tiếng ồn. Vui lòng tắt tiếng hoặc thay thiết bị khác.", + "noisyAudioInputTitle": "Micro của bạn dường như có nhiều tiếng ồn!", + "openChat": "Mở cuộc hội thoại", + "openReactionsMenu": "Mở menu phản ứng", + "participants": "Những người tham dự", + "pip": "Vào chế độ Ảnh-trong-Ảnh", + "privateMessage": "Tin nhắn riêng", + "profile": "Chỉnh sửa hồ sơ cá nhân", + "raiseHand": "Giơ/Hạ tay", + "raiseYourHand": "Giơ tay", + "reactionBoo": "Gửi phản ứng cười", + "reactionClap": "Gửi phản ứng vỗ tay", + "reactionLaugh": "Gửi phản ứng cười", + "reactionLike": "Gửi phản ứng thích", + "reactionSilence": "Gửi phản ứng im lặng", + "reactionSurprised": "Gửi phản ứng ngạc nhiên", + "reactions": "Cảm xúc", + "security": "Tùy chọn bảo mật", + "selectBackground": "Chọn hình nền", + "shareRoom": "Chia sẻ phòng", + "shareaudio": "Chia sẻ âm thah", + "sharedvideo": "Chia sẻ video", + "shortcuts": "Xem phím tắt", + "showWhiteboard": "Hiện bảng trắng", + "silence": "Im lặng", + "speakerStats": "Thống kê về người tham dự", + "startScreenSharing": "Bắt đầu chia sẻ màn hình", + "startSubtitles": "Bắt đầu phụ đề", + "stopAudioSharing": "Dừng chia sẻ âm thanh", + "stopScreenSharing": "Dừng chia sẻ màn hình", + "stopSharedVideo": "Dừng video", + "stopSubtitles": "Dừng phụ đề", + "surprised": "Ngạc nhiên", + "talkWhileMutedPopup": "Đang nói chuyện? Bạn đang tắt tiếng.", + "tileViewToggle": "Mở/Đóng xem dạng lưới", + "toggleCamera": "Mở/Đóng camera", + "unmute": "Bỏ tắt tiếng", + "videoSettings": "Cài đặt hình ảnh", + "videomute": "Bật/Tắt camera", + "videomuteGUMPending": "Đang kết nối camera của bạn", + "videounmute": "Bắt đầu camera" + }, + "transcribing": { + "ccButtonTooltip": "Chạy/Dừng phụ đề", + "expandedLabel": "Phiên âm đang bật", + "failedToStart": "Khởi chạy phiên âm thất bại", + "labelToolTip": "Cuộc họp đang được phiên âm", + "sourceLanguageDesc": "Hiện tại ngôn ngữ của cuộc họp được đặt là {{sourceLanguage}}.
Bạn có thể thay đổi nó từ", + "sourceLanguageHere": "đây", + "start": "Bắt đầu hiển thị phụ đề", + "stop": "Dừng hiển thị phụ đề", + "subtitles": "Phụ đề", + "subtitlesOff": "Tắt", + "tr": "TR" + }, + "unpinParticipant": "{{participantName}} - Bỏ ghim", + "userMedia": { + "grantPermissions": "Vui lòng cấp quyền sử dụng camera và micro của bạn." + }, + "videoSIPGW": { + "busy": "Chúng tôi đang giải phóng tài nguyên. Vui lòng thử lại sau vài phút.", + "busyTitle": "Dịch vụ phòng họp đang bận", + "errorAlreadyInvited": "{{displayName}} đã được mời", + "errorInvite": "Cuộc họp chưa được khởi tạo. Vui lòng thử lại.", + "errorInviteFailed": "Chúng tôi đang xử lý vấn đề. Vui lòng thử lại sau.", + "errorInviteFailedTitle": "Mời {{displayName}} thất bại", + "errorInviteTitle": "Lỗi mời họp", + "pending": "{{displayName}} đã được mời" + }, + "videoStatus": { + "adjustFor": "Điều chỉnh cho:", + "audioOnly": "AUD", + "audioOnlyExpanded": "Bạn đang ở chế độ chỉ nghe âm thanh. Chế độ này giảm băng thông nhưng không thấy hình ảnh người khác.", + "bestPerformance": "Hiệu suất tốt nhất", + "callQuality": "Chất lượng hình ảnh", + "hd": "HD", + "hdTooltip": "Xem video chất lượng cao", + "highDefinition": "Độ phân giải cao", + "highestQuality": "Chất lượng cao nhất", + "labelTooiltipNoVideo": "Không hình ảnh", + "labelTooltipAudioOnly": "Chế độ chỉ nghe âm thanh đã bật", + "ld": "LD", + "ldTooltip": "Xem video chất lượng thấp", + "lowDefinition": "Độ phân giải thấp", + "performanceSettings": "Cài đặt hiệu suất", + "recording": "Đang ghi", + "sd": "SD", + "sdTooltip": "Xem video chất lượng tiêu chuẩn", + "standardDefinition": "Độ phân giải thường", + "streaming": "Đang phát trực tiếp" + }, + "videothumbnail": { + "connectionInfo": "Thông tin kết nối", + "demote": "Di chuyển đến khách truy cập", + "domute": "Tắt tiếng", + "domuteOthers": "Tắt tiếng mọi người khác", + "domuteVideo": "Tắt máy ảnh", + "domuteVideoOfOthers": "Vô hiệu hóa máy ảnh của người khác", + "flip": "Lật hình", + "grantModerator": "Cấp quyền quản trị", + "hideSelfView": "Ẩn chế độ xem bản thân", + "kick": "Đẩy ra", + "mirrorVideo": "Phản chiếu video của tôi", + "moderator": "Quản trị viên", + "mute": "Người tham gia bị tắt tiếng", + "muted": "Đã tắt tiếng", + "pinToStage": "Ghim vào sân khấu", + "remoteControl": "Điều khiển từ xa", + "screenSharing": "Người tham gia đang chia sẻ màn hình", + "show": "Hiển thị trên sân khấu", + "showSelfView": "Hiển thị tự xem", + "unpinFromStage": "Bỏ ghim từ sân khấu", + "verify": "Xác minh người tham gia", + "videoMuted": "Camera bị vô hiệu hóa", + "videomute": "Người tham gia đã tắt máy ảnh" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Nền hiện tại: {{background}}", + "selectBackground": "Chọn một nền" + }, + "addBackground": "Thêm hình nền", + "apply": "Áp dụng", + "backgroundEffectError": "Không thể áp dụng hiệu ứng hình nền.", + "blur": "Làm mờ", + "deleteImage": "Xóa ảnh", + "desktopShare": "Chia sẻ màn hình", + "desktopShareError": "Không thể chia sẻ màn hình", + "image1": "Bãi biển", + "image2": "Tường trắng trung tính", + "image3": "Phòng trống màu trắng", + "image4": "Đèn sàn màu đen", + "image5": "Núi", + "image6": "Rừng", + "image7": "Mặt trời mọc", + "none": "Không có", + "pleaseWait": "Vui lòng đợi…", + "removeBackground": "Xóa hình nền", + "slightBlur": "Làm mờ nhẹ", + "title": "Hình nền ảo", + "uploadedImage": "Tải ảnh lên {{index}}", + "webAssemblyWarning": "WebAssembly không được hỗ trợ", + "webAssemblyWarningDescription": "WebAssembly đã bị tắt hoặc không được hỗ trợ bởi trình duyệt này" + }, + "visitors": { + "chatIndicator": "(khách)", + "labelTooltip": "Số lượt truy cập: {{count}}", + "notification": { + "demoteDescription": "Được gửi đến đây bởi {{actor}}, giơ tay để tham gia", + "description": "Để tham gia, hãy giơ tay", + "title": "Bạn là một khách trong cuộc họp" + } + }, + "volumeSlider": "Thanh điều chỉnh âm lượng", + "welcomepage": { + "accessibilityLabel": { + "join": "Chạm để tham gia", + "roomname": "Nhập tên phòng" + }, + "addMeetingName": "Thêm tên phòng họp", + "appDescription": "{{app}} được mã hóa, 100% giải pháp cuộc họp trực tuyến mã nguồn mở mà bạn có thể sử dụng hàng ngày, miễn phí.", + "audioVideoSwitch": { + "audio": "Tiếng", + "video": "Hình ảnh" + }, + "calendar": "Lịch", + "connectCalendarButton": "Kết nối lịch của bạn", + "connectCalendarText": "Kết nối lịch của bạn để xem tất cả các cuộc họp {{app}}. Thêm, thêm cuộc họp {{provider}} vào lịch của bạn và bắt đầu.", + "enterRoomTitle": "Bắt đầu cuộc họp mới", + "getHelp": "Nhận hỗ trợ", + "go": "Đi", + "goSmall": "Đi", + "headerSubtitle": "Cuộc họp an toàn và chất lượng cao", + "headerTitle": "Jitsi Meet", + "info": "Thông tin", + "jitsiOnMobile": "Jitsi trên điện thoại di động - tải ứng dụng của chúng tôi và bắt đầu cuộc họp từ bất kỳ đâu", + "join": "Tham gia", + "logo": { + "calendar": "Biểu tượng lịch", + "desktopPreviewThumbnail": "Ảnh xem trước trên máy tính", + "googleLogo": "Logo Google", + "logoDeepLinking": "Logo Jitsi Meet", + "microsoftLogo": "Logo Microsoft", + "policyLogo": "Logo chính sách" + }, + "meetingsAccessibilityLabel": "Cuộc họp", + "mobileDownLoadLinkAndroid": "Tải ứng dụng di động cho Android", + "mobileDownLoadLinkFDroid": "Tải ứng dụng di động cho F-Droid", + "mobileDownLoadLinkIos": "Tải ứng dụng di động cho iOS", + "moderatedMessage": "Hoặc đặt một URL cuộc họp trước, trong đó bạn là duy nhất làm người điều hành.", + "privacy": "Bảo mật", + "recentList": "Hiện tại", + "recentListDelete": "Xóa", + "recentListEmpty": "Danh sách cuộc họp trống. Thực hiện cuộc họp và bạn sẽ thấy danh sách hiện tại đây.", + "recentMeetings": "Các cuộc họp gần đây của bạn", + "reducedUIText": "Chào mừng đến với {{app}}!", + "roomNameAllowedChars": "Tên cuộc họp không được chứa bất kỳ ký tự nào sau đây: ?, &, :, ', \", %, #.", + "roomname": "Nhập tên phòng", + "roomnameHint": "Thêm tên hoặc URL của phòng họp bạn muốn tham gia. Ban có thể tạo tên phòng, gửi cho người bạn muốn mời để họ sử dụng tên đó.", + "sendFeedback": "Gửi góp ý", + "settings": "Cài đặt", + "startMeeting": "Bắt đầu cuộc họp", + "terms": "Điều kiện", + "title": "Bảo mật, đầy đủ tính năng và miễn phí hoàn toàn", + "upcomingMeetings": "Các cuộc họp sắp tới của bạn" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Bảng trắng" + }, + "screenTitle": "Bảng trắng" + } +} diff --git a/lang/main-zhCN.json b/lang/main-zhCN.json new file mode 100644 index 0000000..d009093 --- /dev/null +++ b/lang/main-zhCN.json @@ -0,0 +1,1631 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "会议链接: {{url}}" + }, + "add": "邀请", + "addContacts": "邀请你的联系人", + "contacts": "联系人", + "copyInvite": "复制全部信息", + "copyLink": "复制会议链接", + "copyStream": "复制直播链接", + "countryNotSupported": "我们尚未支持这个地区。", + "countryReminder": "在美国之外的地区通话?别忘了在开头添加国际电话区号!", + "defaultEmail": "你的默认邮箱", + "disabled": "你无法邀请其他人。", + "failedToAdd": "添加参会者失败", + "googleEmail": "Google邮箱", + "inviteMoreHeader": "当前会议中仅有你一人", + "inviteMoreMailSubject": "加入{{appName}}会议", + "inviteMorePrompt": "邀请更多人", + "linkCopied": "链接已复制到剪贴板", + "noResults": "没有相匹配的搜索结果", + "outlookEmail": "Outlook邮箱", + "phoneNumbers": "电话号码", + "searching": "搜索中……", + "shareInvite": "分享会议邀请链接", + "shareLink": "分享会议链接以邀请其他人", + "shareStream": "分享直播链接", + "sipAddresses": "SIP地址", + "telephone": "电话号码:{{number}}", + "title": "邀请他人加入这个会议", + "yahooEmail": "Yahoo邮箱" + }, + "audioDevices": { + "bluetooth": "蓝牙", + "car": "汽车音响", + "headphones": "耳机", + "none": "没有可用的音频设备", + "phone": "电话", + "speaker": "扬声器" + }, + "audioOnly": { + "audioOnly": "省流" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "例如,10000000为10兆", + "assumedBandwidthBpsWarning": "较高的数值可能会导致网络问题。", + "customValue": "自定义数值", + "customValueEffect": "用于设置实际的比特每秒值", + "leaveEmpty": "留空", + "leaveEmptyEffect": "以便进行估算", + "possibleValues": "预估的数值", + "setAssumedBandwidthBps": "假设带宽(比特/秒)", + "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链接", + "error": { + "appConfiguration": "日历整合没有正确配置。", + "generic": "发生错误,请检查日历设置或尝试刷新日历。", + "notSignedIn": "查看日历事件时验证出错,请检查你的日历设置并尝试再次登录。" + }, + "join": "加入", + "joinTooltip": "加入会议", + "nextMeeting": "下一场会议", + "noEvents": "没有预定的活动安排。", + "ongoingMeeting": "正在进行的会议", + "permissionButton": "设置", + "permissionMessage": "在应用中查看会议需要日历权限。", + "refresh": "刷新日历", + "today": "今天" + }, + "carmode": { + "actions": { + "selectSoundDevice": "选择音频设备" + }, + "labels": { + "buttonLabel": "驾驶模式", + "title": "驾驶模式", + "videoStopped": "你的视频已停止" + } + }, + "chat": { + "disabled": "聊天已禁用", + "enter": "加入会议室", + "error": "错误:你的消息未发送。原因:{{error}}", + "fieldPlaceHolder": "在这里输入你的信息", + "lobbyChatMessageTo": "等候室聊天消息发送至{{recipient}}", + "message": "信息", + "messageAccessibleTitle": "{{user}}:", + "messageAccessibleTitleMe": "我:", + "messageTo": "与{{recipient}}的私聊", + "messagebox": "输入消息", + "newMessages": "新信息", + "nickname": { + "popover": "选择一个昵称", + "title": "输入昵称(用于聊天)", + "titleWithCC": "输入昵称(用于聊天和字幕)", + "titleWithPolls": "输入昵称(用于聊天和投票)", + "titleWithPollsAndCC": "输入昵称(用于聊天、投票和字幕)", + "titleWithPollsAndCCAndFileSharing": "输入昵称(用于聊天、投票、字幕和文件共享)" + }, + "noMessagesMessage": "会议中还没有消息,在这里开始谈话吧!", + "privateNotice": "与{{recipient}}的私聊", + "sendButton": "发送", + "smileysPanel": "表情符号面板", + "systemDisplayName": "系統", + "tabs": { + "chat": "聊天", + "closedCaptions": "字幕", + "fileSharing": "文件共享", + "polls": "投票" + }, + "title": "聊天", + "titleWithCC": "字幕", + "titleWithFeatures": "聊天和", + "titleWithFileSharing": "文件", + "titleWithPolls": "投票", + "you": "你" + }, + "chromeExtensionBanner": { + "buttonText": "安装Chrome扩展程序", + "buttonTextEdge": "安装Edge外接程序", + "close": "关闭", + "dontShowAgain": "不要再问我了", + "installExtensionText": "安装用于Google日历和Office 365集成的扩展插件" + }, + "closedCaptionsTab": { + "emptyState": "字幕将在主持人开启后显示", + "startClosedCaptionsButton": "开启字幕" + }, + "connectingOverlay": { + "joiningRoom": "连接会议中……" + }, + "connection": { + "ATTACHED": "已接入", + "AUTHENTICATING": "验证中", + "AUTHFAIL": "验证失败", + "CONNECTED": "已连接", + "CONNECTING": "连接中", + "CONNFAIL": "连接失败", + "DISCONNECTED": "已断开连接", + "DISCONNECTING": "断开连接中", + "ERROR": "错误", + "FETCH_SESSION_ID": "获取会话ID中……", + "GET_SESSION_ID_ERROR": "获取会话ID错误:{{code}}", + "GOT_SESSION_ID": "获取会话ID中……完成", + "LOW_BANDWIDTH": "为节省带宽,{{displayName}} 的视频已被关闭" + }, + "connectionindicator": { + "address": "地址:", + "audio_ssrc": "音频SSRC:", + "bandwidth": "预估带宽:", + "bitrate": "下载/上传:", + "bridgeCount": "服务器数量:", + "codecs": "编解码器:", + "connectedTo": "已连接到:", + "e2eeVerified": "端到端加密已验证:", + "framerate": "帧率:", + "less": "收起", + "localaddress": "本地地址:", + "localaddress_plural": "本地地址:", + "localport": "本地端口:", + "localport_plural": "本地端口:", + "maxEnabledResolution": "发送最大值", + "more": "更多", + "no": "否", + "packetloss": "丢包率:", + "participant_id": "参会者ID:", + "quality": { + "good": "良好", + "inactive": "闲置", + "lost": "丢失", + "nonoptimal": "欠佳", + "poor": "很差" + }, + "remoteaddress": "远程地址:", + "remoteaddress_plural": "远程地址:", + "remoteport": "远程端口:", + "remoteport_plural": "远程端口:", + "resolution": "分辨率:", + "savelogs": "保存日志", + "status": "连接状态:", + "transport": "传输协议:", + "transport_plural": "传输:", + "video_ssrc": "视频SSRC:", + "yes": "是" + }, + "dateUtils": { + "earlier": "更早", + "today": "今天", + "yesterday": "昨天" + }, + "deepLinking": { + "appNotInstalled": "你需要在手机上安装{{app}}的APP才能加入此会议。", + "description": "没反应?我们已经尝试在{{app}}的电脑应用程序中加入会议,请重试或在{{app}}网页端中启动。", + "descriptionNew": "没反应?我们已经尝试在{{app}}的电脑应用程序中加入会议。

你可以重试,或在网页端中启动。", + "descriptionWithoutWeb": "没反应?我们已经尝试在{{app}}的电脑应用程序中加入会议。", + "downloadApp": "下载APP", + "downloadMobileApp": "前往App Store下载", + "ifDoNotHaveApp": "如果你还没有这个APP:", + "ifHaveApp": "如果你已经拥有该APP:", + "joinInApp": "使用APP加入此会议", + "joinInAppNew": "在应用中加入", + "joinInBrowser": "在浏览器中加入", + "launchMeetingLabel": "你希望如何加入此会议?", + "launchWebButton": "在网页中启动", + "noDesktopApp": "还没有安装桌面客户端?", + "noMobileApp": "还没有安装手机App?", + "or": "或", + "termsAndConditions": "继续操作即表示你同意我们的条款和条件。", + "title": "正在{{app}}中加入会议……", + "titleNew": "正在启动你的会议……", + "tryAgainButton": "请在电脑应用程序中重试", + "unsupportedBrowser": "你似乎正在使用我们不支持的浏览器" + }, + "defaultLink": "例如:{{url}}", + "defaultNickname": "例如:张三", + "deviceError": { + "cameraError": "无法访问你的摄像头", + "cameraPermission": "获取摄像头权限时出错", + "microphoneError": "无法访问你的麦克风", + "microphonePermission": "获取麦克风权限时出错" + }, + "deviceSelection": { + "hid": { + "callControl": "呼叫控制", + "connectedDevices": "已连接的设备:", + "deleteDevice": "删除设备", + "pairDevice": "配对设备" + }, + "noPermission": "未获得授权", + "previewUnavailable": "无法预览", + "selectADevice": "选择设备", + "testAudio": "播放测试音频" + }, + "dialIn": { + "screenTitle": "通话记录" + }, + "dialOut": { + "statusMessage": "现在状态为{{status}}" + }, + "dialog": { + "Back": "返回", + "Cancel": "取消", + "IamHost": "登录主持", + "Ok": "确定", + "Remove": "移除", + "Share": "分享", + "Submit": "提交", + "Understand": "我已知晓,暂时保持静音", + "UnderstandAndUnmute": "我已知晓,请为我解除静音", + "WaitForHostMsg": "会议尚未开始,主持人还未入会。如需成为主持人请先登录,或耐心等待会议开始。", + "WaitForHostNoAuthMsg": "会议尚未开始,暂无主持人入会,请耐心等待", + "WaitingForHostButton": "等待主持人", + "WaitingForHostTitle": "正在等待主持人加入……", + "Yes": "是", + "accessibilityLabel": { + "Cancel": "取消(离开对话框)", + "Ok": "确定(保存并离开对话框)", + "close": "关闭对话框", + "liveStreaming": "网络直播", + "sharingTabs": "分享选项" + }, + "add": "添加", + "addMeetingNote": "添加本次会议的备注", + "addOptionalNote": "添加备注(可选):", + "allow": "允许", + "allowToggleCameraDialog": "你是否允许{{initiatorName}}切换你的摄像头?", + "allowToggleCameraTitle": "允许切换摄像头?", + "alreadySharedVideoMsg": "其他参会者正在分享视频,本次会议仅支持同时分享一个视频。", + "alreadySharedVideoTitle": "同一时间只允许一个视频分享", + "applicationWindow": "应用程序窗口", + "authenticationRequired": "需要身份验证", + "cameraConstraintFailedError": "你的摄像头未满足某些必要条件。", + "cameraNotFoundError": "找不到摄像头", + "cameraNotSendingData": "我们无法访问你的摄像头,请检查是否有其他应用程序正在使用此设备,从设置菜单中选择另一个设备,或尝试重新加载应用程序。", + "cameraNotSendingDataTitle": "无法访问摄像头", + "cameraPermissionDeniedError": "未获得摄像头的使用权限,你仍可以加入会议,但其他人无法看到你。点击地址栏中的摄像头图标,然后选择“始终允许”选项。", + "cameraTimeoutError": "无法启动视频源,超时!", + "cameraUnknownError": "由于未知错误,无法使用摄像头。", + "cameraUnsupportedResolutionError": "你的摄像头不支持所需的视频分辨率。", + "close": "关闭", + "conferenceDisconnectMsg": "请检查你的网络连接,将在{{seconds}}秒后重新连接……", + "conferenceDisconnectTitle": "你已断开连接。", + "conferenceReloadMsg": "我们正在努力修复此问题,将在{{seconds}}秒后重新连接……", + "conferenceReloadTitle": "糟了,好像有什么东西出错了。", + "confirm": "确认", + "confirmBack": "返回", + "confirmNo": "否", + "confirmYes": "是", + "connectError": "发生错误,无法连接至会议!", + "connectErrorWithMsg": "发生错误,无法连接至会议:{{msg}}", + "connecting": "连接中", + "contactSupport": "联系支持", + "copied": "已复制", + "copy": "复制", + "demoteParticipantDialog": "确定将该成员调整为观众吗?", + "demoteParticipantTitle": "调整为观众", + "dismiss": "忽略", + "displayNameRequired": "嗨!你叫什么名字?", + "done": "完成", + "e2eeDescription": "请注意,端到端加密目前处于实验阶段,开启端到端加密将禁用部分服务器端提供的服务,例如:通过电话加入会议。另外,通过网页版加入会议还需要使用支持Insertable Stream的浏览器。", + "e2eeDisabledDueToMaxModeDescription": "由于会议中的人数过多,无法开启端到端加密。", + "e2eeLabel": "开启端到端加密", + "e2eeWarning": "警告:本次会议中并不是所有的参会者都支持端到端加密。如果开启它,他们将无法看到或听到你。", + "e2eeWillDisableDueToMaxModeDescription": "警告:如果有更多人加入会议,端到端加密将自动禁用。", + "embedMeeting": "嵌入会议", + "enterDisplayName": "请输入你的姓名", + "error": "错误", + "errorRoomCreationRestriction": "加入过于频繁,请稍后再试。", + "gracefulShutdown": "我们的服务目前正在维护中,请稍后再试。", + "grantModeratorDialog": "确定将{{participantName}}设为主持人吗?", + "grantModeratorTitle": "授予主持人权限", + "hide": "隐藏", + "hideShareAudioHelper": "不要再显示", + "incorrectPassword": "用户名或者密码不正确", + "incorrectRoomLockPassword": "密码不正确", + "internalError": "哎呀!出现了点问题,发生错误:{{error}}", + "internalErrorTitle": "内部错误", + "kickMessage": "你可以联系{{participantDisplayName}}获取更多详细信息。", + "kickParticipantButton": "移除", + "kickParticipantDialog": "你确定你要移除这位参会者吗?", + "kickParticipantTitle": "移除这位参会者?", + "kickSystemTitle": "你已被移出会议", + "kickTitle": "{{participantDisplayName}}将你从会议中移除", + "learnMore": "了解详情", + "linkMeeting": "关联会议", + "linkMeetingTitle": "议关联到Salesforce", + "liveStreaming": "直播中", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "正在录制中,无法开启", + "localUserControls": "本地用户控制", + "lockMessage": "锁定会议失败。", + "lockRoom": "添加会议$t(lockRoomPasswordUppercase)", + "lockTitle": "锁定失败", + "login": "登录", + "loginQuestion": "你确定要登录并离开会议吗?", + "logoutQuestion": "你确定要注销并离开会议吗?", + "logoutTitle": "注销", + "maxUsersLimitReached": "参会人数已达上限,请与会议所有者联系或稍后再试!", + "maxUsersLimitReachedTitle": "参会人数已达上限", + "micConstraintFailedError": "你的麦克风不符合要求。", + "micNotFoundError": "未找到麦克风", + "micNotSendingData": "在你的电脑设置中,取消麦克风静音并调整音量", + "micNotSendingDataTitle": "你的麦克风在系统设置中为静音", + "micPermissionDeniedError": "你未授予麦克风的权限,虽然可以继续加入会议但其他人将听不到你的声音,使用地址栏里的摄像头按钮即可解决此问题。", + "micTimeoutError": "无法开启音频设备,发生超时!", + "micUnknownError": "由于未知原因,无法使用麦克风。", + "moderationAudioLabel": "允许参会者自己解除静音", + "moderationVideoLabel": "允许参会者自己开启视频", + "muteEveryoneDialog": "参会者可以在任何时候解除自己的静音。", + "muteEveryoneDialogModerationOn": "参会者可以在任何时候请求发言。", + "muteEveryoneElseDialog": "静音后,你将无法为其解除静音,但是他们可以随时解除自己的静音。", + "muteEveryoneElseTitle": "除了{{whom}}以外的将所有人静音?", + "muteEveryoneElsesVideoDialog": "一旦关闭,你将无法重新开启他们的摄像头,但他们随时可以重新开启。", + "muteEveryoneElsesVideoTitle": "除了{{whom}}以外,关闭所有人的摄像头?", + "muteEveryoneSelf": "你自己", + "muteEveryoneStartMuted": "现在所有人都已静音", + "muteEveryoneTitle": "静音所有人?", + "muteEveryonesVideoDialog": "参会者可以随时开启他们的摄像头", + "muteEveryonesVideoDialogModerationOn": "参会者可以随时请求开启他们的摄像头", + "muteEveryonesVideoDialogOk": "关闭", + "muteEveryonesVideoTitle": "关闭所有人的摄像头?", + "muteParticipantBody": "你将无法为他们解除静音,但是他们可以随时解除自己的静音。", + "muteParticipantButton": "静音", + "muteParticipantsVideoBody": "你无法重新开启摄像头,但他们随时可以重新开启。", + "muteParticipantsVideoBodyModerationOn": "你和他们都无法重新开启摄像头", + "muteParticipantsVideoButton": "关闭摄像头", + "muteParticipantsVideoDialog": "你确定要禁用这个参会者的摄像头吗?你将无法重新开启他们的摄像头,但他们随时可以重新开启。", + "muteParticipantsVideoDialogModerationOn": "你确定要禁用这个参会者的摄像头吗?你和他们都无法再开打摄像头。", + "muteParticipantsVideoTitle": "关闭这个参会者的摄像头?", + "noDropboxToken": "没有有效的Dropbox token", + "password": "密码", + "passwordLabel": "该会议已被一位与会者锁定,请输入$t(lockRoomPassword)来加入。", + "passwordNotSupported": "不支持设置会议$t(lockRoomPassword)。", + "passwordNotSupportedTitle": "不支持$t(lockRoomPasswordUppercase)", + "passwordRequired": "需要$t(lockRoomPasswordUppercase)", + "permissionCameraRequiredError": "参加视频会议需要开启摄像头,请在设置中授予使用权", + "permissionErrorTitle": "需要权限", + "permissionMicRequiredError": "参加音频会议需要开启麦克风,请在设置中授予使用权", + "readMore": "更多", + "recentlyUsedObjects": "你最近使用的对象", + "recording": "录制中", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "直播时无法使用", + "recordingInProgressDescription": "本会议正由AI录制并分析{{learnMore}},你已被静音。如需发言,视为同意录制。", + "recordingInProgressDescriptionFirstHalf": "本会议正由AI录制并分析", + "recordingInProgressDescriptionSecondHalf": ",你已被静音。如需发言,视为同意录制。", + "recordingInProgressTitle": "录制中", + "rejoinNow": "马上重新加入", + "remoteControlAllowedMessage": "{{user}}接受了你的远程控制请求!", + "remoteControlDeniedMessage": "{{user}}拒绝了你的远程控制请求!", + "remoteControlErrorMessage": "尝试向{{user}}请求远程控制权限时发生了错误!", + "remoteControlRequestMessage": "你是否允许{{user}}远程控制你的桌面吗?", + "remoteControlShareScreenWarning": "请注意:如果按下“允许”你将会共享你的屏幕!", + "remoteControlStopMessage": "远程控制会话结束!", + "remoteControlTitle": "远程桌面控制", + "remoteUserControls": "{{username}}的远程用户控制", + "removePassword": "移除$t(lockRoomPassword)", + "removeSharedVideoMsg": "你确定要移除分享的视频吗?", + "removeSharedVideoTitle": "移除共享的视频", + "renameBreakoutRoomLabel": "分组讨论室名称", + "renameBreakoutRoomTitle": "重命名分组讨论室", + "reservationError": "预定系统错误", + "reservationErrorMsg": "错误代码:{{code}},提示信息:{{msg}}", + "retry": "重试", + "screenSharingAudio": "共享音频", + "screenSharingFailed": "发生了错误,我们无法启动共享屏幕!", + "screenSharingFailedTitle": "共享屏幕失败!", + "screenSharingPermissionDeniedError": "你的屏幕共享权限出了问题,请刷新页面并重试。", + "searchInSalesforce": "在Salesforce中搜索", + "searchResults": "搜索结果({{count}})", + "searchResultsDetailsError": "检索所有者数据时出了问题。", + "searchResultsError": "检索数据时出了问题。", + "searchResultsNotFound": "没有找到搜索结果。", + "searchResultsTryAgain": "请尝试使用其他的关键词。", + "sendPrivateMessage": "你最近收到一条私人信息,你是打算私聊回复,还是把信息发到群里?", + "sendPrivateMessageCancel": "发到群里", + "sendPrivateMessageOk": "私信回复", + "sendPrivateMessageTitle": "私信回复?", + "serviceUnavailable": "服务不可用", + "sessTerminated": "通话已结束", + "sessTerminatedReason": "会议已经结束", + "sessionRestarted": "由于连接问题,呼叫重新启动。", + "shareAudio": "继续", + "shareAudioAltText": "如需分享内容,请切换到“浏览器标签页”,勾选“分享音频”并点击“分享”按钮", + "shareAudioTitle": "如何分享音频", + "shareAudioWarningD1": "你需要在分享你的音频之前停止共享屏幕。", + "shareAudioWarningD2": "你需要重新启动你的共享屏幕并勾选“共享音频”。", + "shareAudioWarningH1": "如果你只想分享音频:", + "shareAudioWarningTitle": "在共享音频之前,你需要停止共享屏幕", + "shareMediaWarningGenericH2": "如果你想共享你的屏幕和音频", + "shareScreenWarningD1": "你需要在共享你的屏幕之前停止共享音频。", + "shareScreenWarningD2": "你需要停止音频共享后,重新启动你的共享屏幕并勾选“共享音频”。", + "shareScreenWarningH1": "如果你只想共享屏幕:", + "shareScreenWarningTitle": "在共享你的屏幕之前,你需要停止共享音频", + "shareVideoConfirmPlay": "即将打开外部网站,是否继续?", + "shareVideoConfirmPlayTitle": "需先停止音频共享才能分享屏幕", + "shareVideoLinkError": "请提供正确的视频链接。", + "shareVideoLinkStopped": "{{name}}向你分享了一个视频", + "shareVideoTitle": "分享视频", + "shareYourScreen": "共享你的屏幕", + "shareYourScreenDisabled": "共享屏幕已禁用。", + "sharedVideoDialogError": "错误:网址无效", + "sharedVideoLinkPlaceholder": "YouTube或视频链接", + "show": "显示", + "start": "开始", + "startLiveStreaming": "开始直播", + "startRecording": "开始录制", + "startRemoteControlErrorMessage": "尝试启动远程控制会话时出错!", + "stopLiveStreaming": "停止直播", + "stopRecording": "停止录制", + "stopRecordingWarning": "确定要停止录制吗", + "stopStreamingWarning": "确定要停止直播吗?", + "streamKey": "直播密钥", + "thankYou": "感谢你使用{{appName}}!", + "token": "token", + "tokenAuthFailed": "抱歉,你无法加入此通话。", + "tokenAuthFailedReason": { + "audInvalid": "无效的`aud`值,应为`jitsi`。", + "contextNotFound": "载荷中缺少`context`对象。", + "expInvalid": "`exp`值无效。", + "featureInvalid": "无效的功能:{{feature}},很可能尚未实现。", + "featureValueInvalid": "功能 {{feature}} 的值无效。", + "featuresNotFound": "载荷中缺少`features`对象。", + "headerNotFound": "缺少标头。", + "issInvalid": "`iss`值无效,应为`chat`。", + "kidMismatch": "密钥ID(kid)与子项不匹配。", + "kidNotFound": "缺少密钥ID(kid)。", + "nbfFuture": "`nbf`值在未来。", + "nbfInvalid": "`nbf`值无效", + "payloadNotFound": "缺少有效载荷。", + "tokenExpired": "Token已过期。" + }, + "tokenAuthFailedTitle": "验证失败", + "tokenAuthFailedWithReasons": "抱歉,你无法加入此通话,原因:", + "tokenAuthUnsupported": "Token地址不支持", + "transcribing": "转录中", + "unlockRoom": "移除会议$t(lockRoomPassword)", + "user": "用户", + "userIdentifier": "用户ID", + "userPassword": "用户密码", + "verifyParticipantConfirm": "它们匹配", + "verifyParticipantDismiss": "它们不匹配", + "verifyParticipantQuestion": "实验性功能:询问参会者 {{participantName}} 是否在相同的顺序中看到相同的内容。", + "verifyParticipantTitle": "用户验证", + "videoLink": "视频链接", + "viewUpgradeOptions": "查看升级选项", + "viewUpgradeOptionsContent": "要获取无限制的高级功能,如录制、转录、RTMP 流等,请升级你的计划。", + "viewUpgradeOptionsTitle": "你发现了高级版功能!", + "whiteboardLimitContent": "同时在线白板人数已达上限,暂时无法继续使用", + "whiteboardLimitReference": "详情请访问", + "whiteboardLimitReferenceUrl": "我们的网站", + "whiteboardLimitTitle": "白板人数受限", + "yourEntireScreen": "你的整个屏幕" + }, + "documentSharing": { + "title": "文件传输" + }, + "e2ee": { + "labelToolTip": "本次通话中的语音和视频已采用端到端加密" + }, + "embedMeeting": { + "title": "嵌入此会议" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "你的选择:{{rating}}" + }, + "average": "一般", + "bad": "差", + "detailsLabel": "告诉我们更多信息。", + "good": "好", + "rateExperience": "评价你的会议体验", + "star": "星", + "veryBad": "非常差", + "veryGood": "非常好" + }, + "fileSharing": { + "downloadFailedDescription": "请稍后重试", + "downloadFailedTitle": "下载失败", + "downloadFile": "下载", + "dragAndDrop": "拖拽文件到此处上传", + "fileAlreadyUploaded": "文件已上传至本次会议", + "fileTooLargeDescription": "请确保文件不超过 {{ maxFileSize }}", + "fileTooLargeTitle": "文件太大", + "removeFile": "移除", + "uploadFailedDescription": "请稍后重试", + "uploadFailedTitle": "上传失败", + "uploadFile": "文件共享" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "视频缩略图" + } + }, + "giphy": { + "noResults": "没有找到结果(ఠ్ఠ ˓̭ ఠ్ఠ)", + "search": "搜索GIPHY" + }, + "incomingCall": { + "answer": "接听", + "audioCallTitle": "呼入通话", + "decline": "拒听", + "productLabel": "来自 Jitsi Meet", + "videoCallTitle": "呼入视频通话" + }, + "info": { + "accessibilityLabel": "显示信息", + "addPassword": "添加$t(lockRoomPassword)", + "cancelPassword": "取消$t(lockRoomPassword)", + "conferenceURL": "链接:", + "copyNumber": "复制号码", + "country": "国家", + "dialANumber": "要加入会议,请拨打以下号码,然后输入 PIN 码。", + "dialInConferenceID": "密码:", + "dialInNotSupported": "抱歉,目前不支持电话加入。", + "dialInNumber": "拨入号码:", + "dialInSummaryError": "获取拨入信息时出错。请稍后重试。", + "dialInTollFree": "免费拨入", + "genericError": "糟糕!出错了。", + "inviteLiveStream": "若要查看此会议的直播,请单击此链接:{{url}}", + "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", + "inviteURLSecondPart": "\n加入会议:\n{{url}}\n", + "label": "拨入信息", + "liveStreamURL": "直播链接:", + "moreNumbers": "更多号码", + "noNumbers": "无呼入号码。", + "noPassword": "无", + "noRoom": "没有指定要呼入的会议室。", + "noWhiteboard": "无法加载白板", + "numbers": "拨入号码", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "你已达到套餐限制。", + "sip": "SIP地址", + "sipAudioOnly": "仅限SIP音频地址", + "title": "分享", + "tooltip": "分享此会议的链接和拨入信息", + "upgradeOptions": "请查看升级选项于", + "whiteboardError": "加载白板出错,请稍后重试" + }, + "inlineDialogFailure": { + "msg": "我们似乎出了点小问题。", + "retry": "重试", + "support": "支持", + "supportMsg": "如果这种情况持续发生,请联系" + }, + "inviteDialog": { + "alertText": "个别参会者邀请失败。", + "header": "邀请", + "searchCallOnlyPlaceholder": "输入电话号码", + "searchPeopleOnlyPlaceholder": "查找参会者", + "searchPlaceholder": "参会者或电话号码", + "send": "发送" + }, + "jitsiHome": "{{logo}}的logo,跳转到主页", + "keyboardShortcuts": { + "focusLocal": "聚焦自己的视频", + "focusRemote": "聚焦他人的视频", + "fullScreen": "查看或退出全屏", + "giphyMenu": "切换GIPHY菜单", + "keyboardShortcuts": "快捷键", + "localRecording": "显示或隐藏本地录制控制", + "mute": "静音或解除静音", + "pushToTalk": "按住说话", + "raiseHand": "举手或放下", + "showSpeakerStats": "查看扬声器状态", + "toggleChat": "打开或关闭聊天", + "toggleFilmstrip": "显示或隐藏视频缩略图", + "toggleParticipantsPane": "显示或隐藏参会者面板", + "toggleScreensharing": "在摄像头和共享屏幕之间切换", + "toggleShortcuts": "显示或隐藏快捷键", + "videoMute": "开启或关闭你的摄像头" + }, + "largeVideo": { + "screenIsShared": "你正在共享你的屏幕", + "showMeWhatImSharing": "让我看看我正在共享什么" + }, + "liveStreaming": { + "busy": "我们正在释放直播资源,请几分钟后再试。", + "busyTitle": "所有的直播设备正忙", + "changeSignIn": "切换帐号", + "choose": "选择直播", + "chooseCTA": "请选择直播选项,你目前是以{{email}}的身份登录。", + "enterStreamKey": "在此输入你的YouTube直播码。", + "error": "直播失败,请重试。", + "errorAPI": "在访问你的YouTube直播时发生错误,请重新登录。", + "errorLiveStreamNotEnabled": " {{email}}上的直播未开启,请开启直播或登录开启直播的帐号。", + "expandedOff": "直播已被关闭", + "expandedOn": "会议当前正在YouTube上直播。", + "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": "注销", + "signedInAs": "你当前登录为:", + "start": "开始直播", + "streamIdHelp": "这是什么?", + "title": "直播", + "unavailableTitle": "直播不可用", + "youtubeTerms": "YouTube服务条款" + }, + "lobby": { + "backToKnockModeButton": "请求加入", + "chat": "聊天", + "dialogTitle": "等候室模式", + "disableDialogContent": "等候室模式已开启,此功能确保未经授权的人士不能加入你的会议,确定要关闭吗?", + "disableDialogSubmit": "关闭", + "emailField": "请输入你的邮箱", + "enableDialogPasswordField": "设置密码(可选)", + "enableDialogSubmit": "开启", + "enableDialogText": "在等候室模式下,参会者只有被主持人同意后才能加入,进而保护你的会议。", + "enterPasswordButton": "输入会议密码", + "enterPasswordTitle": "输入密码加入会议", + "errorMissingPassword": "加入请求被拒绝。", + "invalidPassword": "密码无效", + "joinRejectedMessage": "你的加入请求已被主持人拒绝。", + "joinRejectedTitle": "加入请求被拒绝。", + "joinTitle": "加入会议", + "joinWithPasswordMessage": "正在尝试用密码加入,请稍候……", + "joiningMessage": "主持人接受你的请求后,即可加入会议", + "joiningTitle": "正在请求加入会议……", + "joiningWithPasswordTitle": "正在使用密码加入……", + "knockButton": "请求加入", + "knockTitle": "有人想要加入会议", + "knockingParticipantList": "请求加入的参会者名单", + "lobbyChatStartedNotification": "{{moderator}}与{{attendee}}开始在等候室聊天", + "lobbyChatStartedTitle": "{{moderator}}已开始与你进行等候室聊天", + "lobbyClosed": "等候室已关闭", + "nameField": "输入你的姓名", + "notificationLobbyAccessDenied": "{{originParticipantName}}已拒绝{{targetParticipantName}}的加入请求", + "notificationLobbyAccessGranted": "{{originParticipantName}}已通过{{targetParticipantName}}的加入请求", + "notificationLobbyDisabled": "{{originParticipantName}}关闭了等候室模式", + "notificationLobbyEnabled": "{{originParticipantName}}开启了等候室模式", + "notificationTitle": "等候室", + "passwordJoinButton": "加入", + "title": "等候室", + "toggleLabel": "开启等候室模式" + }, + "localRecording": { + "clientState": { + "off": "关", + "on": "开", + "unknown": "未知" + }, + "dialogTitle": "本地录制控制", + "duration": "长度", + "durationNA": "不适用", + "encoding": "编码中", + "label": "LOR", + "labelToolTip": "本地录制已开启", + "localRecording": "本地录制中", + "me": "我", + "messages": { + "engaged": "本地录制已开启。", + "finished": "会话{{token}}已完成录制,请将录制文件发送至主持人。", + "finishedModerator": "会话{{token}}已完成录制,本地录制已保存,请其他参会者提交他们的录制文件。", + "notModerator": "你不是主持人,无法开启或关闭本地录制" + }, + "moderator": "主持人", + "no": "否", + "participant": "参会者", + "participantStats": "参会者状态", + "selectTabTitle": "🎥请选择此标签页进行录制", + "sessionToken": "会话Token", + "start": "开始录制", + "stop": "停止录制", + "stopping": "正在停止录制", + "wait": "我们正在保存你的录制,请稍候", + "yes": "是" + }, + "lockRoomPassword": "密码", + "lockRoomPasswordUppercase": "密码", + "lonelyMeetingExperience": { + "button": "邀请其他人", + "youAreAlone": "你是会议中唯一一个人" + }, + "me": "我", + "notify": { + "OldElectronAPPTitle": "安全漏洞!", + "allowAudio": "允许开启麦克风", + "allowBoth": "允许音视频", + "allowVideo": "允许开启摄像头", + "allowedUnmute": "你可以解除麦克风静音、启动摄像头或共享屏幕。", + "audioUnmuteBlockedDescription": "由于系统限制,麦克风解除静音操作被暂时阻止。", + "audioUnmuteBlockedTitle": "麦克风解除静音被阻止!", + "chatMessages": "聊天信息", + "connectedOneMember": "{{name}}加入了会议", + "connectedThreePlusMembers": "{{name}}和其他人加入了会议", + "connectedTwoMembers": "{{first}}和{{second}}加入了会议", + "connectionFailed": "连接失败,请稍后再试", + "dataChannelClosed": "视频质量可能受影响", + "dataChannelClosedDescription": "桥接通道已断开,视频质量可能会被限制为最低设置", + "dataChannelClosedDescriptionWithAudio": "桥接通道已断开,音视频可能会出现卡顿或中断", + "dataChannelClosedWithAudio": "音视频质量可能受影响", + "disabledIframe": "嵌入仅用于演示,本次通话将在{{timeout}}分钟后自动断开", + "disabledIframeSecondaryNative": "嵌入{{domain}}仅用于演示,本次通话将在{{timeout}}分钟后自动断开", + "disabledIframeSecondaryWeb": "嵌入{{domain}}仅用于演示,本次通话将在{{timeout}}分钟后自动断开。如需在正式环境嵌入,请使用Jitsi服务!", + "disconnected": "已断开连接", + "displayNotifications": "显示通知", + "dontRemindMe": "不要提醒我", + "focus": "会议聚焦", + "focusFail": "{{component}}不可用 - {{ms}}秒后重试", + "gifsMenu": "GIPHY", + "groupTitle": "通知", + "hostAskedUnmute": "主持人请你发言", + "invalidTenant": "无效的组织空间", + "invalidTenantHyphenDescription": "你所使用的组织空间名无效(不能以‘-’开头或结尾)", + "invalidTenantLengthDescription": "你所使用的组织空间名过长", + "invitedOneMember": "已邀请{{name}}", + "invitedThreePlusMembers": "已邀请{{name}}以及另外{{count}}人", + "invitedTwoMembers": "已邀请{{first}}和{{second}}", + "joinMeeting": "加入", + "kickParticipant": "{{kicker}}已将{{kicked}}移除", + "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}} 已将你静音", + "mutedTitle": "你已静音!", + "newDeviceAction": "使用", + "newDeviceAudioTitle": "检测到新的音频设备", + "newDeviceCameraTitle": "检测到新的摄像头", + "nextToSpeak": "下一个轮到你发言", + "noiseSuppressionDesktopAudioDescription": "在共享桌面音频时无法开启降噪功能,请禁用并重试。", + "noiseSuppressionFailedTitle": "无法启动降噪功能", + "noiseSuppressionStereoDescription": "暂不支持立体声音频降噪。", + "oldElectronClientDescription1": "你似乎正在使用存在已知安全漏洞的旧版Jitsi Meet客户端,请确保您更新到我们的", + "oldElectronClientDescription2": "最新版本", + "oldElectronClientDescription3": "!", + "participantWantsToJoin": "想要加入会议", + "participantsWantToJoin": "想要加入会议", + "passwordRemovedRemotely": "其他参会者移除了$t(lockRoomPasswordUppercase)", + "passwordSetRemotely": "其他参会者设置了$t(lockRoomPasswordUppercase)", + "raiseHandAction": "举手", + "raisedHand": "想要发言。", + "raisedHands": "{{participantName}}和另外{{raisedHands}}人", + "reactionSounds": "禁用音效", + "reactionSoundsForAll": "禁用所有人的音效", + "screenShareNoAudio": "在窗口选择屏幕时未选中共享音频框。", + "screenShareNoAudioTitle": "无法共享计算机音频!", + "screenSharingAudioOnlyDescription": "请注意,通过共享屏幕会影响“最佳性能”模式,并且将使用占用更多网络。", + "screenSharingAudioOnlyTitle": "“最佳性能”模式", + "selfViewTitle": "你随时可以在设置中取消隐藏本人视图", + "somebody": "某人", + "startSilentDescription": "重新加入会议以开启音频", + "startSilentTitle": "你加入时没有开启音频!", + "suboptimalBrowserWarning": "我们担心你本次会议体验欠佳,我们正在寻找改进的方法。与此同时,请尝试使用完全支持的浏览器。", + "suboptimalExperienceTitle": "浏览器提示", + "suggestRecordingAction": "开始录制", + "suggestRecordingDescription": "是否需要录制本次会议?", + "suggestRecordingTitle": "录制会议", + "unmute": "解除静音", + "unmuteVideo": "开启摄像头", + "videoMutedRemotelyDescription": "你可随时重新开启视频", + "videoMutedRemotelyTitle": "{{participantDisplayName}}已关闭你的视频", + "videoUnmuteBlockedDescription": "由于系统限制,暂时无法开启摄像头或共享桌面", + "videoUnmuteBlockedTitle": "摄像头和桌面共享被禁用!", + "viewLobby": "查看等候室", + "viewParticipants": "查看参会者", + "viewVisitors": "查看观众", + "waitingParticipants": "{{waitingParticipants}}人", + "waitingVisitors": "排队等候的观众:{{waitingVisitors}}人", + "waitingVisitorsTitle": "会议尚未开始!", + "whiteboardLimitDescription": "因用户数量已接近上限,白板即将关闭,请及时保存内容。", + "whiteboardLimitTitle": "白板使用限制" + }, + "participantsPane": { + "actions": { + "admit": "同意加入", + "admitAll": "全部同意加入", + "allow": "允许参会者:", + "allowVideo": "允许开启摄像头", + "askUnmute": "请求取消静音", + "audioModeration": "自行解除静音", + "blockEveryoneMicCamera": "禁用所有人的麦克风和摄像头", + "breakoutRooms": "分组讨论室", + "goLive": "开始直播", + "invite": "邀请其他人", + "lowerAllHands": "取消全部举手", + "lowerHand": "取消举手", + "moreModerationActions": "更多主持人选项", + "moreModerationControls": "更多主持人控制", + "moreParticipantOptions": "更多参会者选项", + "mute": "静音", + "muteAll": "全体静音", + "muteEveryoneElse": "静音其他人", + "reject": "拒绝", + "stopEveryonesVideo": "关闭所有人摄像头", + "stopVideo": "关闭摄像头", + "unblockEveryoneMicCamera": "允许所有人开启麦克风和摄像头", + "videoModeration": "允许开启视频" + }, + "close": "关闭", + "headings": { + "lobby": "等候室(({{count}}人)", + "participantsList": "会议参会者({{count}}人)", + "visitorInQueue": "(排队中:{{count}}人)", + "visitorRequests": "(请求加入:{{count}}人)", + "visitors": "观众(({{count}}人)", + "waitingLobby": "在等候室等待({{count}}人)" + }, + "search": "搜索参会者", + "searchDescription": "输入关键词快速筛选参会者", + "title": "参会者" + }, + "passwordDigitsOnly": "最多{{number}}位数字", + "passwordSetRemotely": "由其他参会者设置", + "pinParticipant": "{{participantName}} - 固定", + "pinnedParticipant": "参会者已固定", + "polls": { + "answer": { + "edit": "编辑", + "send": "发送", + "skip": "跳过", + "submit": "提交" + }, + "by": "由{{ name }}发起", + "closeButton": "结束投票", + "create": { + "addOption": "添加选项", + "answerPlaceholder": "选项{{index}}", + "cancel": "取消", + "create": "新建投票", + "pollOption": "投票选项{{index}}", + "pollQuestion": "投票内容", + "questionPlaceholder": "请输入你的问题", + "removeOption": "删除选项", + "save": "保存", + "send": "发布" + }, + "errors": { + "notUniqueOption": "选项必须是唯一的" + }, + "notification": { + "description": "打开投票页面进行投票", + "title": "本次会议有一项新的投票" + }, + "results": { + "changeVote": "修改投票", + "empty": "会议中还没有任何投票,现在建立投票吧!", + "hideDetailedResults": "隐藏详情", + "showDetailedResults": "显示详情", + "vote": "投票" + } + }, + "poweredby": "技术支持由", + "prejoin": { + "audioAndVideoError": "音频和视频错误:", + "audioDeviceProblem": "你的音频设备存在问题", + "audioOnlyError": "音频错误:", + "audioTrackError": "无无法创建音频轨道", + "callMe": "呼叫我", + "callMeAtNumber": "请拨打我的号码:", + "calling": "正在呼叫", + "configuringDevices": "正在配置设备……", + "connectedWithAudioQ": "你已连接音频?", + "connection": { + "failed": "连接测试失败!", + "good": "你的网络连接看起来很好!", + "nonOptimal": "你的网络连接不太理想", + "poor": "你的网络连接较差", + "running": "正在测试连接……" + }, + "connectionDetails": { + "audioClipping": "预计你的音频可能会断断续续", + "audioHighQuality": "你的音频质量预计会很清晰", + "audioLowNoVideo": "预计你的音频质量较差且无法显示视频画面", + "goodQuality": "网络和设备状态都很好,体验会很流畅", + "noMediaConnectivity": "无法建立音视频连接,通常是防火墙或NAT设置导致", + "noVideo": "预计你的视频画面可能会很糟糕", + "testFailed": "连接测试遇到异常,但不一定会影响实际体验", + "undetectable": "如果你仍无法正常通话,请检查扬声器、麦克风、摄像头设置,并确保浏览器有相关权限且为最新版本。如仍有问题,建议联系技术支持。", + "veryPoorConnection": "你的通话质量可能会非常差", + "videoFreezing": "预计你的视频会出现卡顿、黑屏或马赛克", + "videoHighQuality": "你的视频质量预计会很清晰", + "videoLowQuality": "预计你的视频帧率和分辨率会很低或画面不流畅", + "videoTearing": "预计你的视频画面会有马赛克或其它异常现象" + }, + "copyAndShare": "复制并分享会议链接", + "dialInMeeting": "拨电话接入会议", + "dialInPin": "电话接入会议并输入PIN码:", + "dialing": "正在拨号", + "doNotShow": "不再显示此页面", + "errorDialOut": "无法拨出", + "errorDialOutDisconnected": "无法拨出,已断开连接", + "errorDialOutFailed": "无法拨出,通话失败", + "errorDialOutStatus": "获取拨出状态出错", + "errorMissingName": "请输入姓名后再加入会议", + "errorNoPermissions": "请开启麦克风和摄像头权限", + "errorStatusCode": "拨号失败,状态码:{{status}}", + "errorValidation": "号码校验失败", + "iWantToDialIn": "我想通过电话加入", + "initiated": "呼叫已发起", + "joinAudioByPhone": "使用电话音频加入", + "joinMeeting": "加入会议", + "joinMeetingInLowBandwidthMode": "以省流模式加入", + "joinWithoutAudio": "无音频加入", + "keyboardShortcuts": "开启快捷键", + "linkCopied": "链接已复制到剪贴板", + "lookGood": "设备一切正常", + "or": "或", + "premeeting": "会前设置", + "proceedAnyway": "仍然继续", + "recordingWarning": "其他参会者可能正在录制本次会议", + "screenSharingError": "屏幕共享出错:", + "startWithPhone": "用电话音频开始", + "unsafeRoomConsent": "我了解风险,仍然加入会议", + "videoOnlyError": "视频出错:", + "videoTrackError": "无法创建视频轨道", + "viewAllNumbers": "查看所有号码" + }, + "presenceStatus": { + "busy": "忙碌", + "calling": "正在呼叫……", + "connected": "已连接", + "connecting": "正在连接……", + "connecting2": "正在连接*……", + "disconnected": "已断开连接", + "expired": "已过期", + "ignored": "已忽略", + "initializingCall": "正在初始化通话……", + "invited": "已邀请", + "rejected": "已拒绝", + "ringing": "正在响铃……" + }, + "profile": { + "avatar": "头像", + "setDisplayNameLabel": "姓名", + "setEmailInput": "输入电子邮件", + "setEmailLabel": "Gravatar 电子邮件", + "title": "个人资料" + }, + "raisedHand": "想要发言", + "raisedHandsLabel": "举手人数", + "record": { + "already": { + "linked": "会议已经链接到此 Salesforce 对象。" + }, + "type": { + "account": "账号", + "contact": "联系人", + "lead": "潜在客户", + "opportunity": "机会", + "owner": "所有者" + } + }, + "recording": { + "authDropboxText": "上传至Dropbox", + "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": "我们已生成录制链接。", + "localRecordingNoNotificationWarning": "系统不会主动通知参会者录制已开启,主持人需另行提醒。", + "localRecordingNoVideo": "视频未被录制", + "localRecordingStartWarning": "请确保在退出会议之前停止录制,以便保存录制内容。", + "localRecordingStartWarningTitle": "停止录制以保存内容", + "localRecordingVideoStop": "停止视频也会停止本地录制,你确定要继续吗?", + "localRecordingVideoWarning": "要录制视频,你必须在开始录制时保持视频开启", + "localRecordingWarning": "请确保你选择当前的标签页,以便录制正确的视频和音频。", + "loggedIn": "以{{userName}}登录", + "noMicPermission": "无法创建麦克风轨道,请允许使用麦克风。", + "noStreams": "未检测到音频或视频。", + "off": "录制已停止", + "offBy": "{{name}}停止了录制", + "on": "录制已开始", + "onBy": "{{name}}开启了录制", + "onlyRecordSelf": "仅录制我的音频和视频", + "pending": "正在准备录制会议……", + "policyError": "", + "recordAudioAndVideo": "", + "recordTranscription": "", + "saveLocalRecording": "本地保存录制文件(测试版)", + "serviceDescription": "录制将由录制服务保存", + "serviceDescriptionCloud": "云录制", + "serviceDescriptionCloudInfo": "录制的会议将在录制后的24小时内自动清除。", + "serviceName": "录制服务", + "sessionAlreadyActive": "此会议已经在录制或直播中", + "showAdvancedOptions": "高级选项", + "signIn": "登录", + "signOut": "注销", + "surfaceError": "请选择当前选项卡。", + "title": "录制中", + "unavailable": "糟糕!{{serviceName}}目前无法使用,我们正在努力解决这个问题,请稍后再试。", + "unavailableTitle": "录制不可用", + "uploadToCloud": "上传至云端" + }, + "screenshareDisplayName": "{{name}}的屏幕", + "sectionList": { + "pullToRefresh": "下拉刷新" + }, + "security": { + "about": "你可以为会议添加一个$t(lockRoomPassword),参会者需要输入$t(lockRoomPassword)才能加入会议。", + "aboutReadOnly": "主持人可以为会议添加一个$t(lockRoomPassword)),参会者需要输入$t(lockRoomPassword)才能加入会议。", + "insecureRoomNameWarningNative": "房间名称不安全,不受欢迎的参与者可能会加入你的会议,{{recommendAction}} 了解更多有关保护你的会议的信息", + "insecureRoomNameWarningWeb": "房间名称不安全,不受欢迎的参与者可能会加入你的会议,{{recommendAction}} 了解更多有关保护你的会议的信息这里。", + "title": "安全选项", + "unsafeRoomActions": { + "meeting": "考虑使用安全按钮保护你的会议。", + "prejoin": "考虑使用更独特的会议名称。", + "welcome": "考虑使用更独特的会议名称,或者选择一个建议的名称。" + } + }, + "settings": { + "audio": "音频", + "buttonLabel": "设置", + "calendar": { + "about": "{{appName}}日历集成可安全访问你的日历,读取即将开始的会议。", + "disconnect": "断开连接", + "microsoftSignIn": "使用 Microsoft 登录", + "signedIn": "正在读取{{email}}的日历事件,点击下方“断开连接”可停止同步日历。", + "title": "日历" + }, + "chatWithPermissions": "聊天需要相关权限", + "desktopShareFramerate": "共享屏幕帧率", + "desktopShareHighFpsWarning": "高帧率的共享屏幕的可能会影响你的网速,你需要重新启动共享屏幕以使新设置生效。", + "desktopShareWarning": "你需要重新启动共享屏幕以使新设置生效。", + "devices": "设备", + "followMe": "全员视角跟随我", + "followMeRecorder": "录制画面跟随我", + "framesPerSecond": "帧率(FPS)", + "incomingMessage": "新消息提醒", + "language": "语言", + "loggedIn": "已登录:{{name}}", + "maxStageParticipants": "可以固定的最大参会者人数", + "microphones": "麦克风", + "moderator": "主持人", + "moderatorOptions": "主持人选项", + "more": "通用", + "name": "名称", + "noDevice": "无", + "notifications": "通知", + "participantJoined": "参会者已加入", + "participantKnocking": "参会者已进入等候室", + "participantLeft": "参会者已离开", + "playSounds": "播放提示音", + "reactions": "会议互动表情", + "sameAsSystem": "与系统一致({{label}})", + "selectAudioOutput": "音频输出设备", + "selectCamera": "摄像头", + "selectMic": "麦克风", + "selfView": "本人视图", + "shortcuts": "快捷键", + "showSubtitlesOnStage": "主画面显示字幕", + "speakers": "扬声器", + "startAudioMuted": "所有人加入时静音", + "startReactionsMuted": "关闭所有人互动音效", + "startVideoMuted": "所有人加入时隐藏视频", + "talkWhileMuted": "静音时说话提醒", + "title": "设置", + "video": "视频" + }, + "settingsView": { + "advanced": "高级设置", + "alertCancel": "取消", + "alertOk": "确认", + "alertTitle": "警告", + "alertURLText": "输入的服务器地址无效", + "apply": "应用", + "buildInfoSection": "构建信息", + "conferenceSection": "会议设置", + "disableCallIntegration": "禁用系统通话集成", + "disableCrashReporting": "关闭崩溃报告", + "disableCrashReportingWarning": "确定要关闭崩溃报告吗?重启应用后设置才会生效", + "disableP2P": "关闭点对点模式", + "displayName": "显示名称", + "displayNamePlaceholderText": "例如:张三", + "email": "邮箱", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "如果你的邮箱已绑定Gravatar头像,我们将自动为你显示头像", + "goTo": "前往", + "header": "设置", + "help": "帮助", + "links": "相关链接", + "privacy": "隐私", + "profileSection": "个人信息", + "sdkVersion": "SDK版本", + "serverURL": "服务器地址", + "showAdvanced": "显示高级设置", + "startCarModeInLowBandwidthMode": "省流模式下开启驾驶模式", + "startWithAudioMuted": "进入会议时音频静音", + "startWithVideoMuted": "进入会议时关闭视频", + "terms": "条款", + "version": "APP版本" + }, + "share": { + "dialInfoText": "\n\n=====\n\n只想通过手机拨号?\n\n{{defaultDialInNumber}}点击此链接查看本次会议电话拨入号码\n{{dialInfoPageUrl}}", + "mainText": "点击以下链接加入会议:\n{{roomUrl}}" + }, + "speaker": "扬声器", + "speakerStats": { + "angry": "生气", + "disgusted": "嫌弃", + "displayEmotions": "显示表情", + "fearful": "害怕", + "happy": "开心", + "hours": "{{count}}时", + "labelTooltip": "参会者人数:{{count}}", + "minutes": "{{count}}分", + "name": "名字", + "neutral": "中性", + "sad": "难过", + "search": "搜索", + "searchDescription": "输入关键词筛选参会者", + "searchHint": "搜索参会者", + "seconds": "{{count}}秒", + "speakerStats": "参会者统计", + "speakerTime": "发言时长", + "surprised": "惊讶" + }, + "startupoverlay": { + "genericTitle": "参加会议需要使用你的麦克风和摄像头。", + "policyText": " ", + "title": "{{app}}需要使用你的麦克风和摄像头。" + }, + "suspendedoverlay": { + "rejoinKeyTitle": "重新加入", + "text": "按下 重新加入 按钮重新连接。", + "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": "下载我们的APP", + "embedMeeting": "嵌入会议", + "endConference": "结束全体会议", + "enterFullScreen": "进入全屏模式", + "enterTileView": "进入画廊视图", + "exitFullScreen": "退出全屏模式", + "exitTileView": "退出画廊视图", + "expand": "展开", + "feedback": "提供反馈", + "fullScreen": "切换全屏模式", + "giphy": "切换表情动图菜单", + "grantModerator": "授予主持人权限", + "hangup": "离开会议", + "heading": "工具栏", + "help": "帮助", + "hideWhiteboard": "隐藏白板", + "invite": "邀请其他人", + "kick": "移除参会者", + "laugh": "大笑", + "leaveConference": "离开会议", + "like": "点赞", + "linkToSalesforce": "关联到Salesforce", + "lobbyButton": "开启/关闭等候室", + "localRecording": "切换本地录制", + "lockRoom": "设置/取消会议密码", + "love": "爱心", + "lowerHand": "取消举手", + "moreActions": "更多操作", + "moreActionsMenu": "更多操作菜单", + "moreOptions": "显示更多选项", + "mute": "麦克风静音", + "muteEveryone": "将所有人静音", + "muteEveryoneElse": "除自己外全部静音", + "muteEveryoneElsesVideoStream": "停止其他人摄像头", + "muteEveryonesVideoStream": "关闭所有人摄像头", + "muteGUMPending": "正在连接麦克风", + "noiseSuppression": "开启降噪(测试版)", + "openChat": "打开聊天窗口", + "participants": "打开参会者面板,参会者(共{{participantsCount}}人)", + "pip": "切换画中画模式", + "privateMessage": "发送私聊", + "profile": "编辑个人信息", + "raiseHand": "举手", + "react": "消息表情", + "reactions": "互动表情", + "reactionsMenu": "互动表情菜单", + "recording": "切换录制", + "remoteMute": "静音参会者", + "remoteVideoMute": "禁用参会者摄像头", + "security": "安全选项", + "selectBackground": "选择背景", + "selfView": "切换本人视图", + "shareRoom": "邀请其他人", + "shareYourScreen": "开始共享屏幕", + "shareaudio": "分享音频", + "sharedvideo": "共享视频", + "shortcuts": "切换快捷键", + "show": "在主屏展示", + "showWhiteboard": "显示白板", + "silence": "沉默", + "speakerStats": "切换参会者统计", + "stopScreenSharing": "停止屏幕共享", + "stopSharedVideo": "停止视频共享", + "surprised": "惊讶", + "tileView": "切换画廊视图", + "toggleCamera": "切换摄像头", + "toggleFilmstrip": "切换缩略图栏", + "unmute": "取消麦克风静音", + "videoblur": "切换虚化背景", + "videomute": "关闭摄像头", + "videomuteGUMPending": "正在连接摄像头", + "videounmute": "打开摄像头" + }, + "addPeople": "添加成员到通话中", + "audioOnlyOff": "关闭省流模式", + "audioOnlyOn": "开启省流模式", + "audioRoute": "选择音频设备", + "audioSettings": "音频设置", + "authenticate": "身份验证", + "boo": "嘘声", + "callQuality": "调整视频质量", + "chat": "打开/关闭聊天", + "clap": "鼓掌", + "closeChat": "关闭聊天", + "closeParticipantsPane": "关闭参会者列表", + "closeReactionsMenu": "关闭互动表情菜单", + "closedCaptions": "关闭字幕", + "disableNoiseSuppression": "关闭降噪功能(测试版)", + "disableReactionSounds": "你可以禁用此会议的互动音效", + "documentClose": "关闭文件共享", + "documentOpen": "开启文件共享", + "download": "下载我们的APP", + "e2ee": "端到端加密", + "embedMeeting": "嵌入会议", + "enableNoiseSuppression": "开启降噪功能(测试版)", + "endConference": "结束全体会议", + "enterFullScreen": "进入全屏模式", + "enterTileView": "进入画廊视图", + "exitFullScreen": "退出全屏模式", + "exitTileView": "退出画廊视图", + "feedback": "意见反馈", + "giphy": "表情动画菜单", + "hangup": "离开会议", + "help": "帮助", + "hideWhiteboard": "隐藏白板", + "invite": "邀请其他人", + "joinBreakoutRoom": "加入分组讨论室", + "laugh": "大笑", + "leaveBreakoutRoom": "离开分组讨论室", + "leaveConference": "离开会议", + "like": "点赞", + "linkToSalesforce": "链接到 Salesforce", + "lobbyButtonDisable": "关闭等候室模式", + "lobbyButtonEnable": "开启等候室模式", + "login": "登录", + "logout": "注销", + "love": "爱心", + "lowerYourHand": "取消举手", + "moreActions": "更多操作", + "moreOptions": "显示更多选项", + "mute": "静音", + "muteEveryone": "全部静音", + "muteEveryonesVideo": "禁用所有人的摄像头", + "muteGUMPending": "连接你的麦克风", + "noAudioSignalDesc": "如果你没有从系统设置或硬件上静音,请考虑切换设备。", + "noAudioSignalDescSuggestion": "如果你没有从系统设置或硬件上静音,考虑切换到建议的设备。", + "noAudioSignalDialInDesc": "你还可以拨打以下号码加入会议:", + "noAudioSignalDialInLinkDesc": "拨打电话号码", + "noAudioSignalTitle": "你的麦克风没有声音!", + "noiseSuppression": "降噪(测试版)", + "noisyAudioInputDesc": "检测到你的麦克风有杂音,请考虑静音或更换设备。", + "noisyAudioInputTitle": "你的麦克风似乎很嘈杂!", + "openChat": "打开聊天", + "openReactionsMenu": "打开互动表情菜单", + "participants": "参会者", + "pip": "进入画中画模式", + "privateMessage": "发送私聊", + "profile": "编辑你的个人资料", + "raiseHand": "举手", + "raiseYourHand": "举手", + "reactionBoo": "发送嘘声", + "reactionClap": "发送鼓掌", + "reactionHeart": "发送爱心", + "reactionLaugh": "发送大笑", + "reactionLike": "发送点赞", + "reactionSilence": "发送沉默", + "reactionSurprised": "发送惊讶", + "reactions": "互动表情", + "security": "安全选项", + "selectBackground": "选择背景", + "shareRoom": "邀请他人", + "shareaudio": "共享音频", + "sharedvideo": "共享视频", + "shortcuts": "查看快捷键", + "showWhiteboard": "显示白板", + "silence": "沉默", + "speakerStats": "参会者统计", + "startScreenSharing": "开启共享屏幕", + "startSubtitles": "{{language}} • 字幕", + "stopAudioSharing": "停止共享音频", + "stopScreenSharing": "停止共享屏幕", + "stopSharedVideo": "停止视频", + "stopSubtitles": "停止字幕", + "surprised": "惊讶", + "talkWhileMutedPopup": "想要发言吗?你被静音了。", + "tileViewToggle": "切换画面模式", + "toggleCamera": "切换摄像头", + "unmute": "取消静音", + "videoSettings": "视频设置", + "videomute": "关闭摄像头", + "videomuteGUMPending": "连接你的摄像头", + "videounmute": "启动摄像头" + }, + "transcribing": { + "ccButtonTooltip": "开启/关闭字幕", + "expandedLabel": "转录已开启", + "failed": "转录失败", + "labelTooltip": "本次会议正在进行转录", + "labelTooltipExtra": "会后将提供转录文本", + "openClosedCaptions": "打开字幕", + "original": "原文", + "sourceLanguageDesc": "当前会议语言设置为{{sourceLanguage}}
你可以在这里", + "sourceLanguageHere": "更改", + "start": "开启显示字幕", + "stop": "停止显示字幕", + "subtitles": "字幕", + "subtitlesOff": "关闭", + "tr": "转录", + "translateTo": "翻译为" + }, + "unpinParticipant": "{{participantName}} - 取消固定", + "userMedia": { + "grantPermissions": "请授予使用你的摄像头和麦克风的权限." + }, + "videoSIPGW": { + "busy": "我们正在释放资源,请稍后再试。", + "busyTitle": "会议室服务目前忙碌中", + "errorAlreadyInvited": "已邀请{{displayName}}", + "errorInvite": "会议尚未建立,请稍后再试。", + "errorInviteFailed": "我们正在解决问题,请稍后再试。", + "errorInviteFailedTitle": "邀请{{displayName}}失败", + "errorInviteTitle": "会议室邀请错误", + "pending": "已向{{displayName}}发送邀请" + }, + "videoStatus": { + "adjustFor": "调整为:", + "audioOnly": "仅语音", + "audioOnlyExpanded": "省流模式已开启,仅接收语音和共享屏幕。", + "bestPerformance": "最佳性能", + "callQuality": "视频质量(0 表示最佳性能,3 表示最高质量)", + "hd": "高清", + "hdTooltip": "观看高清视频", + "highDefinition": "高清晰度", + "highestQuality": "最佳品质", + "labelTooiltipNoVideo": "无视频", + "labelTooltipAudioOnly": "省流模式已开启", + "ld": "低清", + "ldTooltip": "观看低清视频", + "lowDefinition": "低清晰度", + "performanceSettings": "性能设置", + "recording": "正在进行录制", + "sd": "标清", + "sdTooltip": "观看标清视频", + "standardDefinition": "标准清晰度", + "streaming": "正在进行直播" + }, + "videothumbnail": { + "connectionInfo": "连接信息", + "demote": "设为观众", + "domute": "静音", + "domuteOthers": "静音其他人", + "domuteVideo": "关闭摄像头", + "domuteVideoOfOthers": "关闭其他人摄像头", + "flip": "翻转画面", + "grantModerator": "授予主持人权限", + "hideSelfView": "隐藏本人视图", + "kick": "移出会议", + "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": "无法建立共享屏幕", + "image1": "海滩", + "image2": "白墙", + "image3": "空房", + "image4": "落地灯", + "image5": "山地", + "image6": "森林", + "image7": "日出", + "none": "无", + "pleaseWait": "请稍等……", + "removeBackground": "移除背景", + "slightBlur": "轻度虚化", + "title": "虚拟背景", + "uploadedImage": "已上传图像 {{index}}", + "webAssemblyWarning": "不支持WebAssembly", + "webAssemblyWarningDescription": "此浏览器禁用或不支持WebAssembly" + }, + "visitors": { + "chatIndicator": "(观众)", + "joinMeeting": { + "description": "你目前是本次会议的观众", + "raiseHand": "举手申请发言", + "title": "正在加入会议", + "wishToSpeak": "如需发言,请点击下方举手,等待主持人同意" + }, + "labelTooltip": "观众人数:{{count}}", + "notification": { + "demoteDescription": "你已被{{actor}}切换为观众身份,如需参与发言请举手申请", + "noMainParticipantsDescription": "暂无参会者开启会议,请稍后再试", + "noMainParticipantsTitle": "会议尚未开始", + "noVisitorLobby": "当前会议已开启等候室,暂无法加入", + "notAllowedPromotion": "需由会议成员同意才能参与讨论", + "title": "你当前为会议观众" + }, + "waitingMessage": "会议开始后将自动加入" + }, + "volumeSlider": "音量滑块", + "welcomepage": { + "accessibilityLabel": { + "join": "点击加入", + "roomname": "请输入会议室名称" + }, + "addMeetingName": "添加会议室名称", + "appDescription": "快来邀请更多的人加入,与他们一起进行视频通话。{{app}}是一个完全加密以及100%开源的视频会议解决方案,无需注册即可免费使用。", + "audioVideoSwitch": { + "audio": "语音", + "video": "视频" + }, + "calendar": "日历", + "connectCalendarButton": "连接你的日历", + "connectCalendarText": "连接你的日历就可以在{{app}}中查看所有会议。此外,将{{provider}}的会议添加到你的日历中即可一键进入。", + "enterRoomTitle": "开始新的会议", + "getHelp": "获得帮助", + "go": "开始", + "goSmall": "开始", + "headerSubtitle": "安全且高品质的会议", + "headerTitle": "Jitsi Meet", + "info": "拨入信息", + "jitsiOnMobile": "手机版Jitsi – 下载我们的APP,随时随地开始会议", + "join": "创建/加入", + "logo": { + "calendar": "日历图标", + "desktopPreviewThumbnail": "桌面预览缩略图", + "googleLogo": "谷歌图标", + "logoDeepLinking": "Jitsi Meet图标", + "microsoftLogo": "微软图标", + "policyLogo": "政策图标" + }, + "meetingsAccessibilityLabel": "会议", + "mobileDownLoadLinkAndroid": "从Google Play下载安卓版手机APP", + "mobileDownLoadLinkFDroid": "从F-Droid下载安卓版手机APP", + "mobileDownLoadLinkIos": "下载iOS版手机APP", + "moderatedMessage": "或者以主持人身份提前预定会议。", + "privacy": "隐私", + "recentList": "近期会议", + "recentListDelete": "删除", + "recentListEmpty": "你的近期会议为空,与你的团队参会者聊天后,历史会议记录会出现在这里。", + "recentMeetings": "你的近期会议", + "reducedUIText": "欢迎使用{{app}}!", + "roomNameAllowedChars": "会议室名称不应包含以下字符:? & : ' \" % #", + "roomname": "请输入会议室名称", + "roomnameHint": "输入你想加入的会议室的名称或网址,你也可以使用不同的名称创建会议室,其他人只需输入相同的名称即可加入。", + "sendFeedback": "发送反馈", + "settings": "设置", + "startMeeting": "开始会议", + "terms": "条款", + "title": "安全、功能完善、完全免费的视频会议", + "upcomingMeetings": "您的即将举行的会议" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "白板" + }, + "screenTitle": "白板" + } +} diff --git a/lang/main-zhTW.json b/lang/main-zhTW.json new file mode 100644 index 0000000..3730d46 --- /dev/null +++ b/lang/main-zhTW.json @@ -0,0 +1,1631 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "會議連結:{{url}}" + }, + "add": "邀請", + "addContacts": "邀請您的聯絡人", + "contacts": "聯絡人", + "copyInvite": "複製會議邀請", + "copyLink": "複製會議連結", + "copyStream": "複製直播連結", + "countryNotSupported": "我們尚未支援此地區。", + "countryReminder": "在美國以外的地區撥打?請在開頭加入國際電話區號!", + "defaultEmail": "您的預設電子郵件", + "disabled": "您無法邀請其他人。", + "failedToAdd": "加入與會者失敗", + "googleEmail": "Google Email", + "inviteMoreHeader": "目前只有您一個人在會議中", + "inviteMoreMailSubject": "加入 {{appName}} 會議", + "inviteMorePrompt": "邀請更多人", + "linkCopied": "已將連結複製至剪貼簿", + "noResults": "沒有符合的搜尋結果", + "outlookEmail": "Outlook Email", + "phoneNumbers": "電話號碼", + "searching": "搜尋中…", + "shareInvite": "分享會議邀請", + "shareLink": "分享會議連結以邀請他人", + "shareStream": "複製分享連結", + "sipAddresses": "SIP 位址", + "telephone": "電話號碼:{{number}}", + "title": "邀請他人至會議", + "yahooEmail": "Yahoo Email" + }, + "audioDevices": { + "bluetooth": "藍牙", + "car": "汽車音響", + "headphones": "耳機", + "none": "沒有可用的音效裝置", + "phone": "電話", + "speaker": "擴音" + }, + "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 連結嗎?", + "error": { + "appConfiguration": "行事曆整合尚未正確設定。", + "generic": "發生錯誤,請檢查行事曆設定,或是重新整理行事曆。", + "notSignedIn": "查看行事曆事件進行認證時發生錯誤,請檢查您的行事曆設定,並再次登入。" + }, + "join": "參加", + "joinTooltip": "參加會議", + "nextMeeting": "下一個會議", + "noEvents": "已經沒有排程的事件。", + "ongoingMeeting": "正在進行的會議", + "permissionButton": "開啟設定", + "permissionMessage": "必須先取得行事曆的存取權限才能查看您應用程式中的會議。", + "refresh": "重新整理行事曆", + "today": "今日" + }, + "carmode": { + "actions": { + "selectSoundDevice": "選擇音訊裝置" + }, + "labels": { + "buttonLabel": "行車模式", + "title": "行車模式", + "videoStopped": "您的視訊已停用" + } + }, + "chat": { + "disabled": "聊天訊息已停用", + "enter": "加入聊天室", + "error": "錯誤:您的訊息未被傳送。原因:{{error}}", + "fieldPlaceHolder": "在此輸入您的訊息", + "lobbyChatMessageTo": "大廳聊天訊息傳送至 {{recipient}}", + "message": "訊息", + "messageAccessibleTitle": "{{user}}:", + "messageAccessibleTitleMe": "我:", + "messageTo": "傳送私人訊息至 {{recipient}}", + "messagebox": "輸入訊息", + "newMessages": "新訊息", + "nickname": { + "popover": "選擇名稱", + "title": "輸入名稱來使用聊天", + "titleWithCC": "輸入名稱以使用聊天與即時字幕", + "titleWithPolls": "輸入名稱來使用聊天與投票", + "titleWithPollsAndCC": "輸入名稱以使用聊天、投票及即時字幕", + "titleWithPollsAndCCAndFileSharing": "輸入名稱以使用聊天、投票、即時字幕及檔案分享" + }, + "noMessagesMessage": "此會議尚無訊息,在此開始對話聊天!", + "privateNotice": "傳送私人訊息至 {{recipient}}", + "sendButton": "傳送", + "smileysPanel": "Emoji 面板", + "systemDisplayName": "系統", + "tabs": { + "chat": "聊天", + "closedCaptions": "即時字幕", + "fileSharing": "檔案", + "polls": "投票" + }, + "title": "聊天", + "titleWithCC": "即時字幕", + "titleWithFeatures": "聊天與", + "titleWithFileSharing": "檔案", + "titleWithPolls": "聊天與投票", + "you": "您" + }, + "chromeExtensionBanner": { + "buttonText": "安裝 Chrome 擴充功能", + "buttonTextEdge": "安裝 Edge 擴充功能", + "close": "關閉", + "dontShowAgain": "不要再問了", + "installExtensionText": "安裝適用於 Google 行事曆及 Office 365 整合的擴充功能" + }, + "closedCaptionsTab": { + "emptyState": "即時字幕內容將在主持人啟用後顯示", + "startClosedCaptionsButton": "啟動即時字幕" + }, + "connectingOverlay": { + "joiningRoom": "正在將您連接至您的會議…" + }, + "connection": { + "ATTACHED": "已經附加", + "AUTHENTICATING": "認證中", + "AUTHFAIL": "認證失敗", + "CONNECTED": "已經連接", + "CONNECTING": "連接中", + "CONNFAIL": "連接失敗", + "DISCONNECTED": "已斷線", + "DISCONNECTING": "中斷連接中", + "ERROR": "錯誤", + "FETCH_SESSION_ID": "正在取得工作階段 ID…", + "GET_SESSION_ID_ERROR": "取得工作階段 ID 時發生錯誤:{{code}}", + "GOT_SESSION_ID": "正在取得工作階段 ID… 完成", + "LOW_BANDWIDTH": "已關閉 {{displayName}} 的視訊以節省頻寬" + }, + "connectionindicator": { + "address": "位址:", + "audio_ssrc": "音訊 SSRC:", + "bandwidth": "預估頻寬:", + "bitrate": "連線速率:", + "bridgeCount": "伺服器數量:", + "codecs": "編解碼器:", + "connectedTo": "已連接至:", + "e2eeVerified": "端對端加密驗證:", + "framerate": "影格率:", + "less": "顯示較少", + "localaddress": "本機位址:", + "localaddress_plural": "本機位址:", + "localport": "本機連接埠:", + "localport_plural": "本機連接埠:", + "maxEnabledResolution": "最大傳輸", + "more": "顯示更多", + "no": "否", + "packetloss": "封包遺失率:", + "participant_id": "與會者 ID:", + "quality": { + "good": "良好", + "inactive": "閒置", + "lost": "遺失", + "nonoptimal": "欠佳", + "poor": "差" + }, + "remoteaddress": "遠端位址:", + "remoteaddress_plural": "遠端位址:", + "remoteport": "遠端連線埠:", + "remoteport_plural": "遠端連線埠:", + "resolution": "解析度:", + "savelogs": "儲存日誌", + "status": "連線狀態:", + "transport": "傳輸協定:", + "transport_plural": "傳輸:", + "video_ssrc": "視訊 SSRC:", + "yes": "是" + }, + "dateUtils": { + "earlier": "稍早", + "today": "今日", + "yesterday": "昨天" + }, + "deepLinking": { + "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}} 開啟您的會議…", + "titleNew": "正在開啟您的會議…", + "tryAgainButton": "在桌面上再試一次", + "unsupportedBrowser": "您似乎正在使用我們不支援的瀏覽器。" + }, + "defaultLink": "例如 {{url}}", + "defaultNickname": "例如:王小明", + "deviceError": { + "cameraError": "無法存取您的網路攝影機", + "cameraPermission": "取得網路攝影機權限時發生錯誤", + "microphoneError": "無法存取您的麥克風", + "microphonePermission": "取得麥克風權限時發生錯誤" + }, + "deviceSelection": { + "hid": { + "callControl": "通話控制", + "connectedDevices": "已連接的裝置:", + "deleteDevice": "刪除裝置", + "pairDevice": "配對裝置" + }, + "noPermission": "未取得權限", + "previewUnavailable": "無法預覽", + "selectADevice": "選擇裝置", + "testAudio": "測試" + }, + "dialIn": { + "screenTitle": "通話記錄" + }, + "dialOut": { + "statusMessage": "現在狀態為 {{status}}" + }, + "dialog": { + "Back": "返回", + "Cancel": "取消", + "IamHost": "我是會議主持人", + "Ok": "確定", + "Remove": "移除", + "Share": "分享", + "Submit": "送出", + "Understand": "我了解,暫時保持靜音", + "UnderstandAndUnmute": "我了解,請為我解除靜音", + "WaitForHostMsg": "此會議尚未開始,如果您是會議主持人,請進行認證並以主持人身分開始會議。", + "WaitForHostNoAuthMsg": "此會議尚未開始,目前沒有主持人加入,請稍候。", + "WaitingForHostButton": "等待主持人", + "WaitingForHostTitle": "正在等候主持人加入…", + "Yes": "是", + "accessibilityLabel": { + "Cancel": "取消(離開對話框)", + "Ok": "確定(保存並離開對話框)", + "close": "關閉對話框", + "liveStreaming": "直播串流", + "sharingTabs": "分享選項" + }, + "add": "新增", + "addMeetingNote": "新增此會議的備註", + "addOptionalNote": "新增備註(選填):", + "allow": "允許", + "allowToggleCameraDialog": "您要允許 {{initiatorName}} 切換您的鏡頭朝向嗎?", + "allowToggleCameraTitle": "要允許切換鏡頭嗎?", + "alreadySharedVideoMsg": "其他與會者正在分享影像,同一時間只有一個與會者可以分享影像螢幕。", + "alreadySharedVideoTitle": "同一時間只允許一位影像分享", + "applicationWindow": "應用程式視窗", + "authenticationRequired": "需要驗證", + "cameraConstraintFailedError": "您的網路攝影機不符合要求。", + "cameraNotFoundError": "找不到網路攝影機。", + "cameraNotSendingData": "我們無法存取您的網路攝影機,請檢查是否有其他應用程式正在使用這個裝置,並從裝置選單裡選擇其他設備或者重新載入。", + "cameraNotSendingDataTitle": "無法存取網路攝影機", + "cameraPermissionDeniedError": "未取得網路攝影機的存取權,您仍可參加會議,但其他人無法看到您。按一下網址列中的「攝影機」圖示 ,然後選取「一律允許」選項。", + "cameraTimeoutError": "無法啟動視訊裝置,連線逾時!", + "cameraUnknownError": "由於不明原因,無法存取網路攝影機。", + "cameraUnsupportedResolutionError": "您的網路攝影機不支援所需的影像解析度。", + "close": "關閉", + "conferenceDisconnectMsg": "請檢查一下網路連線,將在 {{seconds}} 秒後重新連接…", + "conferenceDisconnectTitle": "您已經被中斷連接。", + "conferenceReloadMsg": "我們正試著修復狀況,將在 {{seconds}} 秒後重新連接…", + "conferenceReloadTitle": "喔哦!好像有東西壞掉囉。", + "confirm": "確認", + "confirmBack": "返回", + "confirmNo": "否", + "confirmYes": "是", + "connectError": "喔哦!發生錯誤,無法連接至會議。", + "connectErrorWithMsg": "喔哦!發生錯誤,無法連接至會議:{{msg}}", + "connecting": "連接中", + "contactSupport": "聯絡支援", + "copied": "已複製", + "copy": "複製", + "demoteParticipantDialog": "您確定要將此與會者轉為僅檢視模式嗎?", + "demoteParticipantTitle": "切換為檢視者", + "dismiss": "取消", + "displayNameRequired": "嗨!請問大名?", + "done": "完成", + "e2eeDescription": "請注意,端對端加密目前是實驗性功能,啟用端對端加密將停用部分伺服器端提供的服務,例如:透過電話加入會議。另外,透過網頁版加入會議還需要使用支援 Insertable Streams 的瀏覽器。", + "e2eeDisabledDueToMaxModeDescription": "由於會議中的人數過多,故無法啟用端對端加密。", + "e2eeLabel": "啟用端對端加密", + "e2eeWarning": "警告:看來此會議中不是每位與會者都啟用了端對端加密,如果您啟用了,他們可能無法看或聽到您。", + "e2eeWillDisableDueToMaxModeDescription": "警告:如果有更多與會者加入會議,端對端加密將被自動停用。", + "embedMeeting": "嵌入會議", + "enterDisplayName": "請在此輸入您自己的名字", + "error": "錯誤", + "errorRoomCreationRestriction": "您加入速度過快,請稍後再試。", + "gracefulShutdown": "服務目前正在維護中,請稍後再試。", + "grantModeratorDialog": "您確定要授予 {{participantName}} 主持人權限嗎?", + "grantModeratorTitle": "授予主持人權限", + "hide": "隱藏", + "hideShareAudioHelper": "不再顯示", + "incorrectPassword": "錯誤的用戶名稱或密碼", + "incorrectRoomLockPassword": "密碼不符", + "internalError": "喔哦!出現了點問題,發生錯誤:{{error}}", + "internalErrorTitle": "內部錯誤", + "kickMessage": "您可以聯絡 {{participantDisplayName}} 取得更詳細資訊。", + "kickParticipantButton": "移除", + "kickParticipantDialog": "您確定要將這位與會者移除嗎?", + "kickParticipantTitle": "移除這位與會者?", + "kickSystemTitle": "您已被移出會議", + "kickTitle": "噢!{{participantDisplayName}} 將您從會議中移除", + "learnMore": "了解詳情", + "linkMeeting": "連結會議", + "linkMeetingTitle": "將會議連結至 Salesforce", + "liveStreaming": "直播串流中", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "正在錄製,無法使用", + "localUserControls": "本機使用者控制", + "lockMessage": "無法鎖定會議。", + "lockRoom": "新增會議 $t(lockRoomPasswordUppercase)", + "lockTitle": "鎖定失敗", + "login": "登入", + "loginQuestion": "您確定要登入並離開會議嗎?", + "logoutQuestion": "您確定要登出並離開會議嗎?", + "logoutTitle": "登出", + "maxUsersLimitReached": "已達到最大參與人數限制,請聯繫會議主辦人或稍後再試!", + "maxUsersLimitReachedTitle": "已達到最大參與人數限制", + "micConstraintFailedError": "您的麥克風不滿足某些必要條件。", + "micNotFoundError": "找不到麥克風。", + "micNotSendingData": "請至電腦設定中解除麥克風靜音並調整音量", + "micNotSendingDataTitle": "您的麥克風由電腦系統設定為靜音", + "micPermissionDeniedError": "您未允許麥克風的使用權限,雖然可以繼續參加會議但其他人將無法聽到您的聲音,利用位址欄中的網路攝影機按鈕修正這個問題。", + "micTimeoutError": "無法啟動音訊裝置,連線逾時!", + "micUnknownError": "不明原因造成麥克風無法使用。", + "moderationAudioLabel": "允許與會者自我解除靜音", + "moderationVideoLabel": "允許與會者開啟視訊", + "muteEveryoneDialog": "與會者可以隨時解除自己的靜音狀態。", + "muteEveryoneDialogModerationOn": "與會者可以隨時請求發言。", + "muteEveryoneElseDialog": "靜音後,您就不能再解除對方的靜音,但對方可以隨時解除自己的靜音狀態。", + "muteEveryoneElseTitle": "是否要讓除了 {{whom}} 以外的人靜音?", + "muteEveryoneElsesVideoDialog": "一旦停用,您就不能再重新開啟對方的網路攝影機,但對方隨時能重新開啟自己的網路攝影機。", + "muteEveryoneElsesVideoTitle": "是否要關閉除了 {{whom}} 以外的人的網路攝影機?", + "muteEveryoneSelf": "您自己", + "muteEveryoneStartMuted": "現在所有人皆已靜音", + "muteEveryoneTitle": "要將所有人靜音嗎?", + "muteEveryonesVideoDialog": "與會者隨時可以重新開啟自己的網路攝影機。", + "muteEveryonesVideoDialogModerationOn": "與會者可以隨時傳送開啟視訊請求。", + "muteEveryonesVideoDialogOk": "停用", + "muteEveryonesVideoTitle": "要關閉所有人的網路攝影機嗎?", + "muteParticipantBody": "您無法對他們解除靜音,但是他們自己隨時可以解除靜音。", + "muteParticipantButton": "靜音", + "muteParticipantsVideoBody": "您無法重新開啟,只有對方能自己重新開啟。", + "muteParticipantsVideoBodyModerationOn": "您和他都無法再將視訊重新開啟。", + "muteParticipantsVideoButton": "停用網路攝影機", + "muteParticipantsVideoDialog": "確定要停用這位與會者的網路攝影機?您不能再重新開啟對方的網路攝影機,但他們隨時能重新開啟。", + "muteParticipantsVideoDialogModerationOn": "您確定要關閉此與會者的網路攝影機嗎?您和他都無法再將視訊重新開啟。", + "muteParticipantsVideoTitle": "要關閉此與會者的網路攝影機嗎?", + "noDropboxToken": "沒有有效的 Dropbox 權杖", + "password": "密碼", + "passwordLabel": "會議已被一位與會者鎖定,請輸入 $t(lockRoomPassword) 以加入。", + "passwordNotSupported": "尚未支援設定會議 $t(lockRoomPassword)。", + "passwordNotSupportedTitle": "尚未支援 $t(lockRoomPasswordUppercase)", + "passwordRequired": "需要 $t(lockRoomPasswordUppercase)", + "permissionCameraRequiredError": "參與視訊會議需要存取網路攝影機,請在設定中啟用權限", + "permissionErrorTitle": "需要權限", + "permissionMicRequiredError": "參與音訊會議需要存取麥克風,請在設定中啟用權限", + "readMore": "更多", + "recentlyUsedObjects": "您最近使用過的物件", + "recording": "錄製中", + "recordingDisabledBecauseOfActiveLiveStreamingTooltip": "正在直播時無法使用", + "recordingInProgressDescription": "本會議正在錄製並由 AI 分析{{learnMore}},您的音訊與影像已靜音。如果您選擇取消靜音,即表示您同意被錄製。", + "recordingInProgressDescriptionFirstHalf": "本會議正在錄製並由 AI 分析", + "recordingInProgressDescriptionSecondHalf": ",您的音訊與影像已靜音。如果您選擇取消靜音,即表示您同意被錄製。", + "recordingInProgressTitle": "正在錄製", + "rejoinNow": "立即重新加入", + "remoteControlAllowedMessage": "{{user}} 接受您進行遠端控制的請求!", + "remoteControlDeniedMessage": "{{user}} 拒絕您進行遠端控制的請求!", + "remoteControlErrorMessage": "在嘗試向 {{user}} 請求遠端控制權限時發生錯誤!", + "remoteControlRequestMessage": "您要允許 {{user}} 遠端控制您的桌面嗎?", + "remoteControlShareScreenWarning": "請注意:如果按下「允許」您將會分享自己的螢幕!", + "remoteControlStopMessage": "遠端控制會話已結束!", + "remoteControlTitle": "遠端桌面控制", + "remoteUserControls": "{{username}} 的遠端使用者控制", + "removePassword": "移除 $t(lockRoomPassword)", + "removeSharedVideoMsg": "您確定要移除您分享的影像嗎?", + "removeSharedVideoTitle": "移除分享的影像", + "renameBreakoutRoomLabel": "分組討論室名稱", + "renameBreakoutRoomTitle": "重新命名分組討論室", + "reservationError": "預約系統錯誤", + "reservationErrorMsg": "錯誤代碼:{{code}},訊息:{{msg}}", + "retry": "重試", + "screenSharingAudio": "分享音訊", + "screenSharingFailed": "噢喔!發生錯誤,我們無法啟動分享螢幕!", + "screenSharingFailedTitle": "分享螢幕失敗!", + "screenSharingPermissionDeniedError": "噢喔!您的影像分享權限發生問題,請重新載入並再試一次。", + "searchInSalesforce": "在 Salesforce 中搜尋", + "searchResults": "搜尋結果({{count}})", + "searchResultsDetailsError": "取得擁有者資料時發生錯誤。", + "searchResultsError": "取得資料時發生錯誤。", + "searchResultsNotFound": "找不到任何結果。", + "searchResultsTryAgain": "請嘗試使用其他關鍵字。", + "sendPrivateMessage": "您最近收到一條私人訊息,請問您要私人回覆,還是要將訊息發佈至群組?", + "sendPrivateMessageCancel": "發佈至群組", + "sendPrivateMessageOk": "私人回覆", + "sendPrivateMessageTitle": "私人回覆?", + "serviceUnavailable": "服務無法使用", + "sessTerminated": "通話已經終止", + "sessTerminatedReason": "會議已經終止", + "sessionRestarted": "通話因連線問題重新啟動。", + "shareAudio": "繼續", + "shareAudioAltText": "如需分享內容,請選擇「瀏覽器分頁」,勾選「分享音訊」後再按「分享」", + "shareAudioTitle": "如何分享音訊", + "shareAudioWarningD1": "您必須先停用分享螢幕才能分享音訊。", + "shareAudioWarningD2": "您必須重新啟動螢幕分享並勾選「分享音訊」選項。", + "shareAudioWarningH1": "如果您只要分享音訊:", + "shareAudioWarningTitle": "您必須先停用分享螢幕才能分享音訊", + "shareMediaWarningGenericH2": "如果您想要同時分享螢幕跟音訊", + "shareScreenWarningD1": "您必須先停用分享音訊才能分享螢幕。", + "shareScreenWarningD2": "您必須先停用分享音訊後,重新啟動螢幕分享並勾選「分享音訊」選項。", + "shareScreenWarningH1": "如果您只要分享螢幕:", + "shareScreenWarningTitle": "您必須先停用分享音訊才能分享螢幕", + "shareVideoConfirmPlay": "您即將開啟外部網站,是否繼續?", + "shareVideoConfirmPlayTitle": "{{name}} 與您分享了一段影片。", + "shareVideoLinkError": "請提供正確的影片網址。", + "shareVideoLinkStopped": "{{name}} 的影片已停止播放", + "shareVideoTitle": "分享影像", + "shareYourScreen": "分享您的螢幕", + "shareYourScreenDisabled": "螢幕分享已停用。", + "sharedVideoDialogError": "錯誤:網址無效", + "sharedVideoLinkPlaceholder": "YouTube 或影片網址", + "show": "顯示", + "start": "開始", + "startLiveStreaming": "開始直播串流", + "startRecording": "啟動錄製作業", + "startRemoteControlErrorMessage": "嘗試啟動遠端控制階段時發生錯誤!", + "stopLiveStreaming": "停止直播串流", + "stopRecording": "停用錄製", + "stopRecordingWarning": "確定要停用錄製嗎?", + "stopStreamingWarning": "確定要停止直播串流嗎?", + "streamKey": "直播串流金鑰", + "thankYou": "感謝您使用 {{appName}}!", + "token": "token", + "tokenAuthFailed": "抱歉,您未被允許加入這個通話。", + "tokenAuthFailedReason": { + "audInvalid": "無效的`aud`值,應為`jitsi`。", + "contextNotFound": "`context` 未在負載中找到。", + "expInvalid": "無效的`exp`值。", + "featureInvalid": "無效的功能:{{feature}},可能尚未實現。", + "featureValueInvalid": "無效的功能值:{{feature}}。", + "featuresNotFound": "`context` 未在負載中找到。", + "headerNotFound": "標頭缺失。", + "issInvalid": "無效的`iss`值,應為`chat`。", + "kidMismatch": "金鑰 ID(kid)與子項不符。", + "kidNotFound": "缺少金鑰 ID(kid)。", + "nbfFuture": "`nbf`值在未來。", + "nbfInvalid": "無效的`nbf`值。", + "payloadNotFound": "負載缺失。", + "tokenExpired": "權杖已過期。" + }, + "tokenAuthFailedTitle": "驗證失敗", + "tokenAuthFailedWithReasons": "抱歉,您無法參加這個通話,可能原因:{{reason}}", + "tokenAuthUnsupported": "不支援權杖網址。", + "transcribing": "轉錄中", + "unlockRoom": "移除會議 $t(lockRoomPassword)", + "user": "使用者", + "userIdentifier": "使用者 ID", + "userPassword": "使用者密碼", + "verifyParticipantConfirm": "符合", + "verifyParticipantDismiss": "不符合", + "verifyParticipantQuestion": "實驗性功能:詢問與會者 {{participantName}} 是否以相同順序看到相同內容。", + "verifyParticipantTitle": "使用者驗證", + "videoLink": "影片連結", + "viewUpgradeOptions": "查看升級方案", + "viewUpgradeOptionsContent": "若要不受限制地使用錄製、逐字稿、RTMP 串流等進階版功能,您需要升級您的方案。", + "viewUpgradeOptionsTitle": "您找到了進階版功能!", + "whiteboardLimitContent": "抱歉,已達到白板使用者限制。", + "whiteboardLimitReference": "若要了解詳情,請前往", + "whiteboardLimitReferenceUrl": "我們的網站", + "whiteboardLimitTitle": "白板使用受限", + "yourEntireScreen": "您的整個螢幕" + }, + "documentSharing": { + "title": "分享的檔案" + }, + "e2ee": { + "labelToolTip": "此通話的音訊及視訊皆經過端對端加密處理" + }, + "embedMeeting": { + "title": "嵌入此會議" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "您的選擇:{{rating}}" + }, + "average": "一般", + "bad": "不好", + "detailsLabel": "告訴我們更多細節。", + "good": "好", + "rateExperience": "評價您的會議體驗", + "star": "星級", + "veryBad": "極差", + "veryGood": "極好" + }, + "fileSharing": { + "downloadFailedDescription": "請重試", + "downloadFailedTitle": "下載失敗", + "downloadFile": "下載", + "dragAndDrop": "將檔案拖曳至此或畫面任一處上傳", + "fileAlreadyUploaded": "檔案已上傳至此會議", + "fileTooLargeDescription": "請確認檔案未超過 {{ maxFileSize }}", + "fileTooLargeTitle": "檔案過大", + "removeFile": "移除", + "uploadFailedDescription": "請重試", + "uploadFailedTitle": "上傳失敗", + "uploadFile": "分享檔案" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "視頻縮略圖" + } + }, + "giphy": { + "noResults": "找不到任何結果 :(", + "search": "搜尋 GIPHY 圖庫" + }, + "incomingCall": { + "answer": "接通", + "audioCallTitle": "來電", + "decline": "拒接", + "productLabel": "來自 Jitsi Meet", + "videoCallTitle": "視訊來電" + }, + "info": { + "accessibilityLabel": "顯示資訊", + "addPassword": "增加$t(lockRoomPassword)", + "cancelPassword": "取消$t(lockRoomPassword)", + "conferenceURL": "連結:", + "copyNumber": "複製號碼", + "country": "國家", + "dialANumber": "若要參加您的會議,請撥打以下其中一支號碼,然後輸入 PIN 碼。", + "dialInConferenceID": "PIN 碼:", + "dialInNotSupported": "抱歉,目前不支援電話撥入。", + "dialInNumber": "撥入:", + "dialInSummaryError": "目前解析撥入資訊錯誤,請稍後再試一次。", + "dialInTollFree": "完全免費", + "genericError": "糟糕!出錯了。", + "inviteLiveStream": "要查看這場會議的直播串流,點按此連結:{{url}}", + "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", + "inviteURLSecondPart": "\n加入會議:\n{{url}}\n", + "label": "撥入資訊", + "liveStreamURL": "直播串流:", + "moreNumbers": "更多號碼", + "noNumbers": "無撥入號碼。", + "noPassword": "無", + "noRoom": "沒有會議室指定要撥入。", + "noWhiteboard": "無法載入白板", + "numbers": "撥入號碼", + "password": "$t(lockRoomPasswordUppercase):", + "reachedLimit": "您已達到您的方案上限", + "sip": "SIP 位址", + "sipAudioOnly": "SIP 僅音訊位址", + "title": "分享", + "tooltip": "顯示此會議的連結及電話撥入號碼", + "upgradeOptions": "請查看升級選項於", + "whiteboardError": "載入白板時發生錯誤,請稍後再試。" + }, + "inlineDialogFailure": { + "msg": "好像有點卡卡不順。", + "retry": "重試", + "support": "支援", + "supportMsg": "如果這種狀況持續發生,請聯絡" + }, + "inviteDialog": { + "alertText": "邀請某些與會者失敗。", + "header": "邀請", + "searchCallOnlyPlaceholder": "輸入電話號碼", + "searchPeopleOnlyPlaceholder": "搜尋與會者", + "searchPlaceholder": "與會者或電話號碼", + "send": "傳送" + }, + "jitsiHome": "{{logo}} 商標,首頁連結", + "keyboardShortcuts": { + "focusLocal": "聚焦於自己的影像", + "focusRemote": "聚焦於另一人的影像", + "fullScreen": "觀看或離開全螢幕", + "giphyMenu": "切換 GIPHY 選單", + "keyboardShortcuts": "快捷鍵", + "localRecording": "顯示或隱藏本機端錄製控制項", + "mute": "靜音或取消靜音", + "pushToTalk": "按鍵通話", + "raiseHand": "舉手或放下", + "showSpeakerStats": "顯示聲音輸出數據", + "toggleChat": "開啟或關閉聊天", + "toggleFilmstrip": "顯示或隱藏影片縮圖", + "toggleParticipantsPane": "顯示或隱藏與會者面板", + "toggleScreensharing": "在網路攝影機和螢幕分享之間進行切換", + "toggleShortcuts": "顯示或隱藏快捷鍵", + "videoMute": "啟動或停用自己的網路攝影機" + }, + "largeVideo": { + "screenIsShared": "您正在分享您的螢幕", + "showMeWhatImSharing": "讓我看看我正在分享什麼" + }, + "liveStreaming": { + "busy": "我們正在釋放串流資源,請過幾分鐘後再試。", + "busyTitle": "全部直播設備正在忙碌", + "changeSignIn": "切換帳號", + "choose": "選擇直播串流", + "chooseCTA": "請選擇直播串流選項,您目前是以 {{email}} 身份登入。", + "enterStreamKey": "在此輸入您的 YouTube 直播串流金鑰。", + "error": "直播串流失敗,請重試。", + "errorAPI": "在存取您的 YouTube 直播時發生問題,請重新登入。", + "errorLiveStreamNotEnabled": "直播在 {{email}} 尚未啟用,請開啟直播串流或登入有啟用直播串流的帳號。", + "expandedOff": "直播已停用", + "expandedOn": "會議目前正在 YouTube 上直播。", + "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": "登出", + "signedInAs": "您目前登入名稱為:", + "start": "啟動直播串流", + "streamIdHelp": "這是什麼?", + "title": "直播串流", + "unavailableTitle": "直播串流無法使用", + "youtubeTerms": "YouTube 服務條款" + }, + "lobby": { + "backToKnockModeButton": "請求加入", + "chat": "聊天", + "dialogTitle": "大廳模式", + "disableDialogContent": "大廳模式已啟用,此功能確保閒雜人等無法加入您的會議,確定要停用嗎?", + "disableDialogSubmit": "停用", + "emailField": "輸入您的電子郵件地址", + "enableDialogPasswordField": "設定密碼(選用)", + "enableDialogSubmit": "啟用", + "enableDialogText": "在大廳模式下,與會者只有被主持人同意後才能加入,以利加強保護您的會議。", + "enterPasswordButton": "輸入會議密碼", + "enterPasswordTitle": "輸入密碼以加入會議", + "errorMissingPassword": "請輸入會議密碼", + "invalidPassword": "密碼錯誤", + "joinRejectedMessage": "您的加入請求遭到主持人拒絕。", + "joinRejectedTitle": "加入請求遭拒。", + "joinTitle": "加入會議", + "joinWithPasswordMessage": "正在嘗試透過密碼加入,請稍候…", + "joiningMessage": "主持人接受您的請求後,即可加入會議", + "joiningTitle": "正在請求加入會議…", + "joiningWithPasswordTitle": "正在透過密碼加入…", + "knockButton": "請求加入", + "knockTitle": "有人想要加入會議", + "knockingParticipantList": "請求加入的與會者名單", + "lobbyChatStartedNotification": "{{moderator}} 與 {{attendee}} 開始在大廳中聊天", + "lobbyChatStartedTitle": "{{moderator}} 與您開始在大廳中聊天。", + "lobbyClosed": "大廳已關閉", + "nameField": "輸入您的名字", + "notificationLobbyAccessDenied": "{{originParticipantName}} 拒絕了 {{targetParticipantName}} 的加入請求", + "notificationLobbyAccessGranted": "{{originParticipantName}} 同意了 {{targetParticipantName}} 的加入請求", + "notificationLobbyDisabled": "{{originParticipantName}} 已停用大廳模式", + "notificationLobbyEnabled": "{{originParticipantName}} 已啟用大廳模式", + "notificationTitle": "大廳", + "passwordJoinButton": "加入", + "title": "大廳", + "toggleLabel": "啟用大廳模式" + }, + "localRecording": { + "clientState": { + "off": "關閉", + "on": "開啟", + "unknown": "未知" + }, + "dialogTitle": "本機錄製控制", + "duration": "時長", + "durationNA": "不適用", + "encoding": "編碼中", + "label": "本機錄製", + "labelToolTip": "本機錄製已啟用", + "localRecording": "本機錄製中", + "me": "我", + "messages": { + "engaged": "已啟用本機錄製。", + "finished": "錄製會話 {{token}} 已結束,請將傳送錄製檔案至主持人。", + "finishedModerator": "錄製階段{{token}} 已完成,本機錄製追蹤已存檔,請要求各與會者提供其錄製檔案。", + "notModerator": "您不是主持人,無法開始或停止本機錄製。" + }, + "moderator": "主持人", + "no": "否", + "participant": "與會者", + "participantStats": "與會者統計", + "selectTabTitle": "🎥請選擇此分頁進行錄製", + "sessionToken": "會話標記", + "start": "開始錄製", + "stop": "停止錄製", + "stopping": "正在停止錄製", + "wait": "請等待,我們正在保存您的錄製", + "yes": "是" + }, + "lockRoomPassword": "密碼", + "lockRoomPasswordUppercase": "密碼", + "lonelyMeetingExperience": { + "button": "邀請其他人", + "youAreAlone": "您是會議中的唯一一個人" + }, + "me": "我", + "notify": { + "OldElectronAPPTitle": "安全漏洞!", + "allowAudio": "允許音訊", + "allowBoth": "允許音訊與視訊", + "allowVideo": "允許視訊", + "allowedUnmute": "您可以將麥克風解除靜音、開啟視訊,或是分享您的螢幕。", + "audioUnmuteBlockedDescription": "麥克風解除靜音操作由於系統限制而被暫時封鎖。", + "audioUnmuteBlockedTitle": "麥克風解除靜音遭封鎖!", + "chatMessages": "聊天訊息", + "connectedOneMember": "{{name}} 加入了會議", + "connectedThreePlusMembers": "{{name}} 與其他人加入了會議", + "connectedTwoMembers": "{{first}} 與{{second}} 加入了會議", + "connectionFailed": "連線失敗,請稍後重試!", + "dataChannelClosed": "視訊品質受限", + "dataChannelClosedDescription": "橋接通道已斷開,視訊品質降至最低設定。", + "dataChannelClosedDescriptionWithAudio": "橋接通道已斷開,音訊和視訊可能會受到影響。", + "dataChannelClosedWithAudio": "音訊和視訊品質可能會降低。", + "disabledIframe": "嵌入僅供示範使用,此通話將於 {{timeout}} 分鐘後中斷連線。", + "disabledIframeSecondaryNative": "嵌入 {{domain}} 僅供示範,此通話將於 {{timeout}} 分鐘後中斷。", + "disabledIframeSecondaryWeb": "嵌入 {{domain}} 僅供示範,此通話將於 {{timeout}} 分鐘後中斷,請使用 Jitsi 服務 來進行正式嵌入!", + "disconnected": "已經中斷連接", + "displayNotifications": "顯示通知給", + "dontRemindMe": "不要再提醒我", + "focus": "會議焦點", + "focusFail": "{{component}} 無法使用 - {{ms}} 秒後重試", + "gifsMenu": "GIPHY", + "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}} 設為靜音!", + "mutedTitle": "您目前處於靜音!", + "newDeviceAction": "使用", + "newDeviceAudioTitle": "偵測到新的音效裝置", + "newDeviceCameraTitle": "偵測到新的網路攝影機", + "nextToSpeak": "下一位輪到您發言", + "noiseSuppressionDesktopAudioDescription": "分享電腦音訊時無法啟用雜訊抑制,請停用後重試。", + "noiseSuppressionFailedTitle": "啟用雜訊抑制失敗", + "noiseSuppressionStereoDescription": "目前不支援立體聲降噪功能。", + "oldElectronClientDescription1": "您似乎正在使用存在已知安全漏洞的過時 Jitsi Meet 用戶端,請盡快更新至我們的", + "oldElectronClientDescription2": "最新版本", + "oldElectronClientDescription3": "!", + "participantWantsToJoin": "希望加入會議", + "participantsWantToJoin": "希望加入會議", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) 已被其他與會者移除", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) 由其他與會者設定", + "raiseHandAction": "舉手發言", + "raisedHand": "{{name}}想要發言。", + "raisedHands": "{{participantName}} 與其他 {{raisedHands}} 人", + "reactionSounds": "停用音效", + "reactionSoundsForAll": "停用所有音效", + "screenShareNoAudio": "您未在選擇視窗時勾選分享音訊", + "screenShareNoAudioTitle": "無法分享電腦聲音!", + "screenSharingAudioOnlyDescription": "無法分享系統音訊!", + "screenSharingAudioOnlyTitle": "請注意,透過分享螢幕會影響「最佳效能」模式,並使用更多頻寬。", + "selfViewTitle": "您隨時可以在設定中取消隱藏本人視圖", + "somebody": "某人", + "startSilentDescription": "重新加入會議以啟用音訊", + "startSilentTitle": "您以無音訊輸出方式加入了會議!", + "suboptimalBrowserWarning": "我們恐怕您本次會議體驗不佳,我們會努力改善。在此期間,請嘗試使用支援的瀏覽器 。", + "suboptimalExperienceTitle": "瀏覽器警告", + "suggestRecordingAction": "開始", + "suggestRecordingDescription": "是否要開始錄製這場會議?", + "suggestRecordingTitle": "錄製此會議", + "unmute": "取消靜音", + "unmuteVideo": "啟用視訊", + "videoMutedRemotelyDescription": "您隨時可以再次啟用。", + "videoMutedRemotelyTitle": "您的視訊已被 {{participantDisplayName}} 停用", + "videoUnmuteBlockedDescription": "啟用網路攝影機與分享螢幕由於系統限制而被暫時封鎖。", + "videoUnmuteBlockedTitle": "啟用網路攝影機與分享螢幕遭封鎖!", + "viewLobby": "檢視大廳", + "viewParticipants": "查看與會者", + "viewVisitors": "查看訪客", + "waitingParticipants": "{{waitingParticipants}} 人", + "waitingVisitors": "排隊中的訪客: {{waitingVisitors}} 人", + "waitingVisitorsTitle": "會議尚未開始!", + "whiteboardLimitDescription": "由於即將超出使用者限制,白板將關閉,請儲存您的進度。", + "whiteboardLimitTitle": "白板使用情況" + }, + "participantsPane": { + "actions": { + "admit": "準許", + "admitAll": "準許所有人", + "allow": "允許與會者能夠:", + "allowVideo": "允許視訊", + "askUnmute": "要求解除靜音", + "audioModeration": "自我解除靜音", + "blockEveryoneMicCamera": "停用所有人的麥克風和網路攝影機", + "breakoutRooms": "分組討論室", + "goLive": "開始直播", + "invite": "邀請他人", + "lowerAllHands": "全部取消舉手", + "lowerHand": "取消舉手", + "moreModerationActions": "更多主持人選項", + "moreModerationControls": "更多主持人操作", + "moreParticipantOptions": "更多與會者選項", + "mute": "靜音", + "muteAll": "靜音所有人", + "muteEveryoneElse": "靜音其他人", + "reject": "拒絕", + "stopEveryonesVideo": "停用所有人的視訊", + "stopVideo": "停用視訊", + "unblockEveryoneMicCamera": "解除封鎖所有人的麥克風及網路攝影機", + "videoModeration": "開啟視訊" + }, + "close": "關閉", + "headings": { + "lobby": "大廳({{count}} 人)", + "participantsList": "會議與會者({{count}} 人)", + "visitorInQueue": "({{count}} 人等候中)", + "visitorRequests": "{{count}} 人申請", + "visitors": "訪客({{count}} 人)", + "waitingLobby": "於大廳等候({{count}} 人)" + }, + "search": "搜尋與會者", + "searchDescription": "輸入關鍵字篩選與會者", + "title": "與會者" + }, + "passwordDigitsOnly": "上限為 {{number}} 位數", + "passwordSetRemotely": "由其他與會者設定", + "pinParticipant": "{{participantName}} - 釘選", + "pinnedParticipant": "與會者被釘選", + "polls": { + "answer": { + "edit": "編輯", + "send": "送出", + "skip": "跳過", + "submit": "送出" + }, + "by": "由 {{ name }}", + "closeButton": "結束投票", + "create": { + "addOption": "新增選項", + "answerPlaceholder": "選項 {{index}}", + "cancel": "取消", + "create": "建立投票", + "pollOption": "選項 {{index}}", + "pollQuestion": "投票問題", + "questionPlaceholder": "詢問問題", + "removeOption": "移除選項", + "save": "儲存", + "send": "傳送" + }, + "errors": { + "notUniqueOption": "選項必須是唯一的" + }, + "notification": { + "description": "開啟投票分頁以參與投票", + "title": "此會議有一項新投票" + }, + "results": { + "changeVote": "修改投票", + "empty": "目前會議中沒有任何投票,在這裡建立您的投票吧!", + "hideDetailedResults": "隱藏詳細資訊", + "showDetailedResults": "顯示詳細資訊", + "vote": "投票" + } + }, + "poweredby": "技術支援由", + "prejoin": { + "audioAndVideoError": "音訊及視訊錯誤:", + "audioDeviceProblem": "您的音訊裝置有問題", + "audioOnlyError": "音訊錯誤:", + "audioTrackError": "無法建立音軌。", + "callMe": "打給我", + "callMeAtNumber": "撥打這支號碼:", + "calling": "撥打中", + "configuringDevices": "設定裝置中…", + "connectedWithAudioQ": "您有連接音訊設備嗎?", + "connection": { + "failed": "連線測試失敗!", + "good": "您的連線品質良好!", + "nonOptimal": "您的連線品質不理想", + "poor": "您的連線品質不佳", + "running": "正在測試連線中…" + }, + "connectionDetails": { + "audioClipping": "您的音訊將會斷斷續續。", + "audioHighQuality": "您的音訊品質極佳。", + "audioLowNoVideo": "您的音訊品質較差,且無視訊功能。", + "goodQuality": "太好了!您的媒體品質良好。", + "noMediaConnectivity": "我們無法為此測試建立媒體連線,通常是防火牆或 NAT 的問題。", + "noVideo": "您的視訊畫質將會很糟糕。", + "testFailed": "連線測試遇到異常,但不一定會影響會議。", + "undetectable": "如果您仍無法在瀏覽器中進行通話,我們建議您檢查喇叭、麥克風、及網路攝影機的設置,確認是否允許瀏覽器存取麥克風及網路攝影機,並將瀏覽器更新到最新版本。如果以上步驟無法解決問題,請聯絡網頁程式的開發者。", + "veryPoorConnection": "您的通話品質將會非常糟糕。", + "videoFreezing": "您的視訊將會突然黑頻、卡住、或像素化。", + "videoHighQuality": "您的視訊畫質良好。", + "videoLowQuality": "您的螢幕的影格率及解析度將較低。", + "videoTearing": "您的螢幕可能會有瑕疵或像素化。" + }, + "copyAndShare": "複製並分享會議連結", + "dialInMeeting": "撥入會議", + "dialInPin": "撥打進會議室並輸入 PIN 碼:", + "dialing": "撥號中", + "doNotShow": "不再顯示", + "errorDialOut": "無法撥出", + "errorDialOutDisconnected": "無法撥出,已斷開連接", + "errorDialOutFailed": "無法撥出,通話失敗", + "errorDialOutStatus": "取得撥出狀態時發生錯誤", + "errorMissingName": "請輸入您的名字以加入會議", + "errorNoPermissions": "您必須啟用麥克風及網路攝影機存取權限", + "errorStatusCode": "撥出失敗,狀態代碼:{{status}}", + "errorValidation": "號碼驗證失敗", + "iWantToDialIn": "我想要撥入", + "initiated": "通話已初始化", + "joinAudioByPhone": "使用手機音訊裝置加入", + "joinMeeting": "加入會議", + "joinMeetingInLowBandwidthMode": "以低頻寬模式加入", + "joinWithoutAudio": "無音訊情況下加入", + "keyboardShortcuts": "啟用鍵盤快捷鍵", + "linkCopied": "連結已複製到剪貼簿", + "lookGood": "聽起來您的麥克風能夠正常運作", + "or": "或", + "premeeting": "會議前", + "proceedAnyway": "仍然繼續", + "recordingWarning": "其他與會者可能正在錄製此通話", + "screenSharingError": "螢幕分享錯誤:", + "startWithPhone": "使用手機音訊開始", + "unsafeRoomConsent": "我了解風險,我想要加入會議", + "videoOnlyError": "視訊錯誤:", + "videoTrackError": "無法建立視訊軌。", + "viewAllNumbers": "檢視所有號碼" + }, + "presenceStatus": { + "busy": "忙線", + "calling": "來電…", + "connected": "已連線", + "connecting": "連線中…", + "connecting2": "連線中*…", + "disconnected": "已經中斷連接", + "expired": "逾時未接", + "ignored": "忽略不接", + "initializingCall": "通話初始化中…", + "invited": "受邀", + "rejected": "拒絕", + "ringing": "鈴鈴鈴…" + }, + "profile": { + "avatar": "頭像", + "setDisplayNameLabel": "設定顯示名稱", + "setEmailInput": "輸入您的電子信箱", + "setEmailLabel": "設定您的 Gravatar 電子信箱", + "title": "簡介" + }, + "raisedHand": "想要發言", + "raisedHandsLabel": "舉手人數", + "record": { + "already": { + "linked": "會議已連結至此 Salesforce 物件。" + }, + "type": { + "account": "帳號", + "contact": "聯絡人", + "lead": "潛在客戶", + "opportunity": "機會", + "owner": "負責人" + } + }, + "recording": { + "authDropboxText": "上傳至 Dropbox", + "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": "我們建立了您的錄製檔案的連結。", + "localRecordingNoNotificationWarning": "系統不會主動知會與會者錄製已開啟,主持人需另行通知。", + "localRecordingNoVideo": "沒有錄製的視訊", + "localRecordingStartWarning": "請確保在退出會議之前停用錄製以便保存。", + "localRecordingStartWarningTitle": "停用錄製以保存", + "localRecordingVideoStop": "關閉您的視訊也將停止本機錄製,確定繼續嗎?", + "localRecordingVideoWarning": "錄製視訊必須在開始時啟用", + "localRecordingWarning": "確保選擇目前的分頁以錄製正確的視訊和音訊。", + "loggedIn": "以 {{userName}} 登入", + "noMicPermission": "無法建立麥克風軌,請允許使用麥克風的權限。", + "noStreams": "未檢測到音訊或視訊。", + "off": "錄製已停用", + "offBy": "{{name}} 停止了錄製", + "on": "正在錄製", + "onBy": "{{name}} 開始了錄製", + "onlyRecordSelf": "僅錄製我的音訊和影片串流", + "pending": "正在準備錄製會議…", + "policyError": "您啟動錄製的速度過快,請稍後再試!", + "recordAudioAndVideo": "錄製音訊和視訊", + "recordTranscription": "錄製字幕內容", + "saveLocalRecording": "將錄製檔案保存在本機(測試版)", + "serviceDescription": "您的錄製會由錄製服務儲存", + "serviceDescriptionCloud": "雲端錄製", + "serviceDescriptionCloudInfo": "已錄製的會議將在 24 小時後自動清除。", + "serviceName": "錄製服務", + "sessionAlreadyActive": "已在錄製或直播此工作階段。", + "showAdvancedOptions": "進階選項", + "signIn": "登入", + "signOut": "登出", + "surfaceError": "請選擇目前分頁", + "title": "錄製中", + "unavailable": "喔哦!{{serviceName}} 目前無法使用,我們正在解決此問題,請稍後再試。", + "unavailableTitle": "錄製無法使用", + "uploadToCloud": "上傳至雲端" + }, + "screenshareDisplayName": "{{name}} 的螢幕", + "sectionList": { + "pullToRefresh": "下拉以重新整理" + }, + "security": { + "about": "您可以新增 $t(lockRoomPassword) 至您的會議,與會者在加入會議前必須先輸入$t(lockRoomPassword)。", + "aboutReadOnly": "主持人可以新增 $t(lockRoomPassword) 至會議,與會者在加入會議前必須先輸入$t(lockRoomPassword)。", + "insecureRoomNameWarningNative": "房間名稱不安全,任何人都可能會加入您的會議。{{recommendAction}} 了解有關保護您的會議的更多資訊。", + "insecureRoomNameWarningWeb": "房間名稱不安全,任何人都可能會加入您的會議。{{recommendAction}} 在此處了解有關保護您的會議的更多資訊 這裡。", + "title": "安全性選項", + "unsafeRoomActions": { + "meeting": "請考慮使用安全按鈕保護您的會議。", + "prejoin": "請考慮使用一個更獨特的會議名稱。", + "welcome": "請考慮使用一個更獨特的會議名稱,或從建議中選擇一個。" + } + }, + "settings": { + "audio": "音訊", + "buttonLabel": "設定", + "calendar": { + "about": "{{appName}} 行事曆整合功能可安全地存取您行事曆中即將舉行的活動。", + "disconnect": "中斷連接", + "microsoftSignIn": "使用 Microsoft 帳號登入", + "signedIn": "目前正在存取 {{email}} 的行事曆事件,點按下方中斷連接可以停用存取行事曆事件。", + "title": "行事曆" + }, + "chatWithPermissions": "聊天功能需取得權限", + "desktopShareFramerate": "桌面螢幕分享影格率", + "desktopShareHighFpsWarning": "較高的桌面螢幕分享影格率可能會影響您的頻寬,您必須重新啟動桌面螢幕分享以套用新的設定。", + "desktopShareWarning": "您必須重新啟動桌面螢幕分享以套用新的設定。", + "devices": "裝置", + "followMe": "全部人跟隨我", + "followMeRecorder": "錄影將跟隨我的視角", + "framesPerSecond": "fps", + "incomingMessage": "新訊息", + "language": "語言", + "loggedIn": "以{{name}}登入", + "maxStageParticipants": "可被釘選的最大與會者人數", + "microphones": "麥克風", + "moderator": "主持人", + "moderatorOptions": "主持人選項", + "more": "一般", + "name": "名稱", + "noDevice": "無", + "notifications": "通知", + "participantJoined": "與會者已加入", + "participantKnocking": "與會者已進入大廳", + "participantLeft": "與會者已離開", + "playSounds": "播放音效", + "reactions": "會議反應", + "sameAsSystem": "與系統相同({{label}})", + "selectAudioOutput": "音訊輸出", + "selectCamera": "網路攝影機", + "selectMic": "麥克風", + "selfView": "自身螢幕", + "shortcuts": "快捷鍵", + "showSubtitlesOnStage": "在主畫面顯示字幕", + "speakers": "喇叭", + "startAudioMuted": "所有人啟動時處於靜音", + "startReactionsMuted": "關閉所有人反應音效", + "startVideoMuted": "所有人啟動時隱藏視訊", + "talkWhileMuted": "通話時靜音", + "title": "設定", + "video": "影片" + }, + "settingsView": { + "advanced": "進階", + "alertCancel": "取消", + "alertOk": "確定", + "alertTitle": "警告", + "alertURLText": "輸入的伺服器網址無效", + "apply": "套用", + "buildInfoSection": "組建資訊", + "conferenceSection": "會議", + "disableCallIntegration": "停用原生通話整合", + "disableCrashReporting": "停用錯誤回報", + "disableCrashReportingWarning": "您確定要停用錯誤回報功能嗎?變更將在重啟應用程式後生效。", + "disableP2P": "停用點對點模式", + "displayName": "顯示名稱", + "displayNamePlaceholderText": "例如:王小明", + "email": "電子郵件", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "如果您的電子郵件地址與 Gravatar 帳號相關聯,我們會使用 Gravatar 上的個人檔案大頭貼。", + "goTo": "前往", + "header": "設定", + "help": "協助", + "links": "連結", + "privacy": "隱私權", + "profileSection": "簡介", + "sdkVersion": "SDK 版本", + "serverURL": "伺服器網址", + "showAdvanced": "顯示進階設定", + "startCarModeInLowBandwidthMode": "同時啟用行車模式與低頻寬模式", + "startWithAudioMuted": "啟動並靜音", + "startWithVideoMuted": "啟動並關閉影像", + "terms": "條款", + "version": "應用程式版本" + }, + "share": { + "dialInfoText": "\n\n=====\n\n只想要透過手機撥打加入嗎?\n\n撥打{{defaultDialInNumber}}或點此連結來查看此會議的電話撥入號碼\n{{dialInfoPageUrl}}", + "mainText": "點選下方連結加入會議:\n{{roomUrl}}" + }, + "speaker": "喇叭", + "speakerStats": { + "angry": "生氣", + "disgusted": "嘔吐", + "displayEmotions": "顯示表情", + "fearful": "可怕", + "happy": "笑臉", + "hours": "{{count}} 小時", + "labelTooltip": "與會者人數:{{count}}", + "minutes": "{{count}} 分", + "name": "名字", + "neutral": "中立", + "sad": "悲傷", + "search": "搜尋", + "searchDescription": "輸入關鍵字篩選與會者", + "searchHint": "搜尋與會者", + "seconds": "{{count}} 秒", + "speakerStats": "發言統計", + "speakerTime": "發言時間", + "surprised": "驚訝" + }, + "startupoverlay": { + "genericTitle": "此會議需要使用您的麥克風和網路攝影機。", + "policyText": " ", + "title": "{{app}} 需要使用您的麥克風和網路攝影機。" + }, + "suspendedoverlay": { + "rejoinKeyTitle": "重新加入", + "text": "按下 重新加入 按鈕以重新連接。", + "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": "授予主持人權限", + "hangup": "離開會議", + "heading": "工具列", + "help": "協助", + "hideWhiteboard": "隱藏白板", + "invite": "邀請他人", + "kick": "移除與會者", + "laugh": "大笑", + "leaveConference": "離開會議", + "like": "比讚", + "linkToSalesforce": "連結至 Salesforce", + "lobbyButton": "啟用/停用大廳模式", + "localRecording": "切換本機錄製控制", + "lockRoom": "切換會議密碼", + "love": "愛心", + "lowerHand": "放下手", + "moreActions": "更多動作", + "moreActionsMenu": "更多動作選單", + "moreOptions": "顯示更多選項", + "mute": "靜音", + "muteEveryone": "全部靜音", + "muteEveryoneElse": "其他人全部靜音", + "muteEveryoneElsesVideoStream": "停止其他人的視訊", + "muteEveryonesVideoStream": "停止所有人的視訊", + "muteGUMPending": "正在連接您的麥克風", + "noiseSuppression": "雜訊抑制(BETA)", + "openChat": "打開聊天", + "participants": "打開與會者窗格", + "pip": "切換子母螢幕模式", + "privateMessage": "傳送私人訊息", + "profile": "編輯您的個人檔案", + "raiseHand": "舉手", + "react": "訊息反應", + "reactions": "反應", + "reactionsMenu": "反應選單", + "recording": "切換錄製", + "remoteMute": "將與會者靜音", + "remoteVideoMute": "停用與會者的網路攝影機", + "security": "安全性選項", + "selectBackground": "選擇背景", + "selfView": "切換自身螢幕", + "shareRoom": "邀請他人", + "shareYourScreen": "開始分享您的螢幕", + "shareaudio": "分享音訊", + "sharedvideo": "分享視訊", + "shortcuts": "切換快捷方式", + "show": "顯示在台上", + "showWhiteboard": "顯示白板", + "silence": "沉默", + "speakerStats": "切換與會者統計資料", + "stopScreenSharing": "停止分享螢幕", + "stopSharedVideo": "停止視訊", + "surprised": "驚訝", + "tileView": "切換畫廊檢視", + "toggleCamera": "切換網路攝影機", + "toggleFilmstrip": "切換簡報", + "unmute": "取消靜音", + "videoblur": "切換視訊模糊", + "videomute": "停用網路攝影機", + "videomuteGUMPending": "正在連接您的網路攝影機", + "videounmute": "啟用網路攝影機" + }, + "addPeople": "新增人員到您的通話中", + "audioOnlyOff": "停用低頻寬模式", + "audioOnlyOn": "啟用低頻寬模式", + "audioRoute": "選擇音訊裝置", + "audioSettings": "音訊設定", + "authenticate": "驗證", + "boo": "倒喝彩", + "callQuality": "管理影像品質", + "chat": "開啟/關閉聊天欄", + "clap": "鼓掌", + "closeChat": "關閉聊天", + "closeParticipantsPane": "關閉與會者窗格", + "closeReactionsMenu": "關閉反應選單", + "closedCaptions": "停用即時字幕", + "disableNoiseSuppression": "停用雜訊抑制(BETA)", + "disableReactionSounds": "您可以停用此會議的反應音效", + "documentClose": "關閉分享檔案欄", + "documentOpen": "開啟分享檔案欄", + "download": "下載我們的應用程式", + "e2ee": "端對端加密", + "embedMeeting": "嵌入會議", + "enableNoiseSuppression": "開啟雜訊抑制(BETA)", + "endConference": "結束會議(所有人)", + "enterFullScreen": "放大全螢幕", + "enterTileView": "進入畫廊檢視", + "exitFullScreen": "離開全螢幕", + "exitTileView": "跳出畫廊檢視", + "feedback": "回饋", + "giphy": "啟用/停用 GIPHY 選單", + "hangup": "離開會議", + "help": "協助", + "hideWhiteboard": "停用白板", + "invite": "邀請他人", + "joinBreakoutRoom": "加入分組討論室", + "laugh": "大笑", + "leaveBreakoutRoom": "離開分組討論室", + "leaveConference": "離開會議", + "like": "比讚", + "linkToSalesforce": "連結至 Salesforce", + "lobbyButtonDisable": "停用大廳模式", + "lobbyButtonEnable": "啟用大廳模式", + "login": "登入", + "logout": "登出", + "love": "愛心", + "lowerYourHand": "放下您的手", + "moreActions": "更多動作", + "moreOptions": "更多選項", + "mute": "靜音/解除靜音", + "muteEveryone": "靜音所有人", + "muteEveryonesVideo": "停用所有人的網路攝影機", + "muteGUMPending": "正在連接您的麥克風", + "noAudioSignalDesc": "如果您沒有特別從系統設定或硬體靜音,請考慮更換裝置。", + "noAudioSignalDescSuggestion": "如果您沒有特別從系統設定或硬體靜音,請考慮切換至建議裝置。", + "noAudioSignalDialInDesc": "您亦可使用下述方式撥入:", + "noAudioSignalDialInLinkDesc": "撥入號碼", + "noAudioSignalTitle": "您的麥克風沒有訊號!", + "noiseSuppression": "雜訊抑制(BETA)", + "noisyAudioInputDesc": "噪音聽起來是從您的麥克風傳來的,請考慮靜音或更換裝置。", + "noisyAudioInputTitle": "您的麥克風疑似有雜音!", + "openChat": "開啟聊天", + "openReactionsMenu": "開啟反應選單", + "participants": "與會者", + "pip": "進入子母螢幕模式", + "privateMessage": "傳送私人訊息", + "profile": "編輯您的個人資料", + "raiseHand": "舉起/放下您的手", + "raiseYourHand": "舉手", + "reactionBoo": "傳送倒喝彩反應", + "reactionClap": "傳送鼓掌反應", + "reactionHeart": "傳送愛心反應", + "reactionLaugh": "傳送大笑反應", + "reactionLike": "傳送比讚反應", + "reactionSilence": "傳送沉默反應", + "reactionSurprised": "傳送驚訝反應", + "reactions": "反應", + "security": "安全性選項", + "selectBackground": "選擇背景", + "shareRoom": "邀請他人", + "shareaudio": "分享音訊", + "sharedvideo": "分享影片", + "shortcuts": "查看快捷鍵", + "showWhiteboard": "啟用白板", + "silence": "沉默", + "speakerStats": "發言統計", + "startScreenSharing": "啟動螢幕分享", + "startSubtitles": "{{language}} • 字幕", + "stopAudioSharing": "停用分享音訊", + "stopScreenSharing": "停用分享螢幕", + "stopSharedVideo": "停用影片", + "stopSubtitles": "停用字幕", + "surprised": "驚訝", + "talkWhileMutedPopup": "您要發言嗎?目前您處於靜音。", + "tileViewToggle": "切換畫廊檢視", + "toggleCamera": "切換網路攝影機", + "unmute": "取消靜音", + "videoSettings": "視訊設定", + "videomute": "切換網路攝影機", + "videomuteGUMPending": "正在連接您的網路攝影機", + "videounmute": "啟用網路攝影機" + }, + "transcribing": { + "ccButtonTooltip": "啟動/停用字幕", + "expandedLabel": "轉錄已開啟", + "failed": "轉錄失敗", + "labelTooltip": "此會議正在轉錄", + "labelTooltipExtra": "稍後將提供完整轉錄紀錄", + "openClosedCaptions": "開啟字幕", + "original": "原文", + "sourceLanguageDesc": "會議語言目前設定為 {{sourceLanguage}}
您可以在這裡", + "sourceLanguageHere": "修改", + "start": "開始顯示字幕", + "stop": "停用顯示字幕", + "subtitles": "字幕", + "subtitlesOff": "關", + "tr": "轉錄", + "translateTo": "翻譯成" + }, + "unpinParticipant": "{{participantName}} - 取消釘選", + "userMedia": { + "grantPermissions": "請允許使用您的網路攝影機和麥克風的權限." + }, + "videoSIPGW": { + "busy": "我們正在釋放資源,請過幾分鐘後再試。", + "busyTitle": "會議室服務目前忙碌中", + "errorAlreadyInvited": "{{displayName}} 已經受邀", + "errorInvite": "會議尚未開始,請稍候再試。", + "errorInviteFailed": "我們正在努力解決這個問題,請稍後再試。", + "errorInviteFailedTitle": "邀請 {{displayName}} 失敗", + "errorInviteTitle": "會議室邀請錯誤", + "pending": "已向 {{displayName}} 傳送邀請" + }, + "videoStatus": { + "adjustFor": "調整為:", + "audioOnly": "僅音訊", + "audioOnlyExpanded": "您目前處於低頻寬模式,在此模式下您僅會收到語音及螢幕分享。", + "bestPerformance": "最佳效能", + "callQuality": "視訊品質(0 表示最佳效能,3 表示最高品質)", + "hd": "高畫質", + "hdTooltip": "查看高畫質視訊", + "highDefinition": "高畫質", + "highestQuality": "最高品質", + "labelTooiltipNoVideo": "無視訊", + "labelTooltipAudioOnly": "啟用低頻寬模式", + "ld": "低畫質", + "ldTooltip": "查看低畫質視訊", + "lowDefinition": "低畫質", + "performanceSettings": "效能設定", + "recording": "錄製中", + "sd": "標準畫質", + "sdTooltip": "查看標準畫質視訊", + "standardDefinition": "標準畫質", + "streaming": "串流中" + }, + "videothumbnail": { + "connectionInfo": "連線資訊", + "demote": "轉為訪客", + "domute": "靜音", + "domuteOthers": "靜音其他人", + "domuteVideo": "停用網路攝影機", + "domuteVideoOfOthers": "停用其他人的網路攝影機", + "flip": "翻轉", + "grantModerator": "授予主持人權限", + "hideSelfView": "隱藏自我檢視", + "kick": "移除", + "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": "無法建立螢幕分享", + "image1": "海灘", + "image2": "牆壁(白)", + "image3": "空房間(白)", + "image4": "落地燈(黑)", + "image5": "山岳", + "image6": "森林", + "image7": "日出", + "none": "無", + "pleaseWait": "請稍候…", + "removeBackground": "移除背景", + "slightBlur": "輕微模糊", + "title": "虛擬背景", + "uploadedImage": "已上傳的圖片 {{index}}", + "webAssemblyWarning": "不支援 WebAssembly", + "webAssemblyWarningDescription": "WebAssembly 已停用或不受此瀏覽器支援" + }, + "visitors": { + "chatIndicator": "(訪客)", + "joinMeeting": { + "description": "您目前以訪客身分參與本會議", + "raiseHand": "舉手", + "title": "正在加入會議", + "wishToSpeak": "若您想發言,請先舉手並等候主持人同意" + }, + "labelTooltip": "訪客數量:{{count}}", + "notification": { + "demoteDescription": "由 {{actor}} 調整為訪客,若要參與請舉手", + "noMainParticipantsDescription": "須有主要與會者啟動會議,請稍後再試", + "noMainParticipantsTitle": "會議尚未開始", + "noVisitorLobby": "此會議啟用大廳,暫時無法加入", + "notAllowedPromotion": "需由與會者同意您的申請", + "title": "您是會議中的訪客" + }, + "waitingMessage": "會議開始後您將自動加入!" + }, + "volumeSlider": "音量滑桿", + "welcomepage": { + "accessibilityLabel": { + "join": "點擊加入", + "roomname": "輸入會議室名稱" + }, + "addMeetingName": "新增會議名稱", + "appDescription": "來吧,和您的整個團隊進行視訊會議。不,邀請所有您認識的人進行視訊會議。{{app}} 是一套完全加密、100% 開放原始碼的視訊會議解決方案。無需註冊帳號,無時無刻不分日夜均可免費使用。", + "audioVideoSwitch": { + "audio": "音訊", + "video": "視訊" + }, + "calendar": "行事曆", + "connectCalendarButton": "連接您的行事曆", + "connectCalendarText": "連接您的行事曆來查看在 {{app}} 中的會議。此外,增加 {{provider}} 的會議至自己的行事曆,只要點按一下即可啟動。", + "enterRoomTitle": "啟動新的會議", + "getHelp": "取得協助", + "go": "開始", + "goSmall": "開始", + "headerSubtitle": "安全且高品質的視訊會議", + "headerTitle": "Jitsi Meet", + "info": "資訊", + "jitsiOnMobile": "Jitsi 手機應用程式 – 下載應用程式,不論何時何地都能發起會議", + "join": "建立/加入", + "logo": { + "calendar": "行事曆圖示", + "desktopPreviewThumbnail": "桌面預覽縮圖", + "googleLogo": "Google 圖示", + "logoDeepLinking": "Jitsi Meet 圖示", + "microsoftLogo": "Microsoft 圖示", + "policyLogo": "政策圖示" + }, + "meetingsAccessibilityLabel": "會議", + "mobileDownLoadLinkAndroid": "下載 Android 版本的應用程式", + "mobileDownLoadLinkFDroid": "前往 F-Droid 下載 Android 版本的應用程式", + "mobileDownLoadLinkIos": "下載 iOS 版本的應用程式", + "moderatedMessage": "或以主持人身份預先建立會議。", + "privacy": "隱私權", + "recentList": "近期", + "recentListDelete": "刪除", + "recentListEmpty": "您的近期列表目前是空白的,與您的團隊成員聊天,即可在此處找到最近參與過的會議。", + "recentMeetings": "您近期的會議", + "reducedUIText": "歡迎使用{{app}}!", + "roomNameAllowedChars": "會議室名稱不應包含以下字元:?、&、:、'、\"、%、#。", + "roomname": "輸入會議室名稱", + "roomnameHint": "請輸入您想加入的會議室名稱或網址,您可以用一個名稱來建立會議室,只要其他人輸入相同的名稱就能加入會議室。", + "sendFeedback": "傳送回饋", + "settings": "設定", + "startMeeting": "開始會議", + "terms": "條款", + "title": "安全、功能齊全、完全免費的視訊會議", + "upcomingMeetings": "您即將開始的會議" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "白板" + }, + "screenTitle": "白板" + } +} diff --git a/lang/main.json b/lang/main.json new file mode 100644 index 0000000..0e23437 --- /dev/null +++ b/lang/main.json @@ -0,0 +1,1666 @@ +{ + "addPeople": { + "accessibilityLabel": { + "meetingLink": "Meeting link: {{url}}" + }, + "add": "Invite", + "addContacts": "Invite your contacts", + "contacts": "contacts", + "copyInvite": "Copy meeting invitation", + "copyLink": "Copy meeting link", + "copyStream": "Copy live streaming link", + "countryNotSupported": "We do not support this destination yet.", + "countryReminder": "Calling outside the US? Please make sure you start with the country code!", + "defaultEmail": "Your Default Email", + "disabled": "You can't invite people.", + "failedToAdd": "Failed to add participants", + "googleEmail": "Google Email", + "inviteMoreHeader": "You are the only one in the meeting", + "inviteMoreMailSubject": "Join {{appName}} meeting", + "inviteMorePrompt": "Invite more people", + "linkCopied": "Link copied to clipboard", + "noResults": "No matching search results", + "outlookEmail": "Outlook Email", + "phoneNumbers": "phone numbers", + "searching": "Searching…", + "shareInvite": "Share meeting invitation", + "shareLink": "Share the meeting link to invite others", + "shareStream": "Share the live streaming link", + "sipAddresses": "sip addresses", + "telephone": "Telephone: {{number}}", + "title": "Invite people to this meeting", + "yahooEmail": "Yahoo Email" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "car": "Car Audio", + "headphones": "Headphones", + "none": "No audio devices available", + "phone": "Phone", + "speaker": "Speaker" + }, + "audioOnly": { + "audioOnly": "Low bandwidth" + }, + "bandwidthSettings": { + "assumedBandwidthBps": "e.g. 10000000 for 10 Mbps", + "assumedBandwidthBpsWarning": "Higher values might cause network issues.", + "customValue": "custom value", + "customValueEffect": "to set the actual bps value", + "leaveEmpty": "leave empty", + "leaveEmptyEffect": "to allow estimations to take place", + "possibleValues": "Possible values", + "setAssumedBandwidthBps": "Assumed bandwidth (bps)", + "title": "Bandwidth settings", + "zeroEffect": "to disable video" + }, + "breakoutRooms": { + "actions": { + "add": "Add breakout room", + "autoAssign": "Auto assign to breakout rooms", + "close": "Close", + "join": "Join", + "leaveBreakoutRoom": "Leave breakout room", + "more": "More", + "remove": "Remove", + "rename": "Rename", + "renameBreakoutRoom": "Rename breakout room", + "sendToBreakoutRoom": "Send participant to:" + }, + "breakoutList": "Breakout list", + "buttonLabel": "Breakout rooms", + "defaultName": "Breakout room #{{index}}", + "hideParticipantList": "Hide participant list", + "mainRoom": "Main room", + "notifications": { + "joined": "Joining the \"{{name}}\" breakout room", + "joinedMainRoom": "Joining the main room", + "joinedTitle": "Breakout Rooms" + }, + "showParticipantList": "Show participant list", + "title": "Breakout Rooms" + }, + "calendarSync": { + "addMeetingURL": "Add a meeting link", + "confirmAddLink": "Do you want to add a Jitsi link to this event?", + "error": { + "appConfiguration": "Calendar integration is not properly configured.", + "generic": "An error has occurred. Please check your calendar settings or try refreshing the calendar.", + "notSignedIn": "An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again." + }, + "join": "Join", + "joinTooltip": "Join the meeting", + "nextMeeting": "Next meeting", + "noEvents": "There are no upcoming events scheduled.", + "ongoingMeeting": "Ongoing meeting", + "permissionButton": "Open settings", + "permissionMessage": "The Calendar permission is required to see your meetings in the app.", + "refresh": "Refresh calendar", + "today": "Today" + }, + "carmode": { + "actions": { + "selectSoundDevice": "Select sound device" + }, + "labels": { + "buttonLabel": "Car mode", + "title": "Car mode", + "videoStopped": "Your video is stopped" + } + }, + "chat": { + "disabled": "Sending chat messages is disabled.", + "enter": "Enter room", + "error": "Error: your message was not sent. Reason: {{error}}", + "everyone": "Everyone", + "fieldPlaceHolder": "Aa", + "lobbyChatMessageTo": "Lobby chat message to {{recipient}}", + "message": "Message", + "messageAccessibleTitle": "{{user}} says:", + "messageAccessibleTitleMe": "me says:", + "messageTo": "Private message to {{recipient}}", + "messagebox": "Type a message", + "newMessages": "New messages", + "nickname": { + "popover": "Choose a nickname", + "title": "Enter a nickname to use chat", + "titleWithCC": "Enter a nickname to use chat and closed captions", + "titleWithPolls": "Enter a nickname to use chat and polls", + "titleWithPollsAndCC": "Enter a nickname to use chat, polls and closed captions", + "titleWithPollsAndCCAndFileSharing": "Enter a nickname to use chat, polls, closed captions and files" + }, + "noMessagesMessage": "There are no messages in the meeting yet. Start a conversation here!", + "privateNotice": "Private message to {{recipient}}", + "sendButton": "Send", + "smileysPanel": "Emoji panel", + "systemDisplayName": "System", + "tabs": { + "chat": "Chat", + "closedCaptions": "CC", + "fileSharing": "Files", + "polls": "Polls" + }, + "title": "Chat", + "titleWithCC": "CC", + "titleWithFeatures": "Chat and", + "titleWithFileSharing": "Files", + "titleWithPolls": "Polls", + "you": "you" + }, + "chromeExtensionBanner": { + "buttonText": "Install Chrome Extension", + "buttonTextEdge": "Install Edge Extension", + "close": "Close", + "dontShowAgain": "Don't show me this again", + "installExtensionText": "Install the extension for Google Calendar and Office 365 integration" + }, + "closedCaptionsTab": { + "emptyState": "The closed captions content will be available once a moderator starts it", + "startClosedCaptionsButton": "Start closed captions" + }, + "connectingOverlay": { + "joiningRoom": "Connecting you to your meeting…" + }, + "connection": { + "ATTACHED": "Attached", + "AUTHENTICATING": "Authenticating", + "AUTHFAIL": "Authentication failed", + "CONNECTED": "Connected", + "CONNECTING": "Connecting", + "CONNFAIL": "Connection failed", + "DISCONNECTED": "Disconnected", + "DISCONNECTING": "Disconnecting", + "ERROR": "Error", + "FETCH_SESSION_ID": "Obtaining session-id…", + "GET_SESSION_ID_ERROR": "Get session-id error: {{code}}", + "GOT_SESSION_ID": "Obtaining session-id… Done", + "LOW_BANDWIDTH": "Video for {{displayName}} has been turned off to save bandwidth" + }, + "connectionindicator": { + "address": "Address:", + "audio_ssrc": "Audio SSRC:", + "bandwidth": "Estimated bandwidth:", + "bitrate": "Bitrate:", + "bridgeCount": "Server count: ", + "codecs": "Codecs (A/V): ", + "connectedTo": "Connected to:", + "e2eeVerified": "E2EE verified:", + "framerate": "Frame rate:", + "less": "Show less", + "localaddress": "Local address:", + "localaddress_plural": "Local addresses:", + "localport": "Local port:", + "localport_plural": "Local ports:", + "maxEnabledResolution": "send max", + "more": "Show more", + "no": "no", + "packetloss": "Packet loss:", + "participant_id": "Participant id:", + "quality": { + "good": "Good", + "inactive": "Inactive", + "lost": "Lost", + "nonoptimal": "Nonoptimal", + "poor": "Poor" + }, + "remoteaddress": "Remote address:", + "remoteaddress_plural": "Remote addresses:", + "remoteport": "Remote port:", + "remoteport_plural": "Remote ports:", + "resolution": "Resolution:", + "savelogs": "Save logs", + "status": "Connection:", + "transport": "Transport:", + "transport_plural": "Transports:", + "video_ssrc": "Video SSRC:", + "yes": "yes" + }, + "dateUtils": { + "earlier": "Earlier", + "today": "Today", + "yesterday": "Yesterday" + }, + "deepLinking": { + "appNotInstalled": "You need the {{app}} mobile app to join this meeting on your phone.", + "description": "Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.", + "descriptionNew": "Nothing happened? We tried launching your meeting in the {{app}} desktop app.

You can try again or launch it on web.", + "descriptionWithoutWeb": "Nothing happened? We tried launching your meeting in the {{app}} desktop app.", + "downloadApp": "Download the app", + "downloadMobileApp": "Download from App Store", + "ifDoNotHaveApp": "If you don't have the app yet:", + "ifHaveApp": "If you already have the app:", + "joinInApp": "Join this meeting using the app", + "joinInAppNew": "Join in app", + "joinInBrowser": "Join in browser", + "launchMeetingLabel": "How do you want to join this meeting?", + "launchWebButton": "Launch in web", + "noDesktopApp": "You don't have the app?", + "noMobileApp": "You don't have the app?", + "or": "OR", + "termsAndConditions": "By continuing you agree to our terms & conditions.", + "title": "Launching your meeting in {{app}}…", + "titleNew": "Launching your meeting…", + "tryAgainButton": "Try again in desktop", + "unsupportedBrowser": "It looks like you're using a browser we don't support." + }, + "defaultLink": "e.g. {{url}}", + "defaultNickname": "ex. Jane Pink", + "deviceError": { + "cameraError": "Failed to access your camera", + "cameraPermission": "Error obtaining camera permission", + "microphoneError": "Failed to access your microphone", + "microphonePermission": "Error obtaining microphone permission" + }, + "deviceSelection": { + "hid": { + "callControl": "Call control", + "connectedDevices": "Connected devices:", + "deleteDevice": "Delete device", + "pairDevice": "Pair device" + }, + "noPermission": "Permission not granted", + "previewUnavailable": "Preview unavailable", + "selectADevice": "Select a device", + "testAudio": "Test" + }, + "dialIn": { + "screenTitle": "Dial-in summary" + }, + "dialOut": { + "statusMessage": "is now {{status}}" + }, + "dialog": { + "Back": "Back", + "Cancel": "Cancel", + "IamHost": "Log-in", + "Ok": "OK", + "Remove": "Remove", + "Share": "Share", + "Submit": "Submit", + "Understand": "I understand, keep me muted for now", + "UnderstandAndUnmute": "I understand, please unmute me", + "WaitForHostMsg": "The conference has not yet started because no moderators have yet arrived. If you'd like to become a moderator please log-in. Otherwise, please wait.", + "WaitForHostNoAuthMsg": "The conference has not yet started because no moderators have yet arrived. Please wait.", + "WaitingForHostButton": "Wait for moderator", + "WaitingForHostTitle": "Waiting for a moderator…", + "Yes": "Yes", + "accessibilityLabel": { + "Cancel": "Cancel (leave dialog)", + "Ok": "OK (save and leave dialog)", + "close": "Close dialog", + "liveStreaming": "Live Stream", + "sharingTabs": "Sharing options" + }, + "add": "Add", + "addMeetingNote": "Add a note about this meeting", + "addOptionalNote": "Add a note (optional):", + "allow": "Allow", + "allowToggleCameraDialog": "Do you allow {{initiatorName}} to toggle your camera facing mode?", + "allowToggleCameraTitle": "Allow toggle camera?", + "alreadySharedVideoMsg": "Another participant is already sharing a video. This conference allows only one shared video at a time.", + "alreadySharedVideoTitle": "Only one shared video is allowed at a time", + "applicationWindow": "Application window", + "authenticationRequired": "Authentication required", + "cameraCaptureDialog": { + "description": "Take and send a picture using your mobile camera", + "ok": "Open camera", + "reject": "Not now", + "title": "Take a picture" + }, + "cameraConstraintFailedError": "Your camera does not satisfy some of the required constraints.", + "cameraNotFoundError": "Camera was not found.", + "cameraNotSendingData": "We are unable to access your camera. Please check if another application is using this device, select another device from the settings menu or try to reload the application.", + "cameraNotSendingDataTitle": "Unable to access camera", + "cameraPermissionDeniedError": "You have not granted permission to use your camera. You can still join the conference but others won't see you. Use the camera button in the address bar to fix this.", + "cameraTimeoutError": "Could not start video source. Timeout occurred!", + "cameraUnknownError": "Cannot use camera for an unknown reason.", + "cameraUnsupportedResolutionError": "Your camera does not support required video resolution.", + "close": "Close", + "conferenceDisconnectMsg": "You may want to check your network connection. Reconnecting in {{seconds}} sec…", + "conferenceDisconnectTitle": "You have been disconnected.", + "conferenceReloadMsg": "We're trying to fix this. Reconnecting in {{seconds}} sec…", + "conferenceReloadTitle": "Unfortunately, something went wrong.", + "confirm": "Confirm", + "confirmBack": "Back", + "confirmNo": "No", + "confirmYes": "Yes", + "connectError": "Oops! Something went wrong and we couldn't connect to the conference.", + "connectErrorWithMsg": "Oops! Something went wrong and we couldn't connect to the conference: {{msg}}", + "connecting": "Connecting", + "contactSupport": "Contact support", + "copied": "Copied", + "copy": "Copy", + "demoteParticipantDialog": "Are you sure you want to move this participant to viewer?", + "demoteParticipantTitle": "Move to viewer", + "dismiss": "Dismiss", + "displayNameRequired": "Hi! What's your name?", + "done": "Done", + "e2eeDescription": "End-to-End Encryption is currently EXPERIMENTAL. Please keep in mind that turning on end-to-end encryption will effectively disable server-side provided services such as: phone participation. Also keep in mind that the meeting will only work for people joining from browsers with support for insertable streams.", + "e2eeDisabledDueToMaxModeDescription": "Cannot enable End-to-End Encryption due to large number of participants in the conference.", + "e2eeLabel": "Enable End-to-End Encryption", + "e2eeWarning": "WARNING: Not all participants in this meeting seem to have support for End-to-End encryption. If you enable it they won't be able to see nor hear you.", + "e2eeWillDisableDueToMaxModeDescription": "WARNING: End-to-End Encryption will be automatically disabled if more participants join the conference.", + "embedMeeting": "Embed meeting", + "enterDisplayName": "Enter your name", + "error": "Error", + "errorRoomCreationRestriction": "You tried to join too quickly, please come back in a bit.", + "gracefulShutdown": "Our service is currently down for maintenance. Please try again later.", + "grantModeratorDialog": "Are you sure you want to grant moderator rights to {{participantName}}?", + "grantModeratorTitle": "Grant moderator rights", + "hide": "Hide", + "hideShareAudioHelper": "Don't show this dialog again", + "incorrectPassword": "Incorrect username or password", + "incorrectRoomLockPassword": "Incorrect password", + "internalError": "Oops! Something went wrong. The following error occurred: {{error}}", + "internalErrorTitle": "Internal error", + "kickMessage": "You can contact {{participantDisplayName}} for more details.", + "kickParticipantButton": "Kick", + "kickParticipantDialog": "Are you sure you want to kick this participant?", + "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", + "linkMeeting": "Link meeting", + "linkMeetingTitle": "Link meeting to Salesforce", + "liveStreaming": "Live Streaming", + "liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Not possible while recording is active", + "localUserControls": "Local user controls", + "lockMessage": "Failed to lock the conference.", + "lockRoom": "Add meeting $t(lockRoomPassword)", + "lockTitle": "Lock failed", + "login": "Login", + "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", + "maxUsersLimitReached": "The limit for maximum number of participants has been reached. The conference is full. Please contact the meeting owner or try again later!", + "maxUsersLimitReachedTitle": "Maximum participants limit reached", + "micConstraintFailedError": "Your microphone does not satisfy some of the required constraints.", + "micNotFoundError": "Microphone was not found.", + "micNotSendingData": "Go to your computer's settings to unmute your mic and adjust its level", + "micNotSendingDataTitle": "Your mic is muted by your system settings", + "micPermissionDeniedError": "You have not granted permission to use your microphone. You can still join the conference but others won't hear you. Use the camera button in the address bar to fix this.", + "micTimeoutError": "Could not start audio source. Timeout occurred!", + "micUnknownError": "Cannot use microphone for an unknown reason.", + "moderationAudioLabel": "Allow non-moderators to unmute themselves", + "moderationDesktopLabel": "Allow non-moderators to share their screen", + "moderationVideoLabel": "Allow non-moderators to start their video", + "muteEveryoneDialog": "The participants can unmute themselves at any time.", + "muteEveryoneDialogModerationOn": "The participants can send a request to speak at any time.", + "muteEveryoneElseDialog": "Once muted, you won't be able to unmute them, but they can unmute themselves at any time.", + "muteEveryoneElseTitle": "Mute everyone except {{whom}}?", + "muteEveryoneElsesDesktopDialog": "Once the share is stopped, you won't be able to restart it, but they can do so at any time.", + "muteEveryoneElsesDesktopTitle": "Stop everyone's screen-share except {{whom}}?", + "muteEveryoneElsesVideoDialog": "Once the camera is disabled, you won't be able to turn it back on, but they can turn it back on at any time.", + "muteEveryoneElsesVideoTitle": "Stop everyone's video except {{whom}}?", + "muteEveryoneSelf": "yourself", + "muteEveryoneStartMuted": "Everyone starts muted from now on", + "muteEveryoneTitle": "Mute everyone?", + "muteEveryonesDesktopDialog": "The participants can share their screen at any time.", + "muteEveryonesDesktopDialogModerationOn": "The participants can send a request to share their screen at any time.", + "muteEveryonesDesktopTitle": "Stop everyone's screen share?", + "muteEveryonesVideoDialog": "The participants can turn on their video at any time.", + "muteEveryonesVideoDialogModerationOn": "The participants can send a request to turn on their video at any time.", + "muteEveryonesVideoDialogOk": "Disable", + "muteEveryonesVideoTitle": "Stop everyone's video?", + "muteParticipantBody": "You won't be able to unmute them, but they can unmute themselves at any time.", + "muteParticipantButton": "Mute", + "muteParticipantsDesktopBody": "You won't be able to start their screen-share, but they can do so at any time.", + "muteParticipantsDesktopBodyModerationOn": "You won't be able to start their screen-share and neither will they.", + "muteParticipantsDesktopButton": "Stop screen sharing", + "muteParticipantsDesktopDialog": "Are you sure you want to turn off this participant's screen-share? You won't be able to restart it, but they can do so at any time.", + "muteParticipantsDesktopDialogModerationOn": "Are you sure you want to turn off this participant's screen-share? You won't be able to turn the screen back on and neither will they.", + "muteParticipantsDesktopTitle": "Disable screen-share of this participant?", + "muteParticipantsVideoBody": "You won't be able to turn the camera back on, but they can turn it back on at any time.", + "muteParticipantsVideoBodyModerationOn": "You won't be able to turn the camera back on and neither will they.", + "muteParticipantsVideoButton": "Stop video", + "muteParticipantsVideoDialog": "Are you sure you want to turn off this participant's camera? You won't be able to turn the camera back on, but they can turn it back on at any time.", + "muteParticipantsVideoDialogModerationOn": "Are you sure you want to turn off this participant's camera? You won't be able to turn the camera back on and neither will they.", + "muteParticipantsVideoTitle": "Disable camera of this participant?", + "noDropboxToken": "No valid Dropbox token", + "password": "Password", + "passwordLabel": "The meeting has been locked by a participant. Please enter the $t(lockRoomPassword) to join.", + "passwordNotSupported": "Setting a meeting $t(lockRoomPassword) is not supported.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) not supported", + "passwordRequired": "$t(lockRoomPasswordUppercase) required", + "permissionCameraRequiredError": "Camera permission is required to participate in conferences with video. Please grant it in Settings", + "permissionErrorTitle": "Permission required", + "permissionMicRequiredError": "Microphone permission is required to participate in conferences with audio. Please grant it in Settings", + "readMore": "more", + "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.", + "recordingInProgressTitle": "Recording in progress", + "rejoinNow": "Rejoin now", + "remoteControlAllowedMessage": "{{user}} accepted your remote control request!", + "remoteControlDeniedMessage": "{{user}} rejected your remote control request!", + "remoteControlErrorMessage": "An error occurred while trying to request remote control permissions from {{user}}!", + "remoteControlRequestMessage": "Will you allow {{user}} to remotely control your desktop?", + "remoteControlShareScreenWarning": "Note that if you press \"Allow\" you will share your screen!", + "remoteControlStopMessage": "The remote control session ended!", + "remoteControlTitle": "Remote desktop control", + "remoteUserControls": "Remote user controls of {{username}}", + "removePassword": "Remove $t(lockRoomPassword)", + "removeSharedVideoMsg": "Are you sure you would like to remove your shared video?", + "removeSharedVideoTitle": "Remove shared video", + "renameBreakoutRoomLabel": "Room name", + "renameBreakoutRoomTitle": "Rename breakout room", + "reservationError": "Reservation system error", + "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}", + "retry": "Retry", + "screenSharingAudio": "Share audio", + "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.", + "searchInSalesforce": "Search in Salesforce", + "searchResults": "Search results({{count}})", + "searchResultsDetailsError": "Something went wrong while retrieving owner data.", + "searchResultsError": "Something went wrong while retrieving data.", + "searchResultsNotFound": "No search results found.", + "searchResultsTryAgain": "Try using alternative keywords.", + "sendPrivateMessage": "You recently received a private message. Did you intend to reply to that privately, or you want to send your message to the group?", + "sendPrivateMessageCancel": "Send to the group", + "sendPrivateMessageOk": "Send privately", + "sendPrivateMessageTitle": "Send privately?", + "serviceUnavailable": "Service unavailable", + "sessTerminated": "Call terminated", + "sessTerminatedReason": "The meeting has been terminated", + "sessionRestarted": "Call restarted because of a connection issue.", + "shareAudio": "Continue", + "shareAudioAltText": "to share the desired content, navigate to \"Browser Tab\", select the content, activate the \"share audio\" check mark and then click \"share\" button", + "shareAudioTitle": "How to share audio", + "shareAudioWarningD1": "you need to stop screen sharing before sharing your audio.", + "shareAudioWarningD2": "you need to restart your screen sharing and check the \"share audio\" option.", + "shareAudioWarningH1": "If you want to share just audio:", + "shareAudioWarningTitle": "You need to stop screen sharing before sharing audio", + "shareMediaWarningGenericH2": "If you want to share your screen and audio", + "shareScreenWarningD1": "you need to stop audio sharing before sharing your screen.", + "shareScreenWarningD2": "you need to stop audio sharing, start screen sharing and check the \"share audio\" option.", + "shareScreenWarningH1": "If you want to share just your screen:", + "shareScreenWarningTitle": "You need to stop audio sharing before sharing your screen", + "shareVideoConfirmPlay": "You're about to open an external website. Do you want to continue?", + "shareVideoConfirmPlayTitle": "{{name}} has shared a video with you.", + "shareVideoLinkError": "Oops, this video cannot be played.", + "shareVideoLinkStopped": "The video from {{name}} was stopped.", + "shareVideoTitle": "Share video", + "shareYourScreen": "Share your screen", + "shareYourScreenDisabled": "Screen sharing disabled.", + "sharedVideoDialogError": "Error: Invalid or forbidden URL", + "sharedVideoLinkPlaceholder": "YouTube link or direct video link", + "show": "Show", + "start": "Start ", + "startLiveStreaming": "Start live stream", + "startRecording": "Start recording", + "startRemoteControlErrorMessage": "An error occurred while trying to start the remote control session!", + "stopLiveStreaming": "Stop live stream", + "stopRecording": "Stop recording", + "stopRecordingWarning": "Are you sure you would like to stop the recording?", + "stopStreamingWarning": "Are you sure you would like to stop the live streaming?", + "streamKey": "Live stream key", + "thankYou": "Thank you for using {{appName}}!", + "token": "token", + "tokenAuthFailed": "Sorry, you're not allowed to join this call.", + "tokenAuthFailedReason": { + "audInvalid": "Invalid `aud` value. It should be `jitsi`.", + "contextNotFound": "The `context` object is missing from the payload.", + "expInvalid": "Invalid `exp` value.", + "featureInvalid": "Invalid feature: {{feature}}, most likely not implemented yet.", + "featureValueInvalid": "Invalid value for feature: {{feature}}.", + "featuresNotFound": "The `features` object is missing from the payload.", + "headerNotFound": "Missing the header.", + "issInvalid": "Invalid `iss` value. It should be `chat`.", + "kidMismatch": "Key ID (kid) does not match sub.", + "kidNotFound": "Missing Key ID (kid).", + "nbfFuture": "The `nbf` value is in the future.", + "nbfInvalid": "Invalid `nbf` value.", + "payloadNotFound": "Missing the payload.", + "tokenExpired": "Token is expired." + }, + "tokenAuthFailedTitle": "Authentication failed", + "tokenAuthFailedWithReasons": "Sorry, you're not allowed to join this call. Possible reasons: {{reason}}", + "tokenAuthUnsupported": "Token URL is not supported.", + "transcribing": "Transcribing", + "unlockRoom": "Remove meeting $t(lockRoomPassword)", + "user": "User", + "userIdentifier": "User identifier", + "userPassword": "User password", + "verifyParticipantConfirm": "They match", + "verifyParticipantDismiss": "They do not match", + "verifyParticipantQuestion": "EXPERIMENTAL: Ask participant {{participantName}} if they see the same content, in the same order.", + "verifyParticipantTitle": "User verification", + "videoLink": "Video link", + "viewUpgradeOptions": "View upgrade options", + "viewUpgradeOptionsContent": "To get unlimited access to premium features like recording, transcriptions, RTMP Streaming & more, you'll need to upgrade your plan.", + "viewUpgradeOptionsTitle": "You discovered a premium feature!", + "whiteboardLimitContent": "Sorry, the limit of conccurent whiteboard users has been reached.", + "whiteboardLimitReference": "For more information please visit", + "whiteboardLimitReferenceUrl": "our website", + "whiteboardLimitTitle": "Whiteboard usage restricted", + "yourEntireScreen": "Your entire screen" + }, + "documentSharing": { + "title": "Shared Document" + }, + "e2ee": { + "labelToolTip": "Audio and Video Communication on this call is end-to-end encrypted" + }, + "embedMeeting": { + "title": "Embed this meeting" + }, + "feedback": { + "accessibilityLabel": { + "yourChoice": "Your choice: {{rating}}" + }, + "average": "Average", + "bad": "Bad", + "detailsLabel": "Tell us more about it.", + "good": "Good", + "rateExperience": "Rate your meeting experience", + "star": "Star", + "veryBad": "Very Bad", + "veryGood": "Very Good" + }, + "fileSharing": { + "downloadFailedDescription": "Please try again.", + "downloadFailedTitle": "Download failed", + "downloadFile": "Download", + "downloadStarted": "File download started", + "dragAndDrop": "Drag and drop files here or anywhere on screen", + "fileAlreadyUploaded": "File has already been uploaded to this meeting.", + "fileTooLargeDescription": "Please make sure the file does not exceed {{ maxFileSize }}.", + "fileTooLargeTitle": "The selected file is too large", + "fileUploadProgress": "File upload progress", + "fileUploadedSuccessfully": "File uploaded successfully", + "removeFile": "Remove", + "removeFileSuccess": "File removed successfully", + "uploadFailedDescription": "Please try again.", + "uploadFailedTitle": "Upload failed", + "uploadFile": "Share file" + }, + "filmstrip": { + "accessibilityLabel": { + "heading": "Video thumbnails" + } + }, + "giphy": { + "noResults": "No results found :(", + "search": "Search GIPHY" + }, + "incomingCall": { + "answer": "Answer", + "audioCallTitle": "Incoming call", + "decline": "Dismiss", + "productLabel": "from Jitsi Meet", + "videoCallTitle": "Incoming video call" + }, + "info": { + "accessibilityLabel": "Show info", + "addPassword": "Add $t(lockRoomPassword)", + "cancelPassword": "Cancel $t(lockRoomPassword)", + "conferenceURL": "Link:", + "copyNumber": "Copy number", + "country": "Country", + "dialANumber": "To join your meeting, dial one of these numbers and then enter the pin.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Sorry, dialing in is currently not supported.", + "dialInNumber": "Dial-in:", + "dialInSummaryError": "Error fetching dial-in info now. Please try again later.", + "dialInTollFree": "Toll Free", + "genericError": "Whoops, something went wrong.", + "inviteLiveStream": "To view the live stream of this meeting, click this link: {{url}}", + "invitePhone": "To join by phone instead, tap this: {{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}}", + "inviteSipEndpoint": "To join using the SIP address, enter this: {{sipUri}}", + "inviteTextiOSInviteUrl": "Click the following link to join: {{inviteUrl}}.", + "inviteTextiOSJoinSilent": "If you are dialing-in through a room phone, use this link to join without connecting to audio: {{silentUrl}}.", + "inviteTextiOSPersonal": "{{name}} is inviting you to a meeting.", + "inviteTextiOSPhone": "To join via phone, use this number: {{number}},,{{conferenceID}}#. If you are looking for a different number, this is the full list: {{didUrl}}.", + "inviteURLFirstPartGeneral": "You are invited to join a meeting.", + "inviteURLFirstPartPersonal": "{{name}} is inviting you to a meeting.\n", + "inviteURLSecondPart": "\nJoin the meeting:\n{{url}}\n", + "label": "Dial-in info", + "liveStreamURL": "Live stream:", + "moreNumbers": "More numbers", + "noNumbers": "No dial-in numbers.", + "noPassword": "None", + "noRoom": "No room was specified to dial-in into.", + "noWhiteboard": "Could not load the whiteboard.", + "numbers": "Dial-in Numbers", + "password": "$t(lockRoomPasswordUppercase): ", + "reachedLimit": "You have reached the limit of your plan.", + "sip": "SIP address", + "sipAudioOnly": "SIP audio only address", + "title": "Share", + "tooltip": "Share link and dial-in info for this meeting", + "upgradeOptions": "Please check the upgrade options on", + "whiteboardError": "Error loading the whiteboard. Please try again later." + }, + "inlineDialogFailure": { + "msg": "We stumbled a bit.", + "retry": "Try again", + "support": "Support", + "supportMsg": "If this keeps happening, reach out to" + }, + "inviteDialog": { + "alertText": "Failed to invite some participants.", + "header": "Invite", + "searchCallOnlyPlaceholder": "Enter phone number", + "searchPeopleOnlyPlaceholder": "Search for participants", + "searchPlaceholder": "Participant or phone number", + "send": "Send" + }, + "jitsiHome": "{{logo}} Logo, links to Homepage", + "keyboardShortcuts": { + "focusLocal": "Focus on your video", + "focusRemote": "Focus on another person's video", + "fullScreen": "View or exit full screen", + "giphyMenu": "Toggle GIPHY menu", + "keyboardShortcuts": "Keyboard shortcuts", + "localRecording": "Show or hide local recording controls", + "mute": "Mute or unmute your microphone", + "pushToTalk": "Push to talk", + "raiseHand": "Raise or lower your hand", + "showSpeakerStats": "Show participants stats", + "toggleChat": "Open or close the chat", + "toggleFilmstrip": "Show or hide video thumbnails", + "toggleParticipantsPane": "Show or hide the participants pane", + "toggleScreensharing": "Switch between camera and screen sharing", + "toggleShortcuts": "Show or hide keyboard shortcuts", + "videoMute": "Start or stop your camera" + }, + "largeVideo": { + "screenIsShared": "You are sharing your screen", + "showMeWhatImSharing": "Show me what I'm sharing" + }, + "liveStreaming": { + "busy": "We're working on freeing streaming resources. Please try again in a few minutes.", + "busyTitle": "All streamers are currently busy", + "changeSignIn": "Switch accounts.", + "choose": "Choose a live stream", + "chooseCTA": "Choose a streaming option. You're currently logged in as {{email}}.", + "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.", + "errorLiveStreamNotEnabled": "Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.", + "expandedOff": "The live streaming has stopped", + "expandedOn": "The meeting is currently being live streamed", + "expandedPending": "The live streaming is being started…", + "failedToStart": "Live Streaming failed to start", + "getStreamKeyManually": "We weren't able to fetch any live streams. Try getting your live stream key from YouTube.", + "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", + "onBy": "{{name}} started the live streaming", + "pending": "Starting Live Stream…", + "policyError": "You tried to start a live stream too quickly. Please try again later!", + "serviceName": "Live Streaming service", + "sessionAlreadyActive": "This session is already being recorded or live streamed.", + "signIn": "Sign in with Google", + "signInCTA": "Sign in or enter your live stream key from YouTube.", + "signOut": "Sign out", + "signedInAs": "You are currently signed in as:", + "start": "Start a live stream", + "streamIdHelp": "What's this?", + "title": "Live Stream", + "unavailableTitle": "Live Streaming unavailable", + "youtubeTerms": "YouTube terms of services" + }, + "lobby": { + "backToKnockModeButton": "Ask to join", + "chat": "Chat", + "dialogTitle": "Lobby mode", + "disableDialogContent": "Lobby mode is currently enabled. This feature ensures that unwanted participants can't join your meeting. Do you want to disable it?", + "disableDialogSubmit": "Disable", + "emailField": "Enter your email address", + "enableDialogPasswordField": "Set password (optional)", + "enableDialogSubmit": "Enable", + "enableDialogText": "Lobby mode lets you protect your meeting by only allowing people to enter after a formal approval by a moderator.", + "enterPasswordButton": "Enter meeting password", + "enterPasswordTitle": "Enter password to join meeting", + "errorMissingPassword": "Please enter the meeting password", + "invalidPassword": "Invalid password", + "joinRejectedMessage": "Your join request was rejected by a moderator.", + "joinRejectedTitle": "Join request rejected.", + "joinTitle": "Join Meeting", + "joinWithPasswordMessage": "Trying to join with password, please wait…", + "joiningMessage": "You'll join the meeting as soon as someone accepts your request", + "joiningTitle": "Asking to join meeting…", + "joiningWithPasswordTitle": "Joining with password…", + "knockButton": "Ask to Join", + "knockTitle": "Someone wants to join the meeting", + "knockingParticipantList": "Knocking participant list", + "lobbyChatStartedNotification": "{{moderator}} started a lobby chat with {{attendee}}", + "lobbyChatStartedTitle": "{{moderator}} has started a lobby chat with you.", + "lobbyClosed": "The lobby room has been closed.", + "nameField": "Enter your name", + "notificationLobbyAccessDenied": "{{targetParticipantName}} has been rejected to join by {{originParticipantName}}", + "notificationLobbyAccessGranted": "{{targetParticipantName}} has been allowed to join by {{originParticipantName}}", + "notificationLobbyDisabled": "Lobby has been disabled by {{originParticipantName}}", + "notificationLobbyEnabled": "Lobby has been enabled by {{originParticipantName}}", + "notificationTitle": "Lobby", + "passwordJoinButton": "Join", + "title": "Lobby", + "toggleLabel": "Enable lobby" + }, + "localRecording": { + "clientState": { + "off": "Off", + "on": "On", + "unknown": "Unknown" + }, + "dialogTitle": "Local Recording Controls", + "duration": "Duration", + "durationNA": "N/A", + "encoding": "Encoding", + "label": "LOR", + "labelToolTip": "Local recording is engaged", + "localRecording": "Local Recording", + "me": "Me", + "messages": { + "engaged": "Local recording engaged.", + "finished": "Recording session {{token}} finished. Please send the recorded file to the moderator.", + "finishedModerator": "Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.", + "notModerator": "You are not the moderator. You cannot start or stop local recording." + }, + "moderator": "Moderator", + "no": "No", + "participant": "Participant", + "participantStats": "Participant Stats", + "selectTabTitle": "🎥 Please select this tab for recording", + "sessionToken": "Session Token", + "start": "Start Recording", + "stop": "Stop Recording", + "stopping": "Stopping Recording", + "wait": "Please wait while we save your recording", + "yes": "Yes" + }, + "lockRoomPassword": "password", + "lockRoomPasswordUppercase": "Password", + "lonelyMeetingExperience": { + "button": "Invite others", + "youAreAlone": "You are the only one in the meeting" + }, + "me": "me", + "notify": { + "OldElectronAPPTitle": "Security vulnerability!", + "allowAll": "Allow All", + "allowAudio": "Allow Audio", + "allowDesktop": "Allow screen sharing", + "allowVideo": "Allow Video", + "allowedUnmute": "You can unmute your microphone, start your camera or share your screen.", + "audioUnmuteBlockedDescription": "Mic unmute operation has been temporarily blocked because of system limits.", + "audioUnmuteBlockedTitle": "Mic unmute blocked!", + "chatMessages": "Chat messages", + "connectedOneMember": "{{name}} joined the meeting", + "connectedThreePlusMembers": "{{name}} and many others joined the meeting", + "connectedTwoMembers": "{{first}} and {{second}} joined the meeting", + "connectionFailed": "Connection failed. Please try again later!", + "dataChannelClosed": "Video quality may be impaired", + "dataChannelClosedDescription": "The bridge channel is down and thus video quality may be limited to its lowest setting.", + "dataChannelClosedDescriptionWithAudio": "The bridge channel is down and thus disruptions to audio and video may occur.", + "dataChannelClosedWithAudio": "Audio and video quality may be impaired", + "desktopMutedRemotelyTitle": "Your screen sharing has been stopped by {{participantDisplayName}}", + "disabledIframe": "Embedding is only meant for demo purposes, so this call will disconnect in {{timeout}} minutes.", + "disabledIframeSecondaryNative": "Embedding {{domain}} is only meant for demo purposes, so this call will disconnect in {{timeout}} minutes.", + "disabledIframeSecondaryWeb": "Embedding {{domain}} is only meant for demo purposes, so this call will disconnect in {{timeout}} minutes. Please use Jitsi as a Service for production embedding!", + "disconnected": "disconnected", + "displayNotifications": "Display notifications for", + "dontRemindMe": "Do not remind me", + "focus": "Conference focus", + "focusFail": "{{component}} not available - retry in {{ms}} sec", + "gifsMenu": "GIPHY", + "groupTitle": "Notifications", + "hostAskedUnmute": "The moderator would like you to participate.", + "invalidTenant": "Invalid tenant", + "invalidTenantHyphenDescription": "The tenant you are using is invalid (starts or ends with '-').", + "invalidTenantLengthDescription": "The tenant you are using is too long.", + "invitedOneMember": "{{name}} has been invited", + "invitedThreePlusMembers": "{{name}} and {{count}} others have been invited", + "invitedTwoMembers": "{{first}} and {{second}} have been invited", + "joinMeeting": "Join", + "kickParticipant": "{{kicked}} was kicked by {{kicker}}", + "leftOneMember": "{{name}} left the meeting", + "leftThreePlusMembers": "{{name}} and many others left the meeting", + "leftTwoMembers": "{{first}} and {{second}} left the meeting", + "linkToSalesforce": "Link to Salesforce", + "linkToSalesforceDescription": "You can link the meeting summary to a Salesforce object.", + "linkToSalesforceError": "Failed to link meeting to Salesforce", + "linkToSalesforceKey": "Link this meeting", + "linkToSalesforceProgress": "Linking meeting to Salesforce…", + "linkToSalesforceSuccess": "The meeting was linked to Salesforce", + "localRecordingStarted": "{{name}} has started a local recording.", + "localRecordingStopped": "{{name}} has stopped a local recording.", + "me": "Me", + "moderationInEffectCSDescription": "Please raise hand if you want to share your screen.", + "moderationInEffectCSTitle": "Screen sharing is blocked by the moderator", + "moderationInEffectDescription": "Please raise hand if you want to speak.", + "moderationInEffectTitle": "Your microphone is muted by the moderator", + "moderationInEffectVideoDescription": "Please raise your hand if you want to start your camera.", + "moderationInEffectVideoTitle": "Your camera is blocked by the moderator", + "moderationRequestFromModerator": "The host would like you to unmute", + "moderationRequestFromParticipant": "Wants to speak", + "moderationStartedTitle": "Moderation started", + "moderationStoppedTitle": "Moderation stopped", + "moderationToggleDescription": "by {{participantDisplayName}}", + "moderator": "You're now a moderator", + "muted": "You have started the conversation muted.", + "mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.", + "mutedRemotelyTitle": "You've been muted by {{participantDisplayName}}", + "mutedTitle": "You're muted!", + "newDeviceAction": "Use", + "newDeviceAudioTitle": "New audio device detected", + "newDeviceCameraTitle": "New camera detected", + "nextToSpeak": "You are the next in line to speak", + "noiseSuppressionDesktopAudioDescription": "Extra noise suppression can't be enabled while sharing desktop audio, please disable it and try again.", + "noiseSuppressionFailedTitle": "Failed to start extra noise suppression", + "noiseSuppressionStereoDescription": "Extra noise suppression is not currently supported with stereo audio.", + "oldElectronClientDescription1": "You appear to be using an old version of the Jitsi Meet client which has known security vulnerabilities. Please make sure you update to our ", + "oldElectronClientDescription2": "latest build", + "oldElectronClientDescription3": " now!", + "participantWantsToJoin": "Wants to join the meeting", + "participantsWantToJoin": "Want to join the meeting", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant", + "raiseHandAction": "Raise hand", + "raisedHand": "Would like to participate.", + "raisedHands": "{{participantName}} and {{raisedHands}} more people", + "reactionSounds": "Disable sounds", + "reactionSoundsForAll": "Disable sounds for all", + "screenShareNoAudio": "Share audio box was not checked in the window selection screen.", + "screenShareNoAudioTitle": "Couldn't share system audio!", + "screenSharingAudioOnlyDescription": "Please note that by sharing your screen you're affecting the \"Best performance\" mode and you will use more bandwidth.", + "screenSharingAudioOnlyTitle": "\"Best performance\" mode", + "selfViewTitle": "You can always un-hide the self-view from settings", + "somebody": "Somebody", + "startSilentDescription": "Rejoin the meeting to enable audio", + "startSilentTitle": "You joined with no audio output!", + "suboptimalBrowserWarning": "We are afraid your meeting experience isn't going to be that great here. We are looking for ways to improve this, but until then please try using one of the fully supported browsers.", + "suboptimalExperienceTitle": "Browser Warning", + "suggestRecordingAction": "Start", + "suggestRecordingDescription": "Would you like to start a recording?", + "suggestRecordingTitle": "Record this meeting", + "unmute": "Unmute Audio", + "unmuteScreen": "Start screen sharing", + "unmuteVideo": "Unmute Video", + "videoMutedRemotelyDescription": "You can always turn it on again.", + "videoMutedRemotelyTitle": "Your video has been turned off by {{participantDisplayName}}", + "videoUnmuteBlockedDescription": "Camera unmute and desktop sharing operation have been temporarily blocked because of system limits.", + "videoUnmuteBlockedTitle": "Camera unmute and desktop sharing blocked!", + "viewLobby": "View lobby", + "viewParticipants": "View participants", + "viewVisitors": "View viewers", + "waitingParticipants": "{{waitingParticipants}} people", + "waitingVisitors": "Viewers waiting in queue: {{waitingVisitors}}", + "waitingVisitorsTitle": "The meeting is not live yet!", + "whiteboardLimitDescription": "Please save your progress, as the user limit will soon be reached and the whiteboard will close.", + "whiteboardLimitTitle": "Whiteboard usage" + }, + "participantsPane": { + "actions": { + "admit": "Admit", + "admitAll": "Admit all", + "allow": "Allow non-moderators to:", + "allowDesktop": "Allow screen sharing", + "allowVideo": "Allow video", + "askDesktop": "Ask to share screen", + "askUnmute": "Ask to unmute", + "audioModeration": "Unmute themselves", + "blockEveryoneMicCamera": "Block everyone's mic and camera", + "breakoutRooms": "Breakout rooms", + "desktopModeration": "Start screen sharing", + "goLive": "Go live", + "invite": "Invite someone", + "lowerAllHands": "Lower all hands", + "lowerHand": "Lower the hand", + "moreModerationActions": "More moderation options", + "moreModerationControls": "More moderation controls", + "moreParticipantOptions": "More participant options", + "mute": "Mute", + "muteAll": "Mute all", + "muteEveryoneElse": "Mute everyone else", + "reject": "Reject", + "stopDesktop": "Stop screen sharing", + "stopEveryonesDesktop": "Stop everyone's screen-share", + "stopEveryonesVideo": "Stop everyone's video", + "stopVideo": "Stop video", + "unblockEveryoneMicCamera": "Unblock everyone's mic and camera", + "videoModeration": "Start their video" + }, + "close": "Close", + "headings": { + "lobby": "Lobby ({{count}})", + "participantsList": "Meeting participants ({{count}})", + "viewerRequests": "Viewers requests {{count}}", + "visitorInQueue": " (waiting {{count}})", + "visitorRequests": " (requests {{count}})", + "visitors": "Viewers {{count}}", + "visitorsList": "Viewers ({{count}})", + "waitingLobby": "Waiting in lobby ({{count}})" + }, + "search": "Search participants", + "searchDescription": "Start typing to filter participants", + "title": "Participants" + }, + "passwordDigitsOnly": "Up to {{number}} digits", + "passwordSetRemotely": "Set by another participant", + "pinParticipant": "{{participantName}} - Pin", + "pinnedParticipant": "The participant is pinned", + "polls": { + "answer": { + "edit": "Edit", + "send": "Send", + "skip": "Skip", + "submit": "Submit" + }, + "by": "By {{ name }}", + "closeButton": "Close poll", + "create": { + "addOption": "Add option", + "answerPlaceholder": "Option {{index}}", + "cancel": "Cancel", + "create": "Create a poll", + "pollOption": "Poll option {{index}}", + "pollQuestion": "Poll Question", + "questionPlaceholder": "Ask a question", + "removeOption": "Remove option", + "save": "Save", + "send": "Send" + }, + "errors": { + "notUniqueOption": "Options must be unique" + }, + "notification": { + "description": "Open polls tab to vote", + "title": "A new poll was added to this meeting" + }, + "results": { + "changeVote": "Change vote", + "empty": "There are no polls in the meeting yet.", + "hideDetailedResults": "Hide details", + "showDetailedResults": "Show details", + "vote": "Vote" + } + }, + "poweredby": "powered by", + "prejoin": { + "audioAndVideoError": "Audio and video error:", + "audioDeviceProblem": "There is a problem with your audio device", + "audioOnlyError": "Audio error:", + "audioTrackError": "Could not create audio track.", + "callMe": "Call me", + "callMeAtNumber": "Call me at this number:", + "calling": "Calling", + "configuringDevices": "Configuring devices…", + "connectedWithAudioQ": "You're connected with audio?", + "connection": { + "failed": "Connection test failed!", + "good": "Your internet connection looks good!", + "nonOptimal": "Your internet connection is not optimal", + "poor": "You have a poor internet connection", + "running": "Running connection test…" + }, + "connectionDetails": { + "audioClipping": "We expect your audio to be clipped.", + "audioHighQuality": "We expect your audio to have excellent quality.", + "audioLowNoVideo": "We expect your audio quality to be low and no video.", + "goodQuality": "Awesome! Your media quality is going to be great.", + "noMediaConnectivity": "We could not find a way to establish media connectivity for this test. This is typically caused by a firewall or NAT.", + "noVideo": "We expect that your video will be terrible.", + "testFailed": "The connection test encountered unexpected issues, but this might not impact your experience.", + "undetectable": "If you still can not make calls in browser, we recommend that you make sure your speakers, microphone and camera are properly set up, that you have granted your browser rights to use your microphone and camera, and that your browser version is up-to-date. If you still have trouble calling, you should contact the web application developer.", + "veryPoorConnection": "We expect your call quality to be really terrible.", + "videoFreezing": "We expect your video to freeze, turn black, and be pixelated.", + "videoHighQuality": "We expect your video to have good quality.", + "videoLowQuality": "We expect your video to have low quality in terms of frame rate and resolution.", + "videoTearing": "We expect your video to be pixelated or have visual artefacts." + }, + "copyAndShare": "Copy & share meeting link", + "dialInMeeting": "Dial into the meeting", + "dialInPin": "Dial into the meeting and enter PIN code:", + "dialing": "Dialing", + "doNotShow": "Don't show this screen again", + "errorDialOut": "Could not dial out", + "errorDialOutDisconnected": "Could not dial out. Disconnected", + "errorDialOutFailed": "Could not dial out. Call failed", + "errorDialOutStatus": "Error getting dial out status", + "errorMissingName": "Please enter your name to join the meeting", + "errorNoPermissions": "You need to enable microphone and camera access", + "errorStatusCode": "Error dialing out, status code: {{status}}", + "errorValidation": "Number validation failed", + "iWantToDialIn": "I want to dial in", + "initiated": "Call initiated", + "joinAudioByPhone": "Join with phone audio", + "joinMeeting": "Join meeting", + "joinMeetingInLowBandwidthMode": "Join in low bandwidth mode", + "joinWithoutAudio": "Join without audio", + "keyboardShortcuts": "Enable Keyboard shortcuts", + "linkCopied": "Link copied to clipboard", + "lookGood": "Your devices are working properly", + "or": "or", + "premeeting": "Pre meeting", + "proceedAnyway": "Proceed anyway", + "recordingWarning": "Other participants may be recording this call", + "screenSharingError": "Screen sharing error:", + "startWithPhone": "Start with phone audio", + "unsafeRoomConsent": "I understand the risks, I want to join the meeting", + "videoOnlyError": "Video error:", + "videoTrackError": "Could not create video track.", + "viewAllNumbers": "view all numbers" + }, + "presenceStatus": { + "busy": "Busy", + "calling": "Calling…", + "connected": "Connected", + "connecting": "Connecting…", + "connecting2": "Connecting*…", + "disconnected": "Disconnected", + "expired": "Expired", + "ignored": "Ignored", + "initializingCall": "Initializing Call…", + "invited": "Invited", + "rejected": "Rejected", + "ringing": "Ringing…" + }, + "profile": { + "avatar": "avatar", + "setDisplayNameLabel": "Name", + "setEmailInput": "Enter email", + "setEmailLabel": "Gravatar email", + "title": "Profile" + }, + "raisedHand": "Would like to speak", + "raisedHandsLabel": "Number of raised hands", + "record": { + "already": { + "linked": "The meeting is already linked to this Salesforce object." + }, + "type": { + "account": "Account", + "contact": "Contact", + "lead": "Lead", + "opportunity": "Opportunity", + "owner": "Owner" + } + }, + "recording": { + "authDropboxText": "Upload to Dropbox", + "availableSpace": "Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)", + "beta": "BETA", + "busy": "We're working on freeing recording resources. Please try again in a few minutes.", + "busyTitle": "All recorders are currently busy", + "copyLink": "Copy Link", + "error": "Recording failed. Please try again.", + "errorFetchingLink": "Error fetching recording link.", + "expandedOff": "Recording has stopped", + "expandedOn": "The meeting is currently being recorded", + "expandedPending": "Recording is being started…", + "failedToStart": "Recording failed to start", + "fileSharingdescription": "Share the recording link with the meeting participants", + "highlight": "Highlight", + "highlightMoment": "Highlight moment", + "highlightMomentDisabled": "You can highlight moments when the recording starts", + "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", + "localRecordingStartWarning": "Please make sure you stop the recording before exiting the meeting in order to save it.", + "localRecordingStartWarningTitle": "Stop the recording to save it", + "localRecordingVideoStop": "Stopping your video will also stop the local recording. Are you sure you want to continue?", + "localRecordingVideoWarning": "To record your video you must have it on when starting the recording", + "localRecordingWarning": "Make sure you select the current tab in order to use the right video and audio.", + "loggedIn": "Logged in as {{userName}}", + "noMicPermission": "Microphone track could not be created. Please grant permission to use the microphone.", + "noStreams": "No audio or video stream detected.", + "off": "Recording stopped", + "offBy": "{{name}} stopped the recording", + "on": "Recording started", + "onBy": "{{name}} started the recording", + "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!", + "recordAudioAndVideo": "Record audio and video", + "recordTranscription": "Record transcription", + "saveLocalRecording": "Save recording file locally (Beta)", + "serviceDescription": "Your recording will be saved by the recording service", + "serviceDescriptionCloud": "Cloud recording", + "serviceDescriptionCloudInfo": "Recorded meetings are automatically cleared 24h after their recording time.", + "serviceName": "Recording service", + "sessionAlreadyActive": "This session is already being recorded or live streamed.", + "showAdvancedOptions": "Advanced options", + "signIn": "Sign in", + "signOut": "Sign out", + "surfaceError": "Please select the current tab.", + "title": "Recording", + "unavailable": "Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.", + "unavailableTitle": "Recording unavailable", + "uploadToCloud": "Upload to the cloud" + }, + "screenshareDisplayName": "{{name}}'s screen", + "sectionList": { + "pullToRefresh": "Pull to refresh" + }, + "security": { + "about": "You can add a $t(lockRoomPassword) to your meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.", + "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.", + "insecureRoomNameWarningNative": "The room name is unsafe. Unwanted participants may join your meeting. {{recommendAction}} Learn more about securing your meeting ", + "insecureRoomNameWarningWeb": "The room name is unsafe. Unwanted participants may join your meeting. {{recommendAction}} Learn more about securing your meeting here.", + "title": "Security Options", + "unsafeRoomActions": { + "meeting": "Consider securing your meeting using the security button.", + "prejoin": "Consider using a more unique meeting name.", + "welcome": "Consider using a more unique meeting name, or pick one of the suggestions." + } + }, + "settings": { + "audio": "Audio", + "buttonLabel": "Settings", + "calendar": { + "about": "The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.", + "disconnect": "Disconnect", + "microsoftSignIn": "Sign in with Microsoft", + "signedIn": "Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.", + "title": "Calendar" + }, + "chatWithPermissions": "Chat requires permission", + "desktopShareFramerate": "Desktop sharing frame rate", + "desktopShareHighFpsWarning": "A higher frame rate for desktop sharing might affect your bandwidth. You need to restart the screen share for the new settings to take effect.", + "desktopShareWarning": "You need to restart the screen share for the new settings to take effect.", + "devices": "Devices", + "followMe": "Everyone follows me", + "followMeRecorder": "Recorder follows me", + "framesPerSecond": "frames-per-second", + "incomingMessage": "Incoming message", + "language": "Language", + "loggedIn": "Logged in as {{name}}", + "maxStageParticipants": "Maximum number of participants who can be pinned to the main stage", + "microphones": "Microphones", + "moderator": "Moderator", + "moderatorOptions": "Moderator options", + "more": "General", + "name": "Name", + "noDevice": "None", + "notifications": "Notifications", + "participantJoined": "Participant Joined", + "participantKnocking": "Participant entered lobby", + "participantLeft": "Participant Left", + "playSounds": "Play sound on", + "reactions": "Meeting reactions", + "sameAsSystem": "Same as system ({{label}})", + "selectAudioOutput": "Audio output", + "selectCamera": "Camera", + "selectMic": "Microphone", + "selfView": "Self view", + "shortcuts": "Shortcuts", + "showSubtitlesOnStage": "Show subtitles on stage", + "speakers": "Speakers", + "startAudioMuted": "Everyone starts muted", + "startReactionsMuted": "Mute reaction sounds for everyone", + "startVideoMuted": "Everyone starts hidden", + "talkWhileMuted": "Talk while muted", + "title": "Settings", + "video": "Video" + }, + "settingsView": { + "advanced": "Advanced", + "alertCancel": "Cancel", + "alertOk": "OK", + "alertTitle": "Warning", + "alertURLText": "The entered server URL is invalid", + "apply": "Apply", + "buildInfoSection": "Build Information", + "conferenceSection": "Conference", + "disableCallIntegration": "Disable native call integration", + "disableCrashReporting": "Disable crash reporting", + "disableCrashReportingWarning": "Are you sure you want to disable crash reporting? The setting will be applied after you restart the app.", + "disableP2P": "Disable Peer-To-Peer mode", + "displayName": "Display name", + "displayNamePlaceholderText": "Eg: John Doe", + "email": "Email", + "emailPlaceholderText": "email@example.com", + "gavatarMessage": "If your email is associated with a Gravatar account, we will use it to display your profile picture.", + "goTo": "Go to", + "header": "Settings", + "help": "Help", + "links": "Links", + "privacy": "Privacy", + "profileSection": "Profile", + "sdkVersion": "SDK version", + "serverURL": "Server URL", + "showAdvanced": "Show advanced settings", + "startCarModeInLowBandwidthMode": "Start car mode in low bandwidth mode", + "startWithAudioMuted": "Start with audio muted", + "startWithVideoMuted": "Start with video muted", + "terms": "Terms", + "version": "App version" + }, + "share": { + "dialInfoText": "\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}", + "mainText": "Click the following link to join the meeting:\n{{roomUrl}}" + }, + "speaker": "Speaker", + "speakerStats": { + "angry": "Angry", + "disgusted": "Disgusted", + "displayEmotions": "Display emotions", + "fearful": "Fearful", + "happy": "Happy", + "hours": "{{count}}h", + "labelTooltip": "Number of participants: {{count}}", + "minutes": "{{count}}m", + "name": "Name", + "neutral": "Neutral", + "sad": "Sad", + "search": "Search", + "searchDescription": "Start typing to filter participants", + "searchHint": "Search participants", + "seconds": "{{count}}s", + "speakerStats": "Participants Stats", + "speakerTime": "Speaker Time", + "surprised": "Surprised" + }, + "startupoverlay": { + "genericTitle": "The meeting needs to use your microphone and camera.", + "policyText": " ", + "title": "{{app}} needs to use your microphone and camera." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Rejoin", + "text": "Press the Rejoin button to reconnect.", + "title": "Your video call was interrupted because this computer went to sleep." + }, + "termsView": { + "title": "Terms" + }, + "toggleTopPanelLabel": "Toggle top panel", + "toolbar": { + "Settings": "Settings", + "accessibilityLabel": { + "Settings": "Open settings", + "audioOnly": "Toggle audio only", + "audioRoute": "Select the sound device", + "boo": "Boo", + "breakoutRooms": "Breakout rooms", + "callQuality": "Manage video quality", + "carmode": "Car Mode", + "cc": "Toggle subtitles", + "chat": "Open / Close chat", + "clap": "Clap", + "closeChat": "Close chat", + "closeMoreActions": "Close more actions menu", + "closeParticipantsPane": "Close participants pane", + "closedCaptions": "Closed captions", + "collapse": "Collapse", + "document": "Toggle shared document", + "documentClose": "Close shared document", + "documentOpen": "Open shared document", + "download": "Download our apps", + "embedMeeting": "Embed meeting", + "endConference": "End meeting for all", + "enterFullScreen": "View full screen", + "enterTileView": "Enter tile view", + "exitFullScreen": "Exit full screen", + "exitTileView": "Exit tile view", + "expand": "Expand", + "feedback": "Leave feedback", + "fullScreen": "Toggle full screen", + "giphy": "Toggle GIPHY menu", + "grantModerator": "Grant Moderator Rights", + "hangup": "Leave the meeting", + "heading": "Toolbar", + "help": "Help", + "hideWhiteboard": "Hide whiteboard", + "invite": "Invite people", + "kick": "Kick participant", + "laugh": "Laugh", + "leaveConference": "Leave meeting", + "like": "Thumbs Up", + "linkToSalesforce": "Link to Salesforce", + "lobbyButton": "Enable/disable lobby mode", + "localRecording": "Toggle local recording controls", + "lockRoom": "Toggle meeting password", + "love": "Heart", + "lowerHand": "Lower your hand", + "moreActions": "More actions", + "moreActionsMenu": "More actions menu", + "moreOptions": "Show more options", + "mute": "Mute microphone", + "muteEveryone": "Mute everyone", + "muteEveryoneElse": "Mute everyone else", + "muteEveryoneElsesVideoStream": "Stop everyone else's video", + "muteEveryonesVideoStream": "Stop everyone's video", + "muteGUMPending": "Connecting your microphone", + "noiseSuppression": "Extra noise suppression (BETA)", + "openChat": "Open chat", + "participants": "Open participants panel. {{participantsCount}} participants", + "pip": "Toggle Picture-in-Picture mode", + "privateMessage": "Send private message", + "profile": "Edit your profile", + "raiseHand": "Raise your hand", + "react": "Message reactions", + "reactions": "Reactions", + "reactionsMenu": "Reactions menu", + "recording": "Toggle recording", + "remoteMute": "Mute participant", + "remoteVideoMute": "Disable camera of participant", + "security": "Security options", + "selectBackground": "Select Background", + "selfView": "Toggle self view", + "shareRoom": "Invite someone", + "shareYourScreen": "Start sharing your screen", + "shareaudio": "Share audio", + "sharedvideo": "Share video", + "shortcuts": "Toggle shortcuts", + "show": "Show on stage", + "showWhiteboard": "Show whiteboard", + "silence": "Silence", + "speakerStats": "Toggle participants statistics", + "stopScreenSharing": "Stop sharing your screen", + "stopSharedVideo": "Stop video", + "surprised": "Surprised", + "tileView": "Toggle tile view", + "toggleCamera": "Toggle camera", + "toggleFilmstrip": "Toggle filmstrip", + "unmute": "Unmute microphone", + "videoblur": "Toggle video blur", + "videomute": "Stop camera", + "videomuteGUMPending": "Connecting your camera", + "videounmute": "Start camera" + }, + "addPeople": "Add people to your call", + "audioOnlyOff": "Disable low bandwidth mode", + "audioOnlyOn": "Enable low bandwidth mode", + "audioRoute": "Select the sound device", + "audioSettings": "Audio settings", + "authenticate": "Authenticate", + "boo": "Boo", + "callQuality": "Manage video quality", + "chat": "Open / Close chat", + "clap": "Clap", + "closeChat": "Close chat", + "closeParticipantsPane": "Close participants pane", + "closeReactionsMenu": "Close reactions menu", + "closedCaptions": "Closed captions", + "disableNoiseSuppression": "Disable extra noise suppression (BETA)", + "disableReactionSounds": "You can disable reaction sounds for this meeting", + "documentClose": "Close shared document", + "documentOpen": "Open shared document", + "download": "Download our apps", + "e2ee": "End-to-End Encryption", + "embedMeeting": "Embed meeting", + "enableNoiseSuppression": "Enable extra noise suppression (BETA)", + "endConference": "End meeting for all", + "enterFullScreen": "View full screen", + "enterTileView": "Enter tile view", + "exitFullScreen": "Exit full screen", + "exitTileView": "Exit tile view", + "feedback": "Leave feedback", + "giphy": "Toggle GIPHY menu", + "hangup": "Leave the meeting", + "help": "Help", + "hideWhiteboard": "Hide whiteboard", + "invite": "Invite people", + "joinBreakoutRoom": "Join breakout room", + "laugh": "Laugh", + "leaveBreakoutRoom": "Leave breakout room", + "leaveConference": "Leave meeting", + "like": "Thumbs Up", + "linkToSalesforce": "Link to Salesforce", + "lobbyButtonDisable": "Disable lobby mode", + "lobbyButtonEnable": "Enable lobby mode", + "login": "Log-in", + "logout": "Log-out", + "love": "Heart", + "lowerYourHand": "Lower your hand", + "moreActions": "More actions", + "moreOptions": "More options", + "mute": "Mute microphone", + "muteEveryone": "Mute everyone", + "muteEveryonesVideo": "Disable everyone's camera", + "muteGUMPending": "Connecting your microphone", + "noAudioSignalDesc": "If you did not purposely mute it from system settings or hardware, consider switching the device.", + "noAudioSignalDescSuggestion": "If you did not purposely mute it from system settings or hardware, consider switching to the suggested device.", + "noAudioSignalDialInDesc": "You can also dial-in using:", + "noAudioSignalDialInLinkDesc": "Dial-in numbers", + "noAudioSignalTitle": "There is no input coming from your mic!", + "noiseSuppression": "Extra noise suppression (BETA)", + "noisyAudioInputDesc": "It sounds like your microphone is making noise, please consider muting or changing the device.", + "noisyAudioInputTitle": "Your microphone appears to be noisy!", + "openChat": "Open chat", + "openReactionsMenu": "Open reactions menu", + "participants": "Participants", + "pip": "Enter Picture-in-Picture mode", + "privateMessage": "Send private message", + "profile": "Edit your profile", + "raiseHand": "Raise your hand", + "raiseYourHand": "Raise your hand", + "reactionBoo": "Send boo reaction", + "reactionClap": "Send clap reaction", + "reactionHeart": "Send heart reaction", + "reactionLaugh": "Send laugh reaction", + "reactionLike": "Send thumbs up reaction", + "reactionSilence": "Send silence reaction", + "reactionSurprised": "Send surprised reaction", + "reactions": "Reactions", + "security": "Security options", + "selectBackground": "Select background", + "shareRoom": "Invite someone", + "shareaudio": "Share audio", + "sharedvideo": "Share video", + "shortcuts": "View shortcuts", + "showWhiteboard": "Show whiteboard", + "silence": "Silence", + "speakerStats": "Participants stats", + "startScreenSharing": "Start screen sharing", + "startSubtitles": "Subtitles • {{language}}", + "stopAudioSharing": "Stop audio sharing", + "stopScreenSharing": "Stop screen sharing", + "stopSharedVideo": "Stop video", + "stopSubtitles": "Stop subtitles", + "surprised": "Surprised", + "talkWhileMutedPopup": "Trying to speak? You are muted.", + "tileViewToggle": "Toggle tile view", + "toggleCamera": "Toggle camera", + "unmute": "Unmute microphone", + "videoSettings": "Video settings", + "videomute": "Stop camera", + "videomuteGUMPending": "Connecting your camera", + "videounmute": "Start camera" + }, + "transcribing": { + "ccButtonTooltip": "Start / Stop subtitles", + "expandedLabel": "Transcribing is currently on", + "failed": "Transcribing failed", + "labelTooltip": "This meeting is being transcribed.", + "labelTooltipExtra": "In addition, a transcript will be available later.", + "openClosedCaptions": "Open closed captions", + "original": "Original", + "sourceLanguageDesc": "Currently the meeting language is set to {{sourceLanguage}}.
You can change it from ", + "sourceLanguageHere": "here", + "start": "Start showing subtitles", + "stop": "Stop showing subtitles", + "subtitles": "Subtitles", + "subtitlesOff": "Off", + "tr": "TR", + "translateTo": "Translate to" + }, + "unpinParticipant": "{{participantName}} - Unpin", + "userMedia": { + "grantPermissions": "Please grant permissions to use your camera and microphone." + }, + "videoSIPGW": { + "busy": "We're working on freeing resources. Please try again in a few minutes.", + "busyTitle": "The Room service is currently busy", + "errorAlreadyInvited": "{{displayName}} already invited", + "errorInvite": "Conference not established yet. Please try again later.", + "errorInviteFailed": "We're working on resolving the issue. Please try again later.", + "errorInviteFailedTitle": "Inviting {{displayName}} failed", + "errorInviteTitle": "Error inviting room", + "pending": "{{displayName}} has been invited" + }, + "videoStatus": { + "adjustFor": "Adjust for:", + "audioOnly": "AUD", + "audioOnlyExpanded": "You are in low bandwidth mode. In this mode you will receive only audio and screen sharing.", + "bestPerformance": "Best performance", + "callQuality": "Video Quality (0 for best performance, 3 for highest quality)", + "hd": "HD", + "hdTooltip": "Viewing high definition video", + "highDefinition": "High definition", + "highestQuality": "Highest quality", + "labelTooiltipNoVideo": "No video", + "labelTooltipAudioOnly": "Low bandwidth mode enabled", + "ld": "LD", + "ldTooltip": "Viewing low definition video", + "lowDefinition": "Low definition", + "performanceSettings": "Performance settings", + "recording": "This meeting is being recorded.", + "sd": "SD", + "sdTooltip": "Viewing standard definition video", + "standardDefinition": "Standard definition", + "streaming": "Streaming in progress" + }, + "videothumbnail": { + "connectionInfo": "Connection Info", + "demote": "Move to viewer", + "domute": "Mute", + "domuteDesktop": "Stop screen-sharing", + "domuteDesktopOfOthers": "Stop screen-sharing for everyone else", + "domuteOthers": "Mute everyone else", + "domuteVideo": "Disable camera", + "domuteVideoOfOthers": "Disable camera of everyone else", + "flip": "Flip", + "grantModerator": "Grant Moderator Rights", + "hideSelfView": "Hide self view", + "kick": "Kick out", + "mirrorVideo": "Mirror my video", + "moderator": "Moderator", + "mute": "Participant is muted", + "muted": "Muted", + "pinToStage": "Pin to stage", + "remoteControl": "Start / Stop remote control", + "screenSharing": "Participant is sharing their screen", + "show": "Show on stage", + "showSelfView": "Show self view", + "unpinFromStage": "Unpin", + "verify": "Verify participant", + "videoMuted": "Camera disabled", + "videomute": "Participant has stopped the camera" + }, + "virtualBackground": { + "accessibilityLabel": { + "currentBackground": "Current background: {{background}}", + "selectBackground": "Select a background" + }, + "addBackground": "Add background", + "apply": "Apply", + "backgroundEffectError": "Failed to apply background effect.", + "blur": "Blur", + "deleteImage": "Delete image", + "desktopShare": "Desktop share", + "desktopShareError": "Could not create desktop share", + "image1": "Beach", + "image2": "White neutral wall", + "image3": "White empty room", + "image4": "Black floor lamp", + "image5": "Mountain", + "image6": "Forest ", + "image7": "Sunrise", + "none": "None", + "pleaseWait": "Please wait…", + "removeBackground": "Remove background", + "slightBlur": "Half Blur", + "title": "Virtual backgrounds", + "uploadedImage": "Uploaded image {{index}}", + "webAssemblyWarning": "WebAssembly not supported", + "webAssemblyWarningDescription": "WebAssembly disabled or not supported by this browser" + }, + "visitors": { + "chatIndicator": "(viewer)", + "joinMeeting": { + "description": "You're currently a viewer in this conference.", + "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." + }, + "labelTooltip": "Number of viewers: {{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.", + "title": "You are a viewer in the meeting" + }, + "waitingMessage": "You'll join the meeting as soon as it is live!" + }, + "volumeSlider": "Volume slider", + "welcomepage": { + "accessibilityLabel": { + "join": "Tap to join", + "roomname": "Enter room name" + }, + "addMeetingName": "Add Meeting name", + "appDescription": "Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.", + "audioVideoSwitch": { + "audio": "Voice", + "video": "Video" + }, + "calendar": "Calendar", + "connectCalendarButton": "Connect your calendar", + "connectCalendarText": "Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.", + "enterRoomTitle": "Start a new meeting", + "getHelp": "Get help", + "go": "GO", + "goSmall": "GO", + "headerSubtitle": "Secure and high quality meetings", + "headerTitle": "Jitsi Meet", + "info": "Dial-in info", + "jitsiOnMobile": "Jitsi on mobile – download our apps and start a meeting from anywhere", + "join": "CREATE / JOIN", + "logo": { + "calendar": "Calendar logo", + "desktopPreviewThumbnail": "Desktop preview thumbnail", + "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", + "moderatedMessage": "Or book a meeting URL in advance where you are the only moderator.", + "privacy": "Privacy", + "recentList": "Recent", + "recentListDelete": "Delete entry", + "recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.", + "recentMeetings": "Your recent meetings", + "reducedUIText": "Welcome to {{app}}!", + "roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.", + "roomname": "Enter room name", + "roomnameHint": "Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.", + "sendFeedback": "Send feedback", + "settings": "Settings", + "startMeeting": "Start meeting", + "terms": "Terms", + "title": "Secure, fully featured, and completely free video conferencing", + "upcomingMeetings": "Your upcoming meetings" + }, + "whiteboard": { + "accessibilityLabel": { + "heading": "Whiteboard" + }, + "screenTitle": "Whiteboard" + } +} diff --git a/lang/readme.md b/lang/readme.md new file mode 100644 index 0000000..78ccedb --- /dev/null +++ b/lang/readme.md @@ -0,0 +1,55 @@ +# Jitsi Meet Translation + +Jitsi Meet uses [i18next](http://i18next.com) library for translation. +i18next uses separate json files for each language. + + +## Translating Jitsi Meet + +The translation of Jitsi Meet is handled editing manually the language files. + +You can use the `update-translation.js` script as follows to help you with that: + +```sh +cd lang +node update-translation.js main-es.json +``` + +That will cause the `main-es.json` file to be updated with all the missing keys set as empty +strings. All that's missing is for you to fill in the blanks! + +## Development + +If you want to add new functionality for Jitsi Meet and you have texts that need to be translated you must add key and value in main.json file in English for each translatable text. +Than you can use the key to get the translated text for the current language. + +You can add translatable text in the HTML: + + +* **via attribute on HTML element** - add **data-i18n** attribute with value the key of the translatable text. + + + ```html + OK + ``` + + + You can also use APP.translation.generateTranslationHTML(key, options) to get this HTML code as Javascript string. + + + ```js + APP.translation.generateTranslationHTML("dialog.OK") // returns OK + ``` + + The value in the options parameter will be added in data-i18n-options attribute of the element. + + **Note:** If you dynamically add HTML elements don't forget to call APP.translation.translateElement(jquery_selector) to translate the text initially. + + + ```js + APP.translation.translateString("dialog.OK") // returns the value for the key of the current language file. "OK" for example. + ``` + +For the available values of ``options`` parameter for the above methods of translation module see [i18next documentation](http://i18next.com/pages/doc_features). + +**Note:** It is useful to add attributes in the HTML for persistent HTML elements because when the language is changed the text will be automatically translated. diff --git a/lang/translation-languages.json b/lang/translation-languages.json new file mode 100644 index 0000000..e8e505e --- /dev/null +++ b/lang/translation-languages.json @@ -0,0 +1,112 @@ +{ + "af": "Afrikaans", + "am": "Amharic", + "ar": "Arabic", + "az": "Azerbaijani", + "be": "Belarusian", + "bg": "Bulgarian", + "bn": "Bengali", + "bs": "Bosnian", + "ca": "Catalan", + "ceb": "Cebuano", + "co": "Corsican", + "cs": "Czech", + "cy": "Welsh", + "da": "Danish", + "de": "German", + "el": "Greek", + "en": "English", + "eo": "Esperanto", + "es": "Spanish", + "et": "Estonian", + "eu": "Basque", + "fa": "Persian", + "fi": "Finnish", + "fr": "French", + "fy": "Frisian", + "ga": "Irish", + "gd": "Scots Gaelic", + "gl": "Galician", + "gu": "Gujarati", + "ha": "Hausa", + "haw": "Hawaiian", + "he": "Hebrew", + "hi": "Hindi", + "hmn": "Hmong", + "hr": "Croatian", + "hsb": "Upper Sorbian", + "ht": "Haitian Creole", + "hu": "Hungarian", + "hy": "Armenian", + "id": "Indonesian", + "ig": "Igbo", + "is": "Icelandic", + "it": "Italian", + "ja": "Japanese", + "jv": "Javanese", + "ka": "Georgian", + "kk": "Kazakh", + "km": "Khmer", + "kn": "Kannada", + "ko": "Korean", + "ku": "Kurdish", + "ky": "Kyrgyz", + "la": "Latin", + "lb": "Luxembourgish", + "lo": "Lao", + "lt": "Lithuanian", + "lv": "Latvian", + "mg": "Malagasy", + "mi": "Maori", + "mk": "Macedonian", + "ml": "Malayalam", + "mn": "Mongolian", + "mr": "Marathi", + "ms": "Malay", + "mt": "Maltese", + "my": "Myanmar (Burmese)", + "ne": "Nepali", + "nl": "Dutch", + "no": "Norwegian", + "ny": "Nyanja (Chichewa)", + "or": "Odia (Oriya)", + "pa": "Punjabi", + "pl": "Polish", + "ps": "Pashto", + "pt": "Portuguese (Portugal, Brazil)", + "ro": "Romanian", + "ru": "Russian", + "rw": "Kinyarwanda", + "sd": "Sindhi", + "si": "Sinhala (Sinhalese)", + "sk": "Slovak", + "sl": "Slovenian", + "sm": "Samoan", + "sn": "Shona", + "so": "Somali", + "sq": "Albanian", + "sr": "Serbian", + "st": "Sesotho", + "su": "Sundanese", + "sv": "Swedish", + "sw": "Swahili", + "ta": "Tamil", + "te": "Telugu", + "tg": "Tajik", + "th": "Thai", + "tk": "Turkmen", + "tl": "Tagalog (Filipino)", + "tr": "Turkish", + "tt": "Tatar", + "ug": "Uyghur", + "uk": "Ukrainian", + "ur": "Urdu", + "uz": "Uzbek", + "vi": "Vietnamese", + "xh": "Xhosa", + "yi": "Yiddish", + "yo": "Yoruba", + "zh-CN": "Chinese (Simplified)", + "zh-TW": "Chinese (Traditional)", + "zu": "Zulu" +} diff --git a/lang/update-translation.js b/lang/update-translation.js new file mode 100644 index 0000000..1e5ba5b --- /dev/null +++ b/lang/update-translation.js @@ -0,0 +1,38 @@ +/* eslint-disable */ + +const fs = require('fs'); +const process = require('process'); +const traverse = require('traverse'); +const mainLang = require('./main.json'); + +const [ targetLangFile ] = process.argv.slice(-1); + +if (!targetLangFile) { + console.log('No target language file specified'); + process.exit(1); +} + +const targetLang = require(`./${targetLangFile}`); + +const paths = traverse(mainLang).reduce(function(acc, item) { + if (this.isLeaf) { + acc.push(this.path); + } + + return acc; +}, []); + +const result = {}; + +for (const path of paths) { + if (traverse(targetLang).has(path)) { + traverse(result).set(path, traverse(targetLang).get(path)); + } else { + //console.log(`${path.join('.')} is missing`); + traverse(result).set(path, ''); + } +} + +const data = JSON.stringify(result, undefined, 4); + +fs.writeFileSync(`./${targetLangFile}`, data + "\n"); diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..da2cecf --- /dev/null +++ b/manifest.json @@ -0,0 +1,36 @@ +{ + "android_package_name": "org.jitsi.meet", + "prefer_related_applications": true, + "related_applications": [ + { + "id": "org.jitsi.meet", + "platform": "chromeos_play" + } + ], + "short_name": "Jitsi Meet", + "name": "Jitsi Meet", + "icons": [ + { + "src": "static/pwa/icons/icon192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "static/pwa/icons/icon512.png", + "type": "image/png", + "sizes": "512x512" + }, + { + "src": "static/pwa/icons/iconMask.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "start_url": "/", + "background_color": "#17A0DB", + "display": "standalone", + "scope": "/", + "theme_color": "#17A0DB" + } + \ No newline at end of file diff --git a/metadata/en-US/full_description.txt b/metadata/en-US/full_description.txt new file mode 100644 index 0000000..1564a36 --- /dev/null +++ b/metadata/en-US/full_description.txt @@ -0,0 +1,10 @@ +Jitsi Meet lets you stay in touch with all your teams, be they family, friends, or colleagues. Instant video conferences, efficiently adapting to your scale. + +* Unlimited users: There are no artificial restrictions on the number of users or conference participants. Server power and bandwidth are the only limiting factors. +* No account needed. +* Lock-protected rooms: Control the access to your conferences with a password. +* Encrypted by default. +* High quality: Audio and video are delivered with the clarity and richness of Opus and VP8. +* Web browser ready: No downloads are required of your friends to join the conversation. Jitsi Meet works directly within their browsers as well. Simply share your conference URL with others to get started. +* 100% open source: Powered by awesome communities from all over the world. And your friends at 8x8. +* Invite by pretty URLs: You can meet at the easy to remember https://MySite.com/OurConf of your choice instead of joining the hard to remember rooms with seemingly random sequences of numbers and letters in their names. \ No newline at end of file diff --git a/metadata/en-US/images/icon.png b/metadata/en-US/images/icon.png new file mode 100644 index 0000000..d2330ec Binary files /dev/null and b/metadata/en-US/images/icon.png differ diff --git a/metadata/en-US/images/phoneScreenshots/01.png b/metadata/en-US/images/phoneScreenshots/01.png new file mode 100644 index 0000000..1ecde9e Binary files /dev/null and b/metadata/en-US/images/phoneScreenshots/01.png differ diff --git a/metadata/en-US/images/phoneScreenshots/02.png b/metadata/en-US/images/phoneScreenshots/02.png new file mode 100644 index 0000000..7e6a217 Binary files /dev/null and b/metadata/en-US/images/phoneScreenshots/02.png differ diff --git a/metadata/en-US/images/phoneScreenshots/03.png b/metadata/en-US/images/phoneScreenshots/03.png new file mode 100644 index 0000000..b09b51d Binary files /dev/null and b/metadata/en-US/images/phoneScreenshots/03.png differ diff --git a/metadata/en-US/images/sevenInchScreenshots/01.png b/metadata/en-US/images/sevenInchScreenshots/01.png new file mode 100644 index 0000000..35c7ce1 Binary files /dev/null and b/metadata/en-US/images/sevenInchScreenshots/01.png differ diff --git a/metadata/en-US/images/sevenInchScreenshots/02.png b/metadata/en-US/images/sevenInchScreenshots/02.png new file mode 100644 index 0000000..49caa7a Binary files /dev/null and b/metadata/en-US/images/sevenInchScreenshots/02.png differ diff --git a/metadata/en-US/short_description.txt b/metadata/en-US/short_description.txt new file mode 100644 index 0000000..ce9850f --- /dev/null +++ b/metadata/en-US/short_description.txt @@ -0,0 +1 @@ +Secure, Simple and Scalable Video Conferences with state-of-the-art video quality \ No newline at end of file diff --git a/metadata/ru/full_description.txt b/metadata/ru/full_description.txt new file mode 100644 index 0000000..33a2da0 --- /dev/null +++ b/metadata/ru/full_description.txt @@ -0,0 +1,10 @@ +Jitsi Meet позволяет вам оставаться на связи со всеми вашими командами, будь то семья, друзья или коллеги. Мгновенные видеоконференции, эффективно адаптируемые к вашим нуждам. + +* Неограниченные пользователи: нет искусственных ограничений на количество пользователей или участников конференции. Мощность сервера и пропускная способность являются единственными ограничивающими факторами. +* Учетная запись не требуется. +* Закрытые комнаты: управляйте доступом к вашим конференциям с помощью пароля. +* Зашифровано по умолчанию. +* Высокое качество: аудио и видео доставляются с чёткостью и возможностями кодеков Opus и VP8. +* Работает в веб браузере: вашим друзьям не требуются загрузка чтобы присоединиться к разговору. Jitsi Meet работает непосредственно в их браузерах. Чтобы начать просто поделитесь своей ссылкой на конференцию с другими. +* 100% открытый исходный код: поддерживается удивительными сообществами со всего мира. И вашими друзьями из 8x8. +* Приглашение по красивому адресу ссылки: вы можете встретиться с легко запоминаемым https://MySite.com/OurConf по своему выбору вместо случайных цифр. \ No newline at end of file diff --git a/metadata/ru/short_description.txt b/metadata/ru/short_description.txt new file mode 100644 index 0000000..323322a --- /dev/null +++ b/metadata/ru/short_description.txt @@ -0,0 +1 @@ +Защищённые, простые и масштабируемые видеоконференции с качественным видео \ No newline at end of file diff --git a/metro.config.js b/metro.config.js new file mode 100644 index 0000000..52936f3 --- /dev/null +++ b/metro.config.js @@ -0,0 +1,29 @@ +/* eslint-disable */ + +const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); + +/** + * Metro configuration + * https://reactnative.dev/docs/metro + * + * @type {import('metro-config').MetroConfig} + */ + +const { + resolver: { + sourceExts, + assetExts + } +} = getDefaultConfig(); + +const config = { + transformer: { + babelTransformerPath: require.resolve('react-native-svg-transformer') + }, + resolver: { + assetExts: assetExts.filter(ext => ext !== 'svg'), + sourceExts: [ ...sourceExts, 'svg' ] + } +}; + +module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/modules/API/.eslintrc.js b/modules/API/.eslintrc.js new file mode 100644 index 0000000..28bcd9f --- /dev/null +++ b/modules/API/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + 'extends': '../../react/.eslintrc.js' +}; diff --git a/modules/API/API.js b/modules/API/API.js new file mode 100755 index 0000000..30dd00f --- /dev/null +++ b/modules/API/API.js @@ -0,0 +1,2352 @@ +/* global APP */ +import Logger from '@jitsi/logger'; + +import { createApiEvent } from '../../react/features/analytics/AnalyticsEvents'; +import { sendAnalytics } from '../../react/features/analytics/functions'; +import { + approveParticipantAudio, + approveParticipantVideo, + rejectParticipantAudio, + rejectParticipantVideo, + requestDisableAudioModeration, + requestDisableVideoModeration, + requestEnableAudioModeration, + requestEnableVideoModeration +} from '../../react/features/av-moderation/actions'; +import { isEnabledFromState, isForceMuted } from '../../react/features/av-moderation/functions'; +import { setAudioOnly } from '../../react/features/base/audio-only/actions'; +import { + endConference, + sendTones, + setAssumedBandwidthBps, + setFollowMe, + setFollowMeRecorder, + setLocalSubject, + setPassword, + setSubject +} from '../../react/features/base/conference/actions'; +import { getCurrentConference, isP2pActive } from '../../react/features/base/conference/functions'; +import { overwriteConfig } from '../../react/features/base/config/actions'; +import { getWhitelistedJSON } from '../../react/features/base/config/functions.any'; +import { toggleDialog } from '../../react/features/base/dialog/actions'; +import { isSupportedBrowser } from '../../react/features/base/environment/environment'; +import { isMobileBrowser } from '../../react/features/base/environment/utils'; +import { parseJWTFromURLParams } from '../../react/features/base/jwt/functions'; +import JitsiMeetJS, { JitsiRecordingConstants } from '../../react/features/base/lib-jitsi-meet'; +import { MEDIA_TYPE, VIDEO_TYPE } from '../../react/features/base/media/constants'; +import { isVideoMutedByUser } from '../../react/features/base/media/functions'; +import { + grantModerator, + kickParticipant, + overwriteParticipantsNames, + pinParticipant, + raiseHand +} from '../../react/features/base/participants/actions'; +import { LOCAL_PARTICIPANT_DEFAULT_ID } from '../../react/features/base/participants/constants'; +import { + getLocalParticipant, + getNormalizedDisplayName, + getParticipantById, + getScreenshareParticipantIds, + getVirtualScreenshareParticipantByOwnerId, + hasRaisedHand, + isLocalParticipantModerator, + isParticipantModerator +} from '../../react/features/base/participants/functions'; +import { updateSettings } from '../../react/features/base/settings/actions'; +import { getDisplayName } from '../../react/features/base/settings/functions.web'; +import { setCameraFacingMode } from '../../react/features/base/tracks/actions.web'; +import { CAMERA_FACING_MODE_MESSAGE } from '../../react/features/base/tracks/constants'; +import { + getLocalVideoTrack, + isLocalTrackMuted +} from '../../react/features/base/tracks/functions'; +import { + autoAssignToBreakoutRooms, + closeBreakoutRoom, + createBreakoutRoom, + moveToRoom, + removeBreakoutRoom, + sendParticipantToRoom +} from '../../react/features/breakout-rooms/actions'; +import { getBreakoutRooms, getRoomsInfo } from '../../react/features/breakout-rooms/functions'; +import { + sendMessage, + setPrivateMessageRecipient, + toggleChat +} from '../../react/features/chat/actions'; +import { openChat } from '../../react/features/chat/actions.web'; +import { showDesktopPicker } from '../../react/features/desktop-picker/actions'; +import { + processExternalDeviceRequest +} from '../../react/features/device-selection/functions'; +import { appendSuffix } from '../../react/features/display-name/functions'; +import { isEnabled as isDropboxEnabled } from '../../react/features/dropbox/functions'; +import { setMediaEncryptionKey, toggleE2EE } from '../../react/features/e2ee/actions'; +import { + addStageParticipant, + resizeFilmStrip, + setFilmstripVisible, + setVolume, + togglePinStageParticipant +} from '../../react/features/filmstrip/actions.web'; +import { getPinnedActiveParticipants, isStageFilmstripAvailable } from '../../react/features/filmstrip/functions.web'; +import { invite } from '../../react/features/invite/actions.any'; +import { + selectParticipantInLargeVideo +} from '../../react/features/large-video/actions.any'; +import { + captureLargeVideoScreenshot, + resizeLargeVideo +} from '../../react/features/large-video/actions.web'; +import { answerKnockingParticipant, toggleLobbyMode } from '../../react/features/lobby/actions'; +import { setNoiseSuppressionEnabled } from '../../react/features/noise-suppression/actions'; +import { hideNotification, showNotification } from '../../react/features/notifications/actions'; +import { NOTIFICATION_TIMEOUT_TYPE, NOTIFICATION_TYPE } from '../../react/features/notifications/constants'; +import { + close as closeParticipantsPane, + open as openParticipantsPane +} from '../../react/features/participants-pane/actions'; +import { getParticipantsPaneOpen } from '../../react/features/participants-pane/functions'; +import { startLocalVideoRecording, stopLocalVideoRecording } from '../../react/features/recording/actions.any'; +import { grantRecordingConsent, grantRecordingConsentAndUnmute } from '../../react/features/recording/actions.web'; +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'; +import { + openCameraCaptureDialog, + toggleScreenshotCaptureSummary +} from '../../react/features/screenshot-capture/actions'; +import { isScreenshotCaptureEnabled } from '../../react/features/screenshot-capture/functions'; +import SettingsDialog from '../../react/features/settings/components/web/SettingsDialog'; +import { SETTINGS_TABS } from '../../react/features/settings/constants'; +import { playSharedVideo, stopSharedVideo } from '../../react/features/shared-video/actions'; +import { extractYoutubeIdOrURL } from '../../react/features/shared-video/functions'; +import { setRequestingSubtitles, toggleRequestingSubtitles } from '../../react/features/subtitles/actions'; +import { isAudioMuteButtonDisabled } from '../../react/features/toolbox/functions'; +import { setTileView, toggleTileView } from '../../react/features/video-layout/actions.any'; +import { muteAllParticipants } from '../../react/features/video-menu/actions'; +import { setVideoQuality } from '../../react/features/video-quality/actions'; +import { toggleBackgroundEffect, toggleBlurredBackgroundEffect } from '../../react/features/virtual-background/actions'; +import { VIRTUAL_BACKGROUND_TYPE } from '../../react/features/virtual-background/constants'; +import { toggleWhiteboard } from '../../react/features/whiteboard/actions.web'; +import { getJitsiMeetTransport } from '../transport'; + +import { + API_ID, + ENDPOINT_TEXT_MESSAGE_NAME +} from './constants'; + +const logger = Logger.getLogger(__filename); + +/** + * List of the available commands. + */ +let commands = {}; + +/** + * The transport instance used for communication with external apps. + * + * @type {Transport} + */ +const transport = getJitsiMeetTransport(); + +/** + * The current audio availability. + * + * @type {boolean} + */ +let audioAvailable = true; + +/** + * The current video availability. + * + * @type {boolean} + */ +let videoAvailable = true; + +/** + * Initializes supported commands. + * + * @returns {void} + */ +function initCommands() { + commands = { + 'add-breakout-room': name => { + if (!isLocalParticipantModerator(APP.store.getState())) { + logger.error('Missing moderator rights to add breakout rooms'); + + return; + } + APP.store.dispatch(createBreakoutRoom(name)); + }, + 'answer-knocking-participant': (id, approved) => { + APP.store.dispatch(answerKnockingParticipant(id, approved)); + }, + 'approve-video': participantId => { + if (!isLocalParticipantModerator(APP.store.getState())) { + return; + } + + APP.store.dispatch(approveParticipantVideo(participantId)); + }, + 'ask-to-unmute': participantId => { + if (!isLocalParticipantModerator(APP.store.getState())) { + return; + } + + APP.store.dispatch(approveParticipantAudio(participantId)); + }, + 'auto-assign-to-breakout-rooms': () => { + if (!isLocalParticipantModerator(APP.store.getState())) { + logger.error('Missing moderator rights to auto-assign participants to breakout rooms'); + + return; + } + APP.store.dispatch(autoAssignToBreakoutRooms()); + }, + 'grant-moderator': participantId => { + if (!isLocalParticipantModerator(APP.store.getState())) { + logger.error('Missing moderator rights to grant moderator right to another participant'); + + return; + } + APP.store.dispatch(grantModerator(participantId)); + }, + 'grant-recording-consent': unmute => { + unmute ? APP.store.dispatch(grantRecordingConsentAndUnmute()) + : APP.store.dispatch(grantRecordingConsent()); + }, + 'display-name': displayName => { + sendAnalytics(createApiEvent('display.name.changed')); + APP.store.dispatch(updateSettings({ displayName: getNormalizedDisplayName(displayName) })); + }, + 'local-subject': localSubject => { + sendAnalytics(createApiEvent('local.subject.changed')); + APP.store.dispatch(setLocalSubject(localSubject)); + }, + 'mute-everyone': mediaType => { + const muteMediaType = mediaType ? mediaType : MEDIA_TYPE.AUDIO; + + sendAnalytics(createApiEvent('muted-everyone')); + const localParticipant = getLocalParticipant(APP.store.getState()); + const exclude = []; + + if (localParticipant && isParticipantModerator(localParticipant)) { + exclude.push(localParticipant.id); + } + + APP.store.dispatch(muteAllParticipants(exclude, muteMediaType)); + }, + 'toggle-lobby': isLobbyEnabled => { + APP.store.dispatch(toggleLobbyMode(isLobbyEnabled)); + }, + 'password': password => { + const { conference, passwordRequired } + = APP.store.getState()['features/base/conference']; + + if (passwordRequired) { + sendAnalytics(createApiEvent('submit.password')); + + APP.store.dispatch(setPassword( + passwordRequired, + passwordRequired.join, + password + )); + } else { + sendAnalytics(createApiEvent('password.changed')); + + APP.store.dispatch(setPassword( + conference, + conference.lock, + password + )); + } + }, + 'pin-participant': (id, videoType) => { + const state = APP.store.getState(); + + // if id not provided, unpin everybody. + if (!id) { + if (isStageFilmstripAvailable(state)) { + const pinnedParticipants = getPinnedActiveParticipants(state); + + pinnedParticipants?.forEach(p => { + APP.store.dispatch(togglePinStageParticipant(p.participantId)); + }); + } else { + APP.store.dispatch(pinParticipant()); + } + + return; + } + + const participant = videoType === VIDEO_TYPE.DESKTOP + ? getVirtualScreenshareParticipantByOwnerId(state, id) : getParticipantById(state, id); + + if (!participant) { + logger.warn('Trying to pin a non-existing participant with pin-participant command.'); + + return; + } + + sendAnalytics(createApiEvent('participant.pinned')); + + const participantId = participant.id; + + if (isStageFilmstripAvailable(state)) { + APP.store.dispatch(addStageParticipant(participantId, true)); + } else { + APP.store.dispatch(pinParticipant(participantId)); + } + }, + 'proxy-connection-event': event => { + APP.conference.onProxyConnectionEvent(event); + }, + 'reject-participant': (participantId, mediaType) => { + if (!isLocalParticipantModerator(APP.store.getState())) { + return; + } + + const reject = mediaType === MEDIA_TYPE.VIDEO ? rejectParticipantVideo : rejectParticipantAudio; + + APP.store.dispatch(reject(participantId)); + }, + 'remove-breakout-room': breakoutRoomJid => { + if (!isLocalParticipantModerator(APP.store.getState())) { + logger.error('Missing moderator rights to remove breakout rooms'); + + return; + } + APP.store.dispatch(removeBreakoutRoom(breakoutRoomJid)); + }, + 'resize-large-video': (width, height) => { + sendAnalytics(createApiEvent('largevideo.resized')); + APP.store.dispatch(resizeLargeVideo(width, height)); + }, + 'send-tones': (options = {}) => { + const { duration, tones, pause } = options; + + APP.store.dispatch(sendTones(tones, duration, pause)); + }, + 'set-assumed-bandwidth-bps': value => { + logger.debug('Set assumed bandwidth bps command received', value); + + if (typeof value !== 'number' || isNaN(value)) { + logger.error('Assumed bandwidth bps must be a number.'); + + return; + } + + APP.store.dispatch(setAssumedBandwidthBps(value)); + }, + 'set-blurred-background': blurType => { + const tracks = APP.store.getState()['features/base/tracks']; + const videoTrack = getLocalVideoTrack(tracks)?.jitsiTrack; + const muted = tracks ? isLocalTrackMuted(tracks, MEDIA_TYPE.VIDEO) : isVideoMutedByUser(APP.store); + + APP.store.dispatch(toggleBlurredBackgroundEffect(videoTrack, blurType, muted)); + }, + 'set-follow-me': (value, recorderOnly) => { + + if (value) { + sendAnalytics(createApiEvent('follow.me.set', { + recorderOnly + })); + } else { + sendAnalytics(createApiEvent('follow.me.unset', { + recorderOnly + })); + } + + APP.store.dispatch(recorderOnly ? setFollowMeRecorder(value) : setFollowMe(value)); + }, + 'set-large-video-participant': (participantId, videoType) => { + const { getState, dispatch } = APP.store; + + if (!participantId) { + sendAnalytics(createApiEvent('largevideo.participant.set')); + dispatch(selectParticipantInLargeVideo()); + + return; + } + + const state = getState(); + const participant = videoType === VIDEO_TYPE.DESKTOP + ? getVirtualScreenshareParticipantByOwnerId(state, participantId) + : getParticipantById(state, participantId); + + if (!participant) { + logger.warn('Trying to select a non-existing participant with set-large-video-participant command.'); + + return; + } + + dispatch(setTileView(false)); + sendAnalytics(createApiEvent('largevideo.participant.set')); + dispatch(selectParticipantInLargeVideo(participant.id)); + }, + 'set-participant-volume': (participantId, volume) => { + APP.store.dispatch(setVolume(participantId, volume)); + }, + 'subject': subject => { + sendAnalytics(createApiEvent('subject.changed')); + APP.store.dispatch(setSubject(subject)); + }, + 'submit-feedback': feedback => { + sendAnalytics(createApiEvent('submit.feedback')); + APP.conference.submitFeedback(feedback.score, feedback.message); + }, + 'toggle-audio': () => { + sendAnalytics(createApiEvent('toggle-audio')); + APP.conference.toggleAudioMuted(false /* no UI */); + }, + 'toggle-video': () => { + sendAnalytics(createApiEvent('toggle-video')); + APP.conference.toggleVideoMuted(false /* no UI */, true /* ensure track */); + }, + 'toggle-film-strip': () => { + sendAnalytics(createApiEvent('film.strip.toggled')); + const { visible } = APP.store.getState()['features/filmstrip']; + + APP.store.dispatch(setFilmstripVisible(!visible)); + }, + + /* + * @param {Object} options - Additional details of how to perform + * the action. + * @param {number} options.width - width value for film strip. + */ + 'resize-film-strip': (options = {}) => { + sendAnalytics(createApiEvent('film.strip.resize')); + APP.store.dispatch(resizeFilmStrip(options.width)); + }, + 'toggle-camera': facingMode => { + APP.store.dispatch(setCameraFacingMode(facingMode)); + }, + 'toggle-camera-mirror': () => { + const state = APP.store.getState(); + const { localFlipX: currentFlipX } = state['features/base/settings']; + + APP.store.dispatch(updateSettings({ localFlipX: !currentFlipX })); + }, + 'toggle-chat': () => { + sendAnalytics(createApiEvent('chat.toggled')); + APP.store.dispatch(toggleChat()); + }, + 'toggle-moderation': (enabled, mediaType) => { + const state = APP.store.getState(); + + if (!isLocalParticipantModerator(state)) { + return; + } + + const enable = mediaType === MEDIA_TYPE.VIDEO + ? requestEnableVideoModeration : requestEnableAudioModeration; + const disable = mediaType === MEDIA_TYPE.VIDEO + ? requestDisableVideoModeration : requestDisableAudioModeration; + + if (enabled) { + APP.store.dispatch(enable()); + } else { + APP.store.dispatch(disable()); + } + }, + 'toggle-participants-pane': enabled => { + const toggleParticipantsPane = enabled + ? openParticipantsPane : closeParticipantsPane; + + APP.store.dispatch(toggleParticipantsPane()); + }, + 'toggle-raise-hand': () => { + const localParticipant = getLocalParticipant(APP.store.getState()); + + if (!localParticipant) { + return; + } + const raisedHand = hasRaisedHand(localParticipant); + + sendAnalytics(createApiEvent('raise-hand.toggled')); + APP.store.dispatch(raiseHand(!raisedHand)); + }, + 'toggle-share-audio': () => { + sendAnalytics(createApiEvent('audio.screen.sharing.toggled')); + if (isScreenAudioSupported()) { + APP.store.dispatch(startAudioScreenShareFlow()); + + return; + } + + logger.error('Audio screen sharing is not supported by the current platform!'); + }, + + /** + * Callback to invoke when the "toggle-share-screen" command is received. + * + * @param {Object} options - Additional details of how to perform + * the action. Note this parameter is undocumented and experimental. + * @param {boolean} options.enable - Whether trying to enable screen + * sharing or to turn it off. + * @returns {void} + */ + 'toggle-share-screen': (options = {}) => { + sendAnalytics(createApiEvent('screen.sharing.toggled')); + toggleScreenSharing(options.enable); + }, + 'set-noise-suppression-enabled': (options = {}) => { + APP.store.dispatch(setNoiseSuppressionEnabled(options.enabled)); + }, + 'toggle-subtitles': () => { + APP.store.dispatch(toggleRequestingSubtitles()); + }, + 'set-subtitles': (enabled, displaySubtitles, language) => { + APP.store.dispatch(setRequestingSubtitles( + enabled, displaySubtitles, language ? `translation-languages:${language}` : null)); + }, + 'toggle-tile-view': () => { + sendAnalytics(createApiEvent('tile-view.toggled')); + + APP.store.dispatch(toggleTileView()); + }, + 'set-tile-view': enabled => { + APP.store.dispatch(setTileView(enabled)); + }, + 'video-hangup': (showFeedbackDialog = true) => { + sendAnalytics(createApiEvent('video.hangup')); + APP.conference.hangup(showFeedbackDialog); + }, + 'email': email => { + sendAnalytics(createApiEvent('email.changed')); + APP.conference.changeLocalEmail(email); + }, + 'avatar-url': avatarUrl => { // @deprecated + console.warn('Using command avatarUrl is deprecated. Use context.user.avatar in the jwt.'); + + sendAnalytics(createApiEvent('avatar.url.changed')); + APP.conference.changeLocalAvatarUrl(avatarUrl); + }, + 'send-chat-message': (message, to, ignorePrivacy = false) => { + if (to) { + const participant = getParticipantById(APP.store.getState(), to); + + if (participant) { + APP.store.dispatch(setPrivateMessageRecipient(participant)); + } else { + logger.error(`Participant with id ${to} not found!`); + + return; + } + } else { + APP.store.dispatch(setPrivateMessageRecipient()); + } + + APP.store.dispatch(sendMessage(message, ignorePrivacy)); + }, + 'send-endpoint-text-message': (to, text) => { + try { + APP.conference.sendEndpointMessage(to, { + name: ENDPOINT_TEXT_MESSAGE_NAME, + text + }); + } catch (err) { + logger.error('Failed sending endpoint text message', err); + } + }, + 'send-camera-facing-mode-message': (to, facingMode) => { + if (!to) { + logger.warn('Participant id not set'); + + return; + } + + APP.conference.sendEndpointMessage(to, { + name: CAMERA_FACING_MODE_MESSAGE, + facingMode + }); + }, + 'overwrite-names': participantList => { + APP.store.dispatch(overwriteParticipantsNames(participantList)); + }, + 'toggle-e2ee': enabled => { + APP.store.dispatch(toggleE2EE(enabled)); + }, + 'set-media-encryption-key': keyInfo => { + APP.store.dispatch(setMediaEncryptionKey(JSON.parse(keyInfo))); + }, + 'set-video-quality': frameHeight => { + sendAnalytics(createApiEvent('set.video.quality')); + APP.store.dispatch(setVideoQuality(frameHeight)); + }, + 'set-audio-only': enable => { + sendAnalytics(createApiEvent('set.audio.only')); + APP.store.dispatch(setAudioOnly(enable)); + }, + 'start-share-video': url => { + sendAnalytics(createApiEvent('share.video.start')); + const id = extractYoutubeIdOrURL(url); + + if (id) { + APP.store.dispatch(playSharedVideo(id)); + } + }, + 'stop-share-video': () => { + sendAnalytics(createApiEvent('share.video.stop')); + APP.store.dispatch(stopSharedVideo()); + }, + + /** + * Shows a custom in-meeting notification. + * + * @param { string } arg.title - Notification title. + * @param { string } arg.description - Notification description. + * @param { string } arg.uid - Optional unique identifier for the notification. + * @param { string } arg.type - Notification type, either `error`, `normal`, `success` or `warning`. + * Defaults to "normal" if not provided. + * @param { string } arg.timeout - Timeout type, either `short`, `medium`, `long` or `sticky`. + * Defaults to "short" if not provided. + * @param { Array } arg.customActions - An array of custom actions to be displayed in the notification. + * Each object should have a `label` and a `uuid` property. It should be used along a listener + * for the `customNotificationActionTriggered` event to handle the custom action. + * @returns {void} + */ + 'show-notification': ({ + customActions = [], + title, + description, + uid, + type = NOTIFICATION_TYPE.NORMAL, + timeout = NOTIFICATION_TIMEOUT_TYPE.SHORT + }) => { + const validTypes = Object.values(NOTIFICATION_TYPE); + const validTimeouts = Object.values(NOTIFICATION_TIMEOUT_TYPE); + + if (!validTypes.includes(type)) { + logger.error(`Invalid notification type "${type}". Expecting one of ${validTypes}`); + + return; + } + + if (!validTimeouts.includes(timeout)) { + logger.error(`Invalid notification timeout "${timeout}". Expecting one of ${validTimeouts}`); + + return; + } + + const handlers = customActions.map(({ uuid }) => () => { + APP.API.notifyCustomNotificationActionTriggered(uuid); + }); + + const keys = customActions.map(({ label }) => label); + + APP.store.dispatch(showNotification({ + customActionHandler: handlers, + customActionNameKey: keys, + uid, + title, + description, + appearance: type + }, timeout)); + }, + + /** + * Removes a notification given a unique identifier. + * + * @param { string } uid - Unique identifier for the notification to be removed. + * @returns {void} + */ + 'hide-notification': uid => { + APP.store.dispatch(hideNotification(uid)); + }, + + /** + * Starts a file recording or streaming session depending on the passed on params. + * For RTMP streams, `rtmpStreamKey` must be passed on. `rtmpBroadcastID` is optional. + * For youtube streams, `youtubeStreamKey` must be passed on. `youtubeBroadcastID` is optional. + * For dropbox recording, recording `mode` should be `file` and a dropbox oauth2 token must be provided. + * For file recording, recording `mode` should be `file` and optionally `shouldShare` could be passed on. + * For local recording, recording `mode` should be `local` and optionally `onlySelf` could be passed on. + * No other params should be passed. + * + * @param { string } arg.mode - Recording mode, either `local`, `file` or `stream`. + * @param { string } arg.dropboxToken - Dropbox oauth2 token. + * @param { boolean } arg.onlySelf - Whether to only record the local streams. + * @param { string } arg.rtmpStreamKey - The RTMP stream key. + * @param { string } arg.rtmpBroadcastID - The RTMP broadcast ID. + * @param { boolean } arg.shouldShare - Whether the recording should be shared with the participants or not. + * Only applies to certain jitsi meet deploys. + * @param { string } arg.youtubeStreamKey - The youtube stream key. + * @param { string } arg.youtubeBroadcastID - The youtube broadcast ID. + * @param { Object } arg.extraMetadata - Any extra metadata params for file recording. + * @param { boolean } arg.transcription - Whether a transcription should be started or not. + * @returns {void} + */ + 'start-recording': ({ + mode, + dropboxToken, + onlySelf, + shouldShare, + rtmpStreamKey, + rtmpBroadcastID, + youtubeStreamKey, + youtubeBroadcastID, + extraMetadata = {}, + transcription + }) => { + const state = APP.store.getState(); + const conference = getCurrentConference(state); + + if (!conference) { + logger.error('Conference is not defined'); + + return; + } + + if (dropboxToken && !isDropboxEnabled(state)) { + logger.error('Failed starting recording: dropbox is not enabled on this deployment'); + + return; + } + + if (mode === JitsiRecordingConstants.mode.STREAM && !(youtubeStreamKey || rtmpStreamKey)) { + logger.error('Failed starting recording: missing youtube or RTMP stream key'); + + return; + } + + if (mode === 'local') { + const { localRecording } = state['features/base/config']; + + if (!localRecording?.disable && supportsLocalRecording()) { + APP.store.dispatch(startLocalVideoRecording(onlySelf)); + } else { + logger.error('Failed starting recording: local recording is either disabled or not supported'); + } + + return; + } + + let recordingConfig; + + if (mode === JitsiRecordingConstants.mode.FILE) { + const { recordingService } = state['features/base/config']; + + if (!recordingService.enabled && !dropboxToken) { + logger.error('Failed starting recording: the recording service is not enabled'); + + return; + } + if (dropboxToken) { + recordingConfig = { + mode: JitsiRecordingConstants.mode.FILE, + appData: JSON.stringify({ + 'file_recording_metadata': { + ...extraMetadata, + 'upload_credentials': { + 'service_name': RECORDING_TYPES.DROPBOX, + 'token': dropboxToken + } + } + }) + }; + } else { + recordingConfig = { + mode: JitsiRecordingConstants.mode.FILE, + appData: JSON.stringify({ + 'file_recording_metadata': { + ...extraMetadata, + 'share': shouldShare + } + }) + }; + } + } else if (mode === JitsiRecordingConstants.mode.STREAM) { + recordingConfig = { + broadcastId: youtubeBroadcastID || rtmpBroadcastID, + mode: JitsiRecordingConstants.mode.STREAM, + streamId: youtubeStreamKey || rtmpStreamKey + }; + } + + if (isScreenshotCaptureEnabled(state, true, false)) { + APP.store.dispatch(toggleScreenshotCaptureSummary(true)); + } + + // Start audio / video recording, if requested. + if (typeof recordingConfig !== 'undefined') { + conference.startRecording(recordingConfig); + } + + if (transcription) { + APP.store.dispatch(setRequestingSubtitles(true, false, null, true)); + conference.getMetadataHandler().setMetadata(RECORDING_METADATA_ID, { + isTranscribingEnabled: true + }); + } + }, + + /** + * Stops a recording or streaming in progress. + * + * @param {string} mode - `local`, `file` or `stream`. + * @param {boolean} transcription - Whether the transcription needs to be stopped. + * @returns {void} + */ + 'stop-recording': (mode, transcription) => { + const state = APP.store.getState(); + const conference = getCurrentConference(state); + + if (!conference) { + logger.error('Conference is not defined'); + + return; + } + + if (transcription) { + APP.store.dispatch(setRequestingSubtitles(false, false, null)); + conference.getMetadataHandler().setMetadata(RECORDING_METADATA_ID, { + isTranscribingEnabled: false + }); + } + + if (mode === 'local') { + APP.store.dispatch(stopLocalVideoRecording()); + + return; + } + + if (![ JitsiRecordingConstants.mode.FILE, JitsiRecordingConstants.mode.STREAM ].includes(mode)) { + logger.error('Invalid recording mode provided!'); + + return; + } + + const activeSession = getActiveSession(state, mode); + + if (activeSession && activeSession.id) { + APP.store.dispatch(toggleScreenshotCaptureSummary(false)); + conference.stopRecording(activeSession.id); + } else { + logger.error('No recording or streaming session found'); + } + }, + 'initiate-private-chat': participantId => { + const state = APP.store.getState(); + const participant = getParticipantById(state, participantId); + + if (participant) { + const { isOpen: isChatOpen } = state['features/chat']; + + if (!isChatOpen) { + APP.store.dispatch(toggleChat()); + } + APP.store.dispatch(openChat(participant)); + } else { + logger.error('No participant found for the given participantId'); + } + }, + 'cancel-private-chat': () => { + APP.store.dispatch(setPrivateMessageRecipient()); + }, + 'close-breakout-room': roomId => { + if (!isLocalParticipantModerator(APP.store.getState())) { + logger.error('Missing moderator rights to close breakout rooms'); + + return; + } + APP.store.dispatch(closeBreakoutRoom(roomId)); + }, + 'join-breakout-room': roomId => { + APP.store.dispatch(moveToRoom(roomId)); + }, + 'send-participant-to-room': (participantId, roomId) => { + if (!isLocalParticipantModerator(APP.store.getState())) { + logger.error('Missing moderator rights to send participants to rooms'); + + return; + } + + APP.store.dispatch(sendParticipantToRoom(participantId, roomId)); + }, + 'kick-participant': participantId => { + APP.store.dispatch(kickParticipant(participantId)); + }, + 'overwrite-config': config => { + const whitelistedConfig = getWhitelistedJSON('config', config); + + logger.info(`Overwriting config with: ${JSON.stringify(whitelistedConfig)}`); + + APP.store.dispatch(overwriteConfig(whitelistedConfig)); + }, + 'toggle-virtual-background': () => { + APP.store.dispatch(toggleDialog(SettingsDialog, { + defaultTab: SETTINGS_TABS.VIRTUAL_BACKGROUND })); + }, + 'end-conference': () => { + APP.store.dispatch(endConference()); + const state = APP.store.getState(); + const conference = getCurrentConference(state); + + if (!conference) { + logger.error('Conference not yet available'); + } else if (conference.isEndConferenceSupported()) { + APP.store.dispatch(endConference()); + } else { + logger.error(' End Conference not supported'); + } + }, + 'toggle-whiteboard': () => { + APP.store.dispatch(toggleWhiteboard()); + }, + 'set-virtual-background': (enabled, backgroundImage) => { + const tracks = APP.store.getState()['features/base/tracks']; + const jitsiTrack = getLocalVideoTrack(tracks)?.jitsiTrack; + + APP.store.dispatch(toggleBackgroundEffect({ + backgroundEffectEnabled: enabled, + backgroundType: VIRTUAL_BACKGROUND_TYPE.IMAGE, + virtualSource: backgroundImage + }, jitsiTrack)); + } + }; + transport.on('event', ({ data, name }) => { + if (name && commands[name]) { + logger.info(`API command received: ${name}`); + commands[name](...data); + + return true; + } + + return false; + }); + transport.on('request', (request, callback) => { + const { dispatch, getState } = APP.store; + + if (processExternalDeviceRequest(dispatch, getState, request, callback)) { + return true; + } + + const { name } = request; + + switch (name) { + case 'capture-largevideo-screenshot' : + APP.store.dispatch(captureLargeVideoScreenshot()) + .then(dataURL => { + let error; + + if (!dataURL) { + error = new Error('No large video found!'); + } + + callback({ + error, + dataURL + }); + }); + break; + case 'capture-camera-picture' : { + const { cameraFacingMode, descriptionText, titleText } = request; + + if (!isMobileBrowser()) { + logger.error('This feature is only supported on mobile'); + + return; + } + + APP.store.dispatch(openCameraCaptureDialog(callback, { cameraFacingMode, + descriptionText, + titleText })); + break; + } + case 'deployment-info': + callback(APP.store.getState()['features/base/config'].deploymentInfo); + break; + case 'invite': { + const { invitees } = request; + + if (!Array.isArray(invitees) || invitees.length === 0) { + callback({ + error: new Error('Unexpected format of invitees') + }); + + break; + } + + // The store should be already available because API.init is called + // on appWillMount action. + APP.store.dispatch( + invite(invitees, true)) + .then(failedInvitees => { + let error; + let result; + + if (failedInvitees.length) { + error = new Error('One or more invites failed!'); + } else { + result = true; + } + + callback({ + error, + result + }); + }); + break; + } + case 'is-audio-muted': + callback(APP.conference.isLocalAudioMuted()); + break; + case 'is-audio-disabled': + callback(isAudioMuteButtonDisabled(APP.store.getState())); + break; + case 'is-moderation-on': { + const { mediaType } = request; + const type = mediaType || MEDIA_TYPE.AUDIO; + + callback(isEnabledFromState(type, APP.store.getState())); + break; + } + case 'is-participant-force-muted': { + const state = APP.store.getState(); + const { participantId, mediaType } = request; + const type = mediaType || MEDIA_TYPE.AUDIO; + const participant = getParticipantById(state, participantId); + + callback(isForceMuted(participant, type, state)); + break; + } + case 'is-participants-pane-open': { + callback(getParticipantsPaneOpen(APP.store.getState())); + break; + } + case 'is-video-muted': + callback(APP.conference.isLocalVideoMuted()); + break; + case 'is-audio-available': + callback(audioAvailable); + break; + case 'is-video-available': + callback(videoAvailable); + break; + case 'is-sharing-screen': + callback(Boolean(APP.conference.isSharingScreen)); + break; + case 'is-start-silent': + callback(Boolean(APP.store.getState()['features/base/config'].startSilent)); + break; + case 'get-content-sharing-participants': { + const sharingParticipantIds = getScreenshareParticipantIds(APP.store.getState()); + + callback({ + sharingParticipantIds + }); + break; + } + case 'get-livestream-url': { + const state = APP.store.getState(); + const conference = getCurrentConference(state); + let livestreamUrl; + + if (conference) { + const activeSession = getActiveSession(state, JitsiRecordingConstants.mode.STREAM); + + livestreamUrl = activeSession?.liveStreamViewURL; + } else { + logger.error('Conference is not defined'); + } + callback({ + livestreamUrl + }); + break; + } + case 'get-custom-avatar-backgrounds' : { + callback({ + avatarBackgrounds: APP.store.getState()['features/dynamic-branding'].avatarBackgrounds + }); + break; + } + case 'list-breakout-rooms': { + callback(getBreakoutRooms(APP.store.getState())); + break; + } + case 'rooms-info': { + callback(getRoomsInfo(APP.store.getState())); + break; + } + case 'get-shared-document-url': { + const { etherpad } = APP.store.getState()['features/etherpad']; + + callback(etherpad?.documentUrl || ''); + break; + } + case 'get-p2p-status': { + callback(isP2pActive(APP.store.getState())); + break; + } + case 'session-id': { + const { conference } = APP.store.getState()['features/base/conference']; + + callback(conference?.getMeetingUniqueId() || ''); + break; + } + case '_new_electron_screensharing_supported': { + callback(true); + + break; + } + case 'open-desktop-picker': { + const { desktopSharingSources } = APP.store.getState()['features/base/config']; + const options = { + desktopSharingSources: desktopSharingSources ?? [ 'screen', 'window' ] + }; + const onSourceChoose = (_streamId, _type, screenShareAudio, source) => { + callback({ + screenShareAudio, + source + }); + }; + + dispatch(showDesktopPicker(options, onSourceChoose)); + + break; + } + default: + callback({ error: new Error('UnknownRequestError') }); + + return false; + } + + return true; + }); +} + +/** + * Check whether the API should be enabled or not. + * + * @returns {boolean} + */ +function shouldBeEnabled() { + return ( + typeof API_ID === 'number' + + // XXX Enable the API when a JSON Web Token (JWT) is specified in + // the location/URL because then it is very likely that the Jitsi + // Meet (Web) app is being used by an external/wrapping (Web) app + // and, consequently, the latter will need to communicate with the + // former. (The described logic is merely a heuristic though.) + || parseJWTFromURLParams()); +} + +/** + * Executes on toggle-share-screen command. + * + * @param {boolean} [enable] - Whether this toggle is to explicitly enable or + * disable screensharing. If not defined, the application will automatically + * attempt to toggle between enabled and disabled. This boolean is useful for + * explicitly setting desired screensharing state. + * @returns {void} + */ +function toggleScreenSharing(enable) { + if (JitsiMeetJS.isDesktopSharingEnabled()) { + APP.store.dispatch(startScreenShareFlow(enable)); + } +} + +/** + * Removes sensitive data from a mouse event. + * + * @param {MouseEvent} event - The mouse event to sanitize. + * @returns {Object} + */ +function sanitizeMouseEvent(event) { + const { + clientX, + clientY, + movementX, + movementY, + offsetX, + offsetY, + pageX, + pageY, + x, + y, + screenX, + screenY + } = event; + + return { + clientX, + clientY, + movementX, + movementY, + offsetX, + offsetY, + pageX, + pageY, + x, + y, + screenX, + screenY + }; +} + +/** + * Implements API class that communicates with external API class and provides + * interface to access Jitsi Meet features by external applications that embed + * Jitsi Meet. + */ +class API { + _enabled; + + /** + * Initializes the API. Setups message event listeners that will receive + * information from external applications that embed Jitsi Meet. It also + * sends a message to the external application that API is initialized. + * + * @param {Object} options - Optional parameters. + * @returns {void} + */ + init() { + if (!shouldBeEnabled()) { + return; + } + + /** + * Current status (enabled/disabled) of API. + * + * @private + * @type {boolean} + */ + this._enabled = true; + + initCommands(); + + this.notifyBrowserSupport(isSupportedBrowser()); + + // Let the embedder know we are ready. + this._sendEvent({ name: 'ready' }); + } + + /** + * Notify external application (if API is enabled) that the large video + * visibility changed. + * + * @param {boolean} isHidden - True if the large video is hidden and false + * otherwise. + * @returns {void} + */ + notifyLargeVideoVisibilityChanged(isHidden) { + this._sendEvent({ + name: 'large-video-visibility-changed', + isVisible: !isHidden + }); + } + + /** + * Notifies the external application (spot) that the local jitsi-participant + * has a status update. + * + * @param {Object} event - The message to pass onto spot. + * @returns {void} + */ + sendProxyConnectionEvent(event) { + this._sendEvent({ + name: 'proxy-connection-event', + ...event + }); + } + + /** + * Sends event to the external application. + * + * @param {Object} event - The event to be sent. + * @returns {void} + */ + _sendEvent(event = {}) { + if (this._enabled) { + try { + transport.sendEvent(event); + } catch (error) { + logger.error('Failed to send and IFrame API event', error); + } + } + } + + /** + * Notify external application (if API is enabled) that the chat state has been updated. + * + * @param {number} unreadCount - The unread messages counter. + * @param {boolean} isOpen - True if the chat panel is open. + * @returns {void} + */ + notifyChatUpdated(unreadCount, isOpen) { + this._sendEvent({ + name: 'chat-updated', + unreadCount, + isOpen + }); + } + + /** + * Notify external application (if API is enabled) that message was sent. + * + * @param {string} message - Message body. + * @param {boolean} privateMessage - True if the message was a private message. + * @returns {void} + */ + notifySendingChatMessage(message, privateMessage) { + this._sendEvent({ + name: 'outgoing-message', + message, + privateMessage + }); + } + + /** + * Notify external application (if API is enabled) that the mouse has entered inside the iframe. + * + * @param {MouseEvent} event - The mousemove event. + * @returns {void} + */ + notifyMouseEnter(event) { + this._sendEvent({ + name: 'mouse-enter', + event: sanitizeMouseEvent(event) + }); + } + + /** + * Notify external application (if API is enabled) that the mouse has entered inside the iframe. + * + * @param {MouseEvent} event - The mousemove event. + * @returns {void} + */ + notifyMouseLeave(event) { + this._sendEvent({ + name: 'mouse-leave', + event: sanitizeMouseEvent(event) + }); + } + + /** + * Notify external application (if API is enabled) that the mouse has moved inside the iframe. + * + * @param {MouseEvent} event - The mousemove event. + * @returns {void} + */ + notifyMouseMove(event) { + this._sendEvent({ + name: 'mouse-move', + event: sanitizeMouseEvent(event) + }); + } + + /** + * Notify the external application that the moderation status has changed. + * + * @param {string} mediaType - Media type for which the moderation changed. + * @param {boolean} enabled - Whether or not the new moderation status is enabled. + * @returns {void} + */ + notifyModerationChanged(mediaType, enabled) { + this._sendEvent({ + name: 'moderation-status-changed', + mediaType, + enabled + }); + } + + /** + * Notify the external application that a participant was approved on moderation. + * + * @param {string} participantId - The ID of the participant that got approved. + * @param {string} mediaType - Media type for which the participant was approved. + * @returns {void} + */ + notifyParticipantApproved(participantId, mediaType) { + this._sendEvent({ + name: 'moderation-participant-approved', + id: participantId, + mediaType + }); + } + + /** + * Notify the external application that a participant was rejected on moderation. + * + * @param {string} participantId - The ID of the participant that got rejected. + * @param {string} mediaType - Media type for which the participant was rejected. + * @returns {void} + */ + notifyParticipantRejected(participantId, mediaType) { + this._sendEvent({ + name: 'moderation-participant-rejected', + id: participantId, + mediaType + }); + } + + /** + * Notify the external app that a notification has been triggered. + * + * @param {string} title - The notification title. + * @param {string} description - The notification description. + * + * @returns {void} + */ + notifyNotificationTriggered(title, description) { + this._sendEvent({ + description, + name: 'notification-triggered', + title + }); + } + + /** + * Notify request desktop sources. + * + * @param {Object} options - Object with the options for desktop sources. + * @returns {void} + */ + requestDesktopSources(options) { + return transport.sendRequest({ + name: '_request-desktop-sources', + options + }); + } + + /** + * Notify external application that the video quality setting has changed. + * + * @param {number} videoQuality - The video quality. The number represents the maximum height of the video streams. + * @returns {void} + */ + notifyVideoQualityChanged(videoQuality) { + this._sendEvent({ + name: 'video-quality-changed', + videoQuality + }); + } + + /** + * Notify external application (if API is enabled) that message was + * received. + * + * @param {Object} options - Object with the message properties. + * @returns {void} + */ + notifyReceivedChatMessage( + { body, from, nick, privateMessage, ts } = {}) { + if (APP.conference.isLocalId(from)) { + return; + } + + this._sendEvent({ + name: 'incoming-message', + from, + message: body, + nick, + privateMessage, + stamp: ts + }); + } + + /** + * Notify external application (if API is enabled) that user joined the + * conference. + * + * @param {string} id - User id. + * @param {Object} props - The display name of the user. + * @returns {void} + */ + notifyUserJoined(id, props) { + this._sendEvent({ + name: 'participant-joined', + id, + ...props + }); + } + + /** + * Notify external application (if API is enabled) that user left the + * conference. + * + * @param {string} id - User id. + * @returns {void} + */ + notifyUserLeft(id) { + this._sendEvent({ + name: 'participant-left', + id + }); + } + + /** + * Notify external application (if API is enabled) that the user role + * has changed. + * + * @param {string} id - User id. + * @param {string} role - The new user role. + * @returns {void} + */ + notifyUserRoleChanged(id, role) { + this._sendEvent({ + name: 'participant-role-changed', + id, + role + }); + } + + /** + * Notify external application (if API is enabled) that user changed their + * avatar. + * + * @param {string} id - User id. + * @param {string} avatarURL - The new avatar URL of the participant. + * @returns {void} + */ + notifyAvatarChanged(id, avatarURL) { + this._sendEvent({ + name: 'avatar-changed', + avatarURL, + id + }); + } + + /** + * Notify external application (if API is enabled) that user received + * a text message through datachannels. + * + * @param {Object} data - The event data. + * @returns {void} + */ + notifyEndpointTextMessageReceived(data) { + this._sendEvent({ + name: 'endpoint-text-message-received', + data + }); + } + + /** + * Notify external application (if API is enabled) that some face landmark data is available. + * + * @param {Object | undefined} faceBox - Detected face(s) bounding box (left, right, width). + * @param {string} faceExpression - Detected face expression. + * @returns {void} + */ + notifyFaceLandmarkDetected(faceBox, faceExpression) { + this._sendEvent({ + name: 'face-landmark-detected', + faceBox, + faceExpression + }); + } + + /** + * Notify external application (if API is enabled) that a custom notification action has been triggered. + * + * @param {string} actionUuid - The UUID of the action that has been triggered. + * @returns {void} + */ + notifyCustomNotificationActionTriggered(actionUuid) { + this._sendEvent({ + name: 'custom-notification-action-triggered', + data: { + id: actionUuid + } + }); + } + + /** + * Notify external application (if API is enabled) that the list of sharing participants changed. + * + * @param {Object} data - The event data. + * @returns {void} + */ + notifySharingParticipantsChanged(data) { + this._sendEvent({ + name: 'content-sharing-participants-changed', + data + }); + } + + /** + * Notify external application (if API is enabled) that the device list has + * changed. + * + * @param {Object} devices - The new device list. + * @returns {void} + */ + notifyDeviceListChanged(devices) { + this._sendEvent({ + name: 'device-list-changed', + devices + }); + } + + /** + * Notify external application (if API is enabled) that user changed their + * nickname. + * + * @param {string} id - User id. + * @param {string} displayname - User nickname. + * @param {string} formattedDisplayName - The display name shown in Jitsi + * meet's UI for the user. + * @returns {void} + */ + notifyDisplayNameChanged( + id, + { displayName, formattedDisplayName }) { + this._sendEvent({ + name: 'display-name-change', + displayname: displayName, + formattedDisplayName, + id + }); + } + + /** + * Notify external application (if API is enabled) that user changed their + * email. + * + * @param {string} id - User id. + * @param {string} email - The new email of the participant. + * @returns {void} + */ + notifyEmailChanged( + id, + { email }) { + this._sendEvent({ + name: 'email-change', + email, + id + }); + } + + /** + * Notify external application (if API is enabled) that the an error has been logged. + * + * @param {string} logLevel - The message log level. + * @param {Array} args - Array of strings composing the log message. + * @returns {void} + */ + notifyLog(logLevel, args = []) { + if (!Array.isArray(args)) { + logger.error('notifyLog received wrong argument types!'); + + return; + } + + // Trying to convert arguments to strings. Otherwise in order to send the event the arguments will be formatted + // with JSON.stringify which can throw an error because of circular objects and we will lose the whole log. + const formattedArguments = []; + + args.forEach(arg => { + let formattedArgument = ''; + + if (arg instanceof Error) { + formattedArgument += `${arg.toString()}: ${arg.stack}`; + } else if (typeof arg === 'object') { + // NOTE: The non-enumerable properties of the objects wouldn't be included in the string after + // JSON.stringify. For example Map instance will be translated to '{}'. So I think we have to eventually + // do something better for parsing the arguments. But since this option for stringify is part of the + // public interface and I think it could be useful in some cases I will it for now. + try { + formattedArgument += JSON.stringify(arg); + } catch (error) { + formattedArgument += arg; + } + } else { + formattedArgument += arg; + } + + formattedArguments.push(formattedArgument); + }); + + this._sendEvent({ + name: 'log', + logLevel, + args: formattedArguments + }); + } + + /** + * Notify external application (if API is enabled) that the conference has + * been joined. + * + * @param {string} roomName - The room name. + * @param {string} id - The id of the local user. + * @param {Object} props - The display name, the avatar URL of the local + * user and the type of the room. + * @returns {void} + */ + notifyConferenceJoined(roomName, id, props) { + this._sendEvent({ + name: 'video-conference-joined', + roomName, + id, + ...props + }); + } + + /** + * Notify external application (if API is enabled) that local user has left the conference. + * + * @param {string} roomName - User id. + * @returns {void} + */ + notifyConferenceLeft(roomName) { + this._sendEvent({ + name: 'video-conference-left', + roomName + }); + } + + /** + * Notify external application that the data channel has been closed. + * + * @param {number} code - The close code. + * @param {string} reason - The close reason. + * + * @returns {void} + */ + notifyDataChannelClosed(code, reason) { + this._sendEvent({ + name: 'data-channel-closed', + code, + reason + }); + } + + /** + * Notify external application that the data channel has been opened. + * + * @returns {void} + */ + notifyDataChannelOpened() { + this._sendEvent({ name: 'data-channel-opened' }); + } + + /** + * Notify external application (if API is enabled) that we are ready to be + * closed. + * + * @returns {void} + */ + notifyReadyToClose() { + this._sendEvent({ name: 'video-ready-to-close' }); + } + + /** + * Notify external application (if API is enabled) that a suspend event in host computer. + * + * @returns {void} + */ + notifySuspendDetected() { + this._sendEvent({ name: 'suspend-detected' }); + } + + /** + * Notify external application (if API is enabled) for audio muted status + * changed. + * + * @param {boolean} muted - The new muted status. + * @returns {void} + */ + notifyAudioMutedStatusChanged(muted) { + this._sendEvent({ + name: 'audio-mute-status-changed', + muted + }); + } + + /** + * Notify external application (if API is enabled) for video muted status + * changed. + * + * @param {boolean} muted - The new muted status. + * @returns {void} + */ + notifyVideoMutedStatusChanged(muted) { + this._sendEvent({ + name: 'video-mute-status-changed', + muted + }); + } + + /** + * Notify external application (if API is enabled) for audio availability + * changed. + * + * @param {boolean} available - True if available and false otherwise. + * @returns {void} + */ + notifyAudioAvailabilityChanged(available) { + audioAvailable = available; + this._sendEvent({ + name: 'audio-availability-changed', + available + }); + } + + /** + * Notify external application (if API is enabled) for video available + * status changed. + * + * @param {boolean} available - True if available and false otherwise. + * @returns {void} + */ + notifyVideoAvailabilityChanged(available) { + videoAvailable = available; + this._sendEvent({ + name: 'video-availability-changed', + available + }); + } + + /** + * Notify external application (if API is enabled) that the on stage + * participant has changed. + * + * @param {string} id - User id of the new on stage participant. + * @returns {void} + */ + notifyOnStageParticipantChanged(id) { + this._sendEvent({ + name: 'on-stage-participant-changed', + id + }); + } + + /** + * Notify external application (if API is enabled) that the prejoin video + * visibility had changed. + * + * @param {boolean} isVisible - Whether the prejoin video is visible. + * @returns {void} + */ + notifyPrejoinVideoVisibilityChanged(isVisible) { + this._sendEvent({ + name: 'on-prejoin-video-changed', + isVisible + }); + } + + /** + * Notify external application (if API is enabled) that the prejoin + * screen was loaded. + * + * @returns {void} + */ + notifyPrejoinLoaded() { + const state = APP.store.getState(); + const { defaultLocalDisplayName } = state['features/base/config']; + const displayName = getDisplayName(state); + + this._sendEvent({ + name: 'prejoin-screen-loaded', + id: LOCAL_PARTICIPANT_DEFAULT_ID, + displayName, + formattedDisplayName: appendSuffix(displayName, defaultLocalDisplayName) + }); + } + + /** + * Notify external application of an unexpected camera-related error having + * occurred. + * + * @param {string} type - The type of the camera error. + * @param {string} message - Additional information about the error. + * @returns {void} + */ + notifyOnCameraError(type, message) { + this._sendEvent({ + name: 'camera-error', + type, + message + }); + } + + /** + * Notify external application of an unexpected mic-related error having + * occurred. + * + * @param {string} type - The type of the mic error. + * @param {string} message - Additional information about the error. + * @returns {void} + */ + notifyOnMicError(type, message) { + this._sendEvent({ + name: 'mic-error', + type, + message + }); + } + + /** + * Notify external application (if API is enabled) that conference feedback + * has been submitted. Intended to be used in conjunction with the + * submit-feedback command to get notified if feedback was submitted. + * + * @param {string} error - A failure message, if any. + * @returns {void} + */ + notifyFeedbackSubmitted(error) { + this._sendEvent({ + name: 'feedback-submitted', + error + }); + } + + /** + * Notify external application (if API is enabled) that the feedback prompt + * has been displayed. + * + * @returns {void} + */ + notifyFeedbackPromptDisplayed() { + this._sendEvent({ name: 'feedback-prompt-displayed' }); + } + + /** + * Notify external application (if API is enabled) that the display + * configuration of the filmstrip has been changed. + * + * @param {boolean} visible - Whether or not the filmstrip has been set to + * be displayed or hidden. + * @returns {void} + */ + notifyFilmstripDisplayChanged(visible) { + this._sendEvent({ + name: 'filmstrip-display-changed', + visible + }); + } + + /** + * Notify external application of a participant, remote or local, being + * removed from the conference by another participant. + * + * @param {Object} kicked - The participant removed from the + * conference. + * @param {Object} kicker - The participant that removed the + * other participant. + * @returns {void} + */ + notifyKickedOut(kicked, kicker) { + this._sendEvent({ + name: 'participant-kicked-out', + kicked, + kicker + }); + } + + /** + * Notify external application (if API is enabled) that the recording consent dialog open state has changed. + * + * @param {boolean} open - True if the dialog is open, false otherwise. + * @returns {void} + */ + notifyRecordingConsentDialogOpen(open) { + this._sendEvent({ + name: 'recording-consent-dialog-open', + open + }); + } + + /** + * Notify external application of the current meeting requiring a password + * to join. + * + * @returns {void} + */ + notifyOnPasswordRequired() { + this._sendEvent({ name: 'password-required' }); + } + + /** + * Notify external application (if API is enabled) that the screen sharing + * has been turned on/off. + * + * @param {boolean} on - True if screen sharing is enabled. + * @param {Object} details - Additional information about the screen + * sharing. + * @param {string} details.sourceType - Type of device or window the screen + * share is capturing. + * @returns {void} + */ + notifyScreenSharingStatusChanged(on, details) { + this._sendEvent({ + name: 'screen-sharing-status-changed', + on, + details + }); + } + + /** + * Notify external application (if API is enabled) that the dominant speaker + * has been turned on/off. + * + * @param {string} id - Id of the dominant participant. + * @returns {void} + */ + notifyDominantSpeakerChanged(id) { + this._sendEvent({ + name: 'dominant-speaker-changed', + id + }); + } + + /** + * Notify external application (if API is enabled) that the conference + * changed their subject. + * + * @param {string} subject - Conference subject. + * @returns {void} + */ + notifySubjectChanged(subject) { + this._sendEvent({ + name: 'subject-change', + subject + }); + } + + /** + * Notify external application (if API is enabled) that tile view has been + * entered or exited. + * + * @param {string} enabled - True if tile view is currently displayed, false + * otherwise. + * @returns {void} + */ + notifyTileViewChanged(enabled) { + this._sendEvent({ + name: 'tile-view-changed', + enabled + }); + } + + /** + * Notify external application (if API is enabled) that the localStorage has changed. + * + * @param {string} localStorageContent - The new localStorageContent. + * @returns {void} + */ + notifyLocalStorageChanged(localStorageContent) { + this._sendEvent({ + name: 'local-storage-changed', + localStorageContent + }); + } + + /** + * Notify external application (if API is enabled) that user updated their hand raised. + * + * @param {string} id - User id. + * @param {boolean} handRaised - Whether user has raised hand. + * @returns {void} + */ + notifyRaiseHandUpdated(id, handRaised) { + this._sendEvent({ + name: 'raise-hand-updated', + handRaised, + id + }); + } + + /** + * Notify external application (if API is enabled) that recording has started or stopped. + * + * @param {boolean} on - True if recording is on, false otherwise. + * @param {string} mode - Stream or file or local. + * @param {string} error - Error type or null if success. + * @param {boolean} transcription - True if a transcription is being recorded, false otherwise. + * @returns {void} + */ + notifyRecordingStatusChanged(on, mode, error, transcription) { + this._sendEvent({ + name: 'recording-status-changed', + on, + mode, + error, + transcription + }); + } + + /** + * Notify external application (if API is enabled) that the current recording link is + * available. + * + * @param {string} link - The recording download link. + * @param {number} ttl - The recording download link time to live. + * @returns {void} + */ + notifyRecordingLinkAvailable(link, ttl) { + this._sendEvent({ + name: 'recording-link-available', + link, + ttl + }); + } + + /** + * Notify external application (if API is enabled) that a participant is knocking in the lobby. + * + * @param {Object} participant - Participant data such as id and name. + * @returns {void} + */ + notifyKnockingParticipant(participant) { + this._sendEvent({ + name: 'knocking-participant', + participant + }); + } + + /** + * Notify external application (if API is enabled) that an error occurred. + * + * @param {Object} error - The error. + * @returns {void} + */ + notifyError(error) { + this._sendEvent({ + name: 'error-occurred', + error + }); + } + + /** + * Notify external application ( if API is enabled) that a toolbar button was clicked. + * + * @param {string} key - The key of the toolbar button. + * @param {boolean} preventExecution - Whether execution of the button click was prevented or not. + * @returns {void} + */ + notifyToolbarButtonClicked(key, preventExecution) { + this._sendEvent({ + name: 'toolbar-button-clicked', + key, + preventExecution + }); + } + + /** + * Notify external application (if API is enabled) that transcribing has started or stopped. + * + * @param {boolean} on - True if transcribing is on, false otherwise. + * @returns {void} + */ + notifyTranscribingStatusChanged(on) { + this._sendEvent({ + name: 'transcribing-status-changed', + on + }); + } + + /** + * Notify external application (if API is enabled) that the user received + * a transcription chunk. + * + * @param {Object} data - The event data. + * @returns {void} + */ + notifyTranscriptionChunkReceived(data) { + this._sendEvent({ + name: 'transcription-chunk-received', + data + }); + } + + /** + * Notify external application (if API is enabled) whether the used browser is supported or not. + * + * @param {boolean} supported - If browser is supported or not. + * @returns {void} + */ + notifyBrowserSupport(supported) { + this._sendEvent({ + name: 'browser-support', + supported + }); + } + + /** + * Notify external application that the breakout rooms changed. + * + * @param {Array} rooms - Array containing the breakout rooms and main room. + * @returns {void} + */ + notifyBreakoutRoomsUpdated(rooms) { + this._sendEvent({ + name: 'breakout-rooms-updated', + rooms + }); + } + + /** + * Notify the external application that the state of the participants pane changed. + * + * @param {boolean} open - Whether the panel is open or not. + * @returns {void} + */ + notifyParticipantsPaneToggled(open) { + this._sendEvent({ + name: 'participants-pane-toggled', + open + }); + } + + /** + * Notify the external application that the audio or video is being shared by a participant. + * + * @param {string} mediaType - Whether the content which is being shared is audio or video. + * @param {string} value - Whether the sharing is playing, pause or stop (on audio there is only playing and stop). + * @param {string} participantId - Participant id of the participant which started or ended + * the video or audio sharing. + * @returns {void} + */ + notifyAudioOrVideoSharingToggled(mediaType, value, participantId) { + this._sendEvent({ + name: 'audio-or-video-sharing-toggled', + mediaType, + value, + participantId + }); + } + + /** + * Notify the external application that a PeerConnection lost connectivity. This event is fired only if + * a PC `failed` but connectivity to the rtcstats server is still maintained signaling that there is a + * problem establishing a link between the app and the JVB server or the remote peer in case of P2P. + * Will only fire if rtcstats is enabled. + * + * @param {boolean} isP2P - Type of PC. + * @param {boolean} wasConnected - Was this connection previously connected. If it was it could mean + * that connectivity was disrupted, if not it most likely means that the app could not reach + * the JVB server, or the other peer in case of P2P. + * + * @returns {void} + */ + notifyPeerConnectionFailure(isP2P, wasConnected) { + this._sendEvent({ + name: 'peer-connection-failure', + isP2P, + wasConnected + }); + } + + /** + * Notify external application ( if API is enabled) that a participant menu button was clicked. + * + * @param {string} key - The key of the participant menu button. + * @param {string} participantId - The ID of the participant for whom the participant menu button was clicked. + * @param {boolean} preventExecution - Whether execution of the button click was prevented or not. + * @returns {void} + */ + notifyParticipantMenuButtonClicked(key, participantId, preventExecution) { + this._sendEvent({ + name: 'participant-menu-button-clicked', + key, + participantId, + preventExecution + }); + } + + /** + * Notify external application (if API is enabled) if whiteboard state is + * changed. + * + * @param {WhiteboardStatus} status - The new whiteboard status. + * @returns {void} + */ + notifyWhiteboardStatusChanged(status) { + this._sendEvent({ + name: 'whiteboard-status-changed', + status + }); + } + + /** + * Notify external application (if API is enabled) if non participant message + * is received. + * + * @param {string} id - The resource id of the sender. + * @param {Object} json - The json carried by the message. + * @returns {void} + */ + notifyNonParticipantMessageReceived(id, json) { + this._sendEvent({ + name: 'non-participant-message-received', + id, + message: json + }); + } + + + /** + * Notify external application (if API is enabled) the conference + * start time. + * + * @param {number} timestamp - Timestamp conference was created. + * @returns {void} + */ + notifyConferenceCreatedTimestamp(timestamp) { + this._sendEvent({ + name: 'conference-created-timestamp', + timestamp + }); + } + + + /** + * Notify the external application (if API is enabled) if the connection type changed. + * + * @param {boolean} isP2p - Whether the new connection is P2P. + * @returns {void} + */ + notifyP2pStatusChanged(isP2p) { + this._sendEvent({ + name: 'p2p-status-changed', + isP2p + }); + } + + /** + * Notify the external application (if API is enabled) when the compute pressure changed. + * + * @param {Array} records - The new pressure records. + * @returns {void} + */ + notifyComputePressureChanged(records) { + this._sendEvent({ + name: 'compute-pressure-changed', + records + }); + } + + /** + * Notify the external application (if API is enabled) when the audio only enabled status changed. + * + * @param {boolean} enabled - Whether the audio only is enabled or not. + * @returns {void} + */ + notifyAudioOnlyChanged(enabled) { + this._sendEvent({ + name: 'audio-only-changed', + enabled + }); + } + + /** + * Disposes the allocated resources. + * + * @returns {void} + */ + dispose() { + if (this._enabled) { + this._enabled = false; + } + } +} + +export default new API(); diff --git a/modules/API/constants.js b/modules/API/constants.js new file mode 100644 index 0000000..b35a015 --- /dev/null +++ b/modules/API/constants.js @@ -0,0 +1,31 @@ +// XXX The function parseURLParams is exported by the feature base/util (as +// defined in the terminology of react/). However, this file is (very likely) +// bundled in external_api in addition to app.bundle and, consequently, it is +// best to import as little as possible here (rather than the whole feature +// base/util) in order to minimize the amount of source code bundled into +// multiple bundles. +import { parseURLParams } from '../../react/features/base/util/parseURLParams'; + +/** + * JitsiMeetExternalAPI id - unique for a webpage. + * TODO: This shouldn't be computed here. + */ +let _apiID; + +try { + _apiID = parseURLParams(window.location).jitsi_meet_external_api_id; +} catch (_) { /* Ignore. */ } + +export const API_ID = _apiID; + +/** + * The payload name for the datachannel/endpoint text message event. + */ +export const ENDPOINT_TEXT_MESSAGE_NAME = 'endpoint-text-message'; + +/** + * The min value that can be set for the assumed bandwidth. + * Setting it to this value means not assuming any bandwidth, + * but rather allowing the estimations to take place. + */ +export const MIN_ASSUMED_BANDWIDTH_BPS = -1; diff --git a/modules/API/external/external_api.js b/modules/API/external/external_api.js new file mode 100644 index 0000000..4c2e01a --- /dev/null +++ b/modules/API/external/external_api.js @@ -0,0 +1,1508 @@ +import { jitsiLocalStorage } from '@jitsi/js-utils/jitsi-local-storage'; +import EventEmitter from 'events'; + +import { urlObjectToString } from '../../../react/features/base/util/uri'; +import { + PostMessageTransportBackend, + Transport +} from '../../transport'; + +import { + getAvailableDevices, + getCurrentDevices, + isDeviceChangeAvailable, + isMultipleAudioInputSupported, + setAudioInputDevice, + setAudioOutputDevice, + setVideoInputDevice +} from './functions'; + +const ALWAYS_ON_TOP_FILENAMES = [ + 'css/all.css', 'libs/alwaysontop.min.js' +]; + +/** + * Maps the names of the commands expected by the API with the name of the + * commands expected by jitsi-meet. + */ +const commands = { + addBreakoutRoom: 'add-breakout-room', + answerKnockingParticipant: 'answer-knocking-participant', + approveVideo: 'approve-video', + askToUnmute: 'ask-to-unmute', + autoAssignToBreakoutRooms: 'auto-assign-to-breakout-rooms', + avatarUrl: 'avatar-url', + cancelPrivateChat: 'cancel-private-chat', + closeBreakoutRoom: 'close-breakout-room', + displayName: 'display-name', + endConference: 'end-conference', + email: 'email', + grantModerator: 'grant-moderator', + grantRecordingConsent: 'grant-recording-consent', + hangup: 'video-hangup', + hideNotification: 'hide-notification', + initiatePrivateChat: 'initiate-private-chat', + joinBreakoutRoom: 'join-breakout-room', + localSubject: 'local-subject', + kickParticipant: 'kick-participant', + muteEveryone: 'mute-everyone', + overwriteConfig: 'overwrite-config', + overwriteNames: 'overwrite-names', + password: 'password', + pinParticipant: 'pin-participant', + rejectParticipant: 'reject-participant', + removeBreakoutRoom: 'remove-breakout-room', + resizeFilmStrip: 'resize-film-strip', + resizeLargeVideo: 'resize-large-video', + sendCameraFacingMode: 'send-camera-facing-mode-message', + sendChatMessage: 'send-chat-message', + sendEndpointTextMessage: 'send-endpoint-text-message', + sendParticipantToRoom: 'send-participant-to-room', + sendTones: 'send-tones', + setAudioOnly: 'set-audio-only', + setAssumedBandwidthBps: 'set-assumed-bandwidth-bps', + setBlurredBackground: 'set-blurred-background', + setFollowMe: 'set-follow-me', + setLargeVideoParticipant: 'set-large-video-participant', + setMediaEncryptionKey: 'set-media-encryption-key', + setNoiseSuppressionEnabled: 'set-noise-suppression-enabled', + setParticipantVolume: 'set-participant-volume', + setSubtitles: 'set-subtitles', + setTileView: 'set-tile-view', + setVideoQuality: 'set-video-quality', + setVirtualBackground: 'set-virtual-background', + showNotification: 'show-notification', + startRecording: 'start-recording', + startShareVideo: 'start-share-video', + stopRecording: 'stop-recording', + stopShareVideo: 'stop-share-video', + subject: 'subject', + submitFeedback: 'submit-feedback', + toggleAudio: 'toggle-audio', + toggleCamera: 'toggle-camera', + toggleCameraMirror: 'toggle-camera-mirror', + toggleChat: 'toggle-chat', + toggleE2EE: 'toggle-e2ee', + toggleFilmStrip: 'toggle-film-strip', + toggleLobby: 'toggle-lobby', + toggleModeration: 'toggle-moderation', + toggleNoiseSuppression: 'toggle-noise-suppression', + toggleParticipantsPane: 'toggle-participants-pane', + toggleRaiseHand: 'toggle-raise-hand', + toggleShareScreen: 'toggle-share-screen', + toggleSubtitles: 'toggle-subtitles', + toggleTileView: 'toggle-tile-view', + toggleVirtualBackgroundDialog: 'toggle-virtual-background', + toggleVideo: 'toggle-video', + toggleWhiteboard: 'toggle-whiteboard' +}; + +/** + * Maps the names of the events expected by the API with the name of the + * events expected by jitsi-meet. + */ +const events = { + 'avatar-changed': 'avatarChanged', + 'audio-availability-changed': 'audioAvailabilityChanged', + 'audio-mute-status-changed': 'audioMuteStatusChanged', + 'audio-only-changed': 'audioOnlyChanged', + 'audio-or-video-sharing-toggled': 'audioOrVideoSharingToggled', + 'breakout-rooms-updated': 'breakoutRoomsUpdated', + 'browser-support': 'browserSupport', + 'camera-error': 'cameraError', + 'chat-updated': 'chatUpdated', + 'compute-pressure-changed': 'computePressureChanged', + 'conference-created-timestamp': 'conferenceCreatedTimestamp', + 'content-sharing-participants-changed': 'contentSharingParticipantsChanged', + 'custom-notification-action-triggered': 'customNotificationActionTriggered', + 'data-channel-closed': 'dataChannelClosed', + 'data-channel-opened': 'dataChannelOpened', + 'device-list-changed': 'deviceListChanged', + 'display-name-change': 'displayNameChange', + 'dominant-speaker-changed': 'dominantSpeakerChanged', + 'email-change': 'emailChange', + 'error-occurred': 'errorOccurred', + 'endpoint-text-message-received': 'endpointTextMessageReceived', + 'face-landmark-detected': 'faceLandmarkDetected', + 'feedback-submitted': 'feedbackSubmitted', + 'feedback-prompt-displayed': 'feedbackPromptDisplayed', + 'filmstrip-display-changed': 'filmstripDisplayChanged', + 'incoming-message': 'incomingMessage', + 'knocking-participant': 'knockingParticipant', + 'log': 'log', + 'mic-error': 'micError', + 'moderation-participant-approved': 'moderationParticipantApproved', + 'moderation-participant-rejected': 'moderationParticipantRejected', + 'moderation-status-changed': 'moderationStatusChanged', + 'mouse-enter': 'mouseEnter', + 'mouse-leave': 'mouseLeave', + 'mouse-move': 'mouseMove', + 'non-participant-message-received': 'nonParticipantMessageReceived', + 'notification-triggered': 'notificationTriggered', + 'outgoing-message': 'outgoingMessage', + 'p2p-status-changed': 'p2pStatusChanged', + 'participant-joined': 'participantJoined', + 'participant-kicked-out': 'participantKickedOut', + 'participant-left': 'participantLeft', + 'participant-role-changed': 'participantRoleChanged', + 'participants-pane-toggled': 'participantsPaneToggled', + 'password-required': 'passwordRequired', + 'peer-connection-failure': 'peerConnectionFailure', + 'prejoin-screen-loaded': 'prejoinScreenLoaded', + 'proxy-connection-event': 'proxyConnectionEvent', + 'raise-hand-updated': 'raiseHandUpdated', + 'ready': 'ready', + 'recording-consent-dialog-open': 'recordingConsentDialogOpen', + 'recording-link-available': 'recordingLinkAvailable', + 'recording-status-changed': 'recordingStatusChanged', + 'participant-menu-button-clicked': 'participantMenuButtonClick', + 'video-ready-to-close': 'readyToClose', + 'video-conference-joined': 'videoConferenceJoined', + 'video-conference-left': 'videoConferenceLeft', + 'video-availability-changed': 'videoAvailabilityChanged', + 'video-mute-status-changed': 'videoMuteStatusChanged', + 'video-quality-changed': 'videoQualityChanged', + 'screen-sharing-status-changed': 'screenSharingStatusChanged', + 'subject-change': 'subjectChange', + 'suspend-detected': 'suspendDetected', + 'tile-view-changed': 'tileViewChanged', + 'toolbar-button-clicked': 'toolbarButtonClicked', + 'transcribing-status-changed': 'transcribingStatusChanged', + 'transcription-chunk-received': 'transcriptionChunkReceived', + 'whiteboard-status-changed': 'whiteboardStatusChanged' +}; + +const requests = { + '_request-desktop-sources': '_requestDesktopSources' +}; + +/** + * Last id of api object. + * + * @type {number} + */ +let id = 0; + +/** + * Adds given number to the numberOfParticipants property of given APIInstance. + * + * @param {JitsiMeetExternalAPI} APIInstance - The instance of the API. + * @param {int} number - The number of participants to be added to + * numberOfParticipants property (this parameter can be negative number if the + * numberOfParticipants should be decreased). + * @returns {void} + */ +function changeParticipantNumber(APIInstance, number) { + APIInstance._numberOfParticipants += number; +} + +/** + * Compute valid values for height and width. If a number is specified it's + * treated as pixel units. If the value is expressed in px, em, pt or + * percentage, it's used as is. + * + * @param {any} value - The value to be parsed. + * @returns {string|undefined} The parsed value that can be used for setting + * sizes through the style property. If invalid value is passed the method + * returns undefined. + */ +function parseSizeParam(value) { + let parsedValue; + + // This regex parses values of the form 100px, 100em, 100pt, 100vh, 100vw or 100%. + // Values like 100 or 100px are handled outside of the regex, and + // invalid values will be ignored and the minimum will be used. + const re = /([0-9]*\.?[0-9]+)(em|pt|px|((d|l|s)?v)(h|w)|%)$/; + + if (typeof value === 'string' && String(value).match(re) !== null) { + parsedValue = value; + } else if (typeof value === 'number') { + parsedValue = `${value}px`; + } + + return parsedValue; +} + + +/** + * The IFrame API interface class. + */ +export default class JitsiMeetExternalAPI extends EventEmitter { + /** + * Constructs new API instance. Creates iframe and loads Jitsi Meet in it. + * + * @param {string} domain - The domain name of the server that hosts the + * conference. + * @param {Object} [options] - Optional arguments. + * @param {string} [options.roomName] - The name of the room to join. + * @param {number|string} [options.width] - Width of the iframe. Check + * parseSizeParam for format details. + * @param {number|string} [options.height] - Height of the iframe. Check + * parseSizeParam for format details. + * @param {DOMElement} [options.parentNode] - The node that will contain the + * iframe. + * @param {Object} [options.configOverwrite] - Object containing + * configuration options defined in config.js to be overridden. + * @param {Object} [options.interfaceConfigOverwrite] - Object containing + * configuration options defined in interface_config.js to be overridden. + * @param {IIceServers} [options.iceServers] - Object with rules that will be used to modify/remove the existing + * ice server configuration. + * NOTE: This property is currently experimental and may be removed in the future! + * @param {string} [options.jwt] - The JWT token if needed by jitsi-meet for + * authentication. + * @param {string} [options.lang] - The meeting's default language. + * @param {string} [options.onload] - The onload function that will listen + * for iframe onload event. + * @param {Array} [options.invitees] - Array of objects containing + * information about new participants that will be invited in the call. + * @param {Array} [options.devices] - Array of objects containing + * information about the initial devices that will be used in the call. + * @param {Object} [options.userInfo] - Object containing information about + * the participant opening the meeting. + * @param {string} [options.e2eeKey] - The key used for End-to-End encryption. + * THIS IS EXPERIMENTAL. + * @param {string} [options.release] - The key used for specifying release if enabled on the backend. + * @param {string} [options.sandbox] - Sandbox directive for the created iframe, if desired. + */ + constructor(domain, options = {}) { + super(); + const { + roomName = '', + width = '100%', + height = '100%', + parentNode = document.body, + configOverwrite = {}, + interfaceConfigOverwrite = {}, + jwt, + lang, + onload, + invitees, + iceServers, + devices, + userInfo, + e2eeKey, + release, + sandbox + } = options; + const localStorageContent = jitsiLocalStorage.getItem('jitsiLocalStorage'); + + this._parentNode = parentNode; + + this._url = urlObjectToString({ + configOverwrite, + iceServers, + interfaceConfigOverwrite, + jwt, + lang, + roomName, + devices, + userInfo, + appData: { + localStorageContent + }, + release, + url: `https://${domain}/#jitsi_meet_external_api_id=${id}` + }); + + this._createIFrame(height, width, sandbox); + + this._transport = new Transport({ + backend: new PostMessageTransportBackend({ + postisOptions: { + allowedOrigin: new URL(this._url).origin, + scope: `jitsi_meet_external_api_${id}`, + window: this._frame.contentWindow + } + }) + }); + + if (Array.isArray(invitees) && invitees.length > 0) { + this.invite(invitees); + } + + this._onload = onload; + this._tmpE2EEKey = e2eeKey; + this._isLargeVideoVisible = false; + this._isPrejoinVideoVisible = false; + this._numberOfParticipants = 0; + this._participants = {}; + this._myUserID = undefined; + this._onStageParticipant = undefined; + this._iAmvisitor = undefined; + this._setupListeners(); + id++; + } + + /** + * Creates the iframe element. + * + * @param {number|string} height - The height of the iframe. Check + * parseSizeParam for format details. + * @param {number|string} width - The with of the iframe. Check + * parseSizeParam for format details. + * @param {string} sandbox - Sandbox directive for the created iframe, if desired. + * @returns {void} + * + * @private + */ + _createIFrame(height, width, sandbox) { + const frameName = `jitsiConferenceFrame${id}`; + + this._frame = document.createElement('iframe'); + this._frame.allow = [ + 'autoplay', + 'camera', + 'clipboard-write', + 'compute-pressure', + 'display-capture', + 'hid', + 'microphone', + 'screen-wake-lock', + 'speaker-selection' + ].join('; '); + this._frame.name = frameName; + this._frame.id = frameName; + this._setSize(height, width); + this._frame.setAttribute('allowFullScreen', 'true'); + this._frame.style.border = 0; + + if (sandbox) { + this._frame.sandbox = sandbox; + } + + this._frame.src = this._url; + + this._frame = this._parentNode.appendChild(this._frame); + } + + /** + * Returns arrays with the all resources for the always on top feature. + * + * @returns {Array} + */ + _getAlwaysOnTopResources() { + const iframeWindow = this._frame.contentWindow; + const iframeDocument = iframeWindow.document; + let baseURL = ''; + const base = iframeDocument.querySelector('base'); + + if (base && base.href) { + baseURL = base.href; + } else { + const { protocol, host } = iframeWindow.location; + + baseURL = `${protocol}//${host}`; + } + + return ALWAYS_ON_TOP_FILENAMES.map( + filename => new URL(filename, baseURL).href + ); + } + + /** + * Returns the formatted display name of a participant. + * + * @param {string} participantId - The id of the participant. + * @returns {string} The formatted display name. + */ + _getFormattedDisplayName(participantId) { + const { formattedDisplayName } + = this._participants[participantId] || {}; + + return formattedDisplayName; + } + + /** + * Returns the id of the on stage participant. + * + * @returns {string} - The id of the on stage participant. + */ + _getOnStageParticipant() { + return this._onStageParticipant; + } + + + /** + * Getter for the large video element in Jitsi Meet. + * + * @returns {HTMLElement|undefined} - The large video. + */ + _getLargeVideo() { + const iframe = this.getIFrame(); + + if (!this._isLargeVideoVisible + || !iframe + || !iframe.contentWindow + || !iframe.contentWindow.document) { + return; + } + + return iframe.contentWindow.document.getElementById('largeVideo'); + } + + /** + * Getter for the prejoin video element in Jitsi Meet. + * + * @returns {HTMLElement|undefined} - The prejoin video. + */ + _getPrejoinVideo() { + const iframe = this.getIFrame(); + + if (!this._isPrejoinVideoVisible + || !iframe + || !iframe.contentWindow + || !iframe.contentWindow.document) { + return; + } + + return iframe.contentWindow.document.getElementById('prejoinVideo'); + } + + /** + * Getter for participant specific video element in Jitsi Meet. + * + * @param {string|undefined} participantId - Id of participant to return the video for. + * + * @returns {HTMLElement|undefined} - The requested video. Will return the local video + * by default if participantId is undefined. + */ + _getParticipantVideo(participantId) { + const iframe = this.getIFrame(); + + if (!iframe + || !iframe.contentWindow + || !iframe.contentWindow.document) { + return; + } + + if (typeof participantId === 'undefined' || participantId === this._myUserID) { + return iframe.contentWindow.document.getElementById('localVideo_container'); + } + + return iframe.contentWindow.document.querySelector(`#participant_${participantId} video`); + } + + /** + * Sets the size of the iframe element. + * + * @param {number|string} height - The height of the iframe. + * @param {number|string} width - The with of the iframe. + * @returns {void} + * + * @private + */ + _setSize(height, width) { + const parsedHeight = parseSizeParam(height); + const parsedWidth = parseSizeParam(width); + + if (parsedHeight !== undefined) { + this._height = height; + this._frame.style.height = parsedHeight; + } + + if (parsedWidth !== undefined) { + this._width = width; + this._frame.style.width = parsedWidth; + } + } + + /** + * Setups listeners that are used internally for JitsiMeetExternalAPI. + * + * @returns {void} + * + * @private + */ + _setupListeners() { + this._transport.on('event', ({ name, ...data }) => { + const userID = data.id; + + switch (name) { + case 'ready': { + // Fake the iframe onload event because it's not reliable. + this._onload?.(); + + break; + } + case 'video-conference-joined': { + if (typeof this._tmpE2EEKey !== 'undefined') { + + const hexToBytes = hex => { + const bytes = []; + + for (let c = 0; c < hex.length; c += 2) { + bytes.push(parseInt(hex.substring(c, c + 2), 16)); + } + + return bytes; + }; + + this.executeCommand('setMediaEncryptionKey', JSON.stringify({ + exportedKey: hexToBytes(this._tmpE2EEKey), + index: 0 + })); + + this._tmpE2EEKey = undefined; + } + + this._myUserID = userID; + this._participants[userID] = { + email: data.email, + avatarURL: data.avatarURL + }; + this._iAmvisitor = data.visitor; + } + + // eslint-disable-next-line no-fallthrough + case 'participant-joined': { + this._participants[userID] = this._participants[userID] || {}; + this._participants[userID].displayName = data.displayName; + this._participants[userID].formattedDisplayName + = data.formattedDisplayName; + changeParticipantNumber(this, 1); + break; + } + case 'participant-left': + changeParticipantNumber(this, -1); + delete this._participants[userID]; + break; + case 'display-name-change': { + const user = this._participants[userID]; + + if (user) { + user.displayName = data.displayname; + user.formattedDisplayName = data.formattedDisplayName; + } + break; + } + case 'email-change': { + const user = this._participants[userID]; + + if (user) { + user.email = data.email; + } + break; + } + case 'avatar-changed': { + const user = this._participants[userID]; + + if (user) { + user.avatarURL = data.avatarURL; + } + break; + } + case 'on-stage-participant-changed': + this._onStageParticipant = userID; + this.emit('largeVideoChanged'); + break; + case 'large-video-visibility-changed': + this._isLargeVideoVisible = data.isVisible; + this.emit('largeVideoChanged'); + break; + case 'prejoin-screen-loaded': + this._participants[userID] = { + displayName: data.displayName, + formattedDisplayName: data.formattedDisplayName + }; + break; + case 'on-prejoin-video-changed': + this._isPrejoinVideoVisible = data.isVisible; + this.emit('prejoinVideoChanged'); + break; + case 'video-conference-left': + changeParticipantNumber(this, -1); + delete this._participants[this._myUserID]; + break; + case 'video-quality-changed': + this._videoQuality = data.videoQuality; + break; + case 'breakout-rooms-updated': + this.updateNumberOfParticipants(data.rooms); + break; + case 'local-storage-changed': + jitsiLocalStorage.setItem('jitsiLocalStorage', data.localStorageContent); + + // Since this is internal event we don't need to emit it to the consumer of the API. + return true; + } + + const eventName = events[name]; + + if (eventName) { + this.emit(eventName, data); + + return true; + } + + return false; + }); + + this._transport.on('request', (request, callback) => { + const requestName = requests[request.name]; + const data = { + ...request, + name: requestName + }; + + if (requestName) { + this.emit(requestName, data, callback); + } + }); + } + + /** + * Update number of participants based on all rooms. + * + * @param {Object} rooms - Rooms available rooms in the conference. + * @returns {void} + */ + updateNumberOfParticipants(rooms) { + if (!rooms || !Object.keys(rooms).length) { + return; + } + + const allParticipants = Object.keys(rooms).reduce((prev, roomItemKey) => { + if (rooms[roomItemKey]?.participants) { + return Object.keys(rooms[roomItemKey].participants).length + prev; + } + + return prev; + }, 0); + + this._numberOfParticipants = allParticipants; + } + + /** + * Returns the rooms info in the conference. + * + * @returns {Object} Rooms info. + */ + getRoomsInfo() { + return this._transport.sendRequest({ + name: 'rooms-info' + }); + } + + /** + * Returns the Shared Document Url of the conference. + * + * @returns {Object} Rooms info. + */ + getSharedDocumentUrl() { + return this._transport.sendRequest({ + name: 'get-shared-document-url' + }); + } + + /** + * Returns whether the conference is P2P. + * + * @returns {Promise} + */ + isP2pActive() { + return this._transport.sendRequest({ + name: 'get-p2p-status' + }); + } + + /** + * Adds event listener to Meet Jitsi. + * + * @param {string} event - The name of the event. + * @param {Function} listener - The listener. + * @returns {void} + * + * @deprecated + * NOTE: This method is not removed for backward comatability purposes. + */ + addEventListener(event, listener) { + this.on(event, listener); + } + + /** + * Adds event listeners to Meet Jitsi. + * + * @param {Object} listeners - The object key should be the name of + * the event and value - the listener. + * Currently we support the following + * events: + * {@code log} - receives event notifications whenever information has + * been logged and has a log level specified within {@code config.apiLogLevels}. + * The listener will receive object with the following structure: + * {{ + * logLevel: the message log level + * arguments: an array of strings that compose the actual log message + * }} + * {@code chatUpdated} - receives event notifications about chat state being + * updated. The listener will receive object with the following structure: + * {{ + * 'unreadCount': unreadCounter, // the unread message(s) counter, + * 'isOpen': isOpen, // whether the chat panel is open or not + * }} + * {@code incomingMessage} - receives event notifications about incoming + * messages. The listener will receive object with the following structure: + * {{ + * '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 + * }} + * {@code outgoingMessage} - receives event notifications about outgoing + * messages. The listener will receive object with the following structure: + * {{ + * 'message': txt//the text of the message + * }} + * {@code displayNameChanged} - receives event notifications about display + * name change. The listener will receive object with the following + * structure: + * {{ + * jid: jid,//the JID of the participant that changed his display name + * displayname: displayName //the new display name + * }} + * {@code participantJoined} - receives event notifications about new + * participant. + * The listener will receive object with the following structure: + * {{ + * jid: jid //the jid of the participant + * }} + * {@code participantLeft} - receives event notifications about the + * participant that left the room. + * The listener will receive object with the following structure: + * {{ + * jid: jid //the jid of the participant + * }} + * {@code videoConferenceJoined} - receives event notifications about the + * local user has successfully joined the video conference. + * The listener will receive object with the following structure: + * {{ + * roomName: room //the room name of the conference + * }} + * {@code videoConferenceLeft} - receives event notifications about the + * local user has left the video conference. + * The listener will receive object with the following structure: + * {{ + * roomName: room //the room name of the conference + * }} + * {@code screenSharingStatusChanged} - receives event notifications about + * turning on/off the local user screen sharing. + * The listener will receive object with the following structure: + * {{ + * on: on //whether screen sharing is on + * }} + * {@code dominantSpeakerChanged} - receives event notifications about + * change in the dominant speaker. + * The listener will receive object with the following structure: + * {{ + * id: participantId //participantId of the new dominant speaker + * }} + * {@code suspendDetected} - receives event notifications about detecting suspend event in host computer. + * {@code readyToClose} - all hangup operations are completed and Jitsi Meet + * is ready to be disposed. + * @returns {void} + * + * @deprecated + * NOTE: This method is not removed for backward comatability purposes. + */ + addEventListeners(listeners) { + for (const event in listeners) { // eslint-disable-line guard-for-in + this.addEventListener(event, listeners[event]); + } + } + + /** + * Captures the screenshot of the large video. + * + * @returns {Promise} - Resolves with a base64 encoded image data of the screenshot + * if large video is detected, an error otherwise. + */ + captureLargeVideoScreenshot() { + return this._transport.sendRequest({ + name: 'capture-largevideo-screenshot' + }); + } + + /** + * Captures a picture through OS camera. + * + * @param {string} cameraFacingMode - The OS camera facing mode (environment/user). + * @param {string} descriptionText - The OS camera facing mode (environment/user). + * @param {string} titleText - The OS camera facing mode (environment/user). + * @returns {Promise} - Resolves with a base64 encoded image data of the screenshot. + */ + captureCameraPicture( + cameraFacingMode, + descriptionText, + titleText + ) { + return this._transport.sendRequest({ + name: 'capture-camera-picture', + cameraFacingMode, + descriptionText, + titleText + }); + } + + /** + * Removes the listeners and removes the Jitsi Meet frame. + * + * @returns {void} + */ + dispose() { + this.emit('_willDispose'); + this._transport.dispose(); + this.removeAllListeners(); + if (this._frame && this._frame.parentNode) { + this._frame.parentNode.removeChild(this._frame); + } + } + + /** + * Executes command. The available commands are: + * {@code displayName} - Sets the display name of the local participant to + * the value passed in the arguments array. + * {@code subject} - Sets the subject of the conference, the value passed + * in the arguments array. Note: Available only for moderator. + * + * {@code toggleAudio} - Mutes / unmutes audio with no arguments. + * {@code toggleVideo} - Mutes / unmutes video with no arguments. + * {@code toggleFilmStrip} - Hides / shows the filmstrip with no arguments. + * + * If the command doesn't require any arguments the parameter should be set + * to empty array or it may be omitted. + * + * @param {string} name - The name of the command. + * @returns {void} + */ + executeCommand(name, ...args) { + if (!(name in commands)) { + console.error('Not supported command name.'); + + return; + } + this._transport.sendEvent({ + data: args, + name: commands[name] + }); + } + + /** + * Executes commands. The available commands are: + * {@code displayName} - Sets the display name of the local participant to + * the value passed in the arguments array. + * {@code toggleAudio} - Mutes / unmutes audio. No arguments. + * {@code toggleVideo} - Mutes / unmutes video. No arguments. + * {@code toggleFilmStrip} - Hides / shows the filmstrip. No arguments. + * {@code toggleChat} - Hides / shows chat. No arguments. + * {@code toggleShareScreen} - Starts / stops screen sharing. No arguments. + * + * @param {Object} commandList - The object with commands to be executed. + * The keys of the object are the commands that will be executed and the + * values are the arguments for the command. + * @returns {void} + */ + executeCommands(commandList) { + for (const key in commandList) { // eslint-disable-line guard-for-in + this.executeCommand(key, commandList[key]); + } + } + + /** + * Returns Promise that resolves with a list of available devices. + * + * @returns {Promise} + */ + getAvailableDevices() { + return getAvailableDevices(this._transport); + } + + /** + * Gets a list of the currently sharing participant id's. + * + * @returns {Promise} - Resolves with the list of participant id's currently sharing. + */ + getContentSharingParticipants() { + return this._transport.sendRequest({ + name: 'get-content-sharing-participants' + }); + } + + /** + * Returns Promise that resolves with current selected devices. + * + * @returns {Promise} + */ + getCurrentDevices() { + return getCurrentDevices(this._transport); + } + + /** + * Returns any custom avatars backgrounds. + * + * @returns {Promise} - Resolves with the list of custom avatar backgrounds. + */ + getCustomAvatarBackgrounds() { + return this._transport.sendRequest({ + name: 'get-custom-avatar-backgrounds' + }); + } + + /** + * Returns the current livestream url. + * + * @returns {Promise} - Resolves with the current livestream URL if exists, with + * undefined if not and rejects on failure. + */ + getLivestreamUrl() { + return this._transport.sendRequest({ + name: 'get-livestream-url' + }); + } + + /** + * Returns the conference participants information. + * + * @returns {Array} - Returns an array containing participants + * information like participant id, display name, avatar URL and email. + */ + getParticipantsInfo() { + const participantIds = Object.keys(this._participants); + const participantsInfo = Object.values(this._participants); + + participantsInfo.forEach((participant, idx) => { + participant.participantId = participantIds[idx]; + }); + + return participantsInfo; + } + + /** + * Returns the current video quality setting. + * + * @returns {number} + */ + getVideoQuality() { + return this._videoQuality; + } + + /** + * Check if the audio is available. + * + * @returns {Promise} - Resolves with true if the audio available, with + * false if not and rejects on failure. + */ + isAudioAvailable() { + return this._transport.sendRequest({ + name: 'is-audio-available' + }); + } + + /** + * Returns Promise that resolves with true if the device change is available + * and with false if not. + * + * @param {string} [deviceType] - Values - 'output', 'input' or undefined. + * Default - 'input'. + * @returns {Promise} + */ + isDeviceChangeAvailable(deviceType) { + return isDeviceChangeAvailable(this._transport, deviceType); + } + + /** + * Returns Promise that resolves with true if the device list is available + * and with false if not. + * + * @deprecated + * + * @returns {Promise} + */ + isDeviceListAvailable() { + console.warn('isDeviceListAvailable is deprecated and will be removed in the future. ' + + 'It always returns true'); + + return Promise.resolve(true); + } + + /** + * Returns Promise that resolves with true if multiple audio input is supported + * and with false if not. + * + * @returns {Promise} + */ + isMultipleAudioInputSupported() { + return isMultipleAudioInputSupported(this._transport); + } + + /** + * Invite people to the call. + * + * @param {Array} invitees - The invitees. + * @returns {Promise} - Resolves on success and rejects on failure. + */ + invite(invitees) { + if (!Array.isArray(invitees) || invitees.length === 0) { + return Promise.reject(new TypeError('Invalid Argument')); + } + + return this._transport.sendRequest({ + name: 'invite', + invitees + }); + } + + /** + * Returns the audio mute status. + * + * @returns {Promise} - Resolves with the audio mute status and rejects on + * failure. + */ + isAudioMuted() { + return this._transport.sendRequest({ + name: 'is-audio-muted' + }); + } + + /** + * Returns the audio disabled status. + * + * @returns {Promise} - Resolves with the audio disabled status and rejects on + * failure. + */ + isAudioDisabled() { + return this._transport.sendRequest({ + name: 'is-audio-disabled' + }); + } + + /** + * Returns the moderation on status on the given mediaType. + * + * @param {string} mediaType - The media type for which to check moderation. + * @returns {Promise} - Resolves with the moderation on status and rejects on + * failure. + */ + isModerationOn(mediaType) { + return this._transport.sendRequest({ + name: 'is-moderation-on', + mediaType + }); + } + + /** + * Returns force muted status of the given participant id for the given media type. + * + * @param {string} participantId - The id of the participant to check. + * @param {string} mediaType - The media type for which to check. + * @returns {Promise} - Resolves with the force muted status and rejects on + * failure. + */ + isParticipantForceMuted(participantId, mediaType) { + return this._transport.sendRequest({ + name: 'is-participant-force-muted', + participantId, + mediaType + }); + } + + /** + * Returns whether the participants pane is open. + * + * @returns {Promise} - Resolves with true if the participants pane is open + * and with false if not. + */ + isParticipantsPaneOpen() { + return this._transport.sendRequest({ + name: 'is-participants-pane-open' + }); + } + + /** + * Returns screen sharing status. + * + * @returns {Promise} - Resolves with screensharing status and rejects on failure. + */ + isSharingScreen() { + return this._transport.sendRequest({ + name: 'is-sharing-screen' + }); + } + + /** + * Returns whether meeting is started silent. + * + * @returns {Promise} - Resolves with start silent status. + */ + isStartSilent() { + return this._transport.sendRequest({ + name: 'is-start-silent' + }); + } + + /** + * Returns whether we have joined as visitor in a meeting. + * + * @returns {boolean} - Returns true if we have joined as visitor. + */ + isVisitor() { + return this._iAmvisitor; + } + + /** + * Returns the avatar URL of a participant. + * + * @param {string} participantId - The id of the participant. + * @returns {string} The avatar URL. + */ + getAvatarURL(participantId) { + const { avatarURL } = this._participants[participantId] || {}; + + return avatarURL; + } + + /** + * Gets the deployment info. + * + * @returns {Promise} - Resolves with the deployment info object. + */ + getDeploymentInfo() { + return this._transport.sendRequest({ + name: 'deployment-info' + }); + } + + /** + * Returns the display name of a participant. + * + * @param {string} participantId - The id of the participant. + * @returns {string} The display name. + */ + getDisplayName(participantId) { + const { displayName } = this._participants[participantId] || {}; + + return displayName; + } + + /** + * Returns the email of a participant. + * + * @param {string} participantId - The id of the participant. + * @returns {string} The email. + */ + getEmail(participantId) { + const { email } = this._participants[participantId] || {}; + + return email; + } + + /** + * Returns the iframe that loads Jitsi Meet. + * + * @returns {HTMLElement} The iframe. + */ + getIFrame() { + return this._frame; + } + + /** + * Returns the number of participants in the conference from all rooms. The local + * participant is included. + * + * @returns {int} The number of participants in the conference. + */ + getNumberOfParticipants() { + return this._numberOfParticipants; + } + + /** + * Return the conference`s sessionId. + * + * @returns {Promise} - Resolves with the conference`s sessionId. + */ + getSessionId() { + return this._transport.sendRequest({ + name: 'session-id' + }); + } + + /** + * Returns array of commands supported by executeCommand(). + * + * @returns {Array} Array of commands. + */ + getSupportedCommands() { + return Object.keys(commands); + } + + /** + * Returns array of events supported by addEventListener(). + * + * @returns {Array} Array of events. + */ + getSupportedEvents() { + return Object.values(events); + } + + /** + * Check if the video is available. + * + * @returns {Promise} - Resolves with true if the video available, with + * false if not and rejects on failure. + */ + isVideoAvailable() { + return this._transport.sendRequest({ + name: 'is-video-available' + }); + } + + /** + * Returns the audio mute status. + * + * @returns {Promise} - Resolves with the audio mute status and rejects on + * failure. + */ + isVideoMuted() { + return this._transport.sendRequest({ + name: 'is-video-muted' + }); + } + + /** + * Returns the list of breakout rooms. + * + * @returns {Promise} Resolves with the list of breakout rooms. + */ + listBreakoutRooms() { + return this._transport.sendRequest({ + name: 'list-breakout-rooms' + }); + } + + /** + * Returns the state of availability electron share screen via external api. + * + * @returns {Promise} + * + * TODO: should be removed after we make sure that all Electron clients use only versions + * after with the legacy SS support was removed from the electron SDK. If we remove it now the SS for Electron + * clients with older versions wont work. + */ + _isNewElectronScreensharingSupported() { + return this._transport.sendRequest({ + name: '_new_electron_screensharing_supported' + }); + } + + /** + * Pins a participant's video on to the stage view. + * + * @param {string} participantId - Participant id (JID) of the participant + * that needs to be pinned on the stage view. + * @param {string} [videoType] - Indicates the type of thumbnail to be pinned when multistream support is enabled. + * Accepts "camera" or "desktop" values. Default is "camera". Any invalid values will be ignored and default will + * be used. + * @returns {void} + */ + pinParticipant(participantId, videoType) { + this.executeCommand('pinParticipant', participantId, videoType); + } + + /** + * Removes event listener. + * + * @param {string} event - The name of the event. + * @returns {void} + * + * @deprecated + * NOTE: This method is not removed for backward comatability purposes. + */ + removeEventListener(event) { + this.removeAllListeners(event); + } + + /** + * Removes event listeners. + * + * @param {Array} eventList - Array with the names of the events. + * @returns {void} + * + * @deprecated + * NOTE: This method is not removed for backward comatability purposes. + */ + removeEventListeners(eventList) { + eventList.forEach(event => this.removeEventListener(event)); + } + + /** + * Resizes the large video container as per the dimensions provided. + * + * @param {number} width - Width that needs to be applied on the large video container. + * @param {number} height - Height that needs to be applied on the large video container. + * @returns {void} + */ + resizeLargeVideo(width, height) { + if (width <= this._width && height <= this._height) { + this.executeCommand('resizeLargeVideo', width, height); + } + } + + /** + * Passes an event along to the local conference participant to establish + * or update a direct peer connection. This is currently used for developing + * wireless screensharing with room integration and it is advised against to + * use as its api may change. + * + * @param {Object} event - An object with information to pass along. + * @param {Object} event.data - The payload of the event. + * @param {string} event.from - The jid of the sender of the event. Needed + * when a reply is to be sent regarding the event. + * @returns {void} + */ + sendProxyConnectionEvent(event) { + this._transport.sendEvent({ + data: [ event ], + name: 'proxy-connection-event' + }); + } + + /** + * Sets the audio input device to the one with the label or id that is + * passed. + * + * @param {string} label - The label of the new device. + * @param {string} deviceId - The id of the new device. + * @returns {Promise} + */ + setAudioInputDevice(label, deviceId) { + return setAudioInputDevice(this._transport, label, deviceId); + } + + /** + * Sets the audio output device to the one with the label or id that is + * passed. + * + * @param {string} label - The label of the new device. + * @param {string} deviceId - The id of the new device. + * @returns {Promise} + */ + setAudioOutputDevice(label, deviceId) { + return setAudioOutputDevice(this._transport, label, deviceId); + } + + /** + * Displays the given participant on the large video. If no participant id is specified, + * dominant and pinned speakers will be taken into consideration while selecting the + * the large video participant. + * + * @param {string} participantId - Jid of the participant to be displayed on the large video. + * @param {string} [videoType] - Indicates the type of video to be set when multistream support is enabled. + * Accepts "camera" or "desktop" values. Default is "camera". Any invalid values will be ignored and default will + * be used. + * @returns {void} + */ + setLargeVideoParticipant(participantId, videoType) { + this.executeCommand('setLargeVideoParticipant', participantId, videoType); + } + + /** + * Sets the video input device to the one with the label or id that is + * passed. + * + * @param {string} label - The label of the new device. + * @param {string} deviceId - The id of the new device. + * @returns {Promise} + */ + setVideoInputDevice(label, deviceId) { + return setVideoInputDevice(this._transport, label, deviceId); + } + + /** + * Starts a file recording or streaming session depending on the passed on params. + * For RTMP streams, `rtmpStreamKey` must be passed on. `rtmpBroadcastID` is optional. + * For youtube streams, `youtubeStreamKey` must be passed on. `youtubeBroadcastID` is optional. + * For dropbox recording, recording `mode` should be `file` and a dropbox oauth2 token must be provided. + * For file recording, recording `mode` should be `file` and optionally `shouldShare` could be passed on. + * No other params should be passed. + * + * @param {Object} options - An object with config options to pass along. + * @param { string } options.mode - Recording mode, either `file` or `stream`. + * @param { string } options.dropboxToken - Dropbox oauth2 token. + * @param { boolean } options.shouldShare - Whether the recording should be shared with the participants or not. + * Only applies to certain jitsi meet deploys. + * @param { string } options.rtmpStreamKey - The RTMP stream key. + * @param { string } options.rtmpBroadcastID - The RTMP broadcast ID. + * @param { string } options.youtubeStreamKey - The youtube stream key. + * @param { string } options.youtubeBroadcastID - The youtube broadcast ID. + * @param {Object } options.extraMetadata - Any extra metadata params for file recording. + * @param { boolean } arg.transcription - Whether a transcription should be started or not. + * @returns {void} + */ + startRecording(options) { + this.executeCommand('startRecording', options); + } + + /** + * Stops a recording or streaming session that is in progress. + * + * @param {string} mode - `file` or `stream`. + * @param {boolean} transcription - Whether the transcription needs to be stopped. + * @returns {void} + */ + stopRecording(mode, transcription) { + this.executeCommand('stopRecording', mode, transcription); + } + + /** + * Sets e2ee enabled/disabled. + * + * @param {boolean} enabled - The new value for e2ee enabled. + * @returns {void} + */ + toggleE2EE(enabled) { + this.executeCommand('toggleE2EE', enabled); + } + + /** + * Sets the key and keyIndex for e2ee. + * + * @param {Object} keyInfo - Json containing key information. + * @param {CryptoKey} [keyInfo.encryptionKey] - The encryption key. + * @param {number} [keyInfo.index] - The index of the encryption key. + * @returns {void} + */ + async setMediaEncryptionKey(keyInfo) { + const { key, index } = keyInfo; + + if (key) { + const exportedKey = await crypto.subtle.exportKey('raw', key); + + this.executeCommand('setMediaEncryptionKey', JSON.stringify({ + exportedKey: Array.from(new Uint8Array(exportedKey)), + index })); + } else { + this.executeCommand('setMediaEncryptionKey', JSON.stringify({ + exportedKey: false, + index })); + } + } + + /** + * Enable or disable the virtual background with a custom base64 image. + * + * @param {boolean} enabled - The boolean value to enable or disable. + * @param {string} backgroundImage - The base64 image. + * @returns {void} + */ + setVirtualBackground(enabled, backgroundImage) { + this.executeCommand('setVirtualBackground', enabled, backgroundImage); + } + + /** + * Opens the desktop picker. This is invoked by the Electron SDK when gDM is used. + * + * @returns {Promise} + */ + _openDesktopPicker() { + return this._transport.sendRequest({ + name: 'open-desktop-picker' + }); + } +} diff --git a/modules/API/external/functions.js b/modules/API/external/functions.js new file mode 100644 index 0000000..f1de18c --- /dev/null +++ b/modules/API/external/functions.js @@ -0,0 +1,139 @@ +import Logger from '@jitsi/logger'; + +const logger = Logger.getLogger(__filename); + +/** + * Returns Promise that resolves with result an list of available devices. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @returns {Promise} + */ +export function getAvailableDevices(transport) { + return transport.sendRequest({ + type: 'devices', + name: 'getAvailableDevices' + }).catch(e => { + logger.error(e); + + return {}; + }); +} + +/** + * Returns Promise that resolves with current selected devices. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @returns {Promise} + */ +export function getCurrentDevices(transport) { + return transport.sendRequest({ + type: 'devices', + name: 'getCurrentDevices' + }).catch(e => { + logger.error(e); + + return {}; + }); +} + +/** + * Returns Promise that resolves with true if the device change is available + * and with false if not. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @param {string} [deviceType] - Values - 'output', 'input' or undefined. + * Default - 'input'. + * @returns {Promise} + */ +export function isDeviceChangeAvailable(transport, deviceType) { + return transport.sendRequest({ + deviceType, + type: 'devices', + name: 'isDeviceChangeAvailable' + }); +} + +/** + * Returns Promise that resolves with true if multiple audio input is supported + * and with false if not. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @returns {Promise} + */ +export function isMultipleAudioInputSupported(transport) { + return transport.sendRequest({ + type: 'devices', + name: 'isMultipleAudioInputSupported' + }); +} + +/** + * Sets the audio input device to the one with the label or id that is passed. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @param {string} label - The label of the new device. + * @param {string} id - The id of the new device. + * @returns {Promise} + */ +export function setAudioInputDevice(transport, label, id) { + return _setDevice(transport, { + id, + kind: 'audioinput', + label + }); +} + +/** + * Sets the audio output device to the one with the label or id that is passed. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @param {string} label - The label of the new device. + * @param {string} id - The id of the new device. + * @returns {Promise} + */ +export function setAudioOutputDevice(transport, label, id) { + return _setDevice(transport, { + id, + kind: 'audiooutput', + label + }); +} + +/** + * Sets the currently used device to the one that is passed. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @param {Object} device - The new device to be used. + * @returns {Promise} + */ +function _setDevice(transport, device) { + return transport.sendRequest({ + type: 'devices', + name: 'setDevice', + device + }); +} + +/** + * Sets the video input device to the one with the label or id that is passed. + * + * @param {Transport} transport - The @code{Transport} instance responsible for + * the external communication. + * @param {string} label - The label of the new device. + * @param {string} id - The id of the new device. + * @returns {Promise} + */ +export function setVideoInputDevice(transport, label, id) { + return _setDevice(transport, { + id, + kind: 'videoinput', + label + }); +} diff --git a/modules/API/external/index.js b/modules/API/external/index.js new file mode 100644 index 0000000..7591e6f --- /dev/null +++ b/modules/API/external/index.js @@ -0,0 +1,3 @@ +// For legacy purposes, preserve the UMD of the public API of Jitsi Meet +// external API (a.k.a. JitsiMeetExternalAPI). +module.exports = require('./external_api').default; diff --git a/modules/API/index.js b/modules/API/index.js new file mode 100644 index 0000000..a82d686 --- /dev/null +++ b/modules/API/index.js @@ -0,0 +1,2 @@ +export { default } from './API'; +export * from './constants'; diff --git a/modules/UI/UI.js b/modules/UI/UI.js new file mode 100644 index 0000000..90349dc --- /dev/null +++ b/modules/UI/UI.js @@ -0,0 +1,234 @@ +/* global APP, config */ + + +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 +} from '../../react/features/notifications/actions'; +import { NOTIFICATION_TIMEOUT_TYPE } from '../../react/features/notifications/constants'; +import { joinLeaveNotificationsDisabled } from '../../react/features/notifications/functions'; +import { + dockToolbox, + setToolboxEnabled, + showToolbox +} from '../../react/features/toolbox/actions.web'; + +import EtherpadManager from './etherpad/Etherpad'; +import UIUtil from './util/UIUtil'; +import VideoLayout from './videolayout/VideoLayout'; + +const logger = Logger.getLogger(__filename); + +let etherpadManager; + +/** + * Indicates if we're currently in full screen mode. + * + * @return {boolean} {true} to indicate that we're currently in full screen + * mode, {false} otherwise + */ +UI.isFullScreen = function() { + return UIUtil.isFullScreen(); +}; + +/** + * Initialize conference UI. + */ +UI.initConference = function() { + UI.showToolbar(); +}; + +/** + * Starts the UI module and initializes all related components. + */ +UI.start = function() { + APP.store.dispatch(conferenceWillInit()); + + if (isMobileBrowser()) { + document.body.classList.add('mobile-browser'); + } else { + document.body.classList.add('desktop-browser'); + } + + if (config.backgroundAlpha !== undefined) { + const backgroundColor = getComputedStyle(document.body).getPropertyValue('background-color'); + const alphaColor = setColorAlpha(backgroundColor, config.backgroundAlpha); + + document.body.style.backgroundColor = alphaColor; + } + + if (config.iAmRecorder) { + // in case of iAmSipGateway keep local video visible + if (!config.iAmSipGateway) { + APP.store.dispatch(setNotificationsEnabled(false)); + } + + APP.store.dispatch(setToolboxEnabled(false)); + } +}; + +/** + * Handles etherpad click. + */ +UI.onEtherpadClicked = function() { + etherpadManager && etherpadManager.toggleEtherpad(); +}; + +/** + * + */ +function onResize() { + VideoLayout.onResize(); +} + +/** + * Setup some DOM event listeners. + */ +UI.bindEvents = () => { + // Resize and reposition videos in full screen mode. + document.addEventListener('webkitfullscreenchange', onResize); + document.addEventListener('mozfullscreenchange', onResize); + document.addEventListener('fullscreenchange', onResize); + + window.addEventListener('resize', onResize); +}; + +/** + * Unbind some DOM event listeners. + */ +UI.unbindEvents = () => { + document.removeEventListener('webkitfullscreenchange', onResize); + document.removeEventListener('mozfullscreenchange', onResize); + document.removeEventListener('fullscreenchange', onResize); + + window.removeEventListener('resize', onResize); +}; + +/** + * Setup and show Etherpad. + * @param {string} name etherpad id + */ +UI.initEtherpad = name => { + const { getState, dispatch } = APP.store; + const configState = getState()['features/base/config']; + const etherpadBaseUrl = sanitizeUrl(configState.etherpad_base); + + if (etherpadManager || !etherpadBaseUrl || !name) { + return; + } + logger.log('Etherpad is enabled'); + + etherpadManager = new EtherpadManager(); + + const url = new URL(name, etherpadBaseUrl); + + dispatch(setDocumentUrl(url.toString())); + + if (configState.openSharedDocumentOnJoin) { + etherpadManager.toggleEtherpad(); + } +}; + +/** + * Returns the shared document manager object. + * @return {EtherpadManager} the shared document manager object + */ +UI.getSharedDocumentManager = () => etherpadManager; + +/** + * Show user on UI. + * @param {JitsiParticipant} user + */ +UI.addUser = function(user) { + const status = user.getStatus(); + + if (status) { + // FIXME: move updateUserStatus in participantPresenceChanged action + UI.updateUserStatus(user, status); + } +}; + +/** + * Updates the user status. + * + * @param {JitsiParticipant} user - The user which status we need to update. + * @param {string} status - The new status. + */ +UI.updateUserStatus = (user, status) => { + const reduxState = APP.store.getState() || {}; + const { calleeInfoVisible } = reduxState['features/invite'] || {}; + + // We hide status updates when join/leave notifications are disabled, + // as jigasi is the component with statuses and they are seen as join/leave notifications. + if (!status || calleeInfoVisible || joinLeaveNotificationsDisabled()) { + return; + } + + const displayName = user.getDisplayName(); + + APP.store.dispatch(showNotification({ + titleKey: `${displayName} connected`, + descriptionKey: 'dialOut.statusMessage' + }, NOTIFICATION_TIMEOUT_TYPE.SHORT)); +}; + +/** + * Sets muted video state for participant + */ +UI.setVideoMuted = function(id) { + VideoLayout._updateLargeVideoIfDisplayed(id, true); + + if (APP.conference.isLocalId(id)) { + APP.conference.updateVideoIconEnabled(); + } +}; + +UI.updateLargeVideo = (id, forceUpdate) => VideoLayout.updateLargeVideo(id, forceUpdate); + +// Used by torture. +UI.showToolbar = timeout => APP.store.dispatch(showToolbox(timeout)); + +// Used by torture. +UI.dockToolbar = dock => APP.store.dispatch(dockToolbox(dock)); + +UI.handleLastNEndpoints = function(leavingIds, enteringIds) { + VideoLayout.onLastNEndpointsChanged(leavingIds, enteringIds); +}; + +/** + * Update audio level visualization for specified user. + * @param {string} id user id + * @param {number} lvl audio level + */ +UI.setAudioLevel = (id, lvl) => VideoLayout.setAudioLevel(id, lvl); + +/** + * Returns the id of the current video shown on large. + * Currently used by tests (torture). + */ +UI.getLargeVideoID = function() { + return VideoLayout.getLargeVideoID(); +}; + +/** + * Returns the current video shown on large. + * Currently used by tests (torture). + */ +UI.getLargeVideo = function() { + return VideoLayout.getLargeVideo(); +}; + +// TODO: Export every function separately. For now there is no point of doing +// this because we are importing everything. +export default UI; diff --git a/modules/UI/UIErrors.js b/modules/UI/UIErrors.js new file mode 100644 index 0000000..7de7317 --- /dev/null +++ b/modules/UI/UIErrors.js @@ -0,0 +1,17 @@ +/** + * A list of all UI errors. + */ + +/** + * Indicates that a Feedback request is currently in progress. + * + * @type {{FEEDBACK_REQUEST_IN_PROGRESS: string}} + */ +export const FEEDBACK_REQUEST_IN_PROGRESS = 'FeedbackRequestInProgress'; + +/** + * Indicated an attempted audio only screen share session with no audio track present + * + * @type {{AUDIO_ONLY_SCREEN_SHARE_NO_TRACK: string}} + */ +export const AUDIO_ONLY_SCREEN_SHARE_NO_TRACK = 'AudioOnlyScreenShareNoTrack'; diff --git a/modules/UI/audio_levels/AudioLevels.js b/modules/UI/audio_levels/AudioLevels.js new file mode 100644 index 0000000..92853ea --- /dev/null +++ b/modules/UI/audio_levels/AudioLevels.js @@ -0,0 +1,66 @@ +/* global interfaceConfig */ + +import UIUtil from '../util/UIUtil'; + +/** + * Responsible for drawing audio levels. + */ +const AudioLevels = { + /** + * Updates the audio level of the large video. + * + * @param audioLevel the new audio level to set. + */ + updateLargeVideoAudioLevel(elementId, audioLevel) { + const element = document.getElementById(elementId); + + if (!UIUtil.isVisible(element)) { + return; + } + + let level = parseFloat(audioLevel); + + level = isNaN(level) ? 0 : level; + + let shadowElement = element.getElementsByClassName('dynamic-shadow'); + + if (shadowElement && shadowElement.length > 0) { + shadowElement = shadowElement[0]; + } + + shadowElement.style.boxShadow = this._updateLargeVideoShadow(level); + }, + + /** + * Updates the large video shadow effect. + */ + _updateLargeVideoShadow(level) { + const scale = 2; + + // Internal circle audio level. + const int = { + level: level > 0.15 ? 20 : 0, + color: interfaceConfig.AUDIO_LEVEL_PRIMARY_COLOR + }; + + // External circle audio level. + const ext = { + level: parseFloat( + ((int.level * scale * level) + int.level).toFixed(0)), + color: interfaceConfig.AUDIO_LEVEL_SECONDARY_COLOR + }; + + // Internal blur. + int.blur = int.level ? 2 : 0; + + // External blur. + ext.blur = ext.level ? 6 : 0; + + return [ + `0 0 ${int.blur}px ${int.level}px ${int.color}`, + `0 0 ${ext.blur}px ${ext.level}px ${ext.color}` + ].join(', '); + } +}; + +export default AudioLevels; diff --git a/modules/UI/etherpad/Etherpad.js b/modules/UI/etherpad/Etherpad.js new file mode 100644 index 0000000..9031bcd --- /dev/null +++ b/modules/UI/etherpad/Etherpad.js @@ -0,0 +1,186 @@ +/* global APP, interfaceConfig */ + +import $ from 'jquery'; + +import { setDocumentEditingState } from '../../../react/features/etherpad/actions'; +import { getSharedDocumentUrl } from '../../../react/features/etherpad/functions'; +import { getToolboxHeight } from '../../../react/features/toolbox/functions.web'; +import Filmstrip from '../videolayout/Filmstrip'; +import LargeContainer from '../videolayout/LargeContainer'; +import VideoLayout from '../videolayout/VideoLayout'; + + +/** + * Default Etherpad frame width. + */ +const DEFAULT_WIDTH = 640; + +/** + * Default Etherpad frame height. + */ +const DEFAULT_HEIGHT = 480; + +const ETHERPAD_CONTAINER_TYPE = 'etherpad'; + +/** + * Container for Etherpad iframe. + */ +class Etherpad extends LargeContainer { + /** + * Creates new Etherpad object + */ + constructor(url) { + super(); + + const iframe = document.createElement('iframe'); + + iframe.id = 'etherpadIFrame'; + iframe.src = url; + iframe.style.border = 0; + iframe.scrolling = 'no'; + iframe.width = DEFAULT_WIDTH; + iframe.height = DEFAULT_HEIGHT; + iframe.setAttribute('style', 'visibility: hidden;'); + + this.container.appendChild(iframe); + + this.iframe = iframe; + } + + /** + * + */ + get isOpen() { + return Boolean(this.iframe); + } + + /** + * + */ + get container() { + return document.getElementById('etherpad'); + } + + /** + * + */ + resize(containerWidth, containerHeight) { + let height, width; + + if (interfaceConfig.VERTICAL_FILMSTRIP) { + height = containerHeight - getToolboxHeight(); + width = containerWidth - Filmstrip.getVerticalFilmstripWidth(); + } else { + height = containerHeight - Filmstrip.getFilmstripHeight(); + width = containerWidth; + } + + $(this.iframe) + .width(width) + .height(height); + } + + /** + * + */ + show() { + const $iframe = $(this.iframe); + const $container = $(this.container); + const self = this; + + return new Promise(resolve => { + $iframe.fadeIn(300, () => { + self.bodyBackground = document.body.style.background; + document.body.style.background = '#eeeeee'; + $iframe.css({ visibility: 'visible' }); + $container.css({ zIndex: 2 }); + + APP.store.dispatch(setDocumentEditingState(true)); + + resolve(); + }); + }); + } + + /** + * + */ + hide() { + const $iframe = $(this.iframe); + const $container = $(this.container); + + document.body.style.background = this.bodyBackground; + + return new Promise(resolve => { + $iframe.fadeOut(300, () => { + $iframe.css({ visibility: 'hidden' }); + $container.css({ zIndex: 0 }); + + APP.store.dispatch(setDocumentEditingState(false)); + + resolve(); + }); + }); + } + + /** + * @return {boolean} do not switch on dominant speaker event if on stage. + */ + stayOnStage() { + return true; + } +} + +/** + * Manager of the Etherpad frame. + */ +export default class EtherpadManager { + /** + * + */ + constructor() { + this.etherpad = null; + } + + /** + * + */ + get isOpen() { + return Boolean(this.etherpad); + } + + /** + * + */ + isVisible() { + return VideoLayout.isLargeContainerTypeVisible(ETHERPAD_CONTAINER_TYPE); + } + + /** + * Create new Etherpad frame. + */ + openEtherpad() { + this.etherpad = new Etherpad(getSharedDocumentUrl(APP.store.getState)); + VideoLayout.addLargeVideoContainer( + ETHERPAD_CONTAINER_TYPE, + this.etherpad + ); + } + + /** + * Toggle Etherpad frame visibility. + * Open new Etherpad frame if there is no Etherpad frame yet. + */ + toggleEtherpad() { + if (!this.isOpen) { + this.openEtherpad(); + } + + const isVisible = this.isVisible(); + + VideoLayout.showLargeVideoContainer( + ETHERPAD_CONTAINER_TYPE, !isVisible); + + APP.store.dispatch(setDocumentEditingState(!isVisible)); + } +} diff --git a/modules/UI/util/UIUtil.js b/modules/UI/util/UIUtil.js new file mode 100644 index 0000000..1ed4b6e --- /dev/null +++ b/modules/UI/util/UIUtil.js @@ -0,0 +1,59 @@ +import $ from 'jquery'; + +/** + * Created by hristo on 12/22/14. + */ +const UIUtil = { + + /** + * Escapes the given text. + */ + escapeHtml(unsafeText) { + return $('
').text(unsafeText) + .html(); + }, + + /** + * Inserts given child element as the first one into the container. + * @param container the container to which new child element will be added + * @param newChild the new element that will be inserted into the container + */ + prependChild(container, newChild) { + const firstChild = container.childNodes[0]; + let result; + + if (firstChild) { + result = container.insertBefore(newChild, firstChild); + } else { + result = container.appendChild(newChild); + } + + return result; + }, + + /** + * Indicates if we're currently in full screen mode. + * + * @return {boolean} {true} to indicate that we're currently in full screen + * mode, {false} otherwise + */ + isFullScreen() { + return Boolean(document.fullscreenElement + || document.mozFullScreenElement + || document.webkitFullscreenElement + || document.msFullscreenElement); + }, + + /** + * Checks if the given DOM element is currently visible. The offsetParent + * will be null if the "display" property of the element or any of its + * parent containers is set to "none". This method will NOT check the + * visibility property though. + * @param {el} The DOM element we'd like to check for visibility + */ + isVisible(el) { + return el.offsetParent !== null; + } +}; + +export default UIUtil; diff --git a/modules/UI/videolayout/Filmstrip.js b/modules/UI/videolayout/Filmstrip.js new file mode 100644 index 0000000..0c57333 --- /dev/null +++ b/modules/UI/videolayout/Filmstrip.js @@ -0,0 +1,34 @@ +/* global APP, interfaceConfig */ + +import { + getVerticalFilmstripVisibleAreaWidth, + isFilmstripVisible +} from '../../../react/features/filmstrip/functions'; + +const Filmstrip = { + /** + * Returns the height of filmstrip + * @returns {number} height + */ + getFilmstripHeight() { + // FIXME Make it more clear the getFilmstripHeight check is used in + // horizontal film strip mode for calculating how tall large video + // display should be. + if (isFilmstripVisible(APP.store) && !interfaceConfig.VERTICAL_FILMSTRIP) { + return document.querySelector('.filmstrip')?.offsetHeight ?? 0; + } + + return 0; + }, + + /** + * Returns the width of the vertical filmstrip if the filmstrip is visible and 0 otherwise. + * + * @returns {number} - The width of the vertical filmstrip if the filmstrip is visible and 0 otherwise. + */ + getVerticalFilmstripWidth() { + return isFilmstripVisible(APP.store) ? getVerticalFilmstripVisibleAreaWidth() : 0; + } +}; + +export default Filmstrip; diff --git a/modules/UI/videolayout/LargeContainer.js b/modules/UI/videolayout/LargeContainer.js new file mode 100644 index 0000000..1fe130f --- /dev/null +++ b/modules/UI/videolayout/LargeContainer.js @@ -0,0 +1,67 @@ + +/** + * Base class for all Large containers which we can show. + */ +export default class LargeContainer { + /* eslint-disable no-unused-vars, no-empty-function */ + /** + * Show this container. + * @returns Promise + */ + show() { + } + + /** + * Hide this container. + * @returns Promise + */ + hide() { + } + + /** + * Resize this container. + * @param {number} containerWidth available width + * @param {number} containerHeight available height + * @param {boolean} animate if container should animate it's resize process + */ + resize(containerWidth, containerHeight, animate) { + } + + /** + * Handler for "hover in" events. + */ + onHoverIn(e) { + } + + /** + * Handler for "hover out" events. + */ + onHoverOut(e) { + } + + /** + * Update video stream. + * @param {string} userID + * @param {JitsiTrack?} stream new stream + * @param {string} videoType video type + */ + setStream(userID, stream, videoType) { + } + + /** + * Show or hide user avatar. + * @param {boolean} show + */ + showAvatar(show) { + } + + /** + * Whether current container needs to be switched on dominant speaker event + * when the container is on stage. + * @return {boolean} + */ + stayOnStage() { + } + + /* eslint-enable no-unused-vars, no-empty-function */ +} diff --git a/modules/UI/videolayout/LargeVideoManager.js b/modules/UI/videolayout/LargeVideoManager.js new file mode 100644 index 0000000..49064aa --- /dev/null +++ b/modules/UI/videolayout/LargeVideoManager.js @@ -0,0 +1,780 @@ +/* global APP */ +/* eslint-disable no-unused-vars */ +import Logger from '@jitsi/logger'; +import $ from 'jquery'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import { I18nextProvider } from 'react-i18next'; +import { Provider } from 'react-redux'; + +import { createScreenSharingIssueEvent } from '../../../react/features/analytics/AnalyticsEvents'; +import { sendAnalytics } from '../../../react/features/analytics/functions'; +import Avatar from '../../../react/features/base/avatar/components/Avatar'; +import theme from '../../../react/features/base/components/themes/participantsPaneTheme.json'; +import { getSsrcRewritingFeatureFlag } from '../../../react/features/base/config/functions.any'; +import i18next from '../../../react/features/base/i18n/i18next'; +import { JitsiTrackEvents } from '../../../react/features/base/lib-jitsi-meet'; +import { VIDEO_TYPE } from '../../../react/features/base/media/constants'; +import { + getLocalParticipant, + getParticipantById, + getParticipantDisplayName, + isLocalScreenshareParticipant, + isScreenShareParticipant +} from '../../../react/features/base/participants/functions'; +import { getHideSelfView } from '../../../react/features/base/settings/functions.any'; +import { trackStreamingStatusChanged } from '../../../react/features/base/tracks/actions.any'; +import { getVideoTrackByParticipant } from '../../../react/features/base/tracks/functions.any'; +import { CHAT_SIZE } from '../../../react/features/chat/constants'; +import { + isTrackStreamingStatusActive, + isTrackStreamingStatusInactive, + isTrackStreamingStatusInterrupted +} from '../../../react/features/connection-indicator/functions'; +import { FILMSTRIP_BREAKPOINT } from '../../../react/features/filmstrip/constants'; +import { getVerticalViewMaxWidth, isFilmstripResizable } from '../../../react/features/filmstrip/functions'; +import { + updateKnownLargeVideoResolution +} from '../../../react/features/large-video/actions'; +import { getParticipantsPaneOpen } from '../../../react/features/participants-pane/functions'; +import PresenceLabel from '../../../react/features/presence-status/components/PresenceLabel'; +import { shouldDisplayTileView } from '../../../react/features/video-layout/functions.any'; +/* eslint-enable no-unused-vars */ +import { createDeferred } from '../../util/helpers'; +import AudioLevels from '../audio_levels/AudioLevels'; + +import { VIDEO_CONTAINER_TYPE, VideoContainer } from './VideoContainer'; + +const logger = Logger.getLogger(__filename); + +const DESKTOP_CONTAINER_TYPE = 'desktop'; + +/** + * Manager for all Large containers. + */ +export default class LargeVideoManager { + /** + * Checks whether given container is a {@link VIDEO_CONTAINER_TYPE}. + * FIXME currently this is a workaround for the problem where video type is + * mixed up with container type. + * @param {string} containerType + * @return {boolean} + */ + static isVideoContainer(containerType) { + return containerType === VIDEO_CONTAINER_TYPE + || containerType === DESKTOP_CONTAINER_TYPE; + } + + /** + * + */ + constructor() { + /** + * The map of LargeContainers where the key is the video + * container type. + * @type {Object.} + */ + this.containers = {}; + + this.state = VIDEO_CONTAINER_TYPE; + + // FIXME: We are passing resizeContainer as parameter which is calling + // Container.resize. Probably there's better way to implement this. + this.videoContainer = new VideoContainer(() => this.resizeContainer(VIDEO_CONTAINER_TYPE)); + this.addContainer(VIDEO_CONTAINER_TYPE, this.videoContainer); + + // use the same video container to handle desktop tracks + this.addContainer(DESKTOP_CONTAINER_TYPE, this.videoContainer); + + /** + * The preferred width passed as an argument to {@link updateContainerSize}. + * + * @type {number|undefined} + */ + this.preferredWidth = undefined; + + /** + * The preferred height passed as an argument to {@link updateContainerSize}. + * + * @type {number|undefined} + */ + this.preferredHeight = undefined; + + /** + * The calculated width that will be used for the large video. + * @type {number} + */ + this.width = 0; + + /** + * The calculated height that will be used for the large video. + * @type {number} + */ + this.height = 0; + + /** + * Cache the aspect ratio of the video displayed to detect changes to + * the aspect ratio on video resize events. + * + * @type {number} + */ + this._videoAspectRatio = 0; + + /** + * The video track in effect. + * This is used to add and remove listeners on track streaming status change. + * + * @type {Object} + */ + this.videoTrack = undefined; + + this.container = document.getElementById('largeVideoContainer'); + + this.container.style.display = 'inline-block'; + + this.container.addEventListener('mouseenter', e => this.onHoverIn(e)); + this.container.addEventListener('mouseleave', e => this.onHoverOut(e)); + + // Bind event handler so it is only bound once for every instance. + this._onVideoResolutionUpdate + = this._onVideoResolutionUpdate.bind(this); + + this.videoContainer.addResizeListener(this._onVideoResolutionUpdate); + + this._dominantSpeakerAvatarContainer + = document.getElementById('dominantSpeakerAvatarContainer'); + } + + /** + * Removes any listeners registered on child components, including + * React Components. + * + * @returns {void} + */ + destroy() { + this.videoContainer.removeResizeListener(this._onVideoResolutionUpdate); + + // Remove track streaming status listener. + // TODO: when this class is converted to a function react component, + // use a custom hook to update a local track streaming status. + if (this.videoTrack && !this.videoTrack.local) { + this.videoTrack.jitsiTrack.off(JitsiTrackEvents.TRACK_STREAMING_STATUS_CHANGED, + this.handleTrackStreamingStatusChanged); + APP.store.dispatch(trackStreamingStatusChanged(this.videoTrack.jitsiTrack, + this.videoTrack.jitsiTrack.getTrackStreamingStatus())); + } + + this.removePresenceLabel(); + + ReactDOM.unmountComponentAtNode(this._dominantSpeakerAvatarContainer); + + this.container.style.display = 'none'; + } + + /** + * + */ + onHoverIn(e) { + if (!this.state) { + return; + } + const container = this.getCurrentContainer(); + + container.onHoverIn(e); + } + + /** + * + */ + onHoverOut(e) { + if (!this.state) { + return; + } + const container = this.getCurrentContainer(); + + container.onHoverOut(e); + } + + /** + * + */ + get id() { + const container = this.getCurrentContainer(); + + // If a user switch for large video is in progress then provide what + // will be the end result of the update. + if (this.updateInProcess + && this.newStreamData + && this.newStreamData.id !== container.id) { + return this.newStreamData.id; + } + + return container.id; + } + + /** + * + */ + scheduleLargeVideoUpdate() { + if (this.updateInProcess || !this.newStreamData) { + return; + } + + this.updateInProcess = true; + + // Include hide()/fadeOut if we're switching between users or between different sources of the same user. + const container = this.getCurrentContainer(); + const isUserSwitch = container.id !== this.newStreamData.id + || container.stream?.getSourceName() !== this.newStreamData.stream?.getSourceName(); + const preUpdate = isUserSwitch ? container.hide() : Promise.resolve(); + + preUpdate.then(() => { + const { id, stream, videoType, resolve } = this.newStreamData; + + this.newStreamData = null; + + const state = APP.store.getState(); + const shouldHideSelfView = getHideSelfView(state); + const localId = getLocalParticipant(state)?.id; + + + // FIXME this does not really make sense, because the videoType + // (camera or desktop) is a completely different thing than + // the video container type (Etherpad, SharedVideo, VideoContainer). + const isVideoContainer = LargeVideoManager.isVideoContainer(videoType); + + logger.debug(`Scheduled large video update for ${id}`); + this.state = videoType; + // eslint-disable-next-line no-shadow + const container = this.getCurrentContainer(); + + if (shouldHideSelfView && localId === id) { + return container.hide(); + } + + container.setStream(id, stream, videoType); + + // change the avatar url on large + this.updateAvatar(); + + const isVideoMuted = !stream || stream.isMuted(); + const participant = getParticipantById(state, id); + const videoTrack = getVideoTrackByParticipant(state, participant); + + // Remove track streaming status listener from the old track and add it to the new track, + // in order to stop updating track streaming status for the old track and start it for the new track. + // TODO: when this class is converted to a function react component, + // use a custom hook to update a local track streaming status. + if (this.videoTrack?.jitsiTrack?.getSourceName() !== videoTrack?.jitsiTrack?.getSourceName() + || this.videoTrack?.jitsiTrack?.isP2P !== videoTrack?.jitsiTrack?.isP2P) { + // In the case where we switch from jvb to p2p when we need to switch the p2p and jvb track, they will be + // with the same source name. In order to add the streaming status listener we need to check if the isP2P + // flag is different. Without this check we won't have the correct stream status listener for the track. + // Normally the Thumbnail and ConnectionIndicator components will update the streaming status the same way + // and this may mask the problem. But if for some reason the update from the Thumbnail and + // ConnectionIndicator components don't happen this may lead to showing the avatar instead of + // the video because of the old track inactive streaming status. + if (this.videoTrack && !this.videoTrack.local) { + this.videoTrack.jitsiTrack.off(JitsiTrackEvents.TRACK_STREAMING_STATUS_CHANGED, + this.handleTrackStreamingStatusChanged); + APP.store.dispatch(trackStreamingStatusChanged(this.videoTrack.jitsiTrack, + this.videoTrack.jitsiTrack.getTrackStreamingStatus())); + } + + this.videoTrack = videoTrack; + + if (this.videoTrack && !this.videoTrack.local) { + this.videoTrack.jitsiTrack.on(JitsiTrackEvents.TRACK_STREAMING_STATUS_CHANGED, + this.handleTrackStreamingStatusChanged); + APP.store.dispatch(trackStreamingStatusChanged(this.videoTrack.jitsiTrack, + this.videoTrack.jitsiTrack.getTrackStreamingStatus())); + } + } + const streamingStatusActive = isTrackStreamingStatusActive(videoTrack); + const isVideoRenderable = !isVideoMuted + && (APP.conference.isLocalId(id) + || isLocalScreenshareParticipant(participant) + || streamingStatusActive + ); + + const isAudioOnly = APP.conference.isAudioOnly(); + + // Multi-stream is not supported on plan-b endpoints even if its is enabled via config.js. A virtual + // screenshare tile is still created when a remote endpoint starts screenshare to keep the behavior + // consistent and an avatar is displayed on the original participant thumbnail as long as screenshare is in + // progress. + const legacyScreenshare = videoType === VIDEO_TYPE.DESKTOP && !isScreenShareParticipant(participant); + + const showAvatar + = isVideoContainer + && ((isAudioOnly && videoType !== VIDEO_TYPE.DESKTOP) || !isVideoRenderable || legacyScreenshare); + + logger.debug(`scheduleLargeVideoUpdate: Remote track ${videoTrack?.jitsiTrack}, isVideoMuted=${ + isVideoMuted}, streamingStatusActive=${streamingStatusActive}, isVideoRenderable=${ + isVideoRenderable}, showAvatar=${showAvatar}`); + + let promise; + + // do not show stream if video is muted + // but we still should show watermark + if (showAvatar) { + this.showWatermark(true); + + // If the intention of this switch is to show the avatar + // we need to make sure that the video is hidden + promise = container.hide(); + + if ((!shouldDisplayTileView(state) || participant?.pinned) // In theory the tile view may not be + // enabled yet when we auto pin the participant. + + && participant && !participant.local && !participant.fakeParticipant) { + // remote participant only + + const track = getVideoTrackByParticipant(state, participant); + + const isScreenSharing = track?.videoType === 'desktop'; + + if (isScreenSharing) { + // send the event + sendAnalytics(createScreenSharingIssueEvent({ + source: 'large-video', + isVideoMuted, + isAudioOnly, + isVideoContainer, + videoType + })); + } + } + + } else { + promise = container.show(); + } + + // show the avatar on large if needed + container.showAvatar(showAvatar); + + // Clean up audio level after previous speaker. + if (showAvatar) { + this.updateLargeVideoAudioLevel(0); + } + + const messageKey = isTrackStreamingStatusInactive(videoTrack) ? 'connection.LOW_BANDWIDTH' : null; + + // Do not show connection status message in the audio only mode, + // because it's based on the video playback status. + const overrideAndHide = APP.conference.isAudioOnly(); + + this.updateParticipantConnStatusIndication( + id, + !overrideAndHide && messageKey); + + // Change the participant id the presence label is listening to. + this.updatePresenceLabel(id); + + this.videoContainer.positionRemoteStatusMessages(); + + // resolve updateLargeVideo promise after everything is done + promise.then(resolve); + + return promise; + }).then(() => { + // after everything is done check again if there are any pending + // new streams. + this.updateInProcess = false; + this.scheduleLargeVideoUpdate(); + }); + } + + /** + * Handle track streaming status change event by + * by dispatching an action to update track streaming status for the given track in app state. + * + * @param {JitsiTrack} jitsiTrack the track with streaming status updated + * @param {JitsiTrackStreamingStatus} streamingStatus the updated track streaming status + * + * @private + */ + handleTrackStreamingStatusChanged(jitsiTrack, streamingStatus) { + APP.store.dispatch(trackStreamingStatusChanged(jitsiTrack, streamingStatus)); + } + + /** + * Shows/hides notification about participant's connectivity issues to be + * shown on the large video area. + * + * @param {string} id the id of remote participant(MUC nickname) + * @param {string|null} messageKey the i18n key of the message which will be + * displayed on the large video or null to hide it. + * + * @private + */ + updateParticipantConnStatusIndication(id, messageKey) { + const state = APP.store.getState(); + + if (messageKey) { + // Get user's display name + const displayName + = getParticipantDisplayName(state, id); + + this._setRemoteConnectionMessage( + messageKey, + { displayName }); + + // Show it now only if the VideoContainer is on top + this.showRemoteConnectionMessage( + LargeVideoManager.isVideoContainer(this.state)); + } else { + // Hide the message + this.showRemoteConnectionMessage(false); + } + + } + + /** + * Update large video. + * Switches to large video even if previously other container was visible. + * @param userID the userID of the participant associated with the stream + * @param {JitsiTrack?} stream new stream + * @param {string?} videoType new video type + * @returns {Promise} + */ + updateLargeVideo(userID, stream, videoType) { + if (this.newStreamData) { + this.newStreamData.reject(); + } + + this.newStreamData = createDeferred(); + this.newStreamData.id = userID; + this.newStreamData.stream = stream; + this.newStreamData.videoType = videoType; + + this.scheduleLargeVideoUpdate(); + + return this.newStreamData.promise; + } + + /** + * Update container size. + */ + updateContainerSize(width, height) { + if (typeof width === 'number') { + this.preferredWidth = width; + } + if (typeof height === 'number') { + this.preferredHeight = height; + } + + let widthToUse = this.preferredWidth || window.innerWidth; + const state = APP.store.getState(); + const { isOpen } = state['features/chat']; + const { width: filmstripWidth, visible } = state['features/filmstrip']; + const isParticipantsPaneOpen = getParticipantsPaneOpen(state); + const resizableFilmstrip = isFilmstripResizable(state); + + if (isParticipantsPaneOpen) { + widthToUse -= theme.participantsPaneWidth; + } + + if (isOpen && window.innerWidth > 580) { + /** + * If chat state is open, we re-compute the container width + * by subtracting the chat width, which may be resized by the user. + */ + const chatWidth = state['features/chat'].width?.current ?? CHAT_SIZE; + + widthToUse -= chatWidth; + } + + if (resizableFilmstrip && visible && filmstripWidth.current >= FILMSTRIP_BREAKPOINT) { + widthToUse -= getVerticalViewMaxWidth(state); + } + + this.width = widthToUse; + this.height = this.preferredHeight || window.innerHeight; + } + + /** + * Resize Large container of specified type. + * @param {string} type type of container which should be resized. + * @param {boolean} [animate=false] if resize process should be animated. + */ + resizeContainer(type, animate = false) { + const container = this.getContainer(type); + + container.resize(this.width, this.height, animate); + } + + /** + * Resize all Large containers. + * @param {boolean} animate if resize process should be animated. + */ + resize(animate) { + // resize all containers + Object.keys(this.containers) + .forEach(type => this.resizeContainer(type, animate)); + } + + /** + * Updates the src of the dominant speaker avatar + */ + updateAvatar() { + ReactDOM.render( + + + , + this._dominantSpeakerAvatarContainer + ); + } + + /** + * Updates the audio level indicator of the large video. + * + * @param lvl the new audio level to set + */ + updateLargeVideoAudioLevel(lvl) { + AudioLevels.updateLargeVideoAudioLevel('dominantSpeaker', lvl); + } + + /** + * Displays a message of the passed in participant id's presence status. The + * message will not display if the remote connection message is displayed. + * + * @param {string} id - The participant ID whose associated user's presence + * status should be displayed. + * @returns {void} + */ + updatePresenceLabel(id) { + const isConnectionMessageVisible = getComputedStyle( + document.getElementById('remoteConnectionMessage')).display !== 'none'; + + if (isConnectionMessageVisible) { + this.removePresenceLabel(); + + return; + } + + const presenceLabelContainer = document.getElementById('remotePresenceMessage'); + + if (presenceLabelContainer) { + ReactDOM.render( + + + + + , + presenceLabelContainer); + } + } + + /** + * Removes the messages about the displayed participant's presence status. + * + * @returns {void} + */ + removePresenceLabel() { + const presenceLabelContainer = document.getElementById('remotePresenceMessage'); + + if (presenceLabelContainer) { + ReactDOM.unmountComponentAtNode(presenceLabelContainer); + } + } + + /** + * Show or hide watermark. + * @param {boolean} show + */ + showWatermark(show) { + const watermark = document.querySelectorAll('.watermark'); + + watermark.forEach(el => { + el.style.visibility = show ? 'visible' : 'hidden'; + }); + } + + /** + * Shows hides the "avatar" message which is to be displayed either in + * the middle of the screen or below the avatar image. + * + * @param {boolean|undefined} [show=undefined] true to show + * the avatar message or false to hide it. If not provided then + * the connection status of the user currently on the large video will be + * obtained form "APP.conference" and the message will be displayed if + * the user's connection is either interrupted or inactive. + */ + showRemoteConnectionMessage(show) { + if (typeof show !== 'boolean') { + const participant = getParticipantById(APP.store.getState(), this.id); + const state = APP.store.getState(); + const videoTrack = getVideoTrackByParticipant(state, participant); + + // eslint-disable-next-line no-param-reassign + show = !APP.conference.isLocalId(this.id) + && (isTrackStreamingStatusInterrupted(videoTrack) || isTrackStreamingStatusInactive(videoTrack)); + } + + if (show) { + document.getElementById('remoteConnectionMessage').style.display = 'block'; + } else { + document.getElementById('remoteConnectionMessage').style.display = 'none'; + } + } + + /** + * Updates the text which describes that the remote user is having + * connectivity issues. + * + * @param {string} msgKey the translation key which will be used to get + * the message text. + * @param {object} msgOptions translation options object. + * + * @private + */ + _setRemoteConnectionMessage(msgKey, msgOptions) { + if (msgKey) { + $('#remoteConnectionMessage') + .attr('data-i18n', msgKey) + .attr('data-i18n-options', JSON.stringify(msgOptions)); + APP.translation.translateElement( + $('#remoteConnectionMessage'), msgOptions); + } + } + + /** + * Add container of specified type. + * @param {string} type container type + * @param {LargeContainer} container container to add. + */ + addContainer(type, container) { + if (this.containers[type]) { + throw new Error(`container of type ${type} already exist`); + } + + this.containers[type] = container; + this.resizeContainer(type); + } + + /** + * Get Large container of specified type. + * @param {string} type container type. + * @returns {LargeContainer} + */ + getContainer(type) { + const container = this.containers[type]; + + if (!container) { + throw new Error(`container of type ${type} doesn't exist`); + } + + return container; + } + + /** + * Returns {@link LargeContainer} for the current {@link state} + * + * @return {LargeContainer} + * + * @throws an Error if there is no container for the current + * {@link state}. + */ + getCurrentContainer() { + return this.getContainer(this.state); + } + + /** + * Returns type of the current {@link LargeContainer} + * @return {string} + */ + getCurrentContainerType() { + return this.state; + } + + /** + * Remove Large container of specified type. + * @param {string} type container type. + */ + removeContainer(type) { + if (!this.containers[type]) { + throw new Error(`container of type ${type} doesn't exist`); + } + + delete this.containers[type]; + } + + /** + * Show Large container of specified type. + * Does nothing if such container is already visible. + * @param {string} type container type. + * @returns {Promise} + */ + showContainer(type) { + if (this.state === type) { + return Promise.resolve(); + } + + const oldContainer = this.containers[this.state]; + + // FIXME when video is being replaced with other content we need to hide + // companion icons/messages. It would be best if the container would + // be taking care of it by itself, but that is a bigger refactoring + + if (LargeVideoManager.isVideoContainer(this.state)) { + this.showWatermark(false); + this.showRemoteConnectionMessage(false); + } + oldContainer.hide(); + + this.state = type; + const container = this.getContainer(type); + + return container.show().then(() => { + if (LargeVideoManager.isVideoContainer(type)) { + // FIXME when video appears on top of other content we need to + // show companion icons/messages. It would be best if + // the container would be taking care of it by itself, but that + // is a bigger refactoring + this.showWatermark(true); + + // "avatar" and "video connection" can not be displayed both + // at the same time, but the latter is of higher priority and it + // will hide the avatar one if will be displayed. + this.showRemoteConnectionMessage(/* fetch the current state */); + } + }); + } + + /** + * Changes the flipX state of the local video. + * @param val {boolean} true if flipped. + */ + onLocalFlipXChange(val) { + this.videoContainer.setLocalFlipX(val); + } + + /** + * Dispatches an action to update the known resolution state of the large video and adjusts container sizes when the + * resolution changes. + * + * @private + * @returns {void} + */ + _onVideoResolutionUpdate() { + const { height, width } = this.videoContainer.getStreamSize(); + const { resolution } = APP.store.getState()['features/large-video']; + + if (height !== resolution) { + APP.store.dispatch(updateKnownLargeVideoResolution(height)); + } + + const currentAspectRatio = height === 0 ? 0 : width / height; + + if (this._videoAspectRatio !== currentAspectRatio) { + this._videoAspectRatio = currentAspectRatio; + this.resize(); + } + } +} diff --git a/modules/UI/videolayout/VideoContainer.js b/modules/UI/videolayout/VideoContainer.js new file mode 100644 index 0000000..22e4be5 --- /dev/null +++ b/modules/UI/videolayout/VideoContainer.js @@ -0,0 +1,676 @@ +/* global APP, interfaceConfig */ + +/* eslint-disable no-unused-vars */ +import Logger from '@jitsi/logger'; +import $ from 'jquery'; +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { browser } from '../../../react/features/base/lib-jitsi-meet'; +import { FILMSTRIP_BREAKPOINT } from '../../../react/features/filmstrip/constants'; +import { setLargeVideoDimensions } from '../../../react/features/large-video/actions.any'; +import { LargeVideoBackground, ORIENTATION } from '../../../react/features/large-video/components/LargeVideoBackground'; +import { LAYOUTS } from '../../../react/features/video-layout/constants'; +import { getCurrentLayout } from '../../../react/features/video-layout/functions.any'; +/* eslint-enable no-unused-vars */ +import UIUtil from '../util/UIUtil'; + +import Filmstrip from './Filmstrip'; +import LargeContainer from './LargeContainer'; + +// FIXME should be 'video' +export const VIDEO_CONTAINER_TYPE = 'camera'; + +// Corresponds to animation duration from the animatedFadeIn and animatedFadeOut CSS classes. +const FADE_DURATION_MS = 300; + +const logger = Logger.getLogger(__filename); + +/** + * List of container events that we are going to process for the large video. + * + * NOTE: Currently used only for logging for debug purposes. + */ +const containerEvents = [ 'abort', 'canplaythrough', 'ended', 'error', 'stalled', 'suspend', 'waiting' ]; + +/** + * Returns an array of the video dimensions, so that it keeps it's aspect + * ratio and fits available area with it's larger dimension. This method + * ensures that whole video will be visible and can leave empty areas. + * + * @param videoWidth the width of the video to position + * @param videoHeight the height of the video to position + * @param videoSpaceWidth the width of the available space + * @param videoSpaceHeight the height of the available space + * @param subtractFilmstrip whether to subtract the filmstrip or not + * @return an array with 2 elements, the video width and the video height + */ +function computeDesktopVideoSize( // eslint-disable-line max-params + videoWidth, + videoHeight, + videoSpaceWidth, + videoSpaceHeight, + subtractFilmstrip) { + if (videoWidth === 0 || videoHeight === 0 || videoSpaceWidth === 0 || videoSpaceHeight === 0) { + // Avoid NaN values caused by division by 0. + return [ 0, 0 ]; + } + + const aspectRatio = videoWidth / videoHeight; + let availableWidth = Math.max(videoWidth, videoSpaceWidth); + let availableHeight = Math.max(videoHeight, videoSpaceHeight); + + if (interfaceConfig.VERTICAL_FILMSTRIP) { + if (subtractFilmstrip) { + // eslint-disable-next-line no-param-reassign + videoSpaceWidth -= Filmstrip.getVerticalFilmstripWidth(); + } + } else { + // eslint-disable-next-line no-param-reassign + videoSpaceHeight -= Filmstrip.getFilmstripHeight(); + } + + if (availableWidth / aspectRatio >= videoSpaceHeight) { + availableHeight = videoSpaceHeight; + availableWidth = availableHeight * aspectRatio; + } + + if (availableHeight * aspectRatio >= videoSpaceWidth) { + availableWidth = videoSpaceWidth; + availableHeight = availableWidth / aspectRatio; + } + + return [ availableWidth, availableHeight ]; +} + + +/** + * Returns an array of the video dimensions. It respects the + * VIDEO_LAYOUT_FIT config, to fit the video to the screen, by hiding some parts + * of it, or to fit it to the height or width. + * + * @param videoWidth the original video width + * @param videoHeight the original video height + * @param videoSpaceWidth the width of the video space + * @param videoSpaceHeight the height of the video space + * @return an array with 2 elements, the video width and the video height + */ +function computeCameraVideoSize( // eslint-disable-line max-params + videoWidth, + videoHeight, + videoSpaceWidth, + videoSpaceHeight, + videoLayoutFit) { + if (videoWidth === 0 || videoHeight === 0 || videoSpaceWidth === 0 || videoSpaceHeight === 0) { + // Avoid NaN values caused by division by 0. + return [ 0, 0 ]; + } + + const aspectRatio = videoWidth / videoHeight; + const videoSpaceRatio = videoSpaceWidth / videoSpaceHeight; + + switch (videoLayoutFit) { + case 'height': + return [ videoSpaceHeight * aspectRatio, videoSpaceHeight ]; + case 'width': + return [ videoSpaceWidth, videoSpaceWidth / aspectRatio ]; + case 'nocrop': + return computeCameraVideoSize( + videoWidth, + videoHeight, + videoSpaceWidth, + videoSpaceHeight, + videoSpaceRatio < aspectRatio ? 'width' : 'height'); + case 'both': { + const maxZoomCoefficient = interfaceConfig.MAXIMUM_ZOOMING_COEFFICIENT + || Infinity; + + if (videoSpaceRatio === aspectRatio) { + return [ videoSpaceWidth, videoSpaceHeight ]; + } + + let [ width, height ] = computeCameraVideoSize( + videoWidth, + videoHeight, + videoSpaceWidth, + videoSpaceHeight, + videoSpaceRatio < aspectRatio ? 'height' : 'width'); + const maxWidth = videoSpaceWidth * maxZoomCoefficient; + const maxHeight = videoSpaceHeight * maxZoomCoefficient; + + if (width > maxWidth) { + width = maxWidth; + height = width / aspectRatio; + } else if (height > maxHeight) { + height = maxHeight; + width = height * aspectRatio; + } + + return [ width, height ]; + } + default: + return [ videoWidth, videoHeight ]; + } +} + +/** + * Returns an array of the video horizontal and vertical indents, + * so that if fits its parent. + * + * @return an array with 2 elements, the horizontal indent and the vertical + * indent + */ +function getCameraVideoPosition( // eslint-disable-line max-params + videoWidth, + videoHeight, + videoSpaceWidth, + videoSpaceHeight) { + // Parent height isn't completely calculated when we position the video in + // full screen mode and this is why we use the screen height in this case. + // Need to think it further at some point and implement it properly. + if (UIUtil.isFullScreen()) { + // eslint-disable-next-line no-param-reassign + videoSpaceHeight = window.innerHeight; + } + + const horizontalIndent = (videoSpaceWidth - videoWidth) / 2; + const verticalIndent = (videoSpaceHeight - videoHeight) / 2; + + return { horizontalIndent, + verticalIndent }; +} + +/** + * Container for user video. + */ +export class VideoContainer extends LargeContainer { + /** + * + */ + get video() { + return document.getElementById('largeVideo'); + } + + /** + * + */ + get id() { + return this.userId; + } + + /** + * Creates new VideoContainer instance. + * @param resizeContainer {Function} function that takes care of the size + * of the video container. + */ + constructor(resizeContainer) { + super(); + this.stream = null; + this.userId = null; + this.videoType = null; + this.localFlipX = true; + this.resizeContainer = resizeContainer; + + /** + * Whether the background should fit the height of the container + * (portrait) or fit the width of the container (landscape). + * + * @private + * @type {string|null} + */ + this._backgroundOrientation = null; + + /** + * Flag indicates whether or not the background should be rendered. + * If the background will not be visible then it is hidden to save + * on performance. + * @type {boolean} + */ + this._hideBackground = true; + + this._isHidden = false; + + /** + * Flag indicates whether or not the avatar is currently displayed. + * @type {boolean} + */ + this.avatarDisplayed = false; + this.avatar = document.getElementById('dominantSpeaker'); + + /** + * The HTMLElements of the remote connection message. + * @type {HTMLElement} + */ + this.remoteConnectionMessage = document.getElementById('remoteConnectionMessage'); + this.remotePresenceMessage = document.getElementById('remotePresenceMessage'); + + this.$wrapper = $('#largeVideoWrapper'); + + this.wrapperParent = document.getElementById('largeVideoElementsContainer'); + this.avatarHeight = document.getElementById('dominantSpeakerAvatarContainer').getBoundingClientRect().height; + this.video.onplaying = function(event) { + logger.debug('Large video is playing!'); + if (typeof resizeContainer === 'function') { + resizeContainer(event); + } + }; + + containerEvents.forEach(event => { + this.video.addEventListener(event, () => { + logger.debug(`${event} handler was called for the large video.`); + }); + }); + + /** + * A Set of functions to invoke when the video element resizes. + * + * @private + */ + this._resizeListeners = new Set(); + + this.video.onresize = this._onResize.bind(this); + this._play = this._play.bind(this); + } + + /** + * Adds a function to the known subscribers of video element resize + * events. + * + * @param {Function} callback - The subscriber to notify when the video + * element resizes. + * @returns {void} + */ + addResizeListener(callback) { + this._resizeListeners.add(callback); + } + + /** + * Obtains media stream ID of the underlying {@link JitsiTrack}. + * @return {string|null} + */ + getStreamID() { + return this.stream ? this.stream.getId() : null; + } + + /** + * Get size of video element. + * @returns {{width, height}} + */ + getStreamSize() { + const video = this.video; + + + return { + width: video.videoWidth, + height: video.videoHeight + }; + } + + /** + * Calculate optimal video size for specified container size. + * @param {number} containerWidth container width + * @param {number} containerHeight container height + * @param {number} verticalFilmstripWidth current width of the vertical filmstrip + * @returns {{availableWidth, availableHeight}} + */ + _getVideoSize(containerWidth, containerHeight, verticalFilmstripWidth) { + const { width, height } = this.getStreamSize(); + + if (this.stream && this.isScreenSharing()) { + return computeDesktopVideoSize(width, + height, + containerWidth, + containerHeight, + verticalFilmstripWidth < FILMSTRIP_BREAKPOINT); + } + + return computeCameraVideoSize(width, + height, + containerWidth, + containerHeight, + interfaceConfig.VIDEO_LAYOUT_FIT); + } + + /* eslint-disable max-params */ + /** + * Calculate optimal video position (offset for top left corner) + * for specified video size and container size. + * @param {number} width video width + * @param {number} height video height + * @param {number} containerWidth container width + * @param {number} containerHeight container height + * @param {number} verticalFilmstripWidth current width of the vertical filmstrip + * @returns {{horizontalIndent, verticalIndent}} + */ + getVideoPosition(width, height, containerWidth, containerHeight, verticalFilmstripWidth) { + let containerWidthToUse = containerWidth; + + /* eslint-enable max-params */ + if (this.stream && this.isScreenSharing()) { + if (interfaceConfig.VERTICAL_FILMSTRIP && verticalFilmstripWidth < FILMSTRIP_BREAKPOINT) { + containerWidthToUse -= Filmstrip.getVerticalFilmstripWidth(); + } + + return getCameraVideoPosition(width, + height, + containerWidthToUse, + containerHeight); + } + + return getCameraVideoPosition(width, + height, + containerWidthToUse, + containerHeight); + + } + + /** + * Updates the positioning of the remote connection presence message and the + * connection status message which escribes that the remote user is having + * connectivity issues. + * + * @returns {void} + */ + positionRemoteStatusMessages() { + this._positionParticipantStatus(this.remoteConnectionMessage); + this._positionParticipantStatus(this.remotePresenceMessage); + } + + /** + * Modifies the position of the passed in jQuery object so it displays + * in the middle of the video container or below the avatar. + * + * @private + * @returns {void} + */ + _positionParticipantStatus(element) { + if (this.avatarDisplayed) { + const avatarImage = document.getElementById('dominantSpeakerAvatarContainer').getBoundingClientRect(); + + element.style.top = avatarImage.top + avatarImage.height + 10; + } else { + const height = element.getBoundingClientRect().height; + const parentHeight = element.parentElement.getBoundingClientRect().height; + + element.style.top = (parentHeight / 2) - (height / 2); + } + } + + /** + * + */ + resize(containerWidth, containerHeight, animate = false) { + // XXX Prevent TypeError: undefined is not an object when the Web + // browser does not support WebRTC (yet). + if (!this.video) { + return; + } + const state = APP.store.getState(); + const currentLayout = getCurrentLayout(state); + + const verticalFilmstripWidth = state['features/filmstrip'].width?.current; + + if (currentLayout === LAYOUTS.TILE_VIEW || currentLayout === LAYOUTS.STAGE_FILMSTRIP_VIEW) { + // We don't need to resize the large video since it won't be displayed and we'll resize when returning back + // to stage view. + return; + } + + this.positionRemoteStatusMessages(); + + const [ width, height ] = this._getVideoSize(containerWidth, containerHeight, verticalFilmstripWidth); + + if (width === 0 || height === 0) { + // We don't need to set 0 for width or height since the visibility is controlled by the visibility css prop + // on the largeVideoElementsContainer. Also if the width/height of the video element is 0 the attached + // stream won't be played. Normally if we attach a new stream we won't resize the video element until the + // stream has been played. But setting width/height to 0 will prevent the video from playing. + + return; + } + + if ((containerWidth > width) || (containerHeight > height)) { + this._backgroundOrientation = containerWidth > width ? ORIENTATION.LANDSCAPE : ORIENTATION.PORTRAIT; + this._hideBackground = false; + } else { + this._hideBackground = true; + } + + this._updateBackground(); + + const { horizontalIndent, verticalIndent } + = this.getVideoPosition(width, height, containerWidth, containerHeight, verticalFilmstripWidth); + + APP.store.dispatch(setLargeVideoDimensions(height, width)); + + this.$wrapper.animate({ + width, + height, + + top: verticalIndent, + bottom: verticalIndent, + + left: horizontalIndent, + right: horizontalIndent + }, { + queue: false, + duration: animate ? 500 : 0 + }); + } + + /** + * Removes a function from the known subscribers of video element resize + * events. + * + * @param {Function} callback - The callback to remove from known + * subscribers of video resize events. + * @returns {void} + */ + removeResizeListener(callback) { + this._resizeListeners.delete(callback); + } + + /** + * Plays the large video element. + * + * @param {number} retries - Number of retries to play the large video if play fails. + * @returns {void} + */ + _play(retries = 0) { + this.video.play() + .then(() => { + logger.debug(`Successfully played large video after ${retries + 1} retries!`); + }) + .catch(e => { + if (retries < 3) { + logger.debug(`Error while trying to playing the large video. Will retry after 1s. Retries: ${ + retries}. Error: ${e}`); + window.setTimeout(() => { + this._play(retries + 1); + }, 1000); + } else { + logger.error(`Error while trying to playing the large video after 3 retries: ${e}`); + } + }); + } + + /** + * Update video stream. + * @param {string} userID + * @param {JitsiTrack?} stream new stream + * @param {string} videoType video type + */ + setStream(userID, stream, videoType) { + if (this.userId === userID && this.stream === stream && !stream?.forceStreamToReattach) { + logger.debug(`SetStream on the large video for user ${userID} ignored: the stream is not changed!`); + + // Handles the use case for the remote participants when the + // videoType is received with delay after turning on/off the + // desktop sharing. + if (this.videoType !== videoType) { + this.videoType = videoType; + this.resizeContainer(); + } + + return; + } + + this.userId = userID; + + if (stream?.forceStreamToReattach) { + delete stream.forceStreamToReattach; + } + + // detach old stream + if (this.stream && this.video) { + this.stream.detach(this.video); + } + + this.stream = stream; + this.videoType = videoType; + + if (!stream) { + logger.debug('SetStream on the large video is called without a stream argument!'); + + return; + } + + if (this.video) { + logger.debug(`Attaching a remote track to the large video for user ${userID}`); + stream.attach(this.video).catch(error => { + logger.error(`Attaching the remote track ${stream} to large video has failed with `, error); + }); + + // Ensure large video gets play() called on it when a new stream is attached to it. + this._play(); + + const flipX = stream.isLocal() && this.localFlipX && !this.isScreenSharing(); + + this.video.style.transform = flipX ? 'scaleX(-1)' : 'none'; + this._updateBackground(); + } else { + logger.debug(`SetStream on the large video won't attach a track for ${ + userID} because no large video element was found!`); + } + } + + /** + * Changes the flipX state of the local video. + * @param val {boolean} true if flipped. + */ + setLocalFlipX(val) { + this.localFlipX = val; + if (!this.video || !this.stream || !this.stream.isLocal() || this.isScreenSharing()) { + return; + } + this.video.style.transform = this.localFlipX ? 'scaleX(-1)' : 'none'; + + this._updateBackground(); + } + + + /** + * Check if current video stream is screen sharing. + * @returns {boolean} + */ + isScreenSharing() { + return this.videoType === 'desktop'; + } + + /** + * Show or hide user avatar. + * @param {boolean} show + */ + showAvatar(show) { + this.avatar.style.visibility = show ? 'visible' : 'hidden'; + this.avatarDisplayed = show; + + APP.API.notifyLargeVideoVisibilityChanged(show); + } + + /** + * Show video container. + */ + show() { + return new Promise(resolve => { + this.wrapperParent.style.visibility = 'visible'; + this.wrapperParent.classList.remove('animatedFadeOut'); + this.wrapperParent.classList.add('animatedFadeIn'); + setTimeout(() => { + this._isHidden = false; + this._updateBackground(); + resolve(); + }, FADE_DURATION_MS); + }); + } + + /** + * Hide video container. + */ + hide() { + // as the container is hidden/replaced by another container + // hide its avatar + this.showAvatar(false); + + return new Promise(resolve => { + this.wrapperParent.classList.remove('animatedFadeIn'); + this.wrapperParent.classList.add('animatedFadeOut'); + setTimeout(() => { + this.wrapperParent.style.visibility = 'hidden'; + this._isHidden = true; + this._updateBackground(); + resolve(); + }, FADE_DURATION_MS); + }); + } + + /** + * @return {boolean} switch on dominant speaker event if on stage. + */ + stayOnStage() { + return false; + } + + /** + * Callback invoked when the video element changes dimensions. + * + * @private + * @returns {void} + */ + _onResize() { + this._resizeListeners.forEach(callback => callback()); + } + + /** + * Attaches and/or updates a React Component to be used as a background for + * the large video, to display blurred video and fill up empty space not + * taken up by the large video. + * + * @private + * @returns {void} + */ + _updateBackground() { + // Do not the background display on browsers that might experience + // performance issues from the presence of the background or if + // explicitly disabled. + if (interfaceConfig.DISABLE_VIDEO_BACKGROUND + || browser.isFirefox() + || browser.isWebKitBased()) { + return; + } + + ReactDOM.render( +