%script{src: "https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.10.50/libphonenumber-js.min.js"} :javascript const translations = { en: { invalid_phone: 'Please enter your country code and a valid phone number. e.g. (+44 x xx xx xx xx ...)', required_field: 'This field is required.' }, ru: { invalid_phone: 'Введите код вашей страны и действительный номер телефона. например.(+7 x xx xx xx xx ...)', required_field: 'This field is required.' }, fr: { invalid_phone: 'Veuillez entrer votre indicatif pays et un numéro de téléphone valide. par exemple (+33 x xx xx xx xx ...)', required_field: 'This field is required.' }, es: { invalid_phone: 'Por favor, introduce prefijo de su pais y un número de teléfono valido. ej.(+34 x xx xx xx xx ...)', required_field: 'Este campo es obligatorio.' } }; // Función para obtener el texto traducido según el idioma function getTranslation(key, languageCode) { const lang = languageCode || 'en'; // Establecer un idioma por defecto return translations[lang] && translations[lang][key] ? translations[lang][key] : translations['en'][key]; // Si no existe la traducción, usar inglés como fallback } // Ejemplo de cómo podrías obtener el idioma del navegador (simplificado) function getUserLanguage() { const browserLanguage = navigator.language || navigator.userLanguage; // Para navegadores más antiguos return browserLanguage.substring(0, 2); // Obtener solo el código del idioma (ej: 'en', 'es') } const currentLanguage = getUserLanguage(); document.addEventListener('DOMContentLoaded', function() { const telephoneField = document.getElementById('telephone_field'); const submitButton = document.getElementById('submit_button'); // Opcional telephoneField.addEventListener('blur', function() { let telephoneValue = telephoneField.value.trim(); telephoneValue = telephoneValue.replace(/\s/g, ''); // Eliminar todos los espacios telephoneField.value = telephoneValue; // Actualizar el valor del campo if (telephoneValue !== '') { try { const parsedNumber = libphonenumber.parse(telephoneValue); if (!libphonenumber.isValidNumber(parsedNumber)) { telephoneField.classList.add('is-invalid'); // submitButton.disabled = true; } else { telephoneField.classList.remove('is-invalid'); // submitButton.disabled = false; } } catch (error) { telephoneField.classList.add('is-invalid'); // submitButton.disabled = true; } } else { telephoneField.classList.remove('is-invalid'); // submitButton.disabled = false; } }); submitButton.addEventListener('click', function(event) { let telephoneValue = telephoneField.value.trim(); telephoneValue = telephoneValue.replace(/\s/g, ''); // Eliminar todos los espacios telephoneField.value = telephoneValue; // Asegurarse de que el valor esté actualizado if (telephoneValue !== '') { try { const parsedNumber = libphonenumber.parse(telephoneValue); if (!libphonenumber.isValidNumber(parsedNumber)) { telephoneField.classList.add('is-invalid'); alert(getTranslation('invalid_phone', currentLanguage)); event.preventDefault(); } else { telephoneField.classList.remove('is-invalid'); } } catch (error) { telephoneField.classList.add('is-invalid'); event.preventDefault(); } } else { telephoneField.classList.add('is-invalid'); // Si está vacío al enviar, también marcar como inválido alert(getTranslation('invalid_phone', currentLanguage)); event.preventDefault(); } }); });