Относительно недавно пришла гениальная идея, придумал как сделать 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>