diff --git a/js/app.js b/js/app.js
index 8303021..cff2409 100644
--- a/js/app.js
+++ b/js/app.js
@@ -2,6 +2,10 @@
(function () {
'use strict';
+ /* ==================== LANGUAGE ==================== */
+ var SITE_LANG = (document.documentElement.lang || 'de').toLowerCase().indexOf('en') === 0 ? 'en' : 'de';
+ var SUMMARY_FILE = SITE_LANG === 'en' ? 'summary_en.json' : 'summary.json';
+
/* ==================== NAVBAR ==================== */
var navbar = document.getElementById('navbar');
window.addEventListener('scroll', function () {
@@ -197,11 +201,19 @@
var lageData = {};
var dataLoaded = false;
- var lageTitles = {
- 'iran-konflikt': 'Gro\u00dflage - Irankonflikt',
- 'cyberangriffe': 'Cyberangriffe auf deutsche Infrastruktur',
- 'deepfakes': 'Rechtliche Lage von Deepfakes in Deutschland'
+ var lageTitlesByLang = {
+ de: {
+ 'iran-konflikt': 'Gro\u00dflage - Irankonflikt',
+ 'cyberangriffe': 'Cyberangriffe auf deutsche Infrastruktur',
+ 'deepfakes': 'Rechtliche Lage von Deepfakes in Deutschland'
+ },
+ en: {
+ 'iran-konflikt': 'Major situation - Iran conflict',
+ 'cyberangriffe': 'Cyberattacks on German infrastructure',
+ 'deepfakes': 'Legal status of deepfakes in Germany'
+ }
};
+ var lageTitles = lageTitlesByLang[SITE_LANG] || lageTitlesByLang.de;
/* ==================== 3D CAROUSEL ==================== */
var cards = document.querySelectorAll('.carousel-card');
@@ -427,7 +439,8 @@ function mdToHtml(md) {
}
function loadLiveData() {
- fetch('/lagen/iran-konflikt/data/summary.json?t=' + Date.now())
+ fetch('/lagen/iran-konflikt/data/' + SUMMARY_FILE + '?t=' + Date.now())
+ .then(function (r) { if (!r.ok && SITE_LANG === 'en') return fetch('/lagen/iran-konflikt/data/summary.json?t=' + Date.now()); return r; })
.then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })
.then(function (data) {
var inc = data.incident || {};
@@ -532,7 +545,12 @@ function mdToHtml(md) {
mentioned: '#7b7b7b'
};
- var defaultLabels = {
+ var defaultLabels = SITE_LANG === 'en' ? {
+ primary: 'Primary',
+ secondary: 'Reactions',
+ tertiary: 'Involved',
+ mentioned: 'Mentioned'
+ } : {
primary: 'Hauptgeschehen',
secondary: 'Reaktionen',
tertiary: 'Beteiligte',
@@ -582,7 +600,7 @@ function mdToHtml(md) {
legend.onAdd = function () {
var div = L.DomUtil.create('div');
div.style.cssText = 'background:#151D2E;padding:10px 14px;border-radius:4px;border:1px solid #1E2D45;box-shadow:0 2px 8px rgba(0,0,0,0.3);font-size:0.8rem;line-height:1.8;color:#E8ECF4;';
- var html = 'Legende
';
+ var html = '' + (SITE_LANG === 'en' ? 'Legend' : 'Legende') + '
';
['primary', 'secondary', 'tertiary', 'mentioned'].forEach(function (cat) {
if (usedCategories[cat]) {
html += '● ' + categoryLabels[cat] + '
';
@@ -669,7 +687,8 @@ function mdToHtml(md) {
/* ==================== LOAD DEEPFAKES DATA ==================== */
function loadDeepfakesData() {
- fetch('/lagen/deepfakes/data/summary.json?t=' + Date.now())
+ fetch('/lagen/deepfakes/data/' + SUMMARY_FILE + '?t=' + Date.now())
+ .then(function (r) { if (!r.ok && SITE_LANG === 'en') return fetch('/lagen/deepfakes/data/summary.json?t=' + Date.now()); return r; })
.then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })
.then(function (data) {
var excerptEl = document.getElementById('excerpt-text-deepfakes');
@@ -696,7 +715,8 @@ function mdToHtml(md) {
/* ==================== LOAD CYBERANGRIFFE DATA ==================== */
function loadCyberangriffeData() {
- fetch('/lagen/cyberangriffe/data/summary.json?t=' + Date.now())
+ fetch('/lagen/cyberangriffe/data/' + SUMMARY_FILE + '?t=' + Date.now())
+ .then(function (r) { if (!r.ok && SITE_LANG === 'en') return fetch('/lagen/cyberangriffe/data/summary.json?t=' + Date.now()); return r; })
.then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })
.then(function (data) {
var excerptEl = document.getElementById('excerpt-text-cyberangriffe');