Pour l'UI du site par contre c'est pas pareil (boutons, messages d'erreur, etc.), en général tu as un fichier (ou une table) qui contient des associations clé/valeur pour chaque langue.
Typiquement, fr.yaml contiendrait :
homepage.welcome_text: Bienvenue sur mon site !
contact.send_button: Envoyer le message.
Et en.yaml :
homepage.welcome_text: Welcome on my website!
contact.send_button: Send message.
Et ainsi de suite. Selon la langue sélectionnée par l'utilisateur (regarde le header Accept-Language par défaut), tu importes le bon fichier et dans ton HTML tu charges les bonnes clés pour chaque élément d'UI, typiquement avec un template engine type Twig :
<button type="submit">{{ 'contact.send_button'|trans }}</button>
Ou en faisant abstraction du filtre `trans` (et de sa configuration), si tu as un tableau associatif `messages` :
<button type="submit">{{ messages['contact.send_button'] }}</button>