diff --git a/app/client/public/locales/da/translation.json b/app/client/public/locales/da/translation.json
new file mode 100644
index 0000000..3c7c7f9
--- /dev/null
+++ b/app/client/public/locales/da/translation.json
@@ -0,0 +1,45 @@
+{
+ "Waiting for user to click ALLOW button on screen sharing device...": "Venter på at brugeren klikker TILLAD knappen på skærmdelingsenheden...",
+ "Waiting for user to select source to share from screen sharing device...": "Venter på at brugeren vælger kilden, som skal deles fra skærmdelingsenheden...",
+ "My Device Info": "Min enhedsinfo",
+ "Device Type": "Enhedstype",
+ "Your Device IP should match with Device IP in alert popup appeared on your computer, where Deskreen is running": "Din Enheds IP burde matche sammen med den Enheds IP, som ses i advarselspopup'en vist på din computer, hvor Deskreen kører",
+ "Device IP": "Enhedens IP",
+ "Device Browser": "Enhedens Browser",
+ "Device OS": "Enhedens Operativsystem",
+ "These details should match with the ones that you see in alert popup on computer screen, where Deskreen is running": "Disse detaljer skal matche med dem, som du ser i advarselspopup'en på computerskærmen, hvor Deskreen kører",
+ "Deskreen Screen Viewer": "Deskreen Skærmviser",
+ "Connected!": "Forbundet!",
+ "Error occurred": "Der skete en fejl",
+ "Deskreen Error Dialog": "Deskreen Fejl Dialog",
+ "Something went wrong": "Noget gik galt",
+ "You may close this browser window then try to connect again": "Prøv at lukke dette browservindue og forbind igen",
+ "An unknown error occurred": "Der opstod en ukendt fejl",
+ "You were not allowed to connect": "Der blev ikke tilladt forbindelse",
+ "You were disconnected": "Du blev afbrudt",
+ "WebRTC error occurred": "Der opstod en WebRTC fejl",
+ "If you like Deskreen consider contributing financially Deskreen is open-source Your donations keep us motivated to make Deskreen even better": "Hvis du er vild med Deskreen, så overvej at bidrage til Deskreen financielt. Deskreen er open-source. Dine donationer hjælper os med at forblive motiverede for at gøre Deskreen endnu bedre.",
+ "Donate": "Donér",
+ "Video stream is paused": "Videostream er pauset",
+ "Video stream is playing": "Videostream kører",
+ "Pause": "Pause",
+ "Play": "Kør",
+ "Video Settings": "Videoindstillinger",
+ "Flip": "Vend",
+ "Video quality has been changed to": "Videokvaliteten er blevet ændret til",
+ "Click to Open Video Settings": "Klik her for at åbne Videoindstillinger",
+ "Click to Enter Full Screen Mode": "Klik her for at gå ind i fuldskærmstilstand",
+ "Default video player has been turned OFF": "Standard videospiller er blevet slået FRA",
+ "Default video player has been turned ON": "Standard videospiller er blevet slået TIL",
+ "ON": "TIL",
+ "OFF": "FRA",
+ "Default Video Player": "Standard Videospiller",
+ "Click to visit our website": "Klik jer for at besøge vores hjemmeside",
+ "Video is flipped horizontally": "Videoen er vendt horisontalt",
+ "TRANSLATIONS BELOW ARE NOT ADDED TO UI YET, BUT YOUR TRANSLATIONS ARE WELCOME! THE FEATURES WILL BE ADDED SOON SO YOUR TRANSLATIONS ARE NEEDED": "",
+ "Click to see connection info": "Klik jer for at se forbindelsesinfo",
+ "Pair ID": "Par ID",
+ "Unpair": "Annullér Pardannelse",
+ "Session ID": "Sessionsid",
+ "Click to boost video stream if it is lagging": "Klik her for at booste videostreamen, hvis det lagger"
+}
diff --git a/app/client/public/locales/de/translation.json b/app/client/public/locales/de/translation.json
new file mode 100644
index 0000000..94f92b3
--- /dev/null
+++ b/app/client/public/locales/de/translation.json
@@ -0,0 +1,45 @@
+{
+ "Waiting for user to click ALLOW button on screen sharing device...": "Warten bis der Nutzer auf dem Freigabegerät auf ZULASSEN klickt ...",
+ "Waiting for user to select source to share from screen sharing device...": "Warten bis der Nutzer eine Quelle für die Freigabe auswählt...",
+ "My Device Info": "Meine Geräteinformationen",
+ "Device Type": "Gerätetyp",
+ "Your Device IP should match with Device IP in alert popup appeared on your computer, where Deskreen is running": "Deine Geräte-IP sollte mit der \"Geräte-IP\" im Dialog auf dem Computer, auf dem Deskreen läuft, übereinstimmen.",
+ "Device IP": "Geräte-IP",
+ "Device Browser": "Geräte-Browser",
+ "Device OS": "Geräte-Betriebssystem",
+ "These details should match with the ones that you see in alert popup on computer screen, where Deskreen is running": "Diese Informationen sollten mit denen im Dialog auf dem Freigabegerät übereinstimmen.",
+ "Deskreen Screen Viewer": "Deskreen Bildschrimansicht",
+ "Connected!": "Verbunden!",
+ "Error occurred": "Ein Fehler ist aufgetreten",
+ "Deskreen Error Dialog": "Deskreen Fehler Dialog",
+ "Something went wrong": "Etwas ist schief gegangen",
+ "You may close this browser window then try to connect again": "Schließe das Browserfenster und probiere es erneut",
+ "An unknown error occurred": "Ein unbekannter Fehler ist aufgetreten",
+ "You were not allowed to connect": "Die Verbindung wurde nicht zugelassen",
+ "You were disconnected": "Die Verbindung wurde getrennt",
+ "WebRTC error occurred": "WebRTC Fehler aufgetreten",
+ "If you like Deskreen consider contributing financially Deskreen is open-source Your donations keep us motivated to make Deskreen even better": "Wenn dir Deskreen gefällt, denke über eine Spende nach. Deskreen ist Open-Source. Spenden motivieren uns, Deskreen noch besser zu machen.",
+ "Donate": "Spenden",
+ "Video stream is paused": "Videostream ist pausiert",
+ "Video stream is playing": "Videostream läuft",
+ "Pause": "Pause",
+ "Play": "Abspielen",
+ "Video Settings": "Video Einstellungen",
+ "Flip": "Drehen",
+ "Video quality has been changed to": "Videoqualität wurde geändert zu",
+ "Click to Open Video Settings": "Klicken um Videoeinstellungen zu öffnen",
+ "Click to Enter Full Screen Mode": "Klicken für Vollbild",
+ "Default video player has been turned OFF": "Standard Video-Player wurde ausgeschaltet",
+ "Default video player has been turned ON": "Standard Video-Player wurde eingeschaltet",
+ "ON": "AN",
+ "OFF": "AUS",
+ "Default Video Player": "Standard Video-Player",
+ "Click to visit our website": "Klicken um unsere Website zu besuchen",
+ "Video is flipped horizontally": "Das Video ist horizontal gedreht",
+ "TRANSLATIONS BELOW ARE NOT ADDED TO UI YET, BUT YOUR TRANSLATIONS ARE WELCOME! THE FEATURES WILL BE ADDED SOON SO YOUR TRANSLATIONS ARE NEEDED": "",
+ "Click to see connection info": "Klicken um Verbindungsinformationen anzuzeigen",
+ "Pair ID": "Kopplungs-ID",
+ "Unpair": "Entkoppeln",
+ "Session ID": "Sitzungs-ID",
+ "Click to boost video stream if it is lagging": "Klicken um den Videostream zu verbessern, wenn er verzögert ist."
+}
diff --git a/app/client/public/locales/de/translation.missing.json b/app/client/public/locales/de/translation.missing.json
new file mode 100644
index 0000000..e69de29
diff --git a/app/client/src/config/i18n.ts b/app/client/src/config/i18n.ts
index e2db954..0412fca 100644
--- a/app/client/src/config/i18n.ts
+++ b/app/client/src/config/i18n.ts
@@ -23,7 +23,7 @@ i18n
saveMissingTo: 'all',
fallbackLng: 'en', // TODO: to generate missing keys use false as value here, will be useful when custom nodejs server is created to store missing values
debug: false, // change to true to see debug message logs in browser console
- whitelist: ['en', 'es', 'ru', 'ua', 'zh_CN', 'zh_TW'],
+ whitelist: ['en', 'es', 'ru', 'ua', 'zh_CN', 'zh_TW', 'da', 'de'],
backend: {
// path where resources get loaded from
diff --git a/app/components/SettingsOverlay/__snapshots__/SettingsOverlay.spec.tsx.snap b/app/components/SettingsOverlay/__snapshots__/SettingsOverlay.spec.tsx.snap
index 1fcdc8c..b7fd4a7 100644
--- a/app/components/SettingsOverlay/__snapshots__/SettingsOverlay.spec.tsx.snap
+++ b/app/components/SettingsOverlay/__snapshots__/SettingsOverlay.spec.tsx.snap
@@ -444,6 +444,16 @@ exports[`should match exact snapshot 1`] = `
>
繁體中文
+
+
繁體中文
+
+
繁體中文
+
+
{
expectedMap.set('Українська', 'ua');
expectedMap.set('简体中文', 'zh_CN');
expectedMap.set('繁體中文', 'zh_TW');
+ expectedMap.set('Dansk', 'da');
+ expectedMap.set('Deutsch', 'de');
const res = getLangFullNameToLangISOKeyMap();
@@ -42,6 +44,8 @@ describe('i18next.config.client tests', () => {
expectedMap.set('ua', 'Українська');
expectedMap.set('zh_CN', '简体中文');
expectedMap.set('zh_TW', '繁體中文');
+ expectedMap.set('da', 'Dansk');
+ expectedMap.set('de', 'Deutsch');
const res = getLangISOKeyToLangFullNameMap();
diff --git a/app/configs/i18next.config.client.ts b/app/configs/i18next.config.client.ts
index a0bf4aa..d1a1604 100644
--- a/app/configs/i18next.config.client.ts
+++ b/app/configs/i18next.config.client.ts
@@ -16,6 +16,8 @@ import translationUA from '../locales/ua/translation.json';
import translationRU from '../locales/ru/translation.json';
import translationZH_CN from '../locales/zh_CN/translation.json';
import translationZH_TW from '../locales/zh_TW/translation.json';
+import translationDA from '../locales/da/translation.json';
+import translationDE from '../locales/de/translation.json';
export const getLangFullNameToLangISOKeyMap = (): Map => {
const res = new Map();
@@ -55,6 +57,8 @@ export const getShuffledArrayOfHello = (): string[] => {
res.push(translationRU.Hello);
res.push(translationZH_CN.Hello);
res.push(translationZH_TW.Hello);
+ res.push(translationDA.Hello);
+ res.push(translationDE.Hello);
shuffleArray(res);
diff --git a/app/containers/__snapshots__/DeskreenStepper.spec.tsx.snap b/app/containers/__snapshots__/DeskreenStepper.spec.tsx.snap
index 77578bc..b1a30ba 100644
--- a/app/containers/__snapshots__/DeskreenStepper.spec.tsx.snap
+++ b/app/containers/__snapshots__/DeskreenStepper.spec.tsx.snap
@@ -1711,6 +1711,16 @@ exports[`should match exact snapshot 1`] = `
>
繁體中文
+
+
繁體中文
+
+
繁體中文
+
+
繁體中文
+
+
繁體中文
+
+
繁體中文
+
+
繁體中文
+
+
繁體中文
+
+