fix auto translation

This commit is contained in:
Jeff Emmett 2025-04-09 16:20:04 -07:00
parent 9c87bc2e46
commit 1b9b476e1d
1 changed files with 35 additions and 48 deletions

View File

@ -41,62 +41,49 @@ const translations = {
} }
}; };
let currentLang = localStorage.getItem('language') || 'en'; let currentLanguage = 'en';
function toggleLanguage() { function toggleLanguage() {
// Toggle between English and Arabic // Toggle between languages
currentLang = currentLang === 'en' ? 'ar' : 'en'; currentLanguage = currentLanguage === 'en' ? 'ar' : 'en';
localStorage.setItem('language', currentLang);
// Update the language toggle text // Update the language toggle text
document.getElementById('langText').textContent = const langText = document.getElementById('langText');
currentLang === 'en' ? 'EN / عربي' : 'عربي / EN'; if (langText) {
langText.textContent = currentLanguage === 'en' ? 'EN / عربي' : 'عربي / EN';
// Update document direction
document.body.dir = currentLang === 'ar' ? 'rtl' : 'ltr';
document.body.classList.toggle('rtl', currentLang === 'ar');
// Update all translatable content
updateContent();
}
function updateContent() {
// Combine all translations for the current language
const translations = {
...homeTranslations[currentLang],
...aboutTranslations[currentLang],
...workTranslations[currentLang],
...supportTranslations[currentLang],
...contactTranslations[currentLang]
};
// Update the content based on your translation structure
for (const [key, value] of Object.entries(translations)) {
const elements = document.querySelectorAll(`[data-translate="${key}"]`);
elements.forEach(element => {
// Handle elements that might contain HTML (like <br>)
if (value.includes('<br>')) {
element.innerHTML = value;
} else {
element.textContent = value;
}
});
} }
// Update text direction for Arabic
document.documentElement.dir = currentLanguage === 'ar' ? 'rtl' : 'ltr';
// Translate all elements with data-translate attribute
translatePage();
} }
// Initialize language on page load function translatePage() {
document.addEventListener('DOMContentLoaded', () => { const elements = document.querySelectorAll('[data-translate]');
// Set initial direction and language
document.body.dir = currentLang === 'ar' ? 'rtl' : 'ltr';
document.body.classList.toggle('rtl', currentLang === 'ar');
// Set initial language toggle text elements.forEach(element => {
document.getElementById('langText').textContent = const key = element.getAttribute('data-translate');
currentLang === 'en' ? 'EN / عربي' : 'عربي / EN';
// Update initial content // Get translations from all translation files
updateContent(); const translations = {
}); ...homeTranslations,
...aboutTranslations,
...workTranslations,
...supportTranslations,
...contactTranslations
};
// Update text content if translation exists
if (translations[currentLanguage] && translations[currentLanguage][key]) {
element.textContent = translations[currentLanguage][key];
}
});
}
// Don't automatically translate on page load
// document.addEventListener('DOMContentLoaded', translatePage);
// Add click handler to language toggle // Add click handler to language toggle
document.querySelector('.language-toggle').addEventListener('click', toggleLanguage); document.querySelector('.language-toggle').addEventListener('click', toggleLanguage);