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