Hi. Found the issue while working in ezscriptmonitor spanish translation.
after running ezlupdate, some of the messages have two location elements, making the file not validate against ts.rng file.
here's some sample of the file
<location filename="list.php" line="22"/>
<location filename="view.php" line="27"/>
<translation>Monitor de scripts</translation>
According to qt linguist definition  following line indicates that this kind of message is possible
<!ELEMENT message (location*, source?, oldsource?, comment?,
oldcomment?, extracomment?, translatorcomment?, translation?,
userdata?, extra-**) >
so i think the problem is in the ts.rng file itself. file has this piece of code
marking location as optional, but not as having more than one. so, i think we should use 'zeroOrMore' for that.