diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index cc4708ded89..1c4b554a7a9 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -28,5 +28,8 @@ "Use %(brand)s on mobile": "Verwende %(brand)s am Handy", "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Dezentralisierter, verschlüsselter Chat & Zusammenarbeit unterstützt von $matrixLogo", "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s auf %(osName)s", - "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s" + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s", + "Failed to load Jitsi widget": "Das Jitsi Widget konnte nicht geladen werden", + "Jitsi Video Conference": "Videokonferenz", + "Join Conference": "Videokonferenz beitreten" } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 0a0634199e6..d08fac95956 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -28,5 +28,8 @@ "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Decentralised, encrypted chat & collaboration powered by $matrixLogo", "Sign In": "Sign In", "Create Account": "Create Account", - "Explore rooms": "Explore rooms" + "Explore rooms": "Explore rooms", + "Failed to load Jitsi widget": "Failed to load Jitsi widget", + "Join Conference": "Join Conference", + "Jitsi Video Conference": "Jitsi Video Conference" } diff --git a/src/vector/jitsi/index.html b/src/vector/jitsi/index.html index be84a62c2bf..2479637072d 100644 --- a/src/vector/jitsi/index.html +++ b/src/vector/jitsi/index.html @@ -10,7 +10,7 @@
- +

Jitsi Video Conference

diff --git a/src/vector/jitsi/index.ts b/src/vector/jitsi/index.ts index 4281b908f3e..e3a85f541d7 100644 --- a/src/vector/jitsi/index.ts +++ b/src/vector/jitsi/index.ts @@ -27,6 +27,7 @@ import { import { ElementWidgetActions } from "matrix-react-sdk/src/stores/widgets/ElementWidgetActions"; import { logger } from "matrix-js-sdk/src/logger"; import { IConfigOptions } from "matrix-react-sdk/src/IConfigOptions"; +import { _t, setLanguage } from "matrix-react-sdk/src/languageHandler"; import { SnakedObject } from "matrix-react-sdk/src/utils/SnakedObject"; import { ElementWidgetCapabilities } from "matrix-react-sdk/src/stores/widgets/ElementWidgetCapabilities"; @@ -187,6 +188,8 @@ const setupCompleted = (async (): Promise => { logger.warn("No parent URL or no widget ID - assuming no widget API is available"); } + await applyTranslation(language); + // Populate the Jitsi params now jitsiDomain = qsParam("conferenceDomain"); conferenceId = qsParam("conferenceId"); @@ -229,10 +232,17 @@ const setupCompleted = (async (): Promise => { enableJoinButton(); // always enable the button } catch (e) { logger.error("Error setting up Jitsi widget", e); - document.getElementById("widgetActionContainer").innerText = "Failed to load Jitsi widget"; + document.getElementById("widgetActionContainer").innerText = _t("Failed to load Jitsi widget"); } })(); +async function applyTranslation(language: string): Promise { + await setLanguage(language); + + document.getElementById("joinButton").textContent = _t("Join Conference"); + document.querySelector(".joinConferencePrompt > h2").textContent = _t("Jitsi Video Conference"); +} + function enableJoinButton(): void { document.getElementById("joinButton").onclick = (): void => joinConference(); } @@ -352,7 +362,7 @@ function joinConference(audioInput?: string | null, videoInput?: string | null): // eslint-disable-line camelcase // We've failing to get a token, don't try to init conference logger.warn("Expected to have an OpenID credential, cannot initialize widget."); - document.getElementById("widgetActionContainer").innerText = "Failed to load Jitsi widget"; + document.getElementById("widgetActionContainer").innerText = _t("Failed to load Jitsi widget"); return; } jwt = createJWTToken();