2
如果語言是德語,則使用以下代碼以使用JS Gettext。儘管未執行代碼塊,但已定義函數
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.");
}
在Firefox中,控制檯顯示:
Using Gettext.
gt.gettext("Ubiqitous, but effective.")
在其他瀏覽器(鉻含量,歌劇,IE,rekonq,Safari瀏覽器),我得到這個:
Using Gettext.
return "Ubiqitous, but effective."
我試着刪除else
塊,然後在所有瀏覽器中工作,但不適用於英語。
那麼後者_()
定義雖然else
塊沒有執行?我如何在所有瀏覽器中完成這項工作?
好的,這很有趣。我想這是Firefox的Javascript引擎中的一個錯誤呢? – 2012-03-06 15:39:04
第一種方法是依賴於瀏覽器,因此您應該使用第二種方法'var _ = function(ident){}'。 – xdazz 2012-03-06 15:47:04
總是使用第二種方式或只是在這樣的關鍵功能? – 2012-03-06 16:07:50