Относительно недавно пришла гениальная идея, придумал как сделать i18n, i10n на HTML/JavaScript:

Код:
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <form method="post">
      <label for="firstname" data-ru="Имя:" data-en="Firstname:">Firstname:</label><br>
      <input name="firstname" type="text" /><br><br>
      <label for="lastname" data-ru="Фамилия:" data-en="Lastname:">Lastname:</label><br>
      <input name="lastname" type="text" /><br>
      <input type="submit" data-ru="Окей!" data-en="Ok!" value="Ok!" />
    </form>
    <br><br><a href="javascript:translate('ru');">Русский</a> | <a href="javascript:translate('en');">English</a>
    <script>
      function translate(lang) {
        var el = document.body.getElementsByTagName("*"); // Получить все элементы
        for(var i=0; i<el.length; i++)  {
         // Цикл
         if(el[i].tagName == 'INPUT') { // Если тэг INPUT, то 
           if(el[i].getAttribute('data-' + lang)) // Если есть параметр data- то считываем из параметра data- и записываем в value
             el[i].value = el[i].getAttribute('data-' + lang);
         }
         else { // Если тэг не INPUT то
           if(el[i].getAttribute('data-' + lang)) {
             // Если есть data-
             el[i].innerHTML = el[i].getAttribute('data-' + lang); // Записываем внутрь тэга
           }
         }
        }
      }
    </script>
  </body>
</html>