Your original question sounds like the user can change the language of the entire page. If that's true, then WCAG 3.1.1 Language of Page is more applicable in that if the user chooses a language for the entire page, then you should specify the lang
attribute on the main <html> element (but UX StackExchange is about usability and not programming so I don't want to dive too deep into that).
<html lang="es">
If you also have non-Spanish words on the page, then each of those elements would need their own lang
attribute, which is where WCAG 3.1.2 Language of Parts comes into play.
<html lang="es">
<body>
<p>Hola! Bienvenido a nuestro sitio web.</p>
...
<p lang="en">To contact us...</p>
</body>
(The above is a contrived example and I don't speak Spanish so it could be grammatically incorrect. If the entire page were in Spanish, I wouldn't expect a "contact us" message in English, but it shows how WCAG 3.1.2 Language of Parts is applicable.)
Getting back to your question:
...can we use English for titles, alt etc or should we adapt according to the language selected ?
If the user changes the language of the page, I would expect everything to be translated, including the page title, the title
(tooltip) attribute on all elements, the alt text for images, the aria-label
for all elements, etc. How would it help a Spanish speaker to leave those elements in English?
As mentioned above, if there are elements that really need to remain in English, they'll need the lang="en"
attribute.