Commit Graph

15123 Commits

Author SHA1 Message Date
Ramón Souza
59e2609ffa do not display layout button if layouts are disabled 2024-07-09 09:10:06 -03:00
João Victor
a4756314a7 fix: external video can be seen through sidebar on mobile 2024-07-09 08:38:56 -03:00
Ramón Souza
91762178b9 fix grid mode displaying viewers if see other viewers is locked 2024-07-05 10:04:57 -03:00
Daniel Petri Rocha
fd929a1508 Add green screen background, change documentation 2024-07-02 16:37:26 +00:00
Paul Trudel
b697667364
feat(events): Add user custom data to events.xml (#20566)
* Send custom user data to akka apps

* Add user custom data to registered user

* Add user custom data to user join event

* Store user custom data in Redis

* Rename userCustomData to customParameters

* Rename xml tag to userdata
2024-06-26 11:39:39 -04:00
transifex-integration[bot]
885ba839c6
Translate en.json in ru
100% translated source file: 'en.json'
on 'ru'.
2024-06-11 18:13:33 +00:00
transifex-integration[bot]
9080d2e42a
Translate en.json in es_ES (#20423)
100% translated source file: 'en.json'
on 'es_ES'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-06-06 08:35:06 -04:00
transifex-integration[bot]
d966ea759a
Translate en.json in fi (#20412)
100% translated source file: 'en.json'
on 'fi'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-06-06 08:34:07 -04:00
Gustavo Trott
37d6aa0140 introduce-allowPromoteGuestToModerator27 2024-06-04 11:36:46 -03:00
transifex-integration[bot]
c0caafd2e6
Translate en.json in et (#20391)
100% translated source file: 'en.json'
on 'et'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-06-03 09:18:07 -04:00
transifex-integration[bot]
443b80904b
Updates for project BigBlueButton v2.7 HTML5 client and language gl (#20381)
* Translate en.json in gl

100% translated source file: 'en.json'
on 'gl'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-31 10:06:53 -04:00
transifex-integration[bot]
25147a5719
Updates for project BigBlueButton v2.7 HTML5 client and language fr (#20385)
* Translate en.json in fr

100% translated source file: 'en.json'
on 'fr'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-31 10:03:00 -04:00
transifex-integration[bot]
fe5b15ee5b
Translate en.json in fa_IR (#20373)
100% translated source file: 'en.json'
on 'fa_IR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-30 11:28:19 -04:00
transifex-integration[bot]
81e025b3d9
Translate en.json in it_IT (#20358)
100% translated source file: 'en.json'
on 'it_IT'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-30 10:31:17 -04:00
transifex-integration[bot]
fdb95bb693
Translate en.json in ca (#20363)
100% translated source file: 'en.json'
on 'ca'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-30 10:30:19 -04:00
transifex-integration[bot]
acc8ea4809
Translate en.json in uk_UA (#20369)
100% translated source file: 'en.json'
on 'uk_UA'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-30 09:32:36 -04:00
transifex-integration[bot]
c697caf00c
Translate en.json in fr
100% translated source file: 'en.json'
on 'fr'.
2024-05-24 08:23:43 +00:00
Anton Georgiev
d3e78e7d1e
Merge pull request #20216 from KDSBrowne/bbb-20200
fix(whiteboard): Disable Duplication Shortcut Key While Drawing
2024-05-15 12:53:00 -04:00
KDSBrowne
cc53fb58f2 fix inconsistent zoom between live session and recording 2024-05-10 20:36:55 +00:00
KDSBrowne
2b6d313c80 disable duplication shortcut key while drawing 2024-05-10 11:35:04 +00:00
transifex-integration[bot]
6ea1559ced
Translate en.json in eu
100% translated source file: 'en.json'
on 'eu'.
2024-05-05 21:22:35 +00:00
transifex-integration[bot]
0f691e8968
Translate en.json in ja
100% translated source file: 'en.json'
on 'ja'.
2024-05-03 13:20:42 +00:00
transifex-integration[bot]
b6087ab8cb
Translate en.json in tr
100% translated source file: 'en.json'
on 'tr'.
2024-05-03 01:18:47 +00:00
Anton Georgiev
5810f8b662 chore: bump npm deps 2024-05-02 16:31:19 -04:00
Anton Georgiev
0dc21a34d6
Merge pull request #20152 from prlanzarin/u27/fix/Arthurk12-live-1809
fix(bbb-html5): correct parameter type for wake lock log codes
2024-05-02 16:03:57 -04:00
Anton Georgiev
15e857abe5
Merge pull request #20153 from prlanzarin/u27/fix/Arthurk12-live-crashes-1800
fix(bbb-html5): potential crash in Youtube captions toggle
2024-05-02 16:03:04 -04:00
Anton Georgiev
d30974c771
Merge pull request #20151 from prlanzarin/u27/fix/Arthurk12-live-crashes-1798
fix(bbb-html5): filter poll users array before processing
2024-05-02 16:01:55 -04:00
Arthurk12
eb29634a87 fix(external-video): Youtube captions toggle
Ensures setOption and unloadModule are functions before calling.
2024-05-02 16:29:30 -03:00
Arthurk12
4e7d7dd452 fix(wake-lock): correct parameter type for log code
Previously, an object was incorrectly passed as the log code parameter.
Fixes it by ensuring that a string is passed instead.
2024-05-02 16:22:16 -03:00
Arthurk12
8dad2db2e2 fix(poll): filter users array before processing
Fix a crash in the polls live result by filtering out undefined users.
This scenario might happen when getting user information by an id that
is not present in the current usernames list by some inconsistency
between the user's information from the users context and poll
votes/responses.
2024-05-02 16:20:12 -03:00
Arthurk12
41c58d2466 fix(user-list): validate before getting element attribute
Implements check for getAttribute type before calling it.
2024-05-02 16:16:59 -03:00
Ramón Souza
356f6331c1
Merge pull request #20024 from Arthurk12/bbb/2.7/small-screens-toolbar
[2.7] fix(presentation): toolbar width on small screens
2024-05-02 15:32:31 -03:00
Anton Georgiev
64d5afc864
Merge pull request #20129 from bigbluebutton/antobinary-patch-3
chore: Bump requirement for safari versions
2024-05-02 12:19:07 -04:00
transifex-integration[bot]
13f66bddda
Translate en.json in de (#20146)
100% translated source file: 'en.json'
on 'de'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-02 11:05:46 -04:00
transifex-integration[bot]
6b4f2de798
Updates for project BigBlueButton v2.7 HTML5 client and language de (#20138)
* Translate en.json in de

100% translated source file: 'en.json'
on 'de'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-05-02 09:28:12 -04:00
transifex-integration[bot]
6a146c0548
Translate en.json in el_GR
100% translated source file: 'en.json'
on 'el_GR'.
2024-05-01 18:15:39 +00:00
Anton Georgiev
400fff96c9
chore: Bump requirement for safari versions 2024-05-01 10:56:30 -04:00
transifex-integration[bot]
b81d624c66
Translate en.json in ar
100% translated source file: 'en.json'
on 'ar'.
2024-05-01 02:55:01 +00:00
Anton Georgiev
54403fb587
Merge pull request #20121 from prlanzarin/u27/fix/ff-pairselection
fix(audio): broken connection stats on Firefox >= 125
2024-04-30 14:42:35 -04:00
Anton Georgiev
d0307e6f21
Merge pull request #20010 from prlanzarin/u27/fix/review-mobile-audio-join
[2.7] fix(audio): review audio modal help screen
2024-04-30 14:41:54 -04:00
Anton Georgiev
850e8af19a
Merge pull request #20124 from prlanzarin/u27/fix/assorted-crashes-redux
fix: crash at meeting-ended due to undefined access + incorrect meetingID
2024-04-30 14:40:04 -04:00
Anton Georgiev
d484867c99
Merge pull request #20122 from prlanzarin/u27/fix/review-mobile-audio-chevron
fix(audio): review device selection in mobile endpoints
2024-04-30 14:39:14 -04:00
Anton Georgiev
403959bc34
Merge pull request #20123 from prlanzarin/u27/fix/assorted-br-crashes
fix: undefined accesses causes crashes in actions-bar breakout utils
2024-04-30 14:38:14 -04:00
prlanzarin
5f59453548 fix: crash at meeting-ended due to undefined access + incorrect meetingID
Fixes an undefined access crash at the meeting-ended component caused by
trying to access a property of a nullish user document.
Fixes incorrect access to the meetingId property of the user document -
currently fetched as meetingID, which doesn't exist.
2024-04-30 14:44:20 -03:00
prlanzarin
2084392ac7 fix: undefined accesses causes crashes in actions-bar breakout utils
Multiple undefined accesses in actions-bar's service, mainly related to
breakouts and ageneral Meetings info, cause crashes in production
environments - most likely in reconnection scenarios.

Guarantee that nested data is safely accessed.
2024-04-30 14:41:16 -03:00
prlanzarin
141c553b17 fix(audio): review device selection in mobile endpoints
Mobile users have no way to change I/O devices after joining audio.
The removal of the audio options chevron in mobile browsers was supposed
to be replaced by something else - in this case, by the dedicated
leave/join audio button. That didn't happen, leave/join audio button
retained the old behavior.

Review device selection in mobile endpoints via two UI/UX changes:
  - Restore the device selection chevron/icon in mobile endpoints
  - Override the leave/join button action in mobile endpoints so that it
    opens the device selection contextual menu, which also includes the
    "Leave audio" option. This retains the old behavior (leaving audio)
    while also providing an way for users to change devices mid-call in
    mobile browsers.
2024-04-30 14:29:53 -03:00
prlanzarin
9956af9aa1 fix(audio): improve help modal for listen only scenarios
The audio troubleshooting modal has very microphone-specific strings,
which might confuse users trying to join listen only.

Review the Help screen so that listen only scenarios are more generic.
As a bonus, review the unknownError locale with a more actionable text.
2024-04-30 13:59:08 -03:00
prlanzarin
f91402bc4a fix(audio): remove listen only retry routines
Listen only has a built-in retry routine on join failures that's
convoluted half-broken. It stems from the Kurento era where it could
fail randomly due to a myriad of reasons.
Production logs indicate that the retry is seldom used nowadays in
mediasoup-based environments. The presence of the retry also breaks
the error troubleshooting modal when actual failures happening, leaving
users in the dark about what's happening.

Remove the listen only retry code from AudioManager and bubble up any
join failure to the callers.
2024-04-30 13:58:06 -03:00
prlanzarin
a2e22fffb3 fix(audio): broken connection stats on Firefox >= 125
WebRTC-based stats generation in the connection status modal is broken
on Firefox >= 125. A broken type check coupled with a new partially
implemented RTCIceTransport dictionary causes and undefined function
call when fetching the selected candidate pair. Since that error is
unhandled, collection breaks.

Correctly check for the getSelectedCandidatePair method availability in
RTCIceTransport so that it skips to pair inference from getStats if
necessary.
2024-04-30 13:44:29 -03:00
Tainan Felipe
da60b246d0 Fix: user reaction not showing right emoji 2024-04-26 16:52:28 -03:00
transifex-integration[bot]
c83999dd46
Translate en.json in fr
100% translated source file: 'en.json'
on 'fr'.
2024-04-23 07:56:36 +00:00
Anton Georgiev
ebe0488aa6
Merge pull request #20052 from bigbluebutton/translations_60cd9b750d2d41cd929b29887b4db1e8_el_GR
Updates for project BigBlueButton v2.7 HTML5 client and language el_GR
2024-04-22 08:05:06 -04:00
transifex-integration[bot]
ea21caec53
Translate en.json in ja
100% translated source file: 'en.json'
on 'ja'.
2024-04-22 11:52:06 +00:00
transifex-integration[bot]
4cb07ad7e7
Translate en.json in el_GR
100% translated source file: 'en.json'
on 'el_GR'.
2024-04-21 18:17:00 +00:00
transifex-integration[bot]
503e7420a2
Translate en.json in ar
100% translated source file: 'en.json'
on 'ar'.
2024-04-19 18:31:09 +00:00
Anton Georgiev
0eae452d25
Merge pull request #19987 from lfzawacki/v2.7.x-release-more-languages
[2.7] Support more transcription languages
2024-04-19 11:53:22 -04:00
Anton Georgiev
3c2d89280b
Update bigbluebutton-html5/private/config/settings.yml 2024-04-19 11:24:32 -04:00
Arthurk12
49c33b4eea fix(whiteboard): check before manipulating pan tool class list
Since the pan tool is only available for the presenter, it has to be checked
whether it actually exists before attempting to modify its class list.
2024-04-16 16:18:30 -03:00
Arthurk12
45e1724954 fix(presentation): toolbar width on small screens
Forces the toolbar width to be the maximum available width, which is
the width of the media area, on mobile devices. Also allow the toolbar to
overflow with an horizontal scroll when the available width is not enough
to display all of its contents.
2024-04-16 15:46:50 -03:00
transifex-integration[bot]
31537b1910
Updates for project BigBlueButton v2.7 HTML5 client and language fr (#20015)
* Translate en.json in fr

100% translated source file: 'en.json'
on 'fr'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-04-16 09:41:34 -04:00
Anton Georgiev
916d601d2b
Merge pull request #20008 from prlanzarin/u27/fix/crash-videoprovider-onmessage
[2.7] fix(bbb-html5): crash on video-provider unmount
2024-04-12 15:54:17 -04:00
Anton Georgiev
85b5e83bd5
Merge pull request #20013 from prlanzarin/u27/fix/arthurk12-undefined-role-crash
[2.7] fix: add safeguards when returning user roles
2024-04-12 15:53:42 -04:00
Anton Georgiev
6eaf8cd44d
Merge pull request #20004 from prlanzarin/u27/fix/audio-less-toasts
[2.7] fix(audio): minimize redundant audio exit toasts
2024-04-12 15:53:18 -04:00
Anton Georgiev
b98340bd27
Merge pull request #20003 from prlanzarin/u27/fix/ua-invalid-version-number
[2.7] fix: crash due to invalid UA version number in WKWebView (backport)
2024-04-12 15:37:15 -04:00
Anton Georgiev
10cb2f3875
Merge pull request #20012 from prlanzarin/u27/fix/arthurk12-screenreader-crash
[2.7] fix(screen-reader): add safeguards for adding alerts
2024-04-12 15:33:28 -04:00
Anton Georgiev
2f3e709324
Merge pull request #20007 from prlanzarin/u27/fix/invalid-metadataprop-access
[2.7] fix(bbb-html5): crash due to undefined metadataProp access
2024-04-12 15:32:17 -04:00
Anton Georgiev
711487c2c9
Merge pull request #20009 from prlanzarin/u27/fix/onconnectionstatechange-crash-rc
[2.7] fix(bbb-html5): crash when stopping WebRTC peers
2024-04-12 15:15:03 -04:00
Anton Georgiev
e511535adc
Merge pull request #20006 from prlanzarin/u27/fix/audio-answerer-gum-failure
[2.7] fix(audio): acquire streams before negotiation when peer is answerer
2024-04-12 15:14:17 -04:00
Anton Georgiev
fda4a5a2ff
Merge pull request #20005 from prlanzarin/u27/fix/crash-getBoundingClientRect-emojirain
[2.7] fix(reactions): crash when interactionsButton coords are absent
2024-04-12 15:13:33 -04:00
Arthurk12
72032f2397 fix: add safeguards when returning user roles 2024-04-12 15:14:49 -03:00
Arthurk12
6cb0e914ab fix(screen-reader): add safeguards for adding alerts
Adds checks for the alert's text and DOM element before adding screen
reader alerts.
2024-04-12 15:09:23 -03:00
prlanzarin
68f66a1fbb fix(audio): handle NotAllowedError in skipCheck:true scenarios
In scenarios where the join audio flow skips echo test, NotAllowedError
(and any other errors) are all being mashed together under a generic
MEDIA_ERROR object.

Properly handle specific errors in audio-manager so they're correctly
render in the audio modal help screen.
2024-04-12 14:40:51 -03:00
prlanzarin
501d627392 fix(audio): review audio modal help screen
- Adds a new Help view for unknown error codes
- Correctly detect NotAllowedError (permissions) - they are currently
  being treated like unknown errors in the Help modal
- Rephrase NotAllowedError help text; make it more succint and direct
- Rephrase the unknown error help text; make it more succint and direct
  - Add error code and message to that view
- Add public.media.audioTroubleshootingLinks to allow referencing KB
  links on the Help modal
  - See inline docs
2024-04-12 14:40:44 -03:00
prlanzarin
610f3b165b fix(bbb-html5): crash when stopping WebRTC peers
There's a race condition that may cause a client crash whenever a
connectionstatechange callback is cleaned up in a peer without a
valid peer connection present in our custom RTCPeerConnection wrapper.

Check for peerConnection availability in the WebRtcPeer wrapper before
trying to clean up its connectionstatechange callback.
2024-04-12 14:38:34 -03:00
prlanzarin
10a6a840b5 fix(bbb-html5): crash on video-provider unmount
There's a race condition that may cause a client crash whenever a
video-provider's unmount procedure is run, but its signalling websocket
is undefined. The WS's callback handlers are re-assigned without
checking for the socket's availability, causing an unhandled TypeError.

The WS may be undefined in a couple of scenarios, e.g.: unmouting before
the socket was successfully set up, unmounting while a reconnect is in
place etc.

Check whether the socket exists before accessing it in video-provider's
componentWillUnmount routine.
2024-04-12 14:33:35 -03:00
prlanzarin
71f958ca47 fix(bbb-html5): crash due to undefined metadataProp access
A client crash may happen if either the Meeting collection or the
document's metadataProp attribute are undefined whenever the
getFromMeetingSettings util is called to fetch metadata.
It's debatable whether anything is working in the client if the
documents being accessed here are unavailable, but it'll still be logged
and might bork an ongoing reconnect.

Use optional chaining + nullish coalescing to avoid causing TypeErrors
in those situations while also returning default metadata values
properly.
2024-04-12 14:31:38 -03:00
prlanzarin
555a8f6522 fix(audio): acquire streams before negotiation when peer is answerer
When a sendrecv peer acts as the answerer, gUM is only called _after_
the remote offer is received. This is fine, but the error handling runs
different in that scenario in a way that eventual gUM errors are treated
as negotiation errors, leading to inconsistencies when surfacing the
error to end users.

If a peer is acting as answerer and is a transceiver, acquire the local
streams _before_ actual negotiation so that gUM errors are surfaced
correctly (and we spare uneeded negotiation steps).
2024-04-12 14:29:38 -03:00
prlanzarin
66788e9697 fix(reactions): crash when interactionsButton coords are absent
The client may crash whenever a emoji rain animation is triggered, but
the interactions button element cannot be located. This happens because
the button coordinates are fetched without checking whether the element
exists.

Get the coordinate fetching method to return null if the
interactionsButton element cannot be located, and ignore the emoji rain
action if that is the case. Whenever no valid coordinates are found, log
an warning so we can track this and figure out what's happening with the
button.

Fix a few typos in the getInteractionsButtonCoordinates method.
2024-04-12 14:27:20 -03:00
prlanzarin
4e93a4de72 fix(audio): minimize redundant audio exit toasts
Audio exit toasts are fired in some redundant situations, e.g.: when the
error help screen is toast.

Change the logic a bit so that it's only fired when the audio help modal
won't be shown, i.e.: when audio had succesfully connected.
2024-04-12 14:23:25 -03:00
prlanzarin
3e845076cb fix: crash due to invalid UA version number in WKWebView
There are some scenarios (e.g. WKWebView) where Bowser can't detect the
Safari version number correctly, which leads to a client crash due to an
invalid string.split call in UnsupportedComponent.

In such cases, use the WebKit version to determine it. If that's not the
case and the version number is still unavailable, log an warning and
return Infinity so that we do not deny access to the user (even if
we're uncertain about whether it's a supported browser);
2024-04-12 14:06:44 -03:00
Ramón Souza
e4cced4b92 fix breakout styles 2024-04-12 13:35:01 -03:00
Lucas Fialho Zawacki
f1bad0257d feat(transcription): Add translation strings for ca-ES and documentation links 2024-04-10 16:32:11 -03:00
Lucas Fialho Zawacki
33a704981e feat(captions): Remove speechVoices check before transcription 2024-04-10 11:33:10 -03:00
transifex-integration[bot]
fcbfcb1bbc
Translate en.json in zh_TW (#19979)
100% translated source file: 'en.json'
on 'zh_TW'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-04-10 10:19:47 -04:00
Anton Georgiev
8374e8b21a
Merge pull request #19797 from JoVictorNunes/issue-19181
fix(poll): avoid rendering polling component twice
2024-04-05 11:06:46 -04:00
transifex-integration[bot]
7bf1cdd028
Translate en.json in eu (#19920)
100% translated source file: 'en.json'
on 'eu'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-27 17:50:15 -04:00
transifex-integration[bot]
efa3ca0245
Translate en.json in fa_IR
100% translated source file: 'en.json'
on 'fa_IR'.
2024-03-21 16:47:27 +00:00
transifex-integration[bot]
6f4cb742d8
Updates for project BigBlueButton v2.7 HTML5 client and language tr (#19863)
* Translate en.json in tr

100% translated source file: 'en.json'
on 'tr'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-20 20:16:32 -04:00
Anton Georgiev
ae9a601660
Merge pull request #19810 from bigbluebutton/translations_60cd9b750d2d41cd929b29887b4db1e8_fr
Updates for project BigBlueButton v2.7 HTML5 client and language fr
2024-03-18 10:09:43 -04:00
transifex-integration[bot]
2fc3119c14
Translate en.json in el_GR (#19821)
100% translated source file: 'en.json'
on 'el_GR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-15 14:56:52 -04:00
transifex-integration[bot]
2466bb289e
Translate en.json in fr
100% translated source file: 'en.json'
on 'fr'.
2024-03-15 14:42:31 +00:00
transifex-integration[bot]
a0733d2c5b
Translate en.json in fr
100% translated source file: 'en.json'
on 'fr'.
2024-03-15 14:42:07 +00:00
transifex-integration[bot]
ac8acfe507
Updates for project BigBlueButton v2.7 HTML5 client and language ja (#19780)
* Translate en.json in ja

100% translated source file: 'en.json'
on 'ja'.
---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-14 10:42:24 -04:00
João Victor
64c4567d06 fix(poll): avoid rendering polling component twice 2024-03-14 11:20:08 -03:00
Anton Georgiev
c69b79872b
fix(client): undefined currentUserAway 2024-03-11 09:50:23 -04:00
transifex-integration[bot]
e1e00ea24d
Translate en.json in de (#19771)
100% translated source file: 'en.json'
on 'de'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-10 09:03:11 -04:00
transifex-integration[bot]
7b34845c0b
Translate en.json in ar (#19770)
100% translated source file: 'en.json'
on 'ar'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-03-10 09:02:18 -04:00
Anton Georgiev
8e067c4eef
fix(locale): Remove duplicate localization row 2024-03-09 20:08:12 -05:00
Anton Georgiev
d90caf77dc
chore: Update copyright year 2024-03-08 14:52:48 -05:00
Anton Georgiev
4e8a708c95
Merge pull request #19608 from lfzawacki/gladia-2.7
fix: Several Gladia transcription fixes
2024-03-07 15:32:54 -05:00