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>