This isn't the answer you're looking for, but I feel like i18n is a job for server-side work. You don't have to push up content twice (the template in english, the template content in some other language). Also, you have ready access to the Accept-Language header, which is helpful and much better than navigator.language.