Ich verstehe nicht, warum du nicht einfach das Array durchiterierst und bei jedem Durchgang die Ersetzen-Funktion aufrufst? Oder auf die DB-Lösung angewandt:
PHP-Code:
<?php
$content 
"Dies ist L_MAIN_TITLE. L_MAIN_WELCOME!";

$lang_query mysql_query("SELECT `langvar`, `varcont` FROM `bg_l_de` WHERE `site` = '$site'");

while (
$langrow mysql_fetch_assoc($lang_query))
{
    
$content str_replace($langrow['langvar'],
                           
$langrow['varcont'],
                           
$content);
}

echo 
$content;
?>
Ich bin schon unheimlich lange aus PHP draußen, deshalb nicht schimpfen, wenn ich da irgendwas falsch verstanden habe. (;

Mal nebenbei bemerkt: Ich würde nicht für jede Sprache eine eigene Tabelle benutzen, sondern einfach ein Feld mit der Info. Der Primärschlüssel setzt sich dann aus Sprache und Ersetzungsmuster zusammen.