Compare commits

...

120 Commits

Author SHA1 Message Date
Saúl Ibarra Corretgé
00653248b0 doc: add H1 to SECURITY.md 2020-06-23 15:32:25 +02:00
Florian
e72dae5c32 lang: update French translation 2020-06-23 14:51:13 +02:00
paweldomas
811ee40d99 ref(constants): use 720 for the high quality level
720 is requested by default for the local video stream
and when using the quality slider the resolution would
be increased to 1080.

Note that this will limit the receive quality to 720 as well,
because both send and receive constraints are changed at
the same time when the quality slider is used.
2020-06-23 14:50:00 +02:00
egerardus
76eabf1f29 debian: add SAN when generating self-signed certs
Closes: #5547
2020-06-23 14:47:36 +02:00
Vangelis Zacharioudakis
01a8cc1478 lang: update Greek translation 2020-06-23 14:34:49 +02:00
Vlad Piersec
047c9b43ea fix: welcome page logo not being displayed 2020-06-23 10:29:41 +02:00
Dan Dascalescu
22d040ab76 doc: point to the Handbook repo 2020-06-23 09:39:14 +02:00
Hristo Terezov
4ac9ea258c ref(interfaceConfig): Order alphabetically. 2020-06-22 14:25:48 -05:00
Hristo Terezov
6bd64ee552 fix(jitsi-logo): URL 2020-06-22 13:28:52 -05:00
Jaya Allamsetty
7a1595f162 chore(deps): update lib-jitsi-meet 2020-06-20 08:49:19 -04:00
Jaya Allamsetty
07cad2a98f cleanup: Remove obsolete code related to SS extension
- Remove external install dialogs and fix related screensharing error handling.
- Remove obsolete options from config.js and from configWhitelist.js
2020-06-20 08:49:19 -04:00
Дамян Минков
6fbba52c6d feat: Adds a new option to disable lobby for guests. (#7094)
* feat: Adds a new option to disable lobby for guests.

* squash: Rename config option.

* squash: Comment update.
2020-06-19 14:50:31 -05:00
Gonçal
311d1c67ba Added all missing languages from languages.json
Added all missing languages from languages.json, with names in Catalan
2020-06-19 13:39:39 -05:00
Vlad Piersec
0aa54d8650 (prejoin): fix mobile 2020-06-19 16:46:43 +02:00
Bettenbuk Zoltan
74e0e10928 feat: new security icon 2020-06-19 12:25:24 +02:00
Vlad Piersec
4f169988a3 fix(prejoin): Store prejoin tracks in 'features/base/tracks' 2020-06-19 12:02:11 +02:00
Joey Marshment-Howell
ec6ed6e8ec config: whitelist option to hide chrome extension banner
saghul: torture tests also need it.
2020-06-19 09:15:10 +02:00
Aaron van Meerten
7b429afee6 Merge pull request #7080 from jitsi/fix-e2ee
fix(e2ee): hide if not supported.
2020-06-18 13:14:35 -05:00
Hristo Terezov
cab830aad1 fix(e2ee): hide if not supported. 2020-06-18 12:25:49 -05:00
Jaya Allamsetty
bd42c81cb8 chore(deps): Update lib-jitsi-meet 2020-06-18 11:51:28 -04:00
Saúl Ibarra Corretgé
f230fd4d04 subject: avoid sending an extra empty subject update
When setSubject is called too early we store it as pensing, but thanks to the
default parameter value, if undefined is passed to the function we'll store the
empty string.

This will trigger a needless update because undefined !== ''.
2020-06-18 14:52:17 +02:00
Saúl Ibarra Corretgé
eed57e7999 subject: only try to update the subject when the rol;e changes
Skip processing any other participant updates.
2020-06-18 14:52:17 +02:00
Vlad Piersec
8115f86f59 fix(prejoin): Fix CSS for prejoin page according to design 2020-06-18 14:43:37 +02:00
Bettenbuk Zoltan
28e5edfb50 ref: move e2ee field into security menu 2020-06-18 09:36:24 +02:00
Saúl Ibarra Corretgé
e936c6dc2c lang: improve wording 2020-06-17 20:35:57 +02:00
Saúl Ibarra Corretgé
8efd0f0829 unsafe-room: hide unsafe room label if a password or lobby are set 2020-06-17 20:35:57 +02:00
Saúl Ibarra Corretgé
a49f04f25b config: document enableInsecureRoomNameWarning and whitelist it 2020-06-17 20:35:57 +02:00
Bettenbuk Zoltan
bcffe0bba5 fix: lobby screen broken with prejoin disabled 2020-06-17 09:01:55 -05:00
Titus-Andrei Moldovan
482ba23954 rn: adds support for mobile youtube link 2020-06-17 15:10:54 +02:00
Titus-Andrei Moldovan
e87167dd2d rn: fixes the propagation of the paused event after the status was set to stop 2020-06-17 15:10:54 +02:00
erickvils
cf047a3c90 lang: update portuguese (BR) translation 2020-06-17 08:41:53 +02:00
Saúl Ibarra Corretgé
a8b8612304 rn,auth: trim the username
Fixes: https://github.com/jitsi/jitsi-meet/issues/5673
2020-06-17 08:39:58 +02:00
Saúl Ibarra Corretgé
95a5b8a8c1 rn,auth: don't auto-capitalize the password field
Fixes: https://github.com/jitsi/jitsi-meet/issues/5673
2020-06-17 08:39:58 +02:00
bgrozev
5867eaf560 config: remove obsolete options 2020-06-17 08:39:31 +02:00
Hafize Güngör
9143bb42d1 lang: fixes for Turkish translation 2020-06-17 08:37:43 +02:00
Boris Grozev
0e5dac623e chore: Update lib-jitsi-meet. 2020-06-16 16:59:21 -05:00
Boris Grozev
0c09ded76b feat: Add and whitelist the useTurnUdp config option. 2020-06-16 16:59:21 -05:00
damencho
929622b27c fix: Fixes setting subject from url.
There are occasions when role to moderator can change a little bit after joining the room, and initial try to set subject will silently be ignored if not moderator.
2020-06-16 12:44:44 -05:00
damencho
430125a8bd feat: Adds user props to analytics for iframe and external api. 2020-06-16 12:44:36 -05:00
damencho
66505666df feat: Hide Invite more when invite button is disabled. 2020-06-16 08:41:55 -05:00
Saúl Ibarra Corretgé
e5cffc71c4 config: cleanup no longer used interface_config options 2020-06-16 14:59:04 +02:00
Adam Wan
e3d66db3d7 config: add ability to hide the "invite more" header button 2020-06-16 13:07:37 +02:00
Saúl Ibarra Corretgé
e8e2b3c341 doc,gh: add pull request template 2020-06-16 11:24:15 +02:00
Saúl Ibarra Corretgé
abb724e173 doc: update CONTRIBUTING 2020-06-16 11:24:15 +02:00
Saúl Ibarra Corretgé
6e679f952f redux: refactor loading of middlewares and reducers
Up until now we relied on implicit loading of middlewares and reducers, through
having imports in each feature's index.js.

This leads to many complex import cycles which result in (sometimes) hard to fix
bugs in addition to (often) breaking mobile because a web-only feature gets
imported on mobile too, thanks to the implicit loading.

This PR changes that to make the process explicit. Both middlewares and reducers
are imported in a single place, the app entrypoint. They have been divided into
3 categories: any, web and native, which represent each of the platforms
  respectively.

Ideally no feature should have an index.js exporting actions, action types and
components, but that's a larger ordeal, so this is just the first step in
getting there. In order to both set example and avoid large cycles the app
feature has been refactored to not have an idex.js itself.
2020-06-16 11:24:15 +02:00
Saúl Ibarra Corretgé
80d7e5fb7f redux: move PersistenceRegistry to the redux feature 2020-06-16 11:24:15 +02:00
Saúl Ibarra Corretgé
7646618e5a rnnoise: simplify initialization 2020-06-16 10:49:33 +02:00
Jaya Allamsetty
6533071c4c chore(deps): update lib-jitsi-meet
Update to sdp-interop@1.0.3 for getting the fix for Firefox RTX audio-only issue
2020-06-15 11:22:29 -04:00
Emil Ivov
6aed9bc0c8 interface_config: enforce logo by default 2020-06-12 17:38:51 +02:00
Jaya Allamsetty
b7b861259b fix(UI): add playsinline attr for video element
> playinline attr needs to be set to true to stop local video from playing in full screen mode in Safari on iOS.
> This applies to the local video thumbnails and the camera previews from the device selection menu and video preview button
2020-06-12 09:30:46 -04:00
tmoldovan8x8
df64dd8f18 rn: add youtube player for mobile app 2020-06-12 12:15:16 +02:00
Vlad Piersec
8758c222c6 feat(branding): Add ability to customize logo & background 2020-06-10 14:58:27 +02:00
Bettenbuk Zoltan
29dc63fbcb ref: merge prejoin with lobby 2020-06-09 18:10:43 +02:00
Bettenbuk Zoltan
475a2ae596 feat: lobby feature
The lobby feature adds the possibility to lock a meeting and only allow people in after virtually knocking and going through formal approval
2020-06-09 18:10:43 +02:00
dependabot[bot]
338c960215 build(deps): bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-09 10:09:02 +02:00
Jaya Allamsetty
e6093e0706 fix(UI): Highlight the audio device when we hover over it 2020-06-08 15:34:05 -04:00
Jaya Allamsetty
d1d968997e Disable audiosettings button on Firefox as it is not supported 2020-06-08 15:34:05 -04:00
Jaya Allamsetty
45570bc0e7 fix(device-selection): Update redux when a new speaker is selected
Update userSelectedAudioOutputDeviceId and userSelectedAudioOutputDeviceLabel when a new speaker is selected from the audio settings popup menu
2020-06-08 15:34:05 -04:00
Jaya Allamsetty
f4bcad02d8 fix(device-selection): Add a workaround for a chrome bug with default mic
Pass the real deviceId to gUM instead of 'default' for Chrome to return the correct media stream
2020-06-08 15:34:05 -04:00
khajaamin
26f7951894 Marathi language (#6615)
* Lang folder removed from proxy server and now using from local dev dir

* Added Marathi 100% langulage transalation
2020-06-08 12:33:40 -05:00
Richard Février
35dabb1a27 main-fr.json : remove duplicated key introduced by #6461 2020-06-08 12:13:36 -05:00
Murat Emir Cabaroğlu
c3b79802b2 add missing and fix wrong turkish translation 2020-06-08 11:17:28 -05:00
Дамян Минков
e6dbe65193 Moderated rooms or subdomains (#6959)
* fix: Fixes using token with no user context.

* feat(moderated): Adds option to add moderated rooms and subdomains.

When a user joins such room or subdomain in order to be a moderator needs to provide a valid jwt token for that room.

* squash: Renames function.

* ref: Removes filtering jicofo setting owners.

This will be disabled on jicofo side and will greatly simplify logic.
Also check the checks to avoid jwt for main domain to access subdomains and the other way around.

* fix: Skips allowners logic for admins.
2020-06-05 07:57:49 -05:00
Deepak Verma
ff23f81dfe flags: fix comment 2020-06-05 13:53:35 +02:00
Jaya Allamsetty
bc66c9063a chore(deps): update lib-jitsi-meet 2020-06-04 10:54:06 -04:00
Emil Ivov
974ef4a382 Merge pull request #6941 from jitsi/saghul-patch-5
shared-video: use a more recent video by default
2020-06-03 06:42:41 -05:00
Saúl Ibarra Corretgé
3bf82b573c shared-video: use a more recent video by default 2020-06-03 11:27:08 +02:00
hmuresan
b4b4339a1a external_api: add start/stop recording commands 2020-06-03 09:30:19 +02:00
Hristo Terezov
6773aed67f feat(recording): Limit notification 2020-06-02 16:00:54 -05:00
Saúl Ibarra Corretgé
d740752522 rn,responsive-ui: refactor dimensions detection
Use a dimensions detecting root component. The Dimensions module does not
measure the app's view size, but the Window, which may not be the same, for
example on iOS when PiP is used.

Also refactor the aspect ratio wrap component since it can be taken directly
from the store.

Last, remove the use of DimensionsDetector on LargeVideo and TileView since they
occupy the full-screen anyway.

Fixes PiP mode on iOS.
2020-06-02 16:54:28 +02:00
Marius Bardan
d93b219c7f lang: update RO translations 2020-06-02 10:19:06 +02:00
Marius Bardan
10cd150a07 lang: update RO translations 2020-06-02 10:19:06 +02:00
Jaya Allamsetty
a31f3c0c76 fix(config): Add missing capScreenshareBitrate to config.js 2020-05-29 14:04:30 -04:00
Simon Honegger
af39186a5f fix: typeof returns a string, so this condition was always true 2020-05-29 19:53:05 +02:00
Saúl Ibarra Corretgé
d4d1d0aa70 dev: add plugin for circular dependency detection
Example run: https://gist.github.com/saghul/e5e12edc108bdedbcbe65a3d7528235f
2020-05-29 10:37:09 +02:00
Saúl Ibarra Corretgé
3a88f4939c misc: break import cycle 2020-05-29 10:37:09 +02:00
Saúl Ibarra Corretgé
fe221fe4be deps: run npm audit fix 2020-05-29 10:37:09 +02:00
Jaya Allamsetty
1caaa47f5e chore(deps): update lib-jitsi-meet
fix(safari): Disable VAD processing on Safari - cfbb511bce
2020-05-28 17:19:07 -04:00
Hristo Terezov
a2c4d17e4d fix(record):web/mobile match disable functionality 2020-05-28 15:39:49 -05:00
Hristo Terezov
ce1de9e1e7 feat(recording): Disable buttons on active session 2020-05-28 15:39:49 -05:00
Hristo Terezov
3e7abf3da0 feat(subtitles): Disable for guests. 2020-05-28 13:43:18 -05:00
damencho
8b4f1789a6 chore(deps): Update lib-jitsi-meet, callstats using full URL. 2020-05-28 11:15:33 -05:00
Gabriel Imre
444e2b90df callstats: add siteID passing; sanitize confID path 2020-05-28 10:00:45 -05:00
Saúl Ibarra Corretgé
7de88995a5 labels: don't disable all labels when VIDEO_QUALITY_LABEL_DISABLED is set
Fixes: https://github.com/jitsi/jitsi-meet/issues/6880
2020-05-28 10:15:52 +02:00
Hristo Terezov
f0c6e934ce feat(config):InsecureRoomNameWarning config option 2020-05-27 18:03:15 -05:00
Дамян Минков
78b01d2c97 Adding whitelist and move away from using custom field for password. (#6621)
* Adding whitelist and move away from using custom field for password.

We re-use room lock for lobby password.

* Make sure we do not run muc-occupant-pre-join for non members only rooms.

* Destroying lobby room, when main room is destroyed or membersonly is disabled.

* Adds destroy reason.

* Clears lobby room instance on destroy.

Fixes problem with on/off/on of lobby feature.

* Add lobby room jid only when members only is on.

* Sends main room jid on lobby destroy.

We can use that in client loggic to auto-join lobby participants to main room as lobby is disabled while waiting.

* fix: Fixes using is_healthcheck_room.

* squash: Enables lobby rooms feature by default.

* chore(deps): Update lib-jitsi-meet, to enable lobby rooms.
2020-05-27 18:01:41 -05:00
Saúl Ibarra Corretgé
bf60be1654 style: fixup needlessly wrapped line 2020-05-27 16:45:11 +02:00
Saúl Ibarra Corretgé
5202a7e5b8 room-lock: use the proper text for the room lock prompt 2020-05-27 16:45:11 +02:00
Saúl Ibarra Corretgé
2af0c0ba17 rn: bump SDK version to 2.9.0 2020-05-27 15:35:58 +02:00
Saúl Ibarra Corretgé
fbb6486b5f deps: update react-native-watch-connectivity
It's back in active development and fixes a warning in iOS.
2020-05-27 15:35:58 +02:00
Saúl Ibarra Corretgé
a113151563 deps: update react-native-calendar-events
Rebase our patches (in PR) on top of latest master.

Sshould fix a crash when requesting permisssions.
2020-05-27 15:35:58 +02:00
Raider700
470fda3467 lang: add missing fields to German translation 2020-05-27 11:48:51 +02:00
Saúl Ibarra Corretgé
edea6316ab Update config.js 2020-05-27 08:43:48 +02:00
Saúl Ibarra Corretgé
adac9ee5f8 config: don't enable H.264 by default on P2P
We are not actively testing it and it currently crashes Chrome 83+ when insertable streams are used.
2020-05-27 08:43:48 +02:00
Saúl Ibarra Corretgé
af8bd876e6 deps: run npm audit fix
Skipped webpack, requires further investigation.
2020-05-27 00:16:20 +02:00
Jaya Allamsetty
403c4a7ee7 chore(deps): update lib-jitsi-meet
c94f6a570f
2020-05-26 17:14:21 -04:00
marius-bardan
21fe3c87a6 lang: enable support for romanian lang (#6869)
Co-authored-by: Marius Bardan <marius.bardan@8x8.com>
2020-05-26 15:05:41 +02:00
lorddavidiii
6ddac3bddf debian,turn: fix getting an external ip in IPv6 enabled networks 2020-05-26 13:20:34 +02:00
Mihai Uscat
663a65ad81 fix(SecurityDialog): fix button overflow 2020-05-26 10:22:22 +02:00
marius-bardan
5977f09202 lang: complete Romanian translation
Co-authored-by: Marius Bardan <marius.bardan@8x8.com>
2020-05-26 09:18:38 +02:00
Riccardo Magliocchetti
6be2a8575f lang: update document to match current reality 2020-05-25 17:26:15 +02:00
Suguru Hirahara
0d14e2fa5c gh: update 1-bug-report template
* Update 1-bug-report.md

- Comment out the general notice
- Add the information that questions and posts asking for help will be
closed
- Sort sections based on action stream -- steps, expected behaviour, (yet) actual behaviour
- Replace environment information with server-side and client-side ones

* Update .github/ISSUE_TEMPLATE/1-bug-report.md

Co-authored-by: Saúl Ibarra Corretgé <s@saghul.net>

Co-authored-by: Saúl Ibarra Corretgé <s@saghul.net>
2020-05-25 16:45:21 +02:00
qwertiko GmbH
1e0669d33b lang: fixes for German 2020-05-25 14:40:10 +02:00
Ricardo Brisighelli
d69c2c84d7 lang: update Spanish translation 2020-05-25 14:38:44 +02:00
Suguru Hirahara
0ea7a31b08 lang: add Arabic translation 2020-05-25 14:05:46 +02:00
Oleksa
6284e5fab3 lang: update Ukranian translation 2020-05-25 13:58:17 +02:00
Philip Eriksson
647852bd82 lang: fixes for Swedish 2020-05-25 13:52:15 +02:00
nordlolek
4e0d6e56bc rn,lang: bundle Slovenian translations 2020-05-25 13:46:37 +02:00
Quentí
c02763a29e lang: update for Occitan 2020-05-25 13:45:17 +02:00
Vangelis Zacharioudakis
0b8ec5a342 lang: add Greek language translation 2020-05-25 13:40:36 +02:00
huzaifahj
1a4be30ea1 lang: make "OK" capitalization consistent 2020-05-25 13:24:06 +02:00
tolgakaratas
d53d6e5fa8 lang,rn: bundle Turkish language 2020-05-25 13:20:54 +02:00
zzoond
93b05d13c3 lang: fix for russian 2020-05-25 11:27:50 +02:00
Michael Telatynski
79f4531bd2 lang: allow translation of accessibility label string "Edit your profile" 2020-05-25 11:26:25 +02:00
Jaya Allamsetty
5348fa19c8 feat: show option to join via browser on supported mobile browsers
Currently Chromium based browsers and Firefox are supported on Android
Only Safari is supported on iOS
2020-05-22 10:52:59 -04:00
Felix C. Stegerman
b25319fd2e add missing build dependency on nodejs 2020-05-21 10:29:36 -05:00
Felix C. Stegerman
63ca419e76 improve "open in app" page 2020-05-21 08:39:17 -04:00
Jonathan Lennox
393fb692ca Make TLS configs in Debian sample files follow Mozilla security guidelines. 2020-05-20 12:03:41 -05:00
JB BUGEAUD
735b686b98 Update of main fr translation (#6141)
* Update of main fr translation

Correct some non french sounding sentenses.  One example welcomepage.title, before "fully featured" was translated as "entièrement en vedette"  (which is gibberish) and now "riche en fonctionnalités".

* Fixing typo

Fixing missing comma

* Another typo fix

Yet another missing comma fixed.
2020-05-20 11:29:06 -05:00
Bettenbuk Zoltan
0598e7369b ref: eslint-config-jitsi@1.0.3 2020-05-20 17:14:29 +02:00
659 changed files with 13589 additions and 6952 deletions

View File

@@ -4,25 +4,45 @@ about: Create a report to help us improve
---
*This Issue tracker is only for reporting bugs and tracking code related issues.*
<!--
Before posting, please make sure you check community.jitsi.org to see if the same or similar bugs have already been discussed.
General questions, installation help, and feature requests can also be posted to community.jitsi.org.
This issue tracker is only for reporting bugs and tracking issues related to the source code.
## Description
---
Before posting, please make sure to check if the same or similar bugs have already been discussed: https://github.com/jitsi/jitsi-meet/issues
## Current behavior
---
General questions regarding usage, installation, etc. should be posted at https://community.jitsi.org. They will be closed if posted here.
## Expected Behavior
---
-->
## Possible Solution
---
### Description:
## Steps to reproduce
---
<!-- Please describe the bug clearly and concisely. -->
# Environment details
---
### Steps to reproduce:
1. <!-- Open '...' -->
2. <!-- Click on '...' -->
3. <!-- and so on... -->
### Expected behavior:
<!-- Please describe what should happen. -->
### Actual behavior:
<!-- Please describe what actually happens. -->
<!-- Please attach screenshot if possible. -->
### Server information:
- Jitsi Meet version:
- Operating System:
### Client information:
- Browser / app version:
- Operating System:
### Additional information:
<!-- Please provide additional information about the bug, if any. -->

5
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,5 @@
<!--
Thank you for your pull request. Please provide a thorough description below.
Contributors guide: https://github.com/jitsi/jitsi-meet/blob/master/CONTRIBUTING.md
-->

View File

@@ -123,3 +123,32 @@ in the agreement, unfortunately, we cannot accept your contribution.
respective variable, function, property is non-public i.e. private, protected,
or internal. In contrast, the lack of an underscore at the beginning of a name
signals public API.
### Feature layout
When adding a new feature, this would be the usual layout.
```
react/features/sample/
├── actionTypes.js
├── actions.js
├── components
│   ├── AnotherComponent.js
│   ├── OneComponent.js
│   └── index.js
├── middleware.js
└── reducer.js
```
The middleware must be imported in `react/features/app/` specifically
in `middlewares.any`, `middlewares.native.js` or `middlewares.web.js` where appropriate.
Likewise for the reducer.
An `index.js` file must not be provided for exporting actions, action types and
component. Features / files requiring those must import them explicitly.
This has not always been the case and the entire codebase hasn't been migrated to
this model but new features should follow this new layout.
When working on an old feature, adding the necessary changes to migrate to the new
model is encouraged.

View File

@@ -82,7 +82,7 @@ deploy-local:
.NOTPARALLEL:
dev: deploy-init deploy-css deploy-rnnoise-binary deploy-lib-jitsi-meet deploy-libflac
$(WEBPACK_DEV_SERVER)
$(WEBPACK_DEV_SERVER) --detect-circular-deps
source-package:
mkdir -p source_package/jitsi-meet/css && \

View File

@@ -1,9 +1,9 @@
# Security
## Reporting security issuess
## 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 send us an email to security@jitsi.org.
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) 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.**

View File

@@ -21,4 +21,4 @@ android.useAndroidX=true
android.enableJetifier=true
appVersion=20.3.0
sdkVersion=2.8.2
sdkVersion=2.9.0

View File

@@ -22,7 +22,6 @@ import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import com.calendarevents.CalendarEventsPackage;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactContext;
@@ -167,13 +166,7 @@ public class JitsiMeetActivityDelegate {
}
public static void onRequestPermissionsResult(
final int requestCode,
final String[] permissions,
final int[] grantResults) {
CalendarEventsPackage.onRequestPermissionsResult(
requestCode,
permissions,
grantResults);
final int requestCode, final String[] permissions, final int[] grantResults) {
permissionsCallback = new Callback() {
@Override
public void invoke(Object... args) {

2
app.js
View File

@@ -6,10 +6,10 @@ import 'jQuery-Impromptu';
import conference from './conference';
import API from './modules/API';
import UI from './modules/UI/UI';
import keyboardshortcut from './modules/keyboardshortcut/keyboardshortcut';
import remoteControl from './modules/remotecontrol/RemoteControl';
import translation from './modules/translation/translation';
import UI from './modules/UI/UI';
window.APP = {
API,

View File

@@ -1,20 +1,16 @@
/* global $, APP, JitsiMeetJS, config, interfaceConfig */
/* global APP, JitsiMeetJS, config, interfaceConfig */
import EventEmitter from 'events';
import Logger from 'jitsi-meet-logger';
import * as JitsiMeetConferenceEvents from './ConferenceEvents';
import { openConnection } from './connection';
import { ENDPOINT_TEXT_MESSAGE_NAME } from './modules/API/constants';
import AuthHandler from './modules/UI/authentication/AuthHandler';
import Recorder from './modules/recorder/Recorder';
import mediaDeviceHelper from './modules/devices/mediaDeviceHelper';
import * as RemoteControlEvents
from './service/remotecontrol/RemoteControlEvents';
import UIEvents from './service/UI/UIEvents';
import UIUtil from './modules/UI/util/UIUtil';
import mediaDeviceHelper from './modules/devices/mediaDeviceHelper';
import Recorder from './modules/recorder/Recorder';
import { createTaskQueue } from './modules/util/helpers';
import * as JitsiMeetConferenceEvents from './ConferenceEvents';
import {
createDeviceChangedEvent,
createStartSilentEvent,
@@ -26,17 +22,7 @@ import {
maybeRedirectToWelcomePage,
redirectToStaticPage,
reloadWithStoredParams
} from './react/features/app';
import {
initPrejoin,
isPrejoinPageEnabled,
isPrejoinPageVisible,
replacePrejoinAudioTrack,
replacePrejoinVideoTrack
} from './react/features/prejoin';
import EventEmitter from 'events';
} from './react/features/app/actions';
import {
AVATAR_ID_COMMAND,
AVATAR_URL_COMMAND,
@@ -62,6 +48,7 @@ import {
import {
checkAndNotifyForNewDevice,
getAvailableDevices,
getDefaultDeviceId,
notifyCameraError,
notifyMicError,
setAudioOutputDeviceId,
@@ -86,7 +73,6 @@ import {
setVideoAvailable,
setVideoMuted
} from './react/features/base/media';
import { showNotification } from './react/features/notifications';
import {
dominantSpeakerChanged,
getLocalParticipant,
@@ -116,7 +102,10 @@ import {
trackAdded,
trackRemoved
} from './react/features/base/tracks';
import { getJitsiMeetGlobalNS } from './react/features/base/util';
import {
getBackendSafePath,
getJitsiMeetGlobalNS
} from './react/features/base/util';
import { showDesktopPicker } from './react/features/desktop-picker';
import { appendSuffix } from './react/features/display-name';
import { setE2EEKey } from './react/features/e2ee';
@@ -124,16 +113,24 @@ import {
maybeOpenFeedbackDialog,
submitFeedback
} from './react/features/feedback';
import { showNotification } from './react/features/notifications';
import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay';
import { suspendDetected } from './react/features/power-monitor';
import {
initPrejoin,
isPrejoinPageEnabled
} from './react/features/prejoin';
import { createRnnoiseProcessorPromise } from './react/features/rnnoise';
import { toggleScreenshotCaptureEffect } from './react/features/screenshot-capture';
import { setSharedVideoStatus } from './react/features/shared-video';
import { AudioMixerEffect } from './react/features/stream-effects/audio-mixer/AudioMixerEffect';
import { createPresenterEffect } from './react/features/stream-effects/presenter';
import { endpointMessageReceived } from './react/features/subtitles';
import { createRnnoiseProcessorPromise } from './react/features/rnnoise';
import { toggleScreenshotCaptureEffect } from './react/features/screenshot-capture';
import UIEvents from './service/UI/UIEvents';
import * as RemoteControlEvents
from './service/remotecontrol/RemoteControlEvents';
const logger = require('jitsi-meet-logger').getLogger(__filename);
const logger = Logger.getLogger(__filename);
const eventEmitter = new EventEmitter();
@@ -296,12 +293,6 @@ class ConferenceConnector {
logger.error('CONFERENCE FAILED:', err, ...params);
switch (err) {
case JitsiConferenceErrors.CONNECTION_ERROR: {
const [ msg ] = params;
APP.UI.notifyConnectionFailed(msg);
break;
}
case JitsiConferenceErrors.NOT_ALLOWED_ERROR: {
// let's show some auth not allowed page
@@ -336,14 +327,6 @@ class ConferenceConnector {
APP.UI.notifyGracefulShutdown();
break;
case JitsiConferenceErrors.CONFERENCE_DESTROYED: {
const [ reason ] = params;
APP.UI.hideStats();
APP.UI.notifyConferenceDestroyed(reason);
break;
}
// FIXME FOCUS_DISCONNECTED is a confusing event name.
// What really happens there is that the library is not ready yet,
// because Jicofo is not available, but it is going to give it another
@@ -1262,7 +1245,7 @@ export default {
items[key] = param[1];
}
if (typeof items.e2eekey !== undefined) {
if (typeof items.e2eekey !== 'undefined') {
APP.store.dispatch(setE2EEKey(items.e2eekey));
// Clean URL in browser history.
@@ -1368,7 +1351,13 @@ export default {
const options = config;
const { email, name: nick } = getLocalParticipant(APP.store.getState());
const { locationURL } = APP.store.getState()['features/base/connection'];
const state = APP.store.getState();
const { locationURL } = state['features/base/connection'];
const { tenant } = state['features/base/jwt'];
if (tenant) {
options.siteID = tenant;
}
if (options.enableDisplayNameInStats && nick) {
options.statisticsDisplayName = nick;
@@ -1380,7 +1369,7 @@ export default {
options.applicationName = interfaceConfig.APP_NAME;
options.getWiFiStatsMethod = this._getWiFiStatsMethod;
options.confID = `${locationURL.host}${locationURL.pathname}`;
options.confID = `${locationURL.host}${getBackendSafePath(locationURL.pathname)}`;
options.createVADProcessor = createRnnoiseProcessorPromise;
// Disable CallStats, if requessted.
@@ -1417,18 +1406,6 @@ export default {
useVideoStream(newStream) {
return new Promise((resolve, reject) => {
_replaceLocalVideoTrackQueue.enqueue(onFinish => {
/**
* When the prejoin page is visible there is no conference object
* created. The prejoin tracks are managed separately,
* so this updates the prejoin video track.
*/
if (isPrejoinPageVisible(APP.store.getState())) {
return APP.store.dispatch(replacePrejoinVideoTrack(newStream))
.then(resolve)
.catch(reject)
.then(onFinish);
}
APP.store.dispatch(
replaceLocalTrack(this.localVideo, newStream, room))
.then(() => {
@@ -1482,18 +1459,6 @@ export default {
useAudioStream(newStream) {
return new Promise((resolve, reject) => {
_replaceLocalAudioTrackQueue.enqueue(onFinish => {
/**
* When the prejoin page is visible there is no conference object
* created. The prejoin tracks are managed separately,
* so this updates the prejoin audio stream.
*/
if (isPrejoinPageVisible(APP.store.getState())) {
return APP.store.dispatch(replacePrejoinAudioTrack(newStream))
.then(resolve)
.catch(reject)
.then(onFinish);
}
APP.store.dispatch(
replaceLocalTrack(this.localAudio, newStream, room))
.then(() => {
@@ -1677,8 +1642,6 @@ export default {
* @private
*/
_createDesktopTrack(options = {}) {
let externalInstallation = false;
let DSExternalInstallationInProgress = false;
const didHaveVideo = !this.isLocalVideoMuted();
const getDesktopStreamPromise = options.desktopStream
@@ -1687,43 +1650,7 @@ export default {
desktopSharingSourceDevice: options.desktopSharingSources
? null : config._desktopSharingSourceDevice,
desktopSharingSources: options.desktopSharingSources,
devices: [ 'desktop' ],
desktopSharingExtensionExternalInstallation: {
interval: 500,
checkAgain: () => DSExternalInstallationInProgress,
listener: (status, url) => {
switch (status) {
case 'waitingForExtension': {
DSExternalInstallationInProgress = true;
externalInstallation = true;
const listener = () => {
// Wait a little bit more just to be sure that
// we won't miss the extension installation
setTimeout(() => {
DSExternalInstallationInProgress = false;
},
500);
APP.UI.removeListener(
UIEvents.EXTERNAL_INSTALLATION_CANCELED,
listener);
};
APP.UI.addListener(
UIEvents.EXTERNAL_INSTALLATION_CANCELED,
listener);
APP.UI.showExtensionExternalInstallationDialog(url);
break;
}
case 'extensionFound':
// Close the dialog.
externalInstallation && $.prompt.close();
break;
default:
// Unknown status
}
}
}
devices: [ 'desktop' ]
});
return getDesktopStreamPromise.then(desktopStreams => {
@@ -1747,15 +1674,8 @@ export default {
);
}
// close external installation dialog on success.
externalInstallation && $.prompt.close();
return desktopStreams;
}, error => {
DSExternalInstallationInProgress = false;
// close external installation dialog on success.
externalInstallation && $.prompt.close();
throw error;
});
},
@@ -1959,70 +1879,36 @@ export default {
/**
* Handles {@link JitsiTrackError} returned by the lib-jitsi-meet when
* trying to create screensharing track. It will either do nothing if
* the dialog was canceled on user's request or display inline installation
* dialog and ask the user to install the extension, once the extension is
* installed it will switch the conference to screensharing. The last option
* is that an unrecoverable error dialog will be displayed.
* the dialog was canceled on user's request or display an error if
* screensharing couldn't be started.
* @param {JitsiTrackError} error - The error returned by
* {@link _createDesktopTrack} Promise.
* @private
*/
_handleScreenSharingError(error) {
if (error.name === JitsiTrackErrors.CHROME_EXTENSION_USER_CANCELED) {
if (error.name === JitsiTrackErrors.SCREENSHARING_USER_CANCELED) {
return;
}
logger.error('failed to share local desktop', error);
if (error.name
=== JitsiTrackErrors.CHROME_EXTENSION_USER_GESTURE_REQUIRED) {
// If start with screen sharing the extension will fail to install
// (if not found), because the request has been triggered by the
// script. Show a dialog which asks user to click "install" and try
// again switching to the screen sharing.
APP.UI.showExtensionInlineInstallationDialog(
() => {
// eslint-disable-next-line no-empty-function
this.toggleScreenSharing().catch(() => {});
}
);
return;
}
// Handling:
// JitsiTrackErrors.PERMISSION_DENIED
// JitsiTrackErrors.CHROME_EXTENSION_INSTALLATION_ERROR
// JitsiTrackErrors.CONSTRAINT_FAILED
// JitsiTrackErrors.GENERAL
// JitsiTrackErrors.PERMISSION_DENIED
// JitsiTrackErrors.SCREENSHARING_GENERIC_ERROR
// and any other
let descriptionKey;
let titleKey;
if (error.name === JitsiTrackErrors.PERMISSION_DENIED) {
// in FF the only option for user is to deny access temporary or
// permanently and we only receive permission_denied
// we always show some info cause in case of permanently, no info
// shown will be bad experience
//
// TODO: detect interval between requesting permissions and received
// error, this way we can detect user interaction which will have
// longer delay
if (JitsiMeetJS.util.browser.isFirefox()) {
descriptionKey
= 'dialog.screenSharingFirefoxPermissionDeniedError';
titleKey = 'dialog.screenSharingFirefoxPermissionDeniedTitle';
} else {
descriptionKey = 'dialog.screenSharingPermissionDeniedError';
titleKey = 'dialog.screenSharingFailedToInstallTitle';
}
descriptionKey = 'dialog.screenSharingPermissionDeniedError';
titleKey = 'dialog.screenSharingFailedTitle';
} else if (error.name === JitsiTrackErrors.CONSTRAINT_FAILED) {
descriptionKey = 'dialog.cameraConstraintFailedError';
titleKey = 'deviceError.cameraError';
} else {
descriptionKey = 'dialog.screenSharingFailedToInstall';
titleKey = 'dialog.screenSharingFailedToInstallTitle';
} else if (error.name === JitsiTrackErrors.SCREENSHARING_GENERIC_ERROR) {
descriptionKey = 'dialog.screenSharingFailed';
titleKey = 'dialog.screenSharingFailedTitle';
}
APP.UI.messageHandler.showError({
@@ -2429,11 +2315,20 @@ export default {
micDeviceId => {
const audioWasMuted = this.isLocalAudioMuted();
// When the 'default' mic needs to be selected, we need to
// pass the real device id to gUM instead of 'default' in order
// to get the correct MediaStreamTrack from chrome because of the
// following bug.
// https://bugs.chromium.org/p/chromium/issues/detail?id=997689
const hasDefaultMicChanged = micDeviceId === 'default';
sendAnalytics(createDeviceChangedEvent('audio', 'input'));
createLocalTracksF({
devices: [ 'audio' ],
cameraDeviceId: null,
micDeviceId
micDeviceId: hasDefaultMicChanged
? getDefaultDeviceId(APP.store.getState(), 'audioInput')
: micDeviceId
})
.then(([ stream ]) => {
// if audio was muted before changing the device, mute
@@ -2457,6 +2352,12 @@ export default {
return this.useAudioStream(stream);
})
.then(() => {
if (hasDefaultMicChanged) {
// workaround for the default device to be shown as selected in the
// settings even when the real device id was passed to gUM because of the
// above mentioned chrome bug.
this.localAudio._realDeviceId = this.localAudio.deviceId = 'default';
}
logger.log(`switched local audio device: ${this.localAudio?.getDeviceId()}`);
this._updateAudioDeviceId();
@@ -2510,6 +2411,8 @@ export default {
if (state === 'stop'
|| state === 'start'
|| state === 'playing') {
const localParticipant = getLocalParticipant(APP.store.getState());
room.removeCommand(this.commands.defaults.SHARED_VIDEO);
room.sendCommandOnce(this.commands.defaults.SHARED_VIDEO, {
value: url,
@@ -2517,7 +2420,8 @@ export default {
state,
time,
muted: isMuted,
volume
volume,
from: localParticipant.id
}
});
} else {
@@ -2758,11 +2662,20 @@ export default {
checkAndNotifyForNewDevice(newAvailDevices.videoInput, oldDevices.videoInput));
}
// When the 'default' mic needs to be selected, we need to
// pass the real device id to gUM instead of 'default' in order
// to get the correct MediaStreamTrack from chrome because of the
// following bug.
// https://bugs.chromium.org/p/chromium/issues/detail?id=997689
const hasDefaultMicChanged = newDevices.audioinput === 'default';
promises.push(
mediaDeviceHelper.createLocalTracksAfterDeviceListChanged(
createLocalTracksF,
newDevices.videoinput,
newDevices.audioinput)
hasDefaultMicChanged
? getDefaultDeviceId(APP.store.getState(), 'audioInput')
: newDevices.audioinput)
.then(tracks => {
// If audio or video muted before, or we unplugged current
// device and selected new one, then mute new track.
@@ -2787,6 +2700,12 @@ export default {
// Use the new stream or null if we failed to obtain it.
return useStream(tracks.find(track => track.getType() === mediaType) || null)
.then(() => {
if (hasDefaultMicChanged) {
// workaround for the default device to be shown as selected in the
// settings even when the real device id was passed to gUM because of
// the above mentioned chrome bug.
this.localAudio._realDeviceId = this.localAudio.deviceId = 'default';
}
mediaType === 'audio'
? this._updateAudioDeviceId()
: this._updateVideoDeviceId();

View File

@@ -54,6 +54,13 @@ var config = {
// Disables the auto-play behavior of *all* newly created video element.
// This is useful when the client runs on a host with limited resources.
// noAutoPlayVideo: false
// Enable / disable 500 Kbps bitrate cap on desktop tracks. When enabled,
// simulcast is turned off for the desktop share. If presenter is turned
// on while screensharing is in progress, the max bitrate is automatically
// adjusted to 2.5 Mbps. This takes a value between 0 and 1 which determines
// the probability for this to be enabled.
// capScreenshareBitrate: 1 // 0 to disable
},
// Disables ICE/UDP by filtering out local and remote UDP candidates in
@@ -147,22 +154,6 @@ var config = {
// Desktop sharing
// The ID of the jidesha extension for Chrome.
desktopSharingChromeExtId: null,
// Whether desktop sharing should be disabled on Chrome.
// desktopSharingChromeDisabled: false,
// The media sources to use when using screen sharing with the Chrome
// extension.
desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],
// Required version of Chrome extension
desktopSharingChromeMinExtVersion: '0.1',
// Whether desktop sharing should be disabled on Firefox.
// desktopSharingFirefoxDisabled: false,
// Optional desktop sharing frame rate options. Default value: min:5, max:5.
// desktopSharingFrameRate: {
// min: 5,
@@ -210,6 +201,21 @@ var config = {
// Default value for the channel "last N" attribute. -1 for unlimited.
channelLastN: -1,
// // Options for the recording limit notification.
// recordingLimit: {
//
// // The recording limit in minutes. Note: This number appears in the notification text
// // but doesn't enforce the actual recording time limit. This should be configured in
// // jibri!
// limit: 60,
//
// // The name of the app with unlimited recordings.
// appName: 'Unlimited recordings APP',
//
// // The URL of the app with unlimited recordings.
// appURL: 'https://unlimited.recordings.app.com/'
// },
// Disables or enables RTX (RFC 4588) (defaults to false).
// disableRtx: false,
@@ -238,11 +244,14 @@ var config = {
// is set in Jicofo and set to 2).
// minParticipants: 2,
// Use XEP-0215 to fetch STUN and TURN servers.
// Use the TURN servers discovered via XEP-0215 for the jitsi-videobridge
// connection
// useStunTurn: true,
// Enable IPv6 support.
// useIPv6: true,
// Use TURN/UDP servers for the jitsi-videobridge connection (by default
// we filter out TURN/UDP because it is usually not needed since the
// bridge itself is reachable via UDP)
// useTurnUdp: false
// Enables / disables a data communication channel with the Videobridge.
// Values can be 'datachannel', 'websocket', true (treat it as
@@ -254,9 +263,6 @@ var config = {
// UI
//
// Use display name as XMPP nickname.
// useNicks: false,
// Require users to always specify a display name.
// requireDisplayName: true,
@@ -300,6 +306,11 @@ var config = {
// When 'true', it shows an intermediate page before joining, where the user can configure its devices.
// prejoinPageEnabled: false,
// If true, shows the unsafe roon name warning label when a room name is
// deemed unsafe (due to the simplicity in the name) and a password is not
// set or the lobby is not enabled.
// enableInsecureRoomNameWarning: false,
// Stats
//
@@ -352,7 +363,7 @@ var config = {
// { urls: 'stun:jitsi-meet.example.com:4446' },
{ urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' }
],
]
// Sets the ICE transport policy for the p2p connection. At the time
// of this writing the list of possible values are 'all' and 'relay',
@@ -364,7 +375,7 @@ var config = {
// If set to true, it will prefer to use H.264 for P2P calls (if H.264
// is supported).
preferH264: true
// preferH264: true
// If set to true, disable H.264 video codec by stripping it out of the
// SDP.
@@ -490,6 +501,23 @@ var config = {
// If set to true all muting operations of remote participants will be disabled.
// disableRemoteMute: true,
/**
External API url used to receive branding specific information.
If there is no url set or there are missing fields, the defaults are applied.
None of the fieds are mandatory and the response must have the shape:
{
// The hex value for the colour used as background
backgroundColor: '#fff',
// The url for the image used as background
backgroundImageUrl: 'https://example.com/background-img.png',
// The anchor url used when clicking the logo image
logoClickUrl: 'https://example-company.org',
// The url used for the image used as logo
logoImageUrl: 'https://example.com/logo-img.png'
}
*/
// brandingDataUrl: '',
// List of undocumented settings used in jitsi-meet
/**
_immediateReloadThreshold

View File

@@ -1,20 +1,20 @@
/* global APP, JitsiMeetJS, config */
import Logger from 'jitsi-meet-logger';
import { jitsiLocalStorage } from 'js-utils';
import AuthHandler from './modules/UI/authentication/AuthHandler';
import {
connectionEstablished,
connectionFailed
} from './react/features/base/connection';
} from './react/features/base/connection/actions';
import {
isFatalJitsiConnectionError,
JitsiConnectionErrors,
JitsiConnectionEvents
} from './react/features/base/lib-jitsi-meet';
const logger = require('jitsi-meet-logger').getLogger(__filename);
const logger = Logger.getLogger(__filename);
/**
* The feature announced so we can distinguish jibri participants.

View File

@@ -1,5 +1,6 @@
.audio-preview {
&-content {
background: #2A3A4B;
font-size: 15px;
line-height: 24px;
max-height: 456px;
@@ -32,7 +33,7 @@
margin-left: 48px;
&--selected {
background: rgba(28,32,37,0.5);
background: #1C2025;
cursor: initial;
margin-left: 0;
padding-left: 21px;
@@ -55,7 +56,7 @@
&:hover {
.audio-preview-entry {
background: rgba(255,255,255, 0.2);
background: #3F4E5E;
margin-left: 0;
padding-left: 48px;
@@ -80,8 +81,23 @@
&-microphone {
position: relative;
}
&:hover {
.audio-preview-entry {
background: #3F4E5E;
margin-left: 0;
padding-left: 48px;
&--selected {
padding-left: 21px;
}
}
}
.audio-preview-entry-text {
max-width: 196px;
}
}
&-icon {
border-radius: 50%;

View File

@@ -115,8 +115,9 @@ form {
.leftwatermark {
left: 32px;
top: 32px;
background-image: url($defaultWatermarkLink);
background-position: center left;
background-repeat: no-repeat;
background-size: contain;
}
.rightwatermark {

35
css/_e2ee.scss Normal file
View File

@@ -0,0 +1,35 @@
#e2ee-section {
.title {
font-weight: 700;
}
.description {
font-size: .8em;
margin: 15px 0;
}
.key-field {
align-items: center;
display: flex;
flex-direction: row;
label {
font-weight: 700;
}
input {
background-color: inherit;
border: none;
color: inherit;
flex: 1;
padding: 0 5px;
}
a {
color: #6FB1EA;
cursor: pointer;
font-size: 14px;
text-decoration: none;
}
}
}

140
css/_lobby.scss Normal file
View File

@@ -0,0 +1,140 @@
#lobby-screen {
.content {
.container {
align-items: center;
display: flex;
flex-direction: column;
.spinner {
margin: 30px;
}
.joining-message {
margin: 10px;
}
}
.form {
align-items: stretch;
display: flex;
flex-direction: column;
min-width: 400px;
}
.participant-info {
align-items: center;
display: flex;
flex-direction: column;
}
}
}
#lobby-section {
display: flex;
flex-direction: column;
.control-row {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 15px;
label {
font-size: 14px;
font-weight: bold;
}
}
}
#knocking-participant-list {
background-color: $newToolbarBackgroundColor;
border: 1px solid rgba(255, 255, 255, .4);
border-radius: 8px;
display: flex;
flex-direction: column;
left: 0;
margin: 20px;
position: fixed;
top: 20;
transition: top 1s ease;
z-index: 100;
&.toolbox-visible {
// Same as toolbox subject position
top: 120px;
}
.title {
background-color: rgba(0, 0, 0, .2);
font-size: 1.2em;
padding: 15px
}
ul {
list-style-type: none;
padding: 0 15px 15px 15px;
li {
align-items: center;
display: flex;
flex-direction: row;
margin: 8px 0;
.details {
display: flex;
flex: 1;
flex-direction: column;
justify-content: space-evenly;
margin: 0 30px 0 10px;
}
button {
align-self: unset;
margin: 0 5px;
}
}
}
input {
align-self: stretch;
background-color: transparent;
border: 1px solid #B8C7E0;
border-radius: 4px;
color: white;
padding: 12px 8px;
&:focus {
border-color: rgb(3, 118, 218);
}
}
button {
align-self: stretch;
margin: 8px 0;
padding: 12px;
transition: .2s transform ease;
&:disabled {
opacity: .5;
}
&:hover {
transform: scale(1.05);
&:disabled {
transform: none;
}
}
&.borderLess {
background-color: transparent;
border-width: 0;
}
&.primary {
background-color: rgb(3, 118, 218);
border-width: 0;
}
}
}

View File

@@ -1,18 +1,4 @@
.prejoin {
&-full-page {
background: #1C2025;
position: absolute;
width: 100%;
height: 100%;
z-index: $toolbarZ + 1;
}
&-input-area-container {
position: absolute;
bottom: 48px;
width: 100%;
z-index: 2;
}
&-input-area {
margin: 0 auto;
@@ -27,65 +13,6 @@
margin-bottom: 16px;
}
&-btn {
border-radius: 3px;
color: #fff;
cursor: pointer;
display: inline-block;
font-size: 15px;
line-height: 24px;
padding: 7px 16px;
position: relative;
text-align: center;
width: 286px;
&--primary {
background: #0376DA;
border: 1px solid #0376DA;
}
&--secondary {
background: #2A3A4B;
border: 1px solid #5E6D7A;
}
&--text {
width: auto;
font-size: 13px;
margin: 0;
padding: 0;
}
&--disabled {
background: #5E6D7A;
border: 1px solid #5E6D7A;
color: #AFB6BC;
cursor: initial;
.prejoin-btn-icon {
& > svg {
fill: #AFB6BC;
}
}
.prejoin-btn-options {
border-left: 1px solid #AFB6BC;
}
}
}
&-btn-options {
align-items: center;
border-left: 1px solid #fff;
display: flex;
height: 100%;
justify-content: center;
position: absolute;
right: 0;
top: 0;
width: 40px;
}
&-text-btns {
display: flex;
justify-content: space-between;
@@ -179,25 +106,6 @@
margin: 200px auto 0 auto;
}
&-btn-container {
display: flex;
justify-content: center;
margin-top: 32px;
width: 100%;
&> div {
margin: 0 12px;
}
.settings-button-small-icon {
right: -8px;
&--hovered {
right: -10px;
}
}
}
&-overlay {
height: 100%;
position: absolute;
@@ -217,22 +125,20 @@
&-status {
align-items: center;
bottom: 0;
align-self: stretch;
color: #fff;
display: flex;
font-size: 13px;
min-height: 24px;
justify-content: center;
position: absolute;
text-align: center;
width: 100%;
z-index: 1;
&--warning {
background: rgba(241, 173, 51, 0.5)
background: rgba(241, 173, 51, 0.7)
}
&--ok {
background: rgba(49, 183, 106, 0.5);
background: rgba(49, 183, 106, 0.7);
}
}
@@ -291,63 +197,3 @@
}
}
.prejoin-copy {
&-meeting {
cursor: pointer;
color: #fff;
font-size: 15px;
font-weight: 300;
line-height: 24px;
position: relative;
}
&-url {
max-width: 278px;
padding: 8px 10px;
overflow: hidden;
text-overflow: ellipsis;
}
&-badge {
border-radius: 4px;
height: 100%;
line-height: 38px;
position: absolute;
padding-left: 10px;
text-align: left;
top: 0;
width: 100%;
&--hover {
background: #1C2025;
}
&--done {
background: #31B76A;
}
}
&-icon {
position: absolute;
right: 8px;
top: 8px;
&--white {
&> svg > path {
fill: #fff
}
}
&--light {
&> svg > path {
fill: #D1DBE8;
}
}
}
&-textarea {
position: absolute;
left: -9999px;
}
}

View File

@@ -0,0 +1,203 @@
/**
* Shared style for full screen local track based dialogs/modals.
*/
.premeeting-screen {
align-items: stretch;
background: #1C2025;
bottom: 0;
display: flex;
flex-direction: column;
font-size: 1.3em;
left: 0;
position: absolute;
right: 0;
top: 0;
z-index: $toolbarZ + 1;
.content {
align-items: center;
background-image: linear-gradient(transparent, black);
display: flex;
flex: 1;
flex-direction: column;
justify-content: flex-end;
z-index: $toolbarZ + 2;
.title {
color: #fff;
font-size: 24px;
line-height: 32px;
margin-bottom: 16px;
}
.copy-meeting {
align-items: center;
cursor: pointer;
color: #fff;
display: flex;
flex-direction: row;
font-size: 15px;
font-weight: 300;
justify-content: center;
line-height: 24px;
margin-bottom: 16px;
.url {
display: flex;
padding: 8px 10px;
&:hover {
background: #1C2025;
border-radius: 4px;
}
&.done {
background: #31B76A;
}
.jitsi-icon {
margin-left: 10px;
}
}
.copy-meeting-text {
width: 266px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
&:hover {
align-self: stretch;
}
textarea {
border-width: 0;
height: 0;
opacity: 0;
padding: 0;
width: 0;
}
}
input.field {
background-color: transparent;
border: 1px solid transparent;
color: white;
outline-width: 0;
padding: 8px 0;
text-align: center;
width: 100%;
&.focused {
border-bottom: 1px solid white;
}
&.error::placeholder {
color: $defaultWarningColor;
}
}
.action-btn {
border-radius: 3px;
color: #fff;
cursor: pointer;
display: inline-block;
font-size: 15px;
line-height: 24px;
margin-top: 16px;
padding: 7px 16px;
position: relative;
text-align: center;
width: 286px;
&.primary {
background: #0376DA;
border: 1px solid #0376DA;
}
&.secondary {
background: transparent;
border: 1px solid #5E6D7A;
}
&.text {
width: auto;
font-size: 13px;
margin: 0;
padding: 0;
}
&.disabled {
background: #5E6D7A;
border: 1px solid #5E6D7A;
color: #AFB6BC;
cursor: initial;
.icon {
& > svg {
fill: #AFB6BC;
}
}
.options {
border-left: 1px solid #AFB6BC;
}
}
.options {
align-items: center;
border-left: 1px solid #fff;
display: flex;
height: 100%;
justify-content: center;
position: absolute;
right: 0;
top: 0;
width: 40px;
}
}
}
.media-btn-container {
display: flex;
justify-content: center;
margin: 32px 0;
width: 100%;
&> div {
margin: 0 12px;
}
.settings-button-small-icon {
right: -8px;
&--hovered {
right: -10px;
}
}
}
}
#preview {
height: 100%;
position: absolute;
width: 100%;
&.no-video {
background: radial-gradient(50% 50% at 50% 50%, #5B6F80 0%, #365067 100%), #FFFFFF;
text-align: center;
}
.avatar {
background: #A4B8D1;
margin: 200px auto 0 auto;
}
video {
height: 100%;
object-fit: cover;
position: absolute;
width: 100%;
}
}

View File

@@ -35,6 +35,10 @@
cursor: initial;
color: #fff;
background-color: #a4b8d1;
&:hover {
background-color: #a4b8d1;
}
}
svg {

View File

@@ -101,7 +101,6 @@ $sidebarWidth: 375px;
* Misc.
*/
$borderRadius: 4px;
$defaultWatermarkLink: '../images/watermark.png';
$popoverMenuPadding: 13px;
$happySoftwareBackground: transparent;
$desktopAppDragBarHeight: 25px;
@@ -270,4 +269,3 @@ $chromeExtensionBannerTop: 80px;
$chromeExtensionBannerRight: 16px;
$chromeExtensionBannerTopInMeeting: 10px;
$chromeExtensionBannerRightInMeeeting: 10px;

View File

@@ -40,9 +40,6 @@
#remotePresenceMessage {
display: none !important;
}
#largeVideoContainer {
background-color: $defaultBackground !important;
}
/**
* Thumbnail popover menus can overlap other thumbnails. Setting an auto

View File

@@ -76,6 +76,7 @@ $flagsImagePath: "../images/";
@import 'filmstrip/vertical_filmstrip';
@import 'filmstrip/vertical_filmstrip_overrides';
@import 'labels';
@import 'lobby';
@import 'unsupported-browser/main';
@import 'modals/invite/add-people';
@import 'deep-linking/main';
@@ -96,5 +97,7 @@ $flagsImagePath: "../images/";
@import 'country-picker';
@import 'modals/invite/invite_more';
@import 'modals/security/security';
@import 'premeeting-screens';
@import 'e2ee';
/* Modules END */

View File

@@ -38,6 +38,7 @@
}
.info-password-input {
width: 100%;
background-color: transparent;
border: none;
color: inherit;

View File

@@ -21,11 +21,10 @@
&-button {
display: flex;
justify-content: space-between;
align-items: center;
margin: auto;
padding: 8px 16px;
width: 152px;
width: fit-content;
width: -moz-fit-content;
height: 24px;
background: #0376DA;
border-radius: 3px;
@@ -38,6 +37,7 @@
}
&-text {
margin-left: 8px;
font-size: 15px;
line-height: 24px;
}

View File

@@ -3,35 +3,54 @@
color: #fff;
font-size: 15px;
line-height: 24px;
&.password {
&.password-section {
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: column;
&-actions {
a {
cursor: pointer;
text-decoration: none;
font-size: 14px;
color: #6FB1EA;
}
.password {
align-items: center;
display: flex;
justify-content: space-between;
margin-top: 15px;
& > a + a {
margin-left: 24px;
&-actions {
a {
cursor: pointer;
text-decoration: none;
font-size: 14px;
color: #6FB1EA;
}
&>a+a {
margin-left: 24px;
}
}
}
}
&> :first-child:not(:last-child) {
margin-right: 24px;
}
.separator-line {
margin: 24px 0 24px -20px;
padding: 0 20px;
width: 100%;
height: 1px;
background: #5E6D7A;
&:last-child {
display: none;
}
}
}
}
.new-toolbox .toolbox-content .toolbox-icon.security-toolbar-button,
.new-toolbox .toolbox-content .toolbox-icon.toggled.security-toolbar-button {
background: rgba(241, 173, 51, 0.7);
border: 1px solid rgba(255, 255, 255, 0.4);
border-width: 0;
&:hover {
background: rgba(241, 173, 51, 0.7);
border: 1px solid rgba(255, 255, 255, 0.4);
&:not(:hover) {
background: unset;
}
}
}

2
debian/control vendored
View File

@@ -3,7 +3,7 @@ Section: net
Priority: extra
Maintainer: Jitsi Team <dev@jitsi.org>
Uploaders: Emil Ivov <emcho@jitsi.org>, Damian Minkov <damencho@jitsi.org>
Build-Depends: debhelper (>= 8.0.0)
Build-Depends: debhelper (>= 8.0.0), nodejs
Standards-Version: 3.9.6
Homepage: https://jitsi.org/meet

View File

@@ -106,7 +106,7 @@ case "$1" in
TURN_SECRET="$RET"
# no turn config exists, lt's copy template and fill it in
PUBLIC_IP=$(dig +short myip.opendns.com @resolver1.opendns.com) || true
PUBLIC_IP=$(dig -4 +short myip.opendns.com a @resolver1.opendns.com) || true
if [ -z "$PUBLIC_IP" ] ; then
PUBLIC_IP="127.0.0.1"
echo "------------------------------------------------"

View File

@@ -91,10 +91,14 @@ case "$1" in
CERT_CRT="/etc/jitsi/meet/$JVB_HOSTNAME.crt"
HOST="$( (hostname -s; echo localhost) | head -n 1)"
DOMAIN="$( (hostname -d; echo localdomain) | head -n 1)"
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \
openssl req -new -newkey rsa:4096 -days 3650 -nodes -x509 -subj \
"/O=$DOMAIN/OU=$HOST/CN=$JVB_HOSTNAME/emailAddress=webmaster@$HOST.$DOMAIN" \
-keyout $CERT_KEY \
-out $CERT_CRT
-out $CERT_CRT \
-reqexts SAN \
-extensions SAN \
-config <(cat /etc/ssl/openssl.cnf \
<(printf '[SAN]\nsubjectAltName=DNS:localhost,DNS:$JVB_HOSTNAME,IP:$JVB_HOSTNAME')) \
fi
fi

View File

@@ -1,3 +1,3 @@
# Documentation
The Jitsi documentation has been moved to [The Handbook](https://jitsi.github.io/handbook/).
The Jitsi documentation has been moved to [The Handbook](https://jitsi.github.io/handbook/). The repo is https://github.com/jitsi/handbook.

View File

@@ -15,6 +15,12 @@ cross_domain_bosh = false;
consider_bosh_secure = true;
-- https_ports = { }; -- Remove this line to prevent listening on port 5284
-- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
ssl = {
protocol = "tlsv1_2+";
ciphers = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
}
VirtualHost "jitmeet.example.com"
-- enabled = false -- Remove this line to enable this host
authentication = "anonymous"
@@ -40,8 +46,12 @@ VirtualHost "jitmeet.example.com"
"speakerstats";
"turncredentials";
"conference_duration";
"muc_lobby_rooms";
}
c2s_require_encryption = false
lobby_muc = "lobby.jitmeet.example.com"
main_muc = "conference.jitmeet.example.com"
-- muc_lobby_whitelist = { "recorder.jitmeet.example.com" } -- Here we can whitelist jibri to enter lobby enabled rooms
Component "conference.jitmeet.example.com" "muc"
storage = "memory"
@@ -75,3 +85,9 @@ Component "speakerstats.jitmeet.example.com" "speakerstats_component"
Component "conferenceduration.jitmeet.example.com" "conference_duration_component"
muc_component = "conference.jitmeet.example.com"
Component "lobby.jitmeet.example.com" "muc"
storage = "memory"
restrict_room_creation = true
muc_room_locking = false
muc_room_default_public_jids = true

View File

@@ -10,5 +10,9 @@ no-tcp
listening-port=4446
tls-listening-port=4445
external-ip=__external_ip_address__
no-tlsv1
no-tlsv1_1
# https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
cipher-list=ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
syslog

View File

@@ -21,11 +21,16 @@ server {
listen [::]:443 ssl;
server_name jitsi-meet.example.com;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";
# Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
add_header Strict-Transport-Security "max-age=31536000";
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m; # about 40000 sessions
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=63072000" always;
ssl_certificate /etc/jitsi/meet/jitsi-meet.example.com.crt;
ssl_certificate_key /etc/jitsi/meet/jitsi-meet.example.com.key;

View File

@@ -11,14 +11,15 @@
ServerName jitsi-meet.example.com
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
# enable HTTP/2, if available
Protocols h2 http/1.1
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/jitsi/meet/jitsi-meet.example.com.crt
SSLCertificateKeyFile /etc/jitsi/meet/jitsi-meet.example.com.key
SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"
SSLHonorCipherOrder on
Header set Strict-Transport-Security "max-age=31536000"
Header always set Strict-Transport-Security "max-age=63072000"
DocumentRoot "/usr/share/jitsi-meet"
<Directory "/usr/share/jitsi-meet">
@@ -48,3 +49,9 @@
RewriteEngine on
RewriteRule ^/([a-zA-Z0-9]+)$ /index.html
</VirtualHost>
# Mozilla Guideline v5.4, Apache 2.4.41, OpenSSL 1.1.1d, intermediate configuration, no OCSP
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off

View File

@@ -1,136 +1,23 @@
/* eslint-disable no-unused-vars, no-var, max-len */
/* eslint sort-keys: ["error", "asc", {"caseSensitive": false}] */
var interfaceConfig = {
// TO FIX: this needs to be handled from SASS variables. There are some
// methods allowing to use variables both in css and js.
DEFAULT_BACKGROUND: '#474747',
/**
* Whether or not the blurred video background for large video should be
* displayed on browsers that can support it.
*/
DISABLE_VIDEO_BACKGROUND: false,
INITIAL_TOOLBAR_TIMEOUT: 20000,
TOOLBAR_TIMEOUT: 4000,
TOOLBAR_ALWAYS_VISIBLE: false,
DEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster',
DEFAULT_LOCAL_DISPLAY_NAME: 'me',
SHOW_JITSI_WATERMARK: true,
JITSI_WATERMARK_LINK: 'https://jitsi.org',
// if watermark is disabled by default, it can be shown only for guests
SHOW_WATERMARK_FOR_GUESTS: true,
SHOW_BRAND_WATERMARK: false,
BRAND_WATERMARK_LINK: '',
SHOW_POWERED_BY: false,
SHOW_DEEP_LINKING_IMAGE: false,
GENERATE_ROOMNAMES_ON_WELCOME_PAGE: true,
DISPLAY_WELCOME_PAGE_CONTENT: true,
DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false,
APP_NAME: 'Jitsi Meet',
NATIVE_APP_NAME: 'Jitsi Meet',
PROVIDER_NAME: 'Jitsi',
LANG_DETECTION: true, // Allow i18n to detect the system language
INVITATION_POWERED_BY: true,
/**
* If we should show authentication block in profile
*/
AUTHENTICATION_ENABLE: true,
/**
* The name of the toolbar buttons to display in the toolbar. If present,
* the button will display. Exceptions are "livestreaming" and "recording"
* which also require being a moderator and some values in config.js to be
* enabled. Also, the "profile" button will not display for user's with a
* jwt.
*/
TOOLBAR_BUTTONS: [
'microphone', 'camera', 'closedcaptions', 'desktop', 'fullscreen',
'fodeviceselection', 'hangup', 'profile', 'chat', 'recording',
'livestreaming', 'etherpad', 'sharedvideo', 'settings', 'raisehand',
'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts',
'tileview', 'videobackgroundblur', 'download', 'help', 'mute-everyone',
'e2ee', 'security'
],
SETTINGS_SECTIONS: [ 'devices', 'language', 'moderator', 'profile', 'calendar' ],
// 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.
VIDEO_LAYOUT_FIT: 'both',
/**
* Whether to only show the filmstrip (and hide the toolbar).
*/
filmStripOnly: false,
/**
* Whether to show thumbnails in filmstrip as a column instead of as a row.
*/
VERTICAL_FILMSTRIP: true,
// A html text to be shown to guests on the close page, false disables it
CLOSE_PAGE_GUEST_HINT: false,
SHOW_PROMOTIONAL_CLOSE_PAGE: false,
RANDOM_AVATAR_URL_PREFIX: false,
RANDOM_AVATAR_URL_SUFFIX: false,
FILM_STRIP_MAX_HEIGHT: 120,
// Enables feedback star animation.
ENABLE_FEEDBACK_ANIMATION: false,
DISABLE_FOCUS_INDICATOR: false,
DISABLE_DOMINANT_SPEAKER_INDICATOR: 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 the ringing sound in the call/ring overlay is disabled. If
* {@code undefined}, defaults to {@code false}.
*
* @type {boolean}
*/
DISABLE_RINGING: false,
AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)',
AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)',
POLICY_LOGO: null,
LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9
REMOTE_THUMBNAIL_RATIO: 1, // 1:1
// Documentation reference for the live streaming feature.
LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live',
/**
* 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}.
* 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.
*
* @type {boolean}
* Note: this mode is experimental and subject to breakage.
*/
MOBILE_APP_PROMO: true,
/**
* Maximum coeficient 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,
/*
* If indicated some of the error dialogs may point to the support URL for
* help.
*/
SUPPORT_URL: 'https://community.jitsi.org/',
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
/**
* Whether the connection indicator icon should hide itself based on
* connection strength. If true, the connection indicator will remain
@@ -157,51 +44,112 @@ var interfaceConfig = {
*/
CONNECTION_INDICATOR_DISABLED: false,
/**
* If true, hides the video quality label indicating the resolution status
* of the current large video.
*
* @type {boolean}
*/
VIDEO_QUALITY_LABEL_DISABLED: false,
DEFAULT_BACKGROUND: '#474747',
DEFAULT_LOCAL_DISPLAY_NAME: 'me',
DEFAULT_LOGO_URL: 'images/watermark.png',
DEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster',
/**
* If true, will display recent list
*
* @type {boolean}
*/
RECENT_LIST_ENABLED: true,
DISABLE_DOMINANT_SPEAKER_INDICATOR: false,
// 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, edge, electron, firefox, nwjs, opera, safari
OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'nwjs', 'electron', 'safari' ],
// Browsers, in addition to those which do not fully support WebRTC, that
// are not supported and should show the unsupported browser page.
UNSUPPORTED_BROWSERS: [],
/**
* 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',
/**
* If true, presence status: busy, calling, connected etc. is not displayed.
*/
DISABLE_PRESENCE_STATUS: false,
DISABLE_FOCUS_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 ringing sound in the call/ring overlay is disabled. If
* {@code undefined}, defaults to {@code false}.
*
* @type {boolean}
*/
DISABLE_RINGING: 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_PAGE_CONTENT: true,
DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false,
ENABLE_FEEDBACK_ANIMATION: false, // Enables feedback star animation.
FILM_STRIP_MAX_HEIGHT: 120,
/**
* Whether to only show the filmstrip (and hide the toolbar).
*/
filmStripOnly: false,
GENERATE_ROOMNAMES_ON_WELCOME_PAGE: true,
/**
* Hide the invite prompt in the header when alone in the meeting.
*/
HIDE_INVITE_MORE_HEADER: false,
INITIAL_TOOLBAR_TIMEOUT: 20000,
JITSI_WATERMARK_LINK: 'https://jitsi.org',
LANG_DETECTION: true, // Allow i18n to detect the system language
LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live', // Documentation reference for the live streaming feature.
LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9
/**
* Maximum coeficient 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,
NATIVE_APP_NAME: 'Jitsi Meet',
// 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, edge, electron, firefox, nwjs, opera, safari
OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'nwjs', 'electron', 'safari' ],
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' ],
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)
@@ -209,6 +157,60 @@ var interfaceConfig = {
*/
SHOW_CHROME_EXTENSION_BANNER: false,
SHOW_DEEP_LINKING_IMAGE: false,
SHOW_JITSI_WATERMARK: true,
SHOW_POWERED_BY: false,
SHOW_PROMOTIONAL_CLOSE_PAGE: false,
SHOW_WATERMARK_FOR_GUESTS: true, // if watermark is disabled by default, it can be shown only for guests
/*
* If indicated some of the error dialogs may point to the support URL for
* help.
*/
SUPPORT_URL: 'https://community.jitsi.org/',
TOOLBAR_ALWAYS_VISIBLE: false,
/**
* The name of the toolbar buttons to display in the toolbar. If present,
* the button will display. Exceptions are "livestreaming" and "recording"
* which also require being a moderator and some values in config.js to be
* enabled. Also, the "profile" button will not display for user's with a
* jwt.
*/
TOOLBAR_BUTTONS: [
'microphone', 'camera', 'closedcaptions', 'desktop', 'fullscreen',
'fodeviceselection', 'hangup', 'profile', 'chat', 'recording',
'livestreaming', 'etherpad', 'sharedvideo', 'settings', 'raisehand',
'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts',
'tileview', 'videobackgroundblur', 'download', 'help', 'mute-everyone', 'security'
],
TOOLBAR_TIMEOUT: 4000,
// 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.
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
/**
* When enabled, the kick participant button will not be presented for users without a JWT
*/
@@ -261,15 +263,8 @@ var interfaceConfig = {
// List of undocumented settings
/**
INDICATOR_FONT_SIZES
MOBILE_DYNAMIC_LINK
PHONE_NUMBER_REGEX
*/
// Allow all above example options to include a trailing comma and
// prevent fear when commenting out the last value.
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 */

View File

@@ -287,7 +287,7 @@ PODS:
- React-jsinspector (0.61.5-jitsi.1)
- react-native-background-timer (2.1.1):
- React
- react-native-calendar-events (1.7.3):
- react-native-calendar-events (2.0.0):
- React
- react-native-keep-awake (4.0.0):
- React
@@ -365,7 +365,7 @@ PODS:
- React
- RNSVG (9.7.1):
- React
- RNWatch (0.2.0):
- RNWatch (0.4.3):
- React
- Yoga (1.14.0)
@@ -566,7 +566,7 @@ SPEC CHECKSUMS:
React-jsiexecutor: de1c37cf59ae9adcbf2be82eea0e090dc3f3205e
React-jsinspector: b76c4e84a7833bb4c90549d59ed53ec299ff912b
react-native-background-timer: 0d34748e53a972507c66963490c775321a88f6f2
react-native-calendar-events: 2fe35a9294af05de0ed819d3a1b5dac048d2c010
react-native-calendar-events: 1442fad71a00388f933cfa25512588fec300fcf8
react-native-keep-awake: eba3137546b10003361b37c761f6c429b59814ae
react-native-netinfo: 8d8db463bcc5db66a8ac5c48a7d86beb3b92f61a
react-native-webrtc: 86d841823e66d68cc1f86712db1c2956056bf0c2
@@ -586,7 +586,7 @@ SPEC CHECKSUMS:
RNGoogleSignin: 39336070b35fc4cea6a98cf111e00480317be0ae
RNSound: c980916b596cc15c8dcd2f6ecd3b13c4881dbe20
RNSVG: aac12785382e8fd4f28d072fe640612e34914631
RNWatch: 09738b339eceb66e4d80a2371633ca5fb380fa42
RNWatch: a5320c959c75e72845c07985f3e935e58998f1d3
Yoga: 7b4209fda2441f99d54dd6cf4c82b094409bb68f
PODFILE CHECKSUM: 082858daebbe170e7a490de433e7f2a99e0c3701

View File

@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.8.1</string>
<string>2.9.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>

View File

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

View File

@@ -1,6 +1,7 @@
{
"en": "Anglès",
"af": "Afrikaans",
"ar": "Àrab",
"bg": "Búlgar",
"ca": "Català",
"cs": "Txec",
@@ -10,25 +11,36 @@
"enGB": "Anglès (Regne Unit)",
"eo": "Esperanto",
"es": "Espanyol",
"esUS": "Espanyol (Amèrica llatina)",
"esUS": "Espanyol (Amèrica Llatina)",
"et": "Estonià",
"eu": "Èuscar",
"fi": "Finès",
"fr": "Francès",
"frCA": "Francès (Canadà)",
"he": "Hebreu",
"mr": "Marathi",
"hr": "Croat",
"hu": "Hongarès",
"hy": "Armeni",
"id": "Indonesi",
"it": "Italià",
"ja": "Japonès",
"ko": "Coreà",
"lt": "Lituà",
"nl": "Neerlandès",
"oc": "Occità",
"pl": "Polonès",
"ptBR": "Portuguès (Brasil)",
"ru": "Rus",
"ro": "Romanès",
"sc": "Sard",
"sk": "Eslovac",
"sl": "Eslovè",
"sv": "Suec",
"th": "Tai",
"tr": "Turc",
"uk": "Ucraïnès",
"vi": "Vietnamita",
"zhCN": "Xinès (Xina)",
"zhTW": "Xinès (Taiwan)",
"et": "Estonià"
"zhTW": "Xinès (Taiwan)"
}

42
lang/languages-el.json Normal file
View File

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

View File

@@ -19,7 +19,7 @@
"ptBR": "Portuguese (Brazil)",
"ru": "Russian",
"sk": "",
"sl": "",
"sl": "Slovenian",
"sv": "Swedish",
"tr": "Turkish",
"vi": "Vietnamese",

38
lang/languages-mr.json Normal file
View File

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

View File

@@ -30,5 +30,13 @@
"zhCN": "Chinés (China)",
"zhTW": "Chinés (Taiwan)",
"et": "Estonian",
"da": "Danés"
"da": "Danés",
"uk": "Ucraïnian",
"th": "Tai",
"sk": "Eslovac",
"sc": "Sarde",
"lt": "Lituanian",
"id": "Indonesian",
"he": "Ebrèu",
"eu": "Basc"
}

45
lang/languages-ro.json Normal file
View File

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

View File

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

View File

@@ -1,6 +1,7 @@
{
"en": "English",
"af": "Afrikaans",
"ar": "Arabic",
"bg": "Bulgarian",
"ca": "Catalan",
"cs": "Czech",
@@ -17,6 +18,7 @@
"fr": "French",
"frCA": "French (Canadian)",
"he": "Hebrew",
"mr":"Marathi",
"hr": "Croatian",
"hu": "Hungarian",
"hy": "Armenian",
@@ -30,8 +32,10 @@
"pl": "Polish",
"ptBR": "Portuguese (Brazil)",
"ru": "Russian",
"ro": "Romanian",
"sc": "Sardinian",
"sk": "Slovak",
"sl": "Slovenian",
"sv": "Swedish",
"th": "Thailand",
"tr": "Turkish",

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,20 @@
{
"addPeople": {
"add": "Einladen",
"addContacts": "Laden Sie Ihre Kontakte ein",
"copyInvite": "Sitzungseinladung kopieren",
"copyLink": "Meeting-Link kopieren",
"copyStream": "Live-Streaming-Link 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 Teilnehmer einladen.",
"failedToAdd": "Fehler beim Hinzufügen von Teilnehmern",
"footerText": "Abgehender Ruf ist deaktiviert.",
"inviteMoreHeader": "Sie sind alleine in der Sitzung",
"inviteMoreMailSubject": "An {{appName}} Meeting teilnehmen",
"inviteMorePrompt": "Mehr Leute einladen",
"linkCopied": "Link in die Zwischenablage kopiert",
"loading": "Suche nach Teilnehmern und Telefonnummern",
"loadingNumber": "Telefonnummer wird überprüft",
"loadingPeople": "Suche nach einzuladenden Teilnehmern",
@@ -14,6 +23,9 @@
"searchNumbers": "Telefonnummern hinzufügen",
"searchPeople": "Nach Teilnehmern suchen",
"searchPeopleAndNumbers": "Nach Teilnehmen suchen oder deren Telefonnummern hinzufügen",
"shareInvite": "Einladung zur Versammlung teilen",
"shareLink": "Teilen Sie den Meeting-Link, um andere einzuladen",
"shareStream": "Den Live-Streaming-Link freigeben",
"telephone": "Telefon: {{number}}",
"title": "Teilnehmer zu dieser Konferenz einladen"
},
@@ -123,8 +135,10 @@
"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.",
"descriptionWithoutWeb": "Ist nichts passiert? Wir haben versucht, Ihre Besprechung in der „{{app}}“-Desktop-App zu starten.",
"downloadApp": "App herunterladen",
"ifDoNotHaveApp": "Wenn Sie die App noch nicht haben:",
"ifHaveApp": "Wenn Sie die App bereits haben:",
"joinInApp": "An dem Meeting teilnehmen mit der App",
"launchWebButton": "Im Web öffnen",
"openApp": "In der App fortfahren",
"title": "Die Konferenz wird in {{app}} geöffnet...",
"tryAgainButton": "Erneut mit der nativen Applikation versuchen"
},
@@ -320,15 +334,15 @@
"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, tippen Sie hier: {{number}},,{{conferenceID}}#\n",
"invitePhoneAlternatives": "Suche nach einer anderen Einwahlnummer?\nMeetings-Einwahlnummern sehen: {{url}}\n\n\nWenn Sie sich auch über ein Raumtelefon einwählen, nehmen Sie teil, ohne sich mit dem Ton zu verbinden: {{silentUrl}}",
"invitePhone": "Wenn Sie stattdessen per Telefon beitreten möchten, wählen sie: {{number}},,{{conferenceID}}#\n",
"invitePhoneAlternatives": "Suchen Sie nach einer anderen Einwahlnummer ?\nMeeting-Einwahlnummern anzeigen: {{url}}\n\n\nWenn Sie sich auch über ein Raumtelefon einwählen, nehmen Sie teil, ohne sich mit dem Ton zu verbinden: {{silentUrl}}",
"inviteURLFirstPartGeneral": "Sie wurden zur Teilnahme an einem Meeting eingeladen.",
"inviteURLFirstPartPersonal": "{{name}} lädt Sie zu einem Meeting ein.\n",
"inviteURLSecondPart": "\nAm Meeting teilnehmen:\n{{url}}\n",
"liveStreamURL": "Livestream:",
"moreNumbers": "Weitere Telefonnummern",
"noNumbers": "Keine Telefonnummern verfügbar.",
"noPassword": "Keines",
"noPassword": "Kein Passwort benötigt",
"noRoom": "Keine Konferenz für die Einwahlinformationen angegeben.",
"numbers": "Einwahlnummern",
"password": "$t(lockRoomPasswordUppercase):",
@@ -516,6 +530,11 @@
"sectionList": {
"pullToRefresh": "Ziehen, um zu aktualisieren"
},
"security": {
"about": "Sie können einen Passwort zu Ihrer Sitzung hinzufügen. Die Teilnehmer müssen dieses ebenfalls eingeben, bevor sie an der Sitzung teilnehmen dürfen",
"insecureRoomNameWarning": "Der Raumname ist unsicher. Unerwünschte Teilnehmer könnten Ihrer Konferenz beitreten",
"securityOptions": "Sicherheitsoptionen"
},
"settings": {
"calendar": {
"about": "Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Termine zu ermöglichen.",
@@ -610,6 +629,7 @@
"raiseHand": "„Melden“ ein-/ausschalten",
"recording": "Aufzeichnung ein-/ausschalten",
"remoteMute": "Teilnehmer stummschalten",
"security": "Sicherheitsoptionen",
"Settings": "Einstellungen ein-/ausschalten",
"sharedvideo": "YouTube-Videofreigabe ein-/ausschalten",
"shareRoom": "Person einladen",
@@ -661,6 +681,7 @@
"profile": "Profil bearbeiten",
"raiseHand": "Hand erheben",
"raiseYourHand": "Melden",
"security": "Sicherheitsoptionen",
"Settings": "Einstellungen",
"sharedvideo": "YouTube-Video teilen",
"shareRoom": "Person einladen",

891
lang/main-el.json Normal file
View File

@@ -0,0 +1,891 @@
{
"addPeople": {
"add": "Προσκάλεσε",
"addContacts": "Προσκάλεσε τις επαφές σου",
"copyInvite": "Αντίγραψε την πρόσκληση της συνάντησης",
"copyLink": "Αντίγραψε το σύνδεσμο της συνάντησης",
"copyStream": "Αντίγραψε το σύνδεσμο της ζωντανής μετάδοσης",
"countryNotSupported": "Δεν υποστηρίζουμε αυτόν τον προορισμό ακόμα.",
"countryReminder": "Κλήση εκτός ΗΠΑ; Παρακαλώ βεβαιωθείτε ότι ξεκινάτε με τον κωδικό της χώρας!",
"defaultEmail": "Το προεπιλεγμένο Email σου",
"disabled": "Δεν μπορείτε να προσκαλέσετε άτομα.",
"failedToAdd": "Αποτυχία προσθήκης συμμετεχόντων",
"footerText": "Η κλήση είναι απενεργοποιημένη.",
"googleEmail": "Google Email",
"inviteMoreHeader": "Είσαι ο μόναδικός συμμετέχων στη συνάντηση",
"inviteMoreMailSubject": "Συμμετοχή στη συνάντηση {{appName}}",
"inviteMorePrompt": "Πρόσκληση συμμετεχόντων",
"linkCopied": "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο",
"loading": "Αναζήτηση για ανθρώπους και αριθμούς τηλεφώνου",
"loadingNumber": "Ο αριθμός τηλεφώνου επικυρώνεται",
"loadingPeople": "Γίνεται αναζήτηση για ανθρώπους που θα καλεστούν",
"noResults": "Δε βρέθηκαν αποτελέσματα αναζήτησης",
"outlookEmail": "Outlook Email",
"noValidNumbers": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου",
"searchNumbers": "Προσθέστε αριθμούς τηλεφώνου",
"searchPeople": "Αναζήτηση για ανθρώπους",
"searchPeopleAndNumbers": "Αναζήτηση για ανθρώπους ή προσθήκη των αριθμών τηλεφώνου τους",
"shareInvite": "Κοινή χρήση πρόσκλησης συνάντησης",
"shareLink": "Κοινή χρήση συνδέσμου συνάντησης για πρόσκληση άλλων",
"shareStream": "Κοινή χρήση του συνδέσμου ζωντανής μετάδοσης",
"telephone": "Τηλέφωνο: {{number}}",
"title": "Καλέστε ανθρώπους σε αυτή τη συνάντηση",
"yahooEmail": "Yahoo Email"
},
"audioDevices": {
"bluetooth": "Bluetooth",
"headphones": "Ακουστικά",
"phone": "Τηλέφωνο",
"speaker": "Ομιλητής",
"none": "Δεν υπάρχουν διαθέσιμες συσκευές ήχου"
},
"audioOnly": {
"audioOnly": "Χαμηλό εύρος ζώνης"
},
"calendarSync": {
"addMeetingURL": "Προσθέστε έναν σύνδεσμο συνάντησης",
"confirmAddLink": "Θέλετε να προσθέσετε έναν σύνδεσμο Jitsi σε αυτό το γεγονός;",
"error": {
"appConfiguration": "Η ενσωμάτωση ημερολόγιου δεν έχει ρυθμιστεί σωστά.",
"generic": "Παρουσιάστηκε ένα σφάλμα. Παρακαλείστε να ελέγξετε τις ρυθμίσεις ημερολογίου σας ή να δοκιμάσετε να ανανεώσετε το ημερολόγιο.",
"notSignedIn": "Παρουσιάστηκε ένα σφάλμα κατά τον έλεγχο ταυτότητας προβολής ημερολογίου εκδηλώσεων. Παρακαλείστε να ελέγξετε τις ρυθμίσεις ημερολογίου και να δοκιμάσετε να συνδεθείτε ξανά."
},
"join": "Συμμετοχή",
"joinTooltip": "Συμμετοχή στη σύσκεψη",
"nextMeeting": "επόμενη συνάντηση",
"noEvents": "Δεν υπάρχουν προγραμματισμένες προσεχείς εκδηλώσεις.",
"ongoingMeeting": "συνάντηση σε εξέλιξη",
"permissionButton": "Άνοιγμα ρυθμίσεων",
"permissionMessage": "Η άδεια ημερολόγιου άδεια απαιτείται για να δείτε τις συναντήσεις σας στην εφαρμογή.",
"refresh": "Ανανεώστε το ημερολόγιο",
"today": "Σήμερα"
},
"chat": {
"error": "Σφάλμα: το μήνυμα δεν εστάλη. Λόγος: {{reason}}",
"fieldPlaceHolder": "Πληκτρολογήστε το μήνυμά σας εδώ",
"messagebox": "Πληκτρολογήστε ένα μήνυμα",
"messageTo": "Ιδιωτικό μήνυμα στον / στην {{recipient}}",
"noMessagesMessage": "Δεν υπάρχουν μηνύματα στη συνάντηση ακόμα. Ξεκινήστε μια συζήτηση εδώ!",
"nickname": {
"popover": "Επιλέξτε ένα ψευδώνυμο",
"title": "Εισάγετε ένα ψευδώνυμο για τη χρήση της συνομιλίας"
},
"privateNotice": "Ιδιωτικό μηνύμα στον / στην {recipient}}",
"title": "Συνομιλία",
"you": "Εσείς"
},
"chromeExtensionBanner": {
"installExtensionText": "Εγκαταστήσετε την επέκταση για την ενοποίηση του Google Calendar και του Office 365 ",
"buttonText": "Εγκαταστήστε την επέκταση του Chrome",
"dontShowAgain": "Μην μου το δείξεις αυτό ξανά"
},
"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": "Διεύθυνση:",
"bandwidth": "Εκτιμώμενο εύρος ζώνης:",
"bitrate": "Ρυθμός μετάδοσης:",
"bridgeCount": "Αριθμός server: ",
"connectedTo": "Συνδεδεμένος με:",
"e2e_rtt": "E2E RTT:",
"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}} desktop app. Προσπαθήστε ξανά ή ξεκινήστε το {{app}} web app.",
"descriptionWithoutWeb": "Δεν έγινε τίποτα; Προσπαθήσαμε να κάνουμε έναρξη σύσκεψης στο {{app}} desktop app.",
"downloadApp": "Κατεβάστε την εφαρμογή",
"ifDoNotHaveApp": "If you don't have the app yet:",
"ifHaveApp": "If you already have the app:",
"joinInApp": "Join this meeting using the app",
"launchWebButton": "Έναρξη στο web",
"title": "Γίνεται έναρξη της συνάντησής σας στο {{app}}...",
"tryAgainButton": "Προσπαθήστε ξανά στην επιφάνεια εργασίας"
},
"defaultLink": "π.χ. {{url}}",
"defaultNickname": "π.χ. Η Τζέιν Ρόουζ",
"deviceError": {
"cameraError": "Απέτυχε η πρόσβαση στη φωτογραφική μηχανή σας",
"cameraPermission": "Παρουσιάστηκε σφάλμα κατά τη λήψη άδειας χρήσης της κάμερας",
"microphoneError": "Αποτυχία πρόσβασης στο μικρόφωνο",
"microphonePermission": "Παρουσιάστηκε σφάλμα κατά τη λήψη άδειας χρήσης του μικρόφωνου"
},
"deviceSelection": {
"noPermission": "Δεν χορηγήθηκε άδεια χρήσης",
"previewUnavailable": "Προεπισκόπηση μη διαθέσιμη",
"selectADevice": "Επιλέξτε μια συσκευή",
"testAudio": "Παίξτε έναν δοκιμαστικό ήχο"
},
"dialog": {
"accessibilityLabel": {
"liveStreaming": "Ζωντανή ροή"
},
"add": "Add",
"allow": "Επίτρεψε",
"alreadySharedVideoMsg": "Ένας άλλος συμμετέχων κάνει ήδη κοινή προβολή βίντεο. Η διάσκεψη αυτή επιτρέπει μόνο ένα κοινόχρηστο βίντεο τη φορά.",
"alreadySharedVideoTitle": "Μόνο ένα κοινόχρηστο βίντεο επιτρέπεται τη φορά",
"applicationWindow": "Παράθυρο εφαρμογής",
"Back": "Πίσω",
"cameraConstraintFailedError": "Η κάμερα σας δεν πληρεί ορισμένους από τους απαιτούμενους περιορισμούς.",
"cameraNotFoundError": "Η κάμερα δε βρέθηκε.",
"cameraNotSendingData": "Δεν είμαστε σε θέση να έχουμε πρόσβαση στην κάμερα σας. Παρακαλώ ελέγξτε αν κάποια άλλη εφαρμογή τη χρησιμοποιεί, επιλέξτε μια άλλη συσκευή από το μενού ρυθμίσεων ή δοκιμάστε να φορτώσετε ξανά την εφαρμογή.",
"cameraNotSendingDataTitle": "Αδυναμία πρόσβασης στην κάμερα",
"cameraPermissionDeniedError": "Δεν έχετε δώσει άδεια χρήσης της κάμεράς σας. Μπορείτε ακόμα να συμμετάσχετε στη διάσκεψη, αλλά οι άλλοι δεν θα σας βλέπουν. Χρησιμοποιήστε το κουμπί με την κάμερα στη γραμμή διευθύνσεων για διορθώσετε αυτό το θέμα.",
"cameraUnknownError": "Δεν μπορείτε να χρησιμοποιήσετε την κάμερα για άγνωστο λόγο.",
"cameraUnsupportedResolutionError": "Η κάμερα σας δεν υποστηρίζει την απαιτούμενη ανάλυση του βίντεο.",
"Cancel": "Ακύρωση",
"close": "Κλείσιμο",
"conferenceDisconnectMsg": "Παρακαλώ ελέγξτε τη σύνδεση δικτύου σας. Επανασύνδεση σε {{seconds}} δευτερόλεπτα...",
"conferenceDisconnectTitle": "Έχετε αποσυνδεθεί.",
"conferenceReloadMsg": "Προσπαθούμε να το διορθώσουμε αυτό. Επανασύνδεση σε {{seconds}} δευτερόλεπτα...",
"conferenceReloadTitle": "Δυστυχώς, κάτι πήγε στραβά.",
"confirm": "Επιβεβαίωση",
"confirmNo": "Όχι",
"confirmYes": "Ναι",
"connectError": "Ουπς! Κάτι πήγε στραβά και δεν μπορούσαμε να συνδεθούμε με τη διάσκεψη.",
"connectErrorWithMsg": "Ουπς! Κάτι πήγε στραβά και δεν μπορούσαμε να συνδεθούμε με τη διάσκεψη: {{msg}}",
"connecting": "Γίνεται σύνδεση",
"contactSupport": "Επικοινωνήστε με την υποστήριξη",
"copy": "Αντιγραφή",
"dismiss": "Απόρριψη",
"displayNameRequired": "Γεια σου! Ποιο είναι το όνομα σου;",
"done": "Έγινε",
"e2eeDescription": "<p>Η από άκρη σε άκρη κρυπτογράφηση είναι σήμερα <strong>σε ΠΕΙΡΑΜΑΤΙΚΟ στάδιο</strong>. Παρακαλώ δείτε <a href='https://jitsi.org/blog/e2ee/' target='_blank'>αυτήν την ανάρτηση</a> για λεπτομέρειες.</p><br/><p>Παρακαλώ να έχετε κατά νου ότι η ενεργοποίηση της από άκρη σε άκρη κρυπτογράφησης θα απενεργοποιήσει από την πλευρά του διακομιστή υπηρεσίες όπως: καταγραφή, live streaming και συμμετοχή μέσω τηλεφώνου. Επίσης, να έχετε κατά νου ότι η συνάντηση θα λειτουργήσει μόνο για τους ανθρώπους που συνδέονται από φυλλομετρητές με υποστήριξη για insertable streams.</p>",
"e2eeLabel": "Κλειδί",
"e2eeNoKey": "None",
"e2eeSet": "Set",
"e2eeTitle": "Από άκρη σε άκρη κρυπτογράφηση",
"e2eeToggleSet": "Set key",
"e2eeWarning": "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Δε φαίνεται να έχουν όλοι οι συμμετέχοντες στη συνάντηση αυτή υποστήριξη για από άκρη σε άκρη κρυπτογράφηση. Αν την ενεργοποιήσετε, δεν θα μπορέσουν να σας δουν ούτε να σας ακούσουν.",
"enterDisplayName": "Παρακαλώ εισάγετε το όνομά σας εδώ",
"error": "Σφάλμα",
"gracefulShutdown": "Μας υπηρεσία είναι προς το παρόν εκτός λειτουργίας για συντήρηση. Παρακαλώ προσπαθήστε ξανά αργότερα.",
"IamHost": "Είμαι ο οικοδεσπότης",
"incorrectRoomLockPassword": "Εσφαλμένος κωδικός πρόσβασης",
"incorrectPassword": "Λανθασμένο όνομα χρήστη ή κωδικός πρόσβασης",
"internalError": "Ουπς! Κάτι πήγε στραβά. Παρουσιάστηκε το παρακάτω σφάλμα: {{error}}",
"internalErrorTitle": "Εσωτερικό σφάλμα",
"kickMessage": "Μπορείτε να επικοινωνήσετε με το {{participantDisplayName}} για περισσότερες λεπτομέρειες.",
"kickParticipantButton": "Αποβολή",
"kickParticipantDialog": "Είστε σίγουρος ότι θέλετε να αποβάλετε αυτόν τον συμμετέχοντα;",
"kickParticipantTitle": "Θέλετε να αποβάλετε αυτόν τον συμμετέχοντα;",
"kickTitle": "Ωχ! Ο/Η {{participantDisplayName}} σας απέβαλε από τη διάσκεψη",
"liveStreaming": "Ζωντανή ροή",
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Not possible while recording is active",
"liveStreamingDisabledForGuestTooltip": "Οι επισκέπτες δεν μπορούν να ξεκινήσουν τη ζωντανή ροή",
"liveStreamingDisabledTooltip": "Έναρξη ζωντανής ροής απενεργοποιημένη",
"lockMessage": "Αποτυχία κλειδώματος της διάσκεψης.",
"lockRoom": "Προσθέστε συνάντηση $t(lockRoomPasswordUppercase)",
"lockTitle": "Το κλείδωμα απέτυχε",
"logoutQuestion": "Είστε σίγουρος ότι θέλετε να αποσυνδεθείτε και να σταματήσει η διάσκεψη;",
"logoutTitle": "Αποσύνδεση",
"maxUsersLimitReached": "Το όριο για τον μέγιστο αριθμό συμμετεχόντων έχει επιτευχθεί. Η διάσκεψη είναι πλήρης. Παρακαλείστε να επικοινωνήσετε με τον ιδιοκτήτη ή να δοκιμάστε ξανά αργότερα!",
"maxUsersLimitReachedTitle": "Ο αριθμός συμμετεχόντων έφτασε στο μέγιστο",
"micConstraintFailedError": "Το μικρόφωνο σας δεν πληρεί ορισμένους από τους απαιτούμενους περιορισμούς.",
"micNotFoundError": "Το μικρόφωνο δεν βρέθηκε.",
"micNotSendingData": "Πηγαίνετε στο ρυθμίσεις του υπολογιστή για να καταργήσετε τη σίγαση μικροφώνου σας και να ρυθμίσετε το επίπεδό του",
"micNotSendingDataTitle": "Το μικρόφωνο είναι σε σίγαση από τις ρυθμίσεις του συστήματός σας",
"micPermissionDeniedError": "Δεν έχετε την άδεια να χρησιμοποιήσετε το μικρόφωνο. Μπορείτε ακόμα να συμμετάσχετε στη διάσκεψη, αλλά οι άλλοι δεν θα μπορούν να σας ακούσουν. Χρησιμοποιήστε το κουμπί της κάμερας στη γραμμή διευθύνσεων για να το διορθώσετε αυτό.",
"micUnknownError": "Δεν μπορείτε να χρησιμοποιήσετε το μικρόφωνο για άγνωστο λόγο.",
"muteEveryoneElseDialog": "Όταν είναι σε σίγαση, δεν θα είστε σε θέση να καταργήσετε τη σίγαση τους, αλλά θα μπορούν να το κάνουν μόνοι τους ανά πάσα στιγμή.",
"muteEveryoneElseTitle": "Σίγαση όλων εκτός από {{whom}};",
"muteEveryoneDialog": "Είστε σίγουρος ότι θέλετε να θέσετε σε σίγαση τον καθένα; Δεν θα είστε σε θέση να καταργήσετε τη σίγαση, αλλά μπορούν να το κάνουν ανά πάσα στιγμή.",
"muteEveryoneTitle": "Σίγαση όλων;",
"muteEveryoneSelf": "τον εαυτό σας",
"muteEveryoneStartMuted": "Όλοι αρχίζουν με ενεργοποιημένη τη σίγαση από τώρα και στο εξής",
"muteParticipantBody": "Δεν θα είστε σε θέση να καταργήσετε τη σίγαση, αλλά μπορούν να το κάνουν ανά πάσα στιγμή.",
"muteParticipantButton": "Σίγαση",
"muteParticipantDialog": "Είστε σίγουρος ότι θέλετε να απενεργοποιήσετε αυτό το συμμετέχοντα; Δεν θα είστε σε θέση να καταργήσετε τη σίγαση, αλλά μπορούν να κάνουν ανά πάσα στιγμή.",
"muteParticipantTitle": "Σίγαση αυτού του συμμετέχοντα;",
"Ok": "Ok",
"passwordLabel": "Η συνάντηση έχει κλειδωθεί από έναν συμμετέχοντα. Παρακαλώ εισάγετε το $t(lockRoomPassword) για να κάνετε είσοδο.",
"passwordNotSupported": "Δεν υποστηρίζεται η ρύθμιση του $t(lockRoomPassword) της συνάντησης.",
"passwordNotSupportedTitle": "Δεν υποστηρίζεται $t(lockRoomPasswordUppercase)",
"passwordRequired": "Απαιτείται $t(lockRoomPasswordUppercase)",
"popupError": "Ο φυλλομετρητής σας μπλοκάρει τα pop-up windows από αυτό το site. Παρακαλούμε ενεργοποιήστε τα pop-ups στις ρυθμίσεις ασφαλείας του προγράμματος περιήγησής σας και προσπαθήστε ξανά.",
"popupErrorTitle": "Pop-up μπλοκαρίστηκε",
"recording": "Γίνεται εγγραφή",
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Not possible while a live stream is active",
"recordingDisabledForGuestTooltip": "Οι επισκέπτες δεν μπορούν να ξεκινήσουν τις ηχογραφήσεις.",
"recordingDisabledTooltip": "Έναρξη εγγραφής απενεργοποιημένη.",
"rejoinNow": "Επανασύνδεση τώρα",
"remoteControlAllowedMessage": "O/H {{user}} έκανε αποδεκτό το αίτημα απομακρυσμένου ελέγχου!",
"remoteControlDeniedMessage": "O/H {{user}} απέρριψε το αίτημα απομακρυσμένου ελέγχου!",
"remoteControlErrorMessage": "Παρουσιάστηκε σφάλμα κατά την προσπάθεια να αιτήματος δικαιωμάτων απομακρυσμένου ελέγχου από {{user}}!",
"remoteControlRequestMessage": "Θέλετα να επιτρέψετε στον/ην {{user}} να έχει απομακρυσμένο έλεγχο του υπολογιστή σας;",
"remoteControlShareScreenWarning": "Σημειώστε ότι εάν πατήσετε το πλήκτρο \"Αποδοχή\" θα μοιραστείτε την οθόνη σας!",
"remoteControlStopMessage": "Η περίοδος λειτουργίας απομακρυσμένου ελέγχου έληξε!",
"remoteControlTitle": "Απομακρυσμένος έλεγχος επιφάνειας εργασίας",
"Remove": "Αφαίρεση",
"removePassword": "Αφαίρεση $t(lockRoomPassword)",
"removeSharedVideoMsg": "Είστε σίγουρος ότι θέλετε να καταργήσετε το κοινόχρηστο βίντεο σας;",
"removeSharedVideoTitle": "Αφαιρέστε κοινόχρηστο βίντεο",
"reservationError": "Σφάλμα συστήματος κρατήσεων",
"reservationErrorMsg": "Κωδικός σφάλματος: {{code}}, μήνυμα: {{msg}}",
"retry": "Επανάληψη",
"screenSharingAudio": "Διαμοιρασμός ήχου",
"screenSharingFailedToInstall": "Ουπς! Η εγκατάσταση της επέκταση κοινής χρήσης οθόνης απέτυχε.",
"screenSharingFailedToInstallTitle": "Η εγκατάσταση της επέκταση κοινής χρήσης οθόνης απέτυχε",
"screenSharingPermissionDeniedError": "Ουπς! Κάτι πήγε στραβά με τα δικαιώματα της επέκτασης κοινής χρήσης οθόνης. Παρακαλώ ξαναφορτώστε και προσπαθήστε ξανά.",
"sendPrivateMessage": "Πρόσφατα λάβατε ένα προσωπικό μήνυμα. Σκοπεύετε να απαντήσετε σε αυτό ιδιωτικά ή θέλετε να στείλετε το μήνυμά σας στην ομάδα;",
"sendPrivateMessageCancel": "Στείλτε στην ομάδα",
"sendPrivateMessageOk": "Στείλτε ιδιωτικά",
"sendPrivateMessageTitle": "Θέλετε να στείλετε ιδιωτικά;",
"serviceUnavailable": "Η υπηρεσία δεν είναι διαθέσιμη",
"sessTerminated": "Η κλήση τερματίστηκε",
"Share": "Μοιραστείτε",
"shareVideoLinkError": "Παρακαλώ δώστε έναν σωστό σύνδεσμο youtube.",
"shareVideoTitle": "Μοιραστείτε ένα βίντεο",
"shareYourScreen": "Μοιραστείτε την οθόνη σας",
"shareYourScreenDisabled": "Η κοινή χρήση οθόνης απενεργοποιήθηκε.",
"shareYourScreenDisabledForGuest": "Οι επισκέπτες δεν μπορούν να μοιραστούν την οθόνη τους.",
"startLiveStreaming": "Έναρξη ζωντανής ροής",
"startRecording": "Ξεκινήστε την εγγραφή",
"startRemoteControlErrorMessage": "Παρουσιάστηκε σφάλμα κατά την προσπάθεια να ξεκινήσει η λειτουργία απομακρυσμένου ελέγχου!",
"stopLiveStreaming": "Τερματισμός ζωντανής ροής",
"stopRecording": "Τερματισμός εγγραφής",
"stopRecordingWarning": "Είστε σίγουρος ότι θέλετε να διακόψετε την εγγραφή;",
"stopStreamingWarning": "Είστε σίγουρος ότι θέλετε να διακόψετε τη ζωντανή ροή;",
"streamKey": "Κλειδί ζωντανής ροής",
"Submit": "Υποβολή",
"thankYou": "Σας ευχαριστούμε για τη χρήση του {{appName}}!",
"token": "token",
"tokenAuthFailed": "Συγνώμη, δεν επιτρέπεται να συμμετάσχετε σε αυτήν την κλήση.",
"tokenAuthFailedTitle": "Ο έλεγχος ταυτότητας απέτυχε",
"transcribing": "Γίνεται μεταγραφή",
"unlockRoom": "Αφαιρέστε το $t(lockRoomPassword) της συνάντησης",
"userPassword": "κωδικός πρόσβασης χρήστη",
"WaitForHostMsg": "Η διάσκεψη <b>{{room}}</b> δεν έχει ακόμη αρχίσει. Αν είστε ο οικοδεσπότης, τότε παρακαλούμε να πιστοποιήσετε τον εαυτό σας. Διαφορετικά, σας παρακαλώ να περιμένετε να συνδεθεί ο οικοδεσπότης.",
"WaitForHostMsgWOk": "Η διάσκεψη <b>{{room}}</b> δεν έχει ακόμη αρχίσει. Αν είστε ο οικοδεσπότης, τότε παρακαλούμε πατήστε ΟΚ για να πιστοποιήσετε τον εαυτό σας. Διαφορετικά, σας παρακαλώ να περιμένετε να συνδεθεί ο οικοδεσπότης.",
"WaitingForHost": "Αναμονή για τον οικοδεσπότη ...",
"Yes": "Ναι",
"yourEntireScreen": "Ολόκληρη την οθόνη σας"
},
"dialOut": {
"statusMessage": "είναι τώρα {{status}}"
},
"documentSharing": {
"title": "Κοινόχρηστο Έγγραφο"
},
"e2ee": {
"labelToolTip": "Όλοι οι συμμετέχοντες στη συνάντηση αυτή έχουν ενεργοποιήσει την από άκρη σε άκρη κρυπτογράφηση"
},
"feedback": {
"average": "Μέτριο",
"bad": "Κακό",
"detailsLabel": "Πείτε μου περισσότερα γι ' αυτό.",
"good": "Καλό",
"rateExperience": "Αξιολογήστε την εμπειρία της συνάντησης σας",
"veryBad": "Πολύ κακό",
"veryGood": "Πολύ καλό"
},
"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": "Ψάχνετε για ένα διαφορετικό εισερχόμενο αριθμό;\nΔείτε τους εισερχόμενους αριθμούς αυτής της συνάντησης : {{url}}\n\n\nΑν επίσης καλείτε μέσω τηλεφώνου δωματίου, συμμετάσχετε χωρίς σύνδεση ήχου: {{silentUrl}}",
"inviteURLFirstPartGeneral": "Σας προσκαλούμε να συμμετάσχετε σε μια σύσκεψη.",
"inviteURLFirstPartPersonal": "{{name}} σας προσκαλεί σε μια συνάντηση.\n",
"inviteURLSecondPart": "\nΣυμμετάσχετε στη σύσκεψη:\n{{url}}\n",
"liveStreamURL": "Ζωντανή ροή:",
"moreNumbers": "Περισσότερα νούμερα",
"noNumbers": "Δεν υπάρχουν εισερχόμενοι αριθμοί.",
"noPassword": "Κανένα",
"noRoom": "Δεν ορίστηκε δωμάτιο για εισερχόμενη κλήση.",
"numbers": "Εισερχόμενοι αριθμοί",
"password": "$t(lockRoomPasswordUppercase):",
"title": "Μοιραστείτε",
"tooltip": "Μοιραστείτε το σύνδεσμο και πληροφορίες εισερχόμενης κλήσης για τη συνάντηση αυτή",
"label": "Πληροφορίες συνάντησης"
},
"inviteDialog": {
"alertText": "Η εφαρμογή απέτυχε να καλέσει μερικούς συμμετέχοντες.",
"header": "Προσκάλεσε",
"searchCallOnlyPlaceholder": "Εισάγετε τον αριθμό τηλεφώνου",
"searchPeopleOnlyPlaceholder": "Αναζήτηση συμμετεχόντων",
"searchPlaceholder": "Συμμετέχοντας ή αριθμός τηλεφώνου",
"send": "Στείλτε"
},
"inlineDialogFailure": {
"msg": "Πέσαμε λίγο.",
"retry": "Προσπαθήστε ξανά",
"support": "Υποστήριξη",
"supportMsg": "Εάν αυτό συνεχίζει να συμβαίνει, επικοινωνήστε με"
},
"keyboardShortcuts": {
"focusLocal": "Εστίαση στο βίντεο σας",
"focusRemote": "Εστίαση στο βίντεο ενός άλλου προσώπου",
"fullScreen": "Είσοδος ή έξοδος από πλήρη οθόνη",
"keyboardShortcuts": "Συντομεύσεις πληκτρολογίου",
"localRecording": "Εμφάνιση ή απόκρυψη χειριστηρίων καταγραφής",
"mute": "Σίγαση ή κατάργηση της σίγασης του μικροφώνου σας",
"pushToTalk": "Πιέστε για να μιλήσετε",
"raiseHand": "Σηκώστε ή χαμηλώστε το χέρι σας",
"showSpeakerStats": "Εμφάνιση στατιστικών ομιλητή",
"toggleChat": "Ανοίξτε ή κλείστε τη συνομιλία",
"toggleFilmstrip": "Εμφάνιση ή απόκρυψη μικρογραφιών βίντεο",
"toggleScreensharing": "Εναλλαγή μεταξύ κάμερας και κοινής χρήσης οθόνης",
"toggleShortcuts": "Εμφάνιση ή απόκρυψη των συντομεύσεων πληκτρολογίου",
"videoMute": "Άνοιγμα ή κλείσιμο κάμερας",
"videoQuality": "Διαχειριστείτε την ποιότητα της κλήσης"
},
"liveStreaming": {
"busy": "Δουλεύουμε για την απελευθέρωση πόρων streaming. Παρακαλώ δοκιμάστε ξανά σε λίγα λεπτά.",
"busyTitle": "Όλες οι streamers είναι απασχολημένοι",
"changeSignIn": "Εναλλαγή λογαριασμών.",
"choose": "Επιλέξτε μία ζωντανή ροή",
"chooseCTA": "Επιλέξτε μία streaming επιλογή. Αυτή την στιγμή είστε συνδεδεμένοι ως {{email}}.",
"enterStreamKey": "Εισάγετε το κλειδί της ζωντανής ροής του YouTube εδώ.",
"error": "Η ζωντανή ροή απέτυχε. Παρακαλώ δοκιμάστε ξανά.",
"errorAPI": "Παρουσιάστηκε ένα σφάλμα κατά την πρόσβαση στίς μεταδόσεις YouTube. Παρακαλώ δοκιμάστε να συνδεθείτε ξανά.",
"errorLiveStreamNotEnabled": "Η ζωντανή ροή δεν είναι ενεργοποιημένη στο {{email}}. Παρακαλούμε να ενεργοποιήσετε τη ζωντανή ροή ή να συνδεθείτε σε ένα λογαριασμό με ενεργοποιημένη τη ζωντανή ροή.",
"expandedOff": "Η ζωντανή ροή έχει σταματήσει",
"expandedOn": "Η συνάντηση αυτή τη στιγμή μεταδίδεται στο YouTube.",
"expandedPending": "Η ζωντανή ροή πρόκειται να ξεκινήσει...",
"failedToStart": "Η ζωντανή ροή απέτυχε να ξεκινήσει",
"getStreamKeyManually": "Δεν ήμασταν σε θέση να φέρουμε κάποια ζωντανή ροή. Προσπαθήστε να πάρετε το κλειδί της ζωντανής ροής από το YouTube.",
"invalidStreamKey": "Το κλειδί της ζωντανής ροής μπορεί να είναι εσφαλμένο.",
"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 <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
"off": "Η ζωντανή ροή σταμάτησε",
"offBy": "Ο/Η {{name}} σταμάτησε τη ζωντανή ροή",
"on": "Ζωντανή ροή",
"onBy": "Ο/Η {{name}} ξεκίνησε τη ζωντανή ροή",
"pending": "Η ζωντανή ροή ξεκινά...",
"serviceName": "Υπηρεσία ζωντανής ροής",
"signedInAs": "Είστε συνδεδεμένοι ως:",
"signIn": "Συνδεθείτε με το Google",
"signInCTA": "Συνδεθείτε ή εισάγετε το το κλειδί της ζωντανής ροής από το YouTube.",
"signOut": "Έξοδος",
"start": "Ξεκινήστε μια ζωντανή ροή",
"streamIdHelp": "Τι είναι αυτό;",
"unavailableTitle": "Ζωντανή ροή μη διαθέσιμη",
"youtubeTerms": "Όροι υπηρεσιών YouTube",
"googlePrivacyPolicy": "Πολιτική Απορρήτου της Google"
},
"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": "Token Συνεδρίας",
"start": "Ξεκινήστε την καταγραφή",
"stop": "Σταματήστε την καταγραφή",
"yes": "Ναι"
},
"lockRoomPassword": "κωδικός πρόσβασης",
"lockRoomPasswordUppercase": "Κωδικός πρόσβασης",
"me": "Εγώ",
"notify": {
"connectedOneMember": "{{name}} μπήκε στην συνάντηση",
"connectedThreePlusMembers": "Ο/Η {{name}} και {{count}} άλλοι μπήκαν στην συνάντηση",
"connectedTwoMembers": "Ο {{first}} και ο {{second}} μπήκαν στην συνάντηση",
"disconnected": "αποσυνδεμένος",
"focus": "Εστίαση στη διάσκεψη",
"focusFail": "Το {{component}} δεν είναι διαθέσιμο - επανάληψη σε {{ms}} sec",
"grantedTo": "Χορηγήθηκαν δικαιώματα συντονιστή στον/ην {{to}}!",
"invitedOneMember": "Ο/Η {{name}} έχει προσκληθεί",
"invitedThreePlusMembers": "Ο/Η {{name}} και {{count}} άλλοι έχουν προσκληθεί",
"invitedTwoMembers": "Ο {{first}} και ο {{second}} έχουν προσκληθεί",
"kickParticipant": "Ο/Η {{kicked}} απλοβλήθηκε από τον/ην {{kicker}}",
"me": "Εγώ",
"moderator": "Χορηγήθηκαν δικαιώματα συντονιστή!",
"muted": "Έχετε ξεκινήσει τη συζήτηση σε σίγαση.",
"mutedTitle": "Είσαι σε σίγαση!",
"mutedRemotelyTitle": "Έχετε μπει σε σίγαση από τον/ην {{participantDisplayName}}!",
"mutedRemotelyDescription": "Μπορείτε πάντα να καταργήσετε τη σίγαση, όταν είστε έτοιμος να μιλήσετε. Ενεργοποιήστε ξανά τη σίγαση όταν τελειώσετε, για να κρατήσετε μακριά τον θόρυβο από τη διάσκεψη.",
"passwordRemovedRemotely": "Το $t(lockRoomPasswordUppercase) αφαιρέθηκε από έναν άλλον συμμετέχοντα",
"passwordSetRemotely": "Το $t(lockRoomPasswordUppercase) ορίστηκε από άλλον συμμετέχοντα",
"raisedHand": "Ο/Η {{name}} θα ήθελε να μιλήσει.",
"somebody": "Κάποιος",
"startSilentTitle": "Μπήκες χωρίς συσκευή εξόδου ήχου!",
"startSilentDescription": "Ξαναμπείτε στη συνάντηση για να ενεργοποιήσετε τον ήχο",
"suboptimalBrowserWarning": "Φοβόμαστε ότι η εμπειρία σας στη συνάντηση δεν θα είναι καλή εδώ. Ψάχνουμε για τρόπους για να το βελτιώσουμε αυτό, αλλά μέχρι τότε παρακαλώ δοκιμάστε να χρησιμοποιήσετε ένα από τα <a href='static/recommendedBrowsers.html' target='_blank'>πλήρως υποστηριζόμενα προγράμματα περιήγησης</a>.",
"suboptimalExperienceTitle": "Προειδοποίηση πρόγραμματος περιήγησης",
"unmute": "Κατάργηση σίγασης",
"newDeviceCameraTitle": "Εντοπίστηκε νέα κάμερα",
"newDeviceAudioTitle": "Εντοπίστηκε νέα συσκευή ήχου",
"newDeviceAction": "Χρήση",
"OldElectronAPPTitle": "Θέμα ευπάθειας ασφαλείας!",
"oldElectronClientDescription1": "Φαίνεται ότι χρησιμοποιείτε μια παλιά έκδοση του πελάτη Jitsi Meet που έχει γνωστά θέματα ευπάθειας ασφαλείας. Παρακαλώ βεβαιωθείτε ότι έχετε την ενημερωμένη έκδοση για ",
"oldElectronClientDescription2": "πρόσφατη έκδοση μας",
"oldElectronClientDescription3": " τώρα!"
},
"passwordSetRemotely": "ορίστηκε από άλλον συμμετέχοντα",
"passwordDigitsOnly": "Έως {{number}} ψηφία",
"poweredby": "με τη δύναμη του",
"prejoin": {
"audioAndVideoError": "Σφάλμα ήχου και βίντεο:",
"audioOnlyError": "Σφάλμα ήχου:",
"audioTrackError": "Δεν ήταν δυνατή η δημιουργία κομματιού ήχου.",
"callMe": "Κάλεσέ με",
"callMeAtNumber": "Κάλεσέ με σε αυτό το νούμερο:",
"configuringDevices": "Γίνεται παραμετροποίηση συσκευών...",
"connectedWithAudioQ": "Είστε συνδεδεμένοι με ήχο;",
"copyAndShare": "Αντιγραφή και κοινή χρήση συνδέσμου συνάντησης",
"dialInMeeting": "Κλήση στη συνάντηση",
"dialInPin": "Κλήση στη συνάντηση και εισαγωγή κωδικού PIN:",
"dialing": "Γίνεται κλήση",
"doNotShow": "Να μην εμφανιστεί αυτό ξανά",
"errorDialOut": "Η κλήση δεν ήταν δυνατή",
"errorDialOutDisconnected": "Η κλήση δεν ήταν δυνατή. Έγινε αποσύνδεση",
"errorDialOutFailed": "Η κλήση δεν ήταν δυνατή. Η κλήση απέτυχε",
"errorDialOutStatus": "Σφάλμα λήψης κατάστασης κλήσης",
"errorStatusCode": "Σφάλμα κλήσης, κωδικός κατάστασης: {{status}}",
"errorValidation": "Η επικύρωση του αριθμού απέτυχε",
"iWantToDialIn": "Θέλω να κάνω κλήση",
"joinAudioByPhone": "Συμμετοχή με ήχο τηλεφώνου",
"joinMeeting": "Συμμετοχή στη συνάντηση",
"joinWithoutAudio": "Συμμετοχή χωρίς ήχο",
"initiated": "Η κλήση ξεκίνησε",
"linkCopied": "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο",
"lookGood": "Ακούγεται ότι το μικρόφωνο σας λειτουργεί άψογα",
"or": "ή",
"calling": "Γίνεται κλήση",
"startWithPhone": "Έναρξη με ήχο τηλεφώνου",
"screenSharingError": "Σφάλμα διαμοιρασμού οθόνης:",
"videoOnlyError": "Σφάλμα βίντεο:",
"videoTrackError": "Δεν ήταν δυνατή η δημιουργία κομματιού βίντεο.",
"viewAllNumbers": "προβολή όλων των αριθμών"
},
"presenceStatus": {
"busy": "Απασχολημένος",
"calling": "Γίνεται κλήση...",
"connected": "Συνδεδεμένος",
"connecting": "Γίνεται σύνδεση...",
"connecting2": "Γίνεται σύνδεση*...",
"disconnected": "Αποσυνδεθηκε",
"expired": "Έληξε",
"ignored": "Αγνοούνται",
"initializingCall": "Προετοιμασία Κλήσης...",
"invited": "Προσκλήθηκε",
"rejected": "Απορρίφθηκε",
"ringing": "Χτυπάει..."
},
"profile": {
"setDisplayNameLabel": "Ρυθμίστε το όνομα εμφάνισής σας",
"setEmailInput": "Εισάγετε το e-mail",
"setEmailLabel": "Ρυθμίστε το gravatar email",
"title": "Προφίλ"
},
"raisedHand": "Θα ήθελα να μιλήσω",
"recording": {
"limitNotificationDescriptionWeb": "Λόγω υψηλής ζήτησης η εγγραφή σας θα περιριστεί σε {{limit}} λεπτά. Για απεριόριστες εγγραφές, δοκιμάστε το <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
"limitNotificationDescriptionNative": "Λόγω υψηλής ζήτησης η εγγραφή σας θα περιριστεί σε {{limit}} λεπτά. Για απεριόριστες εγγραφές, δοκιμάστε <3>{{app}}</3>.",
"authDropboxText": "Ανεβάστε στο Dropbox",
"availableSpace": "Διαθέσιμος χώρος: {{spaceLeft}} MB (περίπου {{duration}} λεπτά εγγραφής)",
"beta": "BETA",
"busy": "Δουλεύουμε για την απελευθέρωση καταγραφής πόρων. Παρακαλώ δοκιμάστε ξανά σε λίγα λεπτά.",
"busyTitle": "Όλοι οι καταγραφείς είναι απασχολημένοι",
"error": "Η καταγραφή απέτυχε. Παρακαλώ δοκιμάστε ξανά.",
"expandedOff": "Η καταγραφή έχει διακοπεί",
"expandedOn": "Η συνάντηση καταγράφεται.",
"expandedPending": "Η καταγραφή τίθεται σε λειτουργία...",
"failedToStart": "Η καταγραφή απέτυχε να ξεκινήσει",
"fileSharingdescription": "Μοιραστείτε την καταγραφή με τους συμμετέχοντες της συνάντησης",
"live": "ΖΩΝΤΑΝΑ",
"loggedIn": "Συνδεδεμένοι ως {{userName}}",
"off": "Η καταγραφή σταμάτησε",
"offBy": "Ο/Η {{name}} σταματήσε την καταγραφή",
"on": "Καταγραφή",
"onBy": "Ο/Η {{name}} ξεκίνησε την καταγραφή",
"pending": "Προετοιμασία για την καταγραφή της σύσκεψης...",
"rec": "ΚΑΤΑΓΡΑΦΗ",
"serviceDescription": "Η καταγραφή σας θα αποθηκευτεί από την υπηρεσία καταγραφής",
"serviceName": "Υπηρεσία καταγραφής",
"signIn": "Σύνδεση",
"signOut": "Αποσύνδεση",
"unavailable": "Ουπς! Το {{serviceName}} δεν είναι διαθέσιμο προς το παρόν. Δουλεύουμε για την επίλυση του ζητήματος. Παρακαλώ προσπαθήστε ξανά αργότερα.",
"unavailableTitle": "Η καταγραφή δεν είναι διαθέσιμη"
},
"sectionList": {
"pullToRefresh": "Τραβήξτε για να ανανεώσετε"
},
"security": {
"about": "Έχετε τη δυνατότητα να προσθέσετε κωδικό στη συνάντησή σας. Οι συμμετέχοντες θα πρέπει να τον εισάγουν για να τους δοθεί πρόσβαση στη συνάντηση.",
"insecureRoomNameWarning": "Το όνομα του διαδρόμου δεν είναι ασφαλές. Ανεπιθύμητοι συμμετέχοντες μπορεί να συμμετάσχουν στη συνάντησή σας. Σκεφτείτε το να ασφαλίσετε τη συνάντηση σας χρησιμοποιώντας το κουμπί Ασφάλεια.",
"securityOptions": "Επιλογές ασφαλείας"
},
"settings": {
"calendar": {
"about": "H σύνδεση ημερολογίου του {{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": "OK",
"alertTitle": "Προειδοποίηση",
"alertURLText": "Η διεύθυνση URL του διακομοστή που εισάγατε δεν είναι έγκυρη",
"buildInfoSection": "Πληροφορίες έκδοσης",
"conferenceSection": "Συνέδριο",
"disableCallIntegration": "Απενεργοποίηση ολοκλήρωσης εγγενούς κλήσης",
"disableP2P": "Απενεργοποίηση λειτουργίας Peer-to-Peer",
"displayName": "Εμφανιζόμενο όνομα",
"email": "E-mail",
"header": "Ρυθμίσεις",
"profileSection": "Προφίλ",
"serverURL": "Διεύθυνση URL του διακομιστή",
"showAdvanced": "Εμφάνιση ρυθμίσεων για προχωρημένους",
"startWithAudioMuted": "Ξεκινήστε με σίγαση ήχου",
"startWithVideoMuted": "Ξεκινήστε με το βίντεο σε σίγαση",
"version": "Έκδοση",
"alertCancel": "Ακύρωση",
"disableCrashReporting": "Απενεργοποίηση αναφοράς σφαλμάτων",
"disableCrashReportingWarning": "Είστε βέβαιοι ότι θέλετε να απενεργοποιήσετε την αναφορά σφαλμάτων; Η ρύθμιση θα εφαρμοστεί μετά την επανεκκίνηση της εφαρμογής."
},
"share": {
"dialInfoText": "\n\n=====\n\nΘέλω απλά να καλέσετε με το τηλέφωνό σας;\n\n{{defaultDialInNumber}}κάντε Κλικ σε αυτό το σύνδεσμο για να δείτε τους τηλεφωνικούς αριθμούς κλήσης για αυτή τη συνάντηση\n{{dialInfoPageUrl}}",
"mainText": "Κάντε κλικ στον παρακάτω σύνδεσμο για να συμμετάσχετε στη σύσκεψη:\n{{roomUrl}}"
},
"speaker": "Ομιλητής",
"speakerStats": {
"hours": "{{count}}ω",
"minutes": "{{count}}λ",
"name": "Όνομα",
"seconds": "{{count}}δ",
"speakerStats": "Στατιστικά ομιλητή",
"speakerTime": "Χρόνος ομιλητή"
},
"startupoverlay": {
"policyText": " ",
"title": "Το {{app}} πρέπει να χρησιμοποιήσει το μικρόφωνο και την κάμερά σας."
},
"suspendedoverlay": {
"rejoinKeyTitle": "Επανασύνδεση",
"text": "Πατήστε το <i>Επανασύνδεση</i> για να επανασυνδεθείτε.",
"title": "Η Βίντεο κλήση διακόπηκε, επειδή ο υπολογιστής αυτός μπήκε σε κατάσταση αναστολής."
},
"toolbar": {
"accessibilityLabel": {
"audioOnly": "Εναλλαγή ήχου μόνο",
"audioRoute": "Επιλέξτε τη συσκευή ήχου",
"callQuality": "Διαχειριστείτε την ποιότητα του βίντεο",
"cc": "Εναλλαγή υποτίτλων",
"chat": "Εναλλαγή παραθύρου συνομιλίας",
"document": "Εναλλαγή κοινοχρήστου εγγράφου",
"download": "Κατεβάστε τις εφαρμογές μας",
"e2ee": "End-to-End Κρυπτογράφηση",
"feedback": "Αφήστε σχόλια",
"fullScreen": "Εναλλαγή σε πλήρη οθόνη",
"hangup": "Απόχώρηση από την κλήση",
"help": "Βοήθεια",
"invite": "Πρόσκληση συμμετεχόντων",
"kick": "Αποβολή συμμετέχοντα",
"lobbyButton": "Ενεργοποίηση/απενεργοποίηση λειτουργίας διαδρόμου",
"localRecording": "Εναλλαγή ελέγχων τοπικής καταγραφής",
"lockRoom": "Εναλλαγή κωδικού πρόσβασης συνάντησης",
"moreActions": "Εναλλαγή μενού περισσότερων ενεργειών",
"moreActionsMenu": "Μενού περισσότερων ενεργειών",
"moreOptions": "Εμφάνιση περισσότερων επιλογών",
"mute": "Εναλλαγή σίγασης ήχου",
"muteEveryone": "Σίγαση όλων",
"pip": "Εναλλαγή λειτουργίας Picture-in-Picture",
"privateMessage": "Αποστολή ιδιωτικού μηνύματος",
"profile": "Επεξεργαστείτε το προφίλ σας",
"raiseHand": "Εναλλαγή σηκώματος χεριού",
"recording": "Εναλλαγή καταγραφής",
"remoteMute": "Σίγαση συμμετέχοντα",
"security": "Επιλογές ασφαλείας",
"Settings": "Εναλλαγή ρυθμίσεων",
"sharedvideo": "Εναλλαγή κοινής χρήσης βίντεο στο Youtube",
"shareRoom": "Προσκαλέστε κάποιον",
"shareYourScreen": "Εναλλαγή κοινής χρήσης οθόνης",
"shortcuts": "Εναλλαγή συντομεύσεων",
"show": "Εμφάνιση στη σκηνή",
"speakerStats": "Εναλλαγή στατιστικών ομιλητών",
"tileView": "Εναλλαγή άποψης εικονιδίων",
"toggleCamera": "Εναλλαγή κάμερας",
"toggleFilmstrip": "Εναλλαγή filmstrip",
"videomute": "Εναλλαγή σίγασης βίντεο",
"videoblur": "Εναλλαγή θολούρας βίντεο"
},
"addPeople": "Προσθήκη ατόμων στην κλήση σας",
"audioOnlyOff": "Απενεργοποίηση λειτουργίας χαμηλού εύρους ζώνης",
"audioOnlyOn": "Ενεργοποίηση λειτουργίας χαμηλού εύρους ζώνης",
"audioRoute": "Επιλέξτε τη συσκευή ήχου",
"authenticate": "Έλεγχος ταυτότητας",
"callQuality": "Διαχειριστείτε την ποιότητα του βίντεο",
"chat": "Άνοιγμα / κλείσιμο chat",
"closeChat": "Κλείσιμο chat",
"documentClose": "Κλείσιμο κοινόχρηστου εγγράφου",
"documentOpen": "Άνοιγμα κοινόχρηστο εγγράφου",
"download": "Κατεβάστε τις εφαρμογές μας",
"e2ee": "End-to-End Κρυπτογράφηση",
"enterFullScreen": "Δείτε σε πλήρη οθόνη",
"enterTileView": "Είσοδος σε προβολή εικονιδίων",
"exitFullScreen": "Έξοδος από πλήρη οθόνη",
"exitTileView": "Έξοδος από προβολή εικονιδίων",
"feedback": "Αφήστε σχόλια",
"hangup": "Αποσύνδεση",
"help": "Βοήθεια",
"invite": "Πρόσκληση συμμετεχόντων",
"lobbyButtonDisable": "Απενεργοποίηση λειτουργίας διαδρόμου",
"lobbyButtonEnable": "Ενεργοποίηση λειτουργίας διαδρόμου",
"login": "Είσοδος",
"logout": "Αποσύνδεση",
"lowerYourHand": "Κατεβάστε το χέρι σας",
"moreActions": "Περισσότερες ενέργειες",
"moreOptions": "Περισσότερες επιλογές",
"mute": "Σίγαση / Κατάργηση Σίγασης",
"muteEveryone": "Σίγαση όλων",
"noAudioSignalTitle": "Δεν υπάρχει ήχος από το μικρόφωνο σας!",
"noAudioSignalDesc": "Αν δεν του κάνατε σίγαση ηθελημένα από τις ρυθμίσεις του συστήματος ή του υλικού, εξετάστε την αντικατάσταση της συσκευής.",
"noAudioSignalDescSuggestion": "Αν δεν του κάνατε σίγαση ηθελημένα από τις ρυθμίσεις του συστήματος ή του υλικού, εξετάστε τη χρήση της προτεινόμενης συσκευής.",
"noAudioSignalDialInDesc": "Μπορείτε επίσης να καλέσετε χρησιμοποιώντας:",
"noAudioSignalDialInLinkDesc": "Αριθμοί κλήσης",
"noisyAudioInputTitle": "Το μικρόφωνο φαίνεται να είναι θορυβώδες!",
"noisyAudioInputDesc": "Το μικρόφωνό σας πιθανόν να κάνει θόρυβο, παρακαλούμε χρησιμοποιήστε τη σίγαση ή την αντικατάσταση της συσκευής.",
"openChat": "Ανοικτή συνομιλία",
"pip": "Είσοδος σε λειτουργία Picture-in-Picture",
"privateMessage": "Αποστολή ιδιωτικού μηνύματος",
"profile": "Επεξεργαστείτε το προφίλ σας",
"raiseHand": "Σηκώστε / κατεβάστε το χέρι σας",
"raiseYourHand": "Σηκώστε το χέρι σας",
"security": "Επιλογές ασφαλείας",
"Settings": "Ρυθμίσεις",
"sharedvideo": "Μοιραστείτε βίντεο στο YouTube",
"shareRoom": "Προσκαλέστε κάποιον",
"shortcuts": "Δείτε τις συντομεύσεις",
"speakerStats": "Στατιστικά ομιλητών",
"startScreenSharing": "Ξεκινήστε την κοινή χρήση οθόνης",
"startSubtitles": "Έναρξη υποτίτλων",
"stopScreenSharing": "Διακόψτε την κοινή χρήση οθόνης",
"stopSubtitles": "Σταμάτημα υποτίτλων",
"stopSharedVideo": "Σταμάτημα του βίντεο YouTube",
"talkWhileMutedPopup": "Προσπαθείτε να μιλήσετε; Είστε σε σίγαση.",
"tileViewToggle": "Εναλλαγή προβολής εικονιδίων",
"toggleCamera": "Εναλλαγή κάμερας",
"videomute": "Άνοιγμα / κλείσιμο κάμερας",
"startvideoblur": "Θόλωσε το φόντο μου",
"stopvideoblur": "Απενεργοποίηση θόλωσης του φόντου"
},
"transcribing": {
"ccButtonTooltip": "Άνοιγμα / κλείσιμο υποτίτλων",
"error": "Η μεταγραφή απέτυχε. Παρακαλώ δοκιμάστε ξανά.",
"expandedLabel": "Η Μεταγραφή είναι ενεργοποιημένη",
"failedToStart": "Η Μεταγραφή απέτυχε να ξεκινήσει",
"labelToolTip": "Η συνάντηση μεταγράφεται",
"off": "Η Μεταγραφή σταμάτησε",
"pending": "Προετοιμασία για μεταγραφή της συνάντησης...",
"start": "Εμφάνιση υποτίτλων",
"stop": "Απόκρυψη υποτίτλων",
"tr": "TR"
},
"userMedia": {
"androidGrantPermissions": "Επιλέξτε <b><i>Αποδοχή</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα.",
"chromeGrantPermissions": "Επιλέξτε <b><i>Αποδοχή</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα.",
"edgeGrantPermissions": "Επιλέξτε <b><i>Ναι</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα.",
"electronGrantPermissions": "Παρακαλούμε να παραχωρήσετε δικαιώματα για να χρησιμοποιήσετε την κάμερα και το μικρόφωνο",
"firefoxGrantPermissions": "Επιλέξτε <b><i>Μοιραστείτε Επιλεγμένη Συσκευή</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα.",
"iexplorerGrantPermissions": "Επιλέξτε <b><i>OK</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα.",
"nwjsGrantPermissions": "Παρακαλούμε να παραχωρήσετε δικαιώματα για να χρησιμοποιήσετε την κάμερα και το μικρόφωνο",
"operaGrantPermissions": "Επιλέξτε <b><i>Αποδοχή</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα.",
"react-nativeGrantPermissions": "Επιλέξτε <b><i>Αποδοχή</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα.",
"safariGrantPermissions": "Επιλέξτε <b><i>OK</i></b> όταν το πρόγραμμα περιήγησης ζητά δικαιώματα."
},
"videoSIPGW": {
"busy": "Γίνεται προσπάθεια για την απελευθέρωση πόρων. Παρακαλώ δοκιμάστε ξανά σε λίγα λεπτά.",
"busyTitle": "Η υπηρεσία Δωματίου είναι απασχολημένη",
"errorAlreadyInvited": "{{displayName}} έχει ήδη προσκληθεί",
"errorInvite": "Το Συνέδριο δεν έχει συσταθεί ακόμα. Παρακαλώ προσπαθήστε ξανά αργότερα.",
"errorInviteFailed": "Γίνεται προσπάθεια για την επίλυση του ζητήματος. Παρακαλώ προσπαθήστε ξανά αργότερα.",
"errorInviteFailedTitle": "Η πρόσκληση του/ης {{displayName}} απέτυχε",
"errorInviteTitle": "Σφάλμα πρόσκλησης δωματίου",
"pending": "Ο/Η {{displayName}} έχει προσκληθεί"
},
"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": "Περιστροφή",
"kick": "Αποβολή",
"moderator": "Συντονιστής",
"mute": "Ο συμμετέχων είναι σε σίγαση",
"muted": "Σίγαση",
"remoteControl": "Ενεργοποίηση / απενεργοποίηση απομακρυσμένου ελέγχου",
"show": "Εμφάνιση στη σκηνή",
"videomute": "Ο συμμετέχων έχει σταματήσει την κάμερα"
},
"welcomepage": {
"accessibilityLabel": {
"join": "Πατήστε για να κάνετε είσοδο",
"roomname": "Εισάγετε το όνομα δωματίου"
},
"appDescription": "Εμπρός, κάντε video chat με όλη την ομάδα. Στην πραγματικότητα, καλέστε όλους τους γνωστούς σας. Το {{app}} μια πλήρως κρυπτογραφημένη, 100% open source λύση τηλεδιάσκεψης που μπορείτε να χρησιμοποιήσετε για όλη την ημέρα, κάθε μέρα, εντελώς δωρεάν — χωρίς να απαιτείται δημιουργία λογαριασμού.",
"audioVideoSwitch": {
"audio": "Φωνή",
"video": "Βίντεο"
},
"calendar": "Ημερολόγιο",
"connectCalendarButton": "Συνδέστε το ημερολόγιο",
"connectCalendarText": "Συνδέστε το ημερολόγιο για να δείτε όλες τις συναντήσεις σας στο {{app}}. Επιπλέον, προσθέστε συναντήσεις στο {{provider}} ημερολόγιό σας και ξεκινήστε με ένα κλικ.",
"enterRoomTitle": "Ξεκινήστε μια νέα συνάντηση",
"getHelp": "Βοήθεια",
"roomNameAllowedChars": "Το όνομα συνάντησης δεν πρέπει να περιέχει οποιονδήποτε από αυτούς τους χαρακτήρες: ?, &, :, ', \", %, #.",
"go": "ΠΑΜΕ",
"goSmall": "ΠΑΜΕ",
"join": "ΔΗΜΙΟΥΡΓΙΑ / ΕΙΣΟΔΟΣ",
"info": "Πληροφορίες",
"privacy": "Απόρρητο",
"recentList": "Πρόσφατες",
"recentListDelete": "Διαγραφή",
"recentListEmpty": "Η λίστα με τα πρόσφατα σας είναι άδεια. Συνομιλήστε με την ομάδα σας και θα βρείτε όλες τις πρόσφατες συναντήσεις εδώ.",
"reducedUIText": "Καλώς ήρθατε στο {{app}}!",
"roomname": "Εισάγετε το όνομα δωματίου",
"roomnameHint": "Εισάγετε το όνομα ή τη διεύθυνση URL του δωματίου στο οποίο θέλετε να συμμετάσχετε. Μπορείτε να βρείτε ένα όνομα, απλά ενημερώστε τους συμμετέχοντες, έτσι ώστε να εισάγουν το ίδιο όνομα.",
"sendFeedback": "Στείλτε τα σχόλιά σας",
"terms": "Όροι",
"title": "Ασφαλής, πλήρως εξοπλισμένη, και εντελώς δωρεάν βίντεο συνομιλία"
},
"lonelyMeetingExperience": {
"button": "Προσκαλέστε κι άλλους",
"youAreAlone": "Είστε ο μόνος στη συνάντηση"
},
"helpView": {
"header": "Κέντρο βοήθειας"
},
"lobby": {
"allow": "Επίτρεψε",
"backToKnockModeButton": "Χωρίς κωδικό, ζητήστε πρόσβαση αντί αυτού",
"dialogTitle": "Λειτουργία διαδρόμου",
"disableDialogContent": "Η λειτουργία διαδρόμου είναι ενεργοποιημένη. Αυτή η λειτουργία εξασφαλιζει ότι οι ανεπιθύμητοι συμμετέχοντες δεν μπορούν να προστεθούν στη συνάντηση. Θέλετε να την απαεργοποιήσετε;",
"disableDialogSubmit": "Απενεργοποίηση",
"emailField": "Εισάγετε τη διεύθυνση email σας",
"enableDialogPasswordField": "Ορισμός κωδικού (προαιρετικός)",
"enableDialogSubmit": "Ενεργοποίηση",
"enableDialogText": "Η ενεργοποίηση λειτουργίας διαδρόμου σας επιτρέπει να προστατεύσετε τη συνάντηση σας, επιτρέποντας την είσοδο μόνο μετά από επίσημη έγκριση από έναν διαχειριστή.",
"enterPasswordButton": "Εισαγωγή κωδικού συνάντησής",
"enterPasswordTitle": "Εισάγετε κωδικό για να προστεθείτε στη συνομιλία",
"invalidPassword": "Εσφαλμένος κωδικός",
"joiningMessage": "Θα προστεθείτε στη συνάντηση μόλις κάποιος αποδεχτεί το αίτημά σας",
"joinWithPasswordMessage": "Γίνεται προσπάθεια εισόδου με κωδικό, παρακαλώ περιμένετε...",
"joinRejectedMessage": "Το αίτημα εισόδου σας απορρίφθηκε από έναν διαχειριστή.",
"joinTitle": "Προσθήκη σε συνάντηση",
"joiningTitle": "Γίνεται αίτηση εισόδου σε συνάντηση...",
"joiningWithPasswordTitle": "Γίνεται είσοδος με κωδικό...",
"knockButton": "Αίτημα εισόδου",
"knockTitle": "Κάποιος θέλει να προστεθεί στη συνάντηση",
"nameField": "Εισάγετε το όνομά σας",
"passwordField": "Εισάγετε τον κωδικό συνάντησης",
"passwordJoinButton": "Είσοδος",
"reject": "Απόρριψη",
"toggleLabel": "Ενεργοποίηση διαδρόμου"
}
}

View File

@@ -120,8 +120,10 @@
"description": "Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.",
"descriptionWithoutWeb": "",
"downloadApp": "Download the app",
"ifDoNotHaveApp": "If you don't have the app yet:",
"ifHaveApp": "If you already have the app:",
"joinInApp": "Join this meeting using the app",
"launchWebButton": "Launch in web",
"openApp": "Continue to the app",
"title": "Launching your meeting in {{app}}…",
"tryAgainButton": "Try again in desktop"
},

View File

@@ -1,21 +1,36 @@
{
"addPeople": {
"add": "Invitar",
"countryNotSupported": "Aún no contamos con soporte a este destino.",
"addContacts": "Invitar a sus 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": "Aun 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.",
"loading": "Búsqueda de personas y números de teléfono",
"loadingNumber": "Validando el número de teléfono",
"loadingPeople": "Buscando contactos a invitar",
"googleEmail": "Correo electrónico de Google",
"inviteMoreHeader": "Usted se encuentra solo en la reunión",
"inviteMoreMailSubject": "Unirse a la reunion {{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",
"searchNumbers": "Agregar números de teléfono",
"searchPeople": "Búsqueda de personas",
"outlookEmail": "Correo de Outlook",
"searchNumbers": "Agregar números telefónicos",
"searchPeople": "Búscar personas",
"searchPeopleAndNumbers": "Buscar personas o añadir sus números de teléfono",
"shareInvite": "Compartir la invitación a la reunión",
"shareLink": "Compartir el link de la reunion",
"shareStream": "Compartie el link de la transmición en vivo",
"telephone": "Teléfono: {{number}}",
"title": "Invitar a otras personas a esta reunión"
"title": "Invitar a otras personas a esta reunión",
"yahooEmail": "Correo de Yahoo"
},
"audioDevices": {
"bluetooth": "Bluetooth",
@@ -32,7 +47,7 @@
"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 a recargarlo",
"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",
@@ -60,9 +75,9 @@
"you": "usted"
},
"chromeExtensionBanner": {
"installExtensionText": "",
"buttonText": "",
"dontShowAgain": ""
"installExtensionText": "Instalar la extensión para Google Calendar y la integración con Office 365",
"buttonText": "Instalar extensión de Chrome",
"dontShowAgain": "No mostrar nuevamente"
},
"connectingOverlay": {
"joiningRoom": "Conectándose a su reunión…"
@@ -78,10 +93,10 @@
"DISCONNECTING": "Desconectando",
"ERROR": "Error",
"RECONNECTING": "Ocurrió un problema en la red. Reconectando...",
"LOW_BANDWIDTH": "",
"GOT_SESSION_ID": "",
"GET_SESSION_ID_ERROR": "",
"FETCH_SESSION_ID": ""
"FETCH_SESSION_ID": "Obteniendo session-ID…",
"GET_SESSION_ID_ERROR": "Obtener session-id error: {{code}}",
"GOT_SESSION_ID": "Obteniendo session-ID… Listo",
"LOW_BANDWIDTH": "Video para {{displayName}} ha sido deshabilitado para economizar ancho de banda"
},
"connectionindicator": {
"address": "Dirección:",
@@ -89,13 +104,14 @@
"bitrate": "Tasa de transferencia:",
"bridgeCount": "Contador del servidor: ",
"connectedTo": "Conectado a:",
"e2e_rtt": "E2E RTT:",
"framerate": "Fotogramas por segundo:",
"less": "Mostrar menos",
"localaddress": "Dirección local:",
"localaddress_plural": "Direcciones locales:",
"localport": "Puerto local:",
"localport_plural": "Puertos locales:",
"more": "Ver más",
"more": "Mostrar más",
"packetloss": "Pérdida de paquetes:",
"quality": {
"good": "Bueno",
@@ -124,6 +140,10 @@
"descriptionWithoutWeb": "¿No pasó nada? Intentamos iniciar su reunión en la aplicación de escritorio {{app}}.",
"downloadApp": "Descargar la app",
"launchWebButton": "Iniciar en web",
"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 la Web",
"openApp": "Continuar a la aplicación",
"title": "Iniciar su reunión en {{app}}…",
"tryAgainButton": "Intentar de nuevo en el escritorio"
@@ -175,6 +195,10 @@
"dismiss": "Descartar",
"displayNameRequired": "¡Hola! ¿Cuál es tu nombre?",
"done": "Listo",
"e2eeDescription": "<p>El cifrado Extremo-a-Extremo es actualmente <strong>EXPERIMENTAL</strong>. Por favor lea<a href='https://jitsi.org/blog/e2ee/' target='_blank'>este artículo</a> para más detalles.</p><br/><p>Tenga en cuenta que activar el cifrado extremo-a-extremo puede deshabilitar servicios en el servidor como: grabación, transmisión en vivo y participación telefónica. Sin embargo tenga en cuenta que esta reunion solo funcionará con personas que se unan usando un navegador.</p>",
"e2eeLabel": "Clave",
"e2eeTitle": "Cifrado Extremo-a-Extremo",
"e2eeWarning": "ATENCION: No todos los participantes de esta reunión soportan cifrado Extremo-a-Extremo. Si usted habilita el cifrado ellos no podrán verlo ni oirlo.",
"enterDisplayName": "Por favor ingresa tu nombre aquí",
"error": "Error",
"externalInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.",
@@ -244,6 +268,7 @@
"reservationError": "Error del sistema de reservación",
"reservationErrorMsg": "Código de error: {{code}}, message: {{msg}}",
"retry": "Reintentar",
"screenSharingAudio": "Compartir audio",
"screenSharingFailedToInstall": "Oops! Su extensión de uso compartido de pantalla no se pudo instalar.",
"screenSharingFailedToInstallTitle": "La extensión para compartir la pantalla no se pudo instalar",
"screenSharingFirefoxPermissionDeniedError": "Algo salió mal mientras tratábamos de compartir la pantalla. Por favor, asegúrese de que nos ha dado permiso para hacerlo. ",
@@ -290,6 +315,9 @@
"documentSharing": {
"title": "Compartir documento"
},
"e2ee": {
"labelToolTip": "La comunicación de Audio y Video en esta reunión está cifrada Extremo-a-Extremo"
},
"feedback": {
"average": "Promedio",
"bad": "Malo",
@@ -458,11 +486,49 @@
"unmute": "Dejar de silenciar",
"newDeviceCameraTitle": "Se ha detectado una nueva cámara",
"newDeviceAudioTitle": "Se ha detectado un nuevo dispositivo de audio",
"newDeviceAction": "Usar"
"newDeviceAction": "Usar",
"OldElectronAPPTitle": "Vulnerabilidades de Seguridad!",
"oldElectronClientDescription1": "Aparentemente usted está usuado una versión antigua de Jitsi Meet que tiene problemas de seguridad. Por favor actualice la versión con nuestra ",
"oldElectronClientDescription2": "ultima versión",
"oldElectronClientDescription3": " ahora!"
},
"passwordSetRemotely": "definida por otro participante",
"passwordDigitsOnly": "Hasta {{number]] cifras",
"poweredby": "con tecnología de",
"prejoin": {
"audioAndVideoError": "Error en Audio y video:",
"audioOnlyError": "Error en Audio:",
"audioTrackError": "No se pured crear la pista de Audio.",
"callMe": "Llámame",
"callMeAtNumber": "Llamame a este número:",
"configuringDevices": "Configurando dispositivos...",
"connectedWithAudioQ": "Usted está conectado con Audio?",
"copyAndShare": "Cipie y comparta el link de la reuinión",
"dialInMeeting": "Marcar a la reunión",
"dialInPin": "Marcar a la reunión e ingresarel código PIN:",
"dialing": "Marcando",
"doNotShow": "No mostrar nuevamente",
"errorDialOut": "Could not dial out",
"errorDialOutDisconnected": "Could not dial out. Disconnected",
"errorDialOutFailed": "Could not dial out. Call failed",
"errorDialOutStatus": "Error getting dial out status",
"errorStatusCode": "Error dialing out, status code: {{status}}",
"errorValidation": "Number validation failed",
"iWantToDialIn": "I want to dial in",
"joinAudioByPhone": "Join with phone audio",
"joinMeeting": "Join meeting",
"joinWithoutAudio": "Join without audio",
"initiated": "Call initiated",
"linkCopied": "Link copied to clipboard",
"lookGood": "It sounds like your microphone is working properly",
"or": "or",
"calling": "Calling",
"startWithPhone": "Start with phone audio",
"screenSharingError": "Screen sharing error:",
"videoOnlyError": "Video error:",
"videoTrackError": "Could not create video track.",
"viewAllNumbers": "view all numbers"
},
"passwordSetRemotely": "definido por otro participante",
"passwordDigitsOnly": "Hasta {{number}} dígitos",
"poweredby": "proporcionado por",
"presenceStatus": {
"busy": "Ocupado",
"calling": "Llamando…",
@@ -514,6 +580,11 @@
"sectionList": {
"pullToRefresh": "Actualizar"
},
"security": {
"about": "Usted puede agregar una contraseña a la reunión. Los participantes necesitaran la contraseña para unirse a la reunión.",
"insecureRoomNameWarning": "El nombre de la sala es inseguro. Participantes no desseados pueden llegar a unirse a la reunión.",
"securityOptions": "Opciones de seguridad"
},
"settings": {
"calendar": {
"about": "La integración del calendario {{appName}} se utiliza para acceder de forma segura a su calendario para que pueda leer los próximos eventos.",
@@ -526,6 +597,7 @@
"followMe": "Todos me siguen",
"language": "Idioma",
"loggedIn": "Sesión iniciada como {{name}}",
"microphones": "Micrófono",
"moderator": "Moderador",
"more": "Más",
"name": "Nombre",
@@ -540,6 +612,7 @@
"settingsView": {
"advanced": "Avanzado",
"alertOk": "OK",
"alertCancel": "Cancelar",
"alertTitle": "Aviso",
"alertURLText": "La dirección URL del servidor no es válida",
"buildInfoSection": "Información de la compilación",
@@ -549,6 +622,8 @@
"displayName": "Nombre a mostrar",
"email": "Email",
"header": "Ajustes",
"email": "Correo electrónico",
"header": "Configuración",
"profileSection": "Perfil",
"serverURL": "URL del servidor",
"showAdvanced": "Mostrar configuración avanzada",
@@ -587,6 +662,7 @@
"chat": "Alternar ventana de chat",
"document": "Alternar documento compartido",
"download": "Descarga nuestras aplicaciones",
"e2ee": "Cifrado Extremo-a-Extremo",
"feedback": "Dejar comentarios",
"fullScreen": "Alternar pantalla completa",
"hangup": "Dejar la llamada",
@@ -604,6 +680,7 @@
"raiseHand": "Levantar / Bajar tu mano",
"recording": "Activar grabación",
"remoteMute": "Silenciar participante",
"security": "Opciones de seguridad",
"Settings": "Alternar configuración",
"sharedvideo": "Alternar compartir un vídeo de YouTube",
"shareRoom": "Invitar a alguien",
@@ -613,6 +690,7 @@
"speakerStats": "Alternar estadísticas del orador",
"tileView": "Alternar vista de mosaico",
"toggleCamera": "Alternar cámara",
"toggleFilmstrip": "Alternar mosaicos",
"videomute": "Alternar silencio de video",
"videoblur": "Alternar desenfoque de video"
},
@@ -627,6 +705,7 @@
"documentClose": "Cerrar documento compartido",
"documentOpen": "Abrir documento compartido",
"download": "Descarga nuestras aplicaciones",
"e2ee": "Cifrado Extremo-a-Extremo",
"enterFullScreen": "Ver pantalla completa",
"enterTileView": "Entrar en vista de mosaico",
"exitFullScreen": "Salir de pantalla completa",
@@ -645,14 +724,17 @@
"noAudioSignalTitle": "¡No hay entrada proveniente de su micrófono!",
"noAudioSignalDesc": "Si no lo silenció a propósito desde la configuración del sistema o el dispositivo, considere cambiar el dispositivo.",
"noAudioSignalDescSuggestion": "Si no lo silenció a propósito desde la configuración del sistema o el dispositivo, considere usar el siguiente dispositivo:",
"noisyAudioInputTitle": "",
"noisyAudioInputDesc": "",
"noAudioSignalDialInDesc": "Usted puede además llamar usando:",
"noAudioSignalDialInLinkDesc": "Números de llamada",
"noisyAudioInputTitle": "Su micrófono parece estar ruidoso",
"noisyAudioInputDesc": "Parece que su micráfono está haciendo ruido, por favor considere silenciarlo o cambiar de dispositivo.",
"openChat": "Abrir chat",
"pip": "Entra en el modo Picture-in-Picture",
"privateMessage": "Enviar mensaje privado",
"profile": "Editar tu perfil",
"raiseHand": "Levantar / Bajar tu mano",
"raiseYourHand": "Alzar la mano",
"security": "Opciones de seguridad",
"Settings": "Ajustes",
"sharedvideo": "Compartir un vídeo de YouTube",
"shareRoom": "Invitar a alguien",
@@ -748,6 +830,7 @@
"connectCalendarButton": "Conecte su calendario",
"connectCalendarText": "Conecte su calendario para ver todas sus reuniones en {{app}}. Plus, add {{provider}}reuniones a tu calendario e iniciarlas con un solo clic.",
"enterRoomTitle": "Comenzar una reunión",
"getHelp": "Obtener ayuda",
"roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.",
"go": "IR",
"goSmall": "IR",
@@ -767,5 +850,8 @@
"lonelyMeetingExperience": {
"button": "Invitar a otros",
"youAreAlone": "Eres el único en la reunión"
},
"helpView": {
"header": "Centro de ayuda"
}
}

View File

@@ -1,21 +1,36 @@
{
"addPeople": {
"add": "Invitar",
"addContacts": "Invitar a sus 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": "Aun 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.",
"loading": "Buscar personas y números de teléfono",
"loadingNumber": "Validando el número de teléfono",
"loadingPeople": "Buscando contactos a invitar",
"googleEmail": "Correo electrónico de Google",
"inviteMoreHeader": "Usted se encuentra solo en la reunión",
"inviteMoreMailSubject": "Unirse a la reunion {{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",
"searchNumbers": "Agregar números telefónicos",
"searchPeople": "Búsqueda de personas",
"searchPeople": "Buscar personas",
"searchPeopleAndNumbers": "Buscar personas o añadir sus números de teléfono",
"shareInvite": "Compartir la invitación a la reunión",
"shareLink": "Compartir el link de la reunion",
"shareStream": "Compartie el link de la transmición en vivo",
"telephone": "Teléfono: {{number}}",
"title": "Invitar a otras personas a esta reunión"
"title": "Invitar a otras personas a esta reunión",
"yahooEmail": "Correo de Yahoo"
},
"audioDevices": {
"bluetooth": "Bluetooth",
@@ -89,6 +104,7 @@
"bitrate": "Tasa de transferencia:",
"bridgeCount": "Contador del servidor: ",
"connectedTo": "Conectado a:",
"e2e_rtt": "E2E RTT:",
"framerate": "Fotogramas por segundo:",
"less": "Mostrar menos",
"localaddress": "Dirección local:",
@@ -123,6 +139,9 @@
"description": "¿No pasó nada? Hemos intentado iniciar su reunión en la aplicación {{app}} de escritorio. intente de nuevo o inicie en la aplicación {{app}} vía web.",
"descriptionWithoutWeb": "¿No pasó nada? Intentamos iniciar su reunión en la aplicación {{app}} de escritorio.",
"downloadApp": "Descargar la aplicación",
"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 la Web",
"openApp": "Continuar a la aplicación",
"title": "Iniciando la reunión en {{app}}…",
@@ -175,6 +194,10 @@
"dismiss": "Descartar",
"displayNameRequired": "¡Hola! ¿Cuál es tu nombre?",
"done": "Listo",
"e2eeDescription": "<p>El cifrado Extremo-a-Extremo es actualmente <strong>EXPERIMENTAL</strong>. Por favor lea<a href='https://jitsi.org/blog/e2ee/' target='_blank'>este artículo</a> para más detalles.</p><br/><p>Tenga en cuenta que activar el cifrado extremo-a-extremo puede deshabilitar servicios en el servidor como: grabación, transmisión en vivo y participación telefónica. Sin embargo tenga en cuenta que esta reunion solo funcionará con personas que se unan usando un navegador.</p>",
"e2eeLabel": "Clave",
"e2eeTitle": "Cifrado Extremo-a-Exremo",
"e2eeWarning": "ATENCION: No todos los participantes de esta reunión soportan cifrado Extremo-a-Extremo. Si usted habilita el cifrado ellos no podrán verlo ni oirlo.",
"enterDisplayName": "Por favor ingresa tu nombre aquí",
"error": "Error",
"externalInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.",
@@ -244,6 +267,7 @@
"reservationError": "Error del sistema de reservaciones",
"reservationErrorMsg": "Código de error: {{code}}, mensaje: {{msg}}",
"retry": "Volver a intentar",
"screenSharingAudio": "Compartir audio",
"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 cuando intentamos compartir su pantalla. Asegúrese de habernos dado permiso para hacerlo.",
@@ -289,6 +313,9 @@
"documentSharing": {
"title": "Documento Compartido"
},
"e2ee": {
"labelToolTip": "La comunicación de Audio y Video en esta reunión está cifrada Extremo-a-Extremo"
},
"feedback": {
"average": "Promedio",
"bad": "Malo",
@@ -457,11 +484,49 @@
"unmute": "Reactivar el sonido",
"newDeviceCameraTitle": "Se detectó una cámara nueva",
"newDeviceAudioTitle": "Se detectó un dispositivo de audio nuevo",
"newDeviceAction": "Usar"
"newDeviceAction": "Usar",
"OldElectronAPPTitle": "Vulnerabilidades de Seguridad!",
"oldElectronClientDescription1": "Aparentemente usted está usuado una versión antigua de Jitsi Meet que tiene problemas de seguridad. Por favor actualice la versión con nuestra ",
"oldElectronClientDescription2": "ultima versión",
"oldElectronClientDescription3": " ahora!"
},
"passwordSetRemotely": "definida por otro participante",
"passwordDigitsOnly": "Hasta {{number]] cifras",
"poweredby": "con tecnología de",
"prejoin": {
"audioAndVideoError": "Error en Audio y video:",
"audioOnlyError": "Error en Audio:",
"audioTrackError": "No se pured crear la pista de Audio.",
"callMe": "Llámame",
"callMeAtNumber": "Llamame a este número:",
"configuringDevices": "Configurando dispositivos...",
"connectedWithAudioQ": "Usted está conectado con Audio?",
"copyAndShare": "Cipie y comparta el link de la reuinión",
"dialInMeeting": "Marcar a la reunión",
"dialInPin": "Marcar a la reunión e ingresarel código PIN:",
"dialing": "Marcando",
"doNotShow": "No mostrar nuevamente",
"errorDialOut": "Could not dial out",
"errorDialOutDisconnected": "Could not dial out. Disconnected",
"errorDialOutFailed": "Could not dial out. Call failed",
"errorDialOutStatus": "Error getting dial out status",
"errorStatusCode": "Error dialing out, status code: {{status}}",
"errorValidation": "Number validation failed",
"iWantToDialIn": "I want to dial in",
"joinAudioByPhone": "Join with phone audio",
"joinMeeting": "Join meeting",
"joinWithoutAudio": "Join without audio",
"initiated": "Call initiated",
"linkCopied": "Link copied to clipboard",
"lookGood": "It sounds like your microphone is working properly",
"or": "or",
"calling": "Calling",
"startWithPhone": "Start with phone audio",
"screenSharingError": "Screen sharing error:",
"videoOnlyError": "Video error:",
"videoTrackError": "Could not create video track.",
"viewAllNumbers": "view all numbers"
},
"presenceStatus": {
"busy": "Ocupado",
"calling": "Llamando…",
@@ -513,6 +578,11 @@
"sectionList": {
"pullToRefresh": "Tirar para actualizar"
},
"security": {
"about": "Usted puede agregar una contraseña a la reunión. Los participantes necesitaran la contraseña para unirse a la reunión.",
"insecureRoomNameWarning": "El nombre de la sala es inseguro. Participantes no desseados 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 leer los próximos eventos.",
@@ -525,6 +595,7 @@
"followMe": "Todos me siguen",
"language": "Idioma",
"loggedIn": "Sesión iniciada como {{name}}",
"microphones": "Micrófono",
"moderator": "Moderador",
"more": "Más",
"name": "Nombre",
@@ -532,6 +603,7 @@
"selectAudioOutput": "Salida de audio",
"selectCamera": "Cámara",
"selectMic": "Micrófono",
"speakers": "Altavoces",
"startAudioMuted": "Todos comienzan con silenciados",
"startVideoMuted": "Todos comienzan con cámara desactivada",
"title": "Configuración"
@@ -539,12 +611,15 @@
"settingsView": {
"advanced": "Avanzado",
"alertOk": "Aceptar",
"alertCancel": "Cancelar",
"alertTitle": "Advertencia",
"alertURLText": "La dirección URL de servidor introducida no es válida",
"buildInfoSection": "Información de compilación",
"conferenceSection": "Conferencia",
"disableCallIntegration": "Desactivar la integración nativa de llamadas",
"disableP2P": "Desactiver el modo \"Peer-To-Peer\"",
"disableP2P": "Desactivar el modo \"Peer-To-Peer\"",
"disableCrashReporting": "Disable crash reporting",
"disableCrashReportingWarning": "Are you sure you want to disable crash reporting? The setting will be applied after you restart the app.",
"displayName": "Nombre para mostrar",
"email": "Correo electrónico",
"header": "Configuración",
@@ -586,6 +661,7 @@
"chat": "Alternar ventana de chat",
"document": "Alternar documento compartido",
"download": "Descargar nuestras aplicaciones",
"e2ee": "Cifrado Extremo-a-Extremo",
"feedback": "Dejar comentario",
"fullScreen": "Alternar pantalla completa",
"hangup": "Dejar la llamada",
@@ -605,6 +681,7 @@
"raiseHand": "Alternar levantar la mano",
"recording": "Alternar grabación",
"remoteMute": "Silenciar participante",
"security": "Opciones de seguridad",
"Settings": "Alternar configuración",
"sharedvideo": "Alternar uso compartido de video de YouTube",
"shareRoom": "Invitar a alguien",
@@ -614,6 +691,7 @@
"speakerStats": "Alternar estadísticas del altavoz",
"tileView": "Alternar vista de mosaico",
"toggleCamera": "Alternar cámara",
"toggleFilmstrip": "Alternar mosaicos",
"videomute": "Alternar silenciar video",
"videoblur": "Cambiar el desenfoque del fondo"
},
@@ -628,6 +706,7 @@
"documentClose": "Cerrar documento compartido",
"documentOpen": "Abrir documento compartido",
"download": "Descargar nuestras aplicaciones",
"e2ee": "Cifrado Extremo-a-Extremo",
"enterFullScreen": "Ver pantalla completa",
"enterTileView": "Introducir vista de mosaico",
"exitFullScreen": "Salir de pantalla completa",
@@ -656,6 +735,7 @@
"profile": "Editar el perfil",
"raiseHand": "Levantar/bajar la mano",
"raiseYourHand": "Levantar la mano",
"security": "Opciones de seguridad",
"Settings": "Configuración",
"sharedvideo": "Compartir un video de YouTube",
"shareRoom": "Invitar a alguien",
@@ -751,6 +831,7 @@
"connectCalendarButton": "Conectar el calendario",
"connectCalendarText": "Conecte su calendario para ver todas sus reuniones en {{app}}. Además, agregue reuniones {{provider}} a su calendario e inícielas con un solo clic.",
"enterRoomTitle": "Iniciar una nueva reunión",
"getHelp": "Obtener ayuda",
"roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.",
"go": "IR",
"goSmall": "IR",
@@ -766,5 +847,12 @@
"sendFeedback": "Enviar comentario",
"terms": "Términos",
"title": "Conferencias en video seguras, con gran variedad de funciones y completamente gratuitas"
},
"lonelyMeetingExperience": {
"button": "Invitar a otros",
"youAreAlone": "Usted está solo en la reunión"
},
"helpView": {
"header": "Centro de ayuda"
}
}

View File

@@ -1,8 +1,8 @@
{
"addPeople": {
"add": "Inviter",
"countryNotSupported": "Nous ne supportons pas encore cette destination.",
"countryReminder": "Appel hors des États-Unis ? Veuillez commencer avec le code du pays !",
"countryNotSupported": "Cette destination n'est pas actuellement supportée.",
"countryReminder": "Appel hors des États-Unis ? Veuillez débuter par le code du pays !",
"disabled": "Vous ne pouvez pas inviter quelqu'un.",
"failedToAdd": "Erreur lors de l'ajout des participants",
"footerText": "Appels sortants désactivés.",
@@ -33,7 +33,7 @@
"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 s'est produite lors de l'authentification permettant d'afficher les événements du calendrier. Veuillez vérifier les paramètres de votre calendrier et essayer de vous reconnecter."
"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",
@@ -81,7 +81,7 @@
"FETCH_SESSION_ID": "Obtention dun identifiant de session…",
"GET_SESSION_ID_ERROR": "Obtenir une erreur didentifiant de session : {{code}}",
"GOT_SESSION_ID": "Obtention dun identifiant de session… Terminée",
"LOW_BANDWIDTH": "La vidéo de {{displayName}} a été désactivée pour économiser de la ba de passante"
"LOW_BANDWIDTH": "La vidéo de {{displayName}} a été désactivée pour économiser de la bande passante"
},
"connectionindicator": {
"address": "Adresse :",
@@ -156,7 +156,7 @@
"cameraNotFoundError": "La caméra n'a pas été trouvée.",
"cameraNotSendingData": "Nous sommes incapables 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 vont pas vous voir. Utilisez le bouton de la caméra dans la barre d'adresse pour résoudre ce problème.",
"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.",
"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.",
"Cancel": "Annuler",
@@ -304,7 +304,7 @@
"answer": "Répondre",
"audioCallTitle": "Appel entrant",
"decline": "Rejeter",
"productLabel": "de Jitsi Meet",
"productLabel": "via Jitsi Meet",
"videoCallTitle": "Appel vidéo entrant"
},
"info": {
@@ -327,8 +327,8 @@
"inviteURLFirstPartPersonal": "{{name}} vous invite à une réunion.\n",
"inviteURLSecondPart": "\nRejoindre la réunion:\n{{url}}\n",
"liveStreamURL": "Diffusion en direct :",
"moreNumbers": "Plus de numéros",
"noNumbers": "Aucun numéro à composer.",
"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.",
"numbers": "Numéros d'appel",
@@ -349,7 +349,7 @@
"msg": "Nous avons trébuché un peu.",
"retry": "Réessayer",
"support": "Support",
"supportMsg": "Si cela continue, prenez contact avec"
"supportMsg": "Si ceci persiste, contactez"
},
"keyboardShortcuts": {
"focusLocal": "Épingler ma vidéo",
@@ -369,11 +369,13 @@
"videoQuality": "Accorder la qualité des appels"
},
"liveStreaming": {
"busy": "Nous travaillons sur la libération des ressources de Streaming. Veuillez réessayez dans quelques minutes.",
"busyTitle": "Tous les streamers sont actuellement occupés",
"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 live",
"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.",
"enterStreamKey": "Entrez votre clé de flux direct YouTube ici.",
"error": "Le Streaming a échoué. Veuillez réessayer.",
"errorAPI": "Une erreur s'est produite lors de l'accès à vos diffusions YouTube. Veuillez réessayer de vous connecter.",
@@ -381,7 +383,7 @@
"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": "Le Streaming n'as pas réussi à démarrer",
"failedToStart": "La diffusion n'as pas réussi à démarrer",
"getStreamKeyManually": "Nous n'avons pu récupérer aucun flux en direct. Essayez dobtenir votre clé de diffusion en direct sur YouTube.",
"invalidStreamKey": "La clé de diffusion en direct n'est peut-être pas correcte.",
"off": "Le Streaming a été arrêté",
@@ -392,12 +394,12 @@
"serviceName": "Service de diffusion en direct",
"signedInAs": "Vous êtes connecté en tant que :",
"signIn": "Se connecter avec Google",
"signInCTA": "Connectez vous ou entrez votre clé de flux live provenant de Youtube.",
"signInCTA": "Connectez vous ou saisissez votre clé de diffusion Youtube.",
"signOut": "Se déconnecter",
"start": "Démarrer la diffusion en direct",
"streamIdHelp": "Qu'est-ce que c'est?",
"unavailableTitle": "Le Streaming est indisponible",
"youtubeTerms": "Conditions dutilisation des services YouTube",
"streamIdHelp": "Qu'est-ce que c'est ?",
"unavailableTitle": "La diffusion est indisponible",
"youtubeTerms": "Conditions dutilisation de YouTube",
"googlePrivacyPolicy": "Politique de confidentialité de Google"
},
"localRecording": {
@@ -511,7 +513,7 @@
"serviceName": "Service d'enregistrement",
"signIn": "Se connecter",
"signOut": "Se déconnecter",
"unavailable": "Oups! Le {{serviceName}} est actuellement indisponible. Nous travaillons sur la résolution du problème. Veuillez réessayer plus tard.",
"unavailable": "Oups! Le {{serviceName}} est actuellement indisponible. Nous tentons de résoudre le problème. Veuillez réessayer plus tard.",
"unavailableTitle": "Enregistrement indisponible"
},
"sectionList": {
@@ -648,13 +650,13 @@
"lowerYourHand": "Baisser la main",
"moreActions": "Plus d'actions",
"moreOptions": "Plus d'options",
"mute": "Activer / Désactiver le micro",
"muteEveryone": "Couper le micro de tout le monde",
"noAudioSignalTitle": "Il n'y a pas d'entrée provenant de votre micro !",
"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.",
"mute": "Muet / Actif",
"muteEveryone": "Couper le micro à tout le monde",
"noAudioSignalTitle": "Il n'y a pas de signal provenant de votre micro !",
"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 :",
"noisyAudioInputTitle": "Votre microphone semble être bruyant !",
"noisyAudioInputDesc": "Il semble que votre microphone fasse du bruit, pensez à le mettre en sourdine ou à changer d'appareil.",
"noisyAudioInputDesc": "Il semble que votre microphone fasse du bruit, veuillez le couper ou changer de périphérique.",
"openChat": "Ouvrir le chat",
"pip": "Entrer en mode Picture-in-Picture",
"privateMessage": "Envoyer un message privé",
@@ -677,7 +679,6 @@
"videomute": "Démarrer / Arrêter la caméra",
"startvideoblur": "Flouter mon arrière plan",
"stopvideoblur": "Désactiver le flou d'arrière-plan",
"muteEveryone": "Mettre tout le monde en sourdine",
"noAudioSignalDialInDesc": "Vous pouvez également composer un numéro en utilisant :",
"noAudioSignalDialInLinkDesc": "Numéros d'appel"
},
@@ -694,23 +695,23 @@
"tr": "TR"
},
"userMedia": {
"androidGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
"chromeGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
"edgeGrantPermissions": "Sélectionnez <b><i>Oui</i></b> quand le navigateur demande les permissions.",
"electronGrantPermissions": "Merci d'autoriser le partage de votre camera et microphone",
"firefoxGrantPermissions": "Sélectionnez <b><i>Partager le périphérique sélectionné</i></b> lorsque votre navigateur demande des autorisations.",
"iexplorerGrantPermissions": "Sélectionnez <b><i>OK</i></b> quand le navigateur demande les permissions.",
"nwjsGrantPermissions": "Merci d'autoriser le partage de votre camera et microphone",
"operaGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
"react-nativeGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande des autorisations.",
"safariGrantPermissions": "Sélectionnez <b><i>OK</i></b> quand le navigateur demande les permissions."
"androidGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande votre autorisation.",
"chromeGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande votre autorisation.",
"edgeGrantPermissions": "Sélectionnez <b><i>Oui</i></b> quand le navigateur demande votre autorisation.",
"electronGrantPermissions": "Veuillez autoriser le partage de votre camera et microphone.",
"firefoxGrantPermissions": "Sélectionnez <b><i>Partager le périphérique sélectionné</i></b> lorsque votre navigateur demande votre autorisation.",
"iexplorerGrantPermissions": "Sélectionnez <b><i>OK</i></b> quand le navigateur demande votre autorisation.",
"nwjsGrantPermissions": "Veuillez autoriser le partage de votre camera et microphone.",
"operaGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande votre autorisation.",
"react-nativeGrantPermissions": "Sélectionnez <b><i>Autoriser</i></b> lorsque votre navigateur demande votre autorisation.",
"safariGrantPermissions": "Sélectionnez <b><i>OK</i></b> quand le navigateur demande votre autorisation."
},
"videoSIPGW": {
"busy": "Nous travaillons sur la libération des ressources. Veuillez réessayez dans quelques minutes.",
"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 travaillons sur la résolution du problème. 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)"
@@ -750,7 +751,7 @@
"join": "Touchez pour rejoindre",
"roomname": "Saisissez un nom de salle"
},
"appDescription": "Allez-y, chat vidéo avec toute l'équipe. En fait, invitez tout le monde que vous connaissez. {{app}} est une solution de visioconférence entièrement chiffrée et 100% open source que vous pouvez utiliser toute la journée, tous les jours, gratuitement— aucun compte requis.",
"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 jours, et sans aucun compte requis.",
"audioVideoSwitch": {
"audio": "Voix",
"video": "Vidéo"
@@ -773,7 +774,7 @@
"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",
"terms": "Termes",
"title": "Vidéoconférence Sécurisée, entièrement en vedette et gratuite",
"title": "Système de vidéoconférence sécurisé, riche en fonctionnalités et gratuit",
"getHelp": "Obtenir de l'aide"
},
"lonelyMeetingExperience": {

View File

@@ -104,8 +104,10 @@
"description": "何も起こりませんでしたか? {{app}} デスクトップアプリで会議を開始しようとしました。 再度試してみるか、{{app}} Webアプリで起動してください。",
"descriptionWithoutWeb": "",
"downloadApp": "アプリをダウンロードする",
"ifDoNotHaveApp": "まだアプリを持っていない場合は、",
"ifHaveApp": "すでにアプリを持っている場合は、",
"joinInApp": "アプリで会議に参加する",
"launchWebButton": "Webで起動する",
"openApp": "アプリで続く",
"title": "{{app}} で会議を開始する…",
"tryAgainButton": "デスクトップでもう一度お試しください"
},

817
lang/main-mr.json Normal file
View File

@@ -0,0 +1,817 @@
{
"addPeople": {
"add": "आमंत्रित करा",
"countryNotSupported": "आम्ही अद्याप या गंतव्याचे समर्थन करत नाही.",
"countryReminder": "यूएस बाहेर कॉल करीत आहे? कृपया आपण देशाच्या कोडसह प्रारंभ केल्याचे सुनिश्चित करा!",
"disabled": "आपण लोकांना आमंत्रित करू शकत नाही.",
"failedToAdd": "सहभागी जोडण्यात अयशस्वी",
"footerText": "डायल आउट करणे अक्षम केले आहे.",
"loading": "लोक आणि फोन नंबर शोधत आहे",
"loadingNumber": "फोन नंबर सत्यापित करीत आहे",
"loadingPeople": "लोकांना आमंत्रित करण्यासाठी शोधत आहे",
"noResults": "कोणतेही जुळणारे शोध परिणाम नाहीत",
"noValidNumbers": "कृपया एक फोन नंबर प्रविष्ट करा",
"searchNumbers": "फोन नंबर जोडा",
"searchPeople": "लोकांचा शोध घ्या",
"searchPeopleAndNumbers": "लोक शोधा किंवा त्यांचा फोन नंबर जोडा",
"telephone": "दूरध्वनी: {{number}}",
"title": "या संमेलनात लोकांना आमंत्रित करा"
},
"audioDevices": {
"bluetooth": "ब्लूटुथ",
"headphones": "हेडफोन",
"phone": "फोन",
"speaker": "स्पीकर",
"none": "कोणतेही ऑडिओ डिव्हाइस उपलब्ध नाहीत"
},
"audioOnly": {
"audioOnly": "कमी बँडविड्थ"
},
"calendarSync": {
"addMeetingURL": "मीटिंगचा दुवा जोडा",
"confirmAddLink": "आपण या कार्यक्रमास एक Jitsi दुवा जोडू इच्छिता?",
"error": {
"appConfiguration": "कॅलेंडर समाकलन योग्यरित्या कॉन्फिगर केलेले नाही.",
"generic": "त्रुटी आढळली आहे. कृपया आपल्या कॅलेंडर सेटिंग्ज तपासा किंवा कॅलेंडर रीफ्रेश करा.",
"notSignedIn": "कॅलेंडर इव्हेंट पाहण्यासाठी प्रमाणीकरण करताना त्रुटी आली. कृपया आपल्या कॅलेंडर सेटिंग्ज तपासा आणि पुन्हा लॉग इन करण्याचा प्रयत्न करा."
},
"join": "सामील व्हा",
"joinTooltip": "बैठकीत सामील व्हा",
"nextMeeting": "पुढील बैठक",
"noEvents": "कोणतेही आगामी कार्यक्रम शेड्यूल केलेले नाहीत.",
"ongoingMeeting": "चालू बैठक",
"permissionButton": "सेटिंग्ज उघडा",
"permissionMessage": "अ‍ॅपमधील आपली संमेलने पहाण्यासाठी कॅलेंडर परवानगी आवश्यक आहे.",
"refresh": "रीफ्रेश कॅलेंडर",
"today": "आज"
},
"chat": {
"error": "Error: तुमचा संदेश पाठविला गेला नाही. कारणः {{error}}",
"fieldPlaceHolder": "आपला संदेश येथे टाइप करा",
"messagebox": "एक संदेश टाइप करा",
"messageTo": "यांना खाजगी संदेश {{recipient}}",
"noMessagesMessage": "अद्याप मीटिंगमध्ये कोणतेही संदेश नाहीत. येथे संभाषण सुरू करा!",
"nickname": {
"popover": "टोपणनाव निवडा",
"title": "चॅट वापरण्यासाठी टोपणनाव प्रविष्ट करा"
},
"privateNotice": "यांना खाजगी संदेश{{recipient}}",
"title": "गप्पा",
"you": "आपण"
},
"chromeExtensionBanner": {
"installExtensionText": "Google कॅलेंडर आणि ऑफिस 365 एकत्रिकरणासाठी विस्तार स्थापित करा",
"buttonText": "Chrome विस्तार स्थापित करा",
"dontShowAgain": "मला हे पुन्हा दर्शवू नका"
},
"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": "यांना जोडलेले:",
"e2e_rtt": "E2E आरटीटी:",
"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": "चाचणी आवाज प्ले करा"
},
"dialog": {
"accessibilityLabel": {
"liveStreaming": "थेट प्रसारण"
},
"allow": "परवानगी द्या",
"alreadySharedVideoMsg": "दुसरा सहभागी आधीपासूनच व्हिडिओ सामायिक करीत आहे. ही परिषद एका वेळी फक्त एकच सामायिक व्हिडिओ परवानगी देते.",
"alreadySharedVideoTitle": "एकावेळी फक्त सामायिक केलेला व्हिडिओ अनुमत आहे",
"applicationWindow": "अनुप्रयोग विंडो",
"Back": "Back",
"cameraConstraintFailedError": "आपला कॅमेरा काही आवश्यक मर्यादा पूर्ण करीत नाही.",
"cameraNotFoundError": "कॅमेरा आढळला नाही.",
"cameraNotSendingData": "आम्ही आपल्या कॅमेर्‍यावर प्रवेश करण्यात अक्षम आहोत. कृपया एखादा दुसरा अनुप्रयोग हे डिव्हाइस वापरत आहे की नाही ते तपासा, सेटिंग्ज मेनूमधून दुसरे डिव्हाइस निवडा किंवा अनुप्रयोग रीलोड करण्याचा प्रयत्न करा.",
"cameraNotSendingDataTitle": "कॅमेर्‍यावर प्रवेश करण्यात अक्षम",
"cameraPermissionDeniedError": "आपल्याला आपला कॅमेरा वापरण्याची परवानगी नाही. आपण अद्याप परिषदेत सामील होऊ शकता परंतु इतर आपल्याला पाहणार नाहीत. हे निश्चित करण्यासाठी अ‍ॅड्रेस बारमधील कॅमेरा बटण वापरा.",
"cameraUnknownError": "अज्ञात कारणासाठी कॅमेरा वापरू शकत नाही.",
"cameraUnsupportedResolutionError": "आपला कॅमेरा आवश्यक व्हिडिओ रिझोल्यूशनला समर्थन देत नाही.",
"Cancel": "रद्द करा",
"close": "बंद",
"conferenceDisconnectMsg": "आपण आपले नेटवर्क कनेक्शन तपासू शकता. सेकंदात पुन्हा कनेक्ट करत आहे {{seconds}}..",
"conferenceDisconnectTitle": "आपण डिस्कनेक्ट झाला आहात.",
"conferenceReloadMsg": "आम्ही हे निश्चित करण्याचा प्रयत्न करीत आहोत. पुन्हा कनेक्ट करत आहे. {{seconds}} sec...",
"conferenceReloadTitle": "दुर्दैवाने, काहीतरी चूक झाली",
"confirm": "पुष्टी",
"confirmNo": "नाही",
"confirmYes": "होय",
"connectError": "अरेरे! काहीतरी चूक झाली आणि आम्ही परिषदेत कनेक्ट होऊ शकलो नाही.",
"connectErrorWithMsg": "अरेरे! काहीतरी चूक झाली आणि आम्ही परिषदेत कनेक्ट होऊ शकलो नाही:{{msg}}",
"connecting": "कनेक्ट करीत आहे",
"contactSupport": "समर्थन संपर्क",
"copy": "Copy",
"dismiss": "Dismiss",
"displayNameRequired": "हाय! तुझे नाव काय आहे?",
"done": "पूर्ण झाले",
"e2eeDescription": "<p>एंड-टू-एंड एनक्रिप्शन सध्या आहे <strong>प्रायोगिक</strong>. कृपया पहा <a href='https://jitsi.org/blog/e2ee/' target='_blank'>this post</a>तपशीलांसाठी.</p><br/><p>कृपया लक्षात ठेवा की एंड-टू-एंड एन्क्रिप्शन चालू केल्याने सर्व्हर-साइड प्रदान सेवा प्रभावीपणे अक्षम होईल: रेकॉर्डिंग, थेट प्रवाह आणि फोन सहभाग. हे देखील लक्षात ठेवा की मीटिंग केवळ समाविष्ट करण्यायोग्य प्रवाहांसाठी समर्थन असलेल्या ब्राउझरमधून सामील झालेल्या लोकांसाठीच कार्य करेल.</p>",
"e2eeLabel": "Key",
"e2eeTitle": "एंड-टू-एंड एनक्रिप्शन",
"e2eeWarning": "चेतावणी:या बैठकीतील सर्व सहभागींना एंड-टू-एंड एनक्रिप्शनसाठी समर्थन असल्याचे दिसत नाही. आपण सक्षम केल्यास ते आपल्याला पाहण्यास किंवा ऐकण्यास सक्षम राहणार नाहीत.",
"enterDisplayName": "कृपया आपले नाव येथे प्रविष्ट करा",
"error": "त्रुटी",
"externalInstallationMsg": "आपल्याला आमचा डेस्कटॉप सामायिकरण विस्तार स्थापित करणे आवश्यक आहे.",
"externalInstallationTitle": "विस्तार आवश्यक",
"goToStore": "वेब स्टोअरवर जा",
"gracefulShutdown": "आमची सेवा सध्या देखभालीसाठी बंद आहे. कृपया पुन्हा प्रयत्न करा.",
"IamHost": "मी यजमान आहे",
"incorrectRoomLockPassword": "चुकीचा संकेतशब्द",
"incorrectPassword": "वापरकर्त्याचे नाव अथवा पासवर्ड चुकीचा",
"inlineInstallationMsg": "आपल्याला आमचा डेस्कटॉप सामायिकरण विस्तार स्थापित करणे आवश्यक आहे.",
"inlineInstallExtension": "स्थापित करा",
"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.",
"muteEveryoneElseDialog": "एकदा नि: शब्द झाल्यास आपण त्यांना ध्वनीमुद्रित करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.",
"muteEveryoneElseTitle": "सोडून सर्वांना नि: शब्द करा{{whom}}?",
"muteEveryoneDialog": "आपली खात्री आहे की आपण प्रत्येकाला निःशब्द करू इच्छिता? आपण त्यांना सशब्द करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.",
"muteEveryoneTitle": "सर्वांना नि: शब्द करा?",
"muteEveryoneSelf": "तू स्वतः",
"muteEveryoneStartMuted": "आतापासून प्रत्येकजण निःशब्द होऊ लागतो",
"muteParticipantBody": "आपण त्यांना सशब्द करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.",
"muteParticipantButton": "नि: शब्द करा",
"muteParticipantDialog": "आपली खात्री आहे की आपण या सहभागीस नि: शब्द करू इच्छिता? आपण त्यांना सशब्द करण्यास सक्षम राहणार नाही परंतु ते कधीही स्वत: ला सशब्द करू शकतात.",
"muteParticipantTitle": "हा सहभागी नि: शब्द करायचा?",
"Ok": "Ok",
"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": "दूरस्थ डेस्कटॉप नियंत्रण",
"Remove": "काढा",
"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": "कॉल संपुष्टात आला",
"Share": "सामायिक करा",
"shareVideoLinkError": "कृपया योग्य YouTube दुवा प्रदान करा.",
"shareVideoTitle": "एक व्हिडिओ सामायिक करा",
"shareYourScreen": "आपली स्क्रीन सामायिक करा",
"shareYourScreenDisabled": "स्क्रीन सामायिकरण अक्षम केले.",
"shareYourScreenDisabledForGuest": "अतिथी स्क्रीन सामायिकरण करू शकत नाहीत.",
"startLiveStreaming": "थेट प्रवाह सुरू करा",
"startRecording": "रेकॉर्डिंग प्रारंभ करा",
"startRemoteControlErrorMessage": "रिमोट कंट्रोल सत्र सुरू करण्याचा प्रयत्न करताना एक त्रुटी आली!",
"stopLiveStreaming": "थेट प्रवाह थांबवा",
"stopRecording": "रेकॉर्डिंग थांबवा",
"stopRecordingWarning": "आपली खात्री आहे की आपण रेकॉर्डिंग थांबवू इच्छिता?",
"stopStreamingWarning": "आपणास खात्री आहे की आपण थेट प्रवाह थांबवू इच्छिता?",
"streamKey": "थेट प्रवाह की",
"Submit": "प्रस्तुत करणे",
"thankYou": "वापरल्याबद्दल धन्यवाद {{appName}}!",
"token": "टोकन",
"tokenAuthFailed": "क्षमस्व, आपणास या कॉलमध्ये सामील होण्याची परवानगी नाही.",
"tokenAuthFailedTitle": "प्रमाणीकरण अयशस्वी",
"transcribing": "लिप्यंतरण",
"unlockRoom": "मीटिंग काढा $t(lockRoomPassword)",
"userPassword": "user password",
"WaitForHostMsg": "परिषद <b>{{room}}</b>अद्याप सुरू झाले नाही. आपण होस्ट असल्यास कृपया अधिकृत करा. अन्यथा, कृपया होस्ट येण्याची प्रतीक्षा करा.",
"WaitForHostMsgWOk": "परिषद <b>{{room}}</b> अद्याप सुरू झाले नाही. आपण होस्ट असल्यास कृपया प्रमाणीकरणासाठी ओके दाबा. अन्यथा, कृपया होस्ट येण्याची प्रतीक्षा करा.",
"WaitingForHost": " होस्टची प्रतीक्षा करीत आहे ...",
"Yes": "होय",
"yourEntireScreen": "आपली संपूर्ण स्क्रीन"
},
"dialOut": {
"statusMessage": "आता आहे {{status}}"
},
"documentSharing": {
"title": "सामायिक दस्तऐवज"
},
"e2ee": {
"labelToolTip": "या बैठकीतील सर्व सहभागींनी एंड-टू-एंड एनक्रिप्शन सक्षम केले आहे"
},
"feedback": {
"average": "सरासरी",
"bad": "वाईट",
"detailsLabel": " त्याबद्दल आम्हाला सांगा.",
"good": "चांगले",
"rateExperience": "आपल्या भेटीचा अनुभव रेट करा",
"veryBad": "फार वाईट",
"veryGood": "खुप छान"
},
"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",
"liveStreamURL": "थेट प्रसारण:",
"moreNumbers": "अधिक संख्या",
"noNumbers": "डायल-इन नंबर नाहीत.",
"noPassword": "काहीही नाही",
"noRoom": "डायल-इन करण्यासाठी कोणतीही खोली निर्दिष्ट केलेली नाही.",
"numbers": "डायल-इन क्रमांक",
"password": "$t(lockRoomPasswordUppercase):",
"title": "सामायिक करा",
"tooltip": "या संमेलनासाठी दुवा आणि डायल-इन माहिती सामायिक करा",
"label": "संमेलनाची माहिती"
},
"inviteDialog": {
"alertText": "काही सहभागींना आमंत्रित करण्यात अयशस्वी.",
"header": "आमंत्रित करा",
"searchCallOnlyPlaceholder": " फोन नंबर प्रविष्ट करा",
"searchPeopleOnlyPlaceholder": "सहभागींचा शोध घ्या",
"searchPlaceholder": "सहभागी किंवा फोन नंबर",
"send": "पाठवा"
},
"inlineDialogFailure": {
"msg": "आम्ही जरा अडखळलो.",
"retry": "पुन्हा प्रयत्न करा",
"support": "आधार",
"supportMsg": "हे असेच होत राहिल्यास संपर्क साधा"
},
"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 वरून आपली थेट प्रवाह की मिळवण्याचा प्रयत्न करा.",
"invalidStreamKey": "थेट प्रवाह की चुकीची असू शकते.",
"off": "थेट प्रवाह थांबला",
"offBy": "{{name}} थेट प्रवाह थांबविला",
"on": "थेट प्रवाह",
"onBy": "{{name}} थेट प्रवाह सुरू केला",
"pending": "थेट प्रवाह सुरू करत आहे ...",
"serviceName": "थेट प्रवाह सेवा",
"signedInAs": "आपण सध्या म्हणून साइन इन केले आहे:",
"signIn": "Google सह साइन इन करा",
"signInCTA": "YouTube वरून साइन इन करा किंवा आपली थेट प्रवाह की प्रविष्ट करा.",
"signOut": "साइन आउट करा",
"start": "थेट प्रवाह सुरू करा",
"streamIdHelp": "हे काय आहे?",
"unavailableTitle": "थेट प्रवाह अनुपलब्ध",
"youtubeTerms": "YouTube सेवा अटी",
"googlePrivacyPolicy": "Google गोपनीयता धोरण"
},
"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": "संकेतशब्द",
"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}} was kicked by {{kicker}}",
"me": "Me",
"moderator": "नियंत्रक अधिकार मंजूर!",
"muted": "आपण संभाषण निःशब्द केले आहे.",
"mutedTitle": "आपण निःशब्द आहात!",
"mutedRemotelyTitle": "आपण द्वारे निःशब्द केले गेले आहे {{participantDisplayName}}!",
"mutedRemotelyDescription": "आपण बोलण्यास तयार असता तेव्हा आपण नेहमी सशब्द करू शकता. आपण संमेलनापासून आवाज दूर ठेवण्यासाठी पूर्ण झाल्यावर परत नि: शब्द करा.",
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) दुसर्‍या सहभागीने काढले",
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) दुसर्‍या सहभागीने सेट केलेले",
"raisedHand": "{{name}} बोलायला आवडेल.",
"somebody": "कुणीतरी",
"startSilentTitle": "आपण ऑडिओ आउटपुटसह सामील झालात!",
"startSilentDescription": "ऑडिओ सक्षम करण्यासाठी संमेलनात पुन्हा सामील व्हा",
"suboptimalBrowserWarning": " आम्हाला भीती वाटते की येथे आपल्या भेटीचा अनुभव इतका उत्कृष्ट होणार नाही. आम्ही यामध्ये सुधारणा करण्याचे मार्ग शोधत आहोत, परंतु तोपर्यंत कृपया त्यापैकी एक वापरून पहा <a href='static/recommendedBrowsers.html' target='_blank'>fully supported browsers</a>.",
"suboptimalExperienceTitle": "ब्राउझर चेतावणी",
"unmute": "सशब्द करा",
"newDeviceCameraTitle": "नवीन कॅमेरा आढळला",
"newDeviceAudioTitle": "नवीन ऑडिओ डिव्हाइस आढळले",
"newDeviceAction": "वापरा",
"OldElectronAPPTitle": "सुरक्षा असुरक्षा!",
"oldElectronClientDescription1": "आपण सुरक्षा असुरक्षा ज्ञात असलेल्या जितसी मीट क्लायंटची जुनी आवृत्ती वापरत असल्याचे दिसून येत आहे. कृपया आमच्याकडे आपण अद्यतनित असल्याची खात्री करा",
"oldElectronClientDescription2": "नवीनतम बिल्ड",
"oldElectronClientDescription3": " आता!"
},
"passwordSetRemotely": "दुसर्‍या सहभागीने सेट केलेले",
"passwordDigitsOnly": " पर्यंत {{number}} अंक",
"poweredby": "द्वारा समर्थित",
"prejoin": {
"audioAndVideoError": "ऑडिओ आणि व्हिडिओ त्रुटी:",
"audioOnlyError": "ऑडिओ त्रुटी:",
"audioTrackError": "ऑडिओ ट्रॅक तयार करू शकलो नाही.",
"callMe": "मला कॉल करा",
"callMeAtNumber": "मला या नंबरवर कॉल करा:",
"configuringDevices": "डिव्हाइस कॉन्फिगर करीत आहे ...",
"connectedWithAudioQ": "आपण ऑडिओशी कनेक्ट आहात?",
"copyAndShare": "मीटिंगचा दुवा कॉपी आणि सामायिक करा",
"dialInMeeting": "बैठकीत डायल करा",
"dialInPin": "संमेलनात डायल करा आणि पिन कोड प्रविष्ट करा:",
"dialing": "डायल करत आहे",
"iWantToDialIn": "मला डायल करायचे आहे",
"joinAudioByPhone": "फोन ऑडिओसह सामील व्हा",
"joinMeeting": "बैठकीत सामील व्हा",
"joinWithoutAudio": "ऑडिओशिवाय सामील व्हा",
"initiated": "कॉल सुरू झाला",
"linkCopied": "क्लिपबोर्डवर दुवा कॉपी केला",
"lookGood": "स्पीकर आणि मायक्रोफोन चांगले दिसतात",
"or": "किंवा",
"calling": "कॉल करीत आहे",
"startWithPhone": "फोन ऑडिओसह प्रारंभ करा",
"screenSharingError": "स्क्रीन सामायिकरण त्रुटी:",
"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": "साइन आउट करा",
"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": "नाव",
"seconds": "{{count}}s",
"speakerStats": "स्पीकर आकडेवारी",
"speakerTime": "स्पीकर वेळ"
},
"startupoverlay": {
"policyText": " ",
"title": "{{app}} आपला मायक्रोफोन आणि कॅमेरा वापरण्याची आवश्यकता आहे."
},
"suspendedoverlay": {
"rejoinKeyTitle": "पुन्हा जॉइन करा",
"text": " पुन्हा कनेक्ट करण्यासाठी <i>Rejoin</i> बटण दाबा.",
"title": "आपला व्हिडिओ कॉल व्यत्यय आला कारण हा संगणक झोपायला गेला."
},
"toolbar": {
"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": "सर्वांना नि: शब्द करा",
"noAudioSignalTitle": "आपल्या माइकवरून कोणतेही इनपुट येत नाही!",
"noAudioSignalDesc": "आपण सिस्टम सेटिंग्ज किंवा हार्डवेअरवरून हेतुपुरस्सर नि: शब्द न केल्यास, डिव्हाइस बदलण्याचा विचार करा.",
"noAudioSignalDescSuggestion": "आपण सिस्टम सेटिंग्ज किंवा हार्डवेअरवरून हेतुपुरस्सर नि: शब्द न केल्यास, सूचित डिव्हाइसवर स्विच करण्याचा विचार करा.",
"noAudioSignalDialInDesc": "आपण हे वापरून डायल-इन देखील करू शकता:",
"noAudioSignalDialInLinkDesc": "डायल-इन क्रमांक",
"noisyAudioInputTitle": "आपला मायक्रोफोन गोंगाट करणारा दिसत आहे!",
"noisyAudioInputDesc": "आपला मायक्रोफोन आवाज देत असल्यासारखे दिसत आहे, कृपया डिव्हाइस नि: शब्द करणे किंवा बदलणे याचा विचार करा.",
"openChat": "खुली गप्पा",
"pip": "पिक्चर-इन-पिक्चर मोड प्रविष्ट करा",
"privateMessage": "खाजगी संदेश पाठवा",
"profile": "आपले प्रोफाइल संपादित करा",
"raiseHand": "हात वर करा / कमी करा",
"raiseYourHand": "तुझा हात वर कर",
"Settings": "सेटिंग्ज",
"sharedvideo": "एक YouTube व्हिडिओ सामायिक करा",
"shareRoom": "एखाद्यास आमंत्रित करा",
"shortcuts": "शॉर्टकट पहा",
"speakerStats": "स्पीकर आकडेवारी",
"startScreenSharing": "स्क्रीन सामायिकरण प्रारंभ करा",
"startSubtitles": "उपशीर्षके प्रारंभ करा",
"stopScreenSharing": "स्क्रीन सामायिकरण थांबवा",
"stopSubtitles": "उपशीर्षके थांबवा",
"stopSharedVideo": "YouTube व्हिडिओ थांबवा",
"talkWhileMutedPopup": "बोलण्याचा प्रयत्न करीत आहात? आपण निःशब्द आहात.",
"tileViewToggle": "टाइल दृश्य टॉगल करा",
"toggleCamera": "टॉगल कॅमेरा",
"videomute": "कॅमेरा प्रारंभ / थांबवा",
"startvideoblur": "माझी पार्श्वभूमी अस्पष्ट करा",
"stopvideoblur": "पार्श्वभूमी डाग अक्षम करा"
},
"transcribing": {
"ccButtonTooltip": "उपशीर्षके प्रारंभ / थांबवा",
"error": "लिप्यंतरण अयशस्वी. कृपया पुन्हा प्रयत्न करा.",
"expandedLabel": "लिप्यंतरण चालू आहे",
"failedToStart": "लिप्यंतरण सुरू करण्यात अयशस्वी",
"labelToolTip": "सभेचे प्रतिलेखन केले जात आहे",
"off": "लिप्यंतरण थांबविले",
"pending": "संमेलनाची नक्कल करण्याची तयारी करत आहे ...",
"start": "उपशीर्षके दर्शविणे प्रारंभ करा",
"stop": "उपशीर्षके दर्शविणे थांबवा",
"tr": "टीआर"
},
"userMedia": {
"androidGrantPermissions": "निवडा <b><i>परवानगी द्या</i></b> जेव्हा आपला ब्राउझर परवानग्या विचारतो.",
"chromeGrantPermissions": "निवडा <b><i>परवानगी द्या</i></b> जेव्हा आपला ब्राउझर परवानग्या विचारतो.",
"edgeGrantPermissions": "निवडा <b><i> होय</i></b> जेव्हा आपला ब्राउझर परवानग्या विचारतो.",
"electronGrantPermissions": "कृपया आपला कॅमेरा आणि मायक्रोफोन वापरण्यास परवानगी द्या",
"firefoxGrantPermissions": "Select <b><i>निवडलेले डिव्हाइस सामायिक करा</i></b> जेव्हा आपला ब्राउझर परवानग्या विचारतो.",
"iexplorerGrantPermissions": "निवडा <b><i>ठीक आहे</i></b> जेव्हा आपला ब्राउझर परवानग्या विचारतो.",
"nwjsGrantPermissions": "कृपया आपला कॅमेरा आणि मायक्रोफोन वापरण्यास परवानगी द्या",
"operaGrantPermissions": "निवडा <b><i>परवानगी द्या</i></b> जेव्हा आपला ब्राउझर परवानग्या विचारतो.",
"react-nativeGrantPermissions": "निवडा <b><i>परवानगी द्या</i></b>जेव्हा आपला ब्राउझर परवानग्या विचारतो.",
"safariGrantPermissions": "निवडा <b><i>ठीक आहे</i></b> जेव्हा आपला ब्राउझर परवानग्या विचारतो."
},
"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",
"roomNameAllowedChars": "संमेलनाच्या नावात यापैकी कोणतेही वर्ण नसावेत: ?, &, :, ', \", %, #.",
"go": "GO",
"goSmall": "GO",
"join": "तयार करा / सामील व्हा",
"info": "माहिती",
"privacy": "गोपनीयता",
"recentList": "अलीकडील",
"recentListDelete": "हटवा",
"recentListEmpty": "आपली अलीकडील यादी सध्या रिक्त आहे. आपल्या कार्यसंघाशी गप्पा मारा आणि आपल्याला आपल्या सर्व अलीकडील संमेलने येथे आढळतील.",
"reducedUIText": "{{App}} वर आपले स्वागत आहे!",
"roomname": "Enter room name",
"roomnameHint": "आपण सामील होऊ इच्छित असलेल्या खोलीचे नाव किंवा URL प्रविष्ट करा. आपण नाव लिहू शकता, आपण ज्यांना भेटत आहात त्या लोकांना हे कळू द्या जेणेकरुन ते समान नाव प्रविष्ट करा.",
"sendFeedback": "अभिप्राय पाठवा",
"terms": "अटी",
"title": "सुरक्षित, पूर्णपणे वैशिष्ट्यीकृत आणि पूर्णपणे विनामूल्य व्हिडिओ कॉन्फरन्सिंग"
},
"lonelyMeetingExperience": {
"button": "इतरांना आमंत्रित करा",
"youAreAlone": "आपण सभेत एकटाच आहात"
},
"helpView": {
"header": "मदत केंद्र"
}
}

View File

@@ -113,9 +113,11 @@
"appNotInstalled": "U hebt de mobiele app {{app}} nodig om op uw telefoon aan deze vergadering deel te nemen.",
"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": "",
"downloadApp": "De app downloaden",
"downloadApp": "Download de app",
"ifDoNotHaveApp": "Als u de app nog niet heeft:",
"ifHaveApp": "Als u de app al heeft:",
"joinInApp": "Neem deel aan de vergadering met de app",
"launchWebButton": "Starten via web",
"openApp": "Doorgaan naar de app",
"title": "Uw vergadering wordt gestart in {{app}}…",
"tryAgainButton": "Opnieuw proberen op desktop"
},

View File

@@ -73,17 +73,17 @@
"DISCONNECTING": "Desconnexion en cors",
"ERROR": "Error",
"RECONNECTING": "Un problèma ret s'es produita. Reconnexion en cors...",
"LOW_BANDWIDTH": "",
"GOT_SESSION_ID": "",
"GET_SESSION_ID_ERROR": "",
"FETCH_SESSION_ID": ""
"LOW_BANDWIDTH": "La vidèo per {{displayName}} es estada copada per estalviar la banda passanta",
"GOT_SESSION_ID": "Obtencion de session-id... Fach",
"GET_SESSION_ID_ERROR": "Obténer lerror session-id: {{code}}",
"FETCH_SESSION_ID": "Obtencion de session-id..."
},
"connectionindicator": {
"address": "Adreça :",
"address": "Adreça :",
"bandwidth": "Benda passanta estimada :",
"bitrate": "Debit :",
"bridgeCount": "Nombre de servidor :",
"connectedTo": "Connectat a :",
"bitrate": "Debit :",
"bridgeCount": "Nombre de servidor : ",
"connectedTo": "Connectat a :",
"framerate": "Frequéncia imatge :",
"less": "Amagar lo detalh",
"localaddress": "Adreça locala :",
@@ -94,20 +94,20 @@
"packetloss": "Pèrda de paquets :",
"quality": {
"good": "Bona",
"inactive": "Inactiu",
"lost": "Perdut",
"nonoptimal": "Pas optimal",
"poor": "Marrit"
"inactive": "Inactiva",
"lost": "Perduda",
"nonoptimal": "Pas optimala",
"poor": "Marrida"
},
"remoteaddress": "Adreça distanta :",
"remoteaddress_plural": "Adreças distantas :",
"remoteport": "Pòrt distant :",
"remoteport": "Pòrt distant :",
"remoteport_plural": "Pòrts distants :",
"resolution": "Resolucion :",
"resolution": "Resolucion :",
"status": "Connexion :",
"transport": "Transpòrt :",
"transport_plural": "",
"e2e_rtt": ""
"transport_plural": "Transpòrts :",
"e2e_rtt": "E2E RTT:"
},
"dateUtils": {
"earlier": "Mai dora",
@@ -143,7 +143,7 @@
"liveStreaming": "Difusion en dirècte"
},
"allow": "Autorizar",
"alreadySharedVideoMsg": "Un autre participant parteja ja sa vidèo. Aquesta conferéncia permet pas quun partatge de vidèo a lencòp.",
"alreadySharedVideoMsg": "Un autre participant parteja ja sa vidèo. Aquesta conferéncia permet pas quun partatge de vidèo a lencòp.",
"alreadySharedVideoTitle": "Solament un partatge de vidèo a l'encòp es autorizat",
"applicationWindow": "Fenèstra de l'aplicacion",
"Back": "Retorn",
@@ -174,7 +174,7 @@
"enterDisplayName": "Volgatz picar vòstre nom aquí",
"error": "Error",
"externalInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran.",
"externalInstallationTitle": "Extension requesida :",
"externalInstallationTitle": "Extension requesida",
"goToStore": "Anar al webstore",
"gracefulShutdown": "Lo servici es actualament en mantenença. Ensajatz tornamai pus tard.",
"IamHost": "Soi lòste",
@@ -182,7 +182,7 @@
"incorrectPassword": "Nom de compte o senhal incorrècte",
"inlineInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran.",
"inlineInstallExtension": "Installar ara",
"internalError": "Òu ! Quicòm a pas foncionat. L'error seguenta s'es producha : {{error}}",
"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",
@@ -190,7 +190,7 @@
"kickParticipantTitle": "Forabandir aqueste participant?",
"kickTitle": "Ai! {{participantDisplayName}} vos a forabandit de la conferéncia",
"liveStreaming": "La difusion en dirècte es estada arrestada",
"liveStreamingDisabledForGuestTooltip": "Los convidats pòdon pas aviar una difusion en dirècte",
"liveStreamingDisabledForGuestTooltip": "Los convidats pòdon pas aviar una difusion en dirècte.",
"liveStreamingDisabledTooltip": "Difusion en dirècte desactivada.",
"lockMessage": "Impossible de verrolhar la conferéncia.",
"lockRoom": "Ajustar un $t(lockRoomPasswordUppercase) a la conferéncia",
@@ -198,10 +198,10 @@
"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 conferéncia es complèta. Contactatz lo proprietari de la conferéncia o tornatz ensajar mai tard.",
"maxUsersLimitReachedTitle": "Limita de participants maximum atenguda ",
"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 lordenador per tornar metre lo son del microfòn e ajustar son nivèl.",
"micNotSendingData": "Anatz als paramètres de lordenador 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ò.",
"micUnknownError": "Impossible d'utilizar lo microfòn per una rason desconeguda.",
@@ -210,7 +210,7 @@
"muteParticipantDialog": "Volètz vertadièrament copar lo son a aqueste participant ? Poiretz pas lo tornar la votz, mas eles pòdon restablir la comunicacion quand vòlgan.",
"muteParticipantTitle": "Copar lo micro als participants ?",
"Ok": "D'acòrdi",
"passwordLabel": "SENHAL",
"passwordLabel": "Aquesta conferéncia es estada barrada per un participant. Mercés de dintrar lo $t(lockRoomPassword) per la rejónher.",
"passwordNotSupported": "Ajustar un $t(lockRoomPassword) a una conferéncia es pas suportat.",
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) pas suportat",
"passwordRequired": "$t(lockRoomPasswordUppercase) requesit",
@@ -228,7 +228,7 @@
"remoteControlStopMessage": "La session de contraròtle alonhat es acabada !",
"remoteControlTitle": "Contraròtle a distància",
"Remove": "Suprimir",
"removePassword": "Suprimir lo",
"removePassword": "Suprimir lo $t(lockRoomPassword)",
"removeSharedVideoMsg": "Sètz segur que volètz suprimir vòstra vidèo partejada ?",
"removeSharedVideoTitle": "Suprimir la vidèo partejada",
"reservationError": "Error del sistèma de reservacion",
@@ -250,10 +250,10 @@
"shareVideoTitle": "Partejar una vidèo",
"shareYourScreen": "Partejar vòstre ecran",
"shareYourScreenDisabled": "Lo partiment decran es desactivat.",
"shareYourScreenDisabledForGuest": "Los convits pòdon pas partejar lecran",
"shareYourScreenDisabledForGuest": "Los convits pòdon pas partejar lecran.",
"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 !",
"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?",
@@ -269,16 +269,18 @@
"userPassword": "senhal utilizaire",
"WaitForHostMsg": "La conferéncia <b>{{room}}</b> a pas encara començat. Se sètz lòst volgatz ben vos identificar. Autrament esperatz quarribe lòste.",
"WaitForHostMsgWOk": "La conferéncia <b>{{room}}</b> a pas encara començat. Se sètz lòst volgatz ben clicar Ok per vos identificar. Autrament esperatz quarribe lòste.",
"WaitingForHost": "Òm pòt pas que partejar una vidèo a l'encòp",
"WaitingForHost": "En espèra de lòste...",
"Yes": "Òc",
"yourEntireScreen": "Vòstre ecran complet",
"screenSharingAudio": "",
"screenSharingAudio": "Partejar làudio",
"muteEveryoneStartMuted": "",
"muteEveryoneSelf": "",
"muteEveryoneTitle": "",
"muteEveryoneDialog": "",
"muteEveryoneElseTitle": "",
"muteEveryoneElseDialog": ""
"muteEveryoneElseTitle": "Copar lo son a totes levat {{whom}}?",
"muteEveryoneElseDialog": "",
"e2eeTitle": "Chiframent del cap a la fin",
"e2eeLabel": "Clau"
},
"dialOut": {
"statusMessage": "ara es {{status}}"
@@ -291,7 +293,7 @@
"bad": "Marrida",
"detailsLabel": "Digatz-nos-ne mai a prepaus daquò.",
"good": "Bona",
"rateExperience": "Mercés de donar una nòta a vòstra experiéncia.",
"rateExperience": "Mercés de donar una nòta a vòstra experiéncia",
"veryBad": "Fòrça marrida",
"veryGood": "Fòrça bona"
},
@@ -372,7 +374,7 @@
"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 ses producha pendent laccès al flux YouTube. Mercé densajar 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 la activada.",
"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 la activada.",
"expandedOff": "La difusion en dirècte es estada arrestada",
"expandedOn": "La conferéncia es difusada sus YouTube.",
"expandedPending": "La difusion en dirècte comença…",
@@ -385,15 +387,15 @@
"onBy": "{{name}} a començat la difusion en dirècte",
"pending": "Començar lo dirècte…",
"serviceName": "Servici de difusion en dirècte",
"signedInAs": "Sètz connectat coma :",
"signedInAs": "Sètz connectat coma :",
"signIn": "Se connectar amb Google",
"signInCTA": "Connectatz-vos o picatz la clau de vòstre flux YouTube.",
"signOut": "Se desconnectar",
"start": "Aviar una difusion en dirècte",
"streamIdHelp": "Ques aquò ?",
"unavailableTitle": "Difusion en dirècte indisponibla",
"googlePrivacyPolicy": "",
"youtubeTerms": ""
"googlePrivacyPolicy": "Politica de confidencialitat de Google",
"youtubeTerms": "Condicions dutilizacion de YouTube"
},
"localRecording": {
"clientState": {
@@ -434,13 +436,13 @@
"disconnected": "desconnectat",
"focus": "Focus de conferéncia",
"focusFail": "{{component}} es pas disponible - ensajatz tornamai dins {{ms}} sec",
"grantedTo": "Dreits moderator acordats a {{to}} !",
"grantedTo": "Dreches moderator acordats a {{to}} !",
"invitedOneMember": "{{name}} es estat convidat",
"invitedThreePlusMembers": "{{name}} e {{count}} autres son estats convidats",
"invitedTwoMembers": "{{first}} e {{second}} son estats convidats",
"kickParticipant": "{{kicked}} es estat expulsat per {{kicker}}",
"me": "Ieu",
"moderator": "Dreits moderator acordats !",
"moderator": "Dreches moderator acordats !",
"muted": "Avètz començat la conversacion en mut.",
"mutedTitle": "Sètz en mut !",
"mutedRemotelyTitle": "{{participantDisplayName}} vos a mes en silenci !",
@@ -451,12 +453,14 @@
"somebody": "Qualqu'un",
"startSilentTitle": "Avètz jonch sens cap de sortida àudio !",
"startSilentDescription": "Rejónher la conferéncia per activar làudio",
"suboptimalBrowserWarning": "Planhèm que vòstra experiéncia de la conferéncia siá pas de las bonas. Sèm a cercar de solucions per melhorar aquò, daquel temps, ensajatz un dels <a href='static/recommendedBrowsers.html' target='_blank'>navegators compatibles</a>.",
"suboptimalBrowserWarning": "Planhèm que vòstra experiéncia de la conferéncia siá pas de las bonas. Sèm a cercar de solucions per melhorar aquò, daquel temps, ensajatz un dels <a href='{{recommendedBrowserPageLink}}' target='_blank'>navegators compatibles</a>.",
"suboptimalExperienceTitle": "Avertiment del navegador",
"unmute": "Restablir lo son",
"newDeviceCameraTitle": "Nòva camèra detectada",
"newDeviceAudioTitle": "Nòu periferic àudio detectat",
"newDeviceAction": "Utilizar"
"newDeviceAction": "Utilizar",
"oldElectronClientDescription3": " ara!",
"oldElectronClientDescription2": "darrièra compilacion"
},
"passwordSetRemotely": "causit per qualqu'un mai",
"passwordDigitsOnly": "Fins a {{number}} chifras",
@@ -502,11 +506,11 @@
"onBy": "{{name}} a començat lenregistrament",
"pending": "Preparacion de lenregistrament de la conferéncia…",
"rec": "ENRG",
"serviceDescription": "Vòstre enregistrament serà salvagardat pel servici dedicat.",
"serviceDescription": "Vòstre enregistrament serà salvagardat pel servici dedicat",
"serviceName": "Servici denregistrament",
"signIn": "Connexion",
"signOut": "Se desconnectar",
"unavailable": "Ops! Lo {{serviceName}} es pas disponible pel moment. Sèm a reglar aqueste problèma. Mercés de tornar ensajar mai tard.",
"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"
},
"sectionList": {
@@ -514,7 +518,7 @@
},
"settings": {
"calendar": {
"about": "Lintegracion de {{appName}} amb vòstre calendièr permet daccedir dun biais segur als eveniments venents.",
"about": "Lintegracion de {{appName}} amb vòstre calendièr permet daccedir dun 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 laccès als eveniments del calendièr.",
@@ -523,7 +527,7 @@
"devices": "Periferics",
"followMe": "Tot lo mond me sèc",
"language": "Lenga",
"loggedIn": "Session a {{userName}}",
"loggedIn": "Session a {{name}}",
"moderator": "Moderator",
"more": "Mai",
"name": "Escais",
@@ -534,8 +538,8 @@
"startAudioMuted": "Començan totes sens son",
"startVideoMuted": "Començan totes sens vidèo",
"title": "Paramètres",
"speakers": "",
"microphones": ""
"speakers": "Naut-parlairs",
"microphones": "Microfòns"
},
"settingsView": {
"advanced": "Avançat",
@@ -554,19 +558,20 @@
"showAdvanced": "Mostrar los paramètres avançats",
"startWithAudioMuted": "Començar sens son",
"startWithVideoMuted": "Començar sens vièdo",
"version": "Version"
"version": "Version",
"alertCancel": "Anullar"
},
"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 daquesta conferéncia\n{{dialInfoPageUrl}}",
"mainText": "Copiatz lo ligam seguent per dintrar dins la conferéncia :\n{{roomUrl}}"
"mainText": "Copiatz lo ligam seguent per dintrar dins la conferéncia :\n{{roomUrl}}"
},
"speaker": "Nautparlaire",
"speaker": "Orator",
"speakerStats": {
"hours": "{{count}} oras",
"minutes": "{{count}} minutas",
"name": "Escais",
"seconds": "{{count}} segondas",
"speakerStats": "Estatisticas parladors",
"speakerStats": "Estatisticas orator",
"speakerTime": "Temps de paraula"
},
"startupoverlay": {
@@ -592,7 +597,7 @@
"hangup": "Quitar la sonada",
"help": "Ajuda",
"invite": "Convidar de monde",
"kick": "Exclure un participan ",
"kick": "Exclure un participant",
"localRecording": "Passar al panèl denregistraments locals",
"lockRoom": "Tirar/Metre lo senhal de la conferéncia",
"moreActions": "Passar al menú mai daccions",
@@ -616,7 +621,8 @@
"videomute": "Silenciar la vidèo",
"videoblur": "Enfoscar o non la vidèo",
"muteEveryone": "",
"moreOptions": ""
"moreOptions": "Mostrar mai dopcions",
"e2ee": "Chiframent del cap a la fin"
},
"addPeople": "Ajustar de monde a vòstra sonada",
"audioOnlyOff": "Desactivar lo mòde connexion febla",
@@ -644,8 +650,8 @@
"mute": "Mut / Actiu",
"noAudioSignalTitle": "I a pas cap de son en entrada del microfòn!",
"noAudioSignalDesc": "Savètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz de cambiar daparelh.",
"noAudioSignalDescSuggestion": "Savètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz dutilizar un dels aparelhs seguents:",
"openChat": "Dobrir la messatjariá ",
"noAudioSignalDescSuggestion": "Savètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz dutilizar un autre aparelh suggerit.",
"openChat": "Dobrir la messatjariá",
"pip": "Passar al mòde Picture-in-Picture",
"privateMessage": "Enviar un messatge privat",
"profile": "Modificar vòstre perfil",
@@ -659,7 +665,7 @@
"startScreenSharing": "Aviar lo partatge decran",
"startSubtitles": "Aviar los sostítols",
"stopScreenSharing": "Arrestar lo partatge decran",
"stopSubtitles": "Arrestar los sostítols ",
"stopSubtitles": "Arrestar los sostítols",
"stopSharedVideo": "Arrestar la vidèo Youtube",
"talkWhileMutedPopup": "Ensajatz de parlar ? Vòstre microfòn es copat.",
"tileViewToggle": "Activar/Desactivar la vista en mosaïc",
@@ -672,7 +678,8 @@
"noAudioSignalDialInLinkDesc": "",
"noAudioSignalDialInDesc": "",
"muteEveryone": "",
"moreOptions": ""
"moreOptions": "Autras opcions",
"e2ee": "Chiframent del cap a la fin"
},
"transcribing": {
"ccButtonTooltip": "Aviar / Arrestat los sostítols",
@@ -750,7 +757,7 @@
},
"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.",
"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 nòva conferéncia",
"roomNameAllowedChars": "Lo nom de la conferéncia deu pas conténer aqueles caractèrs : ?, &, :, ', \", %, #.",
"go": "Crear",
@@ -763,22 +770,34 @@
"recentListEmpty": "Vòstra lista de contactes recents es voida. Charratz amb vòstra còla e trobaretz totes vòstras conferéncias recentas aquí.",
"reducedUIText": "Benvengut a {{app}} !",
"roomname": "Sasissètz un nom de sala",
"roomnameHint": "Picatz lo nom o lURL 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. ",
"roomnameHint": "Picatz lo nom o lURL 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",
"terms": "Tèrmes",
"title": "Conferéncias vidèo securizadas amb plen de foncionalitats e complètament gratuitas",
"getHelp": ""
"getHelp": "Obténer dajuda"
},
"helpView": {
"header": ""
"header": "Centre dajuda"
},
"lonelyMeetingExperience": {
"youAreAlone": "",
"button": ""
},
"chromeExtensionBanner": {
"dontShowAgain": "",
"buttonText": "",
"installExtensionText": ""
"dontShowAgain": "Me mostrar pas mai aquò",
"buttonText": "Installar lextension Chrome",
"installExtensionText": "Installar lextension per lintegracion de Google Calendar e Office 365"
},
"prejoin": {
"or": "o",
"doNotShow": "Mostrar pas mai aquò",
"copyAndShare": "Copiar e partejar lo ligam de conferéncia",
"connectedWithAudioQ": "Sètz connectat amb làudio?",
"configuringDevices": "Parametratge dels aparelhs...",
"callMeAtNumber": "Sona-me a aqueste numèro:",
"callMe": "Sona-me",
"audioTrackError": "Creacion impossibla de la pista àudio.",
"audioOnlyError": "Error àudio:",
"audioAndVideoError": "Error àudio e vidèo:"
}
}

View File

@@ -780,6 +780,33 @@
"chromeExtensionBanner": {
"dontShowAgain": "Não me mostre isso de novo",
"buttonText": "Instalar extensão do Chrome",
"installExtensionText": "Instale a extensão par integração com Google Calendar e Office 365"
"installExtensionText": "Instale a extensão para integrar com Google Calendar e Office 365"
},
"lobby": {
"allow": "Permitir",
"backToKnockModeButton": "Sem senha, peça para se juntar",
"dialogTitle": "modo Lobby",
"disableDialogContent": "O modo Lobby 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 Lobby 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",
"invalidPassword": "Senha inválida",
"joiningMessage": "Você se juntará à conferência tão logo alguém aprove sua solicitação",
"joinWithPasswordMessage": "Tentando entrar com a senha, por favor aguarde...",
"joinRejectedMessage": "Sua solicitação de participação foi rejeitada pelo moderador.",
"joinTitle": "Junte-se à conferência",
"joiningTitle": "Pedindo para se juntar à conferência...",
"joiningWithPasswordTitle": "Participando com senha...",
"knockButton": "Peça para participar",
"knockTitle": "Alguém deseja participar da conferência",
"nameField": "Informe seu nome",
"passwordField": "Informe a senha da conferência",
"passwordJoinButton": "Solicitar",
"reject": "Rejeitar",
"toggleLabel": "Habilitar lobby"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -618,7 +618,7 @@
"show": "Показать крупным планом",
"speakerStats": "Вкл/Выкл статистику",
"tileView": "Вкл/Выкл плитку",
"toggleCamera": "Вкл/Выкл камеру",
"toggleCamera": "Переключить камеру",
"videomute": "Вкл/Выкл видео",
"muteEveryone": "Выкл. микрофон у всех",
"videoblur": "Вкл/Выкл размытие фона"

File diff suppressed because it is too large Load Diff

View File

@@ -21,7 +21,7 @@
"bluetooth": "Bluetooth",
"headphones": "Hörlurar",
"phone": "Telefon",
"speaker": "Talare",
"speaker": "Högtalare",
"none": "Inga ljudenheter tillgängliga"
},
"audioOnly": {
@@ -60,7 +60,7 @@
"fieldPlaceHolder": "Skriv ditt meddelande här"
},
"connectingOverlay": {
"joiningRoom": "Ansluter till mötet …"
"joiningRoom": "Ansluter till mötet…"
},
"connection": {
"ATTACHED": "Ansluten",
@@ -72,7 +72,7 @@
"DISCONNECTED": "Frånkopplad",
"DISCONNECTING": "Kopplar från",
"ERROR": "Fel",
"RECONNECTING": "Ett nätverksproblem uppstod. Återansluter...",
"RECONNECTING": "Ett nätverksproblem uppstod. Återansluter",
"LOW_BANDWIDTH": "Video för {{displayName}} har stängts av för att spara bandbredd",
"GOT_SESSION_ID": "Hämta sessions-id ... Klart",
"GET_SESSION_ID_ERROR": "Hämta sessions-id-fel: {{code}}",
@@ -169,7 +169,7 @@
"contactSupport": "Kontakta kundtjänst",
"copy": "Kopiera",
"dismiss": "Förkasta",
"displayNameRequired": "Hej, vilket är ditt namn?",
"displayNameRequired": "Hej, vad heter du?",
"done": "Klar",
"enterDisplayName": "Ange namn",
"error": "Fel",
@@ -242,7 +242,7 @@
"serviceUnavailable": "Tjänsten otillgänglig",
"sessTerminated": "Konferensen avslutades",
"Share": "Dela",
"shareVideoLinkError": "Skriv in en fungerande Youtube-länk.",
"shareVideoLinkError": "Skriv in en fungerande YouTube-länk.",
"shareVideoTitle": "Ta bort en delad video",
"shareYourScreen": "Dela din skärm",
"shareYourScreenDisabled": "Skärmdelning har inaktiverats.",
@@ -294,7 +294,7 @@
"incomingCall": {
"answer": "Svara",
"audioCallTitle": "Inkommande samtal",
"decline": "Förkasta",
"decline": "Avvisa",
"productLabel": "från Jitsi Meet",
"videoCallTitle": "Inkommande videosamtal"
},
@@ -429,11 +429,11 @@
"connectedTwoMembers": "{{first}} och {{second}} har gått med i mötet",
"disconnected": "frånkopplad",
"focus": "Konferensfokus",
"focusFail": "{{component}} inte tillgänglig - försöker igen om {{ms}} sek",
"focusFail": "{{component}} inte tillgänglig försöker igen om {{ms}} sek",
"grantedTo": "Moderatorsrättigheter tilldelat till {{to}}!",
"invitedOneMember": "",
"invitedThreePlusMembers": "",
"invitedTwoMembers": "",
"invitedOneMember": "{{name}} har bjudits in",
"invitedThreePlusMembers": "{{name}} och {{count}} andra har bjudits in",
"invitedTwoMembers": "{{first}} och {{second}} har bjudits in",
"kickParticipant": "{{kicked}} sparkades ut av {{kicker}}",
"me": "Jag",
"moderator": "Moderatorsrättigheter tilldelades!",
@@ -447,7 +447,7 @@
"somebody": "Någon",
"startSilentTitle": "Du gick med utan ljud aktiverat!",
"startSilentDescription": "Anslut till mötet igen för att aktivera ljud",
"suboptimalExperienceDescription": "Hmm... din upplevelse med {{appName}} kommer inte att bli särskilt bra. Vi försöker hitta sätt att förbättra det, men till dess använd en av <a href='{{recommendedBrowserPageLink}}' target='_blank'>de helt stödda webbläsarna</a>.",
"suboptimalExperienceDescription": "Hmm din upplevelse med {{appName}} kommer inte att bli särskilt bra. Vi försöker hitta sätt att förbättra det, men till dess använd en av <a href='{{recommendedBrowserPageLink}}' target='_blank'>de helt stödda webbläsarna</a>.",
"suboptimalExperienceTitle": "Webbläsarvarning",
"unmute": "Slå på mikrofonen",
"newDeviceCameraTitle": "Ny kamera hittad",
@@ -457,20 +457,20 @@
},
"passwordSetRemotely": "satt av en annan deltagare",
"passwordDigitsOnly": "",
"poweredby": "drivs av",
"poweredby": "drivs med",
"presenceStatus": {
"busy": "Upptagen",
"calling": "Ringer …",
"calling": "Ringer…",
"connected": "Ansluten",
"connecting": "Ansluter …",
"connecting2": "Ansluter* ...",
"connecting": "Ansluter…",
"connecting2": "Ansluter*",
"disconnected": "Frånkopplad",
"expired": "Utgången",
"ignored": "Ignorerad",
"initializingCall": "Startar samtal …",
"initializingCall": "Startar samtal…",
"invited": "Inbjuden",
"rejected": "Avvisad",
"ringing": "Ringer …"
"ringing": "Ringer…"
},
"profile": {
"setDisplayNameLabel": "Ange ditt visningsnamn",
@@ -480,21 +480,21 @@
},
"recording": {
"authDropboxText": "Ladda upp till Dropbox",
"availableSpace": "Tillgängligt utrymme: {{spaceLeft}} MB (ungefär {{duration}} minuters inspelning)",
"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",
"error": "Inspelningen misslyckades. Försök igen.",
"expandedOff": "Inspelningen har avslutats",
"expandedOn": "Mötet spelas nu in.",
"expandedPending": "Inspelningen påbörjas …",
"expandedPending": "Inspelningen påbörjas…",
"failedToStart": "Inspelningen kunde inte påbörjas",
"fileSharingdescription": "Dela inspelningen med mötesdeltagare",
"live": "LIVE",
"loggedIn": "Inloggad som {{userName}}",
"off": "Inspelningen avslutades",
"on": "Inspelning",
"pending": "Förbereder inspelning av mötet …",
"pending": "Förbereder inspelning av mötet…",
"rec": "REC",
"serviceDescription": "Din inspelning kommer att sparas av inspelningstjänsten",
"serviceName": "Inspelningstjänst",
@@ -530,8 +530,8 @@
"startAudioMuted": "Alla börjar tystade",
"startVideoMuted": "Alla börjar osynliga",
"title": "Inställningar",
"speakers": "Talare",
"microphones": ""
"speakers": "Högtalare",
"microphones": "Mikrofoner"
},
"settingsView": {
"alertOk": "OK",
@@ -550,7 +550,7 @@
"disableCallIntegration": "Tillåt inte deltagande via telefon",
"showAdvanced": "Visa avancerade inställningar",
"disableP2P": "",
"advanced": ""
"advanced": "Avancerat"
},
"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}}",
@@ -558,10 +558,10 @@
},
"speaker": "Talare",
"speakerStats": {
"hours": "{{count}}h",
"minutes": "{{count}}m",
"hours": "{{count}} h",
"minutes": "{{count}} m",
"name": "Namn",
"seconds": "{{count}}s",
"seconds": "{{count}} s",
"speakerStats": "Talarstatistik",
"speakerTime": "Talartid"
},
@@ -582,7 +582,7 @@
"cc": "Slå av eller på undertexter",
"chat": "Öppna eller stäng chattfönster",
"document": "Öppna eller stäng delat dokument",
"feedback": "Lämna feedback",
"feedback": "Lämna återkoppling",
"fullScreen": "Öppna eller stäng fullskärm",
"hangup": "Lämna samtalet",
"invite": "Bjud in andra",
@@ -611,8 +611,8 @@
"muteEveryone": "Tysta alla",
"toggleFilmstrip": "",
"privateMessage": "",
"moreOptions": "",
"help": "",
"moreOptions": "Visa fler alternativ",
"help": "Hjälp",
"download": ""
},
"addPeople": "Lägg till personer i samtal",
@@ -620,7 +620,7 @@
"audioOnlyOn": "Starta ljudläget",
"audioRoute": "Välj ljudenhet",
"authenticate": "Autentisera",
"callQuality": "",
"callQuality": "Hantera videokvalitet",
"chat": "Öppna / stäng chatten",
"closeChat": "Stäng chatt",
"documentClose": "Stäng delat dokument",
@@ -629,7 +629,7 @@
"enterTileView": "Öppna panelvy",
"exitFullScreen": "Stäng fullskärm",
"exitTileView": "Stäng panelvy",
"feedback": "Lämna feedback",
"feedback": "Lämna återkoppling",
"hangup": "Lämna",
"invite": "Bjud in andra",
"login": "Logga in",
@@ -643,7 +643,7 @@
"raiseHand": "Räck upp / ta ner din hand",
"raiseYourHand": "Räck upp handen",
"Settings": "Inställningar",
"sharedvideo": "Dela en Youtube-video",
"sharedvideo": "Dela en YouTube-video",
"shareRoom": "Bjud in någon",
"shortcuts": "Visa genvägar",
"speakerStats": "Talarstatistik",
@@ -658,7 +658,7 @@
"videomute": "Aktivera / avaktivera kameran",
"startvideoblur": "Blurra min bakgrund",
"stopvideoblur": "Inaktivera bakgrundsblurr",
"noisyAudioInputDesc": "Din mikrofon skapar brus, tysta din mikrofon eller byt ljudenhet.",
"noisyAudioInputDesc": "Din mikrofon skapar brus, tysta din mikrofon eller byt ljudenhet!",
"noAudioSignalTitle": "Det kommer inget ljud från din mikrofon!",
"muteEveryone": "Tysta alla",
"privateMessage": "Skicka privat meddelande",
@@ -710,15 +710,15 @@
"audioOnlyExpanded": "Du använder ljudläget. Läget sparar bandbredd men du kan inte se andras videor.",
"callQuality": "Videokvalitet",
"hd": "HD",
"highDefinition": "High definition",
"highDefinition": "Hög upplösning",
"labelTooiltipNoVideo": "Ingen video",
"labelTooltipAudioOnly": "Enbart ljud-läge aktiverat",
"labelTooltipAudioOnly": "Läge med enbart ljud aktiverat",
"ld": "LD",
"lowDefinition": "Low definition",
"lowDefinition": "Låg upplösning",
"onlyAudioAvailable": "Enbart ljud tillgängligt",
"onlyAudioSupported": "Vi stöder bara ljud i denna webbläsare.",
"sd": "SD",
"standardDefinition": "Standard definition",
"standardDefinition": "Normal upplösning",
"ldTooltip": "",
"hdTooltip": ""
},
@@ -738,7 +738,7 @@
"join": "Tryck för att gå med",
"roomname": "Skriv in rumsnamn"
},
"appDescription": "Sätt igång, videochatta med hela gruppen. Bjud in alla du känner. {{app}} är en helt krypterad , open source videokonferenslösning som du kan använda obegränsat utan kostnad inte ens ett användarkonto behövs.",
"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"
@@ -758,7 +758,7 @@
"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",
"terms": "Termer",
"terms": "Villkor",
"title": "Säkra, välutrustade och helt kostnadsfria videokonferenser",
"roomNameAllowedChars": "Mötesnamn kan inte innehålla dessa tecken: ?, &,:, ', \",%, #.",
"getHelp": "",
@@ -767,8 +767,8 @@
"defaultNickname": "till exempel Julia Eriksson",
"chromeExtensionBanner": {
"dontShowAgain": "Visa inte det här igen",
"buttonText": "Installera Chrome-utökningen",
"installExtensionText": "Installera utökning för Google Kalender och integrationen av Office 365"
"buttonText": "Installera Chrome-tillägg",
"installExtensionText": "Installera tillägget för integration med Google Kalender och Office 365"
},
"documentSharing": {
"title": ""

View File

@@ -1,19 +1,33 @@
{
"addPeople": {
"add": "Davet et",
"addContacts": "Kişilerinizi davet edin",
"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",
"footerText": "Dış arama devre dışı.",
"loading": "Kişiler ve telefon numaraları aranıyor..",
"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ı",
"loading": "Kişiler ve telefon numaraları aranıyor...",
"loadingNumber": "Telefon numarası doğrulanıyor",
"loadingPeople": "Davet edilecek kişi aranıyor",
"noResults": "Eşleşen sonuç bulunamadı",
"noValidNumbers": "Lütfen bir telefon numarası girin",
"outlookEmail": "Outlook Email",
"searchNumbers": "Telefon numarası ekle",
"searchPeople": "Kişi ara",
"searchPeopleAndNumbers": "Kişi arayın veya telefon numarası ekleyin",
"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",
"telephone": "Telefon numarası: {{number}}",
"title": "Bu toplantıya kişi davet edin"
},
@@ -22,13 +36,13 @@
"headphones": "Kulaklık",
"phone": "Telefon",
"speaker": "Konuşmacı",
"none": "Ses cihazı yok"
"none": "Geçerli Ses cihazı yok"
},
"audioOnly": {
"audioOnly": "Düşük bant genişliği"
},
"calendarSync": {
"addMeetingURL": "Toplantı bağlantısı ekle",
"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ı.",
@@ -47,20 +61,22 @@
},
"chat": {
"error": "Hata: mesajınız gönderilmedi. Gerekçe: {{error}}",
"fieldPlaceHolder": "Mesajınızı buraya yazın",
"messagebox": "Bir mesaj yazın",
"messageTo": "{{recipient}} adlı kişiye özel mesaj",
"noMessagesMessage": "Toplantıda henüz mesaj yok. Burada bir konuşma başlatın!",
"nickname": {
"popover": "Bir takma ad seçin",
"title": "Sohbette kullanmak için bir takma ad girin"
},
"privateNotice": "{{recipient}} için özel mesaj",
"title": "Sohbet",
"you": "sen",
"privateNotice": "{{recipient}} için özel mesaj",
"noMessagesMessage": "Toplantıda henüz mesaj yok. Buradan bir konuşma başlatın!",
"messageTo": "{{recipient}} için özel mesaj",
"fieldPlaceHolder": "Mesajınızı buraya yazın"
},
"connectingOverlay": {
"joiningRoom": "Toplantınıza bağlanılıyor.."
"joiningRoom": "Toplantıya bağlanılıyor..."
},
"connection": {
"ATTACHED": "Eklenmiş",
@@ -70,7 +86,7 @@
"CONNECTING": "Bağlanıyor",
"CONNFAIL": "Bağlantı başarısız",
"DISCONNECTED": "Bağlantı kesildi",
"DISCONNECTING": "Bağlantı kesildi",
"DISCONNECTING": "Bağlantı kesiliyor",
"ERROR": "Hata",
"RECONNECTING": "Bir bağlantı hatası oluştu. Tekrar bağlanıyor...",
"LOW_BANDWIDTH": "Bant genişliğinden tasarruf etmek için {{displayName}} kişisinin videosu kapatıldı",
@@ -83,7 +99,7 @@
"bandwidth": "Tahmini bant genişliği:",
"bitrate": "Bit hızı:",
"bridgeCount": "Sunucu sayısı: ",
"connectedTo": "Bağlandı:",
"connectedTo": "Bağlandı şuna:",
"framerate": "Çerçeve hızı:",
"less": "Daha az göster",
"localaddress": "Yerel adres:",
@@ -117,8 +133,11 @@
"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ıın.",
"descriptionWithoutWeb": "",
"descriptionWithoutWeb": "Hiçbir şey olmadı? Toplantınızı {{app}} masaüstü uygulamasında başlatmayı denedik.",
"downloadApp": "Uygulamayı indir",
"ifDoNotHaveApp": "Henüz uygulamanız yoksa:",
"ifHaveApp": "Uygulamanız zaten varsa: ",
"joinInApp": "Uygulamayı kullanarak bu toplantıya katıl",
"launchWebButton": "Web'de aç",
"openApp": "Uygulamaya devam et",
"title": "Toplantınız {{app}} uygulamasında açılıyor...",
@@ -134,20 +153,22 @@
"deviceSelection": {
"noPermission": "İzin alınamadı",
"previewUnavailable": "Önizleme mevcut değil",
"selectADevice": "Cihaz seç",
"selectADevice": "Bir cihaz seç",
"testAudio": "Bir test sesi çal"
},
"dialog": {
"accessibilityLabel": {
"liveStreaming": "Canlı akış"
},
"add": "Ekle",
"allow": "İzin ver",
"alreadySharedVideoMsg": "Başka zaten bir video paylaşıyor. Bu toplantı aynı anda yalnızca bir paylaşılan videoya izin veriyor.",
"alreadySharedVideoTitle": "Yalnızca bir paylaşılan videoya izin veriliyor",
"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",
"Back": "Geri",
"cameraConstraintFailedError": "Kameranız gerekli bazı özellikleri karşılayamıyor.",
"cameraNotFoundError": "Kamera bulunamadı",
"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.",
@@ -155,9 +176,9 @@
"cameraUnsupportedResolutionError": "Kameranız gerekli video çözünürlüğünü desteklemiyor.",
"Cancel": "İptal",
"close": "Kapat",
"conferenceDisconnectMsg": "Ağ bağlantınızı kontrol etmek isteyebilirsiniz. {{seconds}} saniye içinde yeniden bağlanıyor ...",
"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 ...",
"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",
@@ -168,27 +189,28 @@
"contactSupport": "Destek ekibine erişin",
"copy": "Kopyala",
"dismiss": "Son ver",
"displayNameRequired": "Görünür ad gerekli",
"displayNameRequired": "Merhaba, görünmesini istediğin ismin nedir?",
"done": "Bitti",
"enterDisplayName": "Lütfen bir görünür ad girin",
"enterDisplayName": "Lütfen adınızı buraya girin...",
"error": "Hata",
"externalInstallationMsg": "Masaüstü paylaşım uzantımızı yüklemeniz gerekmektedir.",
"externalInstallationTitle": "Uzantı gerekli",
"goToStore": "Mağazaya git",
"gracefulShutdown": "Hizmetimiz şu anda bakım için devre dışı. Lütfen daha sonra tekrar deneyiniz.",
"IamHost": "Toplantı sahibiyim",
"incorrectRoomLockPassword": "",
"incorrectRoomLockPassword": "Yanlış paralo",
"incorrectPassword": "Kullanıcı adı veya parola hatalı",
"inlineInstallationMsg": "Masaüstü paylaşım uzantımızı yüklemeniz gerekmektedir.",
"inlineInstallExtension": "Şimdi yükle",
"internalError": "Hata! Bir şeyler ters gitti. Şu hata oluştu: {{error}}",
"internalErrorTitle": "İç hata",
"kickMessage": "Ah! Toplantıdan çıkarıldınız!",
"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": "Toplantıdan çıkarıldı",
"kickTitle": "Ah! {{participantDisplayName}} sizi toplantıdan çıkardı.",
"liveStreaming": "Canlı akış",
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Kayıt etkinken mümkün değil",
"liveStreamingDisabledForGuestTooltip": "Konuklar canlı akışa başlayamaz.",
"liveStreamingDisabledTooltip": "Canlı akışı başlatma devre dışı.",
"lockMessage": "Toplantı kilitlenemedi.",
@@ -201,21 +223,22 @@
"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",
"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.",
"micUnknownError": "Bilinmeyen bir nedenden dolayı mikrofon kullanılamıyor.",
"muteParticipantBody": "Bunların sesini açamazsınız, ancak istedikleri zaman kendileri seslerini açabilirler.",
"muteParticipantBody": "Sesi açamazsınız, ancak istedikleri zaman kendileri seslerini açabilirler.",
"muteParticipantButton": "Sustur",
"muteParticipantDialog": "Bu katılımcının sesini kapatmak istediğinizden emin misiniz? Bunların sesini açamazsınız, ancak istedikleri zaman kendileri seslerini açabilirler.",
"muteParticipantDialog": "Bu katılımcının sesini kapatmak istediğinizden emin misiniz? Sesini açamazsınız, ancak istedikleri zaman kendileri seslerini açabilirler.",
"muteParticipantTitle": "Bu katılımcı susturulsun mu?",
"Ok": "Tamam",
"passwordLabel": "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",
"popupError": "Tarayıcınız bu siteden açılan pencereleri engelliyor. Lütfen tarayıcınızın güvenlik ayarlarından açılır pencereleri etkinleştirin ve tekrar deneyin.",
"popupErrorTitle": "Açılır pencere engellendi",
"recording": "Kaydediliyor",
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Canlı akış etkinken mümkün değil...",
"recordingDisabledForGuestTooltip": "Misafirler kayıt etmeye başlayamaz.",
"recordingDisabledTooltip": "Kaydetmeye başlama devre dışı.",
"rejoinNow": "Tekrar katıl",
@@ -227,18 +250,23 @@
"remoteControlStopMessage": "Uzaktan kontrol oturumu sona erdi!",
"remoteControlTitle": "Uzak masaüstü kontrolü",
"Remove": "Kaldır",
"removePassword": "Şifreyi kaldır",
"removePassword": "Parolayı kaldır",
"removeSharedVideoMsg": "Paylaşılan videonuzu kaldırmak istediğinizden emin misiniz?",
"removeSharedVideoTitle": "Paylaşılan videoyu kaldır",
"reservationError": "Rezervasyon sistemi hatası",
"reservationErrorMsg": "Hata kodu: {{code}}, mesaj: {{msg}}",
"retry": "Yeniden Dene",
"screenSharingAudio": "Sesi paylaş",
"screenSharingFailedToInstall": "Hata! Ekran paylaşım uzantınız yüklenemedi.",
"screenSharingFailedToInstallTitle": "Ekran paylaşım uzantısı yüklenemedi",
"screenSharingFirefoxPermissionDeniedError": "Ekranınızı paylaşmaya çalışırken bir şeyler ters gitti. Lütfen bize izin verdiğinizden emin olun.",
"screenSharingFirefoxPermissionDeniedTitle": "Hata! Ekran paylaşımına başlayamadık!",
"screenSharingPermissionDeniedError": "Hata! Ekran paylaşma uzantısı izinlerinizle ilgili bir sorun oluştu. Lütfen yeniden yükleyin ve tekrar deneyin.",
"serviceUnavailable": "Hizmet kullanılamıyor",
"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ı",
"Share": "Paylaş",
"shareVideoLinkError": "Lütfen doğru bir Youtube bağlantısı sağlayın.",
@@ -261,7 +289,7 @@
"tokenAuthFailedTitle": "Kimlik doğrulama başarısız",
"transcribing": "Deşifre ediliyor",
"unlockRoom": "Toplantı parolasını kaldır",
"userPassword": "kullancı parolası",
"userPassword": "Kullancı parolası",
"WaitForHostMsg": "<b>{{room}}</b> toplantısı henüz başlamadı. Toplantı sahibi sizseniz, lütfen kimlik doğrulaması yapın. Değilseniz lütfen toplantı sahibinin gelmesini bekleyin.",
"WaitForHostMsgWOk": "<b>{{room}}</b> toplantısı henüz başlamadı. Toplantı sahibi sizseniz, kimlik doğrulaması için Tamam butonuna basın. Değilseniz lütfen toplantı sahibinin gelmesini bekleyin.",
"WaitingForHost": "Toplantı sahibi bekleniyor...",
@@ -271,6 +299,16 @@
"dialOut": {
"statusMessage": "şimdi {{status}}"
},
"documentSharing": {
"title": "Paylaşılan Döküman"
},
"e2ee": {
"labelToolTip": "Bu görüşmedeki ses ve video iletişimi uçtan uca şifrelenmiştir."
},
"feedback": {
"average": "Orta",
"bad": "Kötü",
@@ -289,8 +327,8 @@
},
"info": {
"accessibilityLabel": "Bilgiyi göster",
"addPassword": "Şifre ekle",
"cancelPassword": "Şifreyi iptal et",
"addPassword": "Parola ekle",
"cancelPassword": "Parolayı iptal et",
"conferenceURL": "Bağlantı:",
"country": "Ülke",
"dialANumber": "Toplantınıza katılmak için bu numaralardan birini çevirin ve ardından kodu girin.",
@@ -312,7 +350,7 @@
"noPassword": "Yok",
"noRoom": "Aranacak oda belirtilmedi.",
"numbers": "Arama Numaraları",
"password": "Şifre:",
"password": "Parola:",
"title": "Paylaş",
"tooltip": "Bu toplantı için bağlantıyı ve arama bilgilerini paylaşın",
"label": "Toplantı bilgileri"
@@ -329,10 +367,10 @@
"msg": "Biraz tökezledik.",
"retry": "Tekrar dene",
"support": "Destek",
"supportMsg": "Bu olmaya devam ederse, ulaşın"
"supportMsg": "Bu olmaya devam ederse, ulaşın."
},
"keyboardShortcuts": {
"focusLocal": "Videoma odaklan",
"focusLocal": "Videoya odaklan",
"focusRemote": "Başka bir kişinin videosuna odaklan",
"fullScreen": "Tam ekran görüntüle veya çık",
"keyboardShortcuts": "Klavye kısayolları",
@@ -345,7 +383,9 @@
"toggleFilmstrip": "Video önizlemelerini 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"
"videoMute": "Kamerayı aç veya kapat",
"videoQuality": "Çağrı kalitesini yönetin"
},
"liveStreaming": {
"busy": "Akış kaynaklarını serbest bırakmaya çalışıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.",
@@ -364,7 +404,9 @@
"getStreamKeyManually": "Canlı akış alınamadı. Canlı akış anahtarınızı Youtube'dan almayı deneyin.",
"invalidStreamKey": "Canlı akış anahtarı yanlış olabilir.",
"off": "Canlı Akış durduruldu",
"offBy": "{{name}} canlı akışı durdurdu",
"on": "Canlı Akış",
"onBy": "{{name}} canlı akışı başlattı",
"pending": "Canlı Akış başlatılıyor...",
"serviceName": "Canlı Akış hizmeti",
"signedInAs": "Şu anda oturum açmış durumdasınız:",
@@ -373,7 +415,10 @@
"signOut": ıkış yap",
"start": "Bir canlı akış başlat",
"streamIdHelp": "Bu nedir?",
"unavailableTitle": "Canlı Akış kullanılamıyor"
"unavailableTitle": "Canlı Akış kullanılamıyor",
"youtubeTerms": "YouTube hizmet şartları",
"googlePrivacyPolicy": "Google Gizlilik Politikası"
},
"localRecording": {
"clientState": {
@@ -424,23 +469,64 @@
"muted": "Görüşmeye sesiniz kapalı olarak başladınız.",
"mutedTitle": "Sesiniz kapalı!",
"mutedRemotelyTitle": "{{participantDisplayName}} tarafından sessize alındınız!",
"mutedRemotelyDescription": "",
"passwordRemovedRemotely": "",
"passwordSetRemotely": "",
"raisedHand": "{{name}} konuşmak istiyor.",
"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.",
"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ı",
"raisedHand": "{{name}} söz hakkı istiyor.",
"somebody": "Birisi",
"startSilentTitle": "",
"startSilentDescription": "",
"suboptimalExperienceDescription": "Mmm... {{appName}} ile olan deneyiminizin burada çok iyi olmayacağından korkuyoruz. Bunu iyileştirmenin yollarını arıyoruz, ancak o zamana kadar lütfen şunlardan birini deneyin: <a href='{{recommendedBrowserPageLink}}' target='_blank'>fully supported browsers</a>.",
"startSilentTitle": "Ses çıkışı olmadan bağlandınız",
"startSilentDescription": "Ses çıkışını açtıktan sonra tekrar bağlanın",
"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: <a href='{{recommendedBrowserPageLink}}' target='_blank'>desteklenen tarayıcılar</a>.",
"suboptimalExperienceTitle": "Tarayıcı Uyarısı",
"unmute": "",
"unmute": "Sessizden çıkar",
"newDeviceCameraTitle": "Yeni kamera algılandı",
"newDeviceAudioTitle": "Yeni ses aygıtı algılandı",
"newDeviceAction": "Kullan"
"newDeviceAction": "Kullan",
"OldElectronAPPTitle": "Güvenlik açığı!",
"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!"
},
"passwordSetRemotely": "başka katılımcı tarafından ayarlandı",
"passwordDigitsOnly": "{{number}} rakama kadar",
"poweredby": "gücünün kaynağı",
"poweredby": "",
"prejoin": {
"audioAndVideoError": "Ses ve video hatası:",
"audioOnlyError": "Ses Hatası:",
"audioTrackError": "Ses parçası oluşturulamadı.",
"callMe": "Beni ara",
"callMeAtNumber": "Beni şu numaradan arayın:",
"configuringDevices": "Cihazlar yapılandırılıyor...",
"connectedWithAudioQ": "Sese bağlı mısınız?",
"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",
"errorStatusCode": "Dışarı arama hatası, durum kodu: {{status}}",
"errorValidation": "Numara doğrulanamadı",
"iWantToDialIn": "İçeri arama yapmak istiyorum",
"joinAudioByPhone": "Join with phone audio",
"joinMeeting": "Toplantıya katıl",
"joinWithoutAudio": "Ses olmadan katıl",
"initiated": "Çağrı başlatıldı",
"linkCopied": "Bağlantı panoya kopyalandı",
"lookGood": "Mikrofonunuz düzgün çalışıyor gibi görünüyor",
"or": "veya",
"calling": "Arama",
"startWithPhone": "Telefon sesiyle başlayın",
"screenSharingError": "Ekran paylaşma hatası:",
"videoOnlyError": "Video hatası:",
"videoTrackError": "Video izleme oluşturulamadı.",
"viewAllNumbers": "tüm numaraları görüntüle"
},
"presenceStatus": {
"busy": "Meşgul",
"calling": "Arıyor...",
@@ -461,7 +547,10 @@
"setEmailLabel": "Gravatar e-postanızı ayarlayın",
"title": "Profil"
},
"raisedHand": "Konuşmak ister misiniz?",
"recording": {
"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 <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
"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}}</3>.",
"authDropboxText": "Dropbox'a yükle",
"availableSpace": "Kullanılabilir alan: {{spaceLeft}} MB (yaklaşık {{duration}} dakika kayıt)",
"beta": "BETA",
@@ -489,6 +578,13 @@
"sectionList": {
"pullToRefresh": "Yenilemek için çekin"
},
"security": {
"about": "Toplantınıza bir şifre ekleyebilirsiniz. Katılımcıların toplantıya katılmasına izin verilmeden önce şifreyi girmeleri gerekecektir.",
"insecureRoomNameWarning": "Toplantı odası güvenli değil. Konferansınıza istenmeyen katılımcılar katılabilir.",
"securityOptions": "Güvenlik Seçenekleri"
},
"settings": {
"calendar": {
"about": "{{appName}} takvim entegrasyonu, yaklaşan etkinlikleri okuyabilmesi için takviminize güvenli bir şekilde erişmek için kullanılır.",
@@ -513,16 +609,23 @@
"title": "Ayarlar"
},
"settingsView": {
"advanced": "Gelişmiş",
"alertOk": "Tamam",
"alertCancel": "İptal",
"alertTitle": "Uyarı",
"alertURLText": "Girilen sunucu bağlantısı geçersiz",
"buildInfoSection": "Yapı Bilgisi",
"conferenceSection": "Toplantı",
"disableCallIntegration": "Yerel arama entegrasyonunu devre dışı bırak",
"disableP2P": "Peer-To-Peer modunu 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.",
"displayName": "Görünür ad",
"email": "E-posta",
"header": "Ayarlar",
"profileSection": "Profil",
"serverURL": "Sunucu Bağlantısı",
"showAdvanced": "Gelişmiş ayarları göster",
"startWithAudioMuted": "Ses kapalı başla",
"startWithVideoMuted": "Görüntü kapalı başla",
"version": "Versiyon"
@@ -557,17 +660,23 @@
"cc": "Altyazıları aç/kapat",
"chat": "Mesajlaşma penceresini aç/kapat",
"document": "Paylaşılan dokümanı aç/kapat",
"download": "Uygulamalarımızı indirin",
"e2ee": "Uçtan uca şifreleme",
"feedback": "Geri bildirim bırakın",
"fullScreen": "Tam ekranı aç/kapat",
"hangup": "Aramadan ayrıl",
"help": "Yardım",
"invite": "İnsanları davet et",
"kick": "Katılımcı çıkar",
"lobbyButton": "Lobi modunu etkinleştir / devre dışı bırak",
"localRecording": "Kayıt denetimlerini aç/kapat",
"lockRoom": "Toplantı parolasını aç/kapat",
"moreActions": "Diğer işlemler menüsünü aç/kapat",
"moreActionsMenu": "Diğer işlemler menüsü",
"mute": "Sesi aç/kapat",
"muteEveryone": "Herkesi sustur",
"pip": "Resim içinde Resim modunu aç/kapat",
"privateMessage": "Özel mesaj gönder",
"profile": "Profilinizi düzenleyin",
"raiseHand": "El kaldırmayı aç/kapat",
"recording": "Kaydetmeyi aç/kapat",
@@ -577,7 +686,7 @@
"shareRoom": "Birini davet et",
"shareYourScreen": "Ekran paylaşımını aç/kapat",
"shortcuts": "Kısayolları aç/kapat",
"show": "",
"show": "Sahnede göster",
"speakerStats": "Konuşmacı istatistiklerini aç/kapat",
"tileView": "Döşeme görünümünü aç/kapat",
"toggleCamera": "Kamerayı aç/kapat",
@@ -594,20 +703,35 @@
"closeChat": "Mesajlaşmayı kapat",
"documentClose": "Paylaşılan dokümanı kapat",
"documentOpen": "Paylaşılan dokümanı aç",
"download": "Uygulamalarımızı indirin",
"e2ee": "Uçtan uca şifreleme",
"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",
"hangup": "Ayrıl",
"help": "Yardım",
"invite": "Kişi davet et",
"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": "Mute everyone",
"noAudioSignalTitle": "Mikrofonunuzdan hiçbir giriş gelmiyor!",
"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": "",
"noAudioSignalDialInLinkDesc": "İçeri arama numaraları",
"noisyAudioInputTitle": "Mikrofonunuz gürültülü görünüyor!",
"noisyAudioInputDesc": "Mikrofonunuz gürültü yapıyor gibi görünüyor, lütfen cihazı kapatmayı veya değiştirmeyi düşünün.",
"openChat": "Mesajlaşmayı aç",
"pip": "Resim içinde Resim moduna gir",
"privateMessage": "Özel mesajgönder",
"profile": "Profilinizi düzenleyin",
"raiseHand": "Elinizi kaldırın/indirin",
"raiseYourHand": "Elinizi kaldırın",
@@ -671,21 +795,24 @@
"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",
"onlyAudioAvailable": "Yalnızca ses kullanılabilir",
"onlyAudioSupported": "Bu tarayıcıda yalnızca sesi destekliyoruz.",
"sd": "SD",
"sdTooltip": "Standart çözünürlüklü video görüntüleme",
"standardDefinition": "Standart çözünürlük"
},
"videothumbnail": {
"domute": "Sustur",
"domuteOthers": "Diğer herkesi sustur",
"flip": "Döndür",
"kick": ıkarıldı",
"moderator": "Yönetici",
"mute": "Katılımcı sessiz",
"muted": "Sessiz",
"remoteControl": "Uzaktan kontrol",
"show": "",
"show": "Sahnede göster",
"videomute": "Katılımcı kamerayı durdurdu"
},
"welcomepage": {
@@ -702,6 +829,9 @@
"connectCalendarButton": "Takviminizi bağlayın",
"connectCalendarText": "",
"enterRoomTitle": "Yeni bir toplantı başlat",
"getHelp": "Yardım alın",
"roomNameAllowedChars": "Toplantı adı şu karakterlerden hiçbirini içermemelidir: ?, &, :, ', \", %, #.",
"go": "GİT",
"join": "KATIL",
"info": "Bilgi",
@@ -714,13 +844,52 @@
"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",
"terms": "Kurallar",
"title": "Güvenli, tüm özelliklere erişimli ve tamamen ücretsiz görüntülü arama",
"getHelp": "Yardım alın"
"title": "Güvenli, tüm özelliklere erişimli ve tamamen ücretsiz görüntülü arama"
},
"lonelyMeetingExperience": {
"button": "Birilerini davet et",
"youAreAlone": "Toplantıdaki tek kişisiniz"
},
"helpView": {
"header": "Yardım Merkezi"
},
"defaultNickname": "örnek Jane Pink",
"chromeExtensionBanner": {
"dontShowAgain": "Bunu bir daha gösterme",
"buttonText": "Chrome Eklentisi'ni indirin",
"installExtensionText": "Google Takvim ve Office 365 entegrasyonu için uzantıyı yükleyin"
},
"lobby": {
"allow": "İzin ver",
"backToKnockModeButton": "Şifre yok, bunun yerine katılmayı isteyin",
"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": "Şifre 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ı şifresini girin",
"enterPasswordTitle": "Toplantıya katılmak için şifre girin",
"invalidPassword": "Geçersiz şifre",
"joiningMessage": "Birisi isteğinizi kabul eder etmez toplantıya katılacaksınız",
"joinWithPasswordMessage": "Şifre ile katılmaya çalışıyorsunuz lütfen bekleyin...",
"joinRejectedMessage": "Katılma isteğiniz bir moderatör tarafından reddedildi.",
"joinTitle": "Toplantıya katıl",
"joiningTitle": "Toplantıya katılma isteniyor...",
"joiningWithPasswordTitle": "Şifre ile katılıyor...",
"knockButton": "Katılmak için sor",
"knockTitle": "Birisi toplantıya katılmak istiyor",
"nameField": "Adınızı giriniz",
"passwordField": "Toplantı şifresini giriniz",
"passwordJoinButton": "Katıl",
"reject": "Reddet",
"toggleLabel": "Lobiyi etkinleştir"
}
}

View File

@@ -10,7 +10,7 @@
"loadingNumber": "Перевірка телефонного номера",
"loadingPeople": "Пошук людей для запрошення",
"noResults": "Нічого не знайдено",
"noValidNumbers": "Будь ласка, введіть номер телефону",
"noValidNumbers": "Будь ласка, зазначте номер телефону",
"searchNumbers": "Додати телефонні номери",
"searchPeople": "Пошук людей",
"searchPeopleAndNumbers": "Пошук людей або додавання їхніх телефонних номерів",
@@ -25,7 +25,7 @@
"none": "Не знайдено звукові пристрої"
},
"audioOnly": {
"audioOnly": "Лише звук"
"audioOnly": "Заощадження даних"
},
"calendarSync": {
"addMeetingURL": "Додати посилання на конференцію",
@@ -47,13 +47,13 @@
},
"chat": {
"error": "Помилка: ваше повідомлення не було відправлено. Причина: {{error}}",
"fieldPlaceHolder": "Введіть текст повідомлення",
"messagebox": "Введіть повідомлення",
"fieldPlaceHolder": "Текст повідомлення",
"messagebox": "Напишіть повідомлення",
"messageTo": "Приватне повідомлення для {{recipient}}",
"noMessagesMessage": "У цій конференції відсутні повідомлення. Будь ласка, почніть розмову тут.",
"nickname": {
"popover": "Зазначте ім'я",
"title": "Введіть ваше ім'я для чату"
"title": "Зазначте ваше ім'я для чату"
},
"privateNotice": "Приватне повідомлення для {{recipient}}",
"title": "Чат",
@@ -162,7 +162,7 @@
"cameraNotSendingDataTitle": "Відсутній доступ до камери",
"cameraPermissionDeniedError": "Відсутній доступ до камери. Ви можете брати участь у зустрічі, але вас ніхто не бачитиме. Натисніть на значок камери у адресному рядку браузера, щоби вирішити проблему.",
"cameraUnknownError": "Невідома помилка з доступу до камери.",
"cameraUnsupportedResolutionError": "Ваша камера не підтримує потрібну роздільну здатність для трансляції відео.",
"cameraUnsupportedResolutionError": "Ваша камера не підтримує потрібну роздільну здатність для передавання відео.",
"Cancel": "Скасувати",
"close": "Закрити",
"conferenceDisconnectMsg": "Будь ласка, перевірте з'єднання з мережею. Повторна спроба відновлення зв'язку відбудеться через {{seconds}} с.",
@@ -180,7 +180,11 @@
"dismiss": "Скасувати",
"displayNameRequired": "Вітання! Як вас звати?",
"done": "Готово",
"enterDisplayName": "Будь ласка, введіть ваше ім'я",
"e2eeDescription": "<p>Наскрізне шифрування зараз в режимі<strong>ТЕСТУВАННЯ</strong>. Будь ласка, перегляньте <a href='https://jitsi.org/blog/e2ee/' target='_blank'>цю публікацію</a> для докладної інформації.</p><br/><p>Зверніть увагу, що увімкнення наскрізного шифрування призведе до вимкнення таких служб на стороні сервера: запису, живої трансляції запису в онлайні та участі у конференції за допомогою вхідного телефонного дзвінка. Також, просимо звернути увагу, що приєднання до зустрічі в такому разі буде можливе лише з браузера, який має підтримувати потоки зі вставкою (insertable streams).</p>",
"e2eeLabel": "Ключ",
"e2eeTitle": "Наскрізне шифрування",
"e2eeWarning": "УВАГА: Схоже, що не всі учасники цієї зустрічі мають підтримку технології наскрізного шифрування. Якщо ви увімкнете цю функцію, то вони не зможуть ані чути, ані бачити вас.",
"enterDisplayName": "Будь ласка, зазначте ваше ім'я",
"error": "Помилка",
"externalInstallationMsg": "Вам потрібно встановити наше розширення для спільного доступу до стільниці.",
"externalInstallationTitle": "Потрібне розширення",
@@ -224,8 +228,8 @@
"muteParticipantButton": "Вимкнути звук",
"muteParticipantDialog": "Ви впевнені, що бажаєте вимкнути мікрофон цьому учасниківі? Ви не зможете знову його увімкнути - учасник має це зробити сам.",
"muteParticipantTitle": "Вимкнути мікрофон у цього учасника?",
"Ok": "Добре",
"passwordLabel": "Зустріч заблоковано учасником. Будь ласка, введіть $t(lockRoomPassword) для приєднання.",
"Ok": "Гаразд",
"passwordLabel": "Зустріч заблоковано учасником. Будь ласка, зазначте $t(lockRoomPassword) для приєднання.",
"passwordNotSupported": "Функція $t(lockRoomPassword) для конференції не підтримується.",
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) не підтримується",
"passwordRequired": "Потрібно $t(lockRoomPasswordUppercase)",
@@ -249,14 +253,14 @@
"reservationError": "Помилка системи резервування",
"reservationErrorMsg": "Код помилки: {{code}}, повідомлення: {{msg}}",
"retry": "Повторити",
"screenSharingAudio": "Поділитися аудіо",
"screenSharingFailedToInstall": "Помилка встановлення розширення для показу екрану.",
"screenSharingFailedToInstallTitle": "Розширення для показу екрану не встановлено",
"screenSharingAudio": "Поділитися зі звуком",
"screenSharingFailedToInstall": "Помилка встановлення розширення для демонстрації екрану.",
"screenSharingFailedToInstallTitle": "Розширення для демонстрації екрану не встановлено",
"screenSharingFirefoxPermissionDeniedError": "Щось пішло не так під час надання доступу до вашого екрану. Будь ласка, переконайтесь, що ви надали дозвіл для цього.",
"screenSharingFirefoxPermissionDeniedTitle": "Помилка показу екрану!",
"screenSharingPermissionDeniedError": "Помилка доступу до розширення для показа екрану. Будь ласка, оновіть вікно браузера та спробуйте ще раз.",
"sendPrivateMessage": "Ви нещодавно отримали приватне повідомлення. Чи ви бажаєте відповісти на нього або надіслати власне повідомлення групі?",
"sendPrivateMessageCancel": "Надіслати у спільний чат",
"sendPrivateMessageCancel": "Надіслати до спільного чату",
"sendPrivateMessageOk": "Надіслати приватне повідомлення",
"sendPrivateMessageTitle": "Надіслати приватне повідомлення?",
"serviceUnavailable": "Служба недоступна",
@@ -264,9 +268,9 @@
"Share": "Поділитися",
"shareVideoLinkError": "Будь ласка, зазначте правильне посилання в Youtube.",
"shareVideoTitle": "Поділитися відео",
"shareYourScreen": "Показати екран",
"shareYourScreen": "Демонстрація екрану",
"shareYourScreenDisabled": "Доступ до екрану вимкнено.",
"shareYourScreenDisabledForGuest": "Гості не можуть показувати свій екран",
"shareYourScreenDisabledForGuest": "Гості не можуть демонструвати свій екран",
"startLiveStreaming": "Почати трансляцію",
"startRecording": "Почати запис",
"startRemoteControlErrorMessage": "Помилка з активуванням сесії віддаленого керування!",
@@ -275,7 +279,7 @@
"stopRecordingWarning": "Ви впевнені, що потрібно зупинити запис?",
"stopStreamingWarning": "Ви впевнені, що потрібно зупинити трансляцію?",
"streamKey": "Ключ доступу до трансляції",
"Submit": "Добре",
"Submit": "Гаразд",
"thankYou": "Дякуємо, що користуєтеся {{appName}}!",
"token": "токен",
"tokenAuthFailed": "Перепрошуємо, у вас немає прав на приєднання до цієї конференції.",
@@ -284,7 +288,7 @@
"unlockRoom": "Прибрати $t(lockRoomPassword)",
"userPassword": "пароль користувача",
"WaitForHostMsg": "конференція <b>{{room}}</b> ще не почалася. Якщо ви є організатором, будь ласка, авторизуйтеся або дочекайтеся організатора.",
"WaitForHostMsgWOk": "конференція <b>{{room}}</b> ще не почалася. Якщо ви є організатором, будь ласка, натисніть \"Добре\" для авторизації або дочекайтеся організатора.",
"WaitForHostMsgWOk": "конференція <b>{{room}}</b> ще не почалася. Якщо ви є організатором, будь ласка, клацніть на кнопку \"Гаразд\" для авторизації або дочекайтеся організатора.",
"WaitingForHost": "Чекаємо на організатора...",
"Yes": "Так",
"yourEntireScreen": "Увесь екран"
@@ -294,6 +298,9 @@
},
"documentSharing": {
"title": "Спільний документ"
},
"e2ee": {
"labelToolTip": "Звук та відео у цьому виклику наскрізно шифруються"
},
"feedback": {
"average": "Середньо",
@@ -315,9 +322,9 @@
"accessibilityLabel": "Показати інформацію",
"addPassword": "Встановити $t(lockRoomPassword)",
"cancelPassword": "Зняти $t(lockRoomPassword)",
"conferenceURL": "Посилання:",
"conferenceURL": "URL:",
"country": "Країна",
"dialANumber": "Для приєднання до конференції, будь ласка, наберіть один з цих номерів та введіть pin-код",
"dialANumber": "Для приєднання до конференції, будь ласка, наберіть один з таких номерів та зазначте PIN-код",
"dialInConferenceID": "PIN:",
"dialInNotSupported": "На жаль, зараз набір номеру не підтримується.",
"dialInNumber": "Номер:",
@@ -360,14 +367,14 @@
"focusRemote": "Фокус на відео іншого учасника",
"fullScreen": "Показувати на увесь екран",
"keyboardShortcuts": "Комбінації клавіш",
"localRecording": "Показати чи приховати елементи керування відеозапису",
"localRecording": "Показувати чи приховувати інструменти керування відеозаписом",
"mute": "Приглушити мікрофон",
"pushToTalk": "Натисніть, щоб говорити",
"raiseHand": "Підняти руку",
"showSpeakerStats": "Показати статистику спікера",
"showSpeakerStats": "Показувати статистику спікера",
"toggleChat": "Показувати чат",
"toggleFilmstrip": "Показувати короткий опис",
"toggleScreensharing": "Поділитися екраном",
"toggleScreensharing": "Демонстрація екрану",
"toggleShortcuts": "Показувати клавіші швидкого доступу",
"videoMute": "Вимкнути камеру",
"videoQuality": "Якість зв'язку"
@@ -384,7 +391,7 @@
"errorLiveStreamNotEnabled": "Трансляцію не активовано для {{email}}. Будь ласка, активуйте трансляцію або увійдіть до облікового запису з активною трансляцією.",
"expandedOff": "Живу трансляцію зупинено",
"expandedOn": "Зараз ця конференція транслюється на YouTube.",
"expandedPending": "Починається жива трансляція..",
"expandedPending": "Починається жива трансляція.",
"failedToStart": "Помилка трансляції відео",
"getStreamKeyManually": "Живі трансляції не знайдено. Спробуйте отримати ключ живої трансляції від YouTube.",
"invalidStreamKey": "Схоже, що ключ живої трансляції неправильний.",
@@ -396,7 +403,7 @@
"serviceName": "Служба трансляції",
"signedInAs": "Ви увійшли до системи як:",
"signIn": "Увійти за допомогою Google",
"signInCTA": "Увійдіть або введіть ваш ключ трансляції YouTube.",
"signInCTA": "Увійдіть або зазначте ваш ключ трансляції YouTube.",
"signOut": "Вихід",
"start": "Почати трансляцію",
"streamIdHelp": "Допомога",
@@ -419,10 +426,10 @@
"localRecording": "Локальний запис",
"me": "Я",
"messages": {
"engaged": "Почався локальний запис.",
"engaged": "Ведеться локальний запис.",
"finished": "Запис сесії {{token}} завершено. Будь ласка, надішліть записаний файл модераторові.",
"finishedModerator": "Запис сесії {{token}} завершено та аудіозапис збережено. Будь ласка, попросіть інших учасників надати вам їхні записи.",
"notModerator": "Ви не є модератором й не можете починати чи зупиняти локальний запис."
"finishedModerator": "Запис сесії {{token}} завершено та запис збережено. Будь ласка, попросіть інших учасників надати вам їхні записи.",
"notModerator": "Ви не є модератором і не можете починати чи зупиняти локальний запис."
},
"moderator": "Модератор",
"no": "Ні",
@@ -464,7 +471,7 @@
"suboptimalExperienceTitle": "Повідомлення щодо доступу з браузера",
"unmute": "Увімкнути мікрофон",
"newDeviceCameraTitle": "Знайдено нову камеру",
"newDeviceAudioTitle": "Знайдено новий аудіопристрій",
"newDeviceAudioTitle": "Знайдено новий звуковий пристрій",
"newDeviceAction": "Використовувати"
},
"passwordSetRemotely": "встановлено іншим учасником",
@@ -486,7 +493,7 @@
},
"profile": {
"setDisplayNameLabel": "Ім'я на екрані",
"setEmailInput": "Введіть e-mail",
"setEmailInput": "Зазначте e-mail",
"setEmailLabel": "E-mail для Gravatar",
"title": "Профіль"
},
@@ -530,7 +537,7 @@
"title": "Календар"
},
"devices": "Пристрій",
"followMe": "Усі слідкуються за мною",
"followMe": "Усі слідкують за мною",
"language": "Мова",
"loggedIn": "Увійшов як {{name}}",
"microphones": "Мікрофони",
@@ -548,7 +555,7 @@
},
"settingsView": {
"advanced": "Додатково",
"alertOk": "Добре",
"alertOk": "Гаразд",
"alertTitle": "Увага",
"alertURLText": "Помилка адреси сервера",
"buildInfoSection": "Інформація про збірку",
@@ -590,12 +597,13 @@
"toolbar": {
"accessibilityLabel": {
"audioOnly": "Лише звук",
"audioRoute": "Вибрати аудіопристрій",
"audioRoute": "Вибрати звуковий пристрій",
"callQuality": "Якість зв'язку",
"cc": "Субтитри",
"chat": "Показувати вікно чату",
"document": "Закрити спільний документ",
"download": "Звантажити застосунок",
"e2ee": "Наскрізне шифрування",
"feedback": "Залишити відгук",
"fullScreen": "На весь екран",
"hangup": "Завершити виклик",
@@ -610,7 +618,7 @@
"mute": "Приглушити",
"muteEveryone": "Вимкнути мікрофони всім",
"pip": "Режим картинка-у-картинці",
"privateMessage": "Надіслати приватне повідомлення",
"privateMessage": "Приватне повідомлення",
"profile": "Редагувати профіль",
"raiseHand": "Підняти руку",
"recording": "Увімкнення запису",
@@ -618,7 +626,7 @@
"Settings": "Увімкнення меню налаштувань",
"sharedvideo": "Активація YouTube-трансляції",
"shareRoom": "Надіслати запрошення",
"shareYourScreen": "Показувати мій екран",
"shareYourScreen": "Демонструвати мій екран",
"shortcuts": "Показувати значки",
"show": "Показати з наближенням",
"speakerStats": "Показувати статистику",
@@ -631,7 +639,7 @@
"addPeople": "Додати учасників до конференції",
"audioOnlyOff": "Вимкнути режим заощадження трафіку",
"audioOnlyOn": "Увімкнути режим заощадження трафіку",
"audioRoute": "Вибрати аудіопристрій",
"audioRoute": "Вибрати звуковий пристрій",
"authenticate": "Авторизувати",
"callQuality": "Якість зв'язку",
"chat": "Чат",
@@ -668,20 +676,20 @@
"raiseHand": "Бажаю говорити",
"raiseYourHand": "Підняти руку",
"Settings": "Налаштування",
"sharedvideo": "Спільне відео",
"sharedvideo": "Поділитися відео",
"shareRoom": "Надіслати запрошення",
"shortcuts": "Комбінації клавіш",
"speakerStats": "Статистика",
"startScreenSharing": "Почати трансляцію з екрану",
"startScreenSharing": "Почати демонстрацію екрану",
"startSubtitles": "Показувати субтитри",
"stopScreenSharing": "Зупинити трансляцію з екрану",
"stopScreenSharing": "Зупинити демонстрацію екрану",
"stopSubtitles": "Вимкнути субтитри",
"stopSharedVideo": "Зупинити спільне відео",
"talkWhileMutedPopup": "Вас не чутно, хоча ви говорите.",
"tileViewToggle": "Перемкнути режим плиток",
"toggleCamera": "Перемкнути камеру",
"videomute": "Камера",
"startvideoblur": "Розмивати тло на відео",
"startvideoblur": "Розмивати тло",
"stopvideoblur": "Вимкнути розмиття тла"
},
"transcribing": {
@@ -697,19 +705,19 @@
"tr": "TR"
},
"userMedia": {
"androidGrantPermissions": "Виберіть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"chromeGrantPermissions": "Виберіть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"edgeGrantPermissions": "Виберіть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"androidGrantPermissions": "Клацніть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"chromeGrantPermissions": "Клацніть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"edgeGrantPermissions": "Клацніть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"electronGrantPermissions": "Будь ласка, надайте дозвіл на доступ до камери та мікрофона",
"firefoxGrantPermissions": "Виберіть <b><i>Поділитися вибраним пристроєм</i></b>, коли браузер надішле запит на надання дозволу.",
"iexplorerGrantPermissions": "Виберіть <b><i>Добре</i></b>, коли браузер надішле запит на надання дозволу.",
"firefoxGrantPermissions": "Клацніть <b><i>Поділитися вибраним пристроєм</i></b>, коли браузер надішле запит на надання дозволу.",
"iexplorerGrantPermissions": "Клацніть <b><i>Гаразд</i></b>, коли браузер надішле запит на надання дозволу.",
"nwjsGrantPermissions": "Будь ласка, надайте дозвіл на доступ до камери та мікрофона",
"operaGrantPermissions": "Виберіть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"react-nativeGrantPermissions": "Виберіть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"safariGrantPermissions": "Виберіть <b><i>Добре</i></b>, коли браузер надішле запит на надання дозволу."
"operaGrantPermissions": "Клацніть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"react-nativeGrantPermissions": "Клацніть <b><i>Дозволити</i></b>, коли браузер надішле запит на надання дозволу.",
"safariGrantPermissions": "Клацніть <b><i>Гаразд</i></b>, коли браузер надішле запит на надання дозволу."
},
"videoSIPGW": {
"busy": "Відсутні ресурси для трансляции. Будь ласка, спробуйте пізніше..",
"busy": "Відсутні ресурси для трансляції. Будь ласка, спробуйте пізніше.",
"busyTitle": "Ресурси для трансляції зайняті",
"errorAlreadyInvited": "{{displayName}} вже запрошено",
"errorInvite": "Зустріч ще не почалася. Будь ласка, спробуйте пізніше.",
@@ -719,8 +727,8 @@
"pending": "{{displayName}} було запрошено"
},
"videoStatus": {
"audioOnly": "Лише звук",
"audioOnlyExpanded": "Активовано режим заощадження трафіку. У цьому режимі доступно лише звук та трансляція екрану.",
"audioOnly": "ЗВУК",
"audioOnlyExpanded": "Активовано режим заощадження трафіку. У цьому режимі доступні лише звук та демонстрація екрану.",
"callQuality": "Якість відео",
"hd": "HD",
"hdTooltip": "Відео високої якості",
@@ -764,8 +772,8 @@
"enterRoomTitle": "Почати нову відеоконференцію",
"getHelp": "Отримати допомогу",
"roomNameAllowedChars": "Назва конференції не має містити такі символи: ?, &, :, ', \", %, #.",
"go": "Добре",
"goSmall": "Добре",
"go": "Гаразд",
"goSmall": "Гаразд",
"join": "Створити або приєднатися",
"info": "Інфо",
"privacy": "Приватність",

View File

@@ -138,8 +138,10 @@
"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": "Download the app",
"ifDoNotHaveApp": "If you don't have the app yet:",
"ifHaveApp": "If you already have the app:",
"joinInApp": "Join this meeting using the app",
"launchWebButton": "Launch in web",
"openApp": "Continue to the app",
"title": "Launching your meeting in {{app}}...",
"tryAgainButton": "Try again in desktop"
},
@@ -191,21 +193,19 @@
"dismiss": "Dismiss",
"displayNameRequired": "Hi! Whats your name?",
"done": "Done",
"e2eeDescription": "<p>End-to-End Encryption is currently <strong>EXPERIMENTAL</strong>. Please see <a href='https://jitsi.org/blog/e2ee/' target='_blank'>this post</a> for details.</p><br/><p>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.</p>",
"e2eeDescription": "End-to-End Encryption is currently EXPERIMENTAL. Please see <a href='https://jitsi.org/blog/e2ee/' target='_blank'>this post</a> for details. 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": "Key",
"e2eeNoKey": "None",
"e2eeTitle": "End-to-End Encryption",
"e2eeWarning": "<br /><p><strong>WARNING:</strong> 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.</p>",
"e2eeToggleSet": "Set key",
"e2eeSet": "Set",
"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": "Please enter your name here",
"error": "Error",
"externalInstallationMsg": "You need to install our desktop sharing extension.",
"externalInstallationTitle": "Extension required",
"goToStore": "Go to the webstore",
"gracefulShutdown": "Our service is currently down for maintenance. Please try again later.",
"IamHost": "I am the host",
"incorrectRoomLockPassword": "Incorrect password",
"incorrectPassword": "Incorrect username or password",
"inlineInstallationMsg": "You need to install our desktop sharing extension.",
"inlineInstallExtension": "Install now",
"internalError": "Oops! Something went wrong. The following error occurred: {{error}}",
"internalErrorTitle": "Internal error",
"kickMessage": "You can contact {{participantDisplayName}} for more details.",
@@ -214,6 +214,7 @@
"kickParticipantTitle": "Kick this participant?",
"kickTitle": "Ouch! {{participantDisplayName}} kicked you out of the meeting",
"liveStreaming": "Live Streaming",
"liveStreamingDisabledBecauseOfActiveRecordingTooltip": "Not possible while recording is active",
"liveStreamingDisabledForGuestTooltip": "Guests can't start live streaming.",
"liveStreamingDisabledTooltip": "Start live stream disabled.",
"lockMessage": "Failed to lock the conference.",
@@ -239,7 +240,7 @@
"muteParticipantButton": "Mute",
"muteParticipantDialog": "Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.",
"muteParticipantTitle": "Mute this participant?",
"Ok": "Ok",
"Ok": "OK",
"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",
@@ -247,6 +248,7 @@
"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",
"recording": "Recording",
"recordingDisabledBecauseOfActiveLiveStreamingTooltip": "Not possible while a live stream is active",
"recordingDisabledForGuestTooltip": "Guests can't start recordings.",
"recordingDisabledTooltip": "Start recording disabled.",
"rejoinNow": "Rejoin now",
@@ -265,11 +267,9 @@
"reservationErrorMsg": "Error code: {{code}}, message: {{msg}}",
"retry": "Retry",
"screenSharingAudio": "Share audio",
"screenSharingFailedToInstall": "Oops! Your screen sharing extension failed to install.",
"screenSharingFailedToInstallTitle": "Screen sharing extension failed to install",
"screenSharingFirefoxPermissionDeniedError": "Something went wrong while we were trying to share your screen. Please make sure that you have given us permission to do so.",
"screenSharingFirefoxPermissionDeniedTitle": "Oops! We werent able to start screen sharing!",
"screenSharingPermissionDeniedError": "Oops! Something went wrong with your screen sharing extension permissions. Please reload and try again.",
"screenSharingFailed": "Oops! Something went wrong, we werent able to start screen sharing!",
"screenSharingFailedTitle": "Screen sharing failed!",
"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": "Send to the group",
"sendPrivateMessageOk": "Send privately",
@@ -391,6 +391,8 @@
"videoQuality": "Manage call quality"
},
"liveStreaming": {
"limitNotificationDescriptionWeb": "Due to high demand your streaming will be limited to {{limit}} min. For unlimited streaming try <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
"limitNotificationDescriptionNative": "Your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.",
"busy": "We're working on freeing streaming resources. Please try again in a few minutes.",
"busyTitle": "All streamers are currently busy",
"changeSignIn": "Switch accounts.",
@@ -548,6 +550,8 @@
},
"raisedHand": "Would like to speak",
"recording": {
"limitNotificationDescriptionWeb": "Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try <a href={{url}} rel='noopener noreferrer' target='_blank'>{{app}}</a>.",
"limitNotificationDescriptionNative": "Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try <3>{{app}}</3>.",
"authDropboxText": "Upload to Dropbox",
"availableSpace": "Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)",
"beta": "BETA",
@@ -579,7 +583,7 @@
},
"security": {
"about": "You can add a passcode to your meeting. Participants will need to provide the passcode before they are allowed to join the meeting.",
"insecureRoomNameWarning": "The room name is insecure. Unwanted participants may join your conference.",
"insecureRoomNameWarning": "The room name is unsafe. Unwanted participants may join your conference. Consider securing your meeting using the security button.",
"securityOptions": "Security options"
},
"settings": {
@@ -667,6 +671,7 @@
"help": "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",
@@ -714,6 +719,8 @@
"hangup": "Leave",
"help": "Help",
"invite": "Invite people",
"lobbyButtonDisable": "Disable lobby mode",
"lobbyButtonEnable": "Enable lobby mode",
"login": "Login",
"logout": "Logout",
"lowerYourHand": "Lower your hand",
@@ -853,5 +860,32 @@
},
"helpView": {
"header": "Help center"
},
"lobby": {
"allow": "Allow",
"backToKnockModeButton": "No password, ask to join instead",
"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",
"invalidPassword": "Invalid password",
"joiningMessage": "You'll join the meeting as soon as someone accepts your request",
"joinWithPasswordMessage": "Trying to join with password, please wait...",
"joinRejectedMessage": "Your join request was rejected by a moderator.",
"joinTitle": "Join Meeting",
"joiningTitle": "Asking to join meeting...",
"joiningWithPasswordTitle": "Joining with password...",
"knockButton": "Ask to Join",
"knockTitle": "Someone wants to join the meeting",
"nameField": "Enter your name",
"passwordField": "Enter meeting password",
"passwordJoinButton": "Join",
"reject": "Reject",
"toggleLabel": "Enable lobby"
}
}

View File

@@ -6,19 +6,13 @@ i18next uses separate json files for each language.
Translating Jitsi Meet
======================
The translation of Jitsi Meet is integrated with Pootle. You can translate Jitsi Meet via our Pootle user interface on
[http://translate.jitsi.org](http://translate.jitsi.org).
**WARNING: Please don't create or edit manually the language files! Please use our Pootle user interface!**
The translation of Jitsi Meet is handled editing manually the language files.
Development
===========
If you want to add new functionality for Jitsi Meet and you have texts that need to be translated please use our translation module.
It is located in modules/translation. You must add key and value in main.json file in English for each translatable text.
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.
**WARNING: Please don't change the other language files except main.json! They must be updated and translated via our Pootle user interface!**
You can add translatable text in the HTML:

View File

@@ -1,28 +1,36 @@
// @flow
import Logger from 'jitsi-meet-logger';
import * as JitsiMeetConferenceEvents from '../../ConferenceEvents';
import {
createApiEvent,
sendAnalytics
} from '../../react/features/analytics';
import {
getCurrentConference,
sendTones,
setPassword,
setSubject
} from '../../react/features/base/conference';
import { parseJWTFromURLParams } from '../../react/features/base/jwt';
import { setE2EEKey } from '../../react/features/e2ee';
import { invite } from '../../react/features/invite';
import { toggleTileView } from '../../react/features/video-layout';
import { setVideoQuality } from '../../react/features/video-quality';
import { getJitsiMeetTransport } from '../transport';
import { muteAllParticipants } from '../../react/features/remote-video-menu/actions';
import { API_ID, ENDPOINT_TEXT_MESSAGE_NAME } from './constants';
import { JitsiRecordingConstants } from '../../react/features/base/lib-jitsi-meet';
import {
processExternalDeviceRequest
} from '../../react/features/device-selection/functions';
import { isEnabled as isDropboxEnabled } from '../../react/features/dropbox';
import { setE2EEKey } from '../../react/features/e2ee';
import { invite } from '../../react/features/invite';
import { RECORDING_TYPES } from '../../react/features/recording/constants';
import { getActiveSession } from '../../react/features/recording/functions';
import { muteAllParticipants } from '../../react/features/remote-video-menu/actions';
import { toggleTileView } from '../../react/features/video-layout';
import { setVideoQuality } from '../../react/features/video-quality';
import { getJitsiMeetTransport } from '../transport';
const logger = require('jitsi-meet-logger').getLogger(__filename);
import { API_ID, ENDPOINT_TEXT_MESSAGE_NAME } from './constants';
const logger = Logger.getLogger(__filename);
declare var APP: Object;
@@ -187,6 +195,114 @@ function initCommands() {
logger.debug('Set video quality command received');
sendAnalytics(createApiEvent('set.video.quality'));
APP.store.dispatch(setVideoQuality(frameHeight));
},
/**
* Starts a file recording or streaming depending on the passed on params.
* 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 { string } arg.mode - Recording mode, either `file` or `stream`.
* @param { string } arg.dropboxToken - Dropbox oauth2 token.
* @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 broacast ID.
* @returns {void}
*/
'start-recording': ({ mode, dropboxToken, shouldShare, youtubeStreamKey, youtubeBroadcastID }) => {
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) {
logger.error('Failed starting recording: missing youtube stream key');
return;
}
let recordingConfig;
if (mode === JitsiRecordingConstants.mode.FILE) {
if (dropboxToken) {
recordingConfig = {
mode: JitsiRecordingConstants.mode.FILE,
appData: JSON.stringify({
'file_recording_metadata': {
'upload_credentials': {
'service_name': RECORDING_TYPES.DROPBOX,
'token': dropboxToken
}
}
})
};
} else {
recordingConfig = {
mode: JitsiRecordingConstants.mode.FILE,
appData: JSON.stringify({
'file_recording_metadata': {
'share': shouldShare
}
})
};
}
} else if (mode === JitsiRecordingConstants.mode.STREAM) {
recordingConfig = {
broadcastId: youtubeBroadcastID,
mode: JitsiRecordingConstants.mode.STREAM,
streamId: youtubeStreamKey
};
} else {
logger.error('Invalid recording mode provided');
return;
}
conference.startRecording(recordingConfig);
},
/**
* Stops a recording or streaming in progress.
*
* @param {string} mode - `file` or `stream`.
* @returns {void}
*/
'stop-recording': mode => {
const state = APP.store.getState();
const conference = getCurrentConference(state);
if (!conference) {
logger.error('Conference is not defined');
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) {
conference.stopRecording(activeSession.id);
} else {
logger.error('No recording or streaming session found');
}
}
};
transport.on('event', ({ data, name }) => {
@@ -511,7 +627,8 @@ class API {
notifyDeviceListChanged(devices: Object) {
this._sendEvent({
name: 'device-list-changed',
devices });
devices
});
}
/**

View File

@@ -37,6 +37,8 @@ const commands = {
sendEndpointTextMessage: 'send-endpoint-text-message',
sendTones: 'send-tones',
setVideoQuality: 'set-video-quality',
startRecording: 'start-recording',
stopRecording: 'stop-recording',
subject: 'subject',
submitFeedback: 'submit-feedback',
toggleAudio: 'toggle-audio',

View File

@@ -1,16 +1,10 @@
/* global APP, $, config, interfaceConfig */
const logger = require('jitsi-meet-logger').getLogger(__filename);
const UI = {};
import messageHandler from './util/MessageHandler';
import UIUtil from './util/UIUtil';
import UIEvents from '../../service/UI/UIEvents';
import EtherpadManager from './etherpad/Etherpad';
import SharedVideoManager from './shared_video/SharedVideo';
import VideoLayout from './videolayout/VideoLayout';
import EventEmitter from 'events';
import Logger from 'jitsi-meet-logger';
import { getLocalParticipant } from '../../react/features/base/participants';
import { toggleChat } from '../../react/features/chat';
@@ -22,8 +16,15 @@ import {
setToolboxEnabled,
showToolbox
} from '../../react/features/toolbox';
import UIEvents from '../../service/UI/UIEvents';
const EventEmitter = require('events');
import EtherpadManager from './etherpad/Etherpad';
import SharedVideoManager from './shared_video/SharedVideo';
import messageHandler from './util/MessageHandler';
import UIUtil from './util/UIUtil';
import VideoLayout from './videolayout/VideoLayout';
const logger = Logger.getLogger(__filename);
UI.messageHandler = messageHandler;
@@ -97,19 +98,6 @@ UI.notifyReservationError = function(code, msg) {
});
};
/**
* Notify user that conference was destroyed.
* @param reason {string} the reason text
*/
UI.notifyConferenceDestroyed = function(reason) {
// FIXME: use Session Terminated from translation, but
// 'reason' text comes from XMPP packet and is not translated
messageHandler.showError({
description: reason,
titleKey: 'dialog.sessTerminated'
});
};
/**
* Change nickname for the user.
* @param {string} id user id
@@ -565,82 +553,6 @@ UI.getLargeVideo = function() {
return VideoLayout.getLargeVideo();
};
/**
* Shows "Please go to chrome webstore to install the desktop sharing extension"
* 2 button dialog with buttons - cancel and go to web store.
* @param url {string} the url of the extension.
*/
UI.showExtensionExternalInstallationDialog = function(url) {
let openedWindow = null;
const submitFunction = function(e, v) {
if (v) {
e.preventDefault();
if (openedWindow === null || openedWindow.closed) {
openedWindow
= window.open(
url,
'extension_store_window',
'resizable,scrollbars=yes,status=1');
} else {
openedWindow.focus();
}
}
};
const closeFunction = function(e, v) {
if (openedWindow) {
// Ideally we would close the popup, but this does not seem to work
// on Chrome. Leaving it uncommented in case it could work
// in some version.
openedWindow.close();
openedWindow = null;
}
if (!v) {
eventEmitter.emit(UIEvents.EXTERNAL_INSTALLATION_CANCELED);
}
};
messageHandler.openTwoButtonDialog({
titleKey: 'dialog.externalInstallationTitle',
msgKey: 'dialog.externalInstallationMsg',
leftButtonKey: 'dialog.goToStore',
submitFunction,
loadedFunction: $.noop,
closeFunction
});
};
/**
* Shows a dialog which asks user to install the extension. This one is
* displayed after installation is triggered from the script, but fails because
* it must be initiated by user gesture.
* @param callback {function} function to be executed after user clicks
* the install button - it should make another attempt to install the extension.
*/
UI.showExtensionInlineInstallationDialog = function(callback) {
const submitFunction = function(e, v) {
if (v) {
callback();
}
};
const closeFunction = function(e, v) {
if (!v) {
eventEmitter.emit(UIEvents.EXTERNAL_INSTALLATION_CANCELED);
}
};
messageHandler.openTwoButtonDialog({
titleKey: 'dialog.externalInstallationTitle',
msgKey: 'dialog.inlineInstallationMsg',
leftButtonKey: 'dialog.inlineInstallExtension',
submitFunction,
loadedFunction: $.noop,
closeFunction
});
};
/**
* Show shared video.
* @param {string} id the id of the sender of the command

View File

@@ -1,5 +1,7 @@
/* global APP, config, JitsiMeetJS, Promise */
import Logger from 'jitsi-meet-logger';
import { openConnection } from '../../../connection';
import { setJWT } from '../../../react/features/base/jwt';
import {
@@ -9,7 +11,7 @@ import UIUtil from '../util/UIUtil';
import LoginDialog from './LoginDialog';
const logger = require('jitsi-meet-logger').getLogger(__filename);
const logger = Logger.getLogger(__filename);
let externalAuthWindow;
let authRequiredDialog;

View File

@@ -1,6 +1,6 @@
/* global $, APP, config */
import { toJid } from '../../../react/features/base/connection';
import { toJid } from '../../../react/features/base/connection/functions';
import {
JitsiConnectionErrors
} from '../../../react/features/base/lib-jitsi-meet';

View File

@@ -2,10 +2,9 @@
import { getSharedDocumentUrl, setDocumentEditingState } from '../../../react/features/etherpad';
import { getToolboxHeight } from '../../../react/features/toolbox';
import VideoLayout from '../videolayout/VideoLayout';
import LargeContainer from '../videolayout/LargeContainer';
import Filmstrip from '../videolayout/Filmstrip';
import LargeContainer from '../videolayout/LargeContainer';
import VideoLayout from '../videolayout/VideoLayout';
/**
*

View File

@@ -1,14 +1,7 @@
/* global $, APP, YT, interfaceConfig, onPlayerReady, onPlayerStateChange,
onPlayerError */
const logger = require('jitsi-meet-logger').getLogger(__filename);
import UIUtil from '../util/UIUtil';
import UIEvents from '../../../service/UI/UIEvents';
import VideoLayout from '../videolayout/VideoLayout';
import LargeContainer from '../videolayout/LargeContainer';
import Filmstrip from '../videolayout/Filmstrip';
import Logger from 'jitsi-meet-logger';
import {
createSharedVideoEvent as createEvent,
@@ -24,6 +17,13 @@ import {
getToolboxHeight,
showToolbox
} from '../../../react/features/toolbox';
import UIEvents from '../../../service/UI/UIEvents';
import UIUtil from '../util/UIUtil';
import Filmstrip from '../videolayout/Filmstrip';
import LargeContainer from '../videolayout/LargeContainer';
import VideoLayout from '../videolayout/VideoLayout';
const logger = Logger.getLogger(__filename);
export const SHARED_VIDEO_CONTAINER_TYPE = 'sharedvideo';
@@ -31,7 +31,7 @@ export const SHARED_VIDEO_CONTAINER_TYPE = 'sharedvideo';
* Example shared video link.
* @type {string}
*/
const defaultSharedVideoLink = 'https://www.youtube.com/watch?v=xNXN7CZk8X0';
const defaultSharedVideoLink = 'https://youtu.be/TB7LlM4erx8';
const updateInterval = 5000; // milliseconds
/**

View File

@@ -1,8 +1,10 @@
/* global $ */
import Logger from 'jitsi-meet-logger';
import SmallVideo from '../videolayout/SmallVideo';
const logger = require('jitsi-meet-logger').getLogger(__filename);
const logger = Logger.getLogger(__filename);
/**
*

View File

@@ -1,6 +1,6 @@
/* global $, APP */
const logger = require('jitsi-meet-logger').getLogger(__filename);
import Logger from 'jitsi-meet-logger';
import { jitsiLocalStorage } from 'js-utils';
import {
@@ -10,6 +10,8 @@ import {
showWarningNotification
} from '../../../react/features/notifications';
const logger = Logger.getLogger(__filename);
/**
* Flag for enabling/disabling popups.
* @type {boolean}

View File

@@ -1,5 +1,6 @@
/* global $, APP */
/* eslint-disable no-unused-vars */
import Logger from 'jitsi-meet-logger';
import React from 'react';
import ReactDOM from 'react-dom';
import { I18nextProvider } from 'react-i18next';
@@ -7,24 +8,23 @@ import { Provider } from 'react-redux';
import { Avatar } from '../../../react/features/base/avatar';
import { i18next } from '../../../react/features/base/i18n';
import { PresenceLabel } from '../../../react/features/presence-status';
/* eslint-enable no-unused-vars */
const logger = require('jitsi-meet-logger').getLogger(__filename);
import { VIDEO_TYPE } from '../../../react/features/base/media';
import {
JitsiParticipantConnectionStatus
} from '../../../react/features/base/lib-jitsi-meet';
import { VIDEO_TYPE } from '../../../react/features/base/media';
import {
updateKnownLargeVideoResolution
} from '../../../react/features/large-video';
import { createDeferred } from '../../util/helpers';
import { PresenceLabel } from '../../../react/features/presence-status';
/* eslint-enable no-unused-vars */
import UIEvents from '../../../service/UI/UIEvents';
import { createDeferred } from '../../util/helpers';
import AudioLevels from '../audio_levels/AudioLevels';
import UIUtil from '../util/UIUtil';
import { VideoContainer, VIDEO_CONTAINER_TYPE } from './VideoContainer';
import AudioLevels from '../audio_levels/AudioLevels';
const logger = Logger.getLogger(__filename);
const DESKTOP_CONTAINER_TYPE = 'desktop';

View File

@@ -1,5 +1,6 @@
/* global $, config, interfaceConfig, APP */
import Logger from 'jitsi-meet-logger';
/* eslint-disable no-unused-vars */
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
@@ -11,12 +12,12 @@ import { updateSettings } from '../../../react/features/base/settings';
import { getLocalVideoTrack } from '../../../react/features/base/tracks';
import { shouldDisplayTileView } from '../../../react/features/video-layout';
/* eslint-enable no-unused-vars */
const logger = require('jitsi-meet-logger').getLogger(__filename);
import UIEvents from '../../../service/UI/UIEvents';
import SmallVideo from './SmallVideo';
const logger = Logger.getLogger(__filename);
/**
*
*/
@@ -275,9 +276,12 @@ export default class LocalVideo extends SmallVideo {
// Ensure the video gets play() called on it. This may be necessary in the
// case where the local video container was moved and re-attached, in which
// case video does not autoplay.
// case video does not autoplay. Also, set the playsinline attribute on the
// video element so that local video doesn't open in full screen by default
// in Safari browser on iOS.
const video = this.container.querySelector('video');
video && video.setAttribute('playsinline', 'true');
video && !config.testing?.noAutoPlayVideo && video.play();
}
}

View File

@@ -1,11 +1,12 @@
/* global $, APP, interfaceConfig */
/* eslint-disable no-unused-vars */
import { AtlasKitThemeProvider } from '@atlaskit/theme';
import Logger from 'jitsi-meet-logger';
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { I18nextProvider } from 'react-i18next';
import { AtlasKitThemeProvider } from '@atlaskit/theme';
import { Provider } from 'react-redux';
import { i18next } from '../../../react/features/base/i18n';
import {
@@ -22,12 +23,11 @@ import {
} from '../../../react/features/remote-video-menu';
import { LAYOUTS, getCurrentLayout } from '../../../react/features/video-layout';
/* eslint-enable no-unused-vars */
const logger = require('jitsi-meet-logger').getLogger(__filename);
import UIUtils from '../util/UIUtil';
import SmallVideo from './SmallVideo';
import UIUtils from '../util/UIUtil';
const logger = Logger.getLogger(__filename);
/**
*

View File

@@ -1,15 +1,16 @@
/* global $, APP, config, interfaceConfig */
/* eslint-disable no-unused-vars */
import { AtlasKitThemeProvider } from '@atlaskit/theme';
import Logger from 'jitsi-meet-logger';
import React from 'react';
import ReactDOM from 'react-dom';
import { I18nextProvider } from 'react-i18next';
import { AtlasKitThemeProvider } from '@atlaskit/theme';
import { Provider } from 'react-redux';
import { i18next } from '../../../react/features/base/i18n';
import { AudioLevelIndicator } from '../../../react/features/audio-level-indicator';
import { Avatar as AvatarDisplay } from '../../../react/features/base/avatar';
import { i18next } from '../../../react/features/base/i18n';
import {
getParticipantCount,
getPinnedParticipant,
@@ -30,7 +31,7 @@ import {
} from '../../../react/features/video-layout';
/* eslint-enable no-unused-vars */
const logger = require('jitsi-meet-logger').getLogger(__filename);
const logger = Logger.getLogger(__filename);
/**
* Display mode constant used when video is being displayed on the small video.

View File

@@ -8,11 +8,11 @@ import { browser } from '../../../react/features/base/lib-jitsi-meet';
import { ORIENTATION, LargeVideoBackground } from '../../../react/features/large-video';
import { LAYOUTS, getCurrentLayout } from '../../../react/features/video-layout';
/* eslint-enable no-unused-vars */
import UIEvents from '../../../service/UI/UIEvents';
import UIUtil from '../util/UIUtil';
import Filmstrip from './Filmstrip';
import LargeContainer from './LargeContainer';
import UIEvents from '../../../service/UI/UIEvents';
import UIUtil from '../util/UIUtil';
// FIXME should be 'video'
export const VIDEO_CONTAINER_TYPE = 'camera';
@@ -498,9 +498,6 @@ export class VideoContainer extends LargeContainer {
});
this._updateBackground();
// Reset the large video background depending on the stream.
this.setLargeVideoBackground(this.avatarDisplayed);
}
/**
@@ -533,14 +530,6 @@ export class VideoContainer extends LargeContainer {
* @param {boolean} show
*/
showAvatar(show) {
// TO FIX: Video background need to be black, so that we don't have a
// flickering effect when scrolling between videos and have the screen
// move to grey before going back to video. Avatars though can have the
// default background set.
// In order to fix this code we need to introduce video background or
// find a workaround for the video flickering.
this.setLargeVideoBackground(show);
this.$avatar.css('visibility', show ? 'visible' : 'hidden');
this.avatarDisplayed = show;
@@ -596,21 +585,6 @@ export class VideoContainer extends LargeContainer {
return false;
}
/**
* Sets the large video container background depending on the container
* type and the parameter indicating if an avatar is currently shown on
* large.
*
* @param {boolean} isAvatar - Indicates if the avatar is currently shown
* on the large video.
* @returns {void}
*/
setLargeVideoBackground(isAvatar) {
$('#largeVideoContainer').css('background',
this.videoType === VIDEO_CONTAINER_TYPE && !isAvatar
? '#000' : interfaceConfig.DEFAULT_BACKGROUND);
}
/**
* Callback invoked when the video element changes dimensions.
*

View File

@@ -1,5 +1,6 @@
/* global APP, $, interfaceConfig */
const logger = require('jitsi-meet-logger').getLogger(__filename);
import Logger from 'jitsi-meet-logger';
import { MEDIA_TYPE, VIDEO_TYPE } from '../../../react/features/base/media';
import {
@@ -9,16 +10,16 @@ import {
pinParticipant
} from '../../../react/features/base/participants';
import { getTrackByMediaTypeAndParticipant } from '../../../react/features/base/tracks';
import UIEvents from '../../../service/UI/UIEvents';
import { SHARED_VIDEO_CONTAINER_TYPE } from '../shared_video/SharedVideo';
import SharedVideoThumb from '../shared_video/SharedVideoThumb';
import UIEvents from '../../../service/UI/UIEvents';
import RemoteVideo from './RemoteVideo';
import LargeVideoManager from './LargeVideoManager';
import LocalVideo from './LocalVideo';
import RemoteVideo from './RemoteVideo';
import { VIDEO_CONTAINER_TYPE } from './VideoContainer';
import LocalVideo from './LocalVideo';
const logger = Logger.getLogger(__filename);
const remoteVideos = {};
let localVideoThumbnail = null;

View File

@@ -1,17 +1,19 @@
/* global APP, $, interfaceConfig */
import { toggleDialog } from '../../react/features/base/dialog';
import Logger from 'jitsi-meet-logger';
import {
ACTION_SHORTCUT_PRESSED as PRESSED,
ACTION_SHORTCUT_RELEASED as RELEASED,
createShortcutEvent,
sendAnalytics
} from '../../react/features/analytics';
import { toggleDialog } from '../../react/features/base/dialog';
import { KeyboardShortcutsDialog }
from '../../react/features/keyboard-shortcuts';
import { SpeakerStats } from '../../react/features/speaker-stats';
const logger = require('jitsi-meet-logger').getLogger(__filename);
const logger = Logger.getLogger(__filename);
/**
* Map of shortcuts. When a shortcut is registered it enters the mapping.

View File

@@ -5,7 +5,7 @@ import { getLogger } from 'jitsi-meet-logger';
import {
JitsiConferenceEvents
} from '../../react/features/base/lib-jitsi-meet';
import * as KeyCodes from '../keycode/keycode';
import UIEvents from '../../service/UI/UIEvents';
import {
EVENTS,
PERMISSIONS_ACTIONS,
@@ -13,7 +13,7 @@ import {
} from '../../service/remotecontrol/Constants';
import * as RemoteControlEvents
from '../../service/remotecontrol/RemoteControlEvents';
import UIEvents from '../../service/UI/UIEvents';
import * as KeyCodes from '../keycode/keycode';
import RemoteControlParticipant from './RemoteControlParticipant';

View File

@@ -1,10 +1,11 @@
// FIXME: change to '../API' when we update to webpack2. If we do this now all
// files from API modules will be included in external_api.js.
import { API_ID } from '../API/constants';
import { getJitsiMeetGlobalNS } from '../../react/features/base/util';
import { PostMessageTransportBackend, Transport } from 'js-utils/transport';
import { getJitsiMeetGlobalNS } from '../../react/features/base/util';
import { API_ID } from '../API/constants';
export {
PostMessageTransportBackend,
Transport

3759
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -50,13 +50,13 @@
"i18next-xhr-backend": "3.0.0",
"jQuery-Impromptu": "github:trentrichardson/jQuery-Impromptu#v6.0.0",
"jitsi-meet-logger": "github:jitsi/jitsi-meet-logger#5ec92357570dc8f0b7ffc1528820721c84c6af8b",
"jquery": "3.4.0",
"jquery": "3.5.1",
"jquery-contextmenu": "2.4.5",
"jquery-i18next": "1.2.1",
"js-md5": "0.6.1",
"js-utils": "github:jitsi/js-utils#cf11996bd866fdb47326c59a5d3bc24be17282d4",
"jwt-decode": "2.2.0",
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#3c8d411c96fdfa18c57111630f29880f3f72949e",
"lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#1c5e2446358b22599486f84866df945d93e9485b",
"libflacjs": "github:mmig/libflac.js#93d37e7f811f01cf7d8b6a603e38bd3c3810907d",
"lodash": "4.17.13",
"moment": "2.19.4",
@@ -69,7 +69,7 @@
"react-linkify": "1.0.0-alpha",
"react-native": "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",
"react-native-background-timer": "2.1.1",
"react-native-calendar-events": "github:jitsi/react-native-calendar-events#902e6e92d6bae450a6052f76ba4d02f977ffd8f2",
"react-native-calendar-events": "github:jitsi/react-native-calendar-events#928a80e2ffef0d7e84936d7e7e0acc4f53ee8470",
"react-native-callstats": "3.61.0",
"react-native-collapsible": "1.5.1",
"react-native-default-preference": "1.4.2",
@@ -80,15 +80,16 @@
"react-native-svg": "9.7.1",
"react-native-svg-transformer": "0.13.0",
"react-native-swipeout": "2.3.6",
"react-native-watch-connectivity": "0.2.0",
"react-native-watch-connectivity": "0.4.3",
"react-native-webrtc": "1.75.3",
"react-native-webview": "7.4.1",
"react-native-youtube-iframe": "1.2.3",
"react-redux": "7.1.0",
"react-textarea-autosize": "7.1.0",
"react-transition-group": "2.4.0",
"redux": "4.0.4",
"redux-thunk": "2.2.0",
"rnnoise-wasm": "github:jitsi/rnnoise-wasm.git#db96d11f175a22ef56c7db1ba9550835b716e615",
"rnnoise-wasm": "github:jitsi/rnnoise-wasm.git#566a16885897704d6e6d67a1d5ac5d39781db2af",
"styled-components": "3.4.9",
"util": "0.12.1",
"uuid": "3.1.0",
@@ -110,12 +111,13 @@
"@babel/runtime": "7.5.5",
"babel-eslint": "10.0.1",
"babel-loader": "8.0.4",
"circular-dependency-plugin": "5.2.0",
"clean-css": "3.4.25",
"css-loader": "0.28.7",
"eslint": "5.6.1",
"eslint-config-jitsi": "github:jitsi/eslint-config-jitsi#1.0.1",
"eslint-config-jitsi": "github:jitsi/eslint-config-jitsi#1.0.3",
"eslint-plugin-flowtype": "2.50.3",
"eslint-plugin-import": "2.14.0",
"eslint-plugin-import": "2.20.2",
"eslint-plugin-jsdoc": "3.8.0",
"eslint-plugin-react": "7.11.1",
"eslint-plugin-react-native": "3.3.0",
@@ -124,14 +126,14 @@
"imports-loader": "0.7.1",
"jetifier": "1.6.4",
"metro-react-native-babel-preset": "0.56.0",
"node-sass": "4.13.1",
"node-sass": "4.14.1",
"string-replace-loader": "2.1.1",
"style-loader": "0.19.0",
"unorm": "1.6.0",
"webpack": "4.27.1",
"webpack": "4.43.0",
"webpack-bundle-analyzer": "3.4.1",
"webpack-cli": "3.1.2",
"webpack-dev-server": "3.8.2"
"webpack-cli": "3.3.11",
"webpack-dev-server": "3.11.0"
},
"engines": {
"node": ">=8.0.0",

View File

@@ -2,8 +2,8 @@
// We need to reference these files directly to avoid loading things that are not available
// in this environment (e.g. JitsiMeetJS or interfaceConfig)
import AbstractHangupButton from '../base/toolbox/components/AbstractHangupButton';
import type { Props } from '../base/toolbox/components/AbstractButton';
import AbstractHangupButton from '../base/toolbox/components/AbstractHangupButton';
const { api } = window.alwaysOnTop;

View File

@@ -2,8 +2,8 @@
// We need to reference these files directly to avoid loading things that are not available
// in this environment (e.g. JitsiMeetJS or interfaceConfig)
import AbstractVideoMuteButton from '../base/toolbox/components/AbstractVideoMuteButton';
import type { Props } from '../base/toolbox/components/AbstractButton';
import AbstractVideoMuteButton from '../base/toolbox/components/AbstractVideoMuteButton';
const { api } = window.alwaysOnTop;

View File

@@ -1,15 +1,17 @@
// @flow
import { API_ID } from '../../../modules/API';
import {
checkChromeExtensionsInstalled,
isMobileBrowser
} from '../base/environment/utils';
import JitsiMeetJS, {
analytics,
browser,
isAnalyticsEnabled
} from '../base/lib-jitsi-meet';
import { getJitsiMeetGlobalNS, loadScript } from '../base/util';
import {
checkChromeExtensionsInstalled,
isMobileBrowser
} from '../base/environment/utils';
import { AmplitudeHandler, MatomoHandler } from './handlers';
import logger from './logger';
@@ -154,6 +156,12 @@ export function initAnalytics({ getState }: { getState: Function }, handlers: Ar
// Report if user is using websocket
permanentProperties.websocket = navigator.product !== 'ReactNative' && typeof config.websocket === 'string';
// permanentProperties is external api
permanentProperties.externalApi = typeof API_ID === 'number';
// Report if we are loaded in iframe
permanentProperties.inIframe = _inIframe();
// Optionally, include local deployment information based on the
// contents of window.config.deploymentInfo.
if (deploymentInfo) {
@@ -183,6 +191,24 @@ export function initAnalytics({ getState }: { getState: Function }, handlers: Ar
}
}
/**
* Checks whether we are loaded in iframe.
*
* @returns {boolean} Returns {@code true} if loaded in iframe.
* @private
*/
function _inIframe() {
if (navigator.product === 'ReactNative') {
return false;
}
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
/**
* Tries to load the scripts for the analytics handlers and creates them.
*

View File

@@ -1,5 +1,2 @@
export * from './AnalyticsEvents';
export * from './functions';
import './middleware';
import './reducer';

View File

@@ -16,8 +16,8 @@ import {
TRACK_UPDATED
} from '../base/tracks';
import { UPDATE_LOCAL_TRACKS_DURATION } from './actionTypes';
import { createLocalTracksDurationEvent, createNetworkInfoEvent } from './AnalyticsEvents';
import { UPDATE_LOCAL_TRACKS_DURATION } from './actionTypes';
import { createHandlers, initAnalytics, resetAnalytics, sendAnalytics } from './functions';
/**

View File

@@ -23,7 +23,7 @@ import {
parseURIString,
toURLString
} from '../base/util';
import { showNotification } from '../notifications';
import { clearNotifications, showNotification } from '../notifications';
import { setFatalError } from '../overlay';
import {
@@ -79,6 +79,10 @@ export function appNavigate(uri: ?string) {
dispatch(disconnect());
}
// There are notifications now that gets displayed after we technically left
// the conference, but we're still on the conference screen.
dispatch(clearNotifications());
dispatch(configWillLoad(locationURL, room));
let protocol = location.protocol.toLowerCase();

View File

@@ -4,12 +4,7 @@ import React, { Fragment } from 'react';
import { BaseApp } from '../../base/app';
import { toURLString } from '../../base/util';
import '../../follow-me';
import { OverlayContainer } from '../../overlay';
import '../../base/lastn'; // Register lastN middleware
import '../../rejoin'; // Enable rejoin analytics
import { appNavigate } from '../actions';
import { getDefaultURL } from '../functions';

View File

@@ -2,32 +2,21 @@
import React from 'react';
import '../../analytics';
import '../../authentication';
import { setColorScheme } from '../../base/color-scheme';
import { DialogContainer } from '../../base/dialog';
import { CALL_INTEGRATION_ENABLED, updateFlags } from '../../base/flags';
import '../../base/jwt';
import { Platform } from '../../base/react';
import '../../base/responsive-ui';
import { DimensionsDetector, clientResized } from '../../base/responsive-ui';
import { updateSettings } from '../../base/settings';
import '../../google-api';
import '../../mobile/audio-mode';
import '../../mobile/back-button';
import '../../mobile/background';
import '../../mobile/call-integration';
import '../../mobile/external-api';
import '../../mobile/full-screen';
import '../../mobile/permissions';
import '../../mobile/picture-in-picture';
import '../../mobile/proximity';
import '../../mobile/wake-lock';
import '../../mobile/watchos';
import logger from '../logger';
import { AbstractApp } from './AbstractApp';
import type { Props as AbstractAppProps } from './AbstractApp';
// Register middlewares and reducers.
import '../middlewares';
import '../reducers';
declare var __DEV__;
/**
@@ -78,6 +67,9 @@ export class App extends AbstractApp {
// This will effectively kill the app. In accord with the Web, do not
// kill the app.
this._maybeDisableExceptionsManager();
// Bind event handler so it is only bound once per instance.
this._onDimensionsChanged = this._onDimensionsChanged.bind(this);
}
/**
@@ -107,6 +99,21 @@ export class App extends AbstractApp {
});
}
/**
* Overrides the parent method to inject {@link DimensionsDetector} as
* the top most component.
*
* @override
*/
_createMainElement(component, props) {
return (
<DimensionsDetector
onDimensionsChanged = { this._onDimensionsChanged }>
{ super._createMainElement(component, props) }
</DimensionsDetector>
);
}
/**
* Attempts to disable the use of React Native
* {@link ExceptionsManager#handleException} on platforms and in
@@ -144,6 +151,22 @@ export class App extends AbstractApp {
}
}
_onDimensionsChanged: (width: number, height: number) => void;
/**
* Updates the known available size for the app to occupy.
*
* @param {number} width - The component's current width.
* @param {number} height - The component's current height.
* @private
* @returns {void}
*/
_onDimensionsChanged(width: number, height: number) {
const { dispatch } = this.state.store;
dispatch(clientResized(width, height));
}
/**
* Renders the platform specific dialog container.
*

View File

@@ -5,19 +5,13 @@ import React from 'react';
import { DialogContainer } from '../../base/dialog';
import { ChromeExtensionBanner } from '../../chrome-extension-banner';
import '../../base/user-interaction';
import '../../chat';
import '../../external-api';
import '../../no-audio-signal';
import '../../noise-detection';
import '../../power-monitor';
import '../../room-lock';
import '../../talk-while-muted';
import '../../video-layout';
import '../../old-client-notification';
import { AbstractApp } from './AbstractApp';
// Register middlewares and reducers.
import '../middlewares';
import '../reducers';
/**
* Root app {@code Component} on Web/React.
*

View File

@@ -4,8 +4,8 @@ import { generateRoomWithoutSeparator } from 'js-utils/random';
import type { Component } from 'react';
import { isRoomValid } from '../base/conference';
import { toState } from '../base/redux';
import { isSupportedBrowser } from '../base/environment';
import { toState } from '../base/redux';
import { Conference } from '../conference';
import { getDeepLinkingPage } from '../deep-linking';
import { UnsupportedDesktopBrowser } from '../unsupported-browser';

View File

@@ -1,7 +0,0 @@
// @flow
export * from './actions';
export * from './components';
export * from './functions';
import './middleware';

View File

@@ -4,7 +4,6 @@ import {
createConnectionEvent,
sendAnalytics
} from '../analytics';
import { SET_ROOM } from '../base/conference';
import {
CONNECTION_ESTABLISHED,

View File

@@ -0,0 +1,46 @@
// @flow
import '../analytics/middleware';
import '../base/conference/middleware';
import '../base/config/middleware';
import '../base/jwt/middleware';
import '../base/known-domains/middleware';
import '../base/lastn/middleware';
import '../base/lib-jitsi-meet/middleware';
import '../base/logging/middleware';
import '../base/media/middleware';
import '../base/net-info/middleware';
import '../base/participants/middleware';
import '../base/redux/middleware';
import '../base/responsive-ui/middleware';
import '../base/settings/middleware';
import '../base/sounds/middleware';
import '../base/testing/middleware';
import '../base/tracks/middleware';
import '../base/user-interaction/middleware';
import '../calendar-sync/middleware';
import '../chat/middleware';
import '../conference/middleware';
import '../connection-indicator/middleware';
import '../deep-linking/middleware';
import '../device-selection/middleware';
import '../display-name/middleware';
import '../etherpad/middleware';
import '../filmstrip/middleware';
import '../follow-me/middleware';
import '../invite/middleware';
import '../large-video/middleware';
import '../lobby/middleware';
import '../notifications/middleware';
import '../overlay/middleware';
import '../recent-list/middleware';
import '../recording/middleware';
import '../rejoin/middleware';
import '../room-lock/middleware';
import '../subtitles/middleware';
import '../toolbox/middleware';
import '../transcribing/middleware';
import '../video-layout/middleware';
import '../videosipgw/middleware';
import './middleware';

View File

@@ -0,0 +1,18 @@
// @flow
import '../authentication/middleware';
import '../mobile/audio-mode/middleware';
import '../mobile/back-button/middleware';
import '../mobile/background/middleware';
import '../mobile/call-integration/middleware';
import '../mobile/external-api/middleware';
import '../mobile/full-screen/middleware';
import '../mobile/incoming-call/middleware';
import '../mobile/permissions/middleware';
import '../mobile/proximity/middleware';
import '../mobile/wake-lock/middleware';
import '../mobile/watchos/middleware';
import '../share-room/middleware';
import '../youtube-player/middleware';
import './middlewares.any';

View File

@@ -0,0 +1,16 @@
// @flow
import '../base/devices/middleware';
import '../e2ee/middleware';
import '../external-api/middleware';
import '../keyboard-shortcuts/middleware';
import '../local-recording/middleware';
import '../no-audio-signal/middleware';
import '../noise-detection/middleware';
import '../old-client-notification/middleware';
import '../power-monitor/middleware';
import '../prejoin/middleware';
import '../shared-video/middleware';
import '../talk-while-muted/middleware';
import './middlewares.any';

View File

@@ -0,0 +1,49 @@
// @flow
import '../analytics/reducer';
import '../base/app/reducer';
import '../base/audio-only/reducer';
import '../base/color-scheme/reducer';
import '../base/conference/reducer';
import '../base/config/reducer';
import '../base/connection/reducer';
import '../base/dialog/reducer';
import '../base/flags/reducer';
import '../base/jwt/reducer';
import '../base/known-domains/reducer';
import '../base/lib-jitsi-meet/reducer';
import '../base/logging/reducer';
import '../base/media/reducer';
import '../base/modal/reducer';
import '../base/net-info/reducer';
import '../base/participants/reducer';
import '../base/responsive-ui/reducer';
import '../base/settings/reducer';
import '../base/sounds/reducer';
import '../base/testing/reducer';
import '../base/tracks/reducer';
import '../base/user-interaction/reducer';
import '../blur/reducer';
import '../calendar-sync/reducer';
import '../chat/reducer';
import '../deep-linking/reducer';
import '../device-selection/reducer';
import '../dropbox/reducer';
import '../etherpad/reducer';
import '../filmstrip/reducer';
import '../follow-me/reducer';
import '../google-api/reducer';
import '../invite/reducer';
import '../large-video/reducer';
import '../lobby/reducer';
import '../notifications/reducer';
import '../overlay/reducer';
import '../recent-list/reducer';
import '../recording/reducer';
import '../settings/reducer';
import '../subtitles/reducer';
import '../toolbox/reducer';
import '../transcribing/reducer';
import '../video-layout/reducer';
import '../videosipgw/reducer';
import '../welcome/reducer';

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