There are a bunch of different ways you can detect a user's locale for a website. You might be tempted to set the locale based on the browser's preferred language or the Accept Language header from the client. However this is unadvised, and so is not the default in Symfony2. Instead you are advised to set the user's locale based on the URL. From there, you can suggest that a user move to a specific locale based on their preferred language settings. However, it's not immediately obvious how to accomplish this either. I spent some time trying to figure out the best way to do that, which I'll outline here.