Okay, This is an example (untested).
Have both tables the same scheme (ie. same field names) but in the table which stores the username store the username, and the field that has the alias have the translation. What I mean is that 'username' is the field name for both.
The only difference would be to have a language parameter tacked on the end of the alias table.
So, you would query like this:
<?php
$result=mysql_query("SELECT * FROM alias WHERE language='es'",$query);
$alias = mysql_fetch_array($result,MYSQL_ASSOC);
$result=mysql_query("SELECT * FROM users");
while($row = mysql_fetch_array($result))
{
while(list($key,$value) = each($row))
{
echo $alias[$key] . ' : ' . $value . "<br />\n";
}
}
?>
That is a quick hack (obviously put more work into database management). There probably is a better way of doing it, I didn't put too much though into it.