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();