AI-powered verification of all key statements against independent sources. Statements are continuously checked against new sources – when new evidence appears, the status is updated automatically.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/app.js b/js/app.js
index f45b528..8303021 100644
--- a/js/app.js
+++ b/js/app.js
@@ -631,8 +631,12 @@ function mdToHtml(md) {
// Form submit -> server-side SMTP
window.submitContact = function (e) {
e.preventDefault();
+ var lang = (document.documentElement.lang || 'de').toLowerCase().indexOf('en') === 0 ? 'en' : 'de';
+ var T = lang === 'en'
+ ? { sending: 'Sending...', send: 'Send message', sendError: 'Error sending message', netError: 'Connection error. Please try again.' }
+ : { sending: 'Wird gesendet...', send: 'Nachricht senden', sendError: 'Fehler beim Senden', netError: 'Verbindungsfehler. Bitte versuchen Sie es erneut.' };
var btn = e.target.querySelector('button[type="submit"]');
- if (btn) { btn.disabled = true; btn.textContent = 'Wird gesendet...'; }
+ if (btn) { btn.disabled = true; btn.textContent = T.sending; }
fetch('/api/contact', {
method: 'POST',
@@ -641,7 +645,8 @@ function mdToHtml(md) {
name: document.getElementById('cf-name').value,
organisation: document.getElementById('cf-org').value,
email: document.getElementById('cf-email').value,
- message: document.getElementById('cf-message').value
+ message: document.getElementById('cf-message').value,
+ lang: lang
})
})
.then(function (r) { return r.json().then(function (d) { return { ok: r.ok, data: d }; }); })
@@ -651,13 +656,13 @@ function mdToHtml(md) {
document.getElementById('form-success').style.display = 'block';
if (window.umami) umami.track('contact_form_success');
} else {
- alert(res.data.error || 'Fehler beim Senden');
- if (btn) { btn.disabled = false; btn.textContent = 'Nachricht senden'; }
+ alert(res.data.error || T.sendError);
+ if (btn) { btn.disabled = false; btn.textContent = T.send; }
}
})
.catch(function () {
- alert('Verbindungsfehler. Bitte versuchen Sie es erneut.');
- if (btn) { btn.disabled = false; btn.textContent = 'Nachricht senden'; }
+ alert(T.netError);
+ if (btn) { btn.disabled = false; btn.textContent = T.send; }
});
return false;
};
diff --git a/lagen/cyberangriffe/index.html b/lagen/cyberangriffe/index.html
index 11553e7..a0ec6ad 100644
--- a/lagen/cyberangriffe/index.html
+++ b/lagen/cyberangriffe/index.html
@@ -5,6 +5,9 @@
Lagebild: Cyberangriffe auf deutsche Infrastruktur - AegisSight
+
+
+
@@ -33,7 +36,7 @@