![language switcher html language switcher html](https://cdn.wpml.org/wp-content/uploads/2013/11/288012-01.png)
I am only speculating, but I believe that when a user requests a page, Hubspot's router will check the users location before trying to serve the template. While it makes since that you would want to avoid a redirect, the redirect provided through the language switcher functionality seams to process before the template, so it would be the fastest. Html and css are strictly structure and styling so they aren't any help here. There are some javascript apis that can detect the user's location, under the right conditions, but javascript isn't processed by the browser until after the page has been served to the browser, so it would actually be slower than a template redirect. I do not see any variables that would supply the user's location in the HubL supported variable docs, but even with something like that available, the route to the page would have already started the process of serving the page, which would then be interupted by logic in the template to create a redirect. hubl is a server side language, but it is a templating language, and the last language processed by the server before the pages are served to the browser. all of these except hubl are processed by the browser. The coding languages available for development in hubspot are html, css, javascript, and hubl.