Add CSS, JS and asset files (without videos)
Dieser Commit ist enthalten in:
410
js/translations.js
Normale Datei
410
js/translations.js
Normale Datei
@ -0,0 +1,410 @@
|
||||
/**
|
||||
* Translation system for IntelSight website
|
||||
* Supports German (de) and English (en)
|
||||
*/
|
||||
|
||||
// Translation strings
|
||||
const translations = {
|
||||
de: {
|
||||
// Page meta
|
||||
pageTitle: 'IntelSight - Sicherheit Made in Germany',
|
||||
|
||||
// Navigation
|
||||
skipNav: 'Zum Hauptinhalt springen',
|
||||
navHome: 'Startseite',
|
||||
navAbout: 'Über uns',
|
||||
navProducts: 'Produkte & Lösungen',
|
||||
navContact: 'Kontakt',
|
||||
langSwitch: 'DE | EN',
|
||||
|
||||
// Hero Section
|
||||
heroTitle: 'SICHERHEIT MADE IN GERMANY',
|
||||
heroSubtitle: 'Spezialist für hochsichere, maßgeschneiderte IT-Lösungen für Behörden',
|
||||
|
||||
// Trust Indicators
|
||||
indicatorAvailability: 'Verfügbarkeit',
|
||||
indicatorTrust: 'Behörden vertrauen uns',
|
||||
indicatorSupport: 'Support',
|
||||
|
||||
// Scroll Indicator
|
||||
scrollToExplore: 'Nach unten scrollen',
|
||||
|
||||
// About Section
|
||||
aboutTitle: 'ÜBER UNS',
|
||||
aboutSubtitle: 'Ihr Partner für sichere Behördensoftware',
|
||||
|
||||
// About Tabs
|
||||
tabWhoWeAre: 'Unternehmen',
|
||||
tabMission: 'Mission & Werte',
|
||||
tabCompetencies: 'Kernkompetenzen',
|
||||
tabWhyUs: 'Unser Versprechen',
|
||||
|
||||
// Who We Are
|
||||
whoWeAreTitle: 'Unternehmen',
|
||||
whoWeArePara1: 'IntelSight UG ist Ihr <strong>Spezialist für hochsichere, maßgeschneiderte IT-Lösungen</strong> aus Nordrhein-Westfalen. Wir entwickeln innovative Software speziell für staatliche Sicherheits- und Ermittlungsbehörden.',
|
||||
whoWeArePara2: 'Unser Ansatz vereint modernste Technologie mit einem tiefen Verständnis für die besonderen Anforderungen von Behörden. Dabei steht die Balance zwischen Sicherheit, Effizienz und rechtskonformer Umsetzung im Mittelpunkt unserer Arbeit.',
|
||||
locationBadge: 'Nordrhein-Westfalen, Deutschland',
|
||||
nrwLabel: 'Nordrhein-Westfalen',
|
||||
headquartersLabel: 'Unser Standort: Langenfeld',
|
||||
|
||||
// Mission & Values
|
||||
missionTitle: 'Unsere Mission',
|
||||
missionStatement: 'Wir schaffen <strong>effiziente, sichere und datenschutzkonforme Lösungen</strong> für moderne Strafverfolgung und Sicherheitsbehörden.',
|
||||
valueIntegrityTitle: 'Integrität',
|
||||
valueIntegrityDesc: 'Höchste ethische Standards in allem was wir tun',
|
||||
valueTransparencyTitle: 'Transparenz',
|
||||
valueTransparencyDesc: 'Offene Kommunikation und nachvollziehbare Prozesse',
|
||||
valueDemocracyTitle: 'Demokratische Prinzipien',
|
||||
valueDemocracyDesc: 'Kooperation nur mit Behörden im Einklang mit der freiheitlich demokratischen Grundordnung',
|
||||
principleNote: '<strong>Unser Ziel:</strong> Technologie, die Recht und Sicherheit stärkt und die freiheitlich demokratische Grundordnung schützt.',
|
||||
|
||||
// Competencies
|
||||
competenciesTitle: 'Unsere Kernkompetenzen',
|
||||
comp1Title: 'Behördenspezifische Software',
|
||||
comp1Desc: 'Entwicklung mit höchsten Sicherheitsstandards, maßgeschneidert für staatliche Anforderungen',
|
||||
comp2Title: 'Intuitive Bedienkonzepte',
|
||||
comp2Desc: 'Benutzerfreundliche Oberflächen trotz komplexer Funktionen für effizientes Arbeiten',
|
||||
comp3Title: 'Langzeit-Support',
|
||||
comp3Desc: 'Kontinuierliche Sicherheitsupdates und zuverlässige Wartung über den gesamten Lebenszyklus',
|
||||
|
||||
// Why Us
|
||||
whyUsTitle: 'Warum IntelSight UG?',
|
||||
why1Title: 'Enge Zusammenarbeit',
|
||||
why1Desc: 'Wir arbeiten Hand in Hand mit unseren Kunden für maßgeschneiderte Lösungen',
|
||||
why2Title: 'Made in Germany',
|
||||
why2Desc: 'Klare, robuste und sichere Software nach deutschen Qualitätsstandards',
|
||||
why3Title: 'Verlässliche Partnerschaft',
|
||||
why3Desc: 'Basierend auf gemeinsamen Werten und langfristigem Vertrauen',
|
||||
why4Title: 'Nachhaltigkeit',
|
||||
why4Desc: 'Fokus auf Sicherheit, Professionalität & zukunftssichere Lösungen',
|
||||
|
||||
// Products Section
|
||||
productsTitle: 'PRODUKTE & LÖSUNGEN',
|
||||
productsSubtitle: 'Professionelle Werkzeuge für moderne Ermittlungsarbeit',
|
||||
|
||||
// Professional Toolbox
|
||||
productToolboxTitle: 'Professional Toolbox',
|
||||
productToolboxDesc: 'Eine leistungsstarke Desktop-Anwendung mit fünf essentiellen Tools für behördliche OSINT-Ermittler und Analysten. Modernes Design, intuitive Bedienung, professionelle Funktionen.',
|
||||
expandDetails: 'Details anzeigen',
|
||||
hideDetails: 'Details verbergen',
|
||||
|
||||
// Tools
|
||||
tool1Title: 'Metadata Analyzer',
|
||||
tool1Feature1: 'Extrahiert versteckte Informationen (EXIF, GPS, Erstellungsdaten)',
|
||||
tool1Feature2: 'Forensische Analyse von Dokumenten & Bildern',
|
||||
tool1Feature3: 'Export als JSON',
|
||||
|
||||
tool2Title: 'Screen Recorder',
|
||||
tool2Feature1: 'Bildschirmaufnahme mit Audio (System & Mikrofon)',
|
||||
tool2Feature2: 'Bereichsauswahl oder Vollbild',
|
||||
tool2Feature3: 'Wählbare Qualitätsstufen',
|
||||
|
||||
tool3Title: 'Video Crawler',
|
||||
tool3Feature1: 'Download von Videos aus 1000+ Plattformen',
|
||||
tool3Feature2: 'Automatischer Untertitel-Download',
|
||||
tool3Feature3: 'Qualitätsauswahl',
|
||||
|
||||
tool4Title: 'Website Crawler',
|
||||
tool4Feature1: 'Archiviert Webseiten offline',
|
||||
tool4Feature2: 'Einstellbare Crawling-Tiefe',
|
||||
tool4Feature3: 'Erhält Originalstruktur inkl. CSS, JS & Medien',
|
||||
|
||||
tool5Title: 'Multimedia Converter',
|
||||
tool5Feature1: 'Konvertierung von Bildern, Videos, Audio',
|
||||
tool5Feature2: 'Batch-Verarbeitung',
|
||||
tool5Feature3: 'Drag & Drop Unterstützung',
|
||||
|
||||
// AccountForger
|
||||
productAccountForgerTitle: 'AccountForger',
|
||||
accessRestricted: 'Zugang nur mit Berechtigung',
|
||||
protectedProductDesc: 'Dieses Produkt ist speziell für autorisierte Behörden entwickelt und erfordert eine Authentifizierung.',
|
||||
loginForAccess: 'Anmelden für Zugriff',
|
||||
|
||||
// Footer
|
||||
footerCompanyTitle: 'IntelSight UG (haftungsbeschränkt)',
|
||||
footerCompanyAddress1: 'Gladbacher Strasse 3-5',
|
||||
footerCompanyAddress2: '40764 Langenfeld',
|
||||
footerNavTitle: 'Navigation',
|
||||
footerNavHome: 'Startseite',
|
||||
footerNavAbout: 'Über uns',
|
||||
footerNavProducts: 'Produkte',
|
||||
footerNavContact: 'Kontakt',
|
||||
|
||||
footerLegalTitle: 'Rechtliches',
|
||||
footerImprint: 'Impressum',
|
||||
footerPrivacy: 'Datenschutz',
|
||||
footerTerms: 'AGB',
|
||||
|
||||
footerContactTitle: 'Kontakt',
|
||||
copyright: '© 2025 IntelSight UG (haftungsbeschränkt). Alle Rechte vorbehalten.',
|
||||
|
||||
// Modal texts
|
||||
authRequired: 'Authentifizierung erforderlich',
|
||||
authDescription: 'Dieser Bereich ist nur für autorisierte Behörden zugänglich.',
|
||||
accessCode: 'Zugangscode',
|
||||
accessCodePlaceholder: 'Bitte Zugangscode eingeben',
|
||||
grantAccess: 'Zugang gewähren',
|
||||
noAccess: 'Noch keinen Zugang?',
|
||||
contactUs: 'Kontaktieren Sie uns',
|
||||
accessGranted: 'Zugang gewährt! AccountForger wird geladen...',
|
||||
wrongCode: 'Falscher Zugangscode. Bitte versuchen Sie es erneut.',
|
||||
demoRequestAlert: 'Demo-Anfrage-Funktion würde hier implementiert werden',
|
||||
contactFormSuccess: 'Vielen Dank für Ihre Nachricht! Wir werden uns schnellstmöglich bei Ihnen melden.'
|
||||
},
|
||||
|
||||
en: {
|
||||
// Page meta
|
||||
pageTitle: 'IntelSight - Security Made in Germany',
|
||||
|
||||
// Navigation
|
||||
skipNav: 'Skip to main content',
|
||||
navHome: 'Home',
|
||||
navAbout: 'About Us',
|
||||
navProducts: 'Products & Solutions',
|
||||
navContact: 'Contact',
|
||||
langSwitch: 'EN | DE',
|
||||
|
||||
// Hero Section
|
||||
heroTitle: 'SECURITY MADE IN GERMANY',
|
||||
heroSubtitle: 'Specialist for highly secure, customized IT solutions for government agencies',
|
||||
|
||||
// Trust Indicators
|
||||
indicatorAvailability: 'Availability',
|
||||
indicatorTrust: 'Government agencies trust us',
|
||||
indicatorSupport: 'Support',
|
||||
|
||||
// Scroll Indicator
|
||||
scrollToExplore: 'Scroll to Explore',
|
||||
|
||||
// About Section
|
||||
aboutTitle: 'About Us',
|
||||
aboutSubtitle: 'Your Partner for Secure Government Software',
|
||||
|
||||
// About Tabs
|
||||
tabWhoWeAre: 'Company',
|
||||
tabMission: 'Mission & Values',
|
||||
tabCompetencies: 'Core Competencies',
|
||||
tabWhyUs: 'Our Promise',
|
||||
|
||||
// Who We Are
|
||||
whoWeAreTitle: 'Company',
|
||||
whoWeArePara1: 'IntelSight UG is your <strong>specialist for highly secure, customized IT solutions</strong> from North Rhine-Westphalia. We develop innovative software specifically for government security and law enforcement agencies.',
|
||||
whoWeArePara2: 'Our approach combines cutting-edge technology with a deep understanding of the special requirements of government agencies. The balance between security, efficiency and legally compliant implementation is at the center of our work.',
|
||||
locationBadge: 'North Rhine-Westphalia, Germany',
|
||||
nrwLabel: 'North Rhine-Westphalia',
|
||||
headquartersLabel: 'Our Location: Langenfeld',
|
||||
|
||||
// Mission & Values
|
||||
missionTitle: 'Our Mission',
|
||||
missionStatement: 'We create <strong>efficient, secure and data protection compliant solutions</strong> for modern law enforcement and security agencies.',
|
||||
valueIntegrityTitle: 'Integrity',
|
||||
valueIntegrityDesc: 'Highest ethical standards in everything we do',
|
||||
valueTransparencyTitle: 'Transparency',
|
||||
valueTransparencyDesc: 'Open communication and comprehensible processes',
|
||||
valueDemocracyTitle: 'Democratic Principles',
|
||||
valueDemocracyDesc: 'Cooperation only with agencies in accordance with the liberal democratic basic order',
|
||||
principleNote: '<strong>Our Goal:</strong> Technology that strengthens law and security and protects the liberal democratic basic order.',
|
||||
|
||||
// Competencies
|
||||
competenciesTitle: 'Our Core Competencies',
|
||||
comp1Title: 'Agency-Specific Software',
|
||||
comp1Desc: 'Development with highest security standards, tailored for government requirements',
|
||||
comp2Title: 'Intuitive Operating Concepts',
|
||||
comp2Desc: 'User-friendly interfaces despite complex functions for efficient work',
|
||||
comp3Title: 'Long-term Support',
|
||||
comp3Desc: 'Continuous security updates and reliable maintenance throughout the entire lifecycle',
|
||||
|
||||
// Why Us
|
||||
whyUsTitle: 'Why IntelSight UG?',
|
||||
why1Title: 'Close Collaboration',
|
||||
why1Desc: 'We work hand in hand with our customers for customized solutions',
|
||||
why2Title: 'Made in Germany',
|
||||
why2Desc: 'Clear, robust and secure software according to German quality standards',
|
||||
why3Title: 'Reliable Partnership',
|
||||
why3Desc: 'Based on shared values and long-term trust',
|
||||
why4Title: 'Sustainability',
|
||||
why4Desc: 'Focus on security, professionalism & future-proof solutions',
|
||||
|
||||
// Products Section
|
||||
productsTitle: 'Products & Solutions',
|
||||
productsSubtitle: 'Professional Tools for Modern Investigation Work',
|
||||
|
||||
// Professional Toolbox
|
||||
productToolboxTitle: 'Professional Toolbox',
|
||||
productToolboxDesc: 'A powerful desktop application with five essential tools for government OSINT investigators and analysts. Modern design, intuitive operation, professional functions.',
|
||||
expandDetails: 'Show Details',
|
||||
hideDetails: 'Hide Details',
|
||||
|
||||
// Tools
|
||||
tool1Title: 'Metadata Analyzer',
|
||||
tool1Feature1: 'Extracts hidden information (EXIF, GPS, creation dates)',
|
||||
tool1Feature2: 'Forensic analysis of documents & images',
|
||||
tool1Feature3: 'Export as JSON',
|
||||
|
||||
tool2Title: 'Screen Recorder',
|
||||
tool2Feature1: 'Screen recording with audio (system & microphone)',
|
||||
tool2Feature2: 'Area selection or full screen',
|
||||
tool2Feature3: 'Selectable quality levels',
|
||||
|
||||
tool3Title: 'Video Crawler',
|
||||
tool3Feature1: 'Download videos from 1000+ platforms',
|
||||
tool3Feature2: 'Automatic subtitle download',
|
||||
tool3Feature3: 'Quality selection',
|
||||
|
||||
tool4Title: 'Website Crawler',
|
||||
tool4Feature1: 'Archives websites offline',
|
||||
tool4Feature2: 'Adjustable crawling depth',
|
||||
tool4Feature3: 'Preserves original structure incl. CSS, JS & media',
|
||||
|
||||
tool5Title: 'Multimedia Converter',
|
||||
tool5Feature1: 'Conversion of images, videos, audio',
|
||||
tool5Feature2: 'Batch processing',
|
||||
tool5Feature3: 'Drag & Drop support',
|
||||
|
||||
// AccountForger
|
||||
productAccountForgerTitle: 'AccountForger',
|
||||
accessRestricted: 'Access by authorization only',
|
||||
protectedProductDesc: 'This product is specifically developed for authorized agencies and requires authentication.',
|
||||
loginForAccess: 'Login for Access',
|
||||
|
||||
// Footer
|
||||
footerCompanyTitle: 'IntelSight UG (haftungsbeschränkt)',
|
||||
footerCompanyAddress1: 'Gladbacher Strasse 3-5',
|
||||
footerCompanyAddress2: '40764 Langenfeld',
|
||||
footerNavTitle: 'Navigation',
|
||||
footerNavHome: 'Home',
|
||||
footerNavAbout: 'About Us',
|
||||
footerNavProducts: 'Products',
|
||||
footerNavContact: 'Contact',
|
||||
|
||||
footerLegalTitle: 'Legal',
|
||||
footerImprint: 'Imprint',
|
||||
footerPrivacy: 'Privacy Policy',
|
||||
footerTerms: 'Terms & Conditions',
|
||||
|
||||
footerContactTitle: 'Contact',
|
||||
copyright: '© 2025 IntelSight UG (haftungsbeschränkt). All rights reserved.',
|
||||
|
||||
// Modal texts
|
||||
authRequired: 'Authentication Required',
|
||||
authDescription: 'This area is only accessible to authorized agencies.',
|
||||
accessCode: 'Access Code',
|
||||
accessCodePlaceholder: 'Please enter access code',
|
||||
grantAccess: 'Grant Access',
|
||||
noAccess: 'No access yet?',
|
||||
contactUs: 'Contact Us',
|
||||
accessGranted: 'Access granted! AccountForger is loading...',
|
||||
wrongCode: 'Wrong access code. Please try again.',
|
||||
demoRequestAlert: 'Demo request function would be implemented here',
|
||||
contactFormSuccess: 'Thank you for your message! We will get back to you as soon as possible.'
|
||||
}
|
||||
};
|
||||
|
||||
// Current language state
|
||||
let currentLanguage = CONFIG.I18N.DEFAULT_LANGUAGE;
|
||||
|
||||
/**
|
||||
* Initialize the translation system
|
||||
*/
|
||||
function initTranslations() {
|
||||
// Try to get saved language from localStorage
|
||||
const savedLanguage = localStorage.getItem(CONFIG.I18N.STORAGE_KEY);
|
||||
if (savedLanguage && CONFIG.I18N.SUPPORTED_LANGUAGES.includes(savedLanguage)) {
|
||||
currentLanguage = savedLanguage;
|
||||
}
|
||||
|
||||
// Apply initial translations
|
||||
applyTranslations(currentLanguage);
|
||||
}
|
||||
|
||||
/**
|
||||
* Switch to a different language
|
||||
* @param {string} language - Language code ('de' or 'en')
|
||||
*/
|
||||
function switchLanguage(language) {
|
||||
if (!CONFIG.I18N.SUPPORTED_LANGUAGES.includes(language)) {
|
||||
console.error(`Language '${language}' is not supported`);
|
||||
return;
|
||||
}
|
||||
|
||||
currentLanguage = language;
|
||||
localStorage.setItem(CONFIG.I18N.STORAGE_KEY, language);
|
||||
applyTranslations(language);
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply translations to all elements with data-translate attribute
|
||||
* @param {string} language - Language code to apply
|
||||
*/
|
||||
function applyTranslations(language) {
|
||||
const t = translations[language];
|
||||
|
||||
if (!t) {
|
||||
console.error(`Translations for language '${language}' not found`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Update page title
|
||||
document.title = t.pageTitle;
|
||||
|
||||
// Update HTML lang attribute
|
||||
document.documentElement.lang = language;
|
||||
|
||||
// Update all translatable elements
|
||||
document.querySelectorAll(SELECTORS.TRANSLATABLE).forEach(element => {
|
||||
const key = element.getAttribute(DATA_ATTRS.TRANSLATE);
|
||||
|
||||
if (t[key]) {
|
||||
// Check if content contains HTML tags
|
||||
if (t[key].includes('<strong>') || t[key].includes('<em>')) {
|
||||
element.innerHTML = t[key];
|
||||
} else {
|
||||
element.textContent = t[key];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Update language toggle button
|
||||
const langToggle = document.querySelector(SELECTORS.LANG_TOGGLE);
|
||||
if (langToggle) {
|
||||
langToggle.textContent = t.langSwitch;
|
||||
langToggle.setAttribute(DATA_ATTRS.LANG, language);
|
||||
}
|
||||
|
||||
// Update expand button text if it exists
|
||||
updateExpandButtonText(language);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update expand button text based on current state
|
||||
* @param {string} language - Current language
|
||||
*/
|
||||
function updateExpandButtonText(language) {
|
||||
const expandButton = document.querySelector(SELECTORS.EXPAND_BUTTON);
|
||||
if (expandButton) {
|
||||
const expandText = expandButton.querySelector('.expand-text');
|
||||
const isExpanded = expandButton.getAttribute(DATA_ATTRS.EXPANDED) === 'true';
|
||||
const t = translations[language];
|
||||
|
||||
if (expandText && t) {
|
||||
expandText.textContent = isExpanded ? t.hideDetails : t.expandDetails;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a specific translation string
|
||||
* @param {string} key - Translation key
|
||||
* @returns {string} Translated text
|
||||
*/
|
||||
function getTranslation(key) {
|
||||
return translations[currentLanguage][key] || key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current language
|
||||
* @returns {string} Current language code
|
||||
*/
|
||||
function getCurrentLanguage() {
|
||||
return currentLanguage;
|
||||
}
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren