Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Okno",
"MeetingEmptyTitle": "Schůzka ukončena?",
"MeetingEmptyMessage": "Všichni účastníci odešli. Během 1 minuty budete odpojeni. Chcete zůstat?",
"ScreenShareFailed": "Nelze sdílet obrazovku",
"ScreenShareDenied": "Sdílení obrazovky zablokoval váš prohlížeč nebo operační systém. Povolte prohlížeči nahrávání obrazovky v nastavení soukromí systému a zkuste to znovu.",
"ScreenShareUnsupported": "Sdílení obrazovky není v tomto prohlížeči nebo připojení podporováno. Použijte aktuální desktopový prohlížeč přes HTTPS.",
"ScreenShareError": "Sdílení obrazovky se nepodařilo spustit. Zkuste to prosím znovu.",
"ScreenShareNotStartedTitle": "Sdílení obrazovky nebylo spuštěno",
"ScreenShareNotStarted": "Sdílení obrazovky nebylo spuštěno. Pokud jste ho nezrušili, zkontrolujte, zda váš prohlížeč a operační systém povolují sdílení obrazovky pro tento web.",
"StayInRoom": "Zůstat v místnosti"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@
"Window": "Fenster",
"MeetingEmptyTitle": "Besprechung beendet?",
"MeetingEmptyMessage": "Alle Teilnehmer haben die Besprechung verlassen. Sie werden in 1 Minute automatisch getrennt. Möchten Sie bleiben?",
"ScreenShareFailed": "Bildschirmfreigabe nicht möglich",
"ScreenShareDenied": "Die Bildschirmfreigabe wurde von Ihrem Browser oder Betriebssystem blockiert. Erlauben Sie Ihrem Browser die Bildschirmaufnahme in den Datenschutzeinstellungen des Systems und versuchen Sie es erneut.",
"ScreenShareUnsupported": "Die Bildschirmfreigabe wird in diesem Browser oder bei dieser Verbindung nicht unterstützt. Verwenden Sie einen aktuellen Desktop-Browser über HTTPS.",
"ScreenShareError": "Die Bildschirmfreigabe konnte nicht gestartet werden. Bitte versuchen Sie es erneut.",
"ScreenShareNotStartedTitle": "Bildschirmfreigabe nicht gestartet",
"ScreenShareNotStarted": "Die Bildschirmfreigabe wurde nicht gestartet. Falls Sie sie nicht abgebrochen haben, prüfen Sie, ob Ihr Browser und Ihr Betriebssystem die Bildschirmfreigabe für diese Website erlauben.",
"StayInRoom": "Im Raum bleiben"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Window",
"MeetingEmptyTitle": "Meeting ended?",
"MeetingEmptyMessage": "All participants have left. You'll be disconnected in 1 minute. Would you like to stay?",
"ScreenShareFailed": "Unable to share screen",
"ScreenShareDenied": "Screen sharing was blocked by your browser or operating system. Allow screen recording for your browser in the system privacy settings, then try again.",
"ScreenShareUnsupported": "Screen sharing is not supported in this browser or connection. Use a current desktop browser over HTTPS.",
"ScreenShareError": "Screen sharing could not be started. Please try again.",
"ScreenShareNotStartedTitle": "Screen sharing not started",
"ScreenShareNotStarted": "Screen sharing was not started. If you did not cancel it, check that your browser and operating system allow screen sharing for this site.",
"StayInRoom": "Stay in room"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Ventana",
"MeetingEmptyTitle": "¿Reunión finalizada?",
"MeetingEmptyMessage": "Todos los participantes han salido. Serás desconectado en 1 minuto. ¿Deseas permanecer?",
"ScreenShareFailed": "No se puede compartir la pantalla",
"ScreenShareDenied": "Tu navegador o sistema operativo ha bloqueado la pantalla compartida. Permite la grabación de pantalla para tu navegador en la configuración de privacidad del sistema e inténtalo de nuevo.",
"ScreenShareUnsupported": "Compartir pantalla no es compatible con este navegador o conexión. Usa un navegador de escritorio actualizado a través de HTTPS.",
"ScreenShareError": "No se pudo iniciar la pantalla compartida. Inténtalo de nuevo.",
"ScreenShareNotStartedTitle": "No se inició la pantalla compartida",
"ScreenShareNotStarted": "No se inició la pantalla compartida. Si no la cancelaste, comprueba que tu navegador y tu sistema operativo permitan compartir pantalla para este sitio.",
"StayInRoom": "Permanecer en sala"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Fenêtre",
"MeetingEmptyTitle": "Réunion terminée ?",
"MeetingEmptyMessage": "Tous les participants sont partis. Vous serez déconnecté dans 1 minute. Souhaitez-vous rester ?",
"ScreenShareFailed": "Impossible de partager l'écran",
"ScreenShareDenied": "Le partage d'écran a été bloqué par votre navigateur ou votre système d'exploitation. Autorisez l'enregistrement de l'écran pour votre navigateur dans les paramètres de confidentialité du système, puis réessayez.",
"ScreenShareUnsupported": "Le partage d'écran n'est pas pris en charge par ce navigateur ou cette connexion. Utilisez un navigateur de bureau récent via HTTPS.",
"ScreenShareError": "Le partage d'écran n'a pas pu démarrer. Veuillez réessayer.",
"ScreenShareNotStartedTitle": "Partage d'écran non démarré",
"ScreenShareNotStarted": "Le partage d'écran n'a pas démarré. Si vous ne l'avez pas annulé, vérifiez que votre navigateur et votre système d'exploitation autorisent le partage d'écran pour ce site.",
"StayInRoom": "Rester dans la salle"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Finestra",
"MeetingEmptyTitle": "Riunione terminata?",
"MeetingEmptyMessage": "Tutti i partecipanti hanno abbandonato. Sarai disconnesso tra 1 minuto. Vuoi rimanere?",
"ScreenShareFailed": "Impossibile condividere lo schermo",
"ScreenShareDenied": "La condivisione dello schermo è stata bloccata dal browser o dal sistema operativo. Consenti la registrazione dello schermo per il browser nelle impostazioni sulla privacy del sistema e riprova.",
"ScreenShareUnsupported": "La condivisione dello schermo non è supportata da questo browser o da questa connessione. Usa un browser desktop aggiornato tramite HTTPS.",
"ScreenShareError": "Impossibile avviare la condivisione dello schermo. Riprova.",
"ScreenShareNotStartedTitle": "Condivisione dello schermo non avviata",
"ScreenShareNotStarted": "La condivisione dello schermo non è stata avviata. Se non l'hai annullata, verifica che il browser e il sistema operativo consentano la condivisione dello schermo per questo sito.",
"StayInRoom": "Rimani nella stanza"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "ウィンドウ",
"MeetingEmptyTitle": "ミーティング終了?",
"MeetingEmptyMessage": "全参加者が退出しました。1分後に自動切断されます。ミーティングに残りますか?",
"ScreenShareFailed": "画面を共有できません",
"ScreenShareDenied": "画面共有がブラウザーまたはOSによってブロックされました。システムのプライバシー設定でブラウザーの画面収録を許可してから、もう一度お試しください。",
"ScreenShareUnsupported": "このブラウザーまたは接続では画面共有がサポートされていません。HTTPS経由で最新のデスクトップブラウザーをご利用ください。",
"ScreenShareError": "画面共有を開始できませんでした。もう一度お試しください。",
"ScreenShareNotStartedTitle": "画面共有が開始されませんでした",
"ScreenShareNotStarted": "画面共有が開始されませんでした。キャンセルしていない場合は、ブラウザーとOSでこのサイトの画面共有が許可されているか確認してください。",
"StayInRoom": "ルームに残る"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "창",
"MeetingEmptyTitle": "회의가 종료되었나요?",
"MeetingEmptyMessage": "모든 참가자가 나갔습니다. 1분 후 연결이 종료됩니다. 계속 머무르시겠습니까?",
"ScreenShareFailed": "화면을 공유할 수 없습니다",
"ScreenShareDenied": "브라우저 또는 운영 체제에서 화면 공유를 차단했습니다. 시스템 개인정보 보호 설정에서 브라우저의 화면 녹화를 허용한 후 다시 시도하세요.",
"ScreenShareUnsupported": "이 브라우저 또는 연결에서는 화면 공유가 지원되지 않습니다. HTTPS를 통해 최신 데스크톱 브라우저를 사용하세요.",
"ScreenShareError": "화면 공유를 시작할 수 없습니다. 다시 시도하세요.",
"ScreenShareNotStartedTitle": "화면 공유가 시작되지 않았습니다",
"ScreenShareNotStarted": "화면 공유가 시작되지 않았습니다. 취소하지 않았다면 브라우저와 운영 체제에서 이 사이트의 화면 공유가 허용되어 있는지 확인하세요.",
"StayInRoom": "룸에 머무르기"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Okno",
"MeetingEmptyTitle": "Spotkanie się skończyło?",
"MeetingEmptyMessage": "Wszyscy uczestnicy opuścili. Zostaniesz rozłączony za 1 minutę. Czy chcesz zostać?",
"ScreenShareFailed": "Nie można udostępnić ekranu",
"ScreenShareDenied": "Udostępnianie ekranu zostało zablokowane przez przeglądarkę lub system operacyjny. Zezwól przeglądarce na nagrywanie ekranu w ustawieniach prywatności systemu i spróbuj ponownie.",
"ScreenShareUnsupported": "Udostępnianie ekranu nie jest obsługiwane w tej przeglądarce lub przy tym połączeniu. Użyj aktualnej przeglądarki na komputerze przez HTTPS.",
"ScreenShareError": "Nie udało się rozpocząć udostępniania ekranu. Spróbuj ponownie.",
"ScreenShareNotStartedTitle": "Udostępnianie ekranu nie zostało rozpoczęte",
"ScreenShareNotStarted": "Udostępnianie ekranu nie zostało rozpoczęte. Jeśli go nie anulowano, sprawdź, czy przeglądarka i system operacyjny zezwalają na udostępnianie ekranu dla tej witryny.",
"StayInRoom": "Pozostań w pokoju"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Janela",
"MeetingEmptyTitle": "Reunião encerrada?",
"MeetingEmptyMessage": "Todos os participantes saíram. Você será desconectado em 1 minuto. Deseja permanecer?",
"ScreenShareFailed": "Não foi possível compartilhar a tela",
"ScreenShareDenied": "O compartilhamento de tela foi bloqueado pelo navegador ou pelo sistema operacional. Permita a gravação de tela para o navegador nas configurações de privacidade do sistema e tente novamente.",
"ScreenShareUnsupported": "O compartilhamento de tela não é compatível com este navegador ou conexão. Use um navegador de desktop atualizado via HTTPS.",
"ScreenShareError": "Não foi possível iniciar o compartilhamento de tela. Tente novamente.",
"ScreenShareNotStartedTitle": "Compartilhamento de tela não iniciado",
"ScreenShareNotStarted": "O compartilhamento de tela não foi iniciado. Se você não o cancelou, verifique se o navegador e o sistema operacional permitem o compartilhamento de tela para este site.",
"StayInRoom": "Permanecer na sala"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Janela",
"MeetingEmptyTitle": "Reunião encerrada?",
"MeetingEmptyMessage": "Todos os participantes saíram. Você será desconectado em 1 minuto. Deseja permanecer?",
"ScreenShareFailed": "Não foi possível partilhar o ecrã",
"ScreenShareDenied": "A partilha de ecrã foi bloqueada pelo navegador ou pelo sistema operativo. Permita a gravação de ecrã para o navegador nas definições de privacidade do sistema e tente novamente.",
"ScreenShareUnsupported": "A partilha de ecrã não é suportada neste navegador ou ligação. Utilize um navegador de computador atualizado através de HTTPS.",
"ScreenShareError": "Não foi possível iniciar a partilha de ecrã. Tente novamente.",
"ScreenShareNotStartedTitle": "Partilha de ecrã não iniciada",
"ScreenShareNotStarted": "A partilha de ecrã não foi iniciada. Se não a cancelou, verifique se o navegador e o sistema operativo permitem a partilha de ecrã para este site.",
"StayInRoom": "Permanecer na sala"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Окно",
"MeetingEmptyTitle": "Совещание завершено?",
"MeetingEmptyMessage": "Все участники вышли. Вы будете отключены через 1 минуту. Хотите остаться?",
"ScreenShareFailed": "Не удаётся показать экран",
"ScreenShareDenied": "Демонстрация экрана заблокирована браузером или операционной системой. Разрешите браузеру запись экрана в настройках конфиденциальности системы и повторите попытку.",
"ScreenShareUnsupported": "Демонстрация экрана не поддерживается в этом браузере или при этом подключении. Используйте актуальный настольный браузер через HTTPS.",
"ScreenShareError": "Не удалось начать демонстрацию экрана. Повторите попытку.",
"ScreenShareNotStartedTitle": "Демонстрация экрана не начата",
"ScreenShareNotStarted": "Демонстрация экрана не была начата. Если вы её не отменяли, проверьте, что браузер и операционная система разрешают демонстрацию экрана для этого сайта.",
"StayInRoom": "Остаться в комнате"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "Pencere",
"MeetingEmptyTitle": "Toplantı bitti mi?",
"MeetingEmptyMessage": "Tüm katılımcılar ayrıldı. 1 dakika içinde bağlantınız kesilecek. Kalmak ister misiniz?",
"ScreenShareFailed": "Ekran paylaşılamıyor",
"ScreenShareDenied": "Ekran paylaşımı tarayıcınız veya işletim sisteminiz tarafından engellendi. Sistem gizlilik ayarlarında tarayıcınız için ekran kaydına izin verin ve tekrar deneyin.",
"ScreenShareUnsupported": "Ekran paylaşımı bu tarayıcıda veya bağlantıda desteklenmiyor. HTTPS üzerinden güncel bir masaüstü tarayıcısı kullanın.",
"ScreenShareError": "Ekran paylaşımı başlatılamadı. Lütfen tekrar deneyin.",
"ScreenShareNotStartedTitle": "Ekran paylaşımı başlatılmadı",
"ScreenShareNotStarted": "Ekran paylaşımı başlatılmadı. İptal etmediyseniz, tarayıcınızın ve işletim sisteminizin bu site için ekran paylaşımına izin verdiğini kontrol edin.",
"StayInRoom": "Odada kal"
}
}
6 changes: 6 additions & 0 deletions plugins/love-assets/lang/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
"Window": "窗口",
"MeetingEmptyTitle": "会议已结束?",
"MeetingEmptyMessage": "所有参与者已离开。您将在1分钟后断开连接。是否要留在会议中?",
"ScreenShareFailed": "无法共享屏幕",
"ScreenShareDenied": "屏幕共享已被浏览器或操作系统阻止。请在系统隐私设置中允许浏览器录制屏幕,然后重试。",
"ScreenShareUnsupported": "此浏览器或连接不支持屏幕共享。请通过 HTTPS 使用最新的桌面浏览器。",
"ScreenShareError": "无法开始屏幕共享。请重试。",
"ScreenShareNotStartedTitle": "未开始屏幕共享",
"ScreenShareNotStarted": "屏幕共享未开始。如果您没有取消,请检查浏览器和操作系统是否允许此网站共享屏幕。",
"StayInRoom": "留在房间"
}
}
4 changes: 3 additions & 1 deletion plugins/love-resources/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
"build": "compile ui",
"build:docs": "api-extractor run --local",
"format": "format src",
"test": "jest --passWithNoTests --silent",
"svelte-check": "do-svelte-check",
"_phase:svelte-check": "do-svelte-check",
"build:watch": "compile ui",
"_phase:build": "compile ui",
"_phase:format": "format src",
"_phase:validate": "compile validate"
"_phase:validate": "compile validate",
"_phase:test": "jest --passWithNoTests --silent"
},
"devDependencies": {
"svelte-loader": "^3.2.0",
Expand Down
58 changes: 58 additions & 0 deletions plugins/love-resources/src/__tests__/screenShareError.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
//
// Copyright © 2026 Hardcore Engineering Inc.
//
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License. You may
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//

import { getScreenShareErrorKind } from '../screenShareError'

function err (name: string, message: string = ''): Error {
const e = new Error(message)
e.name = name
return e
}

describe('getScreenShareErrorKind', () => {
it('reports an ambiguous NotAllowedError as not started', () => {
expect(getScreenShareErrorKind(err('NotAllowedError', 'Permission denied'))).toBe('notStarted')
expect(
getScreenShareErrorKind(
err('NotAllowedError', 'The request is not allowed by the user agent or the platform in the current context.')
)
).toBe('notStarted')
})

it('detects a permission denied by the operating system', () => {
expect(getScreenShareErrorKind(err('NotAllowedError', 'Permission denied by system'))).toBe('denied')
})

it('detects a permission denied by permissions policy', () => {
expect(
getScreenShareErrorKind(
err('NotAllowedError', 'Access to the feature "display-capture" is disallowed by permission policy.')
)
).toBe('denied')
expect(getScreenShareErrorKind(err('SecurityError', 'Insecure context'))).toBe('denied')
})

it('detects unsupported screen sharing', () => {
expect(getScreenShareErrorKind(err('DeviceUnsupportedError', 'getDisplayMedia not supported'))).toBe('unsupported')
expect(getScreenShareErrorKind(err('NotSupportedError'))).toBe('unsupported')
expect(getScreenShareErrorKind(new TypeError('x is undefined'), false)).toBe('unsupported')
})

it('reports other errors as failed', () => {
expect(getScreenShareErrorKind(err('NotReadableError', 'Could not start video source'))).toBe('failed')
expect(getScreenShareErrorKind(err('AbortError', 'Starting videoinput failed'))).toBe('failed')
expect(getScreenShareErrorKind(undefined)).toBe('failed')
})
})
Loading
Loading