fix auto translation
This commit is contained in:
parent
9c87bc2e46
commit
1b9b476e1d
|
|
@ -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
|
// Update text direction for Arabic
|
||||||
document.body.dir = currentLang === 'ar' ? 'rtl' : 'ltr';
|
document.documentElement.dir = currentLanguage === 'ar' ? 'rtl' : 'ltr';
|
||||||
document.body.classList.toggle('rtl', currentLang === 'ar');
|
|
||||||
|
|
||||||
// Update all translatable content
|
// Translate all elements with data-translate attribute
|
||||||
updateContent();
|
translatePage();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateContent() {
|
function translatePage() {
|
||||||
// Combine all translations for the current language
|
const elements = document.querySelectorAll('[data-translate]');
|
||||||
|
|
||||||
|
elements.forEach(element => {
|
||||||
|
const key = element.getAttribute('data-translate');
|
||||||
|
|
||||||
|
// Get translations from all translation files
|
||||||
const translations = {
|
const translations = {
|
||||||
...homeTranslations[currentLang],
|
...homeTranslations,
|
||||||
...aboutTranslations[currentLang],
|
...aboutTranslations,
|
||||||
...workTranslations[currentLang],
|
...workTranslations,
|
||||||
...supportTranslations[currentLang],
|
...supportTranslations,
|
||||||
...contactTranslations[currentLang]
|
...contactTranslations
|
||||||
};
|
};
|
||||||
|
|
||||||
// Update the content based on your translation structure
|
// Update text content if translation exists
|
||||||
for (const [key, value] of Object.entries(translations)) {
|
if (translations[currentLanguage] && translations[currentLanguage][key]) {
|
||||||
const elements = document.querySelectorAll(`[data-translate="${key}"]`);
|
element.textContent = translations[currentLanguage][key];
|
||||||
elements.forEach(element => {
|
|
||||||
// Handle elements that might contain HTML (like <br>)
|
|
||||||
if (value.includes('<br>')) {
|
|
||||||
element.innerHTML = value;
|
|
||||||
} else {
|
|
||||||
element.textContent = value;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize language on page load
|
// Don't automatically translate on page load
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
// document.addEventListener('DOMContentLoaded', translatePage);
|
||||||
// Set initial direction and language
|
|
||||||
document.body.dir = currentLang === 'ar' ? 'rtl' : 'ltr';
|
|
||||||
document.body.classList.toggle('rtl', currentLang === 'ar');
|
|
||||||
|
|
||||||
// Set initial language toggle text
|
|
||||||
document.getElementById('langText').textContent =
|
|
||||||
currentLang === 'en' ? 'EN / عربي' : 'عربي / EN';
|
|
||||||
|
|
||||||
// Update initial content
|
|
||||||
updateContent();
|
|
||||||
});
|
|
||||||
|
|
||||||
// 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);
|
||||||
Loading…
Reference in New Issue