function checkall(clicker) {
var inputs = clicker.parentNode.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) inputs[i].checked = true;
}
onclick назначаем span элементу, а не li (иначе будет выделяться всё даже при клике по одной галочке), и в качестве аргумента подаём this:
<ul>
<li title="1"><span onclick="checkall(this)">Язык 1</span>
<ul>
<li><input type="checkbox" name="box[]" title="1">позиция 1<li>
<li><input type="checkbox" name="box[]" title="1">позиция 2<li>
<li><input type="checkbox" name="box[]" title="1">позиция 3<li>
</ul>
</li>
<li title="2"><span onclick="checkall(this)">Язык 2<span>
<ul>
<li><input type="checkbox" name="box[]" title="2">позиция 1<li>
<li><input type="checkbox" name="box[]" title="2">позиция 2<li>
<li><input type="checkbox" name="box[]" title="2">позиция 3<li>
</ul>
</li>
</ul>