Function gets defined although code block is not executed
<p>I use the following code to use <a href="http://jsgettext.berlios.de/" rel="nofollow">JS Gettext</a> if the language is German.</p>

<pre><code>if (lang == "de") {
    var gt = new Gettext({"domain": "tag_cloud", "locale_data": json_de_data});
    function _(ident) {
        console.debug('gt.gettext("'+ident+'")');
        return gt.gettext(ident);
    }
    console.debug("Using Gettext.");
}
else {
    function _(ident) {
        console.debug('return "'+ident+'"');
        return ident;
    }
    console.debug("Using no translation.");
}
</code></pre>

<p>In Firefox, the console shows:</p>

<pre><code>Using Gettext.
gt.gettext("Ubiqitous, but effective.")
</code></pre>

<p>In every other browser (Chromiun, Opera, IE, rekonq, Safari), I get this:</p>

<pre><code>Using Gettext.
return "Ubiqitous, but effective."
</code></pre>

<p>I tried to remove the <code>else</code> block and that worked in all browsers then, just not for English.</p>

<p>So is the latter <code>_()</code> defined although the <code>else</code> block is not executed? How can I make this work in all browsers?</p>
